CN100373360C - 管理多周期数据传送请求的分布式仲裁的方法和处理器 - Google Patents

管理多周期数据传送请求的分布式仲裁的方法和处理器 Download PDF

Info

Publication number
CN100373360C
CN100373360C CNB2004100335162A CN200410033516A CN100373360C CN 100373360 C CN100373360 C CN 100373360C CN B2004100335162 A CNB2004100335162 A CN B2004100335162A CN 200410033516 A CN200410033516 A CN 200410033516A CN 100373360 C CN100373360 C CN 100373360C
Authority
CN
China
Prior art keywords
bit slice
bit
request
slice
period
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
CNB2004100335162A
Other languages
English (en)
Other versions
CN1551002A (zh
Inventor
小罗伯特·H·贝尔
罗伯特·艾伦·卡格诺尼
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1551002A publication Critical patent/CN1551002A/zh
Application granted granted Critical
Publication of CN100373360C publication Critical patent/CN100373360C/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/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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

在处理系统中对多周期数据传送请求进行分布式仲裁的方法和系统提供了增强的性能。针对位片仲裁器提供了多周期请求指示器,并且如果存在多周期请求,只有一个位片被批准相关总线。该方法还阻塞来自其它与第一位片相比具有较低等待时间的请求方位片的任何请求,直到经过其它请求方位片和最长等待时间位片之间的等待时间差加上预先确定的周期计数器值。该方法还阻塞来自第一位片的进一步请求,直到经过预定周期计数器值,并且阻塞来自与第一位片相比具有较高等待时间的位片的请求,直到经过预定周期计数器值减去第一位片和较高等待时间位片的等待时间的差。

Description

管理多周期数据传送请求的分布式仲裁的方法和处理器
技术领域
本发明通常涉及处理器和计算系统,尤其涉及处理器内有关多个位片(slice)之间具有不同等待时间(latency)的请求和数据路径的分布式总线仲裁。
背景技术
现在的高速处理器包括高级集成和异步设计,其容许在各种资源和一个或多个处理器核心,高速缓存以及存储器之间以高效率的方式通信,使得以接近处理器中数字信号传播极限的速率进行数据传送和其它的通信。
尤其,允许高速处理器的内部总线在具有不同等待时间的路径上传送数据和命令,并提供了保证传送数据和命令被正确确认和按序传递,而不需要受限于最大传播时间的长同步周期的逻辑。在当今的处理器中尤其如此,其中数据值,程序指令和命令,以及控制信号可以通过许多逻辑级(logic stages)进行管道(pipeline)传送,其中以上信号穿过的逻辑级的数量极大地依赖于芯片布局。
处理系统中这样的一个逻辑实现是分布式仲裁方案,其包括处理器核心仲裁器和一个或多个位片仲裁器。分布式方案容许早期的从资源到处理器核心的数据传送请求指示。在分布式仲裁实例中,早期指示的定时依赖于数据所处的物理位置,而集中式仲裁方案通常只在进行以下操作所需的附加周期之后提供这样的指示:向中心点传递请求,作出仲裁决定以及之后向处理器核心传递决定。因此,在向处理器核心提供关于数据可用性的指示时,集中式仲裁导致太大的延迟。
在这样的分布式仲裁方案中,当连接到位片仲裁器的资源准备好从一个或多个位片向处理器核心传送数据时,位片仲裁器确定传送所需总线的分配,从而向位片指示其何时可以将自身的数据放置在总线上。同时并且并行地,向核心仲裁器发送请求,使得处理器核心接收数据传送操作的早期指示。在经过请求方位片的各个数据等待时间之后,核心仲裁器接收请求,在位片仲裁器上并行方式执行相同的仲裁判定,向处理器核心提供有关数据将要到达的早期指示,并随后确保在位片数据可供锁存(或加载)于处理器核心的适当的时机,传送位片的有效数据。
通常,处理单周期数据传送操作序列所需的逻辑不很复杂,因为已知每个请求方的等待时间,并且当根据每个位片的已知等待时间批准另一个位片的请求之后,可以在特定周期中阻塞位片仲裁器(以及以并行方式的核心仲裁器)上的其它批准。此外,根本不需要阻塞最长等待时间的位片的请求,并且在这样的周期中阻塞较快位片的请求,其中数据会被发送到核心,但未被任何一个位片仲裁器或者核心仲裁器选择加载,因为当前已经选择从先前所仲裁的请求到达的数据。
如上所述,核心仲裁器象位片仲裁器一样进行同样的仲裁判定,但由于从位片到核心仲裁器的不同等待时间,不必按照与位片仲裁器一样的顺序进行批准。然而位片仲裁器批准的相同请求均被核心仲裁器批准。因为位片仲裁器和核心仲裁器的批准顺序不一定匹配,数据在处理器核心重新同步(例如,通过使用所返回数据的地址或标记)。核心仲裁器确定经由多路复用器将位片连接到核心的各个总线的选择。核心仲裁器确定在给定周期中批准的适当位片,并因此能产生适当的多路复用器选择器以将数据加载进适当的核心寄存器。
如上所述,根据每个位片的等待时间的已知周期差,核心仲裁器根据与位片仲裁器的判定批准逻辑相一致的逻辑作出判定。通过知道位片仲裁器何时批准相关总线给每个位片,可以使用从位片提供的全部数据,并且不必通知位片有关数据传输失败的情况(由于在给定周期里对多路复用器的争用),因为分布式仲裁方案实现了位片仲裁器批准的所有传送的成功完成。
然而,如果这样的系统遇到多周期请求,数据会不正确地提供给处理器核心,迫使执行重试操作或不正确的数据传送。例如,在最低等待时间位片的紧随后面的请求之前,位片仲裁器将批准涉及最高等待时间位片的请求。但是,核心仲裁器将首先批准来自最低等待时间位片的请求,因为最高等待时间位片请求更迟才会到达。对于单周期请求,以上所述的阻塞足够防止这种失序判定之间的多路复用器争用,但是当已经批准多周期请求时,已有的阻塞方案不足以避免争用。
因此希望提供一种仲裁系统和方法,其在分布式仲裁系统中提供改进的多周期数据传送操作。
发明内容
本发明提供一种在传送提供方的多个位片和传送接收方之间进行仲裁的方法,其中位片经由多个相关总线连接到传送接收方,多个位片中的每个均具有到传送接收方的不同等待时间,并且所述方法包括步骤:接收涉及所述多个位片中的一个或多个的传送请求;确定所述传送请求是否需要多个数据周期;当确定所述传送请求需要多个数据周期时,只批准所述总线中的一个相关总线给所述多个位片中的第一位片;以及当确定所述传送请求不需要多个数据周期时,批准相关总线给所述传送请求所涉及的所有所述多个位片;在所述传送接收方对接收的传送请求进行进一步仲裁。
本发明提供一种处理器,包括:在所述处理器内的传送接收单元,其接收与传送请求相关的数据;连接到所述传送接收单元的资源,其具有多个位片,每个位片通过多个总线中的相关总线连接到所述传送接收单元,所述位片具有到所述传送接收单元的不同请求等待时间;以及连接到所述多个位片的位片仲裁器,用于仲裁对所述总线的请求,其中所述位片仲裁器包括用于产生有关单个请求是否是多周期传送请求的指示的电路,借以根据所述指示的状态改变所述位片仲裁器的操作;在所述处理器内的核心仲裁器,用于在所述传送接收单元仲裁所述位片仲裁器作出的决定。
本发明提供一种处理器,包括:在所述处理器内的传送接收单元;连接到所述传送接收单元的资源,其具有多个位片,所述多个位片具有到所述传送接收单元的不同等待时间;连接到所述多个位片的位片仲裁器,用于仲裁针对将所述多个位片连接到所述传送接收单元的总线的请求;以及用于确定单个请求是否多周期传送请求的装置,借以根据所述指示的状态改变所述位片仲裁器的操作;在所述处理器内的核心仲裁器,用于在所述传送接收单元仲裁所述位片仲裁器作出的决定。
通过一种方法和装置实现了提供分布式仲裁方案中的改进多周期数据传送操作的目的。该方法确定数据传送操作是否是多周期请求,并响应有关请求是多周期请求的确定,只将相关总线批准给第一位片。该方法还阻塞与第一位片相比具有更低等待时间的另一请求方位片的任何请求,直到已经过在其它请求方位片和最长等待时间位片之间的等待时间差加上预定周期计数。该方法还阻塞第一位片的进一步请求,直到已经过预定周期计数。该方法还阻塞与第一位片相比具有更高等待时间的位片的请求,直到已经过预定周期计数器数值,该数值小于第一位片和较高等待时间位片的等待时间差。该装置包括用于在根据本发明实施例的处理器中执行本发明方法的逻辑。
通过实施本发明的技术方案,可以在布式仲裁系统中处理多周期数据传送操作并避免多路复用器争用。
通过下面结合附图对本发明优选实施例的详细描述可以理解本发明的上述和其它目的,特征及优点。
附图说明
所附权利要求中阐明了被认为是本发明特点的新颖特征。然而,在阅读时结合附图(其中同样的引用编号指明同样的部分)并参照以下图解实施例的具体说明,将会对本发明本身,以及优选使用模式,进一步的目的,及其优点,获得最好的理解,并且:
图1是根据本发明的实施例的处理器的模块图。
图2是示出图1的处理器10内的进一步细节的模块图。
图3根据本发明的实施例示出了处理器内的数据传送操作的时序图。
图4和图5示出了根据本发明一个实施例的方法的流程图。
具体实施方式
现在参照图,尤其参照图1,其描述了处理器10的模块图,处理器10体现化了根据本发明的方法和装置。处理器10通常是被使用在对称多处理系统(SMP)中的处理器,在SMP中,其它处理器执行的指令可涉及高速缓存中或者加载到处理器10内的资源的值。然而,本发明的技术适用于具有数据传送机制的任何处理器,在数据传送机制中,从传送提供方(其可以是最终响应传送接受方所发起的命令的完成请求)提供传送请求。单处理器系统可以包括这样的数据传送机制,例如,当从存储器或其它资源向处理器核心重新加载数值时。术语数据传送在本发明的上下文中指这样的操作,其中在数据提供方发起传送数据的立即请求,并在特定的示例中,该术语是指从请求数据传送的资源到处理器核心的操作。“数据传送”规定的传送类型也不仅仅局限于“数据值”的传送(例如,程序使用的变量或常数),而且包括程序指令,内部命令,地址值,标记等等。
处理器10包括核心执行单元14,其控制处理器10中程序指令的执行和数据的移动。核心执行单元14被连接到各种资源,例如指令定序器单元12,预取单元13,高速缓存接口单元16,板上(on-board)L1高速缓存17和L2高速缓存18,以及浮点单元15。一些数据传送指令用于单数据值,其能在单周期内从特定请求方位片获得,但核心执行单元14也支持多周期数据传送指令,但需要协调多个总线周期以获得多个数据值,例如,这些数据值可以是L2高速缓存18的一个或多个高速缓存线。
在其它到核心执行单元14的资源连接以及除了核心执行单元14之外的设备之间的连接中,也可以实现数据传送指令。在这里公开的总线仲裁技术可应用于处理系统的任何部分,只要其需要数据传送操作,并且具有连接到共享总线的多个位片(数据提供方),用于向处理系统中的另一个单元(传送接收单元)传递数据,程序指令或命令。
现在参考图2,其描述了处理器10中的具体电路。使用L2高速缓存18和核心执行单元14之间的连接图解本发明的技术,但可以理解,本发明可扩展到如上所述处理器10中其它单元间的连接,并且也可以应用于通常的仲裁方案,例如在高速互联总线上的多个处理器之间,其中接收单元需要早期数据传递指示,并因此在接口中实现分布式仲裁。
位片M1,M2和M3是L2高速缓存18中的存储单元,其到核心执行单元14具有不同的等待时间,不同的等待时间可以是由于L2高速缓存18的结构,或者由于处理器10中位片M1,M2和M3的物理位置引起的。三个位片的图示是示例性的,并且本发明的技术延及任意数量的位片,或者通常延及任何类型的数据提供方。通过将核心执行单元14连接到L2高速缓存18的相关总线28A-28C,位片M1,M2和M3被连接到核心执行单元14。针对核心执行单元14的传递或数据也是示例性的,并且本发明的技术适用于任何数据接受方。请求路径26可以是单独的控制路径,也可以实际是总线28A-28C,其中可以通过总线28A-28C向核心仲裁器22发送数据传送请求指示。位片仲裁器24被连接到位片M1,M2和M3,并接收来自位片M1,M2和M3的每个的请求指示。位片仲裁器24的任务是避免从位片M1,M2和M3到核心执行单元14中的多路复用器20的数据传递争用和失序。由于多路复用器20每个周期只能从总线28A-28C中的一个总线选择数据,位片仲裁器的任务是避免从位片M1,M2和M3发送会在同一周期到达多路复用器20的数据,以避免丢失从多个位片同时到达的数据。核心仲裁器22的任务是确定在任何给定的周期中什么数据(如果有)源于多路复用器20。多路复用器20作为处理器核心中的集中式多路复用器示出,但根据本发明其它实施例的系统的多路复用器可以引入分布式多路复用器,其中数据传送操作的数据目的地依赖于多路复用器地址,并且可以调整数据有效信号的定时以便和不同多路复用器等待时间相一致。
核心仲裁器22的任务是确定与位片仲裁器24批准的请求相关的数据的顺序和周期定时,使得到达核心执行单元14的数据的顺序和周期定时(其受位片仲裁器24作出的判定的控制)被正确地确定,以便向核心执行单元14正确地加载数据。对于在这里给出的示例,来自位片M1,M2和M3的请求等待时间L1,L2和L3不相同,并且从最高等待时间L3到最低等待时间L1进行排序。核心仲裁器22还传递具有L4等待时间的数据有效信号,其操作多路复用器/锁存器20以便向核心执行单元14中的寄存器传递适当的数据。数据有效信号的声明(assertion)的附加等待时间允许杀死/阻塞请求,该请求因为没有被位片仲裁器24批准而随后已经无效。同样地,从位片M1,M2和M3的请求开始数据被延迟L4,使得数据有效声明与所提供的数据对齐。如果数据和数据有效信号没有被延迟(例如,同时从位片M1,M2和M3发送的请求和数据),位片仲裁器24会没有时间阻塞到总线28A-28C的数据加载,其之后会在多路复用器20被拒绝,从而消耗不必要的处理能力,并使位片忙于不必要的任务。没有与延迟相关的带宽惩罚,因为数据有效/数据延迟只代表请求和数据之间的固定周期偏移。
在本发明的上下文中,对于多周期操作,重要的是核心仲裁器22能够在重新加载总线已经被位片仲裁器24批准给较高等待时间位片用于多周期操作时,杀死从处于传送中的位片M1和M2向核心仲裁器22传递的请求。以上所描述的操作在核心仲裁器22上执行位片仲裁器24确定的批准,使得位片仲裁器24没有批准,但被核心仲裁器22接收的请求不会被核心仲裁器22错误地批准。数据有效L4>=L3-L1等待时间关系提供实现杀死这种请求的能力所需的时间。对于单周期操作,表1描述了位片仲裁器24的操作。
M1 M2 M3 周期1中的批准 周期1+L3-L2中的阻塞 周期1+L3-L1中的阻塞 周期1+L2-L1中的阻塞
0 0 0
0 0 1 M3 M2 M1
0 1 0 M2 M1
0 1 1 M2,M3 M2 M1 M1
1 0 0 M1
1 0 1 M1,M3 M2 M1
1 1 0 M1,M2 M1
1 1 1 M1,M2,M3 M2 M1 M1
表1
表1的左三列示出了来自位片M1,M2和M3的每个、提供给核心仲裁器22的请求,其中以逻辑“1”代表请求状态,以逻辑“0”代表非请求状态。在周期1中针对位片请求的所有组合批准全部请求的位片,假定没有任何周期已经处于到周期1的核心的进程中,即周期1是位片仲裁器24已经批准任何请求之前的初始状态。在请求已被批准后,必须在由与传输到核心执行单元14的数据相关的较长等待时间所决定的周期中,阻塞来自位片M1和M2的进一步的请求。
例如,如果全部三个位片M1,M2和M3被容许在周期1开始传送数据,位片仲裁器24不必阻塞来自位片M3的进一步请求,因为在位片M3的下一个请求广播到核心仲裁器22(在周期L3+1)之前,第一传送周期将已经完成(在周期L3)。然而,在请求会引起其数据到达与位片M3的请求的数据到达之间的冲突的周期中,必须阻塞来自位片M1和M2的进一步请求。因为在请求后数据被延迟了L4周期,另一个位片的数据会与位片M3的数据在同一周期到达,并且多路复用器20将不能加载两个位片的数据。在请求会与位片M2的请求同时到达的周期中,即在数据会在周期L2到达的周期中(其对于位片M1是周期1+L2-L1),位片M1的请求必须也被阻塞。通常,该表反映了特定周期的请求的阻塞,其中位片仲裁器24批准的先前的请求将到达核心仲裁器22,从而阻止满足多个位片的请求的数据同时到达。
以上描述假定请求等待时间等于位片的数据等待时间。如果数据等待时间与请求等待时间相差固定数量的周期(除了已经提及的数据/数据有效等待时间之外),批准周期必须被延迟一个等于超出的数据等待时间的量(例如,如果数据等待时间比请求等待时间长4个周期,该表将被示出在周期4批准,而不是周期1)。如果数据等待时间差发生变化,系统会或者等待最大数据等待时间,或者执行复杂逻辑以延迟涉及将至周期的最大数据等待时间。
以上仲裁方案可以无差错地实施,即使核心仲裁器22和位片仲裁器24在不同时间批准请求,因为请求类型被传送到核心执行单元14,具有与数据一样的等待时间,即,偏移L4周期。位片仲裁器24以一个顺序批准请求,核心仲裁器22以不同顺序批准请求(如果请求在位片的不同等待时间之内),但数据能始终被分类到适当的目的地,因为请求和数据的等待时间对于每个位片是相同的,因此数据相对每个请求偏移L4周期。根据表1,如果请求同时到达核心仲裁器22,首先批准最长等待时间位片的请求,其与位片仲裁器24的批准相一致。于是根据以上所描述的过程,通过批准请求,核心仲裁器22能始终使总线28A-28C上提供的数据与提供方位片相关联。
然而,当实施多周期请求时(即,对于那些周期类型,需要多周期以便满足数据传送操作),在表1中概述的仲裁方案失败,因为会批准各个位片的请求,同时仍然满足另一个位片的多周期请求,单周期请求的阻塞不会阻止多周期操作与其它多周期或单周期操作之间的多路复用器争用。为了阻止多周期操作和其它操作的数据之间的争用,分布式仲裁系统可以被更新成将进一步操作的请求阻塞一段足够保证将发生的多周期数据传送操作能够完成的时间。为了完成有效的操作,位片仲裁器24和核心仲裁器22使用多周期操作的指示,其通常是可根据请求指示解码的操作类型,但可选地,可以通过单独的控制路径传递。
表2示出了当全部请求是多周期类型时,位片仲裁器24的动作。
M1 M2 M3 周期1中的批准 周期1+K+L3-L2中的阻塞 周期1+K+L3-L1中的阻塞 周期1+K+L2-L1中的阻塞 周期1+K中的阻塞 周期1+K-(L3-L2)中的阻塞 周期1+K-(L3-L1)中的阻塞 周期1+K-(L2-L1)中的阻塞
0 0 0
0 0 1 M3 M2 M1 M3
0 1 0 M2 M1 M2 M3
0 1 1 M3 M2 M1 M3
1 0 0 M1 M1 M3 M2
1 0 1 M3 M2 M1 M3
1 1 0 M2 M1 M2 M3
1 1 1 M3 M2 M1 M3
表2
首先批准具有最长等待时间的请求方位片。在随后的所有周期中阻塞其它位片的请求,直到经过预先确定的周期计数器值“K”,其中K至少是完成多周期数据传送操作所需的最小周期数量。可以发现,在批准最长等待时间位片请求之后,位片被阻塞,直到当经过K个周期时的周期1+K。另外,较低等待时间位片的多周期请求被阻塞,直到周期1+K,并且也经过了等于其等待时间差的若干周期,以保证多周期传送完成,并且在多周期传送请求传播到核心执行单元14之前,核心仲裁器22不会接收来自较低等待时间位片的多周期请求。
另外,来自较高等待时间位片的多周期请求被阻塞若干周期,这些周期少于K周期完成间隔并且相差所批准位片和每个较高等待时间位片之间的等待时间差。例如,当位片M1是被批准执行多周期传送的位片时,位片M2的请求被阻塞,直到周期1+K-(L2-L1),并且位片M3的请求被阻塞,直到周期1+K-(L3-L1),从而延迟来自较高等待时间位片的请求,直到避免与传播到核心执行单元14的多周期请求的可能数据冲突。
当位片仲裁器24接收的请求是单周期和多周期请求的混合时,以下规则提供了处理方案的选择(表1方案或者表2方案),以响应请求而阻塞和批准总线28A-28C。
1)如果任何较低等待时间请求是针对多周期操作的,根据表2的规则,此请求不被批准,不管最高等待时间请求是单周期还是多周期的。
2)如果最高等待时间请求是针对单周期操作的,根据表1的规则,批准其它较低等待时间单周期请求。
3)如果最高等待时间请求是针对多周期操作的,在其它请求发生在周期1的情况下,或者在表1针对请求方位片所示的阻塞周期之前,根据表1的规则批准其它较低等待时间单周期请求。在针对位片的特定阻塞周期之后,根据表2的规则,阻塞此位片发出的任何请求。
例如,如果位片M1,M2和M3全在周期1请求,并且来自位片M1和M3的请求是多周期请求,但来自位片M2的请求是单周期请求,根据以上规则1和规则2,位片M3和M2被批准其总线,但根据规则1,M1没有被批准其总线。在周期2,如果位片M1发出单周期请求,则位片M1被批准其总线,因为根据规则3和表1,周期2中的请求小于1+(L3-L1)=3,因此请求不被阻塞。
除了对位片仲裁器24的改变外,也修改核心仲裁器22以纠正当来自较高等待时间位片的单周期或多周期传送到达时(其在位片仲裁器24根据表1或者表2,以及以上混合单周期或多周期请求的规则得到批准),不正确地批准较低等待时间位片的多周期操作的情况。表3示出了核心仲裁器22必须“杀死”的多周期请求。“杀死”的实施不影响位片仲裁器24或位片M1,M2和M3,但阻止核心仲裁器22批准已被位片仲裁器24拒绝的请求,并且阻止先前所拒绝的请求的数据有效信号的声明(否则会在核心执行单元14多路复用和/或锁存无效或不正确的数据)。
周期1中的批准 杀死此前在周期1-(L3-L2)至周期1中批准的请求 杀死此前在周期1-(L3-L1)至周期1中批准的请求 杀死此前在周期1-(L2-L1)至周期1中批准的请求
M3 M2 M1
M2 M1
表3
在表3中可以看到,核心仲裁器22“杀死”了先前在周期1之前的周期中批准的请求,其中杀死操作有效地导致到达的被拒绝请求被忽略。表3根据在周期1中针对执行多周期重新加载操作的位片的批准,示出了请求的杀死。对于位片仲裁器24在周期1之前批准的较低等待时间位片的多周期请求,如果其在多周期重新加载位片和请求方位片之间的等待时间差内被批准,则该请求被杀死。因此,产生数据有效所需要的时间必须比位片之间的最长等待时间差要长。例如,在图解实施例中,L4>=L3-L1。
与位片仲裁器24中的周期计数器类似,核心仲裁器22也使用计数器来阻塞随后的单周期和多周期操作。在批准多周期操作之后,计数器将后续操作的批准阻塞从批准周期开始的K+1个周期。
如表4所示,由于先前的多周期传送而会被核心仲裁器22阻塞的某些多周期请求也必须允许仲裁。
周期1中的批准 容许周期1到周期1+(L3-L1)之间的请求 容许周期1到周期1+(L2-L1)之间的请求 容许周期1到周期1+(L3-L2)之间的请求
M1 M3 M2
M2 M3
表4
如果核心仲裁器22针对多周期请求在周期1批准较低等待时间位片,则到达核心仲裁器22、优先于较低等待时间请求而被位片仲裁器24批准的较高等待时间位片请求,必须被容许在核心仲裁器22上进行仲裁。表4描述了容许在(较低等待时间)多周期请求数据提供方和先前在位片仲裁器24上批准总线的(较高等待时间)位片之间的等待时间差内到达的请求的情况。
现在参考图3,其描述了以上所述系统的总线操作。以管道单元的形式(其对于每个位片,实际上可以是单总线)描述了核心执行单元14的请求/数据传送,所述管道单元传递请求指示29和多路复用器输入数据29A。请求线RM1,RM2和RM3是针对位片仲裁器24的数据传送请求的指示。请求管道29和数据管道29A的单元对应于周期,最左单元为周期1。在周期1,声明并批准全部三个请求,因为指示多周期操作的MULTI没有声明。在周期2,由于单周期等待时间而从M1传递请求。在周期5,从M2传递请求,并在周期7,从M3传递请求。在周期3再次声明RM2,但因为基于位片M3在周期1的批准(见表1)的、用于阻塞位片M2的批准的公式是1+(L3-L2)=周期1+6-4=周期3,RM2被阻塞在位片仲裁器24上。以上批准拒绝保证位片M2的数据不会在核心执行单元14上与周期7+L4(在此示例中,L4=6)中位片M3的数据争用多路复用器20(c1指示潜在的争用关系)。注意,两个请求均在周期7到达核心仲裁器22,并且核心仲裁器22优选于位片M2地选择位片M3,因为位片M3是具有最长等待时间的位片。
然后在周期4批准M2请求,其在周期8到达核心仲裁器22,并在周期14传递数据。在周期7产生来自M2的多周期请求,其被批准,并请求在周期11开始到达核心执行单元14。在周期12再次为单周期操作而声明RM1,RM2和RM3,但RM1被阻塞到7+K+L2-L1=周期20,RM2被阻塞到7+K=周期17,RM3被阻塞到7+K-(6-4)=周期15。只有来自位片仲裁器24批准的位片的重新加载数据实际被加载到重新加载总线28上,并且所加载的数据在由L4延迟(在示例中为6个周期)和位片的等待时间确定的周期到达核心。
通过总线管道M1,M2和29A描述了上述批准的请求的数据,所述管道29A代表来自总线28A-28C、在多路复用器20的输入上的有效数据。数据有效信号将数据锁存进核心执行单元14内的寄存器中(或者多路复用器20的内部锁存器)。数据/数据有效信号和到达核心仲裁器24的请求之间的延迟是L4,这里描述为6个周期。在请求到达之后的L4周期的时刻,经由多路复用器20,数据被加载进核心执行单元14。因此,通过如上所述根据表2在位片仲裁器24中阻塞请求,位片仲裁器24能在以上图解的多周期操作的结束(周期7+K)之后立即作出的批准被拒绝,直到已经过执行刚完成的多周期操作的位片和较高等待时间位片之间的等待时间差,从而阻止核心仲裁器22拒绝此种请求,使得核心仲裁器22不会错误地拒绝在多周期操作之后得到批准的请求。
现在参考图4和图5,其描述了根据本发明实施例的方法。位片仲裁器24接收数据传送请求(步骤30),并且如果请求还没有被先前的处理阻塞(判定31),则批准最高等待时间请求(步骤32),并且阻塞全部较低等待时间的多周期请求。如果最高等待时间请求不是多周期操作(判定33),则默认单周期处理批准全部请求方位片,并且在传递对应于先前所批准的位片数据传递的周期中,阻塞进一步的请求(步骤34)。否则,如果最高等待时间请求是多周期请求,在请求的发生先于默认单周期处理的阻塞周期的情况下,批准较低等待时间单周期请求(步骤35)。然后阻塞较低等待时间位片的请求,直到已经过最高等待时间和位片等待时间之间的相应差值加上预先确定的计数器值(步骤38)。并且,来自最高等待时间(所批准的)位片的进一步请求被阻塞,直到已经过预先确定的计数器值(步骤40)。最后,来自较高等待时间位片的请求被阻塞,直到已经过预先确定的计数器值减去较高等待时间和位片等待时间之间的相应差值(步骤42)。
在核心仲裁器22,较低等待时间多周期请求被杀死,如果其在先前针对较高等待时间多周期操作的批准的计数值K内到达(步骤43)。可选地,较低等待时间多周期请求被杀死,如果其与较高等待时间请求同时到达,或者在先到达,并且在等于多周期请求方等待时间和较低等待时间请求方等待时间之间的差的若干周期内到达(步骤44)。较高等待时间多周期请求被容许,如果其与较低等待时间多周期请求同时到达,或者在后到达,并且在等于多周期请求方等待时间和较低等待时间多周期请求方等待时间之间的差的若干周期内到达(步骤46)。
通常,当位片仲裁器接收请求时,同时执行以上描述的位片仲裁器步骤,并且当请求到达核心仲裁器时,同时执行以上描述的核心仲裁器步骤,其中由于具体逻辑设计并且根据阻塞,杀死和容许操作的具体时序,可能会有微小的变化。
虽然已经结合其中的优选实施例具体示出并描述了本发明,可以理解,对于那些本领域的技术人员,可以在不违背本发明的精神和范围之内,在形式上和其中的细节上实现上述的和其它的改变。

