TWI417719B - Method, apparatus and computer program product providing instruction monitoring for reduction of energy usage and energy reduction when storing data in a memory - Google Patents

Method, apparatus and computer program product providing instruction monitoring for reduction of energy usage and energy reduction when storing data in a memory Download PDF

Info

Publication number
TWI417719B
TWI417719B TW097129897A TW97129897A TWI417719B TW I417719 B TWI417719 B TW I417719B TW 097129897 A TW097129897 A TW 097129897A TW 97129897 A TW97129897 A TW 97129897A TW I417719 B TWI417719 B TW I417719B
Authority
TW
Taiwan
Prior art keywords
data
unit
bit
memory device
memory
Prior art date
Application number
TW097129897A
Other languages
Chinese (zh)
Other versions
TW200912642A (en
Inventor
Timothy Chainer
Original Assignee
Ibm
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
Priority claimed from US11/836,210 external-priority patent/US7783846B2/en
Priority claimed from US11/836,212 external-priority patent/US20090044032A1/en
Application filed by Ibm filed Critical Ibm
Publication of TW200912642A publication Critical patent/TW200912642A/en
Application granted granted Critical
Publication of TWI417719B publication Critical patent/TWI417719B/en

Links

Classifications

    • 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

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

提供能監測能源使用之減少以及在儲存資料於記憶體中時之能源減少的指令的方法、設備及電腦程式產品Method, apparatus and computer program product for providing instructions for monitoring reduction in energy use and energy reduction when storing data in memory

本發明的示例性具體實施例概略關於資料儲存及取得,更特定而言,係關於儲存資料在一電腦可讀取媒體之高能量效率技術。Exemplary embodiments of the present invention are generally directed to data storage and retrieval, and more particularly to high energy efficiency techniques for storing data in a computer readable medium.

在Al Sakata等人的美國專利公開號US 2004/0042292中揭示一種MRAM的寫入作業;其中使一MTJ元件之磁性反向所需要的電流必須傳送通過一資料線,造成消耗大量電流。該寫入作業包括比較輸入資料與自一記憶細胞陣列讀取的讀取資料,並使用一資料編碼器來編碼該輸入資料來形成寫入資料。亦揭示使用一資料解碼器來解碼讀取資料以形成輸出資料。在一非揮發性半導體記憶體中,於寫入作業期間要寫入之位元數目即可減少,且該電流消耗亦可降低。A write operation of an MRAM is disclosed in U.S. Patent Publication No. 2004/0042292 to Al.S.A., the disclosure of which is incorporated herein by reference. The write operation includes comparing the input data with the read data read from a memory cell array and encoding the input data using a data encoder to form the write data. It is also disclosed to use a data decoder to decode the read data to form an output data. In a non-volatile semiconductor memory, the number of bits to be written during a write operation can be reduced, and the current consumption can also be reduced.

在Cohen之美國專利編號6,633,951中揭示一種用於降低在一運算系統中更新動態隨機存取記憶體所需要的功率之方法及設備,在一具體實施例中,要儲存到DRAM之資料係一次以一字元來評估。對於每個8位元資料字元,如果其數目超過四,該資料字元的每個位元被反向,且一資料反向指標位元被設定為邏輯的1,以指示該資料已被反向。此可允許該資料正確地以資料呈現之最少數目來儲存。由於更新儲存在DRAM中的資料所需要的功率,儲存 最少數目的資料可降低功率消耗。該資料的讀取決定是否該資料在儲存時已經被反向,如果是的話,該讀取資料即被回復到其原始型式。A method and apparatus for reducing the power required to update a dynamic random access memory in a computing system is disclosed in U.S. Patent No. 6,633,951, the entire disclosure of which is incorporated herein by reference. One character to evaluate. For each 8-bit data character, if the number exceeds four, each bit of the data character is inverted, and a data reverse indicator bit is set to a logical one to indicate that the data has been Reverse. This allows the material to be properly stored in the minimum number of data presentations. Due to the power required to update the data stored in the DRAM, the storage The minimum amount of data can reduce power consumption. The reading of the data determines whether the data has been reversed at the time of storage, and if so, the read data is returned to its original format.

在Norman的美國專利編號5,873,112中,揭示一種方法與系統,其中位元的X-位元封包(其中X為一整數)被編碼,以產生X-位元封包的編碼位元,用於寫入到一快閃記憶體陣列之抹除的細胞,其中寫入具有一第一數值的一位元到一抹除的細胞會比寫入具有一第二數值的一位元到該細胞要消耗較少的功率。一計數信號會對每個封包的原始位元來產生,以指示具有第一(或第二)數值的封包之位元數目,該計數信號被處理來產生一控制信號,其可決定該封包的編碼,及該封包的原始位元根據由該控制信號決定的一方案來編碼。每個抹除的細胞可指示二元值「1」,且該計數信號相較於一基準值(代表X/2)來產生一控制信號,其可決定該封包是否必須進行極性反向,且該封包根據該控制信號的數值來反向(或不反向)。該計數信號可對要被寫入到一陣列之抹除的細胞之每個封包的位元來產生(其中該計數信號指示在該封包中位元的數目具有一特定值),且每個封包依照由相對應計數信號決定的方式來編碼,以降低寫入該等編碼位元到該等抹除細胞所需要的功率。指示每個封包之編碼的旗標位元被產生,且該等旗標位元(以及該等編碼封包)被儲存在該快閃記憶體陣列的細胞中。A method and system is disclosed in U.S. Patent No. 5,873,112, the entire disclosure of which is incorporated by the entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire entire disclosure An erased cell to a flash memory array, wherein writing a cell having a first value to an erased cell consumes less than writing a bit having a second value to the cell Power. A count signal is generated for the original bit of each packet to indicate the number of bits of the packet having the first (or second) value, the count signal being processed to generate a control signal that determines the packet's The encoding, and the original bits of the packet are encoded according to a scheme determined by the control signal. Each erased cell can indicate a binary value of "1", and the count signal produces a control signal relative to a reference value (representing X/2), which can determine whether the packet must be reversed in polarity, and The packet is inverted (or not inverted) based on the value of the control signal. The count signal can be generated for a bit of each packet to be written to an array of erased cells (where the count signal indicates that the number of bits in the packet has a particular value), and each packet Coding is performed in a manner determined by the corresponding count signal to reduce the power required to write the coded bits to the erased cells. Flag cells indicating the encoding of each packet are generated, and the flag bits (and the encoded packets) are stored in cells of the flash memory array.

控制記憶體功率消耗之其它技術係揭示於IBM技術 文摘30卷1期,1987年6月304-305頁「資料相關寫入的功率降低方案」(Power Reduction Scheme with Data-Dependent Write);IBM技術文摘11-89,415-416頁「高效能記憶體之功率降低」(Reduced Power for High Performance Memory);及在IEEE論文,Marcello Duhalde等人提出(1995),1057-1060頁「一高效能模組化嵌入式ROM架構」(A High Performance Modular Embedded ROM Architecture)。Other techniques for controlling memory power consumption are revealed in IBM technology. Abstracts, Volume 30, Issue 1, June 1987, pp. 304-305, "Power Reduction Scheme with Data-Dependent Write"; IBM Technical Abstracts, pp. 11-89, pp. 415-416, "High Performance Memory Reduced Power for High Performance Memory; and in the IEEE paper, Marcello Duhalde et al. (1995), 1057-1060, "A High Performance Modular Embedded ROM Architecture" (A High Performance Modular Embedded) ROM Architecture).

需要對於這些習用技術的改良來更進一步降低目前可使用及未來的資料儲存裝置及系統中的功率消耗,以及所造成由功率消耗產生的熱負載。Improvements to these conventional techniques are needed to further reduce the power consumption in currently available and future data storage devices and systems, as well as the resulting thermal load due to power consumption.

根據本發明之示例性具體實施例,前述及其它問題已被克服,並可實現其它優點。In accordance with the exemplary embodiments of the present invention, the foregoing and other problems have been overcome and other advantages are realized.

本發明之示例性具體實施例之第一態樣提供:一種方法來操作一記憶體裝置。該方法包括在利用一第二單元的資料在記憶體裝置中一位置處覆寫一第一單元的資料之前,決定相較於利用具有反向位元之至少一次單元寫入該第二單元的資料,是否寫入該第二單元的資料需要較多能量;如果決定利用具有反向位元之至少一次單元寫入該第二單元的資料需要較少能量,則利用具有反向位元之至少一次單元,以一修正第二單元的資料來覆寫該第一單元的資料,並配合寫入至少一位元,以指示在具有該反向位元 之該次單元的該修正單元的資料中的一位置。A first aspect of an exemplary embodiment of the present invention provides a method of operating a memory device. The method includes, prior to overwriting a data of a first unit at a location in the memory device using data of a second unit, determining to write the second unit to the second unit by using at least one unit having the reversed bit Data, whether it is required to write the data of the second unit requires more energy; if it is decided to use less than one unit with the reverse bit to write the data of the second unit, less energy is needed, and at least the reverse bit is utilized. a unit that overwrites the data of the first unit with a data of the modified second unit, and writes at least one bit to indicate that the reverse bit is present A position in the data of the correction unit of the secondary unit.

本發明之示例性具體實施例之另一態樣提供:一種設備來操作一記憶體裝置,其包括一記憶體控制單元,其經配置以在利用一第二單元的資料在記憶體裝置中一位置處覆寫一第一單元的資料之前,決定相較於利用具有反向位元之至少一次單元寫入該第二單元的資料,是否寫入該第二單元的資料需要較少能量;該記憶體控制單元更經配置,以回應於相較於利用具有反向位元之至少一次單元寫入該第二單元的資料,寫入該第二單元的資料需要較少能量之決定,配合一指標欄位,對該記憶體裝置,利用具有反向位元之該至少一次單元,傳送一修正第二單元的資料,其中該指標欄位包含至少一位元,以指示在具有該反向位元之該次單元的資料之該修正單元的資料的一位置。Another aspect of an exemplary embodiment of the present invention provides an apparatus for operating a memory device including a memory control unit configured to utilize a second unit of data in a memory device Before the location of the data of the first unit is overwritten, it is determined that it is less energy to write the data of the second unit than the data written to the second unit by using at least one unit having the reversed bit; The memory control unit is further configured to respond to the data written to the second unit by using at least one unit having the reversed bit, and the data written to the second unit requires less energy to determine An indicator field for transmitting, by the at least one unit having the reverse bit, a data of the modified second unit, wherein the indicator field includes at least one bit to indicate that the reverse bit is present A position of the data of the correction unit of the data of the sub-unit.

本發明示例性具體實施例之另一態樣提供:一種電腦可讀取記憶體媒體,其可儲存電腦程式指令,其執行時造成的作業包含:在利用一第二單元的資料在記憶體裝置中一位置處覆寫一第一單元的資料之前,決定相較於利用具有反向位元之至少一次單元寫入該第二單元的資料,是否寫入該第二單元的資料需要較多能量;如果決定利用具有反向位元之至少一次單元寫入該第二單元的資料需要較少能量,則利用具有反向位元之至少一次單元,以一修正第二單元的資料來覆寫該第一單元的資料,並配合寫入至少一位元,以指示在具有該反向位元之該次單元的該修正單元的資料中的一位置。Another aspect of an exemplary embodiment of the present invention provides a computer readable memory medium capable of storing computer program instructions, the operations of which are performed by: utilizing a second unit of data in a memory device Before the information of the first unit is overwritten at the middle position, it is determined that whether the data of the second unit is written into the second unit is more energy than the data written to the second unit by using at least one unit having the reversed bit. If it is decided that the data written to the second unit by at least one unit having the reverse bit requires less energy, then the at least one unit having the reversed bit is used to overwrite the data of the second unit with a correction. The data of the first unit is matched with at least one bit to indicate a position in the data of the correction unit of the secondary unit having the reversed bit.

本發明之示例性具體實施例之又一態樣提供一種方法來操作一記憶體控制單元。該方法包括:讀取儲存在一記憶體位置中的目前資料;與該目前資料比較要被寫入的輸入資料,並計算如果藉由執行該目前資料與該輸入資料之間的一「互斥或(exclusive OR)」,並加總該互斥或之結果中的「1」之數目,該新資料覆寫該目前資料時發生的位元轉換數目,其中加總結果sum1代表如果該輸入資料覆寫該目前資料時將會發生的位元轉換的數目;比較sum1與一預定閥值,且如果sum1等於或超過該閥值,否定該輸入資料的所有或部份,與該目前資料執行一互斥或,並計算一第二sum2,其中如果該否定的輸入資料之sum2+1的數值小於sum1,則位元轉換的數目將在如果該否定的輸入資料被寫入到該記憶體位置中時被降低;及在一相對應指標欄位中,設定至少一指標位元,以指示是否該輸入資料被儲存,或是否該輸入資料的所有或一部份之否定型式被儲存在該記憶體位置中。Yet another aspect of an exemplary embodiment of the present invention provides a method of operating a memory control unit. The method includes: reading current data stored in a memory location; comparing input data to be written with the current data, and calculating a mutual exclusion between execution of the current data and the input data Or (exclusive OR)", and add the number of "1"s in the result of the mutual exclusion, the new data overwrites the number of bit conversions that occurred at the current data, wherein the summation result sum1 represents if the input data The number of bit conversions that will occur when overwriting the current data; comparing sum1 with a predetermined threshold, and if sum1 equals or exceeds the threshold, denying all or part of the input data, performing one with the current data Mutually exclusive, and calculate a second sum2, wherein if the value of sum2+1 of the negative input data is less than sum1, the number of bit conversions will be if the negative input data is written into the memory location Lowering; and in a corresponding indicator field, setting at least one indicator bit to indicate whether the input data is stored, or whether all or a part of the negative version of the input data is stored in the In the memory location.

本發明之示例性具體實施例之另一態樣提供一種方法來操作一功率調配器。該方法包括讀取一第一指令集;讀取一資料匯流排;並讀取儲存在至少一資料暫存器中的暫存器值。此資訊為了能量使用目的來分析。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Another aspect of an exemplary embodiment of the present invention provides a method of operating a power adapter. The method includes reading a first set of instructions; reading a data bus; and reading a register value stored in the at least one data register. This information is analyzed for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明之示例性具體實施例之又一態樣提供一種設備,其耦合於一指令暫存器、一資料匯流排、及至少一資 料暫存器。該設備讀取該第一指令集;讀取該資料匯流排;並讀取儲存在該資料暫存器中的暫存器值。該設備為了能量使用目的來分析此資訊。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Yet another aspect of an exemplary embodiment of the present invention provides an apparatus coupled to an instruction register, a data bus, and at least one Material register. The device reads the first instruction set; reads the data bus; and reads the value of the register stored in the data register. The device analyzes this information for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明示例性具體實施例之另一態樣提供一種電腦可讀取記憶體媒體,其可儲存電腦程式指令,其執行時造成的作業包含:讀取一第一指令集;讀取一資料匯流排;並讀取儲存在至少一資料暫存器中的暫存器值。此資訊為了能量使用目的來分析。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Another aspect of an exemplary embodiment of the present invention provides a computer readable memory medium capable of storing computer program instructions, the operations caused by the operations include: reading a first instruction set; reading a data stream Row; and read the scratchpad value stored in at least one data register. This information is analyzed for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明之示例性具體實施例之又一態樣提供一種設備。該設備具有的構件用於包括讀取一第一指令集;讀取一資料匯流排;並讀取儲存在至少一資料暫存器中的暫存器值。該設備為了能量使用目的來分析此資訊。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Yet another aspect of an exemplary embodiment of the present invention provides an apparatus. The device has means for reading a first set of instructions; reading a data bus; and reading a register value stored in the at least one data register. The device analyzes this information for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明之示例性具體實施例之又另一態樣提供一種方法來操作一功率調配器。該方法包括讀取一第一指令集;讀取一資料匯流排;並讀取儲存在至少一資料暫存器中的暫存器值。此資訊為了能量使用目的來分析。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Yet another aspect of an exemplary embodiment of the present invention provides a method of operating a power adapter. The method includes reading a first set of instructions; reading a data bus; and reading a register value stored in the at least one data register. This information is analyzed for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明之示例性具體實施例之又一態樣提供一種設備,其耦合於一指令暫存器、一資料匯流排、及至少一資料暫存器。該設備讀取該第一指令集;讀取該資料匯流排;並讀取儲存在該資料暫存器中的暫存器值。該設備為了能量使用目的來分析此資訊。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Yet another aspect of an exemplary embodiment of the present invention provides an apparatus coupled to an instruction register, a data bus, and at least one data register. The device reads the first instruction set; reads the data bus; and reads the value of the register stored in the data register. The device analyzes this information for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明示例性具體實施例之另一態樣,提供一種電腦可讀取記憶體媒體,其可儲存電腦程式指令,其執行時造成的作業包含:讀取一第一指令集;讀取一資料匯流排;並讀取儲存在至少一資料暫存器中的暫存器值。此資訊為了能量使用目的來分析。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。In another aspect of an exemplary embodiment of the present invention, a computer readable memory medium is provided, which can store computer program instructions, and the operations caused by the execution include: reading a first instruction set; reading a data Bus; and reads the value of the scratchpad stored in at least one data register. This information is analyzed for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明之示例性具體實施例之另一態樣提供一種設備。該設備具有的構件用於包括讀取一第一指令集;讀取一資料匯流排;並讀取儲存在至少一資料暫存器中的暫存器值。該設備為了能量使用目的來分析此資訊。如果一組指令可提供使用較低能量的相同結果,該第一指令集即被該較低功率使用指令集所取代。Another aspect of an exemplary embodiment of the present invention provides an apparatus. The device has means for reading a first set of instructions; reading a data bus; and reading a register value stored in the at least one data register. The device analyzes this information for energy usage purposes. If a set of instructions can provide the same result using lower energy, the first set of instructions is replaced by the lower power usage instruction set.

本發明的示例性具體實施例之使用可以降低儲存資訊在一記憶體裝置中所需要的能源量。The use of an exemplary embodiment of the present invention can reduce the amount of energy required to store information in a memory device.

本發明的示例性具體實施例利用的技術可降低數位資料之轉換(1到0或0到1)之數目,因此降低當儲存資料在一記憶體裝置中所消耗的能量。使用本發明之示例性具體實施例對於記憶體裝置有好處,其中要改變該記憶體狀態之能量為主要的能量項目。在一第一示例性具體實施例中,先前儲存在一記憶體裝置中一單元的資料在寫入前被讀取,以決定是否該單元的資料之某部份或該單元的資料之該部份的否定型式可利用較少的轉換以及因此用較低能量來儲存。如果當其決定該單元的資料之某部份可利用較少的轉換來儲存時,即儲存一或多個指標來指定該單元的資料之那一部份或那些部份會以反向的型式來儲存。該(等)指標在當該單元的資料被讀取來用於恢復該單元的資料到其原始型式時即可在後續取得。Techniques utilized by exemplary embodiments of the present invention can reduce the number of digital data conversions (1 to 0 or 0 to 1), thus reducing the amount of energy consumed in storing a data in a memory device. The use of an exemplary embodiment of the present invention is advantageous for a memory device in which the energy to change the state of the memory is the primary energy item. In a first exemplary embodiment, data previously stored in a unit in a memory device is read prior to writing to determine whether a portion of the data of the unit or the portion of the data for the unit Negative versions of the shares can be stored with less conversion and therefore with lower energy. If it determines that a portion of the unit's data can be stored with fewer conversions, that is, storing one or more indicators to specify which part or portions of the unit's data will be in the reversed version To store. The (etc.) indicator can be obtained later when the unit's data is read to restore the unit's data to its original version.

在另一示例性具體實施例中,對於在儲存的單元之資料中建立對於二元值O的統計偏差,使得當資料利用先前儲存的資料被寫入到一記憶體位置時可降低轉換的數目。In another exemplary embodiment, a statistical deviation for the binary value O is established in the data of the stored unit such that the number of conversions can be reduced when the data is previously written to a memory location using the previously stored data. .

藉由簡介,第1圖為適用於實施本發明之資料處理系統10的簡化區塊圖。系統10包括至少一處理器12,其耦合於至少一記憶體14。相關於記憶體14為一記憶體控制單元16,其根據本發明之示例性具體實施例來建構及操作,藉以助於降低當該資料被儲存時之轉換的數目來分析要儲存在記憶體14中的資料。為了簡化起見,互連這些組件之多種匯流排18A、18B及18C之細節並未顯示(例如位址、資料及控制匯流排之細節)。By way of introduction, FIG. 1 is a simplified block diagram of a data processing system 10 suitable for use in practicing the present invention. System 10 includes at least one processor 12 coupled to at least one memory 14. The memory 14 is a memory control unit 16 that is constructed and operative in accordance with an exemplary embodiment of the present invention to help reduce the number of transitions when the material is stored for analysis to be stored in the memory 14. Information in the middle. For the sake of simplicity, the details of the various busbars 18A, 18B, and 18C interconnecting these components are not shown (eg, address, data, and control bus details).

請注意在一些具體實施例中,處理器12可僅透過記憶體控制單元16連接至記憶體14,且在此例中匯流排18A可以不存在。亦請注意到在一些具體實施例中,記憶體14之全部或部份可以位在處理器12之遠處,其可為相關的記憶體控制單元16。在此例中,一或多個匯流排18A、18B、18C可為區域電氣或光學匯流排,或可為遠端,像是區域網路(LAN,“Local area network”)、有線或無線,或廣域網路,像是網際網路。Please note that in some embodiments, processor 12 may be coupled to memory 14 only through memory control unit 16, and in this example bus bar 18A may not be present. It should also be noted that in some embodiments, all or a portion of the memory 14 can be located remotely from the processor 12, which can be the associated memory control unit 16. In this example, one or more of the busbars 18A, 18B, 18C may be regional electrical or optical busbars, or may be remote, such as a local area network (LAN, "Local area network"), wired or wireless, Or a wide area network, like the Internet.

資料處理系統10可假設任何適當型式,像是一主機型電腦、一工作站、一桌上型(例如個人)電腦,一膝上型或筆記型電腦,或一做為嵌入在另一個裝置中的資料處理系統。處理器12可為任何種類之資料處理器,包括由多個組件所構成、或在一單一積體電路內以整合型式所構成,像是微處理器。處理器12可具有一單一核心或一多核心架構。記憶體14可為任何種類的適當記憶體,並可具體實施在一或多個半導體式的記憶體中,像是半導體靜態隨機存取記憶體(RAM,“Random access memory”)或動態RAM,或其可具體實施成一磁性儲存媒體,例如碟片或磁帶。在其它具體實施例中,記憶體14可為基於磁性原理(像是磁阻RAM)之半導體式的技術。概言之,本發明的示例性具體實施例特別有用於那些種類的資料儲存記憶體,其中需要不可忽略的能量數量來改變一資料儲存位置的狀態,也就是說,要由儲存一零位元到儲存一位元及/或由儲存一位元到一零位元來轉換該資料儲存位置。The data processing system 10 can assume any suitable type, such as a host computer, a workstation, a desktop (eg, personal) computer, a laptop or laptop, or one embedded in another device. Data processing system. Processor 12 can be any type of data processor, including a plurality of components, or in an integrated form within a single integrated circuit, such as a microprocessor. Processor 12 can have a single core or a multi-core architecture. The memory 14 can be any kind of suitable memory, and can be embodied in one or more semiconductor memories, such as a semiconductor static random access memory (RAM, "Random access memory") or dynamic RAM. Or it may be embodied as a magnetic storage medium such as a disc or a magnetic tape. In other embodiments, memory 14 can be a semiconductor-based technology based on magnetic principles such as magnetoresistive RAM. In summary, exemplary embodiments of the present invention are particularly useful for those types of data storage memories in which a non-negligible amount of energy is required to change the state of a data storage location, that is, to store a zero bit. The data storage location is converted by storing one bit and/or by storing one bit to one zero.

記憶體控制單元16可整合於記憶體14,或其可為一獨立單元。其亦可具有額外的功能性,像是操作成一DRAM控制單元,或成為一碟片或磁帶控制器。The memory control unit 16 can be integrated into the memory 14, or it can be a separate unit. It can also have additional functionality, such as operating as a DRAM control unit, or as a disc or tape controller.

請注意到在一些具體實施例中,第1圖所示之所有組件可以整合在相同的積體電路內。請另外注意到在一些具體實施例中,記憶體14之至少一些可為處理器12之內部記憶體的一部份,其包括(但不限於)處理器12 RAM、暫存器及暫存器檔案。Please note that in some embodiments, all of the components shown in Figure 1 can be integrated into the same integrated circuit. Please note that in some embodiments, at least some of the memory 14 may be part of the internal memory of the processor 12, including but not limited to the processor 12 RAM, the scratchpad, and the scratchpad. file.

根據本發明示例性具體實施例且亦參照第2圖,記憶體控制單元16用於以某種間距引入一或多個指標位元(指標)到一資料流中,其係基於比較要被寫入到記憶體14中一特定位置之資料(輸入資料)與目前儲存在該特定位置中的資料(目前資料)。According to an exemplary embodiment of the present invention and also referring to FIG. 2, the memory control unit 16 is configured to introduce one or more indicator bits (indicators) into a data stream at a certain interval, which is to be written based on the comparison. The data (input data) entered into a specific location in the memory 14 and the data currently stored in the specific location (current data).

例如,假設一狀況為:輸入資料=10000111目前資料=11111111For example, suppose a situation is: input data = 10000111 current data = 1111111

例如記憶體控制單元16的一比較單元16A用於選擇性地控制反向器16B一記憶庫的個別位元,以反向要寫入到記憶體14之新資料中的某些位元,以降低位元轉換的數目,並產生指標位元來代表該新資料。在此非受限制性範例中,其假設一資料單元長度為一位元組(8位元),一暫存器20可被提供來保持自記憶體14讀取的目前資料(例如 全為1),且該輸入資料,其中D7為1,D6-D3為0,且D2-D0為1。明顯地,直接寫入該輸入資料到記憶體14將造成四個位元(D6-D3)的轉換。為了避免此狀況,比較單元16A偵測到將用於轉換的位元數目等於或超過某個預定的閥值(例如2、3或4),並回應來設定反向器控制信號線16C,以使得在位元D7-D3之路徑中的反向器16B來反向該等相對應位元(假設如果一反向控制信號線16C並未設定,則相對應反向器16B僅簡單地傳送該位元通過但不將它反向,或一開關僅越過該反向器。在此例中的結果為該新資料到記憶體14採取型式如下:新資料=01111111,為僅在8個位元中一個位元(在此例中為D7)中造成轉換的結果。三個指標位元I2、I1、I0可用於指示在該新資料中配對反向之開始點。在一非受限制範例中,序列000指示沒有改變,而其餘序列可代表由1到7的數目,指示那一個位元為開始位元(例如011指示第三位元及以上被改變,而001指示所有位元皆改變)。在此例中,I2被切換到1,使得指標位元讀取為100,以指示第四位元(D3)及以上被反向。即使利用此額外位元開關,在被切換的位元總數上有一淨減少。如所瞭解,寫入該新資料到記憶體所需要的能量明顯地比直接寫入該資料而不反向任何位元所需要的能量要低。For example, a comparison unit 16A of the memory control unit 16 is configured to selectively control the individual bits of the memory of the inverter 16B to reverse some of the bits of the new data to be written to the memory 14 to The number of low-order conversions and the generation of indicator bits to represent the new data. In this non-limiting example, assuming that a data unit is a one-bit tuple (8-bit), a register 20 can be provided to hold the current data read from the memory 14 (eg, All are 1), and the input data, where D7 is 1, D6-D3 is 0, and D2-D0 is 1. Obviously, writing the input data directly to the memory 14 will result in a conversion of four bits (D6-D3). In order to avoid this, the comparing unit 16A detects that the number of bits to be used for conversion equals or exceeds a certain predetermined threshold (for example, 2, 3 or 4), and responds to set the inverter control signal line 16C to The inverter 16B in the path of the bit D7-D3 is caused to reverse the corresponding bit (assuming that if a reverse control signal line 16C is not set, the corresponding inverter 16B simply transmits the same The bit passes but does not reverse it, or a switch only crosses the inverter. The result in this example is that the new data is taken to the memory 14 as follows: new data = 0111111, which is only 8 bits The result of the conversion in one of the bits (in this case, D7). The three indicator bits I2, I1, I0 can be used to indicate the starting point of the pairing inversion in the new data. In a non-restricted example The sequence 000 indicates no change, and the remaining sequences may represent a number from 1 to 7, indicating which one is the start bit (eg, 011 indicates that the third bit and above are changed, and 001 indicates that all bits are changed) In this example, I2 is switched to 1, causing the indicator bit to read as 100 to indicate The four-bit (D3) and above are reversed. Even with this extra bit switch, there is a net reduction in the total number of bits being switched. As is known, the energy required to write the new data to the memory is clearly It is lower than the energy required to write the data directly without reversing any bits.

為了能夠在後續自記憶體14讀取此資料,並將其回復到原始型式,很重要地是設定一指標來通知記憶體控制單元16的讀取單元16D在當該資料被儲存時那些位元被反向(如果有的話)。該指標可採用一些不同的型式。在第2圖所例示的範例中,在套用該位元反向之資料單元中最有效位元位置(例如由D7計數)被編碼成一3位元值,應當作指標位元傳送到記憶體14,用於相關於該儲存的資料單元之儲存器。在上述的非限制性範例中,該指標值將為4(100)。然後,當此資料單元自記憶體14讀回時,讀取單元16D執行該互補運作來反向所有那些位元到該指標的數值(在此例中為位元D7-D4),藉以恢復該資料到其原始型式,藉此提供該輸出資料到處理器12或某個其它組件。In order to be able to read this material from the memory 14 and restore it to the original pattern, it is important to set an indicator to notify the reading unit 16D of the memory control unit 16 when the data is stored. Being reversed (if any). This indicator can be used in a number of different styles. In the example illustrated in FIG. 2, the most significant bit position (eg, counted by D7) in the data unit to which the bit is reversed is encoded into a 3-bit value, which should be transmitted to the memory 14 as an index bit. , for storage associated with the stored data unit. In the non-limiting example above, the indicator value will be 4 (100). Then, when the data unit is read back from the memory 14, the reading unit 16D performs the complementary operation to reverse all the values of the bits to the index (in this case, the bits D7-D4), thereby restoring the The data is sent to its original format, thereby providing the output data to the processor 12 or some other component.

在此具體實施例中,有可能加入一額外指標位元來指定該三個指標位元是否必須被解譯成由D0計數(該資料單元的LSB)或自D7計數(該資料單元的MSB)。In this particular embodiment, it is possible to add an additional indicator bit to specify whether the three indicator bits must be interpreted as being counted by D0 (the LSB of the data unit) or counted from D7 (the MSB of the data unit) .

在目前所述的範例中,在施加有反向之資料單元中的邊界隨著不同資料單元而改變,其係根據由比較單元16A所得到的結果。在另一具體實施例中,該資料單元可被區隔成預定的次單元(例如在目前所述之示例中為4位元次單元),然後對於每個次單元提供一指標位元來指示該相對應次單元是否有被反向或未被反向。在上述的範例中假設:輸入資料=1000 0111目前資料=1111 1111, 然後套用該比較閥值到每個次單元會僅造成最左方的次單元被反向,致使:新資料=0111 0111。In the presently described example, the boundaries in the data unit to which the inverse is applied vary with different data units, based on the results obtained by the comparison unit 16A. In another embodiment, the data unit can be partitioned into predetermined sub-units (e.g., 4-bit sub-units in the presently described example), and then an indicator bit is provided for each sub-unit to indicate Whether the corresponding secondary unit is reversed or not reversed. In the above example, it is assumed that the input data = 1000 0111 current data = 1111 1111, Then applying the comparison threshold to each sub-unit will only cause the leftmost sub-unit to be reversed, resulting in: new data = 0111 0111.

在此例中的指標欄位僅需要2位元長來代表每個次單元的配對性,並可具有數值如下指標=10。The indicator field in this example only needs 2 bits long to represent the matching of each sub-unit, and can have the following value = 10.

指示該最左方次單元已被反向。Indicates that the leftmost subunit has been reversed.

在其它具體實施例中,每個次單元之寬度可為2位元,然後該指標欄位之寬度將為4位元,以指示是否該資料單元的每個相對應2位元有被反向或未被反向。繼續前述的範例:輸入資料=10 00 01 11目前資料=11 11 11 11,然後套用該比較閥值(在此例中為2)到每個次單元會僅造成第二最左方的次單元被反向,致使:新資料=10 11 01 11。In other embodiments, the width of each sub-unit may be 2 bits, and then the width of the indicator field will be 4 bits to indicate whether each corresponding 2-bit of the data unit has been inverted. Or not reversed. Continue with the above example: input data = 10 00 01 11 current data = 11 11 11 11, then apply the comparison threshold (in this case, 2) to each sub-unit will only cause the second leftmost sub-unit Being reversed, resulting in: new information = 10 11 01 11.

在此例中該指標欄位長度僅為4位元,且其數值為指標=0100。In this example, the indicator field length is only 4 bits, and its value is index=0100.

指示該第二最左方次單元已被反向。Indicates that the second leftmost subunit has been reversed.

在另一範例中,該指標位元欄位可被做成與該資料單元一樣寬(在此例中為8位元),其中在該指標欄位中的個別位元被設定或重置來指示在該資料單元中那些相對應位元分別被反向或未被反向。In another example, the indicator bit field can be made as wide as the data unit (in this case, 8-bit), wherein individual bits in the indicator field are set or reset. Indicates that the corresponding bits in the data unit are reversed or not reversed, respectively.

可瞭解到,有多種可能的方式來實施本發明的具體實施例。在另一範例中,並再次參照前述的8為底的指標代表,兩個以上的這種3位元欄位可被提供來指示選擇性套用該位元反向之兩個以上的位置。此外,反向器16B可由某些種類的邏輯閘極所取代,像是互斥或,其作業將造成選擇性地反向要寫入到記憶體14之位元中所想要的位元,藉以降低轉換的數目。It can be appreciated that there are many possible ways to implement the specific embodiments of the present invention. In another example, and referring again to the aforementioned 8-base indicator representation, more than two such 3-bit fields may be provided to indicate the selective application of more than two positions of the bit inversion. In addition, inverter 16B may be replaced by some sort of logic gate, such as a mutual exclusion, or its operation will cause a selective reverse to be written to the desired bit in the bits of memory 14. In order to reduce the number of conversions.

再者,必須瞭解到本發明的示例性具體實施例並不僅限於寬度為8位元之資料單元,如前所述,其可套用到任何需要寬度的資料單元(例如64位元、256位元等)。Furthermore, it must be understood that the exemplary embodiments of the present invention are not limited to data units having a width of 8 bits, as described above, which can be applied to any data unit requiring a width (for example, 64-bit, 256-bit units). Wait).

請參照第3A圖,現在提供記憶體控制單元16之作業的非限制性範例。Referring to Figure 3A, a non-limiting example of the operation of memory control unit 16 is now provided.

步驟A:讀取儲存在一記憶體位置中的目前資料;步驟B:比較要被寫入的輸入資料與目前資料,並計 算如果該新資料藉由執行該目前資料與該輸入資料之間的互斥或,並加總互斥或之結果中的「1」之數目來覆寫該目前資料,其中加總結果sum1代表如果該輸入資料覆寫該目前資料時將會發生的位元轉換的數目;步驟C:比較sum1與一預定閥值,且如果sum1等於或超過該閥值,否定該輸入資料的所有或部份,以該目前資料執行一互斥或,並計算一第二sum2,其中如果該否定的輸入資料之sum2+1的數值小於sum1,則位元轉換的數目將在如果該否定的輸入資料被寫入到該記憶體位置中時被降低;及步驟D:設定至少一指標位元在一相對應指標欄位中,以指示該輸入資料是否被儲存,或該輸入資料的所有或一部份之否定型式是否儲存在該記憶體位置中。Step A: reading the current data stored in a memory location; step B: comparing the input data to be written with the current data, and counting If the new data is overwritten by the mutual exclusion of the current data and the input data, and the number of "1"s in the total exclusion or the result is overwritten, the summation result sum1 represents The number of bit transitions that will occur if the input data overwrites the current data; step C: compares sum1 with a predetermined threshold, and if sum1 equals or exceeds the threshold, negates all or part of the input data Executing a mutual exclusion or the current data, and calculating a second sum2, wherein if the value of the negative input data of sum2+1 is less than sum1, the number of bit conversions will be if the negative input data is written to The memory location is lowered; and step D: setting at least one indicator bit in a corresponding indicator field to indicate whether the input data is stored, or a negative pattern of all or a part of the input data Whether it is stored in this memory location.

另一步驟E包含後續讀取儲存在該記憶體位置及該相對應指標欄位中的資料,並根據在該相對應指標欄位中設定的位元來選擇性地反向或不反向該讀取資料的位元。Another step E includes subsequently reading the data stored in the memory location and the corresponding indicator field, and selectively or not reversing the bit according to the bit set in the corresponding indicator field. The bit to read the data.

在步驟B中,寫入該資料所需要的能量由Ewrite * Sum+ERead * 8表示。In step B, the energy required to write the material is represented by E write * Sum + E Read * 8.

前述的範例示於第3B圖,其中該範例假設該目前資料皆為0,且該資料的數值範圍由250到255。在此例中,一指標位元以一8位元字元來使用。加入一位元來指示該配對中的改變顯示在Sum Xor+1,其代表在該配對改變之後將被切換之位元的總數。The foregoing example is shown in Figure 3B, where the example assumes that the current data is all zero and the value of the data ranges from 250 to 255. In this example, an indicator bit is used in an 8-bit character. A one-bit is added to indicate that the change in the pair is displayed in Sum Xor+1, which represents the total number of bits to be switched after the pairing change.

第4圖所述為根據本發明示例性具體實施例中操作一 記憶體裝置的方法說明。該方法包括在區塊4A中,於利用一第二單元的資料覆寫一第一單元的資料在記憶體裝置中一位置處之前,決定寫入第二單元的資料是否要比利用至少一次單元中將位元反向之第二單元的資料會需要更多的能量。如果其判定寫入利用至少一次單元中將位元反向之第二單元的資料會需要較少的能量,該方法另包括在區塊4B中利用至少一次單元中將位元反向之修正的第二單元的資料來覆寫第一單元的資料,並配合寫入至少一位元來指示在具有反向的位元之次單元的資料之修正的單元之資料中的位置。Figure 4 illustrates an operation 1 in accordance with an exemplary embodiment of the present invention. Description of the method of the memory device. The method includes, in block 4A, determining whether to write data of the second unit to at least one unit before overwriting a data of the first unit with a data of the second unit at a position in the memory device. The data of the second unit in which the locator reverses will require more energy. If it is determined that writing data using the second unit that reverses the bit in at least one of the cells would require less energy, the method further includes correcting the bit inversion in at least one of the cells in block 4B. The data of the second unit overwrites the data of the first unit, and writes at least one bit to indicate the position in the data of the unit of the correction of the data of the secondary unit having the reversed bit.

第3A圖及第4圖中所示的多個區塊可以視為方法步驟、及/或視為作業,其由於儲存在一電腦可讀取媒體中的電腦程式碼之執行結果,及/或建構成執行相關功能之複數個耦合的邏輯電路元件。亦請注意到第2圖所示之記憶體控制單元16之部份或全部功能可藉由單獨或結合於硬體電路來執行儲存在一電腦可讀取媒體中的電腦程式碼來實施。The plurality of blocks shown in FIGS. 3A and 4 may be considered as method steps, and/or as jobs, due to execution results of computer code stored in a computer readable medium, and/or A plurality of coupled logic circuit elements that perform the relevant functions are constructed. It is also noted that some or all of the functions of the memory control unit 16 shown in FIG. 2 can be implemented by executing computer code stored in a computer readable medium, either alone or in combination with a hardware circuit.

亦必須注意到該指標欄位可儲存成相關於在相同記憶體14中相對應資料位元,或者其可分別儲存在相同或不同種類之另一記憶體中,其被定址並同步於定址及讀取該(資料)記憶體14來讀取。It must also be noted that the indicator field can be stored in relation to the corresponding data bit in the same memory 14, or it can be stored in another memory of the same or different kind, which is addressed and synchronized to the address and The (data) memory 14 is read for reading.

請另注意到套用本發明此具體實施例可提供儲存在記憶體14中該資料之安全位準,其不需要儲存在該指標欄位中相對應的資訊,其將更為困難來讀出及解譯該資料(具有 選擇性地整個反向之多個位元)。Please note that the specific embodiment of the present invention provides a safe level of the data stored in the memory 14, which does not require the corresponding information stored in the indicator field, which would be more difficult to read and Interpret the information (with Selectively multiple bits in the entire reverse).

本發明的具體實施例亦關於具有圖案化媒體之硬碟機。Particular embodiments of the invention are also directed to hard disk drives having patterned media.

本發明的示例性具體實施例可套用到硬碟機,其中長的資料串流儲存在磁區中。目前磁碟機在一磁區中大約儲存512位元組,而磁區基本上以區塊重新寫入。但是,其它的磁碟機媒體被投影而圖案化,其方式為每個位元存在於該圖案化媒體之個別分散的部份,並可個別地寫入。藉由降低1到0或反之亦然的轉換數目,該寫入電流可以降低。在一很長的資料串流中,可套用該等指標位元。An exemplary embodiment of the present invention can be applied to a hard disk drive in which a long stream of data is stored in a magnetic zone. Currently, the disk drive stores approximately 512 bytes in a magnetic region, while the magnetic regions are substantially rewritten in blocks. However, other disk media are projected and patterned in such a way that each bit exists in an individual discrete portion of the patterned media and can be individually written. The write current can be reduced by reducing the number of transitions from 1 to 0 or vice versa. In a very long stream of data, the indicator bits can be applied.

一磁區為在一硬碟機上資料儲存的基本單元。該術語「磁區」源自數學術語,其稱之為一圓形的派形角度區段,由半徑限制兩側,第三側由該圓形的周長限制。在本質上,一硬碟包含形成一圓形之預定磁區的一群組,且預定磁區的一給定圓形被定義成一單一磁軌。一同心圓群組(磁軌)定義一碟盤的一單一表面。早期硬碟機之每個磁軌位置具有相同數目的磁區,且基本上在每個磁軌中磁區的數目在不同型號之間皆相當標準。當一硬碟機以其預設值預備時,每個磁區能夠儲存512位元組的資料。在硬碟機技術中目前的進展已經允許每個磁軌的磁區(“SPT”,“Sector per track”)數目可以顯著地改變。A magnetic zone is the basic unit for data storage on a hard disk drive. The term "magnetic region" is derived from mathematical terminology, which is referred to as a circular segment of angular shape, bounded by a radius on both sides, and the third side is bounded by the circumference of the circle. In essence, a hard disk includes a group of predetermined magnetic regions forming a circle, and a given circle of the predetermined magnetic region is defined as a single track. A concentric group (track) defines a single surface of a disc. Each track position of an early hard disk drive has the same number of magnetic regions, and the number of magnetic regions in each track is substantially standard between different models. When a hard disk drive is prepared with its preset value, each magnetic zone can store 512 bytes of data. Current advances in hard disk drive technology have allowed the number of magnetic zones ("SPT", "Sector per track") per track to vary significantly.

本發明的示例性具體實施例之好處可同時適用具有每個磁軌固定數目的磁區之硬碟機與具有每個磁軌可變數目之硬碟機。本發明之示例性具體實施例亦可用於改善基於 圖案化媒體之硬碟機,其中個別位元可分別被記錄(其相對於在每次寫入作業記錄至少一整個磁區)。The benefits of an exemplary embodiment of the present invention can be applied to both a hard disk drive having a fixed number of magnetic regions per track and a hard disk drive having a variable number of tracks per track. Exemplary embodiments of the present invention may also be used to improve based on A hard disk drive for patterning media in which individual bits can be recorded separately (which is relative to at least one entire magnetic zone recorded per write job).

一磁區的資料之指標欄位可視需要儲存在該磁區的開頭或結束處。另外,一給定磁軌的一或多個磁區可專用於儲存在該磁軌中所有磁區的指標欄位。亦可使用相對於所儲存的磁碟資料之指標資訊的其它配置。The indicator field of the data of a magnetic zone can be stored at the beginning or end of the magnetic zone as needed. Additionally, one or more magnetic regions of a given track may be dedicated to index fields stored in all of the magnetic regions of the track. Other configurations of indicator information relative to the stored disk data may also be used.

請注意到在使用一磁碟機陣列而實施的一資料儲存具體實施例中,該陣列有像是便宜碟片冗餘陣列(“RAID”,Redundant array of inexpensive disks)具體實施例,且做為一非限制範例,8個磁碟機可用於儲存該資料,而一第九個磁碟機可用於儲存該指標資訊,可配合錯誤偵測及修正資訊。亦有可能一些其它的RAID式組織。It is noted that in a data storage implementation implemented using a disk array, the array has a specific embodiment such as a "Redundant array of inexpensive disks" ( As a non-limiting example, 8 drives can be used to store the data, and a ninth disk drive can be used to store the indicator information for error detection and correction. It is also possible for some other RAID-style organizations.

本發明的示例性具體實施例可用其它方式用於預先處理要寫入到記憶體之資料。例如,在一些應用中,資料可經常重新寫入。一非限制性範例為一種應用,其中複數個客戶端之交易資訊可於一天之內存檔。請參照第5圖,一資料緩衝器30,像是一先進先出(FIFO,“First in-first out”)緩衝器,可被提供用於在該客戶端資訊被傳送到記憶體14之前被儲存。藉由讀取並預先處理儲存在資料緩衝器30中的資訊,轉換的數目可以在實際被寫入到記憶體14之資料中被降低。例如,辨識到先前資料位元組#2匹配該目前資料,該等轉換不需要被反轉,其將在當資料位元組#2先被寫入到記憶體32,接著是資料位元組#1,然後是目前資料位元組時發生。Exemplary embodiments of the present invention may be used in other ways to pre-process data to be written to memory. For example, in some applications, data can be rewritten frequently. A non-limiting example is an application in which transaction information for a plurality of clients can be archived within one day. Referring to FIG. 5, a data buffer 30, such as a first in first out (FIFO) buffer, can be provided for being used before the client information is transferred to the memory 14. Store. By reading and pre-processing the information stored in the data buffer 30, the number of conversions can be reduced in the material actually written to the memory 14. For example, recognizing that the previous data byte #2 matches the current data, the conversions need not be reversed, which will be written to the memory 32 first, then the data byte, when the data byte #2 is first written. #1, then the current data byte occurs.

目前資料00001111資料位元組#1 11111111資料位元組#2 00001111Current data 00001111 data byte group #1 11111111 data byte group #2 00001111

在此例中,並在偵測到目前資料匹配資料位元組#2時,僅有目前資料需要被寫入,而並非資料位元組#2及#1(或另外僅資料位元組#2被傳送到記憶體14,且資料位元組#1及目前資料位元組可被抹除)。In this example, and when the current data matching data byte #2 is detected, only the current data needs to be written, not the data bytes #2 and #1 (or only the data byte # 2 is transferred to the memory 14, and the data byte #1 and the current data byte can be erased).

請注意到當緩衝器30被描述成儲存要寫入的資料到記憶體32中相同的位置時,在其它具體實施例中,緩衝器30可儲存要套用到處理器12之算術邏輯單元(ALU,“Arithmetic logic unit”)之佇列化指令。Note that when the buffer 30 is described as storing the data to be written to the same location in the memory 32, in other embodiments, the buffer 30 can store the arithmetic logic unit (ALU) to be applied to the processor 12. , "Arithmetic logic unit").

第6圖所示為一種資料處理器之一部份的簡化觀視,像是微處理器60,其中包括ALU 70、暫存器A72、B74及C68、指令解碼器62、指令暫存器66、計數器76及位址閂鎖78。計數器76及位址閂鎖78被連接至位址匯流排80。微處理器60可執行一組指令,一典型指令集之子集合如下所示。Figure 6 shows a simplified view of a portion of a data processor, such as microprocessor 60, which includes ALU 70, registers A72, B74, and C68, instruction decoder 62, and instruction register 66. , counter 76 and address latch 78. Counter 76 and address latch 78 are coupled to address bus 80. Microprocessor 60 can execute a set of instructions, a subset of which is shown below.

.LOAD A -由一記憶體位址載入一數值到暫存器A.LOAD B -由一記憶體位址載入一數值到暫存器B.CON A -載入一定值到暫存器A.CON B -載入一定值到暫存器B.CON C -載入一定值到暫存器C.SAVE B -儲存暫存器B中的數值到一記憶體位址.SAVE C -儲存暫存器C中的數值到一記憶體位址.ADD -相加暫存器A中的數值與暫存器B中的數值,並儲存該結果至暫存器C.SUB-將暫存器B中的數值減去暫存器A中的數值,並儲存該結果至暫存器C.MUL -將暫存器A中的數值乘以暫存器B中的數值,並儲存該結果至暫存器C.DIV -將暫存器A中的數值除以暫存器B中的數值,並儲存該結果至暫存器C . LOAD A - Loading of a value to a memory address register A. LOAD B - B register to load a value of a memory address. CON A - loading a predetermined value to register A. CON B - predetermined value loaded into register B. CON C - loading a predetermined value to the register C. SAVE B - Stores the value in register B to a memory address . SAVE C - Stores the value in register C to a memory address . ADD - Adds the value in register A to the value in register B and stores the result in register C. SUB- the value obtained by subtracting the value in the register B in the register A, and stores the result to the register C. MUL - the value in register A is multiplied by the value in the register B, and stores the result to the register C. DIV - Divide the value in register A by the value in register B and store the result in scratchpad C

一程式為一組序列化指令。微處理器60消耗能量來改變ALU 70或暫存器68、72及74之電路中位元的狀態。可減少被改變之位元數目的方法可以降低該運算的整體能量。可完成此目的之一種方法係包括在微處理器60中的一功率調配器64,其可檢查指令及資料匯流排82來最小化轉換數目及其因此所需功率。A program is a set of serialized instructions. Microprocessor 60 consumes energy to change the state of the bits in the circuitry of ALU 70 or registers 68, 72, and 74. A method that reduces the number of bits that are changed can reduce the overall energy of the operation. One method that can accomplish this is to include a power adapter 64 in the microprocessor 60 that can inspect the command and data busbars 82 to minimize the number of transitions and thus the power required.

在一非限制性範例中,加上1及255造成改變0000 0000 1111 1111到0000 0001 0000 0000,其需要9個位元由0到1或1到0之轉換。此改變可由以下的指令集來執行:LOAD A 200(在此例中為載入暫存器A在記憶體位置200-255中的數值)CON B 1(載入數字「1」到暫存器B中) ADD(相加暫存器A中的數值與暫存器B中的數值,並儲存在暫存器C)In a non-limiting example, adding 1 and 255 causes a change of 0000 0000 1111 1111 to 0000 0001 0000 0000, which requires a conversion of 9 bits from 0 to 1 or 1 to 0. This change can be performed by the following instruction set: LOAD A 200 (in this case, the value loaded into register A in memory locations 200-255) CON B 1 (loading the number "1" to the scratchpad B) ADD (add the value in register A and the value in register B and store it in register C)

功率調配器64監視指令暫存器66、資料匯流排82,且暫存器68、72及74可利用一降低能量的指令集來取代某些指令序列的指令,例如使用:CON C 256(載入數字「256」到暫存器C中)The power dispatcher 64 monitors the instruction register 66, the data bus 82, and the registers 68, 72, and 74 can replace the instructions of certain instruction sequences with a reduced energy instruction set, for example: CON C 256 Enter the number "256" into the scratchpad C)

此指令(CON C 256)消除或降低將發生在ALU 70中的處理,及在暫存器A 72與B 74中的位元改變,藉以節省能量。This instruction (CON C 256) eliminates or reduces the processing that will occur in the ALU 70, and the bit changes in the registers A 72 and B 74 to save energy.

第7圖所述為根據本發明示例性具體實施例中操作功率調配器64的方法說明。該方法包括:在區塊100中,讀取一第一指令集;在區塊110中,讀取一資料匯流排;且在區塊120中,讀取儲存在至少一資料暫存器中的暫存器值。該方法另提供在區塊130中功率調配器64為了能量使用的目的來分析該第一指令集、資料匯流排及暫存器數值。在區塊140中,如果一第二指令集被決定要提供與具有較低能量使用之第一指令集之相同結果,其用於取代第一指令集。然後所得到的指令集可套用到ALU 70。FIG. 7 is a description of a method of operating power adapter 64 in accordance with an exemplary embodiment of the present invention. The method includes: in block 100, reading a first set of instructions; in block 110, reading a data bus; and in block 120, reading the stored in at least one data register The scratchpad value. The method further provides that the power adapter 64 in block 130 analyzes the first instruction set, data bus, and scratchpad values for energy usage purposes. In block 140, if a second set of instructions is determined to provide the same result as the first set of instructions with lower energy usage, it is used to replace the first set of instructions. The resulting set of instructions can then be applied to the ALU 70.

要操作該功率調配器64之方法可僅實施在硬體上、或在軟體中、包括韌體,或硬體及軟體的組合,其中包括韌體。The method of operating the power adapter 64 can be implemented only on a hardware, or in a soft body, including a firmware, or a combination of hardware and software, including a firmware.

本發明的示例性具體實施例亦可透過使用一功率階級來實施。在某些態樣中關連於先前的具體實施例,可降低功率消耗,並藉由使用記憶體緩衝器30進一步降低,其較佳地是比記憶體14每次轉換要消耗較低的功率,以保持所要儲存的資料。Exemplary embodiments of the invention may also be implemented using a power class. In some aspects related to the prior embodiments, power consumption can be reduced and further reduced by the use of memory buffer 30, which preferably consumes less power per conversion than memory 14. To maintain the information you want to store.

本技藝專業人士在看了先前的說明,並配合附屬圖式及附屬申請專利範圍閱讀時,明顯地可有多種修正與調整。例如,其它類似或同等的記憶體裝置、電路及系統架構、資料寬度及類似者之使用,可由本技藝專業人士進行嘗試。但是,本發明之教示之所有這些及類似修正仍將落在本發明範疇之內。The skilled artisan can clearly see a variety of corrections and adjustments when reading the previous descriptions and reading them in conjunction with the accompanying drawings and the scope of the patent application. For example, other similar or equivalent memory devices, circuit and system architectures, data widths, and the like may be used by those skilled in the art. However, all such and similar modifications of the teachings of the present invention will still fall within the scope of the present invention.

在另一範例中,在一系統/記憶體架構中有可能使用不止兩個位準邏輯(例如有可能使用三個位準邏輯位準),則該等指標位元可直接放置在該資料流中,並解碼成像是自該記憶體裝置讀出的資料。In another example, it is possible to use more than two levels of logic in a system/memory architecture (eg, it is possible to use three levels of logic levels), and the indicator bits can be placed directly in the data stream. And decoding the image is the material read from the memory device.

在此例中,例如該資料使用兩個邏輯位準儲存,而該指標位元使用一第三邏輯位準來儲存。在此例中,該指標欄位可被視為分散到被儲存且被讀回之整個資料內。In this example, for example, the data is stored using two logical levels, and the indicator bits are stored using a third logical level. In this case, the indicator field can be considered to be scattered throughout the entire data that is stored and read back.

再者,使用本發明之範例中某些特徵可以在不具有相對應使用其它特徵之下而仍具有優點。因此,先前的說明必須僅視為本發明之原理、教示、範例及示例性具體實施例之例示,而非其限制。Moreover, the use of certain features of the examples of the invention may be advantageous without the corresponding use of other features. Accordingly, the foregoing description is to be considered as illustrative of

10‧‧‧資料處理系統10‧‧‧Data Processing System

12‧‧‧處理器12‧‧‧ Processor

14‧‧‧記憶體14‧‧‧ memory

16‧‧‧記憶體控制單元16‧‧‧Memory Control Unit

16A‧‧‧比較單元16A‧‧‧Comparative unit

16B‧‧‧反向器16B‧‧‧ reverser

16C‧‧‧反向器控制信號線16C‧‧‧Inverter control signal line

16D‧‧‧讀取單元16D‧‧‧Reading unit

18A‧‧‧匯流排18A‧‧‧ busbar

18B‧‧‧匯流排18B‧‧‧ Busbar

18C‧‧‧匯流排18C‧‧‧ busbar

20‧‧‧暫存器20‧‧‧ register

30‧‧‧資料緩衝器30‧‧‧Data buffer

60‧‧‧微處理器60‧‧‧Microprocessor

62‧‧‧指令解碼器62‧‧‧ instruction decoder

64‧‧‧功率調配器64‧‧‧Power adapter

66‧‧‧指令暫存器66‧‧‧ instruction register

68‧‧‧暫存器C68‧‧‧Scratchpad C

70‧‧‧算術邏輯單元70‧‧‧Arithmetic Logic Unit

72‧‧‧暫存器A72‧‧‧Storage A

74‧‧‧暫存器B74‧‧‧Register B

76‧‧‧計數器76‧‧‧ counter

78‧‧‧位址閂鎖78‧‧‧ address latch

80‧‧‧位址匯流排80‧‧‧ address bus

82‧‧‧資料匯流排82‧‧‧ data bus

先前所述及其它的這些技術之態樣在以下較佳具體實施例的實施方式並配合附屬圖面可更為清楚,其中:第1圖為適用於實施本發明之資料處理系統的簡化區塊圖。The foregoing and other aspects of these techniques are apparent from the following detailed description of the preferred embodiments of the preferred embodiments, in which: FIG. 1 is a simplified block of a data processing system suitable for use in the practice of the present invention. Figure.

第2圖為根據本發明示例性具體實施例中第1圖的記憶體控制單元之一部份的簡化區塊圖。Figure 2 is a simplified block diagram of a portion of a memory control unit of Figure 1 in accordance with an exemplary embodiment of the present invention.

第3A圖為一種操作第1圖之記憶體控制單元的方法之非限制性範例的邏輯流程圖。Figure 3A is a logic flow diagram of a non-limiting example of a method of operating the memory control unit of Figure 1.

第3B圖為具有相同數值之目前資料的輸入資料之多種範例的表格,其反應出第3A圖之方法的運作。Figure 3B is a table of various examples of input data for current data having the same value, which reflects the operation of the method of Figure 3A.

第4圖為根據本發明之方法的非限制性範例之邏輯流程圖。Figure 4 is a logic flow diagram of a non-limiting example of a method in accordance with the present invention.

第5圖為根據本發明示例性具體實施例所管理的資料緩衝器。Figure 5 is a data buffer managed in accordance with an exemplary embodiment of the present invention.

第6圖為適用於實施本發明之資料處理器的一部份(像是微處理器)的簡化區塊圖。Figure 6 is a simplified block diagram of a portion (such as a microprocessor) suitable for use in implementing the data processor of the present invention.

第7圖為根據本發明之方法的非限制性範例之邏輯流程圖。Figure 7 is a logic flow diagram of a non-limiting example of a method in accordance with the present invention.

14‧‧‧記憶體14‧‧‧ memory

16‧‧‧記憶體控制單元16‧‧‧Memory Control Unit

16A‧‧‧比較單元16A‧‧‧Comparative unit

16B‧‧‧反向器16B‧‧‧ reverser

16C‧‧‧反向器控制信號線16C‧‧‧Inverter control signal line

16D‧‧‧讀取單元16D‧‧‧Reading unit

20‧‧‧暫存器20‧‧‧ register

Claims (35)

一種操作一記憶體裝置的方法,包含下列步驟:在記憶體裝置中一位置處以一第二單元的資料覆寫一第一單元的資料之前,決定是否寫入該第二單元的資料較寫入一修正第二單元的資料需要較多能量,其中該修正第二單元的資料包含具有反向位元之至少一次單元及具有未被反向位元之至少一其他次單元之該第二單元的資料;回應於決定寫入該修正第二單元的資料需要較少能量,則以該修正第二單元的資料來覆寫該第一單元的資料,並寫入至少一位元,以指示在該修正第二單元的資料中具有該反向位元之該至少一次單元的一位置。 A method of operating a memory device, comprising the steps of: determining whether to write data of the second unit to a second unit before overwriting data of a first unit at a location in the memory device; Correcting the data of the second unit requires more energy, wherein the data of the modified second unit includes at least one unit having a reverse bit and the second unit having at least one other sub-unit having no reverse bit Data; in response to determining that the data to be written into the second unit of the correction requires less energy, the data of the first unit is overwritten with the data of the modified second unit, and at least one bit is written to indicate Correcting a position of the at least one unit of the second unit having the reverse bit. 如申請專利範圍第1項所述之方法,另包含後續讀取該修正第二單元的資料及該至少一位元,並使該被指示為具有該反向位元之任何次單元中的位元反向,以提供輸出資料。 The method of claim 1, further comprising: subsequently reading the data of the modified second unit and the at least one bit, and causing the bit to be indicated as any sub-unit having the reverse bit The meta is reversed to provide output data. 如申請專利範圍第1項所述之方法,其中一單元的資料包括N個位元,其中N為一整數,且其中一次單元包含一位元到N個位元。 The method of claim 1, wherein the data of one unit comprises N bits, wherein N is an integer, and wherein the primary unit comprises one bit to N bits. 如申請專利範圍第1項所述之方法,其中該至少一位元包含複數個位元,其被編碼成一群組來指示一數值。 The method of claim 1, wherein the at least one bit comprises a plurality of bits that are encoded into a group to indicate a value. 如申請專利範圍第1項所述之方法,其中該至少一位元包含複數個位元,其中該複數個位元中個別的位元 指定複數個次單元之一相對應的個別次單元。 The method of claim 1, wherein the at least one bit comprises a plurality of bits, wherein the individual bits of the plurality of bits Specifies the individual subunits corresponding to one of the plurality of subunits. 如申請專利範圍第1項所述之方法,其中該記憶體裝置包含一半導體式的記憶體裝置。 The method of claim 1, wherein the memory device comprises a semiconductor memory device. 如申請專利範圍第1項所述之方法,其中該記憶體裝置包含一碟片式或一磁帶式的記憶體裝置。 The method of claim 1, wherein the memory device comprises a disc or a tape type memory device. 如申請專利範圍第1項所述之方法,其中該至少一位元與該修正第二單元的資料被寫入之記憶體裝置相同。 The method of claim 1, wherein the at least one bit is the same as the memory device in which the data of the modified second unit is written. 如申請專利範圍第1項所述之方法,其中該至少一位元被寫入與該修正第二單元的資料被寫入之記憶體裝置不同的記憶體裝置。 The method of claim 1, wherein the at least one bit is written to a memory device different from the memory device in which the data of the modified second unit is written. 如申請專利範圍第1項所述之方法,另包含於寫入第二單元的資料到該記憶體裝置之前,緩衝化該第二單元的資料。 The method of claim 1, further comprising buffering the data of the second unit before writing the data of the second unit to the memory device. 一種操作一記憶體裝置的設備,包含:一記憶體控制單元,其經配置在記憶體裝置中一位置處以一第二單元的資料覆寫一第一單元的資料之前,決定是否寫入該第二單元的資料較寫入一修正第二單元的資料需要較少能量,其中該修正第二單元的資料包含具有反向位元之至少一次單元及具有未被反向位元之至少一其他次單元之該第二單元的資料;該記憶體控制單元更經配置,以回應於寫入該修正第二單元的資料需要較少能量之決定,配合一指標欄位對該記憶體裝置傳送該修正第二單元的資料,其中該指 標欄位包含至少一位元,以指示在具有該反向位元之該至少一次單元之該修正第二單元的資料的一位置。 An apparatus for operating a memory device, comprising: a memory control unit configured to determine whether to write the first unit before the data of the first unit is overwritten by a second unit of data at a location in the memory device The data of the two units requires less energy than the data of the modified second unit, wherein the data of the modified second unit includes at least one unit having the reversed bit and at least one other time having the unverted bit. Data of the second unit of the unit; the memory control unit is further configured to respond to the decision to write the modified second unit to require less energy, and to transmit the correction to the memory device in conjunction with an indicator field The second unit of information, where the finger The target field includes at least one bit to indicate a position of the modified second unit of the at least one unit having the reversed bit. 如申請專利範圍第11項所述之設備,其中該記憶體控制裝置更包含:另經配置以回應於讀取該修正第二單元的資料及該相對應指標欄位,在使該被指示為具有該反向位元之任何次單元的位元反向之後,提供輸出資料。 The device of claim 11, wherein the memory control device further comprises: configured to respond to the reading of the corrected second unit data and the corresponding indicator field, wherein the indication is After the bit of any sub-unit having the reverse bit is inverted, the output data is provided. 如申請專利範圍第11項所述之設備,其中一單元的資料包括N個位元,其中N為一整數,且其中一次單元包含一位元到N個位元。 The device of claim 11, wherein the data of one unit comprises N bits, wherein N is an integer, and wherein the primary unit comprises one bit to N bits. 如申請專利範圍第11項所述之設備,其中該指標欄位包含複數個位元,其被編碼成一群組來指示一數值。 The device of claim 11, wherein the indicator field comprises a plurality of bits, which are encoded into a group to indicate a value. 如申請專利範圍第11項所述之設備,其中該指標欄位包含複數個位元,其中該複數個位元中個別的位元指定複數個次單元之一相對應的個別次單元。 The device of claim 11, wherein the indicator field comprises a plurality of bits, wherein the individual bits of the plurality of bits specify an individual sub-unit corresponding to one of the plurality of sub-units. 如申請專利範圍第11項所述之設備,其中該記憶體裝置包含一半導體式的記憶體裝置。 The device of claim 11, wherein the memory device comprises a semiconductor memory device. 如申請專利範圍第11項所述之設備,其中該記憶體裝置包含一碟片式或一磁帶式的記憶體裝置。 The device of claim 11, wherein the memory device comprises a disc or a tape type memory device. 如申請專利範圍第11項所述之設備,其中該指標欄位與該修正第二單元的資料被寫入之記憶體裝置相同。 The device of claim 11, wherein the indicator field is the same as the memory device in which the data of the modified second unit is written. 如申請專利範圍第11項所述之設備,其中該指標欄位被寫入與該修正第二單元的資料被寫入至之記憶體裝置不同的記憶體裝置。 The device of claim 11, wherein the indicator field is written to a memory device different from the memory device to which the data of the modified second unit is written. 如申請專利範圍第11項所述之設備,其具體實施成一積體電路。 The device described in claim 11 is specifically embodied as an integrated circuit. 如申請專利範圍第11項所述之設備,其具體實施成一積體電路,其具有一資料處理器,並具有該記憶體裝置。 The device of claim 11, which is embodied as an integrated circuit having a data processor and having the memory device. 如申請專利範圍第21項所述之設備,其中該記憶體裝置包含該資料處理器的一部份。 The device of claim 21, wherein the memory device comprises a portion of the data processor. 如申請專利範圍第11項所述之設備,另包含一緩衝器,以在寫入該第二單元的資料到該記憶體裝置之前,佇列該第二單元的資料。 The device of claim 11, further comprising a buffer for listing the data of the second unit before writing the data of the second unit to the memory device. 一種儲存電腦程式指令的記憶體媒體,其在執行時可造成的作業包含:在記憶體裝置中一位置處以一第二單元的資料覆寫一第一單元的資料之前,決定是否寫入該第二單元的資料較寫入一修正第二單元的資料需要較多能量,其中該修正第二單元的資料包含具有反向位元之至少一次單元及具有未被反向位元之至少一其他次單元之該第二單元的資料;回應於決定寫入該修正第二單元的資料需要較少能量,則以該修正第二單元的資料來覆寫該第一單元的資料,並寫入至少一位元,以指示在該修正第二單元的資料中具有該反向位元之該至少一次單元的一位置。 A memory medium storing computer program instructions, which may be caused by an operation of: determining whether to write the first unit before overwriting a first unit of data with a second unit of data at a position in the memory device The data of the two units requires more energy than writing the data of the second unit, wherein the data of the modified second unit includes at least one unit having the reverse bit and at least one other time having the unverted bit. Data of the second unit of the unit; in response to determining that the data written to the second unit of the correction requires less energy, the data of the first unit is overwritten with the data of the modified second unit, and at least one is written a bit to indicate a position of the at least one unit having the reverse bit in the data of the modified second unit. 如申請專利範圍第24項所述之記憶體媒體,另包含一 作業,其回應於相繼讀取該修正第二單元的資料及該至少一位元,使該被指示為具有該反向位元之任何次單元的位元反向,以提供輸出資料。 The memory medium according to claim 24 of the patent application, further comprising a And a job, in response to successively reading the data of the modified second unit and the at least one bit, such that the bit indicated as having any sub-unit of the reverse bit is inverted to provide output data. 如申請專利範圍第24項所述之記憶體媒體,其中一單元的資料包括N個位元,其中N為一整數,且其中一次單元包含一位元到N個位元。 The memory medium of claim 24, wherein the data of one unit comprises N bits, wherein N is an integer, and wherein the primary unit comprises one bit to N bits. 如申請專利範圍第24項所述之記憶體媒體,其中該至少一位元包含複數個位元,其被編碼成一群組來指示一數值。 The memory medium of claim 24, wherein the at least one bit comprises a plurality of bits encoded as a group to indicate a value. 如申請專利範圍第24項所述之記憶體媒體,其中該至少一位元包含複數個位元,其中該複數個位元中個別的位元指定複數個次單元之一相對應的個別次單元。 The memory medium of claim 24, wherein the at least one bit element comprises a plurality of bits, wherein the individual bits of the plurality of bits specify an individual sub-unit corresponding to one of the plurality of sub-units . 如申請專利範圍第24項所述之記憶體媒體,其中該記憶體裝置包含一半導體式的記憶體裝置。 The memory medium of claim 24, wherein the memory device comprises a semiconductor memory device. 如申請專利範圍第24項所述之記憶體媒體,其中該記憶體裝置包含一碟片式或一磁帶式的記憶體裝置。 The memory medium of claim 24, wherein the memory device comprises a disc or a tape type memory device. 如申請專利範圍第24項所述之記憶體媒體,其中該至少一位元與該修正第二單元的資料被寫入之記憶體裝置相同。 The memory medium of claim 24, wherein the at least one bit is the same as the memory device in which the data of the modified second unit is written. 如申請專利範圍第24項所述之記憶體媒體,其中該至少一位元被寫入與該修正第二單元的資料被寫入之記憶體裝置不同的記憶體裝置。 The memory medium of claim 24, wherein the at least one bit is written to a memory device different from the memory device in which the data of the modified second unit is written. 如申請專利範圍第24項所述之記憶體媒體,另包含:於寫入第二單元的資料到該記憶體裝置之前,緩衝化 第二單元的資料。 The memory medium according to claim 24, further comprising: buffering before writing the data of the second unit to the memory device Information on the second unit. 一種操作一記憶體控制單元的方法,包含下列步驟:讀取儲存在一記憶體位置中的目前資料;與該目前資料比較要被寫入的輸入資料,並計算如果藉由執行該目前資料與該輸入資料之間的一「互斥或(exclusive OR)」,並加總該互斥或之結果中的「1」之數目,該輸入資料覆寫該目前資料時發生的位元轉換數目,其中加總結果sum1代表如果該輸入資料覆寫該目前資料時將會發生的位元轉換的數目;比較sum1與一預定閥值,回應於決定sum1等於或超過該閥值,藉由否定該輸入資料的至少一部份以產生否定的輸入資料,其中該輸入資料的至少一其他部份不否定;與該目前資料比較該否定的輸入資料,並計算如果藉由執行該目前資料與該否定的輸入資料之間的一「互斥或」,並加總該互斥或之結果中的「1」之數目,該否定的輸入資料覆寫該目前資料時發生的位元轉換數目,其中加總結果sum2代表如果該否定的輸入資料覆寫該目前資料時將會發生的位元轉換的數目;回應於決定sum2+1的一數值小於sum1,在一相對應指標欄位中,設定至少一指標位元,以指示該輸入資料的一部份否定型式被儲存在該記憶體位置中。 A method of operating a memory control unit, comprising the steps of: reading current data stored in a memory location; comparing input data to be written with the current data, and calculating if by executing the current data a "exclusive OR" between the input data, and summing the number of "1"s in the mutually exclusive result, the number of bit conversions occurring when the input data overwrites the current data, The summation result sum1 represents the number of bit conversions that will occur if the input data overwrites the current data; comparing sum1 with a predetermined threshold, in response to determining that sum1 equals or exceeds the threshold, by negating the input At least a portion of the data to produce a negative input data, wherein at least one other portion of the input data is not negated; the negative input data is compared with the current data, and if the current data is executed by the negative Enter a "mutual exclusion" between the data and add the number of "1"s in the result of the exclusive exclusion. The negative input data overwrites the bit rotation that occurred when the current data was overwritten. The number of substitutions, wherein the summation result sum2 represents the number of bit conversions that will occur if the negative input data overwrites the current data; a value corresponding to the decision sum2+1 is less than sum1, in a corresponding indicator field And setting at least one indicator bit to indicate that a part of the negative pattern of the input data is stored in the memory location. 如申請專利範圍第34項所述之方法,另包含相繼讀取 儲存在該記憶體位置及該相對應指標欄位中的資料,並根據在該相對應指標欄位中設定的位元來選擇性地使該讀取資料的位元反向或不反向。 For example, the method described in claim 34, and the subsequent reading The data stored in the memory location and the corresponding indicator field, and the bit of the read data is selectively inverted or not inverted according to the bit set in the corresponding indicator field.
TW097129897A 2007-08-09 2008-08-06 Method, apparatus and computer program product providing instruction monitoring for reduction of energy usage and energy reduction when storing data in a memory TWI417719B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/836,210 US7783846B2 (en) 2007-08-09 2007-08-09 Method, apparatus and computer program product providing energy reduction when storing data in a memory
US11/836,212 US20090044032A1 (en) 2007-08-09 2007-08-09 Method, Apparatus and Computer Program Product Providing Instruction Monitoring for Reduction of Energy Usage

Publications (2)

Publication Number Publication Date
TW200912642A TW200912642A (en) 2009-03-16
TWI417719B true TWI417719B (en) 2013-12-01

Family

ID=44724955

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097129897A TWI417719B (en) 2007-08-09 2008-08-06 Method, apparatus and computer program product providing instruction monitoring for reduction of energy usage and energy reduction when storing data in a memory

Country Status (1)

Country Link
TW (1) TWI417719B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555095B2 (en) 2010-07-26 2013-10-08 Apple Inc. Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
US10210116B2 (en) * 2017-04-27 2019-02-19 Qualcomm Incorporated Method, apparatus, and system for semaphore-based protection of power-domain-crossing signals

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873112A (en) * 1996-02-23 1999-02-16 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
TW466829B (en) * 2000-09-25 2001-12-01 United Microelectronics Corp Electricity-saving apparatus of memory circuit
US20020188798A1 (en) * 2001-06-07 2002-12-12 Mitsubishi Denki Kabushiki Kaisha Data processor and data processing method reduced in power consumption during memory access
TW540060B (en) * 2000-06-07 2003-07-01 Advanced Micro Devices Inc Power saving on the fly during reading of data from a memory device
US20040042292A1 (en) * 2002-08-27 2004-03-04 Hitachi, Ltd. Semiconductor device
TW594464B (en) * 2000-06-07 2004-06-21 Fasl Llc Power saving scheme for burst mode implementation during reading of data from a memory device
US20060259716A1 (en) * 2001-08-30 2006-11-16 Micron Technology, Inc. Bit inversion in memory devices

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873112A (en) * 1996-02-23 1999-02-16 Micron Technology, Inc. System and method for encoding data to reduce power and time required to write the encoded data to a flash memory
TW540060B (en) * 2000-06-07 2003-07-01 Advanced Micro Devices Inc Power saving on the fly during reading of data from a memory device
TW594464B (en) * 2000-06-07 2004-06-21 Fasl Llc Power saving scheme for burst mode implementation during reading of data from a memory device
TW466829B (en) * 2000-09-25 2001-12-01 United Microelectronics Corp Electricity-saving apparatus of memory circuit
US20020188798A1 (en) * 2001-06-07 2002-12-12 Mitsubishi Denki Kabushiki Kaisha Data processor and data processing method reduced in power consumption during memory access
US20060259716A1 (en) * 2001-08-30 2006-11-16 Micron Technology, Inc. Bit inversion in memory devices
US20040042292A1 (en) * 2002-08-27 2004-03-04 Hitachi, Ltd. Semiconductor device

Also Published As

Publication number Publication date
TW200912642A (en) 2009-03-16

Similar Documents

Publication Publication Date Title
US7783846B2 (en) Method, apparatus and computer program product providing energy reduction when storing data in a memory
TWI455136B (en) Method for performing data shaping, and associated memory device and controller thereof
US8386868B2 (en) Using programming-time information to support error correction
TWI381387B (en) Storage apparatus, controller and data accessing method thereof
WO2018192488A1 (en) Data processing method and apparatus for nand flash memory device
US20090044032A1 (en) Method, Apparatus and Computer Program Product Providing Instruction Monitoring for Reduction of Energy Usage
CN111712804B (en) Enhanced error correction code capability using variable logical to physical associations of data blocks
KR20120052883A (en) Method and apparatus to perform concurrent read and write memory operations
US11567825B2 (en) Generating error checking data for error detection during modification of data in a memory sub-system
US20190004893A1 (en) Apparatus, non-volatile memory storage device and method for detecting drift in non-volatile memory
US5896493A (en) Raid algorithm using a multimedia functional unit
TW201941054A (en) Performing a decoding operation to simulate switching a bit of an identified set of bits of a data block
TWI417719B (en) Method, apparatus and computer program product providing instruction monitoring for reduction of energy usage and energy reduction when storing data in a memory
US20110213995A1 (en) Method, Apparatus And Computer Program Product Providing Instruction Monitoring For Reduction Of Energy Usage
US9400748B2 (en) System and method for data inversion in a storage resource
TW201939261A (en) Identifying a read operation for a storage device based on a workload of a host system
CN113764029A (en) Apparatus and method for parallel generation of syndrome and partial coefficient information
US11625173B1 (en) Reduced power consumption by SSD using host memory buffer
WO2023108600A1 (en) System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks
TW202020884A (en) Control method for memory and non-transitory computer-readable media
TW441195B (en) Signal decoding method
US20230421175A1 (en) Method and apparatus for decoding low-density parity-check (ldpc) code
WO2022018950A1 (en) Memory system and memory operation program
TWI533325B (en) Methods of reading memory and digital memory devices
CN115220790A (en) Data processing method, processor and electronic equipment

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees