Basisfuncties van controller

Feb 06, 2023|

1. Gegevensbuffering: aangezien de snelheid van I/O-apparaten laag is en de snelheid van CPU en geheugen hoog, moet er een buffer worden ingesteld in de controller. Gebruik deze buffer op het moment van uitvoer om de door de host verzonden gegevens tijdelijk met hoge snelheid op te slaan en verzend de gegevens in de buffer vervolgens naar het I/O-apparaat met de snelheid die het I/O-apparaat heeft; op het moment van invoer gebruikt de buffer. Het slaat tijdelijk de gegevens op die door het I/O-apparaat zijn verzonden en verzendt na ontvangst van een batch gegevens de gegevens in de buffer met hoge snelheid naar de host.
2. Foutcontrole: de apparaatcontroller is ook verantwoordelijk voor foutdetectie van de gegevens die door het I/O-apparaat worden verzonden. Als er een fout optreedt tijdens de verzending, wordt de foutdetectiecode meestal ingesteld en gerapporteerd aan de CPU, zodat de CPU deze keer de verzonden gegevens ongeldig maakt en een nieuwe verzending uitvoert. Dit zorgt voor een correcte invoer van gegevens.
3. Gegevensuitwisseling: Dit verwijst naar de realisatie van gegevensuitwisseling tussen de CPU en de controller, en tussen de controller en het apparaat. Voor de eerste schrijft de CPU gegevens parallel naar de controller via de databus, of leest parallel gegevens van de controller; voor het laatste voert het apparaat gegevens in naar de controller of verzendt het gegevens van de controller naar het apparaat . Hiervoor moeten in de controller gegevensregisters worden ingesteld.
4. Statusbeschrijving: Identificeer en rapporteer de status van het apparaat. De controller moet de status van het apparaat vastleggen zodat de CPU deze kan begrijpen. Pas wanneer het apparaat klaar is om te verzenden, kan de CPU bijvoorbeeld de controller starten om gegevens van het apparaat te lezen. Om deze reden moet er een statusregister worden ingesteld in de controller, en elk daarvan wordt gebruikt om een ​​bepaalde status van het apparaat weer te geven. Wanneer de CPU de inhoud van het register leest, kan deze de status van het apparaat begrijpen.
5. Commando's ontvangen en identificeren: de CPU kan verschillende commando's naar de controller sturen en de apparaatcontroller moet deze commando's kunnen ontvangen en identificeren. Om deze reden moeten er overeenkomstige besturingsregisters in de controller zijn, die worden gebruikt om de ontvangen commando's en parameters op te slaan en de ontvangen commando's te decoderen. De schijfcontroller kan bijvoorbeeld 15 verschillende opdrachten ontvangen, zoals lezen, schrijven en formatteren van de CPU, en sommige opdrachten hebben ook parameters; dienovereenkomstig zijn er meerdere registers en opdrachtdecoders in de schijfcontroller.
6. Adresherkenning: net zoals elke eenheid in het geheugen een adres heeft, heeft elk apparaat in het systeem ook een adres en moet de apparaatcontroller het adres kunnen herkennen van elk apparaat dat het bestuurt. Bovendien moeten deze registers unieke adressen hebben om ervoor te zorgen dat de CPU gegevens naar (of uit) de registers kan schrijven (of lezen).

 

Aanvraag sturen