Uma Arquitetura Concreta para a Máquina de von...

45
Uma Arquitetura Concreta para a Máquina de von Neumann Jorge Fernandes Fevereiro de 2005

Transcript of Uma Arquitetura Concreta para a Máquina de von...

Page 1: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Uma Arquitetura Concreta para a Máquina de von Neumann

Jorge FernandesFevereiro de 2005

Page 2: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Uma Arquitetura Concreta para a Máquina de von Neumann

• Proposta em 1946• Máquina composta por órgãos:

– Memória (MEM)• Armazena dados, onde alguns destes dados são interpretados como

instruções de um programa a ser executado pela CPU– Unidade Central de Processamento

• Unidade de controle (UC)• Unidade de cálculos aritméticos e lógicos (UAL)• Registrador de instrução (IR)• Ponteiro de instrução (IP)• Registrador de uso geral (acumulador - ACC)

– Dispositivos de Entrada e Saída• INPUT_DEVICE• OUTPUT_DEVICE

Page 3: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Organização Geral de um Computador de von Neumann

Hardware

Processador

Memória(RAM)

Dispositivode Entrada 1Dispositivode Entrada 2

Dispositivode Saída 1Dispositivode Saída 2

Dispositivo de Entrada e Saída (Híbrido)

Page 4: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Um “Computador Visível” para Entender como o Sofware Funciona

Processador(CPU)

INPUT_DEVICE

OUTPUT_DEVICE

MEM-Memória com Posições Endereçaveismem[0] mem[1] mem[2] mem[3]

mem[4] mem[5] mem[6] mem[7]

mem[8] mem[9] mem[10] mem[11]

mem[12] mem[13] mem[14] mem[15]

Sinais de Controle (wr)

Sinais de Controle (rd)

Fluxo de dados

Fluxo de dados

Fluxo de dados

Sinais de controle(rd/wr)

Page 5: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

O Processador ou

Central Processing Unit – CPU ou

Unidade Central de Processamento – UCP

Page 6: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Atenção!

O termo CPU é muitas vezes usado de forma errônea para se referir ao GABINETE de um

computador pessoal, que contém, além da CPU, dispositivos de armazenamentos, entrada e saída

de dados, memória RAM, etc

Page 7: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

O Processador é Classicamente Organizado em Três Partes

• Registradores– Pequeno conjunto de células com nomes específicos,

para leitura e gravação de dados em baixíssimo tempo.• Unidade Aritmética Lógica (UAL)

– Efetua transformações sobre dados (soma, subtração,operações lógicas - and, ou, etc.)

• Unidade de Controle– Interpretar os comandos ou instruções do software,

controlando as transformações sobre dados e o fluxo destes dados entre todas as outras partes do hardware.

Page 8: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Organização interna do Processador (CPU)

CPUDados Memória (MDR)

Endereços Memória (MAR)

Registrador Instrução (IR)

Acumulador (ACC)

Ponteiro de Instrução (IP)

Registradores

Unidadede Controle

UALaddsub

rdwr

Page 9: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

CPU

Registrador Instrução (IR)

Acumulador (ACC)

Ponteiro de Instrução (IP)

RegistradoresUnidade

de Controle

UAL

rdwr

addsub

Organização simplificada do Processador

Fluxos de dados para ler e gravar na memória

Page 10: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Memória RAM

• Conjunto de Células para Leitura (rd) e Gravação(wr) de Dados

• Diretamente Endereçáveis – Não há diferença no tempo de leitura, qualquer que seja

a posição lida– Não há diferença no tempo de gravação, qualquer que

seja a posição gravada

• Alta Velocidade no Armazenamento eRecuperação

Page 11: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

?

Operações sobre Memória RAM (execute a animação para ver ciclos de leitura e escritura)

mem[1.000] mem[1.001] mem[1.002] ...

mem[0] mem[1] mem[2] mem[3]

mem[4] mem[5] mem[6] mem[7]

mem[8] mem[9] mem[10] mem[11]

