Arquitetura de Computadores Prof. Eduardo Simões de Albuquerque Instituto de Informática UFG 1o. Semestre / 2006 Adaptado do material do prof. Fábio Moreira Costa Programa e Introdução Assunto do curso Atributos de um sistema [de computação] que são visíveis para o programador (...) e que têm impacto direto sobre a execução lógica de um programa Tanenbaum, 1999 Stallings, 2001 1
Arquitetura Vs. Organização Arquitetura conjunto de instruções conjunto de registradores representação de dados mecanismos de E/S endereçamento de memória Organização: Especifica as unidades operacionais e sua interconexão para implementação de uma determinada arquitetura estrutura interna do processador barramentos internos tecnologia de memórias interface com sistema de E/S Roteiro do curso... Introdução Arquitetura vs. Organização de Computadores Organização estruturada de computadores Interação com outras disciplinas 2
Roteiro do curso... Fundamentos Princípios de funcionamento de computadores Panorama das tecnologias atuais Tendências tecnológicas Princípios de projeto de computadores Análise do desempenho de computadores Perspectiva histórica Roteiro do curso... Representação de dados Números inteiros sinalizados e nãosinalizados Operações aritiméticas Operações lógicas Números de ponto flutuante 3
Roteiro do curso... Arquitetura de conjuntos de instruções Classificação de conjuntos de instruções Endereçamento de memória Tipos de operações Tipos de dados (operandos) Formatos de instruções Controle de fluxo (procedimentos e sub-rotinas, interrupções) Roteiro do curso... Programação em Linguagem de Montagem Visão geral do modelo de programação Arquiteturas representativas (ênfase no 80x86) Exercícios de programação Outors aspectos da programação em Assembly: linkedição e carga de programas, macros, o processo de montagem, relocação de código 4
Roteiro do curso... Suporte ao Sistema Operacional Conceitos básicos de sistemas operacionais Escalonamento de processos Gerenciamento de memória Roteiro do curso... Entrada e Saída Organização básica de entrada e saída Métodos de transferência de dados (polling, interrupções, DMA) Dispositivos de E/S 5
Interação com outras disciplinas Antes: Introdução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores Disciplina básica do currículo de Computação Ênfase do curso Entender o projeto de computadores existentes fundamentação conceitual, perspectiva histórica e atualidades Dar subsídios para melhor utilizar (programar) a máquina Aprender as técnicas básicas de projeto de computadores 6
Bibliografia STALLINGS, W. Arquitetura e Organização de Computadores, Tradução da 5ª Edição, Prentice-Hall, 2002. Trata tanto os aspectos de arquitetura quanto de organização de computadores, fazendo uma clara distinção entre eles Estudos de casos com duas arquiteturas reais: Pentium II e PowerPC Bibliografia... PATTERSON, D.A.; HENNESSY, J.L. Projeto e Organização de Computadores: A Interface Hardware / Software, Tradução da 2a Edição, LTC, 2000. Combina uma abordagem fortemente baseada em princípios com uma visão tecnológica Ponto de vista arquitetura = organização + ISA 7
Bibliografia... TANENBAUM, A.S. Organização Estruturada de Computadores, Tradução da 4a Edição, LTC, 2001. Abordagem clássica da organização de computadores em camadas Também trata dos aspectos de arquitetura e organização Bibliografia... WEBER, R.F., Fundamentos de Arquiteturas de Computadores, 2ª Edição, Editora Sagra-Luzzatto, 2001. Roteiro básico para um curso introdutório de arquitetura de computadores Abordagem evolutiva baseada em simuladores Precisa ser complementado com textos mais avançados 8
Bibliografia... HENNESSY, J.L. and PATTERSON, D.A. Arquitetura de Computadores: Uma Abordagem Quantitativa, Tradução da 3ª. Edição, 1996, Morgan Kaufmann. Abordagem de projeto guiada por análises de desempenho Visão integrada de arquitetura e organização (ênfase em aspectos de arquitetura) Texto mais avançado, voltado para projetistas de computadores Avaliações 02 AVALIAÇÕES EM SALA DE AULA: 1ª. Avaliação (A1): 18/04/2006 2ª. Avaliação (A2): 27/06/2006 02 TRABALHOS (Grupos de 3 alunos): T1: Estudo de arquitetura de computadores atuais entrega: 12/05/2006 T2: Trabalho prático de programação entrega/ demonstração: 08/06 a 23/06/2006 Composição da nota final Média(A1,A2) * 0,6 + Média(T1,T2) * 0,4 9
Arquitetura Vs. Organização Arquitetura conjunto de instruções conjunto de registradores representação de dados mecanismos de E/S endereçamento de memória Organização: Especifica as unidades operacionais e sua interconexão para implementação de uma determinada arquitetura estrutura interna do processador barramentos internos tecnologia de memórias interface com sistema de E/S (Segundo Semestre) Arquitetura Vs. Organização Visões complementares Arquitetura: independente de implementação Organização: implementação específica Escolhas em uma área têm influência na outra Exemplo: Famílias de arquiteturas IBM System 360 Intel 80x86 Questão chave: compatibilidade Implementação (organização) pode ser diferente 10
Arquitetura vs. Organização Exemplo atual: Pentium 4 vs. Celeron Mesma arquitetura Diferentes recursos de implementação Cache interna, unidades de execução em paralelo, etc. Fator custo Organização Estruturada de Computadores TANENBAUM: Um modelo de abstração para facilitar o projeto e implementação de arquiteturas de computadores Um computador é dividido em níveis ou camadas Em cada nível, o computador pode ser programado utilizando a linguagem e os recursos daquele nível Um nível pode ser visto como uma máquina virtual para execução de programas escritos no nível imediatamente superior 11
Organização Estruturada: Computadores multi-níveis [Tanenbaum, 1999] Níveis de representação High Level Language Program Compiler Assembly Language Program Assembler Machine Language Program temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; lw$15, 0($2) lw$16, 4($2) sw $16, 0($2) sw $15, 4($2) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Machine Interpretation Control Signal Specification ALUOP[0:3] <= InstReg[9:11] & MASK 12
O Limite Hardware / Software Hardware: circuitos integrados, placas de circuito impresso, cabos, fontes de alimentação, memórias, dispositivos de entrada e saída (I/O). Software: algoritmos e sua representação computacional (programas). Equivalência entre hardware e software: funções tipicamente implementadas por software podem ser realizadas diretamente em hardware funções tipicamente realizadas em hardware podem ser implementadas (ou simuladas) por software custo, velocidade, confiabilidade, freqüência de mudanças. O Limite Hardware / Software.. SOFTWARE 13
O Limite Hardware / Software software instruction set hardware Exemplos de ISAs Digital Alpha (v1, v3) 1992-97 HP PA-RISC (v1.1, v2.0) 1986-96 Sun Sparc (v8, v9) 1987-95 SGI MIPS (MIPS I, II, III, IV, V) 1986-96 Intel (8086,80286,80386, 1978-96 80486,Pentium, MMX,...) 14
ISA Um exemplo concreto: MIPS R3000 Categorias de instruções Load/Store Computacionais Desvio Ponto flutuante co-processador Gerenciamento de memória Especiais OP J-type Registradores R0 - R31 PC HI LO 3 Formatos de Instruções: todos com largura de 32 bits OP Rtype OP I-type rs rs rt rt rd sa immediate funct jump target Leitura Recomendada Tanenbaum, Cap. 1 Patterson & Hennessy: Cap. 1 15