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

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

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

為什么單片機(jī)內(nèi)部的RAM這么少?

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-10-30 11:38 ? 次閱讀

也許大家都注意到了,在過去的 20 多年的時間里,微控制器MCU)經(jīng)歷了跨越式的發(fā)展,這反映在很多方面,比如更高的系統(tǒng)時鐘、更多的外設(shè)模塊、更加便利的調(diào)試手段、32 位的內(nèi)核等等。但 MCU 內(nèi)部的數(shù)據(jù)內(nèi)存空間則始終在十幾 K(16~32KB)的左右徘徊,雖然有些基于 Cortex M4 核單片機(jī)有多達(dá) 265kB RAM 的型號,但是在眾多單片機(jī)型號陣列中,它們是寥寥無幾。

那么,究竟什么原因使得單片機(jī)很容易擁有多達(dá)數(shù) MB 的程序 Flash 空間,而數(shù)據(jù)內(nèi)存只有那么小呢?

△ 小型封裝的 MCU

在所有影響單片機(jī)內(nèi) RAM 增加的原因中,一個基礎(chǔ)的問題就是 RAM 會占用很多硅片面積,這也會直接引起芯片價格的增加。這是因為在同樣的硅片上,占用硅片面積大會使得 MCU 數(shù)量就會減少,特別是在晶圓片的邊界部分造成更大的浪費(fèi)。禍不單行,面積大的 IC 也更會產(chǎn)生缺陷,使得成品率下降。

第二個原因就是制作 RAM 的工序復(fù)雜。可以通過不同手段優(yōu)化 RAM 生產(chǎn)工藝,但在制作 MCU 過程中, 同一芯片不可能經(jīng)歷過多的工序。有一些芯片加工服務(wù)廠商專門生產(chǎn) DRAM,這是利用特殊的半導(dǎo)體電容技術(shù)來極大減少 RAM 所占用的硅片面積。但 DRAM 需要通過不停刷新來維持其內(nèi)部數(shù)據(jù)。為了延遲 DRAM 單元保持?jǐn)?shù)據(jù)的能力,就要求晶體管漏電流小,這也會造成晶體管的運(yùn)行速度降低。這需要在速度和數(shù)量之間做折中,但這種折中工藝不利于制作高速邏輯電路。

△ IC 和晶片

此外,大容量 RAM 電路在后期的測試階段也會消耗大量的時間,從而增加生產(chǎn)的時間成本。所以,經(jīng)濟(jì)原因造成生產(chǎn) RAM 的專門廠商興起。

功耗是另外一個限制因素。單片機(jī)系統(tǒng)通常對功耗有限制,很多情況下,單片機(jī)通過進(jìn)入睡眠狀態(tài)來減少耗電量。普通的 SRAM 耗電量很小,通過備用電池往往可以工作很多年。但 DRAM 則需要通過不斷刷新來維持存儲的數(shù)據(jù)。一旦停止刷新,由于漏電流的存在,DRAM 的內(nèi)容在不到一秒鐘的時間內(nèi)就會消失。所以,單片機(jī)中不能夠使用 DRAM 而只能使用占用硅片面積更大的 SRAM。

在現(xiàn)代 CPU 技術(shù)中,往往在新品中保留數(shù)量較少的 SRAM 作為緩存(Cache),而將大容量的 DRAM 作為 CPU 外部的數(shù)據(jù)存儲空間。

有一些非常酷的手段可以將不同生產(chǎn)工藝的 RAM 和 MCU 制作工藝融合在一起,例如多芯片封裝技術(shù)(Multi-Chip Package),將 RAM 新品放在 MCU 芯片上面堆疊一起進(jìn)行封裝,這比在電路板上將 RAM 與 MCU 集成更加節(jié)省系統(tǒng)體積,也提高數(shù)據(jù)傳輸速率。

AMD 的帶有堆疊封裝的 MCU

最后一個原因,那就是在絕大多數(shù)單片機(jī)應(yīng)用的場合所需要的 RAM 的容量都比較少。比如在嵌入式控制領(lǐng)域,很多很多傳感器信息都可以用極少字節(jié)的數(shù)據(jù)來表示,用于控制的參數(shù)和控制邏輯占用數(shù)據(jù)空間也很少。

