[发明专利]处理器通信有效
申请号: | 201210489571.7 | 申请日: | 2012-11-21 |
公开(公告)号: | CN103198048B | 公开(公告)日: | 2018-01-26 |
发明(设计)人: | D·史密斯 | 申请(专利权)人: | 意法半导体(R&D)有限公司 |
主分类号: | G06F15/167 | 分类号: | G06F15/167 |
代理公司: | 北京市金杜律师事务所11256 | 代理人: | 王茂华,李峥宇 |
地址: | 英国白*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理器 通信 | ||
技术领域
本申请涉及处理器通信,并且特别地但不排他地涉及用于控制共享存储器数据流的处理器通信。主要应用是用于控制访问在单个集成电路封装上的共享存储器的多处理器数据传送,但是也可以在任何共享存储器控制器中使用。
背景技术
基于微处理器的系统越来越多地包含需要彼此通信的多个中央处理器单元(CPU)或者核。用于实现CPU核之间的这一通信的方法要使用共享存储器的区域。然而,使用共享存储器需要控制通过共享存储器区域的数据流。例如,需要控制共享存储器区域,以使得接收处理器在发送方已经将数据放置到存储器中之前不会试图读取数据,从而避免接收处理器访问旧数据的写后读(read after write,RAW)风险。另外,应当对共享存储器进行控制,以使得发送处理器在接收方读取存储器上的数据之前不会试图重写共享存储器中的数据,从而避免接收方无法访问旧数据的读后写(write after read,WAR)风险。
已经对这些风险进行了研究,并且所提出的解决方案已经在实现作为循环缓存的共享存储器中的流控制中有所涉及,其中发送方发送写指针(WP),其指示要由发送方向接收方发送数据的下一存储器位置,并且接收方发送读指针(RP),其指示从接收方向发送方读取的下一存储器位置。
在此类示例中,发送方将数据放置在缓存中,更新其本地写指针,并且向接收方发送新的指针值。
接收方接收经更新的写指针,将该写指针与其读指针进行比较,并且该比较使得接收方能够确定其是否可以从当前读指针地址读取数据(换言之,接收方在检测到读指针与写指针之间的差值大于阈值时,使得读操作发生)。
当在共享存储器上执行读操作时,接收方继而可以向发送方发送回经更新的读指针。
发送方在接收到经更新的读指针之后,具有了接收方已经从缓存读取数据的信息,并且由此可以“清除”存储器空间,这使得假如发送方写操作不会造成写指针赶上或者经过读指针,则发送方能够再次写入数据。
然而,处理器之间的这样的指针通信需要足够大的能够寻址整个缓存的指针。例如,具有256个位置的缓存需要每指针最少8比特。另外,流控制可以将指针实现为(相对于缓存基址的)相对地址或者绝对地址。由此,读指针和写指针通常可能需要32比特寻址能力(或者甚至每指针更高数目的比特)。
另外,在发送方和接收方在隔开显著的布线距离的分离的芯片(或者相同的芯片)上时,此类的通信是有问题的。在此类示例中,在发送方和接收方之间传送多条线路的开销可能会高得不可接受。
但是,已经有这样的建议,其他共享存储器位置可以用于存储读指针和写指针的值,并且由此不需要在中央处理单元之间传送写指针和读指针,附加共享存储器空间的使用将不同的通信负载放置到发送方和接收方二者上,以便轮询经更新的指针值的指针位置。
另外,在发送方和接收方在分离的时钟域的情况下,读指针和写指针的通信需要附加的硬件来保证指针安全地通信而不会由于时钟域边界错误而遭到损坏。
另外,流控制设计确定发送方与接收方之间的公共传送大小,使得发送方能够维持本地读指针和写指针,并且使得接收方能够维持本地读指针。此类示例还配置为允许发送方包含存储器映射寄存器,其驱动对接收方的请求信号。另外,在此类示例中,允许接收方包含另外的存储器映射寄存器,该寄存器向发送方驱动确认信号。在此类示例中,发送方可以将数据放置到缓存中,更新发送方写指针,继而将读指针和写指针进行比较,以使得在发送方确定缓存中的数据量大于所同意的传送大小时,发送方通过向存储器映射寄存器写入来置位请求信号。
接收方看到所声明的请求信号,并且从共享存储器缓存读取所同意的数据量。一旦接收方已经读取了数据,接收方就使用接收方存储器映射寄存器将确认信号反相。发送方继而检测确认信号的边沿,并且更新发送方读指针,以便考虑从共享存储器缓存读取的数据。继而,基于共享存储器缓存的当前填充水平,发送方可以选择清除或者声明请求信号。
流控制的这些示例允许维持流控制,因为除非请求被声明,接收方将不会试图从缓存读取数据。而且,如果在确认信号上的边沿的序列保证发送方的读指针的复制保持最新时,写指针通过读指针,则发送方将不会将数据写入到缓存中。
在这样的示例中,在发送方和接收方之间仅需要两条线,请求写线和确认线。然而,请求和确认信号需要在发送方和接收方之间非常快速的传播。当传播较慢时,接收方可能在先前确认边沿已经传播通过以将请求解声明之前轮询了该请求,从而使得单个请求被发送方服务两次。
发明内容
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于意法半导体(R&D)有限公司,未经意法半导体(R&D)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210489571.7/2.html,转载请声明来源钻瓜专利网。