TW201624288A - Cache memory device and non-transitory computer readable recording medium - Google Patents
Cache memory device and non-transitory computer readable recording medium Download PDFInfo
- Publication number
- TW201624288A TW201624288A TW104114942A TW104114942A TW201624288A TW 201624288 A TW201624288 A TW 201624288A TW 104114942 A TW104114942 A TW 104114942A TW 104114942 A TW104114942 A TW 104114942A TW 201624288 A TW201624288 A TW 201624288A
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- data
- erased
- group
- block
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 156
- 239000000463 material Substances 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 238000012423 maintenance Methods 0.000 claims description 3
- 230000010365 information processing Effects 0.000 description 38
- 238000013519 translation Methods 0.000 description 35
- 239000002699 waste material Substances 0.000 description 25
- 238000012217 deletion Methods 0.000 description 22
- 230000037430 deletion Effects 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012937 correction Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 3
- 239000000470 constituent Substances 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本文中所闡述之實施例大體而言係關於一種快取記憶體裝置及非暫態電腦可讀取記錄媒體。 The embodiments set forth herein are generally directed to a cache memory device and a non-transitory computer readable recording medium.
一固態磁碟機(SSD)包含諸如一NAND快閃記憶體之一非揮發性半導體記憶體。該NAND快閃記憶體包含複數個區塊(實體區塊)。該複數個區塊包含配置於字線與位元線之交叉點處之複數個記憶體胞元。 A solid state disk drive (SSD) contains a non-volatile semiconductor memory such as a NAND flash memory. The NAND flash memory includes a plurality of blocks (physical blocks). The plurality of blocks includes a plurality of memory cells disposed at intersections of the word lines and the bit lines.
2‧‧‧處理器 2‧‧‧ Processor
3‧‧‧記憶體 3‧‧‧ memory
4‧‧‧非揮發性快取記憶體 4‧‧‧Non-volatile cache memory
4B‧‧‧後端/記憶體通信單元 4B‧‧‧Backend/memory communication unit
4F‧‧‧前端/主機通信單元 4F‧‧‧ front-end/host communication unit
5‧‧‧固態磁碟機 5‧‧‧Solid Disk Drive
7‧‧‧位址轉譯資訊 7‧‧‧ Address translation information
8‧‧‧位址轉譯單元 8‧‧‧ Address translation unit
9‧‧‧快取控制單元/快取記憶體/快取記憶體控制單元 9‧‧‧Cache Control Unit / Cache Memory / Cache Memory Control Unit
10‧‧‧產生單元 10‧‧‧Generating unit
11‧‧‧控制單元 11‧‧‧Control unit
12‧‧‧控制單元 12‧‧‧Control unit
13‧‧‧控制單元 13‧‧‧Control unit
14‧‧‧控制單元 14‧‧‧Control unit
15‧‧‧變化單元/第一變化單元 15‧‧‧Change unit/first change unit
16‧‧‧變化單元/第二變化單元 16‧‧‧Change unit / second change unit
17‧‧‧資訊處理裝置 17‧‧‧Information processing device
18‧‧‧傳輸單元 18‧‧‧Transportation unit
19‧‧‧接收單元 19‧‧‧ Receiving unit
20‧‧‧寫入單元 20‧‧‧Write unit
21‧‧‧傳輸單元 21‧‧‧Transmission unit
22‧‧‧處理器 22‧‧‧ Processor
23‧‧‧記憶體 23‧‧‧ memory
24‧‧‧非揮發性記憶體 24‧‧‧ Non-volatile memory
25‧‧‧位址轉譯單元 25‧‧‧ Address translation unit
26‧‧‧寫入單元 26‧‧‧Write unit
27‧‧‧產生單元/有效/無效產生單元 27‧‧‧Generating Unit/Valid/Invalid Generating Unit
28‧‧‧選擇單元 28‧‧‧Selection unit
29‧‧‧傳輸單元 29‧‧‧Transportation unit
30‧‧‧接收單元 30‧‧‧ Receiving unit
31‧‧‧廢料收集單元 31‧‧‧Waste collection unit
32‧‧‧位址轉譯資訊 32‧‧‧ Address translation information
33‧‧‧有效/無效資訊 33‧‧‧Active/Invalid Information
34‧‧‧刪除資訊 34‧‧‧Delete information
35‧‧‧資訊處理系統 35‧‧‧Information Processing System
36‧‧‧控制器 36‧‧‧ Controller
37‧‧‧記憶體系統 37‧‧‧ memory system
38‧‧‧連接器 38‧‧‧Connector
41‧‧‧主機介面/組件 41‧‧‧Host Interface/Component
42‧‧‧主機介面控制器/控制單元/組件 42‧‧‧Host Interface Controller/Control Unit/Component
43B‧‧‧CPU 43B‧‧‧CPU
43F‧‧‧CPU 43F‧‧‧CPU
44‧‧‧編碼/解碼單元/進階加密標準/組件 44‧‧‧Encoding/Decoding Unit/Advanced Encryption Standard/Component
45‧‧‧查找表/組件 45‧‧‧ Lookup Table/Component
46‧‧‧DDRC 46‧‧‧DDRC
47‧‧‧動態隨機存取記憶體 47‧‧‧ Dynamic Random Access Memory
48‧‧‧直接記憶體存取控制器 48‧‧‧Direct Memory Access Controller
49‧‧‧錯誤校正碼/錯誤校正單元 49‧‧‧Error Correction Code/Error Correction Unit
50‧‧‧NAND控制器/組件 50‧‧‧NAND Controller/Component
61‧‧‧管理資訊/清單 61‧‧‧Management Information/List
62‧‧‧管理資訊 62‧‧‧Management Information
63‧‧‧管理資訊 63‧‧‧Management Information
64‧‧‧管理資訊/清單 64‧‧‧Management Information/List
100‧‧‧儲存系統 100‧‧‧Storage system
111‧‧‧寫入單元/第一寫入單元 111‧‧‧Write unit/first write unit
112‧‧‧判定單元/第一判定單元 112‧‧‧Decision unit/first decision unit
113‧‧‧選擇單元/第一選擇單元 113‧‧‧Selection unit / first selection unit
114‧‧‧判定單元/第二判定單元 114‧‧‧Decision unit/second decision unit
115‧‧‧抹除單元/第一抹除單元 115‧‧‧Erase unit/first erase unit
121‧‧‧寫入單元/第二寫入單元 121‧‧‧Write unit/second write unit
122‧‧‧判定單元/第五判定單元 122‧‧‧Decision unit/fifth determination unit
123‧‧‧選擇單元/第三選擇單元 123‧‧‧Selection unit / third selection unit
124‧‧‧判定單元 124‧‧‧Decision unit
125‧‧‧抹除單元/第二抹除單元 125‧‧‧wiping unit/second erasing unit
131‧‧‧寫入單元/第三寫入單元 131‧‧‧Write unit/third write unit
132‧‧‧判定單元/第三判定單元 132‧‧‧Decision unit/third determination unit
133‧‧‧選擇單元/第二選擇單元 133‧‧‧Selection unit / second selection unit
134‧‧‧判定單元/第四判定單元 134‧‧‧Decision unit/fourth determination unit
135‧‧‧寫入單元/第五寫入單元 135‧‧‧Write unit/fifth write unit
136‧‧‧抹除單元/第三抹除單元 136‧‧‧Erasing unit/third erasing unit
137‧‧‧寫入單元/第六寫入單元 137‧‧‧Write unit/sixth write unit
141‧‧‧寫入單元/第四寫入單元 141‧‧‧Write unit/fourth write unit
142‧‧‧判定單元/第六判定單元 142‧‧‧Decision unit/sixth determination unit
143‧‧‧選擇單元/第四選擇單元 143‧‧‧Selection Unit / Fourth Selection Unit
144‧‧‧抹除單元/第四抹除單元 144‧‧‧wiping unit/fourth erasing unit
B1,1‧‧‧區塊/第一抹除單位區域 B 1,1 ‧‧‧block/first erase unit area
B1,K‧‧‧區塊/第一抹除單位區域 B 1,K ‧‧‧block/first erase unit area
B2,1‧‧‧區塊/第二抹除單位區域 B 2,1 ‧‧‧block/second erase unit area
B2,L‧‧‧區塊/第二抹除單位區域 B 2,L ‧‧‧block/second erase unit area
B3,1‧‧‧區塊/第三抹除單位區域 B 3,1 ‧‧‧block/third erase unit area
B3,M‧‧‧區塊/第三抹除單位區域 B 3,M ‧‧‧block/third erase unit area
B4,1‧‧‧區塊/第四抹除單位區域 B 4,1 ‧‧‧block/fourth erase unit area
B4,N‧‧‧區塊/第四抹除單位區域 B 4,N ‧‧‧block/fourth erase unit area
BG1‧‧‧區塊群組/第一群組 BG 1 ‧‧‧ Block Group / First Group
BG2‧‧‧區塊群組/第二群組 BG 2 ‧‧‧ Block Group / Second Group
BG3‧‧‧區塊群組/第三群組 BG 3 ‧‧‧ Block Group / Third Group
BG4‧‧‧區塊群組/第四群組 BG 4 ‧‧‧ Block Group / Fourth Group
CH0-CH3‧‧‧通道 CH0-CH3‧‧‧ channel
IB‧‧‧內部匯流排 IB‧‧‧Internal busbar
RB‧‧‧讀取緩衝器/讀取資料傳送單元 RB‧‧‧Read buffer/read data transfer unit
RZ‧‧‧隨機產生器/組件 RZ‧‧‧ Random Generator/Component
WB‧‧‧寫入緩衝器/寫入資料傳送單元 WB‧‧‧Write Buffer/Write Data Transfer Unit
圖1係展示根據一第一實施例之包含一快取記憶體裝置之一資訊處理裝置之一組態實例的一方塊圖;圖2係展示第一實施例之第一快取控制之一實例之一流程圖;圖3係展示第一實施例之第二快取控制之一實例之一流程圖;圖4係展示第一實施例之第三快取控制之一實例之一流程圖;圖5係展示第一實施例之第四快取控制之一實例之一流程圖;圖6係展示根據一第二實施例之一資訊處理系統之一組態實例之一方塊圖;圖7係展示根據第二實施例由資訊處理系統執行之一程序之一實例之一流程圖; 圖8係展示根據一第三實施例之一資訊處理系統之一詳細組態之一實例的一方塊圖;及圖9係展示根據第三實施例之一儲存系統之一實例之一透視圖。 1 is a block diagram showing a configuration example of one of the information processing devices including a cache memory device according to a first embodiment; FIG. 2 is a view showing an example of the first cache control of the first embodiment. a flow chart; FIG. 3 is a flow chart showing one example of the second cache control of the first embodiment; FIG. 4 is a flow chart showing one of the examples of the third cache control of the first embodiment; 5 is a flow chart showing one of the examples of the fourth cache control of the first embodiment; FIG. 6 is a block diagram showing one configuration example of one of the information processing systems according to a second embodiment; A flowchart of one of the examples of one of the programs executed by the information processing system according to the second embodiment; Figure 8 is a block diagram showing an example of a detailed configuration of one of the information processing systems according to a third embodiment; and Figure 9 is a perspective view showing an example of a storage system according to the third embodiment.
大體而言,根據一項實施例,一種快取記憶體裝置包含一非揮發性快取記憶體、寫入單元、判定單元、選擇單元及抹除單元。該非揮發性快取記憶體包含複數個抹除單位區域。該等抹除單位區域中之每一者包含複數個寫入單位區域。該寫入單元將資料寫入至該非揮發性快取記憶體。該判定單元判定該複數個抹除單位區域是否滿足一抹除條件。該選擇單元在該複數個抹除單位區域滿足該抹除條件時自該複數個抹除單位區域選擇一待抹除區域。該抹除單元抹除寫入至該待抹除區域之該資料。 In general, according to one embodiment, a cache memory device includes a non-volatile cache memory, a write unit, a decision unit, a selection unit, and an erase unit. The non-volatile cache memory includes a plurality of erase unit areas. Each of the erased unit areas includes a plurality of write unit areas. The write unit writes data to the non-volatile cache memory. The determining unit determines whether the plurality of erase unit regions satisfy an erase condition. The selection unit selects an area to be erased from the plurality of erase unit regions when the plurality of erase unit regions satisfy the erase condition. The erase unit erases the material written to the area to be erased.
下文將參考圖式來闡述實施例。在一以下說明中,相同元件符號表示具有幾乎相同功能及配置之組件,且若必要,則將對該等組件給出一重複說明。 Embodiments will be described below with reference to the drawings. In the following description, the same component symbols indicate components having almost the same functions and configurations, and if necessary, a repeated description will be given to the components.
在本實施例中闡述包含一非揮發性快取記憶體之一快取記憶體裝置。 In this embodiment, a cache memory device including a non-volatile cache memory is illustrated.
在本實施例中,在該非揮發性快取記憶體中,資料係每抹除單位區域地被共同抹除。該抹除單位區域包含複數個寫入單位區域及複數個讀取單位區域。 In this embodiment, in the non-volatile cache memory, the data is erased together for each erased unit area. The erase unit area includes a plurality of write unit areas and a plurality of read unit areas.
在本實施例中,使用一NAND快閃記憶體作為一非揮發性快取記憶體及一非揮發性記憶體。然而,該非揮發性快取記憶體及該非揮發性記憶體中之每一者皆可係除NAND快閃記憶體之外之一記憶體,前提係該記憶體滿足該抹除單位區域、該寫入單位區域及該讀取單位區域當中之上述關係。 In this embodiment, a NAND flash memory is used as a non-volatile cache memory and a non-volatile memory. However, each of the non-volatile cache memory and the non-volatile memory may be a memory other than the NAND flash memory, provided that the memory satisfies the erase unit area, the write The above relationship between the unit area and the reading unit area.
當該非揮發性快取記憶體及該非揮發性記憶體係NAND快閃記憶體時,該抹除單位區域對應於一區塊。該寫入單位區域及該讀取單位區域對應於一頁。 When the non-volatile cache memory and the non-volatile memory system NAND flash memory, the erase unit area corresponds to a block. The write unit area and the read unit area correspond to one page.
在本實施例中,舉例而言,可以(舉例而言)兩個區塊之另一單位來控制該抹除單位區域,此允許共同地抹除資料。 In the present embodiment, for example, the erase unit area can be controlled, for example, by another unit of two blocks, which allows the data to be erased collectively.
在本實施例中,存取指示將資料寫入至一記憶體裝置及自記憶體裝置讀取資料兩者。 In this embodiment, the access indication writes data to both a memory device and a data read from the memory device.
圖1係展示根據本實施例之包含一快取記憶體裝置之一資訊處理裝置之一組態實例的一方塊圖。 1 is a block diagram showing a configuration example of one of information processing apparatuses including a cache memory device according to the present embodiment.
一資訊處理系統35包含一資訊處理裝置17及一SSD 5。資訊處理裝置17可係對應於SSD 5之一主機裝置。 An information processing system 35 includes an information processing device 17 and an SSD 5. The information processing device 17 may correspond to one of the SSDs 5 host devices.
資訊處理裝置17包含一處理器2、一記憶體3及一非揮發性快取記憶體4。SSD 5可包含於資訊處理裝置17中,或可連接至資訊處理裝置17以便經由網路等傳輸及接收資料。代替SSD 5,可使用諸如一硬碟機(HDD)之另一非揮發性記憶體裝置。 The information processing device 17 includes a processor 2, a memory 3, and a non-volatile cache memory 4. The SSD 5 may be included in the information processing device 17, or may be connected to the information processing device 17 for transmitting and receiving data via a network or the like. Instead of the SSD 5, another non-volatile memory device such as a hard disk drive (HDD) can be used.
資訊處理裝置17包含具有一快取控制單元9之一快取記憶體裝置、儲存管理資訊61至64之記憶體3及非揮發性快取記憶體4。然而,可在資訊處理裝置17之外提供快取控制單元9、管理資訊61至64、記憶體3及非揮發性快取記憶體4之全部或一部分。 The information processing device 17 includes a cache memory device having a cache control unit 9, a memory 3 storing the management information 61 to 64, and a non-volatile cache memory 4. However, all or part of the cache control unit 9, the management information 61 to 64, the memory 3, and the non-volatile cache memory 4 may be provided outside the information processing device 17.
非揮發性快取記憶體4包含區塊群組BG1至BG4。非揮發性快取記憶體4具有比SSD 5之存取速度高之一存取速度。 The non-volatile cache memory 4 includes block groups BG 1 to BG 4 . The non-volatile cache memory 4 has one access speed higher than the access speed of the SSD 5.
區塊群組(第一群組)BG1包含區塊(第一抹除單位區域)B1,1至B1,K。區塊群組BG1儲存由處理器2存取之資料(亦即,由處理器2使用之資料)。 The block group (first group) BG 1 contains blocks (first erase unit area) B 1,1 to B 1,K . The block group BG 1 stores the data accessed by the processor 2 (i.e., the data used by the processor 2).
在本實施例中,當區塊群組BG1滿足一抹除條件(第一抹除條件)時,基於先進先出(FIFO)而自區塊群組BG1中之區塊B1,1至B1,K選擇 一待抹除區塊(待廢除或推出區塊)(第一待抹除區域)。 In this embodiment, when the block group BG 1 satisfies an erasing condition (first erasing condition), the block B 1,1 in the block group BG 1 is based on the first in first out (FIFO) to B 1, K selects a block to be erased (to be revoked or pushed out of the block) (first area to be erased).
舉例而言,當區塊群組BG1之區塊B1,1至B1,K中之每一者之資料量超過一預定值時,滿足抹除條件。舉例而言,當寫入至區塊群組BG1之區塊B1,1至B1,K中之每一者之頁數目超過一預定數目時,可滿足抹除條件。 For example, when the amount of data of each of the blocks B 1,1 to B 1,K of the block group BG 1 exceeds a predetermined value, the erasing condition is satisfied. For example, when the number of pages written to each of the blocks B 1,1 to B 1,K of the block group BG 1 exceeds a predetermined number, the erase condition can be satisfied.
當寫入至基於FIFO而選自區塊B1,1至B1,K之待抹除區塊之資料處於一第一低使用狀態時(舉例而言,當該資料被存取達少於一所設定第一次數或以小於一所設定第一頻率被存取時),將該資料寫入至一區塊群組BG2。相比而言,當寫入至選自區塊B1,1至B1,K之待抹除區塊之資料處於一第一高使用狀態時(舉例而言,當該資料被存取達第一次數或更多或以第一頻率或更大被存取時),將該資料寫入至一區塊群組BG3。寫入至選自區塊B1,1至B1,K之待抹除區塊之資料係每區塊地被抹除(亦即,廢除或推出)。 When writing to the data to be erased from the block B 1,1 to B 1,K based on the FIFO is in a first low use state (for example, when the data is accessed less than The data is written to a block group BG 2 when a first number of times is set or when less than a set first frequency is accessed. In contrast, when the data written to the block to be erased selected from the blocks B 1,1 to B 1,K is in a first high use state (for example, when the data is accessed) the first number of times or more or when it is accessed), a group of blocks to write the data BG 3 or greater at a first frequency. The data written to the block to be erased selected from blocks B 1,1 to B 1,K is erased (ie, abolished or pushed out) per block.
區塊群組(第二群組)BG2包含區塊(第二抹除單位區域)B2,1至B2,L。區塊群組BG2儲存寫入至選自區塊群組BG1之待抹除區塊之資料中之處於第一低使用狀態之資料。 The block group (second group) BG 2 contains blocks (second erase unit area) B 2,1 to B 2,L . Group BG block 2 is written into the storage blocks selected to be of a Group BG erase the data in the data block is in the first state of low usage.
在本實施例中,當區塊群組BG2滿足一抹除條件(第三抹除條件)時,基於FIFO而自區塊群組BG2中之區塊B2,1至B2,L選擇一待抹除區塊(第三待抹除區域)。 In the present embodiment, when the block group BG 2 satisfies an erasing condition (third erasing condition), the block B 2,1 to B 2, L in the block group BG 2 is selected based on the FIFO. The block to be erased (the third area to be erased).
當寫入至依據FIFO而選自區塊B2,1至B2,L之待抹除區塊之資料處於一第三低使用狀態時(舉例而言,當該資料被存取達少於一所設定第三次數或以小於一所設定第三頻率被存取時),抹除該資料。相比而言,當寫入至選自區塊B2,1至B2,L之待抹除區塊之資料處於一第三高使用狀態時(舉例而言,當該資料被存取達第三次數或更多或以第三頻率或更大被存取時),將該資料寫入至一區塊群組BG3。然後,寫入至選自區塊B2,1至B2,L之待抹除區塊之資料被每區塊地抹 除。 When writing to the data to be erased from the block B 2,1 to B 2,L according to the FIFO is in a third low use state (for example, when the data is accessed less than The data is erased when a third number is set or when less than a set third frequency is accessed. In contrast, when writing to the block to be erased from the block B 2,1 to B 2,L is in a third high use state (for example, when the data is accessed) The data is written to a block group BG 3 when the third time or more or when the third frequency or more is accessed. Then, the data written to the block to be erased selected from the blocks B 2, 1 to B 2, L is erased by each block.
區塊群組(第三群組)BG3包含區塊(第三抹除單位區域)B3,1至B3,M。區塊群組BG3儲存寫入至選自區塊群組BG1之待抹除區塊之資料中之處於第一低使用狀態之資料。區塊群組BG3亦儲存寫入至選自區塊群組BG2之待抹除區塊之資料中之處於第三高使用狀態之資料。 The block group (third group) BG 3 contains blocks (third erase unit area) B 3,1 to B 3,M . Group BG. 3 blocks written to storage blocks selected to be of a Group BG erase the data in the data block is in the first state of low usage. The block group BG 3 also stores data written in the third highest usage state written in the material of the block to be erased selected from the block group BG 2 .
在本實施例中,當區塊群組BG3滿足一抹除條件(第二抹除條件)時,基於FIFO而自區塊群組BG3中之區塊B3,1至B3,M選擇一待抹除區塊(第二待抹除區域)。 In the present embodiment, when the block group BG 3 satisfies an erasing condition (second erasing condition), the block B 3,1 to B 3,M in the block group BG 3 is selected based on the FIFO. The block to be erased (the second area to be erased).
當寫入至依據FIFO而選自區塊B3,1至B3,M之待抹除區塊之資料處於一第二低使用狀態時(舉例而言,當該資料被存取達少於一所設定第二次數或以小於一所設定第二頻率被存取時),將該資料寫入至區塊群組BG4。相比而言,當寫入至選自區塊B3,1至B3,M之待抹除區塊之資料處於一第二高使用狀態時(舉例而言,當該資料被存取達第二次數或更多或以第二頻率或更大被存取時),再次將該資料寫入至區塊群組BG3中之另一區塊。然後,寫入至選自區塊B3,1至B3,M之待抹除區塊之資料被每區塊地抹除。 When the data to be erased from the block B 3,1 to B 3,M according to the FIFO is written to a second low use state (for example, when the data is accessed less than The data is written to the block group BG 4 when a second number of times is set or when less than one set second frequency is accessed. In contrast, when writing to the block to be erased from the block B 3,1 to B 3,M is in a second high use state (for example, when the data is accessed) the second number of times or more or when the frequency is accessed to a second or more), re-writes the data to another block 3 in the block group BG. Then, the data written to the block to be erased selected from the blocks B 3, 1 to B 3, M is erased by each block.
區塊群組(第四群組)BG4包含區塊(第四抹除單位區域)B4,1至B4,N。區塊群組BG4儲存寫入至選自區塊群組BG3之待抹除區塊之資料中之處於第二低使用狀態之資料。 The block group (fourth group) BG 4 contains blocks (fourth erase unit area) B 4,1 to B 4,N . The block group BG 4 stores the data in the second low usage state written to the material of the block to be erased selected from the block group BG 3 .
在本實施例中,當區塊群組BG4滿足一抹除條件(第四抹除條件)時,基於FIFO而自區塊群組BG4中之區塊B4,1至B4,N選擇一待抹除區塊(第四待抹除區域)。 In the present embodiment, when the block group BG 4 satisfies an erasing condition (fourth erasing condition), the block B 4,1 to B 4,N in the block group BG 4 are selected based on the FIFO. The block to be erased (the fourth area to be erased).
抹除寫入至依據FIFO而選自區塊B4,1至B4,N之待抹除區塊之資料。 The erase is written to the data to be erased from the block B 4,1 to B 4,N according to the FIFO.
在本實施例中,FIFO用作用於自區塊群組BG1至BG4中之每一者選擇一待抹除區塊之一方法。藉由依據FIFO選擇待抹除區塊,在區 塊群組BG1至BG4中之每一者中自具有與最舊寫入時間及寫入次序之一區塊開始循序地執行抹除。然而,舉例而言,可隨機地或基於最近最少使用(LRU)或最不經常使用(LFU)來選擇待抹除區塊。舉例而言,管理資訊61至64包含資料之識別資訊、指示資料是否為待刪除資料之資訊及資料之使用狀態資訊。可基於管理資訊61至64而選擇具有最大無效資料量之一區塊或具有大於一預定量之一無效資料量之一區塊作為待抹除區塊。舉例而言,可基於管理資訊61至64而選擇具有最大無效資料及待刪除資料(刪除目標資料)量之一區塊或具有大於一預定量之一無效資料及待刪除資料量之一區塊作為待抹除區塊。 In the present embodiment, the FIFO is used as a method for selecting one of the blocks to be erased from each of the block groups BG 1 to BG 4 . By selecting the block to be erased in accordance with the FIFO, the erase is performed sequentially from the block having one of the oldest write time and the write order in each of the block groups BG 1 to BG 4 . However, for example, the block to be erased may be selected randomly or based on least recently used (LRU) or least frequently used (LFU). For example, the management information 61 to 64 includes the identification information of the data, the information indicating whether the data is the information to be deleted, and the usage status information of the data. A block having one of the largest invalid data amounts or one block having one of the invalid data amounts greater than a predetermined amount may be selected as the block to be erased based on the management information 61 to 64. For example, one of the blocks having the largest invalid data and the data to be deleted (deleted target data) or one of the invalid data and one of the data to be deleted may be selected based on the management information 61 to 64. As the block to be erased.
記憶體3儲存各種類型之控制資料,諸如管理資訊(清單)61至64及位址轉譯資訊7。記憶體3可係諸如一動態隨機存取記憶體(DRAM)或一靜態隨機存取記憶體(SRAM)之一揮發性記憶體,或者可係一非揮發性記憶體。記憶體3可包含於非揮發性快取記憶體4中。 The memory 3 stores various types of control data such as management information (lists) 61 to 64 and address translation information 7. The memory 3 can be a volatile memory such as a dynamic random access memory (DRAM) or a static random access memory (SRAM), or can be a non-volatile memory. The memory 3 can be included in the non-volatile cache memory 4.
在本實施例中,快取控制單元9可基於管理資訊61至64及位址轉譯資訊7而辨識經快取資料之識別資訊(舉例而言,自主機提供之一邏輯位址(舉例而言,邏輯區塊定址))、該資料被寫入至之一位置及該資料之一使用狀態。舉例而言,快取控制單元9可基於管理資訊61至64及位址轉譯資訊7而選擇快取至區塊群組BG1至BG4中之每一者之資料及依據FIFO抹除之一區塊。 In this embodiment, the cache control unit 9 can identify the identification information of the cached data based on the management information 61 to 64 and the address translation information 7 (for example, one logical address provided from the host (for example, , logical block addressing)), the data is written to a location and one of the data usage status. For example, the cache control unit 9 can select the data cached to each of the block groups BG 1 to BG 4 based on the management information 61 to 64 and the address translation information 7 and according to one of the FIFO erases. Block.
管理資訊61至64分別係寫入至區塊群組BG1至BG4之資料之後設資料。舉例而言,管理資訊61至64包含指示處理器2對各別資料之使用狀態之資訊。舉例而言,管理資訊61至64包含各別資料之識別資訊、指示資料是否為待刪除資料之刪除資訊、指示資料是否為有效資料之有效/無效資訊及用以判定是否滿足用於抹除區塊之抹除條件之快取判定資訊。 The management information 61 to 64 are data written after the data written to the block groups BG 1 to BG 4 , respectively. For example, the management information 61 to 64 contain information indicating the state of use of the respective data by the processor 2. For example, the management information 61 to 64 includes identification information of the individual data, whether the information is the deletion information of the data to be deleted, whether the information is valid/invalid information of the valid data, and whether the content is valid for the erasing area. The block erase condition is used to determine the information.
該刪除資訊係指示發佈對資料之一刪除命令之資訊。更具體而 言,該刪除資訊係指示自由處理器2執行之一應用程式或一作業系統(OS)接收到對資料之一刪除命令之資訊等。在本實施例中,舉例而言,該刪除資訊包含使每一區塊之識別資訊與指示寫入至每一區塊之待刪除資料之一邏輯位址相關之資訊。 The deletion information indicates that information about one of the data deletion commands is issued. More specific In other words, the deletion information indicates that the free processor 2 executes one of the applications or an operating system (OS) to receive information on one of the data deletion commands, and the like. In this embodiment, for example, the deletion information includes information for identifying the identification information of each block and a logical address indicating one of the to-be-deleted data written to each block.
該有效/無效資訊係指示(舉例而言)當將相同資料寫入至複數個位置時最新資料係有效資料且除最新資料之外之資料係無效資料之資訊。換言之,舉例而言,在執行對寫入至非揮發性快取記憶體4之資料之更新之情況中,有效資料係經更新資料。舉例而言,在執行更新之情況中,無效資料係未經更新之資料。在本實施例中,舉例而言,該有效/無效資訊包含使每一區塊之識別資訊與指示寫入至每一區塊之有效資料或無效資料之一邏輯位址相關之資訊。 The valid/invalid information indicates, for example, that when the same data is written to a plurality of locations, the latest data is valid and the data other than the latest data is information of the invalid data. In other words, for example, in the case of performing an update to the data written to the non-volatile cache memory 4, the valid data is updated. For example, in the case of performing an update, the invalid data is unupdated material. In this embodiment, for example, the valid/invalid information includes information that associates the identification information of each block with a logical address indicating one of valid data or invalid data written to each block.
該快取判定資訊係包含(舉例而言)每資料之寫入資訊及讀取資訊中之至少一者或每區塊之寫入資訊及讀取資訊中之至少一者之資訊等。 The cache determination information includes, for example, information on at least one of the write information and the read information of each data or at least one of the write information and the read information of each block.
舉例而言,寫入資訊包含寫入時間、寫入次數、寫入頻率及寫入次序中之至少一者。 For example, the write information includes at least one of a write time, a write count, a write frequency, and a write order.
舉例而言,讀取資訊包含讀取時間、讀取次數、讀取頻率及讀取次序中之至少一者。 For example, the read information includes at least one of a read time, a read count, a read frequency, and a read order.
舉例而言,位址轉譯資訊7使資料之一邏輯位址與對應於該邏輯位址(舉例而言,實體區塊定址)的非揮發性快取記憶體4之一實體位址相關。舉例而言,位址轉譯資訊7係以一表形式來管理的。 For example, the address translation information 7 associates one of the logical addresses of the data with a physical address of one of the non-volatile cache memories 4 corresponding to the logical address (for example, physical block addressing). For example, the address translation information 7 is managed in the form of a table.
處理器2藉由執行儲存於處理器2之一記憶體、記憶體3、非揮發性快取記憶體4或SSD 5中之一程式而充當一位址轉譯單元8及一快取控制單元9。 The processor 2 functions as an address translation unit 8 and a cache control unit 9 by executing one of the memory, the memory 3, the non-volatile cache 4 or the SSD 5 stored in the processor 2. .
在本實施例中,舉例而言,用以致使處理器2充當位址轉譯單元8及快取控制單元9之程式可係OS、中間軟體或韌體。在本實施例 中,可藉由硬體來實施位址轉譯單元8之全部或一部分或者快取控制單元9之全部或一部分。 In this embodiment, for example, the program used to cause the processor 2 to function as the address translation unit 8 and the cache control unit 9 may be an OS, an intermediate software or a firmware. In this embodiment All or part of the address translation unit 8 or all or part of the cache control unit 9 may be implemented by hardware.
位址轉譯單元8產生使寫入資料之一邏輯位址與指示儲存該寫入資料的非揮發性快取記憶體4中之一位置之一實體位址相關之資訊,且將所產生資訊暫存至位址轉譯資訊7。 The address translation unit 8 generates information for associating a logical address of one of the written data with a physical address indicating one of the locations in the non-volatile cache 4 storing the written data, and temporarily generating the generated information. Save to address translation information7.
當自處理器2接收到讀取資料之一邏輯位址時,位址轉譯單元8基於位址轉譯資訊7而將邏輯位址轉譯為實體位址。 When the logical address of one of the read data is received from the processor 2, the address translation unit 8 translates the logical address into a physical address based on the address translation information 7.
快取控制單元9針對具有高於SSD 5之存取速度之存取速度之非揮發性快取記憶體4執行快取控制。舉例而言,快取控制單元9藉由一直接寫回(write through)方法或一間接寫回(write back)方法來管理資料以及指示該資料之邏輯位址及實體位址。 The cache control unit 9 performs cache control for the non-volatile cache memory 4 having an access speed higher than the access speed of the SSD 5. For example, the cache control unit 9 manages the data and indicates the logical address and physical address of the data by a direct write through method or an indirect write back method.
在直接寫回方法中,資料儲存於非揮發性快取記憶體4中且亦儲存於SSD 5中。 In the direct write back method, the data is stored in the non-volatile cache memory 4 and also stored in the SSD 5.
在間接寫回方法中,儲存於非揮發性快取記憶體4中之資料並非一起儲存於SSD 5中。首先將該資料儲存於非揮發性快取記憶體4中,且然後將自非揮發性快取記憶體4推出之資料儲存於SSD 5中。 In the indirect write back method, the data stored in the non-volatile cache memory 4 is not stored together in the SSD 5. The data is first stored in the non-volatile cache memory 4, and then the data derived from the non-volatile cache memory 4 is stored in the SSD 5.
快取控制單元9包含一產生單元10、控制單元11至14以及變化單元15及16。 The cache control unit 9 includes a generation unit 10, control units 11 to 14, and change units 15 and 16.
產生單元10產生對應於區塊群組BG1至BG4之管理資訊61至64並將管理資訊61至64寫入至記憶體3。 The generating unit 10 generates management information 61 to 64 corresponding to the block groups BG 1 to BG 4 and writes the management information 61 to 64 to the memory 3.
控制單元11至14分別針對區塊群組BG1至BG4控制資料寫入及區塊抹除。 The control units 11 to 14 control data writing and block erasing for the block groups BG 1 to BG 4 , respectively.
控制單元11包含一寫入單元111、一判定單元112、一選擇單元113、一判定單元114及一抹除單元115。 The control unit 11 includes a writing unit 111, a determining unit 112, a selecting unit 113, a determining unit 114, and an erasing unit 115.
寫入單元(第一寫入單元)111將由處理器2存取之資料寫入至區塊群組BG1。 The write unit (first write unit) 111 writes the material accessed by the processor 2 to the block group BG 1 .
判定單元(第一判定單元)112判定區塊群組BG1是否滿足抹除條件(第一抹除條件)。 The determination unit (first determination unit) 112 determines whether the block group BG 1 satisfies the erasing condition (first erasing condition).
當區塊群組BG1滿足抹除條件時,選擇單元(第一選擇單元)113自區塊群組BG1選擇一待抹除區塊(第一待抹除區域)。 When the erase block group BG 1 satisfies the condition, the selecting unit (the first selecting means) 113 from a group of blocks to be selected BG 1 erase block (the first region to be erased).
判定單元(第二判定單元)114基於管理資訊61而判定寫入至待抹除區塊之每一資料項目是處於第一高使用狀態還是第一低使用狀態及該資料之每一項目是否為待刪除資料。 The determining unit (second determining unit) 114 determines, based on the management information 61, whether each data item written to the block to be erased is in the first high use state or the first low use state and whether each item of the data is The data to be deleted.
當寫入至待抹除區塊之每一資料項目可因每一資料項目被寫入至區塊群組BG2至BG3或係待刪除資料而被廢除時,抹除單元(第一抹除單元)115抹除待抹除區塊。 When the data item written to the block to be erased can be abolished because each data item is written to the block group BG 2 to BG 3 or is to be deleted, the erasing unit (first wipe) In addition to the unit) 115, the block to be erased is erased.
控制單元12包含一寫入單元121、一判定單元122、一選擇單元123、一判定單元124及一抹除單元125。 The control unit 12 includes a writing unit 121, a determining unit 122, a selecting unit 123, a determining unit 124, and an erasing unit 125.
當判定單元114判定寫入至區塊群組BG1之待抹除區塊之資料處於第一低使用狀態且並非待刪除資料時,寫入單元(第二寫入單元)121將該資料寫入至區塊群組BG2。 When the determining unit 114 determines that the data of the block to be erased written to the block group BG 1 is in the first low use state and is not the data to be deleted, the writing unit (second writing unit) 121 writes the data. Enter the block group BG 2 .
判定單元(第五判定單元)122判定區塊群組BG2是否滿足抹除條件(第三抹除條件)。 The determination unit (fifth determination unit) 122 determines whether the block group BG 2 satisfies the erasing condition (third erasing condition).
當區塊群組BG2滿足抹除條件時,選擇單元(第三選擇單元)123自區塊群組BG2選擇一待抹除區塊(第三待抹除區域)。 When the block group BG 2 satisfies the erase condition, the selection unit (third selection unit) 123 selects an to-be-erased block (third to-be-erased area) from the block group BG 2 .
判定單元124基於管理資訊62而判定寫入至待抹除區塊之每一資料項目是處於第三高使用狀態還是第三低使用狀態及該資料之每一項目是否為待刪除資料。 The determining unit 124 determines, based on the management information 62, whether each data item written to the block to be erased is in the third high use state or the third low use state and whether each item of the data is the data to be deleted.
當寫入至待抹除區塊之資料處於第三高使用狀態且並非待刪除資料、被寫入至區塊群組BG3時,抹除單元(第二抹除單元)125抹除寫入至待抹除區塊之資料。 When the data written to the block to be erased is in the third highest use state and is not to be deleted, and is written to the block group BG 3 , the erasing unit (second erasing unit) 125 erases the writing. Information to be erased.
控制單元13包含一寫入單元131、一判定單元132、一選擇單元 133、一判定單元134、一寫入單元135、一抹除單元136及一寫入單元137。 The control unit 13 includes a writing unit 131, a determining unit 132, and a selecting unit. 133, a determining unit 134, a writing unit 135, an erasing unit 136 and a writing unit 137.
當判定單元114判定寫入至區塊群組BG1之待抹除區塊之資料處於第一高使用狀態且並非待刪除資料時,寫入單元(第三寫入單元)131將該資料寫入至區塊群組BG3。 When the determining unit 114 determines that the data of the block to be erased written to the block group BG 1 is in the first high use state and is not the data to be deleted, the writing unit (third writing unit) 131 writes the material. Go to block group BG 3 .
當寫入至區塊群組BG2之資料處於第三高使用狀態且並非待刪除資料時,寫入單元(第六寫入單元)137將該資料寫入至區塊群組BG3。舉例而言,當寫入至區塊群組BG2之資料係待由處理器2存取之資料時,寫入單元137可將區塊群組BG2之待存取資料寫入至區塊群組BG3。 When the data written to the tile group BG 2 is in the third high use state and is not the data to be deleted, the write unit (sixth write unit) 137 writes the material to the tile group BG 3 . For example, when the data written to the block group BG 2 is the data to be accessed by the processor 2, the writing unit 137 can write the to-be-accessed data of the block group BG 2 to the block. Group BG 3 .
判定單元(第三判定單元)132判定區塊群組BG3是否滿足抹除條件(第二抹除條件)。 The determination unit (third determination unit) 132 determines whether the block group BG 3 satisfies the erase condition (second erase condition).
當區塊群組BG3滿足抹除條件時,選擇單元(第二選擇單元)133自區塊群組BG3選擇一待抹除區塊(第二待抹除區域)。 When the erase block group BG 3 satisfies condition selection unit (second selecting means) 133 BG 3 groups selected from the blocks to be a block erase (erase region to be a second).
判定單元(第四判定單元)134基於管理資訊63而判定寫入至待抹除區塊之每一資料項目是處於第二高使用狀態還是第二低使用狀態及該資料之每一項目是否為待刪除資料。 The determining unit (fourth determining unit) 134 determines, based on the management information 63, whether each data item written to the block to be erased is in the second high use state or the second low use state and whether each item of the data is The data to be deleted.
當寫入至區塊群組BG3之待抹除區塊之資料被判定為處於第二高使用狀態且並非待刪除資料時,寫入單元(第五寫入單元)135再次將該資料寫入至區塊群組BG3中之另一可寫入區塊。 When the data of the block to be erased written to the block group BG 3 is determined to be in the second high use state and is not the data to be deleted, the write unit (fifth write unit) 135 writes the data again. Enter another writable block in block group BG 3 .
當寫入至待抹除區塊之資料之每一項目可因每一資料項目被寫入至區塊群組BG4、再次被寫入至區塊群組BG3或係待刪除資料而被廢除時,抹除單元(第三抹除單元)136抹除待抹除區塊。 Each item of data written to the block to be erased may be written to the block group BG 4 for each data item, written to the block group BG 3 again, or deleted for the data to be deleted. When abolished, the erase unit (third erase unit) 136 erases the block to be erased.
控制單元14包含一寫入單元141、一判定單元142、一選擇單元143及一抹除單元144。 The control unit 14 includes a writing unit 141, a determining unit 142, a selecting unit 143, and an erasing unit 144.
當判定單元134判定寫入至區塊群組BG3之待抹除區塊之資料處 於第二低使用狀態且並非待刪除資料時,寫入單元(第四寫入單元)141將該資料寫入至區塊群組BG4。 When the determining unit 134 determines that the data of the block to be erased written to the block group BG 3 is in the second low use state and is not the data to be deleted, the writing unit (fourth writing unit) 141 writes the material. Go to block group BG 4 .
判定單元(第六判定單元)142判定區塊群組BG4是否滿足抹除條件(第四抹除條件)。 The determination unit (sixth determination unit) 142 determines whether the block group BG 4 satisfies the erase condition (fourth erase condition).
當區塊群組BG4滿足抹除條件(第四抹除條件)時,選擇單元(第四選擇單元)143自區塊群組BG4選擇一待抹除區塊(第四待抹除區域)。 When the block group BG 4 satisfies the erasing condition (fourth erasing condition), the selecting unit (fourth selecting unit) 143 selects a block to be erased from the block group BG 4 (fourth to be erased area) ).
抹除單元(第四抹除單元)144抹除寫入至區塊群組BG4之待抹除區塊之資料。 The erase unit (fourth erase unit) 144 erases the data to be erased from the block to be written to the block group BG 4 .
當寫入至區塊群組BG2之資料達到第三高使用狀態時,變化單元(第一變化單元)15增加區塊群組BG1中所包含之區塊之數目且減少區塊群組BG3中所包含之區塊之數目。舉例而言,當寫入至區塊群組BG2之資料由處理器2存取時,變化單元15增加區塊群組BG1中所包含之區塊之數目且減少區塊群組BG3中所包含之區塊之數目。 When the data written to the tile group BG 2 reaches the third high use state, the change unit (first change unit) 15 increases the number of blocks included in the block group BG 1 and reduces the block group The number of blocks included in BG 3 . For example, when the data written to the block group BG 2 is accessed by the processor 2, the changing unit 15 increases the number of blocks included in the block group BG 1 and reduces the block group BG 3 The number of blocks included in the block.
當寫入至區塊群組BG4之資料達到第四高使用狀態時,變化單元(第二變化單元)16增加區塊群組BG3中所包含之區塊之數目且減少區塊群組BG1中所包含之區塊之數目。舉例而言,當寫入至區塊群組BG4之資料由處理器2存取時,變化單元16增加區塊群組BG3中所包含之區塊之數目且減少區塊群組BG1中所包含之區塊之數目。 When the data written to the block group BG 4 reaches the fourth high use state, the changing unit (second changing unit) 16 increases the number of blocks included in the block group BG 3 and reduces the block group The number of blocks included in BG 1 . For example, when the data written to the block group BG 4 is accessed by the processor 2, the changing unit 16 increases the number of blocks included in the block group BG 3 and reduces the block group BG 1 The number of blocks included in the block.
圖2係展示根據本實施例之第一快取控制之一實例之一流程圖。圖2例示性地展示其中將資料寫入至區塊群組BG1、將資料寫入至區塊群組BG2或BG3並抹除區塊群組BG1中之一待抹除區塊之一程序。 Fig. 2 is a flow chart showing one of the examples of the first cache control according to the present embodiment. 2 exemplarily shows in which data is written to the tile group BG 1 , data is written to the tile group BG 2 or BG 3 and one of the tile groups BG 1 is erased. One of the programs.
在步驟S201中,寫入單元111將由處理器2存取之資料寫入至區塊群組BG1。 In step S201, the writing unit 111 of the data access by the processor 2 writes to the group of blocks BG 1.
在步驟202中,判定單元112判定區塊群組BG1是否滿足抹除條件。 In step 202, the determination unit 112 determines whether the block group BG 1 satisfies the erase condition.
當區塊群組BG1不滿足抹除條件時,該程序繼續進行至步驟 S206。 When the block group BG 1 does not satisfy the erase condition, the process proceeds to step S206.
當區塊群組BG1滿足抹除條件時,在步驟S203中,選擇單元113自區塊群組BG1選擇一待抹除區塊。 When erased block group BG 1 satisfies the condition, in step S203, the selection unit 113 from a group of blocks to be selected BG 1 erase block.
在步驟S204中,判定單元114基於管理資訊61而判定寫入至待抹除區塊之每一資料項目是處於第一高使用狀態還是第一低使用狀態及該資料之每一項目是否為待抹除資料(刪除目標資料)。 In step S204, the determining unit 114 determines, based on the management information 61, whether each data item written to the block to be erased is in the first high use state or the first low use state and whether each item of the data is to be treated. Erase data (delete target data).
當資料項目處於第一低使用狀態且資料並非待刪除資料(非刪除目標資料)時,在步驟S301中,寫入單元121將該資料項目寫入至區塊群組BG2。 When the material item is in the first low use state and the material is not the data to be deleted (non-deleted target data), in step S301, the writing unit 121 writes the material item to the block group BG 2 .
當資料項目處於第一高使用狀態且並非待刪除資料時,在步驟S401中,寫入單元131將該資料項目寫入至區塊群組BG3。 When the data item is in the first state and the use of high data not to be deleted, in step S401, the writing unit 131 to write the data item block group BG 3.
當寫入至待抹除區塊之資料之每一項目可因資料之每一項目被寫入至區塊群組BG2或區塊群組BG3或係待刪除資料而被廢除時,在步驟S205中,抹除單元115抹除待抹除區塊。 When each item of data written to the block to be erased can be abolished because each item of the data is written to the block group BG 2 or the block group BG3 or the data to be deleted is deleted. In S205, the erasing unit 115 erases the block to be erased.
在步驟S206中,快取控制單元9判定是否將結束該程序。 In step S206, the cache control unit 9 determines whether or not the program will be ended.
當快取控制單元9不結束該程序時,該程序返回至步驟S201。 When the cache control unit 9 does not end the program, the program returns to step S201.
當快取控制單元9結束該程序時,該程序便結束。 When the cache control unit 9 ends the program, the program ends.
圖3係展示根據本實施例之第二快取控制之一實例之一流程圖。圖3例示性地展示其中將資料寫入至區塊群組BG2並抹除區塊群組BG2中之一待抹除區塊之一程序。 Fig. 3 is a flow chart showing one example of the second cache control according to the present embodiment. FIG. 3 exemplarily shows a program in which data is written to the tile group BG 2 and one of the blocks to be erased in the block group BG 2 is erased.
當在步驟S204中,寫入至區塊群組BG1之待抹除區塊之資料被判定為處於第一低使用狀態且並非待刪除資料時,在步驟S301中,寫入單元121將該資料寫入至區塊群組BG2。 When the data of the block to be erased written to the block group BG 1 is determined to be in the first low use state and is not to be deleted in step S204, in step S301, the writing unit 121 The data is written to the block group BG 2 .
在步驟S302中,判定單元122判定區塊群組BG2是否滿足抹除條件。 In step S302, the determination unit 122 determines whether the block group BG 2 satisfies the erase condition.
當區塊群組BG2不滿足抹除條件時,該程序繼續進行至步驟 S306。 When the block group BG 2 does not satisfy the erase condition, the program proceeds to step S306.
當區塊群組BG2滿足抹除條件時,在步驟S303中,選擇單元123自區塊群組BG2選擇一待抹除區塊。 When erased block group BG 2 satisfies the condition, in step S303, the selection unit 123 from the block group BG 2 select a block to be erased.
在步驟S304中,判定單元124基於管理資訊62而判定寫入至待抹除區塊之每一資料項目是處於第三高使用狀態還是第三低使用狀態及該資料之每一項目是否為待刪除資料。 In step S304, the determining unit 124 determines, based on the management information 62, whether each data item written to the block to be erased is in the third high use state or the third low use state and whether each item of the data is to be treated. Delete the data.
當資料項目處於第三低使用狀態或係待刪除資料時,該程序繼續進行至步驟S305。 When the data item is in the third low use state or is to be deleted, the program proceeds to step S305.
當資料項目處於第三高使用狀態且並非待刪除資料時,在步驟S401中,寫入單元137將該資料項目寫入至區塊群組BG3。 When the data item is in the third state and not to use the high data to be deleted, in step S401, the writing unit 137 to write the data item block group BG 3.
在步驟S305中,抹除單元125抹除寫入至區塊群組BG2之待抹除區塊之資料。 In step S305, the erase unit 125 to erase the writing 2 of the group of blocks to be erased BG of the data block.
在步驟S306中,快取控制單元9判定是否將結束該程序。 In step S306, the cache control unit 9 determines whether or not the program will be ended.
當快取控制單元9不結束該程序時,該程序返回至步驟S301。 When the cache control unit 9 does not end the program, the program returns to step S301.
當快取控制單元9結束該程序時,該程序便結束。 When the cache control unit 9 ends the program, the program ends.
圖4係展示根據本實施例之第三快取控制之一實例之一流程圖。圖4例示性地展示自將資料寫入至區塊群組BG3至抹除區塊群組BG3中之資料之一程序。 4 is a flow chart showing one example of a third cache control according to the present embodiment. FIG. 4 exemplarily shows a program from the data in which data is written to the tile group BG 3 to the erase block group BG 3 .
當在步驟S204中,寫入至區塊群組BG1之待抹除區塊之資料被判定為處於第一高使用狀態且並非待刪除資料時,在步驟S401中,寫入單元131將該資料寫入至區塊群組BG3。當在步驟S304中,寫入至區塊群組BG2之資料被判定為處於第三高使用狀態(舉例而言,該資料由處理器2存取)且並非待刪除資料時,寫入單元137將區塊群組BG2之資料寫入至區塊群組BG3。 When the data of the block to be erased written to the block group BG 1 is determined to be in the first high use state and is not to be deleted in step S204, in step S401, the writing unit 131 The data is written to the block group BG 3 . When the data written to the block group BG 2 is determined to be in the third high use state (for example, the data is accessed by the processor 2) and is not to be deleted in step S304, the writing unit 137 Writes the data of the block group BG 2 to the block group BG 3 .
在步驟S402中,判定單元132判定區塊群組BG3是否滿足抹除條件。 In step S402, the determination unit 132 determines whether the block group BG 3 satisfies the erase condition.
當區塊群組BG3不滿足抹除條件時,該程序繼續進行至步驟S407。 When the block group BG 3 does not satisfy the erase condition, the program proceeds to step S407.
當區塊群組BG3滿足抹除條件時,在步驟S403中,選擇單元133自區塊群組BG3選擇一待抹除區塊。 When the erase block group BG 3 satisfies the condition, in step S403, the selection unit 133 from the block group BG 3 selects a block to be erased.
在步驟S404中,判定單元134基於管理資訊63而判定寫入至待抹除區塊之每一資料項目是處於第二高使用狀態還是第二低使用狀態及該資料之每一項目是否為待刪除資料。 In step S404, the determining unit 134 determines, based on the management information 63, whether each data item written to the block to be erased is in the second high use state or the second low use state and whether each item of the data is to be treated. Delete the data.
當資料項目處於第二低使用狀態且並非待刪除資料時,在步驟S501中,寫入單元141將該資料寫入至區塊群組BG4。 When the material item is in the second low use state and is not to be deleted, in step S501, the writing unit 141 writes the material to the block group BG 4 .
當資料處於第二高使用狀態且並非待刪除資料時,在步驟S405中,寫入單元135再次將寫入至區塊群組BG3之待抹除區塊之資料寫入至區塊群組BG3中之另一區塊。 When the data is in the second highest use state and is not to be deleted, in step S405, the writing unit 135 writes the data of the to-be-erased block written to the block group BG 3 to the block group again. Another block in BG 3 .
在步驟S406中,當寫入至待抹除區塊之資料之每一項目可因每一資料項目被寫入至區塊群組BG4、再次被寫入至區塊群組BG3或係待刪除資料而被廢除時,抹除單元136抹除待抹除區塊。 In step S406, each item of data written to the block to be erased may be written to the block group BG 4 for each data item, written to the block group BG 3 or the system again. When the data to be deleted is discarded, the erasing unit 136 erases the block to be erased.
在步驟S407中,快取控制單元9判定是否將結束該程序。 In step S407, the cache control unit 9 determines whether or not the program will be ended.
當快取控制單元9不結束該程序時,該程序返回至步驟S401。 When the cache control unit 9 does not end the program, the program returns to step S401.
當快取控制單元9結束該程序時,該程序便結束。 When the cache control unit 9 ends the program, the program ends.
圖5係展示根據本實施例之第四快取控制之一實例之一流程圖。圖5例示性地展示其中將資料寫入至區塊群組BG4並抹除區塊群組BG4中之資料之一程序。 Fig. 5 is a flow chart showing one of the examples of the fourth cache control according to the present embodiment. 5 illustrates exemplary display of one of the 4 4 wherein the information to write data to the program block and erase blocks Group BG Group BG.
當在步驟S404中,寫入至區塊群組BG3之待抹除區塊之資料被判定為處於第二低狀態且並非待刪除資料時,在步驟S501中,寫入單元141將該資料寫入至區塊群組BG4。 When the data of the block to be erased written to the block group BG 3 is determined to be in the second low state and is not to be deleted in step S404, the writing unit 141 writes the data in step S501. Write to block group BG 4 .
在步驟S502中,判定單元142判定區塊群組BG4是否滿足抹除條件。 In step S502, the determination unit 142 determines whether the block group BG 4 satisfies the erase condition.
當區塊群組BG4不滿足抹除條件時,該程序繼續進行至步驟S505。 When the block group BG 4 does not satisfy the erase condition, the process proceeds to step S505.
當區塊群組BG4滿足抹除條件時,在步驟S503中,選擇單元143自區塊群組BG4選擇一待抹除區塊。 When erased block group BG 4 satisfies the condition, in step S503, the selection unit 143 from the block group BG 4 selects a block to be erased.
在步驟S504中,抹除單元144抹除寫入至區塊群組BG4中之待抹除區塊之資料。 In step S504, the erase unit 144 to be erased is written in the 4 blocks of Group BG erase data block.
在步驟S505中,快取控制單元9判定是否將結束該程序。 In step S505, the cache control unit 9 determines whether or not the program will be ended.
當快取控制單元9不結束該程序時,該程序返回至步驟S501。 When the cache control unit 9 does not end the program, the program returns to step S501.
當快取控制單元9結束該程序時,該程序便結束。 When the cache control unit 9 ends the program, the program ends.
在本實施例之區塊群組BG1中,舉例而言,資料被首先循序寫入至區塊B1,1、接下來循序寫入至區塊B1,2,且然後類似地寫入至區塊B1,3至B1,K。當區塊群組BG1中所包含之區塊B1,1至B1,K之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B1,1,且再次將資料循序寫入至經抹除區塊B1,1。在完成至區塊B1,1之寫入之後,依據FIFO而抹除區塊B1,2。然後,再次將資料循序寫入至經抹除區塊B1,2。重複相同控制。 In the block group BG 1 of the present embodiment, for example, data is first sequentially written to the block B 1,1 , and then sequentially written to the block B 1,2 , and then similarly written. To block B 1,3 to B 1,K . When the amount of data of one of the blocks B 1,1 to B 1,K included in the block group BG 1 exceeds a predetermined amount of data, the block B 1,1 in which the writing is completed first is erased according to the FIFO. And the data is sequentially written to the erased block B 1,1 . After completing the writing to block B 1,1 , block B 1,2 is erased according to the FIFO. Then, the data is sequentially written to the erased block B 1,2 again . Repeat the same control.
在區塊群組BG1中,基於管理資訊61而判定寫入至區塊群組BG1中之待抹除區塊之資料是否被存取(舉例而言)達少於第一次數或以小於第一頻率被存取。當寫入至區塊群組BG1中之待抹除區塊之資料被存取達少於第一次數或以小於第一頻率被存取時,選擇區塊群組BG2作為資料之一寫入目的地。 In the block group BG 1 , it is determined based on the management information 61 whether the data written to the block to be erased in the block group BG 1 is accessed (for example) less than the first number or It is accessed at less than the first frequency. When the data written to the block to be erased in the block group BG 1 is accessed less than the first number of times or is accessed less than the first frequency, the block group BG 2 is selected as the data. Write to the destination.
相比而言,當寫入至區塊群組BG1中之待抹除區塊之資料被存取達第一次數或更多或者以第一頻率或更大被存取時,選擇區塊群組BG3作為資料之一寫入目的地。 In contrast, when the data written to the block to be erased in the block group BG 1 is accessed for the first time or more or accessed at the first frequency or more, the selection area The block group BG 3 is written to the destination as one of the materials.
當寫入至區塊群組BG1中之待抹除區塊之資料係待刪除資料時,廢除該資料。 When the data to be erased in the block to be erased in the block group BG 1 is to be deleted, the data is revoked.
在本實施例之區塊群組BG2中,來自區塊群組BG1之處於第一低使用狀態之資料被首先循序寫入至區塊B2,1、接下來循序寫入至區塊B2,2,且然後類似地寫入至區塊B2,3至B2,L。當區塊群組BG2中所包含之區塊B2,1至B2,L之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B2,1且再次將資料循序寫入至經抹除區塊B2,1。在完成至區塊B2,1之寫入之後,依據FIFO而抹除區塊B2,2。然後,將資料循序寫入至經抹除區塊B2,2。重複相同控制。 In the block group BG 2 of the embodiment, the data from the block group BG 1 in the first low use state is first sequentially written to the block B 2,1 , and then sequentially written to the block. B 2,2 and then similarly written to block B 2,3 to B 2,L . When the amount of data of one of the blocks B 2,1 to B 2, L included in the block group BG 2 exceeds a predetermined amount of data, the block B 2,1 in which the writing is completed first is erased according to the FIFO. And the data is sequentially written to the erased block B 2,1 . After completing the writing to block B 2,1 , block B 2,2 is erased according to the FIFO. Then, the data is sequentially written to the erased block B 2,2 . Repeat the same control.
在區塊群組BG2中,基於管理資訊62而判定寫入至區塊群組BG2中之待抹除區塊之資料是否被存取(舉例而言)達少於第三次數或以小於第三頻率被存取。當寫入至區塊群組BG2中之待抹除區塊之資料被存取達少於第三次數或以小於第三頻率被存取時,抹除該資料。 In the block group BG 2 , it is determined based on the management information 62 whether the data written to the block to be erased in the block group BG 2 is accessed (for example) less than the third number or Less than the third frequency is accessed. When the data written to the block to be erased in the block group BG 2 is accessed less than the third time or accessed at less than the third frequency, the data is erased.
相比而言,當寫入至區塊群組BG2中之待抹除區塊之資料被存取達第三次數或更多或者以第三頻率或更大被存取時,選擇區塊群組BG3作為資料之一寫入目的地。 In contrast, when the data written to the block to be erased in the block group BG 2 is accessed for the third time or more or accessed at the third frequency or more, the block is selected. Group BG 3 is written to the destination as one of the materials.
當寫入至區塊群組BG2中之待抹除區塊之資料係待刪除資料時,廢除該資料。 When the data to be erased in the block to be erased in the block group BG 2 is to be deleted, the data is revoked.
在本實施例之區塊群組BG3中,來自區塊群組BG1之處於第一高使用狀態之資料、來自區塊群組BG2之處於第三高使用狀態之資料或來自區塊群組BG3之重新寫入資料被首先循序寫入至區塊B3,1、接下來循序寫入至區塊B3,2,且然後類似地寫入至區塊B3,3至B3,M。當區塊群組BG3中所包含之區塊B3,1至B3,M之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B3,1且再次將資料循序寫入至經抹除區塊B3,1。在完成至區塊B3,1之寫入之後,依據FIFO而抹除區塊B3,2。然後,再次將資料循序寫入至經抹除區塊B3,2。重複相同控制。 In the block group BG 3 of the embodiment, the data from the block group BG 1 in the first high use state, the data in the third highest use state from the block group BG 2 or from the block The rewrite data of group BG 3 is first written to block B 3,1 first , then sequentially to block B 3,2 , and then similarly written to block B 3,3 to B. 3, M. When the amount of data of one of the blocks B 3,1 to B 3,M included in the block group BG 3 exceeds a predetermined amount of data, the block B 3,1 in which the writing is completed first is erased according to the FIFO. And the data is sequentially written to the erased block B 3,1 . After completing the writing to block B 3,1 , block B 3,2 is erased according to the FIFO. Then, the data is sequentially written to the erased block B 3,2 again . Repeat the same control.
在區塊群組BG3中,基於管理資訊63而判定寫入至區塊群組BG3 中之待抹除區塊之資料是否被存取(舉例而言)達少於第二次數或以小於第二頻率被存取。當寫入至區塊群組BG3中之待抹除區塊之資料被存取達少於第二次數或以小於第二頻率被存取時,選擇區塊群組BG4作為資料之一寫入目的地。 In the block group BG 3 , it is determined based on the management information 63 whether the data written to the block to be erased in the block group BG 3 is accessed (for example) less than the second number or Less than the second frequency is accessed. When the data written to the block to be erased in the block group BG 3 is accessed less than the second number or is accessed less than the second frequency, the block group BG 4 is selected as one of the materials. Write to the destination.
相比而言,當寫入至區塊群組BG3中之待抹除區塊之資料被存取達第二次數或更多或者以第二頻率或更大被存取時,再次將資料寫入至區塊群組BG3。 In contrast, when the data written to the block to be erased in the block group BG 3 is accessed for the second time or more or accessed at the second frequency or more, the data is again accessed. Write to block group BG 3 .
當寫入至區塊群組BG3中之待抹除區塊之資料係待刪除資料時,廢除該資料。 When the data to be erased in the block to be erased in the block group BG 3 is to be deleted, the data is revoked.
在本實施例之區塊群組BG4中,來自區塊群組BG3之處於第二低使用狀態之資料被首先循序寫入至區塊B4,1、接下來循序寫入至區塊B4,2,且然後類似地寫入至區塊B4,3至B4,N。當區塊群組BG4中所包含之區塊B4,1至B4,N之一資料量超過一預定資料量時,依據FIFO而抹除其中寫入首先完成之區塊B4,1且再次將資料循序寫入至經抹除區塊B4,1。在完成至區塊B4,1之寫入之後,依據FIFO而抹除區塊B4,2。然後,將資料循序寫入至經抹除區塊B4,2。重複相同控制。 In the block group BG 4 of the embodiment, the data from the block group BG 3 in the second low use state is first sequentially written to the block B 4,1 , and then sequentially written to the block. B 4,2 and then similarly written to block B 4,3 to B 4,N . When the amount of data of one of the blocks B 4,1 to B 4,N included in the block group BG 4 exceeds a predetermined amount of data, the block B 4,1 in which the writing is completed first is erased according to the FIFO. And the data is sequentially written to the erased block B 4,1 . After completing the writing to block B 4,1 , block B 4,2 is erased according to the FIFO. Then, the data is sequentially written to the erased block B 4,2 . Repeat the same control.
在本實施例中,控制單元14可判定寫入至區塊群組BG4之一待抹除區塊之資料是否處於一第五高使用狀態。當寫入至區塊群組BG4之待抹除區塊之資料被判定為處於第五高使用狀態時,就將該資料維護於非揮發性快取記憶體4中而言,控制單元13可將該資料寫入至區塊群組BG3之一可寫入目的地區塊。在此情況中,處理器2可減小區塊群組BG1之一大小。 In this embodiment, the control unit 14 may determine whether the data written to one of the block groups BG 4 to be erased is in a fifth high use state. When the data of the block to be erased written to the block group BG 4 is determined to be in the fifth high use state, the data is maintained in the non-volatile cache memory 4, and the control unit 13 The data can be written to one of the block groups BG 3 to be written to the destination area block. In this case, the processor 2 can reduce the size of the one block group a BG.
在本實施例中,基於四個區塊群組BG1至BG4而管理資料。 In the present embodiment, the materials are managed based on the four block groups BG 1 to BG 4 .
舉例而言,在區塊群組BG1中管理由處理器2存取一次之第一資料(經一次存取資料)。 For example, in a block group BG in the first data managed by the first processor 2 to access (via the primary access data).
舉例而言,若區塊群組BG1中之第二資料由處理器2存取兩次或 更多次且基於FIFO而被自區塊群組BG1推出,則將第二資料自區塊群組BG1移動至區塊群組BG3。 For example, if the second data in the block group BG 1 is accessed twice or more times by the processor 2 and is derived from the block group BG 1 based on the FIFO, the second data is self-blocked. Group BG 1 moves to block group BG 3 .
應注意,在本實施例中,區塊群組BG1之大小大於區塊群組BG3之大小。 It should be noted that in the present embodiment, the size of the block group BG 1 is larger than the size of the block group BG 3 .
舉例而言,當區塊群組BG1中之第三資料在未由處理器2存取之情況下基於FIFO而被自區塊群組BG1推出時,將第三資料自區塊群組BG1移動至區塊群組BG2。 For example, when the third data block Group BG 1 in which the FIFO is not based on a case where the second access from the processor 1 Release Group BG blocks, the data from the third block group BG 1 moves to block group BG 2 .
舉例而言,若區塊群組BG3中之第四資料在未由處理器2存取之情況下基於FIFO而被自區塊群組BG3清除,則將第四資料自區塊群組BG3移動至區塊群組BG4。 For example, if the block group BG 3 in the fourth data is not based on the group of blocks from the FIFO is cleared by BG 3 in the case 2 of the access processor, then data from the fourth block group BG 3 moves to block group BG 4 .
舉例而言,在區塊群組BG2及BG4中,可快取後設資料而非快取資料。後設資料包含與資料相關之資訊。換言之,後設資料係關於資料之高度抽象且額外之資料且被附加至該資料。 For example, in the block groups BG 2 and BG 4 , the data can be cached instead of the cached data. Subsequent information contains information related to the information. In other words, the post-data is highly abstract and additional information about the material and is attached to it.
在本實施例中,舉例而言,當第五資料儲存於區塊群組BG1中時,可基於FIFO而推出區塊群組BG2中之第六資料。 In this embodiment, for example, when the fifth data is stored in the block group BG 1 , the sixth data in the block group BG 2 may be pushed out based on the FIFO.
舉例而言,當區塊群組BG1中之第七資料被存取且基於FIFO而被自區塊群組BG1推出時,可將第七資料自區塊群組BG1移動至區塊群組BG3,可基於FIFO而將區塊群組BG3中之第八資料自區塊群組BG3移動至區塊群組BG4,且可基於FIFO而自區塊群組BG4推出區塊群組BG4中之第九資料。 For example, when the seventh data in the block group BG 1 is accessed and pushed out from the block group BG 1 based on the FIFO, the seventh data can be moved from the block group BG 1 to the block. group BG 3, based on the FIFO block group BG 3 and the data from the block of the eighth group BG 3 moves to block group BG 4, and may be based on self-FIFO block group BG 4 Release The ninth data in the block group BG 4 .
舉例而言,當存取區塊群組BG2中之第十資料時,會增加區塊群組BG1之大小。若區塊群組BG1之大小增加,則基於FIFO而將區塊群組BG3中之第十一資料移動至區塊群組BG4。 For example, when the tenth data in the block group BG 2 is accessed, the size of the block group BG 1 is increased. If the size of the block group BG 1 is increased, the eleventh data in the block group BG 3 is moved to the block group BG 4 based on the FIFO.
舉例而言,當區塊群組BG4中之第十二資料被存取且基於FIFO而被自區塊群組BG4推出時,將第十二資料移動至區塊群組BG3,且會減小區塊群組BG1之大小。 For example, when the twelfth material in the block group BG 4 is accessed and is pushed out from the block group BG 4 based on the FIFO, the twelfth material is moved to the block group BG 3 , and The size of the block group BG 1 is reduced.
在上文所闡述之本實施例中,一維護判定對是否將維護一區塊單位之資料進行判定,一傳送寫入將待維護之區塊資料寫入至一目的地區塊,且寫入至非揮發性快取記憶體4之資料係每區塊地被抹除。 In the embodiment described above, a maintenance decision determines whether to maintain the data of a block unit, and a transfer write writes the block data to be maintained to a destination area block, and writes to The data of the non-volatile cache memory 4 is erased per block.
在本實施例中,可增加一有效快取容量,可提升非揮發性快取記憶體4之一命中率,且可增加資訊處理裝置17之一速度。 In this embodiment, an effective cache capacity can be added, the hit rate of the non-volatile cache memory 4 can be increased, and the speed of one of the information processing devices 17 can be increased.
在本實施例中,在不針對非揮發性快取記憶體4執行廢料收集之情況下,可避免效能之一降低。由於廢料收集並非是必須的,因此可減少至非揮發性快取記憶體4之寫入次數且可增加非揮發性快取記憶體4之壽命。此外,由於廢料收集並非是必須的,因此不需要保證有儲備區域(provisioning area)。因此,可增加可用作一快取記憶體之一資料容量,且可改良使用效率。 In the present embodiment, in the case where waste collection is not performed for the non-volatile cache memory 4, one of the performances can be prevented from being lowered. Since waste collection is not necessary, the number of writes to the non-volatile cache memory 4 can be reduced and the life of the non-volatile cache memory 4 can be increased. In addition, since waste collection is not necessary, there is no need to ensure a provisioning area. Therefore, the data capacity which can be used as one of the cache memories can be increased, and the use efficiency can be improved.
舉例而言,當使用非揮發性記憶體作為一快取記憶體且無論區塊之邊界如何都廢除資料時,可頻繁地執行廢料收集以將非揮發性記憶體之一區塊中之有效資料移動至另一區塊。在本實施例中,不需要在非揮發性快取記憶體4中執行廢料收集。因此,如上文所闡述,在本實施例中,可增加非揮發性快取記憶體4之壽命。 For example, when non-volatile memory is used as a cache memory and data is abolished regardless of the boundary of the block, waste collection can be performed frequently to validate data in one of the non-volatile memory blocks. Move to another block. In the present embodiment, it is not necessary to perform waste collection in the non-volatile cache memory 4. Therefore, as explained above, in the present embodiment, the life of the non-volatile cache memory 4 can be increased.
本實施例係第一實施例之一經修改實例。在本實施例中,闡述包含快取控制單元9之資訊處理裝置17與SSD 5之間的資料及資訊之傳輸及接收。 This embodiment is a modified example of one of the first embodiments. In the present embodiment, the transmission and reception of data and information between the information processing device 17 including the cache control unit 9 and the SSD 5 are explained.
在本實施例中,使用一邏輯位址作為資料之識別資訊。然而,可藉由其他資訊來識別資料。 In this embodiment, a logical address is used as the identification information of the data. However, information can be identified by other information.
圖6係展示根據本實施例之資訊處理裝置35之一組態實例之一方塊圖。 Fig. 6 is a block diagram showing a configuration example of one of the information processing apparatuses 35 according to the present embodiment.
除第一實施例中所闡述之組成元件之外,快取控制單元9亦進一步包含一傳輸單元18、一接收單元19、一寫入單元20及一傳輸單元 21。 In addition to the constituent elements set forth in the first embodiment, the cache control unit 9 further includes a transmission unit 18, a receiving unit 19, a writing unit 20, and a transmission unit. twenty one.
傳輸單元18將用於SSD 5之寫入資料及該寫入資料之一位址傳輸至SSD 5。在本實施例中,舉例而言,自傳輸單元18傳輸至SSD 5之位址係一邏輯位址。 The transmission unit 18 transmits the write data for the SSD 5 and one of the addresses of the write data to the SSD 5. In this embodiment, for example, the address transmitted from the transmission unit 18 to the SSD 5 is a logical address.
接收單元19自SSD 5接收包含指示寫入至待經受廢料收集之一區塊之有效資料之邏輯位址之區塊資訊。 The receiving unit 19 receives, from the SSD 5, block information including a logical address indicating valid data written to a block to be subjected to waste collection.
在本實施例中,該區塊資訊可包含使SSD 5中之每一區塊之識別資訊與寫入至每一區塊之資料之識別資訊相關之資訊。 In this embodiment, the block information may include information related to the identification information of each block in the SSD 5 and the identification information of the data written to each block.
寫入單元20基於自SSD 5接收之區塊資訊以及管理資訊61至64而將由區塊資訊中所包含之邏輯位址指示之有效資料之全部或一部分寫入(轉錄)至除非揮發性記憶體24之外之一記憶體。舉例而言,另一記憶體可係非揮發性快取記憶體4。 The writing unit 20 writes (transcribes) all or a part of the valid data indicated by the logical address included in the block information to the volatile memory based on the block information received from the SSD 5 and the management information 61 to 64. One of the 24 memory. For example, another memory can be a non-volatile cache memory 4.
舉例而言,在接收到一刪除命令之情況下,寫入單元20將指示係待刪除資料(刪除候選者)之資料之一邏輯位址自區塊資訊中所包含之指示有效資料之邏輯位址排除。因此,可選擇寫入至待經受廢料收集之區塊且並非待刪除資料之有效資料。寫入單元20將選定資料寫入至另一記憶體。 For example, in the case of receiving a delete command, the writing unit 20 will indicate that one of the data of the data to be deleted (deletion candidate) is logical address from the logical bit indicating the valid data included in the block information. Site exclusion. Therefore, it is possible to select a valid material to be written to the block to be subjected to waste collection and not to be deleted. The writing unit 20 writes the selected material to another memory.
傳輸單元21產生包含指示待刪除資料之邏輯位址之刪除資訊並將該刪除資訊傳輸至SSD 5。舉例而言,該刪除資訊可包含指示區塊資訊中所包含之有效資料之邏輯位址中指示係未被寫入單元20寫入至另一記憶體之刪除目標之資料之一邏輯位址。代替刪除資訊,可將包含待維護資料之邏輯位址之維護資訊自傳輸單元21傳輸至SSD 5。 The transmission unit 21 generates deletion information including a logical address indicating the data to be deleted and transmits the deletion information to the SSD 5. For example, the deletion information may include a logical address indicating that the logical address of the valid data included in the block information indicates that the data is not written by the writing unit 20 to the deletion target of another memory. Instead of deleting the information, the maintenance information including the logical address of the data to be maintained may be transmitted from the transmission unit 21 to the SSD 5.
SSD 5包含一處理器22、一記憶體23及非揮發性記憶體24。 The SSD 5 includes a processor 22, a memory 23, and a non-volatile memory 24.
舉例而言,記憶體23儲存各種類型之控制資料,諸如位址轉譯資訊32、有效/無效資訊33及刪除資訊34。記憶體23可係諸如一DRAM或一SRAM之一揮發性記憶體,或者可係一非揮發性記憶體。 記憶體23可包含於非揮發性記憶體24中。 For example, the memory 23 stores various types of control data such as address translation information 32, valid/invalid information 33, and deletion information 34. The memory 23 can be a volatile memory such as a DRAM or an SRAM, or can be a non-volatile memory. The memory 23 can be included in the non-volatile memory 24.
處理器22藉由執行儲存於處理器22中之一記憶體中之一程式、儲存於記憶體23中之一程式或儲存於非揮發性記憶體24中之一程式而充當一位址轉譯單元25、一寫入單元26、一有效/無效產生單元27、一選擇單元28、一傳輸單元29、一接收單元30及一廢料收集單元31。 The processor 22 acts as an address translation unit by executing a program stored in one of the memories in the processor 22, a program stored in the memory 23, or a program stored in the non-volatile memory 24. 25. A write unit 26, an enable/disable generating unit 27, a selecting unit 28, a transmitting unit 29, a receiving unit 30, and a waste collecting unit 31.
在本實施例中,舉例而言,用以致使處理器22充當位址轉譯單元25、寫入單元26、有效/無效產生單元27、選擇單元28、傳輸單元29、接收單元30及廢料收集單元31之程式可係OS、中間軟體或韌體。在本實施例中,可藉由硬體來實施位址轉譯單元25、寫入單元26、有效/無效產生單元27、選擇單元28、傳輸單元29、接收單元30及廢料收集單元31之全部或一部分。 In this embodiment, for example, to cause the processor 22 to function as the address translation unit 25, the writing unit 26, the valid/invalid generating unit 27, the selecting unit 28, the transmitting unit 29, the receiving unit 30, and the garbage collecting unit. The program of 31 can be OS, intermediate software or firmware. In this embodiment, all of the address translation unit 25, the writing unit 26, the valid/invalid generating unit 27, the selecting unit 28, the transmitting unit 29, the receiving unit 30, and the waste collecting unit 31 may be implemented by hardware or portion.
當自快取控制單元9接收到寫入資料及該寫入資料之邏輯位址時,位址轉譯單元25產生使寫入資料之邏輯位址與指示儲存該寫入資料的非揮發性記憶體24中之一位置之一實體位址相關之資訊,且將該資訊暫存至位址轉譯資訊32。 When the self-cache control unit 9 receives the write data and the logical address of the write data, the address translation unit 25 generates a logical address for writing the data and a non-volatile memory for storing the written data. One of the locations in one of the 24 locations is related to the physical address and the information is temporarily stored in the address translation information 32.
在本實施例中,位址轉譯單元25由處理器22實施。然而,位址轉譯單元25可獨立於處理器22而組態。 In the present embodiment, the address translation unit 25 is implemented by the processor 22. However, the address translation unit 25 can be configured independently of the processor 22.
位址轉譯單元25基於(舉例而言)表形式位址轉譯資訊32而轉譯位址。代替地,可藉由關鍵字-值檢索來轉譯位址。舉例而言,可藉由使用一邏輯位址作為一關鍵字並使用一實體位址作為一值而藉助於關鍵字-值檢索來實施位址轉譯。 The address translation unit 25 translates the address based on, for example, the tabular address translation information 32. Instead, the address can be translated by a keyword-value search. For example, address translation can be implemented by means of a key-value search using a logical address as a key and a physical address as a value.
寫入單元26將寫入資料寫入至由位址轉譯單元25獲得之實體位址所指示之位置。 The writing unit 26 writes the write data to the location indicated by the physical address obtained by the address translation unit 25.
有效/無效產生單元27基於(舉例而言)位址轉譯資訊32而產生指示寫入至非揮發性記憶體24之資料之每一項目是有效資料還是無效資料之有效/無效資訊33。然後,有效/無效產生單元27將有效/無效資訊 33儲存於記憶體23中。 The valid/invalid generating unit 27 generates valid/invalid information 33 indicating whether each item of the data written to the non-volatile memory 24 is valid data or invalid data based on, for example, the address translation information 32. Then, the valid/invalid generating unit 27 will validate/invalidate the information. 33 is stored in the memory 23.
選擇單元28選擇待經受廢料收集之一區塊。 Selection unit 28 selects one of the blocks to be subjected to waste collection.
舉例而言,選擇單元28可自非揮發性記憶體24中之區塊選擇具有最舊寫入時間之一區塊來作為待經受廢料收集之一區塊。 For example, selection unit 28 may select one of the blocks with the oldest write time from the block in non-volatile memory 24 as one of the blocks to be subjected to waste collection.
舉例而言,選擇單元28可隨機地自非揮發性記憶體24中之區塊選擇待經受廢料收集之一區塊。 For example, selection unit 28 may randomly select a block to be subjected to waste collection from a block in non-volatile memory 24.
舉例而言,選擇單元28可基於有效/無效資訊33而選擇具有最大無效資料量或具有大於一預定量之無效資料量之一區塊作為待經受廢料收集之一區塊。 For example, the selection unit 28 may select one of the blocks having the largest amount of invalid data or having an amount of invalid data greater than a predetermined amount as one of the blocks to be subjected to waste collection based on the valid/invalid information 33.
舉例而言,選擇單元28可基於有效/無效資訊33及刪除資訊34而選擇具有最大無效資料及待刪除資料量或具有大於一預定量之無效資料及待刪除資料量之一區塊作為待經受廢料收集之一區塊。 For example, the selecting unit 28 may select, according to the valid/invalid information 33 and the deletion information 34, a block having the largest invalid data and the amount of data to be deleted or having more than a predetermined amount of invalid data and the amount of data to be deleted as to be subjected to One block of waste collection.
傳輸單元29藉由將指示由有效/無效資訊33判定為無效之無效資料之一邏輯位址自指示寫入至待經受廢料收集之區塊之資料之邏輯位址刪除而產生區塊資訊。換言之,該區塊資訊包含使待經受廢料收集之區塊之識別資訊與指示寫入至該區塊之有效資料之邏輯位址相關之資訊。傳輸單元29將該區塊資訊傳輸至快取記憶體控制單元9。 The transmission unit 29 generates the block information by deleting the logical address of the data indicating the one of the invalid data determined to be invalid by the valid/invalid information 33 from the instruction to the block to be subjected to the garbage collection. In other words, the block information includes information relating to the identification information of the block to be subjected to waste collection and the logical address indicating the valid data written to the block. The transmission unit 29 transmits the block information to the cache memory control unit 9.
接收單元30自快取記憶體控制單元9接收刪除資訊並將刪除資訊34儲存於非揮發性記憶體24中。 The receiving unit 30 receives the deletion information from the cache memory control unit 9 and stores the deletion information 34 in the non-volatile memory 24.
廢料收集單元31基於有效/無效資訊33及儲存於非揮發性記憶體24中之刪除資訊34而將無效資料及待刪除資料自寫入至待經受廢料收集之區塊之資料排除,且僅針對並非待刪除資料之有效資料執行廢料收集。 The waste collection unit 31 automatically deletes the invalid data and the data to be deleted from the data to be subjected to the waste collection based on the valid/invalid information 33 and the deletion information 34 stored in the non-volatile memory 24, and is only for It is not the valid information of the data to be deleted to perform waste collection.
圖7係展示根據本實施例由資訊處理系統執行之一程序之一實例之一流程圖。 Figure 7 is a flow chart showing one of an example of a program executed by an information processing system in accordance with the present embodiment.
在步驟S701中,傳輸單元18將寫入資料及一邏輯位址傳輸至SSD 5。 In step S701, the transmission unit 18 transmits the write data and a logical address to the SSD. 5.
在步驟S702中,位址轉譯單元25接收寫入資料及邏輯位址,並將使寫入資料之邏輯位址與一實體位址相關之資訊暫存至位址轉譯資訊32。 In step S702, the address translation unit 25 receives the write data and the logical address, and temporarily stores the information related to the logical address of the write data and the physical address to the address translation information 32.
在步驟S703中,寫入單元26將寫入資料寫入至由該實體位址指示的非揮發性記憶體24中之一位置。 In step S703, the writing unit 26 writes the write data to a position in the non-volatile memory 24 indicated by the physical address.
在步驟S704中,有效/無效產生單元27產生指示寫入至非揮發性記憶體24之每一資料項目是有效資料還是無效資料之有效/無效資訊33,並將有效/無效資訊33儲存於記憶體23中。 In step S704, the valid/invalid generating unit 27 generates valid/invalid information 33 indicating whether each data item written to the non-volatile memory 24 is valid data or invalid data, and stores the valid/invalid information 33 in the memory. In body 23.
在步驟S705中,選擇單元28選擇待經受廢料收集之一區塊。 In step S705, the selection unit 28 selects one of the blocks to be subjected to waste collection.
在步驟S706中,傳輸單元29藉由將指示由有效/無效資訊33指示為無效之無效資料之一邏輯位址自指示寫入至待經受廢料收集之區塊之資料之邏輯位址刪除而產生區塊資訊,並將該區塊資訊傳輸至快取控制單元9。 In step S706, the transmission unit 29 generates by deleting the logical address of the data indicating that one of the invalid data indicated as invalid by the valid/invalid information 33 is instructed to be written to the block to be subjected to the garbage collection. The block information is transmitted to the cache control unit 9.
在步驟S707中,接收單元19自SSD 5接收區塊資訊。 In step S707, the receiving unit 19 receives the block information from the SSD 5.
在步驟S708中,寫入單元20基於自SSD 5接收之區塊資訊以及管理資訊61至64而將由區塊資訊中所包含之邏輯位址指示之資料之全部或一部分寫入至除SSD 5之非揮發性記憶體24之外之一記憶體。 In step S708, the writing unit 20 writes all or a part of the data indicated by the logical address included in the block information to the SSD 5 based on the block information received from the SSD 5 and the management information 61 to 64. A memory other than the non-volatile memory 24.
舉例而言,在接收到一刪除命令之情況下,寫入單元20將指示待刪除資料之一邏輯位址自區塊資訊中所包含之邏輯位址排除,並將由該等邏輯位址指示之待維護資料寫入至另一記憶體。 For example, in the case that a delete command is received, the write unit 20 excludes the logical address included in the block information from the logical address indicating the data to be deleted, and indicates by the logical address. The data to be maintained is written to another memory.
在步驟S709中,傳輸單元21將包含待刪除資料之邏輯位址之刪除資訊傳輸至SSD 5。 In step S709, the transmission unit 21 transmits the deletion information including the logical address of the data to be deleted to the SSD 5.
在步驟S710中,接收單元30自快取控制單元9接收刪除資訊並將刪除資訊34儲存於記憶體23中。 In step S710, the receiving unit 30 receives the deletion information from the cache control unit 9 and stores the deletion information 34 in the memory 23.
在步驟S711中,廢料收集單元31基於有效/無效資訊33及刪除資 訊34而將無效資料及待刪除資料資料自寫入至待經受廢料收集之區塊之資料排除,且針對並非待刪除資料之有效資料執行廢料收集。 In step S711, the waste collection unit 31 is based on the valid/invalid information 33 and the deletion resource. In addition, the invalid data and the data to be deleted are self-written to the data to be subjected to the waste collection, and the waste collection is performed for the valid data that is not to be deleted.
在上文所闡述之本實施例中,快取控制單元9可自SSD 5獲取關於寫入至非揮發性記憶體24之一區塊之資料之資訊。快取控制單元9可藉此辨識資料在非揮發性記憶體24之區塊中之一寫入狀態。舉例而言,在本實施例中,可辨識寫入至非揮發性記憶體24之區塊之資料是有效資料還是無效資料及是否可刪除該資料。 In the present embodiment set forth above, the cache control unit 9 can acquire information about the data written to one of the blocks of the non-volatile memory 24 from the SSD 5. The cache control unit 9 can thereby recognize the write status of one of the blocks in the non-volatile memory 24. For example, in this embodiment, it can be recognized whether the data written to the block of the non-volatile memory 24 is valid data or invalid data and whether the data can be deleted.
在本實施例中,SSD 5包含用以判定資料是有效資料還是無效資料之有效/無效資訊33及用以判定是否可刪除該資料之刪除資訊34。藉此,可在於SSD 5中執行廢料收集時判定是否將抹除寫入至待經受廢料收集之一區塊之資料。因此,可避免一非必須資料寫入且可增加非揮發性記憶體24之壽命。 In this embodiment, the SSD 5 includes valid/invalid information 33 for determining whether the data is valid data or invalid data, and deletion information 34 for determining whether the data can be deleted. Thereby, it can be determined whether the erase is written to the material to be subjected to one of the waste collections when the waste collection is performed in the SSD 5. Therefore, an unnecessary data write can be avoided and the life of the non-volatile memory 24 can be increased.
在本實施例中,快取控制單元9可防止由自SSD 5接收之區塊資訊中所包含之邏輯位址指示之有效資料當中之刪除目標資料被自非揮發性記憶體24轉錄至另一記憶體。在本實施例中,SSD 5可將並未自快取控制單元9轉錄至另一記憶體之資料(舉例而言,可刪除之無效資料或有效資料)自SSD 5刪除。 In the present embodiment, the cache control unit 9 can prevent the deletion target data among the valid data indicated by the logical address included in the block information received from the SSD 5 from being transcribed from the non-volatile memory 24 to another Memory. In the present embodiment, the SSD 5 can delete data (for example, invalid data that can be deleted or valid data) that has not been transcribed from the cache control unit 9 to another memory from the SSD 5.
在上文所闡述之本實施例中,將與待抹除區塊相關之區塊資訊自SSD 5傳輸至資訊處理裝置17。然而,舉例而言,該區塊資訊可包含使非揮發性記憶體24中之每一區塊與寫入至每一區塊之資料之識別資訊相關之資訊。資訊處理裝置17可藉由自SSD 5接收關係資訊來辨識SSD 5中之區塊與資料之間的儲存關係。 In the embodiment described above, the block information related to the block to be erased is transmitted from the SSD 5 to the information processing device 17. However, for example, the block information may include information relating each of the non-volatile memory 24 to the identification information of the data written to each of the blocks. The information processing device 17 can recognize the storage relationship between the block and the data in the SSD 5 by receiving the relationship information from the SSD 5.
在本實施例中,進一步詳細地解釋包含第一實施例及第二實施例中所解釋之資訊處理系統17及SSD 5之資訊處理系統35。 In the present embodiment, the information processing system 35 including the information processing system 17 and the SSD 5 explained in the first embodiment and the second embodiment is explained in further detail.
圖8係展示根據本實施例之資訊處理系統35之一詳細結構之一實 例之一方塊圖。 FIG. 8 is a diagram showing a detailed structure of one of the information processing systems 35 according to the present embodiment. A block diagram of an example.
資訊處理系統35包含資訊處理裝置17及一記憶體系統37。 The information processing system 35 includes an information processing device 17 and a memory system 37.
根據第一實施例及第二實施例之SSD 5對應於記憶體系統37。 The SSD 5 according to the first embodiment and the second embodiment corresponds to the memory system 37.
SSD 5之處理器22對應於一CPU 43B。 The processor 22 of the SSD 5 corresponds to a CPU 43B.
位址轉譯資訊32對應於一LUT(查找表)45。 The address translation information 32 corresponds to a LUT (Look Up Table) 45.
記憶體23對應於一DRAM 47。 The memory 23 corresponds to a DRAM 47.
資訊處理裝置17充當一主機裝置。 The information processing device 17 functions as a host device.
記憶體系統37之一控制器36包含一前端4F及一後端4B。 One of the controllers 36 of the memory system 37 includes a front end 4F and a rear end 4B.
前端(主機通信單元)4F包含一主機介面41、主機介面控制器42、編碼/解碼單元(進階加密標準(AES))44及CPU 43F。 The front end (host communication unit) 4F includes a host interface 41, a host interface controller 42, an encoding/decoding unit (Advanced Encryption Standard (AES)) 44, and a CPU 43F.
主機介面41與資訊處理裝置17通信以交換請求(寫入命令、讀取命令、抹除命令)、LBA(邏輯區塊定址)及資料。 The host interface 41 communicates with the information processing device 17 to exchange requests (write commands, read commands, erase commands), LBA (Logical Block Addressing), and data.
主機介面控制器(控制單元)42基於CPU 43F之控制而控制主機介面41之通信。 The host interface controller (control unit) 42 controls communication of the host interface 41 based on the control of the CPU 43F.
編碼/解碼單元44將在一資料寫入操作中自主機介面控制器42傳輸之寫入資料(純文字)編碼。編碼/解碼單元44將在一資料讀取操作中自後端4B之讀取緩衝器RB傳輸之經編碼讀取資料解碼。應注意,可按照臨時命令而在不使用編碼/解碼單元44之情況下執行寫入資料及讀取資料之傳輸。 The encoding/decoding unit 44 encodes the write data (plain text) transmitted from the host interface controller 42 in a data write operation. The encoding/decoding unit 44 decodes the encoded read data transmitted from the read buffer RB of the back end 4B in a data read operation. It should be noted that the transmission of the write data and the read data can be performed without using the encoding/decoding unit 44 in accordance with the temporary command.
CPU 43F控制前端4F之以上組件41、42及44,以控制前端4F之整個功能。 The CPU 43F controls the above components 41, 42 and 44 of the front end 4F to control the entire function of the front end 4F.
後端(記憶體通信單元)4B包含一寫入緩衝器WB、讀取緩衝器RB、LUT 45、DDRC 46、DRAM 47、DMAC 48、ECC 49、隨機產生器RZ、NANDC 50及CPU 43B。 The back end (memory communication unit) 4B includes a write buffer WB, a read buffer RB, a LUT 45, a DDRC 46, a DRAM 47, a DMAC 48, an ECC 49, a random generator RZ, a NANDC 50, and a CPU 43B.
寫入緩衝器(寫入資料傳送單元)WB暫時地儲存自資訊處理裝置17傳輸之寫入資料。具體而言,寫入緩衝器WB暫時地儲存該資料直 至其達到適合於非揮發性記憶體24之一預定資料大小為止。 The write buffer (write data transfer unit) WB temporarily stores the write data transmitted from the information processing device 17. Specifically, the write buffer WB temporarily stores the data straight Until it reaches a predetermined data size suitable for one of the non-volatile memories 24.
讀取緩衝器(讀取資料傳送單元)RB暫時地儲存自非揮發性記憶體24讀取之讀取資料。具體而言,讀取緩衝器RB將讀取資料重新配置為適合於資訊處理裝置17之次序(由資訊處理裝置17指定之邏輯位址LBA之次序)。 The read buffer (read data transfer unit) RB temporarily stores the read data read from the non-volatile memory 24. Specifically, the read buffer RB reconfigures the read data into an order suitable for the information processing device 17 (the order of the logical addresses LBA specified by the information processing device 17).
LUT 45係用以將邏輯位址一LBA轉譯成一實體位址PBA(實體區塊定址)之一資料。 The LUT 45 is used to translate the logical address-LBA into one of the physical address PBA (physical block addressing).
DDRC 46控制DRAM 47中之雙倍資料速率(DDR)。 DDRC 46 controls the double data rate (DDR) in DRAM 47.
DRAM 47係儲存(舉例而言)LUT 45之一非揮發性記憶體。 The DRAM 47 stores, for example, one of the LUTs 45 non-volatile memory.
直接記憶體存取控制器(DMAC)48經由一內部匯流排IB傳送寫入資料及讀取資料。在圖8中,展示了僅一單個DMAC 48;然而,控制器36可包含兩個或兩個以上DMAC 48。DMAC 48可設定於控制器36內部之各種位置中。 The direct memory access controller (DMAC) 48 transfers the write data and the read data via an internal bus IB. In Figure 8, only a single DMAC 48 is shown; however, controller 36 may include two or more DMACs 48. The DMAC 48 can be set in various locations within the controller 36.
ECC(錯誤校正單元)49給自寫入緩衝器WB傳輸之寫入資料添加一錯誤校正碼(ECC)。當將讀取資料傳輸至讀取緩衝器RB時,若必要,則ECC 49使用所添加ECC來校正自非揮發性記憶體24讀取之讀取資料。 The ECC (Error Correction Unit) 49 adds an error correction code (ECC) to the write data transmitted from the write buffer WB. When the read data is transferred to the read buffer RB, the ECC 49 corrects the read data read from the non-volatile memory 24 using the added ECC, if necessary.
在資料寫入操作中,隨機產生器RZ(或擾碼器)以一方式散佈寫入資料,使得該寫入資料不被偏向於某一頁中或不被偏向於非揮發性記憶體24之一字線方向上。藉由以此方式散佈寫入資料,可使寫入次數標準化且可延長非揮發性記憶體24之記憶體胞元MC之胞元壽命。因此,可改良非揮發性記憶體24之可靠性。此外,在資料讀取操作中,自非揮發性記憶體24讀取之讀取資料會通過隨機產生器RZ。 In the data write operation, the random generator RZ (or scrambler) spreads the write data in a manner such that the write data is not biased toward a page or is not biased toward the non-volatile memory 24 In the direction of a word line. By distributing the written data in this manner, the number of writes can be standardized and the cell lifetime of the memory cell MC of the non-volatile memory 24 can be prolonged. Therefore, the reliability of the non-volatile memory 24 can be improved. Further, in the data reading operation, the read data read from the non-volatile memory 24 passes through the random generator RZ.
NAND控制器(NANDC)50使用複數個通道(圖中展示了四個通道CH0至CH3)來並行地存取非揮發性記憶體24以滿足對某一速度之一需求。 The NAND controller (NANDC) 50 uses a plurality of channels (four channels CH0 to CH3 are shown) to access the non-volatile memory 24 in parallel to meet one of a certain speed requirement.
CPU 43B控制後端4B之以上每一組件(45至50及RZ),以控制後端4B之整個功能。 The CPU 43B controls each of the above components (45 to 50 and RZ) of the back end 4B to control the entire function of the back end 4B.
應注意,控制器36之結構係一實例且並不意欲由其進行限制。 It should be noted that the structure of the controller 36 is an example and is not intended to be limited thereby.
圖9係展示根據本實施例之一儲存系統之一實例之一透視圖。 Figure 9 is a perspective view showing one of an example of a storage system according to the present embodiment.
一儲存系統100包含記憶體系統37來作為一SSD。 A storage system 100 includes a memory system 37 as an SSD.
舉例而言,記憶體系統37係外部大小將係大約20mm×30mm之一相對小模組。應注意,記憶體系統37之大小及尺度並不限於此且可任意地改變成各種大小。 For example, the memory system 37 is externally sized to be a relatively small module of approximately 20 mm x 30 mm. It should be noted that the size and scale of the memory system 37 are not limited thereto and may be arbitrarily changed to various sizes.
此外,記憶體系統37可適用於資訊處理裝置17,以作為用於在一公司(企業)或類似地方中所採用之一資料中心或一雲端計算系統中之一伺服器。因此,記憶體系統37可係一企業SSD(eSSD)。 Further, the memory system 37 can be applied to the information processing device 17 as one of a data center or a cloud computing system used in a company (enterprise) or the like. Therefore, the memory system 37 can be an enterprise SSD (eSSD).
舉例而言,記憶體系統37包含向上開口之複數個連接器(舉例而言,插槽)38。每一連接器38皆係一串列附接SCSI(SAS)連接器或類似物。藉助SAS連接器,可經由6Gbps之一雙埠在資訊處理裝置17與每一記憶體系統37之間建立一高速相互通信。應注意,連接器38可係一快速PCI(PCIe)或快速NVM(NVMe)。 For example, memory system 37 includes a plurality of connectors (eg, slots) 38 that are open upwardly. Each connector 38 is a serial attached SCSI (SAS) connector or the like. With the SAS connector, a high speed mutual communication can be established between the information processing device 17 and each of the memory systems 37 via one of 6 Gbps. It should be noted that the connector 38 can be a fast PCI (PCIe) or a fast NVM (NVMe).
複數個記憶體系統37個別地附接至資訊處理裝置17之連接器38且被以一種配置形式支撐使得其沿一大致垂直方向站立。使用此結構,複數個記憶體系統37可被共同地安裝成一緊湊大小,且可使記憶體系統37小型化。此外,本實施例之每一記憶體系統37之形狀係2.5英吋之小外觀尺寸(SFF)。由於此形狀,記憶體系統37可與一企業HDD(eHDD)相容且可達成與eHDD之簡單系統相容性。 A plurality of memory systems 37 are individually attached to the connector 38 of the information processing device 17 and supported in a configuration such that they stand in a generally vertical direction. With this configuration, the plurality of memory systems 37 can be collectively mounted in a compact size and the memory system 37 can be miniaturized. In addition, the shape of each memory system 37 of the present embodiment is a small footprint (SFF) of 2.5 inches. Due to this shape, the memory system 37 is compatible with an enterprise HDD (eHDD) and can achieve simple system compatibility with eHDD.
應注意,記憶體系統37並不限於在一企業HDD中使用。舉例而言,記憶體系統37可用作一消費型電子裝置(諸如一筆記型可攜式電腦或一平板電腦終端機)之一記憶體媒體。 It should be noted that the memory system 37 is not limited to use in an enterprise HDD. For example, the memory system 37 can be used as a memory medium for a consumer electronic device such as a notebook type portable computer or a tablet terminal.
如自上文可理解,具有本實施例之結構之資訊處理系統35及儲 存系統100可在具有第二實施例之相同優點之情況下達成一大容量儲存優點。 As can be understood from the above, the information processing system 35 having the structure of the embodiment and the storage The storage system 100 can achieve a large capacity storage advantage with the same advantages of the second embodiment.
根據本實施例之記憶體系統37之結構可應用於根據第一實施例之資訊處理裝置17。舉例而言,根據第一實施例之處理器2可對應於CPU 43B。位址轉譯資訊7可對應於LUT 45。記憶體3對應於DRAM 47。非揮發性快取記憶體4可對應於非揮發性記憶體24。 The structure of the memory system 37 according to the present embodiment can be applied to the information processing apparatus 17 according to the first embodiment. For example, the processor 2 according to the first embodiment may correspond to the CPU 43B. The address translation information 7 may correspond to the LUT 45. The memory 3 corresponds to the DRAM 47. The non-volatile cache memory 4 may correspond to the non-volatile memory 24.
儘管已闡述了某些實施例,但此等實施例係僅以實例方式呈現的且並不意欲限制本發明之範疇。實際上,本文中所闡述之新穎實施例可以多種其他形式來體現;此外,可在不背離本發明之精神之情況下對本文中所闡述之實施例之形式做出各種省略、替代及改變。意欲使隨附申請專利範圍及其等效內容涵蓋此類將歸屬於本發明之範疇及精神內之形式或修改。 Although certain embodiments have been described, the embodiments are presented by way of example only and are not intended to limit the scope of the invention. In fact, the novel embodiments set forth herein may be embodied in a variety of other forms; and various omissions, substitutions and changes may be made in the form of the embodiments described herein without departing from the spirit of the invention. It is intended that the scope of the appended claims and their equivalents should
2‧‧‧處理器 2‧‧‧ Processor
3‧‧‧記憶體 3‧‧‧ memory
4‧‧‧非揮發性快取記憶體 4‧‧‧Non-volatile cache memory
5‧‧‧固態磁碟機 5‧‧‧Solid Disk Drive
7‧‧‧位址轉譯資訊 7‧‧‧ Address translation information
8‧‧‧位址轉譯單元 8‧‧‧ Address translation unit
9‧‧‧快取控制單元/快取記憶體/快取記憶體控制單元 9‧‧‧Cache Control Unit / Cache Memory / Cache Memory Control Unit
10‧‧‧產生單元 10‧‧‧Generating unit
11‧‧‧控制單元 11‧‧‧Control unit
12‧‧‧控制單元 12‧‧‧Control unit
13‧‧‧控制單元 13‧‧‧Control unit
14‧‧‧控制單元 14‧‧‧Control unit
15‧‧‧變化單元/第一變化單元 15‧‧‧Change unit/first change unit
16‧‧‧變化單元/第二變化單元 16‧‧‧Change unit / second change unit
17‧‧‧資訊處理裝置 17‧‧‧Information processing device
35‧‧‧資訊處理系統 35‧‧‧Information Processing System
61‧‧‧管理資訊/清單 61‧‧‧Management Information/List
62‧‧‧管理資訊 62‧‧‧Management Information
63‧‧‧管理資訊 63‧‧‧Management Information
64‧‧‧管理資訊/清單 64‧‧‧Management Information/List
111‧‧‧寫入單元/第一寫入單元 111‧‧‧Write unit/first write unit
112‧‧‧判定單元/第一判定單元 112‧‧‧Decision unit/first decision unit
113‧‧‧選擇單元/第一選擇單元 113‧‧‧Selection unit / first selection unit
114‧‧‧判定單元/第二判定單元 114‧‧‧Decision unit/second decision unit
115‧‧‧抹除單元/第一抹除單元 115‧‧‧Erase unit/first erase unit
121‧‧‧寫入單元/第二寫入單元 121‧‧‧Write unit/second write unit
122‧‧‧判定單元/第五判定單元 122‧‧‧Decision unit/fifth determination unit
123‧‧‧選擇單元/第三選擇單元 123‧‧‧Selection unit / third selection unit
124‧‧‧判定單元 124‧‧‧Decision unit
125‧‧‧抹除單元/第二抹除單元 125‧‧‧wiping unit/second erasing unit
131‧‧‧寫入單元/第三寫入單元 131‧‧‧Write unit/third write unit
132‧‧‧判定單元/第三判定單元 132‧‧‧Decision unit/third determination unit
133‧‧‧選擇單元/第二選擇單元 133‧‧‧Selection unit / second selection unit
134‧‧‧判定單元/第四判定單元 134‧‧‧Decision unit/fourth determination unit
135‧‧‧寫入單元/第五寫入單元 135‧‧‧Write unit/fifth write unit
136‧‧‧抹除單元/第三抹除單元 136‧‧‧Erasing unit/third erasing unit
137‧‧‧寫入單元/第六寫入單元 137‧‧‧Write unit/sixth write unit
141‧‧‧寫入單元/第四寫入單元 141‧‧‧Write unit/fourth write unit
142‧‧‧判定單元/第六判定單元 142‧‧‧Decision unit/sixth determination unit
143‧‧‧選擇單元/第四選擇單元 143‧‧‧Selection Unit / Fourth Selection Unit
144‧‧‧抹除單元/第四抹除單元 144‧‧‧wiping unit/fourth erasing unit
B1,1‧‧‧區塊/第一抹除單位區域 B 1,1 ‧‧‧block/first erase unit area
B1,K‧‧‧區塊/第一抹除單位區域 B 1,K ‧‧‧block/first erase unit area
B2,1‧‧‧區塊/第二抹除單位區域 B 2,1 ‧‧‧block/second erase unit area
B2,L‧‧‧區塊/第二抹除單位區域 B 2,L ‧‧‧block/second erase unit area
B3,1‧‧‧區塊/第三抹除單位區域 B 3,1 ‧‧‧block/third erase unit area
B3,M‧‧‧區塊/第三抹除單位區域 B 3,M ‧‧‧block/third erase unit area
B4,1‧‧‧區塊/第四抹除單位區域 B 4,1 ‧‧‧block/fourth erase unit area
B4,N‧‧‧區塊/第四抹除單位區域 B 4,N ‧‧‧block/fourth erase unit area
BG1‧‧‧區塊群組/第一群組 BG 1 ‧‧‧ Block Group / First Group
BG2‧‧‧區塊群組/第二群組 BG 2 ‧‧‧ Block Group / Second Group
BG3‧‧‧區塊群組/第三群組 BG 3 ‧‧‧ Block Group / Third Group
BG4‧‧‧區塊群組/第四群組 BG 4 ‧‧‧ Block Group / Fourth Group
Claims (16)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201462097530P | 2014-12-29 | 2014-12-29 | |
| JP2015038997A JP6320322B2 (en) | 2014-12-29 | 2015-02-27 | Cache memory device and program |
| US14/656,559 US10474569B2 (en) | 2014-12-29 | 2015-03-12 | Information processing device including nonvolatile cache memory and processor |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW201624288A true TW201624288A (en) | 2016-07-01 |
Family
ID=56357982
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104114942A TW201624288A (en) | 2014-12-29 | 2015-05-11 | Cache memory device and non-transitory computer readable recording medium |
Country Status (3)
| Country | Link |
|---|---|
| JP (2) | JP6320322B2 (en) |
| CN (1) | CN106205708B (en) |
| TW (1) | TW201624288A (en) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2019074743A1 (en) * | 2017-10-12 | 2019-04-18 | Rambus Inc. | Nonvolatile physical memory with dram cache |
| JP7547231B2 (en) | 2021-01-27 | 2024-09-09 | キオクシア株式会社 | MEMORY SYSTEM AND CONTROL METHOD - Patent application |
| CN118733482B (en) * | 2024-06-27 | 2025-03-28 | 北京火山引擎科技有限公司 | Garbage collection method, device and storage medium for partition storage device |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4335659B2 (en) * | 2003-12-19 | 2009-09-30 | 株式会社ルネサステクノロジ | Nonvolatile semiconductor memory device |
| JP2009181314A (en) * | 2008-01-30 | 2009-08-13 | Toshiba Corp | Information recording apparatus and control method thereof |
| US8402242B2 (en) * | 2009-07-29 | 2013-03-19 | International Business Machines Corporation | Write-erase endurance lifetime of memory storage devices |
| US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
| US20120023144A1 (en) * | 2010-07-21 | 2012-01-26 | Seagate Technology Llc | Managing Wear in Flash Memory |
| JP5066241B2 (en) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | Memory system |
| WO2012106362A2 (en) * | 2011-01-31 | 2012-08-09 | Fusion-Io, Inc. | Apparatus, system, and method for managing eviction of data |
| US8782370B2 (en) * | 2011-05-15 | 2014-07-15 | Apple Inc. | Selective data storage in LSB and MSB pages |
| KR101867282B1 (en) * | 2011-11-07 | 2018-06-18 | 삼성전자주식회사 | Garbage collection method for non-volatile memory device |
| JP5687648B2 (en) * | 2012-03-15 | 2015-03-18 | 株式会社東芝 | Semiconductor memory device and program |
| US20140089564A1 (en) * | 2012-09-27 | 2014-03-27 | Skymedi Corporation | Method of data collection in a non-volatile memory |
-
2015
- 2015-02-27 JP JP2015038997A patent/JP6320322B2/en active Active
- 2015-05-11 TW TW104114942A patent/TW201624288A/en unknown
- 2015-05-12 CN CN201510239685.XA patent/CN106205708B/en active Active
-
2018
- 2018-04-04 JP JP2018072776A patent/JP6595654B2/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018136970A (en) | 2018-08-30 |
| CN106205708B (en) | 2019-12-10 |
| JP6595654B2 (en) | 2019-10-23 |
| JP2016126737A (en) | 2016-07-11 |
| CN106205708A (en) | 2016-12-07 |
| JP6320322B2 (en) | 2018-05-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12265706B2 (en) | Memory system with nonvolatile semiconductor memory | |
| US11030094B2 (en) | Apparatus and method for performing garbage collection by predicting required time | |
| US9229876B2 (en) | Method and system for dynamic compression of address tables in a memory | |
| US11726906B2 (en) | Memory device and non-transitory computer readable recording medium | |
| US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
| US20130103893A1 (en) | System comprising storage device and related methods of operation | |
| US12111760B2 (en) | Memory device and non-transitory computer readable recording medium | |
| JP2019148913A (en) | Memory system | |
| JP6595654B2 (en) | Information processing device | |
| JP6689325B2 (en) | Memory device control method | |
| US10474569B2 (en) | Information processing device including nonvolatile cache memory and processor | |
| US10331551B2 (en) | Information processing device and non-transitory computer readable recording medium for excluding data from garbage collection | |
| JP6276208B2 (en) | Memory system and program |