CN105718242A - 多核dsp中支持软硬件数据一致性的处理方法及系统 - Google Patents
多核dsp中支持软硬件数据一致性的处理方法及系统 Download PDFInfo
- Publication number
- CN105718242A CN105718242A CN201610030455.7A CN201610030455A CN105718242A CN 105718242 A CN105718242 A CN 105718242A CN 201610030455 A CN201610030455 A CN 201610030455A CN 105718242 A CN105718242 A CN 105718242A
- Authority
- CN
- China
- Prior art keywords
- hardware
- request
- coherence
- llc
- address
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 18
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 230000008901 benefit Effects 0.000 abstract description 8
- 230000007246 mechanism Effects 0.000 description 20
- 241000288673 Chiroptera Species 0.000 description 2
- 101150015860 MC1R gene Proteins 0.000 description 2
- 102100034216 Melanocyte-stimulating hormone receptor Human genes 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 241001643084 Cyrtanthus elatus virus A Species 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
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
本发明提供一种多核DSP中支持软硬件数据一致性的处理方法与系统,其中处理方法包括:在DSP结构中增加ABR,ABR的内容和多个L1DC通过多级寄存器的直连;在L1DC中增加JSL,JSL根据ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给LLC;在LLC中建立MCP,根据预先设置的请求命令的处理规则,对MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理。本发明实施例通过在DSP结构中增加ABR、在L1DC中增加JSL以及在LLC中建立MCP,实现在多核DSP中在软件数据一致性和硬件数据一致性之间灵活切换,兼具两种方案优点,具有硬件开销小,用户使用方便的特点。
Description
技术领域
本发明实施例涉及DSP体系结构技术领域,尤其涉及一种多核DSP中支持软硬件数据一致性的处理方法与系统。
背景技术
从数字信号处理(DigitalSignalProcessing,简称DSP)体系结构的发展历史和应用场景来看,一般认为,DSP在用户易用性和可编程性方面的要求要略微弱于CPU,在高功效性方面的要求要强于CPU。当前,DSP已经进入多核时代,尽管和传统的多核CPU一样,多核DSP一般通过多级缓存(Cache)机制来缓解存储墙问题,但是在是否采用CPU中的监听、目录等完整的硬件数据一致性机制方面,不同的DSP厂商还存在分歧。
一方面,以德州仪器为代表的传统DSP厂商采用的是软件管理的数据一致性机制,这种机制和传统DSP中需要程序员负责数据的搬移、摆放,从而提高访存的精确性和效率的方法是一脉相承的。在该机制中,DSP硬件仅支持少量的支持区间可配置的Cache写回、无效等操作,调用的时机和如何配置则交给了程序员。这种机制既避免了硬件数据一致性机制的复杂的面积时序开销,又使得程序员能够在核间的数据需要共享时进行精确的管理,提高访存效率。然而,该机制一个明显的缺陷是增加了程序员的工作量。
另一方面,以Tensilica、CEVA等为代表的新兴DSP厂商在多核DSP设计中则采用了硬件数据一致性机制。在这种方案中,数据的一致性由硬件自动维护,程序员不需要过多参与多核之间数据的生产消费过程。然而,由于程序员无法精确控制数据的生产消费的过程,在一些情况下会造成效率的降低。如在不需要数据共享的区域,DSP依然会按照硬件机制本身进行查询并发送侦听请求等操作,这将会带来效率方面的损失。此外,由于硬件机制是按照Cache行的粒度进行数据一致性维护的,天然适合少量数据多次共享的情况,在大批量数据集中共享的情形下,包含过多的查询、侦听等请求的硬件数据一致性机制和程序员主动管理的方案(软件数据一致性机制)相比也会有效率方面的损失。
目前存在的两种多核DSP数据一致性机制各有利弊,尚缺乏一种数据一致性机制能够在两种方案中灵活切换、兼具两种方案优点的多核DSP存储通路的技术解决方案。
发明内容
本发明提供的一种多核DSP中支持软硬件数据一致性的处理方法与系统,可以实现在根据数据共享的程度而选择在软件数据一致性和硬件数据一致性之间灵活切换,兼具两种方案优点。
本发明提供的一种多核DSP中支持软硬件数据一致性的处理方法包括:
在多核数字信号处理器DSP结构中增加地址范围寄存器组ABR,所述ABR的内容和多个一级数据缓存L1DC通过多级寄存器的直连;
在所述L1DC中增加判断/发送逻辑JSL,所述JSL根据所述ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给最后一级缓存LLC;
在所述LLC中建立一致性流水线MCP,根据预先设置的请求命令的处理规则,对所述MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理。
在上述方案的基础上,进一步地,所述ABR包括:
硬件一致性基地址寄存器HCBAR;
硬件一致性字长度寄存器HCWCR;
硬件一致性区域使能寄存器HCRER;
其中所述HCBAR和HCWCR的宽度H等于系统的地址总线的位宽,所述HCRER的有效位为1位,其它为保留位;
用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位。
在上述方案的基础上,进一步地,所述用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位包括:
第一步,写寄存器HCBAR,写入的内容表示采用硬件一致性管理的空间的起始地址;
第二步,写寄存器HCWCR,写入的内容表示采用硬件一致性管理的空间的长度;
第三步,将寄存器HCRER的最低位写1;
其中,
空间的起始地址要和LLC的缓存长度的边界对齐,硬件一致性字长度是LLC的缓存行包含字数的整倍数;
定义VHCRER为HCRER寄存器的内容,则当VHCRER的最低位为1时,VHCRER到VHCRER+4*VHCRER的空间为采用硬件一致性协议管理的地址空间。
在上述方案的基础上,进一步地,所述当前请求或替换请求的属性信息包括:地址、命中和缺失信息。
在上述方案的基础上,进一步地,在软件一致性协议管理和硬件一致性协议管理之间的转换处理方法,包括:
第一步,将包含被转换的地址区域的所有的L1DC的缓存行写回并无效;
第二步,将包含被转换的地址区域的所有的LLC的缓存行写回并无效;
第三步,设置ASR寄存器,设置新的采用硬件或者软件一致性协议的地址区间。
本发明还提供一种多核DSP中支持软硬件数据一致性的系统,包括:
各DSP内核内的一级数据缓存L1DC中设置判断/发送逻辑JSL,用于根据所述ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给最后一级缓存LLC;
地址范围寄存器组ABR,所述ABR的内容和多个一级数据缓存L1DC通过多级寄存器的直连;
最后一级缓存LLC,在所述LLC中设置一致性流水线MCP,用于根据预先设置的请求命令的处理规则,对所述MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理;
外部存储器控制器,与所述LLC连接;
在上述技术方案的基础上,进一步地,所述ABR包括:
硬件一致性基地址寄存器HCBAR;
硬件一致性字长度寄存器HCWCR;
硬件一致性区域使能寄存器HCRER;
其中所述HCBAR和HCWCR的宽度H等于系统的地址总线的位宽,所述HCRER的有效位为1位,其它为保留位;
用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位。
本发明实施例提供的一种多核DSP中支持软硬件数据一致性的处理方法与系统具有以下优点:
(1)兼具软件数据一致性方案和硬件数据一致性方案的优点,使用本发明程序员既可以将不需要共享或需要少量共享的数据设置为采用软件数据一致性协议管理,提高数据访问效率,又可以将需要多次共享的变量采用硬件一致性协议管理,由硬件自动维护数据的一致性,减少自己的编程工作量。
(2)硬件开销小。本发明提出的机制,相对于传统的采用硬件一致性协议的机制,增加的硬件不多,对时序、面积和功耗的影响都比较小。
(3)用户使用方便。本发明提供的控制寄存器使得用户可以灵活地设置采用硬件一致性协议地址区间,本发明提供了地址区间在采用软件一致性方案和硬件一致性方案转换时的流程。用户使用和切换时均比较灵活方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。
图1为本发明多核DSP中支持软硬件数据一致性的处理方法的实施例的流程图;
图2是地址范围寄存器组ABR示意图;
图3为本发明多核DSP中支持软硬件数据一致性的处理系统的实施例架构图;
图4为图3中L1DC的判断/发送逻辑处理读写请求执行流程图;
图5为图3中L1DC的判断/发送逻辑处理行替换请求的流程图;
图6为图3中LLC的混合一致性流水线(MCP)的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
图1为本发明多核DSP中支持软硬件数据一致性的处理方法的实施例一的流程图,如图1所示,该方法包括:
步骤101、在多核数字信号处理器DSP结构中增加地址范围寄存器组(AddressBoundRegisters,简称ABR),所述ABR的内容和多个一级数据缓存(Level1DataCache,简称L1DC)通过多级寄存器的直连;
本步骤中,具体实施时,所述ABR可以包括:
硬件一致性基地址寄存器(HardwareCoherenceBaseAddressRegister,简称HCBAR);硬件一致性字长度寄存器(HardwareCoherenceWordCounterRegister,简称HCWCR);硬件一致性区域使能寄存器(HardwareCoherenceRangeEnableRegister,简称HCRER);
图2是地址范围寄存器组ABR示意图,如图2所示,其中所述HCBAR和HCWCR的宽度H等于系统的地址总线的位宽,所述HCRER的有效位为1位,其它为保留位;用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位,具体可以包括:
第一步,写寄存器HCBAR,写入的内容表示采用硬件一致性管理的空间的起始地址;
第二步,写寄存器HCWCR,写入的内容表示采用硬件一致性管理的空间的长度;
第三步,将寄存器HCRER的最低位写1;
其中,空间的起始地址要和LLC的缓存长度的边界对齐,硬件一致性字长度是LLC的缓存行包含字数的整倍数;假设定义VHCRER为HCRER寄存器的内容,则当VHCRER的最低位为1时,VHCRER到VHCRER+4*VHCRER的空间为采用硬件一致性协议管理的地址空间。
步骤102、在所述L1DC中增加判断/发送逻辑(JudgingandSendingLogic,简称JSL),所述JSL根据所述ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给最后一级缓存(LastLevelCache,简称LLC);
本步骤中,所述ABR的内容、当前请求或替换请求的属性信息可以包括:请求的地址信息、命中信息和缺失信息。具体地,JSL主要负责将访存请求和L1DC的Cache行替换请求进行分流,并进行相应的处理。
在L1DC中根据请求类型、请求是否命中、请求访问的数据块是否落入硬件一致性(HardwareCoherence,简称HC)区域以及数据块是否为脏,对请求进行相应的处理,详细处理方式如表1所示。
表1L1DC中请求处理方式
具体地,对于命中L1DC的读请求,直接读取数据并返回给通用寄存器文件;
对于没有命中L1DC,且HC区域的读请求,通过片上网络向LLC发送GetS命令(获取数据并变成共享状态);
对于没有命中L1DC,且没有落在HC区域的读请求,通过片上网络向LLC发送Get命令(获取数据);
对于命中L1DC,落在HC区域,且命中的Cache行为脏的写请求,则向Cache行写入数据;
对于命中L1DC,落在HC区域,且命中的Cache行为干净的写请求,则通过片上网络向LLC发送GetM命令(获取数据并变成独占状态);
对于命中L1DC,没有落在HC区域的写请求,则向Cache行写入数据;
对于没有命中L1DC,落在HC区域的写请求,则通过片上网络向LLC发送GetM命令(获取数据并变成独占状态);
对于没有命中L1DC,没有落在HC区域的写请求,则通过片上网络向LLC发送Get命令(获取数据)。
对于行替换请求,如被替换的行是脏的,且落在HC区域,则通过片上网络向LLC发送PutM+Data命令(写回独占状态的行+数据);如被替换的行是脏的,且不落在HC区域,则通过片上网络向LLC发送Put+Data命令(写回行+数据);如被替换的行是干净的,且落在HC区域,则通过片上网络向LLC发送PutS命令(写回共享状态的行);如被替换的行是干净的,且不落在HC区域,则不进行操作。其中判断请求是否落在HC区域,比较访存地址(写回的Cache行,通过Tag内容和索引地址,构造成访存地址)是否大于等于VHCABR并小于4*VHCWCR,如果是则落在HC区域,否则则不落在HC区域。
步骤103、在所述LLC中建立一致性流水线MCP,根据预先设置的请求命令的处理规则,对所述MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理,本步骤如表2所示。
表2LLC中流水线关键站对请求的处理方式
具体地,MCP为LLC中统一处理硬件一致性或软件一致性混合请求的流水线。在TagRead站检查当前的请求如果是PutData或Get请求,则读Tag体和状态位;如果是PutM+Data,PutS,GetS或GetM请求,则既需要读Tag体和状态位,也需要读目录。在TagCompare站,如果请求不命中,则将请求发向缺失状态处理寄存器(MissStatushandlingRegisters,简称MSHR)表中。如果请求命中则要对请求进行不同的处理,也就是预先设置的请求命令的处理规则,比如PutData或Get请求可直接进入下一站进行数据体访问即可(PutData请求写入数据体;Get请求从数据体读出数据);而对于PutM+Data、PutS、Gets或GetM请求则需要进入状态机进行处理,根据目录的信息,执行一拍或多拍。
本发明提供了地址空间从采用软件一致性协议管理到采用硬件一致性协议转换(或者反之)的处理流程:
第一步,将包含被转换的地址区域的所有的L1DC的Cache行写回并无效;
第二步,将包含被转换的地址区域的所有的LLC的Cache行写回并无效;
第三步,设置ASR寄存器,设置新的采用硬件或者软件一致性协议的地址区间。
上述技术方案具有如下的优点:第一:兼具软件数据一致性方案和硬件数据一致性方案的优点。使用本发明程序员既可以将不需要共享或需要少量共享的数据设置为采用软件数据一致性协议管理,提高数据访问效率,又可以将需要多次共享的变量采用硬件一致性协议管理,由硬件自动维护数据的一致性,减少自己的编程工作量;第二:硬件开销小,本发明提出的机制,相对于传统的采用硬件一致性协议的机制,增加的硬件不多,对时序、面积和功耗的影响都比较小。第三:用户使用方便,本发明提供的控制寄存器使得用户可以灵活地设置采用硬件一致性协议地址区间,本发明提供了地址区间在采用软件一致性方案和硬件一致性方案转换时的流程。用户使用和切换时均比较灵活方便。
本发明还提供一种多核DSP中支持软硬件数据一致性的系统,图3为本发明多核DSP中支持软硬件数据一致性的处理系统的实施例架构图。为了方便描述,以下假设多核DSP包含两级缓存Cache,采用硬件一致性协议采用目录机制,目录存放在LLC中,采用MSI(Modify-Share-Invalid)协议,L1DC采用读分配、写分配策略,采用写回法。具体如图3所示,该系统包括:
各DSP内核内的一级数据缓存L1DC中设置判断/发送逻辑JSL,用于根据所述ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给最后一级缓存LLC;地址范围寄存器组ABR,所述ABR的内容和多个一级数据缓存L1DC通过多级寄存器的直连;最后一级缓存LLC,在所述LLC中设置混合一致性流水线MCP,用于根据预先设置的请求命令的处理规则,对所述MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理;外部存储器控制器,与所述LLC连接;
图3是典型多核DSP的结构,多个DSPCore通过片上网络连接在一起。每个DSPCore内部的L1DC同样通过片上网络和分布式的多个LLC相连,LLC和外部存储器控制器连接。同步单元和片上网络相连,从而为系统提供锁、栅栏等基本的硬件同步功能。
图4为L1DC中的判断/发送逻辑处理读写请求执行流程图,该系统具体工作时可以如图4所示,包括:
4.1判断当前读写L1DC的请求是否为读请求,是则转入4.2,否则为写请求,跳入4.5;
4.2根据读出的Tag体和有效位,与当前请求的地址进行比对,判断是否命中,是则转入4.3,否则跳入4.4;
4.3读L1DC存储体中读取数据并返回给寄存器文件,完成更新LRU位等后续处理,完毕;
4.4比较当前请求地址和ABR寄存器的内容,判断当前请求是否在采用硬件一致性管理的区间内,是则发送GetS命令,否则发送Get命令,完毕;
4.5根据读出的Tag体和有效位,与当前请求的地址进行比对,判断是否命中,是则转入4.6,否则跳入4.9;
4.6比较当前请求地址和ABR寄存器的内容,判断当前请求是否在采用硬件一致性管理的区间内,是则转入4.7,否则转入4.8;
4.7判断当前行是否为脏行,是则转入4.8,否则转入4.10;
4.8写入数据到数据体,完成更新LRU位、脏位设置等后续处理,完毕;
4.9比较当前请求地址和ABR寄存器的内容,判断当前请求是否在采用硬件一致性管理的区间内,是则转入4.10,否则发送Get命令,完毕;
4.10发送GetM命令,执行完毕。
图5为L1DC中的判断/发送逻辑处理行替换请求的流程图,具体如下:
5.1判断被替换行是否为脏,是则转入5.2,否则转入5.3;
5.2将被替换行的Tag和索引地址组合并扩展成全局地址,并和ABR寄存器的内容比较,判断被替换行是否在采用硬件一致性管理的区间内,是则发送PutM+Data命令,否则发送PutData命令,完毕;
5.3将被替换行的Tag和索引地址组合并扩展成全局地址,并和ABR寄存器的内容比较,判断被替换行是否在采用硬件一致性管理的区间内,是则发送PutS命令,否则不进行操作,执行完毕。
图6是LLC中的混合一致性流水线(MCP)的结构示意图。尽管不同的LLC访问流水线均略有不同,但一般都可以包含读Tag(TagRead)、比较Tag(TagCompare)和访问数据体(DataAccess)这些环节。图6给出了MCP在这些栈的核心处理逻辑。其中:
PutData和Get为来自于L1DC中的采用软件一致性协议管理的地址区间的请求命令,将其定义为第1类请求;
PutM+Data、PutS、GetS和GetM为来自于L1DC中的采用硬件一致性协议管理的地址区间的请求命令,将其定义为第2类请求。
在TagRead栈第1、2类请求均需要读取Tag体及状态位,第2类请求还需要读取目录。在TagCompare栈,如果请求不命中,则将请求发向缺失状态处理寄存器(MissStatushandlingRegisters,简称MSHR)表中。如果请求命中则要对请求进行不同的处理。第1类请求可直接进入下一站进行数据体访问即可(PutData请求写入数据体;Get请求从数据体读出数据);而对于第2类请求则需要进入状态机进行处理,根据目录的信息,执行一拍或多拍。具体地,可以将请求在状态机的操作分为三类。第一类操作直接发出访问数据体请求,一拍完成;第二类操作由于需要等待拥有最新数据拷贝的L1DC返回数据,多拍才能完成;第三类操作由于需要等待所有拥有数据拷贝L1DC的无效应答请求返回,多拍才能完成。
本发明实施例在典型的多核DSP结构中增加了地址范围寄存器组(ABR),ABR的内容和多个L1DC通过多级寄存器的方法直连。本发明在L1DC增加了判断/发送逻辑(JSL),JSL根据ABR的内容、当前请求或替换请求的地址、以及命中和缺失情况,产生不同的请求命令经过片上网络发送给LLC。在LLC中实现了混合一致性流水线(MCP),对传统的硬件一致性访存流水线进行了该在,从而能够对来自L1DC的不同类型的命令进行相应的处理。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (7)
1.一种多核DSP中支持软硬件数据一致性的处理方法,其特征在于,包括:
在多核数字信号处理器DSP结构中增加地址范围寄存器组ABR,所述ABR的内容和多个一级数据缓存L1DC通过多级寄存器的直连;
在所述L1DC中增加判断/发送逻辑JSL,所述JSL根据所述ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给最后一级缓存LLC;
在所述LLC中建立混合一致性流水线MCP,根据预先设置的请求命令的处理规则,对所述MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理。
2.根据权利要求1所述的多核DSP中支持软硬件数据一致性的处理方法,其特征在于,所述ABR包括:
硬件一致性基地址寄存器HCBAR;
硬件一致性字长度寄存器HCWCR;
硬件一致性区域使能寄存器HCRER;
其中所述HCBAR和HCWCR的宽度H等于系统的地址总线的位宽,所述HCRER的有效位为1位,其它为保留位;
用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位。
3.根据权利要求2所述的多核DSP中支持软硬件数据一致性的处理方法,其特征在于,所述用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位包括:
第一步,写寄存器HCBAR,写入的内容表示采用硬件一致性管理的空间的起始地址;
第二步,写寄存器HCWCR,写入的内容表示采用硬件一致性管理的空间的长度;
第三步,将寄存器HCRER的最低位写1;
其中,
空间的起始地址要和LLC的缓存长度的边界对齐,硬件一致性字长度是LLC的缓存行包含字数的整倍数;
定义VHCRER为HCRER寄存器的内容,则当VHCRER的最低位为1时,VHCRER到VHCRER+4*VHCRER的空间为采用硬件一致性协议管理的地址空间。
4.根据权利要求1所述的多核DSP中支持软硬件数据一致性的处理方法,其特征在于,所述当前请求或替换请求的属性信息包括:地址、命中和缺失信息。
5.根据权利要求1所述的多核DSP中支持软硬件数据一致性的处理方法,其特征在于,在软件一致性协议管理和硬件一致性协议管理之间的转换处理方法,包括:
第一步,将包含被转换的地址区域的所有的L1DC的缓存行写回并无效;
第二步,将包含被转换的地址区域的所有的LLC的缓存行写回并无效;
第三步,设置ASR寄存器,设置新的采用硬件或者软件一致性协议的地址区间。
6.一种多核DSP中支持软硬件数据一致性的系统,其特征在于,包括:
各DSP内核内的一级数据缓存L1DC中设置判断/发送逻辑JSL,用于根据所述ABR的内容、当前请求或替换请求的属性信息,生成不同的请求命令经过片上网络分流发送给最后一级缓存LLC;
地址范围寄存器组ABR,所述ABR的内容和多个一级数据缓存L1DC通过多级寄存器的直连;
最后一级缓存LLC,在所述LLC中设置混合一致性流水线MCP,用于根据预先设置的请求命令的处理规则,对所述MCP中对接收到的分流过来的不同请求命令进行处理以选择采用软件一致性协议管理或者采用硬件一致性协议管理;
外部存储器控制器,与所述LLC连接。
7.根据权利要求6所述的多核DSP中支持软硬件数据一致性的系统,其特征在于,所述ABR包括:
硬件一致性基地址寄存器HCBAR;
硬件一致性字长度寄存器HCWCR;
硬件一致性区域使能寄存器HCRER;
其中所述HCBAR和HCWCR的宽度H等于系统的地址总线的位宽,所述HCRER的有效位为1位,其它为保留位;
用户通过配置总线配置上述三个寄存器设置采用硬件一致性管理的空间的起始地址、长度和使能位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610030455.7A CN105718242B (zh) | 2016-01-15 | 2016-01-15 | 多核dsp中支持软硬件数据一致性的处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610030455.7A CN105718242B (zh) | 2016-01-15 | 2016-01-15 | 多核dsp中支持软硬件数据一致性的处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105718242A true CN105718242A (zh) | 2016-06-29 |
CN105718242B CN105718242B (zh) | 2018-08-17 |
Family
ID=56147852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610030455.7A Active CN105718242B (zh) | 2016-01-15 | 2016-01-15 | 多核dsp中支持软硬件数据一致性的处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105718242B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201939A (zh) * | 2016-06-30 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 面向gpdsp架构的多核目录一致性装置 |
CN108037953A (zh) * | 2017-12-11 | 2018-05-15 | 上海齐网网络科技有限公司 | 一种基于流水线的块浮点模式下的dsp内部架构 |
CN110727464A (zh) * | 2019-09-11 | 2020-01-24 | 无锡江南计算技术研究所 | 一种针对访存空间独立的多核处理器的信息处理方法 |
US20220035742A1 (en) | 2020-07-31 | 2022-02-03 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
CN114217809A (zh) * | 2021-04-14 | 2022-03-22 | 无锡江南计算技术研究所 | 一种无横向一致性的众核精简Cache协议实现方法 |
US11573898B2 (en) | 2020-08-17 | 2023-02-07 | Hewlett Packard Enterprise Development Lp | System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999035581A1 (en) * | 1998-01-07 | 1999-07-15 | Fujitsu Limited | Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system |
US6032228A (en) * | 1997-11-26 | 2000-02-29 | International Business Machines Corporation | Flexible cache-coherency mechanism |
CN102662885A (zh) * | 2012-04-01 | 2012-09-12 | 天津国芯科技有限公司 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
CN103279428A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 一种显式的面向流应用的多核Cache一致性主动管理方法 |
CN103714039A (zh) * | 2013-12-25 | 2014-04-09 | 中国人民解放军国防科学技术大学 | 通用计算数字信号处理器 |
CN103890737A (zh) * | 2011-10-07 | 2014-06-25 | 惠普发展公司,有限责任合伙企业 | 映射持久存储器 |
-
2016
- 2016-01-15 CN CN201610030455.7A patent/CN105718242B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032228A (en) * | 1997-11-26 | 2000-02-29 | International Business Machines Corporation | Flexible cache-coherency mechanism |
WO1999035581A1 (en) * | 1998-01-07 | 1999-07-15 | Fujitsu Limited | Cache coherence unit with integrated message passing and memory protection for a distributed, shared memory multiprocessor system |
CN103890737A (zh) * | 2011-10-07 | 2014-06-25 | 惠普发展公司,有限责任合伙企业 | 映射持久存储器 |
CN102662885A (zh) * | 2012-04-01 | 2012-09-12 | 天津国芯科技有限公司 | 对称式多核处理器维护二级缓存一致性的装置及其方法 |
CN103279428A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 一种显式的面向流应用的多核Cache一致性主动管理方法 |
CN103714039A (zh) * | 2013-12-25 | 2014-04-09 | 中国人民解放军国防科学技术大学 | 通用计算数字信号处理器 |
Non-Patent Citations (2)
Title |
---|
H.CHTIOUI: "A Dynamic Hybrid Cache Coherency Protocol for Shared-Memory MPSoC Architectures", 《INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS》 * |
杜鹏: "一种面向多核DSP的一级数据Cache的设计与实现", 《第十八届计算机工程与工艺年会暨第四届微处理器技术论坛论文集》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201939A (zh) * | 2016-06-30 | 2016-12-07 | 中国人民解放军国防科学技术大学 | 面向gpdsp架构的多核目录一致性装置 |
CN106201939B (zh) * | 2016-06-30 | 2019-04-05 | 中国人民解放军国防科学技术大学 | 面向gpdsp架构的多核目录一致性装置 |
CN108037953A (zh) * | 2017-12-11 | 2018-05-15 | 上海齐网网络科技有限公司 | 一种基于流水线的块浮点模式下的dsp内部架构 |
CN110727464A (zh) * | 2019-09-11 | 2020-01-24 | 无锡江南计算技术研究所 | 一种针对访存空间独立的多核处理器的信息处理方法 |
US20220035742A1 (en) | 2020-07-31 | 2022-02-03 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
US11714755B2 (en) | 2020-07-31 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
US11573898B2 (en) | 2020-08-17 | 2023-02-07 | Hewlett Packard Enterprise Development Lp | System and method for facilitating hybrid hardware-managed and software-managed cache coherency for distributed computing |
CN114217809A (zh) * | 2021-04-14 | 2022-03-22 | 无锡江南计算技术研究所 | 一种无横向一致性的众核精简Cache协议实现方法 |
CN114217809B (zh) * | 2021-04-14 | 2024-04-30 | 无锡江南计算技术研究所 | 一种无横向一致性的众核精简Cache协议实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105718242B (zh) | 2018-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105718242A (zh) | 多核dsp中支持软硬件数据一致性的处理方法及系统 | |
US5692149A (en) | Block replacement method in cache only memory architecture multiprocessor | |
CN100375067C (zh) | 异构多核微处理器局部空间共享存储方法 | |
JP3849951B2 (ja) | 主記憶共有型マルチプロセッサ | |
US6976131B2 (en) | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system | |
US7076609B2 (en) | Cache sharing for a chip multiprocessor or multiprocessing system | |
US20090006756A1 (en) | Cache memory having configurable associativity | |
US6170070B1 (en) | Test method of cache memory of multiprocessor system | |
JP3281893B2 (ja) | キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム | |
US6963953B2 (en) | Cache device controlling a state of a corresponding cache memory according to a predetermined protocol | |
CN103744799A (zh) | 一种内存数据访问方法、装置和系统 | |
US7685373B2 (en) | Selective snooping by snoop masters to locate updated data | |
EP3534265A1 (en) | Memory access technique | |
KR20050011152A (ko) | 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법 | |
KR20160099722A (ko) | 캐시-코히어런시를 갖춘 집적 회로들 | |
US6038642A (en) | Method and system for assigning cache memory utilization within a symmetric multiprocessor data-processing system | |
US5893163A (en) | Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system | |
KR101695845B1 (ko) | 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치 | |
US20140297961A1 (en) | Selective cache fills in response to write misses | |
US6928522B2 (en) | Unbalanced inclusive tags | |
US20020129210A1 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls | |
US6658536B1 (en) | Cache-coherency protocol with recently read state for extending cache horizontally | |
US7073004B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor network | |
Gharachorloo et al. | Efficient ECC-Based Directory Implementations for Scalable Multiprocessors | |
JPH052534A (ja) | 階層キヤツシユ・メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |