Учебная модель 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 Мб (Скачать файл)

00000000 # nop

00000000 # nop

00000000 # nop

254b0005 # addiu (09, 00)

Рисунок 41. Листинг hex-файла.

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

Таблица 7. Обход конфликта при переходе на новый адрес

Инструкция

Состояние конвейера

j

IF

ID

EX

MEM

WB

       

nop

 

IF

ID

EX

MEM

WB

     

nop

   

IF

ID

EX

MEM

WB

   

nop

     

IF

ID

EX

MEM

WB

 

addiu

       

IF

ID

EX

MEM

WB

Номер такта

1

2

3

4

5

6

7

8

9


Если загрузить  этот код в схему процессора  lilpM32, то можно увидеть, что после выполнения первой инструкции j на стадии MEM будет вычислен адрес перехода и инструкция addiu не исполнится. 

На рисунке 42 показано, что рассчитался адрес перехода, и команда addiu не загрузилась в конвейер.

Рисунок 42. Иллюстрирование устранения конфликта по управлению с помощью nop инструкций.

Рассмотрим  другой пример. Его листинг приведён ниже на рисунке 43.

addiu $t1, $0, 2    #$t1=2

bne   $s1, $t1, label #если $s1!=$t1 то переход

addiu $t3, $t1, 3  #$t3=$t1+3

label:

addiu $t4, $t1, 7  #$t4=$t1+7

Рисунок 43. Листинг программы.

В регистр $t1 записывается значение, равное 2. Затем проверяется условие, если значение регистра $s1 не равно значению  регистра $t1. Регистр $s1 =0. В таком случае инструкция addiu $t3, $t1, 3 не должна выполниться, так как будет совершён переход на метку label. Затем будет выполнена инструкция addiu $t4, $t1, 7 и регистр $t4 запишется число 9. Листинг hex-файла приведён на рисунке 44.

# lilpM32 program; format:

# xxxxxxxx # instr (opcode, funct)

 

24090002 # addiu (09, 00)

00000000 # nop

00000000 # nop

00000000 # nop

16290004 # bne (05, 00)

00000000 # nop

00000000 # nop

00000000 # nop

252b0003 # addiu (09, 00)

252c0007 # addiu (09, 00)

Рисунок 44. Листинг hex-файла.

На рисунке 45 обведены кругом стадия выполнения инструкции и результат на выходе АЛУ. Результат, равный единице, говорит о том, что два регистра $t1 и $s1 не равны.

Рисунок 45. Выполнение инструкции условия.

На рисунке 46 показано, какие значения хранятся в регистрах в регистровом файле. На рисунке 47 показано, какие значения записаны в память данных. В память данных записались значения: 2 (от выполнения инструкции addiu $t1, $0, 2), 1 (от выполнения инструкции bne   $s1, $t1, label), 9 (от выполнения инструкции addiu $t4, $t1, 7).

 

Рисунок 46. Записанные значения в регистровом файле.

Рисунок 47. Дамп ячеек памяти данных.

4.2.1.2 Устранение конфликта по управлению аппаратным путем.

Другой  способ  избежать  конфликта  —  вычислить адрес перехода уже на стадии получения инструкции IF, а не на стадии MEM.

Схема вычисления адреса переносится на стадию IF. Схема показана на рисунке 48. Если нет команды управления, или если условие не выполнилось, то к значению программного счётчика (РС) прибавляется единица. Если выполнился переход на метку, то к значению РС будет либо прибавляться константа (signImm), либо вычислится адрес перехода (инструкция j).

Рисунок 48. Схема вычисления адреса.

Кроме вычисления адреса перехода нужно чтобы ещё и результат инструкций получался верным. На рисунке 49 показана схема выполнения инструкций при конфликте по управлению.

Рисунок 49. Схема выполнения инструкций при конфликте по управлению.

Первый мультиплексор, у которого сигнал выборки назван как en_mux, работает следующим образом. Он либо пропускает результат инструкции от блока EX/MEM, либо подаёт нуль. Если код операции (opcode) и код функции (funct) равны нулю, то есть получается  инструкция nop, то мультиплексор пропускает нуль, иначе он пропускает результат предыдущей инструкции. Этот мультиплексор поставлен для того, чтобы не происходило зацикливание результата последней инструкции.

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

Третий мультиплексор пропускает либо значение первого операнда АЛУ, либо значение второго мультиплексора. Управление мультиплексора осуществляется за счёт компаратора. Сравниваются значения текущего и следующего значения программного счётчика, и если значения равны, то пропускается результат второго мультиплексора, иначе пропускается значение операнда s.

Первый мультиплексор  второго операнда АЛУ может пропускать: либо значение регистра, либо значение беззнаковой, либо значение знаковой константы.

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

Арифметико-логическое устройство проверяет выполнилось ли условие или нет. Если значение результата на выходе АЛУ равно единице, то будет совершён переход, если оно будет равно нулю, то условие не выполнилось и перехода не будет.

Фактически  последние мультиплексоры операндов  АЛУ реализуют инструкцию nop (вставка пузыря), когда не нужно выполнять инструкцию, следующую за инструкцией управления, а нужно перейти на новый адрес и выполнить  новую инструкцию.

На рисунке 50 изображён весь процессор с доработанной частью для обнаружения конфликта по управлению.

Рисунок 50. Процессор со схемой обнаружения конфликтов по управлению.

Рассмотрим  первый пример, но теперь из кода hex-файла уберём пустые инструкции (nop). Полученный листинг кода показывается ниже на рисунке 51.

# lilpM32 program; format:

# xxxxxxxx # instr (opcode, funct)

 

08000005 # j (02, 00)

254b0005 # addiu (09, 00)

Рисунок 51. Листинг hex-файла.

В данном примере  получается, что после выполнения первой инструкции j на стадии IF будет вычислен адрес перехода и инструкция addiu не исполнится.  На рисунке 52 обведены кругом инструкции j, addiu и показан выход АЛУ (result). На рисунке выход result равен нулю, это говорит о том, что инструкция addiu заменилась на инструкцию nop. Инструкция addiu не должна была выполниться.

Рисунок 52. Иллюстрирование устранения конфликта по управлению аппаратным путём.

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

# lilpM32 program; format:

# xxxxxxxx # instr (opcode, funct)

 

24090002 # addiu (09, 00)

16290004 # bne   (05, 00)

252b0003 # addiu (09, 00)

252c0007 # addiu (09, 00)

Рисунок 53. Листинг hex-файла.

На рисунке 54 обведены кругом инструкции bne, addiu $t3, $t1, 3 и показан выход АЛУ (result). На рисунке выход result равен нулю, это говорит о том, что инструкция addiu заменилась на инструкцию nop, так как выполнилось условие перехода. Инструкция addiu не должна была выполниться. Переход по условию состоится на метку label и выполнится инструкция addiu $t4, $t1, 7. В регистре $t4 должно лежать значение, равное 9 (2+7).  На рисунке 55 показано, какие значения хранятся в регистрах в регистровом файле. На рисунке 56 показано, какие значения записаны в память данных. В память данных записались значения: 2 (от выполнения инструкции addiu $t1, $0, 2), 1 (от выполнения инструкции bne   $s1, $t1, label), 9 (от выполнения инструкции addiu $t4, $t1, 7).

Рисунок 54. Иллюстрирование устранения конфликта по управлению аппаратным путём.

Рисунок 55. Записанные значения в регистровом файле.

Все записанные значения получились верными, и они  нечем не отличаются от значений, показанных на рисунке 46.

Рисунок 56. Дамп ячеек памяти данных.

 

 

5 Использование RISC-микропроцессора с MIPS-архитектурой в телекоммуникациях.

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

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

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

Таблица маршрутизации  может составляться двумя способами:

  • статическая маршрутизация — когда записи в таблице вводятся и изменяются вручную. Такой способ требует вмешательства администратора каждый раз, когда происходят изменения в топологии сети. С другой стороны, он является наиболее стабильным и требующим минимума аппаратных ресурсов маршрутизатора для обслуживания таблицы.
  • динамическая маршрутизация — когда записи в таблице обновляются автоматически при помощи одного или нескольких протоколов маршрутизации — RIP, OSPF, IGRP и др. Кроме того, маршрутизатор строит таблицу оптимальных путей к сетям назначения на основе различных критериев — количества промежуточных узлов, пропускной способности каналов, задержки передачи данных и т. п. Критерии вычисления оптимальных маршрутов чаще всего зависят от протокола маршрутизации, а также задаются конфигурацией маршрутизатора. Такой способ построения таблицы позволяет автоматически держать таблицу маршрутизации в актуальном состоянии и вычислять оптимальные маршруты на основе текущей топологии сети. Однако динамическая маршрутизация оказывает дополнительную нагрузку на устройства, а высокая нестабильность сети может приводить к ситуациям, когда маршрутизаторы не успевают синхронизировать свои таблицы, что приводит к противоречивым сведениям о топологии сети в различных её частях и потере передаваемых данных.

Маршрутизаторы  помогают уменьшить загрузку сети, благодаря её разделению на домены коллизий или широковещательные домены, а также благодаря фильтрации пакетов. В основном их применяют для объединения сетей разных типов, зачастую несовместимых по архитектуре и протоколам, например для объединения локальных сетей Ethernet и WAN-соединений, использующих протоколы xDSL, PPP, ATM, Frame relay и т. д. Нередко маршрутизатор используется для обеспечения доступа из локальной сети в глобальную сеть Интернет, осуществляя функции трансляции адресов и межсетевого экрана.

Teltonika RUT100 HSDPA Router - маршрутизатор, основанный на процессоре 400 MIPS, обеспечивающим высокую пропускную способность данных и удобную работу для всех пользователей беспроводной сети (рис. 57).

 

 


 

 

 

 

Рисунок 57. Маршрутизатор Teltonika RUT100 HSDPA.

Teltonika RUT - 100 - 3G/Wi-Fi маршрутизатор, основанный на процессоре 400 MIPS, обеспечивающим высокую пропускную способность данных и удобную работу для всех пользователей беспроводной сети.

Маршрутизатор Teltonika RUT - 100 предназначен для создания точки доступа, в которой  интерфейсом WAN является канал 3G/GSM (HSDPA/UMTS/ EDGE/GPRS), а интерфейсом LAN является WiFi (802. 1 1). Инструментом управления подсистемой является простой текстовый файл с конфигурацией и агент RCMS (Remote Configuration Management System), который в паре с  RCMS сервером образует структуру для быстрого ввода в действие беспроводной сети и администрирования. Teltonika также обеспечивает интегрирование с RCMS сервером управления конфигурациями для автоматизации подготовки к работе и повышения управляемости сети.

Область применения:

    • 3G/ EDGE/GPRS маршрутизатор ;
    • точка доступа 802. 1 1 с 3G резервированием;
    • VPN маршрутизатор;

Технические характеристики:

  • Операционная система: Linux;

  • TCP/IP акселератор;
  • Процессор: 400MIPS ARM9 с защитой аппаратуры;
  • Интерфейсы: Mini-PCI соединитель для 802. 1 1 или WiMAX карты, внутренний разъем с USB, UART и SDIO (для 3G/ EDGE/GPRS карт);
  • Напряжение питания: 9-24В DC9-24V DC;
  • Потребляемая мощность: 5 Вт;
  • LED индикаторы: излучаемая мощность, LAN, 3G;

 

Заключение.

В ходе теоретических  и практических исследований,  проведенных  в 

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