o nível isa - orium.pworium.pw/univ/lei/ac/slides/t-03-nivel_isa.pdf · arquitectura de...
TRANSCRIPT
![Page 1: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/1.jpg)
O Nível ISA
Modelo de programaçãoArquitecturas CISC e RISCIntrodução ao IA-32 da Intel
![Page 2: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/2.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 74
Nível ISA (Instruction Set Architecture)
�Tipos de dados� Inteiros (1, 2, 4 ou 8 bytes)
�Servem também para representar endereços
� Números em vírgula flutuante (4, 8 ou 10 bytes)
� Não tem dados estruturados, como vectores�Apenas dados reservados (alocados) continuamente em memória
�Operações� Aritmética sobre dados em registos ou memória
� Transferir dados entre registos e memória�Load – carregar dados de memória para um registo
�Store – guardar o conteúdo de um registo em memória
� Controlo do fluxo de execução�Saltos condicionais e incondicionais
�Chamadas a subrotinas
![Page 3: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/3.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 75
CPU
Máquina virtual
PC
Registos
Memória
Código máquina
do programa
Dados do programa
Dados do S.O.
Endereços
Dados
Instruções
Pilha
Códigos de
Condição
(flags)
![Page 4: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/4.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 76
Sincronizar os circuitos
�Os circuitos funcionam ao ritmo de um relógio:
�Marca com impulsos eléctricos o ritmo de funcionamento de todos os componentes (transições de estado)
�Marca quando os componentes podem interactuar
�Garante que os vários sinais (bits) são enviados e recebidos no instante devido
�Ex: um componente não lê o que está no BUS antes que algo válido lá tenha sido colocado
�O relógio gera um determinado número de impulsos por segundo: ciclos/segundo ou frequência (Hz)
![Page 5: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/5.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 77
Relógio vs velocidade do computador
�A frequência do relógio não é o único factor na velocidade de funcionamento de um computador!
�O tempo de execução de determinado programa depende de:
� Número de instruções (tamanho do programa)
� Tempo de execução de cada instrução (número de ciclos de relógio)
� Tempos de espera pela memória
� Tempos de espera pelas Entradas/Saídas
![Page 6: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/6.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 78
Ordem de tempos de acesso
�CPU
� cada instrução � 1, 2, … ciclos de relógio
�Memória
� cada acesso � dezenas de ciclos
�Periféricos
� cada operação de Entrada/Saída (I/O) � muitas dezenas, centenas, ou mais, de ciclos
![Page 7: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/7.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 79
Tempo de execução das instruções
�Um programa pode executar mais rápido se o CPU o executar em menos tempo:
Tempo = nº de instruções x nº de ciclos x tempo
programa instrução ciclo
�Menor Tempo se:
�Menos instruções � o CPU implementa as mais variadas operações de que o programa necessita
� Instruções mais rápidas � demoram menos ciclos e/ou cada ciclo pode ser mais curto (mais Hz)
![Page 8: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/8.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 80
Complexidade dos CPU
�A complexidade dos CPU é influenciada por:� Tipos de instruções
� Número de operandos
� Tipos de operandos
�Modos de endereçamento dos operandos
� etc.
�O desempenho do CPU é influenciado por essa complexidade:� Descodificação mais complexa (recurso a micro-código)
� Instruções de tamanho variável
� Resolução do endereço dos operandos e obtenção do seus valores mais complexa/demorada
�Mais complexidade � mais circuitos� CPU maior, mais lento, consumindo mais energia, etc…
![Page 9: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/9.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 81
Até aos anos 70/80
�A abordagem foi suportar directamente no hardware (no CPU):
�Os mais variados tipos de instruções que os programas podem necessitar
�As mais variadas operações aritméticas e lógicas…
� Cada instrução suporta os mais variados operandos que o programa pode necessitar
�Registos, memória (com vários modos de endereçamento), …
�A prioridade é reduzir o tamanho dos programas
� Claro que também se procura reduzir o tempo de execução de cada instrução
![Page 10: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/10.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 82
RISC vs CISC
�RISC – Reduced Instruction Set Computer
�Nova abordagem (anos 70/80) no desenho dos CPU. Simplificar para conseguir melhor desempenho:� Suportar um pequeno conjunto de instruções: as mais usadas
� Instruções de tamanho fixo: Fetch mais simples e eficiente
� Descodificação mais simples e eficiente
�Menos instruções a optimizar, a execução pode ser mais eficiente
�Usar espaço no CPU para mais registos e mais cache
� Permitir explorar mais optimizações…
�A abordagem antiga passou a ser referida por CISC –Complex Instruction Set Computer
![Page 11: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/11.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 83
Principais características
�CISC
�Muitas instruções
�Muitos modos de endereçamento
� Instruções demoradas
�Muitas acedem a memória
� Poucos registos
�RISC
� “Poucas” instruções
� Poucos modos de endereçamento
� Arquitecturas load/store
� Só as instruções load e store acedem a memória
� Muitos registos
� A menor complexidade do CPU abre a oportunidade para optimizações: diminuir o consumo de energia, optimizar a execução (ex: pipelines), etc.
![Page 12: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/12.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 84
Exemplo nas duas abordagens
�Computar: C = A + B
CISC:
load R1, [A]
add R1, [B]
store [C], R1
ou mesmo:
add [C], [A], [B]
�Qual será mais eficiente?
�RISC se cada instrução demorar menos tempo!!
RISC:
load R1, [A]
load R2, [B]
add R1, R2
store [C], R1
![Page 13: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/13.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 85
Exemplo de arquitectura RISC
�Família SPARC/UltraSPARC da SUN (usado em workstations e servidores)
�MIPS (usado em sistemas embebidos e consolas)
�PowerPC da Apple, IBM e Motorola (usado nos Macsaté 2006)
�Exemplo de um conjunto de instruções: SPARC
� Todas têm o mesmo tamanho
PC-RELATIVE DISPLACEMENT CALL4
302
PC-RELATIVE DISPLACEMENT BRANCH3
222
A
1
OP
3
COND
4
IMMEDIATE CONSTANT SETHI2
222
DEST
5
2 5 6 5 1 8 5
OP
3
Immediate1b DEST OPCODE SRC1 1 IMMEDIATE CONSTANT
3 Register1a DEST OPCODE SRC1 0 FP-OP SRC2
Format
![Page 14: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/14.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 86
Exemplo de arquitectura CISC
� IA-32 da Intel
� O conjunto de instruções é complexo
� Assim como a sua representação em código máquina
� Exemplo: Pentium II
PREFIX
INSTRUCTION
Which operand is source?
Byte/word
SCALE INDEX BASE
MOD REC R/M
OPCODE MODE SIB DISPLACMENT IMMEDIATE
0 - 5
6 3321Bits Bits
332Bits
Bytes
1
1 - 2 0 - 1 0 - 1 0 - 4 0 - 4
![Page 15: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/15.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 87
RISC vs CISC
�Na realidade a fronteira entre estas duas filosofias é cada vez mais ténue
� Arquitecturas CISC convertem o seu código em micro-operações RISC
� Arquitecturas RISC actuais têm quase tantas instruções quando as CISC
� Porque é que ainda são denominadas de RISC?
�A diferença está essencialmente no desenho do CPU
�Como iremos ver nas próximas aulas existem diferenças ao nível do suporte para modos de endereçamento, teste de condições, subrotinas, etc.
![Page 16: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/16.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 88
Que ISAs vamos estudar em AC?
�Em AC vamos trabalhar maioritariamente sobre o ISA IA-32 da Intel
� Este ISA que manipula endereços e dados de 32 bits foi a base das arquitecturas Intel e compatíveis desde 1986 até meados nos anos 2000
�Mesmo agora os ISA de 64 bits (Intel64 ou AMD x86-64) usados nas arquitecturas mais recentes são uma expansão do IA-32
�Apesar de incidirmos essencialmente sobre o IA-32 também falaremos de arquitecturas RISC sempre que seja pertinente
�Por fim dedicaremos algumas aulas ao Java bytecode e à JVM
![Page 17: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/17.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 89
� Intel- (Integrated Electronics Corporation)
�Fundada em 1968 por funcionários vindos da FairchildSemiconductor
� Na origem (com a Texas Instruments) dos circuitos integrados (microchip)
�Micro-processador
� Um único circuito integrado contendo todas as funcionalidades da unidade central de processamento (CPU) do computador
�Intel 4004 – microprocessador de 4bits para calculadoras
Nota: Já existiam processadores e computadores!
Intel e os circuitos integrados (CI)
![Page 18: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/18.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 90
�Cada nova geração aumentou a dimensão dos dados e de endereçamento�8080 – 8bits de dados /16bits de endereços
�8086/8088 – 16bits (8 no 8088)/20bits (usados nos 1ºs IBM/PC)
�80186 - 16bits/20bits (não usado nos IBM/PC)
�80286 – 16bits/24bits (usado no IBM/AT)
�80386 – 32bits/32bits (usado no IBM/PS2)
�80486, Pentium (P5), Pentium Pro (P6), …
�Core, Core 2, Core i7 – 64bits/48bits (também usado nosPentiums mais recentes)
�Existe compatibilidade com os anteriores
�Continuam a existir instruções com dados de 8bits no 80386, Pentium, Core duo, e todos os outros
O caso dos µ-processadores Intel
![Page 19: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/19.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 91
�A densidade dos componentes nos CI duplica a cada 2 anos
�A mesma “lei” tem sido extrapolada para:
�Velocidade dos CPU
�Capacidade das memórias e discos(não para as suas velocidades!)
Observação (“Lei”) de Moore
![Page 20: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/20.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 92
�Arquitecturas muito complexas e difíceis de compreender e programar
�Os programadores (e os compiladores) “refugiam-se”num subconjunto do ISA …
� Instruções de tamanho variável (de 1 a 18? bytes…)
� Internamente, existe uma “tradução” para micro-código, mais simples�Este é realmente executado pelo CPU
�Extensão do IA-32 para 64 bits:�AMD com AMD64 (Intel com Intel64 (antigo EM64T))
�Não confundir com IA-64, uma arquitectura diferente que não suporta código legado. �Processadores da família Itanium
O resultado desta evolução
![Page 21: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/21.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 93
Medidas de capacidade duma arquitectura
�O número de bits do endereço determina a capacidade máxima de memória endereçável
�O número de linhas no bus de endereços determina a capacidade máxima de memória realmente acessível
�O número de bits dos registos gerais determina o tamanho máximo dos dados operados pelas instruções
�O número de linhas no bus de dados determina a capacidade máxima de transferência dos dados em cada acesso à memória
![Page 22: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/22.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 94
Exemplo do PC com Intel 8086
�Processador usado nos primeiros IBM PC
�CPU com 16 bits de dados e de endereços, com bus de 20 bits para endereços e 16 bits para dados:
� Dimensão dos registos de endereços, registos de dados e número de linhas no BUS de dados: 16
� Dimensão do MAR, bus de endereços: 20
� Endereça até 1M (220) de células de memória
� Transfere e opera até 2 Bytes de cada vez
![Page 23: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/23.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 95
ALU
Registos de dados
Registos de endereços
IP ou PC
BUS do sistema
Fila de 6 bytes como IR
Diagrama do 8086
![Page 24: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/24.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 96
Exemplo Intel IA-32 no PC
�CPU com 32 bits de dados e de endereços, com BUS de 32 bits:
� Dimensão dos IP, MAR, registos de dados, número de linhas no BUS de dados e no de endereços: 32
� Endereça até 4G de células de memória
� Transfere e opera até 4bytes de cada vez
![Page 25: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/25.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 97
Exemplo AMD64/Intel 64 no PC
�CPU com registos e BUS de 64bits para dados e de 48bits para endereços:
� Dimensão dos IP, registos de dados, número de linhas no BUS de dados: 64
�MAR e bus de endereços: 48 (actualmente) poderá ir até 64
� Endereça até 256T (Tera = 240) de células de memória.
�Poderá ir até 16E (Exa = 260)
� Transfere e opera até 8bytes de cada vez
![Page 26: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/26.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 98
�Registos gerais no IA-32:
�No assembly: EAX, EBX, ECX, EDX
�Continuam a existir instruções com dados de 16 e 8bits, com os mesmos códigos do 8086
�Registo de Flags ou estado:
�Reporta várias situações que podem ser testadas com instruções específicas (Overflow, Carry, etc…)
�Registos especiais: EIP (instruction pointer ou program counter), ESP, etc …
AH (8bits) AL (8bits)
EAX (32bits)
AX (16bits)
Registos do IA-32
![Page 27: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/27.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 99
axax
cxcx
bxbx
dxdx
eax
ebx
ecx
edx
H L
32 bits
16 bits
8 bits
ipip
spsp
bpbp
flagsflags
eip
esp
ebp
eflags
Registos do IA-32
![Page 28: O Nível ISA - orium.pworium.pw/univ/lei/ac/slides/T-03-Nivel_ISA.pdf · Arquitectura de Computadores (2008/2009): O Nível ISA 77 Relógio vsvelocidade do computador A frequência](https://reader034.vdocuments.pub/reader034/viewer/2022051601/5ab945237f8b9ad3038dc825/html5/thumbnails/28.jpg)
Arquitectura de Computadores (2008/2009): O Nível ISA 100
Tipo de instruções do IA-32
�Mover dados
� Entre registos
�Memória-registo (Load) e registo-memória (Store)
�Aritmética sobre inteiros
�Aritmética sobre vírgula flutuante
�Saltos condicionais e incondicionais
�Manipulação de subrotinas
�Entradas/Saídas
� Instruções vectoriais