CN102473149B - 包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 - Google Patents
包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 Download PDFInfo
- Publication number
- CN102473149B CN102473149B CN200980160573.8A CN200980160573A CN102473149B CN 102473149 B CN102473149 B CN 102473149B CN 200980160573 A CN200980160573 A CN 200980160573A CN 102473149 B CN102473149 B CN 102473149B
- Authority
- CN
- China
- Prior art keywords
- information
- stream
- impact damper
- buffered
- buffer control
- 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
- 239000000872 buffer Substances 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims description 37
- 230000008859 change Effects 0.000 claims abstract description 49
- 238000000605 extraction Methods 0.000 claims description 30
- 238000001514 detection method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 description 14
- 239000004020 conductor Substances 0.000 description 12
- 239000000284 extract Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 230000003139 buffering effect Effects 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008571 general function Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6022—Using a prefetch buffer or dedicated prefetch cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Small-Scale Networks (AREA)
Abstract
一种信号处理系统(100)包括缓冲器控制逻辑(142),其被设置成分配多个缓冲器(144),用于存储从至少一个存储器元件(160)提取的信息。在接收到待缓冲的提取信息时,缓冲器控制逻辑(142)被设置成根据与顺序流相关联的第一分类和与流改变相关联的第二分类的至少一种,将待缓冲的信息分类,并且当将缓冲器(144)分配用于存储待缓冲的提取信息时,使来自用于存储关于与顺序流相关联的第一分类的信息的多个缓冲器的相应缓冲器,优先于用于存储关于与流变化相关联的第二分类的信息的缓冲器。
Description
技术领域
本发明的领域涉及包括缓冲器控制逻辑的信号处理系统及其方法,更确切地说,涉及一种包括将设置用以分配用于信息存储的缓冲器的缓冲器控制逻辑的信号处理系统。
背景技术
在信号处理系统中,较之已经发起提取指令的主设备的操作频率,从存储器中提取指令和数据经常是较慢的处理。因此,如果该系统正在进行大量的这种提取操作,其能够导致总体系统性能的显著降低。随着中心处理单元(CPU)时钟频率增加,诸如多核的技术变得更为普遍,片上系统(SoC)处理性能由于在技术上存储器访问速度的改善速度显著落后于CPU时钟速度而导致越来越受限于存储器带宽。
已知的是实现预取方案,由此,先于主设备发起对于数据和/或指令的提取请求而提取数据和/或指令。由此,能够降低访问相对缓慢的存储器元件的性能影响。已知预取方案在缓冲器内存储提取的信息,基于诸如以最近最少使用(LRU)为基础的替换策略,以新提取的信息替换缓冲器的内容。
该已知替换策略的问题在于,在其满足基本上线性的程序流和在程序流中的紧密循环的同时,其没有考虑程序流的长跨度变化。因此,对于包括相对较大比例的程序流的长跨度变化的应用代码,这种已知的替换策略不是缓冲信息的有效方法。
发明内容
本发明提供了一种信号处理系统、包括诸如信号处理系统的集成电路、及其方法。
根据权利要求描述本发明的特定实施例。
参考下文中所描述的实施例,将理解和阐述本发明的这些和其他方面。
附图说明
通过实例的方式,参考附图,还将描述本发明的细节、方面和具体实施例。出于简单和清楚的目的,示出在附图中的元件,并且不一定将其按比例画出。
图1示出了信号处理系统的示例。
图2示出了存储器存取功能性的示例的简化框图。
图3示出了信息流的示例。
图4示出了用于缓冲信息的方法的简化流程图的示例。
具体实施方式
将参考基本上集成在诸如芯片上系统(SoC)设备的单个半导体器件中的信号处理系统的示例对本发明进行描述。然而,应该明白此处描述的这些示例不限于在诸如集成信号处理系统中使用,并且可以等同地应用到可选的信号处理设置和架构中。此外,因为实现本发明的示例性装置主要由对于本领域的技术人员已知的电子构件和电路组成,为了理解并鉴定本发明的基本原理,以及为了不模糊或偏离本发明的教导,如下文所示,不会以任何超过必要的程度对电路细节进行解释。
现参见图1,示出了信号处理系统100的示例。根据该示例性示例,信号处理系统100集成在集成电路(IC)105中。图1的信号处理系统100包括一个或多个可操作性地与系统互连120耦合的主设备110、115。主设备的示例是中央处理单元(CPU)或者直接存储存取控制器(DMA)。其他主设备能够包括诸如以太网或者FlexRay控制器的通信处理器、图形处理器、和/或控制器等。在一些示例中,例如,在IC105外部的主设备还例如经由外部总线或者在该IC105上的互连引脚(未示出)而可被操作性地耦合至系统互连120。以诸如通过根据诸如外围部件接口(PCI)协议或者ARM的高级微控制器总线结构(AMBATM)协议的系统总线协议操作的系统总线的任何合适方式,可以实现系统互连120。可选地,系统互连120可以包括切换电路,其在连接到此的不同主和从设备之间路由信息。
一个或多个从设备也能被操作地耦合到系统互连120,其示例性示例包括:输入/输出(I/O)电路125、外围设备130和其他从设备135。这些在图1中示出的从设备也集成在IC105中。然而,一些或者所有从设备可以可选地位于IC105外部。信号处理系统100还包括缓冲器控制逻辑142,作为示例性示例,形成操作地耦合到系统互连120的存储器存取逻辑140的部分,将存储器存取逻辑140设置为用于提供对一个或多个存储器元件160的访问。根据示例性示例,一个或多个存储器元件160被示出为集成在IC105中。然而,在其他示例中,一个或多个存储器元件可以位于IC105外部。
将缓冲器控制逻辑142设置成用于分配行缓冲器144,以用于信息存储,具体而言,根据示例性示例,用于存储从一个或多个存储器元件160中提取的信息。例如,可以将存储器存取逻辑140设置成用于在从主设备110、115接收存取请求之后,预取顺序地位于在所要求的内容的位置之后的存储器块,并且在缓冲器144中存储预取的存储器块的内容。以该种方式,当从主设备110、115中顺序地接收对于位于预取存储器块中的存储内容的请求时,该请求内容在缓冲器144中容易是可用的,从而避免为了检索信息在此时对存储器160执行相当缓慢存取的需求,并且因此避免相对应的降低系统性能。
图2示出了示出用于图1的系统100的存储器存取功能性的示例的简化结构图。当存储器存取逻辑140经由互连120和地址总线210接收存取请求时,其被传输到缓冲器控制逻辑142。如果该请求的信息已经事先预取,并且存储在存储器访问逻辑140的缓冲器144之一内,则从缓冲器144中检索被请求的信息,并且在无需对存储器元件160进行相当缓慢的存取的情形下,经由数据总线240,该请求信息返回到请求主设备,根据示例性示例,所述存储器元件160包括宽闪存阵列。然而,如果在缓冲器144中不存在所要求的信息,那么该信息必须从其被存储的存储器元件160中提取,例如通过缓冲器控制逻辑142经由地址总线220向存储器元件160转发接收的存取请求的方式。随后被请求的信息通过存储器元件160经由数据总线230而返回存储器存取逻辑140,并且随后经由数据总线240返回至系统互连120。
根据示例性示例,每个存储器存取请求涉及存储器中的地址,其中,每个存储器存取请求包括参考地址和,所述大小限定符限定待被参考的位(或字节)的数目,例如,存储“线”包括32位(4字节)信息。这种32位存储线可以包括指令信息和/或数据信息。在接收该存取请求之后,将存储器元件160设置为用于检索存储内容的线,其包括与该存取相关的地址,并且顺序地检索与顺序地址相对应的一条或多条线。例如,存储器元件160可以检索存储内容的八条线,每条线包括诸如32位的信息。因此,在该示例中,存储器元件160可以检索包括用于单个存储存取请求的多达256位的信息的存储内容的块,并且将存储内容的块返回存储访问逻辑140。以该种方式,不仅从存储器中提取所请求的数据,而且从存储器预取下一顺序信息位置。以这种方式,可以先于主设备110、115发起对于数据和/或指令的请求而提取数据和/或指令,并且在缓冲器144中缓存。结果,能够减少相对缓慢存取存储器元件160的性能影响。可以将缓冲器144设置为用于使得各个缓冲器能够存储通过存储器元件160返回的存储线(信息的N位(或者字节))。
从存储器元件160中预取信息,不限于仅当请求的信息不存在于缓冲器144中时被执行。例如,被请求信息可以事先被预取,从而存在于缓冲器144中,但可以位于朝向被预取的顺序存储内容的块的顺序下游端。因此,假定通常为线性程序流,被请求的信息可以扩展到存储内容的预取块之外。因此,在预取进一步的存储内容之前,不需要等待至请求的信息扩展到存储内容的预取块之外(这会导致当这种信息被预取时程序流延迟),而将缓冲器逻辑142设置成用于当接收事先被预取的信息请求,但是其中该信息位于朝向预取存储器的块的顺序下游端时,导致相对于请求信息通常位于程序流下游的进一步信息被预取。通过这种方式,可以将缓冲器控制逻辑142设置成实施预取方案,由此,先于主设备发起对于数据和/或指令的提取请求而提取数据和/或指令。结果,可以减少相对缓慢存取存储器元件的性能影响。
已知预取方案在缓冲器内存储提取的信息,其中,基于诸如以最近最少使用(LRU)为基础的替换策略,以新提取的信息替换缓冲器的内容。该种已知替换策略的问题在于,在其满足基本上线性程序流和在程序流内的紧密循环的同时,其没有考虑程序流的大跨度变化。因此,对于包括相对较大比例的程序流的大跨度变化的应用代码,这种已知的替换策略不是缓冲信息的有效方式。
根据一些示例,在接收将要缓冲的信息之后,将缓冲器控制逻辑142设置为用于根据至少与顺序流相关的第一种类和与流变化相关的第二种类中的一种,将要缓冲的信息分类。将缓冲器控制逻辑142进一步设置成用于当将缓冲器144分配以存储将被缓冲的提取信息时,使得存储与顺序流相关联的第一分类相关的信息的缓冲器优先于存储与流变化相关联的所述第二分类相关的信息的缓冲器。
例如,参见图3,示出了典型信息流300的示例,所述信息流300诸如程序流和/或数据存取流。基本上在310和315示出包括线性信息流的顺序流,因而从例如,图1的主元件110、115接收的存储器存取请求与用于存储器中的信息的顺序地址相关,其相对容易地被预测,并且能够有效地被预取并且存储在被缓冲的存储器中。在320示出包括前向分支的流变化。这种前向分支可以包括短跨度,例如,仅几个地址字节的长度,并且其通常不会跳跃超过当前缓冲器。因此,通常也能够有效地预测和预取这种短跨度前向分支。然而,前向分支320可以可选地包括长跨度,从而诸如存取的地址跳跃朝过当前缓冲器的长度。结果,这种长跨度前向分支有可能与没有包括在当前缓冲器中的信息相关,并且难以对预取进行预测。流变化也在图3中示出包括后向分支330、340。后向分支330包括短跨度后向分支,例如仅几个字节的长度,并且其通常不跳越朝过当前缓冲器的开始。因此,利用存储在缓冲存储器内的被预取的信息,通常能够有效地处理这种短跨度后向分支。然而,后向分支340包括长跨度,从而被存取的地址跳越朝过当前缓冲器的开始。结果,这种长跨度后向分支也可能与未包括在当前缓冲器内的信息相关,并且利用已知的缓冲器代替战略可能经常与已经被取代从而不再存储在缓冲存储器中的信息相关。
因此,根据一些示例,可以将图1的缓冲器控制逻辑142设置成用于将从一个或多个存储器元件160进行的各个提取分类和标记为与诸如顺序流提取或流变化提取中的一个相对应。具体而言,根据图3中示出的信息流300的示例,可以将用于线性、顺序信息流310、315的提取分类并且标记为“顺序流”。相反地,可以将前向和后向分支320、330、340分类并且标记为“流变化”。
因此,当缓冲器控制逻辑142顺序地接收待缓冲的、进一步提取的信息时,当选择在其中利用最近提取的信息取代当前存储的信息的缓冲器时,缓冲器控制逻辑142能够使得用于存储顺序流信息的缓冲器优先于用于存储与流变化相对应的信息的缓冲器。以该种方式,与流变化提取相关的信息不太可能由顺序提取的信息取代。结果,当与先前预取的信息相关的流变化发生时,该先前预取的流变化信息很有可能仍包含在缓冲器144中。因此,可以连同系统100的性能提高流变化的缓冲器命中率(hit ratio)。因为通常更容易预测线性信息流,并且因此能够相对有效地被预取,该被缓冲的线性信息流的更加有规律的取代不可能显著影响用于顺序信息流的缓冲命中率。结果,考虑信息流的类型,较之已知的缓冲器替换策略,可以减少相对较慢存取(一个或多个)存储器元件160的总体性能影响。
根据某些示例,图1的缓冲器控制逻辑142可以被设置成,如果空的(无效)缓冲器或存储未使用信息的缓冲器均不可用,则当分配用于存储待缓冲的信息的缓冲器144时,使得用于存储关于与顺序流相关联的第一分类的信息的缓冲器优先于用于存储关于与流变化相关联的第二分类的信息的缓冲器。例如,缓冲器控制逻辑142可以被设置成实现包括用于存储待缓冲的提取信息的下列优先级的缓冲器替换策略:
(i)无效缓冲器(例如,包括初始无载状态,或硬件或软件事件已经导致缓冲器失效的缓冲器);
(ii)未使用缓冲器(例如,已经被加载了顺序或流变化提取信息,但随后尚未被存取的缓冲器);
(iii)LRU可存取顺序缓冲器(例如,存储最近最少存取(使用)的顺序信息的缓冲器——不包括被保持的顺序缓冲器);以及
(iv)LRU流变化缓冲器。
仍需要在其中存储提取信息以及包括初始无载状态的、或者硬件或软件事件已经导致缓冲器失效的无效缓冲器被首先用于存储待缓冲的提取信息。因此,如果没有空的(无效)缓冲器可用,才会替换先前提取和缓冲的信息。如果没有无效缓冲器可用,则包含未被存取的,并且因此可能已经被不正确地提取的先前提取的信息的缓冲器被用于存储新提取的信息。由于被替换的先前提取的信息可能已经被不正确地提取,因此其被缓冲已经没有益处,其替换不会影响系统100的性能。在某些示例中,这种未使用缓冲器可以被保持,即,例如,在从未使用内容被加载到缓冲器中开始的一定时间段或数个时钟周期内,可以保护它们的内容不被替换,以避免在主设备110、115有机会存取该信息之前,意外地替换该信息。
如果没有无效缓冲器或未使用缓冲器可用,在上文示例中的缓冲器控制逻辑142被设置成,当分配用于存储待缓冲的信息的缓冲器144时,使得用于存储关于与顺序流相关联的第一分类的信息的缓冲器144优先于用于存储关于与流变化相关联的第二分类的信息的缓冲器。具体而言,对于上文示例,在没有无效缓冲器或未使用缓冲器可用的情形中,缓冲器控制逻辑142被设置成在包含顺序流(SF)信息的可存取缓冲器中存储提取的信息。例如,缓冲器控制逻辑142可以被设置成保持包含最近缓冲的顺序流信息的最小数目(SF_min)的缓冲器,从而保护待保持的这些缓冲器的内容不被替换。因此,这种被保持的缓冲器是不可存取的,不可用于存储待缓冲的提取信息。因此,如果存在超过包含顺序流信息的SF_min个缓冲器之外的缓冲器,顺序流缓冲器是可存取的,用于存储提取的信息。如果没有包含顺序流的缓冲器是可存取的(并且没有无效的缓冲器或未使用的缓冲器是可用的),缓冲器控制逻辑142将提取的信息存储在包含流变化信息的缓冲器内。以这种方式,大体上可以保持最小数目(SF_min)的缓冲器,用于缓冲顺序流信息,以确保有效的顺序流预取和缓冲,同时,对于剩余的可用缓冲器,可以使得流变化信息的缓冲优先,以改善用于流变化信息的缓冲器命中率。而且,对于上文示例,在确定待被替换的存储信息的适当种类,例如,如果这种缓冲器是可用时为顺序流信息,或者是流变化信息时,缓冲器控制逻辑142被设置成用于分配存储适当种类的最近最少使用(LRU)信息的缓冲器144。以这种方式,当确定分配哪个缓冲器用于存储新提取信息时,缓冲器控制逻辑142可以对流变化信息和缓冲信息被使用的新近程度来进行考虑。
根据进一步的示例,用于最近分配的顺序流信息缓冲器的最小数目(SF_min)值可以在运行期间被变成编程,例如,以被加载到控制寄存器146中的参数的形式来编程。通过这种方式,用于最近分配的顺序流信息缓冲器的最小数目(SF_min)值可以通过在信号处理系统100的主设备110、115上执行的软件来构造,因此,可以被适配为考虑特定应用情况。另外或可选的是,缓冲器控制逻辑142可以被设置成用于追踪流变化,例如,用于跟踪流变化提取的分支跨度,以根据该追踪的流变化来调整用于最近分配的顺序流信息缓冲器的最小数目(SF_min)值。通过这种方式,缓冲器控制逻辑142可以将其替换策略适配为更好地适合由主设备110、115所执行的应用代码的应用情况。例如,缓冲器控制逻辑142可以被设置成用于追踪例如具有大于阈值跨度的后向分支,并且用于配置用于最近分配的顺序流信息缓冲器的最小数目(SF_min)值,以适应这种后向分支的频率。例如,用于这种阈值跨度长度的适当数目的地址线可以包括二至四条线。通过这种方式,用于SF_min的更大值可以被配置用于包括较少的大跨度流变化的应用代码,同时,用于SF_min的较小值可以被配置用于包括较大数目的大跨度流变化的应用代码。
在某些示例中,缓冲器控制逻辑142可以进一步被设置成,使得当配置最小数目(SF_min)值时,具有大于最大可用缓冲器容量的跨度的分支将被忽略,以避免系统用尽缓冲器容量。例如,缓冲器控制逻辑142可以被设置成用于追踪包括在跨度长度阈值范围内的跨度的分支,其中,这些阈值取决于例如可用于顺序流存储的缓冲器的数目。因此,例如,具有大于当前最小数目(SF_min)值的容量的跨度以及具有小于缓冲器可用的最大总容量的跨度的后向分支的部分,可以被用于更新最小数目(SF_min)值。
如先前所提及的,长度上仅包括几条地址线的短跨度流变化(诸如,分支320、330)将通常不会跳越朝过当前缓冲器,并且因此其能够通常利用在缓冲存储器中存储的预取线性信息而被有效地处理。因此,预期的是,在接收到关于流变化的待缓冲的提取信息时,缓冲器控制逻辑142可以被设置成根据用于待缓冲的信息的流变化跨度,将待缓冲的信息分类。例如,缓冲器控制逻辑142可以设置成用于确定用于待缓冲信息的流变化跨度,并且如果确定的流变化跨度小于阈值,例如,与用于配置用于最近分配的顺序流信息缓冲器的最小数目(SF_min)值的如上述的相同或类似阈值,将信息分类为顺序流信息。
可选的是,缓冲器控制逻辑142可以被设置成用于将关于包括小于阈值的跨度的流变化的信息分类为与短跨度流变化相关联的第三种类,并且当分配用于存储待缓冲的提取信息的缓冲器144时,将用于存储关于该第三信息种类的信息的缓冲器的优先级设置在与顺序流相关联的第一种类和与流变化相关联的第二种类之间。
在一个可选示例中,可以假定通过预取操作,从存储器元件160提取基本所有的线性流信息,同时,作为对于来自主设备110、115的请求的直接响应,从存储器元件160提取基本所有的流变化信息。在这个示例中,基于导致其被从存储器160提取的触发,可以将信息更简单地分类。更具体地说,通过预取操作从存储器提取的信息可以被分类为顺序流(线性)信息,同时,作为对于来自主设备的请求的直接响应而从存储器提取的信息可以被分类为流变化信息。
现在参考图4,示出了用于缓冲信息的方法的简化流程图400的示例。该方法始于步骤405,并且前进至接收到待缓冲的提取信息的步骤410。接下来,在步骤415中,接收的信息被根据至少与顺序流相关联的第一分类和与流变化相关联的第二分类的一个而分类并且被标记。然后,该方法前进至步骤420,其中,确定无效/空的缓冲器是否可用。如果这种无效缓冲器是可用的,该方法前进至步骤425,其中,将提取的信息存储在可用无效缓冲器中。然后,该方法在步骤455结束。再次参考步骤420,如果没有无效缓冲器可用,该方法前进至步骤430,其中,确定未使用缓冲器(例如,已经被加载了顺序或流变化信息,但是随后尚未被存取的缓冲器)是否可用。如果在步骤430中,这种未使用缓冲器是可用的,该方法前进至步骤435,其中,将提取的信息存储在可用的未使用缓冲器中,例如,最旧的未使用缓冲器中。然后,该方法在步骤455结束。
再次参考步骤430,如果没有未使用的缓冲器可用,该方法前进至步骤440,其中,确定可存取的顺序流缓冲器是否可用。例如,包含最近缓冲的顺序流信息的最小数目(SF_min)的缓冲器可以被保持,从而保护要被保持的这些缓冲器的内容不被替换。因此,这种被保持的缓冲器是不可存取的,不能用于存储待缓冲的提取信息。因此,如果存在超过包含顺序流信息的SF_min个缓冲器的数量的缓冲器,顺序流缓冲器是可存取的,用于存储提取信息。如果可存取的顺序流缓冲器是可用的,该方法前进至步骤445,其中,将提取信息存储在最近最少使用的可存取和可用顺序流缓冲器内。然后,该方法在步骤455结束。再次参考步骤440,如果没有可存取的顺序流缓冲器是可用的,该方法前进至步骤450,其中,通过包含流变化(COF)信息的最近最少使用的缓冲器来存储提取信息。然后,该方法在步骤455结束。
在前文的说明中,已经结合本发明的特定示例描述了本发明。然而,将明显的是,在不脱离如随附的权利要求所描述的本发明的更为广泛的范围的条件下,可以对其做出各种修改和变更。例如,这些连接可以是适合于例如,借助中间设备,从或向各个节点、单元或设备来传输信号的任何类型的连接。因此,除非另有暗示或说明,例如,这些连接可以是直接连接或间接连接。
此处所描述的每个信号可以被设计为正或负逻辑。在负逻辑信号的情形中,信号是低电平有效的,其中,逻辑真状态对应于逻辑电平0。在正逻辑信号的情形中,信号是高电平有效的,其中,逻辑真状态对应于逻辑电平1。应注意的是,此处描述的信号的任何一个可以被设计为负或正逻辑信号。因此,在可选实施例中,被描述为正逻辑信号的那些信号可以被实现为负逻辑信号,并且被描述为负逻辑信号的那些信号可以被实现为正逻辑信号。
可以可能参考单个导体、多个导体、单向导体或双向导体,示出或者描述此处所讨论的导体,然而,不同的实施例可以变化对导体的实现。例如,可以使用分离的单向导体而非双向导体,反之亦然。而且,可以用连续或时间复用方式来传送多个信号的单个导体来替换多个导体。同样,承载多个信号的单个导体可以被分隔成承载这些信号的子集的不同导体。因此,对于传送信号,存在许多选择。
因为实现本发明的装置主要由对于本领域的技术人员已知的电子构件和电路组成,为了理解和了解本发明的基础概念,并且避免模糊或偏离本发明的教导,不会超过上文所示的所需程度对于电路细节进行解释。
此处使用的术语“程序”被定义为被设计用于在计算机系统上执行的指令序列。程序或计算机程序可以包括子程序、功能、流程、对象方法、对象实现、可执行应用、小应用程序、小服务程序、源代码、对象代码、共享库/动态加载库、以及/或者被设计用于在计算机系统上执行的其他指令序列。
使用多种不同的信息处理系统,可以适当地实现上述实施例的某些。例如,虽然图1和其讨论描述了示例性信息处理架构,这个示例性架构仅被示出为在讨论本发明的各个方面中提供有用的参考。当然,为了讨论目的,对架构的描述已经被简化,并且其仅仅是根据本发明可以使用的是许多不同类型的适当架构之一。本领域的技术人员应当承认,逻辑块之间的边界仅是说明性的,并且可选实施例可以合并逻辑块或电路元件,或者将功能的可替换分解应用到各种逻辑块或电路元件上。
因此,应该理解的是,此处描述的架构仅为示例性,事实上,能够实施实现相同功能性的许多其他架构。简言之(但明确地),实现相同功能的任何构件的布置是有效“关联”的,以便实现期望的功能。因此,无论架构或中间构件如何,在此处被组合以实现特定功能的任何两个构件可以被视为彼此“关联”,以便实现期望的功能。同样,如此相关联的任何两个组件也可以被视为彼此“可操作地连接”或“可操作地耦合”,以实现期望的功能。
又例,在一个实施例中,系统100的示例性元件是位于单个集成电路上或者相同设备中的电路。可选地,系统100可以包括任何数目的分离的集成电路或者彼此互连的分离设备。例如,一个或多个存储器元件160可以作为主设备110和115位于相同集成电路上,或者在分离的集成电路上,或者位于与系统100的其他元件离散地分离的另一外围或从设备中。外围130和I/O电路125也可以位于分离的集成电路上。又如,系统100或其部分可以是物理电路系统的软件或代码表示,或者是能够转换成物理电路的逻辑表示。由此,系统100的部分可以通过任何适当类型的硬件描述语言而被实施。
此外,本领域的技术人员将明白,在上述操作的功能之间的边界仅仅是示例性的。可以将多种操作的功能性合并成单个操作,并且和/或单个操作的功能可以被分布在额外的操作中。此外,可选实施例可以包括特定操作的多种示例,并且在各种其他实施例中可以更改操作的顺序。
在一个实施例中,系统100是诸如个人计算机系统的计算机系统。其他实施例可以包括不同的计算机系统。计算机系统是能够被设计以将独立的计算能力给予一个或多个用户的信息处理系统。可以以包括但不限于主机、微计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏机、自动和其他植入系统、手机、和各种其他的无线装置的许多方式来建立计算机系统。典型计算机系统包括处理单元、相关存储器、和多个输入/输出(I/O)设备的至少之一。
计算机系统根据程序处理信息,并且经由I/O设备产生作为结果的输出信息。程序是诸如特定应用程序和/或操作系统的一系列指令。计算机程序通常内部存储在计算机可读存储介质上,或者经由计算机可读传输介质传输到计算机系统。计算机程序通常包括执行(运行)程序或者程序的部分、当前程序值和状态信息,以及由管理该处理的执行的操作系统使用的资源。父处理可以产生其他的子处理,以帮助执行父处理的总体功能。因为父处理特定地产生子处理,以执行父处理的总体功能的部分,所以通过子处理(和孙处理等)执行的该功能有时可以描述为通过父程序来执行。
同时,本发明不限于在非可编程硬件中实现的物理设备或单元,但是也能够被应用到通过根据适当的程序代码能够执行期望的设备功能的可编程设备或单元中。此外,这些设备可以物理分布在在多个装置上,而功能上作为单个设备来操作。同时,功能上形成单独设备的这些设备可以集成在单个物理设备中。
然而,其他修正、变化和可选也是可能的。因此,该说明和附图仅仅是说明性的而非限制性的。
在权利要求中,在置于括号之间的任何参考符号不应被理解为限定权利要求。词语“包括”不排除在权利要求中所列出的那些以外存在其他要素或步骤。而且,此处所使用的术语“个”被定义为一个或超过一个。而且,在权利要求中的诸如“至少一个”和“或一个或多个”的引导短语的使用不应被解释为暗示通过不定冠词“个”引入另一权利要求要素将包含这种引入的要求的要素的任何特定权利要求限定为仅包含一个这种要素的发明,即使当相同权利要求包含引导短语“一个或多个”或者“至少一个”以及诸如“个”的不定冠词时也是如此。对于定冠词的使用也是一样。除非另有说明,诸如“第一”和“第二”的术语用于任意区别这种术语描述的要素。因此,这些术语不一定旨在指示这种要素的临时或其他优先分级。在彼此不同的权利要求中列明的某些措施的事实不表示这些措施的组合不能被有利地使用。
Claims (10)
1.一种信号处理系统(100),包括缓冲器控制逻辑(142),其被设置成分配多个缓冲器(144)以用于存储从至少一个存储器元件(160)提取的信息,其中,在接收到待缓冲的提取信息时,所述缓冲器控制逻辑(142)被设置成:
根据与顺序流相关联的第一分类和与流变化相关联的第二分类的至少一种,将待缓冲的所述信息分类,其中对于线性、顺序信息流的提取被标记为顺序流,并且后向分支被标记为所述流变化;以及
当分配缓冲器(144)用于存储待缓冲的提取信息时,使得来自用于存储关于与顺序流相关联的所述第一分类的信息的多个缓冲器的相应缓冲器优先于用于存储关于与流变化相关联的所述第二分类的信息的缓冲器。
2.根据权利要求1所述的信号处理系统(100),其中,所述缓冲器控制逻辑(142)设置成,如果空缓冲器或用于存储未使用信息的缓冲器均不可用,则使得用于存储待缓冲的信息的缓冲器优先。
3.根据权利要求1所述的信号处理系统(100),其中,所述缓冲器控制逻辑(142)进一步设置成用于保持最小数目SF_min的最近分配的顺序流信息缓冲器。
4.根据权利要求3所述的信号处理系统(100),其中,所述缓冲器控制逻辑(142)进一步设置成用于追踪用于流变化提取的分支跨度,并且用于根据所追踪的分支跨度来调整用于所述最近分配的顺序流信息缓冲器的最小数目SF_min值。
5.根据权利要求3所述的信号处理系统(100),其中,能够通过在所述信号处理系统(100)的主设备(110,115)上执行的软件,配置用于所述最近分配的顺序流信息缓冲器的所述最小数目SF_min值。
6.根据权利要求1所述的信号处理系统(100),其中,在接收到关于流变化的提取信息时,所述缓冲器控制逻辑(142)被设置成根据用于待缓冲的所述信息的流变化跨度,将待缓冲的信息分类。
7.根据权利要求6所述的信号处理系统(100),其中,所述缓冲器控制逻辑(142)被设置成用于确定用于待缓冲的所述信息的流变化跨度,并且如果所确定的流变化跨度小于阈值跨度长度,则将所述信息分类为顺序流信息。
8.根据权利要求1的所述信号处理系统(100),其中,所述缓冲器控制逻辑(142)被设置成,在确定待替换的存储信息的适当分类时,分配用于存储所述适当分类的最近最少使用的信息的缓冲器(144)。
9.一种集成电路(105),包括所述权利要求1所述的缓冲器控制逻辑(142)。
10.一种用于缓冲信息的方法(400),所述方法包括:
接收待缓冲的信息(410);
根据与顺序流相关联的第一分类和与流变化相关联的第二分类的至少一种,将待缓冲的所述信息分类(415),其中对于线性、顺序信息流的提取被标记为顺序流,并且后向分支被标记为所述流变化;以及
当分配用于存储待缓冲的提取信息的缓冲器时,使得用于存储关于与顺序流相关联的所述第一分类的信息的缓冲器,优先于用于存储关于与流变化相关联的所述第二分类的信息的缓冲器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2009/053139 WO2011010184A1 (en) | 2009-07-20 | 2009-07-20 | Signal processing system, integrated circuit comprising buffer control logic and method therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102473149A CN102473149A (zh) | 2012-05-23 |
CN102473149B true CN102473149B (zh) | 2015-02-04 |
Family
ID=43498812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980160573.8A Expired - Fee Related CN102473149B (zh) | 2009-07-20 | 2009-07-20 | 包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8667190B2 (zh) |
EP (1) | EP2457168B1 (zh) |
CN (1) | CN102473149B (zh) |
WO (1) | WO2011010184A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI456880B (zh) | 2012-11-19 | 2014-10-11 | Ind Tech Res Inst | 交換式電路 |
US10380060B2 (en) | 2016-06-17 | 2019-08-13 | Etron Technology, Inc. | Low-pincount high-bandwidth memory and memory bus |
WO2019050534A1 (en) * | 2017-09-08 | 2019-03-14 | Etron Technology America, Inc. | MEMORY BUS AND MEMORY WITH LARGE BAND WIDTH AND LOW NUMBER OF PINS |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623608A (en) * | 1994-11-14 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
CN1932783A (zh) * | 2005-09-16 | 2007-03-21 | 松下电器产业株式会社 | 存储器控制装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62102344A (ja) | 1985-10-29 | 1987-05-12 | Fujitsu Ltd | バツフア・メモリ制御方式 |
US5623615A (en) * | 1994-08-04 | 1997-04-22 | International Business Machines Corporation | Circuit and method for reducing prefetch cycles on microprocessors |
US5692168A (en) | 1994-10-18 | 1997-11-25 | Cyrix Corporation | Prefetch buffer using flow control bit to identify changes of flow within the code stream |
US5996071A (en) | 1995-12-15 | 1999-11-30 | Via-Cyrix, Inc. | Detecting self-modifying code in a pipelined processor with branch processing by comparing latched store address to subsequent target address |
US6813767B1 (en) | 2000-06-30 | 2004-11-02 | Intel Corporation | Prioritizing transaction requests with a delayed transaction reservation buffer |
US20030105926A1 (en) | 2001-12-03 | 2003-06-05 | International Business Machies Corporation | Variable size prefetch cache |
US6823428B2 (en) | 2002-05-17 | 2004-11-23 | International Business | Preventing cache floods from sequential streams |
US7328312B2 (en) | 2005-02-03 | 2008-02-05 | International Business Machines Corporation | Method and bus prefetching mechanism for implementing enhanced buffer control |
US7206230B2 (en) | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
KR100839494B1 (ko) * | 2006-02-28 | 2008-06-19 | 삼성전자주식회사 | 버스 중재 시스템 및 버스 중재 방법 |
US7487297B2 (en) | 2006-06-06 | 2009-02-03 | International Business Machines Corporation | Dynamically adjusting a pre-fetch distance to enable just-in-time prefetching within a processing system |
US7487340B2 (en) | 2006-06-08 | 2009-02-03 | International Business Machines Corporation | Local and global branch prediction information storage |
-
2009
- 2009-07-20 EP EP09847522.1A patent/EP2457168B1/en not_active Not-in-force
- 2009-07-20 WO PCT/IB2009/053139 patent/WO2011010184A1/en active Application Filing
- 2009-07-20 US US13/384,835 patent/US8667190B2/en not_active Expired - Fee Related
- 2009-07-20 CN CN200980160573.8A patent/CN102473149B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5623608A (en) * | 1994-11-14 | 1997-04-22 | International Business Machines Corporation | Method and apparatus for adaptive circular predictive buffer management |
CN1932783A (zh) * | 2005-09-16 | 2007-03-21 | 松下电器产业株式会社 | 存储器控制装置 |
Also Published As
Publication number | Publication date |
---|---|
US8667190B2 (en) | 2014-03-04 |
CN102473149A (zh) | 2012-05-23 |
EP2457168B1 (en) | 2018-09-26 |
US20120131241A1 (en) | 2012-05-24 |
EP2457168A1 (en) | 2012-05-30 |
EP2457168A4 (en) | 2014-04-16 |
WO2011010184A1 (en) | 2011-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754778B2 (en) | Control of pre-fetch traffic | |
KR101021046B1 (ko) | 동적 프리페치 버퍼 구성 및 대체를 위한 방법 및 장치 | |
US11567885B2 (en) | System and method for optimizing DRAM bus switching using LLC | |
US8447897B2 (en) | Bandwidth control for a direct memory access unit within a data processing system | |
US6643747B2 (en) | Processing requests to efficiently access a limited bandwidth storage area | |
US20150143057A1 (en) | Adaptive data prefetching | |
US20150302903A1 (en) | System and method for deep coalescing memory management in a portable computing device | |
KR101845371B1 (ko) | 오프-다이 캐시 메모리의 태그들의 세트들을 캐시하기 위한 방법, 장치, 및 시스템 | |
KR101093317B1 (ko) | 데이터 처리 시스템 내의 프리패치 제어 | |
US20190179783A1 (en) | Regulation for atomic data access requests | |
CN111563052B (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
KR20190047035A (ko) | 비휘발성 메모리 지속화 방법 및 컴퓨팅 디바이스 | |
CN102473149B (zh) | 包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 | |
US6397274B1 (en) | Method and apparatus for analyzing buffer allocation to a device on a peripheral component interconnect bus | |
CN113472690A (zh) | 一种业务报文处理方法及装置 | |
CN110059035B (zh) | 半导体装置和总线发生器 | |
EP1970815A1 (en) | Data transfering apparatus and information processing system | |
CN107851065B (zh) | 预先缓存分配器 | |
US10740032B2 (en) | Resource allocation for atomic data access requests | |
CN110633232A (zh) | 半导体器件和总线生成器 | |
US11409673B2 (en) | Triggered operations for collective communication | |
US20200356486A1 (en) | Selectively honoring speculative memory prefetch requests based on bandwidth state of a memory access path component(s) in a processor-based system | |
US20090031101A1 (en) | Data processing system | |
US11068425B2 (en) | Semiconductor device and bus generator | |
US9135157B2 (en) | Integrated circuit device, signal processing system and method for prefetching lines of data therefor |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Texas in the United States Patentee after: NXP USA, Inc. Address before: Texas in the United States Patentee before: FREESCALE SEMICONDUCTOR, Inc. |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150204 Termination date: 20210720 |
|
CF01 | Termination of patent right due to non-payment of annual fee |