2.09 流水线周期及流水线执行时间计算

在这里插入图片描述

流水线执行时长的计算

流水线周期

流水线周期为执行时间最长(最耗时)的一段。
比如此处例题,取指2ns,分析2ns,执行1ns。因此流水线周期是2ns。

全部执行完毕所需的时间

在这里插入图片描述

  1. 先假设每个流程的时间一致,都是流水线周期。
  2. 在箭头处消耗了3个流水线周期,完成了一条指令。
  3. 第二个箭头处再消耗一个流水线周期,完成了两条指令。
  4. 依次类推。以后的指令都只多花费一个周期。
    在这里插入图片描述
  5. 因此我们可以将他们分成两部分。竖线前面的是流水线的建立部分,有运转时间的时间。
  6. 计算的时候就是 一条指令的执行时间 (运转时间) + 剩余指令数 X 流水线周期

计算的两套方案

为什么会有两套方案呢?
因为第一条指令的执行时间计算是有争议的。

理论公式

理论上来说,顺势执行一条指令,流水线就建立起来了。
此处第一条指令的时间是: 2+2+1 = 5ns
剩余时间则是 (100-1)X 2 = 198ns
总时间则是 5+198 = 203ns

实践公式

实践起来,实际不工整的时间片非常小。因此把每个指令步骤都按流水线周期来算。
总时间则是 2 + 2 + 2 + (100 - 1) X 2 = (100 + 3 - 1 ) X 2 = 204ns

考试的时候用哪个呢?
80%用的是理论公式,20%用实践公式。当理论公式算出来的值不存在,再选实践公式。

  • 34
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在STM32上移植Mini LZO2.09压缩算法要以下步骤: 1. 了解Mini LZO2.09压缩算法的原理和实现。Mini LZO2.09是一个轻量级的压缩算法库,它旨在提供高压缩比和快速压缩速度。 2. 配置STM32开发环境。安装相应的开发工具链、IDE,例如Keil MDK或者IAR Embedded Workbench,以及STM32的相关库和驱动。 3. 下载Mini LZO2.09压缩算法库的源代码。通常,源代码会以C语言的形式提供,包含压缩和解压函数以及相关的数据结构。 4. 创建一个新的STM32项目。在开发环境中,创建一个新的STM32项目,并配置相应的硬件设置(例如选择MCU型号、配置时钟、外设等)。 5. 添加Mini LZO2.09压缩算法库的源代码到项目中。将下载的Mini LZO2.09源代码文件添加到STM32项目的源代码文件夹中。 6. 编译项目。使用开发环境提供的编译工具对项目进行编译,确保没有语法错误和编译警告。 7. 进行移植适配。由于Mini LZO2.09压缩算法库可能使用了一些与STM32平台不兼容的函数或者数据结构,要进行适当的修改和调整。这可能包括更改数据类型、适配存储器访问等。 8. 测试和验证。编写一些测试用例,对移植后的Mini LZO2.09压缩算法进行测试和验证,确保它在STM32平台上正常工作并且具有预期的压缩效果和速度。 9. 优化和调试。根据实际求,对移植后的Mini LZO2.09压缩算法进行优化和调试,以提高压缩效率和速度,同时确保稳定性和可靠性。 10. 集成到实际项目中。将移植和优化后的Mini LZO2.09压缩算法集成到实际的STM32项目中,并进行实际应用的测试和验证。 以上是将Mini LZO2.09压缩算法移植到STM32的大致步骤。具体的移植过程和细节可能会因为不同的硬件平台和开发环境而有所差异。在移植过程中,要仔细阅读Mini LZO2.09的文档和源代码,并进行适当的修改和调整,以适应STM32的硬件特性和开发环境的要求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值