unidade central de processamento

26
Unidade Central de Processamento Sistemas Digitais CIn-UFPE

Upload: march

Post on 08-Jan-2016

48 views

Category:

Documents


6 download

DESCRIPTION

Unidade Central de Processamento. Sistemas Digitais CIn-UFPE. Unid. controle. Memória Programas + Dados. Vídeo. IR. PC. MAR. Teclado. Gerais. MBR. ALU. E/S. Unid. processamento. Buffers. Como funciona um computador simples. IR – Instruction Register PC – Program Counter - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Unidade Central de Processamento

Unidade Central de Processamento

Sistemas Digitais

CIn-UFPE

Page 2: Unidade Central de Processamento

Como funciona um computador simples

Vídeo

Teclado

Memória

Programas+

Dados

E/S

Buffers

ALU

PCIR

Gerais

MARMAR

MBRMBR

Unid. processamento

Unid. controle

IR – Instruction RegisterPC – Program CounterMAR – Memory Address RegisterMBR – Memory Bus Register

Page 3: Unidade Central de Processamento

Como funciona um computador?

Busca a próximainstrução

Busca a próximainstrução

Executa a instrução

Executa a instrução

Início

Término

Page 4: Unidade Central de Processamento

Executando um programa

Busca instruçãoBusca instrução

Executa instruçãoExecuta instrução

Busca operandoBusca operando

Decodifica instruçãoDecodifica instrução

Armazena resultadoArmazena resultado

Incrementa PCIncrementa PC

Page 5: Unidade Central de Processamento

Exemplo – Declarações simples Muitas vezes o processamento de uma informação exige uma seqüência de

transferência até que a tarefa seja terminada.

Exemplo 01:/* Programa que a função (a+b-c) e mostra o resultado (z = a+b-c)Sigad: CLRLD /* Clear acumulador Y, Z e carrega valor de A em X

ADD /*ADD 1o. valor, guarda resultado e lê novo valor ADD /*ADD 2o .valor, guarda resultado e lê novo valor SUB /*SUB 3o .valor, guarda resultadoDISP Sigad /*mostra resultado e repete cálculo em Z

Como construir uma unidade de controle que implemente este programa?Estado Estado/saída

QA Sigad: QB/CLRLDQB QC/ADDQC QD/ADDQD QE/SUBQE QA/DISP

Y

+/- X

controleTx

TyZ

Tz

entrada

saída

A

clk

acumulador

Tula

Page 6: Unidade Central de Processamento

A = a

Z = a+b-c

Clk

Y

+/-X

controleTx

Ty

Tz

QA Sigad: QB/CLRLD

QB QC/ADD

QC QD/ADD

QD QE/SUB

QE QA/DISP

entrada

saída

A = a

-

- -

Q B ADD

A=bY=0X=aZ=0 Ty=1 Tx=1 Tz=2 Tula=0

A = b

a

0 0

Q C ADD

A=cY=aX=bZ=0 Ty=1 Tx=1 Tz=2 Tula=0

A = c

b

a 0

Q D SUB

A=-Y=a+bX=cZ=0 Ty=1 Tx=1 Tz=2 Tula =1

A = -

c

a+b 0

Q E

A=-Y=a+b-cX=-Z=0 Ty=0 Tx=0 Tz=1

DISP

A = -

-

a+b-c 0

A=-Y=-X=-Z= a+b-c

Q A

A = -

-

- a+b-cZ

Clk

Clk

T[0] = clear[1] = load[2] = hold

Q A CLRLD

A=aY=-X=-Z=- Ty=0 Tx=1 Tz=0 Tula=0

Instruções Ty, Tx, Tz Tula

CLRLD = [ 0, 1, 0, x ] ADD = [ 1, 1, 2, 0 ]SUB = [ 1, 1, 2, 1 ]DISP = [ 0, 0, 1, x ]

TulaTz

Tula[0] = +[1] = -

-aa+ba+b-c-

Page 7: Unidade Central de Processamento

saídaY

+/-X

controleTx

TyZ

Tz

entrada

A

clk

Z = a + b - c

X = -; Y=-; Z= -; 00 [0,1,0,x] CLRLD end+0(a)

X = a; Y=0; Z= 0;

05 - -------

memória

cpu

memória

cpu

memória

01 [1,1,2,0] ADD end+1(b)

X = b; Y=a; Z= 0;02 [1,1,2,0] ADD end+2(c) X = c ; Y= a+b; Z =0;03 [1,1,2,1] SUB -

X = -; Y= a+b-c; Z =0; X = -; Y= a+b-c; Z =a+b-c;

04 [0,0,1,x] DISP -

memória

Inst |dados

Z = a+b-c

Busca instruçãoBusca instrução

Executa instruçãoExecuta instrução

Busca operandoBusca operando

Decodifica instruçãoDecodifica instrução

Armazena resultadoArmazena resultado

Incrementa PCIncrementa PC

Busca instruçãoBusca instrução

Executa instruçãoExecuta instrução

Busca operandoBusca operando

Decodifica instruçãoDecodifica instrução

Armazena resultadoArmazena resultado

Incrementa PCIncrementa PC

Execução de um progamaContador de

programa

Memória:

Instruções end(dados)

Contador do

Programa (PC)

cpu

Instruções Ty, Tx, Tz Tula

CLRLD = [ 0, 1, 0, x]ADD = [ 1, 1, 2, 0]SUB = [ 1, 1, 2, 1]DISP = [ 0, 0, 1, x]

Tula

Page 8: Unidade Central de Processamento

Memória

0 15

sinal

Dado

Instrução

magnitude

0 153

Opcode Endereço

4

Opcode

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 9: Unidade Central de Processamento

Executando um programa

1 9 4 0

5 9 4 12 9 4 1

0 0 0 3

0 0 0 2

3 0 0

1 9 4 0

3 0 0

9 4 1

9 4 0

3 0 2

3 0 1PC (endereço)

AC (operando)

IR (Instrução)

Registradores da CPU

...

MemóriaOpcode | endereço

dados

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 10: Unidade Central de Processamento

Executando um programa

1 9 4 0

5 9 4 12 9 4 1

0 0 0 3

0 0 0 2

3 0 0

1 9 4 0

3 0 0

9 4 1

9 4 0

3 0 2

3 0 1

PC

AC

IR

Registradores da CPU

...

0 0 0 3

MemóriaOpcode | endereço

dados

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 11: Unidade Central de Processamento

Executando um programa

1 9 4 0

5 9 4 12 9 4 1

0 0 0 3

0 0 0 2

3 0 1

5 9 4 1

3 0 0

9 4 1

9 4 0

3 0 2

3 0 1

PC

AC

IR

Registradores da CPU

...

0 0 0 3

MemóriaOpcode | endereço

dados

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 12: Unidade Central de Processamento

Executando um programa

1 9 4 0

5 9 4 12 9 4 1

0 0 0 3

0 0 0 2

3 0 1

5 9 4 1

3 0 0

9 4 1

9 4 0

3 0 2

3 0 1

PC

AC

IR

Registradores da CPU

...

0 0 0 5

161616 523

MemóriaOpcode | endereço

dados

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 13: Unidade Central de Processamento

Executando um programa

1 9 4 0

5 9 4 12 9 4 1

0 0 0 3

0 0 0 2

3 0 2

2 9 4 1

3 0 0

9 4 1

9 4 0

3 0 2

3 0 1

PC

AC

IR

Registradores da CPU

...

0 0 0 5

MemóriaOpcode | endereço

dados

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 14: Unidade Central de Processamento

Executando um programa

1 9 4 0

5 9 4 12 9 4 1

0 0 0 3

0 0 0 5

3 0 2

2 9 4 1

3 0 0

9 4 1

9 4 0

3 0 2

3 0 1

PC

AC

IR

Registradores da CPU

...

0 0 0 5

MemóriaOpcode | endereço

dados

0001 AC <- Mem.0010 Mem. <- AC0101 AC <- AC + Mem.

Page 15: Unidade Central de Processamento

Processor

Memory Input/Ouput

Data Bus

Address Bus

PC IR

AC

MDR

MAR

ALU

Control Unit

Arquitetura do computador

PC = Program counterIR = Instruction registerAC = AcumuladorMAR = Memory Address RegisterMDR = Memory Data Register ALU = Arithmetic & Logic Unit

MemóriaDispositivo de entrada e saída(E/S)

Page 16: Unidade Central de Processamento

Arquitetura do computador

PC - program counter – indica a próxima instrução a ser executada.

IR - Instruction register – recebe a instrução a ser decodificada pela CPU.

AC – Acumulador (registrador auxiliar). Guarda temporariamente valores sendo calculados.

MAR – Registrador que indica a próxima posição de memória a ser referenciada. Conectado ao barramento de endereços.

MDR – Registrador usado para receber ou transmitir dados. Conectado ao barramento de dados.

ALU (ULA) – Unidade Lógica

Page 17: Unidade Central de Processamento

Instruções básicas

Opcode Address

15 8 7 0

Formato da instrução do computador

Page 18: Unidade Central de Processamento

Assembly Language MachineLanguageLOAD B 0211ADD C 0012

CPU - P1

Conjunto de instruções básicas– Exemplo de um programa no P1:

A = B+C

A (acumulador), B e C são endereços de memória

LOAD address AC <= contents of memory address (02) B(11)

ADD address AC <= AC + contents of memory address (00) C(12)

Page 19: Unidade Central de Processamento

Fetch Next Instruction

Decode Instruction

Execute Instruction

CPU - P1

Fluxo de execução de instruções

Page 20: Unidade Central de Processamento

EXECUTE

MAR=PC IR=MDR

PC=PC+1 Read Memory

MDR=AC Write Memory

AC=MDR AC=AC+MDR

MAR=IR Read

Memory

FETCH

DECODE

Opcode=ADD Opcode=LOAD Opcode=STORE

...

CPU - P1

Fluxo de execução de instruções detalhada

Page 21: Unidade Central de Processamento

CPU - P1

LOAD B

Opcode address

02 11

Load address AC<- conteúdo do endereço de memória

1.

2.

PC

ADD C

Load B 1.

02 11

00 04

2. ADD C

00

00 12

00 12 01 01

02

1100

04

00

1200

03

00 03 00 04

00 0

4

00 07

02 1100 0400 1200 03

0112110112110112

A = B+CA (acumulador), B e C são endereços de memória

Assembly Language MachineLanguageLOAD B 0211ADD C 0012

00 07

Page 22: Unidade Central de Processamento

Projetos – 2a unidade

Page 23: Unidade Central de Processamento

Projeto 1:Máquina de vender bombons

Implementar uma máquina que vende bombons, com as seguintes funcionalidades:– A máquina aceita moedas de 5 e 10 centavos– O valor de cada bombom é de 15 centavos– A máquina não dá troco, mas guarda os 5 centavos caso o cliente deposite duas

moedas de 10 Centavos– O bombom é liberado automaticamente assim que o valor atinge um valor igual ou

maior que 15C.– Os valores acumulados são apresentados no display.

Desenvolver todo o projeto por escrito, no papel– Diagrama de estados– Tabelas verdade– Esquemático– Mostra simulação na ferramenta Quartus+II – Implementar na placa FPGA

Page 24: Unidade Central de Processamento

Projeto

b

a

c

d

e

f gclk

4

Controle

Decoder

BCD7-Segm.

4

Dispositivo de I/OSaídaEntrada

reset

b

a

c

d

e

f g

Liberar bombom

Moedas5C

10C

Page 25: Unidade Central de Processamento

Y

ULAX

Controle

Decodificadorde instruções

Tx

TyZ

Tz

Dispositivo de saída

clk

acumulador

Tula

PC

Memória

Inst

ruçõ

es

| D

ados

Instrução Dados

4 bits 4 bits

0 1 ……..n

Barramento de dados

Barramento de dados (Instruções)

CPU

Status

Barramento de Endereços

Projeto 2: CPU

b

a

c

d

e

f g

decodificador

Page 26: Unidade Central de Processamento

Projeto Implementar as seguintes funções na arquitetura computacional

projetada

1. A = B+C-D

2. A = (B+C)/2

Onde:

A é o acumulador

B, C e D são endereços de memória que armazenam os dados (positivo ou negativos) a serem processados

A, B, C e D possuem 4 bits