Разработка однокристального RISC-процессора для встроенных применений

Описание архитектуры внешних выводов кристалла процессора. Рассмотрение форматов данных для целых чисел со знаком и без знака. Выбор модели памяти и структуры регистровой памяти. Использование кэш прямого отображения. Арифметические и логические команды.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.06.2015
Размер файла 890,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

1. Техническое задание

Разработать однокристальный RISC-процессор для встроенных применений (контроллер).

В процессоре должна быть предусмотрена поддержка 8- и 16-разрядных типов данных. Требуется реализовать эти форматы для целых чисел со знаком и без знака.

Регистровая память должна содержать тридцать два 16-разрядных регистра.

В процессоре необходимо обеспечить поддержку следующих способов адресации:

- относительная (базовая) адресация;

- прямая адресация;

- косвенная адресация.

Для занесения непосредственного значения в регистр также должна поддерживаться непосредственная адресация.

Следует предусмотреть функциональную ориентацию регистров, разбив их на группы в зависимости от функционального назначения (например, регистры для хранения: данных, индексов, базы, и т.п.).

В процессоре должны использоваться раздельные шины адреса и данных.

В режиме прямо-адресуемой памяти необходимо обеспечить доступ к памяти данных объемом 46 Кбайт.

Для памяти должна быть выбрана 16-разрядная шина данных. Разрядность шины определяется разрядностью памяти.

Поскольку при разработке процессора используется гарвардская архитектура, это подразумевает наличие отдельной памяти команд, которая размещается внутри кристалла и соединяется с процессором 64-разрядной шиной команд.

Объем памяти команд должен составлять 48 Кбайт. Кроме того, должна быть обеспечена возможность подключения дополнительной внешней памяти команд.

Следует организовать конвейер по выборке команд из памяти и по размещению их в очередь для дальнейшего исполнения.

Ввод-вывод должен быть организован с использованием специальных команд ввода-вывода. Идентификация обращения к регистрам внешних устройств осуществляется по коду операции.

Необходимо разработать векторную систему прерываний; таблица векторов может находиться по произвольным адресам. Используется внешний контроллер прерываний.

Процессор должен иметь встроенную кэш-память, наличие которой предполагает разработку основных алгоритмов ее работы, стратегии и алгоритма замены строк, проработку вопросов структурной организации кэш-памяти.

При разработке системы команд следует учесть, что в RISC-процессоре операции обращения к памяти отделены от операций, связанных с обработкой данных. Операции, связанные с преобразованием данных, выполняются по принципу регистр-регистр и имеют трехадресный формат.

2. Структура выводов кристалла

Для разрабатываемого процессора используется стандартный корпус, имеющий 68 выводов. Обобщенная архитектура внешних выводов кристалла процессора показана на рис. 1.

Рис. 1

Процессор (см. рис. 1) имеет раздельные шины адреса (A) и данных (D), а также двунаправленный порт ввода/вывода (I/O). Пара сигналов HLD и HLDA используется для реализации механизма захвата шины. Сигналы INTRi являются сигналами запроса прерывания от внешних устройств.

Линии RD (чтение), WR (запись), IN (ввод), OUT (вывод) задают выполняемую на шине операцию. Линия FRAME используется для организации режима пакетного обмена между ОЗУ и внутренним кэшем. Появление данного сигнала на шине означает начало транзакции, а снятие - указывает на то, что следующий цикл передачи данных на шине является последним.

Контакт READY (готовность) служит для приема сигнала готовности от медленных внешних устройств. Назначение выводов питания, RESET (сброс) и CLC (синхронизация) очевидно из их названий.

Оставшиеся "лишние" 8 выводов используются для дублирования контактов "земля" и "питание".

3. Форматы данных

В разрабатываемом процессоре предусмотрена поддержка 8- и 16-разрядных типов данных. Эти форматы реализованы для целых чисел со знаком и без знака (рис. 2).

Рис. 2

