大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家講的是英飛凌MirrorBit工藝NOR Flash的扇區(qū)架構(gòu)設(shè)計(jì)。
NOR Flash 大家都很熟悉,其內(nèi)部按組織從小到大分為 Page(128B/256B/512B)、Sector(4KB)、Block(32KB/64KB/128KB/256KB)、Chip,其中 Page 是編程單元,Sector/Block/Chip 是擦除單元(一個(gè) Block 由多個(gè) Sector 組成,一顆 Chip 由多個(gè) Block 組成)。關(guān)于擦除,F(xiàn)lash 提供了不同大小的單元粒度,也是為需要數(shù)據(jù)和參數(shù)存儲(chǔ)的應(yīng)用程序提供更大的靈活性。
最近痞子衡在支持 RT1170 客戶過程中就在英飛凌 NOR Flash S25HL512T 擦除上遇到了一些問題,后來翻看 Flash 數(shù)據(jù)手冊(cè),才發(fā)現(xiàn)它的擦除單元設(shè)計(jì)有特別之處,今天痞子衡就給大家介紹一下:
一、英飛凌NOR Flash系列
我們先來看一下目前英飛凌主流 NOR Flash 系列,從接口上看有 Parallel/QSPI/Octal/HyperBus 四種,從工藝上看有 45nm MB/65nm MB/65nm FG 三種:
其中屬于 65nm FG 工藝(也稱 ETOX)下的 QSPI Flash S25FL064L 算是我們比較耳熟能詳?shù)男吞?hào),這和大家常用的 Winbond/GigaDevice/MXIC 家的 NOR Flash 差別不大(這三家的產(chǎn)品也是基于 FG 工藝,一個(gè)基本存儲(chǔ)單元 CELL 僅存儲(chǔ)一個(gè)比特位),無需特別注意。
其它 Flash 均是 45/65nm MB 工藝下的產(chǎn)物,MB 是 MirrorBit 的縮寫,這是 Spansion 公司主推的一種閃存技術(shù),其與英特爾的 MLC 方案非常類似,它也是通過讓一個(gè)基本存儲(chǔ)單元 CELL 存儲(chǔ)兩個(gè)(或更多)比特位,實(shí)現(xiàn)容量增倍的目的。
MB 工藝和 FG 工藝各有優(yōu)缺點(diǎn),MB 工藝的優(yōu)點(diǎn)是容量大、價(jià)格便宜、擦寫快,缺點(diǎn)則是可靠性較差,高溫下容易發(fā)生 bit 反轉(zhuǎn)導(dǎo)致數(shù)據(jù)錯(cuò)誤(當(dāng)然這也可以通過增加 ECC 特性來改善)。
二、MirrorBit下不一樣的扇區(qū)架構(gòu)
我們就以英飛凌 S25HL512T 型號(hào)為例介紹其扇區(qū)架構(gòu)設(shè)計(jì),其余 MirrorBit 工藝下的 Flash 扇區(qū)設(shè)計(jì)也類似。
S25HL512T 數(shù)據(jù)手冊(cè)開篇就直接點(diǎn)明了工藝特性以及扇區(qū)架構(gòu)設(shè)計(jì),這其實(shí)就是提醒用戶這里要特別注意,扇區(qū)一共有三種不同的配置選項(xiàng),用戶可根據(jù)項(xiàng)目實(shí)際情況按需配置(設(shè)置 Flash 相應(yīng)配置寄存器)。
和扇區(qū)架構(gòu)配置相關(guān)的 Flash 寄存器位分別是 CFR3[3]、CFR1[6]、CFR1[2]:
2.1 配置選項(xiàng)一:僅第一個(gè)Block能拆分出Sector
如果 CFR3[3]、CFR1[6]、CFR1[2] 均為 0,這也是 Flash 出廠的默認(rèn)配置,這種情況下 Flash 第一個(gè) Block(256KB) 里會(huì)包含 32個(gè) 4KB Sector,即 0x00000000 - 0x0001FFFF 區(qū)域可用 Sector Erase 命令(0x20/0x21)去擦除,其余 Block 則無法拆分。
2.2 配置選項(xiàng)二:僅最后一個(gè)Block能拆分出Sector
如果僅將 CFR1[2] 設(shè)為 1,這種情況下 Flash 最后一個(gè) Block(256KB) 里會(huì)包含 32個(gè) 4KB Sector,即 0x03FE0000 - 0x03FFFFFF 區(qū)域可用 Sector Erase 命令(0x20/0x21)去擦除,其余 Block 則無法拆分。
2.3 配置選項(xiàng)三:第一個(gè)和最后一個(gè)Block能拆分出Sector
如果僅將 CFR1[6] 設(shè)為 1,這種情況下 Flash 第一個(gè)和最后一個(gè) Block(256KB) 里均會(huì)包含 16個(gè) 4KB Sector,即 0x00000000 - 0x0001FFFF、0x03FF0000 - 0x03FFFFFF 區(qū)域可用 Sector Erase 命令(0x20/0x21)去擦除。
2.4 配置選項(xiàng)四:所有Block均無法拆分
如果將 CFR3[3] 設(shè)為 1,那么 Flash 里所有 Block(256KB) 均無法拆分,此時(shí)擦除也只能用 Block Erase 命令(0xD8/0xDC)。
現(xiàn)在我們知道 MirrorBit 工藝下的 Flash 扇區(qū)架構(gòu)相比 FG 工藝 Flash 在粒度劃分上要粗糙得多,靈活性降低了,這在做程序設(shè)計(jì)、下載算法時(shí)均需要特別考慮。
至此,英飛凌MirrorBit工藝NOR Flash的扇區(qū)架構(gòu)設(shè)計(jì)痞子衡便介紹完畢了,掌聲在哪里~~~