• Nenhum resultado encontrado

Capítulo 1 Microprocessadores e Microcomputadores na Filosofia da Técnica de Simondon

1.5 Microeletrônica, microprocessadores e microcomputadores

1.5.7 Microprocessadores: função e funcionamento

Em poucas palavras podemos compreender os microprocessadores como objetos técnicos cuja função é a execução de tarefas aritméticas, lógicas e controle de funções em sistemas de

microcomputadores e cujo funcionamento consiste na leitura e escrita de conjuntos de instruções em memórias RAM e ROM e na comunicação com periféricos através de subsistemas de entrada e saída de dados. Para melhor compreensão da função e do funcionamento dos microprocessadores e suas

diferenças em relação aos microcontroladores, Nicolosi (2005) faz uma didática e clara analogia entre esses objetos técnicos e a “função e funcionamento” de um cozinheiro.

Para preparar um alimento, um cozinheiro pode recorrer a um livro de receitas e localizar, através de um sumário, as páginas onde encontram-se os conjuntos de instruções e os materiais necessários. Como Nicolosi nos ilustra (Figura VII), para prepararmos um bolo de chocolate devemos localizar a página XYZ e seguir o conjunto de instruções descrito:

Figura XX: Receita de Bolo de Chocolate

BOLO DE CHOCOLATE

Página XYZ

Ingredientes: (para 1kg de bolo) 2 xícaras de farinha 1 xícara de açúcar …... …... …... Confecção: …... …... …...

Cobertura de chocolate: vide página ABC *

* A cobertura de chocolate está escrita em outras páginas, pois várias receitas a utilizam, a qual só se escreve uma vez (isto é uma sub-rotina de software).

Nicolosi, 2005, p. 57

Como já adiantado na Figura VII acima, a cobertura de chocolate é uma etapa do conjunto de instruções que não está localizada na página XYZ, mas na página ABC. Essa separação é necessária porque a cobertura vale para diversas receitas, portanto deve estar registrada numa seção especial para evitar repetição de um mesmo conjunto de instruções e ocupar páginas do livro de modo desnecessário. Como o cozinheiro tem a habilidade de se deslocar pelo livro conforme o conjunto de instruções solicite, a troca de páginas para evitar repetição de conjunto de instruções não é um problema. Nota-se que a receita especifica a quantidade de 1 quilo de bolo de chocolate. Caso o cozinheiro deseje fazer uma quantidade maior ou menor, basta fazer os cálculos em uma folha de rascunho, a qual é externa ao conjunto de instruções e a receita e descartada após o uso.

Esse é o “mundo do processador” (Nicolosi, 2005, p. 58). O livro de receitas corresponde a memória ROM: espaço onde o microprocessador faz a leitura do conjunto de instruções. Essa memória é encontrada tanto em um disco removível – como disquetes, CD-ROM, DVD-ROM, Blu-Ray e flashdrives– ou nos programas instalados em um disco rígido (HD)45. A página de preparo do

bolo de chocolate corresponde ao software e seu conjunto de instruções de tarefas específicas, enquanto o redirecionamento para a cobertura de chocolate corresponde a sub-rotina do software. A folha de

rascunhos em que são feitos os cálculos de quantidades de ingredientes corresponde a memória RAM. Essa memória é o espaço no qual o microprocessador escreve os cálculos necessários para a execução de tarefas e deleta-os quando finalizado, portanto uma memória temporária de escrita e reescrita. Por fim, o cozinheiro, aquele que lê o conjunto de instruções da receita, desloca-se entre páginas e faz cálculos no rascunho para preparar um bolo de chocolate com cobertura, corresponde ao microprocessador: objeto técnico que lê softwares escritos em memórias ROM, realiza as tarefas de rotina e sub-rotina e escreve os cálculos na memória RAM para executar um programa em um computador. Nicolosi mostra-nos essa comparação por meio de uma imagem (Figura XXI):

Figura XXI: Comparação entre Cozinheiro e Processador

Adaptado de Nicolosi, 2005, p. 58.

Na Figura VIII acima, podemos notar como Nicolosi diferencia hardware e software entre a parte física do computador e a parte de operações. Microprocessador, memórias RAM e ROM, dispositivos de entrada e saída de dados e os periféricos correspondem aos hardwares; os dados calculados e os conjuntos de instruções nas memórias RAM e ROM correspondem ao software46.

Como último ponto de comparação entre cozinheiros e microprocessadores, Nicolosi

destaca a diferença de linguagem. O cozinheiro, humano, pode ser entendido como uma máquina

inteligente porque processa informações a partir de um vocabulário “rico, sofisticado, impreciso e de

múltipla interpretação” (Nicolosi, 2005, p. 59). O cozinheiro pode julgar a pertinência de ingredientes e

