Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 курс 1 семестр / лекции / Лекция 2 Процессор MIPS

.pdf
Скачиваний:
29
Добавлен:
27.12.2022
Размер:
858.64 Кб
Скачать

Лекция 2. Процессоры MIPPS.

1.Архитектура процессора MIPS.

2.Инструкции, операнды, регистры, память.

3.Расшифровка машинных кодов.

Литература:

1.Цифровая схемотехника и архитектура компьютера. Дэвид М. Харрис и Сара Л. Харрис, 2009г.

2.Архитектура ЭВМ и систем В.Л. Бройдо, О.П.

Ильина, 2006г.

1. Архитектура процессора MIPS.

Слова в языке компьютера называются «инструкциями» или «командами», а словарный запас компьютера –«системой команд» Инструкция компьютера определяет операцию, которую нужно исполнить, и её операнды, куда поместить результат операции .

инструкция

 

 

 

 

 

 

 

исполнение

 

операция

 

операнд

 

результат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MIPS (Microprocessor without Interlocked Pipeline Stages)—микропроцессор без блокировок в конвейере.

Микропроцессор, разработанный компанией MIPS Computer Systems (в настоящее время MIPS Technologies) использует следующую систему команд: RISC ( reduced instruction set computer)-система с упрощенным набором команд.

Ранние модели процессора имели 32-битную структуру. В настоящее время существуют 64-битные версии.

Основная идея MIPS Technologies, которой руководствовался Джон Хеннеси со своей командой, проектировавший в 1981 году первый MIPSпроцессор:

1.Сильно упростив внутреннее устройство CPU и используя очень длинный конвейер*, можно получить процессор, не умеющий выполнять сравнительно сложные инструкции, зато работающий на очень высоких тактовых частотах, позволяющих скомпенсировать потери производительности на выполнение этих сложных инструкций.

2. MIPS-процессоры не будут аппаратно поддерживать даже операции умножения и деления - благодаря чему можно было

обойтись без сложных в реализации блокировок конвейера

*Примечание:

Конвейер – способ организации параллельного исполнения инструкций для повышения производительности процессора

Конвейерная организация исполнения инструкций.

Исполнение любой инструкции характеризуются типовыми процессами, например: П1 – процесс выборки команды из памяти; П2 – расшифровка команды (что делать); П3 – определение адреса операндов инструкции; П4 – исполнение команды; П5 – запоминание результата. Все эти процессы повторяются над любой командой!!!

 

 

Выборка

 

Расшифровка

Определение

 

Исполнение

 

Запоминание

 

 

 

адреса

 

 

 

 

инструкции

 

инструкции

 

инструкции

 

результата

 

 

 

операндов

 

 

 

 

 

 

 

 

 

 

 

 

И1

 

 

 

 

 

 

 

 

 

 

Инстр.1

 

Инстр.1

 

 

 

Инстр.1

 

 

Инстр. 1

 

Инстр. 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

И2

 

 

 

Инстр.2

 

 

 

Инстр.2

 

Инстр.2

 

Инстр.2

И3

 

 

 

 

 

 

 

Инстр3

 

Инстр.3

 

Инстр.3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инстр.4

И4

 

 

 

 

 

 

 

 

 

 

Инстр.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инстр.5

И5

 

П1

 

П2

 

 

П3

 

 

 

 

 

 

 

П4

 

П5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод:

Исполнение инструкций И происходит параллельно по процессам их исполнения и все инструкции будут выполнятся быстро, но при этом каждая инструкция должна быть простой и требующей одинаковых по времени процессов исполнения.

Микропроцессоры - это цифровые системы, которые читают и выполняют команды машинного языка.

Взаимное расположение регистров, памяти, АЛУ и других блоков, из которых состоит микропроцессор, называют микроархитектурой.

MIPS формировалась из желания разработчиков следовать четырем простым принципам, сформулированным Паттерсоном и Хеннесси:

1)единообразие для простоты построения;

2)типичный сценарий должен быть быстрым;

3)чем меньше, тем быстрее;

4)хорошая разработка требует хороших компромиссов.

2. Инструкции, операнды, регистры, память.

 

2.1. Инструкции

 

 

Сложение a=b+c Код на языке ассемблера MIPS

add a,b,c

Вычитание a=b-c Код на языке ассемблера MIPS

sub a,b,c

Первый принцип хорошей разработки выполнен:

 

Единообразие для простоты построения.

 

Более сложный код преобразуется во множество инструкций MIPS

a=b+c-d

 

 

Код на языке ассемблера MIPS

 

sub t,c,d

#t=c-d

 

add a,b,t

#a=b+t

 

введена временная переменная t.

Второй принцип хорошей разработки компьютерной архитектуры:

Типичный сценарий должен быть быстрым.

Количество команд специально оставляют небольшим, чтобы аппаратное обеспечение для их поддержки было простым и быстрым. Более сложные операции выполняются при помощи

последовательности нескольких простых команд – за счет конвейера.

2.2. Операнды: регистры и константы.

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

Регистры

Архитектура MIPS использует 32 регистра, которые называют

набором регистр или регистровым файлом.

Чем меньше количество регистров, тем быстрее к ним доступ.

Третье правило хорошей разработки компьютерной архитектуры:

Чем меньше, тем быстрее.

Регистровые файлы обычно состоят из маленького массива быстрой памяти типа SRAM (Static Random Accessory Memory) – статическая память с произвольным доступом.

РЕГИСТРОВЫЕ ОПЕРАНДЫ.

Пример кода.

ПРИМЕЧАНИЕ: $ - обозначение регистра.

Первый операнд $ - куда поместить результат

 

Код на языке высокого уровня: a=b+c

– операнд результата.

Второй и третий операнды $ –операнды

Код на языке ассемблера MIPS:

источники исполняемой операций.

$s0 = a, $s1 = b, $s2 = c

 

add $s0, $s1, $s2

# a = b + c

MIPS обычно хранит переменные в 18 из 32 регистров: $s0-$s7 и $t0- $t9.

Регистр $, с именами s называют сохраняемыми (англ.: saved) регистрами, с именами t, называют временными (англ.: temporary) регистрами.

Функция a=b+c-d

Код на языке ассемблера MIPS:

$s0=a $s1=b $s2=c $s3=d # распределение памяти

sub $t0

$s2

$s3

# t0=c-d

add $s0

$s1

$t0

# a=b+t0

2.3. Память

Комбинируя память и регистры, программа может получать доступ к большим объёмам данных достаточно быстро.

№ слова

Значение 0xF2F1AC07 ( Word 1, состоящее из 32 бит – 8 тетрад) хранится в памяти по адресу 00000001.

Для чтения слова MIPS использует команду (анзл.: load word): lw,

что обеспечивает чтения данных из памяти в регистр.

Код чтения и загрузки слова, находящегося в памяти по адресу 00000001, в регистр $s3:

lw $s3, 1 ($s0) # read

Инструкция lw определяет эффективный адрес в памяти как сумму базового адреса и смещения.

Базовый адрес (записан в скобках в инструкции) является нулевым регистром, значение которого всегда 00000000, смещение - константа 1.

Инструкция lw читает значение из памяти по адресу: (00000000 + 1) = 00000001.

в $s3 появляется значение 0xF2F1AC07, которое было в памяти по адресу 00000001.

Инструкция сохранить слово (англ.; store word)- sw. Используется для записи данных из регистра в память.

Пример:

# write записать слово из $s7 в память по

sw $s7, 5 ($s0)

 

адресу 0+5=5