CN116962259B - 一种基于监听-目录两层协议的一致性处理方法及系统 - Google Patents
一种基于监听-目录两层协议的一致性处理方法及系统 Download PDFInfo
- Publication number
- CN116962259B CN116962259B CN202311219599.3A CN202311219599A CN116962259B CN 116962259 B CN116962259 B CN 116962259B CN 202311219599 A CN202311219599 A CN 202311219599A CN 116962259 B CN116962259 B CN 116962259B
- Authority
- CN
- China
- Prior art keywords
- request
- processing
- directory
- monitoring
- snoop
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims description 11
- 238000012545 processing Methods 0.000 claims abstract description 145
- 238000012544 monitoring process Methods 0.000 claims abstract description 68
- 238000000034 method Methods 0.000 claims abstract description 42
- 241001522296 Erithacus rubecula Species 0.000 claims abstract description 7
- 230000015654 memory Effects 0.000 claims description 74
- 230000004044 response Effects 0.000 claims description 63
- 239000013598 vector Substances 0.000 claims description 12
- 230000008569 process Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000011161 development Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/103—Active monitoring, e.g. heartbeat, ping or trace-route with adaptive polling, i.e. dynamically adapting the polling rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及计算机技术领域,特别涉及一种基于监听‑目录两层协议的一致性处理方法及系统。在CC‑NUMA系统中,Local节点中局部Cache一致性处理部件接收来自处理器的一次请求和Home节点的监听请求,一次请求和监听请求在各自的队列中向一致性处理流水线申请仲裁;轮转仲裁上流水线的一次请求或二次请求可进行地址冲突判断,无地址冲突的请求直接写入目录;写入目录的请求依据目录中存储的数据块副本状态和拥有者情况,对一次请求或监听请求进行局部一致性处理,由目录管理一次请求或监听请求所派生的二次请求、访存请求。本发明减少了资源冲突,快照处理不需要寄存请求内容、实现简单、减少硬件资源开销。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于监听-目录两层协议的CC-NUMA(Cache Coherent Non-Uniform Memory Access)系统中局部Cache一致性处理方法及CC-NUMA系统。
背景技术
随着信息时代社会的发展,处理器芯片在科学生产、工业应用、日常生活中扮演越来越重要的计算角色。半导体工艺技术飞速发展使得处理器技术也随着不断发展和进步,单核处理器的频率已经逐渐达到极限,随着频率的提升,功耗不断增加,性能的提升也变得缓慢,为了进一步提升处理器的计算能力,人们将多个处理器核集成在一个芯片上形成片上多处理器(CMP:Chip MultiProcessor)。
在CMP中,每个处理器核都拥有本地私有Cache用于存放最近使用的数据,当多个处理器同时访问某个数据时,在分布式共享内存处理器系统中可以使同一数据同时存在与多个核心各自的私有Cache中,带来Cache数据一致性问题。CC-NUMA结构作为CMP中一种重要体系结构已成为主流服务器处理其的必备特征,在CC-NUMA系统中,分布式内存相详解形成单一内存,内存之间没有页面复制或数据复制,不需要软件保证多个数据副本之间的一致性,Cache一致性问题由硬件保证实现。
Cache一致性协议目前有两种方式实现:监听一致性协议和目录一致性协议。
监听协议利用总线广播机制来实现,系统中所有缓存控制器都需要监听系统总线上的一致性消息,总线是一致性消息的定序点,所有总线节点上的缓存控制器都以相同的顺序接收到总线上的一致性消息,缺点是同一时间只有一个消息在总线上传输,每个缓存控制器管理自身的数据副本状态,通过总线进行不同缓存副本之间的状态同步。然而随着系统规模的不断扩大,多个系统组件之间会竞争使用总线资源,每次进行状态同步都会进行广播,严重影响总线效率,同时增加总线负载和功耗,可扩展行较差。
目录协议是使用目录表项来记录全局缓存状态,为每个数据块都建立一个目录,内容包括共享副本、当前副本拥有者、一致性状态等。在目录协议中,目录充当了定序点,消息的传输为点对点方式,系统中所有一致性消息都通过一个目录结构维护,避免了广播消息,可以有效的降低一致性消息对总线带宽的需求,具有很好的可扩展性。
发明内容
本发明的目的在于提供一种基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法及CC-NUMA系统,以解决背景技术中的问题。
为解决上述技术问题,本发明提供了一种基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,包括:
局部Cache一致性处理部件接收来自处理器的一次请求和Home节点的监听请求;
一次请求和监听请求轮转仲裁上一致性处理流水线并进行地址冲突判断,无地址冲突的请求直接写入目录;
写入目录的请求,依据目录中存储的数据块副本状态和拥有者情况,对一次请求或监听请求进行局部一致性处理;
由目录管理一次请求或监听请求所派生的二次请求、访存请求、LLC访问请求和响应;
对每一个一次请求要返回给处理器一个响应,对每一个监听请求要返回给Home一个监听回答。
优选的,针对每一个一次请求或监听请求的一致性处理流程进行地址冲突判断;其中,在地址冲突判断中,比较一次请求或监听请求的地址与目录中尚处于一致性处理状态中的所有请求地址;如果相同,则视为存在地址冲突,登记地址冲突信息,并使所述一次请求或监听请求等待下一次仲裁上流水线。
优选的,在一次请求或监听请求队列中记录地址冲突信息,并检测目录中与所述一次请求或监听请求地址冲突中的请求执行状态,当发生地址冲突的请求完成后,所述一次请求或监听请求可重新申请上一致性处理流水线。
优选的,对每一个写入目录操作的一次请求或监听请求,可从一次请求队列或监听请求队列中释放。
优选的,对每一个写入目录的一次请求,执行二次请求、访存请求、末级缓存LLC访问请求和响应的发送判断;如果需要则由目录生成快照发送向量,分别由对应的二次请求队列、访存请求队列、LLC、响应队列执行快照发送。
对每一个一次请求或监听请求的一致性处理流程执行二次请求发送判断,如果需要发送二次请求进行局部一致性处理,则由目录生成快照发送向量,由二次请求队列执行快照发送。
对每一个一次请求的一致性处理流程执行访存请求发送判断,如果需要进行访问主存则由目录生成快照发送向量,由访存请求队列执行快照发送。
对每一个一次请求或监听请求的一致性处理流程执行LLC访存判断,由目录生成LLC访问快照发送向量,由访存请求队列执行快照发送。
优选的,该方法具体包括如下步骤:
步骤S1:等待处理;
此时一次请求或监听请求等待处理,当二者存在有效请求时可进入步骤S2;
步骤S2:仲裁判断;
用于对一次请求、监听请求进行轮转仲裁,如果仲裁成功可进入地址冲突判断步骤S3,如果仲裁不成功,处理回到步骤S1;
步骤S3:地址冲突判断;
用于对当前请求进行地址冲突判断;即比较当前请求的地址和目录中尚未完成一致性处理的所有请求地址,如果有相同地址,则视为有地址冲突,登记地址冲突信息,处理回到步骤S1;如果没有相同地址,处理进入步骤S4;
步骤S4:写入目录;
将当前请求的请求类型、地址信息记录在目录条目中,并根据当前数据块所记录的副本状态,以产生二次请求、访存请求、响应、末级缓存LLC访问的有效位;
步骤S5:二次请求判断;
用于判断当前请求是否需要向处理器发送二次请求进行局部一致性处理,如果需要进行局部一致性处理,则进入步骤S6,如果不需要进行局部一致性处理,则进入步骤S8;
步骤S6:二次请求发送;
用于对目录中的二次请求有效位进行快照处理,将有效二次请求发送到对应处理器;
步骤S7:接收回答;
用于对处理器返回的回答进行缓存并处理,回答接收完成后,修改目录中对应的状态位;
步骤S8:请求类型判断;
用于判断当前请求类型是一次请求或监听请求,如果请求类型为一次请求,则进入步骤S9,如果请求类型为监听请求,则进入步骤S12;
步骤S9:访存请求判断;
用于判断当前请求是否需要访问主存,如果需要访问主存,则进入步骤S10,如果不需要访问主存,则进入步骤S12;
步骤S10:访存请求;
用于对目录中的访存请求有效位进行快照处理,将访存请求发送到互联网络以转发到Home;
步骤S11:访存响应;
用于对Home返回的访存响应进行缓存并处理,访存响应接收完成后,修改目录中对应状态位;
步骤S12:LLC访问判断;
用于判断当前请求是否需要访问末级缓存LLC,如果需要访问末级缓存LLC,则进入步骤S13,如果不需要访问LLC,则进入步骤S14;
步骤S13:LLC访问;
用于处理当前请求对LLC的读写请求,并将访存结果返回目录;
步骤S14:请求类型判断;
用于判断当前请求类型是一次请求或监听请求,如果请求类型为一次请求,则进入步骤S16,如果请求类型为监听请求,则进入步骤S15;
步骤S15:监听回答;
用于对目录中的监听回答发送有效位进行快照处理,将监听回答发送到互联网络以转发给到Home;
步骤S16:响应发送;
用于对目录中的响应发送有效位进行快照处理,将响应发送到一次请求对应的处理器。
本发明还提供了一种基于监听-目录两层协议方式的CC-NUMA系统,采用如上述所述的基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,包括:片上互联网络NoC、多个局部处理节点Local、全局处理节点Home以及内存;所述片上互联网络NoC分别与所述局部处理节点Local、全局处理节点Home相连,所述全局处理节点Home与内存相连;所述局部处理节点Local的节点内采用目录协议,所述全局处理节点Home和所述局部处理节点Local的节点间采用监听协议。
优选的,每个所述局部处理节点Local包括多个处理器P、一致性处理部件CPM和共享的末级缓存LLC;其中每个所述处理器P包括私有Cache;
所述局部处理节点Local,负责多个处理器P和共享的末级缓存LLC之间的一致性;负责接收处理器P发送的一次请求、产生二次请求、收集回答、向处理器返回响应;对局部处理节点Local完成不了的一次请求,产生访存请求发送到网络;
所述全局处理节点Home,负责节点间一致性维护,保证共享的末级缓存LLC和内存的一致性;负责接收局部处理节点Local的访存请求、产生内存访问、产生监听请求、回收监听回答、返回访存响应。
优选的所述一致性处理部件CPM是基于目录的一致性处理协议,包括:目录、一次请求队列、监听请求队列、一致性处理流水线、二次请求队列、回答队列、响应请求队列以及访存请求队列。
优选的,还包括:
进入一致性处理流水线前的一次请求在一次请求队列中进行缓冲、排序;进入一致性处理流水线前的监听请求在监听请求队列中进行缓冲、排序和去相关性;
一致性处理流水线,负责控制一次请求和监听请求的仲裁和事务处理,进入一致性流水线的一次请求查询目录进行地址冲突判断,无冲突的一次请求可退出一次请求队列写入目录;进入一致性处理流水线的二次请求查询目录进行地址冲突判断,无地址冲突的监听请求可退出监听请求队列写入目录;
写入目录的请求按照目录状态和一致性协议产生发往处理器的二次请求、LLC访问请求、发往网络的访存请求、返回处理器的响应,这些请求分别由二次请求队列、LLC、访存请求队列、响应请求队列进行快照处理;处理器P对每一个二次请求都会返回一个回答,存入回答队列;Home对每一个访存请求都会返回一个访存响应,存入访存响应队列;CPM对每一个监听请求都会产生一个监听回答,存入监听回答队列;对于一次请求,每一个回答或访存响应都会引起一个末级缓存LLC访问或响应;对于监听请求,每一个回答都会引起一个LLC访问或监听回答。
本发明与现有技术相比,具有如下有益效果:
1、本发明所采用的局部Cache一致性的处理方法,采用目录管理每个请求的一致性处理流程,不过多占用流水线对请求的处理时间,请求写入目录后,流水线即可处理下一个请求。
2、在本发明处理方法中,由一次请求或监听请求派生请求的发送,采用快照发送方式,不需要在写入目录前进行二次请求队列、访存队列、响应队列资源的判断,减少了资源冲突,快照处理不需要寄存请求内容、实现简单、减少硬件资源开销。
附图说明
图1是监听-目录两层协议方式的CC-NUMA系统结构示意图。
图2是本发明提供的一种局部一致性处理部件结构示意图。
图3是根据本发明实施例的一次请求或监听请求一致性处理流程图。
具体实施方式
以下结合附图和具体实施例对本发明作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
如图1所示,该系统由片上互联网络(NoC:Network On Chip)连接所有节点组成。局部处理节点Local的节点内采用目录协议,全局处理节点Home和局部处理节点Local的节点间采用监听协议。每个局部处理节点(Local)包括多个处理器,每个处理器都包括私有Cache,节点内还包括一致性处部件(CPM:Coherent Process Module)和共享的末级缓存(LLC:Last Level Cache)。NoC上还包括一个全局处理节点(Home),Home与内存相连。Local负责多个处理器和LLC之间的一致性,负责接收处理器(P)发送的一次请求、产生二次请求、收集回答、向处理器返回响应;对Local完成不了的一次请求,产生访存请求发送到网络。Home负责节点间一致性维护,保证LLC和内存的一致性,负责接收Local的访存请求、产生内存访问、产生监听请求、回收监听回答、返回访存响应。
如图2所示,根据本发明实施例的局部Cache一致性协议处理部件是基于目录1的一致性处理协议,目录1是处理器私有Cache中所有数据块的分布与状态的副本,是对所有一次请求或监听请求进行一致性处理的依据。进入一致性处理流水线4前的一次请求在一次请求队列2中进行缓冲、排序。进入一致性处理流水线4前的监听请求在监听请求队列3中进行缓冲、排序和去相关性。一致性处理流水线4负责控制一次请求和监听请求的仲裁和事务处理,进入一致性流水线4的一次请求查询目录1进行地址冲突判断,无冲突的一次请求可退出一次请求队列2写入目录1;进入一致性处理流水线4的二次请求查询目录1进行地址冲突判断,无地址冲突的监听请求可退出监听请求队列3写入目录1。目录1除了记录私有Cache中所有数据块的分布与状态副本,还负责记录一次请求或监听请求的执行状态、管理请求的一致性处理流程,写入目录1的请求按照目录状态和一致性协议可能产生发往处理器的二次请求、LLC访问请求、发往网络的访存请求、返回处理器的响应,这些请求分别由二次请求队列5、LLC11、访存请求队列8、响应请求队列7进行快照处理。处理器对每一个二次请求都会返回一个回答,存入回答队列6。Home对每一个访存请求都会返回一个访存响应,存入访存响应队列10。CPM对每一个监听请求都会产生一个监听回答,存入监听回答队列9。对于一次请求,每一个回答或访存响应都会引起一个LLC访问或响应。对于监听请求,每一个回答都会引起一个LLC访问或监听回答。
在根据本发明实施例的局部Cache一致性处理方法中,对每个一次请求进行上流水线仲裁判断、地址冲突判断、写入目录、二次请求判断、访存请求判断、LLC访问判断。对每一个监听请求进行上流水线仲裁、地址冲突判断、写入目录、二次请求判断、LLC访问判断。
在上流水线仲裁判断中,对一次请求和监听请求进行轮转仲裁,仲裁成功的请求可以进入流水线,不成功的请求等待下一次仲裁。
在地址冲突判断中,流水线访问目录1,与目录1中记录的所有数据快副本内容的地址进行比较,如果有相同的地址且为未完成状态的目录条目则记录地址冲突信息,并使该一次请求等待下一次仲裁。
在写入目录中,将对应请求的请求类型、地址信息等记录在目录条目中,根据当前数据块所记录的副本状态,以产生可能的二次请求、访存请求、响应、LLC访问的有效位。
在二次请求判断中,根据目录中记录的二次请求有效位,所有目录条目生成二次请求有效位向量,向二次请求队列5申请快照发送二次请求。
在访存请求判断中,根据目录中记录的访存请求有效位,所有目录条目生成访存请求有效位向量,向访存请求队列8申请快照发送访存请求。
在LLC访问判断中,根据目录中记录的LLC访问有效位,所有目录条目生成LLC访问有效位向量,由LLC进行快照发送LLC访问请求。
仲裁成功且没有地址冲突的请求写入目录1后,可从请求队列中释放,新的请求可进行上流水线仲裁。写入目录的请求,由目录条目管理一致性处理流程,每个目录条目单独管理。
仲裁不成功的请求在请求队列中等待下一次仲裁,发生地址冲突的请求在请求队列中记录地址冲突信息,当目录中记录的发生地址冲突的请求处理完成时,所述请求队列中的冲突请求可解除冲突重新进行上流水线仲裁。
所述二次请求判断、访存请求判断、LLC访问判断中的快照发送,即对目录生成的请求有效向量位进行快照处理。首先对当前有效位向量进行寄存,当前有效位向量中存在目录1时则进入快照处理流程,对寄存的向量找出第一个为目录1的目录条目,访问目录读取请求内容发送到目标;其次,每处理完一个快照请求,要清除快照寄存器中对应的有效位以及目录条目中该请求对应的有效位;最后,当快照寄存器中所有为目录1的请求都处理完成后,重新拍照进入下一次快照处理。采用快照管理请求的发送,不需要在请求发送队列中寄存请求所需的内容,可以减少请求发送队列的面积和功耗,同时在一次请求或监听请求进入流水线也不需要进行资源判断,只要无地址冲突即可写入目录。
如图3所示,根据本发明实施例的局部Cache一致性处理方法包括:
一次请求或监听请求等待处理步骤S1,此时一次请求或监听请求等待处理,当二者存在有效请求时可进入仲裁流程步骤S2;
一次请求或监听请求仲裁判断步骤S2,用于对一次请求、监听请求进行轮转仲裁,如果仲裁成功可进入地址冲突判断步骤S3,如果仲裁不成功处理回到步骤S1;
地址冲突判断步骤S3,用于对当前请求进行地址冲突判断;即比较当前请求的地址和目录1中尚未完成一致性处理的所有请求地址,如果有相同地址则视为有地址冲突,登记地址冲突信息,处理回到步骤S1;如果没有相同地址,处理进入写入目录步骤S4;
写入目录步骤S4,将当前请求的请求类型、地址信息等记录在目录条目中,并根据当前数据块所记录的副本状态,以产生可能的二次请求、访存请求、响应、LLC访问的有效位;
二次请求判断步骤S5,用于判断当前请求是否需要向处理器发送二次请求进行局部一致性处理,如果需要进行局部一致性处理则进入二次请求发送步骤S6,如果不需要进行局部一致性处理则进入请求类型判断步骤S8;
二次请求发送步骤S6,用于对目录中的二次请求有效位进行快照处理,将有效二次请求发送到对应处理器;
接收回答步骤S7,用于对处理器返回的回答进行缓存并处理,回答接收完成后,修改目录中对应的状态位;
请求类型判断S8,用于判断当前请求类型是一次请求或监听请求,如果请求类型为一次请求则进入访存判断步骤S9,如果请求类型为监听请求则进入LLC访问判断步骤S12;
访存请求判断S9,用于判断当前请求是否需要访问主存,如果需要访问主存则进入访存请求发送步骤S10,如果不需要访问主存则进入LLC访问判断步骤S12;
访存请求步骤S10,用于对目录中的访存请求有效位进行快照处理,将访存请求发送到互联网络以转发到Home;
访存响应步骤S11,用于对Home返回的访存响应进行缓存并处理,访存响应接收完成后,修改目录中对应状态位;
LLC访问判断步骤S12,用于判断当前请求是否需要访问LLC,如果需要访问LLC则进入LLC访问步骤S13,如果不需要访问LLC则进入请求类型判断步骤S14;
LLC访问步骤S13,用于处理当前请求对LLC的读写请求,并将访存结果返回目录;
请求类型判断S14,用于判断当前请求类型是一次请求或监听请求,如果请求类型为一次请求则进入访存响应步骤S16,如果请求类型为监听请求则进入监听回答判断步骤S15;
监听回答步骤S15,用于对目录中的监听回答发送有效位进行快照处理,将监听回答发送到互联网络以转发给到Home。
响应发送步骤S16,用于对目录中的响应发送有效位进行快照处理,将响应发送到一次请求对应的处理器。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。
Claims (9)
1.一种基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,其特征在于,包括:
局部Cache一致性处理部件CPM接收来自处理器P的一次请求和全局处理节点Home节点的监听请求;
一次请求和监听请求轮转仲裁上一致性处理流水线并进行地址冲突判断,无地址冲突的请求直接写入目录;
写入目录的请求,依据目录中存储的数据块副本状态和拥有者情况,对一次请求或监听请求进行局部一致性处理;
由目录管理一次请求或监听请求所派生的二次请求、访存请求、末级缓存LLC访问请求和响应;
对每一个一次请求要返回给处理器P一个响应,对每一个监听请求要返回给全局处理节点Home一个监听回答;
对每一个写入目录的一次请求,执行二次请求、访存请求、末级缓存LLC访问请求和响应的发送判断;如果需要则由目录生成快照发送向量,分别由对应的二次请求队列、访存请求队列、末级缓存LLC、响应队列执行快照发送。
2.如权利要求1所述的基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,其特征在于,针对每一个一次请求或监听请求的一致性处理流程进行地址冲突判断;其中,在地址冲突判断中,比较一次请求或监听请求的地址与目录中尚处于一致性处理状态中的所有请求地址;如果相同,则视为存在地址冲突,登记地址冲突信息,并使所述一次请求或监听请求等待下一次仲裁上流水线。
3.如权利要求2所述的基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,其特征在于,在一次请求或监听请求队列中记录地址冲突信息,并检测目录中与所述一次请求或监听请求地址冲突中的请求执行状态,当发生地址冲突的请求完成后,所述一次请求或监听请求可重新申请上一致性处理流水线。
4.如权利要求3所述的基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,其特征在于,对每一个写入目录操作的一次请求或监听请求,可从一次请求队列或监听请求队列中释放。
5.如权利要求4所述的基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,其特征在于,该方法具体包括如下步骤:
步骤S1:等待处理;
此时一次请求或监听请求等待处理,当二者存在有效请求时可进入步骤S2;
步骤S2:仲裁判断;
用于对一次请求、监听请求进行轮转仲裁,如果仲裁成功可进入地址冲突判断步骤S3,如果仲裁不成功,处理回到步骤S1;
步骤S3:地址冲突判断;
用于对当前请求进行地址冲突判断;即比较当前请求的地址和目录中尚未完成一致性处理的所有请求地址,如果有相同地址,则视为有地址冲突,登记地址冲突信息,处理回到步骤S1;如果没有相同地址,处理进入步骤S4;
步骤S4:写入目录;
将当前请求的请求类型、地址信息记录在目录条目中,并根据当前数据块所记录的副本状态,以产生二次请求、访存请求、响应、末级缓存LLC访问的有效位;
步骤S5:二次请求判断;
用于判断当前请求是否需要向处理器P发送二次请求进行局部一致性处理,如果需要进行局部一致性处理,则进入步骤S6,如果不需要进行局部一致性处理,则进入步骤S8;
步骤S6:二次请求发送;
用于对目录中的二次请求有效位进行快照处理,将有效二次请求发送到对应处理器P;
步骤S7:接收回答;
用于对处理器P返回的回答进行缓存并处理,回答接收完成后,修改目录中对应的状态位;
步骤S8:请求类型判断;
用于判断当前请求类型是一次请求或监听请求,如果请求类型为一次请求,则进入步骤S9,如果请求类型为监听请求,则进入步骤S12;
步骤S9:访存请求判断;
用于判断当前请求是否需要访问主存,如果需要访问主存,则进入步骤S10,如果不需要访问主存,则进入步骤S12;
步骤S10:访存请求;
用于对目录中的访存请求有效位进行快照处理,将访存请求发送到片上互联网络NoC以转发到全局处理节点Home;
步骤S11:访存响应;
用于对全局处理节点Home返回的访存响应进行缓存并处理,访存响应接收完成后,修改目录中对应状态位;
步骤S12:末级缓存LLC访问判断;
用于判断当前请求是否需要访问末级缓存LLC,如果需要访问末级缓存LLC,则进入步骤S13,如果不需要访问末级缓存LLC,则进入步骤S14;
步骤S13:末级缓存LLC访问;
用于处理当前请求对末级缓存LLC的读写请求,并将访存结果返回目录;
步骤S14:请求类型判断;
用于判断当前请求类型是一次请求或监听请求,如果请求类型为一次请求,则进入步骤S16,如果请求类型为监听请求,则进入步骤S15;
步骤S15:监听回答;
用于对目录中的监听回答发送有效位进行快照处理,将监听回答发送到片上互联网络NoC以转发给到全局处理节点Home;
步骤S16:响应发送;
用于对目录中的响应发送有效位进行快照处理,将响应发送到一次请求对应的处理器P。
6.一种基于监听-目录两层协议方式的CC-NUMA系统,采用如权利要求1-5任一项所述的基于监听-目录两层协议的CC-NUMA系统中局部Cache一致性处理方法,其特征在于,包括:片上互联网络NoC、多个局部处理节点Local、全局处理节点Home以及内存;所述片上互联网络NoC分别与所述局部处理节点Local、全局处理节点Home相连,所述全局处理节点Home与内存相连;所述局部处理节点Local的节点内采用目录协议,所述全局处理节点Home和所述局部处理节点Local的节点间采用监听协议。
7.如权利要求6所述的一种基于监听-目录两层协议方式的CC-NUMA系统,其特征在于,每个所述局部处理节点Local包括多个处理器P、一致性处理部件CPM和共享的末级缓存LLC;其中每个所述处理器P包括私有Cache;
所述局部处理节点Local,负责多个处理器P和共享的末级缓存LLC之间的一致性;负责接收处理器P发送的一次请求、产生二次请求、收集回答、向处理器P返回响应;对局部处理节点Local完成不了的一次请求,产生访存请求发送到片上互联网络NoC;
所述全局处理节点Home,负责节点间一致性维护,保证共享的末级缓存LLC和内存的一致性;负责接收局部处理节点Local的访存请求、产生内存访问、产生监听请求、回收监听回答、返回访存响应。
8.如权利要求7所述的一种基于监听-目录两层协议方式的CC-NUMA系统,其特征在于,所述一致性处理部件CPM是基于目录的一致性处理协议,包括:目录、一次请求队列、监听请求队列、一致性处理流水线、二次请求队列、回答队列、响应请求队列以及访存请求队列。
9.如权利要求8所述的一种基于监听-目录两层协议方式的CC-NUMA系统,其特征在于,还包括:
进入一致性处理流水线前的一次请求在一次请求队列中进行缓冲、排序;进入一致性处理流水线前的监听请求在监听请求队列中进行缓冲、排序和去相关性;
一致性处理流水线,负责控制一次请求和监听请求的仲裁和事务处理,进入一致性流水线的一次请求查询目录进行地址冲突判断,无冲突的一次请求可退出一次请求队列写入目录;进入一致性处理流水线的二次请求查询目录进行地址冲突判断,无地址冲突的监听请求可退出监听请求队列写入目录;
写入目录的请求按照目录状态和一致性协议产生发往处理器P的二次请求、末级缓存LLC访问请求、发往片上互联网络NoC的访存请求、返回处理器P的响应,这些请求分别由二次请求队列、末级缓存LLC、访存请求队列、响应请求队列进行快照处理;处理器P对每一个二次请求都会返回一个回答,存入回答队列;全局处理节点Home对每一个访存请求都会返回一个访存响应,存入访存响应队列;一致性处理部件CPM对每一个监听请求都会产生一个监听回答,存入监听回答队列;对于一次请求,每一个回答或访存响应都会引起一个末级缓存LLC访问或响应;对于监听请求,每一个回答都会引起一个末级缓存LLC访问或监听回答。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219599.3A CN116962259B (zh) | 2023-09-21 | 2023-09-21 | 一种基于监听-目录两层协议的一致性处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311219599.3A CN116962259B (zh) | 2023-09-21 | 2023-09-21 | 一种基于监听-目录两层协议的一致性处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116962259A CN116962259A (zh) | 2023-10-27 |
CN116962259B true CN116962259B (zh) | 2024-02-13 |
Family
ID=88460470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311219599.3A Active CN116962259B (zh) | 2023-09-21 | 2023-09-21 | 一种基于监听-目录两层协议的一致性处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116962259B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887138A (en) * | 1996-07-01 | 1999-03-23 | Sun Microsystems, Inc. | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes |
US5983326A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode |
KR20010076773A (ko) * | 2000-01-28 | 2001-08-16 | 오길록 | 캐시부착식 비균등분포적 메모리접근형병렬컴퓨터시스템의 캐시일관성을 유지하기 위한버스스누핑장치 및 방법 |
CN101470669A (zh) * | 2007-12-28 | 2009-07-01 | 无锡江南计算技术研究所 | 多缓存数据一致性的处理方法及主存处理机 |
CN102880584A (zh) * | 2012-09-04 | 2013-01-16 | 中国人民解放军国防科学技术大学 | 一种多核处理器cas/swap原子操作实现方法 |
CN102880537A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种Cache一致性协议软件模拟验证方法 |
CN103049422A (zh) * | 2012-12-17 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点系统构建方法 |
CN105700953A (zh) * | 2014-11-26 | 2016-06-22 | 杭州华为数字技术有限公司 | 一种多处理器缓存一致性处理方法及装置 |
CN107368435A (zh) * | 2017-07-19 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 |
CN116126517A (zh) * | 2022-12-13 | 2023-05-16 | 海光信息技术股份有限公司 | 访问请求处理方法、多核处理器系统、芯片及电子设备 |
CN116737459A (zh) * | 2023-06-19 | 2023-09-12 | 江苏华创微系统有限公司 | 紧耦合一致性总线的三级cache机制的实现方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6631448B2 (en) * | 1998-03-12 | 2003-10-07 | Fujitsu Limited | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol |
US20020053004A1 (en) * | 1999-11-19 | 2002-05-02 | Fong Pong | Asynchronous cache coherence architecture in a shared memory multiprocessor with point-to-point links |
JP4848771B2 (ja) * | 2006-01-04 | 2011-12-28 | 株式会社日立製作所 | キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム |
US8656115B2 (en) * | 2010-08-20 | 2014-02-18 | Intel Corporation | Extending a cache coherency snoop broadcast protocol with directory information |
CN107341114B (zh) * | 2016-04-29 | 2021-06-01 | 华为技术有限公司 | 一种目录管理的方法、节点控制器和系统 |
US11169921B2 (en) * | 2019-05-09 | 2021-11-09 | Hewlett Packard Enterprise Development Lp | Ternary content addressable memory-enhanced cache coherency acceleration |
-
2023
- 2023-09-21 CN CN202311219599.3A patent/CN116962259B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5887138A (en) * | 1996-07-01 | 1999-03-23 | Sun Microsystems, Inc. | Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes |
US5983326A (en) * | 1996-07-01 | 1999-11-09 | Sun Microsystems, Inc. | Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode |
KR20010076773A (ko) * | 2000-01-28 | 2001-08-16 | 오길록 | 캐시부착식 비균등분포적 메모리접근형병렬컴퓨터시스템의 캐시일관성을 유지하기 위한버스스누핑장치 및 방법 |
CN101470669A (zh) * | 2007-12-28 | 2009-07-01 | 无锡江南计算技术研究所 | 多缓存数据一致性的处理方法及主存处理机 |
CN102880584A (zh) * | 2012-09-04 | 2013-01-16 | 中国人民解放军国防科学技术大学 | 一种多核处理器cas/swap原子操作实现方法 |
CN102880537A (zh) * | 2012-09-07 | 2013-01-16 | 浪潮电子信息产业股份有限公司 | 一种Cache一致性协议软件模拟验证方法 |
CN103049422A (zh) * | 2012-12-17 | 2013-04-17 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点系统构建方法 |
CN105700953A (zh) * | 2014-11-26 | 2016-06-22 | 杭州华为数字技术有限公司 | 一种多处理器缓存一致性处理方法及装置 |
CN107368435A (zh) * | 2017-07-19 | 2017-11-21 | 郑州云海信息技术有限公司 | 一种精简目录及利用该精简目录实现Cache一致性监听的方法 |
CN116126517A (zh) * | 2022-12-13 | 2023-05-16 | 海光信息技术股份有限公司 | 访问请求处理方法、多核处理器系统、芯片及电子设备 |
CN116737459A (zh) * | 2023-06-19 | 2023-09-12 | 江苏华创微系统有限公司 | 紧耦合一致性总线的三级cache机制的实现方法 |
Non-Patent Citations (8)
Title |
---|
A GPDMA-based Distributed Shared I/O Solution for CC-NUMA System;Qiong Li等;2008 The 9th International Conference for Young Computer Scientists;全文 * |
Automotive Multi-Chip System with Cache Coherent Interconnect for Pipelined Parallel Applications;Daecheol You等;2023 IEEE International Conference on Consumer Electronics (ICCE);全文 * |
CC-NUMA系统中一种块传输通讯机制的设计与实现;张峻等;计算机工程与科学;全文 * |
Daecheol You.Automotive Multi-Chip System with Cache Coherent Interconnect for Pipelined Parallel Applications.2023 IEEE International Conference on Consumer Electronics (ICCE).2023,全文. * |
John Chapin.Memory system performance of UNIX on CC-NUMA multiprocessors.Proceedings of the 1995 ACM SIGMETRICS joint international conference on Measurement and modeling of computer systems.1995,全文. * |
Memory system performance of UNIX on CC-NUMA multiprocessors;John Chapin等;Proceedings of the 1995 ACM SIGMETRICS joint international conference on Measurement and modeling of computer systems;全文 * |
Qiong Li.A GPDMA-based Distributed Shared I/O Solution for CC-NUMA System.2008 The 9th International Conference for Young Computer Scientists.2008,全文. * |
多处理器高速缓存一致性分析与评价;刘妍等;科技信息(科学教研);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116962259A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
CN101088076B (zh) | 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 | |
RU2220444C2 (ru) | Компьютерная система и способ передачи данных в компьютерной системе | |
JP3849951B2 (ja) | 主記憶共有型マルチプロセッサ | |
US6918012B2 (en) | Streamlined cache coherency protocol system and method for a multiple processor single chip device | |
KR100194253B1 (ko) | 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템 | |
US8015365B2 (en) | Reducing back invalidation transactions from a snoop filter | |
JP4169914B2 (ja) | データ転送方法、コンピュータ・プログラム、データ転送システムおよびデータ処理システム | |
US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
US7856535B2 (en) | Adaptive snoop-and-forward mechanisms for multiprocessor systems | |
US20050144399A1 (en) | Multiprocessor system, and consistency control device and consistency control method in multiprocessor system | |
TW200534110A (en) | A method for supporting improved burst transfers on a coherent bus | |
CN101354682A (zh) | 一种用于解决多处理器访问目录冲突的装置和方法 | |
JPH10320282A (ja) | 仮想キャッシュ・コントロール方法及び装置 | |
US6647469B1 (en) | Using read current transactions for improved performance in directory-based coherent I/O systems | |
US7779210B2 (en) | Avoiding snoop response dependency | |
CN100530141C (zh) | 用于互连网络上高效的有序储存的方法和装置 | |
US6035376A (en) | System and method for changing the states of directory-based caches and memories from read/write to read-only | |
CN116962259B (zh) | 一种基于监听-目录两层协议的一致性处理方法及系统 | |
US6990516B2 (en) | Distributed shared memory system and data-maintenance method of same | |
US5895496A (en) | System for an method of efficiently controlling memory accesses in a multiprocessor computer system | |
JP2001109662A (ja) | キャッシュ装置及び制御方法 | |
US8051251B2 (en) | Method and apparatus for setting status of cache memory | |
US20210397560A1 (en) | Cache stashing system | |
US7120758B2 (en) | Technique for improving processor performance |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |