為什麼要使用skb_reserve函數把邊界對齊 skb_reserve 函數通常用於網路編程中的數據包處理,特別是在構建自定義協議棧或數據包處理模塊時。它的作用是為數據包的頭部預留額外的空間,以確保數據包的頭部數據在記憶體中是對齊的。 邊界對齊的概念是因為許多硬體平臺和網路協議要求數據包頭的位元組對齊 ...
1、RAM
RAM又稱為隨機訪問存儲器(Random-Access Memory),其主要分為靜態和動態兩種。靜態的RAM簡寫為SRAM,動態的RAM簡寫為DRAM。SRAM的訪問速度比DRAM要快得多,因此價格也要貴得多,在應用上,SRAM主要用作高速緩存存儲器,也就是CPU和主存之間的L1、L2高速緩存,DRAM一般作為電腦系統的主存。
-
SRAM
SRAM將每個位存儲在一個雙穩態的存儲器單元里,它可以無限期地保持在兩個不同地電壓配置或者狀態下,即使有干擾擾亂電壓,當干擾消除時,電路就會恢復到穩定值,它就如同一個蹺蹺板,總是會從一個不穩態的位置轉移至穩態位置。
-
DRAM
DRAM的每個位存儲為對一個電容的充電,其對干擾非常敏感,當電容的電壓被擾亂,其就不會恢復,因此在使用時,經常需要讀出所有記憶體,再通過重寫來刷新記憶體每一位。
表1總結了SRAM和DRAM存儲器的特性區別。
每單位晶體管數 | 相對訪問時間 | 是否持續 | 是否敏感 | 相對花費 | 應用 | |
---|---|---|---|---|---|---|
SRAM | 6 | 1× | 是 | 否 | 1000× | 高速緩存存儲器 |
DRAM | 1 | 10× | 否 | 是 | 1× | 主存 |
2、ROM
ROM也稱為只讀存儲器(Read-Only Memory),是一種只能讀出無法寫入信息的存儲器,與RAM的區別在於,ROM不能快速方便地修改存儲內容,且斷電後數據依然存在。不同種類的只讀存儲器功能不同,接下來介紹幾種常見的ROM:
-
可編程只讀存儲器(PROM)
PROM只能被編程一次,因為其每個存儲器單元有一種熔絲,只能使用高電流熔斷一次
-
可擦寫可編程存儲器(EPROM)
EPROM可以進行多次編程,是一種便於用戶根據需要來寫入,並能把已寫入的內容擦去後再改寫的ROM。其存儲的信息可以由用戶自行加電編寫,也可以利用紫外線光源或脈衝電流等方法先將原存的信息擦除,然後用寫入器重新寫入新的信息
存儲在ROM設備中的程式通常被稱為固件,當一個電腦系統通電以後,它會運行存儲在ROM中的固件。一些系統也會在固件中提供少量基本的輸入和輸出函數,比如PC的BIOS。