·

Engenharia de Software ·

Arquitetura de Computadores

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta

Texto de pré-visualização

Roteiro da Aula 2 1Ciclos de Instrução 2 Interrupção 3Barramento 4 Pipeline 5 Trabalhos e Outros 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 Hardwired program O resultado de processo de conectar vários componentes na configuração desejada 2016 Pearson Education Inc Hoboken NJ All rights reserved Abordagens de Hardware e Software Sequence of arithmetic and logic functions Data Result s a Programming in hardware I nstruction code s General purpose arithmetic and logic functions Data Contro l signal s Result s b Programming in software I nstruction interpreter IO Components Softwar e Software Uma sequência de códigos ou instruções Parte de um hardware interpreta cada instrução e gera sinais de controle Fornece novas sequências de código para cada novo programa ao invés de reconectar o hardware Maiores Componentes CPU Interpretador de instruções Módulo de funções aritméticas e lógicas de propósito geral Componentes de IO Módulo de entrada Contém componentes básicos para a aceitação de dados e instruções convertendoos em uma forma interna de sinais utilizáveis pelo sistema Módulo de Saída Meios pelos quais reportar resultados 2016 Pearson Education Inc Hoboken NJ All rights reserved 6 MEMORY Memory address register MAR Especifica o endereço de memória para o próximo read ou write Memory buffer register MBR Contém os dados a serem escritos em memória ou recebe os dados lidos da memória IO address register IO AR Especifica um dispositivo de IO particular IO buffer register IO BR Usado para intercambiar dados entre um módulo de IO e a CPU MAR MBR 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 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 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 Organização do Processador Requerimentos do Processador Fetch instruction O processador lê 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 0 3 4 15 Opcode Address a Instruction format 0 1 15 S Magnitude b Integer format Program Counter PC Address of instruction Instruction Register IR Instruction being executed Accumulator AC Temporary storage c Internal CPU registers 0001 Load AC from Memory 0010 Store AC to Memory 0101 Add to AC from Memory d Part ial list of opc ode s Figure 34 Characteristicsof a Hypothetical M achine 2016 Pearson Education Inc Hoboken NJ All rights reserved Exemplo de Execução de Instrução 0001 Load AC from memory 0010 Store AC to memory 0101 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 Organização dos Registradores 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 Referenciados por meio de linguagem de máquina que o processador executa 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 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 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 httpscsscsailmitedu68582014readingsi386s0203htm 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 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 c 80386 Pentium 4 Instruction Cycle Inclui os seguintes estágios Fetc h 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 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 Roteiro daAul a 1 Ciclos de Instrução 2 Interrupção 3 Barramento 4 Pipeline 5 Trabalhos e Outros 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 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 IO Espera Longa CPU Já te mandei onde estão os dados todos e coloquei na memória Faz esta peça aí me avisa quando estiver pronta Printer OK Já tenho os dados e vou buscar tudo na memória diretamente Quando eu terminar aviso Timing de Programa Short IO Wait 5 2 5 3 4 Time 1 4 IO operation processor waits IO operation concurrent with processor executing IO operation concurrent with processor executing IO operation processor waits 1 4 2a 5 2b 4 3a 5 3b a Without interrupts b With interrupts Timing de Programa Long IO Wait 4 1 5 2 5 3 4 Time 4 2 1 5 4 b With interrupts 3 5 IO operation processor waits IO operation processor waits IO operation concurrent with processor executing then processor waits IO operation concurrent with processor executing then processor waits Transferência de Controle via Interrupção 1 2 i i 1 M Interrupt occurs here User Program Interrupt Handler 36 User Program IO Program 4 IO Command 5 END User Program IO Program 4 IO Command Interrupt Handler 5 END User Program IO Program 4 IO Command Interrupt Handler 5 END 1 1 1 WRITE WRITE WRITE 2a 2 2 2b WRITE WRITE WRITE 3a 3 3 3b WRITE WRITE WRITE a No interrupts b Interrupts short IO wait c Interrupts long IO wait interrupt occurs during course of execution of user program Fluxo de Programa sem interrupção e com interrupção 2016 Pearson Education Inc Hoboken NJ All rights reserved O processador pode ter a interrupção desabilitada eventualmente Por exemplo ao tratar uma interrupção de hardware crítica esta rotina handler pode inibir qualquer outra interrupção por meio da desabilitação da mesma Neste caso somente após o final da rotina de tratamento de exceção as interrupções voltariam a ser habilitadas Esta é uma opção e é aplicada em função da criticidade da operação eg sensibilidade ao tempo Interrupção Habilitação e Desabilitação 38 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 N o in te rr u pt Interrupt Operand fetch Indirection Operand store Interrupt check Interrupt Multiple results Indirection Ciclo de Instrução com Interrupção User program Interrupt handler X Interrupt handler Y a Sequential interrupt processing b Nested interrupt processing Figure 313 Transfer of Control with Multiple Interrupts User program Interrupt handler X Interrupt handler Y 2016 Pearson Education Inc Hoboken NJ All rights reserved User program Printer interrupt service routine Communication interrupt service routine Disk interrupt service routine Figure 314 Example Time Sequence of Multiple Interrupts t 10 t 40 t 15 t 25 t 25 t 35 t 0 2016 Pearson Education Inc Hoboken NJ All rights reserved Figure 146 Data Flow Fetch Cycle Address Data Bus Bus Control Bus PC CPU MAR Control Unit Memory MBR MBR Memory buffer register MAR Memory address register IR Instruction register PC Program counter IR 2016 Pearson Education Inc Hoboken NJ All rights reserved Figure 147 Data Flow Indirect Cycle Address Data Bus Bus Control Bus MAR CPU Control Unit Memory MBR aqui é preciso ler o endereço na memória e carregar o MAR 2016 Pearson Education Inc Hoboken NJ All rights reserved PC CPU Memory MBR MAR 2016 Pearson Education Inc Hoboken NJ All rights reserved Control Unit No ciclo de interrupção Address Data Control o conteúdo do PC precisa ser transferido para a MBR a fim de ser escrito em espaço de memória reservado ie um endereço apontador de pilha que é apontado pelo MAR Nesta etapa é salvo o endereço corrente do programa já que vamos precisar retornar a ele certo e carregado pela Control Unit O PC é então carregado com o endereço da rotina de interrupção Onde está este endereço Dica pesquisar o vetor de interrupção do 8259 Interrupção de hardware 45 Normalmente empregase um circuito controlador integrado Este circuito recebe os diversos sinais de interrupção enviados por dispositivos externos Possui internamente uma lógica de arbitragem Sinaliza a CPU sobre a interrupção no pino de INT Recebe uma sinal de acknowledge INTA da CPU Entrega o vetor de interrupção no barramento Com base nestas informações a CPU trata a interrupção 8259 A CS 1 WR 2 RD 3 D7 4 D6 5 D5 6 D4 7 D3 8 D2 9 D1 10 D0 11 CAS 0 12 CAS 1 13 GND 14 28 VCC 27 A0 26 INTA 25 IR7 24 IR6 23 IR5 22 IR4 21 IR3 20 IR2 19 IR1 18 IR0 17 INT 16 SPEN 15 CAS 2 8259 x CPU INT INTA RD WR A0 CS 8259 IRQ0IRQ7 D0D7 Barramento entre a CPU e o 8259 Roteiro da Aula 49 1 Ciclos de Instrução 2 Interrupção 3 Barramento 4 Pipeline 5 Trabalhos e Outros Barramentos de IO Função de IO Módulo de IO pode intercambiar dados diretamente com o processador O processador pode ler dados ou escrever dados depara um módulo de IO ES O Processador identifica um dispositivo específico que é controlado por um módulo particular de IO Instruções de IO ao invés de memória referenciando instruções Em alguns casos é desejável permitir que trocas de IO ocorram diretamente com a memória O processador concede permissão grants a um módulo de IO a autoridade para ler ou escrever em memória de tal forma que esta transferência possa ocorrer sem intervenção do processador O módulo de IO emite comandos de leituraescrita liberando o processador da responsabilidade por esta troca Esta operação é conhecida como acesso direto à memória direct memory access DMA 2016 Pearson Education Inc Hoboken NJ All rights reserved A estrutura de interconexão deve suportar os seguintes tipos de transferência Memória para processado r Processador lê uma instrução ou unidade de dados a partir da memória Processad or para memória Processor escreve uma unidade de dados na memória IO para processado r Processador lê os dados a partir de um dispositivo de ES via módulo de ES Processad or para IO Processador envia dados para o dispositivo de ES IO depara memória A um módulo de ES é permitida a troca direta de dados com a memória sem a intervenção do processador usando direct memory access 2016 Pearson Education Inc Hoboken NJ All rights reserved B u s I n t e r c o n n e c t i o n Uma via de comunicação conectando dois ou mais dispositivos Característica chave é que se trata de um meio de comunicação compartilhado Sinais transmitidos por qualquer dispositivo são disponíveis para recepção por todos os outros dispositivos acoplados ao barramento Bus Se dois dispositivos transmitirem durante o mesmo período de tempo seus sinais irão se sobrepor Tipicamente consiste de múltiplas linhas de comunicação Cada linha é capaz de transmitir sinais representando binários 1 e 0 Sistemas Computacionais contêm um número de diferentes barramentos para prover vias entre componentes em vários niveis da hierarquia computacional System bus Um barramento que conecta componentes macro do computador processador memória IO A maior parte das interconexões entre estruturas de computador são baseadas em um ou mais barramentos de sistema 2016 Pearson Education Inc Hoboken NJ All rights reserved Barramento de Dados Data Bus Linhas de Dados que propiciam uma via para mover dados entre módulos do sistema Podem consistir de 32 64 128 ou mais linhas separadas O número de linhas é denominado como largura do barramento de dados O número de linhas determina quantos bits podem ser transferidos por vez A largura do barramento de dados é um fator chave na determinação da performance global do sistema Address Bus Control Bus Usado para designar a origem ou destino dos dados em um barramento de dados Se o processador requer a leitura ou escrita de uma palavra word de dados da memória este coloca o endereço da palavra desejada sobre as linhas de endereço A largura determina a máxima capacidade possível de memória no sistema Também usado para endereços de portas de IO Os bits de ordem mais alta são usados para selecionar um módulo particular no barramento e os de ordem mais baixa identificam a porta de IO dentro do módulo Usado para controlar o acesso e uso dos dados e linhas de endereço Devido ao fato de linhas de endereço e de dados serem compartilhadas por todos os componentes deve haver um meio de controlar o seu uso Sinais de controle transmitem tanto comandos como informação de temporização entre modulos do sistema Sinais de temporização Timing indicam a validade dos dados e informação de endereçamento Sinais de comando especificam 2016 Pearson Education Inc Hoboken NJ All rights operações a serem realizadas reserved CPU Memory Memory IO Figure 316 Bus Interconnection Scheme Bus IO Control lines Address lines Data lines 2016 Pearson Education Inc Hoboken NJ All rights reserved O Barramento Convencional Se múltiplos módulos compartilham e disputam o mesmo recurso como por exemplo a memória principal deve haver um árbitro para definir de quem é a prioridade para acesso ao recurso em um dado momento 57 2016 Pearson Education Inc Hoboken NJ All rights reserved O Árbitro do Árbitro Centralizado BUS ARBITER MASTER1 MASTER2 MASTERN BUS BUSY FIG 1 PRIOR ART BUS REQ BUS Gri FIG 3 55 2016 Pearson Education Inc Hoboken NJ All rights reserved Um esquema de arbitragem do PCI The PCI bus uses a centralized bus arbiter Tanenbaum Structured Computer Organization Fifth Edition c 2006 Pearson Education Inc All rights reserved 0131485210 62 63 Arbitrage m em Daisy Chaining Roteiro da Aula 1 Ciclos de Instrução 2Interrupção 3Barramento 4Pipeline 5 Trabalhos e Outros QUIZ Evoluções Interconexão PontoaPonto Principal razão para a mudança foram as restrições elétricas encontradas com o crescente aumento de frequência dos barramentos síncronos Em taxas cada vez maiores tornase gradativamente mais difícil realizar a sincronização e arbitragem de forma temporizada O uso de um barramento compartilhado convencional no mesmo chip ampliava as dificuldades relacionadas com a crescente taxa de dados no barramento e redução da latência no barramento para manterse alinhado com os processadores Menor Latência Melhor taxa de dados e melhor escalabilidade 2016 Pearson Education Inc Hoboken NJ All rights reserved Little Man Computer Próximo nivel Assembly Language Code OUTPUT V13 Little Man Computer RAM PROGRAM COUNTER 00 INSTRUCTION REGISTER ADDRESS REGISTER ACCUMULATOR 000 ARITHMETIC UNIT INPUT SELECT or enter a program LOAD a file or alter memory ASSEMBLE INTO RAM RUN STEP RESET LOAD HELP SELECT OPTIONS GCSEcomputingorguk and Peter Higginson