TI中文支持网
TI专业的中文技术问题搜集分享网站

关于C6000系列流水结构的讨论

硬件流水结构可以提高指令的执行效率:k级流水线执行一条指令要用一个机器周期的话,在没有流水线的情况下执行一条指令需要k个机器周期。

软件流水可以大大地优化程序提高程序的执行效率,经过优化的程序可以比没经过优化的程序执行效率高10倍甚至更高,C6000系列DSP程序优化的主要手段是利用软件流水。

软件流水跟硬件流水结构有什么必然联系吗?有联系的话从哪里可以体现出来?没有硬件流水结构的话可以利用软件流水来优化程序吗?

King Wang1:

tao你好:

硬件流水主要是对指令执行的流水,软件流水主要是针对代码for循环(或者wihle循环)的流水。两者没有必然的联系,但是由于都是“流水”,所以会有相似的地方。

硬件流水通常是代表执行的执行过程,比如现在的指令一般分为取值(Fetch),译码(Decode),执行(Execute)三个步骤,三个步骤可以同时进行,比如当指令3在取值的同时,指令2在译码,指令1在执行。而这里所说的1个cycle指的是从指令1执行完毕到指令2执行完毕只有1个cycle的间隔。

软件流水主要是针对for循环所做的特殊处理。你可以这样理解,1个for循环中的1次循环根据处理顺序依次可以分为三个(或者四个,五个)步骤,分别用A,B,C来表示,这样就能与硬件流水相似,在做第3次循环的A时,我可以做第2次循环的B,同时也可以做循环1的C。这样第1次循环昨晚和第二次循环做完之间就只差了步骤C的时间(如果正常每次循环需要间隔A+B+C的时间)。

因此硬件流水和软件流水不能相互替换和取代,两者也是应用在不同的地方。

赞(0)
未经允许不得转载:TI中文支持网 » 关于C6000系列流水结构的讨论
分享到: 更多 (0)