CN105988970A - 共享存储数据的处理器和芯片 - Google Patents
共享存储数据的处理器和芯片 Download PDFInfo
- Publication number
- CN105988970A CN105988970A CN201510073683.8A CN201510073683A CN105988970A CN 105988970 A CN105988970 A CN 105988970A CN 201510073683 A CN201510073683 A CN 201510073683A CN 105988970 A CN105988970 A CN 105988970A
- Authority
- CN
- China
- Prior art keywords
- processor core
- memory cell
- processor
- shared memory
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明实施例提供了一种共享存储数据的处理器和芯片。该处理器包括共享存储单元、控制器、第一簇和第二簇。其中,第一簇包括第一处理器核,第二簇包括第二处理器核。共享存储单元位于所述第一簇和所述第二簇之间,且能够与第一处理器核或第二处理器核通过总线连接,控制器与第一处理器核和第二处理器核通过总线连接,控制器用于控制第一处理器核将第一处理器核生成的数据写入所述共享存储单元,共享存储单元用于存储第一处理器核生成的数据,控制器还用于控制第二处理器核读取共享存储单元存储的第一处理器核生成的数据。本发明实施例通过增加共享存储单元和控制器,能够缩短簇间访问存储器中的数据的时间。
Description
技术领域
本发明涉及处理器领域,并且更具体地,涉及一种共享存储数据的处理器和芯片。
背景技术
自上个世纪60年代起,处理器性能一直遵循着摩尔定律持续高速发展。随着单芯片晶体管集成度越来越高,芯片功耗、线传输延迟、漏电流等问题日益严重,单纯依靠提高主频来提高处理器性能已非常困难,而采用传统的超标量和前瞻技术开发指令级并行的回报率也越来越低。开发更高层次的进程级并行和任务级并行已成为持续提升处理器性能的必然趋势,以多核处理器为代表的先进体系结构已成为当前高性能计算领域的主导设计结构。目前,多核处理器已应用于服务器、笔记本、游戏平台以及高性能多媒体应用等多个领域。
多核处理器通常采用簇状结构。簇状结构的多核处理器包括多个簇(Cluster),每个Cluster包括至少一个存储器和多个处理器核。处理器核也被称为内核或核(core),是中央处理器(Central Processing Unit,CPU)最重要的组成部分。CPU所有的计算、接收/存储命令、处理数据都由处理器核执行。
同一簇中的处理器核和存储器之间可以采用数据总线和地址总线相连接,处理器核在同一簇内访问存储器中的数据时,可以通过总线直接访问。不同簇之间通过片上网络(Network on a Chip,NoC)相连接,跨簇访问存储器中的数据时,需要依赖NoC进行存储数据的搬移。例如,第一簇中的第一处理器核要访问第二簇中的存储器存储的第二处理器核生成的数据时,首先,第二簇中的处理器核从第二簇的存储器中读取第二处理器核生成的数据。接着,第二簇中的处理器核通过NoC向第一簇发送第二处理器核生成的数据。然后,第一簇将接收的数据存储到第一簇的存储器中,这样第一处理器核就可以通过访问第一簇的存储器来读取第二处理器核生成的数据。但是,这种跨簇访问存储器中的数据时,需要进行多次读写操作,还需要依赖NoC进行存储数据的搬移,存在较大的网络时间延迟。
发明内容
本发明实施例提供一种共享存储数据的处理器和芯片,能够缩短簇间访问存储器中的数据的时间。
第一方面,提供了一种共享存储数据的处理器,包括:共享存储单元、控制器、第一簇和第二簇;所述第一簇包括至少一个处理器核,所述第二簇包括至少一个处理器核;所述第一簇包括第一处理器核,所述第二簇包括第二处理器核;所述共享存储单元位于所述第一簇和所述第二簇之间,所述共享存储单元能够与所述第一处理器核或所述第二处理器核通过总线连接,所述控制器与所述第一处理器核通过总线连接,所述控制器与所述第二处理器核通过总线连接;所述控制器用于控制所述第一处理器核将所述第一处理器核生成的数据写入所述共享存储单元;所述共享存储单元用于存储所述第一处理器核生成的数据;所述控制器还用于控制所述第二处理器核读取所述共享存储单元存储的所述第一处理器核生成的数据。
结合第一方面,在第一方面的一种实现方式中,所述共享存储单元为单端口单时钟的存储器。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述处理器还包括第一选择器和第二选择器;所述第一选择器与所述共享存储单元通过总线连接,所述第一选择器与所述控制器通过总线连接,所述第二选择器与所述共享存储单元通过总线连接,所述第二选择器与所述控制器通过总线连接;所述第一选择器用于接收所述控制器发送的第一控制信号,并根据所述第一控制信号将所述第一处理器核的时钟域作为所述共享存储单元的时钟域;所述第二选择器用于接收所述控制器发送的第二控制信号,并根据所述第二控制信号将所述共享存储单元的端口与所述第一处理器核连接。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述控制器具体用于接收所述第一处理器核发送的写请求信号,所述写请求信号用于请求将所述第一处理器核生成的数据写入所述共享存储单元;所述控制器具体用于确定所述第一处理器核能否对所述共享存储单元进行写操作;当所述第一处理器核能对所述共享存储单元进行写操作时,所述控制器用于向所述第一选择器发送所述第一控制信号,并向所述第二选择器发送所述第二控制信号;所述控制器具体用于向所述第一处理器核发送第一响应ACK信号。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述控制器用于检测忙busy信号,所述busy信号的电平值用于指示所述共享存储单元的忙闲状态;所述控制器用于根据所述共享存储单元的忙闲状态,确定所述第一处理器核能否对所述共享存储单元进行写操作,其中,当所述共享存储单元的状态为闲时,确定所述第一处理器核能对所述共享存储单元进行写操作,当所述共享存储单元的状态为忙时,确定所述第一处理器核不能对所述共享存储单元进行写操作。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,当所述第一处理器核接收所述控制器发送的所述第一ACK信号之后,所述第一处理器核具体用于在所述第一处理器核的时钟域将所述第一处理器生成的数据写入所述共享存储单元;所述第一处理器核具体用于向所述控制器发送第一完成信号;所述控制器在接收所述第一处理器核发送的所述第一完成信号之后,还用于将所述busy信号的电平值设置为用于指示所述共享存储单元为闲的状态的电平值。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述处理器还包括第一异步时钟同步器和第二异步时钟同步器;当所述第一处理器核和所述控制器所处的时钟域不同时,所述第一异步时钟同步器用于实现所述写请求信号或所述第一完成信号在所述第一处理器核和所述控制器之间的同步;当所述第一处理器核和所述控制器所处的时钟域不同时,所述第二异步时钟同步器用于实现所述第一ACK信号在所述第一处理器核和所述控制器之间的同步。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述第一选择器还用于接收所述控制器发送的第三控制信号,并根据所述第三控制信号将所述第二处理器核的时钟域作为所述共享存储单元的时钟域;所述第二选择器还用于接收所述控制器发送的第四控制信号,并根据所述第四控制信号将所述共享存储单元的端口与所述第二处理器核连接。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述控制器具体用于接收所述第二处理器核发送的读请求信号,所述读请求信号用于所述处理器核请求读取所述共享存储单元存储的所述第一处理器核生成的数据;所述控制器具体用于确定所述第二处理器核能否对所述共享存储单元进行读操作;当所述第二处理器核能对所述共享存储单元进行读操作时,所述控制器具体用于向所述第一选择器发送所述第三控制信号,并向所述第二选择器发送所述第四控制信号;所述控制器具体用于向所述第二处理器核发送第二响应ACK信号。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述控制器用于检测busy信号,并根据所述busy信号的电平值确定所述共享存储单元的忙闲状态;所述控制器用于根据所述共享存储单元的忙闲状态,确定所述第二处理器核能否对所述共享存储单元进行读操作,其中,当所述共享存储单元的状态为闲时,确定所述第二处理器核能对所述共享存储单元进行读操作,当所述共享存储单元的状态为忙时,确定所述第二处理器核不能对所述共享存储单元进行读操作。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,当所述第二处理器核接收所述控制器发送的所述第二ACK信号之后,所述第二处理器核具体用于在所述第二处理器核的时钟域读取所述共享存储单元存储的所述第一处理器核生成的数据;所述第二处理器核具体用于向所述控制器发送第二完成信号;所述控制器在接收所述第二处理器核发送的所述第二完成信号之后,还用于将所述busy信号的电平值设置为用于指示所述共享存储单元为闲的状态的电平值。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,当所述第二处理器核和所述控制器所处的时钟域不同时,所述第一异步时钟同步器还用于实现所述读请求信号或所述第二完成信号在所述第二处理器核和所述控制器之间的同步;当所述第二处理器核和所述控制器所处的时钟域不同时,所述第二异步时钟同步器还用于实现所述第二ACK信号在所述第二处理器核和所述控制器之间的同步。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述第一处理器核为所述第一簇的边界的处理器核,所述第二处理器核为所述第二簇的边界的处理器核。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述第一异步时钟同步器为异步先进先出队列FIFO,所述第二异步时钟同步器为FIFO或双寄存器。
结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述控制器还用于根据优先级顺序响应不同处理器核对所述共享存储单元的访问。
第二方面,提供了一种芯片,所述芯片包括上述第一方面中任意一个共享存储数据的处理器。
本发明实施例通过在多核处理器的簇与簇之间增加通过总线连接的共享存储单元和控制器,控制器通过控制两个不同簇中的处理器核分别对共享存储单元进行写操作或读操作,以实现簇间访问存储数据,这样可以避免传统的跨簇访问需要依赖NoC进行存储数据的搬移而带来较大的网络延迟,能够缩短簇间访问数据的时间。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的共享存储数据的处理器的框图。
图2是本发明另一实施例的共享存储数据的处理器的信号交互的示意图。
图3是本发明一个实施例的共享存储数据的处理器中控制器的示意性电路图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
图1是本发明一个实施例的共享存储数据的处理器的框图。图1的共享存储数据的处理器包括第一簇101、第二簇102、共享存储单元103和控制器104。
其中,第一簇包括第一处理器核,第二簇包括第二处理器核。共享存储单元位于第一簇和第二簇之间,共享存储单元能够与第一处理器核或第二处理器核通过总线连接。控制器与第一处理器核通过总线连接,控制器与第二处理器核通过总线连接。控制器用于控制第一处理器核将第一处理器核生成的数据写入所述共享存储单元。共享存储单元用于存储第一处理器核生成的数据。控制器还用于控制第二处理器核读取共享存储单元存储的第一处理器核生成的数据。
本发明实施例通过在多核处理器的簇与簇之间增加通过总线连接的共享存储单元和控制器,控制器通过控制两个不同簇中的处理器核分别对共享存储单元进行写操作或读操作,以实现簇间访问存储数据,这样可以避免传统的跨簇访问需要依赖NoC进行存储数据的搬移而带来较大的网络延迟,能够缩短簇间访问数据的时间。
应理解,本发明实施例对每个簇中的处理器核的数目不做限定,每个簇包括至少一个处理器核即可。例如,图1中的第一簇还包括第三处理器核、第四处理器核和第五处理器核。第二簇还包括第六处理器核、第七处理器核和第八处理器核。本发明实施例对不同簇中的处理器核的数目也不做限定,即不同簇中的处理器核的数目可以相同,也可以不同。
第一簇可以包括至少一个处理器核,第二簇可以包括至少一个处理器核。这里,以第一簇包括四个处理器核,第二簇包括四个处理器核为例进行示例性说明。
应理解,本发明实施例对不同的处理器核和控制器工作的时钟域不做限定。第一簇中的处理器核、第二簇中的处理器核和控制器三者可以工作在同一时钟域,也可以工作在不同的时钟域。另外,当第一簇或第二簇包括至少两个处理器核时,同一个簇中的两个不同的处理器核可以工作在相同的时钟域,也可以工作在不同的时钟域,本发明实施例对此不做限定。例如,第一簇中的第一处理器核和第三处理器核可以工作在相同的时钟域,也可以工作在不同的时钟域。
本发明实施例中的共享存储单元可以采用单端口单时钟的存储器,与传统的多端口多时钟的存储器相比,可以降低硬件开销。但本发明实施例对共享存储单元的端口数目不做限定。共享存储单元可以包括一个端口,也可以包括多个端口。本发明实施例对共享存储单元工作的时钟域数目也不做限定。共享存储单元可以为单时钟的存储器,也可以为多时钟的存储器。
下面以第一簇中的第一处理器核请求对共享存储单元进行写操作为例进行示例性说明。
共享存储数据的处理器可以包括第一选择器和第二选择器。其中,第一选择器与共享存储单元通过总线连接,第二选择器与共享存储单元通过总线连接。第一选择器与控制器通过总线连接,第二选择器与控制器通过总线连接。第一选择器用于接收控制器发送的第一控制信号,并根据第一控制信号将第一处理器核的时钟域作为共享存储单元的时钟域。第二选择器用于接收控制器发送的第二控制信号,并根据第二控制信号将共享存储单元的端口与第一处理器核连接。
第一选择器用于选择共享存储单元工作的时钟域,可以通过第一选择器对共享存储单元的时钟进行切换,使共享存储单元工作的时钟域切换至即将与之进行通信的处理器核工作的时钟域上,以便处理器核和共享存储单元在相同时钟域上完成处理器核对共享存储单元的访问。
第二选择器用于选择与共享存储单元的端口连接的处理器核。例如,第一处理器核要访问共享存储单元,第二选择器用于将共享存储单元的端口与第一处理器核连接,以便第一处理器核对共享存储单元进行访问。
本发明实施例对第一选择器不做限定,只要能够实现时钟切换的装置都可以作为第一选择器。本发明实施例对第二选择器也不做限定,只要能够实现处理器核切换的装置都可以作为第二选择器。例如,第一选择器可以为开关,第二选择器也可以为开关。
本发明实施例简单地使用第一选择器在不同时钟之间进行切换,使用第二选择器在不同处理器核之间进行切换,可以降低硬件开销,能够降低电路设计的难度。
可选地,在本发明的一个实施例中,控制器具体用于接收第一处理器核发送的写请求信号,写请求信号用于请求将第一处理器核生成的数据写入共享存储单元。控制器具体用于确定第一处理器核能否对共享存储单元进行写操作。当第一处理器核能对共享存储单元进行写操作时,控制器用于向第一选择器发送第一控制信号,并向第二选择器发送第二控制信号。控制器还具体用于向第一处理器核发送第一响应ACK信号。
控制器通过向第一选择器发送第一控制器信号,第一选择器根据第一控制器信号选择第一处理器核工作的时钟域。控制器通过向第二选择器发送第二控制信号,第二选择器根据第二控制信号将第一处理器核与共享存储单元的端口连接。控制器在选择时钟域和选择处理器核完成之后,向第一处理器核发送第一响应信号,以表示第一处理器核可以在所选择的时钟域上对共享存储单元进行访问。
控制器用于检测忙busy信号,busy信号的电平值用于指示共享存储单元的忙闲状态。控制器用于根据共享存储单元的忙闲状态,确定第一处理器核能否对共享存储单元进行写操作。其中,当共享存储单元的状态为闲时,确定第一处理器核能对共享存储单元进行写操作。当共享存储单元的状态为忙时,确定第一处理器核不能对共享存储单元进行写操作。
当控制器接收信号,并假定busy信号为高电平时,表示共享存储单元为忙的状态,此时处理器核不能对共享存储单元进行访问。假定busy信号为低电平时,表示共享存储单元为闲的状态,此时处理器核可以对共享存储单元进行访问。busy信号可以用高电平表示共享存储单元为忙的状态,也可以用busy信号为低电平表示共享存储单元为忙的状态,只是实现不同的判断方式,可以设计不同的电路。本发明实施例对如何判断共享存储单元的忙闲状态不做限定。
第一处理器核接收控制器发送的所述第一ACK信号之后,第一处理器核具体用于在第一处理器核的时钟域将第一处理器生成的数据写入共享存储单元。第一处理器核还用于在将第一处理器核生成的数据写入共享存储单元之后,向所述控制器发送第一完成信号。控制器在接收第一处理器核发送的第一完成信号之后,还用于将busy信号的电平值设置为用于指示共享存储单元为闲的状态的电平值。
控制器接收第一处理器核发送的完成信号,表示第一处理器核完成对共享存储单元的访问。控制器将busy信号指示为共享存储单元为闲的状态,以便控制器接收其它请求。
处理器还包括第一异步时钟同步器和第二异步时钟同步器。当第一处理器核和控制器所处的时钟域不同时,第一异步时钟同步器用于实现写请求信号或第一完成信号在第一处理器核和控制器之间的同步。当第一处理器核和控制器所处的时钟域不同时,第二异步时钟同步器用于实现第一ACK信号在第一处理器核和控制器之间的同步。
当第一处理器核和控制器所处的时钟域不同时,在第一处理器核向控制器发送写请求信号或完成信号之后,第一异步时钟同步器接收写请求信号或完成信号,将该写请求信号或完成信号从第一处理器核的时钟域调节到控制器的时钟域上。当第一处理器核和控制器所处的时钟域不同时,在控制器向第一处理器核发送第一ACK信号之后,第二异步时钟同步器接收该第一ACK信号,将该第一ACK信号从控制器的时钟域调节到第一处理器核的时钟域。
第一处理器核在收到控制器发送的第一ACK信号之后,可以在控制器所选择的时钟域上对共享存储单元进行访问,将第一处理器核生成的数据写入共享存储单元。
上面介绍了第一簇中的第一处理器核请求对共享存储单元进行写操作的过程。下面以第二簇中的第二处理器核请求对第一簇中的第一处理器核生成的数据进行访问为例进行示例性说明。第一处理器核完成对共享存储单元的访问(即在第一处理器核将第一处理器核生成的数据写入共享存储单元)之后,第二处理器核可以向共享存储单元发起读数据的请求。
在本发明的一个实施例中,第一选择器还用于接收控制器发送的第三控制信号,并根据第三控制信号将第二处理器核的时钟域作为共享存储单元的时钟域。第二选择器还用于接收控制器发送的第四控制信号,并根据第四控制信号将共享存储单元的端口与第二处理器核连接。
控制器具体用于接收第二处理器核发送的读请求信号,读请求信号用于处理器核请求读取共享存储单元存储的第一处理器核生成的数据。控制器具体用于确定第二处理器核能否对共享存储单元进行读操作。当第二处理器核能对共享存储单元进行读操作时,控制器具体用于向第一选择器发送第三控制信号,并向第二选择器发送第四控制信号。控制器具体用于向第二处理器核发送第二响应ACK信号。
控制器用于检测busy信号,并根据busy信号的电平值确定共享存储单元的忙闲状态。控制器用于根据共享存储单元的忙闲状态,确定第二处理器核能否对共享存储单元进行读操作。其中,当共享存储单元的状态为闲时,确定第二处理器核能对共享存储单元进行读操作,当共享存储单元的状态为忙时,确定第二处理器核不能对共享存储单元进行读操作。
当第二处理器核接收控制器发送的所述第二ACK信号之后,第二处理器核具体用于在第二处理器核的时钟域读取共享存储单元存储的第一处理器核生成的数据。第二处理器核具体用于向控制器发送第二完成信号。控制器在接收第二处理器核发送的第二完成信号之后,还用于将busy信号的电平值设置为用于指示共享存储单元为闲的状态的电平值。
控制器将busy信号的电平值设置为用于指示共享存储单元为闲的状态的电平值后,共享存储单元可以接受处理器核的访问。这时,如果存在处理器核向控制器发送对共享存储单元进行访问的请求,这时控制器检测busy信号时,可以得到busy信号为低电平,处理器核可以对共享存储单元进行访问。
当第一处理器核和控制器所处的时钟域不同时,第一异步时钟同步器还用于实现读请求信号或第二完成信号在第一处理器核和所述控制器之间的同步。当第一处理器核和所述控制器所处的时钟域不同时,第二异步时钟同步器还用于实现第二ACK信号在第一处理器核和所述控制器之间的同步。
本发明实施例中通过增加异步时钟同步器可以在时钟域不同的两个簇之间实现对数据的访问。
本发明实施例对异步时钟同步器不做限定。只要能够实现信号在处理器核和控制器之间的同步的部件都在本发明的保护范围之内。例如,第一异步时钟同步器可以为异步先进先出队列(first-in-first-out,FIFO),第二异步时钟同步器为FIFO或双寄存器。
当共享存储单元采用单端口的存储器时,每个时刻只能有一个处理器核对共享存储单元进行访问。这时,如果控制器接收到多个处理器核发送的访问请求时,可以按照一定的优先级顺序控制处理器核对共享存储单元的访问。这里的优先级顺序可以由控制器预先设定,也可以由控制器动态配置得到。例如,优先级顺序可以是轮转优先级,可以是一个固定的优先级,可以是根据处理器核对共享存储单元访问的时间来确定,还可以是动态配置的优先级策略。本发明实施例对如何确定优先级顺序不做限定。
本发明实施例可以用于第一簇中的处理器核访问任一个处理器核存储在共享存储单元中的数据。本发明实施例的共享存储系统可以用于簇间访问,也可以用于簇内访问,本发明实施例对此不做限定。
本发明实施例对共享存储数据的处理器不做限定。例如,共享存储数据的处理器可以为共享存储数据的多核处理器。应理解,其他跨异步时钟域的共享存储数据的处理器都在本发明的保护范围之内。
在本发明的一个实施例中,第一处理器核可以为第一簇的边界的处理器核。所述第二处理器核可以为第二簇的边界的处理器核。第一簇的边界的处理器核可以为第一簇中与第二簇的距离较近的处理器核。同理,第二簇的边界的处理器核可以为第二簇中与第一簇的距离较近的处理器核。
多核处理器中,相邻簇的邻近处理器核之间关系紧密,数据通信比较频繁,采用传统的簇间访问存储器的方式,会对NoC产生较大的压力。本发明实施例可以通过共享存储单元实现不同处理器核之间的数据共享,缩短处理器核对存储器的访问时间,可以避免依赖NoC进行的数据搬移,尤其是可以减小频繁的簇边界上的处理器核访问存储器带来的额外开销。
本发明实施例中与控制器相连接的总线可以为控制总线。与共享存储单元相连接的总线可以为数据总线和地址总线。本发明实施例对此不做限定。
应理解,本发明实施例对处理器中簇的数目不做限定。例如,处理器还可以包括第一簇和第二簇之外的其他簇。本发明实施例以第一簇访问共享存储单元存储的第二簇中的第二处理器核生成的数据为例进行示例性说明。同理,也可以是第二簇也可以访问共享存储存储的第一簇中的第一处理器核生成的数据,具体方法类似,在此不再一一赘述。
图2是本发明另一实施例的共享存储数据的处理器的信号交互的示意图。图2的共享存储数据的处理器包括第一簇201、控制器202、共享存储单元203、第二簇204、第一选择器205和第二选择器206。
在本发明的一个实施例中,共享存储单元可以存储处理器核生成的数据。图2中仅画出第一簇中的第一处理器核与控制器之间的信令交互,以及第二簇中的第二处理器核与控制器之间的信令交互。其他处理器核与控制器之间也可以由类似第一处理器核或第二处理器核的信令交互,为避免混淆,图2中不再一一画出。控制器和处理器核可以工作在相同的时钟域,也可以工作在不同的时钟域,本发明实施例对此不做限定。
下面结合具体例子详细介绍如何通过控制器实现处理器核对共享存储单元的访问。当第二簇中的第二处理器核请求对第一簇中的第一处理器核生成的数据进行访问时,首先第一处理器核对共享存储单元进行写操作,将第一处理器核生成的数据写入共享存储单元中。共享存储单元存储第一处理器核生成的数据。然后,第二处理器核对共享存储单元进行读操作,从共享存储单元中读取第一处理器核生成的数据。
假定第一处理器核和控制器工作在相同的时钟域,第二处理器核和控制器工作在不同的时钟域。下面以第一处理器核和控制器工作在时钟域0,第二处理器核工作在时钟域1为例。下面分别以第一簇中的第一处理器核和第二簇中的第二处理器核对共享存储单元进行访问为例进行示例性说明。
假定第一处理器核和控制器可以工作在相同的时钟域。例如,第一处理器核和控制器都工作在时钟域0。控制器可以控制第一处理器核,将第一处理器核生成的数据存储到共享存储单元中。下面详细介绍第一处理器核如何实现对共享存储单元进行写操作的过程。
第一处理器核用于向控制器发送写请求信号,该写请求信号用于请求将第一处理器核的数据写入共享存储单元。
控制器接收第一处理器核发送的写请求信号,并根据写请求信号确定第一处理器核能否对共享存储单元进行写操作。当控制器确定第一处理器核能对共享存储单元进行写操作时,控制器用于向第一选择器发送第一控制信号,并向第二选择器发送第二控制信号。控制器还具体用于向第一处理器核发送第一响应ACK信号。
本发明实施例对控制器如何确定第一处理器核能否对共享存储单元进行写操作不做限定。例如,控制器可以通过检测忙busy信号,然后通过busy信号的电平值高低来指示共享存储单元的忙闲状态。这里,busy信号可以是控制器中存储的一个信号。当控制器中已有请求信号时,控制器可以通过一定的逻辑门电路将busy信号的电平值改变,以不同范围的电平值来指示共享存储单元的忙闲状态。可选地,可以用busy信号为高电平来指示共享存储单元为忙的状态,用busy信号为低电平来指示共享存储单元为闲的状态。相反,也可以用busy信号为低电平来指示共享存储单元为忙的状态,用busy信号为高电平来指示共享存储单元为闲的状态。本发明实施例对高电平、低电平的具体电平数值范围不做限定。例如,大于或等于电平阈值的电平值可以认为是高电平,小于电平阈值的电平值可以认为是低电平。
控制器可以根据共享存储单元的忙闲状态,确定第一处理器核能否对共享存储单元进行写操作。其中,当共享存储单元的状态为闲时,第一处理器核可以对共享存储单元进行写操作。当共享存储单元的状态为忙时,第一处理器核不能对所述共享存储单元进行写操作。
具体地,当控制器收到处理器核发送的请求信号并且当共享存储单元为闲时,处理器核可以对共享存储单元进行访问。当控制器中没有请求信号或者共享存储单元为忙时,处理器核不能对共享存储单元进行访问。
当控制器确定第一处理器核能对共享存储单元进行写操作时,控制器用于向第一选择器发送第一控制信号。第一选择器可以根据第一控制信号选择共享存储单元工作的时钟域。例如,本发明实施例中第一处理器核请求对共享存储单元进行写操作,这时,将第一处理器核的时钟域作为所述共享存储单元的时钟域。在已假设第一处理器核工作在时钟域0,那么这时将时钟域0作为共享存储单元的时钟域。这样可以使得第一处理器核和共享存储单元处理相同的时钟域上,以便二者在相同的时钟域上实现第一处理器核对共享存储单元的写操作。
当控制器确定第一处理器核能对共享存储单元进行写操作时,控制器用于向第二选择器发送第二控制信号。第二选择器可以根据第二控制信号选择与共享存储单元连接的处理器核。例如,本发明实施例中第一处理器核请求对共享存储单元进行写操作,这时,将第一处理器核与共享存储单元的端口连接。
控制器通过控制第一选择器选择共享存储单元工作的时钟域,通过控制第二选择器确选择与共享存储单元的端口连接的处理器核。以便在第一处理器核与共享存储单元连接之后,二者在相同的时钟域(例如,时钟域0)实现第一处理器核对共享存储单元的写操作。
控制器向第一处理器核发送响应ACK信号(例如,第一响应信号)。第一处理器核接收第一响应信号之后,可以将第一处理器核生成的数据写入共享存储单元。然后,第一处理器核向控制器发送完成信号(例如,第一完成信号),表示第一处理器核完成对共享存储单元的写操作。
控制器接收第一处理器核发送的完成信号之后,将busy信号用于指示共享存储单元为忙改变为用于指示共享存储单元为闲。例如,可以通过将busy信号的高电平置为低电平。
上述已假定第一处理器核和控制器处在相同的时钟域。当第一处理器核和控制器所处的时钟域不同时,处理器还可以包括第一异步时钟同步器和第二异步时钟同步器。其中,第一异步时钟同步器用来实现写请求信号或第一完成信号在第一处理器核和控制器之间的同步。第二异步时钟同步器用来实现第一响应信号在第一处理器核和控制器之间的同步。
假定第二处理器核和控制器工作在不同的时钟域。例如,控制器工作在时钟域0,第二处理器核工作在时钟域1。控制器可以控制第二处理器核,使得第二处理器核从共享存储数据单元中读取第一处理器核生成的数据。下面详细介绍第二处理器核如果实现对共享存储单元进行读操作的过程。
与上述第一处理器核不同的是,第二处理器核和控制器工作在不同的时钟域。当第二处理器核和控制器工作在不同的时钟域时,第二处理器核和控制器之间存在信号的发送或接收,首先要在传输信号之前实现信号在第二处理器核和控制器之间的同步。
第二处理器核用于向控制器发送读请求信号之前,首先通过第一异步时钟同步器,实现读请求信号在第二处理器核和控制器之间的同步。例如,可以将读请求信号的时钟域由第二处理器核的时钟域调节至控制器工作的时钟域上。
同步后的读请求信号进行控制器中,该读请求信号用于请求将从共享存储单元中读取第一处理器核生成的数据。
控制器接收第二处理器核发送的读请求信号,并根据读请求信号确定第二处理器核能否对共享存储单元进行读操作。当控制器确定第二处理器核能对共享存储单元进行读操作时,控制器用于向第一选择器发送第三控制信号,并向第二选择器发送第四控制信号。控制器还具体用于向第二处理器核发送第二响应ACK信号。
本发明实施例对控制器如何确定第二处理器核能否对共享存储单元进行读操作不做限定。例如,控制器可以通过检测busy信号,通过busy信号的电平值高低来指示共享存储单元的忙闲状态。本发明实施例中如何确定第二处理器核能否对共享存储单元进行读操作可以与上述如何确定第一处理器核能否对共享存储单元进行写操作的确定方法类似,在此不再详细赘述。
当所述共享存储单元的状态为闲时,确定第二处理器核能对共享存储单元进行读操作。当共享存储单元的状态为忙时,确定第二处理器核不能对共享存储单元进行读操作。
具体地,当控制器收到处理器核发送的请求信号并且当共享存储单元为闲时,处理器核可以对共享存储单元进行访问。当控制器中没有请求信号或者共享存储单元为忙时,处理器核不能对共享存储单元进行访问。
当控制器确定第二处理器核能访问共享存储单元(即能对共享存储单元进行读操作)时,控制器控制共享存储单元与第二处理器核连接,并将共享存储单元的时钟域调节到与第二处理器核相同的时钟域上。例如,在本发明实施例中,控制器可以用于控制第一选择器将共享存储单元工作的时钟域选择为第二处理器核的时钟域。上述第二处理器核工作在时钟域1,此时,将共享存储单元的时钟域调节至时钟域1。控制器还可以用于控制第二选择器选择与共享存储单元的端口连接的处理器核。第二处理器核请求读取共享存储单元中的第一控制器核生成的数据,这时选择第二处理器核与共享存储单元的端口连接。
控制器通过控制第一选择器选择共享存储单元工作的时钟域,通过控制第二选择器确选择与共享存储单元的端口连接的处理器核。以便在第二处理器核与共享存储单元连接之后,二者在相同的时钟域(例如,时钟域1)实现第二处理器核对共享存储单元存储的第一处理器核生成的数据进行读操作。
控制器向第二处理器核发送响应ACK信号(例如,第二响应信号),由于第二处理器核和控制器所处的时钟域不同,所以,第二响应信号首先经过第二异步时钟同步器实现第二响应信号在控制器和第二处理器核之间的同步。
控制器用于接收同步后的第二响应信号,表示第二处理器核可以对共享存储单元进行访问。第二处理器核接收第二响应信号之后,可以从共享存储单元中读取存储的第一处理器核生成的数据。第二处理器核可以在时钟域1对共享存储单元进行访问,即在时钟域1读取共享存储单元存储的第一处理器核生成的数据。
在第二处理器核完成读取第一处理器核生成的数据之后,第二处理器核向控制器发送完成信号(例如,第二完成信号),第二完成信号首先经过第一异步时钟同步器,实现第二完成信号在控制器和第二处理器核之间的同步。
控制器接收同步后的第二完成信号,表示第二处理器核完成对共享存储单元的读操作。控制器接收第二处理器核发送的第二完成信号之后,将busy信号用于指示共享存储单元为忙的状态改变为用于指示共享存储单元为闲的状态。例如,可以通过将busy信号为高电平置为低电平。此时如果控制器检测busy信号时,可以得到busy信号为低电平,说明此时共享存储单元可以接受处理器核的访问。
第二处理器核和控制器所处的时钟域不同,那么可以通过第一异步时钟同步器和第二异步时钟同步器实现信号在第二处理器核和控制器之间的同步。其中,第一异步时钟同步器用来实现读请求信号或第二完成信号在第一处理器核和控制器之间的同步。第二异步时钟同步器用来实现第二响应信号在第二处理器核和控制器之间的同步。
本发明实施例对第一处理器核在第一簇中的位置不做限定。本发明实施例对第二处理器核在第二簇中的位置不做限定。第一处理器核可以为第一簇中的任意一个处理器核,第二处理器核可以为第二簇中的任意一个处理器核。例如,第一处理器核可以为第一簇的边界的处理器核,第二处理器核可以为第二簇的边界的处理器核。第一簇的边界的处理器核可以是与第二簇距离较近的处理器核。相邻两个簇的簇边界的两个处理器核数据通信比较频繁,使用本发明实施例中的共享存储单元来实现对数据的跨簇访问,可以减小对片上网络产生的压力,降低通信的误码率。
本发明实施例中对第一异步时钟器和第二异步时钟器不做限定。只要能够实现信号在处理器核和控制器之间的同步的部件都在本发明的保护范围之内。例如,第一异步时钟同步器可以为异步先进先出队列FIFO。第二异步时钟同步器可以为FIFO或双寄存器。
共享存储单元可以为单端口存储器。端口可以与进行访问的处理器核连接,那么,同一时刻只能有一个处理器核对共享存储单元进行访问。当同一时刻有多个处理器核要求访问共享存储单元时,控制器可以按照一定的优先级顺序对不同处理器核的访问请求做出响应。控制器可以预先设定优先级顺序,也可以通过动态配置得到优先级顺序。例如,这里的优先级顺序可以为固定的优先级,可以为轮转优先级,也可以为根据一定的优先级策略确定的优先级。本发明实施例对优先级顺序不做限定。
本发明实施例中的其他处理器核对共享存储单元的写操作访问可以同上述第一处理器核工作的具体过程。其他处理器核对共享存储单元的读操作访问可以同上述第二处理器核工作的具体过程。当处理器核和控制器工作在不同的时钟域上时,处理器核和控制器之间信号的传输可以同上述第二处理器核和控制器之间信号的传输,通过第一异步时钟同步器或第二异步时钟同步器实现信号在处理器核和控制器之间的同步。在此不再详细一一赘述。
图3是本发明一个实施例的共享存储数据的处理器中控制器的示意性电路图。
图3的虚框301中的逻辑门电路用于对busy信号进行处理,D类型触发器307用于存储处理后的busy信号。当控制器接收处理器核发送的信号时,通过逻辑门电路301可以将busy信号设置为指示共享存储单元为忙的状态。这里,控制器接收的处理器核发送的信号可以为读请求信号或写请求信号。控制器可以通过逻辑门电路302或303判断当前发起信号的处理器核能否对共享存储单元进行访问。当busy信号指示共享存储单元为忙的状态时,处理器核不能对共享存储单元进行访问。当控制器接收请求信号,且busy信号指示共享存储单元为闲的状态,处理器核可以对共享存储单元进行访问。可以用busy信号的高低不同的电平值来指示共享存储单元的忙闲状态。busy信号可以用高电平来指示共享存储单元为忙的状态,也可以用低电平来指示共享存储单元为忙的状态,只是实现不同的判断方式,可以设计不同的电路。本发明实施例对如何判断共享存储单元的忙闲状态不做限定。D类型触发器308或309分别可以存储逻辑门电路302或303的判断结果,并将判断结果输出到发起请求信号的处理器核中。逻辑门电路304用来确定处理器核所工作的时钟域,并将处理器核的时钟域写到D类型触发器310中,D类型触发器310用于存储该处理器核的时钟域并将该时钟域输入选择器311中。
下面以带后缀0的信号表示工作在时钟域0(即clk_0),例如,读请求信号rd_req_0、写请求信号wt_req_0和完成信号commit_0都表示工作在时钟域0。带后缀1的信号表示工作在时钟域1(即clk_1),例如,读请求信号rd_req_1、写请求信号wt_req_1和完成信号commit_1都表示工作在时钟域1。
应理解,本发明实施例对控制器的具体电路不做限定。图3的电路图是本发明实施例中可以实现控制器的功能的示例性说明,但并不对本发明的保护范围构成限定。
下面结合图3详细说明处理器核如何通过如图3的电路实现对共享存储单元的访问操作。假设处理器核2和控制器工作在相同的时钟域,处理器核4和控制器工作在不同的时钟域。下面以处理器核2和处理器核4为例进行详细说明。
下面以busy信号为高电平来指示共享存储单元为忙的状态,busy信号为低电平来指示共享存储单元为闲的状态。本发明的实施例仅以此为例进行说明,但并不对本发明的保护范围构成限定。
假定处理器核2工作在时钟域0,控制器也工作在时钟域0。处理器核2向控制器发送读请求信号rd_req_0,经过301可以将busy信号置为高电平,可以用来指示共享存储单元为忙的状态,D类型触发器307可以存储busy信号。读请求信号rd_req_0和busy信号进入电路302中,逻辑门电路302根据请求信号rd_req_0和busy信号的电平高低判断处理器核2能否对共享存储单元进行访问。假设busy信号为高电平时,表示共享存储单元处于忙的状态,那么处理器核2当前不能对共享存储单元进行访问。当检测busy信号为低电平时,表示共享存储单元为闲的状态,那么处理器核2可以对共享存储单元进行访问。当处理器核2可以对共享存储单元进行访问时,D类型触发器308用于存储响应ack_0信号,当ack_0信号的电平值为高电平时,表示处理器核2可以对共享存储单元进行访问。D类型触发器308的接口与处理器核2连接,可以将ack_0信号输出到处理器核2中。当ack_0信号的电平值为高电平时,处理器核2可以对共享存储单元进行读操作。
本发明实施例对高电平、低电平的具体数值不做限定。例如,可以预设一个电平门限值,当检测busy信号的电平值高于电平门限值时,确定该busy信号为高电平的信号。
另外,读请求信号rd_req_0经过或门305进入逻辑门电路304中。逻辑门电路304用来确定处理器核2所工作的时钟域,并将确定结果(即处理器核2的时钟域)写到D类型触发器310中,D类型触发器310用于存储确定结果并将确定结果输入选择器311中。选择器311将共享存储单元的时钟域选择为确定结果中处理器核2的时钟域。上面已假设处理器核2所工作的时钟域为0,那么此时第一选择器311选择clk_0。这样,处理器核2和共享存储单元处在同一个时钟域上,处理器核2可以在同一时钟域中对共享存储单元进行访问。
处理器核2的写请求信号wt_req_0经过电路图的流程和上述读请求信号的具体流程rd_req_0相同,在此不再赘述。
处理器核2在完成对共享存储单元的访问操作之后,处理器核2向控制器发送完成信号commit_0,完成信号进入逻辑门电路301中,表示处理器核2已经完成对共享存储单元的访问。共享存储单元接收处理器核2发送的完成信号之后,将busy信号置为低电平,以指示共享存储单元为闲的状态,以便后续处理器核对共享存储单元的访问。
假定处理器核4工作在时钟域1,控制器工作在时钟域0。处理器核4在向控制器发送写请求信号wt_req_1之后,写请求信号wt_req_1首先经过异步时钟同步器。因为处理器核4和控制器所工作的时钟域不同,所以,首先实现信号在控制器和处理器核4之间的同步。控制器接收写请求信号之后,逻辑门电路301将busy信号指示为共享存储单元为忙的状态,D类型触发器307存储busy信号。写请求信号wt_req_1和busy信号进入逻辑门电路303判断处理器核4是否可以访问共享存储单元。在逻辑门电路303的判断结果为处理器核4能访问共享存储单元时,D类型触发器309存储该判断结果ack_1(即处理器核4可以对共享存储单元进行访问),并将判断结果ack_1输出到异步时钟同步器312中。当异步时钟同步器312接收D触发器输出的判断结果ack_1时,异步时钟同步器301与处理器核4连接。异步时钟同步器312用来实现响应信号ack_1在控制器和处理器核4之间的同步,然后将判断结果ack_1输出到处理器核4中。
另外,写请求信号wt_req_1经过或门306进入逻辑门电路304中。逻辑门电路304用来确定处理器核4所工作的时钟域,并将确定结果(即处理器核4的时钟域)写到D类型触发器310中,D类型触发器310用于存储确定结果并将确定结果输入选择器311中。选择器311将共享存储单元的时钟域选择为确定结果中处理器核4的时钟域。上面已假设处理器核4所工作的时钟域为1,那么此时第一选择器311选择clk_1。这样,处理器核4和共享存储单元处在同一个时钟域上,处理器核4可以在同一时钟域中对共享存储单元进行访问。
应理解,本发明实施例中D触发器用来存储各种信号,但本发明并不限定于此。图3中的电路图是可以实现本发明的控制器功能的一个例子,但本发明对控制器的具体实现电路并不限定于此。
处理器核4的读请求信号rd_req_1经过电路图的流程和上述写请求信号的具体流程wt_req_1相同,在此不再赘述。
处理器核4在完成对共享存储单元的访问操作之后,处理器核4向控制器发送完成信号commit_1。由于处理器核4和控制器二者所工作的时钟域不同,完成信号commit_1首先通过异步时钟同步器实现完成信号commit_1在控制器和处理器核4之间的同步。完成信号commit_1进入逻辑门电路301中,表示处理器核4已经完成对共享存储单元的访问。共享存储单元接收处理器核4发送的完成信号之后,将busy信号设置为用于指示共享存储单元为闲的状态,以便后续处理器核对共享存储单元的访问。
本发明的实施例可以通过事务原语来包装处理器核对共享存储单元的访问操作。例如,上文提到的写请求信号可以用写请求指令write_request来包装,读请求信号可以用写请求指令read_request来包装,完成信号可以用事务提交指令commit来包装。其中,commit可以在写操作事务执行完成时使用,也可以在读操作事务执行完成时使用,以释放对共享存储单元的占用,以便后续处理器核对共享存储单元有访问时,可以检测得到busy信号为闲,这样处理器核就可以对共享存储单元进行访问。本发明实施例对事务原语的具体形式不做限定。
本发明实施例还提供一种芯片,该芯片包括前述任一种共享存储数据的处理器。处理器的具体架构和实现电路图可以如前面图1、图2和图3所述,在此不再一一赘述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或步骤可以用硬件、处理器执行的软件程序,或者二者的结合来实施。软件程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内。
Claims (16)
1.一种共享存储数据的处理器,其特征在于,包括:共享存储单元、控制器、第一簇和第二簇;
所述第一簇包括第一处理器核,所述第二簇包括第二处理器核;
所述共享存储单元位于所述第一簇和所述第二簇之间,所述共享存储单元能够与所述第一处理器核或所述第二处理器核通过总线连接,所述控制器与所述第一处理器核通过总线连接,所述控制器与所述第二处理器核通过总线连接;
所述控制器用于控制所述第一处理器核将所述第一处理器核生成的数据写入所述共享存储单元;
所述共享存储单元用于存储所述第一处理器核生成的数据;
所述控制器还用于控制所述第二处理器核读取所述共享存储单元存储的所述第一处理器核生成的数据。
2.如权利要求1所述的处理器,其特征在于,所述共享存储单元为单端口单时钟的存储器。
3.如权利要求2所述的处理器,其特征在于,所述处理器还包括第一选择器和第二选择器;
所述第一选择器与所述共享存储单元通过总线连接,所述第一选择器与所述控制器通过总线连接,所述第二选择器与所述共享存储单元通过总线连接,所述第二选择器与所述控制器通过总线连接;
所述第一选择器用于接收所述控制器发送的第一控制信号,并根据所述第一控制信号将所述第一处理器核的时钟域作为所述共享存储单元的时钟域;
所述第二选择器用于接收所述控制器发送的第二控制信号,并根据所述第二控制信号将所述共享存储单元的端口与所述第一处理器核连接。
4.如权利要求3所述的处理器,其特征在于,
所述控制器具体用于接收所述第一处理器核发送的写请求信号,所述写请求信号用于请求将所述第一处理器核生成的数据写入所述共享存储单元;
所述控制器具体用于确定所述第一处理器核能否对所述共享存储单元进行写操作;
当所述第一处理器核能对所述共享存储单元进行写操作时,所述控制器用于向所述第一选择器发送所述第一控制信号,并向所述第二选择器发送所述第二控制信号;
所述控制器具体用于向所述第一处理器核发送第一响应ACK信号。
5.如权利要求4所述的处理器,其特征在于,
所述控制器用于检测忙busy信号,所述busy信号的电平值用于指示所述共享存储单元的忙闲状态;
所述控制器用于根据所述共享存储单元的忙闲状态,确定所述第一处理器核能否对所述共享存储单元进行写操作,其中,当所述共享存储单元的状态为闲时,确定所述第一处理器核能对所述共享存储单元进行写操作,当所述共享存储单元的状态为忙时,确定所述第一处理器核不能对所述共享存储单元进行写操作。
6.如权利要求5所述的处理器,其特征在于,
当所述第一处理器核接收所述控制器发送的所述第一ACK信号之后,所述第一处理器核具体用于在所述第一处理器核的时钟域将所述第一处理器生成的数据写入所述共享存储单元;
所述第一处理器核具体用于向所述控制器发送第一完成信号;
所述控制器在接收所述第一处理器核发送的所述第一完成信号之后,还用于将所述busy信号的电平值设置为用于指示所述共享存储单元为闲的状态的电平值。
7.如权利要求6所述的处理器,其特征在于,所述处理器还包括第一异步时钟同步器和第二异步时钟同步器;
当所述第一处理器核和所述控制器所处的时钟域不同时,所述第一异步时钟同步器用于实现所述写请求信号或所述第一完成信号在所述第一处理器核和所述控制器之间的同步;
当所述第一处理器核和所述控制器所处的时钟域不同时,所述第二异步时钟同步器用于实现所述第一ACK信号在所述第一处理器核和所述控制器之间的同步。
8.如权利要求7所述的处理器,其特征在于,
所述第一选择器还用于接收所述控制器发送的第三控制信号,并根据所述第三控制信号将所述第二处理器核的时钟域作为所述共享存储单元的时钟域;
所述第二选择器还用于接收所述控制器发送的第四控制信号,并根据所述第四控制信号将所述共享存储单元的端口与所述第二处理器核连接。
9.如权利要求8所述的处理器,其特征在于,
所述控制器具体用于接收所述第二处理器核发送的读请求信号,所述读请求信号用于所述处理器核请求读取所述共享存储单元存储的所述第一处理器核生成的数据;
所述控制器具体用于确定所述第二处理器核能否对所述共享存储单元进行读操作;
当所述第二处理器核能对所述共享存储单元进行读操作时,所述控制器具体用于向所述第一选择器发送所述第三控制信号,并向所述第二选择器发送所述第四控制信号;
所述控制器具体用于向所述第二处理器核发送第二响应ACK信号。
10.如权利要求9所述的处理器,其特征在于,
所述控制器用于检测busy信号,并根据所述busy信号的电平值确定所述共享存储单元的忙闲状态;
所述控制器用于根据所述共享存储单元的忙闲状态,确定所述第二处理器核能否对所述共享存储单元进行读操作,其中,当所述共享存储单元的状态为闲时,确定所述第二处理器核能对所述共享存储单元进行读操作,当所述共享存储单元的状态为忙时,确定所述第二处理器核不能对所述共享存储单元进行读操作。
11.如权利要求10所述的处理器,其特征在于,
当所述第二处理器核接收所述控制器发送的所述第二ACK信号之后,所述第二处理器核具体用于在所述第二处理器核的时钟域读取所述共享存储单元存储的所述第一处理器核生成的数据;
所述第二处理器核具体用于向所述控制器发送第二完成信号;
所述控制器在接收所述第二处理器核发送的所述第二完成信号之后,还用于将所述busy信号的电平值设置为用于指示所述共享存储单元为闲的状态的电平值。
12.如权利要求11所述的处理器,其特征在于,
当所述第二处理器核和所述控制器所处的时钟域不同时,所述第一异步时钟同步器还用于实现所述读请求信号或所述第二完成信号在所述第二处理器核和所述控制器之间的同步;
当所述第二处理器核和所述控制器所处的时钟域不同时,所述第二异步时钟同步器还用于实现所述第二ACK信号在所述第二处理器核和所述控制器之间的同步。
13.如权利要求1至12中任一项所述的处理器,其特征在于,所述第一处理器核为所述第一簇的边界的处理器核,所述第二处理器核为所述第二簇的边界的处理器核。
14.如权利要求7或12所述的处理器,其特征在于,所述第一异步时钟同步器为异步先进先出队列FIFO,所述第二异步时钟同步器为FIFO或双寄存器。
15.如权利要求1至14中任一项所述的处理器,其特征在于,
所述控制器还用于根据优先级顺序响应不同处理器核对所述共享存储单元的访问。
16.一种芯片,其特征在于,所述芯片包括权利要求1至15中任一项所述的共享存储数据的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073683.8A CN105988970B (zh) | 2015-02-12 | 2015-02-12 | 共享存储数据的处理器和芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510073683.8A CN105988970B (zh) | 2015-02-12 | 2015-02-12 | 共享存储数据的处理器和芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105988970A true CN105988970A (zh) | 2016-10-05 |
CN105988970B CN105988970B (zh) | 2019-10-01 |
Family
ID=57041193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510073683.8A Active CN105988970B (zh) | 2015-02-12 | 2015-02-12 | 共享存储数据的处理器和芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105988970B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577625A (zh) * | 2017-09-22 | 2018-01-12 | 算丰科技(北京)有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN107643991A (zh) * | 2017-09-22 | 2018-01-30 | 算丰科技(北京)有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
WO2019205448A1 (zh) * | 2018-04-27 | 2019-10-31 | 江苏华存电子科技有限公司 | 一种提升多核处理器的信息管理方法 |
CN112631984A (zh) * | 2020-12-17 | 2021-04-09 | 珠海市一微半导体有限公司 | 多核数据交互电路和控制方法 |
CN113253796A (zh) * | 2021-07-01 | 2021-08-13 | 北京智芯微电子科技有限公司 | 异步输入信号的同步方法及装置、中央处理器、芯片 |
CN114546927A (zh) * | 2020-11-24 | 2022-05-27 | 北京灵汐科技有限公司 | 数据传输方法、核心、计算机可读介质、电子设备 |
WO2022111456A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 基于众核系统的核共享方法及装置、电子设备、介质 |
US20230036832A1 (en) * | 2021-07-29 | 2023-02-02 | Elasticflash, Inc. | Systems and Methods for Optimizing Distributed Computing Systems Including Server Architectures and Client Drivers |
CN116151345A (zh) * | 2023-04-20 | 2023-05-23 | 西安紫光展锐科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890007A (en) * | 1995-02-28 | 1999-03-30 | Nec Corporation | Multi-cluster parallel processing computer system |
US5940870A (en) * | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
US7085866B1 (en) * | 2002-02-19 | 2006-08-01 | Hobson Richard F | Hierarchical bus structure and memory access protocol for multiprocessor systems |
CN102075578A (zh) * | 2011-01-19 | 2011-05-25 | 南京大学 | 基于分布式存储单元的层次化片上网络架构 |
CN103412848A (zh) * | 2013-05-11 | 2013-11-27 | 中国科学技术大学 | 一种四核处理器系统共享单一程序存储器的方法 |
CN103440225A (zh) * | 2013-08-21 | 2013-12-11 | 复旦大学 | 一种可重构单指令多进程的多核处理器及方法 |
-
2015
- 2015-02-12 CN CN201510073683.8A patent/CN105988970B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5890007A (en) * | 1995-02-28 | 1999-03-30 | Nec Corporation | Multi-cluster parallel processing computer system |
US5940870A (en) * | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
US7085866B1 (en) * | 2002-02-19 | 2006-08-01 | Hobson Richard F | Hierarchical bus structure and memory access protocol for multiprocessor systems |
CN102075578A (zh) * | 2011-01-19 | 2011-05-25 | 南京大学 | 基于分布式存储单元的层次化片上网络架构 |
CN103412848A (zh) * | 2013-05-11 | 2013-11-27 | 中国科学技术大学 | 一种四核处理器系统共享单一程序存储器的方法 |
CN103440225A (zh) * | 2013-08-21 | 2013-12-11 | 复旦大学 | 一种可重构单指令多进程的多核处理器及方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577625B (zh) * | 2017-09-22 | 2023-06-13 | 北京算能科技有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN107643991A (zh) * | 2017-09-22 | 2018-01-30 | 算丰科技(北京)有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN107577625A (zh) * | 2017-09-22 | 2018-01-12 | 算丰科技(北京)有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN107643991B (zh) * | 2017-09-22 | 2023-09-19 | 北京算能科技有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
WO2019205448A1 (zh) * | 2018-04-27 | 2019-10-31 | 江苏华存电子科技有限公司 | 一种提升多核处理器的信息管理方法 |
CN114546927A (zh) * | 2020-11-24 | 2022-05-27 | 北京灵汐科技有限公司 | 数据传输方法、核心、计算机可读介质、电子设备 |
WO2022111456A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 基于众核系统的核共享方法及装置、电子设备、介质 |
WO2022111462A1 (zh) * | 2020-11-24 | 2022-06-02 | 北京灵汐科技有限公司 | 数据传输方法、核心、计算机可读介质、电子设备 |
CN114546927B (zh) * | 2020-11-24 | 2023-08-08 | 北京灵汐科技有限公司 | 数据传输方法、核心、计算机可读介质、电子设备 |
CN112631984A (zh) * | 2020-12-17 | 2021-04-09 | 珠海市一微半导体有限公司 | 多核数据交互电路和控制方法 |
CN113253796A (zh) * | 2021-07-01 | 2021-08-13 | 北京智芯微电子科技有限公司 | 异步输入信号的同步方法及装置、中央处理器、芯片 |
US20230036832A1 (en) * | 2021-07-29 | 2023-02-02 | Elasticflash, Inc. | Systems and Methods for Optimizing Distributed Computing Systems Including Server Architectures and Client Drivers |
US11888938B2 (en) * | 2021-07-29 | 2024-01-30 | Elasticflash, Inc. | Systems and methods for optimizing distributed computing systems including server architectures and client drivers |
CN116151345A (zh) * | 2023-04-20 | 2023-05-23 | 西安紫光展锐科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
CN116151345B (zh) * | 2023-04-20 | 2023-09-26 | 西安紫光展锐科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105988970B (zh) | 2019-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105988970A (zh) | 共享存储数据的处理器和芯片 | |
US20220164285A1 (en) | Compensating for dram activation penalties | |
CN103744644B (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN102834815B (zh) | 高利用率多分区串行存储器 | |
CN104298628B (zh) | 一种用于并发访问的数据存储器仲裁电路及仲裁方法 | |
CN101770437B (zh) | 实现同步双端口存储器ip的并行读写的装置及方法 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN103136120B (zh) | 行缓冲管理策略确定方法和装置、bank划分方法和装置 | |
CN106992770A (zh) | 时钟电路及其传输时钟信号的方法 | |
CN105242768B (zh) | 可分时钟控制的低功耗高速ahb总线访问多块sram的桥装置 | |
CN104834484B (zh) | 基于嵌入式可编程逻辑阵列的数据处理系统及处理方法 | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
CN103730149A (zh) | 一种双端口存储器的读写控制电路 | |
CN102122259A (zh) | 一种高端容错计算机原型验证系统及验证方法 | |
CN105654993B (zh) | 用于ddr3 sdram控制器的功能验证方法及平台 | |
CN104765701B (zh) | 数据访问方法及设备 | |
CN104679681B (zh) | Ahb总线访问片上sram的高速桥装置及其工作方法 | |
CN110991626B (zh) | 一种多cpu类脑模拟系统 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN105955919B (zh) | 基于FPGA的多MCU读写NANDFlash的实现方法 | |
CN105068950A (zh) | 一种管脚复用的系统和方法 | |
CN104681082A (zh) | 单端口存储器件中的读和写冲突避免方法及其半导体芯片 | |
CN105893036A (zh) | 一种嵌入式系统的兼容式加速器扩展方法 | |
CN106339327B (zh) | 一种计算机系统及刀片式服务器机箱 | |
CN106484073A (zh) | 系统节能的方法和节能系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |