支持地址交叉方案配置的多ddr访问控制方法及装置制造方法

文档序号:6551731阅读:132来源:国知局
支持地址交叉方案配置的多ddr访问控制方法及装置制造方法
【专利摘要】本发明公开一种支持地址交叉方案配置的多DDR访问控制方法及装置,该方法步骤为:配置外存地址空间在多个DDR控制器之间分布的地址交叉方案为高位地址交叉方案、低位地址交叉方案或高位地址交叉方案与低位地址交叉方案组合模式;当请求访问DDR空间时,根据配置的地址交叉方案将请求源的访存地址映射至目标DDR控制器对应的末级Cache子体中;该装置包括与方法对应的地址交叉方案配置模块、访问路由选择模块。本发明具有实现方法简单、访问效率高、硬件开销小、能够根据实际需求灵活地配置地址交叉方案的优点。
【专利说明】支持地址交叉方案配置的多DDR访问控制方法及装置

【技术领域】
[0001] 本发明涉及DDR (Double Data Rate SDRAM,双倍数据速率同步动态存储器)控制 器【技术领域】,尤其涉及一种支持地址交叉方案配置的多DDR访问控制方法及装置。

【背景技术】
[0002] 当前随着应用的不断发展和集成电路制造技术的不断进步,将多个传统的处理器 核集成在同一芯片中使其协同高效地展开工作的多核处理器,已经广泛地应用于通用计 算、高性能计算、嵌入式计算等多个领域。多核处理器一般集成多个DDR控制器以便使芯片 具有更大的存储带宽,同时也能够使芯片能够集成更多更大容量的内存颗粒。当前主流的 DDR控制器为3. 0版本,更高版本的DDR控制器IP也即将推出。
[0003] 外存地址空间如何在多个DDR控制器之间分布称为地址交叉方案,高位地址交叉 方案和低位地址交叉方案是常用的两种地址交叉方案,其中高位地址交叉方案是采用访存 地址的高位来区分请求源的请求落入哪个DDR控制器,其具有易扩展、可靠性好的优点。如 果程序员能够将多个任务的数据分别映射到最近的DDR控制器上,则每个任务可以无冲突 地运行在不同的DDR控制器上,片上的共享网络、Cache等资源也可以局部地高效访问,然 而如果将单任务程序映射至高位地址交叉方案系统中,则会出现一段时间只有一个DDR控 制器被有效利用的情况,造成DDR控制器有效带宽的浪费。低位地址交叉方案是采用访存 地址的低位来确定请求源的请求落入哪个DDR控制器,同一任务对连续地址的访问将会映 射到不同的DDR控制器中,多个DDR控制器的访存延时将会重叠起来,从而有利于充分发挥 用多个DDR控制器的带宽。然而在低位地址交叉方案中如果某一个DDR控制器存在故障, 则会扩展到整个系统,并且当多个任务运行时还会导致存储冲突增加等问题。
[0004] 传统的多核处理器系统中多个DDR控制器之间通常采用固定的一种地址交叉 方案,如在Fujitsu公司的M3000服务器系列中采用了低位地址交叉方案,Sun公司的 Niagara系列处理器也采用了类似的低位地址交叉方案。固定的地址交叉方案虽然硬件实 现简单,但是存在使用不灵活以及使得某些应用程序执行效率变低等缺点。
[0005] 多核处理器中不同的应用程序往往存在不同的访存特征,对多个DDR间的地址交 叉方案的需求也不相同;即使是在同一个应用程序的不同的运行阶段,其数据访存对多个 DDR间的地址交叉方案的需求也不一致。这种对DDR间地址交叉方案的需求的不同,实际上 隐含着对DDR、末级Cache (Last Level Cache,LLC)和片上网络的"共享"和"私有"要求的 不同。此外,在低位地址交叉方案中,将末级Cache的Cache行宽度作为最小的数据交叉粒 度仅仅会在某些应用中对访存带宽的利用比较有利,不同应用程序对低位地址交叉的数据 粒度往往具有不同的需求。
[0006] 综上所述,需要通过提供一种支持多DDR间地址交叉方案可配置的方案,使程序 员能够根据应用的不同或应用执行阶段的不同灵活地设置不同DDR间的地址交叉方案,进 而能够高效地利用DDR、末级Cache、片上网络等资源,同时使系统的抗故障能力也得以增 强。


【发明内容】

[0007] 本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一 种实现方法简单、访问效率高、硬件开销小、能能够根据不同的应用程序及实际需求灵活地 配置地址交叉方案的支持地址交叉方案配置的多DDR访问控制方法及装置。
[0008] 为解决上述技术问题,本发明提出的技术方案为:
[0009] -种支持地址交叉方案配置的多DDR访问控制方法,具体实施步骤为:
[0010] 1)将外存地址空间在多个DDR控制器间分布的地址交叉方案配置为高位地址交 叉方案、低位地址交叉方案或高位地址交叉方案与低位地址交叉方案组合模式;
[0011] 2)当请求访问DDR空间时,根据配置的所述地址交叉方案将请求源访问DDR空间 的访存地址映射至目标DDR控制器对应的末级Cache子体中。
[0012] 作为本发明方法的进一步改进,步骤1)的具体实施步骤为:
[0013] 1. 1)判断当前应用是否需要启用高位地址交叉方案,若为是,设置为启用高位地 址交叉方案,转入执行步骤1.2);若为否,设置为不启用高位地址交叉方案并将所有的外 存地址空间的地址交叉方案配置为低位地址交叉方案,转入执行步骤1. 3);
[0014] 1.2)判断当前应用是否还需要启用低位地址交叉方案,若为是,将地址交叉方 案配置为高位地址交叉方案与低位地址交叉方案组合模式并设置模式配置值N且N不为 〇,其中外存地址空间中1/2 N的地址空间的地址交叉方案配置为高位地址交叉方案,其余 (1-1/2N)的地址空间的地址交叉方案配置为低位地址交叉方案,转入执行步骤1.3);若为 否,设置高位地址交叉方案与低位地址交叉方案组合模式的模式配置值N为0,将所有的外 存地址空间的地址交叉方案配置为高位地址交叉方案,转入执行步骤2);
[0015] 1. 3)设置低位地址交叉方案中外存地址空间在两个相邻DDR控制器之间的间隔 单位,转入执行步骤2)。
[0016] 作为本发明方法的进一步改进,所述步骤1)的具体实施方法为:定义包含用于设 置是否需要启用高位地址交叉方案的高位地址交叉使能域、用于设置高位地址交叉方案与 低位地址交叉方案组合模式中模式配置值N的组合模式设置域以及用于设置低位地址交 叉方案中外存地址空间在两个相邻DDR控制器之间间隔单位的低位交叉粒度设置域的地 址交叉方案配置寄存器,并通过所述地址交叉方案配置寄存器配置所述地址交叉方案。
[0017] 作为本发明方法的进一步改进,所述通过所述地址交叉方案配置寄存器配置所述 地址交叉方案的具体实施方法为:若需要配置为低位地址交叉方案时,设置高位地址交叉 使能域的值为0 ;若需要配置为高位地址交叉方案时,设置高位地址交叉使能域的值为1并 通过组合模式设置域设置模式配置值N为0 ;若需要配置为高位地址交叉方案与低位地址 交叉方案组合模式时,设置高位地址交叉使能域的值为1并通过组合模式设置域设置模式 配置值N且N不为0 ;通过低位交叉粒度设置域设置低位地址交叉方案中外存地址空间在 两个相邻DDR控制器之间的间隔单位。
[0018] 作为本发明方法的进一步改进,所述步骤2)的具体实施步骤为:
[0019] 2. 1)判断步骤1)中配置的地址交叉方案,并根据请求源的访求地址A生成用于进 行目标DDR控制器路由判断的路由判断地址BJA,A为包括0?H-1位的请求源的访求地址 且宽度为H,其中若配置的地址交叉方案为低位地址交叉方案时,转入执行步骤2. 2);若为 高位地址交叉方案时,转入执行步骤2. 3);若为高位地址交叉方案与低位地址交叉方案组 合模式时,转入执行步骤2.4);
[0020] 2. 2)路由判断地址BJA = A[L-l+log2W:L],转入执行步骤2. 5);
[0021] 2. 3)路由判断地址BJA = A[H-l:H-log2W],转入执行步骤2. 5);
[0022] 2. 4)若 A[H-1:H-N] = 0,则路由判断地址 BJA = A[H-N-l:H-N-log2W];若 A[H-1:H-N]关0,则路由判断地址BJA = A[L-l+log2W:L],转入执行步骤2. 5);
[0023] 2. 5)根据请求源的访求地址的地址范围及映射函数将路由判断地址BJA映射至 目标DDR控制器对应的末级Cache子体;
[0024] 其中W为末级Cache包含的子体的数目,N为模式配置值,L0I_Grain为低位地 址交叉方案中外存地址空间在两个相邻DDR控制器之间间隔单位,Μ为末级Cache中一个 Cache行包含的字节数,且L = L0I_Grain+log2M。
[0025] 作为本发明方法的进一步改进,所述步骤2. 5)的具体实施方法为:判断当前请求 源的访求地址的地址范围,若地址范围在配置为高位地址交叉方案的地址区间内,则所述 路由判断地址BJA的值、与DDR控制器连接的末级Cache子体--对应进行映射;若地址范 围在配置为低位地址交叉方案的地址区间内,则所述路由判断地址BJA的值、与DDR控制器 连接的末级Cache子体编号按照循环模T进行映射,映射公式如下所示 :
[0026] Γ BIA W-1 末级Cache子体编号=,=、,、:二;
[(BJA*P)%(W-1)其它值
[0027] 其中W为末级Cache子体的总数目,P为每一个DDR控制器对应的末级Cache子 体的数目。
[0028] 作为本发明方法的进一步改进,还包括执行下一个任务时的地址交叉方案切换流 程,步骤为:
[0029] 3. 1)将DDR空间中上一个任务的结果数据搬移至非DDR空间,转入执行步骤 3.2) ;
[0030] 3. 2)将Cache系统中包含DDR空间副本的Cache行设置为无效,转入执行步骤 3.3) ;
[0031] 3. 3)配置下一个任务对应的地址交叉方案,转入执行步骤3. 4);
[0032] 3. 4)将下一个任务的程序按照配置的地址交叉方案搬移至对应的DDR空间,并标 记所述程序在DDR空间中的地址,转入执行步骤3. 5);
[0033] 3. 5)跳转至所述程序在DDR空间中的地址,将下一个任务的数据搬移到DDR空间, 完成切换过程并开始执行任务。
[0034] 一种支持地址交叉方案配置的多DDR间访问控制装置,包括:
[0035] 地址交叉方案配置模块,用于将外存地址空间在多个DDR控制器间分布的地址交 叉方案配置为高位地址交叉方案、低位地址交叉方案或高位地址交叉方案与低位地址交叉 方案组合模式;
[0036] 访问路由选择模块,用于当请求访问DDR空间时,根据配置的所述地址交叉方案 将请求源访问DDR空间的访存地址映射至目标DDR控制器对应的末级Cache子体中。
[0037] 作为本发明装置的进一步改进:所述地址交叉方案配置模块包括高位交叉使能设 置单元、组合模式设置单元以及低位交叉粒度设置单元;所述高位交叉使能设置单元设置 是否需要启用高位地址交叉方案的,所述组合模式设置单元设置高位地址交叉方案与低位 地址交叉方案组合模式中模式配置值N,所述低位交叉粒度用于设置低位地址交叉方案中 外存地址空间在两个相邻DDR控制器之间的间隔单位。
[0038] 作为本发明装置的进一步改进:所述访问路由选择模块包括路由判断地址生成单 元和路由映射单元,所述路由判断地址生成单元根据请求源的访存地址和所述地址交叉方 案配置模块配置的地址交叉方案生成路由判断地址;路由映射单元根据请求源的访求地 址的地址范围及映射函数将路由判断地址BJA映射至对应的目标DDR控制器对应的末级 Cache子体中。
[0039] 与现有技术相比,本发明的优点在于:
[0040] 1)本发明中采用可变的地址交叉方案,通过配置使得用户可以根据应用的需求设 置不同的地址交叉方案,从而使应用程序更快、更高带宽地访问DDR、末级Cache、片上网络 等资源;地址交叉方案可配置为高位地址交叉方案、低位地址交叉方案或高位地址交叉方 案和低位地址交叉方案组合模式,使得能够兼具高位地址交叉方案和低位地址交叉方案的 优点,且即使当多核处理器系统中的某一个DDR颗粒或DDR控制器发生故障时,系统存储通 路仍然能够继续正常工作。
[0041] 2)本发明通过一个地址交叉方案配置寄存器配置地址交叉方案,只需要按照流程 修改地址交叉方案配置寄存器的某一位或几位就可以进行配置,配置方法简便且灵活。
[0042] 3)本发明中采用可变的地址交叉方案仅增加地址交叉方案配置(如地址交叉方 案配置寄存器)的开销以及片上网络根据地址交叉方案配置对报文或请求进行路由选择 时的逻辑开销,且地址交叉方案配置开销以及路由选择的逻辑开销是由较小宽度的触发器 或小规模的选择逻辑组成,因此所需的硬件面积和功耗开销较小且不影响系统的关键路径 延时,非常适用于当前采用多个DDR控制器的多核处理器系统中。

【专利附图】

【附图说明】
[0043] 图1是本实施例支持地址交叉方案配置的多DDR访问控制方法流程示意图。
[0044] 图2是本实施例中地址交叉方案配置寄存器AISR结构示意图。
[0045] 图3是本发明在具体应用中执行地址交叉方案切换的实现流程示意图。
[0046] 图4是本发明具体实施例中采用的具有多个DDR控制器的多核处理器系统结构示 意图。
[0047] 图5是本发明具体实施例中支持地址交叉方案配置的多DDR访问控制方法原理示 意图。
[0048] 图6是本发明具体实施例中路由判断地址BJA生成原理示意图。
[0049] 图7是本发明具体实施例中高位地址交叉方案的路由判断地址BJA与目标设备映 射关系不意图。
[0050] 图8是本发明具体实施例中低位地址交叉方案的路由判断地址BJA与目标设备映 射关系不意图。

【具体实施方式】
[0051] 以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而 限制本发明的保护范围。
[0052] 如图1所示,本实施例支持地址交叉方案配置的多DDR访问控制方法,具体实施步 骤为:
[0053] 1)将外存地址空间在多个DDR控制器间分布的地址交叉方案配置为高位地址交 叉方案、低位地址交叉方案或高位地址交叉方案与低位地址交叉方案组合模式;
[0054] 2)当请求访问DDR空间时,根据配置的所述地址交叉方案将请求源访问DDR空间 的访存地址映射至目标DDR控制器对应的末级Cache子体中。
[0055] 通过可配置的地址交叉方案可以根据应用程序及实际需求设置合适的地址交叉 方案,从而使应用程序更快、更高带宽地访问DDR、末级Cache、片上网络等资源,可配置的 地址交叉方案与传统的固定地址交叉方案相比,能够兼具高位地址交叉方案和低位地址交 叉方案的优点,且即使当多核处理器系统中的某一个DDR颗粒或DDR控制器发生故障时,系 统存储通路仍然能够继续正常工作。
[0056] 本实施例中,步骤1)的具体实施步骤为:
[0057] 1. 1)判断当前应用是否需要启用高位地址交叉方案,若为是,设置为启用高位地 址交叉方案,转入执行步骤1.2);若为否,设置为不启用高位地址交叉方案并将所有的外 存地址空间的地址交叉方案配置为低位地址交叉方案,转入执行步骤1. 3);
[0058] 1.2)判断当前应用是否还需要启用低位地址交叉方案,若为是,将地址交叉方 案配置为高位地址交叉方案与低位地址交叉方案组合模式并设置模式配置值N且N不为 〇,其中外存地址空间中1/2 N的地址空间的地址交叉方案配置为高位地址交叉方案,其余 (1-1/2N)的地址空间的地址交叉方案配置为低位地址交叉方案,转入执行步骤1.3);若为 否,设置高位地址交叉方案与低位地址交叉方案组合模式的模式配置值N为0,将所有的外 存地址空间的地址交叉方案配置为高位地址交叉方案,转入执行步骤2);
[0059] 1. 3)设置低位地址交叉方案中外存地址空间在两个相邻DDR控制器之间的间隔 单位,转入执行步骤2)。
[0060] 本实施例中,步骤1)具体通过一个具有高位地址交叉使能域、组合模式设置域 以及低位交叉粒度设置域的地址交叉方案配置寄存器(Address Interleaving Scheme RegiSter,AISR)实现。如图2所示,本实施例中地址交叉方案配置寄存器AISR结构,包括 高位地址交叉使能域(En)、组合模式设置域(Mode)和低位交叉粒度设置域(LOI-Grain), 其余位为保留位(Reserved),寄存器的总宽度与处理器的机器字长(假定为32比特)相 同。
[0061] 本实施例中,高位地址交叉使能域用于使能高位地址交叉方案,当高位地址交叉 使能域En被设置为0时,所有的外存地址空间按照低位地址交叉方案在多个DDR控制器间 分布;当高位地址交叉使能域En被设置为1时,外存地址空间中的一部分被设置为采用高 位地址交叉方案分布,剩余的部分被设置为采用低位地址交叉方案分布。组合模式设置域 Mode用于设置高位地址交叉方案与低位地址交叉方案组合模式中模式配置值N,通过模式 配置值N确定采用高位地址交叉方案的高位地址交叉空间占整个外存空间中的比例;具体 地,当组合模式设置域Mode的值N分别设置为0,1,2,…,N时,对应高位地址交叉空间分 别占据整个外存空间的全部,1/2,1/4,?,1/2'低位交叉粒度设置域11)1-61^111用来设 置采用低位交叉方案的低位地址交叉空间中两个相邻DDR控制器之间的间隔单位;假设系 统的末级Cache的行宽度为Μ字节,则当低位交叉粒度设置域LOI-Grain分别设置为0,1, 2, 一,Τ时,对应的低位地址交叉空间的间隔单位分别为Μ,2Μ,4Μ,"·,2ΤΜ个字节。需要进 行地址交叉方案配置时,用户只需要按照流程修改地址交叉方案配置寄存器AISR的某一 位或几位,就可以对多DDR间的地址交叉方案进行配置。
[0062] 本实施例中,通过地址交叉方案配置寄存器配置地址交叉方案的具体实施方法 为:若需要配置为低位地址交叉方案时,设置高位地址交叉使能域Εη的值为0 ;若需要配 置为高位地址交叉方案时,设置高位地址交叉使能域Εη的值为1且通过组合模式设置域 Mode设置模式配置值Ν且Ν为0 ;若需要配置为高位地址交叉方案与低位地址交叉方案 组合的地址交叉方案时,设置高位地址交叉使能域Εη的值为1、通过组合模式设置域Mode 设置模式配置值N且N不为0 ;若配置为低位地址交叉方案时,设置低位交叉粒度设置域 LOI-Grain的值,可满足不同应用程序对低位地址交叉的数据粒度的不同需求。则当高位地 址交叉使能域Εη设置为0时,地址交叉方案配置为低位地址交叉方案;当高位地址交叉使 能域Εη设置为1时,使能高位地址交叉方案,模式配置值Ν不为0时为配置为高位地址交 叉方案与低位地址交叉方案组合模式,模式配置值Ν为0时,地址交叉方案配置为高位地址 交叉方案。
[0063] 本实施例中,每个访问DDR空间的请求源经过路由映射判断具体访问的目标DDR 控制器对应的末级Cache子体,路由映射的具体实现方法由地址交叉方案配置寄存器AISR 设置的值决定,即根据具体配置的地址交叉方案进行路由映射。步骤2)根据配置的地址交 叉方案将请求源的访存地址映射至目标DDR控制器对应的末级Cache子体的具体实施步骤 为:
[0064] 2. 1)判断步骤1)中配置的地址交叉方案,根据请求源的访求地址A生成用于进 行目标DDR控制器路由判断的路由判断地址BJA,A为包括0?H-1位的请求源的访求地 址且宽度为H,其中若配置的地址交叉方案为低位地址交叉方案时(Εη = 0),转入执行步骤 2. 2);若为高位地址交叉方案时(Εη = 1、Ν = 0),转入执行步骤2. 3);若为高位地址交叉 方案与低位地址交叉方案组合模式时(En = 1、Ν尹0),转入执行步骤2. 4);
[0065] 2. 2)路由判断地址BJA = A[L-l+log2W:L],转入执行步骤2. 5);
[0066] 2. 3)路由判断地址BJA = A[H-1 :H-log2W],转入执行步骤2. 5);
[0067] 2. 4)若 A[H-1:H-N] = 0,则路由判断地址 BJA = A[H-N-l:H-N-log2W];若 A[H-1:H-N]关0,则路由判断地址BJA = A[L-l+log2W:L],转入执行步骤2. 5);
[0068] 2. 5)根据请求源的访求地址的地址范围及映射函数将路由判断地址BJA映射至 目标DDR控制器对应的末级Cache子体。
[0069] 其中W为LLC包含的子体的数目;模式配置值N为AISR寄存器Mode域的值;L0I_ Grain为AISR寄存器L0I_Grain域的值;Μ为末级Cache -个Cache行包含的字节数;L = L0I_Grain+log2M ;En 为 AISR 寄存器 Εη 域的值。
[0070] 本实施例中,步骤2. 1)中判断步骤1)中配置的地址交叉方案的具体实施方法为: 判断高位地址交叉使能域Εη的值是否为1,若不为1时,判断地址交叉方案为低位地址交叉 方案,即所有的外存地址空间在多个DDR控制器之间按照低位地址交叉方案分布;若为1, 继续判断模式配置值Ν,若模式配置值Ν为0时,判断地址交叉方案为高位地址交叉方案, 即所有的外存地址空间在多个DDR控制器之间按照高位地址交叉方案分布,若模式配置值 N不为0时,判断地址交叉方案为高位地址交叉方案与低位地址交叉方案组合模式,S卩外存 地址空间中1/2N的地址空间在多个DDR控制器间分布的地址交叉方案为高位地址交叉方 案,其余(1-1/2 N)的地址空间的地址交叉方案为低位地址交叉方案。
[0071] 本实施例中步骤2. 5)的具体实施方法为:判断当前请求源的访求地址的地址范 围,若地址范围在配置为高位地址交叉方案的地址区间内,则路由判断地址BJA的值、与 DDR控制器连接的末级Cache子体--对应进行映射,若地址范围在配置为低位地址交叉 方案的地址区间内,则路由判断地址BJA的值、与DDR控制器连接的末级Cache子体编号按 照循环模T进行映射,映射公式为:末级Cache子体编5 = u 其它值, 其中W为末级Cache子体的总数目,P为每一个DDR控制器对应的末级Cache子体的数目。
[0072] 本实施例中,若应用程序中上一个任务和新任务之间需要切换地址交叉方案,如 图3所示,切换地址交叉方案的具体实现流程如下 :
[0073] ①将DDR空间中上一个任务的结果数据搬移至非DDR空间;
[0074] ②查看是否搬移完毕,如果搬移完毕则转至③,否则返回执行①;
[0075] ③将Cache系统(包含与DDR控制器连接的末级Cache和其它Cache)中包含DDR 空间副本的Cache行设置为无效;
[0076] ④查看是否设置完毕,如果设置完毕则转至⑤,否则返回执行③;
[0077] ⑤程序跳转至系统的非DDR空间(如flash空间等),并设置新的地址交叉方案配 置寄存器AISR的值;
[0078] ⑥将新任务的程序搬移至DDR空间,并将新程序在DDR空间中的地址记为E ;
[0079] ⑦查看是否搬移完毕,如果搬移完毕转至⑧,否则返回执行⑥;
[0080] ⑧程序跳转至新任务在DDR空间中的入口地址E ;
[0081] ⑨将新任务的数据搬移到DDR空间;
[0082] ⑩查看是否搬移完毕,如果搬移完毕则完成切换过程并开始新任务的执行,否则 返回执行⑨。
[0083] 工作时,用户只需要按照上述切换地址交叉方案的流程编写程序、修改地址交叉 方案寄存器的某一位或几位,就可以配置并改变DDR控制器间的地址交叉方案,进行多DDR 控制器间的访问控制。
[0084] 以下以在多核处理器系统中通过8个末级Cache子体访问4个DDR控制器为例对 本发明进行进一步说明。
[0085] 如图4所示,本发明具体实施例中具有多个DDR控制器的多核处理器系统,包括多 核处理器核(CoreO, Corel,…,Core7)、片上网络(Network on Chip,NoC)、末级 Cache 和 4 个 DDR 控制器(DDRC0, DDRC1,DDRC2 和 DDRC3),其中多核处理器核(CoreO, Corel,…, Core7)通过片上网络NoC末级Cache相连,末级Cache采用分布式设计方法且由多个子体 LLC0,LLC1,...,LLC7 构成;末级 Cache 另一端与 DDR控制器(DDRC0,DDRC1,DDRC2 和 DDRC3) 相连且每两个LLC子体连接了一个DDR控制器。
[0086] 如图5所示,本发明具体实施例(4个DDR控制器)中支持地址交叉方案配置的多 DDR访问控制方法原理,系统请求通过8个LLC访问4个DDR控制器(DDRC0, DDRC1,DDRC2 和DDRC3),假设请求源的访问DDR的地址为A,A的地址宽度为从0到H-1共Η位;地址交 叉方案配置寄存器AISR中组合模式设置域Mode包含两位,并且L = LOI_Grain+log2M,其 中Μ为末级Cache的行宽度的字节数。地址交叉方案可配置为高位地址交叉方案、低位地 址交叉方案、以及高位地址交叉方案和低位地址交叉方案组合模式,因此在整个DDR空间 存在着采用高位地址交叉方案的高位地址交叉区间和采用低位地址交叉方案的低位地址 交叉区间两个区域,高位或低位地址交叉区间的容量配置为零时,则DDR空间按照单一的 低位或高位地址交叉方案分布外存地址空间。
[0087] 本实施例中,高位地址交叉空间在前、低位地址交叉空间在后,当然在其他实施例 中,高位地址交叉区间与低位地址交叉区间的位置还可为其他组织方式。如图5所示,在 高位地址交叉区间中采用高位地址交叉方案,整个高位地址交叉区间的前1/4连续的空间 (0,1,...,M0-1)在DDR0控制器中连续分布;接下来的1/4连续的空间(M0,M+1,…,M1-1) 在DDR1控制器中连续分布;再1/4连续的空间(Ml,M1+1,…,M2-1)在DDR2控制器中连 续分布;最后的1/4连续的空间(M2, M2+1,…,M3-1)在DDR3控制器中连续分布,则使得 连续的地址在高位地址交叉区间形成了纵向的折线(如图中虚线表示的折线箭头所示)。 在低位地址交叉区间中采用低位地址交叉方案,地址空间以基本块为单位连续的分布在4 个DDR控制器上(图中一个填充阴影块即为一个基本块),基本块的大小由地址交叉方案 配置寄存器AISR中低位交叉粒度设置域L0I_Grain决定(基本块包含的字节数=2 TM,T 为L0I_Grain的值,Μ为末级Cache -个Cache行包含的字节数),基本块的分布方式如图 所示,基本块M3在DDR0控制器中分布,下一个基本块M3+1在DDR1控制器中分布,下一个 基本块M3+2在DDR2控制器中分布,下一个基本块M3+3在DDR3控制器中分布,下一个基本 块M3+4在DDR0控制器中分布……,则使得连续的地址在低位地址交叉区间形成了横向的 折线(如图中虚线表示的横向箭头所示)。
[0088] 本实施例中,每个请求访问DDR空间的请求源根据地址交叉方案配置寄存器AISR 的值生成路由判断地址BJA,如图6所示,具体过程如下:首先判断高位地址交叉使能域 En的值是否为1,如果不为1,则路由判断地址BJA = A[L+2:L],否则根据组合模式设置 域Mode的值进行进一步判断,且如果组合模式设置域Mode = 2' b00,即模式配置值N = 0,则整个DDR空间全部按照高位地址交叉方案组织,则路由判断地址BJA = A[H-1 :H-3]; 如果Mode = 2' b01,即模式配置值N = 1,则整个DDR空间的前1/2按照高位地址交叉方 案组织,后1/2按照低位地址交叉方案组织,且如果A[H-1]为0,则路由判断地址BJA = A[H-2:H-4],否则路由判断地址BJA = A[L+2:L];如果组合模式设置域Mode = 2' blO,即 模式配置值N = 2,则整个DDR空间的前1/4按照高位地址交叉方案组织,后3/4按照低位 地址交叉方案组织,且如果A[H-1 :H-2]为0,则路由判断地址BJA = A[H-3:H-5],否则路由 判断地址BJA = A[L+2:L];如果组合模式设置域Mode = 2' bll,即模式配置值N = 3,则 整个DDR的前1/8按照高位地址交叉方案组织,后7/8按照低位地址交叉方案组织,且如果 A [H-1 :H-3]为0,则路由判断地址BJA = A [H-4: H-6],否则路由判断地址BJA = A [L+2: L]。
[0089] 本实施例中,路由判断地址BJA根据具体映射函数映射至目标DDR控制器对应的 末级Cache子体,如图7、8所示。本实施例中路由判断地址BJA与目标设备LLC子体的路 由映射关系,如果当前请求地址落在高位地址交叉区间,如图7所示,则LLC子体的编号和 路由判断地址BJA的值完全一一对应;如果当前请求地址落在低位地址交叉区间,如图8所 示,则路由判断地址BJA的值为0,1,…,7时,LLC子体的编号分别为:0,2,4,6,1,3,5,7。
[0090] 本实施例多核处理器系统中LLC子体和多核处理器核Core均作为片上网络NoC 的节点进行互联,每两个LLC子体连接了一个DDR控制器,当然在其他实施例中LLC子体、 多核处理器核Core、片上网络NoC与DDR控制器之间还可采用其他连接及组织方式,不同的 连接或组织方式所对应的路由映射策略略有不同,其原理与上述一致。
[0091] 采用上述方案,采用可配置的地址交叉方案仅增加了地址交叉方案配置寄存器 AISR的开销、片上网络根据地址交叉方案配置寄存器AISR对报文或请求进行路由选择时 的逻辑开销等,这些硬件由较小宽度的触发器或小规模的选择逻辑组成,所需硬件面积和 功耗开销较小且不影响系统的关键路径延时。
[0092] 本实施例还提供一种支持地址交叉方案配置的多DDR间访问控制装置,包括:
[0093] 地址交叉方案配置模块,用于将外存地址空间在多个DDR控制器间分布的地址交 叉方案配置为高位地址交叉方案、低位地址交叉方案或高位地址交叉方案与低位地址交叉 方案组合模式;
[0094] 访问路由选择模块,用于当请求访问DDR空间时,根据配置的所述地址交叉方案 将请求源访问DDR空间的访存地址映射至目标DDR控制器对应的末级Cache子体中。
[0095] 本实施例中,地址交叉方案配置模块包括高位交叉使能设置单元、组合模式设置 单元以及低位交叉粒度设置单元;高位交叉使能设置单元使能高位地址交叉方案,组合模 式设置单元设置高位地址交叉方案与低位地址交叉方案组合模式中模式配置值N,低位交 叉粒度用于设置低位地址交叉方案中外存地址空间在两个相邻DDR控制器之间的间隔单 位。
[0096] 本实施例中,地址交叉方案配置模块通过具有高位地址交叉使能域En、组合模式 设置域Mode和低位交叉粒度设置域LOI-Grain的地址交叉方案配置寄存器AISR实现,地 址交叉方案配置寄存器AISR结构如上所述。
[0097] 本实施例中,访问路由选择模块包括路由判断地址生成单元和路由映射单元,路 由判断地址生成单元根据据请求源的访存地址和所述地址交叉方案配置模块配置的地址 交叉方案生成路由判断地址BJA,路由判断地址BJA用于进行路由选择;路由映射单元根据 请求源的访求地址的地址范围及映射函数将路由判断地址BJA映射至对应的目标DDR控制 器对应的末级Cache子体。
[0098] 本实施例支持地址交叉方案配置的多DDR间访问控制装置与上述支持地址交叉 方案配置的多DDR间访问控制方法对应,其具有与上述支持地址交叉方案配置的多DDR间 访问控制方法对应的结构且工作原理一致,在此不再赘述。
[〇〇99] 上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明 已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱 离本发明技术方案范围的情况下,都可利用上述揭示的技术内容对本发明技术方案做出许 多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案 的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落 在本发明技术方案保护的范围内。
【权利要求】
1. 一种支持地址交叉方案配置的多DDR访问控制方法,其特征在于,具体实施步骤为: 1) 将外存地址空间在多个DDR控制器间分布的地址交叉方案配置为高位地址交叉方 案、低位地址交叉方案或高位地址交叉方案与低位地址交叉方案组合模式; 2) 当请求访问DDR空间时,根据配置的所述地址交叉方案将请求源访问DDR空间的访 存地址映射至目标DDR控制器对应的末级Cache子体中。
2. 根据权利要求1所述的支持地址交叉方案配置的多DDR访问控制方法,其特征在于, 步骤1)的具体实施步骤为: 1. 1)判断当前应用是否需要启用高位地址交叉方案,若为是,设置为启用高位地址交 叉方案,转入执行步骤1. 2);若为否,设置为不启用高位地址交叉方案并将所有的外存地 址空间的地址交叉方案配置为低位地址交叉方案,转入执行步骤1. 3); 1. 2)判断当前应用是否还需要启用低位地址交叉方案,若为是,将地址交叉方案配置 为高位地址交叉方案与低位地址交叉方案组合模式并设置模式配置值N且N不为0,其中 外存地址空间中1/2 N的地址空间的地址交叉方案配置为高位地址交叉方案,其余(1-1/2n) 的地址空间的地址交叉方案配置为低位地址交叉方案,转入执行步骤1. 3);若为否,设置 高位地址交叉方案与低位地址交叉方案组合模式的模式配置值N为0,将所有的外存地址 空间的地址交叉方案配置为高位地址交叉方案,转入执行步骤2); 1. 3)设置低位地址交叉方案中外存地址空间在两个相邻DDR控制器之间的间隔单位, 转入执行步骤2)。
3. 根据权利要求2所述的支持地址交叉方案配置的多DDR访问控制方法,其特征在于, 所述步骤1)的具体实施方法为:定义包含用于设置是否需要启用高位地址交叉方案的高 位地址交叉使能域、用于设置高位地址交叉方案与低位地址交叉方案组合模式中模式配置 值N的组合模式设置域以及用于设置低位地址交叉方案中外存地址空间在两个相邻DDR控 制器之间间隔单位的低位交叉粒度设置域的地址交叉方案配置寄存器,并通过所述地址交 叉方案配置寄存器配置所述地址交叉方案。
4. 根据权利要求3所述的支持地址交叉方案配置的多DDR访问控制方法,其特征在于, 所述通过所述地址交叉方案配置寄存器配置所述地址交叉方案的具体实施方法为:若需要 配置为低位地址交叉方案时,设置高位地址交叉使能域的值为〇 ;若需要配置为高位地址 交叉方案时,设置高位地址交叉使能域的值为1并通过组合模式设置域设置模式配置值N 为0 ;若需要配置为高位地址交叉方案与低位地址交叉方案组合模式时,设置高位地址交 叉使能域的值为1并通过组合模式设置域设置模式配置值N且N不为0 ;通过低位交叉粒 度设置域设置低位地址交叉方案中外存地址空间在两个相邻DDR控制器之间的间隔单位。
5. 根据权利要求2或3或4所述的支持地址交叉方案配置的多DDR访问控制方法,其 特征在于,所述步骤2)的具体实施步骤为: 2. 1)判断步骤1)中配置的地址交叉方案,并根据请求源的访求地址A生成用于进行目 标DDR控制器路由判断的路由判断地址BJA,A为包括0?H-1位的请求源的访求地址且宽 度为H,其中若配置的地址交叉方案为低位地址交叉方案时,转入执行步骤2. 2);若为高位 地址交叉方案时,转入执行步骤2. 3);若为高位地址交叉方案与低位地址交叉方案组合模 式时,转入执行步骤2.4); 2. 2)路由判断地址BJA = A[L-l+log2W:L],转入执行步骤2. 5); 2. 3)路由判断地址BJA = A[H-l:H-log2W],转入执行步骤2. 5); 2.4)若 A[H-1:H-N] = 0,则路由判断地址 BJA = A[H-N-l:H-N-log2W];若 A[H-1:H-N]关0,则路由判断地址BJA = A[L-l+log2W:L],转入执行步骤2. 5); 2. 5)根据请求源的访求地址的地址范围及映射函数将路由判断地址BJA映射至目标 DDR控制器对应的末级Cache子体; 其中W为末级Cache包含的子体的总数目,N为模式配置值,LOI_Grain为低位地址交 叉方案中外存地址空间在两个相邻DDR控制器之间间隔单位,Μ为末级Cache中一个Cache 行包含的字节数,且L = LOI_Grain+log2M。
6. 根据权利要求5所述的支持地址交叉方案配置的多DDR访问控制方法,其特征在于, 所述步骤2. 5)的具体实施方法为:判断当前请求源的访求地址的地址范围,若地址范围在 配置为高位地址交叉方案的地址区间内,则所述路由判断地址BJA的值、与DDR控制器连接 的末级Cache子体一一对应进行映射;若地址范围在配置为低位地址交叉方案的地址区间 内,则所述路由判断地址BJA的值、与DDR控制器连接的末级Cache子体编号按照循环模T 进行映射,映射公式如下所示 : 末级Cache子体编号={, ; [(BJA*P)%(W-1)其它值 其中W为末级Cache包含的子体的总数目,P为每一个DDR控制器对应的末级Cache子 体的数目。
7. 根据权利所述1?4中任意一项所述的支持地址交叉方案配置的多DDR访问控制方 法,其特征在于,还包括执行下一个任务时的地址交叉方案切换流程,步骤为: 3. 1)将DDR空间中上一个任务的结果数据搬移至非DDR空间,转入执行步骤3. 2); 3. 2)将Cache系统中包含DDR空间副本的Cache行设置为无效,转入执行步骤3. 3); 3. 3)配置下一个任务对应的地址交叉方案,转入执行步骤3.4); 3. 4)将下一个任务的程序按照配置的地址交叉方案搬移至对应的DDR空间,并标记所 述程序在DDR空间中的地址,转入执行步骤3.5); 3. 5)跳转至所述程序在DDR空间中的地址,将下一个任务的数据搬移到DDR空间,完成 切换过程并开始执行任务。
8. -种支持地址交叉方案配置的多DDR间访问控制装置,其特征在于包括: 地址交叉方案配置模块,用于将外存地址空间在多个DDR控制器间分布的地址交叉方 案配置为高位地址交叉方案、低位地址交叉方案或高位地址交叉方案与低位地址交叉方案 组合模式; 访问路由选择模块,用于当请求访问DDR空间时,根据配置的所述地址交叉方案将请 求源访问DDR空间的访存地址映射至目标DDR控制器对应的末级Cache子体中。
9. 根据权利要求8所述的支持地址交叉方案配置的多DDR访问控制装置,其特征在于: 所述地址交叉方案配置模块包括高位交叉使能设置单元、组合模式设置单元以及低位交叉 粒度设置单元;所述高位交叉使能设置单元设置是否需要启用高位地址交叉方案的,所述 组合模式设置单元设置高位地址交叉方案与低位地址交叉方案组合模式中模式配置值N, 所述低位交叉粒度用于设置低位地址交叉方案中外存地址空间在两个相邻DDR控制器之 间的间隔单位。
10.根据权利要求8或9所述的支持地址交叉方案配置的多DDR访问控制装置,其特征 在于:所述访问路由选择模块包括路由判断地址生成单元和路由映射单元,所述路由判断 地址生成单元根据请求源的访存地址和所述地址交叉方案配置模块配置的地址交叉方案 生成路由判断地址BJA ;路由映射单元根据请求源的访求地址的地址范围及映射函数将路 由判断地址BJA映射至对应的目标DDR控制器对应的末级Cache子体中。
【文档编号】G06F21/62GK104112102SQ201410307056
【公开日】2014年10月22日 申请日期:2014年6月30日 优先权日:2014年6月30日
【发明者】刘胜, 陈海燕, 万江华, 陈胜刚, 陈书明, 郭阳, 葛磊磊, 雷元武, 马胜, 王耀华 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1