Ich arbeite mit einem Fujitsu-Mikrocontroller und denke, dass ich bei den folgenden Details etwas verrostet bin. Deshalb stelle ich diese Frage. Ich habe die folgenden Spezifikationen:
- 4M-Bit-Flash-Speicher
- Eingebautes Produkt: MB90F345E (S), MB90F345CE (S)
- Volumen: 512 KByte / 256 KByte
- Sektorkonfiguration: 64K × 6 + 32K × 2 + 16K × 2 + 8K × 4
- Zugeordnete Bank: F8H an FFH Bank
Sie scheinen auf magische Weise 12 KB zusätzlichen ROM-Speicher zu erstellen? Welche Eigenart vermisse ich hier?
microcontroller
rom
Evert
quelle
quelle
B
und gibtb
. Was der Titel sagt, ist wirklich "4 Megabit! = 512 Kilobit?", Was natürlich keinen Sinn ergibt. Was Sie wollten, ist4 Mbit != 512 KB?
sinnvoller, je nachdem, ob Sie binäre oder dezimale Präfixe verwenden.Antworten:
Wenn Sie sich die Speicherzuordnung ansehen, gibt es tatsächlich 524.288 Bytes ROM, was 512 KB entspricht (wobei 'K' sich auf 1024 bezieht, nicht auf 1000). Übrigens habe ich das durch Subtrahieren der Startadresse 0xF8000 von der Endadresse 0xFFFFFF und Hinzufügen erhalten einer.
Das ist 4M (wobei 'M' 1024 * 1024 = 1.048.576 ist, nicht = 1.000.000).106
Es ist in der Regel ziemlich klar , was auf aus dem Kontext geht, so dass diese Verwirrung selten verursacht (vor allem , wenn es Speicher mehr zu sein scheint als erwartet), aber Verbraucher Plattenkapazität ist ein notorischer Beispiel für die Verwendung ‚Vermarktung‘ Einheiten , die das Produkt aussehen machen günstig um ca. 5-10%.
Bearbeiten: Wie verschiedene Verschreibungspflichtige hier erwähnt haben, gibt es "offizielle" Einheiten wie MiB, die die Mehrdeutigkeit beseitigen sollten. Da sie jedoch praktisch niemand verwendet, denke ich, dass sie in den meisten Fällen wahrscheinlich mehr Verwirrung stiften würden (und offensichtlich waren die Autoren des Datenblattes der Meinung dieser Weg). Bei der Frage geht es darum, richtig zu interpretieren, was in ein Datenblatt geschrieben wurde, und nicht darum , welche Terminologie Sie verwenden sollten, wenn Sie selbst ein Datenblatt schreiben.
quelle
Die frühen Computeringenieure entschieden sich dafür, SI-Präfixeinheiten zu übernehmen und an ihre Datenanzahl anzupassen . Dies sind die gleichen Präfixe, aber das Zählen erfolgt eher binär als metrisch. Da 2 ^ 10 nahe bei 10 ^ 3 liegt, bezieht sich jedes SI-Präfix, das normalerweise einen Betrag um 10 ^ 3 erhöht, stattdessen auf eine Erhöhung von 2 ^ 10:
Diese wurden als Teil der JEDEC-Standards übernommen.
Dies hat eine Reihe von Vorteilen, da eine Menge Arbeit in diesem Bereich in Potenzen von 2 ausgeführt wird. Wie Sie jedoch sehen können, weichen sie von der Metrik ab, und da es sich jetzt um größere Speichermengen handelt, bei denen der Unterschied zwischen den beiden erheblich voneinander abweicht Das Problem wurde von IEC und NIST behandelt. Diese unterscheiden die beiden Systeme durch Ändern des Binärpräfix:
Diese wurden erstmals 1998 standardisiert und 2008 in das Internationale Mengen-System übernommen. Die Übernahme erfolgt jedoch nur langsam, und es gibt immer noch Unternehmen, die neue Dokumente nach dem alten Standard erstellen. Wo Unternehmen gewechselt haben, haben sie Benutzer verwirrt gefunden und einige sind zurück zum älteren Stil gewechselt.
Unter Verwendung des älteren Standards beträgt 4 MB 4 * 2 ^ 20 Bits, was 512 * 2 ^ 10 Bytes entspricht.
In dem neueren Standard dargestellt, wäre es stattdessen 4Mib = 512 kiB, vorausgesetzt, 'b' ist Bits und 'B' ist Bytes.
quelle
Im Zusammenhang mit Speicherkapazitäten bedeutet MB häufig 1024 KB (anstelle von 1000 KB). Sie können MiB verwenden, um Mehrdeutigkeiten zu vermeiden.
quelle
Die uralten Potenzen von 2 gegen Potenzen von 10 debattieren. Unternehmen haben Millionen von Klagen darüber verloren. Binäre oder dezimale Präfixe, die dazu führen, dass Sie 24 Bit pro Kilo verlieren, summieren sich wirklich in Gigabits und Bytes. Aus diesem Grund hat meine 120-GB-Festplatte (Herstellerbewertung) nur etwa 115,8 GB (Computerbildschirm).
http://en.m.wikipedia.org/wiki/Binary_prefix enthält eine vollständige Erläuterung.
quelle
Wenn Sie über RAM, ROM oder irgendetwas sprechen, das in irgendeiner Weise mit den Bussen einer CPU verbunden ist:
Ein Kilobit entspricht 1024 Bit.
Ein Megabit ist 1024 Kilobit.
4 Megabit sind 4096 Kilobit.
4096 Kilobit sind 4194304 Bit.
Ein Byte besteht aus 8 Bits.
4194304 Bits sind 524288 Bytes
Ein Kilobyte entspricht 1024 Bytes
524288 Bytes sind 512 Kilobyte.
quelle
Leider verwendet die Computerindustrie die Kilo- und Mega-Präfixe uneinheitlich.
Halbleiterspeicher haben in der Regel eine Leistung von zwei Größen, da dies die Adresszuordnung vereinfacht. 1024 liegt nahe bei 1000, sodass diejenigen, die mit Halbleiterspeichern arbeiten, anfingen, Kilo zu verwenden, um 1024 zu bedeuten. Als die Speichergrößen größer wurden, verwendeten sie auch Mega, um 1024 2 = 1048576 Giga zu bedeuten, um 1024 3 = 1073741824 und so weiter zu bedeuten .
Unter diesen Definitionen von Kilobyte und Megabyte stimmt Ihre Herstellerangabe überein. 4 binäre Megabits entsprechen 4096 binären Kilobit entsprechen 512 binären Kilobyte.
Andere Teile der Computerindustrie, insbesondere Festplattenhersteller und Entwickler von Kommunikationsschnittstellen, verwendeten jedoch die SI-Präfixe in ihrer ursprünglichen Bedeutung. Hersteller von festplattenähnlichen Flash-Medien tendierten ebenfalls dazu, diese Konvention zu befolgen.
Einige Teile der Industrie haben die beiden sogar gemischt, zum Beispiel ist eine "1,44 MB Diskette" tatsächlich 1,44 * 1000 * 1024 = 1474560 Bytes
Die IEC versuchte 1998, das Durcheinander zu beheben, indem sie spezifische Namen und Symbologien für die binären Präfixe einführte. Die Namen werden gebildet, indem die ersten beiden Buchstaben des Namens der SI-Einheit genommen und "bi" angehängt werden, sodass aus Kilo Kibi und aus Mega wird Mebi und so weiter. Für die Symbole wird ein "i" hinzugefügt, so dass k zu ki wird, M zu Mi und so weiter.
Nur weil eine Standardorganisation Terminologie einführt, heißt das noch lange nicht, dass die Leute sie tatsächlich verwenden. Zumindest meiner Erfahrung nach ist es immer noch weitaus üblicher, Kilo, Mega usw. im binären Sinne zu sehen als Kibi, Mebi usw.
quelle
Wie alle anderen bereits erklärt haben, leiden Sie wahrscheinlich an einem halben Jahrhundert alten Hack von IEC et al., Der weiterhin massive Verwirrung stiftet . Anstatt eine neue Einheit mit derselben Dimension (oder einem Präfix) einzuführen, definierten sie die Bedeutung einer anderen weit verbreiteten Einheit (Präfix) neu und konnten gleichzeitig nicht klar feststellen, welche Definition in welchem Kontext gilt.
Überprüfen Sie im Falle Ihres spezifischen Problems einfach die Speicherzuordnungen wie erwähnt.
Ich fordere Sie jedoch dringend auf, ein weitaus allgemeineres Problem zu erkennen.
Das Problem ist, dass das Sprichwort
123 kB
nicht zuverlässig zu einem kristallklaren Verständnis auf der Empfängerseite führt.Dies ist ein sprachliches Erbe und ein schwerwiegender API-Mangel des CS-Vokabulars.
Was können wir tun, um das zu lösen?
Ratet mal: Verwenden Sie binäre Präfixe .
Die Bedeutung von
123 kiB
ist 100% zuverlässig kristallklar.Die Bedeutung von
123 kiB (126.0 kB)
ist noch besser.Sie nicht haben , um ein CS Historiker sein nur einige große Zahlen an jemanden zu vermitteln.
Niemand kümmert sich um Unternehmen, Festplatten, Standardisierungsgremien, Abschreibungserklärungen usw.
Es lohnt sich nicht. Verwenden Sie einfach die binären Mebibyten. Sie sind eindeutig.
Es gibt Leute, die 2002 erfolgreich gesagt haben
32 kibihertz
. Sie wurden gehört. Erstaunlich praktisch, oder?Wenn Sie sich schließlich weigern, binäre Präfixe zu verwenden, verschlimmern Sie das Problem.
Die einzige Strategie, mit der wir alle zusammenarbeiten können, um diesen verdammten Sprachfehler zu deeskalieren und zu beheben, besteht darin, Mehrdeutigkeiten zu verwerfen und auf Kibi ... Sekunden (warum nicht?) Und andere Doppeleinheiten umzuschalten.
quelle