|
Работа и устройство процессоров
Работа и устройство процессоров
54 53 Проектная работана тему:Работа и устройство процессоровЧто такое процессор. Производители"Мозгом" персонального компьютера является микропроцессор, или центральный процессор -- CPU (Central Processing Unit). Микропроцессор выполняет вычисления и обработку данных (за исключением некоторых математических операций, осуществляемых в компьютерах, имеющих сопроцессор) и, как правило, является самой дорогостоящей микросхемой компьютера. Во всех PC-совместимых компьютерах используются процессоры, совместимые с семейством микросхем Intel, но выпускаются и проектируются они как самой Intel, так и компаниями AMD, Cyrix, IDT и Rise Technologies.В настоящее время Intel доминирует на рынке процессоров, но так было далеко не всегда. Компания Intel прочно ассоциируется с изобретением первого процессора и его появлением на рынке. Но, несмотря на это, два наиболее известных в конце 1970-х годов процессора, используемых в ПК, не принадлежали Intel (один из них, правда, являлся прямым аналогом процессора Intel). В персональных компьютерах того времени чаще всего использовались процессоры Z-80 компании Zilog и 6502 компании MOS Technologies. Процессор Z-80 представлял собой улучшенный и более дешевый аналог процессора 8080. Сегодня подобная ситуация произошла с многочисленными клонами процессоров Intel Pentium, созданными компаниями AMD, Cyrix (теперь VIA), IDT и Rise Technologies. Более того, в некоторых случаях аналог приобретал большую популярность, чем оригинал. Компания AMD в течение прошлого года заняла значительную часть рынка и в результате получила большую прибыль. Но, несмотря на это, многие утверждают, что Intel все еще играет главенствующую роль на рынке процессоров ПК.История развития процессоров до появления первого PCОбратите внимание, что первый процессор был выпущен за 10 лет до появления первого компьютера IBM PC. Он был разработан компанией Intel, назван Intel 4004, а его выпуск состоялся 15 ноября 1971 года. Рабочая частота этого процессора составляла всего 108 кГц (0,108 МГц!). Этот процессор содержал 2 300 транзисторов и производился по 10-микронной технологии. Шина данных имела ширину 4 разряда и позволяла адресовать 640 байт памяти. Процессор 4004 использовался в схемах управления светофоров, анализаторах крови и даже на межпланетной научно-исследовательской станции NASA Pioneer 10!15 ноября 2001 года исполнилось 30 лет со дня появления первого микропроцессора. За эти годы быстродействие процессора увеличилось более чем в 18 500 раз (с 0,108 МГцдо 2 ГГц).В апреле 1972 года Intel выпустила процессор 8008, который работал на частоте 200 кГц. Он содержал 3 500 транзисторов и производился все по той же 10-микронной технологии. Шина данных была 8-разрядной и позволяла адресовать 16 Кбайт памяти. Этот процессор предназначался для использования в терминалах и программируемых калькуляторах. Следующая модель процессора, 8080, была анонсирована в апреле 1974 года. Этот процессор содержал 6 000 транзисторов и мог адресовать уже 64 Кбайт памяти. На нем был собран первый персональный компьютер (не PC) Altair 8800. В этом компьютере использовалась операционная система CP/M, а Microsoft разработала для него интерпретатор языка BASIC. Это была первая массовая модель компьютера, для которого были написаны тысячи программ. Со временем процессор 8080 стал настолько известен, что его начали копировать. В конце 1975 года несколько бывших инженеров Intel, занимавшихся разработкой процессора 8080, создали компанию Zilog. В июле 1976 года эта компания выпустила процессор Z-80, который представлял собой значительно улучшенную версию 8080. Этот процессор был не совместим с 8080 по контактным выводам, но сочетал в себе множество различных функций, например интерфейс памяти и схему обновления ОЗУ (RAM), что давало возможность разработать более дешевые и простые компьютеры. В Z-80 был также включен расширенный набор команд процессора 8080, позволяющий использовать его программное обеспечение. В этот процессор вошли новые команды и внутренние регистры, поэтому программное обеспечение, разработанное для Z-80, могло использоваться практически со всеми версиями 8080. Первоначально процессор Z-80 работал на частоте 2,5 МГц (более поздние версии работали уже на частоте 10 МГц), содержал 8,5 тыс. транзисторов и мог адресовать 64 Кбайт памяти. Компания Radio Shack выбрала процессор Z-80 для своего первого персонального компьютера TRS-80 Model 1. Следует заметить, что Z-80 стал первым процессором, используемым во многих новаторских системах, к числу которых относятся также системы Osborne и Kaypro. Этому примеру последовали другие компании, и вскоре Z-80 стал стандартным процессором для систем, работающих с операционной системой CP/M и наиболее распространенным программным обеспечением того времени. Intel не остановилась на достигнутом и в марте 1976 года выпустила процессор 8085, который содержал 6 500 транзисторов, работал на частоте 5 МГц и производился по 3-микронной технологии. В этом же году компания MOS Technologies выпустила процессор 6502, который был абсолютно непохож на процессоры Intel. Он был разработан группой инженеров компании Motorola. Эта же группа работала над созданием процессора 6800, который в будущем трансформировался в семейство процессоров 68000. Цена первой версии процессора 8080 достигала 300 долларов, в то время как 8-разрядный процессор 6502 стоил всего около 25 долларов. Такая цена была более приемлема для Стива Возняка (Steve Wozniak), который встроил этот процессор в новые модели Apple I и Apple II. Процессор 6502 использовался также в системах, созданных компанией Commodore и другими производителями. Этот процессор и его преемники с успехом работали в игровых компьютерных системах, в число которых вошла приставка Nintendo Entertainment System (NES). Компания Motorola продолжила работу над созданием серии процессоров 68000, которые впоследствии были использованы в компьютерах Apple Macintosh. В настоящее время в этих системах применяется процессор PowerPC, являющийся преемником 68000.В июне 1978 года Intel выпустила процессор 8086, который содержал набор команд под кодовым названием х86. Этот же набор команд до сих пор поддерживается в процессорах Pentium III. Процессор 8086 был полностью 16-разрядным -- внутренние регистры и шина данных. Он содержал 29 000 транзисторов и работал на частоте 5 МГц. Благодаря 20-разрядной шине адреса он мог адресовать 1 Мбайт памяти. При создании процессора 8086, обратная совместимость с 8080 не предусматривалась. Но, в то же время значительное сходство их команд и языка позволили использовать более ранние версии программного обеспечения. Это свойство впоследствии сыграло важную роль в развитии программного обеспечения ПК, включая операционную систему CP/M (8080).Несмотря на высокую эффективность процессора 8086, его цена была все же слишком высока по меркам того времени и, что еще важнее, для его работы требовалась дорогая микросхема поддержки 16-разрядной шины данных. Чтобы уменьшить себестоимость процессора, в 1979 году компания Intel выпустила упрощенную версию 8086, которая получила название 8088. Процессор 8088 использовал те же внутреннее ядро и 16-разрядные регистры, что и 8086, мог адресовать 1 Мбайт памяти, но, в отличие от предыдущей версии, использовал внешнюю 8-разрядную шину данных. Это позволило обеспечить обратную совместимость с ранее разработанным 8-разрядным процессором 8085 и, таким образом, значительно снизить стоимость создаваемых системных плат и компьютеров. Именно поэтому IBM выбрала для своего первого ПК "урезанный" процессор 8088.Это решение имело далеко идущие последствия для всей компьютерной индустрии. Процессор 8088 был полностью программно-совместимым с 8086, что позволяло использовать 16-разрядное программное обеспечение. В процессорах 8085 и 8080 использовался очень похожий набор команд, поэтому программы, написанные для процессоров предыдущих версий, можно было достаточно легко преобразовать для процессора 8088. Это, в свою очередь, позволяло разрабатывать разнообразные программы для персонального компьютера IBM, что явилось залогом его будущего успеха. Не желая останавливаться на полпути, Intel была вынуждена обеспечить поддержку обратной совместимости 8088/8086 с большей частью процессоров, выпущенных в то время. В те годы еще поддерживалась обратная совместимость процессоров, что ничуть не мешало вводить различные новшества или дополнительные возможности. Одним из основных изменений стал переход от 16-разрядной внутренней архитектуры процессора 286 и более ранних версий к 32-разрядной внутренней архитектуре 386-го и последующих процессоров, относящихся к категории IA-32 (32-разрядная архитектура Intel). Однако до появления серийно выпускаемого программного обеспечения, поддерживающего 32-разрядные команды, оставалось еще более 10 лет. Например, в 1985 году с появлением процессора 386DX была представлена новая 32-разрядная архитектура, но только в 1995 году была выпущена Windows 95, ставшая первой широко распространенной операционной системой, поддерживающей архитектуру IA-32. Введение новой архитектуры не повлияло на обратную совместимость процессоров, так как практически все микросхемы IA-32 выполняли и 16-разрядные команды. Не так давно компания Intel выпустила процессор Itanium, представив тем самым новую 64-разрядную архитектуру Intel (IA-64). В течение ближайших нескольких лет эта архитектура будет использоваться в серверных (т. е. в более мощных и дорогих) микросхемах. Поддержка обратной совместимости процессоров IA-32, как вы знаете, выражается в возможности выполнения 16-разрядных команд. Микросхемы IA-64, в свою очередь, могут выполнять не только 32-разрядные (IA-32), но и 16-разрядные (IA-16) команды. В компании AMD была разработана конкурентоспособная, но несколько отличная 64-разрядная архитектура, получившая название x86-64; она будет использоваться в микросхемах с кодовым именем Hammer. Ее основным отличием является то, что архитектура AMD x86-64 более близка к существующей IA-32, чем новая 64-разрядная архитектура IA-64. Предполагается, что микросхемы x86-64 будут выполнять существующий 32-разрядный код быстрее, чем процессоры, созданные на основе IA-64. К сожалению, процессоры x86-64 не позволяют выполнять программный код, разработанный непосредственно для IA-64, что связано с коренными отличиями наборов команд и архитектуры. Процессор Itanium (IA-64) был выпущен в марте 2001 года и уже завоевал солидную репутацию на рынке серверов и рабочих станций. Растущая популярность IBM PC и архитектуры Intel, в некотором роде, ограничила развитие персонального компьютера. Тем не менее, успех IBM PC привел к разработке большого количества программ, периферийных устройств и аксессуаров, в результате чего PC стал промышленным стандартом. Процессор 8088, который использовался в первом PC, содержал около 30 тыс. транзисторов и работал на частоте 5 МГц. Одна из последних версий процессора Pentium III Xeon имеет кэш-память второго уровня объемом 2 Мбайт и содержит 140 млн. транзисторов -- самый большой показатель за всю историю полупроводниковых устройств. На данный момент Intel выпустила процессоры, работающие на частоте свыше 3 ГГц, и следует заметить, что компания AMD практически не отстает от лидера. Все это является практическим подтверждением закона Мура, в соответствии с которым быстродействие процессоров и количество содержащихся в них транзисторов удваивается каждые 1,5-2 года.Параметры процессоровПри описании параметров и устройства процессоров часто возникает путаница. Рассмотрим некоторые характеристики процессоров, в том числе разрядность шины данных и шины адреса, а также быстродействие. Процессоры можно классифицировать по двум основным параметрам: разрядности и быстродействию. Быстродействие процессора -- довольно простой параметр. Оно измеряется в мегагерцах (МГц); 1 МГц равен миллиону тактов в секунду. Чем выше быстродействие, тем лучше (тем быстрее процессор). Разрядность процессора -- параметр более сложный. В процессор входит три важных устройства, основной характеристикой которых является разрядность: - шина ввода и вывода данных; внутренние регистры;-шина адреса памяти.Шина данныхКогда говорят о шине процессора, чаще всего имеют в виду шину данных, представленную как набор соединений (или выводов) для передачи или приема данных. Чем больше сигналов одновременно поступает на шину, тем больше данных передается по ней за определенный интервал времени и тем быстрее она работает. Разрядность шины данных подобна количеству полос движения на скоростной автомагистрали; точно так же, как увеличение количества полос позволяет увеличить поток машин по трассе, увеличение разрядности позволяет повысить производительность. Данные в компьютере передаются в виде цифр через одинаковые промежутки времени. Для передачи единичного бита данных в определенный временной интервал посылается сигнал напряжения высокого уровня (около 5 В), а для передачи нулевого бита данных -- сигнал напряжения низкого уровня (около 0 В). Чем больше линий, тем больше битов можно передать за одно и то же время. Современные процессоры типа Pentium имеют 64-разрядные внешние шины данных. Это означает, что процессоры Pentium, включая Pentium 4, Athlon и даже Itanium, могут передавать в системную память (или получать из нее) одновременно 64 бит данных. Представим себе, что шина -- это автомагистраль с движущимися по ней автомобилями. Если автомагистраль имеет всего по одной полосе движения в каждую сторону, то по ней в одном направлении в определенный момент времени может проехать только одна машина. Если вы хотите увеличить пропускную способность дороги, например, вдвое, вам придется ее расширить, добавив еще по одной полосе движения в каждом направлении. Таким образом, 8-разрядную микросхему можно представить в виде однополосной автомагистрали, поскольку в каждый момент времени по ней проходит только один байт данных (один байт равен восьми битам). Аналогично, 32-разрядная шина данных может передавать одновременно четыре байта информации, а 64-разрядная подобна скоростной автостраде с восемью полосами движения. Разрядность шины данных процессора определяет также разрядность банка памяти. Это означает, что 32-разрядный процессор, например класса 486, считывает из памяти или записывает в память 32 бита одновременно. Шина адресаШина адреса представляет собой набор проводников; по ним передается адрес ячейки памяти, в которую или из которой пересылаются данные. Как и в шине данных, по каждому проводнику передается один бит адреса, соответствующий одной цифре в адресе. Увеличение количества проводников (разрядов), используемых для формирования адреса, позволяет увеличить количество адресуемых ячеек. Разрядность шины адреса определяет максимальный объем памяти, адресуемой процессором. Представьте себе следующее. Если шина данных сравнивалась с автострадой, а ее разрядность -- с количеством полос движения, то шину адреса можно ассоциировать с нумерацией домов или улиц. Количество линий в шине эквивалентно количеству цифр в номере дома. Например, если на какой-то гипотетической улице номера домов не могут состоять более чем из двух цифр (десятичных), то количество домов на ней не может быть больше ста (от 00 до 99), т. е. 102. При трехзначных номерах количество возможных адресов возрастает до 103 (от 000 до 999) и т. д. В компьютерах применяется двоичная система счисления, поэтому при двухразрядной адресации можно выбрать только четыре ячейки (с адресами 00, 01, 10 и 11), т. е. 22, при трехразрядной -- восемь (от 000 до 111), т. е. 23. Например, в процессорах 8086 и 8088 используется 20-разрядная шина адреса, поэтому они могут адресовать 220 (1 048 576) байт, или 1 Мбайт, памяти. Шины данных и адреса независимы, и разработчики микросхем выбирают их разрядность по своему усмотрению, но, чем больше разрядов в шине данных, тем больше их и в шине адреса. Разрядность этих шин является показателем возможностей процессора: количество разрядов в шине данных определяет способность процессора обмениваться информацией, а разрядность шины адреса -- объем памяти, с которым он может работать.Внутренние регистрыКоличество битов данных, которые может обработать процессор за один прием, характеризуется разрядностью внутренних регистров. Регистр -- это, по существу, ячейка памяти внутри процессора; например, процессор может складывать числа, записанные в двух различных регистрах, а результат сохранять в третьем регистре. Разрядность регистра определяет количество разрядов обрабатываемых процессором данных, а также характеристики программного обеспечения и команд, выполняемых чипом. Например, процессоры с 32-разрядными внутренними регистрами могут выполнять 32-разрядные команды, которые обрабатывают данные 32-разрядными порциями, а процессоры с 16-разрядными регистрами этого делать не могут. Во всех современных процессорах внутренние регистры являются 32-разрядными. Процессор Itanium имеет 64-разрядные внутренние регистры, которые необходимы для более полного использования функциональных возможностей новых версий операционных систем и программного обеспечения. В некоторых процессорах разрядность внутренней шины данных (а шина состоит из линий передачи данных и регистров!) больше, чем разрядность внешней. Так, например, в процессорах 8088 и 386SX разрядность внутренней шины только вдвое больше разрядности внешней шины. Такие процессоры (их часто называют половинчатыми или гибридными) обычно являются более дешевыми вариантами исходных. Например, в процессоре 386SХ внутренние операции 32-разрядные, а связь с внешним миром осуществляется через 16-разрядную внешнюю шину. Это позволяет разработчикам проектировать относительно дешевые системные платы с 16-разрядной шиной данных, сохраняя при этом совместимость с 32-разрядным процессором 386.Если разрядность внутренних регистров больше разрядности внешней шины данных, то для их полной загрузки необходимо несколько циклов считывания. Например, в процессорах 386DХ и 386SХ внутренние регистры 32-разрядные, но процессору 386SХ для их загрузки необходимо выполнить два цикла считывания, а процессору 386DХ достаточно одного. Аналогично передаются данные от регистров к системной шине. В процессорах Pentium шина данных 64-разрядная, а регистры 32-разрядные. Такое построение на первый взгляд кажется странным, если не учитывать, что в этом процессоре для обработки информации служат два 32-разрядных параллельных конвейера. Pentium во многом подобен двум 32-разрядным процессорам, объединенным в одном корпусе, а 64-разрядная шина данных позволяет быстрее заполнить рабочие регистры. Архитектура процессора с несколькими конвейерами называется суперскалярной. Современные процессоры шестого поколения, например Pentium Pro и Pentium II/III, имеют целых шесть внутренних конвейеров для выполняющихся команд. Хотя некоторые из указанных внутренних конвейеров специализированы (т. е. предназначены для выполнения специальных функций), эти процессоры могут все же выполнять три команды за один цикл. В последней версии процессора Itanium используются 10-ступенчатые параллельные конвейеры, которые позволяют выполнять до 20 операций в течение одного такта.Быстродействие процессораБыстродействие -- это одна из характеристик процессора, которую зачастую толкуют по-разному. Быстродействие компьютера во многом зависит от тактовой частоты, обычно измеряемой в мегагерцах (МГц). Она определяется параметрами кварцевого резонатора, представляющего собой кристалл кварца, заключенный в небольшой оловянный контейнер. Под воздействием электрического напряжения в кристалле кварца возникают колебания электрического тока с частотой, определяемой формой и размером кристалла. Частота этого переменного тока и называется тактовой частотой. Микросхемы обычного компьютера работают на частоте нескольких миллионов герц. (Герц -- одно колебание в секунду.) Быстродействие измеряется в мегагерцах, т. е. в миллионах циклов в секунду. Наименьшей единицей измерения времени (квантом) для процессора как логического устройства является период тактовой частоты, или просто такт. На каждую операцию затрачивается минимум один такт. Например, обмен данными с памятью процессор Pentium II выполняет за три такта плюс несколько циклов ожидания. (Цикл ожидания -- это такт, в котором ничего не происходит; он необходим только для того, чтобы процессор не "убегал" вперед от менее быстродействующих узлов компьютера.) Различается и время, затрачиваемое на выполнение команд. Различное количество тактов, необходимых для выполнения команд, затрудняет сравнение производительности компьютеров, основанное только на их тактовой частоте (т. е. количестве тактов в секунду). Почему при одной и той же тактовой частоте один из процессоров работает быстрее другого? Причина кроется в производительности. Оценивать эффективность центрального процессора довольно сложно. Центральные процессоры с различными внутренними архитектурами выполняют команды по-разному: одни и те же команды в разных процессорах могут выполняться либо быстрее, либо медленнее. Чтобы найти удовлетворительную меру для сравнения центральных процессоров с различной архитектурой, работающих на разных тактовых частотах, Intel изобрела специфический ряд эталонных тестов, которые можно выполнить на микросхемах Intel, чтобы измерить относительную эффективность процессоров. Эта система тестов недавно была модифицирована для того, чтобы можно было измерять эффективность 32-разрядных процессоров; она называется индексом (или показателем) iCOMP 2.0 (intel Comparative Microprocessor Performance -- сравнительная эффективность микропроцессора Intel). В настоящее время используется третья версия этого индекса -- iCOMP 3.0.Почему при одной и той же тактовой частоте один из процессоров работает быстрее другого? Причина кроется в производительности. Процессор 486 обладает более высоким быстродействием по сравнению с 386-м, так как на выполнение команды ему требуется в среднем в два раза меньше тактов, чем 386-му. А процессору Pentium -- в два раза меньше тактов, чем 486-му. Таким образом, процессор 486 с тактовой частотой 133 МГц (типа AMD 5x86-133) работает даже медленнее, чем Pentium с тактовой частотой 75 МГц! Это происходит потому, что при одной и той же частоте Pentium выполняет вдвое больше команд, чем процессор 486. Pentium II и III -- приблизительно на 50% быстрее процессора Pentium, работающего на той же частоте, потому что они могут выполнять значительно больше команд в течение того же количества циклов.Сравнивая относительную эффективность процессоров, можно увидеть, что производительность процессора Pentium III, работающего на тактовой частоте 1 000 МГц, теоретически равна производительности процессора Pentium, работающего на тактовой частоте 1 500 МГц, которая, в свою очередь, теоретически равна производительности процессора 486, работающего на тактовой частоте 3 000 МГц, а она, в свою очередь, теоретически равна производительности процессоров 386 или 286, работающих на тактовой частоте 6 000 МГц, или же 8088-го, работающего на тактовой частоте 12 000 МГц. Если учесть, что первоначальный PC с процессором 8088 работал на тактовой частоте, равной всего лишь 4,77 МГц, то сегодняшние компьютеры работают более чем в 1,5 тыс. раз быстрее. Поэтому нельзя сравнивать производительность компьютеров, основываясь только на тактовой частоте; необходимо принимать во внимание то, что на эффективность системы влияют и другие факторы.Эффективность процессоровПроцессоры Athlon XP, созданные в компании AMD, отличаются прекрасными рабочими характеристиками и обладают целым рядом других качеств, но при этом, к сожалению, возрождают печально известные традиции оценки эффективности. Обычно приводится некая условная величина, выраженная в мегагерцах, которая не столько определяет фактическое быстродействие той или иной микросхемы, сколько указывает на приблизительную оценку ее эффективности по отношению к процессору Intel Pentium 4 первого поколения, имеющему примерно те же параметры. Как бы странно это ни звучало, но это действительно так! Испытание рабочих характеристик, проведенное в компании AMD, показывает, что процессор Athlon, имеющий тактовую частоту 1,8 ГГц, работает примерно с той же производительностью, что и процессор Pentium 4 с рабочей частотой 2,2 ГГц. На этом основании данному процессору присваивается имя "Athlon XP 2200+", где число "2200+" обозначает его эффективность по отношению к процессору Pentium 4, выраженную в мегагерцах. Подобная схема сбыта продукции, при которой процессору присваивается значение, определяющее не столько реальную, сколько относительную оценку эффективности, ничего хорошего не дает. В определенных случаях такой маркетинг оставляет у потребителей весьма негативное впечатление, особенно когда выясняется реальная рабочая частота приобретенных ими процессоров и систем. Рабочие характеристики процессоров, приводимые AMD, можно приравнять к коэффициенту резкости погоды, который часто используется в прогнозах погоды в зимнее время. С одной стороны, существует реальная температура, а с другой -- есть так называемый коэффициент резкости погоды, который представляет собой приблизительную оценку холода таким, каким он "ощущается". Расчетные значения, присваиваемые новым процессорам AMD Athlon XP, напоминают подобный "коэффициент производительности", величина которого определяет эффективность того или иного процессора по сравнению с Pentium 4. (Правда, AMD настаивает, что приводимые оценки эффективности не имеют непосредственного отношения к Pentium 4.)Проблема маркетинга AMD выражается в следующем: как продавать процессор, который выполняет те или другие операции быстрее, чем аналогичные модели основного конкурента с практически равными тактовыми частотами? Например, процессор AMD Athlon XP, имеющий тактовую частоту 1,8 ГГц, работает значительно быстрее, чем процессор Pentium 4 с частотой 1,8 ГГц, и достигает производительности, характерной для Pentium 4 с рабочей частотой 2,2 ГГц. Столь очевидная несоразмерность производительности процессоров связана с применением в микросхемах P4 совершенно новой архитектуры с более глубокой конвейерной обработкой команд. Pentium 4 имеет 20-ступенчатый конвейер, соответствующий 11-ступенчатому конвейеру процессоров Athlon или 10-ступенчатому конвейеру процессоров Pentium Ш/Celeron. При более глубокой конвейерной обработке команды разбиваются на небольшие микрокоманды, что позволяет достичь более высокой тактовой частоты при использовании одной и той же кремниевой технологии. Однако это также означает, что по сравнению с процессором Athlon (или Pentium III) в каждом цикле выполняется меньше команд.Дело в том, что при сбоях на этапе предсказания множественного перехода или упреждающего выполнения (что свойственно процессору при попытке предварительного определения команд) происходит удаление всех имеющихся данных и повторное заполнение конвейера**. Таким образом, сравнивая рабочие характеристики процессоров Athlon, Pentium III и Pentium 4, работающих на одной и той же тактовой частоте, можно обнаружить, что при выполнении стандартных эталонных тестов процессоры Athlon и Pentium III оказываются более эффективными, поскольку выполняют в течение цикла большее количество команд, чем Pentium 4.На первый взгляд это кажется недостатком процессора Pentium 4, но в действительности мы имеем дело с особенностью его конструкции. Разработчики Intel приводят следующие аргументы: несмотря на то что использование более глубокой конвейерной обработки команд может привести к 30%-му снижению общей эффективности процессора, это позволяет увеличить его тактовую частоту по крайней мере на 50% по сравнению с процессорами Athlon или Pentium III, имеющими более короткие конвейеры. Применение 20-ступенчатого конвейера в архитектуре P4 позволяет достичь более высоких тактовых частот при использовании стандартной кремниевой технологии. Например, оригинальные процессоры Athlon XP и Pentium 4 создавались с помощью одной и той же 0,18-микронной технологии (этот показатель определяет линейную ширину компонентов, вытравленных на микросхемах). 20-ступенчатый конвейер архитектуры P4 позволяет при использовании 0,18-микронной технологии достичь тактовой частоты 2,0 ГГц, в то время как при тех же условиях частота процессора Athlon с 11-ступенчатым конвейером достигает 1,73 ГГц, а процессоров Pentium III/Celeron с 10-ступенчатым конвейером -- всего лишь 1,13 ГГц. Благодаря использованию новой 0,13-микронной технологии тактовая частота процессора Pentium 4 увеличилась до 2,53 ГГц, в то время как максимальная рабочая частота Athlon XP достигла всего лишь 1,8 ГГц. Несмотря на то, что Pentium 4 выполняет в каждом цикле меньшее количество команд, более высокая частота периодической подачи импульсов позволяет в полной мере компенсировать снижение эффективности. Таким образом, сравнение процессоров Pentium 4 и Athlon XP указывает на то, что высокая тактовая частота первого процессора практически уравновешивается более высокой скоростью обработки данных второго. К сожалению, при высоких тактовых частотах оценка эффективности процессоров становится все более сложной. Это связано с тем, что в процессорах Intel с рабочей частотой более 2 ГГц использован 0,13-микронный (уменьшенный) кристалл, удвоена кэш-память второго уровня (с 256 до 512 Кбайт), а рабочая частота шины процессора увеличена с 400 до 533 МГц. Существующая система оценки эффективности, которая может использоваться только для сравнения создаваемых процессоров с более старым (и более медленным) 0,18-микронным процессором Pentium 4, не совсем подходит для более новых 0,13-микронных Pentium 4, особенно для тех, которые имеют шину процессора с тактовой частотой 533 МГц. Проблема заключается в шкале сравнительной оценки компании AMD, где в качестве точки отсчета используется некая переменная величина. Существует еще одна проблема: результаты сравнительной оценки непосредственно зависят от выполняемых эталонных тестов. Переработка приложений и операционных систем для повышения эффективности 20-ступенчатого конвейера процессора Pentium 4 позволила снизить количество командных предсказаний и возможных ошибок внутреннего процессора, что привело к уменьшению времени, необходимого для удаления имеющихся данных и повторного заполнения конвейера. В свою очередь, это привело к повышению общей эффективности выполнения команд для Pentium 4, в результате чего современное программное обеспечение, оптимизированное для более глубокого конвейера, будет выполняться процессором Pentium 4 значительно быстрее. Подобная ситуация приводит к сохранению негативного отношения к относительным оценкам компании AMD, следствием чего может быть их неточная интерпретация в будущем.Нет никаких сомнений в том, что параметры новых процессоров Athlon XP, представленные компанией AMD, достаточно точны: они превосходят менее эффективные процессоры, имеющие более высокую тактовую частоту. Единственное отличие состоит в том, что архитектура Pentium 4 позволяет достичь значительно более высокой рабочей частоты посредством одного и того же технологического процесса. Во многих системах тактовая частота процессора выводится на экран компьютера непосредственно во время начальной загрузки. В операционной системе Windows XP тактовая частота центрального процессора указана во вкладке General (Общие) меню System Properties (Система: Свойства). В то же время AMD предпочла бы не указывать непосредственное быстродействие процессора. Фактически AMD не рекомендует использовать без специальной проверки системные платы, предназначенные для Athlon XP, в том случае, если они указывают действительную тактовую частоту процессора. В будущем любопытному пользователю, желающему выяснить фактическую тактовую частоту процессора, придется воспользоваться соответствующей программой сторонних разработчиков, например SiSoft Sandra или Intel Frequency ID Utility.Одно можно сказать достаточно определенно: приблизительные значения тактовой частоты, выраженные в мегагерцах (МГц) или гигагерцах (ГГц), далеко не всегда являются надежным способом сравнения процессоров, поэтому генерирование псевдомегагерц может еще больше запутать непосвященного человека.КонвейерКонвейер (англ. conveyer, от convey -- перевозить), транспортёр, машина непрерывного действия для перемещения сыпучих, кусковых или штучных грузов. Идея конвейера, давным-давно предложенная Генри Фордом, состоит в том, что производительность цепочки последовательных действий определяется не сложностью этой цепочки, а лишь длительностью самой сложной операции. Иными словами, совершенно неважно, сколько человек занимаются производством автомобиля и как долго длится его изготовление в целом, - важно то, что если каждый человек в цепочке тратит, скажем, на свою операцию одну минуту, то с конвейера будет сходить один автомобиль в минуту, ни больше и ни меньше; независимо от того, сколько операций нужно совершить с отдельным автомобилем и сколько заняла бы его сборка одним человеком. Применительно к процессорам принцип конвейера означает, что если мы сумеем разбить выполнение машинной инструкции на несколько этапов, то тактовая частота (а вернее, скорость, с которой процессор забирает данные на исполнение и выдает результаты) будет обратно пропорциональна времени выполнения самого медленного этапа. Если это время удастся сделать достаточно малым (а чем больше этапов на конвейере, тем они короче), то мы сумеем резко повысить тактовую частоту, а значит, и производительность процессора. Процедуру выполнения практически любой инструкции можно разбить как минимум на пять непересекающихся этапов:1.Выборка инструкции (FETCH) из памяти. Из программы извлекается инструкция, которую нужно выполнить.2.Декодирование инструкции (DECODE). Процессор обрабатывает полученную команду, и переправляет запрос на нужное исполнительное устройство.3.Подготовка исходных данных для выполнения инструкции.4.Собственно выполнение инструкции (EXECUTE).5.Сохранение полученных результатов.Конвейеризация потенциально применима к любой процессорной архитектуре, независимо от набора команд и положенных в ее основу принципов. Даже самый первый x86-процессор, Intel 8086, уже содержал своеобразный примитивный "двухстадийный конвейер" - выборка новых инструкций (FETCH) и их исполнение осуществлялись в нем независимо друг от друга. Однако реализовать что-то более сложное для CISC-процессоров оказалось трудно: декодирование неоднородных CISC-инструкций и их очень сильно различающаяся сложность привели к тому, что конвейер получается чересчур замысловатым, катастрофически усложняя процессор(о CISC и RISC пойдет немного дальше). Подобных трудностей у RISC-архитектуры гораздо меньше (а SPARC и MIPS, например, и вовсе были специально оптимизированы для конвейеризации), так что конвейеризированные RISC-процессоры появились на рынке много раньше, чем аналогичные x86.Недостатки конвейера неочевидны, но, как обычно и бывает, из-за нескольких "мелочей" реализовать грамотно организованный конвейер совсем не просто.Основных проблем три.1.Необходимость наличия блокировок конвейера. Дело в том, что время исполнения большинства инструкций может очень сильно варьироваться. Скажем, умножение (и тем более деление) чисел требуют (на стадии EXECUTE) нескольких тактов, а сложение или побитовые операции - одного такта; а для операций Load и Store, которые могут обращаться к разным уровням кэш-памяти или к оперативной памяти, это время вообще не определено (и может достигать сотен тактов). Соответственно, должен быть какой-то механизм, который бы "притормаживал" выборку и декодирование новых инструкций до тех пор, пока не будут завершены старые. Методов решения этой проблемы много, но их развитие приводит к одному - в процессорах прямо перед исполнительными устройствами появляются специальные блоки-диспетчеры (dispatcher), которые накапливают подготовленные к исполнению инструкции, отслеживают выполнение ранее запущенных инструкций и по мере освобождения исполнительных устройств отправляют на них новые инструкции. Даже если исполнение займет много тактов - внутренняя очередь диспетчера позволит в большинстве случаев не останавливать подготавливающий все новые и новые инструкции конвейер [Новые инструкции тоже не каждый такт удается декодировать, так что возможна и обратная ситуация: новых инструкций за такт не появилось, и диспетчер отправляет инструкции на выполнение "из старых запасов"]. Так в процессоре возникает разделение на две независимо работающие подсистемы: Front-end (блоки, занимающиеся декодированием инструкций и их подготовкой к исполнению) и Back-end (блоки, собственно исполняющие инструкции).2.Необходимость наличия системы сброса процессора. Поскольку операции FETCH и EXECUTE всегда выделены в отдельные стадии конвейера, то в тех случаях, когда в программном коде происходит разветвление (условный переход), зачастую оказывается, что по какой из веток пойти - пока неизвестно: инструкция, вычисляющая код условия, еще не выполнена. В результате процессор вынужден либо приостанавливать выборку новых инструкций до тех пор, пока не будет вычислен код условия (а это может занять очень много времени и в типичном цикле страшно затормозит процессор), либо, руководствуясь соображениями блока предсказания переходов, "угадывать", какой из переходов скорее всего окажется правильным.3.Наконец, конвейер обычно требует наличия специального планировщика (scheduler), призванного решать конфликты по данным. Если в программе идет зависимая цепочка инструкций (когда инструкция-2, следующая за инструкцией-1, использует для своих вычислений данные, только что вычисленные инструкцией-1), а время исполнения одной инструкции (от момента запуска на стадию EXECUTE и до записи полученных результатов в регистры) превосходит один такт, то мы вынуждены придержать выполнение очередной инструкции до тех пор, пока не будет полностью выполнена ее предшественница. К примеру, если мы вычисляем выражение вида A*B+C с сохранением результата в переменной X (XfA*B+C), то процессор, выполняя соответствующую выражению цепочку из двух команд типа R4fR1*R2; R0fR3+R4, должен вначале дождаться, пока первая инструкция сохранит результат умножения A*B, и только потом прибавлять к полученному результату число С. Цепочки зависимых инструкций в программах - скорее правило, нежели исключение, а исполнение команды с записью результата в регистры за один такт - наоборот, скорее исключение, нежели правило, поэтому в той или иной степени с проблемой зависимости по данным любая конвейерная архитектура обязательно сталкивается. Оттого-то в конвейере и появляются сложные декодеры, заранее выявляющие эти зависимости, и планировщики, которые запускают инструкции на исполнение, выдерживая паузу между запуском главной инструкции и зависимой от нее. Идея конвейера в процессоре очень красива на словах и в теории, однако реализовать ее даже в простом варианте чрезвычайно трудно. Но выгода от конвейеризации столь велика и несомненна, что приходится с этими трудностями мириться, ведь ничего лучшего до сих пор не придумано. В 1991-92 годах корпорация Intel, освоив производство сложнейших кристаллов с более чем миллионом транзисторов, выпустила i486 - классический CISC-процессор архитектуры x86, но с пятистадийным конвейером. Чтобы вы смогли оценить этот рывок, приведу две цифры: тактовую частоту по сравнению с i386 введение конвейера позволило увеличить втрое, а производительность на единицу частоты - вдвое. В i386 многие инструкции выполнялись за несколько тактов; а в i486 среднее "время" исполнения инструкции в тактах удалось снизить почти вдвое. Правда, расплатой за это стала чудовищная сложность ядра i486; но такие "мелочи" по меркам индустрии центральных процессоров - пустяк: быстро растущие технологические возможности кремниевой технологии уже через пару лет позволили освоить производство i486 всем желающим. Но к тому моменту RISC-архитектуры сделали еще один шаг вперед - к суперскалярным процессорам.
Страницы: 1, 2, 3, 4
|
|