CN106201939A - 面向gpdsp架构的多核目录一致性装置 - Google Patents
面向gpdsp架构的多核目录一致性装置 Download PDFInfo
- Publication number
- CN106201939A CN106201939A CN201610503703.5A CN201610503703A CN106201939A CN 106201939 A CN106201939 A CN 106201939A CN 201610503703 A CN201610503703 A CN 201610503703A CN 106201939 A CN106201939 A CN 106201939A
- Authority
- CN
- China
- Prior art keywords
- request
- data
- final stage
- catalogue
- cache
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
- G06F2213/2806—Space or buffer allocation for DMA transfers
Landscapes
- Engineering & Computer Science (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
一种面向GPDSP架构的多核目录一致性装置,包括:内核,包含DMA和L1D,L1D为一级数据Cache;所述DMA用来完成外设和内核间数据的搬运;所述L1D包括有Normal Deal和Monitor Deal两个并行处理单元,所述Normal Deal处理单元完成load、store指令的处理,所述Monitor Deal处理单元用来响应任意时刻抵达的监听请求,且处理过程不受Normal Deal处理单元的影响;片上末级Cache,分布式的接在片上互连网络上;片外存储DDR,数据缓存在L1D和片上末级Cache中;片上互连网络,用来接收网络请求,接收到网络请求后会首先进行译码处理,译码出目的节点和目的设备后将请求发向对应的位置。本发明具有原理简单、操作方便、灵活性高、适用范围广等优点。
Description
技术领域
本发明主要涉及到处理器微体系结构设计领域,特指一种适合通用数字信号处理器(General-Purpose Digital Signal Processor,GPDSP)多核存储通路的设计。
背景技术
作为处理器领域的三驾马车(CPU、DSP和GPU)之一,DSP以其高性能功耗比、良好的可编程性、低功耗等优点,被广泛地应用于嵌入式***中。区别于CPU,DSP具有以下特点:1)计算能力强,关注实施计算胜于关注控制和事物处理;2)对于典型的信号处理有专门的硬件支持,如乘加运算、循环寻址等;3)嵌入式微处理器的共性特征,如地址和指令通路不多于32位;非精确中断;短期离线调试、长期在线驻留运行的程序工作方式(而非通用CPU调试即运行的方法);4)集成外设接口以快速外设为主,特别利于在线收发AD/DA信号,也支持DSP间高速直连。
鉴于DSP的高性能功耗比和强大的计算能力,如何对传统的DSP体系结构加以升级和改进使之适用于高性能科学计算,是目前国内外的研究热点。
如中国专利申请(通用计算数字信号处理器,申请号:201310725118.6)中提出了一种既保持DSP的基本特征和高性能低功耗的优势,又能高效支持通用科学计算的多核微处理器GPDSP。该结构具有如下特征:1)具有双精度浮点和64位定点数据的直接表示,通用寄存器、数据总线、指令位宽64位及以上,地址总线宽度40位及以上;2)CPU与DSP异构多核紧密耦合,CPU核支持完整操作***,DSP核的标量单元支持操作***微核;3)考虑CPU核、DSP核及DSP核内向量阵列结构的统一编程模式;4)保持它机交叉仿真调试,同时提供本地CPU宿主调试模式;5)保留除位数之外的普通DSP的基本特征。
又如中国专利申请(GPDSP多层次协同与共享的存储装置级访存方法,申请号:20150135194.0)针对GPDSP的应用需求,提出了多层次协同和功效的存储架构。每个DSP核包含全局编址的、且对程序员可编程的本地大容量标量、向量阵列存储器,多个DSP核通过片上网络共享大容量片上全局Cache;通过直接存储器访问控制器(DMA)和片上网络提供高带宽的核间、核内存储器与全局Cache的数据阐述,实现了单核内、多核间数据访问的协同和共享。
在GPDSP中,核内的片上存储器和DMA后台搬移机制被保留,这将对数据一致性的实现带来难度。在中国专利申请(一种显式的面向流应用的多核Cache一致性主动管理方法,申请号:201310166383.5)中采用了软件可编程的数据一致性管理方法,将维护数据一致性的工作交给了程序员,需要程序员主动管理维护数据的生产消费过程的正确性。如果在GPDSP中采用硬件管理硬件一致性协议,将能够减轻程序员的编程复杂度,进而提高GPDSP的通用性。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的问题,本发明提供一种原理简单、操作方便、灵活性高、适用范围广的面向GPDSP架构的多核目录一致性装置。
为解决上述技术问题,本发明采用以下技术方案:
一种面向GPDSP架构的多核目录一致性装置,包括:
内核,包含DMA和L1D,L1D为一级数据Cache;所述DMA用来完成外设和内核间数据的搬运;所述L1D包括有Normal Deal和Monitor Deal两个并行处理单元,所述Normal Deal处理单元完成load、store指令的处理,所述Monitor Deal处理单元用来响应任意时刻抵达的监听请求,且处理过程不受Normal Deal处理单元的影响;
片上末级Cache,分布式的接在片上互连网络上;
片外存储DDR,它的数据会缓存在L1D和片上末级Cache中;
片上互连网络,用来接收网络请求,接收到网络请求后会首先进行译码处理,译码出目的节点和目的设备后将请求发向对应的位置。
作为本发明的进一步改进:所述片上末级Cache内分为若干个体,每个所述体均由输入缓冲单元IBUF、流水线单元PipeLine、输出缓冲单元OBUF以及返回环网处理逻辑单元Rtn NAC组成;所述输入缓冲单元用来负责缓存从片上网络进入末级Cache的请求;所述流水线单元用来对来自输入缓冲的访问DDR存储空间请求进行流水化处理;所述输出缓冲单元用来负责缓存末级Cache访问DDR的请求;所述返回环网处理逻辑单元用来负责对多种类型的进入片上网络请求进行仲裁处理。
作为本发明的进一步改进:还包括MSI目录协议单元,用来对L1D发出的请求进行一致性维护;所述MSI目录协议单元由M、S、I三个目录状态组成;M状态表示数据被某个DSPCore独占且数据为脏;S状态表示数据被一个或多个DSP Core共享且数据为干净;I状态表示所有的DSP Core都没有数据拷贝。
作为本发明的进一步改进:还包括目录控制器,所述目录控制器在协议层次上判断方案的正确性,用来完成对单个请求在不同目录状态下的处理、多个相关请求的冲突处理以及处于目录“中间态”的数据块对相关请求的响应处理;所述目录控制器分为两类,一类放置在L1D中,另一类放置在片上末级Cache中,目录操作在L1D和片上末级Cache中进行。
作为本发明的进一步改进:所述片上末级Cache中存放有完全目录的目录结构,所述目录结构为缓存在片上末级Cache中的每一数据块分配目录项;所述目录项包括目录状态和共享列表两部分,所述共享列表为每一个DSP Core分配一位来表示数据是否在对应的DSP Core中存在拷贝。
作为本发明的进一步改进:在所述L1D中采用流水线结构,用以完成指令译码、地址计算、读标记及状态位、判断命中、数据体访问以及数据返回操作的流水过程。
作为本发明的进一步改进:所述L1D的流水线结构分别为DC1、DC2、EX1、EX2、EX3、EX4、EX5;当L1D接收到load、store指令后,首先对其进行两站流水的译码处理,即DC1和DC2,判断指令的操作类型及要实现的功能;指令译码完成后进行地址计算,即EX1,完成功能实现;接着完成读执行3拍,写执行2拍的L1DCache访存流水线,其中读操作流水线在SMAC访存主流水线中处于EX2、EX3、EX4位置,分别是命中缺失判断、访存/缺失处理、访存输出;写操作流水线则处于EX2、EX3位置,分别是缺失判断、访存/缺失处理。
作为本发明的进一步改进:在所述片上末级Cache中使用流水线结构,用以实现读标记及状态位、读目录项、判断命中、监听处理、数据体访问以及数据返回操作的流水过程。
作为本发明的进一步改进:所述片上末级Cache的流水线结构包括:
流水线第一级Req_Arb:与Flush请求进行轮转仲裁,并将仲裁出的请求发向下一级流水;同时,还读取请求数据块的有效位、脏位以及Tag信息;
流水线第二级Tag_Wait:判断是否为目录请求,以及读取目录信息;
流水线第三级Tag_Judge:首先判断请求是否命中,若缺失则再判断是否与MBUF中地址相关;若为相关的缺失请求,则将请求发向MBUF;若为不相关的缺失请求,则将请求发向MBUF和OBUF;命中请求根据是否为目录请求,进行相应的处理;若为非目录请求,则产生访问数据体使能;若为目录请求,则查看目录项信息,根据目录状态以及共享列表的不同请求的处理也不一样;目录请求的处理方式分为三类:第一类直接进行操作,并产生访问数据体使能;第二类等待L1D数据返回,待数据抵达后再产生访问数据体使能;第三类等待Inv-Ack请求,待无效应答全部抵达后再产生访问数据体使能;
流水线第四级Data_Acc:首先判断请求处理数据体的类别;若为读操作,则将请求访问的数据块从数据体读出后锁存一拍;若为写操作,则先对写入数据进行编码,再进行更新数据体操作;进行数据体读操作的请求最后会将读出的数据发向下一级流水;
流水线第五级Data_Dec:对上一级读出的请求数据进行译码操作,并将读返回数据请求发向上环仲裁处理模块进行处理。
与现有技术相比,本发明的优点在于:
1、本发明的面向GPDSP架构的多核目录一致性装置,原理简单、操作方便、灵活性高、适用范围广,除了支持L1D请求的数据一致性维护外,对DMA请求的数据一致性维护同样支持,扩宽了应用领域。
2、本发明的面向GPDSP架构的多核目录一致性装置,采用目录控制器,利用目录控制器机制能在协议层次上判断多核数据一致性方案的正确性,大大缩短了多核目录一致性装置的设计与验证周期。
附图说明
图1是本发明在具体应用实例中结构原理示意图。
图2是本发明在具体应用实例中指令处理原理示意图;其中(a)为指令处理原理图(1),(b)为指令处理原理图(2),(c)为指令处理原理图(3),(d)为一级数据Cache替换处理原理图。
图3是本发明在具体应用实例中DMA处理原理示意图;其中(a)为DMA读请求处理原理图,(b)为DMA写请求处理原理图。
图4是本发明在具体应用实例中末级Cache目录存储体中某一组的目录结构图。
图5是本发明在具体应用实例中L1D流水线整体结构示意图。
图6是本发明在具体应用实例中末级Cache流水线整体结构示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
在具体应用实例中,GPDSP架构包含N个核;GetX请求表示GetS请求或者GetM请求;Fwd-GetX请求表示Fwd-GetS请求或者Fwd-GetM请求;PutX请求表示PutS请求或者PutM+data请求;目录X状态表示目录S状态或者目录M状态;目录Y状态表示目录S状态或者目录I状态。
如图1所示,本发明的面向GPDSP架构的多核目录一致性装置,包括:
内核,包含DMA和一级数据Cache(L1D);其中DMA用来完成外设和内核间数据的搬运,启动前需要程序员的配置。L1D中有Normal Deal和Monitor Deal两个并行处理单元。其中,Normal Deal处理单元完成load、store指令的处理。若指令在L1D中判断缺失,则可能还需进行替换处理;Monitor Deal处理单元可以响应任意时刻抵达的监听请求,且处理过程不受Normal Deal处理单元的影响。
片上末级Cache,分布式的接在片上互连网络上,其可以分为N个体。每个体均由输入缓冲单元(IBUF)、流水线单元(PipeLine)、输出缓冲单元(OBUF)以及返回环网处理逻辑单元(Rtn NAC)组成。其中,输入缓冲单元用来负责缓存从片上网络进入末级Cache的请求;流水线单元用来对来自输入缓冲的访问DDR存储空间请求进行流水化处理;输出缓冲单元用来负责缓存末级Cache访问DDR的请求;返回环网处理逻辑单元用来负责对多种类型的进入片上网络请求进行仲裁处理。
片外存储DDR,也称为主存,其数据会缓存在L1D和末级Cache中。
片上互连网络,用来接收网络请求,接收到网络请求后会首先进行译码处理,译码出目的节点和目的设备后将请求发向对应的位置。除此之外,片上互连网络也能对来自末级Cache的请求进行处理,原理与上一情况类似。所述网络请求为除去本地请求之外的其他请求,而本地请求为末级Cache中每个体对应的核发出的请求。
下表1是所有目录请求的详细描述,其包含了目录操作过程中可能会出现的所有请求类型,以此方便对目录一致性机制进行介绍。
表1
本发明在具体应用过程中,进一步采用扩展的MSI目录协议。首先对基本的目录协议进行详细描述,基本的目录协议只对L1D进行一致性维护。
L1D接收到指令后,会立刻对指令进行操作。根据指令访问的数据块在L1D的缓存及其脏位信息的不同,处理过程也会有所不同。其中,L1D读命中或者脏的写命中情况下,直接对指令进行处理。除此之外的所有情况,L1D都会向末级Cache发送请求来引发下一步的操作。
在具体应用过程中,如图2所示,本发明会根据操作的复杂程度可以分为四类,分别为图(a)、图(b)、图(c)、图(d)所示的情况。
图(a)是指令处理原理图(1)。从图中可以看出,指令在两步内操作完成。根据指令类别的不同,可以分为两种情况。L1D读缺失后,会产生GetS请求并将其发向末级Cache。末级Cache接收到GetS请求后,首先查看目录项。由于目录状态为I或者S,表明最新数据缓存在末级Cache中。因此,末级Cache直接将数据取出并返回给请求源;L1D写缺失后,会产生GetM请求并将其发向末级Cache。末级Cache接收到GetM请求后,首先查看目录项。由于目录状态为I,表明最新数据缓存在末级Cache中。因此,末级Cache直接将数据取出并返回给请求源。
图(b)是指令处理原理图(2)。从图中可以看出,指令在三步内操作完成。根据指令类别的不同,可以分为两种情况。L1D读缺失后,会产生GetS请求并将其发向末级Cache。末级Cache接收到GetS请求后,首先查看目录项。由于目录状态为M,表明最新数据不在末级Cache中。因此,末级Cache会发送Fwd-GetS请求给拥有最新数据拷贝的L1D。该L1D接收到Fwd-GetS请求后,会同时向末级Cache和请求源发送读返回数据请求,并将本地目录变为S状态;L1D写缺失后,会产生GetM请求并将其发向末级Cache。末级Cache接收到GetM请求后,首先查看目录项。由于目录状态为M,表明最新数据不在末级Cache中。因此,末级Cache会发送Fwd-GetM请求给拥有最新数据拷贝的L1D。该L1D接收到Fwd-GetM请求后,只向请求源发送读返回数据请求,并将本地目录变为I状态。
图(c)是指令处理原理图(3)。从图中可以看出,指令在三步内操作完成。根据指令是否命中和数据是否为脏的不同,可以分为两种情况。L1D写缺失后,会产生GetM请求并将其发向末级Cache。末级Cache接收到GetM请求后,首先查看目录项。由于目录状态为S,末级Cache会根据共享列表信息向所有拥有数据拷贝的L1D发送Inv-L请求,同时读出数据并返回给请求者,且携带Ack信号。L1D接收到Inv-L请求后,会作废掉本地数据块,并向请求者发送Inv-Ack请求。写缺失的L1D在接收到数据以及所有的无效应答后,才进行写操作;L1D干净写命中后,也会产生GetM请求。由于其处理原理与写缺失情况一致,这里不再描述。
图(d)是L1D替换处理原理图。从图中可以看出,指令在两步内操作完成。根据数据是否为脏,可以分为两种情况。当替换行为干净时,L1D会向末级Cache发送PutS请求。末级Cache接收到PutS请求后,会更新共享列表信息,若更新后的共享列表为全零,则还需要修改目录状态,使其变为I。操作完成后,末级Cache会向请求者发送Put-Ack请求;当替换行为脏时,L1D会向末级Cache发送PutM+data请求。末级Cache接收到PutM+data请求后,会更新数据体和目录信息。操作完成后,末级Cache会向请求者发送Put-Ack请求。
在DSP中,需要DMA在外设和内核间进行大量的数据搬运操作。若不对DMA进行一致性维护,难免会出现多核数据不一致的问题;若对DMA采用同步单元的软硬件协同机制进行一致性维护,需要程序员实时监控存储空间处理情况,给程序员提出不小的挑战。因此,本发明对基本目录协议进行了协议扩展,使其也支持对DMA请求进行一致性维护操作。DMA通过互连网络直接访问末级Cache。根据访问存储体操作的不同,可以将DMA请求分为两类,分别为图3所示的情况。
图(a)是DMA读请求处理原理图。末级Cache接收到DMA读请求后,会查看目录信息,并根据目录信息的不同做相应的处理。当目录为I、S状态时,由于最新数据在末级Cache中,DMA读请求将数据读出后直接返回给DMA;当目录为M状态时,由于末级Cache没有最新数据,其会向拥有最新拷贝的L1D发送Fwd-Rd请求。该L1D接收到Fwd-Rd请求后,会同时向末级Cache和DMA发送读返回数据请求,并将目录变为S状态。
图(b)是DMA写请求处理原理图。末级Cache接收到DMA写请求后,会查看目录信息,并根据目录信息的不同做相应的处理。当目录为I状态时,由于最新数据在末级Cache中,DMA写请求会更新数据体,并在操作完成后向DMA返回应答信号;当目录为M状态时,由于没有最新数据,末级Cache会向拥有最新拷贝的L1D发送Fwd-Wrt请求。该L1D接收到Fwd-Wrt请求后,只向末级Cache发送读返回数据请求,并作废掉本地数据块。末级Cache接收到最新数据返回后,与DMA写请求携带的数据进行整合,然后再更新数据体和目录信息。操作完成后,末级Cache会向DMA返回应答信号;当目录为S状态时,末级Cache会根据共享列表信息向所有拥有数据拷贝的L1D发送Inv-DE请求。这些L1D接收到Inv-DE请求后,会作废掉本地数据块,并向末级Cache发送Inv-Ack请求。末级Cache接收到所有的无效应答后,才进行写操作,并在操作完成后向DMA返回应答信号。
目录操作具有原子性,但在设计实现过程中会出现很多冲突的情况。例如:在芯片全局角度上,前一个目录请求处理完成前,后一个相关的目录请求抵达时会产生冲突。对于这些冲突情况,本发明使用目录控制器机制予以解决。根据目录控制器所在的位置将其分为两种,分别为L1D目录控制器和末级Cache目录控制器。
下表2.1、2.2、2.3是L1D目录控制器的详细描述。从表中可以看出,数据块目录状态除了M、S、I三个稳定状态外,还存在很多“中间”状态。例如:L1D读缺失至缺失数据返回期间,读请求访问的数据块一直处于ISD状态。处于“中间”状态的数据块可以响应部分相关的监听请求,对于不能响应的监听请求只能进行停顿(stall)处理。这样不仅保证了数据一致性,而且提高了***性能。例如:L1D脏替换后替换行目录状态变为MIA。在末级Cache发送相应的应答信号抵达前,若此L1D接收到一个相关的Fwd-Rd请求,其会立刻响应并在操作结束时将目录状态变为SIA。
表2.1
表2.2
表2.3
本发明设计的目录协议中L1D干净写命中操作较为特殊。正常情况下,请求命中无需向下一级Cache取数据。为了简化目录协议复杂度,将其与L1D写缺失处理归为同一类。
L1D接收到的无效请求分为两种,分别为Inv-L请求和Inv-DE请求。由于本发明设计的目录协议中增加了对DMA的一致性维护,且采用写作废的方式操作。因此,DMA写请求对末级Cache进行操作时,其发给各个拥有数据拷贝L1D的Inv-DE请求应该返回应答信号给末级Cache。而L1D在执行store指令时也可能会引发写作废操作(发送Inv-L请求),但无效应答信号是返回给L1D的。不同种类的无效请求,其应答信号返回的设备是不一样的。因此,本发明对其进行分类。
无效应答(Inv-Ack)请求抵达L1D后会根据情况做相应的处理。若其不是最后一个无效应答请求,则请求对应数据块的目录状态不发生改变;否则,请求对应数据块的目录状态从IMA或SMA变为M。
抵达L1D的数据读返回请求有两个来源,分别为末级Cache和其它的L1D。且由于部分数据读返回请求需要携带Ack信息(记录需要返回的无效应答数目),因此需要对其进行区分处理。如表2.3的第一行所示,数据读返回请求可以分为来自拥有者L1D且不携带Ack、来自拥有者L1D且携带Ack、来自末级Cache且不携带Ack、来自末级Cache且Ack为0、来自末级Cache且Ack大于0五种情况。
下表3.1、3.2、3.3是末级Cache目录控制器的详细描述。类似于L1D目录控制器,在末级Cache目录控制器中也存在“中间”状态。例如:L1D读缺失后会向末级Cache发出GetS请求。该请求访问的数据块在末级Cache中处于M状态时目录状态会变为SD,直至最新的数据返回。无效应答(Inv-Ack)请求与L1D目录控制器类似,这里不再描述。
表3.1
表3.2
表3.3
L1D替换分为干净行替换和脏行替换两种。
干净行替换会向末级Cache发送PutS请求。在实际操作中可能有多个核共享一个数据块的情况,这时PutS请求可以根据抵达末级Cache的顺序分为非最后一个(PutS-NotLast)和最后一个(PutS-Last)两种情况。PutS-NotLast请求处理时,数据块的目录状态并不发生改变,而只改变对应的共享列表信息。PutS-Last请求处理时,数据块的目录状态从S变为I,且对应的共享列表信息清空。
脏行替换会向末级Cache发送PutM+data请求。该请求访问的数据块目录项可能在请求处理前已经改变,需要进行区别处理。若脏行替换请求访问的数据块目录状态为M且共享列表指示的L1D恰巧是进行此脏行替换的L1D,则称其为PutM+data from Owner请求。这种情况下,脏替换数据会更新末级Cache数据体且返回应答请求;否则,称该脏行替换请求为PutM+data from Non-Owner请求。这种情况下,只需返回应答请求即可。
本发明基于末级Cache进行目录一致性机制的设计,末级Cache目录存储体中某一组的目录结构图如图4所示。从图中可以看出,末级Cache采用8路组相联的映射机制,且为每一路分配一个目录项。目录项由目录状态和共享列表两个部分组成。其中,目录状态指示该缓存数据块在末级Cache中是否具有最新数据以及是否为脏数据;共享列表指示该缓存数据块在第一级存储中的拷贝情况。结合目录状态及共享列表信息即可清楚地知道缓存数据块在片上的具体情况,从而方便对其进行一致性维护操作。
目录机制在实现过程中会随着流水线的不同而所有不同,本发明举例对在L1D和末级Cache的流水线实现进行简单描述。
如图5所示,为在具体应用实例中L1D流水线整体结构示意图。其流水线由七级组成,分别为DC1、DC2、EX1、EX2、EX3、EX4、EX5。L1D接收到load、store指令后,首先对其进行两站流水的译码处理(DC1和DC2),判断指令的操作类型及要实现的功能。指令译码完成后进行地址计算(EX1)。接着,是功能实现的过程。本发明设计了读执行3拍,写执行2拍的L1DCache访存流水线。其中,读操作流水线在SMAC访存主流水线中处于EX2、EX3、EX4位置,分别是命中缺失判断、访存/缺失处理、访存输出;写操作流水线则处于EX2、EX3位置,分别是缺失判断、访存/缺失处理。作为标量访存主流水线的一部分,L1DCache流水线也受到内核全局停顿信号(Stall)和流水线清除信号的控制。
如图6所示,为在具体应用实例中末级Cache流水线整体结构示意图。从图中可以看出,进入末级Cache的请求会在流水线走两条不同的路径。L1D的读返回请求或者L1D返回的无效应答请求无需缓存在输入缓冲中,而直接通过旁路传递给流水线的Tag_Judge站,此为第一条路径;访问DDR存储空间的数据请求需先缓存在输入缓冲中,再从第一级流水线开始进行流水处理,此为第二条路径。流水线由五级组成,分别为Req_Arb、Tag_Wait、Tag_Judge、Data_Acc、Data_Dec。
下面对每级流水实现的功能进行详细描述。
流水线第一级(Req_Arb):请求在这一站内与Flush请求进行轮转仲裁,并将仲裁出的请求发向下一级流水。同时,还会读取请求数据块的有效位、脏位以及Tag信息。
流水线第二级(Tag_Wait):请求在这一站只是判断是否为目录请求,以及读取目录信息。
流水线第三级(Tag_Judge):首先判断请求是否命中,若缺失则再判断是否与MBUF中地址相关。若为相关的缺失请求,则将请求发向MBUF;若为不相关的缺失请求,则将请求发向MBUF和OBUF。命中请求根据是否为目录请求,进行相应的处理。若为非目录请求,则产生访问数据体使能;若为目录请求,则查看目录项信息,根据目录状态以及共享列表的不同请求的处理也不一样。目录请求的处理方式分为三类:第一类直接进行操作,并产生访问数据体使能;第二类由于最新数据不在末级Cache中,因此需等待L1D数据返回,待数据抵达后再产生访问数据体使能;第三类需要等待Inv-Ack请求,待无效应答全部抵达后再产生访问数据体使能。
流水线第四级(Data_Acc):首先判断请求处理数据体的类别。若为读操作,则将请求访问的数据块从数据体读出后锁存一拍;若为写操作,则先对写入数据进行编码,再进行更新数据体操作。进行数据体读操作的请求最后会将读出的数据发向下一级流水。
流水线第五级(Data_Dec):对上一级读出的请求数据进行译码操作,并将读返回数据请求发向上环仲裁处理模块进行处理。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
Claims (9)
1.一种面向GPDSP架构的多核目录一致性装置,其特征在于,包括:
内核,包含DMA和L1D,L1D为一级数据Cache;所述DMA用来完成外设和内核间数据的搬运;所述L1D包括有Normal Deal和Monitor Deal两个并行处理单元,所述Normal Deal处理单元完成load、store指令的处理,所述Monitor Deal处理单元用来响应任意时刻抵达的监听请求,且处理过程不受Normal Deal处理单元的影响;
片上末级Cache,分布式的接在片上互连网络上;
片外存储DDR,数据缓存在L1D和片上末级Cache中;
片上互连网络,用来接收网络请求,接收到网络请求后会首先进行译码处理,译码出目的节点和目的设备后将请求发向对应的位置。
2.根据权利要求1所述的面向GPDSP架构的多核目录一致性装置,其特征在于,所述片上末级Cache内分为若干个体,每个所述体均由输入缓冲单元IBUF、流水线单元PipeLine、输出缓冲单元OBUF以及返回环网处理逻辑单元Rtn NAC组成;所述输入缓冲单元用来负责缓存从片上网络进入末级Cache的请求;所述流水线单元用来对来自输入缓冲的访问DDR存储空间请求进行流水化处理;所述输出缓冲单元用来负责缓存末级Cache访问DDR的请求;所述返回环网处理逻辑单元用来负责对多种类型的进入片上网络请求进行仲裁处理。
3.根据权利要求1或2所述的面向GPDSP架构的多核目录一致性装置,其特征在于,还包括MSI目录协议单元,用来对L1D发出的请求进行一致性维护;所述MSI目录协议单元由M、S、I三个目录状态组成;M状态表示数据被某个DSP Core独占且数据为脏;S状态表示数据被一个或多个DSP Core共享且数据为干净;I状态表示所有的DSP Core都没有数据拷贝。
4.根据权利要求3所述的面向GPDSP架构的多核目录一致性装置,其特征在于,还包括目录控制器,所述目录控制器在协议层次上判断方案的正确性,用来完成对单个请求在不同目录状态下的处理、多个相关请求的冲突处理以及处于目录“中间态”的数据块对相关请求的响应处理;所述目录控制器分为两类,一类放置在L1D中,另一类放置在片上末级Cache中,目录操作在L1D和片上末级Cache中进行。
5.根据权利要求3所述的面向GPDSP架构的多核目录一致性装置,其特征在于,所述片上末级Cache中存放有完全目录的目录结构,所述目录结构为缓存在片上末级Cache中的每一数据块分配目录项;所述目录项包括目录状态和共享列表两部分,所述共享列表为每一个DSP Core分配一位来表示数据是否在对应的DSP Core中存在拷贝。
6.根据权利要求1或2所述的面向GPDSP架构的多核目录一致性装置,其特征在于,在所述L1D中采用流水线结构,用以完成指令译码、地址计算、读标记及状态位、判断命中、数据体访问以及数据返回操作的流水过程。
7.根据权利要求6所述的面向GPDSP架构的多核目录一致性装置,其特征在于,所述L1D的流水线结构分别为DC1、DC2、EX1、EX2、EX3、EX4、EX5;当L1D接收到load、store指令后,首先对其进行两站流水的译码处理,即DC1和DC2,判断指令的操作类型及要实现的功能;指令译码完成后进行地址计算,即EX1,完成功能实现;接着完成读执行3拍,写执行2拍的L1DCache访存流水线,其中读操作流水线在SMAC访存主流水线中处于EX2、EX3、EX4位置,分别是命中缺失判断、访存/缺失处理、访存输出;写操作流水线则处于EX2、EX3位置,分别是缺失判断、访存/缺失处理。
8.根据权利要求1或2所述的面向GPDSP架构的多核目录一致性装置,其特征在于,在所述片上末级Cache中使用流水线结构,用以实现读标记及状态位、读目录项、判断命中、监听处理、数据体访问以及数据返回操作的流水过程。
9.根据权利要求8所述的面向GPDSP架构的多核目录一致性装置,其特征在于,所述片上末级Cache的流水线结构包括:
流水线第一级Req_Arb:与Flush请求进行轮转仲裁,并将仲裁出的请求发向下一级流水;同时,还读取请求数据块的有效位、脏位以及Tag信息;
流水线第二级Tag_Wait:判断是否为目录请求,以及读取目录信息;
流水线第三级Tag_Judge:首先判断请求是否命中,若缺失则再判断是否与MBUF中地址相关;若为相关的缺失请求,则将请求发向MBUF;若为不相关的缺失请求,则将请求发向MBUF和OBUF;命中请求根据是否为目录请求,进行相应的处理;若为非目录请求,则产生访问数据体使能;若为目录请求,则查看目录项信息,根据目录状态以及共享列表的不同请求的处理也不一样;目录请求的处理方式分为三类:第一类直接进行操作,并产生访问数据体使能;第二类等待L1D数据返回,待数据抵达后再产生访问数据体使能;第三类等待Inv-Ack请求,待无效应答全部抵达后再产生访问数据体使能;
流水线第四级Data_Acc:首先判断请求处理数据体的类别;若为读操作,则将请求访问的数据块从数据体读出后锁存一拍;若为写操作,则先对写入数据进行编码,再进行更新数据体操作;进行数据体读操作的请求最后会将读出的数据发向下一级流水;
流水线第五级Data_Dec:对上一级读出的请求数据进行译码操作,并将读返回数据请求发向上环仲裁处理模块进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610503703.5A CN106201939B (zh) | 2016-06-30 | 2016-06-30 | 面向gpdsp架构的多核目录一致性装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610503703.5A CN106201939B (zh) | 2016-06-30 | 2016-06-30 | 面向gpdsp架构的多核目录一致性装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201939A true CN106201939A (zh) | 2016-12-07 |
CN106201939B CN106201939B (zh) | 2019-04-05 |
Family
ID=57463707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610503703.5A Active CN106201939B (zh) | 2016-06-30 | 2016-06-30 | 面向gpdsp架构的多核目录一致性装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201939B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117396A (zh) * | 2018-08-30 | 2019-01-01 | 山东经安纬固消防科技有限公司 | 存储器访问方法及*** |
CN110704343A (zh) * | 2019-09-10 | 2020-01-17 | 无锡江南计算技术研究所 | 面向众核处理器访存和片内通信的数据传输方法与装置 |
CN113435153A (zh) * | 2021-06-04 | 2021-09-24 | 上海天数智芯半导体有限公司 | 一种gpu缓存子***互联的数字电路设计方法 |
CN116028418A (zh) * | 2023-02-13 | 2023-04-28 | 中国人民解放军国防科技大学 | 基于gpdsp的可扩展多核处理器、加速卡及计算机 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279428A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 一种显式的面向流应用的多核Cache一致性主动管理方法 |
CN103714039A (zh) * | 2013-12-25 | 2014-04-09 | 中国人民解放军国防科学技术大学 | 通用计算数字信号处理器 |
CN104679689A (zh) * | 2015-01-22 | 2015-06-03 | 中国人民解放军国防科学技术大学 | 一种用于gpdsp的采用从机计数的多核dma分段数据传输方法 |
CN104699631A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
CN105389277A (zh) * | 2015-10-29 | 2016-03-09 | 中国人民解放军国防科学技术大学 | Gpdsp中面向科学计算的高性能dma部件 |
CN105718242A (zh) * | 2016-01-15 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 多核dsp中支持软硬件数据一致性的处理方法及*** |
-
2016
- 2016-06-30 CN CN201610503703.5A patent/CN106201939B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103279428A (zh) * | 2013-05-08 | 2013-09-04 | 中国人民解放军国防科学技术大学 | 一种显式的面向流应用的多核Cache一致性主动管理方法 |
CN103714039A (zh) * | 2013-12-25 | 2014-04-09 | 中国人民解放军国防科学技术大学 | 通用计算数字信号处理器 |
CN104679689A (zh) * | 2015-01-22 | 2015-06-03 | 中国人民解放军国防科学技术大学 | 一种用于gpdsp的采用从机计数的多核dma分段数据传输方法 |
CN104699631A (zh) * | 2015-03-26 | 2015-06-10 | 中国人民解放军国防科学技术大学 | Gpdsp中多层次协同与共享的存储装置和访存方法 |
CN105389277A (zh) * | 2015-10-29 | 2016-03-09 | 中国人民解放军国防科学技术大学 | Gpdsp中面向科学计算的高性能dma部件 |
CN105718242A (zh) * | 2016-01-15 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 多核dsp中支持软硬件数据一致性的处理方法及*** |
Non-Patent Citations (1)
Title |
---|
李明: ""X-DSP一级数据Cache的设计与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117396A (zh) * | 2018-08-30 | 2019-01-01 | 山东经安纬固消防科技有限公司 | 存储器访问方法及*** |
CN110704343A (zh) * | 2019-09-10 | 2020-01-17 | 无锡江南计算技术研究所 | 面向众核处理器访存和片内通信的数据传输方法与装置 |
CN113435153A (zh) * | 2021-06-04 | 2021-09-24 | 上海天数智芯半导体有限公司 | 一种gpu缓存子***互联的数字电路设计方法 |
CN113435153B (zh) * | 2021-06-04 | 2022-07-22 | 上海天数智芯半导体有限公司 | 一种gpu缓存子***互联的数字电路设计方法 |
CN116028418A (zh) * | 2023-02-13 | 2023-04-28 | 中国人民解放军国防科技大学 | 基于gpdsp的可扩展多核处理器、加速卡及计算机 |
Also Published As
Publication number | Publication date |
---|---|
CN106201939B (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4928812B2 (ja) | タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法 | |
Archibald et al. | Cache coherence protocols: Evaluation using a multiprocessor simulation model | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
US6640287B2 (en) | Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests | |
US7305522B2 (en) | Victim cache using direct intervention | |
JP5078396B2 (ja) | 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法 | |
US7305523B2 (en) | Cache memory direct intervention | |
US7281092B2 (en) | System and method of managing cache hierarchies with adaptive mechanisms | |
US20020087807A1 (en) | System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes | |
US20030005237A1 (en) | Symmetric multiprocessor coherence mechanism | |
US8375171B2 (en) | System and method for providing L2 cache conflict avoidance | |
US20170185515A1 (en) | Cpu remote snoop filtering mechanism for field programmable gate array | |
US20060236039A1 (en) | Method and apparatus for synchronizing shared data between components in a group | |
GB2349721A (en) | Multi-processor data processing system | |
US8015364B2 (en) | Method and apparatus for filtering snoop requests using a scoreboard | |
CN106201939A (zh) | 面向gpdsp架构的多核目录一致性装置 | |
US9436605B2 (en) | Cache coherency apparatus and method minimizing memory writeback operations | |
US20080082756A1 (en) | Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems | |
US20130297883A1 (en) | Efficient support of sparse data structure access | |
US6813694B2 (en) | Local invalidation buses for a highly scalable shared cache memory hierarchy | |
US10489292B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
US6826654B2 (en) | Cache invalidation bus for a highly scalable shared cache memory hierarchy | |
US20040030950A1 (en) | Apparatus for imprecisely tracking cache line inclusivity of a higher level cache |
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 |