Процессоры. История развития. Структура. АрхитектураРефераты >> Программирование и компьютеры >> Процессоры. История развития. Структура. Архитектура
Объем и сложность данных, обрабатываемых современными компьютерами, стремительно увеличивается. Новые средства связи, видео - и аудиоприложения выдвигают повышенные требования к производительности микропроцессора. ММХ - технология разработана для ускорения мультимедиа и коммуникационных программ. Она включает в себя новые команды и типы данных, что позволяет создавать приложения нового уровня. Технология основана на параллельной обработке данных. При этом сохраняется полная совместимость с существующими операционными системами и программным обеспечением. ММХ – технология – это самое значительное усовершенствование со времени создания процессора Intel-80386, т.е. создания 32 – разрядной архитектуры.
В процессоры семейства Р5 (Pentium и Pentium MMX) были добавлены следующие команды:
· CMPXCHG8B (compare and exchange 8 bytes)
· CPUID (CPU identification)
· RDTSC (read time-stamp counter)
· RDMSR ( read model-specific register)
· WRMSR (write model-specific register)
· RSM (resume from SSM)
Форма команды MOV, которая обращалась к регистрам тестирования, удалена из процессоров Р5 и всех последующих. Функция регистров тестирования теперь выполняют регистры MSR (Model Specific Register). Задействован новый регистр управления CR4. В регистр EFLAGS добавлены следующие флажки:
· VIF (virtual interrupt flag)
· VIP (virtual interrupt pending)
· ID (identification flag)
Рисунок 1. Формат регистра EFLAGS в процессорах Р5
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
ID |
VIP |
VIF |
AC |
VM |
RF |
0 |
IIT |
IOPL |
IOPL |
OF |
DF |
IF |
TF |
SF |
ZF |
0 |
AF |
0 |
PF |
1 |
CF |
Изменения в прерываниях:
При попытке записать единицу в зарезервированный бит специальных регистров генерируется исключение #GP – нарушение общей защиты.
При обнаружении единицы в зарезервированном бите элемента каталога страниц или элемента таблицы страниц генерируется исключение #PG –страничное нарушение.
Добавлено новое исключение #18 – Machine Check Exception. Это исключение предназначено для сообщения об аппаратных ошибках. Исключение является специфическим для данной модели процессора и может быть изменено в последующих моделях. Управление исключением осуществляется через MSR-регистры.
Конвейер Pentium построен так, что позволяет выполнять до двух команд. Прозрачный для программ механизм предсказания ветвлений позволяет уменьшить задержки конвейера при переходах. В процессоре Pentium MMX в конвейер добавлены новые стадии. P5 может декодировать до двух инструкций за один такт и направлять их по двум логическим каналам (U и V – каналы). На этапе декодирования процессор проверяет, могут ли две команды выполнятся параллельно. Если да, то первая команда направляется в U-канал конвейера, а вторая – в V – канал. В противном случае только одна команда направляется в U – канал и ничего не поступает в V – канал.
На стадии предвыборки (PF – pre fetch) команды выбираются из кэша команд. Далее они поступают на стадию выборки (F – fetch). Здесь происходит разделение выбранной порции кода на отдельные команды, а также декодирование любых префиксов. Между стадией (F) и стадией (D1) находится FIFO – буфер. В нем может содержаться до четырех инструкций. FIFO – буфер прозрачен, т.е. он не отнимает времени, когда он пуст. В каждом такте из стадии (F) в FIFO – буфер может выпускаться до двух команд. Пара инструкций поступает (если это возможно) из FIFO на стадию (D1). Так как средняя скорость выполнения команд меньше чем две команды за такт, то FIFO обычно заполнен. Следовательно, FIFO может буферизировать задержки, возникающие на стадиях (PF) и (F), тем самым, предотвращая по возможности обеднение (когда в FIFO находится одна команда) или полную остановку конвейера. Если в одном из каналов возникла задержка, то команды, следующие за застрявшей командой, не могут продвигаться дальше, даже если застрявшая команда находится в другом канале. Например, параллельно по двум каналам следуют две команды, одна из которых требует один такт на стадии (EX), а другая – два такта. Пусть первая команда находится в V – канале, а вторая - в U – канале. Попав на стадию (EX), первый такт эти команды выполняют вместе. В следующем такте команда в U – канале остается на стадии (EX), а команда в V – канале переходит на следующую стадию, при этом на ее место ничего не поступает, т.е. параллельно с двухтактной командой не могут выполняться две однотактные. Решение о спаривании команд принимается только один раз при входе в конвейер. Это один из главных недостатков архитектуры P5.
PF – предвыборка команд.
F – определение границ команд.
D1 – декодирование команд.
D2 – генерация линейного адреса.
EX : INT – чтение операндов из памяти, выполнение команды, запись операндов в память.
MMX – чтение операндов из памяти, далее переход на стадию Mex.
FPU – чтение операндов из памяти и регистров, далее переход на стадию X1, преобразование данных ко внешнему формату, запись в память (FST).
WB – запись результата в регистр.
Mex – выполнение MMX – команд. Первый такт команды умножения.
Wb/M2 – запись результата однотактных команд. Второй такт умножения.
M3 – третий такт умножения.
Wmul – запись результата умножения.
X1 – преобразование данных ко внутреннему формату, запись в регистр.