instruções de máquina. operação básica (primitiva) que o hardware é capaz de executar...

Post on 22-Apr-2015

122 Views

Category:

Documents

16 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Unidade Central De Processamento: Processador

Instruções de Máquina

Operação básica (primitiva) que o hardware é capaz de executar diretamente◦ Conjunto de bits que indica ao processador uma

operação que ele deve realizar

Instruções de Máquina – 01

O projeto de um processador é centrado no conjunto de instruções de máquina que se deseje que ele execute

Quanto menor e mais simples o conjunto de instruções, mais rápido é o ciclo de tempo do processador

Instruções de Máquina – 02

Existem duas tecnologias de projeto de computadores:◦ Sistemas com conjunto de instruções complexo

(complex instruction set computers – CISC)◦ Sistemas com conjunto de instruções reduzido

(reduced instruction set computers – RISC)

Instruções de Máquina – 03

Um processador possui instruções capazes de realizar:◦ Operações matemáticas◦ Movimentação de dados (memória – UCP e vice-

versa)◦ Entrada e saída (leitura e escrita em dispositivo

de E/S)◦ Controle (desvio de seqüência de execução,

parar, etc...)

Instruções de Máquina – 04

Exemplos:◦ Intel 8080: 78 instruções◦ Intel 8088: 117 instruções◦ 80486: 286 instruções◦ Pentium II: 217 instruções

Instruções de Máquina – 05

Uma instrução é dividida basicamente em dois campos:

Formato de Instruções – 01

C. Op. OperandosCódigo de operação

ou opcode

◦ Código de Operação: indica qual operação deverá ser realizada, por exemplo: Realizar uma operação lógica entre dois valores Parar a execução de um programa Testar uma condição: Se teste verdadeiro, então

desviar para outro endereço fora da seqüência

Formato de Instruções – 02

O campo código de operação possui, nos processadores atuais, 1 byte de tamanho

Pode-se, então, ter 28 instruções diferentes

Formato de Instruções – 03

◦ Operando: indica a localização do dado que será manipulado O campo operando pode estar subdividido em outros

campos no caso de mais de um operando, por exemplo: Em uma instrução cujo código de operação é uma soma,

são necessários três operandos Dois operandos para armazenar as parcelas Um operando para armazenar o total

Formato de Instruções – 04

Instrução de Soma:

Formato de Instruções – 05

C. Op. Operando 3Operando 2Operando 1

(operando 3) (operando 1) + (operando 2)

Outro formato para instrução de soma que produz o mesmo efeito:

Formato de Instruções – 06

C. Op. Operando 2Operando 1

(operando 1) (operando 1) + (operando 2)

(operando 2) (operando 1) + (operando 2)

Pode-se também usar o registrador acumulador para representar a mesma operação

Formato de Instruções – 07

C. Op. Operando

ACC ACC + (operando)

Iremos analisar as etapas realizadas pelo processador para a execução de uma instrução de máquina Ciclo de Instrução

Funcionamento do Processador – 01

Iremos considerar um computador hipotético com as seguintes características:◦ Palavra de 12 bits◦ Endereços de 8 bits (256 células de memória)◦ Células de 12 bits◦ ACC, RI e RDM com 12 bits de tamanho◦ CI e REM com 8 bits de tamanho

Funcionamento do Processador – 02

◦ Instruções de um operando apenas C. Op. de 4 bits e operando de 8 bits Campo operando sempre indica o endereço de

memória do dado, exceto em instruções de desvio

Funcionamento do Processador – 03

C. OP. Operando

4 bits 8 bits

Instruções disponíveis: listadas na tabela a seguir

C. Op.

Sigla Descrição

0 HLTParar execução do programa (HALT, em inglês)

1 LDA op ACC (op) (LOAD, em inglês)

2 STR op (op) ACC (STORE, em inglês)

3 ADD op ACC ACC + (op)

4 SUB op ACC ACC - (op)

5 JZ op Se ACC = 0, então CI op

6 JP op Se ACC > 0, então CI op

7 JN op Se ACC < 0, então CI op

8 JMP op CI op

C. Op.

Sigla Descrição

9 GET opLer dado da porta de entrada e armazená-lo em Op

A PRT opColocar na porta referente à impressora o valor armazenado em (op)

O ciclo de instrução pode ser mais detalhado conforme as especificações do processador listadas anteriormente

Funcionamento do Processador - 06

Buscar a próxima instrução

Início

Interpretar instrução(decodificar)

Buscar operandos

Executar instrução

Armazenar resultados

Fim

Buscar a próxima instrução

Incrementar O CI

Decodificação do C. Op.

Tem operando? Buscar e armazenar operando

Executar a operação

simnão

Subciclo de

busca

Subciclo de

Execução

Início

Armazenar resultados Fim

A fase de busca de instrução é idêntica para qualquer instrução

A fase de decodificação e execução depende da instrução

Vamos analisar como exemplo a execução de duas instruções na seguinte seqüência:

Funcionamento do Processador – 09

LDA op e ADD op

Considere que a instrução LDA está armazenada na MP no endereço decimal 2 (216 ou 000000102)

Ciclo das Instruções LDA op e ADD op – 01

0001 10110100

C. Op. Operando

B416

1B4

Considere que a instrução ADD está armazenada na MP no endereço decimal 3 (316 ou 000000112)

Ciclo das Instruções LDA op e ADD op – 02

0011 10110101

C. Op. Operando

B516

3B5

Estado Inicial da Memória

1B43B5

1A707D

00010203

B4B5B6

FF

Valores dos registradores:◦ CI=02 (Endereço colocado pelo sistema

operacional para iniciar a execução do programa)◦ RI=31716 (última instrução executada)

◦ ACC=20B16 (valor obtido da execução anterior)◦ REM=B3 e RDM=7BC

Estado Inicial do Processador

ULA 20B

UC DI

317

02 7BC

B3

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

A partir desta configuração, inicia-se o ciclo da instrução LDA◦ Busca da Instrução

A UC aciona a transferência do conteúdo de CI para REM (endereço de LDA) REM CI

O conteúdo de REM é colocado no barramento de endereços e a UC ativa a linha READ do barramento de controle

Ciclo de Instrução LDA op - 01

A memória recebe o endereço e coloca o conteúdo da célula 02 no barramento de dados (1B4)

O conteúdo do barramento de dados chega no RDM◦RDM Mem

O conteúdo do RDM é enviado para o RI◦RI RDM

Ciclo de Instrução LDA op - 02

Enquanto está acontecendo a operação de leitura na memória, o CI está sendo incrementado

Como, no nosso exemplo, qualquer instrução ocupa uma célula de memória, o CI será incrementado de uma unidade (CI = 03) para apontar para a próxima instrução◦ CI CI + 1

Ciclo de Instrução LDA op - 03

ULA 20B

UC D I

317 1B4

02 03 7BC 1B4

B3 02

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

Valores dos registradores após o subciclo de busca da instrução 1B4

Decodificação de Instrução◦A UC emite um sinal para que o RI transfira

para o decodificador de instruções os 4 bits do C. Op. Decodificador 0001

◦O decodificador seleciona, através de uma lógica nele existente, a linha de saída correspondente para a UC que emitirá os sinais adequados e em uma determinada seqüência para a execução da instrução

Ciclo de Instrução LDA op - 05

◦Como na instrução LDA não há operando a ser buscado, inicia-se então a execução da instrução

Ciclo de Instrução LDA op - 06

Execução de Instrução◦A execução da instrução LDA resume-se

em buscar na memória o conteúdo da célula B4

◦A UC comanda o RI para enviar os bits referentes ao endereço de memória para o REM

◦A UC ativa a linha READ do barramento de controle

Ciclo de Instrução LDA op - 07

◦A memória recebe o endereço que chega pelo barramento de endereço, decodifica e envia o conteúdo da célula B4 para o barramento de dados

◦RDM recebe o conteúdo do barramento de dados RDM 1A7

◦A UC emite um sinal para o RDM enviar o seu conteúdo para o ACC ACC RDM

Ciclo de Instrução LDA op - 08

ULA 20B 1A7

UC D I

317 1B4

02 03 1B4 1A7

02 B4

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

Valores dos registradores após a execução da instrução 1B4

Considerando que ADD é a instrução seguinte a ser executada, o CI já contém o seu endereço

Inicia-se a busca da próxima instrução

Ciclo de Instrução ADD op - 01

Busca da Instrução◦A UC aciona a transferência do conteúdo

de CI para REM (03) REM CI

◦O conteúdo de REM é colocado no barramento de endereços e a UC ativa a linha READ do barramento de controle

◦A memória recebe o endereço e coloca o conteúdo da célula 03 no barramento de dados (3B5)

Ciclo de Instrução ADD op - 02

◦O conteúdo do barramento de dados chega no RDM RDM Mem

◦O conteúdo do RDM é enviado para o RI RI RDM

◦Enquanto está acontecendo a operação de leitura na memória, o CI está sendo incrementado, passando a valer 4 CI CI + 1

Ciclo de Instrução ADD op - 03

ULA 20B 1A7

UC D I

1B4 3B5

03 04 1A7 3B5

B4 03

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

Valores dos registradores após o subciclo de busca da instrução 3B5

Decodificação de Instrução◦ A UC emite um sinal para que o RI transfira para o

decodificador de instruções os 4 bits do C. Op. Decodificador 0011

◦ O decodificador seleciona a linha de saída correspondente para a UC que emitirá os sinais adequados para a busca do operando

Ciclo de Instrução ADD op - 05

Busca de Operando◦O endereço do operando a ser buscado na

MP está do RI, no campo operando (B5)◦UC emite sinais para que o REM receba o

operando REM B5

◦REM coloca o seu conteúdo no barramento de endereços

◦A UC ativa a linha READ no barramento de controle

Ciclo de Instrução ADD op - 06

◦A memória recebe o endereço e coloca o conteúdo da célula B5 no barramento de dados (07D)

◦O conteúdo do barramento de dados chega no RDM RDM Mem

Ciclo de Instrução ADD op - 07

ULA 20B 1A7

UC D I

1B4 3B5

03 04 3B5 07D

03 B5

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

Valores dos registradores após a busca do operando 07D

Execução de Instrução◦A ULA recebe o primeiro operando da

soma que está no acumulador ULA 1A7

◦O conteúdo do RDM (segunda parcela da soma) é colocado no ACC ACC RDM

◦A ULA recebe a segunda parcela da soma ULA ACC

Ciclo de Instrução ADD op - 09

1A707D 1A7 07D

UC D I

1B4 3B5

03 04 3B5 07D

03 B5

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

◦ A UC comanda a ULA para realizar a adição dos dois valores 1A7 + 07D = 224

◦ O resultado da adição é colocado no ACC ACC 224

Ciclo de Instrução ADD op - 11

Valores dos registradores após a execução da instrução 3B5

ULA 07D 224

UC D I

1B4 3B5

03 04 3B5 07D

03 B5

ACC CI RDM

REMRI

1B43B5

1A707D

00010203

B4B5B6

FF

Barramento de controle

CPU MP

top related