Upload
diogo-varejao-aldeia
View
227
Download
0
Embed Size (px)
Citation preview
Introdução
Material de apoio:
Daltrini, Beatriz M.; Jino, Mario; Magalhães, Leo P.; Introdução a Sistemas de Computação Digital , São Paulo MAKRON Books, 1999.
Mury, Antonio Carlos, Curso de Eletrônica Digital, ETE”FMC”, 1994.
Contribuidores da Wikipédia , História da Computação, pt.wikipedia.org/wiki/História_da_computação
2ª Semana # Organização de um Computador #Memória
RegistradoresInstruções de Máquina
Interfaces de Entrada e Saída
Máquina Analítica - 1834
Organização
Dos Computadores
1833 Charles Babbage = Estrutura Básica para Sistemas Computacionais Sistemas podem ser programados para executarem diferentes tarefas;
Transferência seqüencial de informações; Impossibilidade de ligar a CPU aos periféricos 1 a 1Via de Dados , Via de Endereços e Via de Controle;
Ada Augusta (Lady Lovelance) – Lord ByronConseitos : SubRotinas - Laços
O projeto, totalmente mecânico, era composto de uma memória, um engenho central, engrenagens e alavancas usadas para a transferência de dados da memória para o engenho central e dispositivos para entrada e saída de dados. O calculador utilizaria cartões perfurados e seria automático.
Organização
Dos Computadores
Von Neuman (1903 - 1957)
Unidade de
Controle
Unidade Lógica e
Aritmética
Memória I/O
VIA DE ENDEREÇOS
VIA DE DADOS
VIA DE CONTROLE
UCP
Organização
Dos Computadores
Unidade Central de Processamento : • Controle de Todo o Sistema;• Manipulação dos Dados;• Acessa e interpreta instruções do programa contido na memória;• Executa operações Lógicas e Aritméticas
Memória : • Armazena os Programas;• Armazena os Dados que serão manipulados;
Dispositivos de Entrada e Saída : • Conexão do computador com sistemas externos
Barramento de Dados : Linhas paralelas que permitem a comunicação bidirecional entre CPU, Memórias e Dispositivos de IO. Somente um dispositivo utiliza o barramento de cada vez.Barramento de Endereços : Linhas paralelas unidericionais pelas quais a CPU habilita qual dispositivo utilizará o barramento de dados.
Barramento de Controle : Linhas por onde trafegam os sinais de controle e sinalização do sistema.
Registradores
FlipFlops:
Tem apenas dois estados estáveis(1/0, Alto/Baixo) e possui a capacidade de reter seu estado.Tem dois estados de saída sendo um o complemento do outro.Pode ser sensível ao nível(estado da entrada) ou a mudança de nível(borda de subida ou descida).
Registrador é o elemento básico de memória em um sistema computacional.
Um registrador é a ligação de FlipFlops sincronizados pelo mesmo relógio. O conteúdo de cada FlipFlop normalmente está associado a um bit de informação.
Registradores
Nunca muda de estado se as entradas R(reset) e S(set) são 0. Com 0 na entrada S e um na entrada R passa para o estado Q(saída)=0. Com 1 em S e 0 em R passa para o estado Q=1. R e S em 1 não definem um estado
válido.
R S Q0 0 Q0
1 0 00 1 11 1 ND
Registradores
Funciona como uma unidade de atraso, sua saída Q apresenta o estado da entrada D anterior ao último pulso de clock. .
D Q0 D0
1 D0
Registradores
Funciona similarmente ao RS porém apresenta um clock e inverte seu ultimo estado quando apresentar ambas entradas em nível lógico 1.
J K Q0 0 Q0
1 0 10 1 01 1 Q0
Note que o FlipFlop D apresenta lógica baixa na entrada ao contrário do JK.
Operações
Considerando dois registradores (A e B) formados por n(tamanho da palavra) flipflops JK.
A transferência de informação de a para b será efetuada quando o sinal de clock global do sistema juntamente com o sinal de controle (MOVE A
-> B) ativarem o clock dos flipflops do registrador B, mantendo o conteúdo de A inalterado.
Com Registradores
Monte um circuito de transferência de 2 bits usando flipFlops JK.
Exercício 2.1®:
Operações
Considerando dois registradores (A e B) formados por n(tamanho da palavra) flipflops JK.
A transferência de informação de a para b será efetuada quando o sinal de clock global do sistema juntamente com o sinal de controle (MOVE A
-> B) ativarem o clock dos flipflops do registrador B, mantendo o conteúdo de A inalterado.
Com Registradores
Operações
A saída do registrador será complementada ao sinal de clok. Essa operação é executada, por exemplo, para realizar subtração em
circuitos somadores.
Com Registradores
Operações
Essa operação tem a propriedade de deslocar os bits de um registrador com flipflops ligados em cadeia. Costuma ser utilizado para operações
de multiplicação.
Com Registradores
Operações
Operações de incremento e decremento são muito utilizadas em sistemas computacionais, desde a contagem de posições em vetores à marcação de posição de execução de um programa. Um contador pode
ser controlado como crescente ou decrescente. Ainda pode ser síncrono ou Assincrono.
Com Registradores
Monte um contador BCD, isto é um incrementador que reset quando chegar em 1010.
Exercício 2.2:
Monte um circuito capaz de efetuar somas com sinal e multiplicação de dois números binários de 4 bits. Esse circuito poderá ainda operar comparação de magnitude(<,>,=). Use portas lógicas e flipflops a
vontade.
Exercício 2.3 **DESAFIO**:
Operações
Com Registradores
UCP
Unidade de
Controle
Unidade Lógica e
Aritmética
UCP
Unidade Central de Processamento :
• Unidade Lógica e Aritmética
• Unidade de Registros
•Unidade de Controle
Sistema hipotético:
Organização
Dos Computadores
Un. Lógica
e Aritmética
Definiremos um sistema hipotético que possui uma ULA que opera dois registradores de 8 bits (A e B) e possui outro (F) para apresentar a saída com os seguintes Controles: M, S1 e S2 seleciona a operação a ser executada conforme a tabela:
STA e STB carrega o conteúdo do barramento de Dados nos registradores A e B respectivamente.
OE carrega o conteúdo de F no barramento de Dados.
S0 S1 M=0 op.Aritméticas M=1 op.Lógicas0 0 F = A plus B AND0 1 F = A minus B OR1 0 F = A X B NOT1 1 F = A /B XOR
Un. de Registros
Registros A e B :Registros de Propósito geral: armazenam informações variadas a serem processadas:• LD : Carrega inf. Do bar. De dados.• OE Entrega o conteúdo armazenado para o bar. De dados
Registro RI:Registrador de Instruções: Armazena o código da instrução a ser executada.• LD : Carrega inf. Do bar. De dados.
Registro REM:Registrador de endereço de memória: Armazena o endereço de memória a ser acessado.
Un. de Registros
Registro PC:Contador de Programa: Armazena o endereço da próxima instrução a ser buscada na memória. É incrementado a cada busca.•CKEN : Habilita incremento pelo Clock do sistema .•PCldl e PCldh: Carrega informação do Bar. De dados, bits menos significativos e mais significativos respectivamente.
Registro PSW:Registrador de Status: Armazena informações relevantes ao funcionamento da UCP.
Un. de Controle
Unidade de Controle :É a unidade que controla a execução das instruções:• Extrai a instrução da memória principal.• Interpreta o Código de operação (na ROM).•Controla a execução da instrução pelo sequenciamento dos sinais de controle.
Recebe o código da instrução proveniente de RI e possui um sequenciador que incrementa os bits menos significativos de endereço da ROM executando assim as microinstruções :
Un. de Controle
Unidade de Controle :
Além dos controles:• M, S1, S0, STA, STB, OEalu => Unidade Lógica e Aritmética • Ckenpc, LDpch, LDpcl, LDa, OEa, LDb, OEb, LDri, Ldrem, CkenremComanda:•MREQ(habilita memória),IORQ(habilita i/o),RD(leitura do dispositivo), WR(escrita no dispositivo) .
Sistema hipotético:
Organização
Dos Computadores
Transferência de dados :Transfere dados ou blocos de dados entre os registradores, posições de memória e barramento de dados.• MOVE A, B
Tratamento de operandos:Realizam operações aritméticas ou lógicas.• ADD A, B
Un. de Controle
TIPOS DE INSTRUÇÕES
Instruções de desvio:Determinam desvio no fluxo do programa.• JMP, Jcond, JSR, RET
Entrada/Saída:Comunicação da UCP com interfaces de I/O.• IN port
Miscelânea:Instruções especiais de um processador em particular.
Un. de Controle
Fase de Busca(fetch) :É o ciclo de máquina para leitura do código de operação(c.o), a primeira palavra da instrução. O ciclo de busca é idêntico para qualquer instrução.
Fase de Execussão :São os ciclos de máquinas necessários para busca das palavras restantes da instrução e execução dessa. É diferente e compreende números de ciclos de máquina diferentes para cada instrução.
Ciclo de Máquina :É 1(UMA) seqüência de microoperações que são executadas caracterizando uma operação. A execução de instruções é dividida em ciclos de máquina.
Un. de Controle
•Instrução•Ciclo•Microprograma
•Microinstruçãoes•Microoperações•Microcomando
Organização
Dos Computadores
0000
00
Organização
Dos Computadores
0001
00
00 0000 05h
Organização
Dos Computadores
0002
00
0005h00
05h
05h
05h
Organização
Dos Computadores
0500
01
000500
053d
Organização
Dos Computadores
0501
01
000500
053d
3d
3d
3d
Organização
Dos Computadores
0000
01
000500
053d
3d
Organização
Dos Computadores
0001
01
012701
053d
3d
Organização
Dos Computadores
0002
01
012701
3d
3d
27
27
27
Organização
Dos Computadores
2700
02
012701
3d
3d
27
Organização
Dos Computadores
2701
02
012701
3d
3d
27
3d
3d
Organização
Dos Computadores
2702
02
026d02
3d
3d
27
3d
Organização
Dos Computadores
2703
02
026d02
3d
3d
27
3d
6d
6d
6d
Organização
Dos Computadores
2704
03
026d02
3d
3d
27
3d
6d
Organização
Dos Computadores
2705
03
026d02
3d27
3d
6d
9d9d
9d
Organização
Dos Computadores
0000
03
026d02
3d27
3d
6d
9d
9d
Organização
Dos Computadores
0000
03
026d02
3d27
3d
6d
9d
9d
Un. de Controle
2: { 3: int x,a; 4: x = 20; C:0x0800 7F14 MOV R7,#0x14 5: x = x + 5; C:0x0802 7405 MOV A,#0x05 C:0x0804 2F ADD A,R7 C:0x0805 FF MOV R7,A C:0x0806 E4 CLR A C:0x0807 33 RLC A 6: a = x; C:0x0808 F508 MOV 0x08,A C:0x080A 8F09 MOV 0x09,R7 7: } C:0x080C 22 RET ...
92: ?C_STARTUP: LJMP STARTUP1 93: 94: RSEG ?C_C51STARTUP 95: 96: STARTUP1: 97: 98: IF IDATALEN <> 0 C:0x0000 020800 LJMP STARTUP1(C:0800) C:0x0003 00 NOP C:0x0004 00 NOP ...
C:0x07FF 00 NOP 99: MOV R0,#IDATALEN - 1 C:0x0800 787F MOV R0,#0x7F 100: CLR A C:0x0802 E4 CLR A 101: IDATALOOP: MOV @R0,A C:0x0803 F6 MOV @R0,A 102: DJNZ R0,IDATALOOP C:0x0804 D8FD DJNZ R0,IDATALOOP(C:0803) 151: MOV SP,#?STACK-1
C:0x0806 758109 MOV SP(0x81),#0x09 155: LJMP ?C_START
Organização
Dos Computadores
Un. de Controle
Endereço de Retorno em PilhaAs pilhas normalmente são definidas dentro da própria memóriaO registrador SP(Stack Pointer) contém o endereço da 1ª posição livre na pilha.
Sub-Rotinas :
Endereço de Retorno junto à Sub-RotinaArmazena-se a primeira palavra para o endereço de retorno(DS).Chamada : JSR SUB (Sub está armazenada a partir da posição de memória endsub)
endsub <- (PC)
PC <- endsub +1
Retorno:
JUMP(SUB)
PUSH PC (SP) <- (PC)
SP <- (SP)+1
JUMP endsub
POP PC (SP) <- (SP)-1
PC <- ((SP))
Un. de Controle
Sub-Rotinas :
Passagem de perâmetros:
Por Registradores da UCP
Área associada à Sub-Rotina
Área associada ao Programa
Área Comum de Dados
Pilha
Un. de Controle
Interrupções :
PUSH PC
PUSH PSW
JUMP endsub
POP PC
POP PSW
CALL
RTI
Os “pinos de interrupção” da pastilha do processador estão ligados a um mecanismo interno que gera um salto para uma posição específica da memória. Essas linhas de memória são chamadas “reservadas” e só são utilizadas para o atendimento da interrupção.
Un. de Controle
Interrupções:
Mapemanto Interno:Gerador de Seqüência de Interrupções
Mapemanto Externo:Controlador de Interrupção (gera um sinal no pino de interrupção e após ACK
coloca o endereço de interrupção no barramento de dados)
Mapemanto Misto:Usado na maioria das arquiteturas modernas
Mecanismo de Polling:para vários dispositivos em uma mesma linha de
interrupção
Un. de Controle
Interrupções:
Organização dos endereços de Interrupção na Memória:
Posições Não Contíguas de Memória:
Interrupção Vetorizada: O Gerador de Sequência de Insterrupção deverá gerar os sinais
para gerar o salto(Push PSW,PC e JMP )
Mascaramento:Permite habilitação/desabilitação seletiva e sinais de
interrupção.
Mascaramento por Nível de Prioridade:
Memórias
Memórias:
Contem diversas posições cada uma das quais indicadas por um endereço, possui n linhas de endereços e 2n posições:
Memórias
Classificação das Memórias:
Volátil / Não Volátil:perde os dados se a alimentação do sistema for removida.
Acesso Seqüencial / Aleatório:a informação pode ser acessada diretamente , sem passar pelas
posições anteriores
Tempo de Acesso:é crucial para definir sua aplicação
Capacidade:Tamanho da palávra X número de endereços
Dinâmica / estática:Necessitam de “Refresh”
Memórias
ROM(Read Only Memory)
Mask-ROM:Informações vem de fábrica.
PROM (Programmable ROM):Programável pelo usuário mas apenas uma única vez.
Todos os bits vêm em 1 e após “queimado” vira 0.
EPROM(Erasable PROM):São reprogramáveis um por um número limitado de
vezes, são apagadas por ondas ultra-violeta.
EEPROM(Eletrically EPROM):São eletricamente reprogramáveis mas necessitam
de um circuito para prover os níveis de tensão que são bem diferentes dos usados em operação.
ICEEPROM(In Circuit Erasable PROM):São reprogramáveis no próprio circuito.
MagnéticaFlash....Dispositivos I/O
I/O
Dispositivos de Entrada e Saída
E/S isolada (I/O BUS):Barramentos logicamente distintos dos barramentos de acesso à
memória.
E/S Controlada por Hardware (DMA – Direct Memory Acces):Conexão direta entre memória e dispositivo.Transferência é feita em blocos de tamanho determinado.Burst – Cycle Stealing - Transparente.
E/S Mapeada em Memória (UNIBUS):Existe um único espaço de endereços tratados como de memória. A UCP
trata a I/O como se fosse uma célula de memória.
Comunicação Serial:Existe um único espaço de endereços tratados como de memória. A UCP
trata a I/O como se fosse uma célula de memória.
Comunicação Paralela:Existe um único espaço de endereços tratados como de memória. A UCP
trata a I/O como se fosse uma célula de memória.
Características
Dos
Microcontroladores
ADCSPI/I2CRTCTimerPWMWatch DogJTagEncapsulamentoISP