應(yīng)該有可以回答的上來(lái)的,但是大部分應(yīng)該是回答不上來(lái)。標(biāo)題的回答也不對(duì)。
計(jì)算機(jī)內(nèi)存里面分這么幾種數(shù)據(jù)
存在SRAM里面,嗯??jī)?nèi)存?對(duì)也不對(duì),大家覺(jué)得內(nèi)存條應(yīng)該很快了吧?不,不快。
我的電腦里面有三種cache,可以看到L1最小,L3最快
大小
量相差很大
這是我自己電腦的實(shí)測(cè),最慢的反而是內(nèi)存,算完是58.49G/s,L1居然到了2K G這個(gè)速度,L3是內(nèi)存的大概3倍多。看時(shí)間L1和內(nèi)存的時(shí)間是100倍。
就先記住:FLASH用來(lái)存儲(chǔ)程序的,SRAM是用來(lái)存儲(chǔ)運(yùn)行程序中的中間變量。
然后SRAM有個(gè)別的名字叫緩存,這聽懂了吧?
SRAM是靜態(tài)隨機(jī)存取存儲(chǔ)器。它是一種具有靜止存取功能的內(nèi)存,不需要刷新電路即能保存它內(nèi)部存儲(chǔ)的數(shù)據(jù)。
RAM掉電數(shù)據(jù)會(huì)丟失,RW-data是非0初始化的數(shù)據(jù),已初始化的數(shù)據(jù)需要被存儲(chǔ)在掉電不會(huì)丟失的FLASH中,上電后會(huì)從FLASH搬移到RAM中。
SRAM是訪問(wèn)時(shí)間短的片上存儲(chǔ)器,DRAM是訪問(wèn)時(shí)間長(zhǎng)的片外存儲(chǔ)器。因此SRAM 比DRAM 快。
DRAM 的存儲(chǔ)容量更大,而SRAM 的尺寸更小。SRAM很貴,而DRAM 很便宜。
DRAM簡(jiǎn)單,電容充電就是有1了
讀取的時(shí)候還得一個(gè)放大器讀取?
電容這玩意兒漏電啊,要不停的刷新,不然一會(huì)兒就沒(méi)電荷了
SRAM,是兩個(gè)與門一個(gè)RS觸發(fā)器,1bit的儲(chǔ)存確實(shí)很復(fù)雜
要保證上下輸入不一致,還得加一個(gè)二極管取反,這東西就是鎖存器了
可以看到應(yīng)該是有兩塊SDRAM
大概是這樣的
LPDDR4是新一代面向移動(dòng)設(shè)備的低功耗內(nèi)存,它屬于SDRAM家族的存儲(chǔ)器產(chǎn)品。
SDRAM是同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器的縮寫,而SRAM是同步隨機(jī)存取存儲(chǔ)器的縮寫。它們的最大區(qū)別在于,SDRAM必須被外部時(shí)鐘同步刷新,而SRAM則不需要刷新。 雖然SRAM速度更快,讀寫時(shí)間也更短,但SRAM的成本較高,所以在存儲(chǔ)器容量較小的情況下,通常使用SRAM,而對(duì)于大容量存儲(chǔ)器,則使用SDRAM。 同步(Synchronous )是指內(nèi)存工作需要同步時(shí)鐘,內(nèi)部的命令的發(fā)送與數(shù)據(jù)的傳輸都以它為基準(zhǔn) 動(dòng)態(tài)(Dynamic )是指存儲(chǔ)陣列 需要不斷的刷新來(lái)保證數(shù)據(jù)不丟失 隨機(jī)(Random )是指數(shù)據(jù)不是線性依次存儲(chǔ),而是自由指定地址進(jìn)行 數(shù)據(jù)讀寫SDRAM具有空間存儲(chǔ)量大、讀寫速度快、價(jià)格相對(duì)便宜等優(yōu)點(diǎn)。 然而由于SDRAM內(nèi)部利用電容來(lái)存儲(chǔ)數(shù)據(jù),為保證數(shù)據(jù)不丟失,需要持續(xù)對(duì)各存儲(chǔ)電容進(jìn)行刷新操作;同時(shí)在讀寫過(guò)程中 需要考慮行列管理、各種操作延時(shí)等,由此導(dǎo)致了其控制邏輯復(fù)雜的特點(diǎn)。 SDRAM 內(nèi)部可以理解為一個(gè)存儲(chǔ)陣列,表格中的每一個(gè)單元格可以類比為存儲(chǔ)陣列的單個(gè)存儲(chǔ)單元。若想要實(shí)現(xiàn)存儲(chǔ)陣列中的某一存儲(chǔ)單元的數(shù)據(jù)讀寫操作,我們要通過(guò)行地址(Row Address)和列地址 (Column Address)(先行后列)精確定位到這一存儲(chǔ)單元,進(jìn)而進(jìn)行數(shù)據(jù)的讀寫操作,這就是所謂的隨機(jī)地址存取.
就是這樣
我找了一個(gè)FSMS接口的圖看看
這里翻出ESP32的手冊(cè)看看
片內(nèi)SRAM:大小:512 KB 關(guān)系:片內(nèi)SRAM = IRAM (192KB ) + DRAM( 328KB )IRAM :作用:存儲(chǔ)關(guān)鍵代碼。 1.中斷處理程序。注冊(cè)中斷處理程序時(shí)使用了 ESP_INTR_FLAG_IRAM,則中斷處理程序必須要放入 IRAM。 2.可將一些時(shí)序關(guān)鍵代碼放入 IRAM,以減少?gòu)?flash 中加載代碼造成的相關(guān)損失。 3.以上兩點(diǎn)為鏈接器自主操作,官方也提供接口,可以通過(guò)程序來(lái)聲明函數(shù),可以將 IRAM_ATTR 宏用作屬性,直接將程序存儲(chǔ)在這部分空間。 函數(shù)中的字符串或常量可能沒(méi)有自動(dòng)放入 RAM 中,這時(shí)可以使用 DRAM_ATTR 屬性進(jìn)行標(biāo)記,或者也可以使用鏈接器腳本方法將它們自動(dòng)放入 RAM 中。
void IRAM_ATTR gpio_isr_handler(void* arg) { const static DRAM_ATTR uint8_t INDEX_DATA[] = { 45, 33, 12, 0 }; const static char *MSG = DRAM_STR("I am a string stored in RAM"); }DRAM:作用兩個(gè): 非常量靜態(tài)數(shù)據(jù)(.data 段)和零初始化數(shù)據(jù)(.bss 段)由鏈接器放入內(nèi)部 SRAM 作為數(shù)據(jù)存儲(chǔ)。 這部分空間的使用是由鏈接器在對(duì)項(xiàng)目代碼編譯鏈接時(shí),根據(jù)程序內(nèi)容自動(dòng)使用。空間大小隨程序內(nèi)部使用情況擴(kuò)張。 官方也提供接口,可以通過(guò)程序聲明變量,直接使用這部分空間。可以將 __NOINIT_ATTR 宏用作屬性,從而將數(shù)據(jù)放入 .noinit 部分。放入該部分的值在啟動(dòng)時(shí)不會(huì)被初始化,在軟件重啟后也會(huì)保持值不變。
最后我還測(cè)試了一下這個(gè)GPU
審核編輯:彭菁
-
sram
+關(guān)注
關(guān)注
6文章
767瀏覽量
114689 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7494瀏覽量
87953 -
內(nèi)存
+關(guān)注
關(guān)注
8文章
3025瀏覽量
74047 -
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136824
原文標(biāo)題:C語(yǔ)言指針的值在哪里?在SRAM
文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無(wú)跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論