Тарифы Услуги Сим-карты

Информатика и вычислительная техника. Физическая и логическая организация памяти вычислительных систем

Модули памяти характеризуются такими параметрами, как объем (16, 32, 64, 128, 256 или 512 Мбайт), число микросхем, паспортная частота (100 или 133 МГц), время доступа к данным (6 или 7 нс) и число контактов (72, 168 или 184).

Модули DIP. Микросхемы DRAM упаковываются в так называемый DIP-корпус, при этом DIP обозначает Dual In-line Package (корпус с двухрядным расположением выводов). Этот термин относится к корпусам памяти, у которых выводы (Pins) расположены по бокам (напоминают жука) - рис. 3.48, а. Сам кристалл, на котором размещены ячейки памяти, существенно меньше, чем корпус. Данная конструкция корпуса обусловлена такими требованиями, как удобство печатного монтажа и установки микросхемы в панельки на системной плате, а также соблюдение температурного режима работы элементов.

Большинство модулей DIP имеют интервалы между выводами в ряду 2,54 мм (0,1"), а расстояние между рядами - 7,62 мм (0,3" - «Skinny DIP», «Тощий DIP») или 15,24 мм (0,6"). Типичное число контактов равно 8 или любому другому четному числу от 14 до 24 (реже -28) для корпусов на 0,3" и 24, 28, 32 или 40 (реже 36, 48 или 52) для корпусов на 0,6". На территории бывшего СССР используются аналогичные корпуса, но с размерами, выдержанными в метрической системе мер (например, интервал выводов 2,5 мм вместо 2,54 мм/0, Г).

Известны различные варианты корпусов DIP, в основном различающиеся материалом изготовления:

  • керамические (Ceramic Dual In-line Package - CERDIP);
  • пластмассовые (Plastic Dual In-line Package - PDIP);
  • пластмассовые уплотненные (Shrink Plastic Dual In-line Package - SPDIP) - уплотненная версия PDIP с интервалом выводов 1,778 мм (0,07").

Важнейшими параметрами микросхем DRAM являются емкость и организация памяти. Элементы DRAM в виде отдельных микросхем обычно устанавливались на старых материнских платах. В настоящее время эти микросхемы используются в качестве составных элементов модулей памяти, таких как SIP-, ZIP-и SIMM-модули.

Информация о микросхеме в ее обозначении состоит, как правило, из нескольких полей. Первое поле содержит информацию о производителе и типе отбраковки при изготовлении микросхемы, следующее характеризует емкость, а дальнейшее - материал, из которого изготовлен корпус, и время доступа.

Например, для микросхем фирмы Mostek первые две буквы МК являются обозначением фирмы, МКВ означает, что данная микросхема фирмы Mostek отбракована согласно военному стандарту (MIL STD-833), a MKI - что микросхема прошла отбраковку в соответствии с промышленным диапазоном температур. Цифра 4 говорит о том, что микросхема является элементом DRAM. Следующая за ней цифра обозначает количество инфор-

Рис. 3.48. Внешний вид модулей памяти: а - корпус DIP-14; б - модуль SIP; в - модуль ZIP; г - разъем ZIP; д - SIMM на 72 контакта; е -DDR2 (1 Гбайт, 533 МГц) с радиатором (184 контакта и один ключ); ж - DDR SO-DIMM (РС2700, 200 контактов); з - RDRAM-модуль со

встроенным радиатором

мационных разрядов: 1 - один разряд, 4 - четыре разряда. Группа цифр, следующая далее, обозначает количество информационных разрядов в килобитах (64 - 64 Кбит, 256 - 256 Кбит, 1000 - 1 Мбит). Далее буквой указывается тип корпуса (например, Р - пластмассовый, хотя тип может быть и не указан). Через дефис указывается время доступа в наносекундах. Таким образом, по обозначению МКВ44256-70 можно легко определить, что это микросхема фирмы Mostek, прошедшая отбраковку согласно военному стандарту, имеет емкость 4-го разряда по 256 Кбит каждый и время доступа 70 нс.

SIP-модули. Микросхемы DRAM довольно легко и просто устанавливать в ПК, однако они занимают много места. С целью уменьшения размеров компонентов ПК, в том числе и элементов оперативной памяти, был разработан ряд конструктивных решений, приведших к тому, что каждый элемент памяти больше не устанавливался в отдельную панель, а совместимые элементы DRAM объединены в один модуль, выполненный на небольшой печатной плате.

Технология, реализующая такую конструкцию элементов памяти, называется SMT (Surface Mounting Technology), дословно переводимая как «технология поверхностного монтажа». Благодаря ей совместимые элементы DRAM были установлены на одной плате, что, в первую очередь, означало экономию места.

В качестве реализации технологии SMT можно назвать так называемые SIP-модули с однорядным расположением выводов (Single In-line Package - SIP). SIP-модули представляют собой небольшую плату с установленными на ней совместимыми чипами DRAM (см. рис. 3.48). Такая плата имеет 30 выводов, размеры ее в длину около 8 см и в высоту около 1,7 см.

SIP-модули устанавливаются в соответствующие разъемы на системной плате. Однако при установке и извлечении таких модулей тонкие штырьки выводов часто обламываются, и контакт между штырьком и разъемом ненадежен. Это привело к дальнейшему развитию модулей памяти и появлению SIMM-модулей.

ZIP (Zig-zag In-line Package) - недолго просуществовавшая технология интегральных схем, в частности, чипов DRAM. Она была разработана для замены DIP. Интегральная схема ZIP заключается в пластиковый корпус, обычно размером 3 х 30 х 10 мм. Выводы устройства расположены в 2 ряда на одной из сторон корпуса. Эти ряды находятся на расстоянии 1,27 мм (0,05") друг от друга в шахматном порядке, что дает возможность их более компактного размещения, чем обычная прямоугольная решетка (рис. 3.48, в, г). Корпуса схем при этом могут располагаться на плате более плотно, нежели чем при схемотехнике DIP, при том же размере. ZIP были в дальнейшем вытеснены такими конфигурациями, как TSOP (thin small-outline packages), используемых в SIMM (single-in-line memory modules) и DIMM (dual-in-line memory modules).

SIMM-модули. Когда речь идет о SIMM-модуле, имеют в виду плату, которая по своим размерам примерно соответствует SIP-модулю. Различие, прежде всего, состоит в конструкции контактов. В отличие от SIP-модуля выводы для SIMM-модуля заменены так называемыми контактами типа PAD (вилка). Эти контакты выполнены печатным способом и находятся на одном краю платы. Именно этим краем SIMM-модули устанавливаются в специальные слоты на системной плате (рис. 3.48, d). Благодаря такой конструкции SIMM-модулей существенно повышается надежность электрического контакта в разъеме и механическая прочность модуля в целом, тем более что все контакты изготовлены из высококачественного материала и позолочены.

Отказы в работе оперативной памяти чаще всего происходят не из-за повреждения SIMM-модулей, а, скорее, из-за некачественной обработки контактов разъемов на системной плате.

Кроме того, удобная конструкция SIMM-модулей позволяет пользователям самостоятельно менять и добавлять элементы памяти, не опасаясь повредить выводы.

SIMM-модули являются стандартом в современных вычислительных системах. SIMM-модули, оснащенные DRAM 41256, сегодня применяются относительно редко. Чаще SIMM-модули оборудованы микросхемами памяти общей емкостью 8, 16 и 32 Мбит. В дальнейшем на рынке появились SIMM-модули, имеющие емкость 120 Мбит и более.

В PC с CPU 80386 и ранних моделях с CPU 80486 использовались 30-контактные SIMM-модули памяти (DRAM), и число слотов на системной плате колебалось от 4 до 8. В настоящее время найти в продаже подобные модули весьма не просто. В более поздних моделях PC с CPU 80486 и Pentium стали использоваться 72-контактные SIMM-модули памяти (FPM DRAM).

DIMM-модули. В дальнейшем на многих системных платах появились слоты для 168-контактных модулей памяти DIMM (Dual In-line Memory Module). Модули DIMM обладают внутренней архитектурой, схожей с 72-контактными SIMM-модулями, но благодаря более широкой шине обеспечивают повышенную производительность подсистемы «CPU-RAM».

Для правильного позиционирования DIMM-модулей при установке в слоты на системной плате в их конструкции предусмотрены два ключа:

  • первый ключ расположен между контактами 10 и 11 и служит для определения типа памяти модуля (FPM DRAM или SDRAM);
  • второй ключ расположен между контактами 40 и 41 и служит для определения напряжения питания модуля (5 или 3,3 В).

DIMM-модули поддерживают, например, материнские платы на Chipset 82430VX, 82440FX, 83450KX/GX, 82430ТХ.

SO-DIMM (Small Outline Dual In-Line Memory Module) представляет собой тип интегральных схем оперативной памяти компьютера (рис. 3.48, ж).

SO-DIMM является малогабаритной альтернативой для DIMM и обычно занимают около половины пространства, требуемого для обычных модулей DIMM. В результате SO-DIMM в основном используются в таких устройствах, как ноутбуки, небольшие настольные ПК (с платами типа Mini-ITX), высококачественные принтеры и сетевое оборудование (например, маршрутизаторы).

Модули SO-DIMM могут иметь 72, 100, 144 или 200 контактов, поддерживая передачу данных, соответственно, по 32 бита (100) и 64 бита (144 и 200). Обычные DIMM имеют по 168, 184 или 240 и все поддерживают 64-битовую передачу данных.

Различные типы SO-DIMM распознаются по размещению «ключей» - модули на 100 контактов имеют два ключа, 144-контактный SO-DIMM имеет один ключ близко к центру корпуса, 200-контактный SO-DIMM - один ключ ближе к краю корпуса.

SO-DIMM примерно соответствуют (или меньше чем) по мощности DIMM, и обе технологии SO-DIMM и DIMM обеспечивают примерно равные скорости (тактовая частота, например, 400 МГц для РС3200 и латентность CAS величиной 2,0, 2,5 и 3,0) и емкость (512 Мбайт, 1 Гбайт и пр.). Более современные модули DDR2 SO-DIMM имеют частоту до 800 МГц РС6400 и предполагается, что достигнут частоты 1066 МГц РС8500.

RIMM. С появлением Direct RDRAM (DRDRAM) в 1999 г. появляется модуль RIMM (рис. 3.49) (название - не акроним, а торговая марка Rambus Inc). Разъемы RIMM имеют типоразмеры, подобные DIMM, и могут устанавливаться в пределах той же

Рис. 3.49.

самой области системной платы, как и DIMM. Они имеют 184 штырька по сравнению с 168 для DIMM, но используют ту же спецификацию гнезда, как и стандарт DIMM на 100 МГц. BIOS ПК способен определить, какая оперативная память установлена, так что SDRAM-модули на 100 МГц должны работать в RIMM-совместимой системе. Существуют также компактные модели памяти SO-RIMM, аналогичные SO-DIMM.

Главные элементы к подсистеме памяти Rambus включают основное устройство, которое содержит Rambus ASIC Cell (RAC) и контроллер памяти (Rambus Memory Controller RMC), тактовый генератор (Direct Rambus Clock Generator DRCG), разъемы RIMM, модули памяти RIММ и модули непрерывности RIMM, а также подсистему «последовательное устройство обнаружения присутствия» (Serial Presence Detect SPD ROM).

В конечном итоге, технологии DDR, развиваясь и становясь все дешевле, практически вытеснили RDRAM - в интервале 2002-2005 гг. рыночная доля RDRAM не превышала 5 %.

FB-DIMM (Fully Buffered DIMM, полностью буферизованный DIMM) - технология, предназначенная для повышения надежности, быстродействия и емкости систем ОП. В обычных конструкциях ОП линии данных, идущие от контроллера памяти, соединяются со всеми DIMM-модулями. При возрастании электрической нагрузки (увеличение числа модулей или же разрядности памяти), а также с повышением частоты доступа проходящие сигналы начинают искажаться, что ограничивает эффективность системы в целом.

Архитектура Fully Buffered DIMM предусматривает промежуточный буфер (Advanced Memory Buffer - AM В), устанавливаемый между контроллером и модулем памяти (рис. 3.50). В отличие от параллельной шинной архитектуры для традиционных

Разъем DDR2 с уникальным ключом

До 8 модулей DIMM

«Южный путь» (10 бит)

Контроллер

Рис. 3.50. Архитектура памяти FB-DIMM

DRAM, FB-DIMM имеет последовательный интерфейс между контроллером и AM В. Это позволяет повысить разрядность памяти без увеличения количества линий контроллера памяти.

Контроллер не передает сигнал непосредственно на модуль памяти, а действует через буфер, который восстанавливает форму сигнала и передает его дальше. Кроме того, AM В может осуществлять коррекцию ошибок, разгружая от этой функции процессор и контроллер памяти. Это сопровождается, однако, повышением латентности ОП.

Существует стандарт (протокол JESD82-20), определяющий интерфейс АМВ с памятью DDR2. Канал FB-DIMM состоит из 14 битовых линий «Северного пути» («northbound»), по которым данные передаются из памяти на процессор, и 10 линий «Южного пути» («southbound»), передающих команды и данные из процессора.

Каждый бит передается на частоте, в 12 раз большей, чем базовая частота памяти (в 6 раз, если используется удвоенная скорость, DDR - DDR3). Например, для чипа DDR2-667 DRAM канал будет работать на частоте 667 х 12/2 =4000 МГц. Каждые 12 циклов образуют кадр: 168 бит «Северного пути» (144 бита данных, передаваемых 72-битовой DDR SDRAM плюс 24 бита для CRC-коррекции) и 120 бит «Южного» (98 полезных бит и 22 CRC-бита). Из 98 бит здесь 2 задают тип кадра, 24 - команда; в оставшихся битах могут содержаться (в зависимости от типа кадра) либо 72 бита записываемых данных, либо две или более 24-битовых команд, либо одна команда или более плюс 36 бит записываемых данных.

Поскольку записываемые данные подаются медленнее, чем это необходимо для ОП DDR, они накапливаются в AM В, а затем записываются в одном пакете (обычно по четыре кадра данных).

Команды соответствуют стандартным циклам доступа DRAM, например, выбор строки (/RAS), предвыборка, регенерация и пр. Команды чтения и записи содержат только адреса столбцов (/CAS) массива памяти. Все команды содержат 3-разрядные адреса FB-DIMM, что позволяет подключать до 8 модулей FB-DIMM на 1 канал.


Со времен создания ЭВМ фон Неймана основная память в компьютерной системе организована как линейное (одномерное)адресное пространство , состоящее из последовательности слов , а позже байтов. Аналогично организована и внешняя память . Хотя такая организация и отражает особенности используемого аппаратного обеспечения, она не соответствует способу, которым обычно создаются программы. Большинство программ организованы в виде модулей, некоторые из которых неизменны (только для чтения, только для исполнения), а другие содержат данные, которые могут быть изменены.

Если операционная система и аппаратное обеспечение могут эффективно работать с пользовательскими программами и данными, представленными модулями, то это обеспечивает ряд преимуществ.


  1. Модули могут быть созданы и скомпилированы независимо друг от друга, при этом все ссылки из одного модуля в другой разрешаются системой во время работы программы.

  2. Разные модули могут получать разные степени защиты (только чтение, только исполнение) за счет весьма умеренных накладных расходов.

  3. Возможно применение механизма, обеспечивающего совместное использование модулей разными процессами (для случая сотрудничества процессов в работе над одной задачей).
Память – важнейший ресурс вычислительной системы, требующий эффективного управления. Несмотря на то, что в наши дни память среднего домашнего компьютера в тысячи раз превышает память больших ЭВМ 70-х годов, программы увеличиваются в размере быстрее, чем память . Достаточно сказать, что только операционная система занимает сотни Мбайт (например, Windows 2000 – до 30 млн строк), не говоря о прикладных программах и базах данных, которые могут занимать в вычислительных системах десятки и сотни Гбайт.

Перефразированный закон Паркинсона гласит: "Программы расширяются, стремясь заполнить весь объем памяти, доступный для их поддержки" (сказано это было об ОС). В идеале программисты хотели бы иметь неограниченную в размере и скорости память , которая была бы энергонезависимой, т.е. сохраняла свое содержимое при выключении электричества , а также недорого бы стоила. Однако реально пока такой памяти нет. В то же время на любом этапе развития технологии производства запоминающих устройств действуют следующие достаточно устойчивые соотношения:


  • чем меньше время доступа, тем дороже бит;

  • чем выше емкость, тем ниже стоимость бита;

  • чем выше емкость, тем больше время доступа.
Чтобы найти выход из сложившийся ситуации, необходимо опираться не на отдельно взятые компоненты или технологию, а выстроить иерархию запоминающих устройств, показанную на рис. 6.1. При перемещении слева направо происходит следующее:

  • снижается стоимость бита;

  • возрастает емкость;

  • возрастает время доступа;

  • снижается частота обращений процессора к памяти.

Рис. 6.1. Иерархия памяти

Предположим, процессор имеет доступ к памяти двух уровней. На первом уровне содержится Е 1 слов, и он характеризуется временем доступа Т 1 = 1 нс. К этому уровню процессор может обращаться непосредственно. Однако если требуется получить слово , находящееся на втором уровне, то его сначала нужно передать на первый уровень. При этом передается не только требуемое слово , а блок данных , содержащий это слово . Поскольку адреса, к которым обращается процессор , имеют тенденцию собираться в группы (циклы, подпрограммы), процессор обращается к небольшому повторяющемуся набору команд. Таким образом, работа процессора с вновь полученным блоком памяти будет проходить достаточно длительное время.

Обозначим через Т 2 = 10 нс время обращения ко второму уровню памяти, а через Р – отношение числа нахождений нужного слова в быстрой памяти к числу всех обращений. Пусть в нашем примере Р = 0,95 (т.е. 95% обращений приходится на быструю память , что вполне реально), тогда среднее время доступа к памяти можно записать так:

T ср = 0,95*1нс + 0,05* (1нс+10нс)=1,55нс

Этот принцип можно применять не только к памяти с двумя уровнями. Реально так и происходит. Объем оперативной памяти существенно сказывается на характере протекания вычислительного процесса, так как он ограничивает число одновременно выполняющихся программ, т.е. уровень мультипрограммирования. Если предположить , что процесс проводит часть р своего времени в ожидании завершения операции ввода-вывода, то степень загрузки Z центрального процессора (ЦП) в идеальном случае будет выражаться зависимостью

Z = 1 - p n , где n – число процессов.

На рис. 6.2 показана зависимость Z=p(n) для различного времени ожидания завершения операции ввода-вывода (20%, 50% и 80%) и числа процессов n. Большое количество задач, необходимое для высокой загрузки процессора, требует большого объема оперативной памяти. В условиях, когда для обеспечения приемлемого уровня мультипрограммирования имеющейся памяти недостаточно, был предложен метод организации вычислительного процесса, при котором образы некоторых процессов целиком или частично временно выгружаются на диск .

Очевидно, что имеет смысл временно выгружать неактивные процессы, находящиеся в ожидании каких-либо ресурсов, в том числе очередного кванта времени центрального процессора. К моменту, когда пройдет очередь выполнения выгруженного процесса, его образ возвращается с диска в оперативную память . Если при этом обнаруживается, что свободного места в оперативной памяти не хватает , то на диск выгружается другой процесс.

Такая подмена (виртуализация ) оперативной памяти дисковой памятью позволяет повысить уровень мультипрограммирования, поскольку объем оперативной памяти теперь не столь жестко ограничивает число одновременно выполняемых процессов. При этом суммарный объем оперативной памяти, занимаемой образами процессов, может существенно превосходить имеющийся объем оперативной памяти.

В данном случае в распоряжение прикладного программиста предоставляется виртуальная оперативная память , размер которой намного превосходит реальную память системы и ограничивается только возможностями адресации используемого процесса (в ПК на базе Pentium 2 32 = 4 Гбайт). Вообще виртуальным (кажущимся) называется ресурс , обладающий свойствами (в данном случае большой объем ОП), которых в действительности у него нет.

Виртуализация оперативной памяти осуществляется совокупностью аппаратных и программных средств вычислительной системы (схемами процессора и операционной системой) автоматически без участия программиста и не сказывается на логике работы приложения.

Виртуализация памяти возможна на основе двух возможных подходов:


  • свопинг (swapping) – образы процессов выгружаются на диск и возвращаются в оперативную память целиком;

  • виртуальная память (virtual memory ) – между оперативной памятью и диском перемещаются части образов (сегменты, страницы, блоки и т.п.) процессов.
Недостатки свопинга:

  • избыточность перемещаемых данных и отсюда замедление работы системы и неэффективное использование памяти;

  • невозможность загрузить процесс, виртуальное пространство которого превышает имеющуюся в наличии свободную память.
Достоинство свопинга по сравнению с виртуальной памятью – меньшие затраты времени на преобразование адресов в кодах программ, поскольку оно делается один раз при загрузке с диска в память (однако это преимущество может быть незначительным, т.к. выполняется при очередной загрузке только часть кода и полностью преобразовывать код, может быть, и не надо).

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

Концепция виртуальной памяти

В ВС с виртуальной памятью адресное пространство (АП) процесса (образ процесса) во время выполнения хранится во внешней памяти ЭВМ и загружается в реальную память по частям динамически по необходимости в любое свободное место РОП. Однако программа ничего не знает об этом , написана и выполняется так, как будто полностью находится в РОП.

Виртуальная память - это моделирование оперативной памяти во внешней памяти.

Механизм отображения виртуальных и реальных адресов устанавливает между ними соответствие и называется динамическим преобразованием адресов (ДПА).

Компьютер здесь уже выступает как логическое устройство, а не физическая машина с уникальными характеристиками. ДПА поддерживается на аппаратно-микропрограммном уровне. В МП Intel, начиная с 386 процессора, выполняется поддержка виртуальной памяти.

Такая процедура выполняется для EC ЭВМ - ряд 2 и выше, для СМ ЭВМ- 1700, для IBM PC – I386 и выше.

При управлении виртуальной памятью смежные виртуальные адреса не обязательно будут смежными реальными адресами (искусственная смежность). Программист освобождается от необходимости учитывать размещение своих процедур и данных в РОП. Он получает возможность писать программы наиболее естественным образом, прорабатывая лишь детали алгоритма и структуру программы, игнорируя конкретные особенности структуры аппаратных средств.

Механизм ДПА предполагает ведение таблиц, показывающих какие ячейки ВП в текущий момент времени находятся в РОП и где именно. Поскольку индивидуальное отображение элементов информации (пословное или побайтовое) не имеет смысла (так как под таблицы отображения адресов потребовалось бы РОП больше чем под процессы), то отображение адресов выполняется на уровне блоков ОП.

Рисунок 1 . Динамическое преобразование адресов

Проблема: какую часть процессов держать в ОП, в некоторые моменты времени, выталкивая одни участки РОП и размещая другие.

Еще один вопрос, который необходимо решать: Каким сделать размер блока ?

Увеличение размера блока приводит к уменьшению размера таблицы отображения блоков, но увеличивает время обмена и, наоборот, уменьшение размера блока приводит к увеличению таблиц и уменьшению времени обмена с внешней памятью.

Блоки могут быть фиксированного размера (страницы) и переменного размера (сегменты). В этой связи существует четыре способа организации виртуальной памяти:

1.Динамическая страничная организация.

2.Сегментная организация.

3.Комбинированная сегментно-страничная организация.

4.Двухуровневая страничная организация.

Виртуальные адреса в страничных и сегментных системах являются двухкомпонентными и представляют собой упорядоченную пару (p,d ), где p - номер блока (страницы либо сегмента), в которой размещается элемент, а d - смещение относительно начального адреса этого блока. Преобразование виртуального адреса V=(p,d ) в адрес реальной памяти r осуществляется следующим образом. При активизации очередного процесса в специальный регистр процессора загружается адрес таблицы отображения блоков данного процесса. В соответствии с номером блока p из таблице отображения блоков , считывается строка, в которой устанавливается соответствие между номерами виртуальных и физических страниц для страниц, загруженных в оперативную память, или делается отметка о том, что виртуальная страница выгружена на диск. Кроме того, в таблице страниц содержится управляющая информация, такая как признак модификации страницы, признак невыгружаемости (выгрузка некоторых страниц может быть запрещена), признак обращения к странице (используется для подсчета числа обращений за определенный период времени) и другие данные, формируемые и используемые механизмом виртуальной памяти. К считанному физическому адресу размещения выбранного блока добавляется размер смещения d и вычисляется требуемый реальный адрес.

Рисунок 2. Преобразование виртуального адреса в реальной адрес памяти

Рассмотрим, в чем состоит стратегия управления виртуальной памятью? Аналогично управлению РОП для управления ВП имеется три категории стратегий, при имеющейся цели снизить ожидание страниц и располагать в РОП только используемые блоки.

Стратегия вталкивания , определяющая, когда следует переписать страницу или сегмент из внешней памяти в ОП.

а) вталкивание по запросу - система ожидает ссылки на страницу/сегмент от выполняющегося процесса (прерывание по отсутствию страницы);

аргументы за:


  • путь выполнения программы наверняка предсказать невозможно;

  • гарантия расположения в ОП только нужных страниц;

  • накладные расходы на определение требуемых страниц минимальны;
аргументы против:

  • подкачка по одному блоку приводит к увеличению общего времени ожидания.
б) упреждающее вталкивание предполагает, что система может предвидеть необходимость использования в дальнейшем страницы/сегмента. Если вероятность обращений высока и есть свободная ОП, то соответствующие блоки переписываются в ОП.

Достоинство: сокращается время ожидания.

В настоящее время быстродействие аппаратуры увеличивается , и неоптимальные решения не приводят к уменьшению эффективности вычислительных систем.

Стратегия размещения, определяющая, куда поместить поступающую страницу/сегмент. В страничных системах - тривиально: в любой свободный блок (страница имеет фиксированный размер). В сегментных системах те же самые стратегии, что и для реальной ОП (в первую подходящую область, в наиболее подходящую, в наименее подходящую).

Стратегия выталкивания (замещения), определяющая, какую страницу/сегмент удалить из ОП для освобождения места поступающей страницы.

Здесь основная проблема "пробуксовки ", при которой вытолкнутая страница в следующий момент должна вновь размещаться в РОП.

Рассмотрим процедуры определения блоков для выталкивания из ОП.

а) выталкивание случайной страницы - в реальных системах не применяется;

