片上系统的制作方法

文档序号:19555791发布日期:2019-12-31 15:22阅读:182来源:国知局
片上系统的制作方法

本公开一般涉及设备之间的路由。



背景技术:

需要能够管理这种路由,例如根据地址优先级和/或服务质量(qos)标准,并且根据所设想的应用灵活地进行管理。具体地,不同的应用可以采用不同的设备和/或可以根据源设备的性质要求待分配的不同的寻址优先级标准。



技术实现要素:

在第一方面,提供了一种片上系统,其包括:互连电路,包括输入接口和多个输出接口;源设备,被耦合到输入接口;目标设备,包括扇区化可寻址存储器空间和多个访问端口,多个访问端口分别被耦合到多个输出接口,源设备被配置为将包含地址字的事务递送到目标设备;以及可编程控制模块,被耦合到源设备,并且可编程控制模块包括:表,被配置为:一旦可编程控制模块被编程就指示针对扇区化可寻址存储器空间的每个扇区的多个访问端口中的一个访问端口;和控制电路,被配置为:在存在源自源设备的事务的情况下,向互联电路递送控制字,控制字基于在事务中包含的地址字而指定在表中所指示的所选择的访问端口,其中互连电路被配置为:将事务从输入接口路由到被耦合到所选择的访问端口的相应的输出接口,以及将事务递送到所选择的访问端口;并且其中被递送到所选择的访问端口的事务的内容与由源设备递送的事务的内容相同,而不管由控制字指定的所选择的访问端口。

根据一个实施例,可编程控制模块可由源设备编程。

根据一个实施例,片上系统还包括多个其他源设备,多个其他源设备分别被耦合到多个对应的其他控制模块,互连电路包括多个其他输入接口,多个其他输入接口分别被耦合到多个其他源设备,其中多个对应的其他控制模块中的每个对应的其他控制模块可由多个其他源设备中的一个其他源设备编程。

根据一个实施例,多个其他源设备中的一个其他源设备包括可编程核或微处理器。

根据一个实施例,多个其他源设备中的一个其他源设备合并软件应用,软件应用包含旨在对在多个对应的其他控制模块中每个对应的其他控制模块中所包含的每个表进行编程的指令。

根据一个实施例,目标设备包括多端口存储器。

在第二方面,提供了一种片上系统,其包括:互连电路,包括输入接口和多个输出接口;源设备,被耦合到输入接口;目标设备,包括扇区化可寻址存储器空间和多个访问端口,多个访问端口分别被耦合到多个输出接口,源设备被配置为向目标设备递送包含地址字的事务;以及可编程控制模块,被耦合到源设备,并且可编程控制模块包括:表,被配置为:一旦可编程控制模块被编程就指示针对扇区化可寻址存储器空间的每个扇区的多个访问端口中的一个访问端口;和控制电路,被配置为:在存在源自源设备的事务的情况下,向互联电路递送控制字,控制字基于在事务中包含的地址字而指定在表中所指示的所选择的访问端口,其中互连电路被配置为:将事务从输入接口路由到被耦合到所选择的访问端口的相应的输出接口,以及将事务递送到所选择的访问端口;其中被递送到所选择的访问端口的事务的内容与由源设备递送的事务的内容相同,而不管由控制字指定的所选择的访问端口;其中事务与控制字一起被路由到相应的输出接口;并且其中相应的输出接口被配置为不将控制字递送到所选择的访问端口。

根据一个实施例,事务被合并在n个比特的主字内,并且其中控制字包括m个附加比特,m的值至少等于一并且取决于多个访问端口的数目。

根据一个实施例,控制电路被配置为调整m个附加比特的值,以便基于在事务中包含的地址字并且基于表来指定所选择的访问端口,其中输入接口被配置为接收包括主字和控制字的n+m个比特的总字,其中互连电路被配置为将总字路由到相应的输出接口,并且其中相应的输出接口被配置为不将控制字递送到所选择的访问端口。

根据一个实施例,输入接口通过n个轨道的输入总线被耦合到源设备,并且输入接口通过m个轨道的控制总线被耦合到可编程控制模块,其中n+m个比特的总字在互连电路内在n+m个轨道的内部总线的网络上进行路由,其中相应的输出接口被配置为接收n+m个比特的内部总线并且通过n个轨道的输出总线被耦合到所选择的访问端口,其中通向相应的输出接口的n+m个轨道的内部总线的m个轨道未被连接到所选择的访问端口。

附图说明

通过对实现方式和实施例的完全非限制性详细描述以及附图,本实用新型的其他优点和特征将变得显而易见,其中:

图1至图6示意性地示出了本实用新型的实现方式和实施例。

具体实施方式

根据一个方面,提出了一种片上系统,其包括互连电路,该互连电路包括至少一个输入接口和多个输出接口。至少一个源设备被耦合到输入接口。至少一个目标设备(例如多端口存储器)具有扇区化的可寻址空间和多个访问端口,该多个访问端口分别被耦合到输出接口。至少一个源设备被配置为将包含地址字的事务(例如,读或写事务)递送到至少一个目标设备。

当提供多个源设备时,由不同源设备发出的事务可以顺序地或同时地被发出。

当提供多个目标设备时,所有目标设备都可以接收源自所有源设备的事务,或者实际上这些目标设备中的某些目标设备可以仅从源设备中的某些源设备接收事务。

片上系统还包含至少一个可编程控制模块,该至少一个可编程控制模块被耦合到至少一个源设备。

该控制模块包括表(查找表),该表被配置为一旦控制模块被编程就指示针对可寻址空间的每个扇区的访问端口中的一个访问端口。

该控制模块还包括控制电路,该控制电路能够在存在源自至少一个源设备的每个事务的情况下,向互连电路递送控制字,该控制字基于在事务中包含的地址字而指定在表中所指示的访问端口。

然后,互连电路被配置为将事务从至少一个输入接口路由到被耦合到该访问端口的输出接口,并且将事务递送到访问端口,被递送到访问端口的每个事务的内容与由源设备递送的对应事务的内容相同,无论所选择的访问端口如何。

因此,互连电路被配置为利用每个事务接收控制字并且根据该控制字的值将事务路由到访问端口中一个访问端口。

此外,根据所设想的应用,即,例如根据一个或多个源设备的性质以及根据向源自一个或多个源设备的某些寻址事务分配优先级的需要,用户将可能为每个源设备编程相关联的表的内容,以便将一个或多个目标设备的访问端口分配给对应目标设备的寻址空间的每个扇区。

因此,对于源自源设备的每个事务,在控制模块中所包含的控制电路将能够验证在事务中包含的地址字以哪个扇区为目标,并且调整对应控制字的值,以便指定与该扇区相关联的、并且在对应的表中提及的访问端口。

然后,在存在控制字的这种值的情况下,互连电路被配置为将事务从至少一个输入接口路由到输出接口,该输出接口被耦合到该所选择的访问端口。

此外,无论针对源自源设备的事务所选择的访问端口如何,被递送到访问端口的事务内容与由源设备递送的事务内容相同。换句话说,如果例如目标设备是双端口存储器,并且如果事务包括存储器写地址,则事务必须不被控制字中断,即,无论存储器的访问端口如何,其内容必须相同,以确保事务被路由到存储器的存储器空间中的相同地址,而不管接收其的访问端口如何。

因此,相同的片上系统可以用于各种应用,例如需要分配不同的优先级,因此需要分配不同的访问端口。

根据一种实现方式,无论所选择的访问端口如何,都确保被递送到访问端口的每个事务的内容与由源设备递送的对应事务的内容相同的特别简单的方式是:提供与控制字一起要被路由到对应的输出接口的每个事务以及要被配置为不将控制字递送到对应的访问端口的输出接口。

根据一个实施例,每个事务被合并到n个比特的主字中,而控制字包括m个附加比特。

m的值至少等于1,并且取决于要选择的访问端口的数目。

因此,如果访问端口的数目等于2,则m将可能等于1。如果访问端口的数目等于3或4,则m将等于2。

