A Rq Von Neumann
-
Upload
wanderson-thallys -
Category
Documents
-
view
14 -
download
0
description
Transcript of A Rq Von Neumann
Arquitetura de Von Neumann
Leandro Tonietto
Algoritmos e Programação em C++
Curso de Segurança da Informação
http://www.inf.unisinos.br/~ltonietto/tsi/apc/arqVonNeumann.pdf
Fev-2008
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.
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
Arquitetura de Von Neumann
CPU
Memória
EntradaSaída
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.
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
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.
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.
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
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)
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.
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.
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
� 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.
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.
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.