計算機的總線
1、總線的作用及概述
解決設備間通訊問題,
總線是為了解決不同設備之間的通信問題,
總線可以連接CPU和IO設備,


2、總線分類:片內總線、系統總線
片內總線:連接CPU內部高速快取、暫存器、運算單元的總線;

系統總線:資料總線、地址總線、控制總線

資料總線:雙向傳輸各個部件的資料資訊;資料總線的位數(總線寬度)是資料總線的重要引數(一般于CPU位數相同)
總線如果是32位 則一次可傳遞4個位元組的資料 總線如果是64位 則一次可傳遞8個位元組的資料
地址總線:指定源資料或目的資料在記憶體中的地址;地址總線的位數和存盤單元相關
(地址總線的位數=n,尋址范圍0~2^n-1)
控制總線:控制總線是用來發出各種控制信號的傳輸線;
控制信號經由控制總線從一個組件發給另一個組件;
控制組件可以監視不同組件之間的狀態(就緒/未就緒);
3、總線的總裁:為了解決總線使用權的沖突問題,
仲裁方法有三種,(鏈式查詢、計時器定時查詢、獨立請求)
為了解決各設備之間的總線使用權問題;
鏈式查詢:各個設備與仲裁器串聯,當有設備申請總線使用權時,仲裁器發出使用許可,總是按照設備優先順序接收到信號,導致優先級高的設備總是能先獲取到使用權,
鏈式查詢的優缺點:
好處:電路復雜度低,總裁方式簡單
壞處:優先級低的設備難以獲得總線使用權
壞處:對電腦故障敏感

計時器定時查詢:仲裁控制器對設備標號并使用計數器累計計數,其次當控制器接收到仲裁信號后,往所有設備發出計數值,計數值與設備編號保持一致時會優先獲得使用權,
計時器查詢的作業程序:設備主要是通過設備地址與計數器進行對比的,課程使用計數器是為了方便理解,可以理解為設備有一個唯一的設備地址,將設備地址的值與計數器比較,如果一致的話,才會得到總線使用權,

獨立請求:每個設備均有縱線獨立連接仲裁器,可獨立向仲裁器發送和接受請求,同時接到多個請求信號時,仲裁器有權按優先級分配使用權,
獨立請求的優缺點:
好處:回應速度快,優先順序可動態改變
壞處:設備連接多,總線控制復雜

計算機的輸入輸出設備
常見的輸入輸出設備:
字符輸入設備:鍵盤(薄膜鍵盤,機械鍵盤),
影像輸入設備:滑鼠;數位板;掃描儀,
影像輸出設備:顯示幕(CRT顯示幕、液晶顯示幕);列印機;投影儀,
輸入輸出介面的通用設計:
資料線:IO設備與主機之間進行資料交換的傳送線(單向,雙向),
狀態線:IO設備狀態向主機報告的信號線(是否正常連接;是否被占用),
命令線:CPU向設備發送命令的信號線(發送讀寫信號;發送啟動停止信號),
設備選擇線:主機選擇IO設備進行操作的信號線,(對連在設備總線上進行選擇)






CPU與IO設備的通信方法(程式中斷、DMA):
前提:CPU速度和IO設備速度不一致
程式中斷:外圍設備就緒時,向CPU發出中斷,專門電路相應中斷信號,
提供低速設備通知CPU的一種異步的方式、CPU可以高速的運轉同時兼顧低速設備的回應
第一種方法如果頻繁打斷CPU的作業,會降低其效率,

因此產生了第二種方法,DMA 直接存盤器訪問方法:
DMA:DMA(Direct Memory Access,直接存盤器訪問),對于沒有DMA的情況,CPU可能需要被IO設備頻繁打斷,并且由CPU進行IO設備快取與主存之間的資料拷貝,占用大量的CPU時間,對于有DMA的情況,當IO設備準備完成以后,會先通知CPU,然后后續的資料傳輸由DMA協助就可以完成,不再需要CPU的參與,
DMA的出現就是為了解決批量資料的輸入/輸出問題,DMA是指外部設備不通過CPU而直接與系統記憶體交換資料的介面技術,這樣資料的傳送速度就取決于存盤器和外設的作業速度,
通常系統總線是由CPU管理的,在DMA方式時,就希望CPU把這些總線讓出來,即CPU連到這些總線上的線處于第三態(高阻狀態),而由DMA控制器接管,控制傳送的位元組數,判斷DMA是否結束,以及發出DMA結束信號,
因此DMA控制器必須有以下功能:
1、 能向CPU發出系統保持(HOLD)信號,提出總線接管請求;
2、 當CPU發出允許接管信號后,負責對總線的控制,進入DMA方式;
3、 能對存盤器尋址及能修改地址指標,實作對記憶體的讀寫;
4、 能決定本次DMA傳送的位元組數,判斷DMA傳送是否借宿,
5、 發出DMA結束信號,使CPU恢復正常作業

計算機儲存器概述
存盤器的分類
按存盤介質分類
- 半導體存盤器:記憶體、u盤、固態硬碟等
- 磁存盤器:磁帶、磁盤等
按存取方式分類
- 隨機存盤器(RAM):隨機讀取、與位置無關
- 串存盤器: 與位置有關、按順序查找
- 只讀存盤器(ROM):只讀不寫
存盤器的層次結構
讀寫速度
存盤容量
價格
容量+價格=>位價:每位元位價格


快取:速度快 位價高
主存:速度適中 位價適中
輔存:速度慢 位價低
快取-主存層次
原理:區域性原理
CPU訪問存盤器時,無論是存取指令還是存取資料,所訪問的存盤單元都是趨于聚集在一個較小的連續區域中
實作:在CPU與主存之間增加一層速度快容量小的快取
目的:解決主存速度不足的問題
主存-輔存層次
原理:區域性的原理
實作:主存之外增加輔助存盤器(磁盤、SD卡、U盤等)
目的:解決主存容量不足的問題


計算機的主存盤器與副存盤
主存盤器——記憶體RAM(隨機存盤器)

作業原理:RAM,(隨機存盤器;Random Access Memory)通過電容存盤資料,必須每隔一段時間重繪一次,如果斷電,那么一段時間后將丟失所有資料,
記憶體與CPU的互動:

作業系統位數與記憶體大小關系
首先,2是從位元位來的,一個位元位可以表示0和1,
那么,對于32位地址,就有2^32次方的尋址范圍可以表示,換算成數值就是4*2^30次方,指的是尋址范圍,每個地址按字尋址是1byte,所以總的程序就是4 * 1024 * 1024 * 1024 * 1Byte = 4G,
32位CPU的意思是,一次CPU尋址,可以尋址32個位元位長度的地址,也就是最多2^32個資料地址,這里面,對于每個地址,尋址資料大小是一個位元組1Byte,可以得到4G的結果;因此,對于32位CPU,安裝超過4G的物理記憶體,都是浪費的,

輔助存盤器——磁盤


作業原理:表面是可磁化的硬磁特性材料,移動磁頭徑向運動讀取磁道資訊,
磁盤內容讀取主要演算法
- 先來先服務演算法
- 最短尋道時間優先
- 掃描演算法(電梯演算法)
- 回圈掃描演算法
例題:假如磁盤最外圈磁道為1,最內圈磁道為5,磁頭現在在4磁道,且磁頭移動向外,求不同尋道演算法的磁頭移動順序,假設磁頭需要讀取的順序為142315.
先來先服務演算法(FCFS):按順序訪問行程的磁道讀寫需求,讀取順序為142315.
最短尋道時間優先演算法(SSTF):與磁頭當前位置有關,優先訪問離磁頭最近的磁道,讀取順序為452311
掃描演算法(電梯演算法/SCAN):每次只往一個方向移動,到達一個方向的盡頭后反方向移動,讀取順序為432115
回圈掃描演算法(C-SCAN):只往一個方向移動,讀取順序為451123
計算機的高速快取
高速快取的作業原理
前提知識之主存存取資料的方法:
1. 字:指存放在一個存盤單元中的二進制代碼組合
2. 字塊:存盤在連續的存盤單元中而被看作是一個單元的一組字



例題:假設主存用戶空間容量為4G,字塊大小為4M,字長為32位,則對于字地址中的塊地址m和塊內地址b的位數,至少應該是多少?
解: 
高速快取的內部存盤結構與主存的邏輯結構非常類似,緩沖容量較小,緩沖的速度更快


CPU可以從高速快取和主存中獲取資料,前者的效率比后者高,

命中率:
- 命中率是衡量快取的重要性能指標
- 理論上CPU每次都能從高速快取存取資料時候,命中率為1



例題:
假設CPU在執行某段程式時,共訪問了Cache命中2000次,訪問主存50次,已知Cache的存取時間為50ns,主存的存取時間為200ns,求Cache-主存系統的命中率、訪問效率和平均訪問時間,
解:命中率、訪問效率、平均訪問時間分別是0.97、91.7%、54.5ns

高速緩沖的替換策略
替換時機:高速快取內沒有需要運行的資料,就會從主存內拿資料,

替換演算法:隨機演算法、先進先出演算法(FIFO)、最不經常使用演算法(LFU)、最近最少使用演算法(LRU)
- 隨機演算法(RAND):每一次需要發生替換,隨機選取一個高速快取的位置,然后把相關的內容替換掉
- 先進先出演算法(FIFO):把高速快取看做是一個先進先出的佇列,優先替換最先進入的字塊

- 最不經常使用演算法(LFU):優先淘汰掉最不經常使用的字快,需要額外的空間記錄字塊的使用頻率


- 最近最少使用演算法(LRU):優先淘汰一段時間內沒有使用的字塊;有多種實作方法,一般是用雙向串列;把當前訪問節點置與鏈表前面(保證鏈表頭部節點是最近使用的)
計算機的指令系統
機器指令的形式
機器指令主要由兩部分組成:操作碼.地址碼
操作碼:操作碼指明指令所要完成的操作;操作碼的位數反映了機器的操作種類(比如有8位,那么就是2^8 = 256種操作)
地址碼:直接給出運算元或者運算元的地址;分三地址指令、二地址指令和一地址指令、零地址指令

三地址指令:

二地址指令:

一地址指令:

零地址指令:

機器指令的操作型別(資料傳輸、算數邏輯操作、位移操作、控制指令)
1. 資料傳輸
- 暫存器之間、暫存器與存盤單元、存盤單元之間的傳送(存盤單元可以是主存,高速快取,硬碟等等...)
- 資料讀寫、交換地址資料、清零置一等操作
2. 算數邏輯操作
- 運算元之間的加減乘除的運算
- 運算元的與或非等邏輯位運算
3. 位移操作
- 資料左移(乘2)、資料右移(除2)
- 完成資料在算術邏輯單元的必要操作
4. 控制指令
- 等待、停機、空操作、中斷等
機器指令的尋址方式(指令尋址、資料尋址)
指令尋址(順序尋址、跳躍尋址)
1. 順序尋址:通程序式計數器PC加1,自動形成下一條指令的地址


2. 跳躍尋址:通過轉移指令實作,

資料尋址(立即尋址、直接尋址、間接尋址)
1. 立即尋址:機器指令內包含了操作的資料,無需訪問存盤器
2. 直接尋址:機器指令內包含了資料在記憶體中的地址,無需計算資料地址

3. 間接尋址:機器指令內包含了資料地址在記憶體的地址,通過記憶體地址找到真正的資料,需要訪問一次或多次主存來獲取運算元

資料尋址的優缺點

計算機的控制器
控制器是協調和控制計算機運行的
程式計數器:
- 用來存盤下一條指令的地址
- 回圈從程式計數器中拿出指令
- 當指令被拿出時指向下一條指令
時序發生器:
- 電氣工程領域,用于發送時序脈沖
- CPU依據不同的時序脈沖有節奏的進行作業
指令譯碼器:
- 是控制器的主要部件之一
- 計算機指令有操作碼和地址碼組成
- 翻譯操作碼對應的操作以及控制傳輸地址碼對應的資料
指令暫存器:
- 也是控制器的主要部件之一
- 從主存或高速快取取計算機指令
主存地址暫存器:
- 保存當前CPU正要訪問的單元的地址
主存資料暫存器:
- 保存當前CPU正要讀或寫的主存資料
通用暫存器:
- 暫時存放或存送資料或指令
- 可保存ALU的運算中間的結果
- 容量比一般專業暫存器要大
計算機的運算器
運算器時用來進行資料運算加工的
資料快取器:
- 分為輸入緩沖和輸出緩沖
- 輸入緩沖暫時存放外設送過來的資料
- 輸出緩沖暫時存放送往外設的資料
ALU:
- ALU:算術邏輯單元,是運算器的主要組成
- 常見的位運算(左右移、與、非)
- 算術運算(加減乘除)

狀態字暫存器:
- 存放運算狀態(條件碼、進位、溢位、結果正負等)
- 存放運算控制資訊(除錯跟蹤標記位、允許中斷位等)
通用暫存器:
- 用于暫時存放或傳送資料或指令
- 可保存ALU的運算中間結果
- 容量比一般專用暫存器要大
CPU指令執行的程序
由于是在cpu內執行的,所以涉及的設備有: 控制器(程式計數器,指令譯碼器,時序發生器,指令暫存器)
高速快取(資料快取器,指令快取器),運算器(通用暫存器,資料暫存器,狀態暫存器),他們是由片內總線連接的;


詳細程序是:
首先,系統operator(自己)呼叫系統功能的時候,會生成指令,和資料,然后它們快取入指令快取和資料快取中(例:資料快取有"地址"1,資料120;
指令快取有地址101,操作碼MOV,地址碼RO,R1),接著程式計數器會把指令快取中,指令的地址記錄下來(例:101), 指令會通過片內總線傳輸到指令暫存器(操作碼,地址碼),接著又從指令暫存器發送到指令譯碼器中,之后程式計數器會+1(例:變成102), 之后指令譯碼器譯碼完成(把匯編語言變成機器語言),之后其通過片內總線發送控制信號給運算器進行運算:
例如,把指令快取中,地址101,操作碼MOV,地址碼R0,R1的資料中的R1,加載到ALU(算數邏輯單元,是邏輯門),再通過片內總線的資料總線,傳入資料快取器,然后把R1資料覆寫掉R0,記錄運算狀態(狀態暫存器)并送出運算結果給UI至此,就完成了這條指令的操作,CPU會執行下一條指令(如果有發起操作)
CPU的流水線設計
執行程序中,控制器和運算器不能同時作業,所以CPU綜合利用率不高所以需要流水線設計


可以看到,非流水線情況,指令只能一條一條被執行,而流水線的情況,系統可以并發執行指令(不等前一條結束,后一條指令就可以執行),從而大大增加執行效率

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460837.html
標籤:其他
上一篇:Frida Hook可變引數
下一篇:索引有什么分類?
