嵌入式系统及其指令预取装置和方法

文档序号:6593847阅读:192来源:国知局
专利名称:嵌入式系统及其指令预取装置和方法
技术领域
本发明涉及一种嵌入式系统及其指令预取装置和方法,具体来讲,涉及一种可提高嵌入式系统的处理器的数据存取效率的嵌入式系统及其指令预取装置和方法。
背景技术
根据英国电机工程师协会的定义,嵌入式系统(embedded system)为控制、监视或辅助设备、机器或甚至工厂运作的装置。而嵌入式系统几乎可涵盖所有微电脑控制的装置,例如个人计算机中的磁盘驱动器或光驱的伺服控制与数据存取接口等,或者如个人数字助理(PDA)、IA家电等等,都可藉由执行烧录在只读存储器(ROM)内的程序,而达到完成特定动作的目的。
参阅图1,在传统的嵌入式系统的建构方块中,其核心部分最主要是由一处理器51、一存储器控制器52,及一外围装置53所构成,而在各个单元间系以系统总线54来作为数据传输的信道,并藉由存储器控制器52来对外部存储器55以及系统中其它单元(图未示)来进行数据存取的控制,举例来说,当处理器51发出一存储器存取请求(request)时,存储器控制器52即响应此要求,而自存储器55中读取指令(instruction)后传送至处理器51上,使处理器51能对于此一指令进行解码(decode)以及执行(execute)等动作。
相较于一般的PC架构而言,虽然嵌入式系统属于较低效能(lowerperformance)的系统,但已可满足大部分的操作需求,但随着嵌入式系统接口设备的日渐复杂,且为因应不同类别的使用者需求,势必对其核心部分要求有更高速的数据存取速度,特别是在处理器51自存储器55中存取指令码的效能而言,存取延迟(access latency)往往发生在处理器51发出存取请求以及至接受到数据的过程中,虽然处理器51的速度与日俱增,但在指令存取方面的改进却仍有限,因此造成中央处理器51的效能受到限制。以嵌入式系统来说,由于提取周期(fetch cycle)约占处理器51的指令周期(instruction cycle)的30%~50%,因此延迟情况更是不容忽视。
针对上述问题,一般PC可能以下述两种方式来改进存取延迟的问题。一种方法是提高存储器的速度,即以外加一高速缓存(L2 cache)的方式来提高系统的效能,但由于快取忆体乃属于静态随机存取存储器(SRAM)的一种,因此造价高昂且存储器容量往往不大,就价格/效能比而言,并不符合于嵌入式系统的需求。
另一种方法则是采取所谓的指令预取(instruction prefetch)方法,系由处理器51在执行指令的同时,即预先读取存储器55中的下一指令码,因此可快速地处理数据,但由于处理器51亦是藉由系统总线54来进行指令预取的动作,特别是当遇到高连续性的指令或者是太多分枝指令(branch instruction)的时候,常常会造成外围装置53必需等待处理器51在一段长时间的指令存取完成后,才能以系统总线54来进行数据存取,而当外围装置53进行数据存取时,则又使处理器51必需等待一段时间后,才能对存储器55进行数据的存取。换言的,如图2所示,以嵌入式系统为例,系统总线54可能交错地进行指令提取(instruction fetch)以及数据存取(data access)的动作,但如此一来,由于系统总线54被外围设备进行数据存取而占取,使得处理器51必需闲置(idle)一段时间(2个总线周期,2bus cycles),等待数据存取过后,才能再对存储器55进行指令提取的动作,因此造成资源的浪费及系统效率不足的问题。

发明内容
因此,本发明的一个目的是提供一种适用在嵌入式系统上、不需高速缓存就能增进处理器指令提取效率的指令预取方法及其装置。
本发明的另一目的是提供一种能有效减少处理器在发出存取请求后的存取延迟问题的指令预取方法及其装置。
本发明的又一目的是提供一种能有效提高系统总线应用效率的指令预取方法及其装置。
为了实现上述目的,按照本发明的一个方面,提供了一种指令预取装置,设置在一嵌入式系统内,所述嵌入式系统具有一系统总线,以及分别连接在所述系统总线上的一处理器、一存储器,及至少一外围装置,所述指令预取装置包含一存储器控制器,耦接在所述存储器上,用作所述指令预取装置及所述存储器二者之间的输入及输出接口,在受到控制时从所述存储器内提取一预测信号;一指令缓冲器,耦接在所述存储器控制器上,在所述存储器控制器提取所述预测信号后,该预测信号被存储于所述指令缓冲器内;及一预取控制器,耦接在所述系统总线上,可监控所述系统总线的信号传输,并且,当所述系统总线受所述外围装置所控制时,预取所述预测信号并将所述预测信号存储于所述指令缓冲器内,并且,当所述预测信号符合所述处理器的要求时,将所述预测信号自所述指令缓冲器传送至所述处理器。
按照本发明的另一个方面,提供了一种嵌入式系统,该系统包含一系统总线,用作信号传输的路径;一处理器,耦接在所述系统总线上,用以进行信号的处理;一存储器,耦接在所述系统总线上,用于存储信号;及一指令预取装置,耦接在所述系统总线上,用以监控所述系统总线上信号的传输,并且,当所述系统总线受到控制时,可依据所述处理器先前提取的信号而自所述存储器内预取一预测信号存储于所述指令预取装置内,并且,当所述预测信号符合所述处理器的要求时,传送所述预测信号至所述处理器。
按照本发明的再一个方面,提供了一种嵌入式系统的指令预取方法,包含下列步骤监控一系统总线的信号传输情况;依据监控结果决定是否进行一指令预取程序,在进行所述指令预取程序后,使一预测信号存储于一指令预取装置内;依据自一处理器发出的信号,决定对应于该信号的预测信号是否已包含在所述指令预取装置内,并且,当所述预测信号已在所述预取装置内时,将该预测信号自所述预取装置传送至所述处理器;及依据自所述处理器发出的所述信号,决定对应于该信号的预测信号是否已包含在一指令预取装置内,并且,当所述预测信号未包含在所述指令预取装置内时,自一存储器内提取所述预测信号,并将其传送至所述处理器。


本发明的其它技术内容、特征及优点,在以下参考附图对本发明较佳实施例所进行的描述中,将变得更加清楚。在附图中图1是一示意图,说明一现有技术的嵌入式系统建构方块;图2是一示意图,说明该现有技术的嵌入式系统的系统总线及存储器存取工作时序;图3是一示意图,说明本发明指令预取装置的一较佳实施例应用在一嵌入式系统上的情况;图4是一流程图,说明本发明的指令预取方法的步骤;及图5是一示意图,说明应用该较佳实施例后的系统总线及存储器存取工作时序。
附图中的各个标号的含义说明如下1嵌入式系统 11系统总线12存储器 13处理器14外围装置 3指令预取装置3 1存储器控制器 32指令缓冲器33预取控制器 51步骤52步骤 53步骤54步骤 55步骤56步骤具体实施方式
参阅图3,本发明的指令预取装置3设置在一嵌入式系统1内,并耦接在一系统总线11及一存储器12之间,在系统总线11上则另外耦接有一处理器13及至少一外围装置14。
系统总线11是用作提供信号传输的信道,当然,众所周知,此系统总线11可分为地址总线(address bus)、控制总线(control bus),以及数据总线(data bus)等,而其传输频宽的位数则视不同需求而定,此在并不加以限定,以加大设计上的弹性。
处理器13耦接在系统总线11上,其作用在于控制、协调嵌入式系统1内各组件或其它外部装置的通讯与数据传输,而此处理器13内可能包含了一高速缓存(图未示),以增进处理器13处理指令的速度,由于其相关技术已为人熟知,并且并非本发明的重点所在,因而在此不再赘述。
指令预取装置3耦接在系统总线11及存储器12之间,此存储器12指的是所谓的外部存储器(external memory),亦即,在本实施例中,指的是只读式存储器(ROM)、动态随机存取存储器(DRAM)或其它具相同功能的存储器。而指令预取装置3则是用作处理器13及存储器12之间的传输及控制接口,可依据处理器13的请求而对存储器12进行指令提取或指令预取等动作,并可监控系统总线11控制(bus mastering)的情况,其动作将在下述文中再加以详细描述。
指令预取装置3包含了一存储器控制器31、一指令缓冲器32,及一预取控制器33。存储器控制器31耦接在存储器12上,其功能是用作指令预取装置3及存储器12二者之间的输入及输出接口(I/O interface),并可受到预取控制器33的控制而自存储器12内提取(fetch)一预测信号,在本实施例中,此预测信号即指一待执行的指令码(instruction code)。而指令缓冲器32则是当存储器控制器31提取预测信号后,可将预测信号暂存于指令缓冲器32内。预取控制器33耦接在系统总线11上,可监控(monitor)系统总线11的信号传输(transaction)情况,并在处理器13要求对存储器12进行存取之前,依据先前存取的指令而预测下一可能存取的指令(即为预测信号),并将其自存储器12中预取(prefetch)出来并存储在指令缓冲器32内,使得处理器13在请求读取下一指令时,可直接由指令缓冲器32内读取,以增加处理器13进行指令提取的效率。
配合图4,因此,指令预取装置3即进行下述步骤步骤51中,藉由预取控制器33来监控系统总线11是否已被外围装置14所占用,亦即,利用预取控制器33来针对系统总线11上所进行的数据传输动作进行检测,若此系统总线11已被外围装置14所占用,则指令预取装置3则进行一指令预取(prefetch)程序(步骤52),此指令预取程序是藉由预取控制器33依据处理器13先前存取的指令而对处理器13下一次可能提取的指令加以预测,并将其自存储器12中提取后暂存在指令缓冲器32中,以备处理器13进行下一次指令的读取时,若指令缓冲器32内的信号符合(hit)于处理器的要求,则可直接由指令缓冲器32内读取,减少存取存储器12的时间。而由于指令具有连续(sequence)的特性,特别是在嵌入式系统上,遇到分支指令(branch instruction)的情况极少,因此绝大部分皆可由指令缓冲器32内直接加以读取,此外,关于下一时序指令(预测信号)的预测技术,由于已为熟悉此项技术人士所能轻易了解,因此不再赘述。
当系统总线11未被外围装置14所占用时,且处理器13对指令预取装置3发出一存取存储器12的请求(步骤53)时,预取控制器33则接收处理器13所传送的地址信号,并判断存储于指令缓冲器32内的指令是否为处理器13所需要(步骤54),若此指令符合(hit)于处理器13的要求时,如步骤55,则直接由指令缓冲器32中取出,并经由系统总线11传送至处理器13上(步骤55);另一方面,若存储于指令缓冲器32内的指令不符合(miss)处理器13的要求时,则如步骤56,进行一指令提取程序,亦即依据处理器13所传送的地址信号,通过预取控制器33去控制存储器控制器31,进而直接由存储器12中提取相对应的指令后再传回处理器13内,当然,在步骤56中,还包含一清除(clear)指令缓冲器32的步骤(图中未示出),可使指令缓冲器32接受下一预取指令的存储。此外,在本实施例中,虽仅在指令预取装置3内设置一指令缓冲器32,事实上,指令缓冲器32亦可设置一个以上,当设置多个指令缓冲器32时,即可存储多个预测信号,因此可以省去每次皆需清除指令缓冲器32的步骤,仅需在所有的指令缓冲器32皆被占据而尚需存入预测信号时,再进行清除指令缓冲器32的步骤。
配合图5,对照现有技术与本发明在进行指令提取时系统总线与存储器接口的工作时序图,在本发明中,利用预取控制器33来监控系统总线11的特性,使得系统总线11在进行外围装置14的数据存取(DA1)时,预先将指令(IF2)由存储器12内提取至指令缓冲器32内,因此当处理器13欲提取下一指令(IF2)时,即可直接由指令缓冲器32内取出后,经由系统总线11传送至处理器13上,因此相较于现有技术的架构,进行指令(IF2)提取的时间由2个总线周期(bus cycle)减少为1个总线周期,另一方面,在指令(IF2)经由系统总线11传送至处理器13的同时,又可再进行下一指令(IF3)的预取动作,因此可增加系统总线11的效能,并有效缩短处理器13提取指令的时间,举例来说,如图5中所示,在资料存取(DA3)的阶段,本发明相较于现有技术的结构即已大约快了2个总线周期。
综合上述,本发明指令预取装置3利用系统总线11被外围装置14所占取的时间,即进行指令预取动作使得处理器13能够自指令缓冲器32内直接存取指令,因此能够有效地减少存取延迟时间并增进系统总线11的应用效率,确实达到本发明的目的。
虽然上面已经参照本发明的较佳实施例对本发明进行了图示和说明,但这些图示和说明仅用于解释本发明,而不能用于限制本发明的范围,即,凡依本发明权利要求书及发明说明书内容所作的简单的等效变化与修饰,皆应属本发明专利的涵盖范围。
权利要求
1.一种指令预取装置,设置在一嵌入式系统内,所述嵌入式系统具有一系统总线,以及分别连接在所述系统总线上的一处理器、一存储器,及至少一外围装置,所述指令预取装置包含一存储器控制器,耦接在所述存储器上,用作所述指令预取装置及所述存储器二者之间的输入及输出接口,在受到控制时从所述存储器内提取一预测信号;一指令缓冲器,耦接在所述存储器控制器上,在所述存储器控制器提取所述预测信号后,该预测信号被存储于所述指令缓冲器内;及一预取控制器,耦接在所述系统总线上,可监控所述系统总线的信号传输,并且,当所述系统总线受所述外围装置所控制时,预取所述预测信号并将所述预测信号存储于所述指令缓冲器内,并且,当所述预测信号符合所述处理器的要求时,将所述预测信号自所述指令缓冲器传送至所述处理器。
2.如权利要求1所述的指令预取装置,其中,所述预测信号是所述预取控制器依据所述处理器先前存取信号所预测,并进而控制所述指令预取装置自所述存储器中所提取的。
3.一种嵌入式系统,包含一系统总线,用作信号传输的路径;一处理器,耦接在所述系统总线上,用以进行信号的处理;一存储器,耦接在所述系统总线上,用于存储信号;及一指令预取装置,耦接在所述系统总线上,用以监控所述系统总线上信号的传输,并且,当所述系统总线受到控制时,可依据所述处理器先前提取的信号而自所述存储器内预取一预测信号存储于所述指令预取装置内,并且,当所述预测信号符合所述处理器的要求时,传送所述预测信号至所述处理器。
4.如权利要求3所述的嵌入式系统,其中,所述指令预取装置包含一存储器控制器,用作所述指令预取装置及所述存储器之间的输入及输出接口,在受到控制时自所述存储器内提取所述预测信号;一指令缓冲器,在所述存储器控制器提取所述预测信号后,该预测信号被存储于所述指令缓冲器内;及一预取控制器,耦接在所述系统总线上,可监控所述系统总线的信号传输,藉由所述系统总线而接受所述处理器的要求,控制所述存储器控制器提取所述预测信号,并将该信号存储至所述指令缓冲器内,并且,当所述预测信号符合所述处理器的要求时,自所述指令缓冲器提取所述预测信号并回传至所述处理器。
5.一种嵌入式系统的指令预取方法,包含下列步骤监控一系统总线的信号传输情况;依据监控结果决定是否进行一指令预取程序,在进行所述指令预取程序后,使一预测信号存储于一指令预取装置内;依据自一处理器发出的信号,决定对应于该信号的预测信号是否已包含在所述指令预取装置内,并且,当所述预测信号已在所述预取装置内时,将该预测信号自所述预取装置传送至所述处理器;及依据自所述处理器发出的所述信号,决定对应于该信号的预测信号是否已包含在一指令预取装置内,并且,当所述预测信号未包含在所述指令预取装置内时,自一存储器内提取所述预测信号,并将其传送至所述处理器。
6.如权利要求5所述的指令预取方法,其中,所述指令预取程序包含下列步骤依据所述处理器先前自所述存储器存取的信号,预测一预测信号;自所述存储器提取所述预测信号;及将所述预测信号存储至所述指令预取装置内。
全文摘要
本发明提供了一种嵌入式系统及其指令预取装置和方法,该系统包含一预取控制器、一指令缓冲器,及一存储器控制器。预取控制器耦接在嵌入式系统的系统总线上,可用来监控系统总线的信号传输情况,并且,当系统总线受外围装置的控制时,控制存储器控制器进行指令预取程序,并将待执行的指令存储在指令缓冲器内,当此待执行的指令符合处理器的要求时,可直接将该指令自该指令缓冲器传送至处理器内,因此可增进处理器提取指令的速度,并能提高总线的应用效率。
文档编号G06F9/30GK1484157SQ0214276
公开日2004年3月24日 申请日期2002年9月20日 优先权日2002年9月20日
发明者林昌辅 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1