基于tta的可配置处理器研究与设计

上传人:E**** 文档编号:117930656 上传时间:2019-12-11 格式:PDF 页数:74 大小:2.35MB
返回 下载 相关 举报
基于tta的可配置处理器研究与设计_第1页
第1页 / 共74页
基于tta的可配置处理器研究与设计_第2页
第2页 / 共74页
基于tta的可配置处理器研究与设计_第3页
第3页 / 共74页
基于tta的可配置处理器研究与设计_第4页
第4页 / 共74页
基于tta的可配置处理器研究与设计_第5页
第5页 / 共74页
点击查看更多>>
资源描述

《基于tta的可配置处理器研究与设计》由会员分享,可在线阅读,更多相关《基于tta的可配置处理器研究与设计(74页珍藏版)》请在金锄头文库上搜索。

1、上海交通大学 硕士学位论文 基于TTA的可配置处理器研究与设计 姓名:言峰 申请学位级别:硕士 专业:电路与系统 指导教师:毛志刚 20091201 上海交通大学 微电子学院 基于 TTA 的可配置处理器研究与设计 B0621091 1062109006 言峰 I 基于 TTA 的可配置处理器研究与设计基于 TTA 的可配置处理器研究与设计 摘 要 摘 要 ASIP(application specific instruction processor)是一种适 用于数字信号处理领域的处理器。荷兰 Delft University of Technology 第一个提出 TTA 结构并设计出基于

2、 TTA 体系结构可配置 处理器以及一套半自动化的设计工具,Move Framework,用来进行 ASIP 的开发。 本设计以 Move Framework 这套开发工具为基础,分别针对音视 频领域的 DCT 变换和针对通信领域的 FFT 变换算法进行优化设计。 目 标是设计出一个可以对两种算法均有优化的处理器核。 通过对设计出 的处理器核的性能评估表明, 处理器核对 DCT32 变换和 FFT1024 均展 现出有很好的性能并且具有面积小和功耗少的优点。另外,Move Framework 还可以设计专用功能单元加速对应的算法。本设计分别针 对不同的算法设计出一些优化的功能模块。通过仿真结果

3、表明,加入 专用功能单元后的性能相比较未加入设计的专用功能单元的性能有 很大的提升。 本论文研究出可以找到一种对于多种算法在一个处理器核内实 现的设计方法。 通过这个方法就可以在 TTA 的架构上面实现比较复杂 的算法并优化这些算法。例如 AVS 等。 关键词:关键词:传输触发架构,离散余弦变换,快速傅立叶变换,专用功能 单元 上海交通大学 微电子学院 基于 TTA 的可配置处理器研究与设计 B0621091 1062109006 言峰 II RESEARCH AND DESIGN OF CONFIGURABLE PROCESSOR BASED ON TTA ABSTRACT Applicat

4、ion-specific instruction set processors is a suitable choice as processors are being selected for the needs of digital signal processing applications. The Delft University of Technology from the Netherlands has proposed the TTA concept and develops semi-automated design tools, Move Framework, for de

5、signing application-specific instruction set processors. This design is optimized for DCT in Audio/Video domain and FFT in communication domain. The target is design a co-processor optimized for this two algorithms. And it could be shown that the processor has good performance and low power 根据某种操作占总

6、 操作的百分比,设计者可以很快确定需要使用该类型的功能单元的数量。在对目 标应用程序进行体系结构无关的分析模拟中, 我们通过分析确定操作并行度的 上限,可以确定在体系结构设计中最多使用多少条总线即可满足并行度的需要。 活跃的通用寄存器的数量,表明处理器在一般情况下需要多少个寄存器,就可以 在保证性能的前提下,尽可能节约硬件开销,由此确定处理器寄存器文件的大小 及数量16。 根据这些特征参数设计出的初步体系结构,功能单元,寄存器单元和总线是 全相联的,即所有功能单元,寄存器单元的寄存器端口都通过输入输出 socket 连接到每条总线上。然后将应用程序和体系结构描述文件在 back-end 编译器

7、下 进行编译,对应用程序在该体系结构下进行并行仿真,得到依赖特定架构的程序 运行性能文件和硬件资源消耗的文件。根据这些分析结果,通过系统优化工具对 体系结构描述进行优化,直到得到满足设计约束的体系结构为止。 上海交通大学 微电子学院 基于 TTA 的可配置处理器研究与设计 B0621091 1062109006 言峰 13 2.3.2 专用处理单元设计 2.3.2 专用处理单元设计 对于某些特定的复杂运算,可以通过分析目标代码,得到目标代码中运算量 最大最多的复杂运算,例如在 FFT 中,复数的乘法和加法运算量比较大。如果仅 仅将复数乘法用乘法和加法表示。这样在性能方面上就会有损失。但是若有一

8、个 专门的功能单元用来计算复数乘法。这样在性能上就会有所提升,而成本,也就 是面积的损失,也会增加。总的来说,就是用成本去换性能。像复数乘法单元这 样的功能单元,被称为专用功能单元(Special Function Unit)11。 设计专用功能单元涉及软件子系统和硬件子系统。在软件子系统中,需要在 back-end 编译器中定义专用功能单元。 并且使用 C/C+描述专用功能单元的结构 和功能。然后在目标代码中,修改相应的部分。将复杂算法用专用功能单元函数 替换掉。例如,复数乘法一般需要六条 C/C+描述,用专用功能单元替换后,只 需要一条 C/C+描述。从软件的角度上看,专用功能单元相当于定

9、义了某种特定 的函数,然后在需要的地方去调用它。 设计一个专用处理单元需要对 Move Framework 定义和增加一些操作。这样 编译器,仿真器才可以正确识别这些操作并且声称正确的 TTA 代码。这些操作可 以是任意复杂的操作,比如傅立叶变换的中的蝶形运算,或者是 CRC 计算,或者 是校验码的位操作等等。因此这些操作被称为用户自定义操作。 在 Move Framework 中有一个与用户自定义操作相关的文件叫做 userdef.h。 这个文件包含了许多宏定义。这些宏定义就是设计者用来进行自定义设计的模 板。如下所示的一个用户自定义操作模板: # _userdef_21_ (oper, t

10、ype, in1, in2) ( int result; asm type(“ 1 - usr“ #oper “_o; 2 - usr“ #oper “_t; usr “#oper “_r - o“ : define % % “=r“ (result) : “ri“ (in1) , “ri“ (in2) ; result; ) 其中_userdef_21_表示这个自定义模板是两输入端口,一个输出端口。Oper 表示是何种操作,通常是一个整数,假设在这里是 9。这样这个用户自定义操作 的含义就是 9_o ; 9_t ; 9_r ausrbusrusrres 当选择好所需要使用的模板后,就可以在

11、userdef.cc 文件中去描述用户自 定义操作的具体细节。这些细节就是设计者所要设计的专用功能单元实现的功 上海交通大学 微电子学院 基于 TTA 的可配置处理器研究与设计 B0621091 1062109006 言峰 14 能。例如,如果设计一个 Add3 操作。则代码为: SimulAdd3 (SimReg trig, SimReg* operand, SimReg* result) result0.i = operand0.i + operand1.i + trig.i ); return ture ; bool 另外需要修改的部分是 porg.cc。porg.cc 定义了用户自定义

12、操作的两个属性。 一个是用户自定义操作的名称,另外一个是用户自定义操作的操作数寄存器,触 发寄存器和结果寄存器的属性。 当在 porg.cc 和 userdef.cc 中定义好了用户自定义操作后,就可以在应用 程序中使用这些用户自定义操作。例如使用上述 Add3 操作。用户自定义的 ID 可以任意在 prog.cc 中设置。在这里我们设置为 4。具体的代码如下: int Add3(a, b ,c) int res; #ifdef _move_ res = _userdef_31_(4, PURE_FUNCTION, a, b, c); #else res = a+b+c; #endif ret

13、urn res; 当经过编译器编译之后,生成的 Move 指令为: 4_o ; 4_o1 ; 4_t ; 4_r ausrbusrcusrusrres 在硬件子系统中,只要在系统架构描述文件内加上所需要的专用功能单元并 将专用功能单元通过输入输出接口连接到总线上,然后使用 Move Processor Generator 就可以生成目标处理器的 HDL 代码。但是需要注意的是,Move Processor Generator 库并不包含专用功能单元的 HDL 代码。所以,需要设计者 自己去描述这个专用功能单元。硬件子系统已经定义好了功能单元的接口协议, 控制方式和流水线控制。 用户只需要在满足

14、接口协议的情况下设计所需要的专用 功能单元。其中接口协议和流水都是事先设计好的,设计者只需要考虑 Fu_core 中实现的逻辑。 上海交通大学 微电子学院 基于 TTA 的可配置处理器研究与设计 B0621091 1062109006 言峰 15 2.4 本章小结 2.4 本章小结 本章主要介绍了传输触发架构(TTA)的一些特点和 Move Framework 工具。首 先介绍了 TTA 是如何从 VLIW 演变而来以及为什么需要 TTA 这样一种与之前传统 的体系结构完全相异的新的体系结构。以及这样结构的软件和硬件方面的特点。 接着介绍了 Move Framework 工具的不同部分。第三节

15、介绍了如何使用这套工具 去设计一个设计者想要的处理器核, 以及如何去设计一个用户自定义操作和专用 功能单元。第四节介绍了对于多种算法如何在传输触发体系下的基本设计流程。 分为整体设计和分步设计两个部分。 上海交通大学 微电子学院 基于 TTA 的可配置处理器研究与设计 B0621091 1062109006 言峰 16 第三章 常用数字信号处理算法 第三章 常用数字信号处理算法 变换主要用于处理一些复杂的数学问题。通过一些合适的变换运算,求导和 积分运算可以转化为简单的数学运算。在信号处理领域中,主要使用的是傅立叶 变换。在这章中,分别介绍两中比较常用的变换,首先介绍的是在 H.264 中应用

16、 的 DCT 变换的算法。其次介绍在通信领域中的 FFT 变换算法。 3.1 DCT 变换原理 3.1.1 DCT 变换概念 3.1 DCT 变换原理 3.1.1 DCT 变换概念 离散余弦变换(Discrete Cosine Transform, DCT)用于图像编码是 1974 年 由 Ahmed 和 Rao 提出的。现在的图像和视频压缩所普遍采用的变换有很多种,大 体可分成两类:块变换和图像变换。块变换的例子有 K-L 变换,SVD 和 DCT 变换。 这些变换的操作对象都是NN的图像块或者残差图像块,其处理单位称为块。 块变换的优点在于占用内存小,适用于分块运动补偿后的残差图像;缺点在于存 在块效应。基于图像的变换只对整幅图像进行操作,比较常用的有离散小波变换 (Discrete Wavelet Transform, DWT)o DWT 等变换克服了静态图像压缩中的块 效应,但对内存要求较高,并且与分块运动补偿不匹配。MPEG-4 视频标准中同 时支持 DCT 和 DWT 变换,H.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号