首页 / 专利库 / 数学与统计 / 快速傅立叶变换 / 4G宽带通信系统多核并行流水线信号的处理系统和方法

4G宽带通信系统多核并行流线信号的处理系统和方法

阅读:89发布:2022-11-05

专利汇可以提供4G宽带通信系统多核并行流线信号的处理系统和方法专利检索,专利查询,专利分析的服务。并且一种基于GPP的4G宽带通信系统多核并行流 水 线 信号 处理系统和方法,为满足4G通信系统实时性的严格要求,本 发明 系统利用 云 计算的理念,以GPP作为计算资源,采用基于GPP的流水线处理模式对通信数据进行处理,通过调度器将大量的数据和计算任务划分为合理粒度后,分配到各级流水线分别处理。在 硬件 性能受限情况下,流水线模式可更容易地满足实时性要求,同时引入时间富裕量,使系统能容忍较大的时延抖动;通过合理调度,充分利用计算资源。本发明共设计三种流水线:一种适用于处理 大数据 量,可靠性很高;另一种适用于处理小数据量,速度快,灵活性更强;第三种是基于该两种应用场景而提供的复合型、高并行度流水线,性能提升更显著。,下面是4G宽带通信系统多核并行流线信号的处理系统和方法专利的具体信息内容。

1.一种基于通用处理器GPP(General Purpose Processor)的4G宽带通信系统多核并行流线信号处理系统,其特征在于:为满足4G通信系统实时性的严格要求,该系统采用基于GPP的流水线处理模式对通信数据进行处理,以便既能满足时延要求,又为每个信号或每级信号的处理任务增加了时间安全富裕量;该系统设有:计算资源池,存储器和多核流水线调度器三个部件,其中:
计算资源池,作为该系统的计算中心,负责所有无线信号的处理:当资源池中的某个通用处理器被调度器调度而处理物理层信号时,该通用处理器就加载LTE物理层算法库模,运行其中算法进行物理层信号处理;当通用处理器被调度器调度执行上层协议处理时,该通用处理器又加载上层协议处理模块,进行高层的信息处理,并将完成处理后的信息存入内存中;设有三个部件:多核通用处理器组,LTE物理层算法库模块和LTE上层协议处理模块;
存储器,为大容量内存,用于缓存未处理的数据和中间处理过程中的数据,其与计算资源池中的每个GPP都设有一条专用于数据交换的数据总线;当多核流水线调度器将数据按照分片存入存储器后,就利用调度算法调用多个核对每个分片数据进行处理;被调用的核接收到指令后,通过数据总线将其所需的数据从存储器取出并进行处理,且在完成处理后,再将处理后的数据存入存储器的另一个区域,以供其他核使用或通过调度器发往前端;
多核流水线调度器,作为该系统的控制中心,负责执行两项功能:数据分片和核调度:
先负责将前端传来的未处理的数据按照子或OFDM符号划分为不同粒度的分片,再以分片数据为单位存入存储器;当多个核都要对同一个分片数据进行读写时,该调度器应备份多个分片数据,或对其加以实现保护;再根据各核上报的运行信息,并兼顾各个分片数据的数据量大小、以及各个核的数据共享难易程度执行调度算法,将多个核进行分组,使得每组核形成一条用于处理一个分片数据的流水线,每个核或多个核负责一级流水线,每级流水线对应一个处理任务,这样每个分片数据到来时,都有一条流水线等待对其进行处理;完成任务的核被调度形成新的流水线或立即进入待机状态,以降低功耗;当数据处理完毕后,调度器从存储器取出处理后的数据,发往前端。
2.根据权利要求1所述的系统,其特征在于:所述计算资源池的三个部件功能如下:
多核通用处理器组,设有多个多核通用处理器,负责完成复杂的计算任务,且每个通用处理器都能运行LTE物理层算法库模块的算法和LTE上层协议处理模块的功能;该通用处理器中的每个核能够单独受控于多核流水线调度器,用于执行内嵌的包括比特级算法中的信道译码或扰码的某个或多个算法,以使多核流水线调度器能灵活分割任务,并调用多个核来组成一条流水线;
LTE物理层算法库模块,用于存储实现物理层处理功能所需要用到的各种算法,包括:
Turbo码的编译码、快速傅里叶变换FFT(Fast Fourier Transformation)、MIMO信号检测、软解调和速率匹配的各种算法,以及包括单指令多数据SIMD(Single Instruction Multiple Data)指令集、查找表LUT(Look-up Table)、多核多CPU并行处理的多种优化算法;其中,SIMD指令集是一种能够明显提高系统性能的隐式的并行算法;
LTE上层协议处理模块,负责选择其内置的各单元执行LTE上层协议处理:
非接入层NAS(Non Access Stratum)处理单元:支持移动性管理功能和用户平面激活、修改和释放功能,执行演进分组系统EPS(Evolved Packet System)的承载管理、鉴权、空间状态下的移动性处理、寻呼与安全控制功能;
无线资源控制层RRC(Radio Resource Control)处理单元:用于执行广播、寻呼、RRC连接管理、无线承载资源块RB(Resource Block)管理、移动性管理、密钥管理、用户设备UE(User Equipment)测量报告与控制、多媒体广播多播服务MBMS(Multimedia Broadcast Multicast Service)控制、NAS消息直传、服务质量QoS(Quality of Service)管理的多项功能;
分组数据汇聚层PDCP(Packet Data Convergence Protocol)处理单元:用于执行头压缩、数据传输、加密和完整性保护的功能;
无线链路控制层RLC(Radio Link Control)处理单元:负责执行分段与连接、重传处理,及对高层数据的顺序传送的功能;
媒体访问控制层MAC(Media Access Control)处理单元:负责处理混合自动重传请求HARQ(Hybrid Automatic Repeat Request)与上下行调度的功能。
3.一种采用权利要求1所述的基于GPP的4G宽带通信系统多核并行流水线信号处理系统的工作方法,其特征在于:因4G宽带无线通信系统中的信号处理流水线对实时性和处理时延的要求很高,无线系统中的每个操作步骤的处理时间都在微秒级,与线程的时间开销属于同一数量级,故必须选用适宜的调度算法将线程绑定到优选的核上,以使线程的时间开销和扰动对系统产生的影响最小;且为减小每级流水线的时间开销均值和方差,每级流水线都是单独占用一个或多个核,即执行“每级流水线例化为一个线程,每个线程绑定一个或多个核”的对应关系;所述方法包括下列操作步骤:
(1)将前端传送来的信号流分片:多核流水线调度器持续接收到前端传输来的信号流时,根据接收到的数据量大小和所选择的三种信号处理流水线模式之一,按照子帧或OFDM符号对数据进行合理粒度的分片后,再把这些分片数据都存储于存储器,由该多核流水线调度器保存每个分片数据的首地址和数据块大小的信息;
(2)内存保护:多核流水线调度器利用多线程库对已经存入存储器的分片数据中的每个子帧或每个OFDM符号加锁,使得该分片数据只能供其中一级流水线线程使用,其他线程必须等待该线程使用完毕,才能得到该分片数据的使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该分片数据;
(3)根据流水线模式进行任务划分:对于不同等级的数据流量,调度器构造相应的不同流水线进行信号处理,且每级流水线也有各自不同的任务划分;决定任务划分方式后,调度器就将多核通用处理器上内嵌的物理层和协议栈的处理任务按照划分重新封装成多个较大的任务,以便例化为线程形成信号处理的流水线;
(4)例化线程并进行核绑定:为使各级和各条流水线都能够独立并行地运行,每个任务划分都必须例化为一个单独的线程,也即形成一级流水线;
当所有任务都例化为线程后,根据调度算法将线程绑定到“优选”的核上;因不同流水线采用不同的绑定策略,该步骤通过调用Windows或Linux操作系统提供的CPU亲缘性设置的应用程序接口API来实现;
当一个线程对某个核的亲缘性掩码为1时,除非发生特殊情况另行处理以外,正常条件下,该线程会始终运行在该核上,这样就完成了线程对核的绑定;在线程开始执行的同时,调度器会将步骤(1)中保存的该核所需的分片数据首地址和数据块大小,以参数方式传递给该线程,然后该核就能“专心”执行自己的任务,直到任务处理完毕;
线程创建的操作步骤是使用跨平台的“boost库”中的“thread库”实现的,Windows和Linux也有各自专有的多线程库;
(5)将处理后的信号发向前端:当分片数据都处理完成后,调度器将其从存储器中取出,然后发向前端。
4.根据权利要求3所述的方法,其特征在于:所述三种信号处理流水线模式中的第一种流水线是使用6个核形成4级分别用于对每个子帧进行不同阶段的信号处理的流水线,因该流水线引入的时间安全富裕量高,可靠性和鲁棒性强,且能自适应地对较大的数据任务进行处理,故能够用于面向高吞吐率并容忍时延抖动的无线系统;该流水线的处理方法包括下列操作步骤:
(11)将前端传输来的信号流分片:多核流水线调度器以1ms子帧为单位对前端传输来的数据流进行分片,将每个子帧数据作为一个处理单元,即每级流水线都是对整个子帧的数据进行信号处理;调度器每次接收到一个子帧数据后,就将其存储于存储器,并记录其首地址和数据块大小;
(12)内存保护:调度器将数据按照子帧存入存储器后,利用多线程库将每个子帧加锁,使得每级流水线线程使用该子帧数据时,其他线程必须等待该线程使用完毕,才能得到该子帧数据使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该子帧数据;
(13)将任务划分为四级流水线:调度器根据测得的时延数据,采用6个核将整个上行接收过程划分为下述四个处理时间大致相等的四级流水线任务:FFT:码字映射为第一级流水线;解调:信道解交织为第二级流水线;解速率匹配:turbo解交织为第三级流水线;turbo译码内部使用三核并行运算的turbo译码和解循环冗余校验合并为第四级流水线;
(14)例化线程并进行核绑定:先利用多线程库将前三级流水线分别例化为一个线程后,在turbo译码内部用三个线程执行并行操作;因各个码块独立译码互不影响,故turbo译码时间大致缩短三倍,再将turbo译码和解循环冗余校验合并为一个任务,单独例化为一个线程;形成一条四级流水线后,通过设置前三个线程的CPU亲缘性将每个线程分别绑定到一个核上,此时必须将turbo译码内部的三个线程绑定到三个不同的核上,形成并行运算;这样就用6个核构造了一条四级流水线,每个线程专执行一个特定任务,但在每个子帧的处理过程中,四个线程为串行关系,而不同子帧的处理过程中,该四个线程为并行关系;当调度器在多核通用处理器上调度核用于绑定线程时,应使得尽可能多的核位于同一CPU;因信号处理时,各级流水线要频繁交互数据,选用同一CPU上的核时,能够共享二级缓存,使得大部分数据都直接从缓存读取,不需频繁读取内存,从而大大节省时间;
(15)将处理后的信号发向前端:完成分片数据的处理后,调度器将其从存储器中取出,然后发向前端。
5.根据权利要求3所述的方法,其特征在于:所述三种信号处理流水线模式中的第二种信号处理流水线是基于数据分片的自适应配置流水线:将数据分为奇数子帧和偶数子帧,同时将六个核等分为分别用于处理奇数子帧的第一核组和处理偶数子帧的第二核组,每个核组的内部处理流程为两级流水线,以使例化的线程少,提高每个子帧的处理速度;且当数据量较小时,调度器自适应地只启动第一核组同时对奇偶两子帧进行处理;该流水线的处理方法包括下列操作步骤:
(21)将前端传输来的信号流分片:多核流水线调度器根据接收到的数据量大小以1ms子帧为单位对数据流进行分片,将每个子帧数据作为一个处理单元,即每级流水线都是对整个子帧的数据进行信号处理;调度器每次接收到一个子帧数据后,就将其存储于存储器,并记录其首地址和数据块大小;
(22)内存保护:调度器将数据按照子帧存入存储器后,利用多线程库将每个子帧加锁,使得每级流水线线程使用该子帧数据时,其他线程必须等待该线程使用完毕,才能得到该数据使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该子帧数据;
(23)将任务划分为两级流水线:调度器根据测得的时延数据,采用3个核将整个上行接收过程划分为下述两级流水线的任务:FFT:turbo解交织为第一级流水线;turbo译码内部使用三核并行运算,再和解循环冗余校验合并为第二级流水线;
(24)例化线程并进行核绑定:先采用boost库的多线程库将第一级流水线例化为一个线程后,在turbo译码内部用三个线程执行并行操作;因各个码块互不影响地各自分别译码,故turbo译码时间大致缩短三倍,再将turbo译码和解循环冗余校验合并为一个任务,单独例化为一个线程,形成了一条两级流水线;其中,处理同一条流水线的线程被称为一个线程组;
当第一级流水线处理分片数据时,调度器先判断该分片数据的子帧号:若为奇数,则将该流水线绑定到只处理奇数子帧的、由三个核组成的第一核组上;若为偶数,则绑定到只处理偶数子帧的、由另外三个核组成的第二核组上;且该两个核组中,各有一个核负责执行从FFT到解循环冗余校验的所有处理任务;
若数据量较小、以使每个子帧的处理时间都小于1ms时,调度器自适应地只启动第一核组同时处理奇偶两子帧,以降低功耗,并提高计算资源的利用率和配置的灵活性;
(25)将处理后的信号发向前端:当分片数据处理完毕后,调度器将其从存储器中取出,然后发向前端。
6.根据权利要求5所述的方法,其特征在于:因每个核用于承载一个线程或一级流水线,故两个核组等价为两组线程:第一线程组和第二线程组;所述步骤(24)中,为优化系统性能,每个线程组内部核的绑定方案采用下述方法:
虽然第一级流水线和第二级流水线在实现时是两个不同的子线程组,但其操作逻辑是串行关系:第二级流水线要等待第一级流水线的数据处理完毕,并接收到第一级流水线数据处理结果才能启动,即两者的数据相关并存在内存共享;当不同的CPU核访问共享内存时,因高速缓存一致性协议会造成较大性能损失,且在线程间不可避免地存在数据共享,在执行从样值级到符号级、再到比特级的处理时,数据如同在管道中一样逐级传递;此时要尽量使共享数据的线程绑定到同一CPU的核;所以,两级流水线的优化方式是绑定到同一个CPU中的核,且因第二级流水线是绑定到另外三个不同核的线程,故还要保证第二级流水线中的某个、且只有该一个线程与第一级流水线绑定到同一个CPU核。
7.根据权利要求5所述的方法,其特征在于:所述步骤(24)中,为优化系统性能,线程组之间核的绑定方案采用下述方法:
依据上述步骤(24)的优化方式,每个线程组要执行四个线程,并绑定到同一个CPU的三个核;第一线程组和第二线程组的处理数据分别是奇数子帧和偶数子帧,即两者接收的数据相互独立,处理的数据流属于并行关系,但奇偶两个子帧数据流先后有序,在时间上是串行的,为保证每1ms接收到的每个子帧数据都能得到实时处理,采用每间隔1ms交替启动第一线程组和第二线程组的方式,还要将这两个线程组绑定到同一CPU上的不同两组内核,以避免相互干扰。
8.根据权利要求3所述的方法,其特征在于:所述三种信号处理流水线模式中的第三种信号处理流水线是复合型多核并行流水线,该方案是在保持多级流水线的条件下,同一时间使用多个核分别对每个子帧数据和/或每级流水线进行处理,以增强并行运算能;因为每级流水线的内部信号处理任务都是串行的,即使将步骤(3)的任务细化绑定到不同核上,也不能提高任意时间点的并行度;但将每个子帧数据划分成更小的粒度,再把其分配到不同的核上执行相同处理,若各个核上的处理数据互不相关,即不需要进行信息交互时,这种划分方式是可行的;且因同一时间有多个核在运行,提高了每帧处理的并行度,明显压缩处理时间和提高了鲁棒性、能容忍更大的处理时延抖动;该流水线的处理方法包括下列操作步骤:
(31)将前端传输来的信号流分片:多核流水线调度器根据接收到的数据量大小和所选择的流水线模式对数据流进行分片:在样值级和符号级处理过程中,调度器将每个子帧数据按照OFDM符号作为划分粒度进行数据分片,再根据数据量的大小和每个核的处理能力将每个子帧的OFDM符号划分成多组,以使后续步骤将每组数据交给一个线程、绑定到一个核进行处理;而在turbo译码前的比特级处理过程中,调度器将每个子帧数据作为一个分片数据交由一个核进行处理,turbo译码则依然按照码块大小进行分片的三核并行处理;
(32)内存保护:调度器将数据按照OFDM符号划分的分片数据存入存储器后,利用多线程库将每个OFDM符号分片数据加锁,使得每级流水线线程使用该OFDM符号分片数据时,其他线程必须等待该线程使用完毕,才能得到该OFDM符号分片数据使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该OFDM符号分片数据;
(33)将任务划分为三级流水线:调度器采用多核对整个接收过程划分为下述三级流水线任务:FFT:解调为第一级流水线,以OFDM符号分片数据作为处理粒度;解扰:turbo解交织为第二级流水线,以每个子帧数据作为处理粒度;turbo译码:解循环冗余校验为第三级流水线,其中,turbo译码以码块组作为处理粒度,而解循环冗余校验以每个子帧数据作为处理粒度;
(34)例化线程并进行核绑定:第一级流水线是以OFDM符号组作为处理粒度,根据需要最多例化为14个线程、即每个符号一个线程而实现最大并行度;或者最少例化为一个线程、即整个子帧作为一个线程而实现最小并行度;第二级流水线例化一个线程对整个子帧数据进行处理;第三级流水线turbo译码阶段是根据需要将码块分成多个大小相近的组,每组例化为一个线程执行并行处理后,将turbo译码和解循环冗余校验合并为一个任务,单独例化一个线程;
核的绑定也是采用设置线程对CPU的亲缘性来实现的,当每个线程都绑定到不同的核上时,达到最大的并行度,并对处理时延抖动达到最高容忍度;
(35)将处理后的信号发向前端:当分片数据处理完毕后,调度器将其从存储器中取出,然后发向前端。
9.根据权利要求3所述的方法,其特征在于:所述三种流水线方案都是用于一个小区的单个数据流在一台服务器上的处理方案;而在实际部署中,为降低设备管理成本和提高集中管理度,采用多台服务器对多个小区的多个数据流执行集中的协调处理;故在多服务器环境中,为集中处理多小区的数据流量而扩展流水线的方法要满足下述三点准则:
(1)均衡各个服务器的负载,以使每个服务器的计算能力得到充分利用,避免出现空闲和超负荷情况;
(2)兼顾各个小区的公平性,使每个小区的数据在整体上都能得到平等的计算资源;
(3)在兼顾公平性的前提下,及时响应和优先处理优先级高的小区业务。
10.根据权利要求9所述的方法,其特征在于:所述在多服务器环境中,为集中处理多小区的数据流量而扩展流水线方法如下:
多核流水线调度器根据子帧与子帧间数据处理的相互独立性,以子帧为单位进行调度:先按调度准则把各个子帧分配给不同的服务器,再选择一组CPU组装成流水线进行处理;为增强多服务器处理的灵活性,要把调度算法与流水线设计相互结合;其中,以子帧为单位的调度方案还能够适用于以OFDM符号为单位进行调度;
此外,多核流水线调度器还根据监测所有服务器CPU内核负载的实时反馈信息,实时动态调整流水线:不仅把某级流水线合理分配到服务器的CPU内核,还要根据CPU内核负载信息选择适宜的流水线结构。

说明书全文

4G宽带通信系统多核并行流线信号的处理系统和方法

技术领域

[0001] 本发明涉及一种4G宽带通信系统技术,确切地说,涉及一种基于GPP的4G宽带通信系统多核并行流水线信号的处理系统和方法,属于无线通信的技术领域。

背景技术

[0002] 4G通信系统是第四代移动通信及其技术的简称。以长期演进LTE(Long Term Evolution)系统为例,LTE系统能够以100Mbps和50Mbps的速度分别实现数据的下载和上传,并能满足几乎所有用户对无线服务的需求。而4G LTE Advanced采用载波聚合技术,下行峰值速度可达150Mbps。此外,4G还可以部署在数字用户线DSL(Digital Subscriber Line)和有线电视调制解调器没有覆盖的地方,然后再扩展到整个地区,可以有效改善小区边缘用户的性能,提高小区容量和降低系统延迟。
[0003] 4G系统成倍增长的吞吐率对基站和移动台的数据处理形成了较大的挑战,并且它要求的高度的实时性,低时延和精确同步,更使得设备制造商和运营商必须研发或购买更加昂贵、复杂的产品来满足苛刻的技术需求。
[0004] 在第三代合作计划3GPP(3rd Generation Partnership Project)标准的演进过程中,三种多址接入技术是显而易见的:2G的全球移动通信系统GSM(Global System for Mobile communication)/通用分组无线服务技术GPRS(General Packet Radio Service)/增强型数据速率GSM演进技术EDGE(Enhanced Data Rate for GSM Evolution)是基于时分和频分多址的接入技术;3G的通用移动通信系统UMTS(Universal Mobile Telecommunications System)家族标志着码分多址技术进入3GPP演进过程,被称为宽带码分多址接入CDMA(Code Division Multiple Access)或简称WCDMA(Wideband Code Division Multiple Access);最后,LTE采用了正交频分复用OFDM(Orthogonal Frequency Division Multiplexing)接入 技术。目前,OFDM技术已经在移动无线标准的最新技术演进中起到主导作用。
[0005] LTE延续了3GPP中的GSM和UMTS家族的技术演进,它可被看作完成了业务扩展的趋势:从简单的语音业务向建立多业务空中接口的转变。这虽然已经是UMTS和GPRS/EDGE的关键目标,但是,LTE在设计之初就考虑了无线接入技术演进这个目标,并设想所有业务都是分组交换模式,而不是最早期的电路交换模式。此外,LTE也伴随着整个系统中非无线方面的演进,业界称之为系统架构演进SAE(system architecture evolution),包含演进型分组核心EPC(Evolved Packet Core)网络。LTE和SAE共同组成了演进的分组交换系统,其核心网和无线接入都完全采用分组交换技术。
[0006] 关于LTE系统需求的讨论,促使3GPP创建了一个正式的“研究项目”:其目标是通过3GPP的无线接入技术演进来确保其在未来10年的竞争力,在该研究项目的主持下,LTE Release8的需求得到完善和细化,具体需求可归纳如下:
[0007] 减少时延,包括建立连接和传输;提高用户数据的传输速率;为保证业务一致性,提高小区边界传输比特率;降低每比特成本,也就是提高频谱效率;对现有带宽和新增带宽中的频谱使用更灵活;简化网络结构;无缝移动性,包括在不同的无线接入间;实现移动终端的合理功耗。
[0008] 与现有系统相比较,提高LTE性能是网络运营商的主要需求,以确保LTE的竞争力。出于市场因素考虑,对不同无线接入技术进行衡量与比较的首要参数往往就是每个用户能够达到的峰值数据率。LTE Release8系统在20MHz带宽内的上下行目标峰值数据速率分别为100Mbit/s和50Mbit/s,相对应于频谱效率分别为5bit/s/Hz和2.5bit/s/Hz。移动性支持从120km/h到350km/h,甚至超过500km/h以上。另外,数据处理的时延小于5ms,信令处理时延小于100ms。
[0009] LTE高速率低时延的通信需求,对设备制造商和运营商提出了巨大的挑战。通讯多核数字信号处理器DSP(digital signal processor)的龙头厂商飞思卡尔和德州仪器TI(Texas Instruments)相继推出高性能的DSP,用于增强基站的处理能力。尽管DSP的工作时钟频率早已经提升到GHz量级,但是其仍然无法满足高端应用系统对实时性的要求。换句话说,算法复杂度与传统DSP的性能之间一直存在着落差。而且,随着LTE-A等移动通信技术的出台,通信系统中的多输入多输出MIMO(Multiple-Input Multiple-Output)、OFDM、低密度奇偶校 验码LDPC(Low-density Parity-check)等无线算法的复杂度直线上升,使得这种落差呈进一步扩大态势。
[0010] 总之,现有技术一般存在以下缺点:大数据量的通信处理时延高,硬件性能难以满足高速率处理要求。而且,严格的实时性要求,使得硬件的升级成本高;系统平滑演进也对设备提出更高要求,动态负载导致基站利用率低。

发明内容

[0011] 有鉴于此,本发明的目的是提供一种基于GPP的4G宽带通信系统多核并行流水线信号处理系统和方法,本发明是脱离传统的专用集成电路ASIC(Application Specific Integrated Circuit)及DSP+FPGA基站的串行数据处理的基站模式,借鉴计算的理念,利用GPP作为计算资源,通过调度器将大量的数据和计算任务划分为合理的粒度,然后分配到各级流水线分别进行处理。在硬件性能受限的情况下,流水线的工作模式依然可以更容易地满足实时性要求,同时引入了时间富裕量,使系统可以容忍较大的时延抖动;还通过合理调度,使计算资源得到更充分的利用。本发明还根据实测数据设计了两种适用于不同应用场景的流水线:一种适用于处理大数据量,具有很高的可靠性;另一种适用于处理小数据量,速度更快,且其使用的灵活性更强。还基于以上两种应用场景,提供第三种复合型的高并行度流水线,能够拥有更大的性能提升。
[0012] 为了达到上述目的,本发明提供了一种基于通用处理器GPP(General Purpose Processor)的4G宽带通信系统多核并行流水线信号处理系统,其特征在于:为满足4G通信系统实时性的严格要求,该系统采用基于GPP的流水线处理模式对通信数据进行处理,以便既能满足时延要求,又为每个信号或每级信号的处理任务增加了时间安全富裕量;该系统设有:计算资源池,存储器和多核流水线调度器三个部件,其中:
[0013] 计算资源池,作为该系统的计算中心,负责所有无线信号的处理:当资源池中的某个通用处理器被调度器调度而处理物理层信号时,该通用处理器就加载LTE物理层算法库模,运行其中算法进行物理层信号处理;当通用处理器被调度器调度执行上层协议处理时,该通用处理器又加载上层协议处理模块,进行高层的信息处理,并将完成处理后的信息存入内存中;设有三个部件:多 核通用处理器组,LTE物理层算法库模块和LTE上层协议处理模块;
[0014] 存储器,为大容量内存,用于缓存未处理的数据和中间处理过程中的数据,其与计算资源池中的每个GPP都设有一条专用于数据交换的数据总线;当多核流水线调度器将数据按照分片存入存储器后,就利用调度算法调用多个核对每个分片数据进行处理;被调用的核接收到指令后,通过数据总线将其所需的数据从存储器取出并进行处理,且在完成处理后,再将处理后的数据存入存储器的另一个区域,以供其他核使用或通过调度器发往前端;
[0015] 多核流水线调度器,作为该系统的控制中心,负责执行两项功能:数据分片和核调度:先负责将前端传来的未处理的数据按照子或OFDM符号划分为不同粒度的分片,再以分片数据为单位存入存储器;当多个核都要对同一个分片数据进行读写时,该调度器应备份多个分片数据,或对其加以实现保护;再根据各核上报的运行信息,并兼顾各个分片数据的数据量大小、以及各个核的数据共享难易程度执行调度算法,将多个核进行分组,使得每组核形成一条用于处理一个分片数据的流水线,每个核或多个核负责一级流水线,每级流水线对应一个处理任务,这样每个分片数据到来时,都有一条流水线等待对其进行处理;完成任务的核被调度形成新的流水线或立即进入待机状态,以降低功耗;当数据处理完毕后,调度器从存储器取出处理后的数据,发往前端。
[0016] 为了达到上述目的,本发明还提供了一种基于GPP的4G宽带通信系统多核并行流水线信号处理系统的工作方法,其特征在于:因4G宽带无线通信系统中的信号处理流水线对实时性和处理时延的要求很高,无线系统中的每个操作步骤的处理时间都在微秒级,与线程的时间开销属于同一数量级,故必须选用适宜的调度算法将线程绑定到优选的核上,以使线程的时间开销和扰动对系统产生的影响最小;且为减小每级流水线的时间开销均值和方差,每级流水线都是单独占用一个或多个核,即执行“每级流水线例化为一个线程,每个线程绑定一个或多个核”的对应关系;所述方法包括下列操作步骤:
[0017] (1)将前端传送来的信号流分片:多核流水线调度器持续接收到前端传输来的信号流时,根据接收到的数据量大小和所选择的三种信号处理流水线模式之一,按照子帧或OFDM符号对数据进行合理粒度的分片后,再把这些分片数据都存储于存储器,由该多核流水线调度器保存每个分片数据的首地址和数据 块大小的信息;
[0018] (2)内存保护:多核流水线调度器利用多线程库对已经存入存储器的分片数据中的每个子帧或每个OFDM符号加锁,使得该分片数据只能供其中一级流水线线程使用,其他线程必须等待该线程使用完毕,才能得到该分片数据的使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该分片数据;
[0019] (3)根据流水线模式进行任务划分:对于不同等级的数据流量,调度器构造相应的不同流水线进行信号处理,且每级流水线也有各自不同的任务划分;决定任务划分方式后,调度器就将多核通用处理器上内嵌的物理层和协议栈的处理任务按照划分重新封装成多个较大的任务,以便例化为线程形成信号处理的流水线;
[0020] (4)例化线程并进行核绑定:为使各级和各条流水线都能够独立并行地运行,每个任务划分都必须例化为一个单独的线程,也即形成一级流水线;
[0021] 当所有任务都例化为线程后,根据调度算法将线程绑定到“优选”的核上;因不同流水线采用不同的绑定策略,该步骤通过调用Windows或Linux操作系统提供的CPU亲缘性设置的应用程序接口API来实现;
[0022] 当一个线程对某个核的亲缘性掩码为1时,除非发生特殊情况另行处理以外,正常条件下,该线程会始终运行在该核上,这样就完成了线程对核的绑定;在线程开始执行的同时,调度器会将步骤(1)中保存的该核所需的分片数据首地址和数据块大小,以参数方式传递给该线程,然后该核就能“专心”执行自己的任务,直到任务处理完毕;
[0023] 线程创建的操作步骤是使用跨平台的“boost库”中的“thread库”实现的,Windows和Linux也有各自专有的多线程库;
[0024] (5)将处理后的信号发向前端:当分片数据都处理完成后,调度器将其从存储器中取出,然后发向前端。
[0025] 众所周知,无线通信系统是一个实时系统,要求软件无线电也能够精确控制其响应时间达到微秒级。然而,现在的操作系统能够达到的实时性能仅仅在毫秒级,所以对于开发者来说,存在极大的挑战。
[0026] 本发明的关键创新技术是:在多核GPP芯片基础上,利用云计算和流水线的设计理念完成了LTE系统物理层信号处理系统的构建,该系统甚至达到了比 传统基站更好的性能,并克服了传统基站的多种缺陷。具体体现在下述方面:
[0027] 采用通用处理器进行实时通信系统的开发,并满足LTE高度的实时性,低时延和精确同步要求。
[0028] 设计了4G无线通信系统的流水线信号处理系统的结构组成,并阐述了各个组成部件如何进行信息交互来实现其功能。该系统将基带数据收集起来进行集中处理,利用调度器划分任务并动态调度,利用分布式基站完成实时云计算。
[0029] 本发明的第一种“面向高吞吐率的容忍时延抖动的流水线”处理信号方法,优化了传统处理方式,工作可靠性强,并允许更大的时延抖动,能自适应地对变化的数据量进行安全处理。
[0030] 本发明的第二种“基于数据分片的自适应配置流水线”处理信号方法,能较大地缩短每个子帧的处理时间,并且对于小数据量处理具有很高的灵活性。
[0031] 本发明的第三种“复合型多核流水线”处理信号方法,融合了流水线和并行处理两种特性,既能够在每个子帧数据的处理上大幅缩短处理时间,也能保持系统较高的可靠性和吞吐率。
[0032] 本发明提出的流水线、线程、内核和物理内存对应关系的四层结构处理信号的技术方案,减少了流水线的各级之间进行切换带来的时延。
[0033] 本发明还提出了物理内存隔离的方案,避免了不同线程组间共享数据造成的额外开销,并且增强了各个子帧间数据处理的独立性。调度器根据监测多服务器负载的实时反馈,动态调度计算资源并选择相应流水线设计方案,增强了系统设计的灵活性和适应性。
[0034] 综上所述,本发明基于GPP设计的对4G宽带通信系统的数据进行多核并行流水线信号处理系统及其流水线的信号处理方法,能够满足实时性要求。该技术方案是从中央处理器CPU(Central Processing Unit)中的多级流水线得到启发,并结合当下热的“云计算”理念,在通用处理器组中对所有数据进行集中化处理,再对计算资源进行动态调度,从而达到最大利用率和最大吞吐量。本发明与现有技术相比较的优点是:
[0035] 脱离了FPGA+DSP的基站硬件模式,在通用处理器上进行开发,开发和升级的硬件成本低,研发周期短。
[0036] 对于LTE这种对于实时性和定时同步要求十分严格的通信系统,流水线处 理信号的工作模式与其他系统的处理方式相比较,更容易满足性能需求,还增加了时间富裕量,能容忍更大的时间抖动,降低了丢帧概率。另外,云计算式的集中处理工作模式,使得计算资源得到更灵活的调度、更高效的利用。并且,对于短时间内潮汐式的数据流有更强的抗压能力。
[0037] 总之,本发明具有很好的推广应用前景。附图说明
[0038] 图1是本发明基于GPP的4G宽带通信系统多核并行流水线信号处理系统结构组成示意图。
[0039] 图2是4G流水线与核映射关系示意图。
[0040] 图3是本发明基于GPP的4G宽带通信系统多核并行流水线信号处理系统的工作方法操作步骤流程图
[0041] 图4是本发明面向高吞吐率的容忍时延抖动的第一种流水线示意图(小数据量情况)。
[0042] 图5是本发明面向高吞吐率的容忍时延抖动的第一种流水线示意图(大数据量情况)
[0043] 图6是本发明基于数据分片的自适应配置第二种流水线示意图。
[0044] 图7是本发明线程组内部的流水线与CPU核绑定的关系示意图。
[0045] 图8是本发明两个线程组间CPU核的绑定方式示意图。
[0046] 图9是本发明复合型4G多核并行的第三种流水线示意图。

具体实施方式

[0047] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细描述。另外,为了使得本发明技术方案的描述更直观和具体,下文以LTE系统为例进行阐述,但其核心技术和理念也可以应用于所有4G标准中。
[0048] 为了满足4G通信系统的实时性严格要求,本发明4G宽带通信系统多核并行流水线信号处理系统采用基于GPP的流水线处理模式对通信数据进行处理,以便既能满足时延要求,又为每个或每级信号处理任务增加时间安全富裕量。
[0049] 参见图1,介绍本发明系统的结构组成,设有:计算资源池,存储器和多核流水线调度器三个部件,下面分别予以介绍:
[0050] (A)计算资源池:作为该系统的计算中心,负责所有无线信号的处理:当资源池中的某个通用处理器被调度器调度而处理物理层信号时,该通用处理器就加载LTE物理层算法库模块,运行其中算法进行物理层信号处理。当通用处理器被调度器调度执行上层协议处理时,该通用处理器又加载上层协议处理模块,进行高层的信息处理,并将完成处理后的信息存入内存中。设有三个组成部件:多核通用处理器组,LTE物理层算法库模块和LTE上层协议处理模块。其功能详细说明如下
[0051] (1)多核通用处理器组:设有多个多核通用处理器,负责完成复杂的计算任务,且每个通用处理器都能运行LTE物理层算法库模块的算法和LTE上层协议处理模块的功能。该通用处理器中的每个核能够单独受控于多核流水线调度器,用于执行其内嵌的某个或多个算法,比如比特级算法中的信道译码,扰码等,这样多核流水线调度器能够灵活分割任务,并调用多个核来组成一条流水线。
[0052] (2)LTE物理层算法库模块:用于存储完成物理层信号处理功能所需要用到的各种算法,包括:Turbo码的编译码、快速傅里叶变换FFT(Fast Fourier Transformation)、MIMO信号检测、软解调和速率匹配的各种算法,以及包括单指令多数据SIMD(Single Instruction Multiple Data)指令集、查找表LUT(Look-up Table)、多核多CPU并行处理的多种优化算法。需要提到的是,其中的SIMD指令集是一种能够明显提高系统性能的隐式的并行算法。
[0053] (3)LTE上层协议处理模块:负责选择其内置的下述各单元执行LTE上层协议处理功能:
[0054] 非接入层NAS(Non Access Stratum)处理单元:支持移动性管理功能和用户平面激活、修改和释放功能,执行演进分组系统EPS(Evolved Packet System)的承载管理、鉴权、空间状态下的移动性处理、寻呼与安全控制功能。
[0055] 无线资源控制层RRC(Radio Resource Control)处理单元:用于执行广播、寻呼、RRC连接管理、无线承载资源块RB(Resource Block)管理、移动性管理、密钥管理、用户设备UE(User Equipment)测量报告与控制、多媒体广播 多播服务MBMS(Multimedia Broadcast Multicast Service)控制、NAS消息直传、服务质量QoS(Quality of Service)管理的多项功能。
[0056] 分组数据汇聚层PDCP(Packet Data Convergence Protocol)处理单元:用于执行头压缩、数据传输、加密和完整性保护的功能。
[0057] 无线链路控制层RLC(Radio Link Control)处理单元:负责执行分段与连接、重传处理,及对高层数据的顺序传送的功能。
[0058] 媒体访问控制层MAC(Media Access Control)处理单元:负责处理混合自动重传请求HARQ(Hybrid Automatic Repeat Request)与上下行调度的功能。
[0059] (B)存储器:为大容量内存,用于缓存未处理的数据和中间处理过程中的数据,其与计算资源池中的每个GPP都设有一条专用于数据交换的数据总线。当调度器将数据按照分片存入存储器后,就利用调度算法调用多个核对每个分片数据进行处理;被调用的核接收到指令后,通过数据总线将其所需的数据从存储器取出并进行处理,且在完成处理后,再将处理后的数据存入存储器的另一个区域,以供其他核使用或通过调度器发往前端。
[0060] (C)多核流水线调度器:作为该系统的控制中心,负责执行两项功能:数据分片和核调度:先负责将前端传来的未处理的数据流按照子帧或OFDM符号划分为不同粒度的分片,再以分片数据为单位存入存储器。当多个核都要对同一个分片数据进行读写时,该调度器应备份多个分片数据,或对其加锁以实现保护。其次,调度器根据各核上报的运行信息,并兼顾各个分片数据的数据量大小、以及各个核的数据共享难易程度执行调度算法,将多个核进行分组,使得每组核形成一条用于处理一个分片数据的流水线,每个核或多个核负责一级流水线,每级流水线对应一个处理任务,这样每个分片数据到来时,都有一条流水线等待对其进行处理,完成任务的核被调度形成新的流水线或立即进入待机状态,以降低功耗。当数据处理完毕后,调度器从存储器取出处理后的数据,发往前端。
[0061] 在4G宽带通信系统的信号处理流水线的设计过程中,每一级流水线都对应地由一个例化的线程来实现,该线程可以是任意划分的数据处理任务(如FFT:解资源映射)。在多核体系架构中,如果不对线程进行核绑定,线程的初始化和运行都将由操作系统进行动态分配,这样每个线程占用的资源都是随机 的。在毫秒级或是秒级的实时性要求不高的系统中,操作系统自动调度是一个方便且行之有效的方法,线程核间切换带来的时间扰动也可忽略不计。
[0062] 但是,在4G宽带无线通信系统中,对实时性和处理时延都有极高要求,无线系统中每个操作步骤的处理时间都在微秒级,与线程的时间开销属于同一数量级,因此必须选用适宜的调度算法将线程绑定到优选的核上,从而使线程的时间开销和扰动最小。
[0063] 而且,为了减小每一级流水线的时间开销均值和方差,每一级流水线都需要单独占用一个或多个核。因此在流水线优化算法里,通常使用如图2所示的“每级流水线例化为一个线程,每个线程绑定一个或多个核”的对应关系。
[0064] 参见图3,介绍本发明基于GPP的4G宽带通信系统多核并行流水线信号处理系统的工作方法的具体操作步骤:
[0065] 步骤1,将前端传送来的信号流分片:在4G宽带无线通信系统中,多核流水线调度器持续接收到前端传输来的信号流时,根据接收到的数据量大小和所选择的三种信号处理流水线模式(详见后文具体说明)之一,按照子帧或OFDM符号对数据进行合理粒度的分片后,再把这些分片数据都存储于存储器,由该多核流水线调度器保存每个分片数据的首地址和数据块大小的信息。
[0066] 调度器在向存储器中存储分片数据时,要考虑到该分片数据是否被多个逻辑核共享,当多个逻辑核需要同时对一块分片数据进行读写操作而没有逻辑的先后顺序时,必须将该分片数据做多个备份(备份数目等于对其操作的核数目),以使每个备份供一个核独享,这样就避免了对同一块内存分片数据的读写冲突。
[0067] 步骤2,内存保护:多核流水线调度器利用多线程库对已经存入存储器的分片数据中的每个子帧或每个OFDM符号加锁,使得该分片数据只能供其中一级流水线线程使用,其他线程必须等待该线程使用完毕,才能得到该分片数据的使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该分片数据。
[0068] 例如,当多个核对一块分片数据有逻辑上的读写顺序:第一个核先读写了该分片数据后,第二个核才可使用时,需要用互斥体对该数据进行加锁,使得各核在数据使用时排成一个顺序队列,当前面的核使用完该分片数据,并解锁以后,后续的另一个核才可使用,从而保证正确的逻辑关系。
[0069] 步骤3,根据流水线模式进行任务划分:对于不同等级的数据流量,调度器 构造相应的不同流水线进行信号处理,且每级流水线也有各自不同的任务划分(详见后文具体说明)。例如:设置第一级流水线做样值处理,第二级流水线做符号级处理,第三级流水线做比特级处理,也可以将整个处理过程划分成两级流水线,此时就有两个任务。决定任务划分方式后,调度器就将多核通用处理器上内嵌的物理层和协议栈的处理任务按照划分重新封装成多个较大的任务,以便例化为线程形成信号处理的流水线。
[0070] 步骤4,例化线程并进行核绑定:为使各级和各条流水线都能够独立并行地运行,每个任务划分都必须例化为一个单独的线程,也即形成一级流水线;该线程创建的操作步骤是使用跨平台的“boost库”中的“thread库”实现的,Windows和Linux也有各自专有的多线程库。
[0071] 当所有任务都例化为线程后,根据调度算法将线程绑定到“优选”的核上;不同流水线采用不同的绑定策略。该步骤通过调用Windows或Linux操作系统提供的CPU亲缘性设置的应用程序接口API(Application Program Interface)来实现。
[0072] 当一个线程对某个核的亲缘性掩码为1时,除非发生特殊情况另行处理以外,正常条件下,该线程会始终运行在该核上,这样就完成了线程对核的绑定。在线程开始执行的同时,调度器会将步骤1中保存的该核所需的分片数据首地址和数据块大小,以参数方式传递给该线程后,该核就能“专心”执行自己的任务,直到任务处理完毕。
[0073] 步骤5,将处理后的信号发向前端:当分片数据都处理完成后,调度器将其从存储器中取出,然后发向前端。
[0074] 下面分别介绍本发明基于实施例的实验数据设计的多核并行流水线信号处理系统的三种信号处理流水线的具体工作方法。
[0075] 仿真实施例是以LTE上行物理层接收算法为例:在20M带宽、最大调制与编码策略MCS(Modulation and Coding Scheme)等级和Turbo译码三次迭代条件下,对一个子帧进行处理,各个操作步骤的实测时延数据如下表(每组数据都是1000次以上测试后选取的平均值)所示,然后,基于该数据并根据本发明方法的上述步骤设计了两种流水线,再根据这两种流水线设计了第三种性能更优的复合型多核并行流水线。
[0076] 表1LTE系统物理层上行接收时延统计表
[0077]操作步骤名称 时延(us)
FFT 122
解资源映射 5
生成参考符号 1
信道估计 17
频域均衡 47
逆离散傅里叶变换 97
码字映射 8
解调 85
解扰 120
信道解交织 79
解速率匹配 72
混合自动重传请求合并 30
Turbo解交织 197
Turbo译码 739
解循环冗余校验 22
[0078] 第一种流水线是使用6个核形成4级流水分别对每一子帧进行不同阶段的信号处理:因为数据量较大时,为使流水线能在不丢帧的情况下达到最大的并行度,必须力图使每级流水线的处理时间大致相等。该流水线的设计目的不只是提高每个子帧的处理速度,更在于提高系统的鲁棒性,增强对处理时延抖动的容忍度。因此,该第一种流水线引入的时间安全富裕量高,可靠性和鲁棒性强,且能自适应地对较大的数据任务进行处理,用于面向高吞吐率并容忍时延抖动的无线系统。
[0079] 下面具体介绍第一种流水线信号处理方法的操作步骤:
[0080] (11)将前端传输来的信号流分片:多核流水线调度器以子帧(1ms)为单位对前端传输来的数据流进行分片,将每个子帧数据作为一个处理单元,即每级流水线都是对整个子帧的数据进行信号处理;调度器每次接收到一个子帧数据后,就将其存储于存储器,并记录其首地址和数据块大小。
[0081] (12)内存保护:调度器将数据按照子帧存入存储器后,利用多线程库将每个子帧加锁,使得每级流水线线程使用该子帧数据时,其他线程必须等待该 线程使用完毕,才能得到该子帧数据使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该子帧数据。
[0082] (13)将任务划分为四级流水线:调度器根据测得的时延数据,采用6个核将整个上行接收过程划分为下述四个处理时间大致相等的四级流水线任务:FFT:码字映射为第一级流水线,耗时297us;解调:信道解交织为第二级流水线,耗时286us;解速率匹配:turbo解交织为第三级流水线,耗时299us;turbo译码内部使用三核并行运算和解循环冗余校验合并为第四级流水线,耗时302us;这样就通过6个核将整个接收操作分为处理时间大致相等的四级流水线。
[0083] (14)例化线程并进行核绑定:先利用多线程库将前三级流水线分别例化为一个线程后,在turbo译码内部用三个线程执行并行操作;因各个码块独立译码互不影响,故turbo译码时间大致缩短三倍,再将turbo译码和解循环冗余校验合并为一个任务,单独例化为一个线程;这样就与前三个线程形成一条四级流水线。通过设置前三个线程的CPU亲缘性将每个线程分别绑定到一个核上,同时必须将turbo译码内部的三个线程绑定到三个不同的核上,形成并行运算。这样就用6个核构造了一条四级流水线,每个线程专门执行一个特定任务,但在每个子帧的处理过程中,四个线程为串行关系,而不同子帧的处理过程中,该四个线程为并行关系。当调度器在多核通用处理器上调度核用于绑定线程时,一种较好的策略是应使得尽可能多的核位于同一CPU上;因信号处理时,各级流水线要频繁交互数据,选用同一CPU上的核时,能够共享二级缓存,使得大部分数据都直接从缓存读取,不需频繁读取内存,从而大大节省时间。
[0084] (15)将处理后的信号发向前端:完成分片数据的处理后,调度器将其从存储器中取出,然后发向前端。
[0085] 参见图4,分析第一种流水线的性能:由图中可见,该流水线的并行度并不高,这是因为每个操作步骤的处理速度较快,每级流水线处理时间与1ms的子帧时长相比较时间很短,所以第二级(phase2)和第三级(phase3)流水线还是顺序执行的;只有第一级(phase1)和第四级(phase4)流水线(3核并行turbo译码)为并行的。虽然没有达到最大效率,但每个操作步骤的时间富裕量都变大了。比如phase1允许的时间裕量为703us,也就是说,对于第一个任务所允 许的时延抖动为703us,这极大地增强了系统的鲁棒性和可靠性。可见流水级数越多,所得到的时间富裕量越大,能够容忍的处理时延抖动也就越大。
[0086] 参见图5,当数据量突然变大时,即使调度器未更改流水线方案,第一种流水线也能自适应地进行相应处理。待处理的数据量增大,导致每级流水线的处理时间大大增长。但是,因为第一种流水线处理方法引入了较大的安全富裕量,有较高的可靠性,所以该流水线对于到来的大数据量的数据依然可以进行无丢包的处理。从表1可见,每一级流水线处理时间大约是300us,所以理论上只要数据量的增大倍数不大于3.3(即每级处理时间不超过1ms),该条流水线都可以完成安全处理。反之,当数据量过大时(比如为原来的四倍),以第一级流水线为例,在1ms之内就无法完成处理任务,当后续的下一个1ms子帧到来时,第一个核还在处理前一个子帧,就会产生当前子帧无法处理(即丢帧)的现象。
[0087] 由此可见,第一种流水线方案使得系统引入了较高的安全富裕量,有较强的可靠性和鲁棒性,并且其能够自适应的对较大的数据任务进行处理。
[0088] 本发明第二种信号处理流水线是基于数据分片的自适应配置流水线:将数据分为奇数子帧和偶数子帧,同时将六个核等分为分别用于处理奇数子帧的第一核组和处理偶数子帧的第二核组,每个核组的内部处理流程为两级流水线,以使例化的线程少,提高每个子帧的处理速度。当数据量较小以至于每一子帧的处理时间都小于一毫秒时,调度器可以自适应的只启动第一核组同时对奇偶子帧进行处理,降低了功耗,并提高了计算资源的利用率和配置的灵活性。
[0089] 本发明第二种流水线的信号处理方法包括下列操作步骤:
[0090] (21)将前端传输来的信号流分片:多核流水线调度器根据接收到的数据量大小以子帧(1ms)为单位对数据流进行分片,将每个子帧数据作为一个处理单元,即每级流水线都是对整个子帧的数据进行信号处理;调度器每次接收到一个子帧数据后,就将其存储于存储器,并记录其首地址和数据块大小。
[0091] (22)内存保护:调度器将数据按照子帧存入存储器后,利用多线程库将每个子帧加锁,使得每级流水线线程使用该子帧数据时,其他线程必须等待该线程使用完毕,才能得到该数据使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该子帧数据。
[0092] (23)将任务划分为两级流水线(参见图6所示):调度器根据测得的时延数据,采用3个核将整个上行接收过程划分为下述两级流水线的任务:FFT:turbo解交织为第一级流水线,耗时882us;turbo译码内部使用三核并行运算,约为280us,再和解循环冗余校验合并为第二级流水线,耗时302us;这样就通过3个核将整个接收模块划分成两级流水线。
[0093] (24)例化线程并进行核绑定:先采用boost库的多线程库将第一级流水线例化为一个线程后,再在turbo译码内部用三个线程执行并行操作;因各个码块互不影响地各自分别译码,故turbo译码时间大致缩短三倍,再将turbo译码和解循环冗余校验合并为一个任务,单独例化为一个线程,这样就形成了一条两级流水线;其中,处理同一条流水线的线程被称为一个线程组。
[0094] 当第一级流水线处理分片数据时,调度器先判断该分片数据的子帧号:若为奇数,则将该流水线绑定到只处理奇数子帧的、由三个核组成的第一核组(即核1,核2和核3)上;若为偶数,则绑定到只处理偶数子帧的、由另外三个核组成的第二核组(即核4,核5和核6)上;且该两个核组中,各有一个核负责(例如:核1和核4)执行从FFT到解循环冗余校验的所有处理任务。
[0095] 为了使系统性能实现最优化,申请人对该步骤(24)中如何优选核和如何进行绑定进行了大量研究,下面分别介绍线程组内部和线程组间核的绑定方案。
[0096] 因为每个核用于承载一个线程或一级流水线,故两个核组等价为两个线程组:第一线程组和第二线程组。为优化系统性能,步骤(24)中的每个线程组内部核的绑定方案采用下述方法:
[0097] 虽然第一级流水线和第二级流水线在实现时是两个不同的子线程组,但其操作的时序逻辑是串行关系:第二级流水线要等待第一级流水线的数据处理完毕,并接收到第一级流水线数据处理结果才能启动,即两者的数据相关并存在内存共享。研究表明,当不同的CPU核访问共享内存时,因高速缓存一致性协议会造成较大性能损失,在执行从样值级到符号级、再到比特级的处理时,数据如同在管道中一样逐级传递的。此时要尽量使共享数据的线程绑定到同一CPU的核(每个物理CPU都有多个逻辑核)。所以,第一级流水线和第二级流水线的优化方式是绑定到同一个CPU中的核,且因第二级流水线是绑定到另外三个不同核的线程,故还要保证第二级流水线中的某个、且只有该一个线程与 第一级流水线绑定到同一个CPU核。线程组内部的流水线设计与CPU核绑定的关系参见图7所示
[0098] 步骤(24)中,对于两个线程组之间的CPU核的绑定方案采用下述方法(参见图8所示):
[0099] 依据上述优化方式,每个线程组要执行四个线程,并依据图7所示方式绑定到同一个CPU的三个核;第一线程组和第二线程组的处理数据分别是奇数子帧和偶数子帧,即两者接收的数据相互独立,处理的数据流属于并行关系,但是,奇偶两个子帧数据流先后有序,在时间上是串行的。为保证每1ms接收到的每个子帧数据都能得到实时处理,采用每间隔1ms交替地启动第一线程组和第二线程组的方式,并将这两个线程组绑定到同一CPU的不同两组内核,使得LTE物理层相互独立的各个子帧的数据关系在由双线程组进行处理时,它们的数据流是并行的,两个线程组是并行关系,从而避免相互干扰。
[0100] (25)将处理后的信号发向前端:当分片数据处理完毕后,调度器将其从存储器中取出,然后发向前端。
[0101] 第二种流水线的性能分析:在设计多核并行算法时,每一级流水线是通过例化为一个线程,并由调度器将线程分配到合适的核上实现的。线程的创建和销毁都会产生时间损耗,这对于秒级和毫秒级的应用是微不足道的,甚至可以认为,用N个核去并行运算一个串行时间为Ts的毫秒级应用,就可得到Ts/N的加速效率。但是,这个理论并不适用于对实时性要求极高的通信系统:以LTE上行接收处理操作为例,其每个操作的处理时间只有几百甚至几十微秒,很难进一步降低,所以,设计流水线时必须考虑线程的创建和销毁引入的时间损耗。
[0102] 大量的实测数据显示,LTE系统中的线程创建和销毁大约需要20us,根据测试结果,可以做一些有价值的分析:
[0103] 假设顺序执行每个操作步骤的时间为Ts,若想用N个核(线程)对其进行并行运算,那么当Ts至少为多少时间才能够有优化效果呢?(也就是满足下述不等式:并行处理时间+创建线程的时间损耗20N<串行时间Ts)
[0104] N=2时,Ts最少为80us时,才有性能提升;
[0105] N=3时,Ts最少为90us时,才有性能提升;
[0106] N=4时,Ts最少为106us时,才有性能提升
[0107] 理论上可以取得的最优化值为2sqrt(20×Ts)。可以得出下述结论:当操作本身的串行执行时间较短时,宜用少量的核进行并行运算;当作本身的串行执行时间很长时,宜用较多的核进行并行运算;且在 与20N相等时,达到最好的优化效果。
[0108] 根据以上分析,可以知道四级流水线处理一个子帧共需创建和销毁6个线程,由此引入了约120us的时间损耗,而对于每一个子帧的处理大部分都是顺序执行(除去turbo译码三核并行),在用户量和数据量都非常少的极端情况下,其性能甚至还不如串行执行。
[0109] 因此本发明针对于小数据量情况设计了如上所述的基于数据分片的、更加灵活的第二种流水线,该流水线只需要创建和销毁四个线程,引入的时间损耗大大减小,并且,核的利用率也有效提高,不会产生频繁的启动--待机切换。由于将核和数据分成了两组,每条流水线只需要在2ms内将一子帧数据处理完,就能保证每一个子帧的数据都能得到及时处理,不会出现丢帧情况;同样每级流水线也增加了时间富裕量,可以允许较大的处理时延抖动,增强了系统的稳定性。但是,需要注意的是:以表1数据为例,该流水线最多允许数据增加到大约2倍,否则,第一级流水线处理时间将大于2ms,会导致下一个子帧来不及处理而产生丢帧。反之,当用户和数据量较小,以至于1ms内就可处理完,系统会自适应地切换到只使用第一线程组的三个核进行连续处理,而不用像四级流水线那样每次都用上六个核,这样的流水线所能容忍的时延抖动虽然有所降低,但是每一个子帧的处理效率更高,应用也更加灵活。
[0110] 本发明第三种信号处理流水线是复合型多核并行流水线,该流水线技术方案是在保持多级流水线的条件下,同一时间使用多个核分别对每个子帧数据和/或每级流水线进行处理,以增强并行运算能力。因为每一级流水线的内部信号处理任务都是串行执行的,即使将步骤3的任务细化绑定到不同核上,也不能提高任意时间点的并行度。但是,将每个子帧数据划分成更小的粒度,再把其分配到不同的核上执行相同处理,若各个核上的处理数据互不相关,即不需要进行信息交互时,那么这种划分方式就是可行的;且因同一时间有多个核在运 行,提高了每帧处理的并行度,能较大地压缩处理时间和提高鲁棒性、并能容忍更大的处理时延抖动。该流水线的处理方法包括下列操作步骤:
[0111] (31)将前端传输来的信号流分片:多核流水线调度器根据接收到的数据量大小和所选择的流水线模式对数据流进行分片:在样值级和符号级处理过程中,调度器将每个子帧数据按照OFDM符号作为划分粒度进行数据分片,再根据数据量的大小和每个核的处理能力将每个子帧的OFDM符号划分成多组,以使后续步骤(34)将每组数据交给一个线程、绑定到一个核进行处理。而在turbo译码前的比特级处理过程中,调度器将每个子帧数据作为一个分片数据交由一个核进行处理,turbo译码则依然使用按照码块大小进行分片的三核并行处理。
[0112] (32)内存保护:调度器将数据按照OFDM符号划分的分片数据存入存储器后,利用多线程库将每个OFDM符号分片数据加锁,使得每级流水线线程使用该OFDM符号分片数据时,其他线程必须等待该线程使用完毕,才能得到该OFDM符号分片数据使用权,确保每级流水线按照LTE的信号处理的逻辑顺序访问该OFDM符号分片数据。
[0113] (33)将任务划分为三级流水线(参见图9所示):调度器采用多核对整个接收过程划分为下述三级流水线任务:FFT:解调封装为第一级流水线,以OFDM符号作为处理粒度;解扰:turbo解交织封装为第二级流水线,以每个子帧数据作为处理粒度;turbo译码:解循环冗余校验CRC封装为第三级流水线,其中,turbo译码以码块组作为处理粒度,而解循环冗余校验以每个子帧数据作为处理粒度,这样就通过若干核构成了三级流水线。
[0114] (34)例化线程并进行核绑定:第一级流水线是以OFDM符号组作为处理粒度,根据需要最多例化为14个线程(即每个符号一个线程而实现最大并行度),或者最少例化为一个线程(即整个子帧作为一个线程从而实现最小并行度)。第二级流水线例化为一个线程对整个子帧数据进行处理;第三级流水线turbo译码阶段是根据需要将码块分成多个大小相近的组,每组例化为一个线程执行并行处理后,将turbo译码和解循环冗余校验合并为一个任务,单独例化一个线程。
[0115] 核的绑定也如前所述:采用设置线程对CPU的亲缘性来实现的,当每个线程都绑定到不同的核上时,达到最大的并行度,并对处理时延抖动达到最高容 忍度。
[0116] (35)将处理后的信号发向前端:当分片数据处理完毕后,调度器将其从存储器中取出,然后发向前端。
[0117] 综上所述,介绍本发明三种流水线的特点:
[0118] 第一种流水线利用较多的核产生较长的流水级数,对处理时延抖动有很强的鲁棒性,并在数据量较大时,能有较高的并行度,且可以自适应地进行处理,这种“并行”主要体现Turbo译码的并行和子帧间数据处理的并行。
[0119] 第二种流水线将核和子帧分为两组,当数据量较小时,可自适应地只启动其中一个线程组核进行处理,较短的流水线级数也使得每一个子帧的处理时间更短。该流水线的并行能力也主要体现为Turbo译码的并行和子帧间数据处理的并行。
[0120] 第三种流水线通过将数据划分为更小的粒度,再在流水线内部引入较高的并行运算能力,通过将数据合理划分给多个核进行处理,在保持流水线处理优势的情况下,在同一子帧处理时进行多核同时运算,能大幅地缩短处理时间。
[0121] 本发明的上述三种流水线方案大都用于一个小区的单个数据流在一台服务器上的处理方案。而在实际部署中,为降低设备管理成本和提高集中管理度,采用多台服务器对多个小区的多个数据流执行集中的协调处理。小区数越多,数据量越大,一台服务器的计算能力已经不能满足通信需求,因此需要部署多台服务器协调处理各小区的数据。故在多服务器环境中,为集中处理多小区的数据流量而扩展流水线的方法要满足下述三点准则:
[0122] (1)均衡各个服务器的负载,以使每个服务器的计算能力得到充分利用,避免出现空闲和超负荷情况。
[0123] (2)兼顾各个小区的公平性,使每个小区的数据在整体上都能得到平等的计算资源。
[0124] (3)在兼顾公平性的前提下,及时响应和优先处理优先级高的小区业务。
[0125] 最简单的扩展流水线的方法与按奇偶子帧分配CPU内核组相似:
[0126] 多核流水线调度器根据子帧与子帧间数据处理的相互独立性,以子帧为单位进行调度:先按调度准则把各个子帧分配给不同的服务器,再选择一组CPU组装成流水线进行处理;为增强多服务器处理的灵活性,要把调度算法与流水 线设计相互结合;其中,以子帧为单位的调度方案还能细分为以OFDM符号为单位进行调度。此外,多核流水线调度器还根据监测所有服务器CPU内核负载的实时反馈信息,实时动态调整流水线:不仅把某级流水线合理分配到服务器的CPU内核,还要根据CPU内核负载信息选择适宜的流水线结构。
[0127] 本发明已经进行了大量的仿真实施例试验,得到许多实测数据,每个操作步骤的时延数据都是超过1000次以上仿真的平均时延。整个流水线依赖于实测数据和开发经验进行设计和优化,实施例试验的相关参数如下:
[0128] CPU型号: Xeon(R)CPU E5-26900@2.9GHz×18,
[0129] 2个物理CPU,每个CPU有8个核,共享L2缓存,各自独享L1缓存。
[0130] 内存大小:32GB
[0131] 实施例是选择同一个CPU上的连续的6个核作为实验对象,在该实验条件下,测得的传统工作方式处理每个子帧的时延约为1643us,面向高吞吐率的第一种流水线方案处理的工作时延约为1300us,基于数据分片的第二种流水线的工作时延约为1200us。可见流水线的工作模式不仅使得安全富裕量更大,也使得单帧的处理时延大大降低。并且,在特定的实验场景下(单小区、单用户和数据量较小),第二种流水线的性能要更优于第一种流水线,并且具有更大的灵活性。但是,这并不代表所有场景都会得到同样的结果,流水线结构应基于单位时间内需要处理的数据量进行灵活动态地变化,才能获得最佳性能。
[0132] 总之,实施例的试验是成功的,实现了发明目的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