Anda di halaman 1dari 124

Nvel de Arquitetura do Conjunto de Instruo

Professora: Priscila Doria


pdoria@area1.edu.br / plgdoria@gmail.com

Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo

Nvel de arquitetura do conjunto de instruo


Conhecido como ISA Esse nvel est posicionado entre o nvel da microarquitetura e o nvel do SO o nvel mais prximo do hardware que o usurio pode programar
Nvel 5 Nvel de Linguagem Orientado a Problemas Traduo (Compilador) Nvel 4 Nvel de Linguagem de Montagem (Assembly)

Traduo (Assembly)

Nvel 3

Nvel do Sistema Operacional da mquina Interpretao parcial (sistema operacional)

Nvel 2

Nvel de Arquitetura de Conjunto de Instrues Interpretao (microprograma) ou execuo direta

Nvel 1

Nvel de Microarquitetura

Hardware

Nvel 0

Nvel Lgico Digital

Nvel de arquitetura do conjunto de instruo


a interface entre o software e o hardware possvel um hardware executar um programa escrito em uma linguagem de alto nvel
Os computadores devem ser capazes de executar programas escritos em vrias linguagens e no apenas em uma linguagem de programao

A abordagem adotada pelos projetistas de sistema :


Traduzir programas escritos em linguagem de alto nvel para uma forma intermediria comum (o nvel ISA) Construir hardware que possa executar programas de nvel ISA diretamente

O nvel ISA define a interface entre os compiladores e o hardware


4

Nvel de arquitetura do conjunto de instruo

Nvel de arquitetura do conjunto de instruo


Quando surge um computador novo
Ele compatvel com o seu antecessor? Ele pode executar o meu sistema operacional antigo? Ele executar todos os meus programas de aplicaes existentes sem modificao?

Em um computador novo, o nvel ISA precisa ser compatvel com as verses anteriores Os projetistas devem garantir que os programas antigos sejam executados na nova mquina
6

Nvel de arquitetura do conjunto de instruo


O que faz uma ISA ser boa?
Deve definir um conjunto de instrues que pode ser implementado com eficincia em tecnologias atuais e futuras Deve fornecer um alvo claro para o cdigo compilado

Perguntas
Um hardware pode executar um programa de alto nvel diretamente? Porque o hardware no faz isso? Qual a abordagem dos projetistas para o hardware no executar uma linguagem de alto nvel diretamente? Quais so as principais preocupaes dos projetistas no desenvolvimento de uma nova arquitetura de conjunto de instrues?
8

Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo

Viso geral do nvel ISA


Propriedades do nvel ISA Modelos de memria Registradores Instrues do nvel ISA Viso geral do nvel ISA dos processadores
Pentium 4 UltraSPARC III 8051
10

Propriedades do nvel ISA


O nvel ISA definido pelo modo como a mquina se apresenta a um programador de linguagem de mquina Para produzir o cdigo de nvel ISA, o escritor de compilador precisa saber:
Qual o modelo de memria? Quais so os registradores? Quantos registradores tm no computador? Quais so os tipos de dados? Quais instrues esto disponveis?
11

Propriedades do nvel ISA


O nvel ISA especificado por um documento formal de definio O documento produzido por um consrcio do setor Objetivo:
possibilitar que diferentes implementadores construam uma mquina e todas elas executem exatamente o mesmo software e obtenham os mesmos resultados
12

Propriedades do nvel ISA


O documento de definio informa:
Qual o modelo de memria? Quais registradores esto presentes? O que as instrues fazem?

O documento de definio contm:


Sees normativas: impem requisitos Sees informativas: inteno ajudar o leitor

As sees normativas usam constantemente palavras como deve, no pode e deveria


13

Propriedades do nvel ISA


Exemplo:
Primeira abordagem:
Executar um opcode reservado dever causar uma exceo

Segunda abordagem:
O efeito da execuo de um opcode reservador definido na implementao

14

Propriedades do nvel ISA


Um conjunto de teste inserido no documento de definio para garantir que uma implementao do nvel ISA seja compatvel com a especificao definida
SPARC V9:
uma arquitetura do processador da Sun Microsystems (Ultra SPARC) Tem um documento que define seu nvel ISA Todos os chips SPARC V9 executaro o mesmo software

Pentium 4:
No tem um documento formal que define o nvel ISA
15

Propriedades do nvel ISA


O nvel ISA tem no mnimo dois modos:
Modo ncleo (Kernel)
Executa o sistema operacional Permite que todas as instrues sejam executadas

Modo usurio
Executa os programas de aplicao No permite que certas instrues sensveis sejam executas
Ex: manipular a cache diretamente

16

Perguntas
Qual o objetivo do documento de definio? O que especificado no documento de definio? Para que serve o conjunto de teste do documento de definio? Citem um processador que tem o documento de definio e um processador que no tem o documento de definio do nvel ISA. Porque algumas empresas no criam o documento de definio do nvel ISA? Quais so os dois tipos de usurios do nvel ISA?
17

Modelos de memria
Todos os computadores dividem a memria em clulas As clulas tem endereos consecutivos Praticamente todos os fabricantes de computadores utilizam clulas de 8 bits Uma clula de 8 bits denominada byte Motivo: Os caracteres ASCII tm 7 bits Futuro:
UNICODE: os prximos computadores tero clulas de 16 bis
18

Modelos de memria
Unicode:
o padro que permite aos computadores representar e manipular textos de qualquer sistema de escrita existente formado por mais de 107 mil caracteres Exemplo:
Alfabeto rabe Alfabeto armnio Alfabeto grego Caracteres chineses Alfabeto hebraico Runas
19

Modelos de memria
Os bytes so agrupados em palavras de 4 bytes (32 bits) ou 8 bytes (64 bits) Muitas arquiteturas precisam que as palavras sejam alinhadas As memrias funcionam com mais eficincia quando esto alinhadas Desvantagem da memria no alinhada:
A capacidade de ler palavras em endereos arbitrrios requer lgica extra no chip, o que torna o chip maior e mais caro
20

Modelos de memria

(a) Memria alinhada

(a) Memria no alinhada


21

Modelos de memria
No nvel ISA, a maioria das mquinas tem um nico espao de endereo linear O endereo se estende do endereo 0 ate 232 ou 264 bytes Algumas mquinas tm endereos separados:
Instrues Dados

Esse esquema mais complexo do que ter um nico espao de endereo.


Vantagem:
possvel ter 232 bytes de programas e 232 bytes adicionais de dados usando endereos de 32 bits Todas as escritas vo automaticamente para o espao de dados. Logo, fica impossvel sobrescrever acidentalmente um programa
22

Perguntas
Porque os fabricantes dividiram a memria em clulas de 8 bits? Quantos bits seria dividida a memria caso o padro UNICODE fosse utilizado? Como funciona uma memria alinhada? Como funciona uma memria no alinhada? Qual a vantagem de usar a memria alinhada? Qual a desvantagem de usar a memria no alinhada? Quais so as vantagens de uma mquina que tem os endereos de instruo e dados separados?
23

Registradores
Todos os computadores tm alguns registradores visveis no nvel ISA Os registradores so usados para controlar a execuo de programas, reter resultados temporrios etc Os registradores do nvel ISA so divididos em duas categorias:
Registradores de uso geral Registradores de uso especial
24

Registradores
Registradores de uso geral
So usados para armazenar:
As variveis locais dos programa em execuo Os resultados intermedirios de clculos

Funo:
Prover acesso rpido a dados muito usados

Registradores de uso especial


Possuem papis especiais no funcionamento do computador
Ex: contador de programas e ponteiro de pilha
25

Registradores
Os registradores podem ser usados no modo ncleo e no modo usurio Registradores de modo usurio
Podem ser acessados pelo usurio atravs das linguagens de mquina ou de montagem
Ex: Registradores de uso geral, de dados e de endereo

So usados pelos compiladores e usurios

Registradores de modo ncleo


Controlam o hardware da mquina
Ex: caches, memria, dispositivos de E/S

So usados apenas pelo sistema operacional


26

Registradores
Registrador de controle
usado para controlar as aes da CPU Exemplo: Registrador de Flags ou PSW (Palavra de Estado do Programa) Podem ser usados no modo ncleo/usurio Contedo da PSW:
Cdigos de condio Modo da mquina (e.g., usurio ou ncleo) Bit de rastreamento Nvel de prioridade da CPU Estado de habilitao de interrupo
27

Registradores
Os cdigos de condio so:
ajustados em todo ciclo de ULA refletem o estado do resultado da operao mais recente

Cdigos de condio:
N: Resultado negativo Z: Resultado foi zero V: Resultado excedeu a capacidade da ULA (oVerflow) C: Resultado causou um vai-um do bit da extrema esquerda

As instrues de comparao e o desvio condicional utilizam os cdigos de condio


28

Perguntas
Qual a funo dos registradores? Quais so as duas categorias dos registradores? Qual a funo dos registradores de uso geral? Qual a funo do registrador de controle? Porque os cdigos de condio so importantes?
29

Instrues do nvel ISA


Principal caracterstica do nvel ISA:
o conjunto de instrues

As instrues controlam o que a mquina pode fazer


Ex: LOAD, STORE e MOVE

As instrues tambm podem ser aritmticas, booleanas e comparativas

30

Viso geral do nvel ISA do Pentium 4


O processador Pentium 4 evoluiu por muitas geraes A ISA bsica do Pentium 4 manteve total suporte para execuo de programas escritos para os processadores 8086 a 8088 O 80386 foi a primeira mquina de 32 bits Todas as mquinas subsequentes tm, em essncia, a mesma arquitetura de 32 bits do 80386 A arquitetura de 32bits do 80386 chamada de IA-32

31

Viso geral do nvel ISA do Pentium 4


Alterao importante na arquitetura desde o 80386 foi a introduo das instrues:
MMX, SSE e SSE2

As instrues MMX, SSE, SSE2 foram projetadas para melhorar o desempenho em aplicaes multimdia Pentium 4 tem trs modos de operao:
Modo real Modo virtual 8086 Modo protegido

32

Viso geral do nvel ISA do Pentium 4


Modo real:
O Pentium 4 se comporta como um simples 8088 Se algum programa falhar, a mquina inteira falha

Modo virtual 8086:


Permite que o Pentium 4 execute antigos programas 8088 de modo protegido Nesse modo, o sistema operacional est no controle total da mquina
O sistema operacional cria um ambiente isolado que age como um 8088

Se o programa falhar, o SO avisado e a maquina no falha


33

Viso geral do nvel ISA do Pentium 4


Modo protegido:
O Pentium 4 realmente age como um Pentium 4 Tem quatro nveis de privilgio:
Nvel 0:
Corresponde ao modo ncleo Sistema Operacional tem acesso total a mquina

Nvel 1 e 2:
So raramente utilizados

Nvel 3:
usado pelos programas usurios Nesse nvel, algumas instrues crticas esto bloqueadas e os registradores so controlados para impedir que um programa usurio trapaceiro faa a mquina inteira falhar

34

Viso geral do nvel ISA do Pentium 4


A memria do Pentium 4 dividida em 16.384 segmentos
Cada segmento tem o endereo entre 0 e 232 1

A maioria dos SO suportam apenas um segmento


A maioria dos programas de aplicao vem, realmente, um espao de endereo linear de 232 Bytes

Palavras so armazenadas em formato little endian

35

Viso geral do nvel ISA do Pentium 4


Reviso:
ordenao de bytes na memria
Big endian:
Os bytes so numerados da esquerda para a direita

Little endian:
Os bytes so numerados da direita para a esquerda

36

Viso geral do nvel ISA do Pentium 4


Registradores de uso geral:
EAX:
Registrador aritmtico

EBX:
Usado para armazenar ponteiros

ECX:
Usado na execuo de loops

EDX:
usado para multiplicao e diviso
37

Viso geral do nvel ISA do Pentium 4


Apontadores de memria
ESI:
Ponteiro de ndice fonte

EDI:
Ponteiro de ndice destino

EBP:
Ponteiro de base de pilha

ESP:
Ponteiro de pilha

38

Viso geral do nvel ISA do Pentium 4


Registradores de segmento
CS, SS, DS, ES, FS e GS

Contador de Programa
EIP

Registrador de Flags
EFLAGS

39

Perguntas
O nvel ISA do Pentium 4 baseada em quais processadores? Porque o nvel ISA do Pentium 4 baseada nestes processadores? Qual o nome da arquitetura de 32 bits do Pentium 4? Qual foi a nica alterao importante na arquitetura do Pentium 4? Pra que serve essas novas instrues? Quais so trs modos de operao do Pentium 4? Expliquem cada modo de operao do Pentium 4. Quantos nveis de privilgio tem o nvel ISA do Pentium 4? Expliquem cada nvel de privilgio. A memria do Pentium 4 dividida em quantos segmentos? Quantos segmentos o Sistema Operacional suporta?
40

Viso geral do nvel ISA do processador UltraSPARC III


Arquitetura SPARC foi apresentada pela primeira vez em 1987 pela Sun Microsystem SPARC original era uma arquitetura de 32 bits UltraSPARC III:
uma mquina de 64 bits baseada na SPARC V9

A memria enderevel da UltraSPARC III um arranjo linear de 264 Bytes


41

Viso geral do nvel ISA do processador UltraSPARC III


Nenhuma das mquinas existentes hoje pode implementar essa memria de 264 Bytes As implementaes atuais tm uma limitao para o tamanho do endereo que pode ser acessado
244 Bytes da UltraSPARC III so utilizados Os projetistas da famlia UltraSPARC acreditam que isso melhorar nos modelos futuros

A ordenao dos Bytes (default) big endian


Mas pode ser transformada em little endian com o ajuste de um bit na PSW
42

Viso geral do nvel ISA do processador UltraSPARC III


A organizao dos registradores do ISA SPARC um tanto complexo Os projetistas tentaram:
Tornar as chamadas de procedimentos mais eficientes Manter a compatibilidade com as verses antigas

UltraSPARC III tem dois grupos de registradores:


Registradores de uso geral:
No total, so 32 registradores de 64 bits (R0 R31)

Registradores de ponto flutuante:


No total, so 32 registradores
43

Viso geral do nvel ISA do processador UltraSPARC III

44

Viso geral do nvel ISA do processador UltraSPARC III


Registradores de ponto flutuante
Podem conter valores numricos de:
32 bits: preciso nica 64 bits: preciso dupla 128 bits: preciso qudrupla

45

Viso geral do nvel ISA do processador UltraSPARC III


A arquitetura UltraSPARC III uma arquitetura carregue/armazene
As nicas operaes que acessam a memria diretamente so:
As instrues LOAD e STORE

Todos os operandos para instrues aritmticas e lgicas devem vir de registradores ou ser fornecidos pela instruo Todos os resultados devem ser salvos em um registrador
46

Perguntas
A UltraSPARC III usa qual verso do ISA SPARC? Quantos bits tem uma mquina UltraSPARC III? Quantos Bytes tem a memria enderevel da UltraSPARC III? Quantos Bytes da memria enderevel so realmente utilizados? Porque os projetistas colocaram no processador UltraSPARC III mais memria do que realmente pode ser utilizado? O UltraSPARC III usa que tipo de ordenao dos Bytes? Porque a organizao dos registradores ISA SPARC complexa? Quais so dois grupos de registradores do UltraSPARC III? Quantos registradores de uso geral esto disponveis? Quantos registradores de ponto flutuante esto disponveis?
47

Viso geral do nvel ISA do 8051


Caractersticas do 8051:
um chip nico que contm a CPU, a memria e os controladores de dispositivo de E/S utilizado em sistemas embutidos usado para controlar e gerenciar teclas, luzes e outras partes da interface de usurio
Ex: Rdio-relgio

O 8051 nunca executa mltiplos programas de usurios


O 8051 tem um nico modo e nenhuma proteo de hardware
48

Viso geral do nvel ISA do 8051


O modelo de memria do 8051 bem simples
Espao de endereo para programas (ROM) Espao de endereo para dados (RAM)

8051 permite vrias implementaes de memria:


ROM: 4 KB (Programa) e RAM: 128 Bytes (Dados) ROM: 64 KB (Programa) e RAM: 64 KB (Dados) RAM Externa: 64 KB (Programa e dados) ROM: 4 KB (Programa) e RAM: 128 Bytes (Dados) e mais memria fora do chip

O modelo de memria escolhido definido no chip


49

Viso geral do nvel ISA do 8051


Registradores do 8051:
Registradores de uso especial 4 conjuntos com 8 registradores cada (8 bits)

