Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Доп_материалы_Вычислительные_системы.doc
Скачиваний:
21
Добавлен:
23.08.2019
Размер:
3.82 Mб
Скачать

Ассоциативность кэш-памяти

Поскольку объём кэш-памяти существенно меньше объёма основной памяти компьютера, возникает проблема оптимального взаимодействия кэша и системной памяти. В связи с этим различают три типа кэша, различающиеся принципами организации: кэш с прямым отображением, полностью ассоциативный кэш и множественно-ассоциативный кэш. Кэш с прямым отображением устроен так, что каждая строка ячеек основной памяти может отображаться только в одной, фиксированной для неё строке кэша (под строкой понимается минимальная порция информации, которая может передаваться в кэш). Полностью ассоциативный кэш, наоборот, позволяет каждой строке основной памяти отображаться в произвольном месте кэша. Множественно-ассоциативный кэш является сочетанием первых двух типов. Кэш этого типа разделён на фиксированное количество областей, именуемое степенью ассоциативности, и каждая строка RAM может отображаться в произвольном месте только одной из областей кэша. Кэш с прямым отображением обладает минимальным временем поиска, но и минимальной вероятностью присутствия необходимой информации в нём. Полностью ассоциативный кэш, наоборот, обеспечивает максимальную вероятность успеха запросов CPU на требуемую информацию, но при максимальном времени поиска. Множественно-ассоциативный кэш позволяет добиться оптимальной производительности. Важным параметром для множественно-ассоциативного кэша является правильный выбор степени ассоциативности или, что то же самое, количества каналов у кэша второго уровня. У процессоров Intel Pentium III и Pentium 4 имелось 8 каналов кэша L2, у AMD K7 Athlon- 2 канала, у AMD K75 Athlon с процессорным ядром Thunderbird- 16 каналов.

Запись информации из процессора в основную память через кэш

Кэш-память повышает быстродействие микропроцессора не только при операциях чтения, но и при записи информации в основную память. Существуют два способа записи информации в кэш- память: сквозная запись (write through, store through), при которой информация, пересылаемая из CPU в память, записывается сразу в два места- в кэш и в память более низкого уровня, а также запись с обратным копированием (write back, copy back, store in), когда информация записывается только в кэш-память. Во втором случае запись информации в память происходит быстрее, поскольку CPU обращается только к кэш-памяти, работающей на одной с ним частоте. Дальнейшее копирование записанной информации из блока кэша в основную память откладывается на некоторое время, чтобы не задерживать работу процессора. Копирование информации из блока кэша дальше в оперативную память происходит только, если для записи в кэш новых значений не оказывается свободной области и возникает необходимость заместить хранящийся блок другой информацией. Для сокращения частоты копирования блоков при замещении, обычно с каждым блоком кэш-памяти связывается так называемый тэг модификации (dirty bit). Бит модификации показывает, была ли модифицирована информация блока кэш-памяти, то есть отличается ли записанная в кэш информация от её копии, хранимой в основной памяти- внёс ли процессор изменения в порцию информации, считанную ранее из основной памяти и теперь записываемую обратно. Если блок не был модифицирован, то обратное копирование отменяется, поскольку более низкий уровень памяти содержит ту же информацию, что и кэш- память.

Многоядерные процессоры

Наряду с выпуском процессоров с традиционной одноядерной архитектурой, компании Intel и AMD наладили производство двухъядерных, трёхъядерных и четырёхъядерных микропроцессоров семейства х86. Своим появлением многоядерные процессоры обязаны тому факту, что дальнейшее наращивание производительности только за счет тактовых частот стало затруднено. Выход из ситуации был найден в совершенствовании архитектуры: упаковке нескольких процессорных ядер в один кристалл, то есть в реализации на одной микросхеме нескольких процессоров, что теоретически может дать почти кратное увеличение производительности в некоторых (многопоточных) задачах.

Ввиду того, что технология виртуальной многопоточности Hyper-Threading присутствует в процессорах семейства х86 уже продолжительное время (с февраля 2004 года), разработчики программного обеспечения сегодня предлагают ряд программ, способных получить выигрыш от многоядерной архитектуры микропроцессора. Так, среди приложений, скорость работы которых на многоядерных процессорах растёт, следует отметить утилиты для кодирования видео и аудио, системы 3D-моделирования, программы для редактирования фото и видео, а также профессиональные графические приложения САПР.  Между тем, сохраняется большое количество программ, которые многопоточность не используют или используют её крайне ограниченно. Пример этих программ – офисные приложения, Web-браузеры, почтовые клиенты, медиа-проигрыватели, а также игры. При работе с такими приложениями многоядерная архитектура процессора способна оказать положительное влияние лишь в случае запуска на компьютере одновременно нескольких программ, при этом два (три, четыре) рабочих ядра в одном физическом процессоре выполнят двойную (тройную, учетверённую) работу за единицу времени, повышая производительность компьютера. По мере распространения многоядерных процессоров растёт количество специализированного программного обеспечения, широко использующего многопоточность, при которой единый вычислительный процесс распараллеливается и несколько процессорных ядер одновременно совместно решают одну задачу.

  

Оба ядра процессора объединяются интерфейсом SRI (System Request Interface), обрабатывающим данные и команды для двух ядер и соединённого с интерфейсом памяти и шиной Hyper Transport.