我是靠谱客的博主 端庄春天,最近开发中收集的这篇文章主要介绍1528_零开销循环,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)

其实这个概念并不是AURIX本身的概念,但是这个概念是我在学习这个相关的MCU的时候接触的,暂且一起归类。

1. 什么是零开销循环呢?其实就是通过硬件实现了循环,不再纯粹依赖于软件来实现。这样的处理,在DSP设计中是十分常见的。在一些CSIC指令集中,也有相应的设计。

2. 一般的循环都是通过循环计数器来实现,这样主要是由软件来实现的。而我在日常工作中接触到的其实是这类居多。

如果是进行软件实现的大循环处理,尤其是中间可能会出现满足条件退出的情况。实现效率优化的一个主要的手段是进行大循环的拆分。

从效率上考虑,这样的指令算法设计有什么好处呢?其实主要是让i本身来实现前后处理过程的继承,而相应的处理全都是在寄存器中处理。这样,看上去虽然是软件判断依然在,但是整个处理过程全都转交给了硬件。

有的处理器不仅实现了零开销循环,而且实现了两重嵌套的零开销循环。

在X86的指令集中,以REP开头的指令实现了零开销循环。

大概看了一下零开销循环的作用,其实这个对于计算类的加速应该是有很好的效果的。但是,如果对于循环类延时以及循环中查询状态这样的处理或许并不合适。当然,如果软件设计的足够有效,比如,增加了可以支持事件触发的操作系统之后,我提出来的这里例子从设计合理性的角度来讲就是不应该存在的。

最后

以上就是端庄春天为你收集整理的1528_零开销循环的全部内容,希望文章能够帮你解决1528_零开销循环所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部