CN114185823A - 仲裁器、仲裁方法、控制器和芯片 - Google Patents
仲裁器、仲裁方法、控制器和芯片 Download PDFInfo
- Publication number
- CN114185823A CN114185823A CN202210144746.4A CN202210144746A CN114185823A CN 114185823 A CN114185823 A CN 114185823A CN 202210144746 A CN202210144746 A CN 202210144746A CN 114185823 A CN114185823 A CN 114185823A
- Authority
- CN
- China
- Prior art keywords
- access
- access request
- sent
- request
- type
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/36—Arbitration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及仲裁器、仲裁方法、控制器和芯片。公开了一种用于多端口可访问设备的仲裁器,包括:请求端口数确定模块,被配置为判断是在一个还是多个端口处具有待发送的访问请求;设备访问类型获取模块,被配置为获取设备访问类型;访问请求特征获取模块,被配置为获取各个待发送的访问请求的访问类型和紧急程度;以及仲裁执行模块,被配置为执行以下处理:如果仅在一个端口处具有待发送的访问请求,则将该访问请求确定为候选访问请求;或者如果在多个端口处具有相应的多个待发送的访问请求,则根据设备访问类型以及各个访问请求的访问类型和紧急程度,从多个待发送的访问请求中确定至少一个优先访问请求,以及从优先访问请求中确定候选访问请求。
Description
技术领域
本公开总体而言涉及一种仲裁的实现方式。具体来说,涉及针对多端口可访问设备的仲裁器、仲裁方法、控制器和芯片。
背景技术
近年来,随着政策引导和市场需求的增大,集成电路产业迅猛发展。其中,在诸如SOC(System On Chip,片上***)的微小型集成电路***中,存在诸如中央处理器(CPU)、信息处理器(IP)等多个部件通过端口总线共享诸如存储器之类的多端口可访问设备的情况。一般而言,多端口可访问设备的访问效率对整个***性能的影响很大。事实上,随着CPU内核的速度提高,与存储器之间的速度差距逐渐增大,使得存储器日益成为制约***性能的瓶颈之一。因此,提高多端口可访问设备的访问效率对提升***整体性能的意义重大。
发明内容
根据本公开的一个方面,提供了一种用于多端口可访问设备的仲裁器,包括:请求端口数确定模块,被配置为判断是在一个端口处还是多个端口处具有待发送的访问请求,其中,待发送的访问请求是指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求;设备访问类型获取模块,被配置为获取表示对设备的最近一次访问的访问类型的设备访问类型;访问请求特征获取模块,被配置为获取各个待发送的访问请求的访问类型和紧急程度,其中,访问请求的访问类型包括与设备访问类型相同的第一访问类型和与其不同的第二访问类型;以及仲裁执行模块,被配置为执行以下处理:如果仅在一个端口处具有待发送的访问请求,则将该访问请求确定为在待发送的访问请求当中将最先发送给设备的候选访问请求;或者如果在多个端口处具有相应的多个待发送的访问请求,则根据设备访问类型以及各个访问请求的访问类型和紧急程度,从该多个待发送的访问请求中确定当前优先级最高的至少一个优先访问请求,以及从至少一个优先访问请求中确定候选访问请求。
根据本公开的另一个方面,提供了一种用于多端口可访问设备的控制器,其包括如上所述的仲裁器,被配置为从一个或多个待发送的访问请求中确定候选访问请求;信用分发器,被配置为在设备处于可访问状态时,向所确定的候选访问请求授予信用;以及选择器,被配置为接收针对具有信用的访问请求所处的端口的选通信号,以通过端口将该访问请求发送到设备。
根据本公开的另一个方面,提供了一种芯片,其包括如上所述的仲裁器或者控制器。
根据本公开的又一个方面,提供了一种多端口可访问设备的仲裁方法,其包括:判断是在一个端口处还是多个端口处具有待发送的访问请求,其中,待发送的访问请求是指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求;如果仅在一个端口处具有待发送的访问请求,则将该访问请求确定为在待发送的访问请求当中将最先发送给设备的候选访问请求;或者如果在多个端口处具有相应的多个待发送的访问请求,则进行以下处理:获取表示对设备的最近一次访问的访问类型的设备访问类型;获取各个待发送的访问请求的访问类型和紧急程度,其中,访问请求的访问类型包括与设备访问类型相同的第一访问类型和与其不同的第二访问类型;根据设备访问类型以及各个访问请求的访问类型和紧急程度,从该多个待发送的访问请求中确定当前优先级最高的至少一个优先访问请求;以及从至少一个优先访问请求中确定候选访问请求。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得更为清楚。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开实施例的控制器的配置及其相对于多端口可访问设备的布置的示例的示意图。
图2A是示出根据本公开实施例的仲裁器的配置的示例的示意图。
图2B是示出根据本公开实施例的访问请求特征获取模块的配置的示例的示意图。
图3是示出根据本公开实施例的仲裁方法的示例的流程图。
图4是示出根据本公开实施例的确定优先访问请求的步骤的子步骤的示例的流程图。
图5是示出根据本公开实施例的保持和切换访问类型的示意图。
图6示出根据本公开实施例的对同一端口的多个访问请求重新排序的示意图。
注意,在以下说明的实施方式中,有时在不同的附图之间共同使用同一附图标记来表示相同部分或具有相同功能的部分,而省略其重复说明。在一些情况中,使用相似的标号和字母表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了便于理解,在附图等中所示的各结构的位置、尺寸及范围等有时不表示实际的位置、尺寸及范围等。因此,本公开并不限于附图等所公开的位置、尺寸及范围等。
具体实施方式
本申请的发明人认识到,多端口可访问设备(例如多端口存储器)在提高访问效率方面还面临较大挑战。特别地,本申请的发明人认识到,除了可以通过对多端口可访问设备自身结构进行优化来提高其访问效率以外,还可以通过改进多端口访问的仲裁实现方式来进一步提高效率。
下面将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。也就是说,本文中的结构及方法是以示例性的方式示出,来说明本公开中的结构和方法的不同实施例。然而,本领域技术人员将会理解,它们仅仅说明可以用来实施的本公开的示例性方式,而不是穷尽的方式。此外,附图不必按比例绘制,一些特征可能被放大以示出具体组件的细节。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
图1示例性地描述了根据本公开实施例的控制器的配置及其相对于多端口可访问设备的布置的示例。
根据本公开的实施例,用于多端口可访问设备120的控制器110可以包括仲裁器112、信用分发器114和选择器116。
在一些实施例中,多端口可访问设备120可以为存储器。例如,多端口可访问设备120可以为多端口SRAM。
在一些情况下,多端口可访问设备120可以为片上设备。
在各种实施例中,仲裁器112可以被配置为从来自一个或多个端口130-0,130-1,……130-n的相应的一个或多个待发送的访问请求中确定将最先发送给设备的候选访问请求。
其中,待发送的访问请求是指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求。即,待发送的访问请求是各个请求端口中还未发送给设备的一个或多个访问请求中排序在第一个的访问请求。在一般情况下,待发送的访问请求是各个请求端口中最早接收到的访问请求。
在一些实施例中,仲裁器112可以被配置为执行稍后将结合图3描述的用于多端口可访问设备的仲裁方法的步骤。
在各种实施例中,信用分发器114可以被配置为在设备处于可访问状态时,向所确定的候选访问请求授予信用。
在一些实施例中,可以通过向仲裁器112发送信用标志、符号或其他信号来向所确定的候选访问请求授予信用。
其中,设备处于可访问状态是指对设备的最近一次访问已经完成,使得能够对设备进行下一次访问。
即,当设备120正在执行访问处理时,即使仲裁器112确定了当前的候选访问请求,信用分发器114也不会对所确定的候选访问请求授予信用,也就无法将其从相应的端口经由控制器110发送给设备120。有利地,这种信用机制能够对端口和控制器之间的数据流进行控制,以避免后端设备120总线冲突。
在各种实施例中,选择器116可以被配置为接收针对具有信用的访问请求所处的端口的选通信号,以通过该端口将该访问请求发送到设备120。
例如,在一些实施例中,选择器116可以由多路选择器(MUX)实现。仲裁器112可以向选择器116发送针对具有信用的访问请求所处的端口的选通信号,从而允许具有信用的访问请求的传送路径导通,使得具有信用的访问请求能够被发送到设备120。
下文将结合图2A-图2B来具体描述仲裁器112的配置的示例。
图2A示例性地描述根据本公开实施例的仲裁器的配置的示例。
根据本公开的实施例,用于多端口可访问设备120的仲裁器112包括请求端口数确定模块210、设备访问类型获取模块220、访问请求特征获取模块230以及仲裁执行模块240。
在各种实施例中,请求端口数确定模块210可以被配置为判断是在一个端口处还是多个端口处具有待发送的访问请求。如上所述,待发送的访问请求可以指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求。
在各种实施例中,设备访问类型获取模块220可以被配置为获取表示对设备的最近一次访问的访问类型的设备访问类型。
一般来说,对设备的访问可以包括读访问和写访问。
在各种实施例中,访问请求特征获取模块230可以被配置为获取各个待发送的访问请求的访问类型和紧急程度。
其中,访问请求的访问类型可以包括与设备访问类型相同的第一访问类型和与其不同的第二访问类型。
例如,如果设备访问类型是读访问,那么第一访问类型指读访问,且第二访问类型指写访问。相对地,如果设备访问类型是写访问,那么第一访问类型指写访问,且第二访问类型指读访问。
此外,访问请求的紧急程度可以包括指示其重要性和已等待时间等的信息。
特别地,下面将结合图2B来具体描述访问请求特征获取模块230的配置的示例。图2B是示出根据本公开实施例的访问请求特征获取模块的配置的示例的示意图。
如图2所示,访问请求特征获取模块230包括初始化单元232、老化单元234以及访问请求类型获取单元236。
在各种实施例中,初始化单元232可以被配置为在未发送的访问请求成为待发送的访问请求时,将该访问请求的排序计数初始化。
其中,排序计数的初始化值可以与该访问请求的预设优先级相关。
访问请求的预设优先级可以被配置成反映访问请求本身的重要性,使得满足:访问请求的重要性越高,预设优先级就越高。例如,来自CPU的访问请求的预设优先级可以被配置成高于来自其它主设备的访问请求的预设优先级。
通过按照预设优先级来初始化访问请求的排序计数,可以在对访问请求的重新排序中充分考虑到访问请求本身的重要性。
在各种实施例中,老化单元234可以被配置为根据等待时间的增加来递减待发送的访问请求的排序计数,以获得表示紧急程度的更新排序计数,直至更新排序计数达到绝对最小排序计数。
在一些实施例中,老化单元234可以使用公共的时钟信号。或者,在其它实施例中,老化单元234也可以使用专用的时钟信号。
本文中为了便于理解和描述,排序计数与排序(紧急程度)的关系被设定为:排序计数越小,排序越靠前,紧急程度越高。本领域技术人员容易理解,设定二者关系的方式不限于此。
在一些实施例中,排序计数的初始化值可以被设置为正整数。例如,来自CPU的访问请求的排序计数的初始化值为2,而来自另一个主设备的访问请求的排序计数的初始化值为4。
在一些实施例中,老化模块234可以每次将排序计数递减1。
此外,为了便于描述,绝对最小排序计数可以被设置为0。
一旦更新排序计数达到绝对最小排序计数(0),将保持为绝对最小排序计数而不再递减。
本领域技术人员容易理解,递减计数和绝对最小排序计数的值不限于以上示例,而是可以根据实际需求进行设置。
此外,在各种实施例中,访问请求类型获取单元236可以被配置为获取待发送的访问请求的访问类型。
本领域技术人员容易理解,以上结合图2B描述的仅是一个示例,访问请求特征获取模块230的配置不限于此。
在各种实施例中,仲裁执行模块240可以被配置为执行以下处理:如果仅在一个端口处具有待发送的访问请求,则将该访问请求确定为在待发送的访问请求当中将最先发送给设备的候选访问请求;或者,如果在多个端口处具有相应的多个待发送的访问请求,则根据设备访问类型以及各个访问请求的访问类型和紧急程度,从该多个待发送的访问请求中确定当前优先级最高的至少一个优先访问请求,以及从至少一个优先访问请求中确定候选访问请求。
其中,在一些实施例中,仲裁执行模块可以使用轮询(Round-robin)处理,从至少一个优先访问请求中确定候选访问请求。
本领域技术人员容易理解,从至少一个优先访问请求中确定候选访问请求的方式不限于此。
此外,申请人意识到,总线端口与多端口可访问设备(例如SRAM)的接口进行数据交互时一般需要进行时序转换,而当进行访问类型切换(例如读写切换)时,为了保证设备接口的时序准确,可能会通过就绪(ready)信号对总线端口进行反压,以等待设备接口地址总线和数据总线的相位关系对应准确。即,切换访问类型时的时序转换一般会带来带宽的浪费。
因此,在一些实施例中,仲裁执行模块240确定优先访问请求包括优先将第一访问类型的访问请求确定为优先访问请求,以减少访问类型的切换,从而减少带宽浪费。下文中将结合图5来具体描述访问类型的保持和切换情况。
在一些实施例中,仲裁执行模块240可以被配置为执行稍后将结合图4描述的用于确定优先访问请求的步骤的子步骤。
应注意,上述各个器件、模块或单元仅是根据其实现的具体功能划分的逻辑模块,不用于限制具体的实现方式,例如能够以软件、硬件或者软硬件结合的方式来实现。在实际实现的过程中,上述各个器件、模块或单元可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(CPU或DSP等)、集成电路等)来实现。如果各个器件、模块或单元被实现为独立的物理实体,它们可以部署成在一起或者彼此分开。
有利地,根据本公开实施例的仲裁器112可以根据具有待发送的访问请求的请求端口的数量灵活调整仲裁策略,并在多个请求端口的情况下综合考虑访问请求的紧急程度和切换访问类型的带宽成本二者来确定当前更优选的候选访问请求。相应地,根据本公开实施例的控制器110可以在设备进入可访问状态后对最新的候选访问请求授予信用,从而在最大程度利用带宽的前提下将当前状况下最紧急的访问请求发送给设备。这里,通过设定预设优先级,访问请求的紧急程度可以体现访问请求的自身重要性以及等待时间二者。由此,既保证了CPU主端口数据的优先传输,也能有效防止其他端口“饿死”的情况出现。因此,本公开的技术方案能够极大地提升多端口可访问设备的访问效率。
下面参考图3、图4来示例性地描述根据本公开实施例的用于多端口可访问设备的仲裁方法的步骤,参考图5来示意性地描述多端口可访问设备的访问类型的变化,并参考图6来给出根据本公开实施例对同一端口的多个访问请求重新排序的示例描述。上面结合图1、图2A-2B所描述的内容也可以适用于对应的特征。
如图3所示,根据本公开的实施例,用于多端口可访问设备的仲裁方法300可以主要包括以下步骤:
在步骤302,判断是在一个端口处还是多个端口处具有待发送的访问请求。如上所述,待发送的访问请求可以指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求。
如果仅在一个端口处具有待发送的访问请求(步骤302中的“一个”),则将该访问请求确定为在待发送的访问请求当中将最先发送给设备的候选访问请求(步骤304)。
反之,如果在多个端口处具有相应的多个待发送的访问请求(步骤302中的“多个”),则进行包括步骤306、步骤308、步骤310和步骤312的如下处理。
在步骤306,获取表示对设备的最近一次访问的访问类型的设备访问类型。
在步骤308,获取各个待发送的访问请求的访问类型和紧急程度。如上所述,访问请求的访问类型包括与设备访问类型相同的第一访问类型和与其不同的第二访问类型。
在步骤310,根据设备访问类型以及各个访问请求的访问类型和紧急程度,从该多个待发送的访问请求中确定当前优先级最高的至少一个优先访问请求。
在步骤312,从至少一个优先访问请求中确定候选访问请求。
在一些实施例中,可以在请求端口的数量、设备访问类型以及访问请求的访问类型和紧急程度等参数发生改变的情况下重复执行以上步骤,或者,可以周期性地重复执行以上步骤,以准确、及时地确定出候选访问请求。可替换地,在一些实施例中,可以仅在设备进入可访问状态后执行以上步骤,以节省开销。
在一些实施例中,在步骤308中获取各个待发送的访问请求的紧急程度包括在未发送的访问请求成为待发送的访问请求时,将该访问请求的排序计数初始化。其中,排序计数的初始化值与该访问请求的预设优先级相关。
此外,在步骤308中获取各个待发送的访问请求的紧急程度还包括根据等待时间的增加来递减待发送的访问请求的排序计数,以获得表示紧急程度的更新排序计数,直至更新排序计数达到绝对最小排序计数。
如上所述,访问请求的预设优先级可以被配置成反映访问请求本身的重要性,使得满足:访问请求的重要性越高,预设优先级就越高。通过按照预设优先级来初始化访问请求的排序计数,可以在对访问请求的重新排序中充分考虑到访问请求本身的重要性。
本文中为了便于理解和描述,排序计数与排序(紧急程度)的关系被设定为:排序计数越小,排序越靠前,紧急程度越高。本领域技术人员容易理解,设定二者关系的方式不限于此。
在一些实施例中,可以将排序计数的初始化值设置为正整数。例如,将来自CPU的访问请求的排序计数的初始化值设置为2,而将来自另一个主设备的访问请求的排序计数的初始化值设置为4。
在一些实施例中,可以每次将排序计数递减1。
此外,为了便于描述,可以将绝对最小排序计数设置为0。
一旦更新排序计数达到绝对最小排序计数(0),不再递减排序计数。
本领域技术人员容易理解,递减计数和绝对最小排序计数的值不限于以上示例,而是可以根据实际需求进行设置。
如上所述,申请人意识到,切换访问类型一般会带来带宽的浪费。
因此,在一些实施例中,确定优先访问请求(步骤310)包括优先将第一访问类型的访问请求确定为优先访问请求,以减少访问类型的切换,从而减少带宽浪费。
此外,在一些实施例中,在步骤312中,可以使用轮询处理,从至少一个优先访问请求中确定候选访问请求。
下面结合图4详细描述确定优先访问请求的步骤(步骤310)的子步骤的示例。
如图4所例示的,在一些实施例,首先判断在多个待发送的访问请求中是否存在具有绝对最小排序计数的第一访问类型的访问请求(子步骤402)。
如果存在具有绝对最小排序计数的第一访问类型的访问请求(子步骤402中的“是”),则将具有绝对最小排序计数的第一访问类型的访问请求确定为优先访问请求。
即,如果在多个待发送的访问请求中有一个或多个第一访问类型的访问请求的更新排序计数达到绝对最小排序计数,则将该一个或多个第一访问类型的访问请求确定为优先访问请求。
反之,如果不存在具有绝对最小排序计数的第一访问类型的访问请求(子步骤402中的“否”),则处理前进到子步骤404。
在子步骤404中,进一步判断在多个待发送的访问请求中是否存在具有绝对最小排序计数的第二访问类型的访问请求。
如果存在具有绝对最小排序计数的第二访问类型的访问请求(子步骤404中的“是”),则将具有绝对最小排序计数的第二访问类型的访问请求确定为优先访问请求。
即,如果在多个待发送的访问请求中仅有一个或多个第二访问类型的访问请求的更新排序计数达到绝对最小排序计数,则将该一个或多个第二访问类型的访问请求确定为优先访问请求。
反之,如果也不存在具有绝对最小排序计数的第二访问类型的访问请求(子步骤404中的“否”),则处理前进到子步骤406。
从以上示例步骤可以看出,根据本公开的技术方案,在所有待发送的访问请求中,具有绝对最小排序计数的访问请求的优先级最高。此外,具有绝对最小排序计数的第一访问类型的访问请求的优先级比具有绝对最小排序计数的第二访问类型的访问请求的优先级高。通过这种策略,能够在优先执行紧急程度最高的访问请求的同时也尽量减少访问类型的切换以节省成本。
在子步骤406中,判断是否存在第一访问类型的访问请求。
如果不存在第一访问类型的访问请求(子步骤406中的“否”),则将具有相对最小排序计数的第二访问类型的访问请求确定为优先访问请求。
反之,如果存在第一访问类型的访问请求(子步骤406中的“是”),则处理前进到子步骤408。
在子步骤408中,判断是否存在第二访问类型的访问请求。
如果不存在第二访问类型的访问请求(子步骤408中的“否”),则将具有相对最小排序计数的第一访问类型的访问请求确定为优先访问请求。
综合以上步骤可知,如果待发送的访问请求具有相同的访问类型,则将其中具有相对最小排序计数的访问请求确定为优先访问请求。
反之,如果也存在第二访问类型的访问请求(子步骤408中的“是”),则处理前进到子步骤410。
在子步骤410中,计算具有相对最小排序计数的第一访问类型的访问请求的更新排序计数与具有相对最小排序计数的第二访问类型的访问请求的更新排序计数的差值,并根据该差值与切换阈值的比较结果确定优先访问请求。
具体地,如图4中所示,如果该差值小于或者等于切换阈值(子步骤410中的“否”),则将具有相对最小排序计数的第一访问类型的访问请求确定为优先访问请求。
反之,如果该差值大于切换阈值(子步骤410中的“是”),则将具有相对最小排序计数的第二访问类型的访问请求确定为优先访问请求。
其中,切换阈值可以不小于零。
在一些实施例中,切换阈值可以为零。在这种情况下,只有当第一访问类型的访问请求所具有的相对最小排序计数大于第二访问类型的访问请求所具有的相对最小排序计数时,才会将具有相对最小排序计数的第二访问类型的访问请求确定为优先访问请求。
或者,在一些实施例中,切换阈值可以大于零。例如,在一个实施例中,切换阈值可以被设置成1。在这种情况下,只有当第一访问类型的访问请求所具有的相对最小排序计数超过第二访问类型的访问请求所具有的相对最小排序计数达切换阈值(例如,1)时,才会将具有相对最小排序计数的第二访问类型的访问请求确定为优先访问请求。
从以上示例步骤可以看出,根据本公开的技术方案,在不存在具有绝对最小排序计数的访问请求时,在每种访问类型的访问请求中,具有相对最小排序计数的访问请求的优先级最高。此外,在不存在具有绝对最小排序计数的访问请求时,更新排序计数为C、C+1的第二访问类型的访问请求的优先级P21、P22与更新排序计数为(C+1+C_TH)的第一访问类型的访问请求的优先级P1之间的关系为P21> P1>P22,其中C_TH表示切换阈值。根据步骤410中的“否”,可知,P1的优先级高于P22,从而可以尽可能减少切换。根据步骤410中的“是”,可知,P21的优先级高于P1。通过这种策略,能够在执行紧急程度不那么高的访问请求时,在优先执行紧急程度更高的访问请求的同时更加注意减少访问类型的切换以节省带宽成本。
本领域的技术人员容易理解,虽然以上结合图4描述了确定优先访问请求的步骤的子步骤的示例,但是确定优先访问请求的实现方式不限于以上示出的具体步骤,而是可以根据需要进行设计、更改和调整。例如,可以调整子步骤402-408中的部分子步骤的顺序,而不会影响对优先访问请求的确认。
值得注意的是,在以上描述的方法中的各个步骤之间的边界仅仅是说明性的。在实际操作中,各个步骤之间可以任意组合,甚至合成单个步骤。此外,各个步骤的执行顺序不受描述顺序的限制,并且部分步骤可以省略。各个实施例的操作步骤也可以以任何适当的顺序相互组合,从而类似地实现比所描述的更多或更少的操作。
图5示出了根据本公开实施例的保持和切换访问类型的示意图。
如果在设备处于可访问状态时所确定的优先访问请求是第一访问类型的访问,则设备可以继续进行第一访问类型的访问。
相对地,如果在设备处于可访问状态时所确定的优先访问请求是第二访问类型的访问,则设备需要切换成第二访问类型的访问。
具体地,结合图4中示出的所确定的优先访问请求的结果可知,在设备处于可访问状态时,如果在多个待发送的访问请求中存在具有绝对最小排序计数的第一访问类型的访问请求,或者多个待发送的访问请求中仅存在第一访问类型的访问请求,则将发送第一访问类型的访问请求并执行第一访问类型的访问。
相对地,在设备处于可访问状态时,如果在多个待发送的访问请求中仅存在具有绝对最小排序计数的第二访问类型的访问请求,或者多个待发送的访问请求中仅存在第二访问类型的访问请求,则将发送第二访问类型的访问请求并切换成执行第二访问类型的访问。
此外,在设备处于可访问状态时,如果多个待发送的访问请求中不存在具有绝对最小排序计数的访问请求,并且既存在第一访问类型的访问请求也存在第二访问类型的访问请求,则计算具有相对最小排序计数的第一访问类型的访问请求的更新排序计数与具有相对最小排序计数的第二访问类型的访问请求的更新排序计数的差值,并根据该差值与切换阈值的比较结果确定将发送哪种访问类型的访问请求以及是否执行访问类型的切换。
有利地,本公开的技术方案能够综合考虑访问请求的紧急程度和切换访问类型的带宽成本二者来确定当前更优选的候选访问请求。
图6示出了根据本公开实施例的对同一端口的多个访问请求重新排序的示意图。其中,图6的上部分例示了重新排序前的访问请求队列,下部分例示了重新排序后的访问请求队列。
如排序前的访问请求队列所示,一个端口处可以具有多个未发送的读(R)访问请求和写(W)访问请求,且读访问请求和写访问请求可能交错分布。如果仅在该端口处具有访问请求,则这些交错分布的访问请求将依次成为候选访问请求并被依次授予信用,由此,频繁的访问类型切换将导致带宽的浪费。
为了解决这个问题,在一些实施例中,当仅在一个端口处具有待发送的访问请求并且该端口还具有访问类型不同的其它未发送的访问请求时,方法300还可以包括:判断待发送的访问请求的访问类型与设备访问类型是否相同,如果相同,则直接发送待发送的访问请求,否则,将与设备访问类型具有相同类型的未发送的访问请求作为待发送的访问请求,发送待发送的访问请求。
随后,在一些实施例中,依次判断各个未发送的访问请求与确定后的待发送的访问请求的类型是否相同。如果相同,则保持该未发送的访问请求的原有发送顺序。否则,将该未发送的访问请求的顺序调后。其中,如果需要调整顺序的未发送的访问请求是来自具有同一访问地址的多个未发送的访问请求中的未发送的访问请求,则保持该未发送的访问请求的原有顺序。
即,重新排序不会改变针对相同访问地址的访问请求的相对发送顺序,因此不会影响访问的正常执行。
在一些实施例中,以上处理可以由仲裁器112执行。
例如,在图6中示出的实例中,排序前的多个访问请求的访问类型依次分别为写、读、写、读、写、读,且访问地址依次分别为a0、a1、a2、a3、a4和a4。此外,假设对设备的最近一次访问为读访问。
由于针对地址a0的写访问请求的访问类型与设备访问类型不同,将针对地址a1的读访问请求排在第一位作为待发送的访问请求,这样可以减少访问类型的切换。此外,将针对地址a0和地址a2的写访问请求相对于针对地址a3的读访问请求向后调整次序,使得在发送针对地址a1的读访问请求后依次发送针对地址a3的读访问请求、针对地址a0的写访问请求和针对地址a2的写访问请求。值得注意的是,不调整针对同一地址a4的读访问请求和写访问请求的相对次序。因此,依然最后发送针对地址a4的写访问请求和读访问请求。
由此,以上重新排序没有改变针对相同访问地址a4的最后两个访问请求的相对发送顺序,但使得读访问和写访问更加集中。
在一种实现方式中,一种芯片可以包括如上所述的仲裁器或控制器。
在说明书及权利要求中的词语“前”、“后”、“顶”、“底”、“之上”、“之下”等,如果存在的话,用于描述性的目的而并不一定用于描述不变的相对位置。应当理解,这样使用的词语在适当的情况下是可互换的,使得在此所描述的本公开的实施例,例如,能够在与在此所示出的或另外描述的那些取向不同的其他取向上操作。
如在此所使用的,词语“示例性的”意指“用作示例、实例或说明”,而不是作为将被精确复制的“模型”。在此示例性描述的任意实现方式并不一定要被解释为比其它实现方式优选的或有利的。而且,本公开不受在上述技术领域、背景技术、发明内容或具体实施方式中所给出的任何所表述的或所暗示的理论所限定。
如在此所使用的,词语“基本上”意指包含由设计或制造的缺陷、器件或元件的容差、环境影响和/或其它因素所致的任意微小的变化。词语“基本上”还允许由寄生效应、噪声以及可能存在于实际的实现方式中的其它实际考虑因素所致的与完美的或理想的情形之间的差异。
另外,前面的描述可能提及了被“连接”或“耦接”在一起的元件或节点或特征。如在此所使用的,除非另外明确说明,“连接”意指一个元件/节点/特征与另一种元件/节点/特征在电学上、机械上、逻辑上或以其它方式直接地连接(或者直接通信)。类似地,除非另外明确说明,“耦接”意指一个元件/节点/特征可以与另一元件/节点/特征以直接的或间接的方式在机械上、电学上、逻辑上或以其它方式连结以允许相互作用,即使这两个特征可能并没有直接连接也是如此。也就是说,“耦接”意图包含元件或其它特征的直接连结和间接连结,包括利用一个或多个中间元件的连接。
另外,仅仅为了参考的目的,还可以在本文中使用“第一”、“第二”等类似术语,并且因而并非意图限定。例如,除非上下文明确指出,否则涉及结构或元件的词语“第一”、“第二”和其它此类数字词语并没有暗示顺序或次序。
还应理解,“包括/包含”一词在本文中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件以及/或者它们的组合。
在本公开中,术语“提供”从广义上用于涵盖获得对象的所有方式,因此“提供某对象”包括但不限于“购买”、“制备/制造”、“布置/设置”、“安装/装配”、和/或“订购”对象等。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。在此公开的各实施例可以任意组合,而不脱离本公开的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本公开的范围和精神。本公开的范围由所附权利要求来限定。
Claims (15)
1.一种用于多端口可访问设备的仲裁器,包括:
请求端口数确定模块,被配置为判断是在一个端口处还是多个端口处具有待发送的访问请求,其中,待发送的访问请求是指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求;
设备访问类型获取模块,被配置为获取表示对设备的最近一次访问的访问类型的设备访问类型;
访问请求特征获取模块,被配置为获取各个待发送的访问请求的访问类型和紧急程度,其中,访问请求的访问类型包括与设备访问类型相同的第一访问类型和与其不同的第二访问类型;以及
仲裁执行模块,被配置为执行以下处理:
如果仅在一个端口处具有待发送的访问请求,则将该访问请求确定为在待发送的访问请求当中将最先发送给设备的候选访问请求;或者
如果在多个端口处具有相应的多个待发送的访问请求,则根据设备访问类型以及各个访问请求的访问类型和紧急程度,从多个待发送的访问请求中确定当前优先级最高的至少一个优先访问请求,以及从至少一个优先访问请求中确定候选访问请求。
2.根据权利要求1所述的仲裁器,其中,访问请求特征获取模块包括:
初始化单元,被配置为在未发送的访问请求成为待发送的访问请求时,将该访问请求的排序计数初始化,其中,排序计数的初始化值与该访问请求的预设优先级相关;
老化单元,被配置为根据等待时间的增加来递减待发送的访问请求的排序计数,以获得表示紧急程度的更新排序计数,直至更新排序计数达到绝对最小排序计数;以及
访问请求类型获取单元,被配置为获取待发送的访问请求的访问类型。
3.根据权利要求1所述的仲裁器,其中,仲裁执行模块确定优先访问请求包括:
优先将第一访问类型的访问请求确定为优先访问请求,以减少访问类型的切换。
4.根据权利要求2所述的仲裁器,其中,仲裁执行模块确定优先访问请求包括:
如果在所述多个待发送的访问请求中有一个或多个第一访问类型的访问请求的更新排序计数达到绝对最小排序计数,则将所述一个或多个第一访问类型的访问请求确定为优先访问请求。
5.根据权利要求2所述的仲裁器,其中,仲裁执行模块确定优先访问请求包括:
如果在所述多个待发送的访问请求中仅有一个或多个第二访问类型的访问请求的更新排序计数达到绝对最小排序计数,则将所述一个或多个第二访问类型的访问请求确定为优先访问请求。
6.根据权利要求2所述的仲裁器,其中,仲裁执行模块确定优先访问请求包括:
如果所述多个待发送的访问请求具有相同的访问类型,则将其中具有相对最小排序计数的访问请求确定为优先访问请求。
7.根据权利要求2所述的仲裁器,其中,仲裁执行模块确定优先访问请求包括:
如果所述多个待发送的访问请求均具有大于绝对最小排序计数的更新排序计数但具有不同的访问类型,则计算具有相对最小排序计数的第一访问类型的访问请求的更新排序计数与具有相对最小排序计数的第二访问类型的访问请求的更新排序计数的差值,并根据所述差值与切换阈值的比较结果确定优先访问请求。
8. 根据权利要求7所述的仲裁器,仲裁执行模块根据所述差值确定优先访问请求包括:
如果差值小于或者等于切换阈值,则将具有相对最小排序计数的第一访问类型的访问请求确定为优先访问请求;或者
如果差值大于切换阈值,则将具有相对最小排序计数的第二访问类型的访问请求确定为优先访问请求。
9. 根据权利要求2所述的仲裁器,其中,
排序计数的初始化值被设置为正整数;以及
老化模块每次将排序计数递减1。
10.根据权利要求1所述的仲裁器,其中,仲裁执行模块使用轮询处理,从至少一个优先访问请求中确定候选访问请求。
11.根据权利要求1所述的仲裁器,其中,
当仅在一个端口处具有待发送的访问请求并且该端口还具有访问类型不同的其它未发送的访问请求时,所述仲裁器还可以被配置为判断待发送的访问请求的访问类型与设备访问类型是否相同,如果相同,则直接发送所述待发送的访问请求,否则,将与设备访问类型具有相同类型的未发送的访问请求作为待发送的访问请求,发送所述待发送的访问请求。
12.根据权利要求11所述的仲裁器,其中,所述仲裁器被配置为依次判断各个未发送的访问请求与确定后的所述待发送的访问请求的类型是否相同,如果相同,则保持该未发送的访问请求的原有发送顺序,否则,将该未发送的访问请求的顺序调后,其中,如果需要调整顺序的该未发送的访问请求是来自具有同一访问地址的多个未发送的访问请求中的未发送的访问请求,则保持该未发送的访问请求的原有顺序。
13.一种用于多端口可访问设备的控制器,包括:
根据权利要求1-12所述的仲裁器,被配置为从一个或多个待发送的访问请求中确定候选访问请求;
信用分发器,被配置为在设备处于可访问状态时,向所确定的候选访问请求授予信用;以及
选择器,被配置为接收针对具有信用的访问请求所处的端口的选通信号,以通过所述端口将所述访问请求发送到设备。
14.一种芯片,其中,所述芯片包括根据权利要求1-12中任一项所述的仲裁器或者根据权利要求13所述的控制器。
15.一种用于多端口可访问设备的仲裁方法,包括:
判断是在一个端口处还是多个端口处具有待发送的访问请求,其中,待发送的访问请求是指具有未发送的访问请求的各个请求端口中将最先发送给设备的访问请求;
如果仅在一个端口处具有待发送的访问请求,则将所述访问请求确定为在待发送的访问请求当中将最先发送给设备的候选访问请求;或者
如果在多个端口处具有相应的多个待发送的访问请求,则进行以下处理:
获取表示对设备的最近一次访问的访问类型的设备访问类型;
获取各个待发送的访问请求的访问类型和紧急程度,其中,访问请求的访问类型包括与设备访问类型相同的第一访问类型和与其不同的第二访问类型;
根据设备访问类型以及各个访问请求的访问类型和紧急程度,从所述多个待发送的访问请求中确定当前优先级最高的至少一个优先访问请求;以及
从至少一个优先访问请求中确定候选访问请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210144746.4A CN114185823B (zh) | 2022-02-17 | 2022-02-17 | 仲裁器、仲裁方法、控制器和芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210144746.4A CN114185823B (zh) | 2022-02-17 | 2022-02-17 | 仲裁器、仲裁方法、控制器和芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114185823A true CN114185823A (zh) | 2022-03-15 |
CN114185823B CN114185823B (zh) | 2022-05-24 |
Family
ID=80546149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210144746.4A Active CN114185823B (zh) | 2022-02-17 | 2022-02-17 | 仲裁器、仲裁方法、控制器和芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185823B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115086438A (zh) * | 2022-08-19 | 2022-09-20 | 南京芯驰半导体科技有限公司 | 任务处理方法、视频处理单元、部件及交通设备 |
WO2023226497A1 (zh) * | 2022-05-26 | 2023-11-30 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841350A (zh) * | 2005-03-30 | 2006-10-04 | 佳能株式会社 | 仲裁器和控制仲裁器的方法以及信息处理装置 |
CN1952916A (zh) * | 2006-11-28 | 2007-04-25 | 北京中星微电子有限公司 | 一种内存访问仲裁装置和方法 |
WO2008065477A1 (en) * | 2006-11-28 | 2008-06-05 | Nokia Corporation | Memory arbitration |
CN108228510A (zh) * | 2018-01-17 | 2018-06-29 | 广东工业大学 | 一种总线的仲裁方法、设备、存储介质及总线仲裁器 |
CN113760473A (zh) * | 2020-06-03 | 2021-12-07 | Oppo广东移动通信有限公司 | 优先级处理方法、处理器、处理芯片、电路板及电子设备 |
-
2022
- 2022-02-17 CN CN202210144746.4A patent/CN114185823B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841350A (zh) * | 2005-03-30 | 2006-10-04 | 佳能株式会社 | 仲裁器和控制仲裁器的方法以及信息处理装置 |
CN1952916A (zh) * | 2006-11-28 | 2007-04-25 | 北京中星微电子有限公司 | 一种内存访问仲裁装置和方法 |
WO2008065477A1 (en) * | 2006-11-28 | 2008-06-05 | Nokia Corporation | Memory arbitration |
CN108228510A (zh) * | 2018-01-17 | 2018-06-29 | 广东工业大学 | 一种总线的仲裁方法、设备、存储介质及总线仲裁器 |
CN113760473A (zh) * | 2020-06-03 | 2021-12-07 | Oppo广东移动通信有限公司 | 优先级处理方法、处理器、处理芯片、电路板及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023226497A1 (zh) * | 2022-05-26 | 2023-11-30 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
CN115086438A (zh) * | 2022-08-19 | 2022-09-20 | 南京芯驰半导体科技有限公司 | 任务处理方法、视频处理单元、部件及交通设备 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
CN117312199B (zh) * | 2023-11-30 | 2024-03-08 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114185823B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114185823B (zh) | 仲裁器、仲裁方法、控制器和芯片 | |
US7246188B2 (en) | Flow control method to improve bus utilization in a system-on-a-chip integrated circuit | |
US7526593B2 (en) | Packet combiner for a packetized bus with dynamic holdoff time | |
US6393500B1 (en) | Burst-configurable data bus | |
US7095752B2 (en) | On-chip inter-subsystem communication including concurrent data traffic routing | |
US7395364B2 (en) | Data transfer control apparatus | |
EP1018687A2 (en) | A port manager controller for connecting various function modules | |
KR101699784B1 (ko) | 버스 시스템 및 그것의 동작 방법 | |
US6263393B1 (en) | Bus switch for realizing bus transactions across two or more buses | |
US7054969B1 (en) | Apparatus for use in a computer system | |
US20070101032A1 (en) | Bus arbitration circuit and bus arbitration method | |
US20210334230A1 (en) | Method for accessing data bus, accessing system, and device | |
CN117348932B (zh) | 支持axi深度乱序传输的从机装置及工作方法 | |
EP1380960B1 (en) | Memory access from different clock domains | |
WO2003014948A1 (en) | System architecture of a high bit rate switch module between functional units in a system on a chip | |
JP3317150B2 (ja) | 情報処理装置 | |
GB2341771A (en) | Address decoding | |
GB2341699A (en) | Inter-module data transfer | |
GB2341772A (en) | Primary and secondary bus architecture | |
JP2000010914A (ja) | アービトレーション制御装置、及びそのアービトレーション制御方法 | |
GB2341770A (en) | Modular bus topology | |
GB2341767A (en) | Bus arbitration | |
GB2341768A (en) | Bus arbitration | |
JPH1115779A (ja) | バス制御システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |