CN101390047A - 数据处理系统和用于预取数据和/或指令的方法 - Google Patents
数据处理系统和用于预取数据和/或指令的方法 Download PDFInfo
- Publication number
- CN101390047A CN101390047A CNA2007800069664A CN200780006966A CN101390047A CN 101390047 A CN101390047 A CN 101390047A CN A2007800069664 A CNA2007800069664 A CN A2007800069664A CN 200780006966 A CN200780006966 A CN 200780006966A CN 101390047 A CN101390047 A CN 101390047A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- stored
- partition holding
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 18
- 238000005192 partition Methods 0.000 claims abstract description 39
- 230000006399 behavior Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种用于处理至少一个应用程序的数据处理系统。所述数据处理系统包括用于执行所述应用程序的处理器(100)。所述系统还包括与处理器(100)相关联的高速缓冲存储器(200),所述高速缓冲存储器(200)用于对存储器(100)的数据和/或指令进行存储。所述系统还包括用于对应用程序的数据和/或指令进行存储的存储单元(400)。存储单元(400)包括多个存储分区(401-404)。具有相似数据属性的数据被存储在相同的存储分区(401-404)中。预定义预取模式与存储分区(401-404)的每一个相关联。
Description
技术领域
本发明涉及一种数据处理系统、一种用于预取数据和/或指令的方法、一种将数据和/或指令加载到存储器中的方法以及一种电子设备。
背景技术
现今的数据处理系统或处理器是基于特定分级存储器体系(memoryhierarchy)的,所述分级存储器体系包括具有不同速度和大小的存储器。然而,由于快速的存储器价格较高,所以分级存储器体系被组织为多个等级,其中对于每个字节,每个等级都比下一个较低的等级更小、更快且价格更高。通常,一个等级中的所有数据也可在下面的等级中找到,而且较低等级中的所有数据可在低于该等级的等级中找到,直到达到该分级体系的底部。
高速缓冲存储器可构成分级存储器体系的第一等级,即,所述高速缓冲存储器是与中央处理器CPU或处理单元最接近的处理器。如果CPU请求可在高速缓存中找到的数据项,则所谓的高速缓存命中就会出现。然而,如果由CPU请求的数据项不能在高速缓存中找到,则所谓的高速缓存未命中(miss)就会出现。用于校正高速缓存未命中和获取所请求数据项所需的时间取决于存储器的等待时间(latency)和带宽。等待时间与用于检索块的第一个字的时间相对应,带宽与用于检索块的剩余部分的时间有关。高速缓存的基本思想是:获取在数据项的实际处理之前的即将来临的处理周期期间需要的数据项。
如果发生高速缓存未命中,则可以通过每次替换整个高速缓存行来充分利用存储器带宽。然而,为了提供可用的存储器带宽,这种方法还会增加高速缓存行的大小。较大的高速缓存行对于预取而言是尤其有利的。然而,如果高速缓存行的大小增加,则在程序不具有足够的空间局部性且高速缓存未命中频繁发生的情况下,系统性能可能会降低。
在“Dynamically Variable Line-Size Cache Exploiting High On-ChipMemory Bandwidth of Merged DRAM/Logic LSIs”’,K.Inoue等,Proceedingsof HPCA-5.5 International Conference on High Performance Computing,Jan.1999中,描述了根据当前正在执行的应用程序的特点在运行时间改变高速缓存行的大小。
可在数据处理系统内处理的算法在针对指令以及数据的参考局部性(locality of reference)方面有所不同。参考局部性构成在处理器上运行的应用程序的属性。参考局部性指示不同的存储区域是如何被应用程序所访问的。此处,参考局部性可指空间参考局部性和时间参考局部性。如果在不远的将来有很大的可能性会访问与最近访问的数据位置距离很近的数据位置,则应用程序具有较好的空间参考局部性。时间参考局部性指示对最近数据位置的访问将会在不远的将来再次发生。所以,一些算法具有较好的参考局部性(空间、时间或两者),而另一些算法具有较差的参考局部性。相应地,一些算法具有较好的高速缓存命中率,而另一些算法具有相当差的高速缓存命中率。应当注意,高速缓存未命中不能避免。然而,为了降低高速缓存未命中损失,高速缓存未命中率应降低到最小。如果处理后的数据包括充足的空间局部性,则可以使用更大的高速缓存行。
发明内容
本发明的目的是提供降低高速缓存未命中损失量的一种数据处理系统以及一种用于预取数据和/或指令的方法。
由根据权利要求1所述的数据处理系统、根据权利要求5所述的用于将数据和/或指令加载到存储器中的方法、根据权利要求6所述的用于预取数据和/或指令的方法以及根据权利要求8所述的电子设备来实现该目的。
所以,提供了一种用于处理至少一个应用程序的数据处理系统。所述数据处理系统包括用于执行所述应用程序的处理器。所述系统还包括与处理器相关联的高速缓冲存储器,所述高速缓冲存储器用于对存储器的数据和/或指令进行存储。所述系统还包括用于对应用程序的数据和/或指令进行存储的存储单元。存储单元包括多个存储分区。具有相似数据属性的数据被存储在相同的存储分区中。预定义预取模式与存储分区的每一个相关联。
根据本发明的一方面,高速缓冲存储器包括多个寄存器,所述多个寄存器的每一个都与存储器的存储分区之一相关联。寄存器用于对与存储分区相关联的预定义预取模式进行存储。根据存储在寄存器中的预取模式来预取数据和/或指令。因此,对于数据项,尤其对于数据项的数据属性可以自定义对该具体数据项的预取。
根据本发明的另一方面,具有相似的参考局部性的数据被存储在相同的存储分区中。相应地,由于仅预取所需数据项,所以高速缓存未命中损失会降低。
根据本发明的又一方面,存储在存储分区中具有高参考局部性的数据被作为完整的数据块而获取,而对于存储在存储分区中具有低参考局部性的数据,仅获取所请求的数据。
本发明还涉及一种用于将应用程序的数据和/或指令加载到存储单元中的方法。存储单元包括多个存储分区。将具有相似的数据属性的数据和/或指令加载在相同的存储分区中。由此,根据数据属性来组织存储器和存储在其中的数据。
本发明此外还涉及一种用于从存储单元预取应用程序的数据和/或指令的方法,所述存储单元包括多个存储分区。来自存储单元的数据被预取到与处理器相关联的高速缓冲存储器中。具有相似的数据属性的数据被存储在相同的存储分区中。对存储分区的每一个执行预定义预取模式。
本发明还涉及一种用于处理应用程序的电子设备。所述电子设备包括用于执行应用程序的至少一个处理器。所述电子设备此外还包括与至少一个处理器相关联的高速缓冲存储器,所述高速缓冲存储器用于存储来自具有多个存储分区的存储单元的数据和/或指令。具有相似的数据属性的数据被存储在相同的存储分区中。预定义预取模式与存储分区的每一个相关联。
本发明涉及的思想是:将存储空间分割为多个区域,同时,具有相似高速缓存性能的指令和/或数据一起置于相似的区域中。所述区域还可以基于在高速缓存未命中期间获取的字的数量的。由此,通过在存储器中重新组织数据的存储,可以获得实质的增益。这可以实现更好的性能和减少的执行时间。
下文中将会参考附图更详细地描述本发明的实施例以及优点。
附图说明
图1示出了数据处理系统的框图,
图2示出了图1存储器的存储器分区的表示,以及
图3示出了高速缓存的分区的表示。
具体实施方式
图1示出了根据第一实施例的用于处理应用程序的数据处理系统的结构的框图。所述数据处理系统包括处理器100、高速缓存200、数据总线300和存储单元400。专用于应用程序的程序数据和/或指令被存储在存储单元400中。来自存储器400的数据和/或指令通过数据总线300被预取到高速缓存200中。所述高速缓存可包括用于控制高速缓存的操作的高速缓存控制器210以及高速缓冲存储器(cache memory)220。所述高速缓存还可包括可配置寄存器240。
图2示出了图1存储器400的表示。具体而言,存储器400被分为不同的区域或区(area)401-404,且用于应用程序的数据和/或指令被存储在这些存储区域401-404中。具有相似的参考局部性行为的数据被安排在相同的存储区域401-404中。如果数据不显示任何参考局部性,则将这种数据置于存储区域401中。如果访问该数据,则仅获取并转发一个字。例如,区域404可包含共有非常好的参考局部性的数据和指令。如果访问存储区域404中的这些数据,则整个高速缓存数据块(高速缓存行或多个字)被预取到高速缓存200中。因此对数据和/或指令的预取取决于数据被存储在哪里,即数据被存储在哪个存储区域中。由此,在这种结构的情况下,高速缓存未命中损失降低。参考局部性或局部性原理与多次访问单个资源的过程有关。参考局部性可涉及时间、空间和顺序(sequential)局部性。时间参考局部性涉及一个时间点处的资源参考会在不远将来的某个时刻再次被参考的概念。空间参考局部性涉及在资源的相邻资源刚刚被参考的情况下参考该资源的可能性更高的概念。顺序参考局部性涉及顺序地访问存储器的概念。所以,根据数据的时间、空间和/或顺序参考局部性将数据存储在特定存储区域401-404中。可以分析要存储在存储器400中的数据,以确定所述数据的参考局部性并基于数据的参考局部性将数据存储在各个存储区域401-404中。
图3示出了图1高速缓存的分区的表示。高速缓存200可包括用于控制高速缓存的操作的高速缓存控制器210、以及用于指示高速缓冲存储器(cache memory)内的数据状态的高速缓冲存储器(cache memory)220。第一高速缓存列201用于指示高速缓存块的状态,即所述高速缓存块是否被修改、被共享、无效的或排他的(exclusive)。第二高速缓存列202用于指示高速缓存块内的数据的位状态。状态可以是有效地或无效的。第三高速缓存列203用于指示标记(tag)信息以及实现各种高速缓存机制可能需要的其他状态位。第四高速缓存列用于指示高速缓存中存储的特定数据。
高速缓存200还可包括(可配置)寄存器240。优选地,寄存器与每一个分区相关联。寄存器用于存储关于每一个分区的信息。该信息可包含起始和结束地址、以及在从这种分区对数据或指令进行访问的情况下要获取的字的数量。
处理器100发布命令到高速缓存200,请求从指定地址读取数据。如果该数据已被预取到高速缓存200中,则发生高速缓存命中,且将该数据从高速缓存200转发到处理器100中。然而,如果该数据不存在于高速缓存200中,则发生高速缓存未命中。高速缓存200的高速缓存控制器210可确定存储器400内该地址的分区或存储区域401-404并且发布获取操作,以便获取与该分区相关联的多个字。然后根据针对该区域401-404的预定义预取模式(predefined prefetching pattern)将来自分区或存储器子系统的数据转发到高速缓存200。然后更新高速缓存块的状态,以便指示有效数据是否存在于高速缓存块中。
根据本发明,存储空间被分区或划分为不同的存储区域,其中指令和/或数据与具有诸如相似的参考局部性之类的相似高速缓存性能的其他指令和/或数据一起放置于存储区域之一中。存储了数据的存储区域指示在高速缓存未命中期间所获取的字的数量。
上述结构可在片上多处理器系统中实现。由此,可以映射展示出较差空间参考局部性的应用程序。
本发明还涉及一种用于对不同行为的数据和指令进行分类并在存储器内创建相应的存储分区的方法。根据该信息,在启动(boot up)时将应用程序目标代码(二进制文件)加载进系统存储器的链接器或加载器应用程序可将实际数据组织到所指示的特定存储区域中。由此,可以提供编译器、链接器和/或加载器单元,以实现上述分类和创建。预定义预取模式与存储分区或区域的每一个相关联。
应当注意,上述实施例示出而不是限制本发明,而且本领域技术人员在不背离所附权利要求的范围的情况下能够设计多种可替换实施例。在权利要求中,置于括号内的任何参考标记不应解释为限制该权利要求。单词“包括”不排除除了权利要求中列出的原件或步骤之外的元件或步骤存在。元件之前的单词“一个(a或an)”不排除多个这种元件存在。在列举多个装置的设备权利要求中,这些装置中的多个可具体化为一个或同一项的硬件。在互不相同的从属权利要求中陈述特定手段的起码的事实不表示不能结合使用这些手段以获利。
此外,权利要求中的任何参考标记不应解释为限制权利要求的范围。
Claims (8)
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)中,其中预定义预取模式与存储分区(401-404)的每一个相关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06110435 | 2006-02-27 | ||
EP06110435.2 | 2006-02-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101390047A true CN101390047A (zh) | 2009-03-18 |
Family
ID=38163370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800069664A Pending CN101390047A (zh) | 2006-02-27 | 2007-02-26 | 数据处理系统和用于预取数据和/或指令的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090177842A1 (zh) |
EP (1) | EP1997003A1 (zh) |
JP (1) | JP2009528612A (zh) |
CN (1) | CN101390047A (zh) |
WO (1) | WO2007096843A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981883A (zh) * | 2012-10-29 | 2013-03-20 | 无锡江南计算技术研究所 | 一种编译器数据预取方法和装置 |
WO2013152648A1 (zh) * | 2012-04-12 | 2013-10-17 | 腾讯科技(深圳)有限公司 | 提高应用程序运行速度的方法、装置及终端 |
CN108369507A (zh) * | 2015-10-16 | 2018-08-03 | 三星电子株式会社 | 用于使用存储器中处理来处理指令的方法和设备 |
CN112988620A (zh) * | 2019-12-18 | 2021-06-18 | 爱思开海力士有限公司 | 数据处理系统 |
WO2022179294A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 数据预取的方法、设备及系统 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529722B1 (en) * | 2014-07-31 | 2016-12-27 | Sk Hynix Memory Solutions Inc. | Prefetch with localities and performance monitoring |
CN105912476A (zh) * | 2016-04-06 | 2016-08-31 | 中国科学院计算技术研究所 | 片上重复寻址的方法及装置 |
US10713053B2 (en) * | 2018-04-06 | 2020-07-14 | Intel Corporation | Adaptive spatial access prefetcher apparatus and method |
US11086526B2 (en) * | 2018-06-07 | 2021-08-10 | Micron Technology, Inc. | Adaptive line width cache systems and methods |
US11093404B2 (en) * | 2019-10-14 | 2021-08-17 | EMC IP Holding Company LLC | Efficient pre-fetching on a storage system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154349A1 (en) * | 2002-01-24 | 2003-08-14 | Berg Stefan G. | Program-directed cache prefetching for media processors |
-
2007
- 2007-02-26 JP JP2008556897A patent/JP2009528612A/ja not_active Withdrawn
- 2007-02-26 WO PCT/IB2007/050604 patent/WO2007096843A1/en active Application Filing
- 2007-02-26 US US12/280,817 patent/US20090177842A1/en not_active Abandoned
- 2007-02-26 EP EP07705947A patent/EP1997003A1/en not_active Withdrawn
- 2007-02-26 CN CNA2007800069664A patent/CN101390047A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013152648A1 (zh) * | 2012-04-12 | 2013-10-17 | 腾讯科技(深圳)有限公司 | 提高应用程序运行速度的方法、装置及终端 |
US9256421B2 (en) | 2012-04-12 | 2016-02-09 | Tencent Technology (Shenzhen) Company Limited | Method, device and terminal for improving running speed of application |
CN102981883A (zh) * | 2012-10-29 | 2013-03-20 | 无锡江南计算技术研究所 | 一种编译器数据预取方法和装置 |
CN102981883B (zh) * | 2012-10-29 | 2016-01-13 | 无锡江南计算技术研究所 | 一种编译器数据预取方法和装置 |
CN108369507A (zh) * | 2015-10-16 | 2018-08-03 | 三星电子株式会社 | 用于使用存储器中处理来处理指令的方法和设备 |
CN112988620A (zh) * | 2019-12-18 | 2021-06-18 | 爱思开海力士有限公司 | 数据处理系统 |
WO2022179294A1 (zh) * | 2021-02-27 | 2022-09-01 | 华为技术有限公司 | 数据预取的方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP1997003A1 (en) | 2008-12-03 |
JP2009528612A (ja) | 2009-08-06 |
WO2007096843A1 (en) | 2007-08-30 |
US20090177842A1 (en) | 2009-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101390047A (zh) | 数据处理系统和用于预取数据和/或指令的方法 | |
CN102498477B (zh) | Tlb预取 | |
US9384134B2 (en) | Persistent memory for processor main memory | |
US7975108B1 (en) | Request tracking data prefetcher apparatus | |
US4774654A (en) | Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory | |
US8370577B2 (en) | Metaphysically addressed cache metadata | |
CN100573477C (zh) | 管理锁定的高速缓冲存储器中的组替换的系统和方法 | |
US6578111B1 (en) | Cache memory system and method for managing streaming-data | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
US8108614B2 (en) | Mechanism for effectively caching streaming and non-streaming data patterns | |
US6321297B1 (en) | Avoiding tag compares during writes in multi-level cache hierarchy | |
CN100394407C (zh) | 低等待时间存储器系统访问 | |
US8595443B2 (en) | Varying a data prefetch size based upon data usage | |
KR102453192B1 (ko) | 다른 캐시에서의 엔트리들의 가용성을 기반으로 한 캐시 엔트리 교체 | |
CN1673980A (zh) | 为dma控制器提供高速缓存管理命令的系统和方法 | |
CN103198026A (zh) | 指令高速缓存功耗降低 | |
US10613984B2 (en) | Prefetch tag for eviction promotion | |
CN100514311C (zh) | 用于实现组合式数据/相关性高速缓存的方法和装置 | |
US8266381B2 (en) | Varying an amount of data retrieved from memory based upon an instruction hint | |
US6643743B1 (en) | Stream-down prefetching cache | |
US20110055482A1 (en) | Shared cache reservation | |
US7293141B1 (en) | Cache word of interest latency organization | |
US6598124B1 (en) | System and method for identifying streaming-data | |
JP2007058349A (ja) | キャッシュシステム | |
US20050132139A1 (en) | Runtime register allocator |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090318 |