• 2

本文以刪除

本文以刪除
本文以刪除
本文以刪除
2006-06-26 18:41 發佈
文章關鍵字 本文
RAM需要電力去維持,愈大容量愈會粍電.
而相比起SD,CF等,ROM能支持XIP(能直接執行ROM上的情序而不用先載入至RAM),所以安裝在ROM中的情序較安裝在SD等較快.
以前的PPC 2003(之前) Ram是一物兩吃
要當作執行程式時的Ram 在關機之後又要當作存放資料的空間
而 Rom只是放基本系統用的地方..能有空出來放東西的空間是少之又少

現在WM5不同啦
Ram就像pc上的Ram一樣.只有在執行程式時會用到
Rom就單純用來塞檔案 塞程式
就算Ram加大.也不再像PPC2003一樣能 移作它用拿去塞東西

64MB Ram在WM5算是目前的主流(基本)吧
cnewshk wrote:
而相比起SD,CF等,ROM能支持XIP(能直接執行ROM上的情序而不用先載入至RAM),所以安裝在ROM中的情序較安裝在SD等較快.


ROM 有很多種, 並不是所有的都支援 XIP,
WM5 新機裏的 ROM, 大多數都是 NAND Flash, 跟 SD/CF 一樣的,
而 NAND 是不支援 XIP 的,
用法就是要先 Copy 到 RAM 才能執行.

ec wrote:
ROM 有很多種, 並不是所有的都支援 XIP,
WM5 新機裏的 ROM, 大多數都是 NAND Flash, 跟 SD/CF 一樣的,
而 NAND 是不支援 XIP 的,
用法就是要先 Copy 到 RAM 才能執行.
...(恕刪)


基本上多數smartphone用的flash rom都是m-systems的
mDOC,mDOC基本上是改良式的nand flash,裡面有加上一個sram,會在
開機時直接把nand中的程式download到mDOC裡面的sram當做rom來執行
XIP,也就是等於bios的功能,所以某種程度上還是可以執行XIP的。

此外,一般的SD/CF card雖然能儲存資料與程式,但是跟mDOC不一樣的是,
因為mDOC採取FTL的方式來讀寫資料,所以reliability遠比SD/CF card好的多,
所以你應該很少看到smartphone會直接用一般的nand flash,而多是
用m-systems的mDOC或是samsung的OneNand,基本上這種embedded
flash與一般nand flash還是有差的,你不妨去查datasheet就知道了。
chliusis wrote:
mDOC,mDOC基本上是改良式的nand flash,裡面有加上一個sram,會在
開機時直接把nand中的程式download到mDOC裡面的sram當做rom來執行


這個也沒什麼特別.
只是把一般 OS dram 跟 disk 的 swap file 做到 sram 跟 flash 的對應,
只是弄成一個 chip.

重點是 sram/flash 比例為多少?
程式/資料 大小為多少?
才能有可以另人滿意的速度.

ppc 的程式, 比起一些手機專屬軟體的程式比起來並不小,
用那個真的有另人滿意的效果嗎?

http://msdn.technetweb3.orcsweb.com/windowsmobile/archive/2005/11/17/494177.aspx
這裏面有提到,

NAND devices can't XIP, so their code is loaded into RAM and executed from there. If you don't have a Page Pool, this code is loaded into normal RAM. The Page Pool is a mechanism to limit how much code is loaded into normal RAM. With a Page Pool, we can unload code that hasn't been used in a while and reload it later if we need to. We can't do that without a Page Pool.

On a typical NAND-based WM5 device, the Page Pool is 4.5M.


WM5 是自己在管理 NAND load 到 RAM 的機制.



chliusis wrote:
此外,一般的SD/CF card雖然能儲存資料與程式,但是跟mDOC不一樣的是,
因為mDOC採取FTL的方式來讀寫資料,

...................
FTL 只是一個轉換層
這是我之前提過的
"
在 1990, 就有專屬為 Flash 這種特性打造的 filesystem,
1994, PCMICA 弄出了一個 FTS (Flash Translation Layer) ,
讓上層看起來像是 FAT 的 FileSytem,
"

至於在轉換層裏用什麼 alogrithm,
又是另一回事.
轉換層的目的是要讓上層的用法更簡單,
把它當成一般的 disk device, 進而能用一般的 file system 如 FAT.

http://sources.redhat.com/jffs2/jffs2-html/node1.html
A far more efficient use of flash technology would be permitted by the use of a file system designed specifically for use on such devices, with no extra layers of translation in between.

為 flash 設計專屬的 filesystem, 不需要用到 FTS, 少了一層轉換,
更新效率.

(
只是, FAT 太普遍了....
)

nand 的 issue,
http://203.66.123.22/ne/magazine/magazine_article.asp?Id=634
ec wrote:
只是, FAT 太普遍了...(恕刪)


我想FAT太普遍是原因之一,不過就算現在有人想做一個專門
對nand flash的file system,而且是好到大家都採用的,
我看也很難,第一是目前所有的nand flash廠商做出來的nand flash
規格都不盡相同,第二是這方面的重要專利都分別在不同的
公司手中,每家又都有自己專屬的產品,不可能有人能推出一統
江湖的file system。

基本上FTL裡面包含的address mapping、static/dynamic file wear leveling、
garbage collection等功能,都是SD/CF card辦不到的,一來是這些
都有專利保護,二來是需要大量的ram來運算,假如想把SD/CF card或是
一般的nand flash內建進smartphone來用,恐怕會面臨用不到多久
就壞掉的地步,我想宏達電會用mDOC而不用一般的nand flash,
是做過仔細研究的,如果你仔細把所有的ms mobile phone都拆開來看,
我相信你應該會發現幾乎沒幾個是拿一般的nand flash當做embedded flash的。

基本上flash file system相關的專利不少,你有興趣不妨去美國專利網站
看一看,郭大維的東西很多也是從那邊抄過來的。
http://www.ddj.com/184409797

這是 DDJ 2001 的文章.

Flash Memory 大至上分二種, 使用 FTL, 或者用 ATA.


說明:
FTL, 系統硬體是將 Flash 視為 linear 的儲存設備,
由系統 host 端上的 FTL, 將它轉為一般的 filesystem
ATA, 則是在硬體上加了 microporcessor, RAM,
對系統 host 看到而言, 就是一般的 disk 儲存設備
(同一個 secore 可修改, 但其實在實體上, 還是會由硬體
    去做 dirty-block, 位址轉換有的沒的)
(ATA 的支持廠商包括 SanDisk, 所以.. SD 應該就是用這類的)

速度,
FTL 快三倍到四倍,
原因是, host 端的 cpu 愈來愈快, FTL 的 overhead 愈來愈小,
而 ATA 上的硬體轉換太慢, 且 ATA 硬體介面的 times 限制.
但在有些 ATA 在 dirty 比較多時, 是會比 FTL 要好的.
"some ATA flash cards gain an advantage over linear flash cards as the flash memory becomes more "dirty."
(在清 dirty, FTS 是要靠 host (OS) 去做的, ATA 則會由硬體上去做)

(
這是 2001 文章, 當時 ATA 速度是不夠快的,
而且, 隨著製程進步, ATA 上的 processor 也會進步,
或許 SD 上受限於大小, 電力, 不可能用什麼太快的 processor,
但我有興趣的是做成 1.8"/2.5" 這種 Flash ATA,
這個不需要 host 的 FTS, 上面應該也可以裝很快的 processor...
)
ec wrote:
WM5 是自己在管理 NAND load 到 RAM 的機制.


我猜沒什麽人敢用這種embedded在WM5裏的FTL. 畢竟WM的device是開放系統, USER亂裝亂搞導致系統重負載時, 萬一FTL的效率受到影響可能會發生災難.....

ec wrote:
而且, 隨著製程進步, ATA 上的 processor 也會進步,
或許 SD 上受限於大小, 電力, 不可能用什麼太快的 processor,
但我有興趣的是做成 1.8"/2.5" 這種 Flash ATA,
這個不需要 host 的 FTS, 上面應該也可以裝很快的 processor...


memory card 的controller其實也跑得頗快, 有些人跑到48Mhz, 也有人擺32 bit RISC (ARM之類的)來跑, 這也是爲什麽SD, CF看起來頗耗電的原因. 沒辦法, 大家不會注意SD的耗電量, 但傳輸速率一定是會被比到的.
其實要在embedded platform上做可靠的FTL, 我的意見是去買現成的SD card controller配NAND(現在的RISC大多有SD host interface), 或是mDOC. 自己花大功夫開發搞不好又貴又爛

chliusis wrote:
基本上FTL裡面包含的address mapping、static/dynamic file wear leveling、
garbage collection等功能,都是SD/CF card辦不到的,一來是這些
都有專利保護,二來是需要大量的ram來運算


一般的SD/CF controller都必備您提到的功能. 現在的記憶卡都必須經得起user無理使用的考驗, 例如讀寫中拔卡等. memory card controller的成本也不如您想像的那麽高. 現在主流的SD controller ASP都在0.5~0.8 USD, 毛利率大概%30~%50間, 以.25 or .18 um process製造. 我們算成本0.4好了, SD card controller的package比較貴再扣一毛五, 0.25 USD的die area再扣除pad是擺不了多複雜的咚咚.

所以做這些controller的廠商(包含msystem), 其核心技術就是FTL, 要把它做到很可靠很小. 這東西的學問不是爬論文看得到或拿錢買得到的; 您如果向賣RTOS的廠商買這類東西, 他們的footprint大概都是數十K起跳. 我自己寫給MP3用的FTL包含您提到的功能, 用8 bit 6502執行footprint大約是ROM 10K RAM 1K, 所以啦........

至於專利....在臺灣的話.....哈哈哈......
老實說包在silicon裏的東西要把它挖出來看看還真是一件大工程. 如果那些有專利的人要想到花這些工來告您, 八成是閣下已經發了橫財樹大招風啦. 既然有錢, 那還怕人家告嗎?
早買早享受 晚買晚後悔 不買不高興
ec wrote:
這是 2001 文章, 當時 ATA 速度是不夠快的,
而且, 隨著製程進步, ATA 上的 processor 也會進步,
或許 SD 上受限於大小, 電力, 不可能用什麼太快的 processor,
但我有興趣的是做成 1.8"/2.5" 這種 Flash ATA,
這個不需要 host 的 FTS, 上面應該也可以裝很快的 processor...
...(恕刪)


基本上flash file system有一個特性,就是wear leveling要做的好,
efficiency就會差,除非是加大ram的量,但是成本就高,這是
nand flash與天俱來的問題,如何去做trade off,就看廠商與
使用者的選擇了。

不過原始的發問者問的是到底是ram大還是rom大比較好,基本上
ram的耗電量太大,所以一般到64MB,就很少看到更多的了,
而flash rom的size愈大,雖然耗電量也大,但是還是遠比ram
小的多,所以你才會看到大部份flash rom的size比ram來的大,
所以就我個人而言,當然是rom愈大愈好,不過如果你要等的話,
將來flash rom還會更大,明年就會有1GB以上的機種會推出來了,
後年也許就加到2GB,所以應該還是看你自己的需求如何,否則
永遠都有更好的東西會出來,買了馬上就後悔。
  • 2
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?