Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Единая станция резервирования, также известная как единый планировщик, является децентрализованной функцией микроархитектуры процессора, обеспечивающей переименование регистров и используемой алгоритмом Томасуло для динамического планирования инструкций. Станции резервирования позволяют процессору извлекать и повторно использовать значение данных сразу после его вычисления, не дожидаясь сохранения в регистр и последующего чтения. При выдаче инструкции они могут указать станцию резервирования, из которой требуется считать входные данные. Если несколько инструкций должны записать данные в один и тот же регистр, все они могут выполняться, при этом фактически записывается только последняя (логически) инструкция. Перед началом выполнения проверяется доступность операндов (RAW-зависимость) и свободен ли исполнительный блок (структурный конфликт). Инструкции хранятся вместе с доступными параметрами и выполняются, когда они готовы. Результаты идентифицируются исполнительным блоком, который будет выполнять соответствующую инструкцию. Переименование регистров автоматически решает конфликты Write-After-Read (WAR) и Write-After-Write (WAW). Поскольку это полностью ассоциативная структура, она требует значительных затрат на компараторы (необходимо сравнивать все результаты, возвращаемые из исполнительных блоков, со всеми сохраненными адресами). В алгоритме Томасуло инструкции последовательно выдаются на станции резервирования, которые буферизуют как саму инструкцию, так и её операнды. Если операнд недоступен, станция резервирования отслеживает общую шину данных в ожидании его появления. Когда операнд становится доступным, станция резервирования буферизует его, и выполнение инструкции может начаться. Функциональные устройства (например, сумматор или умножитель) имеют собственные соответствующие станции резервирования. Выход функционального устройства подключается к общей шине данных, где станции резервирования прослушивают необходимые операнды.
A unified reservation station, also known as unified scheduler, is a decentralized feature of the microarchitecture of a CPU that allows for register renaming, and is used by the Tomasulo algorithm for dynamic instruction scheduling. Reservation stations permit the CPU to fetch and re use a data value as soon as it has been computed, rather than waiting for it to be stored in a register and re read. When instructions are issued, they can designate the reservation station from which they want their input to read. When multiple instructions need to write to the same register, all can proceed and only the (logically) last one need actually be written. It checks if the operands are available (RAW) and if execution unit is free (Structural hazard) before starting execution. Instructions are stored with available parameters, and executed when ready. Results are identified by the unit that will execute the corresponding instruction. Implicitly register renaming solves WAR and WAW hazards. Since this is a fully associative structure, it has a very high cost in comparators (need to compare all results returned from processing units with all stored addresses). In Tomasulo's algorithm, instructions are issued in sequence to Reservation Stations which buffer the instruction as well as the operands of the instruction. If the operand is not available, the Reservation Station listens on a Common Data Bus for the operand to become available. When the operand becomes available, the Reservation Station buffers it, and the execution of the instruction can begin. Functional Units (such as an adder or a multiplier), each have their own corresponding Reservation Stations. The output of the Functional Unit connects to the Common Data Bus, where Reservation Stations are listening for the operands they need.