I / O-Busstandards und Gerätesteuerungen

706
spartacus

Ich bin wirklich verwirrt über Busstandards wie Ide, Ata, Sata, PCI usw.

Ich habe gerade diesen Artikel gelesen: Wohin gehen die Daten, wenn ein Datenträger gelesen oder geschrieben wird? Wenn wir also über ein Festplattenlaufwerk sprechen; Die HDD-Logikplatine enthält einen Mikrocontroller, einen Puffer-RAM, einen Motortreiber usw. Dieser Mikrocontroller kommuniziert mit dem Motortreiber, um Sektoren auf HDD-Platten zu lesen und zu schreiben. Wie ich weiß, ist ein Mikrocontroller eine Kombination aus CPU, Registern, IO-Ports, RAM usw. Im Mikrocontroller muss eine Firmware vorhanden sein.

Meine erste Frage ist, wie die Taktfrequenz des Mikrocontrollers bestimmt wird.

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?

Ich möchte wirklich ein tiefes Verständnis für die Kommunikation mit Peripheriegeräten haben. Vor dem Artikel habe ich verstanden, dass zwei getrennte Kommunikationen stattfinden, wenn Sektoren von HDD gelesen werden sollen. Zuerst wird zwischen "CPU-Gerätesteuerung" und zweitens "Gerätesteuerung - HDD" .So Wie funktionieren diese getrennten Kommunikationen?

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)? Ich meine, wenn ich für DMA-Übertragung spreche, Nachdem der Festplattencontroller einen Sektor von der Festplatte gelesen hat, muss dieser Sektor in den Speicher übertragen werden. Warum werden diese langsamen Busschnittstellen für die Kommunikation zwischen Speicher und Gerätesteuergeräten verwendet?

1
Ein Mikrocontroller wird keine CPU haben, wenn er eine CPU hätte, wäre er ein "Mikroprozessor". ATA und SATA stehen nicht für das, wofür sie glauben. ATA steht für "AT Attachment", es gibt auch PATA und SATA. ** Ihre Schlussfolgerungen sind fast alle falsch. ** ATA hieß eigentlich "IDE" und PATA hieß "Enahnced IDE". "Parallel ATA" und "Serial ATA" sind die aktuellen Standards, wobei PATA der bisherige Standard ist aus allen (meisten) Motherboards. Ramhound vor 10 Jahren 0
- "ATA und SATA stehen nicht für das, wofür sie ihrer Meinung nach stehen. ATA steht für AT Attachment" ... was bedeutet das? - "So ziemlich alle Ihre Schlussfolgerungen sind falsch" .. Ich würde mich freuen, wenn Sie mir helfen zu verstehen. spartacus vor 10 Jahren 0
Ich habe Ihnen gesagt, was "ATA" ist, aber es ist besser als "IDE" bekannt. Ich habe einige Ihrer Schlussfolgerungen aufgeführt, die falsch sind. SATA ist nicht langsam, es hat einen direkten Datenbus zu den x86-CPUs. Schneller könnte nur PCI-Express sein, mit Ausnahme des eigentlichen Cache der CPU. Ich habe mich geirrt, ATA hat zwar Register wegen des DMA-Controllers, aber er hat selbst keine CPU, da er, wie ich erkläre, dann als Mikroprozessor statt als Mikrocontroller bezeichnet würde. Ramhound vor 10 Jahren 0
@Ramhound - * "Ein Mikrocontroller wird nicht über eine CPU verfügen" * - Schauen Sie sich Datenblätter von modernen Mikrocontrollern an (z. B. [Linie von Atmel] (http://www.atmel.com/products/microcontrollers/default) .aspx? src = parent #)), und Sie würden feststellen, dass sie einen Prozessorkern (auch als CPU bezeichnet) haben. sawdust vor 9 Jahren 0

1 Antwort auf die Frage

0
sawdust

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.

Dies ist eine großartige Antwort, danke, dass Sie so viel gesehen haben! spartacus vor 9 Jahren 0