Разработка процессора с ограниченным набором команд
Разработка процессора для ограниченного набора команд. Описание структуры процессора, его работы и микропрограммы выполняемых процессором операций. Характеристика структурной, функциональной и электрической принципиальной схемы и перечень элементов.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 16.09.2010 |
Размер файла | 32,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Государственный комитет Российской Федерации
по высшему образованию
Чувашский Государственный Университет
им.И.Н.Ульянова
Кафедра математического и аппаратного обеспечения информационных систем
Разработка процессора с ограниченным набором команд
Пояснительная записка
к курсовой работе по дисциплине
Организация ЭВМ
г. Чебоксары, 2010 г.
Аннотация
В ходе данной работы был разработан процессор для ограниченного набора команд. В работе содержится описание структуры процессора, его работы и микропрограммы выполняемых процессором операций. К работе прилагаются структурная, функциональная и электрическая принципиальная схемы и перечень элементов.
Задание
Разработать процессор для ограниченного набора команд со следующими параметрами:
1. Процессор должен выполнять операции:
- сложение;
- вычитание;
- умножение;
- поразрядное логическое «И»;
- поразрядное логическое «ИЛИ»;
- поразрядное логическое сложение по модулю два;
- запись;
- загрузка;
- условный переход по флагу;
- БПВ (вызов подпрограммы);
- БПК (возвращение из подпрограммы);
- ОСТАНОВ.
2. Режимы адресации:
- прямая;
- регистровая;
- относительная с базированием и индексированием;
- стековая;
3. Форма представления чисел - плавающая точка.
4. Разрядность чисел - 8.
5. Объем ОЗУ - 32 Мб.
6. Количество РОН - 12.
7. Ширина выборки из ОЗУ - 1 байта.
8. Критерий проектирования - максимальное быстродействие.
1. Введение
Центральное процессорное устройство - это программно-управляемое цифровое устройство обработки цифровой информации. Оно может быть выполнено в виде одной или нескольких интегральных микросхем.
Общие принципы работы процессора определяются его архитектурой. Основными составными частями процессора являются: управляющее устройство (УУ) и операционное устройство (ОУ).
ОУ выполняет предписанные УУ операции и аппаратно содержит регистры, арифметико-логическое устройство (устройства), мультиплексоры, дешифраторы и т.д.
УУ координирует работу ОУ, вырабатывая в определенной временной последовательности управляющие сигналы (УС) путем последовательных или параллельных операций над данными.
Каждое действие в ОУ в течение одного тактового периода называется микрооперацией. Совокупность микроопераций называется микрокомандой. УС для микрокоманд формируются в зависимости от сигналов состояния ОУ - , которые подаются на часть входов УУ. Набор микрокоманд называется микропрограммой.
2. Технические требования
2.1 Форматы команд
Для выполнения заданных в курсовом проекте операций используются следующие форматы команд:
a) Формат RX - совмещение регистрового и относительного режимов адресации с базированием и индексированием.
КОП |
D (мл) |
D(ст) |
||||||||||
1 байт |
2 байт |
3 байт |
4 байт |
|||||||||
7 |
4 |
3 |
0 |
7 |
4 |
3 |
0 |
7 |
0 |
7 |
0 |
Используется в командах ADD, SUB, MUL, AND, OR, XOR
б) Формат RS - использование прямого и регистрового режимов адресации.
Используется в командах SD и LD.
в) Формат S - прямой режим адресации.
Используется в командах CALL и Jz.
Разряды 0:2 первого байта команды используются только в команде Jz для задания маски проверки флагов условного перехода, разряд 3 не использутся.
г) Безадресная команда.
Используется в командах RET, STOP и NOP.
Безадресная команда содержит только КОП, значения остальных разрядов игнорируются.
2.2 Система счисления
Используются числа с фиксированной точкой в дополнительном коде.
При выполнении арифметических операций используется модифицированный дополнительный код.
При выполнении логических операций используются числа без знака.
2.3 Система команд и правила их выполнения
Операция |
Мнемокоманда |
Формат |
КОП |
Описание |
|
Нет операции |
NOP |
- |
0000 |
нет действий |
|
Сложение |
ADD |
RX |
0001 |
R1?(R1)+ОЗУ[Аисп] Aисп=(Rb)+(Rx)+D |
|
Вычитание |
SUB |
RX |
0010 |
R1?(R1)+ОЗУ[Аисп] Aисп=(Rb)+(Rx)+D |
|
Умножение |
MUL |
RX |
0011 |
R1?(R1)?ОЗУ[Аисп] Aисп=(Rb)+(Rx)+D |
|
И |
AND |
RX |
0100 |
R1?(R1)?ОЗУ[Aисп] Aисп=(Rb)+(Rx)+D |
|
ИЛИ |
OR |
RX |
0101 |
R1?(R1)?ОЗУ[Aисп] Aисп=(Rb)+(Rx)+D |
|
? |
XOR |
RX |
0110 |
R1?(R1)?ОЗУ[Aисп] Aисп=(Rb)+(Rx)+D |
|
Запись |
SD |
RS |
1000 |
ОЗУ [Adr]?(R1) |
|
Загрузка |
LD |
RS |
1001 |
R1?ОЗУ [Adr] |
|
БПВ |
CALL |
S |
1010 |
СТЕК?(CK); (CK)? адрес перехода |
|
УП по флагу |
Jz |
S |
1011 |
(CK)? адрес перехода |
|
БПК |
RET |
- |
1100 |
(CK)?СТЕК; |
|
ОСТАНОВ |
STOP |
- |
1111 |
Останов системы |
2.4 Ширина выборки из ОЗУ - 1 байта.
2.5 Емкость ОЗУ - 32 Мб.
2.6 Управляющее устройство - управляющий автомат с программируемой логикой.
2.7. Критерий проектирования - максимальное быстродействие.
2.8. Элементная база - использование технологии КМОП.
3. Алгоритм работы процессора
3.1 Выбор и обоснование алгоритма
Для удобства проектирования необходимо разработать алгоритм. Вычислительны процесс разбивается на шаги, каждый шаг изображается в виде блока, а весь вычислительный процесс в последовательности блоков. Исходя из технических требований (разрядность данных, ширина выборки из ОЗУ и т.д.) выбираем алгоритм, который обеспечивает максимальное быстродействие процессора. Для обращения к ОЗУ объемом в 32 Мб (32М=225) используется только 24-разрядная шина адреса, а младший разряд принимается равным «0». Таким образом все данные в памяти должны быть выровнены по слову. Это ускоряет обращение к памяти.
3.2 Техническое описание алгоритма
При начале функционирования процессора производится установка в нулевое состояние счетчика стека и счетчика команд. На регистр адреса ОЗУ засылается значение адреса СTК и по данному адресу выбирается и пересылается 1 байт команды в RGbuf, инкремент CTK. После увеличения счетчика команд выполняется проверка на максимальное значение. При максимуме происходит переход на ОСТАНОВ, иначе аналогичным образом выполняется чтение второго байта команды в Rgbuf до 4 байта. Команда пересылается в RGK, происходит дешифрация команды. Дальнейшие действия зависят от кода команды.
Команды формата RX
Производится вычисление исполнительного адреса.
Проверяется на равенство 11112 поля RB. Если RB?11112, то в RG1IALU заносится операнд из РОН, адрес которого равен RB, иначе заносится 0. Производиться суммирование данного значения и смещения D, при наличии переполнения происходит переход на ОСТАНОВ, иначе в RGadr получаем значение D+(RB).
Проверяется на равенство 11112 поля RX. Если RX?11112, то в RG1IALU заносится операнд из РОН, адрес которого равен RX, иначе заносится 0. Производиться суммирование данного значения и смещения D, при наличии переполнения происходит переход на ОСТАНОВ, иначе в RGadr получаем значение D+(RB)+(RX).
После вычисления исполнительного адреса, он заносится на шину адреса и из ОЗУ производится чтение операнда в RGbuf. Одновременно с чтением операнда производится чтение в RG1ALU операнда из РОН, адрес которого равен R1.
Полученный из ОЗУ операнд в RGbuf пересылаем в RG2ALU.
Сложение
Выполняется сложение значений RG1ALU и RG2ALU с записью результата в RGALURES. В зависимости от результата устанавливаются флаги переполнения (CF), знака (SF), и равенства 0 результата. Затем через ШД0 результат заносится в регистр РОН, адрес которого равен задан в поле R1 кода команды.
Вычитание
Операция вычитания полностью аналогична операции сложения, но вместо операции сложения ALU производит операцию вычитания.
Умножение
В счетчик циклов заносится число 610. Если число в RG1ALU отрицательное, то в RGALURES помещается инвертированное значение из регистра RG2ALU, иначе - нуль.
Цикл: Проверяется значение младшего разряда RG1ALU. Если он равен 1, то производится суммирование RG2ALU и RGALURES, результат которого помещается в RG ALU RES. Производится сдвиг вправо на один разряд регистров RG1ALU и RGALURES. Уменьшается значение счетчика циклов. Если он не равен 0, то цикл повторяется.
По завершению цикла результат передается через шину ШД0 в РОН по адресу, заданному в поле R1 кода команды.
Логические операции
Вычисляются поразрядные операции логическое И, логическое ИЛИ или логическое ИСКЛЮЧАЮЩЕЕ ИЛИ (сложение по модулю 2). Результат передается через шину ШД0 в РОН по адресу, заданному в поле R1 кода команды.
Команды формата RS
Запись
По данной команде производится запись из РОН, адрес которого указан в поле R1, в ОЗУ[Аdr].
В RGadr заносится адрес ячейки памяти и выдается на шину ША. Из РОН в RGbuf заносится операнд. Производится запись операнда в память. Инкрементируется адрес в RGadr. Если при этом возникает переполнение, то процессор переходит в состояние ОСТАНОВ.
Загрузка
В RGadr заносится адрес ячейки памяти и выдается на шину ША. Производится чтение из ОЗУ в RGbuf. Производится инкремент RGadr. Если при этом возникает переполнение, то процессор переходит в состояние ОСТАНОВ. Полученный операнд заносится в РОН с адресом, заданным R1.
Команды формата S
Безусловный переход с возвратом
Для выполнения этой команды используется стек, расположенный в ОЗУ. Счетчик CTST четырехразрядный. Адрес текущей ячейки стека получается следующим образом: старшие 19 бит адреса принимаются равными «1», а младшие - «0». Таким образом, стек располагается в памяти по адресам 1FFFFF0-1FFFFFF. Стек «растёт» вверх.
На шину адреса передаётся адрес вершины стека. Значение счетчика команд CTK заносится в RGbuf. Производится запись в ОЗУ. В счетчик команд заносится адрес перехода, взятый из RGK по полю Adr[8:31].
Инкрементируется CTST. Если произошло переполнение счетчика (переполнение стека), процессор переходит в состояние ОСТАНОВ.
Условный переход по флагу
Проверяются флаги, заданные полем Mask на равенство «1». Если хоть один установлен, то в CTK заносится адрес перехода, взятый из RGK по полю Adr[8:31].
Примечание: если поле Mask равно 0, то получаем команду безусловного перехода.
Безадресные команды
Возврат из подпрограммы
Производится декремент CTST. Если при этом произошло переполнение (чтение из пустого стека), то процессор переводится в состояние ОСТАНОВ. Адрес текущей ячейки стека вычисляется также, как в команде «Безусловный переход с возвратом». Производится побайтное чтение адреса возврата из ОЗУ в RGbuf. Значение передается в CTK.
Останов
По этой команде процессор перестает выполнение программы.
Нет операции(NOP)
Команда не выполняет действий. Содержимое не меняется РОН или ОЗУ. Управление передается следующей команде.
Примечание: Команда может быть использована для задержки.
4. Описание структурной электрической схемы процессора
4.1 Выбор и обоснование структурной электрической схемы
Для построения схем других типов, а также для общего ознакомления с изделием необходима структурная электрическая схема. Определяется основной состав центральной части ЭВМ. Особенности процессора: используется одно устройство управления с программируемой логикой. Центральная часть содержит АЛУ, ИАЛУ, RGK, CTK, CTST, RGbuf.
4.2 Техническое описание структурной электрической схемы
В состав центральной части ЭВМ входят следующие компоненты:
Арифметико-логическое устройство состоит из двух регистров для приема и фиксации исходных операндов RG1ALU и RG2ALU; блока ALU, выполняющего логические операции, операции сложения и вычитания. В состав АЛУ входят схемы, формирующие флаги о переносе, о знаке, о нулевом результате.
RON - регистры общего назначения. Предназначены для хранения данных и для задания базы и индекса при обращении к ОЗУ.
УУ - устройство управления с программируемой логикой с регулярной адресацией. Формирует последовательности управляющих сигналов для всех функциональных узлов процессора, а также сигналы для чтения и записи к ОЗУ.
CTK - счетчик команд используется для хранения адреса команды. Имеет 24 разряда.
RGK - регистр команд предназначен для хранения выполняемой команды. На выходе имеет комбинационные схемы, не допускающие использовать РОН как модификатор для вычисления исполнительного адреса, если его номер, больше 11.
RGbuf - буферный регистр для обмена между 8-разрядной ШД и 8_разрядной внутренней шиной данных ШД0.
CTST - указатель стека. Используется для хранения адреса возврата при вызове подпрограмм.
Индексное АЛУ - предназначено для вычисления исполнительного адреса включает регистр RGIALU для приема и фиксации операндов из РОН. Сумматор складывает содержимое регистров-модификаторов и смещение, содержащееся в коде команды. Результат записывается в регистр адреса RGadr, предназначенного для хранения, передачи и при необходимости работы в счетном режиме.
Внутри процессора имеются внутренняя шина данных ШД0.
5. Описание функциональной схемы процессора
5.1 Выбор и обоснование функциональной электрической схемы
Функциональная схема поясняет процессы, происходящие в проектируемом процессоре. На данной схеме показаны функциональные узлы, участвующие в процессе, и связи между этими узлами. Функциональная схема строится на основе структурной электрической схемы, и дает возможность для дальнейшего построения принципиальной электрической схемы как отдельного блока, так и устройства в целом.
Для управления в схеме используется управляющее устройство УУ. Для выполнения арифметических и логических операций служит АЛУ, для вычисления адреса служит индексное АЛУ. Для вычисления адреса команды используется CTK, а для работы со стеком - CTST.
Взаимодействие функциональных блоков между собой рассмотрим в техническом описании функциональной электрической схемы.
5.2 Техническое описание функциональной электрической схемы -операционная часть
Данные, из ШД передаются на ШД0 через буферный регистр RGbuf .
Шина ША0 используется для обмена данными между RGadr, CTK и ШД0.
SEL1 подает на вход STK данные либо из ШД0, либо из поля Adr регистра команд.
SEL2 выбирает один из регистров, заданные полями R1, RB либо RX регистра команд.
SEL3 позволяет выбрать в качестве первого слагаемого SMALU либо данные из RGIALU, либо, в зависимости от сигнала, «0» или «1».
SEL4 выбирает в качестве второго слагаемого на SMALU либо смещение, заданное полем D регистра команд, либо данные из ША0.
SEL5 подает на вход RGadr либо поле из поля Adr регистра команд, либо данные из сумматора SMALU.
SEL6 выбирает на вход ALU в качестве первого операнда либо данные из RG1ALU, либо данные из RGALURES.
Регистр FLAGS служит для сохранения состояния процессора: флаг переполнения, флаг равенства нулю и флаг знака.
5.3Техническое описание функциональной электрической схемы -управляющая часть
Устройство управления УУ выполнено по схеме с регулярной адресацией. По этой схеме при разветвлении процесса один адрес на единицу больше чем текущий, а другой - произвольный. Элементом, «вычисляющим» адрес, является регистр микроопераций RGM, управляемый сигналом, являющимся входным для УУ.
Микроинструкции, содержат номер выходного сигнала, номер группы входных сигналов (0 или 1), маску для проверки условия перехода и адрес перехода.
Выходные сигналы получаем путем декодирования номера выходного сигнала , хранящегося в микроинструкции.
Входные сигналы состояния ОУ разбиты на две группы и по 7 входов каждый. Таким образом, получаем 14 входных сигналов. Проверяются на равенство «1» разряды, заданные маской, хранящейся в микроинструкции. Если хотя бы один из них установлен, то в регистр RGM производится загрузка адреса перехода, иначе регистр RGM инкрементируется. Управление передается следующей микроинструкции.
SEL7 выбирает в качестве входных одну из двух групп входных сигналов X0 либо X1. Это нужно для увеличения количества входных сигналов, которые можно проверить.
SEL8 выбирает адрес перехода. Адрес берется либо из прошивки в ПЗУ, либо получается умножением поля КОП на 16.
Осведомительные сигналы для УУ:
x0.0, x0.1, x0.2, x0.3, x2.01, x2.11, x2.21 - код операции и маска (из RGK);
x1.0 - переполнение стека;
x1.1 - переполнение счетчика команд;
x1.2 - переполение адреса в индексном АЛУ;
x1.3 - номер регистра равен 15;
x1.4 - в счетчике цикла находится отрицательное число;
x1.5 - младший разряд числа в RG1ALU;
x1.6 - знак числа в RG1ALU;
x2.02, x2.12, x2.22 - флаги результата операции в АЛУ
Прошивка памяти задана в следующем виде:
A -адрес микроинструкции в ПЗУ.
Y - номера сигналов y, которые устанавливаются в «1» во время работы данной микроинструкции.
M -проверяемые входные сигналы. Соответствующие разряды должны быть установлены. Старший разряд определяет группу входных сигналов: X0 или X1. Если маска равна 0, то условный переход невозможен.
J - адрес перехода, если среди входных сигналов, заданных маской, есть установленные.
Таблица прошивки памяти:
Поз. обозначение |
Наименование |
Кол. |
Примечание |
|
Интегральные микросхемы |
||||
DD13-DD18, DD36-DD39, DD44_DD56, DD72_DD76, DD80-DD82, DD84_DD86, DD94_DD96, DD103, DD112 |
К564ИР6 |
39 |
Выводы U (24 вывод) и 0V (12 вывод) на принципиальной электрической схеме не обозначены. |
|
DD1_DD6, DD19-DD24, DD31-DD35, DD40, DD41, DD78, DD83, DD97-DD102, DD113, DD114, DD120, DD121 |
КР1561КП4 |
31 |
Выводы U (16 вывод) и 0V (8 вывод) на схеме не обозначены. |
|
DD7_DD12, DD77, DD79, DD118-DD119 |
564ИЕ11 |
10 |
||
DD87_DD93, DD122, DD123 |
КА1603РЕ1 |
9 |
Выводы U (24 вывод) и 0V (12 вывод) на схеме не обозначены. |
|
DD25_DD30 |
К561ИМ1 |
6 |
||
DD104_DD111 |
564ИП3 |
7 |
||
DD117 |
К561ИР9 |
1 |
||
DD127, DD128 |
К1561ЛП14 |
2 |
||
DD124, DD125, DD126 |
К561ЛН2 |
3 |
||
DD141 |
1564ЛЕ1 |
1 |
||
DD139, DD140 |
К176ЛП11 |
2 |
||
DD129-DD137 |
К1561ЛИ2 |
9 |
||
DD115, DD116 |
1564ЛР11 |
2 |
||
DD138 |
1564ЛА1 |
1 |
Подобные документы
Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.
учебное пособие [1,1 M], добавлен 09.04.2013Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.
курсовая работа [734,9 K], добавлен 27.10.2010Синтез структуры простого магистрального процессора с одним АЛУ, выполняющего 8 заданных команд. Разработка формата и кодировки команд, структурной схемы процессора, функциональные схемы всех его блоков в целом с указанием шин и управляющих сигналов.
реферат [123,9 K], добавлен 18.05.2009Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010Функциональная организация процессора. Сложение с нормализацией, синтез операций, выборка команды. Описание структурной схемы процессора. Синтез управляющего автомата, разметка граф схемы. Разбиение микроопераций по полям и кодирование логических условий.
курсовая работа [91,8 K], добавлен 24.09.2010Принцип работы процессора, способы его охлаждения, кодовые названия. Шины процессора, разрядность и кэш–память. Технологии расширения и поток команд процессора. Процессорные вентиляторы и их характеристика. Алгоритм и способы разгона процессора.
реферат [38,0 K], добавлен 21.02.2009Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.
дипломная работа [4,0 M], добавлен 25.03.2012Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.
курсовая работа [621,0 K], добавлен 24.09.2010Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.
курсовая работа [1,2 M], добавлен 26.05.2022Изучение элементов структуры микропроцессора i80386 и алгоритмов выполнения множества команд. Разработка проекта структуры АЛУ и структуры микро-ЭВМ на базе гипотетического процессора. Описание и создание программы эмуляции по выполнению заданных команд.
курсовая работа [484,4 K], добавлен 07.09.2012