專利名稱:可編程存儲(chǔ)器控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及可編程存儲(chǔ)器控制器。
背景技術(shù):
常用的電子設(shè)備通常包括一種或多種類型的存儲(chǔ)器。一般來(lái)說(shuō),利用存儲(chǔ)器控制器(memory controller)對(duì)電子設(shè)備的一個(gè)或多個(gè)處理單元與一個(gè)或多個(gè)存儲(chǔ)器單元之間的數(shù)據(jù)流進(jìn)行管理。在常用電子設(shè)備中存儲(chǔ)器的常見(jiàn)類型為閃存(flash memory)0閃存被設(shè)計(jì)為在存儲(chǔ)器的大部分分區(qū)內(nèi)可擦除和可編程。在常用技術(shù)中,存在用于存儲(chǔ)器設(shè)備的多種架構(gòu)、命令集、協(xié)議、總線接口以及諸如此類的標(biāo)準(zhǔn)。例如,還存在用于閃存設(shè)備的多種標(biāo)準(zhǔn),諸如legacy、ONFI> Samsung和 JEDEC0這些閃存標(biāo)準(zhǔn)各有細(xì)微差別,并且每個(gè)都為供應(yīng)商提供特定的命令。常用的存儲(chǔ)器控制器通常使用單個(gè)的存儲(chǔ)器標(biāo)準(zhǔn)或多個(gè)標(biāo)準(zhǔn)的小型子集來(lái)運(yùn)行。架構(gòu)、命令集、協(xié)議、信號(hào)接口定義等等的不同,使常用的存儲(chǔ)器控制器無(wú)法支持對(duì)不同的存儲(chǔ)器設(shè)備進(jìn)行存儲(chǔ)器訪問(wèn)。因此,對(duì)于存儲(chǔ)器控制器來(lái)說(shuō),持續(xù)需要去支持多種標(biāo)準(zhǔn)。
發(fā)明內(nèi)容
最好通過(guò)參考以下描述和用于示出本技術(shù)實(shí)施例的附圖來(lái)理解本技術(shù)。本技術(shù)的實(shí)施例針對(duì)可編程存儲(chǔ)器控制器及其設(shè)定和操作。在設(shè)定實(shí)施例中,確定用于一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的命令集。該一個(gè)或多個(gè)存儲(chǔ)器設(shè)備可包括一個(gè)或多個(gè)閃存設(shè)備,具有一種或多種不同的架構(gòu)、遵循不同的標(biāo)準(zhǔn)、利用不同的通信協(xié)議、具有不同的接口和/或諸如此類。將命令操作的每一個(gè)都分解為一個(gè)或多個(gè)基元(primitive)。該基元可包括命令周期、地址周期和/或數(shù)據(jù)周期。將該命令操作與該一個(gè)或多個(gè)基元之間的映射存儲(chǔ)在存儲(chǔ)器控制器的命令翻譯數(shù)據(jù)結(jié)構(gòu)中。在操作實(shí)施例中,使用一個(gè)或多個(gè)命令操作與一個(gè)或多個(gè)基元之間的映射對(duì)存儲(chǔ)器控制器的命令翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行編程。該一個(gè)或多個(gè)基元由被確定用于一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的一個(gè)或多個(gè)命令操作分解得到。此后,該存儲(chǔ)器控制器從一個(gè)或多個(gè)處理單元接收命令操作。由該存儲(chǔ)器控制器使用該命令翻譯數(shù)據(jù)結(jié)構(gòu)將每一個(gè)接收到的命令操作翻譯為一個(gè)或多個(gè)相應(yīng)基元的集合。然后該存儲(chǔ)器控制器針對(duì)每一個(gè)接收到的命令操作輸出該由一個(gè)或多個(gè)相應(yīng)基元組成的集合。將合適的基元輸出到合適的存儲(chǔ)器設(shè)備和/或合適的處理單元。
本技術(shù)的實(shí)施例通過(guò)示例的方式而非限制性的方式示出,在附圖中相同附圖標(biāo)記表示相似元素,其中
圖I示出了根據(jù)本技術(shù)一實(shí)施例,存儲(chǔ)器控制器設(shè)定過(guò)程的流程圖。圖2示出了根據(jù)本技術(shù)一實(shí)施例,包括存儲(chǔ)器控制器的示范性系統(tǒng)的框圖。
圖3示出了根據(jù)本技術(shù)一實(shí)施例,將命令操作分解為基元的示例。圖4示出了根據(jù)本技術(shù)一實(shí)施例,示范性存儲(chǔ)器控制器的框圖。圖5示出了根據(jù)本技術(shù)一實(shí)施例,存儲(chǔ)器控制器的操作的流程圖。圖6不出了根據(jù)本技術(shù)一實(shí)施例,交叉存取基兀和/或宏的一個(gè)或多個(gè)集合的不例。
具體實(shí)施例方式現(xiàn)在將詳細(xì)參考根據(jù)本技術(shù)的實(shí)施例,其示例示出在附圖中。雖然本技術(shù)將結(jié)合這些實(shí)施例加以描述,但可以理解的是它們并非意圖將本發(fā)明限定于這些實(shí)施例。相反,本發(fā)明意圖覆蓋由隨附權(quán)利要求所限定的本發(fā)明范圍內(nèi)所包括的替換、修改和等同物。此外, 在本技術(shù)的以下詳細(xì)描述中,提出了許多特定細(xì)節(jié)以提供對(duì)于本技術(shù)的徹底理解。但是,可以理解的是本發(fā)明可以省去這些特定細(xì)節(jié)而實(shí)施。在其他實(shí)例中,為了避免不必要的模糊本技術(shù)的各方面,并未對(duì)公知的方法、程序、組件和電路加以詳細(xì)描述。本技術(shù)的實(shí)施例針對(duì)可支持不同的命令集、協(xié)議和接口以及可支持將來(lái)新的命令集、協(xié)議和接口的可編程存儲(chǔ)器控制器技術(shù)。此外,對(duì)每個(gè)命令來(lái)說(shuō),實(shí)施例減少了在處理器和存儲(chǔ)器控制器之間通過(guò)的數(shù)據(jù)量。參考圖1,示出了根據(jù)本技術(shù)一個(gè)實(shí)施例的存儲(chǔ)器控制器設(shè)定過(guò)程。該存儲(chǔ)器控制器的設(shè)定過(guò)程將參考圖2得到進(jìn)一步的解釋,該圖2示出了包括存儲(chǔ)器控制器的示范性系統(tǒng)。該存儲(chǔ)器控制器210對(duì)一個(gè)或多個(gè)處理單元220與一個(gè)或多個(gè)存儲(chǔ)器單元230之間的數(shù)據(jù)流進(jìn)行管理。該處理單元220可以是微處理器、中央處理單元(CPU)、圖形處理單元 (GPU)、微控制器或者任何其他類似的處理單元。在一個(gè)實(shí)現(xiàn)方案中,該存儲(chǔ)器單元230可以是閃存陣列、電路、芯片、卡、模塊等等。在一個(gè)實(shí)現(xiàn)方案中,該存儲(chǔ)器控制器210可以是單獨(dú)的電路。在另一實(shí)現(xiàn)方案中,該存儲(chǔ)器控制器210可以集成于處理單元220。再次參考圖I,該設(shè)定過(guò)程包括在110為一個(gè)或多個(gè)存儲(chǔ)器設(shè)備確定命令操作。在一個(gè)實(shí)現(xiàn)方案中,存儲(chǔ)器設(shè)備可以是一個(gè)或多個(gè)不同的閃存設(shè)備。對(duì)于諸如0NFI、JEDEC和 /或諸如此類的一個(gè)或多個(gè)存儲(chǔ)器標(biāo)準(zhǔn),命令操作可包括例如頁(yè)面讀取、頁(yè)面寫入等等。命令操作可以包括構(gòu)成一個(gè)或多個(gè)協(xié)議的一個(gè)或多個(gè)命令操作的一個(gè)或多個(gè)集合。命令操作還可與一個(gè)或多個(gè)信號(hào)接口定義相關(guān)聯(lián)。在120,將命令操作每一個(gè)分解為包括一個(gè)或多個(gè)周期的一個(gè)或多個(gè)基元。該基元可包括一個(gè)或多個(gè)命令(CMD)周期、一個(gè)或多個(gè)地址(ADDR)周期和/或一個(gè)或多個(gè)數(shù)據(jù) (DATA)周期。對(duì)于與一個(gè)或多個(gè)命令操作的一個(gè)或多個(gè)集合相對(duì)應(yīng)的一個(gè)或多個(gè)協(xié)議中的每一個(gè),還可將命令操作分解為針對(duì)基元中的一個(gè)或多個(gè)的一個(gè)或多個(gè)持續(xù)時(shí)間。對(duì)于與一個(gè)或多個(gè)命令操作的一個(gè)或多個(gè)集合相對(duì)應(yīng)的一個(gè)或多個(gè)協(xié)議的每一個(gè),還可將命令操作分解為在一個(gè)或多個(gè)基元之后的一個(gè)或多個(gè)延時(shí)。在一個(gè)或多個(gè)基元之前的持續(xù)時(shí)間和 /或在一個(gè)或多個(gè)基元之后的延時(shí)可實(shí)現(xiàn)該一個(gè)或多個(gè)協(xié)議的定時(shí)參數(shù)。對(duì)于一個(gè)或多個(gè)命令操作的集合,還可將命令操作分解為一個(gè)或多個(gè)信號(hào)接口定義。該信號(hào)接口定義可為每個(gè)基元和/或協(xié)議定義各管腳的狀態(tài)和/或用途?,F(xiàn)在參考圖3,示出了命令操作310分解到基元320-350的示例。命令操作310可以為例如頁(yè)面讀取命令操作,且基元可以包括“讀”基元(例如,CMD1) 320、“地址”基元(例如,ADDR) 330、“進(jìn)行”基元(例如,CMD2 ) 340以及“數(shù)據(jù)輸出”基元(例如,DOUT) 350。在另一個(gè)示例中,頁(yè)面寫入操作可以被分解為“寫”基元(例如,CMD3)、“地址”基元(例如,ADDR)、 “數(shù)據(jù)輸入”基元(例如,DIN)以及“進(jìn)行”基元(例如,CMD2)。該“讀”基元(例如,CMDl )、 “進(jìn)行”基元(例如,CMD2)和“寫”基元(例如,CMD3)是命令周期基元的示例。該“地址”基元(例如,ADDR)是地址周期基元的示例。該“數(shù)據(jù)輸入”基元(例如,DIN)和“數(shù)據(jù)輸出”基元(例如,DOUT)是數(shù)據(jù)周期基元的示例。通過(guò)將存儲(chǔ)器協(xié)議分解為基元,可以通過(guò)將基元作為構(gòu)建塊鏈接到一起來(lái)構(gòu)造任意的復(fù)雜序列。在130,可任選地確定基元的一個(gè)或多個(gè)序列,該基元的一個(gè)或多個(gè)序列用于指定一個(gè)或多個(gè)命令操作的至少一部分。在一個(gè)實(shí)施方案中,可以為基元的一個(gè)或多個(gè)通用序列的每一個(gè)指定宏。該用于給定的序列的宏可以由一個(gè)或多個(gè)基元、一個(gè)或多個(gè)持續(xù)時(shí)間和/或一個(gè)或多個(gè)延時(shí)產(chǎn)生。在一實(shí)現(xiàn)方案中,持續(xù)時(shí)間和延時(shí)可通過(guò)“忙碌 (busy)”和/或“輪詢(poll)”的概念實(shí)現(xiàn)。忙碌和/或輪詢概念被用來(lái)實(shí)現(xiàn)基元間的定時(shí)。但是,忙碌并未被置于總線上。表I示出了基元和宏的示范性集合。
權(quán)利要求
1.一種方法,包括為一個(gè)或多個(gè)存儲(chǔ)器設(shè)備確定一個(gè)或多個(gè)命令操作的每一個(gè)(110);將所述一個(gè)或多個(gè)命令操作的每一個(gè)分解為一個(gè)或多個(gè)包括一個(gè)或多個(gè)周期的基元 (120);以及將所述一個(gè)或多個(gè)基元存儲(chǔ)在存儲(chǔ)器控制器的命令翻譯數(shù)據(jù)結(jié)構(gòu)中(140)。
2.根據(jù)權(quán)利要求I的方法,其中所述一個(gè)或多個(gè)周期包括從包含命令周期、地址周期和數(shù)據(jù)周期的組中選擇的一個(gè)或多個(gè)。
3.根據(jù)權(quán)利要求I的方法,進(jìn)一步包括確定基元的一個(gè)或多個(gè)序列以指定一個(gè)或多個(gè)命令操作的至少一部分(130);以及在存儲(chǔ)器控制器中將基元的所述一個(gè)或多個(gè)序列存儲(chǔ)在所述命令翻譯數(shù)據(jù)結(jié)構(gòu)中 (140)。
4.根據(jù)權(quán)利要求I的方法,進(jìn)一步包括確定基元的一個(gè)或多個(gè)序列以指定一個(gè)或多個(gè)命令操作的至少一部分(130);以及在存儲(chǔ)器控制器中對(duì)排序器的固件進(jìn)行編程以選擇性執(zhí)行基元的所述一個(gè)或多個(gè)序列的每一個(gè)。
5.根據(jù)權(quán)利要求I的方法,其中對(duì)于與所述一個(gè)或多個(gè)命令操作的一個(gè)或多個(gè)集合相對(duì)應(yīng)的一個(gè)或多個(gè)協(xié)議的每一個(gè),所述命令翻譯數(shù)據(jù)結(jié)構(gòu)包括用于一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的針對(duì)所述基元中的一個(gè)或多個(gè)的一個(gè)或多個(gè)持續(xù)時(shí)間。
6.根據(jù)權(quán)利要求I的方法,其中對(duì)于與所述命令操作的一個(gè)或多個(gè)集合相對(duì)應(yīng)的一個(gè)或多個(gè)協(xié)議的每一個(gè),所述命令翻譯數(shù)據(jù)結(jié)構(gòu)包括用于一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的在所述基元中的一個(gè)或多個(gè)之后的一個(gè)或多個(gè)延時(shí)。
7.根據(jù)權(quán)利要求I的方法,其中對(duì)于一個(gè)或多個(gè)命令操作集合,所述命令翻譯數(shù)據(jù)結(jié)構(gòu)包括用于一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的一個(gè)或多個(gè)信號(hào)接口定義。
8.根據(jù)權(quán)利要求I的方法,其中所述一個(gè)或多個(gè)存儲(chǔ)器設(shè)備包括至少兩個(gè)不同的閃存設(shè)備。
9.一種方法,包括采用由被確定用于一個(gè)或多個(gè)存儲(chǔ)器設(shè)備的一個(gè)或多個(gè)命令操作分解得到的一個(gè)或多個(gè)基元來(lái)對(duì)存儲(chǔ)器控制器的命令翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行編程(510);由所述存儲(chǔ)器控制器從處理單元接收命令操作(520);由所述存儲(chǔ)器控制器使用所述命令翻譯數(shù)據(jù)結(jié)構(gòu),將每一個(gè)命令操作翻譯為一個(gè)或多個(gè)相應(yīng)基元的集合(530);以及將所述一個(gè)或者多個(gè)相應(yīng)基元的集合從所述存儲(chǔ)器控制器輸出給給定的存儲(chǔ)器設(shè)備 (540)。
10.根據(jù)權(quán)利要求9的方法,其中在所述存儲(chǔ)器控制器的設(shè)定過(guò)程中對(duì)所述命令翻譯數(shù)據(jù)結(jié)構(gòu)進(jìn)行編程。
11.根據(jù)權(quán)利要求9的方法,其中將給定的命令操作的一部分翻譯為一個(gè)或多個(gè)基元的相應(yīng)序列。
12.根據(jù)權(quán)利要求9的方法,其中給定的命令操作到一個(gè)或多個(gè)相應(yīng)基元的翻譯包括給定的基元的持續(xù)時(shí)間。
13.根據(jù)權(quán)利要求9的方法,其中給定的命令操作到一個(gè)或多個(gè)相應(yīng)基元的翻譯包括在給定的基兀之后的延時(shí)。
14.根據(jù)權(quán)利要求9的方法,其中給定的命令操作到一個(gè)或多個(gè)相應(yīng)基元的翻譯包括一個(gè)或多個(gè)信號(hào)接口定義。
15.根據(jù)權(quán)利要求9的方法,其中所述一個(gè)或多個(gè)基元包括從包含命令周期、地址周期和數(shù)據(jù)周期的組中選擇的一個(gè)或多個(gè)。
16.—種存儲(chǔ)器控制器,包括將命令操作映射為基元的命令翻譯數(shù)據(jù)結(jié)構(gòu)(430),其中所述基元由被確定用于一個(gè)或者多個(gè)存儲(chǔ)器設(shè)備的命令操作分解得到;前端(420),從處理單元接收命令操作,并且使用所述命令翻譯數(shù)據(jù)結(jié)構(gòu)將每一個(gè)接收到的命令操作翻譯為一個(gè)或多個(gè)相應(yīng)基元的集合;以及后端(440),針對(duì)每一個(gè)接收到的命令操作將所述一個(gè)或多個(gè)相應(yīng)基元的集合輸出到給定的存儲(chǔ)器設(shè)備。
17.根據(jù)權(quán)利要求16的存儲(chǔ)器控制器,其中所述命令翻譯數(shù)據(jù)結(jié)構(gòu)(430)將命令操作映射為基元、一個(gè)或多個(gè)基元的持續(xù)時(shí)間以及在一個(gè)或多個(gè)基元之后的延時(shí);所述前端(420)使用所述命令翻譯數(shù)據(jù)結(jié)構(gòu),將每一個(gè)接收到的命令操作翻譯為一個(gè)或多個(gè)相應(yīng)基元以及相應(yīng)持續(xù)時(shí)間和相應(yīng)延時(shí)中的一個(gè)或多個(gè)的集合;以及后端(440)針對(duì)每一個(gè)接收到的命令操作,輸出所述一個(gè)或多個(gè)相應(yīng)基元以及所述相應(yīng)持續(xù)時(shí)間和所述相應(yīng)延時(shí)中的一個(gè)或多個(gè)的集合。
18.根據(jù)權(quán)利要求16的存儲(chǔ)器控制器,其中所述命令翻譯數(shù)據(jù)結(jié)構(gòu)(430)將一個(gè)或多個(gè)命令操作的至少一部分映射為基元的序列、所述基元中的一個(gè)或多個(gè)的持續(xù)時(shí)間以及在所述基元中的一個(gè)或多個(gè)之后的延時(shí);前端(420)將給定的接收到的命令操作的至少一部分翻譯為基元的給定的序列以及在所述給定的序列中所述基元中的一個(gè)或多個(gè)的所述持續(xù)時(shí)間和在所述基元中的一個(gè)或多個(gè)之后的所述延時(shí);以及后端(440)針對(duì)所述給定的接收到的命令操作,輸出基元的所述給定的序列以及在所述給定的序列中所述基元中的一個(gè)或多個(gè)的所述持續(xù)時(shí)間以及在所述基元中的一個(gè)或多個(gè)之后的所述延時(shí)。
19.根據(jù)權(quán)利要求16的存儲(chǔ)器控制器,其中所述一個(gè)或多個(gè)存儲(chǔ)器設(shè)備包括至少兩個(gè)不同的閃存設(shè)備。
20.根據(jù)權(quán)利要求16的存儲(chǔ)器控制器,其中所述基元包括從包含命令周期、地址周期和數(shù)據(jù)周期的組中選擇的一個(gè)或多個(gè)。
全文摘要
本發(fā)明一個(gè)實(shí)施例中的存儲(chǔ)器控制器包括命令翻譯數(shù)據(jù)結(jié)構(gòu)430、前端420和后端440。該命令翻譯數(shù)據(jù)結(jié)構(gòu)430將命令操作映射為基元,其中所述基元由為一個(gè)或多個(gè)存儲(chǔ)器設(shè)備所確定的命令操作分解得到。前端420從處理單元接收命令操作并使用所述命令翻譯數(shù)據(jù)結(jié)構(gòu)將每一個(gè)命令操作翻譯為一個(gè)或多個(gè)相應(yīng)基元的集合。后端440針對(duì)每一個(gè)接收到的命令操作將一個(gè)或多個(gè)相應(yīng)基元的集合輸出到給定的存儲(chǔ)器設(shè)備。
文檔編號(hào)G06F12/02GK102591783SQ201110342779
公開(kāi)日2012年7月18日 申請(qǐng)日期2011年11月3日 優(yōu)先權(quán)日2010年11月3日
發(fā)明者尼爾·邁寧格, 德米特里·維舍茨基, 霍華德·采 申請(qǐng)人:輝達(dá)公司