б) выталкивание первой пришедшей страницы (FIFO - очередь). Для ее реализации необходимо устанавливать временные метки страниц.

Аргумент : у страницы уже были возможности использовать свой шанс.

Фактически : большая вероятность заместить активно используемые страницы, поскольку нахождение страниц длительное время может означать, что она постоянно в работе. Например, используемый редактор текстов.

в) выталкивание дольше всего неиспользованных страниц.

Для реализации необходимо реализовать обновляемые временные метки. Эвристический аргумент : - недавнее прошлое - хороший ориентир на будущее.

Недостаток - существенные издержки: постоянное обновление временных меток.

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

д) выталкивание не использующихся в последнее время страниц - самыйраспространенный алгоритм с малыми издержками. Реализуется двумя аппаратными битами на страницу:

1.признак обращения 0 - было

1 - не было.

2.признак модификации записи 0 - неизменен.

1 - изменен.

Возможны следующие варианты комбинаций { 00,10,01,11}. Если изменений на странице не было , то страницу можно просто переписать, а не сохранять на диске.

Многопроцессорность вычислительных систем приводит к проблеме одновременного доступа к памяти со стороны нескольких процессоров. В зависимости от того, каким образом организована память многопроцессорной системы, различают:

1. Вычислительные системы с общей памятью (shared memory) – Мультипроцессоры:

i. PVP (CrayT90)

ii. SMP(Intel SHV, SunFire, Dec8400 и т.д.)

i. COMA (KSR-1, DDM)

ii. CC-NUMA (Stanford Dash, Data General и т.д.)

iii. NCC-NUMA (Crag T3E)

2. Вычислительные системы с распределенной памятью (distributed memory) – Мультикомпьютеры:

ii. MPP – слабосвязанные системы (Intel TFLOPS)

Различие между общей и распределенной памятью – это разница в структуре виртуальной памяти, то есть в том, как эта память выглядит со стороны процессоров. Другими словами, общую память от распределенной отличает то, каким образом подсистема памяти интерпретирует поступивший от микропроцессора адрес ячейки (глобальный адрес или локальный адрес).

Физически почти вся память разделена на автономные компоненты, доступ к которым может производиться независимо.

Рассмотрим модели архитектур памяти ВС, которые будут верны как для класса множественный поток данных MIMD, так и для SIMD:

UMA - ВС с общей памятью, где доступ любого процессора к памяти производится единообразно и занимает одинаковое время. Системы с однородным доступом к памяти:

Mp – общая память

Pi – процессор

Общая шина

Особенности: в каждый момент времени обмен по шине, может вести только один из процессоров. Производительность падает с увеличением количества процессоров. Чаще всего от 4 до 8 процессоров в системе, максимальная производительность = 2. Систему нельзя отнести к отказоустойчивым, так как отказ одного модуля памяти или процессора может привести к отказу всей системы.

В данном классе архитектур существуют многопроцессорные системы с памятью, состоящей из нескольких модулей. Шина заменена коммутатором, который маршрутизирует запросы процессора к одному из нескольких модулей памяти. При чём все модули памяти входят в единое адресное пространство. Достоинство – можно обрабатывать несколько запросов.

NUMA – неоднородный доступ к памяти. Здесь различают несколько классов. Используется единое адресное пространство, но каждый процессор имеет локальную память (как правило, кэш). Доступ к ЛП осуществляется гораздо быстрее, чем доступ к удаленной памяти через сеть или коммутатор.


COMA – только с кэш. Локальная память каждого процессора построена как большая кэш. Кэши всех процессоров в совокупности представляют собой глобальную память системы. Данные не привязаны статически к определенному модулю памяти и не имеют уникального адреса. Данные переносится в кэш процессора, который последним их запросил.



Главный недостаток: очень сложное управление, ОС не участвует в процессе управления (все задачи возлагаются на аппаратуру).

CC-NUMA – модель кэш-когерентного доступа к неоднородной памяти. Используется не кэш, а обычная физически распределенная память. Не требуется какого-либо программного обеспечения для сохранения множества обновленных данных. С этим справляется аппаратный уровень.

NCC-NUMA – модель предполагает использование единого адресного пространства, но не обеспечивает согласованности глобальных данных на аппаратном уровне. Управление возлагается на ПО, это считается недостатком, но модель наиболее перспективная с точки зрения повышения производительности.

Мультикомпьютеры – блоки, из которых строится система, представляют собой с процессором и памятью.

NORMA – архитектура без прямого доступа к удаленной памяти.


P – процессор

M – локальная память

K0 и K1 – контроллер ввода/вывода

Блоки – процессорные элементы. Из них собирают системы.

Каждый процессор в такой системе может обратиться к удаленной памяти только путем обмена сообщениями с процессорами, которым принадлежит адресуемая память. Все ПЭ по отношению друг к другу рассматриваются как устройства ввода-вывода.

Для посылки сообщений в другой процессорный элемент процессор формирует блок данных в своей локальной памяти и извещает свой локальный контроллер о необходимости передачи информации на внешнее устройство. По сети меж соединений это сообщение пересылается на приёмный контроллер, тот находит место в своей локальной памяти и уведомляет свой процессор о том, что оно поступило, а так же процессор-источник о получении сообщения.



Достоинства – при доступе к данным не возникает конкуренция за шину или коммутатор. Раз отсутствует общая шина, то нет ограничений на количество процессоров. В гораздо меньшей степени стоит проблема достоверности кэш. Каждый процессор в праве менять свой кэш и не согласовать свои действия с другими.

Недостатки: У каждого процессорного элемента есть система прерываний. От этого сложность обмена информацией (время на пересылку и формирование сообщения, время на формирование запросов прерываний и их обработку).

Организация памяти МПС. Сегментация памяти. Вычисление адреса. Внутренняя КЭШ память .

Память микропроцессорной системы выполняет функцию временно­го или постоянного хранения данных и команд. Объем памяти определяет допустимую сложность выполняемых системой алгоритмов, а также в некоторой степени и скорость работы системы в целом. Модули памяти выполняются на микросхемах памяти (оперативной или постоянной). Все чаще в составе микропроцессорных систем используется флэш-память (англ. – flash memory), которая представляет собой энергонезависимую память с возможностью многократной перезаписи содержимого.

Для подключения модуля памяти к системной магистрали используются блоки сопряжения, которые включают в себя дешифратор (селектор) адреса, схему обработки управляющих сигналов магистрали и буферы данных (рисунок7.4.1).

Рисунок 7.4.1. Схема подключения модуля памяти.

В пространстве памяти микропроцессорной системы обычно выделяются несколько особых областей, которые выполняют специальные фун­кции. К ним относятся:

– память программы начального запуска, выполненная на ПЗУ или флэш-памяти;

– память для стека или стек (Stack) – это часть оперативной памяти, пред­назначенная для временного хранения данных;

– таблица векторов прерываний, содержащая адреса начала программ обработки прерываний;

– память устройств, подключенных к системной шине.

