【408精華知識】主存相關解題套路大揭秘!

在這里插入圖片描述

講完了Cache,再來講講主存是怎么考察的,我始終認為,一圖勝千言,所以對于很多部件,我都是通過畫圖進行形象的記憶,那么接下來我們對主存也畫個圖,然后再來詳細解讀其考察套路~

文章目錄

  • 零、主存的真面目
  • 一、按存儲方式分類的存儲器
    • (一)隨機存取存儲器(Random Access Memory,RAM)
      • 1.靜態隨機存取存儲器(Static RAM,SRAM)
      • 2.動態隨機存取存儲器(Dynamic RAM,DRAM)
      • 3.SRAM與DRAM的對比
    • (二)只讀存儲器(Read Only Memory,ROM)
      • 1.掩模式只讀存儲器(Mask ROM,MROM)
      • 2.一次可編程只讀存儲器(Programmable ROM,PROM)
      • 3.可擦除可編程只讀存儲器(Erasable Programmable ROM,EPROM)
      • 4.閃速存儲器(Flash Memory)
      • 5.固態硬盤(SolidState Drives,SSD)
    • (三)順序存取存儲器(SAM)
    • (四)直接存取存儲器(DAM)
    • (五)相聯存儲器(CAM)
  • 二、線數計算
    • (一)地址線位數
    • (二)數據線位數
    • (三)片選線位數
      • 1.線選法
      • 2.譯碼片選法
    • (四)讀寫控制線位數
  • 三、主存容量的擴展
    • (一)位擴展
    • (二)字擴展
    • (三)字位同時擴展
  • 四、多模塊存儲器
    • (一)單體多字存儲器
    • (二)多體并行存儲器
      • 1.高位交叉編址
      • 2.低位交叉編址

零、主存的真面目

在這里插入圖片描述
接下來我們所有關于主存的考察形式的討論都將圍繞這張圖展開~

一、按存儲方式分類的存儲器

我們觀察這張主存圖,可以發現它包含了兩個部分,分別是RAM和ROM,它們是按存儲方式分類的兩種存儲器,如果按存儲方式來進行分類,可以將存儲器分為以下五類:

(一)隨機存取存儲器(Random Access Memory,RAM)

存儲器的任何一個存儲單元的內容都可以隨機存取,而且存取時間與存儲單元的物理位置無關,主要用作主存或高速緩沖存儲器。RAM 又分為以下兩種:

1.靜態隨機存取存儲器(Static RAM,SRAM)

SRAM的存儲元是用雙穩態觸發器(六晶體管 MOS)來記憶信息的,靜態是指即使信息被讀出后,它仍保持其原狀態而不需要再生(非破壞性讀出),一般用于Cache

2.動態隨機存取存儲器(Dynamic RAM,DRAM)

利用存儲元電路中柵極電容上的電荷來存儲信息的,DRAM的基本存儲元通常只使用一個晶體管,所以它比 SRAM 的密度要高很多。相對于 SRAM來說,DRAM具有集成度高、位價低和功耗低等優點,但DRAM的存取速度比 SRAM慢,且必須定時刷新和讀后再生,一般用于主存

刷新方式分為三種:
在這里插入圖片描述

3.SRAM與DRAM的對比

類型特點SRAM(不刷新)DRAM(要刷新)
存儲信息觸發器(比較穩定)柵極電容(容易跑電)
破壞性讀出?是(讀一次放一次電)
讀出后需要重寫?是(放完電得給它補)
運行速度快(不需要補電)慢(需要補電)
集成度
發熱量
存儲成本
易失性存儲器?是(沒電不行)是(沒電不行)
需要刷新?
送行列地址一起送分開送
常用作Cache主存

(二)只讀存儲器(Read Only Memory,ROM)

存儲器的內容只能隨機讀出而不能寫入。信息一旦寫入存儲器就固定不變,即使斷電,內容也不會丟失,它與隨機存儲器可共同作為主存的一部分,統一構成主存的地址域。根據制造工藝的不同,ROM 可分為以下幾種:

1.掩模式只讀存儲器(Mask ROM,MROM)

直接寫入,無法修改。

2.一次可編程只讀存儲器(Programmable ROM,PROM)

只可寫入一次,不可再修改。

3.可擦除可編程只讀存儲器(Erasable Programmable ROM,EPROM)

可進行多次重寫。

4.閃速存儲器(Flash Memory)

可進行多次快速擦除重寫,由于寫的時候需要先擦除,所以寫比讀慢,每個存儲元只需要單個MOS管,位密度比RAM高,如U盤,SD卡

5.固態硬盤(SolidState Drives,SSD)

由控制單元+Flash芯片組成,可進行多次快速擦除重寫,如電腦上的機械硬盤

(三)順序存取存儲器(SAM)

屬于串行訪問存儲器,對存儲單元進行讀/寫操作時,需按其物理位置的先后順序尋址,包括順序存取存儲器,如磁帶

(四)直接存取存儲器(DAM)

屬于串行訪問存儲器,對存儲單元進行讀/寫操作時,需按其物理位置的先后順序尋址,包括直接存取存儲器,如磁盤

(五)相聯存儲器(CAM)

可以按內容訪問的存儲器,主要用于虛擬存儲器中存放段表、頁表和快表,以及Cache中存放塊地址,這是因為在這兩種應用中都需要快速查找。

二、線數計算

關于主存有一類題目是計算主存相關的線總位數,我們觀察上面的圖,可以發現主要有四類線:地址線、數據線、片選線、讀寫控制線,因此計算線位數主要就是這四類線,我們一個個來看。

(一)地址線位數

地址線用于尋址,其位數與MAR位數相同,其決定了主存地址空間的最大可尋址范圍,例如36位地址最大尋址范圍為0~236-1,即地址從0開始編號。

(二)數據線位數

數據線用于傳送數據,其位數與MDR位數相同,其決定了一次可傳送的最大數據位數,比如64位數據線,采用字節編址,那么最多可以存取8個單元的內容。

(三)片選線位數

CPU要實現對存儲單元的訪問,首先要選擇存儲芯片,即進行片選;然后在選定的芯片中選擇具體的存儲單元,以進行數據的讀/寫,即進行字選。芯片內的字選通常是由CPU送出的N條低位地址線完成(N由片內存儲容量2N決定)。片選信號的產生方法分為線選法和譯碼片選法。

1.線選法

線選法用除片內尋址外的高位地址線直接連接至各個存儲芯片的片選端,當某位地址線信息為“0”時,就選中與之對應的存儲芯片。這些片選地址線每次尋址時只能有一位有效,不允許同時有多位有效,這樣才能保證每次只選中一個芯片(或芯片組)。假設 4片2K×8位存儲芯片采用線選法構成 8K×8 位存儲器,其中A10-A0用于片內尋址,則各芯片的片選信號如表:

所選中芯片A14-A11
01110
11101
21011
30111

因此如果采用線選法進行片選,片選線位數等于所要選的片總數

2.譯碼片選法

譯碼片選法用除片內尋址外的高位地址線通過地址譯碼器產生片選信號。如用8片8K×8位的存儲芯片組成64K×8位存儲器(地址線為16位,數據線為8位),需要8個片選信號;若采用線選法,除去片內尋址的13位地址線,僅余高3位,不足以產生8個片選信號。因此,采用譯碼片選法,即用一片74LS138作為地址譯碼器,高3位用于片選,則A15A14A13=000時選中第一片,A15A14A13=001時選中第二片,以此類推。

因此如果采用譯碼片選法進行片選,片選線位數等于 log2(所要選的片總數)

(四)讀寫控制線位數

控制對芯片的讀寫,一般為1位。

三、主存容量的擴展

由于單個存儲芯片的容量是有限的,它在字數或字長方面與實際存儲器的要求都有差距,因此需要在字和位兩方面進行擴充才能滿足實際存儲器的容量要求。

(一)位擴展

位擴展是指對字長進行擴展(增加存儲字長)。當CPU 的系統數據線數多于存儲芯片的數據位數時,必須對存儲芯片擴位,使其數據位數與CPU的數據線數相等。如圖,8片8Kx1bit的RAM芯片組成8Kx8bit的存儲器:
在這里插入圖片描述

(二)字擴展

字擴展是指對存儲字的數量進行擴展,而存儲字的位數滿足系統要求。系統數據線位數等于芯片數據線位數,系統地址線位數多于芯片地址線位數。如圖,用4片16K×8位的RAM芯片組成64K×8位的存儲器:
在這里插入圖片描述

(三)字位同時擴展

字位同時擴展是前兩種擴展的組合,這種方式既增加存儲字的數量,又增加存儲字長。如圖,用8片16K×4位的RAM芯片組成64K×8位的存儲器:
在這里插入圖片描述

四、多模塊存儲器

多模塊存儲器是一種空間并行技術,利用多個結構完全相同的存儲模塊的并行工作來提高存儲器的吞吐率。常用的有單體多字存儲器和多體低位交叉存儲器。CPU的速度比存儲器快得多,若同時從存儲器中取出n條指令,就可以充分利用 CPU資源,提高運行速度。多體交叉存儲器就是基于這種思想提出的。

(一)單體多字存儲器

在單體多字系統中,每個存儲單元存儲m個字,總線寬度也為m個字,一次并行讀出m個字。在一個存取周期內,從同一地址取出m條指令,然后將指令逐條送至CPU執行,即每隔 1/m存取周期,CPU 向主存取一條指令,這顯然提高了單體存儲器的工作速度。

(二)多體并行存儲器

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

高位交叉編址和低位交叉編址的區別在于體號在地址的前面部分還是后面部分。

1.高位交叉編址

在這里插入圖片描述
在高位交叉方式下,總把低位的體內地址送到由高位體號確定的模塊內進行譯碼。訪問一個連續主存塊時,總是先在一個模塊內訪問,等到該模塊訪問完才轉到下一個模塊訪問,CPU總是按順序訪問存儲模塊,各模塊不能被并行訪問,因而不能提高存儲器的吞吐率。

2.低位交叉編址

在這里插入圖片描述
低位交叉方式下,總是把高位的體內地址送到由低位體號所確定的模塊內進行譯碼。程序連續存放在相鄰模塊中,因此稱采用此編址方式的存儲器為交叉存儲器。交叉存儲器可以采用輪流啟動或同時啟動兩種方式。

輪流啟動方式下,若每個模塊一次讀/寫的位數正好等于數據總線位數,模塊的存取周期為T,總線周期為r,為實現輪流啟動方式,存儲器交叉模塊數應大于或等于m=T/r,按每隔1/m個存取周期輪流啟動各模塊,則每隔1/m個存取周期就可讀出或寫入一個數據,存取速度提高m倍。交叉存儲器要求其模塊數大于或等于m,以保證啟動某模塊后經過m×r的時間后再次啟動該模塊時,其上次的存取操作已經完成(以保證流水線不間斷)。

這樣,連續存取m個字所需的時間為t1=T+(m-1)r。而順序方式連續讀取m個字所需的時間為t2=mT,可見交叉存儲器的帶寬大大提高。

同時啟動方式下,若所有模塊一次并行讀/寫的總位數正好等于數據總線位數,則可以同時啟動所有模塊進行讀/寫。設每個模塊一次讀/寫的位數為16位,模塊數m=4,數據總線位數為64位,4個模塊一共提供64位,正好構成一個存儲字,因此應該同時啟動4個模塊進行并行讀/寫。

寫在后面

這個專欄主要是我在學習408真題的過程中總結的一些筆記,因為我學的也很一般,如果有錯誤和不足之處,還望大家在評論區指出。希望能給大家的學習帶來一點幫助,共同進步!!!

參考資料
[1]王道408教材(2025版)
[2]王道課程資料

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15573.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15573.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15573.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器人正逆運動學、動力學概念

1.基本概念 建立機器人的正逆運動學和正逆動力學模型是為了解決不同類型的控制和規劃問題。這些模型幫助工程師和研究人員理解和預測機器人的行為,從而設計出更有效的控制策略和運動規劃。以下是建立這些模型的主要原因和一些應用實例: 正運動學模型 正…

python-pytorch 下批量seq2seq+Bahdanau Attention實現問答1.0.000

python-pytorch 下批量seq2seq+Bahdanau Attention實現簡單問答1.0.000 前言原理看圖數據準備分詞、index2word、word2index、vocab_size輸入模型的數據構造注意力模型decoder的編寫關于損失函數和優化器在預測時完整代碼參考前言 前面實現了 luong的dot 、general、concat注意…

【話題】我眼神的IT行業現狀與未來趨勢

目錄 一、挑戰 教學資源的重新分配 教師角色的轉變 學生學習方式的改變 教育評價體系的挑戰 二、機遇 個性化學習 跨學科學習 國際合作與交流 創新教育模式 三、如何培養下一代IT專業人才 更新教育理念 加強基礎設施建設 整合課程資源 加強實踐教學 培養跨學科…

easy-es EsAutoConfiguration RestHighLevelClient 沒有自動注入配置

我用的easy-es.version 是 2.0.0-beta1,是基于springboot2開發的,自動注入配置的目錄掃描的是META-INF/spring.factories文件;而我使用的框架是springboot3,springboot3掃描的是META-INF/spring/org.springframework.boot.autocon…

【算法刷題day57】Leetcode:739. 每日溫度、496.下一個更大元素 I

文章目錄 Leetcode 739. 每日溫度解題思路代碼總結 Leetcode 496.下一個更大元素 I解題思路代碼總結 草稿圖網站 java的Deque Leetcode 739. 每日溫度 題目:739. 每日溫度 解析:代碼隨想錄解析 解題思路 維護一個單調棧,當新元素大于棧頂&a…

【Linux】TCP協議【中】{確認應答機制/超時重傳機制/連接管理機制}

文章目錄 1.確認應答機制2.超時重傳機制:超時不一定是真超時了3.連接管理機制 1.確認應答機制 TCP協議中的確認應答機制是確保數據可靠傳輸的關鍵部分。以下是該機制的主要步驟和特點的詳細解釋: 數據分段與發送: 發送方將要發送的數據分成一…

vue深度選擇器(:deep?)

處于 scoped 樣式中的選擇器如果想要做更“深度”的選擇&#xff0c;也即&#xff1a;影響到子組件&#xff0c;可以使用 :deep() 這個偽類&#xff1a; <style lang"scss" scoped> .evaluation-situation-details :deep .cl-icon-arrow-right {display: none…

【Python 對接QQ的接口(二)】簡單用接口查詢【等級/昵稱/頭像/Q齡/當天在線時長/下一個等級升級需多少天】

文章日期&#xff1a;2024.05.25 使用工具&#xff1a;Python 類型&#xff1a;QQ接口 文章全程已做去敏處理&#xff01;&#xff01;&#xff01; 【需要做的可聯系我】 AES解密處理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 標準算法&#xff09;&…

JS根據所選ID數組在源數據中取出對象

let selectIds [1, 3] // 選中id數組let allData [{ id: 1, name: 123 },{ id: 2, name: 234 },{ id: 3, name: 345 },{ id: 4, name: 456 },] // 源數據let newList [] // 最終數據selectIds.map((i) > {allData.filter((item) > {item.id i && newList.pus…

websocket的壓縮和wireshark如何解碼tls

1. websocket的壓縮 見Compression EXPERIMENTAL那一節。 官方文檔&#xff1a;gorilla/websocket 2. 如何wireshark如何解碼tls 下文中代碼中去掉sudo。正常執行 Mac電腦安裝配置Wireshark 抓包工具&#xff0c;解決Https無法抓包問題_mac winshark抓不到-CSDN博客 如果…

aws sqs基礎概念和隊列參數解析

分布式隊列的組成部分 生產者&#xff0c;向隊列發送消息的組件消費者&#xff0c;接受隊列消息隊列&#xff0c;多個sqs服務器存儲冗余存儲消息 sqs自動刪除超過最大留存時間的消息&#xff08;默認4天&#xff09;&#xff0c;可以通過SetQueueAttributes調整為&#xff08…

【408真題】2009-13

“接”是針對題目進行必要的分析&#xff0c;比較簡略&#xff1b; “化”是對題目中所涉及到的知識點進行詳細解釋&#xff1b; “發”是對此題型的解題套路總結&#xff0c;并結合歷年真題或者典型例題進行運用。 涉及到的知識全部來源于王道各科教材&#xff08;2025版&…

JMH 微基準測試(性能測試)

寫本文主要是簡單記錄一下JMH的使用方式。JMH全名是Java Microbenchmark Harness&#xff0c;主要為在jvm上運行的程序進行基準測試的工具。作為一個開發人員&#xff0c;在重構代碼&#xff0c;或者確認功能的性能時&#xff0c;可以選中這個工具。 本文場景&#xff1a;代碼重…

VBA即用型代碼手冊:刪除Excel中空白行Delete Blank Rows in Excel

我給VBA下的定義&#xff1a;VBA是個人小型自動化處理的有效工具。可以大大提高自己的勞動效率&#xff0c;而且可以提高數據的準確性。我這里專注VBA,將我多年的經驗匯集在VBA系列九套教程中。 作為我的學員要利用我的積木編程思想&#xff0c;積木編程最重要的是積木如何搭建…

IDEA中好用的插件

IDEA中好用的插件 CodeGeeXMybatis Smart Code Help ProAlibaba Java Coding Guidelines?(XenoAmess TPM)?通義靈碼常用操作 TranslationStatistic CodeGeeX 官網地址&#xff1a;https://codegeex.cn/ 使用手冊&#xff1a;https://zhipu-ai.feishu.cn/wiki/CuvxwUDDqiErQU…

Android 自定義圖片進度條

用系統的Progressbar&#xff0c;設置圖片drawable作為進度條會出現圖片長度不好控制&#xff0c;容易被截斷&#xff0c;或者變形的問題。而我有個需求&#xff0c;使用圖片背景&#xff0c;和圖片進度&#xff0c;而且在進度條頭部有個閃光點效果。 如下圖&#xff1a; 找了…

速盾:流量攻擊防護DDOS有哪幾種有效的防御措施?

DDoS&#xff08;分布式拒絕服務&#xff09;攻擊是一種網絡攻擊方式&#xff0c;攻擊者通過向目標服務器發送大量的請求&#xff0c;超出其處理能力&#xff0c;導致服務器無法正常運行&#xff0c;從而使服務中斷或降級。為了保護網絡安全&#xff0c;減少DDoS攻擊對網站和服…

Kafka(十三)監控與告警

目錄 Kafka監控與告警1 解決方案1.2 基礎知識JMX監控指標代理查看KafkaJMX遠程端口 1.3 真實案例Kafka Exporter:PromethusPromethus Alert ManagerGrafana 1.3 實際操作部署監控和告警系統1.2.1 部署Kafka Exporter1.2.2 部署Prometheus1.2.3 部署AlertManger1.2.4 添加告警規…

大疆上云API本地部署與飛機上云

文章目錄 前言一、安裝基礎環境1. EMQX 安裝(版本4.4.0)2. MySql 安裝(版本8.0.26)3. Redis 安裝 二、部署后端&#xff08;JDK必須11及以上&#xff09;三、部署前端四、成為大疆開發者五、飛機注冊上云六、綁定飛機七、無人機狀態查看八、直播流查看 前言 大疆上云API官方文…

HarmonyOS鴻蒙應用開發——ArkTS的“內置組件 + 樣式 + 循環和條件渲染”

一、內置組件是咩&#xff1f; 學過前端的都知道&#xff0c;一個組件就是由多個組件組成的&#xff0c;一個組件也可以是多個小組件組成的&#xff0c;組件就是一些什么導航欄、底部、按鈕......啥的&#xff0c;但是組件分為【自定義組件】跟【內置組件】 【自定義組件】就…