【技术实现步骤摘要】
本专利技术涉及计算机,通讯及集成电路领域。
技术介绍
通常数据缓存的作用是将更低级存储器中的部分数据内容复制在其中,使这些内容能被更高级存储器或处理器核快速存取,以保证流水线的持续运行。当前的高性能计算机/微处理器等多数使用独立的数据缓存以避免指令与数据共用同一通道的冯·诺依曼瓶颈。随着多指令发射技术的广泛应用,单数个的数据缓存也将更经常地成为限制处理器功能提高的瓶颈。在现有技术中,数据缓存结构由数据存储器和标签存储器构成。数据存储器和标签存储器每行对应,数据存储器重存储数据,标签存储器中存储数据地址的标签,即数据地址中的高位。现行数据缓存的寻址都基于以下方式,用地址中的索引段(index)寻址读出标签存储器中的标签与地址中的标签段进行匹配;用地址中索引段与块内位移段共同寻址读出缓存中的内容。在现有技术中,存储器相邻存储行对应的的索引段寻址地址是连续的,而存储在对应的标签存储器中的标签可以是不连续的。从编译器的角度看,正在执行的目标程序在它自己的逻辑地址空间内运行,每个程序值在这个地址空间中有一个地址。一个目标程序在逻辑地址空间的运行时刻映像包含数据区和代码区。数据区又包含静态区、堆区、空闲内存和栈区。栈区用来存放称为活动记录的数据结构,这些活动记录在函数调用过程中生成。通常静态区与堆区从地址空间的低区从底向顶生长,栈区从地址空间的高区从顶向底生长,两者之间并不重叠,由空闲内存分隔。通常处 ...
【技术保护点】
一种缓存方法,其特征在于将缓存分为:栈缓存,用于存储程序运行时存储在栈区域中的数据;和非栈缓存,用于存储程序运行时的其他数据;当处理器核执行的数据访问指令对应的数据位于栈区域中时,直接访问栈缓存。
【技术特征摘要】 【专利技术属性】
1.一种缓存方法,其特征在于将缓存分为:
栈缓存,用于存储程序运行时存储在栈区域中的数据;和
非栈缓存,用于存储程序运行时的其他数据;
当处理器核执行的数据访问指令对应的数据位于栈区域中时,直接访问栈
缓存。
2.根据权利要求1所述方法,其特征在于,根据所述数据访问指令数据地
址判断对应的数据位于栈区域中,还是位于非栈区域中;或
根据所述数据访问指令中的基地址寄存器号判断对应的数据位于栈区域
中,还是位于非栈区域中。
3.根据权利要求2所述方法,其特征在于,大于或等于栈寄存器值的数据
地址位于栈区域中。
4.根据权利要求2所述方法,其特征在于,用栈缓存中地址连续的存储空
间存储栈区域中数据地址连续的数据。
5.根据权利要求4所述方法,其特征在于,用循环缓冲实现所述栈缓存。
6.根据权利要求5所述方法,其特征在于,还包括:
栈顶指针,指向所述栈缓存中位于栈顶位置的数据;
栈底指针,所述栈底指针与所述栈顶指针保持一定距离,且两者之间的数
据就是存储在所述栈缓存中的有效数据。
7.根据权利要求6所述方法,其特征在于,当栈顶值改变时,通过对原栈
顶值和新栈顶值相减,判断出栈顶指针移动方向。
8.根据权利要求7所述方法,其特征在于,由多个所述栈缓存结构组成多
层的栈缓存;其中:
最高层次的栈缓存的栈顶指针值由处理器核产生的栈顶值决定;
其他层次的栈缓存的栈顶指针值由更高一层次的栈缓存的栈底指针值决
定。
9.根据权利要求8所述方法,其特征在于,各个层次的栈缓存中的循环缓
冲共同组成一个大的循环缓冲,所述循环缓冲跨越了不同的缓存层次。
10.根据权利要求8所述方法,其特征在于,当较高层次栈缓存已满或接
\t近满时,将其栈底指针指向的至少一个数据存储到更低层次栈缓存中与其栈顶
指针指位置相邻的尚未存储有效数据的存储位置,并相应移动所述较高层次栈
缓存的栈底指针及所述更低层次栈缓存的栈顶指针。
11.根据权利要求10所述方法,其特征在于,当较高层次栈缓存已空或接
近空,且在更低层次栈缓存中有数据时,将所述更低层次栈缓存中栈顶指针指
向的至少一个数据取回存储到所述较高层次栈缓存中栈底指针指向位置相邻的
尚未存储有效数据的存储位置,并相应移动所述较高层次栈缓存的栈底指针及
所述更低层次栈缓存的栈顶指针。
12.根据权利要求11所述方法,其特征在于,在栈缓存中预留若干个存储
单元作为预留部分;
新的数据可以被写入栈缓存的预留部分,但必须保证预留部分大于等于预
设的最小容量;所述最小容量值为零或正数;
若因新数据的写入导致预留部分小于所述最小容量,则将其栈底指针指向
的至少一个数据存储到更低层次栈缓存中与其栈顶指针指位置相邻的尚未存储
有效数据的存储位置,并相应移动所述栈缓存的栈底指针及所述更低层次栈缓
存的栈顶指针。
13.根据权利要求12所述方法,其特征在于,当支持多个线程同时运行时,
将所述预留部分对应的存储单元的号码存储在保留池中;
若有新数据写入,则由保留池分配一个存储单元号码供存储数据;
若有数据被从栈中取出不再存储,则将对应的存储单元号码送回保留池。
14.根据权利要求13所述方法,其特征在于,当正在进行栈操作的一个线
程的栈顶指针下移需要更多的存储块,而保留池中已没有预留的存储块时,控
制其他线程移动栈底指针释放存储块以供所述线程栈顶指针使用。
15.根据权利要求5所述方法,其特征在于,每个存储单元或每组存储单
元有相应的数据地址;
将所有所述数据地址与处理器核送出的数据地址同时匹配,可以找到处理
器核送出的数据地址对应的一个存储单元,或一组存储单元并在该组存储单元
中找到相应的存储单元。
16.根据权利要求5所述方法,其特征在于,记录栈顶值以及栈顶值对应
\t的一个存储单元或一组存储单元的号码;
技术研发人员:林正浩,
申请(专利权)人:上海芯豪微电子有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。