TWI475569B - System, method, and computer program product for delaying an operation that reduces a lifetime of memory - Google Patents
System, method, and computer program product for delaying an operation that reduces a lifetime of memory Download PDFInfo
- Publication number
- TWI475569B TWI475569B TW096144306A TW96144306A TWI475569B TW I475569 B TWI475569 B TW I475569B TW 096144306 A TW096144306 A TW 096144306A TW 96144306 A TW96144306 A TW 96144306A TW I475569 B TWI475569 B TW I475569B
- Authority
- TW
- Taiwan
- Prior art keywords
- life
- memory
- storage
- flash memory
- storage devices
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
本件發明之具體實施例與記憶體有關,更具體地說是與具有壽命限制之記憶體有關。 The specific embodiment of the invention relates to memory, and more particularly to memory having a life limit.
記憶體是現代企業電腦運算系統效能最受限制之層面。記憶體受限層面之一,是因為許多類型記憶體都具有壽命限制。例如,像快閃記憶體之類的非揮發性記憶體的壽命,雖然量很少,但每次抹除及重寫時都會減少。經過上千次抹除與重寫後,該快閃記憶體可能變得愈來愈不可靠。 Memory is the most limited aspect of the performance of modern enterprise computer computing systems. One of the memory-restricted layers is because many types of memory have lifetime limitations. For example, the lifetime of non-volatile memory such as flash memory, although small, is reduced each time it is erased and rewritten. After thousands of erasures and rewrites, the flash memory may become increasingly unreliable.
因此,依據使用類型(例如輕度或重度),快閃記憶體的壽命可能差別相當大,這在各種不同層面上都可能造成問題。例如,快閃記憶體製造商通常會提供一段期限的有限保固。這種保固對於快閃記憶體之輕度至一般的使用可能是足夠的,但對於重度使用情況(例如,在企業應用等情況),可能就需要退回並更換快閃記憶體。 Therefore, depending on the type of use (eg, mild or severe), the lifetime of the flash memory may vary considerably, which can cause problems at various levels. For example, flash memory manufacturers typically offer a limited warranty for a period of time. This warranty may be sufficient for the mild to normal use of flash memory, but for heavy use situations (for example, in enterprise applications, etc.), it may be necessary to return and replace the flash memory.
這種情況可能會嚴重影響快閃記憶體製造商的獲利。尤其,需要持續地為重度使用級客戶更換保固快閃記憶體,可是會大幅侵蝕來自銷售給輕度至一般使用級客戶所獲得的利潤。因此,便有必要解決這些及/或其他與先前技術相關的問題。 This situation can seriously affect the profitability of flash memory manufacturers. In particular, there is a need to continuously replace warranty flash memory for heavy-duty customers, but it can significantly erode profits from sales to light-to-usage customers. Therefore, it is necessary to address these and/or other problems associated with prior art.
本件發明係一延遲記憶體壽命減少操作之系統、方法及電腦程式產品。使用時,至少會識別一與記憶體壽命相關之層面。為達此一目的,至少會依據該層面,提出一種延遲記憶體壽命減少之操作。 The invention is a system, method and computer program product for delaying memory life reduction operations. When used, at least one level related to the life of the memory is identified. In order to achieve this goal, at least according to this aspect, an operation for delaying the life of the memory is proposed.
依據即將說明之不同具體實施例,各種記憶體壽命減少之操作可被控制,以達延長壽命之目的。在本說明內容中,此種操作可以是寫入操作、抹除操作、程式操作,及/或任何其他能夠減少前述壽命之操作。 Depending on the specific embodiment to be described, various memory life reduction operations can be controlled for extended life. In the present description, such operations may be write operations, erase operations, program operations, and/or any other operations that reduce the aforementioned lifetime.
圖1依據一具體實施例,顯示一種可延遲記憶體壽命減少操作之方法100。如圖所示,至少會識別一種與記憶體壽命相關之層面,請參操作102。 1 illustrates a method 100 of delaying memory life reduction operations, in accordance with an embodiment. As shown, at least one level related to the lifetime of the memory is identified, see operation 102.
在本說明內容中,記憶體壽命可包括記憶體展現所需要實用性程度的任何持續時間。例如,在各種具體實施例中,該壽命可包括但不限於期望壽命、實際壽命、估計壽命等。此外,實用性程度可指任何與實用性相關的參數,例如,仍可操作之元件(例如組塊、電池等)百分比、記憶體或元件之可靠性,及/或任何與實用性相關的其他參數。 In the present description, the memory lifetime may include any duration of the degree to which the memory exhibits the required utility. For example, in various embodiments, the lifetime may include, but is not limited to, a desired life, actual life, estimated life, and the like. Furthermore, the degree of practicability may refer to any practicability-related parameter, such as the percentage of components (eg, chunks, batteries, etc.) that are still operational, the reliability of the memory or component, and/or any other utility-related parameter.
另外在本說明內容中,在操作102中所識別與壽命相關的層面在各種具體實施例,可包括一段期間、一記憶體壽命減少的操作率、一項記憶體壽命減少之允許操作總數,以及壽命持續時間等。此外,在一個說明性的具體實施例中,在前述的允許操作總數,以及選擇或期望的壽命 的情況下,可直接計算出在每段時間內之操作數目單位中的最大平均操作率。當然,此種例證方式說明之層面僅係出於說明之目的,因為任何其他壽命之層面亦絕對可識別,其中的理由很快即可明瞭。 Additionally, in this description, the life-relevant aspects identified in operation 102 are in various embodiments, which may include a period of time, a memory lifetime reduction operation rate, a memory operation life reduction total number of allowed operations, and Life duration, etc. Moreover, in one illustrative embodiment, the total number of operations allowed in the foregoing, as well as the selected or expected life. In the case, the maximum average operating rate in the number of operations per unit of time can be directly calculated. Of course, the exemplification of this elaboration is for illustrative purposes only, as any other aspect of life is absolutely identifiable, and the reasons for it will soon be clear.
為達此一目的,至少會依據該層面,提出一種延遲記憶體壽命減少之操作,請參操作104。該延遲因此可以任何方式執行,即在操作102中所識別記憶體壽命層面之至少一部份功能。在本說明內容中,前述操作延遲被認為是包含在僅有部份操作延遲之情況內。例如,在一可包括多重元件之操作情況下,此種延遲可適用於該操作中一或多個(或全部)零件。 In order to achieve this goal, at least according to this aspect, an operation for delaying the life of the memory is proposed, as shown in operation 104. The delay can therefore be performed in any manner, i.e., at least a portion of the functionality of the memory life level identified in operation 102. In the present description, the aforementioned operational delay is considered to be included in the case of only partial operational delays. For example, in the case of operations that may include multiple components, such delays may apply to one or more (or all) of the components in the operation.
在一具體實施例中,操作可藉由延遲一啟動操作的指令來延遲。例如,在回應寫入或抹除指令的確認時,可延遲此一指令之執行。當然,在其他具體實施例中,亦可只延遲操作本身。藉由此種設計,此種延遲一或多個會減少記憶體壽命之操作,可以降低壽命減少效果,至少有部份降低效果。 In a specific embodiment, the operation can be delayed by delaying an instruction to initiate a operation. For example, the execution of this instruction can be delayed in response to an acknowledgment of a write or erase instruction. Of course, in other embodiments, the operation itself may be delayed only. With this design, such one or more delays can reduce the life of the memory, which can reduce the life reduction effect, at least partially reducing the effect.
現在將提出更多關於各種可用架構及功能的說明資訊,各使用者可依其所需實施或不實施前述架構。例如,可使用大量不同技術,以各種不同方法管理延遲,以下將舉例說明。需特別注意的是,以下提出之資訊係出於說明目的,不應以任何方式解釋為限制,以下任何功能均可選擇是否與上述其他功能一同運用。 More information on the various available architectures and functions will now be presented, and each user may or may not implement the aforementioned architecture as needed. For example, a number of different techniques can be used to manage the delay in a variety of different ways, as exemplified below. It is important to note that the information presented below is for illustrative purposes and should not be construed as limiting in any way, and any of the following features can be selected for use with other features described above.
圖2顯示依據另一個具體實施例,用於延遲記憶體壽命減少操作之技術200。本技術200是一種可實現圖1之方法100之實作選項。當然,技術200可在任何需要的環境中實施。應注意的是,前述的定義可適用於本說明中。。 2 shows a technique 200 for delaying memory life reduction operations in accordance with another embodiment. The present technique 200 is an implementation option that implements the method 100 of FIG. Of course, the technology 200 can be implemented in any desired environment. It should be noted that the foregoing definitions are applicable to this description. .
如圖所示,技術200有考慮到會造成記憶體展現最小實用程度、以及最少預期壽命204之操作總數202。從此等資料觀點,就能計算出達成最少預期壽命204之最大平均操作率206。 As shown, the technique 200 has a total number of operations 202 that take into account the minimum usefulness of memory presentation and the minimum expected lifetime 204. From this data point of view, the maximum average operating rate 206 for achieving the minimum expected life of 204 can be calculated.
在使用時,隨著時間進展可監控壽命減少操作的數量。若在任何時間內,這種操作之數量超過最大平均操作率206,如所示方法,任何超過的操作(其造成超過比率)皆可經由計算數量、以及藉著預定時間量,或調整性地基於先前或預測的壽命減少操作率予以延遲。此種預定時間量,在一具體實施例中,可以是一段不超過最大平均操作率206的時間。 In use, the number of life reduction operations can be monitored over time. If at any time the number of such operations exceeds the maximum average operating rate 206, as indicated, any excess operation (which causes the excess ratio) may be calculated by the amount, and by a predetermined amount of time, or adjustatively Delayed based on previous or predicted life reduction operating rates. Such a predetermined amount of time, in one embodiment, may be a period of time that does not exceed a maximum average operating rate of 206.
在各種具體實施例中,可基於各種不同因素決定那種操作會受延遲支配(以及延遲本身的長度)。例如,在一具體實施例中,延遲可基於啟動操作的應用程式而定。在此種具體實施例中,由具有較低優先順序之應用程式所啟動的操作可受延遲支配,而具有較高優先順序的應用程式所啟動的操作則不一定受延遲支配(當可能時)。 In various embodiments, it may be determined based on various factors that the operation will be subject to delay (and the length of the delay itself). For example, in one embodiment, the delay may be based on the application that initiated the operation. In such a specific embodiment, operations initiated by applications with lower priority order may be subject to delay, while operations initiated by applications with higher priority are not necessarily subject to delay (when possible) .
當然,可考慮以獨立應用程式方式在各操作間控制延遲之其他具體實施例。例如,延遲可以適用於一特定類型 的所有操作(例如,抹除操作等),而不論原始應用程式為何。另外,亦可考慮使用混合方式之具體實施例。 Of course, other specific embodiments for controlling the delay between operations in a standalone application manner can be considered. For example, the delay can be applied to a specific type All operations (for example, erase operations, etc.) regardless of the original application. In addition, specific embodiments using a hybrid approach are also contemplated.
此外,可考慮的延遲操作具體實施例還包括造成壽命異常減少的操作或操作模式。在一具體實施例中,僅有這些模式會被延遲。例如,在可以偵測到病毒或粗暴應用操作模式的情況下,僅有來自這些模式的操作會被延遲。 Moreover, specific embodiments of delayed operation that may be considered include operations or modes of operation that result in an abnormally reduced life. In a specific embodiment, only these modes will be delayed. For example, in the case where a virus or rough application mode of operation can be detected, only operations from these modes are delayed.
圖3依據再另一個具體實施例,揭露一種以時間間隔為基礎之技術300可延遲記憶體壽命減少之操作。作為一種選項是,實施本件發明技術300,可以實現圖1之方法100及/或更進一步實現圖2之技術200內容。當然,技術300可在任何需要的環境中實施,同樣應注意的是,前述定義可適用於本說明中。 3 illustrates an operation of a time interval based technology 300 that can delay memory life reduction, in accordance with yet another embodiment. As an option, implementing the inventive technology 300 can implement the method 100 of FIG. 1 and/or further implement the techniques 200 of FIG. Of course, the technique 300 can be implemented in any desired environment, and it should also be noted that the foregoing definitions are applicable to this description.
與圖2技術類似,技術300有考慮到會造成記憶體展現最小實用程度,以及最少預期壽命304之操作總數302。從此等資料觀點,就能計算出達成最少預期壽命304的最大平均操作率306。在使用時,隨著時間進展可監控壽命減少操作之數量。 Similar to the technique of FIG. 2, technique 300 has a total number of operations 302 that are considered to result in minimal memory utility and a minimum expected lifetime of 304. From this data point of view, the maximum average operating rate 306 that achieves the minimum expected life of 304 can be calculated. In use, the number of life reduction operations can be monitored over time.
若在任何時間內,這種操作數量超過最大平均操作率206,如所示方法,則任何過量操作不一定要以無條件方式被延遲(類似圖2技術200)。相反地,此種過量操作可依據啟動操作時之時間間隔有條件地被延遲。舉例來說,此種時間間隔可包括但不限於,一天中之時間、一週中之一日、一年中之一月等等。在另外的具體實施例中,時間間隔可適宜地動態調整至最佳的期間。例如,此種適合及動態調 整可依據在時間間隔的子間隔壽命減少操作的頻率柱狀統計圖而定。 If at any time the number of such operations exceeds the maximum average operating rate 206, as indicated, any excess operation does not have to be delayed in an unconditional manner (similar to Figure 2, technique 200). Conversely, such excess operation can be conditionally delayed depending on the time interval at which the operation is initiated. For example, such time intervals may include, but are not limited to, time of day, one day of the week, one month of the year, and the like. In other embodiments, the time interval can be suitably dynamically adjusted to the optimal period. For example, this fit and dynamic tuning The whole may depend on the frequency histogram of the sub-interval life reduction operation at the time interval.
例如,若以上述方法在星期一、星期二、星期三、星期四等發現過量的操作數量,則有可能確認(例如,預期的)在後續的星期五、星期六及星期日期間的操作數量會較少。因此,無條件延遲此種過量操作除外,也可在不超過最大平均操作率206之可能平均操作率(以一週時間所採樣)下立即執行。當然,如果這些無法解決現實情況,在接下來的一週可能產生某些延遲。雖然前述說明的實例是在一週內的日期條件下,亦可考慮其他一個月內數週、一年內數月等更大規模的使用記憶體變動具體實施例。 For example, if an excessive amount of operations is found on Monday, Tuesday, Wednesday, Thursday, etc. by the above method, it is possible to confirm (for example, expected) that the number of operations during subsequent Fridays, Saturdays, and Sundays is small. Therefore, except for unconditionally delaying such excess operation, it can also be performed immediately without exceeding the possible average operating rate of the maximum average operating rate 206 (sampled in one week). Of course, if these can't solve the reality, there may be some delay in the next week. Although the above-described examples are based on the date conditions within one week, it is also possible to consider a larger-scale use memory variation embodiment in a few weeks in the other month, months in a year, and the like.
在另外的具體實施例中,不一定要採間隔式的操作條件式延遲,而是依據記憶體過往的使用情況,及/或甚至記憶體預期使用情況而定。在此種具體實施例中,為了預測未來使用,可利用過去的資料,以執行任何需要的統計分析,更精確地辨識出不需要發生的延遲過量操作情況。 In other embodiments, the interval conditional delay is not necessarily required, but rather depends on the past usage of the memory, and/or even the intended use of the memory. In such a specific embodiment, in order to predict future usage, past data can be utilized to perform any required statistical analysis to more accurately identify delay excess operations that do not occur.
圖4依據另一個具體實施例,揭露一種可延遲記憶體壽命減少操作之整合式技術400。作為一種選項是,可實施技術400以實現圖1的方法100及/或更進一步實現在圖2-3之技術200與300。當然,技術400亦可在任何需要的環境中實施。同樣應注意的是,前述定義可適用於本說明中。 4 illustrates an integrated technology 400 that can delay memory life reduction operations in accordance with another embodiment. As an option, technique 400 can be implemented to implement method 100 of FIG. 1 and/or further implement techniques 200 and 300 of FIGS. 2-3. Of course, the technology 400 can also be implemented in any desired environment. It should also be noted that the foregoing definitions may apply to this description.
與前述之技術類似,技術400有考慮到會造成記憶體展現最少實用程度,以及記憶體最少預期壽命404之操作 總數402。從此等資料觀點,就能計算出達成最少預期壽命404的最大平均操作率406。在使用時,可隨著時間進展監控壽命減少操作之數量。 Similar to the foregoing techniques, the technique 400 has operations that take into account the least practicality of memory presentation and the minimum expected life of the memory 404. The total number is 402. From this data point of view, the maximum average operating rate 406 that achieves a minimum expected life of 404 can be calculated. When in use, the number of life reduction operations can be monitored over time.
若在任何時間內,這種操作數量超過最大平均操作率406,如所示方法(請參考408),則任何超過的操作不一定要以無條件方式延遲(類似圖2技術200)。相反地,此種過量操作可依據反映記憶體使用之積分函數予以條件式延遲。尤其是,在持續進行的基礎上,可計算出壽命減少超時操作整體率與最大平均操作率406間之偏差積分。因此,如果該整合顯示此種操作可能超過最大平均操作率406,就不一定要發生前述延遲。 If, at any time, the number of such operations exceeds the maximum average operating rate 406, as shown (see 408), any excess operations do not have to be unconditionally delayed (similar to Figure 2, technique 200). Conversely, such excess operation can be conditionally delayed depending on the integral function reflecting the memory usage. In particular, based on the ongoing process, the deviation integral between the lifetime reduction timeout operation overall rate and the maximum average operation rate 406 can be calculated. Therefore, if the integration indicates that such an operation may exceed the maximum average operating rate 406, the aforementioned delay does not have to occur.
圖5依據另一個具體實施例,說明一種當期望壽命持續時間超過估計壽命持續時間時,用於延遲記憶體壽命減少操作之系統500。作為一個選項,可實施系統500,以實現圖1方法100及/或更進一步選擇性併入圖2-4的技術。當然,系統500可使用在任何需要之環境中。 5 illustrates a system 500 for delaying memory life reduction operations when a desired lifetime duration exceeds an estimated lifetime duration, in accordance with another embodiment. As an option, system 500 can be implemented to implement the method 100 of FIG. 1 and/or further selectively incorporate the techniques of FIGS. 2-4. Of course, system 500 can be used in any desired environment.
如圖所示,包括由多個儲存裝置530、540所構成之儲存系統503。至少以一個儲存匯流排502搭配至少一個控制器511與至少一部電腦501。在各種具體實施例中,儲存匯流排502可包括但不限於一個序列式先進附加技術(SATA)匯流排、序列附加小型電腦系統介面(SAS)匯流排、光纖通道匯流排、記憶體匯流排介面、快閃記憶體匯流排、NAND快閃記憶體匯流排、整合式驅動電子介面(IDE)匯流排、先進附加技術(ATA)匯流排、消費性電子裝置(CE)匯流 排、通用序列匯流排(USB)、智慧卡片匯流排、多媒體卡(MMC)匯流排等。因此,控制器511能夠與系統(例如電腦501)及第二儲存裝置(例如,至少儲存裝置530、540)其中之一搭配。另外尚可包括至少一項與儲存裝置530、540相關用於延長記憶體壽命之裝置510。 As shown, a storage system 503 comprised of a plurality of storage devices 530, 540 is included. At least one storage bus 502 is coupled with at least one controller 511 and at least one computer 501. In various embodiments, the storage bus 502 can include, but is not limited to, a Serial Advanced Addition Technology (SATA) bus, a Serial Attached Small Computer System Interface (SAS) bus, a Fibre Channel bus, and a memory bus interface. , flash memory bus, NAND flash memory bus, integrated drive electronic interface (IDE) bus, advanced add-on technology (ATA) bus, consumer electronics (CE) convergence Row, universal serial bus (USB), smart card bus, multimedia card (MMC) bus, etc. Thus, the controller 511 can be paired with one of a system (eg, computer 501) and a second storage device (eg, at least storage devices 530, 540). Additionally, at least one device 510 associated with the storage devices 530, 540 for extending the life of the memory may be included.
如圖所示,裝置510包括一個控制器511,透過多個相對應的匯流排521、522與儲存裝置530、540連接。控制器511使用多個匯流排521、522以控制多個儲存裝置530、540並與其交換資料,以便透過儲存匯流排502執行從電腦501所接收到的指令。儲存裝置530、540各自包括至少一個模組或區塊531、532、533、541、542、543以儲存資料。此外,至少一部份的前述指令是會對至少一個模組或區塊531、532、533、541、542、543造成負面影響的壽命減少指令。在使用時,雖然有這種壽命減少指令,但裝置510可用於延長儲存裝置530、540之壽命。 As shown, the device 510 includes a controller 511 coupled to the storage devices 530, 540 via a plurality of corresponding bus bars 521, 522. The controller 511 uses a plurality of bus bars 521, 522 to control and exchange data with the plurality of storage devices 530, 540 to execute instructions received from the computer 501 through the storage bus bar 502. The storage devices 530, 540 each include at least one module or block 531, 532, 533, 541, 542, 543 for storing data. Additionally, at least a portion of the aforementioned instructions are life reduction instructions that adversely affect at least one of the modules or blocks 531, 532, 533, 541, 542, 543. In use, although there is such a life reduction command, device 510 can be used to extend the life of storage devices 530, 540.
為了完成這目的,控制器511透過相對應的匯流排512與壽命預估器模組514連接。裝置510尚包括一個透過匯流排518與壽命預估器模組514連接之時間模組517,以提供目前時間。在使用時,壽命預估器模組514則透過儲存匯流排502,接收從電腦501與控制器511溝通之指令。此外,壽命預估器模組514在透過匯流排512執行所收到的指令時,會運算出預估壽命。 To accomplish this, the controller 511 is coupled to the life predictor module 514 via a corresponding bus bar 512. The device 510 also includes a time module 517 coupled to the life predictor module 514 via the bus bar 518 to provide the current time. In use, the life predictor module 514 receives instructions from the computer 501 to communicate with the controller 511 via the storage bus 502. In addition, the life predictor module 514 calculates the estimated life when executing the received command through the bus bar 512.
請繼續參考圖5,壽命預估器模組514會透過一匯流排515與調節模組516連接。壽命預估器模組514使用匯 流排以使控制器511目前所執行的預估壽命指令傳遞至調節模組516。目前執行的指令在一具體實施例中,與透過匯流排512從壽命預估模組514所接收到的相同,甚至與透過儲存匯流排502從電腦501之控制器511所接收到的相同。 Referring to FIG. 5 , the life predictor module 514 is connected to the adjustment module 516 through a bus bar 515 . Life Estimator Module 514 uses sink The flow is routed to pass the life expectancy command currently executed by controller 511 to adjustment module 516. The currently executed instructions are the same as received from the life prediction module 514 through the bus 512 in a particular embodiment, even as received from the controller 511 of the computer 501 via the storage bus 502.
目前時間模組517亦可透過匯流排518與調節模組516連接。因此,由目前時間模組517所得到的目前時間可被傳遞至調節模組516。在一具體實施例中,目前時間模組517會,例如,在一固定時間間隔作一簡單計算器遞增方式下被實施等。 The current time module 517 can also be connected to the adjustment module 516 via the bus bar 518. Therefore, the current time obtained by the current time module 517 can be passed to the adjustment module 516. In one embodiment, the current time module 517 can be implemented, for example, in a simple calculator increment mode at a fixed time interval.
調節模組516尚可透過匯流排519與需要的壽命模組520連接,以及透過匯流排513與控制器511連接。在使用時,可調整需要的壽命模組520以儲存想要的壽命。藉由這種設計,調節模組516可設定透過匯流排513將資訊傳遞給控制器511,以指示控制器511延遲目前指令執行。 The adjustment module 516 can still be connected to the required life module 520 through the bus bar 519, and connected to the controller 511 through the bus bar 513. In use, the desired life module 520 can be adjusted to store the desired life. With this design, the adjustment module 516 can be configured to communicate information to the controller 511 via the bus bar 513 to instruct the controller 511 to delay the current instruction execution.
在一具體實施例中,裝置510之調節模組516可延遲操作目前指令的執行,直到壽命執行的效果,使預估的壽命長於或相同於儲存在需要的壽命模組520中之需要的壽命。調節模組516的功能,在一具體實施例中,如果經由匯流排515收到預估的壽命,比經由匯流排519所接收到的所需壽命較短時,可以只簡單地提供延遲訊號給控制器511。 In one embodiment, the adjustment module 516 of the device 510 can delay the execution of the current command until the end of life execution, such that the estimated lifetime is longer or the same as the required life stored in the desired life module 520. . The function of the adjustment module 516, in a specific embodiment, if the estimated lifetime is received via the bus 515, the delay signal can be simply provided to the shorter than the required lifetime received via the bus 519. Controller 511.
在另一具體實施例中,上述控制器511、壽命預估器模組514,以及調節模組516的功能皆可適用於一組在預定 時間間隔中接收到的指令。此種安排可使系統500符合需要的壽命,而不會不必要地調整其他會造成壽命減少指令之短叢發。藉由選擇時間間隔,例如,以一天為間隔,此種技術可讓系統500為壽命減少指令提供較高的瞬間效能,因為在一天當中的某些時段(例如晚間),與平均壽命減少指令頻率相比,有些時間間隔可能具有減少頻率之壽命減少指令。 In another embodiment, the functions of the controller 511, the life predictor module 514, and the adjustment module 516 are applicable to a group of predetermined The instruction received in the time interval. This arrangement allows the system 500 to meet the required lifespan without unnecessarily adjusting other short bursts that would result in a life reduction instruction. By selecting time intervals, for example, at one-day intervals, this technique allows system 500 to provide higher instantaneous performance for life-reducing commands because during certain periods of the day (eg, nighttime), the average life-deficiency command frequency is reduced. In contrast, some time intervals may have life-reducing instructions that reduce frequency.
在一選用的具體實施例中,可隨著時間經過一直維持相干性。一種作為一相干性方法之範例,如果壽命減少指令A延遲,則會所有依賴資料A或執行指令A所得出數值之指令(無論是否減少壽命)皆會延遲。 In an alternative embodiment, coherence can be maintained over time. As an example of a coherent method, if the life reduction instruction A is delayed, all instructions that rely on the data A or the value obtained by executing the instruction A (whether or not the life is reduced) are delayed.
在另一具體實施例中,時間可以各種不同的時間近似值加以取代,例如,磁碟啟動時間。在另一個具體實施例中,電腦501、一個RAID控制器、及/或其他的裝置可提供額外資訊,以增加追蹤時間之精確度。因此,當一或多個儲存裝置530,540被關閉時,時間計數器就不會計時。因為實際時間仍在進行,就可能會不必要地降低效能。在這種方案中,電腦501、軟體及/或控制器可提供關於當系統500關閉時的時間資訊,以解決此種問題。 In another embodiment, the time may be replaced with various different time approximations, such as disk boot time. In another embodiment, the computer 501, a RAID controller, and/or other devices may provide additional information to increase the accuracy of the tracking time. Thus, when one or more of the storage devices 530, 540 are turned off, the time counter will not be timed. Because the actual time is still running, it may unnecessarily reduce performance. In such an arrangement, computer 501, software, and/or controller can provide time information regarding when system 500 is turned off to address such issues.
在另一具體實施例中,系統500可配置內部儲存裝置冗餘功能,以降低成本及改善效能。在此種具體實施例中,資料基於與壽命相關之任何層面,在個別儲存裝置530,540間移動(例如,參圖1操作102等)。例如,在一種情況中可能涉及第一個儲存裝置530,其包括一組與第二個儲存 裝置540資料相關之更常覆寫資料。在此情況下,在預定的時間量之後,這些資料可從第一個儲存裝置530移至第二個儲存裝置540,而此後第一個儲存裝置530或一或多個區塊/模組531,532,533可用於儲存較不常寫入之資料,或是不再使用。 In another embodiment, system 500 can configure internal storage redundancy functions to reduce cost and improve performance. In such a particular embodiment, the data is moved between individual storage devices 530, 540 based on any level associated with lifetime (e.g., reference to Figure 1 operation 102, etc.). For example, in one case may involve a first storage device 530 that includes a set and a second storage Device 540 data is more frequently overwritten. In this case, after a predetermined amount of time, the data can be moved from the first storage device 530 to the second storage device 540, and thereafter the first storage device 530 or one or more blocks/modules 531, 532, 533 Can be used to store less frequently written data or not used anymore.
為此目的,儲存裝置耗損可適當予以分配,以避免其中一個儲存裝置較群組中的其他相關儲存裝置過早大量耗損。當然,目前的技術不僅能應用在不同的儲存裝置上,也能應用於其中一部份,最後就能以此種方式管理任何記憶體元件之壽命。 For this purpose, the storage device wear and tear can be appropriately distributed to avoid prematurely depleting one of the storage devices from other related storage devices in the group. Of course, the current technology can be applied not only to different storage devices, but also to a part of it, and finally the life of any memory component can be managed in this way.
在任何情形,可配置控制器511以降低及/或分配寫入。藉此功能,即可延長適合的儲存裝置530,540之壽命。在圖6的說明中即將提出一種執行此項技術之示範方法。 In any case, controller 511 can be configured to reduce and/or distribute writes. With this function, the life of the suitable storage device 530, 540 can be extended. An exemplary method of performing this technique will be presented in the description of FIG.
依據另一具體實施例,圖6說明一種當希望壽命持續時間超過預估壽命持續時間時,用於延遲記憶體壽命減少操作之方法600。另一個可選擇的具體實施例是,使用圖5之系統500及/或更進一步選擇性併入運用圖1至圖4之任何技術以執行方法600。但是,當然,方法600可以任何需要的方式使用。當然,前述定義可適用於本處之說明。 In accordance with another embodiment, FIG. 6 illustrates a method 600 for delaying memory life reduction operations when a desired lifetime duration exceeds an estimated lifetime duration. Another alternative embodiment is to perform the method 600 using the system 500 of FIG. 5 and/or further selectively incorporating any of the techniques of FIGS. 1-4. However, of course, method 600 can be used in any desired manner. Of course, the foregoing definitions may apply to the description herein.
一旦開始操作601,方法600會持續藉由控制器(例如圖5之控制器511等)等候由電腦(例如,電腦501等)對至少一個儲存裝置(例如,儲存裝置530,540等)所發出之指令602。一旦控制器接收到指令,當控制器判斷在操作602中所接收到之指令是否為壽命減少指令(例如抹除操作、寫 入操作等)時,該方法會進行至決定603。如果在決定603中判斷目前所接收到的指令並非壽命減少指令,則該指令可在操作607中逕行處理。 Once operation 601 is initiated, method 600 continues to wait for a command issued by a computer (eg, computer 501, etc.) to at least one storage device (eg, storage device 530, 540, etc.) by a controller (eg, controller 511 of FIG. 5, etc.). 602. Once the controller receives the instruction, the controller determines if the instruction received in operation 602 is a life reduction instruction (eg, erase operation, write When the operation is entered, etc., the method proceeds to decision 603. If it is determined in decision 603 that the currently received instruction is not a life reduction instruction, then the instruction may be processed in operation 607.
在另一方面,若在決定603中判斷目前所接收到的指令確實為壽命減少指令,則會藉由壽命預估器模組(例如,壽命預估器模組514等)基於操作602中所接收之指令、先前的壽命、以及目前時間(例如,透過時間模組517等)運算出預估壽命,請參操作604。在一具體實施例中,先前的壽命可代表壽命預估器模組先前的狀態。在另一具體實施例中,可藉由測量至少一個儲存裝置之一或多個屬性取得先前的壽命。 On the other hand, if it is determined in decision 603 that the currently received command is indeed a life reduction command, then the life predictor module (eg, life predictor module 514, etc.) is based on operation 602. The estimated life is calculated by the received command, the previous life, and the current time (eg, the time module 517, etc.), see operation 604. In one embodiment, the previous lifetime may represent the previous state of the life predictor module. In another embodiment, the previous lifetime can be achieved by measuring one or more attributes of the at least one storage device.
在任何情形,藉由此種壽命預估器模組所預估的壽命則會提供給一調節模組(例如,調節模組516等)。在決定605中,如果壽命預估器所接收之預估壽命短於傳送至調節模組之需要的壽命,該調節模組會判斷是否需要進行調節。如果需要調節,方法600會藉由延遲(例如,調節)壽命減少指令進行操作606。但是,若預估壽命並未短於所需壽命,則方法600會在操作607進行處理,如上所述。 In any event, the life expectancy estimated by such a life predictor module is provided to an adjustment module (eg, adjustment module 516, etc.). In decision 605, if the life expectancy receiver receives an estimated life that is shorter than the required life of the adjustment module, the adjustment module determines if adjustment is needed. If adjustment is needed, method 600 proceeds to operation 606 by delaying (eg, adjusting) the life reduction instruction. However, if the estimated life is not shorter than the required life, method 600 will process at operation 607, as described above.
具體地說,在操作606中,調節模組可使用控制器調節壽命減少指令之執行。在一具體實施例中,可藉由使用控制器延遲壽命減少指令之執行,以實施此種調節,直到壽命預估器所預估之壽命長於或等於需要壽命為止。 Specifically, in operation 606, the adjustment module can adjust the execution of the life reduction command using the controller. In a specific embodiment, such adjustments can be implemented by using a controller to delay the execution of the life reduction command until the lifetime estimated by the life predictor is longer than or equal to the required life.
在另一具體實施例中,可在預定期間內判斷調節,並適用於在後續的預定期間內之指令。在此種具體實施例 中,可在預定時間間隔內限制預定期間內必須縮短多少壽命。在另一具體實施例中,在一時間間隔對預定期間內必須縮短多少壽命的限制可在一或多個先前時間間隔中決定。在另一具體實施例中,可基於對許多未決定操作之分析判斷是否需要調節,使非壽命減少操作能在壽命減少操作之前執行,或是需依賴此種壽命減少操作之操作前執行。 In another embodiment, the adjustment may be determined for a predetermined period of time and applied to instructions within a subsequent predetermined period. In this specific embodiment In the predetermined time interval, it is possible to limit how much life must be shortened during the predetermined period. In another embodiment, the limit of how much life must be shortened during a predetermined period of time over a predetermined period of time may be determined in one or more previous time intervals. In another embodiment, the determination of whether or not adjustments are needed may be based on an analysis of a number of undetermined operations, such that the non-life reduction operation can be performed prior to the life reduction operation or prior to the operation of such a life reduction operation.
藉由此種設計,所提供的資料儲存系統可控制壽命減少操作,以保證所需的最低壽命。因此能夠預估出壽命減少操作對於這種最低所需壽命的影響,並能夠調整性地限制壽命減少操作之頻率。 With this design, the data storage system is provided to control the life reduction operation to ensure the minimum life required. It is therefore possible to estimate the effect of the life reduction operation on this minimum required life and to adjustably limit the frequency of the life reduction operation.
圖7依據另一具體實施例,顯示一用於計量記憶體壽命之圖形使用者介面700。作為一個選項,該圖形使用者介面700可在圖1至圖6之功能及架構條件下實施。但是,當然,圖形使用者介面700可在任何需要的環境中使用。同樣應注意的是,前述定義可適用於本說明中。 Figure 7 illustrates a graphical user interface 700 for metering memory life in accordance with another embodiment. As an option, the graphical user interface 700 can be implemented under the functional and architectural conditions of Figures 1 through 6. However, of course, the graphical user interface 700 can be used in any desired environment. It should also be noted that the foregoing definitions may apply to this description.
如圖所示,顯示各種不同的標示,以反映至少一種與記憶體壽命相關的層面。在一具體實施例中,該層面可在圖1的操作102中予以識別。但是,當然,這種與壽命相關的層面可包括任何至少部份與記憶體壽命相關的所需層面。例如,在圖5系統500之條件中,可藉由控制器511自任何顯示經處理及/或被傳遞至電腦501之模組回復該層面,在軟體應用程式(例如外掛程式)的控制下依序顯示相關的標示。 As shown, various different indications are displayed to reflect at least one level associated with the life of the memory. In a specific embodiment, the level can be identified in operation 102 of FIG. However, of course, this life-related level may include any desired level that is at least partially related to the life of the memory. For example, in the condition of system 500 of FIG. 5, the controller 511 can reply to the layer from any display processed and/or transmitted to the computer 501, under the control of a software application (eg, a plug-in). The order shows the relevant indications.
例如,在一具體實施例中,前述標示可包括一個指示一或多個記憶體剩餘壽命量的計量器702。在該具體實施例中,計量器702可指示剩餘的記憶體總壽命量,作為隨著時間經過執行壽命減少操作之數量函數。在另一具體實施例中,前述標示可包括一個依據先前使用量推斷及假設暫停調節操作而指示壽命之預估值705。 For example, in one embodiment, the aforementioned indicia can include a meter 702 that indicates the remaining life of one or more memories. In this particular embodiment, meter 702 can indicate the remaining amount of memory total life as a function of the number of performing life reduction operations over time. In another embodiment, the aforementioned indicia may include an estimate 705 indicative of a lifetime based on a prior usage inference and a hypothetical pause adjustment operation.
在另一具體實施例中,前述標示可以包括一個警告704,用於指示一或多個記憶體之最低剩餘壽命量。此種壽命是可被預估的,例如,基於記憶體過往的使用資料。藉由此種設計,就可以警告使用者在預定時間量內更換記憶體。當然,可考慮使用任何所需標示之其他具體實施例,以報告與記憶體壽命相關之各種不同資訊。 In another embodiment, the aforementioned indicia can include a warning 704 for indicating the minimum remaining life of one or more memories. This lifetime can be estimated, for example, based on past usage data of the memory. With this design, the user can be warned to replace the memory within a predetermined amount of time. Of course, other specific embodiments of any desired labeling may be considered to report various different information related to memory life.
圖8依據另一具體實施例,顯示一種運用不同資訊以減少在記憶體寫入操作之方法800。作為一個選項,該方法800可選擇是否結合圖1至圖7之功能與架構來執行。但是,當然,方法800可在任何需要的環境中加以執行。同樣應注意的是,前述定義可適用於本說明中。 FIG. 8 illustrates a method 800 of utilizing different information to reduce write operations in a memory, in accordance with another embodiment. As an option, the method 800 can be selected to perform in conjunction with the functions and architecture of FIGS. 1-7. However, of course, method 800 can be performed in any desired environment. It should also be noted that the foregoing definitions may apply to this description.
如圖所示,它可識別記憶體中儲存資料寫入操作之執行,請參操作802。在本說明內容中,該寫入操作可包括任何造成記憶體中儲存資料被修改之操作。此外,該寫入操作可藉由攔截與該操作有關之寫入指令、或寫入操作本身,以任何希望方式予以識別。 As shown in the figure, it can recognize the execution of the data write operation in the memory, please refer to operation 802. In the present description, the write operation may include any operation that causes the stored data in the memory to be modified. Moreover, the write operation can be identified in any desired manner by intercepting the write command associated with the operation, or the write operation itself.
如在操作804中所示,可判斷寫入操作結果與記憶體儲存資料間之差異。在本說明內容中,前述差異可反映至 少一部份在記憶體中儲存資料之第一種狀態與前述寫入操作後造成第二種狀態間之差異。 As shown in operation 804, the difference between the write operation result and the memory storage data can be determined. In the context of this note, the aforementioned differences can be reflected to The first state in which a portion of the data is stored in the memory causes a difference between the second state and the aforementioned write operation.
在另一具體實施例中,可判斷儲存在記憶體中任何資料間之差異。例如,可產生一個檔案之新修正版本,並寫入至記憶體中新的位置,因此可判斷出這在記憶體中不同位置之資料差異。作為一個選項,可基於雜湊、多維度搜尋過濾器等識別出資料的位置。為達此目的,在一示範性具體實施例中,相同資料的不同實體會被寫入記憶體中之不同位置,判斷的差異可包括資料位置,而不一定是資料本身。 In another embodiment, the difference between any of the data stored in the memory can be determined. For example, a new modified version of the file can be generated and written to a new location in the memory so that the difference in data at different locations in the memory can be determined. As an option, the location of the data can be identified based on hashes, multi-dimensional search filters, and the like. To this end, in an exemplary embodiment, different entities of the same material may be written to different locations in the memory, and the difference in the judgment may include the location of the data, not necessarily the material itself.
在一具體實施例中,可將與差異相關之差異資訊儲存在記憶體中(例如,儲存資料在相同的記憶體中)。在另一具體實施例中,差異資訊亦可以稍後在不同具體實施例中所說明之方式儲存在個別緩衝區中。應注意的是,差異資訊可包括至少一部份在操作804之說明中所判斷出差異之任何資訊。在稍後說明之具體實施例討論中即可明瞭,差異資訊在一具體實施例中,可運用指令組予以儲存。如下所述,這種指令組可在不同具體實施例中調適性地變更及/或動態擴充。 In a specific embodiment, the difference-related difference information may be stored in the memory (eg, the stored data is in the same memory). In another embodiment, the difference information may also be stored in an individual buffer in a manner that is later described in the different embodiments. It should be noted that the difference information may include at least a portion of any information that is determined by the difference in the description of operation 804. As will become apparent from the discussion of the specific embodiments described later, the difference information may be stored in a set of instructions using a set of instructions. As described below, such a set of instructions can be adaptively changed and/or dynamically expanded in different embodiments.
為達此目的,可運用差異資訊減少寫入操作。請參操作806。藉由此種設計,該寫入操作減少可選擇性地延長記憶體壽命。 To achieve this, you can use the difference information to reduce the write operation. Please refer to operation 806. With this design, the write operation reduces the memory life by selectively extending.
現在有關各種不同架構與功能之更多說明資訊將會被提出,每位使用者可自行依需要實施或不實施前述架構。 例如,一種示範性的系統會被提出,以實施一種基於差異資訊減少寫入操作之說明方法。應特別注意的是,以下資訊係出於說明之目的而被提出,不應以任何方式解釋為限制。任何以下功能均可選擇是否排除與其他上述功能合併運用。 More information about the various architectures and functions will now be presented, and each user can implement or not implement the aforementioned architecture as needed. For example, an exemplary system would be proposed to implement a method of reducing write operations based on differential information. It is important to note that the following information is presented for illustrative purposes and should not be construed as limiting in any way. Any of the following features can be selected to exclude the use of other features described above.
圖9依據另一個具體實施例,說明一種用於在記憶體中減少寫入操作之系統900。作為一個選項,系統900可以圖8之方法800及/或更進一步選擇性合併圖1至圖7之任何方法或技術。但是,當然,系統900可使用在任何需要的環境中。但是同樣地,前述定義可適用於本說明中。 Figure 9 illustrates a system 900 for reducing write operations in memory in accordance with another embodiment. As an option, system 900 can combine any of the methods or techniques of FIGS. 1-7 with method 800 of FIG. 8 and/or further. However, of course, system 900 can be used in any desired environment. However, as such, the foregoing definitions may apply to this description.
如圖所示,系統900包括一透過輸入/輸出(I/O)匯流排902,以稍候會提出說明之方式將電腦901與儲存裝置930連接。I/O匯流排902包括一個讀取路徑903及一個寫入路徑904。儲存裝置930包括多個儲存區塊931、932、933。儲存區塊931、932、933是藉由電腦901寫入與讀取。 As shown, system 900 includes an input/output (I/O) bus 902 that connects computer 901 to storage device 930 in a manner to be described later. The I/O bus 902 includes a read path 903 and a write path 904. The storage device 930 includes a plurality of storage blocks 931, 932, 933. The storage blocks 931, 932, and 933 are written and read by the computer 901.
其中原因將會很快明瞭,可將每一儲存區塊931、932、933之一預定部份934分配用於儲存不同資訊,以反映出藉由電腦901於相對應儲存區塊931、932、933之其餘部份935所儲存資料之任何變更。在各種不同具體實施例中,預定部份934的大小均可由使用者設定。此外,在其中儲存的差異資訊可採用任何形式。 The reason for this will be quickly understood. A predetermined portion 934 of each of the storage blocks 931, 932, 933 can be allocated for storing different information to reflect the corresponding storage blocks 931, 932 by the computer 901. Any changes to the information stored in the remaining 933 of 933. In various embodiments, the size of the predetermined portion 934 can be set by the user. In addition, the difference information stored therein may take any form.
表1顯示一用於表示差異資訊之實例的可能格式(其中多個可儲存在儲存區塊931、932、933之每個預定部份934 中)。 Table 1 shows a possible format for representing an instance of difference information (a plurality of which may be stored in each predetermined portion 934 of the storage blocks 931, 932, 933) in).
在上述具體實施例中,操作代碼可表示對儲存在相對應儲存區塊931、932、933之其餘部份935中之資料執行之操作。此種操作實例可包括但不限於,結束、取代、上移、下移、刪除、插入及/或任何其他操作。作為一個選項,該操作每個都可以其相關代碼做精確表示(例如取代=‘001’、上移=‘010’等)。 In the above-described embodiments, the operational code may represent operations performed on data stored in the remaining portions 935 of the corresponding storage blocks 931, 932, 933. Examples of such operations may include, but are not limited to, end, replace, move up, move down, delete, insert, and/or any other operation. As an option, each of these operations can be accurately represented by its associated code (e.g., substitution = '001', upshift = '010', etc.).
此外,源碼啟始位址及大小可指出並表示受操作支配而儲存在對應儲存區塊931、932、933之其餘部份935之資料(個別)大小。即使是在操作要求取代/修改資料等情形時,資料本身可儲存作為差異資訊之元件。另一個選項是,可對差異資訊運用壓縮演算法,以獲得更有效率的儲存空間。另一個選項是,在操作要求移動資料之情形,可指定 資料來源位置,而不一定是資料本身,因為此種資料是被包含在原始儲存區塊中。 In addition, the source start address and size may indicate and represent the size (individual) size of the remaining portion 935 of the corresponding storage block 931, 932, 933 that is subject to operation. The data itself can be stored as an element of the difference information even when the operation requires replacement/modification of the data. Another option is to apply a compression algorithm to the difference information for more efficient storage. Another option is to specify when the operation requires moving data. The location of the data source, not necessarily the data itself, as such information is included in the original storage block.
在另一具體實施例中,可調整性地建立新的操作。例如,第一個操作之重複順序可被新的第二個操作取代。該新的第二個操作可選擇性地說明第一個操作順序。以此種方法,即可調整性地建立新的操作,而使系統900可以最佳化自我調整至新應用程式。 In another embodiment, a new operation is adjustably established. For example, the repeating order of the first operation can be replaced by a new second operation. This new second operation selectively illustrates the first sequence of operations. In this way, new operations can be tunably established, allowing system 900 to optimize self-adjustment to new applications.
當然,表1之資料結構僅是出於說明目的所提出,而不應以任何方式解釋為限制。例如,差異資訊之實例可僅包括會被取代的資訊(不含任何複雜的指令等)。 Of course, the data structure of Table 1 is presented for illustrative purposes only and should not be construed as limiting in any way. For example, an instance of the difference information may only include information that will be replaced (without any complicated instructions, etc.).
另外尚提供一種用於在記憶體中減少寫入操作之裝置910。該裝置910包括一內含多個接合緩衝區921、922、923之接合記憶體920。在一具體實施例中,每一接合緩衝區921,922,923大小可以是預定的大小(例如4Kb等),在單一操作中可與欲寫入之每個儲存區塊931、932、933中之最小區塊部份相關聯。此外,在各種不同具體實施例中,接合緩衝區921可包括晶片上之儲存裝置、外接記憶體、DRAM、SRAM等。 There is also provided an apparatus 910 for reducing write operations in memory. The device 910 includes a bond memory 920 that includes a plurality of bond buffers 921, 922, 923. In one embodiment, each of the bond buffers 921, 922, 923 may be of a predetermined size (eg, 4Kb, etc.) and may be the smallest of each of the storage blocks 931, 932, 933 to be written in a single operation. Partially related. Moreover, in various embodiments, the bond buffer 921 can include storage devices on the wafer, external memory, DRAM, SRAM, and the like.
將會很快變得容易明瞭的是,每個接合記憶體緩衝區921、922、923皆可為相對應的儲存區塊931、932、及933保存一個差異資訊實例(例如,可參考表1)。換言之,第一個接合記憶體緩衝區921會為第一個儲存區塊931保存一差異資訊之實例,第二個接合記憶體緩衝區922為第二個儲存區塊932保存差異資訊之實例,而第三個接合記 憶體緩衝區923則為第三個儲存區塊933保存差異資訊之實例,以此類推。 It will be readily apparent that each of the bonded memory buffers 921, 922, and 923 can store a difference information instance for the corresponding storage blocks 931, 932, and 933 (for example, refer to Table 1). ). In other words, the first bonded memory buffer 921 stores an instance of difference information for the first storage block 931, and the second bonded memory buffer 922 stores an instance of the difference information for the second storage block 932. And the third joint The memory buffer 923 is an example of storing the difference information for the third storage block 933, and so on.
裝置910尚包括一個透過匯流排914與接合記憶體920連接之更新模組912,以供將儲存在接合記憶體緩衝區921、922、923中之差異資訊寫入相對應的儲存區塊931、932、及933。在一具體實施例中,該寫入可在任何一個填入至少一個差異資訊實例之接合記憶體緩衝區921、922、923中啟動(並因此對適當的儲存區塊931、932、及933構成一最小的寫入大小)。為完成該寫入,會透過匯流排915將更新模組912與儲存裝置930連接,如圖進一步所示,更新模組912的輸出會透過讀取路徑903與I/O匯流排902連接。 The device 910 further includes an update module 912 connected to the interface memory 920 through the bus bar 914 for writing the difference information stored in the interface memory buffers 921, 922, and 923 to the corresponding storage block 931. 932, and 933. In one embodiment, the writing can be initiated in any of the bonded memory buffers 921, 922, 923 filled with at least one difference information instance (and thus for the appropriate storage blocks 931, 932, and 933) A minimum write size). To complete the writing, the update module 912 is connected to the storage device 930 via the bus 915. As shown further, the output of the update module 912 is coupled to the I/O bus 902 via the read path 903.
甚至,可透過讀取路徑匯流排903將差異運算模組911與更新模組912連接,透過寫入路徑匯流排904與I/O匯流排902連接,以及透過匯流排913進一步與接合記憶體920連接。在使用時,差異運算模組911能從儲存裝置930讀取資料,並進一步使用來自相關儲存區塊931、932與933,以及/或接合記憶體緩衝區921、922、923之差異資訊重建該資料之現狀。 In addition, the difference calculation module 911 can be connected to the update module 912 through the read path bus 903, connected to the I/O bus 902 via the write path bus 904, and further coupled to the memory 920 through the bus 913. connection. In use, the difference computing module 911 can read data from the storage device 930 and further reconstruct the difference information from the associated storage blocks 931, 932, and 933, and/or the associated memory buffers 921, 922, 923. The status of the information.
差異運算模組911尚能藉由首先重建該資料之現狀(與上述讀取操作類似)、識別該現狀與寫入操作(藉由電腦901所啟動)後狀態間差異、在適當時,以用來更新相關儲存區塊931、932及933之一或多個差異資訊實例填入接合記憶體緩衝區921,922,923,以便能將資料寫入儲存裝置930。 更多關於此種讀取與寫入操作之資訊會在描述圖10及圖11時提出。 The difference operation module 911 can still use the status of the data first (similar to the above read operation), identify the status and write operation (by the computer 901), and then use the difference between the states, when appropriate. One or more pieces of difference information for updating the associated storage blocks 931, 932, and 933 are filled in the bonded memory buffers 921, 922, 923 so that the data can be written to the storage device 930. More information on such read and write operations will be presented when describing Figures 10 and 11.
在各種具體實施例中,差異運算模組911可運用任何需要的技術,以識別出前述差異。例如,可運用各種不同的字串配對演算法、資料動態預估技術等。在另一具體實施例中,可以逐個位元組基礎來判斷差異。 In various embodiments, the difference computing module 911 can employ any desired technique to identify the aforementioned differences. For example, various different string matching algorithms, data dynamic estimation techniques, and the like can be applied. In another embodiment, the difference can be determined on a byte by bit basis.
此外,差異運算可能涉及下列任一或多項因素:發現插入那些位元組字串、發現刪除那些位元組字串、發現取代那些位元組字串、發現複製那些位元組字串、判斷位元組字串是否藉由加入數值予以更新、發現儲存區塊的複本及建立對它們的參照、發現區塊分割、發現區塊合併等。 In addition, the difference operation may involve any one or more of the following factors: finding those byte strings inserted, finding those byte strings, deleting those byte strings, finding those byte strings, and judging Whether the byte string is updated by adding a value, discovering a copy of the storage block and establishing a reference to them, discovering a block partition, discovering a block merge, and the like.
圖10依據另一具體實施例,說明一種運用不同資訊讀取記憶體之方法1000。作為一個選項,方法1000可使用圖9之系統900及/或更進一步在需要時選擇性併入圖1至圖8之任何技術來執行。但是,當然,該方法1000可使用在任何需要的環境中。當然,前述定義可適用於本說明中。 10 illustrates a method 1000 of reading memory using different information, in accordance with another embodiment. As an option, method 1000 can be performed using system 900 of FIG. 9 and/or further selectively incorporating any of the techniques of FIGS. 1-8 as needed. However, of course, the method 1000 can be used in any desired environment. Of course, the foregoing definitions may apply to this description.
如圖所示,當一電腦(例如,電腦901等)提出請求時,可藉由儲存裝置(例如,儲存裝置930等)讀取區塊(例如,圖9之區塊931、932、933等)在操作1001中開始實施方法1000。讀取的儲存區塊資料會被送至更新模組(例如,更新模組912等)。接著,為回應讀取操作,會從與儲存區塊(與電腦請求相關)對應的接合緩衝區(例如接合緩衝區921,922,923等),及/或從儲存區塊本身讀取差異資訊。請參操作1002。差異資訊的適當來源可在讀取請求時,依所需資 訊是否已從接合緩衝區寫入至相對應儲存區塊而定。作為一個選項,差異資訊可散置在快閃記憶體資料之間。此外,與特定資料相關的差異可組織在一或多個群組內。 As shown, when a computer (eg, computer 901, etc.) makes a request, the block can be read by a storage device (eg, storage device 930, etc.) (eg, blocks 931, 932, 933, etc. of FIG. 9) The method 1000 begins in operation 1001. The read storage block data is sent to the update module (for example, update module 912, etc.). Next, in response to the read operation, the difference information is read from the bond buffer (e.g., the bond buffer 921, 922, 923, etc.) corresponding to the storage block (related to the computer request), and/or from the storage block itself. Please refer to operation 1002. The appropriate source of the difference information can be requested when reading the request. Whether the message has been written from the bond buffer to the corresponding memory block. As an option, the difference information can be interspersed between the flash memory data. In addition, differences associated with a particular profile can be organized into one or more groups.
接著,在操作1003中,更新模組會在操作1001讀取相對應區塊時,會套用自操作1002所反映差異資訊之差異。為達此目的,在操作1003中重建之資料會透過讀取路徑(例如,讀取路徑903等)送至電腦,請參操作1004。 Next, in operation 1003, the update module will apply the difference of the difference information reflected by the operation 1002 when the corresponding block is read in operation 1001. To achieve this, the data reconstructed in operation 1003 is sent to the computer via a read path (eg, read path 903, etc.), as described in operation 1004.
在各種不同具體實施例中,前述資料讀取操作可涉及從一邏輯儲存區塊編號至實體儲存區塊編號之映像。此外,方法1000更可結合讀取以提供錯誤偵測及錯誤修正。該讀取資料之錯誤偵測及修正可更進一步包括一嘗試還原資料之重新讀取操作,以及重置還原資料到另一儲存位置。例如,還原資料之重置可涉及邏輯儲存區塊的轉譯,及/或是以候選儲存區塊的錯誤率資訊為基礎。 In various embodiments, the aforementioned data reading operations may involve mapping from a logical storage block number to a physical storage block number. In addition, method 1000 can be combined with reading to provide error detection and error correction. The error detection and correction of the read data may further include a re-read operation of attempting to restore the data, and resetting the restored data to another storage location. For example, resetting the restored data may involve translation of the logical storage block and/or based on error rate information of the candidate storage block.
圖11依據另一具體實施例,說明一種使用不同資訊寫入記憶體之方法1100。作為一個選項,方法1100可使用圖9之系統900及/或更進一步於需要時,選擇性併入圖1至圖8、圖10之技術予以實施。但是,當然,方法1100可在任何需要的環境中使用。當然,前述定義可適用於本說明中。 FIG. 11 illustrates a method 1100 of writing memory using different information, in accordance with another embodiment. As an option, method 1100 can be implemented using the system 900 of FIG. 9 and/or further, if desired, selectively incorporating the techniques of FIGS. 1-8, 10. However, of course, the method 1100 can be used in any desired environment. Of course, the foregoing definitions may apply to this description.
與圖10的讀取方法1000類似,方法1100可在操作1101中藉由讀取來自儲存裝置(例如,儲存裝置930等)之區塊(如圖9之931、932、933等)開始,其可依據電腦(例如電腦901等)之寫入請求,接著讀取儲存區塊資料會被送 至一更新模組(例如,更新模組912等)。接著,在操作1102中,會從與儲存區塊(與電腦請求相關)對應之接合緩衝區(例如,接合緩衝區921、922、923等),及/或從儲存區塊本身讀取差異資訊。接著,在操作1103中,更新模組會在操作1001讀取對應區塊時,套用來自操作1002所反映差異資訊之差異,以重建讀取或寫入之資料。 Similar to the reading method 1000 of FIG. 10, the method 1100 can begin by reading a block from a storage device (eg, storage device 930, etc.) in operation 1101 (such as 931, 932, 933, etc. of FIG. 9). According to the write request of the computer (such as computer 901, etc.), then the storage block data will be sent. Up to an update module (for example, update module 912, etc.). Next, in operation 1102, the difference information is read from the bonding buffer (eg, the bonding buffers 921, 922, 923, etc.) corresponding to the storage block (related to the computer request), and/or the difference information is read from the storage block itself. . Next, in operation 1103, the update module applies the difference from the difference information reflected by operation 1002 when the corresponding block is read in operation 1001 to reconstruct the read or written data.
為達此目的,在操作1103中重建的資料會被送至差異運算模組(例如,差異運算模組911等),並與藉由執行電腦請求之寫入操作所得之資料狀態相比較。請參操作1104。為達此目的,會識別出重建資料與執行寫入操作後所得之資料狀態間的差異。在一具體實施例中,該差異係藉由更新資料的應用程式(在電腦上執行)所造成。該更新可包括但不限於,取代位元組字串、插入位元組字串、刪除位元組字串、複製位元組字串等。 To this end, the data reconstructed in operation 1103 is sent to a difference computing module (e.g., difference computing module 911, etc.) and compared to the state of the data obtained by performing a write operation requested by the computer. See operation 1104. To this end, the difference between the reconstructed data and the state of the data obtained after the write operation is identified. In one embodiment, the difference is caused by an application that updates the data (executed on a computer). The update may include, but is not limited to, replacing a byte string, inserting a byte string, deleting a byte string, copying a byte string, and the like.
在操作1105中,在操作1104中運算出與差異相關之差異資訊,可附加在與區塊相對應之適當接合緩衝區,以便在操作1104中必須至少運算出一項差異。此種附加可藉由寫入接合記憶體之接合緩衝區的末尾來完成。在一具體實施例中,此種附加尚可包括解壓縮接合緩衝區、附加資料,然後重新壓縮適當的接合緩衝區。作為一個選項,接合緩衝區記憶體可依要求重置至接合緩衝區。 In operation 1105, the difference-related difference information is computed in operation 1104 and may be appended to the appropriate splicing buffer corresponding to the block so that at least one difference must be computed in operation 1104. This addition can be accomplished by writing to the end of the bond buffer of the bond memory. In a specific embodiment, such an addition may include decompressing the bond buffer, attaching the material, and then recompressing the appropriate bond buffer. As an option, the bond buffer memory can be reset to the bond buffer as required.
在一選擇性具體實施例中,可在資料上執行說明性功能操作(例如,寫入等)時儲存差異資訊。例如,差異資訊可反映出在B-Trees內執行操作所得到的變化,並因此說明 該操作之差異。此種B-Trees可任由資料庫、郵件伺服器、檔案系統等運用。 In an alternative embodiment, the difference information may be stored when performing descriptive functional operations (e.g., writing, etc.) on the material. For example, the difference information reflects the changes made to perform operations within B-Trees, and therefore explains The difference in this operation. Such B-Trees can be used by databases, mail servers, file systems, and the like.
接著在決定1106中,會測試接合緩衝區以判斷是否已填滿。若沒有任何接合緩衝區填滿,方法1100會進行操作1110。但另一方面,如果至少有一個接合緩衝區已填滿,則方法1100會進行操作1107。在操作1107中,任何已填滿之接合緩衝區會被附加至差異資訊。另外,如操作1112所示,該填滿之接合緩衝區會被清空(以供重複使用等)。 Next in decision 1106, the bond buffer is tested to determine if it is full. If no splicing buffer is filled, method 1100 proceeds to operation 1110. On the other hand, if at least one of the splicing buffers is full, then method 1100 proceeds to operation 1107. In operation 1107, any filled splicing buffers are appended to the difference information. Additionally, as shown in operation 1112, the filled bond buffer will be emptied (for reuse, etc.).
它還會進一步判斷差異資訊是否已被填滿(操作1114)。如果判斷差異資訊尚未填滿,方法1100會進行操作1110。但是,為回應判斷差異資訊已填滿,會將來自差異資訊之變更套用在資料上,請注意操作1116。此外,如操作1118所示,具有套用變更的資料區塊會被寫入,並丟棄舊資料。另外,如操作1120所示,差異資訊會被清空。為達此目的,可提供一個資料儲存系統,其中可使用在寫入與現存資料間之差異,以減少寫入並散置在各記憶體區塊之間,以改善區塊式儲存裝置之可靠性。 It will further determine if the difference information has been filled (operation 1114). If it is determined that the difference information has not been filled, method 1100 proceeds to operation 1110. However, in response to the judgement that the difference information has been filled, the changes from the difference information will be applied to the data, please note operation 1116. In addition, as shown in operation 1118, the data block with the applied change is written and the old data is discarded. Additionally, as shown in operation 1120, the difference information will be cleared. To this end, a data storage system can be provided in which the difference between the written and existing data can be used to reduce the writing and interspersed between the memory blocks to improve the reliability of the block storage device. Sex.
在各種具體實施例中,前述具體實施例中提及之記憶體可包括一機械性儲存裝置(例如,一磁碟,包括SATA磁碟、SAS磁碟、光纖通道磁碟、IDE磁碟、ATA磁碟、CE磁碟、USB磁碟、智慧卡片磁碟、MMC磁碟等),及/或一非機械性儲存裝置(例如,以半導體為基礎等)。例如,此種非機械性記憶體可包括揮發性或非揮發性記憶體。在各種具體實施例中,非揮發性記憶體裝置可包括快閃記憶體(例 如,每單元單位元NOR快閃記憶體、每單元多位元NOR快閃記憶體、每單元單位元NAND快閃記憶體、每單元多位元NAND快閃記憶體、每單元多層級多位元NAND快閃記憶體、大區塊快閃記憶體等)。雖然在此提出各種不同的記憶體實例,但應注意的是,雖然任何類型的記憶體可適用各種不同原則,但其壽命可能會因為執行各種不同操作而減少。 In various embodiments, the memory referred to in the foregoing embodiments may include a mechanical storage device (eg, a disk, including a SATA disk, a SAS disk, a Fibre Channel disk, an IDE disk, an ATA). A disk, a CE disk, a USB disk, a smart card disk, an MMC disk, etc., and/or a non-mechanical storage device (for example, based on a semiconductor). For example, such non-mechanical memory can include volatile or non-volatile memory. In various embodiments, the non-volatile memory device can include flash memory (eg, For example, each unit of unit NOR flash memory, multi-bit NOR flash memory per unit, NAND flash memory per unit unit, multi-bit NAND flash memory per unit, multi-level multi-level per unit Meta NAND flash memory, large block flash memory, etc.). Although various different memory examples are presented herein, it should be noted that while any type of memory can be applied to a variety of different principles, its lifetime may be reduced by performing various different operations.
圖12說明一示範系統1200,其中可實施各種先前具體實施例之各種架構及/或功能。例如,示範系統1200可以是先前某些具體實施例中所提出之電腦。另外,上述之各種裝置甚至也可以是系統1200之一項元件。 FIG. 12 illustrates an exemplary system 1200 in which various architectures and/or functions of various prior embodiments may be implemented. For example, the exemplary system 1200 can be a computer as set forth in some of the previous specific embodiments. Additionally, the various devices described above may even be an element of system 1200.
如圖所示,系統1200包括至少一個主機處理器1201,其與通訊匯流排1202相連接。系統1200亦包括一個主記憶體1204。控制邏輯(軟體)與資料會被儲存在主記憶體1204,其採用隨機存取記憶體(RAM)之形式。 As shown, system 1200 includes at least one host processor 1201 that is coupled to communication bus 1202. System 1200 also includes a main memory 1204. Control logic (software) and data are stored in main memory 1204, which is in the form of random access memory (RAM).
系統1200亦包括一個繪圖處理器1206與一顯示器1208,即電腦螢幕。系統1200亦可以包括一第二儲存裝置1210。該第二儲存裝置1210,例如,可包括一個硬碟磁碟機及/或抽取式儲存磁碟,即軟碟機、磁帶機、光碟機等。該抽取式磁碟可以習知方式,從抽取式儲存模組讀取及/或寫入。 System 1200 also includes a graphics processor 1206 and a display 1208, a computer screen. System 1200 can also include a second storage device 1210. The second storage device 1210, for example, may include a hard disk drive and/or a removable storage disk, that is, a floppy disk drive, a tape drive, an optical disk drive, and the like. The removable disk can be read and/or written from the removable storage module in a conventional manner.
電腦程式,或電腦控制邏輯演算法可被儲存在主記憶體1204及/或第二儲存裝置1210中。當執行該電腦程式時,能使系統1200執行各種功能。記憶體1204、儲存裝 置1210及/或其他儲存裝置皆可做為電腦可讀取媒介之範例。 The computer program, or computer control logic algorithm, can be stored in the main memory 1204 and/or the second storage device 1210. When the computer program is executed, the system 1200 can perform various functions. Memory 1204, storage The 1210 and/or other storage devices can be used as examples of computer readable media.
在一具體實施例中,各種先前圖式之架構及/或功能均可實施在主機處理器1201、繪圖處理器1206、第二儲存裝置1210、一同時具備主機處理器1201及繪圖處理器1206之至少部份功能之積體電路(未顯示)、一晶片組(即被設計成以模組方式運作及銷售,以執行相關功能之積體電路組合等),及/或任何其他積體電路之環境中。 In a specific embodiment, the architecture and/or functions of the various previous figures may be implemented in the host processor 1201, the graphics processor 1206, the second storage device 1210, and the host processor 1201 and the graphics processor 1206. At least some of the functional integrated circuits (not shown), a chipset (ie, a modular circuit that is designed to operate and sell in a modular manner to perform related functions, etc.), and/or any other integrated circuit Environment.
此外,各種先前圖式之架構及/或功能亦可實施於一般電腦系統、電路板系統、專供娛樂用途之遊戲主控台系統、特定應用程式系統,及/或任何其他所需系統之環境中。例如,系統1200可採用桌上型電腦、膝上型電腦,及/或其他類型邏輯之形式。另外,系統1200可採用各種不同其他裝置之形式,包括但不限於個人數位助理(PDA)裝置、行動電話裝置、電視等。 In addition, the architecture and/or functions of the various previous diagrams may be implemented in general computer systems, circuit board systems, game console systems for entertainment purposes, application specific application systems, and/or any other desired system environment. in. For example, system 1200 can take the form of a desktop computer, a laptop, and/or other types of logic. Additionally, system 1200 can take the form of a variety of other devices including, but not limited to, personal digital assistant (PDA) devices, mobile telephone devices, televisions, and the like.
另外,雖然未顯示,系統1200亦可與網路[例如,電信網路、區域網路(LAN)、無線網路、廣域網路(WAN)例如,網際網路、點對點網路、纜線網路等]連接,以達成通訊目的。 Additionally, although not shown, system 1200 can also be networked (eg, telecommunications networks, regional networks (LANs), wireless networks, wide area networks (WANs), such as the Internet, peer-to-peer networks, and cable networks. Etc.] to connect for communication purposes.
雖然各種具體實施例已如上述,應瞭解它們僅以示範方式提出,而非限制。因此,較佳具體實施例的寬度與範圍不應受任何上述示範性具體實施例之限制,應只依據下列申請專利範圍及其附屬項加以定義。 While the specific embodiments have been described above, it is to be understood that Therefore, the breadth and scope of the preferred embodiments should not be limited by any of the above-described exemplary embodiments, and should be defined only in the scope of the following claims.
100‧‧‧延遲記憶體壽命減少操作之方法 100‧‧‧How to delay memory life reduction operations
102‧‧‧操作-識別一種與記憶體壽命相關之層面 102‧‧‧ Operation - Identify a level related to the life of the memory
104‧‧‧操作-依據該層面延遲至少提出一種延遲記憶體壽命減少之操作 104‧‧‧ Operation - At least one delay memory life reduction operation is proposed based on this level of delay
200‧‧‧延遲記憶體壽命減少操作技術 200‧‧‧Delayed memory life reduction operation technology
202‧‧‧操作總數 202‧‧‧ Total operations
204‧‧‧最少預期壽命 204‧‧‧Minimum life expectancy
206‧‧‧最大平均操作率 206‧‧‧Maximum average operating rate
300‧‧‧以時間間隔為基礎之技術 300‧‧‧Time-based technology
302‧‧‧操作總數 302‧‧‧ Total operations
304‧‧‧最少預期壽命 304‧‧‧Minimum life expectancy
306‧‧‧最大平均操作率 306‧‧‧Maximum average operating rate
400‧‧‧整合式技術 400‧‧‧Integrated technology
402‧‧‧操作總數 402‧‧‧ Total operations
404‧‧‧最少預期壽命 404‧‧‧Minimum life expectancy
406‧‧‧最大平均操作率 406‧‧‧Maximum average operating rate
408‧‧‧操作的數量超過最大平均操作率 408‧‧‧The number of operations exceeds the maximum average operating rate
500‧‧‧系統 500‧‧‧ system
501‧‧‧電腦 501‧‧‧ computer
502‧‧‧儲存匯流排 502‧‧‧Storage busbar
503‧‧‧儲存系統 503‧‧‧Storage system
510‧‧‧裝置 510‧‧‧ device
511‧‧‧控制器 511‧‧‧ Controller
512‧‧‧匯流排 512‧‧‧ busbar
513‧‧‧匯流排 513‧‧ ‧ busbar
514‧‧‧壽命預估器模組 514‧‧‧Life Estimator Module
515‧‧‧匯流排 515‧‧ ‧ busbar
516‧‧‧調節模組 516‧‧‧Adjustment module
517‧‧‧時間模組 517‧‧‧Time module
518‧‧‧匯流排 518‧‧ ‧ busbar
519‧‧‧匯流排 519‧‧‧ busbar
520‧‧‧需要的壽命模組 520‧‧‧Required life module
521‧‧‧匯流排 521‧‧ ‧ busbar
522‧‧‧匯流排 522‧‧ ‧ busbar
530‧‧‧儲存裝置 530‧‧‧Storage device
531‧‧‧模組或區塊 531‧‧‧Modules or blocks
532‧‧‧模組或區塊 532‧‧‧Modules or blocks
533‧‧‧模組或區塊 533‧‧‧Modules or blocks
540‧‧‧儲存裝置 540‧‧‧Storage device
541‧‧‧模組或區塊 541‧‧‧Modules or blocks
542‧‧‧模組或區塊 542‧‧‧Modules or blocks
543‧‧‧模組或區塊 543‧‧‧Modules or blocks
600‧‧‧記憶體壽命減少操作方法 600‧‧‧Memory life reduction operation method
601‧‧‧開始操作 601‧‧‧Starting operation
602‧‧‧指令、操作-等候指令 602‧‧‧Instructions, Operations-Waiting Instructions
603‧‧‧決定 603‧‧‧ decided
604‧‧‧操作-預估壽命 604‧‧‧Operation - Life expectancy
605‧‧‧決定 605‧‧‧ decided
606‧‧‧操作-調節壽命減少指令 606‧‧‧Operation-Adjust Life Reduction Instructions
607‧‧‧操作-處理指令 607‧‧‧Operation-Processing Instructions
700‧‧‧圖形使用者介面 700‧‧‧ graphical user interface
702‧‧‧計量器 702‧‧‧meter
704‧‧‧警告 704‧‧‧ Warning
705‧‧‧預估值 705‧‧‧ Estimated value
800‧‧‧減少記憶體寫入操作之方法 800‧‧‧How to reduce memory write operations
802‧‧‧操作-識別執行記憶體所儲存資料之寫入操作 802‧‧‧ Operation - Identify the write operation of the data stored in the execution memory
804‧‧‧操作-判斷寫入操作結果與記憶體儲存資料間之差異 804‧‧‧ Operation - Determine the difference between the write operation result and the memory storage data
806‧‧‧操作-運用差異資訊減少寫入操作 806‧‧‧ Operation - Use difference information to reduce write operations
900‧‧‧在記憶體中減少寫入操作之系統 900‧‧‧System for reducing write operations in memory
901‧‧‧電腦 901‧‧‧ computer
902‧‧‧輸入/輸出(I/O)匯流排 902‧‧‧Input/Output (I/O) Busbars
903‧‧‧讀取路徑、讀取路徑匯流排 903‧‧‧Read path, read path bus
904‧‧‧寫入路徑、匯流排 904‧‧‧Write path, busbar
910‧‧‧用於記憶體中減少寫入操作之裝置 910‧‧‧Device for reducing write operations in memory
911‧‧‧差異運算模組 911‧‧‧Differential Computing Module
912‧‧‧更新模組 912‧‧‧Update Module
913‧‧‧匯流排 913‧‧ ‧ busbar
914‧‧‧匯流排 914‧‧ ‧ busbar
915‧‧‧匯流排 915‧‧ ‧ busbar
920‧‧‧接合記憶體 920‧‧‧Connected memory
921‧‧‧接合緩衝區、接合記憶體緩衝區 921‧‧‧ Bonding buffer, bonding memory buffer
922‧‧‧接合緩衝區、接合記憶體緩衝區 922‧‧‧ Bonding buffer, bonding memory buffer
923‧‧‧接合緩衝區、接合記憶體緩衝區 923‧‧‧ Bonding buffer, bonding memory buffer
930‧‧‧儲存裝置 930‧‧‧Storage device
931‧‧‧儲存區塊 931‧‧‧ Storage Blocks
932‧‧‧儲存區塊 932‧‧‧ storage block
933‧‧‧儲存區塊 933‧‧‧ storage block
934‧‧‧預定部份 934‧‧‧Predetermined part
935‧‧‧儲存區塊931、932、933之其餘部份 935‧‧‧The rest of the storage blocks 931, 932, 933
1000‧‧‧運用不同資訊讀取記憶體之方法 1000‧‧‧How to read memory using different information
1001‧‧‧操作-從儲存裝置讀取區塊 1001‧‧‧Operation - Reading blocks from the storage device
1002‧‧‧操作-讀取差異資訊 1002‧‧‧Operation-Reading Difference Information
1003‧‧‧操作-差異套用在資訊上 1003‧‧‧ Operation - Differences apply to information
1004‧‧‧操作-重建資料被送回 1004‧‧‧Operation-reconstruction data was sent back
1100‧‧‧一種使用不同資訊寫入記憶體之方法 1100‧‧‧ A method of writing data using different information
1101‧‧‧操作-讀取來自儲存裝置之區塊 1101‧‧‧Operation - reading blocks from storage devices
1102‧‧‧操作-讀取差異資訊 1102‧‧‧Operation - Reading Difference Information
1103‧‧‧操作-差異套用在資訊上 1103‧‧‧ Operation - Differences apply to information
1104‧‧‧操作-運算出寫入與先前區塊間之差異 1104‧‧‧Operation - Calculate the difference between the write and the previous block
1105‧‧‧操作-差異資訊附加至接合緩衝區 1105‧‧‧Operation-difference information attached to the joint buffer
1106‧‧‧決定 1106‧‧‧Decision
1107‧‧‧操作-接合緩衝區被附加至差異資訊 1107‧‧‧Operation-bonding buffer is attached to the difference information
1110‧‧‧操作 1110‧‧‧ operation
1112‧‧‧操作-清空接合緩衝區 1112‧‧‧Operation - Empty the junction buffer
1114‧‧‧操作-判斷差異資訊是否已被填滿 1114‧‧‧Operation - judge whether the difference information has been filled
1116‧‧‧操作-差異資訊之變更套用在資料上 1116‧‧‧Operation-Changes in the difference information applied to the data
1118‧‧‧操作-套用變更的資料區塊會被寫入,並丟棄舊資料 1118‧‧‧Operation - The changed data block will be written and the old data will be discarded
1120‧‧‧操作-清空差異資訊 1120‧‧‧Operation - Clearing Difference Information
1200‧‧‧可實施各種先前具體實施例之各種架構及/或功能之系統 1200‧‧‧ Systems that implement various architectures and/or functions of various previous embodiments
1202‧‧‧通訊匯流排 1202‧‧‧Communication bus
1201‧‧‧主機處理器 1201‧‧‧Host processor
1204‧‧‧主記憶體 1204‧‧‧ main memory
1206‧‧‧繪圖處理器 1206‧‧‧Drawing processor
1208‧‧‧顯示器 1208‧‧‧ display
1210‧‧‧第二儲存裝置 1210‧‧‧Second storage device
圖1依據一具體實施例,顯示用於延遲記憶體壽命減少操作之方法。 1 shows a method for delaying a memory life reduction operation, in accordance with an embodiment.
圖2依據另一具體實施例,顯示用於延遲記憶體壽命減少操作之技術。 2 illustrates a technique for delaying memory life reduction operations in accordance with another embodiment.
圖3依據另一具體實施例,顯示用於延遲記憶體壽命減少操作之時間間隔技術。 3 illustrates a time interval technique for delaying memory life reduction operations, in accordance with another embodiment.
圖4依據再另一具體實施例,顯示一種可延遲記憶體壽命減少之整合式操作技巧。 Figure 4 illustrates an integrated operational technique that delays memory life reduction in accordance with yet another embodiment.
圖5依據另一具體實施例,說明如果預期壽命之持續時間超過預估壽命持續時間時,一種用於記憶體壽命減少操作之系統。 Figure 5 illustrates a system for memory life reduction operation if the lifetime of the life expectancy exceeds the estimated life duration, in accordance with another embodiment.
圖6依據另一具體實施例,說明如果預期壽命之持續時間超過預估壽命持續時間時,一種用於延遲記憶體壽命減少操作之方法。 Figure 6 illustrates a method for delaying memory life reduction operations if the lifetime of the life expectancy exceeds the estimated life duration, in accordance with another embodiment.
圖7依據另一具體實施例,顯示用於可精確計量記憶體壽命的圖形使用介面。 Figure 7 illustrates a graphical user interface for accurately metering the life of a memory, in accordance with another embodiment.
圖8依據另一具體實施例,顯示一種運用不同資訊以減少記憶體寫入操作之方法。 Figure 8 illustrates a method of utilizing different information to reduce memory write operations, in accordance with another embodiment.
圖9依據另一具體實施例,說明一種用於減少記憶體寫入操作之系統。 Figure 9 illustrates a system for reducing memory write operations in accordance with another embodiment.
圖10依據另一具體實施例,說明一種用於使用不同資訊讀取記憶體之方法。 Figure 10 illustrates a method for reading memory using different information, in accordance with another embodiment.
圖11依據另一具體實施例,說明一種用於使用不同資訊寫入記憶體之方法。 Figure 11 illustrates a method for writing to a memory using different information, in accordance with another embodiment.
圖12說明一種使用以處理器為基礎系統之具體實施例。 Figure 12 illustrates a specific embodiment using a processor based system.
100‧‧‧延遲記憶體壽命減少操作之方法 100‧‧‧How to delay memory life reduction operations
102‧‧‧操作-識別一種與記憶體壽命相關之層面 102‧‧‧ Operation - Identify a level related to the life of the memory
104‧‧‧操作-依據該層面至少提出一種延遲記憶體壽命減少之操作 104‧‧‧ Operation - At least one operation for delaying memory life reduction is proposed based on this level
Claims (20)
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US86084306P | 2006-11-24 | 2006-11-24 | |
| US87824207P | 2007-01-03 | 2007-01-03 | |
| US11/852,117 US7747813B2 (en) | 2006-11-24 | 2007-09-07 | Multi-memory device system and method for managing a lifetime thereof |
| US11/852,104 US7904619B2 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for reducing memory write operations using difference information |
| US11/852,082 US7809900B2 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
| US11/852,129 US7904764B2 (en) | 2006-11-24 | 2007-09-07 | Memory lifetime gauging system, method and computer program product |
| US11/852,138 US20080126685A1 (en) | 2006-11-24 | 2007-09-07 | System, method, and computer program product for reducing memory write operations using an instruction set |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200834601A TW200834601A (en) | 2008-08-16 |
| TWI475569B true TWI475569B (en) | 2015-03-01 |
Family
ID=39430372
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW096144306A TWI475569B (en) | 2006-11-24 | 2007-11-22 | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
Country Status (4)
| Country | Link |
|---|---|
| JP (4) | JP5171840B2 (en) |
| CN (1) | CN101578587B (en) |
| TW (1) | TWI475569B (en) |
| WO (1) | WO2008063647A2 (en) |
Families Citing this family (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7904619B2 (en) | 2006-11-24 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for reducing memory write operations using difference information |
| US7747813B2 (en) | 2006-11-24 | 2010-06-29 | Sandforce, Inc. | Multi-memory device system and method for managing a lifetime thereof |
| US7809900B2 (en) | 2006-11-24 | 2010-10-05 | Sandforce, Inc. | System, method, and computer program product for delaying an operation that reduces a lifetime of memory |
| US7904672B2 (en) | 2006-12-08 | 2011-03-08 | Sandforce, Inc. | System and method for providing data redundancy after reducing memory writes |
| US7849275B2 (en) | 2007-11-19 | 2010-12-07 | Sandforce, Inc. | System, method and a computer program product for writing data to different storage devices based on write frequency |
| US7903486B2 (en) | 2007-11-19 | 2011-03-08 | Sandforce, Inc. | System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory |
| US9183133B2 (en) * | 2007-11-28 | 2015-11-10 | Seagate Technology Llc | System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory |
| US8291152B2 (en) * | 2009-01-07 | 2012-10-16 | Silicon Motion, Inc. | Method for operating non-volatile memory and data storage system using the same |
| US8516166B2 (en) | 2009-07-20 | 2013-08-20 | Lsi Corporation | System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory |
| EP2413245B1 (en) * | 2009-07-22 | 2017-08-23 | Hitachi, Ltd. | Storage system provided with a plurality of flash packages |
| JP5002719B1 (en) | 2011-03-10 | 2012-08-15 | 株式会社東芝 | Information processing device, external storage device, host device, relay device, control program, and information processing device control method |
| JP5405513B2 (en) | 2011-03-22 | 2014-02-05 | 株式会社東芝 | MEMORY SYSTEM, NONVOLATILE MEMORY DEVICE, NONVOLATILE MEMORY DEVICE CONTROL METHOD, AND PROGRAM |
| CN103890724B (en) | 2011-08-19 | 2017-04-19 | 株式会社东芝 | Information processing apparatus, method for controlling information processing apparatus, host device, and performance evaluation method used for external storage device |
| US9064579B2 (en) | 2012-07-16 | 2015-06-23 | Kabushiki Kaisha Toshiba | Semiconductor memory apparatus, data transmission device, and recording method |
| US10037172B2 (en) | 2016-02-09 | 2018-07-31 | Toshiba Memory Corporation | Memory system and controlling method |
| CN106980566B (en) * | 2017-03-27 | 2020-05-26 | 联想(北京)有限公司 | Display control method and storage device |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
| US20040064635A1 (en) * | 2002-10-01 | 2004-04-01 | Im-Young Jung | Method of storing data in a non-volatile memory and apparatus therefor |
| TWI220031B (en) * | 2003-07-01 | 2004-08-01 | Delta Electronics Inc | Method and apparatus for time-relevant accessing a non-volatile memory in an electrical equipment |
| US6845438B1 (en) * | 1997-08-08 | 2005-01-18 | Kabushiki Kaisha Toshiba | Method for controlling non-volatile semiconductor memory system by using look up table |
| US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
| US7000063B2 (en) * | 2001-10-05 | 2006-02-14 | Matrix Semiconductor, Inc. | Write-many memory device and method for limiting a number of writes to the write-many memory device |
| TW200617665A (en) * | 2004-11-26 | 2006-06-01 | Hon Hai Prec Ind Co Ltd | Apparatus and method for prolonging useful life of non-volatile memory |
Family Cites Families (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0573435A (en) * | 1991-09-12 | 1993-03-26 | Nagano Oki Denki Kk | Storage element monitoring/protecting device |
| JP3938208B2 (en) * | 1991-11-28 | 2007-06-27 | 株式会社日立製作所 | Information equipment with flash memory |
| JPH06338195A (en) * | 1993-05-31 | 1994-12-06 | Nec Corp | Device for managing number of writing times of electrically erasable nonvolatile memory |
| JPH0764868A (en) * | 1993-08-24 | 1995-03-10 | Melco:Kk | Storage updating device |
| JPH0765592A (en) * | 1993-08-25 | 1995-03-10 | Nec Corp | Nonvolatile memory |
| JPH09237162A (en) * | 1996-02-23 | 1997-09-09 | Hewlett Packard Co <Hp> | Scanning data storage system, its stylus and medium abrasion managing methods and remaining life display device |
| JPH10187548A (en) * | 1996-12-24 | 1998-07-21 | Toyota Autom Loom Works Ltd | Storage device |
| JPH113287A (en) * | 1997-06-12 | 1999-01-06 | Hitachi Ltd | Storage device and storage area management method used therein |
| JP3557511B2 (en) * | 1997-08-27 | 2004-08-25 | 沖電気工業株式会社 | Semiconductor disk drive life calculation method |
| JP3544859B2 (en) * | 1998-05-11 | 2004-07-21 | 富士通株式会社 | Secondary storage device using nonvolatile semiconductor memory |
| JP3242890B2 (en) * | 1998-12-16 | 2001-12-25 | 株式会社ハギワラシスコム | Storage device |
| US7130807B1 (en) * | 1999-11-22 | 2006-10-31 | Accenture Llp | Technology sharing during demand and supply planning in a network-based supply chain environment |
| TW520514B (en) * | 2001-08-02 | 2003-02-11 | Macronix Int Co Ltd | Circuit and method of qualification test for non-volatile memory |
| US6910106B2 (en) * | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
| JP2004145934A (en) * | 2002-10-22 | 2004-05-20 | Matsushita Electric Ind Co Ltd | Disk storage device and disk storage system |
| US7035967B2 (en) * | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
| JP2004151944A (en) * | 2002-10-30 | 2004-05-27 | Denso Corp | Method for writing data in non-volatile storage device, its program and device, and onboard electronic controller |
| JP2004341989A (en) * | 2003-05-19 | 2004-12-02 | Matsushita Electric Ind Co Ltd | Memory card pack and memory card |
| US7480760B2 (en) * | 2003-12-17 | 2009-01-20 | Wegener Communications, Inc. | Rotational use of memory to minimize write cycles |
| JP4211627B2 (en) * | 2004-02-12 | 2009-01-21 | 日本電気株式会社 | File recording method and file system |
| JP4527456B2 (en) * | 2004-07-06 | 2010-08-18 | Necインフロンティア株式会社 | Memory life warning device and information processing method |
| JP2006092070A (en) * | 2004-09-22 | 2006-04-06 | Nec Corp | Disk array device, its control method and control program |
| WO2006052946A2 (en) * | 2004-11-08 | 2006-05-18 | Innopath Software, Inc. | Static file system differencing and updating |
| JP2006235960A (en) * | 2005-02-24 | 2006-09-07 | Fujitsu Ltd | Garbage collection acceleration method |
| JP2006236210A (en) * | 2005-02-28 | 2006-09-07 | Oki Data Corp | Memory writing device |
| US7447944B2 (en) * | 2005-04-29 | 2008-11-04 | Freescale Semiconductor, Inc. | Predictive methods and apparatus for non-volatile memory |
-
2007
- 2007-11-21 JP JP2009538408A patent/JP5171840B2/en not_active Expired - Fee Related
- 2007-11-21 CN CN200780043176.3A patent/CN101578587B/en not_active Expired - Fee Related
- 2007-11-21 WO PCT/US2007/024295 patent/WO2008063647A2/en not_active Ceased
- 2007-11-22 TW TW096144306A patent/TWI475569B/en not_active IP Right Cessation
-
2012
- 2012-11-05 JP JP2012243564A patent/JP5448013B2/en not_active Expired - Fee Related
-
2013
- 2013-12-18 JP JP2013261097A patent/JP2014078262A/en active Pending
- 2013-12-18 JP JP2013261095A patent/JP5814335B2/en not_active Expired - Fee Related
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6845438B1 (en) * | 1997-08-08 | 2005-01-18 | Kabushiki Kaisha Toshiba | Method for controlling non-volatile semiconductor memory system by using look up table |
| US6427186B1 (en) * | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
| US7000063B2 (en) * | 2001-10-05 | 2006-02-14 | Matrix Semiconductor, Inc. | Write-many memory device and method for limiting a number of writes to the write-many memory device |
| US20040064635A1 (en) * | 2002-10-01 | 2004-04-01 | Im-Young Jung | Method of storing data in a non-volatile memory and apparatus therefor |
| US6973531B1 (en) * | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
| TWI220031B (en) * | 2003-07-01 | 2004-08-01 | Delta Electronics Inc | Method and apparatus for time-relevant accessing a non-volatile memory in an electrical equipment |
| TW200617665A (en) * | 2004-11-26 | 2006-06-01 | Hon Hai Prec Ind Co Ltd | Apparatus and method for prolonging useful life of non-volatile memory |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2008063647A3 (en) | 2008-10-16 |
| JP2010511225A (en) | 2010-04-08 |
| WO2008063647A9 (en) | 2008-11-27 |
| WO2008063647A2 (en) | 2008-05-29 |
| JP2014089734A (en) | 2014-05-15 |
| JP5171840B2 (en) | 2013-03-27 |
| TW200834601A (en) | 2008-08-16 |
| CN101578587A (en) | 2009-11-11 |
| CN101578587B (en) | 2015-02-25 |
| JP2014078262A (en) | 2014-05-01 |
| JP5448013B2 (en) | 2014-03-19 |
| JP5814335B2 (en) | 2015-11-17 |
| JP2013084275A (en) | 2013-05-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI475569B (en) | System, method, and computer program product for delaying an operation that reduces a lifetime of memory | |
| US10732857B2 (en) | Techniques for reducing memory write operations using coalescing memory buffers and difference information | |
| US8230183B2 (en) | Techniques for prolonging a lifetime of memory by controlling operations that affect the lifetime of the memory | |
| US8230164B2 (en) | Techniques for multi-memory device lifetime management | |
| US7904764B2 (en) | Memory lifetime gauging system, method and computer program product | |
| JP5970645B2 (en) | Increasing spare area in memory to extend memory life | |
| US20080126685A1 (en) | System, method, and computer program product for reducing memory write operations using an instruction set | |
| HK1151365A (en) | Increasing spare space in memory to extend a lifetime of the memory |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |