Автор работы: Пользователь скрыл имя, 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
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
Пензенский Государственный университет
Кафедра вычислительной техники
Никишин Кирилл Игоревич
Учебная модель 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-процессоров:
Фиксированный формат команд, отказ от сложных и редко используемых команд и способов адресации существенно упрощает реализацию устройства управления процессора, что позволяет уменьшить размер кристалла 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.
Logisim —
это образовательный
Программа написана на Java и требует для работы установленную Java Runtime Environment.
Интерфейс Logisim полностью переведён на русский язык, программа распространяется с подробнейшей справочной системой на русском языке. Почти все нюансы работы с программой описаны в справочной системе — от получения базовых навыков работы до подробного описания всех компонентов встроенной библиотеки.
Интерфейс программы состоит из строки меню, панели инструментов, панели проводника, таблицы атрибутов и холста. Панель проводника содержит список схем проекта и все инструменты загруженных библиотек. Любые инструменты можно выносить на панель инструментов. Состав панели инструментов настраивается в окне параметров проекта, которое вызывается из пункта «Параметры» меню «Проект». На холсте располагаются все компоненты редактируемой в данный момент схемы. Холст покрыт сеткой, по которой выравниваются все компоненты и провода схемы. Таблица атрибутов содержит атрибуты выделенного в данный момент инструмента или компонента на холсте. На рисунке 1 изображено окно программы Logisim.
Рисунок 1. Окно программы Logisim.
Лучший способ быстро освоить базовые навыки работы с Logisim — пройти все шаги «Пособия начинающего» из меню «Справка».
Logisim позволяет не
только редактировать цифровые
схемы, но и моделировать их
поведение. Если флаг «
Ещё одна важнейшая функция Logisim — возможность собирать провода в пучки. Пучки обозначаются на схемах чёрным цветом. Очень многие компоненты библиотеки имеют атрибут «Разрядность данных». Этот атрибут может принимать значение от 1 до 32, и если он больше 1, то подключение провода к соответствующему контакту компонента автоматически создаст пучок проводов. Естественно, нужно соединять контакты с одинаковой разрядностью данных. Разрядность данных можно назначать также входным и выходным контактам схем, что значительно уменьшает количество проводов на схеме, а значит, повышает её удобочитаемость.
Огромным преимуществом программы Logisim является обширная библиотека компонентов.
Существует возможность писать на языке Java собственные библиотеки компонентов, обладающие всем набором функций, доступных в Logisim. Руководство по написанию таких библиотек — в разделе «Библиотеки JAR» руководства пользователя Logisim.
Набор инструкций и внутреннее устройство процессора 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-битных регистра. Они объединены
в регистровый файл. Номера
и имена регистров принято начина
Таблица 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-битного результата
умножения и целочисленного
Кроме того, у процессора предусмотрен тактовый выход, который
позволяет подавать во внешнюю схему импульсы непосредственно с тактового генератора, расположенного внутри схемы процессора.
Все инструкции процессора 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) |