Микропроцессор представляет собой сложное электронное устройство для выполнения различных операций. Любой процессор поддерживает определенный набор команд, которые может исполнять, и содержит набор внутренних ячеек памяти, регистров, с которыми может работать гораздо быстрее, чем с внешней памятью. Различают два типа архитектуры микропроцессоров - CISC и RISC.
CISC (Complex Instruction Set Computer) подразумевает, что процессор поддерживает очень большой набор команд (более 200) и имеет небольшое число регистров. В свою очередь, RISC-архитектура (Reduced Instruction Set Computer) означает ограниченный набор команд и большое число внутренних регистров. Споры о том, что лучше, идут до сих пор. RISC-процессоры работают быстрее, т. к. команды простые. И стоят дешевле, но программы для них занимают больше места, чем для CISC. Именно поэтому в условиях дефицита оперативной памяти первоначальное развитие процессоров для персональных компьютеров пошло в направлении CISC-архитектуры. Все процессоры, совместимые с набором команд х86, являются CISC-процессорами, хотя некоторые могут иметь элементы RISC-архитектуры. Микропроцессоры пятого поколения имеют 64-разрядную шину данных и адресов. Могут работать с 8-, 16- и 32- битными данными, поддерживают конвейерную структуру и обладают возможностью предсказывать направление переходов в программе. Процессоры, обладающие немного большими возможностями, как правило, относят к шестому поколению. Рассмотрим основные принципы работы современных процессоров.
Прежде всего, отметим, что процессор выполняет программу, которая хранится в памяти. Программа представляет собой набор команд (инструкций) и данных. Последовательно считывая команды, процессор выполняет соответствующие действия. Каждая команда представлена несколькими байтами, причем длина ее не фиксирована и может составлять от 1 до 15 байт.
Так, в процессоре пятого поколения можно выделить следующие основные части:
q блок целочисленных вычислений;
q блок вычислений с плавающей точкой;
q кэш-память;
q блок предсказания ветвлений;
q интерфейс шины;
q блок управления памятью.
Основная задача процессора - выполнять программу и делать это как можно быстрее. Самое простое решение - повышение тактовой частоты. Когда достигается предел, определяемый технологией изготовления, приходится искать другие способы повышения производительности. Именно набор подобных решений сделал Pentium быстрее 486-го процессора. Хотя оба работали на одной частоте.
Кэш(сасhе)-память
Кэш-память представляет собой быстродействующий буфер памяти, используемый для временного хранения данных, которые могут потребоваться процессору. Это позволяет процессору работать практически с полной скоростью без ожидания кода или данных, извлекаемых из более медленной оперативной памяти. Кэш-память реализована в виде микросхем статической оперативной памяти (SRAM), установленных на системной плате или встроенных в процессор. Такая память впервые появилась на 486-х процессорах и по сей день является одним из эффективных методов увеличения производительности ПК.
Существуют два способа организации такой памяти: разделенная, когда данные и инструкции хранятся в разных местах, и единая, когда и данные и инструкции находятся в одной памяти. Второй метод более гибкий, так как позволяет динамично распределять память между данными и кодом, зато первый проще реализовать.
В современных ПК используются два уровня кэш-памяти, получившие название кэш-памяти первого (L1) и второго (L2) уровней (в некоторых серверных процессорах, например Itanium, применяется кэш-память третьего уровня - L3).
Основная особенность кэш-памяти первого уровня состоит в том, что она всегда интегрирована с ядром процессора и работает на той же частоте.
В системах класса Pentium (P5) кэш-память второго уровня обычно устанавливается на системной плате и работает соответственно с ее тактовой частотой. Intel значительно повысила производительность процессоров, переместив кэш-память с системной платы непосредственно в процессор, что повлекло за собой увеличение ее рабочей частоты до частоты процессора. Более современные процессоры содержат встроенную кэш-память второго уровня, которая работает на той же скорости, что и ядро процессора, причем скорости кэш-памяти первого и второго уровней одинаковы.
Конвейер
Прежде чем выполнить команду, процессор должен:
1) прочитать из памяти часть программы;
2) определить длину инструкции;
3) определить адрес ячейки памяти, если она используется в данной команде;
4) выполнить команду;
5) сохранить результат.
Как в любом конвейерном производстве, вся последовательность действий разбивается на этапы: выборка, декодирование, определение адреса, выполнение и сохранение. Как только очередная инструкция переходит на следующий этап, начинает выполняться новая.
Подобное решение резко повышало производительность и применялось еще в 486-х микропроцессорах. В Pentium впервые был применен двойной конвейер: команды могут исполняться параллельно, до двух за один такт. Практически все инструкции могут выполняться параллельно, за исключением операций с плавающей точкой и команд переходов. Общий прирост производительности при использовании второго конвейера составляет 15-20%. Понятия "суперскалярный" и "суперконвейерный" означает наличие более двух конвейеров и более пяти этапов в конвейере соответственно.