20145209 《信息安全系统设计基础》第7周学习总结
20145209 《信息安全系統(tǒng)設(shè)計(jì)基礎(chǔ)》第7周學(xué)習(xí)總結(jié)
教材學(xué)習(xí)內(nèi)容總結(jié)
一.存儲(chǔ)技術(shù)
存儲(chǔ)器系統(tǒng)是一個(gè)具有不同容量、成本和訪問(wèn)時(shí)間的存儲(chǔ)設(shè)備的層次結(jié)構(gòu)。CPU寄存器保存著最常用的數(shù)據(jù)。靠近CPU的小的、快速的高速緩存存儲(chǔ)器作為一部分存儲(chǔ)在相對(duì)慢速的主存儲(chǔ)器中數(shù)據(jù)和指令的緩沖區(qū)域。主存暫時(shí)存放存儲(chǔ)在容量較大的、慢速磁盤上的數(shù)據(jù),而這些磁盤常常又作為存儲(chǔ)在通過(guò)網(wǎng)絡(luò)連接的其他機(jī)器的磁盤或磁帶上的數(shù)據(jù)的緩沖區(qū)域。
1.隨機(jī)訪問(wèn)存儲(chǔ)器(RAM,Random-access memory)
靜態(tài)RAM(SRAM)
(1)靜態(tài)RAM(SRAM)比動(dòng)態(tài)RAM(DRAM)更快,但也貴很多。SRAM用來(lái)作為高速緩存存儲(chǔ)器,即可以在CPU芯片上,也可以不在CPU芯片上。DRAM用來(lái)作為主存以及圖形系統(tǒng)的幀緩沖區(qū)。
(2)SRAM將每個(gè)位存儲(chǔ)在一個(gè)雙穩(wěn)態(tài)存儲(chǔ)器單元中。每個(gè)單元是用一個(gè)六晶體管電路來(lái)實(shí)現(xiàn)的。
(3)由于SRAM的雙穩(wěn)態(tài)特性,只要有電,它就會(huì)永遠(yuǎn)地保持它的值。
動(dòng)態(tài)RAM(DRAM)
(1)DRAM將每個(gè)位存儲(chǔ)為對(duì)電容的充電。電容約為30×10-15F。
(2)DRAM存儲(chǔ)器單元對(duì)干擾非常敏感。
(3)當(dāng)電容的電壓被擾亂之后就永遠(yuǎn)不會(huì)恢復(fù)。
(4)優(yōu)勢(shì)是密集度低,成本低。
傳統(tǒng)的DRAM
(1)DRAM的芯片中的單元被分成d個(gè)超單元,每個(gè)超單元都由w個(gè)DRAM單元組成。一個(gè)d*w的DRAM總共存儲(chǔ)了dw位的信息。超單元被組織成一個(gè)r行c列的長(zhǎng)方形陣列,這里rc = d。信息通過(guò)引腳的外部連接器流入和流出芯片。
(2)信息通過(guò)稱為引腳的外部連接器流入/流出芯片,每個(gè)引腳攜帶一個(gè)1位信號(hào)。
(3)每個(gè)DRAM信號(hào)被連接到稱為存儲(chǔ)控制器的電路,電路每次傳輸量為8位。行地址i,RAS請(qǐng)求;列地址j,CAS請(qǐng)求共享相同的DRAM地址引腳。
存儲(chǔ)器模塊
(1)雙列直插存儲(chǔ)器模塊(Dual Inline Memory Module,DIMM):168個(gè)管腳,它以64位為塊傳送數(shù)據(jù)到存儲(chǔ)控制器和從存儲(chǔ)控制器傳出數(shù)據(jù)。
(2)單列直插存儲(chǔ)器模塊(Single Inline Memory Module,SIMM):72個(gè)管腳,它以32位為塊傳送數(shù)據(jù)。
增強(qiáng)的DRAM
(1)快頁(yè)模式DRAM:允許對(duì)同一行連續(xù)的訪問(wèn)可以直接從行緩沖區(qū)得到服務(wù),避免內(nèi)部行緩沖區(qū)使用一個(gè)丟棄其他的現(xiàn)象。
(2)擴(kuò)展數(shù)據(jù)輸出DRAM:允許單獨(dú)的CAS信號(hào)在時(shí)間上靠的更緊密一點(diǎn)。
(3)同步DRAM:用驅(qū)動(dòng)存儲(chǔ)控制器相同的外部時(shí)鐘信號(hào)的上升沿來(lái)替代許多的異步信號(hào),速度更快。
(4)雙倍數(shù)據(jù)速率同步DRAM:通過(guò)使用兩個(gè)時(shí)鐘沿作為控制信號(hào),使得DRAM的速度翻倍。
(5)RambusDRAM:增大了最大帶寬。
(6)視頻RAM:用在圖形系統(tǒng)的幀緩沖區(qū)中,允許對(duì)存儲(chǔ)器并行的讀和寫。
非易失性存儲(chǔ)器
(1)如果斷電,DRAM和SRAM都會(huì)丟失信息,非易失性存儲(chǔ)器——只讀存儲(chǔ)器:ROM。ROM是以他們能夠被重編程的次數(shù)和對(duì)他們重編程的機(jī)制來(lái)區(qū)分的。
(2)可編程ROM(PROM):只能被編程一次。PROM每個(gè)存儲(chǔ)單元有一種熔絲,只能用高電流熔斷一次。
(3)閃存是一個(gè)類小的非易失性存儲(chǔ)器,基于EEPROM,支持插撥。
訪問(wèn)主存
(1)總線:總線是一組并行的導(dǎo)線,能攜帶地址、數(shù)據(jù)和控制信號(hào)。
(2)讀事務(wù)(read transaction)從主存?zhèn)魉蛿?shù)據(jù)到CPU;寫事務(wù)(write transcation)從CPU傳送數(shù)據(jù)到主存。
(3)總線是一組并行的導(dǎo)線,能攜帶地址、數(shù)據(jù)的控制信號(hào)。
2.磁盤存儲(chǔ)
磁盤構(gòu)造:磁盤由盤片構(gòu)成,表面覆蓋著磁性記錄材料,中央有一個(gè)可以旋轉(zhuǎn)的主軸 ,旋轉(zhuǎn)速率大約為5400-15000每分鐘。磁盤的每個(gè)表面是一組稱為磁道的同心圓組成,每個(gè)磁道被劃分為一組扇區(qū),扇區(qū)之間由一些間隙隔開(kāi),間隙存儲(chǔ)用來(lái)標(biāo)識(shí)扇區(qū)的格式化位。
磁盤容量:
磁盤容量=(字節(jié)數(shù)/扇區(qū))(平均盤區(qū)數(shù)/磁道)(磁道數(shù)/表面)*(盤片數(shù)/磁盤)
磁盤操作:磁盤用讀/寫頭來(lái)讀寫存儲(chǔ)在磁性表面的位,而讀寫頭連接到一個(gè)傳動(dòng)臂一端,通過(guò)移動(dòng)轉(zhuǎn)動(dòng)臂將讀寫頭定位在磁道上的機(jī)械運(yùn)動(dòng)稱為尋道。
邏輯磁盤塊:現(xiàn)代磁盤將盤面的構(gòu)造視為一個(gè)B個(gè)扇區(qū)大小的邏輯塊序列,磁盤控制器維護(hù)著邏輯塊號(hào)和實(shí)際磁盤扇區(qū)之間的映射關(guān)系。邏輯塊號(hào)可識(shí)別為一個(gè)盤面、磁道、扇區(qū)三元組,唯一的標(biāo)識(shí)了相對(duì)應(yīng)的物理扇區(qū)。操作系統(tǒng)是以邏輯塊號(hào)為單位進(jìn)行尋址操作的。
連接到I/O設(shè)備:所有的I/O設(shè)備都是通過(guò)I/O總線連接到CPU和主內(nèi)存。
3.固態(tài)硬盤
固態(tài)硬盤是一種基于閃存的存儲(chǔ)技術(shù),在某些情況下是傳統(tǒng)旋轉(zhuǎn)磁盤的極有吸引力的替代產(chǎn)品。
一個(gè)SSD包由一個(gè)或多個(gè)閃存芯片和閃存翻譯層組成,閃存芯片——對(duì)應(yīng)旋轉(zhuǎn)磁盤中機(jī)械驅(qū)動(dòng)器,而閃存翻譯層是一個(gè)硬件/固件設(shè)備,扮演與磁盤控制器相同的角色。
二.局部性
局部性原理:一個(gè)編寫良好的計(jì)算機(jī)程序傾向于引用鄰近于其他最近引用過(guò)的數(shù)據(jù)項(xiàng),或者最近引用過(guò)的數(shù)據(jù)項(xiàng)本身。
局部性有兩種形式:時(shí)間局部性(temporal locality):在一個(gè)具有良好時(shí)間局部性的程序中,被引用過(guò)一次的存儲(chǔ)器位置很可能在不遠(yuǎn)的將來(lái)再被多次引用。
空間局部性(spatial locality):在一個(gè)具有良好空間局部性的程序中,如果一個(gè)存儲(chǔ)器位置被引用了一次,那么程序很可能在不遠(yuǎn)的將來(lái)引用附近的一個(gè)存儲(chǔ)器位置。
1.對(duì)程序數(shù)據(jù)引用的局部性
程序指令是存放在存儲(chǔ)器中的,CPU讀取這些指令的過(guò)程中評(píng)價(jià)一個(gè)程序關(guān)于取指令的局部性。
代碼區(qū)別與程序數(shù)據(jù)的一個(gè)重要屬性是:在運(yùn)行時(shí)指令是不能被修改的。
2.取指令的局部性
計(jì)算機(jī)程序傾向于引用鄰近于其他最近引用過(guò)的數(shù)據(jù)項(xiàng)的數(shù)據(jù)或其本身;這種傾向性,被稱為局部性原理。包括:時(shí)間局部性,空間局部性。有良好局部性的程序比局部性差的程序運(yùn)行的更快。
體現(xiàn):在硬件層,局部性原理允許計(jì)算機(jī)設(shè)計(jì)者通過(guò)引入稱為高速緩存器的小而快的存儲(chǔ)器來(lái)保存最近被引用的指令和數(shù)據(jù)項(xiàng);在操作系統(tǒng)級(jí),局部性原理允許系統(tǒng)使用主存作為虛擬地址空間最近被使用的磁盤塊。
重復(fù)引用一個(gè)變量的程序具有良好的時(shí)間局部性;對(duì)于取指令來(lái)說(shuō),循環(huán)具有良好的時(shí)間和空間局部性。循環(huán)體越小,循環(huán)迭代次數(shù)越多,局部性越好。
三.存儲(chǔ)器層次結(jié)構(gòu)
存儲(chǔ)器層次結(jié)構(gòu)的中心思想是:對(duì)于每個(gè)k,位于k層的更快更小的存儲(chǔ)設(shè)備作為位于(k+1)層的更大更慢的存儲(chǔ)設(shè)備的緩存。數(shù)據(jù)總是以塊大小作為傳送單元在第k層和k+1層之間來(lái)回拷貝的。第(k+1)層的存儲(chǔ)器被劃分成連續(xù)的數(shù)據(jù)對(duì)象片,稱為塊;數(shù)據(jù)總是以塊大小為傳送單元在相鄰兩層之間來(lái)回拷貝的;在任何時(shí)刻,第k層的緩存包括第(k+1)層塊的一個(gè)子集的拷貝。
四.高速緩存存儲(chǔ)器
1.直接映射高速緩存
每組只有一行(E=1)的高速緩存稱為直接映射高速緩存。高速緩存確定一個(gè)請(qǐng)求是否命中,然后抽取出被請(qǐng)求字的過(guò)程分為三步:組選擇/ 行匹配/ 字抽取
直接映射高速緩存中的組選擇:高速緩存從要抽取的字的地址中抽取出S個(gè)組索引位,這些位被解釋成一個(gè)對(duì)應(yīng)于一個(gè)組號(hào)的無(wú)符號(hào)整數(shù)。
直接映射高速緩存中的行匹配:當(dāng)且僅當(dāng)設(shè)置了有效位,而且高速緩存行標(biāo)記與w的地址中的行標(biāo)記相匹配時(shí),這一行中包含w的一個(gè)拷貝。
直接映射高速緩存中的字抽取:塊偏移位提供了所需要的字的第一個(gè)字節(jié)的偏移。
直接映射高速緩存中不命中時(shí)的行替換:需要從存儲(chǔ)器層次結(jié)構(gòu)中的下一層取出被請(qǐng)求的塊,然后將新的塊存儲(chǔ)在組索引位指示的組中的一個(gè)高速緩存行中。
2.組相連高速緩存
組相連高速緩存中的組選擇:與直接映射高速緩存中的組選擇一樣,組索引位標(biāo)識(shí)組。
組相連高速緩存中的行匹配和字選擇:把每個(gè)組看做一個(gè)小的相關(guān)聯(lián)存儲(chǔ)器,是一個(gè)(key,value)對(duì)的數(shù)組,以key為輸入,返回對(duì)應(yīng)數(shù)組中的value值。高速緩存必須搜索組中的每一行,尋找有效的行其標(biāo)記與地址中的相匹配。
組相連高速緩存中不命中時(shí)的行替換:最簡(jiǎn)單的替換策略是隨機(jī)選擇要替換的行,其他復(fù)雜的策略則使用了局部性原理,例如最不常使用、最近最少使用等。
3.全相連高速緩存
全相連高速緩存中的組選擇:只有一個(gè)組,沒(méi)有組索引位。
全相連高速緩存中的行匹配和字選擇:與組相連高速緩存是一樣的,但規(guī)模大很多,因此只適合做小的高速緩存,例如虛擬存儲(chǔ)系統(tǒng)中的翻譯備用緩沖器。
4.有關(guān)寫的問(wèn)題
直寫:立即將w的高速緩存塊寫回到緊接著的低一層中。
寫回: 盡可能推遲存儲(chǔ)器更新,只有當(dāng)替換算法要驅(qū)逐已更新的塊時(shí),才把它寫回存儲(chǔ)器。
寫分配:即加載相應(yīng)的存儲(chǔ)器塊到高速緩存中,然后更新這個(gè)高速緩存器。
5.高速緩存參數(shù)的性能影響
有許多指標(biāo)來(lái)衡量高速緩存的性能:
(1)不命中率:它是這樣計(jì)算的:不命中數(shù)量/引用數(shù)量
(2)命中率:命中的存儲(chǔ)器引用比率
(3)命中時(shí)間:命中時(shí)間的數(shù)量級(jí)是幾個(gè)時(shí)鐘周期
(4)不命中處罰
五.編寫高速緩存友好的代碼
確保代碼高速緩存友好的基本方法:
(1)讓最常見(jiàn)的情況運(yùn)行的快。
(2)在每個(gè)循環(huán)內(nèi)部緩存不命中數(shù)量最小。
六.高速緩存對(duì)程序性能的影響
1.存儲(chǔ)器山
一個(gè)程序從存儲(chǔ)系統(tǒng)中讀數(shù)據(jù)的速率稱為讀吞吐量,或者讀帶寬,通常以兆字節(jié)每秒(MB/s)為單位。
讀帶寬的時(shí)間和空間局部性的二維函數(shù)稱為存儲(chǔ)器山。
2.在程序中利用局部性
將你的注意力集中在內(nèi)循環(huán)上,大部分計(jì)算和存儲(chǔ)器訪問(wèn)都發(fā)生在這里。
通過(guò)按照數(shù)據(jù)對(duì)象存儲(chǔ)在存儲(chǔ)器中的順序、以步長(zhǎng)為1的來(lái)讀數(shù)據(jù),從而使得你程序中的空間局部性最大。
一旦從存儲(chǔ)器中讀入了一個(gè)數(shù)據(jù)對(duì)象,就盡可能多地使用它,從而使得程序中的時(shí)間局部性最大。
代碼托管鏈接
https://git.oschina.net/null_363_2267/linux-besti-is-2016-2017-1-20145209
本周代碼托管截圖
其他(感悟、思考等,可選)
這一章概念類的知識(shí)比較多,需要在看書(shū)的同時(shí)消化理解。另外,這次我自己?jiǎn)为?dú)使用git進(jìn)行第二次上傳,沒(méi)有按照老師的要求一個(gè)一個(gè)上傳,而是一起上傳了,上傳后經(jīng)同學(xué)檢查才發(fā)現(xiàn)這個(gè)問(wèn)題,以后我會(huì)按老師要求上傳代碼。
學(xué)習(xí)進(jìn)度條
| 目標(biāo) | 5000行 | 30篇 | 400小時(shí) | |
| 第一周 | 200/200 | 2/2 | 20/20 | |
| 第二周 | 300/500 | 2/4 | 18/38 | |
| 第三周 | 500/1000 | 3/7 | 22/60 | |
| 第四周 | 300/1300 | 2/9 | 30/90 |
參考資料
- 《深入理解計(jì)算機(jī)系統(tǒng)V2》學(xué)習(xí)指導(dǎo)
- ...
轉(zhuǎn)載于:https://www.cnblogs.com/liuyiyang/p/6013842.html
總結(jié)
以上是生活随笔為你收集整理的20145209 《信息安全系统设计基础》第7周学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CodeForces 157C Mess
- 下一篇: 当当网新用户注册界面——JS代码