What is SandForce_Internal?

4

According to palimpsest on my new OCZ Vertex 3 120 GB SSD, S.M.A.R.T. attribute ID 234 is

Uncorrectable ECC Count

Number of uncorrectable ECC errors

[Screenshot of <code>palimpsest</code> displaying SMART data on KDE]

I've been watching this value, and it has been increasing since it read 78.

Then, I ran smartctl -a /dev/sda and saw this:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
195 ECC_Uncorr_Error_Count  0x001c   120   120   000    Old_age   Offline      -       0/51803881
233 SandForce_Internal      0x0000   000   000   000    Old_age   Offline      -       51
234 SandForce_Internal      0x0032   000   000   000    Old_age   Always       -       135

It looks like OCZ assigned ID 234 as something else, and the uncorrectable errors by ECC are actually ID 195.

My question is...

What is SandForce_Internal for S.M.A.R.T. attributes 233 and 234?

Deltik

Posted 2012-09-15T20:46:11.567

Reputation: 16 807

Answers

6

It has been a while since this question was first asked, but it's still relevant, because this info is still a little tough to track down on the web, so here is a little more info.

I have these same two mystery SMART attributes on my Kingston HyperX Fury, which uses the Sandforce SF-2281 controller.

As already stated, these two numbers track "Host Writes" (234) and "NAND Writes" (233).

These SMART attributes keep track of the wear level on the SSD's Flash memory by recording how much data has been written to the drive.

The reason that two different attributes are needed, is because the SandForce 2000 series controllers try to maximize the life of the Flash Memory by applying "Durawrite" data compression to the data your operating system sends to the hard drive BEFORE it writes it to the actually Flash Memory.

Then when your O.S. reads the data, the controller transparently decompresses the data so that bit-for-bit it is identical to the original.

The reason they do this is that by compressing the data stored on the drive, they can write fewer bytes to the Flash Memory over the life of the drive, which causes less wear and tear and makes the Flash Memory Chips last longer.

... but not ALL data is compressible, so sometimes "Durawrite" compression is really effective, and sometimes not so much, so these two attributes keep track of how much benefit you are getting from the compression.

Here's how they work...

The HOST Writes (attribute 234 on my Fury) duplicates the "LBAs written" attribute (241 decimal on my Fury SSD) and returns the same value, which just keeps track of the TOTAL amount of data, in Gigabytes, that your Operating System has written to the SSD during its full life since first installed.

"NAND Writes" (attribute 233), shows how effective "Durawrite" was at compressing the data by showing the TOTAL number of Gigabytes of data that was ACTUALLY WRITTEN (after compression) to the NAND Flash Memory.

Normally the "NAND Writes" will be smaller than "HOST Writes" with the ratio being controlled by how compressible the data you store on your hard drive is. Things like your browser cache (HTML) compress really well, but already compressed formats like ZIPPED data, JPGs, MP3s, and H264 or MPG video don't compress much at all because they are already highly compressed, so if the drive is used mainly to store that kind of data, HOST Writes and NAND Writes will be almost the same.

Remember BOTH numbers are in Gigabytes, and neither one is associated with a problem of any kind, they just help you keep track of total SSD usage. With 3K cycle Flash chips a 240 Gigabyte HyperX Fury 3K can survive more than 700 terabytes of total writes (700,000 Gigabytes) even for non-compressible data.

rich

Posted 2012-09-15T20:46:11.567

Reputation: 76