Все остальные части пространства памяти, как правило, имеют универсальное назначение. В них могут располагаться как данные, так и программы (конечно, в случае одношинной архитектуры).

Часто простран­ство памяти делится на сегменты с программно изменяемым адресом начала сегмента и с установленным размером сегмента. Например, в процессоре Intel 8086 сегментирование памяти организовано следующим образом.

Вся память системы представляется не в виде непрерывного пространства, а в виде нескольких кусков – сегментов заданного размера (по 64 Кбайта), положение которых в пространстве памяти можно изменять программным путем.

Для хранения кодов адресов памяти используются не отдельные регистры, а пары регистров:

Сегментный регистр определяет адрес начала сегмента (то есть положение сегмента в памяти);

Регистр указателя (регистр смещения) определяет положение рабочего адреса внутри сегмента.

При этом физический 20-разрядный адрес памяти, выставляемый на внешнюю шину адреса, образуется так, как показано на рисунке7.4.2, то есть путем сложения смещения и адреса сегмента со сдвигом на 4 бита.

Рисунок 7.4.2. Формирование физического адреса памяти из адреса сегмента и смещения.

Положение этого адреса в памяти показано на рисунке7.4.3.

Рисунок 7.4.3. Положение физического адреса в памяти

Сегмент может начинаться только на 16-байтной границе памяти (так как адрес начала сегмента, по сути, имеет четыре младших нулевых разряда, как видно из рисунка 7.4.2), то есть с адреса, кратного 16. Эти допустимые границы сегментов называются границами параграфов.

Отметим, что введение сегментирования, прежде всего, связано с тем, что внутренние регистры процессора 16-разрядные, а физический адрес памяти 20-разрядный (16-разрядный адрес позволяет использовать память только в 64 Кбайт, что явно недостаточно).

Кэш–память располагается между основной памятью (ОП) и центральным процессором для снижения затрат времени на обращение ЦП к ОП.

Идея кэш-памяти основана на прогнозировании наиболее вероятных обращений ЦП к ОП. Наиболее «вероятные» данные и команды копируются в быструю, работающую в темпе ЦП, кэш-память до начала их непосредственного использования ЦП, так что обращение к данным и командам, используемым в текущий момент времени, может происходить быстро, без обращения к ОП. В основу такого подхода положен принцип локальности программы или, как еще говорят, гнездовой характер обращений, имея в виду, что адреса последовательных обращений к ОП образуют, как правило, компактную группу. При обращении к ОП в кэш-память копируются не отдельные данные, а блоки информации, включающие те данные, которые с большой степенью вероятности будут использованы в ЦП на последующих шагах работы. В связи с этим последующие команды выбираются ЦП уже не из ОП, а из быстрой кэш-памяти. Когда ЦП нужно считать или записать некоторое данное в ОП, он сначала проверяет его наличие в кэш-памяти. Эффективность кэш-системы зависит от размера блока и алгоритма программ.