Модель процессора.
(Молчанов Н.Н.МГУ, мех-мат.+Логисим+Лилов И.П. )
Мы не будем рассматривать этот вопрос в смысле технологии изготовления микросхем. Гораздо важнее понять, каким способом можно из сравнительно простых логических узлов построить схему, которая будет не просто выполнять какую-то отдельно взятую функцию как, например, комбинационная схема, а может быть инициатором и координатором сложнейших информационных процессов, происходящих внутри компьютера.
Что такое процессор? Процессор – это прибор позволяющий выполнять бесконечную последовательность арифметических и логических операций над данными, и изменять эту последовательность в зависимости от результатов предыдущих операций или внешних условий.
Работа процессора состоит из двух основных составляющих – собственно выполнения арифметических и логических операций над данными, и организации последовательности их выполнения.
Какие действия должен уметь выполнять процессор. В компьютерах, построенных на принципах фон Неймана, процессор должен уметь следующее:
Считывать команды и данные из оперативной памяти (и других устройств).
Выполнять арифметические и логические операции над данными.
Последовательно выполнять команды по обработке данных.
Изменять последовательность выполнения команд в зависимости от результатов вычислений.
Простейший «процессор»
Рассмотрим схему простейшего процессора (управляющего устройства):
Сосотавные части.
Постоянная память, в которой записана какая-то информация. Это ПЗУ хранит 4096 16-разрядных слов.
Регистр 8-разрядный (расположен левее, Di0-Di7)
Мультиплексор. Управление S0-S2, выход D.
(под полную запись )
Если включить это устройство, установив логический ноль на входы, обозначенные как «выбор программы» и подать импульс сброса, то через короткое время из постоянной памяти будет считано 16-разрядное слово, записанное по нулевому адресу. Допустим, что в этом слове записано значение 0000000000000001.
Это означает, что на всех выходах ( D10-D15, это старшие разряды 0000000 000000001. ) «управление исполнительными устройствами» будет состояние логического нуля.
На адресных входах (D7-D9) мультиплексора тоже будет логический ноль, а следовательно, будет выбран нулевой вход мультиплексора, на котором всегда установлен ноль. И только на самом младшем входном разряде регистра (Di0 ) будет установлена логическая единица.
Разряды данных |
D15 |
D 14 |
D 13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
D 0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Значение |
управление внешними устройствами |
выбор условия |
адрес следующей команды |
Если теперь поступит одиночный тактовый импульс, то в регистр запишется значение 00000001, и через короткое время на выходе памяти появится содержимое другого слова данных.
Если это слово в младших разрядах содержит 0000010, то произойдет переход на следующий адрес. Таким образом, это устройство может последовательно, слово за словом, извлекать данные из постоянной памяти и интерпретировать их некоторым образом.
Теперь допустим, что в этом слове записано 000000 111 0000010. Соответственно, после его считывания на управляющих выходах по-прежнему будет 0, а мультиплексор выберет седьмой вход и передаст его на вход Di7 регистра.
На остальных входах регистра будет значение 0000010. Какое значение будет на седьмом входе мультиплексора, и что он передаст на старший разряд регистра, мы не знаем. Поэтому с приходом следующего тактового импульса в регистр будет записано либо 1000010, если на седьмом входе мультиплексора логическая единица, и 00000010, если на этом входе ноль. Таким образом, очередное слово может извлекаться из памяти не только раз и навсегда заданным способом, но и в зависимости от внешних условий.
Шесть старших разрядов данных, хранящихся в постоянной памяти можно использовать для управления какими-нибудь внешними механизмами, а входы мультиплексора для анализа состояния каких либо датчиков. Последовательностей управляющих слов может быть несколько разных, если использовать входы «выбор программы».
Таким образом, это устройство обладает одной из основных функций процессора – оно может выполнять последовательность заданных команд, и изменять последовательность их выполнения в зависимости от внешних условий. Тогда формат команды нашего процессора будет следующим:
Разряды данных |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Значение |
управление внешними устройствами |
выбор условия |
адрес следующей команды |
ПРОГРАММИРОВАНИЕ ПРОЦЕССОРА.
Пример. К каждому управляющему выходу подключим елочную гирлянду. Тогда программа, которая будет по очереди зажигать эти гирлянды по одной, будет выглядеть вот так:
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Адрес в памяти |
управление внешними устройствами |
выбор условия |
адрес следующей команды | |||||||||||||
0000000000000000 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0000000000000001 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0000000000000010 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0000000000000011 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0000000000000100 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0000000000000101 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Этому устройству можно придумать и более полезные применения..
Везде, где требуются управление какими-либо механизмами и не требуются арифметические вычисления, можно применить такое устройство.
Итак, что может, и чего не может это устройство? Это устройство может формировать управляющие последовательности выходных сигналов в зависимости от состояния входных. Поскольку число элементов схемы невелико, оно может делать это с очень высокой скоростью, выше, чем это делал бы любой микропроцессор или микроконтроллер на основе микропроцессора. Но в то же время, это устройство не обладает другим основным свойством процессора - оно не может выполнять арифметические и логические операции над какими-либо данными и не может запоминать эти данные.