You are on page 1of 19

Arquitectura e Organizao de Computadores

(micro-arquitectura)
atributos visveis ao programador:
I.S.A.
tamanho da palavra (bits)
registos

Componentes que realizam a


arquitectura:
organizao do CPU (pipeline, ...)
unidades especficas (FPU, MM, ...)
barramentos (largura, velocidade)
frequncia do relgio

A existncia de uma instruo de multiplicao uma questo de


arquitectura ou organizacional?
E a implementao desta instruo com hardware apropriado ou usando
adies sucessivas?

AC1 Arquitectura e Organizao de

Arquitectura e Organizao de Computadores


Exemplo: IBM System/360
Lanado em 1965, inclua 4 modelos (40, 50, 65, 75) com a
mesma arquitectura e diferentes organizaes.
Preos mais baixos correspondiam a piores desempenhos.

Exemplo: Intel x86


Os processadores mais recentes, com uma organizao cada
vez mais complexa e melhores desempenhos, mantm
compatibilidade binria com os processadores anteriores.
Processadores da mesma gerao tm organizaes diferentes
por razes de consumo (potncia dissipada) e preo.

AC1 Arquitectura e Organizao de

Arquitectura e Organizao de Computadores


Diferentes organizaes motivadas por :
diferentes requisitos, e.g., desempenho, custo, potncia
dissipada;
avanos tecnolgicos

Alteraes funcionais implicam alteraes na


arquitectura, pois tm que ser expostas aos
programadores

AC1 Arquitectura e Organizao de

Mquina 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

Trs contribuies fundamentais:


1. Conceito dos programas armazenados
2. Organizao bsica de um computador
3. Arquitectura bsica (tipos de instrues)

AC1 Arquitectura e Organizao de

A arquitectura de von Neumann


Dados

Memria

Instrues

Sequncia de funes
lgicas e aritmticas

Resultados

Interpretador de
instrues
Sinais de controlo

Dados

Funes lgicas e
aritmticas de propsito
geral

AC1 Arquitectura e Organizao de

Resultados

A arquitectura de von Neumann


Conceito dos programas armazenados
O programa consiste em instrues binrias, que so
executadas sequencialmente, e que esto
armazenadas em posies consecutivas de memria
A unidade de controlo descodifica cada instruo e gera
os sinais de controlo necessrios para que os restantes
componentes executem essa instruo
O computador pode ser reprogramado, alterando
apenas o contedo da memria
AC1 Arquitectura e Organizao de

A organizao de von Neumann

Controlpath

Processador

Input

Controlo
Registos

Datapath

Memria

ALU

AC1 Arquitectura e Organizao de

Output

Organizao Intel Pentium IV

AC1 Arquitectura e Organizao de

A arquitectura de von Neumann


(tipos de instrues)
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

Operaes de clculo. Ex.: add, sub, or, and, etc...


Operaes de transferncia 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

Operaes de controlo de fluxo condicional:


saltar se zero, saltar se diferente, saltar se maior, etc...

AC1 Arquitectura e Organizao de

O ciclo do processador - fetch

fetch

decode

execute
Memria

IP

1000

IR

XXXX

Registos

U. C.

A.L.U.

AC1 Arquitectura e Organizao de

XXXX

1000
1001
1002
1003
1004
1005
1006
1007

10

O ciclo do processador - decode

fetch

decode

execute
Memria

IP

1000
1001

IR

XXXX

Registos

U. C.

XXXX

??

A.L.U.

AC1 Arquitectura e Organizao de

1000
1001
1002
1003
1004
1005
1006
1007

11

O ciclo do processador - execute

fetch

decode

execute
Memria

IP

1001

IR

XXXX

Registos

U. C.

A.L.U.

AC1 Arquitectura e Organizao de

XXXX

1000
1001
1002
1003
1004
1005
1006
1007

12

Nveis de abstraco
Computador como uma pilha de mquinas virtuais.
Cada nvel usa os servios disponibilizados pelo nvel abaixo.
Cada utilizador usa o nvel mais conveniente para a tarefa a resolver.
Aplicao
Linguagens de alto-nvel (HLL)
Assembly
Sistema Operativo
software

Instruction Set Architecture

hardware

Micro-arquitectura
Lgica Digital

AC1 Arquitectura e Organizao de

13

Nveis de abstraco
Compiladores convertem um
programa para um nvel inferior
Interpretadores executam
instruo a instruo um
programa de um nvel superior

Compilador
C

Assemblers convertem um
programa de assembly para o
nvel mquina
Linkers ligam vrios mdulos de
um mesmo programa, para gerar
um nico executvel
Loaders carregam um ficheiro
executvel para memria

swap(int v[],int k)
{ int temp;
temp=v[k];
v[k]=v[k+1];
v[k+1]=temp;
}

swap:
muli
add
lw
lw
sw
sw
jr

$2,$5,4
$2,$4,$2
$15,0($2)
$16,4($2)
$16,0($2)
$15,4($2)
$31

Assembler
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000

AC1 Arquitectura e Organizao de

14

Nveis de abstraco
Ling. Alto nvel
Compilador

outros
mdulos

Assembly

bibliotecas
de funes

Assembler
Ficheiro objecto
desenvolvimento

Linker
executvel

execuo
Loader
Memria

AC1 Arquitectura e Organizao de

15

Compilao
Mdulo 1
int total=0;
main ()
{ int i;
i = 10;
soma (i);
}
.globl
total:
main:
pushl
movl
pushl
call
leave
ret

Mdulo 2
extern int total;
void soma (int p)
{
total += p;
}

Compilao
.long 0
%ebp
%esp, %ebp
$10
soma

.globl
soma:
pushl
movl
movl
addl
movl
leave
ret

%ebp
total, %eax
%esp, %ebp
8(%ebp), %eax
%eax, total

Aps a compilao o cdigo assembly mantm informao simblica.

AC1 Arquitectura e Organizao de

16

Montagem (Assembler)
Ficheiros Objecto
00000000 <main>:
0: 55
1: 89 e5
c: 6a 0a
e: e8 fc ff ff ff
13: c9
14: c3
TABELA DE SMBOLOS
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 SMBOLOS
total

O ficheiro objecto de cada um dos mdulos


no contm informao simblica.
As instrues, representadas por mnemnicas aps a
compilao, so convertidas no cdigo binrio
correspondente ao nvel mquina..
Os endereos que no podem ser determinados no
so preenchidos.
Os smbolos cujo endereo ser determinado pelo
linker so guardados na tabela de smbolos.

AC1 Arquitectura e Organizao de

17

Linker
Ficheiro Executvel
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 referncias a smbolos,


trocando-as pelos seus endereos.
As instrues so representadas pelo seu cdigo
binrio e no pelas suas mnemnicas.
Alm do cdigo correspondente funcionalidade do
programa de alto nvel, o linker insere cdigo
necessrio para lidar com o Sistema Operativo.

AC1 Arquitectura e Organizao de

18

Sumrio
Tema

Hennessy [COD]

Arquitectura vs.
Organizao

Stallings [COA]

Bryant[CS:APP]

Sec. 1.1, 2.2

Mquina de von
Neumann

Ver artigos de von Neumann e Godfrey na pgina da


disciplina

Stored Program

Sec 1.8

Organizao de von
Neumann

Sec. 2.1, 3.1


Sec. 2.1, 3.1

Tipos de instrues

Sec 3.1, 3.2, 3.5

Converso entre
nveis

Secs. 3.9, A1 ... A5

Sec 2.1, 3.2

AC1 Arquitectura e Organizao de

Sec. 3.2

19