Como os primeiros microprocessadores sabiam o significado dos códigos binários?

0

Venho me fazendo essa pergunta há mais de um ano e decidi fazer a pergunta aqui. Eu não sei se é o lugar certo ou não.

Até onde eu sei, microprocessadores são uma coleção de transistores, mas eu não entendo algumas coisas sobre eles: como o inventor de microprocessadores (ou talvez computadores) escreveu o primeiro código e programou seu IC? Não havia outros computadores quando eles estavam fazendo o primeiro.

Outra coisa que não entendo é como um IC - especialmente o primeiro IC que era na verdade uma coleção de transistores - sabe o que esses códigos significam? Como o IC entende o que fazer quando a instrução diz 1 ou 0 ou 111011010101?

Obrigado.

    
por bertieb 10.10.2014 / 11:54

3 respostas

0

Quando você escreve código binário, ele é basicamente alimentado sequencialmente no processador, para fazer a parte x ou y ou z.

O código binário não é constante nas máquinas, e é por isso que você não pode executar seus programas X-Box no PS / 3. Como o software, os processadores estão sendo atualizados mantendo-se compatíveis com as versões anteriores: é por isso que você tem intel 286/386/486 / Pentiums etc.

Não se deve supor que o código binário seja interpretado como bit a bit. Por exemplo, uma máquina em que trabalhei tinha um conjunto de códigos como 1ab "copy register a para b". Você escreveria para ela uma alça de inicialização em uma memória específica e, em seguida, faria um salto no sistema. Todos estes são códigos de 8 bits, não códigos de 1 bit.

Portanto, em teoria, um código operacional é um código de comutação eletrônico para o chip: ele abre e fecha vários caminhos e permite que o conteúdo flua de A para B. Outros são interrupções, o que instrui o computador a fazer o que quer que seja. preparado para fazer (tipo como Go!).

    
por 10.10.2014 / 12:13
0

As far as I know Microprocessors are a collection of transistors

Esses transistores podem ser organizados em portas lógicas , por ex. NAND, NOR e inversores portões.
Esses portões podem então ser usados para construir registradores e circuitos lógicos.
Um desses circuitos em uma CPU é um bloco funcional chamado de decodificador de instruções .
É esse decodificador de instruções que traduz cada código de máquina (o que você está chamando de código binário) em sinais para executar a execução real desse código de operação.

How did the inventor of Microprocessors (or maybe computers) wrote the first code and programmed their IC?

Por que sua pergunta sobre "microprocessadores"?
Microprocessadores são apenas um subconjunto de vários tipos de processadores de computador digital. Computadores eletrônicos digitais existem há algumas décadas antes do primeiro microprocessador.

Central para o conceito do computador moderno é memória para o armazenamento de (a) programa na forma de código de máquina e (b) dados. (Estou convenientemente ignorando computadores HLL.) O pior cenário seria usar um painel frontal para inserir manualmente o código da máquina na memória ou usar uma memória pré-programada, por exemplo, PROM ou EPROM.

Another thing I don't get is how an IC (specially the first IC which was actually a collection of transistors) knows what those codes mean?

Um IC é simplesmente um "circuito integrado". Esse circuito pode ser para aplicações analógicas e digitais (ou até mesmo sinais mistos). IC (também conhecido como "chip") e microprocessador não são sinônimos. Um microprocessador é um CI digital (também conhecido como logic). Mas nem todo IC é um microprocessador.

How does the IC understand what to do when the instruction says 1 or 0 or maybe 111011010101?

Supondo que você esteja perguntando sobre uma CPU, é o decodificador de instruções que executa esta função. Existem duas técnicas principais para implementar essa funcionalidade: usando hardwire ou microprogramação.
Observe que a microprogramação não tem nada a ver com microprocessadores. Os primeiros microprocessadores eram hardwired (e não tinham microprogramação). Os primeiros computadores microprogramados eram computadores mainframe, como o IBM S / 360.

    
por 11.10.2014 / 01:22
0

A resposta rápida é: Os projetistas de um processador projetam primeiro o conjunto de instruções (os significados dos vários códigos de instrução, quais operandos são suportados e como são especificados, etc.) e, em seguida, constroem o processador interconectando a lógica gates, de modo a implementar esse conjunto de instruções.

Se eles tivessem uma conexão diferente, o conjunto de instruções seria diferente.

Processadores microprogramados: No mínimo, algum tipo de memória (existem várias possibilidades) como parte das interconexões que determinam o que é o conjunto de instruções. Assim, alterando o conteúdo dessa memória (o "microcódigo"), pode-se alterar o conjunto de instruções. Eu disse "no mínimo" - pode ficar muito mais complicado.

Se você quiser saber mais, sugiro começar do meio: aprenda a linguagem de montagem de alguma máquina. De preferência não x86 / x64, pois é muito complicado. Eu escolheria o ARM se você quisesse algo cuja linguagem de montagem fosse relativamente fácil de aprender, bem como relevante para a tecnologia atual.

Então, se você quiser saber mais, aprenda sobre circuitos lógicos: AND, OR, NOT, NAND, NOR; então circuitos sequenciais, começando com flip-flops, etc.

Quando você começa a pensar em como construir um processador completo, ou até mesmo algo muito simples como um PDP-8, a partir dessas partes você vai pensar "cara, isso é enorme e complicado". Bem, é enorme. Mas não é tão complicado como você pode pensar primeiro. A complexidade é principalmente empilhada em camadas: uma vez que você entende uma camada baixa, você não precisa mais se preocupar com seus detalhes, apenas o que ela faz. Além disso, há aparente complexidade na repetição. Um somador de 32 bits tem aproximadamente 16 vezes mais portas do que um somador de 2 bits. Mas se você entender o somador de 2 bits, poderá entender a versão de 32 bits. É apenas mais do que você já viu.

    
por 11.10.2014 / 02:17

Tags