Arquitectura e Organização de Computadores

Documentos relacionados
Arquitectura e Organização de Computadores

Lic. Engenharia de Sistemas e Informática

Lic. Engenharia de Sistemas e Informática

AJProença, Sistemas de Computação, UMinho, 2017/18 1

Estrutura do tema ISC

Organização de um computador. O que é um computador Organização de um computador Arquitectura de von Neumann

Linguagens de Programação Classificação

Organização e Arquitetura de Computadores INTRODUÇÃO

Ordem de Bytes: Big Endian e Little Endian

Organização de Sistemas de Computadores

Infraestrutura de Hardware. Funcionamento de um Computador

Introdução à Computação: Máquinas Multiníveis

SSC510 Arquitetura de Computadores 1ª AULA

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Introdução. (Aula 2) Organização Estruturada de Computadores

Introdução à Organização de Computadores. Aula 8

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

Introdução (Aula 2) Introdução Arquitetura de Hardware. Organização Estruturada de Computadores. Introdução Conceitos (2) Introdução Conceitos (1)

Aplicação. Programa Linguagem de Alto Nível. Programa em Linguagem Assembly. Programa em Linguagem Máquina

Prof. Eliezer Soares Flores 1 / 22

TEÓRICA. lb $t0, 1($t1)

SSC0112 Organização de Computadores Digitais I

Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação

Introdução à Computação

Organização de computadores. Aula 05

Programação Estruturada

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

Arquitetura e Organização de Computadores

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Introdução ao Fortran 90

Sistemas Operacionais

Programação ao nível da máquina

Programando em Assembly

Organização de Computadores Aula 05

INTRODUÇÃO A ARQUITETURA DE COMPUTADORES FELIPE G. TORRES

Unidade de Controle. UC - Introdução

AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:

Conjunto de Instruções e Modelos de Arquiteturas

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

Arquitetura e Organização de Computadores

Organização de Computadores

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Organização Básica de computadores e linguagem de montagem

Arquitetura e Organização de Computadores

Arquitetura de Computadores

William Stallings Computer Organization and Architecture

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

Prof. Leonardo Augusto Casillo

Arquitetura de Um Computador

Organização ou MicroArquitectura

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Organização de Computadores I

Prof. Gustavo Oliveira Cavalcanti

Computador Cleópatra

Nível Máquina Formatos de Instruções

PSI3441 Arquitetura de Sistemas Embarcados

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Introdução. Arquitetura e Organização de Computadores I. Programa. Arquitetura e Organização de. Computadores. Capítulo 1.

William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU

Aula 06 - Máquina Multinível e Von Neumann

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

SSC304 Introdução à Programação Para Engenharias

Aula Fev-07 Arquitectura de Computadores 2006/07

Conceitos básicos sobre computadores (continuação)

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

Sistemas Operacionais João Bosco T. Junior. Sistemas Operacionais João Bosco Junior - V1.3

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Unidade Central de Processamento UCP (CPU)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Infraestrutura de Hardware. Instruindo um Computador

Organização e Projeto de Computadores

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Arquitectura de Computadores II. Introdução

SSC0112 Organização de Computadores Digitais I - Turma 2

Introdução à Computação MAC0110

Sâmia Rodrigues Gorayeb. Arquitetura de Computadores Linguagem de Máquina

INTRODUÇÃO À ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Função e Estrutura. Introdução Organização e Arquitetura. Organização e Arquitetura

Sistemas Operacionais

Execução detalhada de instruções

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Função Fundamental do SO

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Procedimentos. Sistemas de Computação

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

16/8/2010. A arquitetura de um sistema computacional representa o modelo da organização e funcionamento de um sistema de processamento

Conjunto de Instruções e Modelos de Arquiteturas

16. Compilação no Linux

Introdução à Computação: Arquitetura von Neumann

PSI3441 Arquitetura de Sistemas Embarcados

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Qual o primeiro nome do computador à base de transístores?

Arquitectura de Computadores

sumário 1 bases numéricas 1 2 sistemas de numeração em computação introdução representação de números... 3

Execução detalhada de instruções

Transcrição:

Arquitectura e Organização de Computadores (micro-arquitectura) atributos visíveis ao programador: I.S.A. tamanho da palavra (bits) registos Componentes que realizam a arquitectura: organização do CPU (pipeline,...) unidades específicas (FPU, MM,...) barramentos (largura, velocidade) frequência do relógio A existência de uma instrução de multiplicação é uma questão de arquitectura ou organizacional? E a implementação desta instrução com hardware apropriado ou usando adições sucessivas? AC1 Arquitectura e Organização de Computadores 1 1

Arquitectura e Organização de Computadores Exemplo: IBM System/360 Lançado em 1965, incluía 4 modelos (40, 50, 65, 75) com a mesma arquitectura e diferentes organizações. Preços mais baixos correspondiam a piores desempenhos. Exemplo: Intel x86 Os processadores mais recentes, com uma organização cada vez mais complexa e melhores desempenhos, mantêm compatibilidade binária com os processadores anteriores. Processadores da mesma geração têm organizações diferentes por razões de consumo (potência dissipada) e preço. AC1 Arquitectura e Organização de Computadores 1 2

Arquitectura e Organização de Computadores Diferentes organizações motivadas por : diferentes requisitos, e.g., desempenho, custo, potência dissipada; avanços tecnológicos Alterações funcionais implicam alterações na arquitectura, pois têm que ser expostas aos programadores AC1 Arquitectura e Organização de Computadores 1 3

Máquina de von Neumann John von Neumann, First Draft of a Report on the EDVAC, Moore School of Electrical Engineering, Univ. of Pennsylvania June, 30, 1945 Três contribuições fundamentais: 1. Conceito dos programas armazenados 2. Organização básica de um computador 3. Arquitectura básica (tipos de instruções) AC1 Arquitectura e Organização de Computadores 1 4

A arquitectura de von Neumann Dados Sequência de funções lógicas e aritméticas Resultados a) Visão sistémica Instruções Interpretador de instruções Memória Dados Funções lógicas e aritméticas de propósito geral Sinais de controlo Resultados b) Visão estrutural AC1 Arquitectura e Organização de Computadores 1 5

A arquitectura de von Neumann Conceito dos programas armazenados O programa consiste em instruções binárias, que são executadas sequencialmente, e que estão armazenadas em posições consecutivas de memória A unidade de controlo descodifica cada instrução e gera os sinais de controlo necessários para que os restantes componentes executem essa instrução O computador pode ser reprogramado, alterando apenas o conteúdo da memória AC1 Arquitectura e Organização de Computadores 1 6

A organização de von Neumann Processador Controlpath Controlo Input Registos ALU Datapath Memória Output AC1 Arquitectura e Organização de Computadores 1 7

Organização Intel Pentium IV AC1 Arquitectura e Organização de Computadores 1 8

A arquitectura de von Neumann (tipos de instruções) The really decisive considerations [...] in selecting an [instruction set] are more of a practical nature: simplicity of the equipment demanded[...] and the clarity of its application to the actually important problems[...] Burks, Goldstine and von Neumann, 1947 Operações de cálculo. Ex.: add, sub, or, and, etc... Operações de transferência de dados: reg reg, reg mem, mem mem, input/output The utility of a [...] computer lies in the possibility of using a given sequence of instructions repeatedly, the number of times it is iterated being dependent upon the results of the computation. Burks, Goldstine and von Neumann, 1947 Operações de controlo de fluxo condicional: saltar se zero, saltar se diferente, saltar se maior, etc... AC1 Arquitectura e Organização de Computadores 1 9

O ciclo do processador - fetch fetch decode execute Memória IP IR 1000 XXXX XXXX 1000 1001 Registos U. C. 1002 1003 1004 1005 A.L.U. 1006 1007 AC1 Arquitectura e Organização de Computadores 1 10

O ciclo do processador - decode fetch decode execute Memória IP IR 1000 1001 XXXX XXXX 1000 1001 Registos U. C.?? 1002 1003 1004 1005 A.L.U. 1006 1007 AC1 Arquitectura e Organização de Computadores 1 11

O ciclo do processador - execute fetch decode execute Memória IP IR 1001 XXXX XXXX 1000 1001 Registos U. C. 1002 1003 1004 1005 A.L.U. 1006 1007 AC1 Arquitectura e Organização de Computadores 1 12

Níveis de abstracção Computador como uma pilha de máquinas virtuais. Cada nível usa os serviços disponibilizados pelo nível abaixo. Cada utilizador usa o nível mais conveniente para a tarefa a resolver. Aplicação Linguagens de alto-nível (HLL) Assembly Sistema Operativo Instruction Set Architecture software hardware Micro-arquitectura Lógica Digital AC1 Arquitectura e Organização de Computadores 1 13

Níveis de abstracção Compiladores convertem um programa para um nível inferior Interpretadores executam instrução a instrução um programa de um nível superior Assemblers convertem um programa de assembly para o nível máquina Linkers ligam vários módulos de um mesmo programa, para gerar um único executável Loaders carregam um ficheiro executável para memória Compilador C Assembler swap(int v[],int k) { int temp; temp=v[k]; v[k]=v[k+1]; v[k+1]=temp; } swap: muli $2,$5,4 add $2,$4,$2 lw $15,0($2) lw $16,4($2) sw $16,0($2) sw $15,4($2) jr $31 00000000101000010000000000011000 00000000100011100001100000100001 10001100011000100000000000000000 10001100111100100000000000000100 10101100111100100000000000000000 10101100011000100000000000000100 00000011111000000000000000001000 AC1 Arquitectura e Organização de Computadores 1 14

Ling. Alto nível Compilador Níveis de abstracção outros módulos Assembly Assembler bibliotecas de funções Ficheiro objecto Linker desenvolvimento execução executável Loader Memória AC1 Arquitectura e Organização de Computadores 1 15

int total=0; main () { int i; } i = 10; soma (i); Compilação Módulo 1 Módulo 2.globl total:.long 0 main: pushl %ebp movl %esp, %ebp pushl $10 call soma leave ret Compilação extern int total; void soma (int p) { total += p; }.globl soma: pushl movl movl addl movl leave ret %ebp total, %eax %esp, %ebp 8(%ebp), %eax %eax, total Após a compilação o código assembly mantém informação simbólica. AC1 Arquitectura e Organização de Computadores 1 16

Ficheiros Objecto Montagem (Assembler) 00000000 <main>: 0: 55 1: 89 e5 c: 6a 0a e: e8 fc ff ff ff 13: c9 14: c3 TABELA DE SÍMBOLOS soma 00000000 <soma>: 0: 55 1: a1 00 00 00 00 6: 89 e5 8: 03 45 08 b: a3 00 00 00 00 10: c9 11: c3 TABELA DE SÍMBOLOS total O ficheiro objecto de cada um dos módulos não contém informação simbólica. As instruções, representadas por mnemónicas após a compilação, são convertidas no código binário correspondente ao nível máquina.. Os endereços que não podem ser determinados não são preenchidos. Os símbolos cujo endereço será determinado pelo linker são guardados na tabela de símbolos. AC1 Arquitectura e Organização de Computadores 1 17

Linker Ficheiro Executável 080482f4 <main>: 80482f4: 55 80482f5: 89 e5 8048300: 6a 0a 8048302: e8 05 00 00 00 8048307: c9 8048308: c3 8048309: 90 90 90 0804830c <soma>: 804830c: 55 804830d: a1 74 93 04 08 8048312: 89 e5 8048314: 03 45 08 8048317: a3 74 93 04 08 804831c: c9 804831d: c3 O linker resolve todas as referências a símbolos, trocando-as pelos seus endereços. As instruções são representadas pelo seu código binário e não pelas suas mnemónicas. Além do código correspondente à funcionalidade do programa de alto nível, o linker insere código necessário para lidar com o Sistema Operativo. AC1 Arquitectura e Organização de Computadores 1 18

Sumário Tema Hennessy [COD] Stallings [COA] Bryant[CS:APP] Arquitectura vs. Organização Sec. 1.1, 2.2 Máquina de von Neumann Ver artigos de von Neumann e Godfrey na página da disciplina Stored Program Organização de von Neumann Tipos de instruções Sec 1.8 Sec 3.1, 3.2, 3.5 Sec. 2.1, 3.1 Sec. 2.1, 3.1 Sec 2.1, 3.2 Conversão entre níveis Secs. 3.9, A1... A5 Sec. 3.2 AC1 Arquitectura e Organização de Computadores 1 19