CN100377116C - 处理器高速数据缓存重配置方法 - Google Patents
处理器高速数据缓存重配置方法 Download PDFInfo
- Publication number
- CN100377116C CN100377116C CNB2006100501852A CN200610050185A CN100377116C CN 100377116 C CN100377116 C CN 100377116C CN B2006100501852 A CNB2006100501852 A CN B2006100501852A CN 200610050185 A CN200610050185 A CN 200610050185A CN 100377116 C CN100377116 C CN 100377116C
- Authority
- CN
- China
- Prior art keywords
- buffer memory
- memory
- data
- processor
- speed data
- 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 - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种处理器高速数据缓存重配置方法。本发明实现一种重配置处理器高速数据缓存,使其映射到固定的内存空间,其主要功能是在操作系统级为开发者提供根据需要重新配置处理器高速数据缓存为缓存型随机存储器的系统调用接口,从而使原本对程序员透明的处理器缓存变成可见的。可以用于变量常用的暂用存储器,它能提供比寄存器文件更大的区域。
Description
技术领域
本发明涉及操作系统的优化技术领域,涉及到操作系统存储体系结构领域,特别是涉及到一种处理器高速数据缓存重配置方法。
背景技术
所谓处理器缓存,通常指的是二级高速缓存,或外部高速缓存。即高速缓冲存储器,是位于CPU和主存储器DRAM(Dynamic RAM)之间的规模较小的但速度很高的存储器,通常由SRAM(静态随机存储器)组成。用来存放那些被CPU频繁使用的数据,以便使CPU不必依赖于速度较慢的DRAM(动态随机存储器)。
处理器缓存先于内存与CPU交换数据,因此速度很快。L1 Cache(一级缓存)是CPU第一层高速缓存。内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。一般L1缓存的容量通常在32-256KB。L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。L2高速缓存容量也会影响CPU的性能,原则是越大越好,现在普通台式机CPU的L2缓存最大为512KB,而笔记本、服务器和工作站上用CPU的L2高速缓存最高可达1MB-3MB。
处理器缓存的基本思想就是依赖于“引用的局部性”,这可以分为时间局部性和空间局部性。空间局部性是指CPU在某一时刻需要某个数据,那么很可能下一步就需要其附近的数据;时间局部性是指当某个数据被访问过一次之后,过不了多少时间就会被再一次访问。对于应用程序而言,不管是指令流还是数据流都会出现引用的局部性现象。因此可以用少量的SRAM作为CPU与DRAM存储系统之间的缓冲区,即Cache系统。片内Cache也称为一级Cache。由于高档处理器的时钟频率很高,一旦出现一级Cache未命中的情况,性能将明显恶化。在这种情况下采用的办法是在处理器芯片之外再加Cache,称为二级Cache。二级Cache实际上是CPU和主存之间的真正缓冲。
如果在时间局部性中使用合理的替换策略就可以大大提高缓存的使用效果。而替换策略将决定目前缓存中的某个块要被某个新块所替换。当然可以随机选择一个新块来取代缓存现在不使用的块,也可以应用什么FIFO(First In FirstOut先进先出)、LIFO(Last In First Out后进先出)之类的方式。但是,上面所有的方式都没有考虑到块重复使用的问题。
目前最好的策略是去除缓存中不被使用时间最长的块,也可以表述成去除使用次数最少(LRU,least Recently Used最近最少被使用者)的块。如果一个块有一段时间没有使用了,那看上去这个块在这个工作区的操作中再被使用的机会也就最小,就应该移出去。
这种LRU的算法很是理想化,如果真的在缓存控制上加入检查每个块的使用频率功能,那么不但缓存设计将更为复杂,而且这样的检查也将占据相对的时间,并在移出块时造成操作的延迟。目前大多数缓存的设计都是使用的伪-LRU算法,将不使用的块做上标记,当新块要进入缓存时,就取代标记最多的那个块。
不过有时“块”被移出并不是因为不再用到,而是缓存容量不够了,必须为待进的块腾出地方,以满足当前工作区的需要。这种情况就是Cache Miss中的最后一种,“Capacity Miss(容量缺失)”,就是不得不因为容量的问题将有用的块移出。
XSBase27X开发平台是基于Intel高性能的PXA27X处理器并装有嵌入式Linux。该平台通过各种接口实现了强大的扩展性并能测试PXA27X外围设备绝大多数的性能。
该平台通过IntelPXA27X处理器实现了高性能和最小功耗,因此它非常适合做移动设备。该平台装有的Linux内核是最新的2.6.11版本,该操作系统公认是最稳定可靠的系统,用户可以在稳定的环境中运行程序,并可以从Linux网络的稳定性中获得受益。应用程序可以在没有外部存储设备如硬盘的环境中
运行。采用的MTD方式闪存文件系统(JFFS2)提供了最大的容量的利用率和可靠运行。在开发过程中,PXA 27X处理器的各种扩展接口提供了极大的扩展性和便利性。
XScale核是采用ARM V5TE架构的处理器,是Intel公司的StrongARM的升级换代产品。它具有高性能、低功耗等特点,不过,它以核的形式作为ASSP(Application specific Standard Productor)的构件(building block)。PXA250和PXA210应用处理器就是作为手持式设备设计的ASSP。而采用XScale核的第一个应用处理器是Intel的80200,作为I/O应用。
发明内容
本发明的目的在于提供一种处理器高速数据缓存重配置方法。
本发明解决其技术问题采用的技术方案是,该方法的步骤如下:
1)以处理器高速数据缓存行为分配单元:
处理器高速数据缓存以行为基本单元与内存进行数据交换,对内存的数据进行缓存,所以高速数据缓存重配置构成的缓存型随机存储器也以处理器高速数据缓存行作为空间分配的基本单元;
2)提供重配置系统调用接口:
为嵌入式Linux操作系统添加处理器高速数据缓存重配置的系统调用,作为程序员重配置高速数据缓存的接口;
3)确定重配置高速数据缓存大小,分配同等大小内存空间:
由于处理器高速缓存和内存的存取特性,在确定重配置高速数据缓存大小和分配将要配置为缓存型随机存储器的内存空间时,有两条原则:
I.确定重配置高速数据缓存大小,由于处理器高速数据缓存以行为基本单元与内存进行数据交换,对内存的数据进行缓存,所以重配置的高速数据缓存大小必须以高速数据缓存的行为基本单元;
II.分配内存空间,由于总线带宽的限制,内存数据以总线带宽为单元进行对齐时效率将会提高,所以,将要配置为缓存型随机存储器的内存空间应当以总线带宽和高速数据缓存的行宽度两者之间的较大值进行对齐分配;
4)重配置处理器高速数据缓存:
重配置处理器高速数据缓存需要进行如下步骤:
I.获取将要配置为缓存型随机存储器的内存起始地址;
II.锁定处理器高速数据缓存;
III.分配处理器高速数据缓存行,根据需要配置的缓存型随机存储器空间的大小,分配相同大小的处理器高速数据缓存行,并将预先分配的内存空间映射到处理器高速数据缓存行;
IV.解除处理器高速数据缓存锁。
本发明与背景技术相比,具有的有益的效果是:
本发明是一种在基于PXA 27X的嵌入式Linux操作系统中重新配置处理器高速数据缓存为缓存型随机存储器的方法,其主要功能是在操作系统级提供开发者系统根据需要重新配置处理器高速数据缓存为缓存型随机存储器的系统调用接口,从而使原本对程序员透明的处理器缓存变成可见的。可以用于变量常用的暂用(Scratch)存储器,它能提供比寄存器文件更大的区域。
(1)使程序员可以操作处理器高速数据缓存。从而,程序员可以显式地使程序中的常用数据驻留在缓存型随机存储器之中,即在处理器高速数据缓存之中,不必在需要时才加载到处理器高速数据缓存。
(2)大幅提高程序中常用变量的访问速度。系统可以让程序中常用变量驻留在缓存型随机存储器之中,从而不会被替换出处理器高速数据缓存。因此可以有效减少这些频繁数据访问的冷启动失配,从而提高了数据访问的速度。
附图说明
图1是本发明总体流程图。
具体实施方式
如图1所示,处理器高速数据缓存重配置方法的具体实现流程如下。
第一步:以处理器高速数据缓存行为分配单元。
处理器高速数据缓存以行为基本单元与内存进行数据交换,对内存的数据进行缓存,所以高速数据缓存重配置构成的缓存型随机存储器也以处理器高速数据缓存行作为空间分配的基本单元。
XScale的D-Cache为32K字节,采用32路组相联的映像方式,即分为32组,每组有32路,每行为32字节和1位有效位。此外,每行还包含2位“脏”(dirty)位,分别来说明低16字节和高16字节是否被改写过。当访问Cache命中时,相应半行(16字节)的脏位置起。所以在在基于PXA 27X的嵌入式Linux操作系统的处理器高速数据缓存重配置方法的实现中,系统的基本分配单元大小为32字节。
第二步:提供重配置系统调用接口。
为嵌入式Linux操作系统添加处理器高速数据缓存重配置的系统调用,作为程序员重配置高速数据缓存的接口。
要添加系统调用首先要选择一个和现有系统调用不冲突的系统调用名称,即接口名称。接着选择或者添加一个尚未使用的系统调用号,然后在系统调用表中添加系统调用表项。第三步:确定重配置高速数据缓存大小,分配同等大小内存空间。
由于处理器高速缓存和内存的存取特性,在确定重配置高速数据缓存大小和分配将要配置为缓存型随机存储器的内存空间时,有两条原则:
I.确定重配置高速数据缓存大小。由于处理器高速数据缓存以行为基本单元与内存进行数据交换,对内存的数据进行缓存,所以重配置的高速数据缓存大小必须以高速数据缓存的行为基本单元。在基于PXA 27X的嵌入式Linux操作系统的处理器高速数据缓存重配置方法的实现中,系统分配的将要配置为缓存型随机存储器的内存空间大小必须为32字节的整数倍。
II.分配内存空间,由于总线带宽的限制,内存数据以总线带宽为单元进行对齐时效率将会提高,所以,将要配置为缓存型随机存储器的内存空间应当以总线带宽和高速数据缓存的行宽度两者之间的较大值进行对齐分配。
第四步:重配置处理器高速数据缓存。
XScale微结构采用了CP15(MMU控制)、CP14(性能监视)和CPO(DSP处理)等协处理。与一般的ARM架构相比,增加了CP14和CP协处理器,而且CP15还增加了新的功能。
Xscale的数据Cache重构通过CP15协处理器(用于MMU控制)的寄存器9的数据Cache的锁操作来实现。
重配置处理器高速数据缓存需要进行如下步骤:
I.获取将要配置为缓存型随机存储器的内存起始地址和空间大小。
由于对协处理器CP15的操作属于特权操作,只允许在操作系统内核态执行,所以系统通过寄存器将要配置为缓存型随机存储器的内存空间的起始地址从用户态空间传送进入内核态空间。
II.锁定处理器高速数据缓存。
在处理器高速数据缓存行分配过程中应该禁止其他操作使用高速数据缓存,所以在缓存行分配开始前,系统锁定处理器高速数据缓存。在锁定处理器高速数据缓存前,需要排空数据缓存中悬挂的存取。
III.分配处理器高速数据缓存行。
根据需要配置的缓存型随机存储器空间的大小,分配相同大小的处理器高速数据缓存行。并将预先分配的内存空间映射到处理器高速数据缓存行,因此,程序员可以在程序中像使用普通内存一样使用缓存型随机存储器空间。
IV.解除处理器高速数据缓存锁。
在处理器高速数据缓存行分配完成后,处理器高速数据缓存锁定解除。在解锁前,需要排空数据缓存中悬挂的存取。
Claims (1)
1.一种处理器高速数据缓存重配置方法,其特征在于该方法的步骤如下:
1)以处理器高速数据缓存行为分配单元:
处理器高速数据缓存以行为基本单元与内存进行数据交换,对内存的数据进行缓存,所以高速数据缓存重配置构成的缓存型随机存储器也以处理器高速数据缓存行作为空间分配的基本单元;
2)提供重配置系统调用接口:
为嵌入式Linux操作系统添加处理器高速数据缓存重配置的系统调用,作为程序员重配置高速数据缓存的接口;
3)确定重配置高速数据缓存大小,分配同等大小内存空间:
由于处理器高速缓存和内存的存取特性,在确定重配置高速数据缓存大小和分配将要配置为缓存型随机存储器的内存空间时,有两条原则:
I.确定重配置高速数据缓存大小,由于处理器高速数据缓存以行为基本单元与内存进行数据交换,对内存的数据进行缓存,所以重配置的高速数据缓存大小必须以高速数据缓存的行为基本单元;
II.分配内存空间,由于总线带宽的限制,内存数据以总线带宽为单元进行对齐时效率将会提高,所以,将要配置为缓存型随机存储器的内存空间应当以总线带宽和高速数据缓存的行宽度两者之间的较大值进行对齐分配;
4)重配置处理器高速数据缓存:
重配置处理器高速数据缓存需要进行如下步骤:
I.获取将要配置为缓存型随机存储器的内存起始地址;
II.锁定处理器高速数据缓存;
III.分配处理器高速数据缓存行,根据需要配置的缓存型随机存储器空间的大小,分配相同大小的处理器高速数据缓存行;
IV.解除处理器高速数据缓存锁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100501852A CN100377116C (zh) | 2006-04-04 | 2006-04-04 | 处理器高速数据缓存重配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100501852A CN100377116C (zh) | 2006-04-04 | 2006-04-04 | 处理器高速数据缓存重配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1851675A CN1851675A (zh) | 2006-10-25 |
CN100377116C true CN100377116C (zh) | 2008-03-26 |
Family
ID=37133154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100501852A Expired - Fee Related CN100377116C (zh) | 2006-04-04 | 2006-04-04 | 处理器高速数据缓存重配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100377116C (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162440B (zh) * | 2007-11-20 | 2010-06-30 | 杭州中天微系统有限公司 | 嵌入式处理器高速在线下载直通通道的设计方法 |
CN101196928A (zh) * | 2007-12-29 | 2008-06-11 | 杭州华三通信技术有限公司 | 一种内容搜索方法、系统以及引擎分发单元 |
CN101989236B (zh) * | 2010-11-04 | 2012-05-09 | 浙江大学 | 一种指令缓存锁实现方法 |
CN102063303B (zh) * | 2010-12-22 | 2013-07-31 | 浙大网新科技股份有限公司 | 使Linux内核支持WinCE/WM的kdata页面的方法 |
US9356602B1 (en) * | 2015-05-14 | 2016-05-31 | Xilinx, Inc. | Management of memory resources in a programmable integrated circuit |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0908825A1 (en) * | 1997-10-10 | 1999-04-14 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory |
US6385697B1 (en) * | 1998-12-15 | 2002-05-07 | Nec Corporation | System and method for cache process |
CN1521632A (zh) * | 2003-02-13 | 2004-08-18 | 上海汉芯半导体科技有限公司 | 具有可重配置高速缓存的数字信号处理器 |
CN1746865A (zh) * | 2005-10-13 | 2006-03-15 | 上海交通大学 | 数字信号处理器可重构指令高速缓存部分的实现方法 |
-
2006
- 2006-04-04 CN CNB2006100501852A patent/CN100377116C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0908825A1 (en) * | 1997-10-10 | 1999-04-14 | BULL HN INFORMATION SYSTEMS ITALIA S.p.A. | A data-processing system with cc-NUMA (cache coherent, non-uniform memory access) architecture and remote access cache incorporated in local memory |
US6385697B1 (en) * | 1998-12-15 | 2002-05-07 | Nec Corporation | System and method for cache process |
CN1521632A (zh) * | 2003-02-13 | 2004-08-18 | 上海汉芯半导体科技有限公司 | 具有可重配置高速缓存的数字信号处理器 |
CN1746865A (zh) * | 2005-10-13 | 2006-03-15 | 上海交通大学 | 数字信号处理器可重构指令高速缓存部分的实现方法 |
Non-Patent Citations (1)
Title |
---|
用SDRAM在高速数据采集和存储系统中实现海量缓存. 苏海冰,吴钦章.光学 精密工程,第10卷第5期. 2002 * |
Also Published As
Publication number | Publication date |
---|---|
CN1851675A (zh) | 2006-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9384134B2 (en) | Persistent memory for processor main memory | |
EP2455865B1 (en) | Memory management device | |
KR101569160B1 (ko) | 캐시에서의 웨이 할당 및 웨이 로킹 방법 | |
US8230179B2 (en) | Administering non-cacheable memory load instructions | |
US8423715B2 (en) | Memory management among levels of cache in a memory hierarchy | |
US6625695B2 (en) | Cache line replacement policy enhancement to avoid memory page thrashing | |
US7711902B2 (en) | Area effective cache with pseudo associative memory | |
CN102483719B (zh) | 基于块的非透明高速缓存 | |
US6430656B1 (en) | Cache and management method using combined software and hardware congruence class selectors | |
KR101385430B1 (ko) | 영구 메모리들을 위한 캐시 일관성 프로토콜 | |
US20090024820A1 (en) | Memory Allocation For Crash Dump | |
US20090307462A1 (en) | Mark page-out pages as critical for cooperative memory over-commitment | |
JP2017033584A (ja) | マルチレベルのキャッシュ階層におけるキャストアウトを低減するための装置および方法 | |
US6421761B1 (en) | Partitioned cache and management method for selectively caching data by type | |
JP5226010B2 (ja) | 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路 | |
US20080040549A1 (en) | Direct Deposit Using Locking Cache | |
US7809889B2 (en) | High performance multilevel cache hierarchy | |
CN100377116C (zh) | 处理器高速数据缓存重配置方法 | |
US20060080506A1 (en) | Data replication in multiprocessor NUCA systems to reduce horizontal cache thrashing | |
CN115357196A (zh) | 动态可扩展的组相联高速缓存方法、装置、设备及介质 | |
CN113138851B (zh) | 一种数据管理方法、相关装置及系统 | |
EP3885920A1 (en) | Apparatus and method for efficient management of multi-level memory | |
US8539159B2 (en) | Dirty cache line write back policy based on stack size trend information | |
US20040024970A1 (en) | Methods and apparatuses for managing memory | |
Wu et al. | ZeroCost-LLC: Shared LLCs at No Cost to WCL |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080326 Termination date: 20120404 |