本章提供了長(zhǎng)擦除的指導(dǎo)原則和計(jì)算擦除超時(shí)值的方法。
擦除單元速度類(lèi)規(guī)范定義了一個(gè)新的管理單元AU(分配單元)。擦除超時(shí)計(jì)算被定義為AU的基礎(chǔ)。SD存儲(chǔ)卡支持塊擦除,但擦除塊需要更多的時(shí)間,這是AU(部分擦除AU)的一部分。在這種情況下,主機(jī)應(yīng)該在以AU為基礎(chǔ)計(jì)算的超時(shí)結(jié)果中添加250毫秒。當(dāng)開(kāi)始和結(jié)束塊位于相同的部分擦除AU時(shí),應(yīng)添加500ms。
擦除時(shí)間特性案例分析
下圖顯示了擦除特性的示例,擦除的AU數(shù)量與擦除時(shí)間的關(guān)系。擦除時(shí)間是通過(guò)使用一個(gè)Erase命令擦除指定數(shù)量的au得來(lái)的。假設(shè)擦除是在AU基礎(chǔ)上進(jìn)行的,其擦除特性可以近似為一條直線。圖中線A為典型特征。紅線表示主機(jī)應(yīng)該使用的擦除超時(shí)值。超時(shí)值可由a行確定。如果擦除超時(shí)小于1秒,則主機(jī)應(yīng)使用1秒作為超時(shí)。如果超時(shí)大于1秒,主機(jī)應(yīng)該使用行A確定的值。寄存器參數(shù)Nerase, Terase和Toffset定義線的形狀。TERASE表示從TOFFSET中擦除NERASE AUs的超時(shí)時(shí)間。TERASE和NERASE決定直線的斜率。ToFFSET通過(guò)在上方平行移動(dòng)來(lái)調(diào)整線條。卡制造商應(yīng)確定這些參數(shù),使線路始終大于任何AUs的擦除時(shí)間。實(shí)際擦除時(shí)間為始終小于擦除超時(shí)時(shí)間,線的斜率應(yīng)小于3秒每AU。
下圖中的行B是擦除特性的另一個(gè)示例。紅線表示主機(jī)應(yīng)該使用的擦除超時(shí)值。由于超時(shí)大于1秒,紅線和B線是等效的。
AU的擦除時(shí)間不得超過(guò)3秒。ToFFSET主要用于調(diào)整AU的擦除超時(shí)時(shí)間。
SD NAND 或SD卡 大面積擦除方法
多個(gè)AUs計(jì)算的擦除超時(shí)時(shí)間可能與實(shí)際擦除時(shí)間相比太大擦除超時(shí)的計(jì)算不準(zhǔn)確,因?yàn)橛?jì)算的超時(shí)包括空白。每個(gè)AU的余量會(huì)累積,并且為大量AU計(jì)算超時(shí)的結(jié)果將包含較大的余量。這樣的計(jì)算是沒(méi)有意義的,因?yàn)椴铑~的范圍可能以分鐘為單位。因此,應(yīng)一次擦除少量au。這使主機(jī)能夠以更少的錯(cuò)誤計(jì)算更小的超時(shí)。
應(yīng)用說(shuō)明:當(dāng)大面積擦除時(shí),主機(jī)應(yīng)在AU邊界處將其劃分為小區(qū)域,并使用小區(qū)域擦除超時(shí)時(shí)間連續(xù)擦除小區(qū)域。擦除一個(gè)大的區(qū)域可能需要很長(zhǎng)時(shí)間,因此主機(jī)應(yīng)該通知用戶(hù)擦除的進(jìn)度,否則用戶(hù)可能會(huì)中止擦除的執(zhí)行。
通過(guò)參數(shù)寄存器計(jì)算擦除超時(shí)時(shí)間
X AU的Erase Timeout可由式(6)計(jì)算。
擦除超時(shí)時(shí)間由以下步驟確定:
(1)計(jì)算式(6)。
(2)如果(1)的結(jié)果小于1秒,則將超時(shí)時(shí)間設(shè)置為1秒。
(3)對(duì)于每個(gè)部分擦除AU,應(yīng)在(2)的結(jié)果上增加250 ms。當(dāng)開(kāi)始和結(jié)束塊處于部分擦除au時(shí),將(2)的結(jié)果增加500 ms。
設(shè)置塊計(jì)數(shù)命令
CMD12用于停止多塊讀/寫(xiě)操作。然而,CMD12是定時(shí)依賴(lài)的,很難控制定時(shí)以精確定時(shí)發(fā)出CMD12。由于UHS104卡時(shí)鐘和數(shù)據(jù)之間的延遲變化較大,CMD23可以代替CMD12,用于主機(jī)停止多個(gè)讀寫(xiě)操作。主機(jī)不需要控制CMD12的定時(shí)。該命令適用于始終為512字節(jié)塊長(zhǎng)度的讀寫(xiě)操作,此時(shí)SDSc卡不支持此命令。UHS104卡必須支持CMD23。
在SCR中定義了對(duì)CMD23的支持。CMD23的響應(yīng)類(lèi)型為R1,未顯示忙。l CMD23在傳輸狀態(tài)下被接受,對(duì)CMD23后面的多塊讀/寫(xiě)命令(CMD18或CMD25)有效。如果CMD23后面有其他命令,則取消設(shè)置塊計(jì)數(shù)(包括CMD13)。如果發(fā)生命令CRC錯(cuò)誤,卡不返回R1響應(yīng)CMD23。此時(shí)Set block count無(wú)效,需要重試CMD23。如果發(fā)布了多個(gè)CMD23,最后一個(gè)有效。
CMD23的定義如下圖所示。如果參數(shù)中的塊計(jì)數(shù)設(shè)置為0。CMD23無(wú)效。CMD23設(shè)置的塊計(jì)數(shù)值不被卡檢查,然后CMD23在響應(yīng)中不指示任何錯(cuò)誤(CMD23的響應(yīng)中指示先前的命令錯(cuò)誤)。如果設(shè)置了非法塊計(jì)數(shù),讀寫(xiě)時(shí)會(huì)出現(xiàn)超出范圍錯(cuò)誤(例如,在用戶(hù)區(qū)邊界處停止傳輸數(shù)據(jù))。
如果在CMD18和CMD25操作中檢測(cè)到任何錯(cuò)誤,主機(jī)需要發(fā)出CMD12。如果一個(gè)CMD25被終止,并且傳輸?shù)臄?shù)據(jù)量小于前一個(gè)CMD23所指示的數(shù)據(jù)量,則CMD23所指定的未寫(xiě)入?yún)^(qū)域可能包含未定義數(shù)據(jù)。如果傳輸?shù)臄?shù)據(jù)量大于前面CMD23所指示的數(shù)據(jù)量,則不寫(xiě)入額外的數(shù)據(jù)。
-
NAND
+關(guān)注
關(guān)注
16文章
1686瀏覽量
136281 -
存儲(chǔ)卡
+關(guān)注
關(guān)注
0文章
253瀏覽量
28213 -
SD
+關(guān)注
關(guān)注
1文章
164瀏覽量
33712
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論