MEEC - Arquitectura de Computadores 2014-2015
Introdução
Unidade de Processamento
Unidade de Controlo
Arquitectura do Conjunto de Instruções
Unidade Central de Processamento (CPU)
Unidade de Entrada/Saída (I/O)
Unidade de Memória
Perspectiva Evolutiva das Arquitecturas de Computadores
PLANEAMENTO
2
MEEC - Arquitectura de Computadores 2014-2015
Unidade de Controlo Introdução
Formato das Instruções
Unidade de Controlo Ciclo Único
Unidade de Controlo de Ciclo Múltiplo
Pipeline
SUMÁRIO
3
MEEC - Arquitectura de Computadores 2014-2015
Unidade de Controlo: Módulo (Circuito Sequencial) responsável pelo controlo da sequência de operações a executar na Datapath para implementação de uma tarefa.
Unidade de Controlo:
Programável – Aquisição e execução de instruções armazenadas em memória RAM ou ROM. Localização das instruções através do registo PC (Program Counter). Interpretação das instruções e ativação da sequência de microoperações a executar pela Datapath.
Não-Programável – As operações a serem executadas assim como a sua sequência baseiam-se nas entradas da U. de Controlo e na avaliação dos bits de estado. Inexistência de procedimento de aquisição de instruções e de recurso a um registo do tipo PC (Program Counter).
UNIDADE DE CONTROLO
4
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
5
Computador de Ciclo Único:
Computador de Ciclo Único:
Computador ou Sistema Digital
Programável que implementa a
Aquisição e Execução de uma Instrução
num Ciclo Único de relógio.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
6
Computador de Ciclo Múltiplo:
Computador de Ciclo Múltiplo: (1) utilização de
memória única para instruções e dados; (2)
implementação e execução de instruções complexas.
MEEC - Arquitectura de Computadores 2014-2015
Unidade de Controlo Introdução
Formato das Instruções
Unidade de Controlo Ciclo Único
Unidade de Controlo de Ciclo Múltiplo
Pipeline
SUMÁRIO
7
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
8
Elementos de Armazenamento de Informação:
Elementos de Armazenamento de
Informação considerados nos exemplos em
estudo:
PC (Program Counter): Armazena o
endereço da próxima instrução a ser lida de
memória ou aponta para a posição de
memória da próxima instrução.
Register File: Conjunto de registos da
Unidade de Processamento (8 de 16 bits)
Instruction Memory: Memória onde se
encontra armazenado o programa (conjunto
de instruções).
Data Memory: Memória onde se encontram
armazenados os dados utilizados durante o
processamento.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
9
Formato de Instruções:
Considerando 7 bits para especificar o código da operação e 9 bits para especificar registos, dados ou endereços. (Unidade de Armazenamento da Datapath com 8 Registos de R0 a R7)
Endereçamento por Registo
Endereçamento Imediato
Endereçamento Relativo
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
10
Conjunto de Instruções Elementares:
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
12
Formato de Instruções:
Nota: Assumindo conteúdo de R4 igual a 70 e de R5 igual a 80
MEEC - Arquitectura de Computadores 2014-2015
Unidade de Controlo Introdução
Formato das Instruções
Unidade de Controlo Ciclo Único
Unidade de Controlo de Ciclo Múltiplo
Pipeline
SUMÁRIO
15
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
16
Computador de Ciclo Único:
Computador de Ciclo Único:
Computador ou Sistema Digital
Programável que implementa a
Aquisição e Execução de uma Instrução
num Ciclo Único de relógio.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
17
Computador de Ciclo Único: Instrução e Palavra de Controlo para a UP
Palavra de Controlo
Instrução
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
18
Computador de Ciclo Único: Descodificador de Instruções
U. Processamento, Memória de Dados e U. Controlo
Palavra de Controlo para a UP
Instrução
MEEC - Arquitectura de Computadores 2014-2015
19
UNIDADE DE CONTROLO Computador de Ciclo Único: Descodificador de Instruções
Tipos de Instrução
tendo por base o uso de
diferentes recursos de
hardware:
A palavra de controlo inclui sinais de
controlo para a U. de Processamento,
Memória de Dados e U. de Controlo.
Sinais para a U. de Controlo:
PL: “1” – Carregamento do PC; “0” –
Incremento do PC.
JB: “1” – Salto Incondicional; “0” – Salto
Condicional.
BC: Seleciona os bits de estado (Z ou N),
ou os seus complementos, que devem ser
avaliados no caso de saltos condicionais.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO Computador de Ciclo Único: Descodificador de Instruções
Tipos de Instrução
tendo por base o uso de
diferentes recursos de
hardware:
20
Sinais para a U. de Controlo:
FS: PL (Saltos Condicionais e
Incondicionais) Impõem bits de FS a 0, para
passar o registo A pela ALU e avaliar os bits
de estado (Z e N). Contudo, uma solução
mais realista seria armazenar os bits de
estado, “FLAGS,” num registo, “Registo de
Estado”, e efetuar a análise das flags sempre
em relação à instrução anterior.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
21
Computador de Ciclo Único: Exemplo de Instruções
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
22
LD R1,R3 Carrega R1 com o conteúdo da posição de
memória apontada por R3 (R1=2).
ADI R1,R1,3 Soma 3 a R1 (R1=5).
NOT R1,R1 Complementa R1
INC R1,R1 Incrementa R1 (R1=-5)
INC R3,R3 Incrementa R3
LD R2,R3 Carrega R2 com o conteúdo da posição de
memória apontada por R3 (R2=83).
ADD R2,R2,R1 Soma R2 com R1, R2=83-5=78
INC R3,R3 Incrementa R3
ST R3,R2 Armazena o valor de R2 na posição de memória
apontada por R3.
Computador de Ciclo Único: Exemplo de Programa
Pretende-se efetuar a seguinte operação aritmética:
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
23
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
24
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
25
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
26
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
27
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
28
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
29
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
30
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
31
Computador de Ciclo Único: Exemplo de Programa
LD R1,R3 0010000 001 011 000
ADI R1,R1,3 1000010 001 001 011
NOT R1,R1 0001011 001 001 000
INC R1,R1 0000001 001 001 000
INC R3,R3 0000001 011 011 000
LD R2,R3 0010000 010 011 000
ADD R2,R2,R1 0000010 010 010 001
INC R3,R3 0000001 011 011 000
ST R3,R2 0100000 000 011 010
M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
32
Computador de Ciclo Único: Controlo de Salto
A palavra de controlo inclui sinais de
controlo para a U. de Processamento,
Memória de Dados e U. de Controlo.
Sinais para a U. de Controlo:
PL: “1” – Carregamento do PC; “0” –
Incremento do PC.
JB: “1” – Salto Incondicional; “0” – Salto
Condicional.
BC: Seleciona os bits de estado (Z ou N),
ou os seus complementos, que devem ser
avaliados no caso de saltos condicionais.
Palavra de Controlo
Condição de Salto
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
33
Computador de Ciclo Único: Controlo de Salto
Condição de Salto
Cond = PL JB + BCout
Lógica para Condição de Salto
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
34
Computador de Ciclo Único: Controlo de Salto
Condição de Salto
Lógica para Atualização do PC
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
35
Computador de Ciclo Único: Exemplo de Execução de Instruções de Salto
BRZ R3, 16 1100000 010 011 000
JMP R4 1110000 000 100 000
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
36
Computador de Ciclo Único: Exemplo de Execução de Instruções de Salto
BRZ R3, 16 1100000 010 011 000
JMP R4 1110000 000 100 000
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
37
Computador de Ciclo Único: Desempenho
UC
UP
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
38
Limitações:
• Limitado na execução de instruções complexas que correspondem à execução de
várias microoperações.
• Impossibilita utilização de memória única para instruções e dados, e.g., a execução
de uma instrução com acesso a dados em memória obrigaria a 2 ciclos de acesso à
memória.
• Limite em termos da frequência máxima do sinal de relógio devido aos longos tempos
de propagação.
Computador de Ciclo Único: Desempenho
MEEC - Arquitectura de Computadores 2014-2015
Computador de Ciclo Único:
UNIDADE DE CONTROLO
39
Diagrama de blocos de um Computador de Ciclo Único com Controlo Hardwired.
MEEC - Arquitectura de Computadores 2014-2015
Computador de Ciclo Único:
UNIDADE DE CONTROLO
40
Em alternativa à implementação hardwired poder-se-ia utilizar uma memória para realizar a função de descodificação de instruções. Oferecendo esta alternativa maior flexibilidade na alteração das instruções interpretadas pela máquina.
Memória para
Descodificação das Instruções
MEEC - Arquitectura de Computadores 2014-2015
Computador de Ciclo Único:
UNIDADE DE CONTROLO
41
Memória para
Descodificação das Instruções
A função anteriormente realizada pelo descodificador é agora realizada por uma memória de 2^3 palavras de 4 bits! Endereço fornecido pelos bits OP15, OP14 e OP9, e palavras compostas por FS0, RW, MW e PL.
Linhas de Endereço
Saídas da Memória
MEEC - Arquitectura de Computadores 2014-2015
Computador de Ciclo Único:
UNIDADE DE CONTROLO
42
Memória para
Descodificação das Instruções
Linhas de Endereço
Saídas da Memória
Linhas de Endereço Saídas da Memória
MEEC - Arquitectura de Computadores 2014-2015
Unidade de Controlo Introdução
Formato das Instruções
Unidade de Controlo Ciclo Único
Unidade de Controlo de Ciclo Múltiplo
Pipeline
SUMÁRIO
43
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
44
Computador de Ciclo Múltiplo:
Computador de Ciclo Múltiplo: (1) utilização de
memória única para instruções e dados; (2)
implementação e execução de instruções complexas.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
45
Computador de Ciclo Múltiplo: Formato das Microinstruções
U. Processamento
Sinais para a U. de Processamento:
MM: Sinal de controlo para o MUX de seleção da entidade que
fornece o endereço de memória (PC para acesso a instrução e BUS A
para acesso a dados).
TD,TA,TB: Bits de controlo que são concatenados com os bits de
especificação/endereçamento dos registos para permitir armazenar,
num registo adicional R8, dados gerados num ciclo e necessários em
ciclos posteriores da execução da mesma instrução.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
46
Computador de Ciclo Múltiplo: Palavra de Controlo para a U. de Processamento
U. Processamento
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
47 Arquitectura de Computadores
2006/2007
Computador de Ciclo Múltiplo: Formato das Microinstruções
Sinais para a U. de Controlo:
IL: Load Enable do registo IR (Instruction Register), utilizado para
armazenar a instrução durante os ciclos da sua execução.
PI: Increment Enable do PC (Program Counter)
PL: Program Counter Load
MC: Sinal de controlo do MUX de seleção da entidade que fornece o
endereço da memória de controlo (bits NA da Microinstrução ou bits
de IR ) a armazenar no CAR (Control Address Register)
MS: Sinal de controlo do MUX de seleção entre carregar ou
incrementar o registo CAR.
NA: Endereço Seguinte
U. Controlo
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
48
Computador de Ciclo Múltiplo: Informação de Controlo para a U. de Controlo
U. Controlo
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
49
Computador de Ciclo Múltiplo: Aquisição e Execução de Instruções
Processamento de Instruções: consiste em 2
passos, aquisição e execução.
Aquisição (Fetch) - Estado IF (Instruction
Fetch): (1) o PC contém o endereço da
instrução na memória; (2) o endereço é aplicado
à memória conjuntamente com a activação do
sinal de leitura; (3) o conteúdo é armazenado,
no fim do ciclo de relógio, no registo IR; (4) o
PC é incrementado.
Execução (Execution) – Estado EX0: (1)
Preenchimento do CAR, tendo por base os 7
bits mais significativos de IR; (2) Permite
aceder a uma das 128 posições da memória de
controlo.
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
50
Computador de Ciclo Múltiplo: Microprograma para Aquisição e Execução de Instruções
Notação Simbólica
Codificação Binária
MEEC - Arquitectura de Computadores 2014-2015
51
Computador de Ciclo Múltiplo: Microprograma para Aquisição e Execução de Instruções
Notação Simbólica
Códificação Binária
UNIDADE DE CONTROLO
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
52
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h R2 <- 0010h PC <- 0000h CAR <- IF ou seja 192d M[R1] <- 6d e a execução da seguinte sequência de instruções: LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3 Qual a função realizada? Quantos os ciclos de relógio? M[R1+R2] <- -M[R1] em 15 ciclos de relógio
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
53
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- xxxxh
PC <- 0000h
CAR <- 192
e a execução: Ciclo 0 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
54
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- xxxxh
PC <- 0001h
CAR <- 193
e a execução: Ciclo 1 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
LD
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
55
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- xxxxh
PC <- 0001h
CAR <- 001
e a execução: Ciclo 2 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
LD
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
56
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- 0006h
PC <- 0001h
CAR <- 192
e a execução: Ciclo 3 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
LD
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
57
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- 0006h
PC <- 0002h
CAR <- 193
e a execução: Ciclo 4 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
NOT
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
58
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- 0006h
PC <- 0002h
CAR <- 004
e a execução: Ciclo 5 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
NOT
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
59
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFF9h
PC <- 0002h
CAR <- 192
e a execução: Ciclo 6 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
NOT
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
60
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFF9h
PC <- 0003h
CAR <- 193
e a execução: Ciclo 7 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
INC
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
61
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFF9h
PC <- 0003h
CAR <- 003
e a execução: Ciclo 8 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
INC
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
62
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0003h
CAR <- 192
e a execução: Ciclo 9 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
INC
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
63
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0004h
CAR <- 193
e a execução: Ciclo 10 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
ADD
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
64
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0004h
CAR <- 005
e a execução: Ciclo 11 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
ADD
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
65
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD10h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0004h
CAR <- 192
e a execução: Ciclo 12 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
ADD
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
66
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0005h
CAR <- 193
e a execução: Ciclo 13 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
ST
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
67
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0005h
CAR <- 002
e a execução: Ciclo 14 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
ST
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
68
Computador de Ciclo Múltiplo: Exemplo Considere as seguintes inicializações: R1 <- AD00h
R2 <- 0010h
R3 <- FFFAh (-6)
PC <- 0005h
CAR <- 192
e a execução: Ciclo 15 de 15 LD R3, R1 NOT R3, R3 INC R3, R3 ADD R1, R1, R2 ST R1, R3
ST
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
69
Computador de Ciclo Múltiplo: Execução de Instruções de Endereçamento Indirecto
Processamento da Instrução: LRI (Load Register Indirect)
Execução em 4 ciclos de relógio (IF, EX0, LRI0 e LRI1), a mesma operação
com recurso à instrução LD corresponde a 6 ciclos de relógio (IF, EX0, LD, IF,
EX0, LD).
LRI corresponde, claramente, a uma instrução que não pode ser executada
numa arquitectura de ciclo único.
SARMMDRR
Exemplo:
LRI R1, R2
21 RMMR
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
70
Computador de Ciclo Múltiplo: Execução de Instruções de Endereçamento Indirecto
LRI R1, R2
OPCODE DR SA SB
LRI - 0000110 001 010 000
END NXT MS MC IL PI PL TD TA TB MB FS MD RW MM MW
IF --- CNT --- LDI INP NLP --- --- --- --- --- --- NW PC NW
192 - 11000000 00000000 000 0 1 1 0 0 0 0 0 00000 0 0 1 0
EX0 --- NXT OPC NLI NLP NLP --- --- --- --- --- --- NW --- NW
193 - 11000001 00000000 001 1 0 0 0 0 0 0 0 00000 0 0 0 0
LRI0 LRI1 NXT NXA NLI NLP NLP R8 SA --- --- --- DATA WR MA NW
006 - 00000110 10000110 001 0 0 0 0 1 0 0 0 00000 1 1 0 0
LRI1 IF NXT NXA NLI NLP NLP DR R8 --- --- --- DATA WR MA NW
134 - 10000110 00000000 001 0 0 0 0 0 1 0 0 00000 1 1 0 0
21 RMMR
MEEC - Arquitectura de Computadores 2014-2015
?0000111=IR
SARR 8
0:2IRzfDRR
?00:2 =IRzf
88 RsrR
1- DRRDRR
?01=-DRR
10
SRM1
SRM2
SRM3
SRM4
00000111
10000111
10001000
10001001
1
0
0
1
8RDRR
SRM5IF
10001010
DRSA =
EX0 11000001 IF 11000000
PCMIR 1+ PCPC
UNIDADE DE CONTROLO
71
Computador de Ciclo Múltiplo: Execução de Instruções em Ciclo Múltiplo
Processamento da Instrução: SRM (Shift Right
Multiple)
Deslocamento para a direita SA o número de
vezes indicado nos últimos 3 bits do código da
operação. Execução em 5+2s ciclos de relógio, a
utilização de uma instrução de shift simples
conduziria 3s ciclos de relógio.
5 ciclos (IF, EX0, SRM1, SRM2, SRM5)
2s ciclos (SRM3+SRM4)
SRM R1, 3
11 RsrsrsrR
Exemplo:
OPCODE DR SA SB
SRM - 0000111 001 001 011
MEEC - Arquitectura de Computadores 2014-2015
72
Computador de Ciclo Múltiplo: Exemplo: Desenvolvimento de Microprograma
?0000111=IR
SARR 8
0:2IRzfDRR
?00:2 =IRzf
88 RsrR
1- DRRDRR
?01=-DRR
10
SRM1
SRM2
SRM3
SRM4
00000111
10000111
10001000
10001001
1
0
0
1
8RDRR
SRM5IF
10001010
DRSA =
EX0 11000001 IF 11000000
PCMIR 1+ PCPC
END NA MS MC IL PI PL TD TA TB MB FS MD RW MM MW
IF --- CNT --- LDI INP NLP --- --- --- --- --- --- NW PC NW
EX0 --- NXT OPC NLI NLP NLP --- --- --- --- --- --- NW --- NW
SRM1
SRM2
SRM3
SRM4
SRM5
SRM REGISTO, VALOR
MEEC - Arquitectura de Computadores 2014-2015
?0000111=IR
SARR 8
0:2IRzfDRR
?00:2 =IRzf
88 RsrR
1- DRRDRR
?01=-DRR
10
SRM1
SRM2
SRM3
SRM4
00000111
10000111
10001000
10001001
1
0
0
1
8RDRR
SRM5IF
10001010
DRSA =
EX0 11000001 IF 11000000
PCMIR 1+ PCPC
UNIDADE DE CONTROLO
73
Computador de Ciclo Múltiplo: Exemplo: Desenvolvimento de Microprograma
END NA MS MC IL PI PL TD TA TB MB FS MD RW MM MW
IF --- CNT --- LDI INP NLP --- --- --- --- --- --- NW PC NW
EX0 --- NXT OPC NLI NLP NLP --- --- --- --- --- --- NW --- NW
SRM1 SRM2 NXT NXA NLI NLP NLP 1 SA --- --- F=A FU WR --- NW
SRM2 SRM5 BZ NXA NLI NLP NLP DR --- SB 1 F=B FU WR --- NW
SRM3 --- CNT --- NLI NLP NLP 1 --- 1 0 F=sr B FU WR --- NW
SRM4 SRM3 BNZ NXA NLI NLP NLP DR SA --- --- F=A-1 FU WR --- NW
SRM5 IF NXT NXA NLI NLP NLP DR 1 --- --- F=A FU WR --- NW
MICROPROGRAMA
PALAVRA DE CONTROLO
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
74
Computador de Ciclo Múltiplo: Diagrama de Blocos para U. Controlo “Hardwired” baseada num Contador e num Descodificador
MEEC - Arquitectura de Computadores 2014-2015
UNIDADE DE CONTROLO
75
Computador de Ciclo Múltiplo: Aquisição e Execução de Instruções
MEEC - Arquitectura de Computadores 2014-2015
Unidade de Controlo Introdução
Formato das Instruções
Unidade de Controlo Ciclo Único
Unidade de Controlo de Ciclo Múltiplo
Pipeline
SUMÁRIO
76
MEEC - Arquitectura de Computadores 2014-2015
Arquitecturas de Computadores Elementares: Controlo Pipelined
UNIDADE DE CONTROLO
77
IF – Instruction Fetch DOF – Decode and Operand Fetch EX – Execution WB – Write Back
Exemplo de Desempenho:
Arq. de Ciclo Único: 17ns (1.18 inst. em 20ns)
Pipeline: 4x5=20ns (4 inst. em 20ns)
Pipeline/CicloÚnico=3.4
MEEC - Arquitectura de Computadores 2014-2015
• Bibliografia
[1] M. Morris Mano, Charles R. Kime, “Logic and Computer Design Fundamentals”, 4nd Edition Updated, Prentice-Hall International, 2008.
[2] G. Arroz, J. Monteiro, A. Oliveira, “Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores”, IST Press, 2007.
• Outras Referências
[3] J. Hennessy, D. Patterson, “Computer Architecture – A Quantitative Approach”, Morgan Kaufmann, 2007.
[4] D. Patterson, J. Hennessy, “Computer Organization and Design”, Morgan Kaufmann, 2009.
UNIDADE DE CONTROLO BIBLIOGRAFIA
78
Top Related