Галерея диаграмм связей Глава 5 Центральный процессор
Это интеллектуальная карта главы 5 «Центральный процессор», в которой обобщаются функции и базовая структура ЦП, процесс выполнения инструкций, функции и базовая структура пути данных, а также другие элементы знаний.
Отредактировано в 2024-01-16 15:53:05Глава 5 Центральный процессор
Процессор
Функции ЦП и базовая структура
Функции процессора
состав
оператор
Функция оператора – обработка данных.
контроллер
Функция контроллера заключается в координации и управлении последовательностью инструкций для каждого компонента компьютера для выполнения программы, включая получение инструкций, анализ инструкций и выполнение инструкций.
Конкретные функции
командное управление
Операционный контроль
Контроль времени
обработка данных
Обработка прерываний
Базовая структура ЦП
оператор
арифметико-логическое устройство
блокнот
регистр накопления
Набор регистров общего назначения
регистр слов состояния программы
оборотень
прилавок
контроллер
счетчик команд
регистр инструкций
декодер инструкций
регистр адреса памяти
регистр данных памяти
система синхронизации
генератор сигналов микрооперации
Процесс выполнения инструкции
цикл инструкций
Есть операции доступа к ЦП
Цикл выборки предназначен для получения инструкций.
Цикл косвенного адреса предназначен для получения эффективного адреса (операнда).
Цикл выполнения заключается в получении операнда
Цикл прерывания предназначен для сохранения точек останова программы.
поток данных цикла команд
цикл выборки
ПК → MAR → Адресная шина → Основная память CU выдает команду чтения → шина управления → основная память Основная память → шина данных → MDR → IR (инструкции по хранению) CU отправляет управляющий сигнал → содержимое ПК увеличивается на 1
Задача цикла выборки — извлечь код инструкции из основной памяти на основе содержимого ПК и сохранить его в IR.
цикл косвенного адреса
Ad(IR)(или MDR) → MAR → Адресная шина → Основная память CU выдает команду чтения → шина управления → основная память Основная память → шина данных → MDR (эффективный адрес хранилища)
Задача цикла косвенного адреса — получить эффективный адрес операнда.
цикл выполнения
Задача цикла выполнения — принять операнд и сгенерировать результат выполнения через операцию АЛУ в соответствии с кодом операции командного слова в ИР.
цикл прерывания
CU управляет уменьшением SP на 1, SP → MAR → адресная шина → основная память. CU выдает команду записи → шина управления → основная память ПК → Видеорегистратор → Шина данных → Основная память (точки останова программы сохраняются в основной памяти) CU (адрес входа в программу обслуживания прерываний) → ПК
CU отправляет специальный адрес памяти, используемый для сохранения точки останова программы (например, содержимое указателя стека), в MAR и отправляет его на адресную шину. Затем CU отправляет команду записи в память и отправляет содержимое. ПК (точка останова программы) от MAR к видеорегистратору и, наконец, точка останова программы сохраняется в памяти через шину данных. Кроме того, CU также необходимо отправить адрес заполнения программы обслуживания прерываний на ПК, чтобы подготовиться к циклу выборки команд следующего цикла команд.
Задача цикла прерывания — обработка запросов на прерывание.
Трехпроводной (шина данных, адресная шина, шина управления) ПК
План выполнения инструкций
одиночный командный цикл
несколько циклов команд
Трубопроводное решение
Функции пути данных и базовая структура
Функции пути к данным
Функция тракта данных заключается в реализации обмена данными между арифметическими блоками и регистрами внутри ЦП.
Базовая структура пути данных
Базовая структура
Путь данных структуры шины
Режим внутренней одиночной шины ЦП
Одновременно отправлять данные может только один компонент, иначе возникнут конфликты сигналов. Решение следующее: все выходы компонентов (и ведущие к шине или другим направлениям, но с конфликтами сигналов) должны быть подключены к шине через вентили с тремя состояниями, за исключением компонентов с собственной функцией выхода с тремя состояниями.
Поскольку выход компонента комбинационной логики зависит только от его входа, входные и выходные клеммы компонента комбинационной логики не могут быть подключены к одной и той же шине, иначе возникнут конфликты сигналов. Первое решение — добавить регистр (или защелку), чтобы только один из всех входных и выходных терминалов был напрямую подключен к одной и той же шине. Второе решение — увеличить количество шин, чтобы каждый входной и выходной терминал был подключен к отдельной шине.
A, B и F не могут быть подключены к одной и той же шине, поэтому требуются 2 дополнительных регистра (или защелки), или используется структура с тремя шинами, или используется структура с двумя шинами и добавляется регистр.
Противоречия, решаемые добавлением регистров и добавлением вентилей с тремя состояниями, различны. Ворота с тремя состояниями сосредоточены на разрешении конфликтов на шине, а регистры — на разрешении конфликтов на компонентах комбинационной логики.
Внутренний многошинный режим ЦП
Подход к выделенному пути данных
Поскольку один и тот же входной разъем подключен к нескольким выходным разъемам компонента, для одновременного приема данных только от одного выходного разъема компонента каждый входной разъем компонента должен быть подключен к другому выходному разъему компонента через мультиплексор. Входной разъем подключен только к одному компонентному выходному разъему, за исключением случаев, когда подключен компонентный выход.
Поскольку конфликтов вывода нет, георадары могут настроить два порта чтения для повышения производительности передачи данных.
Передача данных между регистрами
(ПК)→MAR PCout и MARin действительны, содержимое ПК→MAR
Передача данных между основной памятью и процессором
(ПК)→MAR PCout и MARin действительны, текущий адрес команды→MAR 1→R CU отправляет команду чтения MEM(MAR)→MDR MDRin действителен (MDR)→IR MDRout и IRin действительны, текущая команда→IR
Выполнять арифметические или логические операции
(MDR)→MAR MDRout и MARin действительны, эффективный адрес операнда→MAR 1→R CU отправляет команду чтения MEM(MAR)→Операнд MDR из памяти→MDR (MDR)→Y MDRout и Yin действительны, операнд Y (ACC) (Y)→Z ACCout и ALUin действительны, CU отправляет команду добавления в ALU, результат→Z (Z)→ACC Zout и ACCin действительны, результат→ACC
Функциональным компонентом, необходимым для анализа фазы команды, является декодер команд, но он не принадлежит к пути данных.
Путь данных структуры с одной шиной
Из-за единой структуры шины арифметическое устройство ALU на рисунке использует два временных регистра X и Z. где X используется для подготовки операнда A ALU. Другой операнд B АЛУ поступает из внутренней шины. Z используется для временного хранения результатов операции.
Регистр PSW — это регистр состояния программы, используемый для хранения флагов состояния работы АЛУ, а временные флаги состояния будут отправляться в контроллер операций.
Регистры PC, AR, DR, IR, X, Z и регистры файла регистров напрямую подключены к внутренней шине. Кроме того, регистры AR и DR также подключены к памяти MEM через внешнюю шину.
В шинной структуре количество передач данных, которые могут происходить одновременно, зависит от количества шин. Для одной структуры шины на шине может одновременно находиться несколько модулей, получающих данные, но только один модуль может отправлять данные на шину в определенное время, в противном случае возникнут конфликты данных.
Поэтому компоненты, подключенные к шине, требуют управления выходом для предотвращения конфликтов данных на шине. По этой причине все функциональные компоненты, которые выводят данные на внутреннюю шину на рисунке, используют вентили с тремя состояниями для управления выходом (обозначены треугольными полыми стрелками на рисунке).
Сигналы управления и их функции
Типичные инструкции MIPS32
Процесс выполнения инструкции lw
Функция инструкции lw — чтение 32-битного слова памяти из основной памяти. Код ассемблера — lw rt, imm (rs).
Адрес доступа к памяти — это регистр, соответствующий полю rs, плюс 16-битный немедленный imm со знаком. Это типичная индексированная адресация. lw извлекает 4 байта из соответствующего блока основной памяти и отправляет их в регистр rt для хранения.
Поскольку разрядность регистра составляет 32 бита, знак 16-битного немедленного imm необходимо расширить до 32 бит, прежде чем его можно будет отправить в АЛУ для вычисления адреса доступа к памяти.
Процесс выполнения инструкции lw и сигналы управления
Операция выборки цикла T3 такта M[AR] → DR также может быть помещена в такт T2, и эти две функции эквивалентны. Каждая M[AR] → DR может сопровождаться транзакцией передачи по шине внутри кристалла для повышения скорости выполнения инструкций.
Последовательность выполнения команды sw
Функция инструкции sw — запись 32-битного слова памяти в основную память. Ассемблерный код — sw rt,imm(rs).
процесс работы команды SW и сигналы управления
Последовательность выполнения инструкции beq
Инструкция beq — это инструкция условного перехода, а ассемблерный код — beq rs,rt,imm. Функция инструкции beq — сравнить значения регистров rs и rt и выполнить переход ветки, если они равны.
Значение imm указывает целевой адрес ветвления относительно следующей инструкции, который представляет собой количество инструкций ПК 4. Следовательно, при вычислении целевого адреса ветвления значение PC (обновленное до ПК 4 на этапе выборки команд) и знак imm должен быть расширен до 32 бит, а затем влево. Добавляются значения, сдвинутые на два бита. Целью сдвига двух битов влево здесь является вычисление смещения байта.
Процесс работы инструкции beq и управляющие сигналы
компоненты пути данных
Операционные компоненты (комбинационные логические схемы)
блок обработки данных
Блок обработки данных состоит из комбинационно-логических схем, выход которых связан только с токовым входом и отвечает за обработку данных, таких как АЛУ, блок расширения знака, декодер и т. д.
Компоненты состояния (последовательные логические схемы)
государственная единица хранения
Единица хранения состояния (единица состояния) относится к единице с функцией хранения, такой как память и регистр.
Типичный путь данных однотактного процессора
Однотактный процессор MIPS — это процессор MIPS, в котором все инструкции выполняются за один такт.
Хотя время выполнения разных инструкций может различаться, в зависимости от принципа ствола такт однотактного процессора определяется командой, которая выполняется медленнее всего.
Поскольку выборка и выполнение инструкций могут быть завершены только в течение одного такта, любые ресурсы в пути данных во время выполнения инструкций не могут быть повторно использованы. Это должны быть выделенные пути данных и ресурсы, которые необходимо использовать несколько раз (например, сумматоры). нужно установить несколько.
Как операции выборки инструкций, так и операции выборки операндов требуют доступа к памяти, поэтому инструкции и данные хранятся в памяти инструкций и памяти данных соответственно, чтобы избежать конфликтов ресурсов.
Поскольку однотактный процессор MIPS должен выполнить команду за один такт, регистр команд IR не устанавливается, но слово инструкции, полученное из памяти команд, анализируется напрямую. В противном случае для простой загрузки инструкции в IR потребуется один такт. цикл.
Путь к данным арифметической инструкции типа R
Инструкции арифметических и логических операций в MIPS представляют собой инструкции R-типа. Ниже в качестве примера рассматривается инструкция сложения. add rd,rs,rt #RTL описание функции: R[rs] R[rt] → R[rd]
Функциональные компоненты, участвующие в выполнении инструкций, в основном включают в себя файл регистров и АЛУ. Требуется только отправить поля исходного регистра rs и rt в командном слове, считанном из памяти команд, на два терминала номера регистра чтения R1# и R2# файла регистров соответственно, и отправить поле регистра назначения rd в регистр записи. номерного терминала W#, значения двух исходных регистров, считанные из файла регистров, выводятся в арифметический блок через порты R1 и R2, функциональное поле в командном слове определяет AluOp для управления; ALU для выполнения соответствующей операции (здесь следует выбрать сложение). Результат отправляется в порт записи данных WD файла регистра. При наступлении нарастающего фронта тактового сигнала результат операции будет записан в регистр назначения rd.
Путь к данным инструкции доступа к памяти типа I
Инструкции доступа к памяти MIPS относятся к инструкциям типа I, включая выборку и сохранение данных, на примере инструкций доступа к словам. lw rt,imm16(rs) #RTL описание функции:M[R[rs] SignExt(imm16)] → R[rt] sw rt,imm16(rs) #RTL описание функции: R[rt] → M[R[rs] SignExt(imm16)]
Поле rs в командном слове по-прежнему отправляется в конец R1# файла регистров; поле регистра назначения rt отправляется в конец номера регистра записи W#, кроме того, 16-битный непосредственный номер imm16; должен быть преобразован в 32 бита через блок расширения знака. Затем он отправляется в АЛУ и добавляется к значению индексного регистра rs, чтобы сформировать окончательный адрес доступа. Затем данные в памяти данных считываются и отправляются в память. зарегистрировать файл, записать данные в порт WD.
Отправьте поля rs и rt в командном слове на концы R1# и R2# файла регистров соответственно, преобразуйте 16-битные непосредственные данные в 32 бита через модуль расширения знака, отправьте их в ALU и добавьте их в значение индексного регистра rs. Сформируйте окончательный адрес основной памяти, отправьте значение регистра rt, считанное из файла регистров, в порт записи данных в память данных WD.
Функции контроллера и принцип работы
Структура и функции контроллера
Основная функция
Получить команду из основной памяти и указать местоположение следующей инструкции в основной памяти.
Раскодируйте или протестируйте инструкции и сгенерируйте соответствующие сигналы управления работой для инициирования заданных действий.
Направляет и контролирует направление потока данных между ЦП, основной памятью, устройствами ввода и вывода.
проводной контроллер
Схема проводного блока управления
Источник входного сигнала CU
Информация инструкций генерируется посредством декодирования декодера команд.
Сигналы периода машины и сигналы биения, генерируемые системами синхронизации.
Информацией обратной связи от исполнительного устройства является флаг.
Сигналы управления от системной шины (шина управления), такие как запросы прерываний и запросы DMA.
Система синхронизации и микрооперации для проводных контроллеров
система синхронизации
тактовый цикл
Ширина каждого такта соответствует ровно одному тактовому циклу.
машинный цикл
Машинный цикл можно рассматривать как базовое время выполнения всех инструкций.
Кратчайшее время чтения командного слова из памяти считается машинным циклом.
Несколько микроопераций могут быть выполнены за один машинный цикл. Каждая микрооперация требует определенного количества времени. Тактовый сигнал может использоваться для управления генерацией каждой команды микрооперации.
цикл инструкций
Время, необходимое ЦП для выборки и выполнения инструкции из основной памяти, называется циклом инструкции.
Командные циклы часто представляются несколькими машинными циклами, а один машинный цикл содержит несколько тактовых циклов (также называемых тактами или Т-циклами, которые являются основной единицей работы ЦП).
Количество машинных циклов в каждом командном цикле может различаться, как и количество тактов в каждом машинном цикле.
Атомарные операции относятся к операциям, которые не могут быть уточнены. Обычно атомарные операции внутри ЦП называются микрооперациями (μOP), а сигналы управления компонентами, реализующие μOP, называются сигналами управления микрооперациями, также называемыми командами микроопераций (). µOPCmd). Время завершения µOP называется тактом, и несколько µOP могут управляться по времени с помощью различных сигналов тактов для формирования последовательности µOP.
Анализ команд микроопераций
Команды микроопераций в цикле выборки
Команды микроопераций для циклов косвенной адресации
Выполнение периодических команд микроопераций
инструкции доступа не к памяти
инструкции доступа к памяти
инструкция по переводу
Метод управления процессором
Синхронный метод управления
Можно разделить на следующие виды
командный цикл фиксированной длины
Количество машинных циклов фиксировано, но количество ударов не фиксировано.
Комбинированное центральное и местное управление
Временная зависимость синхронного управления относительно проста, а конструкция контроллера удобна, но существует проблема низкой эффективности ЦП при использовании медленных компонентов.
Асинхронный метод управления
Синхронизация каждого функционального компонента и операции реализуется с использованием механизма ответа. После того, как компонент управления отправляет сигнал управления операцией функциональному компоненту, он должен дождаться, пока функциональный компонент не отправит ответный сигнал, прежде чем начинать следующую операцию.
Преимущество состоит в том, что каждый компонент может работать в соответствии с его фактическим требуемым временем, и нет процесса ожидания быстрого компонента, что повышает скорость работы системы, но структура асинхронного метода управления более сложна.
метод совместного контроля
Большинство последовательностей управления операциями управляются синхронно с использованием машинных циклов и потенциалов биений. Для небольшого количества операций, которые сложно определить в определенный момент времени, можно использовать асинхронное управление.
Этапы проектирования проводного блока управления
микропрограммный контроллер
Основные понятия микропрограммного управления
Идея конструкции состоит в том, чтобы записать каждую машинную инструкцию в микропрограмму. Каждая микропрограмма содержит несколько микроинструкций, и каждая микроинструкция соответствует одной или нескольким командам микрооперации.
основная терминология
Микрокоманды и микрооперации
Машинную инструкцию можно разложить на последовательность микроопераций. Эти микрооперации являются самыми основными и несокращаемыми операциями в компьютере.
Различные команды управления, выдаваемые компонентом управления исполнительному компоненту, называются микрокомандами и представляют собой наименьшие единицы, составляющие последовательность управления.
Микрокоманды и микрооперации имеют однозначное соответствие. Микрокоманды — это сигналы управления микрооперациями, а микрооперации — это процессы выполнения микрокоманд.
Микроинструкции и микроциклы
микроинструкции
Поля управления работой
поле управления последовательностью
Микроцикл — это время, необходимое для выполнения микроинструкции, обычно один такт.
Микроинструкции управляют выполнением соответствующего набора микроопераций по реализации части функций инструкции.
Основная память и управляющая память
Основная память используется для хранения программ и данных и реализуется вне ЦП с использованием ОЗУ.
Управляющая память (КУ) служит для хранения микропрограмм, которая реализуется внутри ЦП с помощью ПЗУ.
Программы и микропрограммы
Программа — это упорядоченный набор инструкций.
Функция инструкции реализуется микропрограммой.
Микропрограмма эквивалентна последовательности μOPCmd, микроинструкция эквивалентна всем μOPCmd в одном шаге последовательности μOPCmd, а микрокоманда эквивалентна μOPCmd.
Каждая микропрограмма состоит из нескольких микроинструкций.
Каждая микроинструкция соответствует набору µOPCmd.
Микрокоманды указывают на сигналы управления, посылаемые компонентами, соответствующие µOPCmd один к одному.
Состав микропрограммного контроллера и рабочий процесс
Основные компоненты микропрограммного контроллера
контрольная память
Сохраните микропрограмму, соответствующую каждой инструкции.
регистр микрокоманд
Он используется для хранения микроинструкций, полученных из CM. Его количество бит равно длине слова микрокоманды.
регистр микроадресов
Получите микроадрес, посланный от компонента формирования микроадреса, чтобы подготовиться к чтению микроинструкций в CM.
Рабочий процесс микропрограммного контроллера
Обратите внимание, что нижнее поле адреса последней микрокоманды микропрограммы обычно указывает на адрес входа микропрограммы выборки команд, чтобы гарантировать, что стадия выборки команд может быть введена снова после выполнения инструкции.
Микропрограммы и машинные инструкции
Количество микропрограмм должно равняться количеству машинных инструкций плюс количеству общедоступных микропрограмм, соответствующих выборке команд, косвенной адресации и циклам прерываний.
Как кодируются микроинструкции
Метод прямого кодирования (прямого управления)
Каждый из них представляет собой микрокоманду.
Метод прямого кодирования поля
Группируйте взаимоисключающие микрокоманды в одном поле и группируйте совместимые микрокоманды в разных полях. Следовательно, среди микрокоманд, определенных каждым подполем, одновременно существует не более одной допустимой микрокоманды.
Каждое поле кодируется независимо, каждый код представляет собой микрокоманду, а значение каждого кода поля определяется отдельно.
Микрокоманды должны выдаваться после прохождения схемы декодирования, поэтому это медленнее, чем метод прямого кодирования.
Наихудшим сценарием прямого кодирования полей является метод прямого кодирования.
Метод косвенного кодирования поля
Определенные микрокоманды в одном поле должны интерпретироваться определенными микрокомандами в другом поле.
Среди трех методов кодирования метод прямого кодирования имеет самое длинное поле управления операцией и самое простое формирование сигнала управления µOP. Метод косвенного кодирования поля имеет самое короткое поле управления операцией и самое сложное формирование сигнала управления µOP. компромисс между двумя.
Метод формирования адреса микрокоманды
Напрямую указывается нижним адресным полем микрокоманды.
Коды операций формируются на основе машинных инструкций.
Формат микроинструкции
горизонтальные микрокоманды
Горизонтальная микроинструкция определяет и выполняет несколько основных параллельных операций.
вертикальные микрокоманды
Вертикальная микроинструкция может определять и выполнять только одну базовую операцию.
гибридные микроинструкции
Этапы проектирования микропрограммного блока управления
Перечислите все последовательности μOPCmd
Проектирование формата микроинструкции
Скомпилировать микропрограмму
Схемы, связанные с проектированием
Динамическое микропрограммирование и нанопрограммирование
Если микропрограмма может быть изменена в соответствии с требованиями пользователя, машина имеет возможности динамического микропрограммирования.
Если аппаратное обеспечение не управляется напрямую микропрограммами, а интерпретируется нанопрограммами, хранящимися в управляющей памяти второго уровня, эта управляющая память второго уровня называется нанопамятью, и аппаратное обеспечение напрямую управляется фемтоинструкциями.
Особенности аппаратных и программируемых контроллеров
Механизм исключений и прерываний
Основные понятия об исключениях и прерываниях
Неожиданные события, генерируемые процессором внутри, называются исключениями.
Запрос на прерывание, выданный ЦП устройством, внешним по отношению к ЦП, называется прерыванием.
Классификация исключений и прерываний
Аномальная классификация
Вина
Ловушка
Ловушки обычно обнаруживаются в конце выполнения инструкции, и как только ловушка обнаружена, обработка исключений происходит немедленно.
Инструкции системного вызова, инструкции условной самоловушки (такие как teq, teqi, tme, tnei и т. д. в MIPS) — все это инструкции ловушки.
В режиме одношаговой отладки каждая обычная инструкция может использоваться в качестве инструкции-ловушки для генерации исключения-ловушки. Исключение-ловушка инициируется выполнением инструкции-ловушки. Как и при вызове функции, при их выполнении нет точки останова. инструкции вызовут безусловный или условный вызов программы ядра операционной системы и ее выполнение. После завершения выполнения она возвращается к следующей инструкции инструкции самоперехвата для выполнения. (Если инструкция ловушки является инструкцией ветвления, она не возвращается к следующей инструкции для выполнения, а возвращается к целевой инструкции ветвления для выполнения.)
Прервать
Случайный аппаратный сбой, который не позволяет процессору продолжать работу, не имеет ничего общего с конкретными инструкциями.
Обнаружение внутренних аномалий реализуется внутренней логикой ЦП. Нет необходимости уведомлять ЦП через какой-либо внешний сигнал.
Классификация прерываний
Маскируемое прерывание
Когда прерывания отключены, маскируемые прерывания не могут получить ответ от ЦП.
немаскируемое прерывание
На немаскируемые прерывания также необходимо реагировать в режиме отключения прерывания.
Процесс реагирования на исключения и прерывания
Отключить прерывания
Сохранение точек останова и состояния программы
Определите исключения и прерывания и перейдите к соответствующим обработчикам.
конвейер инструкций
Основные понятия конвейера инструкций
Улучшение параллелизма процессоров с двух сторон
временной параллелизм
Технология сборочной линии
пространственный параллелизм
суперскалярный процессор
Определение конвейера команд
Процесс выполнения инструкции
получить (ЕСЛИ)
Получение инструкций из памяти инструкций или кэша
Регистр декодирования/чтения (D)
Контроллер операций декодирует инструкцию и извлекает операнды из файла регистров.
Адрес выполнения/расчета (EX)
Доступ к памяти (MEM)
Чтение и запись памяти
Напишите ответ (WB)
Записать результаты выполнения инструкции обратно в файл регистра.
Принцип проектирования конвейера заключается в том, что количество сегментов конвейера команд зависит от количества функциональных сегментов, используемых наиболее сложными инструкциями.
Как выразить конвейер
Базовая реализация конвейера
Введение конвейерных регистров позволяет распараллеливать инструкции в каждом сегменте во времени.
Путь к данным конвейера
Добавьте длинный компонент регистра конвейера в положение пунктирной линии на рисунке.
Обратите внимание, что за сегментом WB нет конвейерных регистров, но данные в этом сегменте в конечном итоге записываются обратно в файл регистров. Программный счетчик PC также можно рассматривать как конвейерный регистр, предоставляющий данные для выборки инструкций сегмента IF.
Регистровый файл в сегменте ID является относительно особым функциональным компонентом. Он отвечает за чтение операндов регистров в сегменте ID. Операция чтения относится к комбинационной логике. В то же время файл регистров сегмента ID также отвечает за операцию обратной записи результатов выполнения инструкций сегмента WB. Операция записи требует взаимодействия с часами и является последовательной логикой.
Входной источник порта W# регистра записи файла регистра выбирается мультиплексором управления сигналом RegDst в соответствии с командным словом сегмента ID, в то время как данные записи WD поступают из сегмента WB, то есть адреса записи и записи; данные принадлежат разным инструкциям, что может привести к путанице данных.
Сначала отрегулируйте выходную позицию номера регистра записи WriteReg#, выдаваемого мультиплексором сегмента ID. Он больше не отправляется в конец W# файла регистров, а напрямую отправляется в регистр конвейера ID/EX для фиксации, а затем. сегмент за сегментом передается в сегмент WB; наконец, регистр конвейера MEM/WB сегмента WB возвращает его в порт регистра записи W# файла регистра. Обратите внимание на рисунке, что положение мультиплексора для сегмента ID было немного изменено.
Информация данных, передаваемая разными защелками регистров конвейера, не одинакова.
Регистр конвейера IF/ID должен фиксировать командное слово, полученное из памяти команд, и значение PC 4.
Регистру конвейера ID/EX необходимо зафиксировать два операнда RS и RT, вынесенные из файла регистров (значения регистров, соответствующие полям rs и rt в командном слове), а также номер регистра записи WriteReg#, как а также непосредственное расширенное значение, PC 4 и другие операнды, которые можно использовать позже.
Регистры конвейера EX/MEM должны фиксировать результаты операций ALU, данные для записи в память данных WriteData, номер регистра записи WriteReg# и другие данные.
Регистр конвейера MEM/WB должен фиксировать результаты операций ALU, данные, считанные из памяти данных, номер регистра записи WriteReg# и другие данные.
Сигналы управления трубопроводом
Классификация сигналов управления
Процесс исполнения конвейера (на примере команды записи из памяти данных в регистр)
получить (ЕСЛИ)
Хотя инструкция lw не будет использовать PC 4 в последующих функциональных разделах, PC 4 все равно будет передан в регистр конвейера IF/ID для использования другими инструкциями (например, beq).
Когда поступит тактовый сигнал, командное слово будет зафиксировано в регистре конвейера IF/ID, а значение PC обновится до значения PC 4.
Регистр декодирования/чтения (ID)
В сегменте ID контроллер операций генерирует сигналы управления работой, необходимые для последующих сегментов, на основе командных слов в регистре конвейера IF/ID, и передает их обратно.
Кроме того, сегмент ID также будет считывать значения RS и RT регистров rs и rt в файле регистров в соответствии с полями rs и rt в командном слове.
Модуль расширения знака расширяет 16-битный литерал в командном слове до 32 бит.
Мультиплексор генерирует возможный номер регистра записи инструкции WriteReg# на основе командного слова (некоторые инструкции не требуют регистров записи).
Эти 4 данных будут переданы в регистр конвейера ID/EX вместе с адресом последовательной команды PC 4.
Адрес выполнения/расчета (EX)
Для инструкции lw сегмент EX в основном используется для вычисления адреса доступа к памяти. Адрес доступа к памяти, полученный путем сложения значения RS в регистре конвейера ID/EX, и немедленное значение, расширенное знаком, отправляется в конвейер EX/MEM. регистр.
Сегменту EX также необходимо вычислить целевой адрес ветвления и сгенерировать сигнал перехода ветвления BranchTaken.
Значение RT в регистре конвейера ID/EX будет использоваться в качестве данных записи в сегменте MEM, поэтому значение RT будет отправлено в регистр конвейера EX/MEM в качестве данных записи WriteData.
Номер регистра записи WriteReg# в регистре конвейера ID/EX также будет напрямую передан в регистр конвейера EX/MEM.
Доступ к памяти (MEM) (чтение или запись)
В основном на основе результатов работы АЛУ, зафиксированных в регистре конвейера EX/MEM - адрес доступа к памяти, данные записи и сигнал чтения и записи памяти MemWrite, память считывается или записывается.
Результаты операции ALU, WriteReg#, и данные, считанные из памяти данных в регистре конвейера EX/MEM, будут отправлены на входной конец регистра конвейера MEM/WB.
Напишите ответ (WB)
Сегмент WB выбирает результат операции ALU или данные доступа к памяти из регистра конвейера MEM/WB и записывает их обратно в назначенный регистр WriteReg# файла регистров.
Каждая функциональная секция в конвейере не различает функцию команды. Вся информация о данных и сигналы управления операциями выводятся из регистра конвейера в начале секции, поэтому любые данные и сигналы управления операцией могут использоваться последующими функциональными секциями. необходимо передать назад.
Приключения и обработка конвейера
структурное приключение
Конфликты, вызванные использованием нескольких инструкций в одном и том же такте, называются структурными конфликтами.
Вычисление ПК 4, вычисление целевого адреса ветки и арифметические операции требуют использования арифметических единиц.
Как доступ к инструкциям, так и доступ к данным требуют использования памяти.
Существуют также структурные конфликты между операциями регистра чтения сегмента ID и регистра записи сегмента WB. Однако, поскольку логика чтения и записи файла регистра MIPS является полностью независимой логикой, адреса чтения и записи, а также данные поступают через разные порты. , а логика чтения и записи может работать одновременно. Поэтому этого структурного конфликта не существует.
Решение
Используйте независимую память инструкций и память данных.
Блокирует программный счетчик PC, вызывая паузу сегмента IF на один такт. При поступлении следующего тактового сигнала регистр конвейера IF/ID синхронно очищается. Ввод сегмента ID не является операцией (инструкция MIPS со всеми нулями). эквивалентно неактивному состоянию). Подождите, пока инструкция загрузки не получит доступ к. После завершения операции сохранения сегмент IF перезапускается.
приключение с данными
Текущая инструкция должна использовать результат операции предыдущей инструкции, но этот результат еще не сгенерирован или не доставлен в указанное место, что приведет к тому, что текущая инструкция не сможет продолжить выполнение. Это называется данными. конфликт.
Возможные конфликты данных между двумя инструкциями следующие:
Конфликт записи перед чтением (RAW)
Если исходный операнд инструкции I2 является операндом назначения инструкции I1, этот конфликт данных называется конфликтом записи перед чтением.
Когда инструкции выполняются конвейерным способом, поскольку инструкция I2 использует результат инструкции I1, если инструкция I2 считывает старое значение регистра в сегменте идентификатора до того, как инструкция I1 записывает результат в регистр, это вызовет ошибку чтения данных. .
Конфликт чтения перед записью (WAR)
Если операнд назначения инструкции I2 является исходным операндом инструкции I1, этот конфликт данных называется конфликтом чтения перед записью.
Эта зависимость данных не оказывает никакого влияния на выполнение инструкций.
Конфликт записи после записи (WAW)
Если операнды назначения инструкций I2 и I1 одинаковы, этот конфликт данных называется конфликтом записи после записи.
Когда инструкции выполняются конвейерным способом, этот конфликт записи после записи не влияет на выполнение инструкций.
Решение
Аппаратная остановка и программная вставка инструкций «NOP»
Зарегистрируйте обработку приключений в формате RAW
Технология обхода данных
Если есть корреляция данных, операнды регистров RS и RT сегмента EX являются неверными данными. Правильные данные должны поступать из операндов назначения инструкций сегментов MEM и WB, и эти инструкции завершили операцию через сегмент EX.
За исключением инструкций доступа к памяти класса загрузки, операнды-адресаты фактически хранятся в регистрах конвейеров EX/MEM и MEM/WB. Правильные операнды могут быть напрямую перенаправлены (перенаправление) из своих местоположений в соответствующие места в сегменте EX (также). называется «Обход»).
Нет необходимости вставлять пузырьки, что может решить большинство проблем, связанных с данными, избежать снижения производительности конвейера, вызванного вставкой пузырьков, и значительно оптимизировать производительность конвейера.
Оптимизация компиляции инструкций и настройка порядка инструкций
Возьмите под свой контроль приключение
Когда конвейер встречает команду ветвления или другие инструкции, которые изменяют значение PC, соседние инструкции, загруженные в конвейер после инструкции ветвления, могут не перейти на стадию выполнения из-за переходов ветвления. Этот конфликт называется конфликтом управления, также известным как конфликт управления. ветвь конфликта.
Решение
Выполняйте прогнозирование ветвей инструкций передачи и генерируйте целевые адреса передачи как можно раньше.
Предварительная выборка целевых инструкций как в успешных, так и в неудачных направлениях потока управления.
Ускорить и ускорить формирование кода состояния.
Повысьте точность угадывания направления передачи.
Показатели работы трубопровода
Пропускная способность трубопровода
Ускорение конвейера
Передовые трубопроводные технологии
Суперскалярная конвейерная технология
ИПЦ<1
В каждом такте одновременно могут выполняться несколько независимых инструкций, то есть две или более инструкций компилируются и выполняются параллельно.
Процессор должен быть оснащен множеством функциональных компонентов и схем декодирования команд, а также несколькими регистровыми портами и шинами, чтобы несколько операций могли выполняться одновременно.
Супертрубопроводная технология
Чем больше функциональных сегментов конвейера разделено, тем короче тактовый цикл и выше скорость обработки команд. Таким образом, технология суперконвейера улучшает производительность конвейера за счет увеличения основной частоты конвейера.
В исходном тактовом цикле функциональный компонент используется три раза, в результате чего конвейер работает на частоте, в три раза превышающей исходную тактовую частоту.
ИПЦ=1
Технология очень длинных командных слов
Используя архитектуру, в которой несколько инструкций обрабатываются параллельно в нескольких процессорах, можно выполнить несколько инструкций за один такт.
Основные понятия мультипроцессоров
Основные понятия SISD, SIMD и MIMD
Архитектура с одним потоком команд и одним потоком данных (SISD)
Архитектура одной инструкции и нескольких данных (SIMD)
Архитектура с несколькими потоками команд и одним потоком данных (MISD)
Архитектура множественных инструкций и множественных данных (MIMD)
Основные понятия аппаратной многопоточности
Детальная многопоточность
Грубая многопоточность
Одновременная многопоточность
Основные понятия многоядерных процессоров
Основные понятия мультипроцессоров с общей памятью
Несмотря на то, что эти системы используют одно и то же физическое адресное пространство, они все равно могут независимо запускать программы в своем собственном виртуальном адресном пространстве.
Два типа
Многопроцессор унифицированного доступа к памяти (UMA)
Мультипроцессоры с неоднородным доступом к памяти (NUMA)