2017-08-25 45 views
3

在解釋ARM Cortex A9手冊中,我需要關於時序的幫助。數據處理指令是否有延遲? - 解釋ARM Cortex A9時序手冊

ARM A9 Cycle timings

在單元的循環時間被給予點「數據處理指令週期的定時」 - 當我查找該Multiplication instructions,週期和延遲被給予 - 這是否強加例如ADD指令沒有額外的延遲?

+4

不是ARM的專家。可能數據處理單元不是流水線的,所以延遲和吞吐量是相同的,並顯示爲單個數字(例如,您可以每2個週期「mov」一個寄存器,每個「mov」需要2個週期)。顯然,乘法單元是流水線的,第一個數字(「Cycles」)是吞吐量(例如,你可以每2個週期開始一個'mul'),第二個數據是等待時間(例如,從第執行 - 當你可以開始第三個'mul'時,說)。 –

+0

非常感謝您的意見,瑪格麗特! –

回答

1

這與每個執行單元的管線深度有關。 該圖顯示了無序處理器的流水線(Cortex A-15,Cortex A9也是無序處理器,但流水線較短)。整數執行單元只有一個週期,所以它們在執行時沒有額外的延遲。然而,乘法執行單元有4個週期。這並不意味着總是需要4個週期,但取決於所使用的寄存器的值和數量,可能需要4個週期,更少或更多的週期。

pipeline

在這裏,在可以看到在等待時間更詳細地並且還可以通過該表中,例如SDIV 1每隔每4個循環

Divide and Multiply Instructions

20 -1表取from Cortex-A57 Software Optimization Guide 管道圖像取自:Berkeley Design Technology, Inc