CN116755873A - 主机、存储装置以及主机和存储装置的数据处理方法 - Google Patents
主机、存储装置以及主机和存储装置的数据处理方法 Download PDFInfo
- Publication number
- CN116755873A CN116755873A CN202310526498.4A CN202310526498A CN116755873A CN 116755873 A CN116755873 A CN 116755873A CN 202310526498 A CN202310526498 A CN 202310526498A CN 116755873 A CN116755873 A CN 116755873A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data
- filtering
- scan
- host
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 230000004044 response Effects 0.000 claims abstract description 82
- 229920006395 saturated elastomer Polymers 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000001914 filtration Methods 0.000 claims description 151
- 238000005070 sampling Methods 0.000 claims description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 8
- 230000015654 memory Effects 0.000 description 179
- 238000000034 method Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 12
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241001250090 Capra ibex Species 0.000 description 1
- 101150104728 GPR88 gene Proteins 0.000 description 1
- 102100038404 Probable G-protein coupled receptor 88 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Abstract
公开了主机、存储装置以及主机和存储装置的数据处理方法。存储装置的数据处理方法包括:从主机接收涉及扫描过滤任务的查询请求;针对扫描过滤任务,确定存储装置内的计算资源是否饱和;响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作;响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据;将处理数据发送到主机。因此,本发明提出的基于采样过滤的主机‑存储装置协同处理扫描过滤的方案可有效的减少主机的处理器工作负载,提升数据库查询效率,提高数据库性能,并且近数据处理和智能/计算存储装置可以减少不必要的数据移动,并加快数据处理速度。
Description
技术领域
本发明涉及数据处理,更具体地讲,涉及主机、存储装置以及主机和存储装置的数据处理方法。
背景技术
通常,结构化查询语言(SQL)查询请求在主机的处理器中被执行。首先,数据从存储装置被读取到主机的存储器中,然后,数据在主机的处理器中被计算,最后,数据被返回到存储装置。因此,SQL查询处理产生大量的数据移动,消耗带宽资源,并且随着数据量的不断增加,主机的处理器会过度负载,成为数据查询处理中的计算瓶颈。
为了解决该计算瓶颈,现有技术中主要存在两种解决方案。一种解决方案是使用附加的计算单元来卸载SQL查询中的扫描过滤功能。然而,这种解决方案依然存在大量的数据移动,导致带宽瓶颈和数据传输延迟,附加的计算单元占用主机存储器资源,不能线性扩展,并且无法充分利用存储装置的高速带宽。另一种解决方案是计算型存储卸载数据库扫描过滤方案,但是,目前的存储装置的计算能力比较弱,可能导致造成计算堵塞。
发明内容
本发明的目的在于提供使用基于采样过滤的主机-存储装置协同处理扫描过滤的方案的主机、存储装置以及主机和存储装置的数据处理方法。
根据本发明构思的一个实施例,一种存储装置的数据处理方法包括:从主机接收涉及扫描过滤任务的查询请求;针对扫描过滤任务,确定存储装置内的计算资源是否饱和;响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作;响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据;将处理数据发送到主机。
可选地,针对扫描过滤任务,确定存储装置内的计算资源是否饱和的步骤包括:针对扫描过滤任务,检测存储装置内的扫描队列是否已满;响应于扫描队列已满,确定存储装置内的计算资源饱和;响应于扫描队列未满,确定存储装置内的计算资源未饱和。
可选地,针对扫描过滤任务,确定存储装置内的计算资源是否饱和的步骤包括:针对扫描过滤任务,检测存储装置内的计算资源的使用率是否大于预定阈值;响应于存储装置内的计算资源的使用率大于或等于预定阈值,确定存储装置内的计算资源饱和;响应于存储装置内的计算资源的使用率小于预定阈值,确定存储装置内的计算资源未饱和。
可选地,响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作的步骤包括:从存储装置随机采样多条采样数据;使用过滤算法对所述多条采样数据执行过滤,以获得多条过滤数据;根据所述多条过滤数据的数量与所述多条采样数据的数量的比率,确定过滤率;响应于过滤率大于或等于预定阈值,确定存储装置不需要执行扫描过滤操作;响应于过滤率小于预定阈值,确定存储装置需要执行扫描过滤操作。
可选地,查询请求包括涉及第一扫描过滤任务的第一查询请求,其中,响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作的步骤包括:将第一扫描过滤任务放入存储装置内的扫描队列,并且使用存储装置内的计算资源对与第一扫描过滤任务对应的第一原始数据执行第一扫描操作,以获得第一扫描数据;在完成第一扫描操作之后,将第一扫描数据放入过滤队列,并且使用存储装置内的计算资源对第一扫描数据执行第一过滤操作,以获得第一过滤数据;在完成第一过滤操作之后,将第一过滤数据放入结果队列,以获得第一处理数据。
可选地,查询请求还包括涉及第二扫描过滤任务的第二查询请求,其中,响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作的步骤包括:在完成第一扫描操作之后,将第二扫描过滤任务放入存储装置内的扫描队列,并且使用存储装置内的计算资源对与第二扫描过滤任务对应的第二原始数据执行第二扫描操作,以获得第二扫描数据;在完成第二扫描操作之后,将第二扫描数据放入过滤队列,并且使用存储装置内的计算资源对第二扫描数据执行第二过滤操作,以获得第二过滤数据;在完成第二过滤操作之后,将第二过滤数据放入结果队列,以获得第二处理数据。
可选地,将处理后的数据发送到主机的步骤包括:将结果队列中的第一处理数据发送到主机。
可选地,所述数据处理方法还包括:响应于确定存储装置内的计算资源饱和,将存储装置内的原始数据发送到主机。
可选地,所述数据处理方法还包括:响应于确定存储装置不需要执行扫描过滤操作,将存储装置内的原始数据发送到主机。
根据本发明构思的一个实施例,一种存储装置包括:接收器,被配置为从主机接收涉及扫描过滤任务的查询请求;确定器,被配置为:针对扫描过滤任务,确定存储装置内的计算资源是否饱和;采样评估器,被配置为:响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作;计算资源,被配置为:响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据;发送器,被配置为将处理数据发送到主机。
可选地,确定器被配置为:针对扫描过滤任务,检测存储装置内的扫描队列是否已满;响应于扫描队列已满,确定存储装置内的计算资源饱和;响应于扫描队列未满,确定存储装置内的计算资源未饱和。
可选地,确定器被配置为:针对扫描过滤任务,检测存储装置内的计算资源的使用率是否大于预定阈值;响应于存储装置内的计算资源的使用率大于或等于预定阈值,确定存储装置内的计算资源饱和;响应于存储装置内的计算资源的使用率小于预定阈值,确定存储装置内的计算资源未饱和。
可选地,采样评估器被配置为:从存储装置随机采样多条采样数据;使用过滤算法对所述多条采样数据执行过滤,以获得多条过滤数据;根据所述多条过滤数据的数量与所述多条采样数据的数量的比率,确定过滤率;响应于过滤率大于或等于预定阈值,确定存储装置不需要执行扫描过滤操作;响应于过滤率小于预定阈值,确定存储装置需要执行扫描过滤操作。
可选地,查询请求包括涉及第一扫描过滤任务的第一查询请求,其中,计算资源被配置为:将第一扫描过滤任务放入存储装置内的扫描队列,并且对与第一扫描过滤任务对应的第一原始数据执行第一扫描操作,以获得第一扫描数据;在完成第一扫描操作之后,将第一扫描数据放入过滤队列,并且对第一扫描数据执行第一过滤操作,以获得第一过滤数据;在完成第一过滤操作之后,将第一过滤数据放入结果队列,以获得第一处理数据。
可选地,查询请求还包括涉及第二扫描过滤任务的第二查询请求,其中,计算资源还被配置为:在完成第一扫描操作之后,将第二扫描过滤任务放入存储装置内的扫描队列,并且对与第二扫描过滤任务对应的第二原始数据执行第二扫描操作,以获得第二扫描数据;在完成第二扫描操作之后,将第二扫描数据放入过滤队列,并且对第二扫描数据执行第二过滤操作,以获得第二过滤数据;在完成第二过滤操作之后,将第二过滤数据放入结果队列,以获得第二处理数据。
可选地,发送器被配置为:将结果队列中的第一处理数据发送到主机。
可选地,发送器还被配置为:响应于确定存储装置内的计算资源饱和,将存储装置内的原始数据发送到主机。
可选地,发送器还被配置为:响应于确定存储装置不需要执行扫描过滤操作,将存储装置内的原始数据发送到主机。
根据本发明构思的一个实施例,一种主机的数据处理方法包括:将查询请求发送到存储装置,查询请求包括多个任务,所述多个任务包括扫描过滤任务;从存储装置接收与查询请求对应的数据;确定所述数据是原始数据还是扫描过滤后的数据;响应于确定所述数据是扫描过滤后的数据,对所述数据执行所述多个任务之中的除了扫描过滤任务之外的剩余任务;响应于确定所述数据是原始数据,对所述数据执行扫描过滤任务,并对执行了扫描过滤任务的数据执行所述剩余任务。
可选地,将查询请求发送到存储装置的步骤包括:将查询请求的格式转换为存储装置能够识别的格式;将转换了格式的查询请求发送到存储装置。
可选地,确定所述数据是原始数据还是扫描过滤后的数据的步骤包括:根据所述数据的标识位来确定所述数据是原始数据还是扫描过滤后的数据。
根据本发明构思的一个实施例,一种主机包括:发送器,被配置为将查询请求发送到存储装置,查询请求包括多个任务,所述多个任务包括扫描过滤任务;接收器,被配置为:从存储装置接收与查询请求对应的数据,确定所述数据是原始数据还是扫描过滤后的数据,响应于确定所述数据是原始数据,将所述数据发送到扫描过滤单元,并且响应于确定所述数据是扫描过滤后的数据,将所述数据发送到计算单元;计算单元,被配置为:对所述数据执行所述多个任务之中的除了扫描过滤任务之外的剩余任务;扫描过滤单元,被配置为:对所述数据执行扫描过滤任务,并将执行了扫描过滤任务的数据发送到计算单元,以对执行了扫描过滤任务的数据执行所述剩余任务。
可选地,发送器被配置为:将查询请求的格式转换为存储装置能够识别的格式;将转换了格式的查询请求发送到存储装置。
可选地,接收器被配置为:根据所述数据的标识位来确定所述数据是原始数据还是扫描过滤后的数据。
根据本发明构思的一个实施例,一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序在被处理器执行时,实现如上所述的存储装置的数据处理方法或者如上所述的主机的数据处理方法。
根据本发明构思的一个实施例,一种电子系统包括:处理器;存储器,存储有计算机程序,所述计算机程序在被处理器执行时,实现如上所述的存储装置的数据处理方法或者如上所述的主机的数据处理方法。
根据本发明构思的一个实施例,一种存储系统包括:存储装置,包括计算资源;以及存储器控制器,被配置为根据如上所述的存储装置的数据处理方法来控制所述存储装置。
根据本发明构思的一个实施例,一种存储系统包括:存储器装置,包括计算资源;以及存储器控制器,通过通道与存储器装置通信,并且被配置为根据如上所述的存储装置的数据处理方法来控制所述存储器装置。
根据本发明构思的一个实施例,一种主机存储系统包括:主机;存储装置,包括计算资源,其中,所述存储装置被配置为根据如上所述的存储装置的数据处理方法来访问所述主机,所述主机被配置为根据如上所述的主机的数据处理方法来访问所述存储装置。
根据本发明构思的一个实施例,一种数据中心包括:应用服务器;存储服务器,包括计算资源,其中,所述存储服务器被配置为根据如上所述的存储装置的数据处理方法来访问所述应用服务器,所述应用服务器被配置为根据如上所述的主机的数据处理方法来访问所述存储服务器。
因此,本发明提出的基于采样过滤的主机-存储装置协同处理扫描过滤的方案可有效的减少主机的处理器的工作负载,提升数据库查询效率,提高数据库性能,并且近数据处理和智能/计算存储装置可以减少不必要的数据移动,并加快数据处理速度。
附图说明
通过下面结合附图进行的详细描述,本公开的以上和/或其他方面将变得清楚和更容易理解。
图1是示出根据本发明的实施例的存储装置的数据处理方法的流程图。
图2是示出典型的查询序列的示例的示图。
图3是示出在主机与存储装置之间执行查询运算的传统示例的示图。
图4是示出使用FPGA卸载扫描过滤功能的示例的示图。
图5是示出使用FPGA卸载扫描过滤功能的示例的示图。
图6是示出计算型存储卸载数据库扫描过滤方案的示例的示图。
图7是示出根据本发明的实施例的确定存储装置内的计算资源是否饱和的流程图。
图8是示出根据本发明的实施例的确定存储装置内的计算资源是否饱和的流程图。
图9是示出根据本发明的实施例的确定存储装置是否需要执行扫描过滤操作的流程图。
图10是示出根据本发明的实施例的采样过滤操作的示例的示图。
图11是示出根据本发明的实施例的对存储装置内的原始数据执行扫描过滤操作的流程图。
图12是示出根据本发明的实施例的对存储装置内的原始数据执行扫描过滤操作的流程图。
图13是示出根据本发明的实施例的使用流水线的方式来加速计算的示例的示图。
图14是示出根据本发明的实施例的存储装置的框图。
图15是示出根据本发明的实施例的主机的数据处理方法的流程图。
图16是示出根据本发明的实施例的主机的框图。
图17为根据一实施例的应用了存储装置的系统的示意图。
图18为根据本发明的一实施例的存储系统的框图。
图19为根据本发明的一实施例的存储系统的框图。
图20为根据示例性实施例的主机存储系统的框图。
图21为根据本发明的一实施例的应用了存储装置的数据中心的框图。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不受限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本申请的公开之后将是清楚地那样被改变。此外,为了增加的清楚和简明,可省略在理解本申请的公开之后已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不应被解释为受限于在此描述的示例。相反,已提供在此描述的示例,以仅示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
贯穿说明书,当组件被描述为“连接到”或“结合到”另一组件时,所述组件可直接“连接到”或“结合到”所述另一组件,或者可存在一个或多个介于它们之间的其他组件。相反,当元件被描述为“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。同样地,相似的表述(例如,“在……之间”与“紧接在……之间”以及“与……邻近”与“与……紧邻”)也应以相同的方式来解释。如在此使用的,术语“和/或”包括相关所列项中的任意一个或相关所列项中的任意两个或更多个的任意组合。
尽管诸如“第一”、“第二”和“第三”的术语在此可用于描述各种构件、组件、区域、层或者部分,但是这些构件、组件、区域、层或者部分不受这些术语所限制。相反,这些术语仅用于将一个构件、组件、区域、层或者部分与另一构件、组件、区域、层或者部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或者第一部分也可被称为第二构件、第二组件、第二区域、第二层或者第二部分。
在此使用的术语仅用于描述各种示例,并将不用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包含”、“包括”和“具有”说明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与基于本申请的公开的理解和本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如在通用词典中定义的术语)应被解释为具有与它们在相关领域的上下文和本申请的公开中的含义一致的含义,并且不应被理想化或过于形式化地解释。在此关于示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,而所有示例不限于此。
下面将参照附图详细描述本公开的实施例。
图1是示出根据本发明的实施例的存储装置的数据处理方法的流程图。图2是示出典型的查询序列的示例的示图。图3是示出在主机与存储装置之间执行查询运算的传统示例的示图。图4是示出使用FPGA卸载扫描过滤功能的示例的示图。图5是示出使用FPGA卸载扫描过滤功能的示例的示图。图6是示出计算型存储卸载数据库扫描过滤方案的示例的示图。
参照图1,在步骤S100中,从主机接收涉及扫描过滤任务的查询请求。
在一个示例中,查询请求可以是结构化查询语言(SQL)查询请求(在下文中,又称为SQL查询计划)。SQL查询计划由基本构建块(在下文中,简称为构建块)组成。这些构建块形成一个执行树。每个构建块通常专注于一个特定的操作,并由SQL引擎调度。这些构建块的组装方式决定了查询性能。主要的构建块包括:扫描、过滤(或筛选)、项目、聚合、排序、连接、合并、联合等。图2示出了一个典型的查询序列,从上到下执行构建块。如图3所示,在传统情况下,查询请求中涉及的计算在主机的处理器(例如,中央处理器(CPU))中被执行。例如,在数据查询处理期间,首先,数据从存储装置(例如,存储装置中的固定驱动器(SSD))被读取到主机的存储器(例如,动态随机存取存储器(DRAM))中,然后,数据在主机的处理器中被计算,最后,计算完成后的数据被返回到存储装置(例如,存储装置中的SSD)中。因此,该数据查询处理可产生大量的数据移动,消耗带宽资源。此外,随着数据量的不断增加,主机的处理器会过度负载,成为数据查询处理中的计算瓶颈。为了解决该计算瓶颈,现有技术中主要存在两种解决方案。
如图4和图5所示,第一种解决方案是使用附加的计算单元来卸载SQL查询中的扫描过滤功能。SQL查询涉及复杂的处理,该处理包括查询解析、查询计划生成/优化、以及实际的数据检索,并且涉及到数据库管理系统的不同的多个组件。在这些任务中,大多数任务需要通用中央处理器进行灵活处理,但是扫描、过滤和聚合等操作可以通过使用附加的计算单元(例如,现场可编程门阵列(FPGA))来执行,从而有效地提高吞吐率。
FPGA可用于提高性能,同时降低能耗,以便加速数据密集型应用。由于FPGA可以用相对较低的开发成本来构建定制硬件,因此利用FPGA的资源可被利用,以构建用于加速不同的数据库系统的加速器。目前,基于FPGA的加速优化方案已被应用于许多数据处理任务中,例如,Ibex使用FPGA在数据库管理系统的数据路径中实现靠近存储介质的硬件加速器,支持复杂查询操作符的卸载。然而,使用附加的计算单元来卸载SQL查询中的扫描过滤功能存在如下缺点:
第一,使用FPGA卸载扫描过滤,依然存在大量的数据移动,导致带宽瓶颈和数据传输延迟。具体地讲,在使用FPGA卸载扫描过滤的处理期间,首先,数据需要从存储装置被读取到存储器中,然后,数据被传输到FPGA中并在FPGA中被处理,最后,处理后的数据返回到主机的处理器。该处理会产生大量的数据移动操作。鉴于当前数据库中的数据量的不断增加,数据的大量传输很快会因为主机输入输出(IO)接口的带宽的限制导致新的瓶颈,数据链路的拓展也增加了数据传输延迟。
第二,FPGA占用主机内存资源,不能线性扩展。FPGA卡自带计算引擎,能减轻主机的处理器负载,在不少场景里很适合。但是,FPGA卡会占用一个外围组件互连快速(PCIe)插槽,并且数据读写传输会占用存储器资源,数据链路也变长。此外,同样受限于FPGA卡的算力和带宽,FPGA无法线性扩展。
第三,FPGA将成为一个新的计算热点,而且无法充分利用SSD的高速带宽。具体地讲,随着计算功能的卸载,FPGA将成为新的计算热点,导致新的计算瓶颈。大量的数据都是通过主机IO接口和存储装置之间的带宽传输的,然而SSD内部的带宽是非常大的,没有被充分利用。
如图6所示,第二种解决方案是计算型存储卸载数据库扫描过滤方案。在现有的计算机系统设计中,数据存储在存储装置中,数据从存储装置读取到主机的处理器并进行处理,然后结果被再写入到存储装置。随着数据量的激增,这种持续的数据移动导致了数据移动墙,数据移动墙阻碍了数据处理系统设计中的进一步处理和优化。这种架构的一个有前途的替代方案是将计算推送到数据中,并因此设计了计算存储装置(CSD)和CSD应用框架。
很多研究机构提出了基于存内计算(In-storage Computing,简称ISC)的解决方案,整体思路如图6所示。利用ISC技术将复杂的查询操作卸载到SSD中。使用ISC处理和过滤数据,将过滤后的数据返回主机端,可以减少数据的移动。
然而,目前的计算型存储方案没有考虑到近存储端装置的计算能力,会造成计算堵塞。具体地讲,近存储计算方案把所有的扫描过滤任务全部放到近存储端计算。但是,目前的存储装置的计算能力比较弱,而数据库执行运算处理中的扫描过滤任务占比很大。当存储装置的计算能力不足时会造成大量的执行语句处于等待阶段,会降低数据系统的性能。
因此,返回参照图1,为了解决以上问题,根据本发明的实施例,存储装置可以是具有ISC能力的存储装置(在下文中,简称为存储装置),并且存储装置可从主机接收涉及扫描过滤任务的查询请求。
在步骤S200中,针对扫描过滤任务,确定存储装置内的计算资源是否饱和。
在一个示例中,存储装置可根据预定标准来确定存储装置内的计算资源是否饱和。也就是说,根据本发明的实施例,在接收到查询命令之后,存储装置不是直接执行扫描过滤任务以卸载SQL查询中的扫描过滤功能而不管存储装置自身的计算资源如何,而是首先确定存储装置内的计算资源是否饱和,以便通过选择性地执行扫描过滤任务来选择性地卸载SQL查询中的扫描过滤功能,从而高效地利用计算资源。在下文中,将参照图7和图8详细描述步骤S200。
在步骤S300中,响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作。
在一个示例中,存储装置可响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作。此外,在一个示例中,存储装置可响应于确定存储装置内的计算资源饱和,将存储装置内的原始数据发送到主机。也就是说,根据本发明的实施例,在接收到查询命令之后,存储装置可首先判断存储装置自身是否具有执行扫描查询任务的足够的计算资源并且在不具有足够的计算资源的情况下将原始数据直接发送到主机,以避免由于大量的执行语句在存储装置中处于等待阶段而降低数据系统的性能。在下文中,将参照图9和图10详细描述步骤S300。
在步骤S400中,响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据。
在一个示例中,存储装置可响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作。此外,在一个示例中,存储装置可响应于确定存储装置不需要执行扫描过滤操作,将存储装置内的原始数据发送到主机。也就是说,根据本发明的实施例,存储装置可在接收到查询命令之后,首先判断存储装置自身是否具有执行扫描查询任务的足够的计算资源,在具有足够的计算资源的情况下进一步判断存储装置是否需要执行扫描过滤操作,并且只有在同时满足以上两个条件时才针对原始数据执行扫描过滤处理。因此,通过以上两个条件,存储装置的有限的计算资源可被高效地利用。在下文中,将参照图11至图13详细描述步骤S400。
在步骤S500中,将处理数据发送到主机。
通过上述步骤,可实现主机的处理器与存储装置的计算资源协同处理查询请求中的扫描过滤任务,使得存储装置的扫描过滤能力强的优势被充分利用,减少了大量的数据移动处理,同时在存储装置出现计算瓶颈时使用主机的处理器来进行扫描过滤,防止查询任务出现长时等待。因此,主机的处理器和存储装置的有限的计算资源可被高效地利用,并且避免了由于主机的处理器的过度负载导致的计算瓶颈以及由于大量的执行语句在存储装置中处于等待阶段而降低数据系统的性能。
图7是示出根据本发明的实施例的确定存储装置内的计算资源是否饱和的流程图。
参照图7,在步骤S211中,针对扫描过滤任务,检测存储装置内的扫描队列是否已满。在步骤S212中,响应于扫描队列已满,确定存储装置内的计算资源饱和。在步骤S213中,响应于扫描队列未满,确定存储装置内的计算资源未饱和。因此,在图7的实施例中,存储装置可通过检测存储装置内的扫描队列来确定存储装置内的计算资源是否饱和。
图8是示出根据本发明的实施例的确定存储装置内的计算资源是否饱和的流程图。
参照图8,在步骤S221中,针对扫描过滤任务,检测存储装置内的计算资源的使用率是否大于预定阈值。在步骤S222中,响应于存储装置内的计算资源的使用率大于或等于预定阈值,确定存储装置内的计算资源饱和。在步骤S223中,响应于存储装置内的计算资源的使用率小于预定阈值,确定存储装置内的计算资源未饱和。因此,在图8的实施例中,存储装置可通过检测存储装置内的计算资源的使用率来确定存储装置内的计算资源是否饱和。
图9是示出根据本发明的实施例的确定存储装置是否需要执行扫描过滤操作的流程图。图10是示出根据本发明的实施例的采样过滤操作的示例的示图。
参照图9,在步骤S310中,从存储装置随机采样多条采样数据。在步骤S320中,使用过滤算法对所述多条采样数据执行过滤,以获得多条过滤数据。在步骤S330中,根据所述多条过滤数据的数量与所述多条采样数据的数量的比率,确定过滤率。在步骤S340中,响应于过滤率大于或等于预定阈值,确定存储装置不需要执行扫描过滤操作。在步骤S350中,响应于过滤率小于预定阈值,确定存储装置需要执行扫描过滤操作。
例如,在一个示例中,存储装置可从随机采样数据表中的n条采样数据。然后,存储装置可使用过滤算法对所述多条采样数据执行过滤,以获得m条剩余数据(即,过滤数据)。在这种情况下,过滤率可被表示为m/n。m/n的值越大表示过滤后的剩余数据的数量越多,表示过滤后的剩余数据和过滤前的原始数据的数量差别不大,查询任务需要过滤的需求低;反之,m/n的值越小表示过滤后的剩余数据的数量越小,表示过滤后的剩余数据会极大的降低数据的移动量,查询任务需要过滤的需求高。因此,结合图1,针对过滤率大的任务,存储装置可直接读取原始数据返回给主机,而针对过滤率小的任务,存储装置可将该任务添加到扫描队列以进行下一步操作。
图10示出图9的采样过滤操作的一个示例。例如,存储装置可从数据表中随机采样5条数据作为采样表。针对查询1,存储装置可从采样表中过滤并列出性别为男的数据的姓信息和年龄信息,从而计算出针对查询1的过滤率为0.8,并且可以确定查询1需要过滤的需求低。此外,针对查询2,存储装置可从采样表中过滤并列出年龄为30的数据的姓信息和年龄信息,从而计算出针对查询2的过滤率为0.2,并且可以确定查询2需要过滤的需求高。此外,虽然图10针对不同的查询使用了相同的采样表,但是本发明不限于此。例如,可针对每个查询分别从数据表中随机采样不同的多条数据作为不同的采样表。
图11是示出根据本发明的实施例的对存储装置内的原始数据执行扫描过滤操作的流程图。图12是示出根据本发明的实施例的对存储装置内的原始数据执行扫描过滤操作的流程图。图13是示出根据本发明的实施例的使用流水线的方式来加速计算的示例的示图。在下文中,将在查询请求包括涉及第一扫描过滤任务的第一查询请求的假设下进行描述。
参照图11,在步骤S410中,将第一扫描过滤任务放入存储装置内的扫描队列,并且使用存储装置内的计算资源对与第一扫描过滤任务对应的第一原始数据执行第一扫描操作,以获得第一扫描数据。在步骤S420中,在完成第一扫描操作之后,将第一扫描数据放入过滤队列,并且使用存储装置内的计算资源对第一扫描数据执行第一过滤操作,以获得第一过滤数据。在步骤S430中,在完成第一过滤操作之后,将第一过滤数据放入结果队列,以获得第一处理数据。
根据本发明的实施例,存储装置可将扫描过滤任务分解为扫描任务、过滤任务和返回任务,其中,扫描任务可用于对数据执行扫描操作,过滤任务可用于对扫描的数据执行过滤操作,返回任务可用于对过滤的数据执行返回操作。相应地,存储装置可包括分别用于处理扫描任务、过滤任务和返回任务的扫描队列、过滤队列和返回队列。扫描任务可被放入扫描队列以用于执行扫描操作,扫描的数据可被放入过滤队列以用于执行过滤操作,过滤的数据可被放入返回队列以用于执行返回操作。例如,在一个示例中,存储装置可将结果队列中的第一处理数据发送到主机。由于存储装置包括扫描队列、过滤队列和返回队列,因此存储装置的计算资源可以以流水线的方式来针对查询任务执行扫描过滤操作,从而可以加速计算。
根据本发明的实施例,参照图12,在查询请求还包括涉及第二扫描过滤任务的第二查询请求的假设下,在步骤S440中,在完成第一扫描操作之后,将第二扫描过滤任务放入存储装置内的扫描队列,并且使用存储装置内的计算资源对与第二扫描过滤任务对应的第二原始数据执行第二扫描操作,以获得第二扫描数据。在步骤S450中,在完成第二扫描操作之后,将第二扫描数据放入过滤队列,并且使用存储装置内的计算资源对第二扫描数据执行第二过滤操作,以获得第二过滤数据。在步骤S460中,在完成第二过滤操作之后,将第二过滤数据放入结果队列,以获得第二处理数据。
参照图13,针对每个查询请求的计算用流水线的方式被加速。例如,存储装置的计算资源可执行针对第一查询请求的扫描操作。存储装置的计算资源可同时执行针对第一查询请求的过滤操作和针对第二查询请求的扫描操作。例如,存储装置的计算资源可同时执行针对第一查询请求的返回操作、针对第二查询请求的过滤操作、和针对第三查询请求的扫描操作。例如,存储装置的计算资源可同时执行针对第二查询请求的返回操作、针对第三查询请求的过滤操作、和针对第四查询请求的扫描操作。例如,存储装置的计算资源可同时执行针对第三查询请求的返回操作和针对第四查询请求的过滤操作。例如,存储装置的计算资源可执行针对第四查询请求的返回操作。假设存储装置的计算资源执行每个操作的时间均为Δt,并且假设查询请求的数量为k,则完成一个查询请求所涉及的扫描查询任务的时间为3Δt,完成k个查询请求所涉及的扫描查询任务的时间为(k+2)Δt,加速率为:
因此,计算可被加速。
图14是示出根据本发明的实施例的存储装置的框图。
参照图14,存储装置100包括接收器110、确定器120、采样评估器130、计算资源140和发送器150。
存储装置100可以是具有ISC能力的存储装置。
接收器110可被配置为从主机接收涉及扫描过滤任务的查询请求。在一个示例中,查询请求可以是SQL查询请求。
确定器120可被配置为:针对扫描过滤任务,确定存储装置内的计算资源是否饱和。
在一个示例中,确定器120可根据预定标准来确定存储装置内的计算资源是否饱和。也就是说,根据本发明的实施例,在接收到查询命令之后,存储装置100不是直接执行扫描过滤任务以卸载SQL查询中的扫描过滤功能而不管存储装置自身的计算资源如何,而是首先通过确定器120确定存储装置100内的计算资源是否饱和,以便通过选择性地执行扫描过滤任务来选择性地卸载SQL查询中的扫描过滤功能,从而高效地利用计算资源。
例如,在一个示例中,确定器120可被配置为:针对扫描过滤任务,检测存储装置内的扫描队列是否已满;响应于扫描队列已满,确定存储装置内的计算资源饱和;响应于扫描队列未满,确定存储装置内的计算资源未饱和。因此,在该示例中,确定器120可通过检测存储装置内的扫描队列来确定存储装置内的计算资源是否饱和。
例如,在另一示例中,确定器120可被配置为:针对扫描过滤任务,检测存储装置内的计算资源的使用率是否大于或等于预定阈值;响应于存储装置内的计算资源的使用率大于或等于预定阈值,确定存储装置内的计算资源饱和;响应于存储装置内的计算资源的使用率小于预定阈值,确定存储装置内的计算资源未饱和。因此,在该示例中,确定器120可通过检测存储装置内的计算资源的使用率来确定存储装置内的计算资源是否饱和。
采样评估器130可被配置为:响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作。
在一个示例中,采样评估器130可响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作。此外,在一个示例中,存储装置100可响应于确定存储装置内的计算资源饱和,将存储装置内的原始数据发送到主机。也就是说,根据本发明的实施例,在接收到查询命令之后,采样评估器130可首先判断存储装置自身是否具有执行扫描查询任务的足够的计算资源并且在不具有足够的计算资源的情况下将原始数据直接发送到主机,以避免由于大量的执行语句在存储装置中处于等待阶段而降低数据系统的性能。
具体地讲,采样评估器130可被配置为:从存储装置随机采样多条采样数据;使用过滤算法对所述多条采样数据执行过滤,以获得多条过滤数据;根据所述多条过滤数据的数量与所述多条采样数据的数量的比率,确定过滤率;响应于过滤率大于或等于预定阈值,确定存储装置不需要执行扫描过滤操作;响应于过滤率小于预定阈值,确定存储装置需要执行扫描过滤操作。
例如,在一个示例中,采样评估器130可从随机采样数据表中的n条采样数据。然后,采样评估器130可使用过滤算法对所述多条采样数据执行过滤,以获得m条剩余数据(即,过滤数据)。在这种情况下,过滤率可被表示为m/n。m/n的值越大表示过滤后的剩余数据的数量越多,表示过滤后的剩余数据和过滤前的原始数据的数量差别不大,查询任务需要过滤的需求低;反之,m/n的值越小表示过滤后的剩余数据的数量越小,表示过滤后的剩余数据会极大的降低数据的移动量,查询任务需要过滤的需求高。因此,结合图1,针对过滤率大的任务,存储装置100可直接读取原始数据返回给主机,而针对过滤率小的任务,存储装置100将该任务添加到扫描队列以进行下一步操作。
计算资源140可被配置为:响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据。
在一个示例中,计算资源140可响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作。此外,在一个示例中,存储装置100可响应于确定存储装置不需要执行扫描过滤操作,将存储装置内的原始数据发送到主机。也就是说,根据本发明的实施例,存储装置100可在接收到查询命令之后,首先判断存储装置100自身是否具有执行扫描查询认为的足够的计算资源,在具有足够的计算资源的情况下进一步判断存储装置100是否需要执行扫描过滤操作,并且只有在同时满足以上两个条件时才针对原始数据执行扫描过滤处理。因此,通过以上两个条件,存储装置100的有限的计算资源可被高效地利用。
具体地讲,假设查询请求包括涉及第一扫描过滤任务的第一查询请求,计算资源140可被配置为:将第一扫描过滤任务放入存储装置内的扫描队列,并且对与第一扫描过滤任务对应的第一原始数据执行第一扫描操作,以获得第一扫描数据;在完成第一扫描操作之后,将第一扫描数据放入过滤队列,并且对第一扫描数据执行第一过滤操作,以获得第一过滤数据;在完成第一过滤操作之后,将第一过滤数据放入结果队列,以获得第一处理数据。
根据本发明的实施例,计算资源140可将扫描过滤任务分解为扫描任务、过滤任务和返回任务,其中,扫描任务可用于对数据执行扫描操作,过滤任务可用于对扫描的数据执行过滤操作,返回任务可用于对过滤的数据执行返回操作。相应地,存储装置100可包括分别用于处理扫描任务、过滤任务和返回任务的扫描队列、过滤队列和返回队列。扫描任务可被放入扫描队列以用于执行扫描操作,扫描的数据可被放入过滤队列以用于执行过滤操作,过滤的数据可被放入返回队列以用于执行返回操作。例如,在一个示例中,存储装置100可将结果队列中的第一处理数据发送到主机。由于存储装置100包括扫描队列、过滤队列和返回队列,因此存储装置100的计算资源140可以以流水线的方式来针对查询任务执行扫描过滤操作,从而可以加速计算。
假设查询请求还包括涉及第二扫描过滤任务的第二查询请求,计算资源140可被配置为:在完成第一扫描操作之后,将第二扫描过滤任务放入存储装置内的扫描队列,并且对与第二扫描过滤任务对应的第二原始数据执行第二扫描操作,以获得第二扫描数据;在完成第二扫描操作之后,将第二扫描数据放入过滤队列,并且对第二扫描数据执行第二过滤操作,以获得第二过滤数据;在完成第二过滤操作之后,将第二过滤数据放入结果队列,以获得第二处理数据。
发送器150可被配置为将处理数据发送到主机。
例如,如上所述,将第一过滤数据放入结果队列之后,发送器150可被配置为将结果队列中的第一处理数据发送到主机。类似地,将第二过滤数据放入结果队列之后,发送器150可被配置为将结果队列中的第二处理数据发送到主机。
此外,发送器150还可被配置为:响应于确定存储装置内的计算资源饱和,将存储装置内的原始数据发送到主机。此外,发送器还可被配置为:响应于确定存储装置不需要执行扫描过滤操作,将存储装置内的原始数据发送到主机。
通过上述处理,可实现主机的处理器与存储装置100的计算资源140协同处理查询请求中的扫描过滤任务,使得存储装置100的扫描过滤能力强的优势被充分利用,减少了大量的数据移动处理,同时在存储装置100出现计算瓶颈时使用CPU来进行扫描过滤,防止查询任务出现长时等待。因此,主机的CPU和存储装置100的有限的计算资源140可被高效地利用,并且避免了由于主机的CPU的过度负载导致的计算瓶颈以及由于大量的执行语句在存储装置100中处于等待阶段而降低数据系统的性能。
图15是示出根据本发明的实施例的主机的数据处理方法的流程图。
参照图15,在步骤S710中,将查询请求发送到存储装置,查询请求包括多个任务,所述多个任务包括扫描过滤任务。在一个示例中,将查询请求发送到存储装置的步骤可包括:将查询请求的格式转换为存储装置能够识别的格式;将转换了格式的查询请求发送到存储装置。
在步骤S720中,从存储装置接收与查询请求对应的数据。
在步骤S730中,确定所述数据是原始数据还是扫描过滤后的数据。在一个示例中,可根据所述数据的标识位来确定所述数据是原始数据还是扫描过滤后的数据。
在步骤S740中,响应于确定所述数据是扫描过滤后的数据,对所述数据执行所述多个任务之中的除了扫描过滤任务之外的剩余任务。在步骤S750中,响应于确定所述数据是原始数据,对所述数据执行扫描过滤任务,并对执行了扫描过滤任务的数据执行所述剩余任务。
通过上述步骤,可实现主机的处理器与存储装置的计算资源协同处理查询请求中的扫描过滤任务,使得存储装置的扫描过滤能力强的优势被充分利用,减少了大量的数据移动处理,同时在存储装置出现计算瓶颈时使用主机的处理器来进行扫描过滤,防止查询任务出现长时等待。因此,主机的处理器和存储装置的有限的计算资源可被高效地利用,并且避免了由于主机的处理器的过度负载导致的计算瓶颈以及由于大量的执行语句在存储装置中处于等待阶段而降低数据系统的性能。
图16是示出根据本发明的实施例的主机的框图。
参照图16,主机200包括发送器210、接收器220、计算单元230和扫描过滤单元240。
发送器210被配置为将查询请求发送到存储装置,查询请求包括多个任务,所述多个任务包括扫描过滤任务。在一个示例中,发送器210可被配置为:将查询请求的格式转换为存储装置能够识别的格式;将转换了格式的查询请求发送到存储装置。
接收器220被配置为:从存储装置接收与查询请求对应的数据,确定所述数据是原始数据还是扫描过滤后的数据,响应于确定所述数据是原始数据,将所述数据发送到扫描过滤单元,并且响应于确定所述数据是扫描过滤后的数据,将所述数据发送到计算单元。在一个示例中,接收器可被配置为:根据所述数据的标识位来确定所述数据是原始数据还是扫描过滤后的数据。
计算单元230被配置为:对所述数据执行所述多个任务之中的除了扫描过滤任务之外的剩余任务。扫描过滤单元240被配置为:对所述数据执行扫描过滤任务,并将执行了扫描过滤任务的数据发送到计算单元,以对执行了扫描过滤任务的数据执行所述剩余任务。此外,在一个示例中,计算单元230和扫描过滤单元240可由中央处理器实现。
通过上述处理,可实现主机200的处理器与存储装置100的计算资源140协同处理查询请求中的扫描过滤任务,使得存储装置100的扫描过滤能力强的优势被充分利用,减少了大量的数据移动处理,同时在存储装置100出现计算瓶颈时使用主机的处理器来进行扫描过滤,防止查询任务出现长时等待。因此,主机200的处理器和存储装置100的有限的计算资源140可被高效地利用,并且避免了由于主机200的CPU的过度负载导致的计算瓶颈以及由于大量的执行语句在存储装置100中处于等待阶段而降低数据系统的性能。
图17为根据一实施例的应用了存储装置的系统1000的示意图。图17的系统1000(例如,电子系统)基本上可以是移动系统,例如便携式通信终端(例如,移动电话)、智能手机、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置。但是,图7的系统1000不必限于移动系统,其可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图17,系统1000可以包括主处理器1100、存储器(例如,1200a和1200b)以及存储装置(例如,1300a和1300b)。并且,系统1000可以包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470以及连接接口1480中的至少一个。
在一些实施例中,存储器(例如,1200a和1200b)以及存储装置(例如,1300a和1300b)可对应于图14的存储装置100或对应于图16的主机200中的存储器和存储装置,主处理器1100可对应于图14的存储装置100中的计算资源或对应于图16的主机200中的处理器。例如,存储器(例如,1200a和1200b)以及存储装置(例如,1300a和1300b)可存储有计算机程序,所述计算机程序在被主处理器1100执行时,实现如图1、图7至图9、图11至图13中的至少一个描述的方法或者如图15描述的方法,来访问和控制存储器(例如,1200a和1200b)以及存储装置(例如,1300a和1300b)。
主处理器1100可以控制系统1000的所有操作,更具体地,可以控制系统1000中包括的其他组件的操作。主处理器1100可以被实现为通用处理器、专用处理器或应用程序处理器等。
主处理器1100可以包括至少一个中央处理器(CPU)核1110,并且还包括控制器1120,其用于控制存储器1200a和1200b和/或存储装置1300a和1300b。在一些实施例中,主处理器1100可以进一步包括加速器1130,其是用于诸如人工智能(AI)数据操作等的高速数据操作的专用电路。加速器1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU)等,并且被实现为与主处理器1100的其他组件物理上分离的芯片。
存储器1200a和1200b可以用作系统1000的主存储装置。尽管存储器1200a和1200b可以分别包括易失性存储器,例如静态随机存取存储器(SRAM)和/或动态随机存取存储器(DRAM)等,但是存储器1200a和1200b可以分别包括非易失性存储器,例如闪存、相变随机存取存储器(PRAM)和/或电阻式随机存取存储器(RRAM)等。存储器1200a和1200b可以在与主处理器1100相同的封装中实现。
存储装置1300a和1300b可以用作非易失性存储装置,其被配置为不管是否被供电都存储数据,并且具有比存储器1200a和1200b更大的存储容量。存储装置1300a和1300b可以分别包括存储器控制器(STRG CTRL)1310a和1310b以及非易失性存储器(NVM)1320a和1320b,其被配置为经由存储器控制器1310a和1310b的控制来存储数据。尽管NVM 1320a和1320b可以包括具有二维(2D)或三维(3D)结构的V-NAND闪存,但是NVM 1320a和1320b可以包括其他类型的NVM,例如PRAM和/或RRAM等。
存储装置1300a和1300b可以与主处理器1100物理上分离并且包括在系统1000中,或者可以在与主处理器1100相同的封装中实现。另外,存储装置1300a和1300b可以具有固态装置(SSDs)或存储卡的类型,并且可以通过诸如稍后将描述的连接接口1480之类的接口与系统100的其他组件可移除地结合。存储装置1300a和1300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或NVMe之类的标准协议的装置,但不限于此。
图像捕获装置1410可以拍摄静止图像或运动图像。图像捕获装置1410可以包括照相机、便携式摄像机和/或网络摄像头等。
用户输入装置1420可以接收由系统1000的用户输入的各种类型的数据,并且包括触摸板、键区、键盘、鼠标和麦克风等。
传感器1430可以检测可以从系统1000的外部获得的各种类型的物理量,并将所检测的物理量转换成电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器等。
通信装置1440可以根据各种通信协议在系统1000外部的其他装置之间发送和接收信号。通信装置1440可以包括天线、收发器或调制解调器等。
显示器1450和扬声器1460可以用作输出装置,其被配置为分别向系统1000的用户输出视觉信息和听觉信息。
供电装置1470可以适当地转换从嵌入在系统1000中的电池(未示出)和/或外部电源供应的电力,并且将所转换的电力供应给系统1000的每个组件。
连接接口1480可以提供系统1000和外部装置之间的连接,该外部装置连接到系统1000并且能够向系统1000发送数据和从系统1000接收数据。连接接口1480可以通过使用各种接口方案来实现,例如,高级技术附件(ATA)、串行ATA(SATA)、外部串行ATA(e-SATA)、小型计算机系统接口(SCSI)、串行SCSI(SAS)、外部设备互连(PCI)、PCI express(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数码(SD)卡接口、多媒体卡(MMC)接口、嵌入式多媒体卡(eMMC)接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑式闪存(CF)卡接口等。
图18为根据本发明的一实施例的存储系统3000的框图。参照图18,存储系统3000可以包括存储装置3200和存储器控制器3100。存储装置3200可以对应于NVM装置NVM11至NVMmn中的一个,其基于图19的多个通道CH1至CHm中的一个与存储器控制器9100通信。存储器控制器3100可以对应于图19的存储器控制器9100。
在一些实施例中,存储装置3200可对应于图14中所描述的存储装置100,存储器控制器3100可参照图1、图7至图9、图11至图13中的至少一个描述的方法来执行操作。例如,存储器控制器3100可被配置为参照图1、图7至图9、图11至图13中的至少一个描述的方法来访问和控制所述存储装置3200。
存储装置3200可以包括第一至第八引脚P11至P18、存储器接口电路3210、控制逻辑电路3220和存储单元阵列3330。
存储器接口电路3210可以通过第一引脚P11从存储器控制器3100接收芯片使能信号nCE。存储器接口电路3210可以响应于芯片使能信号nCE而通过第二至第八引脚P12至P18向存储器控制器3100发送信号和从存储器控制器3100接收信号。例如,当芯片使能信号nCE处于使能状态(例如,低电平)时,存储器接口电路3210可以通过第二至第八引脚P12至P18向存储器控制器3100发送信号并从存储器控制器3100接收信号。
存储器接口电路3210可以通过第二至第四引脚P12至P14从存储器控制器3100接收命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE。存储器接口电路3210可以通过第七引脚P17从存储器控制器3100接收数据信号DQ,或者将数据信号DQ发送到存储器控制器3100。可以经由数据信号DQ来传输命令CMD,地址ADDR和数据。例如,数据信号DQ可以通过多条数据信号线传输。在这种情况下,第七引脚P17可以包括分别对应于多个数据信号DQ的多个引脚。
存储器接口电路3210可以基于写入使能信号nWE的切换时间点从在命令锁存使能信号CLE的使能区间(例如,高电平状态)中接收的数据信号DQ获得命令CMD。存储器接口电路3210可以基于写入使能信号nWE的切换时间点从在地址锁存使能信号ALE的使能区间(例如,高电平状态)中接收的数据信号DQ获得地址ADDR。
在示例性实施例,写入使能信号nWE可以保持在静态(例如,高电平或低电平)并且在高电平和低电平之间切换。例如,写入使能信号nWE可以在发送命令CMD或地址ADDR的区间中切换。因此,存储器接口电路3210可以基于写入使能信号nWE的切换时间点获得命令CMD或地址ADDR。
存储器接口电路3210可以通过第五引脚P15从存储器控制器3100接收读取使能信号nRE。存储器接口电路3210可以通过第六引脚P16从存储器控制器3100接收数据选通信号DQS,或者可以将数据选通信号DQS发送到存储器控制器3100。
在存储装置3200的数据(DATA)输出操作中,存储器接口电路3210可以在输出数据DATA之前接收通过第五引脚P15切换的读取使能信号nRE。存储器接口电路3210可以生成数据选通信号DQS,其基于读取使能信号nRE的切换来切换。例如,存储器接口电路3210可以基于读取使能信号nRE的切换开始时间来生成数据选通信号DQS,其在预定延迟(例如,tDQSRE)之后开始切换。存储器接口电路3210可以基于数据选通信号DQS的切换时间点来发送包括数据DATA的数据信号DQ。因此,数据DATA可以与数据选通信号DQS的切换时间点对准并且被发送到存储器控制器3100。
在存储装置3200的数据(DATA)输入操作中,当从存储器控制器3100接收到包括数据DATA的数据信号DQ时,存储器接口电路3210可以接收切换的数据选通信号DQ以及数据DATA。存储器接口电路3210可以基于数据选通信号DQS的切换时间点从数据信号DQ获得数据DATA。例如,存储器接口电路3210可以在数据选通信号DQS的上升沿和下降沿对数据信号DQ进行采样并获得数据DATA。
存储器接口电路3210可以通过第八引脚P18将就绪/忙碌输出信号nR/B发送到存储器控制器3100。存储器接口电路3210可以通过就绪/忙碌输出信号nR/B将存储装置3200的状态信息发送到存储器控制器3100。当存储装置3200处于忙碌状态时(即,当正在存储装置3200中执行操作时),存储器接口电路3210可以将指示忙碌状态的就绪/忙碌输出信号nR/B发送到存储器控制器3100。当存储装置3200处于就绪状态时(即,当在存储装置3200中未执行或完成操作时),存储器接口电路3210可以将指示就绪状态的就绪/忙碌输出信号nR/B发送到存储器控制器3100。例如,当存储装置3200响应于页面读取命令而从存储单元阵列3330读取数据DATA时,存储器接口电路3210可以发送指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B到存储器控制器3100。例如,当存储装置3200响应于编程命令而将数据DATA编程到存储单元阵列3330时,存储器接口电路3210可以将指示忙碌状态的就绪/忙碌输出信号nR/B发送到存储器控制器3100。
控制逻辑电路3220可以控制存储装置3200的所有操作。控制逻辑电路3220可以接收从存储器接口电路3210获得的命令/地址CMD/ADDR。控制逻辑电路3220可以响应于所接收到的命令/地址CMD/ADDR而产生用于控制存储装置3200的其他组件的控制信号。例如,控制逻辑电路3220可以生成各种控制信号,其用于将数据DATA编程到存储单元阵列3330或从存储单元阵列3330读取数据DATA。
存储单元阵列3330可以经由控制逻辑电路3220的控制来存储从存储器接口电路3210获得的数据DATA。存储单元阵列3330可以经由控制逻辑电路3220的控制将存储的数据DATA输出到存储器接口电路3210。
存储单元阵列3330可以包括多个存储单元。例如,多个存储单元可以是闪存单元。但是,本发明不限于此,并且存储单元可以是RRAM单元、FRAM单元、PRAM单元、晶闸管RAM(TRAM)单元或MRAM单元。在下文中,将主要描述其中存储单元是NAND闪存单元的实施例。
存储器控制器3100可以包括第一至第八引脚P21至P28和控制器接口电路3110。第一至第八引脚P21至P28可以分别对应于存储装置3200的第一至第八引脚P11至P18。
控制器接口电路3110可以通过第一引脚P21将芯片使能信号nCE发送到存储装置3200。控制器接口电路3110可以通过第二至第八引脚P22至P28向存储装置3200发送信号并从存储装置3200接收信号,其中,存储装置3200由芯片使能信号nCE选择。
控制器接口电路3110可以通过第二至第四引脚P22至P24将命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE发送至存储装置3200。控制器接口电路3110可以通过第七引脚P27向存储装置3200发送数据信号DQ或从存储装置3200接收数据信号DQ。
控制器接口电路3110可以将包括命令CMD或地址ADDR的数据信号DQ以及切换的写入使能信号nWE一起发送到存储装置3200。控制器接口电路3110可以通过发送具有使能状态的命令锁存使能信号CLE来向存储装置3200发送包括命令CMD的数据信号DQ。并且,控制器接口电路3110可以通过发送具有使能状态的地址锁存使能信号ALE来向存储装置3200发送包括地址ADDR的数据信号DQ。
控制器接口电路3110可以通过第五引脚P25将读取使能信号nRE发送到存储装置3200。控制器接口电路3110可以通过第六引脚P26从存储装置3200接收数据选通信号DQS或向存储装置3200发送数据选通信号DQS。
在存储装置3200的数据(DATA)输出操作中,控制器接口电路3110可以生成切换的读取使能信号nRE,并且将读取使能信号nRE发送到存储装置3200。例如,在输出数据DATA之前,控制器接口电路3110可以生成读取使能信号nRE,其从静态(例如,高电平或低电平)变为切换状态。因此,存储装置3200可以基于读取使能信号nRE生成切换的数据选通信号DQS。控制器接口电路3110可以从存储装置3200接收包括数据DATA的数据信号DQ以及切换的数据选通信号DQS。控制器接口电路3110可以基于数据选通信号DQS的切换时间点从数据信号DQ获得数据DATA。
在存储装置3200的数据(DATA)输入操作中,控制器接口电路3110可以生成切换的数据选通信号DQS。例如,在发送数据DATA之前,控制器接口电路3110可以生成数据选通信号DQS,其从静态(例如,高电平或低电平)变为切换的状态。控制器接口电路3110可以基于数据选通信号DQS的切换时间点将包括数据DATA的数据信号DQ发送到存储装置3200。
控制器接口电路3110可以通过第八引脚P28从存储装置3200接收就绪/忙碌输出信号nR/B。控制器接口电路3110可以基于就绪/忙碌输出信号nR/B来确定存储装置3200的状态信息。
图19根据本发明的一实施例的存储系统9000的框图。参照图19,存储系统9000可以包括存储装置9200和存储器控制器9100。存储系统9000可以支持多个通道CH1至CHm,并且存储装置9200可以通过多个通道CH1至CHm连接到存储器控制器9100。例如,存储系统9000可以实现为诸如SSD的存储装置。
在一些实施例中,存储装置9200可对应于图14中所描述的存储装置100,存储器控制器9100可参照图1、图7至图9、图11至图13中的至少一个描述的方法来执行操作。例如,存储器控制器9100可被配置为参照图1、图7至图9、图11至图13中的至少一个描述的方法来访问和控制所述存储装置9200。
存储装置9200可以包括多个NVM装置NVM11至NVMmn。NVM装置NVM11至NVMmn中的每一个可以通过与其相对应的路径(way)连接至多个通道CH1至CHm中的一个。例如,NVM装置NVM11至NVM1n可以通过路径W11至W1n连接到第一通道CH1,并且NVM装置NVM21至NVM2n可以通过路径W21至W2n连接到第二通道CH2。在示例性实施例中,NVM装置NVM11至NVM1n中的每一个可以实现为任意存储元件,其可以根据来自存储器控制器9100的单独命令来操作。例如,NVM装置NVM11至NVM1n中的每一个可以实现为芯片(chip)或管芯(die),但是本发明不限于此。
存储器控制器9100可以通过多个通道CH1至CHm向存储装置9200发送信号和从存储装置9200接收信号。例如,存储器控制器9100可以通过通道CH1至CHm向存储装置9200发送命令CMDa至CMDm、地址ADDRa至ADDRm以及数据DATAa至DATAm,或者从存储装置9200接收数据DATAa至DATAm。
存储器控制器9100可以从通过使用通道CH1至CHm中的相应的一个从连接到通道CH1至CHm中的每一个的NVM装置NVM11至NVMmn中选择一个,并且向所选择的NVM装置发送信号和从所选择的NVM装置接收信号。例如,存储器控制器9100可以从连接到第一通道CH1的NVM装置NVM11至NVM1n中选择NVM装置NVM11。存储器控制器9100可以通过第一通道CH1发送命令CMDa、地址ADDRa和数据DATAa到所选择的NVM装置NVM11,或者从所选择的NVM装置NVM11接收数据DATAa。
存储器控制器9100可以通过彼此不同的通道并行地向存储装置9200发送信号和从存储装置9200接收信号。例如,存储器控制器9100可以在通过第一通道CH1将命令CMDa发送到存储装置9200的同时,通过第二通道CH2发送命令CMDb到存储装置9200。例如,存储器控制器9100可以在通过第一通道CH1从存储装置9200接收数据DATAa的同时,通过第二通道CH2从存储装置9200接收数据DATAb。
存储器控制器9100可以控制存储装置9200的所有操作。存储器控制器9100可以将信号发送到通道CH1至CHm,并控制连接到通道CH1至CHm的NVM装置NVM11至NVMmn中的每一个。例如,存储器控制器9100可以发送命令CMDa和地址ADDRa到第一通道CH1,并且控制选自NVM装置NVM11至NVM1n中的一个。
NVM装置NVM11至NVMmn中的每一个可以经由存储器控制器9100的控制来操作。例如,NVM装置NVM11可以基于提供给第一通道CH1的命令CMDa、地址ADDRa和数据DATAa来对数据DATAa进行编程。例如,NVM装置NVM21可以基于提供给第二通道CH2的命令CMDb和地址ADDb读取数据DATAb,并将所读取的数据DATAb发送到存储器控制器9100。
尽管图19示出了存储装置9200通过m个通道与存储器控制器9100进行通信并且包括与每个通道相对应的n个NVM装置的示例,但是可以改变通道的数量和连接到一个通道的NVM装置的数量。
图20为根据示例性实施例的主机存储系统8000的框图。
主机存储系统8000可以包括主机8100和存储装置8200。此外,存储装置8200可以包括存储器控制器8210和NVM 8220。根据本发明的示例性实施例,主机8100可以包括主机控制器8110和主机存储器8120。主机存储器8120可以用作缓冲存储器,其被配置为临时存储要发送到存储装置8200的数据或从存储装置8200接收的数据。
在一些实施例中,主机8100可对应于图16中所描述的主机200,存储装置8200可对应于图14中所描述的存储装置100。例如,主机8100可被配置为根据图15所述的方法来访问所述存储装置8200。存储装置8200可被配置为根据图图1、图7至图9、图11至图13中的至少一个描述的的方法来访问主机8100。
存储装置8200可以包括存储介质,其被配置为响应于来自主机8100的请求而存储数据。作为示例,存储装置8200可以包括SSD、嵌入式存储器和可装卸的外部存储器中的至少一个。当存储装置8200是SSD时,存储装置8200可以是符合NVMe标准的装置。当存储装置8200是嵌入式存储器或外部存储器时,存储装置8200可以是符合UFS标准或eMMC标准的装置。主机8100和存储装置8200均可以根据采用的标准协议来生成包(packet)并发送该包。
当存储装置8200的NVM 8220包括闪存时,所述闪存可以包括2D NAND存储阵列或3D(或垂直)NAND(VNAND)存储阵列。作为另一示例,存储装置8200可以包括各种其他种类的NVM。例如,存储装置8200可以包括磁性随机存取存储器(MRAM)、自旋转移扭矩MRAM、导电桥式RAM(CBRAM)、铁电RAM(FRAM)、PRAM、RRAM以及各种其他类型的存储器。
根据一实施例,主机控制器8110和主机存储器8120可以实现为单独的半导体芯片。或者,在一些实施例中,主机控制器8110和主机存储器8120可以集成在同一半导体芯片中。作为示例,主机控制器8110可以是包括在应用处理器(AP)中的多个模块中的任何一个。所述AP可以实现为片上系统(SoC)。此外,主机存储器8120可以是所述AP中包括的嵌入式存储器或所述AP外部的存储器模块。
主机控制器8110可以管理将主机存储器8120的缓冲区域的数据(例如,写入数据)存储在NVM 8220中的操作或将NVM 8220的数据(例如,读取数据)存储在缓冲区域中的操作。
存储器控制器8210可以包括主机接口8211、存储器接口8212和CPU 8213。另外,存储器控制器8210还可以包括闪存转换层(FTL)8124、包管理器8215、缓冲存储器8216、纠错码(ECC)引擎8217和高级加密标准(AES)引擎8218。存储器控制器8210可以进一步包括其中装载有FTL 8124的工作存储器(未示出)。CPU 8213可以执行FTL 8124来控制NVM 8220上的数据写入和读取操作。
主机接口8211可以向主机8100发送包和从主机8100接收包。从主机8100发送到主机接口8211的包可以包括命令或要被写入NVM 8220的数据等。从主机接口8211发送到主机8100的包可以包括对命令的响应或从NVM 8220读取的数据等。存储器接口8212可以将要被写入NVM 8220的数据发送到NVM 8220或接收从NVM 8220读取的数据。存储器接口8212可以被配置为符合诸如切换(Toggle)或开放NAND闪存接口(ONFI)的标准协议。
FTL 8124可以执行各种功能,例如地址映射操作、磨损均衡操作以及垃圾收集操作。地址映射操作可以是将从主机8100接收的逻辑地址转换为用于在NVM 8220中实际存储数据的物理地址的操作。磨损均衡操作可以是通过允许均匀地使用NVM 8220的块来防止特定块的过度退化的技术。作为示例,磨损均衡操作可以通过使用平衡物理块的擦写计数的固件技术来实现。垃圾收集操作可以是通过在将现有块的有效数据复制到新块之后擦除现有块来确保NVM 8220中的可用容量的技术。
包管理器8215可以根据同意主机8100的接口的协议生成包,或者从从主机8100接收到的包中解析各种类型的信息。另外,缓冲存储器8216可以临时存储要写入NVM 8220的数据或要从NVM 8220读取的数据。尽管缓冲存储器8216可以是包括在存储器控制器8210中的组件,但是缓冲存储器8216可以在存储器控制器8210的外部。
ECC引擎8217可以对从NVM 8220读取的读取数据执行错误检测和校正操作。更具体地,ECC引擎8217可以生成用于要写入到NVM 8220的写入数据的奇偶校验位,并且所生成的奇偶校验位可以与写入数据一起存储在NVM 8220中。在从NVM 8220读取数据期间,ECC引擎8217可以通过使用读取数据以及从NVM 8220读取的奇偶校验位来校正读取数据中的错误,并输出错误校正后的读取数据。
AES引擎8218可以通过使用对称密钥算法对输入到存储器控制器8210的数据执行加密操作和解密操作中的至少一个。
图21为根据本发明的一实施例的应用了存储装置的数据中心4000的框图。
参照图21,数据中心4000可以是收集各种类型的数据并提供服务的设施,并且被称为数据存储中心。数据中心4000可以是用于操作搜索引擎和数据库的系统,并且可以是公司(诸如,银行)或政府机构所使用的计算系统。数据中心4000可以包括应用服务器4100至4100n和存储服务器4200至4200m。根据实施例,可以不同地选择应用4100至4100n的数量和存储服务器4200至4200m的数量。应用服务器4100至4100n的数量和存储服务器4200至4200m的数量可以彼此不同。
在一些实施例中,应用服务器4100至4100n中的一个或多个可对应于图16中所描述的主机200,存储服务器4200至4200m中的一个或多个可对应于对应于图14中所描述的存储装置100。例如,应用服务器4100至4100n中的一个或多个可被配置为根据图15所述的方法来访问和控制存储服务器4200至4200m中的一个或多个,存储服务器4200至4200m中的一个或多个可被配置为根据图1、图7至图9、图11至图13中的至少一个描述的方法来访问和控制应用服务器4100至4100n中的一个或多个。
应用服务器4100或存储服务器4200可以包括处理器4110和4210以及存储器4120和4220中的至少一个。现在将以存储服务器4200为例进行描述。处理器4210可以控制存储服务器4200的所有操作,访问存储器4220,并且执行加载到存储器4220的指令和/或数据。存储器4220可以是双数据率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合内存立方体(HMC)、双列直插式内存模块(DIMM)、傲腾DIMM(Optane DIMM)或非易失性DIMM(NVMDIMM)。在一些实施例中,存储服务器4200中包括的处理器4210和存储器4220的数量可以被不同地选择。在一实施例中,处理器4210和存储器4220可以提供处理器-存储器对。在一实施例中,处理器4210的数量与存储器4220的数量可以彼此不同。处理器4210可以包括单核处理器或多核处理器。对于存储服务器4200的以上描述可以类似地应用于应用服务器4100。在一些实施例中,应用服务器4100可以不包括存储装置4150。存储服务器4200可以包括至少一个存储装置4250。根据实施例,存储服务器4200中包括的存储装置4250的数量可以被不同地选择。
应用程序服务器4100至4100n可以通过网络4300与存储服务器4200至4200m通信。网络4300可以通过使用光纤信道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质,并且可以使用具有高性能和高可用性的光开关。根据网络4300的访问方法,可以将存储服务器4200至4200m设置为文件存储、块存储或对象存储。
在一实施例中,网络4300可以是专用于存储的网络,例如存储区域网络(SAN)。例如,SAN可以是FC-SAN,其使用FC网络并且根据FC协议(FCP)实现。作为另一示例,SAN可以是因特网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络并且根据TCP/IP上的SCSI或因特网SCSI(iSCSI)协议来实现。在另一实施例中,网络4300可以是通用网络,例如TCP/IP网络。例如,可以根据诸如以太网上的FC(FCoE)、网络附加存储(NAS)和结构上的NVMe(NVMe-oF)之类的协议来实现网络4300。
在下文中,将主要描述应用服务器4100和存储服务器4200。应用服务器4100的描述可以应用于另一应用服务器4100n,并且存储服务器4200的描述可以应用于另一存储服务器4200m。
应用服务器4100可以通过网络4300将用户或客户端请求存储的数据存储在存储服务器4200至4200m中的一个。此外,应用服务器4100可以通过网络4300从存储服务器4200至4200m中的一个获得由用户或客户端请求读取的数据。例如,应用程序服务器4100可以被实现为网络服务器或数据库管理系统(DBMS)。
应用服务器4100可以通过网络4300访问包括在另一应用服务器4100n中的存储器4120n或存储装置4150n。或者,应用服务器4100可以通过网络4300访问包括在存储服务器4200至4200m中的存储器4220至4220m或存储装置4250至4250m。因此,应用服务器4100可以对存储在应用服务器4100至4100n和/或存储服务器4200至4200m中的数据执行各种操作。例如,应用服务器4100可以执行用于在应用服务器4100至4100n和/或存储服务器4200至4200m之间移动或复制数据的指令。在这种情况下,可以将数据从存储服务器4200至4200m的存储装置4250至4250m通过存储服务器4200至4200m的存储器4220至4220m或直接移动到应用服务器4100至4100n的存储器4120至4120n。通过网络4300移动的数据可以是为了安全或隐私而加密的数据。
现在将以存储服务器4200为例进行描述。接口4254可以提供处理器4210和控制器4251之间的物理连接以及网络接口卡(NIC)4240和控制器4251之间的物理连接。例如,可以使用直接附加存储(DAS)方案来实现接口4254,其中存储装置4250直接与专用电缆连接。例如,接口4254可以通过使用各种接口方案来实现,例如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和CF卡接口。
存储服务器4200可以进一步包括开关4230和网络互连(NIC)4240。开关4230可以经由处理器4210的控制来选择性地将处理器4210连接到存储装置4250,或者选择性地将NIC 4240连接到存储装置4250。
在一实施例中,NIC 4240可以包括网络接口卡和网络适配器。NIC 4240可以通过有线接口、无线接口、蓝牙接口或光接口连接到网络4300。NIC 4240可以包括内部存储器、数字信号处理器(DSP)和主机总线接口,并且通过主机总线接口连接到处理器4210和/或开关4230。主机总线接口可以被实现为接口4254的上述示例之一。在一实施例中,NIC 4240可以与处理器4210、开关4230和存储装置4250中的至少一个集成。
在存储服务器4200至4200m或应用服务器4100至4100n中,处理器可将命令发送到存储装置4150至4150n和4250至4250m或存储器4120至4120n和4220至4220m并编程或读取数据。在这种情况下,数据可以是通过ECC引擎校正了错误的数据。数据可以是对其执行数据总线倒置(DBI)操作或数据掩蔽(DM)操作的数据,并且可以包括循环冗余编码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
存储装置4150至4150n和4250至4250m可以响应于从处理器接收到的读取命令向NAND闪存装置4252至4252m发送控制信号和命令/地址信号。因此,当从NAND闪存装置4252至4252m读取数据时,可以输入读取使能(RE)信号作为数据输出控制信号,因此,可以将数据输出至DQ总线。可以使用RE信号产生数据选通信号DQS。取决于写入使能(WE)信号的上升沿或下降沿,命令和地址信号可以锁存在页面缓冲器中。
控制器4251可以控制存储装置4250的所有操作。在一实施例中,控制器4251可以包括SRAM。控制器4251可以响应于写入命令将数据写入到NAND闪存装置4252,或者响应于读取命令从NAND闪存装置4252读取数据。例如,可以从存储服务器4200的处理器4210、另一存储服务器4200m的处理器4210m或应用服务器4100和4100n的处理器4110和4110n提供写入命令和/或读取命令。DRAM 3253可以临时存储(或缓冲)要写入到NAND闪存装置4252的数据或从NAND闪存装置4252读取的数据。并且,DRAM 3253可以存储元数据。这里,元数据可以是用户数据或由控制器4251生成的用于管理NAND闪存装置4252的数据。存储装置4250可以包括用于安全性或隐私性的安全元件(SE)。
根据本公开的实施例的图1、图7至图9、图11至图13描述的方法和图15描述的方法可被编写为计算机程序并被存储在计算机可读存储介质上。当所述计算机程序被处理器执行时,可实现如上存储装置的方法。计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
因此,本发明提出的基于采样过滤的主机-存储装置协同处理扫描过滤的方案可有效的减少主机的处理器的工作负载,提升数据库查询效率,提高数据库性能,并且近数据处理和智能/计算存储装置可以减少不必要的数据移动,并加快数据处理速度。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。
Claims (10)
1.一种存储装置的数据处理方法,包括:
从主机接收涉及扫描过滤任务的查询请求;
针对扫描过滤任务,确定存储装置内的计算资源是否饱和;
响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作;
响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据;
将处理数据发送到主机。
2.根据权利要求1所述的数据处理方法,其中,针对扫描过滤任务,确定存储装置内的计算资源是否饱和的步骤包括:
针对扫描过滤任务,检测存储装置内的扫描队列是否已满;
响应于扫描队列已满,确定存储装置内的计算资源饱和;
响应于扫描队列未满,确定存储装置内的计算资源未饱和。
3.根据权利要求1所述的数据处理方法,其中,针对扫描过滤任务,确定存储装置内的计算资源是否饱和的步骤包括:
针对扫描过滤任务,检测存储装置内的计算资源的使用率是否大于或等于预定阈值;
响应于存储装置内的计算资源的使用率大于或等于预定阈值,确定存储装置内的计算资源饱和;
响应于存储装置内的计算资源的使用率小于预定阈值,确定存储装置内的计算资源未饱和。
4.根据权利要求1所述的数据处理方法,其中,响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作的步骤包括:
从存储装置随机采样多条采样数据;
使用过滤算法对所述多条采样数据执行过滤,以获得多条过滤数据;
根据所述多条过滤数据的数量与所述多条采样数据的数量的比率,确定过滤率;
响应于过滤率大于或等于预定阈值,确定存储装置不需要执行扫描过滤操作;
响应于过滤率小于预定阈值,确定存储装置需要执行扫描过滤操作。
5.根据权利要求1所述的数据处理方法,其中,查询请求包括涉及第一扫描过滤任务的第一查询请求,
其中,响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作以获得处理数据的步骤包括:
将第一扫描过滤任务放入存储装置内的扫描队列,并且使用存储装置内的计算资源对与第一扫描过滤任务对应的第一原始数据执行第一扫描操作,以获得第一扫描数据;
在完成第一扫描操作之后,将第一扫描数据放入过滤队列,并且使用存储装置内的计算资源对第一扫描数据执行第一过滤操作,以获得第一过滤数据;
在完成第一过滤操作之后,将第一过滤数据放入结果队列,以获得第一处理数据。
6.根据权利要求5所述的数据处理方法,其中,查询请求还包括涉及第二扫描过滤任务的第二查询请求,
其中,响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作以获得处理数据的步骤包括:
在完成第一扫描操作之后,将第二扫描过滤任务放入存储装置内的扫描队列,并且使用存储装置内的计算资源对与第二扫描过滤任务对应的第二原始数据执行第二扫描操作,以获得第二扫描数据;
在完成第二扫描操作之后,将第二扫描数据放入过滤队列,并且使用存储装置内的计算资源对第二扫描数据执行第二过滤操作,以获得第二过滤数据;
在完成第二过滤操作之后,将第二过滤数据放入结果队列,以获得第二处理数据。
7.根据权利要求5所述的数据处理方法,其中,将处理后的数据发送到主机的步骤包括:
将结果队列中的第一处理数据发送到主机。
8.根据权利要求1所述的数据处理方法,还包括:
响应于确定存储装置内的计算资源饱和,将存储装置内的原始数据发送到主机。
9.根据权利要求1所述的数据处理方法,还包括:
响应于确定存储装置不需要执行扫描过滤操作,将存储装置内的原始数据发送到主机。
10.一种存储装置,包括:
接收器,被配置为从主机接收涉及扫描过滤任务的查询请求;
确定器,被配置为:针对扫描过滤任务,确定存储装置内的计算资源是否饱和;
采样评估器,被配置为:响应于确定存储装置内的计算资源未饱和,确定存储装置是否需要执行扫描过滤操作;
计算资源,被配置为:响应于确定存储装置需要执行扫描过滤操作,对存储装置内的原始数据执行扫描过滤操作,以获得处理数据;
发送器,被配置为将处理数据发送到主机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310526498.4A CN116755873A (zh) | 2023-05-10 | 2023-05-10 | 主机、存储装置以及主机和存储装置的数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310526498.4A CN116755873A (zh) | 2023-05-10 | 2023-05-10 | 主机、存储装置以及主机和存储装置的数据处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116755873A true CN116755873A (zh) | 2023-09-15 |
Family
ID=87954060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310526498.4A Pending CN116755873A (zh) | 2023-05-10 | 2023-05-10 | 主机、存储装置以及主机和存储装置的数据处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116755873A (zh) |
-
2023
- 2023-05-10 CN CN202310526498.4A patent/CN116755873A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9092321B2 (en) | System and method for performing efficient searches and queries in a storage node | |
US9021189B2 (en) | System and method for performing efficient processing of data stored in a storage node | |
US9336135B1 (en) | Systems and methods for performing search and complex pattern matching in a solid state drive | |
CN115495389B (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US20230092562A1 (en) | System, device, and method for memory interface including reconfigurable channel | |
US20230325277A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
EP4325367A1 (en) | Method and device for data caching | |
US20230153006A1 (en) | Data processing method and data processing device | |
US11797219B2 (en) | Storage device, server device including the storage device and method of operating the storage device | |
US20220179724A1 (en) | Method for operating storage device and host device, and storage device | |
CN116755873A (zh) | 主机、存储装置以及主机和存储装置的数据处理方法 | |
US20230393749A1 (en) | Method and device of storage data | |
US20230214258A1 (en) | Storage controller and storage device | |
EP4148572B1 (en) | Computational storage device and storage system including the computational storage device | |
KR102403477B1 (ko) | 스토리지 장치와 이를 포함하는 호스트-스토리지 시스템 | |
KR102484073B1 (ko) | 스토리지 시스템 | |
US20240160511A1 (en) | Failure prediction apparatus and method for storage devices | |
US20230153237A1 (en) | Method and device for storing data | |
US20240160462A1 (en) | Access method of storage device and virtual device | |
CN117130551A (zh) | 存储装置及其数据访问方法 | |
CN117008826A (zh) | 数据压缩方法和装置 | |
CN117055816A (zh) | 配置zns ssd的区域的方法和装置 | |
CN115291796A (zh) | 存储数据的方法和装置 | |
KR20230172426A (ko) | 데이터 저장을 위한 방법 및 장치 | |
CN117891408A (zh) | 用于存储设备的数据去重的方法和存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |