WikiDer > DLX - Википедия
Дизайнер | Джон Л. Хеннесси и Дэвид А. Паттерсон |
---|---|
Биты | 32-битный |
Введено | 1990-е годы |
Версия | 1.0 |
Дизайн | RISC |
Тип | Зарегистрироваться-Зарегистрироваться & Загрузить-магазин |
Кодирование | Фиксированный |
Разветвление | Регистр условий |
Порядок байтов | Двунаправленный |
Расширения | Нет, но MDMX & MIPS-3D может быть использован |
Открыть | да |
Регистры | |
Общее назначение | 31 (R0 = 0) |
Плавающая точка | 32 (парный DP для 32-бит) |
В DLX (произносится "Deluxe") - это RISC процессор архитектура разработано Джон Л. Хеннесси и Дэвид А. Паттерсон, главные конструкторы Стэнфордский MIPS и Berkeley RISC дизайны (соответственно), два эталонных примера дизайна RISC (названных в честь дизайна Беркли).
DLX - это, по сути, очищенный (и модернизированный) упрощенный процессор MIPS. DLX имеет простую 32-битную архитектуру загрузки / сохранения, чем-то отличающуюся от современного процессора MIPS. Поскольку DLX был предназначен в первую очередь для учебных целей, дизайн DLX широко используется в Университет-уровневые курсы компьютерной архитектуры.
Известны две реализации: ASPIDA и VAMP. Результатом проекта ASPIDA стало ядро с множеством приятных функций: это открытый исходный код, поддержка Wishbone, имеет асинхронный дизайн, поддерживает несколько Как есть, и является ASIC доказано. VAMP - это вариант DLX, который был математически проверен в рамках проекта Verisoft. Это было указано с ПВС, реализованный в Verilog, и работает на Xilinx FPGA. Полный стек от компилятора до ядра и до TCP / IP был построен на нем.
История
В исходной архитектуре MIPS одним из методов повышения производительности было принудительное выполнение всех инструкций за один такт. Это заставило компиляторы вставить "запретные операции"в случаях, когда инструкция определенно займет больше одного тактового цикла. Таким образом, операции ввода и вывода (например, доступ к памяти) специально вынуждали это поведение, что приводило к искусственному раздутию программы. В целом программы MIPS были вынуждены иметь много расточительных инструкций NOP , поведение, которое было непреднамеренным последствием.Архитектура DLX не требует принудительного выполнения одного тактового цикла и, следовательно, неуязвима для этой проблемы.
В конструкции DLX был использован более современный подход к обработке длинных инструкций: пересылка данных и переупорядочение инструкций. В этом случае более длинные инструкции «останавливаются» в своих функциональных единицах, а затем повторно вставляются в поток инструкций, когда они могут завершиться. Внешне такое поведение дизайна создает впечатление, что выполнение происходит линейно.
Как это устроено
Инструкции DLX можно разделить на три типа: R-тип, Я печатаю и 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 - Единица выборки инструкции / цикл
- ИК <-Mem (ПК)
- NPC <-PC + 4
- Операция: отправьте компьютер и загрузите инструкцию из памяти в Регистр инструкций (IR); увеличьте ПК на 4, чтобы адресовать следующую последовательную инструкцию. IR используется для хранения следующей инструкции, которая потребуется в последующих тактовых циклах; аналогично регистр NPC используется для хранения следующего последовательного ПК.
- ID - блок декодирования инструкций
- Операция: декодируйте инструкцию и обращайтесь к файлу регистров для чтения регистров. Этот модуль получает инструкцию от IF и извлекает код операции и операнд из этой инструкции. Он также извлекает значения регистров, если этого требует операция.
- EX - исполнительная единица / эффективный адресный цикл
- Операция: The ALU работает с операндами, подготовленными в предыдущем цикле, выполняя одну из четырех функций в зависимости от типа инструкции DLX.
- Ссылка на память: инструкция ALU регистр-регистр, инструкция ALU с немедленным регистром
- Ответвляться
- MEM - блок доступа к памяти
- Инструкции DLX, активные в этом модуле, - это загрузки, магазины и ответвления.
- Ссылка на память: при необходимости получить доступ к памяти. Если инструкция загружается, данные возвращаются из памяти и помещаются в регистр LMD (загрузка данных памяти).
- Ответвляться
- WB - блок WriteBack
- Обычно в современной терминологии именуется «магазинной единицей». Запишите результат в регистровый файл, независимо от того, поступает ли он из системы памяти или из ALU.
Смотрите также
- Образовательный язык программирования
- LC-3
- СМЕШИВАНИЕ, MMIX
- MicroBlaze
- MikroSim
- HERA: Образовательная RISC-архитектура Хаверфорда
- OpenRISC
Рекомендации
- Сайлер, Филип М .; Kaeli, Дэвид Р. (1996). Справочник по архитектуре набора команд DLX. Морган Кауфманн. ISBN 1-55860-371-9.
- Паттерсон, Дэвид; Хеннесси, Джон (1996). Компьютерная архитектура: количественный подход (1-е изд.). Морган Кауфманн. ISBN 978-1-55-860329-5.
- Паттерсон, Дэвид; Хеннесси, Джон (1994). Компьютерная организация и дизайн (1-е изд.). Морган Кауфманн. ISBN 978-1-55-860281-6.