Программная модель однокристального RISC-процессора
Разработка программной модели однокристального RISC-процессора. Проектирование процессора общего назначения, предназначенного для использования в качестве центрального процессора рабочей станции, ориентированной на работу в многопользовательском режиме.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 10.01.2012 |
Размер файла | 627,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Содержание
1) Техническое задание
2) Структура системы
3) Архитектура внешних выводов
4) Выбор формата данных
5) Определение модели памяти и структура регистровой памяти
6) Форматы команд
7) Система команд
8) Внутренняя организация
9) Основные алгоритмы функционирования
10) Алгоритмы выполнения отдельных операций
Вывод
Список литературы
1) Техническое задание
Курсовой проект посвящается разработке программной модели однокристального RISC-процессора. Проектируется процессор общего назначения, предназначенный для использования в качестве центрального процессора рабочей станции, ориентированной на работу в многопользовательском режиме. Общие требования к разрабатываемому процессору: Система команд должна удовлетворять следующим требованиям:
1) Операции обращения к памяти отделены от операций, связанных с обработкой данных
2) Операции, связанные с преобразованием данных, выполняются по принципу регистр-регистр.
3) В общем случае аппаратно поддерживаются операции над целыми числами со знаком и без знака, а также над числами, представленными в формате с плавающей точкой(ПТ).
4) Система команд должна быть функционально полной и включать команды общего назначения, команды для обработки чисел с ПТ и привилегированные команды.
5) Процессор должен иметь векторную систему прерываний
6) Для процессора должны быть предусмотрены механизмы поддержки многозадачности.
7) Процессоры должны иметь встроенную кеш-память.
процессор рабочий станция
Исходные данные:
№ варианта |
23 |
|
Формат данных (бит) |
8 32 64 |
|
Регистровая память: Количество (шт.) Тип Разрядность (бит) |
32 универсальные 32 |
|
Шина адреса/данные |
Совмещенная |
|
Наличие сопроцессора |
Нету |
|
Основная память: Размер (МБ) Разрядность шины данных |
4096 32 |
|
Ввод-вывод |
Изолированный |
|
Адресность |
2 |
|
Способ адресации |
Относительная Косвенная |
2) Структура системы
Разрабатываемый процессор предназначен для использования в качестве центрального процессора рабочей станции. Обобщенная структура рабочей станции показана на рисунке.
В состав станции входят:
- процессорный кристалл, составляющий предмет разработки;
- ОЗУ;
- системный чип;
- контроллеры внешних устройств;
- видеоадаптер.
Имеются две шины - быстрая системная шина и шина ввода-вывода, разделенные системным чипом. В качестве шины ввода-вывода обычно используется стандартная шина, например PCI. Системный чип (чипы) содержит внешнюю логику (таймеры, часы реального времени, и т. п.).
Архитектура внешних выводов
На рис. изображена архитектура внешних выводов разрабатываемого процессора. В соответствии с техническим заданием, процессор имеет совмещенную 32-разрядную шину данных и адреса(AD).
Сигнал ALE используется для фиксации адреса на внешнем регистре-защелке, а пара сигналов HLD и HLDA -для реализации механизма захвата шины. Сигналы INT и INTA - являются сигналами запроса и потверждения прерывания. Если на корпусе имеется достаточное число свободных выводов, то целесообразно ввести несколько уровней запроса на прерывание.
Линии RD(чтение),WR(запись),IN(ввод),OUT(Вывод),BHE(Разрешение записи старшего байта)задают выполняемую на шине операцию.
Линия FRAME используется для организации режима пакетного обмена между ОЗУ и внутренними кэшами. Появление данного сигнала на шине означает начало транзакции, а снятие - что следующий цикл передачи данных на шине является последним.
Сигнал WAIT используется для организации взаимодействия с внеш-ним математическим сопроцессором. На контакт WAIT поступает сигнал от сопроцессора об окончании вычислений. Контакт READY (Готовность) слу-жит для приема сигнала готовности от медленных внешних устройств. На-значения выводов питания, RESET и CLC (Синхронизация) очевидны.
3) Выбор форматов данных
Число с фиксированной точкой длиной 8 бит (байт).
В случае если число со знаком, то на знак указывает старший бит.
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
S |
Принимает значения: -128..+127 (со знаком), 0..255 (без знака)
Число с фиксированной точкой длиной 32 бит (слово).
В случае если число со знаком, то на знак указывает старший бит
31 |
30 |
29 |
… |
1 |
0 |
|
S |
… |
Принимает значения: - 2147483648..+ 2147483647(со знаком), 0.. 4294967296 (без знака)
Число с фиксированной точкой длиной 64 бита (Двойное слово).
В случае если число со знаком, то на знак указывает старший бит.
63 |
62 |
61 |
1 |
0 |
||
S |
Принимает значения: от 9223372036854775808 до 9223372036854775807 (со знаком), и от 0 до 18446744073709551615 (без знака)
Число с плавающей точкой длиной 32 бита (число с ПТ одинарной точности).
31 |
30 |
24 |
23 |
22 |
21 |
1 |
0 |
|||
S |
Экспонента |
Мантисса |
Число с плавающей точкой длиной 64 бита (число с ПТ двойной точности).
63 |
62 |
53 |
52 |
51 |
50 |
1 |
0 |
|||
S |
Экспонента |
Мантисса |
В числах с плавающей точкой длиной 32 бита мантисса хранится в формате со скрытым битом, смещение равно127.
Представление особых ситуаций в формате с ПТ (по стандарту IEEE 754):
S |
Экспонента |
Мантисса |
||
+0 |
0 |
0…….0 |
0…….0 |
|
-0 |
1 |
0…….0 |
0…….0 |
|
+ бесконечность |
0 |
1…….1 |
0…….0 |
|
- бесконечность |
1 |
1…….1 |
0…….0 |
|
NAN |
* |
1…….1 |
1*….* (кроме 0…0) |
В данном случае * показывает, что бит может иметь любое значение: 1 или 0. NaN - not a number (англ. - не число) - специальное значение, определенное для чисел с плавающей точкой. Оно показывает, что результат операции не может быть представлен в числовой форме, в соответствии с правилами записи чисел с плавающей точкой. Результатом операции будет NaN когда:
- выполняется арифметическая операция, где хотя бы один аргумент равен ±?,
- выполняется деление на нуль,
-выполняется операция сравнения с ±?.
5) Определение модели памяти и структуры регистровой памяти
Модель памяти
Поскольку модель памяти должна удовлетворять требованиям, предъявляемым ОС UNIX, то предлагается следующая модель организации виртуальной памяти.
Поскольку заданием задан размер памяти 4096 Мбайт, то предлагается разделять имеющуюся память на следующие блоки.
В режиме пользователя программе доступны 2 Гбайт виртуальной памяти. В режиме ядра программа получает доступ ко всей памяти объемом 4 Гбайт, причем первые 2 Гбайт - пользовательская память, оставшиеся 2 Гбайт - системная. Системная память делится на три сегмента объемами 0.5, 0.5, 1 Гбайт. При обращении к адресам принадлежащим к сегменту 1, используется кеш, но не используется переадресация через буфер TLB, т. е. обращение идёт к первым 512 Мбайт физической памяти. При работе с сегментом 2 не используется ни кеш, ни TLB - обращение идёт к первым 512 Мбайт физической памяти. При работе с сегментом 3 используется и кеширование, и переадресация.
Подобная модель памяти позваляет работать с ячейками как с портами (сегмент 2) либо обращаться к памяти по абсолютным адресам при работе со структурами ядра. Сегмент 3 можно использовать для работы с загружаемыми модулями.
Виртуальная память. Виртуальная память имеет страничную организацию, принятую во многих современных операционных системах. В общем виде, схема страничной организации описывается следующим образом: линейный адрес разбивается на несколько частей. Старшая часть адреса содержит в себе номер элемента в корневой таблице. Этот элемент содержит адрес таблицы следующего уровня. Следующая часть линейного адреса содержит номер элемента уже в этой таблице и так далее, до последней таблицы, которая содержит номер физической страницы. А самая младшая часть адреса уже является номером байта в этой физической странице.
Размер страниц составляет 4 Кбайт.
32-разрядный линейный адрес разбивается на три части. Старшие 10 разрядов адреса определяют номер одного из 1024 элементов в каталоге страниц. Этот элемент содержит физический адрес таблицы страниц. Следующие 10 разрядов линейного адреса определяют номер элемента таблицы. Элемент, в свою очередь, содержит физический адрес страницы виртуальной памяти. Размер страницы - 4 Кбайт, и младших 12 разрядов линейного адреса как раз хватает (212 = 4096), чтобы определить точный физический номер адресуемой ячейки памяти внутри этой страницы.
Для ускорения страничного преобразования в процессоре имеется специальная кэш-память, называемая TLB (Translation Lookaside Buffer). В ней хранятся наиболее часто используемые элементы каталога и таблиц страниц. Конечно, переключение процессов и даже потоков приводит к тому, что данные внутри этого буфера становятся неактуальными, т. е. недействительными. Это влечет за собой дополнительные потери производительности при переключении.
Каждый процесс имеет свой отдельный каталог страниц и свое собственное независимое адресное пространство.
Структура регистровой памяти. Техническое задание гласит регистровая память должна удовлетворять следующим требованиям:
количество - 32;
универсальные;
разрядность - 32.
Предполагается следующая структура регистров:
R0 R1 . R30 R31 31 0 |
В структуре, приведенной на рис. регистровая память включает в себя тридцать два 32-разрядных РОН и 32-разрядный счетчик команд. Ре-гистр флажков содержит 7 флажков, которые используются следующим об-разом:
Z - признак нулевого результата;
С - признак переноса из старшего разряда;
S - знак результата;
0 - признак переполнения результата;
1 - разрешение прерывания;
Т - пошаговый режим;
U - режим супервизор-пользователь.
PE (precision exception) - потеря точности
NE (normalization exception) - денормализация
ZE (zero exception) - деление на 0
IE (integer exception) - действительный операнд
R0..32 - пользовательские регистры, содержимое доступно для изменений
Регистр флагов - системный регистр, который указывает признаки результатов арифметических или логических операций.
SP - системный регистр, хранящий указатель на вершину стека
TINT - системный регистр, хранящий указатель на таблицу прерываний. PC - системный регистр, хранящий счетчик команд.
6) Форматы команд
Способы адресации. Согласно заданию необходимо предусмотреть следующие способы адресации:
Относительная
База, Индекс - адреса регистров, в которых адреса базы и индекса.
1) Косвенная
Форматы команд
Согласно заданию команды имеют максимальную адресность равную 2, т.е. операции имеют вид:
1) О1:=O1 (операция) O2
2) (операция) O1
3) (операция)
Также команды можно разделить на:
арифметические
логические
пересылки
A - указывает, какая адресность используется для второго операнда:
00 - косвенная
11 - относительная
01 - зарезервировано
переходов
управления
7) Система команд
Мнемоника |
название |
содержание |
Флаги |
Код |
||||||||
Z |
C |
S |
O |
I |
T |
U |
||||||
Обращение пересылки |
||||||||||||
RDB |
Чтение байта |
R1<=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
000000 |
||
RDHW |
Чтение полуслова |
R1<=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
000001 |
||
RDW |
Чтение слова |
R1<=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
000010 |
||
WRB |
Запись байта |
<R1>=><R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
000011 |
||
WRHW |
Запись полуслова |
<R1>=><R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
000100 |
||
WRW |
Запись слова |
<R1>=><R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
000101 |
||
IN |
Чтение из порта |
R2<=порт<R1> |
- |
- |
- |
- |
- |
- |
- |
000110 |
||
OUT |
Запись в порт |
R2=>порт<R1> |
- |
- |
- |
- |
- |
- |
- |
000111 |
||
MOV |
Обмен RG<>RG |
<R2><=<R1> |
- |
- |
- |
- |
- |
- |
- |
001000 |
||
MOVI |
Занос в регистр значения |
<R1><= R2 |
- |
- |
- |
- |
- |
- |
- |
001001 |
||
Арифметические операции с ФТ |
||||||||||||
ADD |
Сложение |
<R1><=<R1>+<R2> |
+ |
+ |
+ |
+ |
- |
- |
- |
001100 |
||
SUB |
Вычитание |
<R1><=<R1>-<R2> |
+ |
+ |
+ |
+ |
- |
- |
- |
001101 |
||
MUL |
Умножение |
<R1><=<R1>*<R2> |
+ |
+ |
+ |
+ |
- |
- |
- |
001110 |
||
DIV |
Деление |
<R1><=<R1>/<R2> |
+ |
+ |
+ |
+ |
- |
- |
- |
001111 |
||
ADDI |
Сложение с неп оп. |
<R1><=<R1>+R2 |
+ |
+ |
+ |
+ |
- |
- |
- |
010000 |
||
SUBI |
Выч. с неп оп. |
<R1><=<R1>-R2 |
+ |
+ |
+ |
+ |
- |
- |
- |
010001 |
||
MULI |
Умн/ с неп оп. |
<R1><=<R1>*R2 |
+ |
+ |
+ |
+ |
- |
- |
- |
010010 |
||
DIVI |
Деление с неп оп. |
<R1><=<R1>/R2 |
+ |
+ |
+ |
+ |
- |
- |
- |
010011 |
||
Логические оперции с ФТ |
||||||||||||
AND |
«И» |
<R1><=<R1>&<R2> |
+ |
- |
+ |
- |
- |
- |
- |
010100 |
||
OR |
«ИЛИ» |
<R1><=<R1>v<R2> |
+ |
- |
+ |
- |
- |
- |
- |
010101 |
||
XOR |
Искл «ИЛИ» |
<R1><=<R1>+<R2> |
+ |
- |
+ |
- |
- |
- |
- |
010110 |
||
NOT |
«НЕ» |
<R1><=~<R1> |
+ |
- |
+ |
- |
- |
- |
- |
010111 |
||
RCL |
Циклический сдвиг влево |
- |
+ |
- |
+ |
- |
- |
- |
011000 |
|||
RCR |
Циклический сдвиг вправо |
- |
+ |
- |
+ |
- |
- |
- |
011001 |
|||
Команды переходов и прерываний |
||||||||||||
CLI |
Очистить флаг разрешения прерываний |
- |
- |
- |
- |
0 |
- |
- |
011010 |
|||
INT |
Вызов прерывания |
<SP><=PC<R15><=flags |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
011100 |
||
IRET |
Возврат из прерывания |
<PC><=SPflags<=R15 |
- |
- |
- |
- |
- |
- |
- |
011101 |
||
CALL |
Вызов подпрограммы |
<SP><=PCPC<=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
011110 |
||
RET |
Возврат из подпрограммы |
<PC><=SP |
- |
- |
- |
- |
- |
- |
- |
011111 |
||
JMP |
Безусловный переход |
PC<=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
100000 |
||
JZ |
Переход по нулю |
PC<=<R1>+R2 |
+ |
- |
- |
- |
- |
- |
- |
100001 |
||
JNZ |
Переход не по нулю |
PC<=<R1>+R2 |
+ |
- |
- |
- |
- |
- |
- |
100010 |
||
JO |
Переход по переполнению |
PC<=<R1>+R2 |
- |
- |
- |
+ |
- |
- |
- |
100011 |
||
JNO |
Переход по не переполнению |
PC<=<R1>+R2 |
- |
- |
- |
+ |
- |
- |
- |
100100 |
||
JC |
Переход по переносу |
PC<=<R1>+R2 |
- |
+ |
- |
- |
- |
- |
- |
100101 |
||
JNC |
Переход не по переносу |
PC<=<R1>+R2 |
- |
+ |
- |
- |
- |
- |
- |
100110 |
||
JS |
Переход переход по < 0 |
PC<=<R1>+R2 |
- |
- |
+ |
- |
- |
- |
- |
100111 |
||
JNS |
Переход переход по >= 0 |
PC<=<R1>+R2 |
- |
- |
+ |
- |
- |
- |
- |
101000 |
||
Операции управления |
||||||||||||
RFL |
Чтение флагов |
R1<=Flags |
- |
- |
- |
- |
- |
- |
- |
101001 |
||
WFL |
Запись флагов |
<R1>=>Flags |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
101010 |
||
RTLBR |
Чтение TLBP |
R1<=TLB |
- |
- |
- |
- |
- |
- |
- |
101011 |
||
WTLBR |
Запись TLBP |
<R1>=>TLB |
- |
- |
- |
- |
- |
- |
- |
101100 |
||
RISR |
Чтение TINT |
R1<=TINT |
- |
- |
- |
- |
- |
- |
- |
101101 |
||
WISR |
Запись TINT |
<R1>=>TINT |
- |
- |
- |
- |
- |
- |
- |
101110 |
||
RBVA |
Чтение BVA |
<R0><=BVA |
- |
- |
- |
- |
- |
- |
- |
110011 |
||
RFE |
Возврат в пользователя |
- |
- |
- |
- |
- |
- |
0 |
101111 |
|||
SCALL |
Переход в супервизора |
- |
- |
- |
- |
- |
- |
1 |
110000 |
|||
HALT |
Ожидание прерывания |
- |
- |
- |
- |
1 |
- |
- |
110001 |
|||
NOP |
Нет операции |
PC<=<PC>+1 |
- |
- |
- |
- |
- |
- |
- |
110010 |
||
Арифметические операции с ПТ |
||||||||||||
FADD |
Сложение |
<F0><=<F1>+<F2> |
+ |
+ |
+ |
+ |
- |
- |
- |
111000 |
||
FSUB |
Вычитание |
<F0><=<F1>-<F2> |
+ |
+ |
+ |
+ |
- |
- |
- |
111001 |
||
FMUL |
Умножение |
<F0><=<F1>*<F2> |
+ |
+ |
+ |
+ |
- |
- |
- |
111010 |
||
FDIV |
Деление |
<F0><=<F1>/<F2> |
+ |
+ |
+ |
+ |
- |
- |
- |
111011 |
||
FMOV |
Обмен RG<>RG |
F0<=<F1> |
- |
- |
- |
- |
- |
- |
- |
111100 |
||
FRDW |
Чтение |
<F0><=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
111101 |
||
FWRW |
Запись |
<F0><=<R1>+R2 |
- |
- |
- |
- |
- |
- |
- |
111110 |
||
MFC |
Преобр ПТ-ФТ |
<R0><=<F1> |
+ |
+ |
+ |
+ |
- |
- |
- |
111111 |
||
MCF |
Преобр ФТ-ПТ |
<R0>=><F1> |
+ |
- |
+ |
+ |
- |
- |
- |
111111 |
8) Внутренняя организация
В процессоре реализуется конвейерный принцип обработки информации. Используется двухступенчатый конвейер.
Для двухступенчатого конвейера выделяются фаза выборки команды и фаза выполнения команды. Параллельно и асинхронно могут работать два процессора: процессор памяти и исполнительный процессор. Процессор памяти обеспечивает работу с памятью команд и памятью данных, а также с кэш-памятью. На исполнительный процессор возлагаются функции, связанные с дешифрацией и выполнением команд.
Устройство предвыборки команд осуществляет опережающую выборку. Это позволяет избежать простоя процессора в циклах выборки команд. Устройство считывает из памяти слова начиная с адреса на 1 большего значения записанного в PC. Очередное слово из очереди подается на дешифратор. Освободившаяся позиция в конце очереди заполняется следующей командой.
Дешифратор команд получает слово от устройства предвыборки и дешифрует его. Преобразованный код записывается в регистр команд.
Регистр команд хранит команду, полученную от дешифратора.
Счетчик команд содержит адрес выполняемой в данный момент команды.
Устройство управления осуществляет координацию работы отдельных блоков процессора и осуществляет его взаимодействие с внешней шиной.
Контроллер равноприоритетных прерываний осуществляет выборку приходящих программных прерываний.
Буферы адреса и данных служат для взаимодействия процессора с системной шиной и могут переводить процессор в Z состояние, отключая его тем самым от шины.
АЛУ - выполняет операции над данными из регистров. Используется для операций над числами с ФТ.
Регистр флагов включает в себя 8 флагов, 4 из которых соответствуют различным признакам результата.
Структурно-функциональная схема процессора
Связи между отдельными блоками на рисунке показаны линиями. Стрелки указывают направление передачи управляющих сигналов и данных. Рядом с линиями показана разрядность соответствующих сигналов. Для управляющих каналов разрядность зависит от конкретной схемотехнической реализации, поэтому в данном случае не указывается.
ЦП имеет 32-разрядную внутреннюю шину данных, которая отвечает за передачу данных между блоками и внутренними регистрами.
Буфер ШАД служит для взаимодействия процессора с системной шиной и может переводить процессор в Z состояние, отключая его тем самым от шины.
Блок Управления осуществляет координацию работы центрального процессора, взаимодействие и согласование всех его блоков
Блок управления INT является внутренним контроллером равноприоритетных прерываний. Он осуществляет выборку приходящих программных прерываний. Максимальное число обслуживаемых внешних запросов равно 8. Существует возможность расширения числа каналов прерывания за счет подключения дополнительного внешнего контроллера к входу любого канала. Регистр масок (Masks) позволяет запрещать или разрешать обработку отдельных каналов. Регистр TINT является указателем на таблицу 32-разрядных векторов прерываний, хранящихся в памяти последовательно друг за другом. Каждый вектор содержит адрес прерывающей подпрограммы.
АЛУ - блок обработки данных, представленных в формате целых чисел со знаком или без знака. Блок выполняет операции только над данными, содержащимися в регистрах общего назначения. Данные могут быть представлены 8, 32 и 64-разрядными числами. Список разрешенных арифметических и логических операций содержится в таблице 1.
АЛУ ПТ - блок обработки данных, представленных в формате с плавающей точкой. Блок выполняет операции только над данными, содержащимися в регистрах общего назначения. Данные могут быть представлены 32-разрядными числами. Список разрешенных арифметических и логических операций содержится в таблице 1.
В ходе выполнения команды данные пересылаются из одного регистра в другой и в процессе обработки часто попадают в АЛУ, где над ними выполняются арифметические или логические операции. Дешифратор команды и управляющий логический блок отвечают за определение и выполнение действий, заданных командой, которая загружена в регистр IR (регистр команд). Дешифратор генерирует управляющие сигналы, необходимые для выбора регистров, участвующих в выполнении заданной команды, и управляет пересылкой данных.
Счетчик команд содержит адрес выполняемой в данный момент команды.
Регистр флагов включает в себя 8 флагов, 4 из которых соответствуют различным признакам результата.
9) Основные алгоритмы функционирования
Обобщенный алгоритм функционирования процессора представлен на рисунке.
Чтение команды из ОЗУ
1. Текущее значение счетчика команд устанавливается в качестве адреса на системной шине.
2. Осуществляется цикл чтения текущей команды.
3. Команда помещается в регистр блока предварительной выборки команд и дожидается своей очереди на выполнение. Выполнение текущей команды производится одновременно с процессом выборки последующей.
Декодирование команды
1. Начинается командный цикл - период выполнения команды. Команда из блока предварительной выборки помещается в регистр команд.
2. Инкрементируется PC.
3. Осуществляется дешифрация команды. В зависимости от кода операции, определяется тип команды и перечень необходимых действий.
4. Устройство управления формирует необходимые машинные циклы, обеспечивающие исполнение текущей команды.
4. Командный цикл завершается после выполнения всех машинных циклов, инициализируемых блоком управления.
Обработка регистровой команды (RG-RG)
1. Выборка операндов. В зависимости от значений адресных полей регистра команд срабатывает та или иная комбинация MUX/DMUX, подключаются нужные регистры.
2. Команды пересылки. Номер регистра источника задается полем R1 управляющей команды. Номер регистра приемника задается полем R2 управляющей команды. Разрядность данных определяется полем DF формата команды. Данные передаются от источника к приемнику через внутреннюю шину. При пересылке 8 и 32-разрядных данных на шину выдаются значение регистров с номерами, указанными в соответствующих полях команды. На неиспользуемые разряды шины подается логический ноль. Аналогично коммутируются регистры-приемники.
3. Арифметико-логические операции. Источники данных R1, R2 или оба задаются вышеописанным способом. Тип данных и тип устройства (АЛУЦ или АЛУПТ) определяется полем DF формата команды. Операнды подаются на входы АЛУ. Управляющий сигнал для АЛУ в зависимости от содержимого регистра команд указывает АЛУ тип данных и их разрядность.
2. Устройство управления дает разрешение на “захват” операндов, которые передаются напрямую в АЛУ без использования внутренней шины.
3. Производится формирования результата соответствующей операции: арифметической, логической, пересылки, перехода, занесения константы.
4. Результат заносится в регистр по указанному адресу через внутреннюю шину данных.
Обработка команды типа регистр - память (RG-ОЗУ)
1. Формирование адреса операнда производится в зависимости от типа адресации. При прямой адресации адрес операнда содержится в соответствующем регистре в виде указателя на область памяти. При относительной адресации адрес формируется путем суммирования значений базового адреса и смещения относительно него.
2. Если осуществляется чтение из памяти, то на шине данных выставляется значение соответствующей ячейки памяти. Устройство управления устанавливает направление передачи, осуществляет коммутацию внутренней и системных шин. А затем данные с шины записываются в указанный регистр центрального процессора.
3. Если осуществляется запись в памяти, то на шине данных выставляется значение соответствующего регистра центрального процессора. Устройство управления задает направление передачи, осуществляет коммутацию внутренней и системных шин. А затем данные с шины из указанного регистра центрального процессора записываются нужную ячейку памяти.
Обработка условного ввода / вывода (В/В)
1. Формирование адреса операнда производится в зависимости от типа адресации. При прямой адресации адрес операнда содержится в соответствующем регистре в виде указателя на область памяти. При относительной адресации адрес формируется путем суммирования значений базового адреса и смещения относительно него.
2. Если осуществляется чтение из устройства, то на шине данных выставляется адрес внешнего устройства, считывается состояние устройства и проверяется его готовность к передаче информации. При подтверждении готовности ВУ к передаче данных, осуществляется их выдача на системную шину. А затем данные с шины записываются в указанный регистр центрального процессора. По окончании строба чтения сигнал готовности снимается.
3. Если осуществляется запись в устройство, то на шине данных выставляется адрес внешнего устройства, считывается состояние устройства и проверяется его готовность к передаче информации. При подтверждении готовности ВУ к приему данных, осуществляется их выдача на системную шину из указанного регистра центрального процессора. По окончании строба записи сигнал готовности снимается.
Обработка безусловных переходов (Б/П)
1. Формирование адреса операнда производится в зависимости от типа адресации. При прямой адресации адрес операнда содержится в соответствующем регистре в виде указателя на область памяти. При относительной адресации адрес формируется путем суммирования значений базового адреса и смещения относительно него.
2. Реализуется безусловный переход - счетчику команд присваивается значение сформированного адреса.
3. Новый командный цикл изменит последовательный ход программы.
Обработка условных переходов (У/П)
1. Формирование адреса операнда производится в зависимости от типа адресации. При прямой адресации адрес операнда содержится в соответствующем регистре в виде указателя на область памяти. При относительной адресации адрес формируется путем суммирования значений базового адреса и смещения относительно него.
2. В зависимости от кода операции, признак нулевого результата проверяется на соответствие с нулем или единицей.
3. Если проверка показала совпадение, реализуется переход - счетчику команд присваивается значение сформированного адреса. Новый командный цикл изменит последовательный ход программы.
Обработка прерываний
1. Контроллер прерывания устанавливает линию прерывания INT на системной шине.
2. Когда центральный процессор готов к обработке прерывания он устанавливает символ подтверждения прерывания на шине INTA для внешнего устройства. Считывается вектор прерывания по соответствующему адресу таблицы прерываний.
3. Центральный процессор удаляет вектор прерывания с шины
4. Центральный процессор помещает в стек счетчик команд, значения системных регистров, необходимую служебную информацию.
5. Определяется местонахождение нового счетчика команд, используя вектор прерывания в качестве индекса в таблице памяти. Новый счетчик команд указывает на начало программы обслуживания прерываний для устройства, вызвавшего прерывание.
6. После обработки прерывания восстанавливаются все сохраненные регистры. Центральный процессор возвращается в то состояние, в котором он находился до прерывания. После этого процессор продолжает работу с того места в котором он остановился.
10) Алгоритмы выполнения отдельных операций
Выборка команды
Фрагмент структуры процессора, относящийся к выборке команды
Соответствующая ей микропрограмма.
У разрабатываемого процессора разрядность команды и разрядность ячейки памяти, в которой она хранится, совпадают, поэтому при выборке требуется только одно обращение к памяти команд. Исходными данными является адрес размещения команды в памяти ЭВМ, который хранится в счётчике адреса команд PC. Содержимое PC передаётся в регистр адреса RA оперативной памяти, осуществляется чтение из оперативной памяти хранящейся в ней информации в регистр даных RD. После чтения из ОП, требуемая команда будет находиться в регистре RD. Далее осуществляется передача содержимого RD на IR.
Арифметические и логические операции
Фрагмент структуры процессора, относящийся к выполнению операций
Соответствующая ей микропрограмма.
В регистре команд уже находится очередная считанная команда. В регистр адреса помещается адрес второго операнда. После этого операнд считывается из оперативной памяти. Первый операнд находится в регистре общего назначения. Специальным сигналом запускается АЛУ и результат записывается в регистр, указанный в команде.
Передача управления
1. Безусловный переход
В счётчик адресов команд просто записывается адресная часть команды перехода.
2. Условный переход
Адрес, указанный в команде, записывается в счётчик команд, только если выполняется заданное условие. Условие задаётся кодом команды. Если условие не выполняется, то просто происходит переход к следующей команде.
Вывод
Результатом проектирования стала модель RISC процессора, ориентированного на работу в качестве процессора рабочей станции с ОС UNIX. Процессор разработан в соответствии с техническим заданием.
Для него было разработано:
1) регистровая модель процессора
2) система команд.
3) основные алгоритмы взаимодействия и обработки данных
В процессе разработки мы ознакомились понятиями:
1) виртуальная память
2) форматы данных
3)форматы команд.
Список использованной литературы
1. Методические указания - Архитектура ЭВМ .СПб 2008.1995
2. Архитектура ЭВМ, ВС и Сетей. Ленинград 1988 г.
Размещено на Allbest.ru
Подобные документы
Описание архитектуры внешних выводов кристалла процессора. Рассмотрение форматов данных для целых чисел со знаком и без знака. Выбор модели памяти и структуры регистровой памяти. Использование кэш прямого отображения. Арифметические и логические команды.
курсовая работа [890,5 K], добавлен 05.06.2015Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.
реферат [111,2 K], добавлен 25.02.2015Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.
курсовая работа [1,2 M], добавлен 26.05.2022История развития центрального процессора. Основные проблемы создания многоядерных процессоров. Проектирование микропроцессорной системы на базе процессора Intel 8080. Разработка принципиальной схемы и блок-схемы алгоритма работы микропроцессорной системы.
курсовая работа [467,6 K], добавлен 11.05.2014Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.
учебное пособие [1,1 M], добавлен 09.04.2013Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.
дипломная работа [4,0 M], добавлен 25.03.2012Принцип работы процессора, способы его охлаждения, кодовые названия. Шины процессора, разрядность и кэш–память. Технологии расширения и поток команд процессора. Процессорные вентиляторы и их характеристика. Алгоритм и способы разгона процессора.
реферат [38,0 K], добавлен 21.02.2009Общая характеристика программной модели процессора Intel x86. Анализ особенностей регистров общего назначения. Назначение команд безусловной передачи управления, рассмотрение функций. Знакомство с проблемами программирования на языке Ассемблера.
курсовая работа [1,6 M], добавлен 04.02.2014Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.
курсовая работа [734,9 K], добавлен 27.10.2010Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010