mapeamento de memÓria - politecnica.pucrs.brjclima/arquivospdf/memoria.pdf16kbytes de ram. a rom...

9

Click here to load reader

Upload: lamdien

Post on 18-Jun-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

MAPEAMENTO DE MEMÓRIA

Há hoje em dia uma grande variedade de microprocessadores disponíveis no mercado, os quais seguem variações de uma arquitetura proposta por von Neumann na década de 40. Não importando se o dispositivo é atual ou ultrapassado, a discussão proposta nesta lista de exercício, é de como realizar projetos para o acionamento de memórias e de dispositivos de entrada/saída (I/Os), seguindo as especificações de um determinado microprocessador. A escolha de qual processador deve ser utilizado, que será feita mais tarde, às vezes não é muito objetiva e mais parece com uma torcida de futebol, onde cada torcedor enaltece o seu time e tenta desqualificar o adversário. Na verdade não existe um único microprocessador adequado ou correto, que sendo aplicado a qualquer tipo de aplicações, seja capaz de atender requisitos tão diversos como custo, tamanho, consumo de energia, complexidade de hardware, facilidade de programação, facilidade de gravação, facilidade de aquisição, documentação, entre outros aspectos. Logo, se existe uma grande variedade de dispositivos, o importante é então compreender os princípios básicos de funcionamento dos mesmos, de forma a se adaptar a qualquer tipo de microprocessador (ou microcontrolador) que se venha trabalhar. Neste texto serão apresentados alguns exemplos de dispositivos comerciais e exercícios de projeto. Observe as orientações e represente os circuitos solicitados.

