CN103064636A - 一种固态硬盘读写方法以及一种固态硬盘 - Google Patents
一种固态硬盘读写方法以及一种固态硬盘 Download PDFInfo
- Publication number
- CN103064636A CN103064636A CN2012105673403A CN201210567340A CN103064636A CN 103064636 A CN103064636 A CN 103064636A CN 2012105673403 A CN2012105673403 A CN 2012105673403A CN 201210567340 A CN201210567340 A CN 201210567340A CN 103064636 A CN103064636 A CN 103064636A
- Authority
- CN
- China
- Prior art keywords
- request
- queue
- write
- read
- state disk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000001360 synchronised effect Effects 0.000 claims abstract description 49
- 239000007787 solid Substances 0.000 claims description 35
- 238000012163 sequencing technique Methods 0.000 claims description 10
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明公开了一种固态硬盘读写方法:当接收到任一请求时,固态硬盘确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位;固态硬盘按照由先到后的排序顺序对各队列中的各请求进行处理。本发明同时公开了一种固态硬盘。应用本发明所述方案,能够提高固态硬盘的读写效率。
Description
技术领域
本发明涉及硬盘技术,特别涉及一种固态硬盘读写方法以及一种固态硬盘。
背景技术
现有的硬盘读写方式中,读请求和写请求分别被放入到硬盘的读请求队列和写请求队列中,每个队列中的请求均按照请求的数据在硬盘中的逻辑位置先后顺序进行排序。
也就是说,读请求队列中的各请求按照要读取的数据在硬盘中的逻辑位置先后顺序进行排序,写请求队列中的各请求按照要写入的数据在硬盘中的逻辑位置先后顺序进行排序。
硬盘通常可分为两类,即机械硬盘和固态硬盘。其中,机械硬盘即指传统的普通硬盘,采用磁性碟片来进行数据存储,固态硬盘采用闪存颗粒来进行数据存储。
对于机械硬盘来说,采用现有的硬盘读写方式后,可以使磁头尽可能地进行顺序读写,从而避免了磁头去来回地定位数据在硬盘中的逻辑位置,进而提高了机械硬盘的读写效率。
但是,对于固态硬盘来说,由于其没有磁头,因此现有硬盘读写方式对其并没有帮助,反而,按照请求的数据在硬盘中的逻辑位置先后顺序对各请求进行排序还会浪费时间和资源,进而降低了固态硬盘的读写效率。
发明内容
有鉴于此,本发明提供了一种固态硬盘读写方法以及一种固态硬盘,能够提高固态硬盘的读写效率。
为达到上述目的,本发明的技术方案是这样实现的:
一种固态硬盘读写方法,包括:
当接收到任一请求时,固态硬盘确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位;
所述固态硬盘按照由先到后的排序顺序对各队列中的各请求进行处理。
一种固态硬盘,包括:
排序模块,用于当接收到任一请求时,确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位;
处理模块,用于按照由先到后的排序顺序对各队列中的各请求进行处理。
可见,采用本发明所述方案,针对固态硬盘,无需按照请求的数据在硬盘中的逻辑位置先后顺序来对各请求进行排序,只需按照各请求的到达时间由先到后的顺序进行排序即可,从而节省了时间和资源,进而提高了固态硬盘的读写效率,而且,将写请求进一步区分为异步写请求和同步写请求,从而更加方便后续处理,实现起来更为灵活方便。
附图说明
图1为本发明固态硬盘读写方法实施例的流程图。
图2为本发明固态硬盘实施例的组成结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明中提出一种固态硬盘读写方案,能够提高固态硬盘的读写效率。
为了使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
图1为本发明固态硬盘读写方法实施例的流程图。如图1所示,包括:
步骤11:当接收到任一请求时,固态硬盘确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位。
本步骤中,当固态硬盘接收到任一请求时,首先区分出该请求为读请求、异步写请求还是同步写请求,如果是读请求,则将该请求加入到读请求队列中,并将该请求排在读请求队列中的最后一位,如果是异步写请求,则将该请求加入到异步写请求队列中,并将该请求排在异步写请求队列中的最后一位,如果是同步写请求,则将该请求加入到同步写请求队列中,并将该请求排在同步写请求队列中的最后一位。即无论是读请求队列、异步写请求队列还是同步写请求队列,其中的请求均按照到达时间由先到后的顺序进行排序,从而节省了时间和资源,进而提高了固态硬盘的读写效率,而且,将写请求进一步区分为异步写请求和同步写请求,从而更加方便后续处理,实现起来更为灵活方便。
另外,为了进一步提升固态硬盘的读写效率,在实际应用中,还可进行以下处理:
对于任一请求,如果其为读请求,那么在将该请求加入到读请求队列中之后,可进一步确定该请求是否能够和读请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在读请求队列中的最后一位;
同样,在将该请求加入到异步写请求队列中之后,可进一步确定该请求是否能够和异步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在异步写请求队列中的最后一位;
在将该请求加入到同步写请求队列中之后,可进一步确定该请求是否能够和同步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在同步写请求队列中的最后一位。
符合何种条件的两个请求能够进行合并可根据实际需要而定。
比如:读请求队列中已有三个读请求,其中一个读请求为读请求A,请求读扇区1~10,读请求A排在第二位,之后,新来了一个读请求B,请求读扇区11~20,那么则可将读请求B和读请求A进行合并。
步骤12:固态硬盘按照由先到后的排序顺序对各队列中的各请求进行处理。
本步骤中,针对每个队列,固态硬盘分别按照该队列中的各请求的由先到后的排序顺序对各请求进行处理。
另外,可预先设定处理策略,比如处理完读请求之后再处理写请求,或者处理完写请求之后再处理读请求,或者,也可以读请求和写请求交叉进行处理,具体如何进行处理可根据实际需要而定。
但通常,在处理写请求时,会优先处理同步写请求队列中的同步写请求,即优先确保对应的数据比较重要的同步写请求能够得到及时处理。所述优先可体现在:每处理N个同步写请求,则处理一个异步写请求,之后再处理N个同步写请求,依次类推,N为大于1的正整数,具体取值可根据实际需要而定,比如可为3。
至此,即完成了关于本发明方法实施例的介绍。
基于上述介绍,图2为本发明固态硬盘实施例的组成结构示意图。如图2所示,包括:
排序模块,用于当接收到任一请求时,确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位;
处理模块,用于按照由先到后的排序顺序对各队列中的各请求进行处理。
其中,
排序模块还可进一步用于,在将该请求加入到读请求队列中之后,确定该请求是否能够和读请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在读请求队列中的最后一位;
排序模块还可进一步用于,在将该请求加入到异步写请求队列中之后,进一步包括:确定该请求是否能够和异步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在异步写请求队列中的最后一位;
排序模块还可进一步用于,在将该请求加入到同步写请求队列中之后,进一步包括:确定该请求是否能够和同步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在同步写请求队列中的最后一位。
另外,处理模块还可进一步用于,在处理写请求时,优先处理同步写请求队列中的写请求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种固态硬盘读写方法,其特征在于,包括:
当接收到任一请求时,固态硬盘确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位;
所述固态硬盘按照由先到后的排序顺序对各队列中的各请求进行处理。
2.根据权利要求1所述的方法,其特征在于,
所述将该请求加入到读请求队列中之后,进一步包括:确定该请求是否能够和所述读请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述读请求队列中的最后一位;
所述将该请求加入到异步写请求队列中之后,进一步包括:确定该请求是否能够和所述异步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述异步写请求队列中的最后一位;
所述将该请求加入到同步写请求队列中之后,进一步包括:确定该请求是否能够和所述同步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述同步写请求队列中的最后一位。
3.根据权利要求1或2所述的方法,其特征在于,该方法进一步包括:在处理写请求时,优先处理所述同步写请求队列中的写请求。
4.一种固态硬盘,其特征在于,包括:
排序模块,用于当接收到任一请求时,确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,并排在最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,并排在最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,并排在最后一位;
处理模块,用于按照由先到后的排序顺序对各队列中的各请求进行处理。
5.根据权利要求4所述的固态硬盘,其特征在于,
所述排序模块进一步用于,在将该请求加入到读请求队列中之后,确定该请求是否能够和所述读请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述读请求队列中的最后一位;
所述排序模块进一步用于,在将该请求加入到异步写请求队列中之后,进一步包括:确定该请求是否能够和所述异步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述异步写请求队列中的最后一位;
所述排序模块进一步用于,在将该请求加入到同步写请求队列中之后,进一步包括:确定该请求是否能够和所述同步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述同步写请求队列中的最后一位。
6.根据权利要求4或5所述的固态硬盘,其特征在于,
所述处理模块进一步用于,在处理写请求时,优先处理所述同步写请求队列中的写请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210567340.3A CN103064636B (zh) | 2012-12-24 | 2012-12-24 | 一种固态硬盘读写方法以及一种固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210567340.3A CN103064636B (zh) | 2012-12-24 | 2012-12-24 | 一种固态硬盘读写方法以及一种固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064636A true CN103064636A (zh) | 2013-04-24 |
CN103064636B CN103064636B (zh) | 2016-04-13 |
Family
ID=48107280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210567340.3A Active CN103064636B (zh) | 2012-12-24 | 2012-12-24 | 一种固态硬盘读写方法以及一种固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064636B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336669A (zh) * | 2013-05-21 | 2013-10-02 | 华中科技大学 | 一种基于固态盘内部并行性的i/o调度方法及调度器 |
CN104317656A (zh) * | 2014-10-14 | 2015-01-28 | 深圳市锐明视讯技术有限公司 | 一种块设备输入输出请求调度的方法及装置 |
CN107273045A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘混合读写性能的方法 |
CN107832020A (zh) * | 2017-11-24 | 2018-03-23 | 苏州韦科韬信息技术有限公司 | 一种固态硬盘的写入方法 |
CN107943413A (zh) * | 2017-10-12 | 2018-04-20 | 记忆科技(深圳)有限公司 | 一种固态硬盘提升读性能的方法 |
CN109992212A (zh) * | 2019-04-10 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种数据写入方法和一种数据读取方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464781A (zh) * | 2008-12-31 | 2009-06-24 | 成都市华为赛门铁克科技有限公司 | 一种端口控制的方法、装置和固态硬盘 |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
US20100312983A1 (en) * | 2009-06-09 | 2010-12-09 | Seagate Technology Llc | Defragmentation of solid state memory |
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
-
2012
- 2012-12-24 CN CN201210567340.3A patent/CN103064636B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464781A (zh) * | 2008-12-31 | 2009-06-24 | 成都市华为赛门铁克科技有限公司 | 一种端口控制的方法、装置和固态硬盘 |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
US20100312983A1 (en) * | 2009-06-09 | 2010-12-09 | Seagate Technology Llc | Defragmentation of solid state memory |
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336669A (zh) * | 2013-05-21 | 2013-10-02 | 华中科技大学 | 一种基于固态盘内部并行性的i/o调度方法及调度器 |
CN103336669B (zh) * | 2013-05-21 | 2015-12-02 | 华中科技大学 | 一种基于固态盘内部并行性的i/o调度方法及调度器 |
CN104317656A (zh) * | 2014-10-14 | 2015-01-28 | 深圳市锐明视讯技术有限公司 | 一种块设备输入输出请求调度的方法及装置 |
CN104317656B (zh) * | 2014-10-14 | 2018-01-16 | 深圳市锐明技术股份有限公司 | 一种块设备输入输出请求调度的方法及装置 |
CN107273045A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘混合读写性能的方法 |
CN107943413A (zh) * | 2017-10-12 | 2018-04-20 | 记忆科技(深圳)有限公司 | 一种固态硬盘提升读性能的方法 |
CN107832020A (zh) * | 2017-11-24 | 2018-03-23 | 苏州韦科韬信息技术有限公司 | 一种固态硬盘的写入方法 |
CN109992212A (zh) * | 2019-04-10 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种数据写入方法和一种数据读取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103064636B (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064636B (zh) | 一种固态硬盘读写方法以及一种固态硬盘 | |
US10019196B2 (en) | Efficient enforcement of command execution order in solid state drives | |
US20150253992A1 (en) | Memory system and control method | |
US8832333B2 (en) | Memory system and data transfer method | |
US10282132B2 (en) | Methods and systems for processing PRP/SGL entries | |
Gao et al. | Exploiting parallelism in I/O scheduling for access conflict minimization in flash-based solid state drives | |
KR101284440B1 (ko) | 커맨드 수정 | |
JP7162102B2 (ja) | メモリアクセス技術およびコンピュータシステム | |
WO2016082550A1 (zh) | 缓存数据的刷盘方法及装置 | |
US20100262721A1 (en) | Memory controllers, memory systems, solid state drives and methods for processing a number of commands | |
US9400603B2 (en) | Implementing enhanced performance flash memory devices | |
TW201227506A (en) | Controller and method for performing background operations | |
WO2012166531A2 (en) | Apparatus including memory system controllers and related methods | |
KR101505005B1 (ko) | 메모리 장치 및 메모리 장치의 관리 방법 | |
JP2009163647A (ja) | ディスクアレイ装置 | |
CN107122130B (zh) | 一种数据重删方法及装置 | |
US20140075102A1 (en) | Controller of a nonvolatile memory device and a command scheduling method thereof | |
TW201039349A (en) | Data accessing method for flash memory and storage system and controller using the same | |
CN104050057A (zh) | 一种历史感知的数据去重碎片消除方法与系统 | |
US20160070648A1 (en) | Data storage system and operation method thereof | |
US20140059377A1 (en) | Dynamic y-buffer size adjustment for retained sector reprocessing | |
US20190265899A1 (en) | Meta data processing during startup of storage devices | |
US10254965B2 (en) | Method and apparatus for scheduling block device input/output requests | |
CN104461930A (zh) | 一种写缓存的方法及装置 | |
CN102103490B (zh) | 一种利用流水处理提高内存效率的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 505, Taixing Building, 11 Garden East Road, Haidian District, Beijing, 100191 Co-patentee after: Shenzhen Innovation Technology Co., Ltd. Patentee after: Innovation Technology Co., Ltd. Address before: Room 0801-0810, 51 College Road, Haidian District, Beijing, 100191 Co-patentee before: UIT Storage Technology (Shenzhen) Co., Ltd. Patentee before: Innovation and Technology Storage Technology Co., Ltd. |
|
CP03 | Change of name, title or address |