每个控制电路被配置为调整m个比特的值,以便基于对应的表和在事务中包含的地址字来指定访问端口。

然后,每个输入接口被配置为接收包括主字和控制字的n+m个比特的总字。

然后,互连电路有利地被配置为将总字路由到对应的输出接口,并且对应的输出接口有利地被配置为不将控制字递送到访问端口。

根据一个实施例,每个输入接口通过n个轨道的输入总线耦合到对应的源设备,并且通过m个轨道的控制总线耦合到对应的控制模块。

n+m个比特的总字旨在在互连电路内在n+m个轨道的总线的内部网络上进行路由。

每个输出接口被配置为接收n+m个比特的内部总线,并且通过n个轨道的输出总线耦合到对应的访问端口,通向对应的输出接口的n+m个轨道的内部总线的m个轨道未被连接到访问端口。

控制模块可由至少一个源设备编程是可能的。

当多个源设备分别被耦合到多个对应的控制模块,互连电路然后包括分别被耦合到源设备的多个输入接口时,每个控制模块可以由源设备中的一个源设备编程。

能够编程每个控制模块的源设备可以包括可编程核或微处理器。

该源设备可以有利地合并软件应用,该软件应用包含旨在对在每个控制模块中所包含的每个表进行编程的指令。

至少一个目标设备可以包括多端口存储器。

根据另一方面,提出了一种用于管理片上系统内的事务在递送事务的至少一个源设备与具有扇区化可寻址空间和多个访问端口的至少一个目标设备之间的路由的方法,每个事务都包含地址字。

根据该方面的方法包括:用包括至少一个输入接口和多个输出接口的互连电路配备片上系统;将至少一个输入接口分别耦合到至少一个源设备,并且将输出接口分别耦合到访问端口;配置每个输入接口,使得其可以接收源自对应的源设备的每个事务以及与该事务相关联的可编程值的控制字;配置互连电路,使得每个事务及其控制字根据控制字的值被路由到输出接口中的一个输出接口;配置每个输出接口,使得对应的事务被递送到被耦合到该输出接口的访问端口,并且对应的控制字不限于该访问端口;以及对于每个源设备,编程指示用于存储器空间的每个扇区的访问端口中的一个访问端口的表,并且对于每个事务,根据在事务中包含的地址字和表的内容来调整控制字的值。

根据一种实现方式,方法包括:将包含用于对表进行编程的指令的软件应用加载到至少一个源设备中,以及通过执行软件应用来对表进行编程。

根据一种实现方式,适用于管理片上系统内的事务在递送事务的多个源设备与至少一个目标设备之间的路由,方法包括:将包含用于对与每个源设备相关联的每个表进行编程的指令的软件应用加载到源设备中的至少一个源设备中,以及通过执行软件应用来对表进行编程。

包含软件应用程序的源设备可以包括可编程核或微处理器。

至少一个目标设备可以包括多端口存储器。

本实用新型的实现方式和实施例涉及在片上系统(soc)内事务在至少一个源设备和至少一个目标设备(例如但非限制性地,多端口存储器)之间的路由,并且更具体地涉及以寻址目标设备的扇区化存储器空间为目标的这种事务的路由管理。

在图1中,附图标记1指定片上系统,该片上系统包括可以是不同类型/性质的多个源设备es1-esp。

因此,设备中的一个设备(例如设备es1)可以是lcd屏幕控制器,另一设备(例如设备es2)可以是用于信号处理的处理器,另一源设备可以是例如解码器,并且另一源设备(例如设备esp)可以是微处理器,例如由stmicroelectronics公司以编号stm32销售的微处理器。

片上系统1还包括至少一个目标设备ec,例如多端口随机存取存储器,这里是包括三个访问端口pa0、pa1和pa2的存储器。

当然,具有不同或相同性质的多个目标设备可以被设置在片上系统1上。

为了将源设备esi与目标设备ec电路互连,片上系统1还包括互连电路icn。

该互连电路icn包括输入接口ie1-iep和输出接口is0-is2,输入接口ie1-iep分别被耦合到源设备es1-esp,输出接口is0-is2分别被耦合到目标设备ec的访问端口pa0-pa2。

这种互连电路icn能够在各种源设备和一个或多个目标设备之间路由事务。

事务可以例如是存储器ec中的写事务或读事务。

这种互连电路icn(通常是多层互连电路)的结构以及允许在互连电路内部的事务的路由和交换的协议对于本领域技术人员来说是公知的。

例如,后者可以参考由venkateswararao等人的文章,题为“aframeworkonambabusbasedcommunicationarchitecturetoimprovetherealtimecomputingperformanceinmpsoc”,internationaljournalofcomputerapplications(0975-8887),第91卷-第5期,2014年4月;或者由a.gerstlauer在2015年给出的这些互连电路的一般介绍,可在因特网地址获得:http://users.ece.utexas.edu/~gerstl/ee382v_f14/lectures/lecture_12.pdf。

此外,通过非限制性指示,例如可以使用公司arm以编号nic-400(版本r0p3)销售的互连。

如图1所示,互连电路icn的每个输入接口iei通过n比特总线bsi连接到对应的/相应的源设备esi。

在这里描述的示例中,总线是32比特总线。

源自源设备esi的每个事务被合并到被称为“主字”的n比特字中,该字在总线bsi上进行传输。

如本领域已知的,事务(例如写事务)特别包含地址字段和控制比特以及要写入的数据的字段。

例如,在事务中包含的地址可以以16比特进行编码。

此外,片上系统1包括控制模块mcmi,下面将给出其结构和功能的更多细节,控制模块mcmi分别被分配和耦合到各种源设备es1-esp,并且由m比特控制总线bc1-bcp分别连接到对应的输入接口ie1-iep。

因此,输入接口ie1-iep中的每个输入接口被耦合到n+m比特总线。

每个总线bci的m的大小取决于一个或多个目标设备ec的访问端口的数目。

在当前情况下,由于设备ec具有三个访问端口pa0、pa1和pa2,因此对于设备e,m等于2。

因此,每个控制模块递送形成控制字的2个比特,该控制字将在对应的总线bci上与包含事务的32比特主字一起传输。

如将在下面更详细地看到的,控制模块mcmi是可编程的。

在这里描述的示例中,控制模块由源设备中的一个源设备进行编程,在当前情况下是源设备esp,其在此例如是stm32微处理器。

32比特主字和2比特控制字形成34比特总字。

通常,各种34比特总字bsgi通过n+m轨道内部总线的网络传输到各种输出接口is0-is2。

在这里描述的示例中(n=32并且m=2),各种34比特总字bsgi通过34轨道内部总线的网络传输到各种输出接口is0-is2。

因此,每个输出接口被配置为接收n+m比特内部总线(在该示例中为34比特总线),在当前情况下,对于接口is0为内部总线bsgs0,对于接口is1为内部总线bsgs1,并且对于接口is2为内部总线bsgs2。

相反,如图1所示,只有旨在包含事务的总线bsgs0、bsgs1和bsgs2的n个轨道(在该示例中n=32)被连接到访问端口pa0、pa1、pa2。

换句话说,传输m比特控制字(这里是2比特控制字)的m个轨道(这里是第33轨道和第34轨道)没有被连接到对应的访问端口。

因此,无论所选择的访问端口如何,被递送到访问端口的事务都与源自源设备的事务相同。

根据由对应控制模块mcmi递送的控制字的值,源自对应源设备的事务将被路由到输出接口is0,因此被路由到访问端口pa0,或者被路由到出口接口is1,因此被路由到访问端口pa1,或者被路由到出口接口is2,因此被路由到访问端口pa2。

因此,作为非限制性示例,在m=2的情况下,如果控制字的值等于比特序列00,则事务将被路由到访问端口pa0,而如果控制字的值等于比特序列01,则事务将被路由到访问端口pa1,并且如果控制字的值等于比特序列10,则事务将被路由到访问端口pa2。

实际上,在实践中,例如,控制比特是在事务中包含的地址字中的两个最高有效比特。

因此,如果在事务中包含的地址字是16比特字,则在互连电路icn的内部总线的网络上传输的地址字是18比特字。因此,互连电路icn将18比特字解释为18比特地址。然后,互连电路icn被配置为根据两个最高有效比特的值将该18比特字路由到输出接口is0或输出接口is1或输出接口is2。

互连电路icn以常规方式进行配置,例如以vhdl。然后,该vhdl被转换成硬件电路,该硬件电路包括控制电路、开关和总线,并且该硬件电路的各种路径由互连电路icn的配置进行限定。

现在更具体地参考图2至图5,以详细说明事务的路由的管理的示例。

目标元件ec(在当前情况下是多端口存储器)包括被扇区化或分区的可寻址存储器空间emm。因此,在图2所示的示例中,存储器空间emm包括扇区sct0-sctk。扇区的数目取决于存储器空间的大小。

根据所设想的应用和/或一个或多个源元件的性质,一个或多个扇区可以相对于被分配低优先级的其他扇区而被分配高优先级。优先级顺序可以例如取决于存储在扇区中的内容。因此,如果一个或多个扇区包括必须由一个或多个源元件(例如微处理器)始终可访问的程序代码,则无论互连电路icn内部的通信量密度如何,那么涉及存储器空间的一个或多个扇区将被分配为高优先级。

此外,目标设备ec的访问端口中的一个访问端口将例如被分配给这些优先级扇区,而其他扇区将与其他访问端口相关联。

如图3所示,在扇区和访问端口之间的这种对应关系被存储在表(查找表)tbi中。实践中,每个源设备有一个表tbi。表的内容可以因表而异,或者在表中的至少某些表之间是相同的。

如图4所示,表tbi属于控制模块mcmi,控制模块mcmi与源元件esi相关联并且被耦合到源元件esi。

该表tbi可由源设备中的一个源设备(在本情况下是源设备esp)进行编程,该源设备是可编程核或微处理器。

控制模块mcmi还包括控制电路ccmi,其例如使用逻辑电路产生,并且被配置为与表tbi通信并且接收在源自源元件esi的每个事务ti中所包含的地址字adri。

此外,如图5所示,根据地址字adri,控制电路ccmi确定该地址字adri对应于存储器空间emm的哪个扇区,并且因此确定事务ti旨在针对的访问端口。

知道了目的地访问端口(例如访问端口pa2),控制电路ccmi然后被配置为生成将在控制总线bci上递送的控制字mci的值。

在当前情况下,由于指定了访问端口pa2,所以控制字mci的值等于比特序列10,从而允许互连电路icn将事务ti路由到输出接口is2并且因此路由到访问端口pa2。

由用户根据设想的应用对表tbi进行编程,允许片上系统在使用时具有很大的灵活性。因此,不仅可以根据应用改变优先级顺序,而且其他应用还可以为一个或多个源设备分配例如针对目标设备的存储器空间emm的所有扇区的给定访问端口。然后,这相当于将一个访问端口分配给一个源设备,并且将源自该源设备的所有事务路由到该访问端口。

因此,根据源设备的性质,可以决定将所有事务从源设备路由到一个访问端口,并且例如将源自其他源设备的所有事务路由到一个或多个其他访问端口。

在图6中图示了管理事务路由的一个示例。

在第一步骤s20中,互连电路icn被耦合到各种源设备esi、各种访问端口paj和控制模块mcmi。

接下来,在步骤s21中,互连电路icn被配置以使得到访问端口的事务的路由取决于与该事务相关联的控制字的逻辑值。

尽管在图6中步骤s21被示出在步骤s20之后,但是当然将完全可能首先配置互连电路icn以便以硬件形式产生它,然后将该互连电路icn与源设备esi、访问端口paj和控制模块mcmi耦合。

在步骤s22中,包含用于对控制模块mcmi的表tbi进行编程的指令的软件应用被加载到源设备esp中,该源设备esp在当前情况下是微处理器。

因此,当执行软件应用(步骤s23)时,模块mcmi(更特别地,表tbi)被编程(步骤s24)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1