CN101715210B - Mac层hspa数据组装的方法及装置 - Google Patents

Mac层hspa数据组装的方法及装置 Download PDF

Info

Publication number
CN101715210B
CN101715210B CN200910190923A CN200910190923A CN101715210B CN 101715210 B CN101715210 B CN 101715210B CN 200910190923 A CN200910190923 A CN 200910190923A CN 200910190923 A CN200910190923 A CN 200910190923A CN 101715210 B CN101715210 B CN 101715210B
Authority
CN
China
Prior art keywords
data
mac
pdu
order
bit
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
Application number
CN200910190923A
Other languages
English (en)
Other versions
CN101715210A (zh
Inventor
刘荣
陈吕洋
何兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Chongqing Cyit Communication Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing Cyit Communication Technologies Co Ltd filed Critical Chongqing Cyit Communication Technologies Co Ltd
Priority to CN200910190923A priority Critical patent/CN101715210B/zh
Publication of CN101715210A publication Critical patent/CN101715210A/zh
Application granted granted Critical
Publication of CN101715210B publication Critical patent/CN101715210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种MAC层HSPA数据组装的方法,采用硬件装置来实现MAC层HSPA数据组装,CPU将数据组装命令及相关参数发送给硬件装置。在HSUPA数据组装中,硬件装置将MAC头信息中非整数字节长度的偏移信息与MAC_d PDU实施按比特拼接,将多个MAC_d PDU组装成一个MAC_e PDU;在HSDPA数据组装中,硬件装置根据MAC头信息中非整数字节数据的偏移长度,对MAC_hs PDU数据实施按比特拼接,将一个MAC_hs PDU分解、组装成数据组装命令所指示的多个MAC_d PDU;此外本发明还公开了一种MAC层HSUPA数据组装装置及一种MAC层HSDPA数据组装装置;本发明的技术方案,减少了对数据组装过程中数据操作的次数,提高了HSPA数据传输的效率;有效的减少了数据组装过程占用CPU和总线的时间,从而降低了HSPA数据组装过程对CPU和系统资源的消耗。

Description

MAC层HSPA数据组装的方法及装置
技术领域
本发明涉及到了第三代移动通信技术,尤其涉及一种高速分组接入(简称,HSPA)数据进行快速数据组装的方法及装置。 
背景技术
HSPA包括了高速下行分组接入(简称,HSDPA)和高速上行分组接入(简称,HSUPA)两项技术,在TD-SCDMA系统中分别实现了单载波下行速率峰值2.8Mbps和上行速率峰值2.2Mbps。在高速率的数据交互过程中对数据的处理能力提出了更高的要求。 
在TD-SCDMA移动终端(简称,UE)中,媒体接入控制(简称,MAC)层负责处理数据在物理层和协议栈之间的交互,在HSUPA业务中,MAC层需要对发送的数据进行组装,MAC层从无线链路层(简称,RLC)获取一个或多个MAC_d协议数据单元(简称,PDU),将这些MAC_d PDU组装成一个MAC_e PDU,在组装过程中,需要添加一个MAC头到MAC_e PDU,该MAC头的长度不一定是字节的整数倍,因此,在MAC层进行数据组装时,需要对MAC_d PDU进行以比特为单位偏移后再组装成相应的MAC_e PDU。同理,在HSDPA业务中,MAC层接收到的数据是包含有MAC头的MAC_hs PDU,MAC层需要去掉MAC头,再将数据分割组装成一个或多个MAC_dPDU,同样的,由于该MAC头的长度不一定是字节的整数倍,因此,需要对MAC_hs PDU进行以比特为单位的偏移后再组装成相应的MAC_d PDU。 
现有技术实现MAC层HSPA数据组装的方法主要是采用软件来完成的。 
现有技术实现MAC层HSUPA数据组装的方法如附图1所示: 
1、CPU将MAC头信息的前m个字节顺序存放到MAC_e PDU中; 
所述 
Figure DEST_PATH_GDA0000131485100000021
Figure DEST_PATH_GDA0000131485100000022
为向下取整; 
2、CPU读出含有MAC头信息最后k比特数据的字节,根据偏移长度k截取该字节中的k个MAC头信息比特; 
所述偏移长度k=MAC头信息比特数-(m×8); 
3、CPU读取一个MAC_d PDU的首字节,截取其前8-k位比特信息,与MAC头信息比特拼接成一个完整的字节,作为MAC_e PDU的第一个字节保存到MAC-e PDU; 
4、CPU读取该MAC_d PDU的第二个字节,截取其前8-k位比特信息与该MAC_d PDU首字节的后k比特信息拼接成一个字节,作为MAC_e PDU的第二个字节保存到MAC层所申请的MAC-e PDU存储空间; 
5,以此类推,依次读取该MAC_d PDU的所有字节,每读取一个字节,截取其前8-k位比特信息与前一个字节的后k比特拼接成一个字节,顺序保存到MAC-e PDU,直到将该MAC_d PDU的最后一个字节的前8-k位比特信息与倒数第二个字节的后k比特拼接成一个字节; 
6、判断是否还有其他的MAC_d PDU存在,如有则将剩下的最后一个字节的后k位比特信息与下一个MAC_d PDU的第一个字节的前8-k位比特信息拼接成一个字节并顺序保存到MAC-e PDU;否则执行步骤8; 
7、重复步骤4、5直到将所有MAC_d PDU拼接完成; 
8、将剩下的最后一个字节的后k位比特信息添加8-k位任意信息形成一个完整的字节,作为MAC_e PDU的最后一个字节保存到MAC-e PDU,完成MAC_e PDU数据的组装。 
现有技术MAC层实现HSDPA数据组装的方法如附图2所示: 
1、CPU读取MAC-hs PDU的第m+1和m+2两个字节,根据偏移长度k截取前一个字节的后8-k比特和后一个字节的前k比特拼接成一个字节,保存到RLC层指定的MAC_d PDU存储空间的第一个字节位置; 
所述 
Figure DEST_PATH_GDA0000131485100000031
Figure DEST_PATH_GDA0000131485100000032
为向下取整; 
所述偏移长度k=MAC头信息比特数-(m×8); 
2、CPU继续读取下一个字节,将其前k比特与前一个字节的后8-k比特进行拼接,判断当前MAC_d PDU的长度是否达到RLC层指定的MAC_d PDU长度,如是,则将拼接好的字节放到下一个MAC_dPDU的第一个字节位置,否则将拼接好的字节顺序存放到当前MAC_dPDU存储空间; 
3、重复步骤2,直到将MAC_hs PDU的最后一个字节的前k比特与倒数第二个字节的后8-k比特拼接,顺序存放到指定的MAC_dPDU; 
4、将MAC_hs PDU最后一个字节剩下的后8-k比特直接丢弃,完成MAC层HSDPA数据组装。 
现有技术实现HSPA数据组装的方法存在以下几点不足: 
1、由于现有技术在数据拼接中采用软件实现的方式,因此,在实现数据拼接操作时只能以字节为单位读取数据,然后通过“与”、“或”等操作将两个字节中的某些比特位拼接成一个字节,在实现数据的拼接过程中,在HSUPA中,每个字节都需要读取两次,在HSDPA中,除尾字节外,每个字节也需要读取两次,浪费了大量的时间,降低了系统数据传输的效率。 
2、现有技术实现数据组装的过程全部由CPU控制完成,数据的读取、字节的拼接、数据的存储都要由CPU来实现,由于HSPA传输的数据量较大,使得每次数据组装时都会长时间占用CPU,耗费了大量的系统资源,不利于其他系统任务的及时处理机系统处理进程的优化。 
现有技术中,软件只能以字节为单位实现数据的存取,而硬件则可实现以组合逻辑的方法在字节中读取任意比特,再将读取的每8比特组合为一字节存储。 
发明内容
针对上述现有HSPA数据组装方法存在的问题,本发明提出了一种HSPA数据组装实现方法及装置,利用硬件组合逻辑可以以比特为单位实现数据存取的特点,使用硬件装置来完成HSPA数据组装。 
本发明实现HSUPA数据组装的技术方案是: 
采用硬件装置来实现HSUPA数据组装; 
1、CPU将MAC头信息、MAC头信息比特数、MAC_e PDU首地址及HSUPA数据组装命令发送给HSUPA数据组装硬件装置; 
2、硬件装置将MAC头信息的前m个字节顺序保存到MAC_e PDU的前m个存储单元; 
3、硬件装置将MAC头信息剩余k比特保存作为偏移信息; 
4、硬件装置依次读取每条数据组装命令,根据命令读取所指示的MAC_d PDU数据,对每个MAC_d PDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_e PDU,用其最后的k比特数据更新偏移信息; 
5、硬件装置将最后一条命令所指示的MAC_d PDU的最后k比特数据补足为一个字节,顺序存放到MAC_e PDU,完成本次HSUPA数据组装; 
其中,所述 
Figure DEST_PATH_GDA0000131485100000041
Figure DEST_PATH_GDA0000131485100000042
为向下取整,偏移长度k=MAC头信息比特数-(m×8); 
所述数据组装命令包括MAC_d PDU的首地址及长度,数据组装命令的条数等于所需组装的MAC_d PDU的个数。 
所述根据命令读取所指示的MAC_d PDU数据,对每个MAC_dPDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_e PDU包括: 
从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件装置的缓存器,如MAC_d PDU中剩余未读取数据不足n个字节,则读取全部剩余未读取字节到硬件装置的缓存器; 
每读取一次数据,将偏移信息与缓存器中的前8-k比特拼接为一 个字节,并顺序存放到MAC_e PDU,此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式存放到MAC_e PDU,直到缓存器中剩余最后k比特数据,用缓存器中的最后k比特数据更新偏移信息; 
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。 
优选的,所述硬件装置以命令队列的方式存放、读取CPU发送的HSUPA数据组装命令。 
本发明实现HSDPA数据组装的技术方案是: 
采用硬件装置来实现HSDPA数据组装; 
1、CPU将MAC头信息比特数、MAC_hs PDU首地址及HSDPA数据组装命令发送给HSDPA数据组装硬件装置; 
2、硬件装置依次读取数据组装命令,从MAC_hs PDU首地址+m开始,顺序读取MAC_hs PDU数据,根据偏移长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC_d PDU; 
3、存放的数据长度达到数据组装命令所指定的长度后,读取下一条命令,继续顺序读取MAC_hs PDU数据并实施比特拼接,从命令指定的地址开始以字节的形式顺序存放拼接后的数据,直到完成最后一条命令所指定MAC_d PDU的存放; 
其中,所述  为向下取整,偏移长度k=MAC头信息比特数-(m×8); 
所述HSDPA数据组装命令包括MAC_d PDU首地址及长度,HSDPA数据组装命令的条数等于所需组装的MAC_d PDU个数。 
所述顺序读取MAC_hs PDU数据,根据偏移长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC_d PDU包括: 
从MAC_hs PDU首地址+m开始,每次顺序从MAC_hs PDU中读取n个字节的数据到硬件装置的缓存器中,如MAC_hs PDU中剩余未 读取数据不足n个字节,则读取全部剩余未读取字节到硬件装置的缓存器中;如是第一次从MAC_hs PDU读取数据,则将缓存器中前k比特数据丢弃,否则将偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节,顺序保存到命令所指示的MAC_d PDU;从缓存器中的第k+1比特开始,以8比特为单位依次读取缓存器中的数据并以字节的形式顺序存放到命令所指示的MAC_d PDU,将缓存器中的最后8-k比特数据保存作为偏移信息; 
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。 
优选的,所述硬件装置以命令队列的方式存放、读取CPU发送的HSDPA数据组装命令。 
本发明还公开了一种HSUPA数据组装的装置,包括: 
接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息、MAC头信息比特数、MAC_e PDU首地址;为本装置数据组装模块与外部存储器之间提供数据信息交互接口;完成数据组装后产生中断信号发送给CPU; 
命令队列存储模块,以命令队列的形式存储数据组装命令; 
偏移信息存储模块,用于存储偏移信息; 
目的地址存储模块,用于存储目的地址; 
数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSUPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块读取MAC_d PDU数据,完成数据按比特拼接,通过接口模块将数据存放到目的地址存储模块所指示的MAC_e PDU。 
所述数据组装模块实现数据组装的过程包括:数据组装模块依次从命令队列存储模块中读取数据组装命令,每读取一条命令后,通过接口模块从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件装置的缓存器,每读取一次数据,将偏移信息模块中的偏移信息与缓存器中的前8-k比特拼接为一个字节,并顺序存放到MAC_e PDU,此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式顺序存放到MAC_e PDU,直到缓存器中剩余 最后k比特数据,用缓存器中的最后k比特数据更新偏移信息模块中的偏移信息; 
完成对最后一条命令所指示的MAC_d PDU的数据组装后,将偏移信息模块中偏移信息补足为一个字节,顺序存放到MAC_e PDU; 
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。 
本发明还公开了一种HSDPA数据组装的装置,包括: 
接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息比特数、MAC_hs PDU首地址;为本装置数据组装模块与外部存储器之间提供数据信息交互接口;完成数据组装后产生中断信号发送给CPU; 
命令队列存储模块,以命令队列的形式存储数据组装命令; 
偏移信息存储模块,用于存储偏移信息; 
源地址存储模块,用于存储源地址; 
数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSDPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块从源地址存储器所指示的地址读取MAC_hs PDU数据,完成数据按比特拼接,通过接口模块将数据存放到数据组装命令所指示的MAC_d PDU。 
所述数据组装模块实现数据组装的过程包括:数据组装模块依次读取命令队列存储模块中的数据组装命令,每读取一条命令后,通过接口模块从源地址存储器所指示的源地址开始,每次顺序从MAC_hsPDU中读取n个字节的数据到硬件装置的缓存器中,如是第一次从MAC_hs PDU读取数据,则将缓存器中的前k比特数据丢弃,否则将偏移信息存储模块中的偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节,顺序保存到命令所指示的MAC_d PDU存储空间;从缓存器中的第k+1比特开始,以8比特为单位依次读取缓存器中的数据并以字节的形式顺序存放到命令所指示的MAC_d PDU,将缓存器中的最后8-k比特数据保存到偏移信息存储模块中作为偏移信息;直到完成最后一命令所指示的MAC_d PDU的组装; 
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。 
本发明的技术方案通过硬件装置来实现HSPA数据组装,利用硬件逻辑实现对数据的按比特操作,减少了对数据操作的次数,提高了数据组装的速率,从而提高了HSPA数据传输的效率;此外,CPU一次性将数据组装的命令发送给硬件装置,由硬件装置完成数据组装的工作,在一次数据组装完成后CPU才会介入,进行后续处理,HSPA数据组装占用CPU和总线的时间大大的减少,有效降低了HSPA数据组装过程对CPU和系统资源的消耗。 
附图说明
图1是现有技术实现HSUPA数据组装搬移过程图 
图2是现有技术实现HSDPA数据组装搬移过程图 
图3是本发明具体实施例1HSUPA数据组装流程图 
图4是本发明具体实施例2HSDPA数据组装流程图 
图5是本发明HSUPA数据组装搬移过程图 
图6是本发明HSDPA数据组装搬移过程图 
图7是本发明具体实施例3HSUPA数据组装的装置结构图 
图8是本发明具体实施例4HSDPA数据组装的装置结构图 
具体实施方式
为清楚说明本发明的技术方案,下面给出优选的实施例并结合附图详细说明。 
具体实施例1 
本实施例为本发明的HSUPA数据组装方法的一个优选实施例,总体流程如附图3所示: 
1、CPU将MAC头信息字节、MAC头信息比特数、MAC_e PDU首地址及HSUPA数据组装命令给HSUPA数据组装硬件装置; 
其中所述数据组装命令包括MAC_d PDU的首地址及长度,数据组装命令的条数等于所需组装的MAC_d PDU的个数;; 
本实施例中,每个MAC_d PDU长度为336比特; 
2、硬件装置将MAC头信息的前m个字节顺序保存到MAC_e PDU 的前m个存储单元; 
其中,所述 
Figure DEST_PATH_GDA0000131485100000091
Figure DEST_PATH_GDA0000131485100000092
为向下取整; 
3、硬件装置将MAC头信息剩余k比特保存作为偏移信息,并本地保存CPU发送过来的其他信息; 
硬件装置将MAC头信息剩余k比特保存作为偏移信息字节的高k比特,将HSUPA数据组装命令保存到命令队列,将MAC_e PDU首地址+m作为目的地址保存; 
其中,偏移长度k=MAC头信息比特数-(m×8); 
4、硬件装置依次读取每条数据组装命令,根据命令读取所指示的MAC_d PDU,将其与偏移信息实施按比特拼接,并以字节为单位顺序存放到MAC_e PDU,用其最后的k比特数据更新偏移信息; 
401、硬件装置从命令队列中读取一条命令,将命令中指示的将要进行组装的MAC_d PDU首地址作为源地址; 
402、判断MAC_d PDU中剩余未读取字节数是否大于等于n,如是则执行步骤403,否则执行步骤404; 
其中,所述n的取值范围为1~L,L为硬件装置缓存器长度; 
403、硬件装置从源地址开始,顺序读取n个字节的数据到其缓存器中,将源地址加n,执行步骤405; 
404、硬件装置读取MAC_d PDU全部剩余未读取字节到其缓存器中; 
405、将偏移信息字节的高k比特与缓存器中的前8-k比特拼接为一个字节,存放到目的地址所指示的存储单元,将目的地址加1; 
所述拼接方式为将偏移信息字节的高k比特作为字节的前k比特,缓存器中的前8-k比特作为字节的后8-k; 
406、以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式存放到目的地址所指示的存储单元,每存放一个字节,将目的地址加1; 
407、用缓存器中的最后k比特数据更新偏移信息字节高k比特; 
408、判断从当前MAC_d PDU读取的数据长度是否已达到命令所指示的MAC_d PDU长度,如是,执行步骤409;否则执行步骤402; 
409、判断命令队列是否为空,如是则执行步骤5,否则执行步骤401; 
5、硬件装置将偏移信息字节高k比特数据补足为一个字节,存放到目的地址所指示的存储单元; 
具体补足方法为,将偏移信息字节高k比特数据作为字节的前k比特,在其后补充任意8-k比特数据,形成一个完整的字节。 
6、硬件装置产生HSUPA数据组装完成中断,发送给CPU,通知CPU本次HSUPA数据组装完成。 
具体实施例2 
本实施例为本发明的HSDPA数据组装方法的一个优选实施例,总体流程参加图4。 
1、CPU将MAC头信息比特数、MAC_hs PDU首地址及HSDPA数据组装命令发送给HSDPA数据组装硬件装置; 
所述HSDPA数据组装命令包括MAC_d PDU首地址及长度,HSDPA数据组装命令的条数等于MAC_d PDU个数; 
本实施例中,每个MAC_d PDU长度为336比特; 
2、硬件装置本地保存CPU发送过来的信息; 
硬件装置将MAC_hs PDU首地址+m保存作为源地址,将数据组装命令保存到命令队列; 
所述 
Figure DEST_PATH_GDA0000131485100000101
Figure DEST_PATH_GDA0000131485100000102
为向下取整; 
3、硬件装置依次读取数据组装命令,从源地址开始,读取MAC_hsPDU数据,根据偏移长度k对读取的数据实施按比特拼接并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC_d PDU; 
所述偏移长度k=MAC头信息比特数-(m×8); 
301、从命令队列中读取一条命令,并从命令中获取MAC_d PDU首地址作为目的地址; 
302、判断MAC_hs PDU中剩余未读取字节数是否大于等于n,如是则执行步骤303,否则执行步骤304; 
303、从源地址指向的存储单元开始顺序读取n个字节的数据到数据组装模块的缓存器中,将源地址加n,执行步骤305; 
304、从源地址指向的存储单元开始顺序读取MAC_hs PDU全部剩余未读取字节到硬件装置的缓存器中; 
305、判断是否是第一次读取MAC_hs PDU,如是则执行步骤307,否则执行步骤306; 
306、将偏移信息字节的低8-k比特与缓存器的前k比特拼接成一个字节存放到目的地址所指示的存储单元,目的地址加1; 
所述拼接方式为将偏移信息字节的低8-k比特作为字节的前8-k比特,将缓存器的前k比特作为字节的后k比特。 
307、从缓存器第k+1比特开始,以8比特为单位依次读取数据,并以字节的形式顺序存放到目的地址指示的存储单元,每存放一个字节,将目的地址加1; 
308、将缓存器中剩余的最后8-k比特数据保存到偏移信息字节的低8-k位; 
309、判断已存放到当前MAC_d PDU的数据长度是否达到命令所指示的MAC_d PDU长度,如是执行步骤310,否则执行步骤302; 
310、判断命令队列是否为空,如是执行步骤4、否则执行步骤301; 
4、硬件装置产生HSDPA数据组装完成中断,发送给CPU,通知CPU本次HSDPA数据组装完成。 
具体实施例3 
本实施例为本发明HSUPA数据组装的装置的一个优选实施例,其结构参见图7,包括: 
接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息、MAC头信息比特数、MAC_e PDU首地址;为本装置数据组装模块与外部存储器之间 提供数据信息交互接口;完成数据组装后产生中断信号发送给CPU; 
命令队列存储模块,以命令队列的形式存储数据组装命令; 
偏移信息存储模块,用于存储偏移信息; 
目的地址存储模块,用于存储目的地址; 
数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSUPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块读取MAC_d PDU数据,完成数据按比特拼接,通过接口模块将数据存放到目的地址存储模块所指示的MAC_e PDU。 
下面介绍一下本具体实施例装置的工作流程: 
1、CPU将HSUPA数据组装命令、MAC头信息、MAC头信息比特数、MAC_e PDU首地址一次性发送到本装置接口模块; 
2、接口模块将MAC头信息的前m个字节从MAC_e PDU首地址开始顺序存放到MAC_e PDU中; 
其中,所述 
Figure DEST_PATH_GDA0000131485100000121
Figure DEST_PATH_GDA0000131485100000122
为向下取整; 
3、接口模块将HSUPA数据组装命令发送到命令队列存储模块以命令队列的方式保存,将MAC头信息剩余的k比特保存到偏移信息存储模块作为偏移信息字节的高k比特,将MAC_e PDU首地址+m保存到目的地址存储模块作为目的地址,将偏移长度k发送给数据组装模块; 
其中,所述偏移长度k=MAC头信息比特数-(m×8); 
4、数据组装模块从命令队列存储模块中读取一条数据组装命令,将命令中所包含的MAC_d PDU首地址作为源地址; 
5、数据组装模块判断MAC_d PDU剩余未读取的字节数是否大于等于n; 
如是,数据组装模块通过接口模块,从源地址所指向的存储单元开始顺序读取n个字节的数据到其缓存器,将源地址加n; 
否则,数据组装模块通过接口模块,从源地址所指向的存储单元开始顺序将剩余的字节全部读取到其缓存器; 
其中,所述n为每次从MAC_d PDU数据中读取的字节数,其取值根据硬件装置的缓存器的长度设定,取值范围为1~L,L是MAC_dPDU的长度,本实施例中,n=L=8; 
6、数据组装模块的比特拼接逻辑单元从偏移信息存储模块中读取偏移信息字节的高k比特,与缓存器中的前8-k比特拼接为一个字节,通过接口模块存放到目的地址,将目的地址存储模块中的目的地址加1; 
所述拼接方式为,将偏移信息字节的高k比特作为字节的前k比特,将缓存器中的前8-k比特作为字节的后8-k比特; 
7、此后,比特拼接逻辑单元以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式通过接口模块存放到目的地址,每存放一个字节,将目的地址存储模块中的目的地址加1; 
8、数据组装模块用缓存器中的最后k比特数据更新偏移信息模块中偏移信息字节高k比特; 
9、数据组装模块判断从当前MAC_d PDU读取的数据长度是否已达到命令所指示的MAC_d PDU长度;如是,执行步骤10,否则返回步骤5; 
10、数据组装模块判断命令队列是否为空,如是则将偏移信息模块中偏移信息字节高k比特补足为一个字节,通过接口模块存放到目的地址;否则返回步骤4; 
11、数据组装模块通知接口模块数据组装完成,接口模块产生HSUPA数据组装完成中断,发送给CPU。 
具体实施例4 
本实施例为本发明HSDPA数据组装的装置的一个优选实施例,其结构参见图8,包括: 
接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息比特数、MAC_hs PDU首地址;为本装置数据组装模块与外部存储器之间提供数据信息交互接口;完成数据组装后产生中断信号发送给CPU; 
命令队列存储模块,以命令队列的形式存储数据组装命令; 
偏移信息存储模块,用于存储偏移信息; 
源地址存储模块,用于存储源地址; 
数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSDPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块从源地址存储器所指示的地址读取MAC_hs PDU数据,完成数据按比特拼接,通过接口模块将数据存放到数据组装命令所指示的MAC_d PDU。 
下面介绍一下本具体实施例装置的工作流程: 
1、CPU将MAC头信息比特数、MAC_hs PDU首地址及HSDPA数据组装命令发送给HSDPA数据组装硬件装置接口模块; 
2、硬件装置接口模块将MAC_hs PDU首地址+m保存到源地址存储模块作为源地址,将数据组装命令保存到命令队列存储模块,将偏移长度发送给数据组装模块; 
其中,所述 
Figure DEST_PATH_GDA0000131485100000141
Figure DEST_PATH_GDA0000131485100000142
为向下取整; 
3、数据组装模块从命令队列中读取一条命令,并从命令中获取MAC_d PDU首地址作为目的地址; 
4、数据组装模块判断MAC_hs PDU剩余未读取的字节数是否大于等于n; 
如是,通过接口模块从源地址存储模块中的源地址指向的存储单元开始顺序读取n个字节的数据到其缓存器中,将源地址存储模块中的源地址加n; 
否则、从源地址存储模块中的源地址指向的存储单元开始顺序读取顺序读取全部剩余未读取字节到数据组装模块的缓存器中; 
其中,所述n为每次从MAC_d PDU数据中读取的字节数,其取值根据硬件装置的缓存器的长度设定,取值范围为1~L,L是MAC_dPDU的长度,本实施例中,n=L=8; 
5、数据组装模块判断是否是第一次读取MAC_hs PDU,如是6, 否则执行步骤7; 
6、数据组装模块的比特拼接逻辑单元将偏移信息模块中的偏移信息字节的低8-k比特与缓存器的前k比特拼接成一个字节存放到目的地址所指示的存储单元,将目的地址加1; 
所述偏移长度k=MAC头信息比特数-(m×8); 
所述拼接方式为将偏移信息字节的低8-k比特作为字节的前8-k比特,将缓存器的前k比特作为字节的后k比特。 
7、比特拼接逻辑单元从缓存器第k+1比特开始,以8比特为单位依次读取数据,并以字节的形式顺序存放到目的地址指示的存储单元,每存放一个字节,将目的地址加1; 
8、数据组装模块将缓存器中剩余的最后8-k比特数据保存到偏移信息模块中作为偏移信息字节的低8-k位; 
9、数据组装模块判断已存放到当前MAC_d PDU的字节数是否达到命令所指示的MAC_d PDU长度,如是执行步骤10,否则执行步骤4; 
10、数据组装模块判断命令队列是否为空,如是执行步骤11、否则执行步骤3; 
11、数据组装通知接口模块本次HSDPA数据组装完成,接口模块产生HSDPA数据组装完成中断,发送给CPU。 
以上所述仅为本发明的优选实施例,并不用于限制本发明,显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。 

Claims (10)

1.一种媒体接入控制层高速上行分组接入数据组装方法,其特征在于:
采用硬件装置来实现媒体接入控制MAC层高速上行分组接入HSUPA数据组装;
CPU将MAC头信息、MAC头信息比特数、MAC_e协议数据单元MAC_e PDU首地址及HSUPA数据组装命令发送给HSUPA数据组装硬件装置;
硬件装置将MAC头信息的前m个字节顺序保存到MAC_e PDU的前m个存储单元;
硬件装置将MAC头信息剩余k比特保存作为偏移信息;
硬件装置依次读取每条数据组装命令,根据命令读取所指示的MAC_d协议数据单元MAC_d PDU数据,对每个MAC_d PDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_ePDU,用其最后的k比特数据更新偏移信息;
硬件装置将最后一条命令所指示的MAC_d PDU的最后k比特数据补足为一个字节,顺序存放到MAC_e PDU,完成本次HSUPA数据组装;
其中,所述 为向下取整,偏移长度k=MAC头信息比特数-(m×8);
所述数据组装命令包括MAC_d PDU的首地址及长度,数据组装命令的条数等于所需组装的MAC_d PDU的个数。
2.根据权利要求1所述的方法,其特征在于,所述根据命令读取所指示的MAC_d PDU数据,对每个MAC_d PDU,将其与偏移信息实施按比特拼接后以字节为单位顺序存放到MAC_e PDU包括:
从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件装置的缓存器,如MAC_d PDU中剩余未读取数据不足n个字节,则读取全部剩余未读取字节到硬件装置的缓存器; 
每读取一次数据,将偏移信息与缓存器中的前8-k比特拼接为一个字节,并顺序存放到MAC_e PDU,此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式存放到MAC_e PDU,直到缓存器中剩余最后k比特数据,用缓存器中的最后k比特数据更新偏移信息;
所述拼接为,将偏移信息字节的高k比特作为字节的前k比特,缓存器中的前8-k比特作为字节的后8-k;
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。
3.根据权利要求1或2所述的方法,其特征在于:
硬件装置以命令队列的方式存放、读取CPU发送的HSUPA数据组装命令。
4.一种媒体接入控制层高速下行分组接入数据组装的方法,其特征在于:
采用硬件装置来实现媒体接入控制MAC层高速下行分组接入HSDPA数据组装;
CPU将MAC头信息比特数、MAC_hs协议数据单元MAC_hs PDU首地址及HSDPA数据组装命令发送给HSDPA数据组装硬件装置;
硬件装置依次读取数据组装命令,从MAC_hs PDU首地址+m开始,顺序读取MAC_hs PDU数据,根据偏移长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC_d协议数据单元MAC_d PDU;
存放的数据长度达到数据组装命令所指定的长度后,读取下一条命令,继续顺序读取MAC_hs PDU数据并实施比特拼接,从命令指定的地址开始以字节的形式顺序存放拼接后的数据,直到完成最后一条命令所指定MAC_d PDU的存放;
其中,所述 
Figure DEST_PATH_FDA00001608250400021
为向下取整,偏移长度k=MAC头信息比特数-(m×8); 
所述HSDPA数据组装命令包括MAC_d PDU首地址及长度,HSDPA数据组装命令的条数等于所需组装的MAC_d PDU个数。
5.根据权利要求4所述的方法,其特征在于,所述顺序读取MAC_hs PDU数据,根据偏移长度k对读取的数据实施按比特拼接,并以字节为单位将拼接后的数据顺序存放到命令所指示的MAC_dPDU包括:
从MAC_hs PDU首地址+m开始,每次顺序从MAC_hs PDU中读取n个字节的数据到硬件装置的缓存器中,如MAC_hs PDU中剩余未读取数据不足n个字节,则读取全部剩余未读取字节到硬件装置的缓存器中;如是第一次从MAC_hs PDU读取数据,则将缓存器中前k比特数据丢弃,否则将偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节,顺序保存到命令所指示的MAC_d PDU;从缓存器中的第k+1比特开始,以8比特为单位依次读取缓存器中的数据并以字节的形式顺序存放到命令所指示的MAC_d PDU,将缓存器中的最后8-k比特数据保存作为偏移信息;
所述拼接为,将偏移信息字节的低8-k比特作为字节的前8-k比特,将缓存器的前k比特作为字节的后k比特;
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。
6.根据权利要求4或5所述的方法,其特征在于:
硬件装置以命令队列的方式存放、读取CPU发送的HSDPA数据组装命令。
7.一种媒体接入控制层高速上行分组接入数据组装的装置,其特征在于,包括:
接口模块,用于完成本装置与CPU及存储器之间的数据交互,包括,接收来自CPU的数据组装命令、MAC头信息、MAC头信息比特数、MAC_e协议数据单元MAC_e PDU首地址;为本装置数据组装模块与外部存储器之间提供数据信息交互接口;完成数据组装后产生中断信号发送给CPU;
命令队列存储模块,以命令队列的形式存储数据组装命令; 
偏移信息存储模块,用于存储偏移信息;
目的地址存储模块,用于存储目的地址;
数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSUPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块读取MAC_d协议数据单元MAC_d PDU数据,完成数据按比特拼接,通过接口模块将数据存放到目的地址存储模块所指示的MAC_ePDU。
8.根据权利要求7所述的装置,其特征在于,所述数据组装模块实现数据组装的过程包括:
数据组装模块依次从命令队列存储模块中读取数据组装命令,每读取一条命令后,通过接口模块从命令所指示的MAC_d PDU首地址开始,每次顺序读取n个字节的数据到硬件装置的缓存器,每读取一次数据,将偏移信息模块中的偏移信息与缓存器中的前8-k比特拼接为一个字节,并顺序存放到MAC_e PDU,此后以8比特为单位,将缓存器中剩余的数据顺序读出并以字节的形式顺序存放到MAC_ePDU,直到缓存器中剩余最后k比特数据,用缓存器中的最后k比特数据更新偏移信息模块中的偏移信息;
完成对最后一条命令所指示的MAC_d PDU的数据组装后,将偏移信息模块中偏移信息补足为一个字节,顺序存放到MAC_e PDU;
所述拼接为,将偏移信息字节的高k比特作为字节的前k比特,缓存器中的前8-k比特作为字节的后8-k;
其中,偏移长度k=MAC头信息比特数-(m×8),所述 
Figure DEST_PATH_FDA00001608250400041
为向下取整;
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。
9.一种媒体接入控制MAC层高速下行分组接入数据组装的装置,其特征在于,包括:
接口模块,用于完成本装置与CPU及存储器之间的数据交互,包 括,接收来自CPU的数据组装命令、MAC头信息比特数、MAC_hs协议数据单元MAC_hs PDU首地址;为本装置数据组装模块与外部存储器之间提供数据信息交互接口;完成数据组装后产生中断信号发送给CPU;
命令队列存储模块,以命令队列的形式存储数据组装命令;
偏移信息存储模块,用于存储偏移信息;
源地址存储模块,用于存储源地址;
数据组装模块,包括数据缓存器和比特拼接逻辑模块,用于实现HSDPA数据组装,从命令队列存储模块读取数据组装命令,通过接口模块从源地址存储器所指示的地址读取MAC_hs PDU数据,完成数据按比特拼接,通过接口模块将数据存放到数据组装命令所指示的MAC_d协议数据单元MAC_d PDU。
10.根据权利要求9所述的装置,其特征在于,所述数据组装模块实现数据组装的过程包括:
数据组装模块依次读取命令队列存储模块中的数据组装命令,每读取一条命令后,通过接口模块从源地址存储器所指示的源地址开始,每次顺序从MAC_hs PDU中读取n个字节的数据到硬件装置的缓存器中,如是第一次从MAC_hs PDU读取数据,则将缓存器中的前k比特数据丢弃,否则将偏移信息存储模块中的偏移信息与缓存器中第一个字节的前k比特数据拼接成一个字节,顺序保存到命令所指示的MAC_d PDU存储空间;从缓存器中的第k+1比特开始,以8比特为单位依次读取缓存器中的数据并以字节的形式顺序存放到命令所指示的MAC_d PDU,将缓存器中的最后8-k比特数据保存到偏移信息存储模块中作为偏移信息;直到完成最后一命令所指示的MAC_d PDU的组装;
所述拼接为,将偏移信息字节的低8-k比特作为字节的前8-k比特,将缓存器的前k比特作为字节的后k比特;
其中,偏移长度k=MAC头信息比特数-(m×8),所述 
Figure DEST_PATH_FDA00001608250400061
为向下取整;
其中,所述n取值范围为1~L,L是硬件装置缓存器的长度。 
CN200910190923A 2009-09-22 2009-09-22 Mac层hspa数据组装的方法及装置 Active CN101715210B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910190923A CN101715210B (zh) 2009-09-22 2009-09-22 Mac层hspa数据组装的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910190923A CN101715210B (zh) 2009-09-22 2009-09-22 Mac层hspa数据组装的方法及装置

Publications (2)

Publication Number Publication Date
CN101715210A CN101715210A (zh) 2010-05-26
CN101715210B true CN101715210B (zh) 2012-10-24

Family

ID=42418372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910190923A Active CN101715210B (zh) 2009-09-22 2009-09-22 Mac层hspa数据组装的方法及装置

Country Status (1)

Country Link
CN (1) CN101715210B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159075B (zh) * 2019-12-31 2021-11-05 成都海光微电子技术有限公司 数据传输方法和数据传输装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1765086A (zh) * 2003-12-22 2006-04-26 三星电子株式会社 在高速下行分组接入通信系统中处理数据的设备和方法
CN1964314A (zh) * 2005-11-07 2007-05-16 华为技术有限公司 通过高速下行分组接入技术hsdpa传输ip报文的方法
CN101296221A (zh) * 2007-04-29 2008-10-29 中兴通讯股份有限公司 媒体接入控制层的数据处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1765086A (zh) * 2003-12-22 2006-04-26 三星电子株式会社 在高速下行分组接入通信系统中处理数据的设备和方法
CN1964314A (zh) * 2005-11-07 2007-05-16 华为技术有限公司 通过高速下行分组接入技术hsdpa传输ip报文的方法
CN101296221A (zh) * 2007-04-29 2008-10-29 中兴通讯股份有限公司 媒体接入控制层的数据处理方法

Also Published As

Publication number Publication date
CN101715210A (zh) 2010-05-26

Similar Documents

Publication Publication Date Title
CN103905300B (zh) 一种数据报文发送方法、设备及系统
EP1680900B1 (en) Configurable protocol engine
CN103391256B (zh) 一种基于Linux系统的基站用户面数据处理优化方法
KR100284790B1 (ko) 멀티노드 비동기 데이타 통신 시스템 내의 조기 도달 메시지처리 방법
RU2419226C2 (ru) Управление памятью для высокоскоростного управления доступом к среде
US7953817B2 (en) System and method for supporting TCP out-of-order receive data using generic buffer
CN1883212B (zh) 在无线mac处理器中提供通过网络连接的数据流传输的方法和装置
US5577211A (en) System and method using chained structure queues for ordering of message delivery between connected nodes wherein unsuccessful message portion is skipped and retried
CN101668005B (zh) 一种基于发送端多接入通道的数据传输加速引擎方法
CN101877604B (zh) 一种传输文件的方法及系统
CN100461770C (zh) 用于终端无线通信系统分组业务传输链路的数据处理方法
US20030115350A1 (en) System and method for efficient handling of network data
US8310934B2 (en) Method and device for controlling information channel flow
JP5925916B2 (ja) データを送信、受信する方法及び装置
WO2000052879A3 (en) Method and apparatus for data re-assembly with a high performance network interface
CN102473115A (zh) 用于高效数据处理的装置和方法
CN102473117A (zh) 用于存储器管理和高效数据处理的装置和方法
CN102348292A (zh) 一种基于mac子层和rlc子层的数据传输方法和设备
JP7046979B2 (ja) データ伝送方法、装置、システム、およびデバイス
CN102439574A (zh) 系统缓存中数据替换方法及多核通信处理器
US20090031059A1 (en) Method, System, and Computer Program Product for Dynamically Selecting Software Buffers for Aggregation According to Current System Characteristics
CN101150354B (zh) 消息调度方法和消息调度装置
CN102223311A (zh) 一种队列调度方法及装置
CN104486442A (zh) 分布式存储系统的数据传输方法、装置
CN101715210B (zh) Mac层hspa数据组装的方法及装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170426

Address after: Nanping Street 400060 Chongqing Nan'an District Nancheng Road No. 199 left attached to the floor 403

Patentee after: Keen (Chongqing) Microelectronics Technology Co., Ltd.

Address before: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1 Post University since 12 floor

Patentee before: Chongqing City Communication & Technology Co., Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181105

Address after: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee after: Zhanxun Communication (Shanghai) Co., Ltd.

Address before: 400060 Nanping Road 199, Nanping Street, Nan'an District, Chongqing, 403

Patentee before: Keen (Chongqing) Microelectronics Technology Co., Ltd.