500 -1 0

934428213

7

0

0

000

7 ...77

509

DADO:

509

500

77

9344282137500ENDEREÇO:

451002111001000rdrdrd

rd

wrwr

wr

Page 12: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Programando na máquina de von Neumann

Page 13: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Instruções Mínimas para Interação com a Máquina: Linguagem de Entrada e Saída de

Dados: LM_IO• STOP

– Pára execução do programa

• INPUT x– MEM[x] <- INPUT_DEVICE

• Carrega na posição de memória indicada pelo valor x, o que está no dispositivo de entrada de dados

• OUTPUT x– OUTPUT_DEV ICE <- MEM[x]

• Carrega no dispositivo de saída o valor que está armazenado na posição de memória indicada pelo valor x

Page 14: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Programa Eco:apresenta no dispositivo de saída o

que foi digitado na entradaINPUT 3 --Lê entrada e guarda na memória 3OUTPUT 3 --Imprime o valor guardado em memória 3STOP -- pára a execução do programa

Semântica = significado das instruções, definido operacionalmente, através de fluxo de dados e controle entre os elementos da arquitetura

INPUT 3 significa MEM[3] <- INPUT_DEVICEOUTPUT 3 significa OUTPUT_DEVICE <- MEM[3]STOP significa Pára execução do programa

Page 15: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando programas na máquina de von Neumann

Page 16: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Ciclo de Execução de Programas

• Etapa 1– carga do programa na memória• Etapa 2 – reset

– IP := 0• Etapa 3 – Ciclo de execução de instruções, até que

a instrução STOP seja encontrada– Etapa 3.1 – FECTH – Busca a instrução na memória

• IR := MEM[IP]– Etapa 3.2 – INC – Incrementa o IP

• IP := IP + 1– Etapa 3.3 – DECODE – decodifica a instrução, e caso a

instrução não seja STOP, volta à etapa 3.1

Page 17: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando o Programa ECO para observar um valor digitado

pelo usuário, por exemplo o numeral 50

Page 18: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

O Cenário de Execução

Usuário

mem[0] mem[1] mem[2] mem[3]

mem[4] mem[5] mem[6] mem[7]INPUT_DEVICE

INPUT_DEVICE

CPU Reg.Dados Memória (MDR)

Reg. Endereços Memória (MAR)

Registrador Instrução (IR)

Reg. Acumulador (ACC)

Ponteiro de Instrução (IP)

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

MEMÓRIA RAM

Programa ECOINPUT 3

OUTPUT 3 STOP

Fluxo de ControleFluxo de Dados

Page 19: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando o Programa ECOEtapa 1 – Carga do Programa na

Memória

Page 20: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Programa Eco carregado numa memória RAM com 8 palavras de tamanho

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

Um programa do computador chamado loader cuida da carga do programa, que é feita usando os dispositivos de entrada de dados mas cujos detalhes serão omitidos.O resultado final é que o programa estará armazenado naMemória após a carga.

Page 21: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando o Programa ECOEtapa 2 – Reset do IP

Page 22: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

RESET do Ponteiro de Instruções (IP)

CPUReg.Dados Memória

Reg. Endereços Memória

Registrador de Instrução

Reg. Acumulador

Reg. Ponteiro de Instrução0

Registradores

Unidadede Controle

(UC)

UAL

readwrite

add/sub

Page 23: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando o Programa ECOEtapa 3 –ciclo de execução de instruções, até

que a instrução STOP seja encontrada

3.1 – FECTH – Busca a instrução na memóriaIR := MEM[IP]

3.2 – INC – Incrementa o IPIP := IP + 1

3.3 – DECODE – decodifica a instrução

Page 24: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando a 1a instrução: INPUT 3

Page 25: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.1 FETCH: Busca instrução na memória

Page 26: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

FECTH – Busca a instrução na memóriaIR := MEM[IP]

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

INPUT 3Reg. Endereços Memória (MAR)

0

Registrador Instrução (IR)INPUT 3

Reg. Acumulador (ACC)

Ponteiro de Instrução (IP)0

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

Page 27: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.2 INC: Incrementa ponteiro de instrução

Page 28: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

INC – Incrementa IP: IP := IP + 1

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

INPUT 3Reg. Endereços Memória (MAR)

0

Registrador Instrução (IR)INPUT 3

Acumulador (ACC)

Ponteiro de Instrução (IP)1

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

01

Page 29: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.3 DECODE: Decodifica instrução

Page 30: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

DECODE – decodifica a instrução

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

INPUT 3Reg. Endereços Memória (MAR)

3

Registrador Instrução (IR)INPUT 3

Acumulador (ACC)

Ponteiro de Instrução (IP)1

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

Usuário

INPUT_DEVICE

Digita “50”

DADO: 50 ENDEREÇO: 3

50

Page 31: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando a 2a instrução: OUTPUT 3

Page 32: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.1 FETCH: Busca instrução na memória

Page 33: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

FECTH – Busca a instrução na memória (IR := MEM[IP])

CPUReg.Dados Memória (MDR)

OUTPUT 3Reg. Endereços Memória (MAR)

1

Registrador Instrução (IR)OUTPUT 3

Reg. Acumulador (ACC)

Ponteiro de Instrução (IP)1

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

50

DADO: OUTPUT 3 ENDEREÇO: 1

Page 34: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.2 INC: Incrementa ponteiro de instrução

Page 35: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

INC – Incrementa IP: IP := IP + 1

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

OUTPUT 3Reg. Endereços Memória (MAR)

1

Registrador Instrução (IR)OUTPUT 3

Acumulador (ACC)

Ponteiro de Instrução (IP)2

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

11

Page 36: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.3 DECODE: Decodifica instrução

Page 37: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

DECODE – decodifica a instrução

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

OUTPUT 3Reg. Endereços Memória (MAR)

3

Registrador Instrução (IR)OUTPUT 3

Acumulador (ACC)

Ponteiro de Instrução (IP)2

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

Usuário

OUTPUT_DEVICE

Observa “50”

DADO: 50 ENDEREÇO: 3

50

Page 38: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Executando a 3a instrução: STOP

Page 39: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.1 FETCH: Busca instrução na memória

Page 40: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

FECTH – Busca a instrução na memória (IR := MEM[IP])

CPUReg.Dados Memória (MDR)

STOPReg. Endereços Memória (MAR)

2

Registrador Instrução (IR)STOP

Reg. Acumulador (ACC)

Ponteiro de Instrução (IP)2

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

50

DADO: STOP ENDEREÇO: 2

Page 41: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.2 INC: Incrementa ponteiro de instrução

Page 42: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

INC – Incrementa IP: IP := IP + 1

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

STOPReg. Endereços Memória (MAR)

2

Registrador Instrução (IR)STOP

Acumulador (ACC)

Ponteiro de Instrução (IP)3

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

21

Page 43: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

3.3 DECODE: Decodifica instrução

Page 44: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

DECODE – decodifica a instrução

mem[0] mem[1] mem[2] mem[3]

INPUT 3 OUTPUT 3 STOPmem[4] mem[5] mem[6] mem[7]

CPUReg.Dados Memória (MDR)

STOPReg. Endereços Memória (MAR)

2

Registrador Instrução (IR)STOP

Acumulador (ACC)

Ponteiro de Instrução (IP)3

Registradores

Unidadede Controle

(UC)

UAL

rdwr

add/sub

Usuário

OUTPUT_DEVICE

Observa fimde execução

50

INPUT_DEVICE

pára pára

Page 45: Uma Arquitetura Concreta para a Máquina de von Neumannjhcf/MyBooks/ic/2.OrigensFundamentos/Maquin... · Organização Geral de um Computador de von Neumann Hardware Processador Memória

Uma Arquitetura Concreta para a Máquina de von Neumann

Jorge Fernandes