Estoy trabajando con un microcontrolador Fujitsu y creo que estoy un poco oxidado con los siguientes detalles, por eso estoy haciendo esta pregunta. Tengo las siguientes especificaciones:
- Memoria flash de 4M-bit
- Producto incorporado: MB90F345E (S), MB90F345CE (S)
- volumen: 512 Kbytes / 256 Kwords
- Configuración del sector: 64K × 6 + 32K × 2 + 16K × 2 + 8 K × 4
- Banco asignado: banco F8H a FFH
¿Parecen crear mágicamente 12K bytes de memoria ROM extra? ¿Qué peculiaridad me estoy perdiendo aquí?
microcontroller
rom
Evert
fuente
fuente
B
yb
. Lo que dice el título es realmente "4 megabit! = 512 kilobit?", Lo que por supuesto no tiene sentido. Lo que quería es lo4 Mbit != 512 KB?
que tiene más sentido, dependiendo de si está utilizando prefijos binarios o decimales.Respuestas:
Si observa el mapa de memoria, en realidad hay 524,288 bytes de ROM, que es 512K (donde 'K' se refiere a 1024, no 1000) - por cierto, lo obtuve restando la dirección de inicio 0xF8000 de la dirección final 0xFFFFFF y agregando uno.
Eso es 4M (donde 'M' es 1024 * 1024 = 1,048,576, no106 = 1,000,000).
Por lo general, está bastante claro lo que sucede desde el contexto, por lo que esto rara vez causa confusión (especialmente cuando parece haber más memoria de la que esperaba), sin embargo, la capacidad de la unidad de disco del consumidor es un ejemplo notorio del uso de unidades de 'marketing' que hacen que el producto se vea más favorable en alrededor del 5-10%.
Editar: Como varios prescriptivistas aquí han mencionado, hay unidades "oficiales" como MiB que deberían deshacerse de la ambigüedad, sin embargo, dado que prácticamente nadie las usa, creo que probablemente causarán más confusión en la mayoría de los casos (y obviamente los autores de la hoja de datos sintieron de esa manera). La pregunta se trata de interpretar correctamente lo que se escribió en una hoja de datos, no qué terminología debe usar al escribir una hoja de datos usted mismo.
fuente
Los primeros ingenieros informáticos optaron por adoptar y adaptar las unidades de prefijo SI a sus recuentos de datos. Estos son los mismos prefijos, pero cuentan usando binario en lugar de métrico. Como 2 ^ 10 está cerca de 10 ^ 3, entonces cada prefijo SI normalmente aumenta una cantidad en 10 ^ 3, en cambio, se refiere a un aumento de 2 ^ 10:
Estos fueron adoptados como parte de los estándares JEDEC.
Esto tiene una serie de beneficios, ya que mucho trabajo en este campo ocurre en potencias de 2. Sin embargo, como puede ver, difieren de la métrica, y dado que ahora estamos tratando con mayores cantidades de almacenamiento donde la diferencia entre los dos diverge significativamente El problema ha sido tratado por IEC y NIST. Estos diferencian los dos sistemas cambiando el prefijo binario:
Estos se estandarizaron por primera vez en 1998 y se adoptaron en el Sistema Internacional de Cantidades en 2008, pero la adopción es lenta y todavía hay empresas que crean nuevos documentos utilizando el antiguo estándar. Donde las empresas han cambiado, han encontrado usuarios confundidos y algunos han vuelto al estilo anterior.
Por lo tanto, utilizando el estándar anterior, 4Mb es 4 * 2 ^ 20 bits, lo que equivale a 512 * 2 ^ 10 bytes.
Representado en el estándar más nuevo, sería 4Mib = 512 kiB, suponiendo que 'b' son bits y 'B' son bytes.
fuente
En el contexto de las capacidades de memoria, MB a menudo significa 1024 KB (en lugar de 1000 KB). Puede usar MiB para evitar ambigüedades.
fuente
Los viejos poderes de 2 vs poderes de 10 debate. Las empresas han perdido millones en demandas por ello. Los prefijos binarios vs decimales que te hacen perder 24 bits por kilo realmente se suman en giga bits y bytes. Es por eso que mi disco duro de 120 gb (calificación del fabricante) solo tiene 115.8 gb más o menos (pantalla de la computadora)
http://en.m.wikipedia.org/wiki/Binary_prefix tiene una explicación completa.
fuente
Cuando se habla de RAM, ROM o cualquier cosa conectada de alguna manera a los buses de una CPU:
Un kilobit es 1024 bits.
Un megabit es 1024 kilobits.
4 megabits son 4096 kilobits.
4096 kilobits son 4194304 bits.
Un byte es de 8 bits.
4194304 bits son 524288 bytes
Un kilobyte es 1024 bytes
524288 bytes son 512 kilobytes.
Todo es por2n .
fuente
Desafortunadamente, la industria informática usa los prefijos kilo y mega de manera inconsistente.
La memoria de semiconductores tiende a tener dos tamaños, porque simplifica la asignación de direcciones. 1024 está cerca de 1000, por lo que aquellos que trabajan con memoria de semiconductores comenzaron a usar kilo para significar 1024. A medida que los tamaños de memoria aumentaron , también comenzaron a usar mega para significar 1024 2 = 1048576 giga para significar 1024 3 = 1073741824 y así sucesivamente.
Bajo estas definiciones de kilobyte y megabyte, la declaración de su fabricante coincide. 4 megabits binarios equivalen a 4096 kilobits binarios equivalen a 512 kilobytes binarios.
Sin embargo, otras partes de la industria informática, en particular los fabricantes de discos duros y los diseñadores de interfaces de comunicación, utilizaron los prefijos SI en su significado original. Los fabricantes de medios flash en forma de disco también tienden a seguir esta convención.
Algunas partes de la industria incluso mezclaron los dos, por ejemplo, un "disquete de 1,44 MB" es en realidad 1,44 * 1000 * 1024 = 1474560 bytes
El IEC intentó arreglar el desastre en 1998 mediante la introducción de nombres y simbología específicos para los prefijos binarios, los nombres se forman tomando las dos primeras letras del nombre de la unidad SI y agregando "bi", entonces kilo se convierte en kibi, mega se convierte en Mebi y demás. Para los símbolos se agrega una "i" para que k se convierta en ki, M se convierta en Mi y así sucesivamente.
Sin embargo, el hecho de que una organización de estándares introduzca terminología no significa que la gente realmente lo use. Al menos en mi experiencia, todavía es mucho más común ver kilo, mega etc. utilizado en sentido binario que ver kibi, mebi, etc.
fuente
Como todo el mundo ya se ha explicado, es probable que sufren de un medio siglo de edad, corte por la CEI y otros, que sigue generando confusión masiva. En lugar de introducir una nueva unidad de la misma dimensionalidad (o un prefijo), redefinieron el significado de otra unidad (prefijo) ampliamente utilizada, al mismo tiempo que no pudieron establecer claramente qué definición se aplica en qué contexto.
En caso de su problema específico, simplemente inspeccione los mapas de memoria como se mencionó.
Sin embargo, les insto a que reconozcan un problema mucho más general.
El problema es que decir
123 kB
no conduce de manera confiable a una comprensión clara del lado del receptor.Este es un legado lingüístico y una importante deficiencia API del vocabulario CS.
Que podemos hacer para resolver eso?
Bueno, adivina qué: usa prefijos binarios .
El significado de
123 kiB
es 100% confiablemente claro como el cristal.El significado de
123 kiB (126.0 kB)
es aún mejor.No tienes que ser un historiador de CS solo para transmitir grandes números a alguien.
A nadie le importan las compañías, los discos duros, los organismos de estandarización, las declaraciones de desaprobación, etc., etc.
Que no vale la pena. Solo usa los mebibytes binarios. No son ambiguos.
Hay personas que han estado diciendo con éxito
32 kibihertz
en 2002. Se les ha escuchado. Increíblemente conveniente, ¿eh?Finalmente, si te niegas a aceptar prefijos binarios, empeorarás el problema.
La única estrategia con la que todos podemos cooperar para desescalar y corregir ese maldito error lingüístico es desaprobar la ambigüedad y cambiar a kibi ... segundos (¿por qué no?) Y otras bi-unidades.
fuente