引用英特爾 ?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中的數據移動迭代需要一個周期。(強調我的)沒有進一步提及這種啟動成本。它是什么?它做什么,為什么總是要花更多時間?
添加回答
舉報
0/150
提交
取消