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