Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG 1o. Semestre / 2005 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 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 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ão-sinalizados Operações aritiméticas Operações lógicas Números de ponto flutuante 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 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 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 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 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 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): 19/04/2005 2ª. Avaliação (A2): 30/06/2005 02 TRABALHOS (Grupos de 2 alunos): T1: Estudo de arquitetura de computadores atuais – entrega: 12/05/2005 T2: Trabalho prático de programação – entrega/ demonstração: 28/06 a 05/07/2005 Composição da nota final Média(A1,A2) * 0,6 + Média(T1,T2) * 0,4 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 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 Organização Estruturada: Computadores multi-níveis [Tanenbaum, 1999] Níveis de representação High Level Language Program Assembly Language Program Machine Language Program Control Signal Specification Compiler Assembler Machine Interpretation 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 ° ° ALUOP[0:3] <= InstReg[9:11] & MASK 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.. SOFTWARESOFTWARE O Limite Hardware / Software instruction set software 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, ...) ISA – Um exemplo concreto: MIPS R3000 Categorias de instruções Load/Store Computacionais Desvio Ponto flutuante co-processador Gerenciamento de memória Especiais R0 - R31 PC HI LO OP OP OP rs rt rd sa funct rs rt immediate jump target 3 Formatos de Instruções: todos com largura de 32 bits Registradores Leitura Recomendada Tanenbaum, Cap. 1 Patterson & Hennessy: Cap. 1
Compartilhar