平码五不中公式规律
  • / 20
  • 下载费用:30 金币  

固态驱动器中不均匀通道加载的性能影响的降低.pdf

关 键 ?#21097;?/dt>
固态 驱动器 不均匀 通道 加载 性能 影响 降低
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580045606.X

申请日:

2015.08.26

公开号:

CN106662984A

公开日:

2017.05.10

当前法律状态:

实审

有效性:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06F 3/06申请日:20150826|||公开
IPC分类号: G06F3/06 主分类号: G06F3/06
申请人: 英特尔公司
发明人: A.S.拉马林加姆; V.M.斯里兰加尼
地址: 美国加利福尼亚州
优?#28909;ǎ?/td> 2014.09.26 US 14/499016
专利代理机构: 中国专利代理(香港)有限公司 72001 代理人: 张凌苗;刘春元
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580045606.X

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

提供了一种用于在耦合到主机的固态驱动器中分配读取请求的方法和?#20302;場?#22266;态驱动器中的仲裁器确定固态驱动器中的多个通道中的哪个是多个通道中的轻加载通道。分配用于处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求的资源,其中已经从主机接收到一个或多个读取请求。将一个或多个读取请求放置在所确定的轻加载通道中以用于处理。在某些实施例中,轻加载通道是多个通道中的最轻加载通道。

权利要求书

1.一种方法,包括:
由固态驱动器中的仲裁器确定固态驱动器中的多个通道中的哪个通道与其他通道相
比是轻加载通道;
分配用于处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求的资源,其中已经
从主机接收了所述一个或多个读取请求;以及
将所述一个或多个读取请求放置在所确定的轻加载通道中以用于处理。
2.根据权利要求1所述的方法,其中,所确定的轻加载通道是多个通道中的最轻加载通
道,并且其中在将一个或多个读取请求放置在所确定的最轻加载通道中以用于处理之后,
所确定的最轻加载通道在处理期间尽可能接近被完全利用。
3.根据权利要求1所述的方法,其中,将一个或多个读取请求包括在意?#21152;?#20110;多个通道
的多个读取请求中,并且其中通过将一个或多个读取请求放置在所确定的轻加载通道中以
用于处理来修改多个读取请求的处理的顺序。
4.根据权利要求3所述的方法,其中,修改多个请求的处理的顺序相对于其他请求优先
地处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求。
5.根据权利要求1所述的方法,所述方法还包括:
由固态驱动器经由外围部件互连高速(PCIe)总线从主机接收一个或多个读取请求,其
中固态驱动器中的多个通道中的每一个具有相同的带宽。
6.根据权利要求5所述的方法,其中,多个通道的带宽的和等于PCIe总线的带宽。
7.根据权利要求1所述的方法,其中,与多个通道中的其他通道相比,多个通道中的至
少一个通道耦合到不同数量的NAND芯片。
8.根据权利要求1所述的方法,其中,如果未将一个或多个读取请求放置在所确定的轻
加载通道中以用于处理,那么在固态驱动器上的读取性能与其中所有通道耦合到相同数量
的NAND芯片的另一固态驱动器相比降低超过10%。
9.根据权利要求1所述的方法,其中,在由固态驱动器中的仲裁器确定固态驱动器中的
多个通道中的哪个是轻加载通道之后,执行用于处理的资源的分配。
10.根据权利要求1所述的方法,其中,相比于相对重加载的通道,仲裁器更经常地轮询
相对轻加载的通道,以将重新排序的读取请求优先地分派到相对轻加载的通道。
11. 根据权利要求1所述的方法,方法还包括:
将多个通道中的每一个与保持由通道正在处理的未完成读取的数据结构相关联;以及
将已经从主机接收的一个或多个读取请求保持在从主机接收的读取请求的传入队列
中。
12.一种装置,包括:
多个?#19988;资?#24615;存储器芯片;
耦合到多个?#19988;资?#24615;存储器芯片的多个通道;以及
用于控制多个通道的仲裁器,其中仲裁器可操作用于:
确定多个通道中的哪个与其他通道相比是轻加载通道;
分配用于处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求的资源,其中已经
从主机接收了所述一个或多个读取请求;以及
将所述一个或多个读取请求放置在所确定的轻加载通道中以用于处理。
13.根据权利要求12所述的装置,其中,?#19988;资?#24615;存储器芯片包括NAND芯片,其中轻加
载通道是多个通道中的最轻加载通道,并且其中在将一个或多个读取请求放置在所确定的
最轻加载通道中以用于处理之后,所确定的最轻加载通道在处理期间尽可能接近被完全利
用。
14.根据权利要求12所述的装置,其中,将一个或多个读取请求包括在意?#21152;?#20110;多个通
道的多个读取请求中,其中,从主机接收多个读取请求,并且其中通过将一个或多个读取请
求放置在所确定的轻加载通道中以用于处理来修改多个读取请求的处理的顺序。
15.根据权利要求14所述的装置,其中,修改多个请求的处理的顺序相对于其他请求优
先地处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求。
16.根据权利要求12所述的装置,其中,所述装置经由外围部件互连高速(PCIe)总线从
主机接收一个或多个请求,其中多个通道中的每一个具有相同的带宽。
17.根据权利要求16所述的装置,其中,多个通道的带宽的和等于PCIe总线的带宽。
18.根据权利要求12所述的装置,其中,?#19988;资?#24615;存储器芯片包括NAND芯片,并且其中
与多个通道中的其他通道相比,多个通道中的至少一个耦合到不同数量的NAND芯片。
19.根据权利要求12所述的装置,其中,?#19988;资?#24615;存储器芯片包括NAND芯片,并且其中
如果未将一个或多个读取请求放置在所确定的轻加载通道中以用于处理,那么读取性能与
其中所有通道耦合到相同数量的NAND芯片的另一装置相比降低超过10%。
20.根据权利要求12所述的装置,其中,在仲裁器确定多个通道中的哪个是轻加载通道
之后,执行用于处理的资源的分配。
21.根据权利要求12所述的装置,其中,相比于相对重加载的通道,仲裁器更经常地轮
询相对轻加载的通道,以将重新排序的读取请求优先地分派到相对轻加载的通道。
22. 根据权利要求12所述的装置,其中,仲裁器还可操作用于:
将多个通道中的每一个与保持由通道正在处理的未完成读取的数据结构相关联;以及
将已经从主机接收的一个或多个读取请求保持在从主机接收的读取请求的传入队列
中。
23.一种?#20302;常?#21253;括:
固态驱动器;
显示器;以及
耦合到固态驱动器和显示器的处理器,其中处理器向固态驱动器发送多个读取请求,
并且其中响应于多个读取请求,固态驱动器执行操作,所述操作包括:
确定固态驱动器中的多个通道中的哪个通道与固态驱动器中的其他通道相比是轻加
载通道;
分配用于处理从多个读取请求中选择的一个或多个读取请求的资源,其中一个或多个
读取请求意?#21152;?#20110;所确定的轻加载通道;以及
将一个或多个读取请求放置在所确定的轻加载通道中以用于处理。
24.根据权利要求23所述的?#20302;常?#20854;中,固态驱动器还包括多个?#19988;资?#24615;存储器芯片,
所述多个?#19988;资?#24615;存储器芯片包括NAND或NOR芯片,其中轻加载通道是多个通道中的最轻
加载通道,并且其中,在将一个或多个读取请求放置在所确定的最轻加载通道中以用于处
理之后,所确定的最轻加载通道在处理期间尽可能接近被完全利用。
25.根据权利要求23所述的?#20302;常?#20854;中,通过将一个或多个读取请求放置在所确定的轻
加载通道中以用于处理来修改多个请求的处理的顺序。

