Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение арх.ЭВМ2.docx
Скачиваний:
4
Добавлен:
21.12.2018
Размер:
17.75 Mб
Скачать

Частоты, используемые в системе.

Основной является частота системной шины, обрабатываемая высокостабильным тактовым генератором. Эта частота служит для синхронизации системной шины и шин ввода-вывода.

  1. Host Bus Clock(FSB) или частота системной шины, т.е частота на которой производится обмен по системной шине, так же ее называют внешней частотой процессора.

  2. CPU Clock - частота процессора (внутренняя частота). - это частота на которой производится операции внутри процессора т.е частота с которой работает ядро процессора. Внутренняя частота зависит от внешней и получается при помощи коэффициента деления(умножения) показывающего отношение внутренней частоты к внешней.

CPU

Fspu Мгц

Ffsb Мгц

Коефициэнт

Р1

100

66,6

1,5

Р1

120

66,6

2

Р2

333

66

5

Р4

3200

200

16

AMD Phemon 2 X4

1333

200

6

  1. PCI Bus Clock – частота шины PCI. Зависит от использования стандарта шины PCI. PCI 2.0 составляет 33 Мгц. PCI 2.1 66 Мгц. При условии согласования всех абонентов шины.

  2. AGP Bus Clock

  3. ISA.

  4. PCI Express.

Производительность процессора.

Для сравнения производительности процессора с одинаковой архитектурой и близких по системе команд используются две натуральные единицы измерения.

В этих тестах применяются (MIPS, FLOPS)регистровые операции с целыми и вещественными числами.

Поколение процессоров фирмы Intel.

  1. 8086; 8088; 80186.

  2. i80286 (i80287сопроц.)

  3. i386 (i387сопроц.)

  4. i486

  5. Pentium; Pentium MMX.

  6. Pentium II; PIII.

  7. P IV (NetBurst)

  8. Core2duo(Conroe)

  9. i3, i5, i7(Nehalem)

Способы увеличения производительностии процессора.

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

  2. Распараллеливание процессора - обработка информации производится несколькими потоками за счет использования нескольких конвееров. Скалярным называется процессор с одним конвейером. Супер скалярным называется процессор содержащий более одного конвейера.

  3. Переименование регистра - при параллельном выполнении команд существует большая вероятность обращения с разных конвейеров к одному и тому же регистру. Для обеспечения параллельного выполнения физически в процессоре реализует большее количество регистров и при выполнении команды устанавливают соответствие логического имени и физического регистра.

Конвейеры.

Уже много лет известно, что главным препятствием высокой скорости выполнения команд является необходимость их вызова из памяти. Для разрешения этой проблемы можо вызвать команды из памяти заранее и хранить в специальном наборе регистров. Эта идеяч исользоваласт еще в 1959 году при разработке компьютера Stretch компании IBM, а набор регистров был назван буфер выборки с упреждением. Таким образом, когда требовалась определенная команда, она вызывалась прямо из буфера, а обращение к кпамяти не происсходило.

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

На рисунке а) изображен конвейер из пяти блоков, которые нызваваются ступенями. Первая ступень (блок С1) вызывает команду из пямяти и помещает ее в буфер, где она хранится до тех пор, пока не потребуется. Вторая ступень (блок С2) декодирует эту команду, определяя ее тип и тип опреадовю Третья ступень (блок С3) определяет местонахождение операндов и вызываетт их из регистра или из памяти. Четвертая ступень (блок С4) выполняет команду, обычно проводя операнды через тракт данных. И наконец, блок С5, записывает результат обратно в регистр.

На рисунке б) мы видем, как действует конвейер во времени. Во время цикла 1 С1 обрабатывает команду 1, вызывая ее из памяти. Во время цикла 2 блок С2 декодирует команду1, в то время как блок С1 вызывает из памяти команду 2. Во время цикла 3 блок С3 вызывает операнды для команды 1, блок С2 декодирует команду 2, а блок С1 вызывает команду 2. Во время цикла 4 блок С4 выполняет команду 1, С3 вызывает операнды для команды 2, С2 декодирует команду 3, а С1 вызывает команду 4. Наконец, во время цикла 5 блок С5 зыписывает результат выполнения команды 1 обратно в регистр, тогда как другие ступени конвейера обрабатывают следующие команды.

Чтобы лучше понять принцыпы работы конвейера, рассмотрим аналогичный пример. Представим себе кондитерскую фабрику, на которой выпечка тортов и их упаковка для отправки производится раздельно. Предположим, что в отделе отправки находится длинный конвейер, вдоль которого располагается 5 рабочих (или ступеней обработки). Каждые 10 секуднд(это время цикла) первый рабочий ставит коробку для торта на ленту конвейера. Эта коробка отправляется ко второму рабочему, который кладет в нее торт. После этого коробка с тортом доставляется третьему рабочему, которой закрывает и запечатывает ее. Затем она поступает к четвертому рабочему, который ставит на ней штамп. Наконец, пятый снимает коробку с конвейерной ленты и помещает ее в большой контейнер для отправки в супермаркет. Примерно тиким же образом действует компьютерный конвейер: каждая команда перед окончательным выполнением прохоодит несколько ступеней обработки.

Предположим, что время цикла у этой машины - 2нс . Тогда для того, чтобы одна команда прошла через конвейер, требуется 10нс. На первый взгляд может показаться, что такой компьютерер будет выполнять 100млн команд в секунд. в действительности же скорость его работы гораздо выше. В течение каждого цикла(2нс) завершается выполнение выполнение одной новой команды, поэтому выполняет не 100, а 500 млн команд в секунду.

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

Поскольку одна команда выполняется за одно обращение, а за одну секунду таких обращений набирается 10в 9 степени / Т, количество команд в секунду также составляет 10 в 9 степени /Т. Скажем, если Т = 2 нс, то каждую секунду выполняется 500млн команд. Для того, чтобы значение MIPS, нужно разделить скорость выполнения команды на 1 миллион; таким образом, (10 в степени 9 /Т)/10 в степени 5 = 1000/Т . В принципе, скорость выполнения команд можно измерять и в миллиардах операций в секунду (Billion Instructions Ptr Second, BIPS), но так никто не делает, и мы не будем.

Суперскалярные архитектуры

Один конвейер — хорошо, а два — еще лучше. Одна из возможных схем процес­сора с двумя конвейерами показана на рис. 2.4. В ее основе лежит конвейер, изо­браженный на рис. 2.3. Здесь общий блок выборки команд вызывает из памяти сразу по две команды и помещает каждую из них в один из конвейеров. Каждый конвейер содержит АЛ У для параллельных операций. Чтобы выполняться па­раллельно, две команды не должны конфликтовать из-за ресурсов (например, регистров), и ни одна из них не должна зависеть от результата выполнения дру­гой. Как и в случае с одним конвейером, либо компилятор должен гарантировать отсутствие нештатных ситуаций (когда, например, аппаратура не обеспечивает проверку команд на несовместимость и при обработке таких команд выдает не­корректный результат), либо за счет дополнительной аппаратуры, конфликты должны выявляться и устраняться непосредственно в ходе выполнения команд.

С1 С2 ' С4 С5

Рис. 2.4. Сдвоенный пятиступенчатый конвейер с общим блоком выборки команд

Сначала конвейеры (как сдвоенные, так и обычные) использовались только в RISC-компьютерах. У процессора 386 и его предшественников их не было. Конвейеры в процессорах компании Intel появились, только начиная с модели 4861. Процессор 486 имел один пятиступенчатый конвейер, a Pentium — два та- ких конвейера. Похожая схема изображена на рис. 2.4, но разделение функций между второй и третьей ступенями (они назывались декодер 1 и декодер 2) было немного другим. Главный конвейер (u-конвейер) мог выполнять произвольные команды. Второй конвейер (v-конвейер) мог выполнять только простые коман­ды с целыми числами, а также одну простую команду с плавающей точкой (FXCH).

Имеются сложные правила определения, является ли пара команд совмести­мой в отношении возможности параллельного выполнения. Если команды, вхо­дящие в пару, были сложными или несовместимыми, выполнялась только одна из них (в u-конвейере). Оставшаяся вторая команда составляла затем пару со следующей командой. Команды всегда выполнялись по порядку. Таким образом, процессор Pentium содержал особые компиляторы, которые объединяли совмес­тимые команды в пары и могли порождать программы, выполняющиеся быстрее, чем в предыдущих версиях. Измерения показали, что программы, в которых применяются операции с целыми числами, при той же тактовой частоте на Pen­tium выполняются почти в два раза быстрее, чем на 486 [168]. Вне всяких сомне­ний, преимущество в скорости было достигнуто благодаря второму конвейеру.

Переход к четырем конвейерам возможен, но требует громоздкого аппаратно­го обеспечения (отметим, что компьютерщики, в отличие от фольклористов, не верят в счастливое число три). Вместо этого используется другой подход. Основ­ная идея — один конвейер с большим количеством функциональных блоков, как показано на рис. 2.5. Pentium И, к примеру, имеет сходную структуру (подробно мы рассмотрим ее в главе 4). В 1987 году для обозначения этого подхода был введен термин суперскалярная архитектура [5]. Однако подобная идея нашла воплощение еще тридцатью годами ранее в компьютере CDC 6600. Этот компьютер вызывал команду из памяти каждые 100 не и помещал ее в один из 10 функцио­нальных блоков для параллельного выполнения. Пока команды выполнялись, центральный процессор вызывал следующую команду.

С4

Рис. 2.5. Суперскалярный процессор с пятью функциональными блоками

Со временем значение понятия «суперскалярный» несколько изменилось. Те­перь суперскалярными называют процессоры, способные запускать несколько ко­манд (зачастую от четырех до шести) за один тактовый цикл. Естественно, чтобы передавать все эти команды, в суперскалярном процессоре должно быть несколь­ко функциональных блоков. Поскольку в процессорах этого типа, как правило, предусматривается один конвейер, его устройство обычно соответствует рис. 2.5.

В свете такой терминологической динамики на сегодняшний день можно ут­верждать, что компьютер 6600 не был суперскалярным с технической точки зре­ния — ведь за один тактовый цикл в нем запускалось не больше одной команды. Однако при этом был достигнут аналогичный результат — команды запускались быстрее, чем выполнялись. На самом деле разница в производительности между

Предсказание переходов.

При выполнении условной команды конвейер приостанавливается так как неизвестно по какой ветви будет продолжаться вычисление. Предсказание переходов позволяет произвести выборку и декодирование команды по одной из ветвей недожидаясь вычисления условия. Способ может быть статическим при этом жестко закладывается какой из результатов более вероятен. Либо динамическим, при нем ведется статистика переходов и вычисление ведется по ветви, результат которой чаще встречается в статистике.

Выполнение по предложению.

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

Шины расширения.

Предназначен для подключения различных контроллеров периферийных устройств с целью увеличения функциональных возможностей компьютера. Шины расширения позволяют подключаемым устройствам использовать системные ресурсы.

Системные ресурсы.

  1. Пространство RAM.

  2. Пространство адресов ввода-вывода(порты ввода-вывода).

  3. Линии запроса на прерывание.

  4. Линии запроса прямого доступа к памяти.

Конфигурирование.

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

Пропускная способность - количество данных, которое можно передать по шине за один раз. Расчитывается умножением разрядности шины на частоту работы.