ДЛК

Архитектура RISC-процессора
ДЛК
ДизайнерДжон Л. Хеннесси и Дэвид А. Паттерсон
Биты32-битный
Введено1994
Версия1.0
ДизайнРИСК
ТипЗагрузка–хранение
КодированиеЗафиксированный
ВетвлениеРегистр состояния
Порядковый номер байтовДвунаправленный
РасширенияНет, но можно использовать MDMX и MIPS-3D
ОткрытьДа
Регистры
Универсальный32 (Р0=0)
С плавающей точкой32 (парный DP для 32-бит)

DLX (произносится как «Deluxe») — архитектура RISC- процессора , разработанная Джоном Л. Хеннесси и Дэвидом А. Паттерсоном , главными разработчиками проектов Stanford MIPS и Berkeley RISC (соответственно), двух эталонных примеров архитектуры RISC (названной в честь архитектуры Berkeley).

DLX по сути является очищенным (и модернизированным) упрощенным процессором Stanford MIPS. DLX имеет простую 32-битную архитектуру загрузки/хранения, несколько отличающуюся от современной архитектуры процессора MIPS . Поскольку DLX был предназначен в первую очередь для учебных целей, дизайн DLX широко используется в курсах компьютерной архитектуры университетского уровня.

Известны две " мягкие " аппаратные реализации: ASPIDA и VAMP. Проект ASPIDA привел к созданию ядра со множеством приятных особенностей: оно имеет открытый исходный код, поддерживает Wishbone , имеет асинхронный дизайн, поддерживает несколько ISA и проверено ASIC . VAMP — это DLX-вариант, который был математически проверен в рамках проекта Verisoft. Он был определен с помощью PVS , реализован в Verilog и работает на Xilinx FPGA . На нем был построен полный стек от компилятора до ядра и TCP/IP .

История

В архитектуре MIPS Стэнфорда одним из методов, используемых для повышения производительности, было принудительное выполнение всех инструкций за один такт. Это заставляло компиляторы вставлять « no-ops » в случаях, когда инструкция определенно занимала больше одного такта. Таким образом, действия ввода и вывода (например, доступ к памяти) специально заставляли это поведение, что приводило к искусственному раздуванию программы. В целом программы MIPS были вынуждены иметь много бесполезных инструкций NOP, поведение, которое было непреднамеренным последствием. Архитектура DLX не принудительно выполняет один такт, и поэтому невосприимчива к этой проблеме.

В конструкции DLX был использован более современный подход к обработке длинных инструкций: пересылка данных и переупорядочивание инструкций. В этом случае более длинные инструкции «застревают» в своих функциональных блоках, а затем снова вставляются в поток инструкций, когда они могут быть завершены. Внешне такое поведение конструкции выглядит так, как будто выполнение происходило линейно.

Декодирование инструкций

Инструкции DLX можно разбить на три типа: R-тип , I-тип и J-тип . Инструкции R-типа — это чисто регистровые инструкции, в которых три ссылки на регистры содержатся в 32-битном слове. Инструкции I-типа определяют два регистра и используют 16 бит для хранения непосредственного значения. Наконец, инструкции J-типа — это переходы , содержащие 26-битный адрес.

Длина опкодов составляет 6 бит, что в общей сложности дает 64 возможных базовых инструкции. Для выбора одного из 32 регистров необходимо 5 бит.

  • В случае инструкций R-типа это означает, что используется только 21 бит из 32-битного слова, что позволяет использовать младшие 6 бит в качестве «расширенных инструкций».
  • DLX может поддерживать более 64 инструкций, если только эти инструкции работают исключительно на регистрах. Эта особенность полезна для таких вещей, как поддержка FPU .

Трубопровод

DLX, как и дизайн MIPS, основывает свою производительность на использовании конвейера инструкций . В дизайне DLX это довольно простой, "классический" RISC по концепции. Конвейер содержит пять стадий:

IF – Инструкция Выборка Единица/цикл
ИК<-Память(ПК)
НПС<-ПК+4
Операция: Отправка PC и выборка инструкции из памяти в регистр инструкций (IR) ; увеличение PC на 4 для адресации следующей последовательной инструкции. IR используется для хранения следующей инструкции, которая понадобится в последующих тактовых циклах; аналогично регистр NPC используется для хранения следующей последовательной PC.
ID – Инструкция по декодированию блока
Операция: Декодировать инструкцию и получить доступ к файлу регистров для чтения регистров. Этот блок получает инструкцию от IF и извлекает код операции и операнд из этой инструкции. Он также извлекает значения регистров, если это запрашивается операцией.
EX – Исполнительный блок/цикл эффективного адреса
Операция: АЛУ работает с операндами, подготовленными в предыдущем цикле, выполняя одну из четырех функций в зависимости от типа инструкции DLX.
Ссылка на память: инструкция «Регистр–Регистр ALU», инструкция «Регистр–Непосредственная ALU»
Ветвь
MEM – Устройство доступа к памяти
Инструкции DLX, активные в этом блоке, — это загрузки, сохранения и ветвления.
Ссылка на память: доступ к памяти при необходимости. Если инструкция - загрузка, данные возвращаются из памяти и помещаются в регистр LMD (загрузка данных памяти)
Ветвь
WB – блок обратной записи
Обычно называется «единицей хранения» в современной терминологии. Записывает результат в регистровый файл, независимо от того, поступает ли он из системы памяти или из АЛУ.

Смотрите также

Ссылки

  • Процессор DLX
  • DLX-инструкции
  • WinDLX
  • Симулятор DLX (GNU GPL)
  • Симулятор ESCAPE DLX Архивировано 23.06.2015 на Wayback Machine
  • openDLX - симулятор DLX с открытым исходным кодом на Java (GNU GPLv3)
  • Формальная проверка процессора VAMP
  • Асинхронный процессор DLX ASPIDA
  • HERA: Архитектура RISC-образования Хаверфорда
Взято с "https://en.wikipedia.org/w/index.php?title=DLX&oldid=1237465067"