CN101027655A - 具备总线存取收回的数据处理系统 - Google Patents

具备总线存取收回的数据处理系统 Download PDF

Info

Publication number
CN101027655A
CN101027655A CNA2005800326734A CN200580032673A CN101027655A CN 101027655 A CN101027655 A CN 101027655A CN A2005800326734 A CNA2005800326734 A CN A2005800326734A CN 200580032673 A CN200580032673 A CN 200580032673A CN 101027655 A CN101027655 A CN 101027655A
Authority
CN
China
Prior art keywords
access request
access
undetermined
address
current
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
Application number
CNA2005800326734A
Other languages
English (en)
Other versions
CN100481036C (zh
Inventor
威廉·C·莫耶
吉米·谷穆佳
布雷特·W·默多克
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.)
Zenith Investment LLC
Apple 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 CN101027655A publication Critical patent/CN101027655A/zh
Application granted granted Critical
Publication of CN100481036C publication Critical patent/CN100481036C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access 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
    • 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
    • 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/38Information transfer, e.g. on bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

总线主控(112)可基于当前待定存取的一个或多个特性来选择性地收回当前待定存取。这样,总线主控可以更好地控制其存取请求。一个或多个特性可包括,例如,存取类型(例如,读/写、指令/数据、突发/非突发等等)、存取的顺序或次序、正在被存取的地址(例如,正在被存取的地址范围或者正在被存取的设备)、请求收回的总线主控(例如,在多主控系统中)、或者上述任意组合。总线仲裁(216)还可基于当前待定存取请求或后续存取请求的一个或多个特性来选择性收回当前待定存取请求以便后续存取请求。这些特性可包括上面所列出的任何一个、请求主控的优先级(例如,请求主控之间的优先级delta)、请求主控的其他属性、或上述的任意组合。

Description

具备总线存取收回的数据处理系统
技术领域
本发明涉及数据处理系统,更具体涉及具备存取收回的数据处理系统。
背景技术
不同数据处理系统可能在各种不同总线协议下操作,其中,这些总线协议可能定义,例如,怎样处理总线主控进行的存取请求。而且,不同的数据处理系统可能使用不同的总线仲裁机制来操作,其中,不同的总线仲裁机制也定义了怎样处理来自不同总线主控的请求。这些总线协议和总线仲裁可能在许多方面不够灵活,诸如关于存取收回(access retraction),其通常引入了不希望的延迟。这些延迟可能尤其会对数据处理系统内的高优先级的总线主控造成问题。而且,在试图将根据不同总线协议和总线仲裁机制(例如不同地处理存取收回)操作的系统集成时可能出现错误。
因此,需要一种数据处理系统,其具有改进的存取收回机制,从而可能允许例如具有降低了的延迟的更有效的总线协议或仲裁机制。
附图说明
通过举例说明本发明,而不是通过附图来限制本发明,在附图中,相似的附图标记指示类似的元素,其中:
图1以框图形式图示说明了根据本发明一个实施例的数据处理系统;
图2以框图形式图示说明了根据本发明一个实施例的图1的总线主控的一部分;
图3-5以框图形式图示说明了图2的存取收回控制寄存器的各种不同实施例;
图6以流程图形式图示说明了根据本发明一个实施例的用于进行选择性存取收回的方法;
图7以框图形式图示说明了根据本发明一个实施例的系统互连;
图8以框图形式图示说明了图7的主控优先级寄存器的一个实施例;
图9以框图形式图示说明了图7的止动控制寄存器的一个实施例;
图10-11以框图形式图示说明了图7的存取收回控制寄存器的各种不同实施例;以及
图12以流程图形式图示说明了根据本发明可选替换实施例的进行选择性存取收回的例子。
技术人员将认识到,图中的元素是为了简便和清楚的目的而示出的,不必按比例绘制。例如,图中某些元素的尺寸可能相对于其他元素较为夸大,这是为了有助于改善对本发明的实施例的理解。
具体实施方式
本发明的一个实施例提供基于例如当前待定的总线存取请求的特性而选择性超越(override)总线协议。一个实施例提供基于例如当前待定的存取请求的特性而选择性收回当前待定的存取请求。一种可选替换实施例提供基于例如当前待定存取请求之后提供的新请求的存取的特性而选择性收回当前待定的存取请求。(另外,选择性收回可以基于当前待定存取请求和后续的存取请求这二者。)在一个实施例中,用于选择性允许超越总线协议或收回当前待定存取请求的当前待定的存取请求可以包括对应于所请求的总线存取的地址范围、所请求的总线存取的存取类型(例如,读/写、指令/数据)、对应于所请求的总线存取的存取顺序、所请求的总线存取的总线主控、或上述的组合。
图1-6的图示和描述将提供数据处理系统的一个例子,其允许选择性收回由请求总线主控做出的当前待定的总线存取请求。存取可能当前在系统总线20上待定,等待系统总线20上当前存取的完成。在某些实施例中,当前待定的存取请求实际上并不活动,直至系统总线20上进行中的当前存取完成。系统总线20可实现总线协议,其中,总线操作的地址与数据阶段交叠,使得地址总线驱动用于后续存取请求(“当前待定的”存取请求),同时等待进行中的当前存取的数据返回。一旦进行中的当前存取完成,这可能会占用多个时钟周期,则其数据阶段结束,且在该数据阶段的终止时驱动的地址(称为当前待定的存取请求)变为新的当前存取,并且地址总线然后可能通过新存取请求驱动。地址和数据阶段因此交叠,当前待定存取请求在数据阶段终止边界处变为新的“当前”存取请求。在某些情况下,如果总线主控知道当前待定的总线存取请求将不会被使用或不再需要的话,收回在系统总线20上的当前待定总线存取请求可能是总线主控所希望的。这样,就可能减少由于变得不必要或者应被丢弃的总线存取请求造成的延迟。因此,在一个实施例中,总线主控可以基于当前待定存取请求的特性而选择性收回当前待定存取请求,如参考图1-6所要描述的那样。
例如,图1图示说明了一种数据处理系统,其中,总线主控将指令连续预取到其流水线中。但是,这个连续存取模式可能由于流改变的指令,例如分支指令,而中断。当检测到流改变时,总线主控将指令预取流切换到流改变的目标(例如分支指令的目标)。因此,在此情况下,系统总线上总线主控的当前待定的存取请求可能对应于流指令改变之后的连续地址,其由于流到目标指令的改变,而不再被总线主控所需要。因此,总线主控可能需要收回这个现在不需要的当前待定存取请求。基于这个当前待定存取请求的特性(例如,可以与储存在存取收回控制寄存器中的控制信息进行比较),可以确定是否允许收回当前待定存取请求。如果允许,总线主控收回当前待定存取请求,由此减小延迟。
图1图示说明了数据处理系统10的一个实施例。数据处理系统10包括系统总线20、总线主控(master)12、存储系统14、总线受控(slave)16、总线受控18、总线桥22、总线主控24、存储系统26、其他受控28、以及系统总线30。总线主控12、总线受控16、总线受控18、存储系统14、以及总线桥22都双向耦合到系统总线20。总线桥22、总线主控24、存储系统26、其他受控28都双向耦合到系统总线30。尽管在图1中只示出了两个受控16和18,数据处理系统10可包括耦合到系统总线20的任何数量的受控。类似地,任何数量的总线主控和存储系统也可耦合到系统总线20。而且,任何数量的总线主控、受控、存储系统可耦合到系统总线30,并不限于图1中所显示的那样。
在一个实施例中,总线主控12可以是处理器,诸如微处理器、数字信号处理器等等,或者可以是任何其他类型的主控设备,诸如直接存储器存取(DMA)单元。受控16和18可以是任何类型的受控设备,诸如可由总线主控12存取的存储器,或者是外围设备,诸如通用异步接收器发射器(UART)、实时时钟(RTC)、键盘控制器等等。存储系统14可以是任何类型的存储系统,例如随机存取存储器(RAM),并且可以包括耦合到用于储存数据和指令的存贮电路的存储控制器。
操作中,总线主控12将存取请求置入系统总线20,其请求对耦合到系统总线20上的其他设备的存取,例如对存储系统14、受控16或18的存取,或者经由总线桥22对总线主控24、存储系统26、或其他受控28的存取。总线桥22允许系统总线20与系统总线30进行对接,从而使得总线主控12也可以存取驻留在系统总线30上的设备。在一个实施例中,系统总线20根据与系统总线30不同的总线协议进行操作。总线桥22如本领域所知进行操作,因此这里不更详细地描述。类似地,上面提供的总线主控12、存储系统14和受控16和18的相同例子同样分别适用于总线主控24、存储系统26和其他受控28。
图2图示说明了根据本发明一个实施例的总线主控12的一部分。总线主控12包括指令定序器40、指令缓冲存贮66、总线接口单元(BIU)70以及执行单元80。BIU70提供送往和来自系统总线20的信息,并且双向耦合到指令缓冲存贮66和指令定序器40。指令缓冲存贮66双向耦合到指令定序器40。指令定序器40包括指令寄存器(IR)46、指令解码器44、定序器控制逻辑42、存取收回控制寄存器48、收回控制逻辑50以及地址生成逻辑52。IR46耦合到地址生成逻辑52以及指令解码器44,指令解码器44耦合到定序器控制逻辑42。定序器控制逻辑42耦合到收回控制逻辑50和地址生成逻辑52,收回控制逻辑50耦合到地址生成逻辑52以及地址收回控制寄存器48。执行单元80耦合到指令解码器44和BIU70,并且包括加载/存贮单元82。
操作中,指令定序器40控制指令和数据从例如存储系统14(或其他受控)经由BIU70的预取和取操作。例如,指令可以预取到指令缓冲存贮66,而数据可以经由BIU70,取或预取以及提供到执行单元80(例如,加载/存贮单元82)。IR46从指令缓冲存贮66接收要解码的下一指令,并将其提供给指令解码器44,对指令进行解码。随后将指令提供给执行单元80进行执行,并且对指令作进一步处理。指令在解码后的处理是本领域公知的,因此这里不再更加详细地进行描述。也就是,执行单元80,包括加载/存贮单元82,如本领域公知进行操作。
定序器控制逻辑42控制指令到指令缓冲存贮66的预取和取操作。例如,定序器控制逻辑42指示地址生成逻辑52,生成哪个地址(和对应属性)经由地址/属性74到BIU70。例如,在一个实施例中,定序器控制逻辑42指示地址生成逻辑52连续预取开始于特点位置的指令。因此,BIU70经由地址/属性74从地址生成逻辑52接收要被预取的地址。地址生成逻辑52声明(assert)请求72,以向BIU70指示,地址和对应的属性现在在地址/属性74上,而BIU70可经由请求72向指令定序器40返回握手信号。在一个实施例中,BIU70包括地址队列(未示出),其中放置经由地址/属性74接收到的地址和属性,直至系统总线20可用于接收对应于地址队列中的下一地址的存取请求。BIU70提供待定地址58给指令定序器40,以向指令定序器40(以及收回控制逻辑50)指出对应于在系统总线20上当前待定(等待在总线当前数据阶段完成时激活)的地址请求的地址。待定地址58因此可以是比经由地址/属性74提供给BIU70的最近地址更早的地址。注意,握手控制和其他控制或状态信息可以在BIU70和指令定序器40之间经由CTL/STATUS76和/或请求72进行传递。
注意,在一个实施例中,定序器控制逻辑还可用于控制由BIU70提供给执行单元80的数据的预取和取操作。例如,如果指令解码器44解码加载或存贮指令,地址生成逻辑52可生成读/写数据的适当地址,或者可接收来自加载/存贮单元82的对应地址。这个地址还可经由地址/属性74提供给BIU70。而且,定序器控制逻辑42可指示地址生成逻辑52从一系列地址中预取数据。
一旦定序器控制逻辑42检测到流的改变,诸如检测到分支指令,定序器控制逻辑42将指令预取流切换到流改变的目标。也就是,定序器控制逻辑42指示地址生成逻辑52生成开始于目标地址的预取地址,其中,地址生成逻辑52可基于从IR46所提供的信息来计算目标地址。生成的地址提供给BIU70,BIU70将来自新指令预取流的指令提供给指令缓冲存贮66。在一个实施例中,来自新指令预取流的指令覆盖先前存在的指令,使得IR46和指令解码器44操作在正确指令上。而且,注意,在一个实施例中,如果指令缓冲器66为空,数据(包括取或预取的指令)可直接提供给IR46,这样就跳过了指令缓冲器66。而且,握手和其他状态和/或控制信息可以在指令定序器40和指令缓冲存贮66之间经由控制/状态64而传递。
定序器控制逻辑42,基于指令解码器44所解码的当前指令,可确定是否应该收回在系统总线20上的当前待定存取请求(对应于待定地址58)。例如,在流改变的情况中,已知不再需要当前待定预取存取请求,因为现在将取开始于新目标地址的指令。如果允许该当前待定存取请求首先完成,主控12将延迟,因为流指令改变的目标不能被接受和激活,直至当前待定预取请求(要被丢弃的请求)完成。在另一例子中,定序器控制逻辑42可能希望允许数据存取比指令预取优先。在此例子中,如果当前待定存取请求是指令预取请求,定序器控制逻辑42一旦检测到指令请求指令解码器44解码数据存取,就可能想要收回当前待定存取请求(即,指令预取请求),由此数据存取可能更早执行。
如果定序器逻辑42希望收回系统总线20上当前待定存取请求(对应于待定地址58),定序器控制逻辑42声明收回请求54,向收回控制逻辑50指示:应该收回当前待定存取请求。在一个实施例中,收回控制逻辑50使用储存在总线主控12中(例如储存在存取收回控制寄存器48中)的存取收回控制信息,基于当前待定存取请求的特性来确定是否允许收回当前待定存取请求。这些特性可包括,例如,对应于当前待定存取请求的地址(例如待定地址58)、存取类型(例如读/写、指令/数据、突发/非突发等等)、存取的顺序或次序、存取的地址(例如,该地址范围正在被存取或者该设备正在被存取)、请求收回的总线主控(例如在多主控系统中)、或上述的任意组合。例如,在一个实施例中,储存在存取收回控制寄存器48中的信息可对应于特定地址范围。也就是,提供给收回控制逻辑50的信息可取决于当前待定存取请求的地址。在该实施例中,地址比较逻辑60可用于比较待定地址58(对应于当前待定存取请求)和各种地址范围。存取收回控制寄存器48、地址比较逻辑60和地址范围、以及用于允许或不允许收回请求的当前待定地址请求的特性,将在下面结合图3-5进行更加详细地讨论。
在另一实施例中,收回控制逻辑50使用储存在总线主控12中(例如储存在存取收回控制寄存器48中)的存取收回控制信息,基于当前待定存取请求之后新请求的存取的特性而确定是否允许收回当前待定存取请求。这些特性可包括,例如,对应于新存取请求的地址、存取类型(例如读/写、指令/数据、突发/非突发等等)、存取的顺序或次序、存取的地址(例如,该地址范围正在被存取或者该设备正在被存取)、请求收回的总线主控(例如在多主控系统中)、或上述的任意组合。例如,在一个实施例中,储存在存取收回控制寄存器48中的信息可对应于特定地址范围。也就是,提供给收回控制逻辑50的信息可取决于新存取请求的地址。在该实施例中,地址比较逻辑60可用于比较新请求的地址和各种地址范围。如上所提及的,存取收回控制寄存器48、地址比较逻辑60和地址范围、以及用于允许或不允许收回请求的当前待定地址请求的特性,将在下面结合图3-5进行更加详细地讨论。但是,注意,为图3-5所提供的结合当前待定存取请求的描述还将类似地适用于后续的存取请求。
回过头来参看图2,如果收回控制逻辑50确定允许收回,收回控制逻辑50声明收回指示62,以向BIU70通知:通过移置或替换当前待定存取请求为对系统总线20的新的存取请求,来收回系统总线20上的当前待定存取请求。该新的存取请求可以是,例如,在BIU70的地址队列中等待的下一个存取请求,如上所述,或者可以是供应给BIU70的新生成的请求。在可替换实施例中,BIU70可以通过立即将预定值返回到指令缓冲存贮66来收回当前待定的存取请求。该预定值可以是任何虚拟值,因为其将会被丢弃。这样,当前待定的存取请求快速完成,下一存取请求可以开始,而不会延迟主控12。其他的替换实施例可以使用其他方法来收回当前待定的存取请求。在某些实施例中,不返回任何值到指令缓冲存贮66。
但是,如果收回控制逻辑50不允许收回当前待定的存取请求,收回控制逻辑50不会声明(即,其否定,或继续否定)收回指示62。这样,主控12等待,直至由于流的变化而在进行新指令预取流之前完成当前待定存取请求。收回控制逻辑50还可以向地址生成逻辑52指示收回不被允许。
因此,注意,在一个实施例中,存取收回控制寄存器48和收回控制逻辑50可用于选择性超越总线协议,以便,例如,减少或防止延迟。在一个实施例中,系统总线20的总线协议可能要求已经开始并且在系统总线20上当前待定的现有预取存取请求必须被允许完成,即使其可能在完成时被丢弃。例如,在流变化的例子中,已知不再需要当前待定预取存取请求,因为现在将从新目标地址开始取指令。但是,系统总线20的总线协议可能仍旧要求完成在系统总线20上当前待定的预取,使得主控12延迟。如上所述,定序器控制逻辑42可请求收回当前待定存取请求,从而防止该延迟。在此情况下,收回控制逻辑50基于储存在存取收回控制寄存器中的信息以及当前待定存取请求的特性,来选择性地超越总线协议:收回当前待定存取请求并且不让其像通常一样完成。因此,在允许收回的情况下,总线协议被超越,以防止延迟。在其他的实施例中,可使用不同类型的超越控制寄存器来超越总线协议的其他方面。
根据本发明一个实施例,在图6的流程140中图示说明了当前待定存取请求的收回。流程140开始于模块144,这里首先确定存取请求在系统总线20上当前待定(否则,没有要收回的当前待定的存取请求)。流程随后进行到判定菱形框146,确定是否应该收回当前待定的存取请求。因此,如上所述,定序器控制逻辑42可确定应该收回当前待定存取请求。如果否,流程前进到模块148,这里系统(例如,数据处理系统10)等待当前待定存取请求完成。但是,如果当前待定存取请求应该被收回,流程从判定菱形框146前进到模块150,这里生成对应于当前待定存取请求的收回请求(例如收回请求54)。在模块150之后,流程前进到判定菱形框152,这里基于当前待定存取请求的特性来确定是否允许收回当前待定的存取请求(例如,由收回控制逻辑50确定)。如果在判定菱形框152允许收回的话,流程前进到模块156,这里允许收回(例如收回指示62)并且收回当前待定的存取请求。但是,如果不允许收回的话,流程前进到模块154,这里拒绝收回请求并且系统等待当前待定存取请求完成。因此,当在系统总线20上有当前待定存取请求时使用流程140,其中,该当前待定存取请求可以选择性被收回。
回过头来参看图2,在一个实施例中,收回控制逻辑50使用储存在存取收回控制寄存器48中的存取收回控制信息,基于当前待定存取请求的特性而确定是否允许收回当前待定存取请求。图3-5图示说明了存取收回控制寄存器48的各种实施例,指示出允许收回的条件(或者,可替换地,指示出不允许收回的条件)。参看图3的实施例,存取收回控制寄存器48提供对应于待定存取类型(例如指令或数据、读或写、等等)的控制信息。例如,图3的存取收回控制寄存器48包括三个字段:指令读收回控制字段100、数据读收回控制字段102、以及数据写收回控制字段104。在一个实施例中,每一字段都是一比特,当被声明时,表示允许该类型存取的收回。例如,如果声明了指令读收回控制字段100,并且如果当前待定存取请求是指令读类型的存取(例如,由对应于当前待定存取请求的属性来表示,这里,在一个实施例中,待定地址58还扩充有属性),则允许收回当前待定存取请求。但是,如果指令读收回控制字段100被否定,则将拒绝收回。因此,根据当前待定存取请求的特性(例如存取请求类型是读还是写,是数据还是指令),收回控制逻辑50可使用储存在存取收回控制寄存器48中的存取收回控制信息来允许或拒绝来自定序器控制逻辑42的收回请求。
在图3的实施例中,注意,存取类型用于指示是否允许收回,而不管正在被存取的设备是什么。例如,如果指令读收回控制字段被声明,对于指令读类型的存取,允许收回,而不管是对存储系统14、受控16还是受控18进行存取。但是,在下面将描述的替换实施例中,除了存取类型之外,还可以基于正在被存取的设备来允许或拒绝收回。
在另一替换实施例中,图3的字段可对应于当前待定请求之后的新请求的特性,这里,收回控制逻辑50可使用对应于新的后续请求的存取收回控制信息来允许或拒绝来自定序器控制逻辑42的收回请求(收回当前待定存取请求)。例如,在这个实施例中,如果指令读收回控制字段100被声明,并且如果当前待定存取请求之后的新存取请求是指令读类型的存取,则允许当前待定存取的收回。
图4图示说明了存取收回控制寄存器48的另一实施例,其包括多个(例如4个)地址范围收回控制字段:地址范围1收回控制字段106、地址范围2收回控制字段108、地址范围3收回控制字段110、地址范围4收回控制字段112。图4的每一收回控制字段因此可对应于特定地址范围(其中,在替换实施例中,存取收回控制寄存器48可包括任意数量的地址范围收回控制字段)。例如,地址范围可标识存储器中(例如图1的存储系统14中)所有或特定范围的位置,或者可标识耦合到系统总线20的任意设备(诸如受控16或受控18)内的所有或特定范围的位置。例如,在一个实施例中,地址范围之一可对应于耦合到系统总线20的总线桥22的地址范围,其中,该地址范围可指示对于耦合到系统总线30的任何设备来说,允许还是拒绝收回。可替换地,地址范围之一可具体对应于耦合到系统总线30的任何设备(其经由总线桥22耦合到系统总线20)内的位置范围。
在一个实施例中,每一地址范围收回控制字段的地址范围都在诸如图2的地址比较逻辑60的地址比较逻辑中定义。例如,可以通过使用上下边界或使用开始位置和掩码来定义地址范围。参见图2的实施例,地址比较逻辑60因此可比较待定地址58(对应于定序器控制逻辑42希望收回的当前待定地址)与每一定义的地址范围,以确定待定地址58落入哪个范围(如果有的话)。例如,如果待定地址58落入地址范围2,则(图4的)地址收回控制寄存器48的地址范围2收回控制字段108用于指示是否允许收回待定地址58。例如,如果其被声明,则允许收回了;但是,如果其被否定,则拒绝收回。但是,如果待定地址58没有落入对应于图4实施例的范围1-4中任何一个,则不允许收回待定地址58。在可替换实施例中,地址范围收回控制字段所定义的范围可定义不允许收回的范围,则其他所有地址位置都可被收回。
注意,图3和4的实施例可合并,使得对于允许还是拒绝收回的判定基于存取类型和地址范围这二者。例如,在一个实施例中,对于每一地址范围,对应指令读、数据读、和数据写控制字段(或其子集)可用于进一步定义何时允许收回。例如,参看图1,地址范围收回控制字段可对应于受控16,使得如果对受控16进行存取请求,则对应于该存取请求的待定地址将落入这个范围中。而且,对于对应于受控16的特定地址范围,用户可能希望允许仅对数据读和写允许收回,而不对指令读允许收回。在此情况下,具体到特定地址范围的数据读、数据写和指令读收回控制字段用于确定是否允许存取。因此,可使用当前待定存取的特性的任何组合来确定是否允许收回。
图5图示说明存取控制寄存器48的又一个实施例,其中,基于前一个存取类型或基于存取类型的次序或顺序来允许或拒绝收回。例如,在图5的实施例中,存取收回控制寄存器48包括指令后指令(IFI)收回控制字段114、指令后数据读(DRFI)收回控制字段116、指令后数据写(DWFI)收回控制字段118、数据读后指令(IFDR)收回控制字段120、数据读后数据读(DRFDR)收回控制字段122、数据读后数据写(DWFDR)收回控制字段124、数据写后指令(IFDW)收回控制字段126、数据写后数据读(DRFDW)收回控制字段128、以及数据写后数据写(DWFDW)收回控制字段129。因此,在图5的实施例中,基于当前待定存取和前一个存取类型来允许或拒绝收回。例如,定序器控制逻辑42可追踪前一个存取类型,使得当需要收回当前待定存取请求(对应于待定地址58)时,可基于前一个存取来允许或拒绝。例如,如果前一个存取是数据写,且要收回的当前待定存取是指令存取(即指令读),则收回控制逻辑50使用IFDW收回控制字段126来确定是否允许收回。因此,如果字段126被声明,则允许当前待定存取的收回;但是,如果被否定,就拒绝收回。在另一实施例中,当涉及当前待定存取的特性时,图5中所述的字段可基于新请求的存取的特性而应用。例如,如果当前待定存取是指令读,而新请求的存取是数据写,则检查DWFI收回控制字段118来确定是否允许收回当前待定的指令存取。
如同图3和4的实施例一样,图5中字段114-128定义的特性可组合其他特性(诸如图3的字段100-104和/或图4的字段106-112所定义的特性)来使用。而且,存取收回控制寄存器48可按需要包括具有任意数量字段的任意数量的寄存器(一个或多个)。此外,可按需要定义任意数量的地址范围,其边界储存在收回控制逻辑50中或主控12中。而且,注意,图3-5的收回控制字段被描述为单一比特字段,其可以被声明或否定来指示允许还是拒绝收回。但是,在替换实施例中,每一字段可以按需要包括任意比特数,以指示收回的允许与否或收回的等级。此外,可使用任意类型的存贮电路来储存在存取收回控制寄存器48中储存的存取收回控制信息。
还要注意,在替换实施例中,不是使用图3-5中所述的当前待定存取的特性,而是可以类似方式替代地使用当前待定存取请求之后的新存取的特性,来确定是否允许当前待定存取请求的存取收回。因此,在这些替换实施例中,图3-5的字段中的信息将对应于新存取请求,而不是当前待定的存取请求,以便确定是否允许当前待定存取请求的存取收回。在又一替换实施例中,可使用任意数量的存取收回控制寄存器或存取收回控制寄存器中的字段,其中,当前待定存取请求的选择性收回可基于当前待定存取请求和新存取请求这二者。例如,存取收回控制寄存器48可包括一个寄存器或一组寄存器,对应于当前待定存取地址的特性,并且包括另一个寄存器或另一组寄存器,对应于新(即后续的)存取请求的特性。
注意,上面提供的描述是结合单独一个主控系统(例如图1的数据处理系统10)来进行描述的。但是在替换实施例中,数据处理系统10可包括多个总线主控。在此实施例中,用于确定允许还是拒绝收回的当前待定存取的特性还可包括哪一总线主控进行该存取请求。例如,可使用分立的地址收回控制寄存器(或者一组地址收回控制寄存器),诸如结合图3-4所描述的那样,其中每一寄存器(或每一组寄存器)对应于不同的总线主控。在这个实施例中,BIU70还可指示收回控制逻辑50:哪一总线主控进行了当前待定的存取(对应于待定地址58)。例如,每一总线主控可具有对应的唯一的总线主控标识符,其经由系统总线20与每一存取请求一起提供。而且,注意,每一总线主控可按需要具有不同的对应存取收回控制寄存器和/或字段。
因此,可以认识到,图1-6所述的实施例允许基于当前待定存取的一个或多个特性、或者当前待定存取请求之后的新存取请求的一个或多个特性、或者当前待定存取请求和新存取请求中每一存取请求的一个或多个特性,来选择性收回当前待定存取。这样,总线主控12可更好地控制其存取请求,这样减少了延迟并且改善了性能。这一个或多个特性可包括例如,存取类型(例如,读/写、指令/数据、突发/非突发等等)、存取的顺序或次序、存取的地址(例如,正在存取哪个地址范围、或正在存取哪一设备)、请求收回的总线主控(例如在多主控系统中)、或者上述的任意组合。而且,注意,可以动态地、一个存取接一个存取地执行上面结合图1-6所述的选择性收回。而且,可使用存取的特性来选择性超越总线协议的其他方面,类似于上述的选择性收回。例如,是否一次请求完全完成突发存取,或者是否可以在完成之前中断该突发存取。
上面结合图1-6所述的存取收回的概念还可应用于总线仲裁,其也可以基于当前待定存取请求(和/或当前待定存取请求之后的新存取)的一个或多个特性来收回当前待定存取。例如,图7图示说明根据本发明一个实施例的能够将M个主控耦合到N个受控的系统互连200。在图示说明的实施例中,每一主控端口0-2可与每一受控端口0和1进行通信。每一主控端口可具有耦合到其的一个或多个主控,每一受控端口可具有耦合到其的一个或多个受控。注意,如果超过一个主控或受控耦合到特定端口,则可能需要附加的仲裁逻辑(未示出)来在分别耦合到相同主控或受控端口的多个主控或受控之间进行仲裁。而且,注意,耦合到主控端口的主控的类型和耦合到受控端口的受控的类型可能是与上面结合总线主控12和受控16、18所述相同的类型。在这里讨论的实施例中,将假定每一主控端口具有耦合到其的对应的主控。例如,尽管没有显示出来,主控端口0具有耦合到其的主控0,主控端口1具有耦合到其的主控1,主控端口2具有耦合到其的主控2。类似地,将假定每一受控端口具有耦合到其的对应的受控,其中,例如,受控端口0耦合到受控0,而受控端口1耦合到受控1。
而且,注意,任何数据处理系统,诸如数据处理系统10,可利用系统互连,诸如系统互连200,来替换系统总线。例如,回过头来看图1,可替换系统总线20而使用系统互连200,其中,总线主控12可耦合到主控端口0-2之一,受控16可耦合到受控端口0或1之一,受控18可耦合到受控端口0或1中另一个。而且,附加的主控,诸如总线主控12,可耦合到主控端口0-2中的剩余两个主控端口。还要注意,图7图示说明了三个主控端口和两个受控端口,但应该理解,系统互连200可按需要包括任意数量的主控端口和任意数量的受控端口。
在图7的系统互连200中,可能希望收回从主控到受控端口的存取请求,以便于后续请求。例如,主控的存取请求可能在进行中(例如,当前存取请求的地址可驱动到受控端口上,由受控取出或接受,因此等待相应的数据从受控返回)。但是,数据的返回可能被延迟,由此增加完成进行中的存取请求所需的等待状态的数量。当该存取请求进行中并且等待返回数据时,相同的主控或不同的主控可能提供另一存取请求给相同的受控端口。该存取请求可能由系统互连内的仲裁逻辑授权,因此变为驱动到受控端口上的当前待定的存取请求。但是,尽管其授权并驱动到受控端口上,该当前待定存取请求不能被受控执行,直到当前进行中的存取请求完成(即数据返回)。因此,可能希望基于当前待定存取请求的特性(和/或当前待定存取请求之后的新存取请求的特性),来收回当前待定存取请求,以便于后面的到相同端口的存取请求,例如,如果后续的存取请求具有更高优先级的话。收回的当前待定的存取请求随后可储存在对应于受控端口的受控端口逻辑内,直到将后续存取请求驱动到受控端口上之后。可替换地,可以储存收回的当前待定存取请求,直到随后再次将其驱动到受控端口上的稍后时间点。这样,可提高效率。关于总线仲裁的存取收回的进一步的细节将结合图7-12进行描述。
图7的系统互连200包括主控端口0-2、受控端口0和1、受控端口0逻辑、受控端口1逻辑,其中每一主控端口0-2经由受控端口0逻辑耦合到受控端口0,每一主控端口0-2经由受控端口1逻辑耦合到受控端口1。受控端口0逻辑包括仲裁逻辑216、收回控制逻辑218、主控优先级寄存器210、止动(parking)控制寄存器212、存取收回控制寄存器214、以及存取选择器208。每一主控端口0-2分别经由导线202-204耦合到受控端口0逻辑的存取选择器208、仲裁逻辑216、和收回控制逻辑218以及耦合到受控端口1逻辑。存取选择器208在受控端口0提供来自导线202-204(分别对应于主控端口0-2)之一的信息给导线205。也就是,导线205还可称为受控总线,其耦合到对应的受控,即受控0。仲裁逻辑216将当前授权220提供给存取选择器208和收回控制逻辑218。仲裁逻辑216还将待定授权222和收回请求224提供给收回控制逻辑218,并且从收回控制逻辑218接收收回指示226。仲裁逻辑216耦合到主控优先级寄存器210和止动控制寄存器212。收回控制逻辑218耦合到主控优先级寄存器210、止动控制寄存器212和存取收回控制寄存器214。
注意,没有显示受控端口1逻辑内的电路;但是,其与受控端口0逻辑内的电路类似,将在下面进行更详细地描述。也就是,受控端口1逻辑的操作类似于受控端口0逻辑的操作。
在操作中,受控端口0逻辑控制从耦合到主控端口0-2的主控到受控端口0的存取。仲裁逻辑216经由导线202-204接收对受控端口0的存取请求,并且确定对哪个授权以及何时授权。仲裁逻辑216随后将当前授权220提供给存取选择器208,当前授权220是指出已经授权哪个存取请求的控制信号。存取选择器208基于当前授权220,提供来自从主控端口0-2之一到受控端口0的授权存取请求的信息,由此将地址、数据和控制信号从当前授权存取请求的主控驱动到耦合于受控0的导线205。在确定对哪个存取请求授权时,仲裁逻辑216可使用主控优先级寄存器210和止动控制寄存器212。在将信息从当前授权存取请求的主控驱动到导线205之后,受控0取出或接受存取请求。受控0一旦取出存取请求,就接收并储存对应于当前授权存取请求的地址,以便提供或接收对应于存取请求的请求的数据。一旦取出存取请求,其变为当前进行中的存取请求。
随后,仲裁逻辑216可通过提供当前授权220给对应于新存取请求的存取选择器208而授权新存取请求。对应于该新存取请求(来自主控0-2之一)的信息随后被存取选择器208驱动到耦合于受控0的导线205。但是,该新存取请求保留当前待定存取请求,同时,前面授权的存取请求仍旧在进行中。也就是,在所图示说明的实施例中,直到仍旧进行中的前面授权的存取请求完成之后,才能由受控0取出或执行新存取请求。在一个实施例中,在受控0接收到对应于存取请求的地址或将地址提供给主控0-2(其中,主控0-2中的请求主控接受数据)之后,完成数据前面授权的存取请求。
由于前面授权的存取请求可能是在未知时期内进行的,仲裁逻辑216可决定当前待定存取请求(等待前一授权存取请求完成的那个存取请求)应该收回,以便于后续的存取请求。在此情况下,仲裁逻辑216通过声明收回请求224来请求收回当前待定的存取请求。收回控制逻辑218使用来自存取收回控制寄存器214的信息,基于当前待定存取请求和/或后续存取请求的至少一个或多个特性(这里,这一个或多个特性可以根据经由导线202-204从请求主控提供的信息、经由待定授权222提供的当前待定存取请求的地址、和/或根据主控优先级寄存器210和止动控制寄存器212中的信息来确定)来确定是否允许收回当前待定的存取请求。如果收回控制逻辑218确定允许收回当前待定存取,其声明收回指示226,而如果不允许收回,则收回指示226被否定(或者保持被否定)。如果允许收回,则仲裁逻辑,经由当前授权220 和存取选择器208,可将受控端口0上导线205上的当前待定存取请求替换为新的后续存取请求。仲裁逻辑216随后可以储存被收回的当前待定存取请求,由此在将新的后续存取请求驱动到导线205上之后,可以再次驱动收回的请求。可替换地,其可以在稍后的时间点被再次驱动。
在图7的图示说明的实施例中,受控端口0逻辑包括主控优先级寄存器210和止动控制寄存器212。这些寄存器的例子分别图示在图8和9中。例如,图8图示说明了主控优先级寄存器210的一个实施例,其包括对应于每一主控端口的主控优先级字段:主控0优先级字段230、主控1优先级字段232、主控2优先级字段234。因此每一字段可包括对应主控端口的优先级。例如,在包括3个主控端口的图示的实施例中,可使用2比特值(例如11、10、01、00)来指示优先级,其中,最高优先级主控端口可以被赋予11的优先级,第二高的被赋予10的优先级,第三高的(即3个中最低的)被赋予01的优先级。在此情况下,可以不使用00值。可替换地,优先级可以编号为从10(最高优先级主控端口)到00(最低优先级主控端口),其中可不使用值11。在又一实施例中,优先级可编号为10(最低优先级主控端口)到00(最高优先级主控端口)。可替换地,可以使用其他方案来为每一端口分配优先级。而且,注意,在一个实施例中,如果主控端口不具有耦合到其的主控的话,相应的主控优先级字段可以用预定值编程以指出这一点,或者可以简单地给出最低优先级。
图9图示说明了止动控制寄存器212的一个实施例,其包括止动使能字段236和止动主控字段238。在一个实施例中,止动使能字段236是一比特字段,当其被声明时,指示对于对应的受控端口(在本实施例中是受控端口0)能够止动,而当其被否定时,指示对于对应的受控端口不能够止动。如果能够止动,由止动主控字段238中的值提供止动主控。例如,止动主控字段238可以是2比特值,其标识主控端口0-2之一。如果能够止动,并且对应受控端口空闲(没有与任何主控端口收发信息),受控端口自动耦合到止动主控,从而使得止动主控可以同受控端口通信,而不需要仲裁间隔。例如,如果受控端口0空闲,仲裁逻辑216使用止动控制寄存器212中的信息,提供当前授权220(指示止动主控)给存取选择器208,存取选择器208将止动主控端口耦合到受控端口0的导线205。在此情况下,注意,当受控端口空闲时,止动主控不需要明确请求对受控端口的存取(假定能够止动)。这样,如果被止动的主控是受控端口0的下一请求者,不需要任何仲裁间隔,而且对于被止动的主控来说,减少了存取受控端口0的延迟。如果不能够止动,则仲裁逻辑216和存取选择器208如上结合图7所述进行操作。
结合图12的流程260中提供的例子可进一步理解受控端口0逻辑的操作。流程开始于模块262,这里,从主控0到受控端口0的存取请求被授权(具有对应的存取地址addry),同时,从主控1到受控端口0的当前存取请求(具有对应的存取地址addrx)在进行中。因此,如上面结合图7所述的那样,注意,来自主控0的存取请求变为当前待定存取请求,其不能被受控0接受或取出,直至来自主控1的当前进行中的存取完成。流程随后前进到模块264,这里,从主控1(或者,在可替换实施例中,从任何其他主控)接收到对受控端口0的后续的或新的存取请求(具有对应的存取地址addrz)。如上所述,由于可能不知道当前进行中的存取请求(addrx)有多长,仲裁逻辑216可能希望收回当前待定的存取请求(addry),以便于新接收的存取请求(addrz),因为,例如,新接收的存取请求可能是更加重要的或是在时间上的要求更苛刻的。也就是,仲裁逻辑216可能希望对待定存取请求重新排序,以便于后续接收的存取请求。因此,回过头来看图12,流程前进到模块266,这里,生成对应于对受控端口0的当前待定主控0存取请求(addry)的收回请求。例如,其可能对应于仲裁逻辑216声明收回请求224,如结合图7所述的那样。
回过来看图12,在生成了收回请求之后,流程从模块266前进到判定菱形框268,这里,基于当前待定存取请求的一个或多个特性(和/或后续存取请求(addrz)的一个或多个特性)来确定是否允许收回当前待定主控0存取请求(addry)。例如,这个判定可以由收回控制逻辑218使用来自主控优先级寄存器210、止动控制寄存器212、待定授权222的信息、来自导线202-204或上述任意组合以及存取收回控制寄存器214的信息来做出。如果不允许收回,流程从判定菱形框268前进到模块270,这里,收回请求被拒绝(通过否定例如收回指示226),受控端口0逻辑等待进行中的存取请求(addrx)完成,以及等待当前待定存取请求(addry)被取出(由此变为进行中的新存取请求),之后再将随后接收到的存取请求(addrz)驱动到受控端口 0的导线205上。如果允许收回的话,流程从判定菱形框268前进到模块272,这里,当前待定的存取请求(addry)被收回(通过声明例如收回指示226)。在此情况下,当前待定的存取请求(addry)被替换为新的存取请求(addrz),从而使得新的存取请求(addrz)变为当前待定的存取请求。这样,授权存取请求的排序就可能根据仲裁逻辑的观点进行重新排序,将先前待定的存取请求(addry)替换为新存取请求(addrz),这里,替换的存取请求(addry)可储存在受控端口0逻辑中,使得其可以在addrz之后或在某个稍后的时间点再次驱动到受控端口0上。根据耦合到受控端口0的受控0的观点,当前待定存取请求(addry)被收回,新的当前待定的存取请求(addrz)被代替地驱动,在完成当前进行中的存取请求(addrx)之后由受控取出。
如上所述,存取收回控制寄存器214内的信息指示允许收回的条件。(可替换地,存取收回控制寄存器214指示不允许收回的条件。)因此,存取收回控制寄存器214中的信息用于基于当前待定存取请求(或后续存取请求)的一个或多个特性来选择性地收回当前待定的存取请求。这些特性可包括上面结合图3-5所述的那些特性的任意一个,或者下面将结合图10和11所述的那些特性中的任意一个,及其任意组合。例如,如上所述,用于做出判定的当前待定存取请求的特性可包括存取类型、地址范围、数据类型排序、及其组合。例如,对于地址范围,一个或多个地址范围可用来标识特定受控端口(诸如受控端口0),或者可用来标识经由特定受控端口存取的位置范围。在此情况下,也如上面结合图4所述的那样,可以简单地基于当前待定或后续接收的存取请求所存取的特定地址范围(例如受控端口)来允许或拒绝收回,或者基于正在存取的特定地址范围(例如受控端口)以及当前待定或后续接收的存取请求的附加特性来允许或拒绝收回。在一个实施例中,注意,地址范围可以替代地直接被标识为特定受控端口。
图10图示说明了图7的存取收回控制寄存器214的一个实施例,其中,关于允许还是拒绝收回的判定基于请求主控的优先级(例如优先级delta)。例如,如果进行后续存取请求(addrz)的主控(例如图12的例子中的主控0)具有比进行当前待定存取请求(addry)的主控(例如图12的例子中的主控1)高的优先级的话,则收回控制逻辑218可允许存取收回(使用图10的存取收回控制寄存器214所提供的信息)。例如,图10的存取收回控制寄存器214包括每主控端口一个优先级delta收回控制字段:主控优先级delta收回控制字段240、主控1优先级delta收回控制字段242、主控2优先级delta收回控制字段244。在这个例子中,每一字段指示出后续存取请求的请求主控与当前待定存取请求的请求主控之间的优先级delta(即优先级差)应该是多少,才能允许收回当前待定存取请求。
在一个实施例中,每一字段可以是2比特的值,这里,“00”值表示优先级delta需要大于或等于0,“01”值表示优先级delta需要大于或等于1,“10”值表示优先级delta需要大于或等于2,“11”值表示无论优先级delta为多少,都不允许收回。注意,可以使用其他的n比特值(这里n可以是大于0的任意整数)来表示允许收回所需的优先级delta。例如,参看图12的例子,主控0进行当前待定存取请求(addry),主控1进行后续存取请求(addrz);因此,如果请求收回,使用在主控0优先级delta收回控制字段240中提供的信息,以及主控0优先级字段230和主控1优先级字段232(结合图8描述),来确定是否允许收回。如果主控0优先级delta收回控制字段240指示出,主控1和主控0之间的优先级delta(这里,优先级delta=主控1优先级-主控0优先级)足够,则允许收回。如果优先级delta是1,而主控0优先级delta收回控制字段240指示出delta需要大于或等于2,则不允许收回。但是,如果优先级delta是2,则将允许收回。如果主控0优先级delta收回控制字段240指示出delta大于或等于0,则只要主控1具有至少与主控0相同的优先级,就允许收回。
图11图示说明了图7的存取收回控制寄存器214的另一个实施例,其具有各种不同字段,包括最高优先级主控收回控制字段246、延迟收回控制字段248、止动主控收回控制字段250、以及非止动主控收回控制字段252。在一个实施例中,每一字段246、250和252是一比特字段,其要么被声明要么被否定。例如,如果最高优先级主控收回控制字段246被声明,则当后续请求来自具有最高优先级的主控时,允许收回当前待定存取请求。如果止动主控收回控制字段250被声明,则当后续请求来自止动主控(例如,由止动控制寄存器212中的止动主控字段238指示出)时,允许收回当前待定存取请求。如果非止动主控收回控制字段252被声明,则当后续请求来自任何非止动主控(止动主控字段238所指出的主控之外的任意主控)时,允许收回当前待定存取请求。延迟收回控制字段248可用于提供延迟(d),使得如果允许收回的话,就在d个等待状态时钟之后进行收回,这里d可以是大于或等于0的任意整数。例如,在一个实施例中,如果d是0,则延迟收回没有被使能;但是,如果d是1或更大,则将当前待定存取请求的收回(如果被允许)延迟d个时钟。在替换实施例中,延迟值可以提供延迟(d),使得如果允许收回的话,实际上只在完成当前进行中的存取(例如,对应于addrx)所消耗的时间大于或等于延迟时,执行收回。也就是,在这个替换实施例中,如果当前进行中的存取请求将在小于延迟(d)的时间内完成的话,则不会发生收回,即使允许收回。在替换实施例中,延迟值可以以一种可替换的方式与完成当前进行中的存取所需的时间长度进行比较,以便确定是否会发生收回。即,在一个实施例中,只有延迟值与完成当前进行中的存取请求所占用的时间相比较结果为预定结果,才会发生当前待定存取的收回(如果允许)。
注意,图10和11中字段240-252定义的每一特性可单独或任意组合使用,还可以与其他特性相组合来使用,诸如与图3的字段100-104和/或图4的106-112和/或图5的字段114-128所定义的特性相结合。而且,存取收回控制寄存器214可按需要包括具有任意数量字段的任意数量的寄存器(一个或多个)。还有,注意,图10和11的收回控制字段可按需要包括任意数量的比特,用来指示是否允许收回或者收回的等级。而且,可使用任意类型的存贮电路来储存在存取收回控制寄存器214内储存的存取收回控制信息。
因此,可以认识到仲裁怎样使用当前待定存取请求或后续存取请求或二者的特性来选择性地收回当前待定存取请求。这样,通过减小延迟和允许高优先级或高重要性存取较早进行,可提高效率。
注意,尽管图1、2、7图示说明的是双向和单向导线的使用,应该明白,可以替代地使用单向和双向导线的不同组合。例如,可使用多个单向导线来代替双向导线。或者,可以使用双向导线来代替单向导线。也可以经由单一导线串行传送信号或者经由多个导线并行传送信号。可替换地,信号可被时间复用于一个或多个导线上。
在前面的说明中,结合具体实施例描述了本发明。但是,本领域普通技术人员应该认识到,可以进行各种修改和变化,而不背离本发明如权利要求所述的范围。例如,应该理解,数据处理系统10可以是任意类型的数据处理系统,其可以位于单芯片或者集成电路(IC)或者二者组合上。而且,系统互连200可以位于与主控和受控相同的芯片或IC上,或者可以位于与主控和受控分立的IC上。因此,说明书和附图只是说明性的,而非限制含义,所有这样的修改都希望被包括在本发明的范围之内。
以上已经关于具体实施例描述了利益、其他优点和问题的解决方案。但是,利益、优点、问题的解决方案以及可招致任何利益、优点或解决方案发生或食指更加显著的任何元素,都不应被解释为任意或所有权利要求的关键的、需要的或必要的特征或元素。这里所使用的术语“包括”、“包含”及其任何其他变化形式,意图涵盖非排他性的包涵,因此,包括一系列元素的处理、方法、物品或装置不仅仅包括列出的元素,还可包括未明确列出或这样的处理、方法、物品或装置所固有的其他元素。

Claims (46)

1.一种在数据处理系统中用于存取收回的方法,其中所述的数据处理系统具有总线主控和系统总线,所述总线主控耦合到所述系统总线,所述方法包括:
储存存取收回控制信息,该信息指示出允许或不允许收回的至少一个条件;
请求收回系统总线上当前待定的存取请求;以及
响应于上述的请求步骤,使用存取收回控制信息,基于当前待定存取请求的至少一个特性而选择性地收回当前待定存取请求。
2.权利要求1所述的方法,其中,所述的请求收回是基于当前解码的指令而进行的。
3.权利要求2所述的方法,其中,如果当前解码的指令引起流的变化,则请求收回。
4.权利要求1所述的方法,其中,所述至少一个特性包括当前待定存取请求的存取类型。
5.权利要求4所述的方法,其中,所述的存取类型是读或写存取之一。
6.权利要求4所述的方法,其中,所述的存取类型是指令或数据存取之一。
7.权利要求4所述的方法,其中,所述的存取类型是突发或非突发存取之一。
8.权利要求4所述的方法,其中,所述的选择性收回基于当前待定存取请求的存取类型以及至少一个以前的存取请求的存取类型。
9.权利要求1所述的方法,其中,所述数据处理系统包括耦合到系统总线的第二总线主控,并且其中,所述至少一个特性包括哪个总线主控请求了当前待定存取请求。
10.权利要求1所述的方法,其中,所述存取请求具有相应的存取地址,并且其中,所述至少一个特性包括存取地址所落入的地址范围。
11.权利要求10所述的方法,其中,所述存取收回控制信息指示出对于相应地址范围允许或不允许收回的至少一个条件,其中,选择性地收回包括确定存取地址是否落入到相应地址范围内。
12.权利要求1所述的方法,其中,如果存取收回控制信息指示出基于所述至少一个特性而允许收回当前待定存取请求的话,所述的选择性地收回进一步包括:
通过响应于当前待定存取请求而提供虚拟值来收回当前待定存取请求。
13.权利要求1所述的方法,其中,如果存取收回控制信息指示出基于所述至少一个特性而允许收回当前待定存取请求的话,所述的选择性地收回进一步包括:
通过用新的存取请求来替换在系统总线上当前待定存取请求,收回当前待定存取请求。
14.一种在数据处理系统中用于存取收回的方法,其中所述的数据处理系统具有总线主控和系统总线,所述总线主控耦合到所述系统总线,所述方法包括:
储存对应于地址范围的存取收回控制信息,其中,所述的存取收回控制信息指示出对于相应的地址范围允许还是不允许收回;
请求收回系统总线上当前待定的存取请求,其中,所述的当前待定存取请求具有相应地址;
确定所述相应地址是否落入到所述地址范围内;以及
如果所述相应地址是否落入到所述地址范围内,基于存取收回控制信息,选择性地收回当前待定存取请求。
15.权利要求14所述的方法,其中,所述的请求收回是基于当前解码的指令而进行的。
16.权利要求15所述的方法,其中,如果当前解码的指令引起流的变化,则请求收回。
17.权利要求14所述的方法,其中,对应于所述地址范围的存取收回控制信息通过在所述相应地址落入到所述地址范围内时指示出允许或不允许收回当前待定存取请求的至少一个条件,而指示出对于相应的地址范围允许还是不允许收回。
18.权利要求17所述的方法,其中所述的如果所述相应地址落入到所述地址范围内,基于存取收回控制信息,选择性地收回当前待定存取请求包括:
如果所述相应地址落入到所述地址范围内,基于存取收回控制信息和当前待定存取请求的至少一个特性,选择性地收回当前待定存取请求。
19.权利要求18所述的方法,其中,所述至少一个特性包括当前待定存取请求的存取类型。
20.权利要求19所述的方法,其中,所述的存取类型是读或写存取之一。
21.权利要求19所述的方法,其中,所述的存取类型是指令或数据存取之一。
22.权利要求19所述的方法,其中,所述的存取类型是突发或非突发存取之一。
23.权利要求19所述的方法,其中所述的如果所述相应地址落入到所述地址范围内,基于存取收回控制信息和当前待定存取请求的至少一个特性,选择性地收回当前待定存取请求包括:
如果所述相应地址落入到所述地址范围内,基于存取收回控制信息、当前待定存取请求的存取类型、以及以前的存取请求的存取类型,选择性地收回当前待定存取请求。
24.权利要求18所述的方法,其中,所述数据处理系统包括耦合到系统总线的第二总线主控,并且其中,所述至少一个特性包括哪个总线主控请求了当前待定存取请求。
25.权利要求14所述的方法,其中,如果所述相应地址落入到所述地址范围内,而且所述存取收回控制信息指示出允许收回的话,所述的选择性地收回包括:
通过响应于当前待定存取请求而提供虚拟值来收回当前待定存取请求。
26.权利要求14所述的方法,其中,如果所述相应地址落入到所述地址范围内,而且所述存取收回控制信息指示出允许收回的话,所述的选择性地收回包括:
通过用新的存取请求来替换当前待定存取请求,收回当前待定存取请求。
27.权利要求14所述的方法,其中:
所述的储存对应于地址范围的存取控制信息包括:储存对应于多个地址范围中每一个的存取控制信息,其中所述的存取控制信息指示出对于多个地址范围中每一个是否允许收回;
所述的确定所述相应地址是否落入到所述地址范围内包括:确定所述相应地址是否落入到所述多个地址范围之一内;以及
所述的选择性地收回包括:如果所述相应地址落入到所述多个地址范围之一内,基于对应于所述多个地址范围之一的存取收回控制信息,选择性地收回当前待定存取请求。
28.权利要求27所述的方法,其中,所述的对应于多个地址范围中每一个的存取收回控制信息通过在所述相应地址落入到所述多个地址范围之一内时指示出允许或不允许收回当前待定存取请求的至少一个条件,指示出对于多个地址范围中每一个允许还是不允许收回,并且其中,所述选择性地收回进一步包括:
如果所述相应地址落入到所述多个地址范围之一内,基于对应于所述多个地址范围之一的存取收回控制信息和当前待定存取请求的至少一个特性,选择性地收回当前待定存取请求。
29.一种数据处理系统,包括:
系统总线;和
总线主控,耦合到所述系统总线,其中,所述总线主控请求收回系统总线上当前待定的存取请求,所述总线主控包括收回控制逻辑和存取收回控制存贮电路,所述存取收回控制存贮电路储存存取收回控制信息,所述收回控制逻辑使用所述存取收回控制信息来基于当前待定存取请求的至少一个特性而选择性地收回当前待定存取请求。
30.权利要求29所述的数据处理系统,其中,所述总线主控进一步包括耦合到指令解码器的定序器控制逻辑,其中,所述定序器控制逻辑基于由所述指令解码器解码的指令,生成对当前待定存取请求的收回请求。
31.权利要求30所述的数据处理系统,其中,所述总线主控进一步包括耦合到所述系统总线的总线接口单元,并且其中,如果存取收回控制信息指示出基于当前待定存取请求的至少一个特性而对于当前待定存取请求允许收回的话,所述总线接口单元响应于当前待定存取请求而向收回控制逻辑提供虚拟值。
32.权利要求30所述的数据处理系统,其中,所述总线主控进一步包括耦合到所述系统总线的总线接口单元,并且其中,如果存取收回控制信息指示出基于当前待定存取请求的至少一个特性而对于当前待定存取请求允许收回的话,所述总线接口单元用新的存取请求替换当前待定存取请求。
33.权利要求30所述的数据处理系统,其中,所述收回控制逻辑进一步包括地址比较逻辑,其确定当前待定地址请求的相应地址是否落入到预定地址范围内,并且其中,如果所述相应地址落入到所述预定地址范围内,所述收回控制逻辑使用对应于所述预定地址范围的存取收回控制信息来选择性地收回当前待定存取请求。
34.权利要求29所述的数据处理系统,其中,所述至少一个特性包括当前待定存取请求的存取类型。
35.权利要求34所述的数据处理系统,其中,所述收回控制逻辑使用存取收回控制信息来基于当前待定存取请求的存取类型和以前的存取请求的存取类型而选择性地收回当前待定存取请求。
36.权利要求29所述的数据处理系统,进一步包括耦合到所述系统总线的第二总线主控,并且其中,所述至少一个特性包括哪个总线主控请求了当前待定存取请求。
37.在具有耦合到系统总线的总线主控的数据处理系统中,一种用于超越系统总线的总线协议的方法,包括:
经由系统总线提供存取请求;以及
基于存取请求的至少一个特性,选择性地超越系统总线的总线协议的方面。
38.权利要求37所述的方法,其中,所述的总线协议的方面涉及收回当前待定存取请求。
39.权利要求37所述的方法,其中,所述至少一个特性包括存取类型。
40.权利要求37所述的方法,其中,所述数据处理系统包括耦合到所述系统总线的第二总线主控,并且其中,所述至少一个特性包括哪个总线主控进行了所述存取请求。
41.权利要求37所述的方法,其中,所述至少一个特性包括所述存取请求的相应地址所落入的地址范围。
42.一种在数据处理系统中用于存取收回的方法,其中所述的数据处理系统具有总线主控和系统总线,所述总线主控耦合到所述系统总线,所述方法包括:
储存存取收回控制信息,该信息指示出允许或不允许收回的至少一个条件;
接收后续存取请求;
请求收回所述系统总线上当前待定的存取请求,其中,在从主控接收到当前待定存取请求之后,从主控接收所述后续存取请求;以及
响应于上述的请求步骤,使用存取收回控制信息,基于后续存取请求的至少一个特性而选择性地收回当前待定存取请求。
43.权利要求42所述的方法,其中,所述至少一个特性包括当前待定存取请求的存取类型。
44.权利要求42所述的方法,其中,所述的选择性地收回基于当前待定存取请求和后续存取请求中每一个的至少一个特性。
45.权利要求42所述的方法,其中,所述后续存取请求具有相应的存取地址,并且其中,所述至少一个特性包括所述存取地址所落入的地址范围。
46.权利要求45所述的方法,其中,所述存取收回控制信息指示出对于相应地址范围允许或不允许收回的至少一个条件,其中,选择性地收回当前待定存取包括:确定后续存取请求的存取地址是否落入到所述相应地址范围内。
CNB2005800326734A 2004-09-30 2005-09-01 具备总线存取收回的数据处理系统 Active CN100481036C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/954,809 2004-09-30
US10/954,809 US7130943B2 (en) 2004-09-30 2004-09-30 Data processing system with bus access retraction

Publications (2)

Publication Number Publication Date
CN101027655A true CN101027655A (zh) 2007-08-29
CN100481036C CN100481036C (zh) 2009-04-22

Family

ID=36100525

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800326734A Active CN100481036C (zh) 2004-09-30 2005-09-01 具备总线存取收回的数据处理系统

Country Status (6)

Country Link
US (1) US7130943B2 (zh)
EP (1) EP1805631A2 (zh)
JP (1) JP2008515091A (zh)
KR (1) KR20070053310A (zh)
CN (1) CN100481036C (zh)
WO (1) WO2006039040A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172256A (ja) * 2004-12-17 2006-06-29 Renesas Technology Corp 情報処理装置
KR100725417B1 (ko) * 2006-02-22 2007-06-07 삼성전자주식회사 우선 순위에 따른 플래시 메모리의 연산 처리 장치 및 방법
US20080034146A1 (en) * 2006-08-04 2008-02-07 Via Technologies, Inc. Systems and Methods for Transactions Between Processor and Memory
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US10521329B2 (en) * 2015-05-08 2019-12-31 Intergral GmbH Debugging system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620278A (en) * 1983-08-29 1986-10-28 Sperry Corporation Distributed bus arbitration according each bus user the ability to inhibit all new requests to arbitrate the bus, or to cancel its own pending request, and according the highest priority user the ability to stop the bus
CA1248239A (en) * 1984-10-30 1989-01-03 Kenneth R. Jaskowiak Equal access bus arbiter
JPS61156338A (ja) * 1984-12-27 1986-07-16 Toshiba Corp マルチプロセツサシステム
US4987529A (en) * 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
FR2642246B1 (fr) * 1988-12-30 1991-04-05 Cit Alcatel Procede de deblocage d'un systeme multiprocesseurs multibus
JP2986176B2 (ja) * 1990-05-11 1999-12-06 株式会社日立製作所 バス権制御方式およびバスシステム
US5467295A (en) * 1992-04-30 1995-11-14 Intel Corporation Bus arbitration with master unit controlling bus and locking a slave unit that can relinquish bus for other masters while maintaining lock on slave unit
US5647057A (en) * 1992-08-24 1997-07-08 Texas Instruments Incorporated Multiple block transfer mechanism
JP2765484B2 (ja) * 1994-07-06 1998-06-18 日本電気株式会社 システムバス制御回路
US6098115A (en) * 1998-04-08 2000-08-01 International Business Machines Corporation System for reducing storage access latency with accessing main storage and data bus simultaneously
JP2002041445A (ja) * 2000-05-19 2002-02-08 Matsushita Electric Ind Co Ltd 高性能dmaコントローラ
US20020144054A1 (en) * 2001-03-30 2002-10-03 Fanning Blaise B. Prefetch canceling based on most recent accesses
EP1440377A1 (en) * 2001-10-16 2004-07-28 Koninklijke Philips Electronics N.V. A computer system with a communication bus
JP2005158035A (ja) * 2003-11-05 2005-06-16 Matsushita Electric Ind Co Ltd 調停回路及びこれに備える機能処理回路

Also Published As

Publication number Publication date
JP2008515091A (ja) 2008-05-08
CN100481036C (zh) 2009-04-22
US7130943B2 (en) 2006-10-31
EP1805631A2 (en) 2007-07-11
US20060069830A1 (en) 2006-03-30
WO2006039040A2 (en) 2006-04-13
WO2006039040A3 (en) 2006-11-30
KR20070053310A (ko) 2007-05-23

Similar Documents

Publication Publication Date Title
CN100578475C (zh) 具备总线存取收回的数据处理系统
US7349424B2 (en) On-chip inter-subsystem communication including concurrent data traffic routing
US6073199A (en) History-based bus arbitration with hidden re-arbitration during wait cycles
US8082378B1 (en) Master and slave side arbitrators associated with programmable chip system components
US5787264A (en) Method and apparatus for arbitrating access to a shared bus
CN100481036C (zh) 具备总线存取收回的数据处理系统
EP0773500A1 (en) Dual mode arbitration method for computer systems with zero to two cycles of latency
EP0671692B1 (en) Fast pipelined distributed arbitration scheme
EP1820109B1 (en) Time-based weighted round robin arbiter
US6546448B1 (en) Method and apparatus for arbitrating access to a PCI bus by a plurality of functions in a multi-function master
US20020003574A1 (en) Image processing system, and semiconductor device and digital still camera apparatus using image processing system
WO1997029432A1 (en) Apparatus for programmably defining the access latency
JPH09153009A (ja) 階層構成バスのアービトレーション方法
US6418491B1 (en) Apparatus and method for controlling timing of transfer requests within a data processing apparatus
US5815676A (en) Address bus arbiter for pipelined transactions on a split bus
KR100451722B1 (ko) 직접 메모리 액세스 제어 장치
JP3206656B2 (ja) バス上でのプリフェッチ装置およびプリフェッチ方法
US5799160A (en) Circuit and method for controlling bus arbitration
JP2006163881A (ja) バス調停装置およびデバイス
WO1999048008A2 (en) Method and apparatus for intermodule data transfer
JPH1115781A (ja) バス調停システム
JPH056325A (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
ASS Succession or assignment of patent right

Owner name: APPLE COMPUTER, INC.

Free format text: FORMER OWNER: TIANDING INVESTMENT CO., LTD.

Effective date: 20150623

Owner name: TIANDING INVESTMENT CO., LTD.

Free format text: FORMER OWNER: FISICAL SEMICONDUCTOR INC.

Effective date: 20150623

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150623

Address after: American California

Patentee after: APPLE Inc.

Address before: American California

Patentee before: Zenith investment LLC

Effective date of registration: 20150623

Address after: American California

Patentee after: Zenith investment LLC

Address before: Texas in the United States

Patentee before: FREESCALE SEMICONDUCTOR, Inc.