當前位置:首頁 » 文件傳輸 » 相連存儲器的訪問依據是
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

相連存儲器的訪問依據是

發布時間: 2023-02-24 21:37:51

1. 相聯存儲器是什麼組成原理裡面的相聯是什麼

相聯存儲器的定義介紹可見網路:

http://ke..com/link?url=-flumWFF1OGCxB7aJ7hNINv0vCb5k6
相聯存儲器可以用來作虛擬內存頁表訪問時的TLB快表。
下面是快表的介紹:

根據功能可以譯為快表,直譯可以翻譯為旁路轉換緩沖,也可以把它理解成頁表緩沖。裡面存放的是一些頁表文件(虛擬地址到物理地址的轉換表)。當處理器要在主內定址時,不是直接在內存的物理地址里查找的,而是通過一組虛擬地址轉換到主內存的物理地址,頁表文件(PTE page table entry 頁表條目存放在內存中)就是負責將虛擬內存地址翻譯成實際的物理內存地址,TLB中存放了部分PTE頁表的緩存。而CPU定址時會優先在TLB中進行定址。TLB是在MMU中包括的一段小的緩存(MMU memory management unit 存儲器管理單元,是CPU晶元上的一個專用硬體)。處理器的性能就和定址的命中率有很大的關系。
如果TLB中正好存放著所需的頁表,則稱為TLB命中(TLB Hit);如果TLB中沒有所需的頁表,則稱為TLB失敗(TLB Miss)。如果快表命中的話,實現虛擬地址到物理地址的映射可以少訪問一次內存。
如果命中的話,就可以直接將虛擬地址轉換為物理地址,如果不命中,則必須在PTE頁表中繼續查找,並將找到的PTE存放到TLB中,覆蓋已經存在的一個條目。

2. 按內容訪問的存儲器是什麼

關聯存儲器(又譯作相聯存儲器)也稱為按內容訪問存儲器或簡稱為TLB;它是一種不根據地址而是根據存儲內容來進行存取的存儲器,可以實現快速地查找快表。
原理:
寫入信息時按順序寫入,不需要地址。
讀出時,要求中央處理單元給出一個相聯關鍵字,用它和存儲器中所有單元中的一部分信息進行比較,若它們相等,則將此單元中餘下的信息讀出。這是實現存儲器並行操作的一種有效途徑,特別適合於信息的檢索和更新。
考慮表3-1所示的表格,假設它存放在計算機的主存儲器中。該表格由五個記錄所組成,每個記錄包含四個子段:職工號、姓名、出生年月和工資數。
在表3-1中,信息的存貯與檢索問題往往涉及到訪問一個記錄中的某個子段,如「李四的出生年月是什麼時間?」「職工號是5199109的人的姓名是什麼?」這類問題如果採用傳統的隨機存儲器,那麼一定要確切地指出「李四」的那一項在表格中的物理地址(n+1)與職工號「5199109」和姓名「李四」沒有邏輯上的關系,因而用常規方法尋找上述答案時,增加了程序的復雜性。

但是如果我們選擇記錄的一個子段作為地址來訪問存儲器時,那麼會明顯地帶來好處,例如,我們選職工號5199109作為地址來訪問存儲器,那麼很快就能知道5199109號是「李四」,「1960年09月」生,工資數為「4000元」。
上述表格的問題採用相聯存儲器結構,就能圓滿得到解決。一般而言,相聯存儲器是指其中任一存儲項都可以直接用該項的內容作為地址來存取的存儲器。選用來定址存儲器的子段叫做關鍵字,簡稱為鍵。這樣,存放在相聯存儲器的項中的項可以看成具有下列格式:
KEY,DATA
其中鍵KEY是地址,而數據DATA是讀寫信息。
由此可知,相聯存儲器的基本原理是把存儲單元所存內容的某一部分作為檢索項(即關鍵字項),去檢索該存儲器,並將存儲器中與該檢索項符合的存儲單元內容進行讀出或寫入。

3. 存儲系統

計算機對存儲器的要求是容量大,速度快,成本低。為了解決這三方面的矛盾,計算機採用多級存儲體系結構,即cache,主存和外存。cpu能直接發你給我內存(cache, 主存),但不能直接訪問外存。存儲器的技術指標有存儲容量,存取時間,存儲周期,存儲器帶寬。

廣泛使用的SRAM和DRAM都是半導體隨機讀寫存儲器,前者速度比後者快,按集成度不如後者高。二者的有點是體積小,可靠性高,價格低廉,缺點是斷電後不能保存信息。只讀存儲器和閃速存儲器正好彌補了SRAM和DRAM的缺點,即使斷電後也能保存原先使用的數據,特別是閃速存儲器能提供高性能,低功耗,高可靠性以及瞬時啟動能力,因而有可能使現有的存儲器體系結構發生重大變化。

雙埠存儲器和多模塊交叉存儲器屬於並行存儲器結構。前者採用空間並行技術,後者採用時間並行技術。

相聯存儲器不是按地址而是按內容訪問的存儲器,在cache中用來存放地址表,在虛擬存儲器中用來存放段表,頁表和快表。在這兩種應用中,都需要快速查找。

cache是一種告訴緩存存儲器,是為了解決CPU和內存之間速度不匹配而採用的一項重要的硬體技術,並且發展為多節cache體系,指令cache和數據cache分設體系。要求cache的命中率接近於1.主存於cache的地址映射有全相連,直接,組相連三種方式。其中組相連方式是前兩者的折中方案,適度的兼顧了兩者的優點又盡量避免其缺點,從靈活性,命中率,硬體投資來說較為理想,因而得到普遍採用。

虛擬存儲器指的是主存-外存層次,它給用戶提供了一個比實際主存空間大得多的虛擬地址空間。因此虛擬存儲器只是一個容量非常大的存儲器分邏輯模型,不是任何實際的物理存儲器,按照主存-外存層次的信息傳送單位不同,虛擬存儲器有頁式,段式,段頁式三類。

多個用戶共享主存時,系統應提供存儲保護。通常採用的方法存儲區域保護和訪問方式保護,並用硬體來實現。有些機器中提供特權指令來實現某種保護。

4. 計算機原理

計算機原理

一. 填空題:

1. 計算機系統由(硬體)系統和(軟體)系統構成。

2. 計算機硬體系統包括(運算器、存儲器、控制器、輸入輸出設備)組成。

3. 八位二進制補碼表示整數的最小值為(-128),最大值為(+127)
)。

4. 在浮點加法運算中,主要的操作步驟是(對階、尾數相加、結果規格化、舍入 )和(溢出檢查)。

5. 在浮點補碼加減運算中,當運算結果的尾數不是(00.1x……x)和(11.0x……x)形式時,需要進行規格化操作。

6. 一個定點數由(符號位)和(數值位)兩部分組成,根據小數點位置不同,定點數有(純小數)和(純整數)兩種表示方法。

7. 採用雙符號位的方法進行溢出檢測時,若運算結果中兩個符號位(不相同),則表明發生了溢出,若結果的符號位為(01),表示發生正溢出;若為(10),表示發生負溢出。

8. 某一靜態RAM晶元,其容量為64K×1位,則其地址線有(16)條。

9. 採用4K×4位規格的靜態RAM存儲晶元擴展32KB的存儲模塊,需要這種規格的晶元(16)片。

10. cache是一種(高速緩沖)存儲器,是為了解決CPU和主存之間(速度)而採用的一項重要的硬體技術。

11. 存儲器的技術指標有(存儲容量、存取時間、存取周期、存儲器帶寬)。

12. 虛擬存儲器是建立在(多層次存儲 )結構上,用來(主存容量不足)解決。

13. 相聯存儲器是按(內容)訪問的存儲器,在cache中用來(行地址表)地址,在虛擬存儲器中用來存放(段表,頁表和快表)。在這兩種應用中,都需要(快速)查找。

_二. 名詞解釋

1. 存儲單元:若干個存儲元組成。

2. 存取時間:指從啟動一次存儲器操作到完成該操作所經歷的時間。

3. CPU:由運算器和控制器組成。

4. 應用軟體:完成應用功能的軟體,專門為解決某個應用領域中的具體任務而編寫。
5. SRAM:靜態隨機訪問存儲器;採用雙穩態電路存儲信息。
6. 全相聯映像:是一種地址映像方式,每個主存塊可映像到任何cache塊。

三. 計算題、設計題

1. 已知x=-0.1100,y=+0.1101,求x-y的補碼、x+y的補碼,並說明有否溢出。

解:x=-0.1100 y=0.1101
[x]補=1.0100 [y]補=0.1101
[-y]補=1.0011
[x+y]補=[x]補+[y]補=1.0100+0.1101=0.0001 未溢出
[x-y]補=[x]補+[-y]補=1.0100+1.0011=0.0111 溢出

2. 將十進制數20.59375轉換成IEEE754標准32位浮點數的二進制格式來存儲。

(20.59375)10=(10100.10011)2
10100.10011=1.010010011×24
e=4
s=0, E=4+127=131, M=010010011
最後得到32位浮點數的二進制存儲格式為:
0100 0001 1010 0100 1100 0000 0000 0000
(41A4C000)16
3. 用512K×16位的flash存儲器晶元組成一個2M×32的半導體只讀存儲器,試問:

①數據寄存器多少位?

解:數據寄存器32位
地址寄存器23位
共需要8片FLASH

4. 某計算機系統的內存儲器由cache和主存構成,cache的存取周期為45ns,主存的存取周期為20ns。已知在一段給定的時間內,CPU共訪問內存4500次,其中340次訪問主存。問:

①cache的命中率是多少?

解:①cache的命中率:H=Ne/Ne+Nn=4500-340/4500=0.92
②Ta=H·Te+(1-H)Tm=0.92×45+(1-0.92)×200=57.4ns
③e=Tc/Ta×100%=0.78×100%=78%

5. 設有一個1MB容量的存儲器,字長為32位,問:

①按位元組編址:1MB=220×8,地址寄存器為20位,數據寄存器為8位;
編址范圍為00000H~FFFFFH
②按半字編址:1MB=220×8=219×16,地址寄存器為19位,數據寄存器;
為16位;編址范圍為00000H~7FFFFH
③按字編址:1MB=220×8=218×32,地址寄存器為18位,數據寄存器;
為32位;編址范圍為00000H~3FFFFH

四. 問答題:

1. 簡述存儲器晶元中地址解碼方法?

兩種方式:單解碼方式—只用一個解碼電路,將所有的地址信號轉換成字 選通信號,每個字選通信號用於選擇一個對應的存儲單元。
雙解碼方式—採用兩個地址解碼器,分別產生行選通信號和列選通信號,行、列選通同時有效的單元被選中。

2. 什麼是多體交叉編址?有什麼優缺點?

主存分成幾個獨立、同樣大小的地址空間,相同容量模塊,每個模塊地址是連續的,而不是在同一模塊上,CPU在一
個存取周期內可同時訪問這些模塊。這樣使整個主存的平均利用率得到提高,加寬了存儲器帶寬。缺點是不利於擴展。

3. 什麼是cache命中率?

答:Cache的命中率是指:在一個程序執行期間,設Nc表示cache完成存取的總次數,Nm表示主存完成存取
的總次數,n定義為命中率,則有:

n=Nc/Nc+Nm

5. 計算機組成原理(三)存儲系統

輔存中的數據要調入主存後才能被CPU訪問

按存儲介質,存儲器可分為磁表面存儲器(磁碟、磁帶)、磁心存儲器半導體存儲器(MOS型存儲器、雙極型存儲器)和光存儲器(光碟)。

隨機存取存儲器(RAM):讀寫任何一個存儲單元所需時間都相同,與存儲單元所在的物理位置無關,如內存條等

順序存取存儲器(SAM):讀寫一個存儲單元所需時間取決於存儲單元所在的物理位置,如磁碟等

直接存取存儲器(DAM):既有隨機存取特性,也有順序存取特性。先直接選取信息所在區域,然後按順序方式存取。如硬碟

相聯存儲器,即可以按內容訪問的存儲器(CAM)可以按照內容檢索到存儲位置進行讀寫,「快表」就是一種相聯存儲器

讀寫存儲器—即可讀、也可寫(如:磁碟、內存、Cache)
只讀存儲器—只能讀,不能寫(如:實體音樂專輯通常採用CD-ROM,實體電影採用藍光光碟,BIOS通常寫在ROM中)

斷電後,存儲信息消失的存儲器——易失性存儲器(主存、Cache)
斷電後,存儲信息依然保持的存儲器——非易失性存儲器(磁碟、光碟)
信息讀出後,原存儲信息被破壞——破壞性讀出(如DRAM晶元,讀出數據後要進行重寫)
信息讀出後,原存儲信息不被破壞——非破壞性讀出(如SRAM晶元、磁碟、光碟)

存儲器晶元的基本電路如下

封裝後如下圖所示

圖中的每條線都會對應一個金屬引腳,另外還有供電引腳、接地引腳,故可以由此求引腳數目

n位地址對應2 n 個存儲單元

假如有8k×8位的存儲晶元,即

現代計算機通常按位元組編址,即每個位元組對應一個地址

但也支持按位元組定址、按字定址、按半字定址、按雙字定址

(Dynamic Random Access Memory,DRAM)即動態RAM,使用柵極電容存儲信息
(Static Random Access Memory,SRAM)即靜態RAM,使用雙穩態觸發器存儲信息

DRAM用於主存、SRAM用於Cache,兩者都屬於易失性存儲器

簡單模型下需要有 根選通線,而行列地址下僅需 根選通線

ROM晶元具有非易失性,斷電後數據不會丟失

主板上的BIOS晶元(ROM),存儲了「自舉裝入程序」,負責引導裝入操作系統(開機)。邏輯上,主存由 輔存RAM+ROM組成,且二者常統一編址

位擴展的連接方式是將多個存儲晶元的地址端、片選端和讀寫控制端相應並聯,數據端分別引出。

字擴展是指增加存儲器中字的數量,而位數不變。字擴展將晶元的地址線、數據線、讀寫控制線相應並聯,而由片選信號來區分各晶元的地址范圍。

實際上,存儲器往往需要同時擴充字和位。字位同時擴展是指既增加存儲字的數量,又增加存儲字長。

兩個埠對同一主存操作有以下4種情況:

當出現(3)(4)時,置「忙」信號為0,由判斷邏輯決定暫時關閉一個埠(即被延時),未被關閉的埠正常訪問,被關閉的埠延長一個很短的時間段後再訪問。

多體並行存儲器由多體模塊組成。每個模塊都有相同的容量和存取速度,各模塊都有獨立的讀寫控制電路、地址寄存器和數據寄存器。它們既能並行工作,又能交義工作。多體並行存儲器分為高位交叉編址(順序方式)和低位交叉編址(交叉方式)兩種.

①高位交叉編址

②低位交叉編址

採用「流水線」的方式並行存取(宏觀上並行,微觀上串列),連續取n個存儲字耗時可縮短為

宏觀上,一個存儲周期內,m體交叉存儲器可以提供的數據量為單個模塊的m倍。存取周期為T,存取時間/匯流排傳輸周期為r,為了使流水線不間斷,應保證模塊數

單體多字系統的特點是存儲器中只有一個存儲體,每個存儲單元存儲m個字,匯流排寬度也為m個字。一次並行讀出m個字,地址必須順序排列並處於同一存儲單元。

缺點:每次只能同時取m個字,不能單獨取其中某個字;指令和數據在主存內必須是連續存放的

