maximale Speicheradressierung

Gast #1385573
Hallo zusammen,

wie ist das eigentlich bei dem 32Bit Controller von AVR...ist die 
Speicheradressierung auch 32Bit? Also kann ich mit dem Controller 2^32 = 
4GByte (externen) Speicher ansprechen?
Möchte mich in die uC Welt einarbeiten und hatte mir als Endprojekt 
einen MP3 Player vorgestellt...dieser sollte ja dann entsprechend 
Speicherplatz für die MP3s besitzen und diese widerum sollten ja vom 
Controller angesprochen werden können..

Gruß
Gast
nein so ist das leider nicht.

Auch ein 8bit prozessor kann ein Speichermedium mit 64bit ansprechen. 
Was du meinst ist der Ram, aber davon willst du ja eh nicht 4GB einbauen 
oder etwa doch?
Gast
nein, ich meinte mit externem Speicher zum Beispiel eine SD Karte, auf 
der die MP3 Dateien dann drauf sind. Die hat ja dann ein paar 
Gigabyte...nur wenn ich einen 8Bit Controller nehme, wie kann ich dann 
mehrere Gigabyte adressieren? Also auslesen?
Genauso wie du Zahlen >9 im normalen Dezimal Zahlensystem darstellst: 
Man nimmt einfach mehrere 8bit Blöcke zusammen und hat so schnell 16, 
24, 32Bit usw. Da bei einer SD Karte die Adresse sowieso seriell 
übertragen wird, ist das eh egal. Nur bei der Berechnung ist ein 32bit 
Prozessor natürlich schneller, denn er kann 32bit Daten auf einmal 
berechnen, während ein 8bit Prozessor eben alles in 8bit Häppchen 
zerlegt und nacheinander berechnet.

PS: Ich würde dir empfehlen erstmal mit was kleinerem anzufangen, z.B. 
einer blinkenden LED auf einem normalen AVR.
Gast
Danke für die Antwort.
Ja ich werde sowieso mit etwas kleinem Anfangen. Hab oben ja nicht ohne 
Grund "Endprojekt" geschrieben. Die Thematik hat mich in der Theorie 
halt trotzdem jetzt schon interessiert.
Und eine letzte Frage: Wie ist das dann zum Beispiel mit einer 
Festplatte mit mehreren hundert Gigabyte? Kann ich diese Daten dann auch 
mit einem 8Bit Controller ansprechen? Also lesen/schreiben auf der 
Festplatte?
Kannst Du mir kurz in groben Zügen erklären wie das technisch abläuft?

Gruß
>nein, ich meinte mit externem Speicher zum Beispiel eine SD Karte, auf
>der die MP3 Dateien dann drauf sind. Die hat ja dann ein paar
>Gigabyte...nur wenn ich einen 8Bit Controller nehme, wie kann ich dann
>mehrere Gigabyte adressieren? Also auslesen?

Die Addressierung deiner SD Karte hat mit dem Physikalischen Addressraum 
des Prozessors nix zu tun. Eine SD-Karte wird in Sektoren a 512 Byte 
addressiert und diese Addresierung must du selber machen. Der 
Addressraum des Prozessors hat nur mit den am Speicherbus 
angeschlossenen Speichern also RAM,FLASH und IO-Ports zu tun. Es kann 
aber auch mehr Speicher als die 4 Gigabyte addressiert werden. Früher 
hat man wenn man mehr als 64 KByte Speicher addressieren wollte dies 
durch Bankumschaltung realisiert.


Gruss Helmi
Theoretisch kann man nahezu beliebig große Speicher ansprechen. Die 
Adresse wird dazu in mehrere kleine Häppchen zerlegt und nacheinander an 
den Controller im Speichermedium übertragen. Dieser setzt die Adresse 
wieder zusammen und liefert dann die angeforderten Daten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.