МО и ПО РФ
НГТУ
Кафедра ВТ
Расчетно-графическая работа по схемотехнике
«Разработка прототипа ядра микроЭВМ»
Выполнил:
Студент гр. АМ-910
Факультета АВТ
Преподаватель:
Новосибирск 2001
Содержание:
1. Цели разработки..................................................................................................................................... 3
2. Исходные данные................................................................................................................................. 3
2.1. Общие исходные данные............................................................................................................ 3
2.2. Индивидуальные исходные данные................................................................................. 3
3. Определение недостающих данных.................................................................................. 3
3.1. Форматы команд............................................................................................................................... 3
3.1.1. RR: регистр – регистр...................................................................................................................... 3
3.1.2. SR: память - регистр........................................................................................................................ 4
3.1.3. RS: регистр - память........................................................................................................................ 4
3.1.4. RI: регистр - непосредственные данные...................................................................................... 4
3.1.5. Переход................................................................................................................................................. 4
3.2. Формат данных.................................................................................................................................. 4
3.3. Определение сдвиговых операций..................................................................................... 4
3.3. Формат статусного регистра.................................................................................................. 5
4. Разработка структурной схемы процессора.............................................................. 5
4.1. Разработка операционного блока....................................................................................... 5
4.2. Схемная поддержка микропрограммной реализации операции умножения 6
4.3. Расчет длительности цикла операционного блока.............................................. 6
4.4. Разработка структурной схемы МУУ................................................................................. 7
4.5. Расчет длительности цикла МУУ.......................................................................................... 8
4.6. Формат микрокоманды............................................................................................................... 9
1. Цели разработки
Целью разработки является прототип ядра микроЭВМ с желаемыми характеристиками:
· высокое быстродействие
· простота и надежность схемных решений.
2. Исходные данные
2.1. Общие исходные данные
Прототип ядра микроЭВМ должен соответствовать следующим требованиям к его характеристикам и параметрам:
· Система команд гипотетическая. Формат команд: одно-, двухадресные и безадресные. Допускается детализация структуры ядра только для одно - и двухадресного форматов команд;
· Количество программно-доступных регистров общего назначения - не менее 8;
· Формат представления данных в процессоре – с фиксированной точкой целочисленный в дополнительном коде и с разрядностью слова, определяемой индивидуальными исходными данными;
· Структура магистрали – трехшинная;
· Процессор должен быть оснащен схемными средствами поддержки начальной установки при включении и возобновлении питания.
2.2. Индивидуальные исходные данные.
Состав, элементная база и разрядность операционного блока:
· Микропроцессорная секция Am29C01 (отечественный аналог К1804ВС1).Разрядность 16 бит.
· Схемная поддержка микропрограммной реализации операции умножения.
Требования к микропрограммному устройству управления:
· Секвенсер микрокоманд Am29C10A;
· Разрядность адреса секвенсера микрокоманд – 12 бит;
· Ёмкость встроенной микропрограммной памяти – 4 Кслов.
3. Определение недостающих данных
Определение недостающих исходных данных следует начать с выбора форматов команд.
3.1. Форматы команд
Команда состоит из одного или двух 16-разрядных слов и должна размещаться в основной памяти с соблюдением границ слов.
3.1.1. RR: регистр – регистр
15 | 8 | 7 | 4 | 3 | 0 |
КОП | R1 | R2 |
16-разрядная команда. 8-разрядное поле кода операции (далее КОП) может адресовать 256 команд. 4-разрядные поля R1 и R2 адресуют 16 регистров общего назначения (программно доступные).
В командах RR:
R1 – регистр – приемник/источник
R2 – регистр – источник.
3.1.2. SR: память - регистр
15 | 8 | 7 | 4 | 3 | 0 |
КОП | R1 | X2 |
В командах SR:
R1 – регистр – приемник
X2 – регистр, хранящий адрес памяти - источника. (косвенная адресация без индексации)
3.1.3. RS: регистр - память
15 | 8 | 7 | 4 | 3 | 0 |
КОП | X1 | R2 |
В командах RS:
X1 – регистр, хранящий адрес памяти - приемника. (косвенная адресация без индексации)
R2 – регистр – источник
3.1.4. RI: регистр - непосредственные данные
15 | 8 | 7 | 4 | 3 | 0 |
КОП | R1 | Резерв | |||
Данные |
R1 – регистр – приемник/источник
3.1.5. Переход
15 | 8 | 7 | 4 | 3 | 0 |
КОП | M | Резерв | |||
d |
M – поле, указывающее, какое условие проверять в условных переходах;
d – адрес памяти.
3.2. Формат данных
Все данные имеют формат 16 бит и хранятся в памяти в виде 16 разрядных слов, при считывании из памяти и записи в память действия производятся над 16-ти разрядным словом. Диапазоны чисел: беззнаковое целое (16 бит) [0..65535], целое со знаком (16 бит) [-32768..32767].
3.3. Определение сдвиговых операций
Т. к. Am29C01 – это микропроцессорная секция, то для реализации сдвиговых операций необходимо предусмотреть внешнюю по отношению к процессору логику сдвигов.
Обеспечим поддержку стандартных сдвигов:
· Логический сдвиг с вводом 0 в освобождающийся разряд
· Циклический сдвиг одинарной длины
· Циклический сдвиг двойной длины
Для схемной поддержки микропрограммной реализации операции умножения потребуется арифметический сдвиг вправо двойной длины с вводом знакового бита в старший разряд.
3.3. Формат статусного регистра
Т. к. Am29C01 – это секционный микропроцессор, то необходимо предусмотреть внешний по отношению к процессору статусный регистр. Требование к разрядности этого регистра: минимальная разрядность регистра определяется количеством признаков, порождаемых АЛУ. Am29C01 формирует 4 признака. Для поддержки сдвиговых операций двойной длины в статусном регистре необходимы также 2 бита связи.
u1 | u2 | L2 | L1 | C | V | Z | N |
N (Negative) – флаг отрицательного результата
Z (Zero) – флаг нуля
V (Overflow) – флаг переполнения
C (Carry) – флаг переноса
L1, L2 (Link) – биты связи
u1, u2 – пользовательские биты
4. Разработка структурной схемы процессора
4.1. Разработка операционного блока
Основой операционного блока является каскад четырехразрядных наращиваемых микропроцессорных секций Am29C01, соединенных при помощи схемы ускоренного переноса (Am29C02).
Т. к. реализация возможности наращивания разрядности процессорных секций не позволяет интегрировать на их кристалле функционально необходимые элементы, то в структуру операционного блока необходимо добавить:
· Логику сдвигов;
· Блок статусного регистра.
Чтобы исключить конфликты при доступе к системным шинам адреса и данных, необходимы интерфейсные элементы.
Интерфейсным элементом для шины данных (для выходных данных) должен быть регистр с динамическим управлением записью, чтобы данные в течение одного такта были неизменными. Выходная шина этого элемента должна быть тристабильной, для того чтобы дать возможность использовать эту шину другими устройствами. Разрядность этого регистра должна быть 16 бит. Такой регистр, обладающий высоким быстродействием – IDT74FCT16374ET. Он будет использоваться в качестве регистра выходных данных.
Интерфейсным элементом для шины адреса (для выходного адреса) должен быть регистр, обладающий такими же свойствами, как и регистр выходных данных. Но кроме этого, у него должно быть разрешение загрузки. Когда центральный процессорный элемент сформирует адрес памяти, а в следующем такте – данные, то без входа разрешения загрузки, эти данные уничтожали бы хранящиеся в регистре адреса. Таким регистром является IDT74FCT16823ET. Это будет регистр адреса памяти.
Чтобы организовать и микропрограммный, и программный доступ к регистрам общего назначения, нужно поставить мультиплексоры для выбора источника адресации РОН. Т. к. источников адресации два (регистр команд, регистр микрокоманд), и адрес – 4 бита, то на каждый адресный вход нужно поставить четырехразрядный мультиплексор 2в1. Таким мультиплексором является, например, SN74AHCT157. Он обладает также неплохими скоростными свойствами.
В цепи входного переноса должен быть мультиплексор, чтобы была возможность подавать на вход Cin (входной перенос) либо 0, либо 1, либо флаг переноса из статусного регистра. Источников три, поэтому нужен мультиплексор 3в1. Так как стандартных микросхем удовлетворяющих таким требованиям нет, то воспользуемся мультиплексором 4в1. Для этого можно воспользоваться половиной мультиплексора SN74AS153. Он обладает неплохими скоростными свойствами.
Чтобы организовать программный доступ к статусному регистру, нужно поставить мультиплексор, выбирающий, что нужно подавать на входы статусного регистра (либо флаги, формируемые АЛУ, дополненные битами сдвигов из логики сдвигов, либо выход Y центрального процессорного элемента). Таким образом, источниками для этого мультиплексора будут два 8-разрядных слова, т. е. это должен быть 8-разрядный мультиплексор 2в1. Для этих целей вполне подойдут два 4-разрядных мультиплексора 2в1 (SN74AHCT157).
В качестве статусного регистра нужно выбрать 8-разрядный регистр. Но для того, чтобы организовать возможность сохранять статусное состояние, нужно поставить буфер на выходе статусного регистра, который дает возможность выводить статус в локальную шину. Но для этих целей я решил воспользоваться необычной архитектурой регистра IDT74FCT16374ET. Он 16-разрядный, но состоит из двух половин. Одна его половина всегда прозрачна и подает состояние на секвенсер. Другой выход тристабильный для вывода в локальную шину.
Я решил использовать локальную шину, чтобы не ставить громоздких конструкций с мультиплексорами на входе данных ЦПЭ. Вместо этого нужно поставить регистр входных данных, который имеет тристабильный выход, и подает на локальную шину сигнал с шины данных. Такой 16-разрядный регистр с динамическим управлением и разрешением выхода – IDT74FCT16374ET.
4.2. Схемная поддержка микропрограммной реализации операции умножения
Алгоритм умножения:
Очистить RB RB0
Загрузить множимое в RA RAмножимое
Загрузить множитель в Q Qмножитель
Предварительный сдвиг RBRB/2 ; QQ/2 ;
Цикл по счетчику Если Q0=0, то RB(RB+0)/2 ; QQ/2 ;
(n-1) шагов Если Q0=1, то RB(RB+RA)/2 ; QQ/2;
Шаг коррекции Если Q0=0, то RBRB/2 ; QQ/2 ;
Если Q0=1, то RB(RB-RA)/2 ; QQ/2;
Чтобы обеспечить схемную поддержку микропрограммной реализации операции умножения, необходимо обеспечить следующие взаимосвязи:
Выход Q0 самой младшей секции необходимо подать сначала на инвертор, а затем на мультиплексор, управляемый селекторным битом микрокоманды. При умножении этот мультиплексор выбирает инвертированный Q0, а при нормальной работе – бит инструкции I1. Таким образом, в режиме умножения на вход инструкции I1 всех секций подается инвертированный Q0, чем обеспечивается следующий выбор операндов для АЛУ:
Q0 | Инвертированный Q0 = Вход I1 | Источники операндов |
0 | 1 | B+0 |
1 | 0 | B+A |
А также необходимо обеспечить поддержку арифметического сдвига вправо двойной длины с вводом знакового бита в старший разряд.
Структурная схема ОБ приведена на рис. 1
4.3. Расчет длительности цикла операционного блока
При оценке длительности цикла отыскивается критический путь распространения сигналов, который вносит максимальную задержку.
Критические пути распространения сигналов:
· Задержка распространения регистра микрокоманд (вход тактирования – выход данных) ® задержка распространения мультиплексора выбора адреса A ® задержка МПС от адресных входов A[0..5] до выходов сдвигов (+схема ускоренного переноса) ® задержка распространения логики сдвигов ® задержка распространения селектора входа статусного регистра ® время предустановки SRG.
Tз. РгМк(CLK®Din) | Тз. расп. SelA | TAB®PR0,15 | Тз. расп. ЛС | Тз. расп. SelStat | Tsu SRG | Итого: |
3.7 | 9.5 | 57+11.4 | 7.5 | 7.5 | 1.5 | 98.1 |
· Задержка распространения регистра микрокоманд (вход тактирования – выход данных) ® задержка распространения мультиплексора выбора адреса A ® задержка МПС от адресных входов A[0..5] до выходов сдвигов (+схема ускоренного переноса) ® задержка распространения логики сдвигов ® время предустановки регистров RAM[0,15] и Q[0,15].
Tз. РгМк(CLK®Din) | Тз. расп. SelA | TAB®PR0,15 | Тз. расп. ЛС | Tsu RAM&Q | Итого: |
3.7 | 9.5 | 57+11.4 | 7.5 | 12.6 | 101.7 |
Таким образом, минимальная длительность цикла ОБ – 101,7 нс.
4.4. Разработка структурной схемы МУУ
Выбор секвенсера обусловлен индивидуальным заданием. Это Am2910A.
В качестве структуры МУУ выбран конвейер первого порядка с регистром микрокоманд. Требования к этому регистру: динамическое управление загрузкой, разрешение вывода для определенных полей. Из большого числа регистров был выбран IDT74FCT16374ET фирмы Integrated Device Technology, чтобы не использовать много разных типономиналов.
Т. к. в выбранных форматах команд КОП – это 8-битное поле, то оно может адресовать 256 команд. Т. к. размер микропрограммной памяти – 4К слова, то информационная организация ПНА должна быть 256*12, а информационная организация МПП – 4К*64 (т. к. микрокоманда – 64 бита). Чтобы не допустить простоя операционного блока при работе МУУ, нужно поставить требования к быстродействию ПНА и МПП. Время задержки секвенсера (вход D – выход Y) равно 20нс, а длительность цикла ОБ – 101,7нс. Таким образом, время выборки адреса ПНА и время выборки адреса МПП вместе не должны превышать 80нс. Исходя из всего этого были выбраны следующие типономиналы. В качестве ПНА – микросхема AM27S21 фирмы AMD (время выборки адреса – 30нс), а в качестве МПП – довольно редкая микросхема WS57C43C-25 фирмы WSI (Wafer Scale Integration) (время выборки адреса – 25нс).
Для взаимодействия шины данных с МУУ нужен интерфейсный элемент: регистр с динамическим управлением записью. Это должен быть 16-разрядный регистр. Таким регистром является IDT74FCT16374ET. Он будет использоваться в качестве регистра команд.
Для реализации возможности переходов было необходимо предусмотреть в микрокоманде адресное поле. В связи с этим ту часть микрокоманды, которая содержит это поле, необходимо либо подавать на вход секвенсера, при этом отключая выход ПНА, либо отключать это поле, а на вход секвенсера подавать выход ПНА. Для этого используются выходы секвенсера PL#, MAP#.
Для реализации переходов по условию, на тестовый вход CC# подается результат выбора условия с мультиплексора, выбирающего один из флагов статусного регистра. Этот мультиплексор должен быть 8в1. Таким является, например, IDTQS74FCT251AT.
В силу того, что на внутреннюю локальную шину операционного блока может подаваться константа из микрокоманды (МК[64..79]), необходимо обеспечить возможность отключения поля микрокоманды, содержащего эту константу (бит МК[57]).
Am29C01A не имеет входа сброса. Поэтому, чтобы осуществить сброс, нужно поставить мультиплексор, который управляется битом, генерируемым схемой начальной установки MC34064, и подает на вход инструкции секвенсера либо 0000, либо, собственно, инструкцию. Нужен 4-разрядный мультиплексор 2в1, таким является уже использованный ранее SN74AHCT157.
Схема МУУ приведена на рис. 2.
4.5. Расчет длительности цикла МУУ
Можно выделить следующие критические пути прохождения сигнала:
· Задержка распространения регистра команд (вход тактирования – выход данных) ® время выборки адреса ПНА ® задержка распространения секвенсера (вход D – выход Y) ® время выборки адреса МПП ® время предустановки регистра микрокоманд.
Tз. РгК(CLK®Din) | ТВА. ПНА | Tз. SEQ D®Y | ТВА. МПП | Tsu РгМК | Итого: |
3.7 | 30 | 20 | 25 | 1.5 | 80.2 |
· Задержка распространения статусного регистра (вход тактирования – вывод данных) ® задержка распространения мультиплексора состояния (вход I – выход Y) ® задержка распространения секвенсера (вход CC# - выход Y) ® время выборки адреса МПП ® время предустановки регистра микрокоманд.
Tз. SRG (CLK®Din) | Тз. MUX (I®Y) | Tз. SEQ(CC#®Y) | ТВА МПП | Tsu РгМК | Итого: |
3.7 | 5.2 | 30 | 25 | 1.5 | 65.4 |
Таким образом, минимальная длительность цикла МУУ равна 80,2.
4.6. Формат микрокоманды
Табл. 1 Формат микрокоманды
Биты | Название поля | Назначение поля | |
Поля управления ОБ | · Каскад МПС Am29C01 | ||
0..8 | I - OB | Биты инструкции Am29C01. | |
9..12 | A | Поле адреса для чтения РОН А. | |
13..16 | B | Поле адреса для чтения и записи РОН B. | |
17 | MulEn | Бит управления режимом умножения (схемная поддержка реализации операции умножения) | |
· Интерфейсные элементы (регистры) | |||
18 | OE - RGDin# | Бит разрешения вывода регистра входных данных. | |
19 | OE - RGDout# | Бит разрешения вывода регистра выходных данных. | |
20 | CLKEN# - РАП | Бит разрешения записи в РАП. | |
21 | OE - MAR# | Бит разрешения вывода РАП. | |
22 | OE - StatOut# | Бит разрешения вывода статуса на локальную шину. | |
· Логика сдвигов, мультиплексоры | |||
23, 24 | S0, S1 | Биты, определяющие тип сдвига | |
25 | SelStat | Бит управление источником статусного регистра: 0 – выход АЛУ, 1 – выход шины Y | |
26 | SelAB | Бит управления выбором источником адресов A и B: 0 – из Регистра Микрокоманд, 1 – из Регистра Команд | |
27..28 | SelCin | Селекторные биты входного переноса | |
29..31 | Резерв | ||
Поле упр. МУУ | · Управление МУУ | ||
32..43 | Dadr | Адресное поле | |
44..47 | Резервные | ||
48..51 | I - SEQ | Биты инструкции Am29C10A | |
52 | RLD# | Разрешение загрузки в регистр/счетчик в секвенсере | |
53 | CCEN# | Разрешение ввода условия в секвенсер | |
54..56 | SelCond | Селекторное слово выбора условия | |
57 | OEConst# | Бит разрешения вывода константы из микрокоманды на локальную шину ОБ. | |
58..63 | Резервные | ||
64..79 | Const | Константа |


