深刻淺出計算機組成原理學習筆記:第四十三講

咱們在前面的章節搭建了最簡單的電路,在這裏面,計算機的輸入設備就是一個一個開關,輸出設備呢,是一個一個燈泡。的確,早期發展的時候,計算機的核心是作「計算」。
咱們從「計算機」這個名字上也能看出這藝點。不論是中文名字「計算機」,仍是英文名字「Computer」,核⼼都是在」計算「這兩個字上。不過,到了今天,這些「計算」的貢做,更多的是藝個幕後工做。

咱們討論是使用本身的PC,仍是智能手機,這部分時間都是在和計算機進行各類「交互操做」。換句話說,就是在和輸入輸出設備打交道。這些輸入輸出設備也再也不是個一個開關,
或者一個一個燈泡。你在鍵盤上直接敲擊的都是字符,而不是「0」和「1」,你在顯示意器上看到的,也是直接的圖形或者文字的畫面,而不是一個一個閃亮或者關閉的燈泡。
想要了解這其中的關竅,那就請你和我一塊兒來看一看,計算機裏面的輸入輸出設備。設計模式

1、經典的適配器模式

一、硬件設備並非直接和CPU直接通訊的

二、內置在主板上的接口

 

三、CPU的三級緩存

2、經典的適配模式

一、把接口和實際設備分離

二、軟件的設計模式口

三、Windows操做系統

 

3、CPU是如何控制I/O設備的?

 

首先是數據寄存器

而後是命令寄存器

而狀態寄存器

4、發揮總線的價值

一、MIPS的CPU究竟是如何通訊

二、IntelX86

這個,其實也有點像咱們在設計模式⾥⾯的Command模式。咱們在總線上傳輸的,是一個個數據對象,而後各個接受這些對象的設備,再去根據對象內容,進行實際的解碼和命令執行。緩存

 

這是一張我本身的顯卡,在設備管理器裏面的資源(Resource)信息。你能夠看到,裏面既有MemoryRange,這個就是設備對應映射到的內存地址,也就是咱們上⾯所說的MMIO的訪問方式
。一樣的,裏面還有I/O?Range,這個就是咱們上⾯所說的PMIO,也就是經過端⼝來訪問I/O設備的地址。最後,裏面還有一個IRQ,也就是會來⾃於這個設備的中斷信號了。操作系統

5、總結與延伸

好了,講到這裏,不知道,如今你是否是能夠把CPU的指令、總線和I/O設備之間的關係完全串聯起來了呢?我來帶你回顧一下。

CPU並非發送一個特定的操做指令來操做不一樣的I/O設備。由於若是是那樣的話,隨着新的I/O設備的發明,咱們就要去擴展CPU的指令集了。

在計算機系統裏面,CPU和I/O設備之間的通訊,是這麼來解決的。設計


首先,在I/O設備這⼀側,咱們把I/O設備拆分紅,能和CPU通訊的接⼝電路,以及實際的I/O設備自己。接⼝電路里面有對應的狀態寄存器、命令寄存器、數據寄存器、數據緩衝區和設備內存等等
。接⼝電路經過總線和CPU通訊,接收來⾃CPU的指令和數據。⽽接⼝電路中的控制電路,再解碼接收到的指令,實際去操做對應的硬件設備。

而在CPU這⼀側,對CPU來講,它看到的並非已個個特定的設備,而是已個個內存地址或者端⼝地址。CPU只是向這些地址傳輸數據或者讀取數據。所須要的指令和操做內存地址的指令其實沒有什麼本質差異。
經過軟件層面對於傳輸的命令數據的定義,而不是提供特殊的新的指令,來實際操做對應的I/O硬件。3d

相關文章
相關標籤/搜索