Архитектуры компьютера 

Архитектуры компьютера

1.3.1

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

Рис. 1.5 (а) можно представить в развернутом виде, как показано на рис. 1.6. Эта блок-схема (свойственная всему диапазону — от портативного домашнего компьютера до большой универсальной коммерческой вычислительной машины) содержит шесть составных частей.

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

2. Запоминающее устройство, или память, где хранятся инструкции, которые должен выполнять компьютер, и данные, которые он должен обрабатывать. Эти данные могут представлять собой информацию, полученную из внешнего мира, или промежуточные результаты вычислений, выполненных машиной. Память состоит из ряда ячеек, каждая из которых хранит одно число и идентифицируется адресом, как показано на рис. 1.7. Компьютеры работают с данными, представленными в двоичной системе (описание двоичной, шестнад-цатеричной и других систем счисления см. в Приложении), и память не различает смысл данных, хранящихся в ней. Например, в 8-разрядном компьютере (работающем с числами, длина которых составляет 8 бит) число 01100001 можно интерпретировать как:

  • Десятичное число 97.
  • Шестиадцатеричное число 61 (см. Приложение).
  • Букву «а» (см. главу 6).
  • Состояние восьми концевых выключателей, заданное дискретными сигналами.
  • Инструкцию для компьютера. Если это старый микропроцессор Z80, то шестнадцатеричное 61 перемещает число между двумя внутренними ячейками памяти.

Типичный настольный компьютер использует 16-разрядные числа (называемые 16-битовыми словами) и имеет более миллиона ячеек памяти. Промышленные компьютеры, которые мы в основном будем рассматривать, имеют гораздо меньшую память — от 32 000 до 64 000 ячеек, что наиболее типично для больших управляющих машин, но имеются и меньшие машины всего с 1000 ячеек памяти.

Рис. 1.6. Составные части компьютера
Рис, 1.7. Простое представление памяти компьютера

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

4. Выходное устройство, с помощью которого данные из компьютера выводятся во внешний мир.

5. Арифметико-логическое устройство (сокращенно — АЛУ), выполняющее операции над данными, хранящимися в памяти, в соответствии с заданными инструкциями.

6. Устройство управления, координирующее работу остальных пяти устройств. Часто АЛУ и устройство управления, объединенные вместе, называются центральным процессором (ЦП). Микропроцессор — это ЦП, выполненный в виде одной интегральной схемы.

Инструкции, выполняемые компьютером, хранятся в памяти и, за несколькими исключениями, которые будут кратко рассмотрены ниже, исполняются последовательно, как показано на рис. 1.8 (а).

Рис. 1.8. Выполнение программы в компьютере:(а) простая последовательность операций; (б) условный переход; (в) вызов подпрограммы

Устройство управления содержит счетчик, называемый регистром команд (или РК), который сообщает, по какому адресу в памяти должна быть найдена следующая инструкция. Иногда используется термин «счетчик команд» (сокращенно — СК).

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

Инструкции почти всегда требуют выполнения определенных операций над данными в памяти (например, сложить два числа), поэтому устройство управления должно перенести данные из памяти в АЛУ и выполнить необходимое действие.

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

Существует очень немного типов инструкций. Для большинства микропроцессоров доступны следующие:

1. Пересылка данных из одного места в другое (например, поместить входные данные в ячейку памяти или переслать данные из ячейки памяти в АЛУ).

2. Операции АЛУ над двумя элементами данных, один из которых находится в АЛУ, а другой в определенной ячейке памяти. Обычно это сложение, вычитание и логические операции, такие как И, ИЛИ.

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

IF (некоторое условие) THEN

Выполнить некоторые инструкции

>ELSE

Выполнить ряд других инструкций

Например, чтобы проверить температуру, мы могли бы записать:

IF Температура меньше, чем 75 °С THEN

Включить индикатор исправности

Выключить индикатор неисправности

ELSE

Выключить индикатор исправности

Включить индикатор неисправности

Такие операции используют условные переходы. Они помещают в регистр команд новый адрес в зависимости от последнего результата в аккумуляторе. Условные переходы можно определить как действия, зависящие от некоторого результата вычислений (положительного, отрицательного или нулевого) и позволяющие программе следовать по одному из двух альтернативных путей, как показано на рис. 1.8 (б).

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