Todos os diagramas de tempo, pinagem e especificações foram retiradas dos manuais dos dispositivos encontrados em artigos na internet. Para maiores detalhes, sugere-se a consulta direta aos manuais dos mesmos nos sites dos fabricantes. Na Wikipédia você pode encontra um resumo da vida do matemático John von Neumann (http://pt.wikipedia.org/wiki/John_von_Neumann), brilhante cientista, cujos esforços contribuíram significativamente para o avanço da ciência em áreas do conhecimento como a Matemática (Teoria dos Jogos, Teoria dos Conjuntos, Análise Numérica), Física (Hidrodinâmica, Mecânica Quântica, Reações Termonucleares), Eletrônica (concepção de circuito lógicos) e Computação (conceito de programa armazenado, descrição de uma arquitetura de computador, teoria de autômatos). Os resultados de suas pesquisas tiveram implicações diretas no desenvolvimento bélico dos EUA, tendo participado do projeto Manhattan em pesquisas relacionadas com reações termonucleares que culminaram com a construção da bomba atômica e da bomba de hidrogênio. M ICROPROCESSADOR 6502 Na época em que foi lançado, foi o microprocessador mais barato do mercado, competindo diretamente com dispositivos de grandes fabricantes como Motorola e Intel. Talvez, por seu baixo custo, tenha sido escolhido por Steve Wozniak e Steve Jobs, fundadores da Apple Computer, para a construção dos computadores Apple I e Apple II, bem como pela Commodore, para a construção de seus computadores de uso pessoal Commodore 64. Foi utilizado em diversas plataformas de jogos eletrônicos como os da Nintendo, se popularizando em consoles de jogos domésticos como o Atari 2600. É um

Page 2: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

microprocessador de 8 bits, desenvolvido por Chuck Peddle para a MOS Technology, mais tarde licenciado para a Rockwell e Synertek. A equipe que desenvolveu este microprocessador foi a mesma que desenvolveu o 6800 da Motorola. Sua arquitetura é bastante simples. A figura 1 apresenta a pinagem deste microprocessador.

Figura 1 – Pinagem do microprocessador 6502

A0-A15 – Formam o barramento de endereço. São 16 linhas capazes de endereçar 64K posições (65536 posições = 64 x 1024) de memória e dispositivos de I/O. No microprocessador 6502, os dispositivos de I/O são mapeados como memória, uma vez que este processador só possui uma linha de controle para sinalizar acesso externo, sinalizando desta forma, apenas o sentido do fluxo de dados. D0 – D7 – Formam o barramento de dados, o qual é de 8 bits. As demais linhas formam o barramento de controle. RDY é utilizada para adicionar “estados de espera” em operações em que a memória ou dispositivos de I/O trabalhem de forma mais lenta do que o processador. Um sinal “0” adiciona um ciclo de espera. Φ0 é a entrada de clock do sistema e Φ1 e Φ2 são sinais de sincronismo. IRQ e NMI são entradas de interrupção (respectivamente mascarável e não mascarável). RES é a entrada de reset (ativo baixo). SYNC sinaliza o início de um ciclo de busca de instrução. SO é utilizada para setar a flag de overflow. Estas linhas não serão utilizadas nestes exercícios. No caso de um projeto real, as linhas RDY e SO deveriam ser colocadas em VCC, as linhas IRQ e NMI deveriam estar ligadas em resistores de pull-up, Φ0 deveria ser ligada ao clock, RES deveria ser ligada ao circuito de reset e as demais saídas SYNC, Φ1 e Φ2, poderiam ser deixadas em aberto. A linha R/W serve para sinalizar que o microprocessador faz acesso a dispositivos externos (com as memórias ou com os I/Os), indicando o “sentido” da “conversa”. Utilize esta linha para construir o circuito decodificador.

Page 3: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

A figura 2 apresenta os ciclos de máquina de leitura e de escrita da memória ou dos dispositivos de I/O. Observe que não existe diferenciação nos ciclos de memória e de I/O por existir apenas a linha de controle R/W.

Figura 2 – Ciclo de escrita e de leitura do 6502

EXERCÍCIOS

1. Utilizando o 6502, projete um sistema de memória contendo 32Kbyte de ROM e 16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ao circuito um display de 7 segmentos do tipo anodo comum, nos endereços EXXXh e um circuito de teclado (8 teclas) nos endereços FXXXh. Represente o mapa de memória. Você conta com memórias do tipo 2764 e 6264. Projete o circuito apenas com portas lógicas e decodificadores 74139.

2. Refaça o exercício 1, utilizando apenas portas lógicas e decodificadores 74138.

3. Utilizando o 6502, projete um sistema de memória contendo 48Kbyte de ROM e

8Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em E000h. Conecte ao circuito quatro displays de 7 segmentos não multiplexados, nos endereços CXXXh. Represente o mapa de memória. Você conta com memórias do tipo 27128 e 6232. Projete apenas com portas lógicas e decodificadores 74138.

4. Refaça o exercício 3, utilizando apenas portas lógicas e comparadores 74688.

5. Refaça o exercício 3, utilizando apenas portas lógicas e comparadores 7485.

M ICROPROCESSADOR Z80 Foi por muitos anos um dos dispositivos mais utilizados tanto para fins comerciais como militares. Ainda hoje é utilizado em circuitos de aviônica (pois mostrou-se extremamente confiável) e na industria do entretenimento (Nintendo, Sega, Nanco, entre outras) pois é muito barato e possui uma grande variedade de jogos já desenvolvidos (Pac-Man, Galaga, Asteroids, River Raid, etc). Foi utilizado pela Nintendo para a construção de uma linha de videogames portáteis chamados Gameboy e Gameboy Color. É um microprocessador de 8 bits, desenvolvido por Frederico Faggin, fundador da Zilog juntamente com Ralph Ungermann. Frederico Fagin, (Físico e Engenheiro Elétrico) trabalhou na SGS Fairchild onde foi o responsável pelo desenvolvimento da tecnologia

Page 4: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

MOS e o pelo desenvolvimento do primeiro circuito integrado. Na Intel foi responsável pelo desenvolvimento do primeiro microprocessador comercial, o Intel 4004, além de participar na elaboração do microprocessador Intel 8080. O Z80 surgiu como uma evolução da plataforma do Intel 8080, possuindo todo o seu conjunto de instruções. A figura 3 apresenta a pinagem deste microprocessador.

Figura 3 – Pinagem do microprocessador Z80.

A0-A15 – Formam o barramento de endereço. São 16 linhas capazes de endereçar 64Kbytes de memória e 256 dispositivos de I/O. O Z80 permite a construção de circuitos onde os I/Os podem ser mapeados em endereços exclusivos (utilizando a linha IORQ) ou mapeados como memória (utilizando a linha MREQ). Quando os I/Os não são mapeados como memória, o Z80 utiliza apenas as oito linhas de endereço menos significativas do barramento de endereços (A0..A7). D0 – D7 – Formam o barramento de dados, o qual é de 8 bits. As demais linhas formam o barramento de controle. BUSRQ e BUSACK são utilizadas para controle de todos os barramentos por um dispositivo externo. São utilizadas em situações em que um dispositivo externo quer acionar as memórias e os I/Os diretamente, sem a intervenção do microprocessador (acesso chamado de DMA – Direct Memory Access). M1 sinaliza que o microprocessador iniciou um ciclo de leitura de uma instrução. HALT sinaliza que o microprocessador executou uma instrução de halt e entrou em “stand-by”. RFSH é utilizada para realizar automaticamente operações de refresh em memórias dinâmicas. WAIT é utilizada para adicionar “estados de espera” em operações em que a memória ou dispositivos de I/O trabalhem de forma mais lenta do

Page 5: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

que o processador. CLK é utilizada para entrada de clock do sistema. INT e NMI são entradas de interrupção (respectivamente mascarável e não mascarável). Estas linhas não serão utilizadas nos exercícios aqui propostos. No caso de um projeto real, as linhas BUSRQ e WAIT deveriam ser colocadas em VCC, as linhas INT e NMI deveriam estar ligadas a resistores de pull-up e as demais saídas M1, HALT , RFSH e BUSACK, poderiam ser deixadas em aberto. As linhas MREQ, IORQ servem para sinalizar se o microprocessador está fazendo acesso as memórias ou aos dispositivos de I/O. Já as linhas RD e WR servem para indicar o “sentido” dos dados. Utilize estas linhas para construir o circuito decodificador.

A figura 4 apresenta os ciclos de máquina de leitura e de escrita da memória. Desconsidere o sinal de WAIT, pois o mesmo não está sendo utilizado e deve ser colocado em “1”, ou seja, sem adição de ciclos de espera.

Figura 4 – Ciclos de leitura e escrita na memória.

Obs.: Os ciclos de I/O são semelhantes, diferindo no número de pulsos de clocks utilizados (4 por ciclo), no sinal de controle, IORQ ao invés de MREQ, e no número de linhas de endereço (apenas 8 - A0..A7). EXERCÍCIOS

6. Utilizando o Z80, projete um sistema de memória contendo 32Kbyte de ROM e 16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ao circuito um display de 7 segmentos do tipo anodo comum, nos endereços 2Xh e um circuito de teclado (8 teclas) no endereço 3Xh. Represente o mapa de memória. Você conta com memórias do tipo 2764 e 6264.

7. Modifique o circuito do exercício 6, de forma a colocar os dispositivos de I/O

mapeados em memória (em posições livres), mapeando-os de forma redundante.

Page 6: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

8. Utilizando o Z80, projete um sistema de memória contendo 24Kbyte de ROM e 8Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em C000h. Conecte ao circuito quatro displays de 7 segmentos não multiplexados, mapeados em memória, nos endereços 8XXXh. Represente o mapa de memória. Você conta com memórias do tipo 2764 e 6232.

9. Modifique o circuito do exercício 8, de forma a colocar o mesmo display, agora

mapeado como I/O (controlado por IORQ) nos endereços 70h..8Fh (mapeamento redundante).

10. Resolva os exemplos 6 e 8, utilizando apenas circuitos comparadores 74688 e

portas lógicas.

11. Resolva os exemplos 6 e 8, utilizando apenas circuitos comparadores 7485 e portas lógicas.

M ICROPROCESSADOR 8085 Sucessor do microprocessador 8080 da Intel, trouxe uma série de simplificações de hardware (fonte única de 5Volts, circuito de clock embutido) e novos recursos (interface serial do tipo UART). Também é um microprocessador de 8 bits. Difere de seus concorrentes por possuir um conjunto grande de entradas de interrupção. De modo a permitir a construção de dispositivos com um numero maior de entradas e saidas no mesmo invólucro de 40 pinos, a Intel optou por multiplexar as linhas de endereço (parte menos significativa – A0..A7) com as linhas de dados (D0..D7), surgindo um barramento com a designação AD0..AD7. A figura 5 apresenta a pinagem deste microprocessador.

Figura 5 – Pinagem do microprocessador 8085.

Page 7: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

Obs.: O latch que aparece no circuito é necessário para demultiplexar (separar) os sinais de dados dos sinais de endereço (menos significativos – A0..A7). O emprego deste microprocessador requer sempre a utilização deste latch. A0-A15 – Formam o barramento de endereço. São 16 linhas capazes de endereçar 64Kbytes de memória ou 256 dispositivos de I/O. Os dispositivos de I/O podem ser mapeados com endereços exclusivos ou como memória, dependendo do estado da linha IO/M. Quando os I/Os não são mapeados como memória, o 8085 utiliza apenas as oito linhas de endereço menos significativas do barramento de endereços (A0..A7). D0 – D7 – Formam o barramento de dados, o qual é de 8 bits. O barramento de endereços (8 bits menos significativos) e o barramento de dados são multiplexados. Para separar estes sinais é necessário acrescentar um latch externo (74LS373) o qual é controlado pelo sinal ALE que indica quando o conteúdo do barramento é de dados e quando é de endereços. As demais linhas formam o barramento de controle. X1 e X2 são entradas para o cristal oscilador e CLKout é a saída de clock. RESETin (ativo alto) é a entrada de reset (inicialização) e RESETout a saída de reset que pode ser utilizada para resetar periféricos. SID é a entrada da UART e SOD a saída da UART (porta serial). TRAP, RST7.5, RST6.5, RST5.5 e INTR são entradas de interrupção e INTA é a saída que sinaliza o reconhecimento do pedido de interrupção. HOLD e HLDA são utilizadas para controle de todos os barramentos. São utilizadas em situações que um dispositivo externo quer acionar as memórias e os I/Os diretamente (DMA). READY é utilizada para adicionar “estados de espera” em operações em que a memória ou os dispositivos de I/O trabalham de forma mais lenta do que o processador. S1 e S0 sinalizam o “status”do microprocessador. IO/M sinaliza quando o acesso é para dispositivos de I/O (IO/M = 1) ou quando é para memória (IO/M = 0). RD e WR servem para indicar o “sentido” da “conversa”.

A figura 6 apresenta um ciclo de máquina de leitura da memória. O ciclo de escrita é semelhante, diferindo apenas no sinal de controle (WR ao invés de RD).

Figura 6 – Ciclos de leitura na memória do 8085.

Page 8: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

Obs.: Os ciclos de I/O diferem apenas no estado do sinal IO/M. Quando o acesso é para a memória, IO/M é “0” e quando é para acessar os dispositivos de I/O, IO/M vale “1”. EXERCÍCIOS

12. Utilizando o 8085, projete um sistema de memória contendo 32Kbyte de ROM e 16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Adicione ao circuito um display de 7 segmentos do tipo anodo comum, mapeados nos endereços 00h..3Fh. Represente o mapa de memória. Você conta com memórias do tipo 27128 e 6232.

13. Modifique o circuito do exercício 12, de modo a mapear o display em memória

em uma área livre, de forma redundante e de modo a utilizar o menor número de linhas de endereço possível.

14. Utilizando o 8085, projete um sistema de memória contendo 24Kbyte de ROM e

8Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em C000h. Adicione ao circuito quatro displays de 7 segmentos do tipo anodo comum multiplexados. Mapeie o display de forma redundante e de modo a utilizar o menor número de linhas de endereço, como I/O mapeado em memória. Represente o mapa de memória. Você conta com memórias do tipo 2764 e 6232.

15. Modifique o circuito do exercício 14 de modo a mapear o display em endereços

exclusivos (não mapeados em memória), na faixa 40h à 7fh. M ICROPROCESSADOR 8086

A figura 7 apresenta a pinagem do microprocessador 8086 no modo “Min” (um único processador). Este mesmo microprocessador pode trabalhar no modo “Max” o qual permite implementar circuitos com múltiplos processadores. A0–A19 - Formam o barramento de endereços. Pode acessar até 1Mbyte de memória e 65536 dispositivos de I/O (neste caso utilizando apenas as linhas A0..A15). D0-D15 – Formam o barramento de dados de 16 bits. Este barramento é multiplexado com o barramento de endereços (A0..A15). O sinal ALE é utilizado para sinalizar a condição do barramento (Dados ou Endereços). São necessários dois latches do tipo 74373 para demultiplexar os barramentos. Ao circuito deve-se acrescentar dois buffers para aumentar a velocidade do barramento. O controle destes buffers é feito pelas linhas DT/R (Data transmit/Data Receive) e DEN (Data Enable).

Page 9: MAPEAMENTO DE MEMÓRIA - politecnica.pucrs.brjclima/ArquivosPDF/Memoria.pdf16Kbytes de RAM. A ROM inicia em 0000h e a RAM inicia em 8000h. Conecte ... mapa de memória. Você conta

Figura 7 – 8086 no modo “Min” – único microprocessador.

Para sinalizar se o acesso é para a memória ou é para os dispositivos de I/O, o 8086 utiliza a linha M/IO (M/IO = 0, acesso é para I/O e M/IO = 1, acesso é para a memória). Os sinais RD e WR sinalizam o sentido dos dados e BHE em conjunto com A0 fazem o alinhamento dos dados (8 ou 16 bits). Observe a tabela verdade ao lado do diagrama elétrico para verificar o funcionamento de BHE. Os demais sinais do microprocessador são de controle e não serão utilizados na decodificação dos circuitos de memória e de I/O. EXERCÍCIO

16. Utilizando o 8086, projete um sistema de memória contendo 512Kbyte de ROM e 256Kbytes de RAM. A ROM inicia em 00000h e a RAM começa após o término da memória ROM. Represente o mapa de memória. Você conta com memórias do tipo 27512 e 62512.