История компьютера — кэш-память, часть 1 из 2
Мы рассмотрели раннюю цифровую компьютерную память, см. «История компьютера — память ядра» и упомянули, что существующим стандартным ОЗУ (оперативное запоминающее устройство) является чип-память. Это соответствует общепринятому применению закона Мура (Гордон Мур был одним из основателей Intel). В нем говорится, что плотность компонентов на интегральных схемах, которую можно перефразировать как производительность на единицу стоимости, удваивается каждые 18 месяцев. Ранняя память ядра имела время цикла в микросекундах, сегодня мы говорим о наносекундах.
Вы, возможно, знакомы с термином кеш применительно к ПК. Это одна из характеристик производительности, упомянутых при обсуждении новейшего процессора или жесткого диска. Вы можете иметь кэш-память L1 или L2 на процессоре, а также дисковый кэш разных размеров. Некоторые программы также имеют кэш, также известный как буфер, например, при записи данных в устройство записи компакт-дисков. Ранние программы записи компакт-дисков имели «переполнение». Конечным результатом этого стала хорошая поставка подставок!
Системы мэйнфреймов использовали кэш уже много лет. Эта концепция стала популярной в 1970-х годах как способ ускорить время доступа к памяти. Это было время, когда память ядра постепенно сокращалась и заменялась интегральными микросхемами или чипами. Хотя чипы были намного более эффективными с точки зрения физического пространства, у них были другие проблемы надежности и выделения тепла. Чипы определенного дизайна были быстрее, горячее и дороже, чем чипы другого дизайна, которые были дешевле, но медленнее. Скорость всегда была одним из важнейших факторов в продажах компьютеров, и инженеры-разработчики всегда искали способы повышения производительности.
Концепция кэш-памяти основана на том факте, что компьютер по своей сути является последовательной обработкой. машина. Конечно, одно из больших преимуществ компьютерной программы состоит в том, что она может «разветвляться» или «выпрыгивать» из последовательности — тема другой статьи в этой серии. Тем не менее, все еще бывает достаточно случаев, когда одна инструкция следует за другой, чтобы сделать буфер или кэш полезным дополнением к компьютеру.
Основная идея кеша — предсказать, какие данные требуются из памяти для обработки в ЦП. Рассмотрим программу, которая состоит из последовательных инструкций, каждая из которых хранится в определенном месте в памяти, скажем, от адреса 100 и выше. Инструкция в ячейке 100 считывается из памяти и выполняется ЦП, затем следующая инструкция считывается из ячейки 101 и выполняется, затем 102, 103 и т. Д.
Если рассматриваемая память является памятью ядра, может потребоваться 1 микросекунда, чтобы прочитать инструкцию. Если процессор выполняет, скажем, 100 наносекунд, чтобы выполнить инструкцию, то он должен ждать 900 наносекунд для следующей инструкции (1 микросекунда = 1000 наносекунд). Эффективная скорость повторения ЦП составляет 1 микросекунду. (Указанные значения времени и скорости являются типичными, но они не относятся к какому-либо конкретному оборудованию, а лишь иллюстрируют соответствующие принципы).