Дизайнер | Джон Л. Хеннесси и Дэвид А. Паттерсон |
---|---|
Биты | 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.
В исходной архитектуре MIPS одним из методов повышения производительности было принудительное выполнение всех инструкций за один такт. Это заставляло компиляторы вставлять «no-ops » в случаях, когда инструкция определенно займет больше одного такта. Таким образом, операции ввода и вывода (например, доступ к памяти) специально вызывали такое поведение, что приводило к искусственному раздутию программы. В общем, программы MIPS были вынуждены иметь много расточительных инструкций NOP, что было непреднамеренным последствием. Архитектура DLX не требует выполнения одного тактового цикла и, следовательно, неуязвима для этой проблемы.
В конструкции DLX использовался более современный подход к обработке длинных инструкций: пересылка данных и переупорядочение инструкций. В этом случае более длинные инструкции «останавливаются» в своих функциональных единицах, а затем повторно вставляются в поток команд, когда они могут завершиться. Внешне такое поведение дизайна создает впечатление, что выполнение происходит линейно.
Инструкции DLX можно разделить на три типа: R-тип, I-тип и J-тип. Инструкции R-типа представляют собой чисто регистровые инструкции с тремя ссылками на регистры, содержащимися в 32-битном слове. Инструкции I-типа определяют два регистра и используют 16 битов для хранения непосредственного значения. Наконец, инструкции J-типа представляют собой переходы, содержащие 26-битный адрес.
Коды операций имеют длину 6 бит, всего 64 возможных базовых инструкции. Для выбора одного из 32 регистров необходимо 5 бит.
DLX, как и дизайн MIPS, основывает свою производительность на использовании конвейера инструкций. В конструкции DLX это довольно простой, "классический" RISC по концепции. Конвейер содержит пять этапов: