Buscar

Microarquitetura

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Organização e Arquitetura de Computadores
 O Nível da Microarquitetura 
2
O projeto do nível de microarquitetura depende:
da arquitetura do conjunto das instruções a serem implementadas;
dos objetivos de custo e desempenho do computador que estiver sendo projetado;
A maioria das ISAs (Instruction Set Architecture – Arquitetura do conjunto de instruções) modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clock;
As ISAs mais complexas, como a do Pentium, precisam de mais ciclos para executar uma única instrução - Faz-se necessário metodologias de seqüenciamento de instruções mais otimizados para melhorar o desempenho da máquina em termos de tempo.
3
INTRODUÇÃO
Arquitetura de uma Máquina Virtual Java JVM (Java Virtual Machine) 
Subconjunto de instruções inteiras da JVM que será chamado de IJVM.
Objetivos: 
Descrição da arquitetura, microarquitetura, acima da qual vamos implementar a IJVM;
Descrição do controle e do seqüenciamento da execução dessas instruções.
4
Um Exemplo de Microarquitetura
Requisitos:
Desenvolvimento de um microprograma cuja função é buscar, decodificar e executar as instruções IJVM.
Microprograma - deve ser pequeno e deve alimentar direta e eficientemente as portas lógicas do hardware da máquina. 
Pode-se considerar que cada instrução do nível ISA é uma função a ser chamada pelo programa principal.
5
Um Exemplo de Microarquitetura
O microprograma tem um conjunto de variáveis, que podem ser acessadas por todas as funções do computador, conhecidas como estado do computador.
Cada função muda, pelo menos, uma das variáveis que formam o estado do computador.
6
Um Exemplo de Microarquitetura
Considerações gerais sobre as instruções da IJVM
As instruções são pequenas e muito simples de serem executadas;
Cada instrução tem poucos campos, em geral 1 ou 2, que têm propósito específico;
O primeiro campo de todas as instruções IJVM é o código de operação (opcode);
Muitas instruções tem um campo adicional, que especifica o operando;
Cada microinstrução segue o modelo de execução conhecido como ciclo de busca/execução. 
7
Um Exemplo de Microarquitetura
O caminho de dados - parte do processador que contém a UAL e todas as suas entradas e saídas.
8
Um conjunto de registradores de 32 bits, (PC, SP, MDR, ....), que só podem ser acessados pelo microprograma;
Um barramento B, no qual os registradores podem colocar suas informações;
Uma UAL, cujas entradas estão ligadas aos barramentos A e B;  
Um Deslocador alimentado pela saída da UAL e que alimenta o barramento C.
9
Conteúdo do caminho de dados
Determinada pelas 6 linhas de controle:
F0 e F1 para determinação da operação;
ENA e ENB para habilitar individualmente suas entradas A e B;
INVA para inverter a entrada de A;
INC que força um vem-um para o bit menos significativo (incremento de 1);
10
Função a ser executada pela UAL
11
Combinações úteis dos sinas de controle da UAL.
O registrador H pode ser carregado com o valor presente no barramento B, realizando-se uma soma com o sinal ENA desabilitado (ENA=0).
Deslocamentos à direita e à esquerda podem ser comandados pelos sinais de controle do deslocador. Exemplos:
SLL8 - desloca  a saída da UAL 1 byte a esquerda, deixando 0s no byte da direita
SRA1 - deslocamento a saída da UAL 1 bit para a direita, sem modificar o bit mais significativo (bit de sinal)
12
Observações
Questão: 
Um registrador pode ser lido e escrito no mesmo ciclo de clock sem produzir lixo?
13
Resposta:
A temporização exata do caminho de dados torna possível a leitura e a escrita de um registrador no mesmo período de clock. 
Temporização do caminho de dados
14
Diagrama de tempo de um dos ciclos do caminho de dados.
O primeiro ciclo (explícito, do caminho de dados, apresentado na figura), pode ser visto como um conjunto de subciclos implícitos.
O início do primeiro subciclo é marcado pela transição negativa do clock.
Atividades, junto com sua duração (entre parênteses), que ocorrem durante os subciclos:
Os sinais de controle são ativados (dw - leia delta w)
O barramento B é carregado a partir dos registradores (dx)
A UAL e o deslocador operam (dy)
O resultado da operação da UAL e do deslocador se propaga através do barramento C em direção aos registradores (dz)
15
Temporização do caminho de dados
O resultado é armazenado nos registradores na transição positiva do próximo clock.
É de responsabilidade dos engenheiros de projeto assegurar que essa transição positiva ocorra somente após passado o tempo dw+dx+dy+dz. Caso contrário a carga dos registradores não é realizada 
16
Temporização do caminho de dados
Operação da Memória
Comunicação da máquina com a memória:
por uma porta de memória de 32 bits que é controlada por 2 registradores:
MAR (Memory Address Register), registrador de endereços
MDR (Memory Data Register), registrador de dados
e por uma porta de memória de 8 bits que é controlada por um terceiro registrador - PC. 
O PC lê um byte da memória e coloca-o nos 8 bits menos significativos de um registrador conhecido como MBR (Memory Buffer Register)
17
Operação da Memória
Combinação MAR/MDR - usada para ler/escrever palavras de dados pertencentes ao nível ISA.
Combinação PC/MBR - usada para ler o programa executável, grupo de bytes, do nível ISA. 
Cada registrador é controlado por um ou dois sinais de controle, situados em baixo do registrador:
uma seta clara indicando que o sinal de controle habilita a saída do registrador para o barramento B.
uma seta escura indicando que o sinal de controle habilita a carga do registrador a partir do barramento  C.
18
Operação da Memória
MAR guarda o endereço de uma palavra, de maneira que os valores 0, 1, 2, etc. referenciam palavras consecutivas.
Ex.: MAR=2 e leitura da memória, serão lidos os bytes 8 a 11 (os bytes que compõem a palavra 2), sendo esses 32 bits guardados no MDR.
PC guarda o endereço de um byte, de modo que os valores 0, 1, 2, etc. referenciam bytes consecutivos.
Ex.: PC=2 e iniciando uma leitura de memória, o byte 2 será lido da memória e seus 8 bits serão armazenados nos 8 bits menos significativos do MBR.
19
Operação da Memória
Na implementação física da memória, só há uma memória real, orientada a byte.
Artifício:
Mapeamento dos bits do MAR nos bits do barramento de endereço
Quando MAR=1, o endereço 4 é que vai aparecer no barramento da máquina de 4GB.
Quando MAR=2, o endereço 8 estará no barramento, etc.
20
Operação da Memória
A figura mostra que os dois bits mais significativos são descartados no mapeamento do seu conteúdo para o barramento de endereços (por exemplo, valor 1 vira 4). Tais bits só são necessários para endereçar palavras acima de 232, o que não é permitido na nossa máquina de 4GB.
21
Barramento de endereço de 32 bits (contagem em bytes)
MAR de 32 bits (contagem em palavras)
Microinstruções
   
Para controlar um caminho de dados, como o da figura, é necessário um conjunto de sinais de controle que atuam sobre os componentes do nível da lógica digital.
Os valores desses sinais de controle especificam as operações a serem executadas em um ciclo do caminho de dados. 
22
Microinstruções
 
A figura mostra um possível formato para agrupar os bits de controle da nossa arquitetura em 6 grupos, e 36 sinais. 
23
Microinstruções - Descrição dos sinais:
Endereço - contém o endereço da próxima microinstrução a ser potencialmente ativada.
Desvio - determina como a próxima microinstrução será selecionada. 
UAL - especifica as funções da UAL e do deslocador.
Barramento C - seleciona qual ou quais registradores serão carregados com o valor que estiver no barramento C.
Memória - especifica as funções da memória (escrita, leitura ou busca).
Barramento B - seleciona a entrada do barramento B. Os 4 bits são suficientes para selecionar um dos 9 registradores que disponibilizará seus dados
no barramento B.
24
Controle Microprogramado: o Mic-1
Para  decidir quais dos sinais de controle devem ser habilitados em cada ciclo faz-se necessário a inclusão de um seqüenciador em nossa arquitetura.
Características do seqüenciador:
responsável pela execução de todos os passos necessários a execução de uma única instrução do nível ISA.
produz dois tipos de informações a cada ciclo:
1. O estado de cada sinal de controle do sistema
2. O endereço da microinstrução que será executada em seguida
25
26
Sinais de controle:
Habilitação para o barramento B
Escrita do conteúdo do barramento C
Controle Microprogramado: o Mic-1
Controle Microprogramado: o Mic-1
A figura mostra o diagrama de blocos detalhado da microarquitetura de nossa máquina-exemplo, que receberá o nome de Mic-1.
O diagrama de blocos tem 2 partes: O caminho de dados, à esquerda e a seção de controle, à direita.
27
Controle Microprogramado: o Mic-1
A memória de controle:
As microinstruções não são executadas sequencialmente, como as instruções da memória principal. Cada microinstrução especifica explicitamente sua sucessora.
O endereço da próxima microinstrução é guardado no registrador MPC (Microprogram Counter).
O registrador de dados da memória de controle é chamado MIR (MicroInstruction Register). 
Função: armazenar a microinstrução corrente cujos bits alimentam os sinais de controle que operam o caminho de dados.
28
Operação do esquema mostrado na figura:
No início de cada ciclo (descida do clock) o MIR é carregado com o conteúdo do endereço armazenado no MPC. Tempo de carga do MIR: dw;
Os sinais do MIR se propagam pelo caminho de dados, causando, no tempo dx:
o carregamento de um dos registradores no barramento B;
o carregamento do registrador H;
a determinação da função a ser executada pela UAL;
estabilização dos dados de entrada da UAL;
A UAL e o deslocador operam os dados de entrada, durante o tempo dy;
29
Operação do esquema mostrado na figura:
As saídas da UAL e do deslocador são propagadas, durante o tempo dz, e
a saída do deslocador torna-se disponível e estável no barramento C;
os valores de N e Z são salvos em 1 par de flip-flops de 1 bit;
 Na transição positiva do sinal de clock:
