計算機結構
- 計算機組成=中央處理器、存儲器(內存)、輸入/輸出設備
- CPU 控制器 程序計數器、指令寄存器、中斷機構、時序部件
- CPU 運算器 進行算數/邏輯運算、算數邏輯單元ALU、通用寄存器、數據總線
- 存儲器 內存儲器 內存/主存、存儲機器指令和數據
- 存儲器 外存儲器 外存/輔存、存儲長期保存信息
- 輸入/輸出設備
計算機分類
指令流:機器執(zhí)行的指令序列(信號)
數據流:指令流調用的數據序列(數據)
多倍性:系統部件上允許并行執(zhí)行的指令或者數據的最大可能數
| 類型 | 結構 | 特征 | 代表 |
|---|---|---|---|
| SISD 單指令流單數據流 | 控制部分:1 處理器:1 | 流水線方式的單處理器系統 | |
| SIMD 單指令流多數據流 | 控制部分:1 處理器:n | 多處理器異步執(zhí)行一條指令 | 并行/矩陣處理機 |
| MISD 多指令流單數據流 | 控制部分:n 處理器:1 | 理論上不可行 | |
| MIMD 多指令流多數據流 | 控制部分:n 處理器:n | 指令/處理并行 | 多處理機系統 |
多級存儲器體系
- 存儲器體系 = 寄存器、高速緩存Cache、主存儲器、磁盤、光盤、磁帶
- 存儲器存儲方式
- 順序存取 線性順序,磁帶
- 隨機存儲 相同時間訪問任意存儲單元,主存儲器
- 直接存取 每個存儲塊都有地址標識、數組,磁盤存儲器
- 相聯存取 高速緩存cache
- 性能取決于: 存取時間、容量、數據傳輸率、價格
主存儲器
-
RAM(隨機存取存儲器) 斷電后數據丟失,暫存數據
- SRAM(static ram) 靜態(tài)存儲器 容量小,速度快,價格高 [cache]
- DRAM(dynamic ram) 動態(tài)存儲器 [主存儲器] 需要不停刷新電路
- ROM(只讀存儲器) 廠家固定好只讀,存放BIOS或者微程序
- PROM(可編程ROM) 可以修改一次
- EPROM(可擦除PROM) 可以多次寫
- flash memory(閃存) 可電擦除,基于地址的讀寫
- CAM(相聯存儲器) 基于數據內容的讀寫,速度快于基于地址的讀寫
輔存儲器
- 磁帶存儲器
-
磁盤存儲器
- 數據都是存放在 磁道 上,磁道是同心圓,為了避免干擾,磁道之間存在空隙,最外層磁道是0道
- 磁盤傳輸數據單位是塊(扇區(qū)),扇區(qū)之間也有空隙
- 柱面 是若干個磁盤疊加組成的磁盤組,所有磁盤上同一個 磁道的剖面
- 磁盤格式化容量 = (n * t * s * b);n=總盤數,t=每面盤的磁道數,s=每磁道的扇區(qū)數,b=每扇區(qū)的存儲字節(jié)數
-
磁盤存儲時間 = 尋道時間 + 等待時間
- 尋道時間 是磁頭移動到對應磁道的時間(固定磁頭則只需要耗費選擇磁道對應的磁頭時間)
- 等待時間 是等待讀取的數據所在的扇區(qū)轉到磁頭下方的時間,一般去轉一圈的平均值
- 磁盤數據傳輸率 -> R = TB /T;R=數據傳輸率,TB=磁道上記錄的字節(jié)數,T=磁盤轉一圈耗時
-
RAID 廉價磁盤冗余陣列存儲器
- 分布式存放數據,CPU可以并行的快速切換提高系統的IO
- 8級:
- RAID 0 無冗余無校驗(存儲利用率100%)
- RAID 1 鏡像實時備份50%存儲利用率
- RAID 5 無獨立校驗盤的奇偶校驗磁盤陣列,將校驗碼分布到所有磁盤上,存儲利用率(扣除校驗碼)
- RAID 10 性能好,但是擴展性不好,50%存儲利用率
- 光盤存儲器 CD / CD-ROM / DVD-ROM
高速緩存Cache
- 原理:局部性原理,減少CPU->主存儲的消耗,命中率一般在 90%-95%
- Cache里面分為指令cache和數據cache,指令的讀/寫時間會比數據的讀寫時間快。
- 例子:假設一臺機器主存讀寫是100ns。有一個Cache讀寫是10ns,讀指令命中率98%,讀數命中率95%。執(zhí)行程序時,1/5指令需要讀一個操作數,不考慮流水線阻塞,問指令的平均讀取時間?
- (2% * 100ns + 98%*10ns) + 1/5(5% * 100ns + 95% * 10ns)=14.7ns [有1/5的指令還需要讀取一個操作數, 每個請求都需要讀取指令]
- Cache 地址映射: 主存和cache均分成容量相等的塊(頁)
- 直接映射: 一個主存塊只能復制到一個指定的cache 位置上,會存在主存多個塊映射到同一個cache位置上
- 全相聯映射: 在cache 淘汰掉某一頁信息,可以將主存任意頁中數據進行映射,由于主存不能通過計算直接獲取 cache的映射,需要逐一對比,丟失了cache的性能,很少使用
- 組相聯映射:結合 直接映射 和 全相聯映射,在塊分組的概念上再按照每n塊分一組的概念,縮小全地址映射的范圍
16AED3F2-F7B3-466A-8B00-FA1306C1B2A5.png
1234E8F8H是十六進制,映射的二進制是 0001 0010 0011 0100 1110 1000 1111 1000
08F05F11-6B68-4FAD-8FE2-958881F9F154.png
- 淘汰算法
- 隨機淘汰、先進先出(FIFO first in and first out)
- 最近最少使用(LRU least recently used) [命中率最高]
- Cache 與 主存數據一致性保證:
- 寫回(先寫cache 做標識,當被替換時才寫入主存)
- 直寫(既寫主存也寫cache)
- 標記法 有效位1時讀取cache,為0時讀取主存
- 直接存儲器存取(DMA)技術 和 輸入輸出通道技術
- 現代存儲層次 cache(buffer)->主存(內存)->輔存(硬盤)
-
cache 存儲器(由 硬件組成, 比主存快, 對程序員透明)
- 組成: 存儲體(指令/數據) + 標記(在主存中的位置)
- Cache 類型
- 指令 cache 和 數據 cache
- 多層次 cache(一級cache、二級cache、三級cache)
- 虛擬存儲器
- 主存-輔存的信息傳輸單位:段、頁、段頁
-
段式管理:
- 優(yōu)勢:段與程序分界相對應;便于共享;[堆棧、隊列]這類的段可以動態(tài)調整長度
- 劣勢:起點、終點難以分配;空間不好回收,造成大量冗余碎片
-
頁式管理:
- 優(yōu)勢:傳輸定長頁;起點、終點固定,分頁方便、分配頁方便
- 劣勢:最后一頁有浪費、每一頁都不一定是邏輯獨立的,在共享,保護,處理都不方便
- 段頁式管理:程序按模塊分段,段內分頁,進入主存按照頁為信息基本傳輸單位
- 直接尋址 和 間接尋址

