Formatação das instruções
A arquitetura IA-64 usa instruções de tamanho fixo (40 bits) e elas são executadas em um único período de relógio, ou seja, são semelhantes às instruções RISC: comprometidas com o desempenho. É interessante confrontar a simplicidade dessas instruções de tamanho fixo, com a complexidade da cansada arquitetura x86, cujas instruções têm tamanho variando entre 8 e 108 bits. Somente após decodificar uma instrução, a CPU descobre qual o seu tamanho (onde está sua fronteira). As instruções IA-64 são arrumadas em pacotes de 128 bits, cada pacote com 3 instruções, como está mostrado na Figura 3. Isso é o que se chama LIW, mas a Intel prefere usar o termo EPIC ("Explicitily Parallel Instruction Computing"), pois nesse pacote, além das três instruções, existem bits para indicar quais podem ser executadas em paralelo. A CPU não mais precisa ficar analisando (durante a execução) o fluxo de instruções tentando descobrir o paralelismo intrínseco do problema, pois ele é explicitado durante a compilação.
Figura 3: Uma suposição para o empacotamento das instruções IA-64.
Cada instrução tem o tamanho fixo de 40 bits. A seqüência das instruções é fornecida pelo compilador e não necessariamente coincide com a ordem original do programa. O campo de 8 bits, denominado "template", indica quais instruções desse pacote, e dos próximos, podem ser executadas em paralelo.
Figura 4: Possível formato de uma instrução IA-64.
As instruções IA-64, vide Figura 4, têm um tamanho de 40 bits e estão divididas em 5 campos, cada um com uma finalidade específica. O campo "Opcode" indica a operação a ser executada: soma, multiplicação, incremento, etc.. O campo "Predicate", com 6 bits, define uma das 64 possíveis predições usadas para resolver os problemas gerados pelos desvios. Os registradores com os dados a serem operados são indicados pelos campos GPR. Uma instrução pode manipular até três registradores. Cada campo GPR tem 7 bits e especifica um dos 128 registradores da CPU. Na verdade, existem 128 registradores para números inteiros e 128 registradores para números em representação com ponto-flutuante. Os campos GPR são específicos para cada instrução, ou seja, de acordo com a instrução, os campos GPR selecionam registradores inteiros ou registradores ponto-flutuante. Devemos comparar essa quantidade de registradores (256) com os oferecidos pela arquitetura x86: 8 registradores inteiros e uma pilha com 8 registradores ponto-flutuante.
Respostas recomendadas
Não há comentários para mostrar.
Crie uma conta ou entre para comentar
Você precisa ser um usuário para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar agora