Potrebbe essere falso in biologia, ma in informatica-scienza, "ontogeny ricapitola filogenesi" quasi. Una panoramica storica delle architetture dei computer fin dai primi computer è un ottimo modo per comprendere il soggetto dell'architettura dei computer dal punto di vista di un programmatore; i design dei computer sono quasi tutti i perfezionamenti dei precedenti progetti.
Cioè, consiglio di studiare progetti di sistemi operativi più vecchi completi, di libri teorici di "architettura informatica" che ti danno in informatica. Capire veramente la progettazione dei sistemi e fare un ottimo lavoro con la scrittura di software. La comprensione intuitiva dell'architettura dei sistemi informatici richiede la padronanza di molti concetti. Penso che se si ricomincia da capo quando le architetture dei computer fossero più gestibili in termini di dimensioni e portata, si potrebbe ottenere il padre nell'obiettivo di scrivere codice migliore.
(Quella serie di libri di "scrivere codice fantastico" che un altro ragazzo ha menzionato sembra molto bella, e ho modificato la mia domanda per rimuovere ogni aspersione che avevo precedentemente usato per imparare da un libro, perché sembra fantastico!)
Alcune cose che insegnano molto bene l'architettura del computer:
-
Mi piace scegliere le macchine degli anni '80 come punti di partenza per spiegare e dimostrare le cose alle persone, perché è stato allora che ho iniziato a usare i computer. Ho usato la guida di riferimento del programmatore commodore 64, per mostrare alle persone un salto dove la conoscenza della programmazione e la conoscenza dell'architettura dei computer si incontrano.
Con un libro di questo tipo, e forse un emulatore commodore 64 in esecuzione sul tuo PC in modo da poter provare cose, imparerai come i sistemi informatici nell'incarnazione classica dell'architettura dei computer degli anni '80 sono davvero costruiti. A mio avviso, un esempio concreto è un punto di partenza migliore, oltre a una dozzina di modelli teorici che mancano ai dettagli del mondo reale che fanno funzionare le cose. Se sai cos'è un registro, cos'è una ALU, cos'è un bus, e cos'è un orologio, e quali sistemi di segnalazione sono usati in un vecchio design degli anni '80, che ti fornirà i fondamenti che devi sapere per capire qualcosa recente, come la "architettura del ponte di sabbia" di Intel. Storicamente, guarda indietro agli originali, per esempio consulta l'architettura "Von neumann", su wikipedia.
-
Andando avanti dal mio primo punto alcuni anni; Scopri l'architettura PC IBM originale, la lingua di assemblaggio 8086 e il bus ISA. Da questo e dai suoi limiti, la comprensione di cosa contiene una CPU "Intel COre i7", e cosa fanno i bus PCI e PCI-e e perché ne avete bisogno, può procedere in modo più naturale. L'architettura del PC ha ancora un po 'di "postumi di sbornia" dal design originale del PC IBM. Il modo in cui il caricamento del programma iniziale (sistema operativo) (avvio) avviene su un PC del 2011 deve ancora molto all'eredità del PC IBM originale e del suo BIOS ROM e delle sue impostazioni CMOS in un PC originale.
-
Usa e modifica una build preconfigurata di Linux che funziona su alcuni dispositivi embedded non-PC, e imparerai molto sull'architettura dei computer embedded, non solo l'architettura tecnica, ma perché alcune delle funzionalità ci sono. Un buon esempio che è disponibile a basso costo è TS-7200 , che ha un bel PC-104 (ISA Bus, come nel PC originale). Il PC-104 (bus ISA a 16 bit incorporato compatibile con i PC PC IBM AT / AT 80286) è un ottimo modo per un progettista non-board di creare un sistema incorporato, poiché i moduli sono impilabili. Vuoi qualche IO in più o periferiche? Basta impilare alcuni moduli. Il TS-7200 ha un core non-x86 (una CPU ARM9) in grado di eseguire sia big-endian che little-endian. Se non hai ancora incontrato "endianità" nel tuo viaggio di apprendimento dell'architettura, è un buon posto per incontrarlo.