Saya bekerja dengan mikrokontroler Fujitsu dan saya pikir saya agak berkarat pada detail berikut, itu sebabnya saya menanyakan pertanyaan ini. Saya memiliki spesifikasi sebagai berikut:
- Memori flash 4M-bit
- Produk bawaan: MB90F345E (S), MB90F345CE (S)
- volume: 512 Kbytes / 256 Kwords
- Konfigurasi sektor: 64K × 6 + 32K × 2 + 16K × 2 + 8 K × 4
- Bank yang dialokasikan: F8H ke bank FFH
Mereka secara ajaib membuat 12K byte memori ROM tambahan? Keunikan apa yang saya lewatkan di sini?
microcontroller
rom
Evert
sumber
sumber
B
danb
. Apa judulnya benar-benar "4 megabit! = 512 kilobit?", Yang tentu saja tidak masuk akal. Apa yang Anda inginkan adalah4 Mbit != 512 KB?
yang lebih masuk akal, tergantung pada apakah Anda menggunakan awalan biner atau desimal.Jawaban:
Jika Anda melihat peta memori, sebenarnya ada 524.288 byte ROM, yaitu 512K (di mana 'K' mengacu pada 1024, bukan 1000) - btw, saya mengerti bahwa dengan mengurangi alamat awal 0xF8000 dari alamat akhir 0xFFFFFF dan menambahkan satu.
Itu 4M (di mana 'M' adalah 1024 * 1024 = 1.048.576, tidak106 = 1.000.000).
Biasanya cukup jelas apa yang terjadi dari konteks, jadi ini jarang menyebabkan kebingungan (terutama ketika tampaknya ada lebih banyak memori dari yang Anda harapkan), namun kapasitas disk drive konsumen adalah contoh terkenal menggunakan unit 'pemasaran' yang membuat produk terlihat lebih menguntungkan sekitar 5-10%.
Sunting: Seperti yang dijelaskan oleh berbagai preskriptif di sini, ada unit "resmi" seperti MiB yang harus menghilangkan ambiguitas, namun karena hampir tidak ada yang menggunakannya, saya pikir mereka kemungkinan akan menyebabkan lebih banyak kebingungan dalam banyak kasus (dan jelas yang dirasakan oleh para penulis lembar data) seperti itu). Pertanyaannya adalah tentang menafsirkan dengan benar apa yang ditulis dalam lembar data, bukan terminologi apa yang harus Anda gunakan saat menulis lembar data sendiri.
sumber
Para insinyur komputer awal memilih untuk mengadopsi, dan mengadaptasi, unit awalan SI ke jumlah data mereka. Ini adalah awalan yang sama, tetapi menghitung menggunakan biner daripada metrik. Karena 2 ^ 10 mendekati 10 ^ 3, maka setiap awalan SI biasanya meningkatkan jumlah sebesar 10 ^ 3 sebagai gantinya mengacu pada peningkatan 2 ^ 10:
Ini diadopsi sebagai bagian dari standar JEDEC.
Ini memiliki sejumlah manfaat karena banyak pekerjaan di bidang ini terjadi dalam kekuatan 2. Namun seperti yang Anda lihat mereka berbeda dari metrik, dan karena kita sekarang berurusan dengan jumlah penyimpanan yang lebih besar di mana perbedaan antara kedua divergen secara signifikan masalah telah ditangani oleh IEC dan NIST. Ini membedakan dua sistem dengan mengubah awalan biner:
Ini pertama kali distandarisasi pada tahun 1998, dan diadopsi ke dalam Sistem Kuantitas Internasional pada tahun 2008, tetapi adopsi lambat, dan masih ada perusahaan membuat dokumen baru menggunakan standar lama. Di mana perusahaan telah beralih, mereka mendapati pengguna bingung dan beberapa telah beralih kembali ke gaya lama.
Dengan demikian, menggunakan standar yang lebih lama, 4Mb adalah 4 * 2 ^ 20 bit, yang setara dengan 512 * 2 ^ 10 byte.
Diwakili dalam standar yang lebih baru, itu akan menjadi 4Mib = 512 kiB, dengan asumsi 'b' adalah bit dan 'B' adalah byte.
sumber
Dalam konteks kapasitas memori, MB sering kali berarti 1024KB (bukan 1000K). Anda dapat menggunakan MiB untuk menghindari ambiguitas.
sumber
Usia kekuatan lama 2 vs kekuatan 10 perdebatan. Perusahaan telah kehilangan jutaan tuntutan hukum karenanya. Awalan biner vs desimal yang menyebabkan Anda kehilangan 24 bit per kilo benar-benar bertambah dalam bit dan byte giga. Itulah sebabnya hard drive 120 gb saya (peringkat produsen) hanya memiliki 115,8 gb atau lebih (tampilan komputer)
http://en.m.wikipedia.org/wiki/Binary_prefix memiliki penjelasan lengkap.
sumber
Ketika berbicara tentang RAM, ROM, atau apa pun yang terhubung dengan cara apa pun ke bus CPU:
Satu kilobit adalah 1024 bit.
Satu megabit adalah 1024 kilobit.
4 megabit adalah 4.096 kilobit.
4096 kilobit adalah 4194304 bit.
Satu byte adalah 8 bit.
4194304 bit adalah 524288 byte
Satu kilobyte adalah 1024 byte
524288 byte adalah 512 kilobyte.
Itu semua karena2n .
sumber
Sayangnya industri komputer menggunakan awalan kilo dan mega secara tidak konsisten.
Memori semikonduktor cenderung memiliki kekuatan dua ukuran, karena membuat pemetaan alamat menjadi lebih sederhana. 1024 mendekati 1000 sehingga mereka yang bekerja dengan memori semikonduktor mulai menggunakan kilo berarti 1024. Ketika ukuran memori semakin besar, mereka juga mulai menggunakan mega untuk berarti 1024 2 = 1048576 giga berarti 1024 3 = 1073741824 dan seterusnya.
Di bawah definisi kilobyte dan megabyte ini, pernyataan produsen Anda cocok. 4 megabit biner sama dengan 4.096 biner kilobit sama dengan 512 biner kilobyte.
Namun bagian lain dari industri komputer, khususnya produsen dan perancang antarmuka komunikasi hard drive menggunakan awalan SI dalam arti aslinya. Produsen media flash seperti disk juga cenderung mengikuti konvensi ini.
Beberapa bagian industri bahkan menggabungkan keduanya, misalnya "disket 1,44MB" sebenarnya 1,44 * 1000 * 1024 = 1474560 byte
IEC mencoba untuk memperbaiki kekacauan pada tahun 1998 dengan memperkenalkan nama dan simbologi spesifik untuk awalan biner, nama-nama dibentuk dengan mengambil dua huruf pertama dari nama unit SI dan menambahkan "bi", sehingga kilo menjadi kibi, mega menjadi mebi dan sebagainya. Untuk simbol, "i" ditambahkan sehingga k menjadi ki, M menjadi Mi dan seterusnya.
Namun, hanya karena organisasi standar memperkenalkan terminologi tidak berarti orang benar-benar menggunakannya. Setidaknya dalam pengalaman saya itu masih jauh lebih umum untuk melihat kilo, mega dll digunakan dalam arti biner daripada melihat kibi, mebi dll.
sumber
Seperti orang lain telah dijelaskan, Anda mungkin menderita halfcentury berusia hack oleh IEC et al, yang terus menghasilkan kebingungan besar. Alih-alih memperkenalkan unit baru dengan dimensi yang sama (atau awalan), mereka meredefinisi makna unit lain yang banyak digunakan (awalan), pada saat yang sama gagal menetapkan dengan jelas definisi mana yang berlaku dalam konteks mana.
Dalam kasus masalah khusus Anda, periksa peta memori seperti yang disebutkan.
Namun, saya mendesak Anda untuk mengenali masalah yang jauh lebih umum.
Masalahnya adalah bahwa mengatakan
123 kB
tidak dapat dipercaya menyebabkan pemahaman sejernih kristal di pihak penerima.Ini adalah warisan linguistik, dan kekurangan API utama dari kosakata CS.
Apa yang bisa kita lakukan untuk menyelesaikannya?
Nah, coba tebak: gunakan awalan biner .
Artinya
123 kiB
adalah 100% jernih andal.Arti
123 kiB (126.0 kB)
bahkan lebih baik.Anda tidak harus menjadi sejarawan CS hanya untuk menyampaikan sejumlah besar kepada seseorang.
Tidak ada yang peduli tentang perusahaan, hard drive, badan standartisasi, pernyataan penghinaan, dan sebagainya.
Itu tidak layak. Cukup gunakan mebibytes biner. Mereka tidak ambigu.
Ada orang yang telah berhasil mengatakannya
32 kibihertz
pada tahun 2002. Mereka telah didengar. Luar biasa nyaman, ya?Akhirnya, jika Anda menolak untuk merangkul awalan biner - Anda memperburuk masalah.
Satu-satunya strategi yang kita semua dapat bekerja sama untuk mengurangi dan memperbaiki bug linguistik sialan itu adalah mendua ambiguitas dan beralih ke kibi ... detik (mengapa tidak?) Dan unit bi lainnya.
sumber