Аппаратные интерфейсы ПК. Энциклопедия
Шрифт:
♦ Буферированное страничное программирование. Кроме обычного побайтного или двухбайтного программирования возможно быстрое заполнение буфера шинными циклами записи. Далее переписывание его содержимого (всего или фрагмента) во флэш-память выполняется одной командой. Содержимое буфера может быть считано после подачи соответствующей команды.
♦ Двухбайтное программирование при 8-битном использовании.
♦ Поддержка очереди команд позволяет при наличии свободного места в очереди подавать последующие команды стирания или программирования, не дожидаясь освобождения автомата WSM. Признак готовности WSM установится только после выполнения всех команд очереди.
♦ Автоматическая запись из буфера во флэш-массив во время стирания другого блока. Программная защита позволяет для любого блока установить бит защиты в специальную энергонезависимую область. Запись и стирание защищенного блока может осуществляться только после снятия общей защиты записи по сигналу
♦ Стирание всех незащищенных блоков может выполняться одной командой.
♦ Программирование использования сигнала
♦ Перевод микросхемы в режим
Таблица 7.27. Дополнительные команды микросхем 28F016SA
Команда | Первый цикл шины | Второй цикл шины | Третий цикл шины | ||||||
---|---|---|---|---|---|---|---|---|---|
R/W | Адрес¹ | Данные² | R/W | Адрес¹ | Данные² | R/W | Адрес¹ | Данные² | |
Read Extended Status Register (чтение дополнительных регистров) | W | X | xx71h | R | RA | GSRD BSRD | – | – | – |
Page Buffer Swap (смена буфера) | W | X | xx72h | – | – | – | – | – | – |
Read Page Buffer (чтение буфера) | W | X | xx75h | R | РВА | PBD | – | – | – |
Single Load to Page Buffer (одиночная запись в буфер) | W | X | xx74h | W | РВА | PBD | – | – | – |
Sequential Load to Page Buffer x8/x16 (последовательная запись в буфер) | W | X | xxE0h | W | X | BCL/WCL³ | W | X | BCH/WCH³ |
Page Buffer Write to Flash x8/х16 (перепись буфера в массив) | W | X | xx0Ch | W | A0 | BC(LH)/WCL³ | W | X | BC(HL)/WCH³ |
Two-Byte Write x8 (двухбайтное программирование в режиме x8) | W | X | xxFBh | W | A0 | WD(L,H)³ | W | WA | WD(H,L)³ |
Lock Block/Confirm (защита блока) | W | X | xx77h | W | BA | xxD0h | – | – | – |
Upload Status Bits/Confirm (выгрузка состояния блока в GSR) | W | X | xx97h | W | X | xxD0h | – | – | – |
Upload Device Information (выгрузка информации об устройстве) | W | X | xx99h | W | X | xxD0h | – | – | – |
Erase All Unlocked Blocks/Confirm (стирание всех незащищенных блоков) | W | X | xxA7h | W | X | xx00h | – | – | – |
RY/BY# Enable to Level-Mode (разрешение отображения GSR.7 потенциалом) | W | X | xx96h | W | X | xx01h | – | – | – |
RY/BY# Pulse-On-Write (импульс по окончании программирования) | W | X | xx96h | W | X | xx02h | – | – | – |
RY/BY# Pulse-On-Erase (импульс по окончании стирания) | W | X | xx96h | W | X | xx03h | – | – | – |
RY/BY# Disable (запрет сигнала RY/BY#) | W | X | xx96h | W | X | xx04h | – | – | – |
Sleep (режим ожидания) | W | X | xxF0h | – | – | – | – | – | – |
Abort (отмена операции) | W | X | xx80h | – | – | – | – | – | – |
¹ BA = Block Address — адрес блока, РВА = Page Buffer Address — адрес внутри буфера, RA = Extended Register Address — адрес дополнительного регистра (BSRx или GSR), WA = Write Address — адрес во флэш-массиве. А0 указывает на порядок следования байт в режиме x8 (при низком уровне BYTE#): 0 = сначала младший, затем старший; 1 = наоборот.
² AD = Array Data — данные из массива, PBD = Page Buffer Data — данные буфера, WD (L,H) = Write Data (Low, High) — данные для записи в массив, BSRD = BSR Data — информация регистра состояния блока, GSRD = GSR Data — информация глобального регистра состояния.
³ WC (L,H) = Word Count (Low, High) — счетчик слов. WCL=0 соответствует записи одного слова. Для буфера 256 байт WCH=0. BC (L,H) = Byte Count (Low, High) —
Микросхема 28F032SA представляет собой два параллельно соединенных кристалла 28F016SA в одном корпусе. Входы
Третье поколение — современные микросхемы, выполненные по технологии SmartVoltage, допускают стирание и программирование при напряжении VPP как 12 В, так и 5 В. В последнем случае эти операции занимают больше времени. Кроме того, операции чтения возможны при пониженном (3,3 и даже 2,7 В) напряжении питания VCC, при этом снижается потребление, но увеличивается время доступа.
Для управления защитой данных введен логический сигнал
Для полной защиты от стирания и программирования на вход VPP должен подаваться низкий логический уровень (или 0 В), а не 5 В, как у микросхем с программированием напряжением 12 В.
Настройка (оптимизация потребления и быстродействия) происходит по уровню напряжения на выводе VCC по включении питания, переход на другое значение должен производиться через выключение питания.
Фирмой AMD выпускается несколько семейств микросхем флэш-памяти. Первые из них были близки по характеристикам к флэш-памяти Intel первого поколения(Bulk Erase, стирание и программирование 12 В): это Am28F256/512/010/020. В отличие от аналогичных микросхем Intel, Am28F256/512 не имели стоп-таймера, что требовало точной выдержки при программировании и стирании. Следующим этапом были микросхемы Am28F256A/512A/010A/020A со встроенным алгоритмом программирования, отличающимся от алгоритма микросхем Intel второго поколения как последовательностью команд, так и способом определения момента окончания операций. Для защиты от случайного выполнения команды состоят из 3–6 шинных циклов, причем для них существенен и адрес (табл. 7.28). Состояние выполнения операций стирания или программирования определяется по результату данных, полученных в шинном цикле чтения по адресу ячейки, участвующей в операции (а не регистра состояния, как у Intel). Для определения окончания операций может использоваться метод Data# Polling или Toggle Bit. Метод Data# Polling основан на анализе бита D7 считанных данных. В начале выполнения внутреннего цикла он устанавливается инверсным по отношению к тому, что должно быть записано в ячейку. По успешном окончании операции он принимает желаемое значение (при стирании — 1). Метод Toggle Bit основан на анализе бита
Таблица 7.28. Команды флэш-памяти Am29F010
Команда | Reset/Read | Autoselect | Byte Program | Chip Erase | Sector Erase | |
---|---|---|---|---|---|---|
Количество циклов | 3 | 3 | 4 | 6 | 6 | |
1-й цикл | Addr | 5555h | 5555h | 5555h | 5555h | 5555h |
Data | AAh | AAh | AAh | AAh | AAh | |
2-й цикл | Addr | 2AAAh | 2AAAh | 2AAAh | 2AAAh | 2AAAh |
Data | 55h | 55h | 55h | 55h | 55h | |
3-й цикл | Addr | 5555h | 5555h | 5555h | 5555h | 5555h |
Data | F0h | 90h | A0h | 80h | 80h | |
4-й цикл | Addr | – | XX00h/XX01h | PA¹ | 5555h | 5555h |
Data | – | 01h/20h | PD² | AAh | AAh | |
5-й цикл | Addr | – | – | – | 2AAAh | 2AAAh |
Data | – | – | – | 55h | 55h | |
6-й цикл | Addr | – | – | – | 5555h | SA³ |
Data | – | – | – | 10h | 30h |
¹ PA = адрес программируемой ячейки.
² PD = данные для записи в программируемую ячейку.
³ SA = адрес стираемого сектора (значимы биты A16, A15 и А14).
Микросхемы семейства Am29Fxxx выполняют все операции при одном питающем напряжении 5 В и имеют секторированную структуру (Sector Erase), симметричную (аналогично Flash File) или несимметричную (Boot Block), с верхним (T) и нижним (В) положением Boot-блока. С помощью программатора каждый сектор может быть защищен от модификации в целевой системе (в отличие от Intel способ установки и снятия защиты фирмой AMD широко не раскрывается). По расположению выводов и интерфейсу микросхемы соответствуют стандарту JEDEC для флэш-памяти с одним питающим напряжением. Микросхемы позволяют выполнять одновременное стирание группы секторов. Все эти микросхемы, кроме Am29F010, имеют возможность приостановки стирания сектора (Erase Suspend) для выполнения чтения других секторов, a Am29F080/016 позволяют еще и программировать байты во время приостановки стирания.