RAM UART
PCI IDE
Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato deconcentrar apenas a função de controle no “chip”, as aplicações de microprocessadores sãocomplexas voltadas para multimídia (controle de som + imagem + comunicação).Exemplo:- Microprocessador Pentium IV da Intel. A aplicação do Pentium é em computadoresmultimídia.- Microprocessador ARM voltado para aplicações multimídia dedicadas.Microcontrolador -> CPU + MEMORIA + PERIFËRICOS encapsulados em um únicocircuito integrado. Dedicado a funções menos complexas de controle. Normalmente está“embarcado” em equipamentos dedicados. Utiliza o conceito de “firmware” para oprograma dedicado.Ex:- Microcontrolador 8051 da Intel (89S51 – Atmel; LPC932 – NXP)- Microcontrolador PIC12F628A Microchip- Microcontrolador MC9RS08LC60 Freescale.
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.
Memória:Bloco semicondutor com capacidade de armazenar informações. Armazena basicamente asinstruções a serem processadas (através de seus códigos de operação), variáveis (comoresultados de operações da C.P.U.) ou dados de entrada e saída dos periféricos. Oprograma a ser processado deve necessariamente estar presente na memória (por isso otamanho cada vez maior das memórias voláteis - RAMs - dos computadores atuais, pois osprogramas têm tamanhos cada vez maiores).A memória dos computadores pode ser dividida em volátil (RAM estática / dinâmica) e nãovoláteis (ROM / PROM / EPROM / E2PROM - FLASH).Em computadores pessoais temos o conceito de BIOS (programa de inicialização deperiféricos) + SISTEMA OPERACIONAL ( interface gráfica amigável ao usuário) +APLICATIVO (programa final).
Periféricos:Bloco de comunicação do conjunto CPU / memória com o meio exterior. Pode sercaracterizado como entrada (teclado, mouse, etc.) ou saída (monitor, impressora, plotter,etc.). É a interface de comunicação com o usuário e a parte do sistema que normalmentetem acesso.Em microcontroladores estes periféricos são menos complexos, como PORTS, TIMERS,UARTS, CONVERSORES A/D e D/A, SPI / I2C, etc.
- Barramento de Dados (Data Bus): carrega a informação da instrução (através do códigode operação), variável do processamento (cálculo intermediário de uma fórmula porexemplo) ou informação de um periférico de E/S (dado digitado em um teclado). Otamanho da via de dados determina respectivamente o máximo número de instruções (eportanto o potencial de processamento) e a precisão do processamento aritmético (atravésdo cálculo de ponto flutuante) ou o número de símbolos possíveis a ser representado (porexemplo, pontos de uma foto).Exemplo:1) - O processador 8085 possui 8 bits no barramento -> máximo de 256 instruções evariáveis numéricas entre -127 a +127 (ou 0 a 255).2) - O processador Pentium possui 32 bits no barramento -> variáveis numéricas entre -2147483648 e + 2147483648.
Barramento de Endereço (Address Bus) : carrega a informação binária da localizaçãode um dado de memória ou E/S. A capacidade de acesso é determinada pela expressão 2n.O tamanho do barramento de endereço acompanhou a evolução do poder de processamentodo microprocessadores já que foi necessário cada vez mais memória para armazenar umaquantidade cada vez maior de dados.Exemplo:- 8085 -> 16 bits na via de endereço -> 216 = 65512 kbytes- 8088 -> 20 bits na via de endereço -> 1 Mbyte
Barramento de controle (Control Bus): Agrupa todos os sinais necessários ao controle da transferência de informação entre as unidades do sistema.
Habilita e desabilita periféricos, regula o modo de operação R, W, etc
ULA: A Unidade Lógica Aritmética (ULA) é um bloco que executa operações aritméticas e lógicas. Entre as operações aritméticas que excuta, ela soma, subtrai, divide e determina se um número é positivo ou negativo ou se é zero. Ela pode também executar funções lógicas como "E", "OU" ou "OU EXCLUSIVO".
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
Von Neuman (1903 - 1957)
Harvard
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.
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
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
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.
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.
Monte um circuito de transferência de 2 bits usando flipFlops JK.
Exercício 2.1®:
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.
A saída do registrador será complementada ao sinal de clok. Essa operação é executada, por exemplo, para realizar subtração em circuitos somadores.
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.
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.
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**:
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:
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
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.
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 :
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) .
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
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.
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.
•Instrução•Ciclo•Microprograma
•Microinstruções•Microoperações•Microcomando
0000
00
1
0001
00
00 0000 05h
2
0002
00
0005h00
05h
05h
05h
3
0500
01
000500
053d
4
0501
01
000500
053d
3d
3d
3d
5
0000
01
000500
05
3d
3d
6
0001
01
012701
053d
3d
7
0002
01
012701
3d
3d
27
27
27
8
2700
02
012701
3d
3d
27
9
2701
02
012701
3d
3d
27
3d
3d
10
2702
02
026d02
3d
3d
27
3d
11
2703
02
026d02
3d
3d
27
3d
6d
6d
6d
12
2704
03
026d02
3d
3d
27
3d
6d
13
2705
03
026d02
3d27
3d
6d
9d9d
9d
14
0000
03
026d02
3d
27
3d
6d
9d
9d
15
0000
03
026d02
3d27
3d
6d
9d
9d
16
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 ...
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))