2019-9-2-硬件分配
title | author | date | CreateTime | categories |
---|---|---|---|---|
硬件分配 |
lindexi |
2019-09-02 12:57:38 +0800 |
2018-2-13 17:23:3 +0800 |
以前做的是把一个软件分配到硬件,只需要让用背包问题最大化硬件的使用,但是没有让所有资源最大化。
对于下面的软件,假设 A 的性价比是最高,那么使用的算法就会优化A。
假设 A 不使用硬件优化时需要运行时间是 12
如果使用硬件优化,需要硬件面积是5,优化后运行时间是3
B 不使用硬件优化时需要运行时间是 5
如果使用硬件优化,需要硬件面积是2.5,优化后运行时间是3
C 不使用硬件优化时需要运行时间是 5
如果使用硬件优化,需要硬件面积是2.5,优化后运行时间是3
D 不使用硬件优化时需要运行时间是 6
如果使用硬件优化,需要硬件面积是5,优化后运行时间是2
硬件总面积是4 。
优化A会占有所有的硬件,也就是BCD无法使用硬件。
如果A使用硬件,那么不仅占用宝贵的硬件面积,而且软件部分没有被使用,而如果能同时使用软件资源和硬件资源,这样是最好的。当然,在A的性价比高到一定程度,使用A硬件也是很好。
如果优化A,使用时间是 A=3,B=5,C=5,D=6 ,需要时间是19。
如果最大化使用,是优化 B C,在运行 A=12 之后,进入运行B,这时软件运行是空闲,可以同时运行D,在运行B之后,已经软件运行D时间是3,D剩下运行时间3,而C开始硬件运行,需要时间是3。可以看到BC和D同时运行。
运行时间是 A=12 ,B=3,C=3,D=6,刚好BC和D同时运行,所以计算需要计算D运行的时间就好,得到12+6=18
需要时间比上面的好,下面的算法可以较好优化。
算法需要计算是否存在分支,如果存在分支,那么可以进行软件和硬件同时运行,在优化时优先考虑优化这部分。
分配还有一个问题,以前研究是把全部软件都放在处理器。但是对于软件不是同时运行,是运行了A再运行B,于是可以先把A放进处理器,之后再把B放进去。
博客园博客只做备份,博客发布就不再更新,如果想看最新博客,请访问 https://blog.lindexi.com/
如图片看不见,请在浏览器开启不安全http内容兼容
![知识共享许可协议](https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png)
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名[林德熙](https://www.cnblogs.com/lindexi)(包含链接:https://www.cnblogs.com/lindexi ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我[联系](mailto:lindexi_gd@163.com)。