Память

Память.

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

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

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

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

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

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

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

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

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

Первые 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.

Вместе с этим смотрят:

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