预先撷取控制方法

文档序号:6510631阅读:198来源:国知局
专利名称:预先撷取控制方法
技术领域
本发明是关于预先撷取控制方法,特别是关于利用合并存取方式向总线接口单元请求至少两倍资料量,并将所接收的一部分或全部资料储存在预先撷取缓冲器的预先撷取控制方法。
背景技术
一般的计算机架构包含有处理器核心(Processor Core)、L1指令快取单元(L1 I-cache)、L1资料快取单元(L1 D-cache)、预先撷取快取单元(Pre-fetch catch unit)、以及主存储器(Main Memory)。处理器核心从L1指令快取单元读取指令的优先权及速度高于从预先撷取快取单元读取指令,且从预先撷取快取单元读取指令的优先权及速度高于从主存储器读取指令。因此,若能提高处理器核心从L1指令快取单元或预先撷取快取单元读取指令的命中率(Hit rate),将有助于提升此计算机系统的效能(Performance)。
图1显示处理器核心请求指令的示意图,其中所请求的指令没有在L1指令快取单元找到(Cache Miss)。其步骤如下1.处理器核心11向L1指令快取单元12发出读取指令请求。
2.L1指令快取单元12没有找到处理器核心11所请求的指令(CacheMiss),因此该L1指令快取单元12向预先撷取快取单元13发出读取指令请求。
3.预先撷取快取单元13在指令预先撷取缓冲器(InstructionPre-fetch Buffer,IPB)找到(Hit)并读取所需指令。
4.预先撷取快取单元13将所需指令传回L1指令快取单元12。
5.L1指令快取单元12将指令输出到处理器核心11。
图2显示处理器核心请求指令的示意图,其中所请求的指令没有在L1指令快取单元找到(Cache Miss),也没有在指令预先撷取缓冲器找到。其步骤如下1.处理器核心11向L1指令快取单元12发出读取指令请求。
2.L1指令快取单元12没有找到处理器核心11所请求指令(CacheMiss),因此该L1指令快取单元12向预先撷取快取单元13发出读取指令请求。
3.预先撷取快取单元13没有在指令预先撷取缓冲器(InstructionPre-fetch Buffer,IPB)14找到,因此向总线接口单元(BusInterface Unit,BIU)15发出指令请求。
4.预先撷取快取单元13接收总线接口单元15的指令并传回L1指令快取单元12。
5.L1指令快取单元12将指令输出到处理器核心11。
一般而言,处理器核心11从L1指令快取单元12读取资料的时间比从预先撷取快取单元13读取资料的时间快上数倍左右;处理器核心11从预先撷取快取单元13读取资料的时间比从总线接口单元15读取资料的时间快上数倍左右;以及处理器核心11从L1指令快取单元12读取资料的时间比从总线接口单元15读取资料的时间快上数十倍左右。因此,若能增加L1指令快取单元12以及预先撷取快取单元13的命中率,则可增加系统的效率。但是若要提升命中率,则需要较高的成本以及较复杂的预先撷取算法(Pre-fetch Algorithm),且需要较多的硬件电路,并消耗较多功率。而且,系统总线会被预先存取工作占据过久的时间,所以系统的效能可能会变差。而先前的技术都着重于如何提高预先撷取快取的命中率,并未讨论系统效能(System Performance)的因素。

发明内容
有鉴于上述问题,本发明的目的是提出一种预先撷取控制方法,利用合并存取方式向总线接口单元请求至少两倍资料量,并将所接收的一部分或全部资料储存在预先撷取缓冲器的预先撷取控制方法。
为达成上述目的,本发明预先撷取控制方法包含下列步骤一、接收快取控制器发出的M-bytes资料请求;二、预先撷取控制器确认预先撷取缓冲器是否存在所请求的资料,若找到所请求的资料则将资料传回快取控制器,若没有找到所请求的资料则跳至下一步骤;三、根据合并存取条件来判断是否需要合并存取资料,若不符合合并存取资料,则向外部单元发出M-bytes资料请求,若符合合并存取资料,则向外部单元发出n*M-bytes资料请求,其中n>=2;四、若向外部单元发出M-bytes资料请求,则将所接收的M-bytes资料传回快取控制器;以及五、若向外部单元发出n*M-bytes资料请求,则除了将所接收的前M-bytes资料传回快取控制器之外,还将后(n-1)*M-bytes资料储存在预先撷取缓冲器。
其中,所谓的合并存取条件是指接收到两个连续地址或特定特性的资料请求。


图1显示已知处理器核心请求指令的示意图,其中所请求的指令没有在L1指令快取单元找到;图2显示已知处理器核心请求指令的示意图,其中所请求的指令没有在L1指令快取单元找到,也没有在指令预先撷取缓冲器找到;图3显示本发明处理器核心请求指令的示意图的一实施例,是利用合并存取将下一地址资料写入预先撷取缓冲器;
图4显示本发明处理器核心请求指令的示意图的另一实施例,是利用合并存取将两个连续地址资料写入预先撷取缓冲器;图5A与图5B显示本发明预先撷取控制方法的流程图。
具体实施例方式
以下参考图式详细说明本发明预先撷取控制方法。
一般而言,如主存储器、硬盘、光盘等外部单元的资料存取可为突发模式(Burst-Mode),因此,此种外部单元,例如SDRAM,允许控制器在存取多个字组时,不用对每个字组花费CAS存取时间。所以,系统向此种外部单元读取2*M-bytes资料的时间会少于分别以两次读取M-bytes资料所花费的时间,例如分别以两次读取M-bytes资料可能需要52周期(cycle),而一次读取2*M-bytes资料的时间可能只需34周期。因此,本发明预先撷取控制方法即利用此特性,在符合合并存取的条件时,以至少两倍于快取控制器所请求的资料量向外部单元读取资料。之后,将所接收到的资料一部分或全部储存在预先撷取缓冲器,藉以节省总线结面单元被占用的时间。
图3显示本发明处理器核心请求指令的示意图,其中所请求的指令没有在L1指令快取单元找到(Cache Miss),也没有在指令预先撷取缓冲器找到。其指令读取的方式如下1.处理器核心11向L1指令快取单元12发出读取指令请求。
2.L1指令快取单元12没有找到处理器核心11所需指令,因此该L1指令快取单元12向预先撷取快取单元13发出读取M-bytes指令请求。
3.预先撷取快取单元13没有在指令预先撷取缓冲器14找到,但由于预先撷取快取单元13侦测到符合合并存取的条件,因此向总线接口单元15发出2*M-bytes指令请求。
4.预先撷取快取单元13接收总线接口单元15的资料,并将前M-bytes指令传回L1指令快取单元12。
5.L1指令快取单元12将指令输出到处理器核心11,且预先撷取快取单元13将其余M-bytes指令填入指令预先撷取缓冲器中。
而上述所谓“符合合并存取的条件”在此是指L1指令快取单元12发出两次连续地址的指令请求。也就是,处理器核心11需要两个连续地址的指令。根据此需求来判断,处理器核心11可能需要下一个连续地址的指令或资料,因此本发明的预先撷取快取单元13向总线接口单元15发出2*M-bytes指令请求,并将前M-bytes指令传回L1指令快取单元12,而将后M-bytes指令填入指令预先撷取缓冲器中。所以,若处理器核心11真的需要下一个连续地址的指令,则可直接从该指令预先撷取缓冲器来读取,不需向总线接口单元15发出M-bytes指令请求,藉以节省向总线接口单元15发出M-bytes指令请求的时间,同时减少处理器核心11的等待时间。例如,若以已知方式向总线口单元15发出指令请求,需要2次M-bytes存取周期,大约52周期;而本发明则仅需要一次2*M-bytes存取周期,大约34周期。
图4显示处理器核心请求指令的示意图,其中所请求的指令没有在L1指令快取单元找到,但在指令预先撷取缓冲器找到。另外,图4的预先撷取快取单元13还接收一强制预取信号。该强制预取信号是在特别情形下由其它硬件或微处理单元产生,例如当微处理单元接收到强制撷取某些资料至快取单元,快取单元可将该强制预取信号致能(Enable)。其指令读取的方式如下1.处理器核心11向L1指令快取单元12发出读取指令请求。
2.L1指令快取单元12没有找到处理器核心11所需指令,因此该L1指令快取单元12向预先撷取快取单元13发出读取M-bytes指令请求。
3.预先撷取快取单元13在指令预先撷取缓冲器14找到所需指令并将指令传回L1指令快取单元12。
4.预先撷取快取单元13侦测到符合合并存取的条件,因此向总线接口单元15发出2*M-bytes指令请求。
5.预先撷取快取单元13将2*M-bytes指令填入指令预先撷取缓冲器中。
而上述所谓“符合合并存取的条件”在此是指在指令预先撷取缓冲器14找到所需指令,且其余指令预先撷取缓冲器14为空、无效(invalid)、无下一个连续位的资料或强制预取信号被致能。根据此需求来判断,处理器核心11可能需要下一个连续地址的指令,本发明的预先撷取快取单元13向总线接口单元15发出2*M-bytes指令请求,并将2*M-bytes指令填入指令预先撷取缓冲器中。所以,若处理器核心11真的需要下一个连续地址的指令,则可直接从该指令预先撷取缓冲器来读取,不需向总线接口单元15发出指令请求,藉以节省向总线接口单元15发出指令请求的时间。而且,由于预先撷取快取单元13向总线接口单元15发出2*M-bytes指令请求,可以减少CPU占用系统总线的时间,也可减少CPU等待的时间(Idle time)。
图5A与图5B显示本发明预先撷取控制方法的流程图。以下根据该流程图详细说明本发明预先撷取控制方法的控制步骤。
步骤S502开始。
步骤S504接收快取控制器发出M-bytes资料请求。当快取控制器没有在高速缓存找到所需指令或资料时,该快取控制器会发出M-bytes资料请求。
步骤S506确认是否在预先撷取缓冲器找到所需指令或资料?当有找到时则跳至步骤S514,否则执行下一步骤S508。
步骤S508确认是否符合合并存取的条件?也即所接收的前两次M-bytes资料请求是否为连续地址或侦测到强制预取信号被致能?若是,则符合合并存取的条件,跳至步骤S520;若否,则不符合合并存取条件,跳至步骤S510。
步骤S510预先撷取控制器发出M-bytes资料请求。也即预先撷取控制器向总线接口单元发出M-bytes资料请求。
步骤S512从总线接口单元接收M-bytes资料。
步骤S514将所需的M-bytes资料填入高速缓存(cache memory,快取存储器)。
步骤S516确认是否符合合并存取的条件?也即在预先撷取缓冲器找到所需指令,且其余预先撷取缓冲器为空、无效或无下一个连续位的资料?若是,则符合合并存取的条件,跳至步骤S530;若否,则不符合合并存取的条件,跳回步骤S504。
步骤S520预先撷取控制器发出n*M-bytes资料请求,其中n为大于1的整数。也即预先撷取控制器向总线接口单元发出n*M-bytes资料请求。n的值可根据预先撷取缓冲器的大小来决定。
步骤S522从总线接口单元接收n*M-bytes资料。
步骤S524将所接收的前M-bytes资料填入高速缓存。
步骤S526将所接收的后(n-1)*M-bytes资料填入预先撷取缓冲器,并跳回步骤S504。
步骤S530预先撷取控制器发出n*M-bytes资料请求,其中n为大于1的整数。也即预先撷取控制器向总线接口单元发出n*M-bytes资料请求。n的值可根据预先撷取缓冲器的大小来决定。
步骤S532从总线接口单元接收n*M-bytes资料。
步骤S534将所接收的n*M-bytes资料填入预先撷取缓冲器,并跳回步骤S504。
上述是否符合合并存取的条件还可包含收到特定特性的地址的资料请求。例如若设定一特定位址区域为自动预取区,则当所请求的地址属于该特定位址区域,则判定为符合合并存取的条件。
因此,根据上述步骤,本发明预先撷取控制方法在符合合并存取的条件时,会向总线接口单元发出至少两倍于M-bytes资料的请求,藉以利用连续读取至少两倍M-bytes资料可缩短资料读取时间的好处,来节省CPU占用系统总线的时间,并节省CPU等待时间。
以上虽以实施例说明本发明预先撷取控制方法,但并不因此限定本发明的范围,只要不脱离本发明的要旨,该行业者可进行各种变形或变更。例如,虽然上述说明是指指令预先撷取快取的控制方法,但也可应用于资料预先撷取快取的控制方法。
权利要求
1.一种预先撷取控制方法,该控制方法是应用于具有快取控制器的系统,该系统还包含一预先撷取控制器与预先撷取缓冲器,其特征在于该方法包含下列步骤接收资料请求步骤,是接收前述快取控制器发出的M-bytes资料请求;资料找到确认步骤,前述预先撷取控制器确认前述预先撷取缓冲器是否储存有所请求的资料,若找到所请求的资料则将资料传回前述快取控制器,若没有找到所请求的资料则跳至下步骤;合并存取确认步骤,是根据合并存取的条件来判断是否需要合并存取资料,若不符合合并存取的条件,则向外部单元发出M-bytes资料请求,若符合合并存取的条件,则向外部单元发出n*M-bytes资料请求,其中n>=2;若向外部单元发出M-bytes资料请求,则将所存取的M-bytes资料传回前述快取控制器;以及若向外部单元发出n*M-bytes资料请求,则除了将所接收的前M-bytes资料传回前述快取控制器之外,还将接收的后(n-1)*M-bytes资料储存在前述预先撷取缓冲器。
2.如权利要求1所记载的预先撷取控制方法,其特征在于,其中前述合并存取的条件为前述接收资料请求步骤中收到两个连续地址的资料请求。
3.如权利要求1所记载的预先撷取控制方法,其特征在于,其中前述合并存取的条件为前述接收资料请求步骤中收到特定特性的地址的资料请求,如设定某一特定地址区域为自动预取区。
4.如权利要求1所记载的预先撷取控制方法,其特征在于,其中前述合并存取的条件为前述接收资料请求步骤中还侦测到一强制预取信号被致能。
5.如权利要求1所记载的预先撷取控制方法,其特征在于,其中前述合并存取的条件为前述资料找到确认步骤中有找到所请求的资料。
6.如权利要求1所记载的预先撷取控制方法,其特征在于,其中在前述资料找到确认步骤中若找到所请求的资料,则除了将资料传回前述快取控制器,还确认是否符合预先撷取条件,若符合预先撷取条件则若向外部单元发出(n-1)*M-bytes资料请求,且将所存取的(n-1)*M-bytes资料储存在前述预先撷取缓冲器中。
全文摘要
一种预先撷取控制方法,是在接收到快取控制器发出连续地址或特定地址的M-bytes资料请求且没有在预先撷取缓冲器找到资料时,向外部单元发出n*M-bytes资料请求,其中n>=2,且M为高速缓存每个记录单元(entry)的大小;且除了将所接收的前M-bytes资料传回快取控制器之外,还将后(n-1)*M-bytes资料储存在预先撷取缓冲器。因此,该预先撷取的控制方法可节省连续向外部单元读取资料的时间,藉以降低中央处理单元CPU占用系统总线的时间。
文档编号G06F9/38GK1811733SQ20051000276
公开日2006年8月2日 申请日期2005年1月26日 优先权日2005年1月26日
发明者黄明权 申请人:凌阳科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1