外设互联装置、处理器和片上系统的制作方法
未命名
08-07
阅读:73
评论:0

技术领域:
:,尤其涉及外设互联装置、处理器和片上系统。
背景技术:
::2.芯片中各外设之间相互独立,需要通过控制器(例如,cpu、mcu等)调度协调各外设的工作,控制器通过中断和读写寄存器与各外设通信(例如一项任务需要外设a和外设b共同完成,多数情况下外设a和外设b之间无法直接充分交换信息,需要分别与控制器通信来完成)。此方式占用控制器资源,且功耗较高。同时,由于控制器每次响应耗时不一致,导致各外设间每次通过控制器通信耗时不一致,对一些通信时间稳定性敏感的应用不友好。3.因此,如何减少外设之间的互联通信对控制器的依赖成为现有技术中亟待解决的技术问题。技术实现要素:4.有鉴于此,本发明实施例提供一种外设互联装置、处理器和片上系统,以至少部分解决上述问题。5.根据本发明实施例的第一方面,提供了一种外设互联装置,应用于包括至少两个外设的片上系统,所述装置包括:动态外设接口矩阵网络,用于接收所述至少两个外设所产生的通信信号,并将所述通信信号根据通道配置信息分配至不同的通道;至少两个动态外设接口矩阵外包层,每个所述外设都有与其对应的所述动态外设接口矩阵外包层,所述动态外设接口矩阵外包层用于根据通道订阅信息,令订阅所述通道的外设执行所述动态外设接口矩阵网络发送的通信信号所对应的任务;所述通道配置信息、所述通道订阅信息以及所述任务由控制器预先进行配置。6.在本发明的另一实现方式中,所述通道配置信息、所述通道订阅信息以及所述任务由所述控制器通过软件预先进行配置。7.在本发明的另一实现方式中,所述通道配置信息为所述控制器通过动态外设接口矩阵寄存器发送至所述动态外设接口矩阵网络;所述通道订阅信息、所述任务为所述控制器通过所述动态外设接口矩阵寄存器发送至所述动态外设接口矩阵外包层。8.在本发明的另一实现方式中,所述动态外设接口矩阵寄存器与所述控制器之间通过系统总线连接;所述动态外设接口矩阵寄存器与所述动态外设接口矩阵网络之间,以及所述动态外设接口矩阵寄存器与所述动态外设接口矩阵外包层之间通过本地连线连接。9.在本发明的另一实现方式中,每个所述动态外设接口矩阵外包层设置在与其对应的所述外设的内部;或者,所述至少两个动态外设接口矩阵外包层集中设置在任一所述外设的内部;或者,所述至少两个动态外设接口矩阵外包层集中设置在所述外设的外部。10.在本发明的另一实现方式中,所述动态外设接口矩阵网络包括:选择逻辑端口,用于接收所述至少两个外设所产生的通信信号,并根据所述通道配置信息对接收的所述通信信号进行选择,以将选择的通信信号进行发送;通信信号同步脉冲模块,用于接收所述通信信号,并将所述通信信号转换为统一脉宽的脉冲信号;矩阵网络,用于接收所述统一脉宽的脉冲信号,并将所述统一脉宽的脉冲信号发送至根据所述通道配置信息所选择的通道。11.在本发明的另一实现方式中,所述动态外设接口矩阵网络还包括:脉冲扩展模块,用于对各通道所接收的统一脉宽的脉冲信号进行脉冲信号展宽以将脉冲展宽之后的脉冲信号发送至根据所述通道配置信息所选择的通道。12.在本发明的另一实现方式中,所述选择逻辑端口包括多个端口和选择器,至少一个端口根据所述通道配置信息通过所述选择器对接收的至少两个所述通信信号进行选择;所述至少两个通信信号由同一个所述外设产生或者由至少两个不同的所述外设分别产生。13.在本发明的另一实现方式中,所述动态外设接口矩阵网络还包括:中断产生模块,用于当所述选择逻辑端口接收通信信号时,生成中断指令并将所述中断指令发送至所述控制器以通知所述控制器所述选择逻辑端口收到所述通信信号。14.在本发明的另一实现方式中,所述动态外设接口矩阵外包层,包括:通信信号解码器,用于根据所述通道订阅信息,获得所述动态外设接口矩阵网络发送至所订阅通道的通信信号;任务引擎,用于根据所述通信信号解码器获得的通信信号,获得所述通信信号对应的任务,令所述外设执行所述任务;通信信号产生模块,用于令所述外设产生的通信信号发送至所述动态外设接口矩阵网络。15.在本发明的另一实现方式中,所述通信信号解码器还用于获得所述通信信号对应的任务在指令表中的起始地址和结束地址,所述指令表用于存储各任务对应的指令,所述起始地址和所述结束地址用于指示所述任务所对应的开始执行的指令和结束执行的指令;所述任务引擎具体用于:根据所述起始地址和结束地址,从指令表中获得所述起始地址和所述结束地址对应的指令;对所述指令进行译码,根据译码的所述指令配置外设寄存器,以控制所述外设实现所述任务对应的功能。16.在本发明的另一实现方式中,所述指令表存储在所述动态外设接口矩阵外包层包括的动态外设接口矩阵控制寄存器或者外设的静态存储器中。17.在本发明的另一实现方式中,所述指令表的深度以及所存储的指令的位宽通过所述动态外设接口矩阵控制寄存器或者外设的静态存储器进行设置。18.在本发明的另一实现方式中,当所述动态外设接口矩阵网络通过所述通道发送所述通信信号,所述动态外设接口矩阵外包层的所述任务引擎获得外设寄存器的控制权;否则,所述控制器获得所述外设寄存器的控制权。19.在本发明的另一实现方式中,所述动态外设接口矩阵外包层与所述控制器通过多路复用器共享所述外设寄存器的控制权。20.在本发明的另一实现方式中,所述任务引擎通过通用总线协议转换模块挂载在通用总线接口上;当所述动态外设接口矩阵外包层的任务引擎获得所述外设寄存器的控制权,所述通用总线协议转换模块,选择第一总线连接所述外设寄存器;当所述控制器获得所述外设寄存器的控制权,所述通用总线协议转换模块,选择第二总线连接所述外设寄存器,所述第一总线与所述第二总线不同,所述第一总线为高级外设总线,所述第二总线为高级高性能总线。21.在本发明的另一实现方式中,所述指令表支持五种指令:写寄存器命令、位段写寄存器命令、延时等待命令、比较判断命令、位段比较判断命令。22.在本发明的另一实现方式中,所述通信信号解码器还用于接收所述外设发送的短触发指令,所述短触发指令为根据所述外设的触发,令所述外设实现对应的功能,所述短触发指令包括所述外设产生的中断、通信信号或者指示信号中的一种,所述通信信号解码器将所述短触发指令的起始地址和结束地址发送至所述任务引擎。23.在本发明的另一实现方式中,所述通信信号解码器还用于接收任务终止指令,所述任务终止指令为当前执行的任务被中断时,令所述任务引擎执行下一个任务或者继续执行被中断的任务。24.在本发明的另一实现方式中,所述通信信号解码器包括:网络信号模块,接收预订通道的通信信号,经过同步单元处理后分别跟取反后的每一个任务的寄存器进行与处理以及按位或处理,得到输出结果,对所述输出结果检测到上升沿或者下降沿之后,对所述输出结果或起来产生网络执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;短触发信号模块,接收通信信号,经过同步处理后分别跟取反后的每一个任务的寄存器进行与处理后按位或处理,得到输出结果,对所述输出结果检测到上升沿或者下降沿之后,对所述输出结果或起来产生短触发执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;任务终止模块,接收终止通信信号,经过同步处理后和任务终止功能的使能寄存器相与后,所述输出结果检测到上升沿或者下降沿之后,产生终止执行信号。25.在本发明的另一实现方式中,所述通信信号解码器包括:网络信号模块,接收预订通道的通信信号,经过同步单元处理后分别跟取反后的每一个任务的寄存器进行与处理以及按位或处理,得到输出结果,若所述任务引擎对所述输出结果检测到上升沿或者下降沿,对所述输出结果或起来产生网络执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;短触发信号模块,接收通信信号,经过同步处理后分别跟取反后的每一个任务的寄存器进行与处理后按位或处理,得到输出结果,若所述任务引擎对所述输出结果检测到上升沿或者下降沿,对所述输出结果或起来产生短触发执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;任务终止模块,接收终止通信信号,经过同步处理后和任务终止功能的使能寄存器相与后,若所述任务引擎对所述输出结果检测到上升沿或者下降沿,产生终止执行信号。26.根据本发明实施例的第二方面,提供了一种处理器,包括:处理器核;以及,上述的外设互联装置;所述处理器核包括控制器,所述控制器用于对所述外设进行控制,所述外设互联装置用于根据所述控制器的预先设置,实现所述外设的互联。27.根据本发明实施例的第三方面,提供了一种片上系统,包括:多个处理器以及至少两个外设,所述处理器为根据上述的处理器。28.在本技术实施例的方案中,本技术实施例动态外设接口矩阵网络接收所述至少两个外设所产生的通信信号,并将所述通信信号根据通道配置信息分配至不同的通道,每个所述外设都有与其对应的所述动态外设接口矩阵外包层,并根据通道订阅信息,令订阅通道的外设执行通信信号对应的任务,通道配置信息、通道订阅信息以及任务由控制器预先进行配置。本技术实施例外设互联过程中,控制器仅需要配置通道配置信息、通道订阅信息以及任务,即可实现各个外设互联,并且实现外设的任意功能。附图说明29.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。30.图1为dppi解决方案的示意图。31.图2为dppi解决方案外设任务的示意图。32.图3为本发明实施例的dpim解决方案外设任务的示意图。33.图4为本发明实施例的外设互联装置的示意图。34.图5为本发明实施例的外设互联装置的一具体应用场景的示意图。35.图6为本发明实施例的外设互联装置的动态外设接口矩阵网络的示意图。36.图7为本发明实施例的外设互联装置的动态外设接口矩阵外包层的示意图。37.图8为本发明实施例的外设互联装置的指令表内存储的指令格式的示意图。38.图9为本发明实施例的外设互联装置的指令表的示意图。39.图10为本发明实施例的外设互联装置的任务引擎从指令表取指的示意图。40.图11为本发明实施例的外设互联装置的任务引擎内部状态机的工作流程的示意图。41.图12为本发明实施例的外设互联装置的通信信号解码器的模块示意图。42.图13为本发明实施例的外设互联装置的通信信号解码器的网络信号模块的示意图。43.图14为本发明实施例的外设互联装置的通信信号解码器的短触发信号模块的示意图。44.图15为本发明实施例的外设互联装置的通信信号解码器的任务终止模块的示意图。45.图16为根据本发明实施例的另一实施例的处理器的结构框图。46.图17为根据本发明实施例的另一实施例的片上系统的结构示意图。具体实施方式47.为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。48.在下面的详细描述中对附图进行参考,这些附图形成详细描述的一部分并且图示了示例性实施例。另外,要理解,可以利用其他实施例,并且可以进行结构和/或逻辑改变,而不脱离要求权利的主题的范围。还应该注意的是,方向和参考(例如上、下、顶、底等)可以仅仅用于便于附图中特征的描述。因此,以下详细描述将不在限制意义上被理解,并且要求权利的主题的范围仅由所附权利要求及其等效物来限定。49.在下面的描述中,阐述了众多细节。然而,对于本领域技术人员来说将显而易见的是,可以在没有这些特定细节的情况下实践本文中的实施例。在一些情况下,公知的方法和装置以框图形式示出,而不是详细示出,以避免模糊本文中的实施例。在此说明书通篇对“实施例”或“一个实施例”或“一些实施例”的引用意味着结合该实施例描述的特定特征、结构、功能或特性被包括在本文中的至少一个实施例中。因此,在此说明书通篇各处中出现短语“在实施例中”或“在一个实施例中”或“一些实施例”不一定是指同一实施例。此外,在一个或多个实施例中,特定特征、结构、功能或特性可以以任何合适的方式组合。例如,第一实施例可以在与两个实施例关联的特定特征、结构、功能或特性不相互排斥的任何情况下与第二实施例组合。50.如在描述和所附权利要求中所使用的,单数形式“一(a、an)”和“该”意图也包括复数形式,除非上下文另有明确指示。还将理解,如本文中使用的术语“和/或”指的是并且包含关联的列出项中一个或多个的任何和所有可能的组合。51.术语“耦合”和“连接”连同它们的派生词在本文中可以用来描述组件之间的功能或结构关系。应该理解,这些术语不意图作为彼此的同义词。相反,在特定实施例中,“连接”可用于指示两个或多于两个元件与彼此直接物理、光或电接触。“耦合”可以用于指示两个或多于两个元件与彼此直接或间接(在它们之间有其他中间元件)物理接触或电接触,和/或两个或多于两个元件与彼此协作或交互(例如,如在因果关系中)。52.如本文中所使用的术语“在…上方”、“在…下方”、“在…之间”和“在…上”是指一个组件或材料相对于其他组件或材料的相对位置,其中此类物理关系是值得注意的。例如,在材料的上下文中,设置在另一材料上方或下方的一个材料或材料可以直接接触,或者可以具有一个或多个中间材料。而且,设置在两个材料或材料之间的一个材料可以与两个层直接接触,或者可以具有一个或多个中间层。相比之下,第二材料或材料“上”的第一材料或材料与该第二材料/材料直接接触。在组件组装的上下文中要进行类似区分。53.如在此描述通篇以及在权利要求中所使用的,由术语“中的至少一个”或“中的一个或多个”连接的项目的列表可意味着所列出项目的任何组合。例如,短语“a、b或c中的至少一个”可意味着a;b;c;a和b;a和c;b和c;或者a、b和c。54.术语“电路”或“模块”可以指一个或多个无源和/或有源组件,它们被布置成与彼此协作以提供期望的功能。术语“信号”可以指至少一个电流信号、电压信号或磁信号。术语“基本上”、“靠近”、“近似”、“接近”和“大约”通常指在目标值的+/-10%内。55.为了减少外设之间的互联通信对控制器的依赖,dppi(dynamicprogrammableperipheralinterconnect)解决方案被提出。参见图1,dppi解决方案将各外设中原本用于与控制器通信的通信信号(event),发布至dppi网络中。该网络由若干通道(channel)组成,各外设根据通道配置信息将其通信信号发送到不同通道上。同时各外设可以根据通道订阅信息订阅不同通道上的通信信号,根据接收到通信信号,执行不同的任务(task)。通道配置信息以及通道订阅信息可通过寄存器配置。56.dppi解决方案无需控制器参与,且通信延时固定。控制器仅需要预先完成通信信号发布的配置,即各外设通信信号送到哪些通道上的配置,以及通道订阅的配置,即各外设接收哪些通道的通信信号的配置。57.但是dppi解决方案中,外设可执行的任务是在芯片设计阶段封好的硬件电路,外设能执行的任务的种类是固定且简单的,缺乏灵活性。58.参见图2,由于各外设可执行的任务由硬件电路设计完成,每一个外设可执行的任务数量是固定的,任务内容也是预设好的,这些都已经在硬件中实现,是不可改变的。用户只能在这些预设好的内容中选择,在dppi网络中进行配置使用。用户在使用过程中,无法自定义所需的任务。若在设计阶段加入较复杂的任务,则会带来新增面积过大,设计复杂性增加等问题。若要新增外设,则需根据外设种类和使用场景,设计新的任务电路,任务电路无法简便地集成通用。并且,当某外设正在执行某个任务时,若另一任务被触发执行,可能会造成外设内部状态混乱。59.本技术实施例提出一种可以适用于通用片上系统(soc)的动态外设接口矩阵(dynamicperipheralinterfacematrix,dpim)解决方案,能够在外设互联过程中不需要控制器参与,控制器仅需要预先配置通道配置信息、通道订阅信息以及任务,并且本技术实施例可以实现外设的任意一种或多种功能。本技术实施例控制器不仅通过软件配置通道配置信息、通道订阅信息,本技术实施例外设可执行任务的数量以及任务的内容都是通过软件配置实现的。60.参见图3,本技术控制器预先配置通道配置信息、通道订阅信息以及任务,使相互独立的外设能够协同工作。61.下面结合本发明实施例附图进一步说明本发明实施例具体实现。62.参见图4,本技术实施例提供一种外设互联装置,应用于包括至少两个外设的片上系统,装置包括:动态外设接口矩阵网络(dpim_network)31,用于接收至少两个外设(外设1、外设2、外设3)所产生的通信信号,并将通信信号根据通道配置信息分配至不同的通道。63.至少两个动态外设接口矩阵外包层(dpim_peripheral_wrapper)32,动态外设接口矩阵外包层32与外设一一对应,动态外设接口矩阵外包层32用于根据通道订阅信息,令订阅通道的外设执行动态外设接口矩阵网络31发送的通信信号所对应的任务。64.具体参见图4中动态外设接口矩阵网络31通过细线分别连接外设1、外设2、外设3对应设置的三个动态外设接口矩阵外包层32。65.具体地,通道配置信息、通道订阅信息以及任务由控制器通过软件预先进行配置。控制器通过软件预先配置通道配置信息、通道订阅信息以及任务,令用户在使用过程中,可自定义所需的任务,无需重新进行芯片设计。新增任务不会新增芯片面积,也便于根据外设种类以及使用场景,重新配置外设的任务。66.下面通过一个应用场景详细说明本技术实施例实现。67.图5就是一个模数转换器(analogtodigitalconverter,adc)、计时器(timer)、通用异步收发器(universalasynchronousreceiver/transmitter,uart)、直接内存访问(directmemoryaccess,dma),四个外设协同工作的典型场景。首先,控制器进行通道配置信息、通道订阅信息以及任务进行软件预先配置。当计时器计时超时,产生超时通信信号(event)。动态外设接口矩阵网络31接收超时通信信号,将超时通信信号根据通道配置信息分配至不同的通道。模数转换器对应的动态外设接口矩阵外包层31根据通道订阅信息接收超时通信信号,执行对应的采集数据任务。模数转换器采集数据任务完成后,产生采集数据完成通信信号,动态外设接口矩阵网络31接收采集数据完成通信信号,将采集数据完成通信信号根据通道配置信息分配至不同的通道。直接内存访问对应的动态外设接口矩阵外包层32根据通道订阅信息接收采集数据完成通信信号,执行对应的搬运数据到存储器任务。搬运数据到存储器任务完成后,产生搬运数据到存储器完成通信信号,动态外设接口矩阵网络31接收搬运数据到存储器完成通信信号,将搬运数据到存储器完成通信信号根据通道配置信息分配至不同的通道。通用异步收发器对应的动态外设接口矩阵外包层32根据通道订阅信息接收搬运数据到存储器完成通信信号,执行打印信息任务。打印信息任务完成后,产生打印信息完成通信信号,动态外设接口矩阵网络31接收打印信息完成通信信号,将打印信息完成通信信号根据通道配置信息分配至不同的通道。计时器对应的动态外设接口矩阵外包层32根据通道订阅信息接收打印信息完成通信信号,执行对应的重启计数任务,然后循环这个工作流程。在这个工作流程中,控制器只预先配置通道配置信息、通道订阅信息以及任务。示例性地,外设的任务包括:计时器的超时时间,模数转换器的采样率,直接内存访问的源地址和目的地址,通用异步收发器的波特率等。68.以图2的场景举例,当直接内存访问搬运数据到存储器任务完成后,通用异步收发器执行打印信息任务,通用异步收发器自动执行的任务仅仅是“打开打印使能”这一个简单的动作;但是以图3的场景举例,“修改波特率”、“设置打印内容”、“设置打印长度”、“等待5ms”、“打开打印使能”ꢀ通用异步收发器的任务是软件可编程设置的,具有很强的灵活性。69.本技术实施例可以应用于存在控制器、总线和外设的所有系统中,例如无线通信系统、家用电器等。本技术实施例也可以应用于没有控制器的系统,系统可以通过一个外部接口,采用外部控制器直接配置通道配置信息、通道订阅信息以及任务。本技术实施例中的控制器可以为存在于本技术实施例所应用的片上系统,或者片上系统连接的外部控制器,本技术实施例对此并不限定。70.具体地,动态外设接口矩阵网络31负责收集所有外设产生的通信信号,将这些通信信号通过软件配置好的译码规则,根据通道配置信息分配到不同的通道上去,使订阅了这些通道的外设能够接收到通信信号,完成任务。71.动态外设接口矩阵外包层32负责根据通道订阅信息接收动态外设接口矩阵网络31转发的通信信号,触发外设执行通信信号对应的任务。故每一个外设都会搭配一个动态外设接口矩阵外包层32。72.外设跟控制器之间通过系统总线具有物理连接,但是程序上可以是断开的。软件可以不需要控制器直接访问外设,当控制器空闲时,控制器可以直接控制外设。73.具体地,动态外设接口矩阵网络31和动态外设接口矩阵外包层32并没有挂载在系统总线(systembus)上,控制器只能通过配置动态外设接口矩阵寄存器33来访问动态外设接口矩阵网络31和动态外设接口矩阵外包层32。动态外设接口矩阵网络31和动态外设接口矩阵外包层32没有直接连接在系统总线上,所以控制器不能直接访问这两个模块,只能通过配置动态外设接口矩阵寄存器33来间接控制他们。动态外设接口矩阵寄存器33与控制器之间通过系统总线(systembus)连接,从而保证动态外设接口矩阵寄存器33进行预先配置的准确性。74.各动态外设接口矩阵外包层32与各外设(外设1、外设2、外设3)之间可以使用本地连线连接交互,动态外设接口矩阵寄存器33与动态外设接口矩阵外包层32之间使用本地连线(localbus)连接。上述连接不需要经过总线,故保证了任务执行的实时性。控制器通过系统总线控制外设,控制器通过系统总线配置通道配置信息、通道订阅信息、任务至动态外设接口矩阵寄存器33,动态外设接口矩阵网络31通过本地连线从动态外设接口矩阵寄存器33获得通道配置信息;动态外设接口矩阵外包层32通过本地连线从动态外设接口矩阵寄存器33获得通道订阅信息、任务。75.每个动态外设接口矩阵外包层32设置在对应的外设内部;或者,至少两个动态外设接口矩阵外包层32集中设置在任一外设的内部;或者至少两个动态外设接口矩阵外包层32集中设置在外设的外部。图4的实施例以每个动态外设接口矩阵外包层32设置在对应的外设内部为例进行说明。76.本技术实施例动态外设接口矩阵外包层32可以根据需要进行设置,设置方式更加灵活。77.参见图4,通过工作数据流的方式进一步说明本技术实施例的实现。78.数据流①:控制器通过系统总线将通道配置信息、通道订阅信息以及任务配置至动态外设接口矩阵寄存器33。79.外设执行的任务均为控制器通过数据流①进行配置的。80.数据流②:动态外设接口矩阵寄存器33配置完成,通道配置信息通过本地连线直接送入动态外设接口矩阵网络31;通道订阅信息、任务通过本地连线直接送入动态外设接口矩阵外包层32中。81.数据流①是通过系统总线实现的,系统总线是一种协议,按照规定和时序送信号,所有外设都是挂在总线上的。82.数据流②是通过本地连线实现的。本地连线为信号线,目的是将一个信号从一个点传到另一个点。83.数据流③:第一外设1产生某个通信信号,送入动态外设接口矩阵网络31。84.数据流④:动态外设接口矩阵网络31把该通信信号根据通道配置信息发送到订阅对应通道的外设中。85.第二外设2产生的通信信号通过动态外设接口矩阵网络31传递到订阅对应通道的外设中,来触发订阅对应通道的外设执行任务。86.具体参见图5,计时器产生超时通信信号,通过动态外设接口矩阵网络31传递给订阅对应通道的外设,例如模数转换器,模数转换器开始执行采集数据任务。87.数据流⑤:第一外设1接收到了自己订阅的相关通道的通信信号,开始执行在数据流①预先配置好的任务。88.任务示例性地可能为通过总线传输数据(比如dma),或者跟其他外设产生交互。89.在本技术实施例一具体实现中,参见图6,动态外设接口矩阵网络31包括:选择逻辑端口311,用于接收至少两个外设所产生的通信信号,并根据通道配置信息对接收的通信信号进行选择,以将选择的通信信号进行发送。90.具体地,选择逻辑端口311包括多个端口(port_0~31)以及选择器。本技术仅以32个port作为示例。信号源端source_0~n表示系统中存在多个通信信号,每个通信信号作为一个信号源端,送入任一端口(port)。至少一个port根据通道配置信息通过选择器对接收的至少两个通信信号进行选择。至少两个通信信号由同一个外设产生或者由至少两个不同的外设分别产生。91.示例性地,选择逻辑端口311可根据通道配置信息将一个外设产生的多个通信信号或者多个不同的外设产生的多个通信信号送到任意一个或多个通道上,图中所示为32个通道为例,ch0~31(即,图中矩阵网络313中所示的32个通道)。如图6中port_1的信号,同时送到了ch1、ch3、ch30;port_5的信号仅送到了ch2;port_3、port_5的信号均送到了ch2。92.通信信号同步脉冲模块(evt_sync_pulse)312,用于接收通信信号,并将通信信号转换为统一脉宽的脉冲信号。93.矩阵网络(dpim_network)313,用于接收统一脉宽的脉冲信号,并将统一脉宽的脉冲信号发送至通道配置信息所选择的通道。94.示例性地,矩阵网络313由32个通道以及32个端口port_0~31对应的线组成。每个通道对应图中每一条垂直方向的线;每个port对应图中每一条水平方向的线。某个黑色点表示某个port中的信号发送到了某个通道上,例如,图6中port1的信号发送到了ch1、ch3、ch30上。某个白色点表示某个port中的信号未发送到某个通道上,例如图6中port0中的信号未发送到任何一个通道上。95.脉冲扩展模块(pulse_expand_ch0~31)314,用于对各通道所接收的统一脉宽的脉冲信号进行脉冲信号展宽以将脉冲展宽之后的脉冲信号发送至根据通道配置信息所选择的通道。示例性地,以32个通道为例,pulse_expand_ch0~31将脉冲信号展宽后送出动态外设接口矩阵网络31,送到各外设。展宽脉冲以匹配不同外设的不同采样时钟频率。96.中断产生模块(int_gen)315,用于当选择逻辑端口311接收通信信号时,生成中断指令并将中断指令发送至控制器以通知控制器选择逻辑端口收到通信信号。控制器根据该中断指令获得该选择逻辑端口发送的通信信号,并让控制器中的软件获知有相关通信信号产生。97.参见图6,通过工作数据流的方式进一步说明本技术实施例的动态外设接口矩阵网络31的实现。98.动态外设接口矩阵网络31支持多个信号源端和通道,图6中的n个信号源端和32个通道仅为示例。信号源端连接各个外设产生的通信信号,通过动态外设接口矩阵寄存器33中的通道配置信息,将n路信号源端分配到32个端口port_0~31上。经过同步,由动态外设接口矩阵网络31分配到32个通道ch0~31上。99.通信信号是一个消息,在物理上它是一个信号线,例如外设1~10一共能够产生100个不同的通信信号,那么一共有100根信号线连接到信号源端(此时图6中n=99),所以这里的信号源端只是动态外设接口矩阵网络31的端口,该信号线可以传输100bit宽度的输入信号。而通信信号是外设的输出信号,位宽也是100bit。100.本技术实施例的动态外设接口矩阵网络31具有以下特点:不同的信号源端可以通过动态外设接口矩阵网络31触发不同的目标外设执行对应的任务,不同外设之间相互独立,不同外设执行任务可以并发。例如图6中port2对应信号源端触发了订阅ch31的外设执行对应的任务,同时,port3对应信号源端触发了订阅ch2的外设执行对应的任务。101.本技术实施例克服了现有技术仅支持同一外设产生的不同信号源端绑定到一个通道上,通过这个通道来触发不同的任务。而本技术实施例支持任意信号源端绑定到一个通道上,无论是否为同一外设产生的。例如,外设1产生source1~3,外设2产生source4~8,本技术实施例可以选择source1、3、5绑定到ch0;source2、4、6、7、8绑定到ch1上。但现有技术仅支持source1、3绑定到ch0,source5绑定到ch1,source4、8绑定到ch2,source5、6、7绑定到ch3。102.同一个信号源端可以通过本技术实施例动态外设接口矩阵网络触发不同的通道连接的目标外设执行对应的任务,不同外设之间相互独立,不同外设执行任务可以并发。例如,图6中port1对应信号源端触发了订阅通道ch1、ch3、ch30的外设执行对应的任务。103.不同的信号源端可以通过本技术实施例动态外设接口矩阵网络触发同一个通道连接的目标外设执行对应的多个任务,同一个通道连接的目标外设多个任务之间不可并发,需要串行执行多个任务。例如,图6中port3对应信号源端和port5对应信号源端均可触发订阅了ch2的外设对应的任务,则该多个任务需要串行执行即信号源端任何一个拉高,通道都会发送脉冲给订阅此通道的外设。104.本技术实施例一具体实现中,参见图7,动态外设接口矩阵外包层32,包括:通信信号解码器321,用于根据通道订阅信息,获得动态外设接口矩阵网络31发送至所订阅通道的通信信号。105.任务引擎322,用于根据通信信号解码器321获得的通信信号,获得通信信号对应的任务,令外设执行对应的任务。106.通信信号产生模块323,用于令外设产生的通信信号发送至动态外设接口矩阵网络31。107.本技术实施例的动态外设接口矩阵外包层模仿控制器的行为,通过任务引擎,令外设执行所订阅通道的通信信号对应的任务,可以使动态外设接口矩阵外包层与外设本身解耦。动态外设接口矩阵外包层的设计者不需要了解外设内部的结构和功能,外设的设计者也不需要针对动态外设接口矩阵外包层对外设本身进行改动。本技术实施例简化了设计,又可以方便的移植到任意系统中。108.例如,通信信号解码器321根据通道订阅信息,获得动态外设接口矩阵网络31发送至所订阅通道的通信信号,即通道订阅信息为订阅通道channel[0]、channel[1]、channel[10]三个通道的通信信号,并且在channel[0]的通信信号到来时需要任务引擎322令外设执行任务1;在channel[1]的通信信号到来时需要任务引擎322令外设执行任务2;在channel[10]的任务引擎322到来时需要任务引擎322令外设执行任务3。当通信信号解码器321接收到通道送来的通信信号时,它会首先判断其是否属于订阅通道,然后判断具体是哪一个订阅通道,任务引擎322令外设执行对应的功能。现有的外设互联技术中,仅支持一个通道对应一个任务(例如任务1只能由通道channel[0]上的通信信号触发),局限性较大。本技术实施例可以支持多个通道触发同一个任务(例如任务1可以由通道channel[0]、channel[2]、channel[9]上的通信信号触发),在应用上更加灵活。[0109]具体地,通信信号解码器321还用于:获得通信信号对应的任务在指令表中的起始地址和结束地址,指令表(cmd_table)用于存储各任务对应的指令,起始地址和结束地址用于指示任务所对应的开始执行的指令和结束执行的指令。[0110]任务引擎具体用于:根据起始地址和结束地址,从指令表中获得起始地址和结束地址对应的指令;对指令进行译码,根据译码的指令配置外设寄存器,以控制外设实现任务对应的功能。[0111]本技术实施例任务引擎322从指令表内取指并译码,然后根据不同的指令来控制外设实现不同的任务。任务引擎322会通过配置外设本身的寄存器,来控制外设的行为,与控制器控制外设是一样的。参见上述范例,任务引擎322收到了任务3的起始地址和结束地址后,从指令表中按照从起始地址开始,每次取一条指令,执行完毕后再取下一条指令,直到取到结束地址,任务3执行完毕。[0112]本技术实施例通过任务引擎和指令表及指令表内的指令集实现自定义任务,不管是任务内容或者任务数量都可以自定义,并且具有可扩展性。本技术实施例可以适应不同客户的需求,不需要改动设计,提供给客户二次开发的平台,既可以减少研发的工作量,又可以给客户最大的自由度,同时还可以节约针对不同客户需求的沟通成本。即使对于出售的产品,也可以通过固件升级等方式,修改指令表内容,对产品进行维护。[0113]具体地,任务引擎322通过通用总线协议转换模块324挂载在通用总线接口上。[0114]当动态外设接口矩阵外包层的任务引擎获得外设寄存器的控制权,通用总线协议转换模块,选择第一总线连接外设寄存器;当控制器获得外设寄存器的控制权,通用总线协议转换模块,选择第二总线连接外设寄存器,第一总线与第二总线不同,第一总线为高级外设总线,第二总线为高级高性能总线。[0115]示例性地,总线协议转换模块324可以为ahb/apb选择器,ahb(advancedhighperformancebus,高级高性能总线),apb(advancedperipheralbus,高级外设总线),例如,第一总线和第二总线分别为apb和ahb。[0116]参见图7,当动态外设接口矩阵网络31通过通道发送通信信号,动态外设接口矩阵外包层32的任务引擎322获得外设寄存器21的控制权;否则,控制器获得外设寄存器21的控制权。[0117]动态外设接口矩阵外包层32与控制器通过多路复用器共享外设寄存器21的控制权。[0118]本技术实施例动态外设接口矩阵外包层32与控制器可以共享外设寄存器21的控制权,从而无需为两者设置单独对应的寄存器。[0119]具体地,当动态外设接口矩阵外包层32的任务引擎322获得外设寄存器21的控制权,ahb/apb选择器采用apb总线连接外设寄存器21,apb总线是外围总线,主要用于低带宽的周边外设之间的连接。当控制器获得外设寄存器21的控制权,ahb/apb选择器采用ahb总线连接外设寄存器21,ahb总线是系统总线,主要用于高性能模块(如cpu、dma和dsp等)之间的连接。[0120]具体地,通信信号产生模块323接收外设核22产生的通信信号条件(event_cond_0、event_cond_1、……),并将通信信号(event_0、event_1、……)发送至动态外设接口矩阵网络31。[0121]指令表存储在动态外设接口矩阵外包层包括的动态外设接口矩阵控制寄存器325或者外设的静态存储器中。[0122]每一个外设的动态外设接口矩阵外包层32内都有一个指令表,可以存在动态外设接口矩阵控制寄存器里面,如果超出动态外设接口矩阵控制寄存器存储空间,也可以存在静态存储器中。用户可以通过配置动态外设接口矩阵控制寄存器来填写指令表。[0123]动态外设接口矩阵控制寄存器325的主要作用是存放一些控制信息,通信信号解码器321和任务引擎322会根据软件配置的控制信息来实现不同的行为。[0124]参见图8,指令表内存储的指令格式说明如下:每一条指令都是32bit,高3bit为cmd,表示需要执行的命令的类型,[28:13]为延迟(delay)拍数,[12]为保留位(reserve),低12bit为需要操作的寄存器的地址。[0125]指令表支持五种指令:写寄存器命令、位段写寄存器命令、延时等待命令、比较判断命令、位段比较判断命令。具体为:3'b000表示写寄存器,需要同时将要写的寄存器地址填入reg_addr字段;并且在下一条指令填写32bit的写数据。[0126]3'b001表示位段写寄存器,需要同时将要写的寄存器地址填入reg_addr字段;并且在第二条指令填写32bit的写数据,在第三条指令填写32bit的mask值。[0127]3'b010表示延时等待,需要同时将需要等待的拍数填入cnt_value字段,有限状态机(fsm)收到这条命令后会等待配置的拍数后再取下一条指令。[0128]3'b011表示比较判断,具体操作是将reg_addr字段对应的寄存器读回,并且比较该寄存器的值是否与下一条指令保存的cmp_data相等,如果相等则继续执行下一条指令,否则重复本次的读回比较操作。比较失败超过设置次数,上报错误信息,有限状态机回到取指(fetch)状态,继续执行下一条指令。[0129]3'b100表示位段比较判断,具体操作是将reg_addr字段对应的寄存器读回,与第三条指令内保存的mask值取反相与,然后比较得到的值是否与第二条指令保存的cmp_data相等,如果相等则继续执行下一条指令,否则重复本次的读回比较操作。比较失败超过设置次数,上报错误信息,有限状态机回到取指状态,继续执行下一条指令。[0130]指令表最大深度为2^cmd_addr_width,其中,cmd_addr_width参数可以由外面传入。示例性地,图8中指令表的最大深度为32位。[0131]因此,指令表的深度以及所存储的指令的位宽可根据需要进行设置。[0132]用户可以通过配置始地址和结束地址来控制任务引擎从哪一条指令开始执行以及结束执行。一个指令表可定义多个任务,以不同的起始和结束地址来区分。[0133]参见图9,下面通过一个指令表来具体进行说明。[0134]其中,addr0~addr1是一个写寄存器指令,将数据0x1234写入地址0x12。[0135]addr2~addr4是一个位段写寄存器指令,将数据0xabcd的低8bit写入地址0x18。[0136]addr5是一个等待指令,任务引擎将等待0x32个系统时钟cycle后再取下一个指令。[0137]addr6~addr7是一个比较判断指令,任务引擎先从0x20地址读取数据后与0xaaaa进行比较。[0138]addr29~addr31是一个位段比较判断指令,任务引擎从0x12地址读数数据后,将其高24bit与0x1234进行比较。[0139]指令表可以划分为若干个任务,用户通过配置寄存器来设定每一个任务的起始地址和结束地址,任务之间可以不连续。指令表也不需要填满。例如,图9中addr0~addr4可以设置为任务1,起始地址addr0,结束地址addr4,包含2条指令;addr6~addr7可以设置为任务2,起始地址addr6,结束地址addr7,包含1条指令。[0140]参见图10,通信信号解码器321接收从动态外设接口矩阵网络送来的订阅通道的通信信号,并将通信信号发送给任务引擎322,令外设2执行对应的任务。[0141]参见图10,任务引擎322是从指令表取指并执行,除了接收从动态外设接口矩阵网络送来的订阅通道的通信信号触发执行任务外,任务引擎还用于接收外设发送的短触发(short)指令。即,图中示例的短触发指令使能后,通信信号解码器321将短触发指令进行解码后发送至任务引擎322,令外设2执行该短触发指令对应的任务。短触发指令是指将外设内部产生的中断或通信信号或某些特殊的指示信号直接连接到通信信号解码器入口,而不是经过动态外设接口矩阵网络的转发,作为与订阅通道的通信信号相同的触发信号。这样可以省去动态外设接口矩阵网络的转发耗时,实现外设自己触发自己的功能。短触发指令可以实现更快的触发。[0142]参见图10,通信信号解码器321还用于接收任务终止指令(stop_task),即可以在指令表内定义一个特殊的任务,在当前任务被中断时,任务引擎会自动执行,不需要通信信号触发,且任务终止指令不可被中断。任务终止指令可以保证在某些外设正在工作中被意外中断后,能够自动恢复初始状态,防止在下一次工作时因为之前遗留的状态或配置导致异常。[0143]参见图11,任务引擎内部状态机的工作流程。每一个圆圈代表任务引擎的一个工作状态。[0144]在没有通信信号来的时候,任务引擎处于空闲状态(idle),当通信信号到来时,由通信信号解码器对该通信信号进行译码,把对应任务表的起始地址和结束地址发给任务引擎,状态机跳转到取指(fetch)。[0145]在取指状态中,任务引擎按照起始地址从任务表中读出一条32bit的指令进行译码,根据cmd字段,跳转到不同的状态。[0146]如果cmd字段是3’b000,即写寄存器指令,那么状态机会直接跳转到写寄存器状态(wr_reg),通过本地总线改写指令中指定的外设寄存器,再跳转回到取指状态。[0147]如果cmd字段是3’b001,即位段写寄存器指令,那么状态机会先再取两条32bit指令(因为位段写寄存器指令由3个32bit指令组成),再跳转到读寄存器状态(rd_reg),将指令内指定的外设寄存器内容读出,再跳转到写寄存器状态,改写指令中指定寄存器的指定位段内容(因为只有指定的位段需要改写,其他位段需要保持与之前一致,所以必须先读出原值),然后跳转回到取指状态。[0148]如果cmd字段是3’b010,即延时等待指令,那么状态机会跳转到等待状态(wait),通过内部的计数器,计数到指令中指定的拍数之后,再跳转回到取指状态。[0149]如果cmd字段是3’b011,即比较判断指令,那么状态机会先再读取一条32bit指令(比较判断指令由2个32bit指令组成),再跳转到读寄存器状态,读取指令中指定被比较的寄存器内的值,再跳转到比较状态(cmp)与指令中填写的比较值进行比较,如果相同,则跳转回取指状态,如果不同,则又跳转到读寄存器状态,循环上面的操作,直到比较次数达到动态外设接口矩阵寄存器中设置的最大值或者比较成功,跳转回取指状态。[0150]如果cmd字段是3’b100,即位段比较判断指令,那么状态机会先再读取两条32bit指令(比较判断指令由3个32bit指令组成),再跳转到读寄存器状态,读取指令中指定被比较的寄存器内的值,再跳转到比较状态,将读到的值的指定位段与指令中填写的比较值进行比较,如果相同,则跳转回取指状态,如果不同,则又跳转到读寄存器状态,循环上面的操作,直到比较次数达到动态外设接口矩阵寄存器中设置的最大值或者比较成功,跳转回取指状态。[0151]每一次取指状态下取一条32bit的指令,取指地址都会自动加1,当取指地址大于结束地址时,表示任务执行完毕,状态机跳回空闲状态,等待下一个通信信号到来。[0152]通信信号解码器的主要功能是接收来自动态外设接口矩阵网络的通信信号对应的指令、短触发(short)指令和任务终止指令(stop_task)的触发信号,根据用户预设的映射关系,把不同预订的通道的通信信号指令、短触发(short)指令和任务终止指令(stop_task)对应的任务的起始地址和结束地址送给任务引擎。[0153]参见图12,示例性地,通信信号解码器用于解码通信信号使得任务引擎可以知道从哪个地址取指令,每个任务的地址不同,这样任务引擎就可以将对应任务的指令取出并根据该指令配置外设寄存器。通信信号解码器接收四个指令,其中一个为全部任务终止指令rg_stop_task_addr[11:0],意外的任务终止的话会用到这个全部任务终止指令,以使得外设寄存器回到初始状态,此外通信信号解码器采用多路复用器,多路复用器可以在短触发指令、通信信号对应的指令和任务终止指令中选择一个对应的任务的起始地址和结束地址送给任务引擎,任务引擎就可以将对应任务的指令取出并根据该指令配置外设寄存器令外设执行,选择规则是先到的任务先被选择。如果同时收到,那么任务终止指令对应的任务优先级最高,其次是通信信号对应的指令对应的任务,最后是短触发指令对应的任务。[0154]具体地,通信信号解码器接收的三个通过多路复用器进行选择的指令分别通过对应的功能模块实现,即短触发指令通过短触发信号模块实现,通信信号对应的指令通过网络信号模块实现,任务终止指令通过任务终止模块实现。[0155]通信信号解码器包括:短触发信号模块(short_event_proc)可以根据寄存器rg_short_evt_sel_mask将3个短触发通信信号分别映射到3个任务上,并产生短触发执行(short_event_act)信号,表示短触发通信信号有效,同时把对应的短触发任务(short_task)的起始和结束地址送到多路复用器。[0156]网络信号模块(net_event_proc)可以根据寄存器rg_ch_sel_mask的配置,将32个订阅的网络通道分别映射到3个任务上,并产生网络执行(net_event_act)信号以及任务地址(net_task_addr)信号,表示订阅的网络通道通信信号有效,同时把对应的订阅通道任务的起始和结束地址送到多路复用器。[0157]任务终止模块(stop_event_proc)可以在终止通信信号(stop_event)来时产生终止执行(stop_event_act)信号,表示终止通信信号(stop_event)有效,并将终止任务(stop_task)的起始和结束地址送到多路复用器。因为终止任务仅支持1个,所以不需要映射。[0158]多路复用器根据接收的输入信号(in0、in1、in2以及选择信号sel[0]、sel[1]、sel[2]),获得输出信号,即任务执行(event_act)信号以及初始复原(task_addr[11:0])信号。[0159]参见图13,若网络信号模块输入为32个预订通道(dpim_channel[31:0])的通信信号,经过同步单元(sync)处理后分别跟反相处理(inv)后的每一个任务的rg_ch_sel_mask寄存器(rg_ch_sel_mask[31:0],即图12中的寄存器rg_ch_sel_mask)进行与处理(&)后按位或(|),得到3个1bit的输出结果,检测到上升沿(rise_edge)或者下降沿后(图中仅以上升沿示例),分成两组,一组(即该输出结果)或起来(|)产生网络执行信号,另一组(即该输出结果)作为多路复用器(mux)的选择信号,选择对应的任务起始(net_task_start_addr)和结束地址(net_task_end_addr)送出。[0160]参见图14,若短触发信号模块的输入为3个通信信号(event_in[2:0]),经过同步处理(sync)后分别跟取反相处理(inv)后的每一个任务的rg_short_evt_sel_mask寄存器(rg_short_evt_sel_mask_0[2:0]、rg_short_evt_sel_mask_1[2:0]、rg_short_evt_sel_mask_2[2:0],即图12中的寄存器rg_short_evt_sel_mask)进行与处理(&)后按位或(|),得到3个1bit的输出结果,对输出结果检测到上升沿(rise_edge)或者下降沿后(图中仅以上升沿示例),分成两组,一组(即该输出结果)或(|)起来产生短触发执行信号(short_event_act),另一组(即该输出结果)作为多路复用器(mux)的选择信号,选择对应的任务起始(net_task_start_addr)和结束地址(net_task_end_addr)送出。[0161]参见图15,任务终止模块的输入为1个终止通信信号(stop_event),经过同步处理(sync)后和rg_stop_task_en寄存器(任务终止功能的使能寄存器)相与(&)后,得到1个1bit的输出结果,检测到上升沿(rise_edge)或者下降沿后(图中仅以上升沿示例),产生终止执行信号(stop_event_act)。[0162]在本发明的另一实现方式中,网络信号模块中的输出结果,由任务引擎对输出结果进行上升沿(rise_edge)或者下降沿的检测;短触发信号模块中的输出结果,由任务引擎对输出结果进行上升沿(rise_edge)或者下降沿的检测;任务终止模块中的输出结果,由任务引擎对输出结果进行上升沿(rise_edge)或者下降沿的检测。[0163]本实施例中,上升沿检测或者下降沿检测的目的是检测到脉冲后,指示后续的逻辑可以开始工作,检测到一个输出结果有上升沿或者下降沿存在即可进行后续对输出结果的处理,可以使得外设更准确的执行任务。[0164]本实施例中,上升沿检测或者下降沿检测的目的是指示后续的逻辑在何种条件下可以继续工作,检测到一个输出结果有上升沿或者下降沿则任务引擎才取指令。[0165]例如,一个通信信号只能触发外设执行一次任务,上升沿下降沿检测可以避免一个通信信号使得某一外设执行多次任务。如果没有上升沿下降沿检测,则输出结果一直是高电平,这使得任务引擎不断取指令,则外设会执行多次任务,但是其实控制器只是想让外设执行一次任务。[0166]图16为根据本发明的另一实施例的处理器的结构框图。本实施例的处理器1600包括:处理器核1601和上述任一外设互联装置1602。处理器1601核包括控制器,控制器用于对外设进行控制,外设互联装置用于根据控制器的预先设置,实现外设的互联。[0167]图17为根据本发明的另一实施例的片上系统的结构示意图。本实施例的片上系统1700包括多个处理器1710以及至少两个外设1712。处理器1701为根据上述的处理器。[0168]此外,程序中各步骤的具体实现可以参见上述方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。[0169]需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。[0170]上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cdrom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。[0171]本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。[0172]以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关
技术领域:
:的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。当前第1页12当前第1页12
技术特征:
1.一种外设互联装置,应用于包括至少两个外设的片上系统,所述装置包括:动态外设接口矩阵网络,用于接收所述至少两个外设所产生的通信信号,并将所述通信信号根据通道配置信息分配至不同的通道;至少两个动态外设接口矩阵外包层,每个所述外设都有与其对应的所述动态外设接口矩阵外包层,所述动态外设接口矩阵外包层用于根据通道订阅信息,令订阅所述通道的外设执行所述动态外设接口矩阵网络发送的通信信号所对应的任务;所述通道配置信息、所述通道订阅信息以及所述任务由控制器预先进行配置。2.根据权利要求1所述外设互联装置,其中,所述通道配置信息、所述通道订阅信息以及所述任务由所述控制器通过软件预先进行配置。3.根据权利要求1所述外设互联装置,其中,所述通道配置信息为所述控制器通过动态外设接口矩阵寄存器发送至所述动态外设接口矩阵网络;所述通道订阅信息、所述任务为所述控制器通过所述动态外设接口矩阵寄存器发送至所述动态外设接口矩阵外包层。4.根据权利要求1所述外设互联装置,其中,所述动态外设接口矩阵寄存器与所述控制器之间通过系统总线连接;所述动态外设接口矩阵寄存器与所述动态外设接口矩阵网络之间,以及所述动态外设接口矩阵寄存器与所述动态外设接口矩阵外包层之间通过本地连线连接。5.根据权利要求1所述外设互联装置,其中,每个所述动态外设接口矩阵外包层设置在与其对应的所述外设的内部;或者,所述至少两个动态外设接口矩阵外包层集中设置在任一所述外设的内部;或者,所述至少两个动态外设接口矩阵外包层集中设置在所述外设的外部。6.根据权利要求1所述外设互联装置,其中,所述动态外设接口矩阵网络包括:选择逻辑端口,用于接收所述至少两个外设所产生的通信信号,并根据所述通道配置信息对接收的所述通信信号进行选择,以将选择的通信信号进行发送;通信信号同步脉冲模块,用于接收所述通信信号,并将所述通信信号转换为统一脉宽的脉冲信号;矩阵网络,用于接收所述统一脉宽的脉冲信号,并将所述统一脉宽的脉冲信号发送至根据所述通道配置信息所选择的通道。7.根据权利要求6所述外设互联装置,其中,所述动态外设接口矩阵网络还包括:脉冲扩展模块,用于对各通道所接收的统一脉宽的脉冲信号进行脉冲信号展宽以将脉冲展宽之后的脉冲信号发送至根据所述通道配置信息所选择的通道。8.根据权利要求6或7中任一项所述外设互联装置,其中,所述选择逻辑端口包括多个端口和选择器,至少一个端口根据所述通道配置信息通过所述选择器对接收的至少两个所述通信信号进行选择;所述至少两个通信信号由同一个所述外设产生或者由至少两个不同的所述外设分别产生。9.根据权利要求6或7中任一项所述外设互联装置,其中,所述动态外设接口矩阵网络还包括:中断产生模块,用于当所述选择逻辑端口接收通信信号时,生成中断指令并将所述中断指令发送至所述控制器以通知所述控制器所述选择逻辑端口收到所述通信信号。
10.根据权利要求1至7中任一项所述外设互联装置,其中,所述动态外设接口矩阵外包层,包括:通信信号解码器,用于根据所述通道订阅信息,获得所述动态外设接口矩阵网络发送至所订阅通道的通信信号;任务引擎,用于根据所述通信信号解码器获得的通信信号,获得所述通信信号对应的任务,令所述外设执行所述任务;通信信号产生模块,用于令所述外设产生的通信信号发送至所述动态外设接口矩阵网络。11.根据权利要求10所述外设互联装置,其中,所述通信信号解码器还用于获得所述通信信号对应的任务在指令表中的起始地址和结束地址,所述指令表用于存储各任务对应的指令,所述起始地址和所述结束地址用于指示所述任务所对应的开始执行的指令和结束执行的指令;所述任务引擎具体用于:根据所述起始地址和结束地址,从指令表中获得所述起始地址和所述结束地址对应的指令;对所述指令进行译码,根据译码的所述指令配置外设寄存器,以控制所述外设实现所述任务对应的功能。12.根据权利要求11所述外设互联装置,其中,所述指令表存储在所述动态外设接口矩阵外包层包括的动态外设接口矩阵控制寄存器或者外设的静态存储器中。13.根据权利要求12所述外设互联装置,其中,所述指令表的深度以及所存储的指令的位宽通过所述动态外设接口矩阵控制寄存器或者外设的静态存储器进行设置。14.根据权利要求11所述外设互联装置,其中,当所述动态外设接口矩阵网络通过所述通道发送所述通信信号,所述动态外设接口矩阵外包层的所述任务引擎获得所述外设寄存器的控制权;否则,所述控制器获得所述外设寄存器的控制权。15.根据权利要求14所述外设互联装置,其中,所述动态外设接口矩阵外包层与所述控制器通过多路复用器共享所述外设寄存器的控制权。16.根据权利要求14所述外设互联装置,其中,所述任务引擎通过通用总线协议转换模块挂载在通用总线接口上;当所述动态外设接口矩阵外包层的任务引擎获得所述外设寄存器的控制权,所述通用总线协议转换模块,选择第一总线连接所述外设寄存器;当所述控制器获得所述外设寄存器的控制权,所述通用总线协议转换模块,选择第二总线连接所述外设寄存器,所述第一总线与所述第二总线不同,所述第一总线为高级外设总线,所述第二总线为高级高性能总线。17.根据权利要求11所述外设互联装置,其中,所述指令表支持五种指令:写寄存器命令、位段写寄存器命令、延时等待命令、比较判断命令、位段比较判断命令。18.根据权利要求10所述外设互联装置,其中,所述通信信号解码器还用于接收所述外设发送的短触发指令,所述短触发指令为根据所述外设的触发,令所述外设实现对应的功能,所述短触发指令包括所述外设产生的中断、通信信号或者指示信号中的一种,所述通信信号解码器将所述短触发指令的起始地址和结束地址发送至所述任务引擎。19.根据权利要求18所述外设互联装置,其中,所述通信信号解码器还用于接收任务终
止指令,所述任务终止指令为当前执行的任务被中断时,令所述任务引擎执行下一个任务或者继续执行被中断的任务。20.根据权利要求19所述外设互联装置,其中,所述通信信号解码器包括:网络信号模块,接收预订通道的通信信号,经过同步单元处理后分别跟取反后的每一个任务的寄存器进行与处理以及按位或处理,得到输出结果,对所述输出结果检测到上升沿或者下降沿之后,对所述输出结果或起来产生网络执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;短触发信号模块,接收通信信号,经过同步处理后分别跟取反后的每一个任务的寄存器进行与处理后按位或处理,得到输出结果,对所述输出结果检测到上升沿或者下降沿之后,对所述输出结果或起来产生短触发执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;任务终止模块,接收终止通信信号,经过同步处理后和任务终止功能的使能寄存器相与后,所述输出结果检测到上升沿或者下降沿之后,产生终止执行信号。21.根据权利要求19所述外设互联装置,其中,所述通信信号解码器包括:网络信号模块,接收预订通道的通信信号,经过同步单元处理后分别跟取反后的每一个任务的寄存器进行与处理以及按位或处理,得到输出结果,若所述任务引擎对所述输出结果检测到上升沿或者下降沿,对所述输出结果或起来产生网络执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;短触发信号模块,接收通信信号,经过同步处理后分别跟取反后的每一个任务的寄存器进行与处理后按位或处理,得到输出结果,若所述任务引擎对所述输出结果检测到上升沿或者下降沿,对所述输出结果或起来产生短触发执行信号,另外,所述输出结果还作为多路复用器的选择信号,选择对应的任务起始和结束地址送出;任务终止模块,接收终止通信信号,经过同步处理后和任务终止功能的使能寄存器相与后,若所述任务引擎对所述输出结果检测到上升沿或者下降沿,产生终止执行信号。22.一种处理器,包括:处理器核;以及,根据权利要求1-21任一项所述的外设互联装置;所述处理器核包括控制器,所述控制器用于对所述外设进行控制,所述外设互联装置用于根据所述控制器的预先设置,实现所述外设的互联。23.一种片上系统,包括:多个处理器和至少两个外设,所述处理器为根据权利要求22所述的处理器。
技术总结
本发明实施例提供一种外设互联装置、处理器和片上系统,外设互联装置应用于包括至少两个外设的片上系统,装置包括:动态外设接口矩阵网络,用于接收所述至少两个外设所产生的通信信号,并将所述通信信号根据通道配置信息分配至不同的通道;至少两个动态外设接口矩阵外包层,每个所述外设都有与其对应的所述动态外设接口矩阵外包层,所述动态外设接口矩阵外包层用于根据通道订阅信息,令订阅所述通道的外设执行所述动态外设接口矩阵网络发送的通信信号所对应的任务;所述通道配置信息、所述通道订阅信息以及所述任务由控制器预先进行配置。置。置。
技术研发人员:岳阳 刘征宇 林韬
受保护的技术使用者:深圳市汇顶科技股份有限公司
技术研发日:2023.06.30
技术公布日:2023/8/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:电池能量状态监测方法和电池系统与流程 下一篇:一种土壤污染修复剂的制作方法