as 2007-08-31 06:13:11 UTC
FreeBSD ports repository
Modified files:
books/developers-handbook/dma chapter.sgml
books/developers-handbook/introduction chapter.sgml
books/developers-handbook/ipv6 chapter.sgml
books/developers-handbook/kerneldebug Makefile
books/developers-handbook/l10n chapter.sgml
books/developers-handbook/policies chapter.sgml
books/developers-handbook/secure chapter.sgml
books/developers-handbook/sockets chapter.sgml
books/developers-handbook/testing chapter.sgml
books/developers-handbook/tools chapter.sgml
books/developers-handbook/x86 chapter.sgml
Log:
- Zeilenlaenge getrimmt
- einrueckung getrimmt
- doppelte leerzeichen
- leerzeichen am Zeilenende
Revision Changes Path
1.7 +627 -625 de-docproj/books/developers-handbook/dma/chapter.sgml
1.8 +74 -58 de-docproj/books/developers-handbook/introduction/chapter.sgml
1.5 +9 -8 de-docproj/books/developers-handbook/ipv6/chapter.sgml
1.2 +3 -1 de-docproj/books/developers-handbook/kerneldebug/Makefile
1.7 +103 -102 de-docproj/books/developers-handbook/l10n/chapter.sgml
1.5 +105 -88 de-docproj/books/developers-handbook/policies/chapter.sgml
1.10 +22 -15 de-docproj/books/developers-handbook/secure/chapter.sgml
1.3 +33 -33 de-docproj/books/developers-handbook/sockets/chapter.sgml
1.5 +136 -125 de-docproj/books/developers-handbook/testing/chapter.sgml
1.3 +5 -5 de-docproj/books/developers-handbook/tools/chapter.sgml
1.11 +2048 -2048 de-docproj/books/developers-handbook/x86/chapter.sgml
Index: chapter.sgml
===================================================================
RCS file: /home/cvs/de-docproj/books/developers-handbook/dma/chapter.sgml,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -I$FreeBSDde.*$ -r1.6 -r1.7
--- chapter.sgml 31 Aug 2007 01:42:15 -0000 1.6
+++ chapter.sgml 31 Aug 2007 06:13:08 -0000 1.7
@@ -1,4 +1,4 @@
-<!--
+<!--
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
@@ -16,13 +16,13 @@
<contrib>Übersetzt von </contrib>
</author>
</authorgroup>
- </chapterinfo>
+ </chapterinfo>
<title>DMA</title>
<sect1 id="dma-basics">
<title>DMA: Was es ist und wie es arbeitet</title>
-
+
<para><emphasis>Copyright © 1995,1997 &a.uhclem;, Alle Rechte
vorbehalten. 10. Dezember 1996. Letztes Update Oktober
1997.</emphasis></para>
@@ -88,7 +88,7 @@
<sect2>
<title>Beispiel eines DMA-Transfers</title>
-
+
<para>Hier ist ein Beispiel für die notwendigen Schritte,
welche einen DMA-Transfer veranlassen und durchführen.
In diesem Beispiel hat der Diskettencontroller (floppy disk
@@ -97,7 +97,7 @@
0x00123456 abzulegen. Der Prozess beginnt damit, daß der
FDC das DRQ2-Signal (die DRQ-Linie für DMA-Kanal 2)
einfügt, um den DMA-Controller zu alarmieren.</para>
-
+
<para>Der DMA-Controller nimmt wahr, daß das DRQ2-Signal
eingefügt ist. Der DMA-Controller stellt sicher,
daß der DMA-Kanal 2 programmiert und unmaskiert
@@ -109,7 +109,7 @@
Bus freizugeben, damit der DMA-Controller ihn nutzen kann.
Diese Anforderung erfolgt mittels des HRQ-Signals, welches zur
CPU geht.</para>
-
+
<para>Die CPU erkennt das HRQ-Signal und führt die
momentane Instruktion komplett aus. Sobald die CPU den Bus
freigeben kann, wird er dies tun. Nun sind alle normalerweise
@@ -118,26 +118,26 @@
(entweder hoch oder niedrig) und die CPU teilt dem
DMA-Controller mittels des HLDA-Signals mit, daß er nun
die Kontrolle über den Bus hat.</para>
-
+
<para>Abhängig vom Prozessor kann die CPU noch einige
zusätzliche Instruktionen ausführen ohne die
Kontrolle des Bus, aber sie muß unter Umständen
warten, wenn sie Instruktionen abarbeiten will, welche etwas
aus dem Speicher lesen müssen, was nicht im internen
Prozessor-Cache oder der Pipeline ist.</para>
-
+
<para>Da der DMA-Controller nun <quote>verantwortlich
ist</quote>, aktiviert er -MEMR, -MEMW, -IOR, -IOW
Output-Signale und der Output des DMA-Controllers wird auf
0x3456 gesetzt, damit das zu transferierende Byte zu einem
bestimmten Speicherbereich gelangt.</para>
-
+
<para>Der DMA-Controller verständigt nun das Gerät,
welches die Anforderung veranlasst hat, daß der Transfer
beginnt. Dies geschieht mittels einfügen des Signals
-DACK signal oder wie hier in unserem Beispiel mittels
-DACK2.</para>
-
+
<para>Der Floppy-Controller ist nun verantwortlich für
das Setzen des Bytes für den Transport auf den
Datenlinien des Bus. Sofern der Floppy-Controller nicht mehr
@@ -148,28 +148,28 @@
-IOR widerrufen, damit der Speicher das Byte auf dem Bus
sperrt und speichert und der FDC weiß, daß das
Byte übertragen wurde.</para>
-
+
<para>Da der DMA-Zyklus nur ein einzelnes Byte zugleich
transferiert, wird der FDC nun das Signal DRQ2 absetzen und
der DMA-Controller weiß, daß es nicht länger
benötigt wird. Der DMA-Controller fügt das -DACK2
-Signal wieder ein und der FDC registriert, daß er
aufhören muß Daten an den Bus zu senden.</para>
-
+
<para>Der DMA-Controller wird nun überprüfen, ob
andere DMA-Kanäle irgendwelche Arbeiten bereithalten.
Falls keiner der Kanäle DRQ-Linien eingefügt hat,
weiß der Controller, daß er seine Arbeit beendet
hat und versieht -MEMR, -MEMW, -IOR, -IOW und die
Adress-Signale mit drei Zuständen.</para>
-
+
<para>Abschliessend setzt der DMA-Controller wieder das
HRQ-Signal. Die CPU registriert dies und setzt wieder das
HOLDA-Signal. Die CPU aktiviert nun ihre -MEMR, -MEMW, -IOR,
-IOW und Adress-Linien und fährt mit der Abarbeitung von
Instruktionen und dem Zugriff auf Hauptspeicher und Peripherie
fort.</para>
-
+
<para>Für einen typischen Sektor einer Diskette wird der
obige Prozess 512 Mal wiederholt, jeweils pro Byte. Nach dem
Transfer eines Byte wird jeweils der Zähler im
@@ -185,7 +185,7 @@
jeweils ein DMA-Kanal gleichzeitig aktiv sein kann, muß
der aktive DMA-Kanal auch derjenige sein, welcher soeben seine
Aufgabe beendet hat.</para>
-
+
<para>Falls ein Peripheriegerät einen Interrupt erzeugen
will, wenn der Transfer eines Pufferspeichers beendet ist,
dann kann es überprüfen, ob sein -DACK-Signal und
@@ -200,7 +200,7 @@
Interrupts verantwortlich, welcher auftritt. In der Folge gibt
es Peripheriegeräte, welche DMA nutzen aber keine
Interrupts.</para>
-
+
<para>Es ist wichtig zu verstehen, daß obwohl die CPU
jedesmal den Bus an den DMA-Controller freigibt, wenn dieser
ihn anfordert, dieser Vorgang sowohl für das
@@ -213,16 +213,16 @@
Peripheriegerät empfangen, um sicher zu sein,
daß ein bestimmter DMA-Transfer beendet wurde.</para>
</sect2>
-
+
<sect2>
<title>DMA-Seitenregister und 16
Megabyte-Adressraumbeschränkungen</title>
-
+
<para>Sie haben vielleicht vorhin bemerkt, daß der
DMA-Controller die Adress-Linien nicht auf 0x00123456 gesetzt
hat, wie wir angaben, sondern auf 0x3456. Der Grund
hierfür erfordert ein wenig Erklärung.</para>
-
+
<para>Als der originale IBM PC entworfen wurde hat IBM
entschieden sowohl DMA als auch Interrupt-Controller
einzusetzen, welche für den 8085 entwickelt worden waren,
@@ -238,14 +238,15 @@
hinzugeschrieben und dort festgehalten, bis die DMA-Operation
für diesen Kanal beendet ist. IBM nannte diese
zusätzlichen Signalspeicher <quote>Seitenregister</quote>
- (Page Register).</para>
-
- <para>Für das obige Beispiel würde der DMA-Controller den
- 0x3456-Teil der Adresse auf den Bus setzen und das Seitenregister
- für den DMA-Kanal 2 würde 0x0012xxxx dem Bus hinzufügen.
- Zusammen formen beide Werte die komplette Speicheradresse, auf die
- zugegriffen werden soll.</para>
-
+ (Page Register).</para>
+
+ <para>Für das obige Beispiel würde der
+ DMA-Controller den 0x3456-Teil der Adresse auf den Bus setzen
+ und das Seitenregister für den DMA-Kanal 2 würde
+ 0x0012xxxx dem Bus hinzufügen. Zusammen formen beide
+ Werte die komplette Speicheradresse, auf die zugegriffen
+ werden soll.</para>
+
<para>Da das Seitenregister unabhängig vom DMA-Chip ist,
weist der zu lesende oder zu beschreibende Speicherbereich
keine auf 64K limitierte Größe auf. Wenn der
@@ -254,7 +255,7 @@
Adress-Register erhöhen und auf das nächste Byte an
der Adresse 0x0000, nicht 0x10000, zugreifen. Dieses
Zuzulassen ist sicher nicht beabsichtigt.</para>
-
+
<note>
<para><quote>Physikalische</quote> 64K-Grenzen sollten nicht
mit 8086-Modus 64K-<quote>Segmenten</quote> verwechselt
@@ -264,7 +265,7 @@
Adressüberhang und werden durch ein mathematisches OR
zusammengefügt.</para>
</note>
-
+
<para>Um die Angelegenheit noch komplizierter zu machen weisen
die externen DMA Signalspeicher auf dem PC/AT nur 8 Bytes auf,
----------------------------------------------
Diff block truncated. (Max lines = 200)
----------------------------------------------
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-cvs-doc" in the body of the message
Received on Fri 31 Aug 2007 - 08:14:33 CEST