Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Microprocessadores


Os primeiros pioneiros da ciência da computação, como Alan Turing e John Von Neumann, postularam que para um dispositivo de computação ser realmente útil, ele não só deveria ser capaz de gerar saídas específicas conforme ditado por instruções programadas, mas também deveria ser capaz de escrever dados para a memória e ser capaz de agir sobre esses dados mais tarde.

Tanto as etapas do programa quanto os dados processados ​​deveriam residir em um "pool" de memória comum, dando lugar ao rótulo de computador com programa armazenado . A máquina teórica de Turing utilizou uma fita de acesso sequencial, que armazenaria dados para um circuito de controle ler, o circuito de controle reescrevendo dados na fita e / ou movendo a fita para uma nova posição para ler mais dados.

Os computadores modernos usam dispositivos de memória de acesso aleatório em vez de fitas de acesso sequencial para realizar essencialmente a mesma coisa, exceto com maior capacidade.

Uma ilustração útil é a das primeiras tecnologias de controle automático de máquinas-ferramenta. Chamado de malha aberta , ou às vezes apenas NC (controle numérico), esses sistemas de controle direcionariam o movimento de uma máquina-ferramenta, como um torno ou fresa, seguindo instruções programadas como furos na fita de papel.

A fita seria passada em uma direção por meio de um mecanismo de “leitura”, e a máquina seguiria cegamente as instruções da fita, independentemente de quaisquer outras condições. Embora esses dispositivos eliminassem o fardo de ter que um maquinista humano dirigisse todos os movimentos da máquina-ferramenta, sua utilidade era limitada.

Como a máquina era cega para o mundo real, apenas seguindo as instruções escritas na fita, ela não poderia compensar as mudanças nas condições, como expansão do metal ou desgaste dos mecanismos.

Além disso, o programador de fita tinha que estar perfeitamente ciente da sequência de instruções anteriores no programa da máquina para evitar circunstâncias problemáticas (como dizer à máquina-ferramenta para mover a broca lateralmente enquanto ela ainda está inserida em um orifício na obra), uma vez que o dispositivo não tinha memória além da própria fita, que era somente leitura.

A atualização de um simples leitor de fita para um design de controle de estado finito deu ao dispositivo uma espécie de memória que poderia ser usada para rastrear o que já havia sido feito (por meio do feedback de alguns dos bits de dados para os bits de endereço), portanto, pelo menos o programador pode decidir que o circuito lembre os “estados” em que a máquina-ferramenta pode estar (como “refrigeração ligada” ou posição da ferramenta). No entanto, ainda havia espaço para melhorias.

A abordagem final é fazer com que o programa forneça instruções que incluam a gravação de novos dados em uma memória de leitura / gravação (RAM), que o programa pode facilmente recuperar e processar. Dessa forma, o sistema de controle poderia registrar o que havia feito e qualquer alteração de processo detectável por sensor, da mesma forma que um maquinista humano pode fazer anotações ou medições em um bloco de notas para referência futura em seu trabalho. Isso é conhecido como CNC, ou Controle Numérico de Malha Fechada .

Engenheiros e cientistas da computação esperavam ansiosamente pela possibilidade de construir dispositivos digitais que pudessem modificar sua própria programação, da mesma forma que o cérebro humano adapta a força das conexões interneurais dependendo das experiências ambientais (é por isso que a retenção de memória melhora com estudos repetidos, e o comportamento é modificado por meio de feedback consequencial).

Isso seria prático apenas se o programa do computador fosse armazenado no mesmo "pool" de memória gravável que os dados. É interessante notar que a noção de um programa de automodificação ainda é considerada na vanguarda da ciência da computação.

A maior parte da programação de computador depende de sequências fixas de instruções, com um campo de dados separado sendo a única informação que é alterada.

Para facilitar a abordagem do programa armazenado, exigimos um dispositivo que é muito mais complexo do que o FSM simples, embora muitos dos mesmos princípios se apliquem. Primeiro, precisamos de memória de leitura / gravação que possa ser facilmente acessada:isso é fácil de fazer.

Os chips de RAM estáticos ou dinâmicos fazem bem o trabalho e são baratos. Em segundo lugar, precisamos de alguma forma de lógica para processar os dados armazenados na memória. Como as funções aritméticas padrão e booleanas são tão úteis, podemos usar uma Unidade Lógica Aritmética (ALU), como o exemplo de ROM da tabela de consulta explorado anteriormente.

Finalmente, precisamos de um dispositivo que controle como e onde os dados fluem entre a memória, a ALU e o mundo externo. Esta assim chamada Unidade de Controle é a peça mais misteriosa do quebra-cabeça até o momento, sendo composta de buffers tri-state (para direcionar dados de e para os barramentos) e lógica de decodificação que interpreta certos códigos binários como instruções a serem executadas.

As instruções de amostra podem ser algo como:"adicione o número armazenado no endereço de memória 0010 com o número armazenado no endereço de memória 1101" ou "determine a paridade dos dados no endereço de memória 0111". A escolha de quais códigos binários representam quais instruções para a Unidade de Controle decodificar é amplamente arbitrária, assim como a escolha de quais códigos binários usar para representar as letras do alfabeto no padrão ASCII era amplamente arbitrária.

ASCII, no entanto, agora é um padrão reconhecido internacionalmente, enquanto os códigos de instrução da unidade de controle são quase sempre específicos do fabricante.

Juntar esses componentes (memória de leitura / gravação, ALU e unidade de controle) resulta em um dispositivo digital que é normalmente chamado de processador . Se for usada memória mínima e todos os componentes necessários estiverem contidos em um único circuito integrado, ele é chamado de microprocessador . Quando combinado com o circuito de suporte de controle de barramento necessário, é conhecido como Unidade Central de Processamento ou CPU.

A operação da CPU é resumida no chamado ciclo de busca / execução . Buscar significa ler uma instrução da memória para a unidade de controle decodificar. Um pequeno contador binário na CPU (conhecido como contador de programa ou ponteiro de instrução ) mantém o valor do endereço onde a próxima instrução é armazenada na memória principal.

A unidade de controle envia este valor de endereço binário para as linhas de endereço da memória principal e a saída de dados da memória é lida pela unidade de controle para enviar para outro registrador de retenção. Se a instrução buscada requer a leitura de mais dados da memória (por exemplo, ao somar dois números, temos que ler os dois números que devem ser adicionados da memória principal ou de alguma outra fonte), a Unidade de Controle aborda apropriadamente a localização de os dados solicitados e direciona a saída de dados para os registradores da ALU.

Em seguida, a Unidade de Controle executaria a instrução sinalizando à ALU para fazer o que fosse solicitado com os dois números e direcionar o resultado para outro registrador chamado de acumulador . A instrução agora foi “buscada” e “executada”, então a Unidade de Controle agora incrementa o contador do programa para avançar a próxima instrução, e o ciclo se repete.


 Microprocessador (CPU) -------------------------------------- | ** Contador de programa ** | | (incrementa o valor do endereço enviado para | | chip (s) de memória externo para buscar | ==========> Barramento de endereço | a próxima instrução) | (para a memória RAM) -------------------------------------- | ** Unidade de Controle ** | <=========> Barramento de Controle | (decodifica as instruções lidas de | (para todos os dispositivos de compartilhamento | programa na memória, permite o fluxo | endereço e / ou ônibus de dados; | de dados de e para ALU, interno | arbitrar todas as comunicações de ônibus | registros e dispositivos externos) | cátions) -------------------------------------- | ** Unidade Lógica Aritmética (ALU) ** | | (executa tudo matemático | | cálculos e booleanos | | funções) | -------------------------------------- | ** Registros ** | | (pequenas memórias de leitura / gravação para | <=========> Barramento de Dados | segurando códigos de instrução, | (da memória RAM e outros | códigos de erro, dados ALU, etc; | dispositivos externos) | inclui o "acumulador") | -------------------------------------- 



Como se pode imaginar, executar até mesmo instruções simples é um processo tedioso. Várias etapas são necessárias para que a unidade de controle conclua os procedimentos matemáticos mais simples.

Isso é especialmente verdadeiro para procedimentos aritméticos, como expoentes, que envolvem execuções repetidas (“iterações”) de funções mais simples. Imagine a quantidade de etapas necessárias dentro da CPU para atualizar os bits de informação para a exibição gráfica em um jogo de simulador de vôo!

A única coisa que torna prático esse processo tedioso é o fato de que os circuitos do microprocessador são capazes de repetir o ciclo de busca / execução com grande velocidade.

Em alguns designs de microprocessador, existem programas mínimos armazenados em uma memória ROM especial interna ao dispositivo (chamada de microcódigo ) que tratam de todas as subetapas necessárias para realizar operações matemáticas mais complexas. Desta forma, apenas uma única instrução tem que ser lida do programa RAM para fazer a tarefa, e o programador não precisa se preocupar em dizer ao microprocessador como fazer cada passo de minuto. Em essência, é um processador dentro de um processador; um programa em execução dentro de um programa.

Tecnologia industrial

  1. Protocolos de rede
  2. Por que digital?
  3. Termos e conceitos de memória digital
  4. Memória somente leitura (ROM)
  5. Dados Op-Amp
  6. Tipos de dados Python
  7. Fabricação baseada em dados está aqui
  8. C - Tipos de dados
  9. C - Sindicatos
  10. C - Gerenciamento de Memória