共享存储空间的访问方法、装置以及系统和存储介质

文档序号:1737213 发布日期:2019-12-20 浏览:5次 >En<

阅读说明:本技术 共享存储空间的访问方法、装置以及系统和存储介质 (Access method, device and system of shared storage space and storage medium ) 是由 不公告发明人 于 2019-11-11 设计创作,主要内容包括:本公开涉及一种共享存储空间的访问方法、装置以及系统和存储介质。所述产品包括控制模块,所述控制模块包括:指令缓存单元、指令处理单元和存储队列单元;所述指令缓存单元,用于存储所述人工神经网络运算关联的计算指令;所述指令处理单元,用于对所述计算指令解析得到多个运算指令;所述存储队列单元,用于存储指令队列,该指令队列包括:按该队列的前后顺序待执行的多个运算指令或计算指令。通过以上方法或产品,本公开可以提高存储空间访问效率。(The disclosure relates to a method, a device and a system for accessing a shared storage space and a storage medium. The product includes a control module, the control module including: the device comprises an instruction cache unit, an instruction processing unit and a storage queue unit; the instruction cache unit is used for storing the calculation instruction associated with the artificial neural network operation; the instruction processing unit is used for analyzing the calculation instruction to obtain a plurality of operation instructions; the storage queue unit is configured to store an instruction queue, where the instruction queue includes: and a plurality of operation instructions or calculation instructions to be executed according to the front and back sequence of the queue. By the above method or product, the present disclosure may improve storage access efficiency.)

共享存储空间的访问方法、装置以及系统和存储介质

技术领域

本公开涉及计算机技术领域,特别是涉及一种共享存储空间的访问方法、装置以及系统和存储介质。

背景技术

在多核处理器系统中,多个核通常需要合作完成同一个任务,所以经常会出现多核对同一个地址的共享存储空间做读写操作,如何保证数据的一致性、提高多核处理器的并行运行效率是多核处理器系统中一个重要的问题。

发明内容

基于此,有必要针对上述技术问题,提供一种共享存储空间的访问方法、装置以及系统和存储介质。

根据本公开的一方面,提供了一种共享存储空间的访问方法,应用于第一单元,所述第一单元能够访问共享存储空间,所述第一单元为处理器或者处理器中的核,所述方法包括:

向共享存储器发送写请求,所述写请求携带有操作符、目的地址,以使共享存储器根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的另一方面,提供了一种共享存储空间的访问方法,应用于共享存储器,所述方法包括:

接收写请求,所述写请求携带有操作符、目的地址;

根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的另一方面,提供了一种系统,所述系统包括:第一单元和共享存储器,

所述第一单元能够访问共享存储空间,所述第一单元为处理器或者处理器中的核,所述第一单元用于向共享存储器发送写请求,所述写请求携带有操作符、目的地址;

所述共享存储器接收所述写请求,根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的另一方面,提供了一种共享存储空间的访问装置,应用于第一单元,所述第一单元能够访问共享存储空间,所述第一单元为处理器或者处理器中的核,所述装置包括:

第一发送模块,用于向共享存储器发送写请求,所述写请求携带有操作符、目的地址,以使共享存储器根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的另一方面,提供了一种共享存储空间的访问装置,应用于共享存储器,所述装置包括:

第二接收模块,用于接收写请求,所述写请求携带有操作符、目的地址;

运算模块,用于根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的另一方面,提供了一种用于共享存储空间的访问的装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行指令时实现上述方法。

根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现上述方法。

通过在共享存储器中设置运算单元以在共享存储器上实现运算过程,读取的操作数无需及时返回到第一单元(处理器或者处理器的核),共享存储器可直接执行对操作数的运算得到运算结果,然后再将运算结果写入。根据本公开的系统,可以减少交互的流程,省去了获取数据、写入数据这两个环节的大部分时间,从而降低“读取+修改+写入”这个流程的执行延时。尤其对于分级共享存储器中的最后一级共享存储空间,第一单元到最后一级共享存储空间的访问路径可能很长,那么采用本公开系统降低执行延时的效果将更加明显。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出相关技术中的获取访问锁的控制权的过程的示意图;

图2示出相关技术中的对共享存储空间进行读写操作的过程的示意图;

图3示出根据本公开一实施例的系统的结构框图;

图4示出根据本公开一实施例的系统的结构框图;

