数据处理系统和用于预取数据和/或指令的方法

文档序号:6454092阅读:206来源:国知局
专利名称:数据处理系统和用于预取数据和/或指令的方法
技术领域
本发明涉及一种数据处理系统、 一种用于预取数据和/或指令的方法、 一种将数据和/或指令加载到存储器中的方法以及一种电子设备。
背景技术
现今的数据处理系统或处理器是基于特定分级存储器体系(memory hierarchy)的,所述分级存储器体系包括具有不同速度和大小的存储器。 然而,由于快速的存储器价格较高,所以分级存储器体系被组织为多个等 级,其中对于每个字节,每个等级都比下一个较低的等级更小、更快且价 格更高。通常, 一个等级中的所有数据也可在下面的等级中找到,而且较 低等级中的所有数据可在低于该等级的等级中找到,直到达到该分级体系 的底部。
高速缓冲存储器可构成分级存储器体系的第一等级,即,所述高速缓 冲存储器是与中央处理器CPU或处理单元最接近的处理器。如果CPU请 求可在高速缓存中找到的数据项,则所谓的高速缓存命中就会出现。然而, 如果由CPU请求的数据项不能在高速缓存中找到,则所谓的高速缓存未 命中(miss)就会出现。用于校正高速缓存未命中和获取所请求数据项所 需的时间取决于存储器的等待时间(latency)和带宽。等待时间与用于检 索块的第一个字的时间相对应,带宽与用于检索块的剩余部分的时间有 关。高速缓存的基本思想是获取在数据项的实际处理之前的即将来临的 处理周期期间需要的数据项。
如果发生高速缓存未命中,则可以通过每次替换整个高速缓存行来充 分利用存储器带宽。然而,为了提供可用的存储器带宽,这种方法还会增 加高速缓存行的大小。较大的高速缓存行对于预取而言是尤其有利的。然 而,如果高速缓存行的大小增加,则在程序不具有足够的空间局部性且高 速缓存未命中频繁发生的情况下,系统性能可能会降低。
在"Dynamically Variable Line-Size Cache Exploiting High On-Chip Memory Bandwidth of Merged DRAM/Logic LSIs,, , K. Inoue等,Proceedings of HPCA-5.5 International Conference on High Performance Computing, Jan. 1999中,描述了根据当前正在执行的应用程序的特点在运行时间改变高速 缓存行的大小。
可在数据处理系统内处理的算法在针对指令以及数据的参考局部性 (locality of reference)方面有所不同。参考局部性构成在处理器上运行的 应用程序的属性。参考局部性指示不同的存储区域是如何被应用程序所访 问的。此处,参考局部性可指空间参考局部性和时间参考局部性。如果在 不远的将来有很大的可能性会访问与最近访问的数据位置距离很近的数 据位置,则应用程序具有较好的空间参考局部性。时间参考局部性指示对 最近数据位置的访问将会在不远的将来再次发生。所以, 一些算法具有较 好的参考局部性(空间、时间或两者),而另一些算法具有较差的参考局 部性。相应地, 一些算法具有较好的高速缓存命中率,而另一些算法具有 相当差的高速缓存命中率。应当注意,高速缓存未命中不能避免。然而, 为了降低高速缓存未命中损失,高速缓存未命中率应降低到最小。如果处 理后的数据包括充足的空间局部性,则可以使用更大的高速缓存行。

发明内容
本发明的目的是提供降低高速缓存未命中损失量的一种数据处理系 统以及一种用于预取数据和/或指令的方法。
由根据权利要求1所述的数据处理系统、根据权利要求5所述的用于 将数据和/或指令加载到存储器中的方法、根据权利要求6所述的用于预取 数据和/或指令的方法以及根据权利要求8所述的电子设备来实现该目的。
所以,提供了一种用于处理至少一个应用程序的数据处理系统。所述 数据处理系统包括用于执行所述应用程序的处理器。所述系统还包括与处 理器相关联的高速缓冲存储器,所述高速缓冲存储器用于对存储器的数据 和/或指令进行存储。所述系统还包括用于对应用程序的数据和/或指令进 行存储的存储单元。存储单元包括多个存储分区。具有相似数据属性的数 据被存储在相同的存储分区中。预定义预取模式与存储分区的每一个相关
根据本发明的一方面,高速缓冲存储器包括多个寄存器,所述多个寄 存器的每一个都与存储器的存储分区之一相关联。寄存器用于对与存储分 区相关联的预定义预取模式进行存储。根据存储在寄存器中的预取模式来 预取数据和/或指令。因此,对于数据项,尤其对于数据项的数据属性可以 自定义对该具体数据项的预取。
根据本发明的另一方面,具有相似的参考局部性的数据被存储在相同 的存储分区中。相应地,由于仅预取所需数据项,所以高速缓存未命中损 失会降低。
根据本发明的又一方面,存储在存储分区中具有高参考局部性的数据 被作为完整的数据块而获取,而对于存储在存储分区中具有低参考局部性 的数据,仅获取所请求的数据。
本发明还涉及一种用于将应用程序的数据和/或指令加载到存储单元 中的方法。存储单元包括多个存储分区。将具有相似的数据属性的数据和 /或指令加载在相同的存储分区中。由此,根据数据属性来组织存储器和存 储在其中的数据。
本发明此外还涉及一种用于从存储单元预取应用程序的数据和/或指 令的方法,所述存储单元包括多个存储分区。来自存储单元的数据被预取 到与处理器相关联的高速缓冲存储器中。具有相似^J数据属性的数据被存 储在相同的存储分区中。对存储分区的每一个执行预定义预取模式。
本发明还涉及一种用于处理应用程序的电子设备。所述电子设备包括 用于执行应用程序的至少一个处理器。所述电子设备此外还包括与至少一 个处理器相关联的高速缓冲存储器,所述高速缓冲存储器用于存储来自具 有多个存储分区的存储单元的数据和/或指令。具有相似的数据属性的数据 被存储在相同的存储分区中。预定义预取模式与存储分区的每一个相关 联。
本发明涉及的思想是将存储空间分割为多个区域,同时,具有相似 高速缓存性能的指令和/或数据一起置于相似的区域中。所述区域还可以基 于在高速缓存未命中期间获取的字的数量的。由此,通过在存储器中重新 组织数据的存储,可以获得实质的增益。这可以实现更好的性能和减少的 执行时间。
下文中将会参考附图更详细地描述本发明的实施例以及优点。


图1示出了数据处理系统的框图,
图2示出了图l存储器的存储器分区的表示,以及
图3示出了高速缓存的分区的表示。
具体实施例方式
图1示出了根据第一实施例的用于处理应用程序的数据处理系统的结
构的框图。所述数据处理系统包括处理器100、高速缓存200、数据总线 300和存储单元400。专用于应用程序的程序数据和/或指令被存储在存储 单元400中。来自存储器400的数据和/或指令通过数据总线300被预取到 高速缓存200中。所述高速缓存可包括用于控制高速缓存的操作的高速缓 存控制器210以及高速缓冲存储器(cache memory) 220。所述高速缓存 还可包括可配置寄存器240。
图2示出了图l存储器400的表示。具体而言,存储器400被分为不 同的区域或区(area) 401-404,且用于应用程序的数据和/或指令被存储在 这些存储区域401-404中。具有相似的参考局部性行为的数据被安排在相 同的存储区域401-404中。如果数据不显示任何参考局部性,则将这种数 据置于存储区域401中。如果访问该数据,则仅获取并转发一个字。例如, 区域404可包含共有非常好的参考局部性的数据和指令。如果访问存储区 域404中的这些数据,则整个高速缓存数据块(高速缓存行或多个字)被 预取到高速缓存200中。因此对数据和/或指令的预取取决于数据被存储在 哪里,即数据被存储在哪个存储区域中。由此,在这种结构的情况下,高 速缓存未命中损失降低。参考局部性或局部性原理与多次访问单个资源的 过程有关。参考局部性可涉及时间、空间和顺序(s叫uential)局部性。时 间参考局部性涉及一个时间点处的资源参考会在不远将来的某个时刻再 次被参考的概念。空间参考局部性涉及在资源的相邻资源刚刚被参考的情 况下参考该资源的可能性更高的概念。顺序参考局部性涉及顺序地访问存
储器的概念。所以,根据数据的时间、空间和/或顺序参考局部性将数据存
储在特定存储区域401-404中。可以分析要存储在存储器400中的数据, 以确定所述数据的参考局部性并基于数据的参考局部性将数据存储在各 个存储区域401-404中。
图3示出了图1高速缓存的分区的表示。高速缓存200可包括用于控 制高速缓存的操作的高速缓存控制器210、以及用于指示高速缓冲存储器 (cache memory)内的数据状态的高速缓冲存储器(cache memory) 220。 第一高速缓存列201用于指示高速缓存块的状态,即所述高速缓存块是否 被修改、被共享、无效的或排他的(exclusive)。第二高速缓存列202用于 指示高速缓存块内的数据的位状态。状态可以是有效地或无效的。第三高 速缓存列203用于指示标记(tag)信息以及实现各种高速缓存机制可能需 要的其他状态位。第四高速缓存列用于指示高速缓存中存储的特定数据。
高速缓存200还可包括(可配置)寄存器240。优选地,寄存器与每
一个分区相关联。寄存器用于存储关于每一个分区的信息。该信息可包含 起始和结束地址、以及在从这种分区对数据或指令进行访问的情况下要获 取的字的数量。
处理器00发布命令到高速缓存200,请求从指定地址读取数据。如 果该数据已被预取到高速缓存200中,则发生高速缓存命中,且将该数据 从高速缓存200转发到处理器100中。然而,如果该数据不存在于高速缓 存200中,则发生高速缓存未命中。高速缓存200的高速缓存控制器210 可确定存储器400内该地址的分区或存储区域401-404并且发布获取操作, 以便获取与该分区相关联的多个字。然后根据针对该区域401_404的预定 义预取模式(predefined prefetching pattern)将来自分区或存储器子系统的 数据转发到高速缓存200。然后更新高速缓存块的状态,以便指示有效数 据是否存在于高速缓存块中。
根据本发明,存储空间被分区或划分为不同的存储区域,其中指令和 /或数据与具有诸如相似的参考局部性之类的相似高速缓存性能的其他指 令和/或数据一起放置于存储区域之一中。存储了数据的存储区域指示在高 速缓存未命中期间所获取的字的数量。
上述结构可在片上多处理器系统中实现。由此,可以映射展示出较差
空间参考局部性的应用程序。
本发明还涉及一种用于对不同行为的数据和指令进行分类并在存储
器内创建相应的存储分区的方法。根据该信息,在启动(bootup)时将应
用程序目标代码(二进制文件)加载进系统存储器的链接器或加载器应用 程序可将实际数据组织到所指示的特定存储区域中。由此,可以提供编译 器、链接器和/或加载器单元,以实现上述分类和创建。预定义预取模式与 存储分区或区域的每一个相关联。
应当注意,上述实施例示出而不是限制本发明,而且本领域技术人员 在不背离所附权利要求的范围的情况下能够设计多种可替换实施例。在权 利要求中,置于括号内的任何参考标记不应解释为限制该权利要求。单词 "包括"不排除除了权利要求中列出的原件或步骤之外的元件或步骤存
在。元件之前的单词"一个(a或an)"不排除多个这种元件存在。在列 举多个装置的设备权利要求中,这些装置中的多个可具体化为一个或同一 项的硬件。在互不相同的从属权利要求中陈述特定手段的起码的事实不表 示不能结合使用这些手段以获利。
此外,权利要求中的任何参考标记不应解释为限制权利要求的范围。
权利要求
1. 用于处理至少一个应用程序的数据处理系统,包括-用于执行所述至少一个应用程序的至少一个处理器(100);-与所述至少一个处理器(100)相关联的高速缓冲存储器(200),用于存储数据和/或指令;以及-用于存储所述至少一个应用程序的数据和/或指令的存储单元(400);其中所述存储单元(400)包括多个存储分区(401,402,403,404),其中具有相似数据属性的数据被存储在相同的存储分区(401-404)中;以及其中预定义预取模式与所述存储分区(401-404)的每一个相关联。
2. 根据权利要求1所述的数据处理系统,其中所述高速缓冲存储器 (200)包括多个寄存器,每一个寄存器与存储分区之一相关联,用于存储与存储分区(401-404)相关联的预定义预取模式,其中根据存储在寄存 器中的预取模式来预取数据和/或指令。
3. 根据权利要求1或2所述的数据处理系统,其中具有相似的参考 局部性的数据被存储在相同的存储分区(401-404)中。
4. 根据权利要求3所述的数据处理系统,其中将存储在存储分区中 具有高参考局部性的数据作为完整的数据块而获取,而对于存储在存储分 区中具有低参考局部性的数据,只获取所请求的数据。
5. 用于将至少一个应用程序的数据和/或指令加载到存储单元(400) 中的方法,其中存储单元(400)包括多个存储分区(401-404),所述方法 包括以下步骤- 将具有相似的数据属性的数据和/或指令加载到相同的存储分区 (401-404)中。
6. 用于预取数据和/或指令的方法,所述方法将至少一个应用程序的 数据和/或指令从具有多个存储分区(401-404)的存储单元(400)中预取 到与处理器(100)相关联的高速缓冲存储器(200)中,其中具有相似的 数据属性的数据被存储在相同的存储分区(401-404)中,所述方法包括以 下步骤 - 执行与存储分区(401-404)的每一个相关联的预定义预取模式。
7. 根据权利要求6所述的用于预取数据和/或指令的方法,其中具有 相似的参考局部性的数据和/或指令被存储在相同的存储分区(401-404) 中,其中预取模式取决于要预取的数据所存储在的存储区域。
8. 用于处理至少一个应用程序的电子设备,包括- 用于执行所述至少一个应用程序的至少一个处理器(100);以及- 与所述至少一个处理器(100)相关联的高速缓冲存储器(200),用 于存储来自具有多个存储分区(401-404)的存储单元(400)的数据和/ 或指令,其中具有相似的数据属性的数据被存储在相同的存储分区(401-404)中,其中预定义预取模式与存储分区"01-404)的每一个相 关联。
全文摘要
提供了一种用于处理至少一个应用程序的数据处理系统。所述数据处理系统包括用于执行所述应用程序的处理器(100)。所述系统还包括与处理器(100)相关联的高速缓冲存储器(200),所述高速缓冲存储器(200)用于对存储器(100)的数据和/或指令进行存储。所述系统还包括用于对应用程序的数据和/或指令进行存储的存储单元(400)。存储单元(400)包括多个存储分区(401-404)。具有相似数据属性的数据被存储在相同的存储分区(401-404)中。预定义预取模式与存储分区(401-404)的每一个相关联。
文档编号G06F9/38GK101390047SQ200780006966
公开日2009年3月18日 申请日期2007年2月26日 优先权日2006年2月27日
发明者米林德·M·库尔卡尼 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1