計算機體系結構變遷

一個開放的軟硬件生態要符合標準、開放、兼容三個基本點。

目錄

 

1.馮·諾伊曼結構

2.早期計算機系統

3. 基於DMA的計算機系統

4. 實模式與保護模式

5. 幾個需要掌握的彙編指令


1.馮·諾伊曼結構

Von Neumann model

馮·諾伊曼結構(英語:Von Neumann architecture),也稱馮·諾伊曼模型(Von Neumann model)或普林斯頓結構(Princeton architecture),是一種將程序指令存儲器和數據存儲器合併在一起的電腦設計概念結構。

馮·諾伊曼瓶頸指在CPU與存儲器之間的流量(數據傳輸率)與存儲器的容量相比起來相當小,由此就會導致在某些情況下(當CPU需要在巨大的數據上運行一些簡單指令時),數據流量就成了整體效率非常嚴重的限制。

正是由於上述馮·諾伊曼瓶頸的存在,所以提出在CPU與存儲器間的緩存存儲器抒解了馮·諾伊曼瓶頸的性能問題。另外,分支預測branch prediction)算法的創建也幫助緩和了此問題。由此引出了下面將要講述的計算機系統。

2.早期計算機系統

CPU(包含運算器和控制器)負責執行程序、對數據信息進行處理、對整個系統進行控制。並利用地址總線與數據總線和存儲器與IO設備進行交互。其中地址總線決定了尋址範圍的大小,數據總線決定了一次可以從內存讀入數據塊的大小,如兩位數據總線的話一次只能拿兩位(注:此處總線僅指系統總線)

3. 基於DMA的計算機系統

上面的體系結構是以前的體系結構常見於51單片機,但存在的問題是每次io讀入數據都需要CPU參與,這會降低效率的伐,故現在常用的技術是DMA方式,釋放CPU。

DMA技術指計算機系統允許某些硬件子系統訪問獨立於CPU的主系統內存。

4. 實模式與保護模式

其實這是一個歷史遺留問題,早期的x86體系結構地址總線是20位的,而到386之後變爲32位了,具體變遷見下表:

型號

總線位寬

地址位

尋址空間

8080

8

16

64k(2^16)

8086

16

20

1M(2^20)

8088

8

20

1M

80386

32

32

4G

在變爲386模式之後爲了和以前的系統版本相兼容,386採取的措施是將運算器使用的四個16bits通用寄存器AX,BX,CX,DX擴展爲32bits的通用寄存器EAX,EBX,ECX,EDX。當然這些寄存器的低16位還可以像8086那樣直接使用或者拆分來使用。還有指令指針寄存器IP,以及BP、SP、SI、DI也擴展爲了32bits的EIP,以及EBP、ESP、ESI、EDI。而比較有意思的事情發生在四個段寄存器CS、DS、SS、ES上。

在8086中我們使用段地址加偏移量的方式來進行代碼/數據尋址,段地址一般由DS/CS給出,偏移量由 通用指針寄存器/IP指出,因爲只有這樣纔可以經由“(段起始地址<<4) + 偏移量”構成20bits的地址,才能滿足8086 20bit地址線的基本要求。而在80386中我們做了一定的改變,首先在內存中的某個位置維護一個表格,表格中的一項一項是段描述符(Segment Descriptor)。這裏面纔是真正的段的起始地址。而段寄存器裏面保存的是在這個表格中的哪一項,稱爲選擇子(Selector)。這樣,將一個從段寄存器直接拿到的段起始地址,就變成了先間接地從段寄存器找到表格中的一項,再從表格中的一項中拿到段起始地址。這樣段起始地址就會很靈活了。當然爲了快速拿到段起始地址,段寄存器會從內存中拿到 CPU 的描述符高速緩存器中。

如上所述,我們將前一種模式(8086)叫做實模式,後一種模式(80386)叫做保護模式。在系統剛剛啓動的時候其實是處於實模式下的,當需要更多的內存的時候,就會嘗試切換到保護模式,進而可以利用32bit地址總線的優勢,做到更快的尋址操作。這樣下來,儘管不是無縫對接的,但通過切換可以達到同樣的效果也是可以接受的。

5. 幾個需要掌握的彙編指令

mov,call,jmp,int,ret,add,or,xor,shl,shr,push,pop,inc,dec,sub,cmp

[筆記文檔鏈接]   計算機系統.note

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章