arquitetura de computadores - introduçãofmc/arqcomp/aula1.pdfintrodução à computação sistemas...

30
Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática – UFG 1o. Semestre / 2005 Programa e Introdução

Upload: others

Post on 10-Sep-2021

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

Arquitetura de Computadores

Prof. Fábio M. CostaInstituto de Informática – UFG1o. Semestre / 2005

Programa e Introdução

Page 2: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 3: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 4: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

Roteiro do curso...

IntroduçãoArquitetura vs. Organização de Computadores

Organização estruturada de computadores

Interação com outras disciplinas

Page 5: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 6: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 7: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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)

Page 8: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 9: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

Roteiro do curso...

Suporte ao Sistema OperacionalConceitos básicos de sistemas operacionais

Escalonamento de processos

Gerenciamento de memória

Page 10: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 11: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 12: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

Ê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

Page 13: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 14: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 15: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 16: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 17: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 18: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 19: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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)

Page 20: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 21: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 22: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 23: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

Organização Estruturada: Computadores multi-níveis

[Tanenbaum, 1999]

Page 24: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 25: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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.

Page 26: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

O Limite Hardware / Software..

SOFTWARESOFTWARE

Page 27: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

O Limite Hardware / Software

instruction set

software

hardware

Page 28: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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, ...)

Page 29: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

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

Page 30: Arquitetura de Computadores - Introduçãofmc/arqcomp/Aula1.pdfIntrodução à Computação Sistemas Digitais Depois: Organização de Computadores Sistemas Operacionais Compiladores

Leitura Recomendada

Tanenbaum, Cap. 1

Patterson & Hennessy: Cap. 1