NETGOLD
Кэш память первого уровня
Во всех процессорах, начиная с 486-го, имеется встроенный (первого уровня) кэш$ контроллер с кэш$памятью объемом 8 Кбайт в процессорах 486DX, а также 32, 64 Кбайт и более в современных моделях. Кэш — это быстродействующая память, предназначенная для временного хранения программного кода и данных. Обращения к встроенной кэш-памяти происходят без состояний ожидания, поскольку ее быстродействие соответствует возможностям процессора, т.е. кэш-память первого уровня (или встроенный кэш) работает на частоте процессора. Чтобы понять значение кэш-памяти, необходимо сравнить относительные скорости процессоров и ОЗУ. Основная проблема заключается в том, что быстродействие процессора выражается обычно в МГц (в миллионах тактов в секунду), в то время как скорость памяти выражается в наносекундах (т.е. в миллиардных долях секунды).
Временные и частотные параметры компонентов приводятся в главе 6, “Оперативная память”. Как следует из материала этой главы, тактовой частоте процессора 233 МГц соответствует цикл длительностью 4,3 нс. Это означает, что для процессора, работающего на частоте 200 МГц, потребуется 4 нс памяти. Обратите внимание, что с процессором 233 МГц обычно используется системная плата с тактовой частотой 66 МГц, что соответствует скорости 15 нс на цикл. Основная память, скорость которой равна 60 нс (общий параметр практически для всех систем класса Pentium), приравнивается к тактовой частоте, примерно равной 16 МГц. Таким образом, в типичную систему Pentium 233 входит процессор, работающий на частоте 233 МГц (4,3 нс на цикл), системная плата, тактовая частота которой 66 МГц (15 нс на цикл), и основная память, работающая на частоте 16 МГц (60 нс на цикл).
Использование кэш-памяти сглаживает традиционный недостаток компьютера, состоящий в том, что оперативная память работает более медленно, чем центральный процессор (так называемый эффект “бутылочного горлышка”). Благодаря кэш-памяти процессору не приходится ждать, пока очередная порция программного кода или данных поступит из относительно медленной основной памяти, что приводит к ощутимому повышению производительности.
В современных процессорах встроенный кэш играет еще более важную роль, поскольку часто является единственным типом памяти во всей системе, который может работать синхронно с процессором. В большинстве современных процессоров используется множитель тактовой частоты, следовательно, они работают на частоте, в несколько раз превышающей тактовую частоту системной платы, к которой они подключены. Например, частота (2,8 ГГц) процессора Pentium 4 в 5,25 раза больше частоты шины системной платы, составляющей 533 МГц. Основная память работает на половинной частоте шины (266 МГц), поскольку в Pentium 4 применяется шина памяти с учетверенной подкачкой. Поскольку основная память подключена к системной плате, ее максимальная тактовая частота ограничена значением 266 МГц. На частоте 2,8 ГГц работает только кэш-память первого и второго уровней, встроенная в ядро процессора. В данном случае процессор Pentium 4, работающий на частоте 2,8 ГГц, имеет 20 Кбайт кэш-памяти первого уровня (8 Кбайт — кэш данных, 12 Кбайт — кэш трассировки выполнения) и 512 Кбайт кэш-памяти второго уровня. Кэш-память обоих уровней работает на полной частоте ядра процессора.
Если данные, необходимые процессору, находятся уже во внутренней кэш-памяти, то задержек не возникает. В противном случае центральный процессор должен получать данные из кэш-памяти второго уровня или (в менее сложных системах) из системной шины, т.е. непосредственно из основной памяти.