前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习日志之synthesis and optimization(4)——banding and sharing

学习日志之synthesis and optimization(4)——banding and sharing

作者头像
全栈程序员站长
发布2022-11-07 15:31:28
3480
发布2022-11-07 15:31:28
举报
文章被收录于专栏:全栈程序员必看

一个设计好的电路经过调度算法之后可以避免在时间上的一些限制,但是前面说的算法并没有涉及到硬件资源方面的constrains。在这里主要是开始进行资源的分配,这个过程在空间域上进行的资源与操作的绑定和分享。当然实际情况下并不仅仅需要考虑单一的时间域限制或是仅考虑空间域限制。而是需要两者同时考虑。

要充分描述一个电路结构就需要以下一些元素:

1. 资源(resorces):用于在电路中实现各种算法其包括函数资源,存储器资源和接口资源

2. 限制(constrains):在实际应用中设定一些参数限制以保证电路的正常运行,接口限制(interface constrains)是保证系统在环境中能正常运行的前提,而implementation constrains是要反映设计者如何实现特定功能的限制参数。

3. sequencing graph:表征电路中各个元件和函数之间信息传递通路和结构的图。

需要在空间域中描述binding和sharing的问题需要首先设一下已知条件,以及定义一些概念

首先要知道的是在目前我们是有多少种资源,一般用一个集合(set)来表示,下面表示在这个系统中有

种不同的资源可以供电路使用

binding问题是指需要实现某一个操作需要哪些资源跟目前的operation进行绑定

而sharing的问题是在同一时刻,硬件资源有限的情况下要怎么让不同的操作最大限度利用同一个资源。

综上所述,资源和操作是多对多的关系。

下图是一个描述操作绑定的table,前提是目前我们有的资源为{mux(1),ALU(2)} ,且mux有6个,ALU 有5个,只有这样才能对应的左边的sequence graph。

学习日志之synthesis and optimization(4)——banding and sharing
学习日志之synthesis and optimization(4)——banding and sharing
学习日志之synthesis and optimization(4)——banding and sharing
学习日志之synthesis and optimization(4)——banding and sharing

如果资源少了显然就不能这么做,很多同样的操作就不能再同一时间内完成。

当然在优化的时候需要同时考虑时间和资源,那么就需要先使用时间调度算法然后再考虑资源如何在area和

(最后一个节点的开始时间与第一个节点开始时间差)权衡,根据这两个轴可以得到一个折线图,下面的图为使用list schedule算法进行配置的结果,再下一个图是用HUS算法配置的结果

学习日志之synthesis and optimization(4)——banding and sharing
学习日志之synthesis and optimization(4)——banding and sharing
学习日志之synthesis and optimization(4)——banding and sharing
学习日志之synthesis and optimization(4)——banding and sharing

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184231.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月9日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档