8 Computador no Processo
5. Computador no Processo
5.8. Como os Computadores Digitais Operam
O computador digital é basicamente um conjunto muito complicado de circuitos eletrônicos, que executam operações muito simples que podem ser
representadas matematicamente no sistema de número binário ou pelas equações booleanas. O computador executa operações lógicas e binárias muito simples, envolvendo dados codificados binariamente, de modo extremamente rápido, confiável, previsível e seqüencial. Ele faz exatamente o que é programado para ele fazer e nada mais. Ele não pode fazer nada além do trabalho para o qual ele foi programado fazer; ele não pode pensar ou decidir por si.
Ele executa suas tarefas programadas:
1. interpretando várias combinações de 1 e 0, como comandos ou ordens para executar operações que foram fiadas fisicamente, 2. executando somente uma operação
a um tempo,
3. seguindo rigidamente uma série seqüencial de comandos em ordem, a não ser que seja
comandado alterar esta seqüência, 4. executando testes simples e
tomando decisões relativamente simples baseadas nos resultados destes testes,
5. executando operações em microssegundos que o homem levaria minutos ou horas para executar,
6. tendo bancos de memória muito grandes, em que armazena e recupera a informação, quando necessário.
7. estabelecendo comunicações bidirecionais com equipamentos do mundo externo.
Todos os computadores digitais podem ser divididos basicamente em quatro unidades funcionais:
1. unidade de entrada-saída, 2. unidade aritmética,
3. unidade de controle e sincronismo 4. unidade de memória.
As unidades aritmética, controle e sincronismo podem ser referidas globalmente como unidade de processamento central ou CPU. Unidade E/S
A unidade de entrada-saída contém a lógica digital necessária para interfacear o computador aos equipamentos externos, tais como os conversores analógico para digital e digital para analógico. Ela inclui a lógica necessária para gerar e verificar a sincronização entre a CPU e os
equipamentos externos, de modo que os dados possam ser transferidos entre eles, de modo confiável. A unidade E/S [ou I/O (lê-se aiou), input/output, em inglês) é a principal via de comunicações entre a CPU e o mundo exterior.
Unidade aritmética
A unidade aritmética inclui todo o equipamento usado para modificar os dados no processo de resolver equações ou executar outras operações matemáticas ou lógicas nestes dados. Ela inclui a lógica que indica a execução completa e bem sucedida de cada operação matemática. Esta lógica pode ser testada pela unidade de controle e de timing, de modo a tomar decisões quanto ao procedimento a ser seguido em relação ao resultado aritmético conseguido de modo correto ou não. Memória
A unidade de memória pode ser
visualizada simplesmente como um grande
postal do correio, cada uma numerada seqüencialmente. A informação digital pode ser armazenada lá (uma palavra em cada caixa) para uso e recuperação posterior, enquanto sua localização for lembrada. As palavras armazenadas nestes caixas possuem um número especifico de bits binários em comprimento. O número de bits manipulados pelo computador e
normalmente pela sua unidade de memória simultaneamente em uma operação
simples é tecnicamente referido como o comprimento da palavra do computador. A grande maioria dos computadores usa correntemente palavra de 32 bits, 64 bits.
Há vários tipos de memória, cada uma muito diferente na estrutura física e na aplicação, que são normalmente usadas com um computador de controle de processo. A memória do tipo núcleo magnético tem sido a reserva para as memórias primárias do computador por causa de sua flexibilidade e pelo fato que ela não perder sua informação quando desenergizada. Ela requer uma
considerável quantidade de potência elétrica para operar e é o tipo mais caro de memória (baseado no custo/bit
armazenado). Há vários projetos básicos de memórias a semicondutor, que se tornaram práticas para uso em
computadores de controle de processo. Estas memórias requerem muito menor energia elétrica para operar, são
fisicamente muito menores e são muito mais baratas ($/bit) mas perdem todas a capacidade de armazenamento quando desenergizada.
Alguns tipos de memórias a semicondutor podem ser
permanentemente (ou pelo menos, relativamente permanentemente)
programadas, de modo que nem falha de alimentação ou do computador pode alterar o programa. Vários tipos dessas memórias ROM (read only memory - memória apenas de leitura) encontram aplicação em certos tipos de sistemas de controle de processo. Há outros tipos de memória a semicondutor tais como PROM (programável), EPROM (programável e apagável) r EEPROM (programável, eletricamente apagável).
Unidade lógica e timing
A unidade lógica de controle e timing é a quarta parte funcional de qualquer computador digital. É de sua
responsabilidade sincronizar e controlar cada operação interna do computador. Esta lógica está diretamente ligada a cada unidade interna do computador e controla a operação da CPU diretamente. Ela recebe suas instruções básicas do
programador. As instruções individuais em um programa de computador são escritas para serem interpretadas por esta unidade lógica de controle, de modo que algumas operação útil possa ser feita pelo
computador.
As quatro unidades funcionais são interligadas entre si. A informação pode ser transferida bidirecionalmente entre a unidade aritmética e a memória e os equipamentos externos. Este arranjo é típico de qualquer computador digital e estes canais de comunicação são
chamados de bus. A unidade de controle e timing é também ligada bidirecionalmente com as outras três unidades. De fato, ela controla a operação das outras três unidades funcionais e deve ser entendido que ela está sempre lá, mesmo que não esteja mostrada no diagrama.
Fig. 8.16. Esquema básico do computador
A seqüência de operações executada pela lógica interna e causada por uma instrução típica através de um computador digital é a seguinte:
1. tudo começa com uma instrução do computador, que é uma (ou mais) palavra binária, codificada por um programador para um computador específico. A codificação real varia
entre os computadores mas a instrução codificada é sempre interpretada por uma parte da unidade de controle, chamada de registro de instrução. [Um registro e há muitos no
computador, é um grupo de flip-flops binários independentes. Cada FF tem a capacidade de memorizar um bit de informação que deve ser apresentado a ele simultaneamente com um
comando, (chamado de gatilho) para lembrar este bit. Sem a ocorrência deste gatilho, o FF ignora o bit em sua entrada ou qualquer mudança neste bit, lembrando somente o único bit que foi apresentado a ele, em conjunto com seu comando gatilho. Há normalmente tantos FF montados em um registro como o número de bits na palavra do computador. Assim para um
computador de 32 bits, um registro consiste de 32 FF independentes, todos com um gatilho e cujas saídas devem ser interpretadas
simultaneamente como uma palavra completa.]
2. o programador normalmente codifica uma série de instruções, cada uma delas fazendo o computador executar alguma função útil elementar,
coletivamente chamada de programa. A função pode ser manipulação, transferência de dados ou teste para a existência de alguma condição interna ou externa do computador. Uma vez o programador tenha determinado a seqüência de instruções necessária para executar a função desejada e tenha codificado adequadamente estas instruções, o programa é escrito na memória principal do computador para uso futuro.
3. o operador do computador carrega um registro da unidade de controle e sincronismo, chamado de registro de endereço do programa com o endereço (localização específica da memória ou número da caixa postal), de onde a primeira instrução do programa foi armazenada. Ele carrega (entra, escreve, carrega, load) o programa na memória do computador.
4. o computador se prepara então para executar a primeira instrução do programa. Até este ponto, o
programador não tem controle da operação do computador, porém, agora, após o computador ter completado o ciclo de instruções, a unidade de controle olha e decodifica a palavra binária no registro de instrução e executa a operação necessária. A instrução pode causar qualquer tipo de operação entre várias possíveis. Algumas das instruções mais comuns são:
¾fazer uma palavra binária ser entrada ao computador ou à memória do computador de algum equipamento externo,
¾fazer uma palavra binária ser saída do computador ou da memória do computador para algum
equipamento externo,
¾fazer uma palavra binária ser transferida de um registro para outro, ambos internos ao computador,
¾fazer qualquer uma das seguintes operações ser executada em uma palavra binária: soma, negação, subtração, multiplicação e divisão,
¾fazer uma operação lógica binária ser executada em uma palavra binária, tal como: desvio à esquerda, desvio à direita, rotação, ou uma comparação lógica com uma segunda palavra binária, como and, or, exclusive or,
¾fazer uma palavra binária ser transferida de um registro interno da CPU para a memória do computador de qualquer modo possível, ou transferir da memória para algum registro da CPU (ler ou escrever).
¾fazer um teste em um bit, em um sinal algébrico do resultado de uma operação aritmética, na finalização bem sucedida ou não, de uma operação matemática (overflow), na comparação de uma palavra binária com zero (maior que, menor que ou igual a) ou outra palavra binária ou em qualquer número de várias condições testáveis que podem existir dentro