




已阅读5页,还剩79页未读, 继续免费阅读
(电子科学与技术专业论文)定点除法器与向量alu移位器设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国防科学技术大学研究生院硕士学位论文 第 ii 页 abstract as the developement of communication technology, 3g is used widely, and 4g is researched hotly. this is a challenge for dsp, and requires dsp performance more. on the one hand, dsp is required for higher data throughput. on the other hand, the dsp power consumed is limited, as the specialty of mobile device. it is a good idea to adopt vector processing unit (vpu). jump instruction, branch instructon and other control instructions are processed by scalar processing unit (spu). and vpu only deal with volumes of parallel data. there are two important components in vpu: arithmetic logical unit (alu) gamma = gbis % c; emin = nl * qm * (gbis / c); emax = nl * qm * (gbis - 1) / c + 1); k0 = r * (2 * (cb - 1)/ (8 * r) + 1) * rv_idx + 2); (index+)%kw if(index = kw) index = 0; 3kops 3kops 7kops f(450) f(450) 加扰 异或 c=ab f(450) 调制 移位 加法 条件操作 val1; num+=val; if(in0) num+=val f(450) f(450) f(450) 解扰 异或 c=ab f = 1200*12*2*6 解 速 率 匹 配 与 解 信 道 除法 乘法 移位 *cols 求解 kmimus,kplus 7kops f 3kops 国防科学技术大学研究生院硕士学位论文 第 8 页 交 织 合 并 取模 加法 条件操作 %kpi 内外层循环的 5 次,去掉除法的 1 次 + 1 次 内外层循环的 2 次,去掉除法的 1 次 + 1 次 k%(3*kpi) (pk / r + (k % r) * cols) (pk / r + cols * (k % r) + 1) % kpi) f/3 7f 4f f = 1200*12*2*6 在 lte 运算中,诸如 fft/ifft、fht、信道估计、fir 滤波、mimo 均衡 算法等运算量大。同时这些算法运算又有较大的并行性以及一些特殊的运算模 式,从而使得在处理器级采用专门的支持成为可能。因此设计新型高效的多核 dsp 对上述算法提供高效支持, 减少对专用加速器的依赖对于基站平台的设计有 着重要的意义。 除此之外, 无线协议比特级的处理器支持也是一个需要突破的重 要方面, 如果能够在处理器级对比特处理进行高效的支持,那么基站的应用范围 以及可扩展性将得到极大提高。 1.4 相关的相关的 dsp 为实现 lte,国际上给出了许多解决方案,其中主要有: a) tci6487 tci6487 是一个多标准 soc 平台,专门针对 td-scdma、wimax、 cdma2000 和 umts tx 的系统级基带解决方案;它是一个可伸缩平台,其模块 化设计非常适用于开发微微蜂窝基站、 微蜂窝基站和宏蜂窝基站;它集成了三个 独立的 dsp 子系统, 每个子系统均含有一个 1.0ghz c64x+ dsp 内核, 总共 3ghz 性能。为了支持目标无线应用,该器件还提供专用协处理器,其中包括 viterbi 解码协处理器、turbo code 解码协处理器、以及 rake search/spread 加速器。 tci6487 支持标准天线、网络、器件以及设备间通信接口,其中包括串行 rapidio(srio)、obsai 与 cpri 天线接口,以及与外部存储器连接的高速通信 接口。cpri 接口无需 fpga 即可与背板直接连接,tci6487 dsp 菊花链无需 fpga 即可支持天线流分布/结合。 tci6487 还集成了 ti 独特的电源与性能管理 技术 smartreflex,该技术可通过密切监测电路速度并调节电压来满足特定的性 能要求。 这种技术将降低器件在每工作频率消耗的电量, 并同时减少芯片的散热 量。这就为设计师在同一块卡上添加多个 tci6487 器件提供了灵活性,同时也 兼顾了电源预算方面的考虑。 但是 ti6487 价格也较为昂贵。另外 4 个 ti6487 芯片支持 lte 协议的 2 天线,3 载扇(10mhz)配置,这个性能相对 lte 协议 国防科学技术大学研究生院硕士学位论文 第 9 页 来说还有较大的提升空间。 b) picochip203 picochip203 以已经验证的多核 picoarray 架构为基础, 但是带有更大的处理 器阵列,同时保持全码的兼容性。与传统 dsp 相比,picochip 的 picoarray 已被 证实在独立的基准测试下可提供 40 倍的性价比优势,以及高 8 倍的绝对性能。 picochip203 由大规模处理阵列结合协处理器组成,主要提供对 wimax 协议的 支持。但是该处理器的频率较低,并且没有针对 lte 协议做高效的支持。 c) msc8144 msc8144 处理器基于飞思卡尔先进的 90 纳米绝缘体上单晶硅薄膜(soi, silicon on insulator)处理技术,嵌入了四个 starcore sc3400 dsp 内核,每个核以 高达 1ghz 的速度运行,因此性能相当于一个 4ghz 单核 dsp。msc8144、 msc8144e 和 msc8144ec 集成了 10.5 兆字节的嵌入式内存、双 risc quiccengine 技术以及高速分组接口(如 serial rapidio、utopia/atm 和双吉比 特以太网),同时保持了极具竞争力的成本和每信道功率包层。msc8144 支持的 无线应用包括面向 3g wcdma、 td-scdma 的无线基带处理板卡、 wimax 基 站、无线语音代码转换、ip 多媒体子系统(ims)网关以及无线网络控制器中的二 层处理。同样该处理器对的性能相对 lte 协议的高带宽配置还稍显不足。 d) stw51000 stw51000 在一颗芯片内集成了两个 600mhz quad-mac dsp 核心,以及一 个 300mhz 的 arm926 risc 核心、16mb 的嵌入式 sram 存储器和专用的信道 解码协处理器。一个 stw51000 可以满足运行在 dsp 上的完整的 10mhz tdd (时分复用)phy 的要求,以及运行在 arm926 上的 mac 底层的要求。stw 主 要针对 wimax 协议,对于 lte 协议没有专门的支持,用在 lte 无线基站端功 耗、代价相对较大。 e) anysp anysp 是 michigan 大学 sdr 小组设计的一款面向未来 4g 通信以及图像视 频处理应用的基带信号处理器。 anysp 由紧耦合的标量与向量处理单元组成, 可以支持多种不同的 simd 宽度, 并且对出现频率较高的链接操作具有较好的支 持, 但是该体系结构只是实现了对无线通信核心算法的高效支持,没有对完整的 无线通信协议进行支持。同时对于 lte 协议中大量出现的矩阵操作,也没有相 应的体系结构级的支持。 以上五款 dsp 对 lte 的支持均有所不足。dsptci6487 价格较为昂贵,其 性能相对 lte 协议来说还有较大的提升空间。picochip203 主要提供对 wimax 协议的支持,该处理器没有针对 lte 协议做高效的支持。stw 主要针对 wimax 国防科学技术大学研究生院硕士学位论文 第 10 页 协议,用在 lte 无线基站端功耗、代价相对较大。msc8144 处理器的性能相对 lte 协议的高带宽配置还稍显不足。 anysp 只是实现了对无线通信核心算法的高 效支持,没有对完整的无线通信协议进行支持。 1.5 yhft-matrix yhft-matrix 是国防科学技术大学计算机学院研制的可编程通用高性能 dsp。该 dsp 完全自主设计,可以应用于任何典型定点/浮点数字信号处理应用。 它满足 lte 基站硬实时处理,支持用户自定义指令、协处理器以及外设的无缝 接入。 yhft-matrix 的性能为: 32g/16g/8gmac500mhz (8/16/32 位定点数) 、 8g/8gfma500mhz(单精度/双精度浮点数)、8gcmac500mhz(16 位复 数)。片内存储容量 512kb 以上,片外存储带宽 12.5gbps。另外 yhft-matrix 的功耗低于 3w500mhz。 为了满足 lte 基站 dsp 的高性能需求,yhft-matrix 采用标量处理和向量 处理并发执行的体系结构,如图 1.4 所示。为了提供对矩阵运算的支持, yhft-matrix 由紧耦合的标量处理单元(spu)与向量处理单元(vpu)组成。 标量处理单元负责整个内核的程序流控制、 配置以及调度功能, 并完成一些不适 于用向量方式处理的算法。向量处理单元用于处理高计算密度的算法。向量数据 访问单元用于为向量处理单元供数。 全局矩阵寄存器文件为向量处理单元缓冲并 提供数据, 而且直接支持矩阵的列访问等特殊访问模式。 全局共享寄存器用于标 量部件和向量部件直接交互数据。srio 用于与主机间通信。 取指/派发 标量处理 单元 (spu) 多宽度规约树/vpe间混洗 向量存储体 v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e v p e 向量处理单元 (vpu) 数据 cache 指令 cache ddr控制器srio dma总线 图 1.4 yhft-matrix 体系结构图 国防科学技术大学研究生院硕士学位论文 第 11 页 向量处理单元由 16 个处理单元 (pe) 和用于 pe 间操作的多宽度加法归约和 混洗单元构成。混洗单元允许 pe 之间的数据按照任意方式的混洗,但任何 pe 只能通过混洗指令获得一个数据。 为了提供对 32 位乘法的支持,每个 pe 包含 2 个 mac 单元。 为了增加 alu 的数据处理能力,每个 pe 包含 2 个 alu 单元。为了提供对比特运算的支持, 每个 pe 还包含 1 个移位器单元以及 1 个位操作单元,如图 1.5 所示。 因此,每个 pe 包含 6 个运算单元,可并行执行六条指令,包括 2 个乘加、2 个加法、1 个移位以及 1 个位操作。运算单元支持 simd 指令,有四种 simd 模 式。 simd 乘法器每拍完成 2 个 16 位 mac,或 1 个 32 位 mac,或 1 个单精度 浮点 mac。 simd alu 每拍完成 4 个 8 位加法,或 2 个 16 位加法,或 1 个 32 位加法, 或 1 个 40 位加法。 simd 移位器每拍完成 4 个 8 位移位, 或 2 个 16 位移位,或 1 个 32 位移位, 或 1 个 40 位移位。 累加器 simd乘 加单元 simd alu simd移 位单元 simd位 操作单元 bypass网络 通用寄存器 数据访问单元 运算指令标量数据 全局矩阵寄存 器文件 多宽度加法规约树 /pe间混洗 图 1.5 vpe 结构图 为了降低功耗和实现复杂度,除 16 个通用寄存器 r015 外,pe 内还有 4 个累加寄存器 ac03。 标量处理单元由 1 个处理单元(pe)组成。为了提供对定点除法的支持, 国防科学技术大学研究生院硕士学位论文 第 12 页 标量处理单元除了包含向量 pe 中的 6 个运算单元外,还包含一个定点除法器单 元。 1.6 论文论文主要工作主要工作 本文首先研究了 lte 算法的需求,尤其是针对定点 alu、移位器以及定点 除法器的需求。 根据研究本文提出了 simd 定点 alu,simd 移位器和定点除法 器需要完成的功能。在功能需求的基础上,本文提出了的三个功能部件的指令集 设计。 为了完成 simd 定点 alu 需要完成的功能, 本文查阅了相关的论文和专利。 通过查阅这些论文和专利发现现有的 alu 的技术无法支持 simd 模式,因此本 文提出了一种新的 alu 结构,该结构能够支持 simd 操作。本文随后对该 alu 进行了逻辑综合和功能验证。逻辑综合结果表明该 alu 满足设定的时序要求, 面积和功耗较小且工作频率最快可达 588m hz。功能验证结果表明该 alu 的功 能完全正确,达到了设计目标。 为了完成 simd 移位运算需要完成的功能,本文查阅了相关的论文和专利。 通过查阅发现现有的 simd移位器仅仅支持 simd循环移位而无法支持simd逻 辑移位和 simd 算术移位。lte 算法中对移位运算的需求为逻辑移位和算术移 位,因此本文提出了一种新的移位器结构,该结构能够支持 simd 逻辑移位和 simd 算术移位。本文随后对该移位器进行了逻辑综合和功能验证。逻辑综合结 果表明该移位器满足设定的时序要求,面积和功耗较小且工作频率最快可达 714m hz。功能验证结果表明该移位器的功能完全正确,达到了设计目标。 为了完成定点除法,本文研究了相关的论文和专利。在研究中发现现有的定 点除法算法在迭代求商的过程中产生了大量的无效减法操作。无效减法, 即减法 的结果改变对商没有影响。本文提出了一种新的定点除法算法以及相应的除法 器。 该除法器能够消除无效减法显著降低迭代的周期。 本文随后对该除法器进行 了逻辑综合和功能验证。 逻辑综合结果表明该除法器满足设定的时序要求,工作 频率最快可达 667m hz。 功能验证结果表明该定点除法器的功能完全正确, 达到 了设计目标。 1.7 论文的结构论文的结构 本文分为六章,各章的组织如下: 国防科学技术大学研究生院硕士学位论文 第 13 页 第一章 绪论:简要介绍了 dsp 的发展历史,dsp 的结构功能以及特点;简要介 绍了 lte 以及 lte 算法需求;简要介绍了针对 lte 的几款 dsp 以及我 们的 yhft-matrix dsp;阐述了本文的主要内容和文章的主要结构。 第二章 simd 定点 alu 单元设计:主要介绍了定点 alu 设计需求,给出了定 点 alu 的指令集设计和结构设计, 给出了 simd 定点 alu 的性能分析。 第三章 simd 移位器单元设计:主要介绍了移位器设计需求,给出了移位器指 令集设计和结构设计,给出了 simd 移位器的性能分析。 第四章 定点除法器设计: 主要介绍了定点除法器的设计需求, 算法和结构设计。 给出了定点除法器的性能分析。 第五章 功能验证:主要给出了 simd 定点 alu、simd 移位器、除法器等的功 能验证方法步骤和结果。 1.8 论文的研究成果论文的研究成果 本文在现有的 alu 的结构基础上,提出了一种进位信号控制算法。根据该 算法,实现了 simd 定点 alu 的 simd 结构。对于移位器本文提出了数据右移 控制开关结构,利用数据右移控制开关控制数据的右移从而实现了移位器的 simd 结构。在定点除法上,本文提出了定点除法的分离算法以及对应的除法器 结构。 在以上研究工作的基础上,发表论文一篇,已申请两项国家发明专利。 国防科学技术大学研究生院硕士学位论文 第 14 页 第二章 simd 定点 alu 单元设计 2.1 simd 定点定点 alu 设计设计需求需求 根据 lte 运算需求,在 lte 调制解调运算中每一帧的计算次数复数加法运 算量占总体运算量的 13.6%,定点加法运算量占总体运算量的 0.8%,按位与运 算量占总体运算量的 42.5%。alu 单元整体运算量占总运算量的 56.9%。 同时 lte 算法中,处理的数据特征为:大多数输入输出数据为 16 位或者 8 位。中间数据以 20 位或者 40 位居多。如表 2.1 所示。为了提高对 8 位数据和 16 位数据的处理能力,需要提供 simd 定点 alu 单元对 lte 运算提供支持。 表 2.1 lte 算法处理数据的位宽 算法 输入数据位宽 输出数据位宽 中间数据位宽 fft 16 比特 16 比特 22 比特 fht 8 比特 16 比特 / dft 16 比特 16 比特 18 比特 fir 16 比特 16 比特 20 比特,40 比特 信道估计 16 比特 16 比特 20 比特,40 比特 mimo 均衡 16 比特 16 比特 32 比特,64 比特 qam 解调 16 比特 8 比特 / 其他 68 比特 xilinx 公司于 2006 年提出一篇 alu 专利12,该 alu 通过一拍执行多条指 令,每条指令执行一种算术或逻辑操作,达到一拍执行多个操作的目的。每一个 加法器前均有一个多路选择器, 通过控制多路选择器来选择不同的执行操作。 多 路选择器由指令派发部件提供的 opmode 控制。通过编码的配置,该 alu 可 以一拍执行一个/多个算术运算,一个/多个逻辑运算或者算术运算和逻辑运算的 组合。xinlix 的 alu 结构是 misd(多指令单数据) ,执行的指令需要重新安排 调整。该 alu 将输入数据相关的 alu 运算指令进行整合,一次执行得到多个 结果。该 alu 的结构复杂,实现难度大,而且编译困难。 lte 算法短时间内需要处理大量的数据,尤其是需要对小矩阵运算提供支 持。由于 lte 算法数据并行度高,数据结构不需要重新调整即可满足数据并行 国防科学技术大学研究生院硕士学位论文 第 15 页 处理的要求, 满足 simd 的使用条件。 因此 yhft-matrix dsp 的 alu 采用 simd 结构。采用 simd 结构之后,yhft-matrix dsp 在 8 位的 alu 数据运算吞吐量 上提升 4 倍,在 16 位的 alu 数据运算吞吐量上提升 2 倍。 2.2 simd 定点定点 alu 指令集设计指令集设计 simd 定点 alu 指令集反映了 simd 定点 alu 的基本功能。 为了支持 lte 中 alu 运算,以及优化无线通信算法在处理器中的执行周期缩短算法的执行时 间,需要提出专门的 alu 指令集。该指令集需要支持 simd 算法,并且对 lte 中常见的 alu 运算进行支持。设计 simd 定点 alu 指令集有以下四个原则: a) 正交性:指令中不同含义字段之间编码时应相互独立 b) 规整性:对相似的操作有相同的规定 c) 可扩充性:保留一定的操作码空间,供以后扩展 d) 对称性:为编译方便,使操作有对称性。 定点 alu 指令集见表 2.2。每一条 alu 指令的执行周期均为 1 拍。 表 2.2 alu 指令 指令类型 指令 指令注释 定点加法 vadd vadd8 4 个 8 位的有符号加法 vaddu8 4 个 8 位的无符号加法 vadd16 2 个 16 位的有符号加法 vaddu16 2 个 16 位的无符号加法 vadd32 32 位的有符号加法 vaddu32 32 位的无符号加法 vadd40 40 位的有符号加法 vaddu40 40 位的无符号加法 定点减法 vsub vsub8 4 个 8 位的有符号减法 vsubu8 4 个 8 位的无符号减法 vsub16 2 个 16 位的有符号减法 vsubu16 2 个 16 位的无符号减法 vsub32 32 位的有符号减法 vsubu32 32 位的无符号减法 vsub40 40 位的有符号减法 国防科学技术大学研究生院硕士学位论文 第 16 页 vsubu40 40 位的无符号减法 取绝对值 vabs vabs8 4 个 8 位的取绝对值 vabs16 2 个 16 位的取绝对值 vabs32 32 位取绝对值 取最大值 vmax vmax8 4 个 8 位的取最大值,有符号。两个源操作数分别分成 4 个 8 位,分成 4 对,在这 4 对中取每一对的最大值。 vmaxu8 4 个 8 位的取最大值,无符号。两个源操作数分别分成 4 个 8 位,分成 4 对,在这 4 对中取每一对的最大值。 vmax16 2 个 16 位的取最大值,有符号。两个源操作数分别分成 2 个 16 位,分成 2 对,在这 2 对中取每一对的最大值。 vmaxu16 2 个 16 位的取最大值,无符号。两个源操作数分别分成 2 个 16 位,分成 2 对,在这 2 对中取每一对的最大值。 vmax32 有符号取最大值。取两个源操作数中的最大值 vmaxu32 无符号取最大值。取两个源操作数中的最大值 取最小值 vmin vmin8 4 个 8 位的取最小值,有符号。两个源操作数分别分成 4 个 8 位,分成 4 对,在这 4 对中取每一对的最小值。 vminu8 4 个 8 位的取最小值,无符号。两个源操作数分别分成 4 个 8 位,分成 4 对,在这 4 对中取每一对的最小值。 vmin16 2 个 16 位的取最小值,有符号。两个源操作数分别分成 2 个 16 位,分成 2 对,在这 2 对中取每一对的最小值。 vminu16 2 个 16 位的取最小值,无符号。两个源操作数分别分成 2 个 16 位,分成 2 对,在这 2 对中取每一对的最小值。 vmin32 有符号取最小值。取两个源操作数中的最小值 vminu32 无符号取最小值。取两个源操作数中的最小值 取相反数 vneg vneg8 4 个 8 位取相反数 vneg16 2 个 16 位取相反数 vneg32 32 位取相反数 mov 指令 vmov 将源操作数 mov 到目的操作数 相等比较 veq veq8 4 个 8 位相等比较。相等取 1,不等为 0 veq16 2 个 16 位相等比较。相等取 1,不等为 0 veq32 32 位相等比较。相等取 1,不等取 0 小于比较 vlt vlt8 4 个 8 位有符号小于比较,相等取 1,不等取 0 vltu8 4 个 8 位无符号小于比较,相等取 1,不等取 0 国防科学技术大学研究生院硕士学位论文 第 17 页 vlt16 2 个 16 位有符号小于比较,相等取 1,不等取 0 vltu16 2 个 16 位无符号小于比较,相等取 1,不等取 0 vlt32 32 位有符号小于比较,相等取 1,不等取 0 vltu32 32 位无符号小于比较,相等取 1,不等取 0 逻辑指令 vand 逻辑按位与操作 vor 逻辑按位或操作 vxor 逻辑按位异或操作 vnot 逻辑按位取非操作 2.2.1 simd 定点 alu 算术类指令 为了支持算术运算,simd 定点 alu 提供了算术类指令。simd 定点 alu 需要完成以下算术类指令:定点加法,定点减法,取绝对值,取最大值,取最小 值,取相反数,mov,相等比较,小于比较。加法指令,减法指令,mov 指令 为常用指令;而取绝对值,取最大值和最小值,取相反数,相等比较,小于比较 类指令是为支持 lte 运算而提供的特殊指令。 a) 定点加法指令 定点加法指令将两个源操作数相加。为了支持 simd 模式,定点加法一共有 八种,其中每一种 simd 模式的定点加法分为有符号加法和无符号加法。 b) 定点减法指令 定点减法指令将两个源操作数相减。同样的该指令也有八种。由于定点加法 和定点减法在运算中的大量使用,尤其是在迭代过程中的运用,因此在定点 alu 的运算类指令中, 定点加法指令和定点减法指令需要进行 40 位的操作。 同时为了提高计算的精度,定点加法和定点减法指令支持饱和操作和非饱和 操作。饱和操作和非饱和操作由控制寄存器控制,而不是由指令控制。 对于饱和操作,当结果上溢出时,结果取所能表达的最大值,同时溢出标志 位置位;当结果下溢出时,结果取所能表达的最小值,同时溢出标志位置位。 对于非饱和操作,当结果出现溢出时,溢出标志位置位。 c) 取绝对值指令 在 lte 运算过程中,40 位取绝对值应用较少,因此这里不支持 40 位操作数 的取绝对值操作。取绝对值指令支持的 simd 模式为:32 位取绝对值,2 个 16 位取绝对值,4 个 8 位取绝对值。这里只有有符号取绝对值指令而不存在 无符号取绝对值指令。 d) 取最大值指令/取最小值指令 国防科学技术大学研究生院硕士学位论文 第 18 页 取最大值指令和取最小值指令为一类特殊的运算指令。取最大值和最小值操 作可以由减法操作等基础指令来完成。但是为了优化执行时间,这里提供专 门的取最大值指令/最小值指令。 取最大值指令/最小值指令也不支持 40 位操作数。取最大值/最小值的 simd 模式为:32 位取最大值/最小值,2 个 16 位取最大值/最小值,4 个 8 位取最 大值/最小值。 由于有符号取最大值/最小值操作和无符号取最大值/最小值操作的结果不同, 因此需要分别给出有符号取最大值/最小值指令, 以及无符号取最大值/最小值 指令。 需要注意的是 4 个 8 位取最大值的指令(2 个 16 位取最大值,取最小值指令 的执行也与此类似) 。源操作数 1 分为 4 个 8 位 a_3,a_2,a_1,a_0。源操作数 2 分为 4 个 8 位 b_3,b_2,b_1,b_0。 该指令得出的结果分别为对应的每个 8 位 比较的最大值,而不是这 4 对数中的最大值。该指令的过程示意图如图 2.1。 a_3a_2a_1a_0 b_3b_2b_1b_0 07152331 maxa_3 ,b_3 maxa_2 ,b_2 maxa_1, b_1 maxa_0, b_0 源操作数1 源操作数2 目的操作数 = = = = 图 2.1 4 个 8 位取最大值示意图 e) 取相反数指令 由于无符号数取相反数没有任何意义,因此只存在有符号取相反数指令。取 相反数指令也不支持 40 位操作数取相反数, 其 simd 模式为 32 位取相反数, 2 个 16 位取相反数,4 个 8 位取相反数。 f) mov 指令 mov 指令相对简单。由于四种 simd 的 mov 操作过程和结果相同,因此 mov 类指令只有一条 mov 指令,将源操作数 mov 到目的操作数。若源操 作数为 40 位,则目的操作数也为 40 位;若源操作数为 32 位,则目的操作 数为 32 位。 g) 相等比较指令 有符号相等比较和无符号相等比较的算法和结果均相同,因此相等比较指令 不区分有符号操作和无符号操作。 相等比较指令不支持 40 位操作数的相等比 国防科学技术大学研究生院硕士学位论文 第 19 页 较, 其 simd 模式为 32 位相等比较, 2 个 16 位相等比较, 4 个 8 位相等比较。 若两个相等比较的数相等,则结果为 1;若两个相等比较的数不同,则结果 为 0。 h) 小于比较指令 对不不等比较类指令,由于小于比较和大于比较互补,因此指令集仅提供小 于比较指令。有符号小于比较和无符号小于比较的结果不同,因而小于比较 指令区分有符号操作和无符号操作。 小于比较指令不支持 40 位操作数的小于 比较,其 simd 模式为 32 位小于比较,2 个 16 位小于比较,4 个 8 位小于比 较。若被比较数小于比较数,则结果为 1;若被比较数大于等于比较数,则 结果为 0。 2.2.2 simd 定点 alu 逻辑类指令 为了支持逻辑运算,alu 提供了逻辑类指令。simd 定点 alu 需要完成以 下逻辑类指令:按位与,按位或,按位取反,按位异或。这四种逻辑操作为常见 的逻辑操作。 由于逻辑类操作不涉及到进位链的传播和控制, 逻辑类指令的任何 simd 模 式执行过程和结果均相同,因此逻辑类指令不涉及 simd 模式。 逻辑类操作不涉 及饱和操作,也不涉及有符号和无符号操作。因此逻辑类指令只有 4 条指令。 2.2.3 指令格式 为了使处理器的指令派发单元和译码单元尽可能简单, 指令包和指令的格式 采用了规整的二进制结构,每一条指令的长度固定为 32 位。如图 2.2 所示。指 令格式的各段定义如下: (1) 指令并行标志位 p,1bit。如果某一条指令的 p 位是 1,那么它是与前一条指 令并行流出的,否则这条指令必须等待前一条指令流出后才能流出。同时 p 位在执行包中用于标识该条指令是否是一个执行包的最后一条指令。如果 p 为 1 表示该条指令不是执行包的最后一条指令,如果 p 为 0 则表示该条指令 是执行包的最后一条指令。 国防科学技术大学研究生院硕士学位论文 第 20 页 op1dstsrc1op2src2op3/imm5unitpconz 01510141721252931 op1dst/src1imm16unitpconz 01521252931 (a)向量指令格式一 (a)向量指令格式二 图 2.2 向量指令包和指令格式 (2) 指令功能单元位 unit,4bit。它表示该指令由哪个功能部件执行,派发部件根 据 unit 对执行包中的指令进行派发。simd 定点 alu 的 unit 为 1110。 (3) 立即数表示为短立即数 imm5,长立即数 imm16。长立即数仅仅应用于 mov 指令中。 (4) 条件指令测试寄存器标志位 con,2bit。表示参与条件测试的寄存器序号,00 表示无条件执行的指令,01、10 和 11 分别表示测试寄存器为 r1,r2 和 r3。 (5) 条件指令测试类型标志位 z,1bit。z 等于 0,如果 con 所指的寄存器的值也 为 0,则本指令执行,否则执行 nop 指令。 (6) op 为操作码。指令格式二只能是单操作数指令。指令格式一给出的 op1 和 op2 为单操作数指令或双操作数指令。若 op1 全 0 时,则表示该指令为单操 作数指令;当 op1 非全 0 时,则表示该指令为双操作数指令 2.3 simd 定点定点 alu 数数据通路据通路 图 2.3 为 simd 定点 alu 总体数据通路。 ac2b 为累加器 ac2 的读总线。 rb 为局部寄存器的读总线。mrf 为矩阵寄存器的读总线。kdb 总线传送立 即数。wb0,wb1,wb2 为三条写总线。局部寄存器 r0r15 为 16*32 位, 累加器 ac0ac3 为 4*40 位。 st 为定点控制寄存器,用于控制 alu 的执行状态。 定点 alu 中用到的 主要的控制信号有饱和 sat 信号。scr 为定点状态寄存器,用于标识 alu 的执行状态。定点 alu 中用到的主要的状态信号有 alu 溢出标志位 oaf 信号。 国防科学技术大学研究生院硕士学位论文 第 21 页 opcode 经译码单元生成控制信号,控制 alu 执行各种 alu 指令。 simd 定点 alu 的源操作数 1 来源于累加器 ac2 或者局部寄存器 r 或 者立即数 imm。 simd 定点 alu 的源操作数 2 来源于局部寄存器 r 或者矩阵 寄存器 mrf。经过符号位扩展成 40 位数据,源操作数 1 和源操作数 2 输入 到 alu。操作码经译码信号生成 opcode 控制信号,控制 simd 定点 alu 执行 alu 指令。若 alu 进行定点加法操作或者定点减法操作,定点控制寄 存器 st 中的饱和操作标志位 sat 控制饱和操作或者非饱和操作。同时,若 定点加法或者定点减法操作产生溢出,则定点状态寄存器 scr 中的 alu 溢 出标志位置位。 x数据选择&符 号位扩展 y数据选择&符 号位扩展 simd定点alust opcode scr ac2b rb 40 wb1 32 wb2 32 wb0 32 kdb mrf 图 2.3 simd 定点 alu 数据通路 2.4 simd 定点定点 alu 结构结构 为了完成 simd 定点 alu 指令集给出的功能,需要提出相应的 simd 定点 alu 结构。该结构需要满足以下的条件: a) 正确执行所有的 alu 指令 b) 结构规整易于实现 c) 面积小,功耗低 simd 定点 alu 采用算术部分和逻辑部分组合的形式,如图 2.4 所示。40 位 simd 定点 alu 由 simd 算术部分和逻辑部分组成。simd 算术部分执行的 操作包括:加法、减法、取绝对值、取最大值、取最小值、取相反数、mov、 国防科学技术大学研究生院硕士学位论文 第 22 页 相等比较、小于比较。逻辑部分执行的操作包括:按位与、按位或、按位取反、 按位异或。多路开关的选择由译码信号控制。 adder_3 adder_2 adder_1 adder_0 adder_4 cin,0 cin,1 cin,2 cin,3 cin,4 of4 cout.3 of3 of2 cout,2 cout,1 of1 of0 cout,0 m u x 1 0 m u x 1 0 m u x 1 0 m u x 1 0 opcode s4 s3 s2 s1 s0 m u x 1 0 40 位 按 位 与 mux 饱和操 作调整 40 位 按 位 或 40 位 按 位 异 或 40 位 按 位 取 反 opcode mux 溢出标志 算术部分算术部分 逻辑部分逻辑部分 目的操作数 源操作数1 源操作数2 取反 mux y 图 2.4 simd 定点 alu 结构图 2.4.1 simd 定点 alu 算术部分 simd 定点 alu 算术部分执行加法、减法、取绝对值、取相反数、mov、 取最大值、取最小值、相等比较、小于比较。为了支持 simd 的 4 个 8 位操作, 定点 alu 算术部分以 8 位全加器为基础,采用 5 个 8 位全加器拼接组成算术部 分。 国防科学技术大学研究生院硕士学位论文 第 23 页 源操作数 1 src139:0从高位到低位分成 5 个 8 位,依次输入到全加器 adder_4,adder_3,adder_2,adder_1,adder_0 的第一个输入端。源操 作 数 2 src139:0 从 高 位 到 低 位 分 成 5 个 8 位 , 依 次 输 入 到 全 加 器 adder_4,adder_3,adder_2,adder_1,adder_0 的第二个输入端。每个 全加器除了两个数据输入端,还有一个进位信号输入端 cin。全加器的结果输出 信号为 s,溢出标志输出信号为 of。 全加器 adder_1 的进位信号输入端 cin,1在 1、0 以及全加器 adder_0 的 进位输出信号 cout,0之间选择。全加器 adder_2 的进位信号输入端 cin,2在 1、0 以及全加器 adder_1 的进位输出信号 cout,1之间选择。全加器 adder_3 的进 位信号输入端 cin,3在1、 0以及全加器 adder_2 的进位输出信号cout,2之间选择。 全加器 adder_4 的进位信号输入端 cin,4在 1、0 以及全加器 adder_3 的进位 输出信号 cout,3之间选择。全加器 adder_0 的进位信号输入端 cin,0在 1、0 之间 选择。选择开关由 opcode 译码信号控制。 当进行饱和操作时,需要进行饱和操作调整。 若饱和操作且结果上溢出则输 出为所能表示的最大值。若饱和操作且结果下溢出则输出为所能表示的最小值。 若饱和操作且结果不溢出,则直接输出。 a) 加法 加法操作, y 选择源操作数 2。 若进行 40 位加法操作, 则进位信号 cin,0=0, cin,1=cout,0,cin,2=cout,1,cin,3=cout,2,cin,4=cout,3。若进行 32 位加法操作, 则进位信号 cin,0=0,cin,1=cout,0,cin,2=cout,1,cin,3=cout,2,cin,4=0,同时结 果取低 32 位。 若进行 2 个 16 位加法操作, 则进位信号 cin,0=0, cin,1=cout,0, cin,2=0,cin,3=cout,2,cin,4=0,同时结果取低 32 位。若进行 4 个 8 位加法 操作,则进位信号 cin,0=0,cin,1=0,cin,2=0,cin,3=0,cin,4=0,同时结果 取低 32 位。 在加法的过程中,若产生溢出,则需要置溢出标志位。若 40 位加法,则 溢出标志由 of4 决定。若 32 位加法,则溢出标志由 of3 决定。若 2 个 16 位加法,则由 of3 和 of1 相或得到总体溢出标志。若 4 个 16 位加法, 则由 of3、of2、of1、of0 相或得到总体溢出标志。 b) 减法 减法操作,y 选择源操作数 2 取反。若进行 40 位减法操作,则进位信号 cin,0=1,cin,1=cout,0,cin,2=cout,1,cin,3=cout,2,cin,4=cout,3。若进行 32 位减 法操作,则进位信号 cin,0=1,cin,1=cout,0,cin,2=cout,1,cin,3=cout,2,cin,4=0, 同时结果取低 32 位。若进行 2 个 16 位减法操作,则进位信号 cin,0=1, cin,1=cout,0,cin,2=1,cin,3=cout,2,cin,4=0,同时结果取低 32 位。若进行 4 国防科学技术大学研究生院硕士学位论文 第 24 页 个 8 位减法操作,则进位信号 cin,0=1,cin,1=1,cin,2=1, cin,3=1,cin,4=0, 同时结果取低 32 位。 减法操作的溢出标志与加法的判定相同。 在 alu 指令中, 只有加法和减 法操作才能产生溢出标志。 c) 取绝对值 取绝对值为单操作数操作,结果取低 32 位。 。在进行该操作时,全加器 的第一个数据输入置为 0,y 选择源操作数 2 取反。若进行 32 位取绝对 值操作且 y 为正, 则进位信号 cin,0=0, cin,1=cout,0, cin,2=cout,1, cin,3=cout,2, cin,4=0。若进行 32 位取绝对值操作且 y 为负,则进位信号 cin,0=1, cin,1=cout,0,cin,2=cout,1,cin,3=cout,2,cin,4=0。 在进行 2 个 16 位取绝对值操作时,两个 16 位操作需要分别判断。若 y15:0为正,则进位信号 cin,0=0,cin,1=cout,0。若 y15:0为负,则进位 信号 cin,0=1, cin,1=cout,0。 若 y31:16为正, 则进位信号 cin,2=0, cin,3=cout,2。 若 y31:16为负,则进位信号 cin,2=1,cin,3=cout,2。而第五个全加器进位 信号 cin,4=0。 在进行 4 个 8 位取绝对值操作时,四个 8 位操作均需要分别判断。若全 加器的第二个数据输入端输入的数据为正, 则 cin=0。 若全加器的第二个 数据输入端输入的数据为负,则 cin=1。第五个全加器进位信号 cin,4=0。 d) 取最大值/最小值 因为没有 40 位取最大值操作,取最大值操作只有三种 simd 模式, 结果 取低 32 位。在进行该操作时,首先按照减法进行操作,接着判断结果的 正负来选取两个输入端数据的最大数。 e) mov mov 操作为单操作数操作。 在进行该操作时, 全加器的第一个数据输入 端置 0, y 选择源操作数 2。 同时 cin,0=0, cin,1=0, cin,2=0, cin,3=0, cin,4=0。 f) 相等比较 相等比较的判断的过程与异或操作相同,但是其结果不同于异或操作。 若进行相等比较过程,cin,0=0,cin,1=0,cin,2=0, cin,3=0,cin,4=0。利用 进位传播函数 p=ab, 若进位传播函数 p 等于 0, 则说明 a 与 b 相等; 若进位传播函数 p 不等于 0,则说明 a 与 b 不相等。 g) 小于比较 小于比较的操作首先进行减法操作。当减法的结果小于 0,则小于比较 的结果置 1;当减法的结果大于或者等于 0,则小于比较的结果置 0。 在进行取最大值操作、取最小值操作、小于比较操作时,均需要进行减 国防科学技术大学研究生院硕士学位论文 第 25 页 法操作。该减法操作的结果为中间结果,需要屏蔽标志位的置位。 2.4.2 simd 定点 alu 逻辑部分 simd 定点 alu 逻辑部分执行以下逻辑操作:按位与、按位或、按位取反、 按位异或。simd 定点 alu 逻辑部分不区分 simd 模式,逻辑部分由 40 位按位 与,40 位按位或,40 位按位异或,40 位按位取反操作以及选择开关组成。 源操作数一 src1 39:0和源操作数二 src239:0分别输入到 40 位按位与、 40 位按位或、40 位按位异或、40 位按位取反电路中。执行的结果由选择器选择输 出。 a) 按位与 全加器的进位产生信号 g=ab。可以利用全加器的进位产生信号来得到按 位与的结果。因此这里按位与的电路直接复用算术部分全加器的电路。 b) 按位或 根据逻辑表达式gbaba, g 为将源操作数一和源操作数二取反得 到的进位产生信号。按位或的电路直接复用算术部分全加器的电路。 c) 按位异或 全加器的进位传播信号 p=ab
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供水供热方案制定
- 健康保险总结规定
- 煤矿气动安全管理制度
- 养殖业市场调查报告
- 房地产项目营销策划与推广合作协议
- 园林绿化设计与养护协议
- 网络教育与在线培训服务承诺函3篇范文
- 农业资源保护与农民合作社合作合同
- 灵活就业服务保障承诺书3篇范文
- 品牌广告合作协议
- 人力资源招聘与甄选工作标准化手册
- 民俗学课件山大
- 2025-2026秋季学年第一学期学生国旗下演讲稿(20周):第五周 76载荣光里我们茁壮成长-喜迎国庆
- 办公楼供电线路改造方案
- 《无人机操控技术》高职无人机全套教学课件
- 12YJ11 卫生、洗涤设施设计图集
- 心内科STEMI再灌注治疗率提升
- 装载机司机安全考试模拟试题(含答案)
- 安全生产法2025全文
- 中储粮薪酬管理办法
- 高空外墙清洗员安全教育培训手册
评论
0/150
提交评论