Kalile Almeida Andrade - INFflavio/ensino/cmp237/itanium.pdf1 Kalile Almeida . Andrade. Universidade...
Transcript of Kalile Almeida Andrade - INFflavio/ensino/cmp237/itanium.pdf1 Kalile Almeida . Andrade. Universidade...
11
KalileKalile Almeida Almeida AndradeAndrade
Universidade Federal do Rio Universidade Federal do Rio Grande do SulGrande do Sul
PPGCPPGCJunho 2006Junho 2006
22
SumárioSumário
IntroduçãoIntroduçãoCaracterísticasCaracterísticasEPICEPICFormato de InstruçõesFormato de InstruçõesPredicaçãoPredicaçãoEspeculaçãoEspeculaçãoPredição de desviosPredição de desviosRegistradoresRegistradoresPipelinePipelineCaminho de dadosCaminho de dados
ReferênciasReferências
33
IntroduçãoIntrodução
Resultado de uma colaboração entre Intel e Resultado de uma colaboração entre Intel e HP que começou a cerca de 15 anos atrás. HP que começou a cerca de 15 anos atrás. Provém de uma linha anteriormente Provém de uma linha anteriormente denominada pela Intel como IAdenominada pela Intel como IA--64.64.–– AvançosAvanços de performance ede performance e escalabilidadeescalabilidade;;
44
ItaniumItanium xx ItaniumItanium 22
55
Características dos modelos Características dos modelos comerciais atuaiscomerciais atuais
66
TecnologiasTecnologias
77
Barreiras para aumentar a Barreiras para aumentar a performance ...performance ...
Memory latency;Branches;Procedure call / return overhead;Escalonamento Hardware-based;Número pequeno de registradores.
88
CaracterísticasCaracterísticas
Baseados numa arquitetura de 64 Baseados numa arquitetura de 64 bits;bits;
Compatível com o instruções de 32 bits;Compatível com o instruções de 32 bits;
EPIC EPIC –– ExplicitlyExplicitly ParallelParallel InstructionInstruction ComputingComputing;;
Otimizações quanto a predicação, controle de Otimizações quanto a predicação, controle de fluxo, e predição de desvios.fluxo, e predição de desvios.
99
EPIC EPIC -- ExplicitlyExplicitly ParallelParallelInstructionInstruction ComputingComputing
Aumento de performance na sinergia entre Aumento de performance na sinergia entre Hardware e Hardware e SoftwarSoftwar: : –– Arranjo das instruções em grupos que Arranjo das instruções em grupos que
explicitamente denotam paralelismo;explicitamente denotam paralelismo;–– O compilador cria o registro da execução;O compilador cria o registro da execução;–– Não há execução fora de ordem;Não há execução fora de ordem;
Instruções distribuídas entre unidades da Instruções distribuídas entre unidades da execução;execução;–– VLIW;VLIW;
1010
EPICEPIC
Execução de 2 pacotes por o ciclo (6 Execução de 2 pacotes por o ciclo (6 instruções):instruções):–– Número elevado de unidades da execução;Número elevado de unidades da execução;
Realce do de conceitos de VLIW com:Realce do de conceitos de VLIW com:– Predication;–– Carregamento especulativo dos dados; Carregamento especulativo dos dados; – Predição de desvios para minimizar o custo dos
branches;
Disponibilidade abundante de registradores.Disponibilidade abundante de registradores.
1111
Instruções Instruções
–– Pacotes de 128 bitsPacotes de 128 bits3 operações de 41 bits3 operações de 41 bits1 1 templatetemplate de 5 bitsde 5 bits
1212
InstruçõesInstruções
Unidades de ExecuçãoUnidades de Execução
66 Unidades de inteiroUnidades de inteiro11 Unidades multimídiaUnidades multimídia22 Unidades de ponto flutuanteUnidades de ponto flutuante33 Unidades de desvioUnidades de desvio22 Unidades de Unidades de loadload--storestore
Possibilidades de instruções:Possibilidades de instruções:MII ;MII ; MIsIMIsI ; MLX* ; ; MLX* ; MMI ; MMI ; MsMIMsMI ; MFI ; MMF; MFI ; MMFMIB ; MBB ; BBB ; MMB ; MFB ; MIB ; MBB ; BBB ; MMB ; MFB ; MIIsMIIs ;; MIsIsMIsIsMLXsMLXs* ;* ; MMIsMMIs ;; MsMIsMsMIs ;; MFIsMFIs ;; MMFsMMFs ;; MIBsMIBsMBBsMBBs ; ; BBBsBBBs ; ; MMBsMMBs ; ; MFBs
"s" indica parada.
MFBs
LegendaM - função relacionada à memóriaI - função inteiraF - função de ponto flutuanteB - função de desvioL - função que envolve um imediato longo
*L+X é um tipo estendido que é despachado para unidade de inteiros.
1313
1414
PredicaçãoPredicação
Execução condicionalExecução condicional dede uma instrução uma instrução baseada embaseada em umum predicadopredicado
1515
EspeculaçãoEspeculação
Reduz latência de memóriaReduz latência de memóriaTiposTipos dede especulaçãoespeculação: : –– Dados: é aDados: é a execuçãoexecução de um load antes dede um load antes de
uma operaçãouma operação storestore queque a precede e com a precede e com aa qual pode estar relacionadaqual pode estar relacionada;;
–– ControleControle:: execuçãoexecução dede uma operaçãouma operaçãoantes doantes do desvio quedesvio que a precede;a precede;
1616
Especulação de controleEspeculação de controle
1717
Especulação de dadosEspeculação de dados
1818
PrediçãoPredição
Todo load e store de memória no Itanium tem um campo de 2 bits para cache hint no qual ocompilador codifica sua predição da localidade espacial e/ou temporal da área de memória sendo acessada.
Integer Load
1919
Predição de desviosPredição de desvios
Além da remoção de branches através do uso de predication, diversos mecanismos são providos para diminuir a taxa de predição incorreta de branches e o custo (penalidade) das predições incorretas que ainda ocorrerem.
Dinâmico Dinâmico –– dpntdpnt–– dptkdptkEstático Estático –– spntspnt–– sptksptk
2020
Predição de desviosPredição de desvios
2121
RegistradoresRegistradores
2222
PipelinePipeline
IPG: IPG: InstructionInstruction Pointer Pointer Generation Generation ROT: ROT: InstructionInstruction rotation rotation EXP: EXP: InstructionInstruction templatetemplate decode expand anddecode expand and disperse disperse REN REN RenameRenameREG REG RegisterRegister file file read read EXE ALU EXE ALU execution execution DET DET LastLast stagestage for for exceptionexception detection detection WRB WRB WriteWrite backback
2323
PipelinePipeline
Caminho de dadosCaminho de dados
2424
Quadros comparativos Quadros comparativos
2525
ReferênciasReferências
Intel ® Intel ® ItaniumItanium® 2 ® 2 ProcessorProcessor ReferenceReference Manual, 2004;Manual, 2004;Intel® Intel® ItaniumItanium® ® ArchitectureArchitecture Software Software DeveloperDeveloper’s Manual, ’s Manual, 2006;2006;Arquitetura Arquitetura ItaniumItanium, Universidade Estadual de Campinas , Universidade Estadual de Campinas –– IC, IC, httphttp://www.://www.icic.unicamp..unicamp.brbr/~/~rodolforodolfo/mc722/g01/mc722/g01--itaniumitanium--texto.texto.pdfpdf..ITANIUM 2 PROCESSOR, ITANIUM 2 PROCESSOR, http://courses.ece.uiuc.edu/ece512/Papers/itanium2.pdfhttp://courses.ece.uiuc.edu/ece512/Papers/itanium2.pdf, IEEE , IEEE MICRO, MARCHMICRO, MARCH––APRIL 2003;APRIL 2003;Inside the Intel Itanium 2 Processor,Inside the Intel Itanium 2 Processor,http://www.dig64.org/More_on_DIG64/Itanium2_white_paperhttp://www.dig64.org/More_on_DIG64/Itanium2_white_paper_public.pdf_public.pdf, a Hewlett Packard Technical White Paper, July , a Hewlett Packard Technical White Paper, July 2002;2002;Hewlett Packard Technical White Paper, “Inside the Intel Hewlett Packard Technical White Paper, “Inside the Intel Itanium2 Processor: anItanium2 Processor: an ItaniumItanium Processor Family member for Processor Family member for balanced performance over a wide range of applications”; July balanced performance over a wide range of applications”; July 20022002