Проектирование процессора ЭВМ

Автор работы: Пользователь скрыл имя, 06 Февраля 2014 в 11:24, курсовая работа

Краткое описание

В настоящее время существуют две тенденции в проектировании средств вычислительной техники: во-первых, разработка устройств, специализированных ЭВМ на основе микропроцессорных средств, во-вторых, реализация ЭВМ с использованием СБИС программируемых логических матриц, матриц программируемых логических элементов, программируемых логических интегральных схем (ПЛИС) и базовых матричных кристаллов.

Прикрепленные файлы: 1 файл

пояснительная моя.doc

— 457.50 Кб (Скачать документ)

 

 

 

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

Команда перехода к подпрограмме прерывания выполняется в следующем порядке . При установке флага прерывания (IF) в 1 проверяется содержимое регистра номера прерывания (RgZ). Если содержимое не равно 0, то необходимо сохранить в стеке содержимое IP, аккумулятора и регистра флагов (RgF). Для этого формируется указатель стека (SP), путем вычитания из SP 4, так как операнд занимает 4 ячейки памяти. Далее по ША передается в RgAdr. Затем содержимое IP передается по ШД в RgDB и записывается в ОЗУ по RgAdr. Далее действия повторяются для аккумулятора и RgF.

После сохранения в стеке IP, аккумулятора и RgF необходимо перейти к обработчику прерываний. В данном проекте номер прерывания является адресом обработчика этого прерывания. Поэтому, для перехода к обработчику адрес из RgZ по ША передается в IP. Затем обнуляется флаг IF, и командный цикл начнется с адреса первой команды обработчика прерываний. Алгоритм перехода к подпрограмме прерывания проиллюстрирован в приложении 3.

5.4 Алгоритм  выполнения команд передачи управления

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

 

 

5.5 Алгоритм  вызова подпрограммы

Алгоритм вызова подпрограммы, представленный в приложении 5, реализуется  так. При переходе к подпрограмме необходимо сохранить в стеке  содержимое IP, аккумулятора и RgF и передать управление на новый адрес. Для этого формируется указатель стека (SP), путем вычитания из SP 4. Далее по ША передается в RgAdr. Затем содержимое IP передается по ШД в RgDB и записывается в ОЗУ по RgAdr. Далее действия повторяются для аккумулятора и RgF. В конце выполняется передача управления на новый адрес.

5.6 Алгоритм  возврата из подпрограммы

Для возврата из подпрограммы требуется восстановить из стека RgF, аккумулятор и IP. Для этого содержимое SP по ША передается в RgAdr и из 0-4 битов ячейки ОЗУ, так как RgF имеет 5 бит,  по RgAdr извлекаются данные. Затем данные из RgDB по ШД передаются в RgF. После этого SP сдвигается путем прибавления 4. Далее операции повторяются для 64 битов аккумулятора и 13 битов IP. Алгоритм возврата из подпрограммы проиллюстрирован в приложении 6.

 

5.7 Алгоритмы  операций со стеком

При записи в стек содержимое SP передается по ША в RgAdr. Затем данные из RgA по ШД записываются в RgDB. Затем из RgDB данные записываются в ОЗУ по адресу, хранящемуся в RgA. Алгоритм записи в стек проиллюстрирован в приложении 7.

При чтении из стека содержимое SP передается по ША в RgAdr.

Затем по RgAdr данные извлекаются из ОЗУ в RgDB. Далее проверяется формат команды.

Для формата SI данные из РгДОП по ШД передаются в ОЗУ в ячейку с адресом в 8-21 битах RGI.

Для формата RК 8-10 биты РК по ША передаются в RgAdrРОН. Затем по RgAdrРОН в РОН по ШД записываются 32 бит RgDB, а следующие 32 бит записываются в РОН по адресу в RgAdrРОН сложенному с 1. Алгоритмы записи в стек и чтения из стека проиллюстрированы в приложении 8.

При сложении и вычитании  из стека по ША в RgAdr записывается адрес ячейки ОЗУ, где хранятся данные, которые затем по ШД через RgDB записываются в RgB1, RgB2, RgB3 и RgB4. Затем в аккумуляторе происходит операция сложения или вычитания и запись результата из аккумулятора по ШД через RgDB в ячейки памяти ОЗУ. Алгоритм сложения и вычитания из стека проиллюстрирован в приложении 9.

 

5.8 Алгоритмы  выполнения операций с ВУ

При записи в ВУ данные из регистров группы A предаются по ШД в регистр внешнего устройства (RgED).

При чтении из ВУ данные из RgED по ШД передаются в РгДОП. Далее проверяется формат команды.

Для формата SI данные из РгДОП по ШД передаются в в ОЗУ в ячейку с адресом в 8-21 битах RGI.

Для формата RR 8-10 биты RGI по ША передаются в РгАРОН. Затем по РгАРОН в РОН по ШД записываются младшие 32 бит РгДОП, а старшие 32 бит записываются в РОН по адресу в РгАРОН сложенному с 1.. Алгоритмы выполнения операций с ВУ проиллюстрированы в приложении 10.

 

