CN103765852B - 为固定优先级仲裁器提供自适应带宽分配 - Google Patents

为固定优先级仲裁器提供自适应带宽分配 Download PDF

Info

Publication number
CN103765852B
CN103765852B CN201280041935.3A CN201280041935A CN103765852B CN 103765852 B CN103765852 B CN 103765852B CN 201280041935 A CN201280041935 A CN 201280041935A CN 103765852 B CN103765852 B CN 103765852B
Authority
CN
China
Prior art keywords
approval
requestor
request
moderator
enumerator
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.)
Active
Application number
CN201280041935.3A
Other languages
English (en)
Other versions
CN103765852A (zh
Inventor
K·W·林
E-L·邱
K·W·李
D·L·埃伯兰姆森
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN103765852A publication Critical patent/CN103765852A/zh
Application granted granted Critical
Publication of CN103765852B publication Critical patent/CN103765852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • 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
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus

Abstract

在一种实施例中,本发明包括一种用于以下的方法:在仲裁器中接收来自请求者的请求,检测在仲裁轮次的至少一个周期内没有一个请求者具有经鉴定的请求,并在仲裁轮次内至少一个请求者具有可用批准时防止与至少一个请求者相关联的批准计数器的批准计数重新加载。描述并要求保护其他实施例。

Description

为固定优先级仲裁器提供自适应带宽分配
背景
主流处理器芯片在高性能和低功率部分中正日益集成附加的功能性,例如图形、显示引擎、安全引擎、PCIeTM端口(即,遵照高速外设部件互连(PCI Express TM(PCIeTM)规范基础规范2.0版(2007年发布)(在下文中称为PCIeTM规范)的端口)和其他基于PCIeTM的外围设备,同时保持对与例如外设部件互连(PCI)局部总线规范3.0版(2002年公布)(在下文中称为PCI规范)之类的PCI规范兼容的设备的遗留系统支持。
由于来自服务器、台式机、移动设备、嵌入式设备、超移动设备和移动因特网设备部分的不同的要求,这样的设计被高度划分。不同的市场寻求使用把处理器核心、存储器控制器、输入/输出控制器和其他部分专用加速部件中的至少一些组合到单个芯片上的单片片上系统(SoC)解决方案。然而,由于把不同的知识产权(IP)块集成在单个管芯上的困难,聚集这些特征的设计发展缓慢。当IP块可以具有各种要求和设计独特性且可以要求多种专用线路、通信协议等等以便允许把它们合并到SoC中时,尤其如此。结果,所开发的每一SoC或其他高级半导体设备要求大量的设计复杂性和定制以便把不同的IP块合并到单个设备中。
一种这样的设计关注领域是仲裁。为了防止系统中的死锁和停机,可以存在仲裁器,以接收来自多个代理的请求并仲裁请求,以便提供对系统的资源的访问批准。在一些系统中,根据固定优先级特权执行仲裁,其中允许特定数量的批准,以便避免较高优先级的请求者挤占较低优先级的请求者。批准操作通常从最高优先级的请求者开始,且进行到最低优先级的请求者。在一些系统中,较低优先级的请求者仅可以在较高优先级的请求者没有活动请求或已经耗尽它们的批准计数时接收到批准。在不存在活动请求、参与仲裁的每一请求者已经耗尽它们的批准计数或不存在来自具有有效批准计数的任何请求者的活动请求时,请求者通常接收重新加载的批准计数。
在常规的固定优先级仲裁方案中,可能无法维持用于非管线化请求的带宽分配。在仲裁器中从出于某种原因不能维持背靠背请求的请求者接收到这些请求。结果,在具有管线化和非管线化输入/输出(I/O)请求者的平台中,非管线化请求者可以实现显著的带宽下降。
附图简述
图1是根据本发明的一种实施例的基本互连体系结构的框图。
图2是根据本发明的一种实施例的互连体系结构的进一步细节的框图。
图3是根据本发明的一种实施例的SoC的高级框图。
图4是根据本发明的另一实施例的系统的框图。
图5是根据本发明的一种实施例的仲裁系统的框图。
图6是根据本发明的一种实施例的仲裁器的框图。
图7是根据本发明的一种实施例的方法的流程图。
图8是根据本发明的一种实施例的系统的一部分的框图。
详细描述
在各种实施例中,可以为固定优先级仲裁器提供自适应带宽分配增强,以便增强对寻求访问所仲裁的资源的请求者的公平性。如下面将进一步讨论的,可以提供滞后级,以便控制何时可以重新加载与请求者相关联的批准计数。
各实施例可以用于多个不同类型的系统。作为示例,在此描述的实现可以结合诸如处理器等的半导体设备或可以在单个半导体管芯上制造的其他半导体设备使用。在各种特定实现中,该设备可以是片上系统(SoC)或包括各种同构和/或异构处理代理的其他高级处理器以及诸如联网组件等的附加组件,例如路由器、控制器、桥接设备、存储器等等。
一些实现可以用于根据诸如由半导体生产商发布的集成片上系统组织结构(integrated on-chip system fabric,IOSF)规范等的给定规范设计的半导体设备,以提供用于在SoC或其他芯片内附加知识产权(IP)块的标准化片上互连协议。这样的IP块可以属于各种类型,包括诸如有序或乱序核心等的通用处理器、固定功能单元、图形处理器、控制器以及其他类型。通过使得互连协议标准化,从而实现用于不同类型芯片中的IP代理的广泛使用的框架。因此,不仅半导体生产商可以跨越各种各样的客户群高效地设计不同类型的芯片,而且可以经由规范允许第三方设计要合并到这样的芯片中的诸如IP代理等的逻辑。并且,此外,通过为互连协议的多个方面提供多个选项,高效地实现了设计的再用。尽管在此结合这一IOSF规范描述了各实施例,但应理解,本发明的范围不限于此,且各实施例可以用于多种不同类型的系统。
现在参见图1,所示出的是根据本发明的一种实施例的基本互连体系结构的框图。如图1中所示出,系统10可以是片上系统或其他半导体设备的一部分,且包括充当在各种组件之间的互连的组织结构20。在所示出的实现中,这些组件包括IP代理30和40,它们可以是独立的IP块,以提供诸如计算能力、图形能力等等的各种功能性。在一种实施例中,这些IP代理因而是具有与IOSF规范兼容的接口的IP块或逻辑设备。如还可见的,组织结构20也连接到桥50。尽管在图1的示例中为便于阐释而未示出,但应理解,桥50可以充当到例如在相同芯片或一个或多个不同的芯片上的其他系统组件的接口。
如下面将进一步描述的,图1中所示出的每一元素,即组织结构、IP代理和桥,可以包括一个或多个接口以便处理各种信号的通信。可以根据IOSF规范定义这些接口,IOSF规范定义用于在这些接口上通信的信号、用于在代理之间的信息交换的协议、用来发起和管理信息交换的仲裁和流控制机制、所支持的地址解码和转换能力、用于带内或带外通信的消息收发、电源管理、测试、验证和调试支持。
IOSF规范包括可以提供给每个代理的3个独立接口,即主接口、边带消息接口和可测试性或测试设计(DFx)接口。根据IOSF规范,代理可以支持这些接口的任何组合。具体地,代理可以支持0-N个主接口、0-N个边带消息接口和可选的DFx接口。然而,根据该规范,代理必须支持这3个接口中的至少一个。
组织结构20可以是在不同的代理之间移动数据的硬件元素。注意,组织结构20的拓扑可以产品特异的。作为示例,组织结构可以被实现为总线、分层总线、级联中枢或类似物。现在参见图2,所示出的是根据本发明的一种实施例的互连体系结构的进一步细节的框图。如图2中所示出,组织结构110包括各种接口,包括主接口112、DFx接口114和边带接口116。主接口112可以用于带内通信,例如,在诸如中央处理单元(CPU)或其他处理器等的宿主处理器和代理之间的带内通信。主接口112还可以允许在代理和所支持的组织结构之间的对等事务的通信。包括存储器、输入输出(IO)、配置和带内消息收发的所有事务类型可以经由主接口112递送。因而,主接口可以充当在对等之间传输的数据和/或与上游组件的通信的高性能接口。
在各种实现中,主接口112实现拆分事务协议以便实现最大并发性。即,这种协议提供请求阶段、批准阶段以及命令和数据阶段。在各种实施例中,主接口112支持三种基本请求类型:已登记(posted)、未登记(non-posted)和完成。通常,已登记事务是这样的事务:在由源发送时,该源认为该事务是完成的,且该源不接收关于该事务的完成或其他确认消息。已登记事务的一个这样的示例可以是写事务。相反,直到接收到返回消息(即完成)之前,不认为该源完成了未登记事务。未登记事务的一个示例是读事务,该读事务中,源代理请求读取数据。因此,完成消息提供所请求的数据。
另外,主接口112支持不同信道的概念,以便为贯穿该系统的独立数据流提供一种机制。如将要进一步描述的,主接口112本身可以包括发起事务的主接口和接收事务的目标接口。首要的主接口还可以细分成请求接口、命令接口和数据接口。请求接口可以用来提供对移动事务的命令和数据的控制。在各种实施例中,主接口112可以支持PCI排序规则和列举。
边带接口116又可以是用于传输所有带外信息的标准机制。以这种方式,可以避免为给定实现设计专用线路,增强了跨越各种各样的芯片再用IP的能力。因而,与使用专用线路来处理诸如状态、中断、电源管理、配置遮蔽、测试模式等等的带外通信的IP块相反,根据IOSF规范的边带接口116标准化所有带外通信,促进了模块化并减少跨越不同的设计再用IP的验证要求。通常,边带接口116可以被用来通信低性能信息而不是用于主数据传输,主数据传输通常可以经由主接口112传输。
如图2中进一步阐释的,IP代理130、140和150均可以包括相应的主接口、边带接口和DFx接口。然而,如以上所描述的,每一代理不需要包括这些接口中的每一个,且在一些实施例中给定的IP代理可以仅包括单个接口。
使用IOSF规范,可以设计具有多种多样的不同功能性的各种类型的芯片。现在参见图3,所示出的是根据本发明的一种实施例的SoC的高级框图。如图3中所示出,SoC200可以包括各种组件,所有这些组件都可以被集成在单个半导体管芯上,以便以高速度和低功率提供各种处理能力,消耗相对少量的位置(real estate)。如图3中可见,SoC200包括多个核心2050–205n。在各种实施例中,核心205可以是相对简单的有序核心或更复杂的乱序核心。或者,单个SoC中可以存在有序核心和乱序核心的组合。如图可见,核心205可以经由一致性互连215而互连,一致性互连215还耦合到高速缓存存储器210,例如共享末级高速缓存(LLC)。尽管本发明的范围不限于此,在一种实施例中,一致性互连215可以遵照可从加利福尼亚州圣克拉拉市的英特尔公司得到的快速通道互连(QPI)TM规范。
如图3中还可见的,一致性互连215可以经由桥220与组织结构250通信,组织结构250可以是IOSF组织结构。一致性互连215还可以经由集成存储器控制器215与片外存储器(为便于阐释图3的实施例,未示出)通信,且还通过桥230与组织结构250通信。
如图3中还可见,可以耦合到组织结构250的各种组件包括内容处理模块(CPM)240,内容处理模块(CPM)240可以用于执行诸如安全处理、密码功能等等的各种操作。另外,显示处理器245可以是向关联显示器呈现视频的媒体处理管线的一部分。
如图还可见,组织结构250还可以耦合到IP代理255。尽管为便于阐释图3的实施例仅示出单个代理,但应理解,在不同的实施例中,多个这样的代理是可能的。另外,为了允许与其他片上设备通信,组织结构250还可以与PCIeTM控制器260和通用串行总线(USB)控制器265通信,PCIeTM控制器260和通用串行总线(USB)控制器265两者都可以与遵照这些协议的各种设备通信。最后,图3的实施例中示出桥270,桥270可以被用来与诸如开放核心协议(OCP)或ARM高级微控制器总线体系结构(AMBA)协议等的其他协议的附加组件通信。尽管在图3的实施例中用这些具体的组件示出,但应理解,本发明的范围不限于这种方式,且在不同的实施例中可以存在附加的或不同的组件。
此外,应理解,尽管在图3中被示出为单个管芯SoC实现,但各实施例还可以在其中多个芯片经由非IOSF接口相互通信的系统中实现。现在参见图4,所示出的是根据本发明的另一实施例的系统的框图。如图4中所示出,该系统可以包括SoC200’,其可以包括与以上参考图3所描述的那些组件类似的多个组件以及附加的片外接口275。因此,SoC200’可以与另一芯片280通信,芯片280可以包括允许通信在这两个芯片之间通信以及与各种片外设备(例如遵照一个或多个不同的规范的不同的外围设备)通信的各种功能性。具体地,第二芯片280被示出为包括片外接口282以便允许与SoC200’通信,且SoC200’又与组织结构290通信,组织结构290可以是根据本发明的一种实施例的IOSF组织结构。如图可见,组织结构290还可以耦合到与片外设备通信的各种控制器,包括PCIeTM控制器292、USB控制器294和桥296。
在基于批准的固定优先级仲裁器(GFPA)方案中,在诸如在多个代理(例如,被共享总线或其他互连)之间耦合的链路等的资源被过度预订时,批准计数被用来为每个不同的请求者分配带宽。一旦复位去断言(de-assertion),所有批准计数器就加载默认值。向给定请求者发出的每一批准引起更新相应请求者的批准计数器,例如递减1。最终,在没有活动请求是待决的或所有活动的请求已经消耗了它们各自的批准计数时,或者根据这两种条件的组合,将在全局范围内重新加载批准计数,从而触发新一轮的仲裁。在GFPA方案中,是否执行全局批准计数重新加载的评估可以在每一时钟周期发生。
特定的请求者不能够维持背靠背请求断言。换句话说,这些请求者不能发起管线化请求(例如,在第一时钟周期和下一周期)。这是由在不引起附加的门计数的情况下具有有限请求队列深度的代理的请求信用交换往返延时引起的,或者是由设备内部的背靠背请求气泡引起的,其中在请求信号由仲裁器批准时去断言该请求信号。为了在给定代理不能维持背靠背请求断言时防止无意触发全局批准计数重新加载,各实施例可以延迟批准计数的重新加载。以这种方式,当非管线化请求者的批准计数器(或多于一个的这样的请求者的批准计数器)在给定仲裁轮次内还没有消耗其全部批准计数时,可以延迟批准计数重新加载操作。以这种方式,可以按由所指派的批准计数限定的每带宽比率把带宽分配给非管线化请求者。即,当没有请求待决且与至少一个代理相关联的批准计数器具有非零值时,可以延迟批准计数器重新加载。
在各种实施例中,在GFPA中可以提供全局滞后计数器,以便解决由非管线化请求者的请求气泡(例如,1-5个时钟周期)引起的带宽分配问题。有效地,由滞后计数器延迟GFPA中的全局批准计数重新加载,直到观察到来自请求者的‘准确’信息。在非管线化请求者使得请求去断言之后(当请求者中的至少一个在该仲裁轮次内具有可用的批准时),这种延时因而在预先确定量的时钟周期内防止批准计数器重新加载。
在任何非管线化请求的去断言时,可以用可配置值加载滞后计数器,在各种实施例中,该可配置值可以被设置为大于或等于请求气泡(例如具有最大请求气泡的请求者)的时钟数量。可以在每一时钟周期更新计数器(例如,它可以每个时钟周期自我递减1,直到它达到零)。并且,仅在滞后计数器的下一状态是零时,允许全局批准计数重新加载发生。这种状态等效于目前状态(或当前值)是一,且断言了递减项;或者等效于为零的目前状态,且去断言了重新加载项。换句话说,滞后计数器的下一状态是计数器的触发器输入(flopinput),或下一时钟的计数器的值。
为了使得这一滞后周期(其中滞后计数器的下一状态大于零)的不必要的影响最小化,还可以限定这一滞后周期的操作,以使得去断言非管线化请求是用于具有非零值的相应批准计数器的请求者,这是由于已经耗尽最后批准计数的请求者不需要滞后影响。并且,在所有非管线化请求者的批准计数为零时,可以通过把滞后计数器重设为零来消除滞后影响。
在一种实施例中,在仲裁轮次的每个周期中,滞后计数器操作的优先级可以是如下所示:i.(第一优先级)在所有非管线化请求的批准计数是零时,复位到零;ii.(第二优先级)当存在具有非零批准计数的任何非管线化请求的去断言时,具有滞后值的加载;以及iii.(第三优先级)在计数器大于零时,递减1。
因而,根据各种实施例,尽管存在非管线化请求者,GFPA方案可以按每个已界定比率维护带宽分配。通过先验知识了解所有非管线化请求者的请求气泡的时钟数量,可以把滞后值配置为适应不同平台中的请求气泡的不同时钟数,而不需要寄存器传输级(RTL)改变。
此外,带有根据本发明的一种实施例的滞后计数器的GFPA方案可以处理具有请求气泡的不同时钟数的非管线化请求者,只要滞后值等于或大于该平台中的非管线化请求者的请求气泡的最大数量。
另外,延迟仲裁器中的全局批准计数重新加载的滞后计数器不把额外门等级(additional gate level)引入到请求批准路径,这维持了时序关键路径。可以小心地处理滞后周期的影响,其中通过带有非零批准计数的任何非管线化请求的去断言来触发新的滞后周期。当所有非管线化请求者的批准计数是零时,可以通过把滞后计数器复位为零来立即消除滞后影响。
现在参见图5,所示出的是根据本发明的一种实施例的仲裁系统的框图。如图5中所示出,系统400包括多个请求者4101–410n(笼统地称为请求者410)。每一请求者410通过第一互连415和第二互连418耦合到仲裁器420,以便把请求提供给仲裁器420并从其接收批准。在图5的实施例中,仲裁器420可以属于组织结构430,组织结构430又经由诸如上游信道等的互连440连接到诸如上游组件等的另一组件,例如,芯片组或其他接口逻辑。
在各种实施例中,仲裁器420可以是固定优先级批准计数仲裁器,以在仲裁轮次或周期期间把一个或多个批准提供给请求者410中的每一个。如图5中所示出,仲裁器420可以包括固定优先级部分,其包括批准计数鉴定阶段422和固定优先级阶段424。注意,批准计数器421被耦合到批准计数鉴定阶段422以便经由滞后控制器423向给定请求者410中的每一个提供批准计数,滞后控制器423根据本发明的一种实施例控制批准计数重新加载。在操作中,处理向批准计数鉴定阶段422传入的请求流,并将其提供给固定优先级阶段424,固定优先级阶段424从而批准各固定优先级批准。尽管在图5的实施例中用这种特定实现示出,但本发明的范围不限于此。例如,在其他实施例中,除了固定优先级部分之外,仲裁器还可以包括机会性批准机制(opportunistic grant mechanism),以便当仲裁轮次中存在可用周期时从而提供超过已分配带宽的附加批准。
现在参见图6,所示出的是根据本发明的一种实施例的仲裁器的进一步细节的框图。如图6中所示出,仲裁器500可以是固定优先级仲裁器,且更具体地,仲裁器500可以包括批准计数鉴定阶段510和固定优先级鉴定阶段520,例如以上参照图5所描述的。示出了这些阶段的进一步细节以及仲裁器的进一步组件。具体地,如图可见,批准计数鉴定阶段510可以包括各种逻辑,即多个逻辑门,例如,每一个都与从相应的请求者传入的请求相关联的与门5121–512n。另外,每一门还接收相应请求者的批准计数可用信号。在图5的实施例中,可以从批准重新加载控制器550接收到这些批准计数可用信号,如下面进一步讨论。因而,在接收到有效的已断言请求信号并且存在相应请求者的可用批准计数时,批准计数鉴定阶段510操作为输出来自请求者的相应请求的活动已断言信号。这些批准鉴定信号可以被提供给优先级鉴定阶段520,优先级鉴定阶段520也可以被实现为多个逻辑门,即与门5222–522n。如图可见,每一门都可以具有单个非反相输入,即来自批准计数鉴定状态510的相应输出的批准鉴定信号。然而,对该逻辑门的所有其他输入都被翻转。以这种方式,在同一时刻,仅来自优先级鉴定阶段520的单个输出是活动的。并且,此外,这些输出可以基于优先级,以使得在为最高优先级请求者例如图6的实施例中的请求者1断言请求时,该请求是活动请求(由于没有逻辑来门控它)等等。因此,在给定仲裁轮次内,只要请求者1在其相应批准计数器中具有可用批准,将批准其请求,从请求者2到请求者N也是如此(且请求者N是最低优先级请求者)。
仍然参见图6,仅其中一个活动的相应优先级批准信号可以被提供给批准信号阶段530,其中每一信号可以被提供给相应逻辑,即相应的与门5321–532n,其中信号与全局批准信号组合,以使得如果这一批准全局批准信号是活动的则发出相应批准。因此,已断言批准信号可以被提供回去给该请求者,以便允许把对应于该请求的事务传送给例如耦合到请求者的上游信道、另一代理、组织结构或其他这样的目的地位置。
仍然参见图6,所发出的活动批准信号可以被用来更新多个批准计数器中的相应一个。如图可见,在每一仲裁周期期间,即在全局批准计数重新加载时,批准计数器540(通常)可以接收默认数量的批准计数。根据各种实施例,这种重新加载可以由批准重新加载控制器550控制,重新加载控制器550把重新加载限定为仅在实现特定条件时发生。为此,应注意,由来自逻辑门560的复位信号输出激活批准重新加载操作,逻辑门560又被耦合为接收来自第二逻辑门555的输入和批准重新加载控制器550的输出。如图所示,第二逻辑门555可以在反转输入处接收来自每一请求者的批准鉴定信号,以使得仅在没有从批准计数鉴定阶段510提供活动鉴定输出时逻辑门的输出是活动的。来自批准重新加载控制器550的控制信号又可以是活动的,因而仅在如以上所描述的已经满足这些特定条件时允许复位发生。如图可见,批准重新加载控制器550还可以接收默认的滞后值,该默认的滞后值可以例如被存储在配置寄存器中的值控制。作为这种配置的示例,配置寄存器的一个字段可以被用来提供可编程滞后值,当配置寄存器(相同的或不同的寄存器)中的相应允许位允许时,可以在去断言请求时加载该可编程滞后值。注意,当被禁用时,在请求去断言时,在至少一个非管线化请求者不具有活动请求(不考虑批准计数)时发生全局批准计数重新加载。尽管在图6中的实施例中用这一特定实施示出,但应理解,本发明的范围不限于此。
在各种实施例中,批准重新加载控制器550可以包括执行例如图7的流程图中所示出的批准重新加载操作的控制的逻辑。为此,控制器可以包括非暂态存储介质或耦合到非暂态存储介质,该非暂态存储介质包括执行图7中所示出的方法的指令。如图7中可见,方法600可以从判断是否已经去断言非管线化请求(意味着这一请求已经得到批准)开始(菱形610)。如果是这样,则控制转到菱形615,菱形615中还可以判断是否所有非管线化请求者都具有非零批准计数值。如果是这样,控制转到菱形620,菱形620中还可以判断相应非管线化请求者是否具有非零批准计数。如果是这样,则控制转到框630,框630中可以用滞后值加载滞后计数器,如以上所描述的,可以从配置寄存器获得该滞后值。如图可见,接下来控制再次转到菱形610。
如果在菱形610处改为确定非管线化请求还没有被去断言,则控制转到菱形650。在菱形650,可以判断滞后计数器是否处于零值。如果是这样,则控制转到框660,框660中可以允许全局批准计数重新加载。如果在菱形650处改为判断滞后计数器值为非零,则与此相反控制转到框655,框655中可以更新滞后计数器。例如,在这一给定时钟周期期间,滞后计数器的值可以例如递减1。
注意,在菱形615处,如果判断非管线化请求者的批准计数器全部都处于零,则控制转到框670,框670中把例如出现在批准重新加载控制器中的滞后计数器复位到零值。因而,这种复位到零值可以允许全局批准计数重新加载发生(框660)。更具体地再次参见图6,通过把滞后计数器复位为零值,可以从批准重新加载控制器550发出重新加载控制信号。注意,尽管在图7的实施例中用这种特定次序示出,但应理解,各实施例不限于此,且在其他实现中所阐释的操作可以以不同的次序发生。
可以在诸如台式机平台、移动平台和服务器平台中的平台控制器中枢(PCH)等的不同组件中实现各实施例。带有可配置滞后计数的滞后计数器允许组织结构适应具有带有不同的请求气泡时钟数字的非管线化I/O接口的平台,同时维持每个已指派批准计数的带宽分配。以这种方式,芯片组或其他组件可以在超额预订条件下递送所预期的每I/O接口带宽分配。
现在参见图8,所示出的是根据本发明的一种实施例的系统的一部分的框图。如图中8所示出的,系统700包括组织结构710,组织结构710被耦合在各种上游资源(即直接媒体接口(DMI)740和代理750)之间,在各种实施例中,这些上游资源可以是处理器核心、外围设备或类似物。如图还可见,组织结构710还耦合到多个下游代理,即代理720a–720c。尽管在图8的实施例中仅用这3个代理示出,但应理解,本发明的范围不限于此。通常,每一代理可以包括目标接口和主接口。如代理720a中所示出的,代理可以包括多个目标事务队列722和多个主事务队列724。来自这些代理的请求被提供给组织结构710中的一组请求队列714,该组请求队列714被耦合到仲裁器715,仲裁器715可以是根据本发明的一种实施例的仲裁器,以便选择给定请求以供执行。如图可见,为了经由多路复用器712向上游提供请求,仲裁器714提供控制多路复用器的控制信号。因而各事务可以被提供给上游代理740和750,且还被提供给流化对等队列716。如图可见,在下游方向,传入的事务可以被提供给多路复用器718,多路复用器718受到下游仲裁器719控制,下游仲裁器719从一组请求队列717接收相应请求。尽管在图8的实施例中以这种高的层次示出,但应理解,本发明的范围不限于此。
尽管已经相对于有限数量的实施例描述了本发明,但本领域中的技术人员将从中明白众多修改和变更。预期所附权利要求覆盖落在本发明的真实精神和范围内的所有这样的修改和变更。

Claims (17)

1.一种用于为固定优先级仲裁器提供自适应带宽分配的装置,包括:
第一仲裁器,其根据固定优先级协议批准来自多个请求者的请求,其中给所述多个请求者中的每一个在每个仲裁周期批准预先确定的数量;以及
批准重新加载控制器,其被耦合到所述第一仲裁器,以便在所述多个请求者中的非管线化请求者将一个请求去断言之后、在预先确定的数量的时钟周期内防止所述第一仲裁器的多个批准计数器的重新加载。
2.如权利要求1所述的装置,其特征在于,所述批准重新加载控制器允许至少一个非管线化请求者在每个仲裁周期接收已分配带宽率。
3.如权利要求1所述的装置,其特征在于,所述批准重新加载控制器包括滞后计数器,所述滞后计数器具有对应于根据配置寄存器设定的所述预先确定的数量的时钟周期的值。
4.如权利要求3所述的装置,其特征在于,如果所述多个请求者的非管线化请求者都没有可用于所述仲裁周期的剩余部分的批准,则复位所述滞后计数器。
5.如权利要求4所述的装置,其特征在于,响应于所述复位滞后计数器,所述批准重新加载控制器重新加载所述多个批准计数器。
6.如权利要求3所述的装置,其特征在于,所述批准重新加载控制器每一时钟周期都更新所述滞后计数器的值。
7.如权利要求3所述的装置,其特征在于,响应于非管线化请求者具有去断言的请求和关联批准计数器具有非零值,所述批准重新加载控制器用对应于所述预先确定的数量的时钟周期的值重新加载所述滞后计数器。
8.如权利要求1所述的装置,其特征在于,所述第一仲裁器包括固定优先级仲裁器。
9.一种用于为固定优先级仲裁器提供自适应带宽分配的方法,包括:
在提供对至少一个资源的访问的仲裁器中接收来自多个请求者的请求;
检测在仲裁轮次的至少一个周期内所述多个请求者中没有一个具有经鉴定的请求;以及
在所述检测存在时,防止当在所述仲裁轮次内至少一个所述请求者具有可用批准时在预先确定的数量的周期内多个批准计数器的批准计数重新加载,每个批准计数器与所述多个请求者中的一个相关联,其中所述预先确定的数量的周期对应于所述多个请求者中的一个的请求气泡延时。
10.如权利要求9所述的方法,其特征在于,所述多个请求者中的所述一个具有所述多个请求者的最大请求气泡延时。
11.如权利要求9所述的方法,进一步包括在所述批准计数中没有一个具有非零值时对于所述多个请求者的每一个终止防止所述批准计数重新加载并重新加载所述批准计数器。
12.一种用于为固定优先级仲裁器提供自适应带宽分配的系统,包括:
第一多个代理,其中每一个都对应于知识产权(IP)块;以及
组织结构,其耦合到所述第一多个代理,所述组织结构包括仲裁器,所述仲裁器根据固定优先级协议批准所述第一多个代理对耦合到所述组织结构的资源的访问,其中给所述第一多个代理中的每一个在每个仲裁轮次批准预先确定的数量的批准,所述组织结构包括控制器,所述控制器被耦合为在没有请求正在待决且与所述第一多个代理中的至少一个相关联的所述批准计数器具有非零值时延迟多个批准计数器的重新加载,每个批准计数器与所述第一多个代理中的一个相关联,其中控制器包括滞后计数器,所述滞后计数器具有对应于所述第一多个代理中的一个的请求气泡延时的值。
13.如权利要求12所述的系统,其特征在于,所述控制器允许所述第一多个代理中作为非管线化请求者的至少一个在每个仲裁轮次接收已分配带宽率。
14.如权利要求12所述的系统,其特征在于,如果所述第一多个代理的非管线化请求者均没有可用于所述仲裁轮次的剩余部分的批准,则复位所述滞后计数器。
15.如权利要求14所述的系统,其特征在于,响应于所述复位滞后计数器,所述控制器重新加载所述多个批准计数器。
16.如权利要求12所述的系统,其特征在于,所述控制器在每个时钟周期更新所述滞后计数器的值。
17.如权利要求12所述的系统,其特征在于,响应于所述第一多个代理的非管线化请求者具有去断言请求且关联批准计数器具有非零值,所述控制器用所述值重新加载所述滞后计数器。
CN201280041935.3A 2011-08-31 2012-08-16 为固定优先级仲裁器提供自适应带宽分配 Active CN103765852B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/222,354 2011-08-31
US13/222,354 US8930602B2 (en) 2011-08-31 2011-08-31 Providing adaptive bandwidth allocation for a fixed priority arbiter
PCT/US2012/051018 WO2013032715A1 (en) 2011-08-31 2012-08-16 Providing adaptive bandwidth allocation for a fixed priority arbiter

Publications (2)

Publication Number Publication Date
CN103765852A CN103765852A (zh) 2014-04-30
CN103765852B true CN103765852B (zh) 2017-01-18

Family

ID=47745329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280041935.3A Active CN103765852B (zh) 2011-08-31 2012-08-16 为固定优先级仲裁器提供自适应带宽分配

Country Status (4)

Country Link
US (1) US8930602B2 (zh)
KR (1) KR101582058B1 (zh)
CN (1) CN103765852B (zh)
WO (1) WO2013032715A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8711875B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US9239808B2 (en) * 2011-12-15 2016-01-19 Marvell World Trade Ltd. Serial interface for FPGA prototyping
US9223668B2 (en) * 2013-03-13 2015-12-29 Intel Corporation Method and apparatus to trigger and trace on-chip system fabric transactions within the primary scalable fabric
US9389906B2 (en) * 2013-12-23 2016-07-12 Intel Corporation Latency agnostic transaction buffer for request-grant protocols
US9563594B2 (en) * 2014-05-30 2017-02-07 International Business Machines Corporation Intercomponent data communication between multiple time zones
US9582442B2 (en) 2014-05-30 2017-02-28 International Business Machines Corporation Intercomponent data communication between different processors
US9747245B2 (en) 2014-12-17 2017-08-29 Intel Corporation Method, apparatus and system for integrating devices in a root complex
US10210120B2 (en) 2015-03-26 2019-02-19 Intel Corporation Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
US9990327B2 (en) 2015-06-04 2018-06-05 Intel Corporation Providing multiple roots in a semiconductor device
US10157160B2 (en) 2015-06-04 2018-12-18 Intel Corporation Handling a partition reset in a multi-root system
US10911261B2 (en) 2016-12-19 2021-02-02 Intel Corporation Method, apparatus and system for hierarchical network on chip routing
US10846126B2 (en) 2016-12-28 2020-11-24 Intel Corporation Method, apparatus and system for handling non-posted memory write transactions in a fabric
US10275379B2 (en) 2017-02-06 2019-04-30 International Business Machines Corporation Managing starvation in a distributed arbitration scheme
US11144457B2 (en) * 2018-02-22 2021-10-12 Netspeed Systems, Inc. Enhanced page locality in network-on-chip (NoC) architectures
US10740269B2 (en) * 2018-07-17 2020-08-11 Arm Limited Arbitration circuitry
US10936048B2 (en) 2019-03-29 2021-03-02 Intel Corporation System, apparatus and method for bulk register accesses in a processor
CN110674063B (zh) * 2019-09-16 2021-03-23 上海天数智芯半导体有限公司 一种用于芯片内实现fabric的架构和方法

Family Cites Families (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MX9306994A (es) 1992-12-15 1994-06-30 Ericsson Telefon Ab L M Sistema de control de flujo para interruptores de paquete.
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
DE69924057T2 (de) * 1998-07-31 2006-04-13 Alcatel Verfahren, Ablauffolgesteuerung, intelligenter Pufferspeicher, Prozessor und Telekommunikationssystem zum Verteilen verfügbahrer Bandbreite
US6182183B1 (en) 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6233632B1 (en) 1999-01-07 2001-05-15 Vlsi Technology, Inc. Optimizing peripheral component interconnect transactions in a mixed 32/64-bit environment by eliminating unnecessary data transfers
US6427169B1 (en) 1999-07-30 2002-07-30 Intel Corporation Parsing a packet header
US6330647B1 (en) * 1999-08-31 2001-12-11 Micron Technology, Inc. Memory bandwidth allocation based on access count priority scheme
US6788707B1 (en) 1999-08-31 2004-09-07 Broadcom Corporation Method for the suppression and expansion of packet header information in cable modem and cable modem termination system devices
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6611893B1 (en) 1999-12-29 2003-08-26 Agere Systems Inc. Data bus method and apparatus providing variable data rates using a smart bus arbiter
US7124376B2 (en) 2000-05-02 2006-10-17 Palmchip Corporation Design tool for systems-on-a-chip
US6810460B1 (en) 2001-02-15 2004-10-26 Lsi Logic Corporation AMBA bus off-chip bridge
US6816938B2 (en) 2001-03-27 2004-11-09 Synopsys, Inc. Method and apparatus for providing a modular system on-chip interface
US20030088722A1 (en) 2001-11-02 2003-05-08 David Price System and method for managing priorities in a PCI bus system
US7162546B2 (en) 2001-12-27 2007-01-09 Intel Corporation Reordering unrelated transactions from an ordered interface
US7266786B2 (en) 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7046668B2 (en) 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US6907478B2 (en) 2003-02-18 2005-06-14 Adaptec, Inc. Systems and methods optimizing data transfer throughput of a system on chip
US20050010687A1 (en) 2003-06-26 2005-01-13 Silicon Graphics, Inc. Multiprocessor network multicasting and gathering
US7065733B2 (en) 2003-12-02 2006-06-20 International Business Machines Corporation Method for modifying the behavior of a state machine
US20050137966A1 (en) 2003-12-19 2005-06-23 Munguia Peter R. Flow control credit synchronization
KR100601881B1 (ko) 2004-01-28 2006-07-19 삼성전자주식회사 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법
KR101034494B1 (ko) 2004-02-11 2011-05-17 삼성전자주식회사 개방형 코어 프로토콜을 기반으로 하는 버스 시스템
KR101089324B1 (ko) 2004-02-20 2011-12-02 삼성전자주식회사 복수의 마스터들을 포함하는 서브 시스템을 개방형 코어프로토콜을 기반으로 하는 버스에 연결하기 위한 버스시스템
TWI259354B (en) 2004-06-25 2006-08-01 Via Tech Inc System and method of real-time power management
US7707434B2 (en) 2004-06-29 2010-04-27 Broadcom Corporation Power control bus for carrying power control information indicating a power supply voltage variability
US20060047849A1 (en) 2004-06-30 2006-03-02 Mukherjee Shubhendu S Apparatus and method for packet coalescing within interconnection network routers
US7525986B2 (en) * 2004-10-28 2009-04-28 Intel Corporation Starvation prevention scheme for a fixed priority PCI-Express arbiter with grant counters using arbitration pools
US20060140126A1 (en) 2004-12-27 2006-06-29 Intel Corporation Arbitrating virtual channel transmit queues in a switched fabric network
JP4410190B2 (ja) 2005-03-24 2010-02-03 富士通株式会社 PCI−Express通信システム
CN101180841B (zh) 2005-05-26 2011-11-30 Nxp股份有限公司 通信资源分配的电子设备及方法
US7308668B2 (en) 2005-06-30 2007-12-11 International Business Machines Corporation Apparatus and method for implementing an integrated circuit IP core library architecture
US7457905B2 (en) 2005-08-29 2008-11-25 Lsi Corporation Method for request transaction ordering in OCP bus to AXI bus bridge design
DE102005047368A1 (de) 2005-10-04 2007-04-05 Epcos Ag Piezoelektrischer Transformator und Verfahren zu dessen Herstellung
US8364874B1 (en) 2006-01-17 2013-01-29 Hewlett-Packard Development Company, L. P. Prioritized polling for virtual network interfaces
US8437369B2 (en) 2006-05-19 2013-05-07 Integrated Device Technology, Inc. Packets transfer device that intelligently accounts for variable egress channel widths when scheduling use of dispatch bus by egressing packet streams
US7694161B2 (en) 2006-06-30 2010-04-06 Intel Corporation Uncore thermal management
US8078781B2 (en) 2006-08-23 2011-12-13 Freescale Semiconductor, Inc. Device having priority upgrade mechanism capabilities and a method for updating priorities
US20080059441A1 (en) 2006-08-30 2008-03-06 Lockheed Martin Corporation System and method for enterprise-wide dashboard reporting
US7805621B2 (en) 2006-09-29 2010-09-28 Broadcom Corporation Method and apparatus for providing a bus interface with power management features
US20080147858A1 (en) 2006-12-13 2008-06-19 Ramkrishna Prakash Distributed Out-of-Band (OOB) OS-Independent Platform Management
US20080163005A1 (en) 2006-12-28 2008-07-03 Sonksen Bradley S Error injection in pci-express devices
WO2008091575A2 (en) 2007-01-22 2008-07-31 Vast Systems Technology Corporation Method and system for modeling a bus for a system design incorporating one or more programmable processors
KR100867640B1 (ko) 2007-02-06 2008-11-10 삼성전자주식회사 다중 접근 경로를 가지는 이미지 프로세싱 메모리를포함하는 시스템 온 칩
US7979592B1 (en) 2007-02-09 2011-07-12 Emulex Design And Manufacturing Corporation Virtualization bridge device
US20110047272A1 (en) 2007-03-09 2011-02-24 Anne-Marie Bosneag Dissemination of Network Management Tasks in a Distributed Communication Network
US20080288689A1 (en) 2007-05-14 2008-11-20 Brian Hoang Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter
US7573295B1 (en) 2007-05-14 2009-08-11 Xilinx, Inc. Hard macro-to-user logic interface
US7685346B2 (en) * 2007-06-26 2010-03-23 Intel Corporation Demotion-based arbitration
US7734856B2 (en) 2007-08-22 2010-06-08 Lantiq Deutschland Gmbh Method for operating a plurality of arbiters and arbiter system
US8028185B2 (en) 2008-03-11 2011-09-27 Globalfoundries Inc. Protocol for transitioning in and out of zero-power state
US8286014B2 (en) 2008-03-25 2012-10-09 Intel Corporation Power management for a system on a chip (SoC)
US7673087B1 (en) 2008-03-27 2010-03-02 Xilinx, Inc. Arbitration for an embedded processor block core in an integrated circuit
US7783819B2 (en) 2008-03-31 2010-08-24 Intel Corporation Integrating non-peripheral component interconnect (PCI) resources into a personal computer system
US7849252B2 (en) 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
US7861027B2 (en) 2008-05-30 2010-12-28 Intel Corporation Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
US8225019B2 (en) 2008-09-22 2012-07-17 Micron Technology, Inc. SATA mass storage device emulation on a PCIe interface
US7873068B2 (en) 2009-03-31 2011-01-18 Intel Corporation Flexibly integrating endpoint logic into varied platforms
US8170062B2 (en) 2009-04-29 2012-05-01 Intel Corporation Packetized interface for coupling agents
US8095700B2 (en) * 2009-05-15 2012-01-10 Lsi Corporation Controller and method for statistical allocation of multichannel direct memory access bandwidth
JP5273002B2 (ja) 2009-09-30 2013-08-28 ブラザー工業株式会社 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム
US8073942B2 (en) 2009-10-20 2011-12-06 Dell Products, Lp System and method for storage discovery in a storage area network using device domains under control of a storage device
US20110179248A1 (en) 2010-01-18 2011-07-21 Zoran Corporation Adaptive bandwidth allocation for memory
WO2012032576A1 (en) 2010-09-09 2012-03-15 Hitachi, Ltd. Computer system control method and computer system
US8789170B2 (en) 2010-09-24 2014-07-22 Intel Corporation Method for enforcing resource access control in computer systems
US9043665B2 (en) 2011-03-09 2015-05-26 Intel Corporation Functional fabric based test wrapper for circuit testing of IP blocks
US8495265B2 (en) 2011-06-01 2013-07-23 International Business Machines Corporation Avoiding non-posted request deadlocks in devices by holding the sending of requests
US9021156B2 (en) 2011-08-31 2015-04-28 Prashanth Nimmala Integrating intellectual property (IP) blocks into a processor

Also Published As

Publication number Publication date
KR101582058B1 (ko) 2015-12-31
KR20140043492A (ko) 2014-04-09
US20130054856A1 (en) 2013-02-28
WO2013032715A1 (en) 2013-03-07
CN103765852A (zh) 2014-04-30
US8930602B2 (en) 2015-01-06

Similar Documents

Publication Publication Date Title
CN103765852B (zh) 为固定优先级仲裁器提供自适应带宽分配
US9753875B2 (en) Systems and an apparatus with a sideband interface interconnecting agents with at least one router
US8775700B2 (en) Issuing requests to a fabric
US9489329B2 (en) Supporting multiple channels of a single interface
US9021156B2 (en) Integrating intellectual property (IP) blocks into a processor
US9658978B2 (en) Providing multiple decode options for a system-on-chip (SoC) fabric
US9122815B2 (en) Common idle state, active state and credit management for an interface
US9448870B2 (en) Providing error handling support to legacy devices
US20080288689A1 (en) Opportunistic granting arbitration scheme for fixed priority grant counter based arbiter
CN102567109A (zh) 中断分配方案
US20180181432A1 (en) Method, apparatus and system for handling non-posted memory write transactions in a fabric
CN103069401B (zh) 维持多数据总线平台中事务连贯性的方法、装置以及系统
US8954635B2 (en) Buffer management using freelist buffers
US7266626B2 (en) Method and apparatus for connecting an additional processor to a bus with symmetric arbitration

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