Buscar

CCF210_aula16

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Nível de Nível de 
MicroarquiteturaMicroarquitetura
(Parte 4)
Prof. Minoru CCF210-Arq.e Org.de Computadores I 2
Implementação da IJVM usando a Mic-1
A instrução BIPUSH é um pouco complicada porque o opcode é 
seguido por um único byte, como mostra a figura. O byte deve ser 
interpretado como um inteiro com sinal. Esse byte, que já foi 
buscado para MBR em Main1, deve ser estendido em sinal para 
32 bits e passado para o topo da pilha. Essa sequência deve 
estender em sinal o byte em MBR para 32 bits e copiá-Io para 
MDR. Por fim, SP é incrementado e copiado para MAR, permitindo 
que o operando seja escrito para o topo da pilha. No caminho, 
esse operando também deve ser copiado para TOS. Além disso, 
antes de retornar para o programa principal, note que PC deve ser 
incrementado de modo que o próximo opcode estará disponível 
em Main1.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 3
Considere a instrução ILOAD. ILOAD também tem um byte após o 
opcode, como mostra a figura, mas esse byte é um índice (sem 
sinal) para identificar a palavra no espaço de variáveis locais que 
será passada para a pilha. Uma vez que há somente 1 byte, apenas 
28 = 256 podem ser distinguidas, a saber, as primeiras 256 palavras 
no espaço de variáveis locais. A instrução ILOAD requer uma leitura 
(para obter a palavra), bem como uma escrita (para passá-Ia para o 
topo da pilha). Para determinar o endereço para leitura, entretanto, o 
deslocamento, contido em MBR,deve ser adicionado ao conteúdo de 
LV. Uma vez que ambos, MBR e LV, só podem ser acessados pelo 
barramento B, LV primeiro é copiado para H (em iload1 ), então MBR 
é adicionado. O resultado dessa adição é copiado para MAR e uma 
leitura é iniciada (em iload2).
Prof. Minoru CCF210-Arq.e Org.de Computadores I 4
Sequência inicial de microinstruções 
para ILOAD e WIDE ILOAD. Os 
endereços são exemplos.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 5
A instrução IINC é a única instrução 
IJVM, exceto a instrução ISTORE,que 
pode modificar uma variável local.
Ela o faz incluindo dois operandos, cada 
um de 1 byte de comprimento, como 
mostra a figura.
A instrução IINC usa INDEX para especificar o deslocamento em relação 
ao início do quadro de variáveis locais. Ela lê aquela variável, 
incrementando-a por CONST, um valor contido na instrução, e volta a 
armazená-Ia no mesmo local. Note que essa instrução pode 
incrementar por uma quantidade negativa, isto é, CONST é uma 
constante de 8 bits com sinal, na faixa - 128 a + 127. A JVM completa 
inclui uma versão ampliada da IINC onde cada operando tem 2 bytes 
de comprimento.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 6
Na figura (a) vemos a situação no início de Main1. O opcode já está em MBR, 
mas PC ainda não foi incrementado. Na figura (b) vemos a situação no 
início de goto1. Nesta altura o PC já foi incrementado, mas o primeiro byte 
do deslocamento ainda não foi buscado para MBR. Uma microinstrução 
depois temos a figura (c), na qual o antigo PC, que aponta para o opcode, 
foi salvo em OPC e o primeiro byte do deslocamento está em MBR. Esse 
valor é necessário porque o deslocamento da instrução GOTOIJVM é 
relativa a ele e não ao valor corrente de PC. Na verdade, essa é a razão 
primordial por que precisamos do registrador.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 7
4.4.1 Velocidade contra custo
1.Reduzir o número de ciclos de relógio necessários para 
executar uma instrução.
2.Simplificar a organização de modo que o ciclo de relógio 
possa ser mais curto.
3.Sobrepor a execução de instruções.
As duas primeiras são óbvias, mas há uma surpreendente 
variedade de oportunidades de projeto que pode afetar 
drasticamente o número de ciclos de relógio, o período de 
relógio, ou - em grande parte das vezes - ambos.
4.4 Projeto no nível de 4.4 Projeto no nível de 
microarquiteturamicroarquitetura
Prof. Minoru CCF210-Arq.e Org.de Computadores I 8
4.4.2 Redução do comprimento do caminho de 
execução
Incorporação do laço do interpretador ao microcódigo
Sequência original do microprograma para executar POP.
Sequência de microprograma melhorada para executar POP.Sequência de microprograma melhorada para executar POP.
Incorpore o laço do interpretador ao final
 de cada sequência de microcódigo.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 9
Arquitetura de três barramentos
Código Mic-1 para executar ILOAD.
Código de três barramentos para executar ILOAD.
Passe de um projeto de dois barramentos
para um projeto de três barramentos.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 10
Unidade de busca de instrução
● Vale a pena usar essas duas técnicas mas, para conseguir uma melhoria 
drástica, precisamos de algo muito mais radical. Vamos voltar atrás um 
pouco e examinar as partes comuns de toda instrução: a busca e a 
decodificação dos campos da instrução. Observe que, para cada instrução, 
podem ocorrer as seguintes operações:
1.O PC é passado pela ALU e incrementado.
2.O PC é usado para buscar o próximo byte na sequência de instruções.
3.Operandos são lidos da memória.
4.Operandos são escritos para a memória.
5.A ALU efetua um cálculo e os resultados são armazenados de volta.
● Se uma instrução tiver campos adicionais (para operandos), cada campo 
deve ser buscado explicitamente, 1 byte por vez, e montado antes de poder 
ser usado. Buscar e montar um campo ocupa a ALU por no mínimo um ciclo 
por byte para incrementar o PC, e então novamente para montar o índice ou 
deslocamento resultante. A ALU é usada em praticamente todos os ciclos 
para uma variedade de operações que têm a ver com buscar a instrução e 
montar os campos dentro da instrução, além do 'trabalho' real da instrução.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 11
Unidade de busca para a Mic-1.
IFU (Instruction Fetch Unit)
1. A IFU pode interpretar cada opcode, 
determinando quantos campos adicionais 
devem ser buscados, e montá-los em um 
registrador, prontos para a utilização pela 
unidade de execução principal.
2. A IFU pode aproveitar a natureza sequencial 
das instruções e disponibilizar os próximos 
fragmentos de 8 e 16 bits todas as vezes, 
quer isso tenha ou não algum sentido. 
Então, a unidade de execução principal 
pode requisitar o que precisar.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 12
FSM (Finite State Machine)
Máquina de estado finito para implementar a IFU.
Busque instruções na memória com uma unidade funcional
especializada.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 13
Caminho de dados
para a Mic-2.
4.4.3 O projeto com busca antecipada: a Mic-2
Prof. Minoru CCF210-Arq.e Org.de Computadores I 14
Microprograma para a Mic-2
Prof. Minoru CCF210-Arq.e Org.de Computadores I 15
Microprograma para a Mic-2
Prof. Minoru CCF210-Arq.e Org.de Computadores I 16
Microprograma para a Mic-2
Prof. Minoru CCF210-Arq.e Org.de Computadores I 17
Microprograma para a Mic-2
Prof. Minoru CCF210-Arq.e Org.de Computadores I 18
4.4.4 Projeto com paralelismo: a Mic-3
O ciclo de relógio é limitado pelo tempo necessário 
para que os sinais se propaguem pelo caminho de 
dados. Há três componentes importantes no ciclo 
do caminho de dados propriamente dito:
1. O tempo para levar os registradores selecionados 
até os barramentos A e B.
2. O tempo para que a ULA e o deslocador realizem 
seu trabalho.
3. O tempo para os resultados voltarem aos 
registradores e serem armazenados.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 19
Arquitetura de três barramentos
Mostramos uma nova arquitetura 
de três barramentos, incluindo 
a IFU, mas com três 
registradores adicionais, cada 
um inserido no meio de cada 
barramento. Os registradores 
são escritos em todo ciclo. Na 
realidade, os registradores 
repartemo caminho de dados 
em partes distintas que agora 
podem funcionar 
independentemente uma da 
outra. Denominaremos isso 
Mic-3, ou modelo com 
paralelismo (ou pipelined).
Prof. Minoru CCF210-Arq.e Org.de Computadores I 20
● Como esses registradores extras podem ajudar? Agora 
leva três ciclos de relógio para usar o caminho de 
dados:
● um para carregar os registradores A e B, 
● um para executar a ULA e deslocador e 
● carregar o registrador C e 
● um para armazenar o serializador C de volta nos 
registradores.
● Estamos loucos? (Dica: Não!) Inserir os registradores 
têm dupla finalidade:
1.Podemos aumentar a velocidade do relógio porque o 
atraso máximo agora é mais curto.
2.Podemos usar todas as partes do caminho de dados 
durante todo ciclo.
Prof. Minoru CCF210-Arq.e Org.de Computadores I 21
Implementação de SWAP
Código da Mic-2 para SWAP
Implementação de SWAP na Mic-3
Prof. Minoru CCF210-Arq.e Org.de Computadores I 22
Paralelismo
Ilustração gráfica 
do funcionamento 
de paralelismo 
(pipeline).
Prof. Minoru CCF210-Arq.e Org.de Computadores I 23
4.4.5 Paralelismo de sete estágios: a Mic-4
Principais componentes da Mic-4
Prof. Minoru CCF210-Arq.e Org.de Computadores I 24
Paralelismo da Mic-4
 Quando Edsger Dijkstra escreveu seu famoso artigo "GOTO 
statement considered harmful" (Declaração GOTO considerada 
perigosa), ele não tinha idéia do quanto estava certo.
A Mic-1 era uma peça de hardware muito simples, com quase todo 
o controle em software. A Mic-4 tem um projeto de alto paralelismo, 
com sete estágios e hardware muito mais complexo. A Mic-4 faz 
busca antecipada automática de uma sequência de bytes
da memória, decodifica-a para instruções IJVM, converte-a para 
uma sequência de microoperações usando uma ROM e a enfileira 
para usar quando necessário. Os primeiros três estágios do 
paralelismo podem ser vinculados ao relógio do caminho de dados 
se desejado, mas nem sempre haverá trabalho a fazer.
	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
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24

Outros materiais