os registradores são carregados com o conteúdo do barramento C; 
os flip-flops N e Z são carregados pela UAL;
os registradores MBR e MDR recebem resultados da memória.
30
Operação do esquema mostrado na figura:
O valor de MPC é atualizado (detalhes a seguir) no tempo de nível alto do clock.
Volta ao passo 1 e o ciclo se repete até que alguém desligue a máquina.
31
Atualização do MPC é feita por: 
um circuito lógico, chamado “bit de mais alta ordem”,  que implementa a função:
	Assim os dois únicos valores que o MPC pode assumir são:
O valor do campo NEXT_ADDRESS
O valor do campo NEXT_ADDRESS com o bit de mais alta ordem submetido à operação OR com o valor 1.
32
F=(JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8]
Observação: O valor do campo NEXT_ADDRESS não mudará se JAMZ=JAMN=0. 
Atualização do MPC é feita por: 
um circuito lógico, “caixa O” da figura. 
	Se o sinal de desvio é igual a 1, esse circuito implementa uma função OR bit a bit entre o MBR (que em geral contém um código de operação) e os 8 bits menos significativos do NEXT_ADDRESS corrente. 
33
	Microinstrução com JAMZ configurado para dois sucessores potenciais. 
34
Endereço Addr	 JAM	 Bits de controle do caminho de dados
0x75
0x92
0x192
O bit JAMZ está ligado
Uma dessas duas microinstruções será executada após aquela que está armazenada em 0x75, depen-dendo do bit Z.
0x92
001
Bit de mais alta ordem
Barramento B
BarramentoC
Deslocador
flip-flop de 1 bit
Decodificador 4-para-16
4
Z
N
2
JAMN/JAMZ
MIR
JMPC
9
9
MPC
Addr	J	ALU	C	M	B
Memória de controle de 512 x 36 para armazenar o microprograma
8
MBR
H
OPC
TOS
CPP
LV
SP
PC
MDR
MAR
ALU

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais