Sistemas Digitais e Microprocessadores-UFPR

Sistemas Digitais e Microprocessadores-UFPR

(Parte 1 de 9)

Sistemas Digitais e Microprocessadores

Roberto A Hexsel1

Departamento de Informatica Universidade Federal do Parana

1 c© Roberto A Hexsel 2001-2006

Sumario

1.1 Algebra Booleana2
1.2 Formulas4
1.3 Tipos5

1 Especificacao Formal para Projetistas de Circuitos 2

2.1 Circuitos Combinacionais Basicos6
2.1.1 Multiplexador6
2.1.2 Demultiplexador8
2.1.3 Seletor9
2.2 Implementacao em TTL10
2.2.1 Multiplexador 7415110
2.2.2 Decodificador 741541
2.2.3 Seletor 7413812
2.3 Deslocamentos14
2.3.1 Deslocador Logarıtmico15
2.3.2 Rotacao16
2.4 Implementacao em CMOS17
2.4.1 Portas Logicas18
2.4.2 Terceiro Estado20

2 Circuitos Combinacionais 6

3.1 Circuitos com Memoria2
3.2 Flip Flops24
3.3 Contadores24
3.3.1 Ripple Counter25
3.3.2 Contadores Sıncronos26
3.3.3 7416327
3.3.4 7419129
3.4 Registradores de Deslocamento30
3.4.1 7416431
3.4.2 7419431
3.4.3 Contador em Anel32
3.4.4 Contador Johnson3

3 Circuitos Sequenciais 2 i

3.4.5 Somador Serial34
3.5 Uma Rapida Olhada no Relogio34
3.6 Velocidade Maxima de Operacao36
3.7 Projeto de Maquinas de Estados38
3.7.1 Diagrama de Estados38
3.7.2 Implementacao de Maquinas de Estado41
3.7.3 Maquina de Vender Chocolates42
3.8 Micro-controladores45
3.8.1 Memoria ROM45
3.8.2 Micro-controlador Baseado em ROM46
3.8.3 Controle de Fluxo47
3.8.4 Maquina de Vender Chocolates – Versao 250
3.9 Circuitos Complexos52
3.9.1 Bloco de Registradores52
3.9.2 Memoria RAM54
3.9.3 Pilha5
3.9.4 Fila Circular58

Sumario i

4.1 Tipos de Memoria61
4.2 Interface Processador–Memoria62
4.2.1 Intertravamento dos Sinais na Interface63
4.2.2 Ciclo de Leitura64
4.2.3 Ciclo de Escrita64
4.3 Circuitos Integrados de Memoria65
4.3.1 Um Bit6
4.3.2 Varios Bits6
4.3.3 Muitos Bits6
4.3.4 Memoria com Largura Nao-unitaria71
4.3.5 Milhoes de Bits71
4.3.6 Memoria Rapida73
5.1 Organizacao de um Computador com o Mico75
5.2 Organizacao do Processador76
5.3 Unidade de Logica e Aritmetica78
5.4 Conjunto de Instrucoes80
5.4.1 Instrucoes de Logica e Aritmetica80
5.4.2 Movimentacao de Dados Entre Memoria e Registradores82
5.4.3 Saltos e Desvios82
5.4.4 Suporte a Funcoes84
5.4.5 Instrucoes de Entrada e Saıda84
5.4.7 Modos de Enderecamento85
5.4.8 Codificacao das Instrucoes85
5.5 Execucao das Instrucoes8
5.5.1 Fases de Execucao das Instrucoes8
5.5.2 Diagrama de Estados91
5.6 Interface com Memoria93
5.6.1 Inter-travamento dos Sinais na Interface93
5.6.2 Ciclo de Busca95
5.6.3 Ciclo de Leitura95
5.6.4 Ciclo de Escrita95
5.6.5 Ciclos de Entrada/Saıda96
5.6.6 Circuito de Memoria96
5.7 Circuito de Controle97
5.7.1 Sinais da Interface com Memoria97
5.7.2 Sinais de controle do circuito de dados98
5.7.3 Controle Microprogramado100
5.7.4 Busca Antecipada103
5.8 Espacos de Enderecamento105
5.9 Perifericos106

