Datenwort

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Datenwort oder einfach nur Wort ist die Grundverarbeitungsdatengröße bei einem Computer. Synonym werden außerdem die Bezeichnungen Binärwort oder englisch word verwendet. Die Größe dieser Dateneinheit in Bit wird als Wortbreite oder Wortlänge, beziehungsweise als Busbreite bezeichnet.

Oftmals, insbesondere im Zusammenhang mit Programmiersprachen, wird die Bezeichnung Wort auch abweichend gebraucht. Als Wort wird dann eine – plattformunabhängig – festgelegte Dateneinheit fester Größe bezeichnet.

Das Zweifache eines Wortes – im jeweiligen Kontext – wird als Doppelwort (engl. double word, kurz DWord) oder Langwort bezeichnet. Für das Vierfache eines Wortes gibt es im Englischen außerdem noch die Bezeichnung quadruple word, kurz Quadword oder QWord. Die Dateneinheit mit der halben Wortbreite wird entsprechend als Halbwort bezeichnet.

Kleinste adressierbare Einheit[Bearbeiten]

Je nach System kann die Wortbreite beträchtlich differieren, wobei sie in aktuell (Stand 2014) produzierten Rechnern durchweg einer Zweierpotenz und somit stets einem Vielfachen von 4 bit entspricht. Neben der größtmöglichen Zahl, die in einem Rechenschritt verarbeitet werden kann, bestimmt die Wortbreite vor allem die Größe des maximal direkt adressierbaren Speichers. Deshalb ist auch eine Tendenz zu größeren Wortlängen erkennbar.

Die ersten Hauptprozessoren hatten nur 4-Bit-Datenwörter (Nibbles). Mit 4 Bit kann man 16 Zustände abbilden, dies reicht problemlos für die Darstellung der zehn Ziffern 0 bis 9 aus. Viele Digitaluhren und einfache Taschenrechner haben heute noch 4-Bit-CPUs.

In den 1970er Jahren etablierten sich die 8-Bit-CPUs, die zwischen 1970 und 1990 den Markt für Heimanwender beherrschten. Durch die 8 Bit konnte man nun 256 verschiedene Zeichen in einem Datenwort speichern. Die Computer nutzten nun alphanumerische Ein- und Ausgaben, die viel leserlicher waren und neue Möglichkeiten eröffneten. Die daraus entstandenen 8-Bit-Zeichensätze wie beispielsweise EBCDIC oder die verschiedensten 8-Bit-Erweiterungen des 7-Bit-ASCII-Codes haben sich zum Teil bis ins 32-Bit-Zeitalter erhalten, und einfache Textdateien liegen auch heute noch oft in einem der 8-Bit-Formate vor.

Seitdem ist die Wortbreite innerhalb der x86-Prozessor-Familie mehrfach verdoppelt worden. Diese wies mit ihren ersten Modellen eine 16-Bit-Architektur auf, der bald darauf die 32-Bit-Architektur zahlreicher immer noch gängiger PC-Prozessoren wie beispielsweise der Pentium-, Athlon-, G4- und Core-Duo-Prozessoren folgte. Gegenwärtig (Stand 2014) steht diese Architektur wiederum am Übergang von der 32-Bit- zur 64-Bit-Architektur, und so hat eine Reihe neuerer PC-Prozessoren bereits eine Wortbreite von 64 Bit, beispielsweise der Athlon-64-, G5-, neuere Pentium-4-, Core-2-Duo- sowie diverse Serverprozessoren (z. B. Itanium, UltraSparc, Power4, Opteron, neuere Xeon).

Abweichende Bedeutungen[Bearbeiten]

In Programmiersprachen für x86-Systeme ist die Größe eines Wortes, teils aus Gewohnheit, vor allem aber, um Kompatibilität mit vorhergehenden Prozessoren zu erhalten, nicht mitgewachsen, sondern bezeichnet heute umgangssprachlich eine Bitfolge von 16 Bit, also den Stand des 8086-Prozessors. Für spätere x86-Prozessoren wurde die Bezeichnung Doppelwort/DWORD (auch Langwort/Long) eingeführt. Bei dem Wechsel von 32-Bit-Architekturen und -Betriebssystemen auf 64 Bit hat sich die Bedeutung von Long zwischen Linux und Windows getrennt: In der Windowswelt blieb die Breite eines solchen Langworts bei 32 Bit, in der Linuxwelt wurde sie auf 64 Bit verbreitert.[1]

In anderen Rechnerarchitekturen (z. B. PowerPC, Sparc) ist mit einem Wort oft eine Bitfolge von 32 Bit gemeint (der ursprünglichen Wortbreite dieser Architekturen), weshalb dort die Bezeichnung Halbwort für Folgen von 16 Bit gebräuchlich ist.

Beispiele[Bearbeiten]

Prozessoren der IA-32-80x86-Architektur[Bearbeiten]

Datenbreite Datentyp Prozessorregister
4 Bit = ½ Byte Nibble keine eigenen Register
8 Bit = 1 Byte Byte z. B. die Register AL und AH
16 Bit = 2 Byte Word z. B. das Register AX
32 Bit = 4 Byte Double Word z. B. das Register EAX
64 Bit = 8 Byte Quadruple Word z. B. das Register MM0
128 Bit = 16 Byte Double Quadruple Word z. B. das Register XMM0

Der Begriff Word (bzw. Wort) wird auch in der Windows API für eine 16-Bit-Zahl verwendet.[2]

SPS[Bearbeiten]

Bei der Programmierung von speicherprogrammierbaren Steuerungen (SPS) legt die IEC 61131-3 Norm die Wortgrößen folgendermaßen fest:

Datenbreite Bit-Datentypen Integer-Datentypen
8 Bit = 1 Byte BYTE (Byte) (U)SINT (Short-Integer)
16 Bit = 2 Byte WORD (Wort) (U)INT (Integer)
32 Bit = 4 Byte DWORD (Doppel-Wort) (U)DINT (Double Integer)
64 Bit = 8 Byte LWORD (Lang-Wort) (U)LINT (Long Integer)

Wird der Buchstabe U vor einen Integer-Datentypen gestellt (z. B. UDINT) so bedeutet dies „unsigned“ (vorzeichenlos), andernfalls sind die Integerwerte vorzeichenbehaftet.

Einzelnachweise[Bearbeiten]

  1. Agner Fog: Calling conventions for different C++ compilers and operating systems: Chapter 3, Data Representation (PDF; 416 kB) 16. Februar 2010. Abgerufen am 30. August 2010.
  2. Christof Lange: API Programmierung für Einsteiger. 1999. Abgerufen am 19. Dezember 2010.