1 курс 1 семестр / лекции / Лекция 2 Процессор MIPS
.pdfЛекция 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 |