Le sezioni "Registro di controllo" e "Registro di stato" e "Registro dei dati" sono parte del dispositivo stesso?

4

Sto studiando l'I / O mappato alla memoria da qui . Ho letto quanto segue:

From the CPU's perspective, an I/O device appears as a set of special-purpose registers, of three general types:

  • Status registers provide status information to the CPU about the I/O device. These registers are often read-only, i.e. the CPU can only read their bits, and cannot change them.
  • Configuration/control registers are used by the CPU to configure and control the device. Bits in these configuration registers may be write-only, so the CPU can alter them, but not read them back. Most bits in control registers can be both read and written.
  • Data registers are used to read data from or send data to the I/O device.

Questa immagine (dalla pagina che ho collegato) mostra i registri:

Ma quello che non capisco è, sono quei registri parte del dispositivo stesso (ad esempio: fanno parte di una stampante) o fanno parte del computer?

    
posta John 30.05.2017 - 05:56
fonte

3 risposte

2

Computer, controller e dispositivi sono concetti ampi e sfocati. Questo spiega perché hai così tante spiegazioni diverse.

Che cos'è un controller hardware?

Un controller può significare cose diverse. Ad esempio:

  • può essere un chip dedicato (o un chipset più complesso) sulla scheda madre, specializzato nel controllo della comunicazione che passa su una porta di interfaccia. Esempi tipici sono un controller host USB o controller integrati , o su macchine precedenti un controller UART o un controller tastiera . Questi controller sono collegati a un bus o a un connettore esterno.
  • può essere una scheda più complessa collegata a uno slot PCI, ad esempio una scheda di rete o un controller del disco RAID . Alcune persone vedono cose così complesse come un dispositivo a sé stante (a causa della sua complessità), mentre alcuni lo vedono semplicemente come un altro controller collegato al bus interno.
  • può essere un microcontrollore (ovvero una sorta di CPU semplificata) che può essere integrato in un dispositivo per eseguire alcuni elaborare le attività e organizzare la comunicazione con ciò che è dall'altra parte del cavo. La maggior parte delle persone che spiegano i controllori dal punto di vista del computer non fanno altro che tralasciare questa spiegazione, perché si tratta di dispositivi interni irrilevanti. Tuttavia un dispositivo ha bisogno del proprio cervello: anche per cose semplici come una vecchia tastiera per PC, come può il controller sulla scheda madre conoscere lo stato dei 102 tasti, quando ci sono solo da 5 a 6 pin / fili che lo collegano alla tastiera remota ? Bene, c'è anche un semplice controller all'interno della tastiera .

Quindi, come regola generale, se hai alcuni cavi tra un computer e un dispositivo, puoi scommettere che c'è almeno un controller su ciascun lato del cavo.

Il controller è nel computer?

Dipende dai limiti impostati per il computer:

  • intendi il core o il tuo computer (cioè CPU, memoria e orologio)? In questo caso la risposta sarà no.
  • intendi la scheda madre? In questo caso, come hai visto la risposta potrebbe essere sì o no, a seconda del tipo di controller che stai pensando.
  • intendi la scatola, cioè i confini fisici con il mondo esterno? Allora sì: ogni volta che un connettore sulla scatola, c'è anche un controller nella scatola.

Ma il fatto che un controller sia sul lato del computer, non esclude che ci sia un controller (nascosto) sul lato del dispositivo.

Ora al DMA!

In alcuni casi un controller può essere collegato direttamente al bus (vedere il nostro esempio precedente di un controller RAID) o il controller si trova sulla scheda madre e connesso al bus.

Per eseguire I / O tramite il bus, il processore dovrebbe indirizzare il dispositivo, byte per byte o parola per parola e copiarlo nella memoria. Questo è molto inefficiente, perché questa semplice operazione di copia manterrebbe la CPU occupata.

Quindi hai il DMA: il processore istruisce un controller DMA per eseguire il lavoro, e il controller DMA indirizza il dispositivo e copia i byte ottenuti in memoria, lasciando la CPU libera di svolgere compiti più interessanti.

    
risposta data 01.06.2017 - 00:29
fonte
0

Sono parte del dispositivo.

Sono indirizzati come se fossero parte della memoria. Funziona perché la memoria e il dispositivo sono collegati allo stesso bus. Parli con loro allo stesso modo.

Se hai mai collegato una scheda a una scheda madre hai collegato un dispositivo a un bus.

Any device connected to the computer is connected by a plug and socket, and the socket is connected to a device controller. Device controllers use binary and digital codes. Each device controller has a local buffer and a command register. It communicates with the CPU by interrupts. A device's controller plays an important role in the operation of that device; it functions as a bridge between the device and the operating system.

Wikipedia: Device Controller

Perché penso al controller come parte del dispositivo? Perché se disconnetti il dispositivo in genere il controller lo utilizza.

    
risposta data 30.05.2017 - 08:07
fonte
0

Ci sono due implementazioni. Quando il controller si trova con "Southbridge", possiamo dire dell'architettura di DMA (accesso diretto alla memoria).

Nell'architettura moderna, il controller può essere posizionato nel dispositivo. È un esempio molto semplice per lavorare con le interruzioni.

In generale, possiamo considerare il controller come parte del dispositivo, perché i moderni progressi dell'ingegneria informatica ci consentono di localizzare le proprie "risorse di sistema" dei dispositivi a bordo. Quando un dispositivo non possiede "risorse di sistema", quindi utilizzerà le risorse di sistema di un computer e, naturalmente, nel caso, il controller si troverà sul computer matherboard.

Ecco una spiegazione molto chiara: link Inoltre, la sesta edizione è più potente.

    
risposta data 30.05.2017 - 10:47
fonte

Leggi altre domande sui tag