專利名稱:基于通用串行總線的pc閃存盤的體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
和背景本發(fā)明與半導(dǎo)體存儲設(shè)備有關(guān),具體地說與利用USB PC總線連接到主機(jī)平臺的可擦和可編程的非易失存儲模塊有關(guān)。
可擦和可編程的非易失存儲模塊,以下簡稱為閃速存儲器(flashmemory)或閃存設(shè)備(flash devices),在該技術(shù)領(lǐng)域內(nèi)已知用來存儲信息。閃存設(shè)備包括由閃速型浮柵晶體管構(gòu)成的電可擦和可編程的只讀存儲器(EEPROM),在功能和性能上是與EPROM存儲器類似的非易失存儲器,但有一個(gè)附加功能,允許一個(gè)線路中的可編程操作擦除存儲器的一些頁面。實(shí)現(xiàn)這樣的閃存設(shè)備的一個(gè)例子在美國專利No.5,799,168中給出,該專利在這里列作參考。
閃存設(shè)備與傳統(tǒng)的存儲磁盤相比具有比較便宜的優(yōu)點(diǎn),所需的功率也比較小。然而,在一個(gè)閃存設(shè)備中,要改寫存儲器的一個(gè)以前寫過的區(qū)域而不對這個(gè)區(qū)域先進(jìn)行頁擦除是不行的。閃存設(shè)備的這個(gè)限制導(dǎo)致它們與典型的現(xiàn)有操作系統(tǒng)程序不兼容,因?yàn)閿?shù)據(jù)不能寫入閃存設(shè)備內(nèi)的一個(gè)先前已經(jīng)寫入數(shù)據(jù)的存儲區(qū)域,除非首先對這個(gè)區(qū)域進(jìn)行擦除。需要一種諸如在1993年3月5日申請的美國專利No.5,404,485中所揭示的那樣的軟件管理系統(tǒng)來管理閃存設(shè)備的這些功能,這個(gè)專利在這里列作參考。
當(dāng)前,這些閃存設(shè)備還有另一個(gè)限制,它們必須或者靜態(tài)地連接到主機(jī)平臺上,或者利用PCMCIA(國際個(gè)人計(jì)算機(jī)存儲卡協(xié)會)接口動態(tài)地接拆。這兩種實(shí)現(xiàn)都有缺點(diǎn),其中包括使用困難和成本高。
一種較為有益的實(shí)現(xiàn)要遵從如在USB規(guī)范1.1中所描述的USB標(biāo)準(zhǔn),這個(gè)規(guī)范在這里列作參考。USB標(biāo)準(zhǔn)為最終用戶提供了較小的格式因子和較大的運(yùn)用方便,同時(shí)降低了實(shí)現(xiàn)成本。這個(gè)標(biāo)準(zhǔn)規(guī)定為一個(gè)由諸如Compaq、Microsoft、IBM、Intel一些公司推行的工業(yè)中廣泛應(yīng)用的標(biāo)準(zhǔn),作為對PC體系結(jié)構(gòu)的一個(gè)擴(kuò)展,面向計(jì)算機(jī)電話一體化(CTI)、用戶和工業(yè)應(yīng)用。規(guī)定USB標(biāo)準(zhǔn)的體系結(jié)構(gòu)所用的準(zhǔn)則包括PC(個(gè)人計(jì)算機(jī))外圍擴(kuò)展方便,成本低,支持高達(dá)12Mb/s的傳送率,以及完全支持實(shí)時(shí)數(shù)據(jù)、語音、音頻和壓縮視頻。這個(gè)標(biāo)準(zhǔn)還提供了協(xié)議的靈活性,可用于以混合模式進(jìn)行等時(shí)數(shù)據(jù)傳送和異步消息傳送,用商品設(shè)備技術(shù)進(jìn)行一體化,以及提供一種可迅速集成入任何給定主機(jī)產(chǎn)品的標(biāo)準(zhǔn)接口。此外,這個(gè)USB標(biāo)準(zhǔn)為接電纜和加添連接器提供了單個(gè)模型,使得電功能的所有細(xì)節(jié),包括總線終接,都與最終用戶隔離。通過這個(gè)標(biāo)準(zhǔn),那些外圍設(shè)備可以自我標(biāo)識,支持將功能自動映射為一個(gè)驅(qū)動器。此外,這個(gè)標(biāo)準(zhǔn)還使所有外圍設(shè)備能動態(tài)地可接拆和可重新配置。
按照USB標(biāo)準(zhǔn)構(gòu)成的系統(tǒng)用三個(gè)獨(dú)立的定義范圍描述USB互連,USB設(shè)備,以及USB主機(jī)平臺。USB互連是USB設(shè)備與主機(jī)平臺連接和通信的方式。相關(guān)的功能和組件包括總線布局(拓樸),這是USB設(shè)備與主機(jī)平臺之間的連接模型。
USB物理互連具有一個(gè)迭層星形布局。在每個(gè)星的中央是一個(gè)集線器。每個(gè)線段是一個(gè)在主機(jī)平臺與一個(gè)集線器或功能之間或者在主機(jī)平臺與一個(gè)連接到另一個(gè)集線器或功能的集線器之間的點(diǎn)對點(diǎn)連接。
就性能疊層(capability stack)來說,在系統(tǒng)內(nèi)每一層執(zhí)行的USB任務(wù)包括一個(gè)數(shù)據(jù)流模型和一個(gè)調(diào)度表。數(shù)據(jù)流模型是在系統(tǒng)內(nèi)數(shù)據(jù)通過USB在數(shù)據(jù)發(fā)生端與數(shù)據(jù)用戶之間移動的方式。調(diào)度表確定接入共享的互連。這樣調(diào)度使等時(shí)數(shù)據(jù)傳送得到支持,從而省去了仲裁開銷。
USB本身是一種輪詢總線。主機(jī)平臺上的主機(jī)控制器啟動所有數(shù)據(jù)傳送。所有總線事項(xiàng)涉及發(fā)送最多三種分組。每個(gè)事項(xiàng)在主機(jī)控制器按照預(yù)定計(jì)劃的方式發(fā)送一個(gè)說明事項(xiàng)的類型和方向、USB設(shè)備地址和端點(diǎn)號碼的USB分組時(shí)開始。這種分組稱為“令牌分組(tokenpacket)”。這種分組所針對的USB設(shè)備通過對相應(yīng)地址段解碼選取各自分組。在一個(gè)給定的事項(xiàng)中,數(shù)據(jù)或者從主機(jī)平臺傳送給一個(gè)設(shè)備或者從一個(gè)設(shè)備傳送給主機(jī)平臺。數(shù)據(jù)傳送的方向在令牌分組內(nèi)規(guī)定。事項(xiàng)的發(fā)起端然后發(fā)送一個(gè)數(shù)據(jù)分組,或者表示發(fā)起端沒有數(shù)據(jù)要傳送。通常,目的端用一個(gè)握手分組響應(yīng),表示傳送是否成功。
在主機(jī)平臺上的一個(gè)發(fā)起端和目的端與一個(gè)設(shè)備上的一個(gè)端點(diǎn)之間的這種USB數(shù)據(jù)傳送模型稱為“管道(pipe)”。有兩種類型的管道流型和消息型。流型數(shù)據(jù)沒有USB定義的結(jié)構(gòu),而信息型數(shù)據(jù)有。另外,管道與數(shù)據(jù)帶寬、傳送業(yè)務(wù)類型和象方向性和緩沖區(qū)大小那樣的端點(diǎn)特性關(guān)聯(lián)。大多數(shù)管道在配置一個(gè)USB設(shè)備時(shí)形成。一個(gè)設(shè)備一通電就始終存在一個(gè)消息型管道,也就是默認(rèn)的控制管道,以便接入這個(gè)設(shè)備的配置、狀態(tài)和控制信息。
USB標(biāo)準(zhǔn)的事項(xiàng)調(diào)度允許對一些流型管道進(jìn)行流量控制。在硬件層,這通過利用NAK握手節(jié)制數(shù)據(jù)率來防止緩存器欠載運(yùn)行或過載運(yùn)行的情況。利用NAK握手,一個(gè)事項(xiàng)可以在總線時(shí)間可得到時(shí)再試。流量控制機(jī)制允許設(shè)計(jì)出靈活的調(diào)度,適應(yīng)同時(shí)為不同種類混合的一些流型管道服務(wù)。因此,可以在不同的區(qū)間用容量不同的分組為多個(gè)流型管道服務(wù)。
如所說明的那樣,USB標(biāo)準(zhǔn)有三個(gè)主要類型的分組,即令牌分組、數(shù)據(jù)分組和握手分組。在背景技術(shù)的
圖1-3中分別示出了各類分組的例子。
背景技術(shù):
圖4示出了一個(gè)典型的USB抽象設(shè)備。
令牌分組10,如背景技術(shù)圖1所示,起重要作用的是一個(gè)PID(分組標(biāo)識)段12,用來規(guī)定三個(gè)分組類型中的一個(gè),是IN、OUT還是SETUP類型。如果PID段12規(guī)定是IN分組類型,這個(gè)數(shù)據(jù)事項(xiàng)就規(guī)定為從一個(gè)功能端到主機(jī)平臺。如果PD段12規(guī)定是OUT或SETUP分組類型,這個(gè)數(shù)據(jù)事項(xiàng)就規(guī)定為從主機(jī)平臺到一個(gè)功能端。
ADDR段14規(guī)定地址,而ENDP段16規(guī)定令牌分組10的端點(diǎn)。對于OUT和SETUP事項(xiàng),PID段12規(guī)定了這個(gè)令牌分組10是OUT分組類型或SETUP分組類型,ADDR段14和ENDP段16唯一地標(biāo)識了接收在令牌分組10后的后續(xù)數(shù)據(jù)分組(如圖2所示)的端點(diǎn)。對于IN事項(xiàng),PID段12規(guī)定了這個(gè)令牌分組10是IN分組類型,ADDR段14和ENDP段16唯一地標(biāo)識了哪個(gè)端點(diǎn)要發(fā)送數(shù)據(jù)分組。CRC5段18含有校驗(yàn)和,用來確定令牌分組10已經(jīng)接收而沒有差錯(cuò)。只有主機(jī)平臺才可以發(fā)布令牌分組10,使令牌分組10可以對發(fā)送后續(xù)數(shù)據(jù)分組進(jìn)行控制。
如
背景技術(shù):
圖2所示,背景技術(shù)的USB數(shù)據(jù)分組20起重要作用的也是PID(分組標(biāo)識)段22,用來標(biāo)識數(shù)據(jù)分組的類型。數(shù)據(jù)分組20還有一個(gè)隨意含有數(shù)據(jù)的數(shù)據(jù)段24和一個(gè)含有如前面所述的校驗(yàn)和的CRC段26。
背景技術(shù):
圖3示出了背景技術(shù)的USB握手分組28,特點(diǎn)是只有一個(gè)PID(分組標(biāo)識)段30。握手分組28用來報(bào)告一個(gè)數(shù)據(jù)事項(xiàng)的狀態(tài),可以返回一些表示數(shù)據(jù)成功接收、命令合格或不合格、流量控制和暫停狀況的值。只有支持流量控制的事項(xiàng)類型可以返回握手分組28。握手分組28始終在一個(gè)事項(xiàng)的握手階段返回,而在一個(gè)事項(xiàng)的數(shù)據(jù)階段可以代替數(shù)據(jù)分組20返回。
這三種不同類型的分組在包括一個(gè)USB設(shè)備的事項(xiàng)的各個(gè)階段期間交換。在抽象的背景技術(shù)USB設(shè)備的圖4中示出了一個(gè)典型的USB設(shè)備32內(nèi)的功能塊的示意方框圖。USB設(shè)備32通常包括一個(gè)以一根電纜和一個(gè)連接器為特征的電接口34,它是一個(gè)物理接口,用來接收和發(fā)送與如前面所述的USB規(guī)范兼容的電信號。這些信號然后傳送給一個(gè)邏輯接口36。邏輯接口36包括一個(gè)或者多個(gè)緩存器,對信號的源設(shè)備的地址進(jìn)行解碼的設(shè)備地址解碼器,以及一個(gè)同步信號的SYNC段同步器。管理作為一個(gè)USB設(shè)備的USB抽象設(shè)備32所需的信息和結(jié)構(gòu)存儲在一個(gè)USB類控制和列舉引擎38內(nèi)。功能和設(shè)備引擎40,也稱為"應(yīng)用",控制和管理USB抽象設(shè)備32的特定功能和性質(zhì)。此外,功能和設(shè)備引擎40還使用和產(chǎn)生大多數(shù)USB總線上的數(shù)據(jù)。
然而,USB規(guī)范沒有規(guī)定在USB抽象設(shè)備32內(nèi)不同實(shí)體之間的關(guān)系。更確切些說,USB規(guī)范只描述了對于分組和對于USB抽象設(shè)備32與總線之間的電和物理連接的要求。因此在背景技術(shù)的圖4中示出的這些連接和相互關(guān)系只是滿足USB規(guī)范要求的實(shí)現(xiàn)的一個(gè)例子。這樣,任何具體設(shè)備為了滿足USB規(guī)范必須具有一個(gè)具體規(guī)定和描述的體系結(jié)構(gòu)。
不幸的是,對于一個(gè)含有一個(gè)或多個(gè)閃存模塊的閃存設(shè)備并不存在這樣的體系結(jié)構(gòu)使這個(gè)閃存設(shè)備可以連接到一個(gè)遵從USB規(guī)范的總線上從而形成在一個(gè)主機(jī)平臺上的USB系統(tǒng)的一部分。例如,美國專利No.5,799,168并沒有揭示或提議這樣實(shí)現(xiàn)閃存設(shè)備。如前面提到的那樣,這種體系結(jié)構(gòu)由于成本低、運(yùn)用方便和對最終用戶透明等等將會特別有用。
因此,有必要和有用的是開發(fā)一種規(guī)定和描述一種與USB系統(tǒng)兼容和遵從USB規(guī)范的閃存設(shè)備的體系結(jié)構(gòu),使得這種閃存設(shè)備可以連接在一個(gè)USB定義的總線上、通過這個(gè)總線與主機(jī)平臺通信。
附圖簡要說明圖1為背景技術(shù)的USB令牌分組結(jié)構(gòu)的示意方框圖;圖2為背景技術(shù)的USB數(shù)據(jù)分組結(jié)構(gòu)的示意方框圖;圖3為背景技術(shù)的USB握手?jǐn)?shù)據(jù)分組結(jié)構(gòu)的示意方框圖;圖4為典型的背景技術(shù)的USB設(shè)備的示意方框圖;圖5為按照本發(fā)明實(shí)現(xiàn)的有閃存USB設(shè)備功能的系統(tǒng)的示意方框圖;圖6為USB閃存盤的示意方框圖;圖7為閃存標(biāo)識請求分組的示意方框圖;圖8為閃存標(biāo)識狀態(tài)分組的示意方框圖;圖9為閃存寫入請求分組的示意方框圖;圖10為閃存寫入狀態(tài)分組的示意方框圖;圖11為閃存讀取請求分組的示意方框圖;圖12為閃存讀取狀態(tài)分組的示意方框圖;圖13為閃存擦除請求分組的示意方框圖;以及圖14為閃存擦除狀態(tài)分組的示意方框圖。
發(fā)明概述本發(fā)明提出了一種閃存設(shè)備,這種閃存設(shè)備含有一個(gè)或多個(gè)閃存模塊,其中閃速存儲器映射到一個(gè)具有一個(gè)USB定義的電氣接口和一個(gè)USB定義的邏輯接口的ASIC或控制器的地址空間。這個(gè)控制器/ASIC(以下稱為“控制器”)支持遵從USB標(biāo)準(zhǔn)的USB功能,從而支持在USB總線上進(jìn)行列舉,以及通過USB管道從USB端點(diǎn)接收數(shù)據(jù)和向USB端點(diǎn)發(fā)送數(shù)據(jù)??刂破鬟€支持閃存設(shè)備的功能和控制,以及對來自主機(jī)控制器的命令和數(shù)據(jù)分組的處理。主機(jī)控制器利用若干可能協(xié)議(無論是標(biāo)準(zhǔn)的還是專有的)之一向USB閃存控制器發(fā)送下一個(gè)需執(zhí)行的命令。因此,整個(gè)設(shè)備對于主機(jī)平臺來說起著一個(gè)動態(tài)可接拆的非易失存儲設(shè)備的作用。
按照本發(fā)明,所提供的一種連接到一個(gè)USB定義的總線上的USB閃存設(shè)備包括(a)至少一個(gè)儲存數(shù)據(jù)的閃存模塊;(b)一個(gè)與USB定義的總線連接的USB連接器,用來將分組發(fā)送到USB定義的總線和從USB定義的總線接收分組;以及(c)一個(gè)USB控制器,用來按照從USB定義的總線接收的至少一個(gè)分組控制所述至少一個(gè)閃存模塊和控制所述USB連接器,使得數(shù)據(jù)可以寫入所述至少一個(gè)閃存模塊和從所述至少一個(gè)閃存模塊讀取數(shù)據(jù)。
在下文中,所謂“計(jì)算機(jī)”包括(但不局限于)具有一個(gè)諸如DOS、WindowsTM、OS/2TM或Linux之類的操作系統(tǒng)的個(gè)人計(jì)算機(jī)(PC);MacintoshTM計(jì)算機(jī);具有JAVATM-OS作為操作系統(tǒng)的計(jì)算機(jī);以及諸如Sun MicrosystemsTM和Silicon GraphicsTM的計(jì)算機(jī)及其他具有某個(gè)版本的UNIX操作系統(tǒng)(例如Sun MicrosystemsTM的AIXTM或SOLARISTM)的計(jì)算機(jī)之類的圖形工作站;或者任何其他巳知和可得到的操作系統(tǒng),包括諸如用于嵌入系統(tǒng)(包括蜂窩電話、手持計(jì)算設(shè)備和掌上計(jì)算設(shè)備,以及任何其他可以與一個(gè)網(wǎng)絡(luò)連接的其他計(jì)算設(shè)備)的Windows CETM之類的操作系統(tǒng)。在下文中,所謂“WindowsTM”包括(但不局限于)Windows95TM,Windows 3.xTM(“x”是一個(gè)諸如“1”之類的整數(shù)),Windows NTTM,Windows98TM,Windows CETM以及這些操作系統(tǒng)的任何由Microsoft公司(Seattle,Washington,USA)升級的版本。
發(fā)明詳細(xì)說明本發(fā)明提出了一種閃存設(shè)備,這種閃存設(shè)備含有一個(gè)或多個(gè)閃存模塊,其中閃速存儲器映射到一個(gè)具有一個(gè)USB定義的電氣接口和一個(gè)USB定義的邏輯接口的ASIC或控制器的地址空間。這個(gè)控制器/ASIC(以下稱為“控制器”)支持遵從USB標(biāo)準(zhǔn)的USB功能,從而支持在USB總線上進(jìn)行列舉,以及通過USB管道從USB端點(diǎn)接收數(shù)據(jù)和向USB端點(diǎn)發(fā)送數(shù)據(jù)??刂破鬟€支持閃存設(shè)備的功能和控制,以及對來自主機(jī)控制器的命令和數(shù)據(jù)分組的處理。主機(jī)控制器利用若干可能協(xié)議(無論是標(biāo)準(zhǔn)的還是專有的)之一向USB閃存控制器發(fā)送下一個(gè)需執(zhí)行的命令。因此,整個(gè)設(shè)備對于主機(jī)平臺來說起著一個(gè)動態(tài)可接拆的非易失存儲設(shè)備的作用。
雖然本發(fā)明容許有各種修改而且可以用許多可替代的形式來實(shí)現(xiàn),但下面將以附圖所示實(shí)施例作為例子詳細(xì)予以說明。很清楚,原就熟悉該技術(shù)的人員可以理解,本發(fā)明能夠以各種其他方式實(shí)現(xiàn)。本發(fā)明的專利保護(hù)范圍涵蓋了所有根據(jù)本發(fā)明的精神作出的各種修改和替換。
按照本發(fā)明實(shí)現(xiàn)的USB閃存設(shè)備和系統(tǒng)的原理和工作情況結(jié)合附圖及其說明可以得到更好的理解,當(dāng)然,這些都只是說明性的而不是限制性的。
現(xiàn)在來看這些附圖,圖5是一個(gè)按照本發(fā)明實(shí)現(xiàn)的閃存設(shè)備和系統(tǒng)的主要的組件的示意方框圖。如圖所示,閃存系統(tǒng)42包括一個(gè)主機(jī)平臺44。主機(jī)平臺44將USB閃存設(shè)備46作為一個(gè)非易失性存儲空間對它進(jìn)行操作。
主機(jī)平臺44通過USB電纜48連接到本發(fā)明的USB閃存設(shè)備46。主機(jī)平臺44通過USB主機(jī)連接器50與USB電纜48連接,而USB閃存設(shè)備46通過USB閃存設(shè)備連接器52與USB電纜48連接。主機(jī)平臺44的起重要作用的功能部件是USB主機(jī)控制器54,用來控制和管理所有在USB總線上的USB傳送。
USB閃存設(shè)備46的起重要作用的功能部件是USB閃存設(shè)備控制器56,用來控制USB閃存設(shè)備46的其他組件和為USB閃存設(shè)備46提供對USB總線、USB閃存設(shè)備連接器52和至少一個(gè)閃存模塊58的接口。閃存模塊58最好是一個(gè)存儲數(shù)據(jù)的閃存模塊陣列58。
每當(dāng)USB閃存設(shè)備46連接到主機(jī)平臺44上,就發(fā)生一個(gè)標(biāo)準(zhǔn)的USB列舉過程。在這個(gè)過程中,主機(jī)平臺44對USB閃存設(shè)備46和與USB閃存設(shè)備46通信的模式進(jìn)行配置。雖然有許多不同的方法來配置USB閃存設(shè)備46,但為了清晰(而不是為了限制)起見,在下面結(jié)合主機(jī)平臺44通過一個(gè)端點(diǎn)向USB閃存設(shè)備46發(fā)布命令和請求的情況對本發(fā)明進(jìn)行詳細(xì)說明。主機(jī)平臺44通過另一個(gè)端點(diǎn)詢問USB閃存設(shè)備46有關(guān)狀態(tài)改變的情況,以及接收有關(guān)的分組,如果有這樣的分組要接收的話。
主機(jī)平臺44通過向USB主機(jī)控制器54發(fā)送請求分組請求USB閃存設(shè)備46服務(wù)。USB主機(jī)控制器54將這些分組發(fā)送到USB電纜48上。這些請求在USB閃存設(shè)備46是處在所請求的端點(diǎn)上的設(shè)備時(shí)由USB閃存設(shè)備控制器56接收。于是,USB閃存設(shè)備控制器56執(zhí)行各種操作,例如對閃存模塊58進(jìn)行數(shù)據(jù)讀取、寫入或擦除,或者支持諸如設(shè)備列舉和配置之類的基本的USB功能。USB閃存設(shè)備控制器56利用控制閃存模塊58供電的控制線60以及通過各種其他諸如芯片啟動、讀和寫信號之類的信號對閃存模塊58進(jìn)行控制。閃存模塊58還由地址/數(shù)據(jù)總線62連接到USB閃存設(shè)備控制器56。地址/數(shù)據(jù)總線62如閃存模塊58的生產(chǎn)廠家規(guī)定的那樣傳送對閃存模塊58執(zhí)行讀取、寫入或擦除的命令,以及這些命令的地址和數(shù)據(jù)。
為了使USB閃存設(shè)備46能向主機(jī)平臺44報(bào)告由主機(jī)平臺44請求的不同的操作的結(jié)果和狀態(tài),USB閃存設(shè)備46利用“狀態(tài)端點(diǎn)”發(fā)送一些狀態(tài)分組。按照這個(gè)過程,主機(jī)平臺44對狀態(tài)分組進(jìn)行檢驗(yàn)(輪詢),而USB閃存設(shè)備46或者返回一個(gè)空分組(如果對于新的狀態(tài)信息沒有分組要給出),或者返回這個(gè)狀態(tài)分組本身。
USB閃存設(shè)備46的這些功能組件的更詳細(xì)的結(jié)構(gòu)示于圖6.。USB閃存設(shè)備46包括USB標(biāo)準(zhǔn)規(guī)定的物理和電氣接口,在這里示為USB閃存設(shè)備連接器52和連接器接口64。USB閃存設(shè)備連接器52從載有來自主機(jī)控制器(未示出)的電信號的USB電纜48接收電信號。這些信號通過連接器接口64傳送。在USB定義的總線上以每毫秒傳送一個(gè)USB幀的方式將分組發(fā)送給USB閃存設(shè)備46。
連接器接口64于是通過一個(gè)第一接口組件接收這些分組,這個(gè)第一接口組件是一個(gè)組合的物理和邏輯接口66。功能接口68特別設(shè)計(jì)成能接收如在USB規(guī)范中所規(guī)定和如前面結(jié)合圖1所說明的令牌分組。這些令牌分組只與USB閃存設(shè)備46的遵從USB標(biāo)準(zhǔn)的特定功能方面有關(guān),而與USB閃存設(shè)備46按照本發(fā)明作為一個(gè)閃存盤的具體應(yīng)用沒有任何關(guān)系。這些令牌分組和它們各自的返回?cái)?shù)據(jù)分組使USB主機(jī)控制器54(未示出)和主機(jī)平臺44(未示出)能識別USB閃存設(shè)備46和在USB總線上為USB閃存設(shè)備46分配資源。因此,功能接口68只支持在USB總線上進(jìn)行標(biāo)識和登記USB閃存設(shè)備46所需要的USB功能。
USB閃存設(shè)備46的另一個(gè)起重要作用的功能部件是應(yīng)用分組提取器70,用來從這些USB應(yīng)用分組中提取應(yīng)用數(shù)據(jù)和命令,因此應(yīng)用分組提取器70只支持與應(yīng)用有關(guān)的分組。接下來,主機(jī)平臺44(未示出)以讀取、寫入、標(biāo)識和擦除命令形式向USB閃存設(shè)備46提出的任何請求由一個(gè)應(yīng)用命令解釋器72解釋。對于任何涉及數(shù)據(jù)或地址的任何命令,例如讀取、寫入和擦除命令,有一個(gè)地址解析模塊74將地址從邏輯地址空間轉(zhuǎn)換到物理地址空間。主機(jī)平臺44(未示出)與一個(gè)由邏輯地址構(gòu)成的線性地址空間有關(guān),而USB閃存設(shè)備46含有至少一個(gè)而最好是多個(gè)閃存模塊58,每個(gè)閃存模塊58具有一個(gè)物理地址空間。因此,必須在主機(jī)平臺44(未示出)的邏輯地址空間與物理地址空間或USB閃存設(shè)備46的空間之間進(jìn)行轉(zhuǎn)換。有許多方式實(shí)現(xiàn)適合于本發(fā)明的這種轉(zhuǎn)換。適合執(zhí)行地址轉(zhuǎn)換方法的一個(gè)例子可參見前面列作本發(fā)明參考的美國專利No.5,404,485,其中揭示了一種將閃速存儲器作為一個(gè)閃存盤進(jìn)行管理的方法,適合與本發(fā)明配合運(yùn)用。
數(shù)據(jù)處理器76處理任何接收命令中與數(shù)據(jù)有關(guān)的情況,通過功能接口68傳送發(fā)給和來自閃存模塊58的數(shù)據(jù)。可以按需選擇而且最好是使數(shù)據(jù)處理器76執(zhí)行任何糾錯(cuò)和檢錯(cuò)方法。應(yīng)用命令解釋器72、數(shù)據(jù)處理器76和地址解析模塊74都在存儲技術(shù)驅(qū)動器(MTD)78配合下進(jìn)行操作,對一個(gè)特定的閃存模塊58和在這個(gè)閃存模塊58上的所要求的地址進(jìn)行寫入、讀取或擦除。
主機(jī)平臺44檢查USB閃存設(shè)備46內(nèi)狀態(tài)改變情況,在一個(gè)新的狀態(tài)可得到時(shí)讀取來自USB閃存設(shè)備46的狀態(tài)分組。利用這些狀態(tài)分組,USB閃存設(shè)備46可以向主機(jī)平臺44發(fā)送由主機(jī)平臺44在它的一些請求(未示出)中發(fā)布的不同命令的結(jié)果。例如,讀命令狀態(tài)分組含有諸如成功、錯(cuò)誤或“無效地址”之類的可得到的狀態(tài)字之一,使主機(jī)平臺44可以確定讀命令(未示出)的結(jié)果。類似,擦除狀態(tài)分組含有一個(gè)表明完成擦除過程的狀態(tài)字。USB閃存設(shè)備46利用一個(gè)寫入狀態(tài)分組向主機(jī)平臺44報(bào)告有關(guān)寫入命令的結(jié)果,例如這個(gè)命令是否成功和USB閃存設(shè)備46是否已為來自主機(jī)平臺44的另一個(gè)寫入請求作好準(zhǔn)備。
存儲技術(shù)驅(qū)動器或者說MTD 78通常含有一些對閃存設(shè)備進(jìn)行讀取、寫入和擦除的例行程序,這些例行程序受操作MTD 78的控制器控制。此外,MTD 78可按需設(shè)有一個(gè)識別MTD 78所配合的正確閃存設(shè)備類型的標(biāo)識例行程序,使得控制器能夠根據(jù)與一個(gè)特定的閃存設(shè)備陣列交互作用確定應(yīng)該激活哪個(gè)MTD。此外,一個(gè)標(biāo)識例行程序應(yīng)該能檢測閃存設(shè)備陣列的容量,包括陣列內(nèi)的閃存設(shè)備數(shù),以及閃存陣列的各種幾何特征,諸如交織和總線寬度之類。這信息以后使主機(jī)平臺44可以確定存儲媒體的地址空間和容量。前面列作參考的美國專利No.5,799,168揭示了這種用于閃存設(shè)備的MTD的一個(gè)例子。
利用以上說明的協(xié)議和體系結(jié)構(gòu),主機(jī)平臺44可以隨意地實(shí)現(xiàn)用任何正規(guī)的存儲器映射或I/O映射的閃存設(shè)備可實(shí)現(xiàn)的應(yīng)用。例如,主機(jī)平臺44為每個(gè)應(yīng)用給出一個(gè)標(biāo)準(zhǔn)塊設(shè)備接口,諸如磁存儲介質(zhì)“硬盤”驅(qū)動器之類,如前面說明的美國專利No.5,404,485中所揭示的那樣。
作為本發(fā)明的一個(gè)優(yōu)選實(shí)施例的一個(gè)例子,與本發(fā)明的USB閃存設(shè)備連接的主機(jī)系統(tǒng)的工作情況將結(jié)合對閃存設(shè)備進(jìn)行標(biāo)識、編程、讀取和擦除這些過程予以說明。為了例示(并不是意味著什么限制),這個(gè)示范的USB閃存設(shè)備具有一個(gè)有兩個(gè)閃存模塊的陣列,每個(gè)閃存模塊的容量是64Mbit。地址轉(zhuǎn)換表在閃存設(shè)備內(nèi),因此主機(jī)平臺用邏輯地址操作。所有命令和返回代碼在閃存設(shè)備與主機(jī)平臺之間用USB數(shù)據(jù)分組承載,通過USB數(shù)據(jù)管道傳送。在USB規(guī)范中描述了分組、管道和定時(shí)的確切結(jié)構(gòu)。
這個(gè)示范的設(shè)備和系統(tǒng)按照本發(fā)明進(jìn)行工作的情況如下。在USB閃存設(shè)備最初連接到主機(jī)平臺時(shí),USB主機(jī)控制器就在USB總線上為這個(gè)USB閃存設(shè)備分配一個(gè)地址和分配資源,如在USB規(guī)范中所描述的那樣。實(shí)際上是USB閃存設(shè)備請求主機(jī)平臺分配這些資源,因此必須通知主機(jī)平臺需要多少資源。所以,USB閃存盤能夠按需要隨意地支持較慢設(shè)備速度,如果USB主機(jī)平臺已經(jīng)將資源分配給其他設(shè)備的話。
USB控制器還與這些閃存模塊協(xié)商,確定這些模塊的容量和產(chǎn)品類型。于是,控制器建立一個(gè)把持這信息以及轉(zhuǎn)換表和邏輯地址空間的標(biāo)識結(jié)構(gòu)。
在USB主機(jī)控制器標(biāo)識了USB閃存設(shè)備后,主機(jī)平臺通常對一個(gè)USB客戶驅(qū)動器進(jìn)行上載。這個(gè)驅(qū)動器向USB主機(jī)控制器發(fā)布一個(gè)標(biāo)識請求命令,使控制器發(fā)送一個(gè)圖7所示的標(biāo)識數(shù)據(jù)分組80。標(biāo)識分組80含有PID段22和校驗(yàn)和段26,如前面對于背景技術(shù)的圖2所說明的那樣。標(biāo)識分組80還在一個(gè)操作碼段82含有一個(gè)“標(biāo)示”操作碼。USB閃存設(shè)備的分組提取器接收到標(biāo)識數(shù)據(jù)分組80后,將“標(biāo)示”命令的操作碼傳送給應(yīng)用命令解釋器。
于是,閃存設(shè)備對這個(gè)“標(biāo)示”命令作出響應(yīng),發(fā)送一個(gè)圖8所示的標(biāo)識數(shù)據(jù)分組84。除了在圖7中示出的這些段,標(biāo)識數(shù)據(jù)分組84還在一個(gè)閃存設(shè)備容量段86含有有關(guān)閃存設(shè)備的容量的信息,以及在一個(gè)擦除單元容量段88含有有關(guān)擦除閃存的最小擦除單元的容量的信息。
在這個(gè)例子中所說明的所有這些分組都只是在USB總線上發(fā)送的數(shù)據(jù)分組。在每個(gè)數(shù)據(jù)分組發(fā)送前,發(fā)送一個(gè)USB令牌分組,將數(shù)據(jù)分組應(yīng)該發(fā)送到的設(shè)備端點(diǎn)的標(biāo)志通知USB控制器。成功接收到這個(gè)分組后,USB控制器發(fā)布一個(gè)如在USB規(guī)范中所描述的USB ACK分組。
一旦在主機(jī)平臺內(nèi)的設(shè)備驅(qū)動器接收到這個(gè)狀態(tài)分組,這個(gè)驅(qū)動器就可以開始用應(yīng)用命令向USB閃存設(shè)備發(fā)布讀取和寫入命令。在發(fā)送一個(gè)寫入請求時(shí),一個(gè)帶有“寫入”命令的操作碼和緩存器含有的數(shù)據(jù)的USB數(shù)據(jù)分組就傳送給USB閃存設(shè)備。圖9示出了一個(gè)寫入數(shù)據(jù)分組90,它同樣包括前面在圖8中示出的那些字段,只是寫入數(shù)據(jù)分組90還包括一個(gè)帶有“寫入”操作碼的寫入段;一個(gè)帶有需寫入的邏輯地址的ADDR段94;一個(gè)帶有需寫入的長度的LEN段96;以及一個(gè)含有要寫的實(shí)際數(shù)據(jù)的DATA段98。分組提取器從寫入數(shù)據(jù)分組90提取操作碼,傳送給應(yīng)用命令解釋器。邏輯地址傳送給地址解析模塊,由地址解析模塊將這個(gè)邏輯地址轉(zhuǎn)換成一個(gè)在其中一個(gè)閃存模塊上的物理地址。數(shù)據(jù)處理器可按需選擇成有計(jì)算糾錯(cuò)和檢錯(cuò)機(jī)制,如果USB閃存設(shè)備采用的話。一旦所有這些閃存模塊都已準(zhǔn)備好,就可向MTD塊發(fā)送一個(gè)對含有這個(gè)物理地址的一個(gè)或幾個(gè)閃存模塊的“寫入”命令,物理地址可以按需選擇成跨越多于一個(gè)閃存模塊。于是,MTD塊在將閃存模塊連接到USB設(shè)備控制器的數(shù)據(jù)/地址總線上發(fā)布一個(gè)“寫入”命令。一旦這個(gè)操作完成、一個(gè)狀態(tài)分組返回給MTD,這個(gè)操作的結(jié)果就發(fā)送給主機(jī)控制器,傳送到主機(jī)平臺內(nèi)的設(shè)備驅(qū)動器。
在閃存控制器完成寫入過程時(shí),控制器就通過發(fā)送一個(gè)如圖10所示的“寫入狀態(tài)”分組100向主機(jī)平臺發(fā)出信號,表明USB閃存設(shè)備的狀態(tài)已經(jīng)改變。代替數(shù)據(jù)段98,寫入狀態(tài)分組100含有一個(gè)狀態(tài)段102。主機(jī)平臺讀取來自閃存設(shè)備的狀態(tài)分組,從寫入狀態(tài)分組100中主機(jī)平臺通過讀取狀態(tài)段102檢索出有關(guān)寫入命令完成狀態(tài)的信息。在這個(gè)例子中,閃存設(shè)備重復(fù)ADDR段94和LEN段96,以便使主機(jī)平臺可以參考一下與狀態(tài)分組100有關(guān)的具體命令。
如圖11所示,一個(gè)“讀取請求”分組104在一個(gè)讀取段106內(nèi)含有“讀取”命令的操作碼和在一個(gè)ADDR段108內(nèi)含有閃存控制器應(yīng)該從哪個(gè)預(yù)定位置讀取的邏輯地址。接收到這個(gè)命令,閃存控制器在地址解析模塊將在ADDR段108內(nèi)的地址轉(zhuǎn)換成其中一個(gè)閃存組件內(nèi)的一個(gè)具體物理地址后,向MTD塊發(fā)布一個(gè)讀取命令。
在閃存控制器接收來自閃存設(shè)備的數(shù)據(jù)時(shí),無論是在讀取命令發(fā)布后還是如果發(fā)生錯(cuò)誤,閃存控制器都向主機(jī)平臺發(fā)送一個(gè)信號,表明必須讀取一個(gè)新狀態(tài)分組。主機(jī)平臺發(fā)布一個(gè)讀取請求,接收一個(gè)如圖12所示的“讀取狀態(tài)”分組110。讀取狀態(tài)分組110在一個(gè)ADDR段108內(nèi)含有讀出數(shù)據(jù)的地址,在一個(gè)LEN段112內(nèi)含有讀出數(shù)據(jù)的長度,以及在一個(gè)數(shù)據(jù)段114內(nèi)含有數(shù)據(jù)本身。讀取狀態(tài)分組110還在一個(gè)狀態(tài)段116內(nèi)含有起重要作用的狀態(tài)字,與完成操作的情況相應(yīng)。完成讀取操作可以有許多不同的狀態(tài)情況,諸如成功、失敗、檢測到錯(cuò)誤、無效地址、無效長度等等。
在主機(jī)平臺需要擦除在閃存設(shè)備內(nèi)的一個(gè)擦除單元時(shí),主機(jī)平臺發(fā)布一個(gè)圖13所示的“擦除請求”分組118。這個(gè)分組在一個(gè)擦除段120含有“擦除”操作碼和在一個(gè)ADDR段122含有擦除單元的邏輯地址。接收到這樣一個(gè)請求,閃存控制器就將邏輯地址轉(zhuǎn)換成其中一個(gè)閃存模塊的物理地址空間上的一個(gè)物理擦除單元地址,再向MTD塊發(fā)布一個(gè)擦除命令。
擦除過程通常要比讀取或?qū)懭脒^程需要多一些的時(shí)間。在擦除過程完成時(shí),控制器向主機(jī)平臺報(bào)告一個(gè)新狀態(tài)分組已準(zhǔn)備發(fā)送。然后,控制器發(fā)送一個(gè)如圖14所示的“擦除狀態(tài)”分組124。擦除狀態(tài)分組124在一個(gè)ADDR段122含有擦除單元的地址,從而為主機(jī)平臺提供一個(gè)對擦除請求的參考。與操作完成情況相應(yīng)的狀態(tài)在一個(gè)狀態(tài)段126內(nèi)提供。
可以理解,,以上說明只是用來作為例子,而在本發(fā)明的精神和范圍內(nèi)許多其他實(shí)現(xiàn)方式都是可行的。
權(quán)利要求
1.一種USB閃存系統(tǒng),所述閃存系統(tǒng)包括(a)閃存設(shè)備,所述閃存設(shè)備包括(i)至少一個(gè)用于存儲數(shù)據(jù)的閃存模塊;(ii)包括根據(jù)USB標(biāo)準(zhǔn)的電氣接口和邏輯接口的閃存設(shè)備控制器,該閃存設(shè)備控制器適用于根據(jù)至少一個(gè)從主機(jī)接收到的分組來控制所述至少一個(gè)閃存模塊,使得數(shù)據(jù)被寫入所述至少一個(gè)閃存模塊以及從中讀出;以及(b)蜂窩電話主機(jī)平臺,所述蜂窩電話主機(jī)平臺包括(i)USB主機(jī)控制器,其適用于使用USB協(xié)議控制所述閃存設(shè)備。
2.如權(quán)利要求1所述的系統(tǒng),其中所述至少一個(gè)閃存模塊包括至少16MB。
3.如權(quán)利要求1所述的系統(tǒng),其中所述閃存設(shè)備控制器包括單個(gè)ASIC。
4.如權(quán)利要求1所述的系統(tǒng),其中所述閃存設(shè)備控制器作為標(biāo)準(zhǔn)塊設(shè)備與所述USB主機(jī)控制器進(jìn)行通信。
5.如權(quán)利要求1所述的系統(tǒng),其中所述USB主機(jī)控制器使用封裝在USB數(shù)據(jù)分組中的寫分組與所述閃存設(shè)備控制器進(jìn)行通信。
6.如權(quán)利要求1所述的系統(tǒng),其中所述閃存設(shè)備控制器作為閃存盤與所述USB主機(jī)控制器進(jìn)行通信。
7.如權(quán)利要求1所述的系統(tǒng),其中所述主機(jī)平臺具有WindowsCE操作系統(tǒng)。
8.如權(quán)利要求1所述的系統(tǒng),其中所述閃存設(shè)備控制器實(shí)施閃存軟件管理系統(tǒng)。
9.如權(quán)利要求1所述的系統(tǒng),其中所述主機(jī)適用于使用幾種可能的協(xié)議之一用于與所述閃存設(shè)備進(jìn)行通信。
10.如權(quán)利要求1所述的系統(tǒng),其中所述閃存設(shè)備可連接到所述蜂窩電話主機(jī)。
11.如權(quán)利要求1所述的系統(tǒng),其中所述閃存設(shè)備適用于將標(biāo)識數(shù)據(jù)傳輸?shù)剿鲋鳈C(jī)控制器。
12.如權(quán)利要求11所述的系統(tǒng),其中所述主機(jī)基于所述標(biāo)識數(shù)據(jù)訪問所述閃存設(shè)備。
13.如權(quán)利要求1所述的系統(tǒng),其中所述閃存上存儲有話音數(shù)據(jù)。
14.如權(quán)利要求1所述的系統(tǒng),其中所述閃存上存儲有壓縮視頻。
15.如權(quán)利要求1所述的系統(tǒng),其中所述閃存上存儲有音頻數(shù)據(jù)。
16.如權(quán)利要求1所述的系統(tǒng),其中所述閃存控制器對所述主機(jī)的邏輯地址空間中的地址和所述閃存設(shè)備的物理地址空間中的地址進(jìn)行相互翻譯。
17.一種蜂窩電話系統(tǒng),包括蜂窩電話和閃存盤,該蜂窩電話和閃存盤適用于使用USB協(xié)議進(jìn)行通信。
18.一種蜂窩電話系統(tǒng),包括蜂窩電話和閃存盤,該蜂窩電話和閃存盤適用于使用多種可能的協(xié)議進(jìn)行通信。
19.如權(quán)利要求18所述的系統(tǒng),其中所述協(xié)議的至少一個(gè)包括USB協(xié)議。
20.如權(quán)利要求18所述的系統(tǒng),其中所述協(xié)議的至少一個(gè)包括基于分組的協(xié)議。
21.如權(quán)利要求18所述的系統(tǒng),其中所述協(xié)議的至少一個(gè)包括塊設(shè)備協(xié)議。
22.一種使用閃存設(shè)備的方法,該方法包括向閃存設(shè)備提供外部數(shù)據(jù)連接器和閃存;將所述設(shè)備連接到蜂窩電話;以及使用USB協(xié)議,從所述蜂窩電話訪問所述閃存。
23.如權(quán)利要求22所述的方法,其中所述設(shè)備是整體的可安裝/可拆卸設(shè)備。
24.一種使用閃存設(shè)備的方法,該方法包括向閃存設(shè)備提供外部連接器;將所述設(shè)備連接到蜂窩電話主機(jī)系統(tǒng)的USB總線;以及從所述蜂窩電話通過所述USB總線將所述閃存設(shè)備作為硬盤進(jìn)行訪問。
25.如權(quán)利要求24所述的方法,其中所述閃存設(shè)備是整體的可移動閃存設(shè)備。
26.一種USB閃存系統(tǒng),該系統(tǒng)的特征在于USB定義的總線,該系統(tǒng)包括(a)閃存設(shè)備,該閃存設(shè)備包括(i)至少一個(gè)用于存儲數(shù)據(jù)的閃存模塊;(ii)閃存設(shè)備連接器,用于連接到USB定義的總線,并且用于向該USB定義的總線發(fā)送分組,以及用于從該USB定義的總線接收分組;以及(iii)USB閃存設(shè)備控制器,其用于根據(jù)從USB定義的總線接收的至少一個(gè)分組來控制所述至少一個(gè)閃存模塊以及控制所述連接器,使得數(shù)據(jù)寫入所述至少一個(gè)閃存模塊以及從中讀出;以及(b)用于與所述閃存設(shè)備通信的蜂窩電話主機(jī)平臺,所述蜂窩電話主機(jī)平臺包括(i)USB主機(jī)控制器,其用于控制所述主機(jī)平臺;以及(ii)主機(jī)連接器,用于連接到USB定義的總線。
27.一種系統(tǒng),該系統(tǒng)包括(i)用于連接到USB定義的總線的USB閃存設(shè)備,該閃存設(shè)備被設(shè)置為帶有單個(gè)外部連接器的單個(gè)整體單元,該閃存設(shè)備包括(a)至少一個(gè)閃存模塊;(b)僅僅單個(gè)外部連接器,該連接器是適用于連接到USB定義的總線的USB連接器;(c)USB控制器,其通過提供塊設(shè)備接口經(jīng)由所述USB連接器與主機(jī)連接,并且向所述至少一個(gè)閃存模塊進(jìn)行讀和寫中的至少一種操作,其中所述控制器包括命令解釋器,該命令解釋器將作為應(yīng)用程序分組而通過所述USB連接器被接收的讀和寫塊命令解釋為用于所述至少一個(gè)閃存模塊的動作;以及其中所述閃存設(shè)備包括USB閃存盤;以及(ii)充當(dāng)用于所述USB閃存設(shè)備的主機(jī)的蜂窩電話。
全文摘要
本發(fā)明提出的以與USB規(guī)范可兼容的方式實(shí)現(xiàn)的存儲設(shè)備(46)由一個(gè)閃存陣列(58)和一個(gè)通用串行總線(USB)控制器(56)構(gòu)成。這種設(shè)備(46)包括一些儲存模塊(58),這些儲存模塊可以接受來自一個(gè)主機(jī)(44)的寫入命令和讀取命令,都是可擦和非易失的,稱為閃存模塊(58)。USB/閃存控制器(56)配置成可以提供USB功能和兼容對這種閃存模塊(58)執(zhí)行諸如編程、讀取和擦除之類的通常閃存操作。
文檔編號G06F13/36GK1937073SQ20061011492
公開日2007年3月28日 申請日期2000年3月20日 優(yōu)先權(quán)日1999年4月5日
發(fā)明者阿米爾·班, 道夫·莫蘭, 奧龍·奧格丹 申請人:M-系統(tǒng)快閃盤開拓者公司