2014-01-22 21 views

回答

1

大多數專用ALU單位(同世代正在進行不斷的變化),則CPU具有挑根據該指令可能端口中的一個(或更確切地說微操作)正在執行。當多個相同的端口可以做同樣的事情時,它應該嘗試做一些平衡,並且可能還有其他可能的因素。課程的確切算法從未公佈。

然而,在這種情況下,根據this link,LEA操作分爲慢速和快速操作,慢操作由於使用3個操作數LEA(基準,索引,偏移)。它實際上還爲您提供性能監視器來衡量您遇到的這種情況。

+0

謝謝。我感興趣的是爲什麼LEA與ALU分離,因爲它只是一種ALU操作(主要是添加?) – Thomson

+0

@Thomson - *大部分*,但不是*完全*,由於額外的源代碼,它更復雜,因此我相信它使用了一個專用的執行單元 - 可能是通常爲內存操作數保留的一個執行單元(因爲它已經存在並且能夠執行該計算)。一個簡單的Add/Sub ALU可能無法應付這種情況。另請參閱此答案 - http://stackoverflow.com/a/11389785/2016408 – Leeor