Учебная модель RISC-процессора

Автор работы: Пользователь скрыл имя, 14 Апреля 2013 в 11:33, дипломная работа

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

Цель данной работы состоит в разработке моделей RISC-микропроцессора с MIPS-архитектурой, демонстрирующих возникновения и методы устранения конфликтов по ресурсам, по данным, по управлению.
В результате проведённой работы были разработаны схемы RISC-микропроцессоров с MIPS-архитектурой в системе Logisim , которые могут быть использованы в учебном процессе в подготовке бакалавров и магистров по направлению «Информатика и вычислительная техника».

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

Введение. 5
1 Обоснование выбора среды моделирования Logisim. 7
2 Общие сведения RISC-микропроцессора с MIPS-архитектурой. 10
3 Структура процессора и его конвейерные стадии. 14
3.1 Основные блоки процессора. 16
3.1.1 Память команд и память данных. 18
3.1.2 Декодер инструкций. 18
3.1.3 Регистровый файл. 19
3.1.4 Арифметико-логическое устройство. 20
3.2 Стадии конвейера процессора. 22
3.2.1 Стадия получения инструкции. 22
3.2.2 Стадия декодирования инструкции и чтения регистров. 23
3.2.3 Стадия выполнения и вычисления адреса. 24
3.2.4 Стадия доступа к памяти. 26
3.2.5 Стадия запись в регистр. 28
4.Конфликты процессора. 30
4.1 Конфликт по данным. 30
4.1.1 Устранение конфликта по данным. 33
4.1.1.1 Устранение конфликта по данным с помощью заглушек (nop). 33
4.1.1.2 Устранение конфликта по данным с помощью введения обратной связи (шунт). 39
4.2 Конфликт по управлению. 46
4.2.1 Устранение конфликта по управлению. 48
4.2.1.1 Устранение конфликта по управлению с помощью заглушек (nop). 48
4.2.1.2 Устранение конфликта по управлению аппаратным путем. 53
5 Использование RISC-микропроцессора с MIPS-архитектурой в телекоммуникациях. 61
Заключение. 65
Список литературы. 66

Содержимое работы - 1 файл

Пояснит записка выпускной работы.doc

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

Федеральное агентство  по образованию

Государственное образовательное учреждение

высшего профессионального  образования

Пензенский  Государственный университет

Кафедра вычислительной техники

 

Никишин Кирилл Игоревич

 

 

Учебная модель RISC-процессора.

 

 

Выпускная работа на соискание степени

бакалавра техники  и технологии

по направлению 230100 – Информатика и вычислительная техника

 

 

Научный руководитель:

 к.т.н., профессор Коннов Н.Н.

 

 

 

 

 

Пенза 2012

 

Реферат

Пояснительная записка содержит 66 страниц, 57 рисунков, 7 таблиц, 5 плакатов формата А1.

MIPS-АРХИТЕКТУРА, КОНВЕЙЕР, КОНФЛИКТ, NOP ИНСТРУКЦИЯ, ШУНТ, LOGISIM, МАРШРУТИЗАТОР.

Объектом  исследования является модель RISC-микропроцессора с MIPS-архитектурой.

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

В  результате   проведённой работы  были  разработаны схемы RISC-микропроцессоров с MIPS-архитектурой в системе Logisim и набор программ на языке ассемблер, которые могут быть использованы в учебном процессе в подготовке бакалавров и магистров по направлению «Информатика и вычислительная техника».

 

Содержание

 

Введение.

Первые RISC-процессоры, разработанные  в Стенфордском и Калифорнийском университетах США в начале 80-х  годов, выполняли относительно небольшой набор команд - 50-100 вместо 100-300, выполняемых обычными - CISC (Complex Instruction Set Computer - компьютер со сложным набором команд) - процессорами. Именно эта особенность определила название данного класса процессоров - RISC (Reduced Insruction Set Computer - компьютер с сокращенным набором команд). Однако в последующих разработках RISC-процессоров набор команд значительно расширен, включая команды обработки чисел с плавающей точкой. В настоящее время определились следующие характерные особенности RISC-процессоров:

  • расширенный объем регистровой памяти: от 32 до нескольких сотен регистров общего назначения, входящих в состав микропроцессора;
  • использование в командах обработки данных только регистровой и непосредственной адресации (обращение к памяти используется в командах загрузки и сохранения содержимого регистров, а также в командах управления программой);
  • отказ от аппаратной реализации сложных способов адресации;
  • фиксированный формат команд (обычно два или четыре байта) вместо переменного формата (от 1 до 12 и более байт), характерного для CISC-процессоров;
  • исключение из набора команд, реализующих редко используемые операции, а также команд, не вписывающихся в принятый формат.

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

Перечисленные достоинства RISC-процессоров определили значительный интерес к этим изделиям. Данный класс микропроцессоров выпускает  большинство ведущих производителей СБИС - Intel, IBM, Hewlett-Packard, Hitachi, Phillips,  Texas Instruments, Sumsung, Atmel и другие. Выпускаемые RISC-процессоры имеют различную архитектуру. В настоящее время наиболее популярными являются следующие варианты RISC-архитектур:

ARM – разработка компании Advanced RISC Mashines,

MIPS – разработка компании MIPS Technology,

PowerPC – разработка компаний IBM и Motorola,

SPARC – разработка компании Sun Microsystems.

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

В данном работе рассматривается RISC-микропроцессор с MIPS-архитектурой в программе Logisim.

 

1 Обоснование выбора среды моделирования Logisim.

Logisim  —   это  образовательный  инструмент  для  разработки  и моделирования   цифровых  логических  схем.  Её  написал  и  продолжает активную разработку преподаватель Hendrix College, США, Carl Burch.

Программа написана на Java и требует для работы установленную Java Runtime  Environment. 

Интерфейс Logisim полностью  переведён на русский язык, программа распространяется  с  подробнейшей  справочной  системой  на  русском языке. Почти  все нюансы  работы  с  программой  описаны  в  справочной  системе  —  от получения  базовых  навыков  работы  до  подробного  описания  всех компонентов встроенной библиотеки.

Интерфейс программы состоит  из строки меню, панели инструментов, панели  проводника,  таблицы  атрибутов  и  холста.  Панель  проводника содержит  список  схем  проекта  и  все  инструменты  загруженных  библиотек.  Любые  инструменты  можно  выносить  на  панель инструментов.  Состав  панели  инструментов  настраивается  в  окне параметров проекта, которое вызывается из пункта «Параметры» меню «Проект». На  холсте  располагаются  все  компоненты  редактируемой  в данный момент схемы. Холст покрыт сеткой, по которой выравниваются все  компоненты  и  провода  схемы.  Таблица  атрибутов  содержит атрибуты выделенного в данный момент инструмента или компонента на холсте. На рисунке 1 изображено окно программы Logisim.

Рисунок 1. Окно программы Logisim.

Лучший способ быстро освоить базовые навыки работы с Logisim — пройти все шаги «Пособия начинающего» из меню «Справка».

Logisim  позволяет  не  только  редактировать  цифровые  схемы,  но  и моделировать их  поведение. Если флаг «Моделирование  включено»  из меню «Моделировать» установлен, то Logisim просчитывает процессы, происходящие  в  схеме  прямо  во  время  её  редактирования:  меняются значения  на  входах  и  выходах  устройств,  обновляется  внутреннее состояние  устройств  памяти,  устройства  вывода  отображают соответствующую информацию, а провода меняют цвет в зависимости от проходящих  по  ним  значений.  Для  схем,  на  которых  присутствуют тактовые  генераторы,  можно  либо  осуществлять  моделирование потактово  (пункт  «Один такт» из  меню  «Моделировать»),  либо установить максимальную тактовую частоту (пункт «Тактовая частота») и запустить продолжительное моделирование схемы (пункт «Такты включены»).  Вернуть схему в исходное  состояние можно с помощью пункта «Сбросить моделирование».

Ещё  одна  важнейшая  функция  Logisim  —  возможность  собирать провода в пучки. Пучки  обозначаются на схемах чёрным цветом. Очень многие компоненты библиотеки имеют атрибут «Разрядность данных». Этот атрибут может принимать значение от 1 до 32, и если он больше 1, то  подключение  провода  к  соответствующему  контакту  компонента автоматически  создаст пучок проводов. Естественно, нужно  соединять контакты  с  одинаковой  разрядностью  данных.  Разрядность  данных можно  назначать  также  входным  и  выходным  контактам  схем,  что значительно  уменьшает  количество  проводов  на  схеме,  а  значит, повышает её удобочитаемость.

Огромным  преимуществом  программы  Logisim  является  обширная библиотека  компонентов.

Существует  возможность  писать  на  языке  Java  собственные библиотеки  компонентов,  обладающие  всем  набором  функций, доступных в Logisim. Руководство по написанию таких библиотек — в разделе «Библиотеки JAR» руководства пользователя Logisim.

 

2 Общие сведения RISC-микропроцессора с MIPS-архитектурой.

Набор инструкций и внутреннее устройство процессора  lilpM32  представляют собой очень сильно  упрощённый  вариант реализации  архитектуры MIPS I. MIPS (англ.  Microprocessor  without  Interlocked  Pipeline  Stages  — микропроцессор  без заблокированных стадий  конвейера) — семейство процессоров,  разработанных компанией MIPS  Technologies,  и являющихся  реализацией архитектуры RISC.  RISC  (англ.  Reduced Instruction  Set  Computer  — компьютер с сокращённым  набором инструкций)  —  архитектура  процессора,  в  которой  быстродействие увеличивается  за  счёт  упрощения  инструкций.  В  настоящее  время различные  реализации MIPS  используются  в  основном  во  встроенных системах  (в маршрутизаторах, шлюзах, игровых консолях; например, в Sony PlayStation Portable).

lilpM32 — 32-битный процессор. Это означает, что длина инструкции,

а также разрядность  обрабатываемых им данных — 32 бита. Формально, длина адреса ОЗУ — тоже 32 бита, но компонент ОЗУ в Logisim может иметь максимальную разрядность адреса 24 бита, поэтому фактически при доступе к памяти учитываются только младшие 24 бита адреса. В lilpM32  нельзя  получить  доступ  к  отдельному  байту  памяти  (как  это обычно  принято)  —  только  к  32-разрядному  слову.  Значение, поступающее на адресный вход ОЗУ, задаёт номер 32-разрядного слова (а  не  байта)  для  чтения  или  записи.  Таким  образом,  в  нашем распоряжении  примерно  16  миллионов  4-байтовых  ячеек  (то  есть  64 мегабайта памяти). Для инструкций и для данных используется общая память, то есть lilpM32 имеет архитектуру фон Неймана.

Для работы с  целыми числами и адресами lilpM32 имеет 32 32-битных регистра.  Они  объединены  в  регистровый  файл.  Номера  и  имена регистров принято начинать со знака доллара («$»); для ассемблера это обязательное  условие.  Регистр  с  номером  0  ($0)  всегда  содержит значение  «0»  (запись  в  него  не  имеет  смысла).  В  регистр  $31 сохраняется  адрес  возврата  из  подпрограммы  (функции).  Эти  два условия гарантируются аппаратной реализацией процессора. Кроме того, все остальные регистры  имеют свои  имена и назначение,  однако  это только соглашение, и сам процессор никак не контролирует выполнение этого соглашения  — это задача  программиста.  В  таблице  1 представлены названия регистров и их назначение.

Таблица 1. Назначение и названия регистров

Название

Номер

Назначение

Сохраняется

вызываемой

функцией?

$zero

$0

константа 0

-

$at

$1

временный для  ассемблера

-

$v0-$v1

$2-$3

значения, возвращаемые функциями

-

$a0-$a3

$4-$7

аргументы функций

-

$t0-$t7

$8-$15

временные

-

$s0-$s7

$16-$23

сохраняемые временные

да

$t8-$t9

$24-$25

временные

-

$k0-$k1

$26-$27

зарезервированы для ядра ОС

-

$gp

$28

глобальный  указатель на данные

да

$sp

$29

указатель стека

да

$fp

$30

указатель окна

да

$ra

$31

адрес возврата из функции

-


lilpM32  имеет   два  регистра  для  сохранения  двух  частей  64-битного результата  умножения и целочисленного деления:  регистры LO и HI. Для ввода  и   вывода  данных  у процессора  предусмотрено по  четыре 32-битных буфера (регистра) ввода/вывода. Для доступа к этим буферам процессор имеет по  четыре  32-битных  входа и выхода  для данных, тактовых  входа,  тактовых  выхода,  сигнализирующих о чтении  данных процессором,  и  тактовых  выхода  сигнализирующих  о  записи  данных процессором.  При  записи  нового  значения  (после  выполнения соответствующей  инструкции)  в  буфер,  процессор  подаёт  тактовый импульс  на  соответствующий  тактовый  выход.  Чтобы  записать  новое значение в буфер ввода, нужно подать это значение на соответствующий вход для данных, а на тактовый вход подать тактовый импульс. После этого  можно  обращаться  к  записанному  значению  посредством соответствующей инструкции. Каждый раз, когда процессор считывает значение из буфера, он подаёт  тактовый импульс на  соответствующий тактовый выход. Буферы ввода/вывода можно использовать для подачи в процессор символов  с клавиатуры,  или для вывода  информации  на терминал или на светодиодную матрицу (непосредственно или используя отдельную видеопамять). Заметьте, что наличие буферов ввода/вывода и инструкций для работы с ними — отличительная особенность  lilpM32; это  сделано  для  упрощения.  Как  правило,  ввод  и  вывод  MIPS процессоры осуществляют несколько другими способами.

Кроме  того,  у  процессора  предусмотрен  тактовый  выход,  который 

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

Все  инструкции  процессора  lilpM32  имеют  длину  32  бита.  В зависимости от типа инструкции (существуют R, I и J инструкции), эти 32 бита разбиваются на поля, каждое из  которых несёт определённую информацию —  код  операции  (opcode),  номера  регистров  ($s,  $t,  $d), величину  сдвига  (shamt),  код функции (funct),  непосредственное значение (imm) и адрес перехода (addr). Для инструкций R-типа значение кода операции  всегда равно нулю,  а инструкция определяется по  коду функции.  Для инструкций  I-типа  сама  инструкция  содержит непосредственное  16-битное  целочисленное  значение,  которое  может быть  интерпретировано  (и  расширено  до  32-битного)  как  беззнаковое, или как знаковое, записанное в дополнительном коде (в зависимости от конкретной инструкции). Форматы инструкций представлены в таблице 2.

 

 

Таблица 2. Форматы  инструкций

Тип

Формат (биты)

R

opcode (6)

$s (5)

$t (5)

$d (5)

shamt (5)

funct (6)

I

opcode (6)

$s (5)

$t (5)

imm (16)

J

opcode (6)

addr (26)

Информация о работе Учебная модель RISC-процессора