本发明专利技术的实施方式涉及处理器通信。具体地,涉及一种处理器模块,包括:处理器,配置用于与至少一个另一处理器模块处理器共享数据;存储器映射外围设备,配置用于与至少一个另一处理器存储器映射外围设备通信,以控制数据的共享,其中,存储器映射外围设备包括发送方部分,该发送方部分包括:数据请求生成器,其配置用于根据来自处理器的数据请求寄存器写信号而向另一处理器模块输出数据请求指示符;确认等待信号生成器,配置用于根据来自另一处理器模块的数据确认信号而向处理器输出确认等待信号,其中,数据请求生成器数据请求指示符还取决于数据确认信号,并且确认等待信号生成器确认等待信号还取决于确认等待寄存器写信号。
【技术实现步骤摘要】
本申请涉及处理器通信,并且特别地但不排他地涉及用于控制共享存储器数据流的处理器通信。主要应用是用于控制访问在单个集成电路封装上的共享存储器的多处理器数据传送,但是也可以在任何共享存储器控制器中使用。
技术介绍
基于微处理器的系统越来越多地包含需要彼此通信的多个中央处理器单元(CPU)或者核。用于实现CPU核之间的这一通信的方法要使用共享存储器的区域。然而,使用共享存储器需要控制通过共享存储器区域的数据流。例如,需要控制共享存储器区域,以使得接收处理器在发送方已经将数据放置到存储器中之前不会试图读取数据,从而避免接收处理器访问旧数据的写后读(read after write,RAW)风险。另外,应当对共享存储器进行控制,以使得发送处理器在接收方读取存储器上的数据之前不会试图重写共享存储器中的数据,从而避免接收方无法访问旧数据的读后写(write after read, WAR)风险。已经对这些风险进行了研究,并且所提出的解决方案已经在实现作为循环缓存的共享存储器中的流控制中有所涉及,其中发送方发送写指针(WP),其指示要由发送方向接收方发送数据的下一存储器位置,并且接收方发送读指针(RP),其指示从接收方向发送方读取的下一存储器位置。在此类示例中,发送方将数据放置在缓存中,更新其本地写指针,并且向接收方发送新的指针值。接收方接收经更新的写指针,将该写指针与其读指针进行比较,并且该比较使得接收方能够确定其是否可以从当前读指针地址读取数据(换言之,接收方在检测到读指针与写指针之间的差值大于阈值时,使得读操作发生)。 当在共享存储器上执行读操作时,接收方继而可以向发送方发送回经更新的读指针。发送方在接收到经更新的读指针之后,具有了接收方已经从缓存读取数据的信息,并且由此可以“清除”存储器空间,这使得假如发送方写操作不会造成写指针赶上或者经过读指针,则发送方能够再次写入数据。然而,处理器之间的这样的指针通信需要足够大的能够寻址整个缓存的指针。例如,具有256个位置的缓存需要每指针最少8比特。另外,流控制可以将指针实现为(相对于缓存基址的)相对地址或者绝对地址。由此,读指针和写指针通常可能需要32比特寻址能力(或者甚至每指针更高数目的比特)。另外,在发送方和接收方在隔开显著的布线距离的分离的芯片(或者相同的芯片)上时,此类的通信是有问题的。在此类示例中,在发送方和接收方之间传送多条线路的开销可能会高得不可接受。但是,已经有这样的建议,其他共享存储器位置可以用于存储读指针和写指针的值,并且由此不需要在中央处理单元之间传送写指针和读指针,附加共享存储器空间的使用将不同的通信负载放置到发送方和接收方二者上,以便轮询经更新的指针值的指针位置。另外,在发送方和接收方在分离的时钟域的情况下,读指针和写指针的通信需要附加的硬件来保证指针安全地通信而不会由于时钟域边界错误而遭到损坏。另外,流控制设计确定发送方与接收方之间的公共传送大小,使得发送方能够维持本地读指针和写指针,并且使得接收方能够维持本地读指针。此类示例还配置为允许发送方包含存储器映射寄存器,其驱动对接收方的请求信号。另外,在此类示例中,允许接收方包含另外的存储器映射寄存器,该寄存器向发送方驱动确认信号。在此类示例中,发送方可以将数据放置到缓存中,更新发送方写指针,继而将读指针和写指针进行比较,以使得在发送方确定缓存中的数据量大于所同意的传送大小时,发送方通过向存储器映射寄存器写入来置位请求信号。接收方看到所声明的请求信号,并且从共享存储器缓存读取所同意的数据量。一旦接收方已经读取了数据,接收方就使用接收方存储器映射寄存器将确认信号反相。发送方继而检测确认信号的边沿,并且更新发送方读指针,以便考虑从共享存储器缓存读取的数据。继而,基于共享存储器缓存的当前填充水平,发送方可以选择清除或者声明请求信号。流控制的这些示例允许维持流控制,因为除非请求被声明,接收方将不会试图从缓存读取数据。而且,如果在确认信号上的边沿的序列保证发送方的读指针的复制保持最新时,写指针通过读指针,则发送方将不会将数据写入到缓存中。在这样的示例中,在发送方和接收方之间仅需要两条线,请求写线和确认线。然而,请求和确认信号需要在发送方和接收方之间非常快速的传播。当传播较慢时,接收方可能在先前确认边沿已经传播通过以将请求解声明之前轮询了该请求,从而使得单个请求被发送方服务两次。
技术实现思路
本申请的目的是提供一种在两个独立时钟的处理器之间通过共享存储器区域的共享存储器通信系统,该共享存储器区域将被用作循环缓存,同时使连接信号的数目最小化,并且容忍这些信号的高传播延迟。本申请的实施方式的目的是解决以上问题。根据本申请的第一方面,提供了一种处理器模块,包括:处理器,配置用于与至少一个另一处理器模块处理器共享数目;以及存储器映射外围设备,配置用于与至少一个另一处理器存储器映射外围设备通信,以控制数据的共享,其中,存储器映射外围设备包括发送方部分,该发送方部分包括:数据请求生成器,配置用于根据来自处理器的数据请求寄存器写信号而向另一处理器模块输出数据请求指示符;以及确认等待信号生成器,配置用于根据来自另一处理器模块的数据确认信号而向处理器输出确认等待信号,其中,数据请求生成器数据请求指示符另外取决于数据确认信号,并且确认等待信号生成器确认等待信号另外取决于确认等待寄存器写信号。数据请求生成器可以包括第一触发器,配置用于接收作为置位输入的数据请求寄存器写信号、作为主控清除输入的确认等待信号,并且输出第一临时数据请求信号。数据请求生成器还可以包括AND逻辑组合器,配置用于接收作为第一输入的第一临时数据请求信号、作为第二输入的反相确认等待信号,并且输出第二临时数据请求信号。数据请求生成器还可以包括XOR逻辑组合器,配置用于接收作为第一输入的第二临时数据请求信号和取决于数据确认信号的第二输入,并且输出第三临时数据请求信号。数据请求生成器还可以包括第二触发器,配置用于输出经同步的第三临时数据请求信号作为数据请求指示符。确认等待信号生成器可以包括第一触发器,配置用于接收作为主控置位输入的边沿检测确认信号、作为清除输入的来自处理器的确认等待寄存器写信号,并且向处理器输出确认等待信号。确认等待信号生成器还可以包括边沿检测器,配置用于检测来自另一处理器模块的数据确认信号的边沿改变。确认等待信号生成器还可以包括数据确认同步器,配置用于将来自另一处理器模块的数据确认信号同步到处理器模块的时钟域中。处理器可以配置用于经由存储器与至少一个另一处理器模块处理器共享数据。根据本申请的第二方面,提供了一种处理器模块,包括:处理器,配置用于与至少一个另一处理器模块处理器共享数据;以及存储器映射外围设备,配置用于与至少一个另一处理器存储器映射外围设备通信,以控制数据的共享,其中,存储器映射外围设备包括接收方部分,该接收方部分包括:数据确认生成器,配置用于根据来自处理器的数据确认寄存器写信号而向另一处理器模块输出数据确认信号;以及数据请求等待信号生成器,配置用于根据来自另一处理器模块的数据请求信号和数据确认信号而向处理器输出数据请求等待信号。数据确认生成器可以包括翻转触发器,配置用于接收作为输入的来自处理器的数据确认寄存器写信号,并且向本文档来自技高网...

【技术保护点】
一种处理器模块,包括:处理器,其配置用于与至少一个另一处理器模块处理器共享数据;以及存储器映射外围设备,其配置用于与至少一个另一处理器存储器映射外围设备通信,以控制所述数据的共享,其中,所述存储器映射外围设备包括发送方部分,该发送方部分包括:数据请求生成器,配置用于根据来自所述处理器的数据请求寄存器写信号而向所述另一处理器模块输出数据请求指示符;以及确认等待信号生成器,配置用于根据来自所述另一处理器模块的数据确认信号而向所述处理器输出确认等待信号,其中,所述数据请求生成器数据请求指示符还取决于所述数据确认信号,并且所述确认等待信号生成器确认等待信号还取决于所述确认等待寄存器写信号。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:D·史密斯,
申请(专利权)人:意法半导体RD有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。