微型計算機是通過總線來傳送指令和數據的,32位微機支持多種數據傳送總線周期。80486和Pentium的總線周期可以是非突發方式的,也可以是突發方式的;可以是高速緩存方式的,也可以是非高速緩存方式的。
本節以8086/8088、80486和Pentium微處理器為例,敘述80x86微處理器的內部結構。
2.1.18086/8088的內部結構
8086/8088是Intel公司于1978年6月推出的16位微處理器,它們的主要特點是:數據線為16位(8088內部數據線是16位,外部數據 線是8位),可進行8位(字節)和16位(字)運算;地址線為20位,可尋址1MB存儲空間;時鐘頻率為5~8MHz。內部結構由執行單元 EU(Execution Unit)和總線接口單元BIU(Bus Interface Unit)兩部分構成,其內部結構框圖。
1.執行單元(EU)
EU由算術邏輯單元(ALU)、16位標志寄存器(FR)、通用寄存器組(4個16位通用寄存器、2個16位指針寄存器、2個16位間址寄存器)、指令 譯碼器和控制電路組成。EU是指令執行部件,它從BIU的指令隊列中取指令,進行指令譯碼,并發出相應的控制命令序列執行指令。
2.總線接口單元(BIU)
BIU包括4個16位段寄存器(CS、DS、ES、SS)、1個16位指令指針(IP)、1個地址加法器、1個6字節(8088 為4字節)的指令隊列 和總線控制電路,它負責從存儲器中取指令并存放在指令隊列中供CPU執行。在執行指令過程中,使用的操作數地址由段基址和偏移量組成,其中16位偏移量先 由EU計算得出,再由BIU將其與段基址(段寄存器的內容)合在一起形成20位物理地址。BIU的功能是實現CPU與內存的數據交換,并可根據EU的請求 與I/O接口電路交換數據。
2.1.280486的內部結構
80486是Intel公司于1989年4月推出的 32位微處理器,它的主要特點是:內部數據總線有32位、64位和128位3種,外部數據總線為32位;提供了8位(字節)、16位(字)、32位(雙 字)運算指令;地址總線為32位,可尋址4096MB存儲空間;支持虛擬存儲管理技術,虛存空間為64T;片內集成有浮點運算部件和8KB的Cache, 同時也支持外部Cache;整數處理部件采用RISC結構,提高了指令的執行速度。此外,80486還引進了時鐘倍頻技術,從而使主頻可以超過100 MHz。
80486內部包括總線接口部件、指令預取部件、指令譯碼部件、控制部件、整數執行部件、分段部件、分頁部件,以及浮點運算部件(FPU)和高速緩存(Cache)部件,其內部結構框圖。
1.總線接口部件
總線接口部件(BIU)與片外總線連接,用于管理訪問外部存儲器和I/O端口的地址、數據和控制總線,完成指令預取、讀/寫操作等總線操作。BIU主要 與指令預取部件和高速緩存部件交換信息。BIU將預取指令存入指令預取部件;填充Cache行時,BIU一次從片外總線讀16個字節到Cache。若 Cache內容被CPU內部操作修改,則修改內容也由BIU寫到存儲器中去。當讀操作的內容不在Cache中時,將由BIU控制直接到存儲器中去取。
2.指令預取部件
80486含有一個32字節的指令預取隊列,在總線空閑周期,指令預取部件形成存儲器地址,并向BIU發出預取指令請求。預取周期一次讀16個字節的指 令代碼存入預取隊列中。如果Cache在指令預取時命中,則不產生總線周期。當遇到跳轉、中斷、子程序調用等操作時,則預取隊列被清空。
3.指令譯碼部件
指令譯碼部件是從指令預取隊列中讀取指令并譯碼,將其轉換成對其他部件進行控制的信號。譯碼過程分兩步:首先確定指令執行時是否需要訪問存儲器,若需要 則立即產生總線訪問周期,使存儲器操作數在指令譯碼后能準備好;然后產生對其他處理部件的控制信號。大多數指令能在一個時鐘周期內譯碼完畢。
4.控制部件
80486單獨設置控制部件以對整數執行部件、浮點運算部件和分段部件等進行控制,使它們完成已譯碼指令的執行。