Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы инф_мен (Костров).doc
Скачиваний:
19
Добавлен:
08.09.2019
Размер:
4.42 Mб
Скачать

Процессоры 5-7 поколения. Они уже такие разные...

Довольно занятно: в то время как процессоры Alpha "летали" на умопомрачительной тогда скорости в 700 МГц, AMD были все еще на 450 МГц, а Intel только-только добрался до 500 МГц. Это различие становится еще более заметным, если учесть тот факт что Alpha достигала 533-600 МГц еще на 0,35 мкм процессорах! AMD и Cyrix никогда не могли выжать из своих 0,35 процессоров больше чем 233 МГц. Так что больше не позволяйте кому-то говорить вам что все зависит от тех процесса!

Как получить высокие частоты

На вопрос, почему некоторые процессоров быстрее чем другие, обычно получаешь три ответа:

  1. Лучшие производственные возможности (передовые технологии, более тонкий тех процесс)

  2. Меньший размер процессора и более низкая теплоотдача.

  3. Более глубокие конвейеры

А теперь, давайте посмотрим на цифры:

Процессор

Год запуска

Техпроцесс, мкм

Размер кристалла, мм2

Макс. частота, МГц

Spec Int 95

Spec FP 95

Intel

P II

97

0,35

203

300

11,9

8,6

AMD

K6

97

0,35

168

233

7,1

3,9

Sun

UltrSparc lli

98

0,35

156

360

15,2

19,9

DEC

Alpha 21164

95

0,5

299

333

9,8

13,4

DEC

Alpha 21164a

97

0,35

209

600

18,4

21,4

DEC

Alpha 21264

98

0,25

302

667

40

60

HP

PA-RISC 8200

97

0,5

345

220

15,5

25

Хотя DEC обычно сама производила свои процессоры Alpha, последнее время (до продажи процессорного бизнеса легендарной компании корейскому Samsung’у) кристаллы для DEC производились на фабриках Intel, производственный процесс которых был лучше. Процессоры на 0,25 мкм тех процессе появились у Intel заметно раньше, чем у DEC. Опять же, как мы уже отмечали, Alpha работали намного быстрее.

Малый размер кристалла? Но кристаллы процессоров Alpha и HP просто огромны! И это не мешает им обходить намного более меньшие по размерам процессоры от Intel и AMD (используя такой же тех процесс, конечно).

Winchip IDT был очень мал, и процессоры AMD всегда были меньше их аналогов от Intel. Но совсем не помогло им в противоборстве с Intel. Выходит, что не все зависит от производственного процесса.

Глубокий конвейер? Это ни о чем не говорящий ответ. Как может глубокий конвейер помочь достичь высоких мегагерц? И вообще, что из себя представляет глубокий конвейер?

Ваш первый микропроцессор

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

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

Таким образом, можно сделать вывод, что регистры должны быть очень быстрыми, иначе АЛУ будет простаивать во время записи и считывания данных.

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

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

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

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

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

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

Итак, если мы способны уменьшить какой-нибудь из , мы сможем увеличить частоту. Три возможных способа: 1) Сделать так, чтобы данные шли через процессор быстрее. 2) Сократить время вычислений. 3) Делать как можно меньше операций в течении одного цикла.