CN116303158A - 总线仲裁方法、电子装置及图形处理器 - Google Patents
总线仲裁方法、电子装置及图形处理器 Download PDFInfo
- Publication number
- CN116303158A CN116303158A CN202310038946.6A CN202310038946A CN116303158A CN 116303158 A CN116303158 A CN 116303158A CN 202310038946 A CN202310038946 A CN 202310038946A CN 116303158 A CN116303158 A CN 116303158A
- Authority
- CN
- China
- Prior art keywords
- access request
- target
- memory page
- master device
- residual space
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012546 transfer Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1621—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本公开涉及数据处理技术领域,具体涉及一种总线仲裁方法、电子装置及图形处理器。
背景技术
在CPU中,当多个主设备访问内存时,总线会对多个主设备的访问请求进行调度,以选择其中的一个主设备分配内存访问权限。现有调度策略所关注的是保证每个主设备的访问请求都能及时响应,现有调度策略包括轮询式调度策略和基于QoS的调度策略。在轮询式调度策略中,当主设备的当前访问请求的传输完成后,自动将访问权限交给下一个主设备。在基于QoS的调度策略中,具有高优先级的主设备优先获得访问权限。然而由于每个主设备访问的地址通常位于内存的不同页中,因此频繁切换主设备的访问权限时,必然会造成内存页的频繁切换,从而导致内存访问效率因内存页的频繁切换而受到影响。
发明内容
本公开的目的是提供一种总线仲裁方法、电子装置及图形处理器,旨在提升内存访问效率。
根据本公开的一个方面,提供一种总线仲裁方法,该方法包括:
判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐;目标主设备是多个主设备中当前被分配内存访问权限的主设备,末尾数据是当前访问请求所访问的数据段中的最后一个数据,目标内存页是当前被访问的内存页;
在末尾数据与目标内存页的存储边界对齐的情况下,重新分配内存访问权限。
本公开一种可行的实现方式中,判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐,包括:
根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算在当前访问请求被执行后目标内存页的第一剩余空间;
在第一剩余空间等于0的情况下,确定目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界对齐。
本公开一种可行的实现方式中,当前访问请求是突发传输请求,被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
本公开一种可行的实现方式中,总线仲裁方法还包括:
将第一剩余空间的信息发送给目标主设备,使目标主设备根据第一剩余空间发送下一个访问请求。
本公开一种可行的实现方式中,总线仲裁方法还包括:
在第一剩余空间为负值的情况下,根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的下一内存页的总存储空间大小,计算在当前访问请求被执行后下一内存页的第二剩余空间;
将第二剩余空间的信息发送给目标主设备,使目标主设备根据第二剩余空间发送下一个访问请求。
本公开一种可行的实现方式中,总线仲裁方法还包括:
在接收到当前访问请求时开始计时,或者在处理完当前访问请求时开始计时;
在计时数值超过预设阈值时未接收到目标主设备的下一个访问请求的情况下,重新分配内存访问权限。
本公开一种可行的实现方式中,重新分配内存访问权限,包括:
按照轮询的方式,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限;
或者,根据每个主设备的待处理访问请求的QoS,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限。
根据本公开的另一方面,还提供一种电子装置,该装置包括:比较器和总线仲裁模块;
比较器被配置为:判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐;目标主设备是多个主设备中当前被分配内存访问权限的主设备,末尾数据是当前访问请求所访问的数据段中的最后一个数据,目标内存页是当前被访问的内存页;
总线仲裁模块被配置为:在末尾数据与目标内存页的存储边界对齐的情况下,重新分配内存访问权限。
本公开一种可行的实现方式中,比较器具体被配置为:根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算在当前访问请求被执行后目标内存页的第一剩余空间;在第一剩余空间等于0的情况下,确定目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界对齐。
本公开一种可行的实现方式中,当前访问请求是突发传输请求,被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
本公开一种可行的实现方式中,比较器还被配置为:将第一剩余空间的信息发送给目标主设备,使目标主设备根据第一剩余空间发送下一个访问请求。
本公开一种可行的实现方式中,总线仲裁装置还包括多个地址计算模块,每个地址计算模块分别与一个主设备对应,每个地址计算模块与对应主设备的传输延时小于比较器与该主设备的传输延时;
每个地址计算模块被配置为:根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算在当前访问请求被执行后目标内存页的第一剩余空间;将第一剩余空间的信息发送给目标主设备,使目标主设备根据第一剩余空间发送下一个访问请求。
本公开一种可行的实现方式中,总线仲裁装置还包括多个主设备,多个主设备中的目标主设备接收到第一剩余空间后,判断第一剩余空间是否大于预设数据大小,若是,则根据预设数据大小发送下一个访问请求,若否,则根据第一剩余空间发送下一个访问请求。
本公开一种可行的实现方式中,比较器还被配置为:在第一剩余空间为负值的情况下,根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的下一内存页的总存储空间大小,计算在当前访问请求被执行后下一内存页的第二剩余空间;将第二剩余空间的信息发送给目标主设备,使目标主设备根据第二剩余空间发送下一个访问请求。
本公开一种可行的实现方式中,总线仲裁模块还被配置为:在接收到当前访问请求时开始计时,或者在处理完当前访问请求时开始计时;在计时数值超过预设阈值时未接收到目标主设备的下一个访问请求的情况下,重新分配内存访问权限。
本公开一种可行的实现方式中,总线仲裁模块具体被配置为:按照轮询的方式,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限;或者,根据每个主设备的待处理访问请求的QoS,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限。
根据本公开的另一方面,还提供一种图形处理器,包括上述任一实施例中所述的电子装置。
附图说明
图1是本公开一实施例提供的总线仲裁方法的流程示意图;
图2是本公开一实施例提供的总线仲裁装置的结构示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
现有技术中,为了保证每个主设备的访问请求都能及时响应,通常会在多个主设备之间频繁切换内存访问权限。然而由于每个主设备访问的地址通常位于内存的不同页中,因此频繁切换主设备的访问权限时,必然会造成内存页的频繁切换,从而导致内存访问效率因内存页的频繁切换而受到影响。
本公开为了提升内存访问效率,提出了一种总线仲裁方法、电子装置及图形处理器。参考图1,图1是本公开一实施例提供的总线仲裁方法的流程示意图。如图1所示,该总线仲裁方法包括以下步骤:
S110:判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐;目标主设备是多个主设备中当前被分配内存访问权限的主设备,末尾数据是当前访问请求所访问的数据段中的最后一个数据,目标内存页是当前被访问的内存页。
本公开中,目标主设备的当前访问请求会访问(比如读取)目标内存页中的一段数据。当前访问请求对应的末尾数据与目标内存页的存储边界对齐,具体是指:当前访问请求访问的数据段中的最后一个数据恰好是目标内存页中的最后一个数据。
本公开的总线仲裁方法可具体应用于GPU,被访问的内存可以是显存GDDR。GPU相比于CPU,其内存访问过程主要存在以下特点:1)主设备需要从内存读取的数据通常较大,这些数据通常会存满一个或多个内存页;2)主设备对于访问请求的响应及时性要求不高。由于GPU的内存访问过程存在上述特点,使得本公开的总线仲裁方法在GPU中实施时能更显著地提升内存访问效率,也不会带来其他负面效果。
本公开中,多个主设备可以是多核GPU显卡中的多个GPU,多个主设备也可以是一个GPU中的多个模块,本公开对于主设备的具体类型不做限定。
在本公开的一些具体实施方式中,步骤S110具体包括以下子步骤:
S110-1:根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算在当前访问请求被执行后目标内存页的第一剩余空间。
S110-2:在第一剩余空间等于0的情况下,确定目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界对齐。
其中,第一剩余空间是指当前访问请求访问的数据段中的最后一个数据与目标内存页中的最后一个数据之间的存储空间。
在根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算第一剩余空间时,具体是对访问地址与访问数据大小求和,然后将总存储空间与求和结果相减,得到第一剩余空间。
如果访问地址的位宽M大于目标内存页的存储空间的位宽N,则在根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算第一剩余空间时,具体是取访问地址的低N+1位,将被访问数据大小信息表示为N位,然后对低N+1位的访问地址与N位的被访问数据大小信息进行求和,然后将N位的总存储空间与求和结果相减,得到第一剩余空间。
在本公开的一些具体实施方式中,当前访问请求是突发传输请求,被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
为便于理解,以AMBA AXI总线为例,当发起的传输请求地址为Request_Addr[31:0],突发长度为16,突发大小为256Bit时,被访问数据大小Transfer_Size[11:0]为16*256/8=512B。以Request_Addr为访问地址(即起始地址),该次传输结束时的地址为Request_Addr[31:0]+Transfer_Size[11:0],假设目标内存页总存储空间大小Page_Size为4KB,即位宽为12位,表示为Page_Size[11:0],则第一剩余空间为:Page_Size[11:0]- (Request_Addr[31:0] + Transfer_Size[11:0])。硬件实现时,为防止溢出,计算公式为:Rest_Addr[12:0]={1’b0,Page_Size[11:0]}-(Request_Addr[12:0]+{1’b0,Transfer_Size[11:0]}),Rest_Addr为第一剩余空间。
S120:在末尾数据与目标内存页的存储边界对齐的情况下,重新分配内存访问权限。
在本公开的一些具体实施方式中,当需要重新分配内存访问权限时,可以按照轮询的方式,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限;或者,也根据每个主设备的待处理访问请求的QoS,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限。
其中,在按照轮询的方式分配内存访问权限时,可以按照预设顺序遍历每个主设备,如果被遍历到的主设备当前存在未被处理的访问请求,则将内存访问权限分配该主设备。在根据每个主设备的待处理访问请求的QoS分配内存访问权限时,可以从缓存的多个待处理访问请求中确定优先级最高的访问请求,然后将内存访问权限分配该访问请求对应的主设备。
本公开中,如果末尾数据与目标内存页(即当前被访问的内存页)的存储边界对齐,则说明当前被访问的内存页恰好被读完。如果此时继续处理目标主设备的访问请求,则刚好需要切换到其他内存页。本公开中在刚好需要切换内存页时,重新分配内存访问权限,可以减少内存页切换次数,提升内存访问效率。
或者从另一个角度来讲,本公开在末尾数据与目标内存页的存储边界对齐的情况下,才重新分配内存访问权限,在末尾数据与目标内存页的存储边界未对齐的情况下,不重新分配内存访问权限,可以使得一个主设备的对应同一内存页的连续多个访问请求被连续处理,可以显著减少内存页切换次数,提升内存访问效率。
在本公开的一些具体实施方式中,总线仲裁方法还包括以下步骤:将第一剩余空间的信息发送给目标主设备,使目标主设备根据第一剩余空间发送下一个访问请求。
本公开中,通过将第一剩余空间信息发送给目标主设备,可以使目标主设备根据第一剩余空间信息生成下一个访问请求,而不至于在没有第一剩余空间信息作为参考的情况下盲目生成下一个访问请求,导致下一个访问请求需要跨域内存页。例如,在本公开的一些具体实施方式中,主设备在生成新的访问请求时,首先根据上一个访问请求被处理后的第一剩余空间,判断第一剩余空间是否大于预设数据大小,如果大于,则根据预设数据大小生成新的访问请求,该新的访问请求所需访问的数据大小等于该预设数据大小,如果不大于,则根据第一剩余空间生成新的访问请求,该新的访问请求所需访问的数据大小等于该第一剩余空间的大小。
在本公开的一些具体实施方式中,考虑到主设备在生成第一个访问请求时,并没有第一剩余空间作为参考,因此生成的第一个访问请求可能会存在跨域内存页的情况,在此情况下,按照上述子步骤S110-1的方式计算出的第一剩余空间为负值。为了应对这种情况,本公开的总线仲裁方法还包括以下步骤:在第一剩余空间为负值的情况下,根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的下一内存页的总存储空间大小,计算在当前访问请求被执行后下一内存页的第二剩余空间;将第二剩余空间的信息发送给目标主设备,使目标主设备根据第二剩余空间发送下一个访问请求。
其中,第二剩余空间是指当前访问请求访问的数据段中的最后一个数据与目标内存页的下一内存页中的最后一个数据之间的存储空间。
根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的下一内存页的总存储空间大小,计算第二剩余空间时,具体是对访问地址与访问数据大小求和,然后将下一内存页的总存储空间与求和结果大小相减,得到第二剩余空间。
如果访问地址的位宽M大于目标内存页的存储空间的位宽N,则在根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及下一内存页的总存储空间大小,计算第二剩余空间时,具体是取访问地址的低N+1位,将被访问数据大小信息表示为N位,然后对低N+1位的访问地址与N位的被访问数据大小信息进行求和,然后将下一内存页的N位总存储空间与求和结果相减,得到第二剩余空间。
在本公开的一些具体实施方式中,当前访问请求是突发传输请求,被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
为便于理解,以AMBA AXI总线为例,当发起的传输请求地址为Request_Addr[31:0],突发长度为16,突发大小为256Bit时,被访问数据大小Transfer_Size[11:0]为16*256/8=512B。以Request_Addr为访问地址(即起始地址),该次传输结束时的地址为Request_Addr[31:0]+Transfer_Size[11:0],假设目标内存页总存储空间大小Page_Size为4KB,即位宽为12位,表示为Page_Size[11:0],则第一剩余空间为:Page_Size[11:0]- (Request_Addr[31:0] + Transfer_Size[11:0])。硬件实现时,为防止溢出,计算公式为:Rest_Addr[12:0]={1’b0,Page_Size[11:0]}-(Request_Addr[12:0]+{1’b0,Transfer_Size[11:0]}),Rest_Addr为第一剩余空间。如果第一剩余空间为负值,则需要根据下一内存页的总存储空间大小Page_Size’,计算第二剩余空间,计算公式为Rest_Addr[12:0]’={1’b0,Page_Size[11:0]’}-(Request_Addr[12:0]+{1’b0,Transfer_Size[11:0]}),Rest_Addr’为第二剩余空间。
本公开中,通过将第二剩余空间信息发送给目标主设备,可以使目标主设备根据第二剩余空间信息生成下一个访问请求,而不至于在没有第二剩余空间信息作为参考的情况下盲目生成下一个访问请求,导致下一个访问请求需要跨域内存页。
在本公开的一些具体实施方式中,考虑到如果目标主设备的多个访问请求已经处理完,但是其中最后一个访问请求对应的末尾数据并未与目标内存页的边界对齐,则需要一直等待目标主设备发起新的访问请求,且直至某个访问请求对应的末尾数据与目标内存页的边界对齐,才会切换内存访问权限。在上述情况下,会导致内存在较长一段时间内不能被访问。为了应对上述情况,本公开的总线仲裁方法还包括以下步骤:在接收到当前访问请求时开始计时,或者在处理完当前访问请求时开始计时;在计时数值超过预设阈值时未接收到目标主设备的下一个访问请求的情况下,重新分配内存访问权限。
本公开中,如果计时数值超过预设阈值还未接收到目标主设备发送的下一个访问请求,则说明目标主设备很可能已经完成了当前任务(比如图像渲染任务、图像显示任务、模型训练任务)的数据读取任务,在目标主设备开始处理下一个任务之前,暂时不会发起新的访问请求。因此为了及时将内存访问权限移交给其他主设备,本公开中如果计时数值超过预设阈值还未接收到目标主设备发送的下一个访问请求,则会重新分配内存访问权限。
以上,本公开提供了一种总线仲裁方法,以下基于同一发明构思,本公开提出一种电子装置。参考图2,图2是本公开一实施例提供的总线仲裁装置的结构示意图。如图2所示,该总线仲裁装置包括比较器和总线仲裁模块。
其中,比较器被配置为:判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐;目标主设备是多个主设备中当前被分配内存访问权限的主设备,末尾数据是当前访问请求所访问的数据段中的最后一个数据,目标内存页是当前被访问的内存页。
总线仲裁模块被配置为:在末尾数据与目标内存页的存储边界对齐的情况下,重新分配内存访问权限。
本公开中,如果末尾数据与目标内存页(即当前被访问的内存页)的存储边界对齐,则说明当前被访问的内存页恰好被读完。如果此时继续处理目标主设备的访问请求,则刚好需要切换到其他内存页。本公开中在刚好需要切换内存页时,重新分配内存访问权限,可以减少内存页切换次数,提升内存访问效率。
或者从另一个角度来讲,本公开在末尾数据与目标内存页的存储边界对齐的情况下,才重新分配内存访问权限,在末尾数据与目标内存页的存储边界未对齐的情况下,不重新分配内存访问权限,可以使得一个主设备的对应同一内存页的连续多个访问请求被连续处理,可以显著减少内存页切换次数,提升内存访问效率。
在本公开的一些具体实施方式中,比较器与总线仲裁模块之间通过仲裁切换信号线连接,当比较器判断出当前访问请求对应的末尾数据与目标内存页的存储边界已经对齐时,比较器向总线仲裁模块发送的仲裁切换信号为高电位。当比较器判断出当前访问请求对应的末尾数据与目标内存页的存储边界还未对齐时,比较器向总线仲裁模块发送的仲裁切换信号维持为低电位。
在本公开的一些具体实施方式中,比较器具体被配置为:根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算在当前访问请求被执行后目标内存页的第一剩余空间;在第一剩余空间等于0的情况下,确定目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界对齐。
在本公开的一些具体实施方式中,当前访问请求是突发传输请求,被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
为便于理解,以AMBA AXI总线为例,当发起的传输请求地址为Request_Addr[31:0],突发长度为16,突发大小为256Bit时,被访问数据大小Transfer_Size[11:0]为16*256/8=512B。以Request_Addr为访问地址(即起始地址),该次传输结束时的地址为Request_Addr[31:0]+Transfer_Size[11:0],假设目标内存页总存储空间大小Page_Size为4KB,即位宽为12位,表示为Page_Size[11:0],则第一剩余空间为:Page_Size[11:0]- (Request_Addr[31:0] + Transfer_Size[11:0])。硬件实现时,为防止溢出,计算公式为:Rest_Addr[12:0]={1’b0,Page_Size[11:0]}-(Request_Addr[12:0]+{1’b0,Transfer_Size[11:0]}),Rest_Addr为第一剩余空间。
在本公开的一些具体实施方式中,比较器还被配置为:将第一剩余空间的信息发送给目标主设备,使目标主设备根据第一剩余空间发送下一个访问请求。通过将第一剩余空间信息发送给目标主设备,可以使目标主设备根据第一剩余空间信息生成下一个访问请求,而不至于在没有第一剩余空间信息作为参考的情况下盲目生成下一个访问请求,导致下一个访问请求需要跨域内存页。
或者在本公开的另一些具体实施方式中,总线仲裁装置不是通过比较器将第一剩余空间信息发送给目标主设备,而是通过与目标主设备时延更小的地址计算模块将第一剩余空间信息发送给目标主设备。具体地,总线仲裁装置还包括多个地址计算模块(图2中仅示出了目标主设备对应的地址计算模块),每个地址计算模块分别与一个主设备对应,每个地址计算模块与对应主设备的传输延时小于比较器与该主设备的传输延时。
每个地址计算模块被配置为:根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算在当前访问请求被执行后目标内存页的第一剩余空间;将第一剩余空间的信息发送给目标主设备,使目标主设备根据第一剩余空间发送下一个访问请求。
如图2所示,目标主设备的访问请求会被发送给比较器和目标主设备对应的地址计算模块。该地址计算模块根据访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算出第一剩余空间,并将第一剩余空间信息发送给目标主设备。比较器根据访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的总存储空间大小,计算出第一剩余空间,如果第一剩余空间等于0,则比较器向总线仲裁模块发送的仲裁切换信号为高电位,如果第一剩余空间不等于0,则比较器向总线仲裁模块发送的仲裁切换信号维持为低电位。
本公开中,通过目标主设备对应的地址计算模块向目标主设备发送第一剩余空间信息,由于地址计算模块与目标主设备之间的时延较小,因此可以帮助目标主设备在发送完上一个访问请求后及时接收到相应的第一剩余空间信息,从而能根据该第一剩余空间迅速生成下一个访问请求。
在本公开的一些具体实施方式中,总线仲裁装置还包括多个主设备(图2中仅示出了目标主设备),多个主设备中的目标主设备接收到第一剩余空间后,判断第一剩余空间是否大于预设数据大小,若是,则根据预设数据大小发送下一个访问请求,若否,则根据第一剩余空间发送下一个访问请求。
具体实现时,主设备根据上一个访问请求被处理后的第一剩余空间,判断第一剩余空间是否大于预设数据大小,如果大于,则根据预设数据大小生成新的访问请求,该新的访问请求所需访问的数据大小等于该预设数据大小,如果不大于,则根据第一剩余空间生成新的访问请求,该新的访问请求所需访问的数据大小等于该第一剩余空间的大小。
如前所述,考虑到主设备在生成第一个访问请求时,并没有第一剩余空间作为参考,因此生成的第一个访问请求可能会存在跨域内存页的情况,在此情况下,比较器计算出的第一剩余空间为负值。为了应对这种情况,在本公开的一些具体实施方式中,比较器还被配置为:在第一剩余空间为负值的情况下,根据当前访问请求携带的访问地址信息和被访问数据大小信息,以及目标内存页的下一内存页的总存储空间大小,计算在当前访问请求被执行后下一内存页的第二剩余空间;将第二剩余空间的信息发送给目标主设备,使目标主设备根据第二剩余空间发送下一个访问请求。
如前所述,考虑到如果目标主设备的多个访问请求已经处理完,但是其中最后一个访问请求对应的末尾数据并未与目标内存页的边界对齐,则需要一直等待目标主设备发起新的访问请求,且直至某个访问请求对应的末尾数据与目标内存页的边界对齐,才会切换内存访问权限。在上述情况下,会导致内存在较长一段时间内不能被访问。为了应对上述情况,在本公开的一些具体实施方式中,总线仲裁模块还被配置为:在接收到当前访问请求时开始计时,或者在处理完当前访问请求时开始计时;在计时数值超过预设阈值时未接收到目标主设备的下一个访问请求的情况下,重新分配内存访问权限。
在本公开的一些具体实施方式中,总线仲裁模块具体被配置为:按照轮询的方式,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限;或者,根据每个主设备的待处理访问请求的QoS,从多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限。
本公开基于同一发明构思,还提出一种图形处理器,该图形处理器包括上述任一实施例中所述的电子装置。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (17)
1.一种总线仲裁方法,所述方法包括:
判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐;所述目标主设备是多个主设备中当前被分配内存访问权限的主设备,所述末尾数据是所述当前访问请求所访问的数据段中的最后一个数据,所述目标内存页是当前被访问的内存页;
在所述末尾数据与所述目标内存页的存储边界对齐的情况下,重新分配所述内存访问权限。
2.根据权利要求1所述的方法,所述判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐,包括:
根据所述当前访问请求携带的访问地址信息和被访问数据大小信息,以及所述目标内存页的总存储空间大小,计算在所述当前访问请求被执行后所述目标内存页的第一剩余空间;
在所述第一剩余空间等于0的情况下,确定所述目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界对齐。
3.根据权利要求2所述的方法,所述当前访问请求是突发传输请求,所述被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
4.根据权利要求2所述的方法,所述方法还包括:
将所述第一剩余空间的信息发送给所述目标主设备,使所述目标主设备根据所述第一剩余空间发送下一个访问请求。
5.根据权利要求2所述的方法,所述方法还包括:
在所述第一剩余空间为负值的情况下,根据所述当前访问请求携带的访问地址信息和被访问数据大小信息,以及所述目标内存页的下一内存页的总存储空间大小,计算在所述当前访问请求被执行后所述下一内存页的第二剩余空间;
将所述第二剩余空间的信息发送给所述目标主设备,使所述目标主设备根据所述第二剩余空间发送下一个访问请求。
6.根据权利要求1所述的方法,所述方法还包括:
在接收到所述当前访问请求时开始计时,或者在处理完所述当前访问请求时开始计时;
在计时数值超过预设阈值时未接收到所述目标主设备的下一个访问请求的情况下,重新分配所述内存访问权限。
7.根据权利要求1所述的方法,所述重新分配所述内存访问权限,包括:
按照轮询的方式,从所述多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限;
或者,根据每个主设备的待处理访问请求的QoS,从所述多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限。
8.一种电子装置,所述装置包括:比较器和总线仲裁模块;
所述比较器被配置为:判断目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界是否对齐;所述目标主设备是多个主设备中当前被分配内存访问权限的主设备,所述末尾数据是所述当前访问请求所访问的数据段中的最后一个数据,所述目标内存页是当前被访问的内存页;
所述总线仲裁模块被配置为:在所述末尾数据与所述目标内存页的存储边界对齐的情况下,重新分配所述内存访问权限。
9.根据权利要求8所述的装置,所述比较器具体被配置为:根据所述当前访问请求携带的访问地址信息和被访问数据大小信息,以及所述目标内存页的总存储空间大小,计算在所述当前访问请求被执行后所述目标内存页的第一剩余空间;在所述第一剩余空间等于0的情况下,确定所述目标主设备的当前访问请求对应的末尾数据与目标内存页的存储边界对齐。
10.根据权利要求9所述的装置,所述当前访问请求是突发传输请求,所述被访问数据大小等于突发传输请求携带的突发长度和突发大小的乘积。
11.根据权利要求9所述的装置,所述比较器还被配置为:将所述第一剩余空间的信息发送给所述目标主设备,使所述目标主设备根据所述第一剩余空间发送下一个访问请求。
12.根据权利要求8所述的装置,所述装置还包括多个地址计算模块,每个地址计算模块分别与一个主设备对应,每个地址计算模块与对应主设备的传输延时小于所述比较器与该主设备的传输延时;
每个地址计算模块被配置为:根据所述当前访问请求携带的访问地址信息和被访问数据大小信息,以及所述目标内存页的总存储空间大小,计算在所述当前访问请求被执行后所述目标内存页的第一剩余空间;将所述第一剩余空间的信息发送给所述目标主设备,使所述目标主设备根据所述第一剩余空间发送下一个访问请求。
13.根据权利要求11或12所述的装置,所述装置还包括多个主设备,所述多个主设备中的所述目标主设备接收到所述第一剩余空间后,判断所述第一剩余空间是否大于预设数据大小,若是,则根据所述预设数据大小发送下一个访问请求,若否,则根据所述第一剩余空间发送下一个访问请求。
14.根据权利要求9所述的装置,所述比较器还被配置为:在所述第一剩余空间为负值的情况下,根据所述当前访问请求携带的访问地址信息和被访问数据大小信息,以及所述目标内存页的下一内存页的总存储空间大小,计算在所述当前访问请求被执行后所述下一内存页的第二剩余空间;将所述第二剩余空间的信息发送给所述目标主设备,使所述目标主设备根据所述第二剩余空间发送下一个访问请求。
15.根据权利要求8所述的装置,所述总线仲裁模块还被配置为:在接收到所述当前访问请求时开始计时,或者在处理完所述当前访问请求时开始计时;在计时数值超过预设阈值时未接收到所述目标主设备的下一个访问请求的情况下,重新分配所述内存访问权限。
16.根据权利要求8所述的装置,所述总线仲裁模块具体被配置为:按照轮询的方式,从所述多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限;或者,根据每个主设备的待处理访问请求的QoS,从所述多个主设备中选择一个主设备,并为选择的主设备分配内存访问权限。
17.一种图形处理器,包括权利要求8至16任一项所述的电子装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310038946.6A CN116303158A (zh) | 2023-01-12 | 2023-01-12 | 总线仲裁方法、电子装置及图形处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310038946.6A CN116303158A (zh) | 2023-01-12 | 2023-01-12 | 总线仲裁方法、电子装置及图形处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116303158A true CN116303158A (zh) | 2023-06-23 |
Family
ID=86789554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310038946.6A Pending CN116303158A (zh) | 2023-01-12 | 2023-01-12 | 总线仲裁方法、电子装置及图形处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116303158A (zh) |
-
2023
- 2023-01-12 CN CN202310038946.6A patent/CN116303158A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5903283A (en) | Video memory controller with dynamic bus arbitration | |
US20080126643A1 (en) | Semiconductor circuit | |
US9213545B2 (en) | Storing data in any of a plurality of buffers in a memory controller | |
WO1996035173A1 (en) | Arbitration of computer resource access requests | |
JP4142069B2 (ja) | 情報処理装置およびアクセス制御方法 | |
US9207753B2 (en) | Multiple-queue multiple-resource entry sleep and wakeup for power savings and bandwidth conservation in a retry based pipeline | |
KR100480605B1 (ko) | 네트워크 제어기의 송신부 버퍼 및 수신부 버퍼를제어하는 방법 및 네트워크 제어기 | |
CN110059035B (zh) | 半导体装置和总线发生器 | |
US20160179668A1 (en) | Computing system with reduced data exchange overhead and related data exchange method thereof | |
KR19990062457A (ko) | 다이나믹 램 내장 마이크로 프로세서 및 다이나믹 램 내장 마이크로 프로세서의 데이터 전송 방법 | |
US7234012B2 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
CN116303158A (zh) | 总线仲裁方法、电子装置及图形处理器 | |
US8549234B2 (en) | Memory controller and methods | |
JPH08161254A (ja) | 情報処理システムおよびそのバス調停方式 | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
US20050135402A1 (en) | Data transfer apparatus | |
US8239652B2 (en) | Data processing system | |
US8713205B2 (en) | Data transfer device and data transfer method | |
KR20210061583A (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
CN117851292B (zh) | 集成电路系统、组件、设备及内存管理方法 | |
JP2002024007A (ja) | プロセッサシステム | |
US20100153610A1 (en) | Bus arbiter and bus system | |
CN115017093B (zh) | 一种片上外部总线通信的方法以及装置 | |
JPH11184798A (ja) | データ通信装置 | |
JP4292218B2 (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 |