IP Library › Granted Patent US 10,761,731
Granted Patent B2
US 10,761,731 · App. 15/889,209 · Granted Sep 1, 2020

Array controller, solid state disk, and method for controlling solid state disk to write data

Inventors: Peijun Jiang (Chengdu, CN); Qiang Xue (Chengdu, CN); Keji Huang (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F3/0608G06F3/065G06F3/0688G06F12/0246G06F12/0253G06F12/06G06F12/0804G06F12/0868G06F2212/1036G06F2212/7201G06F2212/7203G06F2212/7204G06F2212/7205G06F2212/7208
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,761,731
App. No.
15/889,209
Granted
Sep 1, 2020
Kind
B2
Abstract

Application relates to storage technologies, and in particular, to writing data in a storage system having solid state disks. Embodiments of the application provide an array controller, including a communication interface and a processor. The processor receives information about a logical block from a solid state disk. The information about the logical block includes a size of the logical block and indication information of the logical block, and the logical block includes one or more physical blocks. The processor sends multiple write data requests to the solid state disk. Each write data request includes data, and each write data request instructs the solid state disk to write the data into the logical block indicated by the indication information of the logical block. A total size of data included in the multiple write data requests is equivalent to the size of the logical block.

Claims (24)

1. A storage system, comprising:

a solid state disk (SSD), and an array controller coupled to the SSD, wherein the SSD comprises one or more flash memory chips, each flash memory chip comprises a plurality of physical blocks;

wherein the array controller is configured to:

obtain from the SSD, information of a logical block of the SSD, wherein the information of the logical block includes size and identification information of the logical block, wherein the logical block corresponds to multiple physical blocks of the SSD, and the multiple physical blocks are located in different channels of the SSD, and wherein the logical block is in a to-be-written state;

receive data from a host, wherein the received data has contiguous logical addresses;

write the received data with contiguous logical addresses into a cache of the array controller;

when a total size of data in the cache reaches the size of the logical block, divide the data in the cache into one or more data writing requests, wherein each of the data writing requests includes the identification information of the logical block and at least a portion of the data in the cache, and the data in each of the writing requests has contiguous logical addresses; and

send the one or more data writing requests to the SSD;

wherein the SSD is configured to:

receive the one or more data writing requests;

identify the logical block of the SSD according to the identification information of the logical block included in the one or more data writing requests; and

write the data carried in the one or more data writing requests to the multiple physical blocks corresponding to the logical block in parallel, such that the multiple physical blocks are filled with the data with contiguous logical addresses.

2. The storage system according to claim 1 , wherein the identification information of the logical block comprises an identifier of the logical block, and wherein each of the data writing requests comprises the identifier of the logical block.

3. The storage system according to claim 1 , wherein the identification information of the logical block comprises a logical address range of the logical block, and wherein each of the data writing requests comprises a portion of the logical address range.

4. A method for writing data into a solid state disk (SSD), wherein the SSD comprises one or more flash memory chips, each flash memory chip comprises a plurality of physical blocks, the method comprising:

obtaining from the SSD, by an array controller coupled to the SSD, information of a logical block of the SSD, wherein the information of the logical block includes size and identification information of the logical block, wherein the logical block corresponds to multiple physical blocks of the SSD, and the multiple physical blocks are located in different channels of the SSD, and wherein the logical block is in a to-be-written state;

receiving, by the array controller, data from a host, wherein the received data has contiguous logical addresses;

writing, by the array controller, the received data with contiguous logical addresses into a cache of the array controller;

when a total size of data in the cache reaches the size of the logical block, dividing, by the array controller, the data in the cache into one or more data writing requests, wherein each of the data writing requests includes the identification information of the logical block and at least a portion of the data in the cache, and the data in each of the writing requests has contiguous logical addresses;

sending, by the array controller, the one or more data writing requests to the SSD;

identifying, by the SSD, the logical block of the SSD according to the identification information of the logical block included in the one or more data writing requests; and

writing, by the SSD, the data carried in the one or more data writing requests to the multiple physical blocks corresponding to the logical block in parallel, such that the multiple physical blocks are filled with the data with contiguous logical addresses.

5. The method according to claim 4 , wherein the identification information of the logical block comprises an identifier of the logical block, and wherein each of the data writing requests comprises the identifier of the logical block.

6. The method according to claim 4 , wherein the identification information of the logical block comprises a logical address range of the logical block, and wherein each of the data writing requests comprises a portion of the logical address range.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2018
From: JIANG, PEIJUN; XUE, QIANG; HUANG, KEJI
To: HUAWEI TECHNOLOGIES CO.,LTD.
Reel/Frame 045406/0310 →
Continuity (2)
Continuation PCTCN2015096357 · Dec 3, 2015
Related Publication 20180165014A1 · Jun 14, 2018