当前位置:首页 期刊杂志

一种可重构的处理器架构

时间:2024-05-19

刘小明 潘勇先

【摘 要】本文介绍了一种可重构数字信号处理器架构。该处理器基于VLIW+SIMD结构,以粗粒度的运算宏作为可重构部件,采用静态重构的方式实现架构的重组,可实现1~4个逻辑核,每个逻辑核可集成1~16个运算宏。

【关键词】数字信號处理器;48bit指令集;逻辑核

中图分类号: TP332 文献标识码: A 文章编号: 2095-2457(2018)16-0032-003

DOI:10.19694/j.cnki.issn2095-2457.2018.16.014

【Abstract】This paper introduces a reconfigurable dsp architecture.This processor is base on VLIW+SIMD structure.A coarse-grained operation macro is used as reconfigurable part.The processor is reorganized in a static way ,it can reconstitute 1~4 logical cores,every core can have 1~16 operation macros.

【Key words】Digital Signal Processor(DSP);48bit Instruction Set;Logical Core

0 引言

现代信号处理应用中,任务级并行与数据级并行两种处理模式两极分化的情况日益严重。工程实现中,针对不同应用领域的要求,需构建不同的处理器硬件平台。面向任务级并行,需构建多核处理器平台,适应多任务并发的要求;而数据级并行,则需构建单核处理器平台,面向单任务应用,选择处理能力强的单核处理器搭建系统。具有可重构架构的处理器可针对不同应用需求,进行处理器结构重组,力求解决不同应用特征下,计算平台通用化的问题,是国内外研究热点。

1 处理器架构

1.1 重构方案选择

可重构处理器的重构方式较FPGA存在显著的差异。可重构处理器的重构部件的颗粒度普遍较粗,多为处理器核级或运算部件级[1]。

相较于处理器核重构,采用运算部件级重构亦存在以下不足:

(1)用户程序移植难度较大,即放在可重构逻辑上实现的函数在移植过程中因处理器架构的差异,需要重新设计;

(2)类似FPGA开发,需要根据每种应用重新设计配置信息,开发效率没有利用编程方式实现效率高;

(3)针对该种结构验证所有信号处理应用的难度较大,若不充分验证可能导致后续实际应用过程中,无法满足部分特殊运算需求的情况出现;

(4)运算宏(运算部件的组合)为实现可重构功能添加了大量的连线及选择器,严重影响主频的提升。

基于上述原因本文提出的可重构处理器架构,放弃基于运算部件的重构方式,加大重构部件的粒度,使用静态可重构的方式实现甚颗粒度的逻辑核可重构,这也是目前国内外可重构处理器广泛采取的实现方案之一。

本文以一组运算及存储部件构建的运算宏为最小重构颗粒,采用静态重构方式,完成处理器内部架构重组,适用不用应用场景需求。该处理器架构内部包含4条独立的指令流水、16个运算宏及相应外设。通过重构可将处理器配置1-4个处理器逻辑核,每个处理器逻辑核包含1-16个运算宏。处理器采用VLIW+SIMD结构,每条指令总线一次可发射8条48bit指令字,单指令最多可驱动16运算宏参与计算。

1.2 具体实施方式

(1)逻辑核重构

处理器主要包含两种工作模式:初始和重组模式:

初始模式:该模式下的处理器形成一个逻辑核,包含16个运算宏。

重组模式:该模式可将运算宏及指令流水进行重组,构建不同规模的逻辑核。在此条件下,处理器内部根据需要可以是一个核,也可以是2个核、3个核或者4个核,每一个核内部的运算单元宏的个数可以不一样,内部不使用的指令流水和运算宏均可设置成低功耗模式。

其中,运算宏作为最小重构颗粒,每个运算宏包含私有的数据存储器、分配译码逻辑、运算部件及DMA控制器。运算部件由1个本地通用寄存器组、8个算数逻辑单元(ALU)、4个乘法器、2个移位器和1个超算器(SPU)构成,支持16bit、32bit、单精度和双精度浮点格式数据计算。通用寄存器作为数据暂存设备负责运算部件与宏内私有数据存储器之间的数据交互。运算宏内部包含3条独立的64bit数据总线,最多可同时实现2写1读或2读1写操作。宏内数据存储空间划分为6个block。如图2所示。

重构流程如下:

(1)增设一重构配置模块(core_fusion_config),将其作为共享外设挂接在核内总线上。该重构配置模块包含一组配置寄存器,用于设置重构信息,如指令流水的选择寄存器。

(2)上电复位后,首先通过访存指令设置重构配置模块,待所有配置寄存器设置完成后,通过重构指令(core_fusion)完成结构重组。

(3)上电复位后,处理器进入用户代码的加载过程,此时处理器处于初始工作模式,等同一个核加载过程;

(4)与引导程序的末尾执行处理器重构。在完成core_fusion指令后才开始用户代码的执行,运行于不同流水线上的用户程序。

逻辑核取指:

处理器指令总线采用流水方式,共15级,划分为前段和后段两个部分,前段7级流水,后段8级。其中,指令总线前段为逻辑核的公共部分,每个逻辑核1条共4条;指令总线后段处于每个运算宏的内部,为每个运算宏私有,共16条。指令总线的前段负责从指令cache中获取指令包,并从指令包中提取可同时执行的指令执行行,发射给指令总线后段处理,同时根据指令总线后端反馈的同步控制信息,控制指令总线前段的执行。指令总线后端根据重构配置信息,判断本运算宏归属于哪个逻辑核,并选取对应的指令总线前端执行用户程序。

处理器的数据及程序采用统一共享的存储空间,且数据及程序均按照32bit的位宽进行存储,采用字节编址。处理器采用48bit指令集,48bit可以容纳更多的指令以及可重构操作信息,逻辑核每个时钟周期最多可接收8条48bit单字指令。由于48非2n,为保证一次取指长度不低于8*48bit(即12*32bit)且保证cache设计简单,实际取指过程中,程序控制器从私有一级指令Cache中按照16个32bit对齐的方式进行取指,并将其放入流水线前段缓存。流水线前段会根据指令的行结束标志将完整的执行行发射到逻辑核当中。若程序控制器一次取指过程无法获取完整的执行行就需要与下一个取指行完成执行行的拼接。为简化指令的拼接逻辑,所以子程序及中断服务程序的入口地址均需为16个32bit字对齐。

同步:

可重构架构面临的最重要问题之一就是分属同一逻辑核运算宏之间的操作同步。引发同步问题的主要情况包括:

●单宏内部数据相关所引发的多宏间同步问题;

●程序控制引发的多宏同步;

通过处理器架构和编程约束两个方面解决同步控制问题。编程约束方面,处理器的数据相关由软件检测处理。当使用汇编语言编程时,汇编工具链一旦检测到数据相关会通过编译警告的方式提醒编程人员,编程人员可以有选择性的进行修改,若使用C等高级语言编程,编译器会自行解除相关。

在处理器架构方面,将控制信号局部化,尽量避免全局性控制信号的产生。将分配译码逻辑分散到每个运算宏的内部,同步操作拆分成运算宏内部及指令流水的前段两类。当出现流水线清除及停顿等同步操作时,流水线前段及运算宏会根据各自的控制寄存器分别处理。

程序控制类寄存器(用于控制指令流水的阻塞、清除等同步操作)可划分成运算宏私有、公有及流水线同步控制三类。运算宏内的私有寄存器根据本运算宏的信息进行设置,运算宏内的公用寄存器及4条流水线的同步控制器会根据所有运算宏的私有寄存器进行更新。运算宏及流水线前段的同步操作分别受控于宏内公有及流水线同步控制寄存器。同步控制信息的局部化,避免出现过多的全局控制,影响芯片时序,同时,便于重构任意数目运算宏到逻辑核当中。

(2)指令集

汇编指令主要由谓词信息、运算宏信息及操作描述信息组成,机器指令如图5所示。任意指令均可根据运算宏内一组16bit寄存器-P[15:0]中某一位(由机器码中的第35~32位指定)选择是否真正执行。每个逻辑核的规模可根据实际需求按照运算宏进行任意重组,每个逻辑核可包含运算宏的数目由1~16个不等,每条指令驱动的运算宏由汇编指令中的运算宏信息指定,所有指令驱动的运算宏在逻辑序号上必须连续,图5中的C、D表示运算宏起止序号。

每个运算宏内的指令运行只受本运算宏内的P[15:0]控制。16bit控制寄存器的第0位-P0为一特殊寄存器,程序员只能读,不能赋值,上电复位后该位置“1”。所用运算宏在程序员未指定谓词寄存器的情况下均受控于P0。例如:[P1]M0_1R3=R2+R1 表示运算宏0及宏1内执行的32bit加法操作分别受控于各自宏内P1寄存器;而M0_1R3=R2+R1 则表示运算宏0及宏1内执行的32bit加法操作分别受控于各自宏内P0寄存器。处理器可通过参数,选择谓词寄存器为‘1执行,还是为‘0执行。如:[P1] M0_1R3=R2+R1表示P1为‘1执行该加法指令,[!P1] M0_1R3=R2+R1表示P1为‘0执行加法指令。当汇编指令中省略谓词寄存器的描述信息时,表示当P0为‘1时执行该指令,即M0_1R3=R2+R1与[P0]M0_1R3=R2+R1等价。当汇编指令中省略运算宏的描述信息时,表示只有逻辑标号为“0”的运算宏执行该指令,即[P2]R3=R2+R1与[P2]M0_0R3=R2+R1等价。

3 测试及验证

为了体现处理器的可重构的特点,基于cadence公司pxp硬件加速器构建仿真平台[3],选择雷达信号处理PD模式作为典型用例加以实现,PD模式是现代雷达中较为常用的一种处理模式其利用多普勒效应检测目标信息,主要包括脉冲压缩、滤波处理和恒虚警处理三个部分。算法实现过程中,由处理器的1核完成时域脉压处理,完成波束形成,2核完成波束的横向滤波器组处理,由3核对滤波运算的结果进行对数运算,最后由4核完成恒虚警处理,检测出目标点,算法可充分检验处理器的多任务及并行处理能力,经典型应用检验,处理器功能满足应用要求。

脉冲压缩可充分利用发射机平均功率。脉冲压缩对接收信号进行匹配滤波处理,滤波器具有时延-频率特性,延迟时间随频率变化,实现脉冲内各频率分量在时域被积叠,即压缩,形成幅度增大、宽度变窄的脉冲信号。

本系统滤波运算采用FIR滤波器。滤波器采用了16个脉冲。在脉冲重复频率内,安排16个窄带滤波器组覆盖,其中每个窄带滤波器在零频处设置零点,这样提高地物杂波的抑制能力。幅频特性如图8所示:

16个脉冲相参积累,提高了信噪比。杂波和目标信号将处于不同窄带内,在快门限检测中进行分频道处理,由于杂波是体杂波,幅度起伏不大,快门限可以有效剔除杂波虚警,而目标为点目标,满足门限检测要求就能提取。由于地杂波的幅度在距离上起伏较大,且杂波强度一般很大,目标在这个频道内不易提取,处理时将零频道剔除(必要时,根据需要考虑剔除相邻频道数据)。我们将从剩余频道中对数据分析,提取目标。

为控制杂波抑制滤波器输出的杂波剩余引起的虚警我们采用了单元平均选大恒虚警处理。

4 小节

DSP性能的持续提升仅靠单核架构是无法实现的,多核是当前实现其性能提升的最主要手段,可重构技术是充分发挥多核效率的重要途径。国内在高性能可重构多核DSP的研究方面,相比于發达国家和先进研究机构起步要晚,在关键技术与制造能力方面存在一定差距,在系列化DSP IP核积累、多核体系构架研究以及指令集设计等方面仍有较大的不足。如何增加可重构多核架构的效能,提升相关配套软件环境的实用性,是未来研究重点。

【参考文献】

[1]王延升.粗粒度动态可重构处理器中的高能效关键配置技术研究[D].清华大学,2014:1-10.

[2]许牧.可重构众核流处理器体系结构关键技术研究[D].中国科学技术大学,2012:13-37.

[3]胡海生,贾一凡.基于PalladiumXP硬件加速器的JTAG UVM系统设计.中国集成电路,2015(193):31-34.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!