Ein IDE-Baustein steigert die Transferleistung und senkt den Stromverbrauch gegenüber einer GPIO-Anbindung Festplatten-Schnittstellen in portablen Anwendungen

Seitdem es Festplatten für mobile Produkte gibt, wurden viele neue Anwendungen möglich. Allerdings ist die Anpassung von Embedded-Prozessoren an Festplatten mit kleinem Formfaktor bei den gegenwärtigen Bus-Architekturen nicht ganz einfach. Ein IDE-Peripheriebaustein für gängige Embedded-Prozessoren verbessert die Schnittstellen-Leistung und steuert den Stromverbrauch in intelligenter Weise. Eine der ersten Lösungen ist ein Peripheriebaustein für Marvell-PXA2xx-Bausteine.

Seitdem es Festplatten für mobile Produkte gibt, wurden viele neue Anwendungen möglich. Allerdings ist die Anpassung von Embedded-Prozessoren an Festplatten mit kleinem Formfaktor bei den gegenwärtigen Bus-Architekturen nicht ganz einfach. Ein IDE-Peripheriebaustein für gängige Embedded-Prozessoren verbessert die Schnittstellen-Leistung und steuert den Stromverbrauch in intelligenter Weise. Eine der ersten Lösungen ist ein Peripheriebaustein für Marvell-PXA2xx-Bausteine.

Die meisten Embedded-Prozessoren haben keinen integrierten Festplatten-Anschluss. Daher wird häufig ein GPIO-Anschluss (General Purpose I/O) verwendet. Leider aber sind GPIO-Anschlüsse ineffizient in Bezug auf Leistungsoptimierung, Verringerung des Stromverbrauchs und Optimierung der CPUNutzung. QuickLogic und Seagate haben gemeinsam eine verbesserte Festplatten-Schnittstelle für ein System auf Basis eines PXA-Prozessors und der Seagate Compact-Flash-Festplattenlaufwerke der ST-Serie entwickelt. Die Ergebnisse zeigen, dass der IDE-Peripheriebaustein – die QuickIDE-Bridge – gegenüber einer direkt an den Prozessor angeschlossenen Festplatte zu einer merklichen Verbesserung der Systemleistung, einer Verringerung des Stromverbrauchs und einer Senkung des Prozessor- Overheads führen kann.

Festplatten der Seagate-Serie ST kommen zur Realisierung der unterschiedlichsten Anwendungen vom digitalen Musik-Player bis zu GPS-Geräten und Digitalkameras zum Einsatz. In Systemen mit IDE-Controllern erreichen die Laufwerke eine Datentransferrate bis zu 10 Mbyte/s am äußeren Durchmesser der Platte. Das entspricht den Laufwerkspezifikationen. Leider erfordern mobile Geräte mit einem Funktionsumfang jenseits eines einfachen Multimedia-Abspielbetriebs den Einsatz komplexerer Prozessoren wie z.B. der XScale- Familie. Diese Prozessoren enthalten aber keinen IDE-Busanschluss, so dass zusätzliche Schaltungstechnik für eine schnelle Kommunikation mit Festplattenlaufwerken erforderlich wird.

Anschluss über Glue Logic

In Ermangelung des IDE-Anschlusses entscheiden sich viele Ingenieure für eine Schnittstelle via GPIO und etwas Glue Logic (Bild 1). Zwar stellt diese Lösung eine Verbindung mit der Festplatte her, sie beeinträchtigt aber meistens die Systemleistung. In Bild 1 verbindet ein CPLD den PXA-Prozessorbus mit der IDE-Schnittstelle der Festplatte. In solch einer Konfiguration läge die maximale theoretische Leistung bei 16 Mbyte/s, wenn der CPU-Bus zu 100 % vom CPLD belegt würde. Ein solcher Nutzungsgrad ist aber nicht realistisch. In einem realen System werden meist Bandbreiten von weniger als 1 Mbyte/s gemessen, weil das Betriebssystem einen gewissen Overhead zu den Festplatten-Transfers beisteuert, aber auch architektonisch bedingte Probleme hinzukommen. Ein CPLD ohne FIFO oder Pufferfunktion belegt den Speicherbus zu 100 % (mit deutlichen Auswirkungen auf die Leistung), während ein Bridge-Bauteil mit FIFO- oder Pufferfähigkeit lediglich etwa 17 % der Speicherbus-Bandbreite beansprucht.

Um maximale Leistung zu gewährleisten, sollte man bei der Auslegung des Systems dafür sorgen, dass der IDE-Bus gesättigt bleibt. Dies bedeutet, dass die Größe des FIFOs an die längste kontinuierliche Nutzung des Busses für anderen (nicht festplatten-bezogenen) Datenverkehr angepasst sein sollte. Bei der PXA-Prozessorserie wird eine einzige 32-bit-FIFOSpeicherstelle pro 240 ns für diesen anderen Datenverkehr benötigt. Wenn kein Pufferspeicher bereitsteht, dann muss der Speicherbus auf die IDE-Busdatenrate verlangsamt werden (120 ns pro 2 Byte Transfer zum PXA). Um hohe Leistung zu erzielen, benötigt diese langsamere IDE-Busdatenrate eine hundertprozentige Bus-Belegung. Darüber hinaus wird jeglicher anderer Datenverkehr auf dem Bus die Festplatten-Leistung um mindestens 50 % und in manchen Fällen sogar um 95 % verringern. Man sollte auf die restliche Bus-Aktivität achten: Bei kleiner Puffergröße (weniger als zehn 32-bit-Speicherstellen) wird jede Nicht-HDD-Transaktion, die länger als 240 ns dauert, einen 32-bit-Speicherplatz belegen. Ist der Pufferspeicher voll, dann kommen die HDD-Transaktionen zum Stillstand. Bei großem Pufferspeicher (ein Sektor oder größer, entsprechend 512 byte oder mehr) ist gewährleistet, dass jeder Sektortransfer komplett ausgeführt wird, dass die Leistung maximiert wird, und dass der Speicherbus der CPU für mehr als 30 μs mit anderen Transaktionen genutzt werden kann, bevor die Festplatten-Leistung beeinträchtigt wird. (Bild)

Die maximale Dauer-Datentransferrate der Festplatte beträgt ungefähr 10 Mbyte/s (die Brutto-Transfergeschwindigkeit beträgt 8 bis 15,6 Mbyte/s einschließlich des Overheads für ECCCodes, Sektor-Header, Lücken zwischen Sektoren usw.), während die Schnittstellen- Bandbreite im PIO-4-Modus 16 Mbyte/s und 33 Mbyte/s im UDMA- 2-Modus beträgt. Bei einer Analyse der Systemleistung und der Engpässe zeigt sich, dass der IDE-Puffer mit der Laufwerks- Leistung gleichziehen muss, um Engpässe im System zu vermeiden. Überträgt das Host-System die Daten langsamer als das Festplattenlaufwerk, so geht Leistung verloren und die Batterielebensdauer verschlechtert sich. Folglich sollte der Host-Controller in der Lage sein, zumindest die spezifizierte maximale Dauer-Bandbreite der Festplatte aufrechtzuerhalten (die ungefähr der Sektor-zu-Sektor-Datenrate entspricht). An dieser Architektur zeigt sich ganz deutlich, dass der IDE-Controller und die Schnittstelle die an sie gestellten Leistungsanforderungen bei weitem überschreiten und so eine maximale Leistung im System gewährleisten können.