CN101510191B - 具备缓存窗口的多核体系架构的实现方法 - Google Patents

具备缓存窗口的多核体系架构的实现方法 Download PDF

Info

Publication number
CN101510191B
CN101510191B CN2009100969601A CN200910096960A CN101510191B CN 101510191 B CN101510191 B CN 101510191B CN 2009100969601 A CN2009100969601 A CN 2009100969601A CN 200910096960 A CN200910096960 A CN 200910096960A CN 101510191 B CN101510191 B CN 101510191B
Authority
CN
China
Prior art keywords
data
cache
level cache
sheet
process nuclear
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.)
Expired - Fee Related
Application number
CN2009100969601A
Other languages
English (en)
Other versions
CN101510191A (zh
Inventor
陈天洲
王春昊
曹满
章铁飞
马建良
乔福明
项凌翔
缪良华
蒋冠军
陈度
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN2009100969601A priority Critical patent/CN101510191B/zh
Publication of CN101510191A publication Critical patent/CN101510191A/zh
Application granted granted Critical
Publication of CN101510191B publication Critical patent/CN101510191B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及片上多处理器体系结构技术领域,旨在提供一种具备缓存窗口的多核体系架构及其实现方法。该多核体系架构,包括至少两个并行的片上处理核,每个片上处理核各自拥有自己独立的一级缓存,并与其它的片上处理核一起共有一个共享的一级缓存,即缓存窗口;所述缓存窗口和独立的一级缓存分别与二级缓存连接。本发明大大了提高了数据通信的效率,降低了通信的代价;提高了利用率,同时也降低了缓存的失配率;在很大程度上简化了一级缓存上的数据一致性协议。

Description

具备缓存窗口的多核体系架构的实现方法
技术领域
本发明涉及片上多处理器体系结构技术领域,特别是涉及一种具备缓存窗口的多核体系架构的实现方法。
背景技术
1965年Intel公司的创始人之一戈登摩尔在总结存储器芯片的增长规律时,发现“微芯片上集成电路的晶体管数目每12个月翻一番”,称为“摩尔定律”。这条定律多次遇到挑战并被表述为每18个月翻一番,目前业界仍然在遵循了该规律。
当前主流的工艺技术已经到45nm甚至32nm的水平,已经越来越逼近晶体管尺寸的极限。如何才能使摩尔定律摆脱失效的命运,基于硅的集成电路技术是否能否进一步发展,取决于未来几年内硅技术能否有革命性的突破,或发展出崭新的计算技术。为了延续摩尔定律,多核技术应运而生,人们进入了在一块芯片上集成多片处理核的时代。
片上多处理器(CMP,Chip Multi-Processor)中相对简单的处理核易于设计,可重用性高,便于测试和优化。存在三种常见的片上并行处理方案:超标量计算机,并行多线程和最近兴起的片上多处理器,通过在相应的架构上用标准的程序进行测试,结果表明片上多处理器无论在能耗和性能的提升上都有着无与伦比的优势。我们有理由相信,片上多处理器的作用在未来并行计算的发展中会越来越重要。
同时硬件发展有内存瓶颈,即处理器性能提高会大大高于内存访问的提高。一级和二级缓存的出现对于系统性能的提高是十分巨大的,一定程度上缓解了单核处理器上核与存储器的速度差异。在缓存的结构被提出后的20多年内,体系研究者们提出了无数改进和优化缓存设计的方案,以试图更好地弥补内存存取速度和处理器处理速度之间巨大的落差,计算机的整体性能也随之突飞猛进。
随着多核的出现,核作为处理器内部高速器件,速度得到巨大提升,而与此同时存储器仍然徘徊在低速水平,因此多核体系结构中的存储结构,尤其是片上缓存的设计,成为多核中非常重要的单元。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种具备缓存窗口的多核体系架构及其实现方法。
本发明解决其技术问题采用的技术方案如下:
提供一种具备缓存窗口的多核体系架构,包括至少两个并行的片上处理核,每个片上处理核各自拥有自己独立的一级缓存,并与其它的片上处理核一起共有一个共享的一级缓存,即缓存窗口;所述缓存窗口和独立的一级缓存分别与二级缓存连接。
作为一种改进,所述并行的片上处理核有四个。
作为本发明更进一步的目的,还提供了一种基于前述具备缓存窗口的多核体系架构的实现方法,各片上处理核对于数据的访问都是通过一级缓存进行的,所有的私有数据都在自己独立的一级缓存里,共享的数据全部放在缓存窗口中,在执行共享数据访问的时候,各片上处理核都是通过缓存窗口进行的。
作为一种改进,当任意一个片上处理核在请求数据的时候,同时向自己独立的一级缓存和共享的缓存窗口发出数据请求命令,任一个缓存中的命中都会导致数据的命中;只有当两个缓存中都没有数据的时候,才会出现一级缓存访问失配的情况,此时就要访问下层的二级缓存。
作为一种改进,在一级缓存上加入一个写标志,当有一个片上处理核在对一个数据块进行改写的时候,将写标志置为1;当其它的片上处理核检测到这个写标志位时,暂时停止对数据块的写信号,并等到写信号位重新变为0的时候再进行改写,以保证数据写的安全性。
作为一种改进,当一个片上处理核在一级缓存访问失配的时候就向二级缓存中读取数据;如果二级缓存的数据块是单一的或已被修改的,表明当前有且仅有一个片上处理核独立的一级缓存中拥有这个数据,此时二级缓存可以通过查找其目录,向相应一级缓存的数据块发送确认信息;如果此数据块是未修改的,直接将这个数据块置无效,并同时将二级缓存中的数据发送到发出请求的片上处理核;如果这个数据块是修改过的,则必须在此一级缓存中的数据写回二级缓存中后才能回应发出请求的片上处理核。
作为一种改进,每一个二级缓存中的数据块一旦变为共享后,即存在多个片上处理核对其进行访问的时候,它的共享标志不会自动变为无效,除非其收到置无效信号或上层的缓存窗口相应数据块换出时才会变为唯一的或修改的。
本发明与背景技术相比,具有的有益的效果是:
(1)由于共享数据都在缓存窗口中,各个片上处理核间数据的共享和交换就被放到了要快得多的共享一级缓存上,大大了提高了数据通信的效率,降低了通信的代价;
(2)由于可能需要复制的的共享数据块已经在缓存窗口里,就避免了在传统不同片上处理核拥有不同的一级缓存时所需要的数据复制,这大大制约了一级缓存的本来就很小的空间,提高了利用率,同时也就降低了缓存的失配率;
(3)在很大程度上简化了一级缓存上的数据一致性协议。一致性协议要解决的最大的问题就是多核上相同的数据可能会在不同的私有一级缓存或二级缓存里拥有多份拷贝所带来的数据更新问题。在存在多份拷贝的时候,要保证一个片上处理核正在写的数据必须是最新的数据是很困难的。缓存窗口的设计消除了数据在一级缓存中的复制,可以大大简化数据一致性协议。
附图说明
图1为本方法提出的具备缓存窗口的多核体系架构的结构示意图。
具体实施方式
本实施例中的具备缓存窗口的多核体系架构,包括至少四个并行的片上处理核,每个片上处理核各自拥有自己独立的一级缓存,并与其它的片上处理核一起共有一个共享的一级缓存,即缓存窗口;所述缓存窗口和独立的一级缓存分别与二级缓存连接。
在实施多核体系架构下缓存窗口的设计方法时,考虑了共享数据和私有数据的分隔性。
(1)缓存窗口(共享的一级缓存)
四个片上处理核各自拥有自己独立的一级缓存,并与其它的三个核一起共有一个共享的一级缓存,称之为缓存窗口。
共享的数据全部放在一级缓存窗口里,各个核对于数据的访问都是通过一级缓存进行的。核在执行的时候所读取的所有的共享数据都是通过一级缓存窗口进行的。所有的私有数据都在自己的独立一级缓存里。
例如,当上层的一级缓存的访问发生失配的时候,就会在总线上发出失配信号以向下层的二级缓存请求数据。不论是缓存窗口还是普通的独立一级缓存都会发出这个失配信号,并到达二级缓存的缓存控制器。缓存控制器会依据上层的请求地址在自己的二级缓存里寻找是否有匹配的数据地址,如果有匹配的话,它依据匹配的那个数据块的现在的状态(私有的还是共享的)来响应上层的数据请求;如果匹配的二级缓存数据块是公有的,控制器允许缓存窗口的请求,并封锁独立一级缓存的请求,反之亦然;如果匹配的二级缓存数据块是私有的,控制器相应地就允许一级缓存的请求,而不回应缓存窗口的请求。
2)并行查找策略
当任意一个片上处理核在请求数据的时候,它会同时向自己独立的一级缓存里和所有的片上处理核同时共享的缓存窗口发出数据请求命令,任一个缓存中的命中都会导致数据的命中。而只有当两个缓存中都没有数据的时候,才会出现一级缓存访问失配的情况,此时就要访问下层的二级缓存。
例如,如果片上处理核同时发出的取址命令请求在一级缓存和缓存窗口都出现失配,缓存窗口和一级缓存都会对下层的二级缓存发出取数据命令。不同的是缓存窗口发出的问题是取共享数据信号,而一级缓存发出的是取私有数据的信号。控制器如果发现上层的数据地址与二级缓存中存在匹配的话,会再测试一下这个数据块是共享的数据还是私有的数据(修改的数据也是私有的数据)。如果这个数据是共享的,就响应缓存窗口的请求而拒绝普通缓存的请求,反之亦然。
3)单一改写策略
本方法在缓存窗口上加入一个写标志,当有一个片上处理核在对一个数据块进行改写的时候,就会将写标志置为1。当其它的片上处理核检测到这个写标志位,它对于数据块的写信号就会暂时停止,并等到写信号位重新变为0的时候再进行改写,以保证数据写的安全性。
例如,0号核正在对一个数据块进行写操作,它将这个数据块的写标志位置为1。此时,1号核也要对这个数据块进行写操作,它检测到了这个数据块的写标志位,1号核对这个数据块的写信号就会暂时停止。当0号核完成对这个数据块的写操作后,它清除掉这个数据块的写标志位。然后,1号核发现这个数据块的写标志位变成了0,才开始对这个数据块进行写操作。
4)提前写回策略
当一个片上处理核在一级缓存访问失配的时候就会到二级缓存中取数据,如果此二级缓存数据块是单一的或修改的,它表明当前有且仅有一个片上处理核的独立一级缓存中拥有这个数据,此时二级缓存可以通过查找其目录,向相应的一级缓存的数据块发送确认信息;如果此数据块是未修改的,直接将这个数据块置无效,并同时将二级缓存中的数据发送到请求核;如果这个数据块是修改过的,则必须在此一级缓存中的数据写回二级缓存中后才能回应请求核。
例如,如果0号核发出的取址命令在一级缓存失配,它会到二级缓存中取数据。如果它发现此二级缓存的数据块处于单一状态或者修改状态,说明当前有且仅有一个核的独立一级缓存中拥有这个数据。这时,0号核通过查找目录,向相应的一级缓存的数据块发送确认消息;如果此二级缓存的数据块处于未修改状态,它直接将此数据块设置成无效状态,并且将二级缓存中的数据发送回0号核;如果此数据块是修改过的,0号核必须等到一级缓存中的数据写回到二级缓存后才能得到数据。
5)换出无效策略
每一个二级缓存中的数据块一旦变为共享后,即存在多个片上处理核对其进行访问的时候,它的共享标志不会自动变为无效,除非其收到置无效信号或上层一级缓存窗口相应数据块的换出时才会变为唯一的或修改的。
例如,如果0号核和1号核同时对二级缓存中的一个数据块进行访问,此数据块会进入共享状态。此时,它的共享标志不会自动变为无效。如果此数据块收到片上处理核置无效的信号或者一级缓存窗口相应的数据块被换出,此数据块才会变成唯一状态或者修改状态。
最后,还需要注意的是,以上公布的仅是本发明的具体实施例。本领域的普通技术人员能从本发明公开的内容直接导出或联想到的所有变形,均应认为是本发明的保护范围。

Claims (1)

1.一种具备缓存窗口的多核体系架构的实现方法,该多核体系架构包括至少两个并行的片上处理核,每个片上处理核各自拥有自己独立的一级缓存,并与其它的片上处理核一起共有一个共享的一级缓存,即缓存窗口;所述缓存窗口和独立的一级缓存分别与二级缓存连接;其特征在于,各片上处理核对于数据的访问都是通过一级缓存进行的,所有的私有数据都在自己独立的一级缓存里,其特征在于,共享的数据全部放在缓存窗口中,在执行共享数据访问的时候,各片上处理核都是通过缓存窗口进行的;
当任意一个片上处理核在请求数据的时候,同时向自己独立的一级缓存和共享的缓存窗口发出数据请求命令,任一个一级缓存中的命中都会导致数据的命中;只有当独立的一级缓存和共享的一级缓存中都没有命中数据的时候,才会出现一级缓存访问失配的情况,此时就要访问下层的二级缓存;
在一级缓存上加入一个写标志,当有一个片上处理核在对一个一级缓存中的数据块进行改写的时候,将写标志置为1;当其它的片上处理核检测到这个写标志位为1时,暂时停止其它片上处理核对数据块的改写,并等到写标志位重新变为0的时候再进行改写,以保证数据写的安全性;
当一个片上处理核在一级缓存访问失配的时候就向二级缓存中读取数据;如果二级缓存的数据块是单一的或已被修改的,都表明当前有且仅有一个片上处理核的独立一级缓存中拥有这个数据,此时发出数据请求命令的片上处理核通过查找二级缓存的目录,向拥有这个数据的一级缓存的数据块发送确认信息;如果拥有这个数据的一级缓存的数据块是未修改的,直接将拥有这个数据的一级缓存的数据块置无效,并同时将二级缓存中的数据发送给发出请求的片上处理核;如果拥有这个数据的一级缓存的数据块是修改过的,则必须在拥有这个数据的一级缓存的数据块中的数据写回二级缓存中后才能回应发出请求的片上处理核;
每一个二级缓存中的数据块一旦变为共享后,即存在多个片上处理核对其进行访问的时候,它的共享标志不会自动变为无效,除非其收到置无效信号或上层的缓存窗口中有相应的数据块换出。
CN2009100969601A 2009-03-26 2009-03-26 具备缓存窗口的多核体系架构的实现方法 Expired - Fee Related CN101510191B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100969601A CN101510191B (zh) 2009-03-26 2009-03-26 具备缓存窗口的多核体系架构的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100969601A CN101510191B (zh) 2009-03-26 2009-03-26 具备缓存窗口的多核体系架构的实现方法

Publications (2)

Publication Number Publication Date
CN101510191A CN101510191A (zh) 2009-08-19
CN101510191B true CN101510191B (zh) 2010-10-06

Family

ID=41002594

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100969601A Expired - Fee Related CN101510191B (zh) 2009-03-26 2009-03-26 具备缓存窗口的多核体系架构的实现方法

Country Status (1)

Country Link
CN (1) CN101510191B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446159B (zh) * 2010-10-12 2013-09-18 无锡江南计算技术研究所 多核处理器的数据管理方法及装置
US8244938B2 (en) * 2010-11-23 2012-08-14 International Business Machines Corporation Sliding write window mechanism for writing data
US9471532B2 (en) * 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
CN102270180B (zh) * 2011-08-09 2014-04-02 清华大学 一种多核处理器系统的管理方法
EP2568386A4 (en) * 2011-09-30 2013-07-24 Huawei Tech Co Ltd PROCESS FOR CACHE ACCESS AND FICTIVE CACHE AGENT
CN102662885B (zh) * 2012-04-01 2015-09-23 天津国芯科技有限公司 对称式多核处理器维护二级缓存一致性的装置及其方法
US9304924B2 (en) 2012-08-17 2016-04-05 Futurewei Technologies, Inc. Cache coherent handshake protocol for in-order and out-of-order networks
CN102929834B (zh) * 2012-11-06 2015-10-07 无锡江南计算技术研究所 众核处理器及其核间通信的方法、主核和从核
CN103092788B (zh) * 2012-12-24 2016-01-27 华为技术有限公司 多核处理器及数据访问方法
US9483263B2 (en) * 2013-03-26 2016-11-01 Via Technologies, Inc. Uncore microcode ROM
US9563551B2 (en) * 2013-06-20 2017-02-07 Silicon Motion, Inc. Data storage device and data fetching method for flash memory
CN104252425B (zh) * 2013-06-28 2017-07-28 华为技术有限公司 一种指令缓存的管理方法和处理器
CN104252392B (zh) * 2013-06-28 2019-06-18 华为技术有限公司 一种访问数据缓存的方法和处理器
CN104424142B (zh) * 2013-08-26 2019-09-10 南京中兴新软件有限责任公司 一种多核处理器系统中访问共享资源的方法与装置
CN105700953B (zh) * 2014-11-26 2019-03-26 杭州华为数字技术有限公司 一种多处理器缓存一致性处理方法及装置
CN104866457B (zh) * 2015-06-04 2018-06-15 电子科技大学 一种基于共享缓存的片上多核处理器静态架构
CN105488012B (zh) * 2015-12-09 2021-05-18 浪潮电子信息产业股份有限公司 一种基于独占数据的一致性协议设计方法
CN105450792B (zh) * 2015-12-23 2018-09-14 东软集团股份有限公司 用于多核转发网络地址端口转换的端口分配方法和装置

