Ich bin wirklich verwirrt über Busstandards wie Ide, Ata, Sata, PCI usw.
Sie sollten PCI von ATA, SATA und IDE trennen.
ATA, SATA und IDE sind kein Bus wie PCI.
Meine erste Frage ist, wie die Taktfrequenz des Mikrocontrollers bestimmt wird.
Dies ist eine Entscheidung, die davon abhängt, was kostengünstig ist und welches Leistungsniveau erforderlich ist.
Und laut obigem Artikel, warum gibt es ein Wort wie "SATA-Laufwerk"? Ich meine, wenn "ata" oder "sata" usw. nur Busschnittstellen zwischen CPU und Gerätesteuerung sind, warum "ata", "sata" oder "pci" Wörter zu einem Präfix für Peripheriegeräte werden?
SATA und ATA sind Schnittstellen, keine "Busschnittstellen" .
Es wird als Adjektiv verwendet, um den Schnittstellentyp des Peripheriegeräts anzugeben und die Anforderungen an den Host-Computer anzugeben.
Wenn Sie ein "SATA-Laufwerk" haben und keine freien SATA-Anschlüsse auf dem Motherboard Ihres PCs haben, können Sie es nicht anschließen. Wenn andere ungenutzte Schnittstellen vorhanden sind (z. B. ein PCI-Steckplatz, ein IDE-Anschluss oder ein USB-Anschluss), können Sie den entsprechenden Adapter verwenden (mit zusätzlichen Kosten und möglicherweise einem Leistungsabfall).
ich habe verstanden, dass zwei getrennte kommunikationen stattfinden, wenn wir sektoren von der hdd lesen wollen, erstens zwischen "cpu - device controller" und zweitens "device controller - hdd". Wie funktionieren diese separaten kommunikationen?
Die Gerätesteuerung befindet sich in der Mitte dieser beiden Vorgänge.
Der moderne Festplattencontroller, der in ein SATA-Festplattenlaufwerk eingebettet ist, verfügt über eine eigene CPU (auch Mikrocontroller), RAM und Flash und führt seine eigene Firmware aus, um seine Funktionen auszuführen.
Übrigens haben Sie den Datenfluss zu 100% rückwärts. Für einen Lesesektor von der Platte ist die erste Übertragung 'hdd -> Gerätesteuerung', und die zweite Übertragung ist 'Gerätesteuerung -> Host'.
Auch "Datenübertragung" ist eine genauere Beschreibung der Operation als "Kommunikation".
Wenn "ata" oder "sata" schließlich Schnittstellen sind, die nur für das Kommunikationsgateway "cpu & memory (dma) -device controller" stehen, warum ist diese Schnittstelle langsamer als der Frontside-Bus (fsb)?
Eine periphere Schnittstelle ist im Allgemeinen langsamer als ein Prozessorbus, einfach aufgrund der Länge und des Aufbaus. Der Front-Side-Bus ist nur wenige Zentimeter lang und vollständig auf der Hauptplatine enthalten. Der Schaltungsdesigner kann das erwartete elektrische Rauschen, das der Bus zurückweisen muss, hervorragend steuern. Eine periphere Schnittstelle ist fast immer für ein externes Gerät, das ein flexibles Kabel verwendet. Es gibt zahlreiche Kompromisse zwischen Kosten und Leistung, die das Design derartiger Schnittstellen berücksichtigen.
Übrigens, das ist keine gute Definition für eine Schnittstelle.
Ein "Kommunikationsgateway" ist insgesamt ein anderes Tier.
Ich meine, wenn ich für DMA-Übertragung spreche, nachdem ein Festplattencontroller einen Sektor von HDD gelesen hat, muss er diesen Sektor in den Speicher übertragen, oder?
Eine periphere Schnittstelle, die so schnell wie ein FSB ist, über ein 0,25 Meter langes flexibles Kabel könnte 1000-mal teurer sein. Das Verhältnis zwischen Kosten und Nutzen ist schlecht, da nur eine Phase einer mehrphasigen Datenübertragung verbessert wird.
Warum werden diese langsamen Busschnittstellen für die Kommunikation zwischen Speicher und Gerätesteuerung verwendet?
Kosten.
Um Sie noch mehr zu verwirren, verbinden sich diese peripheren Schnittstellen nicht direkt mit dem "Speicher" (wie Sie bereits mehrfach geschrieben haben). Normalerweise wird die Host-Seite einer solchen Schnittstelle mit einem lokalen Systembus verbunden, sodass entweder die CPU (über PIO) oder der DMA-Controller auf das Datenregister der Schnittstelle zugreifen kann.
Vielleicht ist das für Sie zu viel Detail, aber dann ist es vielleicht der Mangel an Detail und Vereinfachung, die zur Verwirrung beiträgt.