Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal do Piauí Centro de Tecnologia Departamento de Engenharia Elétrica CIRCUITOS DIGITAIS II Prof. Marcos Zurita zurita@ufpi.edu.br www.ufpi.br/zurita Teresina - 2011 Arquiteturas II 2 Circuitos Digitais II – Prof. Marcos Zurita ● 1. Pipeline ● 2. Arquiteturas CISC, RISC, NISC ● Bibliografia 3 Circuitos Digitais II – Prof. Marcos Zurita 1. Pipeline 4 Circuitos Digitais II – Prof. Marcos Zurita Execução Sequencial ● Considere a execução sequencial de 4 instruções em um processador onde cada instrução é composta de 4 estágios, cada um consumindo um ciclo de clock: T E1 E2 E3 E4 Instrução 1 T E1 E2 E3 E4 Instrução 2 T E1 E2 E3 E4 Instrução 3 T E1 E2 E3 E4 Instrução 4 Tempo total = 4T (16 ciclos de clock) 5 Circuitos Digitais II – Prof. Marcos Zurita Execução em Paralelo (Pipeline) ● Considere agora que as mesmas instruções sejam executadas em um processador cuja execução é feita em pipeline: ● As mesmas 4 instruções passam a ser executadas em menos da metade do tempo do processador anterior. E1 E2 E3 E4 Instrução 1 E1 E2 E3 E4 Instrução 2 E1 E2 E3 E4 Instrução 3 E1 E2 E3 E4 Instrução 4 1,75T (7 ciclos de clock) 6 Circuitos Digitais II – Prof. Marcos Zurita Execução em Pipeline ● Trata-se de uma técnica de paralelismo no nível das instruções de um processador. ● A máquina é capaz de processar mais de uma instrução ao mesmo tempo, não precisando esperar que uma uma instrução termine para iniciar a execução de outra. ● Num processador em pipeline, a execução de cada estágio de uma instrução é realizada por um conjunto distinto de componentes. ● Com isso, uma vez que uma instrução passa para o estágio E2, o hardware usado para executar o estágio E1 não é mais necessário, podendo ser usado pela próxima instrução. 7 Circuitos Digitais II – Prof. Marcos Zurita ● Para o exemplo anterior, a partir do 4° ciclo de clock, os circuitos de cada um dos estágios passam a ser permanentemente utilizados, cada ciclo por uma instrução “diferente”. E1 E2 E3 E4 Instrução 1 E1 E2 E3 E4 Instrução 2 E1 E2 E3 E4 Instrução 3 E1 E2 E3 E4 Instrução 4 E1 E2 E3 E4 Instrução 5 E1 E2 E3 E4 Instrução 6 E1 E2 E3 E4 Instrução 7 E1 E2 E3 E4 Instrução 8 E1 E2 E3 E4 Instrução 9 E1 E2 E3 E4 Instrução 10 E1 E2 E3 E4 Instrução 11 E1 E2 E3 E4 Instrução 12 E1 E2 E3 E4 Instrução 13 E1 E2 E3 Instrução E1 E2 Instru E1 In Todos os 4 estágios estão em uso 8 Circuitos Digitais II – Prof. Marcos Zurita ● Naturalmente, para os circuitos de cada estágio de uma máquina possam operar em pipeline, devem haver registradores ou latches separando um estágio do outro: ● Eles garantem que o resultado do estágio anterior, necessário à operação do estágio atual, não será alterado pela próxima instrução ao usar o estágio anterior. E1: Busca de Instrução E2: Decodificação e Leitura dos Registradores E3: Operação da ULA e do Deslocador E4: Escrita nos Registradores L1 L2 L3 Ex.: Arquitetura para Execução em Pipeline E1: Busca de Instrução E2: Decodificação e Leitura dos Registradores E3: Operação da ULA e do Deslocador E4: Escrita nos Registradores Ex.: Arquitetura para Execução Sequencial 9 Circuitos Digitais II – Prof. Marcos Zurita Ex.: Conversão de uma microarquitetura tipo MIC-1 para execução em pipeline. Registradores BA ULA C Registrador de saída da ULA Registradores de entrada da ULA Memória de Programa IR IFU (Unidade de Busca de Instrução) 10 Circuitos Digitais II – Prof. Marcos Zurita ● O pipeline não melhora a latência de uma tarefa: ● O tempo de execução de uma instrução é o mesmo, com ou sem pipelining. ● Entretanto, o pipeline é capaz de melhorar a vazão (throughput) de toda o trabalho: ● Uma nova instrução é finalizada a cada ciclo de clock (a partir do 4° ciclo). ● Nem todas microarquiteturas de processadores sequenciais são capazes de serem convertidas para execução em pipeline de maneira adequada. ● A natureza de alguns processadores sequenciais é excessi- vamente causal, isto é, possuem uma forte dependência da conclusão de estágios ou instruções para que novas instru- ções possam ser executadas sem que hajam conflitos. 11 Circuitos Digitais II – Prof. Marcos Zurita Conflitos em Pipeline ● Situações de execução no pipeline em que a instrução seguinte não pode ser executada no próximo ciclo de relógio. ● Tipos de Conflitos: ● Estruturais ● De dados ● De controle 12 Circuitos Digitais II – Prof. Marcos Zurita Conflitos Estruturais ● O hardware não suporta uma combinação de instruções executadas no pipeline. ● Ex.: Uma dada microarquitetura faz leitura em registra- dores diferentes em mais de um estágio de uma mesma instrução, impedindo que outras instruções leiam os registradores nesses estágios. ● Solução: ● Projeto adequado do caminho de dados. 13 Circuitos Digitais II – Prof. Marcos Zurita Conflito de Dados ● A execução de uma instrução depende de um dado de instrução anterior e o dado ainda não está disponível. ● Ex.: ● Solução: ● Adiantamento (forwarding). Coisa1: TOS=H+MBR Coisa2: MDR=TOS; wr Coisa3: SP=SP+1; Coisa4: PC=PC+1; fetch Coisa1: TOS=H+MBR Coisa2: SP=SP+1; Coisa3: PC=PC+1; fetch Coisa4: MDR=TOS; wr 14 Circuitos Digitais II – Prof. Marcos Zurita Conflito de Controle ● Originam-se na necessidade de se tomar uma decisão baseada nos resultados de uma instrução, a qual ainda não foi concluída. ● Muito comuns em instruções de salto condicional. ● Solução: ● Uma possível solução é a parada (também chamada de “bolha”), ou seja, interromper a progressão das instruções pelo pipeline. 15 Circuitos Digitais II – Prof. Marcos Zurita 2. Arquiteturas RISC, CISC e NISC 16 Circuitos Digitais II – Prof. Marcos Zurita Arquitetura CISC ● Complex Instruction Set Computer – Computador com um Conjunto Complexo de Instruções. ● Designa arquiteturas de instruções complexas, implementadas através de uma memória de controle. ● Cada microinstrução correspon- de a uma palavra de controle (CW - Control Word). ● 1 instrução CISC no nível ISA = várias CWs. Memória de Programa PC MPC Memória de Controle CW Caminho de Dados Memória de Dados 17 Circuitos Digitais II – Prof. Marcos Zurita ● Este tipo de arquitetura tornou-se muito popular na década de 70. ● Como a memória de programa era muito lenta os projetistas tentaram aumentar o desempenho cirando instruções complexas. ● Cada instrução consome vários ciclos de clock, e cada ciclo possui sua própria CW armazenada em uma rápida memória de controle (interna ao processador). ● Cada linha da memória de controle, onde estão armazenadas as CW, contém uma microinstrução. ● O conceito de microprogramação permite a criação de qualquer conjunto de instruções, mesmo complexas. ● Infelizmente, é pouco eficiente para pipelining. 18 Circuitos Digitais II – Prof. Marcos Zurita Arquitetura RISC ● Reduced Instruction Set Computer – Computador com um Conjunto Reduzido de Instruções. ● Designa arquiteturas de instruções simples, implementadas através de um decodificador. ● 1 instrução RISC no nível ISA = uma (ou poucas) CWs. Memória de Programa PC IR Decodificador CW Caminho de Dados Memória de Dados 19 Circuitos Digitais II – Prof. Marcos Zurita ● Este tipo de arquitetura tornou-se muito popular no final da década de 80. ● Elimina todas as instruções complexas e a memória de controle, substituindo-a por um decodificador hardwired. ● Todas as instruções RISC devem sersimples e executar em um ou poucos ciclos de clock, facilitando sua implementação em pipeline. ● Como as instruções RISC são simples, cada instrução CISC corresponde, em média, a duas instruções RISC, o que faz com que uma mesma implementação ISA precise do dobro de linhas de código RISC do que CISC. 20 Circuitos Digitais II – Prof. Marcos Zurita Arquitetura NISC ● No Instruction Set Computer – Computador sem um Conjunto Instruções. ● Designa arquiteturas nas quais a palavra de controle (CW) é diretamente gerada pelo programa, sem a necessidade de uma etapa de decodificação. ● Uma CW = várias instruções ISA. Memória de Programa PC CW Caminho de Dados Memória de Dados 21 Circuitos Digitais II – Prof. Marcos Zurita ● Elimina completamente o estágio de decodificação, passando armazenar as palavras de controle (CWs) diretamente na memória de programa. ● Como cada CW é, em média, 2 a 3 vezes mais larga que uma instrução ISA, a memória de programa aumenta 2 a 3 vezes em largura. ● Por outro lado, cada CW pode executar mais de uma instruções RISC no nível ISA, o que reduz o número de linhas de código. ● Como instrução NISC controla diretamente todo o caminho de dados, é possível maximizar a eficiência da máquina para cada aplicação. 22 Circuitos Digitais II – Prof. Marcos Zurita ● Andrew S. Tanenbaum, “Organização Estruturada de Computadores”, 5a Ed., Pearson, 2006. ● J. L. Hennessy & D. A. Patterson, “Arquitetura de Computadores - Uma Abordagem Quantitativa”, Editora Campus, 2003. ● Willians Stallings, “Arquitetura e Organização de Computadores”, 5ª Edição, Pearson, 2003. ● Albert Paul Malvino, “Microcomputadores e Microprocessadores”, McGraw-Hill, 1985. ● Herbert Taub, “Circuitos Digitais e Microprocessadores”, Mcgranw-Hill, 1984. ● Notas de aula do professor Ivan Saraiva, UFPI.
Compartilhar