Arquitetura de Computadores Parte II - Histórico Família Intel P5 e P6 Arquitetura de Computadores Arquitetura refere-se aos atributos de um sistema que são visíveis para o programador. Exemplos de atributos: 1. Conjunto de instruções 2. Como é feita a representação de dados (números, caracteres) 3. Mecanismos de entrada e saída 4. Formas de endereçamento da memória 5. Registradores (número e tipos) Organização X Arquitetura • Questão para o arquiteto do sistema Vale a pena ter uma instrução que faça multiplicação? Questão p/ o projetista da microarquitetura (o que é visto em organização): • Como vou implementar a multiplicação (vários passos, pipeline,..) O conceito de arquitetura foi introduzido pelo IBM/360 (1964). A IBM tinha duas máquinas principais: 7094: mastigador de números voltado para aplicações científicas que usava aritmética binária e trabalhava com dados de 36 bits; 1401: processador de E/S voltado para aplicações comerciais que usava aritmética decimal e trabalhava com dados de tamanho variável. Em 1964 a IBM lançou o 360 ou a família 360. Um conjunto de computadores com preço e características diferentes mas que tem a mesma arquitetura (assembly, representação de dados, etc.). Entre elas variavam: • • • • O número de portas de E/S Capacidade de memória Velocidade Custos (certamente) – O sistema operacional era idêntico – As máquinas visavam aplicações científicas e comerciais – Os modelos mais sofisticados tinham um conjunto completo de instruções; as mais sofisticadas, apenas executavam um subconjunto (a migração era possível entre as máquinas simples para as sofisticadas) – Estas máquinas não eram compatíveis com os modelos antigos (7094 e 1401). – Modelos 30, 40, 50, 65 e 75. A DEC segue o exemplo e lança sua família (PDP-8). Exemplo conhecido de arquitetura • Arquitetura do 86 (início com o 8086 em 1978): segue o 8088, 80286, 80386, 80486, Pentium, Pentium MMX, Pentium Pro, Pentium II, Pentium III e Pentium IV • De um processador para outro foram introduzidas novas instruções (Pentium executa todos programas do 8086, mas o inverso não é verdade) Família 86 Cálculo de tempo de CPU • Tempo de resposta: o tempo completo para terminar a execução de um programa – Em muitas aplicações, o que determina o tempo de resposta é o tempo gasto com E/S • Tempo de CPU: tempo do programa na CPU (não considerando E/S) – O tempo de CPU inclui o tempo com o usuário e o tempo com o Sistema Operacional (S.O.); • Tempo de CPU com usuário: tempo que a CPU gasta no programa propriamente (não considerando S.0.)(consideramos este tempo nos próximos slides). Equações para cálculo de tempo de CPU Tempo de CPU= (número de clocks para executar o programa)*(Período do clock) Ou Tempo de CPU= IC*CPI*(período do clock) onde IC (instruction count) é o número total de instruções do programa e CPI é o número de clocks por instrução. • Em muitas máquinas o número de clocks por instrução difere de instrução para instrução!! – Neste caso pode-se utilizar um valor médio determinado na execução de um ou mais programas testes. clocks p/ instrução = CPI = (número de clocks da exec.)T/ICT onde (número de clocks da exec.)T é o numero total de clocks gastos na execução dos programas testes; ICT é o número total de instruções dos programas testes. • Algumas vezes conhecemos o CPI para classes de instruções. Assim considere – CPIi = número médio de clocks para a instrução da classe i; – ICi = o número de instruções da classe i presentes no programa. O tempo de execução será: Tempo de CPU =S(ICi*CPIi)*(período do clock) Obs.: • Período do Clock depende – da tecnologia (se o computador é construído com tecnologia mais moderna (transistores menores), os tempos de atraso dos blocos são menores é pode ser mais rápido); – da microarquitetura e organização do computador (vimos duas possíveis implementações para MIPs, com um clock e com pipeline. Nesse caso, com mesmo valores de atrasos em blocos obtemos um clock de 27,5ns e 10ns); – Da arquitetura pois a microarquitetura depende da arquitetura (conjunto de instruções, número de registradores, etc.). pipeline: 20 estágios pipeline: 10 estágios mesma tecnologia A cada 18 meses dobra a velocidade (lei de Moore) O aumento do desempenho é muito maior do que o aumento do clock. Glossário • SPEC Int - medida usada para avaliar o desempenho dos equipamentos em operações com números inteiros, as mais utilizadas pelos aplicativos convencionais. Substitui o antigo IPS ou MIPS. SPEC, SPECint, SPECfp e SPECrate são marcas registradas da Standar Performance Evaluation Corporation. Para mais informações sobre os testes de desempenho da SPEC, visite www.spec.org .