cpu執行指令。
儲存器系統為cpu存放指令和資料。
儲存器系統(memory system):是乙個具有不同容量、成本和訪問時間的儲存器裝置的層次結構。
cpu暫存器(register):儲存著最常用的資料。
快取記憶體儲存器(cache memory):作為一部分儲存在相對慢速主儲存器(main memory,主存)中的資料和指令的快取區域。
主存:暫時存放儲存在容量較大的、慢速磁碟上的資料,而這些磁碟常常又作為儲存在通過網路連線的其他機器的磁碟或磁帶上的資料的緩衝區域。
6.1、儲存技術
6.1.1、隨機訪問儲存器
ram(random-access memory):
ø 靜態ram (static random access memory):
ø 動態ram (dynamic random access memory):
(1) 靜態ram
sram 將每個位儲存在乙個雙穩態的(bitstable)儲存器單元裡。可以無限期的保持在兩個不同的電壓配置或狀態之一。
即使有干擾,在干擾消除時,電路就會恢復到穩定值。
(2) 動態ram
dram 將每個位儲存為對乙個電容的充電。對干擾非常敏感,當電容的電壓被擾亂之後,就永遠不會恢復。
每位電晶體數
相對訪問時間
持續的?
敏感的?
相對花費
應用sram1*是
否100*
快取記憶體儲存器
dram
10*否是1*
主存,幀緩衝區
如果斷電,dram和sram會丟失他們的資訊,從這個意義上說,它們是易失的(volatile)
(3) 傳統的dram
(4) 儲存器模組
dram晶元包裝在儲存器模組(memory module)中,插到主機板的擴充套件槽上。
(5) 增強的dram
(6) 非易失性儲存器
如果斷電,dram和sram會丟失他們的資訊,從這個意義上說,它們是易失的(volatile)。
非易失性儲存器(nonvolatile memory):即使在關電後嗎,,也仍然儲存著它們的資訊。
唯讀儲存器(read-only memory,rom)由於歷史原因,雖然rom中有的型別既可以讀也可以寫,但是它們整體上都稱為唯讀儲存器(read-onlymemory,rom)。
① prom(programmable rom,可程式設計rom)
② eprom(erasable programmable rom,可擦寫可程式設計rom)
③ eeprom(electrical erasable programmablerom,電子可擦寫可程式設計rom)
④ flash memory(快閃儲存器):是一類非易失性儲存器,基於eeprom。
韌體(firmware):儲存在rom裝置中的程式。當計算機系統通電以後,它會執行儲存在rom中的韌體。例如pc的bios(基本輸入輸出系統)。
(7) 訪問主存
匯流排事務(bus transaction):每次cpu和主存之間的資料傳送都是通過一系列步驟來完成的,這些步驟稱為匯流排事務。
讀事務(read transaction):從主存傳送資料到cpu。
寫事務(write transaction):從cpu傳送資料到主存。
資料流通過匯流排在cpu和dram主存之間來來回回。
系統匯流排:連線cpu和i/o橋
儲存器匯流排:連線i/o橋和主存
i/o橋:系統匯流排的電子訊號和儲存器匯流排的電子訊號之間的連線和翻譯。
6.1.2、磁碟儲存
磁碟是儲存大量資料的儲存裝置。
(1) 磁碟構造
(2) 磁碟容量
(3) 磁碟操作
(4) 邏輯磁碟塊
(5) 連線到i/o裝置
三個不同型別的i/o裝置:
l 通用序列匯流排控制器(universal serial bus,usb):是乙個連線到usb匯流排的裝置的中轉機構。usb2.0匯流排的最大頻寬為60mb/s。usb3.0匯流排的最大頻寬為600mb/s。
l 圖形卡(或介面卡):包含硬體和軟體邏輯,負責代表cpu在顯示器上畫像素。
l 主機匯流排介面卡:將乙個或多個磁碟連線到i/o匯流排,使用的是乙個特別的主機匯流排介面定義的通訊協議。
l 其他的裝置:例如網路介面卡,通過將介面卡插入到主機板上空的擴充套件槽中,從而連線到i/o匯流排,這些插槽提供了到匯流排的直接電路連線。
(6) 訪問磁碟
儲存器對映i/o
在使用儲存器對映i/o的系統中,位址空間中有一塊位址是為與i/o裝置通訊保留的。每個這樣的位址稱為乙個i/o埠(i/o port)。當乙個裝置連線到匯流排時,它與乙個或多個埠相關聯(或它被對映到乙個或多個埠)。
直接儲存器訪問(direct memory access,dma):這是指一種高速的資料傳輸操作,允許在外部裝置和儲存器之間直接讀寫資料,既不通過cpu,也不需要cpu干預。整個資料傳輸操作在乙個稱為"dma控制 器"的控制下進行的。cpu除了在資料傳輸開始和結束時做一點處理外,在傳輸過程中cpu可以進行其他的工作。這樣,在大部分時間裡,cpu和輸入輸出都 處於並行操作。因此,使整個計算機系統的效率大大提高。
(7) 商用磁碟的剖析
6.1.3、固態硬碟
固態硬碟(solid state disk,ssd)是一種基於快閃儲存器的儲存技術。
ssd包 插到i/o匯流排上 標準硬碟插槽 中,行為和其他硬碟一樣,處理來自cpu的讀寫邏輯磁碟塊的請求。
乙個ssd包 由乙個或多個快閃儲存器和快閃儲存器翻譯層組成。
6.1.4、儲存技術趨勢
6.2、區域性性
區域性性(locality)有兩種不同的形式:
l 時間區域性性(temporal locality):在乙個具有良好時間區域性性的程式中,被引用過一次的儲存器位置很可能在不遠的將來再被多次引用。
l 空間區域性性(spatial locality):在乙個具有良好空間區域性性的程式中,被引用過一次的儲存器位置很可能在不遠的將來引用附近的乙個儲存器位置。
有良好區域性性的程式比區域性性差的程式執行的更快。
(1) 對程式資料引用的區域性性
順序訪問,具有 步長為1的引用模式 稱為順序引用模式。
步長為k的引用模式,每個k個元素進行訪問。
隨著步長的增加,空間區域性性下降。
c陣列在儲存器中是按照行順序來存放的。
(2) 取指令的區域性性
迴圈有良好的空間區域性性和時間區域性性。
6.3、儲存器層次結構
儲存器體系結構()---見圖6-23 書本p405
6.4、快取記憶體儲存器
sram快取記憶體儲存器:
l1快取記憶體(一級快取)
l2快取記憶體(二級快取)
l3快取記憶體(**快取)
6.5、編寫快取記憶體友好的**
好的程式設計師總是應該試著去編寫快取記憶體友好的**。基本方法:
l 讓最常見的情況執行得快
l 在每個迴圈內部快取不命中數量最小---區域性性
6.6、綜合:快取記憶體對程式效能的影響
6.6.1、儲存器山
讀吞吐量(read throughput),也叫讀頻寬(read bandwidth):乙個程式從儲存系統中讀資料的速率。典型的單位兆位元組每秒(mb/s)。
儲存器山(memory mountain):讀頻寬的時間和空間區域性性的二維函式。
每個計算機都有表明它儲存器系統的能力特色的唯一的儲存器山。
儲存器系統的效能不是乙個數字就能描述的,而是一座時間和空間區域性性的山。
明智的程式設計師會試圖構造他們的程式,使得程式執行在山峰而不是低谷。目標就是利用:
① 時間區域性性,使得頻繁使用的字從l1中取出。
② 空間區域性性,使得盡可能多的字從乙個l1快取記憶體行中訪問到。
5.6.2、重新排列迴圈以提高空間區域性性
5.6.3、在程式中利用區域性性
6.7、小結
硬體概念 第六章 儲存器層次結構
本章依然涉及的概念較多,做知識儲備 在第一章記憶體外存的時候涉及到了儲存器層次結構,今天對這一部分深入了解 首先做乙個劃分 1 暫存器是cpu晶元內部的儲存裝置 2 快取記憶體 sram 記憶體儲存 dram 以及圖中沒有標出的rom都是記憶體 記憶體條 3 磁碟是外存,磁碟分為硬碟 機械硬碟hdd...
mysql第六章 第六章 mysql日誌
第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...
SQL第六章 儲存過程
建立儲存過程 一 create proc 名字 引數1 引數1型別,引數2 引數2型別 as查詢語句 例如 select from where go例 create proc pr stu marks asselect stuinfo.stuid,stuname,subject,score from...