所以當(dāng)需要大量 RAM 的應(yīng)用出現(xiàn)的時候,往往就會直接采用集成有大容量 DRAM 的電路板來工作。通過外部集成大容量 RAM 芯片要遠(yuǎn)比 MCU 內(nèi)部集成的 RAM 更加經(jīng)濟(jì)。

除了前面的原因之外,單片機(jī)指令集也會限制 RAM 訪問空間。比如 Microchip 公司的單片機(jī),PIC10LF320,是 12bit 的指令,它只能夠范圍 128 字節(jié)的 RAM 空間。對于 8031 單片機(jī),直接尋址的 RAM 空間也只有 128 字節(jié)。如果訪問更大的外部存儲空間,則需要借助于執(zhí)行效率更低的間接指令。

單片機(jī)總線結(jié)構(gòu)分為 Harvard 結(jié)構(gòu)和 Von Neumann 結(jié)構(gòu),后者中,程序和數(shù)據(jù)存儲空間是在同一個訪問空間中。如果單片機(jī)中集成了大量的 Flash 區(qū),那么留給數(shù)據(jù) RAM 空間訪問地址就少了。

此外,高效的 C 語言編譯器,可以有效重復(fù)應(yīng)用有限的 RAM 空間完成所需要的任務(wù)。在復(fù)雜的應(yīng)用中,往往會采用多個單片機(jī)協(xié)同完成,這大大提高系統(tǒng)實時特性。巧妙的設(shè)計方案會避免嵌入式系統(tǒng)對大容量 RAM 的需求。所以,有人認(rèn)為,正是由于沒有大量需要高 RAM 容量的應(yīng)用要求,是造成現(xiàn)在單片機(jī)內(nèi)部 RAM 少的真正原因。

別忘了,早期那些令我們著迷的電子游戲,雖然有著炫酷的圖形界面,但它們連程序帶數(shù)據(jù)總共也只有 8k 字節(jié)的存儲空間,比如吃豆子游戲,太空入侵游戲等。讓我們向早期的這些極簡風(fēng)格嵌入式編程人員致敬吧。

參考資料

[1]Why do microcontrollers have so little RAM?

審核編輯 黃昊宇

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

    關(guān)注

    6039

    文章

    44575

    瀏覽量

    636373
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1369

    瀏覽量

    114765
收藏 人收藏

    評論

    相關(guān)推薦

    計算機(jī)主機(jī)內(nèi)部結(jié)構(gòu)

    計算機(jī)主機(jī)的內(nèi)部結(jié)構(gòu)是一個復(fù)雜而精密的系統(tǒng),它包含了多個關(guān)鍵組件,這些組件協(xié)同工作以實現(xiàn)計算機(jī)的各種功能。以下是對計算機(jī)主機(jī)內(nèi)部結(jié)構(gòu)的詳細(xì)解析。
    的頭像 發(fā)表于 09-26 16:40 ?779次閱讀

    單片機(jī)io口怎么配置成輸出口

    單片機(jī)IO口配置成輸出口的過程通常涉及對單片機(jī)內(nèi)部寄存器的操作。不同型號的單片機(jī)在寄存器配置和編程方式上可能有所不同,但基本原理是相似的。以下是一個通用的步驟,用于將單片機(jī)IO口配置成
    的頭像 發(fā)表于 09-14 14:33 ?873次閱讀

    單片機(jī)的三種總線結(jié)構(gòu)

    單片機(jī)的三種總線結(jié)構(gòu)包括地址總線(Address Bus, AB)、數(shù)據(jù)總線(Data Bus, DB)和控制總線(Control Bus, CB)。這三種總線在單片機(jī)內(nèi)部及與外部設(shè)備之間的數(shù)據(jù)傳輸
    的頭像 發(fā)表于 09-10 11:32 ?3334次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的還能燒錄嗎

    的存儲器通常分為兩類:ROM(只讀存儲器)和RAM(隨機(jī)存取存儲器)。ROM用于存儲程序代碼,而RAM用于存儲程序運(yùn)行過程中的數(shù)據(jù)。燒錄過程就是將程序代碼寫入ROM中。 單片機(jī)燒錄方法 單片機(jī)
    的頭像 發(fā)表于 09-02 09:54 ?531次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序是單片機(jī)開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲器中,使單片機(jī)能夠按照預(yù)定的邏輯執(zhí)行任務(wù)。 一、硬件準(zhǔn)備
    的頭像 發(fā)表于 09-02 09:47 ?1160次閱讀

    簡述單片機(jī)定時器的工作原理

    單片機(jī)定時器的工作原理是一個復(fù)雜而精細(xì)的過程,它涉及到單片機(jī)內(nèi)部的多個組件和機(jī)制。
    的頭像 發(fā)表于 08-19 18:20 ?1502次閱讀

    聚徽觸控-工控機(jī)內(nèi)部結(jié)構(gòu)及作用

    工控機(jī)內(nèi)部結(jié)構(gòu)主要包括以下部分,每部分的作用如下:
    的頭像 發(fā)表于 07-11 09:50 ?327次閱讀
    聚徽觸控-工控<b class='flag-5'>機(jī)內(nèi)部</b>結(jié)構(gòu)及作用

    單片機(jī)內(nèi)存和程序大小有什么關(guān)系嗎?怎么選用不同內(nèi)存大小的單片機(jī)?

    單片機(jī)內(nèi)存和程序大小有什么關(guān)系嗎?怎么選用不同內(nèi)存大小的單片機(jī)?僅從成本考慮嗎?
    發(fā)表于 05-16 06:03

    STM8的內(nèi)部AD效果怎么樣?

    今天測了下單片機(jī)內(nèi)部AD,芯片是S103,感覺AD輸出波動好大啊,大概能有0.1V左右的上下跳變了,大家的都怎么樣?。?/div>
    發(fā)表于 05-15 07:34

    有沒有帶儀表放大器的單片機(jī)

    有沒有帶儀表放大器的單片機(jī),需要把信號放大1000倍或者單片機(jī)內(nèi)部帶有自定義倍數(shù)的PGA。
    發(fā)表于 03-25 11:37

    8-Bit 觸控式 Flash 單片機(jī)中文資料

    而又有效的實現(xiàn)方法。 觸摸按鍵功能完全集成于單片機(jī)內(nèi),使用較少的外部元件便可實現(xiàn)觸摸按鍵的 應(yīng)用。該系列單片機(jī)除了 Flash 程序存儲器,還包括 RAM 數(shù)據(jù)存儲器和用于存 儲串列數(shù)據(jù)、校準(zhǔn)數(shù)據(jù)等非易失性數(shù)據(jù)的 EEPROM
    發(fā)表于 02-28 10:01 ?4次下載

    單片機(jī)RAM不夠用怎么解決?

    來自一位用戶的咨詢,麻煩幫忙解答。越詳細(xì)越好,有圖有真相。如有相關(guān)的視頻、文檔也可以輔助說明,謝謝。 單片機(jī)RAM不夠用怎么辦? 單片機(jī)都有RAM,如果我們一下子定義了一大堆的變量,使
    發(fā)表于 02-02 07:35

    怎么根據(jù)外圍電路配置單片機(jī)gpio的時鐘

    的時鐘。 一、時鐘信號的基本原理 時鐘信號是單片機(jī)內(nèi)部各個模塊同步運(yùn)行的基礎(chǔ),是單片機(jī)操作和功能的支持。單片機(jī)通常有內(nèi)部時鐘源和外部時鐘源兩種形式。
    的頭像 發(fā)表于 01-31 10:57 ?1134次閱讀

    單片機(jī)內(nèi)部時鐘電路的工作原理

    單片機(jī)時鐘電路是一種用于產(chǎn)生穩(wěn)定時鐘信號的電路,它是單片機(jī)正常工作的基礎(chǔ),決定了單片機(jī)的運(yùn)行速度和性能。具體的設(shè)計和配置取決于單片機(jī)的型號和應(yīng)用需求。
    發(fā)表于 01-16 15:33 ?6518次閱讀
    <b class='flag-5'>單片機(jī)內(nèi)部</b>時鐘電路的工作原理

    單片機(jī)原理及應(yīng)用有哪些

    廣泛應(yīng)用于各個領(lǐng)域,如家電、汽車、通信、醫(yī)療等。 單片機(jī)的原理主要包括內(nèi)部結(jié)構(gòu)和工作原理。其內(nèi)部結(jié)構(gòu)通常包括CPU、存儲器、I/O接口和定時/計數(shù)器等模塊。CPU是單片機(jī)的核心,負(fù)責(zé)指
    的頭像 發(fā)表于 01-15 16:25 ?2015次閱讀