CN113867796B - 利用多状态机提高读性能的协议转换桥及实现方法 - Google Patents
利用多状态机提高读性能的协议转换桥及实现方法 Download PDFInfo
- Publication number
- CN113867796B CN113867796B CN202111457885.4A CN202111457885A CN113867796B CN 113867796 B CN113867796 B CN 113867796B CN 202111457885 A CN202111457885 A CN 202111457885A CN 113867796 B CN113867796 B CN 113867796B
- Authority
- CN
- China
- Prior art keywords
- request
- protocol
- response
- state machine
- state
- 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.)
- Active
Links
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000004044 response Effects 0.000 claims abstract description 128
- 238000012545 processing Methods 0.000 claims abstract description 7
- 230000008569 process Effects 0.000 claims description 10
- 230000009191 jumping Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000011144 upstream manufacturing Methods 0.000 claims description 6
- 230000000903 blocking effect Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 210000001072 colon Anatomy 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种利用多状态机提高读性能的协议转换桥及实现方法,包括用于将来自上行逻辑的请求报文转换为下行逻辑对应的请求报文的协议转换器,以及若干状态机和连接于协议转换器的请求缓冲器,请求缓冲器用于缓存本次请求的六元组,所述的状态机均连接于响应分发器和发送仲裁器,响应分发器用于接收来自下行逻辑的响应报文,根据响应报文从请求缓冲器中取得相应的六元组后依据六元组将响应报文分配给状态机处理,所述的发送仲裁器用于从多个处于发送状态的状态机中挑选一个作为输出。本方案的多状态机并列设置,且通过响应分发器将下行协议的读响应数据分发送入多个状态机中,通过多状态机中的状态来表征是否满足上行协议的时序约束。
Description
技术领域
本发明属于协议转换技术领域,尤其是涉及一种利用多状态机提高读性能的协议转换桥及实现方法。
背景技术
接口协议转换桥是硬件设计经常会遇到的一种数字电路模块。将一种接口协议转换为另一种接口协议时,需要一个协议转换桥来完成这种转换,比如将APB总线协议转换为AXI总线协议,或者将AXI总线协议转换为APB总线协议,就必须设计一个协议转换桥来完成这两种不同协议的转换。对于相同的协议,如果数据位宽不一致,也需要一个协议转换桥来进行转换。
在逻辑设计中,我们将协议转换桥转换前的协议称为“上行协议”,实现上行协议接口的逻辑称为“上行逻辑”;将协议转换桥转换后的协议称为“下行协议”,实现下行协议接口的逻辑称为“下行逻辑”。一般情况下,我们通常可以采用单个状态机和流水线的方式来实现上下行协议之间的转换,但如果上行协议的数据位宽小于下行协议的数据位宽,且上行协议的响应通道必须满足某些时序约束时,采用单状态机或者采用流水线的方式很可能会导致上行协议的响应通道的数据有效率不高,这就需要考虑如何在满足上行协议接口本身的时序约束下,充分利用上行协议响应通道的交叠特性来提高数据传输的性能。
发明内容
本发明的目的是针对上述问题,提供一种利用多状态机提高读性能的协议转换桥及实现方法。
为达到上述目的,本发明采用了下列技术方案:
一种利用多状态机提高读性能的协议转换桥,包括用于将来自上行逻辑的请求报文转换为下行逻辑对应的请求报文的协议转换器,以及若干状态机和连接于协议转换器的请求缓冲器,所述的请求缓冲器用于缓存本次请求的六元组,所述的状态机均连接于响应分发器和发送仲裁器,所述的响应分发器用于接收来自下行逻辑的响应报文,根据响应报文从请求缓冲器中取得相应的六元组后依据六元组将响应报文分配给状态机处理,所述的发送仲裁器用于从多个处于发送状态的状态机中挑选一个作为输出。
在上述的利用多状态机提高读性能的协议转换桥中,所述的请求报文包括读请求和写请求。
在上述的利用多状态机提高读性能的协议转换桥中,所述的六元组由请求通道抽象而来,所述的请求通道由上行协议抽象为数据通道而得。
在上述的利用多状态机提高读性能的协议转换桥中,所述的六元组为(O,T,A,L,M,WD),其中:
O为操作域,包括读请求R,写请求W;
T为标示域,用于表征一个请求的标示符;对于写请求,T为固定值0;对于读请求,T相同的两个读请求顺序完成;对于T不同的两个读请求可以乱序发送,乱序返回;对于同一个读请求产生的多个响应报文中T均等于相应读请求的标示域,且该多个响应报文按照数据对应的地址从低到高传输;
A为地址域,表征的是读请求/写请求的初始地址;
L为长度域,对于写请求,L恒为1;对于读请求,L 为大于0的正整数,表征的是读请求对应的响应报文的个数;
M为字节掩码域,WD为写数据域,分别表征将要写入到存储器的数据掩码和数据;WD的第i个字节对应的存储器地址为(A+i);M的第i位为1表示数据WD的第i个字节会写入到对应的存储器地址中去,为0则表示不修改对应的存储器地址的数据。
在上述的利用多状态机提高读性能的协议转换桥中,所述的下行协议被抽象为数据通道以得到响应通道,响应通道进一步被抽象为一个三元组(V,T,RD),所述的响应分发器用于接收来自下行逻辑的下行协议响应报文三元组,三元组中:
V为有效域,表征当前拍读响应数据是否有效;
T为标示域,表征当前响应报文与相应读请求相对应,相应读请求与当前响应报文具有相同的标示域;
RD为读数据域,表征根据读请求地址从存储器中读回的数据。
在上述的利用多状态机提高读性能的协议转换桥中,状态机数量等于Δ0;
Δ0表示上行协议中T相同的读响应报文之间最小时钟节拍间隔,Δ0≥1,且Δ0=1表示上行协议中T相同的任意两个读响应报文可以背靠背连续发送。
在上述的利用多状态机提高读性能的协议转换桥中,每个状态机包含三个状态:空闲态、预备态和发送态;
每个状态机均包含以下状态信息:正在处理的请求六元组CA,当前已发送上行协议响应报文个数CL,节拍寄存器C以及当前状态机处理数据队列DQ,该数据队列DQ的输入数据来自于响应分发器的下行协议响应报文,字节个数最大为W1;输出数据去往发送仲裁器,字节个数最大为W0;
W1表示下行协议WD和RD的字节个数,W0表示上行协议WD和RD的字节个数。
一种利用多状态机提高协议转换桥读性能的实现方法,包括以下步骤:
S1.协议转换器收到来自上行逻辑的请求报文后,将上行协议转换为下行协议,将下行协议请求报文发送给下行逻辑,并将请求的六元组信息缓存至请求缓冲器;
S2.响应分发器接收来自下行逻辑的响应报文,并根据响应报文从请求缓冲器取得相应的六元组,依据六元组将响应报文分配给状态机处理;
S3.发送仲裁器接收来自状态机的输出数据,并从多个处于发送状态的状态机中挑选一个作为向上行逻辑的输出。
在上述的多状态机提高协议转换桥读性能的实现方法中,所述协议转换器的实现方法包括:
S11.协议转换器收到来自上行协议的请求报文后,判断请求报文类型,若为写请求,执行步骤S12,若为读请求,执行步骤S13;
S12.令来自上行协议的写请求为(W,0,A0,1,M0,WD0),转换到下行协议后,对应的写请求变为(W,0,A0,1,M1,WD1),其中M1为M0高位补上(W1-W0 )个0得到的字节掩码,WD1为WD0高位补上8*(W1-W0)个0得到的数据;协议转换完毕,向请求缓冲器发送清除原始写请求的操作;
S13.令来自上行协议的读请求为(R,T0,A0,L0,-,-),转换到下行协议后,转换后对应的读请求为(R,T1,A0,L1,-,-),其中T1为请求缓冲器中保存上行协议请求的缓冲器索引,L1=⌈(L0*W0)/W1⌉,其中运算符⌈A⌉表示A向上取整,协议转换完毕;
所述响应分发器的实现方法包括:
S21.当响应分发器收到来自下行逻辑的下行协议响应报文三元组(1,T1,RD1)时,执行步骤22;
S22.以T1为索引向请求缓冲器发起读请求,获取请求缓冲器中第T1项缓存的原始请求六元组,记为(R,T0,A0,L0,-,-);与此同时,检查各状态机的状态,如果找到一个的CA寄存器的标示域等于T0的状态机i,则跳转到步骤23;否则,如果找到一个处于空闲态的状态机i,则跳转到步骤24;否则,重新执行步骤S22;
S23.检查状态机i的DQi是否满,如果DQi已满,那么当前响应报文将被阻塞暂时不能处理,重新执行步骤23;如果状态机i的DQi未满,那么把从下行逻辑接收到的W1字节的数据RD1存入状态机i的DQi的尾部,执行完毕,跳到步骤21;
S24.将W1字节的数据RD1存入状态机i的DQi尾部,同时置CAi =(R,T0,A0,L0,-,-),CLi = 0,触发状态机i进入预备态,回到步骤S21。
在上述的多状态机提高协议转换桥读性能的实现方法中,所述请求缓冲器的实现方法包括:
当上行协议的请求(O,T,A,L,M,WD)到达请求缓冲器时,请求缓冲器将本次请求六元组缓存下来;
当接收到协议转换器发送过来的清除原始写请求时,请求缓冲器删除对应的写请求;
当请求缓冲器收到响应分发器送来的读请求时,根据索引T1从请求缓冲器中读出第T1项的六元组返回给响应分发器;
当请求缓冲器收到某个状态机送来的清除读请求的操作时,根据清除请求的索引T1将请求缓冲器中的第T1项作废;
发送仲裁器的实现方法包括:
S31.令j为上一次被发送仲裁器选中作为输出的状态机编号,j初始值为0;令Ready是一个N位的二进制数,其中第i位Readyi表示第i个状态机(i=0,1,..., N-1)是否处于发送态,如果是发送态则Readyi=1,否则Readyi=0;
令Select为一个N位的二进制数,其中第i位Selecti为1表示第i个状态机(i=0,1,..., N-1)被选中进行输出,为0则表示状态机i未被选中;
S32.当前拍如果Ready=0,则Select=0,下一拍继续执行步骤32;否则,从Ready的第j位开始从低到高寻找Ready中第一个为1的位,如果找到第N-1位还没找到,则继续从第0位开始寻找,直到找到Ready中第一个为1的位,将索引号保存到j中,同时置Selectj=1,Select的其它位全部置0,下一拍继续执行步骤S32。
本发明的优点在于:
本发明使多状态机并列设置,且通过响应分发器将下行协议的读响应数据分发送入多个状态机中,通过多状态机中的状态来表征是否满足上行协议的时序约束;同时通过对多状态机中的响应数据进行仲裁调度,有效利用上行协议响应通道交叠特性从而提高协议转换桥中读响应数据的传输性能,能够在W0<W1和Δ0>1的两种约束情况下仍然保证较高的数据有效率和数据传输性能。
附图说明
图1为本发明利用多状态机提高读性能的协议转换桥结构示意图;
图2为本发明利用多状态机提高读性能的协议转换桥中协议转换器的实现方法流程图;
图3为本发明利用多状态机提高读性能的协议转换桥中的状态机状态图。
具体实施方式
下面结合附图本方案进行进一步说明:
如图1所示,本方案利用多状态机提高读性能的协议转换桥的实现方法中,将上行协议和下行协议分别抽象为两个数据通道:请求通道和响应通道。
请求通道进一步抽象为一个六元组(O,T,A,L,M,WD),其中:
O为操作域,主要包括读请求R,写请求W等操作。
T为标示域,用于表征一个请求的标示符。对于写请求,T为固定值0;对于读请求,T相同的两个读请求必须顺序完成,也就是说前一个标示域为T的读请求必须收到与该请求对应所有的响应报文和数据后才能发送第二个读请求;对于T不同的两个读请求可以乱序发送,乱序返回。对于同一个读请求产生的多个响应报文中T都相同,且等于相应读请求的标示域,且这多个响应报文按照数据对应的地址从低到高传输。
A为地址域,表征的是请求的初始地址,可能是读初始地址,也可能是写初始地址。
L为长度域,对于写请求,L恒为1;对于读请求,L为大于0的正整数,它表征的是读请求对应的响应报文的个数,即发送一个读请求需要收到的响应报文的个数。
M为字节掩码域,WD为写数据域,分别表征的是将要写入到存储器的数据掩码和数据。WD的第i个字节对应的存储器地址为(A+i);M的第i位为1表示数据WD的第i个字节会写入到对应的存储器地址中去,为0则表示不修改对应的存储器地址的数据。
响应通道进一步抽象为一个三元组(V,T,RD),其中:
V为有效域,表征当前拍读响应数据是否有效。
T为标示域,用于表征当前响应报文与哪一个读请求相对应,该读请求,即与当前响应报文相对应的读请求的标示域也为T;如果对应读请求中的长度域为L,则响应通道上一定会收到L个T相同的响应报文。
RD为读数据域,表征的是根据读请求地址从存储器中读回的数据。假设当前响应报文对应的读请求六元组为(R,T,A,L,-,-),RD的字节个数为W0,且当前响应报文为L个响应报文的第i个(i < L),则当前数据RD的第j个字节对应存储器中的地址为(A+i*W0+j)的数据。
令上行协议WD和RD的字节个数为W0,下行协议WD和RD的字节个数为W1,一般情况下,W0和W1均为2的幂次方。令Δ0为上行协议中T相同的读响应报文之间最小时钟节拍间隔,Δ0一定是大于0的正整数;如果Δ0=1,意味着上行协议中T相同的任意两个读响应报文可以背靠背的连续发送。
具体地,本方案利用多状态机提高读性能的协议转换桥主要由以下五个部分组成:
协议转换器,用于将来自上行逻辑的请求报文转换为下行逻辑对应的请求报文,协议转换器能处理来自上行逻辑的写请求,也能处理来自上行逻辑的读请求。
请求缓冲器,用于记录上行协议请求通道原始请求六元组的信息。
状态机0~(N-1),这N个状态机是同构的,具体实施中N一般设置为Δ0,每一个状态机都包含三个状态:空闲态、预备态和发送态。每个状态机包含以下状态信息:正在处理的请求六元组CA,当前已发送上行协议响应报文个数CL,节拍寄存器C(如果状态机成功发送了一个响应报文,则C自动清0,否则C每拍会自动加1)以及当前状态机处理数据队列DQ,该队列输入数据来自于响应分发器的下行协议响应报文,字节个数最大为W1个;输出数据去往发送仲裁器,字节个数最大为W0个。
响应分发器,用于接受来自下行逻辑的响应报文,并根据响应报文中的标示域从请求缓冲器取得原始请求的六元组,再分配给某个状态机进行处理。
发送仲裁器,用于从多个处于发送态的状态机中挑选一个状态机i构造上行协议的响应报文发送给上行逻辑,发送仲裁器需要考虑到负载平衡等因素,一般采用轮转调度的方式进行仲裁。
具体地,如图2所示,本方案利用多状态机提高协议转换桥读性能的实现方法包括:
S1.协议转换器收到来自上行逻辑的请求报文后,将上行协议转换为下行协议,将下行协议请求报文发送给下行逻辑,并将请求的六元组信息缓存至请求缓冲器;
S2.响应分发器接收来自下行逻辑的响应报文,并根据响应报文从请求缓冲器取得相应的六元组,依据六元组将响应报文分配给状态机处理;
S3.发送仲裁器接收来自状态机的输出数据,并从多个处于发送状态的状态机中挑选一个作为向上行逻辑的输出,同时将输出反馈给请求缓冲器。
具体地,协议转换器的实现方法包括:
S11,协议转换器收到来自上行协议的请求报文后,判断请求报文类型,如果是写请求,跳到S12;如果是读请求,跳到S13;如果没有请求,下一拍继续执行S11。
S12,令来自上行协议的写请求为(W,0,A0,1,M0,WD0),转换到下行协议后,对应的写请求变为(W,0,A0,1,M1,WD1),其中M1为M0高位补上(W1-W0 )个0得到的字节掩码,WD1为WD0高位补上8*(W1-W0)个0得到的数据,需要注意的是,这里M描述的是字节使能,而WD描述的数据是按位的,1位的字节使能位对应8位的数据位,所以数据上要乘上8。
即M1={(W1-W0 )’b0, M0},WD1={(8*(W1-W0) )' b0, WD0}。
协议转换完毕,向请求缓冲器发送清除原始写请求的操作,跳转到步骤S11。
S13,令来自上行协议的读请求为(R,T0,A0,L0,-,-),转换到下行协议后,转换后对应的读请求为(R,T1,A0,L1,-,-),其中T1为请求缓冲器中保存上行协议请求的缓冲器索引(假设上行协议请求保存在了请求缓冲器的第T1项中),L1=⌈(L0*W0)/W1⌉,其中运算符⌈A⌉表示A向上取整,协议转换完毕后跳转到S11。
响应分发器的实现方法包括:
S21.当响应分发器收到来自下行逻辑的下行协议响应报文三元组(1,T1,RD1)时,执行步骤22;
S22.以T1为索引向请求缓冲器发起读请求,获取请求缓冲器中第T1项缓存的原始请求六元组,记为(R,T0,A0,L0,-,-);与此同时,检查N个状态机的状态,如果从N个状态机中可以找到一个CA寄存器的标示域等于T0的状态机i,则跳转到步骤23;否则,如果从N个状态机中可以找到一个处于空闲态的状态机i,则跳转到步骤24;否则,重新执行步骤S22;
S23.检查状态机i的DQi是否满,如果DQi已满,那么当前响应报文将被阻塞暂时不能处理,下一拍重新执行步骤23;如果状态机i的DQi未满,那么把从下行逻辑接收到的W1字节的数据RD1存入状态机i的DQi的尾部,执行完毕,回到步骤S21;
S24.将W1字节的数据RD1存入状态机i的DQi尾部,同时置CAi=(R,T0,A0,L0,-,-),CLi=0,触发状态机i进入预备态,回到步骤S21。
进一步地,发送仲裁器用于从多个处于发送态的状态机中挑选一个状态机i构造上行协议的响应报文发送给上行逻辑,具体实现方法如下:
S31.令j为上一次被仲裁器选中作为输出的状态机编号,j初始值为0;令Ready是一个N位的二进制数,其中第i位Readyi表示第i个状态机(i=0,1,..., N-1)是否处于发送态,如果是发送态则Readyi=1,否则Readyi=0;
令Select为一个N位的二进制数,其中第i位Selecti为1表示第i个状态机(i=0,1,..., N-1)被选中进行输出,为0则表示状态机i未被选中,需要注意的是,Select中最多只能有一位为1;
S32.当前拍如果Ready=0,则Select=0,下一拍继续执行步骤S32;否则,从Ready的第j位开始从低到高寻找Ready中第一个为1的位,如果找到第N-1位还没找到,则继续从第0位开始寻找,直到找到Ready中第一个为1的位,将索引号保存到j中,同时置Selectj=1,Select的其它位全部置0,下一拍继续执行步骤S32。
进一步地,请求缓冲器具有四个并行工作的端口,分别为一个写端口,一个读端口和两个清除端口,其实现方法包括:
一个写端口连接于协议转换器,当上行协议的请求(O,T,A,L,M,WD)到达请求缓冲器时,请求缓冲器将本次请求六元组缓存下来,下一拍重复执行;
一个清除端口连接于协议转换器,当接收到协议转换器在将上行协议的写请求转换完成后发送过来的清除原始写请求时,请求缓冲器删除对应的写请求,下一拍重复执行;
一个读端口连接于响应分发器,当请求缓冲器收到响应分发器送来的读请求时,根据索引T1从请求缓冲器中读出第T1项的六元组返回给响应分发器,下一拍重复执行;T1表示的是响应分发器从下行逻辑收到的报文三元组中的T域的具体取值,以T1为索引读取请求缓冲器后,可以获得原始请求中T域的具体值为T0,返回给上行逻辑的响应三元组中的T域为T0值。
另一清除端口连接于发送仲裁器,当请求缓冲器收到某个状态机送来的清除读请求的操作时,根据清除请求的索引T1将请求缓冲器中的第T1项作废。
具体地,如图3所示,为了让读者更好地理解本方案,这里给出一个状态机的状态迁移图和迁移条件:
在状态迁移图中结点表示状态;边的方向表示状态的迁移方向;有向边上的注释中,冒号以前表示接收到的输入事件,冒号以后表示的是产生的输出事件,如果有多个“输出事件”或多个“输入事件”同时发生,需要用逗号“,”隔开。
状态机i中的事件包括:
A0事件:响应分发器选中本状态机i来处理响应报文;
A1事件:CLi=L0,表示该状态机所要发送的数据已经全部发送完成;
A2事件:CLi<L0,且响应分发器收到的响应报文对应请求报文的标示域与本状态机CAi中的标示域相同;
A3事件:CLi<L0,且节拍寄存器Ci≥Δ0,且DQi非空;
A4事件:发送仲裁器选中本状态机i作为输出;
B0事件:将W1字节的数据RD1存入状态机i的DQi尾部;
B1事件:置CAi=(R,T0,A0,L0,-,-),CLi=0;
B2事件:清除CAi寄存器;
B3事件:从DQi中读出W0字节数据RD0并构造上行协议响应报文(1,T0,RD0)返回给上行逻辑,并置CLi=CLi+1。
以下空闲态用0-IDLE表示、预备态用1-READY表示,发送态用2-SEND表示,状态机的状态迁移条件如下所述:
1)状态机i处于0-IDLE态:
当收到A0输入事件时,产生B0输出事件和B1输出事件,下一拍进入1-READY态;
2)状态机i处于1-READY态:
当收到A1输入事件时,产生B2输出事件,下一拍进入0-IDLE态;
当收到A2输入事件时,产生B0输出事件,下一拍保持1-READY态;
当收到A3输入事件时,下一拍进入2-SEND态;
当同时收到A2和A3输入事件时,产生B0输出事件,下一拍进入2-SEND态。
3)状态机i处于2-SEND态:
当收到A2输入事件时,产生B0输出事件,下一拍保持2-SEND态;
当收到A4输入事件时,产生B3输出事件,下一拍进入1-READY态;
如果同时收到A2和A4时输入事件,产生B0和B3输出事件,下一拍进入1-READY态。
本方案采用将下行协议的读响应数据分发送入多个状态机中,通过多状态机中的状态来表征是否满足上行协议的时序约束;同时通过对多状态机中的响应数据进行仲裁调度,可以有效利用上行协议响应通道交叠特性从而提高协议转换桥中读响应数据的传输性能,能够适用于W0<W1,Δ0>1的两种约束情况。
本领域技术人员应当知道文中各“-”的具体含义,如六元组(R,T0,A0,L0,-,-)及类似地方的“-”表示无, (W1-W0 )处的“-”表示减,(i=0,1,..., N-1)处的“-”表示减。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管本文较多地使用了协议转换桥、协议转换器、请求缓冲器、状态机、发送仲裁器、响应分发器、上行逻辑、上行协议、下行逻辑、下行协议等术语,但并不排除使用其它术语的可能性。使用这些术语仅仅是为了更方便地描述和解释本发明的本质;把它们解释成任何一种附加的限制都是与本发明精神相违背的。
Claims (10)
1.一种利用多状态机提高读性能的协议转换桥,包括用于将来自上行逻辑的请求报文转换为下行逻辑对应的请求报文的协议转换器,其特征在于,还包括若干状态机和连接于协议转换器的请求缓冲器,所述的请求缓冲器用于缓存本次请求的六元组,所述的状态机均连接于响应分发器和发送仲裁器,所述的响应分发器用于接收来自下行逻辑的响应报文,根据响应报文从请求缓冲器中取得相应的六元组后依据六元组将响应报文分配给状态机处理,所述的发送仲裁器用于从多个处于发送状态的状态机中挑选一个作为输出。
2.根据权利要求1所述的利用多状态机提高读性能的协议转换桥,其特征在于,所述的请求报文包括读请求和写请求。
3.根据权利要求2所述的利用多状态机提高读性能的协议转换桥,其特征在于,所述的六元组由请求通道抽象而来,所述的请求通道由上行协议抽象为数据通道而得。
4.根据权利要求3所述的利用多状态机提高读性能的协议转换桥,其特征在于,所述的六元组为(O,T,A,L,M,WD),其中:
O为操作域,包括读请求R,写请求W;
T为标示域,用于表征一个请求的标示符;对于写请求,T为固定值0;对于读请求,T相同的两个读请求顺序完成;对于T不同的两个读请求可以乱序发送,乱序返回;对于同一个读请求产生的多个响应报文中T均等于相应读请求的标示域,且该多个响应报文按照数据对应的地址从低到高传输;
A为地址域,表征的是读请求/写请求的初始地址;
L为长度域,对于写请求,L恒为1;对于读请求,L 为大于0的正整数,表征的是读请求对应的响应报文的个数;
M为字节掩码域,WD为写数据域,分别表征将要写入到存储器的数据掩码和数据;WD的第i个字节对应的存储器地址为(A+i);M的第i位为1表示数据WD的第i个字节会写入到对应的存储器地址中去,为0则表示不修改对应的存储器地址的数据。
5.根据权利要求4所述的利用多状态机提高读性能的协议转换桥,其特征在于,下行协议被抽象为数据通道以得到响应通道,响应通道进一步被抽象为一个三元组(V,T,RD),所述的响应分发器用于接收来自下行逻辑的下行协议响应报文三元组,三元组中:
V为有效域,表征当前拍读响应数据是否有效;
T为标示域,表征当前响应报文与相应读请求相对应,相应读请求与当前响应报文具有相同的标示域;
RD为读数据域,表征根据读请求地址从存储器中读回的数据。
6.根据权利要求5所述的利用多状态机提高读性能的协议转换桥,其特征在于,状态机数量等于Δ0;
Δ0表示上行协议中T相同的读响应报文之间最小时钟节拍间隔,Δ0≥1,且Δ0=1表示上行协议中T相同的任意两个读响应报文可以背靠背连续发送。
7.根据权利要求6所述的利用多状态机提高读性能的协议转换桥,其特征在于,每个状态机包含三个状态:空闲态、预备态和发送态;
每个状态机均包含以下状态信息:正在处理的请求六元组CA,当前已发送上行协议响应报文个数CL,节拍寄存器C以及当前状态机处理数据队列DQ,该数据队列DQ的输入数据来自于响应分发器的下行协议响应报文,字节个数最大为W1;输出数据去往发送仲裁器,字节个数最大为W0;
W1表示下行协议WD和RD的字节个数,W0表示上行协议WD和RD的字节个数。
8.一种利用多状态机提高协议转换桥读性能的实现方法,其特征在于,包括以下步骤:
S1.协议转换器收到来自上行逻辑的请求报文后,将上行协议转换为下行协议,将下行协议请求报文发送给下行逻辑,并将请求的六元组信息缓存至请求缓冲器;
S2.响应分发器接收来自下行逻辑的响应报文,并根据响应报文从请求缓冲器取得相应的六元组,依据六元组将响应报文分配给状态机处理;
S3.发送仲裁器接收来自状态机的输出数据,并从多个处于发送状态的状态机中挑选一个作为向上行逻辑的输出。
9.根据权利要求8所述的多状态机提高协议转换桥读性能的实现方法,其特征在于,所述协议转换器的实现方法包括:
S11.协议转换器收到来自上行协议的请求报文后,判断请求报文类型,若为写请求,执行步骤S12,若为读请求,执行步骤S13;
S12.令来自上行协议的写请求为(W,0,A0,1,M0,WD0),转换到下行协议后,对应的写请求变为(W,0,A0,1,M1,WD1),其中M1为M0高位补上(W1-W0 )个0得到的字节掩码,WD1为WD0高位补上8*(W1-W0)个0得到的数据;协议转换完毕,向请求缓冲器发送清除原始写请求的操作;
S13.令来自上行协议的读请求为(R,T0,A0,L0,-,-),转换到下行协议后,转换后对应的读请求为(R,T1,A0,L1,-,-),其中T1为请求缓冲器中保存上行协议请求的缓冲器索引,L1=⌈(L0*W0)/W1⌉,其中运算符⌈A⌉表示A向上取整,协议转换完毕;
所述响应分发器的实现方法包括:
S21.当响应分发器收到来自下行逻辑的下行协议响应报文三元组(1,T1,RD1)时,执行步骤22;
S22.以T1为索引向请求缓冲器发起读请求,获取请求缓冲器中第T1项缓存的原始请求六元组,记为(R,T0,A0,L0,-,-);与此同时,检查各状态机的状态,如果找到一个的CA寄存器的标示域等于T0的状态机i,则跳转到步骤23;否则,如果找到一个处于空闲态的状态机i,则跳转到步骤24;否则,重新执行步骤S22;
S23.检查状态机i的DQi是否满,如果DQi已满,那么当前响应报文将被阻塞暂时不能处理,重新执行步骤23;如果状态机i的DQi未满,那么把从下行逻辑接收到的W1字节的数据RD1存入状态机i的DQi的尾部,执行完毕,跳到步骤21;
S24.将W1字节的数据RD1存入状态机i的DQi尾部,同时置CAi =(R,T0,A0,L0,-,-),CLi= 0,触发状态机i进入预备态,回到步骤S21。
10.根据权利要求9所述的多状态机提高协议转换桥读性能的实现方法,其特征在于,所述请求缓冲器的实现方法包括:
当上行协议的请求(O,T,A,L,M,WD)到达请求缓冲器时,请求缓冲器将本次请求六元组缓存下来;
当接收到协议转换器发送过来的清除原始写请求时,请求缓冲器删除对应的写请求;
当请求缓冲器收到响应分发器送来的读请求时,根据索引T1从请求缓冲器中读出第T1项的六元组返回给响应分发器;
当请求缓冲器收到某个状态机送来的清除读请求的操作时,根据清除请求的索引T1将请求缓冲器中的第T1项作废;
发送仲裁器的实现方法包括:
S31.令j为上一次被发送仲裁器选中作为输出的状态机编号,j初始值为0;令Ready是一个N位的二进制数,其中第i位Readyi表示第i个状态机(i=0,1,..., N-1)是否处于发送态,如果是发送态则Readyi=1,否则Readyi=0;
令Select为一个N位的二进制数,其中第i位Selecti为1表示第i个状态机(i=0,1,...,N-1)被选中进行输出,为0则表示状态机i未被选中;
S32.当前拍如果Ready=0,则Select=0,下一拍继续执行步骤32;否则,从Ready的第j位开始从低到高寻找Ready中第一个为1的位,如果找到第N-1位还没找到,则继续从第0位开始寻找,直到找到Ready中第一个为1的位,将索引号保存到j中,同时置Selectj=1,Select的其它位全部置0,下一拍继续执行步骤S32。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111457885.4A CN113867796B (zh) | 2021-12-02 | 2021-12-02 | 利用多状态机提高读性能的协议转换桥及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111457885.4A CN113867796B (zh) | 2021-12-02 | 2021-12-02 | 利用多状态机提高读性能的协议转换桥及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113867796A CN113867796A (zh) | 2021-12-31 |
CN113867796B true CN113867796B (zh) | 2022-02-22 |
Family
ID=78985572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111457885.4A Active CN113867796B (zh) | 2021-12-02 | 2021-12-02 | 利用多状态机提高读性能的协议转换桥及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113867796B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116346711B (zh) * | 2023-03-31 | 2024-04-05 | 西安电子科技大学 | 基于行为树的路由协议表征方法、介质及通信方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103402187A (zh) * | 2013-07-08 | 2013-11-20 | 大唐移动通信设备有限公司 | 一种下行信令消息流程处理的方法及装置 |
CN111611187A (zh) * | 2020-06-28 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种针对CHI总线的通用协议转换桥及SoC |
CN111611180A (zh) * | 2020-06-29 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种支持多协议的动态共享缓冲区 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8463925B1 (en) * | 2007-10-08 | 2013-06-11 | Empirix Inc. | Table driven event processing of multiple stateful protocols in a high performance network stack framework |
US9509556B2 (en) * | 2013-04-23 | 2016-11-29 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for synchronizing with neighbor in a distributed resilient network interconnect (DRNI) link aggregation group |
CN111611185B (zh) * | 2020-06-18 | 2021-10-01 | 中国人民解放军国防科技大学 | 一种多pcie端口的msi中断过滤装置 |
CN112256624B (zh) * | 2020-11-03 | 2022-09-13 | 中国人民解放军国防科技大学 | 用于高速互连网络接口芯片的dma通信装置、芯片、设备及方法 |
-
2021
- 2021-12-02 CN CN202111457885.4A patent/CN113867796B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103402187A (zh) * | 2013-07-08 | 2013-11-20 | 大唐移动通信设备有限公司 | 一种下行信令消息流程处理的方法及装置 |
CN111611187A (zh) * | 2020-06-28 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种针对CHI总线的通用协议转换桥及SoC |
CN111611180A (zh) * | 2020-06-29 | 2020-09-01 | 中国人民解放军国防科技大学 | 一种支持多协议的动态共享缓冲区 |
Also Published As
Publication number | Publication date |
---|---|
CN113867796A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8930593B2 (en) | Method for setting parameters and determining latency in a chained device system | |
CN113254368B (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
US20050216677A1 (en) | Memory arbitration system and method having an arbitration packet protocol | |
US20020069329A1 (en) | Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions | |
WO2023160192A1 (zh) | 一种用于总线的互联装置 | |
CN113867796B (zh) | 利用多状态机提高读性能的协议转换桥及实现方法 | |
EP1508100B1 (en) | Inter-chip processor control plane | |
WO2023160092A1 (zh) | 一种区块链交易的处理方法、区块链节点及电子设备 | |
WO2023160088A1 (zh) | 一种区块链交易的处理方法、区块链节点及电子设备 | |
CN116089343A (zh) | 一种基于axi的数据存储方法、装置、存储介质及设备 | |
US20220365892A1 (en) | Accelerating Method of Executing Comparison Functions and Accelerating System of Executing Comparison Functions | |
US20070282932A1 (en) | Bus inverting code generating apparatus and method of generating bus inverting code using the same | |
CN112882986B (zh) | 一种带有超节点以及超节点控制器的众核处理器的应用方法 | |
CN113791892A (zh) | 数据通路仲裁方法、数据通路仲裁装置及芯片 | |
US7774513B2 (en) | DMA circuit and computer system | |
CN116795763A (zh) | 基于axi协议的数据分组传输的方法、片上系统和芯片 | |
WO2022252590A1 (zh) | 数据包处理方法及装置 | |
US7558987B2 (en) | Token-based trace system | |
CN113704151B (zh) | 基于TileLink总线的芯片互联架构及互联方法 | |
CN102420749A (zh) | 一种网卡发包功能的实现装置和方法 | |
US10853123B2 (en) | Memory module | |
CN115277644B (zh) | 一种总线数据传输系统、方法、设备及存储介质 | |
CN115633098B (zh) | 众核系统的存储管理方法、装置和集成电路 | |
US11302370B2 (en) | Semiconductor apparatus and synchronization method | |
US11094368B2 (en) | Memory, memory chip and memory data access method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 314000 Building 29, Xianghu villa, Qixing street, Nanhu District, Jiaxing City, Zhejiang Province Patentee after: Nanhu Laboratory Address before: 314000 Building 29, Xianghu villa, Qixing street, Nanhu District, Huzhou City, Zhejiang Province Patentee before: Nanhu Laboratory |