CN102473149B - 包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 - Google Patents

包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 Download PDF

Info

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
Application number
CN200980160573.8A
Other languages
English (en)
Other versions
CN102473149A (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.)
NXP USA Inc
Original Assignee
Freescale Semiconductor Inc
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 Freescale Semiconductor Inc filed Critical Freescale Semiconductor Inc
Publication of CN102473149A publication Critical patent/CN102473149A/zh
Application granted granted Critical
Publication of CN102473149B publication Critical patent/CN102473149B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • G06F12/127Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using 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),其中对于线性、顺序信息流的提取被标记为顺序流,并且后向分支被标记为所述流变化;以及
当分配用于存储待缓冲的提取信息的缓冲器时,使得用于存储关于与顺序流相关联的所述第一分类的信息的缓冲器,优先于用于存储关于与流变化相关联的所述第二分类的信息的缓冲器。
CN200980160573.8A 2009-07-20 2009-07-20 包括缓冲器控制逻辑的信号处理系统、集成电路及其方法 Expired - Fee Related CN102473149B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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