一文了解隨機(jī)存取和非隨機(jī)存取的區(qū)別
隨機(jī)存取和非隨機(jī)存取的區(qū)別
1、隨機(jī)存取就是直接存取,可以通過下標(biāo)直接訪問的那種數(shù)據(jù)結(jié)構(gòu),與存儲位置無關(guān),例如數(shù)組。非隨機(jī)存取就是順序存取了,不能通過下標(biāo)訪問了,只能按照存儲順序存取,與存儲位置有關(guān),例如鏈表。
2、順序存取就是存取第N個數(shù)據(jù)時,必須先訪問前(N-1)個數(shù)據(jù) (list),隨機(jī)存取就是存取第N個數(shù)據(jù)時,不需要訪問前(N-1)個數(shù)據(jù),直接就可以對第N個數(shù)據(jù)操作 (array)。
隨機(jī)存取和非隨機(jī)存取的結(jié)構(gòu)
1、順序存儲結(jié)構(gòu)
在計(jì)算機(jī)中用一組地址連續(xù)的存儲單元依次存儲線性表的各個數(shù)據(jù)元素,稱作線性表的順序存儲結(jié)構(gòu)。
順序存儲結(jié)構(gòu)是存儲結(jié)構(gòu)類型中的一種,該結(jié)構(gòu)是把邏輯上相鄰的節(jié)點(diǎn)存儲在物理位置上相鄰的存儲單元中,結(jié)點(diǎn)之間的邏輯關(guān)系由存儲單元的鄰接關(guān)系來體現(xiàn)。由此得到的存儲結(jié)構(gòu)為順序存儲結(jié)構(gòu),通常順序存儲結(jié)構(gòu)是借助于計(jì)算機(jī)程序設(shè)計(jì)語言(例如c/c++)的數(shù)組來描述的。
順序存儲結(jié)構(gòu)的主要優(yōu)點(diǎn)是節(jié)省存儲空間,因?yàn)榉峙浣o數(shù)據(jù)的存儲單元全用存放結(jié)點(diǎn)的數(shù)據(jù)(不考慮c/c++語言中數(shù)組需指定大小的情況),結(jié)點(diǎn)之間的邏輯關(guān)系沒有占用額外的存儲空間。采用這種方法時,可實(shí)現(xiàn)對結(jié)點(diǎn)的隨機(jī)存取,即每一個結(jié)點(diǎn)對應(yīng)一個序號,由該序號可以直接計(jì)算出來結(jié)點(diǎn)的存儲地址。但順序存儲方法的主要缺點(diǎn)是不便于修改,對結(jié)點(diǎn)的插入、刪除運(yùn)算時,可能要移動一系列的結(jié)點(diǎn)。
2、隨機(jī)存儲結(jié)構(gòu)
在計(jì)算機(jī)中用一組任意的存儲單元存儲線性表的數(shù)據(jù)元素(這組存儲單元可以是連續(xù)的,也可以是不連續(xù)的)。
它不要求邏輯上相鄰的元素在物理位置上也相鄰。因此它沒有順序存儲結(jié)構(gòu)所具有的弱點(diǎn),但也同時失去了順序表可隨機(jī)存取的優(yōu)點(diǎn)。
鏈?zhǔn)酱鎯Y(jié)構(gòu)特點(diǎn)
1、比順序存儲結(jié)構(gòu)的存儲密度小 (每個節(jié)點(diǎn)都由數(shù)據(jù)域和指針域組成,所以相同空間內(nèi)假設(shè)全存滿的話順序比鏈?zhǔn)酱鎯Ω?。
2、邏輯上相鄰的節(jié)點(diǎn)物理上不必相鄰。
3、插入、刪除靈活 (不必移動節(jié)點(diǎn),只要改變節(jié)點(diǎn)中的指針)。
4、查找結(jié)點(diǎn)時鏈?zhǔn)酱鎯σ软樞虼鎯β?/p>
5、每個結(jié)點(diǎn)是由數(shù)據(jù)域和指針域組成。
隨機(jī)存取的用途
SRAM:靜態(tài)隨機(jī)存取存儲器采取多重晶體管設(shè)計(jì),通常每個存儲單元使用4-6只晶體管,但沒有電容器。SRAM主要用于緩存。
DRAM:動態(tài)隨機(jī)存取存儲器中每個存儲單元由配對出現(xiàn)的晶體管和電容器構(gòu)成,需要不斷地刷新。
FPM DRAM:快速頁模式動態(tài)隨機(jī)存取存儲器是最早的一種DRAM。在存儲器根據(jù)行列地址進(jìn)行位元定位的全程中,F(xiàn)PM DRAM必須處于等待狀態(tài),數(shù)據(jù)讀取之后才能開始處理下一位數(shù)據(jù)。向二級緩存的最高傳輸速率約為176MB每秒。
EDO DRAM:擴(kuò)展數(shù)據(jù)輸出動態(tài)隨機(jī)存取存儲器在處理前一位數(shù)據(jù)的過程中無需全程等待,就可以開始處理下一位數(shù)據(jù)。只要前一位數(shù)據(jù)的地址定位成功,EDO DRAM就開始為下一位數(shù)據(jù)尋址。它比FPM快5%左右。向二級緩存的最高傳輸速率約為264MB每秒。
SDRAM:同步動態(tài)隨機(jī)存取存儲器利用了爆發(fā)模式的概念,大大提升了性能。這種模式在讀取數(shù)據(jù)時首先鎖定一個記憶行,然后迅速掃過各記憶列,與此同時讀取列上的位元數(shù)據(jù)。之所以有這種設(shè)計(jì)思想,是因?yàn)槎鄶?shù)時候CPU請求的數(shù)據(jù)在內(nèi)存中的位置是相鄰的。SDRAM比EDO RAM快5%左右,已成為當(dāng)今臺式機(jī)內(nèi)存中應(yīng)用最廣的一種。向二級緩存的最高傳輸速率約為528MB 每秒。
DDR SDRAM:雙倍速率同步動態(tài)RAM與SDRAM相似,但帶寬更高,即速度更快。向二級緩存的最高傳輸速率約為1064MB每秒。(133兆赫茲DDR SDRAM)。
RDRAM:Rambus動態(tài)隨機(jī)存取存儲器同先前的DRAM體系有著根本性的區(qū)別。由Rambus公司設(shè)計(jì)的RDRAM采用了Rambus直插式內(nèi)存模組(RIMM),在外形尺寸和引腳構(gòu)造方面類似于標(biāo)準(zhǔn)的DIMM。RDRAM與眾不同之處在于它采取一種特殊的高速數(shù)據(jù)總線設(shè)計(jì),稱為Rambus信道。RDRAM內(nèi)存芯片在并行模式下工作頻率可達(dá)800兆赫(數(shù)據(jù)速率1600兆字節(jié))。由于操作速率很高,RDRAM產(chǎn)生的熱量要大大多于其他類型的芯片。為了驅(qū)散多余的熱量,Rambus芯片配有散熱器,這種散熱器看上去就像是又長又薄的圓片。正如DIMM有其小外形版本一樣,生產(chǎn)商還為筆記本電腦設(shè)計(jì)了小外形RIMM。
信用卡內(nèi)存:信用卡內(nèi)存是一種享有專利權(quán)的獨(dú)立DRAM內(nèi)存模組,使用時要將其插入筆記本電腦的特制長槽中。
PCMCIA內(nèi)存卡:另一種用于筆記本電腦的獨(dú)立DRAM內(nèi)存模組,這種內(nèi)存卡不享有專利權(quán),只要系統(tǒng)總線能與內(nèi)存卡設(shè)置相互匹配,即可用于各種筆記本電腦。
CMOS RAM:CMOS RAM這一術(shù)語是指用于電腦和其他設(shè)備中的一種小容量存儲器,用來存儲硬盤設(shè)置等信息——有關(guān)詳細(xì)信息,請查見《計(jì)算機(jī)基本知識》一文。這種內(nèi)存需要一個小型電池來供電,以維持存儲器的內(nèi)容。
VRAM:視頻RAM,亦稱多端口動態(tài)隨機(jī)存取存儲器(MPDRAM),為顯示適配器和3D加速卡所專用。所謂“多端口”是指VRAM通常會有兩個獨(dú)立的訪問端口,而非單一端口,允許CPU和圖形處理器同時訪問RAM。VRAM位于圖形卡上,且種類繁多,其中很多享有專利權(quán)。VRAM的大小往往能決定顯示器的分辨率和色深度。VRAM還可以用來保存一些圖形專用信息,例如3D幾何數(shù)據(jù)和質(zhì)素圖。真正的多端口VRAM往往價格不菲,因而當(dāng)今的圖形卡使用SGRAM(同步圖形RAM)作為替代品。兩種顯存性能相差無幾,而SGRAM價格更為便宜。