Claims (23)

1.一种在传送提供方的多个位片和传送接收方之间进行仲裁的方法,其中位片经由多个相关总线连接到传送接收方,多个位片中的每个均具有到传送接收方的不同等待时间,并且所述方法包括步骤:
接收涉及所述多个位片中的一个或多个的传送请求;
确定所述传送请求是否需要多个数据周期;
当确定所述传送请求需要多个数据周期时,只批准所述总线中的一个相关总线给所述多个位片中的第一位片;以及
当确定所述传送请求不需要多个数据周期时,批准相关总线给所述传送请求所涉及的所有所述多个位片;
在所述传送接收方对接收的传送请求进行进一步仲裁。
2.如权利要求1所述的方法,还包括选择所述传送请求所涉及的所述多个位片中具有最高等待时间的位片,以作为所述多个位片中的所述第一个位片。
3.如权利要求1所述的方法,还包括当确定所述传送请求需要多个数据周期时,在所述传送提供方阻塞第二个位片的请求,直到经过了预定周期计数器值周期,加上所述多个位片中的所述第一个位片的所述等待时间和所述第二个位片的所述等待时间之间的差值,其中所述第二个位片与所述多个位片中的所述第一个位片相比,具有较低等待时间。
4.如权利要求1所述的方法,还包括当确定所述传送请求需要多个数据周期时,在所述传送提供方阻塞所述第一个位片的进一步请求,直到经过预定周期计数器值。
5.如权利要求4所述的方法,还包括当确定所述传送请求需要多个数据周期时,在所述传送提供方阻塞第二个位片的请求,直到经过所述预定周期计数器值,减去所述第二个位片的所述等待时间和所述多个位片中的所述第一个位片的所述等待时间之间的差值,其中与所述多个位片中的所述第一个位片相比,所述第二个位片具有较低等待时间。
6.如权利要求5所述的方法,还包括:
选择所述传送请求所涉及的所述多个位片中的最高等待时间位片,以作为所述多个位片中的所述第一个位片;以及
当确定所述传送请求需要多个数据周期时,在所述传送提供方阻塞第三个位片的请求,直到经过预定周期计数器值,加上所述多个位片中的所述第一个位片的所述等待时间和所述第三个位片的所述等待时间之间的差值,其中与所述多个位片中的所述第一个位片相比,所述第三个位片具有较低等待时间。
7.如权利要求6所述的方法,还包括在所述传送接收方杀死第二个位片的请求,直到经过预定周期计数值,其中所述第二个位片与所述多个位片中的所述第一个位片相比,具有较低等待时间。
8.如权利要求6所述的方法,还包括:
在所述传送接收方杀死第二个位片的请求,其中与所述多个位片中的所述第一个位片相比,所述第二个位片具有较低等待时间,并且所述请求是在所述批准之后,所述多个位片的所述第一个位片的所述等待时间和所述第二个位片的所述等待时间之间的差值内作出的;以及
当经过第三个位片的等待时间和所述多个位片的所述第一个位片的所述等待时间之间的差值时,在所述传送接收方上允许仲裁所述第三个位片的请求,其中与所述多个位片的所述第一个位片相比,所述第三个位片具有较低等待时间。
9.如权利要求1所述的方法,还包括当确定所述传送请求需要多个数据周期时,在所述传送提供方阻塞第二个位片的请求,直到经过预定周期计数器值,减去所述第二个位片的所述等待时间和所述多个位片的所述第一个位片的所述等待时间之间的差值,其中与所述多个位片的所述第一个位片相比,所述第二个位片具有较高等待时间。
10.如权利要求1所述的方法,还包括在所述传送接收方杀死第二个位片的多周期请求,其中与所述多个位片的所述第一个位片相比,所述第二个位片具有较低等待时间,并且所述请求是在所述批准之后,所述多个位片的所述第一个位片的所述等待时间和所述第二个位片的所述等待时间之间的差值内作出的。
11.如权利要求1所述的方法,还包括在所述传送接收方杀死第二个位片的请求,直到经过预定周期计数值,其中与所述多个位片的所述第一个位片相比,所述第二个位片具有较低等待时间。
12.如权利要求1所述的方法,还包括当经过第二个位片的等待时间和所述多个位片的所述第一个位片的所述等待时间之间的差值时,在所述传送接收方允许仲裁所述第二个位片的多周期请求,其中与所述多个位片的所述第一个位片相比,所述第二个位片具有较高等待时间。
13.一种处理器,包括:
在所述处理器内的传送接收单元,其接收与传送请求相关的数据;
连接到所述传送接收单元的资源,其具有多个位片,每个位片通过多个总线中的相关总线连接到所述传送接收单元,所述位片具有到所述传送接收单元的不同请求等待时间;以及
连接到所述多个位片的位片仲裁器,用于仲裁对所述总线的请求,其中所述位片仲裁器包括用于产生有关单个请求是否是多周期传送请求的指示的电路,借以根据所述指示的状态改变所述位片仲裁器的操作;
在所述处理器内的核心仲裁器,用于在所述传送接收单元仲裁所述位片仲裁器作出的决定。
14.如权利要求13所述的处理器,其中当所述指示指明多周期传送请求时,所述位片仲裁器只批准所述总线中的相关总线给所述多个位片的所述第一个位片,并且在所述请求是单周期传送请求的情况下,批准相关总线给全部所涉及的位片。
15.如权利要求14所述的处理器,其中所述位片仲裁器选择请求所涉及的所述多个位片的最高等待时间位片,以作为所述多个位片的所述第一个位片。
16.如权利要求14所述的处理器,其中所述位片仲裁器阻塞与所述多个位片的所述第一个位片相比具有较低等待时间的第二个位片的请求,直到经过预定周期计数器值,加上所述多个位片的所述第一个位片的所述等待时间和所述第二个位片的所述等待时间之间的差值。
17.如权利要求14所述的处理器,其中所述位片仲裁器阻塞所述第一个位片的进一步请求,直到经过预定周期计数器值。
18.如权利要求14所述的处理器,其中所述位片仲裁器阻塞与所述多个位片的所述第一个位片相比具有较高等待时间的第二个位片的请求,直到经过所述预定周期计数器值,减去所述第二位片的所述等待时间和所述多个位片的所述第一个位片的所述等待时间之间的差值。
19.如权利要求14所述的处理器,还包括连接到所述多个位片的核心仲裁器,用于在所述传送接收单元执行所述位片仲裁器作出的决定,其中所述核心仲裁器包括计数器电路,用于杀死与所述多个位片的所述第一个位片相比具有较低等待时间的第二个位片的、在所述批准之后作出的多周期请求,直到经过预定计数值。
20.如权利要求14所述的处理器,还包括连接到所述多个位片的核心仲裁器,用于在所述传送接收单元执行所述位片仲裁器作出的决定,其中所述核心仲裁器包括一电路,用于杀死与所述多个位片的所述第一个位片相比具有较低等待时间的第二个位片的、在所述批准之后所述多个位片的所述第一个位片的所述等待时间和所述第二个位片的所述等待时间之间的差值内作出的多周期请求。
21.如权利要求14所述的处理器,还包括连接到所述多个位片的核心仲裁器,用于在所述传送接收单元执行所述位片仲裁器作出的决定,其中所述核心仲裁器包括一电路,用于仲裁与所述多个位片的所述第一个位片相比具有较高等待时间的第二个位片,当经过所述第二个位片的所述等待时间和所述多个位片的所述第一个位片的所述等待时间之间的差值时作出的多周期传送请求。
22.一种处理器,包括:
在所述处理器内的传送接收单元;
连接到所述传送接收单元的资源,其具有多个位片,所述多个位片具有到所述传送接收单元的不同等待时间;
连接到所述多个位片的位片仲裁器,用于仲裁针对将所述多个位片连接到所述传送接收单元的总线的请求;以及
用于确定单个请求是否多周期传送请求的装置,借以根据所述指示的状态改变所述位片仲裁器的操作;
在所述处理器内的核心仲裁器,用于在所述传送接收单元仲裁所述位片仲裁器作出的决定。
23.如权利要求22所述的处理器,还包括:
连接到所述多个位片的核心仲裁器,用于在所述传送接收单元执行所述位片仲裁器作出的决定;以及
当所述确定装置确定单个多周期传送请求时,用于保持从所述位片提供给所述传送接收单元的数据传送数据的到达顺序。
CNB2004100335162A 2003-04-10 2004-04-06 管理多周期数据传送请求的分布式仲裁的方法和处理器 Expired - Fee Related CN100373360C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/411,463 US6950892B2 (en) 2003-04-10 2003-04-10 Method and system for managing distributed arbitration for multicycle data transfer requests
US10/411,463 2003-04-10

Publications (2)

Publication Number Publication Date
CN1551002A CN1551002A (zh) 2004-12-01
CN100373360C true CN100373360C (zh) 2008-03-05

Family

ID=33130986

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100335162A Expired - Fee Related CN100373360C (zh) 2003-04-10 2004-04-06 管理多周期数据传送请求的分布式仲裁的方法和处理器

Country Status (3)

Country Link
US (1) US6950892B2 (zh)
JP (1) JP3919765B2 (zh)
CN (1) CN100373360C (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595394B1 (en) 2003-06-26 2013-11-26 Nvidia Corporation Method and system for dynamic buffering of disk I/O command chains
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7143220B2 (en) 2004-03-10 2006-11-28 Intel Corporation Apparatus and method for granting concurrent ownership to support heterogeneous agents in on-chip busses having different grant-to-valid latencies
US7304974B2 (en) * 2004-05-14 2007-12-04 Cisco Technology, Inc. Supporting a network behind a wireless station
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7469318B2 (en) * 2005-02-10 2008-12-23 International Business Machines Corporation System bus structure for large L2 cache array topology with different latency domains
US7490200B2 (en) * 2005-02-10 2009-02-10 International Business Machines Corporation L2 cache controller with slice directory and unified cache structure
US7366841B2 (en) * 2005-02-10 2008-04-29 International Business Machines Corporation L2 cache array topology for large cache with different latency domains
US7809874B2 (en) * 2006-06-21 2010-10-05 International Business Machines Corporation Method for resource sharing in a multiple pipeline environment
GB2447690B (en) * 2007-03-22 2011-06-08 Advanced Risc Mach Ltd A Data processing apparatus and method for performing multi-cycle arbitration
US20100281289A1 (en) * 2007-11-21 2010-11-04 Kun-Yung Chang Bidirectional Memory Interface with Glitch Tolerant Bit Slice Circuits
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
TW201123732A (en) * 2009-12-31 2011-07-01 Ind Tech Res Inst Processing devices
US9588994B2 (en) * 2012-03-02 2017-03-07 International Business Machines Corporation Transferring task execution in a distributed storage and task network
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
KR102643803B1 (ko) * 2018-11-15 2024-03-05 삼성전자주식회사 멀티 호스트 컨트롤러와 이를 포함하는 반도체 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506972A (en) * 1987-09-30 1996-04-09 International Business Machines Corporation Computer system having dynamically programmable linear/fairness priority arbitration scheme
WO1997034237A2 (en) * 1996-03-15 1997-09-18 Sun Microsystems, Inc. Split transaction snooping bus and method of arbitration
US5933610A (en) * 1996-09-17 1999-08-03 Vlsi Technology, Inc. Predictive arbitration system for PCI bus agents
US6446151B1 (en) * 1999-09-29 2002-09-03 Agere Systems Guardian Corp. Programmable time slot interface bus arbiter

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5392422A (en) * 1992-06-26 1995-02-21 Sun Microsystems, Inc. Source synchronized metastable free bus
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US5623672A (en) * 1994-12-23 1997-04-22 Cirrus Logic, Inc. Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
US5987549A (en) * 1996-07-01 1999-11-16 Sun Microsystems, Inc. Method and apparatus providing short latency round-robin arbitration for access to a shared resource
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6275888B1 (en) * 1997-11-19 2001-08-14 Micron Technology, Inc. Method for configuring peer-to-peer bus bridges in a computer system using shadow configuration registers
US6700899B1 (en) * 1998-02-03 2004-03-02 Broadcom Corporation Bit slice arbiter
GB9805479D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
US6910092B2 (en) * 2001-12-10 2005-06-21 International Business Machines Corporation Chip to chip interface for interconnecting chips

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506972A (en) * 1987-09-30 1996-04-09 International Business Machines Corporation Computer system having dynamically programmable linear/fairness priority arbitration scheme
WO1997034237A2 (en) * 1996-03-15 1997-09-18 Sun Microsystems, Inc. Split transaction snooping bus and method of arbitration
US5933610A (en) * 1996-09-17 1999-08-03 Vlsi Technology, Inc. Predictive arbitration system for PCI bus agents
US6446151B1 (en) * 1999-09-29 2002-09-03 Agere Systems Guardian Corp. Programmable time slot interface bus arbiter

Also Published As

Publication number Publication date
JP2004318876A (ja) 2004-11-11
JP3919765B2 (ja) 2007-05-30
US6950892B2 (en) 2005-09-27
CN1551002A (zh) 2004-12-01
US20040205275A1 (en) 2004-10-14

Similar Documents

Publication Publication Date Title
CN100373360C (zh) 管理多周期数据传送请求的分布式仲裁的方法和处理器
US7290075B2 (en) Performing arbitration in a data processing apparatus
US11106510B2 (en) Synchronization with a host processor
US20190155768A1 (en) Sending data off-chip
US7546393B2 (en) System for asynchronous DMA command completion notification wherein the DMA command comprising a tag belongs to a plurality of tag groups
CN100472494C (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
CN1554050B (zh) 具有自适应优先权控制器的数据处理器及其方法
GB2414643A (en) Sending packets on a bi-directional ring network in odd or even clock cycles depending on the distance in clock cycles between source and destination nodes
JP2018521419A (ja) 共有メモリコントローラおよびそれを使用する方法
US6910062B2 (en) Method and apparatus for transmitting packets within a symmetric multiprocessor system
CN107003962B (zh) 保持计算系统中高速缓存一致性的方法、装置和计算系统
US10289331B2 (en) Acceleration and dynamic allocation of random data bandwidth in multi-core processors
CN101271434B (zh) 用于执行多周期仲裁的数据处理装置和方法
CN1322721C (zh) 使用总线的预仲裁装置及其方法
CN100435122C (zh) 具有外设访问保护的数据处理系统
CN101770357A (zh) 减少处理器中的指令冲突
US8918786B2 (en) Generating simulated stall signals based on access speed model or history of requests independent of actual processing or handling of conflicting requests
EP1096387A1 (en) An arbitration unit for a bus
US7167939B2 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
Mirosanlou et al. Parallelism-Aware High-Performance Cache Coherence with Tight Latency Bounds
JP2006215621A (ja) Dma制御装置
JPWO2004025478A1 (ja) メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
EP1069734B1 (en) Distributed service request bus using tokens to resolve collisions
US7363412B1 (en) Interrupting a microprocessor after a data transmission is complete
CN117785289B (zh) 保留站电路的控制方法、装置、保留站电路及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080305

Termination date: 20150406

EXPY Termination of patent right or utility model