Übungsblatt Nr. 6 zur Vorlesung Rechnerarchitektur I ==================================================== Aufgabe 6.9 9.) Aufgabe: Gegeben sei in einem Rechner ein zentraler Interrupt Controller (INT), ein DMA-Controller sowie ein Festplatten-Controller (HD). Der Festplatten-Controller soll einen Record auf der Platte lesen. Welche Geräte müssen dazu was tun? Erläutern Sie die einzelnen Schritte der CPU und ihren Controllern mit den Signalverläufen im Steuerbus. Erläuterungen: Basis: S.197,199 DMA S.188,200 evtl. als Skizzenvorlage, Signalverläufe im Steuerbus zu den Schritten extra zeichnen. Das Merkmal "asynchron_Flow" meint hier im Gegensatz zu "synchron_Flow", daß man nicht weiß (zeitlich), wann das Ereignis eintreten wird. 1. CPU initialisiert den INT-Controller mit Verbindung zum DMA- Controller ("Routine für Daten da") und zum HD-Controller (Fehlerroutine) [synchron_Flow,IO-Zugriff], sofern dies nicht schon als Standard vom Betriebssystem eingestellt ist. 2. CPU startet DMA-Controller mit Eingabekanal und Übertragungsbereich [synchron_Flow,IO-Zugriff], dieser vermittelt nachfolgend als Bus- Controller die Daten vom HD-Controller in den Hauptspeicher 3. CPU startet HD-Controller mit Blocknummern [synchron_Flow,IO-Zugriff]. Nebenläufig passiert: HD-Controller fängt an Daten von der Festplatte zu suchen/anzufahren, die Festplatte überträgt in ihren internen Puffer, der HD-Controller wartet auf bzw. aktiviert Transfer [Steuerbus]. 4. Die Controller (HD->DMA) übertragen zusammen alle angeforderten Daten von der Festplatte [Memory-Zugriff]; Die CPU macht derweil anderes und arbeitet parallel dazu an einer oder mehreren anderen Task, möglichst ohne den DMA und Speicherzugriff zu beeinträchtigen. 5. Mit Durchlaufen des Übertragungsbereiches (Zähler) vom DMA- Controller wird ein "Transfer-Ready-INT" vom DMA-Controller am INT- Controller ausgelöst und dieser gibt den INT an die CPU weiter. [INT] 6. Die CPU reagiert auf den INT und springt in die angegebene "Routine für Daten da". [asynchron_Flow,INT] Eine jede gerade parallel bearbeitete Task wird unterbrochen. CPU vermerkt den Transfer und gibt diesen Datenblock an den anfordernden Prozess weiter. 7. Danach wird vom Betriebssystemprogramm entschieden, welcher Prozess weiterlaufen soll, abhängig von den anliegenden Prozessen und Prozesszuständen.