В целых числах со знаком старший разряд является знаковым (0 - "+", 1 - "-"). Для представления отрицательных чисел используется дополнительный код (дополнение до двух).

В табл. 1 приведены диапазоны значений поддерживаемых типов данных.

Табл. 1

Тип

Диапазон значений

Размер (байт)

полуслово со знаком

-128 … 127

1

полуслово без знака

0 … 255

1

слово со знаком

-32768 … 32767

2

слово без знака

0 … 65535

2

Поскольку целые числа без знака используются также и для представления адресов, то выбранные форматы данных позволяют обеспечить доступ к памяти объемом до 64 Кбайт (при использовании для адреса 16-разрядного числа).

4. Модель памяти и структура регистровой памяти

4.1 Обобщенная модель памяти

На рис. 3 приведена обобщенная модель памяти разрабатываемого процессора.

Рис. 3

Поскольку при разработке процессора используется гарвардская архитектура, то память команд является отдельной. Эта память, а также кэш-память команд и кэш-память данных, размещена внутри кристалла. Память данных является внешней и соединяется с процессором 16-разрядной шиной данных. Кроме этого, в процессоре обеспечена возможность подключения дополнительной внешней памяти команд.

Поскольку в процессоре обеспечена поддержка относительной и косвенной адресации, то адрес при обращении к памяти данных может поступать не только из устройства управления, но также из регистровой памяти, в которой предусмотрена специальная группа адресных регистров.

4.2 Память команд

Память команд предназначена для хранения и считывания команд, которые поступают в устройство управления и управляют процессом обработки информации. Общий объем адресуемой памяти команд на кристалле составляет 48 Кбайт. Кроме этого, в процессоре обеспечена возможность подключения дополнительной внешней памяти команд. Таким образом, общий объем памяти команд может достигать 32К 64-разрядных слов (256 Кбайт).

Рис. 4

Поскольку среди выбранных форматов команд максимальную длину имеют 32-разрядные команды, то для рационального использования 64-разрядной памяти команд вводится дополнительной устройство, позволяющее хранить в одной ячейке памяти две команды (см. рис. 4). Это устройство содержит 32 мультиплексора "2 в 1" с общим сигналом управления.

Управляющим сигналом служит младший бит адреса команды. Если он равен 0, то на выход передается правая половина прочитанного из памяти 64-разрядного слова, если он равен 1 - левая половина. Остальные 15 бит адреса поступают на адресную шину памяти команд.

4.3 Память данных

Доступ к внешней памяти данных осуществляется только с помощью специальных команд, которые передают данные между регистровой памятью и памятью данных. Минимальный объем памяти данных, обусловленный требованиями технического задания, составляет 46 Кбайт. Максимальный объем памяти данных может достигать 64К 16-разрядных слов (128 Кбайт).

Рис. 5

Память данных организована так, что одна ячейка памяти может использоваться для хранения 8- или 16-разрядных чисел (см. рис. 5). Данные всегда располагаются в памяти от начала ячейки. Для выполнения операций над числами разной длины в команде должен присутствовать признак разрядности операндов (дополнительный бит в коде операции, дополнительная буква в мнемонике команды).

Преимуществом такого способа организации памяти является простая в реализации структура, недостатком - нерациональное использование памяти при значительной доле среди хранимых данных 8-разрядных чисел.

4.4 Регистровая память

На рис. 6 показана организация пользовательской регистровой памяти, а также примерная структура системных регистров процессора.

Рис. 6

Пользовательская регистровая память включает тридцать два 16-разрядных регистра общего назначения для хранения данных, доступ к которым осуществляется с использованием прямой регистровой адресации. В соответствии с функциональным назначением выделена группа адресных регистров BP (R30 и R31), предназначенная для хранения базового адреса при использовании относительной адресации или адреса ячейки памяти при косвенной адресации.

В состав системных регистров входят указатель стека (SP), программный счетчик (PC), регистр флажков, регистр физического адреса таблицы векторов прерываний (IDTR), регистры команд (IR1, IR2).

Регистр флажков содержит шесть флажков, которые используются следующим образом:

Z - признак нулевого результата;

C - признак переноса из старшего разряда;

S - знак результата;

O - признак переполнения результата;

I - разрешение прерывания;

T - пошаговый режим.

5. Алгоритм кэширования

В разрабатываемом процессоре используется кэш прямого отображения (рис. 7). Память для хранения копий делится на элементы - строки кэша. Данные из памяти дублируются в кэш целой строкой, которая содержит запрошенную процессором ячейку памяти.

Рис. 7

Вся память рассматривается, как совокупность блоков, которые равны по объему кэшу и состоят из строк. Копия любой строки из любого блока всегда занимает в кэше такое же положение, как оригинал в соответствующем блоке памяти. Таким образом, смещение копии строки относительно начала кэш-памяти всегда равно смещению оригинала строки относительно начала ее блока в памяти.

Для идентификации слова в кэш-памяти используется представление адреса основной памяти в виде трех компонент (см. рис. 7). ТЭГ определяет номер блока основной памяти, которому принадлежит адресуемая ячейка. Поле средних разрядов СТРОКА идентифицирует номер строки кэша, в которой находится слово. Младшие разряды СЛОВО определяют место слова в строке.

Информация о том, какой блок в текущий момент занимает данную строку кэша и является ли эта строка действительной, содержится соответственно в полях тэга и бита достоверности. Поиск слова начинается с выделения битов СТРОКА, по которым определяется единственная строка кэш-памяти, которой может принадлежать адресуемая ячейка. Если найденная строка, согласно биту достоверности, является действительной и имеет идентичный старшим разрядам адреса тэг, то имеет место кэш-попадание. В противном случае происходит замена строки.

Разделение физических адресов на компоненты контроллером кэша и разрядность каждого участка адреса для памяти команд и памяти данных приведены соответственно на рис. 8 и рис. 9.

Рис. 8

Рис. 9

Таким образом, при использовании кэш-памяти объемом 32 Кбайт память команд общим объемом 256 Кбайт разбивается на 8 блоков, каждый из которых содержит 1024 строки, состоящие из четырех 64-разрядных слов. Память данных общим объемом 128 Кбайт разбивается на 4 блока, каждый из которых содержит 2048 строк, состоящих из восьми 16-разрядных слов.

6. Форматы команд

При разработке системы команд процессора учитывались принципы RISC-архитектуры, в соответствии с которыми используется минимальное число форматов команд. Машинные инструкции могут иметь разную длину, а минимизация числа форматов достигается за счет упрощения внутренней структуры команды и одинакового расположения одноименных полей фиксированной длины в командах разных типов.

Все команды процессора начинаются с 8-разрядного кода операции, за которым следуют три разряда, уточняющие поведение команды. Их содержимое зависит от типа команды (признак способа адресации для команд обращения к памяти, формат операндов (разрядность, наличие знака) для операционных команд), либо игнорируется. Код операции и поле признаков однозначно определяют состав и назначение последующих полей команды.

6.1 Команды обращения к памяти

Команды обращения к памяти данных по чтению и записи имеют три различных формата в зависимости от используемого способа адресации ячейки памяти (рис. 10).

Рис. 10

В трех разрядах, следующих за кодом операции, содержатся признак способа адресации (2 разряда) (СА) и номер адресного регистра BP (1 разряд) (Б). При использовании косвенной адресации в адресном регистре содержится прямой адрес ячейки памяти. При использовании относительной адресации прямой адрес вычисляется с помощью сложения базового адреса, который содержится в выбранном регистре BP, со значением смещения в соответствующем поле команды.

В поле АРЕГ содержится номер регистра, являющегося приемником или источником данных в командах чтения или записи соответственно.

6.2 Команды обращения к стеку

Формат команды (рис. 11) аналогичен команде обращения к памяти при использовании косвенной адресации (см. рис. 10).

Рис. 11

Адрес вершины стека содержится в указателе стека SP.

Так как стек "растет" по направлению к младшим адресам памяти, то при помещении слова в стек значение регистра SP уменьшается на единицу, при извлечении слова из стека - увеличивается.

В поле АРЕГ содержится номер регистра, являющегося источником или приемником данных в командах помещения или извлечения слова соответственно.

6.3 Арифметические и логические команды

В RISC-процессоре любые операции с данными выполняются только над содержимым регистров, поэтому все операционные команды используют прямую регистровую адресацию и имеют единый трехадресный формат (рис. 12).

Рис. 12

В трех разрядах, следующих за кодом операции, содержатся признаки разрядности операндов (8/16-разрядные) (Р), наличия знака (со знаком / без знака) (З) и бит разрешения/запрета установки флажков (Ф).

В зависимости от значения признака разрядности операндов АЛУ выполняет арифметические операции над целыми словами, содержащимися в регистрах-операндах, или над их старшими половинами.

При выполнении операций над 8-разрядными данными результат помещается также в старшую половину регистра AРЕЗ, при этом содержимое младшая половина регистра обнуляется.

При выполнении команды умножения произведение имеет двойной размер и возвращается так, что старшая половина результата содержится в регистре R0, младшая - в AРЕЗ (для 8-разрядных чисел в старших половинах указанных регистров).

Поразрядные логические операции выполняются только над 16-разрядными словами.

6.4 Команды сдвигов

Все команды сдвигов выполняются только над регистром, прямой адрес которого находится в команде (рис. 13). Младшие 16 разрядов в команде занимает число позиций, на которое осуществляется сдвиг.

Следует отметить, что формат полей команды аналогичен команде обращения к памяти при использовании относительной адресации (см. рис. 10).

Рис. 13

процессор кристалл число регистровый

В двух из трех разрядов, следующих за кодом операции, содержатся признак разрядности операнда (8/16-разрядный) (Р) и бит разрешения/запрета установки флажков (если он равен единице, все команды сдвига помещают значение бита, сдвинутого за границы операнда, во флаг переноса) (Ф).

В зависимости от значения признака разрядности операнда может быть выполнен сдвиг 8- или 16-разрядного содержимого регистра.

В первом случае осуществляется сдвиг только старшей половины регистра, содержимое младшей половины при этом не определено.

6.5 Команды переходов и работы с подпрограммами

Команды безусловного/условных переходов и команда вызова подпрограммы имеют общий формат (рис. 14) и содержат прямой адрес следующей команды или ее смещение относительно текущего значения программного счетчика.

Различие между простым переходом и вызовом подпрограммы заключается в том, что при переходе к подпрограмме адрес следующей за вызовом команды помещается в стек для последующего возврата.

Рис. 14

В одном из трех разрядов, следующих за кодом операции, содержится признак (П), определяющий, как следует использовать значение адресного поля команды. В одном случае адрес перехода вычисляется с помощью сложения адреса текущей команды, который содержится в регистре PC, со значением смещения в соответствующем поле команды. В другом случае в программный счетчик помещается находящийся в адресном поле прямой адрес перехода в памяти команд.

Команда возврата из подпрограммы имеет безадресный формат (рис. 15) и содержит только код операции. Адрес возврата извлекается из стека.

Рис .15

6.6 Команда загрузки в регистр непосредственного значения

Команда загрузки значения в регистр (рис. 16) содержит в двух младших байтах непосредственный операнд, заносимый в регистр AРЕГ. Формат полей команды аналогичен командам обращения к памяти при использовании относительной адресации (см. рис. 10) и командам сдвигов (см. рис. 13).

Рис. 16

Непосредственный операнд, заносимый в регистр, всегда является 16-разрядным словом. Биты признаков в данной команде игнорируются.

6.7 Команды управления

Команды управления микропроцессором имеют безадресный формат (рис. 17) и содержат только код операции.

Рис. 17

Они включают в себя команды управления флагами (например, установка и сброс флага разрешения прерываний), команды внешней синхронизации (например, команда останова), команду холостого хода и др.

7. Система команд

В табл. 2 приведена система команд разрабатываемого процессора (включая семантику их выполнения и установку флажков). Синтаксис большинства команд состоит из мнемонического обозначения операции, вслед за которым идут операнды. Различные типы данных или способы адресации определяются указанными операндами, а не изменениями мнемонических обозначений.

Обозначения, используемые при описании семантики операций, приведены под таблицей.

Табл. 2

N

Мне-

Название

Содержание

Флажок

Код

моника

C

Z

S

Команды обращения к памяти

1

LOAD

Чтение из внешней памяти данных

(Rn) := (AПАМ) или

(Rn) := ((BPi)) или

(Rn) := ((BPi) + смещ)

-

-

-

00000001

2

STORE

Запись во внешнюю память данных

(AПАМ) := (Rn) или

((BPi)) := (Rn) или

((BPi) + смещ) := (Rn)

-

-

-

00000010

Команды обращения к стеку

3

PUSH

Запись в стек

(SP) := (SP) - 1

((SP)) := (Rn)

-

-

-

00000011

4

POP

Чтение из стека

(Rn) := ((SP))

(SP) := (SP) + 1

-

-

-

00000100

Арифметические и логические команды

5

ADD

Сложение

(Rn) := (Ri) + (Rj) или

(Rn)[15-8] := (Ri)[15-8] + (Rj)[15-8]

+

+

+

00000101

6

SUB

Вычитание

(Rn) := (Ri) - (Rj) или

(Rn)[15-8] := (Ri)[15-8] - (Rj)[15-8]

+

+

+

00000110

7

MUL

Умножение

(Rn) := ((Ri) * (Rj))[15-0]

(R0) := ((Ri) * (Rj))[31-16] или

(Rn)[15-8] := ((Ri)[15-8] * (Rj)[15-8])[7-0]

(R0)[15-8] := ((Ri)[15-8] * (Rj)[15-8])[15-8]

+

+

+

00000111

8

DIV

Деление

(Rn) := (Ri) / (Rj) или

(Rn)[15-8] := (Ri)[15-8] / (Rj)[15-8]

+

+

+

00001000

9

AND

Поразрядное "И"

(Rn) := (Ri) AND (Rj)

-

+

-

00001001

10

OR

Поразрядное "ИЛИ"

(Rn) := (Ri) OR (Rj)

-

+

-

00001010

11

XOR

Поразрядное "ИСКЛЮЧАЮЩЕЕ ИЛИ"

(Rn) := (Ri) XOR (Rj)

-

+

-

00001011

Команды сдвигов

12

SL

Сдвиг влево

(Rn)[N+1] := (Rn)[N]

(Rn)[0] := 0 или

(Rn)[8] := 0

+

-

-

00001100

13

SAR

Сдвиг вправо арифметический

(Rn)[N] := (Rn)[N+1]

(Rn)[15] := (Rn)[15]

+

-

-

00001101

14

SLR

Сдвиг вправо логический

(Rn)[N] := (Rn)[N+1]

(Rn)[15] := 0

+

-

-

00001110

15

RL

Сдвиг влево циклический

(Rn)[N+1] := (Rn)[N]

(Rn)[0] := (Rn)[15] или

(Rn)[8] := (Rn)[15]

+

-

-

00001111

16

RR

Сдвиг вправо циклический

(Rn)[N] := (Rn)[N+1]

(Rn)[15] := (Rn)[0] или

(Rn)[15] := (Rn)[8]

+

-

-

00010001

Команды переходов и работы с подпрограммами

17

JMP

Переход безусловный

(PC) := (PC) + смещ или

(PC) := (AКОМ)

-

-

-

00010010

18

JZ

Переход, если флаг нуля установлен

если (Z) = 1, то

(PC) := (PC) + смещ

или

(PC) := (AКОМ)

-

-

-

00010011

19

JC

Переход, если перенос установлен

если (С) = 1, то

(PC) := (PC) + смещ

или

(PC) := (AКОМ)

-

-

-

00010100

20

CALL

Вызов подпрограммы

(SP) := (SP) - 1

((SP)) := (PC) + 1

(PC) := (PC) + смещ или

(PC) := (AКОМ)

-

-

-

00010101

21

RET

Возврат из подпрограммы

(PC) := ((SP))

(SP) := (SP) + 1

-

-

-

00010110

Команда загрузки в регистр непосредственного значения

22

CNST

Загрузка в регистр константы

(Rn) := значение

-

-

-

00010111

Команды управления

23

CLI

Сброс флага прерываний

(I) := 0

-

-

-

00011000

24

STI

Установка флага прерываний

(I) := 1

-

-

-

00011001

25

HLT

Останов

-

-

-

00011010

26

NOP

Нет операции

(PC) := (PC) + 1

-

-

-

00000000

При описании операций в таблице используются следующие обозначения:

Ri, Rj, Rn - регистры общего назначения;

BPi - адресные регистры;

AПАМ - прямо адресуемая ячейка памяти данных;

AКОМ - прямо адресуемая ячейка памяти команд;

смещ, значение - непосредственные данные, входящие в команду;

(X) - содержимое X;

((X)) - содержимое по адресу, хранящемуся в X;

(X)[N] - разряд N в X;

(X)[N1-N2] - группа разрядов N1-N2 в X.

8. Организация конвейера

В процессоре реализован конвейерный принцип обработки информации. Используется двухступенчатый конвейер по выборке команд из памяти и по размещению их в очередь для дальнейшего исполнения (рис. 18).

Рис. 18

Для двухступенчатого конвейера выделяются фаза выборки команды и фаза выполнения команды (рис. 19). Параллельно и асинхронно могут работать два процессора: процессор памяти и исполнительный процессор. Процессор памяти обеспечивает работу с памятью команд и памятью данных, а также с кэш-памятью. На исполнительный процессор возлагаются функции, связанные с дешифрацией и выполнением команд.

Рис. 19

На рис. 18 содержимое программного счетчика и адрес следующей подготовленной к выполнению команды (next instruction) подаются на схему сравнения. Если в результате выполнения текущей команды (current instruction) в программный счетчик был занесен адрес перехода в программе, то операция проверки равенства даст отрицательный результат, на основании которого устройство управления блокирует выполнение следующей команды и заносит прочитанную из памяти новую команду в регистр. В случае, если адреса равны, следующая подготовленная команда передается на выполнение, содержимое программного счетчика увеличивается на единицу, и запускается процесс выборки очередной команды.

9. Структура исполнительной подсистемы

Структура исполнительной подсистемы показана на рис. 20. Основными элементами исполнительной подсистемы являются регистровый файл (РОН) и АЛУ. Трехшинная организация РОН допускает в одном такте выборку двух операндов и запись одного операнда. Данные при этом выбираются из РОН по переднему фронту импульса синхронизации и записываются по заднему фронту. Операционное устройство представляет собой комбинационную схему. Все операции выполняются за один такт.

Рис. 20

По переднему фронту синхроимпульса из РОН одновременно выбираются два операнда, соответствующие адресам AРA и AРB. В течение времени длительности тактового импульса сигналы распространяются через комбинационные схемы АЛУ. При этом выполняемая операция определяется подаваемым на вход АЛУ кодом операции (OPC). Если на управляющий вход РОН подается сигнал разрешения записи WR, то по заднему фронту в РОН по адресу AРC запоминается результат выполнения операции.

10. Ввод-вывод

Поскольку по требованию технического задания объем внешней 16-тиразрядной памяти данных должен составлять 46 Кбайт, то, имея 16-тиразрядную шину адреса, часть доступных адресов остается незадействованной. Таким образом, мы можем разместить в одном адресном пространстве с памятью данных и другие внешние устройства ввода/вывода, расположив их адреса в различных диапазонах (рис. 21).

Рис. 21

