Mappa del processore sullo schema elettrico


11

Sono uno sviluppatore di software (usando linguaggi di alto livello come .NET, C, C ++ ecc.) Cercando di capire come funzionano i computer a un livello inferiore.

Sono familiare con questo diagramma:

Sto cercando di ottenere una visione di alto livello su come lo schema nel link si associa a uno schema circuitale come questo:

Ad esempio, dai un'occhiata all'istruzione del linguaggio assembly:

ADD 1,2

Sto cercando di capire come il processore produce '3' come output. Mi rendo conto che a questa domanda potrebbe essere difficile rispondere in termini semplici. Se lo è, allora un link potrebbe aiutare, forse a un libro.


Con riferimento al primo diagramma che hai pubblicato, i dettagli di cui hai bisogno sull'aritmetica effettiva sono tutti nascosti nel grande blocco etichettato "ALU": ogni altro blocco su quel diagramma è proprio lì per ottenere 1,2 e "aggiungere" nell'ALU e il risultato ancora una volta. Sapendo ciò, puoi iniziare a leggere come funziona l'ALU, se era quello che stavi chiedendo ..
Brian Drummond,

5
Il tuo primo diagramma è mappato alla CPU Z80 nel secondo diagramma.
Starblue

Risposte:


7

Il problema è che per capire come il computer arriva a 1 + 2 = 3 devi capire 2 livelli più profondi di quanto non fossi mai andato.

All'incirca un computer è organizzato (in termini di campi di studio) in questo modo dal più alto livello di astrazione alla realtà più fisica:

  1. Software applicativo
  2. Macchina virtuale
  3. Sistema operativo
  4. BIOS
  5. Sistemi integrati
  6. Blocchi IP (sottounità / periferiche)
  7. Blocchi logici
  8. Gate-livello
  9. Livello del transistor
  10. Semicoductors
  11. Fisica del dispositivo

Per capire correttamente perché il computer può produrre 2 + 1 = 3, devi prima decidere cosa sei disposto ad accettare "sulla fede" e cosa non crederai fino a quando non lo interiorizzerai. Quella informazione sarà al livello due sotto la cosa che capisci. Pertanto, se si desidera comprendere un circuito sommatore a livello logico, sarà necessario comprendere le basi dei transistor "digitali" (in particolare CMOS).

Usando il tuo sito precedente come esempio, considera questa risorsa . Discute il "Full Adder" - il circuito minimo completamente generico in grado di addizione / sottrazione incluso il carry-in e il carry-out.

Dovrai anche capire come sono rappresentati i numeri nel complemento di 2 (il sistema numerico utilizzato nei computer moderni per l'aritmetica dei numeri interi).

Se vuoi davvero un corso introduttivo di livello mondiale, non posso raccomandare abbastanza il professor Scott Wills alla Georgia Tech. È morto l'anno scorso di cancro, ma il suo corso continua . La classe Georgia Tech ECE2030 (introduzione all'ingegneria informatica) ha il suo libro di testo ed esercita tutto online.

In bocca al lupo!


Grazie per questo. +1. Sono uno sviluppatore .NET, anche se ho esperienza con C e C ++. Comprendo che C # è compilato in Intermediary Language e il compilatore JIT prende di mira l'architettura del computer compilando il codice IL al volo. Sto cercando di capire come un microcontrollore può ricevere un operando e un codice operativo e produrre un output. Sono informato (livello GCSE) su componenti elettronici come: transistor, condensatori ecc.
w0051977,

... poi inizierei con "Switch Design" nelle Letture e proseguirò nelle lezioni da lì.
DrFriedParts il

Il tuo elenco di argomenti riesce a includerne diversi che sono irrilevanti per la domanda, saltando quelli più pertinenti.
Chris Stratton,

@ Chris - No, non lo è.
DrFriedParts l'

3

Ho dovuto imparare lo stesso all'università e abbiamo usato il libro Computer Organization and Design che era molto dettagliato (ma forse è troppo dettagliato per le tue esigenze).

Patterson e Hennesy hanno usato alcuni "semplici" processori MIPS e hanno mostrato l'intera funzione della CPU con un po 'di codice di esempio in Assembler.

In generale, penso che sarebbe una buona idea prendere un processore "semplice" (Arduino o giù di lì) e provare a comprenderne la funzione, perché le differenze da quella a quella più complessa sono maggiori in quanto sono grandi i codici di istruzione implementati.

PS Forse il microprocessore elementare di Google Code sarebbe utile. È un microprocessore simulato in Java.


2

Il libro gratuito How Computers Work - Processor and Main Memory di Roger Young risponderà alla tua domanda, utilizza i relè anziché i transistor per una migliore comprensione.


2
Mentre quel libro sembra utile, modifica la risposta per includere il titolo completo e le informazioni sull'autore. In questo modo, se il collegamento dovesse cambiare, potrebbe essere ancora possibile rintracciarlo in futuro.
PeterJ,

Sembra quello che stavo cercando in quel momento. +1. Darò un'occhiata e poi tornerò.
w0051977,

-1

Ho trovato la mia risposta qui . È una panoramica di alto livello del processo di aggiunta di numeri.


4
È più utile per i futuri lettori se riassumi il materiale nella risposta. Il semplice collegamento di una risorsa esterna non aggiunge molto a EE.SE.
Il fotone

Nota qui cosa sta dicendo @ThePhoton. Anche se quel video di YouTube può aiutarti, puoi riassumere ciò che hai imparato in modo che se il collegamento a questo video si interrompe, questa è ancora una risposta?
Kortuk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.