In-depth technology research: finding new ways to recover data, accessing firmware, writing programs, reading bits off the platter, recovering data from dust.

Forum rules

Please do not post questions about data recovery cases here (use this forum instead). This forum is for topics on finding new ways to recover data. Accessing firmware, writing programs, reading bits off the platter, recovering data from dust...
Post a reply

ECC vs. XOR naming

October 20th, 2023, 12:43

There are many different ways that ECC and XOR can be combined. I was searching for names to clearly identify them, but couldn't find any.
So I tried to create concepts and names for them in the hope that we can easily characterize all possible ways how the controllers deal with ECC and XOR, so that we can easily talk about cases and tool capabilities.
I have created a video that explains the concepts, names and how to apply them: https://www.youtube.com/watch?v=ch1geZh4AIg

I hope this helps everyone!

Re: ECC vs. XOR naming

October 20th, 2023, 21:06

Simply put, this is the concept of XOR after ECC or XOR before ECC, and it is very clearly represented in PC3000 FLASH software. In contrast, in the FE , this is determined by the layout. This is also explained in the VNR manual.

Re: ECC vs. XOR naming

October 21st, 2023, 2:46

From my point of view, XOR after ECC and ECC after XOR is too ambiguous, since it is exactly the opposite from the reading and from the writing perspective. But the bigger problem I have is that it doesn't explain what exactly is being covered by ECC and by XOR, whether ECC is calculated on plain DA or XORed DA, ... With the new concepts we can precisely define, communicate and implement the behaviour.

Re: ECC vs. XOR naming

October 21st, 2023, 5:34

I believe that understanding these concepts might not be easy for users who are just getting started with flash data recovery. These matters should be integrated into the software by programmers who understand these concepts and inform users when to use what. FE software adheres to this idea by incorporating the geometric structure of ECC/XOR/user sectors and SA positions into a single layout, allowing users to not worry about complex underlying logic. However, this also presents a problem: if a part of the layout undergoes minor changes, the layout becomes obsolete. Developers must then update the new layout, which can be a very cumbersome task. I believe this is one of the reasons why FE software stopped being developed. So, I think there should be a balance between flexibility and user-friendliness

Re: ECC vs. XOR naming

October 21st, 2023, 6:20

"Laws are like sausages. It is best not to see them being made." said Bismarck. This info is used mostly by developers. But I think this is clear for most user who have even little expirience with flash. ECC is ECC, XOR is the XOR. XOR scramble the data, the data and SA, or the data, SA and ECC area. ECC ensures that there are no bit errors. Users usually base on ready resources implemented to program (ECC and XORs from VNR/PC3K and layouts from FE).
Post a reply