Escolar Documentos
Profissional Documentos
Cultura Documentos
Unidade de Controlo
Arquitectura de Computadores
LEEC/MEEC (2006/07 2 Sem.)
Unidade de Controlo
Nuno Cavaco Gomes Horta
Universidade Tcnica de Lisboa / Instituto Superior Tcnico
Arquitectura de Computadores
Unidade de Controlo
Sumrio
Introduo Unidade de Processamento Unidade de Controlo Conjunto de Instrues Unidade Central de Processamento (CPU) Unidade de Entrada/Sada (I/O) Unidade de Memria Perspectiva Evolutiva das Arquitecturas de Computadores
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo: Mdulo (Circuito Sequencial) responsvel pelo controlo da sequncia de operaes a executar na Datapath para implementao de uma tarefa.
Unidade de Controlo: Programvel Aquisio e execuo de instrues armazenadas em memria RAM ou ROM. Localizao das instrues atravs do registo PC (Program Counter). Interpretao das instrues e activao da sequncia de microoperaes a executar pela Datapath. No-Programvel As operaes a serem executadas assim como a sua sequncia baseiam-se nas entradas da U. de Controlo e na avaliao dos bits de estado. Inexistncia de procedimento de aquisio de instrues e de recurso a um registo do tipo PC (Program Counter).
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo (Projecto): A U.C. pode ser interpretada como uma ASM (Algorithmic State Machine), isto , como uma mquina de estados ou circuito sequencial que implementa o algoritmo de controlo pretendido.
Unidade de Controlo (Especificao): A especificao da U.C. pode ser realizada com recurso a fluxogramas de ASMs, embora semelhantes aos fluxogramas convencionais so interpretados de forma diferente, uma vez que os fluxogramas de ASMs permitem tanto a especificao da sequncia de estados como as relaes de temporizao entre estados e as aces desencadeadas em cada estado como resposta aos ciclos de relgio.
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo (Especificao) Fluxograma de ASM Simbologia Estado
Exemplo
Condio
Sada
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo (Especificao) Fluxograma de ASM (Exemplo) Diagrama Temporal
Nota: O registo A colocado a 0, apenas, no terceiro ciclo de relgio uma vez que a transferncia sncrona.
N. Horta, IST - UTL Arquitectura de Computadores 2006/2007 9
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Especificao)
Multiplicao
Multiplicao em Hardware
!
N. Horta, IST - UTL Arquitectura de Computadores 2006/2007 10
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Datapath)
Datapath
11
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Fluxograma da ASM)
Algoritmo
12
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Fluxograma da ASM)
No projecto de uma Unidade de Controlo (UC) deve ser considerado, tanto o controlo das microoperaes (gerao dos sinais de controlo para a Datapath - Tabela), como a sequncia do controlo (determinao do passo seguinte Fluxograma de ASM). Arquitectura de Computadores 13 2006/2007
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel)
Projectos Alternativos: N. Horta, IST - UTL Registo e Descodificador, 1 FF por Estado, Contadores, etc. Arquitectura de Computadores 15 2006/2007
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel) (Soluo 1 Registo e Descodificador)
Nota: As equaes dos FFs so obtidas por inspeco da tabela e tendo por base as sadas do descodificador estados -, a soluo no mnima, em certos casos, pode ser simplificada utilizando as variveis de estado (sadas dos FFs). N. Horta, IST - UTL Arquitectura de Computadores 2006/2007
16
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel) (Soluo 1 Registo e Descodificador)
Nota: As equaes dos FFs so obtidas por inspeco da tabela e tendo por base as sadas do descodificador estados -, a soluo no mnima, em certos casos, pode ser simplificada utilizando as variveis de estado (sadas dos FFs). N. Horta, IST - UTL Arquitectura de Computadores 2006/2007
17
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel) (Soluo 1 Registo e Descodificador)
18
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel) (Soluo 2 1 FF por Estado)
Algoritmo
19
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel) (Soluo 2 1 FF por Estado)
20
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (No-Programvel) (Soluo 2 1 FF por Estado)
21
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel)
Controlo Microprogramado: Armazenamento da informao de controlo em memria, Memria de Controlo. A cada palavra de memria corresponde uma microinstruo traduzida em uma ou mais microoperaes do sistema. O conjunto de microinstrues constitui o microprograma. Cada palavra de memria especifica um conjunto de microoperaes a serem realizadas na Unidade de Controlo e na Unidade de Processamento (Datapath). CAR Control Address Register: Contm o endereo da palavra de memria. CDR Control Data Register: Contm o contedo da ltima palavra de memria lida. Arquitectura de Computadores 23 2006/2007
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel)
24
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel) Fluxograma da ASM
Fluxograma ASM: Fluxograma ASM com um aumento do nmero de estados devido localizao dos bits de estado a contribuir para a definio do endereo de leitura seguinte, o que impossibilita a utilizao de sadas condicionais, quando comparado com o caso do Controlo Hardwired visto anteriormente. Palavra de Controlo/Microinstruo: Definio do estado seguinte, instruo seguinte, atravs da especificao do endereo de memria da ROM/RAM da Unidade de Controlo. Seleco do estado seguinte baseada nos valores dos bits de estado da Unidade de Processamento. Especificao dos sinais de controlo para a Unidade de Processamento.
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel)
Palavra de Controlo
26
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel)
Palavra de Controlo
27
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel) Palavra de Controlo
28
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel)
29
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel) Fluxograma da ASM Operaes de Trasferncia de Registos para a definio do Microprograma do Multiplicador Binrio
Palavra de Controlo
30
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Multiplicador Binrio: (Programvel)
Palavra de Controlo
31
Arquitectura de Computadores
Unidade de Controlo
Projecto de U. de Controlo para Mquina de Estados Algoritmica
Controlo Hardwired: Mais econmico para U. de Controlo pequenas e maior rapidez para Sistemas de Elevado Desempenho. Controlo Microprogramado: Aplicvel a sistemas com um elevado nmero de instrues complexas desde que a velocidade no seja o maior requisito.
32
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica: Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Arquitectura de um Computador Elementar:
Unidade de Processamento e Unidade de Controlo de uso geral sendo as operaes a realizar, no Computador ou Sistemas Digital Programvel, definidas com recurso a um programa.
34
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico:
Computador de Ciclo nico: Computador ou Sistema Digital Programvel que implementa a Aquisio e Execuo de uma Instruo N. Horta, IST - UTL Arquitectura de Computadores num Ciclo nico de relgio. 2006/2007
35
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo:
Computador de Ciclo Mltiplo: (1) utilizao de memria nica para instrues e dados; (2) implementao e execuo de instrues complexas.
36
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica: Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Formato de Instrues:
Considerando 7 bits para especificar o cdigo da operao e 9 bits para especificar registos, dados ou endereos. (Unidade de Armazenamento da Datapath com 8 Registos de R0 a R7) Endereamento por Registo
Endereamento Imediato
Endereamento Relativo
38
Arquitectura de Computadores
Unidade de Controlo
Formato de Instrues:
39
Arquitectura de Computadores
Unidade de Controlo
Formato de Instrues:
N. Horta, IST - UTL Arquitectura de Computadores 2006/2007 Nota: Assumindo contedo de R4 igual a 70 e de R5 igual a 80
40
Arquitectura de Computadores
Unidade de Controlo
Formato de Instrues:
41
Arquitectura de Computadores
Unidade de Controlo
Formato de Instrues:
42
Arquitectura de Computadores
Unidade de Controlo
Elementos de Armazenamento de Informao:
Elementos de Armazenamento de Informao considerados nos exemplos em estudo: PC (Program Counter): Armazena o endereo da prxima instruo a ser lida de memria ou aponta para a posio de memria da prxima instruo. Register File: Conjunto de registos da Unidade de Processamento (8 de 16 bits) Instruction Memory: Memria onde se encontra armazenado o programa o conjunto de instrues. Data Memory: Memria onde se encontram armazenados os dados utilizados durante o processamento. N. Horta, IST - UTL Arquitectura de Computadores 2006/2007 43
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica: Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico:
Computador de Ciclo nico: Computador ou Sistema Digital Programvel que implementa a Aquisio e Execuo de uma Instruo N. Horta, IST - UTL Arquitectura de Computadores num Ciclo nico de relgio. 2006/2007
45
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico: Descodificador de Instrues
A palavra de controlo inclui sinais de controlo para a U. de Processamento, Memria 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, ou os seus complementos, que devem ser avaliados no caso de saltos condicionais.
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico: Descodificador de Instrues Tipos de Instruo tendo por base o uso de diferentes recursos de hardware:
Sinais para a U. de Controlo: FS: PL (Saltos Condicionais e Incondicionais) Impem bits de FS a 0, para passar o registo A pela ALU e avaliar os bits de estado (Z e N). Contudo, uma soluo mais realista seria armazenar os bits de estado, FLAGS, num registo, Registo de Estado, e efectuar a anlise das flags sempre em relao instruo anterior. BC: Gerado directamente dos 3 bits menos N. Horta, IST - UTL Arquitectura de Computadores significativos do cdigo de operao. 2006/2007 47
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico: Exemplo de Instrues
48
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico: Exemplo de Programa
Pretende-se efectuar a seguinte operao aritmtica: M(250) = M(249) - (M(248) + 3); Inicialmente, R3 = 248.
LD
R1,R3
Carrega R1 com o contedo da posio de memria apontada por R3 (R1=2). Soma 3 a R1 (R1=5). Complementa R1 Incrementa R1 (R1=-5) Incrementa R3 Carrega R2 com o contedo da posio de memria apontada por R3 (R2=83). Soma R2 com R1, R2=83-5=78 Incrementa R3 Armazena o valor de R2 na posio de memria Arquitectura de Computadores 49 apontada por R3. 2006/2007
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico: Desempenho
UC
UP
50
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico: Desempenho
Limitaes: Limitado na execuo de instrues complexas que correspondem execuo de vrias microoperaes. Impossibilita utilizao de memria nica para instrues e dados, e.g., a execuo de uma instruo com acesso a dados em memria obrigaria a 2 ciclos de acesso memria. Limite em termos da frequncia mxima do sinal de relgio devido aos longos tempos de propagao.
51
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo nico:
52
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica: Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo:
Computador de Ciclo Mltiplo: (1) utilizao de memria nica para instrues e dados; (2) implementao e execuo de instrues complexas.
54
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Formato das Microinstrues
U. Processamento
Sinais para a U. de Processamento: MM: Sinal de controlo para o MUX de seleco da entidade que fornece o endereo de memria (PC para acesso a instruo e BUS A para acesso a dados). TD,TA,TB: Bits de controlo que so concatenados com os bits de especificao/endereamento dos registos para permitir armazenar, num registo adicional R8, dados gerados num ciclo e necessrios em ciclos posteriores da execuo da mesma instruo. N. Horta, IST - UTL Arquitectura de Computadores 2006/2007 55
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Palavra de Controlo para a U. de Processamento
U. Processamento
56
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Formato das Microinstrues
U. Controlo
Sinais para a U. de Controlo: IL: Load Enable do registo IR (Instruction Register), utilizado para armazenar a instruo durante os ciclos da sua execuo. PI: Increment Enable do PC (Program Counter) PL: Program Counter Load MC: Sinal de controlo do MUX de seleco da entidade que fornece o endereo da memria de controlo (bits NA da Microinstruo ou bits de IR ) a armazenar no CAR (Control Address Register) MS: Sinal de controlo do MUX de seleco entre carregar ou incrementar o registo CAR. Arquitectura de Computadores 57 NA: Endereo Seguinte 2006/2007
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Informao de Controlo para a U. de Controlo
U. Controlo
58
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Aquisio e Execuo de Instrues
Processamento de Instrues: consiste em 2 passos, aquisio e execuo. Aquisio (Fetch) - Estado IF (Instruction Fetch): (1) o PC contm o endereo da instruo na memria; (2) o endereo aplicado memria conjuntamente com a activao do sinal de leitura; (3) o contedo armazenado, no fim do ciclo de relgio, no registo IR; (4) o PC incrementado. Execuo (Execution) Estado EX0: (1) Preenchimento do CAR, tendo por base os 7 bits mais significativos de IR; (2) Permite aceder a uma das 128 posies da memria de controlo.
!
N. Horta, IST - UTL Arquitectura de Computadores 2006/2007 59
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Microprograma para Aquisio e Execuo de Instrues Notao Simblica
Cdificao Binria
60
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Microprograma para Aquisio e Execuo de Instrues Notao Simblica
Cdificao Binria
61
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Execuo de Instrues de Endereamento Indirecto
Exemplo:
LRI R1, R2
R1 M [M [R 2]]
R[DR ] M [M [R[SA]]]
Processamento da Instruo: LRI (Load Register Indirect) Execuo em 4 ciclos de relgio (IF, EX0, LRI0 e LRI1), a mesma operao com recurso instruo LD corresponde a 6 ciclos de relgio (IF, EX0, LD, IF, EX0, LD). LRI claramente, a uma de instruo que no pode ser executada N. Horta, ISTcorresponde, - UTL Arquitectura Computadores numa arquitectura de ciclo nico.2006/2007 62
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Execuo de Instrues de Endereamento Indirecto LRI R1, R2
DR 001
SA 010
SB 000
R1 M [M [R 2]]
END IF 192 - 11000000 EX0 193 - 11000001 LRI0 006 - 00000110 LRI1 134 - 10000110
TD --0 --0 R8 1 DR 0
TA --0 --0 SA 0 R8 1
RW NW 0 NW 0 WR 1 WR 1
MM PC 1 --0 MA 0 MA 0
MW NW 0 NW 0 NW 0 NW 0
63
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Execuo de Instrues em Ciclo Mltiplo
EX0 11000001 IF 11000000 IR M [PC ] PC PC + 1
Exemplo:
SRM R1, 3
SA = DR 1 IR = 0000111 ?
S RM 1 00000111
R 8 R [SA ]
S RM 2 10000111
R [DR ] zf IR [2 : 0 ]
zf IR [2 : 0 ] = 0 ?
S RM 3 0 10001000
Processamento da Instruo: SRM (Shift Right Multiple) Deslocamento para a direita SA o nmero de vezes indicado nos ltimos 3 bits do cdigo da operao. Execuo em 5+2s ciclos de relgio, a utilizao de uma instruo de shift simples conduziria 3s ciclos de relgio. 5 ciclos (IF, EX0, SRM1, SRM2, SRM5) N. Horta, IST - UTL Arquitectura de Computadores 2s ciclos (SRM3+SRM4) 2006/2007
R 8 sr R 8
S RM 4 10001001
R [DR ] R [DR ] 1
R [DR ] 1 = 0 ?
S RM 5 1 10001010
R [DR ] R 8
64
IF
11000000 IR M [PC ] PC PC + 1
SA = DR 1 IR = 0000111 ?
SRM 1 00000111
R 8 R [SA ]
SRM 2 10000111
R [DR ] zf IR [2 : 0 ]
zf IR [2 : 0 ] = 0 ?
SRM 3 0 10001000
R 8 sr R 8
SRM 4 10001001
R [DR ] R [DR ] 1
R [DR ] 1 = 0 ?
SR M 5 1 10001010
R [DR ] R 8
IF
65
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Exemplo: Desenvolvimento de Microprograma
0 EX0 11000001 IF 11000000 IR M [PC ] PC PC + 1
SA = DR 1 IR = 0000111 ?
S RM 1 00000111
PALAVRA DE CONTROLO
R 8 R [SA ]
S RM 2 10000111
R [DR ] zf IR [2 : 0 ]
zf IR [2 : 0 ] = 0 ?
MICROPROGRAMA
END IF EX0 SRM1 SRM2 SRM3 SRM4 SRM5 NA ----SRM2 SRM5 --SRM3 IF MS CNT NXT NXT BZ CNT BNZ NXT MC --OPC NXA NXA --NXA NXA IL LDI NLI NLI NLI NLI NLI NLI PI INP NLP NLP NLP NLP NLP NLP PL NLP NLP NLP NLP NLP NLP NLP TD ----1 DR 1 DR DR TA ----SA ----SA 1 TB ------SB 1 ----MB ------1 0 ----FS ----F=A F=B F=sr B F=A-1 F=A MD ----FU FU FU FU FU RW NW NW WR WR WR WR WR MM PC ------------MW NW NW NW NW NW NW NW
S RM 3
0 10001000
R 8 sr R 8
S RM 4 10001001
R [DR ] R [DR ] 1
R [DR ] 1 = 0 ?
S RM 5 1 10001010
R [DR ] R 8
66
IF
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica: Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Diagrama de Blocos para U. Controlo Hardwired baseada num Contador e num Descodificador
68
Arquitectura de Computadores
Unidade de Controlo
Computador de Ciclo Mltiplo: Aquisio e Execuo de Instrues
69
Arquitectura de Computadores
Unidade de Controlo
Unidade de Controlo
Introduo Projecto de Unidade de Controlo Genrica: Algoritmo e Datapath para Multiplicao Binria Unidade de Controlo Hardwired Unidade de Controlo Microprogramada
Arquitectura de Computadores
Unidade de Controlo
Arquitecturas de Computadores Elementares: Controlo Pipelined
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) N. Horta, IST - UTL Pipeline/Ciclonico=3.4 Arquitectura de Computadores 2006/2007 71
Arquitectura de Computadores
Unidade de Controlo
BIBLIOGRAFIA
[1] M. Morris Mano, Charles R. Kime, Logic and Computer Design Fundamentals, Prentice-Hall International, Inc. (Captulo 8)
72