Können andere CPUs beim IDE DMA unter x86 auf den Speicher zugreifen?

427
tamlok

Ich bin nicht vertraut mit Hardware. Ich studiere die IDE-Platten-E / A und -DMA auf x86. Ich möchte wissen, dass bei einer IDE-Festplatten-E / A mit DMA andere CPUs auf den Speicher zugreifen können (oder genau denselben Speicherbereich wie der DMA)? Natürlich gehen wir davon aus, dass das Betriebssystem so dumm ist, dass es keine Mutex in Software bietet.
Ich habe aus Wiki gelernt, dass es drei Betriebsmodi gibt burst mode, cycle stealing modeund transparent mode. Und ich habe gelernt, dass es die Hardware oder die Software ist, die für die Wartung verantwortlich ist cache coherence.
Ich möchte also insbesondere mit der IDE-Platte I / O auf x86 wissen, ob andere CPUs beim Festplatten-DMA auf den Speicher zugreifen können? Ein Datenträger-DMA möchte beispielsweise Daten in den Speicherbereich 0x10 ~ 0x30 übertragen (dh meiner Meinung nach startet der DMA die Übertragung um 0x10 und wird einen Interrupt auslösen, wenn er 0x30 erreicht). Wenn der DMA nun 0x10 ~ 0x20 übertragen hat, können andere CPUs 0x10 ~ 0x20 ändern, bevor der gesamte DMA abgeschlossen ist?
Vielen Dank!

0
"Andere CPU's"? An was für eine Architektur denkst du genau? Beachten Sie, dass "x86" ein sehr breites Label ist, auch wenn wir uns nur auf den 80386 beschränken, und später gibt es eine große Vielfalt. Insbesondere, ob die CPU XMP unterstützt. MSalters vor 10 Jahren 0
@MSalters Ich meine heutzutage gewöhnliche x86-Desktoparchitekturen, die SMP oder Multicore sind, wie zum Beispiel die Desktops, die wir für die Familie mit Intel-Hashwell-Architektur mitgebracht haben. vor 10 Jahren 0
Der gewöhnliche Desktop hat ** keine anderen CPUs. MSalters vor 10 Jahren 0
@MSalters Oh, das wusste ich vorher nicht. Wie sieht es dann aus, wenn Sie "andere CPUs" in "andere Kerne" ändern? tamlok vor 10 Jahren 0
In diesem Fall teilen sich die Kerne eines einzelnen Chips ohnehin den Speicherbus. MSalters vor 10 Jahren 0

0 Antworten auf die Frage