tables. Mid-end and high-end flash products are usually have bigger over-provisioning spaces. Over-provisioning is represented as a percentage ratio of extra capacity to user-available capacity: :\text{over-provisioning} = \frac{\text{physical capacity}-\text{user capacity}}{\text{user capacity}} Over-provisioning typically comes from three sources: • The computation of the capacity and use of
gigabyte (GB) as the unit instead of
gibibyte (GiB). Both HDD and SSD vendors use the term GB to represent a
decimal GB or 1,000,000,000 (= 109) bytes. Like most other electronic storage, flash memory is assembled in powers of two, so calculating the physical capacity of an SSD would be based on 1,073,741,824 (= 230) per
binary GB or GiB. The difference between these two values is 7.37% (= (230 − 109) / 109 × 100%). Therefore, a 128 GB SSD with 0% additional over-provisioning would provide 128,000,000,000 bytes to the user (out of 137,438,953,472 total). This initial 7.37% is typically not counted in the total over-provisioning number, and the true amount available is usually less as some storage space is needed for the controller to keep track of non-operating system data such as block status flags.
Free user space The SSD controller will use free blocks on the SSD for garbage collection and wear leveling. The portion of the user capacity which is free from user data (either already TRIMed or never written in the first place) will look the same as over-provisioning space (until the user saves new data to the SSD). If the user saves data consuming only half of the total user capacity of the drive, the other half of the user capacity will look like additional over-provisioning (as long as the TRIM command is supported in the system). == DRAM buffer ==