logo资料库

论文研究-嵌入式处理器微内核低功耗设计.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 24 卷 第 4 期 2007 年 4 月 计 算 机 应 用 研 究 Application Research of Computers Vol. 24, No. 4 April 2007 嵌 入 式 处 理 器 微 内 核 低 功 耗 设 计 * 张 骏, 樊晓桠, 刘松鹤 ( 西 北工业 大学 航 空微 电子 中心 , 陕西 西 安 710072) 摘 要: 针 对嵌 入式 处理 器微 内核 的结 构特 点, 结合 32 位微 处 理 器 “龙 腾 C1”, 提 出 了 一 种 微 内核 的 低 功 耗 设 计方 法。在 体系 结构 层次 上, 分别 从微 操作 ROM、微 堆 栈和 微 操 作 编 码 几 个 不同 角 度 出 发, 对 嵌入 式 处 理 器 的 微内 核进 行了 功耗优 化设 计。 在几 乎不 影响 速度和 面积 的前 提下 , 微 内核 的功 耗有 19% 的降 低。 关键 词: 微 内核 ; 微 操作 ; 微堆 栈; 低功 耗 中图 分类 号: TP368. 1 文 章编 号: 1001- 3695( 2007) 04- 0265- 03 文 献标 志码 : A Design of Power Awared Micro-kernel in Embedded Microprocessor ZHANG Jun, FAN Xiao-ya, LIU Song-he ( Micro-electronics Center, Northwestern Polytechnical University, Xi’an Shanxi 710072, China) Abstract: According to the structure characteristics of micro-kernel in embedded microprocessor, and combined with 32 bits microprocessor “LongTium C1”, proposed a series of low power techniques to design the micro-operation-ROM, micro-stack and the micro-operation coding at architecture level. As a result, the power consumption of the micro-kernel in “LongTium C1”decreases 19% , almost without any impact on area and clock frequency. Key words: micro-kernel; micro-operation; micro-stack; low power 0 引言 嵌入式处理器的应用已日趋普及, 而在它众多的应用领域 中有不少地方是 对 嵌入 式处 理 器的 功率 消 耗有 严格 要 求的。 许多嵌入式系统, 或因为 电池可 供给的 电能有 限, 或 因为长 期 连续工作积累的电能消耗不菲, 减少系统的电能消耗成为系统 的重要性能指标之一。而微内核是嵌入式处理器的核心部件, 因此嵌入式处理器的微内核的 低功耗 设计是 系统绿 色化设 计 的重要环节。许多嵌入式处理 器的微 内核都 是基于 微操作 来 完成机器指令的执行, 这意味着增加一条机器指令只需改变译 码电路和增加一段新的微操作即可, 具有规整性、灵活性、可维 护性等一系列优点。 数字系统的低功耗设计 方法可 以分为 若干层 次。按照 抽 象层次 的 不 同, 可 以 分 为 系 统 级 ( System) 、结 构 级 ( Architec- ture) 、寄 存 器 传 输 级 ( Register Transfer) 、逻 辑 门 级 ( Gate / Lo- gic) 、版图级( Layout) 和电 路级 ( Circuit) 。每 个级 别可 以达 到 的低 功 耗 设 计 效 果 也 完 全 不 同, 在 体 系 结 构 级 可 降 低 电 路 40% ~70% 的 功耗, 而 在电 路级 功耗 只能降 低 5% ~10% , 所 以在体系结构级对微内核进行低功耗设计更有优势。 “龙腾 C1”是西北工业大学航空微电子中心自行研究设计 的 32 位嵌入式 处理 器, 目 前, 已 经采 用 0. 18μmCMOS 工 艺 流 片成功。 1 微内核的结构设计 微内核的基本思想就是把 操作控 制信号 编成所 谓的微 操 作, 存放到一个只读存储器里, 依次读出这些微操作, 从而完成 整个处理器所需要的各种控制信号, 使相应的部件执行所规定 的操作。一个微操作一般由操 作控制 和顺序 控制两 大部分 组 成。操作控制部分用来发出处 理器中 各个部 件的操 作控制 信 号; 顺序控制部分用来决定产生下一条微操作的地址。图 1 是 “龙腾 C1”的微内核的结构图。 Micro_ADDR fromMicroinstruction Micro_ADDR fromDecoder MUX PredictAddress 1 uPC+1 uPC uSTACK Exception MUX Test_Feedback PredictSymbol Micro_ADDR_REG MICROROM MUX NOP Micro_Instruction_REG Address Mode Micro_ Instruction Type Micro_Command_REG 图 1 野龙腾 C1冶的微内核的结构图 微内核主要由存放 微操 作的 微操 作 ROM、微 操作 寄存 器 和微地址产生 逻辑 三部 分 构成。 微操 作 ROM 用来 存放 实 现 全部指令系统的所有微操作, 微地址寄存器决定将要访问的下 一条微操作的地址。微操作寄 存器用 来存放 由控制 存储器 读 收 稿日期 : 2005- 11- 13; 修 返日期 : 2006- 03- 07 基 金项 目: 国 家“十五 ”预研资 助项 目( 41308010307) 作 者简介 : 张骏( 1978- ) , 男, 陕西西安人, 博士研究生, 主要研究方向为先进微处理器体系结构 ( freakfriend@ 126. com) ; 樊晓桠( 1962- ) , 男, 湖南人, 教 授, 博导, 主要研究方向为专用集成电路、计算机系统结构; 刘松鹤( 1979- ) , 女, 吉林松原人, 硕士研究生, 主要研究方向为计算机软件、计算机网络.
·662· 计 算 机 应 用 研 究 2007 年 出的一条微操作信息, 而微命令寄存器则保存一条微操作的操 作控制字段和判别测试字 段信息。微 地址产 生转移 逻辑负 责 产生访问微操作 ROM 的微地址。“龙腾 C1”处理器 的微内 核 还加入了微操作预取逻辑, 提高了微操作流水线的效率。 低 10 bits 作为段内 地址。这 种方 案通 过将 ROM 分 区降 低 了 每次访问时只读存储器的功耗, 虽然前端增加了一个三八译码 器, 后端增加了 44 bits 的八选一电路, 但 电路整体的 功耗还 是 有明显下降的。 2 微操作控制器的功耗优化设计 在数 字 CMOS 电 路 中, 动 态 功 耗 占 整 个 功 耗 的 80% ~ 90% 。在无法改变电压的情况下, 设计者只能通过降低电 路的 跳变次数和频率来达到降低功耗的目的。 在“龙腾 C1”处理器微内核 的设计 过程中, 考虑 到微操 作 ROM 和微堆栈包含大量 的存 储单元, 如 果能 减少 这些 存储 单 元工作时的跳变次数, 将大 大降低 功耗。另外, 在一 段微操 作 中, 通过合理的微操作编 码也能 降低微 操作寄 存器的 翻转率, 从而达到降低功耗 的目 的。所以 主要 应该 从微 操作 ROM、微 堆栈、微操作编码几个方面来进行功耗优化设计。 2. 1 微操作 ROM 的分区设计 在“龙腾 C1”中由一个 44 bits ×8 KB 的片 上 ROM 来 存放 微操作。每个 ROM 字分为两部分: 27 bits 为微操作内容, 剩余 的 17 bits 中有 4 bits 是控制 下地址 转移逻 辑的工 作命 令字 和 供转移的 13 bits 下地址。“龙腾 C1”的 微操作共分 为三大类, 即存储管理部件的微操作、整数 执行单 元的微 操作、浮点部 件 类微操作。微操作格式是根据 数据通 路的具 体控制 要求设 计 的。其中存储管理部 件的 微操 作用 于控 制 MMU 计 算存 储 操 作的地址及向 Cache 发出访存请求, 整数执行单元的微操 作主 要控制整数单元进行算术、逻辑 运算, 保护测 试和对 各种内 部 寄存器的操作, 浮点部件类微操作控制 FPU 进行运算。微操作 ROM 工作在同步方式, 输出的微操作完全由输入的地址决定。 如果采用整块 ROM 存放微 操作, 只读存 储器的 输入地 址 将有 13 bits, 在每次访问 中, 一 个 13 bits 输入 8 192 输 出的 译 码电路均将工作, 这将会 产生很 大的功 耗, 在 这里可 以考虑 分 区访问 ROM 的工作方式。 根据 SPEC 程序的测试, 整数指令有 39% 使用存储器 操作 数, 浮点指令中有 72% 使用 存储 器操作 数。在 整个 微操 作 系 统中, 存储管理部件的微操作所占的地址空间小于 1 024, 也就 是整个 ROM 空间的 12. 5% , 但它占 了所有 ROM 访问 的 33% 左右。浮点部件类微操作所占 的地址 空间也 小于 1 024, 笔 者 设计时将微操作 ROM 分为八块 44 bits ×1 024 的分区, 将存储 管理部件的微操作放在一个分区中, 将浮点部件类微操作放在 一个分区中, 将整数执行 单元的 微操作 放在其 余六个 分区中。 在访存期间其他七个分区均处于完全不工作状态, 即使在整数 部件执行期间, 也只有一个分区处于活动状态。采用这种结构 后, 每个分区的地址位 将下降 到 10 bits, 可以降 低分区 译码 器 消耗的功耗, 同时因为存储器深度的减小, ROM 中数据位 线所 串联存储单元的数目也将减小为原来的 1/ 8, 该连 线的负载 电 容将大幅缩小, 因此 ROM 本身的功耗也会降低。 将被经常访问的微操作存放在同一个分区中, 可以降低数 据输出端选择电路选择信号的翻转频率, 因为这是一个 44 bits 的八选一电路, 所以这种措施对选择器功耗的降低还是较为有 效的。 2. 2 下地址转移逻辑中微堆栈的优化设计 下地址产生逻辑是微内核的核心部分, 主要用来产生下一 条微操作的地址, 从而决定微操作序列的执行。在每个时钟周 期, 它都要产生 一个 访 问微 操作 ROM 的 地址, 因此 降低 这 部 分电路的功耗对于降低整 个微内 核的功 耗具有 重要意 义。 微 堆栈就位于下地址转移逻辑中。 微堆栈是为了实现在微操作级调用和返回设置的结构, 它 模拟指令系统中的堆栈结 构。 如果当 前执行 的微操 作是调 用 微操作, 则将 μIP 寄存器中 的值压 入堆栈 中, 实现保 存下一 条 微操作地址。如果当前指令的微操作是返回微操作, 则弹栈读 出以前保存微操作地址, 实现返回调用处继续微操作执行。只 要电路能实现后进先出的数据结构就可以达到要求, 因此可以 采用以下两种不同的实现方式: ( 1) 采用指针的 变化 来完 成数 据的 后进 先 出。在这 种 结 构中需要用一个计数器作为写入指针, 使用写指针减 1 作为 读 指针, 空满信号利用读写指 针产生, 构 成堆栈 的寄存 器组无 需 进行移位操作, 各组寄存器 之间没 有连线, 但 这种结 构写入 时 需要译码, 读出时需要选择电路。 ( 2) 输出的出口和 入口 均在 堆栈 顶端, 当 发 生压 栈、出 栈 操作时构成堆栈的寄存器 组进行 移位操 作。 这种结 构也需 要 一个计数器来标记堆栈的空满状态, 它的优点在于堆栈的写入 读出不需要多选电路。 针对两种不同的电路笔者都作了具体实验, 当采用第二种 结构时, 下地址转移逻辑中堆栈所占的功耗大约占到整个下地 址转移逻辑的 46% , 因此 降低 这部分 电路 的功 耗具 有重 要 意 义。在这种固定读写入口的方案中, 对堆栈进行的任何一次操 作均会导致整个堆栈中所有的寄存器进行一次移位, 并且其中 的许多寄存器均会产生翻转, 这将消耗大量的功耗。如果采用 指针进行读写控制, 只有进 行写操 作时, 才会 对其中 一组寄 存 器进行更新, 实际翻转的寄 存器更 少, 虽然读 出的选 择电路 增 加了部分功耗, 但总体 功耗具 有明显 下降。所以, 应该 选用 指 针读写控制的微堆栈结构来进行功耗优化。 2. 3 微操作编码的优化设计 基于微内核的嵌入式处理器每拍都是由微操作来控制的, 微操作 ROM 总是处在被读取的状 态, 微操作 寄存器 几乎每 拍 都要被更新, 因此合理的安排微操作编码将有效地降低微操作 寄存器和微操作总线的翻转频率并最终降低它们的功耗; 同时 合理的编码也可以降低每次读取微操作 ROM 时的功耗。 如前所述, “龙腾 C1”微处理器的微操作分为三大类, 即存 储管理部件微操作、整数部件微操作和浮点部件微操作。它们 的基本结构如表 1 所示。 表 1 “龙腾 C1”的微 操作格 式 2 13 4 8 1 1 TYPE Ne xt A ddress CONTROL USER DEF W B LINKB 7 B 1 7 LINKA A 13 bits 地址的最高 3 bits 作为 片选和数据 输出选 择信号, 表 1 列 出 了 所 有 微 操 作 的 格 式, TYPE、Next Address 和
第 4 期 张 骏 等: 嵌入 式处 理器 微内核 低功 耗设 计 CONTROL 意义分别是当前 微操作 的类型、下地 址和控 制转 移 段部分编码结果如表 4 所示。 ·762· 字段。 A 和 B 字 段 表 示 源 操 作 数 和 目 的 操 作 数, LINKO、 LINKB 和 LINKA 分别为 相应 字段 的译 码器 拼 接指 示位。 WB 表示 运 算 结 果 是 否 写 回 B。 三 类 微 操 作 的 不 同 之 处 在 于 USERDEF 字段可以根据不同类型微操作的不同控制方式 来定 义。 只读存储器单元存储信息 的方式 是通过 在数据 线与地 址 之间是否存在充 放电 通 路决 定的。 “龙 腾 C1”所使 用微 操 作 ROM 的数据线连接在 VCC 上, 那么 所有 存储 的数 据缺 省为 1, 如果设计者希望在该位存储信息为 0 时, 那么就需要在该数据 线与地址之间存在一条放电 通路, 当地 址线选 中该地 址时, 数 据线和地址之间存在一条通 路, 数据线 的输出 被拉低, 输出 数 据为 0。所以, 当“龙 腾 C1”的微 操作 ROM 要 输出 一个 0 时, 就必然存在一次放电过程, 因此 在相同 条件下, 一条 微操作 中 包含的 0 位越多, ROM 在完 成这 次读出 操作 时需 要的 功耗 也 就越大。在确定“龙腾 C1”的微 操作编 码时, 本文遵 循了两 个 原则来进行功耗的优化: ①每条微操作中应 该尽量多地 包含 1 的个数; ②在执行时, 相邻输出 的两条 微操作 应该尽 量保证 具 有较多的相同位, 这样可以降低微操作寄存器和微操作总线的 翻转频率。 在三类微操作中, 整数部件类微操作和存储管理部件类微 操作被执行的频率要高于浮点 部件类 微操作, 因此 对于 TYPE 字段可以规定如表 2 所示。 根据仿真, 整数部件类微操 作占总 微操作 ROM 访问量 的 60% , 存储管理部件类微操作占 33% , 而浮点 类微操 作只占 访 问量的 7% 。两类最常用的微操作占到了总访问量的 93% , 而 TYPE 字段只有一位翻转, 这种 方式很 好地满 足了编 码的两 个 表 4 操作 数字段 部分编 码 寄 存 器 地 址 寄 存 器 地 址 寄 存 器 地 址 AX BX CX DX 1111111 1111110 1111101 1111011 FLA G 1110111 IP 1101111 A L BL CL DL A H BH 1011111 0111111 1111100 1111001 1110011 1100111 CH DH SP BP SI DI 100111 001111 111010 110110 101110 011110 微操作的下地址字段 采用分段格雷码, 也就 是高 3 btis 的 分区地址采用二进制编 码, 10 bits 的 段内地 址采用 格雷 码, 这 样当两条微操 作 切 换时, 13 bits 的 下 地 址最 多 只 有 2 bits 翻 转, 同类微操作切换时只有 1 bit 翻转。 操作码字段用来控制功能单元的工作, 应按照各种操作使 用频率的高低来进行编码。对于微操作中其他的控制字段, 也 应按照上面两个原则进行编码。 3 优化结果 使 用 SYNOPSYS 综 合 工 具 DESGIN _ COMPILER 在 0. 18μmCMOS 工艺库下对优化前 后的微 内核设 计分别 进行 综 合, 全局电压 1. 5 V。优化结果如表 5 所示。 表 5 优化 前后 的微内 核性 能 动 态 功 耗 ( mW ) 工 作 频 率 ( MH z) 优 化 前 优 化 后 136 . 791 4 110 . 813 6 840 831 面 积 652 240 661 352 4 结束语 本文结合嵌入式处理器微内核的结构特点和“龙腾 C1”处 理器微内核设计, 从微操作 ROM、微堆栈和微操 作编码三方 面 入手进行功耗优化设计。使用 综合工 具分别 对优化 前后设 计 的速度、面积和功耗进行了考察。结果证明经过功耗优化设计 的微内核在性能基本不变的前 提下比 原来的 设计节 省了大 约 19% 的功耗。这些优化的设计方法已经在“龙腾 C1”处理器中 成功实现, 为低功耗微内核的设计积累了经验。 原则。 参考文献: 对控制转移字段的编码根 据各种 转移方 式的使 用频率 来 [ 1 ] 俞颖, 周磊 , 闵 昊. 采用 异 步电 路 的 低 功耗 微 控 制 器的 VLSI 设 计 确定, 同时考虑一些经常 会连续 执行指 令之间 的关系, 控制 转 移字段的部分编码结果如表 3 所示。 对操作数字段的编码也是 根据该 寄存器 或者内 部数据 端 口使用频率的高 低来 确定 的。根 据 X86 的 指令 系统, 寄 存 器 AX 是使用频率最高的一个寄存器, 将它 编码为 1111111, 另 外 BX、CX、DX、AL、BL、FLAG、IP 的使 用 频率 也较 高。操 作 数 字 与实现 [ J] . 半 导体学 报, 2001, 22( 10) : 1346-1351. [ 2] 王国平 , 周 端. 高性 能低功 耗微 控 制器 IP 软 核设 计 综 述 [ J] . 计 算机应 用研究 , 2003, 20( 2) : 1- 3. [ 3] 杨波, 高 德远. 微程 序控 制器的 设计与 实现 [ J] . 计 算机 工 程与 应 用, 2001, 37( 7) : 27 -29. [ 4] 张旭, 李 斌桥, 李 树 荣 , 等. 一 种 低 功 耗 八 位 MCU 的 设 计 与 实 现 [ J] . 微处 理机 , 2003( 4) : 7- 9. [ 5] CHO S Y, PARK S Y, KIM S W. CalmRISC- 32: a 32-BIT low- power MCU core: proc. of the 2nd IEEE Asia Pacific Conference on ASIC[ C] . [ S. l. ] : [ s. n. ] , 2000: 285 - 289. [ 6] HU Yueli, CAO Jialin, RAN Feng, et al. Desgin of a high perform- ance microcontroller: proceedings of HDP’04[ C] . [ S. l. ] : [ s. n. ] , 2004 : 25- 28. [ 7] YU Gong, DR L. Embedded microcontroller implementation of a class of condition systems[ J] . IEEE, 2003: 167-171.
分享到:
收藏