专利名称:一种用于数据驱动的可重构计算阵列数据耦合器的制作方法
技术领域:
本发明涉及一种用于数据驱动的可重构计算阵列数据耦合器。
背景技术:
目前的通用处理器,DSP等多采用指令驱动,处理器工作时一般要经过取指令,译码,执行,返回结果等阶段。对于计算密集型任务,数据吞吐量一般都很大,因此采用数据流驱动计算部件完成计算任务是一种比较合适的方法。数据通过一定的组织,以一定的模式通过处理器的数据通路即可以被处理,而指令集处理器要执行多条指令才能从存储器取得相应数据并进行处理,相比之下,数据驱动方式在计算密集型任务方面,具有一定优势,可以大大提高吞吐率。数据驱动方式以前多出现在专用集成电路中。但是,专用集成电路灵活性不足,一个电路一般只能实现固定几种算法,对于数据处理也就只有几种有限的模式。对于可重构硬件电路,由于电路实现功能可变,因此需要对数据组织模式也进行相应改变,通过不同寻址模式的支持,能够快速从存储器取得数据提供给可重构硬件处理,从而既达到很高的数据吞吐率,又能保证硬件的灵活性。基于可重构计算硬件的特点,传统的固定数据产生模式缺乏灵活性。
发明内容
本发明的目的是提供一种适用于数据驱动的计算密集型且具有较高灵活性的可重构计算阵列的数据耦合器。本发明的用于数据驱动的可重构计算阵列数据耦合器包括用于设置和输出数据耦合器工作状态的数据耦合器控制单元,按照寻址模式产生地址的地址生成器,用于存储计算过程中的输入输出数据的计算高速缓存,总线接口单元,控制寄存器,输入端口,输出端口和内部总线,总线接口单元的一端与外部总线相连接,另一端与内部总线相连,数据耦合器控制单元的一端与外部总线连接,另一端与控制寄存器连接,地址生成器与内部总线以及计算高速缓存的一个输入端相连接,计算高速缓存与内部总线连接,并有两组传输端口,其中一组传输端口与内部总线相连接,另一组传输端口的输入端与输入端口的输出端相连,输出端与输出端口的输入端相连接,输入端口和输出端口分别和内部总线连接,输入端口的输入端和可重构阵列的输出端相连接,输出端口的输出端和可重构阵列的输入端相连接。本发明的用于数据驱动的可重构计算阵列数据耦合器工作流程如下
外部控制器根据本次计算的特点选择相应的数据寻址模式,对地址生成器进行参数配置,并将要处理的数据按照一定规则写入到耦合器的计算高速缓存中。地址生成器和计算高速缓存的配置数据都是经过总线接口单元传输到数据耦合器内部总线,根据地址线的地址,将数据分别送至地址参数缓存和计算数据缓存。启动后,地址生成器开始按照预定的模式产生访问计算高速缓存的地址,根据产生的地址和读写控制信号,数据耦合器可以通过
3输入和输出端口同可重构阵列进行数据传输。当前工作结束后,数据耦合器会向外部控制器发送相应的通知信号,外部控制器接收到数据耦合器的信号后,会通过设置在数据耦合器的控制单元来停止它的工作或者开始新一轮的工作。本发明具有以下技术效果
1.支持多种数据寻址模式。地址生成器支持线性寻址模式和复杂非线性寻址模式,再辅以位反转机构和循环控制机构,既保证了通用性灵活性也兼顾特定应用的专用性能。该地址生成器在具备高性能的同时也为可重构阵列的应用扩展提供了余地。2.能够良好的协调可重构阵列和其它外围单元之间的数据传输,同时支持同步和异步传输模式。在异步通信模式下,耦合器设置有专门的通信接口,通过数据扩展单元,以双轨编码方式实现与异步可重构阵列的通信,保证了传输的可靠性。3.这个部件的逻辑并不复杂,整个逻辑面积很小。4.良好的扩展性能,可伸缩性强。耦合器地址空间中留有足够的扩展资源,使得一个阵列最多可以支持拥有16个数据耦合器。5.良好的通用性。所述数据耦合器不仅仅适用于可重构阵列处理器,还可以用于其它的专用数据处理电路。
图1是本发明的数据耦合器的构成示意框图; 图2是地址生成器的构成图3是数据耦合器输入端口构成图; 图4是数据耦合器输出端口构成图; 图5是本发明的数据耦合器接口信号图; 图6是本发明的数据耦合器工作流程图。
具体实施例方式下面结合附图详细说明本发明。参照图1,本发明的用于数据驱动的可重构计算阵列数据耦合器包括用于设置和输出数据耦合器工作状态的数据耦合器控制单元1,按照寻址模式产生地址的地址生成器2,用于存储计算过程中的输入输出数据的计算高速缓存3,总线接口单元4,控制寄存器 5,输入端口 6,输出端口 7和内部总线8,总线接口单元4的一端与外部总线相连接,另一端与内部总线8相连,数据耦合器控制单元1的一端与外部总线连接,另一端与控制寄存器5 连接,地址生成器2与内部总线8以及计算高速缓存3的一个输入端相连接,根据内部总线传入的地址参数,地址生成器2会生成一系列的地址来访问计算高速缓存3,计算高速缓存3与内部总线8连接,并有两组传输端口,其中一组传输端口与内部总线8相连接,另一组传输端口的输入端与输入端口 6的输出端相连,输出端与输出端口 7的输入端相连接,输入端口 6和输出端口 7分别和内部总线8连接,输入端口 6的输入端和可重构阵列的输出端相连接,输出端口 7的输出端和可重构阵列的输入端相连接。图2所示是地址生成器。地址生成器由地址参数高速缓存9、地址计算单元10、协处理单元11、计数器12和计数允许信号产生逻辑13组成。图中,RST是协处理单元11对地址计算单元10的重置信号;AE是地址计算单元10的计算允许信号,同时也作为数据耦合器输入/输出端口重置信号;CE是地址计算单元10计算完一个地址参数后发出的指示信号;PWE是错误地址参数指示信号,当地址计算单元10遇到的地址参数是结束参数时,那么会发出EOP信号。当计数器12越界时会发出OF有效信号,计数器12存放的是地址参数缓存9的指针,通过这个指针获得地址计算单元10的下一次计算所需要的地址参数,根据计数器12从地址计算缓存9中取出的地址参数将送往地址计算单元10。图3所示是数据耦合器输入端口。输入端口由64位有效位寄存器14,64位有效位备份寄存器15,定时器16,有效位检查单元17和比较逻辑18组成。输入端口负责将计算数据从可重构阵列中读出,输往计算高速缓存。输入端口同时支持同步和异步工作模式, 在异步工作模式下,要将阵列按双轨编码方式扩展的2位数据还原为1位有效数据,然后根据地址生成器生成的地址,将计算结果写回计算数据缓存中。如果同步模式,则不进行数据格式转换。同步工作模式下,输入数据直接输入到计算高速缓存;在异步工作模式下,输入数据需要经过上述部件的处理。其中有效位寄存器14和有效位备份寄存器15用于标记每次输出数据中有效的位,该位为1表示数据中相同位序位数据有效。有效位检查单元17根据来自阵列的数据检查每对数据是否两两互补,是否符合双轨编码格式,从而按位判断当前输入数据是否有效,并将判断结果写入有效位寄存器14。定时器16用于防止工作超时。图4所示是数据耦合器输出端口。输出端口负责将数据输出到可重构阵列中。输出端口同时支持同步和异步工作模式,在异步工作模式下数据要通过其内部的数据扩展单元将数据(这里原数据宽度为64位)按照双轨编码互补格式扩充原来两倍(这里是1 位), 再输出给可重构阵列做计算。如果是同步模式,则不作扩充,输出的数据和从缓存读出的数据宽度相同(仍为64位)。输出端口主要由64位数据寄存器19、64位有效位寄存器20、64位有效位备份寄存器21、64位回应寄存器22、定时器23、比较逻辑M、数据扩展单元25和数据输出逻辑沈组成。数据寄存器19存放的是要输出的计算数据。输出端口同时支持同步和异步工作模式。同步工作模式下,数据寄存器19中的数据直接输出给可重构阵列。异步模式下,数据以双轨编码格式输出。其中,有效位寄存器20和有效位备份寄存器21功能与输入端口相应寄存器相同。回应答寄存器22负责实现与阵列异步通信时的应答信号接收,若检测到阵列边缘单元“获得数据确认”信号则置相应位为1。在进行每一字传输时,由计数器23对过去的时钟数进行计数,当计数值减到0时若还未完成字传输则认为输出端口或阵列发生错误。比较逻辑M将回应寄存器22和有效位备份寄存器21中相对应的每位数据进行比较,判断当前数据寄存器中的各位数据是否已被阵列接受。若该位被接受,则相应位输出为 1,有效位寄存器中相应位被清。如果所有数据都被阵列接收,则输出端口继续传送下一个计算数据,如果还有某些位没有被接收,则保持数据寄存器中数据直到阵列接收。数据扩展单元25将数据寄存器和有效位寄存器20中相对应的每位数据相互作用,把原来计算数据按位扩展(即原1位数据扩充成为互补两位)。数据输出逻辑26根据当前输出端口数据准备情况和阵列数据接收情况,确定是否需要继续向阵列输出数据。如果没有这个逻辑的控制,阵列可能会重复接收同样的数据,从而导致计算结果的错误。
图5所示是耦合器的接口信号。在和控制器连接方向,有DS_RST信号,用于重置耦合器工作状态;NREQ信号用于耦合器通知控制器计算任务完成;EREQ信号用于耦合器通知控制器计算出错。在和阵列连接方向,分别有两组数据线DAT0_0、DAT0_I负责数据的输入输出和两组传输确认信号线ACK。参照图6是数据耦合器的工作流程。工作流程分为以下步骤
第一步,由外部控制器对数据耦合器进行配置。配置内容包括选择地址生成器地址产生模式,写入地址参数,配置输入/输出端口的工作模式。特殊地址产生模式的配置通过写数据耦合器控制寄存器完成。该寄存器各位定义如表1所示。表1
权利要求
1.一种用于数据驱动的可重构计算阵列数据耦合器,其特征在于,它包括用于设置和输出数据耦合器工作状态的数据耦合器控制单元(1)、按照寻址模式产生地址的地址生成器(2)、用于存储计算过程中的输入输出数据的计算高速缓存(3)、总线接口单元(4)、控制寄存器(5)、输入端口(6)、输出端口(7)和内部总线(8)等;其中,总线接口单元(4)的一端与外部总线相连接,另一端与内部总线(8)相连,数据耦合器控制单元(1)的一端与外部总线连接,另一端与控制寄存器(5)连接,地址生成器(2)分别与内部总线(8)和计算高速缓存(3 )的一个输入端相连接;计算高速缓存(3 )与内部总线(8 )连接,并有两组传输端口,其中一组传输端口与内部总线(8)相连接,另一组传输端口的输入端与输入端口(6)的输出端相连,输出端与输出端口(7)的输入端相连接,输入端口(6)和输出端口(7)分别和内部总线(8)连接。
2.根据权利要求1所述的用于数据驱动的可重构计算阵列数据耦合器,其特征在于, 所述地址生成器(2)包括地址参数缓存(9)、地址计算单元(10)、协处理单元(11)、计数器 (12)和计数允许信号产生逻辑单元(13)等;其中,计数允许信号产生逻辑单元(13)分别与地址参数缓存(9)和计数器(12)相连接,协处理器单元(11)分别与地址计算单元(10)、计数允许信号产生逻辑(13)和计数器(12)相连接,地址计算单元(10)分别与地址参数缓存 (9)和计数允许信号产生逻辑(13)相连。
3.根据权利要求1所述的用于数据驱动的可重构计算阵列数据耦合器,其特征在于, 所述输入端口(6)包括64位有效位寄存器(14),64位有效位备份寄存器(15),定时器 (16),有效位检查单元(17)和比较逻辑(18)等;其中,比较逻辑(18)分别与64位有效位寄存器(14)和64位有效位备份寄存器(15)相连,有效位检查单元(17)与64位有效位寄存器(14)相连,定时器(16)与数据耦合器控制单元(1)相连。
4.根据权利要求1所述的用于数据驱动的可重构计算阵列数据耦合器,其特征在于, 所述输出端口(7)包括64位数据寄存器(19)、64位有效位寄存器(20)、64位有效位备份寄存器(21)、64位回应寄存器(22)、定时器(23)、比较逻辑(24)、数据扩展单元(25)和数据输出逻辑(26)等;其中,64位数据寄存器(19)分别与数据扩展单元(25)和数据输出逻辑 (26)相连,数据扩展单元(25)与64位有效位寄存器(20)相连,比较逻辑(24)分别与64 位有效位寄存器(20)、定时器(23)、64位有效位备份寄存器(21)、64位回应寄存器(22)相连。
全文摘要
本发明公开了一种用于数据驱动的可重构计算阵列数据耦合器,它包括数据耦合器控制单元、地址生成器、计算高速缓存、总线接口单元、控制寄存器、输入端口、输出端口和内部总线,本发明可根据控制信息,按照一定的寻址模式产生高速缓存的地址,通过输入/输出端口协调与可重构计算阵列之间的数据传输,支持同步和异步两种通讯方式,应用方式灵活。
文档编号H03K19/14GK102281054SQ20111010364
公开日2011年12月14日 申请日期2011年4月25日 优先权日2011年4月25日
发明者李碧琛, 沈海斌 申请人:浙江大学