MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que...
Transcript of MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS de nível de …€¦ · 1) Uma porta de 8 bits, que...
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
1
MÁQUINAS MULTINÍVEIS CONTEMPORÂNEAS
A maioria dos computadores modernos consiste de dois ou mais níveis. Existem
máquinas com até seis níveis, conforme mostra a Figura de hierarquia. O nível
0, na parte inferior, é o hardware verdadeiro da máquina. Seus circuitos
executam os programas em linguagem de máquina do nível 1. Por razões de
precisão, temos que mencionar a existência de outro nível abaixo do nosso nível
0. Esse nível, que não aparece na Figura de hierarquia por entrar no domínio da
engenharia elétrica (e, portanto, estar fora do escopo), é chamado de nível de
dispositivo. Nele, o projetista vê transistores individuais, que são os primitivos
de mais baixo nível para projetistas de computador. Se alguém quiser saber
como os transistores funcionam no interior, isso nos levará para o campo da
física no estado sólido.
Figura Nível
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
2
1. MICROARQUITETURA
O nível acima do lógico digital é o nível de microarquitetura. Sua função é
executar o nível ISA (Instruction Set Architecture – arquitetura do conjunto de
instruções) acima dele, como ilustrado na Figura Nível. O projeto do nível de
microarquitetura depende da ISA que está sendo implementada, bem como das
metas de custo e desempenho do computador.
✓ Função: implementar a camada ISA
− O projeto do nível de microarquitetura depende do conjunto de
instruções no nível ISA;
✓ Inicia-se o conceito de programa como uma sequência de instruções a
serem executadas diretamente pelos circuitos eletrônicos.
✓ A maior parte destas instruções envolve a movimentação de dados
através do caminho de dados, ou alguns testes simples.
✓ Em alguns computadores, a operação do caminho de dados é controlada
por um programa conhecido como microprograma.
O microprograma é um interpretador cuja função geral é buscar, decodificar e
executar instrução por instrução do nível ISA (i.e. instrução de máquina).
− Cada instrução de máquina é interpretada e pode dar origem à execução
de muitas microinstruções.
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
3
Microprograma (interpretação):
• Função: buscar, decodificar e executar as instruções (de máquina), uma
a uma, usando o caminho de dados para a realização de uma tarefa.
- Exemplo: Execução de uma instrução de SOMA (ADD):
A instrução deve ser buscada na memória, seus operandos devem ser
localizados e trazidos para os registradores, a soma deve ser
calculada na ULA, e o resultado deve ser encaminhado para o lugar
apropriado.
• O microprograma é um conjunto de microinstruções.
• Ele é armazenado numa memória ROM do processador, chamada control
store, ou memória de controle.
• Cada microinstrução especifica os sinais de controle necessários para
controlar a microarquitetura.
Hardware (Microarquitetura):
• Em geral, enxerga-se:
− Um conjunto de 8 a 32 registradores
− O circuito da ULA (Unidade Lógica e Aritmética)
• Os registradores e a ULA são conectados para formar o Caminho de
Dados (Data Path), estrutura sobre a qual os dados fluem.
• A operação básica do caminho de dados
− Seleção de um-dois registradores para que a ULA opere sobre eles
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
4
Uma Microarquitetura é dividida em uma Parte Operativa e uma Parte de
Controle:
• Parte Operativa (ou Caminho de Dados)
Constituída de todos os componentes responsáveis pela execução das
operações elementares sobre os dados (transformações nos dados).
• Parte de Controle
Constituída de circuitos sequenciais e/ou memória de microprograma que
gera o controle ciclo-a-ciclo da parte operativa.
• Não existem os “princípios gerais de projeto de microarquitetura”.
- Depende do conjunto de instruções do nível ISA.
• Exemplo de microarquitetura adotado: MIC1.
- Um subconjunto da Máquina Virtual Java, em que há apenas instruções
inteiras -> IJVM.
• Nossa microarquitetura conterá um microprograma.
- Considere que cada instrução no nível ISA corresponde a uma função a
ser chamada pelo programa principal (microprograma)
- Cada função, formada por uma sequência de microinstruções, define os
passos a serem executados na microarquitetura.
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
5
• Programa Principal:
- Composto por um loop que determina a função a ser chamada. E assim
sucessivamente.
• O microprograma tem um conjunto de variáveis que representam o estado do
computador.
- Cada função (que corresponde a uma instrução ISA) muda no mínimo
uma das variáveis que formam o estado.
- Na prática, essas variáveis correspondem aos registradores do sistema.
2. O CAMINHO DE DADOS
O caminho de dados é a parte da CPU que contém a ULA, suas entradas e
suas saídas. O caminho de dados de nossa microarquitetura de exemplo é
mostrado na Figura 2.1.
Como cada micro arquitetura é um caso especial, estudaremos um exemplo
conforme figura 2.1.
Os registradores de 32 bits, aos quais atribuímos nomes como PC, SP e MDR,
são acessíveis apenas no nível de microarquitetura (pelo microprograma). Eles
recebem esses nomes porque em geral contêm um valor correspondente à
variável do mesmo nome na arquitetura do nível de ISA. A maior parte dos
registradores pode dirigir seu conteúdo para o barramento B. A saída da ULA
comanda o deslocador e em seguida o barramento C, cujo valor pode ser escrito
em um ou mais registradores ao mesmo tempo. Por enquanto, não há nenhum
barramento A; incluiremos um mais adiante.
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
6
• Caminho de Dados (Parte Operativa)
1) Contém a ULA e todas as suas entradas e saídas
- 6 linhas de seleção (F0,F1, ENA, ENB, INVA, INC)
- 2 entradas de dados (complemento de dois):
- 1º: sempre do registrador H (Holding)
- 2º: Qualquer um dos outros registradores, excluindo o H e MAR
2) Conjunto (array) de registradores
- Esses registradores só podem ser acessados no nível da
microarquitetura (ou seja, pelo microprograma).
• Em geral, esses registradores correspondem a variáveis (mesmo nome)
utilizadas no nível ISA.
Figura 2.1: Exemplo de caminho de dados de uma microarquitetura
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
7
• MAR: guarda 32 bits do endereço de uma palavra da memória de dados;
• MDR: guarda uma palavra de 32 bits lidos da memória;
• PC: aponta para próxima instrução a ser executada;
• MBR: Guarda 8 bits da instrução lida da memória de programa;
• SP: aponta para o endereço do topo da pilha;
• LV: aponta para o endereço das variáveis locais na memória;
• CPP: aponta para o endereço do conjunto de constantes;
• TOS: armazena uma cópia do valor do topo da pilha dos operandos;
• OPC: armazena o valor anterior de PC;
• H: armazena temporariamente um operando da ULA.
O registrador mais importante é o Contador de Programa (PC – Program
Counter), que indica a próxima instrução a ser buscada para execução. (O nome
“contador de programa” é um tanto enganoso, porque nada tem a ver com contar
qualquer coisa; porém, o termo é de uso universal.) Também importante é o
Registrador de Instrução (IR – Instruction Register), que mantém a instrução que
está sendo executada no momento em questão. A maioria dos computadores
também possui diversos outros registradores, alguns de uso geral, outros de uso
específico. Outros registradores são usados pelo sistema operacional para
controlar o computador.
A ULA é idêntica à mostrada nas figuras 2.2 e 2.3. Sua função é determinada
por seis linhas de controle. O segmento de reta diagonal com rótulo “6” na Figura
2.1 indica que há seis linhas de controle de ULA, a saber:
➢ 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).
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
8
Figura 2.2: ULA de 1 bit.
Figura 2.3: Oito segmentos (slices) de ULA de 1 bit conectados para formar uma ULA de 8 bits.
Os sinais de habilitação e inversão não são mostrados por simplicidade.
Algumas das combinações mais interessantes são mostradas na Figura 2.4.
Contudo, nem todas as 64 combinações (6 𝑒𝑛𝑡𝑟𝑎𝑑𝑎𝑠 → 26) de linhas de controle
de ULA fazem algo de útil.
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
9
Figura 2.4: Combinações úteis de sinais de ULA e a função executada.
A ULA da Figura 2.1 precisa de duas entradas de dados: uma entrada esquerda
(A) e uma entrada direita (B). Ligado à entrada esquerda está um registrador de
retenção, H. Ligado à entrada direita está o barramento B, que pode ser
carregado por cada uma de nove fontes, indicadas pelas nove setas cinza que
chegam até ele.
H pode ser carregado com a escolha de uma função da ULA que passe
diretamente da entrada direita (vinda do barramento B) para a saída da ULA.
Uma função desse tipo seria somar as entradas da ULA, porém, com ENA
negado, de modo que a entrada esquerda é forçada a zero. Adicionar zero ao
valor no barramento B resulta somente no valor no barramento B. Então, esse
resultado pode ser passado pelo deslocador sem modificação e armazenado em
H.
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
10
3. OPERAÇÃO DE MEMÓRIA
Na execução de um programa há, em geral, quatro regiões logicamente distintas
na memória, que possuem funções específicas.
• Região de Código do Programa;
• Região de DADOS (Variáveis Globais)
• Pilha (Stack): dentre os diversos usos se destacam o endereço de retorno
das chamadas de função, argumentos para funções e variáveis locais,
além de guardar o estado atual da CPU.
• Heap: geralmente uma região de memória livre que um programa pode
usar para alocação dinâmica de memória (por exemplo).
• Uma microarquitetura executa instruções que são armazenadas na
memória.
• Instruções de um programa são executadas segundo uma ordem precisa.
• Uma microarquitetura necessita saber, sempre, qual a próxima instrução
a ser executada:
• Necessidade de um registrador apontador de programa (PC);
• Necessidade de realização de operações sobre o conteúdo do PC, para
atualização a cada instrução executada
• Existem duas “portas de memória” usadas pela máquina para se
comunicar com a memória, são elas:
1) Uma porta de 32 bits, que endereça palavras: controlada pelos
- registrador MAR (Memory Address Register – registrador de
endereço de memória);
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
11
- registrador MDR (Memory Data Register – registrador de dados
de memória)
1) Uma porta de 8 bits, que endereça bytes: controlada pelo PC e
MBR
- Apenas de leitura
• O PC lê um byte da memória e o coloca nos 8 bits menos significativos do
registrador MBR;
• MBR – Memory Buffer Register
- Uma porta para leitura de dados usada quando se deseja ler da
memória dados de apenas 8 bits.
• Diferença na funcionalidade de MAR e PC é que eles são usados para
referenciar duas partes diferentes da memória
- MAR/MDR é usada para ler/escrever palavras de dados pertencentes
ao nível ISA;
- PC/MBR é usada para ler o programa executável (programa
constituído por um grupo de bytes).
• Transferência de Dados entre a MP e a CPU é realizada com o uso de dois
registradores especiais (para dados de 32 bits).
1) MAR – Memory Address Register
- REM – Registrador de Endereços de Memória
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
12
- Armazena o endereço da memória, onde será lida ou gravada uma
palavra.
- Tamanho deve permitir acesso a todos os N endereços da memória
2) MDR – Memory Data Register
- RDM – Registrador de Dados da Memória
- Armazena a representação da informação (palavra) a ser transferida.
- Tamanho é, em geral, igual ao da palavra.
Cada um desses registradores (e todos os outros na Figura 1.1) é comandado
por um ou dois sinais de controle:
• Seta clara sob um registrador indica um sinal de controle que habilita a
saída do registrador para o barramento B. Visto que MAR não tem
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
13
conexão com o barramento B, não tem sinal de habilitação. H também
não tem esse sinal porque está sempre habilitado, por ser a única entrada
esquerda possível da ULA.
• Seta negra sob um registrador indica um sinal de controle que escreve
(isto é, carrega) o registrador a partir do barramento C. Uma vez que MBR
não pode ser carregado a partir do barramento C, não tem um sinal de
escrita (embora tenha dois outros sinais de habilitação, descritos mais
adiante).
4. LEITURA DE DADOS
• A CPU coloca em MAR, o endereço da posição cujo conteúdo deve ser
lido;
• A CPU comanda uma leitura (sinal de controle para a memória - READ):
− MAR -> barramento de endereço
• O conteúdo (palavra) da posição do endereço contido em MAR, é então
transferido para o MDR
− barramento de dados -> MDR
5. ESCRITA DE DADO
• A CPU coloca em MAR o endereço de memória onde a palavra será gravada,
e em MDR a palavra a ser gravada.
• A CPU comanda uma gravação (sinal WRITE)
− MAR -> barramento de endereço
− MDR -> barramento de dados
• A palavra armazenada em MDR é então transferida para a posição de
memória cujo endereço está em MAR.
• O MAR guarda o endereço de uma palavra de 32 bits (devido às
necessidades da JVM... nível ISA)
- MAR = 0 => palavra 0 => bytes 0-3
- MAR = 1 => palavra 1 => bytes 4-7
- MAR = 2 => palavra 2 => bytes 8-11
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
14
Arquitetura de Computadores
Nível 1: Microarquitetura – Rev1
www.portaleletronica.com.br
Prof. Ricardo Tadeu Ferracioli
15
Para iniciar uma leitura ou escrita da memória, os registradores de memória
adequados devem ser carregados e em seguida deve ser emitido um sinal de
leitura ou escrita para a memória.
MAR (Memory Address Register) contém endereços de palavras, de modo que
os valores 0, 1, 2 etc. se referem a palavras consecutivas.
PC (contador de programa) contém endereços de bytes, portanto, os valores 0,
1, 2 etc. se referem a bytes consecutivos.
Essa diferença de funcionalidade é necessária porque MAR e PC serão usados
para referenciar duas partes diferentes da memória. A necessidade dessa
distinção ficará mais clara adiante. Por enquanto, basta dizer que a combinação
MAR/MDR é usada para ler e escrever palavras de dados de nível ISA e a
combinação PC/MBR é empregada para ler o programa executável de nível ISA,
que consiste em uma sequência de bytes. Todos os outros registradores que
contêm endereços usam endereço de palavras, como o MAR.