Добавил:
ИВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экз ответы.docx
Скачиваний:
21
Добавлен:
15.01.2024
Размер:
15.08 Mб
Скачать

10.Подход к проектированию многотактного процессора на примере архитектуры risc-V. Сравнение с другими подходами к реализации микроархитектуры.

Многотактная микроархитектура предполагает использование буферных

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

Благодаря выполнению инструкции за несколько тактов, в этой микроархитектуре получилось реализовать принстонскую архитектуру (она же фоннеймановская, то есть данные и программы хранятся в одной памяти) и уменьшить количество сумматоров, за счет выполнения всех вычислительных операций на одном АЛУ. Еще одним из основных отличий от однотактной реализации является устройство управления (Control Unit), которой, в отличии от основного дешифратора (Main Decoder) однотактного процессора, является последовательностным устройством, а не комбинационным. Это значит, что в устройстве управления есть элементы памяти, и он ведет себя как автомат состояний (конечный автомат). Control Unit, в зависимости от выполняемой инструкции формирует последовательность управляющих сигналов, обеспечивающих движение данных по тракту данных от секции к секции, такт за тактом, пока инструкция не будет выполнена.

Устройство управления (УУ) для такого процессора может быть построено одним из двух способов:

  • на жесткой логике (в таком случае, УУ является классическим конечным автоматом. Это наиболее быстрая реализация УУ, однако, его сложнее проектировать и отлаживать, чем второй подход, а после производства и выпуска работу устройства нельзя скорректировать)

  • устройство с микропрограммным управлением (по сути является маленьким программируемым устройством, хранящим последовательность управляющих сигналов для процессора в виде небольших микропрограмм, последовательно считываемых из управляющей памяти и выдаваемых на выходы Y — на схеме микроархитектуры отмечены синим цветом. Каждая инструкция процессора провоцирует запуск определенной микропрограммы из управляющей памяти). Устройства с микропрограммным управлением (УМУ) сами могут быть построены одним из двух способов, отличающиеся способом адресации следующей микроинструкции:

  • УМУ с принудительной адресацией

  • УМУ с естественной адресацией

Сравнение производительности с другими микроархитектурами, реализованными в рамках курса лекций.

11. Подход к проектированию конвейерного процессора на примере архитектуры risc-V. Сравнение с другими подходами к реализации микроархитектуры.

Подход и пару слов:

· Размещение регистров, стадий, между функциональными блоками процессора. Таким образом сокращается критический путь -> можно поднять частоту.

· Следующая инструкция продвигается в конвейере, как только предыдущая освободила соответствующую стадию. Таким образом поднимается пропускная способность всей системы: инструкции завершают свою работу за каждый такт. Чем это отличается от однотактного? Как было сказано, здесь частота выше, потому инструкции хоть и завершаются каждый такт, как в однотактном, но этот самый такт в конвейерном процессоре меньше по времени.

· Латентность, то есть время выполнения, одной инструкции выше, чем, к примеру, в однотактном.

· Инструкции спокойной могут быть друг от друга зависимыми. Как пример, так называемый конфликт по данным RAW (read after write): вторая инструкция просит данные из регистра, а первая, в свою очередь, должна была в него записать, но ещё не успела, поскольку сама ещё не закончила работу. Потому подобные конфликты конвейера необходимо разрешать

Берём за основу однотактный процессор

И просто впихнём в него регистры, стадии. На лекции рассмотрели построение конвейерного процессора на 5 ступенях.

Но возникают некоторые проблемы, как в случае с битами [11:7] декодированной инструкции. Как проявляется проблема? Исходя из рисунка снизу, команда на стадии WB хочет записать данные, единичку, в регистр a0, но запишет в t1, поскольку биты [11:7], приходящие на вход регистра A3, заняты инструкцией add.

Как этого избежать? Задержать эти биты вместе с инструкцией, пропустив через все следующие стадии конвейера.

Далее добавим Main Decoder, сигналы которого также задержим, пропустив через необходимые ступени конвейера, чтобы сигналы от него действовали лишь в нужный момент.

Но существуют так называемые конфликты конвейера: структурные, по данным, по управлению. И для их решения где-то будем пробрасывать сигналы из одной стадии в другую, где-то пускать пузырьки в конвейер и т.д. И управление всем этим будет происходит с помощью Hazard Unit.

Итоговая

Теперь нужно бы подвести итоги в производительности.

(опечатка: вместо «Многотактный” нужно “Конвейерный”)

Сравнение:

Многотактный процессор схож с конвейерным процессором тем, что в него добавляются “кое-какие” регистры. Но общая работа схемы отличается от конвейера:

инструкции не идут одна за другой. Потому нет конфликтов, как, собственно, и в однотактном. Так что отличительная особенность в построении конвейерного процессора от остальных в том, что необходимо обеспечить обнаружение и устранение конфликтов.

Сравнение производительности с другими микроархитектурами, реализованными в рамках курса лекций.