8086 CPU內部結構之總線接口部件BIU

8086CPU內部結構之總線接口部件BIU

主要功能:20位地址加法器產生20位地址加法器產生20位的物理地址、預取指令並存入先進先出的指令隊列緩衝器中、從內存和I/O接口讀/寫操作數、發出各種總線控制信號等。

組成部件:

1)4個16位段寄存器

數據段寄存器(Data Segment,DS)

代碼段寄存器(Code Segment,CS)

附加段寄存器(Extra Segment,ES)

堆棧段寄存器(Stack Segment,SS)

2)16位指令指針IP(Instruction Pointer):專用於存放下一條將要執行的指令的偏移地址。

3)20位地址加法器:它能夠將邏輯地址變換成讀/寫存儲器所需要的20位物理地址的加法操作。

4)6字節指令隊列緩衝器,用於預存放6字節的指令代碼。

5)總線控制電路,用於控制總線的開放、關閉及信號的傳送方向。

工作過程:

首先,代碼段寄存器CS中的16位段基地址左移4位,並且低4位補4個0,加上16位指令地址IP的值,產生20位物理地址(實際地址),這在20位

地址加法器內完成,將20位物理地址存入地址寄存器,並由地址寄存器輸出端連接到CPU的地址總線,然後,通過總線控制邏輯發出存儲器讀信號,從20位物理地址指定的存儲單元中取出指令,送到指令緩衝隊列中等待執行。

一般情況下,COU從內存取出指令並填滿6字節指令隊列緩衝器後,EU可從指令隊列中取出指令執行。EU從指令隊列輸出端取出指令後,BIU則自動調整指令隊列輸出端的指針。當指令隊列中有2個或2個以上的字節空出時,BIU將從內存按代碼的順序自動取出後續的代碼填入指令隊列中。當指令隊列已裝滿,EU沒有向BIU申請讀/寫存儲器及I/O端口的操作數時,則BIU不會執行任何總線操作,處於一種空閒狀態

EU從指令隊列取出指令並譯碼後,如果需要從存儲器或I/O端口讀/寫操作數時,EU便向BIU傳遞偏移地址,BIU只要收到EU送來的偏移地址,就將通過地址加法器將現行數據段及送來的偏移地址組成20位的

物理地址,根據得到的20位物理地址,通過執行存儲器的讀/寫總線週期來完成對存儲器的讀/寫操作,或者通過執行I/O端口的讀/寫總線週期來完成度/寫I/O接口的操作。

指令指針寄存器IP有自動加1的功能,它指向下一條指令在當前代碼段內的偏移地址。當EU執行跳轉指令時,總線接口部件BIU則清除指令隊列,根據轉移指令的新地址取出指令代碼,立即送給EU執行,並且從後繼指令序列中取指令,依次填滿指令隊列。

8086CPU內部結構圖:

8086 CPU內部結構之總線接口部件BIU

8086CPU內部結構


分享到:


相關文章: