CN109002408B - 总线仲裁方法和系统 - Google Patents

总线仲裁方法和系统 Download PDF

Info

Publication number
CN109002408B
CN109002408B CN201810788007.2A CN201810788007A CN109002408B CN 109002408 B CN109002408 B CN 109002408B CN 201810788007 A CN201810788007 A CN 201810788007A CN 109002408 B CN109002408 B CN 109002408B
Authority
CN
China
Prior art keywords
bus
master
control right
arbiter
switching
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
CN201810788007.2A
Other languages
English (en)
Other versions
CN109002408A (zh
Inventor
伍德斌
王祎磊
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.)
Beijing Starblaze Technology Co ltd
Original Assignee
Beijing Starblaze Technology Co ltd
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 Beijing Starblaze Technology Co ltd filed Critical Beijing Starblaze Technology Co ltd
Priority to CN201810788007.2A priority Critical patent/CN109002408B/zh
Publication of CN109002408A publication Critical patent/CN109002408A/zh
Application granted granted Critical
Publication of CN109002408B publication Critical patent/CN109002408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

总线仲裁方法和系统
技术领域
本申请属于存储总线技术领域,具体的,涉及对多个主设备访问总线的访问请求的仲裁。
背景技术
总线是电子设备的重要组成部分。诸如计算机、服务器中使用PCIe总线、USB总线(universal serial bus通用串行总线)来耦合多种外围设备、存储器与CPU。AMBA、Wishbone与Avalon是SoC中常用的总线。
DRAM(Dynamic Random Access Memory,动态随机访问存储器)耦合到总线。主设备通过总线访问DRAM。常见的DRAM类型有SDRAM、DDR SDRAM以及DDR2SDRAM等。DRAM的总线带宽往往决定了系统的最大处理能力。提高DRAM的总线带宽是提高系统处理能力的重要途径。
多种设备耦合到总线.能控制总线并与从设备进行数据交换的耦合到总线的设备称为主设备;不能控制总线,但能通过总线接收访问请求并做出响应的耦合到总线的设备称为从设备。
多种电子设备的芯片中使用总线。以存储设备控制器为例,图1展示了存储设备控制器的总线系统的示意图。
存储设备控制器的总线系统包括耦合到总线102的多个总线主设备101和DRAM103。作为举例,总线主设备101包括前端子系统1011,后端子系统1012与CPU子系统1013。
前端子系统1011例如根据NVMe/PCIe协议同耦合到存储设备的主机交换数据。前端子系统1011写入存储设备的数据被临时存储在DRAM,主机从存储设备读出的数据从DRAM通过前端子系统1011提供给主机。
后端子系统1012例如根据ONFI协议同NVM芯片交换数据。后端子系统1012将DRAM103中的数据提供给NVM芯片,也将从NVM芯片读出的数据存储到DRAM103,并供前端子系统1011使用。
CPU子系统1013在前端子系统1011与后端子系统1012之间生成和/或传递命令,以协调各子系统的工作。
总线102包括前端DMA代理1021、后端DMA代理1022、CPU代理1023和总线仲裁器1024。
为访问DRAM或其他总线设备,前端子系统1011向前端DMA代理1021提供读/写访问命令,后端子系统1012向后端DMA代理1022提供读/写访问命令,CPU子系统1013向CPU代理1023提供读/写访问命令。
发明内容
在使用DRAM作为数据缓存时,前端子系统、后端子系统和/或CPU可能同时访问DRAM。前端DMA代理与后端DMA代理(统称DMA代理)倾向于发出大尺寸的数据包访问DRAM,以传输例如若干KB大小整页数据。CPU主设备倾向于发出相对小尺寸的数据包访问DRAM,以访问例如若干字节大小的代表IO命令的数据结构。在DMA主设备占据总线进行数据传输时,如果CPU需要传输数据,总线仲裁器需要做出选择。如果优先服务来自CPU的总线访问请求,将导致频繁打断DMA主设备的数据传输,切换总线上的读/写操作,造成对总线与DRAM的利用率的较大影响。如果总线仲裁器优先服务于DMA主设备的总线访问请求,将导致CPU的总线访问请求的较大延迟,并影响存储设备的整体性能。
并且,总线仲裁器无法获知前端子系统、后端子系统以及CPU的总线访问的方式,因此难以找到优化的总线仲裁方式,并导致无法获得对DRAM、总线以及各总线部件的有效利用。
为了进一步提高资源利用率,本申请提供一种总线仲裁方法和系统。
根据本申请的第一方面,提供了根据本申请第一方面的第一顺序流总线仲裁方法,其中总线主设备告知总线仲裁器可以进行总线控制权切换;响应于总线主设备的可以进行总线控制权切换指示,总线仲裁器选择切换或保持具有总线控制权的主设备。
根据本申请的第一方面的第一顺序流总线仲裁方法,提供了根据本申请第一方面的第二顺序流总线仲裁方法,其中,响应于满足指定的切换策略,总线主设备主动告知总线仲裁器可以进行总线控制权切换。
根据本申请的第一方面的第二顺序流总线仲裁方法,提供了根据本申请第一方面的第三顺序流总线仲裁方法,其中所述切换策略是根据指定切换粒度产生进行控制权切换的指示。
根据本申请的第一方面的第三顺序流总线仲裁方法,提供了根据本申请第一方面的第四顺序流总线仲裁方法,其中所述切换粒度为持续传输数据的指定长度。
根据本申请的第一方面的第三顺序流总线仲裁方法,提供了根据本申请第一方面的第五顺序流总线仲裁方法,其中总线主设备在总线上传输的数据长度达到所述切换粒度时,向总线仲裁器发送可以进行控制权切换的指示。
根据本申请的第一方面的第二顺序流总线仲裁方法,提供了根据本申请第一方面的第六顺序流总线仲裁方法,其中所述切换策略是当总线主设备要发送的数据被传输完毕,向总线仲裁器发送可以进行控制权切换的切换指示。
根据本申请的第一方面的第二顺序流总线仲裁方法,提供了根据本申请第一方面的第七顺序流总线仲裁方法,其中通过执行指定程序或根据指定的配置,向总线仲裁器发送可以进行控制权切换的指示。
根据本申请的第一方面的第一至第七顺序流总线仲裁方法之一,提供了根据本申请第一方面的第八顺序流总线仲裁方法,其中总线主设备通过发送切换信号或在总线访问请求中插入切换标识来向总线仲裁器发送可以进行控制权切换指示。
根据本申请的第一方面的第一至第八顺序流总线仲裁方法之一,提供了根据本申请第一方面的第九顺序流总线仲裁方法,其中响应于总线主设备的可以进行控制权切换的指示,总线仲裁器从有待处理总线访问请求的多个主设备中选择第一主设备,将总线控制权给予第一主设备。
根据本申请的第一方面的第九顺序流总线仲裁方法,提供了根据本申请第一方面的第十顺序流总线仲裁方法,其中所述第一主设备是所述总线主设备之外的主设备。
根据本申请的第一方面的第一至第九顺序流总线仲裁方法之一,提供了根据本申请第一方面的第十一顺序流总线仲裁方法,其中总线仲裁器选择切换当前控制权时,暂停对当前访问请求的处理,使发出当前访问请求的主设备释放总线控制权,并按照时间长度顺序或优先级将总线控制权给予其他主设备。
根据本申请的第一方面的第一至第九顺序流总线仲裁方法之一,提供了根据本申请第一方面的第十二顺序流总线仲裁方法,其中总线仲裁器认为发送切换指示的主设备继续控制总线能使总线或耦合到总线上的设备得到更高利用率,则依然保持该主设备的当前控制权。
根据本申请的第一方面的第一至第九顺序流总线仲裁方法之一,提供了根据本申请第一方面的第十三顺序流总线仲裁方法,其中如有多个总线主设备向总线仲裁器提供可以进行控制权切换指示,则总线仲裁器根据各主设备的总线访问请求,确定由哪个主设备使用总线。
根据本申请的第一方面的第一至第九顺序流总线仲裁方法之一,提供了根据本申请第一方面的第十四顺序流总线仲裁方法,其中响应于总线主设备的控制权切换指示,总线仲裁器对各主设备的总线访问请求进行仲裁,确定接下来使用总线的主设备,获取总线控制权的主设备在总线上进行数据传输。
根据本申请的第一方面的第一至第九顺序流总线仲裁方法之一,提供了根据本申请第一方面的第十五顺序流总线仲裁方法,其中当前未占用总线的总线主设备告知总线仲裁器可以进行控制权切换,以指示自己愿意让出总线的使用权。
根据本申请的第一方面的第一顺序流总线仲裁方法,提供了根据本申请第一方面的第十六顺序流总线仲裁方法,其中总线主设备中具有最高优先级的主设备,作为第二主设备;总线仲裁器接收到第二主设备的总线访问请求,将当前控制权切换至所述第二主设备。
根据本申请的第一方面的第十六顺序流总线仲裁方法之一,提供了根据本申请第一方面的第十七顺序流总线仲裁方法,其中总线仲裁器未接收到所述第二主设备的总线访问请求且有其他主设备的访问请求,则将控制权给予其中一个主设备,处理该主设备的访问请求。
根据本申请的第一方面的第十六顺序流总线仲裁方法,提供了根据本申请第一方面的第十八顺序流总线仲裁方法,其中当总线仲裁器接收到所述第二主设备发送的切换指示后,选择切换或保持当前控制权;当选择切换当前控制权时,如果当前有其他主设备的访问请求,则将当前控制权切换至该主设备,处理该主设备的访问请求;当选择保持当前控制权时,继续处理所述第二主设备的访问请求。
根据本申请的第一方面的第一顺序流总线仲裁方法,提供了根据本申请第一方面的第十九顺序流总线仲裁方法,当总线仲裁器判定有总线访问请求,将当前控制权给予有访问请求的总线主设备之一,处理该总线主设备的访问请求;当总线仲裁器接收到总线主设备提供的控制权切换指示后,选择是否进行总线控制权切换。
根据本申请的第二方面,提供了根据本申请第二方面的第一顺序流总线仲裁系统,其中包括一个或多个总线主设备、总线仲裁器和一个或多个总线从设备;总线仲裁器对有访问请求的总线主设备进行仲裁,选择总线主设备之一给予总线控制权;响应于收到总线主设备的可以进行控制权切换的指示,总线仲裁器选择切换或保持具有总线控制权的主设备。
根据本申请的第二方面的第一顺序流总线仲裁系统,提供了根据本申请第二方面的第二顺序流总线仲裁系统,其中总线仲裁器根据轮转或加权轮转的策略选择总线主设备,给予被选择的总线主设备总线控制权。
根据本申请的第二方面的第一或第二顺序流总线仲裁系统之一,提供了根据本申请第二方面的第三顺序流总线仲裁系统,响应于满足指定的切换策略,总线主设备主动告知总线仲裁器可以进行总线控制权切换。
根据本申请的第二方面的第一至第三顺序流总线仲裁系统之一,提供了根据本申请第二方面的第四顺序流总线仲裁系统,总线从设备是DRAM,总线主设备包括CPU、第一主设备与第二主设备。
根据本申请的第二方面的第一至第四顺序流总线仲裁系统之一,提供了根据本申请第二方面的第五顺序流总线仲裁系统,若未收到拥有总线控制权的主设备发出的可以进行总线控制权切换的指示,总线仲裁器使该拥有总线控制权的主设备保持总线控制权,而不进行总线控制权的切换。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域技术人员来讲,还可以根据这些附图获得其他的附图。
图1是存储设备控制器的通用总线系统示意图;
图2是本申请提供的存储设备控制器的总线系统图;
图3是本申请实施例提供的总线仲裁的方法流程图;
图4是本申请实施例提供的另一种总线仲裁的方法流程图;
图5是本申请实施例提供的总线仲裁器调度各主设备的总线传输的示意图;
图6是访问请求传输时序图;
图7是本申请实施例提供的再一种总线仲裁方法流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图2展示了根据本申请实施例的存储设备控制器的总线系统。
图2展示的总线系统包括一个或多个总线主设备201、总线仲裁器202和DRAM203。
总线主设备201包括CPU2011和多个主设备(图2中以两个主设备为例来说明,展示了第一主设备2012和第二主设备2013)。DRAM 203作为耦合到总线的从设备。
总线仲裁器202识别各个主设备的总线访问请求,并确定某一时刻多个主设备的那个使用总线。总线仲裁器根据轮转或加权轮转的策略选择总线主设备,从而被选择的主设备在总线上进行数据传输。
例如,对于单独一个主设备发起访问请求的情况,总线仲裁器202允许该主设备使用总线。若多个主设备均请求访问总线,例如多个主设备希望访问DRAM203,总线仲裁器202选择多个主设备之一使用总线。
图3展示了根据本申请实施例的总线仲裁的方法流程图。
总线系统(也参见图2)中,在总线仲裁器202的协调下,各个主设备通过总线进行数据传输。根据本申请的实施例,例如第一主设备2012正占用总线,参见图3,第一主设备2012告知总线仲裁器可以进行控制权切换(310)。换句话说,第一主设备2012告知总线仲裁器,自己可以让出总线的使用权。响应于收到第一主设备2012提供的可以进行控制权切换的指示,总线仲裁器对各主设备的总线访问请求进行仲裁,以确定接下来由哪个主设备使用总线(320)。作为举例,总线仲裁器选择第一主设备2012之外的其他主设备来使用总线,或者总线仲裁器依然选择第一主设备2012使用总线。接下来,获得了总线控制权的主设备在总线上进行数据传输。
可选地,即使第一主设备2012当前未占用总线,也可告知总线仲裁器可以进行控制权切换,以指示自己愿意让出总线的使用权。
图4展示了根据本申请另一实施例的总线仲裁的方法的流程图。
总线仲裁器监控总线上是否有总线访问请求(410)。响应于总线上存在的访问请求,将当前控制权给予有访问请求的总线主设备之一,处理该主设备的访问请求(411),否则继续等待总线访问请求。总线仲裁器监视是否收到可以进行总线控制权切换的指示(412)。响应于收到是否可以进行总线控制权切换的指示(413),返回执行步骤411,否则继续处理总线访问请求。
可选地,CPU、第一主设备和/或第二主设备各自具有切换策略;主设备根据切换策略,在切换策略满足条件时,主动告知总线仲裁器可以进行控制权切换。总线仲裁器响应于接收到可以进行控制权切换指示,总线仲裁器对各主设备的总线访问请求进行仲裁。
作为一个例子,主设备的切换策略是根据指定切换粒度产生可以进行控制权切换的指示,切换粒度由配置寄存器设置。作为举例,切换粒度是持续传输数据的长度,例如为1KB,总线主设备当在总线上传输的数据长度达到切换粒度时,向总线仲裁器发送可以进行控制权切换的指示。依然作为举例,切换粒度是持续传输数据的时间,例如1ms,总线主设备当占用总线持续时间达到切换粒度时,向总线仲裁器发送可以进行控制权切换的指示。
作为又一个例子,主设备的切换策略是:响应于总线主设备要发送的数据被传输完毕,向总线仲裁器发送可以进行控制权切换的切换指示。例如,响应于前端子系统发起的向DRAM传输8KB数据的DMA操作传输完成,前端子系统作为总线主设备向总线仲裁器发送进行控制权切换的指示。依然作为举例,CPU在从DRAM中读取了4字节的地址转换表条目后,向总线仲裁器发送可以进行控制权切换的指示。依然作为举例,CPU正在同DRAM交换整页数据期间,CPU由需要访问第一主设备,则向总线仲裁器发送可以进行控制权切换的指示,以指示其希望能中止当前同DRAM的数据传输。可选地,CPU除了向总线仲裁器发送可以进行控制权切换的指示,还向总线仲裁器提供对第一主设备的访问请求。依然作为举例,由于总线主设备可以准备知道自己对总线的使用需求,因此能精确控制向总线仲裁器发送可以进行控制权切换的指示的具体时间点,例如,第一主设备需要访问第二主设备时,通过向总线仲裁器发送可以进行控制权切换的指示,主动放弃当前对存储器的访问,并期待总线仲裁器为其赋予总线使用权以访问第二主设备。
作为再一个例子,主设备的切换策略是:执行用户提供的指定程序或根据指定的配置,向总线仲裁器发送可以进行控制权切换的指示。例如,用户提供的运行在CPU 2011(也参看图2)中的程序指示在特定的时机向总线仲裁器发送进行控制权切换的指示。运行在CPU 2011中的程序为使用数据而访问例如DRAM203,并且程序知晓数据的访问模式,从而响应于一段时间不需要从DRAM 203获取数据而向总线仲裁器发送进行控制权切换的指示。作为举例,通过执行程序指令,CPU向总线仲裁器发送进行控制权切换的指示。作为又一个例子,被执行的程序指令指示CPU设置一个或多个配置寄存器来设置发送进行控制权切换的指示的时机。
作为依然再一个例子,主设备的切换策略是上述策略的组合。
根据本申请的实施例,基于上述切换策略,当前拥有控制权的总线主设备在切换策略所指示的时机满足时,总线主设备向总线仲裁器发送可以进行控制权切换的指示。
响应于接收到可以进行控制权切换的指示,总线仲裁器选择性的暂停或继续对当前访问请求的处理。总线仲裁器如果选择暂停对当前访问请求的处理,则使发出当前访问请求的主设备释放总线控制权,并按照等待时间长短顺序或优先级将总线控制权给予其他主设备。作为一个特殊的例子,在CPU与DRAM正在进行数据传输期间,总线仲裁器收到了CPU提供的可以进行控制权切换的指示,以及总线仲裁器还收到了CPU对DRAM的另一访问请求,总线仲裁器对CPU与DRAM正在进行的数据传输与该另一访问请求进行仲裁,并选择其中之一占用总线进行传输。作为又一个例子,在CPU与DRAM正在进行数据传输期间,总线仲裁器收到了CPU提供的可以进行控制权切换的指示,以及总线仲裁器还收到了第一主设备对DRAM的访问请求,总线仲裁器对CPU同DRAM正在进行的数据传输与第一主设备对DRAM的访问请求进行仲裁,并将总线控制权赋予CPU或第一主设备。
依然可选地,如果总线仲裁器认为允许提供了可以进行控制权切换的指示的主设备继续控制总线能使总线或诸如DRAM的部件得到更高的利用率,则作为对可以进行控制权切换的指示的响应而依然使该主设备拥有总线控制权。
可选地或进一步地,多个总线主设备的一个或多个都向总线仲裁器提供可以进行控制权切换的指示。总线仲裁器根据各主设备的总线访问请求(是否存在、等待时间、优先级等)与各主设备是否提供了可以进行控制权切换的指示,来确定使哪个主设备使用总线。一般地,总线仲裁器选择存在总线访问请求,且未提供可以进行控制权切换的指示的主设备来使用总线。
更进一步的,可选的,CPU、第一主设备与第二主设备预先设定切换策略;在切换策略满足条件时,总线主设备主动向总线仲裁器发送切换信号,告知总线仲裁器进行控制权切换,总线仲裁器实时监控,在接收到切换信号后,选择切换或保持当前控制权;优选的,切换信号有效是将当前信号设置为高电平。
可选的,CPU、第一主设备与第二主设备预先设定切换策略;在切换策略满足条件时,在当前访问请求的相应位置插入切换标识;由于总线主设备可以准备知道自己的传输长度,因此能精确控制插入切换标识的具体时间点,例如,例如,某一主设备需要获取其他设备控制权时,欲主动放弃当前存储器的控制权,则在待切换的访问请求的整页数据的最后一个128B的位置插入切换标识。
具体的,基于上述切换策略,当前获得控制权的总线主设备在切换策略满足条件时,在当前访问请求的相应位置插入切换标识;总线仲裁器在解析到访问请求中的切换标识时,选择性的暂停或继续访问请求的处理(是否切换控制权由总线仲裁器根据当前等待访问的主设备的情形或自身需求具体仲裁),总线仲裁器依自身需求如果选择暂停当前主设备访问请求的处理,则将释放该主设备的当前控制权,按照等待顺序或优先级将控制权给予其他主设备;除此之外,如果总线仲裁器认为允许该主设备继续控制总线能使总线或为了DRAM得到更大的利用率,则不响应该切换信号,继续处理该主设备的访问请求。
根据本申请的实施例,可选的,第一主设备与第二主设备与总线仲裁器预先约定,当主设备满足切换策略后,主动向总线仲裁器发送切换信号或插入切换标识,进一步的,切换策略的各种方式与切换指示的各种方式可单独使用或组合使用。
图5展示了根据本申请实施例的总线仲裁器调度各主设备的总线传输的示意图。
图5的下方箭头指示时间流逝方向。网格状的区域指示CPU2011(也参看图2)占用总线的时间段,斜线阴影的区域指示第一主设备2012占用总线的时间段,竖线阴影的区域指示第二主设备2013占用总线的时间段。
如图5所示,当总线仲裁器接收到来自CPU、第一主设备、第二主设备各自的访问请求时,总线仲裁器选择先将控制权给CPU(例如,总线仲裁器随机地或依据优先级选择CPU)。参见图5,在时间段510,CPU占用总线。CPU在发送了一定数量的数据包后,向总线仲裁器发送可以进行控制权切换的指示,总线仲裁器响应于接收到CPU提供的可以进行控制权切换的指示,重新对总线控制权进行仲裁,将总线控制权给予第一主设备(例如,总线仲裁器随机地或依据优先级选择第一主设备)。
在时间段520,第一主设备占用总线。第一主设备当前要发送的数据发送完成后,总线仲裁器重新对总线控制权进行仲裁,将总线控制权赋予其他有待处理访问请求的主设备(例如,CPU)。
在时间段530,CPU占用总线。CPU在发送了一定数量的数据包后,向总线仲裁器发送可以进行控制权切换的指示,总线仲裁器响应于接收到CPU提供的可以进行控制权切换的指示,重新对总线控制权进行仲裁,将总线控制权给与第一主设备。
在时间段540,第一主设备占用总线。第一主设备在发送了一定数量的数据包后,向总线仲裁器发送可以进行控制权切换的指示,总线仲裁器响应于接收到第一主设备提供的可以进行控制权切换的指示,重新对总线控制权进行仲裁,将总线控制权给与CPU。
在时间段550,CPU占用总线。CPU在发送了一定数量的数据包后,总线仲裁器重新对总线控制权进行仲裁,将总线控制权给与第二主设备。
在时间段560,第二主设备占用总线。第二主设备在发送了长度为切换粒度的数据包后,向总线仲裁器发送可以进行控制权切换的指示,总线仲裁器响应于接收到第二主设备提供的可以进行控制权切换的指示,重新对总线控制权进行仲裁,将总线控制权给与CPU。
在时间段570,CPU占用总线。CPU发送了一定数量的数据包后,向总线仲裁器发送可以进行控制权切换的指示,总线仲裁器响应于接收到CPU提供的可以进行控制权切换的指示,重新对总线控制权进行仲裁,将总线控制权给与第二主设备。
在时间段580,第二主设备占用总线。
可以理解地,图5展示的仅为总线传输的例子。根据本申请的实施例,可选地,总线仲裁器在未接收到可以进行控制权的切换的指示前,不改变对主设备的选择。除非当前占用总线的主设备长时间(例如1ms)没有总线访问请求,而其他主设备有总线请求在等待传输。
图6是根据本申请实施例的访问请求的传输时序图。
图6展示了以AXI协议为例的在总线上进行读传输的师徒。主设备通过例如AXI协议提供的ARUSER信号作为切换信号指示可以进行控制权的切换(600)。总线仲裁器响应于收到被设置的ARUSER信号,而重新对总线控制权进行仲裁。
可以理解地,在一些例子中,主设备通过其他信号(如AWUSER)或信号组合作为切换信号向总线仲裁器指示可以进行控制权的切换。在又一些例子中,主设备通过ARADDR信号指示的特殊值作为切换标识向总线仲裁器指示可以进行控制权的切换。在这些实施方式中,虽然利用了AXI协议的信号向总线仲裁器指示可以进行控制权的切换,但依然符合AXI协议。从而根据本申请实施例的主设备能够同符合AXI协议(但不同于本申请实施例)的总线仲裁器协同工作;符合AXI协议(但不同于本申请实施例)的主设备也能够同根据本申请实施例的总线仲裁器协同工作。
图7展示了根据本申请再一实施例的总线仲裁的方法的流程图。
总线仲裁器监控是否接收到CPU的总线访问请求(701)。响应于收到CPU的总线访问请求,将当前控制权切换至CPU(720),使总线服务于CPU的总线访问请求。CPU作为主设备利用总线进行数据传输。
总线仲裁器进一步识别是否收到CPU发出的可以进行控制权的切换的指示(730)。若CPU向总线仲裁器发出了可以进行控制权的切换的指示,总线仲裁器进一步判断是否有来自其他主设备的总线访问请求待处理(740)。若总线仲裁器识别有其他主设备的访问请求待处理,总线仲裁器对有待处理访问请求的主设备进行仲裁,选择有待处理访问请求的主设备之一,将总线控制权给予被选择的主设备(750)。可选地,在步骤750,即使此时CPU也有总线访问请求,总线仲裁器选择除CPU之外的总线主设备给予总线控制权。
获得总线使用权的其他主设备完成了数据传输或者完成了指定数量或时间的数据传输,返回步骤710,总线仲裁器继续判断是否接收到CPU的总线访问请求。
从而在根据图7的实施例中,总线仲裁器优先处理CPU的总线访问请求。在CPU发出可以进行控制权的切换的指示后,总线仲裁器才处理其他主设备的总线访问请求。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (9)

1.一种总线仲裁方法,其特征在于,包括:
总线主设备告知总线仲裁器可以进行总线控制权切换;
响应于总线主设备的可以进行总线控制权切换指示,总线仲裁器选择切换或保持具有总线控制权的主设备;其中,控制权切换指示用以指示总线主设备愿意让出总线的使用权;
响应于满足指定的切换策略,总线主设备主动告知总线仲裁器可以进行总线控制权切换;所述切换策略是执行用户提供的指定程序,向总线仲裁器发送可以进行控制权切换的指示;或者,所述切换策略是当总线主设备要中止当前自身的数据传输,向总线仲裁器发送可以进行控制权切换的切换指示。
2.如权利要求1所述的总线仲裁方法,其特征在于,
总线主设备通过发送切换信号或在总线访问请求中插入切换标识来向总线仲裁器发送可以进行控制权切换指示。
3.如权利要求1所述的总线仲裁方法,其特征在于,
响应于总线主设备的可以进行控制权切换的指示,总线仲裁器从有待处理总线访问请求的多个主设备中选择第一主设备,将总线控制权给予第一主设备。
4.如权利要求3所述的总线仲裁方法,其特征在于,所述第一主设备是所述总线主设备之外的主设备。
5.如权利要求1-4中任意一项所述的总线仲裁方法,其特征在于,总线仲裁器选择切换当前控制权时,暂停对当前访问请求的处理,使发出当前访问请求的主设备释放总线控制权,并按照时间长度顺序或优先级将总线控制权给予其他主设备。
6.如权利要求1所述的总线仲裁方法,其特征在于,总线主设备中具有最高优先级的主设备,作为第二主设备;
总线仲裁器接收到第二主设备的总线访问请求,将当前控制权切换至所述第二主设备。
7.如权利要求1所述的总线仲裁方法,其特征在于,
当总线仲裁器判定有总线访问请求,将当前控制权给予有访问请求的总线主设备之一,处理该总线主设备的访问请求;
当总线仲裁器接收到总线主设备提供的控制权切换指示后,选择是否进行总线控制权切换。
8.一种总线仲裁系统,其特征在于,包括:一个或多个总线主设备、总线仲裁器和一个或多个总线从设备;
总线仲裁器对有访问请求的总线主设备进行仲裁,选择总线主设备之一给予总线控制权;
响应于收到总线主设备的可以进行控制权切换的指示,总线仲裁器选择切换或保持具有总线控制权的主设备;其中,控制权切换指示用以指示总线主设备愿意让出总线的使用权;
响应于满足指定的切换策略,总线主设备主动告知总线仲裁器可以进行总线控制权切换;所述切换策略是执行用户提供的指定程序,向总线仲裁器发送可以进行控制权切换的指示;或者,所述切换策略是当总线主设备要中止当前自身的数据传输,向总线仲裁器发送可以进行控制权切换的切换指示。
9.根据权利要求8所述的总线仲裁系统,其特征在于,
若未收到拥有总线控制权的主设备发出的可以进行总线控制权切换的指示,总线仲裁器使该拥有总线控制权的主设备保持总线控制权,而不进行总线控制权的切换。
CN201810788007.2A 2018-07-18 2018-07-18 总线仲裁方法和系统 Active CN109002408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810788007.2A CN109002408B (zh) 2018-07-18 2018-07-18 总线仲裁方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810788007.2A CN109002408B (zh) 2018-07-18 2018-07-18 总线仲裁方法和系统

Publications (2)

Publication Number Publication Date
CN109002408A CN109002408A (zh) 2018-12-14
CN109002408B true CN109002408B (zh) 2022-09-09

Family

ID=64599823

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810788007.2A Active CN109002408B (zh) 2018-07-18 2018-07-18 总线仲裁方法和系统

Country Status (1)

Country Link
CN (1) CN109002408B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111625377B (zh) * 2017-04-01 2023-11-28 北京忆芯科技有限公司 代理及向队列添加条目的方法
AU2020202306A1 (en) * 2019-04-02 2020-10-22 The Raymond Corporation Systems and methods for an arbitration controller to arbitrate multiple automation requests on a material handling device
CN110109847B (zh) * 2019-04-25 2021-09-24 豪威触控与显示科技(深圳)有限公司 Apb总线多个主设备的仲裁方法、系统及存储介质
CN110502466A (zh) * 2019-07-19 2019-11-26 苏州浪潮智能科技有限公司 一种spi总线多主-多从扩展的控制方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127089A (en) * 1989-07-03 1992-06-30 Motorola, Inc. Synchronous bus lock mechanism permitting bus arbiter to change bus master during a plurality of successive locked operand transfer sequences after completion of current sequence
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
CN1567279A (zh) * 2003-06-20 2005-01-19 上海奇码数字信息有限公司 数据传送方法和数据传送系统
CN1667597A (zh) * 2004-03-12 2005-09-14 松下电器产业株式会社 资源管理装置
CN101075220A (zh) * 2007-04-29 2007-11-21 北京中星微电子有限公司 一种总线仲裁仿真装置和方法
CN101604302A (zh) * 2009-07-20 2009-12-16 威盛电子股份有限公司 高级外围总线桥及其控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007026021A (ja) * 2005-07-15 2007-02-01 Nec Electronics Corp バス制御システム及びバス制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5127089A (en) * 1989-07-03 1992-06-30 Motorola, Inc. Synchronous bus lock mechanism permitting bus arbiter to change bus master during a plurality of successive locked operand transfer sequences after completion of current sequence
US5572686A (en) * 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
CN1567279A (zh) * 2003-06-20 2005-01-19 上海奇码数字信息有限公司 数据传送方法和数据传送系统
CN1667597A (zh) * 2004-03-12 2005-09-14 松下电器产业株式会社 资源管理装置
CN101075220A (zh) * 2007-04-29 2007-11-21 北京中星微电子有限公司 一种总线仲裁仿真装置和方法
CN101604302A (zh) * 2009-07-20 2009-12-16 威盛电子股份有限公司 高级外围总线桥及其控制方法

Also Published As

Publication number Publication date
CN109002408A (zh) 2018-12-14

Similar Documents

Publication Publication Date Title
CN109002408B (zh) 总线仲裁方法和系统
CN107835989B (zh) 共享存储控制器及使用共享存储控制器的方法
KR100440657B1 (ko) 가중된대역폭할당에의한버스중재방법및장치
US7689732B2 (en) Method for improving flexibility of arbitration of direct memory access (DMA) engines requesting access to shared DMA channels
US6081851A (en) Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
JP4034969B2 (ja) 共通メモリのメモリ管理システム
US6272580B1 (en) Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system
US5528766A (en) Multiple arbitration scheme
JP2004531830A (ja) キャッシュメモリバーストサイクル中にバスアービトレーションを制御するためのシステム及び方法
US6397279B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
US8713233B2 (en) Interconnect, bus system with interconnect and bus system operating method
KR100644596B1 (ko) 버스 시스템 및 그 버스 중재방법
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US20020032820A1 (en) Immediate grant bus arbiter for bus system
US6804736B2 (en) Bus access arbitration based on workload
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
US20130311699A1 (en) Operations using direct memory access
US6442632B1 (en) System resource arbitration mechanism for a host bridge
JP2006505054A (ja) ハイブリッド計算システムにおいて調停されたメモリバスを設けるためのシステムおよび方法
US9910812B2 (en) Initiating multiple data transactions on a system bus
JP4499235B2 (ja) Pciバス互換性を有するマスターおよびアービターと仲裁方法
KR100973419B1 (ko) 버스 중재 방법 및 장치
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
KR100475438B1 (ko) 데이터 버스 시스템 및 버스간 크로스 액세스 방법

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