Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Устройство управления процессора Intel Pentium Pro (и более новых модификаций)



Испытывая прессинг со стороны производителей RISC-процессоров (имеющие простую структуру, пониженное электропотребление, более высокую тактовую частоту по сравнению с процессором Pentium, но не уступающие в производительности), корпорация Intel решила в 1994 году создать свой собственный RISC-процессор, Однако ее руководство помнило, что успех ее процессорам i8088, i80386, Intel Pentium принесла в основном не ценовая или маркетинговая политика, а совместимость со старыми моделями. Именно поэтому Intel разработала не чисто RISC-процессор, у которого не было шансов закрепиться на рынке, а RISC-подобный CISC-процессор Pentium Pro.

Этот процессор обладает двухуровневым устройством управления. На первом уровне (ядре микропроцессора) реализовано обычное устройство управления RISC-процессора с его стандартными функциями (см. раздел D.2.2). На втором уровне устройство управления занимается аппаратным "переводом" CISC-инструкций процессора Pentium в RISC-инструкции ядра процессора Pentium Pro. В результате набор команд и внешнее окружение процессора Pentium Pro совпадало с Pentium, однако его было проще оптимизировать под тридцатидвухразрядные операции.

В последующих своих разработках фирма Intel стала шире использовать эту двухуровневую архитектуру, дополнив эту модель конвейером и SIMD, что обеспечивало дальнейший рост производительности. Однако, благодаря своей простоте, на основе процессоров Intel Pentium Pro можно было строить сервера с симметричной архитектурой, обладающими восемью и более процессорами, а на основе Pentium II -- только двухпроцессорные [Константин Пьянзин. "Выбираем файловый сервер"//LAN Журнал сетевых решений. -- 1998, том.4 -- 9 (сентябрь) -- стр. 105-112.](1998 год. На основе микропроцессоров Intel Pentium II Xeon и Intel Pentium III Xeon можно создавать шестипроцессорные и более мощные кластеры, но пока операционные системы для этих процессоров поддерживают до четырех таких процессоров. -- 23.07.2001.) Поэтому, по информации автора, процессоры на 01.08.1999 еще не сняты с производства (хотя объемы его производства резко сократился.) Дата прекращения выпуска этих процессоров автору не известна. Следует отметить, что для RISC-серверов созданы материнские платы с симметричной мультипроцессорной архитектурой, поддерживающих до 32-х процессоров [Там же].

Адресация памяти в микропроцессорах.

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

Способы адресации

Существуют следующие способы адресации операндов:

Регистровая (операнд -- в регистре данных или адреса).

Косвенно-регистровая (операнд -- в ячейке памяти, адресуемой содержимым регистра адреса).

Косвенно-регистровая с постинкрементом (операнд -- в ячейке памяти, адресуемой содержимым регистра адреса, который автоматически увеличивается после выборки операнда).

Косвенно-регистровая с пердинкрементом (операнд -- в ячейке памяти, адресуемое содержимым регистра адреса, которое автоматически уменьшается перед выбором операнда).

Косвенно-регистровая с индексированием (операнд -- в ячейке памяти, ее адрес -- сумма содержимого регистра адреса, индексного регистра и задаваемого в команде 8-ми (иногда 16-ти и 32-х) разрядного смещения).

Прямая (операнд -- в ячейке памяти, адрес которой задается числом, указанным в команде).

Относительная (операнд -- в ячейке памяти, адрес которой -- сумма текущего содержимого программного счетчика и данного в команде 16-ти (32-х) разрядного смещения).

Относительная со смещением (операнд --в ячейке памяти, адрес которой -- сумма содержимого программного счетчика, индексного регистра и указанного в команде 16-ти (32-х) разрядного смещения).

Непосредственная (операнд -- в команде).

Дополнительно введены следующие способы адресации:

Косвенно-регистровая с базовым смещением и ндексированием (операнд -- в ячейке памяти, адрес которой -- сумма адресного базового регистра, индексного регистра (возможно масштабированного) и 32-х разрядного смещения).

Косвенно-регистровая с постиндексированием (к содержимому адресного (базового) регистра прибавляется смещение, затем прибавляется содержимое индексного регистра и дополнительное смещение, и все это является адресом ячейки памяти, содержащий операнд).

Косвенно-регистровая с прединдексированием (операнд -- в ячейке памяти, адрес которого определяется суммированием содержимого базового регистра, индексного регистра и базового смещения, к которому впоследствии прибавляется дополнительное смещение).

Относительное с базовым смещением и индексированием (то же, что и 10, только вместо базового регистра используется программный счетчик).

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

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

Как правило, другой операнд должен присутствовать в регистре адреса или данных.

Смещение может быть положительным и отрицательным. В качестве индексного регистра при индексации с индексированием может служить любой из регистров данных или адреса. Текущее содержимого программного счетчика, используемое для выделения относительного адреса, равно адресу первого слова выполняемой команды, умноженного на 2 (на 4).

Во всех способах адресации с индексированием введено масштабирование индекса. Оно осуществляется умножением содержимого индексного регистра Xn на масштабный множитель SCALE, имеющий значение 1, 2, 4 и 8. В зависимости от значения символа разрядности SIZE, указываемого после имени индексного регистра, используется 16 или 32 разряда его содержимого. Если после имени индексного регистра указан символ W (word, слово). то индексом служат 16 его младших разрядов, расширенные до 32-х разрядов битом знака. Если же указан символ L (long word, длинное слово), то индексом служит 32-х разрядное значение индексного регистра, используемое как число со знаком. При SCALE=1 содержимое Xn (индексного регистра) остается без изменения, а при SCALE = 2,4 или 8 сдвигается влево на 1, 2 или 3 разряда соответственно.

При программировании на языке ассемблера значение индекса задается следующим обозначением:

Xn.SIZE*SCALE

где Xn -- индексный регистр. Им может быть An (регистр адреса) или Dn (регистр данных). SIZE -- W или L, а SCALE -- 1, 2, 4, 8. Например:

D5.L*1

A4.W*4




©2015 studenchik.ru Все права принадлежат авторам размещенных материалов.