Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика (конспект лекций)

.pdf
Скачиваний:
57
Добавлен:
30.03.2015
Размер:
381.73 Кб
Скачать

ствует записи «–0»). Таким образом, прямым кодом могут быть представлены все

целые числа x в диапазоне:

|x| ≤ 2b-1-1.

Например, при b = 16 диапазон представимых в прямом коде целых чисел со знаком определяется выражением |x| ≤ 32767, а при b = 32 – выражением

|x| ≤ 2147483647.

Все целые числа, представимые в прямом коде, можно изобразить множест- вом точек числовой оси, симметричным относительно нуля. Их общее количество нечетно. Точки располагаются на числовой оси равномерно, и расстояние между любыми соседними точками равно 1. Каждой точке, кроме нулевой, соответствует единственный кодовый набор.

Если при сложении двух положительных или отрицательных чисел получается сумма, выходящая за пределы диапазона представимых чисел, то результат сумми- рования получается неправильным.

Например, при сложении в четырехразрядной сетке чисел 0101 и 0110 получает- ся результат 1011 за счет переноса в старший, т. е. в знаковый разряд. Этот резуль- тат не верен здесь при сложении чисел пять и шесть получилось минус три.

Ошибка такого рода называется переполнением. Сигналом о переполнении при суммировании чисел в прямом коде является наличие переноса в знаковый разряд. При его появлении, если заданы соответствующие установки, процессор прерывает выполнение операции и выдает сообщение об ошибке.

Недостатки прямого кода: организация отдельной обработки знакового разряда при выполнении арифметических операций, наличие двух разных представлений нуля, относительно сложная реализация операции вычитания.

2.2.2 Дополнительный код

Рассмотрим последовательность двоичных чисел без знака, представимых в раз- рядной сетке длины b = 4. Начиная с числа 0000, будем последовательно прибавлять единицу. В результате получим 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111. Если теперь к последнему числу прибавить единицу, то по причине отсутствия места для хранения пятой цифры мы получим вновь комбинацию 0000. Дальнейшее прибавление единицы приведет к повторению всей последовательности. Эта особенность счета в конечной разрядной сетке назы- вается цикличностью. Последовательное увеличение чисел на единицу не уводит их ряд в бесконечность, а замыкает в кольцо.

Свойство цикличности счета позволяет недостаток разрядной сетки ее конеч- ность превратить в достоинство, т. е. в возможность свести вычитание к суммиро- ванию.

Действительно, после числа 2b-1 следует 2b первое не представимое в b-разрядной сетке число. Оно изображается как нуль, следующее за ним число как единица и т. д., по кругу. Прибавление к данному числу единицы x раз равносильно прибавлению x. Прибавление единицы 2b раз не изменит данного числа. Прибавле- ние числа 2b–1 равносильно вычитанию единицы. Прибавление 2bx равносильно

21

вычитанию x единиц, т. е. прибавлению числа (–x). В последнем наблюдении со- держится ключ к замене вычитания суммированием: вместо сложения с отрица- тельным числом (x), можно выполнять сложение с положительным числом (2b

x), от этого результат операции не изменится.

Аналогичное свойство имеет место в любой позиционной системе счисления с ограниченной разрядной сеткой. Например, в двухразрядной десятичной сетке за числом 99 последует 00, и вместо сложения с отрицательным числом можно выпол- нить сложение с его дополнением до ста: 40 +(– 36) = 40 + 64 = 04 (сетка двухраз- рядная!). Заметим, что дополнение до 100 числа 36 нет необходимости находить вычитанием 36 из 100 – достаточно просто все цифры числа 36 заменить их допол- нениями до 9 , а затем к полученному результату 63 прибавить единицу. Переход к дополнительному коду очень простая операция позволяет заменить вычитание сложением.

Чтобы все двухразрядные записи от 00 до 99 примерно поровну поделить между представлениями положительных и отрицательных чисел, естественно половину их выделить для записи положительных чисел этими записями будут тогда сами эти числа от 00 до 49. Оставшаяся половина кодового пространства от 50 до 99 – это величины (100x), изображающие отрицательные числа (x), т. е. это дополнитель- ные коды отрицательных чисел. Признаком того, что двухразрядный код изобража- ет отрицательное число, будет тогда величина цифры первого разряда, превосходя- щая 5 или равная 5. Результатом операции 40 +(– 36) было число 04 – это код поло- жительного числа 4, поскольку в первом разряде кода 04 стоит цифра 0. Операция вычитания большего числа из меньшего 36 +(– 40) выполнится с помощью дополни- тельного кода так: 36 +(– 40) = 36 + 60 = 96. Первая цифра результата 96 больше пя- ти, значит, 96 изображает отрицательное число, модуль которого есть 100–96=4. Код 96 изображает число (–4).

На такой организации кодового пространства основывается дополнительный код в любой позиционной системе счисления.

Дополнительный код положительного двоичного числа x равен самому этому числу (положительные числа во всех рассматриваемых здесь кодах изображаются одинаково). Дополнительный код отрицательного двоичного числа (–x) равен поло- жительному числу (2bx), где b – длина разрядной сетки.

Признаком того, что данный код является кодом не отрицательного числа (т. е. самим этим числом) является 0 в знаковом разряде.

Для преобразования прямого кода отрицательного числа в дополнительный код достаточно все цифры прямого кода кроме знакового разряда заменить их до- полнениями до 1 (инверсиями), т. е. нули заменить единицами, единицы нулями, и к полученному двоичному числу прибавить единицу. Для обратного перехода от до- полнительного кода отрицательного числа к его прямому коду нужно те же опера- ции выполнить в той же последовательности. Как при переходе от прямого кода от- рицательного числа к его дополнительному коду, так и при обратном переходе еди- ница не вычитается, но прибавляется к числу после инверсии его цифр.

Рассмотрим несколько примеров операций с четырехразрядными двоичными числами, представленными в дополнительном коде. Коды от 0000 до 0111 являются

22

кодами положительных чисел от 0 до 7 соответственно. Коды 1000, 1001, … , 1111 являются кодами чисел 1000 , 0111, …, 0001, взятых со знаком «минус», соответст- венно (это числа от –8 до –1).

При сложении двух чисел могут возникать переносы в старший, знаковый раз- ряд, и из знакового разряда (в последнем случае перенос теряется). Если имеют ме-

сто оба эти переноса или оба отсутствуют, результат получается правильный.

Если имеет место лишь какой-нибудь один из них, то это означает, что произошло переполнение разрядной сетки.

Пусть, например, в четырехразрядном коде выполнены следующие операции:

1011

1011

1011

0011

+0010

+0110

+1010

+0110

1101

0001

0101

1001.

Здесь в первом случае не было переноса ни в старший разряд, ни из него, поэто- му результат получился правильный (в десятичной записи: –5 + 2 = –3). Во втором случае перенос происходит и в знаковый разряд, и из него, – значит, результат по- лучен также верный (–5 + 6 = 1). В третьем случае сложения перенос из знакового разряда имеется, а в знаковый нет. Результат неверный (–5 – 6 = 5). В последнем, четвертом примере перенос в знаковый разряд имеется, а из него нет. Результат операции неверный (3 + 6 = –7).

Если результат арифметических действий является кодом отрицательного числа, то для записи в память ЭВМ его преобразуют в прямой код.

На числовой оси целые числа, представимые в b-разрядном дополнительном ко- де, имеют вид множества точек, несимметричного относительно нуля, т. к. общее количество точек четное. Числа расположены на числовой оси равномерно. Каждое число, в том числе нуль, имеет единственное кодовое представление.

Диапазон представимых в дополнительном коде целых чисел x включает все (b–1)-разрядные числа и одно b-разрядное двоичное число (–2b-1), кодируемое в

виде 10…0:

–2b-1x ≤ 2b-1–1.

Например, при b = 16 диапазон представимых целых чисел задается выражением

–32768 ≤ x ≤ 32767, а при b = 32 – выражением –2147483648 ≤ x ≤ 2147483647. Чис-

ло (–2b-1) при переводе из дополнительного в прямой код теряется, становится рав- ным нулю.

Недостаток дополнительного кода разное количество положительных и отри- цательных представимых чисел. Достоинство, благодаря которому он применяется почти во всех современных ЭВМ простота реализации арифметической операции вычитания чисел и вытекающее из этого упрощение структуры арифметико- логического устройства.

2.2.3 Обратный код

Обратный код решает ту же задачу, что и дополнительный код, и отличается от него только одной деталью: при переходе от прямого кода отрицательного числа к обратному коду и назад выполняется только инверсия всех цифр разрядов (исклю-

23

чая, как обычно, знаковый разряд). Последующее добавление единицы, как в случае дополнительного кода, не производится. Например, при разрядности b = 8 прямой код отрицательного числа 10011000 преобразуется инверсией разрядов его цифро- вой части в обратный код 11100111, а дополнительным кодом будет число, на еди- ницу большее, т. е. 11101000.

Таким образом, преобразование прямого кода числа в обратный код проще, чем преобразование в дополнительный код. Однако при использовании обратного кода несколько усложняется алгоритм суммирования чисел. Если при сложении чи- сел в дополнительном коде в знаковом разряде суммы возникает единица переноса, то она просто отбрасывается. При сложении чисел в обратном коде она должна не отбрасываться, а прибавляться к младшему разряду суммы кодов.

Число 0 в обратном коде имеет два представления: 00…0 и 11…1. Диапазон представимых чисел симметричен относительно нуля и совпадает с диапазоном чи- сел, представимых в прямом коде.

2.2.4 Модифицированные коды

Модифицированные коды применяются для обнаружения переполнения разряд- ной сетки и последующей коррекции результата выполненной операции.

В модифицированном обратном и модифицированном дополнительном кодах под знак числа отводится не один, а два разряда: «00» соответствует знаку плюс, «11» – знаку минус. Любая другая комбинация («01» или «10»), получившаяся в знаковых разрядах, служит признаком переполнения разрядной сетки. Сложение чи- сел в модифицированных кодах ничем не отличается от сложения в обычных обрат- ном и дополнительном кодах.

Недостатком модифицированного кода является то, что при фиксированной раз- рядности b множество представимых в нем чисел сокращается вдвое из-за умень- шения на единицу длины цифровой части числа.

Благодаря своему основному достоинству возможности восстановления пра- вильного результата при переполнении модифицированный код находит примене- ние в операциях с плавающей запятой (см. п. 2.2.6).

2.3Машинные коды вещественных чисел

Сцелью расширения диапазона чисел, представимых в заданной разрядной сет- ке, в ЭВМ используются два формата представления чисел: с фиксированной и пла- вающей запятой.

2.3.1 Числа с фиксированной запятой

Для представления числа с фиксированной запятой один разряд используется в качестве знакового, остальные разряды для записи абсолютной величины числа. Запятая, отделяющая целую часть числа от ее дробной части, занимает фиксирован- ное положение, обычно перед старшим разрядом цифровой части, т. е. после знако- вого разряда. Положение запятой фиксируется условно, она не занимает места среди цифр разрядной сетки, но подразумевается в алгоритмах выполнения арифметиче- ских операций. При типичном положении запятой в этом формате чисел их абсо- лютное значение меньше единицы, т. е. все числа представляют собой правильные

24

дроби. Например, число –0,1101012 следующим образом разместится в элементах запоминающей ячейки:

1 1 1 0 1 0 1 0 0 0 0

знаковый

разряды модуля числа

разряд

 

Свободные младшие разряды заполняются нулями (число представлено здесь в прямом коде). Поскольку целая часть всегда равна нулю, то для ее хранения выде- лять разряд не нужно. Так как в этом формате предусматривается хранение лишь дробной части чисел, то не только исходные данные, но и результаты всех прове- денных над ними операций должны быть по абсолютной величине меньше единицы. Выполнение этого условия обеспечивается выбором определенных масштабных ко- эффициентов, на которые умножаются исходные данные задачи. Неправильный вы- бор коэффициентов может вызвать переполнение разрядной сетки.

Необходимость в масштабировании данных является основным недостатком представления чисел с фиксированной запятой. Другой недостаток этого формата низкая точность представления чисел, абсолютное значение которых мало. Из-за нулей в их старших разрядах уменьшается число значащих цифр и снижается точ- ность представления таких чисел.

Числа, которые по абсолютной величине меньше единицы младшего разряда разрядной сетки, называются машинным нулем.

Если b число разрядов ячейки, то представимые в ней числа лежат в диапазоне от [1–2 –(b -1)] до +[1–2 –(b -1)]. Числа, представимые в формате с фиксированной за- пятой, изображаются на числовой оси множеством точек, равномерно расположен- ных в интервале от –1 до 1 с шагом 1/2(b –1), причем концевые точки интервала (–1 и 1) в это множество не входят.

Использование формата чисел с фиксированной запятой позволяет упростить схемы арифметико-логических устройств и повысить их быстродействие, но приво- дит к определенным трудностям при программировании. В настоящее время формат чисел с фиксированной запятой используется как основной только в микроконтрол- лерах.

В универсальных ЭВМ основным является представление чисел с плавающей за- пятой.

2.3.2 Числа с плавающей запятой

Формат чисел с плавающей запятой основан на их представлении с множителем, имеющим вид степени. Такая форма представления обычно применяется, когда при-

ходится иметь дело с очень большими или очень малыми по абсолютной величине числами. Например, так записывают гравитационную постоянную G = 6,67×10-11 (Нм2/кг2) или массу электрона, составляющую приблизительно 9×10-28 (г). Первый сомножитель в этой форме записи чисел называется мантиссой, показатель степени у второго сомножителя порядком.

25

Представление одного и того же числа в такой форме не является единственным;

десятичное число 685,7310 может быть записано и как 6,8573×102, и как 0,68573×103,

и как 0,068573×104 и т. д.

Так как в ЭВМ применяется двоичная система счисления, то порядок и мантисса представляются в двоичной форме. Двоичное число 101,0012 представляется в виде 0,101001×211; где 0,1010012 мантисса, 112 порядок, записанный, как и мантисса, в двоичной системе счисления. Основание степени чаще всего бывает равно двум (иногда в качестве основания применяют также числа 8 или 16; эти случаи рассмат- ривать не будем). За счет соответствующего выбора порядка мантисса представлена здесь числом 0,101001, меньшим 1, а ее старший разряд не равен нулю. При этом образовалась так называемая нормальная форма представления числа. Нормальная форма представления одного и того же числа определяется единственным образом.

В ячейке памяти такие числа хранятся в виде двух групп разрядов. В первой группе хранится мантисса числа, во второй порядок. Приведенное выше двоичное число может быть записано в элементах запоминающей ячейки следующим обра- зом:

0

1

0

1

0

0

1

0

0

0

0

1

1

 

 

 

разряды

 

 

 

 

 

 

разряды

знаковый

 

 

 

 

знаковый

 

модуля

 

 

мантиссы

 

 

 

разряд

 

 

 

 

 

 

 

разряд

 

порядка

числа

 

 

 

 

 

 

 

порядка

 

 

Определим диапазон представимых в нормальной форме чисел при m-разрядной мантиссе и k-разрядном порядке (m+k=b–2, т. е. знаковые разряды мантиссы и порядка здесь не учитываются).

Наименьшее положительное число в нормальной форме будет иметь мантиссу 0,100...02, а порядок (–11…1)2 = –(2k – 1), т. е. порядок будет отрицательным и мак- симальным по абсолютной величине k-разрядным двоичным целым числом. Следо- вательно, значение наименьшего положительного числа в нормальной форме равно

Nmin = 12 2−(2k −1) = 2−2k .

Наибольшее число, представимое в нормальной форме, имеет максимально воз- можное значение мантиссы 0,11...12 ≈ 1 и максимально возможное положительное значение порядка 11...12 = 2k – 1. Следовательно, наибольшее значение числа в нор-

мальной форме

Nmax = 22k −1 .

Наибольшее значение определено здесь с небольшой относительной погрешно- стью, составляющей 2-m /(1–2-m), которую мы допустили при округлении макси- мально возможного значения мантиссы до единицы. С точностью до этого округле-

26

ния диапазон представимых чисел в нормальной форме определяется лишь разряд- ностью порядка k. Пусть, например, k = 7. Тогда Nmin = 2-128 ≈ 10 -128×0,3 ≈ 10 -38, и примерно такое же значение имеет Nmax = 2127 ≈ 10 127×0,3 ≈ 1038.

Если диапазон представимых чисел определяется числом k разрядов порядка, то точность представления чисел определяется числом m разрядов, выделенных для хранения мантиссы. Когда при выполнении арифметических операций количество разрядов в мантиссе числа получается больше m, то в ячейку памяти заносятся только m старших разрядов мантиссы числа; младшие ее разряды отбрасываются. При этом может производиться округление сохраняемой части мантиссы: если старший из отбрасываемых разрядов мантиссы содержит единицу, то к младшему разряду сохраняемой части мантиссы прибавляется единица.

При таком округлении абсолютная погрешность ε представления мантиссы не превышает половины значения младшего из ее сохраняемых разрядов: ε 0,5×2-m.

Поскольку в нормальной форме мантисса x 1/2, то получается, что относительная погрешность δ = ε/ x ε/0,5 ≤ 2-m. Так, при m = 24 имеем δ ≤ 2 -24 ≈ 10 -24×0,3 ≈ 10 7,2

≈ 5,96×10 -8. При данном значении m все числа в ячейке памяти будут представлять- ся с точностью не менее 7 значащих десятичных цифр. К такой оценке точности можно прийти и простым умножением числа двоичных разрядов m на 0,3.

Заметим, что поскольку число в нормальной форме всегда в первом разряде мантиссы содержит единицу, то для хранения этой единицы нет необходимости вы- делять отдельный элемент памяти в регистре. Поэтому в 32-разрядном регистре при k = 7 разрядах порядка и двух разрядах для знаков (мантиссы и порядка), хотя и ос- тается только 32 – 7 – 2 = 23 свободных разряда, мантисса числа содержит на самом деле m = 24 разряда (один разряд, всегда равный единице, подразумевается).

Обратим внимание и на то, что число 0 не представимо в нормальной форме. По- этому для записи нуля используют какой-либо специально выделенный код из мно- жества всех кодов, имеющих нормальную форму. Например, в международном стандарте IEEE (Института инженеров по электротехнике и электронике) для пред- ставления числа 0 выделяется специальное 32-разрядное двоичное слово, в котором подразумеваемый разряд мантиссы равен 1, остальные ее 23 разряда нулевые, а порядок равен (–127)10. Таким образом, здесь код наименьшего представимого в нормальной форме числа используется в качестве кода «чистого» нуля. Кроме того, на краях диапазона положительных чисел с плавающей запятой выделена часть спе- циальных двоичных кодов, которые используются не как числа. Один из таких спе- циальных кодов является, например, кодом бесконечности [2].

Нормальная форма позволяет получать представление чисел в широком диапазо-

не с одинаковой относительной погрешностью δ. Использование чисел с плавающей запятой позволяет обходиться без масштабирования данных. Однако выполнение операций над числами с плавающей запятой сложнее, чем над числами с фиксиро- ванной запятой.

27

2.3.3 Выполнение операций над числами с плавающей запятой

Правила выполнения операций над числами с плавающей запятой можно устано- вить, опираясь на их алгебраическое представление в виде x = m×2p, где m ман- тисса, p порядок числа. Будем считать, что перед выполнением операции числа записаны в нормальной форме, и результат операции перед сохранением также дол- жен быть нормализован. Мантисса нормализованного числа удовлетворяет неравен-

ству

½ ≤ | m | < 1.

