A Rq Von Neumann

16
Arquitetura de Von Neumann Leandro Tonietto Algoritmos e Programação em C++ Curso de Segurança da Informação [email protected] http://www.inf.unisinos.br/~ltonietto/tsi/apc/arqVonNeumann.pdf Fev-2008

description

Documentário sobre Von Neumann

Transcript of A Rq Von Neumann

Page 1: A Rq Von Neumann

Arquitetura de Von Neumann

Leandro Tonietto

Algoritmos e Programação em C++

Curso de Segurança da Informação

[email protected]

http://www.inf.unisinos.br/~ltonietto/tsi/apc/arqVonNeumann.pdf

Fev-2008

Page 2: A Rq Von Neumann

Introdução

� 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]:� “... Estrutura de computadores digitais com programas armazenados na

memória e, portanto, passível de de automodificação e de geração por outros programas.”

� 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.� 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.

Page 3: A Rq Von Neumann

Arquitetura de Von Neumann

� Hardware do computador dividido em 3

partes:

� Unidade central de processamento

� Buscar, executar e devolver resultado de instruções para a memória

� Dispositivos de entrada e saída

� Entrada e saída de dados. Interação com usuários.

� Memória

� Armazenamento de dados e instruções

Page 4: A Rq Von Neumann

Arquitetura de Von Neumann

CPU

Memória

EntradaSaída

Page 5: A Rq Von Neumann

Arquitetura de Von Neumann

� Dispositivos de entrada e saída:

� 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.

Page 6: A Rq Von Neumann

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

Page 7: A Rq Von Neumann

Arquitetura de Von Neumann

� CPU – central process unit:� Unidade central de processamento é dividida em várias

subunidades:

� ULA – Unidade lógica e aritmética� Coleção de circuitos que realizam as operações (adição,

subtração, manipulação de bits, ...) sobre os dados.

� Registradores� Posições de memória construídas dentro da CPU. Muito mais

rápido do que acesso a memória principal (RAM)

� 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.

Page 8: A Rq Von Neumann

Arquitetura de Von Neumann

� Funcionamento da CPU:� 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.

Page 9: A Rq Von Neumann

Arquitetura de Von Neumann

� 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.

� Exemplo:� 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

Page 10: A Rq Von Neumann

Arquitetura de Von Neumann

� Execução:� 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)

Page 11: A Rq Von Neumann

Arquitetura de Von Neumann

� 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.

Page 12: A Rq Von Neumann

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.

Page 13: A Rq Von Neumann

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

Page 14: A Rq Von Neumann

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.

Page 15: A Rq Von Neumann

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.

Page 16: A Rq Von Neumann

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.