К. Касперски - Техника оптимизации программ, Эффективное использование памяти (1127752), страница 23
Текст из файла (страница 23)
Отсутствие заряда на обкладках соответствует логическому нулю, а его наличие — логической единице. Транзистор же играет роль "ключа", удерживающего конденсатор от разряда. В спокойном состоянии транзистор закрыт, но стоит подать на соответствуюшую строку матрицы электрический сигнал, как спустя мгновение-другое (конкретное время зависит от конструктивных особенностей и качества изготовления микросхемы) он откроется, соединяя обкладку конденсатора с соответствующим ей столбцом.
Чувствительный усилитель (Белее АМР), подключенный к каждому из столбцов матрицы, реагируя на слабый поток электронов, устремившихся через открытые транзисторы с обкладок конденсаторов, считывает всю страницу целиком. Это обстоятельство настолько важно, что последняя фраза вполне заслуживает быть выделенной курсивом.
Именно страница является минимальной норцией обмена е ядром динамической памяти. Чтение/запись отдельно взятой ячейки невозможны! Действительно, открытие одной строки приводит к открытию всех, подключенных к ней транзисторов, а, следовательно, — разряду "закрепленных" за этими транзисторами конденсаторов. Хочешь не хочешь, — а читай всю строку за один раз целиком! к а с к Ю $ о е Р л а с~ а О с 1 < К ш О О) е о б ~ а (О <' Й л ш О о оперативная память а Ю с щ с о к 1 у Ф к с Я к с с о л с о о й Им с— й о. И$ о з й Ф $ о 2 д „' ° е Я <ц о. к Я Й Гпааа 2 Угол нмппантнровання ъ Направление пастнны ток отак зарядов сток аховая стенка канала зопнрующнй слой Рис.
2.6. Устройство ячейки современной микросхемы динамической памяти ...зтн шары содержат информацию, Их надо переписать на пленку, потому что онн разового действия. Молекулы после прослушивания снова приходят в хаос. Имею скафандр — готов путешествовать. Роберт Халлайн Чтение ячейки деструктивно по своей природе, поскольку Белке АМР (чувствительный усилитель) разряжает конденсатор в процессе считывания его заряда.
"Благодаря" этому динамическая память представляет собой память разового действия. Разумеется, такое положение дел никого устроить не может, и потому во избежание потери информации считанную строку приходится тут же перезаписывать вновь. В зависимости от конструктивных особенностей эту миссию выполняет либо программист, либо контроллер памяти, либо сама микросхема памяти. Практически все современные микросхемы принадлежат к последней категории. Редко какая из них поручает эту обязанность контроллеру, и уж вообще никогда перезапись не возлагается на программиста. Ввиду микроскопических размеров, а, следовательно, и емкости конденсатора записанная на нем информация хранится крайне недолго — буквально сотые, а то и тысячные доли секунды.
Причина тому — саморазряд конденсатора. Несмотря на использование высококачественных диэлектриков с огромным удельным сопротивлением заряд стекает очень быстро, ведь количество электронов, накопленных конденсатором на обкладках, относи- Оперативная память 105 тельно невелико. Для борьбы с "забывчивостью" памяти прибегают к ее регенерации — периодическому считыванию ячеек с последующей перезаписью. В зависимости от конструктивных особенностей "регенератор" может находиться как в контроллере, так и в самой микросхеме памяти. Например, в компьютерах ХТ/АТ регенерация оперативной памяти осуществлялась по таймерному прерыванию каждые 18 мс через специальный канал контроллера РМА (Вйгесг Мегпогу Ассезз, прямого доступа к памяти). Всякая попытка "замораживания" аппаратных прерываний на больший срок приводила к потере и/или искажению оперативных данных, что не очень-то радовало программистов, да к тому же снижало производительность системы, поскольку во время регенерации память была недоступна.
Сегодня же регенератор чаше всего встраивается внутрь самой микросхемы, причем перед регенерацией содержимое обновляемой строки копируется в специальный буфер, что предотвращает блокировку доступа к информации. СопчепМопа! 0ЯАМ (Раде Моде 0ВАМ)— "обычная" 0ЯАМ Разобравшись с устройством и работой ядра памяти, перейдем к рассмотрению ее интерфейса. Внешне микросхема памяти (не путать с модулями памяти — о них речь еще впереди) представляет собой прямоугольный керамический "ощетинившийся" с двух (реже — с четырех) сторон множеством выводов (ножек) корпус. Что же зто за выводы? В первую очередь выделим среди них лынии адреса и линяя дааиых. Линии адреса, как и следует из их названия, служат для выбора конкретной ячейки памяти, а линии данных — для чтения и для записи ее содержимого.
Необходимый режим работы определяется состоянием специального вывода %Š— %г(ге Епаые (Разрешение Записи) (см. рис. 2.4). Низкий уровень (активный) сигнала %Е готовит микросхему к считыванию состояния линий данных и записи полученной информации в соответствующую ячейку, а высокий, наоборот, заставляет считывать содержимое ячейки и выдавать его в линию данных. Такой трюк значительно сокращает количество выводов микросхемы, что в свою очередь уменьшает ее габариты. А чем меньше габариты, тем выше предельно допустимая тактовая частота. Почему? О, тут замешан целый ряд физических явлений и эффектов.
Во-первых, в силу ограниченной скорости распространения электрических сигналов длины проводников, подведенных к различным ножкам микросхемы, должны не сильно отличаться друг от друга, иначе сигнал от одного вывода будет опережать сигнал от другого. Во-вторых, эти самые длины не должны быть очень велики — в противном случае задержка распространения сигнала "съест" все быстродействие. В-третьих, любой проводник действует как приемная и как передающая ан- 10б Глава 2 тенна, причем это воздействие резко усиливается с ростом тактовой частоты.
Паразитному антенному эффекту можно противостоять множеством способов (например, путем перекашивания сигналов в соседних разрядах), но самой радикальной мерой бьшо и до сих пор остается сокращение длин и количества проводников. Наконец, в-четвертых, всякий проводник обладает электрической емкостью. А емкость и скорость передачи данных — несовместимы! Вот только один пример: "первый трансатлантический кабель для телеграфа был успешно проложен в 1858 году, когда напряжение прикладывалось к одному концу кабеля, оно не появлялось немедленно на другом конце и вместо скачкообразного нарастания достигало сгпабильнаго значения после некоторого периода времени. Когда снимали напряжение, напряжение приемного конца не падало резко, а медленно снижалось.
Кабель вел себя как губка, накапливая электричество. Эта свойство мы теперь называем емкостью" ~. Таким образом, совмещение выводов микросхемы увеличивает скорость обмена с памятью, но не позволяет осуществлять чтение и запись одновременно. (Забегая вперед, отметим, что, размещенные внутри кристалла процессора микросхемы кэш-памяти благодаря своим микроскопическим размерам на количество выводов не скупятся и беспрепятственно считывают ячейку во время записи другой.) Столбцы и строки матрицы памяти тем же самым способом совмещаются в единых адресных линиях. В случае квадратной матрицы количество адресных линий сокращается вдвое, но и выбор конкретной ячейки памяти отнимает вдвое больше тактов, ведь номера столбца и строки приходится передавать последовательно. Причем, возникает неоднозначность, что именно в данный момент находится на адресной линии: номер строки или номер столбца? А, быть может, и вовсе ничего не находится? Решение этой проблемы потребовало двух дополнительных выводов, сигнализируюших о наличии столбца или строки на адресных линиях и названных соответственно КАБ (Вотч АгЫгезз БтгоЬе — строб адреса строки) и САЯ (Со!шпп АгЫгезз Б1гоЬе — строб адреса столбца).
В спокойном состоянии, когда сигналы сброшены, на обоих выводах поддерживается высокий уровень сигнала„что указывает микросхеме: никакой информации на адресных линиях нет и никаких действий предпринимать не требуется. "Установка" сигнала — это перевод его в активное состояние, а "сброс" — в пассивное. При этом сигнал может иметь активный высокий или низкий уровень в зависимости от самого сигнала. В обозначении сигнала черта над его наименованием (либо минус или знака впереди) указывает на его активный низкий уровень.
т Цитата нз Интернета. — Ред. Оперативная память У07 Но вот программист хочет прочесть содержимое некоторой ячейки памяти. Контроллер преобразует физический адрес в пару чисел — номер строки и номер столбца, а затем посылает первый из них на адресные линии. Дождавшись, когда сигнал стабилизируется, контроллер устанавливает сигнал КАВ (перводит в низкий уровень), сообщая микросхеме памяти о наличии информации на линии. Микросхема считывает этот адрес и подает на соответствующую строку матрицы электрический сигнал. Все транзисторы, подключенные к этой строке, открываются и бурный поток электронов, срываясь с насиженных обкладок конденсаторов, устремляется на входы чувствительного усилителя (Бепзе АМР).