Mapear o processador para o diagrama de circuito

11

Sou desenvolvedor de software (usando linguagens de alto nível, como .NET, C, C ++ etc.) tentando entender como os computadores funcionam em um nível inferior.

Eu sou familiar com este diagrama:

Estou tentando obter uma visão de alto nível de como o diagrama no link é mapeado para um diagrama de circuito como este:

Por exemplo, dê uma olhada na declaração da linguagem assembly:

ADD 1,2

Estou tentando entender como o processador produz '3' como saída. Sei que pode ser difícil responder a essa pergunta em termos simples. Se for, um link ajudaria, talvez para um livro.

w0051977
fonte
Com referência ao primeiro diagrama que você postou, os detalhes necessários da aritmética real estão todos ocultos no grande bloco chamado "ALU": todos os outros blocos desse diagrama estão lá apenas para obter 1,2 e "adicionar" à ALU e o resultado novamente. Sabendo disso, você pode começar a ler como a ALU funciona, se era isso que você estava perguntando ..
Brian Drummond
5
Seu primeiro diagrama é mapeado para a CPU Z80 no segundo diagrama.
starblue

Respostas:

7

O problema é que, para entender como o computador atinge 1 + 2 = 3, é necessário entender cerca de 2 níveis mais profundos do que você já percorreu.

Aproximadamente um computador é organizado (em termos de campos de estudo) assim, do mais alto nível de abstração até a realidade mais física:

  1. Software de aplicação
  2. Máquina virtual
  3. Sistema operacional
  4. BIOS
  5. Sistemas Embarcados
  6. Blocos IP (subunidades / periféricos)
  7. Blocos lógicos
  8. Nível do portão
  9. Nível do transistor
  10. Semicodutores
  11. Física dos dispositivos

Para entender corretamente por que o computador pode produzir 2 + 1 = 3, você deve primeiro decidir o que está disposto a aceitar "com fé" e em que não acreditará até que o internalize. Essa informação estará no nível dois abaixo do que você entende. Portanto, se você deseja entender um circuito somador no nível lógico, precisará entender o básico dos transistores "digitais" (especificamente o CMOS).

Usando o site anterior como exemplo, considere este recurso . Ele discute o "Full Adder" - o circuito de uso geral completamente mínimo capaz de adição / subtração, incluindo a entrada e a saída.

Você também precisará entender como os números são representados no complemento de 2 (o sistema numérico usado nos computadores modernos para aritmética inteira).

Se você realmente quer um curso introdutório de classe mundial, não posso recomendar o professor Scott Wills, da Georgia Tech, o suficiente. Ele faleceu no ano passado de câncer, mas seu curso continua . A classe Georgia Tech ECE2030 (introdução à engenharia da computação) tem seu livro de texto e exercícios todos online.

Boa sorte!

DrFriedParts
fonte
Obrigado por isso. +1. Sou desenvolvedor .NET, embora tenha experiência com C e C ++. Entendo que o C # é compilado na Linguagem Intermediária e o compilador JIT tem como alvo a arquitetura do computador, compilando o código IL em tempo real. Estou tentando entender como um microcontrolador pode receber um operando e um opcode e produzir uma saída. Sou conhecedor (nível GCSE) sobre os componentes eletrônicos como: transistores, capacitores etc
w0051977
... então eu começaria com "Switch Design" nas leituras e prosseguiria nas lições a partir daí.
DrFriedParts
Sua lista de tópicos consegue incluir vários que são irrelevantes para a pergunta, ignorando os que são mais relevantes.
22813 Chris Stratton
@ Chris - Não, não faz.
DrFriedParts
3

Eu tive que aprender o mesmo na universidade e usamos o livro Organização e Design de Computadores, que era muito detalhado (mas talvez seja muito detalhado para suas necessidades).

Patterson e Hennesy usaram algum processador MIPS "simples" e mostraram toda a função da CPU com algum código de amostra no Assembler.

Geralmente, acho que seria uma ótima idéia pegar um processador "simples" (Arduino ou algo assim) e tentar entender a função, porque as diferenças disso para o mais complexo são mais no tamanho dos códigos de instruções implementados.

PS Talvez o microprocessador elementar do Google Code seja útil. É um microprocessador simulado em Java.

Thomas Fischer
fonte
2

O livro gratuito Como os computadores funcionam - processador e memória principal, de Roger Young, responderá à sua pergunta; ele usa relés em vez de transistores para melhor compreensão.

rvnd_kk
fonte
2
Embora esse livro pareça útil, edite a resposta para incluir o título completo e as informações do autor. Dessa forma, se o link mudar, ainda será possível rastreá-lo no futuro.
precisa saber é o seguinte
Parece o que eu estava procurando na época. +1. Vou dar uma olhada e depois voltar.
W0051977
-1

Encontrei minha resposta aqui . É uma visão geral de alto nível do processo de adição de números.

w0051977
fonte
4
É mais útil para futuros leitores se você resumir o material na resposta. Apenas dar um link para um recurso externo não adiciona muito ao EE.SE.
O Photon
Observe o que o @ThePhoton está dizendo aqui. Embora o vídeo do youtube possa ajudá-lo, você pode resumir o que aprendeu para que, se o link do vídeo quebrar, isso ainda seja uma resposta?
21413 Kortuk