·
Engenharia de Software ·
Arquitetura de Computadores
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
2
Análise de Escalonamento e Desempenho em Sistemas de Memória Cache
Arquitetura de Computadores
UNIFACS
1
Exercícios de Sistemas de Numeração e Conversões de Bases
Arquitetura de Computadores
UNIFACS
32
Memória Virtual e Paginação em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
104
Aula 2 Organizacao de Computadores - Evolucao e Geracoes dos Computadores
Arquitetura de Computadores
UNIFACS
1
Programa LMC para Somar A e B e Imprimir Resultado
Arquitetura de Computadores
UNIFACS
1
Exercícios de Operações Aritméticas em Sistemas de Numeração
Arquitetura de Computadores
UNIFACS
19
Estrutura dos Sistemas Operacionais - Parte 03
Arquitetura de Computadores
UNIFACS
23
Introdução aos Processos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
1
Links da Aula LMC - Versão WEB e Tutorial
Arquitetura de Computadores
UNIFACS
3
Atividades Práticas de Simulação com Escalonamento Circular no SOsim
Arquitetura de Computadores
UNIFACS
Texto de pré-visualização
E Tudo começa com a Álgebra booleana George Boole filósofo e matemático inglês do século XIX Inventou uma lógica para raciocínio lógico de proposições Em 1932 Shannon descobriu a aplicação desta álgebra nos circuitos lógicos 1 George Boole Álgebra de Boole 2 Presente em Implementação de circuitos digitais e Desenvolvimento de códigos computacionais Variável lógica ou booleana Aceso ou apagado Ligado ou Desligado 1 ou 0 Aberto ou fechado Verdadeiro ou falso Representação Uma função lógica pode ser representada por Expressão algébrica FAB A and B Tabela verdade Símbolo ou circuito lógico 3 Tabela verdade Circuito lógico A B X 0 0 0 0 1 0 1 0 0 1 1 1 Função AND Produto lógico F ABCN ABCN F ABCN 1 se e somente se ABCN1 4 A B F 0 0 0 0 1 0 1 0 0 1 1 1 Tabela verdade Circuito lógico Função OR Outra Analogia Soma lógica F ABCN ABCN F ABCN 1 se e somente se A1 ou B1 ou C1 ou N1 5 A B F 0 0 0 0 1 1 1 0 1 1 1 1 Tabela verdade Circuito lógico A F B Função NOT LigaDesliga Negação F A A F A A 6 A F 0 1 1 0 A F Tabela verdade Circuito lógico Outras funções lógicas 7 NAND NOR OR Exclusivo XOR Função XOR OR exclusivo F AB A B F AB 1 se e somente se A B F AB 1 se A 0 e B 1 ou se A 1 e B 0 F AB AB AB 8 B A X A B X 0 0 0 0 1 1 1 0 1 1 1 0 Tabela verdade O XOR é um comparador A saída é verdadeira se e somente se as duas entradas são diferentes 9 Escrevendo o XOR usando andornot p q p q p q x y x yxy x y xy 1 1 0 1 0 1 0 1 1 0 0 0 x y xy xy xy xyxy Uma primeira utilidade 1 0 Como fazemos para somar dois números binários 11 10 10 01 01 01 00 00 Considere o bit menos significante qual é a lógica sugerida aqui Uma primeira utilidade 1 1 Como fazemos para somar dois números binários 11 10 10 01 01 01 00 00 Considere o bit menos significante qual é a lógica sugerida aqui XOR 12 Como somar dois números binários Considere a adição de dois números de 1bit x e y 00 0 01 1 10 1 11 10 Carry x AND y Soma x XOR y O circuito que faz esta computação é chamado halfadder x y Carry Sum 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 13 O halfadder Soma x XOR y Carry x AND y x y Sum Carry x y Sum Carry x y Carry Sum 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 14 Usando half adders Podemos usar o halfadder para computar a soma de dois números booleanos 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 15 Como completar o circuito Full Adder Criar um adder que agregue o carry bit como entrada adicional Inputs x y carry in Outputs sum carry out Chamado de full adder Adiciona x e y com o halfadder Adiciona a soma com o carry in Sobre carry out 1 se xy 10 xy 01 e carry in 1 x y c carry sum 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 16 HA X Y S C HA X Y S C x y c c s HA X Y S C HA X Y S C x y c O Full Adder As caixas HA são halfadders x y c s1 c1 carry sum 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 s1 c1 17 Full adder O circuito completo de full adder x y s c c 18 Adicionando números maiores nbit Basta encadear e juntar os full adders HA X Y S C FA C Y X S C FA C Y X S C FA C Y X S C x1 y1 x2 y2 x3 y3 x0 y0 s0 s1 s2 s3 c Adicionando números ainda maiores Um half adder possui 4 portas lógicas Um full adder possui dois half adders e um OR gate Total de 9 portas lógicas Para adicionar números n bit é necessário 1 HA e n1 FAs Para adicionar números de 32 bits é necessário 1 HA e 31 FAs Total de 4931 283 portas lógicas Para adicionar números de 64 bits é preciso 1 HA e 63 FAs Total de 4963 571 portas lógicas 19 Somadores Multiplicadores Divisores Comparadores Codificadores Decodificadores Timers Árbitros Armazenadores Multiplexadores Demultiplexadores Imaginando os circuitos no interior do processador Nada mais são que portas Lógicas 20 ALU CONTROLE Lógica Sequencial 21 O que é isto Um Contador Para ver como pode ser implementada a expressão x y podemos computar alternativamente a expressão x y Da aritmética binária sabese que para negar um número aplicase a regra de inverter todos os bits e somar 1 Desta forma a expressão pode ser computada mais simplesmente como x invy 1 Sendo assim é suficiente inverter todas as entradas do segundo operando e implementar o somador de 1 É simples Use o circuito somador e uma propriedade da aritmética binária Como construir a subtração 22 Será que funciona Exemplo 128 15 Em binário 128 é 0 1000 0000 Em binário 15 é 0 0000 1111 Aplicando a regra da inversão teremos 1 1111 0000 Agora façamos a soma de 1 O valor 15 nos dá 1 1111 0001 Somemos agora para ver quanto dá 0 1000 0000 1 1111 0001 0 0111 0001 O que nos dá em decimal O valor de 113 Multiplicadores 24 httpwwwelectronicshuborgbinarymultiplication E os divisores Este já é um pouco mais complexo de implementar O porquê da Arbitragem No caso de circuitos eletrônicos multiplexadores podem exercer a função de seleção para habilitação de acesso Os sinais de seleção podem ser conjugados com lógica de arbitragem que pode exercer um critério para prioridade de acesso exclusivo a um recurso por um determinado período Os critérios para a seleção de acesso podem ser baseados em prioridades fixas ou tão flexíveis quanto o propósito do implementador tais como prioridade hierárquica roundrobin etc 26 27 Building Blocks Vimos até agora alguns dos principais blocos construtores que podem ser implementados com portas lógicas são eles Somadores Subtradores Multiplicadores Deslocadores Codificadores Decodificadores Contadores Priorizadores Armazenadores ie registradores Divisores e Multiplexadores Com base nestes blocos é que é possível construir a inteligência implementada na ALU e a lógica de Controle da CPU por meio de máquinas de estado sequenciais e lógica combinatória encadeadas e entrelaçadas Atividades Implementad as pela ALU e o Controlador Somar Subtrair Multiplicar Dividir Contar Arbitrar Comparar Incrementar e Decrementar Deslocar Empilhar e Desempilhar Codificar e Decodificar Multiplexação e Demultiplexação 28 Sumário A Unidade Lógica Aritmética ALU realiza as funções aritméticas tais como Soma Multiplicação Divisão Multiplicação Comparação A unidade de Controle realiza as funções de Multiplexação Contagem Codificação Decodificação Arbitragem do acesso ao barramento Os operandos ficam armazenados em memórias adjuntas ao processador isto é os denominados registradores Registradores especiais se encarregam de registrar os estados flags exemplo overflow resultado de comparaçãoetc Desta forma vimos que todos os elementos de controle registro e operações é implementado com circuitos que implementam lógica booleana Elementos como flipflops registram os estados e suas mudanças em uma cadência ditada pelo relógio clock a máquina de estado 29 INPUT DATA B INPUT DATA A STATUS FLAGS V Overflow has occurred N Negative Result Z Zero Result C Carry 1 CARRY LOGIC RESULT 2s COMPLEMENT NOTATION 1 Load binary input data as required 2 Set up Control Word 3 Click CK button for result Cin AA B0 BB 1Cin RL SHIFTLE ROTATE CLC CONTROL WORDS ADD CARRY ABCin 11100001 SUBTRACT AB 11010001 NEGATE 2s Comp 00110001 INCREMENT A1 10110001 DECREMENT A1 11000001 SHIFT LEFT with carry 10100101 ROTATE LEFT with carry 11100111 ROTATE RIGHT 11101110 Roteiro da Aula 2 1Ciclos de Instrução 2 Interrupção 3Barramento 4 Pipeline 5 Trabalhos e Outros O que discutimos até o momento A concepção e a ideia primordial da computação A evolução do computador e suas tecnologias associadas A Arquitetura de Von Neumann As células e tecidos e órgãos do computador e sua analogia com portas lógicas Os blocos construtores essenciais e sua relação com a lógica Vimos até o momento que computadores são estruturas que possuem funções organizadas de tal forma a executar tarefas como cálculos aritméticos e lógicos ditados pela busca de instruções e dados compreendendo o armazenamento de resultados como uma máquina cíclica associada a um relógio interno A Arquitetura de Computadores compreende a forma como estas estruturas são organizadas a fim de executar tarefas previstas pelos projetistas para atender aos propósitos dos usuários começando pelo programador Estes propósitos estão ligados a transações registros serviços e comunicação Componentes dos Computadores Projetos Contemporâneos de computador ainda são baseados nos conceitos desenvolvidos por John von Neumann no Institute for Advanced Studies Princeton Referenciado como the von Neumann Architecture e é baseado em três conceitos chave Dados e instruções são armazenados em uma memória de leituraescrita única O conteúdo desta memória é endereçável por localização sem distinção de tipo de dados ali contidos A execução ocorre em uma forma sequencial a menos que explicitamente modificado de uma instrução até a próxima 2016 Pearson Education Inc Hoboken NJ All rights reserved PC MAR IR MBR IO AR IO BR CPU Main Memory System Bus IO Module Buffers 0 1 2 n 2 n 1 Instruction Instruction Instruction Data Data Data Data Figure 32 Computer Components TopLevel View IO AR IO BR PC Program counter IR Instruction register MAR Memory address register MBR Memory buffer register Inputoutput address register Inputoutput buffer register Execution unit 2016 Pearson Education Inc Hoboken NJ All rights reserved Barramento Interno de CPU e System Bus Barramento de Sistema Control Unit Registers Arithmeti c and Boolean Logic Complementer Internal CPU Bus Shifter Status Flags Figure 142 Internal Structure of the CPU Arithmetic and Logic Unit Control Paths 2016 Pearson Education Inc Hoboken NJ All rights reserved Figure 141 The CPU with the System Bus Control Data Address Bus Bus Bus System Bus ALU 2016 Pearson Education Inc Hoboken NJ All rights reserved Registers Control Unit Organização do Processador Requerimentos do Processador Fetch instruction O processador bulê uma instrução da memória cache memória principal Interpretar instrução A instrução é decodificada para determinar qual ação é requerida Fetch de dados A execução de uma instrução requer a leitura de dados da memória ou de um módulo de IO Processar dados A execução de uma instrução requer realização de alguma operação aritmética ou lógica sobre dados Escrever Dados Os resultados de uma execução requererem a escrita dos dados em memória ou em um módulo de IO De forma a realizar estas tarefas o processador precisa armazenar alguns dados temporariamente e desta forma necessita de uma pequena memória interna 2016 Pearson Education Inc Hoboken NJ All rights reserved Ciclo Básico de Instrução STAR T HAL T Fetch Next Instruction Fetch Cycle Execute Cycle Execute Instruction 2016 Pearson Education Inc Hoboken NJ All rights reserved Fetch Cycle No início de cada ciclo de instrução o processador busca fetches uma instrução da memória O program counter PC mantém o endereço da próxima instrução a ser adquirida fetched next O processador incrementa o PC após cada fetch de instrução de forma que irá capturar fazer o fetch de cada instrução de forma a adquirir a próxima instrução em sequência A instrução buscada é carregada no instruction register IR O processador interpreta a instrução e realiza a ação requisitada 2016 Pearson Education Inc Hoboken NJ All rights reserved Categorias de Ação O processador pode realizar alguma operação aritmérica ou lógica sobre dados Uma instrução pode especificar que a sequência de execução seja alterada Dados transferidos depara um dispositivo periférico transmitindo entre o processador e um módulo de IO Dados transferidos do processador para a memória ou da memória para o processador Processor memory Processor IO Data processin g Control 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Ciclo de Instrução Inclui os seguintes estágios Fetch Busca Ler a próxima instrução da memória para o processador Execução Interpretar o opcode e realizar a operação indicada Interrupção Se habilitada no caso de interrupção armazenar o estado do processo corrente e atender a interrupção 0 3 4 15 Opcode Address a Instruction format 0 1 15 S Magnitude bInteger format Program Counter PC Address of instruction Instruction Register IR Instruction being executed Accumulator AC Temporary storage cInternal CPU registers 0001 Load AC from Memory 0010 Store AC to Memory 0101 Add to AC from Memory dLita Parcial de Opcodes Figure 34 Characteristicsof a Hypothetical M achine 2016 Pearson Education Inc Hoboken NJ All rights reserved Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Perguntas Em Step 1 em que parte interna do Processador é colocada a parte endereço contida em IR Em Step 1 Quem é que interpreta o valor 1 presente no IR Em Step 2 Em que parte interna do processador é colocado o conteúdo da posição de memória 940 antes do mesmo ir para o Acumulador Por que é necessária esta leitura intermediária 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 Example Addressing Modes The following examples use the following piece of computer memory Location 0 1 2 3 4 5 6 Value 17 3 Immediate addressing supplies the actual value and is normally prefixed with a LD Acc 5 Load the actual value 5 into the accumulator Ax becomes 5 Direct addressing uses the number as a memory location where the value is stored LD Acc 5 Load the value in memory location 5 into the accumulator Ax becomes 3 Indirect addressing uses the value as a memory location that points to the memory location that holds the value In this case the number is usually enclosed with square brackets LD Acc 5 Load the value stored in the memory location pointed to by the operand into the accumulator Memory location 5 is accessed which contains 3 Memory location 3 is accessed which is 17 Ax becomes 17 Organização dos Registradores de Trabalho 2016 Pearson Education Inc Hoboken NJ All rights reserved Possibilitam ao programador em linguagem assembly ou de máquina minimizar referências à memória principal por intermédio do uso otimizado dos registradores Usados pela unidade de controle para controlar o processador e por programas privilegiados do Sistema operacional para controlar a execução de outros programas UserVisible Registers Control and Status Registers Dentro do processador existe um conjunto de registradores que funcionam como um nível de memória acima da memória principal e da cache hierarquicamente Os registradores no processador exercem dois papéis UserVisible Registers Registradores exclusivos da CPU Executam funções que não são visíveis para o Usuário Propósito Geral Pode ser atribuído a uma variedade de funções pelo programador Dados Pode ser usado apenas para guardar dados e não pode ser empregado no cálculo de endereço de um operando Endereço Pode ser de alguma forma de propósito geral ou ser devotado a um modo de endereçamento particular Exemplos ponteiros de segmento registradores de índice stack pointer Condition codes Também chamados de flags Bits estabelecidos pelo hardware do processador como resultado de operações Categorias 2016 Pearson Education Inc Hoboken NJ All rights reserved Referenciados por meio de linguagem de máquina que o processador executa Exemplo de Registradores de Trabalho visíveis para o programador ADD AX 5 MOV BX 5 MUL AX BX São internos da CPU e podem ser referenciados pelo usuário em programa Registradores exclusivos para funções da CPU não são visíveis diretamente para o programador MAR MBR PC IR etc As ações determinadas pelo programador é que são transpostas para estes registradores mas os mesmos não são referenciáveis diretamente em programa Apenas o microcódigo interno da CPU os referencia ativando sinais elétricoslógicos Registradores de Controle e Status Quatro registradores são essenciais para a execução de instruções Program counter PC Contém o endereço da uma instrução a ser buscada fetched Instruction register IR Contém a instrução mais recente capturada fetched Memory address register MAR Contém o endereço de uma localidade em memória Memory buffer register MBR Contém uma palavra de dados a ser escrita em memória ou a palavra que foi lida mais recentemente ou que será lida 2016 Pearson Education Inc Hoboken NJ All rights reserved Program Status Word PSW Registrador ou conjunto de registradores que contêm informação de status Campos comuns ou flags incluem Sign Zero Carry Equal Overflow Interrupt EnableDisable Supervisor 2016 Pearson Education Inc Hoboken NJ All rights reserved Exemplos de Arquitetura Regitradores internos dos processadores recebem nomes No caso da Intel os nomes foram sendo herdados ao longo das gerações de processadores desde o primeiro processador de uso geral Um motivo para isto é manter a compatibilidade do código assembler com o acervo de programas legado Em processadores RISC mais recentes estes nomes podem ser mais genéricos 2016 Pearson Education Inc Hoboken NJ All rights reserved Program Status CS DS SS ES FLAGS Register Instruction Pointer a MC68000 Status register Program counter Program status A0 A1 A2 A3 A4 A5 A6 A7 b 8086 Instr ptr Flags Code Data Stack Extrat Stack ptr Base ptr Source index Dest index Accumulator Base Count Data Program status Segment c 80386 Pentium 4 Data registers General registers General Registers D0 AX EAX AX D1 BX EBX BX D2 CX ECX CX D3 DX EDX DX D4 D5 Pointers index ESP SP D6 SP EBP BP D7 BP ESI SI SI EDI DI Address registers DI Roteiro daAul a 1 Ciclos de Instrução 2 Interrupção 3 Barramento 4 Pipeline 5 Trabalhos e Outros Sequência de Instruções Por default o processador sempre tende a buscar a próxima instrução na próxima célula de memória Este é o comportamento normal do processador Ele tende a buscar a próxima instrução se nada mais for dito para ele Pergunta Que situações podem levar o processador a executar uma instrução que não esteja contígua ou seja de alguma forma saltar para algum outro lugar Interrupção O que é Para que serve E quem interrompe 29 Program Time r I O Hardware failure Generated by some condition that occurs as a result of an instruction execution such as arithmetic overflow division by zero attempt to execute an illegal machine instruction or reference outside a users allowed memory space Generated by a timer within the processor This allows the operating system to perform certain functions on a regular basis Generated by an IO controller to signal normal completion of an operation request service from the processor or to signal a variety of error conditions Generated by a failure such as power failure or memory parity error Table 31 Classes of Interrupts 2016 Pearson Education Inc Hoboken NJ All rights reserved Processamento da Interrupção Interrupções e Exceções Interrupções Geradas por um sinal de hardware e pode ocorrer de forma aleatória durante a execução de um programa Mascarável Não mascarável Exceções Geradas a partir do software e provocadas pela execução de uma instrução que provoque uma situação anômala Detectável pelo processador Programável Tabela de vetor de interrupção A cada tipo de interrupção é atribuído um número Este número é usado para indexar dentro da tabela de vetor de interrupção 2016 Pearson Education Inc Hoboken NJ All rights reserved 256 32bit interrupt vectors which is the address segment and offset of the interrupt service routine for that interrupt number Ciclo de Instrução com Interrupções START HALT Fetch Next Instruction Fetch Cycle Execute Cycle Interrupt Cycle Interrupts Disabled Interrupts Enabled Execute Instruction Check for Interrupt Process Interrupt 32
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
2
Análise de Escalonamento e Desempenho em Sistemas de Memória Cache
Arquitetura de Computadores
UNIFACS
1
Exercícios de Sistemas de Numeração e Conversões de Bases
Arquitetura de Computadores
UNIFACS
32
Memória Virtual e Paginação em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
104
Aula 2 Organizacao de Computadores - Evolucao e Geracoes dos Computadores
Arquitetura de Computadores
UNIFACS
1
Programa LMC para Somar A e B e Imprimir Resultado
Arquitetura de Computadores
UNIFACS
1
Exercícios de Operações Aritméticas em Sistemas de Numeração
Arquitetura de Computadores
UNIFACS
19
Estrutura dos Sistemas Operacionais - Parte 03
Arquitetura de Computadores
UNIFACS
23
Introdução aos Processos em Sistemas Operacionais
Arquitetura de Computadores
UNIFACS
1
Links da Aula LMC - Versão WEB e Tutorial
Arquitetura de Computadores
UNIFACS
3
Atividades Práticas de Simulação com Escalonamento Circular no SOsim
Arquitetura de Computadores
UNIFACS
Texto de pré-visualização
E Tudo começa com a Álgebra booleana George Boole filósofo e matemático inglês do século XIX Inventou uma lógica para raciocínio lógico de proposições Em 1932 Shannon descobriu a aplicação desta álgebra nos circuitos lógicos 1 George Boole Álgebra de Boole 2 Presente em Implementação de circuitos digitais e Desenvolvimento de códigos computacionais Variável lógica ou booleana Aceso ou apagado Ligado ou Desligado 1 ou 0 Aberto ou fechado Verdadeiro ou falso Representação Uma função lógica pode ser representada por Expressão algébrica FAB A and B Tabela verdade Símbolo ou circuito lógico 3 Tabela verdade Circuito lógico A B X 0 0 0 0 1 0 1 0 0 1 1 1 Função AND Produto lógico F ABCN ABCN F ABCN 1 se e somente se ABCN1 4 A B F 0 0 0 0 1 0 1 0 0 1 1 1 Tabela verdade Circuito lógico Função OR Outra Analogia Soma lógica F ABCN ABCN F ABCN 1 se e somente se A1 ou B1 ou C1 ou N1 5 A B F 0 0 0 0 1 1 1 0 1 1 1 1 Tabela verdade Circuito lógico A F B Função NOT LigaDesliga Negação F A A F A A 6 A F 0 1 1 0 A F Tabela verdade Circuito lógico Outras funções lógicas 7 NAND NOR OR Exclusivo XOR Função XOR OR exclusivo F AB A B F AB 1 se e somente se A B F AB 1 se A 0 e B 1 ou se A 1 e B 0 F AB AB AB 8 B A X A B X 0 0 0 0 1 1 1 0 1 1 1 0 Tabela verdade O XOR é um comparador A saída é verdadeira se e somente se as duas entradas são diferentes 9 Escrevendo o XOR usando andornot p q p q p q x y x yxy x y xy 1 1 0 1 0 1 0 1 1 0 0 0 x y xy xy xy xyxy Uma primeira utilidade 1 0 Como fazemos para somar dois números binários 11 10 10 01 01 01 00 00 Considere o bit menos significante qual é a lógica sugerida aqui Uma primeira utilidade 1 1 Como fazemos para somar dois números binários 11 10 10 01 01 01 00 00 Considere o bit menos significante qual é a lógica sugerida aqui XOR 12 Como somar dois números binários Considere a adição de dois números de 1bit x e y 00 0 01 1 10 1 11 10 Carry x AND y Soma x XOR y O circuito que faz esta computação é chamado halfadder x y Carry Sum 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 13 O halfadder Soma x XOR y Carry x AND y x y Sum Carry x y Sum Carry x y Carry Sum 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 14 Usando half adders Podemos usar o halfadder para computar a soma de dois números booleanos 1 1 0 0 1 1 1 0 0 1 0 1 0 0 1 1 15 Como completar o circuito Full Adder Criar um adder que agregue o carry bit como entrada adicional Inputs x y carry in Outputs sum carry out Chamado de full adder Adiciona x e y com o halfadder Adiciona a soma com o carry in Sobre carry out 1 se xy 10 xy 01 e carry in 1 x y c carry sum 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 16 HA X Y S C HA X Y S C x y c c s HA X Y S C HA X Y S C x y c O Full Adder As caixas HA são halfadders x y c s1 c1 carry sum 1 1 1 0 1 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 s1 c1 17 Full adder O circuito completo de full adder x y s c c 18 Adicionando números maiores nbit Basta encadear e juntar os full adders HA X Y S C FA C Y X S C FA C Y X S C FA C Y X S C x1 y1 x2 y2 x3 y3 x0 y0 s0 s1 s2 s3 c Adicionando números ainda maiores Um half adder possui 4 portas lógicas Um full adder possui dois half adders e um OR gate Total de 9 portas lógicas Para adicionar números n bit é necessário 1 HA e n1 FAs Para adicionar números de 32 bits é necessário 1 HA e 31 FAs Total de 4931 283 portas lógicas Para adicionar números de 64 bits é preciso 1 HA e 63 FAs Total de 4963 571 portas lógicas 19 Somadores Multiplicadores Divisores Comparadores Codificadores Decodificadores Timers Árbitros Armazenadores Multiplexadores Demultiplexadores Imaginando os circuitos no interior do processador Nada mais são que portas Lógicas 20 ALU CONTROLE Lógica Sequencial 21 O que é isto Um Contador Para ver como pode ser implementada a expressão x y podemos computar alternativamente a expressão x y Da aritmética binária sabese que para negar um número aplicase a regra de inverter todos os bits e somar 1 Desta forma a expressão pode ser computada mais simplesmente como x invy 1 Sendo assim é suficiente inverter todas as entradas do segundo operando e implementar o somador de 1 É simples Use o circuito somador e uma propriedade da aritmética binária Como construir a subtração 22 Será que funciona Exemplo 128 15 Em binário 128 é 0 1000 0000 Em binário 15 é 0 0000 1111 Aplicando a regra da inversão teremos 1 1111 0000 Agora façamos a soma de 1 O valor 15 nos dá 1 1111 0001 Somemos agora para ver quanto dá 0 1000 0000 1 1111 0001 0 0111 0001 O que nos dá em decimal O valor de 113 Multiplicadores 24 httpwwwelectronicshuborgbinarymultiplication E os divisores Este já é um pouco mais complexo de implementar O porquê da Arbitragem No caso de circuitos eletrônicos multiplexadores podem exercer a função de seleção para habilitação de acesso Os sinais de seleção podem ser conjugados com lógica de arbitragem que pode exercer um critério para prioridade de acesso exclusivo a um recurso por um determinado período Os critérios para a seleção de acesso podem ser baseados em prioridades fixas ou tão flexíveis quanto o propósito do implementador tais como prioridade hierárquica roundrobin etc 26 27 Building Blocks Vimos até agora alguns dos principais blocos construtores que podem ser implementados com portas lógicas são eles Somadores Subtradores Multiplicadores Deslocadores Codificadores Decodificadores Contadores Priorizadores Armazenadores ie registradores Divisores e Multiplexadores Com base nestes blocos é que é possível construir a inteligência implementada na ALU e a lógica de Controle da CPU por meio de máquinas de estado sequenciais e lógica combinatória encadeadas e entrelaçadas Atividades Implementad as pela ALU e o Controlador Somar Subtrair Multiplicar Dividir Contar Arbitrar Comparar Incrementar e Decrementar Deslocar Empilhar e Desempilhar Codificar e Decodificar Multiplexação e Demultiplexação 28 Sumário A Unidade Lógica Aritmética ALU realiza as funções aritméticas tais como Soma Multiplicação Divisão Multiplicação Comparação A unidade de Controle realiza as funções de Multiplexação Contagem Codificação Decodificação Arbitragem do acesso ao barramento Os operandos ficam armazenados em memórias adjuntas ao processador isto é os denominados registradores Registradores especiais se encarregam de registrar os estados flags exemplo overflow resultado de comparaçãoetc Desta forma vimos que todos os elementos de controle registro e operações é implementado com circuitos que implementam lógica booleana Elementos como flipflops registram os estados e suas mudanças em uma cadência ditada pelo relógio clock a máquina de estado 29 INPUT DATA B INPUT DATA A STATUS FLAGS V Overflow has occurred N Negative Result Z Zero Result C Carry 1 CARRY LOGIC RESULT 2s COMPLEMENT NOTATION 1 Load binary input data as required 2 Set up Control Word 3 Click CK button for result Cin AA B0 BB 1Cin RL SHIFTLE ROTATE CLC CONTROL WORDS ADD CARRY ABCin 11100001 SUBTRACT AB 11010001 NEGATE 2s Comp 00110001 INCREMENT A1 10110001 DECREMENT A1 11000001 SHIFT LEFT with carry 10100101 ROTATE LEFT with carry 11100111 ROTATE RIGHT 11101110 Roteiro da Aula 2 1Ciclos de Instrução 2 Interrupção 3Barramento 4 Pipeline 5 Trabalhos e Outros O que discutimos até o momento A concepção e a ideia primordial da computação A evolução do computador e suas tecnologias associadas A Arquitetura de Von Neumann As células e tecidos e órgãos do computador e sua analogia com portas lógicas Os blocos construtores essenciais e sua relação com a lógica Vimos até o momento que computadores são estruturas que possuem funções organizadas de tal forma a executar tarefas como cálculos aritméticos e lógicos ditados pela busca de instruções e dados compreendendo o armazenamento de resultados como uma máquina cíclica associada a um relógio interno A Arquitetura de Computadores compreende a forma como estas estruturas são organizadas a fim de executar tarefas previstas pelos projetistas para atender aos propósitos dos usuários começando pelo programador Estes propósitos estão ligados a transações registros serviços e comunicação Componentes dos Computadores Projetos Contemporâneos de computador ainda são baseados nos conceitos desenvolvidos por John von Neumann no Institute for Advanced Studies Princeton Referenciado como the von Neumann Architecture e é baseado em três conceitos chave Dados e instruções são armazenados em uma memória de leituraescrita única O conteúdo desta memória é endereçável por localização sem distinção de tipo de dados ali contidos A execução ocorre em uma forma sequencial a menos que explicitamente modificado de uma instrução até a próxima 2016 Pearson Education Inc Hoboken NJ All rights reserved PC MAR IR MBR IO AR IO BR CPU Main Memory System Bus IO Module Buffers 0 1 2 n 2 n 1 Instruction Instruction Instruction Data Data Data Data Figure 32 Computer Components TopLevel View IO AR IO BR PC Program counter IR Instruction register MAR Memory address register MBR Memory buffer register Inputoutput address register Inputoutput buffer register Execution unit 2016 Pearson Education Inc Hoboken NJ All rights reserved Barramento Interno de CPU e System Bus Barramento de Sistema Control Unit Registers Arithmeti c and Boolean Logic Complementer Internal CPU Bus Shifter Status Flags Figure 142 Internal Structure of the CPU Arithmetic and Logic Unit Control Paths 2016 Pearson Education Inc Hoboken NJ All rights reserved Figure 141 The CPU with the System Bus Control Data Address Bus Bus Bus System Bus ALU 2016 Pearson Education Inc Hoboken NJ All rights reserved Registers Control Unit Organização do Processador Requerimentos do Processador Fetch instruction O processador bulê uma instrução da memória cache memória principal Interpretar instrução A instrução é decodificada para determinar qual ação é requerida Fetch de dados A execução de uma instrução requer a leitura de dados da memória ou de um módulo de IO Processar dados A execução de uma instrução requer realização de alguma operação aritmética ou lógica sobre dados Escrever Dados Os resultados de uma execução requererem a escrita dos dados em memória ou em um módulo de IO De forma a realizar estas tarefas o processador precisa armazenar alguns dados temporariamente e desta forma necessita de uma pequena memória interna 2016 Pearson Education Inc Hoboken NJ All rights reserved Ciclo Básico de Instrução STAR T HAL T Fetch Next Instruction Fetch Cycle Execute Cycle Execute Instruction 2016 Pearson Education Inc Hoboken NJ All rights reserved Fetch Cycle No início de cada ciclo de instrução o processador busca fetches uma instrução da memória O program counter PC mantém o endereço da próxima instrução a ser adquirida fetched next O processador incrementa o PC após cada fetch de instrução de forma que irá capturar fazer o fetch de cada instrução de forma a adquirir a próxima instrução em sequência A instrução buscada é carregada no instruction register IR O processador interpreta a instrução e realiza a ação requisitada 2016 Pearson Education Inc Hoboken NJ All rights reserved Categorias de Ação O processador pode realizar alguma operação aritmérica ou lógica sobre dados Uma instrução pode especificar que a sequência de execução seja alterada Dados transferidos depara um dispositivo periférico transmitindo entre o processador e um módulo de IO Dados transferidos do processador para a memória ou da memória para o processador Processor memory Processor IO Data processin g Control 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Instruction address calculation Instruction operation decoding Operand address calculation Data Operation Operand address calculation Instruction fetch Instruction complete fetch next instruction Multiple operands Return for string or vector data Figure 36 Instruction Cycle State Diagram Operand fetch Operand store Multiple results 2016 Pearson Education Inc Hoboken NJ All rights reserved Ciclo de Instrução Inclui os seguintes estágios Fetch Busca Ler a próxima instrução da memória para o processador Execução Interpretar o opcode e realizar a operação indicada Interrupção Se habilitada no caso de interrupção armazenar o estado do processo corrente e atender a interrupção 0 3 4 15 Opcode Address a Instruction format 0 1 15 S Magnitude bInteger format Program Counter PC Address of instruction Instruction Register IR Instruction being executed Accumulator AC Temporary storage cInternal CPU registers 0001 Load AC from Memory 0010 Store AC to Memory 0101 Add to AC from Memory dLita Parcial de Opcodes Figure 34 Characteristicsof a Hypothetical M achine 2016 Pearson Education Inc Hoboken NJ All rights reserved Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Exemplo de Execução de Instrução 0001 Hex 1 Load AC from memory 0010 Hex 2 Store AC to memory 0101 Hex 5 Add to AC from memory 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 1 0 0 0 3 5 9 4 1 Memory 300 301 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 2 0 0 0 5 5 9 4 1 CPU Registers Memory PC 300 AC 301 IR 302 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 2 0 0 0 5 2 9 4 1 940 941 Step 5 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 5 3 0 3 0 0 0 5 2 9 4 1 940 941 Step 6 940 940 3 2 5 941 941 Step 3 Memory CPU Registers Step 4 Memory CPU Registers 300 PC 300 PC 301 AC 301 AC 302 IR 302 IR Perguntas Em Step 1 em que parte interna do Processador é colocada a parte endereço contida em IR Em Step 1 Quem é que interpreta o valor 1 presente no IR Em Step 2 Em que parte interna do processador é colocado o conteúdo da posição de memória 940 antes do mesmo ir para o Acumulador Por que é necessária esta leitura intermediária 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 3 0 0 1 9 4 0 Memory 300 301 302 940 941 Step 1 1 9 4 0 5 9 4 1 2 9 4 1 0 0 0 3 0 0 0 2 CPU Registers PC AC IR 3 0 1 0 0 0 3 1 9 4 0 CPU Registers Memory PC 300 AC 301 IR 302 940 941 Step 2 Example Addressing Modes The following examples use the following piece of computer memory Location 0 1 2 3 4 5 6 Value 17 3 Immediate addressing supplies the actual value and is normally prefixed with a LD Acc 5 Load the actual value 5 into the accumulator Ax becomes 5 Direct addressing uses the number as a memory location where the value is stored LD Acc 5 Load the value in memory location 5 into the accumulator Ax becomes 3 Indirect addressing uses the value as a memory location that points to the memory location that holds the value In this case the number is usually enclosed with square brackets LD Acc 5 Load the value stored in the memory location pointed to by the operand into the accumulator Memory location 5 is accessed which contains 3 Memory location 3 is accessed which is 17 Ax becomes 17 Organização dos Registradores de Trabalho 2016 Pearson Education Inc Hoboken NJ All rights reserved Possibilitam ao programador em linguagem assembly ou de máquina minimizar referências à memória principal por intermédio do uso otimizado dos registradores Usados pela unidade de controle para controlar o processador e por programas privilegiados do Sistema operacional para controlar a execução de outros programas UserVisible Registers Control and Status Registers Dentro do processador existe um conjunto de registradores que funcionam como um nível de memória acima da memória principal e da cache hierarquicamente Os registradores no processador exercem dois papéis UserVisible Registers Registradores exclusivos da CPU Executam funções que não são visíveis para o Usuário Propósito Geral Pode ser atribuído a uma variedade de funções pelo programador Dados Pode ser usado apenas para guardar dados e não pode ser empregado no cálculo de endereço de um operando Endereço Pode ser de alguma forma de propósito geral ou ser devotado a um modo de endereçamento particular Exemplos ponteiros de segmento registradores de índice stack pointer Condition codes Também chamados de flags Bits estabelecidos pelo hardware do processador como resultado de operações Categorias 2016 Pearson Education Inc Hoboken NJ All rights reserved Referenciados por meio de linguagem de máquina que o processador executa Exemplo de Registradores de Trabalho visíveis para o programador ADD AX 5 MOV BX 5 MUL AX BX São internos da CPU e podem ser referenciados pelo usuário em programa Registradores exclusivos para funções da CPU não são visíveis diretamente para o programador MAR MBR PC IR etc As ações determinadas pelo programador é que são transpostas para estes registradores mas os mesmos não são referenciáveis diretamente em programa Apenas o microcódigo interno da CPU os referencia ativando sinais elétricoslógicos Registradores de Controle e Status Quatro registradores são essenciais para a execução de instruções Program counter PC Contém o endereço da uma instrução a ser buscada fetched Instruction register IR Contém a instrução mais recente capturada fetched Memory address register MAR Contém o endereço de uma localidade em memória Memory buffer register MBR Contém uma palavra de dados a ser escrita em memória ou a palavra que foi lida mais recentemente ou que será lida 2016 Pearson Education Inc Hoboken NJ All rights reserved Program Status Word PSW Registrador ou conjunto de registradores que contêm informação de status Campos comuns ou flags incluem Sign Zero Carry Equal Overflow Interrupt EnableDisable Supervisor 2016 Pearson Education Inc Hoboken NJ All rights reserved Exemplos de Arquitetura Regitradores internos dos processadores recebem nomes No caso da Intel os nomes foram sendo herdados ao longo das gerações de processadores desde o primeiro processador de uso geral Um motivo para isto é manter a compatibilidade do código assembler com o acervo de programas legado Em processadores RISC mais recentes estes nomes podem ser mais genéricos 2016 Pearson Education Inc Hoboken NJ All rights reserved Program Status CS DS SS ES FLAGS Register Instruction Pointer a MC68000 Status register Program counter Program status A0 A1 A2 A3 A4 A5 A6 A7 b 8086 Instr ptr Flags Code Data Stack Extrat Stack ptr Base ptr Source index Dest index Accumulator Base Count Data Program status Segment c 80386 Pentium 4 Data registers General registers General Registers D0 AX EAX AX D1 BX EBX BX D2 CX ECX CX D3 DX EDX DX D4 D5 Pointers index ESP SP D6 SP EBP BP D7 BP ESI SI SI EDI DI Address registers DI Roteiro daAul a 1 Ciclos de Instrução 2 Interrupção 3 Barramento 4 Pipeline 5 Trabalhos e Outros Sequência de Instruções Por default o processador sempre tende a buscar a próxima instrução na próxima célula de memória Este é o comportamento normal do processador Ele tende a buscar a próxima instrução se nada mais for dito para ele Pergunta Que situações podem levar o processador a executar uma instrução que não esteja contígua ou seja de alguma forma saltar para algum outro lugar Interrupção O que é Para que serve E quem interrompe 29 Program Time r I O Hardware failure Generated by some condition that occurs as a result of an instruction execution such as arithmetic overflow division by zero attempt to execute an illegal machine instruction or reference outside a users allowed memory space Generated by a timer within the processor This allows the operating system to perform certain functions on a regular basis Generated by an IO controller to signal normal completion of an operation request service from the processor or to signal a variety of error conditions Generated by a failure such as power failure or memory parity error Table 31 Classes of Interrupts 2016 Pearson Education Inc Hoboken NJ All rights reserved Processamento da Interrupção Interrupções e Exceções Interrupções Geradas por um sinal de hardware e pode ocorrer de forma aleatória durante a execução de um programa Mascarável Não mascarável Exceções Geradas a partir do software e provocadas pela execução de uma instrução que provoque uma situação anômala Detectável pelo processador Programável Tabela de vetor de interrupção A cada tipo de interrupção é atribuído um número Este número é usado para indexar dentro da tabela de vetor de interrupção 2016 Pearson Education Inc Hoboken NJ All rights reserved 256 32bit interrupt vectors which is the address segment and offset of the interrupt service routine for that interrupt number Ciclo de Instrução com Interrupções START HALT Fetch Next Instruction Fetch Cycle Execute Cycle Interrupt Cycle Interrupts Disabled Interrupts Enabled Execute Instruction Check for Interrupt Process Interrupt 32