中国科学 信息科学 年 第 卷 第 期

评 述 中国科学院学部 科学与技术前沿论坛 微纳电子专刊

可重构计算处理器技术

魏少军 刘雷波 尹首一

清华大学微电子所, 北京 100084

* 通信作者. E-mail: liulb@

收稿日期: 2012–08–13; 接受日期: 2012–11–13

摘要 本文首先分别分析了基于指令流驱动和基于数据流驱动的传统计算技术所面临的问题 并

介绍了可重构计算处理器的发展趋势 接着 讨论了可重构计算处理器的硬件架构和编译技术 重点

分析了其在软硬件架构及系统应用上所面临的挑战 然后 介绍了所设计的

可重构计算媒体处理器及其相应的集成开发工具 最后 展望了面向通用计算的

可重构技术的发展前景

关键词 可重构计算 通用计算

计算方式的演进与可重构计算的发展

以指令流驱动为特征的处理器通常具有很强的灵活性, 其典型代表包括通用处理器 (general pur-

pose processor, GPP) 、可编程数字信号处理器 (programmable digital signal processor, PDSP)、专用

指令集处理器 (application specific instruction-set processor, ASIP) 和嵌入式处理器等. 然而, 正是基

于指令驱动的执行方式, 以及有限的运算单元和存储带宽, 使得此类处理器的整体性能和功耗很不理

想, 无法满足日益膨胀的应用需求. 例如, 每执行一个操作, 无论这个操作简单与否, 必须经过类似 “取

指” 、“译码” 、“寄存器访问” 、“执行” 和 “数据回写” 等过程. 这些过程当中, 只有 “执行” 过程才是

真正所需要的动作, 而 “取指” 、“译码” 等过程实际上耗费了大量额外的时间和能量. 此外, 一个功能

的实现往往还需要执行多条指令, 这就使得其运行效率更加低下. 为了提高运行效率, 同时也为了降

低不断攀升的功耗, 人们从各个层次和角度提出了许多改进的方法, 如超标量、超长指令字 (VLIW)、

单指令多数据 (SIMD)、多指令多数据 (MIMD) 等等. 传统的单核处理器也经历了不断提高运算频

率, 继而不断增加运算核心数量的过程, 如从单核到双核到多核, 再到现在的众核处理器. 然而, 这些

改进的方法的基础仍然是指令流的驱动方式, 不可能从根本上解决所面临的上述瓶颈. 与指令流驱动

相对应的是数据流驱动, 相应的计算类型通常被称为定制计算或者专用计算. 例如 ASIC (application

specific integrated circuits) 所采用的计算方式就属于这一类. 专用计算根据特定的应用来定制电路结

构, 无需指令集, 其执行速度因而很快, 功耗很低. 但专用计算存在着致命的缺陷, 即其灵活性和扩展

性很差, 无法满足层出不穷、不断演进的应用需求. 针对不同的应用, 必须设计不同的专用计算芯片,

因此硬件的设计往往严重滞后于应用的发展. 同时, 专用计算系统的设计周期长, NRE (non-recurring

engineering) 投入成本过高. 随着纳米时代来临, 高昂的设计和掩膜成本更加成为限制专用计算系统今

后大范围应用的重要因素之一. 例如, 16 nm 特征尺度芯片的设计成本将达到 1.5 亿 2 亿美元. 这必

引用格式 魏少军 刘雷波 尹首一 可重构计算处理器技术 中国科学 信息科学

魏少军等 可重构计算处理器技术

表 集成电路设计、制造和研发费用

The cost of IC design and fabrication

Process (nm) 45 32 22

K (gate/mm ) 824K 1098K 1566K

USD per 300 mm wafer 4024USD 4817USD 663

可重构优化c语言,第八章 可重构计算处理器技术_魏少军.pdf相关推荐

  1. 极值跟踪算法 c语言,快速约束极值子空间跟踪算法_魏志强.pdf

    快速约束极值子空间跟踪算法_魏志强 34 4 Vol. 34 No. 4 第 卷第 期 华 北 水 利 水 电 学 院 学 报 2013 8 Journal of North China Instit ...

  2. 谭浩强c语言第八章指针ppt,谭浩强c语言第八章_指针.ppt

    谭浩强c语言第八章_指针 第八章 8.1地址和指针的概念 8.2 变量的指针和指向变量的指针变量 8.7 指针数组和指向指针的指针 8.7.1 指针数组的概念 一个数组,若其元素均为指针类型数据,称为 ...

  3. go程序设计语言第八章-goroutine和channel

    go程序设计语言第八章-goroutine and channel 8.1 goroutines In Go, each concurrently executing activity is call ...

  4. 环信即时通讯SDK集成——环信 uni-app-demo 升级改造计划——整体代码重构优化(二)

    概述 本次关于 uni-app 代码整体重构工作,基于上一期针对 uni-app 官网 demo 从 vue2 迁移 vue3 框架衍生而来,在迁移过程中有明显感知,目前的项目存在的问题为,项目部分代 ...

  5. c语言程序运行内存图解,从执行速度和内存使用等方面来优化C语言代码

    在本篇文章中,我收集了很多经验和方法.应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码. 简介 在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级 ...

  6. 重构学习(三):代码重构的原则

    1 前言 最近因为一些乱七八糟的事情耽搁,所以有一段时间没看<重构:改善既有代码的设计>这本书,可以先看上两篇笔记重温一下: 从零开始了解重构(一): 从零开始了解重构(二). 本文接上两 ...

  7. 不同语言编程能整合到一起吗_学习编程入门指南

    每天都看到很多对编程感兴趣的人在问是不是可以自学软件开发,或者应该怎么自学编程才能入门.在这篇文章里,我将尝试重现一个初学者在学习计算机编程时可能会碰到的问题,并尽量提供相应的解决思路,希望对初学者有 ...

  8. 您知道Linux下C语言编程的一些注意事项吗_教育中国

    您知道Linux下C语言编程的一些注意事项吗_教育中国 云风的 BLOG: 一个 C 接口设计的问题 一个 C 接口设计的问题 C 语言在本质上,参数传递都是值传递.不像 Pascal 和 C++ 可 ...

  9. 零基础学浙大翁恺C语言(2):计算

    零基础学C语言(2):计算 C语言做整数加法计算 在程序框架内输入printf("%d",12+34) ; 代表将12+34得到的整数结果要输入到%d这个位置. # include ...

最新文章

  1. java 数据库 空值_java – 是否可以将枚举属性的空值存储到数据库?
  2. 低成本DIY视频预览遥控小车
  3. Android之实现RecyclerView拖拽效果和固定部分元素不进行交换位置
  4. Java IdentityHashMap putAll()方法与示例
  5. 分页,条件查找后再分页
  6. 荣耀总裁赵明:如果开机很快 也就没有必要给消费者看任何广告了
  7. ubuntu ssh密钥_生成SSH密钥以在Ubuntu中进行无密码登录
  8. [原]ASP.NET MVC 3 Razor + jqGrid 示例
  9. 代理设计模式 实现 Retrofit 的 create
  10. CCS6的graph变灰解决办法
  11. Flash总弹出广告怎么办?该如何删除?
  12. 解决VMware虚拟机由于不小心更改文件路径导致的桌面图标变白,运行exe程序显示找不到路径的错误
  13. 《数据结构》第四章串,数组和广义表
  14. 解决Vue.directives is not a function报错
  15. 华为nova5ipro的优缺点_华为nova5pro的优缺点有哪些?
  16. 解读:基于图卷积特征的卷积神经网络的股票趋势预测(文末赠书)
  17. 2015年SCI收录遥感期刊28种目录
  18. “System.Threading.ThreadAbortException”类型的第一次机会异常在 mscorlib.dll 中发
  19. 1x pcie 速度_PCIe3.0速度多少
  20. Python初学者指南

热门文章

  1. 智能手机应用安全现状及前瞻
  2. 【天光学术】下面这篇,带你走进研究生实证论文写作进阶之路!
  3. 乐视Pro3 使用FastBoot命令 双清 恢复出厂设置
  4. 三菱mode bus tcp通讯_24个PLC编程入门级案例分享,三菱篇!
  5. 一篇 认为未来房价会跌的文章
  6. 微信小程序获取手机号流程及后端java解密
  7. plupload插件使用
  8. 通关算法题之 ⌈字符串⌋
  9. python import自己写的.py文件
  10. 【Windows Server 2019】活动目录 (Active Directory) ——在同一区域安装多台域控制器