Параллельная оперативная память без большого количества контактов?

Еще в 1970-х годах у Texas Instruments был ассортимент продуктов, которые сейчас сняты с производства, которые они называли GRAM (и эквивалент GROM только для чтения), которые представляли собой стандартную микросхему памяти с адресом и данными, все мультиплексированные на 8 выводах. Вы бы начали операцию, отправив чипу два байта адреса, а затем каждый раз, когда вы импульсно считывали или записывали вывод, он считывал или записывал байт, используя шину, а затем увеличивал внутренний счетчик адреса. Результатом стал чип памяти, который был почти таким же быстрым (по крайней мере, для операций последовательного доступа), как и стандартный чип параллельной памяти, но для которого требовался только 16-контактный корпус, а не 28-контактный корпус, который требовался другим аналогичным устройствам памяти того времени. .

Сегодня для подобных приложений вы, вероятно, чаще всего будете использовать последовательную память с доступом по SPI, но проблема в том, что такая память довольно медленная (максимальная пропускная способность большинства из них составляет около 20 Мбит/с; некоторые работают вдвое быстрее, но я не нашел ничего быстрее), тогда как современный эквивалент этих частей TI может быть намного быстрее, легко обеспечивая доступ со скоростью 100+ Мбит / с.

Существует ли что-нибудь, что все еще находится в производстве и ведет себя так же, как эти чипы TI? Самое близкое, что я могу найти сегодня, это детали нестандартного назначения, например, СБИС VS23S010D , которая сочетает в себе устройство памяти, поддерживающее тип интерфейса, который я ищу, вместе с драйвером дисплея, который увеличивает количество контактов до 48. В идеале я ищу что-то в корпусе с 14 или 16 контактами (я думаю, что 14 — это реалистичный минимум — 2x мощность, 8x данные, часы, выбор адреса, чтение байта, запись байта).

Микроконтроллер MC68HC11 имел надоедливую мультиплексированную шину адрес + данные, похожую на ту, что вы описываете, такая память была бы отличной для этого.
но 68HC11 мультиплексировал только A0..7; А8..15 по-прежнему были отдельными штырями.

Ответы (2)

Подходящим стандартным решением, вероятно, является QSPI (также называемый QPI или также SQI). Это несколько расширение интерфейса SPI, но использует четыре (четырехкратных, отсюда и буква Q в аббревиатуре) битов данных (IO0/IO1/IO2/IO3) вместо одного сигнала для каждого направления (MISO/MOSI).

Таким образом, микросхемы очень маленькие (обычно SO-8), а интерфейс очень эффективен: вам нужно отправлять адрес для каждой команды чтения или записи, но тогда вы можете считывать несколько байтов пакетом, по четыре бита за каждый такт. Максимальная тактовая частота обычно составляет ~ 104 МГц для флэш-памяти. Его можно сделать еще быстрее, используя сигнализацию с двойной скоростью передачи данных (четыре бита на каждом фронте тактового сигнала, как нарастающие, так и падающие: таким образом, восемь битов на каждый тактовый цикл — как правило, чипы флэш-памяти работают на максимальной частоте 80 МГц в этом режиме).

Техническое описание чипа предоставит все подробности о точном значении/использовании каждого сигнала. Для иллюстрации приведем временную диаграмму команды чтения (в режиме одиночной скорости передачи данных, взятую из этого описания ):

введите описание изображения здесь

Здесь вы видите, что вам нужно 14 тактовых циклов, чтобы получить первый байт (при 80 МГц это означает время доступа 175 нс). Но если вам нужно больше байтов, просто добавьте 2 цикла на байт (25 нс). Таким образом, чтение в пакетном режиме сделает его намного быстрее, чем типичный 70-нс или даже 45-нс параллельный чип флэш-памяти.

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

Оперативную память найти немного сложнее, но она все же доступна, особенно от Microchip (например , 23LC512 ), ON semi (например , N01S818HA ) и ISSI (например , IS62WVS2568GBLL-45 ). Однако они медленнее, чем flash. Но ISSI, который я предлагаю выше, по-прежнему достигает 45 МГц (одинарная скорость передачи данных) с, по-видимому, минимальным циклом чтения, требующим 11 тактов для первого байта. Или скажем иначе: 200нс + 45нс на байт (пропускная способность 180Мбит/с), что неплохо, и превышает указанную вами скорость GRAM.

Также обратите внимание, что многие микроконтроллеры высокого класса (от NXP, ST, ...) поддерживают этот интерфейс аппаратно.

Да, похоже, это именно то, что я искал. Спасибо. :)
Еще один довольно похожий интерфейс — 4-битная шина SD.
@DmitryGrigoryev Верно. Но я не думаю, что вы можете найти чипы RAM, придерживающиеся этого. Скорее всего есть только чипы NAND flash (eMMC).
@dim - насколько я понимаю (на основе интерфейсов ST QSPI), они предназначены для чтения / записи (а не только для чтения) - ОЗУ и флэш-память также не должны иметь большого значения.
@ThreePhaseEel Вы правы: на чипах ST интерфейс QSPI может быть установлен в одном из двух режимов: непрямой режим (вы запускаете команды на чип, явно устанавливая некоторые регистры) и режим с отображением памяти (интерфейс флэш-памяти автоматически переводит доступ к памяти в команды чтения). В режиме с отображением памяти в справочном руководстве прямо указано, что разрешено только чтение. Однако в косвенном режиме вы можете отправить любую команду (чтение/запись/что угодно еще), как вы упомянули. Я отредактирую соответственно.
К вашему сведению: карты MicroSD используют тот же интерфейс QSPI, от 50 МГц до последних стандартов скорости.
@Sparky, физический интерфейс выглядит похоже, но команды определенно не похожи на диаграмму выше. Есть CRC и прочее... А оперативной памяти с интерфейсом SD вы не найдете, как я уже говорил в комментариях.
Сейчас также доступны 8-битные версии флэш-памяти QSPI. Если вам действительно нужно повысить производительность, за счет дополнительных 4 контактов.

Я публикую это как еще один ответ, потому что это нечто совершенно другое.

Есть еще один, менее распространенный интерфейс, который также хорошо подходит под ваше описание: HyperBus , разработанный Cypress (он является собственностью).

Этот использует DDR на гораздо более высоких скоростях (до 166 МГц) и 8-битную шину. Таким образом, вы можете достичь 2666 Мбит / с (вау!), что оставляет QSPI далеко позади. Он также предназначен для DRAM с более высокой плотностью, а не для SRAM, поэтому вы можете найти чипы 8M x 8 (против 256k x 8 для ISSI QSPI SRAM, упомянутого в другом посте). Он использует только 12 сигналов (исключая напряжения питания).

Вот продукт HyperRAM от ISSI: IS66WVH8M8ALL . Вы также можете найти продукты HyperFlash.

Но мы по другой категории продуктов. Он более дорогой, менее доступный, чипы, как правило, BGA, а интерфейс немного сложнее (из-за высокой скорости и DDR). Кроме того, меньше MCU поддерживают это.

Существуют 8-битные версии флэш-памяти QSPI от нескольких поставщиков, которые очень похожи на «HyperBus» с точки зрения производительности.