CN1427341A - 动态索引的微处理器高速缓存方法 - Google Patents

动态索引的微处理器高速缓存方法 Download PDF

Info

Publication number
CN1427341A
CN1427341A CN 01144708 CN01144708A CN1427341A CN 1427341 A CN1427341 A CN 1427341A CN 01144708 CN01144708 CN 01144708 CN 01144708 A CN01144708 A CN 01144708A CN 1427341 A CN1427341 A CN 1427341A
Authority
CN
China
Prior art keywords
cache
index
speed
memory
tag
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.)
Granted
Application number
CN 01144708
Other languages
English (en)
Other versions
CN1165000C (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.)
Loongson Technology Corp Ltd
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 CNB011447087A priority Critical patent/CN1165000C/zh
Publication of CN1427341A publication Critical patent/CN1427341A/zh
Application granted granted Critical
Publication of CN1165000C publication Critical patent/CN1165000C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种动态索引的微处理器高速缓存方法,包括步骤:1.索引字段的位置随程序访存行为的变化而动态变化。2.在多路组相联中不同的组的索引互相独立,可以不同。3.操作系统对控制寄存器赋值,以控制从内存地址形成访问高速缓存的Index和Tag的方式。通过动态调整微处理器高速缓存的组织,本发明能够适应计算机系统中各种程序不同的访存行为,提高整体高速缓存命中率,进而全面地提高系统运行速度。

Description

动态索引的微处理器高速缓存方法
技术领域
本发明涉及微处理器体系结构,特别涉及一种动态索引的微处理器高速缓存方法。
背景技术
众所周知,处理器的速度一直比内存的访问速度快一个数量级以上,并且处理器与存储器这种性能上的差距以每年大约50%的速度增大,使得访存速度越来越成为提高处理器性能的瓶颈。利用局部性原理,使用一个或者多个层次的高速缓存是解决这个问题的有效手段之一。高速缓存是一个容量小但访问速度快的特殊存储器,存放处理器最近使用的指令和数据。处理器运行程序时,如果指令和数据已经在高速缓存中,则可以以很高的速度访问,否则就要发出内存访问请求,等待较长时间。设计出色的高速缓存可以大幅度降低处理器的平均内存访问时间。
任何时候,高速缓存存放了内存的一小部分内容。从本质上说,内存和高速缓存之间是多到少的映射关系,这种映射关系的选择决定了给定一个内存块可以存放在高速缓存的哪些位置,也影响确定该内存块是否在高速缓存的速度。传统微处理器高速缓存为了保证高速缓存访问速度,一般使用非常简单的映射关系,常常是直接用内存地址的某些位做高速缓存的块索引。而根据一个内存块可以映射到的高速缓存块的多少,高速缓存可以分成直接映射、多路组相联、全相联三类。直接映射的高速缓存中,每个内存块映射到一个固定的高速缓存块;全相联的高速缓存中,每个内存块都可以映射到任意一个高速缓存块;而多路组相联则是两者间的折中:高速缓存块可以分成若干个组(每个组有几个块就称为几路组相联),每个内存块可以映射到某个组中的任意块。直接映射的高速缓存硬件最简单,有利于降低成本和提高高速缓存速度,但容易出现多个内存块竞争同一个高速缓存块而不能利用其它空闲块的情况。而全相联正好相反。
图1(a)给出了一个二路组相联的传统微处理器高速缓存原理结构。在图中,访问高速缓存的地址分成固定的三个部分:Tag,Index,和Offset。其中Index用来索引高速缓存块,Tag用来与高速缓存的Tag比较判断高速缓存访问是否命中,Offset用来在选中的块中选择需要的内容。上述高速缓存结构是基于对访存局部性的假设,即假设在一段时间内访存地址的低位部分变化最频繁。对于访存符合这种局部性假设的程序,上述高速缓存结构能够达到较大的命中率。但是许多程序的访存行为并不满足这种局部性。
图2给出了三个C程序片断,它们各自有不同的访存行为。在图2(a)的程序段中,二维数组a和b都按行访问。在C语言中,数组的数据是按行在内存中存放。因此,图2(a)的程序段访存局部性较好,用图1(a)结构的传统高速缓存可以达到较高的命中率。但在图2(b)的程序中,二维数组a和b都按列访问,在图2(c)的程序中,二维数组a按行访问而b按列访问,访存局部性不好,用图1(a)结构的传统高速缓存难以达到较高的命中率。因为对于a或b的某一列,该列的所有元素很可能都映射到高速缓存的同一组(块)中,按列访问会导致该组(块)的频繁替换而其它组(块)空闲不用。而在实际系统中,这三种访存访存都很常见,例如:C语言的数组按行存放,FORTRAN语言的数组按列存放,而矩阵相乘时,一般算法是对其中一个矩阵按行访问,对另一个按列访问。
导致图2(b)和2(c)中的程序高速缓存命中率不高的原因是高速缓存的组织与程序的访存行为不匹配。在图2(b)的程序中,访存地址的低位变化不快,地址变化最频繁的是中间的某些位,因此如果用中间某些位做高速缓存的Index,可以使这些地址比较均匀地分布在整个高速缓存中,从而得到较好的高速缓存命中率。而对图2(c)中的程序,访问数组a和数组b时则要用访问地址的不同部分作为Index,才能得到较好的高速缓存命中率。
人们也曾经从各个角度试图解决上述问题。A.Seznec(参见A.Seznec.A Case for two_way skewed Associative Cache,the 20th Annual,1993)认为仅用固定的位做索引的方式不够有效,他提出对组相联高速缓存的每一路使用一个合适的地址映射函数来把内存地址映射到高速缓存地址,从而提高高速缓存的命中率。A.Seznec和其它一些研究人员还讨论了这种地址映射函数应有的性质,并用一些具体例子获得较好的效果。但是,这种方法的缺点是理论上比较好的映射函数往往因为硬件实现困难或者代价太大而不能实用,另外它也难以动态适应不同程序的不同访存行为。其它方法也很少实用的,目前的处理器高速缓存多数仍采用传统的多路组相联方式。
发明内容
本发明的目的是提供一种基于动态索引的高速缓存方法,它能根据程序的访存行为对地址中的索引字段(Index)进行动态调整,从而提高高速缓存的命中率。
为实现上述目的,动态索引的微处理器高速缓存方法包括步骤:
1、索引字段的位置随程序访存行为的变化而动态变化。
2、在多路组相联中不同的组的索引互相独立,可以不同。
3、操作系统对控制寄存器赋值,以控制从内存地址形成访问高速缓存的Index和Tag的方式。
通过动态调整微处理器高速缓存的组织,本发明能够适应计算机系统中各种程序不同的访存行为,提高整体高速缓存命中率,进而全面地提高系统运行速度。
附图说明
图1是基于动态索引的高速缓存设计;
图2是访存行为的例子。
发明的具体实施方式
不同的程序有不同的访存行为,高速缓存的索引方式不应一成不变,而应该根据程序的访存行为进行动态调整。程序的访存局部性不一定只体现为访存地址的低位频繁变化,还可能体现为访存地址的其它位频繁变化。
基于动态索引的二路组相联的高速缓存如图1(b)所示。该设计的主要思想是在访问高速缓存之前对内存地址进行适当变换,形成比较适合程序访存行为的Index和Tag来访问高速缓存。在多路组相联结构中,不同的组可以有不同的Index和Tag。作为一个例子,图1(b)给出了图2(c)的程序段在执行时的高速缓存内容,其中访问数组a时用低位做索引,而访问数组b时用中间某些位做索引。
在基于动态索引的高速缓存中,每一组Index和Tag的选择由一个控制寄存器IndexSelect来控制。操作系统可以通过对该寄存器的赋值决定如何由内存地址形成访问高速缓存的Index和Tag。而操作系统形成IndexSelect内容的依据是一组统计寄存器。这些统计寄存器监听访问高速缓存的内存地址并统计内存地址的每一位或字段(一个字段可以包含多位)的变化频度(在实现本发明的MIPS CPU中,由于空闲的控制寄存器号不是很多,在监听内存地址时不监听每一位地址的变化频度,而是把地址分段,监听每一段的变化频度)。操作系统读取统计寄存器并修改IndexSelect控制寄存器的时机可以选择如下两种方法之一。一是利用时钟中断定期读取统计寄存器的内容,如果发现当前的Index形成方式与访存行为不符则确定新的Index形成方式并修改IndexSelect控制寄存器内容。二是当硬件发现高速缓存失效率太高或变化最快的位不是Index位时产生例外,由操作系统在例外处理程序中读取统计寄存器并修改IndexSelect寄存器。值得指出的是,在每次修改IndexSelect寄存器之前都需要把刷新高速缓存以保证高速缓存中的老内容不会被误用。
由于上述由内存地址形成Index和Tag是在访问高速缓存的关键路径上,因此由内存地址形成Index和Tag的方式要尽量简单。由内存地址形成Index和Tag的过程基本上是一个多选一电路,由IndexSelect来选择内存地址的哪些位形成Tag和Index。由于IndexSelect的内容长时间保持不变,因此只要保证对IndexSelect赋值后的下一拍不出现访存指令,使得硬件有足够的时间对IndexSelect的内容进行译码形成选通信号,上述由内存地址动态形成Index和Tag的延迟为一级与或门的延迟。在实现本发明的MIPS CPU中,从MTC0指令(用于修改控制寄存器的指令)取回到执行结束的过程中停止后续指令的取指,从而避免Index变化过程中出现错误。

Claims (4)

1、一种基于动态索引的微处理器高速缓存方法,包括步骤:
(1)、索引字段的位置随程序访存行为的变化而动态变化;
(2)、在多路组相联中不同的组用独立的索引字段;
(3)、操作系统对控制寄存器赋值,以便确定内存地址形成访问高速缓存的Index和Tag。
2、按权利要求1所述的高速缓存方法,其特征在于:每一组Index和Tag的选择由一个控制寄存器来控制。
3、按权利要求1所述的高速缓存方法,其特征在于:处理器使用一组统计寄存器监听访问高速缓存的内存地址并统计内存地址的每一位或字段的变化频度。
4、按权利要求1所述的高速缓存方法,其特征在于:操作系统利用统计寄存器来做出决策并通过写控制寄存器来改变高速缓存的组织,以适应程序访存行为。
CNB011447087A 2001-12-20 2001-12-20 动态索引的微处理器高速缓存方法 Expired - Lifetime CN1165000C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB011447087A CN1165000C (zh) 2001-12-20 2001-12-20 动态索引的微处理器高速缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB011447087A CN1165000C (zh) 2001-12-20 2001-12-20 动态索引的微处理器高速缓存方法

Publications (2)

Publication Number Publication Date
CN1427341A true CN1427341A (zh) 2003-07-02
CN1165000C CN1165000C (zh) 2004-09-01

Family

ID=4677786

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011447087A Expired - Lifetime CN1165000C (zh) 2001-12-20 2001-12-20 动态索引的微处理器高速缓存方法

Country Status (1)

Country Link
CN (1) CN1165000C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407172C (zh) * 2003-07-25 2008-07-30 飞思卡尔半导体公司 选择替换用高速缓冲存储器路的方法与装置
CN100465921C (zh) * 2003-07-29 2009-03-04 英特尔公司 管理具有固定住的数据的高速缓存的方法和系统
CN101187901B (zh) * 2007-12-20 2012-07-18 康佳集团股份有限公司 一种实现文件访问的高速缓存系统和方法
WO2013163956A1 (zh) * 2012-05-02 2013-11-07 华为技术有限公司 用于处理器的动态组相联高速缓存装置及其访问方法
CN104731519A (zh) * 2013-12-20 2015-06-24 晨星半导体股份有限公司 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法
CN112799977A (zh) * 2021-02-26 2021-05-14 中国人民解放军国防科技大学 计算机的缓存分区和缓存访问实时性保护方法及装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104346404B (zh) * 2013-08-08 2018-05-18 华为技术有限公司 一种访问数据的方法、设备及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100407172C (zh) * 2003-07-25 2008-07-30 飞思卡尔半导体公司 选择替换用高速缓冲存储器路的方法与装置
CN100465921C (zh) * 2003-07-29 2009-03-04 英特尔公司 管理具有固定住的数据的高速缓存的方法和系统
CN101187901B (zh) * 2007-12-20 2012-07-18 康佳集团股份有限公司 一种实现文件访问的高速缓存系统和方法
WO2013163956A1 (zh) * 2012-05-02 2013-11-07 华为技术有限公司 用于处理器的动态组相联高速缓存装置及其访问方法
US9880937B2 (en) 2012-05-02 2018-01-30 Huawei Technologies Co., Ltd. Dynamic set associative cache apparatus for processor and access method thereof
CN104731519A (zh) * 2013-12-20 2015-06-24 晨星半导体股份有限公司 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法
CN104731519B (zh) * 2013-12-20 2018-03-09 晨星半导体股份有限公司 快取存储器管理装置及应用该快取存储器管理装置的动态影像系统及方法
CN112799977A (zh) * 2021-02-26 2021-05-14 中国人民解放军国防科技大学 计算机的缓存分区和缓存访问实时性保护方法及装置
CN112799977B (zh) * 2021-02-26 2022-07-19 中国人民解放军国防科技大学 计算机的缓存分区和缓存访问实时性保护方法及装置

Also Published As

Publication number Publication date
CN1165000C (zh) 2004-09-01

Similar Documents

Publication Publication Date Title
US11531617B2 (en) Allocating and accessing memory pages with near and far memory blocks from heterogenous memories
US10248576B2 (en) DRAM/NVM hierarchical heterogeneous memory access method and system with software-hardware cooperative management
CN113424160B (zh) 一种处理方法、装置及相关设备
US8140764B2 (en) System for reconfiguring cache memory having an access bit associated with a sector of a lower-level cache memory and a granularity bit associated with a sector of a higher-level cache memory
EP0470734B1 (en) Cache memory management system
US6662272B2 (en) Dynamic cache partitioning
US5802572A (en) Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache
Yadgar et al. Karma: Know-It-All Replacement for a Multilevel Cache.
US7073030B2 (en) Method and apparatus providing non level one information caching using prefetch to increase a hit ratio
US6782453B2 (en) Storing data in memory
US7216201B2 (en) Parallel cachelets
JP2008502069A (ja) メモリ・キャッシュ制御装置及びそのためのコヒーレンシ動作を実行する方法
CN110297787B (zh) I/o设备访问内存的方法、装置及设备
US20160239432A1 (en) Application-layer managed memory cache
WO2013155750A1 (zh) 基于页面染色技术的内存数据库访问优化方法
JPH07104816B2 (ja) コンピュータシステムを動作する方法及びコンピュータシステムにおけるメモリ管理装置
US9535843B2 (en) Managed memory cache with application-layer prefetching
Rothman et al. The pool of subsectors cache design
CN1165000C (zh) 动态索引的微处理器高速缓存方法
US5420994A (en) Method for reading a multiple byte data element in a memory system with at least one cache and a main memory
US6311253B1 (en) Methods for caching cache tags
Subisha et al. Prefetching in hybrid main memory systems
Rockicki Indexing memory banks to maximize page mode hit percentage and minimize memory latency
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
CN100462941C (zh) 一种实现可配置risc cpu中的存储器空间的方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
EE01 Entry into force of recordation of patent licensing contract

Assignee: Dongguan Roco Auto Air-Conditioner Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract fulfillment period: 2006.1.1 to 2011.1.1

Contract record no.: 2009440000045

Denomination of invention: Microprocessor high speed buffer storage method of dynamic index

Granted publication date: 20040901

License type: Exclusive license

Record date: 20090109

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2006.1.1 TO 2011.1.1; CHANGE OF CONTRACT

Name of requester: DONGGUAN CITY NUOGAO CAR AIR CONDITIONER EQUIPMENT

Effective date: 20090109

EE01 Entry into force of recordation of patent licensing contract

Assignee: Beijing Loongson Zhongke Technology Service Center Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract fulfillment period: 2009.12.16 to 2028.12.31

Contract record no.: 2010990000062

Denomination of invention: Microprocessor high speed buffer storage method of dynamic index

Granted publication date: 20040901

License type: exclusive license

Record date: 20100128

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.12.16 TO 2028.12.31; CHANGE OF CONTRACT

Name of requester: BEIJING LOONGSON TECHNOLOGY SERVICE CENTER CO., LT

Effective date: 20100128

EC01 Cancellation of recordation of patent licensing contract

Assignee: Longxin Zhongke Technology Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2010990000062

Date of cancellation: 20141231

EM01 Change of recordation of patent licensing contract

Change date: 20141231

Contract record no.: 2010990000062

Assignee after: Longxin Zhongke Technology Co., Ltd.

Assignee before: Beijing Loongson Zhongke Technology Service Center Co., Ltd.

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20030702

Assignee: Longxin Zhongke Technology Co., Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2015990000066

Denomination of invention: Microprocessor high speed buffer storage method of dynamic index

Granted publication date: 20040901

License type: Common License

Record date: 20150211

TR01 Transfer of patent right

Effective date of registration: 20200819

Address after: 100095, Beijing, Zhongguancun Haidian District environmental science and technology demonstration park, Liuzhou Industrial Park, No. 2 building

Patentee after: LOONGSON TECHNOLOGY Corp.,Ltd.

Address before: 100080 Haidian District, Zhongguancun Academy of Sciences, South Road, No. 6, No.

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

TR01 Transfer of patent right
EC01 Cancellation of recordation of patent licensing contract

Assignee: LOONGSON TECHNOLOGY Corp.,Ltd.

Assignor: Institute of Computing Technology, Chinese Academy of Sciences

Contract record no.: 2015990000066

Date of cancellation: 20200928

EC01 Cancellation of recordation of patent licensing contract
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.

CP01 Change in the name or title of a patent holder
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20040901