EA078 - Micro e minicomputadores: Hardware
2o Semestre de 1999 – 1a Prova - Prova I - Duração: 2 horas - Sem consulta
Questão 1(valor 2.5 pts) Responda suscintamente 5 (cinco) dos enunciados abaixo:
(0.5 pt) 1) O que é tempo de setup? Ilustre com diagrama de tempo (timing diagram).
(0.5 pt) 2) O que são estados de espera (wait state) num ciclo de barramento? Ilustre com diagrama de tempo (timing diagram).
(0.5 pt) 3) Cite duas diferenças essenciais entre um ciclo de leitura e um ciclo de escrita.
(0.5 pt) 4) Qual é a função do sinal de DTACK*?
É um sinal de handshake (cumprimento) gerado pelo periférico que está sendo acessado. Sua função é indicar que o conteúdo do barramento de dados é válido. No caso de 68000, ele aguarda este sinal num ciclo de barramento para proceder o ciclo.
(0.5 pt) 5) Em que consiste a estratégia de decodificação por endereço parcial? Exemplifique.
(0.5 pt) 6) Cite e justifique dois critérios que devem ser utilizados para o projeto de um decodificador de endereços.
(0.5 pt) 7) Qual é a diferença básica entre PLA (programmable logic array) e a PAL (programmable array logic) sob o ponto de programabilidade dos arranjos de portas AND e OR?
O PLA tem arranjos de AND e OR programáveis; enquanto o PAL tem somente o arranjo de AND programável. No segundo caso, o arranjo de OR é fixo.
Questão 2 (valor 2.5 pts.)
Considere os diagramas de tempo do 68000 e os diagramas de tempo da memória RAM Intel 5164S/L--10 em anexo (Para as perguntas abaixo, considere OE* e CS2 de 5164S/L estarem sempre ativados e CS* ser derivado de DS* com os atrasos desprezíveis)
(1.0 pt) 1) Verifique a compatibilidade temporal destes dois componentes no ciclo de leitura, com 68000 trabalhando a 8 MHz. Justifique a sua resposta.
Dois componentes são temporalmente compatíves, se todas as suas restrições temporais do ciclo de leitura forem satisfeitas. Como CS2 = 1 e OE* = 0, só os seguintes parâmetros da mamória devem ser verificadas:
3 x tcyc - tCLAV - tDICL,
onde tcyc (125 ns), tCLAV (max. 70 ns) e tDICL (min. 15 ns) são, respectivamente, o período do relógio, o tempo necessário para disponibilizar o endereço válido no barramento e o tempo de setup da UCP.3 x tcyc - tCLAV - tDICL - tAVSL - tDALDI - t1,
onde tDALDI (max. 90 ns), tAVSL (min. 30 ns) e t1 são, respectivamente, o tempo de setup para entrada de dados, o tempo entre o endereço válido e o sinal de strobe e o atraso entre o sinal de strobe e a ativação de CS*. Pelo enunciado do problema, t1 é desprezível, então tCLZ deve ser menor que3 x tcyc - tCLAV - tDICL - tAVSL - tDALDI.
Substituindo os valores fornecidos pelos fabricantes, é fácil verificar que as restrições temporais dos dois componentes são compatíveis, sem estados de espera.
(1.0 pt) 2) Verifique a compatibilidade temporal destes dois componentes no ciclo de escrita, com 68000 trabalhando a 8 MHz. Justifique a sua resposta.
Devemos verificar se os parâmetros temporais do ciclo de escrita da memória atendem as restrições temporais do ciclo de escrita do 68000, sem estados de espera. Para a configuração dada, as expressões que relacionam estes parâmetros são derivadas no exercício 31 do capítulo 4 do livro-texto:
Substituindo os valores fornecidos pelos fabricantes, é fácil ver que as desigualdades são satisfeitas.
(0.5 pt) 3) Serão necessários estados de espera (wait state/I>)? Justifique.
Os estados de espera são introduzidos para garantir que o sinal DTACK* vá para zero (0) pelo menos 20 ns antes do término do estado S4 (terceira borda de descida após o início do ciclo de barramento). O sinal DTACK*, por sua vez, é um sinal do escravo (no caso, da memória) para o processador, avisando-o de que os dados requisitados estão (ou quase estão) disponíveis. Quando este sinal não é gerado automaticamente pelo escravo, o projetista deve projetar um circuito que gere apropriadamente o sinal DTACK* em cada ciclo de barramento (ver Questão 3). No caso da memória, podemos derivá-lo a partir dos sinais de strobe e/ou de CS* e garantir que o tempo reservado para acesso à memória
3 x tcyc - tCLAV - tDICL,
seja maior ou igual ao tempo de acesso da memória tAA.
Vale ressaltar que para o ciclo de escrita os sinais de strobe de dados são gerados pelo processador quando estes são disponíveis no barramento. Normalmente, deriva-se então o sinal DTACK* a partir dos sinais de strobe de dados, que certamente são temporalmente compatíveis com o término do estado S4.
Questão 3 (valor 2.0) Seja um gerador de DTACK* baseado
no contador 74LS161 mostrado em anexo.
(1.0 pt) 1) Considere os diagramas de tempo de ciclo de leitura e de escrita do 68000 em anexo e suponha que CS* seja igaul aos sinais de strobe de dados. Analise o funcionamento do gerador através de um diagrama de tempo.
Enquanto CS*=1, ENABLE/LOAD*=0 e o valor N da entrada paralela, determinado por DdDcDbDa, é carregado. No estado S2, quando UDS*/LDS* forem ativados (quando se inicia o acesso váido de memória), CS* que os segue também é ativado e a contagem a partir de N (no caso, 1100) é habilitada. Após três ciclos de relógio, QdQcQbQa=0000. Como DTACK* é derivado diretamente de Qd, DTACK* será ativado. Segue-se então a desativação de UDS*/LDS* e CS*. Como resultado, ENABLE/LOAD* volta a ser 0 e a entrada paralela é novamente carregada.
(0.25pt) 2) Quando o contador é habilitado? Justifique.
Quando UDS*/LDS* = 0, pois o sinal ENABLE/LOAD* = NOT((UDS* AND LDS*) OR CS*) e CS*=UDS*/LDS* pelo enunciado.
(0.25 pt) 3) Quando o contador é desabilitado? Justifique.
Quando UDS*/LDS* = 1, pelo mesmo motivo dado no item (2).
(0.5 pt) 4) Como se pode alterar o tempo de ativacão do sinal de DTACK* em relação à ativação de CS*? Exemplifique, considerando que o tempo tenha que ser maior do que da configuração dada.
Basta alterar a entrada paralela DdDcDbDa. Se modificarmos, por exemplo, esta entrada para 1011, 4 ciclos de relógio serão necessários para Qd voltar a ser zero. Consequentemente, estaremos inserindo mais dois estados de espera.
(0.5 pt) 2) Esboce o mapa de memória, mostrando explicitamente os cálculos dos endereços finais e iniciais de cada bloco de memória.
Devemos mapear os 4 blocos de memória ROM, 4 blocos de memória RAM e os dois periféricos de 16 Bytes ( = 24, endereçáveis por 4 linhas) no espaço de memória de 68000 que vai de 00 0000H até FF FFFFH, procurando utilizar como endereço inicial de cada bloco um múltiplo do seu tamanho para facilitar o projeto de decodificador.
(0.5 pt) 3) Faça a tabela de decodificação de endereços.
Seja DDDD a representação em hexadecimal do último dígito do seu número de matrícula:
A23 -- A20 | A19 -- A16 | A15 -- A12 | A11 | A10 | A09 | A08 | A07 -- A04 | A03 -- A00 | |
---|---|---|---|---|---|---|---|---|---|
ROM1 | 0000 | 0000 | 0000 | 0 | 0 | 0 | X | XXXX | XXXX |
ROM2 | 0000 | 0000 | 0000 | 0 | 0 | 1 | X | XXXX | XXXX |
ROM3 | 0000 | 0000 | 0000 | 0 | 1 | 0 | X | XXXX | XXXX |
ROM1 | 0000 | 0000 | 0000 | 0 | 1 | 1 | X | XXXX | XXXX |
RAM1 | 0000 | 0000 | DDDD | 0 | 0 | 0 | X | XXXX | XXXX |
RAM2 | 0000 | 0000 | DDDD | 0 | 0 | 1 | X | XXXX | XXXX |
RAM3 | 0000 | 0000 | DDDD | 0 | 1 | 0 | X | XXXX | XXXX |
RAM4 | 0000 | 0000 | DDDD | 0 | 1 | 1 | X | XXXX | XXXX |
PERI1 | 1111 | 0000 | 0000 | 0 | 0 | 0 | 0 | DDDD | XXXX |
PERI2 | 1111 | 0000 | 0000 | 0 | 0 | 0 | 0 | DDDD+1 | XXXX |
(1.5 pt) 4) Projete um decodificador de endereço completo com uso dos decodificadores 74138 (3--8) ou 74154 (4--16).
Uma possível realização do decodificador com uso de 74138 e 74154:
Algumas observações:
Last modified: Fri Sep 10 19:20:24 BRA 1999
Sugestões para ting@dca.fee.unicamp.br
Voltar para a página do curso.