CN107678854A - 一种解决计算机缓存一致性冲突的方法 - Google Patents
一种解决计算机缓存一致性冲突的方法 Download PDFInfo
- Publication number
- CN107678854A CN107678854A CN201710773960.5A CN201710773960A CN107678854A CN 107678854 A CN107678854 A CN 107678854A CN 201710773960 A CN201710773960 A CN 201710773960A CN 107678854 A CN107678854 A CN 107678854A
- Authority
- CN
- China
- Prior art keywords
- conflict
- read
- message
- read command
- main memory
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例提供了一种解决计算机缓存一致性冲突的方法,包括步骤:CPU内核读命令端向读主存管理端发出读命令,并记录所发命令;读主存管理端根据数据位置信息产生监听或读取主存数据;CPU内核读命令端根据记录所发出命令及收到报文产生相应动作;读主存管理端收到冲突响应报文后返回冲突响应转发报文;读命令端根据收到冲突响应转发报文与完成报文顺序判断早晚冲突;读主存管理端收到相应完成读命令。本发明的实施例在早冲突时,减少了CPU内核读命令端产生的冗余报文;在晚冲突时,CPU内核不必再向读内存管理端获取冲突类型,加快了读命令完成,使协议更高效。
Description
技术领域
本发明涉及计算机领域。
背景技术
在计算机领域,CPU的内核速率越来越快,且向多核发展,多核CPU访问一致性主存时,需要保证任何一个CPU核读到主存数据必须是最新的数据。如果数据都保证在主存或CPU核中,总线协议层比较简单,但有可能数据在送到CPU内核的路上,此种情况就是cache一致性的冲突,冲突分为早冲突,晚冲突。
早冲突是指CPU发出的读请求主存端还没有完成,此时CPU收到监听产生的冲突响应(rspcnflt)为早冲突。在早冲突中,CPU收到响应后,如果发生了冲突则发送冲突确认(ackcnflt)报文,通知主存管理端数据收到了,但由于是早冲突,主存管理端不需要此CPU的数据,所以早冲突存在冗余的冲突确认报文。晚冲突是指CPU发出的读请求主存端已经完成,但完成的数据还没有到达CPU,此时CPU收到监听产生的冲突响应为晚冲突。
在现有技术中,CPU内核在发生冲突时并不知道是早冲突还是晚冲突,只是向主存管理端发送冲突响应,主存端在收到冲突响应来决定是早冲突与晚冲突,CPU内核只有等到收到数据后再发送冲突确认报文来让主存端通过不同报文告诉CPU内核是否发送CPU内核数据。在早冲突情况下,主存管理端在收到冲突响应后认为数据不在CPU内核中;在晚冲突情况下,主存端在收到冲突响应后认为数据在CPU内核中,等待CPU内核最新数据。
现有技术中存在问题主要是在发生早冲突时有冗余的报文产生;在发生晚冲突时,CPU内核在得到最新数据后还要发送冲突确认报文来通知主存管理端,主存管理端收到此报文后向CPU内核再次发送监听报文(snp),使CPU内核最新数据发送到主存管理端,协议不高效。因此在发生早冲突时,如何删除冗余报文,在发生晚冲突时,如何提高协议效率成为一个问题。
发明内容
本发明为解决上述技术问题。为此,本发明提供一种解决计算机缓存一致性冲突的方法,它具有在早冲突时,减少了CPU内核命令端产生的冗余报文,在晚冲突时,加快读命令、协议高效的优点。
为了实现上述目的,本发明采用如下技术方案。
一种解决计算机缓存一致性冲突的方法,包含以下步骤:
CPU内核读命令端向读主存管理端发出读命令,并记录所发命令;
读主存管理端收到命令,根据数据位置信息记录的最新的数据位置确定是否发送监听报文到CPU内核读命令端;如数据在内存中,则直接从内存中读取数据;如数据在CPU中,则发送监听报文到CPU;如数据在主存中,进行读取,发送完成报文(cmp)到CPU内核读命令端。
CPU内核读命令端如果收到完成报文,则此读命令完成;如果收到监听报文与读命令端未完成的读请求地址相同,则需要返回冲突响应报文;如果没有相同地址读请求且没有最新的数据,则返回无效响应(response invalue, rspi);如果没有相同地址读请求但有最新的数据,则返回数据响应(response data, rspdata)。
读主存管理端收到冲突响应报文后,直接发送冲突响应转发(rspcnflt_forward)报文到CPU内核读命令端;
CPU内核读命令端收到的同一信道中冲突响应转发报文与完成报文的先后顺序,发送不同响应到读主存管理端,如果为早冲突,发送无效响应,如果为晚冲突,发送数据响应;
读主存管理端收到无效响应或数据响应,监听响应报文,发送完成报文到读命令端。
本发明的实施例中,决定cache一致性冲突判断由主存管理端变为读内存命令管理端;主存管理端在收到冲突响应报文后,无条件立即返回冲突响应转发报文;冲突响应转发报文与主存管理端返回给读内存命令管理端的完成报文必须在同一个信道,以保证报文保序。读内存命令管理端通过这两种报文顺序来决定早冲突、晚冲突。
本发明的实施例在在早冲突时,减少了cpu内核读命令端产生的冗余报文;在晚冲突时,cpu内核不必再向读内存管理端获取冲突类型,加快了读命令完成,使协议更高效。
附图说明
图1是本实施例的流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
实施例
如图1所示,一种解决计算机缓存一致性冲突的方法,包括步骤:
S01、CPU内核读命令端向读主存管理端发出读命令,并记录所发命令;
S02、读主存管理端根据数据位置信息产生监听或读取主存数据。
读主存管理端收到命令,根据数据位置信息记录的最新的数据位置确定是否发送监听报文到CPU内核读命令端;如数据在内存中,则直接从内存中读取数据;如数据在CPU中,则发送监听报文到CPU;如数据在主存中,进行读取,发送完成报文(cmp)到CPU内核读命令端。
S03、CPU内核读命令端根据记录所发出命令及收到报文产生相应动作
CPU内核读命令端如果收到完成报文,则此读命令完成;如果收到监听报文与读命令端未完成的读请求地址相同,则需要返回冲突响应报文;如果没有相同地址读请求且没有最新的数据,则返回无效响应(response invalue, rspi);如果没有相同地址读请求但有最新的数据,则返回数据响应(response data, rspdata)。
S04、读主存管理端收到冲突响应报文后返回冲突响应转发报文。
读主存管理端收到冲突响应报文后,直接发送冲突响应转发(rspcnflt_forward)报文到CPU内核读命令端;
S05、读命令端根据收到冲突响应转发报文与完成报文顺序判断早晚冲突。
CPU内核读命令端收到的同一信道中冲突响应转发报文与完成报文的先后顺序,发送不同响应到读主存管理端,如果为早冲突,发送无效响应,如果为晚冲突,发送数据响应;
S06、读主存管理端收到相应完成读命令。
读主存管理端收到无效响应或数据响应,监听响应报文,发送完成报文到读命令端。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (6)
1.一种解决计算机缓存一致性冲突的方法,其特征在于,包括步骤:
S01、CPU内核读命令端向读主存管理端发出读命令,并记录所发命令;
S02、读主存管理端根据数据位置信息产生监听或读取主存数据;
S03、CPU内核读命令端根据记录所发出命令及收到报文产生相应动作
S04、读主存管理端收到冲突响应报文后返回冲突响应转发报文;
S05、读命令端根据收到冲突响应转发报文与完成报文顺序判断早晚冲突;
S06、读主存管理端收到相应完成读命令。
2.如权利要求1所述的解决计算机缓存一致性冲突的方法,其特征在于,所述步骤S02是,读主存管理端收到命令,根据数据位置信息记录的最新的数据位置确定是否发送监听报文到CPU内核读命令端;如数据在内存中,则直接从内存中读取数据;如数据在CPU中,则发送监听报文到CPU;如数据在主存中,进行读取,发送完成报文到CPU内核读命令端。
3.如权利要求1所述的解决计算机缓存一致性冲突的方法,其特征在于,所述步骤S03是,CPU内核读命令端如果收到完成报文,则此读命令完成;如果收到监听报文与读命令端未完成的读请求地址相同,则需要返回冲突响应报文;如果没有相同地址读请求且没有最新的数据,则返回无效响应;如果没有相同地址读请求但有最新的数据,则返回数据响应。
4.如权利要求1所述的解决计算机缓存一致性冲突的方法,其特征在于,所述步骤S04是,读主存管理端收到冲突响应报文后,直接发送冲突响应转发报文到CPU内核读命令端。
5.如权利要求1所述的解决计算机缓存一致性冲突的方法,其特征在于,所述步骤S05是,CPU内核读命令端收到的同一信道中冲突响应转发报文与完成报文的先后顺序,发送不同响应到读主存管理端,如果为早冲突,发送无效响应,如果为晚冲突,发送数据响应。
6.如权利要求1所述的解决计算机缓存一致性冲突的方法,其特征在于,所述步骤S06是,读主存管理端收到无效响应或数据响应,监听响应报文,发送完成报文到读命令端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710773960.5A CN107678854A (zh) | 2017-08-31 | 2017-08-31 | 一种解决计算机缓存一致性冲突的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710773960.5A CN107678854A (zh) | 2017-08-31 | 2017-08-31 | 一种解决计算机缓存一致性冲突的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107678854A true CN107678854A (zh) | 2018-02-09 |
Family
ID=61134841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710773960.5A Pending CN107678854A (zh) | 2017-08-31 | 2017-08-31 | 一种解决计算机缓存一致性冲突的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107678854A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100116A1 (zh) * | 2020-11-13 | 2022-05-19 | 华为技术有限公司 | 一种保序执行写请求的方法及网络设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN102446159A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 多核处理器的数据管理方法及装置 |
US8266386B2 (en) * | 2007-10-30 | 2012-09-11 | International Business Machines Corporation | Structure for maintaining memory data integrity in a processor integrated circuit using cache coherency protocols |
CN102662885A (zh) * | 2012-04-01 | 2012-09-12 | 天津国芯科技有限公司 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
CN104380269A (zh) * | 2012-10-22 | 2015-02-25 | 英特尔公司 | 高性能互连相干协议 |
-
2017
- 2017-08-31 CN CN201710773960.5A patent/CN107678854A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8266386B2 (en) * | 2007-10-30 | 2012-09-11 | International Business Machines Corporation | Structure for maintaining memory data integrity in a processor integrated circuit using cache coherency protocols |
CN102446159A (zh) * | 2010-10-12 | 2012-05-09 | 无锡江南计算技术研究所 | 多核处理器的数据管理方法及装置 |
CN102346714A (zh) * | 2011-10-09 | 2012-02-08 | 西安交通大学 | 用于多核处理器的一致性维护装置及一致性交互方法 |
CN102662885A (zh) * | 2012-04-01 | 2012-09-12 | 天津国芯科技有限公司 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
CN104380269A (zh) * | 2012-10-22 | 2015-02-25 | 英特尔公司 | 高性能互连相干协议 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022100116A1 (zh) * | 2020-11-13 | 2022-05-19 | 华为技术有限公司 | 一种保序执行写请求的方法及网络设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI605346B (zh) | 運用目錄資訊而延伸快取一致性窺探廣播協定之技術 | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
US8762651B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
US8423736B2 (en) | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer | |
CN108989432B (zh) | 用户态的文件发送方法、文件接收方法和文件收发装置 | |
US9015436B2 (en) | Performing an atomic operation without quiescing an interconnect structure | |
WO2018232736A1 (zh) | 内存访问技术及计算机系统 | |
CN103294612A (zh) | 一种在多级缓存一致性域系统局部域构造Share-F状态的方法 | |
JP4100256B2 (ja) | 通信方法および情報処理装置 | |
TWI624787B (zh) | 用於包括記憶體節點之分散式記憶體系統之裝置及方法 | |
EP3036648B1 (en) | Enhanced data transfer in multi-cpu systems | |
EP2676203B1 (en) | Broadcast protocol for a network of caches | |
CN108415861B (zh) | 用于缓存内容管理的装置和方法 | |
WO2019000423A1 (zh) | 一种数据存储方法及设备 | |
CN104239270A (zh) | 一种高速缓存同步的方法及装置 | |
CN107678854A (zh) | 一种解决计算机缓存一致性冲突的方法 | |
CN110083548B (zh) | 数据处理方法及相关网元、设备、系统 | |
CN114356839B (zh) | 处理写操作的方法、设备、处理器及设备可读存储介质 | |
WO2021082877A1 (zh) | 访问固态硬盘的方法及装置 | |
JP6570873B2 (ja) | マルチプロセッサシステムのメインメモリ対する投機的クエリ | |
CN107688545B (zh) | 高速缓存的一致性状态预置方法及系统 | |
WO2019149031A1 (zh) | 应用于节点系统的数据处理方法及装置 | |
JP2011192053A (ja) | ディスクアレイ装置、ディスクアレイシステム、及びキャッシュ制御方法 | |
US20140325174A1 (en) | Access control apparatus, access control method, and computer program product | |
KR20190116326A (ko) | 일관적 인터커넥트 시스템에서의 판독 트랜잭션 추적기 수명 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180209 |