摘 要衛(wèi)星數(shù)傳綜合處理器采用了NAND FLASH芯片作為主要的存儲介質(zhì)。芯片資料顯示,F(xiàn)LASH芯片具有十萬次擦寫壽命。隨著芯片的使用老化,其壞區(qū)將逐漸增加。但在實際使用中,F(xiàn)LASH芯片的壞區(qū)增長與擦寫次數(shù)為怎樣的關(guān)系,目前尚未有實際實物參照數(shù)據(jù)。通過FLASH芯片壽命試驗,在地面模擬FLASH芯片在空間連續(xù)加電并多次擦除、寫和讀操作,經(jīng)過10萬次擦除試驗后芯片壞區(qū)并未增加,總壞區(qū)比例不超過廠家指標(biāo)值。
【關(guān)鍵詞】FLASH 壞區(qū) 壽命
1 引言
衛(wèi)星數(shù)傳綜合處理器采用大容量NAND FLASH芯片作為主要存儲介質(zhì),NAND FLASH芯片出廠時便存在壞區(qū),因此單機(jī)的存儲容量設(shè)計時留有一定的容量備份以補(bǔ)充因壞區(qū)造成的容量損失。FLASH的壞區(qū)數(shù)在使用過程中會增加,但產(chǎn)生的壞區(qū)數(shù)與擦除/編程次數(shù)的變化曲線目前還未知。根據(jù)廠家提供的資料表明,10萬次擦除壽命末期單片的某一層壞區(qū)累計不到容量的2%,但缺乏廠家準(zhǔn)確的測試曲線,尚無法判斷存儲芯片在壽命末期的壞區(qū)情況。
壽命試驗主要是摸底擦除次數(shù)增加與壞區(qū)的變化趨勢,依據(jù)該試驗數(shù)據(jù)再對數(shù)傳綜合處理器壽命末期的存儲容量做準(zhǔn)確計算;同時單機(jī)在設(shè)計時留有了足夠的存儲空間余量,以確保衛(wèi)星壽命末期的任務(wù)完成。
2 FLASH芯片出廠測試
壽命試驗使用的芯片為64G FLASH芯片,該芯片由8片8Gb NAND FLASH芯片疊裝組成,每個芯片包含4096塊,每塊包含64頁,每頁包含4K字節(jié)的存貯片。FLASH芯片出廠前,生產(chǎn)廠家做的電性能測試僅針對芯片每個層的0#區(qū)塊。在實際使用過程中發(fā)現(xiàn)有FLASH芯片奇數(shù)塊出錯現(xiàn)象,考慮到存儲芯片在裝配完后拆裝返修非常困難,因此在裝配前需要對存儲芯片所有區(qū)塊進(jìn)行測試,確保單機(jī)后續(xù)階段不會因為存儲芯片本身的問題而影響進(jìn)度。
3 壽命試驗設(shè)計
根據(jù)FLASH芯片的工作原理,擦除操作可以檢測壞塊的增長情況,寫操作可以檢測壞頁的增長情況,通過這兩個操作可以考核芯片長時間的加電工作后性能是否會下降(監(jiān)視不同模式下的電流是否增加、擦除時間是否會超時以及編程時間是否延長),芯片的壞區(qū)是否會增加。FLASH芯片壽命試驗具體包括以下三方面內(nèi)容:
(1)選用的FLASH芯片在產(chǎn)品壽命末期是否能夠滿足總體指標(biāo)要求;
(2)FLASH芯片的擦除次數(shù),以及擦除操作過程中,壞區(qū)是否增長,增長的趨勢如何;
(3)針對FLASH芯片奇數(shù)塊出錯現(xiàn)象,試驗驗證平臺應(yīng)同時測試多個芯片,剔除次品。
壽命試驗驗證平臺設(shè)計如圖1所示。
驗證板上使用兩塊XILINX公司的FPGA XCV600-4CB228(為滿足高低溫實驗考慮溫度范圍,選用工業(yè)級器件),一塊FPGA控制三片F(xiàn)LASH,共實現(xiàn)同時測試6塊FLASH芯片,利用FPGA內(nèi)部RAM資源存儲數(shù)據(jù)錯誤地址,所有控制命令通過一個串口發(fā)出,F(xiàn)LASH狀態(tài)也通過串口傳出。
驗證板通過定制的朝陽電源供電,該電源有限流、過壓、過載保護(hù),承受工作環(huán)境溫度為-10℃~+70℃,可保證測試設(shè)備正常工作。所有的操作都可以通過控制計算機(jī)軟件界面發(fā)出指令來完成。軟件由兩個部分組成:控制指令模塊,工作狀態(tài)顯示模塊。
FLASH芯片壽命試驗驗證平臺組成示意圖如圖2所示。試驗設(shè)備包括高低溫箱一個、試驗板1套、穩(wěn)壓電源1套、測試計算機(jī)1臺、測試電纜一套,試驗溫度為45℃。
試驗過程中,串口1實時顯示操作次數(shù),每次操作時的壞區(qū)總數(shù),串口2實時顯示擦除和編程超時或反饋出錯的區(qū)塊號,串口3用于下傳所有的壞區(qū)表、接收指令恢復(fù)某一壞區(qū)等需要交互的操作。壽命試驗過程中每隔一定的動作次數(shù)后,需進(jìn)行手動測試,通過串口遙測記錄芯片在不同操作模式下的工作電流、壞區(qū)表、擦除反饋錯誤、擦除超時壞區(qū)、編程反饋錯誤、編程超時壞區(qū)以及誤碼率,并進(jìn)行統(tǒng)計,最后繪成曲線。測試臺需斷電保持芯片擦寫的次數(shù),并在串口遙測中顯示。
4 主控FPGA操作流程
驗證板上FPGA主要控制FLASH芯片的擦除、寫和讀操作,各操作的流程如下。
4.1 塊擦除流程
塊擦除操作的第一個指令為60H,將其發(fā)送到I/O端口,并控制ALE、CLE、CE#、WE#、RE#信號選擇命令輸入;傳輸3個周期的塊地址信息,在WE#信號的下降沿鎖存地址寄存器;發(fā)送第二個指令D0H到I/O端口,同時控制相應(yīng)的控制信號;讀狀態(tài)寄存器,若IO6為1或者R/B忙信號由低變?yōu)楦弑硎疽呀?jīng)完成擦除操作;判斷IO0,若不為0表示該塊為壞塊。
4.2 寫頁流程
寫頁操作的第一個指令是80H;傳輸5個周期的地址信息;將數(shù)據(jù)通過I/O接口發(fā)送到存儲器的數(shù)據(jù)寄存器中;發(fā)送第二個指令10H到I/O端口;讀狀態(tài)寄存器,若IO6為1或者R/B忙信號由低變?yōu)楦弑硎疽呀?jīng)完成寫頁操作。若寫過程中產(chǎn)生壞塊,一般在寫過程中不更新壞塊表,可根據(jù)讀出數(shù)據(jù)內(nèi)容進(jìn)行地址定位,然后根據(jù)壞塊地址注入指令將壞塊地址寫入壞塊表中,以此更新壞塊表。
4.3 讀頁流程
讀頁操作的第一個指令是00H;傳輸5個周期的地址信息;發(fā)送第二個指令30H到I/O端口;等待R/B忙信號由低變?yōu)楦撸硎敬鎯ζ饕呀?jīng)把目標(biāo)頁中的數(shù)據(jù)全部讀出到其內(nèi)部的數(shù)據(jù)寄存器;控制相應(yīng)的控制信號選擇讀數(shù)據(jù)模式,在RE#下降沿將數(shù)據(jù)讀出。
5 等價試驗時間估計
查閱依據(jù)芯片手冊,64G的FLASH芯片理論支持的最高工作時鐘為40MHz,40MHz僅是理論值,工程不可實現(xiàn)。因為時鐘越高,對芯片控制的時序余量越小,設(shè)計難度越大,可靠性越低,因此頻率采用一級降額30MHz作為工作時鐘。因此用30MHz的工作時鐘,周期為33.3ns,先擦后寫。
擦除一次時間:依據(jù)芯片手冊,擦除一塊所需時間擦除需1.5~2ms,芯片共有塊數(shù)4096*8=32768,完成一次擦除操作所需時間32768*2ms=65.536s。
寫一次時間:采用8級流水操作,節(jié)約了芯片寫編程的時間,一次8級流水一頁寫操作需耗時(4096+24)*8*33ns=1088us,寫滿整個芯片共需4096*64*1088us,需耗時285s。
讀一次時間:讀操作讀一頁所需時間(4096+24)*33ns+26us=162us,讀滿整個芯片共需耗時4096*64*8*162us=340s。
根據(jù)FLASH芯片的產(chǎn)品手冊,F(xiàn)LASH芯片的擦除次數(shù)最高不超過10萬次,考慮到試驗的有效性,以及綜合考慮試驗時間和項目進(jìn)展情況,采用擦100次寫100次讀1次模式,完成10萬次的擦除試驗周期為409天。
由于FLASH芯片壞區(qū)增加主要在擦除過程和頁編程過程中產(chǎn)生,又分為擦除后反饋錯誤,擦除超時后判為錯誤、編程反饋錯誤和編程超時后判為錯誤四種情況。因此,試驗中必須對擦除操作和頁寫操作進(jìn)行監(jiān)視,檢測四種情況下的壞區(qū)增長情況,并進(jìn)行統(tǒng)計。
試驗過程必須包含F(xiàn)LASH芯片的擦除和寫操作,考核芯片長時間的加電工作后性能是否下降(監(jiān)視不同模式下的電流是否增加、擦除時間是否會超時和編程時間是否延長),壞區(qū)是否增加。
6 驗證結(jié)果
FLASH芯片壽命試驗總擦除次數(shù)為100000次,試驗開展共409天,試驗結(jié)束后總壞塊數(shù)為36個,并未增加。根據(jù)廠家提供的資料,10萬次擦除壽命末期單片的某一層壞區(qū)累計不到容量的2%,試驗采用的芯片總共4096塊,36個壞塊的比率為0.88%,不超過廠家指標(biāo)值。
參考文獻(xiàn)
[1]宋琪,李姍.針對Flash存儲特性的航天器大容量固態(tài)存儲技術(shù)[J].電子設(shè)計工程,2015,23(04).
[2]劉寅,朱鈞.FLASH存儲單元擦寫過程中的電流分析[J].微電子學(xué)與計算機(jī),1999(03).
作者簡介
楊凌云(1987-),男,江蘇省啟東市人。研究生。硬件工程師。研究方向為空間數(shù)據(jù)處理。
作者單位
上海航天電子技術(shù)研究所 上海市 201109