slides

Propaganda
ArquiteturadeComputadores
Prof.AlexandroBaldassin
1osemestre/2017
FeedbackfromStudents
•  CaioCarnelozenviouumlinkparaumvídeoquefalaum
poucosobreaevoluçãodacomputação
•  hEps://youtu.be/Bpas8YUlXTA
•  SeaindústriaautomobilísOcaOvesseavançadono
mesmoritmoqueacomputação(LeideMoore),hoje
teríamoscarrosandandonavelocidadedaluze
custandoalgunscentavosdereais
ArquiteturadeComputadores
2
PersonagemdaSemana
VonNeumannmedal,1993
“Forsignificantdevelopmentsincomputer
architecture,insigh_ulobservaOonson
so`wareengineering,andforcomputer
scienceeducaOonandprofessionalservice.”
Turingaward,1999
“ForlandmarkcontribuOonstocomputer
architecture,operaOngsystems,andso`ware
engineering.”
FrederickP.Brooks,Jr.
(FredBrooks)
ArquiteturadeComputadores
3
MICROARQUITETURA
Conceitos
Ciclodeexecuçãodeinstruções
P&H4.1,4.2
H&H7.1
ArquiteturadeComputadores
4
Recordando…
ISA(partevisívelao
programador)
Problema
Raíz quadrada de N?
Algoritmo
Sequência
de passos
Software
Programas
Sistema
Operacional
Device
drivers
Arquitetura
Instruções
Registradores
Microarquitetura
Caminho de dados
Controle
Lógica
Somadores
Memórias
Circuitos
Portas AND e
OR
Dispositivos
Transistores
Diodos
Física
Elétrons
ArquiteturadeComputadores
5
Recordando…
Implementação
específicadeumISA
(hardware)
Problema
Raíz quadrada de N?
Algoritmo
Sequência
de passos
Software
Programas
Sistema
Operacional
Device
drivers
Arquitetura
Instruções
Registradores
Microarquitetura
Caminho de dados
Controle
Lógica
Somadores
Memórias
Circuitos
Portas AND e
OR
Dispositivos
Transistores
Diodos
Física
Elétrons
ArquiteturadeComputadores
6
Comoumamáquinaprocessainstruções?
•  Oquesignificaprocessarumainstrução?
E=estadoarquitetural(visívelaoprogramador)
antesdainstruçãoserprocessada
Processamentodainstrução
E’=estadoarquitetural(visívelaoprogramador)
depoisdainstruçãoserprocessada
•  Processamentodeumainstrução:transformaçãodeE
emE’,deacordocomaespecificaçãodoISA
ArquiteturadeComputadores
7
Processamentodeinstruções
•  OISAespecificaoqueE’deveser,dadoumainstruçãoe
E
–  Podesermodeladocomoumamáquinadeestadofinita
–  DopontodevistadoISA,nãoháestadosintermediáriosentre
EeE’
•  MicroarquiteturaimplementacomoEétransformado
emE’
–  Hámuitasopções
–  Estadostemporários(invisíveisaoprogramador)podemser
introduzidos
ArquiteturadeComputadores
8
Ciclodeexecuçãodeinstrução
•  Emgeral,organizamosaexecuçãoemumasequência
depassoscomumatodasinstruções
•  CincopassosclássicosemmáquinasRISC
1. 
2. 
3. 
4. 
5. 
Buscadainstrução(eincrementodePC)
Decodificaçãodainstruçãoeleituradeoperandos
Execução(lógica/aritméOca)oucálculodeendereço
Acessoàmemória
Escritaemregistrador
•  Nota:umainstruçãonãonecessariamentepassapor
todososestágios
ArquiteturadeComputadores
9
1.Buscadainstrução
•  Instruçãoébuscadanamemória
–  PCapontaparainstruçãoaserexecutada
•  NesteestágiotambémécomumincrementaroPCpara
queestepossaapontarparapróximainstruçãoaser
executada
•  Todasasinstruçõesrequeremestepasso
ArquiteturadeComputadores
10
2.Decodificaçãodainstruçãoeleitura
•  Camposdainstruçãosãodecodificados(lembre-seque
todainstruçãopossuiumformato)
•  MIPS
1.  campoOPdeterminaOpodainstrução(R,IouJ)etamanho
doscamposrestantes
2.  dadossãolidosdosregistradoresnecessários
add→lêdoisregistradores
addi→lêumregistrador
j→nenhumregistradorprecisaserlido
ArquiteturadeComputadores
11
3.Execução
•  Aclassedainstruçãodeterminaoquedeveserfeito
nesteestágio
–  emgeral,umaunidadearitméOcalógica(ALU)éusada
•  InstruçõesaritméOcaselógicas(add,or,slt,...)
–  ALUcomputaresultadodaoperação(executainstrução)
•  Einstruçõesdeleituraeescrita(lw,sw,...)?
–  ALUéusadaparacálculodoendereçoefeOvo
ArquiteturadeComputadores
12
4.Acessoàmemória
•  SomenteinstruçõesdeleituraeescritaefeOvamente
necessitamdesteestágio
•  Outrasinstruçõessimplesmentenãofazemnada
•  Instruçõesdeleitura
–  dadoconOdonoendereçodememóriacomputadonoestágio
anteriorélido
•  Instruçõesdeescrita
–  dadoconOdonoregistradorfonteéescritonoendereçode
memóriacomputadonoestágioanterior
ArquiteturadeComputadores
13
5.Escritaemregistrador
•  Executadapelasinstruçõesqueprecisamescrever
resultadodaoperaçãoemregistradordesOno
•  Exemplos
–  instruçõesaritméOcaselógicas
–  instruçãodeleitura
•  Equantoàsinstruçõesdedesvioeescritaemmemória?
–  nãonecessitamdesteestágio
ArquiteturadeComputadores
14
Exemplodeexecução
0x012A4020
0x00
op
0x09
0x0A
0x08
0x00
0x20
rs
rt
rd
shamt
funct
add
Estágio1
$8,$9,$10
instruçãobuscada,PCincrementado
Estágio2
decodificaeencontrainstruçãoADD,eentãolê
registradores$9e$10
Estágio3
adicionaregistradoreslidosnoestágioanterior
Estágio4
nãousado
Estágio5
escreveresultadodoestágio3noregistrador$8
ArquiteturadeComputadores
15
Maisumexemplo…
lw $3,16($1)
Estágio1
instruçãobuscada,PCincrementado
Estágio2
decodificaeencontrainstruçãoLW,eentãolêregistrador$1
Estágio3
adiciona16aoconteúdodoregistradorlidonoestágio
anterior,calculandooendereçoefeOvodememória
Estágio4
lêconteúdodamemórianoendereçocalculadonoestágio3
Estágio5
escreveconteúdolidonoestágio4noregistrador$3
ArquiteturadeComputadores
16
Componentesdeumprocessador
•  Caminhodedados
–  componenteresponsávelpelamanipulaçãodosdados
(armazenamento,aritméOca,mulOplexação...)
–  compostodeblocosfuncionais
•  Unidadedecontrole
–  componenteresponsávelporinformaraocaminhodedadoso
quenecessitaserfeito(comoexecutarumadeterminada
instrução)
–  compostaporsinaisdecontrole
ArquiteturadeComputadores
17
Comoprojetarumprocessador?
1.  Analisarconjuntodeinstruções(ISA)
–  RegisterTransferLanguage(RTL)égeralmenteusada
2.  Selecionaroscomponentesdocaminhodedadose
estabelecerumametodologiadetemporização
3.  Construirocaminhodedadosdeacordocomos
requerimentos
4.  Analisaraimplementaçãodecadainstruçãopara
determinarossinaisdecontrolequerealizama
transferênciadosdados
5.  Construiraunidadedecontrole
ArquiteturadeComputadores
18
ProjetodoprocessadorMIPS
•  VamosexploraralgumasimplementaçõesparaoMIPS,
usandoumsubconjuntodeinstruções
–  add,sub,and,or,slt(Opo-R)
–  lw,sw(acessoàmemória)
–  beq(desviocondicional)
•  Primeiramente,construiremosocaminhodedados
•  Aseguir,projetaremosaunidadedecontrole
ArquiteturadeComputadores
19
AnálisedoISA–RTL
Paracadainstrução,
analisaroscomponentes
combinacionaise
sequenciais(deestado)
necessários
ARTL(RegisterTransfer
Language)éusada
comoumaabreviação
doqueaconteceno
hardware
ArquiteturadeComputadores
20
Seleçãodecomponentes
•  PC
–  Implícito->arquiteturaVonNeumann
•  Memória(instruçãoedados)
•  Bancoderegistradores(32)
•  ALU
–  Soma,subtração,AND,comparação,...
•  Outros
–  Hardwareparaestendersinal/zero
–  Hardwareparasomar4aoPC(usarALU?)
–  MulOplexadores(seleçãodedados)
ArquiteturadeComputadores
21
PC(ProgramCounter)
endereço
próximainstrução
endereço
instruçãocorrente
númerodebits
ArquiteturadeComputadores
22
Memória
Símbolo
Significado
A
endereço
RD
dadolido
WD
dadoaserescrito
WE
controlaquandodadoemWDéescritoemA(0ou1)
ArquiteturadeComputadores
23
Bancoderegistradores
controlaquandodadoemWD3
éescritonoregistradordesOno(0ou1)
registradoresfonte
valoreslidosdos
registradoresfonte
registradordesOno
dadoaserescritono
registradordesOno
ArquiteturadeComputadores
24
ALU(ArithmeOcLogicUnit)
operação(controle)
operandos
resultado
ArquiteturadeComputadores
25
MulOplexador
seletor
I1ouI2...ouIn
ArquiteturadeComputadores
26
Temporização
•  Clockdeterminaquandoossinaisdecontroleterão
efeito
–  metodologiasensívelàtransiçãodoclock(bordadesubida)
•  Implementaçõespossíveis:
–  Monociclo
•  todosestágiosexecutadosemumúnicociclodeclock
–  MulOciclo
•  cadaestágioexecutadoemumciclodeclock
–  Pipeline
•  mulOciclocomexecuçãosobrepostadasinstruções
ArquiteturadeComputadores
27
IMPLEMENTAÇÃOMONOCICLO
Caminhodedadosecontrole
Análisedecompromissos
P&H4.3,4.4
H&H7.3
ArquiteturadeComputadores
28
Implementaçãomonociclo
•  CiclodeclockdeveserlongosuficienteparapermiOra
execuçãodetodososestágiosseminterrupção
1.buscadeinstrução
3.execução
2.decodificação
5.escritaregistrador
4.memória
clock
ArquiteturadeComputadores
29
Caminhodedados
•  Implementandoainstruçãolw
Passo1
buscainstrução,incrementaPC
Passo2
instruçãoLW→lêregistradorfonte
Passo3
adicionaimediato(comsinalestendido)aoconteúdodo
registradorlidonoestágioanterior,calculandooendereço
Passo4
lêconteúdodoendereçodememóriacalculadonoestágio3
Passo5
escreveconteúdolidonoestágio4noregistradordesOno
ArquiteturadeComputadores
30
Caminhodedados
ArquiteturadeComputadores
31
Caminhodedados
Passo1
buscainstrução,incrementaPC
ArquiteturadeComputadores
32
Caminhodedados
Passo1
buscainstrução,incrementaPC
ArquiteturadeComputadores
33
Caminhodedados
Passo2
instruçãoLW→lêregistradorfonte
ArquiteturadeComputadores
34
Caminhodedados
Passo2
instruçãoLW→lêregistradorfonte
Nesteestágio,tambémdevemosestenderosinaldoimediatoparasoma
comregistradorbasenopróximoestágio(cálculodoendereçoefe]vo)
ArquiteturadeComputadores
35
Caminhodedados
Passo3
adicionaimediato(comsinalestendido)aoconteúdodo
registradorlidonoestágioanterior,calculandooendereço
ArquiteturadeComputadores
36
Caminhodedados
Passo4
lêconteúdodoendereçodememóriacalculadonoestágio3
ArquiteturadeComputadores
37
Caminhodedados
Passo4
lêconteúdodoendereçodememóriacalculadonoestágio3
Passo5
escreveconteúdolidonoestágio4noregistradordes]no
ArquiteturadeComputadores
38
Caminhodedados
•  Adicionarinstruçãosw
–  oqueprecisamosadicionarnocaminhodedados?
–  aoinvésdeescrevernoregistrador,escrevemosseuconteúdo
namemória
ArquiteturadeComputadores
39
Caminhodedados
•  ModificaçõesnecessáriasparainstruçõesdoOpoR
ArquiteturadeComputadores
40
Caminhodedados
•  ModificaçõesnecessáriasparainstruçõesdoOpoR
–  osdoisoperandosdaALUsãoregistradores
•  muxéadicionadoparaselecionarentreRD2eSignImm
ArquiteturadeComputadores
41
Caminhodedados
•  ModificaçõesnecessáriasparainstruçõesdoOpoR
–  resultadodaALUdeveserescritonoregistradordesOno
•  muxéadicionadoparaselecionarentreALUResulteReadData
ArquiteturadeComputadores
42
Caminhodedados
•  ModificaçõesnecessáriasparainstruçõesdoOpoR
–  índicedoregistradordedesOnodependedainstrução
•  muxéadicionadoparaselecionarentrecamposRTeRD
ArquiteturadeComputadores
43
Caminhodedados
•  Caminhodedadosatualsuportaasinstruções:
–  add,sub,or,and,stl
–  lw,sw
•  Necessárioaindaestendercaminhodedadospara
suportarbeq
beq$1,$2,label
if(R[rs]==R[rt])then
PC=PC+4+sign_ext(imm)<<2;
else
PC=PC+4
op
rs
6bits
5bits
ArquiteturadeComputadores
rt
5bits
imm
16bits
44
Caminhodedados
•  Alteraçãonocaminhodedadosparasuportara
instruçãobeq
ArquiteturadeComputadores
45
Caminhodedadosfinal
ArquiteturadeComputadores
46
Unidadedecontrole
•  Unidadedecontroleemumprojetomonocicloéum
circuitocombinacional
•  Determinarasentradasesaídasatravésdeumatabela
verdade
–  entradas:camposopefunctdainstrução
–  saídas:sinalparamuxeseelementosdeestado
•  Parafacilitaroprojeto,ocontroledaALUéfatorado
–  qualtamanhodatabelaverdadesenãofatorarmos?
ArquiteturadeComputadores
47
Unidadedecontrole
•  Fatoração
ALUOp
Significado
00
adicione(lw/sw)
01
subtraia(branch)
10
olhenocampofunct
11
nãousado
ALUOp
Funct
ALUControl
00
X
010(add)
X1
X
110(sub)
1X
100000
010(add)
1X
100010
110(sub)
1X
100100
000(and)
1X
100101
001(or)
1X
101010
111(slt)
ArquiteturadeComputadores
48
Unidadedecontrole
•  Tabelaverdadedodecodificadorprincipal
Instrução
RegWrite
RegDst
ALUSrc
Branch
MemWrite
MemtoReg
ALUOp
Opo-R
10
lw
00
sw
00
beq
01
•  Comopreenchê-la?
–  ALUOp:olhartabelaanterior
–  outrossinais:olharcaminhodedadosparacadainstruçãoe
determinarquandosinaldeveestaraOvo
ArquiteturadeComputadores
49
Unidadedecontrole
•  Controle:instruçãoor
0
1
ArquiteturadeComputadores
0
50
Unidadedecontrole
•  Tabelaverdadedodecodificadorprincipal
Instrução
RegWrite
RegDst
ALUSrc
Branch
MemWrite
Opo-R
1
1
0
0
0
0
10
lw
1
0
1
0
0
1
00
sw
0
X
1
0
1
X
00
beq
0
X
0
1
0
X
01
ArquiteturadeComputadores
MemtoReg
ALUOp
51
Microarquiteturamonociclo
•  Éumaboaideia/bomprojeto?
•  Quandoéumbomprojeto?
•  Quandoéummauprojeto?
•  Comoprojetarumamicroarquiteturamelhor?
ArquiteturadeComputadores
52
Monociclo:Análise
•  Lembrem-sedaequaçãodedesempenho!
TempoCPU = # instruções × CPI × PeriodoClock
Todainstrução
leva1ciclo
Como
determinar?
1.buscadeinstrução
3.execução
2.decodificação
5.escritaregistrador
4.memória
clock
Determinadopelotempoqueainstruçãomaislentalevaparaserexecutada,
mesmoquealgumaoutranãonecessitedetodoessetempo!
ArquiteturadeComputadores
53
Qualainstruçãomaislenta?
•  Todososestágioslevamomesmotempo?
•  Assuma
– 
– 
– 
– 
Memória(leitura/escrita):200ps
ALUesomadores:100ps
Bancoderegistradores(leitura/escrita):50ps
Outroselementoscombinacionais:0ps
Estágios/
Recursos
IF/
ID/
Memória Bancoreg
EX/
ALU
caminhocrí]co
MEM/
WB/
Memória Bancoreg
]poR
200 50
100
50
400
lw
200 50
100
200 50
600
sw
200 50
100
200 550
branch
200 50
100
350
ArquiteturadeComputadores
Atraso
54
VisualizandoocaminhocríOco–OpoR
200ps
250ps
350ps
400ps
ArquiteturadeComputadores
55
VisualizandoocaminhocríOco–LW
200ps
250ps
600ps
ArquiteturadeComputadores
350ps
550ps
56
Discussão
•  Comoaunidadedecontrolepodeafetarocaminho
críOco?
•  AunidadedecontrolepodeestarnocaminhocríOco?
•  Memórianãoémágica
–  Eseamemóriaàsvezesdemorar100ms?
–  FazsenOdofazerumainstruçãodoOpoRlevar100ms+?
–  Problemaéaindamaiorseamemóriaforacessadamaisde
umavez(emquaisinstruçõesissoacontece?)
ArquiteturadeComputadores
57
Microarquiteturamonociclo
•  Ineficiente
–  Todasasinstruçõessãotãolentasquantoamaislenta
–  Umrecursoprecisaserreplicadoseforusadomaisdeuma
vezpelamesmainstrução
–  Atrasosnosacessosàmemóriaexigeumperíododecicloalto,
afetandoatéinstruçõesqueoperamemregistradores
•  Nãonecessariamenteaimplementaçãomaissimples
–  Comoimplementarumainstruçãocomplexa?
•  Di…cildeoOmizar/melhorarodesempenho
–  NecessáriooOmizaropiorcasootempotodo(quenão
necessariamenteéomaiscomum!)
ArquiteturadeComputadores
58
Princípiosdeprojeto:microarquitetura
•  Projetodocaminhocrí]co
–  Encontreomaioratrasodalógicacombinacionaleodiminua
•  Projetodocasomaiscomum
–  Gasterecursosetempoondeéimportante
–  Melhoreoqueamáquinarealmentefoiprojetadaparafazer
•  Projetobalanceado
–  Balanceieofluxodosdadosecontroleatravésdohardware
–  Balanceieohardwarenecessárioparacompletaratarefa
ArquiteturadeComputadores
59
Download