引用:
作者typh
誠如此言。
所謂可寫入的 ROM,也不是說在 CPU 裡簡單一行「sto r1,m1」
就可以完成的工作,還是有它一堆的限制在。
隨著未來科技進步,也許會出現某物,兼有 reg 的快速存取與 rom 的
保存性,那 RAM 與 ROM 可能很快就要成為歷史名辭了。
|
ARM 這類的 RISC 存取記憶體不可能是一行,RISC 要有 load, store 之類的動作,像 ARM 的記憶體存取基本語法就是 LDR + STR。
x86 CISC 才可以直接一行 mov 來動記憶體,不過 x86 有更好用的指令如 movsb 或 stosb 之類。
回主題,ROM 是很過時的說法,正確的說法應該是 Flash Memory,現在手機基本上是沒有 ROM的。
此外 Flash Memory 常見的有分 NOR 與 NAND 兩種,存取方式也不一樣。
NOR 的硬體接線跟 RAM 很像,通常來說讀取也可以跟 RAM 一樣直接透過位址線來存取,也因此 NOR 多半用在開機,不過現在很多 SOC 都能直接從 NAND 甚至 SD Card 上直接開機,所以 NOR 也越來越少見,因為 NOR 寫入跟刪除較不方便,在現代移動裝置上會看到大概都剩引導開機跟回復機制的功能而已。
NAND 的硬體接線跟 RAM 與 NOR Flash 差很多,此外 NAND 無論讀寫都一律要透過指令存取,一般我們手機用的都是 NAND Flash memory,有些甚至會整合在 SOC 裡。
參考資料:被數種 OS bootloader 與 NOR/NAND flash driver 虐待過的程式猿大腦。