Quais os passos que uma operação de processamento segue para ser realizada?

Oi pessoal. No artigo anterior, Visão Geral de Microprocessadores, eu fiz uma pequena introdução à nossa série, assim como dei uma visão geral de um sistema computacional completo. Hoje vou falar de uma arquitetura de microprocessadores muito particular, chamada Arquitetura de John Von Neumann, uma das pioneiras.

História

Nos primórdios da Computação não exista o conceito de PROGRAMA ARMAZENADO, isto significa que os programas eram desenvolvidos, executados e apresentavam os resultados imediatamente.

O conceito de programa armazenado surgiu da necessidade de armazenar programas em um computador, pois, até então, ainda não havia formas de armazenar programas em um computador. John Von Neumann e outros pesquisadores descobriram que, utilizando dispositivos de memória em formas de linha de retardo de mercúrio, poderiam armazenar instruções de programas.

Pra nós hoje esse conceito de programa armazenado já está muito bem edificado. Nós codificamos, desenvolvemos software em diversas linguagens de programação, armazenamos nosso código fonte em um HD Externo, ou no HD interno, ou na Nuvem se assim desejarmos. O código executável desses softwares compilado, que está armazenado em algum desses dispositivos, sempre passa pela memória principal, depois pela memória cache e então é executado na CPU.

O conceito de programa armazenado surgiu durante o projeto EDVAC e John Von Neumann acabou recebendo a maior parte dos créditos pela definição, mas a verdade é que várias pessoas participaram da construção. John Von Neumann ganhou mais destaque que os outros por ter escrito um relatório sobre o EDVAC, com 101 páginas, descrevendo formalmente o conceito, criando assim uma espécie de guia para a construção de computadores.

A arquitetura de John Von Neumann

A proposta inicial de um computador de programa armazenado, relatada pelo próprio Von Neumann, era dividida em cinco partes:

  • central aritmética;
  • central de controle;
  • memória;
  • gravação;
  • entrada e saída.

Primeira Parte Específica – Central Arithmetic (CA): O dispositivo deve realizar as operações elementares da aritmética mais frequentemente, e por este motivo deve ter unidades especializadas apenas para essas operações.

Segunda Parte Específica – Control Center (CC): A sequenciação apropriada das operações pode ser executada, de forma mais eficiente, por um controle central.

Terceira Parte Específica:

Memória (M): Qualquer dispositivo que tiver que executar longas e complicadas sequências de operações precisa ter uma memória considerável.

Recording (R): Deve ser capaz de manter contato com a entrada e a saída, que são como os neurônios correspondentes sensoriais e motores do cérebro humano.

Quarta Parte Específica – Input (I): É necessário ter unidades para transferência de informações de R para M.

Quinta Parte Específica – Outuput (O): É necessário ter unidades para transferência de informações de M para R.

Características

A arquitetura é composta por três grandes sistemas de hardware: sistema central de processamento, sistema de memória e sistema de entrada/saída. A arquitetura tem a capacidade de executar instruções sequencialmente e possui apenas um caminho de dados entre a UCP e a memória principal, o que é chamado de Gargalo de von Neumann. Atualmente, é claro, isso não existe mais e sofreu uma grande evolução.

1. Unidade Central de Processamento (UCP) ou Central Processing Unit (CPU): A CPU deve ser composta por uma unidade de controle (UC), uma unidade lógica aritmética (ULA), vários registradores (memórias internas da CPU) e um  contador de programa (PC);

2. Sistema de Memória Principal;

3. Sistema de Entrada/Saída.

Vamos ver agora uma IMAGEM que representa o conceito da Arquitetura de John Von Neumann. Observe a Figura 1:

Arquitetura de John Von NeumannFigura 1: Arquitetura de John Von Neumann

A Figura 1 apresenta a Arquitetura de John Von Neumann representando os três grandes sistemas de hardware. A seguir descrevo as funções dos componentes ilustrados na Figura 1.

FUNÇÃO DA CPU: A unidade central de processamento tem como função executar programas que estão armazenados na memória principal, buscar as instruções desses programas, examinar essas instruções e executar as instruções uma após a outra (sequência).

FUNÇÃO DA UC: A unidade de controle tem como função buscar instruções na memória principal e determinar o tipo dessas instruções.

FUNÇÃO DA ULA: A unidade lógica aritmética tem como função efetuar operações aritméticas e efetuar operações booleanas (E, OU, NOT, etc);

FUNÇÃO DOS REGISTRADORES: Os registradores da unidade central de processamento são memórias de altíssima velocidade que armazenam resultados temporários. Alguns registradores têm uma função e um tamanho específico (em bits e/ou bytes) e são lidos/escritos em alta velocidade pois são internos à CPU. A CPU não consegue manter todos os valores manipulados por um programa apenas em registradores, por isso necessita de uma memória para o armazenamento das informações.

FUNÇÃO DO PC: A função do Contador de programa, ou Programm Counter, é o de indicar a próxima instrução a ser buscada para execução pela CPU. Esse é um exemplo de registrador com função específica.

FUNÇÃO DO IR: A função do Registrador de Instrução é o de conter (armazenar) a instrução que está sendo executada no momento. Este é um outro exemplo de registrador com função específica.

O Ciclo de Execução

O ciclo de execução diz respeito à forma com que uma instrução é executada pela CPU, os caminhos que ela deve fazer e as unidades funcionais pelas quais ela passará, ou seja, descreve como o hardware trabalha com as instruções que serão executadas. O ciclo de execução de Von Neumann é simples e normalmente é citado como BUSCA-DECODIFICAÇÃO-EXECUÇÃO, pois é exatamente isto o que ocorre: busca uma instrução, a decodifica e a executa. Vamos ver um algoritmo passo a passo que ilustra a execução de uma instrução aritmética (que faz parte de um programa executável) em máquinas Von Neumann:

1. A unidade de controle busca a próxima instrução do programa na memória principal;
2. O contador de programa é usado pela unidade de controle para determinar onde a instrução está localizada;
3. A instrução é decodificada para uma linguagem que a unidade lógica aritmética possa entender;
4. Os operandos de dados requeridos para executar a instrução são carregados da memória e colocados em registradores;
5. A unidade lógica aritmética executa a instrução e coloca os resultados em registradores ou na memória.

Isso pode ser representado por um algoritmo que é ilustrado na Figura 2:

ciclo de execuçãoFigura 2: Ciclo de execução

O algoritmo começa buscando, na memória principal, a próxima instrução do programa que será executada. A unidade de controle é responsável por isso. O Contador de programa deve ser incrementado para que a próxima instrução a ser executada seja encontrada. Em seguida a instrução deve ser decodificada, identificando primeiramente o seu código. Se a instrução tiver Operandos, como em uma operação aritmética, então, é necessário buscar esses operandos (valores). Para isso é preciso calcular o endereço do operando, para saber onde ele se encontra na memória e, somente depois pegar esse valor e armazenar em registradores para manipulação. Quando os operandos terminarem de ser buscados e armazenados, somente então a operação é executada pela Unidade Lógica Aritmética. Se a instrução não tiver operandos, a instrução simplesmente é executada logo após a avaliação da condição.

Conclusão

A Arquitetura de John Von Neumann é referência nos estudos sobre Microprocessadores e Arquitetura. Por mais que esse tipo de sistema computacional não seja mais utilizado, foi ele o precursor de tudo o que conhecemos hoje. Para podermos avançar e evoluir, é muito importante conhecer o passado, o que nos levou a estar no ponto onde estamos e, o que podemos fazer para melhorar ainda mais. Caso queiram contribuir, ou se tiverem dúvidas, por favor, deixem nos comentários. Muito Obrigada e até o próximo artigo.

Referências – Arquitetura de John Von Neumann

MONTEIRO, Mario A. Introdução a Organização de Computadores. 5ª ed. Rio de Janeiro: LTC, 2007

TANENBAUM, Andrew S. Organização Estruturada de Computadores. 5ª ed. São Paulo: Pearson Prentice Hall, 2010.

STALLINGS, William. Arquitetura e Organização de Computadores. 8ª ed. São Paulo: Pearson Prentice Hall, 2010.

NULL, Linda. Princípios Básicos de Arquitetura e Organização de Computadores. 2ª ed. Porto Alegre: Bookman, 2010.

LORIN, Harold. Introdução a Arquitetura e Organização de Computadores. Rio de Janeiro: Campus, 11985.

PATTERSON, David A.; HENNESSY, John L. Organização e Projeto de Computadores: A Interface Hardware e Software. 2ª ed. Rio de Janeiro: LTC, 2000.

WEBER, Raul Fernando. Fundamentos de Arquitetura de Computadores. 3ª ed. Porto Alegre, RS: Bookman, Instituto de Informática da UFRGS, 2008.

HENNESSY, JOHAN L. Arquitetura de Computadores: uma abordagem quantitativa. Rio de Janeiro: Campus, 2003.

Quais são as etapas de processamento?

As fases do processamento são:.
Entrada de Dados (Informações iniciais).
Processamento (Instruções).
Saída de Dados (Resultados).

Como é realizado o processamento?

O processamento de dados ocorre em diversas etapas. A entrada dos dados acontece por meio do hardware que os coleta em sua memória e distribui para o processador — e posteriormente para o software encarregado de fazer a sua recepção, análise, tratamento e dar saída em informações que vão gerar conhecimento.

Quais são as formas de processamento de um sistema operacional?

3 tipos de estados:.
Execução (running) – O processo está sendo executado pela CPU..
Pronto (ready) – O processo está pronto e esperando para ser executado pela CPU..
Espera (wait) – O processo está esperando algum evento externo ou por algum recurso para poder prosseguir seu processamento..

Quais são os passos para o processamento de uma instrução pela UCP?

Unidade Central de Processamento (UCP)..
busca de uma instrução na memória;.
interpretação de uma instrução;.
execução de uma operação representada na instrução;.
gravação de eventuais resultados do processamento;.
reinício de todo o processo (caso necessário).