动态切换多路输入/输出接口系统与方法与流程

文档序号:12008855阅读:195来源:国知局
动态切换多路输入/输出接口系统与方法与流程
本发明涉及多路输入/输出接口系统与方法,特别地,涉及能够对多路输入/输出进行动态切换的动态切换多路输入/输出接口系统与方法。

背景技术:
随着信息技术的不断发展,作为信息载体的数据流的数据结构日益复杂,数据的处理和存储规模也日益提高,因此对系统的输入/输出接口的速度、切换能力、并行处理能力等提出了很高的要求。传统的单路输入/单路输出接口只能接收一路输入数据,并按照数据原有的顺序输出一路数据,对于目前很多复杂的应用场合来说,这种接口的性能已经远远不能满足应用的需要。因此,提出了能够并行接收多路输入或提供多路输出的多路/输入输出接口。现有的多路输入/输出接口普遍采用静态切换技术,即按照既定的顺序静态地切换多个输入路径或多个输出路径上的数据,从而实现分时复用的效果。然而对于目前很多应用场景,这种静态切换的多路输入/输出接口存在很多缺陷。例如,作为当前视频编解码领域的前沿技术,视频数据分割的应用日益广泛。视频数据分割技术的原理是以宏块作为基本处理单元,对每个宏块的语法元素按照其重要性进行分类打包(分割),并采用不同的容错和信道保护等级,以提高视频码流的容错性,改善波动网络环境下的视频质量。经过视频数据分割技术处理之后的视频数据流的结构特点是,将各个宏块中最重要的语法元素对应的数据放置于数据流前端,然后按重要性下降的顺序依次放置各个宏块的其他语法元素对应的数据,也就是说,该数据流已经不再按照各个宏块在原图像中的几何位置来自然地排列数据。在对这样的视频数据进行解码时,无法再按找宏块的几何位置对每个宏块进行解码并依次显示每个宏块的图像,而是需要对每一类语法元素的数据进行解码,经过对各类数据的多遍(multi-path)处理后,再合成所有的解码结果才能够得到整张图像,这就对视频解码系统和运算能力和存储能力提出了很高的要求,因此需要巨大的硬件资源来完成数据的运算和保存。并且在处理不同的数据分割时,系统需要由固件或软件开辟系统资源以保存和切换数据码流的上下文信息,而如果利用传统的静态多路输入/输出接口来接收或发送经过视频数据分割的数据流,则无法改变数据流的原有结构,因此无法解决上述问题。再例如对于片上系统(SOC)来说,其各个模块可能同时需要各种外部指令和数据,如果采用传统的静态切换多路输入/输出接口,则无法根据各个模块的当前需要,动态地,灵活地从多路输入数据中为每个模块切换其当前所需的数据或命令。如果为每个模块单独分配输入/输出接口,则会造成巨大的硬件开销。因此,如何提供一种能够适应于复杂的数据应用动态切换的多路输出/输出接口,成为目前亟待解决的问题。

技术实现要素:
本发明提出了一种动态切换多路输入/输出接口方法和系统,该方法和系统能够根据切换指令动态地对多路输入数据进行切换,或动态地将输入数据切换至多路输出,使该接口系统与其外部的数据处理系统的需求相适应,以高速度、高并行度、动态灵活地按指令需求提供数据。根据本发明的一方面,提出了一种动态切换多路输入接口系统,该系统包括:多个输入路径,每个输入路径包括:输入缓冲器,该输入缓冲器接收并缓冲输入数据,并将与该输入缓冲器相对应的状态数据保存至状态寄存器;状态寄存器,保存所述状态数据;切换控制器,接收当前切换指令,并将所述多个输入路径中的由该当前切换指令指定的输入缓冲器的输出切换至切换控制器的数据输出端,并将所述多个输入路径中的由该当前切换指令指定的状态寄存器的输出切换至切换控制器的状态输出端。优选地,所述多个输入路径中的每一个具有与之唯一对应的路径ID,用于识别该输入路径以及该输入路径中的输入缓冲器和状态寄存器;以及所述当前切换指令包含当前需要切换的输入路径的当前路径ID,通过该当前路径ID来指定被切换的输入缓冲器和状态寄存器。优选地,所述系统还包括路径ID存储器,该路径ID存储器用于保存前一次切换指令中的前次路径ID,以及当前切换指令中的当前路径ID。优选地,所述切换控制器将该当前路径ID对应的输入缓冲器的输出切换至数据输出端,再将所述状态输出端的状态数据保存至前次路径ID对应的状态寄存器中,然后将当前路径ID对应的状态寄存器的输出切换至所述状态输出端。根据本发明的另一方面,提出了一种动态切换多路输入接口方法,该方法包括:1)在多个输入路径的每一个中,通过输入缓冲器接收并缓冲输入数据;2)将与该输入缓冲器相对应的状态数据保存至相应的状态寄存器;3)接收当前切换指令;4)将所述多个输入路径中的由该当前切换指令指定的输入缓冲器的输出切换至数据输出端;以及5)将所述多个输入路径中的由该当前切换指令指定的状态寄存器的输出切换至状态输出端。优选地,所述多个输入路径中的每一个具有与之唯一对应的路径ID,用于识别该输入路径以及该输入路径中的输入缓冲器和状态寄存器;以及在步骤3)中;所述当前切换指令包含当前需要切换的输入路径的当前路径ID,在步骤4)中,通过该当前路径ID来指定被切换的输入缓冲器;以及在步骤5)中,通过该当前路径ID来指定被切换的状态寄存器。优选地,在步骤3)中,保存当前切换指令中的当前路径ID;以及在步骤4)和步骤5)之间,还包括步骤6),在步骤6)中,根据接收前次切换指令时保存的前次路径ID,将所述状态输出端上的状态数据保存至于该前次路径ID相对应的状态寄存器中。根据本发明的另一方面,提出了一种动态切换多路输出接口系统,该系统包括:-多个输出路径,每个输出路径包括:输出缓冲器,缓冲并输出来自切换控制器的输入数据,并将与该输出缓冲器相对应的状态数据保存至状态寄存器;状态寄存器,保存所述状态数据;-切换控制器,接收当前切换指令,将该切换控制器的数据输入端接收的输入数据切换至多个输出路径中的由该当前切换指令指定的输出缓冲器,并将所述多个输出路径中的由该当前切换指令指定的状态寄存器的输出切换至切换控制器的状态输出端。优选地,所述多个输出路径中的每一个具有与之唯一对应的路径ID,用于识别该输出路径以及该输出路径中的输出缓冲器和状态寄存器;以及所述当前切换指令包含当前需要切换的输出路径的当前路径ID,通过该当前路径ID来指定被切换的输出缓冲器和状态寄存器。优选地,所述系统还包括路径ID存储器,该路径ID存储器用于保存前一次切换指令中的前次路径ID,以及当前切换指令中的当前路径ID。优选地,所述切换控制器将所述输入数据切换至该当前路径ID对应的输出缓冲器,再将所述状态输出端的状态数据保存至前次路径ID对应的状态寄存器中,然后将当前路径ID对应的状态寄存器的输出切换至所述状态输出端。根据本发明的另一方面,提出了一种动态切换多路输出接口方法,该方法包括:1)在数据输入端接收输入数据;2)接收当前切换指令;3)将所述输入数据切换至多个输出路径中的由该当前切换指令指定的输出缓冲器;4)将与该输出缓冲器相对应的状态数据保存至相应的状态寄存器;5)将所述多个输出路径中的由该当前切换指令指定的状态寄存器的输出切换至状态输出端。优选地,所述多个输出路径中的每一个具有与之唯一对应的路径ID,用于识别该输出路径以及该输出路径中的输出缓冲器和状态寄存器;在步骤2)中,所述当前切换指令包含当前需要切换的输出路径的当前路径ID,在步骤3)中,通过该当前路径ID来指定被切换的输出缓冲器以及在步骤5)中,通过该当前路径ID来指定被切换的状态寄存器。优选地,在步骤2)中,保存当前切换指令中的当前路径ID;以及在步骤4)与步骤5)之间,还包括步骤6),在步骤6)中,根据接收前次切换指令时保存的前次路径ID,将所述状态输出端上的状态数据保存至与该前次路径ID相对应的状态寄存器中。附图说明图1是根据本发明的一个优选实施例的动态切换多路输入接口系统的结构框图;图2是根据本发明的另一个优选实施例的动态切换多路输入接口系统的结构框图;图3是根据本发明的一个优选实施例的动态切换多路输入接口方法的流程图;图4是根据本发明的另一个优选实施例的动态切换多路输入接口方法的流程图;图5是根据本发明的一个优选实施例的动态切换多路输出接口系统的结构框图;图6是根据本发明的另一个优选实施例的动态切换多路输出接口系统的结构框图;图7是根据本发明的一个优选实施例的动态切换多路输出接口方法的流程图;图8是根据本发明的另一个优选实施例的动态切换多路输出接口方法的流程图;图9是的根据本发明的动态切换多路输入接口系统的一个示例性的应用的示意图。具体实施方式图1是根据本发明的一个优选实施例的动态切换多路输入接口系统的结构框图,该系统主要包括:-多个输入路径(100a,100b,100c),每个输入路径包括:输入缓冲器(101a,101b,101c),该输入缓冲器(101a,101b,101c)接收并缓冲输入数据,并将与该输入缓冲器(101a,101b,101c)相对应的状态数据保存至状态寄存器(102a,102b,102c);状态寄存器(102a,102b,102c),保存所述状态数据;-切换控制器103,接收当前切换指令,并将所述多个输入路径(100a,100b,100c)中的由该当前切换指令指定的输入缓冲器(101a,101b,101c)的输出切换至切换控制器103的数据输出端104,并将所述多个输入路径(100a,100b,100c)中的由该当前切换指令指定的状态寄存器(102a,102b,102c)的输出切换至切换控制器103的状态输出端105。优选地,所述多个输入路径的多个输入缓冲器(101a,101b,101c)同步地接收多路输入数据,由此实现多路数据的并行接收。在图1所示的实施例中描述了三个输入路径(100a,100b,100c),事实上,输入路径的数量不限于三个,根据需要可以是一个以上的任意数量。优选地,每个输入路径(100a,100b,100c)中的状态寄存器(102a,102b,102c)用于保存与该输入路径中的输入缓冲器(101a,101b,101c)的状态相对应的状态数据,或称为“状态信息”或“上下文信息”,该状态数据可包括,例如:缓冲器指针,计数值等。根据不同的应用场合,这些状态数据可用于指示缓冲器的读写地址,读写状态,或缓冲器中数据的状态等。优选地,每个输入路径具有与之唯一对应的路径ID,用于识别该路径以及该路径中的输入缓冲器和状态寄存器,即每个路径ID均与特定的输入路径相对应,也与该输入路径中的状态寄存器和输入缓冲器相对应。切换控制器103所接收的当前切换指令可包含当前需要切换的输入路径的当前路径ID,并通过该当前路径ID来指定要切换的输入路径中的输入缓冲器和状态寄存器,并将该输入缓冲器的输出切换至数据输出端104,将该状态寄存器的输出切换至状态输出端105。然而,当前切换指令的指定方式不限于此,也可根据应用的需要同时指定切换不同输入路径中的输入缓冲器和状态寄存器。根据不同的应用场合,所述状态数据可能响应于外部逻辑的命令而变化,或随着输入缓冲器的状态而发生变化,或随着数据经过不同的处理而发生更新,也就是说,在将某状态寄存器中的状态数据切换至状态输出端105后,在下一次切换发生之前,该状态输出端105上的状态数据可能发生了变化,在这种情况下,可在接收下一个切换指令之前,将状态输出端105上的当前的状态数据保存回到相应的状态寄存器中,从而保证状态寄存器中保存有最新的状态数据,图2描述了对应于上述情况的本发明的动态切换多路输入接口系统的另一优选实施例的结构框图。在图2所述的实施例中,该系统在图1所述的系统的基础上还包括路径ID存储器106,该路径ID存储器106用于保存前一次切换指令中的前次路径ID,以及当前切换指令中的当前路径ID。在该实施例中,切换控制器103将该当前路径ID对应的输入缓冲器的输出切换至数据输出端104,接下来,切换控制器103首先将状态输出端105的状态数据保存至前次路径ID对应的状态寄存器中,然后将当前路径ID对应的状态寄存器的输出切换至状态输出端105,其中将状态数据保存至前次路径ID对应的状态寄存器也可在切换当前路径ID对应输入缓冲器之前进行。本实施例可保证每个状态寄存器都包含对应于其所在路径中的输入缓冲器及数据的当前最新的状态信息。优选地,将状态输出端105的状态数据保存至前次路径ID对应的状态寄存器时,可以覆盖、部分覆盖、或不覆盖该状态寄存器中的原有数据。在状态输出端105得到的输出状态数据可提供给外部存储或逻辑模块,并可用于对数据输出端104的输出数据进行下一步处理。图3是根据本发明的一个优选实施例的动态切换多路输入接口方法的流程图,该方法主要包括:S301,在多个输入路径的每一个中,通过输入缓冲器接收并缓冲输入数据;S302,将与该输入缓冲器相对应的状态数据保存至相应的状态寄存器;S303,接收当前切换指令;S304,将所述多个输入路径中的由该当前切换指令指定的输入缓冲器的输出切换至数据输出端;S305,将所述多个输入路径中的由该当前切换指令指定的状态寄存器的输出切换至状态输出端。优选地,在步骤S301中,所述多个输入路径的多个输入缓冲器同步地接收多路输入数据,由此实现多路数据的并行接收。优选地,每个输入路径具有与之唯一对应的路径ID,用于识别该输入路径及该输入路径中的输入缓冲器和状态寄存器,即每个路径ID均与特定的输入路径相对应,也与该输入路径中的状态寄存器和输入缓冲器相对应。在步骤S303中,所接收的当前切换指令可包含当前需要切换的输入路径的当前路径ID,从而在步骤S304和步骤S305中通过该当前路径ID指定要切换的输入路径中的输入缓冲器和状态寄存器,并将该输入缓冲器的输出切换至数据输出端,将该状态寄存器的数据切换至状态输出端。在图4所示的该方法的另一优选的实施例中,在切换状态寄存器的输出至状态输出端之前,先根据所保存的前次路径ID将状态输出端上的数据保存至前次路径ID对应的状态寄存器,再将当前路径ID对应的状态寄存器的输出切换至状态输出端,因此该实施例中的方法包括:S401,在多个输入路径的每一个中,通过输入缓冲器接收并缓冲输入数据;S402,将与该输入缓冲器相对应的状态数据保存至相应的状态寄存器;S403,接收当前切换指令,并保存当前切换指令中的当前路径ID;S404,将所述多个输入路径中的由该当前路径ID指定的输入缓冲器的输出切换至数据输出端,S405,根据接收前次切换指令时保存的前次路径ID,将状态输出端上的状态数据保存至于该前次路径ID相对应的状态寄存器,S406,将所述多个输入路径中的由该当前路径ID指定的状态寄存器的输出切换至状态输出端。其中,步骤S405也可在步骤S403和步骤S404之间进行。与上述实施例中的动态切换多路输入接口系统和方法相对应地,本发明还涉及基于相同原理的动态切换多路输出接口系统和方法。图5是根据本发明的一个优选实施例的动态切换多路输出接口系统的结构框图,该系统主要包括:-多个输出路径(500a,500b,500c),每个输出路径包括:输出缓冲器(501a,501b,501c),缓冲并输出来自切换控制器503的输入数据,并将与该输出缓冲器(501a,501b,501c)相对应的状态数据保存至状态寄存器(502a,502b,502c);状态寄存器(502a,502b,502c),保存所述状态数据;-切换控制器503,接收当前切换指令,并将该切换控制器的数据输入端504接收的输入数据切换至所述多个路径(500a,500b,500c)中的由该当前切换指令指定的输出缓冲器(501a,501b,501c),并将所述多个输出路径(500a,500b,500c)中的由该当前切换指令指定的状态寄存器(502a,502b,502c)的输出切换至切换控制器503的状态输出端505。优选地,数据输入端504接收的输入数据包含按照一定的标准进行数据分割获得的多个数据片段,根据接收的当前切换指令,切换控制器503将该输入数据中的一个或多个片段切换至当前切换指令所指定的各个输出缓冲器(501a,501b,501c)并进行输出。优选地,所述多个数据路径中的多个输出缓冲器(501a,501b,501c)可同步输出多路数据。优选地,每个输出路径具有与之唯一对应的路径ID,用于识别该输出路径及该输出路径中的输出缓冲器和状态寄存器,即每个路径ID均与特定的输出路径相对应,也与该输出路径中的状态寄存器和输出缓冲器相对应。切换控制器503所接收的当前切换指令可包含当前需要切换的输出路径的当前路径ID,这样,切换控制器503可将数据输入端504中的输入数据切换至该当前路径ID对应的输出缓冲器,也将该当前路径ID对应的状态寄存器中的状态信息切换至状态输出端505。然而,当前切换指令的指定方式不限于此,也可根据应用的需要同时指定切换不同输出路径中的输入缓冲器和状态寄存器。在图6所述的实施例中,该系统在图5所示的系统的基础上还包括路径ID存储器506,该路径ID存储器506用于保存前一次切换指令中的前次路径ID,以及当前切换指令中的当前路径ID。在该实施例中,切换控制器503将数据输入端504的输入数据切换至该当前路径ID对应输出缓冲器,接下来,将状态输出端505的状态数据保存至前次路径ID对应的状态寄存器中,然后将当前路径ID对应的状态寄存器的输出切换至状态输出端505,其中将状态输出端的状态数据保存至前次路径ID对应的状态寄存器也可在将数据输入端504的输入数据切换至该当前路径ID对应的输出缓冲器之前进行。本实施例可保证每个状态寄存器都包含对应于该路径中的输出缓冲器及数据的当前最新的状态信息。优选地,将状态输出端505的状态数据保存至前次路径ID对应的状态寄存器时,可以覆盖、部分覆盖、或不覆盖状态寄存器中的原有数据。图7是是根据本发明的一个优选实施例的动态切换多路输出接口方法的流程图,该方法主要包括:S701,在数据输入端接收输入数据;S702,接收当前切换指令;S703,将所述输入数据切换至所述多个输出路径中的由该当前切换指令指定的输出缓冲器;S704,将与该输出缓冲器相对应的状态数据保存至相应的状态寄存器;S705,将所述多个输出路径中的由该当前切换指令指定的状态寄存器的输出切换至状态输出端。优选地,在步骤S703中,所述多个输出路径的多个输出缓冲器同步地输出多路数据,由此实现多路数据的并行输出。优选地,每个输出路径具有与之唯一对应的路径ID,用于识别该输出路径及该输出路径中的输出缓冲器和状态寄存器。在步骤S702中,所接收的当前切换指令可包含当前需要切换的输出路径的路径ID,这样,切换控制器可将数据输入端中的输入数据切换至该当前路径ID对应的输出缓冲器,也将该当前路径ID对应的状态寄存器中的状态信息切换至状态输出端。在图8所述该方法的另一优选的实施例中,在该实施例中,在切换状态寄存器中的数据至状态输出端之前,先根据所保存的前次路径ID将状态输出端上的数据保存至前次路径ID对应的状态寄存器,再将当前路径ID对应的状态寄存器的状态数据切换至状态输出端,因此该实施例中的方法包括:S801,在数据输入端接收输入数据;S802,接收当前切换指令,保存当前切换指令中的当前路径ID;S803,将所述输入数据切换至所述多个输出路径中的由该当前切换指令指定的输出缓冲器;S804,将与该输出缓冲器相对应的状态数据保存至相应的状态寄存器;S805,根据接收前次切换指令时保存的前次路径ID,将状态输出端上的状态数据保存至与该前次路径ID相对应的状态寄存器;S806,将所述多个输出路径中的由该当前切换指令指定的状态寄存器的输出切换至状态输出端。其中,步骤S804和S805也可交换顺序执行。在如图9所示的本发明的动态切换多路输入接口系统的一个示例性的应用中,所述输入接口用于接收和切换经过视频分割的输入/输出视频码流STRMIN0、STRMIN1、STRMIN2。图9的示例中给出了三个输入路径,对应于视频分割的三个语法元素类,事实上根据不同的应用,输入路径的数量不限于三个。输入缓冲器BUF0、BUF1、BUF2分别同步接收三路视频数据,并将三个输入缓冲器的各自相应的状态信息保存至三个状态寄存CTXTREG0、CTXTREG1、CTXTREG2,此时的状态信息可以为视频输入码流的上下文信息,当接收到切换指令时,切换控制器SWC首先识别出当前要切换的当前路径ID为“1”,因此将相应的输入缓冲器BUF1的输出切换至数据输出端STRMDATA,并且从路径ID存储器PID中可知,接收的前次切换指令中的前次路径ID为“0”,因此,先将状态输出端STRMCTEX的状态数据保存至与路径ID“0”相对应的状态寄存CTXTREG0中,然后将状态寄存CTXTREG1的输出切换至状态输出端STRMCTXT,可以通过切换指令控制按照宏块的几何位置来切换数据输出端和状态输出端输出数据,即从三个输入缓冲器中依次切换输出一个宏块的三路(三类)数据,再切换输出下一个宏块的三路数据,从而在后续的编解码过程中,即便原始的输入数据是未按宏块几何顺序排列的视频分割数据,然可按照宏块的几何位置依次对每个宏块进行解码和显示,以一遍的方式(one-path)处理不同类型数据分割的码流,使多路码流共享相同的编解码硬件逻辑,大大降低了编解码模块的规模和复杂度。同时该接口允许不同的视频数据分割码流可从多路输入输出接口互相独立地读入或写出,提高编解码的效率和并行度。然而本发明的输入/输出接口和方法并不限于以上应用。例如在SOC中,也可通过切换指令动态地切换多路输入数据至一路输出端,或动态地切换一路数据至多路输出端,从而将输入数据动态分配至当前指定的系统模块中,以很小的硬件代价和逻辑复杂度实现数据和命令的动态切换。上述实施例是用于例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修改。因此本发明的保护范围,应如本发明的权利要求书所列。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1