Память
Last updated
Was this helpful?
Last updated
Was this helpful?
Чтобы создать один бит памяти, нужна схема, которая будет запоминать предыдущие входные значения. Такую схему можно сконструировать из двух вентилей НЕ-ИЛИ(рисунок (а)) и называется она SR - защелкой. Выходные сигналы данной схемы не определяются входными.
S - setting(установка)
R - resetting(сброс)
Дальше идет объяснение как все работает, какие выходы при каких входах, по схеме итак все понятно, думаю можно не описывать.
Часто бывает удобно, чтобы состояние защелки могло изменяться только в определенные моменты. Чтобы достичь этой цели, немного изменим основную схему и получим синхронную SR-защелку
Подчеркнем еще раз отличие между триггером и защелкой. Триггер запускается перепадом сигнала, а защелка запускается уровнем сигнала.
Рисунок (а) - защелка, состояние которой загружается тогда, когда синхронизирующий сигнал CK (от слова clock) равен 1
Рисунок (б) - защелка, синхронизирующий сигнал обычно равен 1, но который переходит на 0, чтобы загрузить состояние из линии D.
Рисунок (в) - триггер, изменяет состояние на фронте синхронизирующего импульса (переход от 0 к 1), тогда как триггер на
Рисунок (г) - триггер, изменяет состояние на спаде (переход от 0 к 1).
Триггеры похожи на защелки, но на синхронизирующем входе есть уголок.
8-разрядный регистр может использоваться в качестве структурного элемента для построения регистров большей разрядности. Например, 32-разрядный регистр может быть построен из двух 16-разрядных регистров, для чего следует связать их синхронизирующие линии CK и линии сброса CLR.
Такая 12-разрядная память требует меньшего количества выводов, чем 8-разрядный регистр, поскольку в отличие от регистра 4 бита памяти совместно используют один выходной сигнал. Состояние адресного входа определяет, каким четырем битам памяти разрешается ввод или вывод значения.
Мы могли бы разработать схему, в которой три вентиля ИЛИ соединялись бы с тремя линиями вывода данных, но это вызвало бы некоторые проблемы. Мы рассматривали линии ввода данных и линии вывода данных как разные линии. На практике же используются одни и те же линии. Если бы мы связали вентили ИЛИ с линиями вывода данных, микросхема пыталась бы выводить данные (то есть задавать каждой линии определенную величину) даже в процессе записи, мешая нормальному вводу данных. По этой причине желательно каким-то образом соединять вентили ИЛИ с линиями вывода данных при считывании и полностью разъединять их при записи. Для этого существует буферный элемент без инферсии.
Когда сигналы CS, RD и OE равны 1, то сигнал разрешения выдачи выходных данных также равен 1, в результате запускаются буферные элементы, и слово помещается на выходные линии. Когда один из сигналов CS, RD и OE равен 0, выходы отсоединяются от остальной части схемы.
Примеры современных микросхем:
Итого:
Приконструкирование микросхем нужно учитывать два несвязанных аспекта
Второй аспект - способ представления битов адресса
Биты адресов могу быть представлены одновременно на разных выводах
Может быть последовательное представление строк и столбцов
Существует два типа ОЗУ(RAM Random Access Memory — оперативная память):
Статическое ОЗУ (Static RAM, SRAM) конструируется с использованием D-триггеров. Информация в ОЗУ сохраняется на протяжении всего времени, пока к нему подается питание. Статическое ОЗУ работает очень быстро. Обычно время доступа составляет несколько наносекунд. По этой причине статическое ОЗУ часто используется в качестве кэш-памяти второго уровня. Требуется в лучшем случае 6 транзисторов на бит.
Динамическое ОЗУ(Dynamic RAM, DRAM) представляет собой массив ячеек, каждая из которых содержит один транзистор и один крошечный конденсатор(из-за этого имеет очень высокую плотность записи(много битов на одну микросхему)). Конденсаторы могут быть заряженными и разряженными, что позволяет хранить нули и единицы. Поскольку электрический заряд имеет тенденцию исчезать, каждый бит в динамическом ОЗУ должен обновляться (перезаряжаться) каждые несколько миллисекунд, чтобы предотвратить утечку данных. Поскольку об обновлении должна заботиться внешняя логика, динамическое ОЗУ требует более сложного сопряжения, чем статическое, хотя этот недостаток компенсируется большим объемом. Работает очень медленно.
Существует несколько типов DRAM.
FPM(Fast Page Mode — быстрый постраничный режим, самый древний тип, который еще используется). Это ОЗУ представляет собой матрицу битов. Аппаратное обеспечение представляет адрес строки, а затем — адреса столбцов. Благодаря явно передаваемым сигналам память работает асинхронно по отношению к главному тактовому генератору системы.
ПЗУ(ROM Read-Only Memory — постоянная память). ПЗУ не позволяют изменять и стирать хранящуюся в них информацию (ни умышленно, ни случайно). Данные записываются в ПЗУ в процессе производства. Для этого изготавливается трафарет с определенным набором битов, который накладывается на фоточувствительный материал, а затем открытые (или закрытые) части поверхности вытравливаются. Единственный способ изменить программу в ПЗУ — поменять всю микросхему.
PROM(программируемые ПЗУ, programmable ROM) - можно программировать в условиях эксплуатации. Многие программируемые ПЗУ содержат массив крошечных плавких перемычек. Чтобы пережечь определенную перемычку, нужно выбрать требуемые строку и столбец, а затем приложить высокое напряжение к определенному выводу микросхемы.
EPROM(стираемое программируемое ПЗУ, ERasable PROM) - можно не только программировать в условиях эксплуатации, но и стирать с него информацию. Если кварцевое окно в данном ПЗУ подвергать воздействию сильного ультрафиолетового света в течение 15 минут, все биты установятся в 1. Если нужно сделать много изменений во время одного этапа проектирования, стираемые ПЗУ гораздо экономичнее, чем обычные программируемые ПЗУ, поскольку их можно использовать многократно. Стираемые программируемые ПЗУ обычно устроены так же, как статические ОЗУ.
Краткое описание различных типов памяти
Тип запоминающего устройства
Категория
Стирание информации
Изменение информации по байтам
Необходимость питания
Применение
RAM
Чтение и запись
Электрическое
Да
Да
Кэш-память второго уровня
DRAM
Чтение и запись
Электрическое
Да
Да
Основная память(старые модели)
SDRAM
Чтение и запись
Электрическое
Да
Да
Основная память(новые модели)
ROM
Только чтение
Невозможно
Нет
Нет
Устройства большого объема
PROM
Только чтение
Невозможно
Нет
Нет
Устройства нбольшого объема
EPROM
Преимущественно чтение
Ультрафиолетовый свет
Нет
Нет
Построение прототипов устройств
EEPROM
Преимущественно чтение
Электрическое
Да
Нет
Построение прототипов устройств
Флэш-память
Чтение и запись
Электрическое
Нет
Нет
Цифровые камеры
FPGA - программируемые вентильные матрицы - микросхемы с программируемой логикой, загрузив в FPGA подходящие конфигурационные данные, можно получить произвольную логическую схему. Главное преимущество FPGA — возможность построения новых аппаратных схем за считанные часы (вместо месяцев, уходящих на производство микросхем).
Микросхема FPGA состоит из двух основных компонентов, многократно повторяемых в ее архитектуре: таблиц преобразования LUT (LookUp Table) и программируемых связей.
Главное - установка значения , не вызовет изменений, если состояние защелки - 1, т.е. , если изменить на , происходит изменение. То есть, если принимает значение , то независимо от предыдущего значения. таким же образом , . То есть схема запоминает какой сигнал был последним.
Эта схема имеет дополнительный синхронизирующий вход, который по большей части равен . Если этот вход равен , то оба выхода вентилей И равны . Когда значение синхронизирующего входа равно , действие вентилей И прекращается, и состояние защелки становится зависимым от S и R. Для обозначения факта появления единицы на синхронизирующем входе часто используются термины включение и стробирование.
До сих пор мы не выясняли, что происходит, когда . И по понятным причинам: когда и , и в конце концов возвращаются к , схема становится недетерминированной. Единственное приемлемое состояние при — это , но как только оба входа возвращаются к , защелка должна перейти в одно из двух устойчивых состояний. Если один из входов принимает значение раньше, чем другой, оставшийся в состоянии «побеждает», потому что именно единичный вход управляет состоянием защелки. Если оба входа переходят к одновременно (что очень маловероятно), защелка выбирает одно из своих устойчивых состояний произвольным образом.
Чтобы разрешить ситуацию с неопределенностью SR-защелки (неопределенность возникает в случае, если ), нужно предотвратить ее возникновение.
Поскольку вместо второго вход у нас инвертор, ситуация когда оба входа равны 1 не произойдет. Защелка запоминат значение входа . Если , , если , , при условии, что . Схема, представляет собой память объемом один бит. Схема требует транзисторов.
Многие схемы при необходимости выбирают значение на определенной линии в заданный момент времени и запоминают его. В такой схеме, которая называется триггером (flip-flop), смена состояния происходит не тогда, когда синхронизирующий сигнал равен , а при переходе синхронизирующего сигнала с на (подъем) или с на (спад). Следовательно, длина синхронизирующего импульса не имеет значения, поскольку переходы происходят быстро.
Данная схема генерирует короткий импульс. Как? Вначале , участок , . Меняем , , а для того чтобы импульс прошел через инвертор и изменил значеие , нужно намного больше времени, чем для того, чтобы значение изменилось, поэтому возникают небольшой промежуток времени когда . Этот временной сдвиг означает, что D - защелка активизируется с определенной задержкой после подъема синхронизирующего импульса.
Многие (хотя не все) защелки и триггеры также имеют выход , а у некоторых есть два дополнительных входа: Set (установка) или Preset (предварительная установка) и Reset (сброс) или Clear (очистка). Первый вход (Set или Preset) устанавливает Q = 1, а второй (Reset или Clear) — Q = 0.
Регистр получает 8-разрядное входное значение () при изменении синхронизирующего сигнала CK. Все синхронизирующие линии связаны с одним входным сигналом CK, чтобы при изменении состояния CK регистр получал новое 8-разрядное значение данных с входной шины. Инвертирующие входы аннулируются инвертором, связанным с CK, поэтому триггеры запускаются при переходе от 0 к 1. Все восемь сигналов очистки тоже объединены, поэтому когда сигнал сброса CLR переходит в состояние 0, все триггеры переходят в состояние 0. Если вам не понятно, почему синхронизирующий сигнал CK инвертируется на входе, а затем инвертируется снова в каждом триггере, то ответ прост: входной сигнал не имеет достаточной мощности, чтобы запустить все восемь триггеров; входной инвертор на самом деле используется в качестве усилителя.
Микросхема содержит 8 входных линий, в частности 3 входа для данных — , и ; входа для адресов — и ; входа для управления — CS (Chip Select — выбор элемента памяти), RD (ReaD — чтение, этот сигнал позволяет отличать считывание от записи) и OE (Output Enable — разрешение выдачи выходных сигналов), а также 3 выходные линии для данных — , и .
Чтобы выбрать этот блок памяти, внешняя логика должна установить сигнал CS в , а также установить сигнал RD в для чтения и в для записи. Две адресные линии должны указывать, какое из четырех 3-разрядных слов нужно считывать или записывать. При считывании входные линии для данных не используются, а выбранное слово подается на выходные линии для данных. При записи биты, находящиеся на входных линиях для данных, загружаются в выбранное слово памяти; выходные линии при этом не используются.
Как работает память? Четыре вентиля И для выбора слов в левой части схемы формируют декодер. Входные инверторы расположены так, что каждый вентиль запускается определенным адресом. Каждый вентиль приводит в действие линию выбора слов (для слов , , и ). Когда микросхема должна производить запись, вертикальная линия получает значение , запуская один из четырех вентилей записи. Выбор вентиля зависит от того, какая именно линия выбора слов равна . Выходной сигнал вентиля записи приводит в действие все сигналы CK для выбранного слова, загружая входные данные в триггеры для этого слова. Запись производится только в том случае, если сигнал CS равен , а RD — , при этом записывается только слово, выбранное адресами и ; остальные слова не меняются.
Процесс считывания сходен с процессом записи. Декодирование адреса происходит точно так же, как и при записи. Но в данном случае линия принимает значение , поэтому все вентили записи блокируются, и ни один из триггеров не меняется. Вместо этого линия выбора слов запускает вентили И, связанные с битами Q выбранного слова. Таким образом, выбранное слово передает свои данные в 4-входовые вентили ИЛИ, расположенные в нижней части схемы, а остальные три слова выдают . Следовательно, выход вентилей ИЛИ идентичен значению, сохраненному в данном слове. Остальные три слова никак не влияют на выходные данные.
Буфер содержит входную линию для данных, выходную линию для данных и входную линию для управления. Когда управляющий вход , буферный элемент работает как проводник. Когда управляющий вход, буферный элемент работает как изолятор, как будто кто-то отрезает выход для данных от остальной части схемы кусачками. Соединение может быть восстановлено за несколько наносекунд, если сделать сигнал управления .
Буферный элемент с инверсией действует как обычный инвертор, когда сигнал управления , и отделяет выход от остальной части схемы, когда сигнал управления . Оба буферных элемента представляют собой устройства с тремя состояниями, поскольку могут выдавать нулевой сигнал, единичный сигнал или вообще не выдавать никакого сигнала (случай разомкнутой цепи). Буферные элементы, кроме того, усиливают сигналы, поэтому они могут справляться с большим количеством сигналов одновременно. Иногда они используются в схемах именно в качестве усилителей, при этом их способность переключения не используется.
Большие микросхемы памяти часто производятся в виде матриц размером , обращение к которым происходит по строкам и столбцам. Чтобы обратиться к микросхеме, сначала нужно выбрать строку. Для этого 11-разрядный номер этой строки подается на адресные выводы. Затем устанавливается сигнал (Row Address Strobe — строб адреса строки). После этого на адресные выводы подается номер столбца и устанавливается сигнал (Column Address Strobe — строб адреса столбца). Микросхема реагирует на сигнал, принимая или выдавая один бит данных. Такая организация памяти сокращает число необходимых выводов, но замедляет обращение к микросхеме, поскольку требуется два цикла адресации(строка, столбец). Потеря скорости отчасти компенсируется тем, что в некоторых микросхемах возможна передача адреса строки с последующей передачей нескольких адресов столбцов для обращения к последовательным битам строки.
Сигнал — это единица, сигнал — ноль.
Поскольку обычно компьютер содержит много микросхем памяти, нужен такой сигнал, чтобы нужная микросхема реагировала на вызов, а остальные нет. Сигнал (Chip Select — выбор элемента памяти) устанавливается, чтобы запустить микросхему. Кроме того, нужен способ, чтобы отличать считывания от записи. Сигнал (Write Enable — разрешение записи) указывает на то, что данные должны записываться, а не считываться. Наконец, сигнал (Output Enable — разрешение вывода) устанавливается для выдачи выходных сигналов. Когда этого сигнала нет, выход отсоединяется от остальной части схемы.
В каждой такой микросхеме содержится четыре внутренних банка памяти по 128 Мбит; соответственно, для определения банка требуются две линии выбора банка. На микросхеме , линий выделено для сигналов , для сигналов и линии для выбора банка. Взятые в целом, сигналов обеспечивают возможность адресации внутренних -разрядных ячеек.
На микросхеме , для сигналов выделено линий, для — линий, для выбора банка — линии. Таким образом, сигналов делают возможной адресацию любой из внутренних 4-разрядных ячеек. Количества строк и столбцов в микросхемах определяются на основании инженерных факторов. Матрица не обязательно должна быть квадратной.
Первый аспект - ширина выхода (в битах) — иначе говоря, количества битов (, , , ...) в выходном сигнале.
EDO(Extended Data Output — память с расширенными возможностями вывода, постопенно заменяет FPM), которая позволяет обращаться к памяти еще до того, как закончилось предыдущее обращение. Такой конвейерный режим, хотя и не ускоряет доступ к памяти, повышает пропускную способность, позволяя получить больше слов в секунду. Память типа FPM и EDO сохраняла актуальность в те времена, когда продолжительность цикла работы микросхем памяти не превышала . Впоследствии, с увеличением быстродействия процессоров, сформировалась потребность в более быстрых микросхемах памяти
Синхронное динамическое ОЗУ(SDRAM, заменила асинхронный тип памяти) Синхронное динамическое ОЗУ управляется от главного системного тактового генератора. Данное устройство представляет собой гибрид статического и динамического ОЗУ. Основное преимущество синхронного динамического ОЗУ состоит в том, что оно исключает зависимость микросхемы памяти от управляющих сигналов. ЦП сообщает памяти, сколько циклов следует выполнить, а затем запускает ее. Каждый цикл на выходе дает , или бит в зависимости от количества выходных строк. Устранение зависимости от управляющих сигналов приводит к ускорению передачи данных между ЦП и памятью.
DDR(Double Data Rate — передача данных с двойной скоростью). Эта технология предусматривает вывод данных как на подъеме, так и на спаде импульса, вследствие чего скорость передачи увеличивается вдвое. Например, 8-разрядная микросхема такого типа, работающая с частотой , дает на выходе два 8-разрядных значения миллионов раз в секунду (разумеется, такая скорость удерживается в течение небольшого периода времени); таким образом, теоретически, кратковременная скорость может достигать . Интерфейсы памяти DDR2 и DDR3 обеспечивают дополнительный прирост производительности по сравнению с DDR за счет повышения скорости шины памяти до и соответственно.
EEPROM(электронно перепрограммируемое ПЗУ, Electronically ERROM) - не нужно помещать в специальную камеру, чтобы подвергнуть воздействию ультрафиолетовых лучей — для стирания информации достаточно подать соответствующие импульсы. Чтобы перепрограммировать данное устройство, его не нужно вставлять в специальный аппарат для программирования, в отличие от EPROM. В то же время самые большие EEPROM в 64 раза меньше обычных EPROM, и работают они в два раза медленнее. EEPROM не могут конкурировать с динамическими и статическими ОЗУ, поскольку работают в раз медленнее, их емкость в раз меньше, и они стоят гораздо дороже. Они используются только в тех ситуациях, когда необходимо сохранять информацию при выключении питания.
Флэш-память - стирается и записывается блоками. Многие изготовители производят небольшие печатные платы, содержащие до Гбайт флэш-памяти. Они используются для хранения изображений в цифровых камерах и для других целей. Флэш-память обеспечивает лучшее время доступа при более низком энергопотреблении, но стоимость одного бита флэш-памяти существенно выше, чем у дисков.