CN104008068A - 一种基于MSI协议的双核Cache一致性系统电路结构 - Google Patents
一种基于MSI协议的双核Cache一致性系统电路结构 Download PDFInfo
- Publication number
- CN104008068A CN104008068A CN201410235258.XA CN201410235258A CN104008068A CN 104008068 A CN104008068 A CN 104008068A CN 201410235258 A CN201410235258 A CN 201410235258A CN 104008068 A CN104008068 A CN 104008068A
- Authority
- CN
- China
- Prior art keywords
- cache
- state
- controller
- bus
- enter
- 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
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明属于计算机体系结构设计技术领域,具体为一种基于MSI协议的双核Cache一致性系统电路结构。本发明采用MSI协议来实现双核Cache系统的数据一致性。针对嵌入式以及一些低功耗应用场合,本发明提出了一种低开销的电路结构。其主要由数据表、标记表、状态表、Cache控制器、总线侦听控制器、Cache侦听仲裁器以及总线接口构成。本发明可以以较小的开销来实现对双核Cache数据一致性的维护,非常适合于需要多核实现但对面积和功耗要求较高的场合。
Description
技术领域
本发明属于计算机体系结构设计领域,具体为一种基于MSI协议的双核Cache一致性系统电路结构。本发明面向嵌入式等对功耗和面积有较高要求的多核应用系统。
背景技术
随着单核处理器技术的不断发展,目前通过提高频率已经很难实现理想的性能提升。于此同时,还是带来了较大的功耗开销,使得供电和散热也成为了提升系统的瓶颈。多核处理器,通过在片上集成多个处理器核心来提高处理器的计算能力。可以再较低的频率下实现较高的性能,而且可以通过对处理器数量的扩展来实现性能的提高,并且可以避免较大的功耗开销。
然而,多核处理器也存在着一些问题。其中比较重要的问题是如何维护各个处理器自己私有的Cache之间的数据一致性的问题。目前商业的处理器都采用了相应的Cache一致性协议来实现数据一致性的维护,然而对于商业的处理器,由于其偏重于考虑通用场合,所以Cache的设计会比较复杂,尤其是Cache一致性维护电路的设计。对于一些嵌入式场合,尤其是一些对功耗和芯片面积要求较高的多核应用场合,如果设计一个可以有效维护数据一致性的低开小Cache系统成为了必须的设计。
本发明从上述一些专用的应用场景出发,设计出了一种低开销的基于MSI协议的双核Cache一致性系统电路结构来解决一些应用场合的需求和面临的挑战。
发明内容
本发明是一种低开销的基于MSI协议的双核Cache一致性系统电路结构。主要发明内容为Cache整体的电路结构,以及其中的Cache控制器和总线侦听控制器的设计。
本发明提供的一种基于MSI协议的双核Cache一致性系统电路结构,包括两处理器、两Cache和一主存;所述两Cache分别和两处理器相连;所述两Cache通过总线和主存相连;其中:
所述Cache由数据表、标记表、状态表、Cache控制器,Cache侦听仲裁、总线侦听控制器及总线接口组成;
所述处理器发出的写数据信号输入给数据表的写端口用于实现对数据表中数据存储单元的写操作;处理器发出的访存地址信号分别输入给数据表、标记表和状态表,用于对Cache行中存储的数据、标记段和状态进行索引,并把索引出的结果输出给Cache控制器;Cache控制器将索引出的标记段与处理器发出的访存地址信号中的标记段进行比较,产生Cache命中信号,并输出给处理器; Cache控制器与Cache的总线侦听控制器通过请求信号与应答信号进行连接,同时与另外一个Cache中的总线侦听控制器连接实现侦听操作;Cache控制器和总线侦听控制器分别与数据表、标记表和状态表连接实现Cache内容匹配和进行Cache行状态的更新操作;Cache控制器和总线侦听控制器与总线接口通过读写地址与数据信号连接实现总线的访问,进而实现主存的访问;Cache侦听仲裁器分别和Cache控制器、总线侦听控制器相连。
本发明中,所述Cache还包括一状态机;其用于实现Cache控制器产生的未命中处理;该状态机由七个状态构成,分别为空闲状态、发起请求状态、写回状态、广播状态、总线读状态、更新Cache状态和命中状态;系统复位后Cache控制器进入空闲状态;当处理器发出访存操作且未命中的情况下进入发起请求状态,在该状态下向Cache侦听仲裁器发起Cache控制权限请求信号;Cache侦听仲裁器给出授权信号后,状态会由发起请求状态进入写回状态或者广播状态;如果需要访存的Cache行的状态为修改状态且标记不匹配,则进入写回状态;对于其他情况则进入广播状态;在写回状态中发起总线写操作将将要被替换掉的Cache行写回到主存中;写回状态收到总线的写应答信号后进入广播状态;在广播状态中将该Cache的读写操作类型和读写地址广播给另外一个Cache的总线侦听控制器;广播状态收到另外一个Cache的总线侦听控制器的应答后进入总线读或者Cache更新状态;如果处理器发出的是读操作则进入总线读状态来获得需要读的数据;如果处理器发出的是写操作则进行更新Cache状态;在更新Cache状态中完成对Cache行内容的更新;完成更新操作后进入命中状态来产生处理器的命中信号;然后直接进入空闲状态来等待下一次Cache不命中事件。
本发明中,所述Cache还包括一状态机,用于总线侦听控制器对于侦听事件的处理。该状态机由五个状态构成,分别为空闲状态、发起请求状态、更新Cache状态、写回状态和应答状态;系统复位后总线侦听控制器进入空闲状态;当另外Cache中的Cache控制器发出侦听请求操作后进入发起请求状态来获取对Cache行操作的授权;获得Cache侦听仲裁器的授权后进入更新Cache状态或者应答状态;如果侦听标记发生匹配,则进入更新Cache状态;如果侦听标记不匹配,则进入应答状态;在更新Cache状态中,实现对Cache行MSI状态的更新;如果该Cache行的状态为非修改状态则进入应答状态;如果该Cache行的状态为修改状态则进入写回状态;在写回状态中通过访问总线来将Cache行中的内容写回到主存;当接收到总线的写应答信号后由写回状态跳转到应答状态;应答状态用于完成对另外一个Cache的Cache控制器发出应答信号;随后直接进行空闲状态来等待下一次总线侦听事件。
本发明的有益效果在于:其电路结构低开销,非常适合于需要多核实现但对面积和功耗要求较高的场合。
附图说明
图1是 双核Cache一致性系统电路结构图。
图2是 MSI协议的状态转换图。
图3是 Cache控制器状态机的状态转换图。
图4是 总线侦听控制器状态机的状态转换图。
具体实施方式
本发明是一种低开销的基于MSI协议的双核Cache一致性系统电路结构。主要发明内容为Cache整体的电路结构,以及其中的Cache控制器和总线侦听控制器的设计。下面将结合附图进行说明。
MSI协议是用于实现Cache一致性的较为简单的协议,通过三个状态(修改状态、共享状态和无效状态)来标记数据的状态。其状态转换如图2所示。其中当Cache 行处于修改状态时,本地处理器能进行随意读写,而其他处理器进行访问时,该状态需要转换为共享状态或者无效状态,并把修改后的数据写回到主存中,从而使得在相同的Cache 行只有一个处理器具有修改的状态,其他处理器为无效状态。而共享状态可以同时存在于不同的Cache 的相应行中,这是由于对于共享状态,处理器仅具有读权限,所以不会带来数据一致性的问题。
本发明所提出的基于MSI协议的双核Cache一致性系统电路结构如图1所示,其主要由数据表 (DATA)、标记表(TAG)、状态表(STATE)、Cache控制器、总线侦听控制器、Cache侦听仲裁和总线接口构成。
Cache与处理器和主存的连接关系如下:处理器输入给Cache的信号有处理器访存有效信号、处理器读写操作信号、处理器访存地址和处理器写数据信号;Cache返回给处理器的信号有Cache命中信号、读数据信号;Cache通过总线接口连接在总线上,来实现对主存的访问;
Cache内部的连接关系如下:处理器发出的写数据信号输入给数据表的写端口用于实现对Cache数据表中数据存储单元的写操作;处理器发出的访存地址信号输入给数据表、标记表和状态表来对Cache行中存储的数据、标记段和状态进行索引,并把索引出的结果输入给Cache控制器;Cache控制器对索引出的标记段与处理器发出的访存地址信号中的标记段进行比较,来产生Cache命中信号有效,并输出给处理器;Cache控制器与总线侦听控制器通过请求信号与应答信号进行连接;Cache控制器与总线接口通过读写地址与数据等信号连接来实现总线的访问;Cache控制器与另外一个Cache中的总线侦听控制器连接来实现侦听操作;Cache还与数据表、标记表和状态表连接来实现Cache内容的更新操作;总线侦听控制器同样也需要与数据表、标记表和状态表连接来实现Cache内容匹配和行Cache行状态的更新;总线侦听控制器与总线接口通过读写地址与数据等信号连接来实现总线的访问;总线侦听控制器与另外一个Cache中的Cache控制器连接来实现侦听操作。
Cache控制器除了产生命中信号外,对于未命中的处理由一个状态机实现。该状态机由七个状态构成,分别为空闲状态(IDLE)、发起请求状态(EEXREQ)、写回状态(WRITE BACK)、广播状态(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不命中事件。
总线侦听控制器对于侦听事件的处理由一个状态机实现。该状态机由五个状态构成,分别为空闲状态(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控制器发出应答信号;随后直接进行空闲状态来等待下一次总线侦听事件。
为了对该双核Cache一致性系统的开销进行评估,这里实现了一个Cache大小为8KB,主存大小为128KB的双核Cache一致性系统。通过对该系统在SIMC 65nm工艺下进行综合,结果如下表1所示。可以对于用于实现Cache一致性的电路模块(不包括数据表和标记表)面积开销很小,并且所占的总面积开销比例也很小。
表1
模块 | 面积开销(μm2) | 模块 | 面积开销(μm2) |
Cache控制器 | 183 | 总线接口 | 474 |
侦听控制器 | 80 | 状态表 | 18793 |
Cache侦听仲裁器 | 61 | 数据表和标记表 | 173509 |
Claims (3)
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控制器发出应答信号;随后直接进行空闲状态来等待下一次总线侦听事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410235258.XA CN104008068B (zh) | 2014-05-30 | 2014-05-30 | 一种基于MSI协议的双核Cache一致性系统电路结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410235258.XA CN104008068B (zh) | 2014-05-30 | 2014-05-30 | 一种基于MSI协议的双核Cache一致性系统电路结构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104008068A true CN104008068A (zh) | 2014-08-27 |
CN104008068B CN104008068B (zh) | 2017-01-25 |
Family
ID=51368728
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410235258.XA Active CN104008068B (zh) | 2014-05-30 | 2014-05-30 | 一种基于MSI协议的双核Cache一致性系统电路结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104008068B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912415A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
CN106126451A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN106126450A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845324A (en) * | 1995-04-28 | 1998-12-01 | Unisys Corporation | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access |
CN102662885A (zh) * | 2012-04-01 | 2012-09-12 | 天津国芯科技有限公司 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
CN102929832A (zh) * | 2012-09-24 | 2013-02-13 | 杭州中天微系统有限公司 | 基于非写分配的高速缓存一致性的多核处理器数据传输系统 |
-
2014
- 2014-05-30 CN CN201410235258.XA patent/CN104008068B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845324A (en) * | 1995-04-28 | 1998-12-01 | Unisys Corporation | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access |
CN102662885A (zh) * | 2012-04-01 | 2012-09-12 | 天津国芯科技有限公司 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
CN102929832A (zh) * | 2012-09-24 | 2013-02-13 | 杭州中天微系统有限公司 | 基于非写分配的高速缓存一致性的多核处理器数据传输系统 |
Non-Patent Citations (2)
Title |
---|
李常: "嵌入式MIPS微处理器设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
李静梅: "多核处理器的设计技术研究", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912415A (zh) * | 2016-04-05 | 2016-08-31 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
CN105912415B (zh) * | 2016-04-05 | 2017-12-29 | 浪潮电子信息产业股份有限公司 | 一种验证cache一致性协议的方法及装置 |
CN106126451A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
CN106126450A (zh) * | 2016-06-20 | 2016-11-16 | 中国航天科技集团公司第九研究院第七七研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN106126450B (zh) * | 2016-06-20 | 2018-10-30 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种应对多核处理器监听访问冲突的Cache设计结构及方法 |
CN106126451B (zh) * | 2016-06-20 | 2019-01-25 | 中国航天科技集团公司第九研究院第七七一研究所 | 基于包含式Cache体系的多核处理器低功耗设计结构 |
Also Published As
Publication number | Publication date |
---|---|
CN104008068B (zh) | 2017-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725920B2 (en) | Processors having virtually clustered cores and cache slices | |
US20200218657A1 (en) | Configurable snoop filters for cache coherent systems | |
US20210374056A1 (en) | Systems and methods for scalable and coherent memory devices | |
US20150169453A1 (en) | Method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device | |
US9836400B2 (en) | Method, apparatus and system for dynamically controlling an addressing mode for a cache memory | |
US9690353B2 (en) | System and method for initiating a reduced power mode for one or more functional blocks of a processor based on various types of mode request | |
US20140068125A1 (en) | Memory throughput improvement using address interleaving | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
US9183150B2 (en) | Memory sharing by processors | |
US20030023794A1 (en) | Cache coherent split transaction memory bus architecture and protocol for a multi processor chip device | |
CN112017700A (zh) | 用于存储器装置的动态功率管理网络 | |
CN104008068A (zh) | 一种基于MSI协议的双核Cache一致性系统电路结构 | |
US9229879B2 (en) | Power reduction using unmodified information in evicted cache lines | |
EP2808758B1 (en) | Reduced Power Mode of a Cache Unit | |
US10318428B2 (en) | Power aware hash function for cache memory mapping | |
CN115443453A (zh) | 用于减少传输延迟的链路关联 | |
US10452272B2 (en) | System to reduce directory information storage | |
US20160188470A1 (en) | Promotion of a cache line sharer to cache line owner | |
CN101625671A (zh) | Ahb互连矩阵接口及其数据处理方法 | |
Bhure et al. | Design of cache controller for multi-core processor system | |
CN209625200U (zh) | 一种转接卡 | |
US10452266B2 (en) | Directory storage control for commonly used patterns | |
CN109634399B (zh) | 低功耗存储型服务器 | |
Lv et al. | Design of Key Components of Remote Sensing Satellite Scene Simulation Simulator Based on NVMe Technology | |
CN205229907U (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |