Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Суперскалярные процессоры




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

Суперскалярным называется процессор, который одновременно выполняет более одной скалярной команды. Это достигается за счет включения в состав процессора нескольких самостоятельных функциональных блоков (АЛУ), каждый из которых отвечает за свой класс операций и может присутствовать в процессоре в нескольких экземплярах. Например, микропроцессор Pentium III содержит по два блока целочисленной арифметики и арифметики с плавающей точкой, а Pentium IV – по три таких блока. Структура типичного суперскалярного процессора имеет следующий вид:

Процессор включает в себя шесть блоков: выборки команд, декодирования команд, диспетчеризации команд, распределения команд по функциональным блокам (АЛУ), блок исполнения команд и блок обновления состояния.

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

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

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

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

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

Поскольку суперскалярность предполагает одновременную работу нескольких АЛУ, то для загрузки этих АЛУ процессор должен иметь в своем составе несколько конвейеров. Например, микропроцессоры Intel фирмы Pentium имеют два конвейера, каждый со своим АЛУ. В таком конвейере в каждом цикле необходимо производить выборку из памяти более чем одной команды. Поэтому память ЭВМ должна допускать одновременное чтение нескольких команд и операндов, что обеспечивается за счет ее многомодульного построения.

Блоки исполнения команд кроме АЛУ могут содержать специализированные устройства, позволяющие быстро выполнять такие операции как “Чтение”, “Запись”, “Переход”. Подобная форма суперскалярного процессора использовалась в микропроцессорах Pentium II и Pentium III фирмы Intel. В общем, применение суперскалярного процессора позволяет повысить производительность ЭВМ в 2–8 раз.

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

В таком конвейере блок выборки (ВК) читает из памяти более одной команды и передает прочитанные команды через ступени декодирования и вычисление адресов (ВА) в блок выборки операндов (ВО). После выборки операндов команды распределяются по соответствующим исполнительным блокам. Исполнительные блоки реализуют свои наборы команд.

 

 




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


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


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



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




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