(19) United States (12) Patent Application Publication (10) Pub
Total Page:16
File Type:pdf, Size:1020Kb
US 20110099321Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2011/0099321 A1 Haines et al. (43) Pub. Date: Apr. 28, 2011 (54) ENABLING SPANNING FORA STORAGE (52) US. Cl. ............... .. 711/103; 711/173; 711/E12.001; DEVICE 711/E12.059 (75) Inventors: Jonathan W. Haines, Boulder, CO (57) ABSTRACT (US); Wayne H. Vinson, Ilgg?igl?lslllniggsglgi); R‘ A storage device, e.g., an SSD, is con?gured to enable span ’ ’ ning for a logical block between pages of the device. In one - _ example, a device includes a data storage module to receive (73) Asslgnee' slzillgeatecrjagglogy LLC’ Scotts data to be stored, Wherein the data comprises a plurality of y’ logical blocks, and Wherein a siZe of the plurality of logical _ blocks exceeds a siZe of a ?rst page of the device, and a (21) Appl' NO" 12/604’842 spanning determination module to determine Whether to par . _ tition one of the plurality of logical blocks into a ?rst partition (22) Flled' Oct‘ 23’ 2009 and a second partition, Wherein the data storage module is _ _ _ _ con?gured to partition the one of the plurality of logical Pubhcatlon Classl?catlon blocks into the ?rst partition and the second partition and to (51) Int, Cl, store the ?rst partition in the ?rst page and the second parti G06F 12/02 (200601) tion in a second, different page When the spanning determi G06F 12/00 (200601) nation module determines to partition the one of the plurality G06F 12/10 (2006.01) of logical blocks. SOLID STATE DRIVE VOLATILE CONTROLLER g MEMORY H NON-VOLATILE MEMORY FLASH DIE Q ERASURE BLOCK 24A PAG E PAG E m 000 M ERASURE BLOCK M PAG E PAG E m 000 M Patent Application Publication Apr. 28, 2011 Sheet 1 0f 6 US 2011/0099321 A1 SOLID STATE DRIVE m VOLATILE CONTROLLER MEMORY Q 14 NON-VOLATILE MEMORY Q FLASH DIE Q ERASURE BLOCK M PAGE PAGE m °°° m ERASU RE BLOCK 24N PAGE PAGE 28A 0.. m FIG. 1 Patent Application Publication Apr. 28, 2011 Sheet 2 0f 6 US 2011/0099321 A1 ERASURE BLOCK Q 92A LOGICAL LOGICAL LOGICAL LB k, PAGE Z'ZEADER BLOCK BLOCK BLOCK PART _ M Q Q M 92B LB LOGICAL LOGICAL LOGICAL k, PAGE :ZEADER PART BLOCK BLOCK BLOCK _ m 2 Q Q 926 LOGICAL LOGICAL LOGICAL k, PAGE :(FADER BLOCK BLOCK BLOCK ‘398D — 52 5A 5.6 — 92D L’ SKIPPED PAGE 1Q 92E LOGICAL LOGICAL LOGICAL LB L, PAGE [LEADER BLOCK BLOCK BLOCK PART — H E L8 m 92F k’ SKIPPED PAGE Q 926 PAGE LB LOGICAL LoGlcAL PAD L, HEADER PART BLOCK BLOCK 90 E @ & Q — O O 0 FIG. 2 Patent Application Publication Apr. 28, 2011 Sheet 3 0f 6 US 2011/0099321 A1 PAGE HEADER m HEADER SKIP LENGTH LOG'CAL SPANN'NG LENGTH AFTER TABLE BLOCK PAGE lDENTlFlERS IDENTIFIER m M 106 108 FIG. 3 Patent Application Publication Apr. 28, 2011 Sheet 4 0f 6 US 2011/0099321 A1 SOLID STATE DRIVE CONTROLLER SPANNING DATA STORAGE MODULE A A V DETERMINATION MODULE m m M V COMPRESSION MODULE m FIG. 4 Patent Application Publication Apr. 28, 2011 Sheet 5 0f 6 US 2011/0099321 A1 120 RECEIVE LOGICAL BLOCK / TO WRITE SPACE IN PAGE AVAILABLE? WRITE LOGICAL /124 BLOCK TO PAGE 126 ANALYZE SPANNING FACTORS / FOR LOGICAL BLOCK 128 ACTORS IN DICAT SPANNING? WRITE LOGICAL K130 BLOCK TO DIFFERENT PAGE PARTITION LOGICAL BLOCK /132 INTO FIRST AND SECOND PORTIONS ‘7 RECORD FIRST PORTION /134 OF LOGICAL BLOCK lN CURRENT PAGE V RECORD SECOND PORTION [136 OF LOGICAL BLOCK IN DIFFERENT PAGE V STORE IDENTIFIER OF K138 DIFFERENT PAGE IN HEADER OF CURRENT PAGE FIG. 5 Patent Application Publication Apr. 28, 2011 Sheet 6 0f 6 US 2011/0099321 A1 ( 160 COMPUTING DEVICE E CONTROL UNIT E PROCESSES E I A I STORAGE DEVICE CONTROLLER m A Y STORAGE DEVICE E FIG. 6 US 2011/0099321 A1 Apr. 28, 2011 ENABLING SPANNING FOR A STORAGE Wherein a siZe of the plurality of logical blocks exceeds a siZe DEVICE of the ?rst page, and a spanning determination module to determine Whether to partition one of the plurality of logical BACKGROUND blocks into a ?rst partition and a second partition. The data storage module is con?gured to partition the one of the plu [0001] Computers and other electronic devices generally rality of logical blocks into the ?rst partition and the second require a medium in Which digital data can be stored and partition and to store the ?rst partition in the ?rst page and the retrieved. Data storage devices come in a variety of forms and second partition in a second, different page When the span serve a variety of purposes. These devices can be broken ning determination module determines to partition the one of doWn into tWo general categories: solid state and non-solid the plurality of logical blocks. state storage devices. [0007] In another example, a system includes a storage [0002] Non-solid state devices are devices that contain device comprising a ?ash die, Wherein the ?ash die comprises moving parts. Some typical non-solid state storage devices an erasure block, Wherein the erasure block comprises a ?rst are hard disk drives, CD/RW drives and disks, DVD/R/RW page to store logical blocks of data, and a computing device drives and disks, ?oppy disks, tape drives and probe memory coupled to the storage device, the computing device compris devices. These storage devices move one or more media ing a computer-readable medium to store instructions for a surfaces and/or the associated data head relative to one data storage module and a spanning determination module, another to position the data head relative to a desired location and a control unit to execute the data storage module and the or area on the media. The data is then Written to or read from spanning determination module, Wherein the control unit this data location. In disk drives for example, data is stored on executes the data storage module to receive data to be stored a disk that rotates at an essentially constant velocity. By to the storage device, Wherein the data comprises a plurality moving the head over the rotating disk, all memory locations of logical blocks, Wherein at least one of the plurality of or sectors of the disk can be accessed. logical blocks does not match a siZe of a corresponding physi [0003] Solid state storage devices differ from non-solid cal block of the storage device, and Wherein a siZe of the state devices in that they typically have no moving parts. Solid plurality of logical blocks exceeds a siZe of the ?rst page, state storage devices may be used for primary storage of data Wherein the control unit executes the spanning determination for a computing device, such as a personal computer, Work module to determine Whether to partition one of the plurality station computer, or server computer. Another example of a of logical blocks into a ?rst partition and a second partition, solid state storage device is ?ash memory, such as used in a and Wherein the control unit executes the data storage module Compact Flash Memory Card. Compact Flash Memory to partition the one of the plurality of logical blocks into the Cards are used primarily for easy and fast information storage ?rst partition and the second partition and to store the ?rst in such devices as digital cameras, home video game consoles partition in the ?rst page and the second partition in a second, and personal digital assistants. different page When the spanning determination module [0004] Conventional solid state storage devices store logi determines to partition the one of the plurality of logical cal block address (LBA) blocks in pages of an erasure block. blocks. When a page is to be updated, the page must be invalidated [0008] In another example, a computer-readable medium, and entirely reWritten, including both unaltered and altered such as a computer-readable storage medium, contains, e.g., (e. g., neW or modi?ed) data. is encoded With, instructions that cause a programmable pro cessor to receive data to store in a storage device, Wherein the SUMMARY data comprises a plurality of logical blocks, Wherein at least one of the plurality of logical blocks does not match a siZe of [0005] In one example, a method includes receiving, by a a corresponding physical block of the storage device, and storage device, data to store in the storage device, the data Wherein a siZe of the plurality of logical blocks exceeds a siZe comprising a plurality of logical blocks at least one of Which of a ?rst page of an erasure block of the storage device, does not match a corresponding physical block siZe of the determine to partition one of the plurality of logical blocks storage device, determining that a siZe of the plurality of into a ?rst partition and a second partition, partition the one of logical blocks exceeds a siZe of a ?rst page of an erasure block the plurality of logical blocks into the ?rst partition and the of the storage device, determining Whether to span at least one second partition, and store the ?rst partition in the ?rst page of the plurality of logical blocks across the ?rst page and a and the second partition in a second, different page of the second, different page of the storage device, responsive to storage device. determining to span the at least one of the plurality of logical [0009] The details of one or more examples are set forth in blocks, partitioning the one of the plurality of logical blocks the accompanying draWings and the description beloW.