CN1554050B - 具有自适应优先权控制器的数据处理器及其方法 - Google Patents

具有自适应优先权控制器的数据处理器及其方法 Download PDF

Info

Publication number
CN1554050B
CN1554050B CN028178076A CN02817807A CN1554050B CN 1554050 B CN1554050 B CN 1554050B CN 028178076 A CN028178076 A CN 028178076A CN 02817807 A CN02817807 A CN 02817807A CN 1554050 B CN1554050 B CN 1554050B
Authority
CN
China
Prior art keywords
request
priority
write buffer
resource
impact damper
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
CN028178076A
Other languages
English (en)
Other versions
CN1554050A (zh
Inventor
阿弗泽尔·M·马里克
威廉·C·莫耶尔
小威廉·C·布鲁斯
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 CN1554050A publication Critical patent/CN1554050A/zh
Application granted granted Critical
Publication of CN1554050B publication Critical patent/CN1554050B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

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)
  • Advance Control (AREA)

Abstract

本发明一般涉及数据处理器,更具体说,是涉及具有自适应优先权控制器的数据处理器。一个实施例涉及一种在有总线接口单元(32)的数据处理器(12)中,使请求优先化的方法。本方法包括,从第一总线请求资源(如30)接收第一请求和从第二总线请求资源(如28)接收第二请求,并用与第一或第二总线请求资源对应的一个阈值,把第一和第二请求优先化。第一和第二总线请求资源,可以是超高速缓存的推入缓冲器(28)、写入缓冲器(30)、或预取指令缓冲器(24)。按照一个实施例,该总线接口单元(32)包括优先权控制器(34),该优先权控制器接收第一和第二请求、分配优先权、和把阈值存储在阈值寄存器(66)中。优先权控制器(34)还可以包括一个或多个阈值寄存器(66)、副阈值寄存器(68)和控制寄存器(70)。

Description

具有自适应优先权控制器的数据处理器及其方法
技术领域
本发明一般涉及数据处理器,更具体说,则专门涉及具有自适应优先权控制器的数据处理器。
背景技术
有分离指令和数据超高速缓存的微处理器,一般需要把对单一主存储器的各请求优先化。在中央处理单元(CPU)指令侧的操作,包括取指令、取指令流程的变化(instruction change of flow fetches)、和预取指令。CPU中的数据操作,包括装入操作和存储操作。近代的数据处理器还常常包括写入缓冲器、用于修改超高速缓存数据的推入(push)缓冲器、和指令的超高速缓存及数据的超高速缓存(连续写入或反向复制)。因为指令超高速缓存及数据超高速缓存(包括写入/推入缓冲器)的操作是独立的,所以能够出现对主存储器的同时的请求。主存储器和外部设备可以按CPU频率的分数频率运行。对主存储器请求的有效优先化,能够降低要求CPU的停顿周期(stall cycles)数,从而增强整个系统的性能。因此,需要把对主存储器的多个请求更有效地优先化。
发明内容
根据本发明,提供一种数据处理器,包括:中央处理单元;与中央处理单元耦合的第一请求资源,适于请求使用通信总线,以便发送或接收数据;与中央处理单元耦合的第二请求资源,适于请求使用通信总线,以便发送或接收数据;和与中央处理单元、第一请求资源、和第二请求资源耦合的总线接口单元,适于与通信总线耦合,该总线接口单元包括:优先权控制器,用于从第一请求资源接收第一请求以及从第二请求资源接收第二请求,并根据对应于第一请求资源和第二请求资源之一的阈值,把优先权分配给第一请求和第二请求的每一个,其中所述优先权控制器包括存储电路,用于存储与第一请求资源相对应的第一资源阈值、与第二请求资源相对应的第二资源阈值、以及与第一请求资源和第二请求资源相对应的控制值。
根据本发明,提供一种数据处理器,包括:处理单元;与处理单元耦合的超高速缓存;与处理单元耦合的写入缓冲器;与处理单元、超高速缓存、和写入缓冲器耦合的优先权控制器,该优先权控制器包括:优先权规则说明电路,其中,优先权规则说明电路包括第一可编程阈值寄存器,用于存储与写入缓冲器对应的第一阈值;和与优先权规则说明电路耦合的当前优先权方案电路,该当前优先权方案电路从超高速缓存和写入缓冲器接收向存储器接入的请求,并至少根据该第一阈值,把向存储器的接入请求优先化。
根据本发明,提供一种在数据处理器中使请求优先化的方法,该数据处理器有处理单元、与处理单元耦合的超高速缓存、与处理单元耦合的写入缓冲器、和与处理单元、超高速缓存、及写入缓冲器耦合的总线接口单元,该总线接口单元适于与通信总线耦合,并为超高速缓存和写入缓冲器使用通信总线的请求服务,所述方法包括:从超高速缓存接收第一通信总线的接入请求,和从写入缓冲器接收第二通信总线的接入请求;以及使用与写入缓冲器对应的第一阈值,确定第一和第二通信总线的接入请求中哪一个获得优先权;其中,数据处理器包括与超高速缓存和总线接口单元耦合的推入缓冲器,所述总线接口单元适于为推入缓冲器使用通信总线的请求服务,所述使请求优先化的方法还包括:从推入缓冲器接收第三通信总线的接入请求;以及使用与推入缓冲器对应的第二阈值和第一阈值,确定第一、第二和第三通信总线的接入请求中哪一个获得优先权。
根据本发明,提供一种在数据处理器中使用的方法,该数据处理器有处理单元、与处理单元耦合的写入缓冲器、和与处理单元、超高速缓存、及写入缓冲器耦合的总线接口单元,其中,该总线接口单元适于与通信总线耦合,并为写入缓冲器和处理单元使用通信总线的请求服务,所述方法包括:接收与预取指令缓冲器对应的预取指令请求;把写入缓冲器内的有效项目数,与写入缓冲器阈值比较,获得第一比较结果;把预取指令缓冲器内的有效项目数,与预取指令缓冲器阈值比较,获得第二比较结果;和根据第一和第二比较结果,向预取指令请求分配优先权。
根据本发明,提供一种数据处理器,包括:处理单元;与处理单元耦合的写入缓冲器;和与处理单元和写入缓冲器耦合的总线接口单元,其中,该总线接口单元适于与通信总线耦合,并为写入缓冲器和处理单元使用通信总线的请求服务,该总线接口单元包括:接收装置,用于接收与预取指令缓冲器对应的预取指令请求;与接收装置耦合的第一比较装置,用于把写入缓冲器内的有效项目数,与写入缓冲器阈值比较,获得第一比较结果;与接收装置耦合的第二比较装置,用于把预取指令缓冲器内的有效项目数,与预取指令缓冲器阈值比较,获得第二比较结果;和与第一和第二比较装置耦合的优先权装置,用于根据第一和第二比较结果,向预取指令请求分配优先权。
根据本发明,提供一种在数据处理器中使用的方法,该数据处理器有处理单元和与处理单元耦合的总线接口单元,该处理单元有预取指令缓冲器,该总线接口单元适于与通信总线耦合,并为预取指令缓冲器和处理单元使用通信总线的请求服务,所述方法包括:接收取指令流程请求的变化;把预取指令缓冲器内的项目数,与预取指令缓冲器阈值比较;和响应项目数的比较,有选择地改变取指令流程请求的变化相对于预取指令缓冲器的使用通信总线请求的优先权。
根据本发明,提供一种在数据处理器中使请求优先化的方法,该数据处理器有总线接口单元、第一请求资源、和第二请求资源,该总线接口单元适于与通信总线耦合,并为使用通信总线的请求服务,其中,该第一和第二请求资源为使用通信总线提出请求,所述方法包括:有选择地从第一资源接收第一请求和有选择地从第二资源接收第二请求;如果收到第一请求和第二请求,用对应于第一资源和第二资源之一的一个阈值,向第一和第二请求分配优先权;和如果没有收到第一请求和第二请求,则:把第一请求资源内的项目数,与第一请求资源的阈值比较,还把第二请求资源内的项目数,与第二请求资源的阈值比较;和如果第一请求资源内的项目数,落在第一请求资源的阈值之下,且第二请求资源内的项目数,落在第二请求资源的阈值之下,则用对应于第一请求资源和第二请求资源之一的一个副阈值,向第一和第二请求分配优先权。
附图说明
本发明在各附图画出的实施例中的说明,是以示例的方式,而不是以限制的方式,图中用相同的标记表示相同的单元。
图1按照本发明的一个实施例,以方框图的形式画出一种数据处理系统。
图2按照本发明的一个实施例,以方框图的形式画出一种优先权控制器的一部分。
图3-10按照本发明的各个实施例,以流程图的形式说明把请求优先化的各方法。
本领域熟练人员显然知道,为简单和明晰起见,图中各单元没有必要按比例画出。例如,图中有些单元的尺寸,可以比其他单元画得更大,以便帮助对本发明各实施例的了解。
具体实施方式
在本文中,“总线(bus)”一词是指多个信号或导线,可用于传送一个或多个各种类型的信息,如数据、地址、控制、或状态。“断言(assert)”和“求反(negate)”两词,是在把信号、状态比特、或类似设备译为它的逻辑状态时使用,分别指译为它们的逻辑真或逻辑假状态。如果逻辑真状态是逻辑电平1,则逻辑假状态是逻辑电平0。又,如果逻辑真状态是逻辑电平0,则逻辑假状态是逻辑电平1。
括弧用于表明总线的导线或一个值的比特位置。例如,“总线60[0-7]”或“总线的导线60[0-7]”,表示总线60的8根较低次序的导线,而“地址比特[0-7]”或“ADDRESS 60[0-7]”表示某一地址值8个较低次序的比特。数字前的符号“$”表示该数字以16进制或基数16形式表示。数字前的符号“%”表示该数字以二进制或基数2形式表示。
图的说明
图1画出数据处理系统10的一个实施例。在一个实施例中,数据处理系统10包括处理器12、存储器14、其他总线主控器16、处理器18、以及可能的通过系统总线50相互双向耦合的其他总线主控器或总线受控器。在一个实施例中,处理器12包括通过总线38与指令超高速缓存22双向耦合的CPU 20。在一个实施例中,CPU 20通过总线36,与数据超高速缓存26、推入缓冲器28、和写入缓冲器30双向耦合。CPU 20通过信号46,与总线接口单元32(BIU 32)双向耦合。指令超高速缓存22通过信号48,与BIU 32双向耦合。数据超高速缓存26通过信号44,与BIU 32双向耦合。推入缓冲器28通过信号42,与BIU32双向耦合。写入缓冲器30通过信号40,与BIU 32双向耦合。在本发明的一个实施例中,BIU 32包括优先权控制电路34。注意,系统总线50可用作通信总线,在处理器12、存储器14、其他总线主控器16、处理器18,和任何其他与系统总线50耦合的总线主控器或总线受控器之间通信。
图2画出图1优先权控制电路34一部分的一个实施例。在本发明的一个实施例中,优先权控制电路34,包括用于分辨当前优先权电路60、优先权有效性监控器62的电路,以及用于规定优先权规则64的电路。注意,本发明的另外实施例,可以包括,也可以不包括优先权有效性监控器62。电路60与信号40、42、44、和46双向耦合。电路60包括比较电路61。电路60通过信号72,与电路64双向耦合。在本发明的一个实施例中,规定优先权规则64的电路,包括阈值寄存器66、副阈值寄存器68、和控制寄存器70。在本发明另外的实施例中,电路64可以包括附加的寄存器或其他电路。在本发明的一个实施例中,电路64与可选的优先权有效性监控器62双向耦合。在图2所示的本发明实施例中,电路60通过信号74,与优先权有效性监控器62双向耦合。
图3和4一并画出一种方式,按照该方式,优先权控制34(见图1)基于写入缓冲器30和推入缓冲器28的有效项目(entry)数,实现一种自适应优先权控制方法。本发明另外的实施例,可以显著改变画在图3和4的流程。用于图3和4的方法,仅仅作为一种可能的实现方式。现在参考图3,流程在开始椭圆100开始。之后,流程前进至判定菱形105,判定菱形105询问,是否有预取指令请求待决。如果没有预取指令待决,流程继续在该判定菱形上等待,直至有预取指令待决。一旦有预取指令待决,流程继续到判定菱形106,判定菱形106询问,在写入缓冲器30中是否有任何有效项目。如果在写入缓冲器30中有有效项目,则流程在判定菱形107上继续,判定菱形107询问,写入缓冲器30上的有效项目数,是否超过它的阈值。如果对判定菱形107的回答是超过,流程继续到判定菱形108,判定菱形108询问,预取指令缓冲器24中的有效项目数,是否在预取缓冲器24阈值之下。如果对判定菱形108的回答是不在阈值之下,则流程在步骤109上继续,步骤109完成写入缓冲器30向存储器的接入。流程继续从步骤109返回判定菱形105。如果在预取缓冲器24中,有效项目数是在阈值之下,那么流程在判定菱形110上继续,判定菱形110询问,用户是否已经对静态控制寄存器70编程,以便确定此时的优先权。如果用户已经编程,把优先权给予写入缓冲器30,那么,流程继续从判定菱形110到步骤109。但是,如果用户已经编程,使预取指令缓冲器24具有优先权,那么流程经圆圈B 103,继续从判定菱形110到步骤111(见图4)。步骤111提升待决的预取指令请求。然后,流程继续到步骤112,步骤112为预取指令缓冲器24完成存储器的接入。通过提升预取指令请求的优先权,它成为最高优先权的请求,因此在步骤112中执行。之后,流程继续从步骤112到椭圆101,流程结束。
现在回到判定菱形106,如果在写入缓冲器30中没有有效的项目,流程经圆圈C 104,在判定菱形113(见图4)上继续。同样,判定菱形107否定回答的路径,也经圆圈C 104,在判定菱形113上继续。判定菱形113询问,在推入缓冲器28中是否有任何有效项目。如果在推入缓冲器28中有有效项目,流程在判定菱形114上继续,判定菱形114询问,推入缓冲器28中的有效项目是否超过它的阈值。如果对判定菱形114的回答是超过,那么流程在判定菱形115上继续,判定菱形115询问,预取指令缓冲器24中的有效项目数是否在它的阈值之下。如果对判定菱形115的回答是在它的阈值之下,则流程在判定菱形116上继续,检查静态控制寄存器70中的值,以便确定用户是否已经对优先权编程。如果用户已经编程,使推入缓冲器28有优先权,那么流程继续从判定菱形116到步骤117,步骤117完成推入缓冲器28向存储器的接入。之后,流程经圆圈A 102,继续从步骤117到判定菱形105。此时在流程中,返回判定菱形105,对检查预取指令请求是否仍旧待决,是有好处的。因为可能存在如下的情形,预取指令请求已经通过判定菱形105的第一次待决,但不再待决了。现在返回判定菱形116,如果相反,静态控制寄存器70包含用户可编程的信息,该信息选择预取指令缓冲器24有优先权,那么流程继续从判定菱形116到步骤111,该步骤已经在本文的前面说明。
现在参考判定菱形113和114,如果这两个判定菱形任一个,都取否定回答的路径,则流程都在判定菱形118上继续。注意,此时的流程表明,在推入缓冲器28中没有有效项目,或有效项目数不超过推入缓冲器28的阈值。判定菱形118询问,是否有任何数据请求待决。如果没有数据请求待决,流程继续从判定菱形118到本文上面说明的步骤111。但是,如果有数据请求待决,流程继续从判定菱形118到判定菱形119,判定菱形119询问,预取指令缓冲器24中的有效项目数,是否在阈值之下。如果对判定菱形119的回答是在阈值之下,流程在判定菱形120上继续,判定菱形120询问,用户在控制寄存器70中已经编程的是什么优先权。如果用户已经选择预取指令缓冲器24具有优先权,流程继续从判定菱形120到本文上面说明的步骤111。但是,如果用户对控制寄存器70的编程,是选择数据请求具有优先权,那么流程继续从判定菱形120到步骤121,步骤121为待决数据请求完成存储器的接入。之后,流程经圆圈A 102,继续从步骤121到判定菱形105。现在参考判定菱形119,如果预取指令缓冲器24中的有效项目数,是在阈值之下,则流程在步骤121上继续,步骤121为待决数据请求完成存储器的接入。现在参考判定菱形118,如果没有数据请求待决,那么流程在步骤111上继续。现在参考判定菱形115,如果预取指令缓冲器24中的有效项目数,是在它的阈值之下,则流程在步骤117上继续,步骤117完成从推入缓冲器28到存储器的接入。之后,流程经圆圈A 102,继续从步骤117到判定菱形105。
图5和6画出优先权控制电路34(见图2)可以实现优先权切换方法的一种方式,以便缓解写入缓冲器30中的冲突。现在参考图5,流程在开始椭圆200开始。之后,流程前进至判定菱形201,判定菱形201询问,是否有任何读出请求待决。如果有读出请求待决,流程继续从判定菱形201到步骤202,把写入缓冲器30有效项目的地址比特,与待决读出请求的地址比较。再参考判定菱形201,如果没有读出请求待决,流程继续从判定菱形201到判定菱形203,判定菱形203询问,写入缓冲器30是否已经超过它的阈值。如果写入缓冲器30尚没有超过它的阈值,流程继续从判定菱形203到判定菱形204,判定菱形204询问,推入缓冲器28是否已经超过它的阈值。如果推入缓冲器28尚没有超过它的阈值,那么,流程继续从判定菱形204到判定菱形201,判定菱形201再次询问,是否有任何读出请求待决。此时,推入缓冲器既没有,写入缓冲器也没有超过它们各自的阈值,所以也无需为这两个缓冲器完成存储器的接入,但要再次完成检查,以便查明是否有读出请求变成待决。再参考判定菱形203,如果写入缓冲器30已经超过它的阈值,那么流程在判定菱形205上继续,判定菱形205询问,推入缓冲器28是否已经超过它的阈值。如果推入缓冲器28已经超过它的阈值,则流程继续从判定菱形205到判定菱形206,判定菱形206询问,控制寄存器70指示的是什么优先权。此时,两个缓冲器比它们各自已经存在的阈值有更多的项目(即,已经超过用户选择的阈值)。如果用户已经对控制寄存器70编程,选择写入缓冲器30具有优先权,那么流程继续从判定菱形206到步骤207,步骤207完成从写入缓冲器30到存储器的接入。再参考判定菱形205,如果推入缓冲器28的阈值尚没有被超过,那么流程也在步骤207上继续。再参考判定菱形206,如果用户已经对寄存器70编程,选择推入缓冲器28具有优先权,那么流程在步骤208上继续,步骤208完成从推入缓冲器28到存储器的接入。再参考判定菱形204,如果推入缓冲器28的项目数已经超过它的阈值,则流程在步骤208上继续。一旦步骤207和208完成各自向存储器的接入,流程继续到判定菱形201。
再参考步骤202,流程然后经圆圈B 210,在判定菱形209上继续(见图6)。判定菱形209询问,是否检测到冲突。注意,在本发明的一个实施例中,当写入缓冲器30的项目包含的数据,与待决读出请求相关的地址对应时,可以认为已经出现冲突。现在参考判定菱形209,如果检测到冲突,流程在步骤211上继续,步骤211提升写入缓冲器请求的优先权。之后,流程继续从步骤211到步骤212,步骤212把写入缓冲器30中先于冲突项目并包括冲突项目的项目,清除至主存储器(如图1中的存储器14),以便消除冲突的项目。然后,流程继续从步骤212到判定菱形213。现在参考判定菱形209,如果没有检测到冲突,流程也在判定菱形213上继续。判定菱形213询问,写入缓冲器30的阈值是否已经超过。如果写入缓冲器30的阈值尚没有被超过,流程继续从判定菱形213到判定菱形214,判定菱形214询问,推入缓冲器28的阈值是否已经被超过。如果推入缓冲器28的阈值尚没有被超过,流程在步骤215上继续,步骤215为读出请求完成存储器的接入。注意,因为两个缓冲器的阈值没有一个被超过,所以待决的读出请求应具有优先权。但是,如果推入缓冲器28的阈值已经被超过,则流程在判定菱形216上继续,判定菱形216用控制寄存器70来确定优先权。如果用户已经编程,使推入缓冲器28的优先权在待决的读出之上,那么,流程继续从判定菱形216到步骤217,步骤217完成从推入缓冲器28到存储器的接入。但是,如果用户已经对控制寄存器70编程,把优先权给予读出请求,那么流程继续从判定菱形216到步骤215,步骤215为读出请求完成存储器的接入。步骤215和217两者,经圆圈A 218,在判定菱形201上继续。
现在再参考判定菱形213,如果写入缓冲器30的阈值已经被超过,流程在判定菱形219上继续,判定菱形219询问,推入缓冲器28的阈值是否已被超过。如果推入缓冲器28的阈值尚没有被超过,流程在判定菱形220上继续,再次用控制寄存器70来确定优先权。如果用户已经对控制寄存器70编程,选择读出请求的优先权在写入缓冲器请求之上,那么,流程继续从判定菱形220到步骤215,步骤215为读出请求完成存储器的接入。但是,如果用户已经对控制寄存器70编程(见图2),使写入缓冲器30的优先权在待决读出请求之上,则流程在步骤221上继续,步骤221完成从写入缓冲器30到存储器的接入。现在参考判定菱形219,如果推入缓冲器28已经超过阈值,流程则在判定菱形222上继续,判定菱形222用控制寄存器70来确定优先权。如果用户已经对寄存器70编程,把优先权给予推入缓冲器28,那么流程经圆圈C223,在步骤217上继续。但是,如果用户已经对寄存器70编程,把优先权给予写入缓冲器30,那么流程在步骤221上继续。如果用户已经对寄存器70编程,把优先权给予读出请求,那么流程在步骤215上继续。现在参考步骤221和217,在完成存储器的接入之后,流程经圆圈218,在判定菱形201上继续。
图7和8画出优先权控制电路34(见图1)根据指令流程的变化,实现优先权提升的一种方式。流程在椭圆300开始。然后,流程前进至判定菱形301,判定菱形301询问,是否有流程取指令请求的变化待决。注意,在判定菱形301中所指的取指令请求,是导致流程变化的前一指令的结果。如果有流程取指令请求的变化待决,则流程继续从判定菱形301到步骤302,步骤302用控制寄存器70来确定流程变化的优先权。在随后整个流程的判定菱形中,都用控制寄存器70的信息来确定流程接入、预取缓冲器接入、写入缓冲器接入、和推入缓冲器接入的变化的相对优先权。现在参考判定菱形301,如果流程取指令请求的待决没有变化,那么流程继续检查该请求。然后,流程从步骤302前进至判定菱形303,判定菱形303询问,预取指令缓冲器24项目数是否已经超过预取指令缓冲器24的阈值。如果预取指令缓冲器24项目数确实已经超过预取指令缓冲器24的阈值,则流程在判定菱形304上继续,判定菱形304询问,是否有写入缓冲器30的请求待决。如果有写入缓冲器30的请求待决,流程继续从判定菱形304到判定菱形305,判定菱形305询问,根据步骤302完成的检查,流程取指令待决请求的变化是否有较高的优先权。如果流程取指令待决请求的变化,没有较高的优先权,那么,流程继续从判定菱形305,到达由于优先权由用户在控制寄存器70中选择而不执行优先权管理的步骤306。流程继续从步骤306到流程结束椭圆307。现在再参考判定菱形303,如果预取指令缓冲器24的项目数尚没有超过它的阈值,流程在判定菱形308上继续,判定菱形308询问,根据步骤302完成的检查,流程取指令待决请求的变化是否有较高的优先权。如果控制寄存器70没有指出流程取指令待决请求的变化有较高的优先权,那么,流程继续从判定菱形308到不执行优先权管理的步骤309。然后,流程继续从步骤309到结束307。现在参考判定菱形308,如果流程取指令待决请求的变化有较高的优先权,那么流程继续从判定菱形308到步骤310,步骤310把流程取指令待决请求的优先权,提升至待决的预取指令请求优先权之上。然后,从步骤310,流程终结在结束307上。
现在参考判定菱形305,如果流程取指令待决请求的变化有较高的优先权,那么流程经圆圈B 312,在步骤311上继续。在步骤311,流程取指令待决请求优先权的变化被提升至写入缓冲器30的待决请求之上。流程继续从步骤311到判定菱形313,判定菱形313询问,是否有推入缓冲器28的请求待决。如果推入缓冲器28没有请求待决,那么流程继续从判定菱形313到判定菱形314,判定菱形314询问,流程取指令待决请求的变化,是否有较高的优先权。如果流程取指令待决请求的变化没有较高的优先权,则流程继续从判定菱形314到不执行优先权管理的步骤315。然后,从步骤315,流程终结在结束307上。现在参考图7的判定菱形304,如果没有写入缓冲器30的请求待决,那么流程经圆圈A 350,在图8的判定菱形313上继续。现在参考判定菱形313,如果没有推入缓冲器28的请求待决,那么流程在判定菱形316上继续,判定菱形316询问,是否有数据请求待决。如果有数据请求待决,则流程继续从判定菱形316到判定菱形317,判定菱形317询问,流程取指令请求的待决变化,是否有较高的优先权。如果流程取指令请求的待决变化没有较高的优先权,则流程继续从判定菱形317到不执行优先权管理的步骤318。然后,从步骤318,流程终结在结束307上。现在参考判定菱形317,如果流程取指令请求的待决变化确实有较高的优先权,则流程在步骤319上继续,步骤319把流程取指令待决请求的优先权,提升至待决的预取指令请求之上。流程继续从步骤319到步骤320,步骤320为流程取指令请求的待决变化,完成向存储器的接入。现在再参考判定菱形316,如果没有数据请求待决,流程在步骤320继续。现在参考判定菱形314,如果流程取指令待决请求的变化,确实有较高的优先权,则流程在步骤321上继续,步骤321把流程取指令待决请求的优先权,提升至推入缓冲器28的待决请求之上。然后,流程从步骤321前进至判定菱形316。从步骤320,流程终结在结束307上。
图9和10以流程图的形式,画出一种可以与本发明一起使用的副阈值方式。副阈值是指当相应缓冲器尚没有达到它已编程的充满度电平或空度电平时的条件。现在参考图9,流程在椭圆400开始。然后流程在判定菱形401上继续,判定菱形401询问,写入缓冲器30是否空。如果写入缓冲器30不空,流程继续从判定菱形401到判定菱形402,判定菱形402询问,是否已经超过写入缓冲器30的阈值。如果尚没有超过写入缓冲器30的阈值,则流程从判定菱形402到判定菱形403,判定菱形403询问,推入缓冲器28是否空。如果推入缓冲器28不空,流程继续从判定菱形403到判定菱形404,判定菱形404询问,是否已经超过推入缓冲器28的阈值。如果已经超过推入缓冲器28的阈值,流程继续到达步骤405,步骤405完成从推入缓冲器28向存储器的接入。从步骤405,流程经圆圈G 475,在判定菱形401上继续。
现在参考判定菱形402,如果写入缓冲器30的阈值已经超过,流程在步骤406上继续,步骤406完成从写入缓冲器30到存储器的接入。流程继续从步骤406到判定菱形401。现在参考判定菱形403,如果推入缓冲器28是空的,流程继续从判定菱形403到判定菱形407,判定菱形407询问,预取指令缓冲器24的阈值是否已经超过。如果已经超过预取指令缓冲器24的阈值,流程在判定菱形408上继续,判定菱形408询问,根据预取指令缓冲器24和写入缓冲器30接近它们的副阈值电平的程度,预取指令缓冲器24和写入缓冲器30中哪一个应有优先权。如果通过使用副阈值,确定写入缓冲器30应有优先权,那么流程经圆圈C 410,在步骤409上继续(见图10)。但是,如果通过使用副阈值,确定预取指令缓冲器24应有优先权,那么流程经圆圈B 412,继续从判定菱形408到步骤411(见图10)。现在参考判定菱形407,如果预取指令缓冲器24的阈值尚没有被超过,流程在步骤413继续,步骤413为预取指令缓冲器24完成向存储器的接入。然后,流程经圆圈G 475,继续从步骤413到判定菱形401。现在参考判定菱形404,如果推入缓冲器28的阈值尚没有被超过,则流程经圆圈D 415,继续到达判定菱形414(见图10)。现在参考判定菱形401,如果写入缓冲器30是空的,流程继续到达判定菱形416,判定菱形416询问,推入缓冲器28是否空。如果推入缓冲器28不空,流程继续从判定菱形416到判定菱形417,判定菱形417询问,推入缓冲器28的阈值是否已被超过。如果推入缓冲器28的阈值尚没有被超过,流程从判定菱形417到判定菱形418,判定菱形418询问,预取指令缓冲器24的阈值是否已被超过。如果预取指令缓冲器24的阈值已经被超过,流程继续从判定菱形418到判定菱形419,判定菱形419用副阈值来确定推入缓冲器28和预取指令缓冲器24之间的优先权。现在参考判定菱形419,如果通过使用副阈值,确定推入缓冲器由于它的充满度而有优先权,流程经圆圈E 421,继续到达步骤420(见图10)。但是,如果副阈值的使用表明,不认为预取指令缓冲器24是充满的,从而有优先权,则流程经圆圈B 412,在步骤411上继续(见图10)。现在参考判定菱形418,如果预取指令缓冲器24的阈值尚没有被超过,流程经圆圈B 412,继续到达步骤411(见图10)。现在参考判定菱形417,如果推入缓冲器28的阈值已经被超过,流程经圆圈E 421,在步骤420上继续(见图10)。现在参考判定菱形416,如果推入缓冲器28是空的,流程经圆圈F 423,继续从判定菱形416到达判定菱形422(见图10)。
现在参考图10,圆圈D 415前进至判定菱形414,判定菱形414询问,预取指令缓冲器24的阈值是否已被超过。如果预取指令缓冲器24的阈值尚没有被超过,流程继续从判定菱形414到达步骤411,步骤411提升预取指令的优先权。现在参考判定菱形414,如果如果预取指令缓冲器24的阈值已经被超过,流程继续从判定菱形414到判定菱形424,判定菱形424用副阈值来确定写入缓冲器30、推入缓冲器28、和预取指令缓冲器24之间的优先权。现在参考判定菱形424,如果用写入缓冲器30的充满度与它的副阈值比较,确定写入缓冲器30应有优先权,流程继续到达步骤409,步骤409提升写入缓冲器30的优先权。如果用推入缓冲器28的充满度与它的副阈值比较,确定推入缓冲器28应有优先权,那么流程继续从判定菱形424到步骤420,步骤420提升推入缓冲器28的优先权。同样,如果用预取指令缓冲器24的充满度与它的副阈值比较,确定预取指令缓冲器24应有优先权,那么流程继续从判定菱形424到步骤411,步骤411提升预取指令缓冲器24的优先权。注意,可以用比较电路61和优先权控制34(见图2),对来自各种资源(如22、24、26、28、和30)的信息(如充满度、空度),以及预先确定或由用户可编程存储电路预先编程的优先权准则等信息(如,阈值电平、副阈值电平、从寄存器66、68、和70接收的优先权的决胜信息),进行必要比较。
流程继续从圆圈F 423到判定菱形422,判定菱形422询问,预取指令缓冲器24是否充满。如果预取指令缓冲器24没有充满,流程继续从判定菱形422到步骤411,步骤411提升预取指令缓冲器24的优先权。如果预取指令缓冲器24是充满的,流程经圆圈A 426,继续从判定菱形422到判定菱形425(见图9)。同样,流程从步骤409、步骤420、和步骤411,都经圆圈A 426,继续到达判定菱形425(见图9)。
现在再参考图9,判定菱形425询问,流程取指令请求或数据请求是否有变化。如果没有,流程继续从判定菱形425到判定菱形401。但是,如果流程取指令请求或数据请求有变化,流程继续从判定菱形425,或者为数据请求而到达开始椭圆200(见图5),或者为流程取指令请求的变化而到达开始椭圆300(见图7)。
图10中,某一缓冲器的优先权一旦已经在步骤409、411、或420中被提升,可以完成相应的缓冲器接入。
操作说明
当今的数据处理器,能够有多个请求源共享存储器资源。例如,参考图1,可以让多个资源(如,指令超高速缓存22、预取指令缓冲器24、数据超高速缓存26、推入缓冲器28、和写入缓冲器30)同时请求接入存储器14。注意,指令超高速缓存22和数据超高速缓存26的请求,可以是再充填的请求。还可以让其他资源(如其他总线主控器16)也同时请求接入存储器14。例如,其他总线主控器16可以包括直接存储器存取(DMA)装置。在本发明另外的实施例中,任何电路类型都可以试图接入共享的存储器资源,如存储器14。还有,重要的是要指出,各种资源为接入共享存储器资源如存储器14的竞争,可以在比CPU 20低得多的频率上运行,因此能因延迟接入共享资源而在CPU 20中产生停顿(stall)。现在参考图1,虽然存储器14画在处理器12之外,但在本发明另外的实施例中,画在图1的电路的任何部分,都可以在同一集成电路芯片(die)上实现,或者,可以分为两个或多个分离的集成电路芯片。
现在参考图1和2,在本发明的一个实施例中,优先权控制电路34监控来自CPU 20的信号,并在把优先权分配给请求接入并使用系统总线50的请求之前,动态地检查资源的使用率。优先权控制电路34的目的,是确定每一竞争资源(22、24、26、28、30)离导致CPU 20停顿有多近。在本发明的一个实施例中,将对优先权控制电路34编程,把优先权给予竞争总线50的资源,因为总线50是第二位最可能导致CPU 20停顿的根源。例如,优先权控制34必须查明写入缓冲器30的充满情况,因为充满的写入缓冲器30能够导致CPU 20停顿。同样,充满的推入缓冲器28能够导致CPU 20停顿,因此,优先权控制电路34也将监控推入缓冲器28的充满情况。优先权控制电路34还将监控预取指令缓冲器24的充满情况,以确保预取指令缓冲器24不致太空而导致CPU 20停顿。
在本发明的一个实施例中,优先权控制电路34监控指令超高速缓存22或CPU 20,以便确定何时出现指令流程的变化。优先权控制电路34需要检测指令流程变化的原因,在于指令流程的变化,将导致预取指令缓冲器24的内容不再可用,并要求为新的指令流程预取新的指令。优先权控制电路34监控数据超高速缓存26,以便检测何时出现数据超高速缓存的失败(miss),从而检测必须用系统总线50来再填充数据超高速缓存。如果出现数据超高速缓存失败,CPU 20可能停顿,直至通过系统总线50检索数据为止。因此,需要使优先权控制电路34能动态地并灵活地调整各种资源(如22、24、26、28、30)之间的优先权,这些资源为使用系统总线50而竞争。
本发明能在数据处理系统10中实现动态的并自适应的优先权管理。现在参考图2,在一个实施例中,本发明能根据写入缓冲器30和推入缓冲器28的有效项目数,实现动态的并自适应的优先权管理。注意,推入缓冲器28还可以调用回写或反向复制缓冲器。写入缓冲器30可以作为先进先出(FIFO)队列或缓冲器实现,该先进先出队列或缓冲器,能够使有连续写入标记的待决的写入失败或写入延期,以便使性能最优化。当写入缓冲器30被启动时,数据超高速缓存26中失败存储操作,或有连续写入标记的存储操作,被放进写入缓冲器30,而从CPU 20的接入则被中断。这些得到缓冲的写入被保持,供稍后向系统总线50传送。如果待决的指令超高速缓存22填充被请求,同时写入缓冲器30有有效的项目,那么,优先权控制电路34根据写入缓冲器30的有效项目数分配优先权。在把写入缓冲器30清空到预定的阈值(例如,写入缓冲器30大小的一半)后,优先权可以切换,从而可以运行待决的指令超高速缓存22填充的请求。在完成指令超高速缓存22填充的请求后,或者,如果写入缓冲器30的有效项目数变成大于阈值,可以把优先权反向切换,运行来自写入缓冲器30的写入。本发明另外的实施例,可以按使用电路64(见图2)的用户可编程部分的无论何种方式,把来自资源22、24、26、28、和30的请求优先化。这里说明的优先化,就是这许多方式中一种可能的优先化方式。
参考图3和4及图9和10,这些图根据写入缓冲器30和推入缓冲器28的有效项目数,实现一种自适应优先权控制的可能的方案。但再次指出,本发明另外的实施例,可以按任何方式优先化。
优先权控制电路34还可以实现优先权切换,以便缓解写入缓冲器30中的冲突。这种优先权切换方法的一种可能的实施方式,示于图5和6。对数据超高速缓存26中读出的失败,把写入缓冲器30中有效项目的地址比特,与读出失败的地址比较(例如通过比较电路61),以便检测冲突。如果检测到冲突,则写入缓冲器30中在冲突项目之前并包括冲突项目的所有项目,都被清除,送至主存储器(如存储器14)。然后,优先权控制电路34可以把优先权切换到数据超高速缓存26的读出失败,以便运行,并且在运行数据超高速缓存26的读出失败之后,把写入缓冲器30的剩余项目写入主存储器。
通过增加写入缓冲器30的阈值,可以在达到阈值之前,把更多的写入保持在缓冲器中更长的时间。因此,本发明动态的和可编程的阈值特性,能使项目在写入缓冲器30中存在更长的时间,不致影响CPU 20的性能。这样,通过写入归并(write merging)(即在写入缓冲器30中的写入命中(write hits)),可以使外部总线(如系统总线50)的业务量进一步最小化。
在本发明另外的实施例中,优先权控制电路34可以根据预取指令缓冲器24的有效项目数和根据指令的大小,实现动态优先权管理。在一个实施例中,可以把指令超高速缓存22读出失败请求,分类为预取顺序指令、取顺序指令、或流程条件的变化。可以对预取指令缓冲器24的阈值编程。能够根据阈值及指令的大小(如16比特、32比特、64比特),运行预取顺序指令请求。
在本发明的一个实施例中,优先权控制电路34可以根据CPU 20中的流程条件变化,实现优先权的提升。流程条件的变化,可以因推测或非推测的分支目标取数、异常取数、或转移(speculative or non-speculative branch target fetch,exception fetch,or jumps)而引起。CPU 20流程信号的变化,可以被优先权控制电路34用来提升因指令超高速缓存22流程变化而产生的读出失败的优先权。如果流程的变化导致指令超高速缓存22中的失败,可以动态地增加写入缓冲器30的阈值,从而使指令超高速缓存22向主存储器14提出请求。如果增加的阈值在当前写入缓冲器30有效项目数之上,通过增加阈值,可以降低写入缓冲器30的相对优先权。在运行指令超高速缓存22的流程请求变化之后,可以降低写入缓冲器30的阈值,并运行来自写入缓冲器30的写入,直至写入缓冲器30在运行指令超高速缓存22另一个顺序请求之前,达到它的阈值。可以对优先权控制电路34编程,使流程变化请求的优先权在待决的顺序预取指令失败之上。这样做,对CPU 20的频率高于主存储器(如存储器14)频率和当流程变化发生时预取指令请求尚未完成的情形,是有利的。注意,图7和8画出一种可能方式,其中,优先权控制电路34可以根据流程条件的变化,实施优先权提升方案。本发明另外的实施例,可以接任何方式,实现这样的一种方案。
注意,优先权控制电路34可以实施多种多样的动态地改变优先权方案的方式。例如,可以用控制寄存器70(见图2)对广泛的各种优先权方案编程,其中的一些或全部可以由用户利用软件控制来动态地改变。注意,在本发明另外的实施例中,用优先权控制电路34实施的优先权方案,可以在处理器12运行时由用户进行掩模可编程、动态可编程,本方案也可以在一次性可编程寄存器中实现,或者在任何其他类型存储媒质或电路中实现,这类媒质或电路允许处理器12的用户,至少一次性地选择优先权方案。
现在参考图2,阈值寄存器66,可以为正在追求接入系统总线50的处理器12内每一资源,存储一个或多个阈值。优先权控制电路34可以把副阈值寄存器68用作指示器,指示处理器12中各种资源(22、24、26、28、30),离到达它们各自存储在阈值寄存器66中的阈值有多近。因此,当各种资源尚未达到它们的阈值时,优先权控制电路34可以使用副阈值寄存器68,通报有关优先权的判定。现在参考图2,比较电路61可供电路60使用,以便把存储在阈值寄存器66中的阈值,与从预取指令缓冲器24、推入缓冲器28、和写入缓冲器30来的状态值比较。在本发明的一个实施例中,阈值寄存器66存储一个规定每一缓冲器资源(24、28、30)充满度电平的阈值。这些缓冲器(24、28、30)向比较电路61提供的状态信息,指示相应缓冲器当前的充满程度。
注意,向预取指令缓冲器24的请求被用来充填该缓冲器,而且,只要有效项目数大于预定的阈值,缓冲器便超过它的阈值。相反,来自推入缓冲器28和写入缓冲器30的请求,是为清空这些缓冲器而产生的。只要它们各自的有效项目数已经超过它们各自的阈值,则产生的请求意味着需要更高的优先权。
在本发明的一个实施例中,可以使优先权控制电路34适合对同时的副阈值请求,实现可编程的指令/数据优先权。在同时请求使用系统总线50的情形中,如果预取指令缓冲器24已接近充满(即有较低的优先权),而写入缓冲器30有少量项目(即小于它的阈值),可以根据在两个缓冲器中有效项目数和相应阈值的差,对优先权控制电路34的作用编程。换句话说,如果缓冲器24已经超过它的阈值(意指到达充满度),而缓冲器28和30尚没有超过它们各自的阈值(意指它们还没有达到充满状态),那么,优先权控制电路34可以使用存储在副阈值寄存器68中的副阈值,以便确定缓冲器24、28、和30之间相应的优先权。举例说,如果预取指令缓冲器24正在从慢速存储器取指令,而数据请求的数据位于快速存储器中,那么,可以对优先权控制电路34编程,使存在副阈值条件的情况下,给予预取指令缓冲器24的指令请求的优先权,在写入缓冲器30或推入缓冲器28数据请求的优先权之上。在另外的数据处理系统中,当存在副阈值条件时,最好把优先权给予写入缓冲器30,以避免将来与写入缓冲器项目的读出冲突。
现在参考图2,本发明的一些实施例可以利用优先权有效性监控器62,监控处理器12的性能并自适应地修改优先权控制电路34中的优先权程序。因此,优先权有效性监控器62可以根据处理器12的性能,调整优先权控制电路34的优先权方案。在图2所示实施例中,优先权有效性监控器62,通过电路60内的监控信号,监控系统的性能。优先权有效性监控器62,通过修改阈值寄存器66和/或副阈值寄存器68和/或控制寄存器70中的值,修改优先权控制电路34的优先权。注意,规定优先权规则64的电路,可以包括其他电路,这些电路可以是,也可以不是用户可编程的,但在规定处理器12内使用的优先权方案中,可以用于规定或帮助规定。
虽然本文已经说明处理器12的各种优先权方案,本发明另外的实施例可以使用任何优先权方案。因此,优先权控制电路34可以在处理器12内任何数量的资源(如22、24、26、28、和30)间,实现任何优先权方案,这些资源为任何公共资源(如系统总线50)而竞争。在一个实施例中,优先权控制电路34实现的优先权方案是,使因共享资源如系统总线50的冲突接入而导致CPU 20停顿的时间最小化。本发明另外的实施例,可以通过优先权控制电路34,调整使用的优先权方案,以便使某些其他选择的准则最小化或最大化。例如,可以按某些不同于CPU 20停顿时间的别的方式,测量CPU 20的性能。例如,一个可供优先权控制电路34使用的准则是,系统总线50上的业务量最小化目标。本发明另外的实施例可以按需要,选择处理器12和数据处理系统10的任何目标。然后,用任何需要的准则(如,CPU 20的停顿、或系统总线的使用率),测量该选择的目标。现在参考图2,虽然本发明已就阈值方面说明,但本发明另外的实施例可以使用别的机构来衡量和规定所选资源需要的充满度或空度。例如,某些资源(如数据超高速缓存26和指令超高速缓存22)不用阈值。替代值可以存储在存储电路(如控制寄存器70)中,其后可供优先权控制电路34用来确定指令超高速缓存22和数据超高速缓存26之间使用的优先权方案。注意,在本发明另外的实施例中,用户可以通过系统总线50或其他接入处理器12的集成电路终端(未画出),向优先权控制电路34提供程序信息。
虽然本发明已就特定的传导类型或电势的极性说明,但本领域熟练人员应当清楚,该种传导类型和电势的极性,是可以反过来的。
在前面的说明中已经参照特定的实施例说明本发明。但是,本领域熟练人员应当清楚,在不偏离所附权利要求书范围情况下,可以作各种修改和变化。因此,应当认为,说明书与图是示例性的,而不是限制性的,且所有这类修改都被认为包括在本发明的范围之内。
上面已经对特定的实施例,说明了利益、其他优点、和解决问题的方案。但是,利益、优点、解决问题的方案、和任何能导致任何利益、优点、或方案的出现或成为更显著的要素,都不能认为是任何或所有权利要求关键的、需要的、和本质的特性或要素。如在本文中所使用的,“包括”、“包括着”、及其任何变体,都指涵盖非专有的包含关系,以使某种处理、方法、条文、或包含单元表的某一设备,不仅包括表中的单元,也可能包括没有明显列入表中的单元或本来属于该处理、方法、条文、或设备的单元。

Claims (15)

1.一种数据处理器,包括:
中央处理单元;
与中央处理单元耦合的第一请求资源,适于请求使用通信总线,以便发送或接收数据;
与中央处理单元耦合的第二请求资源,适于请求使用通信总线,以便发送或接收数据;和
与中央处理单元、第一请求资源、和第二请求资源耦合的总线接口单元,适于与通信总线耦合,该总线接口单元包括:
优先权控制器,用于从第一请求资源接收第一请求以及从第二请求资源接收第二请求,并根据对应于第一请求资源和第二请求资源之一的阈值,把优先权分配给第一请求和第二请求的每一个,其中所述优先权控制器包括存储电路,用于存储与第一请求资源相对应的第一资源阈值、与第二请求资源相对应的第二资源阈值、以及与第一请求资源和第二请求资源相对应的控制值。
2.如权利要求1所述的数据处理器,其中如果第一请求资源的有效项目数超过第一资源阈值并且第二请求资源的有效项目数超过第二资源阈值,则优先权控制器使用所述控制值分配优先权给第一请求和第二请求的每一个。
3.如权利要求1所述的数据处理器,其中存储电路包括用户可编程寄存器。
4.如权利要求1所述的数据处理器,其中优先权控制器还包括优先权有效性监控器,用于估计并有选择地修改优先权控制器的性能。
5.如权利要求4所述的数据处理器,其中有选择地修改优先权控制器的性能包括有选择地修改所述阈值。
6.一种数据处理器,包括:
处理单元;
与处理单元耦合的超高速缓存;
与处理单元耦合的写入缓冲器;
与处理单元、超高速缓存、和写入缓冲器耦合的优先权控制器,该优先权控制器包括:
优先权规则说明电路,其中,优先权规则说明电路包括第一可编程阈值寄存器,用于存储与写入缓冲器对应的第一阈值;和
与优先权规则说明电路耦合的当前优先权方案电路,该当前优先权方案电路从超高速缓存和写入缓冲器接收向存储器接入的请求,并至少根据该第一阈值,把向存储器的接入请求优先化,以及
与超高速缓存耦合的推入缓冲器,
其中优先权规则说明电路还包括第二可编程阈值寄存器,用于存储与推入缓冲器对应的第二阈值。
7.一种数据处理器,包括:
处理单元;
与处理单元耦合的超高速缓存;
与处理单元耦合的写入缓冲器;
与处理单元、超高速缓存、和写入缓冲器耦合的优先权控制器,该优先权控制器包括:
优先权规则说明电路,其中,优先权规则说明电路包括第一可编程阈值寄存器,用于存储与写入缓冲器对应的第一阈值;和
与优先权规则说明电路耦合的当前优先权方案电路,该当前优先权方案电路从超高速缓存和写入缓冲器接收向存储器接入的请求,并至少根据该第一阈值,把向存储器的接入请求优先化,
其中优先权规则说明电路包括用于存储与写入缓冲器对应的副阈值的副阈值寄存器。
8.一种在数据处理器中使请求优先化的方法,该数据处理器有处理单元、与处理单元耦合的超高速缓存、与处理单元耦合的写入缓冲器、和与处理单元、超高速缓存、及写入缓冲器耦合的总线接口单元,该总线接口单元适于与通信总线耦合,并为超高速缓存和写入缓冲器使用通信总线的请求服务,所述方法包括:
从超高速缓存接收第一通信总线的接入请求,和从写入缓冲器接收第二通信总线的接入请求;以及
使用与写入缓冲器对应的第一阈值,确定第一和第二通信总线的接入请求中哪一个获得优先权;
其中,数据处理器包括与超高速缓存和总线接口单元耦合的推入缓冲器,所述总线接口单元适于为推入缓冲器使用通信总线的请求服务,所述使请求优先化的方法还包括:
从推入缓冲器接收第三通信总线的接入请求;以及
使用与推入缓冲器对应的第二阈值和第一阈值,确定第一、第二和第三通信总线的接入请求中哪一个获得优先权。
9.如权利要求8所述的方法,还包括:
监控数据处理器的操作;以及
响应所述监控,有选择地修改第一阈值。
10.一种在数据处理器中使用的方法,该数据处理器有处理单元、与处理单元耦合的写入缓冲器、和与处理单元、超高速缓存、及写入缓冲器耦合的总线接口单元,其中,该总线接口单元适于与通信总线耦合,并为写入缓冲器和处理单元使用通信总线的请求服务,所述方法包括:
接收与预取指令缓冲器对应的预取指令请求;
把写入缓冲器内的有效项目数,与写入缓冲器阈值比较,获得第一比较结果;
把预取指令缓冲器内的有效项目数,与预取指令缓冲器阈值比较,获得第二比较结果;和
根据第一和第二比较结果,向预取指令请求分配优先权。
11.如权利要求10所述的方法,还包括:
接收第二预取指令请求;以及
在接收第二预取指令请求之前修改写入缓冲器阈值和预取指令缓冲器阈值中的至少一个。
12.如权利要求10所述的方法,其中分配优先权进一步基于与写入缓冲器和预取指令缓冲器中的至少一个相对应的副阈值。
13.一种数据处理器,包括:
处理单元;
与处理单元耦合的写入缓冲器;和
与处理单元和写入缓冲器耦合的总线接口单元,其中,该总线接口单元适于与通信总线耦合,并为写入缓冲器和处理单元使用通信总线的请求服务,该总线接口单元包括:
接收装置,用于接收与预取指令缓冲器对应的预取指令请求;
与接收装置耦合的第一比较装置,用于把写入缓冲器内的有效项目数,与写入缓冲器阈值比较,获得第一比较结果;
与接收装置耦合的第二比较装置,用于把预取指令缓冲器内的有效项目数,与预取指令缓冲器阈值比较,获得第二比较结果;和
与第一和第二比较装置耦合的优先权装置,用于根据第一和第二比较结果,向预取指令请求分配优先权。
14.一种在数据处理器中使用的方法,该数据处理器有处理单元和与处理单元耦合的总线接口单元,该处理单元有预取指令缓冲器,该总线接口单元适于与通信总线耦合,并为预取指令缓冲器和处理单元使用通信总线的请求服务,所述方法包括:
接收取指令流程请求的变化;
把预取指令缓冲器内的项目数,与预取指令缓冲器阈值比较;和
响应项目数的比较,有选择地改变取指令流程请求的变化相对于预取指令缓冲器的使用通信总线请求的优先权。
15.一种在数据处理器中使请求优先化的方法,该数据处理器有总线接口单元、第一请求资源、和第二请求资源,该总线接口单元适于与通信总线耦合,并为使用通信总线的请求服务,其中,该第一和第二请求资源为使用通信总线提出请求,所述方法包括:
有选择地从第一资源接收第一请求和有选择地从第二资源接收第二请求;
如果收到第一请求和第二请求,用对应于第一资源和第二资源之一的一个阈值,向第一和第二请求分配优先权;和
如果没有收到第一请求和第二请求,则:
把第一请求资源内的项目数,与第一请求资源的阈值比较,还把第二请求资源内的项目数,与第二请求资源的阈值比较;和
如果第一请求资源内的项目数,落在第一请求资源的阈值之下,且第二请求资源内的项目数,落在第二请求资源的阈值之下,则用对应于第一请求资源和第二请求资源之一的一个副阈值,向第一和第二请求分配优先权。
CN028178076A 2001-08-10 2002-07-24 具有自适应优先权控制器的数据处理器及其方法 Expired - Fee Related CN1554050B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/927,123 2001-08-10
US09/927,123 US6832280B2 (en) 2001-08-10 2001-08-10 Data processing system having an adaptive priority controller
PCT/US2002/024161 WO2003014945A2 (en) 2001-08-10 2002-07-24 Data processing system having an adaptive priority controller

Publications (2)

Publication Number Publication Date
CN1554050A CN1554050A (zh) 2004-12-08
CN1554050B true CN1554050B (zh) 2010-06-16

Family

ID=25454218

Family Applications (1)

Application Number Title Priority Date Filing Date
CN028178076A Expired - Fee Related CN1554050B (zh) 2001-08-10 2002-07-24 具有自适应优先权控制器的数据处理器及其方法

Country Status (7)

Country Link
US (1) US6832280B2 (zh)
EP (1) EP1419447A2 (zh)
KR (1) KR20040054673A (zh)
CN (1) CN1554050B (zh)
AU (1) AU2002355533A1 (zh)
TW (1) TW565769B (zh)
WO (1) WO2003014945A2 (zh)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7114086B2 (en) * 2002-01-04 2006-09-26 Ati Technologies, Inc. System for reduced power consumption by monitoring instruction buffer and method thereof
JP3825328B2 (ja) * 2002-01-23 2006-09-27 Necエレクトロニクス株式会社 プロセッサ合成装置、システムlsi合成装置、プロセッサ合成方法、システムlsi合成方法、及び記録媒体
US6832296B2 (en) * 2002-04-09 2004-12-14 Ip-First, Llc Microprocessor with repeat prefetch instruction
KR100480605B1 (ko) * 2002-07-25 2005-04-06 삼성전자주식회사 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기
US7062582B1 (en) 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
CN100489813C (zh) * 2003-04-21 2009-05-20 智慧第一公司 可选择性撤回预取的方法
US6871246B2 (en) * 2003-05-07 2005-03-22 Freescale Semiconductor, Inc. Prefetch control in a data processing system
US7194582B1 (en) * 2003-05-30 2007-03-20 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US7177985B1 (en) * 2003-05-30 2007-02-13 Mips Technologies, Inc. Microprocessor with improved data stream prefetching
US20060004965A1 (en) * 2004-06-30 2006-01-05 Tu Steven J Direct processor cache access within a system having a coherent multi-processor protocol
US7398335B2 (en) * 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
US7469332B2 (en) * 2005-03-02 2008-12-23 International Business Machines Corporation Systems and methods for adaptively mapping an instruction cache
JP4847036B2 (ja) * 2005-03-30 2011-12-28 キヤノン株式会社 バスアクセスを調停する制御装置およびデータ処理装置の制御方法
US7752488B2 (en) * 2006-01-06 2010-07-06 International Business Machines Corporation Method to adjust error thresholds in a data storage and retrieval system
US9304773B2 (en) * 2006-03-21 2016-04-05 Freescale Semiconductor, Inc. Data processor having dynamic control of instruction prefetch buffer depth and method therefor
US20080034146A1 (en) * 2006-08-04 2008-02-07 Via Technologies, Inc. Systems and Methods for Transactions Between Processor and Memory
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
US7627714B2 (en) * 2006-08-22 2009-12-01 International Business Machines Corporation Apparatus, system, and method for preventing write starvation in a partitioned cache of a storage controller
US8095816B1 (en) 2007-04-05 2012-01-10 Marvell International Ltd. Processor management using a buffer
US8443187B1 (en) 2007-04-12 2013-05-14 Marvell International Ltd. Authentication of computing devices in server based on mapping between port identifier and MAC address that allows actions-per-group instead of just actions-per-single device
US8612972B2 (en) 2007-06-27 2013-12-17 Microsoft Corporation Running add-on components in virtual environments
US8862590B2 (en) 2007-06-29 2014-10-14 Microsoft Corporation Flexible namespace prioritization
US8321706B2 (en) 2007-07-23 2012-11-27 Marvell World Trade Ltd. USB self-idling techniques
US20090123814A1 (en) * 2007-10-09 2009-05-14 Mason Cabot Power source and method of managing a power source
US8171309B1 (en) 2007-11-16 2012-05-01 Marvell International Ltd. Secure memory controlled access
US8260990B2 (en) * 2007-11-19 2012-09-04 Qualcomm Incorporated Selective preclusion of a bus access request
US8255631B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Priority-based prefetch requests scheduling and throttling
US20090261785A1 (en) * 2008-03-27 2009-10-22 Mason Cabot Method for managing a modular power source
US20100136405A1 (en) * 2008-04-02 2010-06-03 Karl Johnson Battery pack with optimized mechanical, electrical, and thermal management
WO2009124222A2 (en) * 2008-04-02 2009-10-08 Mission Motor Company System and method of integrated thermal management for a multi-cell battery pack
US8510560B1 (en) 2008-08-20 2013-08-13 Marvell International Ltd. Efficient key establishment for wireless networks
KR101595043B1 (ko) * 2008-09-18 2016-02-17 마벨 월드 트레이드 리미티드 적어도 부분적으로 부팅 동안에 어플리케이션들을 메모리에 프리로딩하는 방법
US8316976B2 (en) * 2008-11-20 2012-11-27 Mission Motor Company Frame for a ride-on vehicle having a plurality of battery packs
US7613850B1 (en) 2008-12-23 2009-11-03 International Business Machines Corporation System and method utilizing programmable ordering relation for direct memory access
JP5565778B2 (ja) * 2009-01-05 2014-08-06 マーベル ワールド トレード リミテッド 不揮発性メモリデバイスを利用するハイバネートまたはサスペンド方法およびシステム
US8549630B2 (en) * 2010-03-05 2013-10-01 The Regents Of The University Of California Trojan-resistant bus architecture and methods
CN101833490B (zh) * 2010-03-31 2012-05-30 卡斯柯信号有限公司 基于软硬件相异性的二取二安全平台的信息处理方法
US8312954B2 (en) 2010-04-22 2012-11-20 Mission Motor Company Frame for a two wheeled electric vehicle
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
JP5733680B2 (ja) * 2011-01-20 2015-06-10 日本電気株式会社 コマンド実行装置、コマンド実行システム、コマンド実行方法およびコマンド実行プログラム
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
US8490107B2 (en) 2011-08-08 2013-07-16 Arm Limited Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
CN102955753B (zh) * 2011-08-30 2016-08-03 安凯(广州)微电子技术有限公司 一种迟滞型数据流控制电路
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US8930601B2 (en) * 2012-02-27 2015-01-06 Arm Limited Transaction routing device and method for routing transactions in an integrated circuit
US9195511B2 (en) * 2012-03-05 2015-11-24 Accenture Global Services Limited Differentiated service-based graceful degradation layer
US9715512B2 (en) * 2012-04-27 2017-07-25 Verisign, Inc. Bulk management of registry objects
US9239794B1 (en) * 2012-06-11 2016-01-19 Google Inc. Managing a prefetch buffer with probabilistic access predictions
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
US9836306B2 (en) 2013-07-31 2017-12-05 Marvell World Trade Ltd. Parallelizing boot operations
US9477679B2 (en) * 2013-09-20 2016-10-25 Google Inc. Programmatically choosing preferred storage parameters for files in large-scale distributed storage systems
US10039112B2 (en) 2014-10-10 2018-07-31 Huawei Technologies Co., Ltd Methods and systems for provisioning a virtual network in software defined networks
US9792147B2 (en) * 2015-07-02 2017-10-17 International Business Machines Corporation Transactional storage accesses supporting differing priority levels
US20170075571A1 (en) * 2015-09-11 2017-03-16 Media Tek Inc. Memory device and control method thereof
US10862818B2 (en) * 2015-09-23 2020-12-08 Huawei Technologies Co., Ltd. Systems and methods for distributing network resources to network service providers
US10979412B2 (en) 2016-03-08 2021-04-13 Nxp Usa, Inc. Methods and apparatus for secure device authentication
US10152237B2 (en) 2016-05-05 2018-12-11 Micron Technology, Inc. Non-deterministic memory protocol
US11567885B2 (en) 2016-05-12 2023-01-31 Lg Electronics Inc. System and method for optimizing DRAM bus switching using LLC
US10534540B2 (en) 2016-06-06 2020-01-14 Micron Technology, Inc. Memory protocol
JP2017228172A (ja) * 2016-06-23 2017-12-28 富士通株式会社 情報処理システム
US11003602B2 (en) * 2017-01-24 2021-05-11 Micron Technology, Inc. Memory protocol with command priority
US11243694B2 (en) 2020-01-29 2022-02-08 Samsung Electronics Co., Ltd. Grouping key value object IOs to improve IO performance for key-value storage devices
US11972361B2 (en) 2020-01-29 2024-04-30 Samsung Electronics Co., Ltd. Performance optimization of object grouping schema in a network key-value storage device using adaptive regression
US11204802B2 (en) 2020-04-27 2021-12-21 International Business Machines Corporation Adjusting a dispatch ratio for multiple queues
CN115526760A (zh) * 2021-06-25 2022-12-27 英特尔公司 用于动态地改变高速缓存中的数据优先级的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5696938A (en) * 1994-08-31 1997-12-09 Vlsi Technology, Inc. Computer system permitting mulitple write buffer read-arounds and method therefor
US6014722A (en) * 1993-05-04 2000-01-11 Motorola, Inc. Data communication system for controlling prioritization and transfer of data and method therefor
US6145033A (en) * 1998-07-17 2000-11-07 Seiko Epson Corporation Management of display FIFO requests for DRAM access wherein low priority requests are initiated when FIFO level is below/equal to high threshold value
US6233645B1 (en) * 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4729093A (en) 1984-09-26 1988-03-01 Motorola, Inc. Microcomputer which prioritizes instruction prefetch requests and data operand requests
US5553268A (en) 1991-06-14 1996-09-03 Integrated Device Technology, Inc. Memory operations priority scheme for microprocessors
DE69223304T2 (de) * 1991-09-27 1998-06-18 Sun Microsystems Inc Arbitrierungsverriegelungverfahren und -vorrichtung für einen entfernten Bus
US5577230A (en) 1994-08-10 1996-11-19 At&T Corp. Apparatus and method for computer processing using an enhanced Harvard architecture utilizing dual memory buses and the arbitration for data/instruction fetch
JPH08221311A (ja) 1994-12-22 1996-08-30 Sun Microsyst Inc スーパースカラプロセッサにおけるロードバッファ及びストアバッファの優先順位の動的切換え
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
US5745772A (en) * 1996-08-02 1998-04-28 Micron Electronics, Inc. Advanced programmable interrupt controller
US6032232A (en) 1997-05-29 2000-02-29 3Com Corporation Multiported memory access system with arbitration and a source burst limiter for blocking a memory access request
US6108738A (en) * 1997-06-10 2000-08-22 Vlsi Technology, Inc. Multi-master PCI bus system within a single integrated circuit
US6058461A (en) 1997-12-02 2000-05-02 Advanced Micro Devices, Inc. Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
US6185637B1 (en) * 1998-04-15 2001-02-06 Advanced Micro Devices, Inc. System for implementing an adaptive burst length for burst mode transactions of a memory by monitoring response times for different memory regions
US6671752B1 (en) * 2000-08-28 2003-12-30 International Business Machines Corporation Method and apparatus for bus optimization in a PLB system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6014722A (en) * 1993-05-04 2000-01-11 Motorola, Inc. Data communication system for controlling prioritization and transfer of data and method therefor
US5696938A (en) * 1994-08-31 1997-12-09 Vlsi Technology, Inc. Computer system permitting mulitple write buffer read-arounds and method therefor
US6145033A (en) * 1998-07-17 2000-11-07 Seiko Epson Corporation Management of display FIFO requests for DRAM access wherein low priority requests are initiated when FIFO level is below/equal to high threshold value
US6233645B1 (en) * 1998-11-02 2001-05-15 Compaq Computer Corporation Dynamically disabling speculative prefetch when high priority demand fetch opportunity use is high

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
同上.

