Типы памяти
Для работы компьютера обязательно нужна память, т.к. требуется хранить и команды, и данные.
Есть разные типы памяти.
Есть память с произвольным доступом (Random Access Memory (RAM)). Если есть набор каких-то элементарных ячеек. Каждой из них приписан како-то адрес. К содержимому такой ячейки можно обращаться по ее адресу (можно прочитать или записать в нее). При этом время доступа не зависит от того, где конкретно локализована ячейка. Оно одинаково для всех ячеек. Это основное свойство.
Есть последовательная память. Порядок считывания информации из такой памяти одназначно определен записью.
Для BIOS исполизуется так называемая ROM – Read Only Memory. Это память с произвольным доступом, но только на чтение. В ROM должны быть записаны куски ОС.
RAM делится на статическую - SRAM (Static RAM) и динамическую - DRAM (Dynamic RAM).
Сначала появилась ROM, которую можно запрограммировать, но ее нельзя перепрограммировать, можно только сменить на новую. Потом появились перепрограммируемые (но не в составе ЭВМ). Сейчас есть ROM, которые можно перепрограммировать в составе ЭВМ. Они отличаются по тому, как происходит стирание и запись новой информации.
Память – регулярная структура. Поэтому у нее степень интеграции самая высокая. Для повышения степени интеграции применяют CMOS логику (она допускает самую большую степень интеграции). Статическая потребляемая мощность = 0, динамическая пропорциональна частоте, емкости и квадрату U.
RAM
Общая структура.
ДШ –дешифратор.
Запоминающие ячейки объединяются в матрицу, в которой можно выделить строки и столбцы. Пусть в матрице m строк и n столбцов.
Дешифратор – устройство, у которого n входов и 2 в степени n выходов. Причем "1" может быть только на одном из выходов дешифратора. Дешифратор можно сделать на самой простой логике, используя схемы ИЛИ, НЕ.
Можно задать адрес строки и адрес столбца и выбрать конкретную величину, но делается не так. Читаются все элементы, находящиеся в i-ой строке, и подаются на соответствующий усилитель. Он нужен для того, чтобы привести выходные сигналы к уровням, которые нам нужны. Задавая адрес столбца, мы уже выбираем конкретную ячейку в этой строке. На выходе появляется информация только с этой ячейки.
Что представляет из себя элементарная ячейка?
2 инвертора, выход одного подключен на вход другого.
Чтобы МОП транзистор р типа был открыт необходимо отрицательное напряжение между затвором и истоком. А для того, чтобы был открыт транзистор n типа, наоборот, напряжение между затвором и истоком должно быть положительное.
Как задавать информацию? Эта схема такова, что на левом выходе может быть либо "0", либо "1", а на правом выходе – противоположное значение.
Как изменять состояние? Возможный вариант – использовать выходы у1 и у2 и чтобы считывать информацию, и чтобы записывать. Тем самым мы сразу уменьшим число выходов.
Пусть ситуация такова:
у1="1" = VD
y2="0" = 0
Если подать на у1 "0", то система перейдет в противоположное состояние. Обычно для записи подаются сразу 2 сигнала – одновременно меняют напряжение на входах у1 и у2 на противоположное. Тогда переход из одного состояния в другое происходит быстрее.
Как объединять эти элементарные ячейки? Для этого поставим в ячейку ключ. Это элементарная ячейка. Теперь нет проблем объединить у1, у2.
Если на линию Select подать "0", то ключ закрыт, и ячейка к линии данных не подсоединится. Если подать "1", то ячейка будет подсоединена. Это означает, что можно подсоединить много таких ячеек. Тогда подсоеднение к линии В и происходит соответствующим выбором Select этих ячеек. Когда задается строка, подсоединяется много элементов.
Это дает возможность к линии бит подключить вполне определенную ячейку.
Чтобы соединить линии В ячеек, нужны какие-то дополнительные ключи и дополнительный адрес.
Таким образом мы можем получить высокую степень интеграции.
К линии В подсоединено много ячеек (все элементы находящиеся в строке) => сама линия в и длинные. Это означает, что емкость велика и сопротивление линии.
Если на линии В был "0", а потом стала "1", то емкость линии В будет заряжаться. В результате, учитывая, что память имеет много элементов, получаем плохое быстродействие.
Одно из самых простых решений этой проблемы: Длина линии В определяется количеством элементов. Реально, большая память состоит из блоков. И адрес – это по сути дела адрес строки, столбца в блоке и адрес блока. Т.е. мы выбираем блок, а внутри блока - соответствующую ячейку. Тем самым мы уменьшаем длину.
До сих пор, когда мы говорили о CMOS логике, мы считали, что напряжение логического 0 = 0, а напряжение логической единицы = VD.
На входе
Если нас интересовала бы задержка не от 0,1 VD до 0,9 VD, а от 0 до 0,2V, мы бы выиграли в быстродействии.
Если мы просто возьмем микросхему, у которой очень маленький зазор между двумя логическими состояниями, то это грозит тем, что помехоустойчивость будет маленькой. Есть другой выход – можно взять дифференциальный усилитель.
Относительно чего считать разность? Если относительно 0 – получится то же самое, что и без дифференциального усилителя. Реально на линии В и подается напряжение = половина VD. А когда считывается ячейка, на одной линии сигнал немножко возрастает, а на второй немножко уменьшается (изменения порядка 0,2V), а разность будет большой.
При этом статическая мощность = 0, а динамическая равна произведению частоты на емкость и на квадрат изменения напряжения на линии. С большая.
Этот принцип работает не только для RAM.
Это статическая память. Когда речь идет о статической памяти, большого объема быть не может. Используется так называемая динамическая. Кроме триггера, для хранения информации можно использовать конденсатор. Если зарядить идеальный конденсатор, то заряд будет храниться на нем. На самом деле это не так потому, что всегда есть утечка. Конденсатор – 2 металлические пластины и между ними диэлектрик. У диэлектрика большое, но конечное сопротивление. Через некоторое время конденсатор разрядится. Это означает, что информация там долго не хранится и ее надо перезаписывать. При считывании данных также надо восстанавливать значение. Поэтому тут тоже идет борьба за быстродействие.
Объем динамической памяти большой. Но есть свои недостатки (необходимость восстановления информации).
Соединяются элементарные ячейки памяти также.
Если надо записать информацию, необходимо на линию бит подать напряжение VD, открыть транзистор. Емкость С начнет заряжаться. После этого убирается сигнал Select, транзистор закрывается. Сопротивление закрытого транзистора большое, и вроде бы емкость оторвана от линии. Но бесконечно долго хранить информацию она не может – она разряжается, и через какое-то время информацию надо будет восстанавливать.
При восстановлении надо считать информацию из ячейки (а это заведомо разрушает информацию), записать ее снова.
Структура памяти та же, но адрес организован немного по-другому потому, что микросхема имеет больший объем, адрес большой, и, следовательно, дешифратор очень громоздкий. Поэтому стараются количество адресных выводов сделать поменьше. Сначала задается адрес строки. Он сопровождается сигналом синхронизации RAS (Row Address Select). Этот адрес запоминается внутри микросхемы. Выбирается вся строка целиком. Для выбора конкретного элемента надо задать адрес столбца по тем же линиям. Если матрица квадратная, то число адресных линий равно, если она прямоугольная, то они могут отличаться. Это первое отличие. После этого необходим сигнал WR (RD).
Рассмотрим процесс считывания. Беда в том, что на емкости С нет фиксированного напряжения потому, что емкость разряжается. При считывании на линию В подается напряжение VD/2. К ней подключается соответствующий конденсатор С. Если напряжение на конденсаторе больше чем VD/2 то напряжение на линии немножко увеличится, если меньше – уменьшится. По сути дела мы не измеряем напряжение, а фиксируем, по какую сторону оно от VD/2. Если напряжение меньше, чем VD/2, то в ячейке "0". Если емкость не была заряжена, то не надо думать, что она так и будет не заряжена. За счет обратных токов в полевом транзисторе она может заряжаться. Если оставить емкость с напряжением на ней = 0, то через какоето время на ней будет напряжение, которое равно напряжению В. Надо определить, что произошло. Если разряд емкости, то была записана "1". Если заряд емкости, то был записан "0".
Как и раньше, при подаче сигнала адреса и сигнала RAS считываются все элементы, находящиеся на строке. Восстанавливается информация во всех этих элементах. Далее, задавая адрес столбца, выбирается конкретный элемент, в который записываем информацию.
Для того, чтобы регенерировать схему не надо выбирать каждую ячейку (это было бы очень долго). Достаточно для перезаписи информации достаточно использовать сигнал RAS, а сигнал адреса столбца не нужен. При этом читается вся строка и перезаписывается.
При считывании информации на линии бит напряжение будет либо чуть меньше VD/2, либо чуть больше VD/2. Количество элементов подсоединенных к линии В очень большое.
Пусть на емкости С – "1", а напряжение на линии В = 0. Подсоединили. На емкости Св
Дата добавления: 2015-08-21; просмотров: 645;