ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6694
Скачиваний: 8
Основная память
83
Центральный
процессор
Кэш-память
Основная
' память
Шина
Рис. 2.13. Кэш-память по логике вещей должна находиться между процессором и основной
памятью. В действительности существует три возможных варианта расположения кэш-памяти
Мы можем сделать более строгие вычисления. Пусть с — время доступа к кэш-
памяти, m — время доступа к основной памяти и
h
—
коэффициент совпадения,
который показывает соотношение числа ссылок к кэш-памяти и общего числа всех
ссылок. В нашем примере h=(k~l)/k. Таким образом, мы можем вычислить сред-
нее время доступа:
среднее время доступа =с+( 1 -h)m.
Если h—И и все обращения делаются только к кэш-памяти, то время доступа
стремится к с. С другой стороны, если h—»0 и каждый раз нужно обращаться к ос-
новной памяти, то время доступа стремится к с+ш: сначала требуется время с для
проверки кэш-памяти (в данном случае безуспешной), а затем время m для обра-
щения к основной памяти. В некоторых системах обращение к основной памяти
может начинаться параллельно с исследованием кэш-памяти, чтобы в случае не-
удачного поиска цикл обращения к основной памяти уже начался. Однако эта стра-
тегия требует способности останавливать процесс обращения к основной памяти
в случае результативного обращения к кэш-памяти, что делает разработку такого
компьютера более сложной.
Основная память и кэш-память делятся на блоки фиксированного размера с уче-
том принципа локальности. Блоки внутри кэш-памяти обычно называют
строка-
ми кэш-памяти (cache lines).
Если обращение к кэш-памяти нерезультативно, из
основной памяти в кэш-память загружается вся строка, а не только необходимое
слово. Например, если строка состоит из 64 байтов, обращение к адресу 260 повле-
чет за собой загрузку в кэш-память всей строки, то есть с 256-го по 319-й байт.
Возможно, через некоторое время понадобятся другие слова из этой строки. Такой
путь обращения к памяти более эффективен, чем вызов каждого слова по отдель-
ности, потому что вызвать
к
слов 1 раз можно гораздо быстрее, чем 1 слово к раз.
Если входные сообщения кэш-памяти содержат более одного слова, это значит,
что будет меньше таких входных сообщений и, следовательно, меньше непроизво-
дительных затрат.
Разработка кэш-памяти очень важна для процессоров с высокой производи-
тельностью. Первый вопрос — размер кэш-памяти. Чем больше размер, тем лучше
работает память, но тем дороже она стоит. Второй вопрос — размер строки кэш-
памяти. Кэш-память объемом 16 Кбайт можно разделить на 1К строк по 16 байтов,
2К строк по 8 байтов и т. д. Третий вопрос — как устроена кэш-память, то есть как
она определяет, какие именно слова содержатся в ней в данный момент. Устрой-
ство кэш-памяти мы рассмотрим подробно в главе 4.
84
Глава 2. Организация компьютерных систем
Четвертый вопрос — должны ли команды и данные находиться вместе в общей
кэш-памяти. Проще разработать
смежную кэш-память,
в которой хранятся и дан-
ные, и команды. При этом вызов команд и данных автоматически уравновешива-
ется. Тем не менее в настоящее время существует тенденция к использованию
разделенной кэш-памяти,
когда команды хранятся в одной кэш-памяти, а данные —
в другой. Такая структура также называется
Гарвардской (Harvard Architecture),
поскольку идея использования отдельной памяти для команд и отдельной памяти
для данных впервые воплотилась в компьютере Маге III, который был создай Го-
вардом Айкеном в Гарварде. Современные разработчики пошли по этому пути,
поскольку сейчас широко используются процессоры с конвейерами, а при такой
организации должна быть возможность одновременного доступа и к командам, и к
данным (операндам). Разделенная кэш-память позволяет осуществлять параллель-
ный доступ, а общая — нет. К тому же, поскольку команды обычно не меняются во
время выполнения, содержание командной кэш-памяти никогда не приходится
записывать обратно в основную память.
Наконец, пятый вопрос — количество блоков кэш-памяти. В настоящее время
очень часто кэш-память первого уровня располагается прямо на микросхеме про-
цессора, кэш-память второго уровня — не на самой микросхеме, но в корпусе про-
цессора, а кэш-память третьего уровня — еще дальше от процессора.
Сборка модулей памяти и их типы
Со времен появления полупроводниковой памяти и до начала 90-х годов все мик-
росхемы памяти производились, продавались и устанавливались на плату компью-
тера по отдельности. Эти микросхемы вмещали от 1 Кбит до 1 Мбит информа-
ции и выше. В первых персональных компьютерах часто оставлялись пустые
разъемы, чтобы покупатель в случае необходимости мог вставить дополнитель-
ные микросхемы.
В настоящее время распространен другой подход. Группа микросхем (обычно
8 или 16) монтируется на одну крошечную печатную плату и продается как один
блок. Он называется SIMM (Single Inline Memory Module — модуль памяти,
имеющий выводы с одной стороны)
или
DIMM (Dual Inline Memory Module —
модуль памяти, у которого выводы расположены с двух сторон).
У первого из
них контакты расположены только на одной стороне печатной платы (выводы на
второй стороне дублируют первую), а у второго — на обеих сторонах. Схема SIMM
изображена на рис. 2.14.
Основная
*** память
Центральный
процессор
Кэш-память
Шина
Рис. 2.14. Модуль SIMM в 32 Мбайт. Модулем управляют две микросхемы
Вспомогательная память 85
Обычный модуль SIMM содержит 8 микросхем по 32 Мбит (4 Мбайт) каждая.
Таким образом, весь модуль вмещает 32 Мбайт информации. Во многие компью-
теры встраивается 4 модуля, следовательно, при использовании модулей SIMM
по 32 Мбайт общий объем памяти составляет 128 Мбайт. При необходимости дан-
ные модули SIMM можно заменить модулями с большей вместимостью (64 Мбайт
и выше).
У первых модулей SIMM было 30 контактов, и они могли передавать 8 битов
информации за один раз. Остальные контакты использовались для адресации и
контроля. Более поздние модули содержали уже 72 контакта и передавали 32 бита
информации за один раз. Для компьютера Pentium, который требовал одновремен-
ной передачи 64 битов, эти модули соединялись по два, и каждый из них доставлял
половину требуемых битов. В настоящее время стандартным способом сборки яв-
ляется модуль DIMM. У него на каждой стороне платы находится по 84 позоло-
ченных контакта, то есть всего 168. DIMM способен передавать 64 бита данных за
раз. Вместимость DIMM обычно составляет 64 Мбайт и выше. В электронных за-
писных книжках обычно используется модуль DIMM меньшего размера, который
называется
SO-DIMM (Small Outline DIMM).
Модули SIMM и DIMM могут со-
держать бит четности или код исправления ошибок, однако, поскольку вероятность
возникновения ошибок в модуле 1 ошибка в 10 лет, в большинстве обычных ком-
пьютеров методы обнаружения и исправления ошибок не применяются.
Вспомогательная память
Не важно, каков объем основной памяти: он все равно всегда будет слишком мал.
Мы всегда хотим хранить в памяти компьютера больше информации, чем она мо-
жет вместить С развитием технологий людям приходят в голову такие вещи, ко-
торые раньше считались совершенно фантастическими. Например, можно вооб-
разить, что Библиотека Конгресса решила представить в цифровой форме и продать
полное содержание всех хранящихся в ней изданий в одной статье («Все челове-
ческие знания всего за $49»). В среднем каждая книга содержит 1 Мбайт текста
и 1 Мбайт сжатых рисунков. Таким образом, для размещения 50 млн книг понадо-
бится 10'
4
байт или 100 Тбайт памяти. Для хранения всех существующих художе-
ственных фильмов (50 000) необходимо примерно столько же места. Такое коли-
чество информации в настоящее время невозможно разместить в основной памяти,
и вряд ли можно будет это сделать в будущем (по крайней мере, в ближайшие не-
сколько десятилетий).
Иерархическая структура памяти
Иерархическая структура памяти является традиционным решением проблемы
хранения большого количества данных Она изображена на рис. 2.15. На самом
верху находятся регистры процессора. Доступ к регистрам осуществляется быст-
рее всего. Дальше идет кэш-память, объем которой сейчас составляет от 32 Кбайт
до нескольких мегабайт. Затем следует основная память, которая в настоящее
86 Глава 2. Организация компьютерных систем
время может вмещать от 16 Мбайт до десятков гигабайтов. Далее идут магнитные
диски и, наконец, накопители на магнитной ленте и оптические диски, которые
используются для хранения архивной информации.
Кэш-память
Основная память
Магнитный диск
Магнитная память
Оптический диск
Рис. 2.15. Пятиуровневая организация памяти
По мере продвижения по структуре сверху вниз возрастают три параметра. Во-
первых, увеличивается время доступа. Доступ к регистрам занимает несколько
наносекунд, доступ к кэш-памяти — немного больше, доступ к основной памяти —
несколько десятков наносекунд. Дальше идет большой разрыв: доступ к дискам
занимает по крайней мере 10 мке, а время доступа к магнитным лентам и оптичес-
ким дискам вообще может измеряться в секундах (поскольку эти накопители ин-
формации еще нужно взять и поместить в соответствующее устройство).
Во-вторых, увеличивается объем памяти. Регистры могут содержать в лучшем
случае 128 байтов, кэш-память — несколько мегабайтов, основная память — десятки
тысяч мегабайтов, магнитные диски — от нескольких гигабайтов до нескольких
десятков гигабайтов. Магнитные ленты и оптические диски хранятся автономно
от компьютера, поэтому их объем ограничивается только финансовыми возмож-
ностями владельца.
В-третьих, увеличивается количество битов, которое вы получаете за 1 доллар.
Стоимость объема основной памяти измеряется в долларах за мегабайт
1
, объем
магнитных дисков — в пенни за мегабайт, а объем магнитной ленты — в долларах
за гигабайт или еще дешевле.
Регистры, кэш-память и основную память мы уже рассмотрели. В следующих
разделах мы расскажем о магнитных дисках, а затем приступим к изучению оп-
тических дисков. Накопители на магнитных лентах мы рассматривать не будем,
поскольку они очень редко используются; к тому же о них практически нечего
сказать.
1
Заметим, что стоимость памяти постоянно уменьшается, в то время как ее объем — увеличивается. За-
кон Мура применим и здесь. Сегодня 1 Мбайт оперативной памяти стоит около 10 центов.
—Примеч.
научи, ред.
Вспомогательная память
87
Магнитные диски
Магнитный диск состоит из одного или нескольких алюминиевых дисков
1
с маг-
нитным слоем. Изначально они были 50 см в диаметре, но сейчас их диаметр со-
ставляет от 3 до 12 см, а у портативных компьютеров — меньше 3 см, причем этот
параметр продолжает уменьшаться. Головка диска, содержащая индукционную
катушку, двигается над поверхностью диска, опираясь на воздушную подушку.
Отметим, что у дискет головка касается поверхности. Когда через головку проходит
положительный или отрицательный ток, он намагничивает поверхность под голов-
кой. При этом магнитные частицы намагничиваются направо или налево в зависи-
мости от полярности тока. Когда головка проходит над намагниченной областью,
в ней (в головке) возникает положительный или отрицательный ток, что дает воз-
можность считывать записанные ранее биты. Поскольку диск вращается под голов-
кой, поток битов может записываться, а потом считываться. Конфигурация дорожки
диска показана на рис. 2.16.
Межсекторный интервал
Направление
движения
привода
/ Ширина 1 бита
/ от 0 1 до 0 2 микрон
Головка
считывания/записи
Привод
Ширина
дорожки
5-10 микрон
Рис.
2.
16. Кусок дорожки диска (два сектора)
Дорожкой
называется круговая последовательность битов, записанных на диск
за его полный оборот. Каждая дорожка делится на
секторы
фиксированной дли-
ны. Каждый сектор обычно содержит 512 байтов данных. Перед данными распола-
гается
преамбула (preamble),
которая позволяет головке синхронизироваться пе-
ред чтением или записью. После данных идет код с исправлением ошибок (код
Хэмминга или чаще
код Рида—Соломона,
который может исправлять много оши-
бок, а не только одиночные). Между соседними секторами находится
межсектор-
ный интервал.
Многие производители указывают размер неформатированного
диска (как будто каждая дорожка содержит только данные), но более честно было
бы указывать вместимость форматированного диска, когда не учитываются пре-
1
В настоящее время фирма IBM делает их из стекла. —
Примеч научи, ред.