Also Published As

Publication number Publication date
WO2003014945A3 (en) 2003-09-12
WO2003014945A2 (en) 2003-02-20
US20030033461A1 (en) 2003-02-13
KR20040054673A (ko) 2004-06-25
CN1554050A (zh) 2004-12-08
TW565769B (en) 2003-12-11
AU2002355533A1 (en) 2003-02-24
EP1419447A2 (en) 2004-05-19
US6832280B2 (en) 2004-12-14

Similar Documents

Publication Publication Date Title
CN1554050B (zh) 具有自适应优先权控制器的数据处理器及其方法
US20230004329A1 (en) Managed fetching and execution of commands from submission queues
KR102494804B1 (ko) 데이터 처리
US6643747B2 (en) Processing requests to efficiently access a limited bandwidth storage area
US6272600B1 (en) Memory request reordering in a data processing system
US6070209A (en) Delivering transactions between data buses in a computer system
US5375223A (en) Single register arbiter circuit
US5388245A (en) Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM
US20090248934A1 (en) Interrupt dispatching method in multi-core environment and multi-core processor
US8463958B2 (en) Dynamic resource allocation for transaction requests issued by initiator devices to recipient devices
EP3335124B1 (en) Register files for i/o packet compression
US8352712B2 (en) Method and system for specualtively sending processor-issued store operations to a store queue with full signal asserted
US8887001B2 (en) Trace data priority selection
US7975090B2 (en) Method for efficient I/O controller processor interconnect coupling supporting push-pull DMA read operations
KR101093317B1 (ko) 데이터 처리 시스템 내의 프리패치 제어
US7631132B1 (en) Method and apparatus for prioritized transaction queuing
CN111290983A (zh) Usb传输设备及传输方法
US7107367B1 (en) Method for efficient buffer tag allocation
US20040199704A1 (en) Apparatus for use in a computer system
WO2007038606A2 (en) High-speed input/output signaling mechanism
US8417920B2 (en) Management of speculative transactions
CN110235113B (zh) 存储器控制器和用于数据处理的系统和方法
CN112015527B (zh) 管理从提交队列获取和执行命令
EP1704487B1 (en) Dmac issue mechanism via streaming id method
JP2004326782A (ja) 暗黙の通知を伴うデータ転送

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
C56 Change in the name or address of the patentee

Owner name: FISICAL SEMICONDUCTOR INC.

Free format text: FORMER NAME: FREEDOM SEMICONDUCTOR CORP.

CP01 Change in the name or title of a patent holder

Address after: Texas in the United States

Patentee after: FREESCALE SEMICONDUCTOR, Inc.

Address before: Texas in the United States

Patentee before: FreeScale Semiconductor

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: 20100616

Termination date: 20210724

CF01 Termination of patent right due to non-payment of annual fee