Конвейерная архитектура (pipelining) была введена в центральный
процессор с целью повышения быстродействия. Обычно для выполнения каждой
команды требуется осуществить некоторое количество однотипных операций,
например: выборка команды из ОЗУ,
дешифрация команды, адресация операнда в ОЗУ, выборка операнда из ОЗУ,
выполнение команды, запись результата в ОЗУ. Каждую из этих операций
сопоставляют одной ступени конвейера. Например, конвейер микропроцессора с
архитектурой MIPS-I содержит четыре стадии:
получение
и декодирование инструкции (Fetch)
адресация
и выборка операнда из ОЗУ (Memory access)
выполнение
арифметических операций (Arithmetic Operation)
сохранение
результата операции (Store)
После освобождения k-й ступени конвейера
она сразу приступает к работе над следующей командой. Если предположить, что
каждая ступень конвейера тратит единицу времени на свою работу, то выполнение
команды на конвейере длиной в n ступеней
займёт n единиц времени, однако в самом
оптимистичном случае результат выполнения каждой следующей команды будет
получаться через каждую единицу времени.
Действительно, при отсутствии конвейера выполнение команды займёт n единиц времени (так как для выполнения команды по
прежнему необходимо выполнять выборку, дешифрацию и т. д.), и для
исполнения m команд понадобится единиц времени; при
использовании конвейера (в самом оптимистичном случае) для выполнения m команд понадобится всего лишь n + m единиц времени.
Факторы, снижающие эффективность конвейера:
простой
конвейера, когда некоторые ступени не используются (напр., адресация и
выборка операнда из ОЗУ
не нужны, если команда работает с регистрами);
ожидание:
если следующая команда использует результат предыдущей, то последняя не
может начать выполняться до выполнения первой (это преодолевается при
использовании внеочередного выполнения команд, out-of-order execution);
очистка
конвейера при попадании в него команды перехода (эту проблему удаётся
сгладить, используя предсказание переходов).
Некоторые современные процессоры имеют более 30 ступеней в конвейере, что
увеличивает производительность процессора, однако приводит к большому времени
простоя (например, в случае ошибки в предсказании условного перехода.)
Суперскалярная архитектура
Способность выполнения нескольких машинных инструкций за один такт
процессора. Появление этой технологии привело к существенному увеличению
производительности.
Complex Instruction Set Computer — вычисления со сложным набором
команд. Процессорная архитектура, основанная на усложнённом наборе команд.
Типичными представителями CISC является семейство микропроцессоров Intel x86 (хотя уже много лет
эти процессоры являются CISC только по внешней системе команд).
Reduced Instruction Set
Computing (technology) — вычисленияссокращённымнаборомкоманд. Архитектура
процессоров, построенная на основе сокращённого набора команд. Характеризуется
наличием команд фиксированной длины, большого количества регистров, операций
типа регистр-регистр, а также отсутствием косвенной адресации. Концепция RISC
разработана Джоном Коком (John Cocke) из IBM Research, название
придумано Дэвидом Паттерсоном (David Patterson).
Самая распространённая реализация этой архитектуры представлена процессорами
серии PowerPC,
включая G3, G4 и G5. Довольно известная реализация данной архитектуры —
процессоры серий MIPS и Alpha.
Minimum Instruction Set Computing — вычисления с минимальным набором
команд. Дальнейшее развитие идей команды Чака Мура, который полагает, что
принцип простоты, изначальный для RISC процессоров, слишком быстро отошёл на
задний план. В пылу борьбы за максимальное быстродействие, RISC догнал и
перегнал многие CISC процессоры по сложности. Архитектура MISC строится на стековой
вычислительной модели с ограниченным числом команд (примерно 20-30 команд).
Многоядерные процессоры
Содержат несколько процессорных ядер в одном корпусе (на одном или
нескольких кристаллах).
Процессоры, предназначенные для работы одной копии операционной системы на нескольких ядрах,
представляют собой высокоинтегрированную реализацию системы «Мультипроцессор».
На данный момент массово доступны процессоры с двумя ядрами, в частности Intel
Core 2 Duo на 65 нм ядре Conroe (позднее на 45 нм ядре Wolfdale) и Athlon64X2
на базе микроархитектуры K8. В ноябре 2006
года вышел первый четырёхъядерный процессор Intel
Core 2 Quad на ядре Kentsfield, представляющий собой сборку из двух кристаллов
Conroe в одном корпусе.
Двухядерность поцессоров включает такие понятия, как наличие логических и
физических ядер: например двухядерный процессор Intel Core Duo состоит из
одного физического ядра, которое в свою очередь разделено на два логических. Процессор
Intel Core 2 Duo состоит из двух физических ядер, что существенно влияет на
скорость его работы.
10 сентября2007
года были выпущены в продажу нативные (в виде одного кристалла)
четырёхьядерные процессоры для серверов AMD Quad-Core Opteron,
имевшие в процессе разработки кодовое название AMD Opteron Barсelona[1].
19 ноября2007 вышел в продажу четырёхьядерный процессор для домашних
компьютеров AMD Quad-Core Phenom[2].
Эти процесоры реализуют новую микроархитектуру K8L (K10).
27 сентября2006
года Intel продемонстрировала прототип 80-ядерного процессора[3].
Предполагается, что массовое производство подобных процессоров станет возможно
не раньше перехода на 32-нанометровый техпроцесс, а это в свою очередь
ожидается к