Лекция 4. Модельный многотактовый процессор, виды управляющих автоматов (1158794)
Текст из файла
Пакеты проектированиясверхбольшихинтегральных схемЛекция 4Многотактовый процессорРазные виды управляющих автоматовРассказывает:Подымов Владислав ВасильевичОсень 2016e-mail:valdus@yandex.ruЕще раз однотактовый процессорОперационный автомат:PC+μ4μ+26to32инструкциирегистрыАЛУданныеμμμ16to32Еще раз однотактовый процессорУправляющий “автомат”:always @(*)case(opcode)R_OP: …ADDI: …BNE: ……endcaseЕще раз однотактовый процессорПопробуем посчитать, сколько будет выполняться каждая инструкцияДля определённости пусть в системе будут такие задержки(в условных единицах)запись значений регистров1чтение значение регистров5арифметические операции10работа с памятью20Работу мультиплексоров и блоков расширения констант считаем мгновеннойЕще раз однотактовый процессорПосчитаем реальное время исполнения каждой инструкциии время, которое тратит процессор на выполнение инструкцийR-инструкция, арифметическая I-инструкцияОбновление счетчика команд1Чтение инструкции20Чтение значений регистров5Выполнение арифметической операции10Перезапись регистра1Общее время выполнения инструкции37Еще раз однотактовый процессорПосчитаем реальное время исполнения каждой инструкциии время, которое тратит процессор на выполнение инструкцийУсловное ветвлениеОбновление счетчика команд1Чтение инструкции20Чтение значений регистров5Выполнение арифметических операций10Общее время выполнения инструкции36Еще раз однотактовый процессорПосчитаем реальное время исполнения каждой инструкциии время, которое тратит процессор на выполнение инструкцийЗапись в памятьОбновление счетчика команд1Чтение инструкции20Чтение значений регистров5Выполнение арифметической операции10Запись данных20Общее время выполнения инструкции56Еще раз однотактовый процессорПосчитаем реальное время исполнения каждой инструкциии время, которое тратит процессор на выполнение инструкцийЧтение из памятиОбновление счетчика команд1Чтение инструкции20Чтение значений регистров5Выполнение арифметической операции10Чтение данных20Перезапись регистра1Общее время выполнения инструкции57Еще раз однотактовый процессорПосчитаем реальное время исполнения каждой инструкциии время, которое тратит процессор на выполнение инструкцийБезусловное ветвлениеОбновление счетчика команд1Чтение инструкции20Общее время выполнения инструкции21Еще раз однотактовый процессорПосчитаем реальное время исполнения каждой инструкциии время, которое тратит процессор на выполнение инструкцийВремя одного такта процессораR-инструкция и арифметическая I-инструкция37Условное ветвление36Запись в память56Чтение из памяти57Безусловное ветвление21Время одного такта57Каждая инструкция выполняется столько же,сколько и самая медленная инструкция чтения данных из памятиА как можно ускорить выполнение быстрых инструкций?Многотактовый процессорПричина медленного выполнения быстрых инструкций:из-за тривиальности управляющего автоматаневозможно учесть специфику выполнения каждой инструкции,поэтому задержка при выполнении рассчитывается из худшего случаяЕсли сделать управляющий автомат более сложным и нетривиальным,то можно учитывать специфику текущей инструкции в его состоянияхи оптимизировать время работы согласно этой спецификеПри этом операционный автомат процессора почти не изменитсяНебольшое изменение будет состоять в том,что так как выполнение инструкции теперь будет занимать больше одного такта,становится существенным управляющий сигнал загрузки счетчика командИ как же выглядит управляющий автомат многотактового процессора?Вариантов можно придумать много, и каждый будет по-своему хорошСтадии выполнения инструкции1.
Fetch (F): выполняемая инструкция выбирается из памяти2. Decode (D): определяются значения, которые будут использоваться в АЛУ3. Execute (X): определяется результат выполнения операции АЛУ4. Memory (M): производится работа с памятью данных5. Writeback (W): перезаписывается значение регистраПервая стадия – общая для всех инструкцийСтадии выполнения обязательно идут в таком порядкеНаличие остальных стадий зависит от того, какая инструкция выполняетсяОт наличия стадий выполнения зависит общее время выполнения инструкцииУправляющий автомат в том или ином виде будет учитывать наличие этих стадийпри выполнении текущей инструкцииУправляющий автомат I31244’1’...k1: начинаем стадию F2: стадия F выполнена, имеется текущая инструкция,выбираем следующее состояние в зависимости от типа инструкции3...k: выставляем сигналы согласно выбранному типу инструкций4’: если последняя стадия выполнения инструкции требует записи,то заводим для этой стадии отдельное состояние1’: обновляем счетчик командЧем плох такой автомат?Управляющий автомат I31112410714’1’1...k5Автомат находится в каждом состоянии ровно один такт времениЗначит, в состоянии 1 он будет находиться столько же, сколько и в состоянии 3То есть счётчик команд будет обновляться столько же,сколько будут работать почти все стадии выполнения инструкцииА давайте явно укажем,сколько тактов времени автомат должен находиться в каждом состоянииНапример, в состоянии 3 автомат должен находиться в 10 тактовА сильно ли от этого изменится реализация автомата?Управляющий автомат IoutРассмотрим вот такой простой автомат с двумя состояниямиЕго реализация будет иметь такую структуру:текущее состояниеследующее состояние~out~Попробуем дополнить эту структуру так,чтобы можно было подсчитывать число тактов нахождения в состоянииУправляющий автомат I13outДобавим к автомату счетчик, в котором указано,сколько тактов сверх положенного нужно ещё оставаться в состоянииТекущее состояние изменяется только в том случае, если счетчик обнулилсяЕсли счетчик обнулился, то он инициализируется согласно следующему состояниютекущее состояниеследующее состояниеfсчетчик тактов-1~~outУправляющий автомат I13outсчетчик couфункции переходов и выходаизменение состоянияследующее – только если cou == 0работа со счётчикомпо reset имеем состояние 0,в нём нет добавочных тактовесли есть добавочные такты,то уменьшаем их числосчетчик обнулился:смотрим следующее состояние,записываем его добавочные тактыУправляющий автомат IIЕсть и другой способ написать управляющий автомат для многотактового процессора●Нам известны всевозможные стадии выполнения инструкции (F, D, X, M, W)●Нам известна последовательность стадий для каждой инструкцииМожно управляющий автомат структурировать так:●●в состоянии запускается стадия выполнения инструкциипереходы между состояниями показывают, как изменяютсястадии для текущей инструкцииНапример, для R-инструкций переходы будут выглядеть так:F-RDRXMRWRpcУправляющий автомат IIЕсть и другой способ написать управляющий автомат для многотактового процессораНам известны всевозможные стадии выполнения инструкции (F, D, X, M, W)●Нам известна последовательность стадий для каждой инструкции●Можно управляющий автомат структурировать так:●●в состоянии запускается стадия выполнения инструкциипереходы между состояниями показывают, как изменяютсястадии для текущей инструкцииА для инструкции безусловного перехода дуги автомата будут выглядеть так:F-DXMWJА как в таком автомате выставлять управляющие сигналы?Простой способ, подходящий для модельного многотактового процессора –выставить все сигналы в состоянии “-”pcУправляющий автомат IIIF-DXMWpcБолее “грамотный” способ выставления управляющих сигналов выглядит так:каждый сигнал выставляется точно тогда, когда он нужен,и не упоминается там, где он не нуженНапример, сигнал записи регистра должен быть выставлен в стадии W,убран в следующем состоянии, и его не следует упоминать в остальных состоянияхЕсли придерживаться этого способа, то выходная логика автоматаперестаёт быть комбинационной:состоянием автомата определяется не точное значение сигнала, а его изменениеТакой способ построения автомата приводит к немного другой реализацииУправляющий автомат IIIКомпоненты автомата в этом случае будут выглядеть так:текущее состояниеследующее состояниеизменениесигналоввыходныесигналыфункцияпереходовДля автомата, построенного по такой логике,будем использовать немного другую графическую нотацию:out:1– в этом состоянии сигнал out становится равным 1,а другие выходные сигналы остаются неизменнымиПо умолчанию будем считать, что начальные значения всех выходных сигналов - 0Управляющий автомат IIIПример:out:0~ininout:1Управляющий автомат IIIПример:out:0~ininout:1reg возле outизменение состояниялогика переходоввыходная логикаУправляющий автомат IVЕсли в последнем примере определение следующего состоянияпо значениям в момент перехода в состояние кажется странным и нелогичным,то можно ещё больше перестроить логику автоматаМожно убрать переменную следующего состоянияи определять все следующие значения по переднему фронту clockТогда в автомате не останется никакой комбинационной частиНо так как исчезнет переменная следующего состояния, станет невозможным сказать“при переходе в состояние установим вот такое значение выходного сигнала”С другой стороны, так как все изменения будут происходить одновременно,можно будет использовать текущие значения входных сигналовдля задания значений выходных сигналовБудем использовать такую нотацию задания значений выходных сигналов:in, out:~in– при переходе в следующее состояние по сигналу in == 1изменить значение out на ~in,при этом не изменяя значений других управляющих сигналовУправляющий автомат IVПример:~in, out:0in, out:1Управляющий автомат IVПример:~in, out:0in, out:1вся логика автоматав одном always-блокеУправляющий автомат VМожно придумать и много других комбинаций того●●●●какая часть автомата является комбинационной, а какая - последовательнойв какие моменты для определения следующего состояния используютсявходные сигналыот чего зависят и в какие моменты времени изменяются выходные сигналыкакие дополнительные средства управляют изменениемсостояний и выходных сигналов автоматаМожно устраивать логику автомата так, как больше нравится,лишь бы основные концепции (состояния, входы, выходы)оставались и были достаточно “разумными”И как бы ни устраивался автомат, всегда нужно понимать,как именно этот автомат будет работать, когда синтезируется в реальную схему.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.