一种基于MSI协议的双核Cache一致性系统电路结构的制作方法

文档序号:6548092阅读:208来源:国知局
一种基于MSI协议的双核Cache一致性系统电路结构的制作方法
【专利摘要】本发明属于计算机体系结构设计【技术领域】,具体为一种基于MSI协议的双核Cache一致性系统电路结构。本发明采用MSI协议来实现双核Cache系统的数据一致性。针对嵌入式以及一些低功耗应用场合,本发明提出了一种低开销的电路结构。其主要由数据表、标记表、状态表、Cache控制器、总线侦听控制器、Cache侦听仲裁器以及总线接口构成。本发明可以以较小的开销来实现对双核Cache数据一致性的维护,非常适合于需要多核实现但对面积和功耗要求较高的场合。
【专利说明】—种基于MSI协议的双核Cache —致性系统电路结构
【技术领域】
[0001]本发明属于计算机体系结构设计领域,具体为一种基于MSI协议的双核Cache —致性系统电路结构。本发明面向嵌入式等对功耗和面积有较高要求的多核应用系统。
【背景技术】
[0002]随着单核处理器技术的不断发展,目前通过提高频率已经很难实现理想的性能提升。于此同时,还是带来了较大的功耗开销,使得供电和散热也成为了提升系统的瓶颈。多核处理器,通过在片上集成多个处理器核心来提高处理器的计算能力。可以再较低的频率下实现较高的性能,而且可以通过对处理器数量的扩展来实现性能的提高,并且可以避免较大的功耗开销。
[0003]然而,多核处理器也存在着一些问题。其中比较重要的问题是如何维护各个处理器自己私有的Cache之间的数据一致性的问题。目前商业的处理器都采用了相应的Cache一致性协议来实现数据一致性的维护,然而对于商业的处理器,由于其偏重于考虑通用场合,所以Cache的设计会比较复杂,尤其是Cache —致性维护电路的设计。对于一些嵌入式场合,尤其是一些对功耗和芯片面积要求较高的多核应用场合,如果设计一个可以有效维护数据一致性的低开小Cache系统成为了必须的设计。
[0004]本发明从上述一些专用的应用场景出发,设计出了一种低开销的基于MSI协议的双核Cache —致性系统电路结构来解决一些应用场合的需求和面临的挑战。

【发明内容】

[0005]本发明是一种低开销的基于MSI协议的双核Cache —致性系统电路结构。主要
【发明内容】
为Cache整体的电路结构,以及其中的Cache控制器和总线侦听控制器的设计。
[0006]本发明提供的一种基于MSI协议的双核Cache —致性系统电路结构,包括两处理器、两Cache和一主存;所述两Cache分别和两处理器相连;所述两Cache通过总线和主存相连;其中:
所述Cache由数据表、标记表、状态表、Cache控制器,Cache侦听仲裁、总线侦听控制器及总线接口组成;
所述处理器发出的写数据信号输入给数据表的写端口用于实现对数据表中数据存储单元的写操作;处理器发出的访存地址信号分别输入给数据表、标记表和状态表,用于对Cache行中存储的数据、标记段和状态进行索引,并把索引出的结果输出给Cache控制器;Cache控制器将索引出的标记段与处理器发出的访存地址信号中的标记段进行比较,产生Cache命中信号,并输出给处理器;Cache控制器与Cache的总线侦听控制器通过请求信号与应答信号进行连接,同时与另外一个Cache中的总线侦听控制器连接实现侦听操作;Cache控制器和总线侦听控制器分别与数据表、标记表和状态表连接实现Cache内容匹配和进行Cache行状态的更新操作;Cache控制器和总线侦听控制器与总线接口通过读写地址与数据信号连接实现总线的访问,进而实现主存的访问;Cache侦听仲裁器分别和Cache控制器、总线侦听控制器相连。
[0007]本发明中,所述Cache还包括一状态机;其用于实现Cache控制器产生的未命中处理;该状态机由七个状态构成,分别为空闲状态、发起请求状态、写回状态、广播状态、总线读状态、更新Cache状态和命中状态;系统复位后Cache控制器进入空闲状态;当处理器发出访存操作且未命中的情况下进入发起请求状态,在该状态下向Cache侦听仲裁器发起Cache控制权限请求信号;Cache侦听仲裁器给出授权信号后,状态会由发起请求状态进入写回状态或者广播状态;如果需要访存的Cache行的状态为修改状态且标记不匹配,则进入写回状态;对于其他情况则进入广播状态;在写回状态中发起总线写操作将将要被替换掉的Cache行写回到主存中;写回状态收到总线的写应答信号后进入广播状态;在广播状态中将该Cache的读写操作类型和读写地址广播给另外一个Cache的总线侦听控制器;广播状态收到另外一个Cache的总线侦听控制器的应答后进入总线读或者Cache更新状态;如果处理器发出的是读操作则进入总线读状态来获得需要读的数据;如果处理器发出的是写操作则进行更新Cache状态;在更新Cache状态中完成对Cache行内容的更新;完成更新操作后进入命中状态来产生处理器的命中信号;然后直接进入空闲状态来等待下一次Cache不命中事件。
[0008]本发明中,所述Cache还包括一状态机,用于总线侦听控制器对于侦听事件的处理。该状态机由五个状态构成,分别为空闲状态、发起请求状态、更新Cache状态、写回状态和应答状态;系统复位后总线侦听控制器进入空闲状态;当另外Cache中的Cache控制器发出侦听请求操作后进入发起请求状态来获取对Cache行操作的授权;获得Cache侦听仲裁器的授权后进入更新Cache状态或者应答状态;如果侦听标记发生匹配,则进入更新Cache状态;如果侦听标记不匹配,则进入应答状态;在更新Cache状态中,实现对Cache行MSI状态的更新;如果该Cache行的状态为非修改状态则进入应答状态;如果该Cache行的状态为修改状态则进入写回状态;在写回状态中通过访问总线来将Cache行中的内容写回到主存;当接收到总线的写应答信号后由写回状态跳转到应答状态;应答状态用于完成对另外一个Cache的Cache控制器发出应答信号;随后直接进行空闲状态来等待下一次总线侦听事件。
[0009]本发明的有益效果在于:其电路结构低开销,非常适合于需要多核实现但对面积和功耗要求较高的场合。
【专利附图】

【附图说明】
[0010]图1是双核Cache —致性系统电路结构图。
[0011]图2是MSI协议的状态转换图。
[0012]图3是Cache控制器状态机的状态转换图。
[0013]图4是总线侦听控制器状态机的状态转换图。
【具体实施方式】
[0014]本发明是一种低开销的基于MSI协议的双核Cache —致性系统电路结构。主要
【发明内容】
为Cache整体的电路结构,以及其中的Cache控制器和总线侦听控制器的设计。下面将结合附图进行说明。[0015]MSI协议是用于实现Cache —致性的较为简单的协议,通过三个状态(修改状态、共享状态和无效状态)来标记数据的状态。其状态转换如图2所示。其中当Cache行处于修改状态时,本地处理器能进行随意读写,而其他处理器进行访问时,该状态需要转换为共享状态或者无效状态,并把修改后的数据写回到主存中,从而使得在相同的Cache行只有一个处理器具有修改的状态,其他处理器为无效状态。而共享状态可以同时存在于不同的Cache的相应行中,这是由于对于共享状态,处理器仅具有读权限,所以不会带来数据一致性的问题。
[0016]本发明所提出的基于MSI协议的双核Cache —致性系统电路结构如图1所示,其主要由数据表(DATA)、标记表(TAG)、状态表(STATE)、Cache控制器、总线侦听控制器、Cache侦听仲裁和总线接口构成。
[0017]Cache与处理器和主存的连接关系如下:处理器输入给Cache的信号有处理器访存有效信号、处理器读写操作信号、处理器访存地址和处理器写数据信号;Cache返回给处理器的信号有Cache命中信号、读数据信号;Cache通过总线接口连接在总线上,来实现对主存的访问;
Cache内部的连接关系如下:处理器发出的写数据信号输入给数据表的写端口用于实现对Cache数据表中数据存储单元的写操作;处理器发出的访存地址信号输入给数据表、标记表和状态表来对Cache行中存储的数据、标记段和状态进行索引,并把索引出的结果输入给Cache控制器;Cache控制器对索引出的标记段与处理器发出的访存地址信号中的标记段进行比较,来产生Cache命中信号有效,并输出给处理器;Cache控制器与总线侦听控制器通过请求信号与应答信号进行连接;Cache控制器与总线接口通过读写地址与数据等信号连接来实现总线的访问;Cache控制器与另外一个Cache中的总线侦听控制器连接来实现侦听操作;Cache还与数据表、标记表和状态表连接来实现Cache内容的更新操作;总线侦听控制器同样也需要与数据表、标记表和状态表连接来实现Cache内容匹配和行Cache行状态的更新;总线侦听控制器与总线接口通过读写地址与数据等信号连接来实现总线的访问;总线侦听控制器与另外一个Cache中的Cache控制器连接来实现侦听操作。
[0018]Cache控制器除了产生命中信号外,对于未命中的处理由一个状态机实现。该状态机由七个状态构成,分别为空闲状态(IDLE)、发起请求状态(EEXREQ)、写回状态(WRITEBACK)、广播状态(BROADCAST)、总线读状态(BUSREAD)、更新 Cache 状态(UPDATE CACHE)和命中状态(HIT)。其状态和状态转换图如图3所示。系统复位后Cache控制器进入空闲状态;当处理器发出访存操作(pr_valid信号有效)且未命中(cache_hit信号无效)的情况下进入发起请求状态,在该状态下向Cache侦听仲裁器发起Cache控制权限请求信号;Cache侦听仲裁器给出授权信号后,状态会由发起请求状态进入写回状态或者广播状态;如果需要访存的Cache行的状态为修改状态且标记不匹配(tag_match信号无效),则进入写回状态;对于其他情况则进入广播状态;在写回状态中发起总线写操作将将要被替换掉的Cache行写回到主存中;写回状态收到总线的写应答信号(wack信号有效)后进入广播状态;在广播状态中将该Cache的读写操作类型和读写地址广播给另外一个Cache的总线侦听控制器;广播状态收到另外一个Cache的总线侦听控制器的应答后进入总线读或者Cache更新状态;如果处理器发出的是读操作(pr_wen信号无效)则进入总线读状态来获得需要读的数据;如果处理器发出的是写操作(pr_valid信号有效)则进行更新Cache状态;在更新Cache状态中完成对Cache行内容的更新;完成更新操作后进入命中状态来产生处理器的命中信号;然后直接进入空闲状态来等待下一次Cache不命中事件。
[0019]总线侦听控制器对于侦听事件的处理由一个状态机实现。该状态机由五个状态构成,分别为空闲状态(IDLE)、发起请求状态(EXREQ)、更新Cache状态(UPDATE STATE)、写回状态(WRITE BACK)和应答状态(ACK)。其状态和状态转换图4所示。系统复位后总线侦听控制器进入空闲状态;当另外Cache中的Cache控制器发出侦听请求操作(snoopy_req信号有效)后进入发起请求状态来获取对Cache行操作的授权;获得Cache侦听仲裁器的授权后进入更新Cache状态或者应答状态;如果侦听标记发生匹配(snoopy_match信号有效),则进入更新Cache状态;如果侦听标记不匹配(snoopy_match信号无效),则进入应答状态;在更新Cache状态中,实现对Cache行MSI状态的更新;如果该Cache行的状态为非修改状态则进入应答状态;如果该Cache行的状态为修改状态则进入写回状态;在写回状态中通过访问总线来将Cache行中的内容写回到主存;当接收到总线的写应答信号(wack信号有效)后由写回状态跳转到应答状态;应答状态用于完成对另外一个Cache的Cache控制器发出应答信号;随后直接进行空闲状态来等待下一次总线侦听事件。
[0020]为了对该双核Cache —致性系统的开销进行评估,这里实现了一个Cache大小为8KB,主存大小为128KB的双核Cache —致性系统。通过对该系统在SMC 65nm工艺下进行综合,结果如下表1所示。可以对于用于实现Cache —致性的电路模块(不包括数据表和标记表)面积开销很小,并且所占的总面积开销比例也很小。
[0021]表1
【权利要求】
1.一种基于MSI协议的双核Cache —致性系统电路结构,其特征在于:其包括两处理器、两Cache和一主存;所述两Cache分别和两处理器相连;所述两Cache通过总线和主存相连;其中: 所述Cache由数据表、标记表、状态表、Cache控制器,Cache侦听仲裁、总线侦听控制器及总线接口组成; 所述处理器发出的写数据信号输入给数据表的写端口用于实现对数据表中数据存储单元的写操作;处理器发出的访存地址信号分别输入给数据表、标记表和状态表,用于对Cache行中存储的数据、标记段和状态进行索引,并把索引出的结果输出给Cache控制器;Cache控制器将索 引出的标记段与处理器发出的访存地址信号中的标记段进行比较,产生Cache命中信号,并输出给处理器;Cache控制器与Cache的总线侦听控制器通过请求信号与应答信号进行连接,同时与另外一个Cache中的总线侦听控制器连接实现侦听操作;Cache控制器和总线侦听控制器分别与数据表、标记表和状态表连接实现Cache内容匹配和进行Cache行状态的更新操作;Cache控制器和总线侦听控制器与总线接口通过读写地址与数据信号连接实现总线的访问,进而实现主存的访问;Cache侦听仲裁器分别和Cache控制器、总线侦听控制器相连。
2.根据权利要求1所述的电路结构,其特征在于:所述Cache还包括一状态机;其用于实现Cache控制器产生的未命中处理;该状态机由七个状态构成,分别为空闲状态、发起请求状态、写回状态、广播状态、总线读状态、更新Cache状态和命中状态; 系统复位后Cache控制器进入空闲状态;当处理器发出访存操作且未命中的情况下进入发起请求状态,在该状态下向Cache侦听仲裁器发起Cache控制权限请求信号;Cache侦听仲裁器给出授权信号后,状态会由发起请求状态进入写回状态或者广播状态;如果需要访存的Cache行的状态为修改状态且标记不匹配,则进入写回状态;对于其他情况则进入广播状态;在写回状态中发起总线写操作将要被替换掉的Cache行写回到主存中;写回状态收到总线的写应答信号后进入广播状态;在广播状态中将该Cache核的读写操作类型和读写地址广播给另外一个Cache的总线侦听控制器;广播状态收到另外一个Cache的总线侦听控制器的应答后进入总线读或者Cache更新状态;如果处理器发出的是读操作则进入总线读状态来获得需要读的数据;如果处理器发出的是写操作则进行更新Cache状态;在更新Cache状态中完成对Cache行内容的更新;完成更新操作后进入命中状态来产生处理器的命中信号;然后直接进入空闲状态来等待下一次Cache不命中事件。
3.根据权利要求1所述的电路结构,其特征在于:还包括一个状态机,其用于实现总线侦听控制器对侦听事件的处理;该状态机由五个状态构成,分别为空闲状态、发起请求状态、更新Cache状态、写回状态和应答状态; 系统复位后总线侦听控制器进入空闲状态;当另一 Cache中的Cache控制器发出侦听请求操作后进入发起请求状态来获取对Cache行操作的授权;获得Cache侦听仲裁器的授权后进入更新Cache状态或者应答状态;如果侦听标记发生匹配,则进入更新Cache状态;如果侦听标记不匹配,则进入应答状态;在更新Cache状态中,实现对Cache行MSI状态的更新;如果该Cache行的状态为非修改状态则进入应答状态;如果该Cache行的状态为修改状态则进入写回状态;在写回状态中通过访问总线来将Cache行中的内容写回到主存;当接收到总线的写应答信号后由写回状态跳转到应答状态;应答状态用于完成对另外一个Cache的Cache控制 器发出应答信号;随后直接进行空闲状态来等待下一次总线侦听事件。
【文档编号】G06F12/08GK104008068SQ201410235258
【公开日】2014年8月27日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】韩军, 窦仁峰, 曾凌云, 曾晓洋 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1