【论文阅读】处理器芯片敏捷设计方法:问题与挑战

作者:包云岗老师

包云岗老师是计算机体系结构方向的大牛,推动了体系结构方面的开源事业! 欢迎对本栏目感兴趣的人学习"一生一芯"~


学习体会:

已有的软硬件生态系统和开发成本制约了对新结构的探索。但目前仍在几种路线上做尝试~

1. 通过新结构和新算法解决低功耗

2. 通用结构和专用结构

3. 突破指令集的禁锢

包老师在本文提出了新的目标导向: 以面向对象体系结构(OOA)设计范式为基础的处理器敏捷设计方法.  仍存在较多尚未解决的挑战 和关键问题,主要包括:

1)如何实现处理器功能与结构的细粒度解耦?

2)如何实现面向对象的处理器设计高层抽象?

3)如何在设计自动化工具中深度融合体系结构特征?

PS: (time-to-market)需求场景变了, 需求也要跟着变化. 到24年年底, 高校研究敏捷开发已经成为大趋势, 站在当下去看看之前的思路和已经解决的问题, 对于后续科研也会带来帮助

PS: 通过设计范式、语言与EDA工具,实现CPU和XPU体系结构细粒度对象的易分解、易组合和易扩展, 未来更加像是堆叠积木了

PS: 这篇文章对于XPU敏捷开发、HLS→RTL、敏捷EDA工具链 探讨,值得多次研读!


摘录自包云岗老师文章:
摘录自: 图3 面向对象体系结构(OOA)设计方法技术要点题

        

        新兴专用处理器 (XPU) 需求多样化,设计周期长,无法满足快速定制需求。

        借鉴面向对象软件设计思想,以敏捷度 (开发周期、开发成本和复杂度)为新的导向指标,在兼顾性能和可靠性的前提下,提出以面向对象体系结构(OOA)设计范式为基础的处理器敏捷设计方法.

PS: 原有的基于多步骤反复迭代的EDA技术进行性能-面积-功耗综合优化,导致极高的研发成本、周期及技术门槛.

挑战问题:
  • 如何实现处理器功能与结构的细粒度解耦

    • 需要确定合适的对象分解粒度,兼顾实现复杂度和组合后的性能影响。P9

    • 需要探索适应各种不同处理器流水线的通用设计模板。P9

    • 需要根据设计目标和性能及面积约束,有效限制架构组合的搜索边界。P9

    • 需要抽取关键体系结构参数及行为,形成面向对象的敏捷形式化验证方法。P9

  • 如何实现面向对象的处理器设计高层抽象

    • 现有硬件描述语言无法兼顾处理器开发效率与硬件性能。P9

    • 缺乏统一的中间表示形式,不便于硬件设计的复用与优化。P9

    • 不同层次和行为的硬件描述语言的编译流程难以兼容,且不易调试。P9

  • 如何在设计自动化工具中深度融合体系结构特征

    • 体系结构设计与物理设计无法有效协同,导致迭代周期长,收敛难度大。P5

    • 缺乏高效的物理设计搜索寻优方法,难以融合处理器体系结构信息。

    • 需要利用人工智能方法,实现体系结构特征与EDA工具深度融合。P10

PS: XPU敏捷开发、HLS→RTL、敏捷EDA工具链 目前都是研究的热点, 后续继续观察

XPU敏捷开发:

理想的XPU敏捷设计要满足至少3个方面的特征:1)大幅度降低领域专用XPU设计门槛; 2)大幅度提高XPU的设计效率, 缩短XPU的设计周期; 3)要保证XPU的设计质量

针对领域应用的这 些特点,已经有很多专用的XPU设计工作,总体上可以分为3种类型:

1)针对领域应用编程框架的设计方法.其核心思想是重用已有的软件编程框架来进行硬件加速器 设计,来保证硬件加速器能够无缝地支持领域应用.

2)基于可重构硬件模板的加速器设计方法.其 核心思想是将应用变换成硬件模板支持的模式,然后重用或者定制可重构加速器模板,实现领域应用的加速.典型的硬件模板有用于矩阵运算或者张量运算的二维脉动阵列.

3)基于领域专用语言(DSL)的自动化设计方法.本质上类似于高层次综合(HLS),但是由于应用场景往 往更加局限于领域应用,因此可以将领域知识一定程 度地显式体现在DSL中,从而使得DSL的描述能够编译成更加高效的硬件.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/63667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20. 内置模块

一、random模块 random 模块用来创建随机数的模块。 random.random() # 随机生成一个大于0且小于1之间的小数 random.randint(a, b) # 随机生成一个大于等于a小于等于b的随机整数 random.uniform(a, b) …

嵌入式的软实时和硬实时系统

我觉得嵌入式的软实时和硬实时系统,一定要在应用场景里面去判断。假如你的需求是一个任务的执行时间,必须在2ms内响应,那么你选择的一个系统,系统的设计最晚响应时间是10us,那么这个系统对你来说就是硬实时的。 而且这…

Redis原理—4.核心原理摘要

大纲(9870字) 1.Redis服务器的Socket网络连接建立 2.Redis多路复用监听与文件事件模型 3.基于队列串行化的文件事件处理机制 4.完整的Redis Server网络通信流程 5.Redis串行化单线程模型为什么能高并发 6.Redis内核级请求处理流程与原理 7.Redis通信协议与内核级请求数据…

【UE5】制作插件 并调试【vs2022】

视频教程:好看视频-轻松有收获 https://www.youtube.com/watch?vIjpa9mI2b5I 官方:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/plugins-in-unreal-engine 原文:【UE】制作插件_ue插件-CSDN博客 C制作插件 1. 我们可…

cocos creator 的 widget组件的使用及踩坑

以下的内容基于cocos creator 3.8版本,如有错误,恳请指出。 👉官方文档的指引 应用:以上官方指引有非常清晰的使用方式,接下来说明一些注意事项: 1、与canvas搭配的使用,解决多分别率适配问题。…

十五、K8s计划任务JobCronJob

K8s计划任务CronJob&Job 一、Job可以干什么 Job 控制器用于管理 Pod 对象运行一次性任务,比方说我们对数据库备份,可以直接在 k8s 上启动一个 mysqldump 备份程序,也可以启动一个 pod,这个 pod 专门用来备份用的,备份结束 pod 就可以终止了,不需要重启,而是将 Pod…

关于LinuxWindows双系统在八月更新后出现的问题

问题描述类似于:Verifying shim SBAT data failed: If you are, this is caused by a reported problem in the August update if you can get into Windows, either uninstall the August update, or open Command Prompt as administrator and run this command,…

【Elasticsearch 中间件】Elasticsearch 客户端使用案例

文章目录 一、安装 Elasticsearch1.1 启动 Elasticsearch1.2 启动 Kibana 二、客户端代码2.1 导入依赖2.2 配置 application.yaml2.3 定义实体类2.4 连接 Elasticserach2.5 定义 Service 层接口2.6 实现 Service 层功能 三、测试项目3.1 添加数据3.2 搜索数据3.3 更新数据3.4 删…

一文掌握 OpenGL 几何着色器的使用

学习本文需要具备 OpenGL ES 编程基础,如果看起来比较费劲,可以先看入门文章 OpenGL ES 3.0 从入门到精通系统性学习教程 。 什么是几何着色器 几何着色器(Geometry Shader) OpenGL 管线中的可选着色器阶段,位于顶点着色器(Vertex Shader) 和光栅化阶段 之间。 其核心…

C++中多态

1) 什么是多态性?C中如何实现多态? 多态性是指通过基类指针或引用调用派生类的函数,实现不同的行为 多态性可以提高代码的灵活性和可扩展性,使程序能够根据不同的对象类型执行不同的操作。 2)C中如何实现多态&#…

PHP语法学习(第十天)—PHP 表单

各位🧍‍♂️ 周一愉快♪٩(ω)و♪ 我是练小杰,今天开启新的篇章——PHP 表单 另外,想要学习更多PHP语法相关内容点击 “PHP专栏”~~~ 今天由我强哥来带领大家学习~~ 文章目录 PHP 表单简介表单的基本结构表单数据操作PHP 中的 $_POST 和 $_…

跟李笑来学美式俚语(Most Common American Idioms): Part 67

Most Common American Idioms: Part 67 前言 本文是学习李笑来的Most Common American Idioms这本书的学习笔记,自用。 Github仓库链接:https://github.com/xiaolai/most-common-american-idioms 使用方法: 直接下载下来(或者clone到本地…

卫生巾检测项目、检测标准梳理

为了确保卫生巾在使用过程中具备良好的吸收性、舒适性、透气性,并且符合卫生安全标准,避免对人体健康造成不良影响,需要对其进行一系列检测。 名找我 一、检测项目 外观质量 检查卫生巾的形状、尺寸是否与标识相符,表面是否平整…

windows C#-声明和使用读/写属性

属性提供了公共数据成员的便利性,且不会产生未受保护、不可控制和未经验证地访问对象的数据的风险。 属性声明访问器:从基础数据成员中赋值和检索值的特殊方法。 set 访问器可分配数据成员,get 访问器检索数据成员值。 此示例演示具有两个属…

架构13-持久化存储

零、文章目录 架构13-持久化存储 1、Kubernetes 存储设计 (1)存储设计考量 **设计哲学:**Kubernetes 遵循用户通过资源和声明式 API 描述意图,Kubernetes 根据意图完成具体操作。**复杂性:**描述用户的存储意图本身…

spring重点面试题总结

bean的生命周期 在 Spring 中,BeanDefinition、Bean 实例化、依赖注入、Aware 接口的处理、以及 BeanPostProcessor 的前置和后置处理等,都是 Spring 容器管理 Bean 生命周期的关键部分。下面我将详细解释这些过程。 1. 通过 BeanDefinition 获取 Bean…

【文件操作】写入json文件

一般用json.dump把dict或者list导出到文件 一般用json.dumps把dict或者list导出到字符串 dump是导出的意思,这样看dict和list是自己人,但是string和文件相对于代码就是外人 代码例子 import json import copyfid = open(origin.txt, r) lines = fid.readlines() res_list…

单片机的选择因素

在选择单片机型号时,需要根据具体的应用需求来选择合适的单片机。单片机(Microcontroller Unit, MCU)是一种将计算机的主要部分集成在一个芯片上的微型计算机,它通常包括处理器、存储器、输入/输出接口等。随着技术的发展&#xf…

使用wol-web通过NAS远程唤醒电脑

相信很多人都有远程开机的需求,有时候需要远程控制家中的电脑办公、玩游戏。远程控制比较好实现,安装类似向日葵的软件即可。而远程开机稍微麻烦一点,有的通过物理开关实现(开机棒)我们选择远程网络唤醒的方式实现&…

TortoiseGit 图标覆盖设置

TortoiseGit 图标覆盖设置 图标覆盖设置隐藏图标覆盖切换样式 我们安装了小海龟后,它会在仓库目录下给所有图标覆盖上状态标记。 图标覆盖设置 右键菜单打开 :设置 》 图标覆盖。 隐藏图标覆盖 如果不想图标上出现小乌龟的状态标记。直接点这里可以…