Меню:
|
Простейший процессор
Хитрый прибор из простых деталей
Если оставить пока в стороне обработку данных, и рассмотреть
только организацию последовательного исполнения чего-нибудь, не важно чего,
можно начать с рассмотрения примитивного устройства. Но примитивным это
устройство может показаться только на первый взгляд. Не смотря на то, что это
устройство состоит всего из трех деталей, в нем заложены довольно интересные
возможности для программирования и программного управления другими
устройствами. Рассмотрим вот такую схему:
Из чего это состоит?
Справа внизу мы видим постоянную память, в которой записана
какая-то информация. Это ПЗУ хранит 4096 16-разрядных слов. Правее мы видим
регистр, в который могут быть записаны младшие семь разрядов слова данных,
считанные из постоянной памяти. В самый старший разряд регистра может быть
записано логическое значение выхода мультиплексора, расположенного вверху.
Данные, находящиеся в регистре, используются в качестве младшей части адреса
постоянной памяти.
Другая группа разрядов слова данных, хранящегося в ПЗУ,
используется для выбора одного из восьми источников внешних сигналов. Выбранный
источник будет записан в старший разряд регистра, и будет использоваться в
качестве одного из разрядов адреса памяти.
Как это действует?
Если включить это устройство, установив логический ноль на
входы, обозначенные как «выбор программы» и подать импульс сброса, то через
короткое время из постоянной памяти будет считано 16-разрядное слово,
записанное по нулевому адресу. Допустим, что в этом слове записано значение
0000000000000001. Это означает, что на всех выходах «управление исполнительными
устройствами» будет состояние логического нуля. На адресных входах
мультиплексора тоже будет логический ноль, а следовательно, будет выбран
нулевой вход мультиплексора, на котором всегда установлен ноль. И только на
самом младшем входном разряде регистра будет установлена логическая единица.
Если теперь поступит одиночный тактовый импульс, то в регистр запишется
значение 00000001, и через короткое время на выходе памяти появится содержимое
другого слова данных. Если это слово в младших разрядах содержит 0000010, то
произойдет переход на следующий адрес. Таким образом, это устройство может
последовательно, слово за словом, извлекать данные из постоянной памяти и
интерпретировать их некоторым образом.
Теперь допустим, что в этом слове записано 0000001110000010.
Соответственно, после его считывания на управляющих выходах по-прежнему будет
0, а мультиплексор выберет седьмой вход и передаст его на вход регистра. На
остальных входах регистра будет значение 0000010. Какое значение будет на
седьмом входе мультиплексора, и что он передаст на старший разряд регистра, мы
не знаем. Поэтому с приходом следующего тактового импульса в регистр будет
записано либо 1000010, если на седьмом входе мультиплексора логическая единица,
и 00000010, если на этом входе ноль. Таким образом, очередное слово может
извлекаться из памяти не только раз и навсегда заданным способом, но и в
зависимости от внешних условий.
Шесть старших разрядов данных, хранящихся в постоянной
памяти можно использовать для управления какими-нибудь внешними механизмами, а
входы мультиплексора для анализа состояния каких либо датчиков.
Последовательностей управляющих слов может быть несколько разных, если
использовать входы «выбор программы».
Таким образом, это устройство обладает одной из основных
функций процессора – оно может выполнять последовательность заданных команд, и
изменять последовательность их выполнения в зависимости от внешних условий.
Тогда формат команды нашего процессора будет следующим:
Разряды данных
|
15
|
14
|
13
|
12
|
11
|
10
|
9
|
8
|
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
Значение
|
управление внешними устройствами
|
выбор условия
|
адрес следующей команды
|
Заметим, что в нашей схеме, управляющий вход с нулевым
номером всегда имеет нулевое значение.
Автор текста - Молчанов Н.Н. |
Дополнительно:
|