Организация вычислительных систем и сетей. Халабия Р.Ф. - 57 стр.

UptoLike

Составители: 

57
удобными наборами команд. Что касается AMD-K6-2, то речь в
данном случае идет об объединенной архитектуре на основе преобразования
х86-команд в более простые в обращении RISC-инструкции,
Основная ее особенность состоит в том, что внешние х86-инструкции,
поступающие на обработку в процессор, преобразуются во внутренние
RISC86-инструкции, которые и исполняются процессором. Вместо
того чтобы
напрямую исполнять сложные х86-инструкции с переменной длиной от 1 до 15
байт, процессор обрабатывает поток простых RISC86-инструкций
фиксированной длины.
В состав процессора AMD-K6-2 (рис. 4.16) входят несколько основных
модулей; L1-кэш данных (Level-One Dual Port Data Cache), Li-кэш инструкций
(Level-One Instruction Cache) с кэшем предварительного декодирования
(Predecode Cache), модуль декодирования (Multiple Instruction Decoders),
центральный планировщик (Centralized RISC86 Operation Scheduler),
вычислительные блоки (Execution Units) и модуль предсказания переходов
(Branch Logic).
L1-кэш инструкций и
данных, предварительное декодирование. L1-кэш
состоит из двух независимых блоков: L1-кэша данных (Level-One Dual Port
Data Cache) и L1-кэша инструкций (Level-One Instruction Cache) с кэшем
предварительного декодирования (Predecode Cache). L1-кэш данных
предназначен только для хранения данных и имеет объем 32 Кбайт- Несколько
сложнее обстоит дело с L1-кэшем инструкций: наряду с инструкциями, для
хранения которых предназначены 32 Кбайт памяти, в нем хранятся так
называемые
"биты преддекодирования" (predecode bits) — для них отведено 20
Кбайт памяти. Дело в том, что после загрузки инструкции в L1-кэш инструкций
выполняется ее предварительное декодирование (predecoding) — к каждому
байту инструкции добавляется пять бит (из этого и следует соотношение 32
Кбайт/20 Кбайт = 8/5), в которые записывается информация о количестве байт,
оставшихся до начала следующей инструкции. Эта информация используется
на этапе декодирования х86-инструкций в RISС8б-инструкции. После того, как
L1 -кэш инструкций полностью заполнится данными, инструкции вместе с
преддекодированными битами передаются в буфер инструкций (Instruction
Buffer).
Модуль декодирования (Multiple Instruction Decoders), Модуль
декодирования извлекает х86-инструкций (до 16 байт данных с инструкциями
за один такт) с битами преддекодирования из буфера инструкций (Instruction
Buffer), определяет границы
инструкций и преобразует их в RISC86-
инструкции. Непосредственно преобразованием занимаются четыре декодера;
два для декодирования простых (Short Decoder #1, Short Decoder #2) и два для
декодирования сложных х86-инструкций (Long Decoder, Vector Decoder).
Одновременно могут работать либо два декодера Short Decoder #1 и Short
Decoder #2, либо декодер Long Decoder, либо декодер Vector Decoder.
удобными наборами команд.                   Что касается AMD-K6-2, то речь в
данном случае идет об объединенной архитектуре на основе преобразования
х86-команд в более простые в обращении RISC-инструкции,
      Основная ее особенность состоит в том, что внешние х86-инструкции,
поступающие на        обработку в процессор, преобразуются во внутренние
RISC86-инструкции, которые и исполняются процессором. Вместо того чтобы
напрямую исполнять сложные х86-инструкции с переменной длиной от 1 до 15
байт, процессор обрабатывает поток простых RISC86-инструкций
фиксированной длины.
      В состав процессора AMD-K6-2 (рис. 4.16) входят несколько основных
модулей; L1-кэш данных (Level-One Dual Port Data Cache), Li-кэш инструкций
(Level-One Instruction Cache) с кэшем предварительного декодирования
(Predecode Cache), модуль декодирования (Multiple Instruction Decoders),
центральный планировщик (Centralized RISC86 Operation Scheduler),
вычислительные блоки (Execution Units) и модуль предсказания переходов
(Branch Logic).
      L1-кэш инструкций и данных, предварительное декодирование. L1-кэш
состоит из двух независимых блоков: L1-кэша данных (Level-One Dual Port
Data Cache) и L1-кэша инструкций (Level-One Instruction Cache) с кэшем
предварительного декодирования (Predecode Cache). L1-кэш данных
предназначен только для хранения данных и имеет объем 32 Кбайт- Несколько
сложнее обстоит дело с L1-кэшем инструкций: наряду с инструкциями, для
хранения которых предназначены 32 Кбайт памяти, в нем хранятся так
называемые "биты преддекодирования" (predecode bits) — для них отведено 20
Кбайт памяти. Дело в том, что после загрузки инструкции в L1-кэш инструкций
выполняется ее предварительное декодирование (predecoding) — к каждому
байту инструкции добавляется пять бит (из этого и следует соотношение 32
Кбайт/20 Кбайт = 8/5), в которые записывается информация о количестве байт,
оставшихся до начала следующей инструкции. Эта информация используется
на этапе декодирования х86-инструкций в RISС8б-инструкции. После того, как
L1 -кэш инструкций полностью заполнится данными, инструкции вместе с
преддекодированными битами передаются в буфер инструкций (Instruction
Buffer).
      Модуль декодирования (Multiple Instruction Decoders), Модуль
декодирования извлекает х86-инструкций (до 16 байт данных с инструкциями
за один такт) с битами преддекодирования из буфера инструкций (Instruction
Buffer), определяет границы инструкций и преобразует их в RISC86-
инструкции. Непосредственно преобразованием занимаются четыре декодера;
два для декодирования простых (Short Decoder #1, Short Decoder #2) и два для
декодирования сложных х86-инструкций (Long Decoder, Vector Decoder).
Одновременно могут работать либо два декодера Short Decoder #1 и Short
Decoder #2, либо декодер Long Decoder, либо декодер Vector Decoder.




                                    57