CN1924833A - 具有多阶快取架构的处理模块 - Google Patents
具有多阶快取架构的处理模块 Download PDFInfo
- Publication number
- CN1924833A CN1924833A CNA2006101089770A CN200610108977A CN1924833A CN 1924833 A CN1924833 A CN 1924833A CN A2006101089770 A CNA2006101089770 A CN A2006101089770A CN 200610108977 A CN200610108977 A CN 200610108977A CN 1924833 A CN1924833 A CN 1924833A
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- level cache
- processing module
- order
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 64
- 238000012546 transfer Methods 0.000 claims description 17
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000007717 exclusion Effects 0.000 claims 1
- 230000009286 beneficial effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 15
- 238000011010 flushing procedure Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0857—Overlapped cache accessing, e.g. pipeline by multiple requestors
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种具有多阶快取架构的处理模块,该处理模块具有:一处理器;一个一阶快取,耦接至该处理器,用来为该处理器快取数据,其中该一阶快取具有至少一个一阶快取范围;一个二阶快取,耦接至该一阶快取,用来为该处理器快取数据,其中该二阶快取具有至少一个二阶快取范围,以及该一阶快取范围与该二阶快取范围彼此互斥;以及一存储器接口,耦接至该一阶快取与该二阶快取,用来于该一阶快取与一存储器之间传输数据以及用来于该二阶快取与该存储器之间传输资料。本发明的有益效果在于,提供能一种能够保证快取效能的多阶快取架构的处理模块。
Description
技术领域
本发明涉及系统单芯片(system-on-chip,SoC)的应用,具体的讲是一种具有多阶快取架构(multilevel cache architecture)的处理模块。
背景技术
为了充分地利用一芯片中存储器(on-chip memory)并且将一高速处理器与一低速芯片外存储器(off-chip memory)之间的效能差异最小化,许多内嵌式系统的发展方向均朝向利用快取资源(cache resource)的方向来开发。在这一类内嵌式系统中,可以设置有几阶的快取,例如:一个一阶快取(level-one cache,L1cache)与一个二阶快取(level-two cache,L2 cache),甚至可以设置有一个三阶快取(level-three cache,L3 cache)。该一阶快取通常最靠近处理器以便于存取,并且通常具有可与该处理器中的一处理核心电路互相匹敌的速度。由于这样的高速芯片中存储器的成本甚高,该一阶快取的容量的大小非常受限,通常界于几千字节(kilobyte,KB)至几万字节。
以一个具有两阶快取架构的内嵌式系统为例,当该内嵌式系统中发生一个一阶快取的快取失误(cache miss)时,例如:当来自该内嵌式系统的一处理器的一要求(request)对应于一个一阶快取范围(L1 cacheable range)且所要求的数据(requested data)不在该一阶快取中,则该一阶快取会向该内嵌式系统中的一个二阶快取(level-two cache,L2 cache)索取该所要求的数据。若该所要求的数据位于该二阶快取中,则该所要求的数据就被直接传送至该一阶快取。然而,若该所要求的数据不在该二阶快取中,则该二阶快取必须向一外部存储器索取该所要求的数据。基于此传统架构,该二阶快取中的数据必须为该一阶快取中的数据的超集(superset)。另外,当上述的一阶快取失误发生时,取得该所要求的数据的潜伏时间(latency time)就因为该二阶快取所需找数据的时间而被延长了。另外,该二阶快取的容量的典型大小大约是几万字节至几十万字节,且该二阶快取必须保持其数据与该一阶快取中的数据的一致性(coherence),因此该二阶快取的大容量以及一致性问题使得此传统实施方式不论在设计或查核方面均相当昂贵且复杂。如此,更不用说于一内嵌式系统中实施一个三阶快取时会多幺昂贵与复杂。
在一内嵌式系统中,一硬件引擎(hardware engine),例如:一视频或音频引擎,可以有一专用存储器(private memory)以达到较高效能。然而,该内嵌式系统中的专用存储器愈多,则成本与测试时间就对应地增加。为了避免这些问题,可在该内嵌式系统中将该专用存储器代换为用来为硬件引擎快取数据的一个二阶快取的资源。也就是说,该二阶快取被用来当作该硬件引擎的工作缓冲器。然而,使该二阶快取可被直接存储器存取电路(DMA circuitry)或一些其它硬件总线主装置(hardware bus master)存取时是相当复杂的。由于有超过一个主装置存取该二阶快取,使得快取存取更加随机,所以会因为快取失误次数的增加或一主装置的数据被另一主装置的数据代换,而造成该二阶快取的效能降低。
发明内容
本发明的目的在于提供具有多阶快取架构的处理模块。
本发明提供了:一种具有多阶快取架构的处理模块,处理模块包含有:一处理器;一个一阶快取(level-one cache,L1 cache),耦接至处理器,用来为处理器快取数据,其中一阶快取具有至少一个一阶快取范围(L1 cacheable range);一个二阶快取(level-two cache,L2 cache),耦接至一阶快取,用来为处理器快取数据,其中二阶快取具有至少一个二阶快取范围(L2 cacheable range),以及一阶快取范围与二阶快取范围彼此互斥(mutually exclusive);以及一存储器接口,耦接至一阶快取与二阶快取,用来于一阶快取与一存储器之间传输数据以及用来于二阶快取与存储器之间传输数据。
本发明还提供了:一种具有多阶快取架构的处理模块,其特征在于,处理模块包含有:一处理器;一个一阶快取,耦接至处理器,用来为处理器快取数据,其中一阶快取具有至少一个一阶快取范围;以及一个二阶快取,耦接至一阶快取,用来为处理器快取数据,其中二阶快取具有至少一个二阶快取范围,以及一阶快取范围与二阶快取范围彼此互斥。
本发明还提供了:一种具有多阶快取架构的处理模块,其特征在于,处理模块包含有:一处理器;一个一阶快取,耦接至处理器,用来为处理器快取数据,其中一阶快取具有至少一个一阶快取范围;一个二阶快取,耦接至一阶快取,用来为处理器快取数据,其中二阶快取具有至少一个二阶快取范围;以及一存储器接口,耦接至一阶快取与二阶快取,用来在一阶快取与一存储器之间传输数据以及用来在二阶快取与存储器之间传输数据。
本发明的有益效果在于,提供能一种能够保证快取效能的多阶快取架构的处理模块。
附图说明
图1为依据本发明一实施例所提供的具有多阶快取架构的处理模块的示意图。
图2为图1所示的二阶快取中的一切换电路的示意图。
图3为依据本发明一实施例、可应用于图1所示的处理模块的处理器记忆空间与对应的可快取设定的示意图。
图4为本发明一实施例中、图1所示的处理模块所执行的程序代码的软件区段(software section)的可快取性(cacheability)的示意图。
图5为依据本发明一实施例、可应用于图1所示的处理模块的二阶快取的示意图。
图6为依据本发明一实施例、对一写入缓冲器进行冲出(flush)处理的时序图。
图7为图1所示的一阶快取中的一存储器保护单元(memory protection unit,MPU)的示意图。
图8为图1所示的一阶快取中的多个控制缓存器(control register)的示意图。
图9为图7所示的存储器保护单元中的决定模块的示意图。
主要组件符号说明
处理模块100 处理器104 一阶快取110
二阶快取120,220 外部存储器接口130 硬件引擎154-1,154-2
直接连接113 芯片外存储器40 切换电路122
反多任务器122D 多任务器122M 数据D0,D1,D2
控制电路222,226 写入缓冲器224 存储器保护单元112
比较单元112C 逻辑闸112G 数据WB0,WB1
要求R0,R1,R2,R20,R21,R22,R_L1,R_nL1
区段ZI,RW,RO,CODE
命令Read(A),Write(A)
时序图中的特定时期REQ,INIT_LATENCY
控制缓存器114-1,114-2,114-3,…,114-N
控制缓存器中的字段BA,C,S,EN
具体实施方式
请参考图1,图1为依据本发明一实施例所提供的具有多阶快取架构的处理模块100的示意图,其中处理模块100可应用于一电子装置。处理模块100包含有:一处理器104;一个一阶快取(level-one cache,L1 cache)110;一个二阶快取(level-two cache,L2 cache)120;一存储器接口,在本实施例即外部存储器接口(external memory interface,EMI)130;以及两硬件引擎(hardware engine)154-1与154-2。处理器104可通过执行一程序代码来控制电子装置的运作,而一阶快取110与二阶快取120为处理器104快取数据。一阶快取110具有至少一个一阶快取范围(L1 cacheable range)。如本实施例中,特别具有多个一阶快取范围。相仿地,二阶快取120具有至少一个二阶快取范围(L2 cacheablerange)。依据本发明,一阶快取范围与二阶快取范围彼此互斥,也就是凡不落入一阶快取的地址均是二阶快取的范围。
上述的存储器接口用来在一阶快取110与一存储器之间传输数据以及用来在二阶快取120与存储器之间传输数据。本实施例中,处理模块100为一芯片(chip),而存储器为位于处理模块100之外的芯片外存储器(off-chip memory)40。存储器接口(于本实施例即外部存储器接口130)用来在一阶快取110与芯片外存储器40之间传输数据以及用来在二阶快取120与芯片外存储器40之间传输数据。在本发明的另一实施例中,处理模块也为一芯片,其中存储器可置于处理模块当中。另外,依据图1所示的实施例,硬件引擎154-1与154-2用来通过存取(access)二阶快取中的数据来进行预定处理(predetermined processing)。例如:硬件引擎154-1系为一MPEG编码器,用来进行MPEG编码,而硬件引擎154-2为一MPEG译码器,用来进行MPEG译码。
依据本发明,一阶快取110与二阶快取120之间所用的总线协议(busprotocol)可为一单传送总线协议(single transfer bus protocol);而一阶快取110与外部存储器接口130之间所用的总线协议,或二阶快取120与外部存储器接口130之间所用的总线协议的任一者可为一丛发传送总线协议(burst transfer busprotocol)。此外,随着本发明实际上不同的选择,硬件引擎154-1与二阶快取120之间所用的总线协议,或硬件引擎154-2与二阶快取120之间所用的总线协议的任意一个可为单传送总线协议或丛发传送总线协议。
在本实施例中,处理器104可发出用来撷取(retrieve)数据的存储器要求(request)至一阶快取110。当处理器104传送一要求至一阶快取110以撷取落于这些一阶快取范围中之一在内的地址上的数据时,若所要求的数据(requesteddata)在一阶快取110中,也就是一阶快取110的一快取命中(cache hit)发生时,则一阶快取110传送所要求的数据至处理器104。相反地,若所要求的数据不在一阶快取110中,也就是一阶快取110的一快取失误(cache miss)发生时,则一阶快取110向芯片外存储器40透过上述的丛发传送总线协议来转送(forward)要求至外部存储器接口130,以索取(ask for)所要求的数据,而非向二阶快取120索取所要的数据。从芯片外存储器40撷取所要求的数据之后,外部存储器接口130传送所要求的数据至一阶快取110。一阶快取110接着传送所要求的数据至处理器104,并且将所要求的数据储存于一阶快取110中的一高速缓存(未显示)。
另一方面,当处理器104传送一要求至一阶快取110以撷取落于一阶快取范围之外的地址上的数据时,一阶快取110透过上述的单传送总线协议来传送要求至二阶快取120,以向二阶快取120索取所要求的数据。若所要求的数据在二阶快取120中,也就是二阶快取120的一快取命中发生时,则二阶快取120传送所要求的数据至一阶快取110,而一阶快取110从二阶快取120转送(forward)所要求的数据至处理器104,但不将所要求的数据储存于一阶快取110中。相反地,若所要求的数据不在二阶快取120中,也就是二阶快取120的一快取失误发生时,则二阶快取120透过上述的丛发传送总线协议来转送要求至外部存储器接口130,以要求外部存储器接口130自芯片外存储器40传送所要求的数据。当所要求的数据自芯片外存储器40被外部存储器接口130传送至二阶快取120时,二阶快取120转送所要求的数据至一阶快取110,并且将所要求的数据储存于二阶快取120中的一高速缓存(未显示)。当二阶快取120转送所要求的数据至一阶快取110时,一阶快取110自二阶快取120转送所要求的数据至处理器104,但不将所要求的数据储存于一阶快取110中。
在本实施例中,硬件引擎154-1与154-2可发出用来撷取数据的存储器要求至二阶快取120。当硬件引擎154-1与154-2中之一,例如:硬件引擎154-1,传送一要求至二阶快取120,以撷取落于二阶快取范围中的地址上的数据时,若所要求的数据在二阶快取120中,也就是二阶快取120的一快取命中发生时,则二阶快取120会直接地传送所要求的数据至硬件引擎154-1。相反地,若所要求的数据不在二阶快取120中,也就是二阶快取120的一快取失误发生时,则二阶快取120透过上述的丛发传送总线协议来转送要求至外部存储器接口130,以向芯片外存储器40索取所要求的数据。在自芯片外存储器40撷取所要求的数据之后,外部存储器接口130将所要求的数据传送至二阶快取120。然后,二阶快取120传送所要求的数据至硬件引擎154-1,并且将所要求的数据储存于二阶快取120中的高速缓存。
图2为图1所示的二阶快取120中的一切换电路122的示意图。如图2所示,切换电路122包含有一多任务器(multiplexer)122M与一反多任务器(demultiplexer)122D。通过使用多任务器122M,切换电路122可于将一要求R0从处理器104(透过一阶快取110)转送至外部存储器接口130、将另一要求R1从硬件引擎154-1转送至外部存储器接口130、以及将另一要求R2从硬件引擎154-2转送至外部存储器接口130之间进行切换。若要求R0、R1、与R2中的两个以上同时被切换电路122所接收,则切换电路122将仲裁(arbitrate)哪个要求(要求R0、R1、或R2)应优先处理。此外,通过使用反多任务器122D,切换电路122可于将对应要求R0的数据D0(透过一阶快取110)转送至处理器104、将对应要求R1的数据D1转送至发出要求R1的相对应硬件引擎154-1、以及将对应要求R2的数据D2转送至发出要求R2的相对应硬件引擎154-2之间进行切换。
图3为依据本发明一实施例、可应用于图1所示的处理模块100的处理器记忆空间(processor memory space)与对应的可快取设定(cacheable setting)的示意图。如图3所示,处理器记忆空间具有至少三部分,分别标示为芯片外存储器、芯片中存储器、与存储器映像的输入/输出。依据本实施例,芯片外存储器部分对一阶快取110与二阶快取120而言是可快取的。若处理器104发出一个对应于一阶快取范围中的要求,则一阶快取110中的一控制器(未显示)通过使用上述的丛发传送总线协议来透过直接连接113转送要求至外部存储器接口130,而所要求的数据被存入一阶快取110中,而非二阶快取120中。相反地,若对应于一要求的一区域并未落于任一个一阶快取范围内,则要求通过使用上述的单传送总线协议而被传送至二阶快取120。当所要求的数据从外部存储器接口130被传回时,二阶快取120储存所要求的数据并将所要求的数据传送至一阶快取110,而一阶快取110则将来自二阶快取120的所要求的数据旁通(bypass)至处理器104。因此,一阶快取110中的数据与二阶快取120中的数据彼此互斥。
需要留意的是,这些硬件引擎不可以存取任何一阶快取范围。为了简单起见,一阶快取110中的控制器并非以总线窥探架构(bus snooping architecture)来实施。此外,强烈建议的是,只有处理器104所要求用来储存指令(instruction)与只读数据(read-only data)的区域被设为一阶快取范围,这是因为依据本发明,这些区域不可以供上述的硬件引擎写入。
于一典型的软件开发流程中,来源码(例如:上述的程序代码的来源码)通常被编译成多个中间对象文件(intermediate object file),而这些中间对象文件具有一些区段(section),例如:为上述指令所设置的区段CODE、是上述的只读数据所设置的区段RO、是有初始值的读写数据(initialized read-write data)所设置的区段RW(或DATA)、以及是非初始数据(non-initialized data)所设置的区段ZI,其中每一对象文件具有一个或多个区段。一连结器(linker)将所有的对象文件的区段组合起来,以产生一可执行文件以及对应的存储器影像(memoryimage)。大部分现代的连结器可以指派存储器像中每一区段的起始地址。依据本发明所提供的建议,软件开发者可以仔细地安排这些区段,使得存储器影像中的区段CODE与区段RO落于一阶快取范围内,且使得存储器影像中的区段RW与区段ZI落于二阶快取范围内。当处理器104执行程序代码时,一阶快取110可被用来快取程序代码的指令与只读数据。另外,当处理器104执行程序代码时,二阶快取120可被用来快取程序代码的有初始值的读写数据与非初始数据,而非上述的指令与只读数据。
以图4所示的安排为例,区段CODE与RO位于落于上述的一阶快取范围内的区域,而区段RW(或DATA)与ZI位于落于上述的二阶快取范围内的区域,其中这些区域均映像至芯片外存储器。此外,也有映像至芯片中存储器的区段CODE、RW(或DATA)、与RI,以供快速存取。例如:此举可符合一中断处理器(interrupt handler)的快速反应需求。
请参考图5,图5为依据本发明一实施例、可应用于图1所示的处理模块100的一个二阶快取220的示意图。图1所示的二阶快取120可被代换为二阶快取220,其中一阶快取110与外部存储器接口130之间直接连接113的至少一部分置于二阶快取220中,如图5所示。除了上述的切换电路122之外,二阶快取220另包含有一写入缓冲器224以及两控制电路222与226。写入缓冲器224用来透过外部存储器接口130缓冲处理(buffering)将被写入芯片外存储器40的数据。当控制电路222接收到一要求时,控制写入缓冲器224将所缓冲处理的数据(buffered data)自写入缓冲器224冲出(flush out),其中要求原本传送自处理器104,然后由一阶快取110透过直接连接113并且通过使用上述的丛发传送总线协议所转送。
当控制电路226接收到一要求(例如:要求R0、R1、与R2中的任意一个)时,控制写入缓冲器224将缓冲处理的数据自写入缓冲器224冲出,其中要求为读取位于将被写入所缓冲处理的数据之处所在的地址上的数据。另外,控制电路226可将来自切换电路122的要求分成写入要求和读取要求等两路径。也就是说,控制电路226控制写入要求(例如:要求R20、R21、与R22)透过写入缓冲器224被传送至外部存储器接口130,并且控制读取要求(例如:要求R0、R1、与R2)被旁通至外部存储器接口130。
依据图5所示的架构,当处理器104执行上述的程序代码时,一阶快取110不仅可被用来快取程序代码的指令与只读数据,也可用来快取程序代码有初始值的读写数据与非初始数据。
使用一阶快取110快取上述有初始值的读写数据与非初始数据表示:处理器104在有需要时,传送对应于有初始值的读写数据或非初始数据的写入要求,是可行的。一般而言,当处理器104、硬件引擎154-1、或硬件引擎154-1中的一个传送一读取要求时,必须等待所要求数据传回以继续进行运作,这表示等待所要求的数据传回的潜伏时间会影响其系统效能。因此,在大部分状况下,外部存储器接口130在典型实施方式中会优先受理读取要求,并且将写入要求搁置到没有读取要求时才受理写入要求,以达到最佳效能。如此,若处理器104首先传送落于一个一阶快取范围内的地址A的一写入要求(例如:要求R20),以将缓冲处理写入缓冲器224中的数据写至地址A,接着传送同一地址A的一读取要求,且若对应于读取要求的所要求的数据尚未在一阶快取110中,则当控制电路222侦测到一阶快取110透过直接连接113转送至外部存储器接口130的读取要求时,控制写入缓冲器224将缓冲处理的数据从写入缓冲器224冲出。这是为了避免,万一写入缓冲器224缓冲处理数据尚未被冲出以更新(或代换)地址A上的数据之前,处理器104在地址A读取到错误且尚未被更新(或代换)的数据。
于另一例中,硬件引擎154-1首先传送落于一个二阶快取范围内的地址B的一写入要求(例如:要求R21)以将缓冲处理在写入缓冲器224中数据写至地址B,接着处理器104传送同一地址B的一读取要求(例如:要求R0),其中若对应于读取要求的要求的数据尚未在二阶快取120中,则控制电路226侦测到读取要求时,控制写入缓冲器224将缓冲处理的数据从写入缓冲器224冲出。这是为了避免,万一于写入缓冲器224缓冲处理的数据尚未被冲出以更新(或代换)地址B上的数据之前,处理器104在地址B读取到错误且尚未被更新(或代换)的数据。
在本实施例的一变化例中,控制电路222直接连接113侦测到任何要求时,就控制写入缓冲器224将缓冲处理的数据从写入缓冲器224冲出。在本实施例另一变化例中,控制电路226侦测到来自切换电路122的任何读取要求时,就控制写入缓冲器224将缓冲处理数据从写入缓冲器224冲出。
图6为依据本发明一实施例、对一写入缓冲器(例如:图5所示的写入缓冲器224)进行冲出(flush)处理的时序图。如图6左侧所示,相较于“冲出模式失能”的情况,“冲出模式致能”的情况中,在时期REQ与INIT_LATENCY之间插入用来对写入缓冲器进行冲出处理的一额外时期。例如:当数据WB0与WB1均被缓冲处理于写入缓冲器224中时,首先有一命令Write(A),用来在地址A写入数据,接着有一命令Read(A),用来在地址A读取数据。通过首先冲出缓冲处理于写入缓冲器224中的数据WB0与WB1,本发明确保外部存储器接口130首先受理命令Write(A)的要求,然后才受理命令Read(A)的要求。
请参考图7、图8、与图9。依据图1所示的实施例,一阶快取110包含有一存储器保护单元(memory protection unit,MPU)112与多个控制缓存器(controlregister)114-1、114-2、114-3、…、114-N,其中存储器保护单元112包含有一决定模块112D,而决定模块112D则包含有一比较单元112C与一逻辑闸112G;本实施例中,逻辑闸112G为“及逻辑闸”(AND gate)。依据本实施例的不同实施选择,控制缓存器114-1、114-2、114-3、…、与114-N可置于存储器保护单元112之内或存储器保护单元112之外。
控制缓存器114-1、114-2、114-3、…、与114-N用来储存定义上述一阶快取范围的可快取性(cacheability)信息,于本实施例中,尤其是分别用来储存定义这些阶快取范围的可快取性信息的多个部分。另外,决定模块112D耦接至控制缓存器114-1、114-2、114-3、…、与114-N,并且用来依据可快取性信息来决定对应于来自处理器104的一要求的可快取性。例如:若来自处理器104的一要求R_L1对应于落于这些一阶快取范围中的地址,则存储器保护单元112转送要求R_L1至外部存储器接口130。相反地,若来自处理器104的一要求R_nL1对应于落于这些一阶快取范围外的地址,则存储器保护单元112转送要求R_nL1至二阶快取120。
决定模块112D依据可快取性信息的一特定部分以及来自处理器104的要求R_L1或R_nL1决定一特定区域是否可快取。如图8所示,在每一控制缓存器中,可快取性信息的格式包含有多个字段BA、C、S、与EN,其中字段BA为基地址(Base address),代表一区域的起始地址的高位,而字段C代表区域的可快取性属性(cacheability attribute),且字段S代表区域的大小(size),以及字段EN代表此控制缓存器的一致能位。依据本实施例,使用者可在字段BA中指定某些地址较高位。地址较高位的有效数量决定于区域的大小,其中区域的大小可为如1KB、2KB、4KB、…等(2n)字节。例如:若区域大小为1KB,则只需要地址较高位[31:10]来定义基地址。若区域大小为2KB,则只需要地址较高位[31:11]定义基地址。一般而言,若区域的大小为(2n)字节,则一地址中只有(32-n)个地址较高位被取用以供与控制缓存器的基地址设定进行比较。基地址与区域的大小之间的关系带来一种限制,使得上述定义的任一区域的起始地址必须对准其区域大小的边界。例如:若一区域的大小为8KB,则其基地址必须为8KB的倍数。
依据本实施例,字段BA、C、S、与EN中的内容均被传送至比较单元112C与逻辑闸112G,如图9所示。依据字段S的内容,比较单元112C决定上述的特定区域的起始地址(即图9所示的“依据处理器的要求的地址”)中需要被取出以供与字段BA的内容进行比较的较高位的数量。当特定区域的起始地址(其系对应于处理器的要求)与这些控制缓存器的任意一个的字段BA的内容吻合、且控制缓存器的致能位已被设定时,若字段C的内容所代表的值等于一,则逻辑闸112G决定此存取系为“可快取”;否则(即字段C中的内容所代表的值等于零或字段EN中的内容所代表的值等于零),逻辑闸112G决定此存取为“非可快取”。
依据本实施例的一变化例,控制电路226可简单地控制写入缓冲器224将缓冲处理数据从写入缓冲器224冲出,如前面所述,但不会将切换电路122的要求分成写入要求与读取要求等两路径。
依据本发明的另一实施例,另一个一阶快取(未显示)耦接于二阶快取120与硬件引擎154-1之间,为硬件引擎154-1快取数据。
本发明的有益效果在于,提供能一种能够保证快取效能的多阶快取架构的处理模块。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的实施过程,并非用于限定本发明保护范围。凡根据本发明权利要求所做的均等变化与修饰,都应属本发明的范围。
Claims (23)
1.一种具有多阶快取架构的处理模块,其特征在于,处理模块包含有:
一处理器;
一个一阶快取,耦接至处理器,用来为处理器快取数据,其中一阶快取具有至少一个一阶快取范围;
一个二阶快取,耦接至一阶快取,用来为处理器快取数据,其中二阶快取具有至少一个二阶快取范围,以及一阶快取范围与二阶快取范围彼此互斥;以及
一存储器接口,耦接至一阶快取与二阶快取,用来在一阶快取与一存储器之间传输数据以及用来在二阶快取与存储器之间传输数据。
2.如权利要求1所述的处理模块,其特征在于,还包含有:
至少一硬件引擎,耦接至二阶快取,用来通过存取二阶快取中的数据来进行预定处理。
3.如权利要求2所述的处理模块,其特征在于,硬件引擎为一MPEG编码器,用来进行MPEG编码。
4.如权利要求2所述的处理模块,其特征在于,硬件引擎为一MPEG译码器,用来进行MPEG译码。
5.如权利要求2所述的处理模块,其特征在于,还包含有:
另一个一阶快取,耦接于二阶快取与硬件引擎之间,用来为硬件引擎快取数据。
6.如权利要求2所述的处理模块,其特征在于,二阶快取包含有一切换电路,用来于将一第一要求从处理器转送至存储器接口以及将一第二要求从硬件引擎转送至存储器接口之间进行切换,以及用来于将对应第一要求的数据转送至处理器以及将对应第二要求的数据转送至硬件引擎之间进行切换。
7.如权利要求1所述的处理模块,其特征在于,二阶快取包含有一切换电路,用来切换多个要求的转送。
8.如权利要求1所述的处理模块,其特征在于,当处理器传送一要求至一阶快取以撷取于一阶快取范围内的地址上的数据时,若所要求的数据不在一阶快取范围中,则一阶快取向存储器索取要求的数据,而非向二阶快取索取所要求的数据。
9.如权利要求1所述的处理模块,其特征在于,当处理器传送一要求至一阶快取以撷取落于一阶快取范围之外的地址上的数据时,一阶快取向二阶快取索取要求的数据,且若要求的数据在二阶快取中,则一阶快取从二阶快取转送所要求的数据至处理器,但不将所要求的数据储存于一阶快取中。
10.如权利要求1所述的处理模块,其特征在于,当处理器传送一要求至一阶快取以撷取落于一阶快取范围之外的地址上的数据时,一阶快取向二阶快取索取所要求数据,且若所要求的数据不在二阶快取中,则二阶快取要求存储器接口从存储器传送所要求的数据,且当所要求的数据从存储器被存储器接口传送至二阶快取且二阶快取转送所要求数据至一阶快取时,一阶快取从二阶快取转送所要求的数据至处理器,但不将所要求的数据储存于一阶快取中。
11.如权利要求1所述的处理模块,其特征在于,当处理器执行一程序代码时,一阶快取被用来快取程序代码指令与只读数据,且二阶快取被用来快取程序代码的有初始值的读写数据与非初始数据而非多个指令与只读数据。
12.如权利要求1所述的处理模块,其特征在于,当处理器执行一程序代码时,一阶快取被用来快取程序代码的指令、只读数据、有初始值的读写数据、与非初始数据,以及二阶快取包含有:
一写入缓冲器,用来通过存储器接口缓冲处理将被写入存储器的数据;以及
一控制电路,耦接至写入缓冲器,控制电路在接收到一要求时,控制写入缓冲器将缓冲处理的数据从写入缓冲器冲出。
13.如权利要求1所述的处理模块,其特征在于,当处理器执行一程序代码时,一阶快取被用来快取程序代码的多个指令、只读数据、有初始值的读写数据、与非初始数据,以及二阶快取包含有:
一写入缓冲器,用来透过存储器接口缓冲处理将被写入存储器的数据;以及
一控制电路,耦接至写入缓冲器,控制电路于接收到一要求时,控制写入缓冲器将缓冲处理的数据从写入缓冲器冲出,其中要求为读取位于将被写入缓冲处理的数据之处所在的地址上的数据。
14.如权利要求1所述的处理模块,其特征在于,一阶快取包含有:
至少一控制缓存器,用来储存定义一阶快取范围的可快取性信息;以及
一决定模块,耦接至控制缓存器,用来依据可快取性信息来决定对应于来自处理器的一要求的可快取性。
15.如权利要求14所述的处理模块,其特征在于,一阶快取具有多个一阶快取范围,一阶快取包含有多个控制缓存器,分别用来储存定义多个一阶快取范围的可快取性信息的多个部分,以及决定模块依据可快取性信息的一特定部分与要求来决定一特定区域是否可快取。
16.如权利要求1所述的处理模块,其特征在于,处理模块为一芯片,以及存储器为位于处理模块之外的芯片外存储器。
17.如权利要求1所述的处理模块,其特征在于,处理模块为一芯片,以及存储器置于处理模块当中。
18.一种具有多阶快取架构的处理模块,其特征在于,处理模块包含有:
一处理器;
一个一阶快取,耦接至处理器,用来为处理器快取数据,其中一阶快取具有至少一个一阶快取范围;以及
一个二阶快取,耦接至一阶快取,用来为处理器快取数据,其中二阶快取具有至少一个二阶快取范围,以及一阶快取范围与二阶快取范围彼此互斥。
19.如权利要求18所述的处理模块,其特征在于,还包含有:
至少一硬件引擎,耦接至二阶快取,用来通过存取二阶快取中的数据来进行预定处理。
20.如权利要求18所述的处理模块,其特征在于,还包含有:
一存储器接口,耦接至一阶快取与二阶快取,用来于一阶快取与一存储器之间传输数据以及用来在二阶快取与存储器之间传输数据。
21.一种具有多阶快取架构的处理模块,其特征在于,处理模块包含有:
一处理器;
一个一阶快取,耦接至处理器,用来为处理器快取数据,其中一阶快取具有至少一个一阶快取范围;
一个二阶快取,耦接至一阶快取,用来为处理器快取数据,其中二阶快取具有至少一个二阶快取范围;以及
一存储器接口,耦接至一阶快取与二阶快取,用来在一阶快取与一存储器之间传输数据以及用来在二阶快取与存储器之间传输数据。
22.如权利要求21所述的处理模块,其特征在于,一阶快取范围与二阶快取范围彼此互斥。
23.如权利要求21所述的处理模块,其特征在于,还包含有:
至少一硬件引擎,耦接至二阶快取,用来通过存取二阶快取中的数据来进行预定处理。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US59613605P | 2005-09-01 | 2005-09-01 | |
US60/596,136 | 2005-09-01 | ||
US11/307,073 | 2006-01-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1924833A true CN1924833A (zh) | 2007-03-07 |
CN100552647C CN100552647C (zh) | 2009-10-21 |
Family
ID=37817480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006101089770A Expired - Fee Related CN100552647C (zh) | 2005-09-01 | 2006-07-31 | 具有多阶快取架构的处理模块 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7596661B2 (zh) |
CN (1) | CN100552647C (zh) |
TW (1) | TWI324755B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063406A (zh) * | 2010-12-21 | 2011-05-18 | 清华大学 | 用于多核处理器的网络共享Cache及其目录控制方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8074026B2 (en) * | 2006-05-10 | 2011-12-06 | Intel Corporation | Scatter-gather intelligent memory architecture for unstructured streaming data on multiprocessor systems |
US8627009B2 (en) * | 2008-09-16 | 2014-01-07 | Mosaid Technologies Incorporated | Cache filtering method and apparatus |
US10430343B2 (en) * | 2017-02-21 | 2019-10-01 | Advanced Micro Devices, Inc. | Acceleration of cache-to-cache data transfers for producer-consumer communication |
TW202345028A (zh) * | 2021-12-22 | 2023-11-16 | 美商賽發馥股份有限公司 | 具改良互連之積體電路產生 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5572704A (en) | 1993-12-15 | 1996-11-05 | Silicon Graphics, Inc. | System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes |
US6226722B1 (en) * | 1994-05-19 | 2001-05-01 | International Business Machines Corporation | Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing |
US5831557A (en) * | 1996-06-11 | 1998-11-03 | Apple Computer, Inc. | Variable length code decoding according to optimum cache storage requirements |
US5963978A (en) | 1996-10-07 | 1999-10-05 | International Business Machines Corporation | High level (L2) cache and method for efficiently updating directory entries utilizing an n-position priority queue and priority indicators |
US5926830A (en) | 1996-10-07 | 1999-07-20 | International Business Machines Corporation | Data processing system and method for maintaining coherency between high and low level caches using inclusive states |
US5787478A (en) | 1997-03-05 | 1998-07-28 | International Business Machines Corporation | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy |
US6247084B1 (en) | 1997-10-08 | 2001-06-12 | Lsi Logic Corporation | Integrated circuit with unified memory system and dual bus architecture |
US6108753A (en) | 1998-03-31 | 2000-08-22 | International Business Machines Corporation | Cache error retry technique |
US6484237B1 (en) | 1999-07-15 | 2002-11-19 | Texas Instruments Incorporated | Unified multilevel memory system architecture which supports both cache and addressable SRAM |
US6460115B1 (en) * | 1999-11-08 | 2002-10-01 | International Business Machines Corporation | System and method for prefetching data to multiple levels of cache including selectively using a software hint to override a hardware prefetch mechanism |
JP3812258B2 (ja) | 2000-01-13 | 2006-08-23 | 株式会社日立製作所 | キャッシュ記憶装置 |
JP2002032265A (ja) | 2000-07-14 | 2002-01-31 | Hitachi Ltd | キャッシュ・アクセス制御方式およびデータ処理システム |
JP2005102144A (ja) | 2003-08-27 | 2005-04-14 | Renesas Technology Corp | Mpegのデータ処理装置 |
US7290107B2 (en) * | 2004-10-28 | 2007-10-30 | International Business Machines Corporation | Direct deposit using locking cache |
-
2006
- 2006-01-23 US US11/307,073 patent/US7596661B2/en active Active
- 2006-07-03 TW TW095124143A patent/TWI324755B/zh not_active IP Right Cessation
- 2006-07-31 CN CNB2006101089770A patent/CN100552647C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063406A (zh) * | 2010-12-21 | 2011-05-18 | 清华大学 | 用于多核处理器的网络共享Cache及其目录控制方法 |
CN102063406B (zh) * | 2010-12-21 | 2012-07-25 | 清华大学 | 用于多核处理器的网络共享Cache及其目录控制方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI324755B (en) | 2010-05-11 |
US20070050553A1 (en) | 2007-03-01 |
US7596661B2 (en) | 2009-09-29 |
CN100552647C (zh) | 2009-10-21 |
TW200710759A (en) | 2007-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240193098A1 (en) | Methods and apparatus to facilitate atomic operations in victim cache | |
US8495301B1 (en) | System and method for scatter gather cache processing | |
CN1240000C (zh) | 用于改进超高速缓存性能的输入/输出页面删除确定 | |
US9563568B2 (en) | Hierarchical cache structure and handling thereof | |
JP5087676B2 (ja) | 階層型キャッシュタグアーキテクチャ | |
CN1154049C (zh) | 双端口管道两级高速缓冲存储器系统 | |
CN1509436A (zh) | 以推测方式使高速缓存中的缓存行失效的方法及系统 | |
US8037281B2 (en) | Miss-under-miss processing and cache flushing | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
CN110069285A (zh) | 一种检测分支预测的方法及处理器 | |
JPWO2010035425A1 (ja) | キャッシュメモリ、その制御方法及びメモリシステム | |
TW200302981A (en) | Method and apparatus for identifying candidate virtual addresses in a content-aware prefetcher | |
US11301250B2 (en) | Data prefetching auxiliary circuit, data prefetching method, and microprocessor | |
US10671539B2 (en) | Cache line replacement using reference states based on data reference attributes | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
CN1155893C (zh) | 具有低电耗指令高速缓冲存储器的数据处理器 | |
CN100552647C (zh) | 具有多阶快取架构的处理模块 | |
CN116795736A (zh) | 数据预读取方法、装置、电子设备和存储介质 | |
CN110659220A (zh) | 基于非统一存储器访问(numa)特性的增强数据预取的装置、方法和系统 | |
CN1269043C (zh) | 内存地址的重新映射方法 | |
CN1896972A (zh) | 用于虚实地址变换及读写高速缓冲存储器的方法及装置 | |
CN114218132B (zh) | 信息预取方法、处理器、电子设备 | |
CN115098410A (zh) | 处理器、用于处理器的数据处理方法及电子设备 | |
CN117099087A (zh) | 用于处理储存请求的装置和方法 | |
CN110362509B (zh) | 统一地址转换方法与统一地址空间 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091021 Termination date: 20190731 |