Буфер полок для повышения производительности суперскалярных процессоров.
Shelving buffer
Буфер регистров: повышение эффективности суперскалярных процессоров за счет внеочередного выполнения инструкций. Увеличение производительности микропроцессора.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Буфер полок — это техника, используемая в компьютерных процессорах для повышения эффективности суперскалярных процессоров. Она позволяет одновременно выдавать несколько инструкций, независимо от зависимостей данных между ними. Это обеспечивает внеочередное исполнение, что увеличивает пропускную способность микропроцессора.
A shelving buffer is a technique used in computer processors to increase the efficiency of superscalar processors. It allows for multiple instructions to be dispatched at once regardless of the data dependencies between those instructions. This allows for out of order execution to occur which increases the throughput of the microprocessor.
Предыстория
Суперскалярный процессор позволяет одновременно выполнять несколько инструкций непосредственно в ядре процессора, однако это не следует путать с многопроцессорной системой. Большинство современных процессоров являются суперскалярными. В суперскалярном процессоре несколько инструкций выдаются из одного потока. Многоядерные процессоры содержат несколько процессоров, каждый из которых выполняет отдельный поток.
A superscalar processor allows the execution of a number of instructions simultaneously in the core of the processor itself, although this behavior is not to be confused with a multi processor system. Most modern processors are superscalar. In a superscalar processor multiple instructions are dispatched from the same thread. Multi core processors contain multiple processors all executing separate threads.
Как это работает
С суперскалярным процессором окно инструкций процессора заполняется определенным количеством инструкций (известным как скорость выдачи). В зависимости от схемы, которую суперскалярный процессор использует для отправки этих инструкций из окна в исполнительное ядро ЦП, могут возникнуть проблемы, если существует зависимость, аналогичная описанной выше. Рассмотрим окно инструкций шириной 3 инструкции, содержащее i1, i2, i3 (инструкции 1, 2 и 3). Предположим, что i2 зависит от инструкции, которая еще не завершила выполнение, и ее пока нельзя выполнить. Без использования промежуточного буфера суперскалярный процессор выполнит i1, будет ждать, пока i2 сможет быть выполнена, а затем выполнит i2 и i3 одновременно. Однако при использовании промежуточного буфера окно инструкций будет опустошаться в промежуточные буферы независимо от их содержимого. Затем процессор будет искать в промежуточных буферах подходящее количество инструкций, которые могут быть выполнены параллельно (то есть без зависимостей). Таким образом, у процессора появляется больше возможностей для одновременного выполнения максимального количества инструкций и максимизации пропускной способности.
With a superscalar processor, the instruction window of the processor fills up with a number of instructions (known as the issue rate). Depending on the scheme that the superscalar processor uses to dispatch these instruction from the window to the execution core of the CPU, there may be problems if there is a dependency not unlike the one shown above. Consider an instruction window 3 instructions wide, containing i1, i2, i3 (instructions 1,2 & 3). Suppose that i2 is dependent on an instruction that has not yet finished executing, and it cannot be executed yet. Without the use of a shelving buffer, the superscalar processor will execute i1, wait until i2 can be executed and then execute i2 and i3 simultaneously. However, with the use of a shelving buffer, the instruction window will be emptied into shelving buffers regardless of contents. The processor will then search for an appropriate number of instructions in the shelving buffers that can be executed in parallel (i. e. with no dependencies). Hence the processor has a greater chance of running the maximum number of instructions simultaneously, and maximising throughput.