O propsito de ter vrios conjuntos de registradores habilitar processamento rpido de interrupo Essa propriedade torna o 8051 capaz de tratar um nmero maior de interrupes por segundo
50

Viso geral do nvel ISA do 8051


PSW:
C: bit vai-um A: bit vai-um auxiliar RS: conjunto de registradores O: bit de excesso P: bit de paridade

51

Viso geral do nvel ISA do 8051


IE:
EA: habilita/desabilita todas as interrupes E2, E1, E0: habilitam/desabilitam os trs canais temporizados ES: habilita/desabilita a interrupo de canal serial X1, X0: habilitam/desabilitam as interrupes geradas externamente
52

Viso geral do nvel ISA do 8051


IP:
Determina o nvel de prioridade de cada instruo
Alto Baixo

TCON:
Controla os temporizadores 0e1
Hardware Software

53

Viso geral do nvel ISA do 8051


TMOD:
Determina o modo de cada temporizador
Temporizador Contador

Determina at que ponto os sinais de hardware podem controlar os temporizadores


54

Perguntas
Porque o 8051 no tem proteo de hardware? Descrevam o modelo de memria do 8051. Quais so os 4 tipos de implementao de memria? Porque o registrador dividido em quatro conjuntos com oito registradores cada?

55

Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo

56

Tipos de Dados
Todos os computadores precisam de dados
Financeiros Comerciais Cientficos

Tipos de dados:
Numricos
Exemplos: inteiros e ponto flutuante

No numricos
Exemplos: caracteres, booleanos e ponteiro
57

Tipos de Dados
Numricos
Inteiros:
Armazenado: em notao binria de complemento de 2 Comprimento: 8, 16, 32 e 64 bits Tipos:
Inteiros sem sinal Ex: Uma palavra de 32 bits pode conter um nmero 0 a 232 1 Vantagem: Bit extra Inteiros com sinal Tem um bit de sinal Ex: Uma palavra de 32 bits pode conter um nmero 0 a 231 1 Vantagem: Pode manipular nmeros negativos
58

Tipos de Dados
Numricos (Cont.)
Ponto flutuante:
Comprimento: 32, 64 e 128 bits A maioria dos computadores tem instrues para efetuar operaes aritmticas de ponto flutuante Muitos computadores tem registradores separados para conter operandos inteiros e operandos de ponto flutuante

59

Tipos de Dados
No numricos
O nvel ISA pode manipular:
Cadeias de caracteres
ASCII (7 bits) UNICODE (16 bits)

Valores booleanos
Verdadeiro Falso

Ponteiro

60

Tipos de Dados
Tipos de dados no Pentium 4
Tipo
Bit Inteiro com sinal Inteiro sem sinal Inteiro decimal em cdigo binrio Ponto flutuante Caracteres ASCII X X X X X X X X X X

1 bit 8 bits 16 bits 32 bits 64 bits 128 bits

61

Tipos de Dados
Tipos de dados no UltraSPARC III
Tipo
Bit Inteiro com sinal Inteiro sem sinal Inteiro decimal em cdigo binrio Ponto flutuante Caracteres ASCII X X X X X X X X X X X X

1 bit 8 bits 16 bits 32 bits 64 bits 128 bits

OBS: Os caracteres ASCII so manipulados inteiramente por software.

62

Tipos de Dados
Tipos de dados no 8051
Tipo
Bit Inteiro com sinal Inteiro sem sinal Inteiro decimal em cdigo binrio Ponto flutuante Caracteres ASCII

1 bit 8 bits 16 bits 32 bits 64 bits 128 bits


X X

63

Perguntas
Quais so os dois tipos de dados? Quais so os dois tipos de Inteiro? Qual a diferena entre esses dois tipos de Inteiro? Quais so os tipos de dados suportados pelo Pentium 4? Quais so os tipos de dados suportados pelo UltraSPARC III? Quais so os tipos de dados suportados pelo 8051?

64

Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo

65

Formatos de instruo
Formatos de instruo Critrios de projeto para formatos de instruo Expanso de opcodes Formatos de instrues dos processadores:
Pentium 4 UltraSPARC III 8051
66

Formatos de instruo
Cada instruo deve definir:
O qu fazer:
OPCODE

Com o qu:
endereamento de dados

A CPU deve ser capaz de identificar esses campos em cada instruo

67

Formatos de instruo

68

Formatos de instruo
As instrues podem ser mais curtas, mais longas ou do mesmo comprimento da palavra Instrues do mesmo comprimento da palavra:
Vantagens:
mais simples mais fcil para decodificar

Desvantagem:
Desperdcio de espao

preciso definir a relao entre tamanho de cada instruo e as palavras de memria


69

Formatos de instruo

70

Formatos de instruo
Critrios de projeto para formatos de instruo
A deciso sobre o formato de instruo deve ser tomada no incio do projeto de um novo computador Preocupaes dos Projetistas:
Eficincia
Exemplo: Acesso rpido memria: projeto baseado em pilha Acesso lento memria: projeto baseado em registradores

Tamanho das instrues Largura de banda da memria Velocidade de decodificao

71

Formatos de instruo
Expanso de opcodes
o artifcio utilizado pelos projetistas de computador para contrabalancear a quantidade de memria enderevel com a quantidade de instrues possveis Exemplo 1:
Considerar uma mquina na qual as instrues tem 16 bits e os endereos tem 4 bits cada

72

Formatos de instruo
Expanso de opcodes (Cont.)
Exemplo 2:
Os projetistas precisam de:
15 instrues de trs endereos 14 instrues de dois endereos 31 instrues de um endereo 16 instrues sem endereo

73

Formatos de instruo

74

Formatos de instruo
Os formatos de instrues do Pentium 4 so complexos

75

Formatos de instruo
A ISA UltraSPARC III consiste de instrues de 32 bits

76

Formatos de instruo
O 8051 tem seis formatos simples de instruo

77

Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo

78

Endereamento
O Endereamento indica onde esto os operandos que fazem parte das instrues Tipos de Endereamento:
Endereamento imediato Endereamento direto Endereamento de registrador Endereamento indireto de registrador Endereamento indexado Endereamento de base indexado Endereamento de pilha
79

Endereamento
Endereamento imediato:
O campo de endereo contm o operando
O endereo no usado para descrever a localizao do operando

Exemplo: Vantagem:
No exige uma referncia extra memria para buscar o operando

Desvantagem:
Somente uma constante pode ser fornecida neste modo e o valor da constante limitado pelo tamanho do campo
80

Endereamento
Endereamento direto
O operando indicado na memria atravs do seu endereo completo Neste tipo de endereamento, a instruo sempre acessar a mesma localizao da memria O endereo direto usado para acessar variveis globais cujos endereos so conhecidos no momento da compilao

81

Endereamento
Endereamento de registrador
Similar ao endereamento direto, porm especifica um registrador em vez de uma localizao de memria Esse modo de endereamento o mais comum na maioria dos computadores
Os registradores tm acesso rpido e endereos curtos

Qual o processador que utiliza muito esse tipo de endereamento?


82

Endereamento
Endereamento indireto de registrador
O operando que est sendo especificado vem da memria ou vai para a memria
O endereo do operando fica armazenado em um registrador Quando um endereo usado dessa maneira, ele chamado de ponteiro

Vantagens:
O endereo do operando na instruo faz referencia memria sem pagar o preo por ter um endereo de memria completo na instruo Pode usar diferentes palavras de memria em diferentes execues da instruo
83

Endereamento
Endereamento indireto de registrador (Cont.)
Exemplo:
Um loop que soma os elementos de um vetor de inteiros No total so 1024 elementos com 4 Bytes (cada)

84

Endereamento
Endereamento indexado
o nome que se d ao endereamento de memria que fornece um registrador mais um deslocamento constante
Um ponteiro de memria e um pequeno deslocamento no registrador

Notao: MOV R4, A(R2)

A Palavra de memria endereada :


A[0] no endereo 124300 A[1] no endereo 124304 A[2] no endereo 124308
85

Endereamento
Endereamento indexado (Cont.)

86

Endereamento
Endereamento de base indexado
Algumas mquinas tem um modo de endereamento no qual o endereo de memria calculado somando dois registradores mais um deslocamento (opcional)
Um dos registradores a base e o outro o ndice

Exemplo: LOOP:

MOV R4,(R2+R5) AND R4,(R2+R6)


87

Endereamento
Endereamento de base indexado (Cont.)
Vantagem:
Se o deslocamento tiver 8 ou 16 bits, ento esse tipo de endereamento melhor do que o endereamento indexado

Desvantagem:
Se o deslocamento sempre tiver 32 bits, ento no h nenhuma vantagem sobre o endereamento indexado

88

Endereamento
Endereamento de pilha
O processador tem a noo de manipulao de dados em uma pilha Operaes sempre se referem ao topo da pilha Vamos analisar:
Notao polonesa invertida Avaliao de frmulas em notao polonesa invertida

89

Notao polonesa invertida


A antiga tradio da matemtica coloca o operador entre os operandos (Notao Infixa)
Exemplo: x + y

A notao polonesa invertida coloca o operador aps os operandos


Exemplo: x y +

Vantagens da notao polonesa invertida sobre a notao infixa:


Qualquer frmula pode ser expressa sem parnteses conveniente para avaliar frmulas em computadores de pilha Operadores infixo tm precedncia. Isso arbitrrio e indesejvel
90

Notao polonesa invertida

91

Notao polonesa invertida

92

Avaliao de frmulas em notao polonesa invertida


Exemplo: (8 + 2 x 5) / (1 + 3 x 2 4)

93

Dicas para a tabela de notao polonesa invertida


+ e - s tem valor 2 se for ++, +-, - - e -+ x e / tem valor 2 com qualquer operao aritmtica ( tem valor 1 com qualquer smbolo, exceto com o ) ) tem valor > 2 com qualquer smbolo

Montar tabela
Smbolo da expresso

Smbolo do topo da pilha

Modos de endereamento

96

Perguntas
Quais so os tipos de endereamento? Expliquem cada tipo de endereamento. Quais so as trs vantagens da notao polonesa? Quais so os modos de endereamento suportados pelo Pentium 4? Quais so os modos de endereamento suportados pelo UltraSPARC III? Quais so os modos de endereamento suportados pelo 8051?
97

Roteiro
Nvel de arquitetura do conjunto de instruo Viso geral do nvel ISA Tipos de dados Formatos de instruo Endereamento Tipos de instruo

98

Tipos de instruo
Instrues para movimento de dados Operaes didicas Operaes mondicas Comparaes e desvios condicionais Instrues de chamada de procedimento Controle de lao Instrues dos processadores:
Pentium 4 UltraSPARC III 8051

99

Tipos de instruo
Instrues para movimento de dados
Copiar dados de um lugar para outro a mais fundamental de todas as operaes
Exemplo 1:
A=B

Exemplo 2:
O contedo da localizao de memria 2000 foi movido para algum registrador O que isso significa?

Um nome melhor para instrues de movimento de dados seria instrues de duplicao de dados
100

Tipos de instruo
Operaes didicas
Operaes que combinam dois operandos para produzir um resultado
Operaes aritmticas (adio, subtrao, multiplicao e diviso) Operaes booleanas (AND, OR, NOT, etc)
Exemplo: (A AND B) OR C A = 10110111 10111100 11011011 10001011 B = 11111111 11111111 11111111 00000000 C = 00000000 00000000 00000000 01010111

101

Tipos de instruo
Operaes mondicas
Operaes que tm apenas um operando e produzem um resultado So usadas em instrues para deslocar ou rodar o contedo de uma palavra ou byte
Deslocamentos:
So operaes que movem os bits para a esquerda ou para a direita Os bits deslocados so empurrados para fora na extremidade da palavra (perdidos)

Rotaes:
So deslocamentos que empurra os bits para fora da extremidade da palavra e os bits reaparecem na extremidade oposta
102

Tipos de instruo
Operaes mondicas (Cont.)
Deslocamento versus Rotaes
Exemplo 1:
A = 00000000 00000000 00000000 01110011 Deslocamento de 2 bits para a direita A = 00000000 00000000 00000000 00011100 Rotao de 2 bits para a direita A = 11000000 00000000 00000000 00011100

103

Tipos de instruo
Operaes mondicas (Cont.)
Deslocamento
Direita
Com extenso de sinal Sem extenso de sinal

Esquerda

Exemplo:
A = 11111111 11111111 11111111 11110000 Deslocamento de 2 bits para a direita sem sinal
A = 00111111 11111111 11111111 11111100

