Курс лекций - конспект от Томилина в PDF, страница 4
Описание файла
PDF-файл из архива "Курс лекций - конспект от Томилина в PDF", который расположен в категории "". Всё это находится в предмете "вычислительные сети и системы" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Нахождение блока происходит путем сравнения требуемого адреса данныхпо оперативной памяти с находящимися в специальных регистрах при каждом блоке кэшпамяти начальными адресами групп данных, перемещенных в эти блоки из оперативнойпамяти, с учетом длины блока кэш-памяти. При нахождении блока кэш-памяти определяется исмещение в нем для выполнения непосредственного обращения к данным.При не нахождении блока кэш-памяти с нужными данными (“промах” при обращении вкэш-память) эти данные считываются из оперативной памяти в некоторый блок кэш-памяти,определяемый по выполняемому аппаратурой алгоритму замещения данных в кэш-памяти.Если данные в блоке кэш-памяти, выбранном для считывания в него данных из оперативнойпамяти, изменялись процессором, и это изменение не было отражено в оперативной памяти, топредварительно происходит перепись этих данных из выбранного блока кэш-памяти воперативную память.Противоположной по отношению к организации полностью ассоциативной памятиявляется организация кэш-памяти “с прямой адресацией”.
В данном случае заранееопределено, из каких диапазонов адресов оперативной памяти (длина диапазонов совпадает сдлиной блоков кэш-памяти) данные могут быть помещены в конкретный блок кэш-памяти.910Например, при длине блока кэш-памяти 100 (в восьмеричной системе счисления) и количествеблоков 4 в “нулевой” блок кэш-памяти могут быть переданы данные из ячеек оперативнойпамяти с восьмеричными адресами:0000 – 0077, 0400 – 0477, 1000 – 1077, 1400 – 1477 и т.д.В первый блок кэш-памяти могут быть переданы данные из ячеек оперативной памяти садресами:0100 – 0177, 0500 – 0577 и т.д.Для приведенного примера данные с адресом 0432 могут быть найдены лишь внулевом блоке кэш-памяти при нахождении в указанном специальном регистре при этом блокеадреса 0400, а данные с адресом 0543 могут быть найдены лишь в первом блоке кэш-памятипри нахождении в его специальном регистре адреса 0500.В случае “промаха” при обращении в определенный блок кэш-памяти выполняетсязамена информации в нем на требуемую информацию из оперативной памяти (с возможнойпредварительной записью находившейся в нем информации в оперативную память как и вслучае полностью ассоциативной памяти).Организация частично-ассоциативной памяти обеспечивает разделение блоков кэшпамяти на группы по одинаковому числу блоков по принципу организации кэш-памяти «спрямой адресацией», а поиск данных в выбранной группе блоков кэш-памяти осуществляетсяпо принципу организации полностью ассоциативной памяти.
Так для указанного вышепримера четырех блоков кэш-памяти возможна организация частично-ассоциативной памятииз двух групп блоков по два блока в каждой. В “нулевую” группу попадают нулевой и первыйблоки, а в первую – второй и третий блоки. Данные с адресами 0000 – 0177, 0400 – 0577, 1000– 1177, 1400-1577 могут находиться лишь в блоках нулевой группы. Данные с указаннымивыше адресами 0432 и 0543 могут находиться или отсутствовать либо в нулевом, либо впервом блоке кэш-памяти.Замена информации в частично-ассоциативной кэш-памяти при “промахе” обращения внее происходит аналогично замене информации в других организациях кэш-памяти.Естественно, что наиболее высока вероятность нахождения требуемых данных в болеесложной по организации полностью ассоциативной кэш-памяти.Память с прямой адресацией отличается наибольшей простотой нахождения местарасположения данных в ней.Второй основной проблемой использования кэш-памяти является проблемаосуществления записи в нее для многопроцессорных вычислительных систем с общейоперативной памятью и отдельными кэш-памятями у каждого процессора (дляоднопроцессорных ЭВМ с кэш-памятью для выполнения записи производятся уже описанныевыше действия).Поскольку в вычислительных системах с общей памятью данные из некоторой ееобласти могут находиться в блоках разных кэш-памятей, изменение этих данных привыполнении записи по некоторому адресу оперативной памяти в одной кэш-памяти не должнопривести к использованию “старых” значений при обращении за ними по этому же адресуоперативной памяти в другой кэш-памяти.
Это реализуется двумя основными способами.Первый способ заключается в определении нахождения данных с адресами пооперативной памяти, совпадающими с адресом по оперативной памяти записываемых данныхв некоторую кэш-память, в блоках других кэш-памятей. В случае нахождения таких данных вблоках других кэш-памятей содержимое этих блоков объявляется недействительным (прикаждом блоке кэш-памяти имеется одноразрядный регистр, указывающий действительностьили недействительность содержимого блока).
Одновременно выполненная запись в кэшпамять осуществляется также и в оперативную память (содержимое блока кэш-памяти, вкоторый произведена запись, становится когерентным содержимому соответствующейобласти оперативной памяти). Если затем для другого процессора потребуются данные поэтому же адресу оперативной памяти, они будут прочитаны из оперативной памяти внекоторый блок кэш-памяти процессора, запросившего данные, поскольку непосредственно из1011этой кэш-памяти в связи с проведением указанной выше блокировки эти данные не смогут бытьсчитаны.
Таким образом другие процессоры в случае необходимости смогут использоватьлишь “новые” значения данных, записанные в оперативную память каким-либо процессором.Второй способ обеспечения когерентности кэш-памятей заключается в выполнениитребуемой записи данных в те блоки всех кэш-памятей, в которых отображены данные изодной области оперативной памяти.Естественно, что для осуществления обоих способов обеспечения когерентноститребуется весьма сложная аппаратура, с помощью которой выполняются указанные вышедействия.Виртуальная памятьВ первых ЭВМ программирование велось с использованием физических адресовоперативной памяти. Каждая задача программировалась с использованием одних и тех жеадресов, то есть на машине в каждый период времени могла выполняться лишь одна задача(фактически первые ЭВМ были машинами “на одну персону”, имея в виду программиста илиоператора, работавшего на машине).
Размер задачи (объем ее программ и данных) во многихслучаях практически сразу стал существенно превосходить размер оперативной памятимашины. Пришлось программировать отдельные части (блоки, модули) задачи на одни и те жеадреса памяти и вызывать их в программе на эти адреса оперативной памяти из внешнейпамяти (на магнитных барабанах, магнитных лентах).Такие действия, называемые “перекрытием программных модулей” (и модулей данных) впамяти или “попеременной загрузкой” модулей (overlay) вызывали большие затруднения припрограммировании.Шагом вперед в организации оперативной памяти стало введение аппаратуры,обеспечивающей использование информации задачи на любом месте оперативной памяти.Использовался “регистр базы”, на который помещался начальный адрес размещения задачи воперативной памяти, и регистр длины (размера) информации задачи.
Это позволилопрограммировать задачи на одни и те же адреса, называвшиеся “относительными”,“логическими”, “математическими” и, наконец, “виртуальными” адресами, а размещать (спомощью операционной системы) информацию задачи на любом месте оперативной памяти.Тем самым обеспечивалась возможность помещения в память одновременно информациимногих задач и выполнения этих задач в многозадачном (многопрограммном) режиме. Эффектиспользования такого режима достигается за счет более полной загрузки процессора. Когдавременно (например, из-за выполнения обмена данными между оперативной и внешнейпамятью) не может выполняться одна задача, тут же начинает выполняться другая задача.Поскольку информация задачи занимает непрерывный диапазон адресов, использованиерегистра длины информации задачи позволяет не допускать обращения в задаче вневыделенную для нее область памяти и тем самым обеспечивать защиту памяти других задач.К сожалению, такая организация памяти (задаче предоставлялся ограниченный“линейный” участок оперативной памяти) не избавляла программиста от заботы оборганизации упоминавшегося перекрытия программных модулей в его таким образоморганизованной “виртуальной” памяти.
Рассмотренный способ организации использованияоперативной памяти (с достаточно простой аппаратной “поддержкой”) имеет обобщающееназвание – память “односегментного отображения”.Освободить программиста от организации перекрытия программных модулей в памятии обеспечить при программировании понимание возможности использования виртуальнойпамяти задачи практически любого объема позволило введение поддержанной аппаратноструктурированной виртуальной памяти задачи.Видами такой организации памяти стали: “сегментная”, “страничная” и “сегментностраничная” организации.Сегментная организация памяти.1112Для каждой задачи память сегментной организации предоставляет возможностьразместить в ней сегменты разной длины, содержащие информацию задачи. В этих сегментахнаходятся законченные программные объекты – модули процедур и модули данных.
Припрограммировании предполагается, что все эти объекты находятся на одном уровнеструктурированной виртуальной памяти задачи и в программе решения задачи не требуетсяосуществлять их перемещение между оперативной и внешней памятью (это перемещениебудет выполнять операционная система). То есть виртуальная память задачи структурированакак набор модулей (сегментов).Сегменты задачи могут располагаться в любом месте физической оперативной памяти,защищены друг от друга и от сегментов других задач и вызываются при необходимости ихиспользования в задаче в оперативную память (на свободное место или вместо каких-либодругих сегментов этой или других задач) операционной системой.Виртуальные адреса, используемые в программе задачи, состоят из виртуальногономера сегмента и смещения (номера ячейки) в этом сегменте (рис 13.). Виртуальныйсегментный адрес аппаратно преобразуется в физический адрес при непосредственномобращении в оперативную память с использованием таблицы соответствия виртуальныхномеров сегментов задачи начальным физическим адресам их расположения в оперативнойпамяти.