|
|
Компьютеры - Иерархия памяти - Иерархия памяти в современных ПК23 января 2011
Оглавление: 1. Иерархия памяти 2. Иерархия памяти в современных ПК
В большинстве современных ПК рассматривается следующая иерархия памяти:
- Регистры процессора, организованные в регистровый файл наиболее быстрый доступ, но размером лишь в несколько сотен или, редко, тысяч байт.
- Кэш процессора 1го уровня время доступа порядка нескольких тактов, размером в десятки килобайт
- Кэш процессора 2го уровня большее время доступа, около полумегабайта или более
- Кэш процессора 3го уровня время доступа около сотни тактов, размером в несколько мегабайт
- ОЗУ системы время доступа от сотен до, возможно, тысячи тактов, но огромные размеры в несколько гигабайт, вплоть до десятков. Время доступа к ОЗУ может варьироваться для разных его частей в случае комплексов класса NUMA
- Дисковое хранилище многие миллионы тактов, если данные не были закэшированны или забуферизованны заранее, размеры до нескольких терабайт
- Третичная память задержки до нескольких секунд или минут, но практически неограниченные объемы.
Большинство программистов обычно предполагает, что память делится на два уровня, оперативную память и дисковые накопители, хотя в ассемблерных языках и ассемблерно-совместимых существует возможность непосредственной работы с регистрами. Получение преимуществ от иерархии памяти требует совместных действий от программиста, аппаратуры и компиляторов:
- Программисты отвечают за организацию передачи данных между дисками и памятью, используя для этого файловый ввод-вывод; Современные ОС также реализуют это как подкачку страниц.
- Аппаратное обеспечение отвечает за организацию передачи данных между памятью и кэшами.
- Оптимизирующие компиляторы отвечают за генерацию кода, при исполнении которого аппаратура эффективно использует регистры и кэш процессора.
Многие программисты не учитывают многоуровневость памяти при программировании. Этот подход работает пока приложение не столкнется с падением производительности из-за нехватки производительности подсистемы памяти. При исправлении кода необходимо учесть наличие и особенность работы верхних уровней иерархии памяти для достижения наивысшей производительности.
Просмотров: 4930
|