本说明书涉及通信,具体地说,涉及通信下的处理器访问技术,更具体地说,涉及一种交互方法及相关装置。
背景技术:
1、处理器(system-on-a-chip,soc)是一种高度集成的集成电路,对于处理器来说,外设(peripherals)是指连接到处理器以扩展其功能的外部设备。随着外设类型的不断丰富,处理器与外设的交互过程可能占用处理器大量的资源,可能导致出现处理器性能下降、延迟增加等问题。
技术实现思路
1、本说明书实施例提供了一种交互方法及相关装置,以实现改善主核性能,降低延迟的目的。
2、为实现上述技术目的,本说明书实施例提供了如下技术方案:
3、第一方面,本说明书的一个实施方式提供一种交互方法,所述交互方法应用于处理器架构,所述处理器架构包括第一处理器、输入输出处理器以及至少一个外设控制器;所述输入输出处理器作为所述第一处理器与所述至少一个外设控制器进行交互时的中间媒介;所述第一处理器包括第一处理器核,所述输入输出处理器包括第二处理器核;所述交互方法包括:
4、通过所述第二处理器核响应于第一处理器核发送的针对目标外设的访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果,并将所述访问请求对应的执行结果返回给所述第一处理器核;
5、和/或
6、通过所述第二处理器核响应于外设控制器发起的数据传输请求,获取所述外设控制器的待上传数据,并向所述第一处理器核发送通知消息,所述通知消息用于通知所述第一处理器核获取所述待上传数据;所述数据传输请求由所述外设控制器在需要向所述第一处理器核上传数据的情况下触发。
7、本说明书实施例提供的交互方法基于包括输入输出处理器和第一处理器的处理器架构实现,其中,第一处理器包括第一处理器核,第一处理器核可以用于运行用户应用,可以称其为主核,输入输出处理器中的第二处理器核用于响应于第一处理器核发送的针对目标外设的访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果,并将所述访问请求对应的执行结果返回给所述第一处理器核,和/或,第二处理器核可以响应于外设控制器发起的数据传输请求,获取所述外设控制器的待上传数据,并向所述第一处理器核发送通知消息,以通知所述第一处理器核获取所述待上传数据。如此,通过所述交互方法,将针对目标外设的访问请求和/或外设控制器发起的数据传输请求交由第二处理器核执行,使得针对目标外设的具体访问操作和/或待上传数据的搬运操作可以由第二处理器核执行,减少了针对目标外设的具体访问操作和/或待上传数据的搬运操作对第一处理器核的打扰,有利于降低第一处理器核在与外设的交互过程中消耗的资源,从而避免了第一处理器核与外设交互过程中消耗大量资源而可能导致出现主核性能下降、延迟增加的问题。
8、在一个实施方式中,所述针对目标外设的访问请求包括:针对第一类外设的访问请求,和/或,针对第二类外设的低速访问请求,所述第一类外设包括低速外设设备,所述低速外设设备用于表征所述低速外设设备在与所述第二处理器核通信时的速率小于预设阈值;
9、所述第二类外设包括高速外设设备,所述高速外设设备用于表征所述高速外设设备响应于低速访问请求时,在与所述第二处理器核通信时的速率小于所述预设阈值,所述高速外设设备响应于高速访问请求时,在与所述第二处理器核通信时的速率大于或等于所述预设阈值。
10、在本实施方式中,将针对第一类外设的访问请求和针对第二类外设的低速访问请求中的至少一者作为针对目标外设的访问请求,交由第二处理器核来具体执行,这是因为针对第一类外设的访问请求和针对第二类外设的低速访问请求对于交互过程中的数据传输速率的要求较低,因此,将针对第一类外设的访问请求和针对第二类外设的低速访问请求中的至少一者作为针对目标外设的访问请求交由第二处理器核执行,即使在第一处理器核与目标外设之间增加了输入输出处理器这一中间媒介,仍可满足针对目标外设的访问请求的数据传输速率要求,而将针对第一类外设的访问请求和针对第二类外设的低速访问请求交由第二处理器核执行,可以减少针对目标外设的访问请求对第一处理器核的资源占用,有利于释放第一处理器核的性能。
11、在一个实施方式中,所述第一类外设包括:通用异步收发器uart设备、集成电路总线i2c设备和串行外围接口spi设备中的至少一者;
12、所述第二类外设包括:通用串行总线usb设备、高速串行计算机扩展总线标准pcie设备、以太网控制器、图形处理单元、缓存控制器和动态随机存储器控制器中的至少一者。
13、可以理解的是,针对第二类外设的高速访问请求的数据传输速率的要求通常较高,因此,可以将针对第二类外设的高速访问请求交由第一处理器核执行,减少第一处理器核与第二类外设交互时的中间媒介,有利于保障针对第二类外设的高速访问请求的正常执行。同时,针对第二类外设的访问请求还可能包括针对第二类外设的低速访问请求,例如针对第二类外设的状态检查请求等的访问请求可能对于数据传输速率的要求并不高,因此可以将针对第二类外设的低速访问请求交由第二处理器核执行,进一步降低针对外设的访问请求对第一处理器核的资源占用。
14、在一个实施方式中,所述输入输出处理器还包括与所述第二处理器核相连的存储器,所述与所述第二处理器核相连的存储器中设置有所述第一处理器核和所述第二处理器核均可访问的共享存储空间,所述共享存储空间用于实现所述第一处理器核和所述第二处理器核之间的通信;所述通过所述第二处理器核响应于第一处理器核发送的针对目标外设的访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果包括:
15、通过所述第二处理器核响应于所述第一处理器核将针对所述目标外设的访问请求存储在所述与所述第二处理器核相连的存储器的共享存储空间中,从所述共享存储空间中读取针对所述目标外设的访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果。
16、在本实施方式中,提供了一种保障第一处理器核和第二处理器核之间的正常通信的方法,具体地,在输入输出处理器中设置了第二存储器,并在第二存储器中设置了共享存储空间,第一处理器核可以将针对目标外设的访问请求存储在所述共享存储空间中,以使第二存储器核从共享存储空间中读取针对所述目标外设的访问请求并访问对应的外设控制器,实现与第一处理器核之间的通信以及针对目标外设的访问请求的执行。在第二处理器核得到外设控制器返回的执行结果后,也可以将执行结果写入共享存储空间中,以使第一处理器核从共享存储空间中读取执行结果,实现第二处理器核向第一处理器核的信息传递。在本实施方式中,通过共享存储空间实现第一处理器核与第二处理器核之间的通信,无需要求第一处理器核与第二处理器核具备直接通信能力,有利于扩展交互方法的适用性。
17、在一个实施方式中,所述输入输出处理器还包括第一寄存器和第二寄存器,所述第一寄存器用于存储第一指针,所述第二寄存器用于存储第二指针,所述第一指针和所述第二指针的计数值不同时,表征所述共享存储空间中存在待处理的所述访问请求;所述第一指针的第一计数值在所述第二处理器核将所述访问请求写入所述共享存储空间时被更新;
18、所述通过所述第二处理器核响应于所述第一处理器核将针对所述目标外设的访问请求存储在所述第二存储器的共享存储空间中包括:
19、通过所述第二处理器核轮询所述第一指针和所述第二指针,在所述第一计数值与所述第二指针的第二计数值不同时,查询所述共享存储空间中的所述访问请求并读取;
20、所述根据所述访问请求访问所述目标外设对应的外设控制器之后,还包括:
21、更新所述第二指针的第二计数值,以使所述第二计数值与所述第一计数值相同。
22、在本实施方式中,通过第一指针和第二指针的计数值是否相同来指示共享存储空间内是否被存在需要处理的目标外设的访问请求,通过第二处理器核轮询的方式判断共享存储空间中是否被写入了针对目标外设的访问请求,无需第二处理器处理中断,避免了处理中断时所需的上下文切换开销。
23、在一个实施方式中,所述输入输出处理器还包括第一寄存器、第二寄存器和中断触发模块,所述第一寄存器用于存储第一指针,所述第二寄存器用于存储第二指针,所述第一指针和所述第二指针的计数值不同时,表征所述共享存储空间中存在所述访问请求;所述第一指针的第一计数值在所述第二处理器核将所述访问请求写入所述共享存储空间时被更新,所述中断触发模块包括控制器和第三寄存器中的至少一者;
24、所述通过所述第二处理器核响应于所述第一处理器核将针对所述目标外设的访问请求存储在所述第二存储器的共享存储空间中包括:
25、通过所述第二处理器核响应于中断信息,查询所述共享存储空间中的所述访问请求并读取;
26、所述中断信息包括所述控制器检测到所述第一指针的第一计数值与所述第二指针的第二计数值不同时,生成的中断;
27、或者
28、所述中断信息包括所述第三寄存器被触发时生成的中断,所述第三寄存器在所述第二处理器核将所述访问请求写入所述共享存储空间时被触发。
29、在本实施方式中,通过中断触发模块触发中断消息的方式告知第二处理器核需要处理新的访问请求,无需第二处理器核通过轮询的方式不断访问第一指针和第二指针的计数值,有利于降低第二处理器核在获悉是否有待处理的访问请求的资源消耗。
30、在一个实施方式中,所述第一指针和所述第二指针均用于指向环形缓冲区。
31、在本实施方式中,通过设计一个固定的内存区域大小的环形缓冲区,并使第一指针和第二指针均指向该环形缓冲区,避免了第一指针和第二指针的计数值更新时可能造成的数据溢出。具体地,环形缓冲区定义的内存区域大小不会随着数据写入而增长,限制了存储的上限,防止了无限增长导致的溢出。此外,第一指针或第二指针到达缓冲区的末位部,不会停止或溢出,而是循环回到缓冲区的起始部继续写入,形成环状运动,如此,即使环形缓冲区写满,也不会影响第一指针或第二指针的计数值更新。
32、第二方面,本说明书的一个实施方式提供一种交互方法,所述交互方法应用于处理器架构,所述处理器架构包括第一处理器、输入输出处理器以及至少一个外设控制器;所述输入输出处理器作为所述第一处理器与所述至少一个外设控制器进行交互时的一个中间媒介;所述第一处理器包括第一处理器核,所述输入输出处理器包括第二处理器核;所述交互方法包括:
33、通过所述第一处理器核将针对目标外设的访问请求传递给所述第二处理器核,针对目标外设的访问请求用于指示所述第二处理器核响应所述访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果,并将所述访问请求对应的执行结果返回给所述第一处理器核;
34、和/或
35、响应于所述第二处理器核传输的通知消息,获取待上传数据;所述通知消息由所述第二处理器核响应于外设控制器发起的数据传输请求,获取所述外设控制器的待上传数据,并上报所述通知消息;所述数据传输请求由所述外设控制器在需要向所述第一处理器核上传数据的情况下触发。
36、在一个实施方式中,所述输入输出处理器还包括与所述第二处理器核相连的存储器、第一寄存器和第二寄存器,所述存储器中设置有所述第一处理器核和所述第二处理器核均可访问的共享存储空间,所述共享存储空间用于实现所述第一处理器核和所述第二处理器核之间的通信,所述第一寄存器用于存储第一指针,所述第二寄存器用于存储第二指针,所述通过所述第一处理器核将针对目标外设的访问请求传递给所述第二处理器核包括:
37、通过所述第一处理器核将针对目标外设的访问请求封装为预设格式的消息,将所述消息写入所述存储器的共享存储空间中,并更新所述第一寄存器中所述第一指针的第一计数值,所述第一指针和所述第二指针的计数值不同时,表征所述共享存储空间中存在待处理的所述访问请求。
38、第三方面,本说明书的一个实施方式还提供了一种处理器架构,包括输入输出处理器、第一处理器和至少一个外设控制器;所述输入输出处理器作为所述第一处理器与所述至少一个外设控制器进行交互时的一个中间媒介;所述第一处理器包括第一处理器核,所述输入输出处理器包括第二处理器核;其中,
39、所述第一处理器核被配置为:将针对目标外设的访问请求传递给所述第二处理器核,和/或,响应于所述第二处理器核传输的通知消息,获取待上传数据;
40、所述第二处理器核被配置为:响应于所述访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果,并将所述访问请求对应的执行结果返回给所述第一处理器核,和/或,响应于外设控制器发起的数据传输请求,获取所述外设控制器的待上传数据,并向所述第一处理器核发送通知消息;所述数据传输请求由所述外设控制器在需要向所述第一处理器核上传数据的情况下触发。
41、第四方面,本说明书的一个实施方式还提供了一种计算设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的交互方法。
42、第五方面,本说明书的一个实施方式还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的交互方法。
43、第六方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的交互方法的步骤。
44、从上述技术方案可以看出,本说明书实施例提供的交互方法基于包括输入输出处理器和第一处理器的处理器架构实现,其中,第一处理器包括第一处理器核,第一处理器核可以用于运行用户应用,可以称其为主核,输入输出处理器中的第二处理器核用于响应于第一处理器核发送的针对目标外设的访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果,并将所述访问请求对应的执行结果返回给所述第一处理器核,和/或,第二处理器核可以响应于外设控制器发起的数据传输请求,获取所述外设控制器的待上传数据,并向所述第一处理器核发送通知消息,以通知所述第一处理器核获取所述待上传数据。如此,通过所述交互方法,将针对目标外设的访问请求和/或外设控制器发起的数据传输请求交由第二处理器核执行,使得针对目标外设的具体访问操作和/或待上传数据的搬运操作可以由第二处理器核执行,减少了针对目标外设的具体访问操作和/或待上传数据的搬运操作对第一处理器核的打扰,有利于降低第一处理器核在与外设的交互过程中消耗的资源,从而避免了第一处理器核与外设交互过程中消耗大量资源而可能导致出现主核性能下降、延迟增加的问题。
45、此外,第二处理器核可以是用于处理外设访问的处理器核,如此,可以使用较为简单架构的处理器核作为所述第二处理器核,如此有利于降低对第二处理器核的硬件要求以及运行功耗。
1.一种交互方法,其特征在于,所述交互方法应用于处理器架构,所述处理器架构包括第一处理器、输入输出处理器以及至少一个外设控制器;所述输入输出处理器作为所述第一处理器与所述至少一个外设控制器进行交互时的中间媒介;所述第一处理器包括第一处理器核,所述输入输出处理器包括第二处理器核;所述交互方法包括:
2.根据权利要求1所述的方法,其特征在于,所述针对目标外设的访问请求包括:针对第一类外设的访问请求,和/或,针对第二类外设的低速访问请求,所述第一类外设包括低速外设设备,所述低速外设设备用于表征所述低速外设设备在与所述第二处理器核通信时的速率小于预设阈值;
3.根据权利要求2所述的方法,其特征在于,所述第一类外设包括:通用异步收发器uart设备、集成电路总线i2c设备和串行外围接口spi设备中的至少一者;
4.根据权利要求1所述的方法,其特征在于,所述输入输出处理器还包括与所述第二处理器核相连的存储器,所述与所述第二处理器核相连的存储器中设置有所述第一处理器核和所述第二处理器核均可访问的共享存储空间,所述共享存储空间用于实现所述第一处理器核和所述第二处理器核之间的通信;所述通过所述第二处理器核响应于第一处理器核发送的针对目标外设的访问请求,根据所述访问请求访问所述目标外设对应的外设控制器,以使所述外设控制器返回所述访问请求对应的执行结果包括:
5.根据权利要求4所述的方法,其特征在于,所述输入输出处理器还包括第一寄存器和第二寄存器,所述第一寄存器用于存储第一指针,所述第二寄存器用于存储第二指针,所述第一指针和所述第二指针的计数值不同时,表征所述共享存储空间中存在待处理的所述访问请求;所述第一指针的第一计数值在所述第二处理器核将所述访问请求写入所述共享存储空间时被更新;
6.根据权利要求4所述的方法,其特征在于,所述输入输出处理器还包括第一寄存器、第二寄存器和中断触发模块,所述第一寄存器用于存储第一指针,所述第二寄存器用于存储第二指针,所述第一指针和所述第二指针的计数值不同时,表征所述共享存储空间中存在所述访问请求;所述第一指针的第一计数值在所述第二处理器核将所述访问请求写入所述共享存储空间时被更新,所述中断触发模块包括控制器和第三寄存器中的至少一者;
7.根据权利要求5或6所述的方法,其特征在于,所述第一指针和所述第二指针均用于指向环形缓冲区。
8.一种交互方法,其特征在于,所述交互方法应用于处理器架构,所述处理器架构包括第一处理器、输入输出处理器以及至少一个外设控制器;所述输入输出处理器作为所述第一处理器与所述至少一个外设控制器进行交互时的一个中间媒介;所述第一处理器包括第一处理器核,所述输入输出处理器包括第二处理器核;所述交互方法包括:
9.根据权利要求8所述的方法,其特征在于,所述输入输出处理器还包括与所述第二处理器核相连的存储器、第一寄存器和第二寄存器,所述存储器中设置有所述第一处理器核和所述第二处理器核均可访问的共享存储空间,所述共享存储空间用于实现所述第一处理器核和所述第二处理器核之间的通信,所述第一寄存器用于存储第一指针,所述第二寄存器用于存储第二指针,所述通过所述第一处理器核将针对目标外设的访问请求传递给所述第二处理器核包括:
10.一种处理器架构,其特征在于,包括输入输出处理器、第一处理器和至少一个外设控制器;所述输入输出处理器作为所述第一处理器与所述至少一个外设控制器进行交互时的一个中间媒介;所述第一处理器包括第一处理器核,所述输入输出处理器包括第二处理器核;其中,
11.一种计算设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1~9任一项所述的交互方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~9任一项所述的交互方法。
