Domanda:
libro di progettazione microcontrollore / cpu?
kalaracey
2011-04-24 21:05:04 UTC
view on stackexchange narkive permalink

Sto cercando un libro introduttivo alla progettazione di CPU / microcontrollori / microprocessori. Qualche idea? ARM o x86 sono entrambi fantastici. Ho un ottimo libro sul linguaggio assembler, ma sto cercando qualcosa di più a livello ingegneristico. O forse sono la stessa cosa? Forse non esiste, o forse ho bisogno di affinare la mia domanda ma qualsiasi cosa aiuterebbe. Grazie.

EDIT: migrato da Superuser

EDIT: Vengo da un background di programmazione di base, ma sto cercando qualcosa a un livello più di ingegneria elettrica.

Stai cercando un libro sulla progettazione di CPU o sull'utilizzo di CPU?
Microchip [(link)] (http://www.microchip.com/) è una società che vende circuiti integrati. Un microcontrollore [(link)] (http://en.wikipedia.org/wiki/Microcontroller) è un tipo di microprocessore che aggiunge periferiche come memoria volatile e / o non volatile, IO per scopi generici e altre periferiche hardware. Ho modificato la tua domanda perché credo che intendessi utilizzare "microcontrollore", ma sentiti libero di annullare la modifica se vuoi conoscere l'azienda (anche se immagino che avrai bisogno di un lavoro lì per conoscere i dettagli sulla loro processori ...)
Grazie reemrevnivek - l'architettura del microcontrollore è decisamente sullo stesso argomento
Sei risposte:
Tim
2011-05-06 01:44:03 UTC
view on stackexchange narkive permalink

Suggerirei di costruire un computer moderno partendo dai primi principi. Come suggerisce il titolo, passa attraverso il processo di costruzione di un computer dalle porte logiche fondamentali in su. Dai un'occhiata alle recensioni su amazon qui.

Il sito web dell'autore contiene in realtà molte informazioni, quindi puoi decidere tu stesso se sembra che soddisfi le tue esigenze.

old_timer
2011-04-25 22:06:46 UTC
view on stackexchange narkive permalink

Mi capita di lavorare su qualcosa di simile ma non sono ancora pronto per rilasciarlo. (almeno non pubblicamente)

Penso che tu debba modificare / perfezionare la tua domanda. Prendendo una pugnalata generale alla domanda. Inizierei con qualcosa di più semplice sia di ARM che di x86 ed eviterei x86 tutti insieme.

Avere un libro assemblatore implica che sei un programmatore o hai alcune capacità di programmazione. Non so se la tua domanda è più dal lato della programmazione o dal lato del design digitale.

Se vieni dal lato del programmatore, inizierei imparando l'assemblatore per msp430 e arm o thumb (non fare ancora confusione con x86, non è una buona architettura), forse PIC (più vecchio pic, non il dspic né il pic32). Quindi scrivi un disassemblatore e / o un simulatore di set di istruzioni. se è solo un disassemblatore scegli un set di istruzioni di lunghezza di parola non variabile come ARM o thumb (sì, se ci pensi puoi gestire quell'istruzione di ramo) o il PIC. Alla fine scrivi un simulatore di set di istruzioni, almeno sufficiente per implementare una manciata di istruzioni e un ramo, fai in modo che un ciclo lo veda eseguire. Quindi vai a studiare sulle macchine a stati e riscrivi il simulatore usando le macchine a stati. Ho un simulatore di set di istruzioni, non necessariamente, completamente, basato su una macchina a stati, ma potrebbe darti la sensazione di ciò di cui sto parlando. cerca thumbulator su GitHub. Il mio nome utente è dwelch67 lì.

se ti stai avvicinando a questo da una prospettiva di ingegnere elettrico, potresti voler guardare gli opencores. La leggibilità e altre caratteristiche di hdl possono essere difficili ma è disponibile per essere consumato. verilator e icarus verilog sono buoni simulatori di verilog. Mi piace Verilator più in parte perché è così rigido con l'analisi di Verilog e in secondo luogo è super facile attraversare il confine C / C ++ e HDL per scrivere software per parlare con l'hardware simulato e altre cose di tipo riutilizzabili. Ce n'è uno minuscolo chiamato mcpu o qualcosa del genere su cui tutto si adatta a una pagina di carta se stampata. Devi davvero capire come scrivere un programma con solo una o due operazioni reali (penso che abbia solo un NOR). Se sei un ingegnere elettrico e hai bisogno di un corso accelerato in digitale, i transistor sono sempre saturi, in pratica vengono utilizzati come interruttori controllati elettricamente. Prendine un paio con alcuni cavi e altri componenti e puoi creare porte AND e OR, aggiungere un transistor invertente e creare una porta NOT che consenta NAND e NOR. Se non lo sai già, vorrai conoscere le macchine a stati.

In generale devi comprendere la logica di base AND, OR, NOT, ecc. Impara le macchine a stati che funzionano perfettamente con software o hardware , il concetto è lo stesso. Il reset e il clock sono in realtà parte dell'apprendimento della macchina a stati, far funzionare la macchina a stati e pensare in termini di ogni passaggio attraverso la logica / codice è un ciclo di clock nella CPU e le variabili di stato vengono utilizzate in ogni passaggio per indicare cosa fare durante quel ciclo di clock, qual è lo stato corrente e, in base allo stato corrente e agli input, quale sarà lo stato successivo, ecc.

Wow. grazie - apprezzo tutte le informazioni. Sicuramente provenendo da un background di programmatore, ma ero interessato alla prospettiva dell'ingegneria elettrica. Avevo sentito che x86 non era il massimo e che "avrebbe dovuto" essere sostituito qualche tempo fa.
Andy
2011-04-24 22:14:17 UTC
view on stackexchange narkive permalink

Nel dominio dei libri di testo, Computer Organization and Design è uno dei classici. Tuttavia, non sono sicuro di quanto funzioni per lo studio autonomo.

Ho usato questo libro in un corso dove era la prima volta che il Prof insegnava (quindi all'inizio era un insegnamento piuttosto approssimativo).Tuttavia, ho trovato il libro estremamente utile e insolitamente comprensibile.
Wouter van Ooijen
2011-06-29 02:59:04 UTC
view on stackexchange narkive permalink

Per l'architettura ARM, secondo il libro Furber (ARM System-on-chip Architecture), ma potrebbe non essere "introduttivo". (Lo abbiamo usato come riferimento nella classe assembly ARM, per cui è meno adatto). Per l'architettura generale dei computer adoro i libri di Hennessey / Patterson. Non esattamente "introduttivo" :)

rrazd
2011-07-02 02:22:07 UTC
view on stackexchange narkive permalink

Prova Computer Organization di Carl Hamacher. L'abbiamo utilizzato nella nostra università per studiare computer digitali e sistemi a microprocessore



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...