DLX

редактировать
DLX
ДизайнерДжон Л. Хеннесси и Дэвид А. Паттерсон
Биты32 -bit
Представлен1990-е годы
Версия1.0
Дизайн RISC
ТипЗагрузка-сохранение
Кодировка Исправлено
Ветвление Регистр условий
Порядок байтов Двусторонний порядок
РасширенияНет, но MDMX M Можно использовать IPS-3D
ОткрытьДа
Регистры
общего назначения 31 (R0 = 0)
Плавающая точка 32 (парный DP для 32-битной версии)

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

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

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

Содержание

  • 1 История
  • 2 Как это работает
  • 3 DLX vs MIPS
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки

История

В исходной архитектуре 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, как и дизайн MIPS, основывает свою производительность на использовании конвейера инструкций. В конструкции DLX это довольно простой, "классический" RISC по концепции. Конвейер содержит пять этапов:

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

См. Также

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-16 09:12:24
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте