Kalile Almeida Andrade - INFflavio/ensino/cmp237/itanium.pdf1 Kalile Almeida . Andrade. Universidade...

Preview:

Citation preview

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

Recommended