TWI714579B - 用於解擾亂與擾亂資料的方法及其系統、以及可執行軟體產品 - Google Patents
用於解擾亂與擾亂資料的方法及其系統、以及可執行軟體產品 Download PDFInfo
- Publication number
- TWI714579B TWI714579B TW105113696A TW105113696A TWI714579B TW I714579 B TWI714579 B TW I714579B TW 105113696 A TW105113696 A TW 105113696A TW 105113696 A TW105113696 A TW 105113696A TW I714579 B TWI714579 B TW I714579B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- scrambling
- memory
- vector
- descrambling
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/02—Details ; arrangements for supplying electrical power along data transmission lines
- H04L25/03—Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
- H04L25/03828—Arrangements for spectral shaping; Arrangements for providing signals with specified spectral properties
- H04L25/03866—Arrangements for spectral shaping; Arrangements for providing signals with specified spectral properties using scrambling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Power Engineering (AREA)
- Spectroscopy & Molecular Physics (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明提供一種用於解擾亂與擾亂資料的方法及其系統。對於解擾亂與擾亂記憶體通道的示例性實施例包括:對記憶體裝置執行訓練模式以發現經主機系統使用的互斥或向量,以擾亂資料;藉由記憶體裝置透過記憶體通道接收經擾亂的訓練資料,且對於對應的記憶位置的每一者儲存經擾亂的訓練資料作為互斥或向量;以及在記憶體裝置的功能模式中,對於特定記憶位置透過記憶體通道接收經擾亂的資料,且使用對於特定記憶位置儲存的互斥或向量,以在寫入至特定記憶位置之前解擾亂經擾亂的資料。
Description
本申請案主張於2015年8月24日提出申請的臨時專利申請案第62/209166號的權益,讓渡給本申請案之受讓人,所述臨時專利申請案的全部內容併入本案供參考。
依據本發明的實施例的一或多個態樣是關於擾亂器/解擾亂器,且更特定地是關於一種用於固態硬碟(solid-state drive;SSD)通訊協定的改良的基於互斥或的擾亂器/解擾亂器。
固態硬碟相異於標準的態隨機存取記憶體(dynamic random access memory;DRAM),其相異處在於主機需要能夠發送控制資訊至固態硬碟且接收由固態硬碟產生的狀態資訊。在主機系統與固態硬碟之間透過動態隨機存取記憶體通道的資料通訊
可能藉由資料擾亂的使用與錯誤修正碼(error-correcting code;ECC)保護及其他資料保護方法的選擇性地使用,而顯著地被複雜化。大部分藉由主機的記憶體控制器進行的擾亂方法包含產生偽隨機的(pseudo-random)但為確定性的(deterministic)圖案以及對將被發送的圖案與資料進行互斥或(exclusive-or)操作。與資料一起經互斥或操作的圖案值(pattern value)可基於固定的種子(seed)或種子與轉換的記憶體位址的一些組合。
對於雙倍數據率(DDR)的形狀因素(form factor)儲存裝置,儲存裝置記憶體控制器需要能夠解擾亂透過記憶體匯流排接收的資料,以執行指令以及在儲存(storage)中儲存資料。相似地,對於自儲存(storage)擷取資料以正確地經發送至主機系統,儲存裝置記憶體控制器需要擾亂資料以使資料可藉由主機系統辨識。此需要儲存裝置記憶體控制器能夠應用由主機記憶體控制器應用的相同的擾亂及/或錯誤修正碼。此意味著擾亂演算需要是可逆的(reversible),且在一段時間內不可對於雙倍數據率通道上的資料具有相依性。
藉由主機系統使用的擾亂演算的完整的反向工程(reverse engineering)是困難的,且即使已知擾亂演算,擾亂演算可能對於不同的供應商/平台而改變。
所需的是用於固態硬碟通訊協定的改善的基於互斥或的擾亂器/解擾亂器,且優選地為不需要藉由主機記憶體控制器提供的擾亂演算的消息(knowledge)或完整的反向工程者。
示例性實施例提供用於解擾亂與擾亂記憶體通道的方法及系統。示例性實施例的態樣包括:對記憶體裝置執行訓練模式以發現經主機系統使用的互斥或向量,以擾亂資料。此為藉由輸入所有零訓練資料至對於記憶體裝置的所有記憶位置的擾亂演算,以產生透過記憶體通道傳輸至記憶體裝置的經擾亂的訓練資料,以致經擾亂的訓練資料相等於對應於記憶位置的互斥或向量。經擾亂的訓練資料接著藉由記憶體裝置透過記憶體通道被接收,且經擾亂的訓練資料對於對應的記憶位置的每一者被儲存為互斥或向量。在記憶體裝置的功能模式中,經擾亂的資料對於特定記憶位置透過記憶體通道被接收,且對於特定記憶位置儲存的互斥或向量經使用以在寫入至特定記憶位置之前解擾亂經擾亂的資料。
根據此處所揭露的方法及系統,示例性實施例提供沒有藉由主機記憶體控制器提供的擾亂演算的消息(knowledge)或完整的反向工程的處理,以擾亂/解擾亂通道資料,且此處理不相依於任何藉由主機記憶體控制器提供的錯誤修正碼(error correcting code)演算。
10:主機系統
12:固態硬碟
14:記憶體通道
16:記憶體控制器
18:儲存控制器
20:向量儲存記憶體
21:記憶體
22:處理器
24:作業系統
26:儲存裝置驅動器
28:擾亂/解擾亂演算
30、206、400、400’、412、414:資料
32:解擾亂/擾亂演算
34、202:互斥或向量
200:記憶體位址
204:線性回饋移位暫存器
208、410:互斥或操作
210:回饋多項式
300、302、304、306:方塊
402、402’:記憶體匯流排位址
404、404’:互斥或向量
結合附圖與以下的實施例的說明,本廣義發明概念的這
些特徵及/或其他特徵與效用將變的顯而易見且更容易地被理解,在附圖中:圖1是說明用於擾亂/解擾亂主機系統與固態硬碟之間的記憶體通道的系統的示例性實施例的方塊圖;圖2是說明在主機系統上的習知的擾亂演算的操作的圖;圖3是說明對於固態硬碟的用於解擾亂/擾亂記憶體通道的處理的流程圖;以及圖4A與圖4B是說明在固態硬碟中藉由解擾亂演算進行的處理的圖。
現在將詳細參照本廣義發明概念的實施例,在附圖中說明所述實施例的實例,其中通篇中類似的參考編號指示類似元件。下文將闡述所述實施例,以參照圖式闡釋本廣義發明概念。
參照以下詳細說明及圖式可更易於理解本發明的優點及特徵以及達成本發明的方法。然而,本廣義發明概念可以各種方式實施為諸多不同的實踐或執行形式,而不應被解釋為僅限於本文所述的實施例。更確切而言,提供該些實施例是為了使本揭露內容透徹及完整,且將會向熟習此項技術者充分傳達廣義發明概念,且本廣義發明概念是由隨附申請專利範圍界定。在圖式中,為視覺清楚起見,誇大了層以及區的厚度。
除非本文中另外指明或上下文明顯矛盾,否則在闡述本
發明的上下文中(特別是在以下申請專利範圍的上下文中)使用用語「一」及「該」以及類似指稱應被解釋為涵蓋單數及複數。
除非另外指出,否則用語「包括」、「具有」、「包含」及「含有」應被解釋為開放式用語(即,意指「包含,但不限於」)。
此處所使用的用語「演算(algorithm)」或「模組(module)」意指,但不限於,執行某些任務的軟體或硬體構件,例如現場可程式化閘陣列(field programmable gate array;FPGA)或應用專用積體電路(application specific integrated circuit;ASIC)。演算或模組可有利地經配置成存在於可定址式儲存媒體且配置成在一或多個處理器上執行。因此,演算或模組可包括例如是構件(例如軟體構件、物件導向軟體構件(object-oriented software component)、類別構件及任務構件)、處理、功能、屬性、程序、次常式、程式碼段、驅動機、韌體、微碼、電路、資料、資料庫、資料結構、表、陣列及變數。為構件提供的功能及構件或模組可組合至較少的構件或模組中,抑或更被分成額外的構件及構件或模組。
除非另外定義,否則本文所用全部技術及科學用語所具有的意義均相同於本發明所屬技術中的通常知識者所通常理解的意義。應注意,除非另有規定,否則本文所提供的任意及所有實例或示例性用語的使用僅旨在更佳地闡明廣義發明概念,而並非對本發明範圍的限制。此外,除非另外定義,否則不可過度解釋常用詞典中所定義的所有詞彙。
本發明提供用於記憶體裝置通訊協定的基於互斥或的擾亂器/解擾亂器,其沒有藉由主機系統應用的擾亂及錯誤修正碼方法的消息或反向工程。此處所描述的方法可應用於擾亂/錯誤修正發生所在的不同種類的記憶體裝置或記憶體通道,但其將參照記憶體裝置包括固態硬碟(例如是單一、雙倍或四倍速率的形狀因素的固態硬碟)的實施例以進行說明。
在固態硬碟的訓練模式中,擾亂遮罩值(scramble mask value)在此處亦屬於互斥或向量,互斥或向量經主機系統所使用以在固態硬碟中對於每一記憶位置擾亂資料。擾亂遮罩值是藉由使用訓練序列(training sequence)被發現,且擾亂遮罩值經儲存在固態硬碟中。在固態硬碟的功能模式中,擾亂遮罩值或互斥或向量接著經使用以透過記憶體通道分別解擾亂與擾亂經接收及傳輸的資料。
圖1是說明用於擾亂/解擾亂主機系統與雙倍數據率形狀因素固態硬碟之間的雙倍數據率記憶體通道的系統的示例性實施例的方塊圖,所述系統沒有藉由主機系統應用的先前(a-priori)消息或擾亂演算的反向工程。
所述系統包含透過記憶體通道14耦合至固態硬碟12的主機系統10。如眾所皆知,固態硬碟不具有移動部件以儲存資料,且不需要持續的電源以保持資料。與此揭露相關的主機系統10的構件包含處理器22、作業系統(operating system;OS)24以及耦合至記憶體通道14的記憶體控制器16。記憶體控制器16是處理
進出於主機的記憶體(在此所示如固態硬碟12)的資料流(flow of data)的數位電路。記憶體控制器16可為分開的晶片,或整合至另一晶片(如處理器22)。記憶體控制器16可額外地提供藉由擾亂/解擾亂演算28進行的記憶體擾亂特徵,其將使用者資料轉換至記憶體而進入偽隨機的圖案中。
在固態硬碟12經執行如雙倍數據率形狀因素固態硬碟且記憶體通道14包含雙倍數據率記憶體通道的實施例中,雙倍數據率形狀因素固態硬碟可藉由在記憶體匯流排時脈訊號(clock signal)的上升邊際(rising edge)與下降邊際(falling edge)兩者上轉換資料而加倍(double)雙倍數據率記憶體通道的使用。
固態硬碟12的關鍵構件是儲存控制器18以及用以自主機系統10儲存資料的記憶體21。儲存控制器18處理儲存在記憶體21的資料,且透過記憶體通道14而經由通訊協定與主機系統通訊。記憶體21可包含任一種類的非揮發性隨機存取記憶體(non-volatile random-access memory;NVRAM),其包含快閃記憶體(flash memory)、鐵電隨機存取記憶體(ferroelectric RAM;F-RAM)、磁阻隨機存取記憶體(magnetoresistive RAM;MRAM)、相變化記憶體(phase-change memory;PCM)、millipede記憶體及其類似者。
圖2是說明在主機系統上的習知的擾亂/解擾亂演算28的操作的圖。在操作中,主機的記憶體控制器16接收將被儲存在固態硬碟12中的資料206以及固定的種子(fixed seed)與記憶體
位址200。擾亂/解擾亂演算28接著對於每一雙倍數據率通道循環產生在此屬於互斥或向量202的隨機種子(例如是位元圖案)。在一實施例中,可使用線性回饋移位暫存器(Linear Feedback Shift Register;LFSR)204或藉由使用固定種子或固定種子與轉換的記憶體位址200的組合的其他機制(mechanism)產生互斥或向量202。擾亂/解擾亂演算28在互斥或向量202上進行互斥或操作208,且資料206在給定的循環中進入記憶體通道14以產生經擾亂的資料30。線性回饋移位暫存器204可使用回饋多項式210以產生互斥或向量202。經擾亂的資料30接著透過記憶體通道14被發送至固態硬碟12、被解擾亂以及被儲存至記憶體21。
對於自固態硬碟12的使用者資料與狀態資訊將被正確地發送回主機,藉由主機的記憶體控制器16使用的相同的轉換須在固態硬碟12中被應用。此需要固態硬碟的製造者對在各種主機系統中所使用的擾亂演算作反向工程,以使固態硬碟相容於所述主機系統10。此外,即使固態硬碟製造者已知主機的擾亂演算,擾亂演算可對於不同的主機供應商/平台而改變,而需要將在固態硬碟12中被實施的不同的擾亂/解擾亂方法。
此處所描述的示例性實施例提供對於固態硬碟解擾亂/擾亂記憶體通道的方法及系統,其沒有藉由主機的記憶體控制器應用的消息或反向工程。所述示例性實施例應用在主機系統10上安裝與執行的儲存裝置驅動器26以及藉由固態硬碟儲存控制器18執行的解擾亂/擾亂演算32,以致解擾亂自主機系統10接收的經
擾亂的資料30,且擾亂自記憶體21被擷取且將被發送至主機系統10的資料。如眾所皆知,裝置驅動器為提供軟體介面至經附加的硬體元件(在此情況為固態硬碟12)的電腦程式,使作業系統24及其他的電腦程式使用所述裝置的硬體功能。
由於與資料206經互斥或操作的互斥或向量202可基於固定種子及/或固定種子與轉換的記憶體位址200的組合,對於在固態硬碟12上的任何給定的實體的記憶位置,儲存裝置驅動器26經設置以基於對於所有記憶位置的零資料的訓練序列決定藉由主機的擾亂/解擾亂演算28對於每一記憶位置使用的互斥或向量202。互斥或向量202接著透過記憶體通道14經發送至儲存控制器18,且經儲存為互斥或向量34。
依據示例性實施例的一態樣,固態硬碟12亦經提供予向量儲存記憶體20,其用以儲存自主機系統10發現的互斥或向量34。任何在給定的記憶體位址的經儲存於記憶體21中的資料接著在使用經儲存在向量儲存記憶體20中的互斥或向量34的擷取中對於所述記憶體位址被解擾亂。
在一實施例中,向量儲存記憶體20可經實施為靜態隨機存取記憶體(SRAM)或一組暫存器。在一實施例中,向量儲存記憶體20可位於儲存控制器18的內部、與儲存控制器18及記憶體21兩者分離或為記憶體21的部件。
圖3是說明對於固態硬碟的用於解擾亂/擾亂經由記憶體通道傳輸的資料的處理的流程圖。所述處理可以對於固態硬碟12
執行訓練模式開始,以發現藉由主機系統使用的互斥或向量202以擾亂資料,所述擾亂資料是藉由:輸入所有零訓練資料至對於固態硬碟12的所有記憶位置的擾亂/解擾亂演算28,以產生透過記憶體通道14傳輸至記憶體21的經擾亂的訓練資料30,以致經擾亂的訓練資料30相等於對應於所述記憶位置的互斥或向量(方塊300)。在一實施例中,訓練模式可被在主機系統10上的儲存裝置驅動器26啟動以及進行。
固態硬碟12透過記憶體通道接收經擾亂的訓練資料,且對於對應的記憶位置的每一者儲存經擾亂的訓練資料作為互斥或向量34(方塊302)。
在一實施例中,固態硬碟儲存控制器18可接收經擾亂的訓練資料,且解擾亂/擾亂演算32可儲存互斥或向量。依據一實施例,固態硬碟12的向量儲存記憶體20被使用以儲存在訓練模式中被發現的互斥或向量34。一旦在固態硬碟12中對於每一記憶位置的互斥或向量34被發現且儲存,儲存裝置驅動器26可通知固態硬碟12訓練模式已完成。
在記憶體裝置的訓練模式之後且功能模式中,記憶體裝置對於特定記憶位置透過記憶體通道接收經擾亂的資料,且使用對於特定記憶位置儲存的互斥或向量,以在寫入至特定記憶位置之前解擾亂資料(方塊304)。
在一實施例中,固態硬碟儲存控制器18可接收經擾亂的資料,且解擾亂/擾亂演算32可使用互斥或向量34以解擾亂資料。
當在功能模式中自特定記憶位置讀取資料時,記憶體裝置擷取資料且使用對於特定記憶位置經儲存的互斥或向量,以在透過記憶體通道傳輸經擾亂的資料至主機系統之前擾亂資料(方塊306)。
圖4A與圖4B是分別說明當經擾亂的資料自主機系統被接收時,以及當擾亂自記憶體發送至主機系統的資料時,在固態硬碟12中藉由解擾亂/擾亂演算32進行的處理的圖。在圖4A與圖4B兩者中,解擾亂/擾亂演算32操作經接收的資料以及記憶體匯流排位址。在圖4A中,經接收的資料400代表自主機系統10的經擾亂的資料,且解擾亂/擾亂演算32使用記憶體匯流排位址402以對於特定的記憶位址自向量儲存記憶體20擷取互斥或向量404。解擾亂/擾亂演算32對於互斥或向量404與經接收的資料400進行互斥或操作410以產生經解擾亂的資料412,所述經解擾亂的資料412接著被儲存在特定記憶位置中。
在圖4B中,經接收的資料400’代表自記憶體21讀取的資料,且解擾亂/擾亂演算32使用DDR記憶體匯流排位址402’以對於特定記憶位置自向量儲存記憶體20擷取互斥或向量404’。解擾亂/擾亂演算32對於互斥或向量404’與經擷取的資料400進行互斥或操作410以在透過記憶體通道14傳輸經擾亂的資料414至主機系統10之前產生經擾亂的資料414。
依據示例性的實施例,此處所揭露的用以解擾亂與擾亂固態硬碟12的記憶體通道14的處理在沒有藉由主機的記憶體控
制器16提供的擾亂演算的完整的反向工程或消息的情況下擾亂/解擾亂通道資料。此外,所述處理不相依於藉由主機的記憶體控制器16提供的任何錯誤修正碼演算。
如上所述關於圖3的處理,用於功能模式的上下文中的用語「資料」意於包含在主機系統10與固態硬碟12之間傳輸的各種種類的資料,其包含:控制/描述資料、狀態資料、使用者資料以及控制資料。
在控制/描述資料的情況下,如上所述,解擾亂/擾亂演算32可在訓練模式中對於每一對應的控制/描述記憶位置儲存互斥或向量,且使用互斥或向量以在功能模式中解擾亂控制/描述資料。
在狀態資料的情況下,如上所述,解擾亂/擾亂演算32可在訓練模式中對於每一對應的狀態記憶位置儲存互斥或向量,且在功能模式中使用互斥或向量以擾亂狀態資料。若在主機系統上10的錯誤修正碼被致能(enabled),解擾亂/擾亂演算32可將正確的錯誤修正碼的編碼字元附加於經擾亂的資料。
在使用者資料與控制資料的情況下,如上所述,解擾亂/擾亂演算32可在訓練模式中對於每一對應的使用者資料記憶位置儲存互斥或向量,以及在功能模式中且在記憶體21的讀取中使用互斥或向量以擾亂使用者資料與控制資料。對於在功能模式中寫入至記憶體21,如上所述,解擾亂/擾亂演算32在寫入至記憶體21之前解擾亂使用者資料與控制資料。需注意讀取使用者資料與寫入使用者資料可分享相同的記憶位置或使用不同的記憶位置。
在對於讀取與寫入使用者資料分享相同的記憶位置的情況下,對於儲存互斥或向量的儲存空間的需求可被減少。
因此,向量儲存記憶體20可被分隔成不同區域(未繪示)以儲存不同種類的資料的互斥或向量。在一實施例中,向量儲存記憶體20可包含控制/描述資料向量區域、狀態資料向量區域、使用者資料向量區域以及控制資料向量區域中的一或多個。
在一實施例中,若主機系統10使錯誤修正碼致能(enabled),則儲存裝置驅動器26可經設置以產生如在訓練模式中經輸入至擾亂/解擾亂演算28的訓練資料的所有零錯誤修正碼的編碼字元。
最常見的單一錯誤修正與雙錯誤檢測(single-error correcting and double-error detecting;SECDED)的錯誤修正碼的實施導致對於所有零資料為所有零編碼字元,但某些則不是。對於系統10的錯誤修正碼的實施不導致對於所有零資料為所有零編碼字元的情況,方塊300可將訓練階段劃分為兩個步驟。
在第一步驟中,儲存裝置驅動器26可使主機的記憶體控制器16的擾亂失能,接著輸入所有的零訓練資料至擾亂/解擾亂演算28以決定其為零或非零。接下來,在每一資料循環中對於所有記憶位置的錯誤修正碼的編碼字元的位元位置與其值被儲存控制器18與系統韌體紀錄。
在第二步驟中,儲存裝置驅動器26使主機的記憶體控制器16的擾亂致能,發送自第一步驟使用錯誤修正碼的編碼字元的
所有的零至擾亂/解擾亂演算28而作為訓練資料,且解擾亂/擾亂演算32在向量儲存記憶體20中對於所有的記憶位置記錄互斥或向量。對於非零的錯誤修正碼的編碼字元,此處理應指出對於非經擾亂的錯誤修正碼的編碼字元產生1的每個位元位置,在訓練中提取(capture)的對應的互斥或向量位元應被反轉(inverse)。
本發明可被廣泛地應用至經附加至任何經擾亂的通道且需要與主機交換資訊的非動態隨機存取記憶體(non-DRAM)的記憶體裝置的任何應用。
在一實施例中,解擾亂/擾亂演算32經實施而作為軟體構件。在另一實施例中,解擾亂/擾亂演算32可經實施而作為硬體與軟體的組合。儘管解擾亂/擾亂演算32、儲存控制器18與向量儲存記憶體20經顯示為單一構件,每一者的功能可經結合成為較小的或較大的數量的模組/構件。舉例而言,在一實施例中,解擾亂/擾亂演算32可經實施而對於解擾亂演算作為第一軟體構件且對於擾亂演算作為第二軟體構件。在另一實施例中,解擾亂/擾亂演算32、儲存控制器18與向量儲存記憶體20可經實施而作為一積體構件(integrated component)。
示例性實施例的擾亂/解擾亂系統可經應用到從客戶至企業的廣泛範圍的儲存市場,其可經應用到對於單一獨立(standalone)機器(例如是桌上型電腦(desktop)、筆記型電腦(laptop)、工作站(workstation)、伺服器(server)及其類似者)、儲存陣列(storage array)、軟體定義儲存(software-define storage;
SDS)、應用特定儲存(application-specific storage)、虛擬機器(virtual machine;VM)、虛擬桌面基礎結構(virtual desktop infrastructure;VDI)、內容傳遞網路(content distribution network;CDN)及其類似者的磁碟。
在一實施例中,舉例而言,固態硬碟12的記憶體21可由複數個非揮發性記憶體晶片(例如是複數個快閃記憶體)形成。
作為另一實例,記憶體21可由不同種類的非揮發性記憶體晶片(例如是相變化隨機存取記憶體(PRAM)、鐵電隨機存取記憶體(FRAM)、磁阻隨機存取記憶體(MRAM)等等)形成而並非快閃記憶體晶片。作為另一選擇,記憶體21可由揮發性記憶體(亦即動態隨機存取記憶體(DRAM)或靜態隨機存取記憶體(SRAM))形成,且可具有兩個或更多種類的記憶體混合的混合型式(hybrid type)。
用於解擾亂與擾亂藉由記憶體裝置的記憶體通道傳輸的資料的方法與系統已被揭露。本發明已根據經顯示的示例性實施例而經記載,且在不脫離本發明的精神和範圍內,可對實施例作更動。舉例而言,示例性實施例可使用硬體、軟體、含有程式指令的電腦可讀取的媒體或其組合而經實施。依據本發明的所寫的軟體將被儲存在電腦可讀取的媒體的某些形式(例如是記憶體、硬碟或CD/DVD-ROM),且被處理器所執行。因此,本發明所屬領域中具有通常知識者可在不偏離後附的申請專利範圍的精神和範圍的情況下作許多的更動。
10:主機系統
12:固態硬碟
14:記憶體通道
16:記憶體控制器
18:儲存控制器
20:向量儲存記憶體
21:記憶體
22:處理器
24:作業系統
26:儲存裝置驅動器
28:擾亂/解擾亂演算
30:資料
32:解擾亂/擾亂演算
34:互斥或向量
Claims (28)
- 一種用於解擾亂與擾亂資料的方法,所述資料是經由記憶體裝置的記憶體通道傳輸的資料,所述記憶體通道耦合至所述主機系統,所述用於解擾亂與擾亂資料的方法包括:對所述記憶體裝置執行訓練模式以發現經所述主機系統使用的互斥或向量,以擾亂所述資料,所述擾亂所述資料是藉由:輸入所有零訓練資料至對於所述記憶體裝置的所有記憶位置的擾亂演算,所述擾亂演算以產生透過所述記憶體通道傳輸至所述記憶體裝置的經擾亂的訓練資料,以致所述經擾亂的訓練資料相等於對應於所述記憶位置的所述互斥或向量;藉由所述記憶體裝置透過所述記憶體通道自所述擾亂演算接收所述經擾亂的訓練資料,且對於對應的所述記憶位置的每一者儲存所述經擾亂的訓練資料作為所述互斥或向量;以及在所述訓練模式之後且在所述記憶體裝置的功能模式中,藉由所述記憶體裝置對於特定記憶位置透過所述記憶體通道接收經擾亂的資料,且使用對於所述特定記憶位置儲存的所述互斥或向量的一個互斥或向量,以在寫入至所述特定記憶位置之前解擾亂所述經擾亂的資料。
- 如申請專利範圍第1項所述的用於解擾亂與擾亂資料的方法,更包括: 當在所述功能模式中自所述特定記憶位置讀取所述資料時,擷取所述資料且使用對於所述特定記憶位置儲存的所述互斥或向量以在透過所述記憶體通道傳輸所述經擾亂的資料至所述主機系統之前擾亂所述資料。
- 如申請專利範圍第1項所述的用於解擾亂與擾亂資料的方法,其中在所述主機系統上的儲存裝置驅動器啟動所述訓練模式。
- 如申請專利範圍第1項所述的用於解擾亂與擾亂資料的方法,其中在所述訓練模式中在所述記憶體裝置上的儲存控制器接收所述經擾亂的訓練資料,且儲存控制器執行解擾亂演算與擾亂演算並儲存所述互斥或向量。
- 如申請專利範圍第4項所述的用於解擾亂與擾亂資料的方法,其中所述記憶體裝置包含儲存所述互斥或向量的向量儲存記憶體。
- 如申請專利範圍第1項所述的用於解擾亂與擾亂資料的方法,其中在所述功能模式中接收所述經擾亂的資料包括:藉由在所述記憶體裝置上的解擾亂演算與擾亂演算對於所述特定記憶位置自所述記憶體裝置的向量儲存記憶體擷取所述互斥或向量,且對所述互斥或向量與所述經擾亂的資料進行互斥或操作以產生解擾亂的資料,所述解擾亂的資料接著被儲存在所述特定記憶位置中。
- 如申請專利範圍第1項所述的用於解擾亂與擾亂資料的方法,其中在所述功能模式中接收的所述經擾亂的資料包含控制/描述資料、狀態資料、使用者資料及控制資料中的至少其中之一。
- 如申請專利範圍第7項所述的用於解擾亂與擾亂資料的方法,其中當所述經擾亂的資料包含所述控制/描述資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算在所述訓練模式中對於每一對應的控制/描述記憶位置儲存所述互斥或向量。
- 如申請專利範圍第8項所述的用於解擾亂與擾亂資料的方法,其中在所述解擾亂演算與所述擾亂演算使用所述互斥或向量以在所述功能模式中解擾亂所述控制/描述資料。
- 如申請專利範圍第7項所述的用於解擾亂與擾亂資料的方法,其中當所述經擾亂的資料包含所述狀態資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算在所述訓練模式中對於每一對應的狀態記憶位置儲存所述互斥或向量。
- 如申請專利範圍第10項所述的用於解擾亂與擾亂資料的方法,其中在所述解擾亂演算與所述擾亂演算使用所述互斥或向量以在所述功能模式中擾亂所述狀態資料。
- 如申請專利範圍第7項所述的用於解擾亂與擾亂資料的方法,其中當所述經擾亂的資料包含所述使用者資料以及所述控制資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算在所述訓練模式中對於每一對應的使用者資料記憶位置儲存所述互斥或向量。
- 如申請專利範圍第12項所述的用於解擾亂與擾亂資料的方法,其中在所述解擾亂演算與所述擾亂演算在所述功能模式中的所述記憶體裝置的讀取中使用所述互斥或向量以擾亂所述使用者資料與所述控制資料,以及在所述功能模式中對於寫入至所述記憶體裝置,所述解擾亂演算在寫入至所述記憶體裝置之前解擾亂所述使用者資料與所述控制資料。
- 如申請專利範圍第7項所述的用於解擾亂與擾亂資料的方法,更包括:在所述記憶體裝置上的向量儲存記憶體中儲存所述互斥或向量,其中所述向量儲存記憶體經分隔成包括控制/描述資料向量區域、狀態資料向量區域、使用者資料向量區域及控制資料向量區域中的一或多個的不同區域,以對於對應的資料的種類儲存所述互斥或向量。
- 一種用於解擾亂與擾亂資料的系統,所述資料是經由記憶體裝置的記憶體通道傳輸的資料,所述記憶體通道耦合至所述主機系統,所述用於解擾亂與擾亂資料的系統包括:儲存裝置驅動器,經安裝在所述主機系統上,所述儲存裝置驅動器對所述記憶體裝置執行訓練模式以發現經所述主機系統使用的互斥或向量以擾亂所述資料,所述擾亂所述資料是藉由:輸入所有零訓練資料至對於所述記憶體裝置的所有記憶位置的擾亂演算,所述擾亂演算以產生透過所述記憶體通道傳輸至所述記憶體裝置的經擾亂的訓練資料,以致所述經 擾亂的訓練資料相等於對應於所述記憶位置的所述互斥或向量;以及儲存控制器,在所述記憶體裝置上,且所述儲存控制器經設置以:透過所述記憶體通道自所述擾亂演算接收所述經擾亂的訓練資料,且對於對應的所述記憶位置的每一者儲存所述經擾亂的訓練資料作為所述互斥或向量;以及在所述訓練模式之後且在所述記憶體裝置的功能模式中,對於特定記憶位置透過所述記憶體通道接收經擾亂的資料,且使用對於所述特定記憶位置儲存的所述互斥或向量的一個互斥或向量,以在寫入至所述特定記憶位置之前解擾亂所述經擾亂的資料。
- 如申請專利範圍第15項所述的用於解擾亂與擾亂資料的系統,其中當在所述功能模式中自所述特定記憶位置讀取所述資料時,所述記憶體裝置擷取所述資料且使用對於所述特定記憶位置儲存的所述互斥或向量以在透過所述記憶體通道傳輸所述經擾亂的資料至所述主機系統之前擾亂所述資料。
- 如申請專利範圍第15項所述的用於解擾亂與擾亂資料的系統,其中在所述訓練模式中在所述記憶體裝置上的儲存控制器接收所述經擾亂的訓練資料,且儲存控制器執行解擾亂演算並儲存所述互斥或向量。
- 如申請專利範圍第17項所述的用於解擾亂與擾亂資料的系統,其中所述記憶體裝置包含儲存所述互斥或向量的向量儲存記憶體。
- 如申請專利範圍第15項所述的用於解擾亂與擾亂資料的系統,其中當在所述功能模式中接收所述經擾亂的資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算對於所述特定記憶位置自所述記憶體裝置的向量儲存記憶體擷取所述互斥或向量,且對所述互斥或向量與所述經擾亂的資料進行互斥或操作以產生解擾亂的資料,所述解擾亂的資料接著被儲存在所述特定記憶位置中。
- 如申請專利範圍第15項所述的用於解擾亂與擾亂資料的系統,其中在所述功能模式中接收的所述經擾亂的資料包含控制/描述資料、狀態資料、使用者資料及控制資料中的至少其中之一。
- 如申請專利範圍第20項所述的用於解擾亂與擾亂資料的系統,其中當所述經擾亂的資料包含所述控制/描述資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算在所述訓練模式中對於每一對應的控制/描述記憶位置儲存所述互斥或向量。
- 如申請專利範圍第21項所述的用於解擾亂與擾亂資料的系統,其中所述解擾亂演算與所述擾亂演算使用所述互斥或向量以在所述功能模式中解擾亂所述控制/描述資料。
- 如申請專利範圍第20項所述的用於解擾亂與擾亂資料的系統,其中當所述經擾亂的資料包含所述狀態資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算在所述訓練模式中對於每一對應的狀態記憶位置儲存所述互斥或向量。
- 如申請專利範圍第23項所述的用於解擾亂與擾亂資料的系統,其中所述解擾亂演算與所述擾亂演算使用所述互斥或向量以在所述功能模式中擾亂所述狀態資料。
- 如申請專利範圍第20項所述的用於解擾亂與擾亂資料的系統,其中當所述經擾亂的資料包含所述使用者資料以及所述控制資料時,在所述記憶體裝置上的解擾亂演算與擾亂演算在所述訓練模式中對於每一對應的使用者資料記憶位置儲存所述互斥或向量。
- 如申請專利範圍第25項所述的用於解擾亂與擾亂資料的系統,其中所述解擾亂演算與所述擾亂演算在所述功能模式中的所述記憶體裝置的讀取中使用所述互斥或向量以擾亂所述使用者資料與所述控制資料,以及在所述功能模式中對於寫入至所述記憶體裝置,所述解擾亂演算在寫入至所述記憶體裝置之前解擾亂所述使用者資料與所述控制資料。
- 如申請專利範圍第20項所述的用於解擾亂與擾亂資料的系統,更包括:在所述記憶體裝置上的向量儲存記憶體中儲存所述互斥或向量,其中所述向量儲存記憶體經分隔成包括控制/描述資料向量區域、狀態資料向量區域、使用者資料向量區域及控 制資料向量區域中的一或多個的不同區域,以對於對應的資料的種類儲存所述互斥或向量。
- 一種儲存於非暫態電腦可讀取的媒體的可執行軟體產品,所述可執行軟體產品包含用於解擾亂與擾亂資料的程式指令,所述資料是經由記憶體裝置的記憶體通道傳輸的資料,所述記憶體通道耦合至所述主機系統,所述程式指令用於:對所述記憶體裝置執行訓練模式以發現經所述主機系統使用的互斥或向量,以藉由下述方式擾亂所述資料:輸入所有零訓練資料至對於所述記憶體裝置的所有記憶位置的擾亂演算,所述擾亂演算以產生透過所述記憶體通道傳輸至所述記憶體裝置的經擾亂的訓練資料,以致所述經擾亂的訓練資料相等於對應於所述記憶位置的所述互斥或向量;藉由所述記憶體裝置透過所述記憶體通道自所述擾亂演算接收所述經擾亂的訓練資料,且對於對應的所述記憶位置的每一者儲存所述經擾亂的訓練資料作為所述互斥或向量;以及在所述訓練模式之後且在所述記憶體裝置的功能模式中,藉由所述記憶體裝置對於特定記憶位置透過所述記憶體通道接收經擾亂的資料,且使用對於所述特定記憶位置儲存的所述互斥或向量的一個互斥或向量,以在寫入至所述特定記憶位置之前解擾亂所述經擾亂的資料。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562158420P | 2015-05-07 | 2015-05-07 | |
US62/158,420 | 2015-05-07 | ||
US201562209166P | 2015-08-24 | 2015-08-24 | |
US62/209,166 | 2015-08-24 | ||
US15/064,191 US10121013B2 (en) | 2015-05-07 | 2016-03-08 | XOR-based scrambler/descrambler for SSD communication protocols |
US15/064,191 | 2016-03-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201706903A TW201706903A (zh) | 2017-02-16 |
TWI714579B true TWI714579B (zh) | 2021-01-01 |
Family
ID=57222715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105113696A TWI714579B (zh) | 2015-05-07 | 2016-05-03 | 用於解擾亂與擾亂資料的方法及其系統、以及可執行軟體產品 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10121013B2 (zh) |
JP (1) | JP6633967B2 (zh) |
KR (1) | KR102329307B1 (zh) |
CN (1) | CN106155584B (zh) |
TW (1) | TWI714579B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180270205A1 (en) * | 2017-03-15 | 2018-09-20 | Image Match Design Inc. | Fingerprint-sensing integrated circuit and scrambling encryption method thereof |
US20180308214A1 (en) * | 2017-04-21 | 2018-10-25 | Intel Corporation | Data scrambling mechanism |
CN107506326B (zh) * | 2017-07-05 | 2019-03-15 | 芯启源(南京)半导体科技有限公司 | 数据传输加扰和解扰电路、发送和接收装置及系统 |
KR102452621B1 (ko) * | 2018-06-04 | 2022-10-07 | 삼성전자주식회사 | 선형 피드백 쉬프트 레지스터를 이용하여 데이터를 복구하는 장치 및 이를 포함하는 데이터 송수신 시스템 |
CN109257088B (zh) * | 2018-08-14 | 2021-07-02 | 深圳市科楠科技开发有限公司 | 一种数据解扰系统及方法 |
US10956259B2 (en) * | 2019-01-18 | 2021-03-23 | Winbond Electronics Corp. | Error correction code memory device and codeword accessing method thereof |
WO2020181002A1 (en) * | 2019-03-05 | 2020-09-10 | Cryptography Research, Inc. | Side-channel-attack-resistant memory access on embedded central processing units |
CN110309678B (zh) * | 2019-06-28 | 2021-03-19 | 兆讯恒达科技股份有限公司 | 一种内存加扰的方法 |
CN110309083B (zh) * | 2019-06-28 | 2021-09-07 | 兆讯恒达科技股份有限公司 | 一种存储器数据加扰方法 |
CN110321672B (zh) * | 2019-06-28 | 2021-04-09 | 兆讯恒达科技股份有限公司 | 一种生成数据区扰码的方法 |
US11615025B2 (en) * | 2020-02-10 | 2023-03-28 | SK Hynix Inc. | Encoding and decoding device for system data of storage device |
KR20220009523A (ko) | 2020-07-15 | 2022-01-25 | 삼성전자주식회사 | 스토리지 컨트롤러, 및 스토리지 컨트롤러의 동작 방법 |
US11573854B2 (en) * | 2021-02-02 | 2023-02-07 | Nvidia Corporation | Techniques for data scrambling on a memory interface |
US20220253536A1 (en) * | 2021-02-05 | 2022-08-11 | Skyechip Sdn Bhd | Memory controller for improving data integrity and providing data security and a method of operating thereof |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060193395A1 (en) * | 2005-02-11 | 2006-08-31 | International Business Machines Corporation | Combined alignment scrambler function for elastic interface |
US7113927B1 (en) * | 1998-10-09 | 2006-09-26 | Victor Company Of Japan, Limited | Data distribution system, data distribution method, portable terminal with data receiving capability, portable terminal with data transmitting/receiving capability, recording medium onto which data content is recorded, encoding apparatus, and decoding apparatus |
TW201013417A (en) * | 2008-07-01 | 2010-04-01 | Ibm | Power-on initialization and test for a cascade interconnect memory system |
US20110157992A1 (en) * | 2006-12-06 | 2011-06-30 | Fusion-Io, Inc. | Apparatus, system, and method for biasing data in a solid-state storage device |
US20140310534A1 (en) * | 2013-04-15 | 2014-10-16 | Apple Inc. | Data scrambling in memory devices using combined sequences |
TW201506789A (zh) * | 2007-05-11 | 2015-02-16 | Nagrastar L L C | 交換用建立安全操作環境之上下文的方法及系統 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7227949B2 (en) * | 2002-01-31 | 2007-06-05 | Texas Instruments Incorporated | Separate self-synchronizing packet-based scrambler having replay variation |
US6933862B2 (en) * | 2003-10-14 | 2005-08-23 | Agilent Technologies, Inc. | Power consumption stabilization system and method |
JP4734906B2 (ja) * | 2004-12-07 | 2011-07-27 | ソニー株式会社 | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム |
KR100921774B1 (ko) * | 2007-12-06 | 2009-10-15 | 한국전자통신연구원 | 스크램블링 시퀀스 생성 장치 |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US9606863B2 (en) | 2010-10-25 | 2017-03-28 | SMART High Reliability Solutions, LLC | Fabric-based solid state drive architecture |
US8713379B2 (en) * | 2011-02-08 | 2014-04-29 | Diablo Technologies Inc. | System and method of interfacing co-processors and input/output devices via a main memory system |
US9575908B2 (en) | 2011-02-08 | 2017-02-21 | Diablo Technologies Inc. | System and method for unlocking additional functions of a module |
CN103918237B (zh) * | 2011-09-30 | 2018-03-06 | 英特尔公司 | 在高速通信链路的训练期间减小电源噪声的方法和系统 |
US8839073B2 (en) | 2012-05-04 | 2014-09-16 | Lsi Corporation | Zero-one balance management in a solid-state disk controller |
US9471484B2 (en) | 2012-09-19 | 2016-10-18 | Novachips Canada Inc. | Flash memory controller having dual mode pin-out |
US9099173B2 (en) | 2012-12-14 | 2015-08-04 | Virtium Technology, Inc. | Classifying flash devices using ECC |
US9246516B2 (en) | 2012-12-20 | 2016-01-26 | Intel Corporation | Techniques for error correction of encoded data |
CN103777904B (zh) * | 2014-02-12 | 2017-07-21 | 威盛电子股份有限公司 | 数据储存装置以及数据加扰与解扰方法 |
-
2016
- 2016-03-08 US US15/064,191 patent/US10121013B2/en active Active
- 2016-04-25 KR KR1020160050281A patent/KR102329307B1/ko active IP Right Grant
- 2016-05-03 TW TW105113696A patent/TWI714579B/zh active
- 2016-05-06 JP JP2016093038A patent/JP6633967B2/ja active Active
- 2016-05-09 CN CN201610302657.2A patent/CN106155584B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7113927B1 (en) * | 1998-10-09 | 2006-09-26 | Victor Company Of Japan, Limited | Data distribution system, data distribution method, portable terminal with data receiving capability, portable terminal with data transmitting/receiving capability, recording medium onto which data content is recorded, encoding apparatus, and decoding apparatus |
US20060193395A1 (en) * | 2005-02-11 | 2006-08-31 | International Business Machines Corporation | Combined alignment scrambler function for elastic interface |
US20110157992A1 (en) * | 2006-12-06 | 2011-06-30 | Fusion-Io, Inc. | Apparatus, system, and method for biasing data in a solid-state storage device |
TW201506789A (zh) * | 2007-05-11 | 2015-02-16 | Nagrastar L L C | 交換用建立安全操作環境之上下文的方法及系統 |
TW201013417A (en) * | 2008-07-01 | 2010-04-01 | Ibm | Power-on initialization and test for a cascade interconnect memory system |
US20140310534A1 (en) * | 2013-04-15 | 2014-10-16 | Apple Inc. | Data scrambling in memory devices using combined sequences |
Also Published As
Publication number | Publication date |
---|---|
US20160328567A1 (en) | 2016-11-10 |
JP2016213838A (ja) | 2016-12-15 |
US10121013B2 (en) | 2018-11-06 |
KR20160131892A (ko) | 2016-11-16 |
CN106155584A (zh) | 2016-11-23 |
KR102329307B1 (ko) | 2021-11-19 |
JP6633967B2 (ja) | 2020-01-22 |
TW201706903A (zh) | 2017-02-16 |
CN106155584B (zh) | 2020-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI714579B (zh) | 用於解擾亂與擾亂資料的方法及其系統、以及可執行軟體產品 | |
US8666064B2 (en) | Endecryptor capable of performing parallel processing and encryption/decryption method thereof | |
US10291390B2 (en) | Endecryptor preventing side channel attack, driving method thereof and control device having the same | |
US10372625B2 (en) | Secure memory | |
US9489540B2 (en) | Memory controller with encryption and decryption engine | |
TWI822783B (zh) | 包括具有改善記憶體使用效率的安全處理器的系統晶片與記憶體系統以及操作系統晶片的方法 | |
US20170046281A1 (en) | Address dependent data encryption | |
US11403174B2 (en) | Controller and memory system | |
US20150089245A1 (en) | Data storage in persistent memory | |
JP2010509690A (ja) | 記憶装置のセキュリティを確保する方法とシステム | |
US9270445B2 (en) | Solid state disk and input/output method | |
US8732436B2 (en) | Device for storing data by utilizing pseudorandom number sequence | |
JP2018077833A (ja) | Ddrバスを通じてdram内のecc情報を伝達する方法並びにこれを用いたデータチップ及びメモリコントローラ | |
US20190121557A1 (en) | Obfuscation-enhanced memory encryption | |
US9235532B2 (en) | Secure storage of full disk encryption keys | |
CN110008148B (zh) | 存储器控制器以及用于对存储模块进行访问控制的方法 | |
US11847209B2 (en) | Memory device and system | |
TWI659329B (zh) | 資料存取裝置及方法 | |
KR20180023079A (ko) | 반도체시스템 | |
CN113536331B (zh) | 存储器和计算系统的数据安全 | |
JP2018120365A (ja) | ファイル中継装置及びファイル中継プログラム | |
US20160202314A1 (en) | Test circuit and method of semiconductor device |