学校让做网站做完怎么交,做教育app的网站有哪些,做一个企业网站花费,90设计网站官网入口流水线技术通过多个功能部件并行工作来缩短程序执行时间#xff0c;提高处理器核的效率和吞吐率#xff0c;从而成为微处理器设计中最为重要的技术之一。
1. 3级流水线
到ARM7为止的ARM处理器使用简单的3级流水线#xff0c;它包括下列流水线级。 #xff08;1#xff0…流水线技术通过多个功能部件并行工作来缩短程序执行时间提高处理器核的效率和吞吐率从而成为微处理器设计中最为重要的技术之一。
1. 3级流水线
到ARM7为止的ARM处理器使用简单的3级流水线它包括下列流水线级。 1取指令 从寄存器装载一条指令。 2译码decode 识别被执行的指令并为下一个周期准备数据通路的控制信号。在这一级指令占有译码逻辑不占用数据通路。 3执行 处理指令并将结果写回寄存器。 当处理器执行简单的数据处理指令时流水线使得平均每个时钟周期能完成1条指令。但一条指令需要3个时钟周期来完成因此有3个时钟周期的延时但吞吐率是每个周期一条指令。
对于3级流水线PC寄存器里的值并不是正在执行的指令的地址而是预取指令的地址这个知识点很重要后面我们会详细的举例来证明。
处理器要满足高性能的要求为了满足这个要求需要重新考虑处理器的组织结构。提高性能的方法主要有两种方法
1.提高时钟频率。时钟频率的提高必然引起指令执行周期的缩短所以要求简化流水线每一级的逻辑流水线的级数都要增加。 2.减少每条指令的平均指令周期数CPI。这就要求重新考虑3级流水线ARM中多余1个流水线周期的实现方法以便使其占有较少的周期或者减少因指令相关造成的流水线停顿也可以将两者结合起来。
较高性能的ARM核使用了5级流水线而且具有分开的指令和数据存储器。在Cortex-A8中有一条13级的流水线但是ARM公司没有对其中的技术公开任何相关的细节。
从经典ARM系列到现在Cortex系列ARM处理器的结构在向复杂的阶段发展但没改变的是CPU的取址指令和地址关系「不管是几级流水线都可以按照最初的3级流水线的操作特性来判断其当前的PC位置」。
2. 流水线举例
为方便理解下面我们以3级流水线为例 1最佳流水线 这是一个理想的实例所有的指令都在寄存器中执行且处理器完全不必离开芯片本身。每个周期都有一条指令被执行流水线的容量得到了充分的发挥。指令周期数 (CPI) 1。
2LDR流水线 该例中用6周期执行了4条指令 指令周期数 (CPI) 1.5
与最佳流水线不同装载(LDR) 操作将数据移进片内导致了指令/数据总线被占用因此随后紧跟了内部的写周期 writeback以完成将数据写回寄存器。
1.数据总线在周期1, 2, 3 被使用周期6是取指周期4用于数据装载而周期5是一个内部周期用来完成载入的数据写回到寄存器中。 2.周期3为执行周期产生地址 3.周器4为数据周期从存储器中取数据数据只有在周期4的末尾出现在内核中 4.周期5写回周期通过数据通道中的B总线和ALU将数据写回到寄存器bank 中 5.周期6的执行被推迟了直到周期5写回完成使用ALU 。同样内部周期是不需要等待状体的但读写存储器时可能需要。
3分支流水线 BL指令用于实现指令流的跳转并存储返回地址到寄存器R14LR中。 1.分支指令在其第一周期计算分支的目的地同时在现行PC处完成一次指令预取流水线被阻断。这种预取在任何情况下都要做的因为当判决地址产生时已来不及停止预取。 2.第二个周期在分支的目标地址完成取指而返回地址则存于R14如果link位已设置。 3.第三周期完成目标地址4的取指重新填满流水线并且如果跳转是带链接的还要修改R14减去4以便简单地返回。 4.分支需要三个时钟周期来执行BL随后会涉及调整阶段。
4中断流水线 「IRQ 中断的反应时间最小7周期」
1.周期1: 内核被告知有中断 IRQ在现行指令执行完之前不会被响应 MUL and LDM/STM 指令会有长的延迟 解码阶段中断被解码中断已使能设置了相应标志位… 。如果中断被使能和服务正常的指令将不会被解码。
2.周期 2: 此时总是进入ARM状态. 执行中断 ( 获取IR向量的地址), 保存 CPSR 于 SPSR, 改变CPSR模式为 IRQ 模式并禁止进一步的 IRQ 中断输入。
3.周期 3: 保存 PC (0x800C) 于 r14_irq, 从IRQ异常处理向量处取指
4.周期 4: 解码向量表中的指令; 调整r14irq 为0x8008
5.周期 4和 5: 无有用的指令取指 由于周期 6的跳转
6.周期 6: 取异常处理子程序的第一条指令; 从子程序返回: SUBS pc,lr,#4
这将恢复工作模式并从响应中断前的下一条指令处取指如果有多个中断需堆栈保存返回地址。注意最大的FIQ响应延迟为 29个周期(而非Thumb状态的28周期!)。