图5示出根据本公开一实施例的共享存储空间的访问方法的交互图;

图6示出根据本公开一实施例的写操作过程的示意图;

图7示出根据本公开一实施例的读操作过程的示意图;

图8示出根据本公开一实施例的共享存储空间的访问装置的框图;

图9示出根据本公开一实施例的共享存储空间的访问装置的框图;

图10示出根据本公开一实施例的共享存储空间的访问装置的框图;

图11是根据一示例性实施例示出的一种用于共享存储空间的访问的装置的框图;

图12是根据一示例性实施例示出的一种用于共享存储空间的访问的装置的框图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。

应当理解,本公开的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本公开的说明书和权利要求书中使用的术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本公开。如在本公开说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本公开说明书和权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当... 时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

在多核处理器系统中,多个核通常需要合作完成同一个任务,所以经常会出现多核对同一个地址的共享存储空间做读写操作,如何保证数据的一致性、提高多核处理器的并行运行效率是多核处理器系统中一个重要的问题。

当多个处理器或者一个处理器中的多个核需要对共享存储空间做读后写的操作时,传统实现方法是基于访问锁的,即系统为每块共享存储空间(Shared Memory)配置一个访问锁。当CPU、IPU、GPU或者外部设备等Master将要以传统实现方式访问共享存储空间时,需要先获取对应的访问锁的控制权,获取控制权成功后,才可以对共享存储空间中的内容进行“读取+修改+写入”(Read-Modify-Write)的一套操作(简称为“读后写操作”)。其目的是维护共享存储空间中数据的一致性,确保多个Master对共享存储的无冲突访问。

图1示出相关技术中的获取访问锁的控制权的过程的示意图。图2示出相关技术中的对共享存储空间进行读写操作的过程的示意图。基于访问锁实现的读后写操作的具体过程可以参考图1和图2。如图1所示,描述了Master0发出读后写操作的第一步:获取访问锁的控制权。其中,Cache(高速缓冲存储器)可以是各级缓存,每个Master都可以访问Cache中的共享存储空间,也可以访问Access Locks库获取锁。Access Locks是一块存储器,其中存储着访问锁,每个锁都有一段共享存储条(空间)(Cache Line)与之对应。获取锁的过程可以由图1中的步骤①和②所示的曲线表示,Master0先访问Access Locks,找到与目标共享存储条对应的访问锁,然后将访问锁的状态修改为已经被占用的标志,同时返回修改前访问锁的状态,如果修改前访问锁的状态显示未被占用,则Master0获取锁成功;如果修改前访问锁的状态显示已经被占用,则Master0获取锁失败,Master0需再次尝试获取访问锁。

当Master0获取锁成功后,即可对目标共享存储条进行访问,Master0对共享存储条的访问分为四个步骤:①获取目标数据(图2中①和②两个步骤);②修改数据;③将修改后的数据写入共享存储空间中同一个地址,同时将Access Locks中与之对应的访问锁的状态修改为未被占用(图2中的步骤③);④Cache回复写响应(图2中的步骤④)。

对共享存储空间的读后写操作中,“读取+修改+写入”中修改数据的方式有很多,原理是将获取的数据作为操作数,参与某种运算,得到的计算结果作为新的数据。传统方法中,修改数据这个过程在Master完成,所以Master中一般会设置有运算单元,由运算单元完成修改数据的过程。例如,INC(increment plus)运算:

其中,A为获取的数据,作为INC的一个操作数,B为另一个操作数,D为运算结果,Master最终会将D再写入数据A的存储地址中。

基于访问锁的读后写操作的实现方法,有两个明显的缺点:

①Master操作流程较多;

②当Master和Cache之间的数据流路径较长时(Master访问Cache的时延较长),若有多个Master向同一个共享存储条发起读后写操作时,仅能串行访问,访问效率较低。

为了解决上述技术问题,本公开提供了一种系统,该系统可以包括:第一单元和共享存储器。

其中,第一单元能够访问共享存储空间,所述第一单元可以为能够向共享存储器主动发起请求(例如,写请求或读请求)的单元。例如,所述第一单元可以向共享存储器发送写请求,所述写请求可以携带有操作符、目的地址。

所述共享存储器接收所述写请求,根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

第一单元和所述共享存储器可以位于同一片上,共享存储器也可以为片外存储器,本公开对此不作限定。

图3示出根据本公开一实施例的系统的结构框图。在一种可能的实现方式中,所述第一单元可以为Master,Master可以为处理器、或者处理器中的核,或者外部设备,也就是说,第一单元可以为处理器、或者处理器中的核。处理器可以为通用处理器,例如CPU(Central Processing Unit,中央处理器),也可以是用于执行人工智能运算的人工智能处理器(IPU),或者也可以是微处理器、嵌入式处理器、ARM(Advanced RISC Machines)处理器、GPU(Graphics Processing Unit,图形处理器)、视频处理器、视频编解码处理器、DSP(digital signal processor,数字信号处理器)、NPU(neural-network processingunits,嵌入式神经网络处理器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)芯片、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)芯片等。人工智能运算可包括机器学习运算,类脑运算等。其中,机器学习运算包括神经网络运算、k-means运算、支持向量机运算等。上述人工智能处理器还可以包括GPU、NPU、DSP、ASIC芯片、FPGA芯片中的一种或几种的组合。本公开对处理器的具体类型不作限制。外部设备可以是设置有处理器的设备。

共享存储器可以采用任意类型或者构造的存储器构成,例如,可以采用磁心存储器、半导体存储器、磁盘等构造的存储器组成共享存储器,可以采用随机存储器或者顺序存储器,可以采用随机读写存储器,可以采用永久记忆的存储器或者非永久记忆的存储器,可以为主存储器、辅助存储器、高速缓冲存储器(Cache)、控制存储器等,本公开对共享存储器不作具体的限定。

如图3所示,系统中可以包括一个或多个第一单元,该一个或多个第一单元都可以向共享存储器发送写请求(或者读请求)。当多个第一单元向共享存储器发送请求(例如,写请求或者读请求)时,共享存储器可以按照接收到请求的顺序依次执行,也就是说,对于多个Master来说,可以同时对同一个共享存储器的地址段发起请求,但是在共享存储器中是串行执行的,提高了访问效率。

写请求中的操作符可以是表示针对该请求应该进行什么性质的操作,写请求中的目的地址可以指向共享存储器中的一段共享存储空间,该段共享存储空间中存储有操作符对应的操作数。因此,共享存储器在接收到写请求后,可以根据目的地址查找到对应的一段共享存储空间,从该段共享存储空间获取操作数,然后采用操作符对操作数进行运算得到运算结果,将运算结果写入目的地址即可完成写操作。

图4示出根据本公开一实施例的系统的结构框图。如图4所示,在一种可能的实现方式中,所述共享存储器包括共享存储空间、运算单元,所述共享存储空间用于存储共享数据,所述运算单元可以用于执行操作符对应的操作,所述运算单元可以是算术逻辑单元(Arithmetic and Logic Unit, ALU),也可以是其他类型的可以对数据进行修改的模块,本公开对此不作限定。所述共享存储器还可以包括控制单元,所述控制单元可以分别连接所述共享存储空间和所述运算单元。

控制单元可以通过专用硬件电路实现,也可以通过通用处理硬件(例如CPU、单片机、现场可编程逻辑器件FPGA等)结合可执行逻辑指令实现,以执行控制单元的工作过程。本公开对控制单元的具体实现方式不做限定。

在一种可能的实现方式中,所述控制单元用于在接收到所述写请求后,根据所述目的地址从所述共享存储空间获取所述操作数;所述控制单元用于根据所述操作符以及所述操作数向所述运算单元发送操作指令;所述运算单元用于根据所述操作指令对所述操作数进行运算得到运算结果,并将所述运算结果发送给所述控制单元;所述控制单元用于将所述运算结果写入所述目的地址。

示例性的,所述控制单元可以接收第一单元发送的写请求,对写请求进行解析,可以获得操作符以及目的地址,然后根据目的地址查找共享存储空间中对应的一段共享存储空间,从该段共享存储空间中读取操作数。在获取到操作数后,可以根据操作符以及操作数生成操作指令发送给运算单元。运算单元接收到操作指令后,可以执行操作指令以实现对操作数的运算得到运算结果,然后将运算结果返回给控制单元,控制单元将运算结果写入目的地址,从而完成写操作。

在一种可能的实现方式中,共享存储器在执行完写操作后,还可以向第一单元返回响应信号以表示完成写请求对应的操作,如图4中指向左侧的箭头所表示的信号流所示。

通过在共享存储器中设置运算单元以在共享存储器上实现运算过程,读取的操作数无需及时返回到第一单元,共享存储器可直接执行对操作数的运算得到运算结果,然后再将运算结果写入。根据本公开的系统,可以减少交互的流程,省去了获取数据、写入数据这两个环节的大部分时间,从而降低“读取+修改+写入”这个流程的执行延时。尤其对于分级共享存储器中的最后一级共享存储空间,第一单元到最后一级共享存储空间的访问路径可能很长,那么采用本公开系统降低执行延时的效果将更加明显。

在一种可能的实现方式中,所述写请求还可以携带有读请求标识,所述读请求标识用于表示所述第一单元需要获取所述操作数,即表示第一单元接收到写请求响应后,需要获取所述操作数。

如图4所示,在一种可能的实现方式中,所述共享存储器还包括缓存器。该缓存器可以是Origin Data Buffer(原始数据缓存器,简称ODB),用于存储上述操作数,所述缓存器可以连接所述控制单元,所述控制单元用于在获取所述操作数后,根据所述读请求标识将所述操作数存储在所述缓存器中;所述控制单元用于在将所述运算结果写入所述目的地址后,向所述第一单元发送响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息。

在一种可能的实现方式中,在写请求中可以设置读请求标识位,该读请求标识位的具体标识可以用于表示第一单元是否需要获取所述操作数,因此,读请求标识位可以包括:读请求标识、无需读请求标识。在一个示例中,读请求标识位可以设置不同的值以代表不同的标识,举例来说,读请求标识位可以设置为0或1,其中1代表读请求标识,0代表无需读请求标识。需要说明的是,上述示例仅仅是本公开的一种可能的实现方式,不以任何方式限制本公开的范围,本领域技术人员可以理解,还可以采用其他方式实现上述过程。

根据上述实施方式,控制单元在接收到写请求后,还可以根据写请求携带的读请求标识位的信息判断是否需要向第一单元返回操作数。如果写请求携带的为读请求标识,控制单元可以判断为需要向第一单元返回操作数,在这种情况下,控制单元在获取操作数后,可以将操作数存储在缓存器中。然后,控制单元可以根据所述操作符以及所述操作数向所述运算单元发送操作指令;所述运算单元用于根据所述操作指令对所述操作数进行运算得到运算结果,并将所述运算结果发送给所述控制单元;所述控制单元用于将所述运算结果写入所述目的地址。待控制单元将运算结果写入目的地址后,可以向所述第一单元发送响应信号,响应信号中可以携带有操作数在述缓存器中的存储信息,例如存储地址等。

在一种可能的实现方式中,所述第一单元用于在接收所述响应信号后,根据所述存储信息向共享存储器发送读请求;所述控制单元用于在接收到所述读请求后,响应于所述读请求根据所述存储信息获取所述操作数,并将所述操作数返回给所述第一单元。

所述第一单元接收到响应信号后,可以解析响应信号获得存储信息,然后根据存储信息生成读请求,读请求携带有存储信息。第一单元向共享存储器发送读请求,共享存储器的控制单元接收读请求后,解析读请求获得存储信息,根据存储信息查找缓存器获取操作数,并将操作数返回给第一单元。

如果写请求携带的为无需读请求标识,控制单元可以判断为不需要向第一单元返回操作数。这种情况下,控制单元在获取操作数后,可以不需要将操作数存储在缓存器中。

通过以上方式可以实现系统与业界常用的应用的兼容,在有些应用中,第一单元需要获取到修改前的操作数,用于其他用途。因此,根据上述实施方式的系统,通过在发起写请求时携带读请求标识,可以实现将修改前的操作数返回给第一单元,以解决上述问题。

对于上文中的第一单元,第一单元能够访问共享存储空间,第一单元可以为能够主动发起请求的单元,例如可以向共享存储器发起写请求或者读请求:本公开还提供了一种共享存储空间的访问方法,所述方法可以包括:

步骤S11,向共享存储器发送写请求,所述写请求携带有操作符、目的地址,以使共享存储器根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

对于上文中的共享存储器:本公开还提供了另一种共享存储空间的访问方法,所述方法可以包括:

步骤S20,接收写请求,所述写请求携带有操作符、目的地址;

步骤S21,根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

步骤S22,共享存储器在完成写请求的操作后,向第一单元返回响应信号。

图5示出根据本公开一实施例的共享存储空间的访问方法的交互图,如图5所示,在步骤S11中,第一单元向共享存储器发送写请求,所述写请求携带有操作符、目的地址;步骤S20中,共享存储器接收写请求;然后步骤S21中共享存储器根据目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址;步骤S22,共享存储器在完成写请求的操作后,向第一单元返回响应信号。

对比图5中的步骤S11到步骤S22的过程和图1+图2中的过程:图5中为了完成写操作只需要步骤S11和步骤S22两次交互,而图1+图2的过程中,需要6次交互。根据上述对比的过程可知,根据本公开的共享存储空间的访问方法,可以大大减少交互的流程,降低“读取+修改+写入”这个流程的执行延时。

在一种可能的实现方式中,所述写请求还可以携带有读请求标识,所述读请求标识可以用于表示需要获取所述操作数,所述写请求可以还用于使所述共享存储器在获取所述操作数后将所述操作数存储在缓存器中。

在本实施方式中,对于上文中的共享存储器,本公开的共享存储空间的访问方法还可以包括:

步骤S23,若所述写请求还携带有读请求标识,在获取所述操作数后将所述操作数存储在缓存器中;其中,所述读请求标识用于表示所述第一单元需要获取所述操作数;

步骤S24,响应于所述写请求返回响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息。

在本实施方式中,对于上文中的第一单元所在的一端,共享存储空间的方法还可以包括:

步骤S12,接收所述共享存储器响应于所述写请求返回的响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息;

步骤S13,根据所述存储信息向共享存储器发送读请求,以访问所述缓存器获取所述操作数。

如图5所示,步骤S23,共享存储器在接收到写请求后,还可以根据写请求携带的读请求标识位的信息判断是否需要向第一单元返回操作数,若写请求中还携带有读请求标识,共享存储器在获取所述操作数后将所述操作数存储在缓存器中;步骤S24,响应于步骤S11中的所述写请求返回响应信号,响应信号携带有所述操作数在所述缓存器中的存储信息。步骤S12中,第一单元接收所述共享存储器响应于所述写请求返回的响应信号,可以解析响应信号获取存储信息;在步骤S13中,第一单元根据所述存储信息向共享存储器发送读请求。对于上文中的共享存储器,紧接上述过程,所述方法还可以包括:

步骤S25,接收读请求,所述读请求中携带有所述操作数在所述缓存器中的存储信息;

步骤S26,根据所述存储信息获取所述操作数,并返回所述操作数。

如图5所示,在步骤S13之后,步骤S25中,共享存储器接收到第一单元发送的读请求,所述读请求中携带有所述操作数在所述缓存器中的存储信息;步骤S26中,共享存储器根据所述存储信息获取所述操作数,并向第一单元返回所述操作数。

需要说明的是,关于图5中上述方法中任何特征的解释,都可以参见上文中系统部分的内容。

应用示例

下面以一个具体操作作为应用场景的示例对本公开的方法和系统进行说明。图6示出根据本公开一实施例的写操作过程的示意图,图7示出根据本公开一实施例的读操作过程的示意图。

本公开的目的是在保证数据一致性的前提下,通过调整系统结构和操作流程,提高系统执行读后写的效率。本公开实现读后写操作的基本思想是,减少Master和Cache之间的访存交互。例如:Master0即将对共享数据A做“修改”DEC(decrease),表达式为:

本公开实现读后写操作的方法是,Master0首先对Cache发起一次写请求,写请求中包含操作数B,将操作数B、操作数A的地址和操作符以写请求的方式传递给Cache,Cache根据操作数A的地址从共享存储空间中获取到操作数A后,在Cache内部做算术逻辑运算得到D,最后Cache再将D存入操作数A的地址。这个过程可以参考图6,图6中的曲线 ①和②表示Master和Cache之间的命令交互,从Master到Cache的命令流表示写请求,从Cache到Master到命令流传递响应信号,表示Cache已经执行完写操作。

本公开和基于访问锁的读后写操作实现方法有个系统结构上的区别,就是ALU的位置部署。本公开中将ALU从Master挪到Cache中,这样做的目的是减少“读取+修改+写入”这个流程的执行延时。因为Master到Cache的访问路径可能很长,尤其是如果这里的Cache为系统中最后一级的Cache(Last Level Cache, LLC)的时候。本公开中,读取操作数后,Cache可直接根据操作符修改操作数,然后再写入。所以,本公开的设计省去了获取数据、写入数据这两个环节的大部分时间。

