Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Архитектура ЭВМ и систем. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
2 Мб
Скачать
свойственна симметричная структура, в дальнейшем наборы шин бу­дем называть «левым» (Л) и «правым» (П). В целом организация мат­рицы ЗЭ остается традиционной.
Доступ к ячейкам возможен как через левую, так и через правую группу шин, причем если Л- и П-адреса различны, никаких конфлик­тов не возникает. Проблемы потенциально возможны
, когда Л- и П-устройства одновременно обращаются по одному и тому же адресу и хотя бы одно из этих устройств пытается выполнить операцию запи­си. В этом случае, если один из портов читает информацию, а другой производит запись в ту же ячейку, вероятно считывание недостовер­ной информации. При попытке единовременного
ввода в ячейку с двух направлений в нее может быть занесена неопределенная комбинация из записываемых слов. Несмотря на то что вероятность подобных си­туаций по оценкам не превышает 0,1%, такой вариант необходимо учитывать, для чего в двухпортовой памяти имеется схема арбитража с использованием сигналов «Занято».
Память типа FIFO. Во многих случаях ОЗУ применяется для
буферизации потока данных, когда данные считываются из памяти в той же последовательности, в которой они туда заносились, но посту­пление и считывание происходят с различной скоростью. Часто для этой цели применяют обычное ОЗУ, однако здесь одновременная за­пись и считывание информации невозможны. Более эффективным
ви­дом ОЗУ, где оба действия могут вестись одновременно, служит па­мять типа FIFO. Микросхема представляет собой двухпортовое ОЗУ, где один порт предназначен для занесения информации, а второй – для считывания. Для FIFO-памяти характерны все технологические прие­мы, свойственные двухпортовой памяти, в частности способы арбит­ража при одномоментном обращении к одной и той
же ячейке. В то же
время есть и существенные отличия.
Первое состоит в том, что у микросхемы нет входов для указания адреса ячейки, занесение и считывание данных производится в поряд­ке их поступления через одну входную точку и одну выходную.
Второе отличие связано с необходимостью слежения за состояни­ем очереди.
Для этого в микросхеме имеются регистры-указатели ад­ресов начала и конца очереди, а также специальные флаги, которые указывают на две ситуации: отсутствие данных (в этом случае блоки­руется считывание из микросхемы) и полное заполнение памяти (бло­кируется запись).
Стековая память. Стековая память обеспечивает такой режим
работы, когда информация записывается и считывается по принципу «последним записан – первым считан» (LIFO – Last In First Out). Па­мять с подобной организацией широко применяется для запоминания
91
и восстановления содержимого регистров процессора (контекста) при обработке подпрограмм и прерываний.
Наиболее распространенным в настоящее время является внеш­ний или аппаратно-программный стек, в котором для хранения ин­формации отводится область ОП. Обычно для этих целей отводится участок памяти с наибольшими адресами, а стек расширяется в сторо­ну уменьшения адресов. Поскольку
программа обычно загружается, начиная с меньших адресов, такой прием во многих случаях позволяет избежать перекрытия областей программы и стека. Адресация стека обеспечивается специальным регистром – указателем стека (SP – stack pointer), в который предварительно помещается наибольший адрес области основной памяти, отведенной под стек.
При занесении в стек очередного слова сначала производится
уменьшение на единицу содержимого
указателя стека (УС), которое затем используется как адрес ячейки, куда и производится запись, т.е. указатель стека хранит адрес той ячейки, к которой было произведено последнее обращение.
При считывании слова из стека в качестве адреса этого слова бе­рется текущее содержимое указателя стека, а после того как слово из­влечено,
содержимое УС увеличивается на единицу.
Ассоциативная память. В рассмотренных ранее видах запоми-
нающих устройств доступ к информации требовал указания адреса ячейки. Зачастую значительно удобнее искать информацию не по ад­ресу, а опираясь на какой-нибудь характерный признак, содержащийся в самой информации. Такой принцип лежит в основе ЗУ, известного как ассоциативное запоминающее устройство (АЗУ). В литературе встречаются и иные
названия подобного ЗУ: память, адресуемая по содержанию (content addressable memory); память, адресуемая по дан­ным (data addressable memory); память с параллельным поиском (parallel search memory); каталоговая память (catalog memory); инфор­мационное ЗУ (information storage); тегированная память (tag memory). Ассоциативное ЗУ – это устройство, способное хранить информацию, сравнивать ее с некоторым заданным образцом и указывать на их со­ответствие или несоответствие друг другу. Признак, по которому про изводится поиск информации, будем называть ассоциативным призна­ком, а кодовую комбинацию, выступающую в роли образца для поис­ка, – признаком поиска. Ассоциативный признак может быть частью искомой информации или дополнительно придаваться ей. В последнем случае его принято называть тегом или ярлыком.
АЗУ включает в себя:
запоминающий массив для хранения N m-разрядных слов, в
каждом из которых несколько младших разрядов занимает служебная информация;
92
-
− регистр ассоциативного признака, куда помещается код иско-
мой информации (признак поиска). Разрядность регистра k обычно меньше длины слова т;
схемы совпадения, используемые для параллельного сравне-
ния каждого бита всех хранимых слов с соответствующим битом при­знака поиска и выработки сигналов совпадения;
регистр совпадений, где каждой ячейке запоминающего мас-
сива соответствует один разряд, в который заносится единица, если все разряды соответствующей ячейки совпали с одноименными разрядами признака поиска;
регистр маски, позволяющий запретить сравнение определен-
ных битов;
комбинационную схему, которая на основании анализа содер-
жимого регистра совпадений формирует сигналы, характеризующие результаты поиска информации.
При обращении к АЗУ сначала в регистре маски обнуляются раз­ряды, которые не должны учитываться при поиске информации. Все разряды регистра совпадений устанавливаются в единичное состояние. После этого в регистр ассоциативного признака заносится код искомой информации (признак поиска) и начинается ее поиск, в процессе кото­рого схемы совпадения одновременно сравнивают первый бит всех ячеек запоминающего массива с первым битом признака поиска. Те схемы, которые зафиксировали несовпадение, формируют сигнал, пе­реводящий соответствующий бит регистра совпадений в нулевое со­стояние. Так же происходит процесс поиска и для
остальных незамас­кированных битов признака поиска. В итоге единицы сохраняются лишь в тех разрядах регистра совпадений, которые соответствуют ячейкам, где находится искомая информация. Конфигурация единиц в регистре совпадений используется в качестве адресов, по которым производится считывание из запоминающего массива.
Из-за того, что результаты поиска могут оказаться неоднознач-
ными, содержимое регистра
совпадений подается на комбинационную схему, где формируются сигналы, извещающие о том, что искомая информация:
а0 – не найдена; а1 – содержится в одной ячейке;
а2 – содержится более чем в одной ячейке.
Формирование содержимого регистра совпадений и сигналов а0, а1, a2, носит название операции контроля ассоциации. Она является составной частью операций считывания и записи, хотя может иметь и самостоятельное значение.
93
При считывании сначала производится контроль ассоциации по аргументу поиска. Затем при а0 = 1 считывание отменяется из-за от­сутствия искомой информации, при а1 = 1 считывается слово, на кото­рое указывает единица в регистре совпадений, а при а2 = 1 сбрасыва­ется самая старшая единица в регистре совпадений и извлекается соот­ветствующее ей слово. Повторяя эту
операцию, можно последователь-
но считать все слова.
Запись в АП производится без указания конкретного адреса в первую свободную ячейку. Для отыскания свободной ячейки выполня­ется операция считывания, в которой не замаскированы только слу­жебные разряды, показывающие, как давно производилось обращение к данной ячейке, и свободной считается либо пустая ячейка, либо
та,
которая дольше всего не использовалась.
Главное преимущество ассоциативных ЗУ определяется тем, что время поиска информации зависит только от числа разрядов в призна­ке поиска и скорости опроса разрядов и не зависит от числа ячеек в запоминающем массиве.
Общность идеи ассоциативного поиска информации отнюдь не исключает разнообразия архитектур АЗУ. Конкретная архитектура определяется сочетанием четырех факторов: вида поиска информации; техники сравнения признаков; способа считывания информации при множественных совпадениях и способа записи информации.
В каждом конкретном применении АЗУ задача поиска информа­ции может формулироваться по-разному.
При простом поиске требуется полное совпадение всех разрядов признака поиска с одноименными разрядами слов, хранящихся в запо­минающем массиве.
При соответствующей организации АЗУ способно к более слож­ным вариантам поиска, с частичным совпадением. Можно, например, ставить задачу поиска слов с максимальным или минимальным значе­нием ассоциативного признака. Многократная выборка из АЗУ слова с максимальным или минимальным значением ассоциативного признака (с исключением его из дальнейшего поиска), по существу,
представля­ет собой упорядоченную выборку информации. Упорядоченную вы­борку можно обеспечить и другим способом, если вести поиск слов, ассоциативный признак которых по отношению к признаку опроса является ближайшим большим или меньшим значением.
Еще одним вариантом сложного поиска может быть нахождение слов, численное значение признака в которых больше или меньше за­данной
величины. Подобный подход позволяет вести поиск слов с
признаками, лежащими внутри или вне заданных пределов.
Очевидно, что реализация сложных методов поиска связана с со­ответствующими изменениями в архитектуре АЗУ, в частности с ус­ложнением схемы ЗУ и введением в нее дополнительной логики.
94
При построении АЗУ выбирают из четырех вариантов организа­ции опроса содержимого памяти. Варианты эти могут комбинировать­ся параллельно по группе разрядов и последовательно по группам. В плане времени поиска наиболее эффективным можно считать парал­лельный опрос как по словам, так и по разрядам, но не все виды запо­минающих элементов допускают
такую возможность.
Цепь очередности реализуется с помощью достаточно сложного устройства, где фиксируются слова, образующие многозначный ответ. Цепь очередности позволяет производить считывание слов в порядке возрастания номера ячейки АЗУ независимо от величины ассоциатив­ных признаков.
При алгоритмическом способе извлечения многозначного ответа выборка производится в результате серии опросов. Серия опросов мо­жет
формироваться путем упорядочивания тех разрядов, которые были замаскированы и не участвовали в признаке поиска. В другом варианте для этих целей выделяются специальные разряды. Существует целый ряд алгоритмов, позволяющих организовать упорядоченную выборку из АЗУ.
Существенные отличия в архитектурах АЗУ могут быть связаны с выбранным принципом записи информации. Ранее был описан вариант с
записью в незанятую ячейку с наименьшим номером. На практике применяются и иные способы, из которых наиболее сложный – запись с сортировкой информации на входе АЗУ по величине ассоциативного признака. Здесь местоположение ячейки, куда будет помещено новое слово, зависит от соотношения ассоциативных признаков вновь запи­сываемого слова и уже хранящихся в АЗУ
слов.
Из-за относительно высокой стоимости АЗУ редко используется
как самостоятельный вид памяти.
Как уже отмечалось, в качестве элементной базы основной памя­ти в большинстве ВМ служат микросхемы динамических ОЗУ, на по­рядок уступающие по быстродействию центральному процессору. В результате процессор вынужден простаивать несколько тактовых периодов, пока информация из ИМС памяти установится на шине дан­ных ВМ. Если ОП выполнить на быстрых микросхемах статической памяти, стоимость ВМ возрастет весьма существенно. Экономически приемлемое решение этой проблемы было предложено М. Уилксом в 1965 году в процессе разработки ВМ Atlas и заключается оно в исполь­зовании двухуровневой памяти, когда между ОП и процессором раз­мещается небольшая, но быстродействующая буферная память. В про­цессе работы такой системы в буферную память
5.9. КЭШ-ПАМЯТЬ
копируются те участ-
95
ки ОП, к которым производится обращение со стороны процессора. В общепринятой терминологии – производится отображение участков ОП на буферную память. Выигрыш достигается за счет ранее рассмот­ренного свойства локальности – если отобразить участок ОП в более быстродействующую буферную память и переадресовать на нее все обращения в пределах скопированного участка, можно добиться суще­ственного
повышения производительности ВМ.
Уилкс называл рассматриваемую буферную память подчиненной
(slave memory). Позже распространение получил термин «кэш-память» (от английского слова cache – убежище, тайник), поскольку такая па-
мять обычно скрыта от программиста в том смысле, что он не может ее адресовать и может даже вообще не знать о ее существовании. Впер­вые кэш-
системы появились в машинах модели 85 семейства IBM 360.
В общем виде использование кэш-памяти поясним следующим образом. Когда ЦП пытается прочитать слово из основной памяти, сначала осуществляется поиск копии этого слова в кэше. Если такая копия существует, обращение к ОП не производится, а в ЦП передает­ся слово, извлеченное из кэш-памяти. Данную
ситуацию принято на­зывать успешным обращением или попаданием (hit). При отсутствии слова в кэше, т.е. при неуспешном обращении – промахе (miss), – тре­буемое слово передается в ЦП из основной памяти, но одновременно из ОП в кэш-память пересылается блок данных, содержащий это слово.
На эффективность применения кэш-памяти в иерархической сис-
памяти влияет целый ряд моментов. К наиболее существенным из
теме них можно отнести:
емкость кэш-памяти;
размер строки;
способ отображения основной памяти на кэш-память;
алгоритм замещения информации в заполненной кэш-памяти;
алгоритм согласования содержимого основной и кэш-памяти;
число уровней кэш-памяти.
5.9.1. ЕМКОСТЬ КЭШ-ПАМЯТИ
Выбор емкости кэш-памяти – это всегда определенный компро­мисс. С одной стороны, кэш-память должна быть достаточно мала, чтобы ее стоимостные показатели были близки к величине, характер­ной для ОП. С другой – она должна быть достаточно большой, чтобы среднее время доступа в системе, состоящей из основной и кэш­памяти, определялось временем
доступа к кэш-памяти. В пользу уменьшения размера кэш-памяти имеется больше мотивировок. Так, чем вместительнее кэш-память, тем больше логических схем должно участвовать в ее адресации. Как следствие, ИМС кэш-памяти повы-
96
шенной емкости работают медленнее по сравнению с микросхемами меньшей емкости, даже если они выполнены по одной и той же техно­логии.
5.9.2. РАЗМЕР СТРОКИ
Еще одним важным фактором, влияющим на эффективность ис­пользования кэш-памяти, служит размер строки. Когда в кэш-память помещается строка, вместе с требуемым словом туда попадают и со­седние слова. По мере увеличения размера строки вероятность прома­хов сначала падает, так как в кэш, согласно принципу локальности, попадает все больше данных
, которые понадобятся в ближайшее вре­мя. Однако вероятность промахов начинает расти, когда размер строки становится излишне большим. Объясняется это тем, что:
большие размеры строки уменьшают общее количество строк,
которые можно загрузить в кэш-память, а малое число строк приводит к необходимости частой их смены;
по мере увеличения размера строки каждое дополнительное
слово оказывается дальше от запрошенного, поэтому такое дополни­тельное слово менее вероятно понадобится в ближайшем будущем.
Зависимость между размером строки и вероятностью промахов во многом определяется характеристиками конкретной программы, из-за чего трудно рекомендовать определенное значение величины строки. Наиболее близким к оптимальному можно признать
размер строки, равный 4…8 адресуемым единицам (словам или байтам). На практике размер строки обычно выбирают равным ширине шины данных, свя­зывающей кэш-память с основной памятью.
5.9.3. ОДНОУРОВНЕВАЯ И МНОГОУРОВНЕВАЯ КЭШ-ПАМЯТЬ
Современные технологии позволяют разместить кэш-память и ЦП на общем кристалле. Такая внутренняя кэш-память строится по техно­логии статического ОЗУ и является наиболее быстродействующей. Емкость ее обычно не превышает 64 Кбайт. Попытки увеличения ем­кости обычно приводят к снижению быстродействия, главным образом из-за усложнения схем управления и дешифрации адреса. Общую
ем­кость кэш-памяти ВМ увеличивают за счет второй (внешней) кэш­памяти, расположенной между внутренней кэш-памятью и ОП. Такая система известна под названием двухуровневой, где внутренней кэш­памяти отводится роль первого уровня (L1), а внешней – второго уровня (L2). Емкость L2 обычно на порядок больше, чем у L1, а быст­родействие и стоимость – несколько
ниже. Память второго уровня также строится как статическое ОЗУ. Типичная емкость кэш-памяти второго уровня – 256 и 512 Кбайт, реже – 1 Мбайт, а реализуется она,
97
как правило, в виде отдельной микросхемы, хотя в последнее время L2 часто размещают на одном кристалле с процессором, за счет чего со­кращается длина связей и повышается быстродействие.
При доступе к памяти ЦП сначала обращается к кэш-памяти пер­вого уровня. В случае промаха производится обращение к кэш-памяти второго уровня. Если
информация отсутствует и в L2, выполняется обращение к ОП и соответствующий блок заносится сначала в L2, а за­тем и в L1. Благодаря такой процедуре часто запрашиваемая информа­ция может быть быстро восстановлена из кэш-памяти второго уровня.
Потенциальная экономия за счет применения L2 зависит от веро-
ятности попаданий как в L1, так и в L2.
Ряд исследований показывает, что использование кэш-памяти второго уровня существенно улучшает производительность.
В большинстве семейств микропроцессоров предусмотрены спе­циальные ИМС контроллеров внешней кэш-памяти, например микро­схема 8291 для микропроцессора Intel 486 или 82491 – для Intel Pentium. Для ускорения обмена информацией между ЦП и L2 между ними часто вводят специальную шину, так называемую шину заднего плана, в
отличие от шины переднего плана, связывающей ЦП с основ-
ной памятью.
Количество уровней кэш-памяти не ограничивается двумя. В не­которых ВМ уже можно встретить кэш-память третьего уровня (L3) и ведутся активные дискуссии о введении также и кэш-памяти четверто­го уровня (L4). Характер взаимодействия очередного уровня с предше­ствующим аналогичен описанному
для L1 и L2. Таким образом, можно говорить об иерархии кэш-памяти. Каждый последующий уровень ха­рактеризуется большей емкостью, меньшей стоимостью, но и меньшим быстродействием, хотя оно все же выше, чем у ЗУ основной памяти.
Концепция кэш-памяти применима и к дисковым ЗУ. Принцип кэширования дисков во многом схож с принципом кэширования ос­новной памяти, хотя способы доступа к диску и ОП существенно раз­нятся. Если время обращения к любой ячейке ОП одинаково, то для диска оно зависит от целого ряда факторов. Во-первых, нужно затра тить некоторое время для установки головки считывания/записи на нужную дорожку. Во-вторых, поскольку при движении головка вибри­рует, необходимо подождать, чтобы она успокоилась. В-третьих, ис­комый сектор может оказаться под головкой также лишь спустя неко­торое время.
Дисковая кэш-память представляет собой память с произвольным доступом, «размещенную» между
98
5.9.4. ДИСКОВАЯ КЭШ-ПАМЯТЬ
-
дисками и ОП. Емкость такой памя-
ти обычно достаточно велика – от 8 Мбайт и более. Пересылка инфор­мации между дисками и основной памятью организуется контролле­ром дисковой кэш-памяти. Изготавливается дисковая кэш-память на базе таких же полупроводниковых запоминающих устройств, что и основная память, поэтому в ряде случаев с ней обращаются как с до­полнительной основной памятью. С
другой стороны, в ряде операци­онных систем, таких как UNIX, в качестве дискового кэша использует­ся область основной памяти.
В дисковой кэш-памяти хранятся блоки информации, которые с большой вероятностью будут востребованы в ближайшем будущем. Принцип локальности, обеспечивающий эффективность обычной кэш­памяти, справедлив и для дисковой, приводя к сокращению времени
вывода данных от величин 20…30 мс до значений порядка
ввода/ 2…5 мс, в зависимости объема передаваемой информации.
В качестве единицы пересылки может выступать сектор, несколь­ко секторов, а также одна или несколько дорожек диска. Кроме того, иногда применяется пересылка информации, начиная с выбранного сектора на дорожке до ее конца. В случае пересылки секторов
кэш­память заполняется не только требуемым сектором, но секторами, не­посредственно следующими за ним, так как известно, что в большин­стве случаев взаимосвязанные данные хранятся в соседних секторах. Этот метод известен также как опережающее чтение (read ahead).
В дисковых кэшах обычно используется алгоритм сквозной запи-
си. Специфика состоит в том, что далеко не
всю информацию, пере­мещаемую между дисками и основной памятью, выгодно помещать в дисковый кэш. В ряде случаев определенные данные и команды целе­сообразно пересылать напрямую между ОП и диском. По этой причи­не в системах с дисковым кэшем предусматривают специальный ди­намический механизм, позволяющий переключать тракт пересылки информации: через кэш
или минуя его.
Одна из привлекательных сторон дискового кэша в том, что свя­занные с ним преимущества могут быть получены без изменений в имеющемся аппаратном и программном обеспечении. Многие серийно выпускаемые дисковые кэши интегрированы в состав дисковых ЗУ. В качестве примера можно привести модель 23 системы IBM 3880, в состав которой входят дисковые ЗУ
со встроенным контроллером кэш­памяти и кэш-памятью емкостью от 8 до 64 Мбайт. Дисковая кэш­память применяется и в персональных ВМ.
Дисковая кэш-память обычно включает в себя средства для обна­ружения и исправления ошибок. Так, в уже упоминавшейся модели 23 системы IBM 3880 имеются средства для обнаружения тройных ошибок
(одновременного появления ошибок в
трех разрядах) и исправления
одиночных, двойных и большинства тройных ошибок. Более ранняя
99
модель 13 той же системы имела кэш-память емкостью 4…8 Мбайт и умела обнаруживать двойные и исправлять одиночные ошибки. В обе­их моделях замещение информации в кэше производится в соответст­вии с алгоритмом минимального предыдущего использования (LRU).
Примечательно, что архитектура кэш-памяти современных маг­нитных дисков типа «винчестер» реализует полностью ассоциативное отображение.
5.10. ПОНЯТИЕ ВИРТУАЛЬНОЙ ПАМЯТИ
Для большинства типичных применений ВМ характерна ситуа­ция, когда размещение всей программы в ОП невозможно из-за ее большого размера. В этом однако и нет принципиальной необходимо­сти, поскольку в каждый момент времени «внимание» машины кон­центрируется на определенных сравнительно небольших участках про­граммы. Таким образом, в ОП достаточно хранить только
используе­мые в данный период части программ, а остальные части могут распо­лагаться на внешних ЗУ (ВЗУ). Сложность подобного подхода в том, что процессы обращения к ОП и ВЗУ существенно различаются, и это усложняет задачу программиста. Выходом из такой ситуации было появление в 1959 году идеи виртуализации памяти, под которой пони­мается метод автоматического управления иерархической памятью, при котором программисту кажется, что он имеет дело с единой памя­тью большой емкости и высокого быстродействия. Эту память назы­вают виртуальной (кажущейся) памятью. По своей сути виртуализация памяти представляет собой способ аппаратной и программной реали­зации концепции иерархической памяти.
В рамках идеи виртуализации памяти
ОП рассматривается как линейное пространство N адресов, называемое физическим простран­ством памяти. Для задач, где требуется более чем N ячеек, предостав­ляется значительно большее пространство адресов (обычно равное общей емкости всех видов памяти), называемое виртуальным про­странством, в общем случае не обязательно линейное. Адреса вирту­ального пространства называют виртуальными, а адреса физического пространства – физическими. Программа пишется в виртуальных ад­ресах, но поскольку для ее выполнения нужно, чтобы обрабатываемые команды и данные находились в ОП, требуется, чтобы каждому вирту­альному адресу соответствовал физический. Таким образом, в процес­се вычислений необходимо, прежде всего, переписать из ВЗУ в ОП ту часть информации, на которую указывает виртуальный
адрес (отобра­зить виртуальное пространство на физическое), после чего преобразо­вать виртуальный адрес в физический.
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]