Noções sobre Sistemas de Computação - Gerds

Propaganda
Máquinas de multiníveis: 1 – Microarquitetura
Universidade Tuiuti do Paraná – UTP
Faculdade de Ciências Exatas - FACET
Tecnologia de Análise e Desenvolvimento de Sistemas
Organização de Computadores
Prof. André Luiz
1
Máquinas de multiníveis: 1 – Microarquitetura
Máquinas de multiníveis: 1 - Nível de Microarquitetura
Sua função é implementar a arquitetura do conjunto de instruções
- ISA (Instuction Set Architecture):
- A base para o projeto da construção de uma UCP é escolher que
instruções que essa UCP vai executar;
- Todos os componentes do computador e organização destes componentes é baseado para executar esse conjunto de instruções que foi
definido;
- Não há princípios gerais para definição da ISA, porque cada micro
arquitetura é um caso especial.
2
Máquinas de multiníveis: 1 – Microarquitetura
• Cada microarquitetura contém um microprograma que define
um caminho para os dados: BUSCAR, DECODIFICAR e EXECUTAR instruções;
• O problema da microarquitetura é pensar em cada instrução
chamada por um programa mestre;
• O microprograma contém um conjunto de variáveis denominado Estado do computador, que pode ser acessado por todas
as funções;
• A microarquitetura também deve entender que cada instrução
é composta de um, dois ou mais campos; O primeiro campo de
cada instrução é o opcode;
3
Máquinas de multiníveis: 1 – Microarquitetura
• Uma das funções da microarquitetura é definir a temporização
do caminho dos dados, quantos ciclos, ou pulsos, de relógio são
necessárias para cada operação;
• Para controlar o caminho dos dados são definidas Microinstruções, que tem a finalidade de controlar a instrução em cada parte
do ciclo de instrução que está percorrendo;
• A microarquitetura ainda define uma pilha de operandos, ou seja,
organiza das variáveis em uma PILHA e faz o controle através do
deslocamento a partir da sua base;
• Um documento chamado datasheet é escrito quando um chip, ou
microprocessador é criado, nele é possível conhecer sua microarquitetura.
4
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
PRINCIPAL DESAFIO: VELOCIDADE CONTRA CUSTO
• Reduzir o número de ciclos de relógio necessários para executar uma
instrução;
• Simplificar a organização de modo que o ciclo de relógio possa ser mais
curto;
• Sobrepor a execução de instruções.
5
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
Melhoria de desempenho
“Alguns tipos de melhorias só podem ser feitos com alteração da
arquitetura. Às vezes essas alterações são incrementais, como adicionar
novas instruções ou registradores, de modo que programas antigos continuarão a ser executados com novos modelos. Neste caso, para conseguir desempenho completo, o software tem que ser alterado, ou ao
menos recompilado com um novo compilador que aproveita as novas
características.”
6
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
Melhoria de desempenho
Três técnicas utilizadas para melhorar o desempenho:
• Memória cache
• Previsão de desvio
• Execução fora de ordem com renomeação de
registrador / Execução especulativa
7
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
Memória cache
As técnicas de utilização de cache podem diminuir o problema de latência
que a CPU tem ao solicitar a leitura de um operando na memória principal:
- Caches de mapeamento direto
- Caches associativas de conjunto (mapeamento indireto)
Escritas dispõe de um problema especial, gera muito tráfego, e duas
Técnicas podem ser utilizadas: escrita imediata (write through) e escrita
retardada (write back)
8
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
Previsão de desvio
Os desvios condicionais, e incondicionais, podem atrasar a execução
uma instrução num modelo paralelo. Um algoritmo de previsão pode ser
implementado, ou mesmo, uma previsão estática de desvio. Esse sistema
funciona bem na maioria dos sistemas, mas se um procedimento tiver seu
comportamento alterado muitas vezes, podem ocorrer má previsões que
tornarão a execução lenta da mesma forma que se houvesse atraso.
9
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
Execução fora de ordem com renomeação de registrador
Processos sendo executados em paralelo podem requerer recursos
de forma concorrente, gerando dependências de RAW (Write Alter Read).
muitas vezes essas podem ser evitadas forçando que a segunda instrução
coloque seus resultados em outro lugar. Por outro lado, se uma instrução
não requer nenhuma dependência pode ser concluída fora de ordem.
10
Máquinas de multiníveis: 1 – Microarquitetura
Desafios do Projeto em nível de arquitetura
Execução especulativa
A execução especulativa deve ocorrer somente em blocos básicos do
programa em execução, em uma sequência linear de código. Do contrário,
o compilador deveria deixar de forma explicíta quais instruções poderiam
ser executadas de forma especulativa. Neste caso estas instruções tem
seu resultado armazenado em um espaço temporário de memória, e no
tempo sua execução apenas o resultado é fornecido.
11
Máquinas de multiníveis: 1 – Microarquitetura
12
Máquinas de multiníveis: 2 – ISA
Nível de arquitetura do Conjunto de Instruções
“O nível ISA (Instruction Set Architecture) tem um significado especial que
o torna importante para arquitetos de sistema: é a interface entre o
software e o hardware”
Essa camada permite responder a muitas perguntas quando uma nova
máquina é projetada:
1) “Ela é compatível com a antecessora?”
2) “Ela pode executar meu sistema operacional antigo?”
3) “Ela executará todos os meus programas de aplicação existentes
sem modificações?”
13
Máquinas de multiníveis: 2 – ISA
Nível de arquitetura do Conjunto de Instruções
“Neste nível é necessário definir um conjunto de instruções que pode ser
implementado com eficiência em tecnologias atuais e futuras, resultando
em projetos efetivos em custo por várias gerações.”
Propriedades do Nível ISA:
- Define o que é visível para o programa/compilador
- Modelo de memória
- Quais e quantos são os registradores
- Quais os tipos de dados e instruções que estão disponíveis
- Interface flexível para os compiladores
14
Máquinas de multiníveis: 2 – ISA
Nível de arquitetura do Conjunto de Instruções
15
Máquinas de multiníveis: 2 – ISA
Modelos de Memória
Qual a unidade mínima endereçável?
° Quanto menor, mais linhas de endereço
° Quanto maior, mais desperdício potencial
° Comum : 8 bits
Quais as restrições de alinhamento?
° Quanto menor, maior a flexibilidade
° Quanto maior, mais chances de otimização
Acesso a palavras não alinhadas (compatibilidade) exige
hardware extra (mais área no chip, maior preço)
16
Máquinas de multiníveis: 2 – ISA
Registradores
- Memórias internas do processador de acesso mais rápido;
1) Registradores de uso geral são acessíveis diretamente por instruções,
podem conter variáveis ou dados intermediários. Exemplos:
EAX, EBX, ECX, EDX, ESI, EDI, ESP e EBP.
2) Registradores dedicados (dependem da arquitetura), exemplos:
PC – Program Counter
PSW – Program Status Word
SP – Stack Pointer
etc...
17
Máquinas de multiníveis: 2 – ISA
Tipos de dados
- Dependentes da arquitetura
- CPU e instruções determinam os tipos básicos
reconhecidos pelo hardware:
• Inteiros e ponto flutuante, tamanhos variados
• Booleanos
• Caracteres (ASCII, UNICODE)
• Apontadores
18
Máquinas de multiníveis: 2 – ISA
Formatos de instruções
- Cada instrução deve definir
o quê fazer: OPCODE
com o quê: endereçamento de dados
- A CPU deve ser capaz de identificar esses campos em cada instrução.
- É preciso definir a relação entre tamanho de cada instrução e as
palavras de memória.
19
Máquinas de multiníveis: 2 – ISA
Tipos de instruções
➔
Movimentação de dados (mov);
➔
Operações diádicas (combinam dois operandos em um resultado)
Lógicas/aritméticas (inteiros e ponto flutuante IEEE 754)
➔
Operações monádicas (um operando)
Deslocamentos / rotações / aritméticas
➔
Testes/comparações / Desvios (condicionais/incondicionais - jmp)
➔
Chamadas de procedimento (int x80)
➔
Controle de laço (je, jea, ja)
➔
Entrada e saída
➔
Especiais (estado do processador)
20
Máquinas de multiníveis: 2 – ISA
Endereçamento de memória
Modos de endereçamento: como os bits de um campo de
endereço devem ser interpretados para achar o operando.
• Imediato: valor do dado na própria instrução
• Direto: endereço do dado fixo na instrução
• Registrador: identificado diretamente na instrução
• Indireto: endereço do dado é obtido do conteúdo da
posição identificada pela instrução (endereço na instrução = ponteiro)
• Pilha: endereçamento implícito
21
Máquinas de multiníveis: 2 – ISA
Endereçamento de memória: IMEDIATO
O valor a ser manipulado faz parte dos bits da própria instrução,
já estando disponível:
MOV R1,#5
22
Máquinas de multiníveis: 2 – ISA
Endereçamento de memória: DIRETO
Endereço a ser utilizado faz parte do código da instrução:
MOV R1, (0x1000)
23
Máquinas de multiníveis: 2 – ISA
Endereçamento de memória: INDIRETO
Endereço do dado é obtido do conteúdo da posição identificada
pela instrução (endereço na instrução = ponteiro)
MOV R2, #A
ADD R1, (R2)
24
Máquinas de multiníveis: 2 – ISA
Endereçamento de memória: PILHA
• Nenhum endereço é fornecido na instrução (endereçamento implícito);
• O processador tem a noção de manipulação de dados em uma pilha;
• Operações sempre se referem ao topo da pilha em qualquer instante.
25
Máquinas de multiníveis: 2 – ISA
Fluxo de controle de execução
Fluxo de controle = sequência em que as instruções são executadas
durante a execução do programa.
➔
Fluxo sequencial e desvios/saltos
➔
Procedimentos (recursividade)
➔
Co-rotinas
➔
Traps (interrupções de software/exceções)
➔
Interrupções (hardware)
26
Máquinas de multiníveis: 2 – ISA
Pentium 4
4004 – 8008 – 8080 – 8086/8088 - 80286 – 80386 – 80486
->Pentium->... ->Xeon
- Mantém total suporte para execução de software
construído para 8086/8088 (16 bits)
- Ainda tem sobras do 8080 (8 bits , 1970)
- Alterações após o 386: MMX, SSE, SSE2
27
Máquinas de multiníveis: 2 – ISA
Pentium 4
28
Máquinas de multiníveis: 2 – ISA
29
Máquinas de multiníveis: 2 – ISA
http://www.numaboa.com.br/informatica/tutos/assembly/1110-assembly-registradores
Atribuição-Compartilhamento pela mesma licença 2.5
(http://creativecommons.org/licenses/by-sa/2.5/deed.pt)
Você pode:
●
copiar, distribuir, exibir e executar a obra
●
criar obras derivadas
●
fazer uso comercial da obra
Sob as seguintes condições:
Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou
licenciante.
Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra
obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença
idêntica a esta.
●
●
Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta
obra.
Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do
autor.
Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela
legislação local, não são em hipótese alguma afetados pelo disposto acima.
Este é um sumário para leigos da Licença Jurídica
(na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode).
Termo de exoneração de responsabilidade:
http://creativecommons.org/licenses/disclaimer-popup?lang=pt
Download