Интернет магазин китайских планшетных компьютеров



Компьютеры - Иерархия памяти - Иерархия памяти в современных ПК

23 января 2011


Оглавление:
1. Иерархия памяти
2. Иерархия памяти в современных ПК



В большинстве современных ПК рассматривается следующая иерархия памяти:

  1. Регистры процессора, организованные в регистровый файл — наиболее быстрый доступ, но размером лишь в несколько сотен или, редко, тысяч байт.
  2. Кэш процессора 1го уровня — время доступа порядка нескольких тактов, размером в десятки килобайт
  3. Кэш процессора 2го уровня — большее время доступа, около полумегабайта или более
  4. Кэш процессора 3го уровня — время доступа около сотни тактов, размером в несколько мегабайт
  5. ОЗУ системы — время доступа от сотен до, возможно, тысячи тактов, но огромные размеры в несколько гигабайт, вплоть до десятков. Время доступа к ОЗУ может варьироваться для разных его частей в случае комплексов класса NUMA
  6. Дисковое хранилище — многие миллионы тактов, если данные не были закэшированны или забуферизованны заранее, размеры до нескольких терабайт
  7. Третичная память — задержки до нескольких секунд или минут, но практически неограниченные объемы.

Большинство программистов обычно предполагает, что память делится на два уровня, оперативную память и дисковые накопители, хотя в ассемблерных языках и ассемблерно-совместимых существует возможность непосредственной работы с регистрами. Получение преимуществ от иерархии памяти требует совместных действий от программиста, аппаратуры и компиляторов:

  • Программисты отвечают за организацию передачи данных между дисками и памятью, используя для этого файловый ввод-вывод; Современные ОС также реализуют это как подкачку страниц.
  • Аппаратное обеспечение отвечает за организацию передачи данных между памятью и кэшами.
  • Оптимизирующие компиляторы отвечают за генерацию кода, при исполнении которого аппаратура эффективно использует регистры и кэш процессора.

Многие программисты не учитывают многоуровневость памяти при программировании. Этот подход работает пока приложение не столкнется с падением производительности из-за нехватки производительности подсистемы памяти. При исправлении кода необходимо учесть наличие и особенность работы верхних уровней иерархии памяти для достижения наивысшей производительности.



Просмотров: 4930


<<< Кардридер