说明书

固态驱动器中不均匀通道加载的性能影响的降低

背景技术

固态驱动器(SSD)是使用集成电路组件作为存储器来持久地存储数据的数据存储
设备。许多类型的SSD使用基于NAND或基于NOR的闪存,其在没有电力的情况下保持数据并
且是一种?#19988;资?#24615;存储技术。

可以将通信接口用来将SSD耦合到包括处理器的主机?#20302;場?#36825;样的通信接口可以
包括外围部件互连高速(PCIe)总线。PCIe的进一步?#38468;?#21487;以在PCI-SIG在2010年11月10日
出版的题为“PCI Express Base Specification Revision 3.0”的出版物中找到。经由PCI
总线进行通信的SSD的最重要的益处是增加的性能,并且这样的SSD被称为PCIe SSD。

附图说明

现在参考附图,其中遍及以下附图相同的参考标号表示相对应的部分:

图1示出了其中固态盘通过PCIe总线耦合到主机的计算环境的框图;

图2示出了图示根据某些实施例的仲裁器如何将传入队列中的读取请求分配给固态驱
动器的通道的另一框图;

图3示出了图示根据某些实施例的在开始最轻填充的通道的优先化和主机命令的重新
排序(reorder)之前在固态驱动器中的读取请求的分配的框图;

图4示出了图示根据某些实施例的在最轻填充的通道的优先化和主机命令的重新排序
之后在固态驱动器中的读取请求的分配的框图;

图5示出了根据某些实施例的用于防止固态驱动器中的不均匀通道加载的第一流程
图;

图6示出了根据某些实施例的用于防止固态驱动器中的不均匀通道加载的第二流程
图;以及

图7示出了根据某些实施例的计算设备的框图。

具体实施方式

在下面的描述中,对形成其一部分并且示出了若干实施例的附图进行参考。应当
理解:可以利用其他实施例并且可以进行结构和操作改变。

PCIe SSD的增加的性能可能主要是由于PCIe SSD中实现的通道数量。例如,在某
些实施例中,某些PCIe SSD可以通过扩展的18通道设计来提供改善的内部带宽。

在基于PCIe的固态驱动器中,从主机到固态驱动器的PCIe总线可以具有高带宽
(例如,40吉?#32440;?秒)。基于PCIe的固态驱动器可以具有多个通道,其中与PCIe总线的带宽
相比,每个通道具有相对较低的带宽。例如,在具有18个通道的固态驱动器中,每个通道可
以具有大约200兆?#32440;?秒的带宽。

在某些情况下,耦合到每个通道的NAND芯片的数量在数量上是相等的,并且在这
种情况下,在来自主机的随机但均一(uniform)的读取请求的情形下,可?#28304;?#33268;相等地对通
道加载,即针对处理读取请求大致相同量地在?#20013;?#26102;间上利用每个通道。可以注意到,在许
多情况下,从主机到固态驱动器的超过95%的请求可能是读取请求,而从主机到固态驱动
器的不到5%的请求可能是写入请求,并且读取请求到通道的?#23454;?#20998;配可能在固态驱动器
中是重要的。

然而,在某些情况下,与其他通道相比,通道中的至少一个可以具有耦合到通道的
不同数量的NAND芯片。当NAND芯片的数量不是通道数量的倍数时,可能发生这种情况。例
如,如果存在18个通道并且NAND芯片的数量不是18的倍数,那?#20174;?#20854;他通道相比,通道中的
至少一个必须具有耦合到通道的不同数量的NAND芯片。在这种情况下,耦合到较大数量的
NAND芯片的通道可以比耦合到较少数量的NAND芯片的通道负载更重。假设固态驱动器中的
每个NAND芯片是相同的结构并且具有相同的存储容量。

在通道的不均匀加载的情况下,一些通道可能比其他通道积压(backlog)得更多,
并且在完成对主机的响应之前PCIe总线可能必须等待积压清除。

某些实施例提供了即使当与其他通道相比通道中的至少一个具有耦合到通道的
不同数量的NAND芯片?#24065;?#38450;止通道的不均匀加载的机制。这通过用意?#21152;?#20110;最轻加载通道
的读取请求优先加载最轻加载通道并且通过对在固态驱动器中的队列中等待执行的未决
读取请求的处理重新排序来实现。由于在将读取请求加载到通道中时对资源进行分配,所
以通过用读取请求加载最轻加载的通道,仅在需要时才使用资源并且资源被有效地使用。
因此,某些实施例改善了SSD的性能。

图1示出了根据某些实施例的计算环境100的框图,其中固态驱动器102通过PCIe
总线106耦合到主机104。主机104可以至少包括处理器。

在某些实施例中,仲裁器108在固态驱动器102中以固件来实现。在其他实施例中,
仲裁器108可以以硬件或软件、以硬件、固件或软件的任何组合来实现。仲裁器108将通过
PCIe总线106从主机104接收的读取请求分配给固态驱动器102的多个通道110a、110b、...、
110n中的一个或多个通道。

在某些实施例中,将通道110a ... 110n耦合到多个?#19988;资?#24615;存储器芯片,诸如
NAND芯片、NOR芯片或其他合适的?#19988;资?#24615;存储器芯片。在替代实施例中,也可以使用其他
类型的存储器芯片,诸如基于相变存储器(PCM)、三维交叉点存储器、电阻存储器、纳米线存
储器、铁电晶体管随机存取存储器(FeTRAM)、并入忆阻器技术的磁阻随机存取存储器
(MRAM)存储器、自旋转移力矩(STT)-MRAM或其他合适的存储器的芯片。

例如,在某些实施例中,通道110a耦合到NAND芯片112a ... 112p,通道110b耦合
到NAND芯片114a ...114q,以及通道110n耦合到NAND芯片114a ...114r。 NAND芯片112a
...112p、114a ...114q、114a ...114r中的每一个在构造上相同。与其他通道相比,多个通
道110a ...110n中的通道中的至少一个具有耦合到通道的不同数量的NAND芯片,因此如果
来自主机104的读取请求是随机和均一的,则存在多个通道110a...110n的不均匀加载的可
能性。

在某些实施例中,固态驱动器102可能能够存储若干太?#32440;冢╰erabyte)的数据或
更多,并且在固态驱动器102中可以找到多个NAND芯片112a ...112p、114a ...114q、116a
... 116r,其每一个存储若干吉?#32440;?#30340;数据或更多。PCIe总线106可以具有每秒4吉?#32440;?#30340;
最大带宽(即,数据承载能力)。在某些实施例中,多个通道110a ...110n的数量可以是十
八,并且每个通道可以具有每秒200兆?#32440;?#30340;最大带宽。

在某些实施例中,仲裁器108以序列逐个地检验多个通道110a ... 110n,并且在
检验所有多个通道110a ...110n之后,在尝试执行多个通道的均一加载中用意?#21152;?#20110;该通
道的读取请求加载最小加载通道以增加最小加载通道上的负载。

图2示出了根据某些实施例的固态驱动器102的另一框图200,其示出了仲裁器108
如何将传入队列202中的读取请求分配给固态驱动器102的通道110a ...110n。

仲裁器108保持传入队列202,其中传入队列202存储通过PCIe总线106从主机104
接收的读取请求。读取请求?#28304;?#20837;队列202中的顺序到达并且最初以与读取请求到达传入
队列202中的顺序相同的顺序保持。例如,首先到达的请求可以是针?#28304;?#20648;在耦合到通道
110b的NAND芯片中的数据的,并且下一个到达的第二请求可以是针?#28304;?#20648;在耦合到通道
110a的NAND芯片中的数据的。在这种情况下,首先到达的请求在传入队列202的头部,并且
下一个到达的请求是传入队列202中的下一个元素。

仲裁器108还为每个通道110a ...110b保持数据结构,在该数据结构中保持由通
道正在处理的未完成的(outstanding)读取请求的标识。例如,数据结构204a、204b、...
204n存储由多个通道110a、110b、...110n正在处理的未完成的读取的标识。针对通道的未
完成的读取请求是已经被加载到通道并且由通道正在处理的读取请求,即,耦合到通道的
NAND芯片正在用来检索对应于已经加载到通道的读取请求的数据。

固态驱动器102还保持在将读取请求加载到通道时使用的多个硬件、固件或软件
资源,诸如缓冲器、锁存器、存储器、各种数据结构等(如通过参考标号206所示)。在某些实
施例中,通过在最小加载通道上加载读取请求时保留资源,仲裁器108防止不必要的资源锁
定。

因此,图2示出了某些实施例,其中仲裁器108保持读取请求的传入队列202,并且
还保持与由固态驱动器102的每个通道110a ..110n正在处理的未完成的读取对应的数据
结构204a ... 204n。

图3示出了图示根据某些实施例的在开始最轻填充的通道的优先化和主机命令的
重新排序之前在示例性固态驱动器300中的读取请求的分配的框图。与其他通道相比,最轻
填充的通道具有经历通道的处理的最少数量的读取请求。

示例性固态驱动器300具有三个通道:通道A 302、通道B 304和通道C 306。通道A
302具有经由参考标号310、312、314指示的未完成读取308,即,对于存储在耦合到通道A
302的NAND芯片中的数据,存在三个读取请求(称为“读取A”310、312、314)。通道B 304具有
经由参考标号318指示的未完成读取316,并且通道C 306具有由参考标号322、324指代的未
完成读取320。

读取请求326的传入队列具有十个读取命令328、330、332、334、336、338、340、342、
344、346,其中在传入队列326的头部的命令是“读取A”命令328,并且在传入队列326的尾部
的命令是 “读取B”命令346。

图4示出了图示根据某些实施例的在最轻填充的通道的优先化和主机命令的重新
排序之后在固态驱动器300中的读取请求的分配的框图。

在某些实施例中,仲裁器108检验读取请求326的传入队列(如图3所示)以及如数
据结构308、316、318中所示的通道正在处理的未完成读取。仲裁器108然后用从读取请求
326的传入队列中无序地(out of order)选择的命令340、344(其是“读取B”命令)加载最轻
加载的通道B 304(其在图3中只具有未完成的一个读取请求318)(如图3中所示)。

图4示出了在最轻加载的通道B 304已经加载有命令340、344之后的情况。在图4
中,针对通道B 304正在处理的未完成读取316中的参考标号402和404示出了图3的现在已
经被加载到通道B 304中用于处理的命令340、344。

因此,通过利用从读取请求326的传入队列中无序地选择的?#23454;?#30340;读取请求加载
三个通道302、304、306中最轻加载的,可以更均匀地对通道302、304和306进行加载。应当注
意:在传入队列326中的命令340之前的命令328、330、332、334、336、338中没有一个可以被
加载到通道B 304,因为命令328、330、332、334、336、338是针对经由通道A 302或通道C 306
访问的数据的读取请求。还应注意:仅存在一个仲裁器108和多个通道,因此仲裁器108逐个
地检验通道302、304、306上的未完成读取308、316、320。通道302、304、306当然可以通知仲
裁器108通道302、304、306何时完成某些读取请求的处理,并且仲裁器108可以根据由通道
302、304、306提供的信息来跟踪通道302、304、306上的未完成读取请求。

另外,当通过使用微控制器实现时,仲裁器108是串行化处理器。 NAND芯片(例如
NAND芯片112a)具有对其仅允许一个读取请求的固有性质。用于NAND芯片的通道(例如,通
道110a)具有“忙”状态,直到对NAND芯片的读取请求完成。仲裁器108的责任是在通道忙时
不调度新的读取。一旦通道不忙,仲裁器108就需要向NAND芯片分?#19978;?#19968;个命令。为了改善
通道加载,在某些实施例中,相比于“重加载”通道(即,正在用于处理相对较少读取请求的
通道),仲裁器108更经常地轮询“轻加载”通道(即,正在用于处理相对较少读取请求的通
道),使得重新排序的读取命令被尽快分派给轻加载通道。这是重要的,因为完成新的读取
命令的时间大约是100微秒,而仲裁器108扫描所有18个通道并重新排序读取命令大约花费
相同量的时间。

图5示出了根据某些实施例的用于防止固态驱动器中的不均匀通道加载的第一流
程图500。图5中所示的操作可以由执行固态驱动器102内的操作的仲裁器108执行。

控制开?#21152;?#26694;502,其中仲裁器108确定多个通道110a、110b、... 110n中的第一通
道110a上的读取处理负载(即,正在使用的带宽)。控制进行到框504,其中仲裁器108确定是
否已确定最后通道110n上的读取处理负载。如果不是(“否”?#31181;?05),则仲裁器108确定下
一个通道上的读取处理负载,并且控?#21697;?#22238;到框504。可以通过检验用于未完成读取204a
... 204n的数据结构中的未决读取请求的数量或者经由其他机制来确定读取处理负载。

如果在框504处确定最后通道110n上的读取处理负载已被确定(“是”?#31181;?07),则
控制进行到框508,其中确定多个通道中的哪个具有最小处理负载,并且将具有最小处理负
载的通道称为通道X。

从框508,控制进行到框509,其中确定通道X是忙还是不忙,其中忙的通道不能处
理附加的读取请求,并且不忙的通道能够处理附加的读取请求。因为耦合到通道X的NAND芯
片具有对其仅允许一个读取请求的固有性?#21097;?#25152;以需要确定通道X是忙还是不忙。用于NAND
芯片的通道X具有“忙”状态,直到对NAND芯片的读取请求完成。

如果在框509处确定通道X不忙(参考标号509a),那么控制进行到框510,其中仲裁
器108选择在“读取请求的传入队列”202中已经累积的意?#21152;?#20110;通道X的一个或多个读取请
求,使得通道X的可用带宽尽可能接近被完全利用,其中选择可导致“读取请求的传入队列”
202中的未决请求的重新排序。仲裁器108分配用于所选择的一个或多个读取请求的资源,
并将一个或多个读取请求发送(在框512处)到通道X以用于处理。

如果在框509处确定通道X忙(参考标号509b),那么过程进?#26800;?#24453;,直到通道X不
忙。

在替代实施例中,代替确定具有最小处理负载的通道,可?#21248;?#23450;相对轻加载的通
道(即,在多个通道中具有相对低处理负载的通道)。在某些实施例中,可以将读取请求优先
地发送到相对轻加载的通道。应当注意,仲裁器108不调度用于轻加载通道的另一个读取请
求,直到轻加载通道被确认为“不忙”。

可以注意到,当正在执行操作502、504、505、506、507、508、510、512时,主机读取请
求在“读取请求的传入队列”数据结构202中保持累积(在框514处) 。

因此,图5示出了用于选择最轻加载的通道并且重新排序读取请求的传入队列中
的队列项目以选择?#23454;?#30340;读取请求来加载在最轻加载的通道中的某些实施例。

图6示出了根据某些实施例的用于防止固态驱动器中的不均匀通道加载的第二流
程图600。图6中所示的操作可以由执行固态驱动器102内的操作的仲裁器108执行。

控制开?#21152;?#26694;602,其中固态驱动器102经由PCIe总线106从主机104接收多个读取
请求,其中固态驱动器中的多个通道110a ... 110n中的每一个具有相同的带宽。虽然通道
110a ... 110n可具有相同的带宽,但是在实?#39318;?#20917;中,通道110a ... 110n中的一个或多
个可能没有完全利用带宽。

固态驱动器102中的仲裁器108确定(在框604处)固态驱动器102中的多个通道
110a ... 110n中的哪一个是轻加载通道(在某些实施例中,轻加载通道是最轻加载通道)。
分配用于处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求的资源(在框608处),
其中已经从主机104接收到一个或多个读取请求。

控制进行到框608,其中将一个或多个读取请求放置在所确定的轻加载通道中以
用于处理。在将一个或多个读取请求放置在所确定的轻加载通道中以用于处理之后,所确
定的轻通道在处理期间尽可能接近被完全利用。

因此,图1-图6示出了用于通过对来?#28304;?#20837;队列的读取请求的无序选择来防止固
态驱动器中的通道的不均匀加载,以及将读取请求的无序选择加载到相对轻加载或者最小
加载的通道中的某些实施例。

所描述的操作可以被实现为使用标准编程和/或工程技术来产生软件、固件、硬件
或其任何组合的方法、装置或计算机程序产品。所描述的操作可以被实现为保持在“计算机
可读存储介质”中的代码,其中处理器可?#28304;?#35745;算机存储可读介质读取和执行代码。计算机
可读存储介质包括电子电路、存储材料、无机材料、有机材料、生物材料、壳体、外壳、涂层和
硬件中的至少一个。计算机可读存储介质可以包括但不限于磁存储介?#21097;?#20363;如,硬盘驱动驱
动器、软盘、带等)、光学?#19988;?#35013;置(CD-ROM、DVD、光盘等)、?#36164;?#24615;和?#19988;资?#24615;存储器设备(例
如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、固态设备(SSD)?#21462;?#23454;现
所描述的操作的代码还可以在硬件设备(例如,集成电路芯片、可编程门阵列(PGA)、专用集
成电路(ASIC)等)中实现的硬件逻辑中实现。此外,实现所描述的操作的代码可以在“传输
信号”中实现,其中传输信号可以通过空间或通过诸如光纤、铜线等的传输介质传播。代码
或逻辑被编码在其中的传输信号还可以包括无线信号、卫星传输、无线电波、红外信号、蓝
牙?#21462;G度?#22312;计算机可读存储介质上的程序代码可以作为传输信号从传输站或计算机传输
到接收站或计算机。计算机可读存储介质不仅包括传输信号。本领域技术人员将认识到,可
以对该配置进行许多修改,并且?#30772;?#21487;以包括本领域已知的合适的信息承载介质。

可以以一种或多种编程语言的任何组合来编写用于执行某些实施例的方面的操
作的计算机程序代码。流程图和框图的框可以由计算机程序指令来实现。

图7示出了根据某些实施例的包括主机104(主机104至少包括处理器)和固态驱动
器102两者的?#20302;?00的框图。例如,在某些实施例中,?#20302;?00可以是具有包括在?#20302;?00中
的主机104和固态驱动器102的计算机(例如,膝上?#22270;?#31639;机、台式计算机、平板计算机、蜂窝
电话或任何其他合适的计算设备)。例如,在某些实施例中,?#20302;?00可以是包括固态驱动器
102的膝上?#22270;?#31639;机。

?#20302;?00可以包括电路702,电路702在某些实施例中可以至少包括处理器704。系
统700还可以包括存储器706(例如,?#36164;?#24615;存储器设备)和?#19988;?#35013;置708。?#19988;?#35013;置708可以
包括固态驱动器102或包括?#19988;资?#24615;存储器设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、
闪存、固件、可编程逻辑等)的其他驱动器或设备。?#19988;?#35013;置708还可以包括?#25490;?#39537;动器、光
盘驱动器、带驱动器?#21462;<且?#35013;置708可以包括内部存储设备、附着存储设备和/或网络可访
问存储设备。?#20302;?00可以包括程序逻辑710,其包括可以加载到存储器706中并由处理器
704或电路702执行的代码712。在某些实施例中,包括代码712的程序逻辑710可?#28304;?#20648;在记
忆装置708中。在某些其他实施例中,程序逻辑710可以在电路702中实现。因此,虽然图7与
其他元件分离地示出了程序逻辑710,但是程序逻辑710可以在存储器706和/或电路702中
实现。?#20302;?00还可以包括显示器714(例如,液晶显示器(LCD)、发光二极管(LED)显示器、阴
极射线管(CRT)显示器、触摸?#26009;?#31034;器或任何其他合适的显示器)。?#20302;?00还可以包括一个
或多个输入设备716,诸如键盘、鼠标、操纵杆、轨迹板或任何其他合适的输入设备)。除了图
7中所示的组件或设备之外的其他组件或设备也可以在?#20302;?00中找到。

某些实施例可以涉及一种用于由人部署计算指令或将计算机可读代码集成到计
算?#20302;?#20013;的自动处理的方法,其中使得与计算?#20302;?#32452;合的代码能够执行所描述的实施例的
操作。

除非另有明确规定,否则术语“一实施例”、“实施例”、“多个实施例”、“该实施例”、
“该多个实施例”、“一个或多个实施例”、“一些实施例?#24065;?#21450;“一个实施例”意指“一个或多个
(但是不是所有)实施例”。

除非另有明确规定,否则术语“包括”、“包含”、“具有”及其变体意指“包括但不限
于”。

除非另有明确规定,否则列举的项目列表并不意味着任何或所有项目是相互排斥
的。

除非另有明确规定,否则术语“一”、“一个”和“该”意指“一个或多个”。

除非另有明确规定,否则彼此通信的设备不需要彼此连续通信。另外,彼此通信的
设备可以直接进行通信或者通过一个或多个中介间接地进行通信。

具有彼此通信的若干部件的实施例的描述不意味着需要所有这样的部件。相反,
描述了各种可选的部件以示出各种各样的可能实施例。

此外,尽管可以以顺序次序描述处理步骤、方法步骤、算法等,但是这样的处理、方
法和算法可以被配置为以替代的顺序工作。换句话说,可以描述的步骤的任何序列或顺序
不一定指示以该顺序执行步骤的要求。本文描述的处理的步骤可以以实际的任何顺序执
行。此外,可以同时执行一些步骤。

当在本文中描述单个设备或物品时,将容易清楚的是:多于一个设备/物品(无论?
?它们是否协作)可以用来代替单个设备/物品。类似地,在本文中描述多于一个设备或物品
(无论它们是否合作)情况下,将容易清楚的是:单个设备/物品可以用来代替该多于一个设
备或物品或不同数量的设备/物品可以用来代替所示数量的设备或程序。设备的功能和/或
特征可以可替代地由未明确描述为具有这样的功能/特征的一个或多个其他设备来体现。
因此,其他实施例不需要包括设备本身。

在附图中已经示出的至少某些操作示出了以特定顺序发生的某些事件。在替代实
施例中,某些操作可以以不同的顺序执行、修改或移除。此外,可以向上述逻辑添加步骤,并
?#20063;?#39588;?#21248;环?#21512;所描述的实施例。此外,本文描述的操作可以顺序地发生,或者可以并?#26800;?br />处理某些操作。此外,操作可以由单个处理单元或由分布式处理单元执行。

出于说明和描述的目的,已经呈现了各种实施例的前述描述。其并不旨在穷举或
将其限于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。

示例

以下示例涉及另外的实施例。

示例1是一种方法,其中固态驱动器中的仲裁器确定固态驱动器中的多个通道中
的哪个通道与其他通道相比是轻加载通道。将资源分配用于处理意?#21152;?#20110;所确定的轻加载
通道的一个或多个读取请求,其中已经从主机接收所述一个或多个读取请求。将所述一个
或多个读取请求放置在所确定的轻加载通道中以用于处理。

在示例2中,权利要求1的主题可以包括:所确定的轻加载通道是多个通道中的最
轻加载通道,其中在将所述一个或多个读取请求放置在所确定的最轻加载通道中以用于处
理之后,所确定的最轻加载通道在处理期间尽可能接近被完全利用。

在示例3中,权利要求1的主题可以包括:将所述一个或多个读取请求包括在意图
用于所述多个通道的多个读取请求中,其中通过将所述一个或多个读取请求放置在所确定
的轻加载通道中以用于处理来修改所述多个读取请求的处理的顺序。

在示例4中,权利要求3的主题可以包括:修改所述多个请求的处理的顺序相对于
其他请求优先地处理意?#21152;?#20110;所确定的轻加载通道的所述一个或多个读取请求。

在示例5中,权利要求1的主题可以包括:所述固态驱动器经由外围部件互连高速
(PCIe)总线从主机接收一个或多个读取请求,其中所述固态驱动器中的所述多个通道中的
每一个具有相同的带宽。

在示例6中,权利要求5的主题可以包括:所述多个通道的带宽的和等于PCIe总线
的带宽。

在示例7中,权利要求1的主题可以包括:与所述多个通道中的其他通道相比,所述
多个通道中的至少一个通道耦合到不同数量的NAND芯片。

在示例8中,权利要求1的主题可以包括:如果未将所述一个或多个读取请求放置
在所确定的轻加载通道中以用于处理,那么在所述固态驱动器上的读取性能与其中所有通
道耦合到相同数量的NAND芯片的另一固态驱动器相比降低超过10%。

在示例9中,权利要求1的主题可以包括:在由所述固态驱动器中的仲裁器确定所
述固态驱动器中的所述多个通道中的哪个是所述轻加载通道之后,执行用于处理的所述资
源的分配。

在示例10中,权利要求1的主题可以包括?#21512;?#27604;于相对重加载的通道所述仲裁器更
经常地轮询相对轻加载的通道,以将重新排序的读取请求优先地分派到所述相对轻加载的
通道。

在示例11中,权利要求1的主题可以包括:将所述多个通道中的每一个通道与保持
由所述通道正在处理的未完成读取的数据结构相关联;以及将已经从所述主机接收的所述
一个或多个读取请求保持在从所述主机接收的读取请求的传入队列中。

示例12是一种装置,包括多个?#19988;资?#24615;存储器芯片、耦合到所述多个?#19988;资?#24615;存
储器芯片的多个通道以及用于控制所述多个通道的仲裁器,其中所述仲裁器可操作用于:
确定所述多个通道中的哪个与其他通道相比是轻加载通道;分配用于处理意?#21152;?#20110;所确定
的轻加载通道的一个或多个读取请求的资源,其中已经从主机接收所述一个或多个读取请
求;以及将所述一个或多个读取请求放置在所确定的轻加载通道中以用于处理。

在示例13中,权利要求12的主题可以包括:所述?#19988;资?#24615;存储器芯片包括NAND芯
片,其中所确定的轻加载通道是所述多个通道中的最轻加载通道,其中,在将所述一个或多
个读取请求放置在所确定的最轻加载通道中以用于处理之后,所确定的最轻加载通道在处
理期间尽可能接近被完全利用。

在示例14中,权利要求12的主题可以包括:将所述一个或多个读取请求包括在意
?#21152;?#20110;所述多个通道的多个读取请求中,其中,通过将所述一个或多个读取请求放置在所
确定的轻加载通道中以用于处理来修改所述多个读取请求的处理的顺序。

在示例15中,权利要求14的主题可以包括:修改所述多个请求的处理的顺序相对
于其他请求优先地处理意?#21152;?#20110;所确定的轻加载通道的一个或多个读取请求。

在示例16中,权利要求12的主题可以包括:所述装置经由外围部件互连高速
(PCIe)总线从所述主机接收所述一个或多个读取请求,其中,所述装置中的多个通道中的
每一个具有相同的带宽。

在示例17中,权利要求16的主题可以包括:所述多个通道的带宽的和等于所述
PCIe总线的带宽。

在示例18中,权利要求12的主题可以包括:所述?#19988;资?#24615;存储器芯片包括NAND芯
片,其中与多个通道中的其他通道相比,所述多个通道中的至少一个耦合到不同数量的
NAND芯片。

在示例19中,权利要求12的主题可以包括可以包括:所述?#19988;资?#24615;存储器芯片包
括NAND芯片,其中如果未将一个或多个读取请求放置在所确定的轻加载通道中以用于处
理,那么所述装置上的读取性能与其中所有通道耦合到相同数量的NAND芯片的另一装置相
比降低超过10%。

在示例20中,权利要求12的主题可以包括:在由装置中的仲裁器确定装置中的所
述多个通道中的哪个是所述轻加载通道之后,执行用于处理的所述资源的分配。

在示例21中,权利要求12的主题可以包括?#21512;?#27604;于相对重加载的通道,所述仲裁器
更经常地轮询相对轻加载的通道,以将重新排序的读取请求优先地分派到所述相对轻加载
的通道。

在示例22中,权利要求12的主题可以包括:将所述多个通道中的每一个与保持由
所述通道正在处理的未完成读取的数据结构相关联;以及将已经从所述主机接收的所述一
个或多个读取请求保持在从所述主机接收的读取请求的传入队列中。

示例23是一种?#20302;常?#21253;括固态驱动器、显示器和耦合到所述固态驱动器和所述显
示器的处理器,其中所述处理器向所述固态驱动器发送多个读取请求,并且其中响应于所
述多个读取请求,所述固态驱动器执行操作,所述操作包括:确定所述固态驱动器中的多个
通道中的哪个与所述固态驱动器中的其他通道相比是轻加载通道;分配用于处理从所述多
个读取请求中选择的一个或多个读取请求的资源,其中所述一个或多个读取请求意?#21152;?#20110;
所确定的轻加载通道;将所述一个或多个读取请求放置在所确定的轻加载通道中以用于处
理。

在示例24中,权利要求23的主题还包括:所述固态驱动器还包括多个?#19988;资?#24615;存
储器芯片,所述多个?#19988;资?#24615;存储器芯片包括NAND或NOR芯片,其中所述轻加载通道是所述
多个通道中的最轻加载通道,并且其中在将所述一个或多个读取请求放置在所确定的最轻
加载通道中以用于处理之后,所确定的最轻加载通道在处理期间尽可能接近被完全利用。

在示例25中,权利要求23的主题还包括:通过将所述一个或多个读取请求放置在
所确定的轻加载通道中以用于处理来修改所述多个请求的处理的顺序。

关于本文
本文标题:固态驱动器中不均匀通道加载的性能影响的降低.pdf
链接地址:http://www.pqiex.tw/p-6091797.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 2013年好股票推荐 炒股网上开户 股票配资 牛市快讯每天推送j1 8月份上证指数 股票融资利息 网易模拟炒股大赛 股票行情 牛市快讯每天推送 创业板股票指数 模拟炒股 万科股票分析报告