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

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


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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nessus漏洞扫描教程之配置Nessus

    Nessus漏洞扫描教程之配置Nessus

    2022年2月3日
  • 我国无线2.4g及5g信道-个人笔记

    我国无线2.4g及5g信道-个人笔记中国无线信道规划2.4G频段(2.412GHZ-2.472GHZ)信道中心频率频率范围01   2412  2401-242302   2417  2406-242803   2422  2411-243304   2427  2416-243805   2432  2421-244306   2437  2426-244807   2442  2431-245308   2447  2426-244809   2452  2441-246310   2457  24

    2022年6月1日
  • StringUtils的isBlank(), isEmpty(), isNotBlank(), isNotEmpety(), isNoneBlank(), isNoneEmpty()[通俗易懂]

    StringUtils的isBlank(), isEmpty(), isNotBlank(), isNotEmpety(), isNoneBlank(), isNoneEmpty()[通俗易懂]isBlank()方法把空格当做没有,而isEmpty()认可空格的存在.StringUtils.isEmpty(null)=trueStringUtils.isEmpty(“”)=trueStringUtils.isEmpty(”“)=false//注意在StringUtils中空格作非空处理StringUtils.isEmpty(”“)=fal……

    2022年8月12日
  • auto是什么_auto C++

    auto是什么_auto C++autoauto让编译器通过初始值来推算变量的类型——–因此,auto定义的变量必须有初始值.1.让引用对象作为初始值————————————–使用引用其实是使用引用的对象                                 inti=0,&c=i;                  a

    2022年9月8日
  • 笔记28-MYSQL约束「建议收藏」

    笔记28-MYSQL约束「建议收藏」DQL:查询语句1.排序查询 *语法:orderby子句 *orderby排序字段1排序方式1,排序字段2排序方式2… *排序方式: *ASC:升序,默认的。 *DESC:降序。 *注意: *如果有多个排序条件,则当前边的条件值一样时,才会判断第二条件。2.聚合函数:将一列数据作为一个整体,进行纵向的计算。 1.count:计算个数 1.一般选择非空的列:主键 2.count(*) 2.max:计算最大值 3.

    2022年9月27日
  • 遗传算法原理及算法实例分析_遗传算法案例分析

    遗传算法原理及算法实例分析_遗传算法案例分析遗传算法原理解析遗传算法(GA)是一种元启发式自然选择的过程,属于进化算法(EA)大类。遗传算法通常是利用生物启发算子,如变异、交叉和选择来生成高质量的优化和搜索问题的解决方案。借鉴生物进化理论,遗传算法将问题模拟成一个生物进化过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰适应度函数值低的解,增加适应度函数高的解。这样进化N代后就很有可能会进化出适应度函数值很高的个体。

    2022年9月13日

发表回复

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

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