CN100390755C - 含有显式高速缓冲存储器的计算机微体系结构 - Google Patents

含有显式高速缓冲存储器的计算机微体系结构 Download PDF

Info

Publication number
CN100390755C
CN100390755C CNB2003101010676A CN200310101067A CN100390755C CN 100390755 C CN100390755 C CN 100390755C CN B2003101010676 A CNB2003101010676 A CN B2003101010676A CN 200310101067 A CN200310101067 A CN 200310101067A CN 100390755 C CN100390755 C CN 100390755C
Authority
CN
China
Prior art keywords
ecache
data
memory
cache
register
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.)
Expired - Lifetime
Application number
CNB2003101010676A
Other languages
English (en)
Other versions
CN1529244A (zh
Inventor
张兆庆
乔如良
唐志敏
冯晓兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CNB2003101010676A priority Critical patent/CN100390755C/zh
Publication of CN1529244A publication Critical patent/CN1529244A/zh
Application granted granted Critical
Publication of CN100390755C publication Critical patent/CN100390755C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一种含有显式高速缓冲存储器的计算机微体系结构,包括内存、cache、寄存器和运算部件,还包括位于CPU芯片内的Ecache,所述Ecache与内存统一编码。本发明的Ecache位于CPU芯片内,因此可保证硬件实现对Ecache的快速访问;Ecache与内存统一编址,且从小地址开始,因此在所有访存指令中,访问Ecache的地址显式出现(可见),硬件易于识别与实现。设计的几组指令,支持编译器和运行程序对Ecache的显式使用和动态管理。这些指令与Ecache是不可分的整体。

Description

含有显式高速缓冲存储器的计算机微体系结构
技术领域
本发明涉及计算机系统,特别涉及含有显式高速缓冲存储器(简称Ecache)的计算机微体系结构。
技术背景
过去50年里,计算机性能大体上按Moore定律增长,主要依靠的技术是提高机器的工作频率和使用各种并行机制。存储技术虽然也有发展,但是存储器速度与处理器速度相比仍有很大差距。现代计算机在内存和寄存器之间设有一级、二级,甚至三级高速缓冲存储器(Cache),希望能重用Cache中的数据,以缓解访问内存速度慢的矛盾(见图1)。
为什麽在芯片内增加Cache能缓解访存矛盾呢?我们以CPU读数据的过程为例,简要说明Cache的工作过程(Cache的工作原理见图3)。
Cache由若干个块组成(图3中的阴影部分就是一个块),每个块又分两个部分,即图中示出的标记部分(TAG)和数据部分(DATA)。数据部分存放的是来自内存的数据,标记部分存放的是与该数据对应的标记,标记实际上对应着该数据在内存中的位置。CPU读数据的过程,由下面几个步骤组成(这是由硬件自动完成的):
1.用访存地址的低位部分对Cache进行译码,确定本次访问是针对哪一个Cache块进行的。在本例中,阴影块被选中;
2.将被选中的那个块的标记部分与访存地址的高位部分进行比较,看是否相等;
3.如果相等,说明本次访问的数据在Cache里,称为命中,直接将被选中的块的数据部分送给CPU即可。完成这一步大约需要1-3个时钟周期;
4.如果不相等,说明本次访问的数据不在Cache里,称为不命中,则需从内存取出相应的数据,放入Cache,也送给CPU。如果Cache已装满数据,则需按某种替换规则将某一Cache块回写到内存,等到回写完成后,才能将从内存取来的数据放入Cache。此过程相当慢,因此完成这一步平均需要40-50个时钟周期。
从上面介绍的Cache工作过程可以得到Cache的若干特征:
1)一级Cache在CPU芯片中,保证对Cache中数据的访问有较快的速度;
2)Cache有一套机制(控制电路),判断访存数据是否在Cache中。如果不在Cache中,则要从内存取数据,还要维护Cache和内存的数据一致性。访存不命中Cache是造成延迟的主要原因;
3)Cache结构对编译器来说是不可见的,知道它的存在,但不可以将重用性好的数据有目的地分配到Cache中。
不难看出,重用Cache中的数据是提高访存性能的关键。用户程序能否充分地利用Cache中的数据,是由程序自身行为决定的。编译器的优化任务之一就是要挖掘出程序中潜在的数据局部性(包括时间局部性和空间局部性),利用各种程序变换技术,使编译后的目标代码达到减少访存时间和加速执行速度的目的。
访存数据通常分为四类:只读数据(常量),全局静态数据,栈数据和堆数据。编译器为每个被编译的程序在内存中划出四个相应的数据区,分别存放上述四类数据。四个数据区的划分与分布见图5。只读数据和全局静态数据由编译器和连接器静态分配。栈数据区用作过程(函数)的活动纪录(frame stack),其结构见图7。每个过程的frame stack按“先进后出”原则,动态地分配到栈区。堆数据区用作数据对象(如数组等)的动态分配。
根据对SPEC CPU 2000基准测试程序所做的统计分析,平均有大约45%的执行时间是花在访存上,其中54%是访问栈数据。由于很多时间花在了访存上,再加上其它的延迟,使得计算机的实际性能处在峰值的25%~30%之间。
目前编译器对访存的优化主要是针对循环和数组的。以图8中程序为例,当m较大,而b的m个元素:b(1),b(2),...b(m)不能全部装在Cache中时,该程序的局部性极差。编译器对它的j循环做循环分段和循环交换后,得到图9所示的程序,该程序具有良好的局部性,条件是Cache要能装下l个b元素。由于Cache对编译器来说是不可见的,堆数据又是动态分配的,编译和运行时都不能预见Cache的使用状态,故编译器实现局部性优化具有很多不合理性(如本例中l取多大合理?)。
编译器对被编译的程序分析后,可以较准确地知道其他三类数据(只读、全局、和栈)的数量和使用频率。如果硬件提供一个编译器可以分配和管理的高速缓冲存储器,则可将访问频率高(即重用性好)的数据分配在其中,这将对访存速度有很大的改善。
发明内容
本发明的目的在于给编译器提供一种可以静态分配,运行时管理的显式高速缓冲存储器(简称Ecache),利用编译技术使访存速度慢的矛盾得以缓解。
为实现上述目的,一种含有显式高速缓冲存储器的计算机微体系结构,包括内存、cache、寄存器和运算部件,还包括位于CPU芯片内的连接在寄存器和内存之间的显式高速缓冲存储器Ecache,Ecache与内存和寄存器的数据通路与cache共用,所述Ecache的编址从小地址开始与内存统一编址。
本发明的Ecache位于CPU芯片内,因此可保证硬件实现对Ecache的快速访问;Ecache与内存统一编址,且从小地址开始,因此在所有访存指令中,访问Ecache的地址显式出现(可见),硬件易于识别与实现。设计的几组指令,支持编译器和运行程序对Ecache的显式使用和动态管理。这些指令与Ecache是不可分的整体。
附图说明
图1是典型的带有一级Cache的CPU芯片结构及数据通路的示意图。
图2是在CPU芯片中增加Ecache的结构和数据通路的结构图。
图3是Cache工作原理图。
图4是Ecache和内存统一编址与地址空间划分的示意图。
图5为典型的常规编译器对数据区的划分。
图6为编译器对Ecache所做的数据区划分。
图7是编译器中使用的栈数据区结构。它的驻留地为内存。
图8是一个普通的循环程序。
图9是对图8中程序优化后的循环程序。
图10是利用Ecache和相应的传输指令对图8中程序所做的优化。其中取b(jj*i:jj*i+l-1)→eb(d:d+l-1)表示将l个b元素预取至Ecache中,eb(d:d+l-1)是指Ecache中可以使用的l个单元,eb(d:d+l-1)→b(jj*i:jj*i+l-1)是将计算结果送回内存b数组的相应位置。
具体实施方式
下面结合附图描述本发明。如图2所示,本发明在CPU芯片中增加一个Ecache,Ecache本质上是一个芯片内的高速存储器。Ecache的连接方式与现有计算机系统中的cache相同,一端接在寄存器上,另一端接在计算机系统中的内存上。并且,Ecache与内存和寄存器之间的数据传输共用cache已有的机制。
图4是Ecache和内存统一编址与地址空间划分的示意图。从图4可以看出,位于CPU芯片内的Ecache与位于CPU片外的内存统一编址,且是从小地址开始。在访问Ecache的实现上,首先判断访存地址是否<m。如果<m,则表示直接访问Ecache,编译器保证要访问的数据在Ecache中,没有命中与不命中的问题;如果地址≥m,则按原来的访存方式,经Cache访问。由于Ecache没有Cache那样复杂的控制电路,所以Ecache的访问速度比Cache快得多。
Ecache和Cache的不同之处在于,Cache虽然能够存放数据,但其存储位置是独立的,不列入内存的寻址空间,内存数据进入Cache是由硬件自动完成的。而Ecache是内存寻址空间的一部分,由于它被置于CPU芯片内,故访问的速度很快。另外,对它的使用如同使用芯片外的内存一样,是编译器可见,可分配和可管理的一段快速片上“内存”。编译器将Ecache划分出四个数据区(如图6所示)。由于Ecache和内存统一连续编址,当栈区不够使用时,自然下溢至相邻的内存;当栈区有剩余空间时,可用作堆数据分配。
为支持编译器对Ecache的有效使用和管理,本发明设计了以下几组指令:
1.设立一个存放传输数据个数的长度寄存器rl;并提供一条置rl长度的指令:
setr rl,n
其语义为将立即数n置于rl中。
2.为内存(memory),Ecache,寄存器(register)之间成组传输数据提供三组指令。
第一组:
tme md,ed,n表示从memory到Ecache
tem ed,md,n表示从Ecache到memory
其中,md和ed分别表示数据在memory和Ecache中的首地址,传输的数据个数为n。
第二组:
tmed md,ed,d表示从memory到Ecache
temd ed,md,d表示从Ecache到memory
其中,md和ed分别表示数据在memory和Ecache中的首地址,
传输的数组以跨距为d分布在memory中,传输数据的个数为rl中指示的个数。
利用这两组指令可以实现成组数据的预取和保存。图10是利用Ecache对图8中循环的优化。这两组指令的实现可以借用原Cache与memory之间的数据传输通路,外加一个控制传输数据个数的计数装置即可。
第三组:
ter ed,rd,n表示从Ecache到register
tre rd,ed,n表示从register到Ecache
其中ed为数据在Ecache中的首地址,rd为register的编号,n表示传输数据的个数。
利用这组指令可以快速实现寄存器的保留和恢复(处理寄存器的溢出问题)。硬件实现也可以利用Cache与register之间的数据通路。

Claims (6)

1.一种含有显式高速缓冲存储器的计算机微体系结构,包括内存、cache、寄存器和运算部件,其特征在于还包括位于CPU芯片内的连接在寄存器和内存之间的显式高速缓冲存储器Ecache,Ecache与内存和寄存器的数据通路与cache共用,所述Ecache的编址从小地址开始与内存统一编址。
2.按权利要求1所述的含有显式高速缓冲存储器的计算机微体系结构,其特征在于所述Ecache是内存寻址空间的一部分。
3.按权利要求1所述的含有显式高速缓冲存储器的计算机微体系结构,其特征在于所述显式高速缓冲存储器中的数据由编译器分配和管理。
4.按权利要求1所述的含有显式高速缓冲存储器的计算机微体系结构,其特征在于所述Ecache作为目标码的运行栈。
5.按权利要求1所述的含有显式高速缓冲存储器的计算机微体系结构,其特征在于所述Ecache作为目标码的只读数据和全局量驻留地。
6.按权利要求3所述的含有显式高速缓冲存储器的计算机微体系结构,其特征在于编译器可以用成组传输指令实现数据预取,对堆数据的快速访问。
CNB2003101010676A 2003-10-14 2003-10-14 含有显式高速缓冲存储器的计算机微体系结构 Expired - Lifetime CN100390755C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2003101010676A CN100390755C (zh) 2003-10-14 2003-10-14 含有显式高速缓冲存储器的计算机微体系结构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2003101010676A CN100390755C (zh) 2003-10-14 2003-10-14 含有显式高速缓冲存储器的计算机微体系结构

Publications (2)

Publication Number Publication Date
CN1529244A CN1529244A (zh) 2004-09-15
CN100390755C true CN100390755C (zh) 2008-05-28

Family

ID=34304164

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101010676A Expired - Lifetime CN100390755C (zh) 2003-10-14 2003-10-14 含有显式高速缓冲存储器的计算机微体系结构

Country Status (1)

Country Link
CN (1) CN100390755C (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101059775B (zh) * 2006-04-19 2010-07-14 深圳市朗科科技股份有限公司 降低便携式设备功耗的方法
CN101620526B (zh) * 2009-07-03 2011-06-15 中国人民解放军国防科学技术大学 一种减少流处理器片上指令存储器资源消耗的方法
CN101739358B (zh) * 2009-12-21 2012-07-04 东南大学 利用虚存机制对片上异构存储资源动态分配的方法
CN102629191B (zh) * 2011-04-25 2014-07-30 中国电子科技集团公司第三十八研究所 数字信号处理器寻址方法
CN102968379B (zh) * 2012-10-24 2015-05-06 无锡江南计算技术研究所 一种寄存器分配方法、系统及处理器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997024725A1 (en) * 1995-12-29 1997-07-10 Mukesh Chatter High performance universal multi-port internally cached dynamic random access memory system, architecture and method
WO1999005604A1 (en) * 1997-07-28 1999-02-04 Nexabit Networks, Llc Multi-port internally cached drams
CN1217506A (zh) * 1997-11-07 1999-05-26 日本电气株式会社 高速缓存存储器系统
CN1329304A (zh) * 2000-04-27 2002-01-02 显露结构开发研究所 基于寄存器地址环绕式处理的提前装载地址表项目无效

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997024725A1 (en) * 1995-12-29 1997-07-10 Mukesh Chatter High performance universal multi-port internally cached dynamic random access memory system, architecture and method
WO1999005604A1 (en) * 1997-07-28 1999-02-04 Nexabit Networks, Llc Multi-port internally cached drams
CN1217506A (zh) * 1997-11-07 1999-05-26 日本电气株式会社 高速缓存存储器系统
CN1329304A (zh) * 2000-04-27 2002-01-02 显露结构开发研究所 基于寄存器地址环绕式处理的提前装载地址表项目无效

Also Published As

Publication number Publication date
CN1529244A (zh) 2004-09-15

Similar Documents

Publication Publication Date Title
Kim et al. Toward standardized near-data processing with unrestricted data placement for GPUs
Ebrahimi et al. Techniques for bandwidth-efficient prefetching of linked data structures in hybrid prefetching systems
Drepper What every programmer should know about memory
US8738859B2 (en) Hybrid caching techniques and garbage collection using hybrid caching techniques
CN102713837B (zh) 用于管理并行高速缓存层级的指令
CN104252392B (zh) 一种访问数据缓存的方法和处理器
EP2542973B1 (en) Gpu support for garbage collection
Wehmeyer et al. Influence of memory hierarchies on predictability for time constrained embedded software
Abbaspour et al. A time-predictable stack cache
Gonzalez et al. Hybrid access-specific software cache techniques for the cell be architecture
Kim et al. Coda: Enabling co-location of computation and data for multiple gpu systems
Luk et al. Memory forwarding: Enabling aggressive layout optimizations by guaranteeing the safety of data relocation
Schoeberl et al. Data cache organization for accurate timing analysis
Guo et al. Mira: A program-behavior-guided far memory system
Chang et al. CASA: Contention-aware scratchpad memory allocation for online hybrid on-chip memory management
US8387009B2 (en) Pointer renaming in workqueuing execution model
CN114816666A (zh) 虚拟机管理器的配置方法、tlb管理方法及嵌入式实时操作系统
CN100390755C (zh) 含有显式高速缓冲存储器的计算机微体系结构
Schoeberl et al. Towards time-predictable data caches for chip-multiprocessors
CN101008923A (zh) 面向异构多核体系的分段式存储空间管理方法
Vijaykrishnan et al. Supporting object accesses in a Java processor
Nguyen et al. Scratch-pad memory allocation without compiler support for java applications
Rubin et al. Virtual cache line: A new technique to improve cache exploitation for recursive data structures
Chakraborty et al. Integrating software caches with scratch pad memory
Cher et al. Cell GC: using the Cell synergistic processor as a garbage collection coprocessor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20080528