Sumario i

6.1 Implementacao de Sistemas de Memoria1
6.1.1 Sistema de Memoria com Referencias Fracionarias112
6.1.2 Sistema de Memoria com Capacidade Configuravel114
6.2 Barramentos115
6.2.1 Barramento Multiplexado115
6.2.2 Barramento com Sobreposicao de Fases117
6.2.3 Barramento Assıncrono118
6.2.4 Sistema de Memoria com Referencias em Rajadas120
6.2.5 Sistema de Memoria com Referencias Concorrentes122
6.3 Desempenho de Sistemas de Memoria124
6.4 Barramento Multi-mestre125
6.4.1 Acesso Direto a Memoria125

6 Sistemas de Memoria 1

7.1 Interrupcoes128
7.1.1 Sinais de Interrupcoes129
7.1.2 Vetor de Interrupcoes129
7.1.3 Transacoes de Barramento131
7.1.4 Cadeia de Aceitacao132
7.1.5 Salvamento do Contexto de Execucao132
7.2 Interface Paralela134
7.2.2 Ligacao ao Processador136
7.2.3 Modos de Operacao137
7.2.4 Programacao138
7.2.5 Interrupcoes139
7.3 Interface Serial140
7.3.1 Comunicacao Serial140
7.3.2 Ligacao ao Processador143
7.3.3 Programacao145
7.3.4 Double Buffering147
7.3.5 Interrupcoes148
7.4 Interfaces Analogicas149
7.4.1 Representacao Digital de Sinais Analogicos150
7.4.2 Conversor Digital–Analogico150
7.4.3 Conversor Analogico–Digital152
7.5 Contadores e Temporizadores154
7.5.1 Modos de Operacao154

Sumario iv

8.1 Acesso a Estruturas de Dados156
8.1.1 Calculo de enderecos157
8.1.2 Segmentos de Codigo, Dados e Pilha158
8.2 Funcoes158
8.2.1 Variaveis Locais159
8.2.2 Avaliacao de parametros160
8.2.3 Instrucoes de Chamada e de Retorno160
8.2.4 Convencoes161

Introducao

Este texto contem material introdutorio sobre sistemas digitais e microprocessadores. O nıvel do texto e mais aprofundado que o de outros textos sobre sistemas digitais ([Kat94, TS89]), e menos aprofundado que a documentacao tecnica produzida por fabricantes de componentes (folhas de dados ou manuais). O objetivo deste texto e preparar o leitor para o material detalhado. Para tanto, o conteudo e generico e descritivo, abordando as questoes importantes sem contudo entrar em detalhes que sao irrelevantes para a compreensao do problema sob estudo.

Os exercıcios sao uma parte importante do texto, reforcam a compreensao e expandem o conteudo apresentado.

Convencoes

• Codigo C ou em linguagem de maquina (assembly) e grafado com tipo typewriter;

• nomes de sinais digitais sao grafados com tipo sans serif, e sinais ativos em zero (logica negada) sao grafados com o mesmo tipo, mas com uma barra acima do nome para indicar a negacao, grafado como sinal;

• nomes de sinais analogicos sao grafados com tipo slanted.

Capıtulo 1

Especificacao Formal para Projetistas de Circuitos

A proxima secao contem um resumo do material sobre Algebra de Boole que e relevante para projetistas de circuitos. A utilizacao de Algebra Booleana para representar o comportamento de circuitos digitais somente e aceitavel como uma simplificacao e idealizacao do comportamento dos sinais e das relacoes entre eles. Esta abordagem, especialmente o formalismo para a especificacao circuitos das Secoes 1.3 e 2.1, e baseada em [San90].

1.1 Algebra Booleana

