REP执行什么设置?

引用英特尔 ®64 和IA-32体系结构优化参考手册,第2.4.6节“ REP字符串增强”:


使用REP字符串的性能特征可以归结为两个组成部分: 启动开销和数据传输吞吐量。


[...]


对于较大粒度数据传输的REP字符串,随着ECX值的增加,REP字符串的启动开销将逐步增加:


短字符串(ECX <= 12):REP MOVSW / MOVSD / MOVSQ的延迟约为20个周期,

快速字符串(ECX> = 76:不包括REP MOVSB):处理器实现通过将尽可能多的数据移入16个字节来提供硬件优化。如果16字节数据传输之一跨越高速缓存行边界,则REP字符串延迟的延迟将有所不同:


不分割:延迟包括大约40个周期的启动成本,每64字节的数据增加4个周期,

缓存拆分:延迟包括大约35个周期的启动成本,每个64字节的数据增加6个周期。

中间字符串长度:REP MOVSW / MOVSD / MOVSQ的等待时间具有大约15个周期的启动成本,并且每个字/双字/ qword中的数据移动迭代需要一个周期。


(强调我的)


没有进一步提及这种启动成本。它是什么?它做什么,为什么总是要花更多时间?


当年话下
浏览 805回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP