Speicherbank
Englisch: memory bank
Eine hardwareabhängige logische Speichereinheit in einer elektronischen Anlage.
Memory Bank: adressierbarer Speicherblock in digitalen Systemen
Ein Memory Bank ist ein zusammenhängender Block von adressierbaren Speicherplätzen in einem digitalen System, üblicherweise organisiert als physische oder logische Einheit, auf die als Gruppe zugegriffen, gelesen oder geschrieben werden kann. In der Mikrocontroller- und Mikroprozessor-Konstruktion wird der gesamte verfügbare Speicher in Banks unterteilt, um die Adressierung zu vereinfachen, physikalische Einschränkungen zu bewältigen oder verschiedene Datentypen zu trennen. Jeder Bank nimmt einen definierten Bereich von Speicheradressen ein, und der Prozessor wählt aus, auf welchen Bank über Bank-Select-Signale oder dedizierte Adressleitungen zugegriffen werden soll.
Memory Banks treten am häufigsten in eingebetteten Systemen und industriellen Controllern mit begrenztem Adressraum auf. Ein 8-Bit-Mikrocontroller könnte 256 Byte RAM haben, aufgeteilt in zwei 128-Byte-Banks, was einen Bank-Select-Pin oder ein Registerbits zum Umschalten zwischen ihnen erfordert. In größeren Systemen können Banks verschiedene physikalische Module darstellen: Static RAM (SRAM) in einem Bank, Flash-Speicher in einem anderen oder externer Speicher auf einem dritten. Diese Segmentierung ermöglicht es Konstrukteuren, einfachere Adressdecoder zu verwenden und den Stromverbrauch zu steuern, indem nur die für eine bestimmte Aufgabe erforderlichen Banks aktiviert werden.
Organisation und Zugriff
Jede Position innerhalb eines Banks wird durch seine Offset-Adresse innerhalb dieses Banks gekennzeichnet. Der Prozessor generiert eine Bank-Adresse (welcher Bank zu verwenden ist) und eine Offset-Adresse (welche Zelle innerhalb dieses Banks). Das Umschalten zwischen Banks führt zu einer kleinen Latenzstrafe ein; Code, der in einem Bank läuft und Daten aus einem anderen Bank lesen muss, muss zuerst einen Bank-Select-Befehl ausführen. In Systemen mit Dual-Port- oder Multi-Port-Speicherarchitekturen können verschiedene Banks gleichzeitig von verschiedenen Schaltungen oder Prozessorkernen zugegriffen werden.
Beschädigung oder Missbrauch der Bank-Select-Logik verursacht eine häufige Klasse von Firmware-Fehlern: Lesen oder Schreiben in den falschen Memory Bank, weil das Bank-Select-Register in einem unerwarteten Zustand belassen wurde. In industriellen Anwendungen kann dieser Ausfallmodus besonders gefährlich sein, wenn ein Bank-Switch-Fehler dazu führt, dass in einem Bank gespeicherte Kontrollparameter durch nicht verwandte Daten aus einem anderen Bank überschrieben werden. Sorgfältige Initialisierung von Bank-Select-Signalen beim Systemstart und explizites Bank-Switching vor Cross-Bank-Zugriff sind Standard-Defensivmaßnahmen.
Der Begriff erscheint auch in größeren Systemen: Dynamic RAM (DRAM)-Chips sind intern in Banks organisiert, um das Interleaving von Speicheranforderungen und Reduzierung des Refresh-Overhead zu unterstützen. In DRAM sind Banks physikalische Unterteilungen innerhalb eines einzelnen Chips, auf die parallel zugegriffen werden kann; ein modernes DDR4-Modul kann 8 oder 16 Banks pro Chip haben. Industrielle Geräte, die Standard-DRAM-Module verwenden, müssen Banks normalerweise nicht direkt verwalten, aber speicherbegrenzte eingebettete Controller absolut.