#### Определение табло. Структура табло и контролируемые параметры. **Табло** - централизованный аппаратный механизм, поддерживающий скорость выдачи инструкций на исполнение не более 1 за такт, за счет выдачи инструкции, как только ее операнды доступны и нет блокирующих ее конфликтов. - Ступень ID заменяется на ID1, ID2. - Однопортовый (1 инструкция - 1 такт) неупорядоченный конвейер без изменений на ступени выборки инструкции (IF). - Смысл алгоритма Табло в том, что внутри ЦП есть отдельный блок, который хранит информацию о всех текущих выполняющихся инструкциях и текущем состоянии ресурсов. - Реализация: - ЦП имеет несколько функциональных устройств, которые сообщают табло информацию о своем состоянии. - Каждая инструкция проходит сквозь табло, где строится запись о ее зависимостях по данным. - Если табло определяет, что инструкция не может быть выдана на исполнение немедленно, ее исполнение откладывается. - Табло отслеживает статус зависимостей и аппаратных блоков и решает, когда отложенная инструкция может быть направлена на исполнение. - Табло выдает инструкции разрешение для записи результата в регистры. **Контролируемые параметры:** - **Статус инструкции:** На каком из 4 этапов находится. - **Статус функционального устройства (9 полей):** **Busy** - занято устройство или нет **Op** - Операция, выполняемая на устройстве $F_i$ - регистр назначения $F_j,F_k$ - регистры - источники операндов $Q_j,Q_k$ - функциональные устройства, заполняющие регистры - источники операндов $F_j,F_k$ $R_j,R_k$ - флаги, показывающие готовность $F_j,F_k$ : Устанавливаются в True после того, как операнды стали доступны для чтения, затем оба операнда считываются из регистров одновременно. - **Статус регистра:** Какое функциональное устройство собирается писать в регистр (если такое есть) Пуст, когда никакие незаконченные инструкции не будут писать в указанный регистр.