為便於Cache 和主存之間交換信息,Cache 和主存都被劃分為相等的塊,Cache 塊又稱Cache 行,每塊由若干位元組組成。塊的長度稱為塊長(Cache 行長)。由於Cache 的容量遠小於主存的容盤,所以Cache中的塊數要遠少於主存中的塊數,它僅保存主存中最活躍的若干塊的副本。因此 Cache 按照某種策略,預測CPU在未來一段時間內欲訪存的數據,將其裝入Cache.

將某些主存塊復制到Cache中,緩和CPU與主存之間的速度矛盾

CPU欲訪問的信息已在Cache中的比率稱為命中率H。先訪問Cache,若Cache未命中再訪問主存,系統的平均訪問時間t 為

同時訪問Cache和主存,若Cache命中則立即停止訪問主存系統的平均訪問時間t 為

空間局部性:在最近的未來要用到的信息(指令和數據),很可能與現在正在使用的信息在存儲空間上是鄰近的

時間局部性:在最近的未來要用到的信息,很可能是現在正在使用的信息

基於局部性原理,不難想到,可以把CPU目前訪問的地址「周圍」的部分數據放到Cache中

直接映射方式不需要考慮替換演算法,僅全相聯映射和組相聯映射需要考慮

①隨機演算法(RAND):若Cache已滿,則隨機選擇一塊替換。實現簡單,但完全沒考慮局部性原理,命中率低,實際效果很不穩定

②先進先出演算法(FIFO):若Cache已滿,則替換最先被調入Cache的塊。實現簡單,依然沒考慮局部性原理

③近期最少使用演算法(LRU):為每一個Cache塊設置一個「計數器」,用於記錄每個Cache塊已經有多久沒被訪問了。當Cache滿後替換「計數器」最大的.基於「局部性原理」,LRU演算法的實際運行效果優秀,Cache命中率高。

④最不經常使用演算法(LFU):為每一個Cache塊設置一個「計數器」,用於記錄每個Cache塊被訪問過幾次。當Cache滿後替換「計數器」最小的.並沒有很好地遵循局部性原理,因此實際運行效果不如LRU

現代計算機常採用多級Cache,各級Cache之間常採用「全寫法+非寫分配法」;Cache-主存之間常採用「寫回法+寫分配法」

寫回法(write-back):當CPU對Cache寫命中時,只修改Cache的內容,而不立即寫入主存,只有當此塊被換出時才寫回主存。減少了訪存次數,但存在數據不一致的隱患。

全寫法(寫直通法,write-through):當CPU對Cache寫命中時,必須把數據同時寫入Cache和主存,一般使用寫緩沖(write buffer)。使用寫緩沖,CPU寫的速度很快,若寫操作不頻繁,則效果很好。若寫操作很頻繁,可能會因為寫緩沖飽和而發生阻塞訪存次數增加,速度變慢,但更能保證數據一致性

寫分配法(write-allocate):當CPU對Cache寫不命中時,把主存中的塊調入Cache,在Cache中修改。通常搭配寫回法使用。

非寫分配法(not-write-allocate):當CPU對Cache寫不命中時只寫入主存,不調入Cache。搭配全寫法使用。

頁式存儲系統:一個程序(進程)在邏輯上被分為若干個大小相等的「頁面」, 「頁面」大小與「塊」的大小相同 。每個頁面可以離散地放入不同的主存塊中。CPU執行的機器指令中,使用的是「邏輯地址」,因此需要通「頁表」將邏輯地址轉為物理地址。頁表的作用:記錄了每個邏輯頁面存放在哪個主存塊中

邏輯地址(虛地址):程序員視角看到的地址
物理地址(實地址):實際在主存中的地址

快表是一種「相聯存儲器」,可以按內容尋訪,表中存儲的是頁表項的副本;Cache中存儲的是主存塊的副本

地址映射表中每一行都有對應的標記項

主存-輔存:實現虛擬存儲系統,解決了主存容量不夠的問題

Cache-主存:解決了主存與CPU速度不匹配的問題