Archiv verlassen und diese Seite im Standarddesign anzeigen : Theoretische Fragen 64-Bit Datenleitung und Adressleitungen
Daniel002
27.05.2011, 14:54
Hallo,
mir ist leider etwas nicht ganz klar. Wenn ich in ein uC Datenblatt schaue, steht da zum beispiel beim avr mega32 8-Bit RISC Architecture. So dass sagt mir das 8 Bit Datenleitungen vorhanden sind. Wie komme ich jetzt auf die Adressleitungs-Anzahl?
Dann gibt es ja jetzt 64 Bit CPU's, so sind das jetzt 64 Bit Datenleitungen? Wieviele Datenleitung hat der Spass, im Hinblick auf die Ansprechbarkeit von x Speicher. Lese immer 2^64, aber das sind doch Datenleitungen und keine Aderssleitungen?
Wäre nett mir das jemand mal erklären könnte.
MFG
Besserwessi
27.05.2011, 15:15
Die Einteilung der Bitzahl bei CPUs geht nach Breite der Register und Recheneinheiten. In der Regel ist dann auch der Datenbus genauso breit, muss es aber nicht sein. Der Adressbus ist bei den 8 Bit CPUs oft 16 Bit breit, es gibt aber auch Fälle wo es weniger (z.B: 6504) oder mehr (z.B. AVR Mega256) sind.
Bei den 64 Bit CPUs werden die Adressen intern wohl mit 64 Bit verarbeitet, herausgeführt werden sie vermutlich meist nicht, einfach weil noch keiner so viel Speicher hat. Mehr als 40 Addressleitungen braucht man einfach noch nicht - das wären immerhin schon 1024 Gbytes bei Byteweiser Adressierung. Das hat man bei den frühen 16 Bit auch so gemacht, das waren dann auch erst nur 20 (z.B. Intel 8086) oder 24 (z.B. Motorola 68000) Adressleitungen herausgeführt, aber halt in der Architektur beim 68000 schon 32 Bit für die Adressen vorgesehen. Die Anbindung des Speichers ist ja schon seit einiger Zeit nicht mehr so einfach wie früher, sondern über spezielle Busse.
Hallo Daniel002!
Die Anzahl Adressleitungen ist gleich der min. Bitanzahl die zum erreichen max. Adresse eines Speichers (binär) nötig ist. Beispielweise für max. 1024d Adressen (0h bis 3FFh) sind 11d Leitungen erforderlich.
Übrigens, die Anzahl der Adressleitungen hat mit der s.g. Bitbreite (z.B. 64 Bit) des gespeicherten Wertes, die nur Anzahl der Dataleitungen festlegt, nichts zu tun. ;)
Daniel002
27.05.2011, 15:37
Okay, danke schonmal.
Lese nämlich immer in Foren. Wenn man ein 32 Bit CPU nutzt, kann man nur ca. 4 Gbyte RAM nutzen. Weil, dass ist dann die Begründung, 2^32 es nicht mehr erlauben. Für mich ist das aber etwas sinnfrei, denn die Datenleitungen sagen doch nichts aus, wieviel Speicher ich ansprechen kann, sondern die Adressleitungen sind doch in diesem Punkt interessant. Stimmts?
Das verwirrt mich sehr, liegt es evt. auch daran das die Leute in den Foren nicht ganz so genau bescheid wissen?
Danke für eure Hilfe.
MFG
Für mich ist das aber etwas sinnfrei, denn die Datenleitungen sagen doch nichts aus, wieviel Speicher ich ansprechen kann, sondern die Adressleitungen sind doch in diesem Punkt interessant. Stimmts?
Natürlich ! :D
lokirobotics
27.05.2011, 16:28
Die 32bit CPUs können nativ nur ein 32Bit Datenwort auf den Bus legen. Somit lassen sich halt max. 4GByte adressieren.
AFAIK haben die x86 CPUs keine Möglichkeit, den Speicher 2 stufig (low und high nibble) zu adressieren. Dann ließen sich mit ner 32Bit CPU natürlich auch mehr als 4GByte adressieren.
WinXP 32Bit kann sogar nur 3GByte RAM adressieren.
Besserwessi
27.05.2011, 17:06
Weil es sich anbietet sind bei den meisten 32 Bit CPUs die Adressen auch 32 Bit breit. Je nach Art der Adressierung reicht das dann für die 4 GBytes oder ggf. auch das 4 fache, wenn die Adressen für Worte zur 32 Bit sind, und nicht jedes Byte einzeln adressieren.
Als kleineres Beispiel kann der Mega128 mit 16 Adressleitungen für das Flash 2^17 bytes = 2^16 Worte zu 16 Bits adressieren.
Als die x86 CPUs noch 16 Bit waren und im Kompatibilitätsmodus geht es auch 2 stufig da aber mehr als 16 Bit und 16 Bit, und dann auch noch mit Überschneidung.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.