Deslocamento de 2 bits para a direita com sinal


A = 11111111 11111111 11111111 11111100

Qual a diferena do deslocamento com sinal para o deslocamento sem sinal?


104

Tipos de instruo
Operaes mondicas (Cont.)
Deslocamentos
Podem ser usados para acelerar algumas operaes aritmticas
Exemplo: multiplicao

Rotaes
Podem ser usada para testar os bits em uma palavra Vantagem:
As operaes de rotao so mais puras do que operaes de deslocamento porque nenhuma informao perdida
105

Tipos de instruo
Comparaes e desvios condicionais
Comparaes: Instrues usadas para comparar duas palavras
Exemplo:
Comparar duas palavras para ver se so iguais Comparar duas palavras para ver qual deles o maior

Desvios condicionais: Instrues usadas para testar alguma condio e alterar a sequncia de instrues com base nos resultados do teste Exemplo: x
106

Tipos de instruo
Instrues de chamada de procedimento
Um procedimento um grupo de instrues que realiza alguma tarefa e pode ser chamado de diversas partes do programa
Linguagem de montagem: Sub-rotina Java: Mtodo

Quando o procedimento conclui sua tarefa, deve retornar declarao aps a chamada
O endereo de retorno deve ser transmitido ao procedimento ou salvo em algum lugar de modo que possa ser localizado quando for a hora de retornar

107

Tipos de instruo
Instrues de chamada de procedimento (Cont.) Endereo de retorno pode ser colocado:
Memria
Memria fixa ruim Mltiplas chamadas podem sobrescrever os dados anteriores

Registrador
Soluo melhor do que a memria fixa O armazenamento em registradores joga a responsabilidade do armazenamento para o procedimento Problema: Procedimentos recursivos

Pilha
Melhor soluo
108

Tipos de instruo
Controle de lao

(a) Lao do tipo teste no final

(b) Lao do tipo teste no incio

109

Instrues do Pentium 4

110

Instrues do Pentium 4

111

Instrues da UltraSPARC III

112

Instrues da UltraSPARC III

113

Instrues da UltraSPARC III

114

Instrues do 8051

115

Instrues do 8051

116

Instrues do 8051

117

Instrues do 8051

118

Instrues do 8051

119

Comparao de Conjuntos de Instrues


Reviso
CISC (Complex Instruction Set Computer )
Vantagem:
Muitas instrues esto guardadas no prprio processador, o que facilita o trabalho dos programadores de linguagem de mquina

RISC (Reduced Instruction Set Computer)


Vantagens:
Um processador com menor quantidade de chips e transistores Reduo da complexidade do decodificador de instrues, reduzindo tambm o tempo de decodificao
120

Comparao de Conjuntos de Instrues


Pentium 4
uma clssica mquina CISC de dois endereos e 32 bits Tem modos de endereamento peculiares e muito irregular Tem muitas instrues que referenciam a memria O fato do Pentium 4 ser muito rpido, com uma ISA extremamente complexa, um testemunho da qualidade dos engenheiros da Intel
121

Comparao de Conjuntos de Instrues


UltraSPARC III
uma moderna mquina RISC de trs endereos e 64 bits Representa um projeto ISA de ltima gerao Tem arquitetura carregue/armazene Tem poucos modos de endereamento Tem um conjunto de instrues compacto e eficiente Grande parte dos novos projetos tende a se parecer com a UltraSPARC III
122

Comparao de Conjuntos de Instrues


8051
um minsculo processador embutido Tem um conjunto de instrues simples e regular Tem poucos modos de endereamento Vantagens:
Tem quatro conjuntos de registradores para processamento rpido de interrupes Tem instrues de manipulao de bit surpreendentemente poderosa
123

Perguntas
Qual a diferena entre deslocamento e rotao? Qual a diferena entre deslocamento com sinal e deslocamento sem sinal? Qual a diferena entre comparaes e desvios condicionais? Qual a melhor opo de armazenamento de endereo de retorno? Porque? Quais so os tipos de controle de lao? Quais so as caractersticas do Pentium 4? Quais so as caractersticas do UltraSPARC III? Quais so as caractersticas do 8051?
124

Anda mungkin juga menyukai