系统级双核与单核模型的解决方案

描述

成为市场领先产品的新系统设计是创新的结果,不仅是进化和革命性的,而且是优雅、易于使用和高质量的系统设计。市场调查、统计数据和客户小组都有精确的进化设计概念的跟踪记录;然而,革命性的概念更加难以捉摸,因为进化的客户倾向于以基于现有事物的线性方式思考。革命性的概念通常来自能够看得更远的企业家或能够设想更好的前进方向的一小部分客户。

根据全球数百个设计项目的实践经验,我得出的结论是,革命性和进化性产品都需要强大的系统工程努力。与具有明确定义和严格设计工作流程的产品开发和制造不同,电子和嵌入式实时软件的系统设计仍处于起步阶段。

许多悬而未决的问题已经产生了大量的方法和工具来配合这些方法。系统设计师应该使用自上而下还是自下而上的设计风格?集中式或分布式处理方法是最佳方法吗?是否需要对称或非对称拓扑?动力或速度是驾驶标准吗?这些问题的答案,以及更多,可以导致一个概念框图,开始设计过程,导致设计规范。

许多计算机科学家认为,内存带宽是限制当今处理器性能的主要问题之一,尤其是随着多核处理器芯片和多执行单元 CPU 的发展。处理器内核和指令流水线经常停止等待指令或数据缓存访问。程序员认为,最小化程序变量将减少内存访问并提高性能,而芯片设计人员通过使用 I1、D1、L2、L3、SDRAM 和磁盘内存结构向处理器内核添加更多内存通道来不断提高内存带宽。在许多方面,这是基于原始冯诺依曼计算机架构的线性思维。

可以考虑在两个处理器内核上运行单线程程序代码,并在每个内核上使用寄存器。这将从缓存中读取/写入的变量数量减少到 16 个变量,或者缓存访问减少 66.6%,这会消耗更多功率并需要更多周期。例如,每个内核都需要访问其他处理器内核的寄存器集。此外,许多程序都有紧密的循环来处理应用程序关键信息,如果一个单线程程序在两个内核上运行,那么每个内核是否可以同时处理这个应用程序关键循环的偶数/奇数流?循环外的顺序单周期指令可以同时在不同的内核上执行吗?虽然这种方法可能存在许多与双核相关的问题,

一种解决方案是系统级双核与单核模型,假设每 1,010 条指令有 80% 的整数指令和 20% 的浮点指令,包括十个循环,每个循环有 1,000 条指令。为了简化分析,假设没有先前的指令依赖;但是,这可以通过额外的一天的努力来添加。

图 1:双核与单核模型。

寄存器

该模型用于确定让编译器向双核配置发出指令的有效性,并在性能和功耗方面利用每个内核上的额外寄存器。首先,添加两个块以根据执行顺序以助记指令数组的形式生成可执行二进制文件。接下来,添加了两个具有四级流水线的标准库模块,包括用于设置每条指令周期的通用指令集模块。Power_Manager 添加了估计的功耗(以毫瓦为单位),基于待机、活动、等待和空闲电源状态。

图 2:电源管理器配置。

寄存器

图 3:单核模型图。

寄存器

图 4: ID 双核模型图。

寄存器

双核与单核模型为许多问题提供了答案,包括这种方法的理论性能/功率改进可能是什么?从结果来看,性能好于预期,即双核配置需要6370个周期才能完成一个线程,而单核配置需要17160个周期才能完成一个线程。双核配置完成线程的速度提高了 63%,而常识表明它完成线程的速度可能会提高 50%。在功耗方面,两种配置大致相同。因此,系统级建模能够生成结果,表明单线程的双核指令同步执行比相同功率级别的单核快 63%。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分