# US 7,613,887 B1 · System and method for managing a memory storage device

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,887 B1
- Document ID: US7613887B1
- Status: Granted
- Kind: B1
- Application number: 11/522,726
- Filed: 2006-09-18
- Granted: 2009-11-03
- Earliest claimed: 2006-09-18
- Assignees: Marvell International Ltd.
- Inventors: William C. Wong; Kha Nguyen; Huy Tu Nguyen
- Web page: https://patentgrep.com/patent/US7613887B1

## CPC

- G11B 20/10527: {Audio or video recording; Data buffering arrangements (G11B20/12 - G11B20/18 take precedence)}
- G11B 20/18: Error detection or correction; Testing {, e.g. of drop-outs}
- G11B 2020/10638: {First-in-first-out memories [FIFO] buffers}
- G11B 2020/1843: {using a cyclic redundancy check [CRC]}
- G11B 2220/2516: Hard disks
- G11B 2220/2562: DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
- G11B: INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER (recording measured values in a way that does not require playback through a transducer G01D9/00; recording or playback apparatus using mechanically marked tape, e.g. punched paper tape, or using unit records, e.g. punched or magnetically marked cards G06K; transferring data from one type of record carrier to another G06K1/18; circuits for coupling output of reproducer to radio receiver H04B1/20; gramophone pick-ups or like acoustic electromechanical transducers or circuits therefor H04R)

## Abstract

A memory management system for a memory in a data storage device comprises a memory controller module that receives a frame of data including a plurality of data words from a host, that generates boundary indicators based on at least one of a start and an end of the frame and the plurality of data words, and that inserts the boundary indicators into the frame of data and a memory that receives the frame of data and stores the frame of data including the data words and the boundary indicators during transmission between the host and the storage device.

## Claims

### Claim 1

A memory management system for a memory in a data storage device, comprising:
a memory controller module that receives a frame of data including a plurality of data words from a host, that generates boundary indicators based on at least one of a start and an end of said frame and said plurality of data words, and that inserts said boundary indicators into said frame of data; and
a memory that receives said frame of data and stores said frame of data including said data words and said boundary indicators during transmission between said host and said storage device.

### Claim 2 (depends on 1)

The management system of claim 1 wherein said boundary indicators include a first boundary indicator that indicates a type of data of said plurality of data words and said type of data includes at least one of user data, command data, and link data.

### Claim 3 (depends on 2)

The management system of claim 2 wherein said boundary indicators include a second boundary indicator that includes at least one of a frame cyclic redundancy code (CRC), a number of sectors included within said frame, and a position of said frame within a plurality of frames of a data transfer.

### Claim 4 (depends on 3)

The management system of claim 3 further comprising an insertion module that generates at least one of a plurality of preliminary tags for at least one of each of said plurality of data words and said boundary indicators based on said data words.

### Claim 5 (depends on 4)

The management system of claim 4 wherein said preliminary tags indicate at least one of a type of data of said data words, errors within said frame of data, locations for each of said plurality of data words within said frame of data, and completion of a sector.

### Claim 6 (depends on 4)

The management system of claim 4 wherein said memory controller module generates a plurality of tags that identify at least one of each of said plurality of data words and said boundary indicators based on said preliminary tags and stores said tags to said memory.

### Claim 7 (depends on 6)

The management system of claim 6 wherein said memory controller module detects a first preliminary tag that indicates the start of said frame, halts said insertion module from generating said plurality of preliminary tags when said memory controller module detects said first preliminary tag, stores a first tag that corresponds to said first boundary indicator, and directs said insertion module to resume operation.

### Claim 8 (depends on 7)

The management system of claim 7 wherein said memory controller module detects a second preliminary tag that indicates the end of said frame, halts said insertion module when said memory controller module detects said second preliminary tag, stores a second tag that corresponds to said second boundary indicator, and directs said insertion module to resume operation.

### Claim 9 (depends on 6)

The management system of claim 6 further comprising an output module that communicates with said memory, that detects said boundary indicators and said tags, that processes said frame of data based on said boundary indicators and said tags, and that transmits the frame of data to a second memory based on at least one of said boundary indicators and said tags.

### Claim 10 (depends on 9)

The management system of claim 9 wherein said output module calculates a generated CRC and determines that an error has occurred when said generated CRC differs from said frame CRC.

### Claim 11 (depends on 9)

The management system of claim 9 wherein said output module removes said tags from said frame of data.

### Claim 12 (depends on 4)

The management system of claim 4 wherein said memory controller module calculates said frame CRC when said plurality of data words are transmitted from said insertion module to said memory controller module.

### Claim 13 (depends on 1)

The management system of claim 1 wherein said memory is a first-in-first-out (FIFO) memory.

### Claim 14 (depends on 3)

The management system of claim 3 wherein said memory controller module includes a validity indicator in said secondary boundary indicator based on a last data word of said plurality of data words.

### Claim 15 (depends on 1)

A hard disk drive (HDD) controller that includes the management system of claim 1.

### Claim 16

A memory management system for a memory in a data storage device, comprising:
memory controller means for receiving a frame of data including a plurality of data words from a host, for generating boundary indicators based on at least one of a start and an end of said frame and said plurality of data words, and for inserting said boundary indicators into said frame of data; and
memory means for receiving said frame of data and storing said frame of data including said data words and said boundary indicators during transmission between said host and said storage device.

### Claim 17 (depends on 16)

The management system of claim 16 wherein said boundary indicators include a first boundary indicator that indicates a type of data of said plurality of data words and said type of data includes at least one of user data, command data, and link data.

### Claim 18 (depends on 17)

The management system of claim 17 wherein said boundary indicators include a second boundary indicator that includes at least one of a frame cyclic redundancy code (CRC), a number of sectors included within said frame, and a position of said frame within a plurality of frames of a data transfer.

### Claim 19 (depends on 18)

The management system of claim 18 further comprising insertion means for generating at least one of a plurality of preliminary tags for at least one of each of said plurality of data words and said boundary indicators based on said data words.

### Claim 20 (depends on 19)

The management system of claim 19 wherein said preliminary tags indicate at least one of a type of data of said data words, errors within said frame of data, locations for each of said plurality of data words within said frame of data, and completion of a sector.

### Claim 21 (depends on 19)

The management system of claim 19 wherein said memory controller means generates a plurality of tags that identify at least one of each of said plurality of data words and said boundary indicators based on said preliminary tags and stores said tags to said memory means.

### Claim 22 (depends on 21)

The management system of claim 21 wherein said memory controller means detects a first preliminary tag that indicates the start of said frame, halts said insertion means from generating said plurality of preliminary tags when said memory controller means detects said first preliminary tag, stores a first tag that corresponds to said first boundary indicator, and directs said insertion means to resume operation.

### Claim 23 (depends on 22)

The management system of claim 22 wherein said memory controller means detects a second preliminary tag that indicates the end of said frame, halts said insertion means when said memory controller means detects said second preliminary tag, stores a second tag that corresponds to said second boundary indicator, and directs said insertion means to resume operation.

### Claim 24 (depends on 21)

The management system of claim 21 further comprising output means for communicating with said memory means, for detecting said boundary indicators and said tags, for processing said frame of data based on said boundary indicators and said tags, and for transmitting the frame of data to a second memory based on at least one of said boundary indicators and said tags.

### Claim 25 (depends on 24)

The management system of claim 24 wherein said output means calculates a generated CRC and determines that an error has occurred when said generated CRC differs from said frame CRC.

### Claim 26 (depends on 24)

The management system of claim 24 wherein said output means removes said tags from said frame of data.

### Claim 27 (depends on 19)

The management system of claim 19 wherein said memory controller means calculates said frame CRC when said plurality of data words are transmitted from said insertion means to said memory controller means.

### Claim 28 (depends on 16)

The management system of claim 16 wherein said memory means is a first-in-first-out (FIFO) memory.

### Claim 29 (depends on 18)

The management system of claim 18 wherein said memory controller means includes a validity indicator in said secondary boundary indicator based on a last data word of said plurality of data words.

### Claim 30 (depends on 16)

A hard disk drive (HDD) controller that includes the management system of claim 16.

### Claim 31

A memory management method for a memory in a data storage device, comprising:
receiving a frame of data including a plurality of data words, from a host, generating boundary indicators based on at least one of a start and an end of said frame and said plurality of data words, and inserting said boundary indicators into said frame of data; and
receiving said frame of data and storing said frame of data including said data words and said boundary indicators during transmission between said host and said storage device.

### Claim 32 (depends on 31)

The method of claim 31 wherein said boundary indicators include a first boundary indicator that indicates a type of data of said plurality of data words and said type of data includes at least one of user data, command data, and link data.

### Claim 33 (depends on 32)

The method of claim 32 wherein said boundary indicators include a second boundary indicator that includes at least one of a frame cyclic redundancy code (CRC), a number of sectors included within said frame, and a position of said frame within a plurality of frames of a data transfer.

### Claim 34 (depends on 33)

The method of claim 33 further comprising generating at least one of a plurality of preliminary tags for at least one of each of said plurality of data words and said boundary indicators based on said data words.

### Claim 35 (depends on 34)

The method of claim 34 wherein said preliminary tags indicate at least one of a type of data of said data words, errors within said frame of data, locations for each of said plurality of data words within said frame of data, and completion of a sector.

### Claim 36 (depends on 34)

The method of claim 34 further comprising generating a plurality of tags that identify at least one of each of said plurality of data words and said boundary indicators based on said preliminary tags and storing said tags to the memory.

### Claim 37 (depends on 36)

The method of claim 36 further comprising detecting a first preliminary tag that indicates the start of said frame, halting said generation of said plurality of preliminary tags upon detecting said first preliminary tag, storing a first tag that corresponds to said first boundary indicator, and resuming said generation of said plurality of preliminary tags.

### Claim 38 (depends on 37)

The method of claim 37 further comprising detecting a second preliminary tag that indicates the end of said frame, halting said generation of said plurality of preliminary tags upon detecting said second preliminary tag, storing a second tag that corresponds to said second boundary indicator, and resuming said generation of said plurality of preliminary tags.

### Claim 39 (depends on 36)

The method of claim 36 further comprising communicating with the memory, detecting said boundary indicators and said tags, processing said frame of data based on said boundary indicators and said tags, and transmitting the frame of data to a second memory based on at least one of said boundary indicators and said tags.

### Claim 40 (depends on 39)

The method of claim 39 further comprising calculating a generated CRC and determining that an error has occurred when said generated CRC differs from said frame CRC.

### Claim 41 (depends on 39)

The method of claim 39 further comprising removing said tags from said frame of data.

### Claim 42 (depends on 34)

The method of claim 34 further comprising calculating said frame CRC after said generation of said plurality preliminary tags.

### Claim 43 (depends on 31)

The method claim 31 wherein the memory is a first-in-first-out (FIFO) memory.

### Claim 44 (depends on 33)

The method of claim 33 wherein said secondary boundary indicator includes a validity indicator based on a last data word of said plurality of data words.

### Claim 45 (depends on 31)

A hard disk drive (HDD) controller that includes the method of claim 31.
