RAM paralela sem grande número de pinos?

16

Na década de 1970, a Texas Instruments tinha uma gama de produtos agora descontinuada que eles chamavam de GRAM (e só liam GROM equivalente), que era basicamente um chip de memória padrão com endereço e dados multiplexados em 8 pinos. Você iniciaria uma operação enviando ao chip dois bytes de endereço e, toda vez que pulsasse o pino de leitura ou gravação, ele leria ou gravaria um byte usando o barramento e, em seguida, aumentaria o contador de endereços interno. O resultado foi um chip de memória quase tão rápido (pelo menos para operações de acesso seqüencial) quanto um chip de memória paralela padrão, mas que só precisa de um pacote de 16 pinos, em vez dos pacotes de 28 pinos, além de outras memórias similares do dia. .

Hoje, para aplicativos semelhantes, você provavelmente usaria mais frequentemente a memória serial acessada por SPI - mas o problema é que essas memórias são bastante lentas (a maioria tem uma taxa de transferência máxima de cerca de 20Mbit / s; algumas são executadas tão rápido quanto o dobro disso, mas não encontrei nada mais rápido que isso), enquanto um equivalente moderno dessas peças de TI pode ser muito mais rápido que isso, permitindo facilmente o acesso a 100 + Mbit / s.

Existe alguma coisa que ainda esteja em produção e que se comporte de maneira semelhante aos chips de TI? O mais próximo que posso encontrar hoje são peças personalizadas, por exemplo, o VLSI VS23S010D , que combina um dispositivo de memória que suporta o tipo de interface que estou procurando, juntamente com um driver de vídeo , que coloca a contagem de pinos em até 48 pinos. Idealmente, estou procurando algo em um pacote de 14 ou 16 pinos (acho que 14 é o mínimo realista - potência 2x, dados 8x, relógio, seleção de endereço, leitura de bytes, gravação de bytes).

Jules
fonte
O microcontrolador MC68HC11 tinha um endereço multiplexado irritante + barramento de dados semelhante ao que você descreve; essa memória seria incrível para isso.
pipe
mas o 68HC11 apenas desativou A0..7; A8..15 ainda eram pinos separados.
ami

Respostas:

19

A solução padrão apropriada é provavelmente o QSPI (também chamado QPI, ou também SQI). É um pouco uma extensão da interface SPI, mas usa quatro bits de dados (quad, daí o Q no acrônimo) (IO0 / IO1 / IO2 / IO3) em vez de um único sinal para cada direção (MISO / MOSI).

Portanto, os chips são muito pequenos (geralmente SO-8) e a interface é muito eficiente: você precisa enviar o endereço para cada comando de leitura ou gravação, mas pode ler vários bytes em burst, quatro bits a cada ciclo de clock. A velocidade máxima do relógio normalmente é de ~ 104 MHz para o flash. Isso pode ser feito ainda mais rápido usando uma sinalização de Dual Data Rate (quatro bits em cada extremidade do relógio, tanto subindo quanto descendo: portanto, oito bits a cada ciclo do relógio - normalmente, os chips flash atingem o máximo de 80 MHz neste modo).

As folhas de dados do chip fornecerão todos os detalhes sobre o significado / uso exato de cada sinal. Para ilustrar, aqui está um diagrama de tempo de comando de leitura (no modo de taxa de dados única e extraído desta folha de dados ):

insira a descrição da imagem aqui

Aqui, você vê que precisa de 14 ciclos de clock para obter o primeiro byte (a 80 MHz, significa 175ns de tempo de acesso). Mas se você precisar de mais bytes, basta adicionar 2 ciclos por byte (25ns). Portanto, a leitura in burst tornará muito mais rápido do que um chip paralelo flash de 70ns ou mesmo 45ns.

Você pode encontrar facilmente peças flash NOR de vários fabricantes, usando essa interface. Observe que o desempenho (velocidade máxima, contagem de ciclos fictícios) e os recursos (Quad I / O ou apenas suporte a E / S dupla, DDR) variam, portanto verifique a folha de dados.

A RAM é um pouco mais difícil de encontrar, mas ainda está disponível, principalmente do Microchip (por exemplo, 23LC512 ), ON semi (por exemplo, N01S818HA ) e ISSI (por exemplo, IS62WVS2568GBLL-45 ). Eles são mais lentos que o flash, no entanto. Mas o ISSI que sugiro acima ainda sobe para 45MHz (taxa de dados única), aparentemente com um ciclo de leitura mínimo que precisa de 11 relógios para o primeiro byte. Ou, de outra forma: 200ns + 45ns por byte (taxa de transferência de 180Mbit / s), o que não é ruim e excede a velocidade GRAM que você indicou.

Além disso, observe que muitos MCUs avançados (do NXP, ST, ...) suportam essa interface no hardware.

escuro
fonte
Sim, isso parece exatamente o que eu estava procurando. Obrigado. :)
Jules
Outra interface bastante semelhante é o barramento SD de 4 bits.
Dmitry Grigoryev
@DmitryGrigoryev Isso mesmo. Mas não acho que você possa encontrar chips de RAM aderindo a isso, no entanto. Provavelmente, existem apenas chips flash NAND (eMMC).
dim
@dim - meu entendimento (com base em interfaces QSPI da ST) é que eles são de leitura / escrita (e não apenas somente leitura) - RAM vs flash não deve importar tanto quer
ThreePhaseEel
@ThreePhaseEel Você está certo: nos chips ST, a interface QSPI pode ser configurada em um de dois modos: modo indireto (você aciona comandos no chip configurando explicitamente alguns registros) e modo mapeado na memória (a interface flash traduz automaticamente memória acessa em comandos de leitura). No modo mapeado para memória, o manual de referência diz explicitamente que apenas a leitura é permitida. No modo indireto, no entanto, você pode enviar o comando que desejar (leitura / gravação / qualquer outra coisa), conforme mencionado. Vou editar de acordo.
Dim
2

Estou postando isso como outra resposta, porque é algo totalmente diferente.

Há outra interface, mas menos comum, que também se encaixa bem na sua descrição: HyperBus , projetado por Cypress (é proprietário).

Este usa DDR em velocidades muito mais altas (até 166MHz) e um barramento de 8 bits. Assim, você pode alcançar 2666 Mbit / s (uau!), O que deixa o QSPI muito para trás. Ele também foi projetado para DRAM de densidade mais alta, em vez de SRAM, para que você possa encontrar chips de 8M x 8 (vs 256k x 8 para a ISSI QSPI SRAM mencionada na outra publicação). Ele usa apenas 12 sinais (tensões de alimentação excluídas).

Aqui está um produto HyperRAM da ISSI: IS66WVH8M8ALL . Existem também produtos HyperFlash que você pode encontrar.

Mas estamos em outra categoria de produtos. É mais caro, com menos facilidade de fonte, os chips são geralmente BGA, e a interface é um pouco mais complexa (devido à alta velocidade e DDR). Além disso, menos MCUs suportam isso.

escuro
fonte
Existem versões de 8 bits do QSPI flash de vários fornecedores, que são bastante semelhantes ao "HyperBus" em termos de desempenho.
Timmy Brolin