5.9 Алгоритмы  системных операций

Остановка осуществляется сбросом соответствующего флага WF в 0.

По командам запрещения и разрешения прерываний выполняется  сброс или установка флага IF соответственно.

Для выхода из прерывания требуется восстановить из стека RgF, аккумулятор и IP. Для этого содержимое SP по ША передается в RgAdr и из 0-3 битов ячейки ОЗУ, так как RgF имеет 4 бита,  по RgAdr извлекаются данные. Затем данные из RgDB по ШД передаются в RgF. После этого SP сдвигается путем прибавления 4. Далее операции повторяются для 64 битов аккумулятора и 13 битов IP.

 

 

5.10 Алгоритм  выполнения операции записи в  ЗУ

Выполнение записи в  ЗУ происходит по алгоритму, показанному  в приложении 12. Из регистра по ША данные передаются в RgAdr. Затем из группы регистров B по ШД данные передаются в RgDB. Далее содержимое RgDB записывается в ОЗУ по RgAdr.

Выполнение записи в  ЗУ происходит по алгоритму, показанному  в приложении 12.

 

 

5.11 Алгоритм  выполнения операции чтения из  ЗУ

Сначала определяется формат команды. Для этого проверяется содержимое пятого бита РК. Если РК[5]=0, значит формат команды RR, в противном случае — SI. Затем для данного формата проверяется тип адресации. Его код содержится в 6, 7 битах регистра команд.

    При формате RR 8-10 биты РК по ША передаются в регистр адреса регистров общего назначения РгАРОН. По РгАРОН из регистра общего назнаения (РОН) по ШД данные передаются в РгДОП. Так как операнд имеет разрядность в 2 раза больше чем разрядность регистра, он храниться в двух регистрах с адресами, отличающимися на 1. Следовательно, в РгДОП переданы только младшие биты операнда. Для извлечения старших битов содержимое РгАРОН увеличивается на 1 и по этому адресу из РОН  по ШД данные передаются в старшие биты РгДОП. При прямой адресации в регистре общего назначения хранится операнд. Следовательно, в РгДОП содержится непосредственный операнд. При косвенной адресации в РгДОП содержится адрес операнда. Для его выборки данные из РгДОП по ШД передаются в RgBuf. Затем из RgBuf адрес передается на РгАОП для последующего извлечения операнда. При относительной адресации выполняются те же операции, что и при косвенной, только в RgBuf передается сумма РгДОП и PC. Затем по РгАОП на РгДОП из ОЗУ извлекается операнд.

Теперь в РгДОП хранится операнд, который передается в регистры первого операнда (RgA1, RgA2, RgA3, RgA4) по ШД.

 

При формате SI 8-21 биты RGI по ША передаются в регистр адреса РгАОП. По РгАРОП из оперативной памяти ОЗУ по ШД данные передаются в РгДОП. Так как операнд имеет разрядность в 2 раза больше чем разрядность ячейки ОЗУ, он храниться в двух ячейках с адресами, отличающимися на 1. Следовательно, в РгДОП переданы только младшие биты операнда. Для извлечения старших битов содержимое РгАОП увеличивается на 1 и по этому адресу из ОЗУ  по ШД данные передаются в старшие биты РгДОП. При прямой адресации в ОЗУ хранится операнд. Следовательно, в РгДОП содержится непосредственный операнд. При косвенной адресации в РгДОП содержится адрес операнда. Для его выбокии данные из РгДОП по ШД передаются в RgBuf. Затем из RgBuf адрес передается на РгАРОП для последующего извлечения операнда. При относительной адресации выполняются те же операции, что и при косвенной, только в RgBuf передается сумма РгДОП и PC. Затем по РгАРОП на РгДОП из ОЗУ извлекается операнд.

Теперь в РгДОП хранится операнд, который передается в регистры первого операнда (RgA1, RgA2, RgA3, RgA4) по ШД.

 

Выполнение операции чтения из ЗУ происходит по алгоритму, показанному в приложении 13.

 

 

6. Проектирование операционного автомата устройства выполнения команд

Совокупность недетализованных основных блоков процессора, детально проработанных регистров и счетчиков, а также коммуникаций между ними является операционным автоматом процессора (иногда называемым устройством или  автоматом выполнения команд). Входными сигналами операционного автомата процессора являются выходные (управляющие) сигналы У = {у1, у2, …, у3} ведущего УУ процессора (УУ верхнего уровня), а выходными сигналами – входные сигналы (логические условия) Х = {х1, х2, …, х3} ведущего УУ процессора. Операционный автомат может быть разработан на основании алгоритма командного цикла.

Построим обобщенный алгоритм командного цикла (схема схеме КП 230101.013.017.001.007 ТЧ). Осуществим разметку этого алгоритма. Список микроопераций и логических условий для алгоритма выполнения команд УУ верхнего уровня представлен в приложении 14.

