提供器件參數的製作方法
2023-05-09 13:12:06 2
專利名稱:提供器件參數的製作方法
技術領域:
本發明涉及提供屬於非易失性存儲器件的器件參數。
背景技術:
諸如非易失性存儲器件的外圍器件通常具有提供屬於該器件的器件參數的需 要。例如,當外圍器件被初始附連到主機(例如計算機或其它設備)時,主機可能請求器件 參數。作為具體例子,當USB器件被初始附連到主機計算機系統並通電時,主機將在枚舉 (enumeration)處理期間向USB器件請求器件參數。USB器件使用USB描述符將其器件參數報告給主機,這些USB描述符是描述諸如器 件是什麼、哪個廠商製造該器件以及該器件支持哪個版本的USB協議的信息的數據結構。 USB描述符類型的例子包括器件描述符、串描述符、配置描述符、接口描述符和端點描述符。器件描述符包括諸如廠商標識符(VID)、產品標識符(PID)和器件版本號的關於 USB器件的一般信息。該VID是唯一地標識USB器件的廠商的值。該PID是唯一地標識該 廠商的具體產品的值。該器件版本號是標識器件版本的被二進位編碼的十進位數。如果使用了串描述符,則其描述製造商、產品和器件的序列號。USB器件可以包括 多種語言的串描述符。允許主機指定由USB器件返回的串的期望語言。因此,主機可以將 來自串描述符的信息按期望的語言顯示給用戶。配置描述符包括關於具體器件配置的信息,接口描述符描述配置內的具體接口, 並且端點描述符描述用於接口的端點。基於USB描述符,主機確定用於USB器件的適當的器件驅動器,並建立與該USB器 件的通信信道。USB枚舉的進一步細節可在2000年4月27日的Universal Serial Bus Specification (通用串行總線規範)、版本2. 0獲得,通過全部參考將其合併於此。USB描述符是一種類型的器件參數的例子。器件參數的另一例子是用於彌補半導 體工藝變化的影響的那些器件參數。例如,USB器件具有其特性被工藝變化影響的組件。 USB器件可以具有用於存儲用來補償工藝變化的「修整(trim)」位的寄存器。作為具體例 子,可以基於該修整位調整USB組件的電阻。為了能夠向主機提供器件參數,或者為了使用參數本身,器件需要存儲這些器件 參數。各器件通常具有可用的諸如ROM的小量存儲器。但是,因為器件參數可能佔據相對大 的空間以及其他原因,可能不期望將器件參數存儲在將用於其他目的的ROM的一部分中。 另一選擇是添加諸如EEPROM的存儲器來存儲器件參數。但是,將EEPROM添加到器件增加 了相當的費用。
發明內容
公開了以有效方式提供器件參數的技術。一個實施例包括一種非易失性存儲器件,其具有非易失性存儲器、第一控制器和 第二控制器。第一控制器使用第一協議在提供對所述非易失性存儲器件的外部訪問的第一接口上通信。第二控制器使用第二協議在提供對所述非易失性存儲器件的外部訪問的第 二接口上通信。所述第二協議不同於所述第一協議。響應於來自所述第一控制器的請求, 第二控制器從所述非易失性存儲器提取器件參數,並將所提取的參數提供給所述第一控制 器。所述參數專用於所述非易失性存儲器件。在一個實施例中,所述第一控制器是通用串行總線(USB)讀卡器控制器,並且所 述第二控制器是安全數字(SD)控制器。所述第二控制器還可以是緻密快閃記憶體(CF)控制器、 記憶棒控制器或者能夠提供對非易失性存儲器的外部訪問的不同類型的控制器。器件參數 的例子是USB描述符,其可以包括描述製造商、產品和器件的序列號的廠商ID、產品ID和串 (「產品串」)。第一控制器在所述第一接口上的非易失性存儲器件的枚舉期間經過所述第 一接口提供器件參數。該參數可以是用於第一控制器以補償半導體工藝變化的設置或者其 他數據。一個實施例包括一種非易失性存儲器件,其包括非易失性存儲器、使用第一協議 經過提供對所述非易失性存儲器的外部訪問的接口而通信的第一處理器、以及實現由不同 於所述第一協議的第二協議所許可的廠商專用命令集的第二處理器。第一處理器向第二處 理器發出第二協議的第一命令以致使第二處理器進入第二協議的廠商專用模式。第一處理 器向第二處理器發出所述廠商專用命令集的一個或多個廠商專用命令以請求第二處理器 將屬於非易失性存儲器件的參數提供給第一處理器。如果第二處理器在處於廠商專用模式 下時接收到一個或多個廠商專用命令,則第二處理器從所述非易失性存儲器提取該參數。 第二處理器將所提取的參數提供給所述第一處理器。第一處理器可以是讀卡器控制器。第 二處理器可以是諸如安全數字控制器、緻密快閃記憶體控制器或記憶棒控制器的存儲器控制器。一個實施例包括一種用於提供專用於具有第一控制器和第二控制器的非易失性 存儲器件的器件參數的方法。該方法包括第二控制器使用第一通信協議從第一控制器請 求所述器件參數,所述第二控制器從所述非易失性存儲器件上的非易失性存儲器提取所述 器件參數,所述第一控制器使用所述第一通信協議將所述提取的參數提供給所述第二控制 器,所述第一控制器通過使用所述第一通信協議控制對所述非易失性存儲器的外部訪問, 以及所述第二控制器通過使用不同於所述第一通信協議的第二通信協議來控制對所述非 易失性存儲器的外部訪問。一個實施例包括一種提供屬於包括第一處理器和第二處理器的非易失性存儲器 件的器件參數的方法。該方法包括第二處理器向第一處理器發出命令以致使第一處理器進 入第一通信協議的廠商專用模式,並且第二處理器發出所述第一通信協議所許可的一個或 多個廠商專用命令。所述一個或多個廠商專用命令請求第一處理器將器件參數提供給第二 處理器。該方法還包括如果第一處理器在處於廠商專用模式下時接收到一個或多個廠商專 用命令,則第一處理器從所述非易失性存儲器件上的非易失性存儲器提取該器件參數,第 一處理器將所提取的參數提供給所述第二處理器,並且第二處理器經過由所述第二處理器 控制的接口將所提取的參數提供給主機。第二處理器使用不同於第一通信協議的第二通信 協議將參數提供給主機。
圖1描繪具有從第二控制器請求器件參數的第一控制器的非易失性存儲器件的一個實施例。圖2描繪提供器件參數的處理的一個實施例。圖3描繪向主機提供器件參數的處理的一個實施例。圖4描繪使用廠商專用命令來提取器件參數的命令流的一個實施例。圖5描繪使用廠商專用命令來提取器件參數的命令流的一個實施例。圖6描繪使用不同的協議向非易失性存儲器件以及從非易失性存儲器件傳送數 據的一個實施例。圖7描繪其中可以實踐本發明的實施例的示例非易失性存儲器件。圖8圖示可以用在圖1和圖7的非易失性存儲器件中的示例非易失性存儲器。
具體實施例方式構架概述圖1描繪了具有提供經由不同外部接口到非易失性存儲器120的外部訪問的讀卡 器控制器102和存儲器控制器104的非易失性存儲器件100的一個實施例。在一個實施例 中,器件100是可以被插入各種主機電子設備中的便攜存儲卡。例如,器件100可以被插入 數位相機中以在非易失性存儲器120中存儲數字圖像。器件100還可以被插入手持計算 機、個人數字助理(PDA)、全球定位衛星(GPS)設備、音樂播放器、可攜式攝像機、智慧型電話 等中。器件100還可以經由諸如USB纜線之類的纜線連接到外部主機。器件100可以用於 存儲來自諸如個人計算機的計算機系統的數字數據或將數字數據傳送到該計算機系統。器件100可以經過接口 A 112或者接口 B 114電連接到外部主機。接口 Al 12和接 口 B 114與不同協議的形狀因素(form factor)兼容。例如,接口 A 112可以與USB形狀 因素兼容,而接口 B 114可以與SD形狀因素兼容。USB接口具有四個管腳(電源、D+、D-和 地)。SD接口具有九個管腳(時鐘、命令、4xData和3xPower)。但是,接口 112、114可以不 同於USB和SD0當經過接口 A 112連接時,外部主機使用協議A與讀卡器控制器102通信,以便訪 問非易失性存儲器120。當經過接口 B 114連接時,外部主機使用協議B與存儲器控制器 104通信,以便訪問非易失性存儲器120。在一個實施例中,當將器件100插入主機電子設備中時,使用接口 B 114。器件100 的整體形狀具有允許器件100被插入主機電子設備的槽中的形狀因素,並且接口 B 114具 有允許適當的電接觸以允許與主機設備通信的形狀因素。不同形狀因素的例子包括但不限 於多媒體卡(MultiMediaCard) (MMC)、安全數字(Secure Digital) (SD)、迷你 SD (MiniSD)、 微 SD(MicroSD)、記憶棒(Memory Stick)和緻密快閃記憶體(CompactFlash)。在此控制器104被稱為存儲器控制器104,因為其具有到非易失性存儲器120 (例 如快閃記憶體)的直接訪問,並直接控制入及出非易失性存儲器120的數據傳送。存儲器控制器 104可以是安全數字控制器、記憶棒控制器、緻密快閃記憶體控制器或能夠向外部主機提供對非易 失性存儲器120 (諸如快閃記憶體)的訪問的另一類型的存儲器控制器104。在一個實施例中,存 儲器控制器104提供對受保護內容的加密能力以確保諸如數位音樂、視頻和電子書的版權 材料的安全分發。存儲器控制器104使用協議B與外部主機通信。協議B可以是安全數字 (SD)協議、緻密快閃記憶體(CF)協議、記憶棒協議或用於訪問非易失性存儲器(例如快閃記憶體)的另一協議。讀卡器控制器102和外部主機使用協議A通信。作為例子,協議A可能是通用串 行總線(USB)協議。但是,協議A可以是諸如IEEE 1394(例如火線)協議的另一協議。注 意,讀卡器控制器102不具有對非易失性存儲器120的直接訪問。為了讀卡器控制器102 間接訪問非易失性存儲器120,讀卡器控制器102使用協議B與存儲器控制器104通信。因 此,讀卡器控制器102和存儲器控制器104通過允許根據協議B的數據傳送的物理接口而 連接。例如,該物理接口具有根據SD協議或者另一存儲器協議的、用於時鐘、命令和數據的 線路。讀卡器控制器102允許不具有諸如接口 B 114的接口和/或不能使用協議B通信 的主機對存儲器120的訪問。例如,用戶可能希望將數據從器件100傳送到不具有SD接口 的個人計算機。大多數計算機具有USB接口 ;因此,可以使用具有USB接口的讀卡器控制 器。注意,使得讀卡器控制器102被嵌在器件100上緩解了對於外部讀卡器控制器102的 任何需要。當用戶將非易失性存儲器件100通過接口 A 112連接到主機時,主機請求器件參 數以便枚舉非易失性存儲器件100。例如,主機根據USB協議枚舉器件100,儘管這可能是 另一協議。器件參數包括USB描述符。USB描述符包括廠商ID、產品ID並可能包括串(制 造商ID串、產品ID串、序列號串)等。器件參數被存儲在非易失性存儲器120中的安全位 置中。例如,非易失性存儲器120具有不可從器件100的外部訪問的安全分區或者「秘密區 域」。因此,參數被存儲在非易失性存儲器120中的不可由主機尋址的位置中。為了獲得器件參數,讀卡器控制器102請求存儲器控制器104從非易失性存儲器 120獲得器件參數。對其響應,存儲器控制器104提取器件參數並將其提供給讀卡器控制器 102。注意,使用非易失性存儲器120來存儲器件參數緩解了使用非易失性存儲器件 100上的其他存儲器來存儲器件參數的任何需要。例如,在器件100上的EEPROM不需要存 儲USB描述符。作為另一例子,不需要使用讀卡器控制器102內的存儲器來存儲USB描述 符。如果USB描述符要被存儲在讀卡器控制器102內,則可能在製造讀卡器控制器102時 執行這樣的存儲(儘管可以在任何時間執行將參數存儲在EEPROM中)。注意,讀卡器控制器102可能能夠用於許多不同的產品和廠商。如此,PID、VID和 產品串取決於讀卡器控制器102將用於何產品中以及哪個廠商將售賣非易失性存儲器件 100 (其不是必須是讀卡器控制器102的銷售者)。因此,可以通過避免在讀卡器控制器102 中存儲器件參數來簡化存儲器控制器102的製造。此外,因為每個非易失性存儲器件100 被分配了唯一的序列號,因此每個讀卡器控制器102應該與不同的序列號相關。但是,在制 造讀卡器控制器102時,對於非易失性存儲器件100的適當序列號可能不是已知的或者可 能難以確定。至少由於這些原因,當製造讀卡器控制器102時,可能難以將非易失性存儲器 件100的序列號置於USB讀卡器控制器102中。圖1示出了使用協議B通信的讀卡器控制器102和存儲器控制器104。在一個實 施例中,讀卡器控制器102和存儲器控制器104通過一組廠商專用命令而通信以便讀卡器 控制器102從非易失性存儲器120獲得器件參數。在協議B內,廠商專用命令是可配置命 令,其格式和行為未由協議B定義。而是,該格式和行為可以被定義為容納特殊目的。
儘管已經使用了提供USB描述符的例子,但是存儲在非易失性存儲器120中的其 他器件參數也可以被提供給讀卡器控制器102。例如,器件參數可以用於彌補在製造器件 100中的組件時發生的工藝變化。提供器件參數的處理的概述圖2繪出了提供器件參數的處理200的一個實施例。將參考圖1的示例非易失性 存儲器件100討論處理200。但是,處理200不限於示例存儲器件100,並且示例存儲器件 100不限於處理200。在步驟202中,讀卡器控制器102使用協議B從存儲器控制器104請 求器件參數。通常,讀卡器控制器102在檢測到通電復位(pOWer-On-reset,P0R)時請求參數。在步驟204中,存儲器控制器104從非易失性存儲器120提取器件參數。在步驟 206中,存儲器控制器104使用協議B將所提取的器件參數提供給讀卡器控制器102。在步驟208(選項1)中,讀卡器控制器102使用協議A將參數提供給外部主機。在 步驟209中,外部主機使用該參數根據協議A完成枚舉處理。例如,主機選擇用於器件100 的器件驅動器並建立與器件100的通信信道。主機還指示器件100已經被插入主機中。例 如,主機將器件100添加到對於主機計算機系統可訪問的存儲器件和網絡的列表。而且,如 果用戶請求器件100的屬性,則主機顯示基於產品串的信息。但是,將參數提供給主機不是必需。在步驟210(選項2)中,參數用於建立讀卡器 控制器102的設置。作為例子,該設置可以用於彌補半導體工藝變化。在一個實施例中,參 數用於編程在讀卡器控制器102中的一個或多個寄存器。寄存器中的值用於調整在讀卡器 控制器102中的組件以彌補工藝變化。例如,可以基於寄存器中所存儲的器件參數來調整 電阻器的值。在步驟212中,讀卡器控制器102提供使用協議A對非易失性存儲器120的主機 訪問。例如,讀卡器控制器102使用USB協議與主機通信以允許主機向或從非易失性存儲 器120傳送數據。在此例子中,主機使用USB協議向讀卡器控制器102請求來自存儲器120 的數據。讀卡器控制器102產生適當的SD命令以發送到存儲器控制器104。存儲器控制 器104使用SD協議將所請求的數據返回到讀卡器控制器102,然後,讀卡器控制器102使用 USB協議將數據轉移到主機。結合圖6的處理600描述步驟212的進一步細節。在步驟214中,存儲器控制器104提供使用協議B經過接口 B對非易失性存儲器 120的外部訪問。例如,存儲器控制器104提供使用SD協議、緻密快閃記憶體協議或者記憶棒協 議對非易失性存儲器120的訪問。注意,通常在一個時間僅接口控制器102、104之一與主 機通信。步驟214可以發生在步驟202-212之前。例如,在步驟202之前,用戶可以將器件 100通過接口 B 114連接到數位相機、可攜式攝像機、PDA、其他電子設備以允許數字數據傳 送到非易失性存儲器120。存儲器控制器104在步驟214中使用協議B與主機通信。在此 例子中,用戶在步驟212中將數字數據傳送到主機。結合圖6的處理600描述步驟214的 進一步細節。在使用接口 A連接到主機時的示例序列如前所述,當用戶將器件100通過接口 A 112連接到主機時,主機請求器件參數。 圖2描述了在用戶將器件100連接到主機後發生的步驟的一般序列。圖3的處理300繪出 了在向主機提供器件參數的一個實施例中的主機和讀卡器控制器102之間的交互的細節。
8以下步驟是在接口 A 112是USB接口時的枚舉期間發生的事件的典型序列。為了便於討論 按此順序描述處理300的步驟;因此,各步驟可以按不同的順序發生。此外,處理300的一 些步驟可能在下一步驟開始前未完成。在步驟302中,用戶將非易失性存儲器件100經過接口 Al 12 (例如USB接口)連接 到外部主機。如果主機已經通電,則在步驟303中,主機向器件100供電。在步驟303中, 如果當連接器件100時主機未通電,則外部主機在主機通電時向器件100供電。在步驟304中,主機檢測器件100。為了檢測器件100,主機監視主機埠上的信 號線(D+和D-)上的電壓,其中器件100連接到該主機埠。主機在主機埠的兩條信號 線的每條上具有14. 25到24. 8K歐姆(ohm)的下拉電阻器。器件100在用於全速器件的D+ 信號線或者用於低速器件的D-信號線上具有900到1575歐姆的上拉電阻器。當器件100 被插入主機埠中時,器件的上拉電阻器將器件的信號線(D+或D-)帶到高,使主機能夠檢 測到器件100。在步驟306中,主機將器件100復位。為了復位器件100,主機將兩信號線(D+和 D-)設置為邏輯低。這與其中信號線具有相反的邏輯值的正常操作不同。主機維持邏輯低 值達至少10毫秒。在步驟308中,響應於檢測到復位,讀卡器控制器102在主機將請求參數的預料下 從存儲器控制器104獲得器件參數。在一個實施例中,圖4的處理400用於獲得器件參數。 步驟308不是必需在步驟310開始之前完成。在步驟310中,主機使用協議A從讀卡器控制器102請求器件參數。步驟310可以 涉及主機向器件100發送多個請求。例如,主機發送USB協議的第一 Get_Descriptor (得到 描述符)請求以了解器件100將發送的最大分組大小,並且主機發送第二 Get_Descript0r 請求以獲得器件描述符。在步驟310中,主機還可以向器件100請求描述關於具體器件配 置的信息的配置描述符、描述配置內的具體接口的接口描述符以及描述用於接口的端點的 端點描述符。主機還可以請求描述器件製造商、產品和器件的序列號的產品串描述符。在步驟312中,讀卡器控制器102使用協議A將器件參數提供給主機。讀卡器控 制器102通過返回包含USB器件描述符的整個數據結構來響應每個Get_Descript0r請求, 儘管主機忽略了響應於第一 Get_Descript0r請求而返回的數據的大多數。表1包括由器 件100返回的USB器件描述符的示例數據結構。該USB器件描述符包括在偏移量8、10和 12處的廠商標識符(VID)、產品標識符(PID)和器件版本號。該數據結構具有用於對在偏 移量14、15和16處的串的索引的欄位。表 1
9偏移量欄位大小值描述0bLength1數字按字節的該描述符 的大小1bDescriptorType1恆定器件描述符類型2bcdUSB2BCDUSB規範版本號4bDeviceClass1類類碼5bDeviceSubClass1子類子類碼6bDeviceProtocol1協議協議碼7bMaxPacketSizeO1數字對於端點零的最大 分組大小8id Vendor2ID廠商ID10idProduct2ID產品ID12bcdDevice2BCD二進位編碼的十進 制數的器件版本號14iManufacure1索引描述製造商的串描 述符的索引15iProduct1索引描述產品的串描述 符的索引16iSerialNumber1索引描述器件的序列號 的串描述符的索引
17bNum Configurations1數字可能的配置的數量如果主機請求串描述符,則器件100在步驟312中提供串描述符。表2是器件響 應於對器件100支持何種語言的串描述符的請求而返回的示例數據結構。在偏移量2-N處 的欄位是指示器件支持何種語言的碼。表2偏移量欄位 大小值描述0bLength 1N+2按字節的該描述符的大小1bDescriptorType 1恆定串描述符類型2wLANGIDfOJ 2數字LANGID 碼 0NwLANGIDfxJ 2數字LANGID 碼 χ
表3繪出了響應於對在特定偏移量處的串的請求而由器件100返回的數據結構。例如,主機請求器件描述符中的基於器件100提供的偏移量的串。
表3
偏移量欄位 大.小 值描述0bLength 1數字按字節的此描述符的大小1bDescriptorType 1恆定串描述符類型2bString N數字UNICODE編碼的串在主機接收到器件參數後,主機完成如在處理200的步驟209中所述的枚舉。然 後讀卡器控制器102提供對非易失性存儲器120的外部訪問,如在處理200和處理600的 步驟212中所述。此外,存儲器控制器104提供對非易失性存儲器120的外部訪問,如在處 理200和處理600的步驟204中所述。示例廠商專用命令在一個實施例中,讀卡器控制器102使用協議B所許可的一個或多個廠商專用命 令從存儲器控制器104請求器件參數。此部分提供了通過SD協議使用的廠商專用命令的 例子。SD協議的CMD6是用於切換或者擴展存儲卡功能的切換功能命令。該切換功能命令 可以用於建立存儲卡識別的命令集。即,可以在支持標準命令集和廠商專用命令集之間切 換存儲卡。在SD協議中,CMD34-37、CMD50和CMD57是留出作為廠商專用命令的集。當器 件100未處於廠商專用模式中時,廠商專用命令不被器件100識別並被認為是非法的命令。以下描述例示了 CMD34和CMD35可以如何用於提取參數。為了便於討論,將使用 其中讀卡器控制器102向存儲器控制器104發出廠商專用命令的例子。CMD35在一個實施例中,CMD35用於指示正做出對器件參數的請求。CMD35被從讀卡器控 制器102發出到存儲器控制器104。該命令可以具有與寫入單個塊的SD命令類似的行為, 儘管存儲器控制器104不向存儲器120寫入變量(argument)。作為例子,CMD35可以具有與 SD協議的CMD24類似的行為,該CMD24是用於寫入單個塊的命令。表4繪出了用於CMD35 的示例變量,但是也可以使用其他值。各變量定義了正在請求何參數。例如,變量可能指示 正請求USB描述符或者諸如用於補償工藝變化的那些器件參數的其他器件參數。變量可以 指定正在請求諸如器件描述符、配置描述符或串描述符的哪個USB描述符。在以下例子中,塊具有512位元組,但是塊可以具有不同數量的字節。表 4
字節0: 0x10 字節1: 0x40 字節2-511 0在一個實施例中,存儲器控制器104在接收到CDM35時不響應讀卡器控制器102。 存儲器控制器104可以在接收到CMD35時提取器件參數,但是不傳送器件參數直到接收到 CMD34。在一個實施例中,如果CMD35中的變量不正確,則CMD34的存儲器控制器104響應 是「一般錯誤」並且器件參數不被發送到讀卡器控制器102。CMD34在一個實施例中。CMD34用於致使存儲器控制器104將器件參數傳送到讀卡器控 制器102。該命令可以是讀取單個塊的數據的請求。該命令可以具有與讀取單個塊的SD命 令類似的行為。例如,CMD34可以具有與SD協議的CMD17類似的行為,該CMD17是用於讀 取單個塊的命令。存儲器控制器104 (固件和ASIC)忽略CMD34的變量。表5繪出了響應 於接收到CMD34由存儲器控制器104返回的數據的示例數據樣式定義。例如,存儲器控制 器104將這樣的數據傳送到讀卡器控制器102。表 5
字節0..19 字節20..34 字節35..36 字節37..38 字節39..51
器件序列號
產品串(ASCII字符串) 廠商-ID· 產品-ID 0在一個實施例中,如果讀卡器控制器102發送CMD34而不首先發送CMD35,則存儲 器控制器104的響應是「一般錯誤」。表6繪出了示例命令序列。表6
CMD6設置廠商專用模式CMD35詢問器件參數CMD34讀取CMD35中所請求的數據CMD6退出廠商專用模式 使用廠商專用命令來提取器件參數的示例命令流
12
圖4繪出了使用廠商專用命令來提取器件參數的命令流400的一個實施例。當讀 卡器控制器102確定將需要器件參數時,諸如在檢測到復位時,啟動處理400。將參考圖1 中的器件100討論命令流400,儘管命令流400並不這樣受限。在步驟402中,讀卡器控制 器102向存儲器控制器104發出協議B的命令以將存儲器控制器104設置到廠商專用模式 下。在一個實施例中,讀卡器控制器102發出符合SD協議的命令。作為具體例子,讀卡器 控制器102可以發出SD協議的CMD6。但是,在另一實施例中,該命令符合不同於SD協議的 協議。在步驟404中,存儲器控制器104進入廠商專用模式。在廠商專用模式下,存儲器 控制器104將支持廠商專用命令以及標準命令的集。在此,在標題「示例廠商專用命令」下 提供了通過SD協議使用的廠商專用命令的例子。在另一實施例中,廠商專用命令是與SD 協議不同的協議。在步驟406中,讀卡器控制器102向存儲器控制器104發出一個或多個命令以請 求器件參數。在一個實施例中,命令是協議B所許可的廠商專用命令。可以使用在標題「示 例廠商專用命令」下討論的示例CMD34和示例CMD35。在步驟408中,存儲器控制器104從非易失性存儲器120提取器件參數。器件參 數可以是USB描述符。在步驟410中,存儲器控制器104使用協議B將器件參數發送到讀 卡器控制器102。在一個實施例中,存儲器控制器104使用符合廠商專用命令集的格式來發 送器件參數。在標題「示例廠商專用命令」下給出了示例格式。在步驟412中,讀卡器控制器102向存儲器控制器104發出協議B的命令以請求 存儲器控制器104退出廠商專用模式。作為例子,讀卡器控制器102發出SD協議的CMD6。 在步驟414中,存儲器控制器104退出廠商專用模式。圖4中的命令流討論了其中存儲器控制器104是SD控制器的例子。但是,不要求 存儲器控制器104是SD控制器。注意,如果使用了其他存儲器控制器104,則命令的類型 可以不同,並且可能存在對於命令流400的一些變化。例如,對於一些協議,可能不是必須 將存儲器控制器104置於廠商專用模式下以便使用廠商專用命令。另外,從存儲器控制器 104請求器件參數的命令不是必須是廠商專用命令。命令處理的例子圖5繪出了示例廠商專用命令的命令處理500的一個實施例。具體地,命令處理 500描述了響應於接收到在此討論的示例CMD34由接收方採取的動作。為了便於討論,存儲 器控制器104將是接收方。在步驟502中,存儲器控制器104接收CMD34。如果存儲器控 制器104確定其未處於廠商專用模式,則存儲器控制器104響應已接收到非法命令(步驟 504,506)。在一個實施例中,該響應不涉及存儲器控制器104上的被編程以實現廠商專用 命令的固件。而是,該響應由諸如存儲器控制器媒體接口(圖7,724)的ASIC來處理。如果存儲器控制器104在接收到CMD34時處於廠商專用模式中,則存儲器控制器 104確定先前是否已經接收到CMD35(步驟508)。該確定可以由存儲器控制器104上的固 件做出。如果先前未接收到CMD35,則在步驟510中,存儲器控制器104以「一般錯誤」來響 應。如果先前接收到了 CMD35,則在步驟512中存儲器控制器104確定CMD35的變量是 否有效。如果變量無效,則存儲器控制器104在步驟514中返回「一般錯誤」。
13
如果對於CMD35的變量有效,則在步驟516中存儲器控制器104傳送包含器件參 數的數據的扇區(例如512位元組)。這結束了命令處理500。使用不同的協議將數據向和從非易失性存儲器件傳送的例子圖6繪出了使用不同的協議向和從器件100傳送數據的處理600的一個實施例的 細節。在步驟602中,用戶將器件100經過接口 B114連接到主機電子設備。例如,用戶將 非易失性存儲器件100插入數位相機、可攜式攝像機、PDA、音樂播放器等中。在步驟604中,器件100接收通過接口 B 114在非易失性存儲器120和主機之間 傳送數據的請求。作為例子,主機發出SD協議的一個或多個命令以請求從數位相機到非易 失性存儲器120的數據傳送。作為另一例子,請求可以是從非易失性存儲器120向音樂播 放器傳送數據。在步驟606中,存儲器控制器104在非易失性存儲器120和主機之間傳送數據。作 為例子,存儲器控制器104經過接口 B 114接收符合SD協議的一個或多個數據塊並將來自 各塊的數據存儲在非易失性存儲器120中。在步驟608中,存儲器控制器104使用協議B將結果報告給主機。例如,在SD協 議中,接收方將響應發送到主機,作為對於先前接收的命令的回答。因此,存儲器控制器104 發出對於從主機接收的每個SD命令的響應。然後,主機向用戶顯示指示數據傳送完成的消 息,使得用戶可以將器件100從主機移除。在步驟610中,用戶將非易失性存儲器件100經過接口 A 112連接到主機。作為 例子,用戶將器件100連接到個人計算機的USB埠以下載數字照片。作為另一例子,用戶 計劃將音樂文件從主機傳送到器件100。在步驟612,主機使用協議A請求數據傳送。作為 例子,用戶與個人計算機上的接口交互以選擇要從非易失性存儲器120傳送的文件。用戶 還可以從個人計算機選擇要被傳送到非易失性存儲器120的文件。在步驟614中,讀卡器控制器102使用協議B向存儲器控制器104發送請求。例 如,讀卡器控制器102發出SD協議的命令以請求從非易失性存儲器120提取或向非易失性 存儲器120存儲一個或多個塊的數據。在步驟616中,存儲器控制器104從非易失性存儲器120提取數據或者向非易失 性存儲器120存儲數據。例如,根據SD協議在讀卡器控制器102和存儲器控制器104之間 傳送一個或多個塊的數據。存儲器控制器104向或者從非易失性存儲器120傳送數據。在步驟618中,存儲器控制器104使用協議B報告回讀卡器控制器102。例如,存 儲器控制器104根據SD協議發送對於從讀卡器控制器102接收的每個命令的響應。在步驟620中,讀卡器控制器102使用協議A向主機報告。例如,讀卡器控制器 102根據USB協議發送響應。然後主機可以向用戶顯示指示數據傳送完成的消息。示例非易失性存儲器件圖7繪出了其中可以實踐本發明的實施例的示例非易失性存儲器件700。例如,器 件700示出了讀卡器控制器102和存儲器控制器104的一個實施例的細節。示例器件700 具有USB讀卡器控制器102、存儲器控制器104和非易失性存儲器120。在一個實施例中, USB讀卡器控制器102和存儲器控制器104用分離的集成電路實現。在一個實施例中,USB讀卡器控制器102提供根據USB 2. 0規範的僅大量傳輸 (bulk only transport)。USB PHY 702 包含處理低級 USB 協議和信令(signaling)並將數據的時鐘域從USB速率(rate)移動到與器件700中的邏輯兼容的速率的模擬電路。USB PHY 702將模擬信號轉換成數字流並包含用於產生用於內部數據鎖存的精確時鐘的鎖相環 電路。USB串行接口引擎(SIE) 704包含用於處理USB分組和業務的USB PID和地址識別 邏輯以及其他排序和狀態機邏輯。SIE 704提供根據USB標準、諸如USB 2.0標準的串行和 並行數據轉換、分組解碼/產生、循環冗餘碼(CRC)產生/檢查、非歸零(NRZI)編碼/解碼 以及位填充。USB讀卡器控制器102具有媒體接口 714(1)-714 (η)。作為例子,媒體接口 714 可以包括但不限於安全數字(SD)、迷你安全數字(迷你-SD)、記憶棒 (MS)、高速記憶棒 (HSMS)、記憶棒 PRO(MSPRO)、MS Duo 、緻密快閃記憶體 (SF)、CF Ultra 、智能媒體 (SM)、xD 圖 片卡 (xD)、TransFlash(SD)、多媒體卡 (MMC)、降低尺寸的多媒體卡(RS-MMC) ,NAND快閃記憶體 等。在示例器件700中,僅使用媒體接口 714(1)中的一個。即,非易失性存儲器件700具 有單個存儲器控制器104。但是,器件700可以具有多個存儲器控制器104。緩衝器706用 於緩衝在USB SIE 704和媒體接口 714之間傳送的數據。在一個實施例中,USB讀卡器控制器102具有實現用於經過存儲器控制器104從非 易失性存儲器120獲得器件參數的命令集的固件。該命令可以是由媒體1接口 714(1)使 用的通信協議所許可的廠商專用命令。在一個實施例中,該固件包括存儲在讀卡器ROM 710 中的指令,當在讀卡器處理器708上執行時,該指令實現廠商專用命令。但是,該指令不是 必須被存儲在讀卡器ROM 710中。在一個實施例中,該指令被存儲在非易失性存儲器120 中,並在器件700通電時被加載到讀卡器控制器102中(例如加載到讀卡器RAM712中)。USB讀卡器控制器102的媒體1接口 714(1)連接到存儲器控制器104的媒體接 口 724以允許通信。每個媒體接口 714(1)、724具有翻譯到來的命令的命令解碼器和產生 適當的響應以回答該到來的命令的響應產生器。在一個實施例中,如果存儲器控制器媒體 接口 724在存儲器控制器104未處於廠商專用模式下時接收到廠商專用命令,則媒體接口 724響應已接收到非法命令而不涉及被設計用於實現廠商專用命令的存儲器控制器固件。非易失性存儲器接口 726控制在存儲器控制器104和非易失性存儲器120之間的 數據交換。在一個實施例中,非易失性存儲器120包括快閃記憶體。存儲器控制器104具有用於 緩衝在非易失性存儲器120和媒體接口 724之間的傳送期間的數據。在一個實施例中,存儲器控制器104具有實現用於將來自非易失性存儲120的器 件參數提供給讀卡器控制器102的命令集的固件。該命令可以是由媒體1接口 714(1)和 存儲器控制器媒體接口 724使用的通信協議所許可的廠商專用命令。在一個實施例中,固 件包括存儲在存儲器控制器ROM 732中的指令,當在存儲器控制器處理器734上執行時,該 指令實現廠商專用命令。但是,該指令不是必須被存儲在ROM 732中。在一個實施例中,該 指令被存儲在非易失性存儲器120中,並當器件700通電時被加載到存儲器控制器104中 (例如加載到存儲器控制器RAM 736中)。示例非易失性存儲器圖8圖示了可以用在在此所述的非易失性存儲器件100和700中的示例非易失性 存儲器120。非易失性存儲器120包括用於並行地讀取和編程一頁(或其他單位)的存儲器 單元(例如NAND多狀態快閃記憶體)的讀/寫電路。非易失性存儲器120可以包括一個或多個存
15儲器晶片(die)或晶片812。存儲器晶片812包括存儲器單元的陣列(二維或三維)800、控 制電路820和讀/寫電路830A和830B。在一個實施例中,各種外圍電路對存儲器陣列800 的訪問在該陣列的相對側以對稱方式實現,使得每側的訪問線和電路的密度降低一半。讀/ 寫電路830A和830B包括允許並行地讀取或編程一頁的存儲器單元的多個感測塊800。存 儲器陣列800可由字線經由行解碼器840A和840B以及由位線經由列解碼器842A和842B 尋址。字線和位線是控制線的例子。在典型的實施例中,控制器844被包括在與一個或多 個存儲器晶片812相同的非易失性存儲器120 (例如可移除存儲卡或包裝)中。經由線路 832在存儲器控制器104和非易失性存儲器控制器844以及經由線路834在非易失性存儲 器控制器844和一個或多個存儲器晶片812之間傳送命令和數據。控制電路820與讀/寫電路830A和830B協作以對存儲器陣列800執行存儲器操 作。控制電路820包括狀態機822、晶片上地址解碼器824和功率控制模塊826。狀態機822 提供對存儲器操作的晶片級控制。晶片上地址解碼器824提供在由主機或存儲器控制器使 用的地址到由解碼器840A、840B、842A和842B使用的硬體地址之間的地址接口。功率控制 模塊826控制在存儲器操作期間被提供給字線和位線的功率和電壓。在一個實施例中,功 率控制模塊826包括可以建立大於供應電壓的電壓的一個或多個電荷泵。已經為了例示和描述的目的給出了對本發明的在前詳細描述。並非意要排他或將 本發明限制為所公開的精確形式。根據以上教導,許多修改和變化是可能的。選擇所述實 施例以便最佳說明本發明的原理及其實際應用,由此使得本領域技術人員在各種實施例中 以及通過適合於意圖的具體使用的各種修改而最佳地利用本發明。意要本發明的範圍由所 附權利要求限定。
權利要求
一種非易失性存儲器件(100),包括非易失性存儲器(120);第一控制器(102),其使用第一協議在提供對所述非易失性存儲器件(100)的外部訪問的第一接口上通信;以及第二控制器(104),其使用第二協議在提供對所述非易失性存儲器件(100)的外部訪問的第二接口上通信,所述第二控制器(104)響應於來自所述第一控制器(102)的請求而從所述非易失性存儲器(120)提取參數,所述第二控制器(104)將所提取的參數提供給所述第一控制器(102),所述參數專用於所述非易失性存儲器件(100),所述第二協議不同於所述第一協議。
2.如權利要求1所述的器件,其中所述第一控制器在所述第一接口上的非易失性存儲器件的枚舉期間經過所述第一接 口提供所提取的參數。
3.如權利要求1所述的器件,其中所述參數是用於所述第一控制器的設置。
4.如權利要求1所述的器件,其中所述參數被存儲在所述非易失性存儲器中的不可從所述非易失性存儲器件的外部尋 址的地址處。
5.如權利要求1所述的器件,其中所述第一控制器通過使用由所述第二協議許可的一個或多個廠商專用命令來從所述 第二控制器請求所述參數。
6.如權利要求5所述的器件,其中所述第一控制器致使所述第二控制器在所述第一控制器請求所述參數之前進入所述 第二協議的廠商專用模式。
7.如權利要求1所述的器件,其中所述第二控制器僅在第二控制器處於所述第二協議的廠商專用模式下時接收到來自 所述第一控制器的請求的情況下才將參數提供給所述第一控制器。
8.如權利要求1所述的器件,其中所述第一控制器是通用串行總線(USB)讀卡器控制器。
9.如權利要求1所述的器件,其中所述第二控制器包括安全數字(SD)控制器、緻密快閃記憶體(CF)控制器或記憶棒(MS)控制 器中的至少一個。
10.如權利要求1所述的器件,其中所述參數是通用串行總線(USB)描述符。
11.一種用於提供器件參數的方法,該方法包括從非易失性存儲器件上的第一控制器請求所述器件參數,所述器件參數專用於所述非 易失性存儲器件,該請求由所述非易失性存儲器件上的第二控制器使用第一通信協議來執 行(202);從所述非易失性存儲器件上的非易失性存儲器提取所述器件參數,該提取由所述第一 控制器響應於所述請求而執行(204);使用所述第一通信協議將所述提取的參數從所述第一控制器提供給所述第二控制器 (206);由所述第一控制器使用所述第一通信協議控制對所述非易失性存儲器的外部訪問 (214);以及由所述第二控制器使用不同於所述第一通信協議的第二通信協議來控制對所述非易 失性存儲器的外部訪問(212)。
12.如權利要求11所述的方法,還包括根據第二協議在所述非易失性存儲器件的枚舉期間將所述器件參數提供給與所述非 易失性存儲器件耦接的主機。
13.如權利要求11所述的方法,還包括基於所述器件參數建立用於所述第一控制器的設置。
14.如權利要求11所述的方法,其中提取所述器件參數包括從不可從所述非易失性存儲器件的外部尋址的位置提取所述參數。
15.如權利要求11所述的方法,還包括在從所述第一控制器請求所述器件參數之前,從所述第二控制器發出命令以致使所述 第一控制器進入第一協議的廠商專用模式。
全文摘要
一種非易失性存儲器件具有使用不同的協議提供對非易失性存儲器的外部訪問的第一和第二控制器。響應於來自所述第一控制器的請求,第二控制器從所述非易失性存儲器提取器件參數,並將所提取的參數提供給所述第一控制器。在一個實施例中,器件參數是USB描述符,其可以包括廠商ID、產品ID、產品串和/或序列號。所述第一控制器可以是通用串行總線(USB)讀卡器控制器。所述第二控制器的例子包括安全數字(SD)控制器、緻密快閃記憶體(CF)控制器、記憶棒控制器或者能夠提供對非易失性存儲器的外部訪問的不同類型的控制器。第一控制器在所述非易失性存儲器件的枚舉期間將所述器件參數提供給主機。所述器件參數可以用於建立第一控制器的設置。
文檔編號G06F12/00GK101971152SQ200980109193
公開日2011年2月9日 申請日期2009年1月29日 優先權日2008年2月15日
發明者內森·拉帕波特, 卡·I·揚, 史蒂文·斯普勞斯, 達瓦爾·帕裡克 申請人:桑迪士克公司