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

学习日志之synthesis and optimization(4)——banding and sharing一个设计好的电路经过调度算法之后可以避免在时间上的一些限制,但是前面说的算法并没有涉及到硬件资源方面的constrains。在这里主要是开始进行资源的分配,这个过程在空间域上进行的资源与操作的绑定和分享。当然实际情况下并不仅仅需要考虑单一的时间域限制或是仅考虑空间域限制。而是需要两者同时考虑。要充分描述一个电路结构就需要以下一些元素:1.资源(resorces):用于在电路中实现各种算法…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

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

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

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

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

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

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

首先要知道的是在目前我们是有多少种资源,一般用一个集合(set)来表示,下面表示在这个系统中有n_{res}种不同的资源可以供电路使用

\left \{ 1,2,3...,n_{res} \right \}

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

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

当然在优化的时候需要同时考虑时间和资源,那么就需要先使用时间调度算法然后再考虑资源如何在area和\lambda(最后一个节点的开始时间与第一个节点开始时间差)权衡,根据这两个轴可以得到一个折线图,下面的图为使用list schedule算法进行配置的结果,再下一个图是用HUS算法配置的结果

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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号