Логотип







наверх

XOR преобразование

Для хранения данных на современных чипах памяти используются не сырые данные, а скремблированные.

Скремблирование - это обратимое преобразование цифрового потока с целью получения свойств, близких к свойствам случайной последовательности.
Скремблирование позволяет увеличить надежность хранения данных и уменьшить влияние ячеек друг на друга.


XOR - это операция, которая принимает значение "истина" (true), только если всего один из аргументов имеет значение "истина" (true).



аргумент

аргумент
XOR
преобразование

0 (false)

0 (false)

0 (false)

0 (false)

1 (true)

1 (true)

1 (true)

0 (false)

1 (true)

1 (true)

1 (true)

0 (false)

XOR обладает следующими свойствами:

A xor 0 = A

A xor A = 0

A xor К = К xor A

(A xor К) xor К = A

В данном примере К - это ключ.

В накопителях на основе flash-памяти используется K, равный размеру блока чтения памяти или значение, в целое число раз меньшее или большее, чем размер блока памяти.

Для нахождения К используются знания о предполагаемых записанных данных. Например, отыскав нулевой логический блок, мы можем предположить, что он содержит частичное заполнение паттерном 0х00 и частями FAT-таблицы.

В настоящий момент XOR, используемый в накопителях, условно разделяют на два типа: блочный XOR и адаптивный XOR.

Блочный XOR - это XOR, который остается неизменным для подавляющего числа блоков микросхемы.

Адаптивный XOR - это XOR, который меняется для блоков микросхемы по определенному алгоритму. На сегодняшний день таких алгоритмов несколько (порядка десяти) и к сожалению этот список растет.

В нашей лаборатории производится вычисление XOR обоих типов. Некоторые адаптивные типы практически не поддаются вычислению.

02.04.2015


наверх