Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ЛЕКЦИЯ № 11. Архитектурные особенности современных микропроцессоров




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

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

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

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

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

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

Процессоры могут быть разбиты на два класса: RISC-процессоры компьютеров с сокращенным набором команд (Reduced Instruction Set Computer) и CISC-процессоры со сложным набором команд (Complex Instruction Set Computer).

Процессоры первого класса имеют команды обработки типа "регистррегистр, регистр" и команды сохранения (store) и загрузки (load) типа "памятьрегистр" и "регистрпамять" соответственно. Функциональные преобразования могут выполняться только над содержимым регистров, а результат помещается также в регистр.

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

Очевидно, что RISC-процессоры эффективны в тех областях применения, в которых можно продуктивно использовать структурные способы уменьшения времени доступа к оперативной памяти. Если программа генерирует произвольные последовательности адресов обращения к памяти и каждая единица данных используется только для выполнения одной команды, то фактически производительность процессора определяется временем обращения к основной памяти. В этом случае использование сокращенного набора команд только ухудшает эффективность, т. к. требует пересылки операндов между памятью и регистром вместо выполнения команд типа "памятьпамять, память". Программист должен учитывать необходимость локального размещения обрабатываемых данных, чтобы при пересылках между уровнями памяти по возможности все данные пересылаемых блоков данных принимали участие в обработке. Если программа будет написана так, что данные будут размещены хаотично и из каждого пересылаемого блока данных будет использоваться только небольшая их часть, то скорость обработки замедлится в несколько раз, до скорости работы основной памяти. В качестве примера приведем в табл. 1.1 результаты замеров производительности микропроцессора Alpha 21066 233 МГц при реализации преобразования Адамара при n – 8-20.

Таблица 1.1. Производительность микропроцессора Alpha 21066 при выполнении преобразования Адамара

n Производительность в условных алгоритмических операциях, млн. оп/с
   
   
   
³12  

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

Развитие микропроцессоров происходит при постоянном стремлении сохранения преемственности программного обеспечения (ПО) и повышения производительности за счет совершенствования архитектуры и увеличения тактовой частоты. Сохранение преемственности ПО и повышение производительности, вообще говоря, противоречат друг другу. Так, например, процессоры с системой команд х86, относящиеся к классу CISC-процессоров вплоть до Pentium Pro, имели более низкие тактовые частоты по сравнению с микропроцессорами ведущих компаний – производителей RISC-процессоров, изготавливаемых по одним и тем же технологическим нормам. Для этих процессоров существовали приложения, на которых производительность х86 микропроцессоров была значительно ниже, чем у RISC-процессоров, реализованных на той же элементной базе. Однако возможность использования совместимого ПО для различных поколений х86 процессоров обеспечивала им устойчивое доминирующее положение на рынке.

Затем на основе "пионерских" разработок компаний NexGen и AMD, позднее подхваченных компанией Intel, была реализована успешная попытка решения проблемы повышения производительности в рамках архитектуры х86. Эти компании, сохраняя преемственность по системе команд с CISC-микропроцессорами семейства х86, создали новые устройства с использованием элементов RISC-архитектуры. Первыми примерами такого подхода могут служить микропроцессоры Nx586 (NexGen), K5, Кб (AMD), использующие концепцию RISC-ядра. В микропроцессор встраивается аппаратный транслятор, превращающий команды х86 в команды внутреннего RISC-процессора. При этом одна команда х86 может порождать до четырех команд RISC-процессора. Исполнение команд происходит, как в развитом суперскалярном процессоре. Компания Intel впервые использовала этот подход в своем микропроцессоре Pentium Pro, что весьма укрепило ее позиции на фоне достижений RISC-архитектур.




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 1399; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.