CN103064636B - 一种固态硬盘读写方法以及一种固态硬盘 - Google Patents
一种固态硬盘读写方法以及一种固态硬盘 Download PDFInfo
- Publication number
- CN103064636B CN103064636B CN201210567340.3A CN201210567340A CN103064636B CN 103064636 B CN103064636 B CN 103064636B CN 201210567340 A CN201210567340 A CN 201210567340A CN 103064636 B CN103064636 B CN 103064636B
- Authority
- CN
- China
- Prior art keywords
- request
- queue
- write
- read
- solid state
- 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.)
- Active
Links
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 (4)
1.一种固态硬盘读写方法,其特征在于,包括:
当接收到任一请求时,固态硬盘确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,确定该请求是否能够和所述读请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述读请求队列中的最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,确定该请求是否能够和所述异步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述异步写请求队列中的最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,确定该请求是否能够和所述同步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述同步写请求队列中的最后一位;
所述固态硬盘按照由先到后的排序顺序对各队列中的各请求进行处理。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:在处理写请求时,优先处理所述同步写请求队列中的写请求。
3.一种固态硬盘,其特征在于,包括:
排序模块,用于当接收到任一请求时,确定该请求为读请求、异步写请求还是同步写请求;如果是读请求,则将该请求加入到读请求队列中,确定该请求是否能够和所述读请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述读请求队列中的最后一位;如果是异步写请求,则将该请求加入到异步写请求队列中,确定该请求是否能够和所述异步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述异步写请求队列中的最后一位;如果是同步写请求,则将该请求加入到同步写请求队列中,确定该请求是否能够和所述同步写请求队列中已有的一请求进行合并,如果是,则进行合并,否则,将该请求排在所述同步写请求队列中的最后一位;
处理模块,用于按照由先到后的排序顺序对各队列中的各请求进行处理。
4.根据权利要求3所述的固态硬盘,其特征在于,
所述处理模块进一步用于,在处理写请求时,优先处理所述同步写请求队列中的写请求。
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 CN103064636A (zh) | 2013-04-24 |
CN103064636B true 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) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103336669B (zh) * | 2013-05-21 | 2015-12-02 | 华中科技大学 | 一种基于固态盘内部并行性的i/o调度方法及调度器 |
CN104317656B (zh) * | 2014-10-14 | 2018-01-16 | 深圳市锐明技术股份有限公司 | 一种块设备输入输出请求调度的方法及装置 |
CN107273045A (zh) * | 2017-05-24 | 2017-10-20 | 记忆科技(深圳)有限公司 | 一种提高固态硬盘混合读写性能的方法 |
CN107943413B (zh) * | 2017-10-12 | 2021-02-09 | 记忆科技(深圳)有限公司 | 一种固态硬盘提升读性能的方法 |
CN107832020A (zh) * | 2017-11-24 | 2018-03-23 | 苏州韦科韬信息技术有限公司 | 一种固态硬盘的写入方法 |
CN109992212B (zh) * | 2019-04-10 | 2020-03-27 | 苏州浪潮智能科技有限公司 | 一种数据写入方法和一种数据读取方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464781A (zh) * | 2008-12-31 | 2009-06-24 | 成都市华为赛门铁克科技有限公司 | 一种端口控制的方法、装置和固态硬盘 |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8190811B2 (en) * | 2009-06-09 | 2012-05-29 | Seagate Technology, Llc | Defragmentation of solid state memory |
-
2012
- 2012-12-24 CN CN201210567340.3A patent/CN103064636B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464781A (zh) * | 2008-12-31 | 2009-06-24 | 成都市华为赛门铁克科技有限公司 | 一种端口控制的方法、装置和固态硬盘 |
CN101498994A (zh) * | 2009-02-16 | 2009-08-05 | 华中科技大学 | 一种固态硬盘控制器 |
CN102436352A (zh) * | 2011-08-29 | 2012-05-02 | 浪潮电子信息产业股份有限公司 | 一种提高ssd的sata接口ncq效率的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103064636A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103064636B (zh) | 一种固态硬盘读写方法以及一种固态硬盘 | |
US9632826B2 (en) | Prioritizing deferred tasks in pending task queue based on creation timestamp | |
US20150253992A1 (en) | Memory system and control method | |
EP3483838A3 (en) | Systems and methods for rendering with ray tracing | |
TW200713024A (en) | Hardware oriented target-side native command queuing tag management | |
WO2017181725A1 (zh) | 多客户端的笔迹同步方法和系统 | |
CN104598194B (zh) | 一种头尾指针链表存储器的初始化方法及电路 | |
CN103647850A (zh) | 一种分布式版本控制系统的数据处理方法、设备及系统 | |
CN105224473A (zh) | 一种固态硬盘缓存数据的更新方法及装置 | |
CN102231137A (zh) | 一种数据存储系统及方法 | |
CN106202307A (zh) | 一种批量日志保存方法及装置 | |
CN102541746A (zh) | 一种队列的数据处理方法和系统 | |
WO2016202113A1 (zh) | 一种队列管理方法、装置及存储介质 | |
TW201039349A (en) | Data accessing method for flash memory and storage system and controller using the same | |
CN106325974A (zh) | 一种虚拟化io性能优化方法及系统 | |
WO2017113317A1 (zh) | 一种文件编辑方法和文件编辑器 | |
CN106844491B (zh) | 一种临时数据的写入、读取方法及写入、读取装置 | |
CN104050057A (zh) | 一种历史感知的数据去重碎片消除方法与系统 | |
CN102629235A (zh) | 一种提高ddr存储器读写速率的方法 | |
CN105302489A (zh) | 一种异构多核远程嵌入式存储器系统与方法 | |
CN106294477B (zh) | 一种数据处理方法和装置 | |
CN103164172A (zh) | 数据流存储方法及装置 | |
US9298502B2 (en) | Pausing virtual machines using API signaling | |
CN103647729A (zh) | 一种基于令牌桶的延迟请求处理方法及装置 | |
CN105892945A (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 | ||
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. |