На основании множества  присваиваний алгоритма командного цикла и его разметки можно  разработать функциональную схему операционного автомата.

 

 

 

 

 

 

 

 

 

 

 

 

 

7. Разработка алгоритмов выполнения арифметических и логических операций

Арифметико-логическое устройство должно реализовать выполнение алгоритмов следующих операций:

  • сложение;
  • вычитание;
  • умножение;
  • деление;
  • конъюнкция;
  • дизъюнкция;
  • сложение по модулю 2.

Входные операнды в АЛУ  размещаются в 8-разрядных регистрах A1.A2.А3.А4., B1.B2.В3.В4. Результат операции помещается в группу регистров результата C1.C2.C3.C4.C5.C6.C7.C8.

В АЛУ формируются  флаги, соответствующие переполнению разрядной сетки (флаг OF), признаку знакового результата (SF), признаку нулевого результата (ZF). Числа представляются в прямом коде. Отрицательные числа представляются в дополнительном коде.

Заданная в варианте адресность 2 означает, что мы должны в АЛУ передавать два операнда.

7.1  Алгоритм выполнения операций сложения и вычитания

При сложении содержимое регистров RgA1 и RgB1 складываются, и результат записывается в RgC1. Затем складывается содержимое RgA2, RgB2 и перенос (C) от предыдущего сложения, и результат записывается в регистр RgС2. Также складываются RgA3 c RgB3 и RgA4 c RgB4. В RgС5 записывается сигнал переноса. Далее, если содержимое регистра RgС  равно 0, выставляется флаг ZF.

При вычитании содержимое регистров RgB1, RgB2, RgB3, RgB4 переводится в дополнительный код. Затем cодержимое регистров RgA и RgB складываются, и результат записывается в RgC, также как и при сложении, с соответствующими переносами. Далее проверяется перенос. Если перенос был, значит результат в дополнительном коде, содержимое RgC переводится в прямой код эквивалентной операцией перевода в дополнительный код, и флагу SF присваивается значение флага CF .

Затем, если содержимое регистра RgС равно 0, выставляется флаг ZF.

Алгоритм выполнения операций сложения и вычитания проиллюстрирован в приложении 15.

 

    1. Алгоритм выполнения операции умножения

При умножении сначала  проверяется знаковый бит регистров A4 и B4. Если в обоих случаях он равен 1 или 0, то результат умножения будет положительный, и знаковый бит Регистра С выставляется в 0, в противном случае в 1.

В данном проекте используется метод умножения старшими разрядами множителя со сдвигом суммы  частных произведений (СЧП) влево.

Регистр i определяется под счетчик, и ему присваивается значение  62, т. к. необходимо проверить 62 разрядов (без знакового разряда) множителя, содержащегося в регистрах B1.B2.B3.B4. Далее обнуляем регистр С, который отводится под СЧП.

Процесс умножения сводится к 62 кратному выполнению цикла, приведенного ниже. В цикл включается проверка регистра, в котором проходит управление умножением, т. к. множитель хранится в четырёх регистрах.

Цикл заключается в  следующем:

  1. выполняется проверка очередного разряда множителя;
  2. если он равен 0, то выполняется сдвиг группы регистров C1.C2.C3.C4.С5.С6.С7.С8 с учетом переносов, значение последнего переноса присваивается флагу OF, для учета переполнения, и из регистра i вычитается 1, далее переход в пункт 1;
  3. если очередной разряд множителя равен 1, то регистр C суммируется с множимым, хранящимся в регистрах A1.A2.А3.А4., с учетом переносов, а результат записывается в регистр С;
  4. выполняется сдвиг группы регистров C1.C2.C3.C4.С5.С6.С7.С8 с учетом переносов, значение последнего переноса присваивается флагу OF, для учета переполнения, и из регистра i вычитается 1, далее переход в пункт 1;

После выполнения цикла  результат умножения будет хранится в регистре C. Затем флагу SF присваивается значение знакового 15 бита регистра C8. Затем, если содержимое регистра С равно 0, выставляется флаг ZF.

Алгоритм выполнения операции умножения проиллюстрирован в приложении 16.

                      7.3  Алгоритм выполнения операции деления

При делении сначала  проверяется знаковый бит регистров A4 и B4. Если в обоих случаях он равен 1 или 0, то результат деления будет положительный, и знаковый бит Регистра С выставляется в 0, в противном случае в 1.

Регистр i определяется под счетчик, и ему присваивается значение  126, т. к. результат деления будет равен 127 разряда (без знакового разряда) .Затем значения регистров RgB переводятся в дополнительный код, т.к. операция деления сводится к многократным операциям вычитания.Процесс деления сводится к 127 кратному выполнению цикла, приведенного ниже. В цикл включается проверка регистра, в котором проходит управление делением.

Информация о работе Проектирование процессора ЭВМ