3 ms·
The native base of our computing systems is base-2. Engineering prefixes for this base should thus also be based on natively divisible break points. It just s
by mjevans 6y ago
The native base of our computing systems is base-2. Engineering prefixes for this base should thus also be based on natively divisible break points.
It just so happens that some break points are usefully close (but not quite the same as) base 10 break points.
2^10 = 1024 ~~ (1 KB) ~~ 1000
Naturally given this 2.4% bonus to base 10, and failing upwards in being able to cleanly store the corresponding base 10 datatype, the natural thing to do is to favor the larger and also native unit.
For me, KB will _always_ be 1024 bytes. In the context of computers this is what makes sense.
Similarly I only ever want those to be the binary (base 2, also implied by bytes) base sizes for all other units of storage, data transfer speed, etc. The marketing fixation on providing less value by focusing on the non-native to the system human sizes that are smaller is the error.
Counter-argument to anyone arguing otherwise. What is the size of the smallest addressable unit in any of the block based device storage you care about? Hard disks / flash? (512, 4096, or possibly some very large power of 2 for SMR). CDs/DVDs? (2048 bytes)
- earthboundkid 6y agoSure, but megabytes and terabytes are just arbitrary numbers. There’s nothing where they correspond to a meaningful device limitation. KB should be 2^10 bytes and MB should be 1e6 bytes. There’s no reason to link them.
- mjevans 6y ago2^28 bytes / 256 MB / CSMB (#1) is the size of current SMR spinning rust drives. The flash zone size used in more modern consoles (E.G. PS5 / Xbox whatever) might similarly be 128 MB / CSMB. #1 (256 Computer Science Mega Bytes) is the size of the minimum write zone for 'zoned storage' according to the Wikipedia page. https://en.wikipedia.org/wiki/Shingled_magnetic_recording#Protocol https://en.wikipedia.org/wiki/Shingled_magnetic_recording#Pr... Edit + Update: I recalled incorrectly, 128 CSMB "Sony's patent proposes going way beyond 32kB chunks to using 128MB chunks for the FTL" https://www.anandtech.com/show/15848/storage-matters-xbox-ps5-new-era-of-gaming https://www.anandtech.com/show/15848/storage-matters-xbox-ps...
- jonsen 6y ago> 2^10 = 1024 ~~ (1 KB) ~~ 1000 2^10B = 1024B = 1KB ~ 1kB = 1000B as I understand it. And for MB or Mb the accuracy is not really interesting. Edit: It should in fact be 1kB ~ 1000B E.g. 1kg is not exactly 1000g, that would be 1.000kg. But 1KB is meant to be exactly 1024B.
- dghf 6y ago> 1kg is not exactly 1000g, that would be 1.000kg Really? Why? I would have assumed that 1kg is in fact exactly 1000g, and that the trailing zeros in 1.000kg indicated a rounding to three decimal places: i.e. 999.5g <= 1.000kg < 1000.5g
- jonsen 6y agoI may have used ‘exactly’ sloppy here. What I mean is: When the context doesn’t say otherwise, one should assume accuracy or precision as rounding to the least significant digit given. I.e. by default 1kg may indicate a mass between 500g and 1.499g. If the accuracy is about 10g you should write 1.00kg.
- mjevans 6y agoBase 10 Engineering Notation uses SI Prefixes, for these a set of letters exist with the upper-case indicating positive exponents (large numbers) and lower-case indicating negative exponents (small parts of one unit) https://en.wikipedia.org/wiki/International_System_of_Units#Prefixes https://en.wikipedia.org/wiki/International_System_of_Units#... Offhand, and at a glance, none of the upper case correspond to a lower-case prefix. This is probably to detect incorrect usage. In Computer Science / programming generally, the convention has been that an uppercase B indicates bytes, while a lowercase indicates bits. Modern computing systems frequently address integer numbers of size 64b, 32b, 16b, 8b (8B, 4B, 2B, 1B respectively). Examples: 1 Gb (SI G bit, since if discussing bits telecom stuff is implied; I argue that this too is incorrect, but it's efemeral, not storage. Still I can't send less than a byte.) 1 GB (CS G Byte) storage somewhere, memory. Invariably a base 2 power since otherwise packing and transcription to accommodate re-packing would be a power-hungry nightmare.
- HourglassFR 6y ago> Counter-argument to anyone arguing otherwise. The argument is pretty straightforward. Kilo, Mega, Giga, etc. are already well defined prefixes and it is simply confusing if we start to redefine them in some context. I agree that clearly hardware manifacturer are taking advantage of this confusion to inflate their marketed memory size, but again they are using the proper meaning of the prefixes. Maybe the solution would be to require them using KiB, MiB or GiB, but certainly not to change the meaning of Kilo.
- glandium 6y agoIt's 2.4% for 1KB, but it's 10% for 1TB. Also, things started to go downhill pretty early on: 1.44MB floppy disks were 1440KB where 1KB was 1024.