Memory (interner Speicher)

RAM

Random Access Memory. Arbeitsspeicher mit wahlfreiem Zugriff, Größenangaben in KByte oder MB.

RAM-Chips in PCs sind meist aus dynamischen RAM-Bausteinen (DRAM) aufgebaut. Sie sind mit einem Wasserkübel mit Loch im Boden vergleichbar. Ist dieser Kübel mehr als halb voll, so entspricht dies der Information „1“, ist er weniger als halb voll, so stellt dies „0“ dar. Will man nun den Wert „1“ speichern, so füllt man den Kübel mit Wasser an. Nun sorgt aber das Loch im Boden dafür, dass der Wasserstand ständig sinkt. Das bedeutet, wenn man eine Weile wartet, so geht die Information verloren. Man muss daher regelmäßig in den Kübel schauen und gießt nach Bedarf wieder Wasser nach. Dieses regelmäßige „Schauen-und-Nachfüllen“ (technischer Ausdruck: Refreshing) kostet natürlich Zeit. DRAMs sind aus diesem Grund langsam, aber preiswert. Technisch realisiert wird ein DRAM durch Kondensatoren, deren Ladung aufgefrischt wird. In jedem Auffrischungszyklus wird ein Bit ausgelesen (Kübel ausleeren) und sofort wieder eingelesen (Kübel voll füllen).

Als Gegenstück zu den DRAM-Bausteinen gibt es auch statischen RAM-Bausteine (SRAM), die Daten über einige Zeit behalten können. Sie sind sehr schnell, jedoch wesentlich teurer als die dynamischen RAM-Bausteine. Sie bestehen – technisch gesehen – aus so genannten Flip-Flops, das sind bistabile Multivibratoren, die Schaltungs­zustände dauerhaft speichern; im Prinzip sind das zwei „gegeneinander“ geschaltete Transistoren.

Vergleich der Packungsdichte von Leiterbahnen verschiedener Speicherchips (Foto: Werksfoto SIEMENS, München)
Vergleich eines 4 MBit-Speicherchips mit einem Haar (Werksfoto SIEMENS, München)
Abbildung: Prinzipielle Anordnung der Speicherzellen im RAM – matrixförmig
(Quelle: https://de.wikipedia.org/wiki/Random-Access_Memory#/media/Datei:DRAM-02.svg)

Eine Schnelligkeitsangabe für Speicherchips ist die mittlere Zugriffszeit (siehe auch „Festplatten“). Sie wird für elektronische Speicher in Nanosekunden (1 ns = 10-9 s) angegeben, bei magnetischen Speichern verwendet man Millisekunden (1 ms = 10-3 s)

CPU-Registerunter 1 ns
CPU Cachewenige ns
RAM60 – 70 ns
Sekundärspeicher: SSD0,4 ms = 400 ns
Sekundärspeicher: HDD8 – 10 ms = 8 000 000 – 10 000 000 ns

Die Speicherkapazität lässt sich an der Chip-Beschriftung erkennen (das „x“ steht für eine zusätzliche, möglicherweise vorhandene Ziffer):

BeschriftungSpeicherkapazität
x16464 KBit
x1256256 KBit
x11024 oder x110001 MBit
x410004 x 1 Mbit

Oft gibt es ergänzende Angaben zur Zugriffszeit in ns, so bedeutet etwa 11000-10, dass dieser 1 MBit-Chip eine mittlere Zugriffszeit von 100 ns aufweist.

Beispiele

  • 4164-20 64 Kbit-Chip mit 200 ns Zugriffszeit
  • 41256-10 256 Kbit-Chip mit 100 ns Zugriffszeit
  • 411024-7 1 Mbit-Chip mit 70 ns Zugriffszeit

Bauformen von PC-RAM-Speichermodulen

  • DIP (Dual Inline Package): Der bekannte „Käfer“ mit den beiden Füßchenreihen:
    Beispiel für ein DIP-Gehäuse siehe Bild oben links. Die dargestellte Belegung von Pins 7 und 14 ist üblich, aber nicht verpflichtend. Diese Form wird heute praktisch nur mehr für den CMOS-Speicher benutzt.
Die dargestellte Belegung von Pins 7 und 14 ist üblich, aber nicht verpflichtend.
Diese Form wird heute praktisch nur mehr für den CMOS-Speicher benutzt
  • SIMM (Single Inline Memory Module): Hier befinden sich auf einer kleinen Platine alle nötigen Speicherchips aufgelötet. Die Platine weist Kontaktzungen auf, die nur noch in eine spezielle Fassung eingedrückt werden. Vor allem bei Speichererweiterungen wird diese Bauweise angewandt.
    So könnte eine 1 MB-Speichererweiterung folgende Chips enthalten:
    9 Chips à 1 MBit (11 000; 8 Speicherchips + 1 Paritätschip)
    2 Chips à 4 MBit (44 000) und 1 Chip à 1 MBit (11 000)
    Die SIMM-Bausteine alter Bauweise hatten 30 Zungen (pins), später folgten 72 pin-SIMMs. Es gibt auch Speicher­bausteine mit 130 Zungen.
  • DIMM (Dual Inline Memory Module): Prinzipiell besteht folgender Unterschied zum SIMM: Während beim SIMM „gegenüberliegende“ Pins (auf beiden Seiten der Platine) miteinander verbunden werden (und somit „einen“ Pin bilden, bleiben alle Pins auf einem DIMM isoliert.
    Baugröße: DDR3-DIMM (240 pins): 133,3 mm x 30 mm
  • SO-DIMM (Small Outline Dual Inline Memory Module): kleinere Bauform für den Einsatz in Notebooks;
    Baugröße DDR3-SODIMM (204 pins): 67,6 mm x 30 mm

DRAM-Technologien

Der Aufbau einer einzelnen DRAM-Speicherzelle ist sehr einfach, sie besteht nur aus einem Kondensator und einem Transistor. Heute verwendet man einen MOS-Feldeffekttransistor (MOS-FET). Die Information wird als elektrische Ladung im Kondensator gespeichert. Jede Speicherzelle speichert ein Bit. Während früher meist Kondensatoren in Planartechnologie Verwendung fanden, werden aktuell zwei andere Technologien verwendet (siehe Bild oben rechts):

  • Bei der Stack-Technik (englisch stack ‚Stapel‘) wird der Kondensator über dem Transistor aufgebaut.
  • Bei der Trench-Technik (englisch trench ‚Graben‘) wird der Kondensator durch Ätzen eines ca. 5–10 Mikrometer tiefen Loches (oder Grabens) in das Substrat erzeugt.

EDO-RAM (= extended data out RAM): Diese Module unterscheiden sich von herkömmlichen RAM-Bausteinen dadurch, dass sie den Speicher in besonderen Lesezyklen auslesen, womit der Speicherzugriff beschleunigt wird. Es gibt Module zwischen 8 MB und 128 MB; als Bauform werden DIMM 72 pin, DIMM 168 pin verwendet. Zugriffszeiten: 60 ns, Versorgungsspannung: 3,3 V und 5,0 V.

SDRAM  (= synchroner DRAM): Im Unterschied zum „normalen“ DRAM kann hier ein zweiter Speicherzugriff erfolgen, bevor der erste abgeschlossen ist. Damit wird die Zugriffsleistung erhöht. Die üblichen Pentium II-kompatiblen Motherboards verlangen die Verwendung von derartigen Speichermodulen. SD-RAM-Bausteine arbeiten heute mit Taktfrequenzen von 100 oder 133 MHz und haben Zugriffszeiten von 6 bis 10 ns. Es gibt Module zwischen 128 MB und 1 GB; als Bauform werden DIMM 168 pin und SO-DIMM 144 pin verwendet. Zugriffszeiten: 60 ns, Versorgungsspannung: 3,3 V.

Double Data-Rate SDRAM (DDR-SDRAM): Diese Weiterentwicklung von SDRAM, erreicht fast die doppelte Bandbreite von SDRAM. Es gibt Module zwischen 128 MB und 2 GB; als Bauform werden DIMM 184 pin und SO-DIMM 200 pin verwendet. Versorgungsspannung: 2,5 V. DDR-SDRAM-Bausteine arbeiten heute mit Taktfrequenzen von 266, 333 oder 400 MHz.

Double Data-Rate SDRAM 2 (DDR2-SDRAM): Es gibt Module zwischen 256 MB und 4 GB; als Bauform werden DIMM 240 pin und SO-DIMM 200 pin verwendet. Versorgungsspannung: 1,8 V. DDR2-SDRAM-Bausteine arbeiten heute mit Taktfrequenzen von 400, 533, 667 oder 800 MHz.

DDR3-SDRAM (2007) ist eine Weiterentwicklung des Konzeptes von DDR2-SDRAM, bei dem statt mit einem Vierfach-Prefetch (4 bit) mit einem Achtfach-Prefetch (8 bit) gearbeitet wird.

Die neuen Chips mit einer Kapazität von 512 MiBit sollen Daten mit 8.500 MiBps verarbeiten und sind damit deutlich schneller als DDR-400- oder auch DDR2-667-SDRAM. Allerdings ist die CAS-Latenz höher. Darüber hinaus benötigt DDR3-SDRAM auch nur noch 1,5 Volt statt 1,8 Volt und ist damit gerade für den mobilen Einsatz besser geeignet, bei dem es auf lange Akkulaufzeiten ankommt.

DDR4-SDRAM (2012): Versorgungsspannung 1,05 V, höhere Taktraten. Die Markteinführung begann ab 2014, erst 2017 waren mehr als die Hälfte aller PC-Systeme mit DDR4-SDRAM ausgerüstet.

8 GB DDR4-SDRAM-Chip (2133 MHz) mit 288 pins (Quelle: Wikipedia)
Micro-ATX-Motherboard (DFI) mit Intel Q170-Chipsatz; auf dieses Motherboard passen maximal 4 DDR4-DIMMs (bis 64 GB); Prozessorsteckplatz geeignet für intel-CPUs der 6. Generation (Quelle: Direct Industries)

DDR5-SDRAM (2020): Versorgungsspannung 1,1 V, höhere Taktraten. Markteinführung noch ungewiss (2021/22?).

512 GB DDR5-SDRAM (7200 Mbps), bestehend aus 40 Chips mit jeweils 8 Schichten zu 16 Gbit (sichtbar sind 20 davon) (Quelle: Samsung)
Gaming Motherboard ASUS Z690; auf dieses Motherboard passen maximal 4 DDR4- oder DDR5-DIMMs (bis 64 GB), bis zu 2 PCIe 5.0-Schnittstellen. Die Abbildung zeigt RAM-Module mit Kühlung. Prozessorsteckplatz geeignet für intel-CPUs der 12. Generation (Quelle: www.corsair.com)

Anzahl der Kontakte (Pins)

 Erscheinungs­jahrAnzahl der Kontakte (Pins) pro DIMM
SDR-SDRAM1993168
DDR-SDRAM2000184
DDR2-SDRAM2003240
DDR3-SDRAM2007240
DDR4-SDRAM2014288
DDR5-SDRAM2020?

Die folgende Tabelle zeigt ausgewählte Speichermodule im Überblick (Quelle: Wikipedia):

Speicher­typBezeichn­ungModulBusbreite (Bytes)Speichertakt [MHz]Effektive Taktrate [MHz]Band­­breite [GByte/s]
RDRAMPC800 24008001,6
SDRAMPC100 81001000,8
SDRAMPC133 81331331,064
DDR-SDRAMDDR-133 81332662,128
DDR-SDRAMDDR-100 81002001,6
DDR-SDRAMDDR-200PC-160081002003,2
DDR2-SDRAMDDR2-1066PC2-8500 266106617,0
DDR3-SDRAMDDR3-2500PC3-20000 312,52500 
DDR4-SDRAMDDR4-3200PC4-25600 400320025,6
DDR5-SDRAMDDR5-8400PC5-67200 52584002 x 33,6

BIOS / (U)EFI

Für viele Vorgänge, die „unterhalb“ des Betriebssystems stattfinden sollen, werden Code und Daten benötigt, die während des laufenden Betriebs nicht verändert werden sollen. Dieser Code wird oft als Firmware bezeichnet, da er in EEPROM-Chips (Electrically Erasable and Programmable Read Only Memory, dt. elektrisch löschbarer programmierbarer Nur-Lese-Speicher) abgelegt ist.

BIOS (Basic Input Output System)

Das BIOS besteht im Wesentlichen aus Routinen, die beim Kaltstart eines PCs benötigt werden, sowie aus einem Konfigurationsprogramm für bestimmte Einstellungen wie Systemzeit oder Bootreihenfolge.

Das BIOS-Konzept existiert seit dem Erscheinen des ersten IBM-PCs (1981) und wird trotz laufender Änderungen und Erweiterungen den Anforderungen moderner Hardware und Betriebssysteme nicht mehr gerecht. Vor allem ist es nicht 64 bit-fähig und verwendet ausschließlich den Real Mode. Als Nachfolger wird EFI gesehen.

Eines dieser BIOS-Programme ist die Reset-Routine, ein Programm, welches immer nach dem Einschalten des Geräts ab­gearbeitet wird. Beim Einschalten des Geräts wird vom Netzteil ein spezielles Signal über eine Steuerleitung an die CPU gesendet. Diese beginnt dann an einer vom Hersteller fix vorgegebenen Stelle (heute meist die Adresse F000h) mit der Befehlsabarbeitung des ROM-BIOS-Boot-Programms (von engl. boot = Stiefel).

AMI-BIOS-Chip (Quelle: www.planet3dnow.de)

AMI-BIOS-Chip (Quelle: www.planet3dnow.de)

Dieses Programm startet eine Reihe von Betriebs­bereitschaftstests (POST = Power On Self Test): 

  • Prozessor-Selbsttest
  • Speichertest
  • Tastaturanschluss
  • Rücksetzen des Videocontrollers (sorgt für Bildaufbau am Bildschirm)
  • Rücksetzen des Disc-Controllers (regelt Datentransfer zur Diskette/Festplatte)
  • Rücksetzen der Echtzeituhr (für Zeitsteuerung zuständig).

Bei neueren Computern werden die Ergebnisse dieser Tests mit den Einträgen im so genannten CMOS-RAM-Speicher verglichen. Dort befinden sich Informationen, welche und wie viele Festplatten-, Diskettenstationen usw. installiert sind, aktuelles Datum und Uhrzeit usw. Diese Informationen können mit einem ebenfalls im ROM enthaltenen Setup-Programm vom Anwender selbst eingestellt und geändert werden.

Anschließend wird bei PCs das jeweilige Betriebssystem von der Platte (oder Diskette) nachgeladen.

Wird der Computer aus- und wieder eingeschaltet bzw. der Reset-Schalter betätigt, so nennt man den Startvorgang einen Kaltstart. Durch Betätigen der Tastenkombination STRG+ALT+ENTF wird eine Betriebssystemfunktion ausgelöst, die ebenfalls den Computer wieder hochfährt (allerdings nicht alle Tests vom Beginn an durchführt) – dies wird als Warmstart bezeichnet.

CMOS-RAM bzw. NVRAM

Ab dem AT befinden sich auf der Systemplatine zwei Chips in CMOS-Technik (eine Chipart, die mit sehr wenig Strom auskommt und fast keine Wärme entwickelt): einer sorgt für eine Echtzeituhr mit Datum, der andere nimmt die Systemkonfiguration auf. Beide Chips werden über eine Lithium-Batterie (hält bis zu 7 Jahre) oder einen Ni-Cd-Akku mit Spannung versorgt, auch wenn der Computer gerade nicht in Betrieb ist.

Heute bezeichnet man diesen Speicherchip als NVRAM (Non-Volatile Random-Access Memory).

Bestandteil des BIOS ist auch ein Programm, mit dem die im CMOS-RAM gespeicherten Werte geändert werden können, das CMOS-Setup.

Nachteile des BIOS

  • Keine grafische Benutzeroberfläche: Die Benutzeroberfläche im BIOS ist rein textbasiert und daher nicht besonders intuitiv. Die Benutzer müssen genau wissen, welcher Befehl wofür ist.
  • Keine Bedienung mit der Maus: Möchte man im BIOS eine Einstellung ändern, muss man mit der Tastatur navigieren. Eine Bedienung mit der Maus ist nicht möglich.
  • Keine Unterstützung für große Festplatten: Festplatten, die größer als 2 TB sind, kann das BIOS nicht verwalten. Das liegt daran, dass das BIOS ein 32-Bit System ist und mehr Speicherplatz nicht ansprechen kann. 232 Sektoren mit je 512 Bytes ergibt ca. 2 TB.
  • Langer Bootvorgang: Beim Hochfahren des PCs wird vom BIOS nacheinander die Hardware initialisiert und geprüft. Erst danach wird der Master Boot Record der Bootpartition aufgerufen und der Start des Betriebssystems wird eingeleitet. Dieser Vorgang beansprucht ungefähr die Hälfte der Zeit zum Hochfahren und ist für heutige Verhältnisse zu lang.

(U)EFI (Extensible Firmware Interface)

Quelle: https://www.edv-lehrgang.de/unified-extensible-firmware-interface-uefi/

EFI bzw. dessen Nachfolgestandard UEFI (Unified EFI) ist als BIOS-Nachfolgekonzept mit Schwerpunkt auf 64 bit-Systeme positioniert.

Neuerungen von UEFI im Vergleich zum herkömmlichen BIOS

  • Unterstützung hochauflösender Grafikkarten: Die Zeiten, in den man ein textbasiertes BIOS vorfand, sind mit UEFI vorbei. Die Benutzeroberfläche kann grafisch aufbereitet werden und so die Bedienung erleichtern.
  • Bedienung mit der Maus: Mit UEFI kann die Benutzeroberfläche mit der Maus bedient werden.
  • 64-Bit System: Dadurch werden alle Nachteile eines 32-Bit Systems beseitigt. Man kann problemlos von großen Festplatte booten. 264 Sektoren mit 512 Bytes ergibt ca. 9 Zettabytes. Das ist eine Zahl mit 21 Nullen. Eine unvorstellbare Größe.
  • Kurzer Bootvorgang: Es wurden schon Systeme vorgestellt, die 1 Sekunde nach dem Einschalten des PC’s den Start des Betriebssystems einleiten. Dadurch wird die Zeit für das Hochfahren des Systems um die Hälfte reduziert.
  • Integriertes Netzwerkmodul: Dadurch kann der PC über das Netzwerk hochgefahren und bereits vor dem Start des Betriebssystems per Fernwartung diagnostiziert und bedient werden. Auch Updates für UEFI könnten so direkt über das Internet erfolgen. Wer schon mal ein BIOS-Update durchgeführt hat, wird diese Möglichkeit zu schätzen wissen.
  • Integration von Treibern in UEFI: Treiber können in UEFI als Modul integriert werden. Dadurch sind Entwicklungen von Treibern möglich, die unabhängig vom Betriebssystem laufen.
  • Erweiterbarkeit z.B. durch DRM (Digital Rights Management): Dadurch kann z.B. beim Start geprüft werden, ob die eingesetzte Software ordnungsgemäß lizenziert ist.
  • Integrierte Shell: In UEFI ist eine Shell integriert, über die spezielle Anwendungen gestartet werden können.
  • Integrierte Sandbox: Dadurch ist es möglich, den PC in einer sicheren Umgebung zu starten, wobei die Netzwerk- und Speicherverwaltung auf der Firmware läuft statt auf dem Betriebssystem.
  • GUID Partition Table (GPT): Diese Partitionstabelle ist flexibler als der bisherige Master Boot Record (MBR).
  • Auswahlmöglichkeit des Betriebssystems: Mit diesem Feature sind Boot-Loader überflüssig.

Die meisten aktuellen Desktop-PC-Mainboards für Atom-, Core-i- und Xeon-Prozessoren von Intel sowie für AMD E-350 und sicherlich auch die kommenden A- und FX-CPUs von AMD sind allerdings bereits UEFI-2.x-tauglich. Ihre Firmware stellt nach dem Initialisieren der Hardware aber standardmäßig BIOS-Kompatibilität her, indem sie ein sogenanntes Compatibility Support Module (CSM) lädt, bevor der Bootloader des Betriebssystems die Kontrolle übernimmt.

Ablauf des Startvorgangs eines PCs

Startvorgang bei BIOS-Systemen

Wenn der Rechner eingeschaltet oder der Reset-Knopf gedrückt wird, dann wird anhand der Systemuhr die CPU initialisiert. Die CPU erhält zunächst eine Serie von Signalen von der Systemuhr, die clock-ticks genannt werden. Die Pins der CPU werden zurückgesetzt und die Register werden mit folgenden Initialwerten belegt.

Code Segment (CS): 0xFFFF
Data Segment (DS): 0x0000
Extra Data Segment (ES): 0x0000
Stack Segment (SS): 0x0000
Instruction Pointer (IP): 0x0000

Die CPU verwendet die Werte von CS und IP, um die Adresse für die nächste Anweisung zu ermitteln und auszuführen. Anhand der Initialwerte ergibt das nach dem Einschalten die physische Adresse 0xFFFF0 – an dieser Adresse beginnt der BIOS-Programmcode. So wird erreicht, dass nach dem Einschalten des Rechners das BIOS als erste Anweisung ausgeführt wird.

Die Ausführung des BIOS unterteilt man grob in zwei Vorgänge. Zunächst wird ein sogenannter Power On Self Test (POST) durchgeführt. Dabei überprüft das BIOS die Hardware des Rechners. Für diesen Zweck wird zuerst das CMOS-RAM ausgelesen. Das ist ein flüchtiger Speicher, der seinen Inhalt durch eine sehr leistungsfähige Batterie beibehält. Aus dem CMOS-Speicher werden die aktuelle Systemzeit sowie die Hardwarekonfiguration ausgelesen. Denn, um die Hardware zu überprüfen, muss zunächst einmal ermittelt werden, welche Hardware vorhanden ist. Danach erfolgt der eigentliche Test der Hardware. Es erfolgt ein Abgleich der vorhandenen Hardware mit den Informationen aus dem CMOS und der Selbsttest läuft mit der Überprüfung der folgenden Komponenten ab.

  • Prozessor und das Selbsttestprogramm
  • Systembus
  • Festplatten
  • Systemuhr
  • Speicher der Grafikkarte
  • Arbeitsspeicher
  • Tastatur
  • Maus

Falls einige Komponenten über ein eigenes BIOS verfügen, werden diese beim Selbsttest berücksichtigt und ausgeführt. Der Status der Überprüfung wird durch kurze oder lange Pieptöne signalisiert, die abhängig vom Mainboard-Hersteller eine unterschiedliche Bedeutung haben können und aus der Dokumentation entnommen werden müssen. Mehrere kurze oder lange Pieptöne deuten meistens auf einen Fehler hin und der Startvorgang des Rechners wird abgebrochen, wenn der Fehler als “fatal error” klassifiziert wird, was bei den meisten Fehlern der Fall ist. Falls keine Fehler entdeckt werden, wird in der Regel ein kurzer Piepton gesendet. Die Pieptöne werden verwendet, da die Grafikkarte vor der Verwendung ebenfalls überprüft werden muss und zu dem Zeitpunkt noch nicht aktiviert ist, sodass eine grafische Anzeige der Fehler nicht möglich ist.

Ist der Power On Self Test erfolgreich, wird gemäß der Bootreihenfolge nacheinander versucht, einen Master Boot Record (MBR) aus dem ersten Sektor einer Datenquelle (z.B. Festplatte) in den Arbeitsspeicher zu laden. Ob der erste Sektor ein MBR enthält, identifiziert das BIOS anhand der Signatur AA55 am Ende des 512 Byte großen Sektors. Falls kein MBR gefunden wird, wird der Bootvorgang mit dem Hinweis abgebrochen, dass kein Betriebssystem zur Verfügung steht.

Ist der Sektor mit dem Master Boot Record identifiziert und in den Arbeitsspeicher geladen, ist die Arbeit des BIOS an dieser Stelle beendet und der im MBR gespeicherte Programmcode übernimmt zunächst die Kontrolle über den Rechner. Das MBR enthält einen Bootcode, für den mehrere Bezeichnungen im Umlauf sind (zum Beispiel Master-Boot-Routine). Daneben enthält es eine Partitionstabelle mit den Partitionseinträgen sowie die Signatur AA55.

Durch den dort befindlichen Code wird dann der Bootsektor der als aktiv markierten Partition geladen und ausgeführt. Der Code aus dem Bootsektor einer Partition, auf der eine entsprechende Windows-Installation installiert wurde, ist nun fähig, die Datei bootmgr im Wurzelverzeichnis eines NTFS-Dateisystems zu finden und auszuführen. Das Programm bootmgr liest die Datei \Boot\BCD ein und zeigt ein Bootmenü zur Auswahl des zu startenden Betriebssystems an. Zudem überprüft bootmgr die Disk-Signatur (Bytes 440-443 im MBR) mit seinen gespeicherten Booteinträgen aus der BCD. Wurde die Disk-Signatur verändert, verweigert Windows den Start mit einem „winload error“.

Startvorgang bei UEFI-Systemen

Bei einem UEFI-System laufen die ersten Schritte (bis zum POST) gleich ab wie bei einem BIOS-System. Anschließend wird UEFI als Firmware geladen. Sie übernimmt die Initialisierung der für den Start nötigen Geräte und lädt optionale Erweiterungen wie Secure Boot.

Anders als Bios kann UEFI mit GPT- sowie MBR-Partitionen und dem FAT-Dateisystem umgehen. Es sucht alle Datenträger nach einer per GUID (Globally Unique Identifier) markierten EFI System Partition (ESP) ab. Auf dieser Partition sind die EFI-Programme hinterlegt, die Bootloader für Uefi-Werkzeuge und für installierte Betriebssysteme enthalten.

Der UEFI-Bootmanager führt den im NVRAM des Firmware-Chips als Standard festgelegten Bootloader für ein Betriebssystem aus oder präsentiert ein vom Hardware-Hersteller gestaltetes Menü zur manuellen Auswahl von EFI-Bootloadern oder Partitionen. Natürlich können nicht alle Betriebssysteme mit Uefi umgehen und entsprechende Bootloader auf der ESP hinterlegen. Deshalb hat Uefi laut Spezifikation einen im Firmware-Menü aktivierbaren Kompatibilitätsmodus (CSM – Compatibility Support Module), der das System wie altes Bios per MBR starten kann.

Wenn es das Betriebssystem zulässt, kann es der EFI-Bootloader direkt starten. Im Fall von Linux-Systemen lädt der EFI-Bootloader aber erst einen vorgeschalteten Bootloader wie Grub 2, der schließlich den Linux-Kernel und das Initramfs startet.

Interrupts

Das BIOS enthält Funktionen, die während des Betriebs von großer Bedeutung sind, die so genannte Hardware-Interrupt-Verwaltung. Hardware-Interrupts sind Signale, die von externen Geräten (Tastatur, Bildschirm, Drucker) ausgelöst werden und die CPU bei ihrer laufenden Arbeit unterbrechen. An dieser Stelle wird zunächst in der so genannten Interrupt-Tabelle (die sich im RAM befindet und auch geändert werden kann) nachgesehen. Dort befindet sich die Adresse des entsprechenden BIOS-Programms, welches dann aufgerufen wird.

Es gibt auch Interrupts, die nicht von den Geräten stammen, sondern von gerade laufenden Programmen. Diese heißen sinngemäß Software-Interrupts. Auch diese Interrupts rufen spezielle BIOS-Programme auf. Hardware- und Software-Interrupts arbeiten unabhängig voneinander, dienen aber demselben Zweck – sie regeln die Ein- und Ausgabe von Daten.

Die Interruptsignale müssen über eigene Interrupt-Leitungen übertragen werden. Hier unterscheidet man 16 IRQ-Leitungen (IRQ = interrupt request).

IRQ-Leitungmögliche Belegung
IRQ 0Zeitgeber
IRQ 1Tastatur
IRQ 22. Interrupt-Controller
IRQ 3COM2/4
IRQ 4COM1/3 (meist für Maus oder Modem)
IRQ 5LPT2
IRQ 6Controller für das Diskettenlaufwerk
IRQ 7LPT1 (meist für Drucker)
IRQ 8Uhr, Kalender
IRQ 9Rückführung von IRQ 2
IRQ 10frei
IRQ 11frei
IRQ 12frei (oder PS/2-Maus)
IRQ 13Coprozessor
IRQ 14IDE-Controller (Kanal 1)
IRQ 15IDE-Controller (Kanal 2)

Die möglichen Belegungen können je nach Typ der Hardware folgendermaßen eingestellt werden:

  • Jumper (Steckbrücken)
  • Konfigurationsprogramm (dabei muss die E/A-Adresse bekannt sein)
  • BIOS: über das CMOS-Setup-Programm
  • Plug-and-Play-Erweiterungen

Der Interrupt-Controller arbeitet nahezu gleichzeitig auftretende Interrupts nach Prioritäten ab. Dabei gilt: Je niedriger die Nummer des IRQs, desto höher ist dessen Priorität.

Seit vielen Jahren (80286-Prozessor) werden zwei Interrupt-Controller verwendet. Diese beiden Controller sind so verschaltet, dass der Ausgabe des zweiten Interrupt-Controllers mit dem IRQ 2 des ersten Controllers verbunden ist. Man spricht von „Kaskadierung“ der Interrupt-Controller.

Auf Grund dieser Kaskadierung ergibt sich folgende Reihenfolge an IRQ-Prioritäten:

0, 1, [8, 9, 10, 11, 12, 13, 14, 15], 3, 4, 5, 6, 7

Die in eckigen Klammern dargestellten IRQs werden vom zweiten Interrupt-Controller zur Verfügung gestellt und an Stelle des IRQ 2 „eingefügt“.

Heute kommt bei vielen PCs statt der beiden normalen Interrupt-Controller ein APIC (Advanced Programmable Interrupt Controller) zum Einsatz, der Peripheriegeräten insgesamt 24 IRQs zur Verfügung stellen kann und darüber hinaus über erweiterte Funktionen wie etwa dynamische Prioritätenvergabe verfügt.

Auszug aus dem Windows 10-Gerätemanager: Ressourcen nach Typ

Jeder Interrupt hat eine eigene hexadezimale Kenn-Nummer (INT 01h, INT 02h, …).

Übersicht über Interrupt-Belegungen: http://www.ctyme.com/intr/int.htm

Interruptgruppen am PC

  • prozessorinterne Interrupts = „Traps“ (INT 00h – 07h, z.B. bei Division durch 0 wird INT 00h ausgelöst)
  • durch Peripheriegeräte ausgelöste Interrupts (INT 08h – 0Fh)
  • BIOS-Interrupts (Nummer INT 10h – 1Ah)
  • Anwender-Interrupts (INT 1Bh – 1Fh, z. B.. INT 1Bh = Drücken von CRTL-Break)
  • Betriebssystem-Interrupts (INT 20h – FFh, z. B. INT 3Dh = Vorhandene Datei öffnen)

Funktionsweise von BIOS-Interrupts anhand der Tastatursteuerung

Hier ist der BIOS-Interrupt mit der Nummer 16h zuständig. Drückt man eine Taste auf der Tastatur, so entsteht ein elektrischer Impuls, der an eine spezielle Schaltung, die Tastatursteuerlogik, weitergeleitet wird. Diese Schaltung erzeugt einen so genannten Scancode, der genau der gedrückten Taste entspricht. Danach wird ein Interrupt an die CPU gesendet; die CPU löst dann ein BIOS-Programm (eine so genannte Interrupt-Service-Routine, ISR) aus, die dem Tastatursignal den entsprechenden ASCII-Code zu­ordnet. ASCII-Code und Scancode werden im Tastatur­puffer abgelegt, von wo sie zur Darstellung des Zeichens auf dem Bildschirm oder Drucker verwendet werden können.  Treiber­programme wirken genau hier: Sie „stehlen“ den Interrupt und statt des BIOS-Programms wird das Treiberprogramm ausgeführt. Das heißt, über Tastaturtreiber kann man eine geänderte Tastaturbelegung erreichen (z. B. englisch/deutsch). Übrigens: manche Viren wirken genauso!

  • Bildschirmsteuerung: INT 10h.
  • Drucker: INT 17h.
  • Floppy Disk: INT 13h.

Ports (I/O-Adressen)

Neben dem Arbeitsspeicher kann der Prozessor auf einen speziellen Speicherbereich zugreifen, den man als “Ein-/Ausgabebereich” bezeichnet.

Das Isolated I/O-Verfahren (isolierte Adressierung) ein Verfahren zur Adressierung von Speicherzellen angeschlossener Peripheriegeräte in einem Mikrocomputer.

Beim Isolated I/O verwendet man einen isolierten Adressraum, der wesentlich kleiner ist und separat vom Hauptspeicher-Adressraum angesteuert wird. Dieser Adressraum wird auch als I/O-Adressraum bezeichnet. Zur Auswahl des jeweiligen Adressraumes wird bei der Adressierung durch den Mikroprozessor ein zusätzliches Signal wie z. B. MREQ (Memory Request) verwendet. Die ansteuernde Software muss über spezielle I/O-Befehle verfügen, die diese Signale aktivieren und so den eigenen Adressraum ansprechen.

Ein typisches Beispiel ist der Framebuffer des Monitors, der in einem geschützten Speicherbereich oder auf der Grafikkarte liegt, und vom Grafiktreiber unabhängig von der Ausleserate des Anzeigegeräts befüllt werden kann.

Hier befinden sich die externen Bausteine, die besondere Funktionen wie etwa Zeiterfassung, Bildschirmsteuerung usw. realisieren. Diese Bausteine werden vom Prozessor gesteuert und müssen daher Informationen an die CPU liefern (Eingabe) oder Informationen von der CPU erhalten (Ausgabe).

Der Isolated I/O-Bereich ist wesentlich kleiner als der Hauptspeicher. Es stehen genau 64 KByte (= 65536) Adressen zur Verfügung. Um diesen Bereich zu adressieren, benötigt man 16 bit-Adressen (int-Variablen).

I/O-Adressen

AdressbereichAnzahl BytesFunktion (ab AT)
000 – 00F161. DMA-Controller (8237) für 8 bit-Transfers
010 – 01F16reserviert
020 – 02121. Interrupt-Controller 8259 (IRQ 0 – IRQ 7, INT 08 – 0F in Interrupttabelle)
040 – 0434Zeitgeber (8253)
0601Tastaturport (Scan-Code)
0611Systemstatusbyte (zB NMI-Kontrolle)
0641Tastaturkommando-Port
066 – 0672PC-Konfiguration (herstellerabhängig!)
070 – 0712CMOS-RAM (Setup)
080 – 0878DMA Page Register und RAM Refresh
0A0 – 0A122. Interrupt-Controller für IRQ8 – IRQ15
0C0 – 0CF162. DMA-Controller für 16 bit-Transfers
0F0 – 0FF16Coprozessor (8087, 80287)
1F0 – 1F84/8Festplatten-Controller
200 – 20F16Game-Adapter
278 – 27F8LPT2
2E8 – 2EF8COM4
2F8 – 2FF8COM2
378 – 37F8LPT1
3C0 – 3CF8EGA/VGA-Karte
3E8 – 3EF8COM3
3F0 – 3F78Floppy Disk Drive Controller
3F8 – 3FF8COM1

Memory Mapped IO (MMIO)

Wenn Peripheriegeräte dem System größere Speichermengen zur Verfügung stellen müssen (etwa Grafikkarten), wird der auf den Geräten befindliche Speicher in den RAM “eingeblendet”. Das hat zur Folge, dass das System den Speicher auf dem Gerät genauso ansprechen kann wie “normale” Informationen im RAM. Damit kann sowohl die CPU als auch das Gerät (die Karte) auf den Speicherbereich zugreifen.

Beim Memory Mapped I/O (MMIO) werden die Register des Peripheriegerätes auf Speicherzellen innerhalb des gewöhnlichen Adressraumes abgebildet und vom Prozessor auch als solche angesteuert. Das ist auch der Grund, warum bei Verwendung von 32 bit-Betriebssystemen und tatsächlich vorhandenen 4 GB RAM nur ca.  3,25 GB als verfügbar angezeigt werden: der Rest wird für MMIO verwendet.

DMA (Direct Memory Access)-Kanäle

Damit Daten weiterverarbeitet werden können, müssen sich diese im RAM befinden. Wird von einem externen Datenträger – etwa einer Festplatte – gelesen, so hat die CPU zwei Möglichkeiten, die Daten vom Festplattencontroller in den RAM zu verschieben:

  • Sie liest so lange von einer Portadresse, bis keine Daten mehr vorhanden sind (Programmed I/O, kurz PIO). Der Nachteil dieses Verfahrens ist, dass die CPU durch relativ simple Vorgänge stark belastet wird. So verursachen IDE-Systeme im PIO-Modus bei Schreib-/Lese-Operationen CPU-Lasten von bis zu 70 %!
  • Die CPU beauftragt den DMA-Controller, Daten so lange vom Gerät in den RAM zu verschieben, bis keine Daten mehr vorhanden sind. Durch diese Vorgangsweise wird die CPU entlastet, da ein eigener Controller den Datentransfer vornimmt. Ist der DMA-Controller fertig, so meldet er dies an die CPU, die sich dann um die weitere Verarbeitung der Daten kümmern kann.

DMA-Kanäle können je nach Alter und Typ des Geräts (der Karte) folgendermaßen konfiguriert werden:

  • Jumper (Steckbrücken)
  • Konfigurationsprogramme (I/O-Adresse muss bekannt sein)
  • BIOS: über das CMOS-Setup-Programm
Zur Werkzeugleiste springen