Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Особенности архитектуры универсальных производительных микропроцессоров





Появление и развитие первых микропроцессоров стимулировало вначале подход к максимальному усложнению и развитию их системы команд. С каждым новым микропроцессором добавлялись все новые специализированные и сложные команды. Идеалом такого подхода считалась система команд микропроцессора, в которой каждая команда реализовывала бы команду операционной системы или оператор языка высокого уровня. Максимально приближается к такому подходу система команд 86 семейства микропроцессоров. Впоследствии микропроцессоры с такими сложными командами стали называть – микропроцессоры со сложным набором команд (complex instruction set command CISC). Очевидные достоинства такого подхода:

- упрощается разработка программного обеспечения,

- машинные коды занимают меньше места в оперативной памяти и на внешних носителях,

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

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

Все это привело к тому, что для преодоления барьера по производительности к концу 20 века появился прямо противоположенный подход к построению системы команд процессоров. При этом подходе сначала разрабатывается аппаратный вычислительный конвейер под заданную производительность и потребление, а затем, исходя из полученной структуры конвейера формируется система команд, при этом, поскольку команды выполняются на конвейере – они в среднем занимают один такт тактовой частоты внутри кристалла. Поскольку такие конвейерные команды существенно проще и короче сложных, микропроцессоры с такими сокращенными командами стали называть – микропроцессоры с сокращенным набором команд (reduced instruction set command RISC). Команды при этом, как правило, фиксированной длины и считываются за один такт генератора. Недостатки такого подхода к формированию системы команд:

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

- программы в машинных кодах занимают больше места в оперативной памяти и на внешних носителях,

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

Единственное достоинство RISC микропроцессоров – высокая производительность при минимальном потреблении, но это достоинство перевесило все недостатки. Недостаток несовместимости был решен просто – каждому новому микропроцессору разрабатывался компилятор языка C, и программное обеспечение, включая операционную систему, перекомпилировалось этим компилятором. Таким образом, к началу 21 века RISC микропроцессоры победили своих предшественников с CISC системой команд. Особенности системы команд для RISC микропроцессоров:

- сокращенные режимы адресации в командах – нет косвенной, индексной и инкрементной адресации,

- все арифметико-логические команды только типа регистр – регистр, то есть данные для обработки должны находиться в регистрах,

- отсюда увеличенное количество регистров общего назначения (в среднем не менее 32 РОН),

- команды обращения к памяти являются отдельными командами типа чтение/запись.

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

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

В суперконвейерных микропроцессорах нет жестко разделенных исполнительных устройств, они образуются из набора конвейерных каскадов, формирующих так называемое “хаотичное” беспорядочное вычислительное ядро. Дешифратор команд в таких микропроцессорах параллельно дешифрирует несколько команд. Эти текущие команды поступают в требующиеся им конвейерные блоки, формируя собой текущую структуру вычислительного конвейера. Смена типов дешифрируемых команд может сменить структуру текущего вычислительного конвейера. Поскольку для некоторых команд конвейер удлиняется, например, для получения данных из памяти, и они выполняются дольше, а некоторые команды уже имеют готовые данные и выполняются быстрее, в таких архитектурах происходит “беспорядочное” не в порядке следования в программе выполнение команд. После беспорядочного ядра в таких микропроцессорах устанавливается переупорядочивающий постпроцессор, на выходе которого результаты выполнения команд упорядочиваются в порядке следования в программе. Типичными процессорами такого типа являются процессоры Pentium II и III, Athlon-XP. Структура исполнительных блоков процессора Pentium III показана на рис. 6.1. Работа исполнительных блоков начинается в упорядоченном предпроцессоре. Очередь предварительной выборки заполняется командами задолго до их исполнения. Блок выборки команд выбирает команды пакетами по 16 байт, а поскольку в 86 семействе могут быть команды из нескольких байт, предварительный декодер следит, чтобы на границе 16 байт команда заканчивалась, если она не умещается – она относится к следующему блоку команд в 16 байт. Далее используется схема переключаемых буферов, пока буфер 1 заполняется пакетом в 16 байт, буфер 2 предоставляет свои команды параллельно для декодирования. Два декодера параллельно могут декодировать до трех команд. Информация о командах ветвления и стековых возвратов запоминается в соответствующих буферах для динамического предсказания ветвлений и возвратов. Поскольку команды декодированы параллельно, то блок переименования регистров и выделения ресурсов назначает аппаратные регистры на программные, таким образом могут быть выделены два аппаратных регистра для одного программного EAX для разных команд с разными данными. Переупорядочивающий буфер чтения данных из регистров позволяет передавать данные на обработку не в порядке их следования в программе. Все команды исполняются шестью портами беспорядочного ядра. Перед этим они поступают на станцию резервации. Если данные для команды готовы к исполнению, то есть находились в регистрах - команда без задержки выполняется в соответствующих портах, если данные не готовы, находятся в памяти – команда приостанавливается на станции резервации, пропуская на выполнение команды, что ведет к их выполнению не в порядке следования в программе.

 

Рис. 6.1 Структура исполнительных блоков Pentium III

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

К гиперконвейерным микропроцессорам относятся архитектуры, содержащие ряд раздельных и независимых суперконвейреных исполнительных устройств. Как правило, конвейерные исполнительные устройства таких архитектур имеют повышенное число каскадов, а каждый каскад выполняет очень простую микрооперацию. Это позволяет повышать частоту работы таких конвейеров. Избыточность числа исполнительных конвейерных устройств и каскадов привела к появлению технологии Hyper-Threading (HT). Статистика исполнения большинства приложений показала, что в производительных микропроцессорах при поддержке вычислений одной последовательностью команд используется не более 40% всех исполнительных устройств. Технология HT поддерживает параллельно две последовательности команд, формируя два логических процессора из одного микропроцессора. Особенность этой технологии связана с тем, что не все исполнительные устройства имеют свои пары, поэтому при исполнении некоторых команд необходимо задерживать одну последовательность команд относительно другой, то есть нет полной независимости в паре последовательностей команд. Одна последовательность при этом является главной, вторая – второстепенной и необходимы специальные команды синхронизации этих двух последовательностей. В дальнейшем развитие гиперконвейерных архитектур привело к полному разделению параллельно поддерживаемых последовательностей команд. Достаточное количество исполнительных устройств привело к параллельной поддержке нескольких независимых последовательностей команд, образуя два, четыре и более логических независимых процессора, называемых вычислительными ядрами. Примерами таких архитектур являются развивающиеся архитектуры Pentium IV.

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

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

Вторая группа аппаратного предсказания ветвлений называется процессором ветвлений. На рис. 6.2 показана структура такого процессора.

Рис. 6.2. Процессор ветвлений.

В этом случае для агрессивной предвыборки команд применяется две очереди. Обязательным условием является наличие в кристалле нескольких идентичных исполнительных блоков команд – арифметико-логических устройств (АЛУ1 и АЛУ2), работающих параллельно. Пока отсутствуют команды ветвлений, последовательность команд загружается в первую очередь. При появлении команды ветвления команды прямой ветки загружаются в первую очередь, а команды обратной ветки загружаются во вторую очередь. До вычисления ветвления в двух АЛУ выполняются команды прямой и обратной ветки параллельно. После вычисления ветвления принимается результат выполнения команд соответствующей ветки – той, куда нужно было перейти, а второй результат отбрасывается и далее выполняются команды из соответствующей очереди. Появление следующих команд ветвления вызывает использование двух очередей. Достоинством такого подхода является отсутствие потери производительности независимо от результата ветвления. Недостаток применения процессора ветвлений – существенные аппаратные затраты, поэтому такой подход используется только в дорогостоящих производительных процессорах, например, рабочих станций фирмы SUN.

Третьим видом аппаратуры предсказания ветвлений является динамическое предсказание ветвлений (рис. 6.3).

Рис. 6.3. Динамическое предсказание ветвлений.

При таком подходе используется одна очередь предварительной выборки команд, но к ней добавляется буфер предсказания ветвлений – быстрая регистровая память, работающая, как и очередь с внутренней тактовой частотой кристалла микропроцессора. При первом появлении команды ветвления в очереди команд применяется статическое предсказание ветвления, то есть в буфер загружаются команды прямой ветви ветвления. Параллельно из дешифратора команд в буфер предсказания ветвлений записывается адрес команды ветвления. После вычисления ветвления происходит либо потеря производительности либо нет, как в статическом подходе, но статистика в виде логических нулей и единиц о том, куда произошло ветвление записывается в буфер предсказания ветвлений. Появление команды ветвления, адрес которой записан в буфере предсказания ветвлений, вызывает загрузку в очередь команд либо прямой, либо обратной ветви, в зависимости от того, куда чаще ветвилась данная команда в предыдущие проходы программы. Эта информация записана в виде нескольких бит статистики ветвления для данной команды ветвления в буфере предсказания ветвлений. В ранних версиях процессоров Pentium такой подход обеспечивал выполнение команд ветвлений без потери производительности для 80% команд ветвлений. В Pentium IV увеличение размера буфера и объема статистики обеспечило выполнение команд ветвлений без потери производительности для 95% команд ветвлений. Однако оставшиеся 5% команд давали существенную потерю производительности. Для уменьшения этой потери разработчики фирмы Intel перенесли дешифратор команд 86 семейства и поставили его перед КЭШем команд первого уровня. В результате в КЭШ уровня L1 теперь записываются микроинструкции RISC архитектуры, а сами микроинструкции хранятся в виде трасс – последовательностей команд прямых и обратных ветвей ветвления, что существенно сократило потери производительности при неверном предсказании ветвления, но увеличило объем КЭШа команд до нескольких сотен килобайт. Таким образом достоинство динамического предсказания ветвлений – приемлемые аппаратные затраты при высокой эффективности предсказаний ветвлений. Такой подход применяется теперь в большинстве производительных микропроцессоров средней стоимости.

Длительное время считалось, что 32-разрядные архитектуры, имеющие целочисленное 32-разрядное АЛУ, достаточны с точки зрения представления данных и производительности, но с усложнением вычислительных задач их производительности и точности стало не хватать. Крупнейшими фирмами – разработчиками микропроцессоров решено было перейти к 64-разрядным целочисленным АЛУ, сменив по ходу число регистров общего назначения 8 и систему команд 86 семейства на более близкую к RISC 64-разраядную систему команд с 16 РОН.

Следует отметить, что переход от 32-рахрядных к 64-разрядным архитектурам производительные микропроцессоры прошли плавно с совместимостью с 32-разрядными моделями, это в первую очередь касается микропроцессоров Athlon-64 и Pentium IV.

 


Date: 2015-11-13; view: 750; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию