Arquitetura Interna de Memórias: Endereçamento e Organização
Este tutorial foca na arquitetura interna das memórias digitais, destacando os conceitos de endereçamento e organização. Ao final, você entenderá como são estruturadas internamente as memórias, como se dá o mapeamento de endereços e quais os principais blocos que compõem este tipo de dispositivo.
Introdução🔗
Em eletrônica digitalIntrodução à Eletrônica Digital: Conceitos Básicos e AplicaçõesDescubra os conceitos e aplicações essenciais da Eletrônica Digital, do funcionamento de sinais binários aos transistores, e comece sua jornada tecnológica., as memórias são componentes essenciais para armazenar dados e instruções em sistemas como computadores, microcontroladores
Microprocessadores e Microcontroladores: Diferença entre microprocessador e microcontroladorDescubra as principais diferenças entre microprocessadores e microcontroladores, entendendo suas aplicações, custos e consumo de energia em sistemas embarcados. e dispositivos embarcados de todos os portes. A quantidade de memória, a velocidade de acesso e o tipo de armazenamento podem variar conforme a aplicação.
Porém, independentemente do tipo específico de memóriaBoas Práticas de Programação Embarcada e Otimização de CódigoDescubra técnicas e práticas essenciais para otimizar o código de sistemas embarcados, garantindo desempenho e eficiência em projetos eletrônicos. (RAM, ROM, Flash etc.), há elementos comuns em sua arquitetura interna, voltados tanto para a forma como os bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. são armazenados, quanto para o modo como eles são endereçados (acessados).
Neste tutorial, vamos explorar essas estruturasEstruturas e Uniões: Organizando Dados ComplexosAprenda como aplicar estruturas e uniões em SystemVerilog. Descubra a diferença entre packed e unpacked com exemplos práticos e dicas para um design otimizado. internas, entendendo:
- A organização em matrizes de células de memória
Boas Práticas de Programação Embarcada e Otimização de CódigoDescubra técnicas e práticas essenciais para otimizar o código de sistemas embarcados, garantindo desempenho e eficiência em projetos eletrônicos..
- O funcionamento básico dos decodificadores
Codificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos. de linha (row) e de coluna (column).
- A forma como os endereços de entrada são convertidos para selecionar exatamente a posição de armazenamento (célula ou conjunto de células) desejada.
Visão Geral da Arquitetura de Memória🔗
Em geral, uma memória digitalIntrodução à Eletrônica Digital: Conceitos Básicos e AplicaçõesDescubra os conceitos e aplicações essenciais da Eletrônica Digital, do funcionamento de sinais binários aos transistores, e comece sua jornada tecnológica. pode ser visualizada como uma matriz de células (arranjo bidimensional): cada célula é responsável por armazenar um bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de informação. Algumas memórias podem armazenar palavras
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. (word) completas em cada linha, dependendo do número de bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos..
Podemos identificar alguns blocos essenciais na arquitetura interna da maioria das memórias:
1. Linhas de Endereço (Address Lines): Recebem o endereço (em binárioSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos.) que indica qual posição de memória deve ser acessada.
2. DecodificadorCodificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos. de Linha (Row Decoder): Converte parte dos bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de endereço para selecionar uma linha (row) específica na matriz.
3. DecodificadorCodificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos. de Coluna (Column Decoder): Converte os bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. restantes do endereço para selecionar qual coluna (ou conjunto de colunas) na matriz deve ser habilitada para leitura/escrita.
4. Array de Células de MemóriaBoas Práticas de Programação Embarcada e Otimização de CódigoDescubra técnicas e práticas essenciais para otimizar o código de sistemas embarcados, garantindo desempenho e eficiência em projetos eletrônicos.: Região bidimensional principal onde cada célula representa um bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. ou parte de uma palavra
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. de dados.
5. Linhas de Dados (Data Lines): São os caminhos por onde os dados efetivos são enviados para leitura ou recebidos para escrita.
6. Circuitos de Controle e Sinalização: Incluem lógica de ativação de leitura (Read Enable), escrita (Write Enable), habilitação de chip (ChipCircuito Integrado (CI)Descubra os fundamentos dos Circuitos Integrados, sua história e aplicações na eletrônica digital. Aprenda os conceitos essenciais para iniciar. Enable), entre outros sinais.
7. Sense Amplifiers (Circuitos de Leitura): Dispositivos que amplificam o sinal proveniente de uma célula de memória (especialmente em arquiteturas de baixa correnteLei de Ohm e Leis de Kirchhoff: Aplicações PráticasExplore os fundamentos da eletricidade: aprenda a aplicar a Lei de Ohm e as Leis de Kirchhoff para analisar circuitos simples e complexos com clareza. ou em DRAM, cujo sinal de célula é muito pequeno).
Abaixo, um diagrama ilustrativo em Mermaid que destaca os blocos gerais:
Endereçamento e Organização🔗
Arranjo em Matrizes
Quando falamos sobre endereçamento, estamos nos referindo a como cada posição de memória (célula ou conjunto de células) é encontrada a partir de um endereço binárioSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos.. Imagine que temos um barramento de endereço com n bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos.. Esse barramento n será dividido em duas partes: parte para linha (row) e parte para coluna (column).
Um exemplo simplificado:
- Se a memória possui 1024 posições (palavras
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos.) endereçáveis e cada palavra é composta por 8 bits (1 byte), então precisamos de 10 bits de endereço para selecionar cada posição (pois 2^10 = 1024).
- Esses 10 bits podem ser divididos, por exemplo, em 5 bits para linha e 5 bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. para coluna. Assim:
- Os primeiros 5 bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. selecionam qual das 32 linhas será ativada.
- Os últimos 5 bits
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. selecionam qual das 32 colunas dentro daquela linha será acessada.
- Os primeiros 5 bits
Esse particionamento entre row e column varia conforme o projeto da memóriaBoas Práticas de Programação Embarcada e Otimização de CódigoDescubra técnicas e práticas essenciais para otimizar o código de sistemas embarcados, garantindo desempenho e eficiência em projetos eletrônicos..
Tamanho da Memória (em palavras) | Bits de Endereço Necessários | Divisão Exemplo (Row x Column) |
---|---|---|
1024 (1K) | 10 bits | 5 bits (linha) x 5 bits (coluna) |
4096 (4K) | 12 bits | 6 bits (linha) x 6 bits (coluna) |
65536 (64K) | 16 bits | 8 bits (linha) x 8 bits (coluna) |
Observe que a divisão entre quantos bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. vão para row e quantos vão para column é uma decisão de projeto
Introdução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. que afeta:
- Velocidade
Portas Lógicas e Famílias Lógicas: Comparação de famílias lógicas: TTL, CMOS, ECL (vantagens e limitações)Descubra as características, vantagens e limitações das famílias lógicas TTL, CMOS e ECL, essenciais para projetos digitais modernos. de acesso.
- Complexidade do decodificador
Codificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos..
- Tamanho e quantidade de pinos de endereço necessários.
Caminho de Leitura e Escrita
Quando um endereço é colocado na entrada:
1. Os bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de linha são enviados ao decodificador
Codificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos. de linha, que ativa a linha correspondente no array de células.
2. Os bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de coluna são enviados ao decodificador
Codificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos. de coluna, que seleciona qual coluna dentro daquela linha deve ser acessada.
3. Se o modo for leitura, a linha de memóriaBoas Práticas de Programação Embarcada e Otimização de CódigoDescubra técnicas e práticas essenciais para otimizar o código de sistemas embarcados, garantindo desempenho e eficiência em projetos eletrônicos. selecionada transmite os bits até os sense amplifiers, que reforçam o sinal e o enviam para as linhas de dados.
4. Se o modo for escrita, a linha de dados recebe o novo valor (bits de entrada) e, com a coluna habilitada, grava tais bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. na célula correspondente.
Organização de Palavras🔗
Dependendo do tamanho de cada posição de memóriaBoas Práticas de Programação Embarcada e Otimização de CódigoDescubra técnicas e práticas essenciais para otimizar o código de sistemas embarcados, garantindo desempenho e eficiência em projetos eletrônicos. (por exemplo, 8 bits, 16 bits, 32 bits, etc.), pode-se ter diferentes formas de organização:
- Organização por Bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos.: Cada endereço aponta para um bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. específico. Isso era mais comum em memórias antigas ou em aplicações mais específicas.
- Organização por Palavra
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. (Word-Oriented): Cada endereço corresponde a um conjunto (palavra
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos.) de bits. Por exemplo, endereços que apontam diretamente para bytes (8 bits) ou words (16 bits).
Em aplicações modernas, para memórias de uso geral, é comum endereçamento por byteIntrodução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. (1 byte por endereço) ou até por palavra
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos. de 32 bits em sistemas maiores. Esse tipo de organização facilita o acesso a vários bits ao mesmo tempo, reduzindo a necessidade de múltiplas leituras/escritas para obter uma informação completa.
Resumo e Conceitos-Chave🔗
1. Memórias Internas são Organizadas em Matrizes
- Linhas e colunas de células de armazenamento.
2. Endereçamento Envolve Decodificação
- Parte dos bits de endereço seleciona a linha (Row Decoder
Codificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos.).
- Parte dos bits de endereço seleciona a coluna (Column Decoder
Codificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos.).
3. Leitura e Escrita Dependem de Sinais de Controle
- Leituras usam sense amplifiers para extrair o dado da célula.
- Escritas direcionam o bit
Sistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. a ser gravado para a célula selecionada.
4. Largura de Dados afeta a Organização
- Endereçamento por bit ou por palavra
Introdução à Eletrônica Digital: Conceitos básicos: bits, bytes, palavras, sinais de clock e sua importânciaDomine fundamentos da eletrônica digital: bits, bytes, palavras e clock que impulsionam o desempenho e eficiência de sistemas modernos., dependendo do tamanho da informação a armazenar.
Conclusão🔗
A arquitetura interna das memórias digitais segue um princípio de matriz de células, onde a seleção (endereçamento) é feita por meio de decodificadoresCodificadores e Decodificadores: Estrutura e FuncionalidadeAprenda os princípios dos codificadores e decodificadores, entendendo suas funções, aplicações e implementações na eletrônica digital com exemplos práticos. de linha e coluna. Esse paradigma básico se mantém, seja em memórias de uso geral (como em computadores pessoais), seja em memórias embarcadas em sistemas IoT
Projetos Práticos: Projeto final: aplicação específica (ex.: IoT, robótica, comunicação)Descubra como montar um sistema IoT completo utilizando sensores, microcontrolador e conexão Wi-Fi para monitorar e analisar condições ambientais. e dispositivos de controle industrial.
Compreender como os bitsSistemas de Numeração e Conversão: Binário, Decimal, Octal e HexadecimalAprenda conversões de sistemas numéricos em eletrônica digital. Descubra métodos para converter entre decimal, binário, octal e hexadecimal com exemplos. de endereço são divididos e como ocorre a organização interna permite projetar sistemas mais eficientes e reconhecer limitações
Integração de Randomização com Ferramentas de VerificaçãoDescubra como a integração da randomização em SystemVerilog e ferramentas de verificação potencializam a cobertura e qualidade dos testes em designs complexos. e vantagens de cada tipo de organização. De dispositivos simples até os mais complexos, o conceito de endereçamento linear e a composição interna em um arranjo bidimensional se repetem e formam a base para todo o funcionamento das memórias digitais.
Próximos Passos:
- Aproximar esses conceitos de práticas de laboratório, analisando datasheets
Ferramentas e Recursos Adicionais: Leitura de datasheets: interpretação de especificações de CIsDescubra como ler datasheets e interpretar suas especificações essenciais para garantir segurança, confiabilidade e desempenho em seus projetos digitais. de memórias comerciais para ver na prática a organização e o endereçamento discutidos aqui (sem entrar em outros conteúdos não correspondentes a este tutorial).
- Desenvolver mini-projetos
Introdução ao SystemVerilog: História e EvoluçãoDescubra a trajetória do SystemVerilog, sua origem a partir do Verilog, e os marcos que transformaram a verificação de hardware na indústria digital. para experimentar o acesso a memórias usando microcontroladores ou FPGAs, entendendo como o barramento de endereços
Microprocessadores e Microcontroladores: Arquitetura: Von Neumann vs. Harvard (CPU, ALU, barramentos)Descubra os princípios das arquiteturas Von Neumann e Harvard, componentes essenciais como CPU, ALU e barramentos, e suas aplicações em sistemas digitais. e de dados interage com cada componente.
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- A comprehensive resource for electronics, including tutorials on memory systems and digital logic: www.allaboutcircuits.com
- A forum where professionals and enthusiasts discuss electronics, including memory architecture questions: electronics.stackexchange.com
- Ben Eater's YouTube channel covers computer science and electronics topics, including memory systems: www.youtube.com/c/BenEater
- MIT OpenCourseWare offers a wide range of courses that could include topics on digital memory architectures: ocw.mit.edu
- Provides detailed tutorials on electronics, including digital memory systems: www.electronics-tutorials.ws