Definicao 1.1 Uma algebra Booleana e uma tripla (IB,∧,∨) composta pelo conjunto IB = {a,b} e dois operadores chamados de conjuncao e disjuncao, denotados por ∧ e ∨ respectivamente, sobre os elementos de IB, que possuem as propriedades enumeradas abaixo.

Axioma 1.2 (Identidade) Define-se a identidade com relacao a ∨, chamada de zero tal que

Define-se a identidade com relacao a ∧, chamada de um tal que ∃ 1 ∈ IB • ∀ a ∈ IB • a ∧ 1 = a (1.3)

Axioma 1.3 (Complemento)

Axioma 1.4 (Comutatividade)

Capıtulo 1. Especificacao Formal para Projetistas de Circuitos 3

Axioma 1.5 (Associatividade)

Axioma 1.6 (Distributividade)

Define-se o dual de uma proposicao em uma Algebra Booleana a proposicao obtida pela troca de todas as ocorrencias de ∧ por ∨, e vice-versa, e de todas as ocorrencias de suas identidades 0 e 1. Isso significa que o dual de um axioma em uma Algebra Booleana tambem e um axioma. O Princıpio da Dualidade determina que o dual de um teorema tambem e um teorema e este pode ser provado substituindo-se cada passo da prova pelo seu dual.

Teorema 1.1 (Princıpio da Dualidade) O dual de qualquer teorema em uma Algebra Booleana tambem e um teorema.

Teorema 1.2 (Idempotencia)

Teorema 1.4 (Maximo e Mınimo)

Teorema 1.5 (Elementos de IB)

Alem das propriedades dos operadores, indicadas acima, dois outros teoremas sao uteis na manipulacao de equacoes. Sao eles o Teorema da Simplificacao e o Teorema de DeMorgan. O Teorema da Simplificacao, especialmente a formula (a), e que permite a eliminacao de variaveis pelo agrupamento de celulas nos Mapas de Karnaugh.

Teorema 1.6 (Teorema da Simplificacao)

Capıtulo 1. Especificacao Formal para Projetistas de Circuitos 4

O Teorema de DeMorgan permite expressar as funcoes logicas mesmo que as portas logicas disponıveis nao sejam as necessarias para implementar a funcao desejada. A Figura 1.1 mostra uma implementacao de um multiplexador com 4 portas nand. Note que a porta a esquerda e usada como inversor e a porta a direita como or. Note ainda que as inversoes nas saıdas das duas portas and cancelam as inversoes nas entradas da porta or.

p p p p p ppppppppppppp pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppprrb s a

Figura 1.1: Multiplexador implementado com quatro portas nand.

Do ponto de vista de tecnologia de circuitos integrados, uma questao importante e quanto ao conjunto mınimo de operadores que necessita ser provido aos projetistas para permitir a implementacao de qualquer funcao logica. Por exemplo, a porta logica basica da tecnologia TTL e a porta nand, e na tecnologia CMOS e a porta nor.

A Tabela 1.1 contem as 16 funcoes de duas variaveis em IB, e indica as funcoes mais conhecidas. Note que as funcoes = e 6= tambem sao conhecidas como xnor e xor ou ouexclusivo, respectivamente. O ou-exclusivo e representado pelo sımbolo ⊕. Quais sao as

Tabela 1.1: Funcoes de duas variaveis.

1.2 Formulas

Proposicoes em Calculo Proposicional sao formulas que podem ser verdadeiras ou falsas, mas nao sao as duas coisas ao mesmo tempo. As proposicoes podem ser combinadas pelo uso dos operadores logicos listados abaixo.

Capıtulo 1. Especificacao Formal para Projetistas de Circuitos 5

As descricoes formais dos circuitos neste texto indicam o tipo dos operandos e operadores. Os tipos basicos sao definidos pela Equacao 1.14.

IB Booleanos β elemento de IB

(Parte 1 de 9)

Comentários