ДЛКС
Дизайнер | Джон Л. Хеннесси и Дэвид А. Паттерсон |
---|---|
Биты | 32-битный |
Представлено | 1994 |
Версия | 1.0 |
Дизайн | РИСК |
Тип | Загрузка-сохранение |
Кодирование | Зафиксированный |
Ветвление | Регистр условий |
Порядок байтов | двусторонний |
Расширения | Нет, но MDMX и MIPS-3D. можно использовать |
Открыть | Да |
Регистры | |
общего назначения | 32 (Р0=0) |
Плавающая точка | 32 (парный DP для 32-битной версии) |
DLX MIPS (произносится как «Deluxe») — это RISC процессора архитектура , разработанная Джоном Л. Хеннесси и Дэвидом А. Паттерсоном , главными разработчиками Стэнфордского и Беркли RISC (соответственно), двух эталонных примеров дизайна RISC (названных по проекту Беркли).
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
- Операция: Отправьте ПК и извлеките инструкцию из памяти в регистр инструкций (IR) ; увеличьте PC на 4 для обращения к следующей последовательной инструкции. IR используется для хранения следующей инструкции, которая понадобится в последующих тактовых циклах; аналогичным образом регистр NPC используется для хранения следующего последовательного ПК.
- ID – блок декодирования инструкций
- Операция: декодируйте инструкцию и получите доступ к файлу регистров для чтения регистров. Этот модуль получает инструкцию от IF и извлекает из этой инструкции код операции и операнд. Он также извлекает значения регистров, если это запрошено операцией.
- EX – Исполнительный блок/цикл эффективного адреса
- Операция: АЛУ оперирует операндами, подготовленными в предыдущем цикле, выполняя одну из четырех функций в зависимости от типа инструкции DLX.
- Ссылка на память: команда «Регистр – регистр ALU», инструкция «Регистр – немедленная операция ALU».
- Ветвь
- MEM – блок доступа к памяти
- Инструкции DLX, активные в этом устройстве, — это загрузки, сохранения и переходы.
- Ссылка на память: доступ к памяти при необходимости. Если инструкция загружена, данные возвращаются из памяти и помещаются в регистр LMD (загрузка данных в память).
- Ветвь
- WB – блок обратной записи
- В современной терминологии обычно называется «магазином». Запишите результат в файл регистров, поступает ли он из системы памяти или из АЛУ.
См. также
[ редактировать ]Ссылки
[ редактировать ]- Сайлер, Филип М.; Каэли, Дэвид Р. (1996). Справочник по архитектуре набора команд DLX . Морган Кауфманн. ISBN 1-55860-371-9 .
- Паттерсон, Дэвид ; Хеннесси, Джон (1996). Компьютерная архитектура: количественный подход (1-е изд.). Морган Кауфманн . ISBN 978-1-55-860329-5 .
- Паттерсон, Дэвид ; Хеннесси, Джон (1994). Компьютерная организация и дизайн (1-е изд.). Морган Кауфманн . ISBN 978-1-55-860281-6 .
Внешние ссылки
[ редактировать ]- Процессор DLX
- Инструкции по DLX
- WinDLX
- Симулятор DLX (GNU GPL)
- Симулятор ESCAPE DLX. Архивировано 23 июня 2015 г. на Wayback Machine.
- openDLX — DLX-симулятор с открытым исходным кодом на Java (GNU GPLv3)
- Формальная проверка процессора VAMP
- Асинхронный процессор ASPIDA DLX
- HERA: Образовательная RISC-архитектура Хаверфорда