Для ввода-вывода данных используется двунаправленный буферный регистр с тремя состояниями. Ввод-вывод организован с использованием специальных команд ввода-вывода. Идентификация обращения к внешним устройствам осуществляется по их адресу.

11. Система прерываний

Для автоматической реакции на внешние и на внутренние события в процессоре реализована векторная система прерываний; таблица векторов может находиться по произвольным адресам. Используется внутренний контроллер прерываний (рис. 22).

Рис. 22

В зависимости от источника возникновения сигнала прерывания могут быть:

- внешние (аппаратные) - события, которые исходят от внешних источников (периферийных устройств, датчиков и т.п.);

- внутренние (исключения) - события в самом процессоре, как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам памяти или недопустимый код операции.

За каждым источником прерывания закрепляется номер - вектор прерывания, который идентифицирует соответствующий обработчик прерывания. Векторы прерываний объединяются в таблицу векторов прерываний (IDT), содержащую адреса обработчиков прерываний. Местоположением таблицы является память команд. Адрес в физической памяти и размер таблицы прерываний определяется регистром IDTR.

Алгоритм обработки прерывания при обнаружении запроса прерывания представлен на рис. 23.

Рис. 23

Следует отметить, что при вызове подпрограммы обработки прерывания аппаратно в стеке сохраняются только программный счетчик и регистр флагов. Остальные регистры должны сохраняться и восстанавливаться в прерывающей программе при помощи команд обращения к стеку (PUSH / POP).

12. Прямой доступ к памяти

В разрабатываемом процессоре предусмотрена поддержка прямого доступа к памяти, то есть режима обмена данными между устройствами и основной памятью без участия процессора. В результате скорость передачи увеличивается, так как данные не пересылаются в процессор и обратно.

Рис. 24

Режим прямого доступа к памяти позволяет любому устройству заявить о возникновении потребности к захвату шины (см. рис. 24). При поступлении запроса на захват шины ПДП-контроллер анализирует приоритет устройства, посылает запрос HLD в процессор и после получения от процессора сигнала HLDA разрешает устройству захватить шину. Внешнее устройство, успешно осуществившее захват шины, самостоятельно выставляет на шину сигналы адреса и управления и исполняет в течение какого-то времени ту же ведущую роль на шине, что и процессор. На это время процессор отключается от системной шины и переходит в пассивное состояние.

13. Обобщенный алгоритм функционирования системы

На рис. 25 представлена обобщенная структурная схема разрабатываемого процессора. На схеме опущены разрядности шин (см. рис. 3, 18, 20). Также с целью упрощения схемы отсутствует изображение конвейерной обработки команд (см. рис. 18).

Рис. 25

Для выполнения программы процессор выбирает команды из памяти и выполняет определяемые ими действия. Команды выбираются из последовательных адресов памяти, пока не встретится команда перехода. Для этого в программном счетчике (PC) отслеживается адрес очередной подлежащей выполнению команды. После выборки этой команды содержимое регистра PC обновляется, чтобы он указывал на следующую команду в памяти в порядке расположения адресов. Команда перехода может загрузить в PC другой адрес.

На рис. 26 представлен обобщенный алгоритм функционирования. С целью упрощения алгоритма при описании базового принципа функционирования не затрагиваются вопросы, связанные с конвейеризацией (см. раздел "Организация конвейера").

Рис. 26

Как видно из приведенного алгоритма, процессор завершает цикл выборки и выполнения команд, если очередной выбранной командой оказывается команда останова (HLT).

14. Алгоритмы выполнения основных команд

14.1 Команды обращения к памяти

На рис. 27а и 27б соответственно приведены временные диаграммы циклов чтения и записи при работе процессора с внешней памятью данных.

Рис. 27

14.2 Арифметические и логические команды

Алгоритм функционирования исполнительной подсистемы (см. рис. 20) предполагает выделение следующих фаз выполнения команды:

1) выборка команды из кэш-памяти команд;

2) выборка данных из регистровой памяти (при этом одновременно дешифрируется код операции);

3) выполнение операции в АЛУ;

4) запись в РОН результата выполнения операции.

На рис. 28 показано, как происходит синхронизация этих действий.

Рис. 28

По переднему фронту импульса синхронизации дешифрируется и подается на вход АЛУ код операции. При этом из РОН одновременно выбираются два операнда, соответствующие адресам AРA и AРB, и их значения передаются в регистры A и B соответственно. На это требуется время Дt1. Затем АЛУ начинает оперировать поступившими данными. После промежутка Дt2 сигналы распространятся через комбинационные схемы АЛУ, и выходные сигналы АЛУ стабилизируются. Если на управляющий вход РОН подается сигнал разрешения записи WR, то по заднему фронту в РОН по адресу AРC запоминается результат выполнения операции.

Никаких внешних сигналов, указывающих на начало и конец подцикла и сообщающих АЛУ, когда нужно начинать работу и когда нужно передавать результаты на шину C, нет. В действительности АЛУ работает постоянно. Однако его входные сигналы недействительны в течение периода Дt1. Точно так же его выходные сигналы недействительны в течение периода Дt1 + Дt2. Единственными внешними сигналами, управляющими исполнительной подсистемой, являются нарастающий фронт синхронизирующего сигнала, с которого начинается цикл исполнительной подсистемы, и задний фронт синхронизирующего сигнала, который загружает регистры из шины C. Границы подциклов определяются только временем прохождения сигнала.

14.3 Команды переходов

Команды переходов заменяют содержимое регистра PC целевым адресом перехода. Этот адрес получается либо путем добавления смещения, заданного в команде перехода, к значению регистра PC (рис. 29а), либо загрузкой прямого адреса, находящегося в команде перехода, в регистр PC (рис. 29б).

Рис. 29

Данная схема верна как для команды безусловного перехода, так и для условных переходов, а также для команды перехода к подпрограмме. Разница заключается только в том, что при условном переходе предварительно проверяется один из флажков и переход осуществляется только при определенном значении этого флажка. А при выполнении перехода к подпрограмме предварительно в стеке сохраняются значения программного счетчика и регистра флажков.

Размещено на Allbest.ru


Подобные документы

  • Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.

    курсовая работа [1,2 M], добавлен 26.05.2022

  • Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.

    учебное пособие [1,1 M], добавлен 09.04.2013

  • Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.

    курсовая работа [621,0 K], добавлен 24.09.2010

  • Физическая организация памяти компьютера. Организация структуры обработки потока данных. Степень и уровни параллелизма. Оценка иерархической организации памяти. Динамическая перестройка структуры. Микросхемы запоминающих устройств. Кэш-память процессора.

    лекция [2,4 M], добавлен 27.03.2015

  • Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.

    реферат [111,2 K], добавлен 25.02.2015

  • Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.

    реферат [28,1 K], добавлен 13.11.2009

  • Рост производительности и снижение потребляемой мощности процессора. Упрощенная-схема процессора BF535. Поддержка моделей памяти. Стандарты коммуникационных протоколов. Системные регистры процессора. Регистровый файл данных. Шины связи регистрового файла.

    презентация [6,3 M], добавлен 14.12.2013

  • Основные характеристики процессора: быстродействие, тактовая частота, разрядность, кэш. Параметры материнской платы. Исследование архитектуры домашнего компьютера. Соотношение частоты памяти и системной шины в смартфоне, количество слотов памяти.

    лабораторная работа [1,1 M], добавлен 26.12.2016

  • Характеристики элементов вычислительной машины для выполнения офисных операций. Выбор процессора, расчет его мощности на 60 GFLOPS. Выбор материнской платы, системы охлаждения для процессора, физической и оперативной памяти для хранения информации.

    контрольная работа [43,6 K], добавлен 11.11.2015

  • Выполнение операции умножения над числами с фиксированной точкой со сдвигом суммы частичных произведений вправо. Разработка структуры центрального процессора при выполнении двухадресной команды со следующими способами адресации: прямая и регистровая.

    курсовая работа [459,5 K], добавлен 25.03.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.