Buscar

aula03_ConjuntoDeInstrucoes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 46 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2011/1 MATA48 - Arquitetura de Computadores 1
Instituto de Matemática
Departamento de Ciência da Computação
Arquitetura de Computadores
Conjunto de instruções
Prof. Marcos E Barreto
2011/1 MATA48 - Arquitetura de Computadores 2
Tópicos
● Características das instruções de máquina
● Tipos de operandos (dados)
● Tipos de operações
● Estudo de casos: x86, ARM
● Referências:
● Stallings. Arquitetura e organização de 
computadores. 8 ed. Cap. 8.
● Hennessy, Patterson. Arquitetura de 
computadores – uma abordagem 
quantitativa. 4 ed. Apêndice B. 
2011/1 MATA48 - Arquitetura de Computadores 3
Contextualização
● O conjunto de instruções da máquina representa 
as capacidades funcionais do processador.
● Implementar um processador significa, em termos 
gerais, implementar o conjunto de instruções 
projetado para ele.
● O contexto envolve a estrutura de registradores e 
da memória, os tipos de dados suportados 
diretamente pela máquina e como são 
representados, o funcionamento da ULA, entre 
outros aspectos.
2011/1 MATA48 - Arquitetura de Computadores 4
Conjunto de instruções
● A operação do computador é determinada pelo 
conjunto de instruções que ele executa.
● Elementos de uma instrução de máquina:
● Código da operação (opcode)
● Referência aos operandos fonte e destino
● Referência à próxima instrução
2011/1 MATA48 - Arquitetura de Computadores 5
Conjunto de instruções (2)
● Localização dos operandos fonte e destino
● Memória principal ou virtual
● Registradores do processador
– Registrador implícito ou referenciado por um nome/número
● Imediato
– O valor do operando está contido na instrução
● Dispositivo de E/S
– Referência ao módulo e ao dispositivo de E/S ou, no caso de E/S 
mapeada em memória, o endereço de memória associado ao 
dispositivo.
2011/1 MATA48 - Arquitetura de Computadores 6
Representação de instruções
● Cada instrução é representada por uma sequência 
de bits, organizados em campos.
● Mais de um formato pode ser utilizado (com 
diferente número de operandos).
● Adoção de uma representação simbólica
– mnemônicos para representar os opcodes.
– Exemplos: ADD, SUB, DIV, LOAD, STOR, MOVE
– Operandos também pode ser referenciados simbolicamente
– Exemplo: ADD R, Y => R: registrador Y: endereço memória 
2011/1 MATA48 - Arquitetura de Computadores 7
Tipos de instrução
● Linguagem de alto nível: X = X + Y
● Instruções de máquina:
1. carregar um registrador com o valor de X
2. somar o valor de Y a esse registrador
3. armazenar o resultado (valor do registrador) em X
● Tipos de instruções
● Processamento de dados (aritméticas e lógicas)
● Armazenamento de dados (memória ↔ registradodores)
● Movimentação de dados (instruções de E/S)
● Controle (instruções de teste e desvio)
2011/1 MATA48 - Arquitetura de Computadores 8
Quantidade de endereços
● Qual o número máximo de endereços necessários 
em uma instrução?
● Instruções aritméticas e lógicas contêm um ou dois operandos 
fonte
● O resultado de uma operação deve ser armazenado
– necessidade de um terceiro operando (de destino)
● O endereço da próxima instrução deve ser conhecido pelo 
processador
– o que justificaria um quarto campo de endereço
– na prática, uso do contador de programa (PC)
2011/1 MATA48 - Arquitetura de Computadores 9
Quantidade de endereços (2)
Y= A−BCD∗E 
ACUMULADOR
2011/1 MATA48 - Arquitetura de Computadores 10
Quantidade de endereços (3)
● Interpretação das instruções
2011/1 MATA48 - Arquitetura de Computadores 11
Projeto do conjunto de instruções
● Corresponde à definição das funções realizadas 
pelo processador.
● Deve levar em consideração os requisitos dos 
programadores, para tornar a programação do 
sistema eficiente e mais fácil.
● Questões básicas
● Repertório de operações (quantas e quais operações oferecer)
● Tipos de dados
● Formato da instrução (tamanho em bits, quantidade de endereços etc)
● Registradores (número de registradores que podem ser acessados)
● Endereçamento de operandos
2011/1 MATA48 - Arquitetura de Computadores 12
Tipos de dados
● Categorias gerais de dados
● Endereços
– Memória principal ou virtual
● Números
– Representações em ponto fixo, ponto flutuante e decimal 
agrupado (BCD)
● Caracteres
– Representações em IRA/ASCII ou EBCDIC
● Dados lógicos
– Quando os dados são vistos como n itens de dados de 1 bit
● Listas ou strings de caracteres
2011/1 MATA48 - Arquitetura de Computadores 13
Tipos de operações
● Classificação geral dos tipos de operações
● Transferência de dados
● Aritmética
● Lógica
● Conversão
● E/S
● Controle do sistema
● Trasnferência de controle
2011/1 MATA48 - Arquitetura de Computadores 14
Tipos de operações
● Transferência de dados
● Instrução deve definir local dos operandos origem e destino, 
extensão dos dados a serem transmitidos e o modo de 
endereçamento dos operandos.
2011/1 MATA48 - Arquitetura de Computadores 15
Tipos de 
operações
● Transferência de dados
● Exemplo: IBM EAS/390
– Último mainframe da IBM com endereços de 31 bits e dados de 32 bits lançado em 1990.
– Sucedido pela linha zSeries (ESAME) a partir de 2000 (arquitetura de 64 bits).
2011/1 MATA48 - Arquitetura de Computadores 16
Tipos de operações
● Aritméticas
● Operações básicas: adição, subtração, multiplicação e divisão.
● Outras operações: módulo/valor absoluto, negação, incremento e 
decremento.
2011/1 MATA48 - Arquitetura de Computadores 17
Tipos de 
operações
● Lógicas
● Operações para 
manipulação de bits 
individuais de uma 
palavra.
● Baseadas na álgebra 
Booleana. 
● NOT, AND, OR, XOR,
EQUAL (=) etc.
2011/1 MATA48 - Arquitetura de Computadores 18
Tipos de 
operações
● Lógicas
● Deslocamento lógico
– Insere 0 em uma extremidade. 
Bit da outra extremidade é 
perdido.
– Ex. transmissão de caracteres 
para dispositivo de E/S.
● Deslocamento aritmético
– A esquerda → X 2
– A direita → / 2
● Rotação
– Trazer todos os bits para uma 
posição para testá-los.
2011/1 MATA48 - Arquitetura de Computadores 19
Tipos de operações
● Lógicas
● Deslocamento lógico
● Deslocamento aritmético
● Rotação
2011/1 MATA48 - Arquitetura de Computadores 20
Tipos de operações
● Conversão
● Operam sobre o formato dos dados.
● Usadas para a conversão de formatos => decimal para binário 
ou EBCDIC para IRA/ASCII.
2011/1 MATA48 - Arquitetura de Computadores 21
Tipos de operações
● Entrada e saída
● Diversas técnicas de E/S: programada mapeada em memória, 
programada independente, acesso direto a memória (DMA) e 
uso de processadores de E/S.
● As instruções de E/S têm ações específicas controladas por 
parâmetros, códigos ou palavras de comando.
2011/1 MATA48 - Arquitetura de Computadores 22
Tipos de operações
● Controle do sistema
● Instruções reservadas para uso do sistema operacional enquanto 
o processador está em determinados estados de operação ou 
está executando em área protegida de memória.
● Exemplos:
– Leitura ou alteração de registradores de controle.
– Leitura ou alteração de chaves de proteção de 
armazenamento.
– Acesso para processamento de blocos de controle em 
ambientes multiprogramados.
2011/1 MATA48 - Arquitetura de Computadores 23
Tipos de operações
● Transferência de controle
● Instruções para mudar a sequência de execução das instruções 
de um programa.
● Necessárias para o suporte de laços, comandos de decisão e 
subprogramas (divisão do programa em tarefas menores).
2011/1 MATA48 - Arquitetura de Computadores 24
Tipos de operações
● Transferência de controle
● Desvio condicional
– Desvio é tomado (atualizar o contador de programa com o endereço da 
instrução especificadano operando) somente se uma condição for satisfeita.
– A condição a ser testada pode ser gerada através de códigos de condição 
(BRP, BRN, BRZ, BRO), definidos como resultado de algumas operações ou 
estar incorporada no formato da instrução (BRE R1, R2, X).
● Desvio incondicional
– Desvio sempre é tomado.
2011/1 MATA48 - Arquitetura de Computadores 25
Tipos de operações
● Transferência de controle
● Instruções de salto (skip)
– A instrução inclui um endereço implícito.
– Normalmente, o salto implica que uma instrução seja pulada; 
dessa forma, o endereço implícito é igual ao endereço da 
próxima instrução + o tamanho de uma instrução.
– Ex:
301
....
309 ISZ R1  /* increment and skip if zero
310 BR 301  /* desvia de volta ao início do laço (301)
311
laço
2011/1 MATA48 - Arquitetura de Computadores 26
Tipos de 
operações
● Transferência de controle
● Chamada de procedimento
– Instruções para chamada de 
um subprograma, a partir de um 
local, e para o retorno a esse local 
após execução do subprograma.
1
2
34
5
6
2011/1 MATA48 - Arquitetura de Computadores 27
Tipos de operações
● Transf. de controle: chamada de procedimento
● Onde armazenar o endereço de retorno?
– Registrador específico
● CALL X  => RN   PC + ← ; PC   X;Δ ←
– Início do procedimento chamado
● CALL X => X   PC + ← ; PC   X + 1;Δ ←
– Topo da pilha
RN: reg. específico
Δ: tamanho da instrução
PC: contador de programa
X: endereço do procedimento
2011/1 MATA48 - Arquitetura de Computadores 28
Tipos de operações
● Transf. de controle: chamada de procedimento
● Passagem de parâmetros para o procedimento chamado
– Registradores
– Memória
– Pilha
Uso da pilha possibilita 
o suporte a 
procedimentos 
reentrantes
2011/1 MATA48 - Arquitetura de Computadores 29
Estudo de caso: x86
● Tipos de dados
● O x86 pode lidar com tipos de dados de 8 (byte), 16 (palavra), 32 
(doubleword), 64 (quadword) e 128 (double quadword).
● Palavras não precisam ser alinhadas em endereços de número 
par; porém, as transferências de dados em barramentos de 32 bits 
ocorrem em unidades de palavras duplas (doubleword) => 
processador converte a requisição para valores desalinhados em 
uma sequência de solicitações de transferência de barramento.
● Usa notação little endian => byte menos significativo é 
armazenado na memória em um endereço mais baixo e o byte 
mais significativo num endereço mais alto.
– Ex.: Byte3 Byte2 Byte1 Byte0 será armazenado como
– Endereço base+0 Byte0
– Endereço base+1 Byte1
– Endereço base+2 Byte2
– Endereço base+3 Byte3
2011/1 MATA48 - Arquitetura de Computadores 30
Ver próximo slide
2011/1 MATA48 - Arquitetura de Computadores 31
● Tipos de dados numéricos
● Inteiros: complemento de dois
com 16, 32 ou 64 bits
● Ponto flutuante: padrão IEEE 754
Estudo de caso: x86
2011/1 MATA48 - Arquitetura de Computadores 32
Estudo de caso: x86
● Tipos de dados SIMD
● Single Instruction, Multiple Data
● Introduzidos na arquitetura x86 a partir de extensões para 
otimização do desempenho de aplicações multimídia (MMX e 
SSE).
● Ideia: múltiplos operandos são agrupados num único item de 
memória e são operados em paralelo.
● Tipos de dados
– Byte agrupado e inteiro de byte agrupado
– Palavra agrupada e inteiro de palavra agrupado
– Doubleword agrupado e inteiro de doubleword agrupado
– Quadword agrupado e inteiro de quadword agrupado
– Ponto flutuante de precisão simples/dupla agrupado
2011/1 MATA48 - Arquitetura de Computadores 33
Estudo de caso: x86
● Tipos de operação
● Complexa gama de tipos de operação.
● Suporte à programação de compiladores.
● Diversos montadores para diferentes sistemas operacionais
– (MASM, NASM, gas, ald).
● Conjunto de registradores
– AX multiplicar/dividir (acumulador)
– BX indicador para MOVE (registrador de base)
– CX contador
– DX endereço de porta para IN e OUT (registrador de dados)
– IP (ponteiro de instrução)
– EFLAGS
– registradores de segmento (CS, DS, ES, FS, GS, SS)
– registradores de extensão SIMD (MMX, SSE, etc).
2011/1 MATA48 - Arquitetura de Computadores 34
2011/1 MATA48 - Arquitetura de Computadores 35
2011/1 MATA48 - Arquitetura de Computadores 36
2011/1 MATA48 - Arquitetura de Computadores 37
Estudo de caso: x86
● Flags de status e códigos de condição
● Flags de status: bits em registradores especiais que são definidos 
para algumas operações (aritméticas, comparação e transferêncai 
de dados) e usados em instruções de desvio.
● Códigos de condição: combinações de valores de flags.
2011/1 MATA48 - Arquitetura de Computadores 38
Códigos
de
condição
2011/1 MATA48 - Arquitetura de Computadores 39
Estudo de caso: x86
● Instruções SIMD
● Instruções otimizadas para processamento multimídia, 
introduzidas em 1996/1997 na família Pentium / Pentium Pro.
● 57 novas instruções que manipulam dados no padrão SIMD. 
● Ganhos médios de 2 a 8 vezes se comparados aos algoritmos 
sequenciais.
● Novos tipos de dados:
– Pacote de bytes
– Pacote de palavras
– Pacote de palavras duplas
● Introdução da arquitetura x86 de 64 bits, com operandos de 
quatro palavras duplos (double quadwords – 128 bits) e 
operações de ponto flutuante. 
2011/1 MATA48 - Arquitetura de Computadores 40
2011/1 MATA48 - Arquitetura de Computadores 41
2011/1 MATA48 - Arquitetura de Computadores 42
Estudo de caso: ARM
Tipos de dados
● 8 (byte), 16 (meia-palavra) e 32 (palavra) bits de extensão.
● Acessos devem ser alinhados de acordo com o tipo de palavra. 
Para acessos desalinhandos, são usadas técnicas de truncagem 
e rotação de dados.
● Sem hardware para ponto flutuante => operações devem ser 
emuladas em SW ou deve-se usar um coprocessador.
● Posicionamento de 
bytes (little-endian X 
big-endian)
2011/1 MATA48 - Arquitetura de Computadores 43
Estudo de caso: ARM
Tipos de operações
● Instruções LOAD/STORE
– Somente instruções LOAD/STORE acessam locais de memória => 
arquitetura RISC.
– Duas instruções gerais que carregam ou armazenam o valor de um único 
registrador, ou de um par de registradores, de/ou para memória.
● Instrução de desvio
– Desvio condicional para frente ou para trás em até 32 MB (instrução BL – 
branch with link)
● Instruções de processamento de dados
– Lógicas (AND, OR, XOR), adição, subtração, testes e comparação.
● Instruções de multiplicação
– Operandos de palavra ou meia-palavra que podem gerar resultados 
normais ou grandes.
2011/1 MATA48 - Arquitetura de Computadores 44
Estudo de caso: ARM
Tipos de operações
● Instruções paralelas de adição e subtração
– Partes dos dois operandos são processadas em paralelo.
– Ex: ADD16 soma as meias-palavras do topo dos dois registradores para 
formar a meia-palavra superior do resultado e soma as meias-palavras 
inferiores dos mesmos dois registradores para formar a meia-palavra 
inferior do resultado.
– Processamento de imagens (semelhantes ao MMX do x86).
● Instruções de extensão
– Instruções para desagrupar dados, estendendo com zeros, de bytes para 
meia-palavra ou palavras, de meia-palavra para palavra.
● Instruções de acesso ao registrador de status
– Leitura e escrita no registrador de status.
2011/1 MATA48 - Arquitetura de Computadores 45
Estudo de caso: ARM
Códigos de condição
● Quatro flags de condição: N, Z, C e V (negativo, zero, carry e 
overflow) gravados no registrador de status.
● Todas as instruções, não apenas as de desvio, incluem um 
campo de código de condição, o que significa que todas as 
instruções podem ser executadas condicionalmente.
● Todas as instruções de processamento (aritméticas, lógicas) 
incluem um bit que indica se a instrução atualiza os flags de 
condição.2011/1 MATA48 - Arquitetura de Computadores 46
ARM: códigos de condição
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46

Outros materiais

Perguntas Recentes