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

Учебное пособие 800492

.pdf
Скачиваний:
11
Добавлен:
01.05.2022
Размер:
3.54 Mб
Скачать

jr $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

ПРИЛОЖЕНИЕ

Таблица П1 Инструкции, отсортированные по полю opcode

125

Продолжение табл.П1

126

Продолжение табл. П1

127

Таблица П2 Инструкции типа R, отсортированные по полю funct

128

Продолжение табл. П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