Baixe o app para aproveitar ainda mais
Prévia do material em texto
ULA Unidade Lógica e Aritmética OPERAÇÕES TÍPICAS Operando A Operando B Aritméticas: Resultado ← A + B ( 000 ) Resultado ← A - B ( 001 ) Lógica : Res d B ( 010 ) Resultado ← u B ( 011 ) Resultado ← A ( 100 ) Controle ULA FLAG Resultado Arquitetura simplificada de uma ULA A ULA B Barramento de Controle FLAG 8 vias 8 vias N Z P 8 vias 8 vias 3 vias Out_Rest CLK BCLK A Out A 8 vias O C ultado ← A an A o ESTRUTURA BÁSICA DE UM SISTEMA DE COMPUTAÇÃO Computador CLOCK Memória Principal UC ULA U C P Registradores Entrada Saída DIAGRAMA DO FLUXO DE DADOS E CONTROLE CLOCK ÁREA DE PROGRAMAS Memória Principal UC ULA U C P Reg Saída ÁREA DE DADOS a DE CONTROLE DE DADOS FLUXO FLUXO Entrad BARRAMENTOS BARRAMENTO DE CLOCK Saída CONTROLE DADOS ENDEREÇOS R D M R E M Reg ULA UC Memória Principal MP U C P Entrada Formato da Instrução Instrução : Forma SIMBÓLICA padronizada para informar a UCP ou mais especificamente a Unidade de Controle - UC qual a operação a ser executada e onde estão os dados na memória . Ex.: OperandosCódigo da Instrução Código da Instrução : Subconjunto de bits que identifica a instrução e informa a unidade de controle qual procedim eve ser executado ( qua Operandos : Subconjunto de bits qu para a execução da Inst Endereçamento Endereçamento os Instrução de 3 operandos : 1 o Código da Instrução | Código de Operação | Ende | Op. Code | Oper Exemplo Resp A + B | ADD | Soma o conteúdo do endereço 1 o Operand A FLAGS o ento d e informa a unidade de controle onde estão os dados necessários rução . onsta cc 10 + 25 ) os en osições de memórias onde estão realmente dados . ( Ex. : Acc Endereço_A + Endereço_B ) 3 o Operando 2 o OperandoOperando reço do 1 o | Endereço do 2 o | Endereço do 3 o | ando | Operando | Operando | ( Formato simbólico usado em algoritmos) Endereço A | Endereço B | Endereço Resp | A com o conteúdo do endereço B e coloca o resultado no endereço Resp o 2 o Operando B U L A Microcomandos da UC Sinais com 0 e 1 O 3 perando Resp Ativida - 2 leitu - 1 escri Direto : São c Indireto : São ntes . ( Ex. : A dereços das p is Microinstruções ) . de na memória : ra na memória ta na memória Instrução de 2 operandos : 2 o Operando 1 o OperandoCódigo da Instrução | Código de Operação | Endereço do 1 o | Endereço do 2 o | | Op. Code | Operando | Operando | Exemplo A A + B | ADD | Endereço A | Endereço B | Soma o conteúdo com o endereço B e coloca o resultado no endereço A FLAGS Atividade na memória : - 2 leituras na memória (A e B) - 1 escrita na memória (A) Instrução de 1 operandos : | Código de Operação | Endereço do 2 o | | Op. Code | Operando | Exemplo Acc Acc + ( Uso do registr cc ) | ADD | Soma o conteúdo acumulador Acc FLAGS U L A 1 o Operando A 2 o Operando B Microcomandos da UC Sinais com 0 e 1 OperandoCódigo da Instrução 1 o Operand Acc B Endereço B | dor A teúdo do endereço B e coloca o resultado no próprio Atividade na memória : - 1 leitura na memória ( B ) U L A Microcomandos da UC Sinais com 0 e 1 o 2 o Operando B do Acumula cc com o con ador Acumulador - A do endereço A o conteúdo d Instrução de 1 operandos : (continuação) OperandoCódigo da Instrução | Código de Operação | Endereço do operando | Exemplo : Se Acc = 0 então vá para Endereço A (ou If Acc = 0 then goto Endereço A ) | JMPZ | Endereço A | Desvia ( Jump - pula ) para o endereço A se o acumulador Acc for zero . Desvio condicional . Operação : O conteúdo do acumulador Acc e armazenado no próprio acumulador. Acc Acc Desta forma ao passar o conteúdo do Acumulador por dentro da ULA , esta irá testar os bits do acumulador , alterando os bits de FLAG. A Uni- dade de controle recebe o resultado do teste (V ou F ) e desvia se for verdade. FLAGS Atividade na memória : - 1 leitura na memória .Lê o Ende- U L A Microcomandos da UC Sinais com 0 e 1 1 o Operando Acc Z = ? Não é Usado reço para desvio se houver . Instrução SEM operando : Código da Instrução | Código de Operação | Exemplo : | INC | Incrementa o acumulador Acc e armazena o resultado no próprio acumulador. Acc Acc + 1 FLAGS Atividade na memória : U L A Microcomandos da UC Sinais com 0 e 1 1 o Operando Acc Não é Usado - nenhuma Comprimento das Instruções O Tamanho de uma instrução depende de : - Formato da Instrução - Nenhum, um , dois ou três operandos . - Comprimento dos Registradores ( número de bits da Palavra ) - Comprimento das Células de memória ( número de bits da Célula ) Instrução de 1 palavra 11 8 7 4 3 0 R2 R7 Cod. Oper.MOVE R7 , R2 R7 M (R2) R = Registradores Ex.: 372H 3H 7H 2H 0 0 1 0 0 1 1 10 0 1 1. Instrução de 2 palavra MOV_I End_A Exemplo : Acc Memo( End_A ) M P Endereço 7 0 Conteúdo MOV_I 0H 32H End_A 1H 51H 2H : 51H 02H Instrução de 3 palavra 52H 04H 53H 07H MOV_I End_A , End_B MP Cód. de Operação. Endereço A 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 End_A Memo(End_B) Ex.: Endereço 7 0 Conteúdo MOV_I 0H 32H End_A 1H 51H End_B 2H 53H 0 1 1 1 0 0 1 0 0 1 0 1 0 0 0 1 0 0 1 1 0 0 1 0 Endereço B Endereço A Cód. de Operação. ADD_I End_A , #Dado Ex.:End_A Memo(End_A ) + #Dado MP Endereço 7 0 Conteúdo ADD_I 0H 23H Cód. de Operação. End_A 0H 51H 15H 0H 15H 0 0 0 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 1 #Dado Endereço A Unidade de Controle - UC É um conjunto de CIRCUITOS LÓGICOS responsáveis pelo CONTROLE da execução das instruções . Suas principais funções são : - Controlar a BUSCA da INSTRUÇÃO na memória principal - MP . - Determinar qual instrução deve ser executada. Para isto, a Unidade de Controle DECODIFICA o CÓDIGO da INSTRUÇÃO ou código de operação - Op. Code . - Incrementar o Contador de Programa , preparando-se para buscar a próxima instrução ou operando no Ciclo de Máquina seguinte. - Geração SEQÜENCIAL de todos os sinais de controle necessários para a execução da instrução. Para controlar a execução das instruções a UC utiliza registradores especiais da UCP : RI - Registrador de Instrução - Armazena a instrução a ser executada . PSW - Registrador de Estados - Armazena as informações importantes ao funcionamento da ( Program Satus Word ) UCP . São geralmente bits . Os mais importantes são os FLAGS (Bandeiras) que informa o estado lógico de deter- minadas operações que ULA executa . os principais são: N - Negativo - Igual a 1 , informa se o operando é negativo . Z - Zero - Igual a 1 , informa se o operando é zero . O - Overflow - Igual a 1 , informa se a operação resultou em um erro de representação de ponto flutuante. C - Carry - Igual a 1 , informa se na ultima operação ocorreu um transporte ( Vai UM ) . P - Paridade - Igual a 1 , informa se o operando tem paridade par. PC - Contador de Programas - Armazena o endereço da próxima instrução ou do operando a ( Program Counter ) ser buscado na Memória Principal -MP SP - Contador de Pilha - Armazena o endereço do TOPO da PILHA . ( Stack Pointer ) Execução de Instruções Para simplificar podemos dividida execução de uma instrução em duas fases . BUSCA EXECUÇÃO Fase de BUSCA : Busca na MP a instrução ou operando endereçado pelo PC Fase de EXECUÇÃO : Armazena no RI a instrução, decodifica a instrução , incrementa o PC , gera os sinais de controle e executa a operação solicitada. Para a execução de uma instrução devemos proceder as seguintes CICLO DE INSTRUÇÃO : CICLO DE EXECUÇÃO DE DIFICAÇÃO DO CÓDIGO DA OPERAÇÃO BU A PRÓ MA INSTRUÇÃO SIM BUSCA E ARMAZENA OPERANDOS PC PC + 1 Início CICLO DE BUSCA NÃO TEM OPERANDO a PC PC + 1 F I M EXECUÇÃO INSTRUÇÃO CO SCA XI Fase de BUSCA : Busca na Memória Principal MP a instrução no endereço apontado por PC. REM Memo ( PC ) Fase de Incrementa PC : Enquanto a memória esta localizando a instrução a UC esta incrementando PC. PC PC + 1 No final desta fase recebe os dados da memória . RDM Memo ( REM ) Fase de DECODIFICAÇÃO : Armazena no RI a instrução armazenada em RDM. RI RDM . Decodifica a instrução , gerando os sinais de controle necessários para Busca de Operando ou Execução. SE ( tem operando ) , Então Busca e Armazena operando. SE NÃO for uma operando só pode ser instrução. Segue para fase de execução . Fase de EXECUÇÃO : Executa a Instrução , gerando os sinais de controle para UC disponíveis no registrador PSW ou FLAG. Dependendo da instrução a informação processada e devolvida para a MP no endereço armazenado em REM. Memo ( REM ) RDM Ciclo de Máquina : é uma seqüência de passos ou operações simples (microoperações) que são executados para realizar uma operação Simbólica mais complexa . OBS.: Quando é executado uma Instrução Simbólica complexa é necessário um ou vários ciclos de máquina para realizar esta instrução. O ciclo de máquina pode ser dividido em Ciclo de Acesso e Ciclo de Exceção . Ciclo de Acesso : Correspondem a acessos externos da UCP , ou seja , acesso a memória principal (escrita ou leitura ) e acesso a dispositivos de entrada e saída de dados ( dependente da arquitetura do Sistema de Computação) . Ciclo de Exceção: Corresponde a todas operações internas a UCP necessárias para executar a operação solicitada. Podem gerar erros de processamento ou sinais de controle FLAG . Também os podem atender aos pedidos de interrupção de execução internos ou externos . Exemplos de execução de instruções Exemplo : STA End_A M P Endereço 7 0 Conteúdo End_A Memo(Acc ) STA 31H 48H End_A 32H 61H ADD 33H ....32H 3 34H ....03H 35H ....62H : 61H 02H 62H 04H 63H 07H 1 o Ciclo de Máqu Acc FLAGS Cód. de Operação. Endereço A 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 20 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 Clock 1 2 3 ina Rg R R U L A 1 Microoperação REM Memo PC PC + RDM Memo RI Memo End_B PC R I 3 DM Unid. Controle Sinais com 0 e 1 48H 48H 31H (PC) 1 (REM) (RDM) MP 1 EM 2 31H 02H 61H 48 H 31H 32H 61H 2 o Ciclo de Máquina MP PC 1 Acc Rg REM FLAGS RI ___ R 2 Clock Microoperação Após a execução do 2O ciclo U L A 201 trole Sinais com 0 e 1 61H 32H 32H 61H 32H 31H 02H 61H 48 H 1 REM Memo (PC) REM = PC = 32H 2 PC PC + 1 PC = 33H RDM Memo (REM) RDM = 61H 3 Rg Memo(RDM) Rg = 61H 3 o Ciclo de Máquina MP PC 1 Acc Rg REM FLAGS RI R 3 Clock U L A 201 ntrole Sinais com 0 e 1 61H 61H 33H 48 H 61H 31H 32H 61H 201H 1 2 3 2 Microoperação Após a execução do 2O ciclo REM Memo (Rg) REM = 61H RDM Memo Memo(REM) DM 201H Unid. Co (Acc) Memo(RDM) 48H 3 DM 61H Unid. Con 48H RDM = 201H Endereço 61H recebe 201H Exemplo: ADD #3 , X Simbólico M P Endereço 7 0 Conteúdo X ( X ) + 3 STA 31H 48H End_X ( End_X ) + 3 End_A 32H 61H ADD 33H ....43H 3 34H ....03H X 35H ....62H : 61H 02 H O Ponteiro da variável X X 62H 07 H é endereço 62H 63H 25 H 1 o Ciclo de Máquina - Busca do código de instrução (op code ) MP Acc FLAGS Cód. de Operação. End Operando A 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 End Operando B 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 0 1 0 0 0 Clock 1 2 3 1 43 H 61 H 32H 33H 201 Rg R R U L A Microoperação REM Memo PC PC + RDM Memo RI Memo 61 H R I 3 DM Unid. Controle Sinais com 0 e 1 43 H 43 H 33 H (PC) 1 (REM) (RDM) PC EM 2 33 H 07H 62 H 03 H 62H 35H 34H REM = PC = 32 H PC = 34 H RDM = 43 H RI = 43 H 2 o Ciclo de Máquina - leitura do 1o Operando MP PC 1 Acc Rg REM FLAGS RI 3 RDM 2 Clock Microoperação 1 REM Memo REM = PC = 34 H 2 PC PC + 1 PC = 35 H RDM Memo (REM) RDM = 03 H 3 Acc Memo(RDM) Acc = 03 H 3 o Ciclo de Máquina - leitura do 2o Operando MP PC 1 Acc Rg REM FLAGS RI 3 RDM 2 Clock 1 U L A 03 H Unid. Controle 0 e 1 61 H 34 H 43 H 34 H 61 H 43 H 07H 32H 33H 62H 03 H 62 H 34H 35H U L A 03 H Unid. Controle 0 e 1 62 H 35 H 43 H 35 H 61 H 43 H 07H 32H 33H 62H 03 H 62 H 34H 35H 2 3 Microoperação REM Memo REM = PC = 35 H PC PC + RDM Memo Rg Memo 62 H Sinais com 1 (REM) (RDM) (PC) 03 H Sinais com (PC) PC = 36 H RDM = 62 H Rg = ( RDM ) = 62 H 4 o Ciclo de Máquina - leitura do conteúdo 2o Operando MP 1 PC Acc Rg REM FLAGS RI RDM 2 Clock Microoperação 1 REM Memo REM = Rg = 62 H 2 RDM Memo (REM) RDM = 07 H 3 Rg Memo(RDM) Rg = 03 H 4 Acc ( Acc ) + ( Rg ) Acc = 0A H 5 o Ciclo de Máquina - Armazenagem do resultado ( escrita ) MP PC Acc Rg REM FLAGS RI RDM 2 Clock 1 U L A 03 H trole 0 e 1 07 H 62 H 43 H 36 H 61 H 43 H 07H 32H 33H 62H 03 H 62 H 34H 35H U L A 0A trole 0 e 1 07 H 62 H 43 H 35H 36 H 61 H 62 H 03 H 43 H 0A H 32H 34H 33H 62H 1 2 3 ( R 3 Microoperação REM Memo (REM) REM = 62 H RDM Memo EM ) Memo 62 H Unid. Con Sinais com ( Acc ) (RDM) 3 07 H Unid. Con Sinais com ( Rg ) RDM = Acc = 0A H (REM) = 0A H _____ o Ciclo de Máquina -___________________________ MP PC Acc Rg REM FLAGS RI RDM Clock Microoperação U L A ___H Unid. Controle 0 e 1 ____ ___H ______ H ________ H 55 H AB H 46 H A7 H 55H 56H B2 H 43 H 57H 58H 03 HA7H 54H 1 __ ______ ________ _____ _______________ __ ____ __ ______ _____________________ _______________ ___ ____ ____________________________________ _______________ ___ ____ ____________________________________ _______________ __ ____ ____________________________________ ________________________ _____ o Ciclo de Máquina -___________________________ MP PC Acc Rg REM FLAGS RI RDM Clock U L A ___H Unid. Controle 0 e 1 ____ ___H ______ H ________ H 55 H AB H 46 H A7 H 55H 56H B2 H 43 H 57H 58H 03 HA7H 54H 1 __ ____ __ ____ ______ ____ ______ ____ ______ Microoperação ______ ________ _____ _______________ __ ______ _____________________ _______________ __ ____ ____ _________________ _________________ _________________ ________ H ___ ___ Sinais com _____________ _____________ _____________ ________ _______________ ___ _______________ _______________ ______ _______ _______ 0A H B2H __ _______ ____ ____ ________ H ___ ___ Sinais com ________ ______ ______ _______ 0A H B2H _______ _________ Conjunto de Instruções Algoritmo Linguagem de máquina Código de Máquina Número de Bytes A A + B ADD (End_A),(End_B) 0000 0001 ( 01H) 03 A A - B SUB (End_A),(End_B) 0000 0010 ( 02H) 03 A A * B MUT (End_A),(End_B) 0000 0011 ( 03H) 03 A A / B DIV (End_A),(End_B) 0000 0100 ( 04H) 03 A B MOV (End_A),(End_B) 0000 0101 ( 05H) 03 A Acc MOV (Endereço_A) 0000 0110 ( 06H) 02 Acc A LDA ( Endereço_A) 0000 0111 ( 07H) 02 Ler Dado do teclado e colocar no Buffer de Entrada – BE RED 0000 1000 ( 08H) 01 Enviar para impressora o con- teúdo do Buffer de Saída – BS WRT 0000 1001 ( 09H) 01 Se (Acc = 0) Então vai para Endereço Senão continua JZ (Endereço) 0000 1010 ( 0AH) 02 Vai para endereço JMP (Endereço) 0000 1011 ( 0BH) 02 Acc Acc + 1 INC 0000 1100 ( 0CH) 01 Acc Acc - 1 DEC 0000 1101 ( 0DH) 01Acc 0 CLR 0000 1110 ( 0EH) 01 Acc Acc INV 0000 1111 ( 0FH) 01 Para o programa HLT 1111 1111 ( FFH) 01 Número de
Compartilhar