D = 1);
[0091] 906 ~DBM 回應(yīng)訊息(TID = 1);
[0092] 920、924 ~DBM 數(shù)據(jù)訊息;
[0093] 922、926~DBM驗證狀態(tài)訊息;
[0094] 1040~DBM請求訊息
[0095] 1042U044~數(shù)據(jù)快閃訊息
[0096] 1000 ~DBM 允許訊息(TID = 0);
[0097] 1002 ~DBM 回應(yīng)訊息(TID = 0);
[0098] 1004 ~DBM 允許訊息(TID = 1);
[0099] 1006 ~DBM 回應(yīng)訊息(TID = 1);
[0100] 1020、1024 ~DBM 數(shù)據(jù)訊息;
[0101] 1140~DBM請求訊息
[0102] 1142、1144、1146~數(shù)據(jù)快閃訊息
[0103] 1100、1108 ~DBM 允許訊息(TID = 0);
[0104] 1102、1110 ~DBM 回應(yīng)訊息(TID = 0);
[0105] 1104 ~DBM 允許訊息(TID = 1);
[0106] 1106 ~DBM 回應(yīng)訊息(TID = 1);
[0107] 1120、1124、1128 ~DBM 數(shù)據(jù)訊息;
[0108] 1122、1126、1130 ~DBM 驗證狀態(tài)訊息;
[0109] 1240~DBM請求訊息
[0110] 1242U244~數(shù)據(jù)快閃訊息
[0111] 1200 ~DBM 允許訊息(TID = 0);
[0112] 1202 ~DBM 回應(yīng)訊息(TID = 0);
[0113] 1204 ~DBM 允許訊息(TID = 0);
[0114] 1206 ~DBM 回應(yīng)訊息(TID = 0);
[0115] 1220、1224~DBM數(shù)據(jù)訊息;以及
[0116] S1300,S1302,...,S1310 ~步驟。
【具體實施方式】
[0117] 以下說明目前實施本發(fā)明的優(yōu)選實施方式,其用以舉例說明本發(fā)明的主要技術(shù)原 貝1J,并非用以限定本發(fā)明的范圍。本發(fā)明的范圍需視所附權(quán)利要求書來界定。
[0118] 以下公開書中提到的數(shù)據(jù)存儲裝置包括控制器、非易失性存儲器以及快閃存儲 器。上述數(shù)據(jù)存儲裝置為一種可移除快閃存儲裝置或是嵌入式快閃存儲裝置,包括通用串 行總線(Universal Serial Bus,下稱USB)快閃隨身碟或存儲卡、安全數(shù)字存儲卡(Secure Digital SD card)、micro SD存儲卡、mini SD存儲卡、MultiMediaCard(下稱MMC)存儲卡、 嵌入式 MMC (eMultiMediaCard card,下稱 eMMC 卡)存儲卡以及 CF 存儲卡(Compact Flash card) 〇
[0119] 圖1是顯示本發(fā)明實施例中一種數(shù)據(jù)存儲系統(tǒng)1的區(qū)塊圖,包括數(shù)據(jù)存儲裝置10 和主機裝置12,兩者間以總線13連接。數(shù)據(jù)存儲系統(tǒng)1可以是手機、個人數(shù)字助理、平板 計算機、手提計算機、個人計算機、掌上游戲機、數(shù)字相機、消費者電子裝置或其他計算機裝 置。在其中一個實施例中,數(shù)據(jù)存儲裝置10為eMMC卡并且主機裝置12為處理器芯片。eMMC 卡和主機裝置12間的溝通信號符合JEDEC eMMC規(guī)范或之后更高的規(guī)范版本。連接數(shù)據(jù) 存儲裝置10和主機裝置12的eMMC總線13包括時鐘信號線CLK、數(shù)據(jù)閃動信號線DS (Data Strobe)、指令信號線CMD、數(shù)據(jù)信號線DAT、電源信號線(未圖示)以及重置信號線(未圖 示),其中時鐘信號線CLK包括1條信號線、數(shù)據(jù)閃動信號線DS包括1條信號線、指令信號 線CMD包括1條信號線、數(shù)據(jù)信號線DAT包括8條信號線、電源信號線包括2條信號線以及 重置信號線包括1條信號線。
[0120] 數(shù)據(jù)存儲裝置10和主機裝置12內(nèi)部分別具有暫存存儲器106和124。當(dāng)數(shù)據(jù)存 儲裝置10和主機裝置12間有正在進(jìn)行的連線時,數(shù)據(jù)存儲裝置10不但可使用其內(nèi)部的暫 存存儲器106,也可使用主機裝置12內(nèi)部的暫存存儲器124進(jìn)行數(shù)據(jù)暫存運作,這里的暫存 的數(shù)據(jù)包括例如邏輯對應(yīng)物理地址表等管理表及數(shù)據(jù),即數(shù)據(jù)存儲裝置10可使用的暫存 存儲器空間可延伸到主機裝置12的內(nèi)部存儲器,在主機裝置12的暫存存儲器124暫存數(shù) 據(jù)以及管理表。數(shù)據(jù)存儲裝置10可動態(tài)利用主機裝置12的內(nèi)部存儲器124來緩存本來需 要緩存在本地存儲器106的數(shù)據(jù)以及管理表。
[0121] 在數(shù)據(jù)存儲裝置10和主機裝置12連線間的任何階段,包括讀取階段、寫入階段以 及閑置階段,只要判定需要使用主機裝置12的暫存存儲器124暫存數(shù)據(jù)或管理表,數(shù)據(jù)存 儲裝置10就可以即時發(fā)出裝置總線主控(device bus master,以下稱為DBM)請求訊息至 主機裝置12,對主機裝置12請求總線13上數(shù)據(jù)傳輸?shù)目刂茩?quán)。一旦主機裝置12允許數(shù) 據(jù)傳輸?shù)目刂茩?quán),數(shù)據(jù)存儲裝置10即可自由存取主機裝置12的暫存存儲器124。上述DBM 請求訊息具有最高的處理優(yōu)先順序,高于讀取程序、寫入程序或是閑置程序。當(dāng)正在進(jìn)行正 常讀取或?qū)懭氤绦蛑校坏┲鳈C裝置12收到DBM請求訊息即會暫停目前正在進(jìn)行中的讀取 或?qū)懭氤绦虿⒈M快回應(yīng)該請求。而在DBM請求的數(shù)據(jù)服務(wù)完成后,主機裝置12可繼續(xù)進(jìn)行 暫停的讀取或?qū)懭氤绦?。在整個DBM的服務(wù)程序中主機裝置12都可知道正在進(jìn)行的動作, 并且不會有其他中斷程序打斷DBM服務(wù)程序。但本發(fā)明對總線13的具體規(guī)格并不作限制, 只要具備可在正常數(shù)據(jù)傳輸過程中由數(shù)據(jù)存儲裝置10向主機裝置12發(fā)出DBM請求訊息的 信號線即可。
[0122] 數(shù)據(jù)存儲裝置10包括存儲裝置收發(fā)器100、存儲裝置控制器102、快閃存儲器104 以及暫存存儲器106。存儲裝置控制器102耦接存儲裝置收發(fā)器100、快閃存儲器104以及 暫存存儲器106??扉W存儲器104可包括一或多個快閃存儲器,存儲裝置控制器102可將存 取數(shù)據(jù)的管理信息以管理表形式存在暫存存儲器106中,并于存取快閃存儲器104內(nèi)的數(shù) 據(jù)時通過管理表而存取正確的物理地址。暫存存儲器106可以是RAM,其可存儲數(shù)據(jù)存儲裝 置10的管理表或是數(shù)據(jù)存取處理中所需的暫存數(shù)據(jù)。存儲裝置控制器102也可使用DBM 服務(wù)程序存取主機裝置12的內(nèi)部暫存存儲器(存儲空間)124。存儲裝置收發(fā)器100用于 和主機裝置12進(jìn)行數(shù)據(jù)傳輸。
[0123] 主機裝置12包括主機裝置收發(fā)器120、主機裝置控制器122以及暫存存儲器124。 主機裝置控制器122可存取存儲在暫存存儲器124的程序代碼以及數(shù)據(jù)。暫存存儲器124 可以是RAM,其可存儲主機裝置控制器122要執(zhí)行的程序代碼、暫存數(shù)據(jù)、以及數(shù)據(jù)存儲裝 置10的管理表和暫存數(shù)據(jù)。在一實施例中,暫存存儲器124為該主機裝置12的主存儲器 (host memory)。主機裝置控制器122耦接主機裝置收發(fā)器120以及暫存存儲器124。主機 裝置收發(fā)器120用于和數(shù)據(jù)存儲裝置10進(jìn)行數(shù)據(jù)傳輸。
[0124] 在正常寫入以及讀取程序中,主機裝置12用于將正常數(shù)據(jù)寫入數(shù)據(jù)存儲裝置10 以及從數(shù)據(jù)存儲裝置10讀取正常數(shù)據(jù),詳細(xì)動作如圖2和圖3所示。圖2是顯示本發(fā)明實 施例中一種正常寫入程序的時序圖,其中只顯示數(shù)據(jù)閃動信號線DS、指令信號線CMD和數(shù) 據(jù)信號線DAT。此后圖中所示的DAT皆僅示出數(shù)據(jù)信號線DAT中的DAT[0]波形。其他未顯 示的時鐘信號線CLK上信號會以固定時鐘周期切換,電源信號線持續(xù)供給數(shù)據(jù)存儲裝置10 電源,重置信號線的信號在需要重置數(shù)據(jù)存儲裝置10才會動作。
[0125] 在正常寫入程序中,首先主機裝置12會發(fā)出寫入指令200,而數(shù)據(jù)存儲裝置10會 響應(yīng)收到的寫入指令200回復(fù)回應(yīng)指令202給主機裝置12,表示已收到寫入指令200并準(zhǔn) 備好從主機裝置12接收寫入數(shù)據(jù)。主機裝置12收到回應(yīng)指令202后會將正常寫入數(shù)據(jù)以 數(shù)據(jù)訊息220的形式傳送給數(shù)據(jù)存儲裝置10,該數(shù)據(jù)訊息220可將寫入數(shù)據(jù)封裝為一數(shù)據(jù) 分組(data packet)的形式,其包括起始位S、寫入數(shù)據(jù)DAT、數(shù)據(jù)驗證碼例如循環(huán)冗余校驗 碼(Cyclic redundancy check,下稱CRC)和結(jié)束位E。數(shù)據(jù)存儲裝置10收到數(shù)據(jù)訊息220 通過CRC進(jìn)行驗證,并將驗證結(jié)果以驗證狀態(tài)訊息222回傳給主機裝置12,并同時傳送切換 (toggling)的數(shù)據(jù)閃動信號240以提示主機裝置12開始接收驗證狀態(tài)訊息222,其中驗證 狀態(tài)訊息222包括起始位S、驗證結(jié)果CRC狀態(tài)及結(jié)束位E。舉例而言,驗證結(jié)果CRC狀態(tài) 為010,表示CRC驗證數(shù)據(jù)無誤;驗證結(jié)果CRC狀態(tài)為101,表示CRC驗證數(shù)據(jù)有錯。驗證結(jié) 果CRC狀態(tài)在數(shù)據(jù)信號線DAT[0]上序列傳輸,但本發(fā)明不限于此。如果是寫入數(shù)據(jù)不只一 筆,則主機裝置12會另發(fā)下個數(shù)據(jù)訊息224給數(shù)據(jù)存儲裝置10并由數(shù)據(jù)存儲裝置10收到 相應(yīng)的驗證狀態(tài)訊息226。
[0126] 如圖2所示,主機裝置12發(fā)送寫入指令200之前,會有一段閑置期間Tdbm 在 正常寫入程序之中,主機裝置12也不會一直被占用,在主機裝置12接收完回應(yīng)指令202之 后直至傳送第一筆數(shù)據(jù)訊息220之前,也存在一段閑置期間Tdbm ;在主機裝置12接收完 一筆數(shù)據(jù)訊