Upload
dinhcong
View
223
Download
0
Embed Size (px)
Citation preview
EA869 Arquitetura de Computadores
Faculdade de Engenharia Elétrica e de Computação (FEEC)
Universidade Estadual de Campinas (UNICAMP)
Prof. Levy Boccato
1
Recordando
2
Problema Algoritmo Nível
Conceitual
Estruturas de dados
Linguagem Assembly
Representação numérica
Como está organizado o
hardware de um computador?
Hierarquia de
linguagens
Hardware
ARQUITETURA DE COMPUTADORES
Introdução Objetivos:
Conhecer os principais aspectos da arquitetura de processadores.
Conhecer as características de cada componente desta arquitetura.
Projetar uma máquina simples.
O que é um computador?
Seguindo o espírito da máquina universal de Turing, é uma máquina cuja função é ler e executar instruções.
3
Introdução Instrução de máquina:
Identifica uma operação elementar que o processador é capaz de realizar.
Nela, o processador deve encontrar referências quanto:
I. à operação que deve realizar – soma, subtração, movimentação de dados etc.
II. aos operandos envolvidos – onde estão os dados que desejamos manipular?
A linguagem simbólica oferece uma maneira visualmente mais atraente para descrever uma instrução. Exemplo:
4
0010 0001 0101
Código da operação Identificação do primeiro operando
Identificação do segundo operando
Instrução: ADD r1, r5 r1 ← r1 + r5
A leitura do código da operação deve desencadear no processador uma
sequência de ações, através de sinais de controle, que ativem os elementos do
circuito responsáveis por realizar uma soma, tendo como entrada os operandos
identificados na instrução.
Introdução Tendo este entendimento inicial acerca das instruções, daremos
início ao estudo da arquitetura e organização de computadores.
Quais componentes devem existir em um computador?
5
Introdução Tendo este entendimento inicial acerca das instruções, daremos
início ao estudo da arquitetura e organização de computadores.
Quais componentes devem existir em um computador?
6
Processador Memória
Disco rígido
Placa mãe
Gabinete Monitor
Sistema operacional
Jogos
Arquitetura de computadores
7
Arquitetura de computadores
8
Registradores O que são? Elementos de armazenamento de informação.
O que armazenam? 1 palavra de informação – Ex.: ARM: 32 bits.
Características:
Estão localizados dentro do processador e são de rápido acesso.
Realizam algumas operações sincronizadas com o relógio (clock) do sistema.
Como são construídos?
Um registrador de n bits é formado pela ligação de n flip-flops, cada um armazenando 1 bit de informação, sincronizados pelo mesmo relógio.
9
REGISTRADOR
Flip-flops?
Registradores Flip-flops: circuitos digitais que atuam como uma memória de 1 bit.
10
FLIP-FLOP D FLIP-FLOP JK
Mantém o estado anterior a cada pulso do relógio.
D Q
0 0
1 1
Além de manter o estado anterior, ele pode setar (1), resetar (0) ou complementar a saída a cada pulso do clock.
J K Q
0 0 Q
0 1 0
1 0 1
1 1 Q’
Operação Sensíveis ao nível
Sensíveis à borda de subida Sensíveis à borda de descida
Tabela Verdade
Tabela Verdade
Registradores Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
Transferência de dados: o registrador envia (leitura) ou recebe (escrita) dados do barramento.
Lembrar que cada operação é sincronizada com o relógio do sistema.
11
Comando Operação
W REG ← (BAR)
R BUS ← (REG)
REGISTRADOR
W R
Clock
Registradores Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
Transferência de dados: o registrador envia (leitura) ou recebe (escrita) dados do barramento.
Lembrar que cada operação é sincronizada com o relógio do sistema.
12
Comando Operação
W REG ← (BAR)
R BUS ← (REG)
Clock R
K J
Bi
Barramento
K CLK J
Ai
... ... ...
Clock W
Controle de acesso ao barramento via
tri-state
Registradores Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
Complementação: o registrador recebe seus bits complementados.
Exemplo: registrador de 4 bits – 0110 se torna 1001.
13 REGISTRADOR
W R
Clock
Comando Operação
C REG ← (REG)
C
Registradores Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
Deslocamento: o registrador recebe seus bits deslocados.
Exemplo: registrador de 4 bits – 0110 se torna 0011.
14 REGISTRADOR
W R
Clock
Comando Operação
D REG ← SHIFT(REG)
C D
Registradores Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
Set/Reset: o registrador recebe os seus bits somados ou subtraídos por 1.
Exemplo: registrador de 4 bits (incremento) – 0110 se torna 0111.
15 REGISTRADOR
W R
Clock
Comando Operação
I/D REG ← (REG) +/- 1
C D I/D
Registradores Agora que recordamos como funcionam os FFs, vamos ver quais
operações podem ser realizadas no registrador.
Set/Reset: o registrador recebe 1 (set) ou 0 (reset) em todos os seus bits.
Exemplo: registrador de 4 bits (set) – 0110 se torna 1111.
16 REGISTRADOR
W R
Clock
Comando Operação
S/R REG ← 1/0
C D I/D S/R
Registradores Registrador sensível a múltiplos comandos:
Responde a múltiplos sinais de controle.
Cuidado: somente um sinal de controle pode estar ativo a cada pulso de relógio.
17
REGISTRADOR
W R C D I/D S/R
Clock
Bar
ram
ento
de
dad
os
Circuito de múltiplos comandos
Registradores Exemplo:
18
Barramento
CLK
Z
W
C R
Registrador Sensível a Múltiplos Comandos (Sinais de Controle) W - Transferir do barramento para o registrador (Write) R - Transferir do registrador para o barramento (Read)
C - Complementar o registrador Z - Zerar o registrador
Barramento
K J
FFi CLK
Z
W
C
R
Qi
Arquitetura de computadores
19
Unidade Lógico-Aritmética ULA: responsável pela execução de todas as operações sobre os
dados.
Características: suas entradas e saídas de dados, bem como a operação que pode realizar, estão diretamente relacionadas à instrução (Assembly).
Estrutura:
20
Entrada de dados
Saída de dados (Resultados)
Σ
Registrador de estado
Flags
Informa o estado do processador após a
última operação realizada pela UAL.
Comandos da unidade de controle
Unidade Lógico-Aritmética ULA: responsável pela execução de todas as operações sobre os
dados.
Classificação: depende de como devem ser especificados os operandos e resultados na instrução (Assembly). Máquina de zero endereços:
Máquina de 1 endereço:
Máquina de 2 endereços:
Máquina de 3 endereços:
21
Entrada de dados
Saída de dados (Resultados)
Σ
Registrador de estado
Flags
Informa o estado do processador após a
última operação realizada pela UAL.
Comandos da unidade de controle
CO Op. 1 Op. 2 Op. 3
CO Op. 1 Op. 2
CO Op. 1
CO
Unidade Lógico-Aritmética Máquina de zero endereços
Formato da instrução:
Exemplo: ADD
Funcionamento: stack machines – todas as operações envolvem as posições no topo da pilha.
22
Σ FLAGS x
x
x
Pilha
dado1
dado2
Saída
Exemplo? Calculadora HP
CO
Unidade Lógico-Aritmética Máquina de 1 endereço
Formato da instrução:
Exemplo: ADD R1
Funcionamento: toda operação está baseada em um registrador implícito – Acc (acumulador).
Acc ← (Acc) operação (Op. 1)
23
CO Op. 1
Σ FLAGS
Op. 1
Acc
Saída
Exemplo: Intel 8085 (década de 70)
Unidade Lógico-Aritmética Máquina de 2 endereços
Formato da instrução:
Exemplo: ADD R1, R2
Funcionamento: não há mais necessidade de registradores auxiliares; o resultado da operação é armazenado em um dos operandos.
Op. x ← (Op. 1) operação (Op. 2)
24
CO Op. 1 Op. 2
Σ FLAGS
R1
Op. 1 Op. 2
Saída
R2
Exemplo: Intel-64 (déc. 90/00)
Unidade Lógico-Aritmética Máquina de 3 endereços
Formato da instrução:
Exemplo: ADD R1, R2, R3
Funcionamento: há operandos específicos para os dados de entrada e um registrador para receber a saída.
Op. 1 ← (Op. 2) operação (Op. 3)
25
CO Op. 1 Op. 2 Op. 3
Σ FLAGS
R3
Op. 3 Op. 2
Saída
R2
Exemplo: ARM
R1
Qual a diferença prática no uso de
máquina de diferentes endereços?
Unidade Lógico-Aritmética Importante: a opção de projeto por uma máquina de 1, 2 ou
3 endereços tem implicações no tamanho de cada instrução, no tamanho e inteligibilidade dos programas preparados em linguagem simbólica (Assembly), na velocidade, no custo, na configuração de memória, etc.
26
Arquitetura de computadores
27
Barramentos Conhecendo os registradores e a unidade de operações lógico-
aritméticas, vamos entender como a informação navega através das unidades do nosso computador. Vamos falar dos barramentos.
Barramentos:
São ligações (caminhos elétricos) entre diferentes módulos ou partes de um sistema computacional.
A fim de reduzir o número de conexões entre os módulos, criam-se canais ou dutos compartilhados.
Aspectos:
Mecânicos.
Elétricos – nível de tensão, corrente suportada.
Protocolo – acordo que rege como o barramento deve ser utilizado.
28
Barramentos Barramentos:
Funcionamento: Ao transferir dados entre duas unidades de um computador via um barramento,
devemos nos atentar ao fato do barramento não armazenar dados.
Na prática, isso significa que ao transferir um dado, uma unidade deve ter seu sinal de Read acionado no mesmo pulso de relógio que uma outra unidade aciona seu sinal de Write.
29
Vejamos...
R2 R1
RR1 WR1 RR2 WR2
0 0 1 1 1 0 0 0
Máquina Simples Já conhecemos três elementos fundamentais em um computador:
Registradores;
Unidade lógico-aritmética;
Barramentos.
Vamos, então, montar uma máquina bastante simples de fazer contas.
30
Máquina Simples
31
R1n WR1
RR1 TMPn
IT
wT
RT
CT
ZT R2n
WR2
RR2
ACCn
RE
we
wA
RA
Considere que a ULA apenas realiza adições e que os dados de entrada estão nos registradores R1 e R2. Como podemos construir uma arquitetura que
execute a seguinte operação: R1 ← (R1) – (R2)?
CT - complementar o conteúdo do registrador TMP Isto é, CT dispara a operação TMP (TMP)’ ZT - zerar (reset) o registrador TMP Isto é, ZT indica a operação TMP "0" R2n ,R1n - registradores de dados com n bits TMPn - registrador de complemento/incremento com
n bits Accn - registrador acumulador com n bits
W - transferir do barramento para o registrador Exemplo: WR1 indica a operação R1 (bus) R - transferir do registrador para o barramento Exemplo: RA indica a operação bus (Acc) W- transferir a saída do somador para o Acc R- transferir o conteúdo do registrador Acc para a entrada do n IT - incrementar o conteúdo do registrador TMP. Isto é, IT aciona a operação TMP (TMP) + 1
Sinais de controle
Máquina Simples
32
Agora temos nossa
primeira máquina de
calcular! R1n WR1
RR1
R2n WR2
RR2
TMPn
IT
wT
RT
CT
ZT
ACCn
RE
we
wA
RA
Vamos então executar passo a
passo a operação:
R1 ← (R1) - (R2)
Máquina Simples
33
R1 ← (R2) - (R1)
R1n WR1
RR1
R2n WR2
RR2
IT
wT
RT
CT
ZT
RE
we
wA
RA
Passos Pulso do
relógio
Sinais de
controle
Micro- operação
1. Transferir o conteúdo de R2 para Acc
1 RR2 , WA
bus ← (R2) Acc ← (bus)
001
010 2. Transferir o conteúdo de R1 para TMP
2 RR1 , WT bus ← (R1) TMP ← (bus)
3. Complementar TMP 3 CT
TMP ← (TMP)
101 010
4. Implementar TMP 4 IT TMP ← (TMP) + 1
110
5. Somar: ULA recebe valores e faz a soma 5 RE , RT ULA ← (Acc) + (TMP)
111
6. Armazenar a soma no Acc 6 WE Acc ← (ULA)
7. Armazenar resultado em R1 7 RA , WR1 Acc ← (ULA)
Arquitetura de computadores
34
Memória Responsável pelo armazenamento de dados e instruções
(programas).
Capaz de guardar grandes blocos de palavras (na ordem de gigabytes).
Conceitos básicos:
35
0
1
2
3
..
n
110 1011...
Memória de n palavras
Palavra de m bits
Quantos bits (b) precisa ter o campo de endereço para
endereçar n palavras?
Quantos dados distintos uma
palavra consegue representar?
2b ≥ n
2m
Memória Acesso: a unidade de controle do processador solicita o acesso a
um determinado endereço e a memória envia o conteúdo deste endereço ao local apropriado.
Dois registradores auxiliares: REM e RDM.
36
0
1
2
3
..
n
110 1101...
Como?
CPU
Registrador de Endereço da
Memória (REM)
Registrador de Dados da Memória (RDM)
3
568765
LEITURA DE UM DADO DA MEMÓRIA
1. REM ← end
2. RDM ← ((REM)) ou RDM ← (m)
3. CPU ← (RDM)
CICLO DE LEITURA
Memória Acesso: a unidade de controle do processador solicita o acesso a
um determinado endereço e a memória envia o conteúdo deste endereço ao local apropriado.
Dois registradores auxiliares: REM e RDM.
37
0
1
2
3
..
n
110 1111...
CPU
Registrador de Endereço da
Memória (REM)
Registrador de Dados da Memória (RDM)
3
568765
ESCRITA DE UM DADO DA MEMÓRIA
1. REM ← end
2. RDM ←(CPU)
3. (REM) ← (RDM) ou m ← (RDM)
CICLO DE ESCRITA
Conhecendo os ciclos de leitura e escrita,
porque o acesso a um registrador é menos
custoso?
Memória Considerações:
A memória que constantemente se comunica com o processador é chamada de memória principal (comumente conhecida como memória RAM).
RAM significa memória de acesso aleatório (random access memory). O termo aleatório refere-se à capacidade de acessarmos qualquer posição em qualquer momento com a mesma facilidade, em contraste com as antigas fitas magnéticas.
Uma característica importante das RAMs é o fato de as operações de escrita consumirem o mesmo tempo de uma operação de leitura. Uma operação de escrita em uma ROM (read-only memory), por sua vez, consome um tempo consideravelmente superior que o de uma leitura.
RAMs também são voláteis – os dados se perdem quando a alimentação é removida (ao desligar o computador).
Por isso, a memória RAM sempre recebe do disco (HD) o programa a ser executado.
Um outro tipo de memória RAM, conhecida como memória cache, pode ser colocada entre o processador e a memória principal com o objetivo de tornar o acesso aos dados mais rápido. Ela guarda um subconjunto dos dados que mais recente ou mais frequentemente têm sido utilizados.
38
Arquitetura de computadores
39
Unidade de Controle O funcionamento correto do computador depende do correto acionamento de todos os sinais
de controle do hardware, conforme exigido por cada operação (instrução). A unidade de controle é a responsável por gerenciar as operações de um processador.
O que ela deve fazer? 1. Buscar a próxima instrução na memória principal.
2. Decodificar a instrução.
3. Acionar sequencialmente os respectivos sinais de controle que farão com que a operação desejada seja executada.
Para cumprir estas tarefas, a unidade de controle conta com as seguintes estruturas auxiliares:
40
Registrador de Instrução (RI)
Indica o endereço da próxima instrução a ser
executada
PC
Registrador PC (Contador de Programa)
Armazena a instrução para a decodificação
Controlador
Lê a instrução que está em RI, decodifica e ativa
sequencialmente os sinais de controle
apropriados
RI
Controlador
sinais de controle
...
Operação Básica
0
1
2
3
..
n
REM
RDM
ADD R1
0
Unidade de Controle Para compreendermos mais detalhadamente como a unidade de controle busca e executa as
instruções, precisamos conhecer os diferentes tipos de instrução disponíveis em um processador.
Instrução de máquina = sequência de bits armazenada na memória principal, identificando a operação e os dados envolvidos.
Vejamos alguns exemplos de instruções de máquina. Vamos tentar entender quais dados elas manipulam:
41
ADD R1,R2,R3 R1 ← (R2) + (R3) Não há dados na instrução.
Todos eles encontram-se nos registradores.
ADD R1,R2, #4 R1 ← (R2) + 4 A instrução possui um dado: o valor 4 (# indica que o valor é um imediato presente na própria instrução).
ADD R1, R2, 4 R1 ← (R2) + (4) A instrução indica que um dos operandos está no endereço 4 da memória.
CO Rd Rn Op2 ARM:
Unidade de Controle Porém, nem sempre uma instrução de máquina completa ocupa apenas
uma palavra de memória.
No caso do processador ARM, qualquer instrução é formada por 32 bits, o que equivale a uma única palavra de memória. Mas isto nem sempre acontece.
Instrução de 1 palavra: SUB R1, R2, #3
Instrução de 2 palavras: SUB R1, R2, #3
Instrução de 3 palavras: SUB R1, 4, #3
42
C. O.
dado
C. O.
end
dado
R1 ← (R2) - 3
R1 ← (R2) - 3
R1 ← (4) - 3
Agora que sabemos como são as
instruções, vamos entender melhor
como a unidade de controle as executa.
Unidade de Controle A execução de uma instrução é dividida em ciclos de máquina (CM).
Um ciclo de máquina corresponde a uma sequência de microoperações que são executadas, caracterizando uma operação mais complexa.
A execução de uma instrução pode ser composta por vários ciclos de máquina, que por sua vez são formados por diversas microoperações, as quais determinam o sequenciamento dos sinais de controle.
Duas fases são necessárias para a execução de uma instrução: Fase de busca: compreende o CM para busca e leitura do C.O. da instrução (ciclo de busca). As
microoperações envolvidas são idênticas para qualquer instrução.
Fase de execução: compreende a execução dos CMs necessários para a leitura das palavras restantes da instrução (se existirem – ciclo de leitura) e da efetiva execução da operação identificada (ciclo de execução). Esta fase é específica para cada instrução.
43
Exemplos:
SUB R1 , R2, 2
C. O.
ADD R1 , R2 , #3
C. O.
dado
end
R1 ← (R2) – (2)
Quais ciclos são necessários para a
execução das seguintes
instruções?
1. Ciclo de Busca 2. Ciclo de execução
1. Ciclo de Busca
2. Ciclo de Leitura
R1 ← (R2) + 3
3. Ciclo de execução
Vamos ver essas fases mais
detalhadamente...
Unidade de Controle Exemplo: vamos supor que o computador irá executar a seguinte instrução:
A instrução de máquina possui o seguinte formato:
44
PC
RI
Controlador
sinais de controle
...
0
1
2
3
..
n
REM
RDM
STA 3 Acc ← (end)
Acc
C. O.
end
Carregando os dados na memória e nos registradores...
0
STA
3
150615
Unidade de Controle
45
PC
RI
Controlador
sinais de controle
...
0
1
2
3
..
n
REM
RDM Acc
C. O.
end
0
STA
3
150615
FASE DE BUSCA Buscar o C.O. e levá-lo para o controlador
Pulso Microoperação
1 REM ← (PC)
2 RDM ← ((REM) ou (m) PC ← (PC) + 1
1 0
STA
3 RI ← (RDM)
CICLO DE
BUSCA
STA
STA 3 Acc ← (end)
Unidade de Controle
46
PC
RI
Controlador
sinais de controle
...
0
1
2
3
..
n
REM
RDM
STA 3 Acc ← (end)
Acc
C. O.
end
1
STA
3
150615
FASE DE EXECUÇÃO
Pulso Microoperação
1 REM ← (PC)
2 RDM ← ((REM) ou (m) PC ← (PC) + 1
STA
3 RI ← (RDM)
CICLO DE
LEITURA
STA
STA
0
1 3 2
3 3
Unidade de Controle
47
PC
RI
Controlador
sinais de controle
...
0
1
2
3
..
n
REM
RDM
STA 3 Acc ← (end)
Acc
C. O.
end
2
STA
3
150615
FASE DE EXECUÇÃO
Realiza as microoperações para executar a
instrução
Pulso Microoperação
1 REM ← (RI.end)
2 RDM ← ((REM)) ou (m)
STA
3 Acc ← (RDM)
CICLO DE
EXECUÇÃO
3
3
1
3 150615
150615
Projeto de um computador Finalmente analisamos cada um dos componentes básicos de um
computador.
Vamos, então, dar um passo mais ousado: projetar uma máquina de executar instruções.
A base para este projeto será a pequena máquina de calcular que vimos durante a discussão sobre a ULA.
48
Computador simples
49
TMPn
IT
wT
RT
CT
ZT
ACCn
RE
we
wA
RA
MEMÓRIA
UC
Memória
RAM
64x8
REM
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
Computador simples
50
TMPn
IT
wT
RT
CT
ZT
ACCn
RE
we
wA
RA
Memória
RAM
64x8
REM
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
IT wT RT CT
ZT
... TB TPC TRI IPC
Para finalizar, vamos
dimensionar os barramentos!
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
Acabamos de montar o circuito digital de nosso próprio computador.
Computador simples
51
TMPn
IT
wT
RT
CT
ZT
ACCn
RE
we
wA
RA
Memória
RAM
64x8
REM
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
IT wT RT CT
ZT
... TB TPC TRI IPC
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
Quantas instruções diferentes este processador consegue executar?
CO – 2 bits: portanto, no máximo 4 instruções
Computador simples
52
TMPn
IT
wT
RT
CT
ZT
ACCn
RE
we
wA
RA
Memória
RAM
64x8
REM
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
IT wT RT CT
ZT
... TB TPC TRI IPC
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
Por exemplo:
Código Mnemônico Instrução
00 STOP Parar
01 ADD end Somar ao Acc o conteúdo do endereço
10 SUB end Subtrair do Acc o conteúdo do endereço
11 STA end Transf. o conteúdo do Acc para endereço
Computador simples
53
TMPn
IT
wT
RT
CT
ZT
ACCn
RE
we
wA
RA
Memória
RAM
64x8
REM
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
IT wT RT CT
ZT
... TB TPC TRI IPC
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
Considerando que as instruções ocupam uma única palavra de memória, vamos acompanhar a execução da instrução:
ADD end Acc ← Acc + (end)
Computador simples
54
TMPn
IT
wT
RT
CT
ZT
15
RE
we
wA
RA
REM
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
2
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
IT wT RT CT
ZT
... TB TPC TRI IPC
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
Considere as condições iniciais dadas na arquitetura.
ACC
2 ADD 5
3
4
5 20
55
IT
wT
RT
CT
ZT
RE
we
wA
RA
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
IT wT RT CT
ZT
... TB TPC TRI IPC
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
2
3
4
5
ADD 5
20
TMP
ACC
15
2
Pulso Microoperação SCs
1 REM ← (PC) TPC
2
2
2 RDM ← ((REM)) ; PC ← (PC) + 1 E, R, IPC
ADD 5
ADD 5
3
3 RI ← (RDM) TRB , TB
ADD 5
ADD 5
BUSCA
4 REM ← (RI.end) TRI
5
5 RDM ← ((REM)) E, R
20
20
6 TMP ← (RDM) TRB, WT
20
20
7 ∑ ← (ACC) + (TMP) RT, RE
15
20
35
8 ACC ← (∑ ) WE
35
56
IT
wT
RT
CT
ZT
RE
we
wA
RA
RDM
E habilita
R/W Leitura/ escrita
TRB
TBR
transf. reg./barr.
transf. barr./reg.
Barrament o
PC
RI
Controlador
...
IPC Incrementa PC
TB Transf. do barr.
REM
TRI Transf. do RI
TPC Transf. do PC
...
endereço
6 bits
6 bits
6 bits
8 bits
8 bits
8 bits
8 bits
8 bits
2 bits
TMP
ACC
IT wT RT CT
ZT
... TB TPC TRI IPC
Agora já sabemos como projetar um processador simples e como os dados se
movimentam pelo circuito digital durante a execução de uma instrução de máquina.
Controlador
Falta apenas um último detalhe: como os sinais de controle são adequadamente
sequenciados? Quem é responsável por esta tarefa?
Controlador O controlador é o elemento responsável por acionar sequencialmente os sinais de
controle apropriados para que uma determinada instrução seja executada.
Circuito digital = máquina de estados finitos – deve garantir que em cada ciclo de relógio, o conjunto correto de sinais de controle é acionado.
Uma implementação possível – e relativamente simples – baseia-se no uso de flip-flops D.
57
Por exemplo, seja a instrução ADD end
O ciclo de execução se dá através dos sinais de controle:
TRI E, R
TRB, WT
RT, RE
WE
1 2 3 4 5
Uma possível implementação com FFs seria:
D5
Q5
FF5
CLK
D4
Q4
FF4
CLK
D2
Q2
FF2
CLK
D3
Q3
FF3
CLK
D1
Q1
FF1
CLK
TRB , WT WE RT , RE E , R TRI
S
Relógio
Controlador Poderíamos estender este procedimento para as quatro instruções do nosso
processador. Assim, o hardware do controlador corresponderia ao seguinte circuito digital:
58
Quais as vantagens e
desvantagens deste tipo de controlador?
Controlador O controlador apresentado foi implementado de forma específica para o conjunto
de instruções do processador (hardwired).
Vantagem: otimização (ganho em velocidade).
Porém, em processadores com muitas instruções, este tipo de implementação acaba se tornando custosa, já que exige muito hardware.
Além disso, uma vez definida como cada instrução é executada a partir dos sinais de controle, não é mais possível alterá-la, já que está “impressa” no próprio hardware – pouco flexível.
Uma possibilidade é aplicar novamente a ideia de programa armazenado, mas agora dentro do próprio controlador.
Um “programa”, armazenado dentro do controlador, contém a sequência de “instruções” responsável pela ativação dos sinais de controle que garantem a execução de uma instrução de máquina (e.g., ADD).
59
Existe alguma alternativa para a construção do
controlador?
Computadores Microprogramados
Controlador Historicamente, a escolha por um tipo de abordagem de projeto
do controlador dá origem a dois grupos de processadores:
60
Arquiteturas com controle via
hardware
Arquiteturas com controle via
microprogramação
RISC CISC Processadores ARM Processadores Intel
Vamos então conhecer um pouco melhor estes dois conceitos de projeto...
RISC e CISC CISC (complex instruction set computer):
Conjunto rico de instruções complexas, semelhantes aos comandos de linguagens de alto nível.
Suporte a diversos modos de endereçamento.
Um conjunto de instruções complexo faz sentido ao menos de dois pontos de vista:
Reduzir o “gap semântico” entre linguagem de máquina e linguagem de alto nível, o que tende a simplificar sobremaneira o projeto de um compilador.
Aprimorar o desempenho por meio da criação de programas mais enxutos em termos de instruções simbólicas de baixo nível.
Neste contexto, a opção de projeto via microprogramação se mostra bastante elegante.
61
RISC e CISC CISC:
62
Década de 70
Memórias eram lentas e caras
Códigos deveriam ser muito simples
Aplicações foram ficando mais complexas
Aumento do custo para produção de
software
Surgimento da microprogramação: Sofisticar o uso da
linguagem Assembly criando as instruções
complexas
Solução CISC
Reduzir o gap entre a linguagem de
programação e as instruções de
máquina
RISC e CISC CISC:
63
Foco no Hardware
- A complexidade da programação é transferida para o hardware.
Instruções Complexas
- Conjunto grande de instruções que podem ser executadas pelo hardware. - Formada pela combinação de instruções simples. - Expectativa: programas mais enxutos – menos memória para armazenar o código.
Microprogramação
- Técnica que permite implementar as instruções complexas a partir de um pequeno repertório de instruções simples.
RISC e CISC CISC:
64
Vantagens Desvantagens
• Otimiza o uso da memória RAM
• Aproxima a programação do hardware, simplificando o software.
• Possui grande quantidade de instruções capazes de executar várias operações de “alto nível”.
• Instruções muitas vezes são demoradas e levam vários ciclos de relógio para serem executadas.
• Dificuldade em explorar eficientemente a ideia de pipeline e/ou paralelismo entre instruções.
• Dificuldade em testar, detectar e corrigir erros nos microprogramas.
RISC e CISC RISC (reduced instruction set computer):
Instruções simples e padronizadas.
Privilegia o uso de dados armazenados em registradores.
Ênfase na otimização da pipeline de instruções – facilitada pelo perfil do conjunto de instruções.
Expectativa: hardware mais simples (hardwired), alcançando menor
consumo, menor tamanho e maior eficiência.
A abordagem RISC surgiu a partir da observação de que muitas vezes as premissas do movimento CISC não se verificavam. As vantagens de se ter instruções mais complexas nem sempre se concretizavam, uma vez que as instruções mais básicas (e.g., de movimentação de dados) eram as mais frequentes nos programas gerados pelos compiladores.
65
RISC e CISC RISC (reduced instruction set computer):
66
Hardware Simples
- Não há necessidade de um núcleo de processamento para executar microinstruções.
Instruções Simples
- Executadas em apenas um ciclo de relógio.
- Tamanho fixo: facilita a pipeline.
- Endereçamento simples.
Memória
- Uso intenso de registradores internos.
- Acesso restrito à memória principal (apenas instruções de load e store).
RISC e CISC RISC (reduced instruction set computer):
Apesar desta discussão ser interessante, o que se percebe é uma convergência ou fertilização cruzada entre as duas tendências.
Por exemplo, modelos originalmente CISC olharam com atenção a questões tradicionalmente ligadas à vertente RISC, como o uso mais intenso de registradores e uma ênfase no projeto da pipeline.
67
Vantagens Desvantagens
- Velocidade: menos acesso a memória, pipeline.
- Simplicidade do hardware: controle direto, instruções simples.
- Necessidade de muita memória interna (registradores, cache).
- Dificuldade de executar os sistemas operacionais desenhados para o conceito CISC.
Créditos
68
Este material está baseado nas notas de aula elaboradas pelo Prof. Léo Pini e pelo aluno de doutorado Tiago Novaes.