O processador é um circuito integrado que realiza as funções de cálculo e tomada de decisão de um computador. Todos os computadores e equipamentos eletrônicos baseiam-se nele para executar suas funções, podemos dizer que o processador é o cérebro do computador por realizar todas estas funções. O processador é o responsável por processar os dados armazenados na memória de um computador.
Figura 01 – Processadores Intel e AMD.
Fonte: G1.
O processador interage com a memória para acessar os dados e implementar os programas. Este acesso á memória pode ser feito diretamente aos registros internos (registradores do computador) ou aos registros externos (memória RAM, fita magnética, HDs e SSDs).
O controle de um processador é realizado pelo envio de códigos relativos a uma operação. Este código é chamado de instrução. O código binário referente a uma instrução é enviado a um processador respeitando-se o padrão de tensão dos seus pinos.
Existem um número extenso de instruções que podem ser realizadas por um processador. O conjunto de instruções de um processador depende de cada processador (Z80, ARM, x86, x64, PowerPC, MIPS etc) e de sua arquitetura (ARC, CISC, RISC, GPU, SPARC, Thumb etc).
Os processadores operam em um ciclo de operação:
- Recebe uma instrução;
- Executa uma instrução;
- Solicita uma nova instrução;
- Torna ao 1º estágio do ciclo.
Cada processador tem uma velocidade de execução de instruções diferente (2.0GHz, 3.0GHz etc), ou seja, o tempo de execução de um ciclo de operação é diferente em cada processador.
Um programa de computador é um conjunto de instruções à serem executadas por um processador. Um programa é também executado em um ciclo de operações no computador, onde cada instrução de um conjunto de instruções:
- É armazenada na memória externa do computador;
- É carregada na memória interna do processador;
- É executada pelo processador;
- O processador solicita uma nova instrução;
- Torna ao 2ª estágio do ciclo.
A diferença entre um programa e um algoritmo é a de que um programa implementa um algoritmo em uma arquitetura específica, enquanto um algoritmo não define quais são as instruções para uso em um processador. Um algoritmo define as operações necessárias para a execução de uma tarefa, essas operações serão convertidas em um conjunto de instruções para o processador em um programa computacional.
Logo, um programa é um conjunto de instruções que alimentam um processador que realizam operações sobre dados interagindo com a memória interna ou externa de um sistema computacional.
Os tipos de instruções mais usuais nos processadores são as instruções de manipulação da memória (Ordenação, reposicionamento, separação etc). Estas instruções tem origem nos primeiros computadores ordenadores implementados por Herman Hollerith (1860-1929) e posteriormente por Thomas John Watson (1874-1956).
Os primeiros computadores eram utilizados como planilhas rústicas. O holerite de Hollerith (Figura 02) é um exemplo dentre estes computadores, sendo responsável por gerar um demonstrativo impresso de vencimentos de um trabalhador pertencente ao setor público ou privado.
Figura 02 – O holerite de Herman Hollerith (1860-1929).
Fonte: mulheres na computação.
Outro tipo de instruções são as instruções lógicas e matemáticas. Essas instruções são um conjunto de operações que coletam alguns dados, normalmente dentro de registradores do processador, e executam operações matemáticas como a soma, subtração, divisão, sin(), cos() etc. E operações lógicas como “maior quê” (>), menor quê (<), igual (=) etc. Essas instruções se originam da necessidade de sua aplicação em computadores mais complexos que o holerite, geralmente, aplicações técnicos-científicas.
Na primeira metade do século XX a maioria da computação técnico-científica de trajetórias era realizada manualmente através de pessoas utilizando algoritmos para o cálculo numérico. Estas pessoas eram responsáveis por coletar os dados e executar operações sobre eles. Para automatizar esta operação que surgiram os primeiros computadores técnicos-científicos. Estes computadores permitiram a realização destes cálculos de forma mais rápida e eficiente. Foi por estas máquinas aplicarem as operações de computação sobre estes dados que elas passaram ser chamadas de “computador”.
Um exemplo destes computadores é o Electronic Numerical Integrator And Computer (ENIAC). Desenvolvido em 1946 pelos pesquisadores norte-americanos John Eckert (1919-1995) e John Mauchly (1907-1980), da Electronic Control Company. Foi criado a pedido do exército dos Estados Unidos para seu laboratório de pesquisa e balística, o ENIAC (Figura 03) era um computador gigantesco de 30 toneladas de peso que ocupava uma área de 180 m² de área construída. A máquina contava com um hardware equipado com 70 mil resistores e 18 mil válvulas de vácuo que em funcionamento consumiam vorazmente 200 mil watts de energia.
Figura 03 – Electronic Numerical Integrator And Computer.
Fonte: tecnoblog.
Um dos mais importantes conjuntos de instruções de um processador é o conjunto de instruções de manipulação do fluxo de um programa (If, While, do While, Switch etc). Quando um programa se utiliza de uma instrução de fluxo é possível manipular a execução das instruções por diferentes caminhos. Assim, estas operações são as que permitem aos programadores construir estas instruções.
Existem ainda outros conjuntos especiais de instruções mais modernos que necessitam do sistema operacional e da interação com outros tipos de processadores como as GPUs das placas de vídeos dos PCs gamers e as placas gráficas para renderização de imagens (Quadro).
Referências
- PIVA JÚNIOR, Dilermando (et al). Estrutura de dados e técnicas de programação. 1. ed. Rio de Janeiro, RJ: Campus, 2014. 399 p. ISBN: 9788535274370.
- CORMEN, Thomas H et al. Algoritmos: teoria e prática. Rio de Janeiro: Elsevier, 926 p. ISBN: 9788535236996.
- TOSCANI, Laira Vieira; VELOSO, Paulo A. S. Complexidade de algoritmos: análise, projeto e métodos. 3. ed. Porto Alegre: Bookman, 2012. 261 p. (Série livros didáticos informática UFRGS, 13) ISBN: 9788540701380.
- ASCENCIO, Ana Fernanda Gomes. Estruturas de dados: algoritmos, análise da complexidade e implementações em Java e C/C++. São Paulo: Pearson, c2010. 432 p. ISBN: 9788576052216, 978857605816.
- BRASSARD, Gilles; BRATLEY, Paul. Fundamentals of algorithmics. Englewood Cliffs: Prentice Hall, c1996. xx, 524 p. ISBN: 0133350681.