使用n路高速缓冲存储器的系统和方法

文档序号:6478564阅读:146来源:国知局
专利名称:使用n路高速缓冲存储器的系统和方法
技术领域
本发明大体上涉及一种使用η路高速缓冲存储器的系统和方法。
背景技术
技术上的进步已产生更小且更强大的个人计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)和寻呼 装置,其体积小、重量轻且容易由用户携带。更具体来说,例如蜂窝式电话和IP电话等便携 式无线电话可经由无线网络传送语音和数据包。此外,许多此类无线电话包含并入在其中 的其它类型的装置。举例来说,无线电话还可包含数字静态相机、数字视频相机、数字记录 器和音频文件播放器。而且,此类无线电话可包含可用于访问因特网的网络接口。因此,这 些无线电话包含显著的计算能力。通常,随着这些装置变得更小且更强大,其变得越来越受资源约束。举例来说,屏 幕大小、可用存储器和文件系统空间的量以及输入和输出能力的量可受到装置的小尺寸限 制。此外,电池尺寸、由电池提供的功率量,和电池的寿命也受到限制。一种用以增加装置 的电池寿命的方式是减少由装置内的处理器执行数据操作所消耗的功率。处理器通常包含存储器高速缓冲存储器,其提供较小的存储容量但具有快速的存 取时间。通常使用所请求的存储器地址的一部分来将存储器高速缓冲存储器编制索引。存 储器高速缓冲存储器的一实例为可存储与每一索引值相关联的多个高速缓冲存储器线的η 路高速缓冲存储器。在η路高速缓冲存储器的情况下,通常执行多个比较以确定是否针对 特定索引值将所请求的数据存储在η路高速缓冲存储器的特定路处。多个比较消耗功率和 有限的处理资源。因此,提供一种使用η路高速缓冲存储器的改进的系统和方法将是有利的。

发明内容
在特定实施例中,揭示一种方法,其包含确定存储在多路高速缓冲存储器中的第 一指令的第一路。所述方法包含将所述第一路存储在路列表中。所述方法还包含确定存储 在多路高速缓冲存储器中的第二指令的第二路。所述方法进一步包含将所述第二路存储在 路列表中。在另一实施例中,揭示一种方法,其包含将路值存储在路表处。所述路值可与来自 η路高速缓冲存储器的连续数据读取操作相关联。所述连续数据读取操作可对应于处理循 环的第一反复。所述方法还包含在处理循环的下一反复期间从所述路表中循序检索用于连 续数据读取操作的路值。在另一实施例中,揭示一种装置,其包含含有多个路的条目表。条目表中的每一条 目识别η路高速缓冲存储器的一路。所述装置还包含程序计数器以提供具有索引的地址。 所述索引和所述路识别指令在η路高速缓冲存储器中的位置。在另一实施例中,揭示一种无线装置,其包含天线和耦合到天线的收发器。所述无线装置还包含耦合到所述收发器的处理器。所述处理器具有处理器可读存储器,其包含包 含多个路的条目表。条目表中的每一条目识别η路高速缓冲存储器的一路。所述处理器还 包含程序计数器以提供具有索引的处理器指令地址。所述索引和所述路识别处理可执行指 令在所述η路高速缓冲存储器中的位置。由使用η路高速缓冲存储器的系统和方法的实施例提供的一个特定优点在于可 获得减少功率的操作、较快速的高速缓冲存储器存取,或两者。在检视整个申请案后将明白本发明的其它方面、优点和特征,整个申请案包含以下部分


具体实施方式
和权利要求书。

图1是使用η路高速缓冲存储器的系统的一实施例的框图;图2是使用η路高速缓冲存储器的方法的一实施例的流程图;图3是可与η路高速缓冲存储器一起使用的数据结构的视图;图4是使用η路高速缓冲存储器的方法的另一实施例的流程图;以及图5是使用η路高速缓冲存储器的系统的另一实施例的框图。
具体实施例方式参看图1,说明装置100(例如,处理器的一部分)。装置100包含芯片上系统部分 和外部存储器110。芯片上系统包含高速缓冲存储器102和程序计数器106。高速缓冲存 储器102是包含路迹(way trace)逻辑电路104、标签阵列120和数据高速缓冲存储器阵 列130的多路高速缓冲存储器。在特定实施例中,数据高速缓冲存储器阵列130可为指令 高速缓冲存储器阵列。路迹逻辑电路104响应于从程序计数器106中接收到的地址。来自程序计数器106 的每一地址包含标签部分112和索引部分114。在特定说明性实施例中,如图1中所示,程 序计数器地址具有32位。路迹逻辑电路104包含标签旁路逻辑电路140和路迹缓冲器存储器,例如先入先 出(FIFO)存储器阵列150。标签旁路逻辑电路140将控制信号118提供到标签阵列120。 在特定实施例中,控制信号118包含索引值Ix和标签值Tx。控制信号118的索引值和标签 值作为输入提供到标签阵列120以基于输入的索引值检索多个标签值。从标签阵列120中 检索到的每一标签值对应于多个路中的不同一者。在特定实施例中,η路高速缓冲存储器 包含与高速缓冲存储器的每一索引值相关联的η个存储器位置。因此可使用所述索引和识 别与数据值相关联的路的数字来定位存储在η路高速缓冲存储器中的数据值。在特定实施 例中,标签阵列120是η路高速缓冲存储器102的一部分。在路迹逻辑电路104处将输入的标签值(Tx)与来自标签阵列120的多个标签中 的每一者进行比较(基于所述索引值),以确定匹配的标签和相关联的所识别路。在图1中 的特定说明性实例中,标签值Tx对应于路W2。在此实例中,在标签阵列120的输出122处 提供所识别的路W2,且将此路输出122提供到路迹逻辑电路104且还提供到数据高速缓冲 存储器阵列130。在标签阵列120在与输入的索引值(Ix)相关联的任何路处不含有与标签 值Tx匹配的标签的情况下,则已发生高速缓冲存储器未命中,且向外部存储器110作出检索指令的请求。在接收到所识别的路值后,路迹逻辑电路104在输出132处提供索引值,其被馈送到数据高速缓冲存储器阵列130的输入。另外,路迹逻辑电路104还可提供预定的路值 116,其可从路迹缓冲器存储器150读取。数据高速缓冲存储器阵列130包含根据多个不同的路而识别的多个计算机可执 行指令。举例来说,如图1中所示,展示四个不同的路,且每一路对应于一不同组的计算机 可执行指令。因此,当数据高速缓冲存储器阵列130接收到索引值和路值时,从数据高速缓 冲存储器阵列130中检索所识别的计算机可执行指令Dx,且将其提供于输出134处。在基 于索引值和路值未在数据高速缓冲存储器阵列130中找到所识别的计算机可执行指令的 情况下,则已发生高速缓冲存储器未命中,且向外部存储器110作出检索指令的请求。一旦从数据高速缓冲存储器阵列130输出计算机可执行指令134(Dx),便追踪用 于计算机可执行指令的路值,且将其存储在路迹逻辑电路104内的条目表中。在特定实施 例中,条目表可存储在路迹FIFO缓冲器150中,且可被配置为图3中所描绘的路表304。在 另一实施例中,路迹数据可作为表或简单阵列存储在计算机可读存储器中,或存储在专用 寄存器中。当从高速缓冲存储器102输出指令134时,还将所述指令提供于路迹逻辑电路 104的输入处以与由标签阵列120提供的相关联的路信息122相关和对准,以便将所述信息 存储在路迹FIFO缓冲器150中。可随后将所存储的路迹信息用于后续处理中以通过将特 定路信息从路迹逻辑电路104引导到数据高速缓冲存储器阵列130,进而避免与从标签阵 列120中检索多个值以及执行多个匹配操作来确定相关联的路相关联的额外计算,而节省 功率和处理资源。在特定实施例中,所述特定路信息包含路数。在特定说明性实施例中,程序计数器106提供具有索引114的地址。索引114和 η路高速缓冲存储器的路一起识别特定指令在数据高速缓冲存储器阵列130中的位置。在 特定实施例中,标签阵列120还具有响应于索引值114的输入118。另外,路迹逻辑电路104具有对包含所存储的路值的条目表的存取权,例如使用 路迹FIFO缓冲器150。路迹逻辑电路104包含用以将从标签阵列120中检索到的标签值 112与从程序计数器106中检索到的对应标签值进行比较以确定与指令Dx相关联的路的逻 辑。在具有此匹配逻辑的情况下,路迹逻辑电路104可核实并验证从标签阵列120中检索 到的标签。路迹逻辑电路104在确定来自标签阵列120的标签值与来自程序计数器106的 标签值匹配后,将索引132和路116提供到数据高速缓冲存储器阵列130。在特定说明性实施例中,存储在路条目表(例如,路迹FIFO缓冲器150)中的多个 路中的每一者以与存储在η路数据高速缓冲存储器阵列130内的对应多个计算机可执行指 令相关联的次序而存储。在特定实施例中,条目表中的第一条目对应于指令循环的开始。指 令循环的一实例是可由数字信号处理器执行的处理循环。所述处理循环通过数字信号处理 器装置而用于许多不同应用中。在另一实例中,计算机可执行指令中的一者与进入循环相 关联。以此方式,路迹FIFO缓冲器150可将指令中的每一者存储在特定循环中,且可使用 通过循环的第一回合的所存储信息,从而通过检索通过处理循环的后续回合中的指令的路 值而节省功率和处理资源。因此,可以较低的功率和减少的成本执行所述处理。在特定实施例中,可将路迹FIFO缓冲器150中的条目表实施为独立于η路数据高 速缓冲存储器阵列130中所存储的数据的存储器。存储在路迹FIFO缓冲器150中的条目表包含路值,例如路值W2,但路迹FIFO缓冲器150不包含在数据高速缓冲存储器阵列130 内找到的计算机可执行指令。举例来说,当检测到指示跳到闭合处理循环的开始的循环结束包时,路迹逻辑电 路104可开始填充存储在路迹FIFO缓冲器150中的条目表。写入到路迹FIFO缓冲器150 的第一条目可为由所检测到的循环结束包所指示的循环开始的地址。当从数据高速缓冲存 储器阵列130中循序地检索到循环的每一指令时,路迹逻辑电路104可将与所述指令相关 联的路值存储于路迹FIFO缓冲器150处。在循环期间,当将路值存储于路迹FIFO缓冲器150处时,路迹逻辑电路104可将 所请求的指令地址与存储在路迹FIFO缓冲器150处的循环开始地址进行比较。当检测到 循环开始地址时(指示完成循环的当前反复且下一循环反复将开始),将用与循环指令相 关联的路值以由处理器请求的次序填充路迹FIFO缓冲器150。路迹逻辑电路104可开始从 路迹FIFO缓冲器150读取路值,且因此在循环的后续反复期间从标签阵列120执行较少的 读取操作。虽然将数据高速缓冲存储器阵列130的每一路描绘为存储单一指令,但应清楚理 解,数据高速缓冲存储器阵列130的每一路可以称为高速缓冲存储器线的数据单位存储多 个数据字或指令。数据高速缓冲存储器阵列130处的每一数据读取操作可返回包含多个指 令的高速缓冲存储器线,可从中检索所请求的指令。参看图2,说明关于多路高速缓冲存储器的操作方法。所述方法包含确定存储在高 速缓冲存储器中的第一指令的第一路,如202处所示。所述方法进一步包含将第一路存储 在路列表中,例如存储在图1的路迹FIFO缓冲器150中,如204处所示。所述方法进一步 包含在206处确定存储在高速缓冲存储器中的第二指令的第二路,且在208处将所述第二 路存储在路列表中。在特定实施例中,所述方法进一步包含检测循环结束包,如210处所示。可通过检 测特定指令(例如跳跃指令(其发出指令的处理循环的回合或反复的结束的信号))来确 定循环结束包。所述方法可进一步包含在212处存储与循环结束包相关联的特定地址。在 检测到循环结束包后,所述方法可包含存取从路列表中检索到的至少一个路,如214处所 示。举例来说,当处理器正参考循环的开始时,逻辑电路(例如,图1的路迹逻辑电路104) 可从路列表中检索与循环的开始相关联的所存储的路信息。在216处,可基于至少一个检索到的路存取高速缓冲存储器中的指令。举例来说, 检索到的路值可用于执行对标签阵列(例如标签阵列120)的单一读取,以核实指令存储于 指令阵列处,且将不导致高速缓冲存储器未命中。检索到的路值可随后用于检索指令阵列 的含有所述指令的高速缓冲存储器线。在特定实施例中,除了指令的路信息之外或作为其替代,所述方法可任选地包含 在218处存储相同线位或其它识别符,使得当存取相同的高速缓冲存储器线时,不评估标 签阵列中的条目。相同线位可识别特定指令位于指令阵列的与紧接在前面的指令相同的高 速缓冲存储器线处。因此,当成功地检索到前面的指令时,相同线位使得能够从高速缓冲存 储器中检索到后续指令,而无需经由标签阵列首先检查高速缓冲存储器未命中。在说明性 实施例中,可将相同线位存储在独立的位阵列中,例如图4中所描绘的相同线位阵列406。在特定实施例中,第一路对应于从标签阵列中检索到的路值。另外,也可将第二路检索为来自标签阵列的路值。虽然将高速缓冲存储器描述为多路高速缓冲存储器,但也可将高速缓冲存储器描述为η路高速缓冲存储器,其中η可为大于1的值。在特定实施例中, η为4。另外,应理解,可存取与循环结束包相关联的特定地址,且将其存储在路列表内。与 循环结束包相关联的特定地址可用于识别一指令,所述指令识别后续处理的循环结束。通 过使用所描述的方法,可响应于来自预先存储的路列表的路而不是评估标签阵列的多个标 签来存取高速缓冲存储器中的指令。在特定实施例中,所揭示的系统提供低成本方法来减少归因于用于执行数字信号 处理器循环的标签阵列存取和标签匹配而引起的功率消耗。所揭示的系统和方法通过存储 所存取的路迹,而不存储来自η路高速缓冲存储器的特定计算机可执行指令而提供减少功 率的操作。与路列表相关联的硬件结构在面积方面且在功率要求方面是低成本的。而且, 所述结构提供存取高速缓冲存储器线以存储较大编程循环的迹的能力。另外,虽然参考了 FIFO,但任何其它类似硬件结构可用于存储路迹数据。通过存储用于通过DSP循环的后续 处理的路迹数据,所述方法可仅读取标签阵列的一路,进而减少功率消耗。而且,在系统每 次存取读取高速缓冲存储器线的一部分的高速缓冲存储器中,所述系统可存储用于所述高 速缓冲存储器线的相同线位,使得将不需要对标签阵列的存取。参看图3,描绘可与η路高速缓冲存储器一起使用的数据结构的特定说明性实施 例,且一般标示为300。系统300包含说明性指令列表302和路表304。在特定实施例中, 可将路表304存储于FIFO缓冲器处,例如图1中所描绘的路迹FIFO缓冲器150。在特定实施例中,说明性指令列表302反映对应于处理器(例如DSP)向高速缓冲 存储器(例如图1的高速缓冲存储器102)请求的指令的数据。说明性指令列表302包含第 一列指令地址、第二列路值和第三列指令字。与指令相关联的指令地址和路用于存取含有 来自高速缓冲存储器的所请求指令的对应高速缓冲存储器线。举例来说,说明性指令列表 302的第一数据行包含第一地址Al,其位于路3处,且对应的指令(INSTRl)是与地址Al和 路3相关联的高速缓冲存储器线处的计算机指令字。应理解,说明性指令列表302描绘与 连续的高速缓冲存储器请求相关联的数据以说明路表304处的操作。说明性指令列表302 不需要对应于与η路高速缓冲存储器一起使用的实际的表或数据结构。图3的说明性实施例中的说明性指令列表302包含九个指令字,开始于位于数据 高速缓冲存储器阵列的地址Al和路3处的指令字INSTRl,且继续到位于地址Α9、路1处的 指令。图3中所说明的特定实施例的位于地址Α9、路1处的指令是标示循环结束的特殊 包。另外,地址Α9、路1处的指令包含到地址Α4的跳跃命令。在特定实施例中,地址Α9处 的循环结束特殊包指示处理器循环的每一反复开始于地址Α4处的指令,且结束于地址Α9 处的指令。路表304包含与对应于处理器执行的循环中的循序存取的高速缓冲存储器线的 每一路值相关联的数据。路表304中的第一条目是从循环结束特殊包中检索到的地址Α4。 路表304的以下连续数据元素指示与由处理器在处理循环中向高速缓冲存储器请求的每 一连续高速缓冲存储器线相关联的路值。举例来说,指令列表302中所说明的与地址Α4处的指令相关联的路值为2。类似 地,路表304的第一路数据元素为数字2。通过说明性指令列表302中所说明的连续高速缓冲存储器线检索继续下去,地址A5处的触发高速缓冲存储器存取的下一指令具有相关联的路O。同样,路表304的第二路数据元素也是O。路表304包含用于处理器的连续高速缓 冲存储器线请求的路值,直到处理循环的结束为止,其结束于地址A9、路1处的指令。在特定实施例中,当(例如经由循环结束特殊包)在指令的处理中检测到循环时, 可首先用处理循环的下一反复的第一指令的地址填充路表304。在图3的说明性实施例中, 第一指令的地址为A4。可继续用对应于从高速缓冲存储器(例如数据高速缓冲存储器阵列 130)中检索到的每一连续高速缓冲存储器线的路数据的数据值来填充路表304,且可经由 标签阵列(例如,图1的标签阵列120)确定。一旦已用对应于处理循环的数据值填充路表304,便可执行处理循环的额外反复, 而不需要对标签阵列进行额外存取来确定用于每一检索到的高速缓冲存储器线的路值。因 此,可获得处理速度、功率消耗和其它益处。虽然在图3中描绘说明性指令列表302和路表304,但应理解,说明性指令列表 302和路表304两者都不需要被实施为个别表或阵列。举例来说,可在先入先出(FIFO)缓 冲器中实施路表304。作为另一实例,与说明性指令列表302相关联的数据可存储在任何其 它数据结构或多个结构中,或可根本不存储,只要处理器能够请求并接收所请求的指令。参看图4,描绘可与η路高速缓冲存储器一起使用的数据结构的另一说明性实例, 且一般标示为400。系统400包含说明性指令列表402、路表404和相同线位阵列406。一 般来说,说明性指令列表402对应于图3中所描绘的说明性指令列表302,且路表404对应 于图3中所描绘的路表304。在特定实施例中,相同线位阵列406可存储指示处理循环的每一指令是否位于与 循环的前一指令相同的高速缓冲存储器线中的数据。在图4的实例中,处理循环包含地址 Α4、Α5、Α6、Α7、Α8处的指令,和Α9处的循环结束指令。地址Α5、Α6和Α7处的指令存储于 指令高速缓冲存储器的相同高速缓冲存储器线处,意味着相同的索引和路值用于从指令高 速缓冲存储器中检索每一指令。在特定实施例中,当在指令的处理中检测到循环时,可用为每一指令指示所述指 令是否存储于与前一指令相同的高速缓冲存储器线处的数据值来循序地填充相同线位阵 列406。循环的每一指令可在相同线位阵列406中具有被设定为逻辑高值“1”或逻辑低值 “0”的对应位。当指令存储于与前一指令不同的高速缓冲存储器线处时,可将“0”存储于相 同线位阵列406处,且可将路值存储在路表404中。然而,当指令存储于与前一指令相同的 高速缓冲存储器线处时,可将“1”存储于相同线位阵列406处,且可在路表404中不为所述 指令制作条目。因此,相同线位阵列406将含有用于处理循环的每一指令的数据值,但路表 404可能含有比循环中的指令的数目少的路值。举例来说,地址Α4处的第一循环指令在相同线位阵列406中具有对应条目“0”,从 而指示所述指令不位于前一高速缓冲存储器线中。用于经由标签阵列检索的处于Α4处的 指令的路值“2”存储于路表404的第一路存储位置处。Α5处的下一指令在相同线位阵列 406中具有条目“0”,从而指示所述指令位于与Α4处的指令不同的高速缓冲存储器线处,且 对应的路值“0”存储于路表404的第二路条目处。Α6和Α7处的跟随的指令位于与Α5处的 指令相同的高速缓冲存储器线处,如相同线位阵列406中的“ 1 ”条目所指示,且在路表404 中不具有对应的条目。Α8和Α9处的最后两个指令各位于单独的高速缓冲存储器线处,由相同线位阵列406中的“0”条目指示,且在路表404中具有对应的“2”和“ 1 ”条目。因此,虽 然所述循环包含六个指令,但仅四个路值存储于路表404处。一旦已用对应于处理循环的数据值填充路表404,便可执行处理循环的额外反复, 而不需要对标签阵列进行额外存取来确定用于每一检索到的高速缓冲存储器线的路值。在 检索指令之前,可将索引和路值发送到标签阵列以确保所述指令尚未在高速缓冲存储器中 被盖写。然而,当相同线位阵列406指示所述指令处于与前一指令相同的高速缓冲存储器 线处时,不需要在标签阵列处执行此类检查。因此,当多个连续指令位于相同的高速缓冲存 储器线中时,使用相同线位阵列406和路表404的系统与不记录相同线信息的系统相比可 使用较少的存储器并执行较少的标签阵列读取操作。在另一实施例中,相同线位阵列406的相同线数据与路表404的路数据可组合于 单一数据结构中。举例来说,除了用于与前面的指令处于相同的高速缓冲存储器线中的每 一指令的路值之外或作为其替代,例如路表404等表可存储“相同线”指示符。参看图5,其描绘使用路迹信息的方法的特定说明性实施例,且所述方法一般标示 为500。在502处接收指令的地址。在特定实施例中,可在η路高速缓冲存储器的输入处接 收所述指令的所述地址。在特定实施例中,在504处确定与所述地址相关联的路。举例来 说,可从标签阵列(例如,图1的标签阵列120)中确定所述路。在506处可检索所述指令。 在506处,可使用所述指令地址和与所述指令地址相关联的路从数据高速缓冲存储器阵列 (例如,图1的数据高速缓冲存储器阵列130)中检索所述指令。方法继续到决策步骤508,其中确定所述指令是否指示已进入处理循环。在特定实 施例中,可通过包含处理循环的第一指令的地址的特殊包来指示进入到处理循环中。如果 所述指令不指示进入到处理循环中,那么方法返回到502。如果所述指令指示进入到处理循 环中,那么方法在510处继续,其中接收处理循环的第一指令的地址。前进到512,从标签阵列中确定用于所请求的指令的路,且在516处将对应的路保 存在路表中。在说明性实施例中,所述路表可为图3的路表304。在另一说明性实施例中, 所述路表可包含用于路值的数据存储元件,例如图1的路迹FIFO缓冲器150。处理在518处继续,其中检索所请求的指令。在520处确定所述指令是否指示处 理循环的第一反复的结束。如果所述指令不指示处理循环的第一反复的结束,那么方法返 回到510,其中接收循环中的下一指令的地址。否则,当检索到的指令指示处理循环的第一 反复的结束时,在522处开始处理循环的第二反复,其中接收指令地址。在特定实施例中,在522处请求的指令曾先前在处理循环的第一反复期间检索 到,且因此具有存储在路表处的对应路。在524处,从路表确定对应于所请求的指令的路。在特定实施例中,在526处,可使用标签阵列核实所述路。举例来说,一个或一个 以上其它过程可能在高速缓冲存储器处执行盖写所述指令的数据填充。通过仅从标签阵列 中检索与索引和所请求指令的路相关联的标签值,可将检索到的标签与所请求的指令的标 签进行比较以核实所述指令尚未被盖写。在特定实施例中,相同线位可用于指示用于特定 指令的高速缓冲存储器线何时与用于紧接在前面的指令的高速缓冲存储器线相同。如果如 此,那么仅需要针对前一指令执行使用标签阵列的核实步骤。在528处,使用来自地址的索引和来自路表的路而检索指令。在530处,确定所述 指令是否致使处理器执行退出循环的逻辑处理分支。如果确定所述指令不导致从循环退出,那么方法返回到522。否则,在530处当所述指令导致循环退出时,方法返回到502。图6是使用η路高速缓冲存储器的系统(说明为便携式通信装置600)的一实施例的框图。便携式通信装置600包含耦合到路迹逻辑电路670的η路高速缓冲存储器660。 在特定实施例中,路迹逻辑电路670和η路高速缓冲存储器660可包含图1的高速缓冲存 储器102和路迹逻辑电路104,且可例如通过使用例如图3的路表304的表来存储和更新路 迹数据而实施图2和图4中所描绘的方法中的一者或一者以上的至少一部分。便携式通信 装置600包含芯片上系统622,其包含例如数字信号处理器610等处理器。数字信号处理器 610包含耦合到路迹逻辑电路670的η路高速缓冲存储器660,如关于图1到图5所描述。 在特定说明性实施例中,路迹逻辑电路670可用于减少处理器(例如,数字信号处理器610) 和芯片上系统装置(例如,芯片上系统622)的功率消耗、增加其处理速度,或两者。在特定实施例中,通过存储并检索用于由数字信号处理器610在处理操作循环期 间请求的每一指令的路信息,可减少处理期间的功率消耗,进而减少与从η路高速缓冲存 储器660中检索每一指令相关联的标签阵列存取和比较的次数。减少标签阵列存取和比较 的次数可减少与指令检索相关联的功率消耗。类似地,减少用于每一指令的标签阵列存取 和比较的次数可减少从η路高速缓冲存储器660中进行的个别或总的指令检索时间。
图6还展示耦合到数字信号处理器610并耦合到显示器628的显示器控制器626。 另外,输入装置630耦合到数字信号处理器610。另外,存储器632耦合到数字信号处理器 610。编码器/解码器(CODEC) 634也可耦合到数字信号处理器610。扬声器636和麦克风 638可耦合到CODEC 634。图6还指示无线控制器640可耦合到数字信号处理器610并耦合到无线天线642。 在特定实施例中,电源644耦合到芯片上系统622。另外,在特定实施例中,如图6中所说 明,显示器628、输入装置630、扬声器636、麦克风638、无线天线642和电源644处于芯片 上系统622外部。然而,每一者均耦合到芯片上系统622的一组件。在特定说明性实施例中,路迹逻辑电路670可用于增强便携式通信装置600的总 体性能。具体来说,路迹逻辑电路670可消除与处理循环期间的每一检索到的指令相关联 的多个高速缓冲存储器读取和比较,进而延长电池寿命、改进总体功率效率、减少处理时间 和资源使用,且增强装置600的性能。应理解,虽然将η路高速缓冲存储器660和路迹逻辑电路670描绘为数字信号处 理器610的单独组件,但可替代地将η路高速缓冲存储器660和路迹逻辑电路670集成到 单一高速缓冲存储器单元(例如图1的高速缓冲存储器102)中。类似地,应理解,例如可 包含用于单一处理循环的多个处理路径的多个路迹逻辑元件。作为另一实例,可包含用于 数字信号处理器610的多个高速缓冲存储器(例如,用于专用的指令高速缓冲存储器和专 用的数据高速缓冲存储器)的多个路迹逻辑元件。作为又一实例,可包含多个路迹逻辑元 件以增强用于多线程处理操作的一个或一个以上线程的性能。所属领域的技术人员将进一步了解,可将结合本文中所揭示的实施例而描述的各 种说明性逻辑块、配置、模块、电路和算法步骤实施为电子硬件、计算机软件或两者的组合。 为清楚地说明硬件和软件的此互换性,已根据其功能性在上文中大体上描述了各种说明性 组件、块、配置、模块、电路和步骤。将此功能性实施为硬件还是软件取决于特定应用和强加 于整个系统的设计约束。对于每一特定应用,所属领域的技术人员可以不同的方式实施所描述的功能性,但不应将此些实施决策解释为导致脱离本发明的范围。结合本文中所揭示的实施例而描述的方法或算法的步骤可直接包含在硬件中、由 处理器执行的软件模块中,或两者的组合中。软件模块可驻留于RAM存储器、快闪存储器、 ROM存储器、PROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸磁盘、CD-ROM, 或此项技术中已知的任何其它形式的存储媒体中。将示范性存储媒体耦合到处理器,使得 处理器可从存储媒体读取信息以及将信息写入到存储媒体。在替代方案中,可使存储媒体 与处理器成一体。处理器和存储媒体可驻留于ASIC中。ASIC可驻留于计算装置或用户终 端中。在替代方案中,处理器和存储媒体可作为离散组件驻留于计算装置或用户终端中。提供所揭示实施例的先前描述以使得所属领域的技术人员能够制作或使用所揭示的实施例。所属领域的技术人员将容易明白对这些实施例的各种修改,且在不脱离本发 明的精神或范围的情况下,本文中所界定的一般原理可适用于其它实施例。因此,不希望本 发明限于本文中所展示的实施例,而是赋予其与由所附权利要求书所界定的原理和新颖特 征一致的可能的最广泛范围。
权利要求
一种方法,其包括确定存储在多路高速缓冲存储器中的第一指令的第一路;将所述第一路存储在路列表中;确定存储在所述多路高速缓冲存储器中的第二指令的第二路;以及将所述第二路存储在所述路列表中。
2.根据权利要求1所述的方法,其中所述第一路包括从标签阵列中检索到的路值。
3.根据权利要求1所述的方法,其进一步包括检测循环结束包。
4.根据权利要求3所述的方法,其进一步包括在检测到所述循环结束包后,存取从所 述路列表中检索到的至少一个路。
5.根据权利要求4所述的方法,其进一步包括基于所述至少一个检索到的路存取所述 多路高速缓冲存储器中的指令。
6.根据权利要求5所述的方法,其中所述多路高速缓冲存储器是η路高速缓冲存储器, 且其中η大于2。
7.根据权利要求6所述的方法,其中η为4。
8.根据权利要求7所述的方法,其中从标签阵列中检索所述第一路和所述第二路。
9.根据权利要求5所述的方法,其中在不评估所述标签阵列的多个标签的情况下,响 应于所述至少一个检索到的路而存取所述多路高速缓冲存储器中的所述指令。
10.根据权利要求9所述的方法,其中读取高速缓冲存储器线的一部分,且进一步包括 存储相同线位,使得在存取所述同一高速缓冲存储器线时不评估所述标签阵列中的条目。
11.根据权利要求3所述的方法,其进一步包括存储与所述循环结束包相关联的特定 地址。
12.一种装置,其包括条目表,其含有多个路,所述条目表中的每一条目识别η路高速缓冲存储器的一路;程序计数器,其用以提供具有索引的地址;且其中所述索引和所述路识别指令在所述η路高速缓冲存储器中的位置。
13.根据权利要求12所述的装置,其中所述η路高速缓冲存储器包含具有响应于所述 索引的输入的标签阵列。
14.根据权利要求12所述的装置,其进一步包括路迹逻辑电路,所述路迹逻辑电路具 有对所述条目表的存取权。
15.根据权利要求14所述的装置,其中所述路迹逻辑电路向所述η路高速缓冲存储器 提供输出。
16.根据权利要求15所述的装置,其中所述路迹逻辑电路向所述标签阵列提供路项和 索引,且其中所述路迹逻辑电路包含用以将从标签阵列中检索到的标签值与来自所述程序 计数器的对应标签值进行比较的逻辑。
17.根据权利要求16所述的装置,其中所述路迹逻辑电路在确定从所述标签阵列中检 索到的所述标签值与来自所述程序计数器的所述对应标签值匹配后,向所述η路高速缓冲 存储器提供所述路项。
18.根据权利要求12所述的装置,其中所述多个路以与存储在所述η路高速缓冲存储 器中的对应多个计算机可执行指令相关联的次序而存储。
19.根据权利要求18所述的装置,其中所述条目表中的第一条目对应于指令循环的开始。
20.根据权利要求19所述的装置,其中所述多个计算机可执行指令中的一者与所述指 令循环的结束相关联。
21.根据权利要求12所述的装置,其中所述条目表独立于存储在所述η路高速缓冲存 储器中的数据,且其中所述条目表存储路值,但不存储计算机可执行指令。
22.根据权利要求12所述的装置,其中所述条目表包括先入先出缓冲器以存储多个路迹。
23.一种方法,其包括将路值存储在路表处,所述路值与从η路高速缓冲存储器的连续数据读取操作相关 联,所述连续数据读取操作对应于处理循环的第一反复;以及在所述处理循环的下一反复期间,从所述路表中循序地检索用于所述连续数据读取操 作的所述路值。
24.根据权利要求23所述的方法,其中所述处理循环的所述第一反复的开始与从所述 η路高速缓冲存储器中第一次检索循环结束指令相关联,且其中所述处理循环的所述第一 反复的结束与从所述η路高速缓冲存储器中下一次检索所述循环结束指令相关联。
25.根据权利要求23所述的方法,其进一步包括使用所述路值中的至少一者从η路标 签阵列中存取仅单一高速缓冲存储器线。
26.根据权利要求23所述的方法,其进一步包括使用来自所述路表的所述路值中的至 少一者来存取存储于所述η路高速缓冲存储器处的数据。
27.一种无线装置,其包括 天线;收发器,其耦合到所述天线;处理器,其耦合到所述收发器,所述处理器包括处理器可读存储器,其包含包含多个路的条目表,所述条目表中的每一条目识别η路 高速缓冲存储器的一路;程序计数器,其用以提供具有索引的处理器指令地址;且其中所述索引和所述路识别处理可执行指令在所述η路高速缓冲存储器中的所述地址。
28.根据权利要求27所述的无线装置,其中所述处理器是数字信号处理器。
29.根据权利要求27所述的无线装置,其进一步包括 用于编码和解码声音数据的装置;以及用于提供视觉信息的装置。
30.根据权利要求29所述的无线装置,其中所述用于编码和解码声音数据的装置包含 耦合到所述处理器且进一步耦合到麦克风和扬声器中的每一者的编解码器,且其中所述用 于提供视觉信息的装置包含耦合到所述处理器且进一步耦合到显示器的显示器控制器。
全文摘要
本发明揭示一种使用n路高速缓冲存储器的系统和方法。在一实施例中,一种方法包含确定存储在高速缓冲存储器中的第一指令的第一路,且将所述第一路存储在路列表中。所述方法还包含确定存储在所述高速缓冲存储器中的第二指令的第二路,且将所述第二路存储在所述路列表中。在一实施例中,所述第一路可用于存取含有所述第一指令的第一高速缓冲存储器线,且所述第二路可用于存取含有所述第二指令的第二高速缓冲存储器线。
文档编号G06F9/38GK101809547SQ200880109441
公开日2010年8月18日 申请日期2008年9月10日 优先权日2007年9月10日
发明者苏雷什·文库马洪蒂, 菲利普·M·琼斯 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1