# US 9,760,287 B2 · Method and system for writing to and reading from computer readable media

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

- Number: US 9,760,287 B2
- Document ID: US9760287B2
- Status: Granted
- Kind: B2
- Application number: 15/175,736
- Filed: 2016-06-07
- Published: 2016-09-29
- Granted: 2017-09-12
- Earliest claimed: 2014-07-11
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Kiran Kumar Devarapalli; Avinash Bendigeri; Karan Gandhi
- Web page: https://patentgrep.com/patent/US9760287B2

## CPC

- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0613: {in relation to throughput}
- G06F 3/064: {Management of blocks}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0674: {Disk device}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 3/0673: {Single storage device}
- G11B 2020/1087: {wherein a selection is made among at least two alternative ways of processing}
- G11B 2020/10916: {Seeking data on the record carrier for preparing an access to a specific address}
- G11B 2020/10925: {involving an inter-layer jump, i.e. changing from one recording layer to another}
- G11B 2020/10935: {wherein a time constraint must be met}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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

According to one embodiment, a method includes receiving a write request and determining a first portion of information associated with the write request. The method additionally includes determining a first location on a first disk to write the first portion of information and, based on the determined first location on the first disk, determining a second location on a second disk to write the first portion of information. The method further includes writing the first portion of the information to the first location on the first disk. The first location comprises an outer track of the first disk. The method further includes writing the first portion of the information to the second location on the second disk, the second location comprising an inner track of the second disk.

## Claims

### Claim 1

A method, comprising:
receiving a write request;
determining a first portion of information associated with the write request;
determining a first location on a first disk to write the first portion of information;
based on the determined first location on the first disk, determining a second location on a second disk to write the first portion of information;
writing the first portion of the information to the first location on the first disk, the first location comprising an outer track of the first disk; and
writing the first portion of the information to the second location on the second disk, the second location comprising an inner track of the second disk.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first location comprises a first sector and the second location comprises a second sector.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first disk and the second disk are in a redundant array of independent disks (RAID) configuration.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
calculating a total number of sectors on the first disk;
wherein determining the first location on the first disk comprises determining a first sector corresponding to the first location;
wherein writing the first portion of the information to the first location on the first disk comprises writing the first portion of the information to the first sector;
calculating a total number of sectors on the second disk;
determining that the total number of sectors on the first disk is the same as the total number of sectors on the second disk;
in response to determining that the total number of sectors on the first disk is the same as the total number of sectors on the second disk, determining a second sector on the second disk;
wherein writing the first portion of the information to the second location on the second disk comprises writing the first portion of the information to the second sector.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining a first sector corresponding to the first location;
wherein writing the first portion of the information to the first location on the first disk comprises writing the first portion of the information to the first sector;
determining a first sector number corresponding to the first sector;
determining a second sector number based on the first sector number;
wherein writing the first portion of the information to the second location on the second disk comprises writing the first portion of the information to a second sector corresponding to the second sector number.

### Claim 6

An information-handling system, comprising:
a processor;
a memory communicatively coupled to the processor;
a controller communicatively coupled to the processor and the memory, the controller configured to:
receive a write request;
determine a first portion of information associated with the write request;
determine a first location on a first disk to write the first portion of information;
based on the determined first location on the first disk, determine a second location on a second disk to write the first portion of information;
write the first portion of the information to the first location on the first disk, the first location comprising an outer track of the first disk; and
write the first portion of the information to the second location on the second disk, the second location comprising an inner track of the second disk.

### Claim 7 (depends on 6)

The system of claim 6, wherein the first location comprises a first sector and the second location comprises a second sector.

### Claim 8 (depends on 6)

The system of claim 6, wherein the first disk and the second disk are in a redundant array of independent disks (RAID) configuration.

### Claim 9 (depends on 6)

The system of claim 6, wherein the controller is further configured to:
calculate a total number of sectors on the first disk;
determine the first location on the first disk by determining a first sector corresponding to the first location;
write the first portion of the information to the first location on the first disk by writing the first portion of the information to the first sector;
calculate a total number of sectors on the second disk;
determine that the total number of sectors on the first disk is the same as the total number of sectors on the second disk;
in response to determining that the total number of sectors on the first disk is the same as the total number of sectors on the second disk, determine a second sector on the second disk; and
write the first portion of the information to the second location on the second disk, wherein the first portion of the information is written to the second sector.

### Claim 10 (depends on 6)

The system of claim 6, wherein the controller is further configured to:
determine a first sector corresponding to the first location;
write the first portion of the information to the first location on the first disk by writing the first portion of the information to the first sector;
determine a first sector number corresponding to the first sector;
determine a second sector number based on the first sector number; and
write the first portion of the information to the second location on the second disk, wherein the first portion of the information is written to a second sector corresponding to the second sector number.

### Claim 11

A non-transitory computer-readable medium including computer-executable instructions encoded in the computer-readable medium, the instructions, when executed by a processor, operable to:
receive a write request;
determine a first portion of information associated with the write request;
determine a first location on a first disk to write the first portion of information;
based on the determined first location on the first disk, determine a second location on a second disk to write the first portion of information;
write the first portion of the information to the first location on the first disk, the first location comprising an outer track of the first disk; and
write the first portion of the information to the second location on the second disk, the second location comprising an inner track of the second disk.

### Claim 12 (depends on 11)

The computer-readable medium of claim 11, wherein the first location comprises a first sector and the second location comprises a second sector.

### Claim 13 (depends on 11)

The computer-readable medium of claim 11, wherein the first disk and the second disk are in a redundant array of independent disks (RAID) configuration.

### Claim 14 (depends on 11)

The computer readable-medium of claim 11, the computer-executable instructions, when executed by the processor, further operable to:
calculate a total number of sectors on the first disk;
determine the first location on the first disk by determining a first sector corresponding to the first location;
write the first portion of the information to the first location on the first disk by writing the first portion of the information to the first sector;
calculate a total number of sectors on the second disk;
determine that the total number of sectors on the first disk is different than the total number of sectors on the second disk;
in response to determining that the total number of sectors of the first disk is different than the total number of sectors on the second disk, determine a subset of sectors on the second disk;
determine the second location on the second disk by determining a second sector from the subset of sectors on the second disk; and
write the first portion of the information to the second location on the second disk by writing the first portion of the information to the second sector.

### Claim 15 (depends on 11)

The computer readable-medium of claim 11, the computer-executable instructions, when executed by the processor, further operable to:
determine a first sector corresponding to the first location;
write the first portion of the information to the first location on the first disk by writing the first portion of the information to the first sector;
determine a first sector number corresponding to the first sector;
determine a second sector number by analyzing the first sector number with respect to the other sector numbers of the first disk; and
write the first portion of the information to the second location on the second disk by writing the first portion of the information to a second sector corresponding to the second sector number.

### Claim 16 (depends on 11)

The computer readable-medium of claim 11, the computer-executable instructions, when executed by the processor, further operable to:
calculate a total number of sectors on the first disk;
determine the first location on the first disk by determining a first sector corresponding to the first location;
write the first portion of the information to the first location on the first disk by writing the first portion of the information to the first sector;
calculate a total number of sectors on the second disk;
determine that the total number of sectors on the first disk is the same as the total number of sectors on the second disk;
in response to determining that the total number of sectors on the first disk is the same as the total number of sectors on the second disk, determine a second sector on the second disk; and
write the first portion of the information to the second location on the second disk, wherein the first portion of the information is written to the second sector.

### Claim 17 (depends on 11)

The computer readable-medium of claim 11, the computer-executable instructions, when executed by the processor, further operable to:
determine a first sector corresponding to the first location;
write the first portion of the information to the first location on the first disk by writing the first portion of the information to the first sector;
determine a first sector number corresponding to the first sector;
determine a second sector number based on the first sector number; and
write the first portion of the information to the second location on the second disk, wherein the first portion of the information is written to a second sector corresponding to the second sector number.

### Claim 18

A non-transitory computer-readable medium including computer-executable instructions encoded in the computer-readable medium, the instructions, when executed by a processor, operable to:
receive a read request for a first information, the first information stored on an outer track of a first disk, the first information also stored on an inner track of a second disk;
determine a first location on the first disk corresponding to the read request;
determine whether the first location is an outer track of the first disk;
in response to determining that the first location is an outer track of the first disk, direct the read request to the first disk rather than the second disk.

### Claim 19 (depends on 18)

The computer readable-medium of claim 18, wherein the first disk and the second disk are in a redundant array of independent disks (RAID) configuration.

### Claim 20 (depends on 18)

The computer readable-medium of claim 18, the computer-executable instructions, when executed by the processor, further operable to:
determine the first location by determining a first sector; and
determine whether the first location is an outer track by:
determining a first sector number corresponding to the first sector;
analyzing the first sector number with respect to other sector numbers of the first disk; and
in response to analyzing the first sector number, determining that the first sector number corresponds to the outer track of the first disk.

### Claim 21 (depends on 18)

The computer readable-medium of claim 18, the computer-executable instructions, when executed by the processor, further operable to:
determine the first location by determining a first sector; and
determine whether the first location is an outer track of the first disk by:
calculating a total number of sectors on the first disk;
determining a first sector number corresponding to the first sector;
calculating the difference between the total number of sectors and the first sector number;
determining whether the first sector number is less than or equal to the difference between the total number of sectors and the first sector number; and
in response to determining whether the first sector number is less than or equal to the difference between the total number of sectors and the first sector number, determining that the first sector number corresponds to the outer track of the first disk.

### Claim 22 (depends on 18)

The computer readable-medium of claim 18, the computer-executable instructions, when executed by the processor, further operable to:
determine a first location by determining a first sector; and
determine whether the first location is an outer track of the first disk by:
determining a first sector number corresponding to the first sector;
comparing the first sector number to a threshold; and
in response to comparing the first sector number to a threshold, determining that the first sector number corresponds to the outer track of the first disk.
