CN118093216A - 信息处理方法及设备 - Google Patents
信息处理方法及设备 Download PDFInfo
- Publication number
- CN118093216A CN118093216A CN202211503642.4A CN202211503642A CN118093216A CN 118093216 A CN118093216 A CN 118093216A CN 202211503642 A CN202211503642 A CN 202211503642A CN 118093216 A CN118093216 A CN 118093216A
- Authority
- CN
- China
- Prior art keywords
- information
- micro
- metadata
- information metadata
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 45
- 238000003672 processing method Methods 0.000 title claims abstract description 39
- 238000012545 processing Methods 0.000 claims abstract description 90
- 238000000034 method Methods 0.000 claims description 67
- 230000004044 response Effects 0.000 claims description 49
- 239000000284 extract Substances 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 5
- 210000004291 uterus Anatomy 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Classifications
-
- 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
- Stored Programmes (AREA)
Abstract
本发明公开信息处理方法及设备。信息处理方法包括:响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据并确定与信息元数据所对应的微执行体;在用户态下,调用与信息元数据所对应的微执行体,使得与信息元数据所对应的微执行体得以从信息空间中取出信息元数据,并根据信息元数据的信息内存索引从共享内存中获取信息内存索引所指示的信息,并对信息执行处理。本发明旨在提供一种解决信息无法快速响应,且影响系统性能等技术问题的另一实现方式。解决了信息无法快速响应的技术问题。同时,本发明的基体程序和微执行体独立运行在内核态和用户态,无需在内核态和用户态之间切换,提高系统整体性能。
Description
技术领域
本发明涉及操作系统相关技术领域,特别是一种信息处理方法、装置、电子设备及存储介质。
背景技术
现有的处理器(Central Processing Unit,CPU),例如微内核,其无论采用什么样的调度算法,它的调度的最小单位是线程。在执行任务时,每个任务(或者服务)至少需要一个线程执行,因此线程的数量远远超过处理器数量。
然而,现有处理器基于进程间通信(Inter-Process Communication,IPC),由进程调度器进行线程切换。进程调度器对线程进行时分复用,在每个时间片调用一个线程执行。
这种方式存在如下缺点:
1.当一个信息发送到处理器,处理器需要等到相应的线程获得执行时间,才能对信息进行处理,无法快速对信息进行响应。同时线程会被中断打断,可能会在接收到信息之后被中断打断,无法直接进行处理。
2.由于接收信息和对信息进行处理的线程是同一个,因此,接收到信息之后,线程需要继续完成后续处理操作之后,才能继续接收信息。因此信息响应较慢。
3.处理器包括有内核态和用户态,内核态和用户态所能够访问的处理器资源不同,而由于接收信息和处理信息都在同一个线程中处理,接收信息一般需要在内核态完成,而接收到信息后,对信息的处理则应该在用户态下完成,以避免错误访问敏感资源,因此现有技术的操作系统,对信息的接收和处理需要在用户态和内核态之间进行切换,影响系统性能。
因此,现有技术处理器的信息处理方法,存在信息无法快速响应,且影响系统性能的技术问题。
发明内容
基于此,有必要针对现有技术处理器的信息处理方法,存在信息无法快速响应,且影响系统性能的技术问题,提供一种信息处理方法、装置、电子设备及存储介质。
本发明提供一种信息处理方法,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,所述方法包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存;
在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。
进一步地:
所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体。
更进一步地,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以从运行在内核态的出门路由模块接收所述信息元数据。
更进一步地,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以将与所述信息元数据对应的外部设备的信息写入所述共享内存中,获取信息的信息内存索引并封装为信息元数据。
更进一步地,所述信息元数据还包括目的地址和目的微执行体标识,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找目的地址为所述处理器的信息元数据,并确定所述信息元数据所包括目的微执行体标识对应的微执行体为与所述信息元数据所对应的微执行体。
进一步地,所述基体程序中具有信息空间,所述信息空间用于存储所述信息元数据,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,将所述信息元数据存储于所述基体程序的信息空间中,并确定与所述信息元数据所对应的微执行体。
进一步地,每一所述微执行体包括等状态和动状态;
所述确定与所述信息元数据所对应的微执行体,具体包括:确定与所述信息元数据所对应的微执行体为目的微执行体,且如果所述目的微执行体为等状态,则在内核态下,调用基体程序,使得所述基体程序得以将所述目的微执行体设置为动状态;
所述在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态。
更进一步地,还包括:当所有微执行体均为等状态时,所述处理器进入低功耗模式。
更进一步地,所述处理器还包括有运行在用户态的用户态栈、以及与微执行体关联的用户态上下文,所述用户态上下文用于存储所述微执行体运行时产生的中间数据,所述在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以从所述用户态栈中取出所述目的微执行体对应的所述中间数据,并获取所述信息元数据,根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,基于所述中间数据对所述信息执行处理,所述目的微执行体对所述信息执行处理所产生的中间数据保存在所述用户态上下文;
所述目的微执行体执行处理完毕后,将所述目的微执行体的所述中间数据写入所述用户态栈,所述目的微执行体进入等状态。
进一步地,所述方法还包括:
响应于信息发送请求,在用户态下,调用所述微执行体,使得所述微执行体得以将处理后的信息保存到所述共享内存,获取所述信息的信息内存索引并发送到所述基体程序;
在内核态下,调用基体程序,使得所述基体程序得以将所述信息内存索引封装为信息元数据,并转发到运行在内核态的出门路由模块。
更进一步地,所述方法还包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备。
再进一步地,所述信息元数据还包括目的地址,所述响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备,具体包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,根据路由表确定所述信息元数据的目的地址是否为处理器或者外部设备;
如果目的地址为处理器,则将所述信息元数据发送到入门路由模块,如果目的地址为外部设备则将所述信息元数据发送到外部设备对应的硬体驱动,所述路由表中记录目的地址与处理器、和/或目的地址与外部设备的对应关系。
本发明提供一种信息处理装置,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,装置包括:
接收模块,用于响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存;
处理模块,用于在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。
本发明提供一种电子设备,包括:
至少一个处理器;以及,
与至少一个所述处理器通信连接的存储器;其中,
所述存储器存储有可被至少一个所述处理器执行的指令,所述指令被至少一个所述处理器执行,以使至少一个所述处理器能够执行如前所述的信息处理方法。
本发明提供一种存储介质,所述存储介质存储计算机指令,当计算机执行所述计算机指令时,用于执行如前所述的信息处理方法的所有步骤。
本发明通过共享内存存放信息,通过处理器中内核态的基体程序接收信息元数据,并由用户态的微执行体根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,从而将接收信息与处理信息进行解耦。使得基体程序能够持续接收信息元数据,而微执行体能够独立地对信息进行处理,无需等待执行时间片,避免被中断打断。本发明旨在提供一种解决信息无法快速响应,且影响系统性能等技术问题的另一实现方式。当处理器接收到信息时,由于基体程序能够持续接收信息元数据,因此基体程序能够及时快速响应,同时对应的微执行体是由信息驱动,因此微执行体也能够快速响应,及时对信息进行处理,从而提高信息响应速度,解决了信息无法快速响应的技术问题。同时,本发明的基体程序和微执行体独立运行在内核态和用户态,因此在接收及处理信息时,无需在内核态和用户态之间切换,提高系统整体性能。
附图说明
图1为本发明一实施例一种信息处理方法的工作流程图;
图2为本发明另一实施例一种信息处理方法的工作流程图;
图3为本发明一实施例中微执行体的状态机示意图;
图4为本发明一实施例的系统架构;
图5为本发明一实施例一种信息处理装置的示意图;
图6为本发明一种电子设备的硬体结构示意图。
具体实施方式
下面结合附图来进一步说明本发明的具体实施方式。其中相同的零部件用相同的附图标记表示。需要说明的是,下面描述中使用的词语“前”、“后”、“左”、“右”、“上”和“下”指的是附图中的方向,词语“内”和“外”分别指的是朝向或远离特定部件几何中心的方向。
现有的处理器(Central Processing Unit,CPU),例如微内核,其无论采用什么样的调度算法,它的调度的最小单位是线程。在执行任务时,每个任务(或者服务)至少需要一个线程执行,因此线程的数量远远超过处理器数量。
然而,现有处理器基于进程间通信(Inter-Process Communication,IPC),由进程调度器进行线程切换。进程调度器对线程进行时分复用,在每个时间片调用一个线程执行。
这种方式存在如下缺点:
1.当一个信息发送到处理器,处理器需要等到相应的线程获得执行时间,才能对信息进行处理,无法快速对信息进行响应。同时线程会被中断打断,可能会在接收到信息之后被中断打断,无法直接进行处理。
2.由于接收信息和对信息进行处理的线程是同一个,因此,接收到信息之后,线程需要继续完成后续处理操作之后,才能继续接收信息。因此信息响应较慢。
3.处理器包括有内核态和用户态,内核态和用户态所能够访问的处理器资源不同,而由于接收信息和处理信息都在同一个线程中处理,接收信息一般需要在内核态完成,而接收到信息后,对信息的处理则应该在用户态下完成,以避免错误访问敏感资源,因此现有技术的操作系统,对信息的接收和处理需要在用户态和内核态之间进行切换,影响系统性能。
因此,现有技术处理器的信息处理方法,存在信息无法快速响应,且影响系统性能的技术问题。
为了解决上述技术问题,本发明提供一种信息处理方法、装置、电子设备及存储介质。
以下为本发明涉及的术语定义:
-宫位:
宫位为与处理器关联绑定的应用程序,包括基体程序和用例程序,运行时有两个上下文:用户态上下文和内核态上下文。
-用例程序:
用例程序指运行在处理器用户态下面的程序,例如在aarch64 EL0下运行的程序。
-基体程序:
基体程序指在处理器内核态(或称特权态)下运行的程序,例如在aarch64 EL1下运行的程序。
-微执行体:
微执行体运行在用例程序中,为系统调度的最小单元。
-硬体:
硬体为底层硬体,例如网卡,内存,外存、串口设备,相机设计,定时器等硬体。
-门:
门是宫位内核态共享的模块,是内核中负责信息路由的模块。门是单向的,其中,出门为接收宫位的信息的门,入门为向宫位发送信息的门。宫位之间互相发送信息,可以先发给出门,由出门转发给入门,再发送给接收信息的宫位。门中包括信息队列,信息队列由两部分组成,包括:从共享内存分配的缓冲区、以及缓冲区的索引队列。
-门管理器:
门管理器为基体程序中控制门的模块,负责过滤从门发过来的信息,将订阅的信息追加到信息空间中。
-信息空间:
信息空间为基体程序中负责缓存信息的模块。
-信息空间管理器:
信息空间管理器为基体程序中从信息空间中获取信息,并分发给与信息相关的微执行体的模块。
-硬体驱动:
硬体驱动是一种运行在内核态的微执行体,保存硬体的协议栈,负责硬体中断转发、硬体控制、与硬体直接交互以及读写信息。
如图1所示为本发明一实施例一种信息处理方法的工作流程图,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,所述方法包括:
步骤S101,响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存;
步骤S102,在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。
具体来说,本发明实施例由多处理器架构中的其中一个处理器执行。
其中,任意一个处理器,当有信息元数据发送到该处理器时,触发处理器执行步骤S101,响应于信息元数据接收事件,处理器调用运行在内核态的基体程序,接收信息元数据,并确定与所述信息元数据所对应的微执行体。
其中,基体程序所接收的信息元数据,可以存放在基体程序的信息空间内。
在其中一个实施例中,所述基体程序中具有信息空间,所述信息空间用于存储所述信息元数据,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,将所述信息元数据存储于所述基体程序的信息空间中,并确定与所述信息元数据所对应的微执行体。
信息空间为基体程序的内存空间,用于基体程序存储信息元数据,并可以通过基体程序的信息空间管理器将信息元数据发送到微执行体。
信息将会保存在共享内存中,共享内存是在多个处理器之间共享使用的内存。本实施例中,基体程序接收到是信息元数据。信息元数据用于表示所要传递的信息的相关元数据。信息元数据至少包括信息内存索引。
其中,信息为处理器与处理器之间,或者处理器与外部设备之间所传递的信息。例如,处理器内部的微执行体运行在微执行体上的应用程序的执行逻辑后将所产生需要传递的信息,例如传递给外部设备或者传递给其他处理器内部的微执行体执行。
同时基体程序根据信息元数据中的相关参数,确定与所述信息所对应的微执行体。
在其中一个实施例中,所述信息元数据还包括目的地址和目的微执行体标识,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找目的地址为所述处理器的信息元数据,并确定所述信息元数据所包括目的微执行体标识对应的微执行体为与所述信息元数据所对应的微执行体。
其中,信息元数据包括目的地址和目的微执行体标识,目的地址为处理器地址,用于确定信息元数据的目的处理器。目的微执行体标识为微执行体的标识(ID),用于标识该信息元数据对应的微执行体。基体程序通过目的微执行体标识确定与所述信息元数据所对应的微执行体。
在其中一个实施例中,所述信息元数据包括信息类型、目的地址、目的微执行体标识、源地址以及信息内存索引。
其中,信息内存索引为信息保存在共享内存的索引,通过该信息内存索引则能够从共享内存获得对应的信息。
然后,执行步骤102,处理器在用户态下,调用与所述信息所对应的微执行体,被调用的微执行体获取信息元数据,从信息元数据中获取信息内存索引,并根据信息内存索引,从共享内存中取出信息,最后根据运行在微执行体上的应用程序的执行逻辑对所述信息进行处理。
具体来说,在处理器设置有运行在用户态的用例程序,用例程序中包括多个微执行体。当执行步骤S102时,调用用户程序中与所述信息元数据所对应的微执行体,获取对应的信息后,对所述信息执行处理。
其中,内核态和用户态为处理器中对程序运行的特权等级划分。内核态和用户态所能够访问的处理器资源不同。一般来说,运行在内核态的程序能够访问处理器中更为核心的资源,而运行在用户态的程序则只能访问处理器中的普通资源。
其中,基体程序运行在内核态,而用例程序及用例程序所包括的多个微执行体则运行在用户态。
当微执行体对信息进行处理后,还可能会产生新的信息以发送,从而触发信息发送请求。
在其中一个实施例中,所述方法还包括:
响应于信息发送请求,在用户态下,调用所述微执行体,使得所述微执行体得以将处理后的信息的信息内存索引发送到所述基体程序;
在内核态下,调用基体程序,使得所述基体程序得以将所述信息内存索引封装为信息元数据,并转发。
本发明通过共享内存存放信息,通过处理器中内核态的基体程序接收信息元数据,并由用户态的微执行体根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,从而将接收信息与处理信息进行解耦。使得基体程序能够持续接收信息元数据,而微执行体能够独立地对信息进行处理,无需等待执行时间片,避免被中断打断。本发明旨在提供一种解决信息无法快速响应,且影响系统性能等技术问题的另一实现方式。当处理器接收到信息时,由于基体程序能够持续接收信息元数据,因此基体程序能够及时快速响应,同时对应的微执行体是由信息驱动,因此微执行体也能够快速响应,及时对信息进行处理,从而提高信息响应速度,解决了信息无法快速响应的技术问题。同时,本发明的基体程序和微执行体独立运行在内核态和用户态,因此在接收及处理信息时,无需在内核态和用户态之间切换,提高系统整体性能。
如图2所示为本发明另一实施例中一种信息处理方法的工作流程图,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,所述方法包括:
步骤S201,响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存。
在其中一个实施例中,所述信息元数据还包括目的地址和目的微执行体标识,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找目的地址为所述处理器的信息元数据,并确定所述信息元数据所包括目的微执行体标识对应的微执行体为与所述信息元数据所对应的微执行体。
在其中一个实施例中,所述基体程序中具有信息空间,所述信息空间用于存储所述信息元数据,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,将所述信息元数据存储于所述基体程序的信息空间中,并确定与所述信息元数据所对应的微执行体。
步骤S202,在内核态下,调用基体程序,确定与所述信息元数据所对应的微执行体为目的微执行体,每一所述微执行体包括等状态和动状态。
步骤S203,如果所述目的微执行体为等状态,则在内核态下,调用基体程序,使得所述基体程序得以将所述目的微执行体设置为动状态,然后执行步骤S204,否则直接执行步骤S204。
步骤S204,在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态。
在其中一个实施例中,还包括:当所有微执行体均为等状态时,所述处理器进入低功耗模式。
在其中一个实施例中,所述处理器还包括有运行在用户态的用户态栈、以及与微执行体关联的用户态上下文,所述用户态上下文用于存储所述微执行体运行时产生的中间数据,所述在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以从所述用户态栈中取出所述目的微执行体对应的所述中间数据,并获取所述信息元数据,根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,基于所述中间数据对所述信息执行处理,所述目的微执行体对所述信息执行处理所产生的中间数据保存在所述用户态上下文;
所述目的微执行体执行处理完毕后,将所述目的微执行体的所述中间数据写入所述用户态栈,所述目的微执行体进入等状态。
步骤S205,响应于信息发送请求,在用户态下,调用所述微执行体,使得所述微执行体得以将处理后的信息保存到所述共享内存,获取所述信息的信息内存索引并发送到所述基体程序。
步骤S206,在内核态下,调用基体程序,使得所述基体程序得以将所述信息内存索引封装为信息元数据,并转发到运行在内核态的出门路由模块。
具体来说,本发明实施例由多处理器架构中的其中一个处理器执行。
其中,信息采用信息内存索引的方式发送和接收。任意一个处理器,当有信息发送到该处理器时,触发处理器执行步骤S201,由内核态下的基体程序,从运行在内核态的入门路由模块中查找本处理器的信息元数据,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在所述共享内存的索引。
其中,基体程序所接收的信息元数据,可以存放在基体程序的信息空间内。
在其中一个实施例中,所述基体程序中具有信息空间,所述信息空间用于存储所述信息元数据,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,将所述信息元数据存储于所述基体程序的信息空间中,并确定与所述信息元数据所对应的微执行体。
信息空间为基体程序的内存空间,用于基体程序存储信息元数据,并可以通过基体程序的信息空间管理器将信息元数据发送到微执行体。
其中,入门路由模块为运行在处理器内核态下的软路由程序,执行路由程序的逻辑,以接收信息元数据,并确定信息元数据的目的处理器。
入门路由模块运行在多处理器架构中的任意一个处理器上。
在其中一个实施例中,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以从运行在内核态的出门路由模块接收所述信息元数据。
其中,入门路由模块运行在内核态,从出门路由模块接收信息元数据。信息已经保存在共享内存中,因此出门路由模块仅需要提供信息元数据。当出门路由模块向入门路由模块发送信息元数据,将触发入门路由模块从出门路由模块接收信息元数据。其中,共享内存为在多个处理器之间共享使用的内存,并由入门路由模块和出门路由模块管理。
在其中一个实施例中,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以将与所述信息元数据对应的外部设备的信息写入所述共享内存中,获取信息的信息内存索引并封装为信息元数据。
外部设备向入门路由模块写入信息,则触发入门路由模块将外部设备的信息写入共享内存中并获取信息的信息内存索引,然后将信息内存索引封装为信息元数据。
在其中一个实施例中,所述信息元数据包括信息类型、目的地址、目的微执行体标识、源地址以及信息内存索引。
在其中一个实施例中,出门路由提供的信息元数据包括目的地址,外部设备向入门路由模块写入信息时提供目的地址,入门路由模块将信息内存索引以及目的地址封装为信息元数据。
入门路由模块根据信息元数据的目的地址,确定所要发送的处理器,并将信息元数据发送到目的地址所指示的处理器,从而产生信息元数据接收事件,触发该处理器执行步骤S201。
其中,共享内存由多个处理器共享使用,即多个处理器的信息均存放到同一共享内存中。共享内存中分配缓冲区,并设置缓冲区域的索引队列,索引队列优选为索引环形队列。
其中,入门路由模块维护有路由表,路由表中记录地址与处理器的对应关系。处理器通过订阅方式,向入门路由模块发送其地址,并由入门路由模块保存并更新地址与处理器的对应关系。
其中,外部设备即硬体,外部设备通过硬体驱动向外部路由模块写入信息。
本实施例在内核态下从入门路由模块获取信息元数据,处理器在内核态能够只处理信息收发,减少上下文切换,减少资源开销。同时,由于不同微执行体之间的信息通信也是通过入门路由模块和出门路由模块转发,因此,微执行体无需加锁,降低了用例开发难度。
然后,处理器执行步骤S202,调用基体程序,以确定用例程序中与所述信息所对应的微执行体为目的微执行体。
在其中一个实施例中,在内核态下,确定用例程序中与所述信息所对应的微执行体为目的微执行体。
例如,由内核态下的基体程序,确定用例程序中与所述信息所对应的微执行体为目的微执行体。
在其中一个实施例中,所述信息元数据还包括目的地址和目的微执行体标识,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找目的地址为所述处理器的信息元数据,并确定所述信息元数据所包括目的微执行体标识对应的微执行体为与所述信息元数据所对应的微执行体。
具体来说,信息元数据包括目的地址和目的微执行体标识,入门路由模块通过目的地址确定目的处理器,将信息元数据发送的目的处理器的基体程序,然后基体程序根据目的微执行体标识,确定对应的微执行体。
其中,每一微执行体包括等状态和动状态。如图3所示为微执行体的状态机示意图。
微执行体在处理器启动后,即进入等状态。在等状态下,微执行体停止处理,等待激活。另外,如果用例程序的所有微执行体都停止,则处理器进入低功耗模式。
在动状态的微执行体根据程序逻辑,执行相应的处理。例如对所接收的信息进行处理,或者产生新的信息进行发送。在动状态的微执行体自己调用“让”函数进入等状态。
然后执行步骤S203,如果目的微执行体为等状态,则基体程序将目的微执行体设置为动状态后执行步骤S204,如果目的微执行体已经为动状态,则直接执行步骤S204。
在其中一个实施例中,在等状态的微执行体,基体程序执行步骤S202确定其为目的微执行体后,由基体程序执行步骤S203通过调用“可”函数激活目的微执行体,进入动状态,然后执行步骤S204,由进入动状态的目的微执行体根据所获取的所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。其中,执行处理即对信息根据程序逻辑,执行相应的操作。
在目的微执行体执行处理完毕后,目的微执行体自己调用“让”函数进入等状态。
而如果目的微执行体为动状态,则处理器直接执行步骤S204,调用目的微执行体对所述信息执行处理。
当处理器中所有微执行体均为等状态时,所述处理器进入低功耗模式。
本实施例通过将微执行体设置为等状态和动状态,实现对多个微执行体的管理。同时,通过激活更改微执行体的状态,使得与接收到的信息所对应的微执行体能够进入动状态,快速响应信息。
在其中一个实施例中,基体程序包括门管理器、信息空间和信息空间管理器,所述门管理器从入门路由模块获取信息元数据,并保存到信息空间中,信息空间管理器确定与所述信息元数据所对应的微执行体为目的微执行体,设置所述目的微执行体的状态为动状态,并将所述信息元数据发送到所述目的微执行体,所述目的微执行体从所述信息空间中取出信息元数据,并从中获取信息内存索引,并根据信息内存索引从共享内存中获取信息执行处理。
在其中一个实施例中,所述处理器还包括有运行在用户态的用户态栈、以及与微执行体关联的用户态上下文,所述用户态上下文用于存储所述微执行体运行时产生的中间数据,所述在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以从所述用户态栈中取出所述目的微执行体对应的所述中间数据,并获取所述信息元数据,根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,基于所述中间数据对所述信息执行处理,所述目的微执行体对所述信息执行处理所产生的中间数据保存在所述用户态上下文;
所述目的微执行体执行处理完毕后,将所述目的微执行体的所述中间数据写入所述用户态栈,所述目的微执行体进入等状态。
具体来说,当目的微执行体被设置为动状态后,目的微执行体从用户态栈中取出之前执行处理时所产生的中间数据,放回用户态上下文,并根据所获取的所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并基于之前的中间数据对新获得的信息执行处理。在执行处理的过程中,所产生的中间数据将会保存在用户态上下文中。
在目的微执行体执行处理完毕后,调用“让”函数,将用户态上下文中所保存的本次执行所产生的中间数据写入用户态栈,然后目的微执行体进入等状态。
其中,用户态上下文与内核态上下文独立。内核态上下文与基体程序关联,用户态上下文与用例程序关联,多个微执行体共享同一用户态上下文。通过分别为基体程序关联内核态上下文,为用例程序关联用户态上下文,从而将用例程序和基体程序的上下文分隔。
上下文为用于存储各种寄存器信息的表。所述内核态上下文用于存储内核态下产生的中间数据,所述用户态上下文用于存储所述微执行体执行处理时的中间数据。在微执行体调用“让”函数进入等状态时,则将存储于用户态上下文的中间数据,存储在用户态栈。
在其中一个实施例中,用户态上下文存放用例程序中各微执行体在执行操作的过程中所改变的各种寄存器信息。内核态上下文存放基体程序在收发信息时所改变的各种寄存器信息。
由于用例程序中包括了多个微执行体,每个微执行体对应相关的信息,因此处理器需要在不同的微执行体之间切换,由于用例中的多个微执行体共用一个用户态上下文,因此每次切换微执行体时,需要切换用户态上下文。切换用户态上下文的意思,是将当前的用户态上下文的数据作为当前微执行体的用户态上下文数据入栈保存,然后切换另一微执行体,从栈中取出另一微执行体的用户态上下文数据,将当前的用户态上下文的数据更新为从栈中取出的另一微执行体的用户态上下文数据。
现有处理器基于进程调度器进行的线程切换,因为粒度太小,无可避免的会频繁的切换线程上下文,由于线程上下文包括了用户态的上下文和内核态的上下文,因此,在进行线程上下文切换时,会占用大量的系统时间,同时,线程数量大,由于每个线程都要占用一定的内存,因此会消耗太多的内存。
另外,因为单个处理器上频繁的切换线程,会降低了缓存(cache)命中率和转译后备缓冲区(Translation Lookaside Buffer,TLB)命中率,也会造成缓存抖动。
最后,众核处理器的核心数多的时候,在单个处理器上动态切换线程,整体来看缓存一致性的维护将变得很困难。
而与现有技术不同,本实施例在微执行体切换时,只需要切换用户态上下文,而不需要切换内核态上下文,因此,需要入栈的数据以及出栈更新的数据大大减少,使得切换的时间大幅度降低,所要保存的数据也大大减少,从而大大减少了上下文切换所需要的资源开销。
其中,用户态栈和内核态栈均为用于保存上下文数据的数据栈,从数据栈中取出数据的操作为出栈操作,将数据写入数据栈的操作为入栈操作(或称为压栈操作)。可以采用现有的数据栈的入栈方式实现入栈操作,采用现有的出栈方式实现出栈操作。
具体地,在微执行体的程序逻辑执行完毕的时候,执行“让”函数,将当前的用户态上下文数据作为该微执行体的用户态上下文数据写入用户态栈,同时该微执行体设置为等状态。
本实施例将数据栈分为用户态栈和内核态栈,使得用户态栈独立于内核态栈,在栈切换时无需进入内核态。
最后,当微执行体对信息执行处理完毕后,如果需要发送信息,则产生信息发送请求,由处理器执行步骤S205,调用微执行体,由微执行体将进行处理后保存在共享内存的信息的信息内存索引发送到所述基体程序。然后执行步骤S206,调用基体程序,由基体程序将信息内存索引封装为信息元数据,并将封装后的信息元数据转发到运行在内核态的出门路由模块。
在其中一个实施例中,所述微执行体将执行处理后的信息的信息内存索引发送到基体程序,由基体程序将信息内存索引封装为信息元数据后,发送到同样运行在内核态的出门路由模块,由出门路由模块发送到入门路由模块和/或外部设备。
其中,出门路由模块为运行在处理器内核态下的软路由程序,对接收的执行路由程序的逻辑。根据信息元数据的目的地址,确定发送到入门路由模块或者外部设备。
出门路由模块运行在多处理器架构中的任意一个处理器上。
在其中一个实施例中,所述方法还包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备。
其中,当基体程序将微执行体的信息元数据转发到出门路由模块时,将触发信息元数据到达出门路由模块事件。
在其中一个实施例中,所述信息元数据还包括目的地址,所述响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备,具体包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,根据路由表确定所述信息元数据的目的地址是否为处理器或者外部设备;
如果目的地址为处理器,则将所述信息元数据发送到入门路由模块,如果目的地址为外部设备则将所述信息元数据发送到外部设备对应的硬体驱动,所述路由表中记录目的地址与处理器、和/或目的地址与外部设备的对应关系。
在其中一个实施例中,出门路由模块接收基体程序发送的信息元数据,所述信息元数据包括信息类型、目的地址、目的微执行体标识、源地址以及信息内存索引。
其中,出门路由模块中维护由路由表,路由表中记录地址与处理器、和/或地址与外部设备的对应关系。可以根据路由表确定目的地址是否为与共享内存关联的处理器或者外部设备。如果目的地址为处理器,则将信息元数据发送到入门路由模块,如果目的地址为外部设备则将信息元数据发送到外部设备对应的硬体驱动。外部设备根据信息元数据中的信息内存索引获取信息。
或者,出门路由模块可以根据信息元数据中的信息类型,确定信息元数据是否发送给处理器或者外部设备。
其中,外部设备即硬体,外部设备通过硬体驱动从出门路由模块获取信息。
本实施例将信息元数据发送到出门路由模块,由出门路由模块发送,从而使得基体程序能够只处理信息收发,减少上下文切换,减少资源开销。同时,由于不同微执行体之间的信息通信也是通过入门路由模块和出门路由模块转发,因此,微执行体无需加锁,降低了用例开发难度,用例开发者可以将更多的时间放到考虑自身的程序逻辑上。
如图4所示为本发明一实施例的系统架构,应用在多个处理器上,包括:宫位1、入门路由模块2、出门路由模块3、共享内存4、硬体驱动5、以及硬体6,其中:
每个处理器运行一个宫位1,宫位1包括运行在用户态的用例程序11以及运行在内核态的基体程序12;
用例程序11包括多个微执行体111,基体程序12包括门管理器121、信息空间122和信息空间管理器123,其中信息空间122存放信息元数据,信息空间管理器123进行信息分配、数据结构管理以及管理信息元数据;
入门路由模块2的入口与共享内存4通信,入门路由模块2的出口与多个处理器的门管理器121通信连接,入门路由模块2包括多个入门信息队列21;
出门路由模块3的入口与多个处理器的门管理器121通信,出门路由模块3的出口与共享内存4以及多个硬体驱动5通信,出门路由模块3包括多个出门信息队列31;
硬体驱动5中包括硬体协议栈,分别驱动对应的硬体6或者共享内存4;
硬体6包括但不限于网卡、和/或永久存储器。
具体来说,本实施例可以支持1~1024个宫位1,一个宫位1对应一个处理器。整个系统依赖于内存共享和处理器内核的核间中断。用例程序11运行在用户态,基体程序12运行在内核态。用户态和内核态对应处理器的特权等级0和特权等级1。基于处理器独占内存实现宫位私有,即每个宫位独占使用处理器的独占内存。基于全局共享内存实现宫位共享,即多个宫位之间采用同一全局共享内存进行通信。
如图3所示为微执行体111的状态机示意图,微执行体111只有2个状态,分别是等状态和动状态。其中:
微执行体111在处理器启动后,即进入等状态。在等状态下,微执行体停止处理,等待激活。另外,如果处理器的所有微执行体111都停止,则处理器进入低功耗模式。
在动状态的微执行体111根据程序逻辑,执行相应的处理。例如对所接收的信息进行处理,或者产生新的信息进行发送。在动状态的微执行体在执行处理完毕后,或者执行时间片结束时,自己调用“让”函数进入等状态。在等状态的微执行体,可以由基体程序12的信息空间管理器123激活,进入动状态,并由进入动状态的目的微执行体对所述信息执行处理。其中,执行处理即对信息根据程序逻辑,执行相应的操作。
用例程序11设置有与基体程序12独立的用户态栈,微执行体的栈切换操作在用户态中完成,无需进入内核态。
每个用例程序11有一个用户空间的上下文,用例程序11中的所有微执行体111共用同一个用户态上下文。同时,在处理器进入异常状态时,用户态上下文用来保存用例程序11当前的快照。微执行体111对处理器异常是不感知的。
调度方法
本实施例的调度方法是基于信息驱动的,包括如下几种情况:
情况1:硬体6->微执行体111
所有硬体6的信息都会经过硬体6对应的硬体驱动5,将信息发送给入门路由模块2中一对一的入门信息队列21中,入门路由模块2将入门信息队列21中的信息写入共享内存4,并获取信息的信息内存索引,即信息在共享内存4中的地址。根据订阅信息,例如路由表,以单播或者组播的方式,将信息内存索引封装为信息元数据发送给宫位的基体程序12的门管理器121。信息元数据包括目的地址、目的微执行体标识、源地址以及信息内存索引。门管理器121将信息元数据放入信息空间122,由信息空间管理器123解析,并根据信息元数据中的目的微执行体标识启动相关微执行体111,将信息元数据传递给微执行体111,微执行体111通过信息元数据中的信息内存索引,从共享内存4中获取信息,然后进行相关操作。
情况2:微执行体111->硬体6
宫位的基体程序12的信息空间管理器123根据约定的信息类型封装微执行体111发出的信息内存索引为信息元数据,然后封装后的信息元数据通过门管理器121发给出门路由模块3,出门路由模块3根据信息类型将信息元数据放到对应的出门信息队列31中,硬体6通过硬体驱动5,采用回调或者轮询的方式,得到信息元数据,根据信息元数据中的信息内存索引从共享内存4中取出信息,最后进行相关的硬体操作。
情况3:微执行体111->微执行体111
宫位的基体程序12的门管理器121将微执行体111的信息元数据发送给出门路由模块3。信息元数据包括信息类型、目的地址、目的微执行体标识、源地址以及信息内存索引。
出门路由模块3根据信息元数据中的信息类型,判断是发给其他微执行体111的信息,出门路由模块3直接将信息元数据发送给入门路由模块2。
入门路由模块2根据信息类型和目的地址,查约定的路由表,找到目的宫位1所在处理器。将信息元数据发送给目的宫位1所在处理器。
目的宫位,根据目的微执行体标识查找约定的路由表,找到对应的微执行体111作为目的微执行体。将信息元数据发送给目的微执行体。
目的微执行体保存信息元数据,根据信息元数据中的信息内存索引从共享内存4拿到信息,然后开始执行。
目的微执行体执行完成后,发送给源地址所在的微执行体。
本实施例相比于传统协程调度方法,去掉了中间的线程,进程这些冗余概念。由于系统同时有用户态上下文和内核上下文,所以宫位在用户态和内核态切换开销是很小的,能通过直接在宫位的内核态进行消息分发,来调度微执行体,避免因任务上下文切换,消耗大量的系统时间。同时,提高缓存命中率,加速程序运行速度。应用程序无锁化,避免应用层程序死锁,降低了用例开发难度,用例开发者可以将更多的时间放到考自身的业务上。降低系统的随机性,减少系统回调,避免系统回调过多破坏代码结构。没有信息执行的宫位所在的处理器可进入低功耗模式的空闲状态,降低功耗。简化最小调度单元的运行状态为2个,适应众合复杂系统。最后,本实施例为分布式系统,无中心宫位。一个宫位异常终止,其他宫位可以正常运行。
如图5所示为本发明一实施例一种信息处理装置的示意图,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,装置包括:
接收模块501,用于响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存;
处理模块502,用于在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。
本发明响应于信息元数据接收事件,由处理器调用内核态的基体程序接收信息元数据,并由用户态的微执行体对信息元数据所指示的信息执行处理,去除了中间进程、线程冗余概念,直接由处理器进行调度任务执行。因此,当处理器接收到信息时,能够得到基体程序以及对应的微执行体的快速响应,并及时对信息进行处理,提高信息响应速度。
在其中一个实施例中:
所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体。
在其中一个实施例中,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以从运行在内核态的出门路由模块接收所述信息元数据。
在其中一个实施例中,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以将与所述信息元数据对应的外部设备的信息写入所述共享内存中,获取信息的信息内存索引并封装为信息元数据。
在其中一个实施例中,所述信息元数据还包括目的地址和目的微执行体标识,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找目的地址为所述处理器的信息元数据,并确定所述信息元数据所包括目的微执行体标识对应的微执行体为与所述信息元数据所对应的微执行体。
在其中一个实施例中,所述基体程序中具有信息空间,所述信息空间用于存储所述信息元数据,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,将所述信息元数据存储于所述基体程序的信息空间中,并确定与所述信息元数据所对应的微执行体。
在其中一个实施例中,每一所述微执行体包括等状态和动状态;
所述确定与所述信息元数据所对应的微执行体,具体包括:确定与所述信息元数据所对应的微执行体为目的微执行体,且如果所述目的微执行体为等状态,则在内核态下,调用基体程序,使得所述基体程序得以将所述目的微执行体设置为动状态;
所述在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态。
在其中一个实施例中,还包括:当所有微执行体均为等状态时,所述处理器进入低功耗模式。
在其中一个实施例中,所述处理器还包括有运行在用户态的用户态栈、以及与微执行体关联的用户态上下文,所述用户态上下文用于存储所述微执行体运行时产生的中间数据,所述在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以从所述用户态栈中取出所述目的微执行体对应的所述中间数据,并获取所述信息元数据,根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,基于所述中间数据对所述信息执行处理,所述目的微执行体对所述信息执行处理所产生的中间数据保存在所述用户态上下文;
所述目的微执行体执行处理完毕后,将所述目的微执行体的所述中间数据写入所述用户态栈,所述目的微执行体进入等状态。
在其中一个实施例中,所述方法还包括:
响应于信息发送请求,在用户态下,调用所述微执行体,使得所述微执行体得以将处理后的信息保存到所述共享内存,获取所述信息的信息内存索引并发送到所述基体程序;
在内核态下,调用基体程序,使得所述基体程序得以将所述信息内存索引封装为信息元数据,并转发到运行在内核态的出门路由模块。
在其中一个实施例中,所述方法还包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备。
在其中一个实施例中,所述信息元数据还包括目的地址,所述响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备,具体包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,根据路由表确定所述信息元数据的目的地址是否为处理器或者外部设备;
如果目的地址为处理器,则将所述信息元数据发送到入门路由模块,如果目的地址为外部设备则将所述信息元数据发送到外部设备对应的硬体驱动,所述路由表中记录目的地址与处理器、和/或目的地址与外部设备的对应关系。
如图6所示为本发明一种电子设备的硬体结构示意图,包括:
至少一个处理器601;以及,
与至少一个所述处理器601通信连接的存储器602;其中,
所述存储器602存储有可被至少一个所述处理器执行的指令,所述指令被至少一个所述处理器执行,以使至少一个所述处理器能够执行如前所述的信息处理方法。
图6中以一个处理器601为例。
电子设备还可以包括:输入装置603和显示装置604。
处理器601、存储器602、输入装置603及显示装置604可以通过总线或者其他方式连接,图中以通过总线连接为例。
存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的信息处理方法对应的程序指令/模块,例如,图所示的方法流程。处理器601通过运行存储在存储器602中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述实施例中的信息处理方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据信息处理方法的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至执行信息处理方法的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置603可接收输入的用户点击,以及产生与信息处理方法的用户设置以及功能控制有关的信号输入。显示装置604可包括显示屏等显示设备。
在所述一个或者多个模块存储在所述存储器602中,当被所述一个或者多个处理器601运行时,执行上述任意方法实施例中的信息处理方法。
本发明响应于信息元数据接收事件,由处理器调用内核态的基体程序接收信息元数据,并由用户态的微执行体对信息元数据所指示的信息执行处理,去除了中间进程、线程冗余概念,直接由处理器进行调度任务执行。因此,当处理器接收到信息时,能够得到基体程序以及对应的微执行体的快速响应,并及时对信息进行处理,提高信息响应速度。
本发明一实施例提供一种存储介质,所述存储介质存储计算机指令,当计算机执行所述计算机指令时,用于执行如前所述的信息处理方法的所有步骤。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (15)
1.一种信息处理方法,其特征在于,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,所述方法包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存;
在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。
2.根据权利要求1所述的信息处理方法,其特征在于:
所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体。
3.根据权利要求2所述的信息处理方法,其特征在于,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以从运行在内核态的出门路由模块接收所述信息元数据。
4.根据权利要求2所述的信息处理方法,其特征在于,在所述响应于信息元数据接收事件之前,所述方法还包括:
在内核态下,调用入门路由模块,使得所述入门路由模块得以将与所述信息元数据对应的外部设备的信息写入所述共享内存中,获取信息的信息内存索引并封装为信息元数据。
5.根据权利要求2所述的信息处理方法,其特征在于,所述信息元数据还包括目的地址和目的微执行体标识,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找所述处理器的信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得所述基体程序得以从运行在内核态的入门路由模块中查找目的地址为所述处理器的信息元数据,并确定所述信息元数据所包括目的微执行体标识对应的微执行体为与所述信息元数据所对应的微执行体。
6.根据权利要求1所述的信息处理方法,其特征在于,所述基体程序中具有信息空间,所述信息空间用于存储所述信息元数据,所述响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,具体包括:
响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,将所述信息元数据存储于所述基体程序的信息空间中,并确定与所述信息元数据所对应的微执行体。
7.根据权利要求1所述的信息处理方法,其特征在于,每一所述微执行体包括等状态和动状态;
所述确定与所述信息元数据所对应的微执行体,具体包括:确定与所述信息元数据所对应的微执行体为目的微执行体,且如果所述目的微执行体为等状态,则在内核态下,调用基体程序,使得所述基体程序得以将所述目的微执行体设置为动状态;
所述在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态。
8.根据权利要求7所述的信息处理方法,其特征在于,还包括:当所有微执行体均为等状态时,所述处理器进入低功耗模式。
9.根据权利要求7所述的信息处理方法,其特征在于,所述处理器还包括有运行在用户态的用户态栈、以及与微执行体关联的用户态上下文,所述用户态上下文用于存储所述微执行体运行时产生的中间数据,所述在用户态下调用所述目的微执行体,使得所述目的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理,所述目的微执行体执行处理完毕,进入等状态,具体包括:
在用户态下调用所述目的微执行体,使得所述目的微执行体得以从所述用户态栈中取出所述目的微执行体对应的所述中间数据,并获取所述信息元数据,根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,基于所述中间数据对所述信息执行处理,所述目的微执行体对所述信息执行处理所产生的中间数据保存在所述用户态上下文;
所述目的微执行体执行处理完毕后,将所述目的微执行体的所述中间数据写入所述用户态栈,所述目的微执行体进入等状态。
10.根据权利要求1所述的信息处理方法,其特征在于,所述方法还包括:
响应于信息发送请求,在用户态下,调用所述微执行体,使得所述微执行体得以将处理后的信息保存到所述共享内存,获取所述信息的信息内存索引并发送到所述基体程序;
在内核态下,调用基体程序,使得所述基体程序得以将所述信息内存索引封装为信息元数据,并转发到运行在内核态的出门路由模块。
11.根据权利要求10所述的信息处理方法,其特征在于,所述方法还包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备。
12.根据权利要求11所述的信息处理方法,其特征在于,所述信息元数据还包括目的地址,所述响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,并将所述信息元数据发送到入门路由模块和/或外部设备,具体包括:
响应于信息元数据到达出门路由模块事件,在内核态下,调用出门路由模块,使得所述出门路由模块得以接收所述信息元数据,根据路由表确定所述信息元数据的目的地址是否为处理器或者外部设备;
如果目的地址为处理器,则将所述信息元数据发送到入门路由模块,如果目的地址为外部设备则将所述信息元数据发送到外部设备对应的硬体驱动,所述路由表中记录目的地址与处理器、和/或目的地址与外部设备的对应关系。
13.一种信息处理装置,其特征在于,应用于处理器,所述处理器包括内核态和用户态,所述内核态的处理等级高于所述用户态,装置包括:
接收模块,用于响应于信息元数据接收事件,在内核态下,调用基体程序,使得基体程序得以接收信息元数据,并确定与所述信息元数据所对应的微执行体,所述信息元数据至少包括信息内存索引,所述信息内存索引为信息保存在共享内存的索引,所述共享内存为在多个处理器之间共享使用的内存;
处理模块,用于在用户态下,调用与所述信息元数据所对应的微执行体,使得与所述信息元数据所对应的微执行体得以获取所述信息元数据,并根据所述信息元数据的信息内存索引从所述共享内存中获取所述信息内存索引所指示的信息,并对所述信息执行处理。
14.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与至少一个所述处理器通信连接的存储器;其中,
所述存储器存储有可被至少一个所述处理器执行的指令,所述指令被至少一个所述处理器执行,以使至少一个所述处理器能够执行如权利要求1至12任一项所述的信息处理方法。
15.一种存储介质,其特征在于,所述存储介质存储计算机指令,当计算机执行所述计算机指令时,用于执行如权利要求1至12任一项所述的信息处理方法的所有步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503642.4A CN118093216A (zh) | 2022-11-28 | 2022-11-28 | 信息处理方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211503642.4A CN118093216A (zh) | 2022-11-28 | 2022-11-28 | 信息处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118093216A true CN118093216A (zh) | 2024-05-28 |
Family
ID=91157997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211503642.4A Pending CN118093216A (zh) | 2022-11-28 | 2022-11-28 | 信息处理方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118093216A (zh) |
-
2022
- 2022-11-28 CN CN202211503642.4A patent/CN118093216A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10230608B2 (en) | RPS support for NFV by system call bypass | |
US9471532B2 (en) | Remote core operations in a multi-core computer | |
US8963933B2 (en) | Method for urgency-based preemption of a process | |
US9710408B2 (en) | Source core interrupt steering | |
US9176794B2 (en) | Graphics compute process scheduling | |
US8312197B2 (en) | Method of routing an interrupt signal directly to a virtual processing unit in a system with one or more physical processing units | |
US20020103847A1 (en) | Efficient mechanism for inter-thread communication within a multi-threaded computer system | |
US8661458B2 (en) | Multiprocessor system, and method for shared use of devices among operating systems of multiprocessor system | |
US11281388B2 (en) | Method for managing a multi-system shared memory, electronic device and non-volatile computer-readable storage medium | |
US9256465B2 (en) | Process device context switching | |
US20030056084A1 (en) | Object orientated heterogeneous multi-processor platform | |
US7962926B2 (en) | Method, system, and program storage device for generating a retry message when a thread in a real-time application is unavailable to process a request to utilize the real-time application | |
US20220156103A1 (en) | Securing virtual machines in computer systems | |
CN115167996A (zh) | 调度方法及装置、芯片、电子设备及存储介质 | |
CN116243995A (zh) | 通信方法、装置、计算机可读存储介质以及电子设备 | |
CN112491426A (zh) | 面向多核dsp的服务组件通信架构及任务调度、数据交互方法 | |
US7844782B2 (en) | Data processing system with memory access | |
WO2022042127A1 (zh) | 一种协程切换的方法、装置及设备 | |
KR101791182B1 (ko) | 컴퓨터 시스템 인터럽트 핸들링 | |
US10255104B2 (en) | System call queue between visible and invisible computing devices | |
CN110858164B (zh) | 进程间通信方法、装置及计算机可读介质 | |
CN118093216A (zh) | 信息处理方法及设备 | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作系统 | |
WO2013081975A1 (en) | Saving and restoring shader and non-shader state using a command processor | |
CN117407054A (zh) | 中断处理方法、电子设备和存储介质 |
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 |