一种采用AXI总线访问host的方法、系统、芯片及存储介质与流程

未命名 10-21 阅读:61 评论:0
一种采用axi总线访问host的方法、系统、芯片及存储介质
技术领域
:1.本发明涉及片上系统(systemonchip,soc)与其连接的多个主机host之间的数据交互
技术领域
:,特别是涉及一种采用高级可拓展接口(advancedextensibleinterface,axi)总线访问host的方法、系统、芯片及存储介质。
背景技术
::2.在soc芯片中,设备之间的访问常采用axi总线来实现,例如在一个系统中,可能存在多个外部设备或外围设备与soc进行通信。连接于axi总线上的每个设备都可以看作是一个host;一般来说,host可以用来描述与soc连接的外部设备或外围设备,诸如处理器、存储器、传感器、显示器等。在多host结构中,soc通常情况下作为中心设备扮演调度器和协调者的角色,其负责管理和协调各个host之间的通信和数据流动。当某个host需要发送读取或写入事务时,它会将事务发送给soc,soc会根据事务的类型和目标设备,进行相应的操作和路由。soc可能会根据事务的目的地将其转发给适当的host,或者将数据从一个host传递给另一个host。3.如图1所示,示出了现有的通过axi总线访问host过程中的写操作的原理框架图。结合图1所示,一般地,写操作可以包括如下的步骤:4.将输入接口接收的写操作命令缓存在命令缓存区(如cmd_fifo)中,当cmd_fifo写满将对输入接口产生反压,拒绝命令接收;5.从cmd_fifo逐个依次读出写操作命令,将按照axi协议分别送往写数据通道(axi_w)、写地址通道(axi_aw),并通过写操作执行响应通道(axi_b)接收host的响应。6.对于每个写事务,首先根据地址写入标识位图(awid_bitmap)各位的状态对cmd_fifo读出的命令分配一个地址写入标识(addresswriteid,awid);获得awid后,将写操作命令中的对应的数据缓存在数据缓存区(data_fifo)中,data_fifo写满后会反压cmd_fifo不再读取;同时以awid为地址将输入接口携带的id存入未完成事务表(ost_table)中,记录每个awid所对应的事务的类型、完成状态以及对应的输入接口的id信息;7.当axi_b通道返回host的响应后,根据该响应中的写响应标示符(bid)读取ost_table数据,并与写响应数据(brsp)数据进行汇聚,发送给输出接口;同时释放awid_bitmap中该写事务的位的状态。8.在图1中,if_to_axi模块为于接口转换的模块,它负责将其他类型的接口转换为axi接口。例如,如果系统中存在其他类型的接口(如ahb或apb),if_to_axi模块可以将这些接口转换为axi接口,以便与使用axi总线的部件进行数据交互。9.如图2所示,示出了现有的通过axi总线访问host过程中的读操作的原理框架图。结合图1所示,一般地,读操作可以包括如下的步骤:10.将输入接口接收的读操作命令缓存在cmd_fifo中,当cmd_fifo写满将对输入接口产生反压,拒绝命令接收;11.从cmd_fifo读出的命令将按照axi协议分别送往axi_ar通道,并通过axi_r通道接收host的响应数据;其中,axi_ar通道用于发送读操作的地址和控制信息。12.根据地址读取标识位图(arid_bitmap)中各位的状态,对cmd_fifo读出的命令分配地址读取标识(addressreadid,arid),并以arid为地址将输入接口携带的id存入未完成事务表(ost_table)中;13.当axi_r通道获得host返回数据时,将数据根据以读操作响应的标识(rid)写入数据缓存器(data_table)中,当达到预定的长度时,以rid读取ost_table和data_table中的数据进行汇聚,并发送给输出接口;同时释放arid_bitmap中该读事务的位的状态。14.现有的这种通过axi总线访问host系统存在如下的不足之处:15.当采用axi所访问的多host中出现任意一个host挂死的情形时,其将直接反压到输入接口,会使该输入接口无法使用;即使此时其他的host功能正常,也无法实现axi访问,降低了axi访问的效率以及安全性。技术实现要素:16.本发明所要解决的技术问题在于,提供一种采用axi总线访问host的方法、系统、芯片及存储介质,可以提高访问效率以及安全性。17.为解决上述技术问题,作为本发明的一方面,提供一种采用axi总线访问host的方法,其包括如下步骤:18.通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;19.采用轮转调度的方式调度所述写操作命令;20.将所述写操作命令中的数据缓存在一数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;21.将所述写操作命令的写地址信息及控制参数发送给对应的host,以进行写操作执行处理;22.接收host返回的写操作执行响应,并发送给输出接口。23.其中,将所述写操作命令的写地址信息及控制参数发送给对应的host,以进行写操作执行处理,进一步包括:24.在判断到axi_aw通道中当前写命令对应的host的独享分发次数未用完时,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;25.在判断到当前写命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理。26.其中,进一步包括:27.在判断到一个命令列表写满后,对所述命令列表进行反压处理;28.在判断到一个数据列表写满后,对命令虚拟输出队列中与之对应的命令列表进行反压处理;29.在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;30.在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。31.相应地,本发明的另一方面提供一种采用axi总线访问host的方法,其包括如下步骤:32.通过输入接口接收针对一个host的读操作命令,将所述读操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;33.采用轮转调度的方式调度所述读操作命令;34.将所述读操作命令的读地址信息及控制参数发送给对应的host,以进行读操作执行处理;35.将host返回的数据存储在数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;36.对数据虚拟输出队列中的数据进行轮转调度,并将调度成功的数据发送往输出接口。37.其中,将所述读操作命令的读地址信息及控制参数发送给对应的host,以进行读操作执行处理,进一步包括:38.在判断到axi_ar通道中当前读命令对应的host的独享分发次数未用完时,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;39.在判断到该读命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理。40.其中,进一步包括:41.在判断到一个命令列表写满后,对所述命令列表进行反压处理;42.在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;43.在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。44.相应地,本发明的再一方面,还提供一种采用axi总线访问host的系统,其包括:45.写命令缓存单元,用于通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;46.写命令调度处理单元,用于采用轮转调度的方式调度所述写操作命令;47.写数据缓存单元,用于将所述写操作命令中的数据缓存在一数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;48.写命令分发处理单元,用于将所述写操作命令的写地址信息及控制参数通过发送给对应的host,以进行写操作执行处理;49.写响应处理单元,用于接收host返回的写操作执行响应,并发送给输出接口。50.其中,所述写命令分发处理单元进一步包括:51.写命令独享分发单元,用于在判断到axi_aw通道中当前写命令对应的host的独享分发次数未用完时,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;52.写命令共享分发单元,用于在判断到当前写命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理。53.其中,进一步包括:54.第一反压处理单元,用于在判断到一个数据列表写满后,对命令虚拟输出队列中与之对应的命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;以及在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。55.相应地,本发明的再一方面,还提供一种采用axi总线访问host的系统,其包括:56.读命令缓存单元,用于通过输入接口接收针对一个host的读操作命令,将所述读操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;57.读命令调度处理单元,用于采用轮转调度的方式调度所述读操作命令;58.读命令分发处理单元,用于将所述读操作命令的读地址信息及控制参数发送给对应的host,以进行读操作执行处理;59.读数据缓存单元,用于接收host返回的数据,并存储在一数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;60.读响应处理单元,用于对数据虚拟输出队列中的数据进行轮转调度,并将调度成功的数据发送往输出接口。61.其中,所述读命令分发处理单元进一步包括:62.读命令独享分发单元,用于在判断到axi_ar通道中当前读命令对应的host的独享分发次数未用完时,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;63.读命令共享分发单元,用于在判断到该读命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理。64.其中,进一步包括:65.第二反压处理单元,用于在判断到一个命令列表写满后,对所述命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;以及在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。66.相应地,本发明的再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的方法的步骤。67.相应地,本发明的又一方面,还提供一种芯片,其上部署有如前述的采用axi总线访问host的系统。68.实施本发明,具有如下的有益效果:69.本发明提供一种采用axi总线访问host的方法、系统、存储介质及芯片。通过在命令虚拟输出队列、数据虚拟输出队列中设置多个与host对应的列表;在通过输入接口接收针对一个host的访问操作命令时,将其缓存到命令虚拟输出队列对应的列表中,同样将需要写入host的数据或从host读出的数据缓存于数据虚拟输出队列对应的数据列表中;同时采用轮转调度的方式调度所述访问操作命令,以及采用独享分发结合共享分发的方式,将所述访问操作命令相关的地址信息及控制参数发送给对应的host,以进行读写操作执行处理;从而在通过axi总线访问多host时,即使其中的某个host挂死,其他的host也可以正常访问,而避免出现反压整个访问通路的情形。实施本发明,提高了axi访问的效率以及安全性。附图说明70.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。71.图1为现有技术中采用axi总线访问host过程中写操作的原理框架示意图;72.图2为现有技术中采用axi总线访问host过程中读操作的原理框架示意图;73.图3为本发明提供的一种采用axi总线访问host的方法的一个实施例的主流程示意图;74.图4为图3中所涉及的写操作的原理框架示意图;75.图5为本发明提供的一种采用axi总线访问host的方法的另一个实施例的主流程示意图;76.图6为图5中所涉及的写操作的原理框架示意图;77.图7为本发明提供的一种采用axi总线访问host的系统的一个实施例的结构示意图;78.图8为本发明提供的一种采用axi总线访问host的系统的一个实施例的结构示意图。具体实施方式79.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。80.如图3所示,示出了本发明提供的一种采用axi总线访问host的方法的一个实施例的主流程示意图,一并结合图4所示。在本实施例中,所述方法至少包括如下步骤:81.步骤s10,通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列(cmd_voq)中与所述host对应的命令列表(list)中;其中,每一host对应一命令列表,如图4中所示,即host1对应的写操作命令缓存在list1,hostn对应的写操作命令缓存在listn中;当某个命令列表(list)写满则可以控制对此list的输入端产生反压(backpressure),利用反压信号(即使能信号)控制所述对应的list处于命令写入禁止状态,拒绝命令接收;若所有的list均已写满,则对整个输入端口产生反压,禁止命令写入;82.步骤s11,采用轮转(round-robin,rr)调度的方式调度所述写操作命令,并利用地址写入标识位图(awid_bitmap)为调度成功后的所述写操作命令分配一地址写入标识(awid);并将所述写操作命令对应的写事务状态信息存入未完成事务表(ost_table)中;83.在本实施例中,采用轮转调度方式对命令进行选择和分配时,使多个命令队列中的命令会按照一个轮转的方式被依次选中和分配资源;从而可以让每个命令队列都可以按照顺序处理其待处理的命令,避免某个队列始终被优先处理,以实现命令的公平分配;84.而awid_bitmap在axi通信中扮演着重要的角色,它用于跟踪和管理axi协议中的事务,并确定哪些awid是有效的或已分配的。其中,awid是用于唯一标识axi事务的标识符。85.例如,假设awid的范围为0-7,那么awid_bitmap将包含8个位。每个位都可以表示一个awid的分配状态,例如,在一个例子中,awid_bitmap的值为:86.awid_bitmap:1110010187.可以理解的是,在这个例子中,awid_bitmap是一个8位的位图,其中第0、1、2、5、7、8位被设置为1,表示这些位对应的awid已经被分配或处于有效状态,而其他的位则为0,表示这些位对应的awid尚未被分配;当对应位的awid已分配后,则需要将awid_bitmap中对应位的值修改为1,当该awid被释放或删除后,则将awid_bitmap中对应位的值修改为0。88.awid的表示方式可以是一个二进制数、十进制数或十六进制数,具体取决于实际实现和设计的要求。一般来说,awid的位数通常是固定的,例如是3位、4位、8位或16位等。在一个例子中,假设awid是一个3位的二进制数,在此示例中,共有8种不同的awid可用。89.awid表示举例:90.awid=00091.awid=01092.awid=111。93.而未完成事务表(ost_table)是一个表格或数据结构,用于跟踪和管理当前未完成的事务。一般而言,它可以是一个包含多个条目的数据结构。其中,每个条目对应一个待处理的事务,并存储与该事务相关的信息,例如存储该事务的awid、事务类型、事务操作的地址、事务的状态以及输入端口的id信息等。94.通过ost_table结构,可以根据awid(或与awid关联的其他标识)快速定位到特定的事务,并查找或更新与该事务相关的信息。这样,系统可以跟踪和管理未完成的事务,并进行必要的操作和处理。95.步骤s12,将所述写操作命令中的数据缓存在与axi_w通道连接的数据虚拟输出队列(data_voq)中与所述host对应的数据列表中,其中,每一host对应一数据列表;96.在本实施例中,进一步包括:97.在判断到一个数据列表写满后,对命令虚拟输出队列中与之对应的命令列表进行反压处理;98.步骤s13,采用独享分发结合共享分发的方式,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;99.在一个具体的例子中,所述步骤s13进一步包括:100.在判断到所述axi_aw通道中当前写命令对应的host的独享分发次数未用完时,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;101.在判断到当前写命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理,该控制参数包括:awlen,awsize等。102.可以理解的是,在本实施例中,独享分发(即图4中的hostost分发)指的是将axi_aw通道中的未完成的事务分发给不同的host,每个host独占一部分的未完成的事务。在一个系统中,当多个host同时使用axi_aw通道发送写事务时,每个host可以被分配一个特定数量的未完成的事务。这些未完成的事务是用来跟踪每个事务的状态和进程的计数器。独享分发意味着每个host独占一部分的未完成的事务,这意味着当某个host独享的未完成的事务用尽时,该host将无法继续发送新的事务。103.当某个host的独享未完成的事务耗尽时,通过轮转仲裁机制来申请共享未完成的事务(即图4中的共享ost分发)。在轮转调度中,各个host轮流申请共享的未完成的事务,确保每个host有机会获取额外的未完成的事务来发送更多的事务。其中,轮转调度常见的实现方式是使用一个映射表或者一个数组来跟踪每个host的未完成的事务数量和状态。具体地,可以使用相关的算法和逻辑来实现未完成的事务的分发和管理。例如,当某个host的独享未完成的事务耗尽时,轮转调度可以在不同host之间进行轮转,按照一定的顺序或优先级分配共享的未完成的事务。具体可以通过计数器、指针或其他控制逻辑来实现。104.其中,进一步包括:105.在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;106.在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能,具体地,可以通过反压rr的使能来实现。107.步骤s14,接收axi_b通道返回的写操作执行响应,并同时读取未完成事务表中对应写事务的数据,进行数据汇聚后发送给输出接口,同时释放地址写入标识位图中相应的标志位。108.具体地,当axi_b返回时,以写响应标识(bid)来检索ost_table数据中该写事务的数据(类型、状态及对应的输入端口id等),并与写操作执行响应数据(brsp)进行汇聚,发送给输出接口;并释放awid_bitmap中awid对应的标识位的状态(将其值从1修改为0)。可以理解的是,所述写响应标识预先与awid或输入端口id进行关联。109.如图5所示,示出了本发明提供的一种采用axi总线访问host的方法的另一个实施例的主流程示意图。一并结合图6所示,在本实施例中,所述方法至少包括如下步骤:110.步骤s20,通过输入接口接收针对一个host的读操作命令,将所述读操作命令缓存在命令虚拟输出队列(cmd_voq)中与所述host对应的命令列表中;其中,每一host对应一命令列表;如图4中所示,即与host1对应的读操作命令缓存在list1,与hostn对应的读操作命令缓存在listn中;在判断到一个命令列表(list后,对所述命令列表进行反压处理;利用反压信号(即使能信号)控制所述对应的list处于命令写入禁止状态,拒绝命令接收;若所有的list均已写满,则对整个输入端口产生反压,禁止命令写入;111.步骤s21,采用轮转调度的方式调度所述读操作命令,并利用地址读取标识位图(arid_bitmap)为调度成功后的所述读操作命令分配一地址读取标识;并将所述读操作命令对应的读事务状态信息存入未完成事务表(ost_table)中;地址读取标识位图(arid_bitmap)与前述的地址写入标识位图功能类似,可以一并参考前述的描述;112.步骤s22,采用独享分发结合共享分发的方式,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;113.在一个具体的例子中,所述步骤s22进一步包括:114.在判断到所述axi_ar通道中当前读命令对应的host的共享分发次数未用完时,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;115.在判断到该读命令对应的host的共享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理,其中,该控制参数包括arlen、arsize、arburst、arlock等。116.在此过程中,进一步包括:在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;117.在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。118.步骤s23,接收axi_r通道上host返回的数据,并存储在与axi_r通道连接的数据虚拟输出队列(data_voq)中与所述host对应的数据列表中,其中,每一host对应一数据列表;119.步骤s24,对数据虚拟输出队列(data_voq)中的数据进行轮转调度,并将调度成功的数据与未完成事务表中对应读事务的数据进行数据汇聚,发送往输出接口,同时释放地址读取标识位图中相应的标志位。120.具体地,当data_voq中数据出队时,首先经过rr调度,在调度成功后,以读响应标识(rid)读取ost_table数据该读事务的数据(类型、状态及对应的输入端口id等),并与读操作执行响应数据(brsp)进行汇聚,发送给输出接口;并释放arid_map中arid对应的标识位的状态(将其值从1修改为0)。可以理解的是,所述读响应标识预先与arid或输入端口id进行关联。121.如图7所示,示出了本发明提供的一种采用axi总线访问host的系统1的结构示意图;在本实施例中,所述系统1至少包括:122.写命令缓存单元10,用于通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列(cmd_voq)中与所述host对应的命令列表中;其中,每一host对应一命令列表;123.写命令调度处理单元11,用于采用轮转调度的方式调度所述写操作命令,并利用地址写入标识位图(awid_bitmap)为调度成功后的所述写操作命令分配一地址写入标识;并将所述写操作命令对应的写事务状态信息存入未完成事务表(ost_table)中;124.写数据缓存单元12,用于将所述写操作命令中的数据缓存在与axi_w通道连接的数据虚拟输出队列(data_voq)中与所述host对应的数据列表中,其中,每一host对应一数据列表;125.写命令分发处理单元13,用于采用独享分发结合共享分发的方式,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;126.写响应处理单元14,用于接收axi_b通道返回的写操作执行响应,并同时读取未完成事务表中对应写事务的数据,进行数据汇聚后发送给输出接口,同时释放地址写入标识位图中相应的标志位。127.更具体地,在本发明的实施例中,所述写命令分发处理单元13进一步包括:128.写命令独享分发单元,用于在判断到所述axi_aw通道中当前写命令对应的host的独享分发次数未用完时,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;129.写命令共享分发单元,用于在判断到当前写命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理。130.其中,进一步包括:131.第一反压处理单元,用于在判断到一个数据列表写满后,对命令虚拟输出队列中与之对应的命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;以及在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。132.更多细节,可以参考并结合前述对图3、图4的描述,在此不进行赘述。133.如图8所示,示出了本发明提供的一种采用axi总线访问host的系统2的结构示意图;在本实施例中,所述系统2至少包括:134.读命令缓存单元20,用于通过输入接口接收针对一个host的读操作命令,将所述读操作命令缓存在命令虚拟输出队列(cmd_voq)中与所述host对应的命令列表中;其中,每一host对应一命令列表;135.读命令调度处理单元21,用于采用轮转调度的方式调度所述读操作命令,并利用地址读取标识位图(arid_bitmap)为调度成功后的所述读操作命令分配一地址读取标识;并将所述读操作命令对应的读事务状态信息存入未完成事务表(ost_table)中;136.读命令分发处理单元22,用于采用独享分发结合共享分发的方式,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;137.读数据缓存单元23,用于接收axi_r通道上host返回的数据,并存储在与axi_r通道连接的数据虚拟输出队列(data_voq)中与所述host对应的数据列表中,其中,每一host对应一数据列表;138.读响应处理单元24,用于对数据虚拟输出队列(data_voq)中的数据进行轮转调度,并将调度成功的数据与未完成事务表中对应读事务的数据进行数据汇聚,发送往输出接口,同时释放地址读取标识位图中相应的标志位。139.更具体地,在本实施例中,所述读命令分发处理单元22进一步包括:140.读命令独享分发单元,用于在判断到所述axi_ar通道中当前读命令对应的host的共享分发次数未用完时,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;141.读命令共享分发单元,用于在判断到该读命令对应的host的共享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理。142.其中,进一步包括:143.第二反压处理单元,用于在判断到一个命令列表写满后,对所述命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;以及在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。144.更多细节,可以参考并结合前述对图5、图6的描述,在此不进行赘述。145.相应地,本发明的再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述图3至图6所描述的方法的步骤。更多细节,可以参考并结合前述对图3至图6的描述,在此不进行赘述。146.相应地,本发明的又一方面,还提供一种芯片,其其上部署有如前述图7或/及图8所描述的采用axi总线访问host的系统。更多细节,可以参考并结合前述对图7至图8的描述,在此不进行赘述。147.实施本发明,具有如下的有益效果:148.本发明提供一种采用axi总线访问host的方法、系统、存储介质及芯片。通过在命令虚拟输出队列、数据虚拟输出队列中设置多个与host对应的列表;在通过输入接口接收针对一个host的访问操作命令时,将其缓存到命令虚拟输出队列对应的列表中,同样将需要写入host的数据或从host读出的数据缓存于数据虚拟输出队列对应的数据列表中;同时采用轮转调度的方式调度所述访问操作命令,以及采用独享分发结合共享分发的方式,将所述访问操作命令相关的地址信息及控制参数发送给对应的host,以进行读写操作执行处理;从而在通过axi总线访问多host时,即使其中的某个host挂死,其他的host也可以正常访问,而避免出现反压整个访问通路的情形。实施本发明,提高了axi访问的效率以及安全性。此外,通过采用命令虚拟输出队列和数据虚拟输出队列使得可以并行的处理指令,同时也节约了资源。149.本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。150.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。151.以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页12当前第1页12
技术特征:
1.一种采用axi总线访问host的方法,其特征在于,包括如下步骤:通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;采用轮转调度的方式调度所述写操作命令;将所述写操作命令中的数据缓存在一数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;将所述写操作命令的写地址信息及控制参数发送给对应的host,以进行写操作执行处理;接收host返回的写操作执行响应,并发送给输出接口。2.如权利要求1所述的方法,其特征在于,将所述写操作命令的写地址信息及控制参数发送给对应的host,以进行写操作执行处理,进一步包括:在判断到axi_aw通道中当前写命令对应的host的独享分发次数未用完时,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;在判断到当前写命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理。3.如权利要求2所述的方法,其特征在于,进一步包括:在判断到一个命令列表写满后,对所述命令列表进行反压处理;在判断到一个数据列表写满后,对命令虚拟输出队列中与之对应的命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。4.一种采用axi总线访问host的方法,其特征在于,包括如下步骤:通过输入接口接收针对一个host的读操作命令,将所述读操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;采用轮转调度的方式调度所述读操作命令;将所述读操作命令的读地址信息及控制参数发送给对应的host,以进行读操作执行处理;将host返回的数据存储在数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;对数据虚拟输出队列中的数据进行轮转调度,并将调度成功的数据发送往输出接口。5.如权利要求4所述的方法,其特征在于,将所述读操作命令的读地址信息及控制参数发送给对应的host,以进行读操作执行处理,进一步包括:在判断到axi_ar通道中当前读命令对应的host的独享分发次数未用完时,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;
在判断到该读命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理。6.如权利要求5所述的方法,其特征在于,进一步包括:在判断到一个命令列表写满后,对所述命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。7.一种采用axi总线访问host的系统,其特征在于,包括:写命令缓存单元,用于通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;写命令调度处理单元,用于采用轮转调度的方式调度所述写操作命令;写数据缓存单元,用于将所述写操作命令中的数据缓存在一数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;写命令分发处理单元,用于将所述写操作命令的写地址信息及控制参数通过发送给对应的host,以进行写操作执行处理;写响应处理单元,用于接收host返回的写操作执行响应,并发送给输出接口。8.如权利要求7所述的系统,其特征在于,所述写命令分发处理单元进一步包括:写命令独享分发单元,用于在判断到axi_aw通道中当前写命令对应的host的独享分发次数未用完时,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理;写命令共享分发单元,用于在判断到当前写命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述写操作命令的写地址信息及控制参数通过axi_aw通道发送给对应的host,以进行写操作执行处理。9.如权利要求8所述的系统,其特征在于,进一步包括:第一反压处理单元,用于在判断到一个数据列表写满后,对命令虚拟输出队列中与之对应的命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;以及在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。10.一种采用axi总线访问host的系统,其特征在于,包括:读命令缓存单元,用于通过输入接口接收针对一个host的读操作命令,将所述读操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;其中,每一host对应一命令列表;读命令调度处理单元,用于采用轮转调度的方式调度所述读操作命令;读命令分发处理单元,用于将所述读操作命令的读地址信息及控制参数发送给对应的host,以进行读操作执行处理;
读数据缓存单元,用于接收host返回的数据,并存储在一数据虚拟输出队列中与所述host对应的数据列表中,其中,每一host对应一数据列表;读响应处理单元,用于对数据虚拟输出队列中的数据进行轮转调度,并将调度成功的数据发送往输出接口。11.如权利要求10所述的系统,其特征在于,所述读命令分发处理单元进一步包括:读命令独享分发单元,用于在判断到axi_ar通道中当前读命令对应的host的独享分发次数未用完时,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理;读命令共享分发单元,用于在判断到该读命令对应的host的独享分发次数已用完,则采用轮转调度的方式申请共享分发次数,在申请成功后,将所述读操作命令的读地址信息及控制参数通过axi_ar通道发送给对应的host,以进行读操作执行处理。12.如权利要求11所述的系统,其特征在于,进一步包括:第二反压处理单元,用于在判断到一个命令列表写满后,对所述命令列表进行反压处理;在判断到一个host对应的独享分发以及共享分发次数均用完后,则对命令虚拟输出列表中与所述host对应的命令列表进行反压处理;以及在判断到所有的host的独享分发和共享分发次数均用完后,则控制暂停命令虚拟输出队列输出的轮转调度功能。13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项或4至6任一项所述的方法的步骤。14.一种芯片,其特征在于,其上部署有如权利要求7至9任一项或10至12任一项所述的采用axi总线访问host的系统。

技术总结
本发明公开了一种采用AXI总线访问host的方法,其包括步骤:通过输入接口接收针对一个host的写操作命令,将所述写操作命令缓存在命令虚拟输出队列中与所述host对应的命令列表中;采用轮转调度的方式调度所述写操作命令;将所述写操作命令中的数据缓存在一数据虚拟输出队列中与所述host对应的数据列表中;采用独享分发结合共享分发的方式,将所述写操作命令的写地址信息及控制参数发送给对应的host,以进行写操作执行处理;接收host返回的写操作执行响应,并发送给输出接口。本发明还公开了相应的系统、芯片及存储介质。实施本发明,可以提高AXI访问的效率以及安全性。提高AXI访问的效率以及安全性。提高AXI访问的效率以及安全性。


技术研发人员:萧启阳 摆海龙
受保护的技术使用者:深圳云豹智能有限公司
技术研发日:2023.07.21
技术公布日:2023/10/19
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