A. 計算機是如何通過內存進行數據的存儲
首先,需要由一些半導體組成門電路,可以完成與、或、異或等電路邏輯。
然後,由門電路組成一個基本的存儲單元,這個存儲單元可以穩定地保持低電平和高電平兩個狀態(0和1),這就是內存的一個bit
最後,把大量的這種存儲單元組成陣列,通過縱橫方向的控制電路來控制每個bit的電平狀態,用來表示0和1,從而實現信息的存儲。
物理介質上,所有這些存儲單元是被蝕刻在矽片上,做成各種封裝好的內存晶元(內存顆粒),再由廠家製作內存條電路板,把若干這樣的晶元集中在一塊板子上,成為內存條。
大體就是這樣。
B. 內存的數據存儲機制
1.寄存器(register)。這是最快的存儲區,寄存器的數量極其有灶陵限,所以寄存器由
編譯器
根據需求進行分配,你不能
直接控制
。
2.堆棧(Stack)。位於通用RAM(
random-access
memory,
隨機訪問存儲器
)中,通過它的「
堆棧指針
」可以從處理器那裡獲得。堆棧指針若向
下移動,則分配新的內存空間,若向上移動,則
釋放內存
。創建程序時,
Java編譯器
必須知道存儲在堆棧內所有數據的大小洞辯液和生命周期,
因為它必須生成相應的代碼,以便上下移動堆棧指針。由於約束性質,所以一般存儲的是Java的
對象引用
和變數。
優點:快速分配的存儲,僅次於寄存器。
缺點:限制了程序的靈活性。
3.堆(heap)。通用性
內存池
,用於存放所有的Java對象。堆的好處是:編輯器
不需要知道
堆里要分配多少
存儲區域
,也
不必知道
存儲的數
據在堆里的存活多長時間。在Java中,創建一個對象,只需要用new,當執行這行代碼,會自動在堆里進行存儲分配。
優點:在堆里分配存儲有很大的靈活性。
缺點是:用堆進行存儲分配比用堆棧進行存儲需要更多的時間。
4.靜態存儲(static
storage)。是指在固定位置(也在RAM里)。靜態存儲里存放程序運行時
一直存在
的數據。通常是Java的納物
靜態變數
,但
Java對象本身從來不會放在靜態存儲空間里。
5.常量存儲(constant
storage)。通常是存放在ROM(read-only
memory,
只讀存儲器
)中,因為常量本身他們永遠不會被改變。
C. 內存卡是怎樣存儲數據的
存儲卡寬世櫻是一種固態產品,也就是工作時沒有 運 動部件。存儲卡採用快閃記憶體(flash)技術,是一種穩定的存儲解決方案,不需要電池來維持其中存儲的數據。對所保存的數據來說,存儲卡比傳統的磁碟驅動器安全性和保護性都更高;比傳統的磁碟驅動器及Ⅲ型PC卡的可靠性高5到10倍,而且存儲卡的用電量僅為小型磁碟驅動器的5%左右。存儲卡工作時一般採用邏輯定址方式,它沒有返螞磁頭和磁軌的轉換操作,因此在訪問連續扇區時,操作速度比磁碟的物理定址方式速度快。慎叢
D. 數據在內存中是如何存儲的
計算機要處理的信息是多種多樣的,如數字、文字、符號、圖形、音頻、視頻等,這些信息在人們的眼裡是不同的。但對於計算機來說,它們在內存中都是一樣的,都是以二進制的形式來表示。
要想學習編程,就必須了解二進制,它是計算機處理數據的基礎。
內存條是一個非常精密的部件,包含了上億個電子元器件,它們很小,達到了納米級別。這些元器件,實際上就是電路;電路的電壓會變化,要麼是 0V,要麼是 5V,只有這兩種電壓。5V 是通電,用1來表示,0V 是斷電,用0來表示。所以,一個元器件有2種狀態,0 或者 1。
我們通過電路來控制這些元器件的通斷電,會得到很多0、1的組合。例如,8個元器件有 28=256 種不同的組合,16個元器件有 216=65536 種不同的組合。雖然一個元器件只能表示2個數值,但是多個結合起來就可以表示很多數值了。
我們可以給每一種組合賦予特定的含義,例如,可以分別用 1101000、00011100、11111111、00000000、01010101、10101010 來表示 C、語、言、中、文、網 這幾個字,那麼結合起來 1101000 00011100 11111111 00000000 01010101 10101010 就表示」C語言中文網「。
一般情況下我們不一個一個的使用元器件,而是將8個元器件看做一個單位,即使表示很小的數,例如 1,也需要8個,也就是 00000001。
1個元器件稱為1比特(Bit)或1位,8個元器件稱為1位元組(Byte),那麼16個元器件就是2Byte,32個就是4Byte,以此類推:
8×1024個元器件就是1024Byte,簡寫為1KB;
8×1024×1024個元器件就是1024KB,簡寫為1MB;
8×1024×1024×1024個元器件就是1024MB,簡寫為1GB
現在,你知道1GB的內存有多少個元器件了吧。我們通常所說的文件大小是多少 KB、多少 MB,就是這個意思。
單位換算:
1Byte = 8 Bit
1KB = 1024Byte = 210Byte
1MB = 1024KB = 220Byte
1GB = 1024MB = 230Byte
1TB = 1024GB = 240Byte
1PB = 1024TB = 250Byte
1EB = 1024PB = 260Byte
我們平時使用計算機時,通常只會設計到 KB、MB、GB、TB 這幾個單位,PB 和 EB 這兩個高級單位一般在大數據處理過程中才會用到。
你看,在內存中沒有abc這樣的字元,也沒有gif、jpg這樣的圖片,只有0和1兩個數字,計算機也只認識0和1。所以,計算機使用二進制,而不是我們熟悉的十進制,寫入內存中的數據,都會被轉換成0和1的組合。
E. 內存條存儲數據的原理
內存的存儲原理
內存,英文名為RAM(Random Access Memory),全稱是隨機存取存儲器。主要的作用就是存儲代碼和數據供CPU在需要的時候調用。但是這些數據並不是像用木桶盛水那麼簡單,而是類似圖書館中用有格子的書架存放書籍一樣,不但要放進去還要能夠在需要的時候准確的調用出來,雖然都是書但是每本書是不同的。對於內存等存儲器來說也是一樣的,雖然存儲的都是代表0和1的代碼,但是不同的組合就是不同的數據。讓我們重新回到書和書架上來。
如果有一個書架上有10行和10列格子(每行和每列都有0~9編號),有100本書要存放在裡面,那麼我們使用一個行的編號和一個列的編號就能確定某一本書的位置。如果已知這本書的編號36,那麼我們首先鎖定第3行,然後找到第6列就能准確的找到這本書了。
在內存中也是利用了相似的原理現在讓我們回到內存上,對於它而言數據匯流排是用來傳入數據或者傳出數據的。因為存儲器中的存儲空間是如果前面提到的存放圖書的書架一樣通過一定的規則定義的,所以我們可以通過這個規則來把數據存放到存儲器上相應的位置,而進行這種定位的工作就要依靠地址匯流排來實現了。
對於CPU來說,內存就像是一條長長的有很多空格的「線」,每個空格都有一個唯一的地址與之相對應。如果CPU想要從內存中調用數據,它首先需要給地址匯流排發送地址數據定位要存取的數據,然後等待若干個時鍾周期之後,數據匯流排就會把數據傳輸給CPU。當地址解碼器接收到地址匯流排送來的地址數據之後,它會根據這個數據定位CPU想要調用的數據所在的位置,然後數據匯流排就會把其中的數據傳送到CPU。
CPU在一行數據中每次知識存取一個位元組的數據。會到實際中,通常CPU每次需要調用64bit或者是128bit的數據(單通道內存控制器為64bit,雙通道為128bit)。如果數據匯流排是64bit的話,CPU就會在一個時間中存取8個位元組的數據,因為每次還是存取1個位元組的數據,64bit匯流排將不會顯示出來任何的優勢,工作的效率將會降低很多。這也就是現在的主板和CPU都使用雙通道內存控制器的原因。
F. 內存卡如何存儲信息
內存卡存儲信息的原理。
快閃記憶體(Flash Memory)是一種長壽命的非易失性(在斷電情況下仍能保持所存儲的數據信息)的存儲器,數據刪除不是以單個的位元組為單位而是以固定的區塊為單位(注意:NOR Flash 為位元組存儲),區塊大小一般為256KB到20MB。快閃記憶體是電子可擦除只讀存儲器(EEPROM)的變種,EEPROM與快閃記憶體不同的是,它能在位元組水平上進行刪除和重寫而不是整個晶元擦寫,這樣快閃記憶體就比EEPROM的更新速度快。由於其斷電時仍能保存數據,快閃記憶體通常被用來保存設置信息,如在電腦的BIOS(基本輸入輸出程序)、PDA(個人數字助理)、數碼相機中保存資料等。另一方面,快閃記憶體不像RAM(隨機存取存儲器)一樣以位元組為單位改寫數據,因此不能取代RAM。
快閃記憶體卡(Flash Card)是利用快閃記憶體(Flash Memory)技術達到存儲電子信息的存儲器,一般應用在數碼相機,掌上電腦,MP3等小型數碼產品中作為存儲介質,所以樣子小巧,有如一張卡片,所以稱之為快閃記憶體卡。根據不同的生產廠商和不同的應用,快閃記憶體卡大概有SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(記憶棒)、XD-Picture Card(XD卡)和微硬碟(MICRODRIVE)這些快閃記憶體卡雖然外觀、規格不同,但是技術原理都是相同的。