Оптимизация выполнения команд: конвейеризация, суперскалярность, кэширование

Обычно стремятся совмещать во времени процедуры обращения к памяти и обработки информации, параллельно выполнять арифметические операции сразу над несколькими (или даже всеми) разрядами операндов, одновременно выполнять несколько последовательных команд программы (разумеется, на разных стадиях) и т. п. 

Конвейеризация

Конвейер — способ организации вычислений, используемый в современных процессорах и контроллерах с целью повышения их производительности (увеличения числа инструкций, выполняемых в единицу времени — эксплуатация параллелизма на уровне инструкций), технология, используемая при разработке компьютеров и других цифровых электронных устройств.

Идея заключается в параллельном выполнении нескольких инструкций процессора. Сложные инструкции процессора представляются в виде последовательности более простых стадий. Вместо выполнения инструкций последовательно (ожидания завершения конца одной инструкции и перехода к следующей), следующая инструкция может выполняться через несколько стадий выполнения первой инструкции. Это позволяет управляющим цепям процессора получать инструкции со скоростью самой медленной стадии обработки, однако при этом намного быстрее, чем при выполнении эксклюзивной полной обработки каждой инструкции от начала до конца.

Конвейеризация осуществляет многопоточную параллельную обработку команд, так что в каждый момент одна из команд считывается, другая декодируется и т. д., и всего в обработке одновременно находится пять команд. Таким образом, на выходе конвейера на каждом такте процессора появляется результат обработки одной команды (одна команда в один такт).

Суперскалярность

Если компьютер способен одновременно выполнять несколько последовательных команд программы, то он называется суперскалярным.

Суперскалярный процессор — процессор, поддерживающий так называемый параллелизм на уровне инструкций (то есть, процессор, способный выполнять несколько инструкций одновременно) за счёт включения в состав его вычислительного ядра нескольких одинаковых функциональных узлов (таких как АЛУ, FPU, умножитель (integer multiplier), сдвигающее устройство (integer shifter) и другие устройства). Планирование исполнения потока инструкций осуществляется динамически вычислительным ядром (не статически компилятором). Суперскалярная архитектура процессора предполагает, что команды (на некотором ограниченном участке программы) могут выполняться не только в порядке их размещения в программе, но и по мере возможности их выполнения независимо от порядка следования. Возможность выполнения определяется, во-первых, отсутствием зависимостей от ранее расположенных, но еще не завершенных команд, во-вторых, наличием свободных ресурсов процессора, необходимых для выполнения команды.

Суперскалярность обычно присуща RISC-процессорам (Reduced Instruction Set Computing, то есть процессорам с сокращенным набором команд.). Процессоры этого класса имеют значительно больший состав регистров общего назначения – регистров сверхоперативной памяти, что и определяет улучшенные возможности параллельной работы последовательности команд программы.

Кэширование

Кэш-память — это буферная, недоступная для пользователя быстродействующая память, автоматически используемая компьютером для ускорения операций с информацией, хранящейся в более медленно действующих запоминающих устройствах. Например, для ускорения операций с основной памятью организуется регистровая кэш-память внутри микропроцессора (кэш-память первого уровня) или вне микропроцессора на материнской плате (кэш-память второго уровня); для ускорения операций с дисковой памятью организуется кэш-память на ячейках электронной памяти.

Следует иметь в виду, что наличие кэш-памяти увеличивает производительность ПК примерно на 20 %.


  1. Максимов Н. В., Партыка Т. Л., Попов И. И. Архитектура ЭВМ и вычислительны х систем : учебник / Н. В. Максим ов, Т. Л. Партыка, И. И . Попов. — 5-е изд., перераб. и доп. — М. : ФОРУМ : ИНФРА -М, 2013. — 512 с.
  2. Пятибратов А.П., Гудыно Л.П., Кириченко А.А. Вычислительные машины, сети и телекоммуникационные системы: Учебно-методический комплекс. – М.: Изд. центр ЕАОИ. 2009. – 292 с.
  3. Бройдо В. Л., Ильина О. П. Архитектура ЭВМ и систем: Учебник для вузов. — СПб.: Питер, 2006. — 718 с.
  4. Жмакин А. П. Архитектура ЭВМ: 2-е изд., перераб. и доп.: учеб. пособие. — СПб.: БХВПетербург, 2010. — 352 с.