Arquitetura de Von
Neumann
Introdução
Leandro Tonietto
[email protected]
ago-09
John Von Neumann, introduziu o projeto lógico de computadores com
programa armazenado na memória.
Computadores até então não podiam armazenar programas em
memória para interpretá-los.
Primeiro computador (EDVAC) com este fim surgiu em 1944. O projeto
durou 1944—1951 e computador foi utilizado até 1962.
Surge então a expressão Arquitetura de Von Neumann [1]:
Em 1945, primeiro algoritmo para testar a máquina, cujo objetivo era a
classificação de uma série de dados em ordem não decrescente de
uma chave. Algoritmo chamado de classificação por intercalação.
Arquitetura de Von Neumann
Objetivo de mostrar que o EDVAC tinha propósitos gerais e não apenas de
cálculos científicos.
Toda a codificação foi feita em linguagem de máquina.
Arquitetura de Von Neumann
Hardware do computador dividido em 3
partes:
Unidade central de processamento
Dispositivos de entrada e saída:
Saída
Memória
Armazenamento de dados e instruções
Arquitetura de Von Neumann
Entrada
Entrada e saída de dados. Interação com usuários.
Memória
CPU
Buscar, executar e devolver resultado de instruções
para a memória
Dispositivos de entrada e saída
“... Estrutura de computadores digitais com programas armazenados na
memória e, portanto, passível de automodificação e de geração por outros
programas.”
São periféricos/hardware que permitem a entrada
de dados e instruções para o computador e
exibem o resultado do processamento da CPU.
Entrada: teclado, mouse, drive de disquete, drive
DVD, ...
Saída: impressora, monitor, drive de disquete, ...
Interatividade com o usuário.
Arquitetura de Von Neumann
Memória:
Tudo o que é executado é carregado para a
memória principal
Coleção de posições de memória ou slots de
memória.
Dados e instruções são acessados através do
endereço de memória.
Barramentos conectam a memória à CPU
1
Arquitetura de Von Neumann
CPU – central process unit:
Registradores
UC - Unidade de controle
Controla todo o fluxo de execução da CPU. Busca dados e
instruções da memória e coordena a troca de dados entre
registradores e ULA.
Funcionamento da CPU:
Para uma tarefa ser executada, ela deve ser carregada da
memória principal (instrução a instrução) na ULA. A ULA
executa e devolve o resultado para a memória.
Programação:
O conjunto de instruções possíveis que uma CPU pode
executar é chamado de linguagem de máquina.
Programadores são aqueles que podem controlar o
comportamento do computador através de instruções em
linguagens de máquina.
Na prática, os programas (conjuntos de instruções em
seqüência) são programados em linguagens de
programação ditas de alto nível e convertidos para
linguagem de máquina por compiladores.
Execução:
Tarefa:
c =a+ b
Seqüência de execução na CPU:
R0 recebe o valor de a
R1 recebe o valor de b
R0 e R1 são passados para ULA
ULA executa a soma
Resultado é devolvido para R2
Posição de memória associada a c recebe o resultado
Arquitetura de Von Neumann
Tarefas complexas são decompostas em seqüência de
instruções simples
Cada instrução é executa movendo-se dados dos
registradores para a ULA, que executa o cálculo ou
operação apropriada e retorna dados para os
registradores.
Ciclo da CPU:
Caminho completo de uma instrução: dos registradores até
a ULA e da ULA até os registradores, passando por
barramentos.
Velocidade do computador é medida em ciclos por
segundo.
Arquitetura de Von Neumann
Exemplo:
Posições de memória construídas dentro da CPU. Muito mais
rápido do que acesso a memória principal (RAM)
Arquitetura de Von Neumann
Funcionamento da CPU:
Coleção de circuitos que realizam as operações (adição,
subtração, manipulação de bits, ...) sobre os dados.
Unidade central de processamento é dividida em várias
subunidades:
ULA – Unidade lógica e aritmética
Arquitetura de Von Neumann
O programa é carregado para a memória
O sistema operacional controla a seqüência das
operações e alocação de memória.
E os programas são lidos a partir da primeira
instrução até chegar a uma instrução de stop ou
parar.
Unidade de controle recebe cada uma das
instruções, interpreta e dá seqüência a fluxo de
execução operativa (registradores – ULA)
Arquitetura de Von Neumann
Linguagens de programação:
Linguagens – conjunto finito de comandos que são
combinados (programados) de tal forma a produzir um
programa, para realizar uma tarefa.
Baixo nível – são linguagens de máquina, portanto, é o
que o computador consegue interpretar e executar.
Alto nível – são linguagens de aquelas que facilitam a
programação por parte do programador, pois estão mais
próximas a linguagem humana. Exemplo: C/C++, Java,
Pascal, ...
Compilador – é um programa que converte as instruções
de um programa escrito em uma linguagem alto-nível em
instruções de máquina.
2
Arquitetura de Von Neumann
Linguagem de máquina:
São comandos simples que a CPU pode
executar.
Estão comando são combinados para produzir
uma tarefa mais complexa.
Exemplos de comandos baixo nível:
Registrador R0 recebe um valor
Registrador R1 recebe um valor
ULA computa operação de soma
R2 recebe o resultado da soma feita pela ULA
Arquitetura de Von Neumann
Exercício. Primeira tarefa de programação:
Qual seria o conjunto de instruções (programa)
para somar 100 números armazenados na
memória?
Responda com frases, não é necessário saber
programar.
Primeiro em alto nível...
Depois em “linguagem de máquina”...
Agora, como desafio, tente programar. Associe um
comando com cada frase ou instrução necessária.
Arquitetura de Von Neumann
Na prática, cada instrução da ULA está associada a
uma seqüência de bits. Por exemplo:
Soma poderia ser: 01001000
Atribuição de variável: 00000001
Desvio de fluxo: 01001110
Portanto: impossível programar desta forma!
Solução: programar em linguagens de alto nível e
deixar o trabalho “pesado” para o compilador.
Referências
REED, David. A Balanced Introduction to
Computer Science and Programming.
Prentice Hall.
Wikipédia. Arquitetura de Von Neumann
KOWALTOWSKI, Tomas. A Obra e o
Legado de John Von Neumann. Estudos
Avançados, V. 10, no. 26, São Paulo, 1996.
3
Download

Arquitetura de Von Neumann