Современные микропроцессоры компании АМD. Современные микропроцессоры компании АМD Что является основой современных микропроцессоров

ТЕМА 4 Микропроцессоры

ЛЕКЦИЯ 7

Вопросы лекции:

1. Общие сведения о микропроцессорах.

2.

Общие сведения о микропроцессорах

Микропроцессором называется программно-управляемое устройство для обработки цифровой информации и управления процессом обработки, реализованное в виде большой (БИС) или сверхбольшой (СБИС) интегральной микросхемы. Таким образом, микропроцессор играет роль процессора в цифровых системах различного назначения. Это могут быть системы обработки информации (компьютеры), системы управления объектами и процессами, информационно-измерительные системы и другие виды систем, используемых в промышленности, бытовой технике, аппаратуре связи и многих других областях применения.

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

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

Классификация микропроцессоров

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

Рис. 1.3. Классификация современных микропроцессоров по функциональному признаку

Среди специализированных микропроцессоров наиболее широкое распространение получили микроконтроллеры, предназначенные для выполнения функций управления различными объектами, и цифровые процессоры сигналов (DSP - Digital Signal Processor), которые ориентированы на реализацию процедур, обеспе­чивающих необходимое преобразование аналоговых сигналов, представленных в цифровой форме (в виде последовательности числовых значений).

Микропроцессоры общего назначения предназначены для решения широкого круга задач обработки разнообразной информации. Их основной областью использования являются персональные компьютеры, рабочие станции, серверы и другие цифровые системы массового применения. К этому классу относятся CISC-процессоры Pentium компании «Intel», K7 - компании «Advanced MicroDevices» (AMD), 680x0 - компании «Motorola», RISC-процессоры PowerPC, выпускаемые компаниями «Motorola» и IBM, SPARC - компании «Sun Microsystems» и ряд других изделий различных производителей.

Расширение области применения таких микропроцессоров достигается главным образом путем роста производительности, благодаря чему увеличивается круг задач, который можно решать с их использованием. Поэтому повышение производительности является магистральным направлением развития этого класса микропроцессоров. Обычно это 32-разрядные микропроцессоры (некоторые микропроцессоры этого класса имеют 64-разрядную или 128-разрядную структуру), которые изготавливаются по самой современной промышленной технологии, обеспечивающей максимальную частоту функционирования.

Ряд наиболее популярных микропроцессоров этого класса (Pentium, AMD K7 и некоторые другие) следует отнести к CISC-процессорам, так как они выполняют большой набор разноформатных команд с использованием многочисленных способов адресации. Однако в их внутренней структуре содержится RISC-процессор, который выполняет поступившие команды после их преобразования в последовательность простых RISC-операций. Ряд других микропроцессоров этого класса непосредственно реализует RISC-архитектуру. Поэтому можно считать, что использование RISC-архитектуры характерно 1ля большинства этих микропроцессоров. Однако в ряде последних разработок (Itanium, D A8500) некоторых ведущих производителей успешно применяются принципы VLIW-apхитектуры, которая может составить конкуренцию RISC-архитектуре в соревновании за достижение наивысшей производительности.

Практически все современные микропроцессоры этого класса используют Гарвардс­кую внутреннюю архитектуру, где разделение потоков команд и данных реализуется с помощью отдельных блоков кэш-памяти. В большинстве случаев они имеют суперскалярную структуру с несколькими исполнительными конвейерами (до 10 в современных моделях), которые содержат до 20 ступеней.

Благодаря своей универсальности микропроцессоры общего назначения используются также в специализированных системах, где требуется высокая производительность. На их основе реализуются одноплатные компьютеры и промышленные компьютеры, которые применяются в системах управления различными объектами. Одноплатные (встраиваемые) компьютеры содержат на плате необходимые дополнительные микросхемы, обеспечивающие их специализированное применение, и предназначены доя встраивания в аппаратуру различного назначения. Промышленные компьютеры размещаются в корпусах специальной конструкции, обеспечивающих их надежную работу в жестких производственных условиях. Обычно такие компьютеры работают без стандартных периферийных устройств (монитор, клавиатура, «мышь») или используют специальные варианты этих устройств, модифицированные с учетом специфических условий применения.

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

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

В связи с широким диапазоном решаемых задач управления требования, предъявля­емые к производительности процессора, объему внутренней памяти команд и данных, набору необходимых периферийных устройств, оказываются весьма разнообразными. Для удовлетворения запросов потребителей выпускается большая номенклатура микроконтроллеров, которые принято подразделять на 8-, 16- и 32-разрядные.

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

Для этих микроконтроллеров характерна реализация Гарвардской архитектуры, где используется отдельная память для хранения программ и данных. Для хранения программ в различных типах микроконтроллеров применяется либо масочно-программируемое ПЗУ (ROM), либо однократно-программируемое ПЗУ (PROM), либо электрически репрограммируемое ПЗУ (EPROM, EEPROM или Flash). Внутренняя память программ обычно имеет объем от нескольких единиц до десятков Кбайт. Для хранения данных используется регистровый блок, организованный в виде нескольких регистровых банков, или внутреннее ОЗУ. Объем внутренней памяти данных составляет от нескольких десятков байт до нескольких Кбайт. Ряд микроконтроллеров этой группы позволяет в случае необходимости дополнительно подключать внешнюю память команд и данных, объемом до 64-256 Кбайт.

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

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

32-разрядные микроконтроллеры содержат высокопроизводительный процессор, соответствующий по своим возможностям младшим моделям микропроцессоров общего назначения. В ряде случаев процессор, используемый в этих микроконтроллерах, аналогичен CISC- или RISC-процессорам, которые выпускаются или выпускались ранее в качестве микропроцессоров общего назначения. Например, в 32-разрядных микроконтроллерах компании Intel используется процессор i386, в микроконтроллерах компании Motorola широко применяется процессор 680x0, в ряде других микроконтроллеров в качестве процессорного ядра служат RISC-процессоры типа PowerPC. На базе данных процессоров были реализованы различные модели персональных компьютеров. Введение этих процессоров в состав микроконтроллеров позволяет использовать в соответствующих системах управления огромный объем прикладного и системного программного обеспечения, созданный ранее для соответствующих персональных компьютеров.

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

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

Цифровые процессоры сигналов (ЦПС) представляют класс специализированных микропроцессоров, ориентированных на цифровую обработку поступающих аналоговых сигналов. Специфической особенностью алгоритмов обработки аналоговых сигналов определяется необходимость последовательного выполнения ряда команд умножения-сложения с накоплением промежуточного результата в регистре-аккумуляторе. Поэтому ap-i/тектура ЦПС ориентирована на реализацию быстрого выполнения операций такого рода. Набор команд этих процессоров содержит специальные команды MAC (Multiplication Aith Accumlation), реализующие эти операции.

Значение поступившего сигнала может быть представлено в виде числа с фиксированной или с «плавающей» точкой. В соответствии с этим ЦПС делятся на процессоры, обрабатывающие числа с фиксированной или плавающей точкой. Более простые и дешевые ЦПС с фиксированной точкой обычно обрабатывают 16-разрядные операнды, представленные а виде правильной дроби. Однако ограниченная разрядность в ряде случаев не позволяет обеспечить необходимую точность преобразования. Поэтому в ЦПС с фиксированной точкой, выпускаемых компанией «Motorola», принято 24-разрядное представление операндов. Наиболее высокая точность обработки обеспечивается в случае представления даныхв формате с «плавающей» точкой. В ЦПС, обрабатывающих данные с «плавающей» точкой, обычно используется 32-разрядный формат их представления.

Для повышения производительности при выполнении специфических операций обработки сигналов в большинстве ЦПС реализуется Гарвардская архитектура с использованием нескольких шин для передачи адресов, команд и данных. В ряде ЦПС нашли применение также некоторые черты VLIW-архитектуры: совмещение в одной команде нескольку операций, обеспечивающих обработку имеющихся данных и одновременную загрузку = исполнительный конвейер новых данных для последующей обработки.

Архитектурой процессора называется комплекс его аппаратных и программных средств, предоставляемых пользователю. В это общее понятие входит набор программно-доступных регистров и исполнительных (операционных) устройств, система основных команд и способов адресации, объем и структура адресуемой памяти, виды и способы обработки прерываний.

Например, все модификации процессоров Pentium, Celeron, i486 и i386 имеют архитектуру IA-32 (Intel Architecture - 32 bit), которая характеризуется стандартным набором регистров, предоставляемых пользователю, общей системой основных команд и способов организации и адресации памяти, одинаковой реализацией защиты памяти и обслуживания прерываний.

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

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

Программный счетчик PC (или CS + IP в архитектуре микропроцессоров Intel);

Регистр состояния SR (или EFLAGS);

Регистры управления режимом работы процессора CR (Control Register);

Регистры, реализующие сегментную и страничную организацию памяти;

Регистры, обеспечивающие отладку программ и тестирование процессора.

Кроме того, различные модели микропроцессоров содержат ряд других специализированных регистров.

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

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

Структура микропроцессора определяет состав и взаимодействие основных устройств и блоков, размещенных на его кристалле. В эту структуру входят:

Центральный процессор (процессорное ядро), состоящее из устройства управления (УУ), одного или нескольких операционных устройств (ОУ);

Внутренняя память (РЗУ, кэш-память, блоки оперативной и постоянной памяти);

Интерфейсный блок, обеспечивающий выход на системную шину и обмен данными с внешними устройствами через параллельные или последовательные порты ввода/вывода;

Периферийные устройства (таймерные модули, аналого-цифровые преобразователи, специализированные контроллеры);

Различные вспомогательные схемы (генератор тактовых импульсов, схемы для выполнения отладки и тестирования, сторожевой таймер и ряд других).

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

Архитектура и структура микропроцессора тесно взаимосвязаны. Реализация тех или иных архитектурных особенностей требует введения в структуру микропроцессора необходимых аппаратных средств (устройств и блоков) и обеспечения соответствующих механизмов их совместного функционирования.

В современных микропроцессорах реализуются следующие варианты архитектур.

CISC(Complex Instruction Set Computer)-apxumeкmypa реализована во многих типах микропроцессоров, выполняющих большой набор разноформатных команд с использованием многочисленных способов адресации. Эта классическая архитектура процессоров, которая начала свое развитие в 1940-х годах с появлением первых компьютеров. Типичным примером CISC-процессоров являются микропроцессоры семейства Pentium. Они выполняют более 200 команд разной степени сложности, которые имеют размер от 1 до 15 байт и обеспечивают более 10 различных способов адресации. Такое большое многообразие выполняемых команд и способов адресации позволяет программисту реализовать наиболее эффективные алгоритмы решения различных задач. Однако при этом существенно усложняется структура микропроцессора, особенно его устройства управления, что приводит к увеличению размеров и стоимости кристалла, снижению производительности. В тоже время многие команды и способы адресации используются достаточно редко. Поэтому, начиная с 1980-х годов, интенсивное развитие получила архитектура процессоров с сокращенным набором команд (RISC-процессоры).

RISC(Reduced Instruction Set Computer)-apxumeкmypa отличается использованием ограниченного набора команд фиксированного формата. Современные RISC-процессоры обычно реализуют около 100 команд, имеющих фиксированный формат длиной 4 байта. Также значительно сокращается число используемых способов адресации. Обычно в RISC-процессорах все команды обработки данных выполняются только с регистровой или непосредственной адресацией. При этом для сокращения количества обращений к памяти RISC-процессоры имеют увеличенный объем внутреннего РЗУ - от 32 до нескольких сотен регистров, тогда как в CISC-процессорах число регистров общего назначения обычно составляет 8-16.

Обращение к памяти в RISC-процессорах используется только в операциях загрузки данных в РЗУ или пересылки результатов из РЗУ в память. При этом используется небольшое число наиболее простых способов адресации: косвенно-регистровая, индексная и некоторые другие. В результате существенно упрощается структура микропроцессора, сокращаются его размеры и стоимость, значительно повышается производительность.

Указанные достоинства RISC-архитектуры привели к тому, что во многих современных CISC-процессорах используется RISC-ядро, выполняющее обработку данных. При этом поступающие сложные и разноформатные команды предварительно преобразуются в последовательность простых RISC-операций, быстро выполняемых этим процес­сорным ядром. Таким образом, работают, например, последние модели микропроцессоров Pentium и К7, которые по внешним показателям относятся к CISC-процессорам. Использование RISC-архитектуры является характерной чертой многих современных микропроцессоров.

VLIW(Very Large Instruction Word)-арxитeктyра появилась относительно недавно -в 1990-х годах. Ее особенностью является использование очень длинных команд (до 128 бит и более), отдельные поля которых содержат коды, обеспечивающие выполне­ние различных операций. Таким образом, одна команда вызывает выполнение сразу нескольких операций параллельно в различных операционных устройствах, входящих в структуру микропроцессора. При трансляции программ, написанных на языке высокого уровня, соответствующий компилятор производит формирование «длинных» VLIW-команд, каж­дая из которых обеспечивает реализацию процессором целой процедуры или группы операций. Данная архитектура реализована в некоторых типах современных микропроцессоров (РА8500 компании «Hewlett-Packard», Itanium -совместная разработка «Intel» и « Hewlett-Packard», некоторые типы DSP - цифровых процессоров сигналов) и является весьма перспективной для создания нового поколения сверхвысокопроизводительных процессоров.

Кроме набора выполняемых команд и способов адресации важной архитектурной особенностью микропроцессоров является используемый вариант реализации памяти и организация выборки команд и данных. По этим признакам различаются процессоры с Принстонской и Гарвардской архитектурой. Эти архитектурные варианты были предложены в конце 1940-х годов специалистами соответственно Принстонского и Гарвардского университетов США для разрабатываемых ими моделей компьютеров.

Принстонская архитектура, которая часто называется архитектурой Фон-Неймана, характеризуется использованием общей оперативной памяти для хранения программ, данных, а также для организации стека. Для обращения к этой памяти используется общая системная шина, по которой в процессор поступают и команды, и данные. Эта архитектура имеет ряд важных достоинств. Наличие общей памяти позволяет оперативно перераспределять ее объем для хранения отдельных массивов команд, данных и реализации стека в зависимости от решаемых задач. Таким образом, обеспечивается возможность более эффективного использования имеющегося объема оперативной памяти в каждом конкретном случае применения микропроцессора. Использование общей шины для передачи команд и данных значительно упрощает отладку, тестирование и текущий контроль функционирования системы, повышает ее надежность. Поэтому Принстонская архитектура в течение долгого времени доминировала в вычислительной технике.

Однако ей присущи и существенные недостатки. Основным из них является необходимость последовательной выборки команд и обрабатываемых данных по общей системной шине. При этом общая шина становится «узким местом» (bottleneck - «бутылочное горло»), которое ограничивает производительность цифровой системы. Постоянно возрастающие требования к производительности микропроцессорных систем вызвали в последние годы все более широкое применение Гарвардской архитектуры при создании многих типов современных микропроцессоров.

Гарвардская архитектура характеризуется физическим разделением памяти команд (программ) и памяти данных. В ее оригинальном варианте использовался также отдельный стек для хранения содержимого программного счетчика, который обеспечивал возможности выполнения вложенных подпрограмм. Каждая память соединяется с процессором отдель­ной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки реализуется более высокая производительность, чем при использовании Принстонской архитектуры.

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

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

Во внутренней структуре современных высокопроизводительных микропроцессоров реализуется конвейерный принцип выполнения команд. При этом процесс выполнения команды разбивается на ряд этапов. На рис. 1.1, а приведен пример разбиения команды на шесть этапов ее выполнения:

1) выборка очередной команды (ВК);

3) формирование адреса операнда (ФА);

4) прием операнда из памяти (ПО);

5) выполнение операции (ВО);

6) размещение результата в памяти (РР).

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

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

Рис. 1. Реализация конвейерного исполнения команд при идеальной (а) и реальной (б) загрузке 6-ступенчатого конвейера

На рис. 1, б показан пример работы 6-ступенчатого конвейера при выполнении фрагмента реальной программы, когда отдельные ступени оказываются в состоянии ожидания (ОЖ) или простоя (ПР). Команда INC R2, которая увеличивает на 1 содержимое регистра R2, не требует выборки операндов из памяти и размещения в ней результата. Поэтому при ее выполнении реализуется состояние простоя (ПР) на ступенях конвейера, выполняющих микрооперации ФА, ПО, PP. Команда MOV (R2), R3 производит пересылку содержимого ячейки памяти, адресуемой содержимым регистра R2, в регистр R3. При ее выполнении реализуются состояния ожидания (ОЖ), пока в регистре R2 не будет получен результат предыдущей операции. Такты ожидания (ОЖ) вводятся также при выполнении команды сложения ADD R3, (R4) до получения необходимого значения опе­ранда в регистре R3. В результате введения состояний ожиданий и простоя реальная производительность процессора при выполнении данного фрагмента программы соста­вит 5/3 команд/такт, то есть будет в 1,7 раз меньше, чем в идеальном случае (рис. 1, а).

В современных высокопроизводительных микропроцессорах процедура выполнения команд может разбиваться на еще более мелкие этапы, чтобы успеть выполнить соответствующие микрооперации на каждой ступени за один такт, длительность которого при тактовой частоте более 1 ГГц составляет менее наносекунды. Поэтому в таких процессорах число ступеней конвейера достигает 10 и более. Например, в микропроцессорах Pentium 4 используется 20-ступенчатый конвейер.

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

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

В современных микропроцессорах используются разнообразные способы предсказания ветвлений. Наиболее простой способ состоит в том, что процессор фиксирует результат выполнения предыдущих команд ветвления по данному адресу и считает, что следующая команда с обращением по этому адресу даст аналогичный результат. Данный способ предсказания предполагает более высокую вероятность повторного обращения к определенной команде, задаваемой данным условием ветвления. Для реализации этого способа предсказания ветвления используется специальная память ВТВ (Branch Target Buffer), где хранятся адреса ранее выполненных условных переходов. При поступ­лении аналогичной команды ветвления предсказывается переход к ветви, которая была выбрана в предыдущем случае, и производится загрузка в конвейер команд из соответ­ствующей ветви. При правильном предсказании не требуется перезагрузка конвейера и эффективность его использования не снижается. Эффективность такого способа предсказания зависит от емкости ВТВ и оказывается достаточно высокой: вероятность правильного предсказания составляет 80% и более. Повышение точности предсказания достигается при использовании более сложных способов, когда хранится и анализируется предыстория переходов - результаты нескольких предыдущих команд ветвления по данному адресу. В этом случае возможно определение чаще всего реализуемого направления ветвления, а также выявление чередующихся переходов. Реализация таких алгоритмов требует использования более сложных блоков предсказания, но при этом вероятность правильного предсказания повышается до 90-95%.

Возможность повышения производительности процессора достигается также при введении в структуру процессора нескольких параллельно включенных операционных устройств, обеспечивающих одновременное выполнение нескольких операций. Такая структура процессора называется суперскалярной. В этих процессорах реализуется параллельная работа нескольких исполнительных конвейеров, в каждый из которых поступает для выполнения одна из выбранных и декодированных команд. В идеальном случае число одновременно выполняемых команд равно числу операционных устройств, включенных в исполнительные конвейеры. Однако при выполнении реальных программ трудно обеспечить полную загрузку всех исполнительных конвейеров, поэтому на практике эффективность использования суперскалярной структуры оказывается несколько ниже. Современные суперскалярные процессоры содержат до 4 до 10 различных операционных устройств, параллельная работа которых обеспечивает выполнение за один такт в среднем от 2 до 6 команд.

Современные микропроцессоры - это самые быстрые и умные микросхемы в мире. Они могут совершать до 4 млрд. операций в секунду и производятся с использованием множества различных технологий. С начала 90-х годов ХХ века, когда процессоры пошли в массовое использование, они пережили несколько ступеней развития. Апогеем развития микпроцессорных структур, использующих существующие технологии микропроцессоров 6-го поколения, считается 2002 год, когда стало доступным использование всех основных свойств кремния для получения больших частот при наименьших потерях при производстве и создании логических схем. Сейчас же эффективность новых процессоров несколько падает, несмотря на постоянный рост частоты работы кристаллов, поскольку кремниевые технологии близятся к пределу своих возможностей.

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

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

Т ехнологии и рынок

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

Технологическая норма 90 нм оказалась достаточно серьезным технологическим барьером для многих производителей чипов. Это подтверждает и компания TSMC, которая занимается производством чипов для многих гигантов рынка, таких как компании AMD, nVidia, ATI, VIA. Долгое время ей не удавалось наладить производство чипов по технологии 0,09 мкм, что привело к низкому выходу годных кристаллов. Это одна из причин, по которой AMD долгое время переносила выпуск своих процессоров с технологией SOI (Silicon-on-Insulator). Задержки связаны с тем, что именно на этой размерности элементов стали сильно проявляться всевозможные ранее не столь сильно ощутимые негативные факторы: токи утечки, большой разброс параметров и экспоненциальное повышении тепловыделения. Разберемся по порядку.

Как известно, существует два тока утечки: ток утечки затвора и подпороговая утечка. Первая вызвана самопроизвольным перемещением электронов между кремниевым субстратом канала и поликремневым затвором. Вторая - самопроизвольным перемещением электронов из истока транзистора в сток. Оба эти эффекта приводят к тому, что приходится поднимать напряжение питания для управления токами в транзисторе, а это негативно сказывается на тепловыделении. Так вот, уменьшая размеры транзистора, мы, прежде всего, уменьшаем его затвор и слой диоксида кремния (SiO2), который является естественным барьером между затвором и каналом. С одной стороны, это улучшает скоростные показатели транзистора (время переключения), но с другой - увеличивает утечку. То есть, получается своеобразный замкнутый круг. Так вот переход на 90 нм - это очередное уменьшение толщины слоя диоксида, и одновременно увеличение утечек. Борьба с утечками - это опять же, увеличение управляющих напряжений, и, соответственно, значительное повышение тепловыделения. Все это привело к задержке внедрения нового техпроцесса со стороны конкурентов рынка микропроцессоров - Intel и AMD.

Один из альтернативных выходов - это применение технологии SOI (кремний на изоляторе), которое недавно внедрила компания AMD в своих 64-разрядных процессорах. Впрочем, это стоило ей немало усилий и преодоление большого количества попутных трудностей. Зато сама технология предоставляет громадное количество преимуществ при сравнительно малом количестве недостатков. Суть технологии, в общем-то, вполне логична - транзистор отделяется от кремневой подложки еще одним тонким слоем изолятора. Плюсов - масса. Никакого неконтролируемого движения электронов под каналом транзистора, сказывающегося на его электрических характеристиках - это раз. После подачи отпирающего тока на затвор, время ионизации канала до рабочего состояния (до момента, пока по нему пойдет рабочий ток) сокращается, то есть, улучшается второй ключевой параметр производительности транзистора, время его включения/выключения - это два. Или же, при той же скорости, можно просто понизить отпирающий ток - это три. Или найти какой-то компромисс между увеличением скорости работы и уменьшением напряжения. При сохранении того же отпирающего тока, увеличение производительности транзистора может составить вплоть до 30%, если оставить частоту той же, делая упор на энергосбережение, то там плюс может быть и большим - до 50 %. Наконец, характеристики канала становятся более предсказуемыми, а сам транзистор - более устойчивым к спорадическим ошибкам, вроде тех, что вызывают космические частицы, попадая в субстрат канала, и непредвиденно ионизируя его. Теперь, попадая в подложку, расположенную под слоем изолятора, они никак не сказываются на работе транзистора. Единственным минусом SOI является то, что приходится уменьшать глубину области эмиттер/коллектор, что прямо и непосредственно сказывается на увеличении ее сопротивления по мере сокращения толщины.

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

Будущие технологии производства микропроцессоров

Известно, что существующие КМОП-транзисторы имеют много ограничений и не позволят в ближайшем будущем поднимать частоты процессоров также безболезненно. В конце 2003 года на Токийской конференции специалисты Intel сделали очень важное заявление о разработке новых материалов для полупроводниковых транзисторов будущего.

Прежде всего, речь идет о новом диэлектрике затвора транзистора с высокой диэлектрической проницаемостью (так называемый "high-k"-материал), который будет применяться взамен используемого сегодня диоксида кремния (SiO2), а также о новых металлических сплавах, совместимых с новым диэлектриком затвора.

Решение, предложенное исследователями, снижает ток утечки в 100 раз, что позволяет вплотную подойти к внедрению производственного процесса с проектной нормой 45 нанометров. Оно рассматривается экспертами как маленькая революция в мире микроэлектронных технологий. Чтобы понять, о чем идет речь, взглянем сначала на обычный МОП-транзистор (Рисунок 1), на базе которого делаются сложнейшие CPU.

Рисунок 1 - МОП-транзистор

В нем затвор из проводящего поликремния отделен от канала транзистора тончайшим (толщиной всего 1,2 нм или 5 атомов) слоем диоксида кремния (материала, десятилетиями используемого в качестве подзатворного диэлектрика).

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

Если мы боремся с утечками, то толщину диэлектрика нужно повысить хотя бы до 2-3 нм (см. рисунок выше). Чтобы при этом сохранить прежнюю крутизну транзистора (зависимость тока от напряжения) необходимо пропорционально увеличить диэлектрическую проницаемость материала диэлектрика. Если проницаемость объемного диоксида кремния равна 4 (или чуть меньше в сверхтонких слоях), то разумной величиной диэлектрической проницаемости нового "интеловского" диэлектрика можно считать величину в районе 10-12. Несмотря на то, что материалов с такой диэлектрической проницаемостью немало (конденсаторные керамики или монокристалл кремния), тут не менее важны факторы технологической совместимости материалов. Поэтому для нового high-k-материала был разработан свой высокоточный процесс нанесения, во время которого формируется один молекулярный слой этого материала за один цикл (Рисунок 2).


Рисунок 2 - Формирование одного молекулярного слоя за один цикл

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

Но диэлектриком дело не ограничилось. Потребовалось сменить и материал самого затвора - привычный поликристаллического кремния. Дело в том, что замена диоксида кремния на high-k-диэлектрик ведет к проблемам взаимодействия с поликристаллическим кремнием (ширина запрещенной зоны транзистора определяет минимально возможные для его напряжения). Эти проблемы удается устранить, если использовать специальные металлы для затворов транзисторов обоих типов в сочетании с особым технологическим процессом. Благодаря этой комбинации материалов удается достичь рекордной производительности транзисторов и уникально низких токов утечки, в 100 раз меньших, чем при использовании нынешних материалов. В этом случае уже не возникает искушения использовать для борьбы с утечками значительно более дорогую технологию SOI, как это делают некоторые крупные производители микропроцессоров.

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

РОССИЙСКАЯ ФЕДЕРАЦИЯ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

БРЯНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТИМЕНИ АКАДЕМИКА И.Г. ПЕТРОВСКОГО

СОЦИАЛЬНО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

ФИНАНСОВО-ЭКОНОМИЧЕСКИЙ ФАКУЛЬТЕТ

КАФЕДРА АВТОМАТИЗИРОВАННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ И ТЕХНОЛОГИЙ

СПЕЦИАЛЬНОСТЬ «ПРИКЛАДНАЯ ИНФОРМАТИКА В ЭКОНОМИКЕ»

КУРСОВАЯ РАБОТА

СОВРЕМЕННЫЕ МИКРОПРОЦЕССОРЫ

Coдержание

Введение

Определение микропроцессора

Современные процессоры INTEL

Микропроцессор Pentium M

Intel Core 2 Quad

Микропроцессор К5

Микропроцессор К6

Микропроцессор К7

Заключение

Список литературы

Введение

Развитие персональных компьютеров в мире повлекло за собой и развитие микропроцессоров. Тенденции развития современных технологий изготовления процессоров и их применения с каждым годом набирают все большие обороты. Применяются новые нано-технологии, увеличивается число ядер на одном кристалле, растет разрядность процессоров, увеличивается кэш память всех уровней, применяются новые наборы инструкций и многое другое. Именно поэтому эта тема на сегодняшний день считается наиболее актуальной для рассмотрения в данной курсовой работе. Целью моей работы является изучения устройство микропроцессоров, узнать его технологии изготовления и рассмотреть виды современных микропроцессоров. Объектом изучения является микропроцессор и его основные функции. Предметом изучения является виды современных микропроцессоров.

В основе любой ЭВМ лежит использование микропроцессоров. Это самое важное устройство любого компьютера. Именно от него зависит уровень производительности любого компьютера, и не только персонального. Микропроцессоры окружают человека везде. Любая электроника в современном обществе снабжена своим микропроцессором.

Задачей моей курсовой работы является:

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

Выявить их значимость для общества.

Попытаться сделать приблизительные прогнозы об их будущем развитии.

Определение микропроцессора

Микропроцессор - центральное устройство (или комплекс устройств) ЭВМ (или вычислительной системы), которое выполняет арифметические и логические операции, заданные программой преобразования информации, управляет вычислительным процессом и координирует работу устройств системы (запоминающих, сортировальных, ввода -- вывода, подготовки данных и др.). В вычислительной системе может быть несколько параллельно работающих процессоров; такие системы называют многопроцессорными. Наличие нескольких процессоров ускоряет выполнение одной большой или нескольких (в том числе взаимосвязанных) программ. Основными характеристиками микропроцессора являются быстродействие и разрядность. Быстродействие - это число выполняемых операций в секунду. Разрядность характеризует объём информации, который микропроцессор обрабатывает за одну операцию: 8-разрядный процессор за одну операцию обрабатывает 8 бит информации, 32-разрядный - 32 бита, 64-разрядный - 64 бита. Скорость работы микропроцессора во многом определяет быстродействие компьютера. Он выполняет всю обработку данных, поступающих в компьютер и хранящихся в его памяти, под управлением программы, также хранящейся в памяти. Персональные компьютеры оснащают центральными процессорами различных мощностей.

Функции процессора:

обработка данных по заданной программе путем выполнения арифметических и логических операций;

программное управление работой устройств компьютера.

Модели процессоров включают следующие совместно работающие устройства:

Устройство управления (УУ). Осуществляет координацию работы всех остальных устройств, выполняет функции управления устройствами, управляет вычислениями в компьютере.

Арифметико-логическое устройство (АЛУ) . Так называется устройство для целочисленных операций. Арифметические операции, такие как сложение, умножение и деление, а также логические операции (OR, AND, ASL, ROL и др.) обрабатываются при помощи АЛУ. Эти операции составляют подавляющее большинство программного кода в большинстве программ. Все операции в АЛУ производятся в регистрах - специально отведенных ячейках АЛУ. В процессоре может быть несколько АЛУ. Каждое способно исполнять арифметические или логические операции независимо от других, что позволяет выполнять несколько операций одновременно. Арифметико-логическое устройство выполняет арифметические и логические действия. Логические операции делятся на две простые операции: "Да" и "Нет" ("1" и "0"). Обычно эти два устройства выделяются чисто условно, конструктивно они не разделены.

AGU (Address Generation Unit) - устройство генерации адресов. Это устройство не менее важное, чем АЛУ, т.к. оно отвечает за корректную адресацию при загрузке или сохранении данных. Абсолютная адресация в программах используется только в редких исключениях. Как только берутся массивы данных, в программном коде используется косвенная адресация, заставляющая работать AGU.

Математический сопроцессор (FPU ). Процессор может содержать несколько математических сопроцессоров. Каждый из них способен выполнять, по меньшей мере, одну операцию с плавающей точкой независимо от того, что делают другие АЛУ. Метод конвейерной обработки данных позволяет одному математическому сопроцессору выполнять несколько операций одновременно. Сопроцессор поддерживает высокоточные вычисления как целочисленные, так и с плавающей точкой и, кроме того, содержит набор полезных констант, ускоряющих вычисления. Сопроцессор работает параллельно с центральным процессором, обеспечивая, таким образом, высокую производительность. Система выполняет команды сопроцессора в том порядке, в котором они появляются в потоке. Математический сопроцессор персонального компьютера IBM PC позволяет ему выполнять скоростные арифметические и логарифмические операции, а также тригонометрические функции с высокой точностью.

Дешифратор инструкций (команд) . Анализирует инструкции в целях выделения операндов и адресов, по которым размещаются результаты. Затем следует сообщение другому независимому устройству о том, что необходимо сделать для выполнения инструкции. Дешифратор допускает выполнение нескольких инструкций одновременно для загрузки всех исполняющих устройств.

Кэш-память . Особая высокоскоростная память процессора. Кэш используется в качестве буфера для ускорения обмена данными между процессором и оперативной памятью, а также для хранения копий инструкций и данных, которые недавно использовались процессором. Значения из кэш-памяти извлекаются напрямую, без обращения к основной памяти. При изучении особенностей работы программ было обнаружено, что они обращаются к тем или иным областям памяти с различной частотой, а именно: ячейки памяти, к которым программа обращалась недавно, скорее всего, будут использованы вновь. Предположим, что микропроцессор способен хранить копии этих инструкций в своей локальной памяти. В этом случае процессор сможет каждый раз использовать копию этих инструкций на протяжении всего цикла. Доступ к памяти понадобиться в самом начале. Для хранения этих инструкций необходим совсем небольшой объём памяти. Если инструкции в процессор поступают достаточно быстро, то микропроцессор не будет тратить время на ожидание. Таким образом экономиться время на выполнение инструкций. Но для самых быстродействующих микропроцессоров этого недостаточно. Решение данной проблемы заключается в улучшении организации памяти. Память внутри микропроцессора может работать со скоростью самого процесс

Кэш первого уровня (L1 cache). Кэш-память, находящаяся внутри процессора. Она быстрее всех остальных типов памяти, но меньше по объёму. Хранит совсем недавно использованную информацию, которая может быть использована при выполнении коротких программных циклов.

Кэш второго уровня (L 2 cache ). Также находится внутри процессора. Информация, хранящаяся в ней, используется реже, чем информация, хранящаяся в кэш-памяти первого уровня, но зато по объёму памяти он больше. Также в настоящее время в процессорах используется кэш третьего уровня.

Основная память. Намного больше по объёму, чем кэш-память, и значительно менее быстродействующая.

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

Кэш-память не только повышает быстродействие микропроцессора при операции чтения из памяти, но в ней также могут храниться значения, записываемые процессором в основную память; записать эти значения можно будет позже, когда основная память будет не занята. Такая кэш-память называется кэшем с обратной записью (write back cache). Её возможности и принципы работы заметно отличаются от характеристик кэша со сквозной записью (write through cache), который участвует только в операции чтения из памяти.

Шина - это канал пересылки данных, используемый совместно различными блоками системы. Шина может представлять собой набор проводящих линий в печатной плате, провода, припаянные к выводам разъемов, в которые вставляются печатные платы, либо плоский кабель. Информация передается по шине в виде групп битов. В состав шины для каждого бита слова может быть предусмотрена отдельная линия (параллельная шина), или все биты слова могут последовательно во времени использовать одну линию (последовательная шина). К шине может быть подключено много приемных устройств - получателей. Обычно данные на шине предназначаются только для одного из них. Сочетание управляющих и адресных сигналов, определяет для кого именно. Управляющая логика возбуждает специальные стробирующие сигналы, чтобы указать получателю, когда ему следует принимать данные. Получатели и отправители могут быть однонаправленными (т.е. осуществлять только либо передачу, либо прием) и двунаправленными (осуществлять и то и другое). Однако самая быстрая процессорная шина не сильно поможет, если память не сможет доставлять данные с соответствующей скоростью.

Типы шин:

Шина данных. Служит для пересылки данных между процессором и памятью или процессором и устройствами ввода-вывода. Эти данные могут представлять собой как команды микропроцессора, так и информацию, которую он посылает в порты ввода-вывода или принимает оттуда.

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

Шина управления. По ней передаются управляющие сигналы, предназначенные памяти и устройствам ввода-вывода. Эти сигналы указывают направление передачи данных (в процессор или из него).

BTB (Branch Target Buffer) - буфер целей ветвления. В этой таблице находятся все адреса, куда будет или может быть сделан переход. Процессоры Athlon еще используют таблицу истории ветвлений (BHT - Branch History Table), которая содержит адреса, по которым уже осуществлялись ветвления.

Регистры - это внутренняя память процессора. Представляют собой ряд специализированных дополнительных ячеек памяти, а также внутренние носители информации микропроцессора. Регистр является устройством временного хранения данных, числа или команды и используется с целью облегчения арифметических, логических и пересылочных операций. Над содержимым некоторых регистров специальные электронные схемы могут выполнять некоторые манипуляции. Например, "вырезать" отдельные части команды для последующего их использования или выполнять определенные арифметические операции над числами. Основным элементом регистра является электронная схема, называемая триггером, которая способна хранить одну двоичную цифру (разряд ). Регистр представляет собой совокупность триггеров, связанных друг с другом определённым образом общей системой управления. Существует несколько типов регистров, отличающихся видом выполняемых операций.

Некоторые важные регистры имеют свои названия, например:

сумматор -- регистр АЛУ, участвующий в выполнении каждой операции.

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

регистр команд -- регистр УУ для хранения кода команды на период времени, необходимый для ее выполнения. Часть его разрядов используется для хранения кода операции, остальные -- для хранения кодов адресов операндов.

История развития современных микропроцессоров

История развития Современных микропроцессоров начинается с изобретения транзистора в 1948 г, который вытеснил электронные лампы. Сам по себе транзистор умеет очень немного: либо пропускать через себя ток, либо перекрывать ему дорогу дальше по цепи. Достигается это благодаря использованию особых материалов - «полупроводников». Один транзистор мог заменить 40 электронных ламп. В 1955 г. фирма Bell Laboratories создала первый транзисторный компьютер второго поколения. 1960 г. Компания DEC выпустила по тем временам «мини»-компьютер, который вмещался в небольшой комнате- PDP-1.Но эволюция на этом не остановилась и к 60-ым годам научились выпускать интегральные схемы. Первые из них содержали всего 6 транзисторов, позднее их число стало расти в геометрической прогрессии. В настоящее время число транзисторов на интегральной микросхеме зашкаливает за несколько десятков миллионов.

Начало 70-х годов ознаменовалось рождением нового и, как оказалось, весьма перспективного и беспрецедентного по своим последствиям направления в развитии вычислительной техники - в 1971 г. был выпущен первый в мире микропроцессор. Это был однокристальный микропроцессор, получивший название 4004 (4-разрядная шина данных и 16-контактный корпус). Процессор Intel 4004 стал технологическим триумфом корпорации: устройство размером с палец, стоило 200 долларов, и было сравнимо по своей вычислительной мощи с первой ЭВМ ENIAC, созданной в 1946 г., и занимавшей пространство объемом в 85 куб. метров. Новая технология, практически сразу, легла в основу создания программируемых калькуляторов с огромным, по тем временам (от 4-х до 64-х килобайт) объемом оперативной памяти, способных обрабатывать массивы данных. Изначально процессор 4004 предназначался для Японской компании Busicom. Но из-за финансовых трудностей японцы отказались от проекта, и разработка перешла в руки Intel. Появление микропроцессора изменило весь рынок микроэлектроники, а именно появлению тех самых компьютеров, на каких мы работаем сегодня.

Как это не было бы парадоксально, но сразу после появления процессора 4004 Intel утратила лидерство на рынке. Прежде всего это компании ZILOG и MOTOROLA - были лидерами процессорного рынка в 70-х годах. Но Intel создала совершенно новый процессор, который стал прототипом современных процессоров персональных компьютеров. Это был восьмиразрядный процессор i8008 (1972 год). i8080 являлся основой первого в мире персонального компьютера Altair. Все процессоры х86 - это дальние потомки i8080. Несмотря на свое огромное значение и большой объем продаж, на рынке этот процессор потеснил более удачный Zilog-80, который, в свою очередь, был обязан такой популярностью i8080. Процессор Z-80 создала группа инженеров, ранее работавших в Intel и участвовавших в разработке i8080.

В 80-х годах Intel открыла эру высокопроизводительного настольного компьютерного оборудования. В 1982 г. вышел современнейший, по тем временам, микропроцессор i286, который уже тогда, кроме неслыханной производительности, имел, в зачаточном виде, возможности по обеспечению многозадачного режима и защищенного режима (Protected Mode). Также он поддерживал обращение к расширяемой (EMS) памяти, объемом до 8 MB. В 1985 г. появился микропроцессор i386. Процессор i386 имел не только завершенную систему поддержки многозадачного режима, механизм защиты сегментов, но и мог оперировать оперативной памятью объемом до 64MB

Улучшение технологии производства микропроцессоров позволило значительно повысить их тактовую частоту. Каждое новое поколение процессоров имеет более низкое напряжение питания и меньшие токи, что способствует уменьшению выделяемого ими тепла. Но самым главным достижением является то, что при уменьшении нормы технологического процесса можно значительно увеличить количество транзисторов на одном кристалле. Большее количество транзисторов, входящих в состав процессора, позволяет усовершенствовать архитектуру процессора с целью достижения еще большей производительности. Даже разрядность процессоров очень быстро увеличилась с 4 в первом процессоре до 32 в процессоре i386.

Значительной вехой в истории развития архитектуры процессоров персональных компьютеров (очередная революция) стало появление процессора i486. Производственный техпроцесс к тому времени достиг отметки в 1 мкм, благодаря чему удалось расположить в ядре процессора 1,5 млн. транзисторов, что было почти в 6 раз больше, чем у CPU предыдущего 386-го поколения. Он был в 1500 раза быстрее своего "прапрадедушки" i4004. В архитектуре процессора персонального компьютера впервые появился конвейер на пять стадий. Конвейерные вычисления были, конечно, известны задолго до появления персональных компьютеров, но высокая степень интеграции теперь позволила применить этот эффективный способ вычислений и в персональном компьютере. На одном кристалле Intel разместила и собственно процессор, и математический сопроцессор, и кэш-память L1, которые до этого располагались в отдельных микросхемах. Эта революция произошла спустя 20 лет после появления первого микропроцессора, в октябре 1989 года. 486-й микропроцессор обладал достаточным для того времени быстродействием. Тактовая частота процессора даже превысила тактовую частоту системной шины.

С момента выпуска 486-го процессора технологический процесс производства микропроцессоров начал развиваться бурными темпами. В 90-х годах началась «эра» Pentium. Практически каждый год компания Intel выпускала все более и более совершенные микропроцессоры. Процессор Pentium совершил переворот в компьютерной индустрии персональных компьютеров. Стоимость микропроцессоров стала падать, а значит ПК стал более доступным всем слоям населения. Компьютер стал по-настоящему персональным. Это значит ориентирован на обычного пользователя, не владеющего глубокими знаниями в этой области.

При таком стремительном прогрессе микропроцессорной и компьютерной индустрии вполне возможно, что к 2011 г. микропроцессоры будут работать на тактовой частоте до 10 ГГц. При этом число транзисторов на каждом процессоре достигнет 1 миллиарда, а вычислительная мощность - 100 миллиардов операций в секунду. микропроцессор intel компания pentium

Структура рынка современных микропроцессоров

Доминирующее положение на рынке универсальных микропроцессоров занимают микропроцессоры с системой команд х86. основными производителями которых являются компании Intel, AMD и VIA. Ежегодный рост выпуска таких микропроцессоров составляет 10--15%. Доля остальных микропроцессоров с RISC-архитектурой составляет около 20 % рынка.

В настоящее время производятся и используются вычислительные системы на базе микропроцессоров следующих архитектур.(таблица 1)

Таблица 1. Наиболее распространенные микропроцессорные архитектуры.

Микропроцессорная архитектура

Компания-разработчик

Intel, AMD, Cyrix, IDT, Transmeta

Motorola, IBM, Apple

Hewlett-Packard(DEC)

Исторически микропроцессоры с архитектурой х86 доминировали в персональных ЭВМ, а RISC-процессоры использовались в рабочих станциях, высокопроизводительных серверах и суперкомпьютерах. В настоящее время процессоры с архитектурой х86 несколько потеснили RISC-процессоры в их традиционных областях применения, в то же время, некоторые производители рабочих станций, например SUN, пытаются выйти со своими процессорами на рынок персональных ЭВМ.

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

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

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

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

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

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

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

Современные процессоры INTEL

Компания Intel является одной из передовых в производстве современных микропроцессоров. Компанию основали Роберт Нойс и Гордон Мур в 1968 году Intel переводится с английского «интегральная электроника». Бизнес-план компании был распечатан на печатной машинке Робертом Нойсом и занимал всего одну страницу. Предоставив его банку новообразовавшаяся компания получила кредит 2, 5 миллионов долларов.

Компания стала успешной в 1971 году, когда Intel начал сотрудничество с японской компанией Busicom. Intel получил заказ на двенадцать специализированных микросхем, но по предложению инженера Тэда Хоффа компания разработала один универсальный микропроцессор Intel 4004. Производительность этого процессора была сравнима с производительностью мощнейших компьютеров того времени. Следующим был разработан Intel 8008.

В 1990-е компания стала крупнейшим производителем домашних персональных компьютеров. Серии процессоров Pentium и Celeron до сих пор являются самыми распространёнными.

Микропроцессор Pentium M

Одним из последних достижений компании Intel, призванным предоставить пользователям новые возможности мобильной работы, стала разработка технологи Centrino. Данная технология предусматривает использование в компьютере новых микропроцессоров Pentium M (на стадии разработки микропроцессор имел кодовое название Banias), нового чипсета Intel 855 и средств доступа к беспроводным сетям передачи данных семейства стандартов 802.11.

Основными чертами систем, построенных по технологии Centrino, являются: низкое энергопотребление, обеспечиваемое "интеллектуальной" системой управления частотой микропроцессорного ядра и напряжением питания - Enhanced SpeedStep, малые массогабаритные характеристики за счет реализации большинства системных функций в высокопроизводительном чипсете, а также расширенные коммуникационные возможности благодаря наличию встроенного контроллера радио-Ethernet.

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

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

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

усовершенствованное управление стеком. Управление стеком реализовано на уровне микроопераций, что позволило сделать этот процесс менее энергозатратным;

улучшенная технология управления энергопотреблением Enhanced SpeedStep. В отличие от предыдущей версии этой технологии, поддерживающей два соотношения частота/напряжение питания, в Pentium M предусмотрено большее число соотношений, позволяющих обеспечивать требуемую для выполняемого приложения производительность при минимальном энергопотреблении. Следует отметить также экономию энергии при работе с системной шиной (усилители считывания данных процессора включаются по команде чипсета только на период приема данных) и кэш-памятью (активизируется только тот фрагмент кэша, к которому в данный момент осуществляется обращение).

Микропроцессор содержит блок векторных операций SSE2, раздельную кэш-память команд и данных первого уровня размером 32 Кбайт каждая, общую кэш-память второго уровня размером I Мбайт. Эффективная частота процессорной шины составляет 400 МГц, а частота работы процессорного ядра -- от 0,9 до 1,6 ГГц. Мощность, потребляемая микропроцессором для тактовой частоты 1,6 ГГц, составляет 24,5 Вт.

Процессор производится по технологии 0,13 мкм и содержит на кристалле 77 млн транзисторов.

По производительности Pentium M с тактовой частотой 1,7 ГГц сравним с Pentium 4 -- 2,5 ГГц. Средняя потребляемая мощность микропроцессора составляет от 1 до 7 Вт, а максимальная -- не превышает 25 Вт.

Core 2 Duo - x86-совместимый процессор. Принадлежит семейству процессоров Intel Core 2.

Core 2 Duo и Core 2 Extreme, разработан на основе Intel Pentium M (архитектура Pentium Pro), обогащённым лучшими наработками архитектуры NetBurst и рядом совершенно новых технологий:

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

Intel Intelligent Power Capability-- технология, с помощью которой для исполнения задач активируется работа отдельных узлов чипа по мере необходимости, что значительно снижает энергопотребление системы в целом

Intel Advanced Smart Cache-- технология использования общей для всех ядер кэш-памяти L2, что снижает общее энергопотребление и повышает производительность, при этом, по мере необходимости, одно из ядер процессора может использовать весь объём кэш-памяти при динамическом отключении другого ядра

Intel Smart Memory Access-- технология оптимизации работы подсистемы памяти, сокращающая время отклика и повышающая пропускную способность подсистемы памяти

Intel Advanced Digital Media Boost-- технология обработки 128-разрядных команд SSE, SSE2 и SSE3, широко используемых в мультимедийных и графических приложениях, за один такт

Все процессоры Core 2 Duo работают с тактовой частотой системной шины (Front Side Bus, FSB) 266 МГц, в то время как большинство моделей Pentium 4 и Pentium D используют 200-МГц шину. За исключением процессоров начального уровня, все модели оснащены 4 Мбайт кэша L2, который используют оба процессорных ядра. Все процессоры поддерживают 64-битные расширения Intel (EM64T), мультимедийные инструкции (SSE2 и SSE3), технологию виртуализации (VT) и бит запрета выполнения (XD). Кроме этих функций, все модели поддерживают последние технологии управления энергопотреблением вроде Thermal Monitor 2 (TM2), Enhanced Halt State (C1E) и Enhanced SpeedStep (EIST).

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

Intel Core 2 Quad

Intel Core 2 Quad -- семейство новых четырёхъядерных процессоров Intel, в котором объединяются два двухъядерных кристалла на одной платформе. Для производства процессора была использована инновационный 45-нм технологический процесс. Хотя эти процессоры и являются очередными вариантами широко распространённой микроархитектуры Core, они представляют немалый интерес. Дело в том, что Quad- это не простой результат перевода предыдущих 65-нм процессорных ядер на новую производственную технологию. В них инженеры Intel реализовали целый ряд усовершенствований, направленных на увеличение производительности, достигаемое без роста тактовой частоты. В его основе лежит два полупроводниковых двухъядерных кристалла Wolfdale, убранных в единую процессорную упаковку.

Для освоения 45-нм технологического процесса компания провела огромную научно-исследовательскую работу, в рамках которой классические диэлектрические материалы (в частности, оксид кремния), применяемые с 60-х годов прошлого века для производства интегральных микросхем, были заменены на принципиально новые (соединения редкоземельного металла гафния). Новые 45-нм транзисторы используют металлический затвор вместо затвора из поликристаллического кремния, а также диэлектрик с высокой диэлектрической проницаемостью (high-k) - силицид гафния.

Эти изменения в конструкции полупроводниковых элементов позволяют решить сразу несколько насущных задач. Новый технологический процесс с нормами 45 нм почти вдвое поднимает плотность расположения транзисторов на кристалле, а кроме того, примерно на 20 % увеличивает их скорость переключения и на 30 % снижает необходимую для этого мощность. В качестве дополнительного бонуса, благодаря новым материалам значительно уменьшаются и токи утечки: в канале исток-сток - ориентировочно в пять раз, а через диэлектрик затвора - примерно на порядок.

Благодаря новому технологическому процессу Intel собирается в течение следующего года нарастить частоты своих процессоров семейства Core 2 Quad до 3,0 ГГц, а линейки Core 2 Duo - до 3,33 ГГц, удерживая их при этом в рамках привычных тепловых пакетов 95 и 65 Вт, соответственно. Еще тодно преимущество новой технологии: процессоры будут обладать кэш-памятью второго уровня суммарным объёмом 12 Мбайт: по 6 Мбайт на каждые два ядра.

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

Вместе с увеличением объёма кэш-память новых CPU получила дополнительную функцию "enhanced cache line split load". Цель этого нововведения заключается в ускорении выборки из кэш-памяти неправильно выровненных данных, части которых могли бы быть помещены в одной строке, но попали в разные строки кэша. Новая функция пытается предугадать такие данные и сделать их выборку из кэша столь же быстрой, как если бы они лежали в одной строке. В теории, это усовершенствование может ускорить работу приложений, работа которых связана со сканированием трактов.

Процессоры Quad обладаюьт расширением системы SIMD-команд. В новом поколении своих CPU Intel ввёл поддержку набора SSE4.1, состоящего из 47 новых инструкций. Тем не менее, новые команды, несмотря на достаточно большое их количество, не представляют собой связанного множества, набор SSE4 включает разнородные дополнения к уже существующим SIMD-инструкциям. Новые команды, по традиции, должны будут помочь в увеличении скорости работы новых процессоров с трёхмерной графикой, с потоковым видео и в целом ряде научных вычислительных задач.

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

Современные микропроцессоры компании АМD

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

Микропроцессор К5

В течение ряда лет AMD, отставая от Intel по крайней мере на одно поколение микропроцессоров, полагалась в основном на лицензированную технологию и вносила незначительные конструктивные изменения в выпускаемые микропроцессоры. Появление микропроцессора Pentium создало лля AMD прямую угрозу вытеснения с рынка, что стимулировало компанию к интенсификации работ по созданию нового семейства х86-совместимых микропроцессоров. Работы над К5 были начаты, когда еще не были известны подробности о процессоре Pentium. Инженерам AMD пришлось разрабатывать собственную микроархитектуру, обеспечивая при этом совместимость с существующим программным обеспечением для процессоров х86.

Первоначально AMD планировала начать поставки своего микропроцессора с тактовой частотой 100--120 МГц в 1995 году, однако было выпущено лишь несколько тысяч таких процессоров, а их тактовая частота составила всего 75 МГц. Основные поставки К5 начались в первом квартале 1996 года, после того как компания перешла на 0,35 мкм технологию, разработанную совместно с Hewlett-Packard. Это позволило довести число транзисторов до 4,2 млн на кристалле площадью 167 мм 2 .

К5 ]68] -- это первый микропроцессор AMD, при создании которого не использовалась никакая интеллектуальная собственность Intel (за исключением микрокода), в то же время, он обладает лучшей по сравнению с процессорами Intel производительностью. Многие приложения, такие как Microsoft Excel, Word, CorelDRAW, работали на процессорах серии К5 на 30% быстрее, чем на Pentium с той же тактовой частотой. Такая производительность достигалась в основном за счет увеличенного объема кэш-памяти и более прогрессивной суперскалярной архитектуры. Используемая в микропроцессорах AMD архитектура RISC86 .

Как известно, команды х86 отличает переменная длина и сложная структура, затрудняющие их декодирование и анализ существующих зависимостей между инструкциями по данным. В предлагаемой AMD архитектуре декодер, представляющий собой наиболее сложную часть микропроцессора, разбивает длинные CISC-инструкции на небольшие RISC-подобные компоненты, так называемые ROP (RISC-операции).

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

В отличие от Pentium, вместо двух конвейеров для параллельного выполнения двух целочисленных операций, К5 имеет шесть параллельно функционирующих блоков. Одновременно с целочисленными операциями могут выполняться инструкции с плавающей точкой, загрузки/сохранения или перехода. Блок загрузки/сохранения может за один цикл выбирать из памяти две инструкции. Другим отличием от Pentium является то, что К5 может изменять последовательность выполняемых команд.

Блок выполнения операций с плавающей точкой (FPU) отвечает стандартам х86, однако по производительности несколько уступает FPU процессора Pentium.

Использованное в архитектуре К5 сочетание принципов CISC и RISC позволило преодолеть ограничения набора команд х86. Ценой увеличения сложности процессора AMD удалось повысить его производительность, сохранив совместимость с системой команд х86. Последнее весьма важно с учетом широкой распространенности программного обеспечения для этой микропроцессорной архитектуры.

Микропроцессор К6

Микропроцессор К6 был выпушен в 1997 году по технологии КМОП 0,35 мкм с пятислойной металлизацией, содержал 8,8 млн транзисторов на кристалле площадью 162 мм 2 , работал с тактовыми частотами 166, 200 и 233 МГц и устанавливался в разъем Socket 7.

Как и в К5, в К6 была применена суперскалярная архитектура RISC86 с раздельным декодированием/исполнением команд, обеспечивающая преемственность с системой команд х86 и достижение высокой производительности, свойственной микропроцессорам шестого поколения. К6 был оснащен мультимедийным расширением системы команд-- ММХ. По производительности К6 при одной и той же тактовой частоте существенно превосходил Pentium ММХ и был сравним с Pentium Pro. В отличие от Pentium Pro, К6 одинаково успешно работал как с 32-разрядными, так и с 16-разрядными приложениями.

Высокая производительность процессора обеспечивалась благодаря ряду новых архитектурных и технологических решений.

В процессоре выполняется преддекодирование команд х86 при их выборке в кэш-памяти. Каждая команда в кэш-памяти первого уровня снабжается битами преддекодирования, указывающими смещение начала следующей команды в кэш-памяти (от I до 15 байт).

К6 содержит внутреннюю раздельную кэш-память первого уровня по 32 Кбайт для данных и команд.

В процессоре реализован высокопроизводительный блок вычислений с плавающей точкой.

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

Используется множественное декодирование х86-инструкций в однотактовые RISC-операции (ROP).

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

В процессоре используется спекулятивное исполнение с изменением последовательности команд, предварительная посылка данных, переименование регистров.

В начале 1998 года были выпущены варианты процессора по технологии 0,25 мкм с пятью слоями металлизации для тактовых частот 266 МГц и 300 МГц.

Микропроцессор К7

Микропроцессор следующего поколения -- К7 (кодовое имя Athlon) был выпущен в июне 1999 года. К7 содержит более 22 млн транзисторов на кристалле площадью 184 мм 2 и изначально производился по технологии 0,25 мкм с 6 слоями металлизации* для тактовых частот 500, 550, 600 и 650 МГц. Впоследствии, с переходом на технологию 0,18 мкм, частота была увеличена до 1 ГГц и выше. Напряжение питания микропроцессора составляет 1,6 В.

Процессор размешен в картридже и соединяется с платой через Slot А, разработанный AMD. Athlon и Slot А используют шинный протокол Digital Alpha EV6, который имеет ряд преимуществ по сравнению с GTL+, используемым Intel. Так, EV6 предусматривает возможность использования топологии "point to point" для мультипроцессорных систем. Кроме этого, EV6 работает по переднему и заднему фронту тактирующего сигнала, что при частоте 100 МГц дает эффективную частоту передачи данных 200 МГц и пропускную способность интерфейса 1,6 Гбайт/с. В последующих моделях процессора частота работы шины (эффективная частота) достигла значений 133 (266), а затем и 200 (400) МГц.

Архитектура, реализованная в Athlon, получила название QuantiSpeed™, она определяет суперскалярное, суперконвейерное выполнение команд, конвейерный блок вычислений с плавающей точкой, аппаратную предвыборку данных в кэш-память и усовершенствованную технологию предсказания ветвлений.

Athlon имеет девять исполнительных блоков: три для обработки целочисленных данных (IEU), три для вычисления адреса (AGU) и три блока для вычислений с плавающей точкой и обработки мультимедийных данных (один для загрузки/сохранения данных с плавающей точкой (FSTORE) и два конвейерных блока для исполнения команд FPU/MMX/3DNOW).

Athlon может декодировать три команды х86 в шесть RISC-операций. После декодирования ROP попадают в буфер, где ожидают своей очереди на выполнение в одном из функциональных блоков процессора. Буфер К7 содержит 72 операции (в три раза больше чем у Кб) и выдает 9 ROP для 9 исполнительных устройств.

Athlon имеет 128 Кбайт кэш-памяти первого уровня (64 Кбайт для данных и 64 Кбайт для команд). Для взаимодействия с кэш-памятью второго уровня предусмотрена специальная шина (как у архитектуры Р6 Intel), Кэш-память второго уровня размером 512 Кбайт расположена вне процессорного ядра, в процессорном картридже, и работает на половинной частоте ядра.

Следующим микропроцессором с архитектурой К7 на ядре Thunderbird стал Duron -- бюджетный вариант микропроцессора, ориентированный на дешевые ПК. Основным его отличием является уменьшенная до 64 Кбайт кэшпамять второго уровня. Duron содержит 25 млн транзисторов на кристалле 100 мм 2 и рассчитан на частоты от 600 до 1200 МГц.

Размещение кэш-памяти на кристалле позволило разработчикам отказаться от использования картриджа и вернуться к разъему типа soket (462-контактный разъем Socket А). В процессорах Athlon и Duron работа кэшпамяти осуществляется по алгоритму, обеспечивающему эксклюзивность представления данных в кэшах (данные не дублируются в кэш-памяти первого и второго уровней), что увеличивает эффективный объем кзшированных данных.

Благодаря примененным в К7 новым архитектурно-техническим решениям микропроцессорам AMD удалось на 7--10% превысить производительность Pentium III при равных тактовых частотах.

Дальнейшее совершенствование архитектуры и технологии производства микропроцессоров в рамках семейства К7 привело к появлению двух новых версий Athlon: Athlon XP й Athlon MP.

Основное отличие процессора AMD Athlon MP от AMD Athlon XP -- использование технологии Smart MP, которая представляет собой совокупность высокоскоростной двойной системной шины и протокола когерентного кэша MOESI, управляющего пропускной способностью памяти, что необходимо для достижения оптимального баланса работы процессоров в многопроцессорных системах. Пропускная способность шины составляет 2,1 Гбайт/с, в расчете на каждый процессор.

Процессор выпускается с тактовыми частотами от I ГГц (технология 0,18 мкм) до 2,133 ГГц (технология 0,13 мкм, ядро Thoroughbred).

Заключение

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

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

В данной курсовой работе было изучено устройство микропроцессоров, его технологии изготовления и были рассмотрены виды современных микропроцессоров.

Задачей, поставленные в данной курсовой работе были выполнены. Был сделан анализ тенденций развития современных микропроцессоров, выявлена их значимость для общества и сделаны приблизительные прогнозы о их будущем развитии.

В результате проведенной работы были сделаны следующие выводы: на мировом рынке продажи процессоров в настоящее время лидируют две компании Intel и АMD. Которые в свою очередь непрерывно конкурируют между собой и пытаются вытеснить друг друга с мирового рынка. В начале 2005 года лидером была компания AMD, чьи процессоры были и производительнее, и дешевле, имели меньшее тепловыделение. Но в апреле того же года Intel пустила процессор Core 2 Duo, а в 2007 Core 2 Quad, которые стали лидерами по продажам на мировом рынке. Сейчас лидерство оставляет за собой компания Intel. Но и AMD ведет бурные научно-исследовательские работы и, возможно, в скором будущем выпустит на рынок совершенно новый и мощный микропроцессор.

Список литературы

1. http://ru.wikipedia.org/wiki/Intel_Core_2_Quad

2. http://www.fcenter.ru/online.shtml?articles/hardware/processors/22651

Размещено на Allbest.ru

Подобные документы

    Принципы цифровой передачи данных. История развития микропроцессоров, их устройство, классификация, функциональные особенности и сферы практического применения. Типы архитектур: cisc, risc. Микропроцессоры с arm-архитектурой, преимущества использования.

    реферат , добавлен 29.12.2014

    Направления автоматизации измерений. Применение микропроцессоров в измерительных приборах. Измерительно-вычислительный комплекс как автоматизированное средство измерений, имеющее в своем составе микропроцессоры. Номенклатура входящих в ИВК компонентов.

    реферат , добавлен 23.01.2009

    Построение цифровой системы обработки информации. Реализация структурной схемы анализатора спектра на основе алгоритма быстрого преобразования Фурье. Выбор микропроцессоров различных серий, сравнительный анализ эффективности микросхем К1802 и К1815.

    курсовая работа , добавлен 01.12.2013

    Функциональные особенности и архитектура Intel Itanium. Работа вычислительной среды и инструкции перехода. Параллелизм уровня инструкций. Поддержка в операционных системах модели множественного адресного пространства. Состав прикладных регистров.

    контрольная работа , добавлен 09.11.2014

    Начало использования полупроводников 1940-50-е годы. Появление и использование первых интегральных схем. Появление БИС микропроцессоров в 1970-е годы. Распространение архитектуры intel. Развитие технологий литорафии. Усложнение техпроцесса в 2000-е годы.

    реферат , добавлен 22.03.2015

    Общая характеристика и применение микроконтроллеров FUJITSU MB-90 и MCS-196 фирмы Intel. Основные особенности микроконтроллеров серии MCS-96 и MB90385. Внутренняя архитектура процессоров. Система команд, работа с внутренними и внешними устройствами.

    курсовая работа , добавлен 01.12.2010

    Семейство 16-разрядных микроконтроллеров Motorola 68HC12, их структура и функционирование. Модуль формирования ШИМ-сигналов. Средства отладки и программирования микроконтроллеров 68НС12. Особенности микроконтроллеров семейства MCS-196 фирмы INTEL.

    курсовая работа , добавлен 04.01.2015

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

    презентация , добавлен 06.02.2012

    Этапы развития информационной электроники. Усилители электрических сигналов. Развитие полупроводниковой информационной техники. Интегральные логические и аналоговые микросхемы. Электронные автоматы с памятью. Микропроцессоры и микроконтроллеры.

    реферат , добавлен 27.10.2011

    Выбор типа микросхем памяти и расчет их количества в модулях. Выбор дешифратора адреса. Распределение адресного пространства. Распределение модулей программ. Расчет нагрузочной способности модуля памяти. Генератор тактовых импульсов микропроцессора.

1. Введение
2. Процессоры с архитектурой 80x86 и Pentium, Pentium II, Pentium III

4. Процессоры семейства R4000 архитектуры MIPS компании MIPS Technology
5. Процессоры с архитектурой SPARC компании Sun Microsystems
6. Процессоры с архитектурой PA-RISC компании Hewlett-Packard,
7. Список литературы.

1. Введение.

Итак, в данной контрольной работе необходимо осветить следующий вопрос.

Современные микропроцессоры

1. Процессоры с архитектурой 80x86 и Pentium, Pentium II, Pentium III
2. Особенности архитектуры Alpha компании DEC
3. Особенности архитектуры POWER компании IBM и PowerPC компаний Motorola, Apple и IBM.

Однако, освещая этот вопрос, нельзя обойти вниманием:

Процессоры семейства R4000 архитектуры MIPS компании MIPS

Процессоры с архитектурой SPARC компании Sun Microsystems

Процессоры с архитектурой PA-RISC компании Hewlett-Packard, хотя в данной работе эти процессыре подробно рассматриваться не будут.

В данной работе будет предоставлена аналитическая информация по процессорам указанных архитектур.

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

2. Процессоры с архитектурой 80x86 и Pentium, Pentium II, Pentium III.

Итак, сначала немного истории: архитектура Intel 8086 – 1978г.

В 1978 году была анонсирована архитектура Intel 8086 как совместимое вверх расширение в то время успешного 8-бит микропроцессора 8080. 8086 представляет собой 16-битовую архитектуру со всеми внутренними регистрами, имеющими 16-битовую разрядность. Микропроцессор 8080 был просто построен на базе накапливающего сумматора (аккумулятора), но архитектура 8086 была расширена дополнительными регистрами. Поскольку почти каждый регистр в этой архитектуре имеет определенное назначение, 8086 по классификации частично можно отнести к машинам с накапливающим сумматором, а частично - к машинам с регистрами общего назначения, и его можно назвать расширенной машиной с накапливающим сумматором. Микропроцессор 8086 (точнее его версия 8088 с 8- битовой внешней шиной) стал основой завоевавшей в последствии весь мир серии компьютеров IBM PC, работающих под управлением операционной системы
MS-DOS.

В 1980 году был анонсирован сопроцессор плавающей точки 8087. Эта архитектура расширила 8086 почти на 60 команд плавающей точки. Ее архитекторы отказались от расширенных накапливающих сумматоров для того, чтобы создать некий гибрид стеков и регистров, по сути расширенную стековую архитектуру. Полный набор стековых команд дополнен ограниченным набором команд типа регистр-память.

В 1982 году был анонсирован микропроцессор 80286, который еще дальше расширил архитектуру 8086. Была создана сложная модель распределения и защиты памяти, расширено адресное пространство до 24 разрядов, а также добавлено небольшое число дополнительных команд. Поскольку очень важно было обеспечить выполнение без изменений программ, разработанных для 8086, в
80286 был предусмотрен режим реальных адресов, позволяющий машине выглядеть почти как 8086. В 1984 году компания IBM объявила об использовании этого процессора в своей новой серии персональных компьютеров IBM PC/AT.

В 1987 году появился микропроцессор 80386, который расширил архитектуру 80286 до 32 бит. В дополнение к 32-битовой архитектуре с 32- битовыми регистрами и 32-битовым адресным пространством, в микропроцессоре
80386 появились новые режимы адресации и дополнительные операции. Все эти расширения превратили 80386 в машину, по идеологии близкую к машинам с регистрами общего назначения. В дополнение к механизмам сегментации памяти, в микропроцессор 80386 была добавлена также поддержка страничной организации памяти. Также как и 80286, микропроцессор 80386 имеет режим выполнения программ, написанных для 8086. Хотя в то время базовой операционной системой для этих микропроцессоров оставалась MS-DOS, 32- разрядная архитектура и страничная организация памяти послужили основой для переноса на эту платформу операционной системы UNIX. Следует напомнить,
Виктор Владиленович, что для процессора 80286 была создана операционная система XENIX, а UNIX на 286 не юзали (по-крайней мере «на моей памяти»).

Эта история иллюстрирует эффект, вызванный необходимостью обеспечения совместимости с 80x86, поскольку существовавшая база программного обеспечения на каждом шаге была слишком важной. К счастью, последующие процессоры (80486 в 1989 и Pentium в 1993 году) были нацелены на увеличение производительности и добавили к видимому пользователем набору команд только три новые команды, облегчающие организацию многопроцессорной работы. Что бы ни говорилось о неудобствах архитектуры 80x86, следует иметь в виду, что она преобладает в мире персональных компьютеров. Почти 80% установленных малых систем базируются именно на этой архитектуре. Споры относительно преимуществ CISC и RISC архитектур постепенно стихают, поскольку современные микропроцессоры стараются вобрать в себя наилучшие свойства обоих подходов. Уже давно устаревшее, но тем не менее активно используемое, семейство процессоров i486 (468SX, 486DX, 486DX2 и 486DX4), в котором сохранились система команд и методы адресации процессора i386, уже имеет некоторые свойства RISC-микропроцессоров. Например, наиболее употребительные команды выполняются за один такт. Компания Intel для оценки производительности своих процессоров ввела в употребление специальную характеристику, которая называется рейтингом iCOMP. Компания надеялась, что эта характеристика станет стандартной тестовой оценкой и будет применяться другими производителями микропроцессоров, однако последние с понятной осторожностью отнеслись к системе измерений производительности, введенной компанией Intel, и не без оснований.

Если сравнивать i486SX-25 и Pentium-133, то их производительность, согласно рейтингу iCOMP соотносилась как 1:12. Что, само собой, говорило о том что повышение производительности достигнуто не повышением тактовой частот работы процессора и «косметическим облизыванием» ядра. Так чт разберем их чуть подробнее.

Процессоры i486SX и i486DX - это 32-битовые процессоры с внутренней кэш-па-мятью емкостью 8 Кбайт и 32-битовой шиной данных. Основное отличие между ними заключается в том, что в процессоре i486SX отсутствует интегрированный сопроцессор плавающей точки. Поэтому он имеет меньшую цену и применяется в системах, для которых не очень важна производительность при обработке вещественных чисел. Для этих систем обычно возможно расширение с помощью внешнего сопроцессора i487SX. Процессоры Intel OverDrive и i486DX2 практически идентичны. Однако кристалл OverDrive имеет корпус, который может устанавливаться в гнездо расширения сопроцессора i487SX, применяемое в ПК на базе i486SX. В процессорах OverDrive и i486DX2 применяется технология удвоения внутренней тактовой частоты, что позволяет увеличить производительность процессора почти на 70%. Процессор i486DX4/100 использует технологию утроения тактовой частоты. Он работает с внутренней тактовой частотой 99 МГц, в то время как внешняя тактовая частота (частота, на которой работает внешняя шина) составляет 33 МГц. Этот процессор практически обеспечивает равные возможности с машинами класса 60 МГц
Pentium, являясь их полноценной и доступной по цене альтернативой.

Появившийся в 1993 году процессор Pentium ознаменовал собой новый этап в развитии архитектуры x86, связанный с адаптацией многих свойств процессоров с архитектурой RISC. Он изготовлен по смешной по нынешним временам 0.8 микронной БиКМОП технологии и содержит 3.1 миллиона транзисторов. Первоначальная реализация была рассчитана на работу с тактовой частотой 60 и 66 МГц. В настоящее время имеются процессоры
Pentium, работающие с тактовой частотой 75, 90, 100, 120, 133, 150, 200,
233 МГц. Процессор Pentium по сравнению со своими предшественниками обладает целым рядом улучшенных характеристик. Главными его особенностями являются: двухпотоковая суперскалярная организация, допускающая параллельное выполнение пары простых команд; наличие двух независимых двухканальных множественно-ассоциативных кэшей для команд и для данных, обеспечивающих выборку данных для двух операций в каждом такте; динамическое прогнозирование переходов; конвейерная организация устройства плавающей точки с 8 ступенями; двоичная совместимость с существующими процессорами семейства 80x86.

Блок-схема процессора Pentium представлена на рисунке 1. Прежде всего новая микроархитектура этого процессора базируется на идее суперскалярной обработки (правда с некоторыми ограничениями). Основные команды распределяются по двум независимым исполнительным устройствам (конвейерам U и V). Конвейер U может выполнять любые команды семейства x86, включая целочисленные команды и команды с плавающей точкой. Конвейер V предназначен для выполнения простых целочисленных команд и некоторых команд с плавающей точкой. Команды могут направляться в каждое из этих устройств одновременно, причем при выдаче устройством управления в одном такте пары команд более сложная команда поступает в конвейер U, а менее сложная - в конвейер V.
Такая попарная выдача команд возможна правда только для ограниченного подмножества целочисленных команд. Команды арифметики с плавающей точкой не могут запускаться в паре с целочисленными командами. Одновременная выдача двух команд возможна только при отсутствии зависимостей по регистрам. При остановке команды по любой причине в одном конвейере, как правило останавливается и второй конвейер, после чего компьютер радостно повисает.

Остальные устройства процессора предназначены для снабжения конвейеров необходимыми командами и данными. В отличие от процессоров i486 в процессоре Pentium используется раздельная кэш-память команд и данных емкостью по 8 Кбайт, что обеспечивает независимость обращений. За один такт из каждой кэш-памяти могут считываться два слова. При этом кэш-память данных построена на принципах двухкратного расслоения, что обеспечивает одновременное считывание двух слов, принадлежащих одной строке кэш-памяти.
Кэш-память команд хранит сразу три копии тегов, что позволяет в одном такте считывать два командных слова, принадлежащих либо одной строке, либо смежным строкам для обеспечения попарной выдачи команд, при этом третья копия тегов используется для организации протокола наблюдения за когерентностью состояния кэш-памяти. Для повышения эффективности перезагрузки кэш-памяти в процессоре применяется 64-битовая внешняя шина данных

В процессоре УЖЕ предусмотрен механизм динамического прогнозирования направления переходов. С этой целью на кристалле размещена небольшая кэш- память, которая называется буфером целевых адресов переходов (BTB), и две независимые пары буферов предварительной выборки команд (по два 32-битовых буфера на каждый конвейер). Буфер целевых адресов переходов хранит адреса команд, которые находятся в буферах предварительной выборки. Работа буферов предварительной выборки организована таким образом, что в каждый момент времени осуществляется выборка команд только в один из буферов соответствующей пары. При обнаружении в потоке команд операции перехода вычисленный адрес перехода сравнивается с адресами, хранящимися в буфере
BTB. В случае совпадения предсказывается, что переход будет выполнен, и разрешается работа другого буфера предварительной выборки, который начинает выдавать команды для выполнения в соответствующий конвейер. При несовпадении считается, что переход выполняться не будет и буфер предварительной выборки не переключается, продолжая обычный порядок выдачи команд. Это позволяет избежать простоев конвейеров при правильном прогнозе направления перехода. Окончательное решение о направлении перехода естественно принимается на основании анализа кода условия. При неправильно сделанном прогнозе содержимое конвейеров аннулируется и выдача команд начинается с необходимого адреса. Неправильный прогноз приводит к приостановке работы конвейеров на 3-4 такта. Следует отметить, что возросшая производительность процессора Pentium требовала и соответствующей организации системы на его основе. Компания Intel разработала и поставляет все необходимые для этого наборы микросхем. Прежде всего для согласования скорости с динамической основной памятью необходима кэш-память второго уровня. Контроллер кэш-памяти 82496 и микросхемы статической памяти 82491 обеспечивают построение такой кэш-памяти объемом 256 Кбайт и работу процессора без тактов ожидания. Для эффективной организации систем Intel разработала стандарт на высокопроизводительную локальную шину PCI.
Выпускаются наборы микросхем для построения мощных компьютеров на ее основе.

Следующим процессором, продолжающим лиию Pentium, был выпущен P6 или
PentiumPro. Он работает с тактовыми частотами 150: 166: 180 и 200 МГц.
PentiumPro обеспечивает полную совместимость с процессорами предыдущих поколений. Он предназначен главным образом для поддержки высокопроизводительных 32-битовых вычислений в области САПР, трехмерной графики и мультимедиа: а также широкого круга коммерческих приложений баз данных. По результатам испытаний на тестах SPEC (8.58 SPECint95 и 6.48
SPECfp95) процессор PentiumPro по производительности целочисленных операций в текущий момент времени вышел на третье место в мировой классификации, уступая только 180 МГц HP PA-8000 и 400 МГц DEC Alpha (рис.2.). Для достижения такой производительности необходимо использование технических решений, широко применяющихся при построении RISC-процессоров:

Рис.2. выполнение команд не в предписанной программой последовательности, что устраняет во многих случаях приостановку конвейеров из-за ожидания операндов операций; использование методики переименования регистров, позволяющей увеличивать эффективный размер регистрового файла (малое количество регистров - одно из самых узких мест архитектуры x86); расширение суперскалярных возможностей по отношению к процессору Pentium, в котором обеспечивается одновременная выдача только двух команд с достаточно жесткими ограничениями на их комбинации.

Кроме того, в борьбу за новое поколение процессоров x86 включились компании, ранее занимавшиеся изготовлением Intel-совместимых процессоров.
Это компании Advanced Micro Devices (AMD), Cyrix Corp и NexGen. С точки зрения микроархитектуры наиболее близок к Pentium процессор М1 компании
Cyrix, который должен появиться на рынке в ближайшее время. Также как и
Pentium он имеет два конвейера и может выполнять до двух команд в одном такте. Однако в процессоре М1 число случаев, когда операции могут выполняться попарно, значительно увеличено. Кроме того в нем применяется методика обходов и ускорения пересылки данных, позволяющая устранить приостановку конвейеров во многих ситуациях, с которыми не справляется
Pentium. Процессор содержит 32 физических регистра (вместо 8 логических, предусмотренных архитектурой x86) и применяет методику переименования регистров для устранения зависимостей по данным. Как и Pentium, процессор
M1 для прогнозирования направления перехода использует буфер целевых адресов перехода емкостью 256 элементов, но кроме того поддерживает специальный стек возвратов, отслеживающий вызовы процедур и последующие возвраты.

Процессоры К5 компании AMD и Nx586 компании NexGen используют в корне другой подход. Основа их процессоров - очень быстрое RISC-ядро, выполняющее высокорегулярные операции в суперскалярном режиме. Внутренние форматы команд (ROP у компании AMD и RISC86 у компании NexGen) соответствуют традиционным системам команд RISC-процессоров. Все команды имеют одинаковую длину и кодируются в регулярном формате. Обращения к памяти выполняются специальными командами загрузки и записи. Как известно, архитектура x86 имеет очень сложную для декодирования систему команд. В процессорах K5 и
Nx586 осуществляется аппаратная трансляция команд x86 в команды внутреннего формата, что дает лучшие условия для распараллеливания вычислений. В процессоре К5 имеются 40, а в процессоре Nx586 22 физических регистра, которые реализуют методику переименования. В процессоре К5 информация, необходимая для прогнозирования направления перехода, записывается прямо в кэш команд и хранится вместе с каждой строкой кэш-памяти. В процессоре
Nx586 для этих целей используется кэш-память адресов переходов на 96 элементов.

Таким образом, компания Intel не обладает монополией на методы конструирования высокопроизводительных процессоров x86. Следует отметить, что сама компания Intel заключила стратегическое соглашение с компанией
Hewlett-Packard на разработку следующего поколения микропроцессоров, в которых архитектура x86 будет сочетаться с архитектурой очень длинного командного слова (VLIW –архитектурой.

А теперь мы плавненько перейдем на Pentium II.

Для компаний Intel и Hewlett-Packard не существовало "проблемы 2000 года" - для них это был год новых возможностей. В конце 1999 года Intel представила Merced - первый процессор, построенный с использованием архитектуры нового поколения, совместно разработанной двумя компаниями.
Хотя эта 64-разрядная архитектура основана на многолетних исследованиях
Intel, HP, других компаний и университетов, она радикально отличается от всего, что было представлено на рынке до нее.

Эта архитектура, известная под названием Intel Architecture-64 (IA-
64), полностью "порвала с прошлым". IA-64 не является как 64-разрядным расширением 32-разрядной архитектуры х86 компании Intel, так и переработкой
64-разрядной архитектуры PA-RISC компании HP. IA-64 представляет собой нечто абсолютно новое - передовую архитектуру, использующую длинные слова команд (long instruction words -- LIW), предикаты команд (instruction predication), устранение ветвлений (branch elimination), предварительную загрузку данных (speculative loading) и другие ухищрения для того, чтобы
"извлечь больше параллелизма" из кода программ.

По поводу совместимости, стоит заметить, что но в Merced на самом деле существует два режима декодирования команд VLIW и старый CISC. Т.е. программы переключаются в необходимый режим исполнения. В архитектуре х86 были добавлен ряд команд для перехода в новый режим, а также для передачи данных. В IA-64 такие команды есть изначально. Перед тем, как углубиться в технические детали, попробуем понять, почему Intel и HP рискнули пойти на столь кардинальные перемены. Причина сводится к следующему: они считают, что как CISC, так и RISC-архитектуры исчерпали себя.

Небольшой экскурс в прошлое. Архитектура х86 компании Intel - CISC архитектура, появившаяся в 1978 году. В те времена процессоры представляли собой скалярные устройства (то есть могли в каждый момент времени выполнять только одну команду), при этом конвейеров практически не было. Процессоры содержали десятки тысяч транзисторов.

PA-RISC компании HP была разработана в 1986 году, когда технология суперскалярных (с возможностью выполнения нескольких команд одновременно) конвейеров только начала развиваться. Процессоры содержали сотни тысяч транзисторов. В конце 90-х наиболее совершенные процессоры содержали миллионы транзисторов. К моменту начала выпуска Merced компания Intel перешла на 0.18-микронную технологию вместо нынешней 0.25-микронной. Уже первые чипы архитектуры IA-64 содержали десятки миллионов транзисторов.

Проблему ещё осложняет тот факт, что микросхемы памяти не успевают за тактовой частотой процессоров. Когда Intel разработала архитектуру х86, процессор мог извлекать данные из памяти с такой же скоростью, с какой он их обрабатывал. Сегодня процессор тратит сотни тактов на ожидание загрузки данных из памяти, даже несмотря на наличие большой и быстрой кэш-памяти.
Команды в формате IA-64 упакованы по три в 128-битный пакет для быстрейшей обработки. Обычно это называют "LIW encoding". (Русский аналог подобрать сложно. Наиболее адекватно, на мой взгляд, перевести как "кодирование в длинные слова команд".) Однако компания Intel избегает такого названия, заявляя, что с ним связаны "негативные ассоциации" (negative connotation).
По той же причине Intel не любит называть сами команды RISC-подобными (RISC- like), даже несмотря на то, что они имеют фиксированную длину и предположительно оптимизированы для исполнения за один такт в ядре, не нуждающемся в микрокоде. Intel предпочитает называть свою новую LIW- технологию Explicitly Parallel Instruction Computing или EPIC (Вычисления с
Явной Параллельностью Инструкций, где "явной" означае явно указанной при трансляции). В любом случае формат команд IA-64 не имеет ничего общего с х86. Команды х86 могут иметь длину от 8 до 108 бит, и процессор должен последовательно декодировать каждую команду после определения её границ.
Каждый 128-битный пакет содержит шаблон (template) длиной в несколько бит, помещаемый в него компилятором, который указывает процессору, какие из команд могут выполняться параллельно. Теперь процессору не нужно будет анализировать поток команд в процессе выполнения для выявления "скрытого параллелизма". Вместо этого наличие параллелизма определяет компилятор и помещает информацию в код программы. Каждая команда (как для целочисленных вычислений, так и для вычислений с плавающей точкой) содержит три 7-битных поля регистра общего назначения (РОН). Из этого следует, что процессоры архитектуры IA-64 содержат 128 целочисленных РОН и 128 регистров для вычислений с плавающей точкой. Все они доступны программисту и являются регистрами с произвольным доступом (programmer-visible random-access registers). По сравнению с процессорами х86, у которых всего восемь целочисленных РОН и стек глубины 8 для вычислений с плавающей точкой, IA-64 намного "шире" и, соответственно, будет намного реже простаивать из-за
"нехватки регистров".
Компиляторы для IA-64 будут использовать технологию "отмеченных команд"
(predication) для устранения потерь производительности из-за неправильно предсказанных переходов и необходимости пропуска участков кода после ветвлений. Когда процессор встречает "отмеченное" ветвление в процессе выполнения программы, он начинает одновременно выполнять все ветви. После того, как будет определена "истинная" ветвь, процессор сохраняет необходимые результаты и сбрасывает остальные.
Компиляторы для IA-64 будут также просматривать исходный код с целью поиска команд, использующих данные из памяти. Найдя такую команду, они будут добавлять пару команд - команду предварительной загрузки (speculative loading) и проверки загрузки (speculative check). Во время выполнения программы первая из команд загружает данные в память до того, как они понадобятся программе. Вторая команда проверяет, успешно ли произошла загрузка, перед тем, как разрешить программе использовать эти данные.
Предварительная загрузка позволяет уменьшить потери производительности из- за задержек при доступе к памяти, а также повысить параллелизм.

3. Особенности архитектуры Alpha компании DEC

В настоящее время семейство микропроцессоров с архитектурой Alpha представлено несколькими кристаллами, имеющими различные диапазоны производительности, работающие с разной тактовой частотой и рассеивающие разную мощность. Первым на рынке появился 64-разрядный микропроцессор Alpha
(DECchip 21064) . Он представляет собой RISC-процессор в однокристальном исполнении, в состав которого входят устройства целочисленной и плавающей арифметики, а также кэш-память емкостью 16 Кб. Кристалл проектировался с учетом реализации передовых методов увеличения производительности, включая конвейерную организацию всех функциональных устройств, одновременную выдачу нескольких команд для выполнения, а также средства организации симметричной многопроцессорной обработки. В кристалле имеются два регистровых файла по
32 64-битовых регистра: один для целых чисел, второй - для чисел с плавающей точкой. Для обеспечения совместимости с архитектурами MIPS и VAX архитектура Alpha поддерживает арифметику с одинарной и двойной точностью как в соответствии со стандартом IEEE 754, так и в соответствии с внутренним для компании стандартом арифметики VAX. Самая мощная модель процессора 21064 работает на частоте 200 МГц. В конце 1993 года появилась модернизированная версия кристалла - модель 21064А, имеющая на кристалле кэш-память удвоенного объема и работающая с тактовой частотой 275 МГц.
Затем были выпущены модели 21066 и 21068, оперирующие на частоте 166 и 66
МГц. Отличительной особенностью этой ветви процессоров Alpha является реализация на кристалле шины PCI. Это существенно упрощает и удешевляет как проектирование, так и производство компьютеров. Отличительная особенность модели 21068 - низкая потребляемая мощность (около 8 ватт). Основное предназначение этих двух новых моделей - персональные компьютеры и одноплатные ЭВМ. На рисунке 3. представлена блок-схема микропроцессора
21066. Основными компонентами этого процессора являются: кэш-память команд, целочисленное устройство, устройство плавающей точки, устройство выполнения команд загрузки/записи, кэш-память данных, а также контроллер памяти и контроллер ввода/вывода.

Кэш-память команд представляет собой кэш прямого отображения емкостью
8 Кбайт. Команды, выбираемые из этой кэш-памяти, могут выдаваться попарно для выполнения в одно из исполнительных устройств. Кэш-память данных емкостью 8 Кбайт также реализует кэш с прямым отображением. При выполнении операций записи в память данные одновременно записываются в этот кэш и в буфер записи. Контроллер памяти или контроллер ввода/вывода шины PCI обрабатывают все обращения, которые проходят через расположенные на кристалле кэш-памяти первого уровня. Контроллер памяти прежде всего проверяет содержимое внешней кэш-памяти второго уровня, которая построена на принципе прямого отображения и реализует алгоритм отложенного обратного копирования при выполнении операций записи. При обнаружении промаха контроллер обращается к основной памяти для перезагрузки соответствующих строк кэш-памяти. Контроллер ввода/вывода шины PCI обрабатывает весь трафик, связанный с вводом/выводом. Под управлением центрального процессора он выполняет операции программируемого ввода/вывода. Трафик прямого доступа к памяти шины PCI обрабатывается контроллером PCI совместно с контроллером памяти. При выполнении операций прямого доступа к памяти в режиме чтения и записи данные не размещаются в кэш-памяти второго уровня. Интерфейсы памяти и PCI были разработаны специально в расчете на однопроцессорные конфигурации и не поддерживают реализацию мультипроцессорной архитектуры.
На рисунке 4. показан пример системы, построенной на базе микропроцессора
21066. В представленной конфигурации контроллер памяти выполняет обращения как к статической памяти, с помощью которой реализована кэш-память второго уровня, так и к динамической памяти, на которой построена основная память.
Для хранения тегов и данных в кэш-памяти второго уровня используются кристаллы статическая памяти с одинаковым временем доступа по чтению и записи.

Высокоскоростная шина PCI имеет ряд привлекательных свойств. Помимо возможности работы с прямым доступом к памяти и программируемым вводом/выводом она допускает специальные конфигурационные циклы, расширяемость до 64 бит, компоненты, работающие с питающими напряжениями
3.3 и 5 В, а также более быстрое тактирование. Базовая реализация шины PCI поддерживает мультиплексирование адреса и данных и работает на частоте 33
МГц, обеспечивая максимальную скорость передачи данных 132 Мбайт/с. Шина
PCI непосредственно управляется микропроцессором. На рисунке 4 показаны некоторые высокоскоростные периферийные устройства: графические адаптеры, контроллеры SCSI и сетевые адаптеры, подключенные непосредственно к шине
PCI. Мостовая микросхема интерфейса ISA позволяет подключить к системе низкоскоростные устройства типа модема, флопа и т.д. Позже, на смену процессору пришла его модернизированная версия. Как и его предшественник, новый кристалл Alpha 21066A помимо интерфейса PCI содержит на кристалле интегрированный контроллер памяти и графический акселератор. Эти характеристики позволяют значительно снизить стоимость реализации систем, базирующихся на Alpha 21066A, и обеспечивают простой и дешевый доступ к внешней памяти и периферийным устройствам. Alpha 21066A имеет две модификации в соответствии с частотой: 100 МГц и 233 МГц. Модель с 233 МГц обеспечивает производительность 94 и 100 единиц, соответственно, по тестам
SPECint92 и SPECfp92. Микропроцессор Alpha 21164 представляет собой вторую полностью новую реализацию архитектуры Alpha. Микропроцессор 21164, представленный в сентябре 1994 года, обеспечивает производительность 330 и
500 единиц, соответственно, по шкалам SPECint92 и SPECfp92 или около 1200
MIPS и выполняет до четырех инструкций за такт. На кристалле микропроцессора 21164 размещено около 9,3 миллиона транзисторов, большинство из которых образуют кэш. Кристалл построен на базе 0.5 микронной КМОП технологии компании DEC. Он собирается в 499-контактные корпуса PGA (при этом 205 контактов отводятся под разводку питания и земли) и рассеивает 50 Вт при питающем напряжении 3.3 В на частоте 300 МГц.
Переход в 1996 году на 0.35 микронную КМОП технологию привел к возможности дальнейшего увеличения тактовой частоты и производительности процессора.
Процессоры 21164 выпускались с тактовой частотой 366 МГц (11.3 SPECint95,
15.4 SPECfp95) и 433 МГц (13.3 SPECint95, 18.3 SPECfp95). В конце 1996 года начались массовые поставки 21164 с тактовой частотой 500 МГц (15.4
SPECint95, 21.1 SPECfp95). Таким образом, в 1996г. компания DEC имела самые мощные процессоры, пиковая производительность которых составляла 2 миллиарда операций в секунду.

Ключевыми моментами для реализации высокой производительности является суперскалярный режим работы процессора, обеспечивающий выдачу для выполнения до четырех команд в каждом такте, высокопроизводительная неблокируемая подсистема памяти с быстродействующей кэш-памятью первого уровня, большая, размещенная на кристалле, кэш-память второго уровня и уменьшенная задержка выполнения операций во всех функциональных устройствах. На рисунке 5 представлена блок-схема процессора, который включает пять функциональных устройств: устройство управления потоком команд (IBOX), целочисленное устройство (EBOX), устройство плавающей точки
(FBOX), устройство управления памятью (MBOX) и устройство управления кэш- памятью и интерфейсом шины (CBOX). На рисунке также показаны три расположенных на кристалле кэш-памяти. Кэш-память команд и кэш-память данных представляют собой первичные кэши, реализующие прямое отображение.
Множественно-ассоциативная кэш-память второго уровня предназначена для хранения команд и данных. Длина конвейеров процессора 21164 варьируется от
7 ступеней для выполнения целочисленных команд и 9 ступеней для реализации команд с плавающей точкой до 12 ступеней при выполнении команд обращения к памяти в пределах кристалла и переменного числа ступеней при выполнении команд обращения к памяти за пределами кристалла. Устройство управления потоком команд осуществляет выборку и декодирование команд из кэша команд и направляет их для выполнения в соответствующие исполнительные устройства после разрешения всех конфликтов по регистрам и функциональным устройствам.
Оно управляет выполнением программы и всеми аспектами обработки исключительных ситуаций, ловушек и прерываний. Кроме того, оно обеспечивает управление всеми исполнительными устройствами, контролируя все цепи обхода данных и записи в регистровый файл. Устройство управления содержит 8 Кбайт кэш команд, схемы предварительной выборки команд и связанный с ними буфер перезагрузки, схемы прогнозирования направления условных переходов и буфер преобразования адресов команд (ITB). Целочисленное исполнительное устройство выполняет целочисленные команды, вычисляет виртуальные адреса для всех команд загрузки и записи, выполняет целочисленные команды условного перехода и все другие команды управления. Оно включает в себя регистровый файл и несколько функциональных устройств, расположенных на четырех ступенях двух параллельных конвейеров. Первый конвейер содержит сумматор, устройство логических операций, сдвигатель и умножитель. Второй конвейер содержит сумматор, устройство логических операций и устройство выполнения команд управления.

Устройство плавающей точки состоит из двух конвейерных исполнительных устройств: конвейера сложения, который выполняет все команды плавающей точки, за исключением команд умножения, и конвейер умножения, который выполняет команды умножения с плавающей точкой. Два специальных конвейера загрузки и один конвейер записи данных позволяют командам загрузки/записи выполняться параллельно с выполнением операций с плавающей точкой.
Аппаратно поддерживаются все режимы округления, предусмотренные стандартами
IEEE и VAX.

Устройство управления памятью выполняет все команды загрузки, записи и барьерные операции синхронизации. Оно содержит полностью ассоциативный 64- строчный буфер преобразования адресов (DTB), 8 Кбайт кэш-память данных с прямым отображением, файл адресов промахов и буфер записи. Длина строки в кэше данных равна 32 байтам, он имеет два порта по чтению и реализован по принципу сквозной записи. Он индексируется разрядами физического адреса и в тегах хранятся физические адреса. В устройство управления памятью в каждом такте может поступать до двух виртуальных адресов из целочисленного устройства. DTB также имеет два порта, поэтому он может одновременно выполнять преобразование двух виртуальных адресов в физические. Команды загрузки обращаются к кэшу данных и возвращают результат в регистровый файл в случае попадания. При этом задержка составляет два такта. В случае промаха физические адреса направляются в файл адресов промахов, где они буферизуются и ожидают завершения обращения к кэш-памяти второго уровня.
Команды записи записывают данные в кэш данных в случае попадания и всегда помещают данные в буфер записи, где они ожидают обращения к кэш-памяти второго уровня. Отличительной особенностью микропроцессора 21164 является размещение на кристалле вторичного трехканального множественно- ассоциативного кэша, емкостью 96 Кбайт. Вторичный кэш резко снижает количество обращений к внешней шине микропроцессора. Кроме вторичного кэша на кристалле поддерживается работа с внешним кэшем третьего уровня.

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

4. Особенности архитектуры POWER компании IBM и PowerPC компаний

Motorola, Apple и IBM.

Как уже было отмечено, одним из разработчиков фундаментальной концепции RISC-архитектуры был Джон Кук из Исследовательского центра IBM им. Уотсона, который в середине 70-х проводил исследования в этом направлении и построил миникомпьютер IBM 801, который так никогда и не появился на рынке. Дальнейшее развитие этих идей в компании IBM нашло отражение при разработке архитектуру POWER в конце 80-х. Архитектура POWER
(и ее поднаправления POWER2 и PowerPC) в настоящее время являются основой семейства рабочих станций и серверов RISC System /6000 компании IBM.
Развитие архитектуры IBM 801 в направлении POWER шло в следующих направлениях: воплощение концепции суперскалярной обработки, улучшение архитектуры как целевого объекта компиляторов, сокращение длины конвейера и времени выполнения команд и, наконец, приоритетная ориентация на эффективное выполнение операций с плавающей точкой.
Архитектура POWER

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

Во-первых, набор команд был основан на идее суперскалярной обработки.
В базовой архитектуре команды распределяются по трем независимым исполнительным устройствам: устройству переходов, устройству с фиксированной точкой и устройству с плавающей точкой. Команды могут направляться в каждое из этих устройств одновременно, где они могут выполняться одновременно и заканчиваться не в порядке поступления. Для увеличения уровня параллелизма, который может быть достигнут на практике, архитектура набора команд определяет для каждого из устройств независимый набор регистров. Это минимизирует связи и синхронизацию, требуемые между устройствами, позволяя тем самым исполнительным устройствам настраиваться на динамическую смесь команд. Любая связь по данным, требующаяся между устройствами, должна анализироваться компилятором, который может ее эффективно спланировать. Следует отметить, что это только концептуальная модель. Любой конкретный процессор с архитектурой POWER может рассматривать любое из концептуальных устройств как множество исполнительных устройств для поддержки дополнительного параллелизма команд. Но существование модели приводит к согласованной разработке набора команд, который естественно поддерживает степень параллелизма по крайней мере равную трем.

Во-вторых, архитектура POWER расширена несколькими "смешанными" командами для сокращения времен выполнения. Возможно единственным недостатком технологии RISC по сравнению с CISC, является то, что иногда она использует большее количество команд для выполнения одного и того же задания. Было обнаружено, что во многих случаях увеличения размера кода можно избежать путем небольшого расширения набора команд, которое вовсе не означает возврат к сложным командам, подобным командам CISC. Например, значительная часть увеличения программного кода была обнаружена в кодах пролога и эпилога, связанных с сохранением и восстановлением регистров во время вызова процедуры. Чтобы устранить этот фактор IBM ввела команды
"групповой загрузки и записи", которые обеспечивают пересылку нескольких регистров в/из памяти с помощью единственной команды. Соглашения о связях, используемые компиляторами POWER, рассматривают задачи планирования, разделяемые библиотеки и динамическое связывание как простой, единый механизм. Это было сделано с помощью косвенной адресации посредством таблицы содержания (TOC - Table Of Contents), которая модифицируется во время загрузки. Команды групповой загрузки и записи были важным элементом этих соглашений о связях.

Другим примером смешанных команд является возможность модификации базового регистра вновь вычисленным эффективным адресом при выполнении операций загрузки или записи (аналог автоинкрементной адресации). Эти команды устраняют необходимость выполнения дополнительных команд сложения, которые в противном случае потребовались бы для инкрементирования индекса при обращениях к массивам. Хотя это смешанная операция, она не мешает работе традиционного RISC-конвейера, поскольку модифицированный адрес уже вычислен и порт записи регистрового файла во время ожидания операции с памятью свободен.

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

Третьим фактором, который отличает архитектуру POWER от многих других
RISC-архитектур, является отсутствие механизма "задержанных переходов".
Обычно этот механизм обеспечивает выполнение команды, следующей за командой условного перехода, перед выполнением самого перехода. Этот механизм эффективно работал в ранних RISC-машинах для заполнения "пузыря", появляющегося при оценке условий для выбора направления перехода и выборки нового потока команд. Однако в более продвинутых, суперскалярных машинах, этот механизм может оказаться неэффективным, поскольку один такт задержки команды перехода может привести к появлению нескольких "пузырей", которые не могут быть покрыты с помощью одного архитектурного слота задержки. Почти все такие машины, чтобы устранить влияние этих "пузырей", вынуждены вводить дополнительное оборудование (например, кэш-память адресов переходов). В таких машинах механизм задержанных переходов становится не только мало эффективным, но и привносит значительную сложность в логику обработки последовательности команд. Вместо этого архитектура переходов POWER была организована для поддержки методики "предварительного просмотра условных переходов" (branch-lockahead) и методики "свертывания переходов" (branch- folding).

Методика реализации условных переходов, используемая в архитектуре
POWER, является четвертым уникальным свойством по сравнению с другими RISC- процессорами. Архитектура POWER определяет расширенные свойства регистра условий. Проблема архитектур с традиционным регистром условий заключается в том, что установка битов условий как побочного эффекта выполнения команды, ставит серьезные ограничения на возможность компилятора изменить порядок следования команд. Кроме того, регистр условий представляет собой единственный архитектурный ресурс, создающий серьезное узкое горло в машине, которая параллельно выполняет несколько команд или выполняет команды не в порядке их появления в программе. Некоторые RISC-архитектуры обходят эту проблему путем полного исключения из своего состава регистра условий и требуют установки кода условий с помощью команд сравнения в универсальный регистр, либо путем включения операции сравнения в саму команду перехода. Последний подход потенциально перегружает конвейер команд при выполнении перехода. Поэтому архитектура POWER вместо того, чтобы исправлять проблемы, связанные с традиционным подходом к регистру условий, предлагает: a) наличие специального бита в коде операции каждой команды, что делает модификацию регистра условий дополнительной возможностью, и тем самым восстанавливает способность компилятора реорганизовать код, и b) несколько (восемь) регистров условий для того, чтобы обойти проблему единственного ресурса и обеспечить большее число имен регистра условий так, что компилятор может разместить и распределить ресурсы регистра условий, как он это делает для универсальных регистров.

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

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

По данным IBM процессор POWER требует менее одного такта для выполнении одной команды по сравнению с примерно 1.25 такта у процессора
Motorola 68040, 1.45 такта у процессора SPARC, 1.8 такта у Intel i486DX и
1.8 такта Hewlett-Packard PA-RISC. Тактовая частота архитектурного ряда в зависимости от модели меняется от 25 МГц до 62 МГц.

Процессоры POWER работают на частоте 33, 41.6, 45, 50 и 62.5 МГЦ.
Архитектура POWER включает раздельную кэш-память команд и данных (за исключением рабочих станций и серверов рабочих групп начального уровня, которые имеют однокристальную реализацию процессора POWER и общую кэш- память команд и данных), 64- или 128-битовую шину памяти и 52-битовый виртуальный адрес. Она также имеет интегрированный процессор плавающей точки и таким образом хорошо подходит для приложений с интенсивными вычислениями, типичными для технической среды, хотя текущая стратегия
RS/6000 нацелена как на коммерческие, так и на технические приложения.
RS/6000 показывает хорошую производительность на плавающей точке: 134.6
SPECp92 для POWERstation/Powerserver 580. Это меньше, чем уровень моделей
Hewlett-Packard 9000 Series 800 G/H/I-50, которые достигают уровня 150
SPECfp92.

Для реализации быстрой обработки ввода/вывода в архитектуре POWER используется шина Micro Channel, имеющая пропускную способность 40 или 80
Мбайт/сек. Шина Micro Channel включает 64-битовую шину данных и обеспечивает поддержку работы нескольких главных адаптеров шины. Такая поддержка позволяет сетевым контроллерам, видеоадаптерам и другим интеллектуальным устройствам передавать информацию по шине независимо от основного процессора, что снижает нагрузку на процессор и соответственно увеличивает системную производительность.
Многокристальный набор POWER2 состоит из восьми полузаказных микросхем
(устройств):
Блок кэш-памяти команд (ICU) - 32 Кбайт, имеет два порта с 128-битовыми шинами;
Блок устройств целочисленной арифметики (FXU) - содержит два целочисленных конвейера и два блока регистров общего назначения (по 32 32-битовых регистра). Выполняет все целочисленные и логические операции, а также все операции обращения к памяти;
Блок устройств плавающей точки (FPU) - содержит два конвейера для выполнения операций с плавающей точкой двойной точности, а также 54 64- битовых регистра плавающей точки;
Четыре блока кэш-памяти данных - максимальный объем кэш-памяти первого уровня составляет 256 Кбайт. Каждый блок имеет два порта. Устройство реализует также ряд функций обнаружения и коррекции ошибок при взаимодействии с системой памяти;
Блок управления памятью (MMU).

Набор кристаллов POWER2 содержит порядка 23 миллионов транзисторов на площади 1217 квадратных мм и изготовлен по технологии КМОП с проектными нормами 0.45 микрон. Рассеиваемая мощность на частоте 66.5 МГц составляет
65 Вт.

Производительность процессора POWER2 по сравнению с POWER значительно повышена: при тактовой частоте 71.5 МГц она достигает 131 SPECint92 и 274
SPECfp92.

Эволюция архитектуры POWER в направлении архитектуры PowerPC

Компания IBM распространяет влияние архитектуры POWER в направлении малых систем с помощью платформы PowerPC. Архитектура POWER в этой форме может обеспечивать уровень производительности и масштабируемость, превышающие возможности современных персональных компьютеров. PowerPC базируется на платформе RS/6000 в дешевой конфигурации. В архитектурном плане основные отличия этих двух разработок заключаются лишь в том, что системы PowerPC используют однокристальную реализацию архитектуры POWER, изготавливаемую компанией Motorola, в то время как большинство систем
RS/6000 используют многокристальную реализацию. Имеется несколько вариаций процессора PowerPC, обеспечивающих потребности портативных изделий и настольных рабочих станций, но это не исключает возможность применения этих процессоров в больших системах. Первым на рынке был объявлен процессор 601, предназначенный для использования в настольных рабочих станциях компаний
IBM и Apple. За ним последовали кристаллы 603 для портативных и настольных систем начального уровня и 604 для высокопроизводительных настольных систем. Наконец, процессор 620 разработан специально для серверных конфигураций и ожидается, что со своей 64-битовой организацией он обеспечит исключительно высокий уровень производительности.

При разработке архитектуры PowerPC для удовлетворения потребностей трех различных компаний (Apple, IBM и Motorola) при сохранении совместимости с RS/6000, в архитектуре POWER было сделано несколько изменений в следующих направлениях: упрощение архитектуры с целью ее приспособления ее для реализации дешевых однокристальных процессоров; устранение команд, которые могут стать препятствием повышения тактовой частоты; устранение архитектурных препятствий суперскалярной обработке и внеочередному выполнению команд; добавление свойств, необходимых для поддержки симметричной многопроцессорной обработки; добавление новых свойств, считающихся необходимыми для будущих прикладных программ; ясное определение линии раздела между "архитектурой" и "реализацией"; обеспечение длительного времени жизни архитектуры путем ее расширения до 64- битовой.

Первый микропроцессор PowerPC, PowerPC 601, в настоящее время выпускается как компанией IBM, так и компанией Motorola. Он представляет собой процессор среднего класса и предназначен для использования в настольных вычислительных системах малой и средней стоимости. Он был разработан в качестве переходной модели от архитектуры POWER к архитектуре
PowerPC и реализует возможности обеих архитектур. При этом двоичные коды
RS/6000 выполняются на нем без изменений, что дало дополнительное время разработчикам компиляторов для освоения архитектуры PowerPC, а также разработчикам прикладных систем, которые должны перекомпилировать свои программы, чтобы полностью использовать возможности архитектуры PowerPC.

Процессор 601 базировался на однокристальном процессоре IBM, который был разработан к моменту создания альянса трех ведущих фирм. Но по сравнению со своим предшественником, PowerPC 601 претерпел серьезные изменения в сторону повышения производительности и снижения стоимости.
Например, в его состав было включено более сложное устройство переходов, расширенные возможностями мультипроцессорной работы, включая интерфейс шины высокопроизводительного процессора 88110 компании Motorola. В Power 601 реализована суперскалярная обработка, позволяющая выдавать на выполнение в каждом такте 3 команды, возможно не в порядке их расположения в программном коде.

Процессор PowerPC 603

PowerPC 603 является первым микропроцессором в семействе PowerPC, который полностью поддерживает архитектуру PowerPC (рисунок 6.). Он включает пять функциональных устройств: устройство переходов, целочисленное устройство, устройство плавающей точки, устройство загрузки/записи и устройство системных регистров, а также две, расположенных на кристалле кэш- памяти для команд и данных, емкостью по 8 Кбайт. Поскольку PowerPC 603 - суперскалярный микропроцессор, он может выдавать в эти исполнительные устройства и завершать выполнение до трех команд в каждом такте. Для увеличения производительности PowerPC 603 допускает внеочередное выполнение команд. Кроме того он обеспечивает программируемые режимы снижения потребляемой мощности, которые дают разработчикам систем гибкость реализации различных технологий управления питанием.

При обработке в процессоре команды распределяются по пяти исполнительным устройствам в заданном программой порядке. Если отсутствуют зависимости по операндам, выполнение происходит немедленно. Целочисленное устройство выполняет большинство команд за один такт. Устройство плавающей точки имеет конвейерную организацию и выполняет операции с плавающей точкой как с одинарной, так и с двойной точностью. Команды условных переходов обрабатывается в устройстве переходов. Если условия перехода доступны, то решение о направлении перехода принимается немедленно, в противном случае выполнение последующих команд продолжается по предположению (спекулятивно).
Команды, модифицирующие состояние регистров управления процессором, выполняются устройством системных регистров. Наконец, пересылки данных между кэш-памятью данных, с одной стороны, и регистрами общего назначения и регистрами плавающей точки, с другой стороны, обрабатываются устройством загрузки/записи.

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

После окончания выполнения команды в исполнительном устройстве ее результаты направляются в буфер завершения команд (completion buffer) и затем последовательно записываются в соответствующий регистровый файл по мере изъятия команд из буфера завершения. Для минимизации конфликтов по регистрам, в процессоре PowerPC 603 предусмотрены отдельные наборы из 32 целочисленных регистров общего назначения и 32 регистров плавающей точки.
PowerPC 604

Суперскалярный процессор PowerPC 604 обеспечивает одновременную выдачу до четырех команд. При этом параллельно в каждом такте может завершаться выполнение до шести команд. На рисунке 5.21 представлена блок- схема процессора 604. Процессор включает шесть исполнительных устройств, которые могут работать параллельно: устройство плавающей точки (FPU); устройство выполнения переходов (BPU); устройство загрузки/записи (LSU); три целочисленных устройства (IU): два однотактных целочисленных устройства (SCIU); одно многотактное целочисленное устройство (MCIU).

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

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

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

К концу 1995 года ожидается появление нового процессора PowerPC 620.
В отличие от своих предшественников это будет полностью 64-битовый процессор. При работе на тактовой частоте 133 МГц его производительность оценивается в 225 единиц SPECint92 и 300 единиц SPECfp92, что соответственно на 40 и 100% больше показателей процессора PowerPC 604.

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

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

Процессор PowerPC 620 нацелен на рынок высокопроизводительных рабочих станций и серверов.

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

4. Особенности архитектуры MIPS компании MIPS Technology

Архитектура MIPS была одной из первых RISC-архитектур, получившей признание со стороны промышленности. Она была анонсирована в 1986 году.
Первоначально это была полностью 32-битовая архитектура, которая включала
32 регистра общего назначения, 16 регистров плавающей точки и специальную пару регистров для хранения результатов выполнения операций целочисленного умножения и деления. Размер команд составлял 32 бит, в ней поддерживался всего один метод адресации, и пользовательское адресное пространство также определялось 32 битами. Выполнение арифметических операций регламентировалось стандартом IEEE 754. В компьютерной промышленности широкую популярность приобрели 32-битовые процессоры R2000 и R3000, которые в течение достаточно длительного времени служили основой для построения рабочих станций и серверов компаний Silicon Graphics, Digital, Siemens
Nixdorf и др. Процессоры R3000/R3010 работали на тактовой частоте 33 или 40
МГц и обеспечивали производительность на уровне 20 SPECint92 и 23 SPECfp92.

Затем на смену микропроцессорам семейства R3000 пришли новые 64- битовые микропроцессоры R4000 и R4400. (MIPS Technology была первой компанией выпустившей процессоры с 64-битовой архитектурой). Набор команд этих процессоров (спецификация MIPS II) был расширен командами загрузки и записи 64-разрядных чисел с плавающей точкой, командами вычисления квадратного корня с одинарной и двойной точностью, командами условных прерываний, а также атомарными операциями, необходимыми для поддержки мультипроцессорных конфигураций. В процессорах R4000 и R4400 реализованы 64- битовые шины данных и 64-битовые регистры. В этих процессорах применяется метод удвоения внутренней тактовой частоты.

Процессоры R2000 и R3000 имели стандартные пятиступенчатые конвейеры команд. В процессорах R4000 и R4400 применяются более длинные конвейеры
(иногда их называют суперконвейерами). Количество ступеней в процессорах
R4000 и R4400 увеличилось до восьми, что объясняется прежде всего увеличением тактовой частоты и необходимостью распределения логики для обеспечения заданной пропускной способности конвейера. Процессор R4000 может работать с тактовой частотой 50/100 МГц и обеспечивает уровень производительности в 58 SPECint92 и 61 SPECfp92. Процессор R4400 может работать на частоте 50/100 МГц, или 75/150 МГц, показывая уровень производительности 94 SPECint92 и 105 SPECfp92.

Внутренняя кэш-память процессора R4000 имеет емкость 16 Кбайт. Она разделена на 8-Кб кэш команд и 8-Кб кэш данных. С точки зрения реализации кэш-памяти процессор R4400 имеет более развитые возможности. Он выпускается в трех модификациях: PC (Primary Cashe) - имеет внутренние кэши команд и данных емкостью по 16 Кбайт. Процессор в такой конфигурации предназначен главным образом для дешевых моделей рабочих станций. SC (Secondary Cashe) содержит логику управления кэш-памятью второго уровня. MC (Multiprocessor
Cashe) - использует специальные алгоритмы обеспечения когерентности и согласованного состояния памяти для многопроцессорных конфигураций.

В середине 1994 года компания MIPS анонсировала процессор R8000, который прежде всего был ориентирован на научные прикладные задачи с интенсивным использованием операций с плавающей точкой. Этот процессор построен на двух кристаллах (выпускается в виде многокристальной сборки) и представляет собой первую суперскалярную реализацию архитектуры MIPS.
Теоретическая пиковая производительность процессора для тактовой частоты 75
МГц составляет 300 MFLOPs (до четырех команд и шести операций с плавающей точкой в каждом такте). Реализация большой кэш-памяти данных емкостью 16
Мбайт, высокой пропускной способности доступа к данным (до 1.2 Гбайт/с) в сочетании с высокой скоростью выполнения операций позволяет R8000 достигать
75% теоретической производительности даже при решении больших задач типа
LINPACK с размерами матриц 1000x1000 элементов. Аппаратные средства поддержки когерентного состояния кэш-памяти вместе со средствами распараллеливания компиляторов обеспечивают возможность построения высокопроизводительных симметричных многопроцессорных систем. Например, процессоры R8000 используются в системе Power Challenge компании Silicon
Graphics, которая вполне может сравниться по производительности с известными суперкомпьютерами Cray Y-MP, имеет на порядок меньшую стоимость и предъявляет значительно меньшие требования к подсистемам питания и охлаждения. В однопроцессорном исполнении эта система обеспечивает производительность на уровне 310 SPECfp92 и 265 MFLOPs на пакете LINPACK
(1000x1000).

В 1994 году MIPS Technology объявила также о создании своего нового суперскалярного процессора R10000. MIPS Technology R10000 обеспечивает пиковую производительность в 800 MIPS при работе с внутренней тактовой частотой 200 МГц за счет обеспечения выдачи для выполнения четырех команд в каждом такте синхронизации. При этом он обеспечивает обмен данными с кэш- памятью второго уровня со скоростью 3.2 Гбайт/с.

Рис. 8. Блок-схема микропроцессора R10000

Иерархия памяти

При разработке процессора R10000 большое внимание было уделено эффективной реализации иерархии памяти. В нем обеспечиваются раннее обнаружение промахов кэш-памяти и параллельная перезагрузка строк с выполнением другой полезной работой. Реализованные на кристалле кэши поддерживают одновременную выборку команд, выполнение команд загрузки и записи данных в память, а также операций перезагрузки строк кэш-памяти.
Заполнение строк кэш-памяти выполняется по принципу "запрошенное слово первым", что позволяет существенно сократить простои процессора из-за ожидания требуемой информации. Все кэши имеют двухканальную множественно- ассоциативную организацию с алгоритмом замещения LRU.

Кэш-память данных первого уровня

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

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

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

При обнаружении промаха при обращении к кэш-памяти данных ее работа не блокируется, т.е. она может продолжать обслуживание следующих запросов.
Это особенно полезно для уменьшения такого важного показателя качества реализованной архитектуры как среднее число тактов на команду (CPI - clock cycles per instruction). На рисунке 5.14 представлены результаты моделирования работы R10000 на нескольких программах тестового пакета SPEC.
Для каждого теста даны два результата: с блокировкой кэш-памяти данных при обнаружении промаха (вверху) и действительное значение CPI R10000 (внизу).
Выделенная более темным цветом правая область соответствует времени, потерянному из-за промахов кэш-памяти. Верхний результат отражает полную задержку в случае, если бы все операции по перезагрузке кэш-памяти выполнялись строго последовательно. Таким образом, стрелка представляет потери времени, которые возникают в блокируемом кэше. Эффект применения неблокируемой кэш-памяти сильно зависит характеристик самих программ. Для небольших тестов, рабочие наборы которых полностью помещаются в кэш-памяти первого уровня, этот эффект не велик. Однако для более реальных программ, подобных тесту tomcatv или тяжелому для кэш-памяти тесту compress, выигрыш оказывается существенным.

Кэш-память второго уровня

Интерфейс кэш-памяти второго уровня процессора R10000 поддерживает
128-битовую магистраль данных, которая может работать с тактовой частотой до 200 МГц, обеспечивая скорость обмена до 3.2 Гбайт/с (для снижения требований к быстродействию микросхем памяти предусмотрена также возможность деления частоты с коэффициентами 1.5, 2, 2.5 и 3). Все стандартные синхронные сигналы управления статической памятью вырабатываются внутри процессора. Не требуется никаких внешних интерфейсных схем. Минимальный объем кэш-памяти второго уровня составляет 512 Кбайт, максимальный размер - 16 Мбайт. Размер строки этой кэш-памяти программируется и может составлять 64 или 128 байт.

Одним из методов улучшения временных показателей работы кэш-памяти является построение псевдо-множествнно-ассоциативной кэш-памяти. В такой кэш-памяти частота промахов находится на уровне частоты промахов множественно-ассоциативной памяти, а время выборки при попадании соответствует кэш-памяти с прямым отображением. Кэш-память R10000 организована именно таким способом, причем для ее реализации используются стандартные синхронные микросхемы памяти (SRAM). В одном наборе микросхем памяти находятся оба канала кэша. Информация о частоте использования этих каналов хранится в схемах управления кэшем на процессорном кристалле.
Поэтому после обнаружения промаха в первичном кэше из наиболее часто используемого канала вторичного кэша считываются две четырехсловные строки.
Их теги считываются вместе с первой четырехсловной строкой, а теги альтернативного канала читаются одновременно со второй четырехсловной строкой (это осуществляется простым инвертированием старшего разряда адреса).

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

Для обеспечения целостности данных в кэш-памяти большой емкости обычной практикой является использование кодов исправляющих одиночные ошибки (ECC-кодов). В R10000 с каждой четырехсловной строкой хранится 9- битовый ECC-код и бит четности. Дополнительный бит четности позволяет сократить задержку, поскольку проверка на четность может быть выполнена очень быстро, чтобы предотвратить использование некорректных данных. При этом, если обнаруживается корректируемая ошибка, то чтение повторяется через специальный двухтактный конвейер коррекции ошибок.

Кэш-память команд

Объем внутренней двухканальной множественно-ассоциативной кэш-памяти команд составляет 32 Кбайт. В процессе ее загрузки команды частично декодируются. При этом к каждой команде добавляются 4 дополнительных бит, которые указывают исполнительное устройство, в котором она будет выполняться. Таким образом, в кэш-памяти команды хранятся в 36-битовом формате. Размер строки кэш-памяти команд составляет 64 байта.

Обработка команд перехода

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

Конфликты по управлению могут вызывать даже большие потери производительности суперскалярного процессора, чем конфликты по данным. По статистике среди команд управления, меняющих значение счетчика команд, преобладают команды условного перехода. Таким образом, снижение потерь от условных переходов становится критически важным вопросом. Имеется несколько методов сокращения приостановок конвейера, возникающих из-за задержек выполнения условных переходов. В процессоре R10000 используются два наиболее мощных метода динамической оптимизации выполнения условных переходов: аппаратное прогнозирование направления условных переходов и
"выполнение по предположению" (speculation).

Устройство переходов процессора R10000 может декодировать и выполнять только по одной команде перехода в каждом такте. Поскольку за каждой командой перехода следует слот задержки, максимально могут быть одновременно выбраны две команды перехода, но только одна более ранняя команда перехода может декодироваться в данный момент времени. Во время декодирования команд к каждой команде добавляется бит признака перехода.
Эти биты используются для пометки команд перехода в конвейере выборки команд.

Направление условного перехода прогнозируется с помощью специальной памяти (branch history table) емкостью 512 строк, которая хранит историю выполнения переходов в прошлом. Обращение к этой таблице осуществляется с помощью адреса команды во время ее выборки. Двухбитовый код прогноза в этой памяти обновляется каждый раз, когда принято окончательное решение о направлении перехода. Моделирование показало, что точность двухбитовой схемы прогнозирования для тестового пакета программ SPEC составляет 87%.

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

Структура очередей команд

Процессор R10000 содержит три очереди (буфера) команд (очередь целочисленных команд, очередь команд плавающей точки и адресную очередь).
Эти три очереди осуществляют динамическую выдачу команд в соответствующие исполнительные устройства. С каждой командой в очереди хранится тег команды, который перемещается вместе с командой по ступеням конвейера.
Каждая очередь осуществляет динамическое планирование потока команд и может определить моменты времени, когда становятся доступными операнды, необходимые для выполнения каждой команды. Кроме того, очередь определяет порядок выполнения команд на основе анализа состояния соответствующих исполнительных устройств. Как только ресурс оказывается свободным очередь выдает команду в соответствующее исполнительное устройство.

Очередь целочисленных команд

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

Очередь команд плавающей точки

Очередь команд плавающей точки также содержит 16 строк и выдает команды в исполнительные устройства сложения и умножения с плавающей точкой. Команды плавающей точки поступают в свободные строки очереди, причем в каждом такте в нее могут записываться до 4 команд. Команды остаются в очереди до тех пор, пока они не будут выданы в одно из исполнительных устройств. Очередь команд плавающей точки содержит также логику управления команд типа "умножить-сложить". Эта команда сначала направляется в устройство умножения, а затем прямо в устройство сложения.

Адресная очередь

Очередь адресных команд выдает команды в устройство загрузки/записи и содержит 16 строк. Очередь организована в виде циклического буфера FIFO
(first-in first-out). Команды могут выдаваться в произвольном порядке, но должны записываться в очередь и изыматься из нее строго последовательно. В каждом такте в очередь могут поступать до 4 команд. Буфер FIFO поддерживает первоначальную последовательность команд, что упрощает обнаружение зависимостей по адресам. Выполнение выданной команды может не закончиться при обнаружении зависимости по адресам, кэш-промаха или конфликта по ресурсам. В этих случаях адресная очередь должна заново повторять выдачу команды до тех пор, пока ее выполнение не завершится.

Переименование регистров

Одним из аппаратных методов минимизации конфликтов по данным является метод переименования регистров (register renaming). Он получил свое название от широко применяющегося в компиляторах метода переименования - метода размещения данных, способствующего сокращению числа зависимостей и тем самым увеличению производительности при отображении необходимых исходной программе объектов (например, переменных) на аппаратные ресурсы
(например, ячейки памяти и регистры).

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

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

Таким образом, аппаратный метод переименования регистров, используемый в процессоре R10000, имеет три основных достоинства. Во- первых, результаты "выполняемых по предположению" команд могут прямо записываться в регистровый файл. Во-вторых, этот метод устраняет все конфликты типа "запись после чтения" и "запись после записи", которые часто возникают при неупорядоченном выполнении команд. И, наконец, метод переименования регистров упрощает контроль зависимостей по данным.
Поскольку процессор обеспечивает выдачу для выполнения до четырех команд в каждом такте, в процессе переименования регистров их логические номера сравниваются для определения зависимостей между четырьмя командами, декодированными в одном и том же такте.

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

Микропроцессор R10000 содержит по 64 физических регистра
(целочисленных и плавающей точки). В любой момент времени значение физического регистра содержится в одном из указанных выше списков. На рисунке 5.15 показана упрощенная блок-схема отображения целочисленных команд.

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

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

На этом касательно MIPS можно пока остановиться. Перейдем теперь так же плавненько к процессорам с архитектурой SPARC.

5. Особенности процессоров с архитектурой SPARC компании Sun Microsystems

Масштабируемая процессорная архитектура SPARC (Scalable Processor
Architecture) компании Sun Microsystems является наиболее широко распространенной RISC-архитектурой, отражающей доминирующее положение компании на рынке UNIX рабочих станций и серверов. Процессоры с архитектурой SPARC лицензированы и изготавливаются по спецификациям Sun несколькими производителями, среди которых следует отметить компании Texas
Instruments, Fujitsu, LSI Logic, Bipolar International Technology, Philips,
Cypress Semiconductor и Ross Technologies. Эти компании осуществляют поставки процессоров SPARC не только самой Sun Microsystems, но и другим известным производителям вычислительных систем, например, Solbourne,
Toshiba, Matsushita, Tatung и Cray Research.

Первоначально архитектура SPARC была разработана с целью упрощения реализации 32-битового процессора. В последствии, по мере улучшения технологии изготовления интегральных схем, она постепенно развивалось и в настоящее время имеется 64-битовая версия этой архитектуры (SPARC-V9), которая положена в основу новых микропроцессоров, получивших название
UltraSPARC. Первый процессор SPARC был изготовлен компанией Fujitsu на базе вентильной матрицы, работающей на частоте 16.67 МГц. На основе этого процессора была разработана первая рабочая станция Sun-4 с производительностью 10 MIPS, объявленная осенью 1987 года (до этого времени компания Sun использовала в своих изделиях микропроцессоры Motorola 680X0).
В марте 1988 года Fujitsu увеличила тактовую частоту до 25 МГц создав процессор с производительностью 15 MIPS.

Позднее компания Sun умело использовала конкуренцию среди компаний- поставщиков интегральных схем, выбирая наиболее удачные разработки для реализации своих изделий SPARCstation 1, 1+, IPC, ELC, IPX, 2 и серверов серий 4xx и 6xx. Тактовая частота процессоров SPARC была повышена до 40
МГц, а производительность - до 28 MIPS.

Дальнейшее увеличение производительности процессоров с архитектурой
SPARC было достигнуто за счет реализации в кристаллах принципов суперскалярной обработки компаниями Texas Instruments и Cypress. Процессор
SuperSPARC компании Texas Instruments стал основой серии рабочих станций и серверов SPARCstation/SPARCserver 10 и 20. В зависимости от смеси команд он обеспечивает выдачу до трех команд за один машинный такт. Процессор
SuperSPARC имеет сбалансированную производительность на операциях с фиксированной и плавающей точкой. Он имеет внутренний кэш емкостью 36 Кб
(20 Кб - кэш команд и 16 Кб - кэш данных), раздельные конвейеры целочисленной и вещественной арифметики и при тактовой частоте 75 МГц обеспечивает производительность около 205 MIPS.

Хотя архитектура SPARC в течение длительного времени оставалась доминирующей на рынке процессоров RISC, особенно в секторе рабочих станций, повышение тактовой частоты процессоров в 1992-1994 годах происходило более медленными темпами по сравнению с повышением тактовой частоты конкурирующих архитектур процессоров. Чтобы ликвидировать это отставание, а также в ответ на появление на рынке 64-битовых процессоров компания Sun разработала и проводит в жизнь пятилетнюю программу модернизации. В соответствии с этой программой Sun планировала довести тактовую частоту процессоров MicroSPARC до 100 МГц в 1994 году (процессор MicroSPARC II с тактовой частотой 110 МГц используется в рабочих станциях и серверах SPARCstation 4 и 5). В конце
1994 и в течение 1995 года на рынке появились микропроцессоры hyperSPARC и однопроцессорные и многопроцессорные рабочие станции SPARCstation 20 с тактовой частотой процессора 100, 125 и 150 МГц. К середине 1995 года тактовая частота процессоров SuperSPARC была доведена до 85 МГц (60, 75 и
85 МГц версии этого процессора в настоящее время применяются в рабочих станциях и серверах SPARCstation 20, SPARCserver 1000 и SPARCcenter 2000 компании Sun и 64-процессорном сервере компании Cray Research). Наконец, в ноябре 1995 года, появились 64-битовые процессоры UltraSPARC-I с тактовой частотой 143, 167 и 200 МГц, и процессоры UltraSPARC-II с тактовой частотой от 250 до 300 МГц, серийное производство которых началось в середине 1996 года. В дальнейшем начался выпуск процессоров UltraSPARC-III с частотой до
500 МГц.

Имеется несколько версий этого процессора, позволяющего в зависимости от смеси команд обрабатывать до трех команд за один машинный такт, отличающихся тактовой частотой (50, 60, 75 и 85 МГц). Процессор SuperSPARC
(рисунок 9) имеет сбалансированную производительность на операциях с фиксированной и плавающей точкой. Он имеет внутренний кэш емкостью 36 Кб
(20 Кб - кэш команд и 16 Кб - кэш данных), раздельные конвейеры целочисленной и вещественной арифметики и при тактовой частоте 75 МГц обеспечивает производительность около 205 MIPS. Процессор SuperSPARC применяется также в серверах SPARCserver 1000 и SPARCcenter 2000 компании
Sun.

Конструктивно кристалл монтируется на взаимозаменяемых процессорных модулях трех типов, отличающихся наличием и объемом кэш-памяти второго уровня и тактовой частотой. Модуль M-bus SuperSPARC, используемый в модели
50 содержит 50-МГц SuperSPARC процессор с внутренним кэшем емкостью 36 Кб
(20 Кб кэш команд и 16 Кб кэш данных). Модули M-bus SuperSPARC в моделях
51, 61 и 71 содержат по одному SuperSPARC процессору, работающему на частоте 50, 60 и 75 МГц соответственно, одному кристаллу кэш-контроллера
(так называемому SuperCache), а также внешний кэш емкостью 1 Мб. Модули M- bus в моделях 502, 612, 712 и 514 содержат два SuperSPARC процессора и два кэш-контроллера каждый, а последние три модели и по одному 1 Мб внешнему кэшу на каждый процессор. Использование кэш-памяти позволяет модулям CPU работать с тактовой частотой, отличной от тактовой частоты материнской платы; пользователи всех моделей поэтому могут улучшить производительность своих систем заменой существующих модулей CPU вместо того, чтобы производить upgrade всей материнской платы.

Рис. 9. hyperSPARC

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

Производительность процессоров hyperSPARC может меняться независимо от скорости работы внешней шины (MBus). Набор кристаллов hyperSPARC обеспечивает как синхронные, так и асинхронные операции с помощью специальной логики кристалла RT625. Отделение внутренней шины процессора от внешней шины позволяет увеличивать тактовую частоту процессора независимо от частоты работы подсистем памяти и ввода/вывода. Это обеспечивает более длительный жизненный цикл, поскольку переход на более производительные модули hyperSPARC не требует переделки всей системы.

Процессорный набор hyperSPARC с тактовой частотой 100 МГц построен на основе технологического процесса КМОП с тремя уровнями металлизации и проектными нормами 0.5 микрон. Внутренняя логика работает с напряжением питания 3.3В.

Процессор hyperSPARC реализован в виде многокристальной микросборки
(рисунок 5.4), в состав которой входит суперскалярная конвейерная часть и тесно связанная с ней кэш-память второго уровня. В набор кристаллов входят
RT620 (CPU) - центральный процессор, RT625 (CMTU) - контроллер кэш-памяти, устройство управления памятью и устройство тегов и четыре RT627 (CDU) кэш- память данных для реализации кэш-памяти второго уровня емкостью 256 Кбайт.
RT625 обеспечивает также интерфейс с MBus. Центральный процессор RT620
(рисунок 10) состоит из целочисленного устройства, устройства с плавающей точкой, устройства загрузки/записи, устройства переходов и двухканальной множественно-ассоциативной памяти команд емкостью 8 Кбайт. Целочисленное устройство включает АЛУ и отдельный тракт данных для операций загрузки/записи, которые представляют собой два из четырех исполнительных устройств процессора. Устройство переходов обрабатывает команды передачи управления, а устройство плавающей точки, реально состоит из двух независимых конвейеров - сложения и умножения чисел с плавающей точкой. Для увеличения пропускной способности процессора команды плавающей точки, проходя через целочисленный конвейер, поступают в очередь, где они ожидают запуска в одном из конвейеров плавающей точки. В каждом такте выбираются две команды. В общем случае, до тех пор, пока эти две команды требуют для своего выполнения различных исполнительных устройств при отсутствии зависимостей по данным, они могут запускаться одновременно. RT620 содержит два регистровых файла: 136 целочисленных регистров, сконфигурированных в виде восьми регистровых окон, и 32 отдельных регистра плавающей точки, расположенных в устройстве плавающей точки. Кэш-память второго уровня в процессоре hyperSPARC строится на базе RT625 CMTU, который представляет собой комбинированный кристалл, включающий контроллер кэш-памяти и устройство управления памятью, которое поддерживает разделяемую внешнюю память и симметричную многопроцессорную обработку. Контроллер кэш-памяти поддерживает кэш емкостью 256 Кбайт, состоящий из четырех RT627 CDU. Кэш- память имеет прямое отображение и 4К тегов. Теги в кэш-памяти содержат физические адреса, поэтому логические схемы для соблюдения когерентности кэш-памяти в многопроцессорной системе, имеющиеся в RT625, могут быстро определить попадания или промахи при просмотре со стороны внешней шины без приостановки обращений к кэш-памяти со стороны центрального процессора.
Поддерживается как режим сквозной записи, так и режим обратного копирования.

Устройство управления памятью содержит в своем составе полностью ассоциативную кэш-память преобразования виртуальных адресов в физические
(TLB), состоящую из 64 строк, которая поддерживает 4096 контекстов. RT625 содержит буфер чтения емкостью 32 байта, используемый для загрузки, и буфер записи емкостью 64 байта, используемый для разгрузки кэш-памяти второго уровня. Размер строки кэш-памяти составляет 32 байта. Кроме того, в RT625 имеются логические схемы синхронизации, которые обеспечивают интерфейс между внутренней шиной процессора и SPARC MBus при выполнении асинхронных операций.

RT627 представляет собой статическую память 16К (32, специально разработанную для удовлетворения требований hyperSPARC. Она организована как четырехканальная статическая память в виде четырех массивов с логикой побайтной записи и входными и выходными регистрами-защелками. RT627 для ЦП является кэш-памятью с нулевым состоянием ожидания без потерь (т.е. приостановок) на конвейеризацию для всех операций загрузки и записи, которые попадают в кэш-память. RT627 был разработан специально для процессора hyperSPARC, таким образом для соединения с RT620 и RT625 не нужны никакие дополнительные схемы.

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

Команды загрузки и записи одновременно генерируют два обращения: одно к кэш-памяти команд первого уровня емкостью 8 Кбайт и другое к кэш-памяти второго уровня. Если адрес команды найден в кэш-памяти первого уровня, то обращение к кэш-памяти второго уровня отменяется и команда становится доступной на стадии декодирования конвейера. Если же во внутренней кэш- памяти произошел промах, а в кэш-памяти второго уровня обнаружено попадание, то команда станет доступной с потерей одного такта, который встроен в конвейер. Такая возможность позволяет конвейеру продолжать непрерывную работу до тех пор, пока имеют место попадания в кэш-память либо первого, либо второго уровня, которые составляют 90% и 98% соответственно для типовых прикладных задач рабочей станции. С целью достижения архитектурного баланса и упрощения обработки исключительных ситуаций целочисленный конвейер и конвейер плавающей точки имеют по пять стадий выполнения операций. Такая конструкция позволяет RT620 обеспечить максимальную пропускную способность, не достижимую в противном случае.

На рассмотрении этого процессора можно и закончить выкладку по процессорам архитектуры SPARK.

6. Процессоры PA-RISC компании Hewlett-Packard

Основой разработки современных изделий Hewlett-Packard является архитектура PA-RISC. Она была разработана компанией в 1986 году и с тех пор прошла несколько стадий своего развития благодаря успехам интегральной технологии от многокристального до однокристального исполнения. В сентябре
1992 года компания Hewlett-Packard объявила о создании своего суперскалярного процессора PA-7100, который с тех пор стал основой построения семейства рабочих станций HP 9000 Series 700 и семейства бизнес- серверов HP 9000 Series 800. В настоящее время имеются 33-, 50- и 99 МГц реализации кристалла PA-7100. Кроме того выпущены модифицированные, улучшенные по многим параметрам кристаллы PA-7100LC с тактовой частотой 64,
80 и 100 МГц, и PA-7150 с тактовой частотой 125 МГц, а также PA-7200 с тактовой частотой 90 и 100 МГц. Компания активно разрабатывает процессор следующего поколения HP 8000, которые будет работать с тактовой частотой
200 МГц и обеспечивать уровень 360 единиц SPECint92 и 550 единиц SPECfp92.
Появление этого кристалла ожидается в 1996 году. Кроме того, Hewlett-
Packard в сотрудничестве с Intel создала новый процессор с очень длинным командным словом (VLIW-архитектура), который совместим как с семейством
Intel x86, так и семейством PA-RISC. Выпуск этого процессора начался в1998 году. В качестве наглядного примера выберем PA-7100/

Особенностью архитектуры PA-RISC является внекристальная реализация кэша, что позволяет реализовать различные объемы кэш-памяти и оптимизировать конструкцию в зависимости от условий применения (рисунок
12.). Хранение команд и данных осуществляется в раздельных кэшах, причем процессор соединяется с ними с помощью высокоскоростных 64-битовых шин. Кэш- память реализуется на высокоскоростных кристаллах статической памяти
(SRAM), синхронизация которых осуществляется непосредственно на тактовой частоте процессора. При тактовой частоте 100 МГц каждый кэш имеет полосу пропускания 800 Мбайт/с при выполнении операций считывания и 400 Мбайт/с при выполнении операций записи. Микропроцессор аппаратно поддерживает различный объем кэш-памяти: кэш команд может иметь объем от 4 Кбайт до 1
Мбайт, кэш данных - от 4 Кбайт до 2 Мбайт. Чтобы снизить коэффициент промахов применяется механизм хеширования адреса. В обоих кэшах для повышения надежности применяются дополнительные контрольные разряды, причем ошибки кэша команд корректируются аппаратными средствами.

Устройство плавающей точки (рисунок 13) реализует арифметику с одинарной и двойной точностью в стандарте IEEE 754. Его устройство умножения используется также для выполнения операций целочисленного умножения. Устройства деления и вычисления квадратного корня работают с удвоенной частотой процессора. Арифметико-логическое устройство выполняет операции сложения, вычитания и преобразования форматов данных. Регистровый файл состоит из 28 64-битовых регистров, каждый из которых может использоваться как два 32-битовых регистра для выполнения операций с плавающей точкой одинарной точности. Регистровый файл имеет пять портов чтения и три порта записи, которые обеспечивают одновременное выполнение операций умножения, сложения и загрузки/записи. Большинство улучшений производительности процессора связано с увеличением тактовой частоты до 100
МГц по сравнению с 66 МГц у его предшественника.

Конвейер целочисленного устройства включает шесть ступеней: Чтение из кэша команд (IR), Чтение операндов (OR), Выполнение/Чтение из кэша данных
(DR), Завершение чтения кэша данных (DRC), Запись в регистры (RW) и Запись в кэш данных (DW). На ступени ID выполняется выборка команд. Реализация механизма выдачи двух команд требует небольшого буфера предварительной выборки, который обеспечивает предварительную выборку команд за два такта до начала работы ступени IR. Во время выполнения на ступени OR все исполнительные устройства декодируют поля операндов в команде и начинают вычислять результат операции. На ступени DR целочисленное устройство завершает свою работу. Кроме того, кэш-память данных выполняет чтение, но данные не поступают до момента завершения работы ступени DRC. Результаты операций сложения (ADD) и умножения (MULTIPLY) также становятся достоверными в конце ступени DRC. Запись в универсальные регистры и регистры плавающей точки производится на ступени RW. Запись в кэш данных командами записи (STORE) требует двух тактов. Наиболее раннее двухтактное окно команды STORE возникает на ступенях RW и DW. Однако это окно может сдвигаться, поскольку записи в кэш данных происходят только когда появляется следующая команда записи. Операции деления и вычисления квадратного корня для чисел с плавающей точкой заканчиваются на много тактов позже ступени DW.

Конвейер проектировался с целью максимального увеличения времени, необходимого для выполнения чтения внешних кристаллов SRAM кэш-памяти данных. Это позволяет максимизировать частоту процессора при заданной скорости SRAM. Все команды загрузки (LOAD) выполняются за один такт и требуют только одного такта полосы пропускания кэш-памяти данных. Поскольку кэши команд и данных размещены на разных шинах, в конвейере отсутствуют какие-либо потери, связанные с конфликтами по обращениям в кэш данных и кэш команд.

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

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

Количество тактов, необходимое для записи слова или двойного слова командой STORE уменьшено с трех до двух тактов. В более ранних реализациях архитектуры PA-RISC был необходим один дополнительный такт для чтения тега кэша, чтобы гарантировать попадание, а также для того, чтобы объединить старые данные строки кэш-памяти данных с записываемыми данными. PA 7100 использует отдельную шину адресного тега, чтобы совместить по времени чтение тега с записью данных предыдущей команды STORE. Кроме того, наличие отдельных сигналов разрешения записи для каждого слова строки кэш-памяти устраняет необходимость объединения старых данных с новыми, поступающими при выполнении команд записи слова или двойного слова. Этот алгоритм требует, чтобы запись в микросхемы SRAM происходила только после того, когда будет определено, что данная запись сопровождается попаданием в кэш и не вызывает прерывания. Это требует дополнительной ступени конвейера между чтением тега и записью данных. Такая конвейеризация не приводит к дополнительным потерям тактов, поскольку в процессоре реализованы специальные цепи обхода, позволяющие направить отложенные данные команды записи последующим командам загрузки или командам STORE, записывающим только часть слова. Для данного процессора потери конвейера для команд записи слова или двойного слова сведены к нулю, если непосредственно последующая команда не является командой загрузки или записи. В противном случае потери равны одному такту. Потери на запись части слова могут составлять от нуля до двух тактов. Моделирование показывает, что подавляющее большинство команд записи в действительности работают с однословным или двухсловным форматом.

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

Процессор может выполнять параллельно одну целочисленную команду и одну команду с плавающей точкой. При этом "целочисленными командами" считаются и команды загрузки и записи регистров плавающей точки, а "команды плавающей точки" включают команды FMPYADD и FMPYSUB. Эти последние команды объединяют операцию умножения с операциями сложения или вычитания соответственно, которые выполняются параллельно. Пиковая производительность составляет 200 MFLOPS для последовательности команд FMPYADD, в которых смежные команды независимы по регистрам.

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

Потери, возникающие при промахах в кэше данных, минимизируются посредством применения четырех разных методов: "попадание при промахе" для команд LOAD и STORE, потоковый режим работы с кэшем данных, специальная кодировка команд записи, позволяющая избежать копирования строки, в которой произошел промах, и семафорные операции в кэш-памяти. Первое свойство позволяет во время обработки промаха в кэше данных выполнять любые типы других команд. Для промахов, возникающих при выполнении команды LOAD, обработка последующих команд может продолжаться до тех пор, пока регистр результата команды LOAD не потребуется в качестве регистра операнда для другой команды. Компилятор может использовать это свойство для предварительной выборки в кэш необходимых данных задолго до того момента, когда они действительно потребуются. Для промахов, возникающих при выполнении команды STORE, обработка последующих команд загрузки или операций записи в части одного слова продолжается до тех пор, пока не возникает обращений к строке, в которой произошел промах. Компилятор может использовать это свойство для выполнения команд на фоне записи результатов предыдущих вычислений. Во время задержки, связанной с обработкой промаха, другие команды LOAD и STORE, для которых происходит попадание в кэш данных, могут выполняться как и другие команды целочисленной арифметики и плавающей точки. В течение всего времени обработки промаха команды STORE, другие команды записи в ту же строку кэш-памяти могут происходить без дополнительных потерь времени. Для каждого слова в строке кэш-памяти процессор имеет специальный индикационный бит, предотвращающий копирование из памяти тех слов строки, которые были записаны командами STORE. Эта возможность применяется к целочисленным и плавающим операциям LOAD и STORE.

Выполнение команд останавливается, когда регистр-приемник команды
LOAD, выполняющейся с промахом, требуется в качестве операнда другой команды. Свойство "потоковости" позволяет продолжить выполнение как только нужное слово или двойное слово возвращается из памяти. Таким образом, выполнение команд может продолжаться как во время задержки, связанной с обработкой промаха, так и во время заполнения соответствующей строки при промахе.

При выполнении блочного копирования данных в ряде случаев компилятор заранее знает, что запись должна осуществляться в полную строку кэш-памяти.
Для оптимизации обработки таких ситуаций архитектура PA-RISC 1.1 определяет специальную кодировку команд записи ("блочное копирование"), которая показывает, что аппаратуре не нужно осуществлять выборку из памяти строки, при обращении к которой может произойти промах кэш-памяти. В этом случае время обращения к кэшу данных складывается из времени, которое требуется для копирования в память старой строки кэш-памяти по тому же адресу в кэше
(если он "грязный") и времени, необходимого для записи нового тега кэша. В процессоре PA 7100 такая возможность реализована как для привилегированных, так и для непривилегированных команд.

Последнее улучшение управления кэшем данных связано с реализацией семафорных операций "загрузки с обнулением" непосредственно в кэш-памяти.
Если семафорная операция выполняется в кэше, то потери времени при ее выполнении не превышают потерь обычных операций записи. Это не только сокращает конвейерные потери, но и снижает трафик шины памяти. В архитектуре PA-RISC 1.1 предусмотрен также другой тип специального кодирования команд, который устраняет требование синхронизации семафорных операций с устройствами ввода/вывода.

Управление кэш-памятью команд позволяет при промахе продолжить выполнение команд сразу же после поступления отсутствующей в кэше команды из памяти. 64-битовая магистраль данных, используемая для заполнения блоков кэша команд, соответствует максимальной полосе пропускания внешней шины памяти 400 Мбайт/с при тактовой частоте 100 МГц.

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

Конструкция процессора обеспечивает реализацию двух способов построения многопроцессорных систем. При первом способе каждый процессор подсоединяется к интерфейсному кристаллу, который наблюдает за всеми транзакциями на шине основной памяти. В такой системе все функции по поддержанию когерентного состояния кэш-памяти возложены на интерфейсный кристалл, который посылает процессору соответствующие транзакции. Кэш данных построен на принципах отложенного обратного копирования и для каждого блока кэш-памяти поддерживаются биты состояния "частный" (private),
"грязный" (dirty) и "достоверный" (valid), значения которых меняются в соответствии с транзакциями, которые выдает или принимает процессор.

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

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

Процессор построен на базе технологического процесса КМОП с проектными нормами 0.8 микрон, что обеспечивает тактовую частоту 100 МГц.

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

7. Литература.

1. М. Гук Современные микропроцессоры Pentium, Pentium II, Pentium III.

Издательство “Питер” 2000г.
М. Гук Аппаратные средства IBM PC Издательство «ПитерКом» С.-П.1999г.
Жаров А. Железо IBM 2000 или все о современном компьютере М.2000
Издательство «Микроарт».
Так же использованы материалы, опубликованные на сайтах: www.Ixbt.com www.informix.ru www.banknet.kz www.hardware.ru www.fcentr.com
Использованы материалы статей, опубликованных в журналах:
«Мир ПК», «Computerworld», «Computerra».

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

Микропроцессор К5

В течение ряда лет AMD, отставая от Intel по крайней мере на одно поколение микропроцессоров, полагалась в основном на лицензированную технологию и вносила незначительные конструктивные изменения в выпускаемые микропроцессоры. Появление микропроцессора Pentium создало лля AMD прямую угрозу вытеснения с рынка, что стимулировало компанию к интенсификации работ по созданию нового семейства х86-совместимых микропроцессоров. Работы над К5 были начаты, когда еще не были известны подробности о процессоре Pentium. Инженерам AMD пришлось разрабатывать собственную микроархитектуру, обеспечивая при этом совместимость с существующим программным обеспечением для процессоров х86.

Первоначально AMD планировала начать поставки своего микропроцессора с тактовой частотой 100--120 МГц в 1995 году, однако было выпущено лишь несколько тысяч таких процессоров, а их тактовая частота составила всего 75 МГц. Основные поставки К5 начались в первом квартале 1996 года, после того как компания перешла на 0,35 мкм технологию, разработанную совместно с Hewlett-Packard. Это позволило довести число транзисторов до 4,2 млн на кристалле площадью 167 мм 2 .

К5 ]68] -- это первый микропроцессор AMD, при создании которого не использовалась никакая интеллектуальная собственность Intel (за исключением микрокода), в то же время, он обладает лучшей по сравнению с процессорами Intel производительностью. Многие приложения, такие как Microsoft Excel, Word, CorelDRAW, работали на процессорах серии К5 на 30% быстрее, чем на Pentium с той же тактовой частотой. Такая производительность достигалась в основном за счет увеличенного объема кэш-памяти и более прогрессивной суперскалярной архитектуры. Используемая в микропроцессорах AMD архитектура RISC86 .

Как известно, команды х86 отличает переменная длина и сложная структура, затрудняющие их декодирование и анализ существующих зависимостей между инструкциями по данным. В предлагаемой AMD архитектуре декодер, представляющий собой наиболее сложную часть микропроцессора, раз бивает длинные CISC-инструкции на небольшие RISC-подобные комгюнен ты, так называемые ROP (RISC-операции).

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

В отличие от Pentium, вместо двух конвейеров для параллельного выполнения двух целочисленных операций, К5 имеет шесть параллельно функционирующих блоков. Одновременно с целочисленными операциями могут выполняться инструкции с плавающей точкой, загрузки/сохранения или перехода. Блок загрузки/сохранения может за один цикл выбирать из памяти две инструкции. Другим отличием от Pentium является то, что К5 может изменять последовательность выполняемых команд.

Блок выполнения операций с плавающей точкой (FPU) отвечает стандартам х86, однако по производительности несколько уступает FPU процессора Pentium.

Использованное в архитектуре К5 сочетание принципов CISC и RISC позволило преодолеть ограничения набора команд х86. Ценой увеличения сложности процессора AMD удалось повысить его производительность, сохранив совместимость с системой команд х86. Последнее весьма важно с учетом широкой распространенности программного обеспечения для этой микропроцессорной архитектуры.

Микропроцессор К6

Микропроцессор К6 был выпушен в 1997 году по технологии КМОП 0,35 мкм с пятислойной металлизацией, содержал 8,8 млн транзисторов на кристалле площадью 162 мм 2 , работал с тактовыми частотами 166, 200 и 233 МГц и устанавливался в разъем Socket 7.

Как и в К5, в К6 была применена суперскалярная архитектура RISC86 с раздельным декодированием/исполнением команд, обеспечивающая преемственность с системой команд х86 и достижение высокой производительности, свойственной микропроцессорам шестого поколения. К6 был оснащен мультимедийным расширением системы команд-- ММХ. По производительности К6 при одной и той же тактовой частоте существенно превосходил Pentium ММХ и был сравним с Pentium Pro. В отличие от Pentium Pro, К6 одинаково успешно работал как с 32-разрядными, так и с 16-разрядными приложениями.

Высокая производительность процессора обеспечивалась благодаря ряду новых архитектурных и технологических решений.

· В процессоре выполняется преддекодирование команд х86 при их выборке в кэш-памяти. Каждая команда в кэш-памяти первого уровня снабжается битами преддекодирования, указывающими смещение начала следующей команды в кэш-памяти (от I до 15 байт).

· К6 содержит внутреннюю раздельную кэш-память первого уровня по 32 Кбайт для данных и команд.

· В процессоре реализован высокопроизводительный блок вычислений с плавающей точкой.

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

· Используется множественное декодирование х86-инструкций в однотактовые RISC-операции (ROP).

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

· В процессоре используется спекулятивное исполнение с изменением последовательности команд, предварительная посылка данных, переименование регистров.

В начале 1998 года были выпущены варианты процессора по технологии 0,25 мкм с пятью слоями металлизации для тактовых частот 266 МГц и 300 МГц.

Микропроцессор К7

Микропроцессор следующего поколения -- К7 (кодовое имя Athlon) был выпущен в июне 1999 года. К7 содержит более 22 млн транзисторов на кристалле площадью 184 мм 2 и изначально производился по технологии 0,25 мкм с 6 слоями металлизации* для тактовых частот 500, 550, 600 и 650 МГц. Впоследствии, с переходом на технологию 0,18 мкм, частота была увеличена до 1 ГГц и выше. Напряжение питания микропроцессора составляет 1,6 В.

Процессор размешен в картридже и соединяется с платой через Slot А, разработанный AMD. Athlon и Slot А используют шинный протокол Digital Alpha EV6, который имеет ряд преимуществ по сравнению с GTL+, используемым Intel. Так, EV6 предусматривает возможность использования топологии "point to point" для мультипроцессорных систем. Кроме этого, EV6 работает по переднему и заднему фронту тактирующего сигнала, что при частоте 100 МГц дает эффективную частоту передачи данных 200 МГц и пропускную способность интерфейса 1,6 Гбайт/с. В последующих моделях процессора частота работы шины (эффективная частота) достигла значений 133 (266), а затем и 200 (400) МГц.

Архитектура, реализованная в Athlon, получила название QuantiSpeed™, она определяет суперскалярное, суперконвейерное выполнение команд, конвейерный блок вычислений с плавающей точкой, аппаратную предвыборку данных в кэш-память и усовершенствованную технологию предсказания ветвлений.

Athlon имеет девять исполнительных блоков: три для обработки целочисленных данных (IEU), три для вычисления адреса (AGU) и три блока для вычислений с плавающей точкой и обработки мультимедийных данных (один для загрузки/сохранения данных с плавающей точкой (FSTORE) и два конвейерных блока для исполнения команд FPU/MMX/3DNOW).

Athlon может декодировать три команды х86 в шесть RISC-операций. После декодирования ROP попадают в буфер, где ожидают своей очереди на выполнение в одном из функциональных блоков процессора. Буфер К7 содержит 72 операции (в три раза больше чем у Кб) и выдает 9 ROP для 9 исполнительных устройств.

Athlon имеет 128 Кбайт кэш-памяти первого уровня (64 Кбайт для данных и 64 Кбайт для команд). Для взаимодействия с кэш-памятью второго уровня предусмотрена специальная шина (как у архитектуры Р6 Intel), Кэш-память второго уровня размером 512 Кбайт расположена вне процессорного ядра, в процессорном картридже, и работает на половинной частоте ядра.

Следующим микропроцессором с архитектурой К7 на ядре Thunderbird стал Duron -- бюджетный вариант микропроцессора, ориентированный на дешевые ПК. Основным его отличием является уменьшенная до 64 Кбайт кэшпамять второго уровня. Duron содержит 25 млн транзисторов на кристалле 100 мм 2 и рассчитан на частоты от 600 до 1200 МГц.

Размещение кэш-памяти на кристалле позволило разработчикам отказаться от использования картриджа и вернуться к разъему типа soket (462-контактный разъем Socket А). В процессорах Athlon и Duron работа кэшпамяти осуществляется по алгоритму, обеспечивающему эксклюзивность представления данных в кэшах (данные не дублируются в кэш-памяти первого и второго уровней), что увеличивает эффективный объем кзширован-ных данных.

Благодаря примененным в К7 новым архитектурно-техническим решениям микропроцессорам AMD удалось на 7--10% превысить производительность Pentium III при равных тактовых частотах.

Дальнейшее совершенствование архитектуры и технологии производства микропроцессоров в рамках семейства К7 привело к появлению двух новых версий Athlon: Athlon XP й Athlon MP.

Основное отличие процессора AMD Athlon MP от AMD Athlon XP -- использование технологии Smart MP, которая представляет собой совокупность высокоскоростной двойной системной шины и протокола когерентного кэша MOESI, управляющего пропускной способностью памяти, что необходимо для достижения оптимального баланса работы процессоров в многопроцессорных системах. Пропускная способность шины составляет 2,1 Гбайт/с, в расчете на каждый процессор.

Процессор выпускается с тактовыми частотами от I ГГц (технология 0,18 мкм) до 2,133 ГГц (технология 0,13 мкм, ядро Thoroughbred).