Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm confused by the report from F3 probe even for the "good" one.

It says:

    Device geometry:
          *Usable* size: 14.91 GB (31266816 blocks)
         Announced size: 14.91 GB (31266816 blocks)
                 Module: 16.00 GB (2^34 Bytes)

So why it's only 14.91? I assume it uses GiB (1024) -- but then, why "Module" is 2^34 B? Shouldn't it also be 16000000000 B or 14.91 GB?


This is just GiB vs GB. The usable / announced size is more or less 16 GB (roughly 14.91 GiB), which you can also verify by multiplying the number of blocks by the block size (512B).


I get GiB vs GB for usable size.

I'm asking why Module actually has 16 GiB (as it says, 2^34).


Most likely they produce a flash chip with an actual 16 GiB.

But to reliably use that chip in a USB flash drive, the flash controller needs both:

1) some spare blocks to use to replace blocks that fail during usage.

2) some amount of space to store its own data (spare block map, in use block map, failed block map, etc.) and the controller just uses part of the existing flash chip for those purposes.

The difference between 'module' and 'actual' is likely "controller data overhead".


It looks like Module is always a power of 2.

https://github.com/AltraMayor/f3/blob/master/f3probe.c#L497

https://github.com/AltraMayor/f3/blob/master/f3probe.c#L338

Module does not seem to be a physical characteristic of the storage device, but rather its capacity rounded up to the nearest power of 2, for legitimate devices.

https://github.com/AltraMayor/f3/blob/master/libprobe.c#L777...


It's a 16GB module in the "1GB is 1000MB" sense that drive manufacturers follow-- 31266816 blocks at 512 bytes each is 16008609792.


It literally says 2^34.


Sure, not saying there isn't any discrepancy-- just that the discrepancy is in the measuring methods. I was showing that there _is_ a way to produce a 16GB number (albeit in terms of GB, not GiB) given the number of blocks physically available, that's all.


You still need overprovisioning on NAND flash devices.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: