[go: up one dir, main page]

WO2011000177A1 - Data storage device and method for data access - Google Patents

Data storage device and method for data access Download PDF

Info

Publication number
WO2011000177A1
WO2011000177A1 PCT/CN2009/073171 CN2009073171W WO2011000177A1 WO 2011000177 A1 WO2011000177 A1 WO 2011000177A1 CN 2009073171 W CN2009073171 W CN 2009073171W WO 2011000177 A1 WO2011000177 A1 WO 2011000177A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
scrambled
memory
error correction
correction code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2009/073171
Other languages
French (fr)
Chinese (zh)
Inventor
杨宗杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of WO2011000177A1 publication Critical patent/WO2011000177A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to memory, and more particularly to data access to a memory. Background technique
  • the controller of the memory Before the data is stored in the memory, the controller of the memory usually processes the data with the scrambler in advance, so that bit 0 and bit 1 in the processed data are randomly distributed, and the processed data is stored in the memory. This avoids the excessive concentration of bit 0 or bit 1 in the data stored in the memory and affects data storage.
  • flash memory can be divided into single-level cell (SLC) and multi-level cell (MLC).
  • SLC single-level cell
  • MLC multi-level cell
  • the controller of the multi-level cell flash memory must previously use the scrambler to process the data that needs to be stored to the multi-level cell flash memory.
  • data processed by the scrambler has other drawbacks.
  • the controller transfers data to the memory by the data bus.
  • the data transmitted by the controller is bit 1
  • the potential of the data bus is raised to a logic high level
  • the data transmitted by the controller is bit 0, the potential of the data bus drops to a logic low level.
  • bit 0 or bit 1 carried by the data processed by the scrambler is randomly distributed, when the controller transfers the data to the memory for storage by the data bus, the potential on the data bus is frequently switched by the logic high potential. It is logic low or it is switched from logic low to logic high. Frequent switching of potentials causes the data bus to consume additional energy when transmitting data, thereby increasing the power consumption of the system.
  • the system including the controller and the memory is a portable device
  • the portable device since the portable device is usually powered by a battery, the high power consumption required for storing the data reduces the time the system can operate under a fixed amount of power, thereby making the system performance decline. Therefore, there is a need for a controller that can reduce the power consumption required to transfer data to a memory while processing data that needs to be stored to the memory with a scrambler to improve system performance.
  • the data storage device includes a memory and a controller.
  • the memory is used to store data.
  • the controller receives a first raw data for writing to the memory from a host, the controller generates at least one first input data according to the first original data, and respectively scrambles the plurality of random sequences according to the plurality of random sequences.
  • An optimally disturbing data of the transmission power is stored in the memory.
  • the invention also provides a data access method.
  • a data access method When receiving a first raw data for writing to a memory from a host, first generating at least one first input data based on the first original data. Then, the first input data is separately disturbed according to a plurality of random sequences to obtain a plurality of first scrambled data. Next, a plurality of transmission powers of the plurality of first scrambled data are calculated. Then, an optimal scrambled data having the smallest transmission power is selected from the plurality of first scrambled data for storage in the memory according to the plurality of transmission powers.
  • the controller according to the present invention can previously disturb the input data with a plurality of sets of random sequences, and then evaluate the transmission power required for each of the scrambled data to select the scrambled data having the lowest transmission power for transmission to the memory storage. Therefore, the memory controller of the present invention can reduce the power consumption of the system for data transmission, thereby improving system performance.
  • FIG. 1 is a schematic structural view of a data storage device according to the present invention.
  • FIG. 2 is a schematic structural diagram of a write data processing circuit of a controller according to the present invention
  • FIG. 3 is a flow chart of a method for processing write data according to the present invention
  • FIG. 4 is a schematic structural diagram of a part of a circuit of a transmission power calculation module according to the present invention
  • Figure 5 is a block diagram showing the structure of the read data processing circuit of the controller according to the present invention
  • Figure 6 is a flow chart showing the processing of the read data of the memory in accordance with the present invention
  • Figure 7 is a process write according to the present invention.
  • 500 is a controller; 502 is an error correction code decoder; 504 is an index separation module; 506 is a selector; 508 is a descrambler. detailed description
  • FIG. 1 is a block diagram showing the structure of a data storage device 104 in accordance with the present invention.
  • the data storage device 104 is coupled to a host 102 for storing data for the host 102 in accordance with instructions from the host 102.
  • data storage device 104 includes controller 112 and memory 114.
  • the memory 114 is used to store data, and the controller 112 accesses the data stored in the memory 114 for the host 102 in accordance with the instructions of the host 102.
  • a data bus is coupled between the controller 112 and the memory 114 for data transfer.
  • the controller 112 when the host 102 needs to store data 0 to the data storage device 104, the controller 112 first receives the data D 1 from the host 102 and then converts the data into an error correction code d (including the data portion and the check code portion), and then The error correction code is passed to memory 114 for storage.
  • the controller 112 When the host 102 needs to read data from the data storage device 104, the controller 112 first instructs the memory 114 to read the error correction code C 2 , then restores the error correction code C 2 to the data D 2 , and finally transmits the data D 2 to Host 102.
  • the controller 112 Before the controller 112 needs to store the data in the memory, it will disturb the bits 0 and 1 of the data, so that the bits 0 and 1 of the disturbed data are randomly distributed, and the transmission power of the data after the disturbance is reduced, thereby generating error correction.
  • the data bus transfers the error correction code from the controller 112 to the memory 114, the transmission power consumed by the data bus can be reduced.
  • the error correction code C 2 is stored in a data bit type that reduces the transmission power.
  • the data bus transmits the error correction code C 2 from the memory 114 to the controller 112
  • the transmission power consumed by the data bus can be reduced. Therefore, the data storage device 104 consumes less power than the existing device, and thus has higher performance than the existing device.
  • FIG. 2 is a block diagram showing the structure of a write data processing circuit of the controller 200 in accordance with the present invention. It is to be noted that, in order to embody the technical features of the present invention, FIG. 2 shows only the components related to the present invention, and the remaining common components are omitted.
  • the controller 200 includes a plurality of scramblers 201, 202, ..., 20N, a transmission power calculation module 212, a selector 214, an index addition module 216, and an error correction code encoder 218.
  • 3 is a flow diagram of a method 300 of processing write data in accordance with the present invention. The controller 200 of FIG. 2 processes data that the host needs to write to the memory in accordance with the method 300 of FIG.
  • the controller 200 receives a raw data for writing to the memory by the host (step 302).
  • the scramblers 201, 202, ..., 20N respectively scramble the original data according to the plurality of random sequences M 2 , ..., MN to obtain a plurality of scrambling data S 2 , ..., S N (step 304).
  • the scramblers 201, 202, ..., 20N respectively perform XOR operations on the original data 1 ⁇ and the plurality of random sequences Mi, M 2 , I, M N bit by bit to obtain a plurality of Disturb the data Si, S 2 , ..., S N .
  • the bits 0 and 1 of the disturbed data Si, S 2 , ..., S N are not excessively concentrated and appear randomly distributed, the bits of the memory can be made when the scrambled data Si, S 2 , ..., S N are stored in the memory. The error rate drops.
  • the transmission power calculation module 212 calculates a plurality of transmission powers required for transmission of the plurality of scrambling data S 2 , ..., S N on the data bus (step 306).
  • the transmission power calculation module 212 selects an optimal scrambling data having the minimum transmission power from the scrambling data Si, S 2 , ..., S N ⁇ according to the plurality of transmission powers (step 308), and outputs corresponding to the minimum transmission power.
  • the index L of the random sequence In one embodiment, the number of random sequences M 2 , ..., ⁇ 1 ⁇ 2 is N, and the number of bits of the index L is greater than or equal to Log 2 N.
  • the selector 214 selects the best scrambling data J 1 D having the minimum transmission power from the scrambling data S 2 , ..., 8 1 ⁇ according to the index ⁇ , and the index appending module 216 will correspond to the optimal scrambling data.
  • An index L of the random sequence is appended to the best scrambled data to obtain an output data (step 310).
  • the error correction code encoder 218 encodes the output data into an error correction code d for output to the memory for storage (step 312).
  • the error correction code except for the data part of the check code and the additional index ⁇ , it is the same as the data data bit of the best scramble data, so when the controller 200 transmits the error correction code to the memory from the data bus, the data bus The power consumption of the transmission can be significantly reduced.
  • a portion of the circuitry of the transmit power calculation module 400 includes a delay unit 402, an XOR unit 404, and a counter 406. It is assumed that the transmission power calculation module 400 receives a scrambled data S k from a scrambler, and the index K may be 1 to N.
  • the delay unit 402 delays the scrambled data S k by one clock interval according to a clock signal CLK to obtain the delay data S k '.
  • the XOR unit 404 performs an XOR operation on the scrambled data S k and the delayed data S k ' to obtain a transition data T, where the scrambled data S k changes from bit 0 to bit 1 or bit 1 When bit 0, the corresponding bit value of the converted data T is 1.
  • the counter 406 accumulates the number of times of the converted data T to obtain the transmission power CN. Therefore, the transmission power CN records the switching frequency of the scrambled data Sk from bit 0 to bit 1 or from bit 1 to bit 0. When the scrambling data S k CN higher switching frequencies, scrambling the data bus power required data S k are greater.
  • FIG. 5 is a block diagram showing the structure of a read data processing circuit of the controller 500 according to the present invention.
  • the controller 500 includes an error correction code decoder 502, an index separation module 504, a selector 506, and a descrambler 508.
  • 6 is a flow diagram of a method 600 of processing memory for processing memory in accordance with the present invention.
  • the controller 500 of FIG. 5 processes the read data of the memory according to the method 600, and transfers the processed data to the host.
  • the controller 500 receives a read command from the host, it instructs the memory to read an error correction code C 2 in accordance with the read command.
  • the error correction code decoder 502 decodes the error correction code C 2 to obtain an output data K 2 (step 602).
  • the separation module 504 ⁇ 2 index to extract index of a random sequence of the output data 12, and a data scrambling J 2 (step 604).
  • the selector 506 selects a descrambled random sequence M* corresponding to the index 1 2 from the plurality of random sequences M 2 , ..., M N according to the index 1 2 (step 606).
  • the descrambler 508 descrambles the scrambled data J 2 according to the descrambled random sequence M* to restore a raw data 126 (step 608).
  • the descrambler 508 disturbs the random sequence M*
  • the XOR operation is performed bit by bit with the scrambled data J 2 to obtain the original data D 2 .
  • the controller 500 outputs the original data 0 2 to the host to complete the reading operation of the data.
  • FIG. 7 is a schematic diagram of another embodiment of a method of processing write data in accordance with the present invention. It is assumed that the controller receives the original data D that needs to be written to the memory from the host as shown in (a) of FIG. According to the method 300 of processing the write data of FIG. 3, the controller will raw data. 1 is converted to the scrambled data having the minimum transmission power shown in (b) of FIG. 7, and the index K 1N for processing the random sequence of the scrambled data and the check code obtained by the error correction coding are added to the back end of the scrambled data ⁇ , and get the error correction code. However, for processing the original data D, a plurality of random sequences M 2 , ..., M N have the same data as the original data.
  • the same data length, and the scrambled data Si, S 2 , ..., S N generated by the scramblers 201, 202, ..., 20N also have the same data length as the original data. Since the controller 200 executing the method 300 requires multiple buffers with a large amount of storage to store random sequences
  • the controller 200 requires a lot of hardware cost to include multiple buffers.
  • the controller will raw data in advance! ⁇ [For example, the length of the original data is one data page (page)) is divided into a plurality of segment data ⁇ ⁇ , ⁇ 12 , . . . , D 1N as shown in (c) of FIG. 7 . Therefore, the length of each of the extent data Du, D 12 , ..., D 1N is only 1/N of the length of the original data 0 1 . Then, the controller sequentially converts the segment data Du, D 12 , . . . , D 1N into the scrambled data Jn, J 12 , and J 1N having the minimum transmission power shown in (d) of FIG. 7 . (d) of 7.
  • the data lengths of M 2 , - , M N and the scrambling data S 2 , - , S N also correspondingly become 1/N, so the controller is required to store the random sequences M 2 , ..., M N and the scrambling data S
  • the length (storage) of the buffers of 2 , ..., S N thus becomes 1/N, thereby reducing the hardware cost of the controller including the multiple buffers.
  • the scrambling operation and the error correction code encoding need to be performed in parallel to save operating time.
  • the scramblers 201, 202, ..., 20N need to be scrambled for the sector data D 13 and then selected by the transmission power calculation module 212 and the selector 214.
  • the disturbance data J 13 with the smallest transmission power is output.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Stored Programmes (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

The present invention provides a data storage device and a method for data access. The method includes: when a first original data which is provided to be written in the storage is received from a host computer, firstly, at least a first inputting data is generated according to the first original data. Then, the first inputting data is respectively scrambled according to multiple random sequences to obtain multiple first scrambled data. Then, multiple transmission powers of the multiple first scrambled data are calculated. Then, the optimal scrambled data with the minimum transmission power is selected from the multiple first scrambled data according to the multiple transmission powers to be stored in the storage.

Description

说明书 数据储存装置以及数据存取方法 技术领域  Data storage device and data access method

本发明涉及存储器, 特别是涉及存储器的数据存取。 背景技术  The present invention relates to memory, and more particularly to data access to a memory. Background technique

当数据被储存至存储器前, 存储器的控制器通常会事先用扰乱器处理该 数据, 使处理后的数据中的位 0与位 1呈现随机分布, 再将处理后的数据储 存至存储器。 这样便可以避免存储器中储存的数据所带有的位 0或位 1过度 集中,而影响数据储存。举例来说,闪存可分为单层单元闪存 (single-level cell, SLC)与多层单元闪存 (multi-level cell, MLC)。 当数据储存于多层单元闪存时, 若数据所带有的位 0或位 1过度集中, 会提高所储存的数据的位错误率。 因 此, 多层单元闪存的控制器必须事先用扰乱器处理需要储存至多层单元闪存 的数据。  Before the data is stored in the memory, the controller of the memory usually processes the data with the scrambler in advance, so that bit 0 and bit 1 in the processed data are randomly distributed, and the processed data is stored in the memory. This avoids the excessive concentration of bit 0 or bit 1 in the data stored in the memory and affects data storage. For example, flash memory can be divided into single-level cell (SLC) and multi-level cell (MLC). When data is stored in the multi-level cell flash memory, if bit 0 or bit 1 of the data is excessively concentrated, the bit error rate of the stored data is increased. Therefore, the controller of the multi-level cell flash memory must previously use the scrambler to process the data that needs to be stored to the multi-level cell flash memory.

然而, 以扰乱器处理过的数据有其它的缺点。 一般而言, 控制器是由数 据总线将数据传送至存储器。 当控制器所传送的数据为位 1时, 数据总线的 电位提高至逻辑高电位; 而当控制器所传送的数据为位 0时, 数据总线的电 位下降至逻辑低电位。 由于以扰乱器处理过的数据所带有的位 0或位 1呈现 随机分布, 当控制器以数据总线将该数据传送至存储器供储存时, 数据总线 上的电位会频繁的由逻辑高电位切换为逻辑低电位, 或者由逻辑低电位切换 为逻辑高电位。 电位频繁的反复切换使得数据总线在传送数据时耗费额外的 能量, 从而使系统的耗电量提高。 当包含控制器与存储器的系统为可携带性 装置时, 由于可携带性装置通常用电池供电, 储存数据所需的高耗电量会减 少系统在固定电量下可操作的时间, 从而使系统性能下降。 因此, 需要一种 控制器, 可在用扰乱器处理需要储存至存储器的数据时, 一并使得数据传送 至存储器所需的耗能下降, 以提升系统性能。 发明内容 However, data processed by the scrambler has other drawbacks. In general, the controller transfers data to the memory by the data bus. When the data transmitted by the controller is bit 1, the potential of the data bus is raised to a logic high level; and when the data transmitted by the controller is bit 0, the potential of the data bus drops to a logic low level. Since bit 0 or bit 1 carried by the data processed by the scrambler is randomly distributed, when the controller transfers the data to the memory for storage by the data bus, the potential on the data bus is frequently switched by the logic high potential. It is logic low or it is switched from logic low to logic high. Frequent switching of potentials causes the data bus to consume additional energy when transmitting data, thereby increasing the power consumption of the system. When the system including the controller and the memory is a portable device, since the portable device is usually powered by a battery, the high power consumption required for storing the data reduces the time the system can operate under a fixed amount of power, thereby making the system performance decline. Therefore, there is a need for a controller that can reduce the power consumption required to transfer data to a memory while processing data that needs to be stored to the memory with a scrambler to improve system performance. Summary of the invention

因此, 本发明的目的在于提供一种数据储存装置, 以解决现有技术存在 的问题。 在其中一个实施例中, 所述数据储存装置包括一存储器以及一控制 器。 所述存储器用于储存数据。 当所述控制器从一主机接收供写入所述存储 器的一第一原始数据时, 所述控制器依据所述第一原始数据产生至少一第一 输入数据, 依据多个随机序列分别扰乱所述第一输入数据以得到多个第一扰 乱数据, 计算所述多个第一扰乱数据的多个传输功率, 以及依据所述多个传 输功率从所述多个第一扰乱数据中选取具有最小传输功率的一最佳扰乱数据 以供储存于所述存储器中。  Accordingly, it is an object of the present invention to provide a data storage device that solves the problems of the prior art. In one of the embodiments, the data storage device includes a memory and a controller. The memory is used to store data. When the controller receives a first raw data for writing to the memory from a host, the controller generates at least one first input data according to the first original data, and respectively scrambles the plurality of random sequences according to the plurality of random sequences. Decoding a first input data to obtain a plurality of first scrambling data, calculating a plurality of transmission powers of the plurality of first scrambling data, and selecting a minimum from the plurality of first scrambling data according to the plurality of transmission powers An optimally disturbing data of the transmission power is stored in the memory.

本发明还提供一种数据存取方法。 当从一主机接收供写入一存储器的一 第一原始数据时, 首先依据所述第一原始数据产生至少一第一输入数据。 接 着, 依据多个随机序列分别扰乱所述第一输入数据, 以得到多个第一扰乱数 据。 接着, 计算所述多个第一扰乱数据的多个传输功率。 接着, 依据所述多 个传输功率从所述多个第一扰乱数据中选取具有最小传输功率的一最佳扰乱 数据, 以供储存于所述存储器中。  The invention also provides a data access method. When receiving a first raw data for writing to a memory from a host, first generating at least one first input data based on the first original data. Then, the first input data is separately disturbed according to a plurality of random sequences to obtain a plurality of first scrambled data. Next, a plurality of transmission powers of the plurality of first scrambled data are calculated. Then, an optimal scrambled data having the smallest transmission power is selected from the plurality of first scrambled data for storage in the memory according to the plurality of transmission powers.

依据本发明的控制器可事先用多组随机序列分别扰乱输入数据, 再评估 各扰乱后数据所需的传输功率, 以选取具有最低传输功率的扰乱数据供传送 至存储器储存。 因此, 本发明的存储器控制器可使系统用于数据传输的耗能 下降, 从而提升系统效能。  The controller according to the present invention can previously disturb the input data with a plurality of sets of random sequences, and then evaluate the transmission power required for each of the scrambled data to select the scrambled data having the lowest transmission power for transmission to the memory storage. Therefore, the memory controller of the present invention can reduce the power consumption of the system for data transmission, thereby improving system performance.

为了使本发明的上述和其它目的、 特征和优点更加明显易懂, 下文列举 多个较佳实施例, 并结合附图进行详细说明。 附图说明  The above and other objects, features and advantages of the present invention will become more < DRAWINGS

图 1为依据本发明的数据储存装置的结构示意图;  1 is a schematic structural view of a data storage device according to the present invention;

图 2为依据本发明的控制器的写入数据处理电路的结构示意图; 图 3为依据本发明的处理写入数据的方法的流程图;  2 is a schematic structural diagram of a write data processing circuit of a controller according to the present invention; and FIG. 3 is a flow chart of a method for processing write data according to the present invention;

图 4为依据本发明的传输功率计算模块的部分电路的结构示意图; 图 5为依据本发明的控制器的读出数据处理电路的结构示意图; 图 6为依据本发明的处理存储器的读出数据的方¾^的流程图; 以及 图 7为依据本发明的处理写入数据的方法的另一实施例的示意图。 4 is a schematic structural diagram of a part of a circuit of a transmission power calculation module according to the present invention; Figure 5 is a block diagram showing the structure of the read data processing circuit of the controller according to the present invention; Figure 6 is a flow chart showing the processing of the read data of the memory in accordance with the present invention; and Figure 7 is a process write according to the present invention. A schematic diagram of another embodiment of a method of entering data.

【主要组件符号说明】  [Main component symbol description]

102是主机; 104是数据储存装置; 112是控制器; 114是存储器; 200是控制器; 201, 202,···, 20N是扰乱器; 214是选择器; 212是传输 功率计算模块; 216是索引附加模块; 218是错误修正码编码器;  102 is a host; 104 is a data storage device; 112 is a controller; 114 is a memory; 200 is a controller; 201, 202, ..., 20N is a scrambler; 214 is a selector; 212 is a transmission power calculation module; Is an index add-on module; 218 is an error correction code encoder;

400是传输功率计算模块; 402是延迟单元; 404是 XOR单元; 406是 计数器;  400 is a transmission power calculation module; 402 is a delay unit; 404 is an XOR unit; 406 is a counter;

500是控制器; 502是错误修正码解码器; 504是索引分离模块; 506是 选择器; 508是解扰乱器。 具体实施方式  500 is a controller; 502 is an error correction code decoder; 504 is an index separation module; 506 is a selector; 508 is a descrambler. detailed description

图 1为依据本发明的数据储存装置 104的结构示意图。数据储存装置 104 连接至一主机 102, 依据主机 102的指示为主机 102储存数据。 在其中一实 施例中, 数据储存装置 104包括控制器 112以及存储器 114。 存储器 114用 于储存数据, 而控制器 112依据主机 102的指示为主机 102存取存储器 114 中储存的数据。 在其中一实施例中, 控制器 112与存储器 114之间连接一数 据总线以供数据传输。举例来说, 当主机 102需储存数据 0至数据储存装置 104时,控制器 112先从主机 102接收数据 D1 接着将数据 转换为错误修 正码 d (包含数据部分及检查码部分),再将错误修正码 传送至存储器 114 供储存。 当主机 102需要由数据储存装置 104读取数据时, 控制器 112先指 示存储器 114读取错误修正码 C2, 接着将错误修正码 C2还原为数据 D2, 最 后再将数据 D2传送至主机 102。 1 is a block diagram showing the structure of a data storage device 104 in accordance with the present invention. The data storage device 104 is coupled to a host 102 for storing data for the host 102 in accordance with instructions from the host 102. In one embodiment, data storage device 104 includes controller 112 and memory 114. The memory 114 is used to store data, and the controller 112 accesses the data stored in the memory 114 for the host 102 in accordance with the instructions of the host 102. In one embodiment, a data bus is coupled between the controller 112 and the memory 114 for data transfer. For example, when the host 102 needs to store data 0 to the data storage device 104, the controller 112 first receives the data D 1 from the host 102 and then converts the data into an error correction code d (including the data portion and the check code portion), and then The error correction code is passed to memory 114 for storage. When the host 102 needs to read data from the data storage device 104, the controller 112 first instructs the memory 114 to read the error correction code C 2 , then restores the error correction code C 2 to the data D 2 , and finally transmits the data D 2 to Host 102.

当控制器 112需要将数据 存入存储器之前, 会扰乱数据 的位 0与 1,以使扰乱后数据的位 0与 1呈随机分布,同时减少扰乱后数据的传输功率, 再由此产生错误修正码 这样, 当数据总线将错误修正码 ^由控制器 112 传送至存储器 114时, 便可减少数据总线所耗费的传输功率。 同样的, 由于 错误修正码 C2是以减低传输功率的数据位型式储存,当数据总线将错误修正 码 C2由存储器 114传送至控制器 112时,便可减少数据总线所耗费的传输功 率。 因此, 数据储存装置 104与现有装置相比损耗较少的电能, 因而与现有 装置相比, 具有较高的效能。 Before the controller 112 needs to store the data in the memory, it will disturb the bits 0 and 1 of the data, so that the bits 0 and 1 of the disturbed data are randomly distributed, and the transmission power of the data after the disturbance is reduced, thereby generating error correction. Thus, when the data bus transfers the error correction code from the controller 112 to the memory 114, the transmission power consumed by the data bus can be reduced. The same, because The error correction code C 2 is stored in a data bit type that reduces the transmission power. When the data bus transmits the error correction code C 2 from the memory 114 to the controller 112, the transmission power consumed by the data bus can be reduced. Therefore, the data storage device 104 consumes less power than the existing device, and thus has higher performance than the existing device.

图 2为依据本发明的控制器 200的写入数据处理电路的结构示意图。 请 注意到, 为体现本发明的技术特征, 图 2仅显示与本发明有关的组件, 而其 余常用组件省略。 在其中一实施例中, 控制器 200 包括多个扰乱器 201、 202、 …、 20N, 传输功率计算模块 212, 选择器 214, 索引附加模块 216, 以 及错误修正码编码器 218。 图 3为依据本发明的处理写入数据的方法 300的 流程图。 图 2的控制器 200依据图 3的方法 300来处理主机需要写入存储器 的数据。 首先, 控制器 200由主机接收供写入存储器的一原始数据 (步骤 302)。 接着, 扰乱器 201、 202、 …、 20N依据多个随机序列 M2、 …、 MN分别扰乱该原始数据 以得到多个扰乱数据 S2、…、 SN (步骤 304)。 在其中一实施例中, 扰乱器 201、 202、 …、 20N分别对该原始资料 1^与多 个随机序列 Mi、 M2、 一、 MN逐位地进行异或 XOR运算, 以得到多个扰乱 数据 Si、 S2、 …、 SN。 由于扰乱数据 Si、 S2、 …、 SN的位 0与位 1不会过度 集中而呈现随机分布, 因此当扰乱数据 Si、 S2,…、 SN储存于存储器中时可 使存储器的位错误率下降。 2 is a block diagram showing the structure of a write data processing circuit of the controller 200 in accordance with the present invention. It is to be noted that, in order to embody the technical features of the present invention, FIG. 2 shows only the components related to the present invention, and the remaining common components are omitted. In one embodiment, the controller 200 includes a plurality of scramblers 201, 202, ..., 20N, a transmission power calculation module 212, a selector 214, an index addition module 216, and an error correction code encoder 218. 3 is a flow diagram of a method 300 of processing write data in accordance with the present invention. The controller 200 of FIG. 2 processes data that the host needs to write to the memory in accordance with the method 300 of FIG. First, the controller 200 receives a raw data for writing to the memory by the host (step 302). Next, the scramblers 201, 202, ..., 20N respectively scramble the original data according to the plurality of random sequences M 2 , ..., MN to obtain a plurality of scrambling data S 2 , ..., S N (step 304). In one embodiment, the scramblers 201, 202, ..., 20N respectively perform XOR operations on the original data 1^ and the plurality of random sequences Mi, M 2 , I, M N bit by bit to obtain a plurality of Disturb the data Si, S 2 , ..., S N . Since the bits 0 and 1 of the disturbed data Si, S 2 , ..., S N are not excessively concentrated and appear randomly distributed, the bits of the memory can be made when the scrambled data Si, S 2 , ..., S N are stored in the memory. The error rate drops.

接着, 传输功率计算模块 212计算多个扰乱数据 S2、 …、 SN在数据 总线上传输时所需的多个传输功率 (步骤 306)。 接着, 传输功率计算模块 212 依据多个传输功率从扰乱数据 Si、 S2、 …、 SN ÷选取具有最小传输功率的一 最佳扰乱数据 (歩骤 308), 并输出对应于该最小传输功率的随机序列的索引 L。 在其中一实施例中, 随机序列 M2、 …、 ^½的数目为 N, 而索引 L 的位数大于或等于 Log2N。 接着, 选择器 214依据该索引 ^从扰乱数据 S2、 …、 81^中选取具有该最小传输功率的最佳扰乱数据 J1 D 接着, 索引附加 模块 216将对应于该最佳扰乱数据的随机序列的索引 L附加至该最佳扰乱数 据, 以得到一输出数据 (歩骤 310)。 最后, 错误修正码编码器 218将该输 出数据 编码为一错误修正码 d, 以供输出至存储器供储存 (步骤 312)。 由 于错误修正码 中除了检查码 (parity)与附加的索引 ^的数据部分外,均与最 佳扰乱数据 J 数据位相同, 因此当控制器 200由数据总线传输错误修正码 至存储器时, 数据总线耗费的传输功率可显著的下降。 Next, the transmission power calculation module 212 calculates a plurality of transmission powers required for transmission of the plurality of scrambling data S 2 , ..., S N on the data bus (step 306). Next, the transmission power calculation module 212 selects an optimal scrambling data having the minimum transmission power from the scrambling data Si, S 2 , ..., S N依据 according to the plurality of transmission powers (step 308), and outputs corresponding to the minimum transmission power. The index L of the random sequence. In one embodiment, the number of random sequences M 2 , ..., ^1⁄2 is N, and the number of bits of the index L is greater than or equal to Log 2 N. Next, the selector 214 selects the best scrambling data J 1 D having the minimum transmission power from the scrambling data S 2 , ..., 8 1 ^ according to the index ^, and the index appending module 216 will correspond to the optimal scrambling data. An index L of the random sequence is appended to the best scrambled data to obtain an output data (step 310). Finally, the error correction code encoder 218 encodes the output data into an error correction code d for output to the memory for storage (step 312). By In the error correction code, except for the data part of the check code and the additional index ^, it is the same as the data data bit of the best scramble data, so when the controller 200 transmits the error correction code to the memory from the data bus, the data bus The power consumption of the transmission can be significantly reduced.

图 4为依据本发明的传输功率计算模块 400的部分电路的结构示意图。 传输功率计算模块 400的部分电路包括延迟单元 402、 XOR单元 404、 以及 计数器 406。 假设传输功率计算模块 400从一扰乱器接收到一扰乱数据 Sk, 索引 K可为 1~N。 延迟单元 402依据一时钟信号 CLK将扰乱数据 Sk延迟一 时钟间隔以得到延迟数据 Sk'。 接着, XOR单元 404对扰乱数据 Sk与延迟数 据 Sk'进行 XOR运算, 以得到一转换 (transition)数据 T, 其中每当该扰乱数据 Sk由位 0变为位 1或由位 1变为位 0时, 该转换数据 T的对应位值为 1。 接 着, 计数器 406累计该转换数据 T的次数, 以得到传输功率 CN。 因此, 传 输功率 CN纪录了扰乱数据 Sk的由位 0变为位 1或由位 1变为位 0的转换频 率。当扰乱数据 Sk的转换频率 CN愈高时,数据总线传送扰乱数据 Sk所需的 功率也愈大。 4 is a block diagram showing the structure of a portion of the circuit of the transmission power calculation module 400 in accordance with the present invention. A portion of the circuitry of the transmit power calculation module 400 includes a delay unit 402, an XOR unit 404, and a counter 406. It is assumed that the transmission power calculation module 400 receives a scrambled data S k from a scrambler, and the index K may be 1 to N. The delay unit 402 delays the scrambled data S k by one clock interval according to a clock signal CLK to obtain the delay data S k '. Next, the XOR unit 404 performs an XOR operation on the scrambled data S k and the delayed data S k ' to obtain a transition data T, where the scrambled data S k changes from bit 0 to bit 1 or bit 1 When bit 0, the corresponding bit value of the converted data T is 1. Next, the counter 406 accumulates the number of times of the converted data T to obtain the transmission power CN. Therefore, the transmission power CN records the switching frequency of the scrambled data Sk from bit 0 to bit 1 or from bit 1 to bit 0. When the scrambling data S k CN higher switching frequencies, scrambling the data bus power required data S k are greater.

图 5为依据本发明的控制器 500的读出数据处理电路的结构示意图。 在 其中一实施例中,控制器 500包括错误修正码解码器 502、索引分离模块 504、 选择器 506、以及解扰乱器 508。图 6为依据本发明的处理存储器的读出数据 的方法 600的流程图。 图 5的控制器 500依据方法 600处理存储器的读出数 据, 再将处理后的数据传送至主机。 首先, 当控制器 500从主机收到一读取 命令, 便依据读取命令指示存储器读取一错误修正码 C2。 当控制器 500从存 储器收到错误修正码 C2后, 错误修正码解码器 502便将错误修正码 C2解码 得到一输出数据 K2 (步骤 602)。 FIG. 5 is a block diagram showing the structure of a read data processing circuit of the controller 500 according to the present invention. In one embodiment, the controller 500 includes an error correction code decoder 502, an index separation module 504, a selector 506, and a descrambler 508. 6 is a flow diagram of a method 600 of processing memory for processing memory in accordance with the present invention. The controller 500 of FIG. 5 processes the read data of the memory according to the method 600, and transfers the processed data to the host. First, when the controller 500 receives a read command from the host, it instructs the memory to read an error correction code C 2 in accordance with the read command. When the controller 500 receives the error correction code C 2 from the memory, the error correction code decoder 502 decodes the error correction code C 2 to obtain an output data K 2 (step 602).

接着, 由于输出数据 Κ2包含扰乱数据及随机序列的索引两部分, 索引 分离模块 504 从该输出数据 Κ2取出一随机序列的索引 12以及一扰乱数据 J2(步骤 604)。 接着, 选择器 506依据该索引 12从多个随机序列 M2、 …、 MN选取与该索引 12相对应的一解扰乱随机序列 M* (步骤 606)。 接着, 解扰 乱器 508依据该解扰乱随机序列 M*解扰乱该扰乱数据 J2, 以还原一原始数 据1¾ (步骤 608)。在其中一实施例中, 解扰乱器 508对该解扰乱随机序列 M* 与该扰乱数据 J2逐位地进行 XOR运算, 以得到原始数据 D2。 最后, 控制器 500输出该原始数据 02至主机, 以完成数据的读取动作。 Next, since the output data is data scrambling Κ 2 contains random sequence index and the two parts, the separation module 504 Κ 2 index to extract index of a random sequence of the output data 12, and a data scrambling J 2 (step 604). Next, the selector 506 selects a descrambled random sequence M* corresponding to the index 1 2 from the plurality of random sequences M 2 , ..., M N according to the index 1 2 (step 606). Next, the descrambler 508 descrambles the scrambled data J 2 according to the descrambled random sequence M* to restore a raw data 126 (step 608). In one embodiment, the descrambler 508 disturbs the random sequence M* The XOR operation is performed bit by bit with the scrambled data J 2 to obtain the original data D 2 . Finally, the controller 500 outputs the original data 0 2 to the host to complete the reading operation of the data.

7为依据本发明的处理写入数据的方法的另一实施例的示意图。 假设 控制器从主机收到需要写入存储器的原始数据 D 如图 7的 (a)所示。依据图 3的处理写入数据的方法 300, 控制器会将原始数据。1转换为图 7的 (b)中所 示的具有最小传输功率的扰乱数据 再将用于处理扰乱数据 的随机序列 的索引 K1N及错误修正编码所得的检查码附加于扰乱数据 ^的后端, 而得到 错误修正码 。 然而, 用于处理原始数据 D 多个随机序列 M2、 …、 MN具有与原始数据。 同样的数据长度, 而扰乱器 201、 202、 …、 20N所产 生的扰乱数据 Si、 S2、 …、 SN亦具有与原始数据 同样的数据长度。 由于 执行方法 300 的控制器 200 需要多个储存量较大的缓存器以储存随机序列 7 is a schematic diagram of another embodiment of a method of processing write data in accordance with the present invention. It is assumed that the controller receives the original data D that needs to be written to the memory from the host as shown in (a) of FIG. According to the method 300 of processing the write data of FIG. 3, the controller will raw data. 1 is converted to the scrambled data having the minimum transmission power shown in (b) of FIG. 7, and the index K 1N for processing the random sequence of the scrambled data and the check code obtained by the error correction coding are added to the back end of the scrambled data ^ , and get the error correction code. However, for processing the original data D, a plurality of random sequences M 2 , ..., M N have the same data as the original data. The same data length, and the scrambled data Si, S 2 , ..., S N generated by the scramblers 201, 202, ..., 20N also have the same data length as the original data. Since the controller 200 executing the method 300 requires multiple buffers with a large amount of storage to store random sequences

M2、 …、 MN及扰乱数据 Si、 S2、 …、 SN, 控制器 200需要耗费较多的 硬件成本以包含多个缓存器。 M 2 , ..., M N and the scrambled data Si, S 2 , ..., S N , the controller 200 requires a lot of hardware cost to include multiple buffers.

在处理写入数据的方法的另一实施例中, 控制器事先将原始数据!^〔例 如原始数据 的长度为一个数据页 (page) )划分为多个区段数据 Οη、ϋ12、···、 D1N, 如图 7的 (c)所示。 因此, 每一区段数据 Du、 D12、 …、 D1N的长度仅为 原始数据 01的长度的 1/N。接着, 控制器依序将区段数据 Du、 D12、…、 D1N 转换为图 7的 (d)中所示的具有最小传输功率的扰乱数据 Jn、 J12、 一、 J1N, 如图 7的 (d)所示。 接着, 控制器再将用于处理扰乱数据 Ju、 J12、 …、 J1N的 随机序列的索引 Ku、 K12、 …、 Κ分别附加于扰乱数据 Ju、 J12、 …、 J1N的 后端, 最后再将错误修正编码所得的检查码附加于扰乱数据 J1N的索引 KN1 的后端, 而得到错误修正码 d', 如图 7的 (e)所示。 由于每一区段数据 Du、 D12、 …、 D1N的长度仅为原始数据 0工的长度的 1/N, 而图 2中的随机序列In another embodiment of the method of processing write data, the controller will raw data in advance! ^ [For example, the length of the original data is one data page (page)) is divided into a plurality of segment data Ο η , ϋ 12 , . . . , D 1N as shown in (c) of FIG. 7 . Therefore, the length of each of the extent data Du, D 12 , ..., D 1N is only 1/N of the length of the original data 0 1 . Then, the controller sequentially converts the segment data Du, D 12 , . . . , D 1N into the scrambled data Jn, J 12 , and J 1N having the minimum transmission power shown in (d) of FIG. 7 . (d) of 7. Next, processing for scrambling data controller then Ju, J 12, ..., K u index random sequence of J 1N, K 12, ..., Κ 1Ν scrambling data are added to the J u, J 12, ..., J 1N The back end finally adds the check code obtained by the error correction coding to the back end of the index K N1 of the scrambled data J 1N to obtain the error correction code d' as shown in (e) of FIG. Since the length of each segment data D u , D 12 , ..., D 1N is only 1/N of the length of the original data 0, and the random sequence in FIG. 2

M2、 - , MN及扰乱资料 S2、 - , SN的数据长度也对应地变为 1/N, 因此控制器所需用于储存随机序列 M2、…、 MN及扰乱资料 S2、…、 SN, 的缓存器的长度 (储存量) 因而变为 1/N, 从而减少控制器所需耗费的 包含多个缓存器的硬件成本。 请注意到, 在另一实施例中, 需并行地进行扰 乱操作以及错误修正码编码, 以节省操作时间。 详细说明如下, 当图 2索引 附加模块 216将索引 Ku附加至扰乱数据 J„之后, 错误修正码编码器 218需 立刻针对索引 Kn与扰乱数据 Ju进行编码以产生含有检查码 Pu的错误更正 码 C„。而在错误修正码编码器 218产生错误更正码 Cu的同时,扰乱器 201、 202、 …、 20N需针对区段数据 D12进行扰乱、 再由传输功率计算模块 212与 选择器 214选出具有最小传输功率的扰乱数据 J12。类似地, 当错误修正码编 码器 218产生错误更正码 C12的同时, 扰乱器 201、 202、 …、 20N需针对区 段数据 D13进行扰乱、 再由传输功率计算模块 212与选择器 214选出具有最 小传输功率的扰乱数据 J13。如此并行地对各区段数据进行扰乱操作以及错误 修正码编码即可大幅地节省操作时间, 增强整体性能。 The data lengths of M 2 , - , M N and the scrambling data S 2 , - , S N also correspondingly become 1/N, so the controller is required to store the random sequences M 2 , ..., M N and the scrambling data S The length (storage) of the buffers of 2 , ..., S N , thus becomes 1/N, thereby reducing the hardware cost of the controller including the multiple buffers. Please note that in another embodiment, the scrambling operation and the error correction code encoding need to be performed in parallel to save operating time. Detailed description is as follows, when the index of Figure 2 Additional modules 216 attached to the index K u scrambling data J "after error correction code encoder 218 for an index for the immediately encoded and K n J u scrambling data to generate an error check code containing Pu correcting codes C". While the error correction code encoder 218 generates the error correction code Cu, the scramblers 201, 202, ..., 20N need to be scrambled for the sector data D 12 , and then selected by the transmission power calculation module 212 and the selector 214 to have a minimum. The transmission power is disturbed by the data J 12 . Similarly, while the error correction code encoder 218 generates the error correction code C 12 , the scramblers 201, 202, ..., 20N need to be scrambled for the sector data D 13 and then selected by the transmission power calculation module 212 and the selector 214. The disturbance data J 13 with the smallest transmission power is output. By performing the scrambling operation and the error correction code encoding on each segment data in parallel, the operation time can be greatly saved, and the overall performance can be enhanced.

虽然上文已对本发明的较佳实施例进行阐述, 但并非用于限定本发明, 任何本领域的技术人员, 在不脱离本发明的精神和范围内, 可以进行多种修 改与替换, 因此本发明的保护范围以权利要求所涵盖的范围为准。  While the preferred embodiments of the present invention have been described hereinabove, it is not intended to limit the invention, and various modifications and alternatives may be made without departing from the spirit and scope of the invention. The scope of protection of the invention is defined by the scope of the claims.

Claims

权利要求 Rights request 1. 一种数据储存装置, 包括: A data storage device comprising: 一存储器, 用于储存数据; 以及  a memory for storing data; 一控制器, 当从一主机接收供写入所述存储器的一第一原始数据时, 依 据所述第一原始数据产生至少一第一输入数据, 依据多个随机序列分别扰乱 所述第一输入数据以得到多个第一扰乱数据, 计算所述多个第一扰乱数据的 多个传输功率, 以及依据所述多个传输功率从所述多个第一扰乱数据中选取 具有最小传输功率的一最佳扰乱数据以供储存于所述存储器中。  a controller, when receiving a first raw data for writing to the memory from a host, generating at least one first input data according to the first original data, respectively scrambling the first input according to a plurality of random sequences Data, to obtain a plurality of first scrambling data, calculate a plurality of transmission powers of the plurality of first scrambled data, and select one of the plurality of first scrambled data from the plurality of first scrambled data according to the plurality of transmission powers The data is optimally disturbed for storage in the memory. 2. 根据权利要求 1所述的数据储存装置,其中所述控制器将对应于所述 最佳扰乱数据的随机序列的索引附加至所述最佳扰乱数据以得到一第一输出 数据, 将所述输出数据编码为一第一错误修正码, 以及将所述第一错误修正 码传输至所述存储器以供储存。  2. The data storage device of claim 1, wherein the controller appends an index of a random sequence corresponding to the best scrambled data to the optimal scrambled data to obtain a first output data, The output data is encoded as a first error correction code, and the first error correction code is transmitted to the memory for storage. 3. 根据权利要求 1所述的数据储存装置, 其中所述控制器包括: 多个扰乱器, 分别依据所述多个随机序列扰乱所述第一输入数据, 以得 到所述多个第一扰乱数据;  3. The data storage device according to claim 1, wherein the controller comprises: a plurality of scramblers respectively scrambling the first input data according to the plurality of random sequences to obtain the plurality of first disturbances Data 一传输功率计算模块, 计算所述多个第一扰乱数据的所述多个传输功 率, 从所述多个传输功率中决定一最小传输功率, 并输出对应于所述最小传 输功率的随机序列的索引; 以及  a transmission power calculation module, calculating the plurality of transmission powers of the plurality of first scrambling data, determining a minimum transmission power from the plurality of transmission powers, and outputting a random sequence corresponding to the minimum transmission power Index; and 一选择器, 依据所述索弓 I从所述多个第一扰乱数据中选取具有所述最小 传输功率的所述最佳扰乱数据。  a selector for selecting the best scrambled data having the minimum transmission power from the plurality of first scrambled data according to the cable. 4. 根据权利要求 3所述的数据储存装置,其中所述多个扰乱器分别对所 述多个随机序列与所述第一输入数据进行 X0R运算, 以得到所述多个第一 扰乱数据。  4. The data storage device of claim 3, wherein the plurality of scramblers respectively perform XOR operations on the plurality of random sequences and the first input data to obtain the plurality of first scrambled data. 5. 根据权利要求 3所述的数据储存装置, 其中所述控制器更包括: 一索引附加模块, 将对应于所述最佳扰乱数据的随机序列的所述索引附 加至所述最佳扰乱数据以得到一第一输出数据; 以及  5. The data storage device of claim 3, wherein the controller further comprises: an index attaching module, appending the index corresponding to the random sequence of the best scrambled data to the best scrambled data To obtain a first output data; 一错误修正码编码器, 将所述第一输出数据编码为一第一错误修正码, 以供输出至所述存储器。 An error correction code encoder, encoding the first output data into a first error correction code, For output to the memory. 6. 根据权利要求 3所述的数据储存装置,其中所述传输功率计算模块包 括:  6. The data storage device of claim 3, wherein the transmission power calculation module comprises: 多个延迟单元,分别延迟所述多个第一扰乱数据, 以得到多个延迟数据; 多个 XOR单元, 分别将所述多个延迟数据与相对应的所述多个第一扰 乱数据进行 XOR运算, 以得到多个转换 (transition)数据; 以及  a plurality of delay units respectively delaying the plurality of first scrambling data to obtain a plurality of delay data; and a plurality of XOR units respectively XORing the plurality of delay data and the corresponding plurality of first scrambled data Computing to obtain multiple transition data; 多个计数器,分别累计所述转换数据的次数, 以得到所述多个传输功率。 And a plurality of counters respectively accumulating the number of times of converting the data to obtain the plurality of transmission powers. 7. 根据权利要求 1所述的数据储存装置,其中所述控制器将所述第一原 始数据分割为多个区段数据以作为所述多个第一输入数据。 7. The data storage device of claim 1, wherein the controller divides the first raw data into a plurality of segment data as the plurality of first input data. 8. 根据权利要求 7所述的数据储存装置,其中当所述控制器对所述多个 区段数据中的一区段数据进行扰乱时, 所述控制器并行地对所述多个区段数 据中的另一区段数据所对应的一输出数据进行错误更正码编码。  8. The data storage device of claim 7, wherein the controller concurrently pairs the plurality of segments when the controller scrambles one of the plurality of segment data An output data corresponding to another segment data in the data is subjected to error correction code encoding. 9. 根据权利要求 1所述的数据储存装置,其中当所述控制器从所述主机 接收到一读取命令时, 所述控制器指示所述存储器读取一第二错误修正码以 输出至所述控制器, 转换所述第二错误修正码为一第二输出数据, 从所述第 二输出数据取出一第二索引以及一第二扰乱数据, 依据所述第二索引从所述 多个随机序列选取一解扰乱随机序列, 依据所述解扰乱随机序列解扰乱所述 第二扰乱数据以还原一第二原始数据, 以及输出所述第二原始数据至所述主 机。  9. The data storage device of claim 1, wherein when the controller receives a read command from the host, the controller instructs the memory to read a second error correction code for output to The controller converts the second error correction code into a second output data, and extracts a second index and a second scrambling data from the second output data, according to the second index from the plurality of The random sequence selects a descrambling random sequence, and the second scrambled data is descrambled according to the descrambled random sequence to restore a second original data, and the second original data is output to the host. 10. 根据权利要求 9所述的数据储存装置, 其中所述控制器更包括: 一错误修正码解码器, 转换所述第二错误修正码为所述第二输出数据; 一索引分离模块, 从所述第二输出数据取出所述第二索引以及所述第二 扰乱数据;  10. The data storage device according to claim 9, wherein the controller further comprises: an error correction code decoder, converting the second error correction code to the second output data; an index separation module, Extracting, by the second output data, the second index and the second scrambling data; 一选择器, 依据所述第二索引从所述多个随机序列中选取所述解扰乱随 机序列; 以及  a selector that selects the descrambling random sequence from the plurality of random sequences according to the second index; 一解扰乱器, 依据所述解扰乱随机序列解扰乱所述第二扰乱数据, 以还 原所述第二原始数据。  A descrambler distracts the second scrambled data according to the descrambled random sequence to restore the second original data. 11. 根据权利要求 10所述的数据储存装置,其中所述解扰乱器对所述解 扰乱随机序列与所述第二扰乱数据进行 XOR运算, 以得到所述第二原始数 据。 11. The data storage device of claim 10, wherein the descrambler pairs the solution The scrambling random sequence is XORed with the second scrambled data to obtain the second original data. 12. 根据权利要求 1所述的数据储存装置, 其中所述存储器为一闪存。 12. The data storage device of claim 1, wherein the memory is a flash memory. 13. 一种数据存取方法, 包括: 13. A method of data access, comprising: 从一主机接收供写入一存储器的一第一原始数据;  Receiving, from a host, a first raw data for writing to a memory; 依据所述第一原始数据产生至少一第一输入数据;  Generating at least one first input data according to the first raw data; 依据多个随机序列分别扰乱所述第一输入数据, 以得到多个第一扰乱数 据;  Dissipating the first input data according to a plurality of random sequences to obtain a plurality of first scrambled data; 计算所述多个第一扰乱数据的多个传输功率; 以及  Calculating a plurality of transmission powers of the plurality of first scrambled data; 依据所述多个传输功率从所述多个第一扰乱数据中选取具有最小传输 功率的一最佳扰乱数据, 以供储存于所述存储器中。  And selecting, according to the plurality of transmission powers, an optimal scrambled data having a minimum transmission power from the plurality of first scrambled data for storage in the memory. 14. 根据权利要求 13所述的数据存取方法, 其中所述方法更包括: 将对应于所述最佳扰乱数据的随机序列的索引附加至所述最佳扰乱数 据以得到一第一输出数据;  14. The data access method according to claim 13, wherein the method further comprises: appending an index of a random sequence corresponding to the optimal scrambled data to the optimal scrambled data to obtain a first output data. ; 将所述输出数据编码为一第一错误修正码; 以及  Encoding the output data as a first error correction code; 将所述第一错误修正码传输至所述存储器以供储存。  The first error correction code is transmitted to the memory for storage. 15. 根据权利要求 13所述的数据存取方法,其中所述第一输入数据的扰 乱步骤包括分别对所述多个随机序列与所述第一输入数据进行 X0R运算, 以得到所述多个第一扰乱数据。  15. The data access method of claim 13, wherein the step of disturbing the first input data comprises performing an XOR operation on the plurality of random sequences and the first input data, respectively, to obtain the plurality of The first disturbs the data. 16. 根据权利要求 13所述的数据存取方法,其中所述多个传输功率的计 算步骤包括:  16. The data access method of claim 13, wherein the calculating the plurality of transmission powers comprises: 分别延迟所述多个第一扰乱数据以得到多个延迟数据;  Delaying the plurality of first scrambling data respectively to obtain a plurality of delay data; 分别将所述多个延迟数据与相对应的所述多个第一扰乱数据进行 XOR 运算, 以得到多个转换 (transition)数据; 以及  Performing XOR operations on the plurality of delay data and the corresponding plurality of first scrambled data, respectively, to obtain a plurality of transition data; 分别累计所述转换数据的次数, 以得到所述多个传输功率。  The number of times of converting the data is separately accumulated to obtain the plurality of transmission powers. 17. 根据权利要求 13所述的数据存取方法,其中所述至少一第一输入数 据为多个第一输入数据, 而所述多个第一输入数据的产生步骤包括:  17. The data access method according to claim 13, wherein the at least one first input data is a plurality of first input data, and the generating step of the plurality of first input data comprises: 将所述第一原始数据分割为多个区段数据以作为所述多个第一输入数 据。 Dividing the first raw data into a plurality of segment data as the plurality of first input numbers According to. 18. 根据权利要求 17所述的数据存取方法, 更包含:  18. The data access method of claim 17, further comprising: 对所述多个区段数据中的一区段数据进行扰乱时, 并行地对所述多个区 段数据中另一区段数据所对应的一输出数据进行错误更正码编码。  And performing error correction code encoding on an output data corresponding to another segment data of the plurality of segment data in parallel when the segment data of the plurality of segment data is scrambled. 19. 根据权利要求 13所述的数据存取方法, 更包括:  19. The data access method of claim 13, further comprising: 当从所述主机接收到一读取命令时, 指示所述存储器读取一第二错误修 正码;  When receiving a read command from the host, instructing the memory to read a second error correction code; 转换所述第二错误修正码为一第二输出数据;  Converting the second error correction code to a second output data; 从所述第二输出数据取出一第二索引以及一第二扰乱数据;  Extracting a second index and a second scrambled data from the second output data; 依据所述第二索引从所述多个随机序列选取一解扰乱随机序列; 依据所述解扰乱随机序列解扰乱所述第二扰乱数据, 以还原一第二原始 数据; 以及  Selecting, according to the second index, a descrambling random sequence from the plurality of random sequences; and de-scrambling the second scrambled data according to the descrambling random sequence to restore a second original data; 输出所述第二原始数据至所述主机。  The second raw data is output to the host. 20. 根据权利要求 19所述的数据存取方法,其中所述第二扰乱数据的解 扰乱歩骤包括对所述解扰乱随机序列与所述第二扰乱数据进行 XOR运算, 以得到所述第二原始数据。  20. The data access method of claim 19, wherein the descrambling step of the second scrambled data comprises XORing the descrambled random sequence and the second scrambled data to obtain the Two raw data. 21. 根据权利要求 13所述的数据存取方法, 其中所述存储器为一闪存。  21. The data access method of claim 13, wherein the memory is a flash memory.
PCT/CN2009/073171 2009-07-01 2009-08-10 Data storage device and method for data access Ceased WO2011000177A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22246509P 2009-07-01 2009-07-01
US61/222,465 2009-07-01

Publications (1)

Publication Number Publication Date
WO2011000177A1 true WO2011000177A1 (en) 2011-01-06

Family

ID=43390992

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/073171 Ceased WO2011000177A1 (en) 2009-07-01 2009-08-10 Data storage device and method for data access

Country Status (3)

Country Link
CN (1) CN101937705B (en)
TW (1) TWI442221B (en)
WO (1) WO2011000177A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI562149B (en) * 2015-03-09 2016-12-11 Phison Electronics Corp Memory control circuit unit, memory storage apparatus and data accessing method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304482B1 (en) * 2000-11-21 2001-10-16 Silicon Integrated Systems Corp. Apparatus of reducing power consumption of single-ended SRAM
WO2006022802A1 (en) * 2004-01-09 2006-03-02 Matsushita Electronic Industrial Co, Ltd Ultra wideband scrambler for reducing power spectral density
CN1755819A (en) * 2004-10-01 2006-04-05 其乐达科技股份有限公司 Real-time cyclic redundanty check code generation and scrambling in DVD storage devices
CN101447216A (en) * 2007-09-28 2009-06-03 英特尔公司 Suppressing power supply noise using data scrambling in double data rate memory systems

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7672967B2 (en) * 2005-02-07 2010-03-02 Microsoft Corporation Method and system for obfuscating data structures by deterministic natural data substitution
WO2006112114A1 (en) * 2005-03-31 2006-10-26 Matsushita Electric Industrial Co., Ltd. Data encryption device and data encryption method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6304482B1 (en) * 2000-11-21 2001-10-16 Silicon Integrated Systems Corp. Apparatus of reducing power consumption of single-ended SRAM
WO2006022802A1 (en) * 2004-01-09 2006-03-02 Matsushita Electronic Industrial Co, Ltd Ultra wideband scrambler for reducing power spectral density
CN1755819A (en) * 2004-10-01 2006-04-05 其乐达科技股份有限公司 Real-time cyclic redundanty check code generation and scrambling in DVD storage devices
CN101447216A (en) * 2007-09-28 2009-06-03 英特尔公司 Suppressing power supply noise using data scrambling in double data rate memory systems

Also Published As

Publication number Publication date
CN101937705A (en) 2011-01-05
TWI442221B (en) 2014-06-21
TW201102819A (en) 2011-01-16
CN101937705B (en) 2012-05-09

Similar Documents

Publication Publication Date Title
US8959404B2 (en) Method for controlling access operations of a flash memory, and associated flash memory device and flash memory controller
US9317362B2 (en) Method and system to improve the performance and/or reliability of a solid-state drive
US8522124B2 (en) Semiconductor device and decoding method thereof
CN111352765B (en) Controller and memory system
US7616133B2 (en) Data bus inversion apparatus, systems, and methods
KR101759658B1 (en) Memory device and memory system
US8552891B2 (en) Method and apparatus for parallel data interfacing using combined coding and recording medium therefor
US8112693B2 (en) Error control code apparatuses and methods of using the same
US20130238952A1 (en) Apparatuses and methods for combining error coding and modulation schemes
US20180034483A1 (en) Variable t bch encoding
KR20120125790A (en) Memory device and memory system including the same
TWI415130B (en) Flash memory controller and method for accessing a flash memory
WO2011000177A1 (en) Data storage device and method for data access
JP4956295B2 (en) Semiconductor memory device
CN107017962A (en) The coding method of dynamic power consumption control and codec
WO2019237625A1 (en) Descrambling method and device, and readable storage medium
Song et al. Energy-efficient data movement with sparse transition encoding
US8171382B2 (en) Encoding system and method for encoding error control codes within bit streams
TW201019609A (en) Recording controller and decoder for parity-check code
KR20230000456A (en) Transmitting device, a transmitting and receiving system using the same, and a transmitting and receiving method
Yang et al. GALS architecture of H. 264 video encoding system on DN-DualV6-PCIe-4 FPGA platform
Huang et al. Embedded transition inversion coding for low power serial link
CN116388772A (en) A linear block code encoding and decoding method, system, device and storage medium
Chenginimattom et al. Methods for Reducing the Activity Switching Factor
andYan Zhang Perfect 3-Limited-Weight Code for Low Power I/O

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09846706

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09846706

Country of ref document: EP

Kind code of ref document: A1