專利名稱:用于寫緩沖器閃存編程和雙字閃存編程的編程方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及可編程器件,更特別地,涉及在進(jìn)行在線測試(in-circuittest)期間對閃存器件進(jìn)行寫緩沖器和雙字編程。
背景技術(shù):
產(chǎn)品產(chǎn)量較大的制造商有幾種選擇用于對產(chǎn)品內(nèi)的可編程器件進(jìn)行編程。一種選擇是在把器件裝配和焊接到印制電路板(PCB)之前對器件進(jìn)行編程。另一種選擇是在把器件焊接到PCB之后對器件進(jìn)行編程。
由于在后面的制造過程中才對部件進(jìn)行編程的本質(zhì)特性,板上編程(onboard programming)通常更加靈活。在后面的過程中出現(xiàn)產(chǎn)品定制時,重寫的可能性較少。將可編程器件送出進(jìn)行編程可以造成兩天或十天的延時。這種延時導(dǎo)致需要手頭可以得到長達(dá)十天的預(yù)備要編程的器件。當(dāng)編程出現(xiàn)變化時,手頭和在流水線上的預(yù)編程器件需要重新編程。在板上對器件進(jìn)行編程則將這兩天到十天的存貨減少到0,將重新編程的需要減少到僅僅需要對已經(jīng)生產(chǎn)的PCB重新編程,而對已經(jīng)生產(chǎn)的PCB重新編程可能在任一情況中都需要。
在板上對器件編程有幾種選擇。常用的方法是使用在線測試器(ICT)以下載代碼到器件。在產(chǎn)品產(chǎn)量較大的制造環(huán)境中,下載時間加上實(shí)際ICT測試時間必須在制造過程的時間要求之內(nèi),否則在ICT中就可能形成瓶頸。對閃存編程速度的改進(jìn)可以消除這種瓶頸。在ICT在要求的時間幀之內(nèi)完成的編程幾乎是免費(fèi)的,但是在殼體外或者在分離的平臺上執(zhí)行的編程可以是很昂貴的。當(dāng)已經(jīng)執(zhí)行了在線測試時,如果使用ICT完成編程,則費(fèi)用可能接近為0。編程速度對于實(shí)現(xiàn)接近0的費(fèi)用是非常關(guān)鍵的。
通常,ICT使用向量處理器進(jìn)行測試和編程。但是,閃存器件的幾種可選的編程對于基于向量的系統(tǒng)并不奏效。例如,在Spansion LLC MirrorBitTM閃存家族中使用的寫緩沖器模式對于基于向量的系統(tǒng)不奏效。關(guān)鍵在于,基于向量的系統(tǒng)擅于使用“固定”的編程算法,但是不能處理動態(tài)做決定的編程方法,例如,寫緩沖器模式。
因此,在進(jìn)行在線測試期間對閃存器件進(jìn)行緩沖器編程的方法將會是有益的。結(jié)果,可以對閃存器件快速編程,從而ICT測試期間編程費(fèi)用接近免費(fèi)。
發(fā)明內(nèi)容
下面描述在進(jìn)行在線測試期間用于對閃存器件進(jìn)行編程的方法和系統(tǒng)。方法包括讀取存儲在所述閃存器件中的可執(zhí)行代碼;將所述可執(zhí)行代碼插入陣列,其中所述可執(zhí)行代碼的每一行被插入到所述陣列中的各行,其中所述陣列中的每一行具有相同數(shù)目的位;對所述陣列中具有數(shù)據(jù)的行的數(shù)目進(jìn)行計數(shù);以及提供所述陣列和所述陣列中具有數(shù)據(jù)的行的數(shù)目作為輸出。該方法還包括將所述行的計數(shù)調(diào)整為循環(huán)程序中使用的行的數(shù)目的倍數(shù);改變endian格式;使用地址偏移值以在第一閃存地址開始;使用所述陣列和所述行的計數(shù)以對所述閃存器件一次編程多于一個字;使用所述陣列和所述行的計數(shù)來對所述閃存器件進(jìn)行寫緩沖器編程;和/或使用所述陣列和所述行的計數(shù)來對所述閃存器件進(jìn)行雙字編程。
另一種用于在進(jìn)行在線測試期間對閃存器件進(jìn)行編程的方法包括讀取存儲在所述閃存器件中的可執(zhí)行代碼;將所述可執(zhí)行代碼插入陣列;對所述陣列中具有數(shù)據(jù)的行的數(shù)目進(jìn)行計數(shù);識別扇區(qū)地址位置以啟動編程;以及使用所述陣列對所述閃存器件進(jìn)行編程,所述編程始于識別出的扇區(qū)地址位置,并基于所述行的計數(shù)結(jié)束。所述可執(zhí)行代碼的每一行被插入到所述陣列中的各行,其中所述陣列中的每一行具有相同數(shù)目的位。
一種用于在進(jìn)行在線測試期間對閃存器件進(jìn)行編程的系統(tǒng)包括處理器;數(shù)據(jù)存儲器;機(jī)器語言指令,存儲在所述數(shù)據(jù)存儲器中,可由所述處理器執(zhí)行以讀取存儲在所述閃存器件中的可執(zhí)行代碼,將所述可執(zhí)行代碼插入陣列,其中所述可執(zhí)行代碼的每一行被插入到所述陣列中的各行,所述陣列中的每一行具有相同數(shù)目的位,對所述陣列中具有數(shù)據(jù)的行的數(shù)目進(jìn)行計數(shù),以及使用所述陣列和所述行的計數(shù)以對所述閃存器件一次編程多于一個字。
該系統(tǒng)還可以包括存儲在所述數(shù)據(jù)存儲器中且可由所述處理器執(zhí)行,以將所述行的計數(shù)調(diào)整為在循環(huán)程序中使用的多行的倍數(shù),改變endian的格式,以及使用地址偏移值而在第一閃存地址開始的機(jī)器語言指令。
所述可執(zhí)行代碼可以是S-Record、Intel Hex、二進(jìn)制、代碼圖像、或任意其它合適的文件格式。所述陣列中的每一行可以具有32字節(jié)、16字節(jié),或4字節(jié)??梢允褂脤懢彌_器編程或雙字編程對閃存器件進(jìn)行編程。
參考附圖以及通過閱讀以下詳細(xì)描述,其他方案和優(yōu)點(diǎn)對于本領(lǐng)域技術(shù)人員將會變得明顯。而且,可以理解的是本發(fā)明內(nèi)容僅僅是實(shí)例,并不意圖限制本發(fā)明所要求保護(hù)的范圍。
下面,參照所附附圖描述本優(yōu)選實(shí)施例,其中不同附圖中相似的參考標(biāo)記表示相似的元件,其中圖1是根據(jù)實(shí)例,在線測試器的框圖;圖2是根據(jù)實(shí)例,電路板面板的框圖;圖3是根據(jù)實(shí)例,字節(jié)對齊程序的流程圖;圖4是用于對圖3所描繪的程序進(jìn)行初始化的用戶接口的實(shí)例的屏幕截圖;以及圖5是根據(jù)實(shí)例,使用圖3所描繪的對齊程序的輸出的寫緩沖器程序的流程圖。
具體實(shí)施例方式
圖1是在線測試器(ICT)100的框圖。作為非限制實(shí)例,ICT 100可以是HP/Agilent 3070。通常,ICT 100包括測試夾具104、測試頭106,和計算機(jī)108。可以將ICT 100設(shè)計為測試印制電路板(PCB)102或測試包括多于一個PCB的電路板面板,例如,參考圖2描述的電路板面板200。例如,ICT100可以測試PCB 102或電路板面板200的短路、斷路、最大電流(currentdraw)、容差,和/或功能性??梢詾槊總€PCB設(shè)計定制測試夾具104。
計算機(jī)108包括處理器;數(shù)據(jù)存儲器;和機(jī)器語言指令,如本領(lǐng)域公知的,存儲在數(shù)據(jù)存儲器中且可由處理器來執(zhí)行。計算機(jī)108不限于具有任何特定類型的處理器、數(shù)據(jù)存儲器,或者指令格式。計算機(jī)108可以選擇專門用于特定類型的電路板設(shè)計的測試應(yīng)用程序。通常,測試應(yīng)用程序?qū)⑿畔鬟f到測試頭106并接收信息作為響應(yīng)。
測試頭106從計算機(jī)108接收信息并且通過驅(qū)動測試頭106上的許多測試插腳110來做出響應(yīng),這些測試插腳110包括將數(shù)據(jù)和地址信息提供給測試夾具104的測試插腳110。測試夾具104包括與至少部分測試插腳110對齊的觸點(diǎn)112,其被引至相應(yīng)的彈性探針114。彈性探針114以這樣的方式設(shè)置,從而當(dāng)PCB 102或者電路板面板200被放在測試夾具104時,彈性探針104與位于PCB 102或者電路板面板200的底部表面上的各個測試墊片相接觸。這些測試墊片與連接于PCB102或電路板面板200的組件的多種插腳相連。
計算機(jī)108中的處理器可以是向量處理器,其用于測試PCB 102或電路板面板200。向量處理器生成發(fā)送到PCB 102或電路板面板200的輸入,而作為響應(yīng),向量處理器期望來自PCB 102或電路板面板200的特定輸出。如果向量處理器接收到期望的輸出,那么這種特定測試圖案(pattern)可以被認(rèn)為通過測試。相反,向量處理器可以識別測試失敗,這表明PCB 102或電路板面板200有問題。當(dāng)向量處理器提供了對PCB 102或電路板面板200的有效測試時,這種類型的處理器不能夠做決定。
ICT 100還可以用于對PCB 102或電路板面板200上的存儲器組件進(jìn)行編程。例如,ICT 100可以用于對位于PCB 102或電路板面板200上的閃存器件進(jìn)行編程。通常,ICT 100將編程命令發(fā)送給閃存器件,應(yīng)用待編程的地址和數(shù)據(jù),然后輪詢以驗證編程是否完成。通常,每個閃存器件類型都具有提供給ICT 100的用于編程的特定指令。
圖2是電路板面板200的框圖。電路板面板200可以包括多于一個的PCB,例如,PCB 202-212。雖然所示電路板面板200具有6個PCB 202-212時,但電路板面板200也可以具有多于或少于6個PCB電路板。PCB 202-212通常是為了制造效率而制造為一個電路板的面板的相同電路的多個實(shí)例??梢栽谥圃旌蜏y試之后通過切割或折斷來分離PCB 202-212,以提供單個產(chǎn)品。例如,PCB 202-212中的每一個可以是調(diào)制解調(diào)器板。
一些閃存器件可以設(shè)計為使用程序提供者的特定程序來編程,其中該程序提供者的特定程序設(shè)計為一次編程多于一個字。例如,Spansion LLC提供了MirrorBitTM閃存器件家族,該閃存器件家族包括寫緩沖器編程。Spansion的寫緩沖器編程允許編程系統(tǒng)在一次編程操作中最多寫16個字/32個字節(jié)。為了使用這種寫緩沖器編程,32個字節(jié)必須是相鄰的并且不跨越扇區(qū)界限。使用寫緩沖器編程允許比使用字編程時更快地對閃存器件進(jìn)行編程。根據(jù)Spansion的文檔,字編程大約要花費(fèi)寫緩沖器模式所花費(fèi)的四倍的時間。
作為另一個例子,STMicroelectronics提供雙字或者四字節(jié)編程模式。請注意雙字和四字節(jié)是一樣的,并且在這里都被稱為雙字模式。雙字模式需要四個連續(xù)的字節(jié)來進(jìn)行編程。但是,對于標(biāo)準(zhǔn)的Motorola S-Recond或IntelHEX文件,行尾為0xFF的字或者0xFF的整個行被從文件中剝離,這樣可以使每一行留下奇數(shù)個字節(jié)。
很遺憾,ICT 100不能使用寫緩沖器模式或者雙字模式來對閃存器件編程,這是因為向量處理器不能做決定。例如,ICT 100不能在文件中向前搜索并且決定哪一個地址可以使用雙字模式而哪一個地址不能使用雙字模式。因此,提供這樣一種方案是有益的允許ICT 100使用寫緩沖器模式和/或雙字模式對PCB 102或電路板面板200上的閃存器件編程。
通過克服向量處理器的限制,ICT 100可以用于在寫緩沖器模式和雙字模式下對閃存器件編程。參照圖3-圖5所示,對于寫緩沖器模式,這可以通過執(zhí)行閃存的字節(jié)對齊程序,隨后執(zhí)行寫緩沖器程序來實(shí)現(xiàn)。相似地,對于雙字模式,可以通過執(zhí)行閃存的字節(jié)對齊程序,隨后執(zhí)行雙字程序來實(shí)現(xiàn)。通過使用寫緩沖器程序?qū)嵗?,,本領(lǐng)域技術(shù)人員就可以在執(zhí)行字節(jié)對齊之后,使用程序提供者提供的規(guī)范實(shí)現(xiàn)ICT 100的雙字編程算法。
圖3是字節(jié)對齊程序300的流程圖。字節(jié)對齊程序300是軟件例行程序,其將閃存編程保持在鄰近的字節(jié)上。除了對齊數(shù)據(jù),字節(jié)對齊程序300還可以確保扇區(qū)邊界沒有被破壞。字節(jié)對齊程序300還可以用于確保使用特定的若干行,從而使循環(huán)程序可以中止在偶數(shù)上。通過將全部字節(jié)與32、16或4字節(jié)對齊,在從字節(jié)0開始時,可以保持扇區(qū)對齊。優(yōu)選地,使用32字節(jié)對齊來提高編程速度。
使用Motorola格式S-Record文件的非限制實(shí)例來描述字節(jié)對齊程序300,其為存儲在一些閃存器件中的可執(zhí)行代碼。在最終的Motorola S-Record文件中,行的總數(shù)目被2048整除,以使程序循環(huán)倍數(shù)可以被整除。MotorolaS-Record文件的格式是AABBCCCDDDDEE,其中AA(1字節(jié))該記錄類型以后面跟隨有單個數(shù)字的S開始。記錄類型定義了要跟隨什么數(shù)據(jù)格式和數(shù)據(jù)類型。標(biāo)準(zhǔn)類型是開始記錄、數(shù)據(jù)記錄,和結(jié)束記錄。字節(jié)對齊程序500使用下面的記錄類型S0=開始記錄S1=數(shù)據(jù)記錄(4字符地址,2字節(jié))S2=數(shù)據(jù)記錄(6字符地址,3字節(jié))S3=數(shù)據(jù)記錄(8字符地址,4字節(jié))S7=結(jié)束記錄S8=結(jié)束記錄S9=結(jié)束記錄BB(1字節(jié))記錄長度是該行記錄的字節(jié)計算。字節(jié)計算是地址、數(shù)據(jù)、校驗和域使用的字節(jié)的總數(shù)目。以兩個字符來描述數(shù)據(jù)的每個字節(jié)。
CCC(2、3或4字節(jié),取決于記錄類型)隨后的數(shù)據(jù)所屬的地址位置。第一條數(shù)據(jù)位于列為AAAAH的地址。
DDDD(0到n字節(jié))其為位于所列地址的數(shù)據(jù)。
EE(1字節(jié))校驗和。校驗和是通過取長度地址和數(shù)據(jù)域中的全部字節(jié)的和的補(bǔ)碼而生成的。記錄類型字節(jié)不是校驗和計算的一部分。
雖然當(dāng)前的實(shí)例使用Motorola格式S-Record文件作為輸入和輸出,但可以理解的是也可以使用其他的文件格式,例如Intel Hex,二進(jìn)制,和代碼圖像文件。
在方框302中,字節(jié)對齊程序300被初始化。用戶接口可以用于幫助選擇選項。圖4描繪了實(shí)例性的用戶接口的屏幕截圖400。用戶接口允許用戶定位并選擇想要的S-Record文件。所選的S-Record文件出現(xiàn)在“所選文件”的文本框中。
基于所選的文件轉(zhuǎn)換屬性來處理S-Record文件。圖4中描繪的文件轉(zhuǎn)換屬性是字節(jié)交換和地址偏移量。其他的文件轉(zhuǎn)換屬性是可能的。如圖4所示,在該實(shí)例中選擇地址偏移量檢驗框。如果endian格式需要改變,那么用戶可以選擇字節(jié)交換檢驗框,其將endian從“小endian”變?yōu)椤按骵ndian”或者從“大endian”變?yōu)椤靶ndian”。地址偏移量檢驗框允許使用默認(rèn)偏移量。
默認(rèn)偏移量檢驗框允許選擇TI或者Broadcom文件偏移。其他默認(rèn)偏移量的選擇也是可以的。在初始值地址位置沒有位于地址0時使用偏移量。這可以發(fā)生在產(chǎn)品需要移動存儲器中起始的閃存地址時。圖4中描述的用于兩個選擇的偏移量值是TI=0xB0000000和BROADCOM=0xBFC00000。從S-Recond文件地址中減去偏移量以開始在地址0x00(即,第一閃存地址)尋址。
“S0標(biāo)簽”框允許用戶將注釋插入到S-Record文件的頂部,這是因為ICT 100通常忽略S0行。用戶接口可以允許使用戶額外的信息來初始化字節(jié)對齊程序300?;蛘?,可以設(shè)計字節(jié)對齊程序300使得字節(jié)對齊程序300可以自動進(jìn)行初始化而不使用用戶輸入。
通常,初始化伴隨著為閃存的文件大小而生成的0xFF陣列出現(xiàn)。這基本上是從地址0x00到結(jié)尾的空白閃存。當(dāng)用戶點(diǎn)擊用戶界面上的“處理”按鈕或者開始字節(jié)對齊程序300時,字節(jié)對齊程序300驗證文件設(shè)置和配置選項是有效的,然后開始處理所選的S-Record文件。
返回圖3,在方框304,從閃存器件中逐行讀取S-Record文件。在方框306,在方框304讀取的數(shù)據(jù)被插入或者寫入陣列,改寫0xFF。在方框308,通過減去屏幕截圖400中描繪的用戶接口上所選的地址偏移量來修改地址。如果選擇字節(jié)交換,那么通過交換高字節(jié)和低字節(jié)來插入字節(jié)。逐個方框(302-308)地處理整個S-Record文件直到方框310確定的文件末尾?,F(xiàn)在,字節(jié)對齊程序300在陣列中具有閃存器件的完整圖像。陣列中的每一行具有相同數(shù)目的位,例如,在該實(shí)例中的32字節(jié)(或者256位)。
在方框312中,字節(jié)對齊程序300計算陣列中具有數(shù)據(jù)的行數(shù)。忽略還包含0xFF的任意行。這些被忽略的行可以在陣列的初始化期間產(chǎn)生,并且隨后被從陣列中讀取以及寫入陣列中的S-Record文件改寫。
在計算包含數(shù)據(jù)的行的數(shù)目過程中,具有數(shù)據(jù)的每一行最初都被認(rèn)為是最后的地址。陣列在0x00的基址開始并且從那里繼續(xù)直到最后地址。只要字節(jié)對齊程序500找到包含數(shù)據(jù)的行,那么該行的地址就比前一行的地址大。以這種方式,就知道了具有有效數(shù)據(jù)的最大地址。
在方框314中,作為具有數(shù)據(jù)而計算的行的數(shù)目被調(diào)整為2048的下一個偶數(shù)倍,并且被調(diào)整的數(shù)目變成作為字節(jié)對齊程序300的輸出而包含的行數(shù)。如上所述,在最終的Motorola S-Record文件中的總行數(shù)可以被2048偶數(shù)倍整除,以使得程序循環(huán)倍數(shù)可以被整除的。但是,所計算的行數(shù)可以調(diào)整為適合循環(huán)對齊的任何其他數(shù)目,以便將可工作的常數(shù)提供給ICT 100。
字節(jié)對齊程序300輸出具有數(shù)據(jù)的每一行,并且行數(shù)需要結(jié)束在2048的偶數(shù)倍。字節(jié)對齊程序可以將其輸出存儲在帶有合適后綴的文件中,以識別文件類型,例如以.hpf后綴結(jié)尾的文件。輸出文件可以被存儲在計算機(jī)108中的存儲器內(nèi)。然后,所存儲的文件可以被圖5所描述的寫緩沖器程序500或者其他程序提供者的寫入程序使用。
字節(jié)對齊程序300還可以用于將許多與32不同的字節(jié)對齊。例如,字節(jié)對齊程序300可以用于提供STMicroelectronics雙字模式編程所需的連續(xù)的四字節(jié)對齊。因為行尾是0xFF的字或者0xFF的整個行可以從標(biāo)準(zhǔn)的Motorola S-Record或者Intel HEX文件中剝離,從而使每行有奇數(shù)個字節(jié),所以需要字節(jié)對齊程序300以使用ICT 100來執(zhí)行雙字模式。字節(jié)對齊程序300將丟失的0xFF字節(jié)重新引入到需要確保鄰近的四個字節(jié)對齊的地方。
圖5是使用字節(jié)對齊程序300的輸出的寫緩沖器程序500的流程圖。寫緩沖器是一組用于保持作為一組而要被編程的幾個字的寄存器。在發(fā)出寫緩沖器編程指令之前,緩沖器被待編程的字填充。通過對整個組的字執(zhí)行一次日常編程操作來減少對每個字編程的時間。這導(dǎo)致比標(biāo)準(zhǔn)字/字節(jié)編程算法更快的有效字/字節(jié)編程時間。
如下使用由Spansion LLC提供的寫緩沖器命令集來描述寫緩沖器程序500,但是可以理解的是,可以使用其他閃存器件命令集。在表1中,SA是扇區(qū)地址,WC是字計算,PA是程序地址,PD是程序數(shù)據(jù),以及WBL是寫緩沖器位置。在命令序列中循環(huán)的總數(shù)目是由寫入寫緩沖器的字節(jié)數(shù)目決定的。命令序列中的最大的循環(huán)數(shù)目是37,包括“對緩沖器編程以閃存”命令??梢栽赟pansion LLC文檔中找到額外的信息。
表1在方框502中,進(jìn)行初始化。初始化可以包括禁用在編程期間試圖寫或者訪問閃存器件的其他器件。另外,控制行可以被設(shè)置為合適的值(即,邏輯0或邏輯1)以初始化寫緩沖器編程。寫使能脈沖可以完成初始化過程并且還可以出現(xiàn)在參考方框504-514所描述的每個總線周期之后。在總線周期504-514期間,可以使用在字節(jié)對齊程序300期間獲得的陣列中的數(shù)據(jù)。
在方框504和506中,寫緩沖器編程命令序列可以通過寫兩個未鎖周期來初始化。在第一總線周期期間,地址總線上的數(shù)據(jù)等于555H,而數(shù)據(jù)總線上的數(shù)據(jù)等于AAH。在第二總線周期期間,地址總線上的數(shù)據(jù)等于2AAH,而數(shù)據(jù)總線上的數(shù)據(jù)等于55H。
在方框508中,第三總線周期將寫緩沖器載入命令(即,數(shù)據(jù)總線上的數(shù)據(jù)等于25H)寫入進(jìn)行編程的扇區(qū)地址(SA)。在方框510中,第四總線周期寫待編程的SA和字計算(WC)。在方框512,第五總線周期寫來自陣列的第一地址位置和待編程的數(shù)據(jù)。通過對位AMAX-A4進(jìn)行尋址來選擇寫緩沖器頁。所有隨后的地址/數(shù)據(jù)對必須落在所選擇的寫緩沖器頁內(nèi)。
在方框514中,額外的總線周期將剩余的地址/數(shù)據(jù)對寫入寫緩沖器。在寫入地址/數(shù)據(jù)對之后,在方框516,利用一地址總線上的數(shù)據(jù)(該數(shù)據(jù)等于SA)和一數(shù)據(jù)總線上的數(shù)據(jù)(該數(shù)據(jù)等于29H),執(zhí)行“程序緩沖器到閃存”確認(rèn)命令序列。在另一個寫-使能脈沖后,延時是必要的。
然后,在方框518,基于調(diào)整后的對陣列中具有數(shù)據(jù)的行的計數(shù),寫緩沖器程序500確定S-Record中的所有行是否已經(jīng)被編程。如果沒有,程序500循環(huán)回方框504以重復(fù)第一總線周期的過程。否則,在方框520,執(zhí)行“寫緩沖器終端復(fù)位”命令序列以復(fù)位閃存器件用于下一個操作。
下面還提供了寫緩沖器程序片斷實(shí)例segment 2048repeat 63488 times!***** 1_BusCycle555/AAexecute Unlock_Cycle_1_Cmdexecute Writeexecute End_Cycle!*****2_BusCycle 2AA/55execute Unlock_Cycle 2 Cmd
execute Writeexecute End_Cycle!*****3_BusCycle SA/25(Sector Address)execute Data_W drive data Address drive data Dataexecute Data_W_25execute Writeexecute End_Cycle!*****4_BusCycle SA/WC(sector address/word count)execute Data_W_Fexecute Writeexecute End_Cyclerepeat 16 timesexecute Data_W drive data Address drive data Dataexecute Writeexecute End_Cyclenext Addressnext Dataend repeatexecute Data_W_BufferConfirmexecute Writeexecute End_Cyclewait 4uexecute Three_state waitend repeatend segmentcall Reset_Deviceend unit雖然實(shí)例程序片斷已經(jīng)提供給了寫緩沖程序500,但是可以理解的是存在多種不同的方式來編寫函數(shù),并且寫緩沖器程序不限于任何特定軟件代碼或結(jié)構(gòu)。而且,代替使用寫緩沖程序500,另一程序提供者提供的規(guī)范也可以與字節(jié)對齊程序300結(jié)合使用。
字節(jié)對齊程序300和寫緩沖器程序500(或者其他程序提供者的寫入程序)可以由計算機(jī)108來執(zhí)行。通過使用這些程序,ICT可以實(shí)施程序提供者所設(shè)計的一次編程多于一個字的特定程序。結(jié)果,可以快速對閃存器件進(jìn)行編程,從而在ICT測試期間編程費(fèi)用幾乎免費(fèi)。
應(yīng)該理解的是,所示實(shí)施例僅為示例性的,而不應(yīng)該被認(rèn)為是對本發(fā)明范圍的限制。例如,雖然這里是根據(jù)Spansion閃存器件描述本發(fā)明的,但是本發(fā)明可以利用其他閃存器件來實(shí)現(xiàn),例如由惠普、三星、ST、Atmel和因特爾制造的閃存器件。權(quán)利要求書不應(yīng)該被認(rèn)為是對所描述的順序或元件的限制,除非是對發(fā)明效果的描述。因此,所有落在所附權(quán)利要求書以及其等效的范圍和精神之內(nèi)的實(shí)施例都如同本發(fā)明一樣請求保護(hù)。
權(quán)利要求
1.一種用于在進(jìn)行在線測試期間對閃存器件進(jìn)行編程的方法,包括組合讀取存儲在所述閃存器件中的可執(zhí)行代碼;將所述可執(zhí)行代碼插入陣列,其中所述可執(zhí)行代碼的每一行被插入到所述陣列中的各行,其中所述陣列中的每一行具有相同數(shù)目的位;對所述陣列中具有數(shù)據(jù)的行的數(shù)目進(jìn)行計數(shù);以及提供所述陣列和所述陣列中具有數(shù)據(jù)的行的數(shù)目作為輸出。
2.如權(quán)利要求1所述的方法,還包括將所述行的計數(shù)調(diào)整為循環(huán)程序中使用的行的數(shù)目的倍數(shù)。
3.如權(quán)利要求1所述的方法,還包括改變endian格式。
4.如權(quán)利要求1所述的方法,還包括使用地址偏移值以在第一閃存地址開始。
5.如權(quán)利要求1所述的方法,還包括使用所述陣列和所述行的計數(shù)以對所述閃存器件一次編程多于一個字。
6.如權(quán)利要求1所述的方法,還包括使用所述陣列和所述行的計數(shù)來對所述閃存器件進(jìn)行寫緩沖器編程。
7.如權(quán)利要求1所述的方法,還包括使用所述陣列和所述行的計數(shù)來對所述閃存器件進(jìn)行雙字編程。
8.一種用于在進(jìn)行在線測試期間對閃存器件進(jìn)行編程的方法,包括組合讀取存儲在所述閃存器件中的可執(zhí)行代碼;將所述可執(zhí)行代碼插入陣列,其中所述可執(zhí)行代碼的每一行被插入到所述陣列中的各行,其中所述陣列中的每一行具有相同數(shù)目的位;對所述陣列中具有數(shù)據(jù)的行的數(shù)目進(jìn)行計數(shù);識別扇區(qū)地址位置以啟動編程;以及使用所述陣列對所述閃存器件進(jìn)行編程,所述編程始于識別出的扇區(qū)地址位置,并基于所述行的計數(shù)結(jié)束。
9.一種用于在進(jìn)行在線測試期間對閃存器件進(jìn)行編程的系統(tǒng),包括組合處理器;數(shù)據(jù)存儲器;以及機(jī)器語言指令,存儲在所述數(shù)據(jù)存儲器中,可由所述處理器執(zhí)行以讀取存儲在所述閃存器件中的可執(zhí)行代碼;將所述可執(zhí)行代碼插入陣列,其中所述可執(zhí)行代碼的每一行被插入到所述陣列中的各行,其中所述陣列中的每一行具有相同數(shù)目的位;對所述陣列中具有數(shù)據(jù)的行的數(shù)目進(jìn)行計數(shù);以及使用所述陣列和所述行的計數(shù)以對所述閃存器件一次編程多于一個字。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括存儲在所述數(shù)據(jù)存儲器中且可由所述處理器執(zhí)行,以將所述行的計數(shù)調(diào)整為在循環(huán)程序中使用的行的數(shù)目的倍數(shù)的機(jī)器語言指令。
11.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括存儲在所述數(shù)據(jù)存儲器中且可由所述處理器執(zhí)行,以改變endian的格式的機(jī)器語言指令。
12.根據(jù)權(quán)利要求9所述的系統(tǒng),還包括存儲在所述數(shù)據(jù)存儲器中且可由所述處理器執(zhí)行,以使用地址偏移值而在第一閃存地址開始的機(jī)器語言指令。
13.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述可執(zhí)行代碼是具有選自包括S-Record、Intel Hex、二進(jìn)制,和代碼圖像的組的格式的文件。
14.根據(jù)權(quán)利要求9所述的系統(tǒng),其中所述陣列中的每一行具有相同的字節(jié)數(shù)目,所述字節(jié)數(shù)目選自包括32字節(jié)、16字節(jié),和4字節(jié)的組。
15.根據(jù)權(quán)利要求9所述的系統(tǒng),其中對所述閃存器件進(jìn)行編程包括對所述閃存器件進(jìn)行寫緩沖器編程。
16.根據(jù)權(quán)利要求9所述的系統(tǒng),其中對所述閃存器件進(jìn)行編程包括對所述閃存器件進(jìn)行雙字編程。
全文摘要
一種在進(jìn)行在線測試期間對閃存器件執(zhí)行緩沖器編程的方法和系統(tǒng)。一些閃存器件可以執(zhí)行緩沖器編程,但是ICT不支持本申請。通過生成用于對閃存器件進(jìn)行緩沖器編程的文件,可以使用ICT利用緩沖器編程來對閃存器件進(jìn)行編程,其中該文件每一行具有相同數(shù)目的位。另外,通過將行的計數(shù)調(diào)整為存儲在閃存器件中的可執(zhí)行代碼的長度的偶數(shù)倍,可以使用程序循環(huán)。
文檔編號G11C29/00GK101071643SQ20071010299
公開日2007年11月14日 申請日期2007年5月8日 優(yōu)先權(quán)日2006年5月4日
發(fā)明者格雷格·阿米登, 薩米勒·阿西姆·阿登米爾 申請人:懷斯特爾技術(shù)有限公司