Эффективность многоядерной архитектуры процессоров

 

Избежать конфликтных ситуаций, возникающих при использовании техноло­гии Hyper-Threading, можно в том слу­чае, если изолировать в пределах од­ного процессора выполнение различ­ных потоков инструкций. Фактически для этого потребуется использовать не одно, а два и более ядер процессора. Тогда в идеальном варианте каждый поток инструкций использует отведен­ное ему ядро процессора (и исполнительные блоки), что позволяет избе­жать конфликтных ситуаций и увели­чить производительность процессора за счет параллельного выполнения по­токов инструкций.


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

Применение в процессоре двухъядерной архитектуры позволило выполнить весь программ­ный код не за семь (как в случае процессора с технологией Hyper-Threading), а за пять тактов.

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

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

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

Регистровые структуры современных 32-разрядных

Процессоров

 

Современный 32-разрядный процессор имеет 32 программно-доступных регистра следующих видов:

· регистры общего назначения;

· регистр указателя команд;

· регистр флагов;

· регистры сегментации;

· регистры управления;

· регистры системного адреса;

· регистры отладки и тестирования;

Все 16-разрядные регистры младших моделей микропроцессоров 8086, 80*86 входят в состав набора 32-разрядных регистров. Рассмотрим эти регистры.

Регистры общего назначения. Восемь 32-х разрядных регистров общего назначения (РОН) предназначены для хранения данных и адресов (рис.5.7). Они поддерживают работу с данными разрядностью 1, 8, 16, 32 и 64 бита, битовыми полями длиной от 1 до 32 бит и адресными операндами размером 16 и 32 бита. Эти РОН называются: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

Младшие 16 разрядов каждого регистра могут использоваться по отдельности, они называются: AX, BX, CX, DX, SI, DI, BP, SP. Также могут индивидуально использоваться младший (0-7) и старший (8-15) байты РОН AX, BX, CX, DX соответственно, их называют: AL, BL, CL, DL и AH, BH, CH, DH.

Индивидуальная доступность байтов РОН обеспечивает дополнительную гибкость для операций с данными.

 
 

Регистр указателя команд. Регистр указателя команд представляет собой 32-х разрядный регистр, который называют EIP (рис.5.8). Он содержит смещение следующей команды, которую нужно выполнить. Смещение всегда определяется относительно сегмента кода. Его младшие 16 бит называются IP и используются при шестнадцатиразрядной адресации.

 
 

Регистр флагов. Регистр флагов является 32-х разрядным и называется EFLAGS. Его разряды содержат признаки (условия) выполнения команд, управляют обработкой прерываний, последовательностью вызываемых команд, вводом/выводом и рядом других процедур. Младшие 16 разрядов EFLAGS представляют собой регистр FLAGS, который может использоваться при выполнении операций с младшими моделями процессоров 80*86.

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

Описание разрядов регистра следующее:

M – виртуальный режим;

RF – возобновление задач;

NT – вложение задач;

IOPL – уровень привилегий ввода/вывода;

OF – переполнение;

DF – направление обработки;

IF – разрешение прерываний;

TF – трассировка;

SF – знак результата;

ZF – нулевой результат;

AF – вспомогательный перенос;

PF – паритет;

CF – перенос.

Сегментные регистры. Шесть 16-ти разрядных сегментных регистров содержат базовые адреса сегментов, определяющие сегменты памяти текущей адресации (рис.5.9). В защищенном режиме каждый сегмент может иметь размеры от одного байта до целого линейного и физического пространства машины (до 4 Гбайт). В режиме реальной адресации, максимальный размер сегмента ограничен на 64 Кб. Шесть сегментов определяются содержимым регистров CS, SS, DS, ES, FS и GS. Значение в CS указывает на текущий сегмент кода; содержимое SS указывает текущий сегмент стека, а значения в DS, ES, FS и GS – на сегменты данных.

 
 

Регистры дескриптора сегмента. Регистры дескриптора сегмента невидимы для программиста. В 32-х разрядном процессоре регистр дескриптора сегмента соотнесен с каждым видимым регистром селектора, как показано на рис.5.9. Каждый из них содержит 32-х битовый базовый адрес сегмента, его границу (предел) и другие необходимые признаки сегмента. Когда адрес сегмента загружается в сегментный регистр, ассоциативный (соотнесенный) регистр дескриптора автоматически модифицируется в соответствии с новой информацией.

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

При работе FPU 80-разрядные регистры ST0-ST7 образуют кольцевой стек, в котором хранятся числа с плавающей точкой, представленные в формате с расширенной точностью. Тег определяет, является ли регистр пустым (незаполненным) – код 11 или в него введено конечное число – 00 (достоверное значение), или нуль – 01, неопределенное значение (бесконечность) – 10 (нет числа и неподдерживаемый формат). Слово тегов позволяет оптимизировать функционирование FPU посредством идентификации пустых и непустых регист
ров данных, проверить содержимое регистра без сложного декодирования хранящихся в нем данных.

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

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

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

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








Дата добавления: 2016-06-13; просмотров: 818;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.