Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Микропроцессоры с RISC-аpхитектуpойСодержание книги
Поиск на нашем сайте
Идеология RISC-архитектуры построения процессоров (Reduced INsTRuction Set ComputINg - вычисления с сокращенным набором команд) складывалась в конце 1970-х - начале 1980-х годов, когда потребовались новые идеи для повышения производительности процессоров. Выводы различных групп исследователей были обобщены в виде так называемого правила "80/20": 80 % времени выполнения программ занимает выполнение 20 % команд, входящих в состав системы команд. То есть в определении производительности процессора основную роль играет лишь пятая часть всех команд, остальные же команды встречаются достаточно редко, и время их выполнения существенного влияния на производительность процессора не оказывает. Исходя из этого было принято решение построить процессор, в котором выделенная небольшая группа команд выполнялась бы максимально быстро за счет ее аппаратной реализации, а остальные команды либо вообще удалялись из системы команд, либо реализовывались на микропрограммном уровне. Сложившаяся в результате этого идеология RISC-архитектуры опиралась на следующие принципы: - набор команд сокращен до 70-100 команд (вместо нескольких сотен у CISC-микропроцессоров); - большинство команд выполняется за 1 такт, и лишь немногие - за несколько или даже несколько десятков тактов; - все команды обработки данных оперируют только содержимым регистров процессора, а для обращения к более медленной оперативной памяти предусмотрены исключительно инструкции вида "загрузить в регистр" и "записать в память"; - команды имеют простой, четко заданный формат; - из набора команд исключены редко используемые инструкции, а также команд, не вписывающихся в принятый формат; - состав системы команд должен быть удобным для применения оптимизирующих компиляторов с языков высокого уровня. Такой подход позволил уменьшить объем аппаратуры процессора за счет сокращения блока управления примерно в 10 раз, существенно увеличить тактовую частоту работы процессора и снизить его тепловыделение. Несмотря на свое название, основой RISC-архитектуры является то, что вся обработка сосредоточена только во внутренних регистрах микро процессора. Так как вся обработка проходит в регистрах, отпадает необходимость в большом количестве режимов адресации операндов, а в системе команд можно применять трехадресные команды, наиболее эффективные с точки зрения организации вычислительного процесса и в то же время не имеющие их главного недостатка - большой длины команды. Простой формат команды легко поддается декодированию на соответствующей ступени работы конвейера. Вспомним, что длина команды в CISC-архитектуре IA-32 меняется в пределах от одного до 15 байт, а наличие, формат и назначение многих полей команды неоднозначны и определяются структурой других полей. Естественно, что этот подход потребовал использования в микропроцессоре регистровой памяти большого объема (до 128 регистров). А для обеспечения согласованной работы быстрых внутренних конвейеров и относительно медленной оперативной памяти в RISC-микропроцессорах предусматривается кэш-память большой емкости. Наличие большого количества регистров создает хорошую основу для работы оптимизирующих компиляторов, которые позволяют эффективно использовать все конвейеры микропроцессора. Простой формат команды и ориентация на регистровую обработку позволили безболезненно внедрить в RISC-процессорах конвейерный принцип обработки информации. Такая организация обеспечила существенное повышение производительности RISC-микропроцессоров по сравнению с микропроцессорами CISC-архитектуры. Это привело к преобладанию МП данного типа в тех областях, где производительность являлась основополагающим фактором, например, в серверах. В то же время они не нашли своего места на наиболее развитом рынке вычислительной техники - рынке персональных компьютеров. Тому есть несколько причин: - дороговизна RISC-процессоров и систем на их основе: изначально эти процессоры были ориентированы на мощные рабочие станции и серверы, поэтому разработчики использовали в них решения, слишком дорогие для персональных компьютеров; даже специальные, "дешевые" варианты RISC-компьютеров стоили гораздо дороже сравнимых с ними ПК на базе процессоров Intel по причине малых объемов производства; - отсутствие широких наработок в области программного обеспечения: традиционной операционной системой для персональных компьютеров была DOS, к ней впоследствии присоединились 16разрядные версии WINdows, под которые написано огромное количество популярных и хорошо знакомых пользователям программ. Различные RISC-платформы обычно использовали несовместимые между собой разновидности Unix, для которыхсуществовало значительно меньше программ, главным образом научно-технических (для рабочих станций) либо сетевых приложений (для серверов); - RISC-процессоры по своему основополагающему положению обладают несовместимыми с х86 наборами команд, поэтому единственным способом исполнения кода х86 была эмуляция, которая снижала производительность от десятков до сотен процентов, что сводило на нет скоростные преимущества RISC-процессоров; - отсутствие интереса к проникновению на этот рынок у самих производителей RISC-систем: многие "серьезные" фирмы вроде DEC или Sun полагали, что нет нужды удешевлять свои RISC-станции, потому что пользователи все равно выберут их системы из-за очевидных технических преимуществ. Развитие архитектуры RISC-микропроцессоров шло по нескольким направлениям. За счет повышения технологических возможностей производства микропроцессоров смягчились требования к составу и форматам используемых команд. В настоящее время их системы команд расширились с первоначальных 70-100 до 100-120. Увеличилось также и количество используемых форматов команд. Однако основной принцип RISC-архитектуры остается неизменным: обработка данных выполняется только над содержимым внутренних регистров МП без обращения к оперативной памяти. Вместо требования выполнения команды за один такт используется требование получения очередного результата в очередном такте работы, то есть фактически закреплен принцип конвейерной обработки данных. Для обработки данных микропроцессоры получили не один, а несколько конвейеров со своими исполнительными устройствами. Наиболее известными RISC-микропроцессорами в настоящее время являются МП семейства SPARC фирмы Sun Microsystems, Alpha 21х64 фирмы Digital EquIPment и Rx000 фирмы MIPS Computer Systems. За последние годы активно внедряются в различную аппаратуру RISC-микропроцессоры семейства PowerPC. Среди фирм, выпускающих RISC-микропроцессоры, находятся также Intel, Hewlett Packard. Совместный проект компаний Apple, Motorola и IBM – микропроцессор PowerPC (Performance Optimization With Enhanced RISC) - был ориентирован на создание недорогого, но мощного RISC-процессора и платформы для него. До появления архитектуры Intel NetBurst процессоры PowerPC почти всегда превосходили чипы Intel в скорости вычислений с плавающей точкой на десятки процентов, при этом потребляя намного меньшую мощность. По различным причинам на заключительной стадии этого проекта среди разработчиков осталась лишь компания IBM. Организация работы RISC -микропроцессора на примере МП Power4 фирмы IBM, который является логическим развитием архитектуры PowerPC. Микропроцессоры Power4 содержат свыше 180 млн транзисторов на кристалле и выпускаются с частотами до 1,7 ГГц при достаточно низком для высокопроизводительных процессоров уровне энергопотребления (70 Вт). С точки зрения производительности они остаются основными и практически единственными конкурентами 6четырехразрядных микропроцессоров архитектуры IA-64. Структура микропроцессора Power4 представлена на рисунке 17.1. Оставаясь по своей сути RISC-микропроцессором, Power4 в то же время имеет много особенностей. Отметим две главные из них. Во-первых, Power4 стал первым микропроцессором, в котором была реализована идея размещения нескольких процессорных ядер на одной микросхеме. В состав МП Power4 входят два однотипных процессорных ядра. Во-вторых, на кристалле Power4 содержатся интегрированные аппаратные средства, определяющие важные архитектурные черты микропро цессорных систем на его основе. В числе этих средств порты каналов, напрямую связывающих Power4 с другими процессорами внутри так называемого микросхемного модуля (Multi-Chip Module - MCM), канал ввода-вывода (шина GX), интегрированный контроллер шины оперативной памяти и кэша третьего уровня, разделяемого всеми процессорами MCM.
Рисунок 17.1 - Структура микропроцессора Power4
Каждый двухъядерный процессор Power4 упакован в керамический мультипроцессорный модуль вместе с тремя другими МП. Такой микросхемный модуль MCM, содержащий четыре МП Power4, в итоге объединяет восемь процессоров. Структура ядра МП Power4 представлена на рисунке 17.2.
Рисунок 17.2. Структура ядра микропроцессора Power4
В составе каждого ядра Power4 имеется восемь конвейеризованных исполнительных устройств (executive unit - EU): - два устройства обработки чисел с плавающей точкой (FP EU), каждое из которых может выполнять команды "умножить-и-сложить", что дает четыре результата с плавающей точкой за такт. Операции извлечения квадратного корня и деления с плавающей запятой не конвейеризованы; - два устройства для работы с числами с фиксированной запятой (FX EU), деление может выполняться только в одном из устройств FX EU; - два устройства загрузки регистров / сохранения (LD EU), которые выполняют арифметические действия по генерации адресов памяти; - устройство обработки команд переходов (BR EU); - устройство выполнения логических операций с регистром условий (CR EU). Для обеспечения возможности внеочередного выполнения применяются несколько специальных очередей к исполнительным устройствам (IQ), в том числе очередь StQ для команд сохранения. Каждое из ядер имеет свой кэш первого уровня, отдельный для команд (I-кэш) и данных (D-кэш). I-кэш емкостью 64 Кбайт является прямоадресуемым и может читать или писать 32 байта за такт, что эквивалентно 8 командам. Он использует IFO-алгоритм замещения данных. D-кэш первого уровня емкостью 32 Кбайт имеет двухканальную организацию, что способствует увеличению эффективности использования его емкости по сравнению с прямоадресуемой организацией I-кэша. Кэш второго уровня у ядер общий. Он является уже восьмиканальным и имеет относительно небольшую емкость 1,4 Мбайт. Это, однако, компенсируется использованием с Power4 кэша третьего уровня большой емкости (32 Мбайт на двухъядерную микросхему Power4 или 128 Мбайт на микросхемный модуль MCM из четырех МП). Кэш второго уровня организован в виде трех независимых блоков, каждый со своим контроллером и интерфейсом доступа со стороны ядра (core Interface unit - CIU). Распределение обработки запросов в кэш второго уровня между тремя блоками способствует увеличению производительности. Каждое ядро имеет по три порта к CIU (для выборки команд - IF, загрузки регистров - LD и сохранения данных - ST). Контроллеры кэша второго уровня работают одновременно, обрабатывая по 32 байта за такт процессора. Для поддержания согласованного представления данных в кэше второго уровня используется расширенный протокол MESI, включающий семь состояний. Кэш-память второго уровня разделяется не только двумя процессорами кристалла, но также и внешними процессорами других кристаллов микросхемного модуля через линии связи шириной 16 байт, работающими на частоте более 500 МГц. Логической частью кэша второго уровня являются два так называемых некэширующих устройства (non-cachINg unit - NCU), каждое приписанное к своему процессору. NCU-устройства отвечают за сериализацию команд и выполнение некэшируемых операций в иерархии памяти. Через специальное устройство - "контроллер фабрики" (fabric conTRoller - FC) данные могут быть направлены в кэш третьего уровня и оперативную память. Весь ввод-вывод осуществляется через контроллер шины GX, имеющий порт к FC. Порт кристалла Power4, предназначенный для подключения кэшпамяти третьего уровня, имеет ширину 16 байт для каждого из двух направлений пересылки данных. Порт функционирует на 1/3 от тактовой частоты процессоров кристалла, что обеспечивает пропускную способность к памяти на уровне 10 Гбайт/с. Следует отметить, что хотя кэш третьего уровня является внешним по отношению к МП, его теги расположены внутри кристалла, что сокращает время поиска нужной информации. Кэш третьего уровня является общим для модуля MCM, который может содержать кроме микросхемы кэша третьего уровня четыре микросхемы Power4. Для передачи данных между микросхемами Power4, входящими в МСМ, в FC предусмотрены выделенные порты, ориентированные на создание мультимикропроцессорной системы. Для обращения к оперативной памяти используется буфер ассоциативной трансляции страничного адреса TLB. В TLB поддерживаются страницы памяти емкостью не только 4 Кбайт, но и 16 Мбайт. Помимо этого имеется ассоциативный буфер таблицы сегментов SLB (Segment Lookaside Buffer) емкостью 64 строки. Микропроцессор Power4 несет в себе все черты RISC-архитектуры. Он имеет 32 регистра общего назначения и 32 регистра для работы с числами с плавающей точкой. Все вычисления производятся в регистрах, а не в основной памяти. Система команд - трехадресная. Некоторое представление о ней дают следующие команды: ld RA, 0(RB); загрузить в RA число из ячейки памяти, адрес которой задан в RB add RA, RB, RC; RA = RB + RC Каждая команда имеет длину 32 бита. Первые 6 бит определяют код операции, а остальные имеют различное значение, зависящее от команды. Тот факт, что команды имеют фиксированную длину, позволяет процессору выполнять их более эффективно. Отметим, что все вычислительные команды используют первый аргумент как место приемника результата. Регистры во всех этих командах обозначаются только их номерами. Например, команда, загружающая число 12 в регистр 5, имеет вид li 5, 12. Зная формат команды, можно определить, что 5 - это номер регистра, а 12 - это число. Никаких других указателей на это нет. Система команд Power4 имеет максимальное для RISC-микропроцессоров число команд, выполняемых за один такт, включая одну команду перехода. Сохранение в Power4 системы команд PowerPC, связанное с поддержкой двоичного кода пользователей, потребовало применения не только однотактных команд, но и микропрограмм и даже прерываний для программной реализации наиболее сложных инструкций. На стадии подготовки к исполнению RISC-команды архитектуры PowerPC декодируются в так называемые внутренние микрооперации (IOP). Таким образом, IOP есть аналог микроопераций в Pentium 4 (?ops). Однако в отличие от Pentium 4, IOP-команды, как правило, совпадают с обычными командами PowerPC. IOP содержат только команды, которые читают не более двух регистров и пишут не более чем в один регистр. Исключение сделано для некоторых команд с плавающей точкой типа "умножить-и-сложить", в которых применяется три регистра-источника. Другие команды при необходимости разбиваются на последовательность IOP-команд. Так, команда загрузки нескольких слов в регистры преобразуется в несколько IOP-команд загрузки одного слова. На начальных стадиях конвейера проверяются возможные взаимозависимости команд (например, по данным), препятствующие их одновременному исполнению, и планируется объединение команд в группы. Так что реально в микропроцессоре исполняются внутренние команды, которые объединяются в группы по пять команд. За один такт пять команд из одной группы пересылаются в очереди выполнения. Выборка IOP-команд из очередей на выполнение в исполнительные устройства EU может осуществляться во внеочередном порядке. За один такт может завершиться только одна группа команд. Это подразумевает завершение выполнения с фиксацией результатов не только всех команд данной группы, но и всех предшествующих групп. Для управления группами используется таблица завершения групп GCT емкостью 20 строк, в каждой из которых содержится адрес первой команды группы и информация о завершении команд группы. Одновременно в Power4 может находиться на разных стадиях выполнения до 215 команд, а в Pentium 4 - до 126 микрокоманд. Процессоры Power4 являются суперскалярными, имеющими конвейер длиной 15 стадий и осуществляющими внеочередное спекулятивное исполнение команд с использованием техники переименования регистров. Для современных суперскалярных микропроцессоров, имеющих длинные конвейеры, высокая точность предсказания переходов крайневажна, а методы предсказания переходов быстро развиваются. За один такт процессор может выбрать из I-кэша и запустить на выполнение до восьми команд, но "поддерживаемый темп", то есть число команд, завершающих выполнение за один такт, равен 5. Логика предсказания переходов сканирует их, и за один такт может обработать до двух команд перехода. Подобно другим современным RISC-процессорам, в Power4 задействовано несколько механизмов предсказания переходов, включая статическое и динамическое предсказание. При этом направление безусловных переходов не предсказывается, а направление условных переходов предсказывается всегда. Для переходов, используемых при вызовах подпрограмм, применяется специальный стек адресов, а для команд переходов в цикле используется особый кэш счетчика. Запись в этот кэш, как и в стек адресов перехода при вызовах подпрограмм, происходит, если на это есть указание в коде программы. Для динамического предсказания в Power4 используются три таблицы истории переходов. Первая - традиционная таблица истории переходов емкостью 16К строк, индексом в которой является адрес команды перехода. Вторая таблица связана с уникальной особенностью диспетчерирования команд в Power4 группами по 5 команд. Эта таблица также содержит 16К строк и отслеживает путь выполнения программы, приводящий к переходу. Этот путь выполнения представлен 11-разрядным вектором глобальной истории, по одному биту на группу команд для всех предыдущих выбранных 11 групп. Наконец, третья таблица - таблица селектора - имеет те же самые 16 К строк, в которых отслеживается, какая из двух схем предсказания работает лучше. На ее основе генерируется окончательное предсказание переходов. Конечным результатом работы логики предсказания переходов является загрузка в регистр IFAR адреса Выбратьой команды. Контрольные вопросы: 1. Принципы построения и развития архитектуры risc-процессоров. 2. Архитектура микропроцессора Power4, сочетающего в себе RISC-архитектуру и многоядерность.
|
||||
Последнее изменение этой страницы: 2021-02-07; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.187.224 (0.009 с.) |