46 Embora a Figura VIII coloque as memórias RAM e ROM no lado do software, Nicolosi deixa claro como se refere aos dados e instruções e não aos chips onde se localizam os dados e instruções.

inventar durante o processamento, concretizando resultados diferentes do contido no conjunto de

instruções. O microprocessador, por outro lado, pode ser compreendido como uma máquina limitada porque “só entende algumas instruções básicas47 e se você quiser que ele faça alguma coisa, você, ser humano, tem que estudar e compreender precisamente a sua linguagem e limitar-se a ela para fazer a máquina trabalhar” (Nicolosi, 2005, p. 59). Invenções não são possíveis durante o processamento, apenas a execução das tarefas determinadas pelos conjuntos de instruções.

Sobre a linguagem de microprocessadores e suas instruções básicas, esses objetos compreendem operações aritméticas (soma, subtração, divisão, multiplicação), lógicas (negação, disjunção, conjunção) e de controle de funções (emissão de sinais para o circuito físico realizar as transferências de dados no interior do UPC, as operações lógicas e aritméticas e também a transferência dos dados processados para a memória RAM e o subsistema de entrada e saída). Na linguagem de computadores, essas máquinas “arquivam, manipulam e transformam informações. Neste universo, informações são frequentemente chamadas de dados (data)” (Nicolosi, 2005. p. 4).

Para os microprocessadores, todas as informações são compreendidas e geradas por um sistema de representação de dois dígitos, o sistema binário. Não são dígitos necessariamente opostos, mas necessariamente diferentes porque em infinitas associações devem compor qualquer informação. Como os humanos são capazes de emitir, simbolizar, desenhar, memorizar e comunicar inúmeros sons, ao longo da história inventarem vários alfabetos capazes de representar as informações. No ocidente, é mais comum o alfabeto de 24 dígitos diferentes. Ao associarmos esses dígitos, obtemos palavras de dois, três, seis, dez ou mais dígitos, com o objetivo de expressarmos alguma informação.

Os computadores emitem sinais sonoros a partir de um sistema de dois dígitos, binário, ao gerarem uma tensão de 5 Volts quando ligados e nenhuma tensão (0 volts) quando desligados. Nesse caso, ao invés de uma disposição de 24 dígitos para formarem palavras, os microcomputadores compreendem e geram informações a partir da disposição da alternância de duas tensões (0 volts e 5 volts) – um sistema de base 2, de dois dígitos ou binário. Convencionalmente representado pelos dígitos 0 e 1, tem como função representar algo diferente de outro, no caso dos computadores 0 volts

diferente de 5 volts ou ligado e desligado – em síntese, um símbolo e outro símbolo:

Figura XXII: Representação binária

Um símbolo O outro símbolo

1 0 Verdadeiro Falso Alto Baixo 5 volts 0 volts Ligado Desligado Sim Não Maçã Laranja Nicolosi, 2005, p. 4.

Nicolosi mostra-nos como diferentes sistemas de representação, em suas diferentes bases ou número de dígitos, podem ser de maior ou menor compreensão para as máquinas e os humanos. Para os computadores, se torna difícil compreender uma linguagem com mais de dois dígitos porque sua comunicação vale-se de apenas dos valores de voltagem. Para os humanos, os alfabetos geralmente são compostos por vários dígitos para formação de palavras e o sistema decimal é em muitas culturas o preferido para operações aritméticas. Entretanto, como são símbolos, no caso números e letras, podem ser utilizados num mesmo sistema:

Figura XXIII: Exemplos de sistemas, bases e símbolos numéricos

Sistema Base Símbolos

Binário 2 0, 1 Octal 8 0, 1, 2, 3, 4, 5, 6, 7 Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Nicolosi, 2005, p. 5. No sistema hexadecimal, a intenção é existir um símbolo único para cada dígito de uma base de 16 dígitos. Diferente do decimal, no qual apenas existem 10 símbolos únicos (do zero ao 9), para representar do 11º símbolo em diante são necessárias associações: 10, 11, 12, 13 etc. Por associações, qualquer sistema binário representa inúmeras informações.

preferidas para o sistema binário. Essa operação é possível porque a diferença entre os sistemas está na quantidade de símbolos de números pares, sendo possível que qualquer base seja reduzida a uma quantidade de associações de uma base 2. Para a base 10, por exemplo, basta dividir qualquer número por 2 até chegarmos ao “binário equivalente ao número original” (Nicolosi, 2005, p.7). Nicolosi exemplifica:

Figura XXIV: Conversão de sistema numérico de base 10 para sistema numérico de base 2

Adaptado de Nicolosi, 2005, p. 7

Como podemos ver na Figura XI acima, o número 84 na base 10 é igual ao número

1010100 na base 2, ou o número decimal 84 é igual ao número binário 1010100. O mesmo vale para o

sistema hexadecimal, composto por números e letras. Como sua base é 16, o número a ser convertido deve ser dividido por 16. Nicolosi exemplifica com o número decimal 9309:

Figura XXV: Conversão de sistema numérico de base 10 para sistema numérico de base 16

Adaptado de Nicolosi, 2005, p. 8

Não são apenas bases pares que podem ser convertidas entre si. Através de fórmulas matemáticas, pode-se fazer conversões entre bases pares, ímpares, fracionárias etc. A partir da conversão de sistemas de representações quaisquer em sistemas binários, foi possível a invenção de vários sistemas que representam números e palavras. O mais famoso é o ASCII (American Standard

Code for Information Interchange – Código Padrão Americano para o Intercâmbio de Informação), a

base predominante nos teclados de microcomputadores atuais. Esse sistema possui uma extensão de 7 bits (de 0000000 à 1111111111), baseado no alfabeto inglês, e pode representar 128 símbolos:

Figura XXVI: ASCII de 7 bits

Nicolosi, 2005, p. 18. Desses símbolos, 95 são gráficos ou imprimíveis – do separador entre palavras space (0100000) ao sinal de nasalização ~ (1111110) – e os restantes 33 são de controle ou não imprimíveis – com as funções de edição de textos e de comunicação entre dispositivos. Ao pressionarmos os símbolos gráficos do teclado, podemos criar palavras e separá-las por espaços para montarmos textos. Os símbolos de controle mais conhecidos são: del, permite apagar o símbolo à direita; bs (backspace) para apagar o símbolo à esquerda; cr (carriage return ou enter) para indicar a finalização de uma linha e início de outra. Dentre os demais, podemos citar: bel, para emissão de um beep sonoro; DC1 e DC3 para iniciar e finalizar uma transmissão de dados, respectivamente. Atualmente, existe uma variação de sistemas de representação que tomam o ASCII como base e acrescentam teclas de acesso rápido para caracteres de uso frequente em outros idiomas – como o ç no português e o ñ no espanhol – que evitam a necessidade da combinação constante entre shift, sinal e letra.

textos sem o conhecimento das operações de conversão entre letras em códigos binários e demais operações aritméticas, lógicas e de controle que ocorrem a cada pressão das teclas. Desde a progressiva maior independência do software em relação ao hardware, como citado anteriormente, também desenvolvedores de software não precisam conhecer todo o funcionamento do hardware. Entre o hardware e o software, já existem níveis de programação: o mais baixo exige completo conhecimento eletrônico e algumas vezes alterações nas peças, o mais alto é composto por palavras e comandos reconhecidos pelo hardware porque têm as conversões entre sistemas registrados em memórias permanentes. Como mostrado na Figura II, o terminal é uma janela que aguarda a digitação de comandos. O teclado permite a escrita de palavras que são reconhecidas pelo hardware após conversões em códigos binários que condicionam as ações no circuito integrado. O microprocessador:

só entende Código Binário, mas o programador pode entender este código em Octal,

Hexadecimal, Decimal e por Nomes Simbólicos, que representam uma instrução, por

exemplo: 'add' = 'Soma' = Código Hexa 24 ou 00100100 em Binário (...). A CPU só entende dígitos binários, mas nós a memorizamos por 'add', que é mais fácil de lembrar. Um 'software' no 'PC' irá transformar este 'add' em 00100100, quando gravarmos a ROM. (Nicolosi, 2005, p. 61).

O programador utiliza uma linguagem de nomes simbólicos, enquanto um software se encarrega da tradução para códigos binários no momento em que grava as instruções na memória ROM. Quando o microprocessador for iniciar suas operações, ele buscará o conjunto de instruções em código binário que se encontra na ROM. Lidas as instruções, iniciam-se as atividades aritméticas, lógicas e de controle. Basicamente, cálculos de adição, subtração, divisão e multiplicação e operações de conjunção, disjunção e negação de informações, feitas por humanos em matemática básica e avançada, são operadas na linguagem binária a partir de circuitos integrados compostos por transístores, chaves, LEDs, barramentos, resistores e outros elementos acoplados e interligados em uma única chapa de silício.

Em síntese, como colocado no início da seção, microprocessadores podem ser definidos como objetos técnicos cuja função é a execução de tarefas aritméticas, lógicas e controle de funções

em sistemas de microcomputadores. Como funcionamento, os microprocessadores operam a partir da leitura e escrita de conjuntos de instruções em memórias RAM e ROM e comunicação com periféricos através de subsistemas de entrada e saída de dados.