Parallel processing DSP中的零开销环路

Parallel processing DSP中的零开销环路,parallel-processing,blackfin,Parallel Processing,Blackfin,Blackfin在循环缓冲区中执行零开销循环。它如何认识到迭代次数已在不比较或减少计数器的情况下完成?来自Blackfin文档: sequencer支持零开销循环机制。这个 sequencer包含两个循环单元,每个单元包含三个寄存器。每个 环路单元有一个环路顶部寄存器(LT0,LT1),一个环路底部寄存器(LB0, 和循环计数寄存器(LC0,LC1)。 两组零开销循环寄存器使用硬件实现循环 计数器,而不是用于评估循环条件的软件指令。之后 评估,处理分支到新的目标地址。两套regis- TER包括

Blackfin在循环缓冲区中执行零开销循环。它如何认识到迭代次数已在不比较或减少计数器的情况下完成?

来自Blackfin文档:

sequencer支持零开销循环机制。这个 sequencer包含两个循环单元,每个单元包含三个寄存器。每个 环路单元有一个环路顶部寄存器(LT0,LT1),一个环路底部寄存器(LB0, 和循环计数寄存器(LC0,LC1)。
两组零开销循环寄存器使用硬件实现循环 计数器,而不是用于评估循环条件的软件指令。之后 评估,处理分支到新的目标地址。两套regis- TER包括循环计数器(LC)、循环顶部(LT)和循环底部 (LB)寄存器

如果每次输入循环时循环计数器都会递减,则此操作有效。
然后,当程序计数器到达循环底部时,就足以测试该计数器的值以进行分支

  • 如果循环计数器==0,则返回下一条指令并离开循环
  • 若循环计数器为,则循环顶部以继续迭代!=0它还需要同时递减循环计数器

这确保了零开销循环。

来自blackfin文档:

sequencer支持零开销循环机制。这个 sequencer包含两个循环单元,每个单元包含三个寄存器。每个 环路单元有一个环路顶部寄存器(LT0,LT1),一个环路底部寄存器(LB0, 和循环计数寄存器(LC0,LC1)。
两组零开销循环寄存器使用硬件实现循环 计数器,而不是用于评估循环条件的软件指令。之后 评估,处理分支到新的目标地址。两套regis- TER包括循环计数器(LC)、循环顶部(LT)和循环底部 (LB)寄存器

如果每次输入循环时循环计数器都会递减,则此操作有效。
然后,当程序计数器到达循环底部时,就足以测试该计数器的值以进行分支

  • 如果循环计数器==0,则返回下一条指令并离开循环
  • 若循环计数器为,则循环顶部以继续迭代!=0它还需要同时递减循环计数器

这确保了零开销循环。

如果我将此方法与8086中使用CX缓冲区递减的循环方法进行比较,会有时间增益?就硬件实现而言,使用专用寄存器比使用类似CX的GP寄存器更容易实现循环。因此,在blackfin中,硬件将更简单,功耗也将降低(这是proc的目的之一)。而且循环是完全不同的。对于blackfin,它是一个
For
循环,在循环设置时,具有固定的开始和结束地址以及迭代计数:无需执行分支指令。对于x86,循环是一条分支指令,而增益(相对于标准循环)是循环指令分支并修改CX。因此,blackfin有一个增益。如果我将此方法与8086中使用CX缓冲区递减的循环方法进行比较,会有一个时间增益?就硬件实现而言,使用专用寄存器比使用像CX这样的GP寄存器更容易实现循环。因此,在blackfin中,硬件将更简单,功耗也将降低(这是proc的目的之一)。而且循环是完全不同的。对于blackfin,它是一个
For
循环,在循环设置时,具有固定的开始和结束地址以及迭代计数:无需执行分支指令。对于x86,循环是一条分支指令,而增益(相对于标准循环)是循环指令分支并修改CX。因此,黑鳍金枪鱼获得了收益。