Baixe o app para aproveitar ainda mais
Prévia do material em texto
Nível de Nível de MicroarquiteturaMicroarquitetura (Parte 3) Prof. Minoru CCF210-Arq.e Org.de Computadores I 2 Compilando Java para IJVM a) Fragmento de código Java. b) Linguagem de montagem Java correspondente. c) Programa IJVM em hexadecimal. Prof. Minoru CCF210-Arq.e Org.de Computadores I 3 Pilha após cada instrução do slide anterior. Prof. Minoru CCF210-Arq.e Org.de Computadores I 4 4.3 Exemplo de implementação4.3 Exemplo de implementação ● Já especificamos detalhadamente a microarquitetura e a macroarquitetura resta a questão da implementação. Em outra palavras, como é um programa que está rodando na primeira e interpretando a última, e como ele funciona? Antes de podermos responder a essas perguntas, devemos considerar com cuidado a notação que usaremos para descrever a implementação. Prof. Minoru CCF210-Arq.e Org.de Computadores I 5 ● Nossa notação especifica todas as atividades que ocorrem num único ciclo de relógio em uma única linha. Em teoria, poderíamos usar uma linguagem de alto nível para descrever as operações. Contudo, o controle ciclo por ciclo é muito importante porque dá a oportunidade de realizar várias operações ao mesmo tempo e é necessário que possamos analisar cada ciclo para entender e verificar as operações. 4.3.1 Microinstruções e Notação Prof. Minoru CCF210-Arq.e Org.de Computadores I 6 ● Uma abordagem possível é simplesmente fazer uma lista dos sinais que deveriam ser ativados a cada ciclo de relógio. Suponha que em um determinado ciclo queremos incrementar o valor de SP. Também queremos iniciar uma operação de leitura, e queremos que a próxima instrução seja a que reside na localização 122 no armazenamento de controle. Poderíamos escrever ● ReadRegister = SP; ALU = INC; WSP; Read; NEXT _ADDRESS = 122 ● Onde WSP significa 'escreva o registrador SP'. Prof. Minoru CCF210-Arq.e Org.de Computadores I 7 ● Essa notação é completa, mas difícil de entender. Em vez disso, combinaremos as operações de modo natural e intuitivo para captar o efeito daquilo que está acontecendo: ● SP=SP+1 ; rd Prof. Minoru CCF210-Arq.e Org.de Computadores I 8 ● Vamos dar a nossa Micro Assembly Language de alto nível o nome 'MAL' (palavra francesa que significa 'doente', o que com certeza você ficará se tiver de escrever muito código utilizando essa linguagem). A MAL é talhada para refletir as características da microarquitetura. Durante cada ciclo, qualquer um dos registradores pode ser escrito, mas o normal é que somente um seja escrito. Apenas um registrador pode ser copiado para o lado B da ALU. No lado A, as opções são + 1, O, - 1, e o registrador H. Assim, podemos usar uma declaração de atribuição simples, como em Java, para indicar a operação a ser executada. Por exemplo, para copiar algo de SP para MDR, podemos dizer: ● MDR = SP ● Para indicar a utilização das funções ALU, exceto passar pelo barramento B, podemos escrever, por exemplo: ● MDR = H + SP Prof. Minoru CCF210-Arq.e Org.de Computadores I 9 4.3.1 Microinstruções e Notação Todas as operações permitidas. Qualquer uma das operações anteriores pode ser extendida somando ‘‘<< 8’’ a elas para deslocar o resultado para a esquerda por um byte. Por exemplo, uma operação comum é H = MBR << 8 Prof. Minoru CCF210-Arq.e Org.de Computadores I 10 Implementação da IJVM usando a Mic-1 Microprograma para a Mic-1 (1) Prof. Minoru CCF210-Arq.e Org.de Computadores I 11 Microprograma para a Mic-1 (2) Prof. Minoru CCF210-Arq.e Org.de Computadores I 12 Microprograma para a Mic-1 (3) Prof. Minoru CCF210-Arq.e Org.de Computadores I 13 Microprograma para a Mic-1 (4) Prof. Minoru CCF210-Arq.e Org.de Computadores I 14 Microprograma para a Mic-1 (5) Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14
Compartilhar