Реклама:

Таненбаум Э.- Архитектура компьютера. стр.194

Самой большой и самой важной частью блока управления является управляющая память. Удобно рассматривать ее как память, в которой хранится вся микропрограмма, хотя иногда микропрограмма реализуется в виде набора логических вентилей. Мы будем называть ее управляющей памятью, чтобы не путать с основной памятью, доступ к которой осуществляется через регистры MBR и MDR. Функционально управляющая память представляет собой память, в которой вместо обычных команд хранятся микрокоманды. В нашем примере она содержит 512 слов; каждое слово состоит из одной Зб-разрядной микрокоманды, формат которой показан на рис. 4.4. В действительности не все эти слова нужны, но по ряду причин нам требуются адреса для 512 отдельных слов.

Управляющая память отличается от основной памяти тем, что команды, хранящиеся в основной памяти, выполняются в соответствии с их адресами (за исключением ветвлений), а микрокоманды — нет. Увеличение счетчика команд в листинге 2.1 означает, что команда, которая будет выполняться после текущей, располагается вслед за ней в памяти. Микропрограммы должны обладать большей гибкостью, поскольку последовательности микрокоманд обычно короткие и этим свойством не обладают. Вместо этого каждая микрокоманда сама указывает на следующую микрокоманду.

Поскольку управляющая память функционально представляет собой ПЗУ, ей нужны собственные адресный регистр и регистр данных. Ей не требуются сигналы чтения и записи, поскольку процесс считывания происходит постоянно. Мы назовем адресный регистр управляющей памяти MPC (Microprogram Counter — счетчик микропрограмм). Название не очень подходящее, поскольку микропрограммы не упорядочены явным образом, и понятие счетчика тут неуместно, но мы не можем пойти против традиций. Регистр данных мы назовем MIR (Micro-Instruction Register — регистр микрокоманд). Он содержит текущую микрокоманду, биты которой запускают сигналы управления, влияющие на работу тракта данных.

Регистр MIR, изображенный на рис. 4.5, содержит те же шесть групп сигналов, которые показаны на рис. 4.4. Группы Addr и J (то же, что JAM) контролируют выбор следующей микрокоманды. Мы обсудим их чуть позже. Группа ALU содержит 8 бит, которые позволяют выбрать функцию АЛУ и запустить схему сдвига. Биты С загружают отдельные регистры с шины С. Сигналы M управляют работой памяти.

Наконец, последние 4 бита запускают декодер, который определяет, значение какого регистра будет передано на шину В. В данном случае мы выбрали декодер с 4 входами и 16 выходами, хотя имеется всего 9 разных регистров. В более проработанной модели мог бы использоваться декодер, имеющий 4 входа и 9 выходов. Мы задействуем стандартную схему, чтобы не разрабатывать собственную. Использовать стандартную схему гораздо проще, и, кроме того, вы сможете избежать ошибок. Ваша собственная микросхема займет меньше места, но на ее разработку потребуется довольно длительное время, к тому же вы можете построить ее неправильно.

Схема, изображенная на рис. 4.5, работает следующим образом. В начале каждого цикла (фронт синхронизирующего сигнала на рис. 4.2) в регистр MIR загружается слово из управляющей памяти, которая на рисунке отмечена буквами MPC. Загрузка регистра MIR занимает период Aw, то есть первый подцикл (см. рис. 4.2).


⇐ Предыдущая страница| |Следующая страница ⇒