CN117311833B - 一种存储控制方法、装置、电子设备及可读存储介质 - Google Patents
一种存储控制方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117311833B CN117311833B CN202311611548.5A CN202311611548A CN117311833B CN 117311833 B CN117311833 B CN 117311833B CN 202311611548 A CN202311611548 A CN 202311611548A CN 117311833 B CN117311833 B CN 117311833B
- Authority
- CN
- China
- Prior art keywords
- data input
- system data
- storage
- memory access
- output request
- 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
- 238000000034 method Methods 0.000 title claims abstract description 88
- 230000004044 response Effects 0.000 claims description 165
- 238000012545 processing Methods 0.000 claims description 128
- 239000013598 vector Substances 0.000 claims description 96
- 230000000903 blocking effect Effects 0.000 claims description 87
- 230000027455 binding Effects 0.000 claims description 63
- 238000009739 binding Methods 0.000 claims description 63
- 230000003993 interaction Effects 0.000 claims description 37
- 238000003491 array Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及存储技术领域,具体公开了一种存储控制方法、装置、电子设备及可读存储介质,通过在执行对设备的存储驱动初始化时,根据设备的非均匀存储器访问架构信息为各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断,从而在进入操作系统后执行处理器与存储控制器之间的系统数据交互任务时基于对应非均匀存储器访问节点的存储处理队列和存储处理中断执行,使得任意处理器在执行系统数据交互任务时均可以基于本非均匀存储器访问节点内的内存乃至本地内存执行,减少处理器需要访问远端内存的情况,减少处理器上下文切换时间,提升系统并发能力,从而提升多处理器设备的系统数据输入输出效率。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种存储控制方法、装置、电子设备及可读存储介质。
背景技术
在对称多处理器(Symmetric multiprocessing,SMP)系统中,一台计算机设备上汇集多个中央处理器(Central Processing Unit,CPU),各中央处理器共享一个单独的内存控制器。为避免多中央处理器访问同一个存储器产生的性能损失,越来多堆成多处理器的计算机中采用了非均匀存储器访问(Non-Uniform Memory Access,NUMA)架构,在非均匀存储器访问架构中系统被分成多个节点,每个节点都有自己的处理器和内存,处理器访问本地内存时延开销很小;节点之间通过互联总线连接,处理器访问远端的内存需要通过互联总线,相对时延开销较大。
然而,目前在系统数据输入输出上,并没有很好地发挥非均匀存储器访问架构的优势。系统数据输入输出的数据最终都来源或存储于存储设备上,在主机通过存储控制器与存储设备交互时,仍是采用单队列来处理数据输入输出请求,这会限制设备的并发处理能力。
应运而生。非均匀存储器访问系统通过提供分离的存储器给各个中央处理器,避免当多个中央处理器访问同一个存储器产生的性能损失。
如何进一步提高多处理器系统的系统数据输入输出效率,是本领域技术人员需要解决的技术问题。
发明内容
本发明的目的是提供一种存储控制方法、装置、电子设备及可读存储介质,用于提高多处理器系统的系统数据输入输出效率。
为解决上述技术问题,本发明提供一种存储控制方法,包括:
获取所在设备的非均匀存储器访问架构信息;
在进行对所述设备连接的存储控制器的存储驱动初始化时,根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断;
基于对应的所述存储处理队列和对应的所述存储处理中断,执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务。
在一些实施中,所述根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,包括:
根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列。
在一些实施中,所述根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,包括:
根据各所述非均匀存储器访问节点中处理器的信息,为各所述处理器绑定一一对应的所述中断向量、所述系统数据输入输出请求队列和所述系统数据输入输出响应队列。
在一些实施中,为各所述处理器绑定一一对应的所述中断向量,包括:
对各所述非均匀存储器访问节点,申请与所述处理器的数量相同的所述中断向量;
创建中断管理数组,所述中断管理数组中的子中断管理数组与所述非均匀存储器访问节点一一对应,所述子中断管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述中断向量的标识。
在一些实施中,为各所述处理器绑定一一对应的所述系统数据输入输出请求队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的所述系统数据输入输出请求队列;
创建系统数据输入输出请求队列管理数组,所述系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出请求队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出请求队列的地址。
在一些实施中,为各所述处理器绑定一一对应的所述系统数据输入输出响应队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的所述系统数据输入输出响应队列;
创建系统数据输入输出响应队列管理数组,所述系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出响应队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出响应队列的地址。
在一些实施中,所述基于对应的所述存储处理队列和对应的所述存储处理中断,执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与所述系统数据输入输出请求的线程所在的所述处理器的标识以及所述处理器所在的所述非均匀存储器访问节点的标识;
根据所述处理器的标识以及所述非均匀存储器访问节点的标识查询对应的所述中断向量、对应的所述系统数据输入输出请求队列和对应的所述系统数据输入输出响应队列;
若所述系统数据输入输出请求为对所述存储控制器的写数据命令,则将所述写数据命令写入对应的所述系统数据输入输出请求队列中,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器基于对应的所述系统数据输入输出响应队列接收所述存储控制器对所述写数据命令的执行结果;
若所述系统数据输入输出请求为对所述存储控制器的读数据命令,则将所述读数据命令写入对应的所述系统数据输入输出请求队列中,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器基于对应的所述系统数据输入输出响应队列接收所述存储控制器返回的读目标数据。
在一些实施中,所述基于对应的所述存储处理队列和对应的所述存储处理中断,执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务,包括:
利用对应的所述存储处理队列和对应的所述存储处理中断,基于直接内存访问算法执行所述系统数据交互任务。
在一些实施中,所述根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,包括:
根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧;
其中,所述系统数据输入输出响应队列用于保存所述存储控制器对所述处理器的系统数据输入输出请求的响应描述符,所述数据帧用于保存所述存储控制器对所述处理器的所述系统数据输入输出请求的响应数据。
在一些实施中,所述根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,包括:
根据各所述非均匀存储器访问节点中处理器的信息,为各所述处理器绑定一一对应的所述中断向量、所述系统数据输入输出请求队列、所述系统数据输入输出响应队列和所述数据帧。
在一些实施中,为各所述处理器绑定一一对应的所述中断向量,包括:
对各所述非均匀存储器访问节点,申请与所述处理器的数量相同的所述中断向量;
创建中断管理数组,所述中断管理数组中的子中断管理数组与所述非均匀存储器访问节点一一对应,所述子中断管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述中断向量。
在一些实施中,为各所述处理器绑定一一对应的所述系统数据输入输出请求队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的系统数据输入输出请求队列;
创建系统数据输入输出请求队列管理数组,所述系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出请求队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出请求队列的地址。
在一些实施中,为各所述处理器绑定一一对应的所述系统数据输入输出响应队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的系统数据输入输出响应队列;
创建系统数据输入输出响应队列管理数组,所述系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出响应队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出响应队列的地址。
在一些实施中,为各所述处理器绑定一一对应的所述数据帧,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的所述数据帧;
创建数据帧管理数组,所述数据帧管理数组中的子数据帧管理数组与所述非均匀存储器访问节点一一对应,所述子数据帧管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述数据帧的地址。
在一些实施中,所述利用对应的所述存储处理队列和对应的所述存储处理中断,基于直接内存访问算法执行所述系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与所述系统数据输入输出请求的线程所在的所述处理器的标识以及所述处理器所在的所述非均匀存储器访问节点的标识;
根据所述处理器的标识以及所述非均匀存储器访问节点的标识查询对应的所述中断向量、对应的所述系统数据输入输出请求队列、对应的所述系统数据输入输出响应队列和对应的所述数据帧;
若所述系统数据输入输出请求为对所述存储控制器的写数据命令,则将所述写数据命令写入对应的所述系统数据输入输出请求队列中,并将待写入数据写入对应的所述数据帧以使所述存储控制器至所述数据帧读取所述待写入数据,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器基于对应的所述系统数据输入输出响应队列接收所述存储控制器对所述写数据命令的执行结果;
若所述系统数据输入输出请求为对所述存储控制器的读数据命令,则将所述读数据命令写入对应的所述系统数据输入输出请求队列中,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器在对应的所述数据帧读取所述存储控制器写入的读目标数据。
在一些实施中,还包括:
根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,以基于所述非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求。
在一些实施中,所述根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,包括:
根据所述非均匀存储器访问架构中处理器的信息,为所述非均匀存储器访问节点绑定一一对应的所述非阻塞数据输入输出请求队列以处理所述非均匀存储器访问节点中所有所述处理器的所述非阻塞数据输入输出请求。
在一些实施中,所述基于所述非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求,包括:
当接收到所述非阻塞数据输入输出请求时,查询与所述非阻塞数据输入输出请求对应的所述非均匀存储器访问节点的标识;
根据所述非均匀存储器访问节点的标识查询对应的所述非阻塞数据输入输出请求队列;
将所述非阻塞数据输入输出请求写入对应的所述非阻塞数据输入输出请求队列以按所述对应的所述非阻塞数据输入输出请求队列处理所述非阻塞数据输入输出请求。
在一些实施中,所述存储控制器为磁盘阵列卡。
为解决上述技术问题,本发明还提供一种存储控制装置,包括:
获取单元,用于获取所在设备的非均匀存储器访问架构信息;
初始化单元,用于在进行对所述设备连接的存储控制器的存储驱动初始化时,根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断;
控制单元,用于基于对应的所述存储处理队列和对应的所述存储处理中断,执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务。
为解决上述技术问题,本发明还提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如上述任意一项所述存储控制方法的步骤。
为解决上述技术问题,本发明还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任意一项所述存储控制方法的步骤。
本发明所提供的存储控制方法,通过在执行对所在设备的存储驱动初始化时,根据所在设备的非均匀存储器访问架构信息为设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,从而在进入操作系统后执行处理器与存储控制器之间的系统数据交互任务时基于对应非均匀存储器访问节点的存储处理队列和存储处理中断执行,使得任意处理器在执行系统数据交互任务时均可以基于本非均匀存储器访问节点内的内存乃至本地内存执行,减少处理器需要访问远端内存的情况,减少处理器上下文切换时间,提升系统并发能力,从而提升多处理器设备的系统数据输入输出效率。
本发明所提供的存储控制方法,通过在为各非均匀存储器访问节点乃至各非均匀存储器访问节点中的处理器绑定一一对应的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,以实现使正在执行系统数据输入输出请求的处理器能够基于本地内存与存储控制器进行交互,无需访问远端内存。
本发明所提供的存储控制方法,通过基于直接内存访问算法执行系统数据交互任务,并为各非均匀存储器访问节点乃至各非均匀存储器访问节点中的处理器绑定一一对应的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,以在缩短存储控制器与处理器之间的数据传输路径的同时实现使正在执行系统数据输入输出请求的处理器能够基于本地内存与存储控制器进行交互,无需访问远端内存。
本发明所提供的存储控制方法,通过为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,基于该专有的非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求,以避免优先级高于系统输入输出请求的非阻塞数据输入输出请求阻塞系统输入输出请求的处理。
本发明还提供一种存储控制装置、电子设备及可读存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种设备架构图;
图2为本发明实施例提供的一种传统系统数据输入输出方案示意图;
图3为基于本发明实施例提供的设备架构实现的系统数据输入输出方案示意图;
图4为本发明实施例提供的一种存储控制方法的流程图;
图5为本发明实施例提供的一种存储控制装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
本发明的核心是提供一种存储控制方法、装置、电子设备及可读存储介质,用于提高多处理器系统的系统数据输入输出效率。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明实施例一进行说明。
图1为本发明实施例提供的一种设备架构图;图2为本发明实施例提供的一种传统系统数据输入输出方案示意图;图3为基于本发明实施例提供的设备架构实现的系统数据输入输出方案示意图。
为便于理解,首先对本发明适用的系统架构进行介绍。本发明实施例提供的具体实施方式可以适用于任意外接有存储控制器的多处理器的设备。在本发明各实施例中,处理器可以指中央处理器(Central Processing Unit,CPU)或其他类型处理器。
如图1所示,在对称多处理器(Symmetric multiprocessing,SMP)系统的设备中,采用非均匀存储器访问(Non-Uniform Memory Access,NUMA)架构,非均匀存储器访问架构中系统分为多个非均匀存储器访问节点。非均匀存储器访问节点之间通过互联总线连接,处理器访问非所在非均匀存储器访问节点内的内存时需要通过互连总线,实验开销较大。存储控制器作为存储设备连接在设备上作为存储资源。在设备上,虽然利用了非均匀存储器访问架构实现了处理器访问内存存储器的并发优势,当时由于在初始化存储驱动时会提前为存储控制器分配好所需的内存资源池,且会默认优先分配到当前处理器所在的非均匀存储器访问节点上,当其他非均匀存储器访问节点的处理器执行系统数据输入输出请求时,就需要进行内存远端访问获取分配给存储控制器的内存资源,导致增大。在本发明各实施例中,存储控制器可以为磁盘阵列卡,如独立磁盘冗余阵列(Redundant Arrays ofIndependent Disks,RAID)卡、串行连接SCSI接口(Serial Attached SCSI,SAS)卡等。
如图2所示,在设备的非均匀存储器访问系统中分为多个非均匀存储器访问节点(节点0、节点1、节点2……),每个非均匀存储器访问节点上有多个处理器,例如,节点0上有处理器0、处理器1,节点1上有处理器2、处理器3,节点2上有处理器4、处理器5。采用传统的非均匀存储器访问系统基础上的系统数据输入输出方案,假设在执行存储驱动初始化时默认分配了节点0,在设备运行过程中,若系统数据输入输出请求落在节点0时,即由节点0上的处理器执行系统数据输入输出请求时,能够实现处理器基于本地内存执行系统数据输入输出请求;但若系统数据输入输出请求落在节点1或节点2时,即由节点1或节点2上的处理器执行系统数据输入输出请求时,则处理器需要通过节点之间的互联总线访问节点1上的内存,导致了内存的远端访问。
而应用本发明实施例提供的存储控制方案,通过在执行对所在设备的存储驱动初始化时,根据所在设备的非均匀存储器访问架构信息为设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,从而在进入操作系统后执行处理器与存储控制器之间的系统数据交互任务时基于对应非均匀存储器访问节点的存储处理队列和存储处理中断执行。如图3所示,假设还是基于如图2所示的非均匀存储器访问系统架构,通过在初始化存储驱动时在各非均匀存储器访问节点均绑定存储处理队列和存储处理中断,从而不论是节点0、节点1还是节点2,在非均匀存储器访问节点上的处理器执行系统数据输入输出请求时,都能够基于预先与所在非均匀存储器访问节点绑定的存储处理队列进行本地内存访问,无需再执行内存的远端访问,由此有效提升了处理器执行系统数据输入输出任务的效率。
在上述架构的基础上,下面结合附图对本发明实施例提供的存储控制方法进行说明。
下面对本发明实施例二进行说明。
图4为本发明实施例提供的一种存储控制方法的流程图。
如图4所示,本发明实施例提供的存储控制方法包括:
S401:获取所在设备的非均匀存储器访问架构信息。
S402:在进行对设备连接的存储控制器的存储驱动初始化时,根据非均匀存储器访问架构信息,为设备的各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断。
S403:基于对应的存储处理队列和对应的存储处理中断,执行非均匀存储器访问节点中的处理器与存储控制器的系统数据交互任务。
在具体实施中,本发明实施例所针对的设备可以为任意连接有具有存储控制器的存储设备的计算机设备。存储控制器可以为磁盘阵列卡,例如独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID)卡、串行连接SCSI接口(SerialAttached SCSI,SAS)卡等。
在多处理器设备上,应用非均匀存储器访问架构可以实现各处理器对内存的并发访问,但是由于在存储驱动初始化时仅将存储驱动绑定了初始化时在工作的处理器上,即绑定到了该处理器的内存上,任意处理器在执行系统数据输入输出时都需要基于初始化时的内存与存储控制器交互,涉及到大量的处理器访问远端内存的情况,影响系统数据输入输出效率。故本发明实施例为基于非均匀存储器访问架构的多处理器设备提供一种新的存储控制方法,通过在进行存储驱动初始化时给各非均匀存储器访问节点绑定存储处理队列和存储处理中断,从而任意处理器在执行系统数据输入输出任务时均可以基于所在非均匀存储器访问节点的内存执行,减少处理器需要访问远端内存的情况,从而提升多处理器设备的系统数据输入输出效率,充分发挥非均匀存储器访问架构的优势。其中,S401、S402为本发明实施例提供的改进后的存储驱动初始化方案,可以基于设备启动时用于执行存储驱动初始化的处理器执行。S403则为设备进入操作系统后的步骤,任意处理器在执行与存储控制器的系统数据交互任务时均根据存储驱动中为非均匀存储器访问节点绑定的对存储控制器的存储处理队列和存储处理中断实现与存储控制器的交互,实现处理器在执行与存储控制器的系统数据交互任务时基于本地内存而无需访问远端内存。
对于S401,非均匀存储器访问架构信息可以包括非均匀存储器访问节点的数量、各非均匀存储器访问节点的标识、各非均匀存储器访问节点的处理器的数量、各非均匀存储器访问节点的处理器的标识等。非均匀存储器访问架构信息可以在设备的操作系统初始化时对设备进行扫描得到,也可以通过访问预先存储的非均匀存储器访问架构信息得到。
对于S402,通常在设备的操作系统初始化时执行对设备所连接的存储设备的存储驱动初始化,建立与存储控制器的交互机制以及初始化存储机制。在本发明实施例提供的存储控制方法中,根据获取的非均匀存储器访问架构信息来为各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断,即相当于对各非均匀存储器访问节点初始化基于本地内存的存储驱动初始化。需要说明的是,本发明实施例提供的存储控制方法可以无需对存储设备侧进行改动,而只需在设备侧的存储驱动中进行初始化过程的改动即可。
对于S403,在多处理器设备中,各处理器都有可能执行系统数据输入输出请求。根据S402执行的存储驱动初始化的结果,各处理器在基于存储驱动执行系统数据输入输出请求与存储控制器进行系统数据输入输出交互时,都根据预先绑定的储处理队列和存储处理中断执行系统数据交互任务,即处理器基于本地内存与存储控制器进行系统数据输入输出交互。
本发明实施例提供的存储控制方法,通过在执行对所在设备的存储驱动初始化时,根据所在设备的非均匀存储器访问架构信息为设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,从而在进入操作系统后执行处理器与存储控制器之间的系统数据交互任务时基于对应非均匀存储器访问节点的存储处理队列和存储处理中断执行,使得任意处理器在执行系统数据交互任务时均可以基于本非均匀存储器访问节点内的内存乃至本地内存执行,减少处理器需要访问远端内存的情况,减少处理器上下文切换时间,提升系统并发能力,从而提升多处理器设备的系统数据输入输出效率。
下面对本发明实施例三进行说明。
在上述实施例的基础上,本发明实施例提供一种为各非均匀存储器访问节点实现存储处理队列和存储处理中断绑定的方案。
在本发明实施例提供的存储控制方法中,S402中根据非均匀存储器访问架构信息,为设备的各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断,可以包括:根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列。
处理器执行系统数据输入输出请求,包括操作系统对存储设备的写数据命令以及读数据命令,故在实现为各非均匀存储器访问节点绑定存储处理队列和存储处理中断时,具体为各非均匀存储器访问节点绑定对存储控制器的中断向量以及建立系统数据输入输出请求队列和系统数据输入输出响应队列。
其中,系统数据输入输出请求队列和系统数据输入输出响应队列各自占用一段存储空间。系统数据输入输出请求队列按照先进先出原则存入系统数据输入输出请求并将请求出队处理。系统数据输入输出响应队列按先进先出原则存入存储控制器对处理器的系统数据输入输出请求的响应结果并出队处理。中断向量供存储控制器在执行完处理器的系统数据输入输出请求返回响应结果时触发中断以使处理器到系统数据输入输出响应队列读取响应结果。
进一步的,根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,可以包括:根据各非均匀存储器访问节点中处理器的信息,为各处理器绑定一一对应的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列。
通过为各处理器绑定单独的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,从而进一步提升多处理器系统的系统数据输入输出的并发性能。
具体来说,为各处理器绑定一一对应的中断向量,可以包括:对各非均匀存储器访问节点,申请与处理器的数量相同的中断向量;创建中断管理数组,中断管理数组中的子中断管理数组与非均匀存储器访问节点一一对应,子中断管理数组中的元素分别绑定处理器的标识和与处理器对应的中断向量的标识。
根据在线的处理器的数量申请同样数量的中断向量,根据设备设置,可以采用讯息式中断(Message Signaled Interrupts,MSI)。假设设备共有x个处理器在线,则申请中断向量MSI-x(x=0,1,2……x-1),创建中断管理数组,中断管理数组中的子中断管理数组均匀地分配在每个非均匀存储器访问节点上,即对应每个非均匀存储器访问节点创建一个MSI-x的子中断管理数组,子中断管理数组的数量等于本非均匀存储器访问节点内处理器的数量,子中断管理数组的元素类型是结构体,每个结构体的一个成员cpuId绑定一个处理器的标识(ID),另一个成员MSIxId绑定一个中断向量的标识(中断向量号MSI-x),并设置此中断向量号MSI-x和绑定的处理器的亲和性;子中断管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点为0的子中断管理数组命令为:MSIxArry_0[M]。
为各处理器绑定一一对应的系统数据输入输出请求队列,可以包括:对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出请求队列;创建系统数据输入输出请求队列管理数组,系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出请求队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出请求队列的地址。
系统数据输入输出请求队列管理数组应均匀分配在各非均匀存储器访问节点上,即每个非均匀存储器访问节点创建一个子系统数据输入输出请求队列管理数组,子系统数据输入输出请求队列管理数组的元素数量等于本非均匀存储器访问节点内的处理器的数量;每个元素类型是个结构体,每个结构体中成员cpuId绑定一个处理器的标识(ID),结构体的另一成员是个指针reqPointer,指向即将为此元素创建的系统数据输入输出请求队列;系统数据输入输出请求队列管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点0的系统数据输入输出请求队列管理数组命名为:RequestAdmPool_0[M]。
为各子系统数据输入输出响应队列管理数组在其所在的非均匀存储器访问节点上创建系统数据输入输出请求队列,并让子系统数据输入输出响应队列管理数组的元素的指针reqPointer均指向对应的系统数据输入输出请求队列,为系统数据输入输出请求队列分配内存缓冲区,以供处理器和存储控制器访问。
为各处理器绑定一一对应的系统数据输入输出响应队列,可以包括:对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出响应队列;创建系统数据输入输出响应队列管理数组,系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出响应队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出响应队列的地址。
同创建系统数据输入输出请求队列管理数组的原则一样,将系统数据输入输出响应队列管理数组均匀地分布在各非均匀存储器访问节点,为每个非均匀存储器访问节点创建一个子系统数据输入输出响应队列管理数组,子系统数据输入输出响应队列管理数组的元素数量等于本非均匀存储器访问节点内的处理器的数量;元素类型是结构体,每个结构体中的成员cpuId绑定一个处理器的标识(ID);结构体的另一成员为指针ReplyPointer,指向即将为此元素创建的系统数据输入输出响应队列;子系统数据输入输出响应队列管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点0的子系统数据输入输出响应队列管理数组命名为ReplyAdmPool_0[M]。
为各子系统数据输入输出响应队列管理数组的元素在其所在的非均匀存储器访问节点上创建系统数据输入输出响应队列,并让子系统数据输入输出响应队列管理数组内的元素的成员指针ReplyPointer指向该系统数据输入输出响应队列,为系统数据输入输出响应队列分配内存缓冲区,以供处理器和存储控制器访问。
由此,S403中基于对应的存储处理队列和对应的存储处理中断,执行非均匀存储器访问节点中的处理器与存储控制器的系统数据交互任务,可以包括:
当接收到系统数据输入输出请求时,查询与系统数据输入输出请求的线程所在的处理器的标识以及处理器所在的非均匀存储器访问节点的标识;
根据处理器的标识以及非均匀存储器访问节点的标识查询对应的中断向量、对应的系统数据输入输出请求队列和对应的系统数据输入输出响应队列;
若系统数据输入输出请求为对存储控制器的写数据命令,则将写数据命令写入对应的系统数据输入输出请求队列中,并在存储控制器触发中断时调用对应的中断向量触发处理器基于对应的系统数据输入输出响应队列接收存储控制器对写数据命令的执行结果;
若系统数据输入输出请求为对存储控制器的读数据命令,则将读数据命令写入对应的系统数据输入输出请求队列中,并在存储控制器触发中断时调用对应的中断向量触发处理器基于对应的系统数据输入输出响应队列接收存储控制器返回的读目标数据。
即是说,在系统数据输入输出请求到来时,查询得到此系统数据输入输出请求的线程所在的处理器ID(假设为c)和非均匀存储器访问节点号(假设为n),遍历中断管理数组找到与非均匀存储器访问节点对应的子中断管理数组MSIxArry_n再找到cpiId==c的元素i,则对应的MIS-x中断向量为MSIxArry_n[i].MSIxId。当系统输入输出命令被处理后会在对应的子系统数据输入输出响应队列管理数组ReplyAdmPool_n中遍历到cpiId==c的元素i即对应的系统数据输入输出响应队列ReplyAdmPool_n[i],其指针replyPointer指向的内存上构建响应描述符,并通过MSIxArry_n[i].MSIxId触发中断。由于在中断管理数组MSIxId中已设置中断向量和处理器的亲和性,所以中断会在处理对应的系统数据输入输出请求的处理器上触发,这样每个处理器所处理的请求描述符、响应描述符都在本非均匀存储器访问节点的内存上,从而避免了内存的远端访问。
本发明实施例提供的存储控制方法,通过在为各非均匀存储器访问节点乃至各非均匀存储器访问节点中的处理器绑定一一对应的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,以实现使正在执行系统数据输入输出请求的处理器能够基于本地内存与存储控制器进行交互,无需访问远端内存。
下面对本发明实施例四进行说明。
在上述实施例的基础上,本发明实施例提供另一种为各非均匀存储器访问节点实现存储处理队列和存储处理中断绑定的方案。
在本发明实施例提供的存储控制方法中,S403中基于对应的存储处理队列和对应的存储处理中断,执行非均匀存储器访问节点中的处理器与存储控制器的系统数据交互任务,可以包括:利用对应的存储处理队列和对应的存储处理中断,基于直接内存访问(Direct Memory Access,DMA)算法执行系统数据交互任务。
为提升处理器和存储控制器的交互效率,通过直接内存访问算法来缩短处理器到存储控制器之间的系统数据输入输出效率,即二者都通过将数据写入处理器的内存以及到处理器的内存中读取的方式进行系统数据交互。
基于此,S402中根据非均匀存储器访问架构信息,为设备的各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断,可以包括:根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧;其中,系统数据输入输出响应队列用于保存存储控制器对处理器的系统数据输入输出请求的响应描述符,数据帧用于保存存储控制器对处理器的系统数据输入输出请求的响应数据。
即相较于本发明实施例三,本发明实施例除了为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列之外,还为各非均匀存储器访问节点绑定数据帧,其中数据帧用于存储数据,而只将命令信息和响应信息写入系统数据输入输出请求队列和系统数据输入输出响应队列。
进一步的,根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,可以包括:根据各非均匀存储器访问节点中处理器的信息,为各处理器绑定一一对应的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧。
通过为各处理器绑定单独的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,从而进一步提升多处理器系统的系统数据输入输出的并发性能。
具体来说,为各处理器绑定一一对应的中断向量,可以包括:对各非均匀存储器访问节点,申请与处理器的数量相同的中断向量;创建中断管理数组,中断管理数组中的子中断管理数组与非均匀存储器访问节点一一对应,子中断管理数组中的元素分别绑定处理器的标识和与处理器对应的中断向量。
根据在线的处理器的数量申请同样数量的中断向量,根据设备设置,可以采用讯息式中断(Message Signaled Interrupts,MSI)。假设设备共有x个处理器在线,则申请中断向量MSI-x(x=0,1,2……x-1),创建中断管理数组,中断管理数组中的子中断管理数组均匀地分配在每个非均匀存储器访问节点上,即对应每个非均匀存储器访问节点创建一个MSI-x的子中断管理数组,子中断管理数组的数量等于本非均匀存储器访问节点内处理器的数量,子中断管理数组的元素类型是结构体,每个结构体的一个成员cpuId绑定一个处理器的标识(ID),另一个成员MSIxId绑定一个中断向量的标识(中断向量号MSI-x),并设置此中断向量号MSI-x和绑定的处理器的亲和性;子中断管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点为0的子中断管理数组命令为MSIxArry_0[M]。
为各处理器绑定一一对应的系统数据输入输出请求队列,可以包括:对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出请求队列;创建系统数据输入输出请求队列管理数组,系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出请求队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出请求队列的地址。
系统数据输入输出请求队列管理数组应均匀分配在各非均匀存储器访问节点上,即每个非均匀存储器访问节点创建一个子系统数据输入输出请求队列管理数组,子系统数据输入输出请求队列管理数组的元素数量等于本非均匀存储器访问节点内的处理器的数量;每个元素类型是个结构体,每个结构体中成员cpuId绑定一个处理器的标识(ID),结构体的另一成员是个指针reqPointer,指向即将为此元素创建的系统数据输入输出请求队列;系统数据输入输出请求队列管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点0的系统数据输入输出请求队列管理数组命名为RequestAdmPool_0[M]。
为各子系统数据输入输出响应队列管理数组在其所在的非均匀存储器访问节点上创建系统数据输入输出请求队列,并让子系统数据输入输出响应队列管理数组的元素的指针reqPointer均指向对应的系统数据输入输出请求队列,为系统数据输入输出请求队列分配内存缓冲区,以供处理器和存储控制器访问。
为各处理器绑定一一对应的系统数据输入输出响应队列,可以包括:对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出响应队列;创建系统数据输入输出响应队列管理数组,系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出响应队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出响应队列的地址。
同创建系统数据输入输出请求队列管理数组的原则一样,将系统数据输入输出响应队列管理数组均匀地分布在各非均匀存储器访问节点,为每个非均匀存储器访问节点创建一个子系统数据输入输出响应队列管理数组,子系统数据输入输出响应队列管理数组的元素数量等于本非均匀存储器访问节点内的处理器的数量;元素类型是结构体,每个结构体中的成员cpuId绑定一个处理器的标识(ID);结构体的另一成员为指针ReplyPointer,指向即将为此元素创建的系统数据输入输出响应队列;子系统数据输入输出响应队列管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点0的子系统数据输入输出响应队列管理数组命名为ReplyAdmPool_0[M]。
为各子系统数据输入输出响应队列管理数组的元素在其所在的非均匀存储器访问节点上创建系统数据输入输出响应队列,并让子系统数据输入输出响应队列管理数组内的元素的成员指针ReplyPointer指向该系统数据输入输出响应队列,为系统数据输入输出响应队列分配内存缓冲区,以供处理器和存储控制器访问。
为各处理器绑定一一对应的数据帧,可以包括:对各非均匀存储器访问节点,创建与处理器的数量相同的数据帧;创建数据帧管理数组,数据帧管理数组中的子数据帧管理数组与非均匀存储器访问节点一一对应,子数据帧管理数组中的元素分别绑定处理器的标识和与处理器对应的数据帧的地址。
同理,数据帧管理数组也均匀地分布在各非均匀存储器访问节点,为每个非均匀存储器访问节点创建一个子数据帧管理数组,每个子数据帧管理数组的元素数量等于本非均匀存储器访问节点内的处理器数量;每个元素也是一个结构体,每个结构体的成员cpuId绑定一个处理器的标识(ID),另一个成员为指针framePointer,指向即将分配的数据帧;子数据帧管理数组的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点0的子数据帧管理数组命名为FrameAdmPool_0[M]。
为各子数据帧管理数组的元素在其所在的非均匀存储器访问节点上创建数据帧,并让子数据帧管理数组的元素的成员指针framePointer指向对应的数据帧,为数据帧分配内存缓冲区,以供处理器和存储控制器访问。
由此,S403中利用对应的存储处理队列和对应的存储处理中断,基于直接内存访问算法执行系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与系统数据输入输出请求的线程所在的处理器的标识以及处理器所在的非均匀存储器访问节点的标识;
根据处理器的标识以及非均匀存储器访问节点的标识查询对应的中断向量、对应的系统数据输入输出请求队列、对应的系统数据输入输出响应队列和对应的数据帧;
若系统数据输入输出请求为对存储控制器的写数据命令,则将写数据命令写入对应的系统数据输入输出请求队列中,并将待写入数据写入对应的数据帧以使存储控制器至数据帧读取待写入数据,并在存储控制器触发中断时调用对应的中断向量触发处理器基于对应的系统数据输入输出响应队列接收存储控制器对写数据命令的执行结果;
若系统数据输入输出请求为对存储控制器的读数据命令,则将读数据命令写入对应的系统数据输入输出请求队列中,并在存储控制器触发中断时调用对应的中断向量触发处理器在对应的数据帧读取存储控制器写入的读目标数据。
即是说,在系统数据输入输出请求到来时,查询得到此系统数据输入输出请求的线程所在的处理器ID(假设为c)和非均匀存储器访问节点号(假设为n),遍历中断管理数组找到与非均匀存储器访问节点对应的子中断管理数组MSIxArry_n再找到cpiId==c的元素i,则对应的MIS-x中断向量为MSIxArry_n[i].MSIxId。当系统输入输出命令被处理后会在对应的子系统数据输入输出响应队列管理数组ReplyAdmPool_n中遍历到cpiId==c的元素i即对应的系统数据输入输出响应队列ReplyAdmPool_n[i],其指针replyPointer指向的内存上构建响应描述符,并通过MSIxArry_n[i].MSIxId触发中断。由于在中断管理数组MSIxId中已设置中断向量和处理器的亲和性,所以中断会在处理对应的系统数据输入输出请求的处理器上触发,这样每个处理器所处理的请求描述符、数据帧、响应描述符都在本非均匀存储器访问节点的内存上,从而避免了内存的远端访问。
本发明实施例提供的存储控制方法,通过基于直接内存访问算法执行系统数据交互任务,并为各非均匀存储器访问节点乃至各非均匀存储器访问节点中的处理器绑定一一对应的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,以在缩短存储控制器与处理器之间的数据传输路径的同时实现使正在执行系统数据输入输出请求的处理器能够基于本地内存与存储控制器进行交互,无需访问远端内存。
下面对本发明实施例五进行说明。
在设备处理系统数据输入输出请求时,会存在很多非阻塞数据输入输出命令,例如放弃请求、扫描设备等。这些非阻塞数据输入输出命令需要优先执行。目前设备处理系统数据输入输出请求时会将非阻塞数据输入输出命令同系统数据输入输出请求放在同一个队列中,由于非阻塞数据输入输出命令会被优先处理器,会导致对系统数据输入输出请求执行的阻塞。
故在上述实施例的基础上,本发明实施例提供的存储控制方法还可以包括:根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,以基于非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求。
在具体实施中,根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,可以包括:根据非均匀存储器访问架构中处理器的信息,为非均匀存储器访问节点绑定一一对应的非阻塞数据输入输出请求队列以处理非均匀存储器访问节点中所有处理器的非阻塞数据输入输出请求。
具体来说,为每个非均匀存储器访问节点创建一个非阻塞数据输入输出请求队列,用于处理本非均匀存储器访问节点内所有处理器上的非阻塞数据输入输出请求。非阻塞数据输入输出请求队列的命名可以以非均匀存储器访问节点的标识(节点号)为后缀,如节点0的非阻塞数据输入输出请求队列可以命名为NonIOQueue[0]。或者,也可以进一步为各处理器分配一一对应的非阻塞数据输入输出请求队列。
由此,基于非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求,可以包括:当接收到非阻塞数据输入输出请求时,查询与非阻塞数据输入输出请求对应的非均匀存储器访问节点的标识;根据非均匀存储器访问节点的标识查询对应的非阻塞数据输入输出请求队列;将非阻塞数据输入输出请求写入对应的非阻塞数据输入输出请求队列以按对应的非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求。
即是说,当接收到数据输入输出请求时,查询该数据输入输出请求是系统数据输入输出请求还是非阻塞数据输入输出请求,并查询得到此系统数据输入输出的线程所在的处理器ID(假设为c)和非均匀存储器访问节点号(假设为n)。若数据输入输出请求是系统数据输入输出请求,则对应的系统数据输入输出请求队列为RequestAdmPool_n[i].reqPointer。若数据输入输出请求是非阻塞数据输入输出请求,则对应的非阻塞数据输入输出请求队列为ReplyAdmPool_n[i].replyPointer。
在一些实施中,考虑到非阻塞数据输入输出请求需要优先处理,若非阻塞数据输入输出请求队列存在请求,则系统优先派发。
本发明实施例提供的存储控制方法,通过为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,基于该专有的非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求,以避免优先级高于系统输入输出请求的非阻塞数据输入输出请求阻塞系统输入输出请求的处理。
本发明实施例提供的存储控制方法,通过为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列以避免非阻塞数据输入输出请求对系统数据输入输出请求的阻塞,为各非均匀存储器访问节点乃至各非均匀存储器访问节点中的处理器绑定一一对应的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,经测试,可以将系统处理数据输入输出的能力提升30%。
上文详述了存储控制方法对应的各个实施例,在此基础上,本发明还公开了与上述方法对应的存储控制装置、电子设备及可读存储介质。
下面对本发明实施例六进行说明。
图5为本发明实施例提供的一种存储控制装置的结构示意图。
如图5所示,本发明实施例提供的存储控制装置包括:
获取单元501,用于获取所在设备的非均匀存储器访问架构信息;
初始化单元502,用于在进行对设备连接的存储控制器的存储驱动初始化时,根据非均匀存储器访问架构信息,为设备的各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断;
控制单元503,用于基于对应的存储处理队列和对应的存储处理中断,执行非均匀存储器访问节点中的处理器与存储控制器的系统数据交互任务。
在一些实施中,初始化单元502根据非均匀存储器访问架构信息,为设备的各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断,包括:
根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列。
在一些实施中,初始化单元502根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,包括:
根据各非均匀存储器访问节点中处理器的信息,为各处理器绑定一一对应的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列。
在一些实施中,初始化单元502为各处理器绑定一一对应的中断向量,包括:
对各非均匀存储器访问节点,申请与处理器的数量相同的中断向量;
创建中断管理数组,中断管理数组中的子中断管理数组与非均匀存储器访问节点一一对应,子中断管理数组中的元素分别绑定处理器的标识和与处理器对应的中断向量的标识。
在一些实施中,初始化单元502为各处理器绑定一一对应的系统数据输入输出请求队列,包括:
对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出请求队列;
创建系统数据输入输出请求队列管理数组,系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出请求队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出请求队列的地址。
在一些实施中,初始化单元502为各处理器绑定一一对应的系统数据输入输出响应队列,包括:
对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出响应队列;
创建系统数据输入输出响应队列管理数组,系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出响应队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出响应队列的地址。
在一些实施中,控制单元503基于对应的存储处理队列和对应的存储处理中断,执行非均匀存储器访问节点中的处理器与存储控制器的系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与系统数据输入输出请求的线程所在的处理器的标识以及处理器所在的非均匀存储器访问节点的标识;
根据处理器的标识以及非均匀存储器访问节点的标识查询对应的中断向量、对应的系统数据输入输出请求队列和对应的系统数据输入输出响应队列;
若系统数据输入输出请求为对存储控制器的写数据命令,则将写数据命令写入对应的系统数据输入输出请求队列中,并在存储控制器触发中断时调用对应的中断向量触发处理器基于对应的系统数据输入输出响应队列接收存储控制器对写数据命令的执行结果;
若系统数据输入输出请求为对存储控制器的读数据命令,则将读数据命令写入对应的系统数据输入输出请求队列中,并在存储控制器触发中断时调用对应的中断向量触发处理器基于对应的系统数据输入输出响应队列接收存储控制器返回的读目标数据。
在一些实施中,控制单元503基于对应的存储处理队列和对应的存储处理中断,执行非均匀存储器访问节点中的处理器与存储控制器的系统数据交互任务,包括:
利用对应的存储处理队列和对应的存储处理中断,基于直接内存访问算法执行系统数据交互任务。
在一些实施中,初始化单元502根据非均匀存储器访问架构信息,为设备的各非均匀存储器访问节点绑定对存储控制器的存储处理队列和存储处理中断,包括:
根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧;
其中,系统数据输入输出响应队列用于保存存储控制器对处理器的系统数据输入输出请求的响应描述符,数据帧用于保存存储控制器对处理器的系统数据输入输出请求的响应数据。
在一些实施中,初始化单元502根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定对存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,包括:
根据各非均匀存储器访问节点中处理器的信息,为各处理器绑定一一对应的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧。
在一些实施中,初始化单元502为各处理器绑定一一对应的中断向量,包括:
对各非均匀存储器访问节点,申请与处理器的数量相同的中断向量;
创建中断管理数组,中断管理数组中的子中断管理数组与非均匀存储器访问节点一一对应,子中断管理数组中的元素分别绑定处理器的标识和与处理器对应的中断向量。
在一些实施中,初始化单元502为各处理器绑定一一对应的系统数据输入输出请求队列,包括:
对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出请求队列;
创建系统数据输入输出请求队列管理数组,系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出请求队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出请求队列的地址。
在一些实施中,初始化单元502为各处理器绑定一一对应的系统数据输入输出响应队列,包括:
对各非均匀存储器访问节点,创建与处理器的数量相同的系统数据输入输出响应队列;
创建系统数据输入输出响应队列管理数组,系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与非均匀存储器访问节点一一对应,子系统数据输入输出响应队列管理数组中的元素分别绑定处理器的标识和与处理器对应的系统数据输入输出响应队列的地址。
在一些实施中,初始化单元502为各处理器绑定一一对应的数据帧,包括:
对各非均匀存储器访问节点,创建与处理器的数量相同的数据帧;
创建数据帧管理数组,数据帧管理数组中的子数据帧管理数组与非均匀存储器访问节点一一对应,子数据帧管理数组中的元素分别绑定处理器的标识和与处理器对应的数据帧的地址。
在一些实施中,控制单元503利用对应的存储处理队列和对应的存储处理中断,基于直接内存访问算法执行系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与系统数据输入输出请求的线程所在的处理器的标识以及处理器所在的非均匀存储器访问节点的标识;
根据处理器的标识以及非均匀存储器访问节点的标识查询对应的中断向量、对应的系统数据输入输出请求队列、对应的系统数据输入输出响应队列和对应的数据帧;
若系统数据输入输出请求为对存储控制器的写数据命令,则将写数据命令写入对应的系统数据输入输出请求队列中,并将待写入数据写入对应的数据帧以使存储控制器至数据帧读取待写入数据,并在存储控制器触发中断时调用对应的中断向量触发处理器基于对应的系统数据输入输出响应队列接收存储控制器对写数据命令的执行结果;
若系统数据输入输出请求为对存储控制器的读数据命令,则将读数据命令写入对应的系统数据输入输出请求队列中,并在存储控制器触发中断时调用对应的中断向量触发处理器在对应的数据帧读取存储控制器写入的读目标数据。
在一些实施中,初始化单元502还可以用于根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,以基于非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求。
在一些实施中,初始化单元502根据非均匀存储器访问架构信息,为各非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,包括:
根据非均匀存储器访问架构中处理器的信息,为非均匀存储器访问节点绑定一一对应的非阻塞数据输入输出请求队列以处理非均匀存储器访问节点中所有处理器的非阻塞数据输入输出请求。
在一些实施中,初始化单元502基于非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求,包括:
当接收到非阻塞数据输入输出请求时,查询与非阻塞数据输入输出请求对应的非均匀存储器访问节点的标识;
根据非均匀存储器访问节点的标识查询对应的非阻塞数据输入输出请求队列;
将非阻塞数据输入输出请求写入对应的非阻塞数据输入输出请求队列以按对应的非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求。
在一些实施中,存储控制器为磁盘阵列卡。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
下面对本发明实施例七进行说明。
图6为本发明实施例提供的一种电子设备的结构示意图。
如图6所示,本发明实施例提供的电子设备包括:
存储器610,用于存储计算机程序611;
处理器620,用于执行计算机程序611,该计算机程序611被处理器620执行时实现如上述任意一项实施例所述存储控制方法的步骤。
其中,处理器620可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器620可以采用数字信号处理DSP(Digital Signal Processing)、现场可编程门阵列FPGA(Field-Programmable Gate Array)、可编程逻辑阵列PLA(Programmable LogicArray)中的至少一种硬件形式来实现。处理器620也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器CPU(CentralProcessing Unit);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器620可以集成有图像处理器GPU(Graphics Processing Unit),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器620还可以包括人工智能AI(Artificial Intelligence)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器610可以包括一个或多个可读存储介质,该可读存储介质可以是非暂态的。存储器610还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器610至少用于存储以下计算机程序611,其中,该计算机程序611被处理器620加载并执行之后,能够实现前述任一实施例公开的存储控制方法中的相关步骤。另外,存储器610所存储的资源还可以包括操作系统612和数据613等,存储方式可以是短暂存储或者永久存储。其中,操作系统612可以为Windows。数据613可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,电子设备还可包括有显示屏630、电源640、通信接口650、输入输出接口660、传感器670以及通信总线680。
本领域技术人员可以理解,图6中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的组件。
本发明实施例提供的电子设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的存储控制方法,效果同上。
下面对本发明实施例八进行说明。
需要说明的是,以上所描述的装置、设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。
为此,本发明实施例还提供一种可读存储介质,该可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如存储控制方法的步骤。
该可读存储介质可以包括:U盘、移动硬盘、只读存储器ROM(Read-Only Memory)、随机存取存储器RAM(Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的存储控制方法的步骤,效果同上。
以上对本发明所提供的一种存储控制方法、装置、电子设备及可读存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、电子设备及可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (22)
1.一种存储控制方法,其特征在于,包括:
获取所在设备的非均匀存储器访问架构信息;
在进行对所述设备连接的存储控制器的存储驱动初始化时,根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,以实现对各所述非均匀存储器访问节点基于本地内存的存储驱动初始化;
基于对应的所述存储处理队列和对应的所述存储处理中断,以实现基于处理器所在的所述非均匀存储器访问节点的内存执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务。
2.根据权利要求1所述的存储控制方法,其特征在于,所述根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,包括:
根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列。
3.根据权利要求2所述的存储控制方法,其特征在于,所述根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列和系统数据输入输出响应队列,包括:
根据各所述非均匀存储器访问节点中处理器的信息,为各所述处理器绑定一一对应的所述中断向量、所述系统数据输入输出请求队列和所述系统数据输入输出响应队列。
4.根据权利要求3所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述中断向量,包括:
对各所述非均匀存储器访问节点,申请与所述处理器的数量相同的所述中断向量;
创建中断管理数组,所述中断管理数组中的子中断管理数组与所述非均匀存储器访问节点一一对应,所述子中断管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述中断向量的标识。
5.根据权利要求3所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述系统数据输入输出请求队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的所述系统数据输入输出请求队列;
创建系统数据输入输出请求队列管理数组,所述系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出请求队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出请求队列的地址。
6.根据权利要求3所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述系统数据输入输出响应队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的所述系统数据输入输出响应队列;
创建系统数据输入输出响应队列管理数组,所述系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出响应队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出响应队列的地址。
7.根据权利要求3所述的存储控制方法,其特征在于,基于对应的所述存储处理队列和对应的所述存储处理中断,执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与所述系统数据输入输出请求的线程所在的所述处理器的标识以及所述处理器所在的所述非均匀存储器访问节点的标识;
根据所述处理器的标识以及所述非均匀存储器访问节点的标识查询对应的所述中断向量、对应的所述系统数据输入输出请求队列和对应的所述系统数据输入输出响应队列;
若所述系统数据输入输出请求为对所述存储控制器的写数据命令,则将所述写数据命令写入对应的所述系统数据输入输出请求队列中,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器基于对应的所述系统数据输入输出响应队列接收所述存储控制器对所述写数据命令的执行结果;
若所述系统数据输入输出请求为对所述存储控制器的读数据命令,则将所述读数据命令写入对应的所述系统数据输入输出请求队列中,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器基于对应的所述系统数据输入输出响应队列接收所述存储控制器返回的读目标数据。
8.根据权利要求1所述的存储控制方法,其特征在于,基于对应的所述存储处理队列和对应的所述存储处理中断,执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务,包括:
利用对应的所述存储处理队列和对应的所述存储处理中断,基于直接内存访问算法执行所述系统数据交互任务。
9.根据权利要求8所述的存储控制方法,其特征在于,所述根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,包括:
根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧;
其中,所述系统数据输入输出响应队列用于保存所述存储控制器对所述处理器的系统数据输入输出请求的响应描述符,所述数据帧用于保存所述存储控制器对所述处理器的所述系统数据输入输出请求的响应数据。
10.根据权利要求9所述的存储控制方法,其特征在于,所述根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定对所述存储控制器的中断向量、系统数据输入输出请求队列、系统数据输入输出响应队列和数据帧,包括:
根据各所述非均匀存储器访问节点中处理器的信息,为各所述处理器绑定一一对应的所述中断向量、所述系统数据输入输出请求队列、所述系统数据输入输出响应队列和所述数据帧。
11.根据权利要求10所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述中断向量,包括:
对各所述非均匀存储器访问节点,申请与所述处理器的数量相同的所述中断向量;
创建中断管理数组,所述中断管理数组中的子中断管理数组与所述非均匀存储器访问节点一一对应,所述子中断管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述中断向量。
12.根据权利要求10所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述系统数据输入输出请求队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的系统数据输入输出请求队列;
创建系统数据输入输出请求队列管理数组,所述系统数据输入输出请求队列管理数组中的子系统数据输入输出请求队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出请求队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出请求队列的地址。
13.根据权利要求10所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述系统数据输入输出响应队列,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的系统数据输入输出响应队列;
创建系统数据输入输出响应队列管理数组,所述系统数据输入输出响应队列管理数组中的子系统数据输入输出响应队列管理数组与所述非均匀存储器访问节点一一对应,所述子系统数据输入输出响应队列管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述系统数据输入输出响应队列的地址。
14.根据权利要求10所述的存储控制方法,其特征在于,为各所述处理器绑定一一对应的所述数据帧,包括:
对各所述非均匀存储器访问节点,创建与所述处理器的数量相同的所述数据帧;
创建数据帧管理数组,所述数据帧管理数组中的子数据帧管理数组与所述非均匀存储器访问节点一一对应,所述子数据帧管理数组中的元素分别绑定所述处理器的标识和与所述处理器对应的所述数据帧的地址。
15.根据权利要求10所述的存储控制方法,其特征在于,所述利用对应的所述存储处理队列和对应的所述存储处理中断,基于直接内存访问算法执行所述系统数据交互任务,包括:
当接收到系统数据输入输出请求时,查询与所述系统数据输入输出请求的线程所在的所述处理器的标识以及所述处理器所在的所述非均匀存储器访问节点的标识;
根据所述处理器的标识以及所述非均匀存储器访问节点的标识查询对应的所述中断向量、对应的所述系统数据输入输出请求队列、对应的所述系统数据输入输出响应队列和对应的所述数据帧;
若所述系统数据输入输出请求为对所述存储控制器的写数据命令,则将所述写数据命令写入对应的所述系统数据输入输出请求队列中,并将待写入数据写入对应的所述数据帧以使所述存储控制器至所述数据帧读取所述待写入数据,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器基于对应的所述系统数据输入输出响应队列接收所述存储控制器对所述写数据命令的执行结果;
若所述系统数据输入输出请求为对所述存储控制器的读数据命令,则将所述读数据命令写入对应的所述系统数据输入输出请求队列中,并在所述存储控制器触发中断时调用对应的所述中断向量触发所述处理器在对应的所述数据帧读取所述存储控制器写入的读目标数据。
16.根据权利要求1所述的存储控制方法,其特征在于,还包括:
根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,以基于所述非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求。
17.根据权利要求16所述的存储控制方法,其特征在于,所述根据所述非均匀存储器访问架构信息,为各所述非均匀存储器访问节点绑定非阻塞数据输入输出请求队列,包括:
根据所述非均匀存储器访问架构中处理器的信息,为所述非均匀存储器访问节点绑定一一对应的所述非阻塞数据输入输出请求队列以处理所述非均匀存储器访问节点中所有所述处理器的所述非阻塞数据输入输出请求。
18.根据权利要求17所述的存储控制方法,其特征在于,所述基于所述非阻塞数据输入输出请求队列处理非阻塞数据输入输出请求,包括:
当接收到所述非阻塞数据输入输出请求时,查询与所述非阻塞数据输入输出请求对应的所述非均匀存储器访问节点的标识;
根据所述非均匀存储器访问节点的标识查询对应的所述非阻塞数据输入输出请求队列;
将所述非阻塞数据输入输出请求写入对应的所述非阻塞数据输入输出请求队列以按所述对应的所述非阻塞数据输入输出请求队列处理所述非阻塞数据输入输出请求。
19.根据权利要求1所述的存储控制方法,其特征在于,所述存储控制器为磁盘阵列卡。
20.一种存储控制装置,其特征在于,包括:
获取单元,用于获取所在设备的非均匀存储器访问架构信息;
初始化单元,用于在进行对所述设备连接的存储控制器的存储驱动初始化时,根据所述非均匀存储器访问架构信息,为所述设备的各非均匀存储器访问节点绑定对所述存储控制器的存储处理队列和存储处理中断,以实现对各所述非均匀存储器访问节点基于本地内存的存储驱动初始化;
控制单元,用于基于对应的所述存储处理队列和对应的所述存储处理中断,以实现基于处理器所在的所述非均匀存储器访问节点的内存执行所述非均匀存储器访问节点中的处理器与所述存储控制器的系统数据交互任务。
21.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至19任意一项所述存储控制方法的步骤。
22.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至19任意一项所述存储控制方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311611548.5A CN117311833B (zh) | 2023-11-29 | 2023-11-29 | 一种存储控制方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311611548.5A CN117311833B (zh) | 2023-11-29 | 2023-11-29 | 一种存储控制方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117311833A CN117311833A (zh) | 2023-12-29 |
CN117311833B true CN117311833B (zh) | 2024-02-23 |
Family
ID=89287014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311611548.5A Active CN117311833B (zh) | 2023-11-29 | 2023-11-29 | 一种存储控制方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117311833B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1330782A (zh) * | 1998-12-17 | 2002-01-09 | 国际商业机器公司 | 非均匀存储器存取(numa)数据处理系统的中断体系结构 |
CN115576759A (zh) * | 2022-10-28 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 压力测试方法、装置、电子设备及可读存储介质 |
CN115729706A (zh) * | 2022-11-24 | 2023-03-03 | 广州超云科技有限公司 | Cpu性能优化系统及方法 |
-
2023
- 2023-11-29 CN CN202311611548.5A patent/CN117311833B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1330782A (zh) * | 1998-12-17 | 2002-01-09 | 国际商业机器公司 | 非均匀存储器存取(numa)数据处理系统的中断体系结构 |
CN115576759A (zh) * | 2022-10-28 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 压力测试方法、装置、电子设备及可读存储介质 |
CN115729706A (zh) * | 2022-11-24 | 2023-03-03 | 广州超云科技有限公司 | Cpu性能优化系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117311833A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3039540B1 (en) | Virtual machine monitor configured to support latency sensitive virtual machines | |
CN105579961B (zh) | 数据处理系统及操作方法、用于数据处理系统的硬件单元 | |
US7200695B2 (en) | Method, system, and program for processing packets utilizing descriptors | |
JP5180373B2 (ja) | 仮想化環境における割り込みメッセージ終了のレイジー処理 | |
US9658877B2 (en) | Context switching using a context controller and on-chip context cache | |
US20050097384A1 (en) | Data processing system with fabric for sharing an I/O device between logical partitions | |
US7814496B2 (en) | Method and system for replicating schedules with regard to a host controller for virtualization | |
CN113918101B (zh) | 一种写数据高速缓存的方法、系统、设备和存储介质 | |
JP7039631B2 (ja) | アクセスリクエストを管理するための方法、装置、デバイス、および記憶媒体 | |
US10983833B2 (en) | Virtualized and synchronous access to hardware accelerators | |
KR20110094764A (ko) | 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법 | |
CN114168271B (zh) | 一种任务调度方法、电子设备及存储介质 | |
CN115988217A (zh) | 一种虚拟化视频编解码系统、电子设备和存储介质 | |
US5371857A (en) | Input/output interruption control system for a virtual machine | |
CN108733585B (zh) | 缓存系统及相关方法 | |
CN112306652A (zh) | 带有上下文提示的功能的唤醒和调度 | |
US6883171B1 (en) | Dynamic address windowing on a PCI bus | |
WO2020177567A1 (zh) | 一种迁移数据的方法、装置及系统 | |
US20200201691A1 (en) | Enhanced message control banks | |
US11068422B1 (en) | Software-controlled interrupts for I/O devices | |
CN117311833B (zh) | 一种存储控制方法、装置、电子设备及可读存储介质 | |
US20220334774A1 (en) | Low latency virtual memory management | |
US11385927B2 (en) | Interrupt servicing in userspace | |
CN114564420A (zh) | 多核处理器共享并行总线的方法 | |
US9176910B2 (en) | Sending a next request to a resource before a completion interrupt for a previous request |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |