Ієрархія пам'ятіІєра́рхія па́м'яті — термін, який використовується в обчислювальній техніці при проектуванні і низькорівневому програмуванні ЕОМ (комп'ютерів). Означає, що різні види пам'яті утворюють ієрархію, на різних рівнях якої розташовані пам'яті з різними часом доступу, складністю, вартістю та обсягом. Можливість побудови ієрархії пам'яті викликана тим, що більшість алгоритмів звертаються в кожний проміжок часу до невеликого набору даних, який може бути поміщений у швидшу, але дорожчу і тому невелику, пам'ять (див. locality of reference[en]). Використання швидшої пам'яті збільшує продуктивність обчислювального комплексу. Під пам'яттю в даному разі мається на увазі пристрій (пристрої) зберігання даних в обчислювальній техніці або комп'ютерна пам'ять. При проектуванні високопродуктивних комп'ютерів і систем необхідно розв'язати багато компромісів, таких як розміри і технології для кожного рівня ієрархії. Можна розглядати набір різних типів пам'яті (m1,m2,…,mn), які знаходяться в ієрархії, тобто кожен mi рівень є підлеглим для mi+1 рівня ієрархії. Для зменшення часу очікування на вищих рівнях, нижчі рівні можуть готувати дані укрупненими частинами з буферизацією і, після наповнення буфера, сигналізувати верхньому рівню про можливість отримання даних. Часто виділяють 4 основних (укрупнених) рівня ієрархії:
Ієрархія пам'яті в сучасних ПКУ більшості сучасних ПК розглядається наступна ієрархія пам'яті:
Більшість програмістів звичайно припускає, що пам'ять ділиться на два рівні, оперативну пам'ять і дискові накопичувачі, хоча в ассемблерних мовах і ассемблерно-сумісних (типу C) існує можливість безпосередньої роботи з регістрами. Отримання переваг від ієрархії пам'яті вимагає спільних дій від програміста, апаратури і компіляторів (а також базова підтримка в операційній системі):
Багато програмістів не враховують багаторівневість пам'яті при програмуванні. Цей підхід працює поки застосунок не зіткнеться з падінням продуктивності через насичення підсистеми пам'яті (англ. memory wall). При виправленні коду (рефакторинг) необхідно врахувати наявність і особливість роботи верхніх рівнів ієрархії пам'яті для досягнення найвищої продуктивності. Джерела
|