instruções de máquina. operação básica (primitiva) que o hardware é capaz de executar...
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