spedire una lettera è di gran lunga il modo migliore per descriverlo, hai un nome, un numero, una strada, una città, un codice postale, forse un numero di suite o altro a seconda di dove vivi.
La lettera lascia la tua casa con tutte queste informazioni su di esso e gli uffici postali selezionano questi articoli prima di lasciare la tua casa, poi qualche ispezione di primo livello per capire che sta lasciando questo ufficio postale, sta lasciando questa città, ecc. . una serie di decisioni e ordinamenti lungo la strada per arrivare alla persona postale per quella strada / area e lo ordinano per casa poi consegnarlo.
Il processore e il programmatore (indirettamente ma con una notevole quantità di aiuto dal sistema operativo) sei a casa tua, hai del materiale di riferimento (la tua rubrica) di indirizzi alle cose (beh, diciamo il sistema operativo non necessariamente te) alcune di queste cose sono solo alcune delle periferiche o dei registri di controllo e di stato, ecc. c'è qualche limite nel processore o all'esterno dove questo spazio di indirizzamento flatish vive, quel confine è il tuo cortile tra casa tua e la tua casella di posta sul marciapiede. l'indirizzo viene gettato su questo bus e poi il postino prende il sopravvento, gli strati di logica selezionano l'indirizzo per determinare dove è necessario tornare nel chip o nelle periferiche o nella memoria sulla scheda.
Quindi in generale un indirizzo si può indicare cose nella CPU e cose al di fuori della CPU. I progettisti di hardware generalmente non amano rendere il lavoro eccessivamente difficile, quindi di solito uno o più blocchi consecutivi nell'indirizzo vengono utilizzati per instradare la transazione. alcuni bit alti potrebbero determinare su chip o off per esempio e poi alcuni bit successivi potrebbero determinare il ram dalle periferiche, e poi, una volta instradato a un periperhal, alcuni bit in più potrebbero determinare dove si trova nella periferica. ci sono anche lacune in genere su un lspci e guardiamo gli intervalli di indirizzi, solo perché una periferica vuole 32 MB non significa che abbia 32 MB di cose singole con cui parlare, è solo una buona potenza di 2 per la logica prendere decisioni su una volta a le periferiche possono essere sprecate se scelgono con quei bit di accedere a un piccolo numero di cose o efficienti.
di nuovo il sistema operativo, stratificato a sua volta, ha direttamente o indirettamente la conoscenza di quella scheda e processore e generalmente lo nasconde da te, normalmente non fai semplicemente un registro uart, ma chiama una funzione a livello dell'applicazione che chiama il kernel funzioni che poi arrivano a quei registri che fanno muovere i segnali sull'interfaccia o su qualsiasi interfaccia. mmus se hai un indirizzo di virtualizzazione in modo che la tua applicazione o ogni applicazione possa sembrare che inizi su un indirizzo come 0x0000 e abbia da 0x000 a N byte di memoria in modo tale che tutti i programmi possano essere compilati nello stesso modo ma una traduzione in hardware e il software (sistema operativo) converte il tuo indirizzo 0x1234 in un altro indirizzo prima che raggiunga quel limite magico dove lascia la casa e colpisce la casella di posta nel dominio dell'ufficio postale dove seguono semplicemente le regole per la consegna allo stesso modo ogni volta (hardware).