Проектирование процессора ЭВМ с архитектурой IA-32

Автор работы: Пользователь скрыл имя, 08 Марта 2011 в 17:34, курсовая работа

Описание работы

Цель курсового проекта состоит в приобретении практических навыков в проектировании операционного и управляющего автоматов процессора ЭВМ в соответствии с заданными в техническом задании архитектурными особенностями, а также в разработке технической документации, представленной пояснительной запиской и чертежами, выполненными в соответствии с ЕСКД.

Содержание работы

Введение
Задание на курсовой проект………………………………………………... 5
Общие аспекты проектирования процессора……………………. 5
Исходные данные………………………………………………….. 6
Архитектура процессора….………..……...…………..………………….. 7
Форматы команд…………………….……………………………… 7
Форматы данных…………….………………………………..……... 14
Расчет и выбор разрядности основных узлов процессора……… 16
Регистровая модель………….……………………………………... 17
Виды адресации………………………………………………………. 22
Структурная организация процессора……………..………………… 25
Общая структура процессора………………………………………... 25
Выбор и обоснование элементной базы……………..…………….. 25
Блоки обработки данных……………………………………….…… 26
Управляющий автомат………………………………..…………….. 30
3.4.1 УА с жесткой логикой……………….…………………….. 30
3.4.2 УА с микропрограммным управлением………………….. 33
Регистровая память (РП)………………….……………………….. 36
Оперативная память (ОП)…………………….…………………… 38
Блок интерфейсов (БИНТ)………………………..………………… 38
Содержательные схемы алгоритмов работы процессора….……………. 39
Общий алгоритм цикла работы процессора………………………... 39
Выборка команд………………………………..……………………. 41
Формирование исполнительного адреса и выборка
операндов……………….…………………………..……………………. 47
Обработка прерываний………………………………………………. 54
Выполнение четырех операций из индивидуального задания……. 55
Микропрограммное управление………….………..…………………. 64
Формат микрокоманды………………………………………………. 64
5.1.1 Зона БФТ…………..…………….………………………. 65
5.1.2 Зона БПТ……………..………...……………………………. 68
5.1.3 Зона БМУ……………………….…………………………… 6
5.1.4 Зона БИНТ…………………….…………………………….. 70
5.1.5 Зона ОП……………………..….……………………………... 7
5.1.6 Зона CONST…………………………………………………… 74
Микропрограмма операции обработки чисел в формате с
плавающей точкой…………………………………..…………………... 74
Заключение…………………………………………………………………... 80
Литература……………………………………………………………………. 81

Файлы: 1 файл

ПЗ.docx

— 1.90 Мб (Скачать файл)

    #D - денормализованный операнд.

    #U -  результат слишком мал для  заданного формата.

    #O – результат слишком велик для заданного формата.

    #P  -  значение не может быть  точно представлено в заданном  формате.

    2.2 Форматы данных

    Таблица 2.2 - Типы данных FPU

    Тип данных     Бит     Количество

    значащих  цифр

    Пределы
    Целое слово     16     4     -32768 — 32767
    Расширенное

    вещественное

    80     19     3.37*10-4932 —1.18*104932
 

    а) Числа с фиксированной точкой

    Числа с фиксированной точкой рассматриваются  как целые числа со знаком и  без знака (Рис.2.1).

    Все биты числа с фиксированной точкой без знака используются для представления  абсолютной величины числа.. При сложении двух чисел с ФТ без знака считается, что более короткое число дополнено старшими нулями.

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

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

    

    

    Рис. 2.1. Представление чисел с фиксированной точкой.

    б) Числа с плавающей точкой.

    Вещественный  формат IEEE, используемый в проектируемом  процессоре:

  • расширенное вещественное: бит 79 — знак мантиссы, биты 78 – 64 — 15-битная экспонента + 16 383, биты 63 – 0 — 64-битная мантисса с первой цифрой (то есть бит 63 равен 1) (Рис. 2.2).

    

    Рис. 2.2. Представление чисел с плавающей точкой (расширенный формат)

    Формат  начинаются со знакового бита для  всего числа; 0 указывает  на положительное  число, 1 — на отрицательное. Затем следует смещенная экспонента. В конце идут мантиссы по 23, 52 и 63 бита соответственно.

    Нормализованная мантисса начинается с 1, за которой  следует 1 остаток мантиссы. 1 бит  перед мантиссой  сохраняется. Следовательно, стандарт определяет мантиссу следующим  образом. Она состоит из явного бита, который всегда равен 1, и явной  двоичной точки, за которыми идут 63 произвольных бита. Если все 63 бита мантиссы равны 0, то мантисса имеет значение 1,0. Если все биты мантиссы равны 1, то числовое значение мантиссы немного меньше, чем 2,0. Значащая часть числа (s) всех нормализованных чисел лежит в диапазоне 1 < s < 2.

    2.3 Расчет и выбор разрядности основных узлов процессора

    1) Регистр команд предназначен для хранения команд и его длина определяется максимальным форматом команды из заданного в техническом задании набора команд:

    n(РгК)  = 32 [бит].

    2.3.2. Регистр адреса команд:

    Длина счетчика адреса команд СчАК,  определяется емкостью ОП в полусловах:

    n(СчАК) = log2 E = log2 223 = 23 [бит].

    2) Регистр адреса ОП.

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

    n(РАОП) = log2 (E / L)  = log2 (223/ 23) = 20 [бит].

    где E – емкость оперативной памяти (8Мб);

    L – длина слова (8 байт).

    3) Регистр чтения и регистр записи.

    Оба регистра будут иметь одинаковую разрядность, равную длине слова  ОП- L.

    n(РгЧт/РгЗп)=64 [бит]

    4) Слово состояния процессора.

    В качестве слова состояния процессора будет выступать регистр CR0, разрядность которого, согласно IA-32, 32 бита.

    n(ССП)=32 [бит].

    5) Рабочие программно недоступные регистры.

    Рабочими  регистрами будут регистры, находящиеся  в блоках обработки данных. Так, например, для выполнения команды XCHG необходим регистр для промежуточного хранения переменной Temp.Этот регистр будет 32х разрядным.

    Также программно недоступным будет регистр  буфера РгБ, необходимый для уменьшения количества обращений к ОП. Его разрядность вычисляется по формуле L-1 (длина слово ОП минус 1 байт)

    Таким образом, n (РгБ)=56[бит].

    Так же нужны регистры для хранения операндов, для промежуточных вычислений, сдвигов (32 разряда), для обработки знаков, характеристик и мантисс(1, 15 и 64 разряда соответственно).

    Для обращения к отдельным битам  регистра флагов EFLAGS, системного регистра CR0 необходимs отдельныt регистрs по 32 разряда.

    Аналогично  для 16 разрядных регистров TR, SR, CR нужны 16 разрядные регистры.

    Для работы с РОНами необходимы регистры, которые обращались бы с частью этих регистров(EAX->AX->AL и AH),  то есть 32, 16 и 8 разряда

    2.4 Регистровая модель

    2.4.1 Структура ССП

    Словом  состояния программы является регистр  CR0.

    Он  содержит системные флаги управления, которые контролируют режим работы статусом процессора.

    ССП имеет следующий формат: 

  P

  G

  C

  D

  N

  W

      A

  M

      W

  P

      N

  E

  E

  T

  T

  S

  E

  M

  M

  P

  P

  E

  31   30   29   28       19   18   17   16   15           6   5   4   3   2   1   0
 

    Регистр CR0 содержит флаги, которые управляют или показывают условия, относящиеся к системе в целом, а не к отдельной задаче. Младшие 16 бит (биты с 0 по 15) этого регистра называются словом состояния машины (Machine Status Word - MSW) для совместимости с МП 80286.

    PE - разрешение защиты (Protection Enable, 286+). Когда PE=1 процессор находится в защищенном режиме. Если бит сброшен, то процессор находится либо в режиме реального адреса, либо в режиме системного управления (тип режима определяется аппаратно: в режиме системного управления активен сигнал SMIACT#).

    MP - наличие сопроцессора (Math Present, 286+). Влияет на выполнение команды WAIT/FWAIT, которая используется для взаимодействия с сопроцессором(0).

    EM - эмуляция сопроцессора (Emulation, 286+). Показывает, нужно ли эмулировать функции сопроцессора. Установка бита EM часто возникает в случае отсутствия сопроцессора в системе. Когда EM=1, любая команда для сопроцессора, команда MMX или SSE/SSE2 вызывает особый случай(0).

    TS - задача переключена (Task Switched, 286+). Процессор устанавливает этот бит при каждом переключении задач. Он также проверяет этот бит, когда интерпретирует команды сопроцессора, так как состояние последнего требуется сохранять только в случае запроса сопроцессора новой задачей. Бит TS может быть очищен загрузкой в регистр CR0, а также специальной командой CLTS(0).

    ET - тип расширения (Extension Type, 386, 486). Показывает тип сопроцессора: 80287 (ET=0), 80387 или встроенный FPU i486DX (ET=1). В новых моделях бит зарезервирован и всегда содержит 1.

    NE - ошибка сопроцессора (Numeric Error, 486+). Когда NE=1, процессору разрешается пользоваться внутренним ("родным") механизмом сигнализации ошибок с плавающей точкой. Когда NE=0, процессор эмулирует сигнализацию ошибок с плавающей точкой как у внешних сопроцессоров (80287, 80387), выставляя сигнал FERR#, который должен обрабатываться внешним контроллером прерываний(0).

    WP - защита от записи (Write Protect, 486+). Защита от записи страниц с пометкой "read-only" при обращениях с уровня супервизора.

    AM - маска выравнивания (Alignment Mask, 486+). Если CR0.AM=1 и EFLAGS.AC=1 и CR0.PE=1 и CPL=3, то производится контроль выравнивания. Т.е. при обращениях к памяти двойное слово обязательно должно начинаться с адреса, кратного 4, а 16-битное слово - с адреса, кратного 2, иначе генерируется нарушение контроля выравнивания (исключение #17).

    NW - несквозная запись (Not Write-through, 486+). Используется для управления кэшированием(0).

    CD - запрещение кэш-памяти (Cache Disable, 486+). Используется для управления кэшированием(1).

    PG - страничная трансляция (Paging, 386+). Определяет, использует ли микропроцессор таблицы страниц для трансляции линейных адресов в физические. Страничная трансляция используется только в защищенном режиме, и попытка выставить этот бит в реальном режиме приводит к нарушению общей защиты (исключение #13)(0).

    2.4.2 Status Register

    Показывает  текущее состояние x87FPU.

15 14 13 11 10 9 8 7 6 5 4 3 2 1 0
 B C3 TOP C2 C1 C0 ES SF PE OE UE ZE DE IE

    B  - FPU занят

    TOP  - вершина стека

    Флаги исключений

     - точность

     - переполнение 

     - деление на 0 ( не используется)

     - денормализованный операнд

     - неправильная операция

    SF – ошибка стека( не используется)

    ES – статус ошибки(не используется)

    C3 C2 C1 C0- флаги состояния (с3,с2,с1 – не используются)

    2.4.3 Control Register.

    Содержит  маски исключений и контролирует точность и методы   округления.

15   14   13 12 11 10 9 8 7 6 5 4 3 2 1 0
  X RC PC   PM OM UM ZM DM IM

Информация о работе Проектирование процессора ЭВМ с архитектурой IA-32