現代的計算機不僅能做運算,更能夠自動執行某些既定的程式來實現一些控制或操作。計算機要能自動執行程式,所以程式——也就是既定的指令和資料,就必須有儲存器來儲存。
儲存器必須能夠被處理器不經人工控制就能讀取到指令和資料。pc指標能從儲存器中自動的取到可執行的單條指令,術語叫定址。
如果想上電就能自動執行程式(計算機的程式包括指令和資料),就必須有掉電不丟失資料的儲存器(術語叫非易失性儲存器)來儲存程式,並且能有一套機制在上電後把該儲存器裡的程式自動讀出來給微處理器。
有了大容量的儲存器,人們就可以儲存許多有用的資料和資訊了。基於海量的儲存容量,強大的資料庫及檢索演算法,人們就可以以電子化形式儲存、查閱並研究分析資料或資訊。
儲存器的簡單定義是可穩定的保持某些狀態的器件,而這些狀態一定有快捷低成本的條件來轉換為電壓值,最終轉換為數位電路意義上的0或1,常常也可以用電壓來控制儲存狀態的改變。
儲存器種類很多,特性有多種差異,有能只能讀,不能寫;有的能寫,但不能掉電保持;有的能掉電保持,但讀寫控制等有講究。不同種類的儲存器,實現方法各不相同,讀寫控制也各不相同。有利用磁原理做的磁帶磁碟,目前也是主流的大容量低**掉電不丟失資料的儲存器。目前基於電原理的,用mos管搭的靜態記憶體sram最先被設計出來;再然後基於電容和控制電路的dram被設計出來;利用浮柵封存電子來達到掉電保持資料的flash(中文叫快閃儲存器)是有望取代磁碟的掉電不丟失資料的儲存器。各種新型的儲存器仍然不斷的在被研製出來,各種型別的儲存器的基本原理也各有不同,即便原理類似,具體實現也有很多種,細節也各有繁簡。單就某一小類儲存器的細節都可以寫成一本厚厚的書了。在儲存器領域,專業設計或製造的公司都很多,有些小公司專攻某一小類儲存器設計而做的風生水起的,也有某些大公司能製造各種儲存器但常年虧本的。對一類如此博大精深的器件,顯然在此只能簡而言之以供了解。如果有興趣看這方面的專業書籍,推薦《vlsi-design of non-volatile memories》。
儲存器是被動器件,只能由微處理器這種主動器件來控制。現代的微處理器(泛指擁有8位、16位、32位、64位能力運算器的微處理器)最小可定址單位是位元組,換句話說就是乙個位址儲存的資料就是乙個位元組(1byte即8bit),讀寫某個位址必須以位元組為最小儲存單位。儲存器作為被動器件,最小定址單位只能大於或等於乙個位元組。若有的儲存器最小定址單位小於乙個位元組,則浪費了微處理器的讀寫效率,事實上也沒有這種儲存器。
儲存器有兩類常見概念:ram(random access memory)和 rom(read only memory),最早的兩類儲存器確實名如其實,但現在很多種的儲存器早已模糊了或者說是擴充套件這兩類概念。ram引申為記憶體,可由微處理器自由讀寫,掉電即丟失資料。rom引申為掉電保持資料儲存器,不可由微處理器自由讀或寫。
嚴格來說,ram是可以對每個儲存單元隨意讀讀寫0或讀寫1的儲存器,除此之外,任何不能對每個儲存單元隨意讀寫0或讀寫1的儲存器都要歸類到rom。比如norflash雖然可以隨意讀到某個儲存單元,但只能對某個儲存單元寫0,而從0寫成1在norflash來看叫擦(erase),擦的最小單位是塊,塊大小要遠遠大於最小可讀的儲存單位,並且掉電能保持資料,所以norflash要歸類到rom,關於norflash請另外參見快閃儲存器的介紹。
一般而言,ram是掉電丟失資料,rom是掉電不丟失資料,但以此為概念又失之嚴謹。目前已經有種新型的儲存器叫相變儲存器(phase change memory,簡稱pcm),既能隨意按最小定址單位讀寫,也能掉電保持資料,這種儲存器更應該歸類到ram,但掉電保持的特性又與傳統的ram不同,在ram或rom的歸類上使人困惑。相變儲存器利用硫化物在通電後的結晶態與非晶態的原理來實現,現在已有小規模應用。
當儲存器相對較小的時候,用起來就相對簡單。當儲存器相對較大的時候,用起來就相對複雜,多了很多需要考慮的問題,比如使用效率等。效率、效能、功耗這三點是現代先進儲存系統的提公升重點,為此計算機系統設計了更多的軟硬體來管理儲存器。
在人類社會中,資料和資訊的控制許可權是個重要的社會問題。在現代計算機中,為了多工、多應用和多使用者的需要,毫無疑問需要對計算機儲存空間劃分訪問許可權。
為了實現記憶體(ram)空間的訪問許可權功能,是在計算機的微處理器中設計了一套專用數字邏輯電路,並且設計了相應的軟體來實現的。此類專用數字邏輯電路根據功能的不同可稱為mmu(memory managerunit,記憶體管理單元)或mpu(memory protectionunit,記憶體保護單元)。在計算機軟體系統中會開發一套mmu或mpu的驅動,以及基於mmu或mpu的記憶體管理演算法程式。基於mmu,就有了虛擬位址和實體地址之概念,這提公升了物理記憶體的使用效率。為了提公升記憶體的使用效率,在軟體範圍內還開發了很多記憶體分配與記憶體**、記憶體碎片整理的記憶體管理演算法。
而為了實現rom空間的訪問許可權功能,是在計算機軟體系統中實現了一套檔案系統,其中對上層使用者能實現各個檔案的儲存及讀寫擦,各個檔案內容及各種路徑的檢索演算法,遮蔽下層rom儲存器的物理屬性,對下層rom儲存器能優化擦寫壽命,加強資料儲存的可靠性和穩定性。
提公升儲存器的效能和降低儲存器的功耗在一定程度上有些矛盾,但並非不可調和。
在提公升儲存系統的讀寫效能方面,主要有三個常用手段:1、提高時鐘頻率;2、提高匯流排寬度;3、增加快取記憶體cache。
儲存器的頻率越高,效能越好,但功耗也越高。但儲存器仍有大部分間隙時間沒有讀寫需求,所以可以趁此時進入低功耗模式。即使在儲存器有讀寫需求時,也並非所有的讀寫需求都是同樣的負載,只要儲存器在一定的時鐘頻率上可以滿足系統的讀寫效能需求,就沒必要執行在最高時鐘頻率上。因此軟硬體可以實時監控儲存器的讀寫流量,從而對儲存器時鐘頻率進行相應的動態頻率調整。
對儲存器的理解和管理是件費功夫且要求極深的事情,如果做的不好會有許多難纏的問題。記憶體管理問題中可能最難查的問題如記憶體覆蓋,被覆蓋的內存在很久之後被執行到可能導致宕機,但要調查當初是**的**造成的覆蓋卻不是件容易的事情。而檔案管理則涉及rom的讀寫擦特性,如在flash上沒有做好擦寫均衡和斷掉保護,一旦出現檔案中資料被破壞就導致檔案不可讀,倘若rom上的翻轉資料剛好是軟體中重要的指令或資料,就會引起嚴重的軟體問題。
外部儲存器的應用
一.用於十六位通訊的外部儲存器配置 ldr r0,bcfg2 ldr r1,0x1000fbef str r1,r0 define d20w16 unsigned short 0x82000000 三.資料的初始化及讀寫操作 uint16 test16 256 temp16 512 void dwi...
傳統儲存器和新興儲存器應用
舊版儲存不再是使用壽命短的低端裝置,因為主要 商都將精力集中在最新和最重要的產品上。隨著越來越多的智慧型裝置和融合了ai的邊緣計算以及呈指數增長的物聯網,持久 可能是這些根深蒂固的記憶的更好標籤。過去的dram不再用於較小的系統,因為它們需要dram控制器。sram進入了記憶體需求小的系統。dram...
儲存過程的應用
今天深入講了儲存過程和如何建立儲存過程 宣告新的結束符 delimiter 一 建立儲存過程 create procedure p1 select from t1 單條 create procedure p1 begin 流程控制結構 sql語句集合 end 二 引數的應用 1 in 輸入形參引數,...