Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Caratteristiche generali del linguaggio macchina
Il linguaggio macchina realizza le operazioni elementari inquadrandole nell'architettura complessiva del processore e nella tecnica generale di realizzazione di tutte le istruzioni in linguaggio macchina; valgono dunque per le istruzioni di I/O tutto quanto esposto al capitolo del linguaggio macchina in generale: la sintassi delle istruzioni, il riferimento implicito o esplicito agli operandi, la loro natura (immediato, registro o memoria) e così via.
Più generale, l'interfaccia è costituita da tre intere sezioni, dedicate rispettivamente alle funzioni di input, output e controllo, ciascuna delle quali composta da più registri.
Le caratteristiche generali dei linguaggi macchina sono condizionate dalle scelte superiori del sistema, ad esempio nel driver della specifica periferica.
Figura 8.1 Modelli di interfaccia:
a) modello a 3 registri;
b) modello funzionale a tre sezioni;
- Esistenza o mancanza d'istruzioni I/O: non tutti i linguaggi macchina comprendono al tipo registro -ingresso =livello sintattico istruzioni di I/O. In molti casi (si veda in seguito modello "memory cartesianomapped" del § 11) vengono usate per realizzare tali operazioni istruzioni che nascono per dato: registro-dati (8.1') scopi diversi, come quelle di load o di store. È questo un caso limite ma molto diffuso: stato: registro -statitutte le operazioni di I/O vengono costruite adoperando semanticamente istruzioni non end;specificamente costruite per l'I/O; non è dunque predefinito alcun modello di I/O, che può tipo registro -uscita=essere costruito con la flessibilità del software e
prendendo spunto dai modelli sintattici cartesianodegli altri linguaggi macchina.
dato: registro-dati (8.1")
- Selezione della periferia. La selezione della periferia avviene in linguaggio macchina o con la tecnica comando: registro-comandidella selezione dinamica oppure con quella della preselezione (cfr. §.5.5).
- Nel caso dell’indirizzamento end;dinamico, il linguaggio macchina prevede che in ciascuna istruzione sia inserito un operando che funge daindirizzo di selezione; quest’ultimo viene inviato sul bus-indirizzi oppure (nelle architetture storiche) tipo registro -controllo =realizza una selezione interna.
- Nel caso della preselezione, il linguaggio macchina deve consentire cartesianoapposite istruzioni (in via semantica o sintattica) che selezionano la periferia; ad esse seguiranno le stato: registro -statiistruzioni per l’invio o la ricezione dei dati, che sono rivolti comunque alla periferica preselezionata.
comando: registro-comandi
(8.1''')
- Sincronizzazione. Problema fondamentale per la scrittura di un programma di I/O è la sincronizzazione array offlag: [1..n] bitdelle operazioni: un input deve essere effettuato quando il dato in ingresso è pronto, un output quando la endperiferica è in grado di assorbirlo e comunque deve essere "segnalato" alla periferica affinché questa loacquisisca. A tale scopo si adoperano i segnali strobe-in, strobe-out (cfr. § 1.4) e di controllo (cfr. § 2.5).
- Modello funzionale di interfacciaSolo in casi particolari il linguaggio macchina gestisce sintatticamente questi segnali; nella maggioranzadei casi essi sono trattai semanticamente dal programma di I/O (cfr. ad esempio § 12).
- Un'interfaccia è composta di 3 sezioni:
- Trasmissioni a blocchi. Una trasmissione a blocchi può essere realizzata o con un DMA appositamente - d'ingresso, con registro-dato e registro -statointerfacciato
può pertanto essere schematizzata attraverso i funzioni elementari e con due registri (RC.stato, RC.comando) che svolgono funzionitre registri di cui alla fig.8.1a): analoghe a quelle di RI.stato o RO.comando, ma con riferimento al comportamentovar RI: registro -ingresso dell’interfaccia nella sua globalità e non della periferia ad essa collegata. Ad esempio:var RO: registro -uscita • un comando in RO.comando è diretto alla periferia; se questa è una stampante potrebbesignificare “vai a capo pagina”; contenente un numero discreto di registri: lo spazio degli indirizzi è suddiviso fra le• diverse interfacce. L'indirizzo su IOA ha dunque una duplice funzione: selezione dellaun comando in RC.comando definisce le proprietà dell'interfaccia quali le dimensioni inbit di RI ed RO, o se il controllo di errore debba essere per parità o per disparità; interfaccia e selezione nella interfaccia (cfr.
§ 5.3).• Il modello così realizzato completa quello di fig. 6.1a) e consente di collegareuno stato in RI.stato è relativo alla periferica e potrebbe significare "carta inceppata";• apparecchiature comunque realizzate (e non soltanto quelle di assegnata struttura interna,uno stato in RC.stato potrebbe indicare che l'interfaccia sta effettuando un’operazioned’ingresso, che è libera da impegni e così via. come avveniva per le architetture chiuse).Interfacce che possiedono tali caratteristiche si dicono impropriamente programmabili. Il 9.2 Le istruzionimodello è quello di principio cui si ispirano le interfacce concrete, senza necessariamente In secondo luogo, il modello definisce la semantica delle istruzioni in linguaggioadottarlo alla lettera: alcune interfacce possiedono solo una o due delle sezioni di cui sopra e macchina, cioè le microoperazioni da esse realizzate. Il modello contiene soltanto
Le sezioni un numero minore di registri. In fig.8.2 è mostrato un modello ridotto all'essenziale di ricezione o trasmissione di un dato singolo (le istruzioni a blocchi, sono presentate nel rispetto a quello di fig. 8.1, che sarà ampiamente usato in seguito: le sezioni di input ed prossimo paragrafo) e, coerentemente con il modello di interfaccia, intende un'operazione output possiedono il solo registro -dato e quella di controllo due soli flip-flop. Il modello d'ingresso come quella che porta il dato da IOD all'interno del processore, una di uscita corrisponde allo schema fisico di interfaccia ed al modello sintattico usato da un'architettura quella che effettua il trasferimento inverso; in entrambi i casi, un indirizzo è posto sul bus del passato[6] e viene ancora oggi usato come modello semantico nelle architetture moderne IOA e pertanto si ha::(cfr. § 12).
- Input: A := IOD; IOA:= B (9.1)
Sezione RI input - Output:
IOD := A IOA:= B (9.2)C F controllo ove A, B sono due operandi, a seconda dei casi e delle tecniche di indirizzamento impliciti odSezioneRO output espliciti, operandi -registri o operandi-memoria Se IOA è l'indirizzo di uno dei registri delleinterfacce [8], il modello fondamentale e volve in quello che diremo modello a registriindirizzabili: le operazioni sono riferite al registro P[IOA].
9.2.1Questi modelli funzionali sono realizzati semanticamente nelle architetture moderne, siveda ad esempio modello a messaggi differenziati realizzato con quello a registri Nel modello I/O isolato (in contrapposizione al modello memory mapped ) si assume unoindirizzabili, dopo di avere approfondito i due modelli (cfr. §§ 9, 10). spazio di indirizzamento per l'I/O indipendente da quello di memoria e quindi le (9.1), (9.2)diventano:9 Modello fondamentale di programmazione I/O Modello a registri
indirizzabili (I/O isolato):- Input:Facciamo qui riferimento alle architetture di I/O moderne che sono dette aperte in A := P[B] (9.3)contrapposizione alle architetture chiuse[7] del passato, alle quali si farà talora riferimento - Output:attraverso gli inserti. In queste architetture il modello pi ù diffuso è quello che è presentato in P[B] := A (9.4)questo paragrafo e che diremo fondamentale.9.1 L'interfaccia Modello memory mapped9.2.2In primo luogo il modello definisce la struttura dell'interfaccia. A dispetto del modello Nel modello a registri indirizzabili, le istruzioni assumono per il processore un significatofunzionale del paragrafo precedente (che in queste architetture è realizzato solo simile a quelle di move da o per la memoria: rispettivamente l'input è simile al load, l'outputsemanticamente), lo schema di interfaccia “visto” dal linguaggio macchina è molto allo store. Alcuni processori,
sulla base di tale considerazione, non possiedono un ’appositaelementare (cfr. fig. 9.1): il processore vede soltanto un insieme P di registri singolarmente sezione di collegamento con l'I/O, ma assumono a tale scopo la sezione di collegamento conindirizzabili; CPU ed interfaccia sono collegate attraverso un unico bus bidirezionale IOD, la memoria, facendo fisicamente e logicamente coincidere il bus IOA con il bus MA che portagenericamente detto bus-dati, ed un bus-indirizzi IOA che seleziona il registro indirizzato. Il l'indirizzo di memoria ed il bus IOD con il bus MB del memory buffer (fig. 9.2). Un appositomessaggio da o per l'interfaccia fa riferimento al registro P[IOA], che pu ò a seconda del selettore, decodificando l'indirizzo posto su MA e riconoscendolo appartenente alla memoriavalore di IOA diventare semanticamente il registro-dati, il registro-comandi etc. oppure ad uno dei registri di I/O, abilita all’operazione una delle due(1)IOD dato P(2) IOD =MBCPU IOA indirizzo P(k)) CPU Mem Sel. Interfaccia I/O
Nella realtà fisica, il processore è collegato con un insieme di interfacce, ciascuna