Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1
Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação de Dados Estrutura e Organização da Informação Linguagens de Programação Sistemas Operacionais Redes de Computadores e Internet Engenharia de Software Softwares Aplicativos Aspectos Legais do Software Aula 5-13/05/2006 2
Revisão da Aula Passada: Arquitetura Simples Aula 5-13/05/2006 3
Tipos básicos de instrução dessa arquitetura Fluxo de dados LOD X(load) STO X(store) Aritmética e Lógica ADD X SUB X CPZ X Se X=0, então ACC=1, senão ACC=0 Controle JMP a Pulo incondicional JMZ a Pulo condicional (se ACC=0) HLT Para o programa Aula 5-13/05/2006 4
Linha de Montagem ou Pipeline A metodologia de linha de montagem consiste em dividir um processo em estágios independentes, que podem se superpor uns aos outros, no tempo. O funcionamento da CPU composto de estágios permite que se adote essa técnica. O processo de realização de uma instrução é dividido em pelo menos dois estágios: leitura e execução. Para instruções que não acessam a memória, é possível iniciar a leitura da próxima instrução ao mesmo tempo em que a instrução é executada. Quanto maior a quantidade de estágios, mais superposição e aumento de velocidade são possíveis. Busca 1 Execução 1 Busca 2 Execução 2 t 1 t 2 Aula 5-13/05/2006 5
Arquiteturas CISC e RISC CISC e RISC são dois paradigmas de arquitetura de computadores. CISC = Complex Instruction Set Computer = Computador com um conjunto complexo de instruções RISC = Reduced Instruction Set Computer = Computador com um conjunto reduzido de instruções Aula 5-13/05/2006 6
Arquitetura CISC Inicialmente os programas em linguagem de máquina eram escritos diretamente pelos programadores. Era importante que os computadores executassem instruções complexas em hardware, para facilitar o trabalho dos programadores. Conforme novas necessidades apareciam novas instruções eram criadas (como multiplicação e case). Isso tornou os computadores complexos, levando ao nome CISC. A complexidade acaba tornando os computadores mais lentos, porque as novas operações são relativamente pouco usadas. Aula 5-13/05/2006 7
Arquitetura RISC Nos anos 80, o aprimoramento da tecnologia de compilação tornou possível gerar automaticamente o código de instruções complexas utilizando instruções simples. Com isso, foi possível projetar arquiteturas que só implementam as instruções mais simples em hardware, e com isso são mais eficientes. Desvantagens: algumas operações complexas (como ponto flutuante) seriam muito ineficientes numa arquitetura RISC e necessitam hardware especial. Aula 5-13/05/2006 8
Princípios Técnicos de Máquinas RISC Projetar uma máquina RISC segue cinco passos básicos: 1. Analisar as aplicações para encontrar as operações-chave. 2. Projetar uma via de dados (registradores, ALU e barramentos) que seja ótima para essas operações. 3. Projetar instruções que executem as operaçõeschave utilizando a via de dados. 4. Adicionar novas instruções somente se elas não diminuírem a velocidade da máquina. 5. Repetir esse processo para outros recursos como memória, memória cache e co-processadores. Aula 5-13/05/2006 9
Princípios Técnicos de Máquinas RISC Tempo de ciclo da via de dados = tempo requerido para buscar os operandos a partir de seus registradores, executá-los por meio da ALU e armazenar o resultado de volta. Esse tempo deve ser o mais curto possível. Sempre que se considere uma nova instrução, deve-se levar em conta se ela aumenta o ciclo da via de dados. Aula 5-13/05/2006 10
Comparação RISC vs. CISC RISC Instruções simples levando 1 ciclo. Apenas LOADs e STOREs refereciam a memória. Altamente pipelined. Instruções executadas pelo hardware. Instruções com formato fixo. Poucas instruções e modos. A complexidade está no compilador. Múltiplos conjuntos de registradores. CISC Instruções complexas, levando múltiplos ciclos. Qualquer instrução pode referenciar a memória. Não tem pipeline, ou tem pouco. Instruções executadas pelo microprograma. Instruções de vários formatos. Muitas instruções e modos. A complexidade está no microprograma. Conjunto único de registradores. Aula 5-13/05/2006 11
Pipelining na arquitetura RISC Como fazer com que LOADs e STOREs operem em um ciclo? É complicado porque o acesso à memória é mais demorado que o tempo de operação da ALU. Em vez de requerer que toda instrução seja executada em um ciclo, vamos requerer apenas que uma instrução seja iniciada em cada ciclo. Para atingir esse objetivo modificado, todas as máquinas RISC têm pipeline. Uma instrução comum utiliza duas unidades pipeline (busca e execução) enquanto as instruções LOAD e STORE utilizam três unidades. Aula 5-13/05/2006 12
Pipelining na arquitetura RISC Ciclo 1 2 3 4 5 6 7 8 9 10 Busca 1 2 L 4 5 6 S 8 9 10 Execução 1 2 L 4 5 6 S 8 9 Memória L S Aula 5-13/05/2006 13
Uso de registradores na arquitetura RISC Se a instrução seguinte a uma instrução LOAD ou STORE usa um dado modificado por elas, a máquina introduz um buraco de atraso no pipeline para esperar que a instrução termine. A arquitetura RISC usa um grande número de registradores, a fim de reduzir o tráfego de memória e com isso reduzir o número de buracos de atraso. Aula 5-13/05/2006 14
Execução Paralela de Instruções Até certo ponto, os computadores podem ser aceleradas simplesmente aumentando a velocidade do hardware. Entretanto, produzir computadores mais rápidos está se tornando cada vez mais difícil, por causa de limitações físicas intrínsecas. Uma outra abordagem é construir uma máquina com muitas ALUs ou mesmo CPUs completas. Os computadores podem ser divididos em três categorias quanto ao paralelismo: SISD = Fluxo único de instruções e dados SIMD = Fluxo único de instruções e múltiplo de dados MIMD = Fluxo múltiplo de instruções e múltiplo de dados Aula 5-13/05/2006 15