多个块一致性操作的并行处理的制作方法

文档序号:6516678阅读:176来源:国知局
多个块一致性操作的并行处理的制作方法
【专利摘要】本发明涉及一种通过使多CPU环境中的多个重叠块无效操作与正常CPU存取重叠因此使所述块无效操作的延迟透明来消除所述延迟的方法。执行所述块无效操作的高速缓存控制器将多个重叠请求合并到并行流中以消除执行延迟。还可将除块无效之外的例如块回写或块回写无效的高速缓存操作合并到执行流中。
【专利说明】多个块一致性操作的并行处理
【技术领域】
[0001]本发明的【技术领域】为用于数字数据处理器的高速缓冲存储器。
【背景技术】
[0002]在层次型高速缓存系统中,可能需要块无效操作以使高速缓存在存储器系统中的行块无效。在块一致性操作中,用户编程基址以及需要从高速缓冲存储器移除的字的数目。高速缓存控制器接着迭代通过整个高速缓冲存储器,且如果控制器发现在既定地址范围内的地址,那么所述控制器将把那个特定集合及方式标记为无效。通常需要块无效操作来保持多处理器系统内的数据一致性。
[0003]图6中图解说明一实例。在多核心环境中,CPU1601正更新在地址范围A内的数据。在CPUl完成后,另一 CPU可开始进程603且更新相同地址范围内的数据。如果在此时间期间CPUl需要存取此地址范围内的数据,那么其将需要从另一 CPU获得数据的经更新副本,然而,所需数据中的一些数据仍可高速缓存在CPUl中-因此CPUl将获得旧数据,除非将在相同地址范围A内对CPUl的高速缓冲存储器执行块无效602操作。接着,此将确保CPUl请求将导致高速缓存未命中,且将从主存储器供应正确数据。

【发明内容】

[0004]本发明中所描述的方法通过在块无效操作在进行中时对每一尝试的CPU存取进行范围检查来消除图6中所展示的块无效操作中固有的延迟。如果CPU存取导致高速缓存命中,但高速缓存地址属于所述块无效操作范围内,那么将把所述存取视为高速缓存未命中,从而确保将从主存储器存取正确数据而无需等待直到块无效操作完成。
[0005]如果请求多个重叠块无效操作,那么还可并行地执行所述操作以便消除串行执行中固有的等待时间。还可将同时块无效(BI)、块回写(BW)及块回写与无效(BWI)请求合并到并行执行流中。
【专利附图】

【附图说明】
[0006]图式中图解说明本发明的这些及其它方面,其中:
[0007]图1图解说明本发明可适用的典型数字信号处理器的组织(现有技术);
[0008]图2图解说明适合于在图1中使用的极长指令字数字信号处理器核心的细节(现有技术);
[0009]图3图解说明图2中所图解说明的极长指令字数字信号处理器核心的管线级(现有技术);
[0010]图4图解说明图2中所图解说明的极长指令字数字信号处理器核心的指令语法(现有技术);
[0011]图5图解说明一组典型现有技术高速缓存行的细节(现有技术);
[0012]图6图解说明以串行方式进行的块一致性操作;[0013]图7图解说明以并行方式进行的块一致性操作;
[0014]图8图解说明进行中的高速缓存无效操作。
【具体实施方式】
[0015]图1图解说明本发明可适用的典型数字信号处理器系统100的组织(现有技术)。数字信号处理器系统100包含中央处理单元核心110。中央处理单元核心110包含数字信号处理器系统100的数字处理部分。中央处理单元核心110可如此项技术中已知的那样构造且通常将包含寄存器堆、整数算术逻辑单元、整数乘法器及程序流控制单元。下文结合图2到4描述适当中央处理单元核心的实例。
[0016]数字信号处理器系统100包含若干个高速缓冲存储器。图1图解说明一对第一层级高速缓冲存储器。层级I指令高速缓冲存储器(LlI) 121存储由中央处理单元核心110使用的指令。中央处理单元核心110首先尝试从层级I指令高速缓冲存储器121存取任何指令。层级I数据高速缓冲存储器(LlD) 123存储由中央处理单元核心110使用的数据。中央处理单元核心110首先尝试从层级I数据高速缓冲存储器123存取任何所需数据。两个层级I高速缓冲存储器由层级2统一高速缓冲存储器(L2) 130支持。在对层级I指令高速缓冲存储器121或对层级I数据高速缓冲存储器123的高速缓存未命中的情况中,可从层级2统一高速缓冲存储器130寻找所请求的指令或数据。如果所请求的指令或数据存储于层级2统一高速缓冲存储器130中,那么将其供应到发请求的层级I高速缓冲存储器用于供应到中央处理单元核心110。如此项技术中已知,可同时将所请求的指令或数据供应到发请求的高速缓冲存储器及中央处理单元核心110两者以加快使用速度。
[0017]层级2统一高速缓冲存储器130进一步耦合到更高级存储器系统。数字信号处理器系统100可为多处理器系统的一部分。多处理器系统的其它处理器经由传送请求总线141及数据传送总线143耦合到层级2统一高速缓冲存储器130。直接存储器存取单元150提供数字信号处理器系统100到外部存储器161及外部外围设备169的连接。
[0018]图1图解说明数字信号处理器系统100内的数个数据/指令移动。这些移动包含:(I)响应于LlI高速缓存未命中,指令从L2高速缓冲存储器130移动到LlI高速缓冲存储器121以进行填充;(2)响应于LlD高速缓存未命中,数据从L2高速缓冲存储器130移动到LlD高速缓冲存储器123以进行填充;(3)响应于LlD高速缓冲存储器123中的写入未命中、响应于LlD高速缓冲存储器123受害逐出(victim eviction)且响应于来自L2高速缓冲存储器130的窥探,数据从LlD高速缓冲存储器123移动到L2高速缓冲存储器130 ;(4)响应于L2高速缓存未命中或直接存储器存取(DMA)数据传送到L2高速缓冲存储器130中,数据从外部存储器161移动到L2高速缓冲存储器130以进行填充;(5)响应于L2高速缓冲存储器受害逐出或回写且响应于DMA传送出L2高速缓冲存储器130,数据从L2高速缓冲存储器130移动到外部存储器161 ; (6)响应于DMA传送到L2高速缓冲存储器130中,数据从外围设备169移动到L2高速缓冲存储器130 ;及(7)响应于DMA传送出L2高速缓冲存储器130,数据从L2高速缓冲存储器130移动到外围设备169。
[0019]图2为图解说明适合但非必需用于本发明的数字信号处理器集成电路200的细节的框图(现有技术)。数字信号处理器集成电路200包含中央处理单元1,其为32位八路VLIW管线化处理器。中央处理单元I耦合到包含在数字信号处理器集成电路200中的层级I指令高速缓冲存储器121。数字信号处理器集成电路200还包含层级I数据高速缓冲存储器123。数字信号处理器集成电路200还包含外围设备4到9。这些外围设备优选地包含外部存储器接口(EMIF)4及直接存储器存取(DMA)控制器5。外部存储器接口(EMIF)4优选地支持对同步及异步SRAM以及同步DRAM的存取。直接存储器存取(DMA)控制器5优选提供2通道自启动加载直接存储器存取。这些外围设备包含断电逻辑6。断电逻辑6优选地可停止中央处理单元活动、外围设备活动及锁相环路(PLL)时钟同步活动以减少功率消耗。这些外围设备还包含主机端口 7、串行端口 8及可编程计时器9。
[0020]中央处理单元I具有32位字节可寻址地址空间。同一集成电路上的内部存储器优选被组织在包含层级I数据高速缓冲存储器123的数据空间及包含层级I指令高速缓冲存储器121的程序空间中。当使用芯片外存储器时,优选地经由外部存储器接口(EMIF)4来将这两个空间统一为单个存储器空间。
[0021]层级I数据高速缓冲存储器123可由中央处理单元I经由两个内部端口 3a及3b在内部存取。每一内部端口 3a及3b优选地具有32位的数据及32位字节地址范围(reach)。层级I指令高速缓冲存储器121可由中央处理单元I经由单个端口 2a在内部存取。层级I指令高速缓冲存储器121的端口 2a优选地具有256位的指令提取宽度及等效于32位字节地址的30位字(四个字节)地址。
[0022]中央处理单元I包含程序提取单元10、指令分派单元11、指令解码单元12以及两个数据路径20及30。第一数据路径20包含四个功能单元(标示为LI单元22、S1单元
23、Ml单元24及Dl单元25)及形成寄存器堆21的16个32位A寄存器。第二数据路径30同样地包含四个功能单元(标示为L2单元32、S2单元33、M2单元34及D2单元35)及形成寄存器堆31的16个32位B寄存器。每一数据路径的功能单元针对其操作数而存取对应的寄存器堆。每一管线级存在准许存取相反寄存器堆中的一个寄存器的两个交叉路径27及37。中央处理单元I包含控制寄存器13、控制逻辑14以及测试逻辑15、仿真逻辑16及中断逻辑17。
[0023]程序提取单元10、指令分派单元11及指令解码单元12在每个指令循环从层级I指令高速缓冲存储器121再调用指令,且将最多八个32位指令向上递送到功能单元。处理在两个数据路径20及30中的每一者中同时发生。如先前所描述,每一数据路径具有四个对应功能单元(L、S、M及D)及含有16个32位寄存器的对应寄存器堆。每一功能单元由32位指令控制。下文进一步描述所述数据路径。控制寄存器堆13提供用以配置且控制各种处理器操作的手段。
[0024]图3说明数字信号处理器核心110的管线级300 (现有技术)。这些管线级划分为三个群组:提取群组310 ;解码群组320 ;及执行群组330。指令集中的所有指令流经管线的提取、解码及执行级。提取群组310具有用于所有指令的四个阶段,且解码群组320具有用于所有指令的两个阶段。执行群组330取决于指令的类型而需要变化数目个阶段。
[0025]提取群组310的提取阶段为:程序地址产生阶段311 (PG);程序地址发送阶段312 (PS);程序存取准备等待级313 (PW);及程序提取包接收级314 (PR)。数字信号处理器核心110使用八个指令的提取包(FP)。所有八个指令一起前进经过提取群组310。在PG阶段311期间,在程序提取单元10中产生程序地址。在PS阶段312期间,将此程序地址发送到存储器。在PW阶段313期间,发生存储器读取。最后在PR阶段314期间,在CPUl处接收提取包。
[0026]解码群组320的解码阶段为:指令分派(DP) 321 ;及指令解码(DC) 322。在DP阶段321期间,将提取包分裂为若干执行包。执行包由经译码以并行执行的一个或一个以上指令组成。在DP阶段322期间,将执行包中的指令指派给适当功能单元。同样在DC阶段322期间,对源寄存器、目的地寄存器及相关联的路径解码以在相应功能单元中执行所述指令。
[0027]执行群组330的执行阶段为:执行I (El) 331 ;执行2 (E2) 332 ;执行3 (E3) 333 ;执行4伍4)334;及执行5伍5)335。不同类型的指令需要不同数目个这些阶段来完成。管线的这些阶段在理解CPU循环边界处的装置状态方面起到重要作用。
[0028]在El阶段331期间,评估指令的条件且读取所有指令类型的操作数。对于加载及存储指令,执行地址产生且将地址修改写入到寄存器堆。对于分支指令,PG阶段311中的分支提取包受到影响。对于所有单循环指令,将结果写入到寄存器堆。所有单循环指令在El阶段331期间完成。
[0029]在E2阶段332期间,对于加载指令,将地址发送到存储器。对于存储指令,将地址及数据发送到存储器。使结果饱和的单循环指令在发生饱和的情况下设定控制状态寄存器(CSR)中的SAT位。对于单循环16乘16乘法指令,将结果写入到寄存器堆。对于M单位非乘法指令,将结果写入到寄存器堆。所有普通乘法单元指令在E2阶段322期间完成。
[0030]在E3阶段333期间,执行数据存储器存取。使结果饱和的任何乘法指令在发生饱和的情况下设定控制状态寄存器(CSR)中的SAT位。存储指令在E3阶段333期间完成。
[0031]在E4阶段334期间,对于加载指令,将数据带到CPU边界。对于乘法扩展指令,将结果写入到寄存器堆。乘法扩展指令在E4阶段334期间完成。
[0032]在E5阶段335期间,加载指令将数据写入到寄存器中。加载指令在E5阶段335期间完成。
[0033]图4图解说明由数字信号处理器核心110使用的指令的指令译码的实例(现有技术)。每一指令由32个位组成,且控制八个功能单元中的一者的操作。如下定义位字段。creg字段(位29到31)是条件寄存器字段。这些位识别指令是否为有条件的,且识别预测寄存器。z位(位28)指示在预测寄存器中预测是基于零还是非零。如果z=l,那么测试是针对具有零的等式。如果z=0,那么测试是针对非零。将Creg=O及Z=O的情况视为总是成立的,以允许无条件指令执行。如表I中所示,在指令操作码中编码creg字段。
【权利要求】
1.一种并行执行多个块无效操作的方法,其包括以下步骤: 接收规定开始地址及将无效的范围的块无效操作请求; 确定随后接收的块无效操作请求是否属于先前接收的块无效操作请求的地址范围内或与其重叠; 针对所有重叠地址,并行执行所述块无效操作。
2.根据权利要求1所述的方法,其中: 与正执行的块操作并行地执行属于所述操作的所述地址范围内或与其重叠的块回写操作请求。
3.根据权利要求1所述的方法,其中: 与正执行的块操作并行地执行属于所述操作的所述地址范围内或与其重叠的块回写与无效操作请求。
【文档编号】G06F12/08GK103778070SQ201310512856
【公开日】2014年5月7日 申请日期:2013年10月25日 优先权日:2012年10月25日
【发明者】纳韦恩·布霍里亚, 拉古拉姆·达莫达兰 申请人:德州仪器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1