衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度剖析虛擬內(nèi)存

科技觀察員 ? 來(lái)源:allaboutcircuits ? 作者: 斯蒂芬·圣邁克爾 ? 2022-04-28 17:06 ? 次閱讀

本文將從高層次探討什么是虛擬內(nèi)存、它存在的原因以及它是如何工作的。

在之前的文章中,我們討論了CPU 緩存的好處。緩存是由于內(nèi)存訪問(wèn)速度和 CPU 處理能力之間的差異而發(fā)明的。通過(guò)使用硬件緩存,最近從主內(nèi)存加載的項(xiàng)目存儲(chǔ)在更小的內(nèi)存中,更靠近 CPU,以便在需要時(shí)可以快速檢索它們。因此,緩存解決了速度問(wèn)題。

但是容量呢?

在本文中,我們將了解什么是虛擬內(nèi)存以及它如何幫助解決 CPU 容量問(wèn)題。

內(nèi)存層次結(jié)構(gòu)

現(xiàn)代計(jì)算機(jī)系統(tǒng)可以同時(shí)運(yùn)行數(shù)十個(gè)甚至數(shù)百個(gè)不同的應(yīng)用程序。由于內(nèi)存是一種有限資源,隨著越來(lái)越多的應(yīng)用程序消耗它,性能可能會(huì)下降,甚至完全停止。這就是虛擬內(nèi)存的用武之地。圖 1 顯示了一個(gè)內(nèi)存層次結(jié)構(gòu),包括高速緩存、主內(nèi)存和虛擬內(nèi)存。

poYBAGJqWTGAZ5HWAAAd69G80zw354.jpg

圖 1. 內(nèi)存層次結(jié)構(gòu)

如圖 1 所示,虛擬內(nèi)存的存在是為了增加系統(tǒng)的內(nèi)存容量。這是通過(guò)將磁盤(pán)驅(qū)動(dòng)器的一部分作為“看起來(lái)”像主內(nèi)存的專(zhuān)用內(nèi)存塊分配給可能需要它的任何應(yīng)用程序來(lái)完成的。

為了防止磁盤(pán)訪問(wèn)降低速度性能,主內(nèi)存充當(dāng)虛擬內(nèi)存的完全關(guān)聯(lián)緩存,存儲(chǔ)最近訪問(wèn)的磁盤(pán)位置。因此,通過(guò)使用虛擬內(nèi)存,主內(nèi)存成為緩存層次結(jié)構(gòu)中的另一層。

雖然細(xì)節(jié)超出了本文的范圍,但應(yīng)該注意的是,虛擬內(nèi)存是通過(guò)計(jì)算機(jī)操作系統(tǒng)處理器的內(nèi)存管理單元 (MMU) 之間的交互來(lái)管理和控制的。

緩存與分頁(yè)

回想一下,高速緩存將物理內(nèi)存地址分解為多個(gè)字段。這樣做是為了識(shí)別存儲(chǔ)最近訪問(wèn)的數(shù)據(jù)的緩存條目。對(duì)于完全關(guān)聯(lián)的緩存,這些字段是緩存標(biāo)記和字節(jié)偏移。緩存條目由匹配的標(biāo)簽和包含數(shù)據(jù)的緩存塊組成。

如果沒(méi)有找到匹配的標(biāo)簽,這稱(chēng)為緩存未命中。

pYYBAGJqWTKABv6CAAAXNE9Z0qY727.jpg

圖 2. 緩存命名法

虛擬內(nèi)存的工作方式類(lèi)似,但使用虛擬地址的概念。

虛擬地址由虛擬頁(yè)號(hào)和頁(yè)偏移量組成。虛擬地址用于定位內(nèi)存中稱(chēng)為頁(yè)框的項(xiàng),通常大小為 4kB。

頁(yè)框包含頁(yè)框號(hào)和實(shí)際數(shù)據(jù),簡(jiǎn)稱(chēng)為頁(yè)。

頁(yè)偏移量用于訪問(wèn) 4kB 頁(yè)內(nèi)的單個(gè)字。如果虛擬地址不指向在物理內(nèi)存中找到的位置,則會(huì)發(fā)生頁(yè)面錯(cuò)誤,并且系統(tǒng)必須向磁盤(pán)驅(qū)動(dòng)器發(fā)出請(qǐng)求的數(shù)據(jù)。當(dāng)確實(shí)發(fā)生頁(yè)面錯(cuò)誤時(shí),磁盤(pán)上的頁(yè)面被移動(dòng)到內(nèi)存中的頁(yè)面框架。在主存和磁盤(pán)之間移動(dòng)頁(yè)面稱(chēng)為分頁(yè)(或交換)。

poYBAGJqWTOALMsGAAAeyj6z328352.jpg

圖 3. 分頁(yè)命名法

由于使用虛擬內(nèi)存來(lái)擴(kuò)展系統(tǒng)內(nèi)存的容量,因此需要一種既考慮磁盤(pán)上的位置又考慮主內(nèi)存中的位置的尋址方案。這就是虛擬地址的用武之地。

虛擬地址跨越磁盤(pán)驅(qū)動(dòng)器和主內(nèi)存,導(dǎo)致虛擬地址多于物理內(nèi)存地址。因此,在訪問(wèn)頁(yè)面中的數(shù)據(jù)之前,系統(tǒng)必須確定該數(shù)據(jù)是駐留在物理內(nèi)存還是虛擬內(nèi)存中。這是通過(guò)地址轉(zhuǎn)換完成的。

pYYBAGJqWTSABcN2AACBSuy04QE782.jpg

圖 4. 虛擬地址映射到虛擬和物理內(nèi)存

地址翻譯

如前所述,物理內(nèi)存充當(dāng)虛擬內(nèi)存的完全關(guān)聯(lián)緩存。回想一下,完全關(guān)聯(lián)的緩存是具有多個(gè)條目的單個(gè)集合。每個(gè)條目都與緩存標(biāo)記進(jìn)行比較以進(jìn)行匹配。由于頁(yè)面大小為 4kB,即使是小型虛擬內(nèi)存系統(tǒng)也需要數(shù)千個(gè)比較器電路。為了解決這個(gè)問(wèn)題,使用了頁(yè)表。

頁(yè)表

頁(yè)表是一種將虛擬頁(yè)號(hào)(虛擬地址的一部分)映射到頁(yè)框號(hào)的數(shù)據(jù)結(jié)構(gòu)。

頁(yè)表包含每個(gè)虛擬地址的條目以及表示該頁(yè)面是否在物理內(nèi)存中的有效位。如果頁(yè)表項(xiàng)有效,則將頁(yè)幀號(hào)與頁(yè)偏移量(虛擬地址的另一部分)結(jié)合起來(lái)構(gòu)建物理內(nèi)存地址,即所需數(shù)據(jù)在內(nèi)存中的存儲(chǔ)位置。圖 5 說(shuō)明了如何使用頁(yè)表將虛擬地址轉(zhuǎn)換為物理地址。

poYBAGJqWTWAYnlXAABY5Fg_APQ762.jpg

圖 5. 使用頁(yè)表進(jìn)行地址轉(zhuǎn)換

重要的是要記住,頁(yè)框號(hào)代表頁(yè)面的存儲(chǔ)位置,而物理地址代表頁(yè)面中單個(gè)字的位置。如果頁(yè)表項(xiàng)的有效位未設(shè)置,則虛擬地址必須映射到存儲(chǔ)在磁盤(pán)上的頁(yè)。

頁(yè)表本身與用于定位的頁(yè)一起存儲(chǔ)在主存中。因此,使用頁(yè)表,讀取或?qū)懭肴魏雾?yè)實(shí)際上需要兩次內(nèi)存訪問(wèn)。這似乎違反直覺(jué),如果不是翻譯后備緩沖區(qū)或 TLB,它會(huì)導(dǎo)致很大的性能損失。

翻譯后備緩沖區(qū)

由于頁(yè)面大小為 4kB,因此頁(yè)面內(nèi)的數(shù)據(jù)同時(shí)表現(xiàn)出時(shí)間和空間局部性。這使得頁(yè)表?xiàng)l目成為緩存的完美候選者。

轉(zhuǎn)換后備緩沖區(qū)或 TLB 是一個(gè)小型的完全關(guān)聯(lián)緩存,用于存儲(chǔ)最近訪問(wèn)的頁(yè)表?xiàng)l目。通過(guò)緩存最近使用的頁(yè)表?xiàng)l目,系統(tǒng)可以放棄多次查找頁(yè)表,從而避免兩次訪問(wèn)內(nèi)存的問(wèn)題。TLB 通常只包含幾百個(gè)條目,但它的命中率非常高(高達(dá) 99%)。

圖 6 顯示了一個(gè)具有四個(gè)條目的 TLB。

pYYBAGJqWTaAEDYsAAAvMV3X6bo685.jpg

圖 6. 實(shí)現(xiàn)為全關(guān)聯(lián)緩存的簡(jiǎn)化 TLB

結(jié)論

本文介紹了虛擬內(nèi)存的概念。虛擬內(nèi)存是用于擴(kuò)展系統(tǒng)容量的內(nèi)存系統(tǒng)的擴(kuò)展。

虛擬內(nèi)存還允許在應(yīng)用程序或進(jìn)程之間保護(hù)和隔離內(nèi)存。它由計(jì)算機(jī)的操作系統(tǒng)和處理器的 MMU 控制和管理。虛擬內(nèi)存通過(guò)分配一部分磁盤(pán)空間作為系統(tǒng)內(nèi)存的一部分來(lái)工作。

作為內(nèi)存層次結(jié)構(gòu)的擴(kuò)展,虛擬內(nèi)存已成為計(jì)算機(jī)整體架構(gòu)的基本組成部分。了解虛擬內(nèi)存可以增強(qiáng)您在日益復(fù)雜的世界中對(duì)計(jì)算機(jī)的理解。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3055

    瀏覽量

    74331
  • 虛擬內(nèi)存
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    8087
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何定義虛擬內(nèi)存

    本文將探討什么是虛擬內(nèi)存,它為什么存在,以及它如何工作。緩存的發(fā)明是因?yàn)?b class='flag-5'>內(nèi)存訪問(wèn)速度和 CPU 處理能力之間的差異。通過(guò)使用硬件緩存,最近從主存儲(chǔ)器加載的項(xiàng)目被存儲(chǔ)在一個(gè)更小的內(nèi)存中,更接近 CPU
    發(fā)表于 04-11 10:20

    虛擬內(nèi)存是什么_虛擬內(nèi)存有什么用

    虛擬內(nèi)存是計(jì)算機(jī)系統(tǒng)內(nèi)存管理的一種技術(shù)。它使得應(yīng)用程序認(rèn)為它擁有連續(xù)的可用的內(nèi)存(一個(gè)連續(xù)完整的地址空間),而實(shí)際上,它通常是被分隔成多個(gè)物理內(nèi)存碎片,還有部分暫時(shí)存儲(chǔ)在外部磁盤(pán)存儲(chǔ)器
    發(fā)表于 11-01 10:03 ?9759次閱讀
    <b class='flag-5'>虛擬內(nèi)存</b>是什么_<b class='flag-5'>虛擬內(nèi)存</b>有什么用

    簡(jiǎn)單剖析虛擬內(nèi)存與交換分區(qū)

    很多朋友會(huì)把虛擬內(nèi)存認(rèn)為就是交換分區(qū)。其實(shí),虛擬內(nèi)存并非真正存在的物理空間,它僅僅是一個(gè)虛擬的東西。
    的頭像 發(fā)表于 02-09 08:44 ?6348次閱讀

    虛擬內(nèi)存不足怎么解決

    電腦的虛擬內(nèi)存不足以后,很多功能就無(wú)法使用了,且會(huì)彈出如下所示的頁(yè)面。這就說(shuō)明虛擬內(nèi)存無(wú)法滿足我們的使用需求,就需要咱們對(duì)電腦的虛擬內(nèi)存進(jìn)行重新設(shè)置。那么如何設(shè)置呢?請(qǐng)看下文。
    的頭像 發(fā)表于 03-14 14:29 ?1.4w次閱讀

    虛擬內(nèi)存設(shè)置多少合適

    虛擬內(nèi)存是一種電腦內(nèi)存管理的一種技術(shù),虛擬內(nèi)存通常用到的地方是玩大型游戲和使用較大的處理軟件時(shí)候虛擬內(nèi)存才能起到作用,下面小編就給大家介紹悉尼內(nèi)存
    的頭像 發(fā)表于 03-14 14:48 ?4.3w次閱讀

    虛擬內(nèi)存是什么意思

    虛擬內(nèi)存是計(jì)算機(jī)系統(tǒng)內(nèi)存管理的一種技術(shù)。它使得應(yīng)用程序認(rèn)為它擁有連續(xù)的可用的內(nèi)存(一個(gè)連續(xù)完整的地址空間),而實(shí)際上,它通常是被分隔成多個(gè)物理內(nèi)存碎片,還有部分暫時(shí)存儲(chǔ)在外部磁盤(pán)存儲(chǔ)器
    的頭像 發(fā)表于 03-14 14:50 ?7614次閱讀

    虛擬內(nèi)存怎么設(shè)置_虛擬內(nèi)存注意事項(xiàng)

    虛擬內(nèi)存是什么呢?虛擬內(nèi)存,它只是相對(duì)于我們平時(shí)用的內(nèi)存而說(shuō)的,就比如如果系統(tǒng)的物理內(nèi)存的空間是處于入不敷出的狀態(tài)的時(shí)候,電腦的操作系統(tǒng)此時(shí)就會(huì)在硬盤(pán)上開(kāi)辟出來(lái)一塊磁盤(pán)空間,并且將其當(dāng)
    發(fā)表于 06-11 10:45 ?2147次閱讀

    虛擬內(nèi)存的概念與設(shè)置方法

    相信許多小伙伴們?cè)谑褂秒娔X的時(shí)候都會(huì)遇到虛擬內(nèi)存不足的提示,那小伙伴們是否知道什么叫做虛擬內(nèi)存。今天小編就來(lái)為小伙伴們介紹一下虛擬內(nèi)存的作用以及教大家如何去設(shè)置虛擬內(nèi)存的容量,希望對(duì)小
    發(fā)表于 06-12 10:38 ?1669次閱讀

    虛擬內(nèi)存低如何解決

    現(xiàn)在計(jì)算機(jī)的使用頻率相當(dāng)高,在我們使用計(jì)算機(jī)的時(shí)候有時(shí)候就會(huì)出現(xiàn)虛擬內(nèi)存低的情況,這時(shí)候我們就不知道該怎么辦了?我們都知道虛擬內(nèi)存的設(shè)置一般都是默認(rèn)的,是由系統(tǒng)管理的大小,如果虛線虛擬內(nèi)存低我們需要做的就是對(duì)
    發(fā)表于 06-13 10:36 ?1212次閱讀

    進(jìn)程虛擬內(nèi)存布局以及進(jìn)程的虛擬內(nèi)存分配釋放流程,涉及的代碼

    我們計(jì)劃通過(guò)一系列文章來(lái)介紹虛擬內(nèi)存分配/釋放,缺頁(yè)處理,內(nèi)存壓縮/回收,內(nèi)存分配器等知識(shí),梳理虛擬內(nèi)存的管理。本章節(jié)結(jié)合代碼介紹進(jìn)程虛擬內(nèi)存
    的頭像 發(fā)表于 06-28 09:38 ?4207次閱讀

    虛擬內(nèi)存的作用和原理 如何調(diào)整虛擬內(nèi)存設(shè)置

    虛擬內(nèi)存,也稱(chēng)為虛擬內(nèi)存管理或頁(yè)面文件,是計(jì)算機(jī)操作系統(tǒng)中的一種內(nèi)存管理技術(shù)。它允許系統(tǒng)使用硬盤(pán)空間作為額外的RAM(隨機(jī)存取存儲(chǔ)器),以彌補(bǔ)物理內(nèi)存(RAM)的不足。
    的頭像 發(fā)表于 12-04 09:13 ?781次閱讀

    虛擬內(nèi)存不足如何解決 虛擬內(nèi)存和物理內(nèi)存的區(qū)別

    虛擬內(nèi)存不足的解決方案 虛擬內(nèi)存不足是計(jì)算機(jī)用戶(hù)經(jīng)常遇到的問(wèn)題,尤其是在運(yùn)行大型軟件或多任務(wù)處理時(shí)。以下是一些解決虛擬內(nèi)存不足問(wèn)題的方法: 增加物理內(nèi)存(RAM) : 這是最直接的解決
    的頭像 發(fā)表于 12-04 09:14 ?576次閱讀

    什么是虛擬內(nèi)存分頁(yè) Windows系統(tǒng)虛擬內(nèi)存優(yōu)化方法

    虛擬內(nèi)存分頁(yè)概述 在Windows操作系統(tǒng)中,虛擬內(nèi)存是通過(guò)分頁(yè)機(jī)制實(shí)現(xiàn)的。分頁(yè)允許系統(tǒng)將內(nèi)存中的數(shù)據(jù)移動(dòng)到硬盤(pán)上,以便為當(dāng)前運(yùn)行的程序騰出空間。這個(gè)過(guò)程對(duì)于保持系統(tǒng)的流暢運(yùn)行至關(guān)重要,尤其是在物理
    的頭像 發(fā)表于 12-04 09:16 ?589次閱讀

    Linux下如何管理虛擬內(nèi)存 使用虛擬內(nèi)存時(shí)的常見(jiàn)問(wèn)題

    在Linux系統(tǒng)中,虛擬內(nèi)存管理是操作系統(tǒng)內(nèi)核的一個(gè)重要功能,負(fù)責(zé)管理物理內(nèi)存和磁盤(pán)上的交換空間。以下是對(duì)Linux下如何管理虛擬內(nèi)存以及使用虛擬內(nèi)存時(shí)常見(jiàn)問(wèn)題的介紹: Linux下如
    的頭像 發(fā)表于 12-04 09:19 ?631次閱讀

    虛擬內(nèi)存溢出該怎么處理 虛擬內(nèi)存在服務(wù)器中的應(yīng)用

    在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,虛擬內(nèi)存是一種重要的資源管理技術(shù),它允許系統(tǒng)使用硬盤(pán)空間來(lái)擴(kuò)展物理內(nèi)存的容量。然而,當(dāng)系統(tǒng)運(yùn)行的程序和進(jìn)程超出了物理內(nèi)存虛擬內(nèi)存的總?cè)萘繒r(shí),就會(huì)出現(xiàn)
    的頭像 發(fā)表于 12-04 09:49 ?278次閱讀
    百家乐稳中一注法| 百家乐官网投注网址| 沙龙百家乐娱乐场开户注册| 百家乐官网游戏技巧| 大发888xp缺少casino| 百家乐博彩| 巴特百家乐的玩法技巧和规则| 百家乐官网有没有单机版的| 网上梭哈| 网络百家乐证据| 银河百家乐官网的玩法技巧和规则| 同乐城娱乐城| 手机百家乐能兑换现金棋牌游戏| 百家乐官网平客户端| 大发888备用地址| 女优百家乐官网的玩法技巧和规则 | 百家乐统计软件| 百家乐平台开发| 百家乐官网输钱的原因| 十六浦娱乐| 全讯网bbin888.com| 娱乐城百家乐怎么样| 娱乐城百家乐官网送白菜| 国外合法赌博网站| 百家乐庄闲桌| 百家乐游戏玩法技巧| 电脑百家乐官网玩| 百家乐官网做中介赚钱| 澳门博彩网站| 百家乐平注秘籍| 百家乐路单破解器| 索罗门百家乐官网的玩法技巧和规则 | 金界百家乐官网的玩法技巧和规则 | 百家乐官网博赌场| 百家乐官网方法技巧| bet365备用| 大发888娱乐城 健账号| 百家乐园选百利宫| 做生意的十大风水禁忌| 百家乐官网制胜法宝| 太阳城百家乐官网的破解|