02:00 

Что такое кэш-память, или Мисс Хэндлер в вашем компьютере

Disprein
Позитивнее, позитивнее...
Вообразим мачеху, пекущую на кухне пирожки.
Когда мачехе нужен очередной продукт, она сначала ищет его на кухонном столе. Если продукт там обнаруживается, то выпечка пирожков продолжается без задержек. Если продукта на столе нет, то мачеха ругает Золушку и шлет ее поискать продукт в шкафу. Если Золушке повезет, то она найдет в шкафу нужное и вернется через полминуты, а если не повезет — то идти ей в магазин и стоять там в очереди, а мачехе придется бездействовать и нетерпеливо притопывать в ожидании. Конечно, Золушке нужно оставлять на столе те продукты, которые скоро снова понадобятся, но не знает бедная Золушка, что потребуется мачехе через минуту (возможно, мачеха и сама этого пока не знает). А на столе все не помещается — и кое-что приходится убирать в шкаф или даже выкидывать.
В принципе, все необходимое есть в магазине, но кухонный стол и шкаф здорово ускоряют процесс выпечки: без них приходилось бы гонять Золушку за каждым продуктом в магазин (а уж сколько бы слез при этом пролила Золушка да сколько башмаков бы истоптала — подумать страшно).

В современных компьютерах при взаимодействии процессора с памятью происходит примерно то же самое. Есть процессор (мачеха), есть оперативная память (магазин, где есть все, но он далеко), и есть кэш-память: несколько уровней маленькой, но очень быстрой памяти. Когда программе требуются данные, то процессор в первую очередь ищет эти данные в кэше первого уровня (кухонный стол). Если нужные данные там нашлись (произошло «попадание» в кэш), то процессор тут же их обрабатывает; если нет («промах» кэша) — то специальный обработчик промахов (наша Золушка) идет в кэш следующего уровня (скажем, шкаф) и ищет данные там (процессор при этом простаивает), если снова промах — то ищет в кэше следующего уровня (процессор простаивает еще в несколько раз дольше), и уж если ничего не помогает — тогда Золушка в полном отчаянии бежит в магазин (процессор застоялся!) и вытаскивает данные из большой и неповоротливой оперативной памяти.

Эффективная программа старается уместить все необходимое в кэшах, чтобы минимизировать простои процессора (и недовольство мачехи).

А обработчик (англ. handler) промахов (miss) кэша, то есть нашу с вами Золушку, так и называют: miss handler.

URL
Комментарии
2011-07-13 в 15:47 

Осень
Чувствуется лекторский опыт %)

2011-07-13 в 22:49 

Disprein
Позитивнее, позитивнее...
...рассказывать про скучные вещи, когда народ крепко спит)

URL
2011-07-13 в 23:14 

Осень
Нет: образность — чтоб заинтересовать! Ну, и тон, конечно %)

Комментирование для вас недоступно.
Для того, чтобы получить возможность комментировать, авторизуйтесь:
 
РегистрацияЗабыли пароль?

Под грифом

главная