![](/user_photo/_userpic.png)
Учебное пособие 800492
.pdfjr $ra greater:
slt $v0, $a1, $a0 jr $ra
3.2.36. Покажите инструкции MIPS, которые реализуют следующие псевдокоманды. Вы можете использовать регистр $at для хранения временных данных, но вам запрещается портить содержимое (затирать) другие регистры.
a) addi $t0, $s2, imm31:0 (прим. переводчика: под imm31:0 подразумевается 32-битный непосредственный операнд)
b)lw $t5, imm31:0($s0)
c)rol $t0, $t1, 5 (циклически сдвинуть $t1 влево
на 5 разрядов и поместить результат в $t0)
d) ror $s4, $t6, 31 (циклически сдвинуть $t6 вправо на 31 разряд и поместить результат в $s4).
121
ЗАКЛЮЧЕНИЕ
Ядро М4К на базе MIPS32 превосходит процессоры ARM семейства Cortex-M по производительности, экономичности расхода энергии и компактности кристалла. Попробуем разобраться, за счет чего удалось этого достичь.
Во-первых, в ядре М4К предусмотрена возможность увеличения количества РОН до 16 наборов по 32 регистра. Эти регистры используются для хранения параметров и значений операндов на кристалле, чтобы уменьшить количество пересылок в модуль памяти и тем самым сократить количество циклов, повысить быстродействие. Регистры общего назначения могут также использоваться в качестве «теневых» для ускорения обработки прерываний.
При обработке прерывания или исключения ЦП определяет, какой из теневых наборов следует использовать. Выбранный набор переводится в активное состояние, после чего вектор прерывания продолжает выполнение. При этом не требуется ни сохранение контекста, ни выполнение восстановления, поскольку только подпрограмма прерывания имеет доступ к активному в текущий момент регистру. Соответственно, сокращается время обработки прерывания и уменьшается количество обращений к памяти, т.к. содержимое регистров сохраняется после обработки предыдущего прерывания или исключения, и загрузка значений из SRAM не производится.
Повышение производительности обеспечено за счет блока MDU и быстродействующей памяти SRAM, доступ к которой осуществляется с малой задержкой. Ядро М4К выполняет операции умножения с накоплением и умножения 32×16 за один цикл, а 32×32 — за 2 цикла. Как мы упоминали выше, благодаря отдельному функциональному блоку, работающему независимо от конвейера, операции умножения и деления выполняются параллельно арифметическим и сдвиговым.
Адресное пространство памяти разделено на область данных D-SRAM и область инструкций I-SRAM, что позволяет одновременно выполнять транзакции с инструкциями и данны-
122
ми. При желании эти области можно объединить, переведя модуль памяти в соответствующий режим (Unified).
В отличие от ARM, где нет возможности управления памятью, интерфейс I-SRAM позволяет использовать память программ для хранения энергонезависимых данных. Также SRAM позволяет прерывать длительные транзакции или отменять выполнение транзакции на любой стадии конвейера и мгновенно реагировать на внешние события, такие как исключения и пре-
рывания (EJTAG).
Еще одна уникальная особенность MIPS32 — аппаратнопрограммный модуль CorExtend, позволяющий добавлять собственные устройства и расширять набор инструкций пользовательскими командами UDI. Это позволяет осуществлять тонкую оптимизацию всех «проблемных» мест системы, ускорив работу приложения. Например, с помощью CorExtend можно реализовать блок обработки графики, TCP/IP ускоритель, логические схемы безопасности и криптографии, беспроводное управление или интерфейс реального времени.
Модульность архитектуры М4К делает ее очень гибкой. Из большого количества опциональных блоков можно выбрать нужные, сократив количество вентилей и, соответственно, размер кристалла и энергопотребление. К таким блокам относятся модуль отслеживания и отладки (EJTAG), интерфейс для сопроцессора и расширения CorExtend. Кроме того, предусмотрены возможности подключения и отключения функций отладки, установки точек останова, а также выбор количества файлов регистров, скорости работы MDU и типа интерфейса SRAM. Все это позволяет варьировать характеристики ядра, в первую очередь быстродействие, в широких пределах.
Немаловажное значение имеет набор аппаратных и программных инструментов, которые предлагаются производителем для упрощения разработки, ускорения тестирования и оценки конечного проекта. Среди них можно отметить отладочный щуп EJTAG SystemNavigator™, набор инструментов GNU с поддержкой ОСРВ и Linux, симуляторы CycleAccurate и
123
InstructionAccurate, оценочные платы и пакет NavigatorIntegratedComponentSuite. Помимо этого компания
MIPS Technologies предлагает программную среду разработки с поддержкой всего спектра инструментов для MIPS. Наконец, создано сообщество сторонних производителей средств разработки. Вместе эти инструменты обеспечивают всестороннюю и полную поддержку проектирования на базе MIPS.
124
![](/html/70990/27/html_t3VyHDSFE9.mjc8/htmlconvd-36_UKv125x1.jpg)
ПРИЛОЖЕНИЕ
Таблица П1 Инструкции, отсортированные по полю opcode
125
![](/html/70990/27/html_t3VyHDSFE9.mjc8/htmlconvd-36_UKv126x1.jpg)
Продолжение табл.П1
126
![](/html/70990/27/html_t3VyHDSFE9.mjc8/htmlconvd-36_UKv127x1.jpg)
Продолжение табл. П1
127
![](/html/70990/27/html_t3VyHDSFE9.mjc8/htmlconvd-36_UKv128x1.jpg)
Таблица П2 Инструкции типа R, отсортированные по полю funct
128
![](/html/70990/27/html_t3VyHDSFE9.mjc8/htmlconvd-36_UKv129x1.jpg)
Продолжение табл. П2
129
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1.Дэвид М. Хэррис, Сара Л. Харрис. Цифровая схемотехника и архитектура компьютера. ДМК-Пресс, 2017, 772 с.
2.Паттерсон Д., Хеннеси Д., Архитектура компьютеров
ипроектирование компьютерных систем, 4-е изд., СПб. Питер,
2012, 784 с., ISBN 978-5-459-00291-1
3.Попов А.Ю. Организация суперскалярных процессоров [Электронный ресурс]: учебное пособие по курсу «Организация ЭВМ»/ А.Ю. Попов— Электрон. текстовые данные.— М.: Московский государственный технический университет имени Н.Э. Баумана, 2011.— 60 c.— Режим доступа: http://www.iprbookshop.ru/31132.html.— ЭБС «IPRbooks»
4.Таненбаум Э.С., Архитектура компьютера, 5-е изд. -
СПб.: 2007. — 844 с.
5.Угрюмов Е.П. Цифровая схемотехника.Уч пособие для ВУЗов. 2-е изд. – СПб.: БХВ-Петербург,2007.-800с.
6.Dominic Sweetman. See MIPS Run, 2nd edition. — Morgan Kaufmann Publishers. — ISBN 0-12088-421-6.
7.Dominic Sweetman. See MIPS Run. — Morgan Kaufmann Publishers. — ISBN 1-55860-410-3.
8.EduMIPS64 Free cross-platform educational MIPS64 CPU Simulator, http://www.edumips.org
9.Erin Farquhar. MIPS Programmer's Handbook. — Morgan Kaufmann Publishers. — ISBN 1-55860-297-6.
10.MARS (MIPS Assembler and Runtime Simulator) An IDE for MIPS Assembly Language Programming, http://courses.missouristate.edu/KenVollmar/Mars
11.MARS: An Education-Oriented MIPS Assembly Language Simulator, cs.missouristate.edu/~vollmar/MARS/fp288vollmar.pdf.
12.MIPS32 Instruction Set Quick Reference, https://imagination-technologies-cloudfront- asets.s3.amazonaws.com/documentation/MD00565-2B-MIPS32- QRC-01.01.pdf
130