也許我沒有正確地考慮這一點,但是當你給CPU一個命令,例如乘法寄存器(MR)R2,R4時,它如何決定它將使用哪個邏輯門,它只是第一個可用的門還是有什麼東西我不知道幕後發生的事。我知道 CPU 有數百萬個邏輯閘,那麼它如何正確管理它們的使用?
答案1
你的問題實際上更多地屬於電氣工程領域而不是電腦科學領域,所以它有點偏離主題,但我會看看我能做什麼。
您的乘法指令將排隊到算術處理單元在其輸入/輸出連接之一上。
ALU 使用組合邏輯在其佈局中,電流流經整個電路,其輸出會根據接收到的輸入而變化。它不選擇要使用的一組閘,所有閘都接收訊號,但電路的佈局創建了攜帶結果的輸入訊號的可重現轉換。請注意,在這個級別上,您使用的類比訊號與數位位元一樣多,因此電流就像水一樣流過管道網絡,並且電路允許或多或少的水通過不同的路徑。
驅動指令的執行單元將其傳送給 ALU 進行處理,並在下一個時脈週期,期望結果在 ALU 輸出暫存器之一上可用。在這裡查看更多詳細資訊:https://en.wikipedia.org/wiki/Arithmetic_logic_unit#Circuit_operation
答案2
簡而言之,您運行的命令本身決定了晶體管狀態,從而決定了所使用的邏輯閘。它將看到一系列字節,並且該系列正在有效地配置處理器初始狀態。在具有多個執行單元的現代處理器上,情況要複雜得多,但這就是重點。
當處理器啟動時,它將位於位址 0,並將該位址放到位址匯流排上。然後它將等待地址 0 處的位元組出現在其資料輸入上。然後,這將告訴處理器它需要處於的起始狀態,因此它可以將下一個位址位置放在位址匯流排上並等待下一個位元組,依此類推。
很快它就會有一個完整的命令,以及它需要相乘的位元組。所有這些位元組將有效地將處理器核心「配置」到需要完成的任務。
將完整命令與放入暫存器中的所需資料位元組一起拉入後,它可以繼續執行所需的命令,並在循環完成所需的一系列邏輯轉換後,輸出結果。