为了和业界常用的软件兼容,本公开还补充了一个读命令。在有些应用中,Master(第一单元)需要获取到修改前的共享的操作数,用作某些用途。但是在本公开中,写请求的结果并不能将修改前的共享的操作数返回给Master,所以为了弥补这个用途,本公开中还提供了读操作。

如果Master不仅需要发起写请求,还需要获取修改前的共享的操作数,则可在发起写请求时,携带需要读请求的标识(大多数总线都支持携带一些额外信息)。当Cache在执行写请求时,在获取操作数后,除了对操作数做运算外,还可以将操作数存储在OriginData Buffer (ODB)中。当Cache执行完AWC后,在向Master返回响应信号时,可以将修改前的操作数(Origin Data)在ODB中的存储信息一并携带在总线上,返回给Master。

Master接受到写请求的响应信号后,可向Cache发起读请求,其命令流可参考图7。Master0发出读请求后,直接访问Cache中的ODB,获取Origin Data。

如果Master只需要发起写请求,无需获取修改前的共享的操作数,则在发起写请求时,不需要携带读请求的标识。Cache在处理这样的写请求时,就不会将修改前的操作数存入ODB中。

当有多个Master需要对同一段共享存储空间发起读后写操作时,第一步是多个Master发起写请求,Cache按照接收到命令的顺序依次执行,当执行完当前写请求(完成将ALU计算结果写入Shared Memory后)后,方可执行下一个写请求。本公开中依靠Cache对同目标地址的写请求进行保序执行,以达到维护其数据一致性的目的。所以,可以看到,本公开中,对于多个Master来说,可以同时对同一个共享地址段发起读后写操作的请求,但是在Cache中的执行是串行的。

需要说明的是:

a) 上述Master为所有可以访问Cache的设备、处理器;

b) 上述数据流总线支持所有可以传输读、写数据和用户自定义信息的总线协议;

c) 上述ALU模块还可以是其它能修改数据的模块;

d) 上述Cache可以是系统中Master能访问的所有各级缓存或存储器。

本公开提出的读后写操作的实现方法,相比较于传统的实现方法,具有高效性和灵活性。

高效性

本公开中,如果应用于Master与Cache之间的通路延时较长的系统中,在Master无需获取Origin Data的情况下,Master仅需发起一次写请求,发起写请求的时间延迟和传统的方法中获取数据的时间延迟大致相同。所以,可以说本发明中实现读后写操作方法的效率远远高于传统的基于访问锁的方法。

另外,基于访问锁的读后写操作的实现方式下,导致多个Master在同一时段对同一段共享存储空间发起读后写操作时,只能串行访问。本发明中,当多个Master在同一时段对同一段共享存储发起读后写操作时,没有获取锁的限制,可以并行发送,但是为了维护其数据一致性,Cache会在内部串行执行写请求。这里用T1表示采用传统的基于访问锁的方案时,当前读后写操作会阻塞下一个同目标地址的读后写操作发出的时间;这里用T2表示采用本公开的方法时,当前读后写操作阻塞其它Master发出同目标地址的读后写操作的时间。T1和T2的含义都包含:读取延时、ALU计算延时和写入延时。但是T2的读取延时和写入延时远远小于T1的延时,因为T2的读取和写入都发生在Cache内部,而T1的读取和写入发生在Master和Cache之间的传输路径上。所以本公开可以有效增大读后写操作的效率。

灵活性

本公开可以选择是否返回Origin Data,当Master发起读请求时,不影响当前Master和其它Master发起其它写请求或者读请求。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。

进一步需要说明的是,虽然图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

图8示出根据本公开一实施例的共享存储空间的访问装置的框图。所述装置应用于第一单元,所述第一单元能够访问共享存储空间,例如,所述第一单元能够主动向共享存储空间发起请求(写请求或者读请求),所述第一单元为处理器或者处理器中的核,对于处理器的描述可以参见上文。

如图8所示,所述装置可以包括:

第一发送模块51,用于向共享存储器发送写请求,所述写请求携带有操作符、目的地址,以使共享存储器根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的装置,可以减少交互的流程,省去了获取数据、写入数据这两个环节的大部分时间,从而降低“读取+修改+写入”这个流程的执行延时。尤其对于分级共享存储器中的最后一级共享存储空间,第一单元到最后一级共享存储空间的访问路径可能很长,那么采用本公开的方法降低执行延时的效果将更加明显。

在一种可能的实现方式中,所述写请求还携带有读请求标识,所述读请求标识用于表示所述第一单元需要获取所述操作数,所述写请求还用于使所述共享存储器在获取所述操作数后将所述操作数存储在缓存器中。

在一种可能的实现方式中,所述装置还包括:

第一接收模块52,用于接收所述共享存储器响应于所述写请求返回的响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息;

第二发送模块53,用于根据所述存储信息向共享存储器发送读请求,以访问所述缓存器获取所述操作数。

图9示出根据本公开一实施例的共享存储空间的访问装置的框图。所述装置应用于共享存储器,所述装置包括:

第二接收模块61,用于接收写请求,所述写请求携带有操作符、目的地址;

运算模块62,用于根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

根据本公开的装置,可以减少交互的流程,省去了获取数据、写入数据这两个环节的大部分时间,从而降低“读取+修改+写入”这个流程的执行延时。尤其对于分级共享存储器中的最后一级共享存储空间,第一单元到最后一级共享存储空间的访问路径可能很长,那么采用本公开的方法降低执行延时的效果将更加明显。

图10示出根据本公开一实施例的共享存储空间的访问装置的框图。

在一种可能的实现方式中,如图10所示,所述装置还包括:

存储模块63,用于若所述写请求还携带有读请求标识,在获取所述操作数后将所述操作数存储在缓存器中;其中,所述读请求标识用于表示发送所述写请求的对端需要获取所述操作数;

响应模块64,用于响应于所述写请求返回响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息。

在一种可能的实现方式中,所述装置还包括:

第三接收模块65,用于接收读请求,所述读请求中携带有所述操作数在所述缓存器中的存储信息;

返回模块66,用于根据所述存储信息获取所述操作数,并返回所述操作数。

图11是根据一示例性实施例示出的一种用于共享存储空间的访问的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图11,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。

处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。

存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。

多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。

I/ O接口812为处理组件802和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器804,上述计算机程序指令可由装置800的处理器820执行以完成上述方法。

图12是根据一示例性实施例示出的一种用于共享存储空间的访问的装置1900的框图。例如,装置1900可以被提供为一服务器。参照图12,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。

装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。

在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。

应该理解,上述的装置实施例仅是示意性的,本公开的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。

另外,若无特别说明,在本公开各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述处理器可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述存储单元可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random AccessMemory)、静态随机存取存储器SRAM(Static Random-Access Memory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、 高带宽内存HBM(High-Bandwidth Memory)、混合存储立方 HMC(Hybrid Memory Cube)等等。

所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。

这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

依据以下条款可更好地理解前述内容:

条款A1. 一种共享存储空间的访问方法,应用于第一单元,所述第一单元能够访问共享存储空间,所述第一单元为处理器或者处理器中的核,所述方法包括:

向共享存储器发送写请求,所述写请求携带有操作符、目的地址,以使共享存储器根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

条款A2. 根据条款A1所述的方法,所述写请求还携带有读请求标识,所述读请求标识用于表示所述第一单元需要获取所述操作数,所述写请求还用于使所述共享存储器在获取所述操作数后将所述操作数存储在缓存器中。

条款A3. 根据条款A2所述的方法,所述方法还包括:

接收所述共享存储器响应于所述写请求返回的响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息;

根据所述存储信息向共享存储器发送读请求,以访问所述缓存器获取所述操作数。

条款A4. 一种共享存储空间的访问方法,应用于共享存储器,所述方法包括:

接收写请求,所述写请求携带有操作符、目的地址;

根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

条款A5. 根据条款A4所述的方法,所述方法还包括:

若所述写请求还携带有读请求标识,在获取所述操作数后将所述操作数存储在缓存器中;其中,所述读请求标识用于表示发送所述写请求的对端需要获取所述操作数;

响应于所述写请求返回响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息。

条款A 6. 根据条款A5所述的方法,所述方法还包括:

接收读请求,所述读请求中携带有所述操作数在所述缓存器中的存储信息;

根据所述存储信息获取所述操作数,并返回所述操作数。

条款A7. 一种系统,所述系统包括:第一单元和共享存储器,

所述第一单元能够访问共享存储空间,所述第一单元为处理器或者处理器中的核,所述第一单元用于向共享存储器发送写请求,所述写请求携带有操作符、目的地址;

所述共享存储器接收所述写请求,根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

条款A8. 根据条款A7所述的系统,所述共享存储器包括控制单元、共享存储空间、运算单元,所述控制单元分别连接所述共享存储空间和所述运算单元。

条款A9. 根据条款A8所述的系统,所述控制单元用于在接收到所述写请求后,根据所述目的地址从所述共享存储空间获取所述操作数;

所述控制单元用于根据所述操作符以及所述操作数向所述运算单元发送操作指令;

所述运算单元用于根据所述操作指令采用所述操作符对所述操作数进行运算得到运算结果,并将所述运算结果发送给所述控制单元;

所述控制单元用于将所述运算结果写入所述目的地址。

条款A10. 根据条款A8所述的系统,所述写请求还可以携带有读请求标识,所述读请求标识用于表示所述第一单元需要获取所述操作数,所述共享存储器还包括缓存器,所述缓存器连接所述控制单元,

所述控制单元用于在获取所述操作数后,根据所述读请求标识将所述操作数存储在所述缓存器中;

所述控制单元用于在将所述运算结果写入所述目的地址后,向所述第一单元发送响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息。

条款A11. 根据条款A10所述的系统,

所述第一单元用于在接收所述响应信号后,根据所述存储信息向共享存储器发送读请求;

所述控制单元用于在接收到所述读请求后,响应于所述读请求根据所述存储信息获取所述操作数,并将所述操作数返回给所述第一单元。

条款A12. 一种共享存储空间的访问装置,应用于第一单元,所述第一单元能够访问共享存储空间,所述第一单元为处理器或者处理器中的核,所述装置包括:

第一发送模块,用于向共享存储器发送写请求,所述写请求携带有操作符、目的地址,以使共享存储器根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

条款A13. 根据条款A12所述的装置,所述写请求还携带有读请求标识,所述读请求标识用于表示所述第一单元需要获取所述操作数,所述写请求还用于使所述共享存储器在获取所述操作数后将所述操作数存储在缓存器中。

条款A14. 根据条款A13所述的装置,所述装置还包括:

第一接收模块,用于接收所述共享存储器响应于所述写请求返回的响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息;

第二发送模块,用于根据所述存储信息向共享存储器发送读请求,以访问所述缓存器获取所述操作数。

条款A15. 一种共享存储空间的访问装置,应用于共享存储器,所述装置包括:

第二接收模块,用于接收写请求,所述写请求携带有操作符、目的地址;

运算模块,用于根据所述目的地址获取操作数、采用所述操作符对所述操作数进行运算得到运算结果、并将所述运算结果写入所述目的地址。

条款A16. 根据条款A15所述的装置,所述装置还包括:

存储模块,用于若所述写请求还携带有读请求标识,在获取所述操作数后将所述操作数存储在缓存器中;其中,所述读请求标识用于表示发送所述写请求的对端需要获取所述操作数;

响应模块,用于响应于所述写请求返回响应信号,所述响应信号携带有所述操作数在所述缓存器中的存储信息。

条款A17. 根据条款A16所述的装置,所述装置还包括:

第三接收模块,用于接收读请求,所述读请求中携带有所述操作数在所述缓存器中的存储信息;

返回模块,用于根据所述存储信息获取所述操作数,并返回所述操作数。

条款A18. 一种地址分配装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行指令时实现条款A1至条款A3中任意一项所述的方法;

或者,所述处理器被配置为执行指令时实现条款A4至条款A6中任意一项所述的方法。

条款A19. 一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现条款A1至条款A 3中任意一项所述的方法;

或者,所述计算机程序指令被处理器执行时实现条款A4至条款A6中任意一项所述的方法。

以上对本公开实施例进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本公开的方法及其核心思想。同时,本领域技术人员依据本公开的思想,基于本公开的具体实施方式及应用范围上做出的改变或变形之处,都属于本公开保护的范围。综上所述,本说明书内容不应理解为对本公开的限制。

30页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种L2P表的读写、更新方法及L2P表

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类