cpu訪問(wèn)寄存器的速度為什么比內(nèi)存快
這個(gè)問(wèn)題應(yīng)該從cpu、寄存器和內(nèi)存單元的物理結(jié)構(gòu)來(lái)看。

上圖是一個(gè)手畫的cpu訪問(wèn)寄存器和內(nèi)存的簡(jiǎn)單結(jié)構(gòu)圖,從圖中我們看到,寄存器是在
cpu芯片的內(nèi)部,內(nèi)存是在cpu的外部。僅此一點(diǎn),我們就可以理解為什么cpu訪問(wèn)寄存器的速度比內(nèi)存要快。
為了進(jìn)一步加深對(duì)這個(gè)問(wèn)題的理解,參考圖2和圖3:

圖2是cpu內(nèi)部結(jié)構(gòu)圖。從圖中可以看到,要執(zhí)行的指令、執(zhí)行指令的電路部分以及ALU和寄存器是通過(guò)總線直接連在一起的。

從圖3可以看出,存儲(chǔ)器處于cpu的外部,cpu要對(duì)存儲(chǔ)單元進(jìn)行訪問(wèn),就必須通過(guò)地址總線。這里的寄存器是指R0,R1等。

圖4是一個(gè)簡(jiǎn)單的寄存器電路。

我們知道,一個(gè)內(nèi)存地址分為段地址和偏移地址,兩者相加才會(huì)形成一個(gè)實(shí)際的物理地址,這部分由專門的電路完成,如圖5,這個(gè)電路也處于cpu的外部。

圖6是一塊內(nèi)存電路。

圖7是上面幾部分的連接示意圖。圖下面的譯碼器代表指令執(zhí)行電路,左上角是寄存器,這兩部分都在cpu芯片的內(nèi)部。右上角是內(nèi)存地址形成電路和內(nèi)存電路,兩者處于cpu的外部。
假設(shè)一條指令的機(jī)器碼由下部譯碼器的輸入端A0,A1,A2等引腳輸入,由此可以明顯看出,如果這條指令中分別用到了寄存器和內(nèi)存單元,兩者的訪問(wèn)速度肯定存在著明顯的差別。