Software e microcircuito
Os circuitos lógicos ou microcircuitos são compostos por substâncias quimicas que exercem a função de componentes eletrônicos. Os Circuitos Integrados (CIs) podem agrupar vários circuitos que são colocados em placas de silício. Já os programas (softwares) são armazenados em memória persistente (não volátil) para que algum CI (Geralmente um processador) realize a leitura dos dados correspondentes as instruções que compõem o programa e as execute através de seu conjunto de circuitos lógicos. Para mais detalhes sobre como programas são executados por um processador, acesse: arquitetura de computadores e processadores.
![Linguagem binária](img/binario.jpg)
Relação software e microcircuitos
Então, para ser direto, o circuito lógico que também é conhecido como microcircuito, recebe sinais elétricos de entrada e gera sinais elétricos de saída. Já o programa de computador é uma sequência de dados que podem ser tomados como entrada por um, ou conjunto de microcirtuitos para que, dependendo do programa de entrada e dos dados que o programa manipula, o circuito gere diferentes saídas. No entanto, vale esclarecer a diferença entre um mero conjunto de dados e um programa, ou software. Por exemplo, imagine um circuito lógico cuja função é receber números codificados em binário e realizar a soma entre esses números, gerando assim, pelas vias da saída dele, os bits correspondentes ao número resultante da soma. Os números que o circuito recebe como entrada não são software, são apenas dados numéricos representados em binário.
Em problemas muito mais complexos que um que realiza uma simples soma, seria muito difícil ou, dependendo do problema, impossível na prática, resolvê-lo apenas com circuitos lógicos. Então, nesses casos, surge a necessidade de criação de um software que resolva o problema. Você já pensou em um computador com sistema operacional funcionando apenas com base em um, ou um conjunto, de circuitos lógicos integrados? Entenda que o computador é um dispositivo eletrônico como todos os outros, só que mais complexo pelas funções que desempenha. Inclusive, quase todos os dispositivos eletrônicos exigem uma arquitetura muito mais complexa que a de um dispositivo eletrônico sem software, cujo funcionamento baseia-se apenas em circuitos e outros componentes de hardware. Um exemplo de dispositivo sem software é o botão de alarme de um carro e, provavelmente, a maioria dos controles remotos.
![Microprocessador](img/processador.jpg)
É consideravel o seguinte: em dispositivos eletrônicos modernos há software que é armazenado em memória persistente (não volátil). Geralmente, há um circuito integrado (conjunto de circuitos lógicos) que no computador moderno é chamado de processador, que lê o programa da memória através de vias de comunicação por onde trafegam sinais elétricos que o ligam a memória e, ao receber os sinais elétricos correspondentes ao programa, esses são tomados pelo processador como sinais de entrada e geram uma saída, conforme os dados a serem manipulados pelo programa. O programa é codificado em binário e composto por instruções de acesso e manipulação aos componentes do processador e outros dispositivos como: memória RAM, monitor, teclado, HD, Unidade de CD/DVD, etc.
Microprograma
Existe também a microprogramação, utilizada no projeto e fabricação de processadores de arquitetura CISC - Complex Instruction Set Computer (Conjunto Complexo de instruções de computador). A microprogramação se dá no nível ISA - Instruction Set Arquitecture (Arquitetura do conjunto de instruções), que é o nível de programação mais próximo do hardware. É possível gravar instruções de um microprograma em uma memória ROM - Read Only Memory (Memória somente leitura) e inseri-la no processador para que os circuitos componentes da Unidade de Controle (UC) executem as instruções gravadas nela. Isto é, o microprograma programa a UC. Para mais detalhes sobre o processador e a UC veja: arquitetura de computadores e processadores.