Arquitectura de Computadores II
Ano lectivo 2008/09
http://ac2.dcti.iscte.pt
1
Apresentação da disciplina
2
Programa

Conceitos básicos sobre CPUs





Conceitos avançados



Datapath, Registos, ALU
Processador MAC-1 e linguagem Assembly
Unidade de controlo
Arquitectura do conjunto de instruções
Medidas de desempenho
Pipelines
Aritmética



Representação de inteiros e reais
Multiplicação de inteiros
Técnicas para aceleração da adição
3
Programa

Memória





Hierarquia da memória
Memória cache
Memória virtual
Memória secundária – discos
I/O





Memory-mapped I/O e Portos
Interrupções
DMA
Arbitragem
Periféricos
4
Objectivos
 Compreender
o funcionamento de um
processador com uma arquitectura básica
 Desenvolver e interpretar pequenos módulos
de programas em linguagem assembly
 Conhecer as principais técnicas utilizadas para
aumento do desempenho de um processador
 Conhecer a hierarquia de um sistema de
memória actual
 Compreender o funcionamento dos principais
periféricos de um computador
5
Requisitos


Arquitectura de Computadores I

Circuitos combinatórios

Circuitos sequenciais (registos e controlo)

Memória
Introdução à Programação

Variáveis e matrizes

Ciclos e condições
6
Bibliografia

Recomendada:


Computer Organization and Design, 3rd Edition
Patterson & Henessy, Morgan Kaufman, 2005
Outros livros

Structured Computer Organization, 5th Edition
Andrew Tanenbaum, Prentice-Hall, 2005

Logic and Computer Design Fundamentals, 3rd Edition
Mano & Kime, Prentice-Hall, 2007
7
Avaliação
 Avaliação
2
Trabalhos (25% cada um)

A nota é fixada por uma discussão oral
 Exame

(50%)
Sobre toda a matéria. Nota mínima: 8
 Avaliação
O
periódica
por exame
exame conta 100%. Nota mínima: 10
8
Corpo docente



Eng. Tomás Brandão (responsável)

[email protected]

Gab. D6.18
Prof. Luís Cancela

[email protected]

Gab. D6.35
Prof. Carlos Sá da Costa
(coordenação do grupo AC/SO)
9
Aulas práticas e de dúvidas
 Aulas
Práticas
 Resolução
de exercícios
 Apoio aos trabalhos
 Discussões dos trabalhos (?)
 Aulas
de dúvidas
 3ª
feira às 14:00 (Gab. D6.18)
 4ª feira às 14:30 (Gab. D6.35)
 5ª feira às 14:00 (Gab. D6.18)
10
Transferências entre registos
11
Registos

Registo – Conjunto de flip-flops e portas lógicas
adicionais que permite o armazenamento e
manipulação de informação

Operações típicas

Inicializar o registo com 0’s – Clear (ou Reset)

Carregar o registo com novos dados – Load

Deslocar os bits dentro do registo – Shift
12
Registos

Din
Exemplo de um circuito
Variáveis de controlo:
R2
L1 – carregamento de R1
L2
Load
C1 – Clear de R1 (activo a low)
L2 – Carregamento de R2
S – Selecção da operação:
S
Add/Sub
0 – soma
1 – subtrai
Linhas grossas são
barramentos ou Bus
R1
Load
Clear
L1
C1
Dout
13
Registos

Din
Exemplos de operações
C1
L1
L2
S
Operação
0
x
0
x
R1  0
1
0
0
x
NOP (não faz nada)
1
0
1
x
R2  Din
1
1
0
0
R2
L2
Load
S
Add/Sub
R1  R1 + R2
1
1
0
1
R1  R1 – R2
1
1
1
0
R1  R1 + R2,
R2  Din
1
1
1
1
R1  R1 – R2,
R2  Din
R1
Load
Clear
L1
C1
Dout
14
Notação utilizada
Designação
Significado
Exemplos
Letras (e números)
Registos
R0; AC; PC; IR
Parêntesis
Partes de um registo
R2(1); R2(0...3); AC(8..15)

Carregamento
R3  R2 + R1; R0  4
Vírgula
Operações em simultâneo
R1 R0, R2 R3+R1
M[x]
Posição de memória x
R0 M[1023]; R2 M[R1]
Conteúdo do
endereço 1023
Operação
Significado
Conteúdo do endereço
indicado pelo registo R1
Operação
Significado
~
Negação (bit-a-bit)
+
Soma
&
AND (bit-a-bit)
-
Subtracção
|
OR (bit-a-bit)

Multiplicação

XOR (bit-a-bit)
<<
Deslocamento para a esquerda
15
Utilização de multiplexers

Selecção da origem de dados
Variáveis
de controlo
C1
C2
S
Load
R1
n
0
MUX
n
R2
1
n
R0
C2
C1
Função
0
x
---
1
0
R0  R1
1
1
R0  R2
16
Utilização de multiplexers
R0
C1
L0
Load
R1
Load
R2
L2
Exemplos de operações
Operação
S1
L1
C0
S0
0
1 MUX
2
3
C1 C0 L2
L1
L0
R0  R1
0
1
0
0
1
R0  R1, R2  R1
0
1
1
0
1
R1  Din
1
1
0
1
0
R0  R1, R2  R0
Impossível
Bus de dados
externos
Load
Din
17
Utilização de multiplexers

Selecção das operações
R2
R1
S0
L0
S0
Função
0
x
---
1
0
R0  ~R2
1
1
R0  R1 + R2
MUX
Add
S
0
1
L0
Load
R0
18
Utilização de portas tri-state

Princípio de funcionamento
Enable = 0
Enable
A
A
Y
Y
Enable
A
Y
0
x
alta impedância
1
0
0
1
1
1
Y fica isolado de A
(alta impedância)
Enable = 1
A
Y
Y=A
19
Utilização de portas tri-state

Registos bidireccionais
Reg
Registo bidireccional
com saídas tri-state
EN
Dados
Load
Esquema
Reg
Dados
Load
Nota: existe uma porta tri-state
por cada linha de dados
EN
20
Utilização de portas tri-state

EN – Controlo da saída

Load – Controlo da entrada
R0
L0
E0
R1
Exemplos
Operação
E2 E1 E0 L2
L1
L0
R0  R1
0
1
0
0
0
1
R0  R1, R2  R1
0
1
0
1
0
1
R1  Din
1
0
0
0
1
0
R0  R1, R2  R0
Load
EN
Din, Dout
L1
E1
Load
EN
R2
Impossível
L2
E2
Load
EN
21
Utilização de portas tri-state
2/4
RD0
RD1
A0
A1
R0
0
1
2
3
L0
E0
Selecção do
registo destino
Load
EN
R1
L1
Selecção do
registo fonte
E1
2/4
RF0
RF1
A0
A1
Din, Dout
Load
EN
R2
0
1
2
3
L2
E2
Load
EN
22
Exemplo
Fonte para
o Bus B
FB0
FB1
S1 S0
R0
0
1 MUX
2
3
Load
Destino
R1
2/4
RD0
RD1
A0
A1
Load
0
1
2
3
R2
Load
0
1
2 MUX
3
Data in
S1 S0
Data out
Fonte para
o Bus A
FA1
FA0
A
B
ALU
C
23
Arquitectura básica de um CPU
24
Datapath
Juntando mais alguns componentes...
LE
H
RB0
RB1
S1 S0
Load
Dec
RC0
RC1
A0
A1
Load
0
1
2
3
Load
Load
R0
0
1 MUX
2
3
BUS B
Deslocamento
R1
R2
0
1
2 MUX
3
R3
S1 S0
RA1
RA0
ALU
BUS A
0
F
E
S
1
MUX
MF
BUS C
25
Datapath
Em blocos:
BUS C
RA RB
2
F
2
H MF Estado
3
2
4
BUS B
RC
2
LE
Guardar dados
Banco de
Registos
Unidade
Funcional
BUS A
Operações aritméticas
Operações lógicas
26
Datapath

Contudo, este esquema ainda não é operacional

Falta-lhe a possibilidade de comunicar com o exterior

Com uma memória RAM, por exemplo

E a possibilidade de carregar constantes

Como resolver? Uma hipótese será:

Acrescentar mais multiplexers e mais sinais de controlo

Os barramentos A, B e C passam a ter funcionalidades
adicionais:

Bus A – para endereçar a memória

Bus B – para constantes e dados a escrever na memória

Bus C – para dados lidos da memória
27
Comunicação datapath-memória
Selecção de
constantes
Selecção de dados
vindos da memória
BUS C
RA RB
2
Constante
MB
F
2
H MF Estado
3
0
2
4
MD
BUS B
1
RC
2
Banco de
Registos
LE
Unidade
Funcional
BUS A
0
1
MW
Memória
Controlo de
escrita/leitura
na memória
Din
Endereço
Dout
R/W
28
Palavras de controlo

Combinação binária correspondente ao conjunto
dos sinais de controlo
Possível estrutura de uma palavra de controlo
para o esquema anterior:
15
14
RC
13
12
RB
Registos
11
10
RA
9
8
F
7
6
5
H
4
MF
Unidade funcional
3
2
1
0
LE MD MB WR
Mem / Reg /
Const
29
Unidade de controlo
Gera as palavras de controlo
de acordo com as instruções
de um programa
Dados
Registos
Sinais de controlo
Memória
Endereços
Unidade
de Controlo
Sinais de controlo
Unidade
funcional
Flags
Dados
30
Execução de uma instrução
Micro-processador
Palavra de
Unidadecontrolo
de Controlo
Datapath
Flags
Endereço de
instrução
End. Din
R/W
Instrução
D
out
Memória
31
Download

Aula 1