И в свет разрешаю на основании «Единых правил», п 14 Заместитель первого проректора начальник организационно методи- ческого управления В. Б. Юскаев Строение персонального компьютера учебное пособие

Вид материалаУчебное пособие

Содержание


Архитектура процессора
Арифметико-логическое устройство
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   14

Архитектура процессора


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

Кремний применяется в микросхемах в силу того, что он обладает полупроводниковыми свойствами: его электрическая проводимость больше, чем у диэлектриков, но меньше, чем у металлов. Кремний можно сделать как изолятором, препятствующим движению электрических зарядов, так и проводником — тогда электрические заряды будут свободно проходить через него. Проводимостью полупроводника можно управлять путем введения примесей.

Архитектура материнской платы напрямую зависит от внешней архитектуры микропроцессора. К обязательным компонентам микропроцессора относятся арифметико-логическое (исполнительное) устройство и блок управления. Они характеризуются скоростью (тактовой частотой), разрядностью или длинной слова (внутренней и внешней), архитектурой и набором команд. Архитектура микропроцессора определяет необходимые регистры, стеки, систему адресации, а также типы обрабатываемых процессором данных. Обычно используются следующие типы данных: бит (один разряд), байт (8 битов), слово (16 битов), двойное слово (32 бита). Выполняемые микропроцессором команды предусматривают, как правило, арифметические действия, логические операции, передачу управления (условную и безусловную) и перемещение данных (между регистрами, памятью, портами ввода-вывода).

Микропроцессор содержит миллионы транзисторов, соединенных между собой тончайшими проводниками из алюминия или меди и используемых для обработки данных. Так формируются внутренние шины. В результате микропроцессор выполняет множество функций – от математических и логических операций до управления работой других микросхем и всего компьютера. С внешними устройствами микропроцессор может «общаться» благодаря шинам адреса, данных и управления, выведенных на специальные контакты корпуса микросхемы. Стоит отметить, что разрядность внутренних регистров микропроцессора может не совпадать с количеством внешних выводов для линий данных. Иначе говоря, микропроцессор с 32-разрядными регистрами может иметь, например, только 16 линий внешних данных. Объём физически адресуемой микропроцессорной памяти однозначно определяется разрядностью внешней шины адреса как 2 в степени N, где N - количество адресных линий.

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

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

Арифметико-логическое устройство


Основные действия в процессоре происходят в так называемом "арифметико-логическом устройстве" или просто АЛУ. Это именно та часть процессора, где происходит непосредственно обработка данных, получаемых АЛУ непосредственно из регистров.

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

В течение всего одного такта производится считывание данных из регистра и запись их в него. Другими словами, если в регистре Z хранится число X, а АЛУ, по инструкции, следует, скажем, прибавить к нему единицу, то возможно записать число-ответ в этот же регистр. В действительности это производится несколько не так просто. Для этого следует четко представить себе, что делает процессор в течение такта.

Как известно, все современные микропроцессоры являются синхронными. Иными словами, там есть счетчик, который регулярно посылает сигналы, представляющие собой, в идеале, чередование прямоугольных импульсов. При "падении" импульса выставляются затворы регистров (черные и синие стрелки), делается это для того, чтобы данные, поступающие из L1 кэша (синие стрелки, указывающие на регистры), записались в верный регистр. Помимо этого, на рисунке изображены четыре горизонтальных стрелки слева от АЛУ. Это – шина команд. По ней передаются инструкции для АЛУ. (На данном процессоре можно сделать до 24=16 различных команд). На все это уходит очень малое время ΔSignal. Оно занимает лишь небольшую часть такта.

Затем надлежащие данные следует отправить по шине (красно-желтая стрелка) в АЛУ. На доставку также уходит некоторое время (ΔB), так как прежде чем АЛУ начнет производить вычисления, значения чисел в регистрах должны хорошо установиться.

После того как все вышеперечисленное было выполнено, АЛУ приступает к работе. После вычислений (ΔАЛУ) результаты передаются шине данных регистров (еще ΔR). При "подъеме" следующего импульса они загружаются в регистры.


В этом заключается основная концепция современных микропроцессоров: в каждом цикле есть сигнал, который переключает определенные триггеры. Например, в регистры можно загружать данные лишь в начале ("подъеме") импульса, а считывать только в конце (загрузка в это время блокируется). Именно поэтому АЛУ может в течение одного цикла и считать, и записать данные в регистр.

Сказанное выше помогает дать ответ на вопрос: как получить высокую тактовую частоту. Ясно, что высокая частота значит малое время между последовательными импульсами. Ясно также (см. рис.), что это время не может быть меньше, чем сумма времен ΔSig, ΔB, ΔALU и ΔR (плюс еще немного, для подстраховки). В противном случае, может оказаться так, что, например, новые данные начнут загружаться, прежде чем результаты будут соответствующим образом занесены в регистры.

Итак, если имеется способ уменьшения какой-нибудь из Δ, то можно увеличить частоту. Три возможных способа:
  1. Сделать так, чтобы данные шли через процессор быстрее. Заставить поток битов ходить в процессоре быстрее непросто. Имеется два способа:
  • насколько это возможно уменьшить число препятствий на пути электронов, а это зависит от:
    • технологии производства. Чем лучше технология, тем лучше конечный продукт;
    • температуры кристалла. Атомы в кристаллической решетке находятся в тепловом движении, и амплитуда его пропорциональна температуре. А чем больше амплитуда, тем меньше шансов у электрона проскочить мимо атома. Таким образом, чем ниже температура, тем меньше помех движению электронов. Именно поэтому охлажденные процессоры работают быстрее;
  • сокращение проходимого битами пути. Для этого следует уменьшить размеры транзисторов, а как следствие, расстояние между ними.
  1. Сократить время вычислений. Машины хорошо умеют делать параллельно несколько операций. Поэтому какой-нибудь блок для сложения сможет складывать быстрее, чем более простая конструкция, сокращая, таким образом, ALU. Впрочем, здесь не все так просто: сложное устройство, конечно, считает быстро, но зато оно и больше.
  2. Делать как можно меньше операций в течение одного цикла. Например, вместо 7 операций за один цикл делать одну. Тогда, очевидно, можно будет сократить и продолжительность цикла. Вроде бы звучит очень странно. Ведь в таком случае та же процедура займет в 7 раз дольше времени. Но в данном случае помогает конвейер, который позволяет всем устройствам процессора выполнять свою работу одновременно.

Пусть, например, в процессоре есть 4 устройства:
    • fetcher – ищет следующую инструкцию;
    • декодер – выясняет смысл инструкции;
    • АЛУ – выполняет инструкции;
    • retire блок – возвращает результаты в память.

Итак, если в схеме используются конвейеры, процесс будет выглядеть так: fetcher получает инструкцию 4, decoder декодирует инструкцию 3, АЛУ выполняет инструкцию 2, а результат инструкции 1 отправляется назад в память. И, таким образом, в конце каждого такта имеется выполненная инструкция.


Такт

Fetcher

Decoder

АЛУ

Retire

1

Инструкция 1










2

Инструкция 2

Инструкция 1







3

Инструкция 3

Инструкция 2

Инструкция 1




4

Инструкция 4

Инструкция 3

Инструкция 2

Инструкция 1

5

Инструкция 5

Инструкция 4

Инструкция 3

Инструкция 2

6

Инструкция 6

Инструкция 5

Инструкция 4

Инструкция 3

7

Инструкция 6

Инструкция 6

Инструкция 5

Инструкция 4

8

Инструкция 7

Инструкция 7

Инструкция 6

Инструкция 5

9

Инструкция 8

Инструкция 8

Инструкция 7

Инструкция 6


Суперконвейеризация, или разбиение конвейера на большое число стадий, позволяет делать за один цикл меньше, притом, что снаружи все выглядит так, что процессор делает все тот же объем работы за один цикл.

Глубокая конвейеризация - не единственный способ увеличить частоту. Можно делать побольше операций параллельно. Ведь именно число операций, сделанных последовательно, определяет минимальную продолжительность цикла.

Пользователи со стажем помнят, что семейство К-6 обладало 6 уровневым конвейером, а у PII их было 12. И хотя у К6 были лучше и АЛУ (ΔАЛУ меньше), и декодеры (они делают многое параллельно), но в К6-3 было очень сложно достичь частоты PII при той же технологии производства. Предел для 0,35-микронного К6 равен 233 МГц, а для такого же PII - 300 МГц (то же самое можно сказать и о противостоянии следующих поколений: Athlon и P4).

Ultrasparc II использует конвейер с 9 стадиями, но следует учесть тот факт, что RISC-процессоры не нуждаются в большом объеме декодировки. На один только фетчинг и декодировку у PII уходит 7 циклов, в то время как у UltraSPARC лишь 3. Так что, в некотором смысле, у UltraSPARC конвейеризация глубже.

Конвейер Alpha состоит из 7 стадий (10-у FPU), но и у него, по сравнению с PII, с декодировкой  проблем меньше. Вдобавок к этому, инженеры Alpha делают каждую стадию настолько простой, насколько это только возможно. Добиваются они этого, заставляя делать процессор по возможности больше операций параллельно. Продолжительность такта, таким образом, уменьшается до минимума. За что, впрочем, приходится платить: процессоры Alpha просто огромны (302 мм2 у Alpha 21264).

Теперь ясно, почему латентность конвейеризованного FPU К7 (4 такта на сложение, 4 такта на умножение) возросла по сравнению с К6 (2 - на сложение, 2 - на умножение). FPU К7 делает меньше работы за один такт, чем К6, что позволяет ему достигать много больших частот. 10-уровневый конвейер для целочисленных операций (15 для FPU) позволил К7 достичь таких частот, о каких К6 мог только мечтать.

Конечно же, не следует забывать, что частота - не единственное, что делает процессор быстрым.