Будем считать также, что мантисса и порядок исходных чисел и результатов опе- раций представляются в прямом коде.

При умножении чисел с плавающей точкой их мантиссы перемножаются, а порядки суммируются, при делении мантисса частного обра-

зуется делением мантиссы делимого на мантиссу делителя, а порядок частного вычитанием порядка делителя из порядка делимого.

Результат операции нормализуется путем сдвига разрядов мантиссы в нужную сторону с надлежащей корректировкой порядка. Если мантисса сдвигается на один разряд влево, т. е. увеличивается вдвое, то порядок должен быть на единицу умень- шен. При сдвиге мантиссы на разряд вправо порядок должен быть на единицу уве- личен.

Для сложения (и вычитания) чисел в нормальной форме в общем случае необхо- димо предварительно выполнить операцию выравнивания их порядков, т. к. числа с разными порядками сразу суммировать нельзя. Для приведения чисел к одному по- рядку приходится временно денормализовать слагаемое, у которого порядок мень- ше. Его порядок увеличивают на недостающее число единиц, а мантиссу на это же число разрядов сдвигают вправо.

После выравнивания порядков производится преобразование мантисс слагаемых в модифицированный код (дополнительный или обратный), затем суммирование мантисс по правилу сложения чисел с фиксированной запятой. При этом мантисса суммы может переполнить разрядную сетку. В таких случаях модифицированный код позволяет не только отметить факт переполнения, но и восстановить правиль- ный результат путем сдвига кода мантиссы на один разряд вправо и, соответствен- но, увеличения порядка суммы на 1.

Результат выполнения любой операции может получиться не нормализованным. Перед сохранением в памяти он нормализуется, и, если мантисса представлена мо- дифицированным кодом, она переводится в прямой код.

Переполнение при выполнении операций плавающей арифметики распознается по слишком большим положительным значениям порядка. Наряду с этим возникает еще проблема исчезновения порядка, когда получается результат со слишком боль- шим по модулю отрицательным порядком. В этом случае в качестве результата обычно берут 0 и продолжают вычисления дальше.

Более подробное описание алгоритмов выполнения операций над дробными дво- ичными числами приводится в учебном пособии [4]; здесь можно найти и алгорит- мы ускоренного выполнения арифметических операций.

28

2.3.4 Аппаратное ускорение операций с дробными числами

Аппаратно в процессоре реализуются, как правило, только арифметические опе- рации с целыми числами. В этом типичном случае дробные числа в формате с фик- сированной или плавающей запятой существуют только в уме программиста, но не в регистрах процессора. Программист, который пишет программы на языке низкого уровня, должен программировать операции плавающей арифметики посредством операций с целыми числами самостоятельно, либо пользоваться подпрограммами, написанными другими программистами. Поэтому использование плавающей ариф- метики существенно замедляет скорость выполнения программ.

В1980 году фирма Intel создала первый математический сопроцессор.

Вобщем случае сопроцессор можно рассматривать как архитектурное расшире- ние центрального процессора. Это означает, что к обычным регистрам процессора добавляются регистры сопроцессора. Данные представляются в 80-разрядных реги- страх сопроцессора в формате с плавающей запятой: с 64-разрядной мантиссой и 15-разрядным порядком [3]. Такое представление не зависит от формы представле- ния данных при загрузке регистров сопроцессора, т. к. целые числа и числа с фикси- рованной запятой любой длины (16-, 32- или 64-разрядные) записываются в 64-разрядную мантиссу сопроцессора без потери точности; порядок при этом при- нимается равным нулю. Такая единая форма представления помогает упростить ал- горитмы выполнения операций сопроцессора.

Сопроцессор может работать параллельно с центральным процессором, т. е. од- новременно с ним, и резко увеличивает скорость операций с плавающей запятой за счет их аппаратной реализации. Это поднимает производительность компьютеров при решении задач с большим объёмом вычислений высокой точности, например таких, как машинная графика, статистические и инженерные расчеты.

3 ФУНКЦИОНАЛЬНАЯ И СТРУКТУРНАЯ ОРГАНИЗАЦИЯ КОМПЬЮТЕРА

В информатике ЭВМ называют компьютерами от английского computer – вычис- лительная машина общего назначения. Современные компьютеры различают по размерам и производительности. Персональные ЭВМ (ПЭВМ), или персональные компьютеры, разделяют на три класса [5]:

файл-серверы (server – обслуживающее устройство): вычислительная машина в узле сети, обеспечивающая обмен данными между компьютерами, а также хранение информации и архивное обслуживание компьютеров сети;

переносные (портативные) (notebook);

настольные (desktop).

Переносные компьютеры функционально не отличаются от настольных и вклю- чают в себя все основные компоненты: процессор, память, накопители на дисках. Обычно настольные компьютеры состоят из системного блока, монитора и клавиа- туры. Часто к ним подключен принтер (печатающее устройство) и манипулятор

мышь»).

Сейчас подавляющее большинство персональных компьютеров относятся к типу «IBM PC-совместимых», хотя фирма IBM – создатель массового персонального компьютера утратила свое господство в этой области. Заслуга фирмы IBM состоит

29

в выработке и утверждении единого стандарта на основные части компьютера. До этого каждый производитель создавал собственную уникальную конструкцию, в ре- зультате чего становился монополистом на сборку и обслуживание этих устройств.

Компьютер IBM PC стал популярен благодаря нововведённому принципу откры- той архитектуры. Фирма оповестила всех об особенностях конструкции нового ком- пьютера, тем самым стимулируя производство совместимых с IBM PC компьютеров других фирм. IBM PC-совместимый компьютер похож на конструктор: каждое из составляющих его устройств можно поменять на другое того же типа, но более со- вершенное, от других фирм-производителей. Благодаря этому становится возмож- ной быстрая сборка компьютера непосредственно под заказ, а также простая модер- низация компьютера.

Параллельно с IBM PC-совместимыми компьютерами создавались и совершен- ствовались персональные компьютеры Macintosh фирмы Apple, отличающиеся как по архитектуре, так и по элементной базе.

3.1 Типовая структура компьютера

Типовая компьютерная система включает пять функциональных блоков [6]: уст-

ройство ввода, память, арифметическое устройство, устройство управления и устройство вывода. Физические компоненты и схемы, составляющие компьютер это его аппаратура (hardware). Аппаратура способна выполнять только ограничен- ный набор элементарных операций. Все прочие функциональные возможности ком- пьютера достигаются программным путем. Программа это определенным образом организованная совокупность элементарных машинных операций, называемых ко- мандами или инструкциями, с помощью которых осуществляется обработка инфор- мации, или данных. Программы, написанные для компьютера, образуют его про-

граммное обеспечение (software).

Программа и данные сначала накапливаются в памяти, куда они поступают через устройство ввода. Затем отдельные команды программы одна за другой автоматиче- ски поступают в устройство управления, которое их расшифровывает и выполняет. Для выполнения операции обычно требуется, чтобы данные поступили в арифмети- ческое устройство, содержащее все необходимые для их обработки схемы. В про-

цессе вычислений или после его завершения полученные результаты направляются в устройство вывода. Арифметическое устройство и устройство управления вме- сте обычно называются центральным процессорным устройством (ЦПУ), или

центральным процессором (ЦП). Центральный процессор в микрокомпьютерной системе и есть микропроцессор.

Не только память, но и другие устройства ЭВМ способны хранить информацию. Информация запоминается как содержимое групп двоичных разрядов битов на запоминающих устройствах регистрах. По существу, любую операцию в ЭВМ можно рассматривать как серию передач информации между регистрами с возмож- ным её преобразованием (например, сложением), выполняемым в процессе передач. Группа двоичных цифр, обрабатываемых одновременно, называется машинным сло- вом, а число двоичных цифр, составляющих слово, называется длиной слова. Слово является базовой логической единицей информации в компьютере. Команды или данные обычно состоят из одного или нескольких слов. Типичные микропроцессоры

30