Память

Память.

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

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

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

В настоящее время широкое распространение получили устройства динамической памяти базирующиеся на способности сохранять электрический заряд. Эти устройства - конденсато­рами.

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

В современных персональных компьютерах динамическая память реализуется на базе специальных цепей проводников, заменивших обычные конденсаторы. Большое количество таких цепей объединяются в корпусе одного динамического чипа. Од­нако подобно памяти на конденсаторах, она должна постоянно освежаться.

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

Кроме оперативной памяти существует ещё и постоянная память(ПЗУ). Её главное отличие от ОЗУ - невозможность в процессе работы изменить состояние ячеек ПЗУ. В свою оче­редь и эта память делится на постоянную и репрограммируе­мую. Принципы её функционирования понятны из названия.

Эволюция микросхем ОЗУ вплотную связана с эволюцией персональных компьютеров. Для успеха настольных компьютеров требовались миниатюрные чипы ОЗУ. По мере увеличения ём­кости памяти цена скачкообразно возрастала, но потом посто­янно уменьшалась по мере отработки технологии и роста объ­ёмов производства.

Первые PC реализовывались на стандартных RAM-чипах по 16 Кбит. Каждому биту соответствовал свой собственный ад­рес.

Где-то около года после представления XT появилось ОЗУ с большими возможностями и более эффективное с точки зрения его цены. Хотя новые микросхемы могли вмещать по 64 Кбит, она были дешевле чем 4 по 16 Кбит. Системная плата PC была создана с учётом использования новых микросхем памяти. Че­рез несколько лет 64 Кбитные чипы стали настолько широко распространены, что стали дешевле чем 16 Кбитные микросхе­мы.

К 1984 году был сделан ещё один шаг по увеличению объ­ёма памяти в одном корпусе - появились 256 - Кбитные мик­росхемы. И RAM чипы этого номинала были установлены на пер­вых AT. А сегодня микросхемы в 1 Мбит стали обычным явлени­ем.

PC имел довольно простую архитектуру памяти, по край­ней мере, если на неё смотреть сейчас с высоты последних достижений компьютерной индустрии. Память PC была представ­лена одним блоком, в котором каждый байт был доступен по указанию его адреса.

Микросхемы памяти были разбиты на 9 банков, использую­щих в ранних PC 16-Кбитные, а затем и 64-Кбитные микросхе­мы. Восемь микросхем выделяли по одному биту для организа­ции каждого байта памяти, девятая микросхема использовалась в качестве контрольного бита чётности.

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

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

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

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

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

Не всякая кэш-память равнозначна. Большое значение имеет тот факт, как много информации может содержать кэш-память. Чем больше кэш-память, тем больше информации может быть в ней размещено, а следовательно, тем больше ве­роятность, что нужный байт будет содержаться в этой быстрой памяти. Очевидно, сто самый лучший вариант - это когда объ­ём кэш-памяти соответствует объёму всей оперативной памяти. В этом случае вся остальная память становится не нужной. Крайне противоположная ситуация - 1 байт кэш-памяти - тоже не имеет практического значения, так как вероятность того, что нужная информация окажется в этом байте, стремится к нулю. Практически, диапазон используемой кэш-памяти колеб­лется в пределах 16-64К.

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

Целостность памяти - это одна из самых больших проблем разработчиков кэш-памяти.

Все вопросы по преодолению этих проблем были возложены на отдельную микросхему - кэш-контроллер Intel82385.

Ещё одна разновидность архитектуры оперативной памяти компьютера - это её разбивка на отдельные секции и работа с этими секциями как с малой кэш-памятью. Большая скорость доступа к ограниченным областям памяти является особен­ностью некоторых специфических микросхем, которые позволяют некоторому объёму, но не всей памяти, быть считанному без цикла ожидания. Этот подход требует специальных RAM мик­росхем, которые делят свои адреса по страницам. Эта техно­логия получила название режима страничного доступа. Эти специальные микросхемы обеспечивают очень быстрый доступ в одном из двух направлений их организаций. Если требуется чтение или запись информации, хранящейся на определённой странице памяти, и предыдущая команда по работе с памятью использовала информацию с той же страници, цикла ожидания не требуется. Однако при переходе с одной страници на дру­гую циклы ожидания неизбежны.

Следующая интересная технология, названная interleavid mtmory, очень похожа на ОЗУ страничного режима. Она сущест­венно повышает скорость обращения к памяти, но не имеет ограничений по страничной разбивке. При использовании этой технологии вся оперативная память разбивается на два или большее число банков. Последовательность битов хранится в разных банках, поэтому микропроцессор обращается то у одно­му то к другому банку при чтении этой последовательности. Во время обращения к одному банку, другой реализует цикл обновления, и поэтому процессору не приходится ждать. И только, если микропроцессору приходится читать несмежные биты, статус ожидания неминуем, но вероятность его появле­ния уменьшается.

Наиболее типовая реализация этой технологии представ­ляется разбивкой оперативной памяти на два банка, А следо­вательно, вероятность возникновения ожидания - 50%. Четы­рёхбанковая организация уменьшает эту вероятность до 25%.

Так как данная технология не требует применения специ­альных микросхем памяти, она является наиболее удобной для повышения скорости системы. Кроме того она может совме­щаться с ОЗУ страничного режима, что ещё больше увеличивает оперативность.

Логическая организация памяти. Фундаментальные решения были приняты при разработке

первых PC. Для того, чтобы микропроцессор 8088 мог пользо­ваться, она должна быть адресуемой. И этот микропроцессор должен обладать возможностью адресоваться к 1М. Конструкто­ры IBM решили выделить специальные области памяти для спе­цифически целей. Они разделили всю память на разделы, и каждый раздел предназначался для реализации своих функций. Результирующая диаграмма названа картой памяти.

При разработке PC половина всей памяти была зарезерви­рована. Верхняя половина адресного пространства, была выде­лена для содержания кодов BIOS и для прямого процессорного доступа к памяти, используемой видеосистемой. Первые несколько Кбайт были зарезервированы под информацию о системе и расположение конкретных секций кодов, которые вы­полнялись на момент возникновения прерываний программного обеспечения. Эти ячейки памяти называются векторами преры­вания, а функция программного кода - механизмом прерывания.

В конце адресного пространства располагается буфер ко­авиатуры - номиналом 16 байт. Здесь хранятся 16 последних символов введённых с клавиатуры. Этот буфер нужен для сох­ранения набранного текста во время, когда процессор занят другой задачей, после того как он освободится, текст будет обработан. Омерзительный писк компьютера означает - буфер переполнен и дальнейший набор бессмысленен.

Кроме того, различные системные флаги, указывающие на внутреннее состояние системы, также хранятся в нижнем раз­деле памяти.

В те дни, когда большенство компьютеров имели 60К па­мяти, 512К казались царской щедростью. Поэтому 128К были отданы под юрисдикцию программного обеспечения, остальные 384К от начала адресного пространства, предназначались для использования программами BIOS и видеопамятью.

Эти решения выделяли 640К для DOS - это был максимум адресуемого пространства, которым мог оперировать 8088 при выполнении программ. Со временем эти 640К были названы ба­зовой памятью, потому что это является основополагающим стандартом, на котором должны базироваться все IBM сов­местимые системы.

Дополнительная память

Память, выходящаяза пределы 1 Мб адресуемого прост­ранства 8088, которая может стать доступной в защищенном режиме Intel 80286 и 80386, обычно называется дополнитель­ной памятью, хотя IBM иногда называет эту память расширен­ной (expanded). Но большинство авторов использует термин (extnded). Вплоть до 15 Мб дополнительной памяти может быть прибавлено в компьютеры на 80286 микропроцессоре, и до 4 Гб с 80386. Наиболее существенным различием базовой и дополни­тельной памяти яляется то, что программы, работающие в ре­альном режиме, не могут выполняться в дополнительной памя­ти. А так как DOS написан для реального режима, ему прихо­дится обходиться только базовой памятью.

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

Так как OS/2 может функционировать в защищенном режи­ме, ей доступны все ресурсы дополнительной памяти. Однако стоит напомнить, что, когда OS/2 использует подпрограммы старушки DOS, ей приходится довольствоваться ограничениями памяти реального режима в 640 Кб.

В апреле 1985 года несколько месяцев спустя после представления первых AT с несколькими М дополнительной па­мяти - главное издательство по программному обеспечению и разработчик технического обеспечения сформулировали свой собственный метод преодаления ограничения в 640К старых компьютеров на 8088 микропроцессоре, работающих в DOS. Че­рез несколько месяцев к ним присоеденилась и Microsoft Corporation. Их разработка названа Lotus-Intel-Microsoft Expanded Memory Specification или LIM память, или EMS, или просто расширенная память. Первая версия была названа EMS

3.0, чтобы указать на совместимость с тогда последней версией DOS.

Новая система отличалась как от базовой памяти, так и от дополнительной. Она не была в пределах адресного прост­ранства центрального микропроцессора. Её работа основыва­лась на специальной схеме технического обеспечения, которая функционировала наподобие переключателя. Это устройство пе­реключало банки памяти из нормального адресного прост­ранства 8088 микропроцессора, где чип мог читать и писать в неё. Эта схема, названная переключателем банков, не была ни новой ни необычной. Подобное устройство использовалося в компьютерах на Z80 для преодоления лимита в 64К.

Первые EMS имели дело с расширенной памятью, разбитой на банки по 16К.

Представление AT с потенциально адресуемыми 16М зотми­ло EMS, пока тяжелая действительность недоступности допол­нительной памяти была до конца осознана. Даже несколько имеющихся программ, которые могли пользоваться достоинства­ми EMS, были более полезны чем драйвер VDISK , который был единственной совместимой с DOS программой, позволяющей использовать дополнительную память.

Все программное обеспечение EMS можно было разделить на две группы. Первая использует возможности 80386 работать с картами памяти вертуальных страниц. Вторая копирует банки в 16К из дополнительной памяти в основную. Хотя оба типа программ эффективно используются, Lotus заявляет, что системы использующие копирование блоков программ, не могут обеспечить полную корректную реализацию EMS.



Подобные работы:

Актуально: