Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Motivação: O projeto de memória para um microcomputador envolve a alocação da memória no espaço de endereçamento do processador. Esta alocação define o endereço de cada célula de armazenamento. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 161 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Espaço de Endereçamento do 68000 8 M Words (A23 - A01) 23 3 20 (2 = 2 2 = 8 M Word) ou 16 M Bytes (A23 - A00; onde A00 é implementado com os sinais UDS* e LDS*) 24 4 20 (2 = 2 2 = 16 M Bytes). ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 162 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Três estratégias: Decodificação total Decodificação parcial Decodificação em bloco Critérios para a escolha Número de dispositivos Potência dissipada Velocidade de decodificação Custo Área ocupada Versatilidade Confiabilidade Testabilidade ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 163 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total Cada célula de armazenamento está associada a um único endereço. Todas as linhas de endereço são utilizadas para especificar a localização da célula de armazenamento. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 164 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total -Exemplo 1 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 165 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total - Exemplo 1 CS1* (0000 0000 0000) (A23-A12) CS2* (0000 0000 0001) (A23-A12) ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 166 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total - Exemplo 2: Conectar a um 68000 os seguintes componentes: 10 K Words ROM (2K Words + 8 K Words) ROM1(2K) ROM2(8K) 2 K Words RAM 2 Words Periférico 1 - PERI1 2 Words Perférico 2 - PERI2 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 167 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total - Exemplo 2: Passos para a solução: Construir tabela de endereços. Atribuir endereço único para cada componente. Implementar o decodificador de endereço lógica de decodificação. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 168 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total - Exemplo 2: Tabela 5.1 figura 5.5 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 169 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Parcial. Nem todas as linhas de endereço são utilizadas para especificar a localização da célula de armazenamento. Cada célula de armazenamento pode estar associada a mais do que um endereço. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 170 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Parcial - Exemplo 1 figura 5.6 figura 5.7 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 171 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Parcial - Exemplo 1 figura 5.7 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 172 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Parcial - Exemplo 2: Conectar a um 68000 os seguintes componentes: 10 K Words ROM (2 K Words + 8 K Words) ROM1(2K) ROM2(8K) 2K Words RAM 2 Words Periférico 1 - PERI1 2 Words Periférico 2 - PERI2 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 173 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Parcial - Exemplo 2: Passos para a solução: Construir tabela de endereços. Atribuir endereço para que não haja conflito entre componente - utilizar o menor número de linhas de endereço possível. Implementar o decodificador de endereço lógica de decodificação. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 174 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Parcial - Exemplo 2: tabela 5.2 figura 5.8 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 175 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Estratégias de Decodificação de Endereço Decodificação Total X Decodificação Parcial Total Não há desperdício do espaço de endereçamento. Posso inserir novos componentes. Lógica mais complexa. Aumento do número de componentes ou aumento da complexidade dos componentes. Compromisso entre decodificação total e parcial ⇒ decodificação em bloco: Decodificação em bloco: espaço de endereçamento é dividido em blocos totalmente decodificados. Cada bloco está associada a um único sub-espaço de endereçamento. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 176 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Técnicas Portas lógica Decodificadores m para n PROMs (programmable read-only memory) PGAs (programmable gate arrays) PLAs (programmable logic arrays) PAL (programmable array logic) ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 177 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Portas lógica O decodificador é implementado utilizando portas lógicas simples, como AND, OR, NOR, NAND, INVERSOR. Utilizam dispositivos SSI (Small Scale Integration). Vantagens potenciais: velocidade (utilizar a lógica mais rápida); custo. Desvantagens potenciais: número alto de dispositivos (CIs); reduz a área disponível na placa para dispositivos mais nobres - por exemplo, memória. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 178 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Portas lógica - decodificador 3 para 8 (saída ativa em nível baixo) A2 A1 A0 A2* A1* A0* A2* A1* A0 A2* A1 A0* A2* A1 A0 A2 A1* A0* A2 A1* A0 A2 A1 A0* A2 A1 A0 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 179 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Decodificadores m para n (interessante para a decodificação em bloco) Decodificador implementado utilizando dispositivos decodificadores m-bits para n = m 2 saídas. Dispositivos comuns: 74LS138 decodificador 3 para 8 74LS139 decodificador dual 2 para 4 74LS154 decodificador 4 para 16 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 180 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Decodificador 74LS138 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 181 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Decodificador 74LS138 - exemplos de utilização figura 5.12 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 182 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Decodificador 74LS138 - exemplo projeto figura 5.13 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 183 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Decodificador 74LS138 - exemplo projeto tabela 5.4 figura 5.14 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 184 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM (Programmable Read Only Memory): memória apenas de leitura , não volátil, que pode ser gravada pelo usuário. “Gravada” significa que o usuário pode, através de circuito especial de gravação, definir o conteúdo da memória. As PROM permitem apenas uma gravação. As EPROM (Erasable Programmable Read Only Memory) admitem que o conteúdo da memória seja apagado e re-escrito novamente. As memórias da família ROM (ROM, EPROM, EEPROM UVEPROM) podem ser utilizadas como forma de sintetizar funções lógicas. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 185 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM figura 5.15 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 186 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM m entradas (endereço) ⇒ 2 m p saídas Como decodificador de endereço, a PROM nada mais é do que uma Look-Up Table (LUT) ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 187 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - exemplo SBC com RAM, ROM e Periféricos Dividir espaço em 1Kword (tamanho mínimo de dispositivos de memória 1Kword – 2 K Bytes) Espaço de E/S 1 K Works comportando até 8 dispositivos. Alocação segundo a tabela table 5.6 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 188 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - exemplo 00 0000 ROM1 00 0800 00 1000 ROM2 00 1800 00 2000 ROM3 00 2800 00 3000 00 C000 PERI1 RAM1 00 E000 00 C800 PERI2 00 E100 00 D000 PERI3 00 E200 00 E300 00 D800 00 E000 00 E400 00 E500 00 E800 00 E600 00 F000 00 E700 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 189 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - exemplo table 5.7 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 190 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - exemplo figura 5.16 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 191 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - exemplo table 5.8 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 192 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - exemplo figura 5.17 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 193 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PROM - observações finais Vantagens Selecionar blocos de tamanhos variáveis m m entradas ⇒ divisão por 2 do espaço de endereços disponível (tamanho mínimo do bloco) Posso agrupar blocos e alocar dispositivos maiores. Selecionar o mesmo dispositivo em endereços de blocos diferentes. Desvantagens: Aumento do tamanho da EPROM em função do número de linhas decodificadas ⇒ custo maior, tempo de programação maior. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 194 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores Solução com portas lógicas ⇒rapidez Solução com ROM ⇒ flexibilidade e compactação. FPGA (field programmable gate array), FPLA (field programmable logic array) e PAL (programmable array logic) procuram oferecer o melhor dos dois mundos - portas lógicas e ROM. FPGA, FPLA, PAL são dispositivos compostos de portas lógicas de propósito geral que podem ser configurados (programados). OBS.: Field indica que o usuário pode programar (em geral, é necessário aparelho especial para tal). Field se contrapõe àqueles que vem programados de fábrica e que não permitem a programação pelo usuário. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 195 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPGA - field programmable gate array fig 5.18 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 196 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPGA - field programmable gate array As entradas das portas NAND podem ser configuradas (romper ou não o fusível) para a definição da lógica a ser realizada. Para cada entrada podemos definir a sua participação (com lógica positiva ou negativa) ou não na lógica NAND/AND. Ou seja, pode ser configurada para produzir produtos lógicos (and/nand) das variáveis de entrada. Cada saída do dispositivo pode ser configurado para se comportar como porta NAND ou AND dependendo do fusível do XOR. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 197 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPGA - exemplo decodificador 3 x 8 A2 A1 A0 A2* A1* A0* A2* A1* A0 A2* A1 A 0* A2* A1 A 0 A2 A1* A 0* A2 A1* A 0 A2 A1 A0* A2 A1 A0 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 198 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPGA - Exemplo de aplicação fig. 5.19 tabela 5.9 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 199 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPGA - Exemplo de aplicação fig. 5.20 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 200 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPLA / PLA (Field Programmable Logic Array / Programmable Logic Array) Possui adicionalmente a capacidade da função lógico OR (é possível implementar somas de produtos). PLA possui lógica interna parecida com as ROMs, entretanto não há a decodificação fixa n n para 2 . Na PLA este circuito decodificador é substituído por um array programável de ANDs. ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 201 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores ROM - estrutura interna figura 5.21 * 2 A * 2 A * 2 A * 2 A * 2 A 2 A 1 D * 1 A * 1 A 1 A 1 A A * 1 * 1 A * A 2 1 A 2 A 1 0 A 2 A 2 D 1 0 A 1 D 0 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 202 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores ROM - estrutura interna em termos de portas lógicas A2 A1 A0 * 2 A * 1 A * 2 A * 1 A * 2 A 1 A * 2 A 2 A 2 D 1 D * * * A2 A1 A0 * * A2 A1 A0 * * A2 A1 A0 * A2 A1 A0 * * A2 A1 A0 * A2 A1 A0 * A2 A1 A0 * A 1 1 A * 2 A 1 A 2 A 1 0 A D 0 A2 A1 A0 D2 D1 D0 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 203 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPLA figura 5.23 * 2 A * 1 A * 2 A * 1 A * 2 A 1 A * 2 A 2 A 2 D 1 D * A 1 1 A * 2 A 1 A 2 A 1 0 A D 0 16 X 48 X 8 16 entradas - 48 ANDs - 8 saídas ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 204 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores FPLA - exemplo (16 x 48 x 8) * 2 A * 1 A * 2 A * 1 A * 2 A 1 A * 2 A 2 A 2 D 1 D * A 1 1 A * 2 A 1 A 2 A 1 0 A D 0 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 205 Capítulo 5 - Memória em Microcomputadores ____________________________________________________________________________ Projeto de decodificadores PAL (Programmable Array Logic): matriz de ANDs programável matriz de ORs fixa. figura 5.24 * 2 A * 1 A * 2 A * 1 A * 2 A 1 A * 2 A 2 A 2 D 1 D * A 1 1 A * 2 A 1 A 2 A 1 0 A D 0 ____________________________________________________________________________ EA078 Micro e Minicomputadores: Hardware - Prof. J.M. De Martino 206