Upload
vantuyen
View
225
Download
0
Embed Size (px)
Citation preview
Arquitetura de Computadores
Prof. Fábio M. CostaInstituto de Informática – UFG1o. 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çãoArquitetura vs. Organização de Computadores
Organização estruturada de computadores
Interação com outras disciplinas
Roteiro do curso...
FundamentosPrincí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 dadosNú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çõesClassificaçã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 MontagemVisã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 OperacionalConceitos básicos de sistemas operacionais
Escalonamento de processos
Gerenciamento de memória
Roteiro do curso...
Entrada e SaídaOrganizaçã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çãoSistemas Digitais
Depois:Organização de ComputadoresSistemas OperacionaisCompiladores
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áquinaAprender 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 elesEstudos 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ógicaPonto 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/20052ª. Avaliação (A2): 30/06/2005
02 TRABALHOS (Grupos de 2 alunos):T1: Estudo de arquitetura de computadores atuais – entrega: 12/05/2005T2: Trabalho prático de programação – entrega/ demonstração: 28/06 a 05/07/2005
Composição da nota finalMé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 complementaresArquitetura: independente de implementação
Organização: implementação específica
Escolhas em uma área têm influência na outra
Exemplo: Famílias de arquiteturasIBM System 360
Intel 80x86
Questão chave: compatibilidade
Implementação (organização) pode ser diferente
Arquitetura vs. Organização
Exemplo atual: Pentium 4 vs. CeleronMesma arquiteturaDiferentes 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
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 10001010 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.
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çõesLoad/Store
Computacionais
Desvio
Ponto flutuanteco-processador
Gerenciamento de memória
Especiais
R0 - R31
PCHI
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