1I have a Kingston SV300S37A60G (60GB) that I use as root drive on a server. Little writes, mostly logs, and some package update (it's not linux, not many updates). After 22k hours of use, my 177 Wear_Range_Delta is 7 (an average of 7 writes per cell), the 233 Sandforce_internal is 9092 and both 234 Sandforce_Internal and 241 Lifetime_Writes_GiB are 5161. Value 242 Lifetime_Reads_GiB is lower, 2329 (of course memory cache works well). In my case according to your explanation I have almost twice NAND writes compared to host writes??? that's strange. – FarO – 2015-10-16T14:42:22.567

@OlafM: I have exactly the same situation on a Corsair Force 3 120GB one. My current guess is: The data used on the device isn't compressible and the device needed for writes due to garbage collection/reordering. But really, I don't know. – Elrond – 2016-01-24T20:22:43.750

4

The SandForce_Internal attributes correspond to Host writes and NAND writes, with the larger value being Host writes. Host writes is the amount of data the controller was told to write whereas the NAND writes represents the amount of data the controller actually wrote.

Nunyo

Posted 2012-09-15T20:46:11.567

Reputation: 41

Could you elaborate on your answer and clarify what units the values are measured in? And I just checked the values for attributes 233 and 234 again. Their values are now 798 and 586, respectively. The larger value now belongs to attribute 233. What does this mean? – Deltik – 2012-11-15T23:05:58.353

0

SmartCtrl values:

-v 233,raw48,SandForce_NANDWrite_GiB
-v 234,raw48,SandForce_HostWrite_GiB
-v 241,raw48,Lifetime_Writes_GiB
-v 242,raw48,Lifetime_Reads_GiB

All are measured in GiB units (you'll see that internal attribute 234 reports the same value as the common attribute 241).

The current sources of the smartctrl tool currently does not name these 233 and 234 attributes and uses "SandForce_Internal" instead.

This could be fixed in its "drivedb.h" database file (which uses a partial declaration without the header/footers hidden in /*comments*/, to make it embeddable and parsable either as C/C++ or as JSON).

Example of output (with smartctl -x):

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR--   120   120   050    -    0/0
  5 Retired_Block_Count     PO--CK   100   100   003    -    0
  9 Power_On_Hours_and_Msec -O--CK   083   083   000    -    15087h+46m+25.780s
 12 Power_Cycle_Count       -O--CK   099   099   000    -    1074
171 Program_Fail_Count      -O--CK   000   000   000    -    0
172 Erase_Fail_Count        -O--CK   000   000   000    -    0
174 Unexpect_Power_Loss_Ct  ----CK   000   000   000    -    154
177 Wear_Range_Delta        ------   000   000   000    -    5
181 Program_Fail_Count      -O--CK   000   000   000    -    0
182 Erase_Fail_Count        -O--CK   000   000   000    -    0
187 Reported_Uncorrect      -O--CK   100   100   000    -    0
194 Temperature_Celsius     -O---K   028   064   000    -    28 (Min/Max 16/64)
195 ECC_Uncorr_Error_Count  --SRC-   100   100   000    -    0/0
196 Reallocated_Event_Count PO--CK   100   100   003    -    0
201 Unc_Soft_Read_Err_Rate  --SRC-   100   100   000    -    0/0
204 Soft_ECC_Correct_Rate   --SRC-   100   100   000    -    0/0
230 Life_Curve_Status       PO--C-   100   100   000    -    100
231 SSD_Life_Left           PO--C-   100   100   010    -    0
233 SandForce_NANDWrite_GiB ------   000   000   000    -    13821
234 SandForce_HostWrite_GiB -O--CK   000   000   000    -    18743
241 Lifetime_Writes_GiB     -O--CK   000   000   000    -    18743
242 Lifetime_Reads_GiB      -O--CK   000   000   000    -    10313
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

Note: that smartctl was initially a commandline Linux/Unix tool (GPL licenced) but it was ported natively and works perfectly on Windows (32-bit or 64-bit). It can be used via an UI interface, gsmartcontrol, also ported on Windows GPL licenced too).

Both tools are in my opinion the best SMART tools on Windows, as it already captures in its active developement the patches, databases and tests already used by most wellknown harddrive and SSD manufacturers (Western Digital, Seagate, Samsung, Toshiba/Apple, Intel, Crucial, Kingston, Maxtor, Plextor, SanDisk, Transcend, HP, JMicron, SandForce, OCZ, Corsair, IBM/Lenovo/Hitachi, Fujitsu, InnoDisk, InnoStor, Dell, Quantum, LaCie...)

verdy_p

Posted 2012-09-15T20:46:11.567

Reputation: 266