Logo Passei Direto
Buscar
Material

Prévia do material em texto

Arquitetura de microprocessadores do simples pipeline ao multiprocessador em chip / Jean-Loup Baer [tradução Daniel Vieira]. Rio de Janeiro LTC, 2013. il. 28 cm 1 Introdução Os sistemas de computação modernos, construídos com microprocessadores sofisticados e hierar- quias de memória abrangentes, conseguem um alto desempenho por meio de uma combinação de melhorias incríveis na tecnologia e avanços na arquitetura do computador. Os avanços na tecnolo- gia resultaram em taxas de crescimento exponenciais na velocidade bruta (ou seja, frequência de relógio) e na quantidade de lógica (número de transistores) que pode ser colocada em um chip. Os projetistas de computadores exploraram esses fatores a fim de melhorar ainda mais o desem- penho, usando técnicas arquiteturais, que são o assunto principal deste livro. Os microprocessadores já têm mais de 30 anos: o Intel 4004 foi introduzido em 1971. A fun- cionalidade do 4004 em comparação com a dos mainframes desse período (por exemplo, o IBM System/370) era minúscula. Hoje, pouco mais de 30 anos depois, as estações de trabalho acionadas por mecanismos como (em ordem alfabética e sem números específicos de processador) AMD Athlon, IBM PowerPC, Intel Pentium e Sun UltraSPARC podem competir ou superar em desem- penho e funcionalidade alguns dos mainframes restantes e com um custo muito menor. Servidores e supercomputadores normalmente são compostos de conjuntos de sistemas microprocessadores. Porém, seria errado considerar que os três princípios que os projetistas de computador têm seguido, ou seja, pipelining, paralelismo e o princípio da localidade, foram descobertos com o nascimento dos microprocessadores. Todos eles estavam nos fundamentos do projeto dos (super)computadores mais antigos. Os avanços na tecnologia tornaram sua implementação mais prática e promoveram maiores refinamentos. As técnicas microarquiteturais que estão presentes neste livro contam com esses três princípios para traduzir a especificação arquitetural a arquitetura do conjunto de instru- ções em uma partição de blocos estáticos cuja interação dinâmica leva ao comportamento desejado. Nas próximas páginas, vamos apresentar uma visão geral extremamente rápida dos avanços na tecnologia que levaram ao desenvolvimento dos microprocessadores atuais. Depois, restante do capítulo é dedicado à definição de desempenho e dos meios para medi-lo. 1.1 Apresentação Rápida dos Avanços Tecnológicos 1.1.1 Modelo da Máquina de von Neumann Os microprocessadores modernos possuem recursos de engenharia sofisticados. Apesar disso, eles ainda seguem basicamente o modelo convencional da máquina de von Neumann da Figura 1.1. O modelo de von Neumann de um computador com programa armazenado consiste em quatro blocos: Uma unidade central de processamento (CPU Central Processing Unit) contendo uma unidade lógica e aritmética (ALU Arithmetic-Logical Unit) que realiza operações aritmé- ticas e lógicas, registradores cuja função principal é serem usados para armazenamento em alta velocidade dos operandos, uma unidade de controle que interpreta instruções e faz com 1Capítulo 1 Memória CPU E/S Controle ALU Entrada Hierarquia PC de memória Registradores Estado Saída Figura 1.1 O modelo da máquina de Barramento de memória Barramento de E/S von Neumann. que sejam executadas e um apontador de instruções (PC Program Counter), que indica o endereço da próxima instrução a ser executada (para alguns autores, a ALU e a unidade de controle constituem blocos separados). Uma memória que armazena instruções, dados e resultados intermediários e finais. A me- mória atualmente é implementada como uma hierarquia. Uma entrada que transmite dados e instruções do mundo exterior para a memória. Uma saída que transmite resultados finais e mensagens ao mundo exterior. Sob o modelo de von Neumann, o ciclo de execução de instrução prossegue da seguinte forma: 1. A próxima instrução (apontada pelo PC) é buscada da memória. 2. A unidade de controle decodifica a instrução. 3. A instrução é executada. Ela pode ser uma instrução baseada na ALU, uma carga (load) de uma posição da memória para um registrador, um armazenamento (store) de um registrador para a memória ou uma condição de teste para um desvio (branch) em potencial. 4. O PC é atualizado (incrementado em todos os casos, menos no caso de um desvio bem- sucedido). 5. Volte ao passo 1. Naturalmente, nos mais de sessenta anos de existência dos computadores com programa armazenado, tanto o conteúdo dos blocos quanto a sequência básica do ciclo de execução de instruções têm sido completamente otimizados. Neste livro, veremos principalmente o que pode ser encontrado em um chip de microprocessador. No início, um chip de microprocessador continha a CPU. Com o passar dos anos, a CPU foi melhorada de modo que pudesse usar pipeline. Várias unidades funcionais substituí- ram a ALU única. Níveis mais baixos da hierarquia de memória (caches) foram integrados no chip. Recentemente, vários microprocessadores e suas caches de baixo nível coexistem em um único chip, formando multiprocessadores em chip (CMPs). Juntamente com esses avanços (micro)arquiteturais, o ciclo de execução estritamente sequencial foi estendido de modo que possamos ter várias instruções prosseguindo simultaneamente em cada uma das etapas básicas. Nos Capítulos 2 a 6, examinamos a evolução dos chips de processador único; os Capítulos 7 e 8 são dedicados aos multiprocessadores.

Mais conteúdos dessa disciplina