处理器系统、核间通信方法、处理器以及存储单元
文献发布时间:2023-06-19 11:00:24
技术领域
本申请实施例涉及核间通信领域,并且更具体地,涉及处理器系统、核间通信方法、处理器以及存储单元。
背景技术
随着集成电路技术的不断发展和应用场景的不断细化,市场对片上系统(Systemon Chip,SOC)的性能以及集成度的要求越来越高。在高性能SOC的设计过程中,核间通信技术起着关键性的作用,直接影响SOC的整个性能。随着SOC对不同类型中央处理器(CentralProcessing Unit,CPU)的集成,核间通信也变得越来越复杂多样,同时对传输性能要求越来越高。
通常情况下,发送核和接收核各自在本地存储空间中维护一个消息队列,发送核以发送消息队列的方式按照顺序发送消息,接收核以接收消息队列的方式按照顺序读取消息。通过本地存储进行核间通信,能够降低数据访问延迟,提升数据传输效率。
但是,随着技术的发展,需要进一步提升数据传输效率。
此外,由于消息的发送和消息的处理都是以队列的方式按照顺序进行的,会造成发送核对紧急消息的处理不够及时以及接收核对紧急消息的响应效率过低的问题。
因此,如何在保证传输效率的基础上,提升接收核对消息的响应效率是本领域急需解决的技术问题。
发明内容
提供了一种处理器系统、核间通信方法、处理器以及存储单元,能够在保证传输效率的基础上,提升对消息的响应效率。
第一方面,提供了一种处理器系统,包括:
第一处理器;
第二处理器,所述第二处理器包括本地存储单元和存储单元组;所述第一处理器根据所述存储单元组中存储的地址信息,对所述本地存储单元进行写入操作,所述第二处理器根据所述存储单元组中存储的地址信息,对所述第一处理器写入所述本地存储单元的数据进行读取操作。
第二方面,提供了一种核间通信方法,包括:
第一处理器获取写操作地址信息和读操作地址信息,所述写操作地址信息用于指示所述第一处理器在第二处理器的本地存储单元的存储空间中的最新写入位置,所述读操作地址信息用于指示所述第二处理器在所述存储空间中的最新读取位置;
所述第一处理器基于所述最新读取位置和所述最新写入位置,确定所述存储空间是否存在可用空间;
所述第一处理器在所述存储空间存在所述可用空间的情况下,将待写入的消息写入所述可用空间。
第三方面,提供了一种核间通信方法,应用于第二处理器,所述第二处理器包括本地存储单元以及写操作地址信息存储单元,包括:
所述第二处理器从所述写操作地址信息存储单元读取写操作地址信息,所述写操作地址信息用于指示所述第一处理器在所述本地存储单元的存储空间中的最新写入位置;
所述第二处理器基于所述写操作地址信息读取所述存储空间中存储的消息。
第四方面,提供了一种核间通信方法,包括:
写操作地址信息存储单元存储写操作地址信息,所述写操作地址信息用于指示第一处理器在第二处理器的本地存储单元的存储空间中的最新写入位置。
第五方面,提供了一种核间通信方法,包括:
读操作地址信息存储单元存储读操作地址信息,所述读操作地址信息用于指示第二处理器在所述第二处理器的本地存储单元的存储空间中的最新读取位置。
第六方面,提供了一种处理器,用于执行上述第二方面或其各实现方式中的方法。具体地,所述第一处理器包括用于执行上述第二方面或其各实现方式中的方法的功能模块。
第七方面,提供了一种处理器,用于执行上述第三方面或其各实现方式中的方法。具体地,所述第二处理器包括用于执行上述第三方面或其各实现方式中的方法的功能模块。
第八方面,提供了一种写操作地址信息存储单元,用于执行上述第四方面或其各实现方式中的方法。具体地,所述写操作地址信息存储单元包括用于执行上述第四方面或其各实现方式中的方法的功能模块。
第九方面,提供了一种读操作地址信息存储单元,用于执行上述第五方面或其各实现方式中的方法。具体地,所述读操作地址信息存储单元包括用于执行上述第五方面或其各实现方式中的方法的功能模块。
第十方面,提供了一种芯片,用于实现上述第二方面至第五方面中的任一方面或其各实现方式中的方法。具体地,所述芯片包括:处理器,用于从本地存储单元中调用并运行计算机程序,使得安装有所述芯片的设备执行如上述第二方面至第五方面中的任一方面或其各实现方式中的方法。
第十一方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述第二方面至第五方面中的任一方面或其各实现方式中的方法。
基于以上技术方案,一方面,通过所述第二处理器的本地存储单元的存储空间存储待写入的消息,能够控制数据传输时延,进而保证数据传输效率,另一方面,通过所述所述存储单元组中存储的地址信息,使得第一处理器以及第二处理器在所述存储空间内能够连续及时的写入消息,相应的,能够进一步提升数据传输效率,并提升数据的响应效率。
附图说明
图1是本申请实施例提供的基于本地存储单元的核间通信系统的示意性框图。
图2是本申请实施例提供的基于共享内存和存储单元进行核间通信系统的示意性框图。
图3是基于图2所示的系统的核间通信方法的示意性流程图。
图4是本申请实施例提供的用于核间通信的系统的示意性框图。
图5是图4所示的本地存储单元和存储单元的示意性框图。
图6至图11是本申请实施例提供的核间通信方法的示意性流程图。
图12是本申请实施例提供的第一处理器的示意性框图。
图13是本申请实施例提供的第二处理器的示意性框图。
图14是本申请实施例提供的写操作地址信息存储单元的示意性框图。
图15是本申请实施例提供的读操作地址信息存储单元的示意性框图。
图16是本申请实施例提供的芯片的示意性框图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
应理解,本申请实施例涉及核间通信技术领域,即第一处理器和第二处理器之间的通信。所述第一处理器和所述第二处理器可以是任意类型的处理器或具有数字处理功能的器件或组件。
例如,中央处理器(Central Processing Unit,CPU)。再如,通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
再如,所述第一处理器和第二处理器可分别作为一个处理器中的发送核和接收核。
当然,所述第一处理器或所述第二处理器也可以是集成有处理器的装置或设备。
图1是本申请实施例提供的基于本地存储单元的核间通信系统100的示意性框图。
如图1所示,所述通信系统100可包括第一处理器110和第二处理器120,所述第一处理器110包括本地存储单元111,所述第二处理器120包括本地存储单元121。所述第一处理器110和所述第二处理器120可通过总线130相连,所述第一处理器和所述第二处理器130可通过所述总线130传输消息。
例如,总线130包括但不限于除包括数据总线、电源总线、控制总线和状态信号总线。
例如,第一处理器110在本地存储单元111中维护一个发送消息队列,第二处理器120在本地存储单元121中维护一个接收消息队列,第一处理器110以发送消息队列的方式按照顺序发送消息,第二处理器120以接收消息队列的方式按照顺序读取消息。例如,所述发送消息队列或所述接收消息队列中按顺序包括消息0至消息n,每一个消息中包括发送者标识(ID)、接收者ID、控制信息、其他信息和消息数据。可选的,可以通过发送者ID和接收者ID确定处理任务,通过控制信息完成对消息数据相应处理,可以通过其他消息扩展其他功能。
例如,所述第一处理器110和所述第二处理器120建立消息传递连接后,第一处理器110的应用程序将数据写入发送消息队列;第一处理器110的驱动程序按照发送消息队列的顺序将消息写入第二处理器120的接收消息队列;第二处理器120的驱动程序按照接收消息队列的顺序解析并读取消息,以完成核间通信。
通过所述本地存储单元111和本地存储单元121进行核间通信,能够降低数据访问延迟,提升数据传输效率。
但是,随着技术的发展,需要进一步提升数据传输效率。
此外,由于消息的发送和消息的处理都是以队列的方式按照顺序进行的,会造成紧急消息处理不够及时以及响应效率过低的问题。
本申请提供了一种基于共享内存和中断存储单元进行核间通信系统,能够使得第一处理器110及时的处理紧急消息。
图2是本申请实施例提供的基于共享内存和中断存储单元进行核间通信系统200的示意性框图。
如图2所示,所述核间通信系统200可包括第一处理器210、第二处理器220以及共享内存240,所述第二处理器220包括中断存储单元221。所述第一处理器110和所述第二处理器120可通过总线230相连,所述第一处理器和所述第二处理器130可通过所述总线130和所述共享内存240传输消息。例如,所述共享内存240可用于存储交换的数据;所述中断存储单元240可用于产生中断信息,所述中断信息用于通知第二处理器读取消息。
例如,总线230包括但不限于除包括数据总线、电源总线、控制总线和状态信号总线。
图3是基于图2所示的系统的核间通信方法300的示意性流程图。
如图3所示,所述方法300可包括:
S310,第一处理器和第二处理器建立共享内存连接后,第一处理器读取中断存储单元的中断标志,所述中断标志用于指示所述第二处理器是否已经读取完消息。
S320,所述第一处理器通过所述中断标志判断共享内存是否可用。
S330,如果共享内存不可用,则重新从中断存储单元获取中断标志,直至基于获取的中断标志判断共享内存可用;如果共享内存可用,则写入数据。
S340,所述第一处理器在所述共享内存写完数据后,在所述中断存储单元中写入中断标志,所述中断标志用于指示所述第一处理器已经写完数据,所述中断标志用于触发所述中断存储单元项所述第二处理器发送中断信息,所述中断信息用于指示所述第二处理器读取所述共享内存中的数据。
S350,所述第二处理器基于所述中断存储单元发送的中断信息,从所述共享内存中读取数据。
S360,所述第二处理器读取完数据后,清除所述中断存储单元中的中断标志。
S370,所述第二处理器处理读取的数据。
通过共享内存结合中断存储单元的机制进行核间通信,虽然避免了采用队列的方式写入或读取消息,能够使得第一处理器优先及时的将紧急消息写入共享内存。但是,由于数据都在共享内存中,应用程序在访问数据时延迟过大,仍然存在响应效率过低的的问题;另外,第一处理器写入数据前都需要先通过中断存储单元中的中断标志确认第二处理器已经读完数据,以避免第二处理器没有读取的数据被覆盖,基于此,会造成数据传输效率低的问题。
本申请还提供了一种核间通信方法,能够在保证传输效率的基础上,提升第二处理器对消息的响应效率。
图4是本申请实施例提供的用于核间通信的系统400的示意性框图。
如图4所示,所述核间通信系统400可包括第一处理器410和第二处理器420,所述第二处理器420包括本地存储单元421和存储单元组422。所述第一处理器410和所述第二处理器420均根据所述存储单元组422中存储的地址信息,对所述本地存储单元421进行访问。
例如,所述第一处理器410根据所述存储单元组422中存储的地址信息,对所述本地存储单元421进行写入操作,所述第二处理器420根据所述存储单元组422中存储的地址信息,对所述第一处理器410写入所述本地存储单元421的数据进行读取操作。
例如,所述第一处理器410和所述第二处理器420可通过总线430相连,所述第一处理器410和所述第二处理器430可通过所述总线430传输消息。
例如,总线430包括但不限于除包括数据总线、电源总线、控制总线和状态信号总线。
例如,所述本地存储单元421可以是软件设计成的环形缓冲区,用于存储第一处理器410发送的消息;例如,所述存储单元组422可以是一组用于控制本地存储单元421读写操作的存储单元和中断的存储单元。
图5是图4所示的本地存储单元和存储单元的示意性框图。
如图5所示,本地存储单元421可以是环形本地存储单元,所述存储单元组422可以包括中断存储单元423、写操作地址信息存储单元424以及读操作地址信息存储单元425。
例如,所述存储单元组422可以包括写操作地址信息存储单元424;所述第二处理器420根据所述写操作地址信息存储单元424中存储的写操作地址信息,对本地存储单元421进行读取操作;所述写操作地址信息用于指示所述第一处理器410在所述存储空间中的最新写入位置。
换言之,所述写操作地址信息存储单元424可用于存储写操作地址信息。可以由第一处理器410更新所述写操作地址信息。
再如,所述存储单元组422可以包括读操作地址信息存储单元425;所述第一处理器410根据所述读操作地址信息存储单元425中存储的读操作地址信息,对所述本地存储单元421进行写入操作;所述读操作地址信息用于指示所述第二处理器420在所述本地存储单元的存储空间中的最新读取位置。
换言之,所述读操作地址信息存储单元425可用于存储读操作地址信息,可以由第二处理器420更新所述读操作地址信息。
再如,所述存储单元组422可以包括中断存储单元423,所述第二处理器420根据所述中断存储单元423发送的中断信息,对本地存储单元421进行读取操作;所述中断信息用于触发所述第二处理器420从所述存储空间读取消息。
换言之,所述中断控制器423可用于记录中断标志,可以由第一处理器410写入所述中断标志,所述中断标志可用于触发所述第二处理器420读取数据,可由第二处理器420清除所述中断标志。
例如,所述本地存储单元421可以通过多个标识表示所述本地存储单元421的存储空间的位置。例如,如图5所示的0~4。所述写操作地址信息和所述读操作地址信息可以是所述多个标识的一个或多于一个的标识。
通过增加的硬件存储单元,即中断存储单元423、写操作地址信息存储单元424以及读操作地址信息存储单元425,可以提高方案的灵活性,丰富方案的使用场景。
图6是本申请实施例提供的核间通信方法500的示意性框图。所述方法500可以由第一处理器执行。例如,图4所述的第一处理器410。
如图6所示,所述方法500可包括:
S510,第一处理器获取写操作地址信息和读操作地址信息,所述写操作地址信息用于指示所述第一处理器在第二处理器的本地存储单元的存储空间中的最新写入位置,所述读操作地址信息用于指示所述第二处理器在所述存储空间中的最新读取位置;
S520,所述第一处理器基于所述最新读取位置和所述最新写入位置,确定所述存储空间是否存在可用空间;
S530,所述第一处理器在所述存储空间存在所述可用空间的情况下,将待写入的消息写入所述可用空间。
基于以上技术方案,一方面,通过所述第二处理器的本地存储单元的存储空间存储待写入的消息,能够控制数据传输时延,进而保证数据传输效率,另一方面,通过所述写操作地址信息和读操作地址信息,第一处理器能够确定所述第二处理器的本地存储单元的存储空间中是够存在可用空间,在存在可用空间的情况下,使得第一处理器在所述存储空间内能够连续及时的写入消息,相应的,能够进一步提升数据传输效率,并提升数据的响应效率。
简言之,通过所述第二处理器的本地存储单元的存储空间来存储第二处理器传输的消息,能够降低数据访问的延迟;采用读操作地址信息和写操作地址信息管理所述存储空间,使得第一处理器可以进行连续及时的写入消息,能够提升传输效率。
在本申请的一些实施例中,所述写操作地址信息为所述第一处理器维护的信息,所述方法500还可包括:
所述第一处理器将所述写操作地址信息写入写操作地址信息存储单元。
例如,所述第一处理器写完消息后,将所述最新的写操作地址信息写入所述写操作地址信息存储单元。
需要说明的是,本申请实施例中,所述第一处理器可用于维护所述写操作地址信息,可以理解为所述第一处理器将所述写操作地址信息存储在所述第一处理器的本地存储单元内,也可以理解为所述第一处理器将所述写操作地址信息存储在与所述第一处理器连接的存储单元,例如共享存储单元甚至外部存储单元。
在本申请的一些实施例中,所述读操作地址信息为所述第一处理器从读操作地址信息存储单元读取的信息。
在本申请的一些实施例中,所述方法500还可包括:
所述第一处理器向中继存储单元写入中断标志,所述中断标志用于指示所述第一处理器已将待写入的消息写入所述存储空间,以触发所述中断存储单元向所述第二处理器发送中断信息,所述中断信息用于触发所述第二处理器从所述存储空间读取消息。
通过中断存储单元中的中断标志可以出发第二处理器及时读取消息,能够提高第二处理器对消息的响应效率。
需要说明的是,所述中断存储单元向所述第二处理器发送所述中断信息,也可以理解为所述中断存储单元产生中断。
在本申请的一些实施例中,所述存储空间为环形缓存空间。环形缓存空间也可称为环形缓冲区。
换言之,可以将所述存储空间构造为环形缓存空间,并利用读操作地址信息和写操作地址信息管理所述存储空间。
图7是本申请实施例提供的核间通信方法600的示意性框图。所述方法600可以由第二处理器执行。例如,所述第二处理器包括本地存储单元以及写操作地址信息存储单元。例如,图4所述的第二处理器420。
如图7所示,所述方法600可包括:
S610,所述第二处理器从所述写操作地址信息存储单元读取写操作地址信息,所述写操作地址信息用于指示第一处理器在所述本地存储单元的存储空间中的最新写入位置;
S620,所述第二处理器基于所述写操作地址信息读取所述存储空间中存储的消息。
在本申请的一些实施例中,所述写操作地址信息为所述第一处理器维护的信息。
在本申请的一些实施例中,所述第二处理器还包括读操作地址信息存储单元,所述方法600还可包括:
所述第二处理器将读操作地址信息写入所述读操作地址信息存储单元,所述读操作地址信息用于指示所述第二处理器在所述存储空间中的最新读取位置。
例如,所述第二处理器读完数据后,将所述读操作地址信息写入所述读操作地址信息存储单元。
需要说明的是,本申请实施例中,所述第二处理器可用于维护所述读操作地址信息,可以理解为所述第二处理器将所述读操作地址信息存储在所述第二处理器的本地存储单元内,也可以理解为所述第二处理器将所述读操作地址信息存储在与所述第二处理器连接的存储单元,例如共享存储单元甚至外部存储单元。
在本申请的一些实施例中,所述第二处理器还包括中断存储单元,所述S620可包括:
所述第二处理器接收所述中断存储单元发送的中断信息,所述中断信息用于触发所述第二处理器从所述存储空间读取消息;所述第二处理器基于所述写操作地址信息读取所述存储空间中存储的消息。
在本申请的一些实施例中,所述方法600还可包括:
在所述第二处理器读取所述写操作地址信息后,清除所述中断存储单元中的中断标志。
在本申请的一些实施例中,所述存储空间为环形缓存空间。
图8是本申请实施例提供的核间通信方法700的示意性框图。所述方法700可以由写操作地址信息存储单元执行。例如,图4所述的存储单元组422中的写操作地址信息存储单元424。
如图8所示,所述方法700可包括:
S710,写操作地址信息存储单元存储写操作地址信息,所述写操作地址信息用于指示第一处理器在第二处理器的本地存储单元的存储空间中的最新写入位置。
在本申请的一些实施例中,所述写操作地址信息为第一处理器写入的信息。
图9是本申请实施例提供的核间通信方法800的示意性框图。所述方法800可以由读操作地址信息存储单元执行。例如,图4所述的存储单元组422中的读操作地址信息存储单元425。
如图9所示,所述方法800可包括:
S810,读操作地址信息存储单元存储读操作地址信息,所述读操作地址信息用于指示第二处理器在所述第二处理器的本地存储单元的存储空间中的最新读取位置。
在本申请的一些实施例中,所述读操作地址信息为第二处理器写入的信息。
图10是本申请实施例提供的核间通信方法900的示意性框图。所述方法900可以由第一处理器、第二处理器的本地存储单元、读操作地址信息存储单元、写操作地址信息存储单元、中断存储单元以及第二处理器交互执行。例如,图4和图5所述的系统400。
如图10所示,所述方法900可包括以下中的部分或全部内容:
S901,第一处理器和第二处理器建立共享内存连接后,第一处理器从读操作地址信息存储单元中读取读操作地址信息。
S902,第一处理器根据读操作地址信息和所述第一处理器维护的写操作地址信息,查看所述第二处理器的本地存储单元的存储空间是否存在可用空间。
S903,如果所述存储空间存在可用空间,所述第一处理器将消息写入所述可用空间;如果所述存储空间不存在可用空间,所述第一处理器重新读取所述读操作地址信息存储单元中的读操作地址信息,直至所述存储空间存在可用空间。
S904,所述第一处理器在写完数据后,向写操作地址信息存储单元写入最新的写操作地址信息。
S905,所述第一处理器向中断存储单元写入中断标志。
S906,所述中断存储单元基于所述中断标志项第二处理器发送中断信息,所述中断信息用于触发所述第二处理器读取消息。
S907,第二处理器接收到所述中断信息后,从写操作地址信息存储单元读取写操作地址信息。
S908,所述第二处理器清除所述中断存储单元中的中断标志。
S909,所述第二处理器根据写操作地址信息和所述第二处理器维护的读指,针判断读取消息的地址和长度,然后读取消息。
S910,所述第二处理器向读操作地址信息存储单元写入最新的读操作地址信息。
S910,所述第二处理器处理读取到的消息。
S910,所述第二处理器维护读操作地址信息。
S910,所述第一处理器维护写操作地址信息。
由于本地存储是软件环形缓冲区管理的,因此在所述第二处理器的本地存储单元未满数据之前是可以流式传输的,只要第二处理器清除中断标志以后,第一处理器就可以继续写入消息。
图11是本申请实施例提供的核间通信方法1000的示意性流程图。所述方法1000可以由第一处理器、第二处理器的本地存储单元、读操作地址信息存储单元、写操作地址信息存储单元、中断存储单元以及第二处理器交互执行。例如,图4和图5所述的系统400。
如图10所示,所述方法900可包括以下中的部分或全部内容:
S1011~S1018;
S10n1~S10n8;
S1111,第二处理器从所述存储空间中读取第1条消息;
S1112,所述第二处理器向读操作地址信息存储单元写入最新的读操作地址信息;
S1113,所述第二处理器处理读取的第1条消息;
S11n1,所述第二处理器从所述存储空间中读取第n条消息;
S11n2,所述第二处理器向读操作地址信息存储单元写入最新的读操作地址信息;
S11n3,所述第二处理器处理读取的第n条消息。
应理解,图11中的步骤S1011~S1018,以及步骤S10n1~S10n8可以参见图10中的步骤S901~S908,为避免重复,此处不再赘述。
还应理解,针对第2条消息和第n条消息之间的每一个消息,也可以按照针对第1条消息或第n条消息的方式进行读写处理。本申请实施例对此不作具体限定。
应理解,本申请实施例从单个执行主体描述的核间通信方法中的步骤,与从多个执行主体进行交互的角度描述的核间通信方法的相应步骤可以参考相互参考,为了简洁,在此不再赘述。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
上文结合图6至图11,详细描述了本申请的方法实施例,下文结合图12至图16,详细描述本申请的装置实施例。
图12是本申请实施例的第一处理器2000的示意性框图。
如图12所示,所述第一处理器2000可包括:
获取单元2100,用于获取写操作地址信息和读操作地址信息,所述写操作地址信息用于指示所述第一处理器在第二处理器的本地存储单元的存储空间中的最新写入位置,所述读操作地址信息用于指示所述第二处理器在所述存储空间中的最新读取位置;
确定单元2200,用于基于所述最新读取位置和所述最新写入位置,确定所述存储空间是否存在可用空间;
写入单元2300,用于在所述存储空间存在所述可用空间的情况下,将待写入的消息写入所述可用空间。
在本申请的一些实施例中,所述写操作地址信息为所述第一处理器维护的信息,所述写入单元2300还用于:
将所述写操作地址信息写入写操作地址信息存储单元。
在本申请的一些实施例中,所述读操作地址信息为所述第一处理器从读操作地址信息存储单元读取的信息。
在本申请的一些实施例中,所述写入单元2300还用于:
向中继存储单元写入中断标志,所述中断标志用于指示所述第一处理器已将待写入的消息写入所述存储空间,以触发所述中断存储单元向所述第二处理器发送中断信息,所述中断信息用于触发所述第二处理器从所述存储空间读取消息。
在本申请的一些实施例中,所述存储空间为环形缓存空间。
图13是本申请实施例的第二处理器3000的示意性框图。应理解,所述第二处理器3000包括本地存储单元以及写操作地址信息存储单元.
如图13所示,所述第二处理器3000可包括:
第一读取单元3100,用于从所述写操作地址信息存储单元读取写操作地址信息,所述写操作地址信息用于指示第一处理器在所述本地存储单元的存储空间中的最新写入位置;
第二读取单元3200,用于基于所述写操作地址信息读取所述存储空间中存储的消息。
在本申请的一些实施例中,所述写操作地址信息为所述第一处理器维护的信息。
在本申请的一些实施例中,所述第二处理器还包括读操作地址信息存储单元,所述第二处理器3000还包括:
写入单元,用于将读操作地址信息写入所述读操作地址信息存储单元,所述读操作地址信息用于指示所述第二处理器在所述存储空间中的最新读取位置。
在本申请的一些实施例中,所述第二处理器还包括中断存储单元,所述第二读取单元3200具体用于:
接收所述中断存储单元发送的中断信息,所述中断信息用于触发所述第二处理器从所述存储空间读取消息;
基于所述写操作地址信息读取所述存储空间中存储的消息。
在本申请的一些实施例中,所述第二读取单元3200还用于:
在所述第二处理器读取所述写操作地址信息后,清除所述中断存储单元中的中断标志。
在本申请的一些实施例中,所述存储空间为环形缓存空间。
图14是本申请实施例的写操作地址信息存储单元4000的示意性框图。
如图14所示,所述写操作地址信息存储单元4000可包括:
存储单元4100,用于存储写操作地址信息,所述写操作地址信息用于指示第一处理器在第二处理器的本地存储单元的存储空间中的最新写入位置。
在本申请的一些实施例中,所述写操作地址信息为第一处理器写入的信息。
图15是本申请实施例的读操作地址信息存储单元5000的示意性框图。
如图15所示,所述读操作地址信息存储单元5000可包括:
存储单元5100,用于存储读操作地址信息,所述读操作地址信息用于指示第二处理器在所述第二处理器的本地存储单元的存储空间中的最新读取位置。
在本申请的一些实施例中,所述读操作地址信息为第二处理器写入的信息。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。具体地,图12所示的第一处理器2000、图13所示的第二处理器3000、图14所示的写操作地址信息存储单元4000、图15所示的读操作地址信息存储单元5000可以对应于执行本申请方法实施例中的相应主体,并且各个单元的前述和其它操作和/或功能分别为了实现各个方法实施例中的相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的通信设备。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。
具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。
可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
此外,本申请实施例中还提供了一种芯片。
例如,芯片可能是一种集成电路芯片,具有信号的处理能力,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。所述芯片还可以称为系统级芯片,系统芯片,芯片系统或片上系统芯片等。可选地,该芯片可应用到各种通信设备中,使得安装有该芯片的通信设备能够执行本申请实施例中的公开的各方法、步骤及逻辑框图。
图16是根据本申请实施例的芯片6000的示意性结构图。
如图16所示,所述芯片6000包括处理器6010。
其中,处理器6010可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。
请继续参见图16,所述芯片6000还可以包括存储器6020。
其中,处理器6010可以从存储器6020中调用并运行计算机程序,以实现本申请实施例中的方法。该存储器6020可以用于存储信息,还可以用于存储处理器6010执行的代码、指令等。存储器6020可以是独立于处理器6010的一个单独的器件,也可以集成在处理器6010中。
请继续参见图16,所述芯片6000还可以包括输入接口6030。
其中,处理器6010可以控制该输入接口6030与其他设备或芯片进行通信,具体地,可以获取其他设备或芯片发送的信息或数据。
请继续参见图16,所述芯片6000还可以包括输出接口6040。
其中,处理器6010可以控制该输出接口6040与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。
应理解,所述芯片6000可应用于本申请实施例中的第二处理器、第一处理器、写操作地址信息存储单元或读操作地址信息存储单元,并且该芯片可以实现本申请实施例的各个方法中由相应的执行主体实现的相应流程,为了简洁,在此不再赘述。
例如,所述存储器6020可以是写操作地址信息存储单元、读操作地址信息存储单元以及中断存储单元中的至少一个。
再如,所述处理器6010可以是上述第一处理器或第二处理器。
还应理解,该芯片6000中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
上文涉及的处理器可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
所述处理器可以用于实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上文涉及的存储器包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
应注意,本文描述的存储器旨在包括这些和其它任意适合类型的存储器。
本申请实施例中还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行方法实施例的方法。
例如,该计算机可读存储介质可应用于本申请实施例中的第二处理器、第一处理器、写操作地址信息存储单元或读操作地址信息存储单元,并且该计算机程序使得计算机执行本申请实施例的各个方法中由相应的执行主体实现的相应流程,为了简洁,在此不再赘述。
本申请实施例中还提供了一种计算机程序产品,包括计算机程序。
例如,该计算机程序产品可应用于本申请实施例中的第二处理器、第一处理器、写操作地址信息存储单元或读操作地址信息存储单元,并且该计算机程序使得计算机执行本申请实施例的各个方法中由相应的执行主体实现的相应流程,为了简洁,在此不再赘述。
本申请实施例中还提供了一种计算机程序。当该计算机程序被计算机执行时,使得计算机可以执行方法示实施例的方法。
例如,该计算机程序可应用于本申请实施例中的第二处理器、第一处理器、写操作地址信息存储单元或读操作地址信息存储单元,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由相应的执行主体实现的相应流程,为了简洁,在此不再赘述。
此外,本申请实施例还提供了一种芯片系统,所述芯片系统可以包括上述涉及的第二处理器和/或第一处理器,为了简洁,在此不再赘述。需要说明的是,本文中的术语“系统”等也可以称为“芯片系统”或者“片上芯片系统”等。
还应当理解,在本申请实施例和所附权利要求书中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。
例如,在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
所属领域的技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。
例如,以上所描述的装置实施例中单元或模块或组件的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或模块或组件可以结合或者可以集成到另一个系统,或一些单元或模块或组件可以忽略,或不执行。
又例如,上述作为分离/显示部件说明的单元/模块/组件可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元/模块/组件来实现本申请实施例的目的。
最后,需要说明的是,上文中显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
- 处理器系统、核间通信方法、处理器以及存储单元
- 嵌入式实时操作系统中多核处理器的核间通信方法及装置