Организация микропроцессорных систем. Учебное пособие. Могнонов П.Б. - 152 стр.

UptoLike

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

I – состояние (недействительная). Строка недоступна в кэш-памяти. Чтение I-строки
приводит к считыванию фрагмента в кэш из основной памяти. Запись в I-строку генерирует
цикл записи через внешнюю шину в основную память.
Кэш-согласование для кэш-памяти команд первого уровня поддерживается с
помощью подмножества MESI-протокола. Строки в кэш-памяти команд могут находиться
только в двух состояниях: S- и I- состояниях. Это связано с тем, что запись в кэш-память
команд запрещена во избежание некорректного изменения кода.
Интерфейс шины генерирует два типа обращения к основной памяти: чтение из
памяти в регистр и запись из регистра в память. При чтении из памяти задаются адрес
памяти, размер блока считываемых данных и регистр - назначение. Команда чтения
кодируется одной микрокомандой. При записи задаются адрес памяти, размер блока
записываемых данных и сами данные. Поэтому команда записи кодируется двумя
микрокомандами: первая генерирует адрес, вторая готовит данные. Микрокоманды чтения и
записи планируются независимо и могут выполняться параллельно. Они могут
переупорядочиваться в буфере записи.
В процессоре Р6 реализована архитектура подсистемы памяти, позволяющая
командам чтения опережать команды записи и другие команды чтения. Записи из буферов
производятся в память всегда в порядке, предписанном программным кодом. Процессор
поддерживает логическое соответствие порядка физических операций чтения и записи
памяти их порядку в программном коде. При этом операции чтения могут иметь любой
порядок, они могут пропускать буферизованные записи, а записи в память идут всегда в
порядке, предписанном программой. Буфер упорядочивания памяти служит в качестве
диспетчера и буфера переупорядочивания. В нем хранятся отложенные команды чтения и
записи, и он осуществляет их повторное диспетчирование, когда блокирующее условие
(зависимость по данным, недоступность ресурсов) исчезает.
Динамическое выполнение команд в процессоре Р6 резко повышает частоту запросов
процессорного ядра к шине за данными и командами, поскольку ядро одновременно
обрабатывает несколько команд. Для обхода узкого места - внешней шины - процессорное
ядро использует архитектуру независимой двойной шины (рис.5.50.). Одна из этих шин
используется только для связи с вторичной кэш-памятью, расположенной в том же корпусе
микросхемы. Эта шина является локальной и в геометрическом смысле - проводники имеют
длину порядка единиц сантиметров, что позволяет использовать ее на частоте ядра
процессора. Значительный объем вторичного кэша позволяет удовлетворять большинство
запросов к памяти, при этом коэффициент загрузки локальной шины достигает 90 %. Вторая
шина процессорного кристалла выходит на внешние выводы микросхемы и является
системной шиной процессора Р6. Эта шина работает на внешней частоте независимо от
внутренней шины.
По статистическим данным загрузка процессором внешней шины для обычных
применений составляет 10 % от ее пропускной способности (528 Кбайт/сек. при 66 МГц и
800 Кбайт/сек. при 100 МГц), а для серверных применений может достигать 60 % при
четырехпроцессорной конфигурации.
Таким образом, снижение нагрузки на внешнюю шину, за счет введения локальной
шины, позволяет эффективно использовать процессор Р6 в многопроцессорных системах.
Как видно из организации процессора Р6, его основное вычислительное ядро
выполнено по технологии RISCпроцессоров с применением архитектурных методов,
используемых при их построении. Следующим фактором повышения производительности
процессора является применение принципа многоуровневой конвейеризации, позволяющего
увеличить пропускную способность конвейера. Операции, выполняемые на каждой ступени
процессора Pentium, все еще остаются достаточно сложными, и требуется их дальнейшее
разбиение. Так как пропускная способность конвейера определяется самой медленной
стадии, то при разработке конструкции конвейера необходимо обеспечить равенство
скоростей обработки на всех стадиях. Для системы команд х86, имеющие в своем составе
       I – состояние (недействительная). Строка недоступна в кэш-памяти. Чтение I-строки
приводит к считыванию фрагмента в кэш из основной памяти. Запись в I-строку генерирует
цикл записи через внешнюю шину в основную память.
       Кэш-согласование для кэш-памяти команд первого уровня поддерживается с
помощью подмножества MESI-протокола. Строки в кэш-памяти команд могут находиться
только в двух состояниях: S- и I- состояниях. Это связано с тем, что запись в кэш-память
команд запрещена во избежание некорректного изменения кода.
       Интерфейс шины генерирует два типа обращения к основной памяти: чтение из
памяти в регистр и запись из регистра в память. При чтении из памяти задаются адрес
памяти, размер блока считываемых данных и регистр - назначение. Команда чтения
кодируется одной микрокомандой. При записи задаются адрес памяти, размер блока
записываемых данных и сами данные. Поэтому команда записи кодируется двумя
микрокомандами: первая генерирует адрес, вторая готовит данные. Микрокоманды чтения и
записи планируются независимо и могут выполняться параллельно. Они могут
переупорядочиваться в буфере записи.
       В процессоре Р6 реализована архитектура подсистемы памяти, позволяющая
командам чтения опережать команды записи и другие команды чтения. Записи из буферов
производятся в память всегда в порядке, предписанном программным кодом. Процессор
поддерживает логическое соответствие порядка физических операций чтения и записи
памяти их порядку в программном коде. При этом операции чтения могут иметь любой
порядок, они могут пропускать буферизованные записи, а записи в память идут всегда в
порядке, предписанном программой. Буфер упорядочивания памяти служит в качестве
диспетчера и буфера переупорядочивания. В нем хранятся отложенные команды чтения и
записи, и он осуществляет их повторное диспетчирование, когда блокирующее условие
(зависимость по данным, недоступность ресурсов) исчезает.
       Динамическое выполнение команд в процессоре Р6 резко повышает частоту запросов
процессорного ядра к шине за данными и командами, поскольку ядро одновременно
обрабатывает несколько команд. Для обхода узкого места - внешней шины - процессорное
ядро использует архитектуру независимой двойной шины (рис.5.50.). Одна из этих шин
используется только для связи с вторичной кэш-памятью, расположенной в том же корпусе
микросхемы. Эта шина является локальной и в геометрическом смысле - проводники имеют
длину порядка единиц сантиметров, что позволяет использовать ее на частоте ядра
процессора. Значительный объем вторичного кэша позволяет удовлетворять большинство
запросов к памяти, при этом коэффициент загрузки локальной шины достигает 90 %. Вторая
шина процессорного кристалла выходит на внешние выводы микросхемы и является
системной шиной процессора Р6. Эта шина работает на внешней частоте независимо от
внутренней шины.
       По статистическим данным загрузка процессором внешней шины для обычных
применений составляет 10 % от ее пропускной способности (528 Кбайт/сек. при 66 МГц и
800 Кбайт/сек. при 100 МГц), а для серверных применений может достигать 60 % при
четырехпроцессорной конфигурации.
       Таким образом, снижение нагрузки на внешнюю шину, за счет введения локальной
шины, позволяет эффективно использовать процессор Р6 в многопроцессорных системах.
       Как видно из организации процессора Р6, его основное вычислительное ядро
выполнено по технологии RISC−процессоров с применением архитектурных методов,
используемых при их построении. Следующим фактором повышения производительности
процессора является применение принципа многоуровневой конвейеризации, позволяющего
увеличить пропускную способность конвейера. Операции, выполняемые на каждой ступени
процессора Pentium, все еще остаются достаточно сложными, и требуется их дальнейшее
разбиение. Так как пропускная способность конвейера определяется самой медленной
стадии, то при разработке конструкции конвейера необходимо обеспечить равенство
скоростей обработки на всех стадиях. Для системы команд х86, имеющие в своем составе