在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

寄存器比內(nèi)存快的原理是什么?

Linux閱碼場 ? 來源:未知 ? 作者:胡薇 ? 2018-08-02 16:17 ? 次閱讀

計算機(jī)的存儲層次(memory hierarchy)之中,寄存器(register)最快,內(nèi)存其次,最慢的是硬盤。

同樣都是晶體管存儲設(shè)備,為什么寄存器比內(nèi)存快呢?

Mike Ash寫了一篇很好的解釋,非常通俗地回答了這個問題,有助于加深對硬件的理解。下面就是我的簡單翻譯。

原因一:距離不同

距離不是主要因素,但是最好懂,所以放在最前面說。內(nèi)存離CPU比較遠(yuǎn),所以要耗費(fèi)更長的時間讀取。

以3GHz的CPU為例,電流每秒鐘可以振蕩30億次,每次耗時大約為0.33納秒。光在1納秒的時間內(nèi),可以前進(jìn)30厘米。也就是說,在CPU的一個時鐘周期內(nèi)(0.33納秒),光可以前進(jìn)10厘米。

濤聲依舊注:每次震蕩的耗時也就是CPU的時鐘周期,時鐘周期為震蕩頻率的倒數(shù)。

因此,如果內(nèi)存距離CPU超過5厘米,就不可能在一個時鐘周期內(nèi)完成數(shù)據(jù)的讀取,這還沒有考慮硬件的限制和電流實(shí)際上達(dá)不到光速。相比之下,寄存器在CPU內(nèi)部,當(dāng)然讀起來會快一點(diǎn)。

距離對于桌面電腦影響很大,對于手機(jī)影響就要小得多。手機(jī)CPU的時鐘頻率比較慢(iPhone 5s為1.3GHz),而且手機(jī)的內(nèi)存緊挨著CPU。

原因二:硬件設(shè)計不同

蘋果公司新推出的iPhone 5s,CPU是A7,寄存器有6000多位(31個64位寄存器,加上32個128位寄存器)。而iPhone 5s的內(nèi)存是1GB,約為80億位(bit)。

這意味著,高性能、高成本、高耗電的設(shè)計可以用在寄存器上,反正只有6000多位,而不能用在內(nèi)存上。因?yàn)槊總€位的成本和能耗只要增加一點(diǎn)點(diǎn),就會被放大80億倍。

事實(shí)上確實(shí)如此,內(nèi)存的設(shè)計相對簡單,每個位就是一個電容和一個晶體管,而寄存器的設(shè)計則完全不同,多出好幾個電子元件。

并且通電以后,寄存器的晶體管一直有電,而內(nèi)存的晶體管只有用到的才有電,沒用到的就沒電,這樣有利于省電。

這些設(shè)計上的因素,決定了寄存器比內(nèi)存讀取速度更快。

原因三:工作方式不同

寄存器的工作方式很簡單,只有兩步:

(1)找到相關(guān)的位

(2)讀取這些位。

內(nèi)存的工作方式就要復(fù)雜得多:

1.找到數(shù)據(jù)的指針。(指針可能存放在寄存器內(nèi),所以這一步就已經(jīng)包括寄存器的全部工作了。)

2. 將指針?biāo)屯鶅?nèi)存管理單元(MMU),由MMU將虛擬的內(nèi)存地址翻譯成實(shí)際的物理地址。

3. 將物理地址送往內(nèi)存控制器(memory controller),由內(nèi)存控制器找出該地址在哪一根內(nèi)存插槽(bank)上。

4.確定數(shù)據(jù)在哪一個內(nèi)存塊(chunk)上,從該塊讀取數(shù)據(jù)。

5. 數(shù)據(jù)先送回內(nèi)存控制器,再送回CPU,然后開始使用。

內(nèi)存的工作流程比寄存器多出許多步。每一步都會產(chǎn)生延遲,累積起來就使得內(nèi)存比寄存器慢得多。

為了緩解寄存器與內(nèi)存之間的巨大速度差異,硬件設(shè)計師做出了許多努力,包括在CPU內(nèi)部設(shè)置緩存、優(yōu)化CPU工作方式,盡量一次性從內(nèi)存讀取指令所要用到的全部數(shù)據(jù)等等。

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

    關(guān)注

    31

    文章

    5355

    瀏覽量

    120531
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3030

    瀏覽量

    74104

原文標(biāo)題:為什么寄存器比內(nèi)存快?

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    為什么寄存器的速度內(nèi)存

    `在看C專家編程的時候, 上面有一幅圖,整理的是內(nèi)存媒介的速度,與成本的關(guān)系說明, 這里我在網(wǎng)上找了一張說明更為細(xì)致的圖:那為什么寄存器的速度會比內(nèi)存?Mike Ash寫了一篇很好的
    發(fā)表于 12-27 10:19

    閃存存儲寄存器嗎?_寄存器和存儲的區(qū)別

    寄存器)、成本高,它用名字來標(biāo)識(如AX、BX等),沒有地址;;存儲在CPU的外部,它的訪問速度寄存器慢,容量大(20根地址線尋址1M內(nèi)存
    發(fā)表于 10-11 17:12 ?1.2w次閱讀

    寄存器Load/Store內(nèi)存訪問指令

    5.4 多寄存器Load/Store內(nèi)存訪問指令 多寄存器Load/Store內(nèi)存訪問指令也叫批量加載/存儲指令,它可以實(shí)現(xiàn)在一組寄存器和一
    發(fā)表于 10-18 15:56 ?1次下載

    為什么寄存器內(nèi)存_原因是這個

    本文開始介紹了寄存器特點(diǎn)、分類以及寄存器的工作原理,其次介紹了內(nèi)存的容量、大小與選購方法,最后闡述了寄存器
    發(fā)表于 04-11 09:09 ?7104次閱讀
    為什么<b class='flag-5'>寄存器</b><b class='flag-5'>比</b><b class='flag-5'>內(nèi)存</b><b class='flag-5'>快</b>_原因是這個

    逆向基礎(chǔ)之寄存器內(nèi)存詳解

    本文主要介紹的是逆向基礎(chǔ)的寄存器內(nèi)存方面的信息,首先介紹的是逆向主要是做什么的,其次對編程和機(jī)器架構(gòu)做了個簡介,最后詳細(xì)的闡述了逆向基礎(chǔ)的寄存器內(nèi)存
    發(fā)表于 04-26 09:52 ?2992次閱讀

    RFM反射內(nèi)存5565控制和狀態(tài)寄存器

    3.3 RFM反射內(nèi)存控制和狀態(tài)寄存器 內(nèi)存訪問周期RFM5565 反射內(nèi)存控制和狀態(tài)寄存器,偏移值存儲在基址
    發(fā)表于 08-13 07:58 ?1269次閱讀

    寄存器變量

    C語言中使用關(guān)鍵字register來聲明局部變量為寄存器變量。寄存器變量的值會被存放在CPU的寄存器中,每當(dāng)需要使用它們時,CPU就可以直接使用,而無須再通過控制
    發(fā)表于 06-03 10:13 ?2388次閱讀

    寄存器變量定義

     寄存器變量和普通變量比起來速度上的差異很大,畢竟CPU的速度遠(yuǎn)遠(yuǎn)大于內(nèi)存的速度。寄存器有這么兩個特點(diǎn),一個是運(yùn)算速度,一個是不能取地址。
    發(fā)表于 06-03 10:40 ?4053次閱讀

    計算機(jī)中內(nèi)存、cache和寄存器之間的關(guān)系

    CPU、內(nèi)存寄存器之間的關(guān)系cpu 取址 -》地址輸入地址寄存器 -》 緩存命中即,則數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器 -》 緩存未命中則進(jìn)入內(nèi)存 -》
    發(fā)表于 07-22 09:19 ?5711次閱讀
    計算機(jī)中<b class='flag-5'>內(nèi)存</b>、cache和<b class='flag-5'>寄存器</b>之間的關(guān)系

    寄存器內(nèi)存的區(qū)別

    寄存器是中央處理內(nèi)的組成部份。它跟CPU有關(guān)。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。在中央處理的控制部件中,包含的
    發(fā)表于 12-31 16:57 ?1w次閱讀

    CS,IP和PC寄存器

    CS寄存器和IP寄存器:首先強(qiáng)調(diào)一下,這兩個寄存器非常非常重要,CS的全拼為“Code segment”,即代碼段寄存器,對應(yīng)于內(nèi)存中的存放
    發(fā)表于 12-17 18:31 ?2次下載
    CS,IP和PC<b class='flag-5'>寄存器</b>

    CPU、寄存器內(nèi)存單元的物理結(jié)構(gòu)

    這個問題應(yīng)該從cpu、寄存器內(nèi)存單元的物理結(jié)構(gòu)來看。
    的頭像 發(fā)表于 09-05 11:17 ?4296次閱讀

    訪問CXL 2.0設(shè)備中的內(nèi)存映射寄存器

    計算快速鏈接 (CXL) 1.1 和 CXL 2.0 規(guī)范在內(nèi)存映射寄存器的放置和訪問方式上有所不同。CXL 1.1 規(guī)范將內(nèi)存映射寄存器放置在 RCRB(根復(fù)合
    的頭像 發(fā)表于 05-25 16:56 ?2025次閱讀
    訪問CXL 2.0設(shè)備中的<b class='flag-5'>內(nèi)存</b>映射<b class='flag-5'>寄存器</b>

    寄存器內(nèi)存的區(qū)別

    在計算機(jī)體系結(jié)構(gòu)中,寄存器內(nèi)存是兩個至關(guān)重要的組成部分。它們各自承擔(dān)著不同的角色,共同確保計算機(jī)系統(tǒng)的正常運(yùn)行。本文將對寄存器內(nèi)存進(jìn)行詳細(xì)的介紹,包括它們的定義、功能以及二者之間的
    的頭像 發(fā)表于 05-12 17:11 ?2335次閱讀

    寄存器分為基本寄存器和什么兩種

    ,它們用于存儲指令、數(shù)據(jù)和地址等信息。基本寄存器的容量通常較小,但訪問速度非常,因?yàn)樗鼈兣cCPU的執(zhí)行單元緊密相連。 基本寄存器的分類 基本寄存器可以分為以下幾類: (1)通用
    的頭像 發(fā)表于 07-12 10:31 ?1435次閱讀
    主站蜘蛛池模板: 天堂bt| 欧美一级三级在线观看| 黄 在线| h网站在线免费观看| se97se成人亚洲网站在线观看| 免费黄色大片视频| 一区二区三区视频| 国产性大片黄在线观看在线放 | 久久国产色| 黄色小视频免费看| 女人69xxx| 亚洲理论片在线观看| 国产一二精品| 在线播放免费人成毛片乱码| 啪啪午夜免费| 婷婷性| 在线三级网址| 四虎最新网址| 女人被免费网站视频在线| 韩国三级床戏合集| 亚洲国产精品久久网午夜| 久久久精品午夜免费不卡| 欧美另类69| 99久久成人国产精品免费| 性生生活三级视频在线观看| 日本媚薬痉挛在线观看免费| 国产一级做a爰片久久毛片男| 越南黄色录像| 精品卡一卡二 卡四卡视频| 国产亚洲婷婷香蕉久久精品| www.黄色一片| 久久精品国产福利| 亚洲网站免费| 特黄三级| 国产亚洲精品线观看77| 思思久久好好热精品国产| 黄色 在线| 性欧美video视频另类| 久久偷窥视频| 羞羞答答xxdd影院欧美| tdg58在线观看|