一种片上数字模板系统dtsoc的制作方法

文档序号:6354507阅读:379来源:国知局
专利名称:一种片上数字模板系统dtsoc的制作方法
技术领域
本发明涉及集成电路技术领域,尤其涉及一种片上数字模板系统(DTSOC,DigitalTemplate SystemOn Chip)。
背景技术
FPGA(Field-Programmable Gate Array,现场可编程门阵列)是面向逻辑设计的可编程系统,一般开发者使用各种HDL (硬件描述语言)来编写FPGA程序,由FPGA的开发工具来自动实现在FPGA上的综合、布局布线并产生最终的器件配置代码。其间还涉及功能仿真、时序分析(最高时钟频率估计等),布局布线后延时信息反标注条件下的后仿真(时序仿真)等环节。FPGA开发流程就像一个高度压缩的专用集成电路(ASIC)开发,当然FPGA后端流程只是在已有的可配置逻辑块、选通矩阵、SRAM及各种嵌入式资源上进行的,一般都由开发工具自动完成的。在FPGA中连接可配置逻辑块(CLB)以实现并发工作的载体是选通矩阵(switchmatrix),选通矩阵被用来组合CLB之间“硬连线”。对较复杂的应用系统,FPGA通过层级化、结构化、多模块的程序来分解设计任务。层级和模块的划分并没有明确的限制,是自由的。在FPGA开发平台后端流程中,模块和层级结构将被打开展平,然后才能布局布线。在FPGA应用开发中,在程序编写时,逻辑资源的复用是十分复杂、耗时最多的工作。FPGA有很长的演化历史,甚至可以追溯到中大规模集成电路工艺时期的可编程逻辑阵列(PAL)。实际上FPGA结构最基本的部分变化不大,虽然为适应SOPC (可编程片上系统)的要求,FPGA除了线性集成了更多的CLB,改进了选通“连线”的速度,还增加了大量的嵌入式资源,如块存储器、乘法器、专用的高速IO接口,甚至还直接嵌入CPU硬核。

发明内容
本发明实施例提供一种片上数字模板系统DTS0C,以提供一种面向C程序的可编程系统。该系统能够应用于实现各种高带宽实时数字信号并行处理、多个独立工作的数字组件功能以及逻辑级的IO交互控制,此类应用与FPGA应用领域部分类似,但结构完全不同。一方面,本发明实施例提供了一种片上数字模板系统DTS0C,是一种面向C程序的可编程系统,所述片上数字模板系统DTSOC包括输入输出IO接口电路、通讯区和系统区,其中,所述通讯区,位于所述系统区外围,并与所述IO接口电路相连,用于分组配置IO状态的逻辑,为外设与所述系统区交换数据提供双向的传输、缓冲的通道;所述通讯区的多模式缓冲为所述系统区以编程数据处理的方式处理IO接口电路的时序控制提供缓冲、映射及转换支持;所述系统区,用于通过所述通讯区、所述IO接口电路与外设建立各种交互关系,对IO交互进行控制并承担数据处理功能,其中,所述系统区包括一个系统配置单元SFU、多个后台处理单元BPU、展开层子系统和数据软交换中心SDE,其中所述系统配置单元SFU,用于接受来自外部中央处理器CPU的指令和数据,或者按CPU的指令向CPU上传数据;DTS0C的各层级、各区域的配置代码通过所述SFU从外部非易失程序存储器中读取;所述SFU也是DTSOC系统级程序的执行主体;所述后台处理单元BPU,用于在所述SFU配置、控制下成为一个或几个独立应用功能的次级主处理器,执行应用功能中被编为后台程序的部分,同时会负责其所辖的下一层多个可编程处理元PPC的配置、控制、调度;
所述展开层子系统,包含多个不同类别可编程处理元PPC,皆属处理器架构,有微型指令集,可存放程序,通过执行其规定类功能范围内、指令集范围内编制的程序来承担计算、传输、存储、控制,应用程序会在该层中多个PPC中展开分布,为用于实现高带宽实时数字信号处理、多个并存的独立数字组件功能的载体;所述数据软交换中心SDE,用于在DTSOC系统中连接所述BPU、所述PPC协同并行工作,是按照附加在数据上的标识码的指引来自动执行在SDE多个数据口上的任意点对点的数据交换,在所述SDE交换的数据是等位宽的。可选的,在本发明一实施例中,所述系统区内并无全局总线所述SDE是在DTSOC系统下不同层级、相同层级的处理单元之间建立联系的渠道,在DTSOC系统中分布的多个存储器之间的数据交换、不同层级处理单元之间的消息交互以及展开层内子域之间、子域内的数据交换都是通过不同类型SDE进行的;所述系统区也没有全局同步时钟SDE必须能处理同频异步时钟域之间的数据交换;此两个特点意味着设计实施本发明的集成电路产品的数字部分时,并无复杂的全局时序收敛难点问题。可选的,在本发明一实施例中,所述SDE数据交换使用的标识码由两段数值组成一段是路径域数值,该路径域数值按SDE的规则给出到达SDE的输出数据端口也就是目的功能单元入口的SDE路径,一旦数据在SDE中传输完成,路径域数值就失去了效用,目的功能单元将忽略路径域数值;另一段是代号域数值,当一个目的功能单元的一个入口接收到多个不同属性的数据时,标识码的代号域数值就是目的功能单元识别这些数据的根据,更确切的说,标识码中代号部分相当于数学中的变量名。可选的,在本发明一实施例中,所述SDE的标准结构基元为自动数据交换基元ADEC,所有SDE由相同类型的ADEC组合交联而成,如果以分离的双向数据口为一个数据口单位,每个ADEC —般有固定的k个数据外挂口,和k/4或k/2个数据中转口,其中k是4的倍数;ADEC又分两种基本类型单区型和双区型。可选的,在本发明一实施例中,所述展开层子系统的基本分区数据管理域和数据处理域;数据管理域被细分为任务管理子域和后台管理子域、数据处理域被细分为非乘法数据处理子域和乘法核心子域;所述展开层子系统包含的多个不同类别PPC具体包括任务数据管理可编程处理元TDM-PPC,是数据管理域之任务管理子域的专属PPC ;TDM-PPC与数据处理域交界,为其直接提供缓冲数据的输入输出服务,所有TDM-PPC也可称为前台数据管理PPC ;TDM-PPC还与后台管理子域交界,与后台管理PPC形成数据管理的结构性分工;TDM-PPC还与上位机BPU有双向消息互通管道,上位机BPU对展开层的各种控制、调度都是通过TDM-PPC来实施,而BPU接收的展开层消息也是由TDM-PPC发出或转送的;
后台数据管理可编程处理元BDM-PPC,是数据管理域之后台管理子域的专属PPC ;每个BDM-PPC都有一个公共SRAM,对内BDM-PPC起到SRAM可编程管理器的作用,负责数据的存取、维护;BDM-PPC并不直接服务于数据处理,服务的对象是任务性数据管理,为其提供一定程度数据抽象任务数据管理不用关心数据在某个SRAM中的存储细节,与TDM-PPC的数据通道管理为同名缓冲数据在不同的公共SRAM上存取提供抽象相结合,为数据处理域提供完全的数据抽象;BDM-PPC还可以接受通过BPU/TDM-PPC转送的SFU指令,与另一个BDM-PPC协同管理公共SRAM之间的数据DMA操作;BDM_PPC内核采用双线程架构BDM_PPC内核轮流独立执行数据存储线程和数据输出线程以适应两者的异步关系;数据处理可编程处理元DP-PPC,是非乘法数据处理子域的专属PPC ;在DP-PPC可存放小段数据处理程序,能在极高的时钟频率下反复执行之;在展开层子系统之非乘法数据处理子域内大量DP-PPC通过单区型SDE连接起来,可以将数据处理程序展开分散到多个DP-PPC中以获得极高的DSP处理带宽;DP-PPC可工作在多种模式下而呈现多种形态;在模式配置后,在连续的运行过程中,DP-PPC只能工作在一个模式下,呈现一种形态;DP-PPC的工作子模式包括一般工作模式、延迟线模式、数据组合模式、单精度浮点计算模式、循环冗余码处理模式;其中的一般工作模式是片面的、微型的处理器的工作模式,是DP-PPC的基本工作模式,大多数DP-PPC的结构是优先按基本模式设计的;其操作有寄存器之间传输、布尔逻辑处理、部分和处理、部分桶式移位及冗余位消减处理;乘法计算可编程处理元MP-PPC,是乘法核心子域的专属PPC ;MP_PPC在固定提供I个SbitXSbit无符号乘法计算外,还能识别不同标识码的输入数据对,并对应产生若干个返回数据的标识码。可选的,在本发明一实施例中,所述PPC为双时钟域结构,包括PPC外围系统时钟域和PPC内核高倍率处理时钟域在PPC内都有一个独立的时钟发生器,产生的处理域时钟是系统时钟沿触发的非独立高倍频脉冲串,且脉冲的宽度、脉冲数目是可配置的;在PPC外围系统时钟域有一个工作在系统时钟域的较短的总线,用于PPC内核访问外围各特殊功能模块的可寻址寄存器用,此总线不能延伸到PPC独立单元外,也对PPC内核没有作用,PPC内核寄存器与外围寄存器是分开独立编址的;PPC内核是不能直接访问外围编址寄存器,PPC内核只能通过读写界面寄存器来间接访问外围寄存器或发送数据、消息;所述DP-PPC同样工作在两个时钟域上一个是系统时钟域,另一个是高倍率处理时钟域;DP-PPC与外部系统交换数据是在DP-PPC的系统时钟域中进行,交换的数据包括待处理的数据以及以数据形态表示的状态、分支控制信息,系统时钟是不能轻易改变,在处理时钟域,DP-PPC内核随着刷新的输入数据反复执行内部的小段程序,这个过程是独立于系统的其他部分的,也是为系统其他部分不可见的。可选的,在本发明一实施例中,所述DP-PPC面向一些复杂的展开层应用程序时,相互协同的多个DP-PPC是以不同的工作模式出现,通过以DP-PPC的各种工作模式各自的较小操作域为参照基准,复杂的展开层应用程序等效重组为限制在若干个小操作域内实施的多个分类片段,并且由多个DP-PPC以不同的工作模式来分工承担复杂程序中的分类片段。、
可选的,在本发明一实施例中,所述DTSOC系统的展开层子系统的非乘法数据处理子域内,配置若干个DP-PPC协同执行一个应用程序的数据处理部分,协同的方式不是接受一个外在的控制器来管理,而是基于规则性的数据驱动机制,数据驱动机制有两个层面的含义在处于工作状态的DP-PPC内部层面,是由外部输入数据触发DP-PPC预存的小段程序的顺序执行的,当程序即将处理的输入数据未到时,DP-PPC将停顿下来等待输入数据,一旦输入数据被处理一次就视为无效,DP-PPC等待新的外部输入数据以触发新一次的程序执行,此过程不断重复;在DP-PPC之间的层面,各DP-PPC是以交换粘连标识码的标准格式数据来实现交联的,在DP-PPC交联层面必须遵循交联数据唯一路径规则,即一个源端DP-PPC输出的交联数据只能传送给一个目的DP-PPC,而不能再传送给其他目的DP-PPC ;所述DP-PPC的运行是基于数据驱动机制,加上经由SDE的数据传输的标识码机制,意味着DP-PPC之间协同没有时序紧约束问题;所述DP-PPC的分支控制也是通过数据驱动机制实现的,即前一处理环节产生不同代号的数据触发一个DP-PPC内不同独立程序段的执行,或者触发不同的DP-PPC工作;所述DP-PPC内核只能执行顺序程序段,程序中分支控制由DP-PPC外围系统时钟域模块分工处理,这个结构安排极有利于DP-PPC内核硬件逻辑能达到极致工作频率。可选的,在本发明一实施例中,所述DP-PPC在一般工作模式下指令由5个并列的维操作码组成,表示可并行执行5种指定操作,且指令无常规的操作数,构成所有指令的5个维操作均是原子操作,原子操作的意义指其基本不能分解为其他原子操作的组合形态,所有维操作仅发生在临近的寄存器之间。上述技术方案具有如下有益效果本发明实施例是一种面向C程序的通用可编程系统,易于开发,并行处理效率高,依据本发明实施的集成电路产品可作为各种复杂电子系统的基础部件(如DSP、FPGA的作用)。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1-1为本发明实施例从顶层看DTSOC芯片是由通讯区、系统区组成;图1-2为本发明实施例均等的IO形式分组的形成;图1-3为本发明实施例三种IO功能分组类型;图1-4为本发明实施例同功能域IO组由若干个IO功能分组构成;图1-5为本发明实施例DTSOC体系的端口单元逻辑原理框图;图1-6为本发明实施例DTSOC通讯区顶层结构框图;图1-7为本发明实施例IO形式分组的端口单元组与接口缓冲及控制器之间的界面信号;图1-8为本发明实施例IO形式分组的接口缓冲及控制器的顶层框图;图1-9为本发明实施例输入、输出绑定信号的选择; 图1-10为本发明实施例接口缓冲器由4个分离的锁存器阵列组成;
图1-11为本发明实施例 接口缓冲器各种配置示例;
图1-12为本发明实施例接口缓冲器隔离了对系统区的同步锁定;图1-13为本发明实施例起弥补两种分组错位作用的选通对接器及单元结构;图1-14为本发明实施例数据对接处理单元的内部结构及外接口图;图2-1为本发明实施例DTSOC系统区的三层结构;图2-2为本发明实施例多个数据经不同路径、延迟传输到同一目的地示意图;图2-3为本发明实施例ADEC单区基本型的端口示意图;图2-4为本发明实施例通过上层ADEC实现不同ADEC的外挂口之间的数据交换;图2-5为本发明实施例ADEC双区基本型的端口示意图;图2-6为本发明实施例通过插入延迟环节补偿传输数据口之间的距离不等造成的延迟不均衡;图2-7为本发明实施例DTSOC版图中“坚硬”的SC(标准单元)和“柔软”的SDE ;图2-8为本发明实施例基于4-1单区基本型ADEC组成的三层单区型SDE ;图2-9为本发明实施例通过降低输出数据率来实现同源异步时钟之间的数据交换;图2-10为本发明实施例当输入模块的同源异步时钟滞后输出模块时钟时的数据传输波形;图2-11为本发明实施例当输入模块的同源异步时钟超前输出模块时钟时的数据传输波形;图2-12为本发明实施例BPU简略结构图;图2-13为本发明实施例SFU的顶层简略图;图2-14为本发明实施例DTSOC系统区展开层顶层结构框图;图2-15为本发明实施例数据处理域的两个子域结构示意图;图2-16为本发明实施例DTOSC系统区展开层子系统的架构剖面;图2-17为本发明实施例非乘法数据处理子域内大量DP-PPC由单区型SDE交联在一起;图2-18为本发明实施例TDM-PPC对同名多存储源数据抽象的关键作用;图2-19为本发明实施例DTSOC体系广义展开层子系统的架构剖面;图3-1-1为本发明实施例沿触发高倍率时钟发生器的逻辑原理简图;图3-1-2为本发明实施例PPC的双时钟域通用结构;图3-1-3为本发明实施例PPC处理时钟域与系统时钟域数据交换需要足够的建立时间;图3-2-1为本发明实施例TDM-PPC顶层框图;图3-2-2为本发明实施例TDM-PPC的消息识别及发送模块参数意义示意图;图3-2-3为本发明实施例TDM-PPC内核结构及接口简图;图3-3-1为本发明实施例BDM-PPC顶层框图;图3-3-2为本发明实施例BDM-PPC的输入预处理模块可配置参数的意义;图3-3-3为本发明实施例存储处理模块逻辑原理图;图3-3-4为本发明实施例BDM-PPC的输出处理模块结构框图3-3-5为本发明实施例BDM-PPC双架构线程内核结构及接口简图;图3-3-6为本发明实施例边界DP-BBC通讯功能略图;图3-4-1为本发明实施例DP-PPC协同产生的等效操作域的光谱图;图3-4-2为本发明实施例DP-PPC处理分支程序的两个基本路径;图3-4-3为本发明实施例4-1、4_2单区基本型ADEC接口框图;图3-4-4为本发明实施例子域SDE的交叠式两层结构;图3-4-5为本发明实施例DP-PPC的顶层结构框图;
图3-4-6为本发明实施例外围数据传输通道模块的数据通路结构;图3-4-7为本发明实施例在外围传输通道内4种中转中继数据传输的模式;图3-4-8为本发明实施例数据驱动控制模块输入部分框图及波形图;图3-4-9为本发明实施例数据驱动控制模块输出部分(包含分支控制)框图;图3-4-10为本发明实施例一般处理模式下DP-PPC内核12个编址寄存器矩阵式布局;图3-4-11为本发明实施例标准二进制数据与冗余格式二进制数据的部分和4bit位区逻辑图;图3-4-12为本发明实施例双冗余格式二进制数据的部分和4bit位区逻辑图;图3-4-13为本发明实施例4bit位区冗余位消减逻辑;图3-4-14为本发明实施例16bit数据冗余位消减关键路径部分逻辑及布局;图3-4-15为本发明实施例一般处理模式下DP-PPC内核算术逻辑资源分布图;图3-4-16为本发明实施例借用右移实现左移时源数据和结果数据的错位;图3-4-17为本发明实施例一般处理模式下12个内核寄存器传输的局部性不意图;图3-4-18为本发明实施例DP-PPC内核顶层结构框图;图3-4-19为本发明实施例3级缓冲2级译码的DP-PPC内核指令处理逻辑;图3-4-20为本发明实施例位于3、4级主路径寄存器2个16bit的数据组合逻辑;图3-4-21为本发明实施例数据整理模式下DP-PPC内核逻辑资源分布图;图3-4-22为本发明实施例子域内中间数据的生命太长和复用的实例;图3-4-23为本发明实施例插入DP-PPC延迟线以解决子域内中间数据的生命太长问题;图3-4-24为本发明实施例解决子域内中间数据的复用的两种方案;图3-4-25为本发明实施例未配置状态DP-PPC延迟线结构简图;图3-4-26为本发明实施例配置下延迟线组合形态;图3-4-27为本发明实施例微型存储器模式的DP-PPC为一个有24个地址的微型存储器;图3-5-1为本发明实施例MP-PPC顶层结构框图;图3-5-2为本发明实施例输入输出处理模块;图4-1为本发明实施例数字组件程序分解及展开程序函数化;图4-2为本发明实施例展开类型任务函数的5类展开层子系统资源布局;图4-3为本发明实施例展开类型成员函数内消息交互类型;
图4-4为本发明实施例4个展开类型成员函数之间的数据交换;图4-5为本发明实施例定量记录成员函数的存储空间被覆盖的状态对重新建立的影响。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。DTSOC是Digital Template System On Chip 的简写,即片上数字模板系统。DTSOC是一种通用的、可编程的大型系统架构集成电路,开发者可以通过编制结构化的程序来在DTSOC上构造复杂的嵌入式数字电子系统,实现各种高带宽实时数字信号处理、多个并行工作的数字组件功能及IO交互控制,当然它还是一个可升级可重构的系统。DTSO⑶应用领域与FPGA部分类似,但DTSOC有自己全新的体系原理、独特的架构以及简便易用的开发模式与FPGA面向逻辑设计不同,DTSOC是面向C程序的可编程系统。但DTSOC也是一种支持并行处理的硬件架构,它同样能实现多个表示为函数的独立功能的并行运作,也可以利用横向并行(数据并行)、纵向并行(操作并行)等结构式方法来使DSP类型计算的带宽达到FPGA那样的水平。需要特别指出的是由于C应用程序会以一定形式展开分布在DTSOC体系中,实际上,DTSOC体系“看到”的是应用程序序列直至整个应用程序本身而不是一个个零碎的指令,从而能在不改变原程序算法和逻辑功能的前提下重组应用程序以适应DTSOC体系结构的特点,或者说DTSOC体系获得了这样的能力可以按易于DTSOC硬件实现的特点来等价重组应用程序从而显著提高效率。DTSOC体系特有的基本单元是几种类型的可编程处理元PPC (programmableprocessing cell)。PPC是自通用处理器(GPU)演化而来的,是一种片面的、微型的GPU。几种PPC按给定的功能定义,都有自己的微型指令集,按指令集编制的小段程序赋予PPC功能特性。PPCs是DTSOC体系可以面向软件程序的结构基础。在DTSOC体系下连接PPCs协同并行工作的载体是数据软交换中心SDE (soft dataexchanger), SDE是按照附加在数据上的标识码的指弓I来自动执行在多个数据口上的任意点对点的数据交换,PPCs负责编制标识码并输出数据或通过识别标识码来接受数据。在DTSOC应用设计中,程序的层级化、结构化是DTSOC体系要求,必须符合DTSOC的结构规则,不能自由划分。描述应用功能的C程序并不能直接转换为DTSOC有意义的配置,必须在不改变算法、指令操作序列的内在逻辑关系的前提下,分几步将C程序改写为可以结构编译的DTAL(数字模板架构语言)程序,而每一步形成的中间程序,在算法上、逻辑上都是等价的,都可在C平台上验证的。DTAL程序中的层级和函数必须与DTSOC结构有对 应关系,且必须在DTSOC平台提供的格式化程序模板上填写修改。另外DTSOC平台还提供一些结构程序语句用于描述DTSOC—些硬件结构功能,这些结构程序语句并不会被编译,在DTAL程序中起到连接作用,使得整个DTAL程序依然符合C语法规则。这就是DTSOC名称中数字模板(digital template)的意义必须按照DTSOC体系给定的框架、层级、函数以及结构程序语句的模板组织、编写DTSOC的应用程序。
系统级程序或者数字组件后台程序可以随时建立、调用、闲置和撤销在DTSOC体系中展开配置的函数。在DTSOC体系下,建立函数的意义是将在后备存储器中代码在DTSOC架构上展开配置,使该函数是可调用的。被撤销的函数意味着它占用的DTSOC资源被释放,可以让其他函数在这些资源上建立。DTSOC体系独有的函数建立、撤销的机制使得通过DTSOC架构资源的多元复用的方式来显著提高资源的利用效率的工作变得十分简单。本文首次提出的DTSOC是一个全新的通用体系架构,本方案框架性的论述主要是清晰、完整地表述了 DTSOC系统结构,但只对DTSOC关键性的功能模块或者为DTSOC独有的功能模块展开详细的分析论述。DTAL语言的独特性以及DTSOC应用程序开发流程的独特优点都有清晰的论述。本文中采用了一些细节性描述——尤其是一些具体的参数——的目的是为了更好、更细致地说明DTSOC体系原理,并不意味着是不可改变的。特别应指出的是,DTSOC各层次之间、同层次不同区域或类别的执行主体之间、同类别但不同的执行主体之间都是以单一标准格式进行数据或信息的交换。DTSOC体 系准备支持两种标准数据格式16bit、32bit,以下本文仅以16bit为唯一标准数据格式来展开分析,但本发明实施例并不以此为限。一、DTSOC通讯区结构在DTSOC体系中通讯区位于外围并与IO接口电路相连,DTSOC体系的内核(系统区)是通过通讯区、IO接口电路与外设建立各种交互关系,但IO交互的主要控制功能需由DTSOC系统区来承担,DTSOC通讯区主要起到IO功能映射、数据通路和缓冲作用。在系统区发出的控制信号的管理下,DTSOC通讯区也执行一些简单的需即时处理的控制功能,如握手交互控制、采样使能控制等。I. 1DTS0C通讯区的概述I. I. 1DTS0C 顶层结构DTSOC是一个层次化、结构化的架构。在架构顶层则是由通讯区和系统区组成的。通讯区在DTSOC外围,是面向外设的功能区。系统区在DTSOC内侧,是承担多个独立并行的数据计算或等效时序控制的核心区。图1-1为从顶层看DTSOC芯片是由通讯区、系统区组成。DTSOC体系通讯区有两个接口界面IO接口电路、系统区的外围SDE接口(SDE在第2章再作介绍),在IO接口电路与DTSOC系统区之间,DTSOC通讯区起到媒介作用。在DTSOC体系中,即使是接口的交互控制也主要由强大的系统区来承担。DTSOC通讯区的主要作用是提供配置IO状态的逻辑、为外设与DTSOC系统区交换数据提供双向的传输、缓冲的通道。在输出向通道上,系统区会附加一些控制信号,用于管理通讯区执行一些即时的简易接口控制。I. I. 2均等的IO形式分组DTSOC没有FPGA那种直接实现各种组合逻辑、时序逻辑的资源,不可能一个一个地配置IO的状态,而是按组配置IO的功能。虽然DTSOC的IO配置达不到FPGA那样的任意性,但也要保证有足够的灵活度。以16为基数,一个DTSOC产品的全部IO被划分为若干个均等的IO形式分组。形式分组的意思是指分组是架构性的,并没有明确的功能意义。通讯区各功能单元都是按IO形式分组配置或者参照IO形式分组配置。每个IO形式分组都分配了 16个10,目的显然是与本文预定的16bit基准数据格式相符合。当然在DTSOC产品中可能有一个IO形式分组没有16个10,但仍然可以按标准IO形式分组来进行处理,只不过有些数据位是冗余的而已。图1-2为均等的IO形式分组的形成。I. I. 310功能化映射I. I. 3. I同功能域IO组在实际应用中,一个独立定义的接口模块所涉的10,都是同功能域IO组。如32bit位宽的DDRSDRAM的同功能域IO组由32个数据双向口、12+2个地址接口和片选接口、若干控制接口组成。在DTSOC体系下,一个同功能域IO组的端口必须相互邻接,不能在其中插入其他同功能域IO组的端口。I. I. 3. 210 功能分组在DTSOC体系中,在对所有IO进行功能化定义时,必须考虑按IO形式分组为基准进行分解、组合、偏移等映射处理。这是因为DTSOC体系通讯区是按IO形式分组为单位配置资源的。正是为了对应DTSOC通讯区内以IO形式分组为特征的资源结构,DTSOC体系提出了 IO功能分组这样一个中间概念。IO功能分组是指任意分布的、涵盖不超过16个邻接端口的IO分组,且IO功能分组的所有端口都是一个同功能域IO组的一部分(也可能是全部)。也就是说一个同功能域IO组可以由若干个IO功能分组构成,一个IO功能分组的所有IO只能属于一个同功能域IO组。图1-3为三种IO功能分组类型□: 16位宽且与IO形式分组重合;位宽小于16 16位宽但横跨两个IO形式分组。在图1-3中显示三种IO功能分组类型。当IO功能分组的位宽不足16bit时,DTSOC系统区仍按16bit来处理,来自系统区的输出向数据中多余的位在端口的扩展接口电路处被丢弃,而输入采样中多余的位在系统区被忽略。而不论一个IO功能分组是横跨两个IO形式分组还是与一个IO形式分组重合,对DTSOC系统区而言都是一样的,如何映射到按IO形式分组配置的IO上则是DTSOC通讯区内部处理的事情。图1-4为同功能域IO组由若干个IO功能分组构成,图1-4显示一个独立定义的具有较多端口的同功能域IO组是由若干个邻接的IO功能分组组成,所有IO功能分组的位宽都不应超过16bit。DTSOC通讯区也有逻辑资源支持IO功能分组,IO功能分组与IO形式分组的相互转换也是在通讯区内自动实现的,DTSOC体系的系统区面对只是IO功能分组,且不论IO功能分组是否满16bit,都按16bit看待。不需要系统区知道IO形式分组,IO功能分组与IO形式分组的相互转换以及同属一个同功能域IO组的若干个IO功能分组在端口前的同步绑定由DTSOC通讯区内部逻辑自行承担。I. 2DTS0C体系的端口单元结构I. 2. I端口单元的逻辑结构DTSOC体系的每个IO都有一个端口单元,这是一个扩展的接口电路,其中除了三态切换、输出驱动、输入采样以及上拉、下拉等常规接口功能外,还包括可配置延迟线及DTSOC体系特有的控制、数据信源的选择。延迟线是由具温度补偿特性的串接延迟门构成,即延迟门的延迟时间不会随温度改变而产生超过额定范围的变化。、
图1-5为DTSOC体系的端口单元逻辑原理框图,图1_5所示,DTSOC的端口单元可以支持双数据速率存储器(DDRRAM)接口。上拉、下拉配置功能在图1-5中并未显示。在DTSOC体系中规定,每个IO都被划分到由16个IO组成的某个IO形式分组内,而每个IO形式分组一般可为两个任意的IO功能分组映射使用(在限制条件下还可以支持3个IO功能分组),因此端口单元需从两套数据、控制信源中选择。I. 2. 2DTS0C芯片端口的旁路通道从略I. 2. 3端口配置寄存器内容从略I. 3基于形式、功能分组的通讯区结构I. 3. 1DTS0C通讯区顶层结构框图在每个IO的端口单元(扩展的接口电路)到DTSOC系统区之间是DTSOC通讯区。在DTSOC通讯区中,从端口单元一侧开始依次排列了接口缓冲及控制器、选通对接器及数据对齐处理单元。接口缓冲及控制器是基于IO形式分组设置的,数据对齐处理单元是基于IO功能分组设置的且与系统区相连,而选通对接器则专门负责将接口缓冲及控制器和数据对齐处理单元对接起来。图1-6为DTSOC通讯区顶层结构框图。I. 3. 210形式分组的接口缓冲及控制器结构在DTSOC体系中,每16个IO组成的IO形式分组都有单一接口缓冲及控制器。每个IO的端口单元都是一样的且没有横向的联系,挂在一个接口缓冲及控制器上的16个端口单元属于一个IO形式分组。接口缓冲及控制器为一个IO形式分组提供接口数据流的双向缓冲,并执行受控的即时接口交互接口缓冲及控制器按照来自系统区数据中的控制位以及初始化配置的状态来执行接口通讯。I. 3. 2. I接口缓冲及控制器的构成I. 3. 2. I. I接口缓冲及控制器与16个端口单元的界面图1-7为IO形式分组的端口单元组与接口缓冲及控制器之间的界面信号。从图1-7中可见,一个IO形式分组的接口缓冲及控制器将为IO形式分组所属的16个IO的端口单元各提供两个输入时钟、两个输出时钟、两个输出使能信号、2对双数据速率输出信号,可以接受I对双数据速率输入信号。IO形式分组的每个端口单元将根据其内部的配置状态,从这些信号中选择使用。I. 3. 2. I. 2接口缓冲及控制器的结构 图1-8为IO形式分组的接口缓冲及控制器的顶层框图。接口缓冲及控制器是由接口控制模块和接口缓冲器组成,接口控制模块是与接口缓冲器外侧接口相连,接口控制模块与上、下IO形式分组的接口控制模块有信号相连,其目的是为了若干邻接IO形式分组的接口控制模块的同步绑定。当一个同功能域IO组的IO数目大于16或者横跨了两个IO形式分组时,需要同步绑定的功能。I. 3. 2. 2接口控制模块的功能描述接口缓冲及控制器的接口控制模块有两个功能①接口握手交互控制,②属于一个同功能域IO组的多个功能分组的接口时序的同步绑定。。一个IO形式分组能够被分解为两个任意的IO功能分组使用(即可以支持双向IO功能分组),因此在接口控制模块中有两套独立的接口控制逻辑分别称为I号接口控制逻辑、2号接口控制逻辑。I. 3. 2. 2. I接口握手交互功能在DTSOC体系中,接口交互的主控制是由系统区承担,输出的控制信号是由系统区以数据的形式发出的,而输入的控制信号也被当作数据传输到系统区进行解析。但简易的接口握手控制是在接口控制模块内处理的,因为这类控制需要即时处理不能延迟,当然系统区是依据系统区输出的附加控制信号来开启或关断接口控制模块内的接口握手控制行为。每个接口控制模块都有一套初始化配置参数握手/直通使能决定是握手交互还是不受控制的直通传输,握手方向选择决定是输出握手交互、输入握手交互还是双向握手交互,握手时序模式决定从预设的几种握手交互控制模式选择一种。 I. 3. 2. 2. 2 同步绑定在接口控制器中的两个接口控制逻辑可以独立设置主工作模式内控模式、绑定模式。当工作在内控模式下时,由接口控制逻辑按接口缓冲器输出的附加控制信号以及初始化配置参数产生具体控制时序。当工作在绑定模式下时,接口控制逻辑处在冻结状态,一切控制信号均引自上一 IO形式分组的接口缓冲及控制器的输出绑定信号。DTSOC体系规定,一个IO形式分组的接口控制逻辑的输入绑定信号只能来源于相邻的上一个IO形式分组的接口控制逻辑,同时可以为相邻的下一个IO形式分组的接口控制逻辑提供一组绑定信号。图1-9为输入、输出绑定信号的选择。图1-9显示,在一个接口缓冲及控制器中只有一组输入绑定信号和一组输出绑定信号,至于那个接口控制逻辑接入输入绑定信号或者那个接口控制逻辑输出绑定信号则由接口缓冲及控制器内相应的初始化配置位决定。图1-9还显示可以选择将2号接口控制逻辑绑定在I号接口控制逻辑上。I. 3. 2. 3接口缓冲器的结构在DTSOC体系下,由于在系统区的数据处理和传输控制并不会如硬逻辑设计般有完全可预期的固定时序,因此系统区与通讯区进行数据交换时应引入接口缓冲器以留有足够的弹性余量。以避免在输入通道发生输入数据尚未被系统区接受就被后续数据替代而“丢失”错误,避免在输出通道出现系统区未能及时输出数据造成端口处数据“空缺”错误。I. 3. 2. 3. I接口缓冲器的顶层结构框图接口缓冲器由4个独立的nX18的双口锁存器阵列组成,这4个锁存器阵列可以配置为多种缓冲结构。n选值范围一般在8 16之间,选值较大时对系统区的数据传输均衡性的时序约束较小。接口缓冲器还是系统时钟域和接口时钟域之间交换数据的理想媒介当系统时钟和接口时钟相若时,通过保持一定的缓冲深度,也就是说进入缓冲器的数据在稳定一段时间后才会在另一个时钟域被取出,在此间隔内照样能向缓冲器输入数据,这样就不需要在两个时钟域界面直接的握手交互,从而实现跨时钟域数据无缝交换。图1-11为接口缓冲器由4个分离的n*18锁存器阵列组成。图1-10所示共有9个多选器被放置在4个独立锁存器阵列的双边接口处,通过配置这些多选器可以把4个独立锁存器阵列组合成不同的缓冲器结构。双口、双时钟域缓冲器的数据输入、输出的时序控制是由可配置控制器承担,可配置控制器的主要任务是在接口时钟域、系统时钟域之间交换缓冲信息,以保证两个时钟域的数据正确传输。I. 3. 2. 3. 2接口缓冲器的多模式配置图1-11为接口缓冲器6种配置示例(□表示属第二功能分组、□表示属第三功能分组)。I. 3. 2. 3. 3附加控制信号意义DTSOC体系下,接口控制的主体是系统区的编程处理。系统区对接口控制有两种方式一种是直接给出控制类信号并传给对应的10。这一类控 制信号在DTSOC体系下被数据化了,它们与真正的输出数据(有时还包括地址)信号一起都被系统区当作数据来处理和发送。二是利用附加控制信号来启动、停止或切换接口控制逻辑中的简易接口控制功能。在输出向缓冲锁存阵列上,18bit的数据中16bit是可以直接输送到IO端口上的,额外的2bit就是附加控制信号。表1-1附加控制信号的意义列表
'附加控制信号I附加控制信号意义16bk数据说明—
OOb状态无变化为输出到端口的直接
___数据信号_
Olb双向端口方向切换,原状态为输入向,为输出到端口的直接
切换为输出向;原状态为输出向,切换数据信号
__为输入向。初始状态为输入向。__
L0182」I^b输入采样使能/禁止切换信号,原状态为输出到端口的直接
为采样使能,切换为禁止;原状态为采数据信号 样禁止,切换为采样使能。初始状态为
__采样禁止。__
Ilb 维持上次输出状态,上一时钟所有状态Bit[7:0]为重复时钟 _得以保持且可设置保持的时钟数目 I数目,其他位为无效I. 3. 2. 3. 4接口缓冲器对接口控制纳入16bit标准处理格式的作用当高速并行接口(同功能域IO组)需要若干个邻接的IO功能分组来绑定组成时,发生一个问题由于DTSOC系统区只能处理标准的16bit接口数据的传输,系统区是无法以精确的方式处理这若干个16bit数据的传输同步的,这就需要在DTSOC通讯区中设置缓冲器来隔离接口同步时序要求传递到DTSOC系统区,同时也要释放同功能域IO组所属各功能分组的时序同步约束。图1-12为接口缓冲器隔离了对系统区的同步锁定。图1-12显示一个横跨四个IO形式分组的同功能域IO组,图中只标注了输出向的接口缓冲器状态。图1-12形象显示4个输出向接口缓冲器面向端口一侧是严格对齐的,表明在若干邻接的接口控制器的同步绑定控制是有效的,是能向超过16bit同功能域IO组提供严格同步的输出信号。但在4个输出向接口缓冲器面向系统区一侧则是参差不齐,但只要每个输出向接口缓冲器没有被读空,就不会造成输出信号的时序错误。这实际上说明在系统区分开管理的4个16bit输出通道之间没有紧密的同步锁定问题。因此各种位长的并行接口都可以纳入系统区多执行主体的标准16bit数据处理结构中来。I. 3. 3选通对接器结构
在接口缓冲及控制器和数据对齐处理单元之间插入选通对接器的原因是弥补IO形式分组与IO功能分组的错位在输入向,可能需要从两个IO形式分组中抽取一个IO功能分组数据输入系统区;在输出向,可能需要将一个IO功能分组数据分解为两个IO形式分组数据输出到端口。
图1-13为起弥补两种分组错位作用的选通对接器及单元结构。图1-13显示输出向接往接口缓冲器的每个数据信号组都由选通对接器从相邻的两个数据对齐处理单元的各一数据信号组选择,在输入向只是简单将一组数据信号组分送两个数据对齐处理单元。I. 3. 4数据对齐处理单元的结构数据对齐是解决IO功能分组与IO形式分组的位置偏移问题。图1-15为数据对接处理单元的内部结构及外接口图。图1-14中每个数据对齐处理单元都有4个32/16移位处理模块,其中1、2号是双向类型移位处理模块,3、4号是单向输出类型的移位处理模块。由于系统区只能处理单向数据传输,实际上对应IO形式分组的2个功能分组被拆开为4个单向功能分组。面向接口缓冲器一侧的16bit数据线有12个,分别是2个接口侧输入数据对DPIN00、DPINOl和DPIN10、DPIN11,及 4 对接口侧输出数据对DP0UT00、DPOUTOI,DP0UT10、DPOUTlI,DP0UT20、DP0UT21以及DP0UT30、DP0UT31,其中在1、2号移位处理模块中由于两个方向的移位处理共享一个移位处理资源,因此在应用时DPIMKKDPIN01与DP0UT00、DP0UT01之间或者DPIN10、DPINll与DP0UT10、DPOUT11之间只能选择其中一对。面对系统区的数据对齐处理单元内侧16bit数据线有6个,分别是输入数据口 DSINO、DSINl及输出数据口 DS0UT0、DSOUTUDS0UT2、DS0UT3。在应用时DSINO、DSOUTO之间或者DSIN1、DSOUTl之间只能选择其一。在数据对齐处理单元内有一个18bit的对齐配置参数4个4bit数据为4个独立移位单元的移位参数,而2个Ibit分别表示1、2号双向类型移位处理单元的方向选择。注意在图1-14中并未显示2bit附加控制信号,附加控制信号是不会进行移位对齐处理的,而是经一级延迟后直传接口缓冲及控制器。很显然,在数据对齐处理单元内的移位参数、选通对接器的对接选择状态、接口缓冲及控制器的配置状态以及每个IO端口单元内配置状态构成一个多级的组合状态,适应各种应用接口对DTSOC通讯区的要求。二、DTSOC系统区结构在DTSOC架构中系统区是DTSOC的核心,除了 IO配置、IO交互的简易即时控制夕卜,所有控制或处理都在系统区中进行,包括接口交互的主控制功能。DTSOC系统区是一个多层次、分类分区的复杂结构,这个结构是面向C程序的,可以支持高带宽实时数字信号处理、多个并存的独立数字组件功能。2. 1DTS0C系统区的概述2. I. 1DTS0C系统区与通讯区关系从总体结构上看,DTSOC通讯区、系统区构成前后台的关系。通讯区只是为系统区与外设之间建立联系提供桥梁,其主要内容是IO功能配置、为外设与DTSOC系统区交换数据提供双向转换、缓冲的通道。2. I. 2DTS0C系统区的层次结构
系统区架构主体是三层结构,系统区每一层次都有对应的可编程处理单元实体,以此体现面向软件程序的主特点。2. I. 2. I 第一层是 SFUDTSOC体系的唯一主机是系统配置单元SFU(system configuring Unit), 一个DTSOC体系只有一个SFU。作为面向软件程序的体系,DTSOC可以被纳入到一个CPU的扩展体系中。DTSOC体系规定SFU是CPU与DTSOC之间唯一入口,SFU接受来自CPU的指令和数据,或者按CPU的指令向CPU上传数据。当然SFU也可以独立工作,这由上电初始化配置决 定。SFU也是DTSOC体系与外部非易失程序存储器(flash)的接口,DTSOC体系的所有配置、程序代码都存放在外部大容量flash内,初始加载时,DTSOC体系的各层级、各区域的配置代码都要通过SFU从flash中读取。SFU还是所有DTSOC系统级程序的执行主体,DTSOC体系规定公共SRAM (StaticRAM,静态随机存储器)之间传输数据的DMA (Direct Memory Access,直接内存存取)操作属于系统级任务,也是SFU的管理内容。当然具体到一个DTSOC产品,可以用某种CPU直接替代SFU,除了有专门的flash控制模块来绕开CPU直接为DTSOC其他部分加载代码、数据外,CPU可承担其他DTSOC系统
级程序。2. I. 2. 2 第二层是 BPUDTSOC 的后台处理单兀BPU (background processing unit)在 SFU配置、控制下成为一个或几个独立应用功能的次级主处理器。一般来说BPU会执行应用功能中被编为后台程序的部分,同时会负责其所辖的下一层多个可编程处理元的配置、控制、调度。BPU是一般的通用处理器的简化缩小,只能执行其内部SRAM中的程序。由于BPU执行的后台程序一般对效率要求不高,BPU的指令集也很简单,没有复杂的寻址操作。BPU的特别之处是对下一层多个可编程处理元的控制、调度要通过中断响应程序来执行,BPU为快速进入中断服务程序提供了硬件支持。2. I. 2. 3第三层是各类PPCDTSOC体系的第三层有大量的各类可编程处理元PPC (programmable processingcell),PPC是片面的、微型的处理器,有自己的微型指令集,可存放短小的程序,通过执行其规定类功能范围内、指令集范围内编制的程序来承担计算、传输、存储、控制等功能要求。DTSOC体系的第三层又被称为展开层,因为应用程序会在该层中多个PPCs中展开分布。由于展开层的意义更明确,后面将主要使用展开层的名称。展开层的PPCs是真正实现高带宽实时数字信号处理、多个并存的独立数字组件功能的载体。DTSOC架构的主要功能就是为多个PPCs协同执行一项应用功能提供结构性支持,加上上位机BPU在多PPCs子系统之中的控制、调度的“软处理”支持,展开层的功能强大且极灵活。图2-1为DTSOC系统区的三层结构顶层的SFU,第二层的若干个BPU,第三层的大量多类PPC。2. I. 2. 4系统区分类分区结构把一个复杂的应用系统在纵向、横向结构上进行分解是实现系统的通行方式。DTSOC系统区的三层结构是纵向的分解,在系统区第三层结构中有几类PPC则是横向分解,对第三层的各类PPC,可以配置它们分工执行应用功能程序的不同类型的区段,这就是横向分解的意义。至于有哪些类别的PPC,将在后面逐步论及。2. 2多处理单元协同的基础——数据软交换中心数据软交换中心SDE(Soft Data Exchanger)是实现多口自动数据交换的部件,按本文预定的标准数据格式,所有交换的数据都是标准的16bit数据并粘附若干信息位。2. 2. I数据标识码的概念 2. 2. I. I标识码对数据完整性的作用数据标识码是DTSOC体系的最重要的概念,也是理解DTSOC体系原理的入口。在DTSOC体系中,数据在各执行主体之间传输时都是粘连着标识码的。标识码相当于数学中变量名,它标注了数据的属性。可以设想一个数据从源端功能单元经过不确定的路径、不确定的延迟传输到目的功能单元,更复杂的是目的功能单元会接受若干不同属性的数据,如何保证目的功能单元能正确识别数据的属性?问题的答案就是给数据粘连上标识码,目的功能单元是根据标识码来识别数据,而不依赖确定的路径以及预定的到达时点。抽象地说就是粘连标识码的数据的完整性不依赖于路径、时序。图2-2为多个数据经不同路径、延迟传输到同一目的地示意图短粗线指延迟环节。2. 2. I. 2标识码的路径域、代号域在DTSOC体系中,数据标识码一般由两段数值组成一段是路径域数值,该数值按SDE的规则给出到达SDE的输出数据端口也就是目的功能单元入口的SDE路径。另一段是代号域数值,当一个目的功能单元的一个入口接收到多个不同属性的数据时,标识码的代号域数值就是目的功能单元识别这些数据的根据,更确切的说,标识码中代号部分相当于数学中的变量名。一旦数据在SDE中传输完成,路径域数值就失去了效用,目的功能单元将忽略路径域数值。2. 2. 2SDE 的结构基元-ADEC自动数据交换基元ADEC (Auto Data Exchanging Cell)是SDE的标准结构基元。如果以分离的双向数据口为一个数据口单位,每个ADEC —般有固定的k个数据外挂口和(k/4或k/2)个数据中转口,其中k是4的倍数。ADEC又分两种基本类型单区型和双区型。2. 2. 2. IADEC 单区基本型DTSOC体系可以根据实际需要灵活安排ADEC的接口,图2_3是单区类型ADEC的基本型。图2-3为ADEC单区基本型的端口示意图。图2-3中dchini、dchouti表示ADEC的数据外挂口,其中dchini是输入通道口,dchouti是输出通道口。dchup、dchdown表示ADEC的数据中转口,其中dchup是上传通道口,dchdown是下传通道口。每个通道口的位宽=标识码+标准数据位宽(16bit)。图2-3是4-1配置的ADEC单区基本型,其特点是4个数据外挂口之间可在ADEC内并行完成任意两个外挂口之间数据交换,而一个数据中转口为若干ADEC之间交换数据提供了接口。水平排列的多个ADEC之间是不能直接进行数据交换的,但可以将这些ADEC的中转口都挂在更高层次的ADEC的外挂口上,通过此上层ADEC为媒介实现两个同层次但不同ADEC的外挂口之间的数据交换。图2-4为通过上层ADEC实现不同ADEC的外挂口之间的数据交换。图2-4是4-1配置单区基本型ADEC的最小扩展,实现图中所标的从i号口到j号口的数据传输需要ADECOO将数据上传到上层ADEC10,再由ADEClO下传到ADEC02,再从j
号口输出。2. 2. 2. 2ADEC 双区基本型图2-5为4-1配置的ADEC双区基本型的端口示意图。
图 2-5 中 dchOini、dchOouti 表不 ADEC 的 I 号区数据外挂口 ;dchlini、dchlouti表示ADEC的2号区数据外挂口 ;dch0up、dchOdown表示I号区的数据中转口,dchlup、dchldown表示2号区的数据中转口。在双区型ADEC内,同区的外挂口之间不能交换数据,只能在不同区的外挂口之间并行交换数据。当需要跨双区型ADEC传输数据时,两个区的外挂口分别通过同区的数据中转口与上层SDE交换数据,以上层ADEC为媒介实现两个不同ADEC的1、2区外挂口之间的数据交换。需注意双区型ADEC的数据中转口也是分区的,数据中转口只能被同区的外挂口利用来中转数据。2. 2. 3SDE 的结构2. 2. 3. ISDE 的层级一个独立的SDE是由相同的I种(少数情况可以是2种)类型的ADEC在垂直(层级)、水平方向排列组合的来。按照外挂口的数量要求安排足够的底层ADEC来满足要求,同时要安排足够层级的ADEC来把底层ADEC连接起来。举例说,假如用图2_3的4_1配置的ADEC单区基本型来构造SDE,根据底层ADEC的数目SDE的层级会有所不同、每层级的数目也会有所不同①底层ADEC的数目< 4个时,只需增加一个层级ADEC (共2个层级)就能构成完整的SDE。②底层ADEC的数目> 4、彡16个时,需要3个层级ADEC才能构成完整的SDE。但第二层级的ADEC数目会随底层ADEC的数目改变,计算的公式是number (I) = number_mdf
/4。number_mdf
是底层ADEC实际数目的修正值,其意义是底层ADEC的实际数目如果等于4的倍数,就取原值;如果不等于4的倍数,则修正为大于实际数目的最小的4的倍数。③更一般,有迭代公式计算各层级的ADEC数目修正值计算公式r = number [i] % 4 ;// 求取余数if (r = = 0) number_mdf [i] = number [i];elsenumber_mdf[i] = number[i]+(4~r);各层级的ADEC数目计算迭代公式if (number [i] ! = I) number [i+1] = number_mdf [i]/4 ;else number [i+1] = 0 ;number
是预定义的最底层ADEC数目,其他层级的ADEC的数目number [i]通过
算式产生。
当number [i+1] = 0后停止迭代,SDE的层级数最终确定为当前i值。2. 2. 3. 2SDE外挂口的分配规则SDE要根据多口数据交换的需要用若干个ADEC组合而成,SDE的外挂口的分配和逻辑功能要求有关,应该把那些在DTSOC系统中会频密交换数据的外挂口尽量安排在一个底层ADEC上或者至少安排在临近的ADEC上。4_1单区型ADEC、4_1双区型ADEC的结构都是4个外挂口只安排了 I个中转口用于跨ADEC的数据交换,是基于假定最频密的数据交换发生在同块ADEC内部,这就是DTSOC体系下数据交换的局部性特点,在编写应用程序时必须注意这一点。2. 2.3. 3SDE结构中的拓扑因素 2. 2. 3. 3. ISDE的外挂口配置的拓扑规则SDE的外挂口的分配还和多个外挂口在版图上的位置有关,一般来说在版图上相邻的外挂口尽量放在同一个ADEC上,距离稍远的可以分别放在邻接的两个ADEC上,距离最远的应分别放在需要经过最多层次ADEC才能完成数据传输的两个ADEC上。这种拓扑意义分配的原因是在两个ADEC之间传输数据会有I 2级的缓冲寄存,会有I 2个时钟的延迟,这对任意SDE传输数据口对之间的距离不等是一种补偿。通过上层ADEC转送数据会增加延迟的时钟数,经过的层级越多,中间的缓冲寄存的级数越多,延迟的时钟越多。图2-6为通过插入延迟环节补偿传输数据口之间的距离不等造成的延迟不均衡。图2-6假定每经过一个ADEC会造成一级延迟。2. 2. 3. 3. 2SDE在DTSOC体系中的拓扑意义SDE是DTSOC柔软灵活的部分,对DTSOC体系的版图设计具有关键意义。DTSOC体系不是一个具体的ASIC产品,也不能像ASIC那样一次性的版图设计,而是像FPGA那样着眼于多代系列化的产品开发。因此DTSOC体系的版图设计首先不是针对具体的产品,而是那些在DTSOC体系中通用、稳定的单元,如BPU、各类PPC等,会产生一些版图意义的DTSOC标准单元。具体到I个DTSOC产品版图设计,主要任务是要把这些“坚硬”的DTSOC标准单元组成一个图形系统,在逻辑上需要SDE,在图形上也需要“柔软”的SDE。SDE的“柔软”的含义有两点一是它是一个单一时钟同步逻辑,可以用自动布局布图工具产生任何形状的版图,二是版图形成后,SDE的布线延迟使得SDE时钟频率不能符合要求时,可以通过调整SDE结构或者插入延迟级来解决。对SDE结构的修改不会改变系统的功能正确,因为DTSOC体系的一个基本原理基于标识码的数据传输不会因传输路径改变或延迟变化而影响两个外挂口间数据传送的正确性。图2-7为DTSOC版图中“坚硬”的SC (标准单元)和“柔软”的SDE。图2-7中SC是standard cell的缩写,表示DTSOC专有的标准单元,一般都是矩形形状,因此是“坚硬”的。SDE则可以是任何不规则形状,因此是“柔软”的。2. 2. 3. 3. 3自动生成SDE的HDL代码的意义SDE结构的修改是通过其HDL代码的改变来实现,由于修改是在集成电路设计流程后端进行的,手工修改代码难保正确,需要在原经过验证的SDE代码的基础上通过修改参数来由机器自动生成修改后的SDE代码。机器要检查修改后的SDE代码与已验证过的原代码功能上等价性,所有原来的外挂口当然不会做任何改变。2. 2. 3. 4数据标识码路径域的编制
如果SDE由单一 类型ADEC组成,在SDE内传输中依据的标识码路径域数值并不标注上传通道的路径,因为从一个外挂口输入的数据上传不同层级的ADEC的路径是唯一的。以图2-7的4-1单区基本型ADEC组成的3层级SDE为例,分项列出分段路径域数据的意义。表2-1在3层级单区基本型SDE上交换的数据标识码路径域分段定义
权利要求
1.一种片上数字模板系统DTSOC,是一种面向C程序的可编程系统,其特征在于,所述片上数字模板系统DTSOC包括输入输出IO接口电路、通讯区和系统区,其中, 所述通讯区,位于所述系统区外围,并与所述IO接口电路相连,用于分组配置IO状态的逻辑,为外设与所述系统区交换数据提供双向的传输、缓冲的通道;所述通讯区的多模式缓冲为所述系统区以编程数据处理的方式处理IO接口电路的时序控制提供缓冲、映射及转换支持; 所述系统区,用于通过所述通讯区、所述IO接口电路与外设建立各种交互关系,对IO交互进行控制并承担数据处理功能,其中,所述系统区包括一个系统配置单元SFU、多个后台处理单元BPU、展开层子系统和数据软交换中心SDE,其中 所述系统配置单元SFU,用于接受来自外部中央处理器CPU的指令和数据,或者按CPU的指令向CPU上传数据;DTS0C的各层级、各区域的配置代码通过所述SFU从外部非易失程序存储器中读取;所述SFU也是DTSOC系统级程序的执行主体; 所述后台处理单元BPU,用于在所述SFU配置、控制下成为一个或几个独立应用功能的次级主处理器,执行应用功能中被编为后台程序的部分,同时会负责其所辖的下一层多个可编程处理元PPC的配置、控制、调度; 所述展开层子系统,包含多个不同类别可编程处理元PPC,皆属处理器架构,有微型指令集,可存放程序,通过执行其规定类功能范围内、指令集范围内编制的程序来承担计算、传输、存储、控制,应用程序会在该层中多个PPC中展开分布,为用于实现高带宽实时数字信号处理、多个并存的独立数字组件功能的载体; 所述数据软交换中心SDE,用于在DTSOC系统中连接所述SFU、所述BPU、所述PPC协同并行工作,是按照附加在数据上的标识码的指引来自动执行在SDE多个数据口上的任意点对点的数据交换,在所述SDE交换的数据是等位宽的。
2.如权利要求I所述片上数字模板系统DTS0C,其特征在于,所述系统区内并无全局总线所述SDE是在DTSOC系统下不同层级、相同层级的处理单元之间建立联系的渠道,在DTSOC系统中分布的多个存储器之间的数据交换、不同层级处理单元之间的消息交互以及展开层内子域之间、子域内的数据交换都是通过不同类型SDE进行的;所述系统区也没有全局同步时钟SDE必须能处理同频异步时钟域之间的数据交换;此两个特点意味着设计实施本发明的集成电路产品的数字部分时,并无复杂的全局时序收敛难点问题。
3.如权利要求2所述片上数字模板系统DTS0C,其特征在于,所述SDE数据交换使用的标识码由两段数值组成一段是路径域数值,该路径域数值按SDE的规则给出到达SDE的输出数据端口也就是目的功能单元入口的SDE路径,一旦数据在SDE中传输完成,路径域数值就失去了效用,目的功能单元将忽略路径域数值;另一段是代号域数值,当一个目的功能单元的一个入口接收到多个不同属性的数据时,标识码的代号域数值就是目的功能单元识别这些数据的根据,更确切的说,标识码中代号部分相当于数学中的变量名。
4.如权利要求I所述片上数字模板系统DTS0C,其特征在于,所述SDE的标准结构基元为自动数据交换基元ADEC,所有SDE由相同类型的ADEC组合交联而成,如果以分离的双向数据口为一个数据口单位,每个ADEC —般有固定的k个数据外挂口,和k/4或k/2个数据中转口,其中k是4的倍数;ADEC又分两种基本类型单区型和双区型。
5.如权利要求I所述片上数字模板系统DTS0C,其特征在于,所述展开层子系统的基本分区数据管理域和数据处理域;数据管理域被细分为任务管理子域和后台管理子域、数据处理域被细分为非乘法数据处理子域和乘法核心子域;所述展开层子系统包含的多个不同类别PPC具体包括 任务数据管理可编程处理元TDM-PPC,是数据管理域之任务管理子域的专属PPC ;TDM-PPC与数据处理域交界,为其直接提供缓冲数据的输入输出服务,所有TDM-PPC也可称为前台数据管理PPC ;TDM-PPC还与后台管理子域交界,与后台管理PPC形成数据管理的结构性分工;TDM-PPC还与上位机BPU有双向消息互通管道,上位机BPU对展开层的各种控制、调度都是通过TDM-PPC来实施,而BPU接收的展开层消息也是由TDM-PPC发出或转送的; 后台数据管理可编程处理元BDM-PPC,是数据管理域之后台管理子域的专属PPC;每个BDM-PPC都有一个公共SRAM,对内BDM-PPC起到SRAM可编程管理器的作用,负责数据的 存取、维护;BDM-PPC并不直接服务于数据处理,服务的对象是任务性数据管理,为其提供 一定程度数据抽象任务数据管理不用关心数据在某个SRAM中的存储细节,与TDM-PPC的数据通道管理为同名缓冲数据在不同的公共SRAM上存取提供抽象相结合,为数据处理域提供完全的数据抽象;BDM-PPC还可以接受通过BPU/TDM-PPC转送的SFU指令,与另一个BDM-PPC协同管理公共SRAM之间的数据DMA操作;BDM_PPC内核采用双线程架构BDM_PPC内核轮流独立执行数据存储线程和数据输出线程以适应两者的异步关系; 数据处理可编程处理元DP-PPC,是非乘法数据处理子域的专属PPC ;在DP-PPC可存放小段数据处理程序,能在极高的时钟频率下反复执行之;在展开层子系统之非乘法数据处理子域内大量DP-PPC通过单区型SDE连接起来,可以将数据处理程序展开分散到多个DP-PPC中以获得极高的DSP处理带宽;DP-PPC可工作在多种模式下而呈现多种形态;在模式配置后,在连续的运行过程中,DP-PPC只能工作在一个模式下,呈现一种形态;DP-PPC的工作子模式包括一般工作模式、延迟线模式、数据组合模式、单精度浮点计算模式、循环冗余码处理模式;其中的一般工作模式是片面的、微型的处理器的工作模式,是DP-PPC的基本工作模式,大多数DP-PPC的结构是优先按基本模式设计的;其操作有寄存器之间传输、布尔逻辑处理、部分和处理、部分桶式移位及冗余位消减处理; 乘法计算可编程处理元MP-PPC,是乘法核心子域的专属PPC ;MP-PPC在固定提供I个SbitXSbit无符号乘法计算外,还能识别不同标识码的输入数据对,并对应产生若干个返回数据的标识码。
6.如权利要求5所述片上数字模板系统DTSOC,其特征在于,所述PPC为双时钟域结构,包括PPC外围系统时钟域和PPC内核高倍率处理时钟域 在PPC内都有一个独立的时钟发生器,产生的处理域时钟是系统时钟沿触发的非独立高倍频脉冲串,且脉冲的宽度、脉冲数目是可配置的; 在PPC外围系统时钟域有一个工作在系统时钟域的较短的总线,用于PPC内核访问外围各特殊功能模块的可寻址寄存器用,此总线不能延伸到PPC独立单元外,也对PPC内核没有作用,PPC内核寄存器与外围寄存器是分开独立编址的;PPC内核是不能直接访问外围编址寄存器,PPC内核只能通过读写界面寄存器来间接访问外围寄存器或发送数据、消息;所述DP-PPC同样工作在两个时钟域上一个是系统时钟域,另一个是高倍率处理时钟域;DP-PPC与外部系统交换数据是在DP-PPC的系统时钟域中进行,交换的数据包括待处理的数据以及以数据形态表示的状态、分支控制信息,系统时钟是不能轻易改变,在处理时钟域,DP-PPC内核随着刷新的输入数据反复执行内部的小段程序,这个过程是独立于系统的其他部分的,也是为系统其他部分不可见的。
7.如权利要求5所述片上数字模板系统DTSOC,其特征在于,所述DP-PPC面向一些复杂的展开层应用程序时,相互协同的多个DP-PPC是以不同的工作模式出现,通过以DP-PPC的各种工作模式各自的较小操作域为参照基准,复杂的展开层应用程序等效重组为限制在若干个小操作域内实施的多个分类片段,并且由多个DP-PPC以不同的工作模式来分工承担复杂程序中的分类片段。
8.如权利要求5所述片上数字模板系统DTSOC,其特征在于,所述DTSOC系统的展开层子系统的非乘法数据处理子域内,配置若干个DP-PPC协同执行一个应用程序的数据处理部分,协同的方式不是接受一个外在的控制器来管理,而是基于规则性的数据驱动机制,数据驱动机制有两个层面的含义在处于工作状态的DP-PPC内部层面,是由外部输入数据触发DP-PPC预存的小段程序的顺序执行的,当程序即将处理的输入数据未到时,DP-PPC将停顿下来等待输入数据,一旦输入数据被处理一次就视为无效,DP-PPC等待新的外部输入数据以触发新一次的程序执行,此过程不断重复;在DP-PPC之间的层面,各DP-PPC是以交换粘连标识码的标准格式数据来实现交联的,在DP-PPC交联层面必须遵循交联数据唯一路径规则,即一个源端DP-PPC输出的交联数据只能传送给一个目的DP-PPC,而不能再传送给其他目的DP-PPC ; 所述DP-PPC的运行是基于数据驱动机制,加上经由SDE的数据传输的标识码机制,意味着DP-PPC之间协同没有时序紧约束问题;所述DP-PPC的分支控制也是通过数据驱动机制实现的,即前一处理环节产生不同代号的数据触发一个DP-PPC内不同独立程序段的执行,或者触发不同的DP-PPC工作;所述DP-PPC内核只能执行顺序程序段,程序中分支控制由DP-PPC外围系统时钟域模块分工处理,这个结构安排极有利于DP-PPC内核硬件逻辑能达到极致工作频率。
9.如权利要求5所述片上数字模板系统DTS0C,其特征在于,所述DP-PPC在一般工作模式下指令由5个并列的维操作码组成,表示可并行执行5种指定操作,且指令无常规的操作数,构成所有指令的5个维操作均是原子操作,原子操作的意义指其基本不能分解为其他原子操作的组合形态,所有维操作仅发生在临近的寄存器之间。
全文摘要
本发明提供一种片上数字模板系统DTSOC,是一种面向C程序的可编程系统。该系统的目标是应用于实现各种高带宽实时数字信号并行处理、多个独立工作的数字组件功能及逻辑级的IO交互控制。DTSOC包括IO接口电路、通讯区和系统区通讯区,用于分组配置IO状态,为外设与系统区交换数据提供双向的传输、缓冲的通道;系统区用于通过通讯区对IO交互进行控制并承担各种数据处理,其中,系统区包括SFU、BPU、隶属展开层子系统的各种PPC和SDE。本发明是一种面向C程序的通用可编程系统,易于开发,并行处理效率高,依据本发明实施的集成电路产品可作为各种复杂电子系统的基础部件(如DSP、FPGA的作用)。
文档编号G06F13/20GK102637157SQ20111003830
公开日2012年8月15日 申请日期2011年2月15日 优先权日2011年2月15日
发明者郑磊 申请人:郑磊
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1