Ich versuche gerade auszurechnen wieviele Speicherzellen ein Cortex M0 für Programmcode bereitstellt. Im Datenblatt wird angegeben, dass der Codebereich von 0x00000000 - 0x1FFFFFFF reicht, es wird auch angegeben, dass die Coderegion 512 MB groß ist. Rechenweg 1: 0x1FFFFFFF = 536.870.911 in Dezimal Da es sich um einen 32-Bit uC handelt, muss ich das noch durch 32 teilen und komme auf 16.777.215 Zellen. Rechenweg 2: 512 MBit 1024 1024 / 32 = 16.777.216 Zellen. Ist das so richtig? Warum muss ich beim Rechenweg 2 mit 1024 multiplizieren? Aus alten Tagen weis ich noch, dass da so richtig ist, aber warum weis ich nicht mehr.
It E. schrieb: > Ist das so richtig? Abgesehen davon, daß nur du weisst, was bei dir eine Speicherzelle ist, ist die Anzahl der Bytes in Rechenweg 1 um eins zu klein. Byte 0 zählt mit. Oliver
:
Bearbeitet durch User
It E. schrieb: > Ist das so richtig? nein. Die Maschinenbefehle sind unterschiedlich groß, viele nur 16 Bit. Außerdem wird da nicht nur Programmcode gespeichert, sondern auch die Interrupt-Vektor Tabelle und Daten (z.B. Zeichenketten die irgendwo ausgegeben werden). > Warum muss ich beim Rechenweg 2 mit 1024 multiplizieren? Weil ein Kilobyte nicht 1000 Bytes sind, sondern 1024. Bei Festplatten sind 1 Kilobyte aber 1000 Bytes - komischerweise.
Arm Cortexe kennen nur den Thumb - Befelssatz. Da ist ein Befehl 16 Bit, also 2 Byte, groß. Der Kern kann im Prinzip 2^32 Byte, also 4 GiByte, adressieren. Aber die Arm Cortexe kennen nur einen Adressraum. Den teilen sich Programmspeicher, Datenspeicher und Peripherie. Würde ein Programm also einen 4 GiByte großen Programmspeicher füllen, müsste man sich was einfallen lassen, um auch noch auf irgendwelche Peripherie zugreifen zu können. Im wahren Leben ist es jedoch so, dass meist viel weniger Speicher verbaut ist. Es gibt also Bereiche von Adressen, hinter denen kein Speicher und auch keine Peripherie sich melden. Ein Zugriff auf so eine Adresse sollte einen Hardfault aulösen. Bei anderen Architekturen muss man aber auf alles gefasst sein, z.B. dass sich die selbe Speicherzelle unter mehreren Adressen meldet oder dass ein Schreiben auf eine solche Adresse nichts bewirkt bzw. dass einem keiner so genau sagen will, welchen Wert man wohl beim Lesen erhält. Ich sehe gerade, Du fragst nach dem Speicherplatz im Core. Der ist ganz besonders dürftig. Da gibt es nur so ca. ein Dutzend frei verfügbare 32-bittige Register. Der Programmspeicher zählt nicht zum Core.
Stefan ⛄ F. schrieb: > Bei Festplatten sind 1 Kilobyte aber 1000 Bytes - komischerweise. Das ist nicht komisch, sondern die BWL Definition.
Andreas B. schrieb: >> Bei Festplatten sind 1 Kilobyte aber 1000 Bytes - komischerweise. > Das ist nicht komisch, sondern die BWL Definition. Die BWL Leute werde dagegen halten, dass sie die Einzigen sind, die richtig rechnen können, so wie man das in der 5. Klasse gelernt hat.
In der 5. Klasse kennt man i.A. auch keine Dualzahlen. Man hat das halt mal so definiert. (1024=1k)
It E. schrieb: > Da es sich um einen 32-Bit uC handelt, muss ich das noch durch 32 teilen Falsch 0x00000000 bis incl. 0x1FFFFFFF Sind 536870912 Byte, nicht Bit. 536870912 1024 1024 = 512 Der Speicherbereich ist 512 kByte groß
Andreas B. schrieb: > In der 5. Klasse kennt man i.A. auch keine Dualzahlen. Man hat das halt > mal so definiert. (1024=1k) Du meinst man hätte auch einfach für 2^10 = 823 definieren können? Da hat jemand wohl was nicht verstanden.
Cyblord -. schrieb: > Andreas B. schrieb: >> In der 5. Klasse kennt man i.A. auch keine Dualzahlen. Man hat das halt >> mal so definiert. (1024=1k) > > Du meinst man hätte auch einfach für 2^10 = 823 definieren können? > Da hat jemand wohl was nicht verstanden. Nein, aber da kein Mensch (vielmehr, die wenigsten) mit Dualzahlen rechen kann, hat man sich halt auf die der 1000 nächstliegende Zahl, nämlich 1024 geeinigt.
Andreas B. schrieb: > Nein, aber da kein Mensch (vielmehr, die wenigsten) mit Dualzahlen > rechen kann, hat man sich halt auf die der 1000 nächstliegende Zahl, > nämlich 1024 geeinigt. Es ist doch viel mehr so, dass gerade die zufällige Nähe von 1024 zu 1000 so große Probleme macht. Wäre das nicht der Fall würde niemand auf die Idee kommen das zu vermischen.
Hat ein bisschen was von den amerikanischen Autobauern in den 80gern, denen PI zu anstrengend war und einfach Mal 3 drauß gemacht wurde.
Cyblord -. schrieb: > Es ist doch viel mehr so, dass gerade die zufällige Nähe von 1024 zu > 1000 so große Probleme macht. Wäre das nicht der Fall würde niemand auf > die Idee kommen das zu vermischen. Das mag sein. Die Definition stammt halt aus den Urschleim der EDV als man noch davon ausging, daß die damit befassten Leute noch wußten, wovon sie sprechen. Und die 1024 sind eben nicht zufällig, sondern eben die nächste Zahl, die der 1000 als irgendeine 2-er Potenz am nächsten kommt. Du kannst Dich noch viel mehr darüber streiten warum die Quarks jetzt up, down, top, bottom, strange und charm heißen. Friß oder stirb. ;-)
Stefan ⛄ F. schrieb: > It E. schrieb: >> Warum muss ich beim Rechenweg 2 mit 1024 multiplizieren? > > Weil ein Kilobyte nicht 1000 Bytes sind, sondern 1024. Nitpick: 1 kB = 1000 Bytes 1 KiB = 1024 Bytes
:
Bearbeitet durch User
> Man hat das halt mal so definiert. (1024=1k)
Deswegen sind auch 1024m 1km.
MfG Klaus
pOpel schrieb: > Hat ein bisschen was von den amerikanischen Autobauern in den 80gern, > denen PI zu anstrengend war und einfach Mal 3 drauß gemacht wurde. Ich glaube sogar zu wissen, dass es auch heute noch Bundesstaaten gibt, die das gesetzlich festgelegt haben...Utha z.B. würde mich nicht wundern :-) 1024 Grüße (fühlt sich blöd an) Rainer
Auf alle Fälle weiß ich jetzt Bescheid, danke mal :-)
Stefan ⛄ F. schrieb: > Weil ein Kilobyte nicht 1000 Bytes sind, sondern 1024. Quatsch. Nach IEC 60027-2 lautet der Prefix für 1024 nicht "Kilo" (Symbol "k"), sondern "kibi" (Symbol "Ki") https://de.wikipedia.org/wiki/Bin%C3%A4rpr%C3%A4fix#IEC-Pr%C3%A4fixe_zur_Basis_2 > Bei Festplatten sind 1 Kilobyte aber 1000 Bytes - komischerweise. Nach Norm ist das doch völlig in Ordnung und kommt den BWLern entgegen, die dei Normbezeichnung wahrscheinlich gar nicht kennen.
Wolfgang schrieb: > Stefan ⛄ F. schrieb: >> Weil ein Kilobyte nicht 1000 Bytes sind, sondern 1024. > > Quatsch. Ein starkes Wort für einen Quatschkopf wie dich. > Nach IEC 60027-2 lautet der Prefix für 1024 nicht "Kilo" (Symbol "k"), > sondern "kibi" (Symbol "Ki") Stimmt. Aber diese Norm wurde 1996 aufgeschrieben. Gut 10, wohl eher 20 Jahre, nachdem sich das binäre "Kilo" etabliert hatte. >> Bei Festplatten sind 1 Kilobyte aber 1000 Bytes - komischerweise. > Nach Norm ist das doch völlig in Ordnung und kommt den BWLern entgegen Tja. Nur daß die Norm eben wegen der BWLer eingeführt wurde. Damit sie weiter ihre ungezügelten Lügen verbreiten können. Denn obwohl die Norm jetzt über 20 Jahre alt ist, kenne ich keinen einzigen, der "Mebibyte" statt "Megabyte" sagen würde. Die BWLer hingegen meiden die binären Einheitenvorsätze wie der Teufel das Weihwasser. Kein Wunder, schließlich sind zwischen 1TB und 1 TiB ("Tibibyte" - jemals gehört?) fast 10% Differenz.
Ich weiß ja nicht was es da zu Streiten gibt. Si-Prefixe sind durch das SI-Einheitensystem dezimalaffin. Byte und Bit sind keine Basiseinheiten des SI-Einheitensystems. Natürlich darf man sich durch eine quadratische (2^5 x 2^5 etc.) Definition von kByte und MByte ausdrücken und die Nähe zum Si-System nutzen. Aber man kann niemanden darauf festnageln, weil k und M nicht dafür gedacht und laut SI-Einheiten-System auch nicht angewendet werden.
>> Nach IEC 60027-2 lautet der Prefix für 1024 nicht "Kilo" (Symbol "k"), >> sondern "kibi" (Symbol "Ki") Axel S. schrieb: > Stimmt. Aber diese Norm wurde 1996 aufgeschrieben. Gut 10, wohl eher 20 > Jahre, nachdem sich das binäre "Kilo" etabliert hatte. Zudem wird sie (wie du sagst) weitgehend ignoriert. Das haben sich Akademiker an der Realität vorbei ausgedacht.
fop schrieb: > Ich sehe gerade, Du fragst nach dem Speicherplatz im Core. Wo? > Der ist ganz besonders dürftig. Da gibt es nur so ca. ein Dutzend frei > verfügbare 32-bittige Register. Da steht aber in der Regel nicht der Programmcode drin. pOpel schrieb: > Hat ein bisschen was von den amerikanischen Autobauern in den 80gern, > denen PI zu anstrengend war und einfach Mal 3 drauß gemacht wurde. Das war 1897 und hat mit Autos nichts zu tun. Vielmehr hat sich irgendein Landarzt an der Quadratur des Kreises versucht und wollte dazu ein Gesetz auf den Weg zu bringen, das π auf 3 festlegt. Das Lustige ist, dass die Entscheidung dazu vertagt wurde und soweit ich weiß bis heute nicht gefallen ist. https://de.wikipedia.org/wiki/Indiana_Pi_Bill Wolfgang schrieb: >> Bei Festplatten sind 1 Kilobyte aber 1000 Bytes - komischerweise. > Nach Norm ist das doch völlig in Ordnung und kommt den BWLern entgegen, > die dei Normbezeichnung wahrscheinlich gar nicht kennen. Das bezeichnende daran ist, dass es im Computer-Umfeld ausschließlich die BWLer bei den Festplatten-Herstellern sind, die nicht damit klar kommen, dass 1k in diesem Bereich üblicherweise für 1024 steht. Stefan ⛄ F. schrieb: > Axel S. schrieb: >> Stimmt. Aber diese Norm wurde 1996 aufgeschrieben. Gut 10, wohl eher 20 >> Jahre, nachdem sich das binäre "Kilo" etabliert hatte. > > Zudem wird sie (wie du sagst) weitgehend ignoriert. Das haben sich > Akademiker an der Realität vorbei ausgedacht. Ja, solche bereits etablierten Dinge nachträglich per Norm auf was anderes zu zwingen, ist halt schwierig. PS: Sachen wie "Kibibit" und "Mebibyte" klingen für mich irgendwie nach Babysprache.
Rolf M. schrieb: > ausschließlich die BWLer bei den Festplatten-Herstellern sind, die nicht > damit klar kommen, dass 1k in diesem Bereich üblicherweise für 1024 > steht. Doch, die k waren noch 1024. Der Sündenfall kam, als aus 1440 kB dann 1.44MB Disketten wurden. Und man muss den BWLern zugutehalten, dass sie zuerst Festplatten mit M, G, T oder P verkauften, lange bevor ein nerd am Computer damit zu tun hat.
Pffffft, ich bin ja auch kein Freund der BWLer, weil die irgendwelche irgendwo irgendwann unter irgendwelchen Begleitumständen funktioniert habenden Erfolgsrezepte als allgemeingültige WISSENSCHAFT verkaufen. Auswendig gelernt und nicht kapiert... Als technisch versierter Mensch sollte man sich doch aber bitte vom BWL-Niveau abheben und die simplen Multiplikatoren K für 1024 = 2^10 und k für 1000 = 10^3 auseinander halten können. Und wenn man die Möglichkeiten von 0 bis N-1 durchnumerieren kann, hat man N Möglichkeiten. Oder ist es nur zu warm?
Johann L. schrieb: > Nitpick: > > 1 kB = 1000 Bytes > > > 1 KiB = 1024 Bytes Schön, das du einer der Wenigen bist, die den korrekten Prefix kennt. Du bist dann trotzdem nur einer der extrem Wenigen, die ihn dann auch tatsächlich benutzt... Ich selber z.B. kenne diese "i"-Präfixes natürlich, benutze sie aber aus Prinzip nicht. Weil ich sie für völlig affig halte. Wenn schon, hätten man für binäre Zahlen komplett neue Prefixe erfinden müssen. Aber dafür waren die Herren (und Damen?) Standardisierer mal wieder viel zu fantasielos...
Jacko schrieb: > Als technisch versierter Mensch sollte man sich doch aber bitte > vom BWL-Niveau abheben und die simplen Multiplikatoren > K für 1024 = 2^10 > und > k für 1000 = 10^3 > auseinander halten können. K ist in diesem Jahrtausend für BWLer aber kein Thema mehr.
Interessanterweise gibt es einen weiteren Computerbereich in dem mit dezimalen Prefixes gearbeitet wird und in diesen Diskussionen fast nie auftaucht. Datenübertragung Z.B. 1G Ethernet sind 1.000.000.000 Bit/s und nicht 1.073.741.824 Bit/s. Wahrscheinlich weil die Datenrate Symbolbreite mal Symbolrate ist und die Symbolrate sich aus einer dezimalen Taktrate (kHz, MHz, GHz) ergibt.
Blechbieger schrieb: > Interessanterweise gibt es einen weiteren Computerbereich in dem mit > dezimalen Prefixes gearbeitet wird Da gibt es viele davon. Das Gewicht von Laptops z.B.: 1kg ist, man staune, 1000g ;-)
Andreas B. schrieb: > Blechbieger schrieb: >> Interessanterweise gibt es einen weiteren Computerbereich in dem mit >> dezimalen Prefixes gearbeitet wird > > Da gibt es viele davon. Das Gewicht von Laptops z.B.: 1kg ist, man > staune, 1000g ;-) Das sind bei uns immer noch zwei Pfund.
Das K ist aber schon für Kelvin vergeben, da besteht Verwechslungsgefahr. Die 3 als Pi soll schon irgendwo in der Bibel stehen, ist halt abgerundet. Hab gerade ein Pfund Kaffee geöffnet, dank Corona gab es in letzter Zeit nur noch Halbpfünder.
:
Bearbeitet durch User
Cyblord -. schrieb: > Andreas B. schrieb: >> Blechbieger schrieb: >>> Interessanterweise gibt es einen weiteren Computerbereich in dem mit >>> dezimalen Prefixes gearbeitet wird >> >> Da gibt es viele davon. Das Gewicht von Laptops z.B.: 1kg ist, man >> staune, 1000g ;-) Gewicht ist allerdings nicht etwas computerspezifisches. Erstaunlich viele andere Gegenstände des täglichen Gebrauchs besitzen ebenfalls ein Gewicht. > Das sind bei uns immer noch zwei Pfund. Du gibst das Gewicht von Laptops in Pfund an? Welches Pfund? Da gibt's ja ziemlich viele verschiedene. Interessant: Im Mittelalter gab es das "Krämergewicht", bei dem ein Pfund 1024 Hellergewichten entsprach - meint die Wikipedia. Christoph db1uq K. schrieb: > Das K ist aber schon für Kelvin vergeben, da besteht > Verwechslungsgefahr. Du meinst, man könnte denken, jemand hätte eine Speicherkapaziät in Kelvinbyte angegeben? Gut, KB könnte natürlich auch Kelvinbel sein, aber auch das wäre eine eher ungewöhnliche Einheit - vor allem für Speicherkapazitäten.
:
Bearbeitet durch User
Rolf M. schrieb: > Du gibst das Gewicht von Laptops in Pfund an? Welches Pfund? Da gibt's > ja ziemlich viele verschiedene. Nicht im Ländle, das ist ein Pfund ein Pfund. Auf dem Markt oder im Metzger bestellen viele auch ein halbes Pfund.
Eigentlich kommt es doch nur darauf an, ob man es Dezimal oder Binär betrachtet. Eine von 1000 (1024) Erklärungen :-D https://www.elektronik-kompendium.de/sites/com/1401171.htm
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.