É 1(UMA)

Propaganda
RAM
PCI
UART
IDE
Microprocessador -> CPU encapsulada em um único circuito integrado. Pelo fato de
concentrar apenas a função de controle no “chip”, as aplicações de microprocessadores são
complexas voltadas para multimídia (controle de som + imagem + comunicação).
Exemplo:
- Microprocessador Pentium IV da Intel. A aplicação do Pentium é em computadores
multimídia.
- Microprocessador ARM voltado para aplicações multimídia dedicadas.
Microcontrolador -> CPU + MEMORIA + PERIFËRICOS encapsulados em um único
circuito integrado. Dedicado a funções menos complexas de controle. Normalmente está
“embarcado” em equipamentos dedicados. Utiliza o conceito de “firmware” para o
programa 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 as
instruções a serem processadas (através de seus códigos de operação), variáveis (como
resultados de operações da C.P.U.) ou dados de entrada e saída dos periféricos. O
programa a ser processado deve necessariamente estar presente na memória (por isso o
tamanho cada vez maior das memórias voláteis - RAMs - dos computadores atuais, pois os
programas têm tamanhos cada vez maiores).
A memória dos computadores pode ser dividida em volátil (RAM estática / dinâmica) e não
voláteis (ROM / PROM / EPROM / E2PROM - FLASH).
Em computadores pessoais temos o conceito de BIOS (programa de inicialização de
perifé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 ser
caracterizado 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 normalmente
tem 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ódigo
de operação), variável do processamento (cálculo intermediário de uma fórmula por
exemplo) ou informação de um periférico de E/S (dado digitado em um teclado). O
tamanho da via de dados determina respectivamente o máximo número de instruções (e
portanto o potencial de processamento) e a precisão do processamento aritmético
(através
do cálculo de ponto flutuante) ou o número de símbolos possíveis a ser representado
(por
exemplo, pontos de uma foto).
Exemplo:
1) - O processador 8085 possui 8 bits no barramento -> máximo de 256 instruções e
variá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ção
de 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
processamento
do microprocessadores já que foi necessário cada vez mais memória para armazenar uma
quantidade 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)
VIA DE ENDEREÇOS
Unidade de
Controle
Memória
UCP
Unidade
Lógica e
Aritmética
VIA DE DADOS
VIA DE CONTROLE
I/O
Von Neuman (1903 - 1957)
Harvard
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.
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).
R
S
Q
0
0
Q0
1
0
0
0
1
1
1
1
ND
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.
D
Q
0
D0
1
D0
Funciona como uma unidade de atraso, sua saída Q apresenta o estado da entrada
D anterior ao último pulso de clock. .
J
K
Q
0
0
Q0
1
0
1
0
1
0
1
1
Q0
Funciona similarmente ao RS porém apresenta um clock e inverte seu ultimo
estado quando apresentar ambas entradas em nível lógico 1.
Note que o FlipFlop D apresenta lógica baixa na entrada ao contrário do JK.
Exercício 2.1®:
Monte um circuito de transferência de 2 bits usando flipFlops 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.
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.
Exercício 2.2:
Monte um contador BCD, isto é um incrementador que reset quando chegar em
1010.
Exercício 2.3 **DESAFIO**:
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.
Unidade Central de Processamento :
• Unidade Lógica e Aritmética
• Unidade de Registros
•Unidade de Controle
Unidade de
Controle
UCP
Unidade
Lógica e
Aritmética
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ógicas
0
0
F = A plus B
AND
0
1
F = A minus B
OR
1
0
F=AXB
NOT
1
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, Ckenrem
Comanda:
•MREQ(habilita memória),IORQ(habilita i/o),RD(leitura do dispositivo), WR(escrita no dispositivo) .
TIPOS DE INSTRUÇÕES
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
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.
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.
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.
•Instrução
•Ciclo
•Microprograma
•Microinstruções
•Microoperações
•Microcomando
1
00
00
00
2
00
00
01
00
00
05h
3
00
00
00
05h
05h
05h
02
00
05h
4
00
00
05
01
3d
05
00
05
5
00
00
05
01
3d
3d
3d
01
05
05
3d
6
00
00
05
01
3d
3d
05
00
00
7
01
01
27
01
3d
3d
05
01
00
8
01
01
27
01
3d
27
27
3d
27
02
00
9
01
01
27
02
3d
3d
27
00
27
10
01
3d
01
27
02
3d
3d
3d
27
01
27
11
02
3d
02
6d
02
3d
3d
27
02
27
12
02
3d
02
6d
02
6d
3d
6d
03
6d
3d
27
27
13
02
3d
02
6d
03
6d
3d
3d
27
04
27
14
02
3d
02
6d
03
6d
9d
9d
9d
3d
27
05
27
15
02
3d
02
6d
03
6d
9d
9d
3d
27
00
00
16
02
3d
02
6d
03
6d
9d
9d
3d
27
00
00
2: {
3: int x,a;
4: x = 20;
C:0x0800 7F14
5: x = x + 5;
C:0x0802 7405
C:0x0804 2F
C:0x0805 FF
C:0x0806 E4
C:0x0807 33
6: a = x;
C:0x0808 F508
C:0x080A 8F09
7: }
C:0x080C 22
...
MOV
R7,#0x14
MOV A,#0x05
ADD A,R7
MOV R7,A
CLR A
RLC A
MOV
MOV
RET
0x08,A
0x09,R7
Sub-Rotinas :
Endereço de Retorno junto à Sub-Rotina
Armazena-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))
Endereço de Retorno em Pilha
As pilhas normalmente são definidas dentro da própria memória
O registrador SP(Stack Pointer) contém o endereço da 1ª posição livre na pilha.
Download