CN101692216A - 动态数据流结构中存储-匹配-转发单元电路 - Google Patents
动态数据流结构中存储-匹配-转发单元电路 Download PDFInfo
- Publication number
- CN101692216A CN101692216A CN 200910093721 CN200910093721A CN101692216A CN 101692216 A CN101692216 A CN 101692216A CN 200910093721 CN200910093721 CN 200910093721 CN 200910093721 A CN200910093721 A CN 200910093721A CN 101692216 A CN101692216 A CN 101692216A
- Authority
- CN
- China
- Prior art keywords
- signal
- token
- port
- output
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003860 storage Methods 0.000 claims abstract description 88
- 230000006854 communication Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 230000000630 rising effect Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- OUXCBPLFCPMLQZ-WOPPDYDQSA-N 4-amino-1-[(2r,3s,4s,5r)-4-hydroxy-5-(hydroxymethyl)-3-methyloxolan-2-yl]-5-iodopyrimidin-2-one Chemical compound C[C@H]1[C@H](O)[C@@H](CO)O[C@H]1N1C(=O)N=C(N)C(I)=C1 OUXCBPLFCPMLQZ-WOPPDYDQSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
令牌暂存-匹配-转发单元可以被用于数据流电路实现令牌暂存、令牌匹配和令牌转发功能,其特征在于:整个单元由令牌暂存单元、令牌匹配单元和令牌转发单元构成,令牌暂存单元由令牌暂存器和令牌标志位两部分组成,令牌标志位由一组C单元构成,表示令牌是否就绪,令牌匹配单元由匹配逻辑、锁存器、仲裁器和一个多路选择器构成,其中匹配逻辑和仲裁器的具体形式需要根据应用要求进行配置,令牌匹配单元根据令牌暂存器中令牌的情况,输出就绪令牌的地址,令牌转发单元取出这个就绪的令牌,令牌转发单元由两个C单元、一个与门、一个或门、一个延时单元和输出寄存器构成,两个C单元实现转发单元与周围单元的握手通信,延时单元保证暂存器中的令牌可以正确地写入输出暂存器中,与门和或门保证clear信号和lock信号的时序正确。
Description
技术领域
本发明属于采用数据流结构的专用集成电路领域.
背景技术
1.数据流图和数据流结构电路
数据流图由节点和有向线段组成,典型的数据流图如图1所示。当一个算法用数据流图表示时,节点代表了某一个操作,如加法;有向线段代表了数据的流向,表示了数据流图中各个操作间的数据依赖关系。下面介绍数据依赖关系的概念。对于一个算法,存在一系列操作,假设操作A的输出是操作B的输入,则B与A就存在数据依赖关系,B必须在A执行后才能执行。数据流图中操作的执行顺序是由依赖关系决定的。
一个算法的数据流图可以直接映射成为电路,节点映射成硬件计算单元,有向线段映射成为硬件单元之间通信的通路,按照这种方法映射成的电路是数据流结构电路。数据流结构电路中,单元之间传递的数据被称作“令牌”,一个令牌是服从一定格式的定长二进制串,每一位有特定的含义。例如,下面给出的一个令牌就包含了数据域、源地址、目标地址3个域,它们在令牌中的位置为:低32位是数据域;第37位到第35位和第34位到第32位分别是3位的目标地址和源地址。在数据流结构电路中,一个计算单元被“激活”——开始处理数据的条件是该操作的所有输入令牌都到达(即该操作所依赖的运算都已经执行)。计算单元完成运算后将产生的结果打包成新的令牌传给它的后继操作。控制信息也通过令牌传达——例如例子中的源地址和目标地址就分别指示了数据的来源和处理后应该发送的目的地;一些控制命令也被封装成令牌(控制令牌),传递给被控制的运算。
数据流电路没有中央控制电路,数据交换具有局域性,相应地,数据总线和存储单元也是分布式的。数据运算的触发是以操作数令牌是否全部到达为条件的,属于数据驱动的异步工作。没有数据依赖关系的操作彼此没有影响,自然地实现并行执行。
综上所述,数据流计算具有并行性、函数性(即每个操作相对独立,且无关操作可以按任意顺序执行。)、分布性、异步性的特点。
2.异步电路和异步通道
一个异步电路系统,各部分电路之间通过异步传输通道连接。异步传输通道是对一组信号的抽象:包括一组数据总线和请求、应答信号。异步系统中各个单元间的通信遵从一种称为“握手协议”的通信协议。
异步集成电路没有时钟,握手协议包含两种控制信号:请求(request)信号和应答(acknowledge)信号。请求信号启动一个工作,应答信号表示工作完成。这两个信号可以完成系统中所有运算的时序控制。用电路实现握手信号,需要把交替出现的请求和应答信号编码成控制线上的电平或电平变化,下面介绍一种常用的4相位握手协议(见错误!未找到引用源。)。
请求信号的上升沿通知接收方有数据到达,接收方准备好接受数据后升高应答信号,表示准备就绪,同时开始读取数据,请求信号又被应答信号复位,请求信号的下降沿再把应答信号复位,准备接受下一个数据。其中传输通道上的数据存储在一个锁存器中。(锁存器有一个控制端,当控制端为低电平时输出随输入变化,当控制端为高时输出端的数据保持不变。)在4相位握手的异步传输通道中,锁存器的控制端与应答信号相连,即当应答信号升高后将发送方的数据锁存入锁存器,待一次通信过程结束后才可以接受输入端的数据。
在异步电路中经常用到一种称为C单元的时序控制电路,此种电路有2个输入1个输出,一般还有一个复位端,当两个输入全为1时,输出为1;当两个输入全为0时输一出0;当两个输入不同时,输出保持原来的状态。由C单元实现的4相位握手协议的异步传输通道如图3所示。
3.令牌暂存-匹配-发射结构
数据流计算的内容就是对于令牌的处理,具体包括令牌的创建(发射)、解析、处理,以及令牌的暂存和各个令牌的匹配。对于多个操作数的操作,各个操作数的令牌往往不是同时到达,因此需要一个暂存单元把到达的令牌暂存起来,然后对所有已到达的令牌进行“匹配”,当发现一对(或多个)就绪的操作数令牌就打包成新的令牌发射到处理单元。
李翔宇在其博士论文《密码集成电路的非算法抗功耗分析设计方法研究》中提出了一种实现上述令牌暂存匹配和转发功能的结构,称之为令牌暂存-匹配-发射结构,简称作HMF单元。
HMF单元的结构如图4所示,它由令牌暂存器、匹配单元和发射电路组成,其中rand是发明中所述的随机选择码,在此称为顺序控制码。图中实心宽箭头表示HMF与外部间的传输通道。WA和WD分别表示暂存器的写地址和输入数据端口,RA和RD分别表示读地址和输出数据端口。
其工作方式是:外部输入的令牌先存储于暂存器中。暂存器中每个令牌记录都有相应的“满/空”标志位(flag),在数据写入时flag置1,读出后CLR信号的高电平则将RA所指的记录清空(对应的flag位复位)。CLR_done是CLR信号的应答信号,它的下降沿表示flag复位完成。
匹配单元读取暂存器内部所有令牌的flag位以及与匹配条件相关的令牌标签域(Tags)以此计算它们的匹配函数(匹配条件的命题公式)值作为发明所述的匹配结果。fetch即是发明所述的令牌发射触发信号。select即为发明所述的选择信号,address即为发明所述的令牌暂存单元的读地址,data即为发明所述的令牌暂存单元的输出数据。打包成新的令牌发送到执行单元。执行单元的应答信号触发clear驱动CLR端口,此时,发射电路再次进入空闲状态。发射电路在发送操作过程中不处理新的发送请求。
本发明以李翔宇提出的HMF单位为基础,提出了一个新的HMF单元实现形式。本发明的HMF单元仍由令牌暂存器、匹配单元和发射电路三部分组成,但是具体的实现方式与李翔宇提出的HMF单元不同。所以在给出本发明HMF单元的实现方式之前,首先要介绍李翔宇提出的HMF单元结构。
1)令牌暂存器
令牌暂存器存储输入令牌和数据标识位。图5是一个4单元暂存器的示意图,图中仅画出了一组存储单元。每组单元由一组寄存器和一个flag标志电路组成,寄存器时钟(clk)的上升沿在clr为0时将flag置1,清除信号(clr)的正脉冲在clk为0时可以将flag复位。WA和WD由输入令牌解析,reqin和ackin分别表示输入通道端口的写请求和写应答信号。只有当flag信号为0时才能接受请求,数据在写请求被接受后写入寄存器。输出数据则通过一级多路选择器(MUX)直接输出,RD随RA即时变化。CLR信号经过RA的选择触发对应单元的clr信号,当所有clr信号都降低后CLR_done下降,作为记录清除过程结束的标志。
2)匹配单元
图6是一个基本的4请求匹配单元结构,其由匹配逻辑部分、请求仲裁部分和选择保持-请求阻塞电路三部分组成。
匹配逻辑部分实现匹配函数计算,由组合电路实现,计算结果通过C单元送达仲裁器成为请求信号。
仲裁器采用了May D.论文中的R-box电路,如图7所示,这是一个4选1的仲裁逻辑。I0~I3表示输入的请求,A0、A1是被选中的请求的序号。
暂存器进行数据读写的时刻不确定,设计时认为观测端口的信号随时可能变化,仲裁器的输出端也随之不断变化,因此需要同步select信号与令牌数据,以保证输出通道的请求信号有效时发射电路的输出数据是稳定的。因此在仲裁器输出端设置select锁存器。锁存信号为lock,lock=0时锁存器透明。select对应的令牌清空后,对应的请求信号复位——此时select仍然没有变化——fetch也随之复位。另一方面,图中的C单元和4输入或门组成了反馈阻塞电路。只要请求信号中存在有效请求就会阻塞新请求的通过,只有所有仲裁输入端的有效请求都复位后C单元才重新导通。阻塞电路使得仲裁器输出经过一定时间后必然能够稳定,在fetch上升后经过相同的延时再采样select即可避免“冒险”。
3)发射电路
图8是发射电路部分的电路结构图。图8中寄存器R与C单元是令牌的接收通道;阴影部分的电路是地址锁存信号lock的产生电路;req和ack分别是输出通道端口的请求信号和应答信号,ackout是下一级电路的应答信号。其余信号与图3对应;d1是用于延时匹配的延时单元。
电路中所有时序单元的初始状态全为0,fetch的上升沿经过d1(select的稳定时间)延时后成为fetch_d信号。fetch_d的上升沿首先触发lock信号,将有效请求的序号锁存。req由lock门控输出。lock信号在req的上升沿至clr_ack下降沿之间的时间内始终保持高电平。以上提到HMF单元的实现方案比较复杂,尤其是匹配单元和发射电路部分。整个HMF单元是一个异步设计,而发送电路部分却使用了一个同步设计中常用到的状态机。这种实现方式模块性差,可移植性差,设计过程中需要人工干预。本发明解提出的HMF实现方案避免了以上问题,具有好的扩展性和可移植性,可以作为数据流电路中的模板,实现令牌暂存、匹配和转发功能。
发明内容:
本发明的目的是提出一种数据流电路中实现令牌暂存、匹配和转发功能的电路结构。该结构具有一定的通用性,可以作为模板用于数据流电路实现令牌的暂存、匹配和转发。
本发明提出的令牌暂存-匹配-转发单元,由令牌暂存单元、令牌匹配单元和令牌转发单元三个单元组成,具有以下特征:
令牌暂存单元的输入端口有,请求端口(Req),写操作的地址端口(WA,write address),写操作的数据端口(WD,write data),读操作的地址端口(RA,read address),令牌清除端口(clear),输出端口有,令牌标志位端口(flag),读操作的数据端口(RD,read address),应答端口(Ack);
令牌暂存单元的写操作的地址端口(WA)和写操作的数据端口(WD)分别连接输入令牌的地址信号和数据信号,请求端口(Req)连接输入请求信号(req),应答端口输出应答信号(ack),请求信号和应答信号是一对握手信号,与其他单元完成握手协议;
令牌暂存单元的令牌标志位端口(flag)输出令牌标志位信号(flag),令牌标志信号(flag)是令牌匹配单元的输入;
令牌暂存单元的令牌清除端口(clear)连接令牌转发单元发送的令牌清除信号(clear),读操作的地址端口(RA,read address)连接令牌匹配单元发送的地址信号(raddr),令牌暂存单元从读操作的数据端口(RD,read data)输出地址信号指定的数据(rdata),该数据信号(rdata)是令牌转发单元的输入信号;
令牌匹配单元的输入信号端口有,令牌标志位端口(flag),锁存信号端口(lock),输出信号端口有,地址端口(raddr),请求信号端口(fetch);
令牌匹配单元的令牌标志位端口连接令牌暂存单元输出的令牌标志位信号(flag),锁存信号端口连接令牌转发单元输出的锁存信号(lock),地址端口输出地址信号(raddr),该信号是令牌暂存单元的输入信号,请求端口信号输出请求信号(fetch),该信号是令牌转发单元的输入信号;
令牌转发单元的输入信号端口有,输入请求信号端口(fetch),应答信号端口(ack),数据端口(data),输出信号端口有,锁存信号端口(lock),令牌清除信号端口(clear),输出请求信号端口(req),输出令牌端口(output);
令牌转发单元的输入请求信号端口(fetch)连接令牌匹配单元输出的请求信号(fetch),应答信号端口(ack)连接外部握手协议中的应答信号,数据端口(data)连接令牌暂存单元输出的令牌,锁存信号端口(lock)输出锁存信号,该信号是令牌匹配单元的输入信号,令牌清除信号端口(clear)输出令牌清除信号,该信号是令牌暂存单元的输入信号,输出请求信号端口(req)输出外部握手协议的请求信号(req),输出令牌端口(output)向外部输出令牌暂存-匹配-转发单元输出的令牌;
本发明提出的令牌暂存单元具有以下特征:
令牌暂存单元有以下输入端口,写操作的数据端口(WD,write data),写操作的地址端口(WA,write address),输入请求端口(Req),令牌清除端口(clear),读操作的地址端口(RA,read address),令牌标志位端口(flag),有以下输出端口,输出应答端口(Ack),读操作的数据端口(RD,read data);
写操作的地址端口(WA)的输入信号是令牌的地址信号(waddr),waddr是多路开关MUX1和多路开关MUX2的输入信号,写操作的数据端口(WD)的输入信号是令牌的数据信号(wdata),输入请求端口的输入是握手协议的请求信号(req),该信号是C单元cin的输入,cin的另一个输入是内部的应答信号(ack_in),cin的输出是内部请求信号(req_in),该信号也是外部的应答信号(ack),MUX1的输入信号是waddr信号和wdata信号,其输出信号是n组信号(data_in[0]~data_in[n-1]),每组信号的位宽与wdata信号的位宽一样,n为令牌暂存器的个数即可以存储多少个令牌,MUX2的输入信号是waddr信号和req_in信号,MUX2的输出信号是n个信号(req[0]~req[n-1]),n为令牌暂存器的个数也为令牌标志位的个数,多路开关DEMUX1的输入是waddr信号和n个信号(flag[0]~flag[n-1]),DEMUX1的输出信号是ack_in信号,令牌暂存器中有n个C单元,req[0]~req[n-1]分别为n个C单元的输入,clear[0]~clear[n-1]分别为n个C单元的输入,n个C单元的输出为flag[0]~flag[n-1],令牌暂存单元的标志位端口(flag)输出flag[0]~flag[n-1],令牌暂存单元中有n个寄存器(data[0]~data[n-1]),n个寄存器的数据输入分别为信号data_in[0]~data[n-1],n个寄存器的请求信号分别为信号req[0]~req[n-1],n个寄存器的输出分别为信号dout[0]~dout[n-1],令牌清除端口(clear)的输入信号是令牌转发单元输出的令牌清除信号(clear),读操作的地址端口(RA)的输入是令牌匹配单元输出的地址信号(raddr),读操作的数据端口(RD)输出读出的数据信号(rdata),该信号是令牌转发单元的输入信号,多路开关MUX3的输入是clear信号和raddr信号,MUX3的输出是n个信号(clear[0]~clear[n-1]),多路开关DEMUX2的输入是raddr信号和n组信号(dout[0]~data[n-1]),每一组信号的位宽与rdata信号的位宽一致,DEMUX2的输出是rdata信号;
本发明提出的令牌匹配单元具有以下特征:
令牌匹配单元的输入端口有,令牌标志位端口(flag),锁存端口(lock),令牌匹配单元的输出端口有,地址端口(raddr),请求信号端口(fetch);
令牌标志位端口的输入信号是令牌标志位信号(flag),该信号是令牌暂存单元的输出信号,flag信号是Match Logic的输入信号,Match Logic的输出信号是n个信号(r[0]~r[n-1]),信号r[0]~r[n-1]是锁存器Latch的输入信号,Latch的另一个输入是锁存端口(lock)的输入信号lock,该信号是令牌转发单元的输出信号,Latch的输出信号是n个信号(L[0]~L[n-1]),信号L[0]~L[n-1]是仲裁器(Arbiter)的输入,仲裁器的输出是地址信号(raddr),该信号是令牌暂存单元的输入信号,仲裁器可能还需要其他外部信号(这需要根据仲裁器的具体形式确定),信号raddr是多路开关MUX的控制输入,信号r[0]~r[n-1]是MUX的输入,MUX的输出是请求信号fetch,该信号是令牌转发单元的输入信号;
本发明提出的令牌转发单元具有以下特征:
令牌转发单元的输入信号端口有,输入请求信号端口(fetch),应答信号端口(ack),数据端口(data),输出端口有,锁存信号端口(lock),令牌清除信号端口(clear),输出请求信号端口(req),输出令牌端口(output);
输入请求信号端口(fetch)输入请求信号fetch,fetch信号是C单元C1的输入,C1的另一个输入是输出请求信号端口输出的req信号,C1的输出是延时单元delay的输入,延时单元delay的输出是C单元C2的输入,C2的另一个输入是应答信号端口(ack)输入的应答信号ack,C2的输出是请求信号req,该信号也是输出寄存器R的触发信号,寄存器R的数据输入信号是数据端口(data)输入的令牌(data),寄存器R的输出信号是output,该信号是输出令牌端口的输出信号,两输入或门b的输入信号分别是C1的输出信号和C2的输出信号,b的输出信号是lock信号,两输入与门a的输入信号分别是是C1的输出信号和C2的输出信号,a的输出信号是clear信号。
本发明的实验结果
本发明提出的令牌暂存-匹配-转发电路实现了数据流电路中令牌暂存、令牌匹配和令牌转发的功能。本发明提出的令牌暂存-匹配-转发电路已经被用到了一个实际芯片中。该芯片被称作THUAES06,采用数据流结构,实现了AES算法。AES算法是一个分组的密码算法,每一个分组为128位,由16个字节组成,算法需要对每个分组计算若干轮,每一轮中需要对16个字节进行一系列变换,得到一个新的分组。附录中将详细介绍了AES算法。
THUAES06是一个字节粒度的数据流电路,每个运算单元一次处理分组中的一个字节,由于每个分组由16个字节组成,对于AES中的多目运算,每一轮中将有16组输入令牌,对于算法中的多目运算单元,需要令牌暂存-匹配-转发的结构。
THUAES06使用了本发明的令牌暂存-匹配-转发结构,该芯片已经在中芯国际0.18μm的工艺下流片,并通过了功能测试。
附图说明
图1为一个数据流图
图2为异步电路四相位握手协议
图3为由C单元组成的四相位异步传输通道
图4为李翔宇博士论文里提出的HMF单元结构
图5为李翔宇博士论文里提出的4单元暂存器
图6为李翔宇博士论文里提出的4请求匹配单元结构
图7四选一仲裁器(a)R-box0(b)R-box1(c)整体电路。
图8为李翔宇博士论文里提出的令牌发射电路
图9为本发明提出的令牌暂存-匹配-转发单元的结构
图10为本发明提出的令牌暂存单元的结构
图11为本发明提出的令牌匹配单元的结构
图12为本发明提出的令牌转发单元的结构
图13为THUAES06中使用的Arbiter的结构,a)R-box b)16选一仲裁器c)R-box1 d)R-box2
具体实施方式:
THUAES06是一个数据流结构的专用集成电路,实现了AES算法。AES中Addkey操作是一个双目运算(有两个输入),每轮中状态分组的16个字节都要和相应的密钥进行Addkey运算。THUAES06中的Addkey运算单元的输入和输出均为一个字节,每轮中16个状态字节和相应的密钥就绪的时间可能不同,需要一个单元对每一轮Addkey的两个输入进行同步和匹配,因此THUAES06采用了本发明提出的令牌暂存-匹配-转发结构。下面首先介绍令牌暂存-匹配-转发单元的一般结构,该结构是一个参数化的结构。这种一般结构是可配置的结构,设计时设计者把一般结构作为模板,通过配置结构中的参数得到所需的特定结构。
1.令牌暂存-匹配-发送单元的一般结构
图9为本发明提出的令牌暂存-匹配-发送单元的结构。该结构由令牌暂存单元、令牌匹配单元和令牌转发单元三部分组成。下面分别介绍令牌暂存-匹配-转发单元的一般结构。
1)令牌暂存单元
a)令牌暂存单元的输入输出端口
令牌暂存单元的输入端口有,请求端口(Req),写操作的地址端口(WA,write address),写操作的数据端口(WD,write data),读操作的地址端口(RA,read address),令牌清除端口(clear),输出端口有,令牌标志位端口(flag),读操作的数据端口(RD,readaddress),应答端口(Ack)。令牌暂存单元的写操作的地址端口(WA)和写操作的数据端口(WD)分别连接输入令牌的地址信号和数据信号,请求端口(Req)连接输入请求信号(req),应答端口输出应答信号(ack),请求信号和应答信号是一对握手信号,与其他单元完成握手协议;
令牌暂存单元的令牌标志位端口(flag)输出令牌标志位信号(flag),令牌标志信号(flag)是令牌匹配单元的输入。令牌暂存单元的令牌清除端口(clear)连接令牌转发单元发送的令牌清除信号(clear),读操作的地址端口(RA,read address)连接令牌匹配单元发送的地址信号(raddr),令牌暂存单元从读操作的数据端口(RD,read data)输出地址信号指定的数据(rdata),该数据信号(rdata)是令牌转发单元的输入信号。
b)令牌暂存单元的内部结构
本发明提出的令牌暂存单元的结构如图10所示。C单元“cin”与上游单元实现握手协议。“cin”的两个输入信号分别是外部的输入请求信号req和内部多路开关DEMUX1的输出信号ack_in;“cin”的输出信号是内部多路开关MUX2的输入信号req_in。令牌中的地址信息用信号waddr表示,令牌中的数据信息用wdata表示。多路开关MUX1的输入信号分别是wdata和waddr;MUX1的输出是n组信号din[0]~din[n-1],每组信号的位宽与wdata信号的位宽一致,这n组信号分别是寄存器组data[0]~data[n-1]的输入,即din[x]是寄存器data[x]的输入。多路开关MUX2的输入信号分别是waddr和cin的输出信号req_in;MUX2的输出信号是n个信号req[0]~req[n-1],这n个信号分别是寄存器组data[0]~data[1]的输入触发信号,同时这n个信号分别是标志位F[0]~F[n-1]的输入信号。暂存单元中的n个标志位是由n个C单元F[0]~F[n-1]组成的,每一个标志位对应一组寄存器,如F[0]对应寄存器组data[0],标志位F[0]~F[n-1]的输入分别为多路开关MUX2的输出req[0]~req[n-1]和多路开关MUX3的输出clear[0]~clear[1];标志位F[0]~F[n-1]的输出为n个信号flag[0]~flag[n-1],flag[0]~flag[n-1]是令牌暂存单元的输出,是令牌匹配单元的输入,同时也是多路开关DEMUX1的输入。令牌暂存单元中有n组寄存器data[0]~data[n-1],每组寄存器存储一个令牌,寄存器data[0]~data[1]的输入分别为din[0]~din[n-1]和req[0]~req[n-1],其中din[0]~din[n-1]是多路开关MUX1的输出,req[0]~req[n-1]是多路开关MUX2的输出;寄存器data[0]~data[n-1]的输出是dout[0]~dout[n-1],dout[0]~dout[n-1]的位宽与din[0]~din[n-1]一致,同时dout[0]~dout[n-1]是多路开关DEMUX2的输入。多路开关DEMUX2的输入是dout[0]~dout[n-1]和raddr,raddr是令牌暂存单元的输入信号,是令牌匹配单元的输出信号。MUX3的输入分别是信号raddr和信号clear,clear信号是令牌暂存单元的输入,是令牌转发单元的输出;MUX3的输出是n个信号clear[0]~clear[n-1]。
2)令牌匹配单元
a)令牌匹配单元的输入输出
令牌匹配单元的输入信号端口有,令牌标志位端口(flag),锁存信号端口(lock),输出信号端口有,地址端口(raddr),请求信号端口(fetch)。令牌匹配单元的令牌标志位端口连接令牌暂存单元输出的令牌标志位信号(flag),锁存信号端口连接令牌转发单元输出的锁存信号(lock),地址端口输出地址信号(raddr),该信号是令牌暂存单元的输入信号,请求端口信号输出请求信号(fetch),该信号是令牌转发单元的输入信号。
b)令牌匹配单元的内部结构
本发明中的令牌匹配单元的结构如图11所示。匹配逻辑是一个组合逻辑,输入是令牌暂存单元输出的flag信号,输出是一个n比特的向量r[0]~r[n-1],表示哪些组输入令牌已经就绪,n比特的每一位都对应一组输入令牌。匹配逻辑的输出是锁存器的输入,锁存器的另一个输入是令牌转发单元的输出信号lock;锁存器的输出是n比特信号L[0]~L[n-1],同时这n位信号也是仲裁器的输入。仲裁器的输入信号是n比特信号L[0]~L[n-1],输出信号是raddr。仲裁器的作用是从就绪的令牌组中选择一组,输出该组在令牌暂存器中的地址给令牌转发单元和令牌暂存单元。令牌匹配单元中的多路开关MUX的输入分别是匹配逻辑的输出r[0]~r[n-1]和仲裁器的输出raddr;MUX的输出是信号fetch,该信号是令牌转发单元的输入。
3)令牌转发单元
a)令牌转发单元的输入输出
令牌转发单元的输入信号端口有,输入请求信号端口(fetch),应答信号端口(ack),数据端口(data),输出信号端口有,锁存信号端口(lock),令牌清除信号端口(clear),输出请求信号端口(req),输出令牌端口(output)。令牌转发单元的输入请求信号端口(fetch)连接令牌匹配单元输出的请求信号(fetch),应答信号端口(ack)连接外部握手协议中的应答信号,数据端口(data)连接令牌暂存单元输出的令牌,锁存信号端口(lock)输出锁存信号,该信号是令牌匹配单元的输入信号,令牌清除信号端口(clear)输出令牌清除信号,该信号是令牌暂存单元的输入信号,输出请求信号端口(req)输出外部握手协议的请求信号(req),输出令牌端口(output)向外部输出令牌暂存-匹配-转发单元输出的令牌。
b)令牌转发单元的内部结构
令牌转发单元的结构如图12所示。C单元C1的输入是fetch信号和C2的输出信号req,C1的输出是延时单元delay的输入。延时单元delay的输出是C2的输入,C2的另一个输入是ack。C2的输出是req信号,该信号是输出寄存器的触发信号,该信号由0变为1时,令牌暂存器中的令牌被锁存。令牌转发单元中的与门a,或门b的作用是保证clear和lock信号的时序正确,与门a和或门b的输入分别是C1和C2的输出,a和b的输出是clear和lock。延时单元delay确保当C2的输出由0变为1时,令牌暂存器中的令牌已经被取出并出现在输出寄存器的输入端。Lock信号为1后匹配单元输出的地址信号稳定,令牌转发单元开始从暂存单元中取数据,为了保证该数据被存入输出寄存器,delay单元延时需要大于从令牌暂存器取数的延时,该延时单元的具体延时可以表示为:
Tdelay+Tcelement≥Tb+Tlatch+Tarbiter+Trdata+Tsetup
其中Tdelay是delay单元的延时,Tcelement是C单元的延时,Tb是或门b的延时,Tlatch和Tarbitcr分别是匹配单元中锁存器和仲裁器的延时,Trdata是从暂存单元取出令牌的延时,Tsetup是输出寄存器的setup时间。
2.THUAES06中的令牌暂存-匹配-转发单元
THUAES06采用了本发明提出的令牌暂存-匹配-转发单元,该单元为双目运算单元Addkey提供令牌暂存、匹配和转发服务。THUAES06中的令牌暂存-匹配-转发单元以上面提到的一般结构为模板,根据AES算法的特点和THUAES06面向应用的要求确定了模板中的参数,确定了Matchlogic和Arbiter的具体形式。
THUAES06的令牌暂存单元存放的令牌的数目是16,令牌标记的数目也是16,分别对应着一个分组中的16个字节。令牌匹配单元中MatchLogic由16个两输入的与门组成,与门的两个输入分别对应着Addkey操作两个操作数的标志位,两个操作数都就绪后与门的输出才为1。令牌匹配单元中的Arbiter按照一定规则从多个就绪的令牌中挑选一组,并输出该组令牌在暂存器中的地址。THUAES06要求令牌暂存-匹配-转发单元可以随机的从多个就绪的令牌中挑选一组,输出该组令牌的地址。为此THUAES06中的Arbiter采用了May D.论文中的R-box,如图7所示,这个Arbiter根据外部提供的随机数,从已就绪的令牌中随机选择一个,结构如图13所示。
Claims (1)
1.本发明提出的令牌暂存-匹配-转发单元,由令牌暂存单元、令牌匹配单元和令牌转发单元三个单元组成,具有以下特征:
令牌暂存单元的输入端口有,请求端口(Req),写操作的地址端口(WA,write address),写操作的数据端口(WD,write data),读操作的地址端口(RA,read address),令牌清除端口(clear),输出端口有,令牌标志位端口(flag),读操作的数据端口(RD,read address),应答端口(Ack);
令牌暂存单元的写操作的地址端口(WA)和写操作的数据端口(WD)分别连接输入令牌的地址信号和数据信号,请求端口(Req)连接输入请求信号(req),应答端口输出应答信号(ack),请求信号和应答信号是一对握手信号,与其他单元完成握手协议;
令牌暂存单元的令牌标志位端口(flag)输出令牌标志位信号(flag),令牌标志信号(flag)是令牌匹配单元的输入;
令牌暂存单元的令牌清除端口(clear)连接令牌转发单元发送的令牌清除信号(clear),读操作的地址端口(RA,read address)连接令牌匹配单元发送的地址信号(raddr),令牌暂存单元从读操作的数据端口(RD,read data)输出地址信号指定的数据(rdata),该数据信号(rdata)是令牌转发单元的输入信号;
令牌匹配单元的输入信号端口有,令牌标志位端口(flag),锁存信号端口(lock),输出信号端口有,地址端口(raddr),请求信号端口(fetch);
令牌匹配单元的令牌标志位端口连接令牌暂存单元输出的令牌标志位信号(flag),锁存信号端口连接令牌转发单元输出的锁存信号(lock),地址端口输出地址信号(raddr),该信号是令牌暂存单元的输入信号,请求端口信号输出请求信号(fetch),该信号是令牌转发单元的输入信号;
令牌转发单元的输入信号端口有,输入请求信号端口(fetch),应答信号端口(ack),数据端口(data),输出信号端口有,锁存信号端口(lock),令牌清除信号端口(clear),输出请求信号端口(req),输出令牌端口(output);
令牌转发单元的输入请求信号端口(fetch)连接令牌匹配单元输出的请求信号(fetch),应答信号端口(ack)连接外部握手协议中的应答信号,数据端口(data)连接令牌暂存单元输出的令牌,锁存信号端口(lock)输出锁存信号,该信号是令牌匹配单元的输入信号,令牌清除信号端口(clear)输出令牌清除信号,该信号是令牌暂存单元的输入信号,输出请求信号端口(req)输出外部握手协议的请求信号(req),输出令牌端口(output)向外部输出令牌暂存-匹配-转发单元输出的令牌;
所述的令牌暂存单元具有以下特征:
令牌暂存单元有以下输入端口,写操作的数据端口(WD,write data),写操作的地址端口(WA,write address),输入请求端口(Req),令牌清除端口(clear),读操作的地址端口(RA,read address),令牌标志位端口 (flag),有以下输出端口,输出应答端口(Ack),读操作的数据端口(RD,read data);
写操作的地址端口(WA)的输入信号是令牌的地址信号(waddr),waddr是多路开关MUX1和多路开关MUX2的输入信号, 写操作的数据端口(WD)的输入信号是令牌的数据信号(wdata),输入请求端口的输入是握手协议的请求信号(req),该信号是C单元cin的输入,cin的另一个输入是内部的应答信号(ack_in),cin的输出是内部请求信号(req_in),该信号也是外部的应答信号(ack),MUX1的输入信号是waddr信号和wdata信号,其输出信号是n组信号(data_in[0]~data_in[n-1]),每组信号的位宽与wdata信号的位宽一样,n为令牌暂存器的个数即可以存储多少个令牌,MUX2的输入信号是waddr信号和req_in信号,MUX2的输出信号是n个信号(req[0]~req[n-1]),n为令牌暂存器的个数也为令牌标志位的个数,多路开关DEMUX1的输入是waddr信号和n个信号(flag[0]~flag[n-1]),DEMUX1的输出信号是ack_in信号,令牌暂存器中有n个C单元,req[0]~req[n-1]分别为n个C单元的输入,clear[0]~clear[n-1]分别为n个C单元的输入,n个C单元的输出为flag[0]~flag[n-1],令牌暂存单元的标志位端口(flag)输出flag[0]~flag[n-1],令牌暂存单元中有n个寄存器(data[0]~data[n-1]),n个寄存器的数据输入分别为信号data_in[0]~data[n-1],n个寄存器的请求信号分别为信号req[0]~req[n-1],n个寄存器的输出分别为信号dout[0]~dout[n-1],令牌清除端口(clear)的输入信号是令牌转发单元输出的令牌清除信号(clear),读操作的地址端口(RA)的输入是令牌匹配单元输出的地址信号(raddr),读操作的数据端口(RD)输出读出的数据信号(rdata),该信号是令牌转发单元的输入信号,多路开关MUX3的输入是clear信号和raddr信号,MUX3的输出是n个信号(clear[0]~clear[n-1]),多路开关DEMUX2的输入是raddr信号和n组信号(dout[0]~data[n-1]),每一组信号的位宽与rdata信号的位宽一致,DEMUX2的输出是rdata信号;
所述的令牌匹配单元具有以下特征:
令牌匹配单元的输入端口有,令牌标志位端口(flag),锁存端口(lock),令牌匹配单元的输出端口有,地址端口(raddr),请求信号端口(fetch);
令牌标志位端口的输入信号是令牌标志位信号(flag),该信号是令牌暂存单元的输出信号,flag信号是Match Logic的输入信号,Match Logic的输出信号是n个信号(r[0]~r[n-1]),信号r[0]~r[n-1]是锁存器Latch的输入信号,Latch的另一个输入是锁存端口(lock)的输入信号lock,该信号是令牌转发单元的输出信号,Latch的输出信号是n个信号(L[0]~L[n-1]),信号L[0]~L[n-1]是仲裁器(Arbiter)的输入,仲裁器的输出是地址信号(raddr),该信号是令牌暂存单元的输入信号,仲裁器可能还需要其他外部信号(这需要根据仲裁器的具体形式确定),信号raddr是多路开关MUX的控制输入,信号r[0]~r[n-1]是MUX的输入,MUX的输出是请求信号fetch,该信号是令牌转发单元的输入信号;
所述的令牌转发单元具有以下特征:
令牌转发单元的输入信号端口有,输入请求信号端口(fetch),应答信号端口(ack),数据端口(data),输出端口有,锁存信号端口(lock),令牌清除信号端口(clear),输出请求信号端口(req),输出令牌端口(output);
输入请求信号端口(fetch)输入请求信号fetch,fetch信号是C单元C1的输入,C1的另一个输入是输出请求信号端口输出的req信号,C1的输出是延时单元delay的输入,延时单元delay的输出是C单元C2的输入,C2的另一个输入是应答信号端口(ack)输入的应答信号ack,C2的输出是请求信号req,该信号也是输出寄存器R的触发信号,寄存器R的数据输入信号是数据端口(data)输入的令牌(data),寄存器R的输出信号是output,该信号是输出令牌端口的输出信号,两输入或门b的输入信号分别是C1的输出信号和C2的输出信号,b的输出信号是lock信号,两输入与门a的输入信号分别是是C1的输出信号和C2的输出信号,a的输出信号是clear信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910093721 CN101692216B (zh) | 2009-10-15 | 2009-10-15 | 动态数据流结构中存储-匹配-转发单元电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910093721 CN101692216B (zh) | 2009-10-15 | 2009-10-15 | 动态数据流结构中存储-匹配-转发单元电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101692216A true CN101692216A (zh) | 2010-04-07 |
CN101692216B CN101692216B (zh) | 2013-05-22 |
Family
ID=42080907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910093721 Expired - Fee Related CN101692216B (zh) | 2009-10-15 | 2009-10-15 | 动态数据流结构中存储-匹配-转发单元电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101692216B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363675A (zh) * | 2018-02-05 | 2018-08-03 | 成都天诚慧芯科技有限公司 | 一种伴随时钟同步方法及数字图像伽马校正硬件实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1761185B (zh) * | 2005-11-18 | 2011-08-17 | 清华大学 | 乱序执行的数据流aes加密电路结构 |
-
2009
- 2009-10-15 CN CN 200910093721 patent/CN101692216B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108363675A (zh) * | 2018-02-05 | 2018-08-03 | 成都天诚慧芯科技有限公司 | 一种伴随时钟同步方法及数字图像伽马校正硬件实现方法 |
CN108363675B (zh) * | 2018-02-05 | 2021-03-05 | 成都天诚慧芯科技有限公司 | 一种伴随时钟同步方法及数字图像伽马校正硬件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101692216B (zh) | 2013-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6763426B1 (en) | Cascadable content addressable memory (CAM) device and architecture | |
US6128678A (en) | FIFO using asynchronous logic to interface between clocked logic circuits | |
WO2013090092A1 (en) | Boolean logic in a state machine lattice | |
EP2791854A2 (en) | Counter operation in a state machine lattice | |
EP1468372B1 (en) | Asynchronous crossbar with deterministic or arbitrated control | |
TW201224763A (en) | Dynamically configurable serial data communication interface | |
CN112486453B (zh) | 一种异步先入先出寄存器以及芯片 | |
CN102193888B (zh) | 数据传输系统与可编程串行外围设备接口控制器 | |
US6813703B2 (en) | Emulation system for data-driven processor | |
CN209149287U (zh) | 大数据运算加速系统 | |
CN112565115A (zh) | Tcp数据的传输方法、装置、计算机设备及存储介质 | |
CN101692216B (zh) | 动态数据流结构中存储-匹配-转发单元电路 | |
US20090063736A1 (en) | Low power digital interface | |
Suhaib et al. | Dataflow architectures for GALS | |
JP6094321B2 (ja) | バッファ回路及び半導体集積回路 | |
KR100947446B1 (ko) | Vliw 프로세서 | |
Kaps et al. | A comprehensive framework for fair and efficient benchmarking of hardware implementations of lightweight cryptography | |
CN107797956A (zh) | 双沿触发环形缓冲器及通信系统 | |
US9164730B2 (en) | Self-timed logic bit stream generator with command to run for a number of state transitions | |
CN103853692B (zh) | 一种基于中断判断机制的多处理器数据通讯方法 | |
CN208190652U (zh) | 一种全双工通用同步异步串行收发器的主板 | |
US20040111589A1 (en) | Asynchronous multiple-order issue system architecture | |
US9317295B2 (en) | Asynchronous pipeline system, stage, and data transfer mechanism | |
CN101576867B (zh) | 一种扩展通用异步串行接口方法、装置和系统 | |
CN105589820B (zh) | 一种数据传输缓冲装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130522 |