Also Published As

Publication number Publication date
CN101510191A (zh) 2009-08-19

Similar Documents

Publication Publication Date Title
CN101510191B (zh) 具备缓存窗口的多核体系架构的实现方法
CN101958834B (zh) 支持高速缓存一致的片上网络系统及数据请求方法
KR100286962B1 (ko) 캐쉬 제어기
CN1866230B (zh) 一种存储器仲裁器、处理器系统及存储器仲裁方法
US6931496B2 (en) Data-maintenance method of distributed shared memory system
TW484068B (en) Method and system for resolution of transaction collisions to achieve global coherence in a distributed symmetric multiprocessor system
CN101449262A (zh) 多端口存储器件中的端口间通信
US20150006776A1 (en) On-chip mesh interconnect
CN104615576A (zh) 面向cpu+gpu处理器的混合粒度一致性维护方法
US6950913B2 (en) Methods and apparatus for multiple cluster locking
CN102326156A (zh) 基于空间要求目标报告的对mmio请求处理的投机改进
US9015436B2 (en) Performing an atomic operation without quiescing an interconnect structure
CN107924343B (zh) 低等待时间节点间通信
CN103034593A (zh) 面向众核处理器的片上锁变量全局编址存储方法及装置
US20080235421A1 (en) Technique and apparatus to optimize inter-port memory transaction sequencing on a multi-ported memory controller unit
CN105279116A (zh) 基于fpga的ddr控制器及控制方法
CN101515295B (zh) 片上硬件数据库的高速缓冲器支持实现方法
JP2022151611A (ja) 統合された3次元(3d)dramキャッシュ
CN106201939A (zh) 面向gpdsp架构的多核目录一致性装置
CN106126450B (zh) 一种应对多核处理器监听访问冲突的Cache设计结构及方法
JP2005293596A5 (zh)
CN109840241B (zh) 一种异构双核处理器核间通讯电路
KR100398954B1 (ko) 멀티웨이 세트 연관 구조의 캐쉬 메모리 및 데이터 판독방법
JPS61290550A (ja) 階層記憶制御方式
CN100380282C (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101006

Termination date: 20120326