環形總線結構及其在快閃記憶體系統中的使用的製作方法
2023-07-31 13:13:26 1
專利名稱:環形總線結構及其在快閃記憶體系統中的使用的製作方法
技術領域:
本發明大體上涉及總線結構及其在電子系統中在所述系統的組件之間進行通信的操作,且更具體來說涉及尤其在快閃記憶體系統中用以完成此操作的環形總線的使用。
背景技術:
如今正使用許多商業上成功的尤其是以較小形狀因數卡形式的可再編程非易失性存儲器產品,其採用形成於一個或一個以上集成電路晶片上的快閃EEPROM(電可擦可編程只讀存儲器)單元陣列。通常存在但不一定處於單獨集成電路晶片上的存儲器控制器與主機(卡可去除地與其連接)介接,且控制卡內存儲器陣列的操作。這種控制器通常包括微處理器、某些非易失性只讀存儲器(ROM)、易失性隨機存取存儲器(RAM)和一個或一個以上特定電路,所述特定電路例如為當數據在編程和讀取期間通過控制器時根據所述數據計算錯誤校正碼(ECC)的電路。
一些利用快閃記憶體的市售卡為CompactFlashTM(CF)卡、多媒體卡(MMC)、安全數字(SD)卡、迷你SD卡、智能媒體卡、xD圖片卡、TransFlash卡和記憶棒卡。主機包括個人計算機、筆記本計算機、個人數字助理(PDA)、各種數據通信裝置、數位相機、蜂窩式電話、可攜式音頻播放器、汽車音響系統和類似類型的設備。許多主機具有一個或一個以上插槽以接收商業存儲卡類型中的一個或一個以上卡,且/或可通過通用串行總線(USB)插座或類似物連接到讀卡器。USB快閃驅動器也是可用的,其直接插入主機的USB插座以將主機連接到驅動器內的存儲器。除了存儲卡和快閃驅動器實施方案之外,或可將快閃記憶體系統嵌入各種類型的主機系統至。這些和額外的快閃記憶體產品可從本專利申請案的受讓人SanDisk Corporation購得。
商業上主要實施兩種普通的存儲器單元陣列結構,NOR和NAND。在典型的NOR陣列中,存儲器單元連接於在列方向上延伸的相鄰的位線源極與漏極擴散區之間,其中控制柵極連接到沿著單元的行延伸的字線。存儲器單元包括定位在源極與漏極之間的單元溝道區的至少一部分上方的至少一個存儲元件。因此所述存儲元件上的電荷的編程電平控制單元的工作特性,其隨後可通過向經定址的存儲器單元施加適當電壓來讀取。在第5,070,032、5,095,344、5,313,421、5,315,541、5,343,063、5,661,053和6,222,762號美國專利中給出這些單元、其在存儲器系統中的使用及其製造方法的實例。
NAND陣列利用與各位線與參考電位之間的一個或一個以上選擇電晶體共同連接的兩個以上存儲器單元(例如16或32)的串聯串來形成單元的列。字線延伸越過大量的這些列中的單元。列內的各單元是通過促使串中剩餘單元硬體接通以使得流過串的電流取決於定址單元中存儲的電荷的電平,而在編程期間讀取和驗證的。在第5,570,315、5,774,397、6,046,935、6,522,580號美國專利和第2003/014278號美國專利申請案公開案中可找到NAND架構陣列及其作為存儲器系統的一部分的操作的實例。
如上文引用的專利中討論的當前快閃EEPROM陣列的電荷存儲元件是最常見的導電浮動柵極。可用於快閃EEPROM系統的替代類型的存儲器單元利用非導電介電材料代替導電浮動柵極來以非易失性方式存儲電荷。Harari等人在第2003/0109093號美國專利申請案公開案中描述了採用介電存儲元件的若干特定單元結構和陣列。
在大多數全部集成電路應用中,關於快閃記憶體單元陣列還存在將實施某種集成電路功能所需的矽襯底區域縮小的壓力。不斷地期望增加在矽襯底的給定區域中可存儲的數字數據的量,以便增加給定大小的存儲卡和其它類型封裝的存儲容量,或既增加容量又減小大小。增加數據存儲密度的一種方式是每個存儲器單元和/或每個存儲單位或元件存儲一位以上的數據。這是通過將存儲元件電荷電平電壓範圍的窗劃分為兩個以上狀態來實現的。使用四個這種狀態允許每一單元存儲兩位數據,八個狀態每存儲元件存儲三位數據,依此類推。在第5,043,940和5,172,338號美國專利中描述使用浮動柵極的多狀態快閃EEPROM結構及其操作,且在前述第2003/0109093號美國專利申請案公開案中描述使用介電浮動柵極的結構。多狀態存儲器單元陣列的選定部分也可以第5,930,167和6,456,528號美國專利中描述的方式出於各種原因而以兩種狀態(二進位)操作。
在再編程之前擦除快閃記憶體單元。將典型快閃記憶體單元陣列的存儲器單元劃分為共同擦除的離散單元塊。也就是說,塊是擦除單位,即同時可擦除的最少數目的單元。每一塊通常存儲一頁或一頁以上數據,頁是編程和讀取的最小單位,儘管在存儲器單元的不同子陣列或平面中可並行編程或讀取一個以上頁。每一頁通常存儲一個或一個以上數據扇區,扇區的大小由主機系統界定。實例扇區包括512位元組的用戶數據(遵循用磁碟驅動器確立的標準),加上某一數目的字節的關於用戶數據和/或存儲用戶數據的塊的開銷信息。這些存儲器通常在每一塊內配置有16、32或更多頁,且每一頁存儲一個或一個以上主機數據扇區。
為了增加將用戶數據編程到存儲器陣列中與從其中讀取用戶數據的並行度,通常將陣列劃分成若干子陣列(通常稱為平面),其含有其自身的數據寄存器和其它電路以允許並行操作,使得可同時地將數據扇區編程到若干或所有平面中的每一者或從所述每一者中讀取數據扇區。可將單個集成電路上的陣列在物理上劃分成若干平面,或每一平面可由分離的一個或一個以上集成電路晶片形成。第5,798,968和5,890,192號美國專利中描述了這種存儲器實施方案的實例。
為了進一步有效管理存儲器,可將塊連結在一起而形成虛擬塊或元塊(metablock)。也就是說,將每一元塊定義成包括來自若干或所有平面中每一者的一個塊。第2002/0099904號美國專利申請案公開案中描述了元塊的使用。由主機邏輯塊地址將元塊識別為編程和讀取數據的目的地。類似地,通常一起擦除元塊的所有塊。
以這些大的塊和/或元塊進行操作的存儲器系統中的控制器執行由主機對其施加的且用於維持有效操作的許多功能。執行重複的數據合併(「垃圾收集」)以便有效利用存儲器的存儲容量。控制器在執行垃圾收集時通常中止其將數據轉入和轉出存儲器的主要功能,因此潛在不利地影響系統性能。第6,266,273號美國專利中揭示了存儲器陣列晶片本身上數據的某種受限的複製。
典型的快閃記憶體系統包括各含有存儲器單元陣列及相關外圍電路的一個或一個以上集成電路晶片,和含有控制器的另一集成電路晶片。對於某些應用,控制器和存儲器陣列包括在單個晶片上。在任一情況下,經由所有存儲器系統組件可操作地與其連接的共用雙向系統總線,在控制器與一個或一個以上快閃記憶體單元陣列、子陣列、平面或集成電路晶片之間傳送數據、地址、命令和狀態信息。
發明內容
快閃記憶體系統的操作速度受這種總線的使用的限制。由於單個總線太長,因此系統操作頻率受往返行程延遲和總線中固有的大電容性負載的限制。在總線上可能僅在控制器與快閃記憶體晶片中的一者之間存在通信。當總線忙於在系統的某些位置之間傳輸一個單位的數據時,系統中沒有其它組件可使用總線進行數據轉移。數據通常不是在存儲器單元的獨立單位之間(即,獨立陣列、子陣列、平面或晶片之間)直接轉移。而是,這些數據轉移通常包括通過共用總線將數據傳遞到控制器以便臨時存儲在緩衝存儲器中作為轉移的一部分。
因此,在本文描述的對常規總線的改進中,存儲器系統的控制器和所有的存儲器單元陣列、子陣列、平面和集成電路晶片通過各自的總線接口電路(節點)而彼此連接成迴路或環。環狀總線在節點之間的段是被單獨驅動的,從而顯著減少了每一驅動段的電容量,且因此增加了可允許的總線操作頻率。數據可在存儲器單元陣列、子陣列、平面與晶片之間以及在其中任一者與控制器之間直接傳送。但被傳送的數據不需要一定首先通過控制器。總線優選形成閉合迴路,且數據、命令和狀態信息圍繞所述迴路在單個方向上轉移。數據優選完全圍繞環轉移到其發起的節點,在該點處可視需要檢查數據在轉移之後的有效性。本文描述的環狀總線可代替在例如上文背景技術中描述的現有存儲器系統中使用的常規總線。
在優選實施方案中,單個主節點(通常為系統控制器的節點)控制通過環狀總線連接的所有其它節點的操作。由控制器發出的特定命令通過附加的節點地址被定址到一個或一個以上節點,所述節點地址促使命令僅受經定址節點的作用。例如初始化和配置命令的全局命令由所有節點接受。在數據圍繞總線在節點之間轉移之前,節點經設置以適應特定轉移。舉例來說,如果數據將從一個存儲器單位(例如晶片、子陣列或平面)轉移到另一個存儲器單位,那麼數據從源單位被讀取到連接到其節點的寄存器,且目的地節點經配置以接收數據。接著後續的轉移命令促使計劃中的轉移在已由命令調節的源節點與目的地節點之間進行。此系統和操作的優點是實現這些在存儲器單位之間以及在存儲器單位與控制器節點之間直接轉移數據的能力。
可包括在環狀總線操作中的另一特徵是時分多路復用。也就是說,數據在分配的時槽或幀中圍繞總線轉移。因此可同時轉移多個數據幀。所採用的時槽的數目優選被動態調節為等於同時轉移的數據幀的數目。數據幀不需要都具有圍繞環的相同的源節點或目的地節點。然後與總線節點連接的存儲器系統組件的數據帶寬要求不需要與總線一樣高,因為數據是以其個別幀速率轉移到特定組件或從特定組件轉移,所述個別幀速率是環狀總線的數據傳輸速率的分數。在特定實例中,圍繞總線傳輸用於設置節點以便進行數據轉移的命令,其中沒有時分多路復用但附有期望節點的地址。接著通過使用多個時槽而進行計劃中的數據轉移。狀態信息也可通過使用時槽之一而圍繞總線傳送。
作為其它特徵,通過使從存儲器讀取的數據通過通常由控制器提供的錯誤校正功能可容易地檢查所述數據的完整性,最方便的是通過專用於執行錯誤校正碼(ECC)的電路進行檢查。如果如優選那樣完全圍繞環轉移數據,那麼數據將總是通過控制器節點,無論源節點和目的地節點相對於控制器的節點位於何處。發起數據轉移的節點視需要還可驗證在與所述節點放置在總線上的數據一起圍繞總線行進之後接收到的數據,以便確保數據不會被傳輸破壞。
作為另一特徵,控制器的各種功能和組件也可通過節點個別地連接到系統環狀總線,其中包括處理器、緩衝存儲器和ECC電路。因此進一步增加了節點對節點的命令和數據轉移的靈活性和並行度。也可包括常規控制器總線以便當未涉及存儲器系統的其它組件時為了其有效操作而在控制器組件之間直接轉移命令和數據。
為了向現有的常規控制器提供向後兼容性,存儲器單元陣列集成電路晶片可具有用於與常規總線連接的接口,當使用適合於使用環狀總線的控制器時上述環狀總線也可通過所述接口而連接。這種雙模式總線接口允許快閃記憶體晶片用於具有任一類型控制器的存儲器系統。
在集成電路存儲器晶片的一個實施方案中,一個或一個以上存儲器數據節點串聯連接在外部輸入與輸出總線接點之間。一個或一個以上存儲器晶片接著通過將其總線接點連接在一起以將其連接成閉合迴路而與控制器晶片串聯連接。多個存儲器晶片與連接到存儲器晶片中另一晶片的總線輸入的一個晶片的總線輸出連接。為了能通過使用單個印刷電路板(PCB)方便地製造具有不同數目存儲器晶片的存儲卡,個別存儲器晶片可具備兩組總線輸出墊,一個用於與串聯存儲器晶片中的下一個晶片連接,且另一個用於連接到返回控制器晶片的總線路徑。附接到PCB的每一存儲器晶片的總線返回輸出墊接著連接到PCB上單獨一組導體,所述組導體提供到控制器的返回總線路徑以用於從一到某個最大數目中任一數目的存儲器晶片。返回總線輸出墊接著在存儲器晶片串聯中的最末晶片中被啟用以與PCB上的返迴路徑導體可操作地連接,而所有其它存儲器晶片的返回總線輸出墊被禁用。確切地說,其它存儲器晶片使其輸出與存儲器晶片中另一者的總線輸入連接,以形成存儲器晶片的串聯連接和環狀總線。
本發明的額外方面、優點和特徵包括在以下本發明的示範性實例的描述中,將結合附圖進行描述。本發明的各種方面可在多種類型的需要高頻率總線來在其組件之間轉移數據的存儲器系統中實施,本文描述僅在一種類型的快閃記憶體系統中的實施方案以說明本發明。另外,本發明的許多方面和特徵可與其它類型的利用內部總線的電子系統中的類似優點一起實施。
本文引用的所有專利、專利申請案、文章和其它類型的公開案通用地以全文引用的方式併入本文。
圖1是利用常規總線架構的典型現有快閃記憶體系統的方框示意圖;圖2是利用環狀總線架構的快閃記憶體系統的第一實施例的方框示意圖;圖3A、3B和3C是說明圖2系統的環狀總線的時分多路復用操作的不同方面的時序圖;圖4是圖2系統的環狀總線數據接口塊的電路示意圖;
圖5是圖2系統的環狀總線命令接口塊的電路示意圖;圖6A-6I展示八種不同的命令和一個替代方案,以及說明其在圖2的環狀總線系統中的使用;圖7是說明通過使用圖6A-6I的命令對圖2的環狀總線系統進行操作的流程圖;圖8說明圖2系統中特定數據轉移的實例;圖9列出用以實行圖8中說明的示範性數據轉移的在圖6A-6I中識別的命令的序列;圖10是利用環狀總線結構的快閃記憶體系統的第二實施例的方框示意圖;圖11是利用環狀總線結構的快閃記憶體系統的第三實施例的方框示意圖;圖12是利用環狀總線結構的快閃記憶體系統的第四實施例的方框示意圖;圖13是利用環狀總線結構的快閃記憶體系統的第五實施例的方框示意圖;圖14是利用環狀總線結構的快閃記憶體系統的第六實施例的方框示意圖;和圖15是利用環狀總線結構的快閃記憶體系統的第七實施例的方框示意圖。
具體實施例方式
常規總線系統的背景描述參看圖1,說明具有常規總線的典型快閃記憶體系統以提供本發明的各種方面與特徵的後續描述的背景。系統控制器通常實施在單個集成電路晶片11上,集成電路晶片11經由系統總線13與一個或一個以上集成電路存儲器晶片(圖1展示單個的這種存儲器晶片15)並聯連接。所說明的特定總線13包括載運數據的單獨的一組導體17、用於存儲器地址的一組導體19和用於控制和狀態信號的一組導體21。或者,可在這三種功能之間時間共享單個一組導體。
典型的控制器晶片11具有其自身的內部常規總線23,其通過接口電路25與系統總線13介接。通常連接到總線的主要功能是處理器27(例如微處理器或微控制器)、含有用於初始化(「引導」)系統的代碼的只讀存儲器(ROM)29、主要用於緩衝在存儲器與主機之間轉移的數據的只讀存儲器(RAM)31、和針對通過存儲器與主機之間的控制器的數據來計算和檢查錯誤校正碼(ECC)的電路33。控制器總線23通過電路35與主機系統介接,這在圖1的系統包含在存儲卡中的情況下是通過卡的外部接點37而完成的。時鐘39與控制器11的其它組件中的每一者連接且由其利用。
存儲器晶片15以及與系統總線13連接的任何其它元件通常含有組織成多個子陣列或平面的存儲器單元陣列,出於簡明目的而說明兩個這種平面41和43,但四個或八個這種平面是更典型的。或者,存儲器晶片15可包括未被劃分成平面的存儲器單元陣列。然而當如此劃分時,每一平面均具有其自身的彼此獨立操作的列控制電路45和47。電路45和47從系統總線13的地址部分19接收其各自存儲器單元陣列的地址,並對其進行解碼以對各自位線49和51中的特定一者或一者以上進行定址。平面41和43具有共用字線53,其響應於在地址總線19上接收到的地址通過行控制電路55進行定址。存儲器單元陣列41和43的NAND結構是當前優選的。如同p阱電壓控制電路61和63,源極電壓控制電路57和59也與各自平面連接。
數據通過與系統總線13的數據部分17連接的自各數據輸入/輸出電路65和67而轉移入和轉移出平面41和43。電路65和67通過經由各自列控制電路45和47連接到平面的線69和71來實現將數據編程到其各自平面的存儲器單元中和從其各自平面的存儲器單元中讀取數據。
儘管控制器11控制存儲器晶片15編程數據、讀取數據、擦除和照管各種內務事務的操作,但每一存儲器晶片還含有執行來自控制器11的命令以執行所述功能的某種控制電路。接口電路73連接到系統總線13的控制與狀態部分21。將來自控制器的命令提供到狀態機75,狀態機75接著提供其它電路的特定控制以便執行這些命令。控制線77-81將狀態機75與圖1所示的這些其它電路連接。將來自狀態機75的狀態信息經由線83傳送到接口73,以便經由總線部分21傳輸到控制器11。
從圖1的存儲器系統可見,控制器晶片11與存儲器晶片15的各個部分之間的通信取決於控制器和存儲器晶片並聯連接到的單個系統總線13上的通信的限制。
示範性環狀總線實施例的詳細描述圖2-9中說明使用環狀總線代替上述常規總線15的存儲器系統的第一實施例。最初參看圖2,控制器集成電路晶片101和單個存儲器晶片103形成存儲器系統,但也可包括額外的存儲器晶片。存儲器晶片103說明為具有四個存儲器單元平面105-108,但作為替代,使可用更少、甚至一個或四個以上存儲器平面。列控制電路110-113連接到各自的平面105到108。通過選擇兩個數據寄存器A或B中的一者的各自的多路復用電路115-118,將數據編程到存儲器平面105-108中和從其中讀取數據。在數據編程期間,特定平面的由其多路復用器選擇的寄存器A或B中的一者中所存儲的數據被編程到所述平面中。類似地,在數據讀取期間,從平面讀取的數據被寫入到由其多路復用器選擇的寄存器A或B中的一者中。使用這兩個寄存器是不需要的,可替代使用單個寄存器,但其增加了存儲器系統的操作中的靈活和並行程度。命令與控制電路121提供類似於圖1系統的狀態機75和控制電路中各種控制電路的功能。
在圖2的實例中,存儲器陣列平面105-108中的每一者通過環狀總線接口節點123-126中的各自一者來傳送從平面中讀取的或將編程到平面中的數據。每一平面的數據寄存器A和B中的兩者與用於所述平面的節點連接。來自控制器101的命令由環狀總線接口節點127接收,且狀態信號通過同一節點被發送回控制器。節點127與存儲器集成電路晶片103的控制電路121連接。如果額外的存儲器晶片包括在系統中(圖2中未圖示),那麼在此特定實例中每一者將具有其自身的命令接口節點。
類似地,控制器晶片101包括與控制器130連接的環狀總線節點128。圖2的控制器130可類似於圖1的控制器11,不同之處在於節點接口128(圖2)代替了存儲器接口25。
節點123-128在迴路中連接在一起以便在其之間轉移數據、地址、命令和狀態信息。所述迴路由具有載運數據的一條線133和載運來自控制器130的命令的另一條線135的環狀總線形成。或者,在環狀總線中可使用兩條或兩條以上數據線和/或可包括兩條或兩條以上命令線,以便增加信息轉移帶寬,但這樣做的代價是更複雜的總線節點電路和操作。另一條線137可包括在總線中以將時鐘信號載運到節點。或者,如果針對數據線133上和命令線135上的信息採用自定時格式,那麼可省略時鐘線。
操作圖2的系統以管線方式在環狀總線上轉移數據和命令,其中在每一節點處優選引入一個或僅數個時鐘周期的延遲。數據線133、命令線135和時鐘線137跟隨集成電路晶片101和103上以及在其之間的同樣的路徑,且在每一節點中引入相同的延遲以在所述三條線中發信號。僅沿著總線在相鄰節點之間的段點對點地轉移信息,而不是如常規總線那樣在整個總線上轉移信息,從而使環狀總線的極高頻率的操作成為可能。總線上的信號可完全為數字的,其中其幅值由可用電源電壓設定。然而,可通過替代利用適當的高速信令技術,例如低壓擺幅信令(swing signaling)、全差分信令、偽差分信令、雙數據率或電流型驅動器的使用,來實現較高的操作頻率和降低的功率耗散。
優選的是命令僅在控制器節點128中發起,這使其成為環狀總線上的單個主體。命令代碼在命令線135上從控制器節點128傳送,以供其它節點123-127中的一個或一個以上節點執行。當僅單個節點作為用於執行命令的目標時,在數據線133上同時傳輸節點的相應的識別代碼。目標節點隨後為接受待執行的命令的唯一節點。
在數據線133上轉移的數據可在節點123-128(源節點)中的任一者中發起,且被引導到其它節點(目的地節點)中的任何一個或一個以上節點。在這種數據轉移之前,源節點和目的地節點經配置以用於此數據轉移。接著圍繞環狀總線發生數據轉移。轉移的數據優選圍繞整個環狀總線行進並返回發起節點。這確保轉移的數據可由經配置以進行讀取的其它節點中的任一者讀取,所述其它節點例如為通過使用ECC來檢查數據有效性的節點。這還使得發起節點可例如通過與初始傳輸的數據進行比較或使用冗餘奇偶位來檢查所接收的數據是否在圍繞環狀總線傳輸期間發生錯誤。
在大多數情況下優選的圖2的系統的一個特定操作中,利用時分多路復用以幀或時槽在數據線133上圍繞環狀總線傳輸數據。這允許圍繞環狀總線並行轉移兩個或兩個以上不同通道的數據,例如不同的數據扇區,其可能具有不同的源節點和/或目的地節點。用於每次數據轉移的時槽的數目經選擇以適應將發生的並行數據轉移的數目。這充分利用環狀總線的帶寬,同時允許各自節點的某些功能以較少的帶寬操作,以及存儲器數據編程和寫入電路與各自的節點連接。
參看圖3A的時序圖,說明三個通道0-2並行的時間多路復用數據傳輸。單個周期「pip」作為標記在命令線135上傳輸,以指示隨後在數據線133上開始的幀含有有效數據。pip最經常由節點中的任一者插入到命令線135上,所述節點中的任一者是在與pip相同的時鐘周期期間開始被插入到數據線133上的時間幀中的數據的源。環狀總線的數據線133和命令線135因此應以類似方式路由且同步操作。用下文描述的未利用pip進行控制的方式來控制數據時槽的時序和界定。
圖3A的實例中的數據幀A、B和C分別在通道0、1和2中傳輸。通道1在兩個周期內未載運有效數據,在這時間之後初始的數據幀B變為可用於在環狀總線上轉移。一個通道的數據可以此方式在存儲器幀節點123-127中的任何節點之間轉移,從而在存儲器晶片103內的平面之間轉移數據而不必通過控制器130;或者當在存儲器與主機系統之間轉移數據時,在所述節點123-127中的一個或一個以上節點與控制器節點128之間轉移。
通過圖3B和圖3C的時序圖在概念上說明用於圍繞具有D個節點的環狀總線轉移數據的時分多路復用的兩個特定實施方案。每一時間幀的持續時間(長度)為A個時鐘周期。儘管下文描述的特定實例的數據總線時槽為四個時鐘周期,但數目A可少至一個和高達8個、16個、32個或更多。將由數據通過節點引起的數據延遲指示為B個時鐘周期。參數A和B中的每一者通常將被設計到存儲器系統中,因此在系統操作期間將不可改變。使用C個時槽。
在圖3B中說明的環狀總線操作中,使通道(時槽)的數目C等於總線上節點的數目D。還使幀長度A等於節點之間的總線延遲B,二者均以時鐘周期數來測量。每一節點通常通過具有B個存儲寄存器級來存儲通過所述節點的等於延遲B的若干位。這些參數的使用允許將數據同步轉移到總線上的每一數據節點。對於所有時槽中的每一數據位位置,在總線周圍存在一個存儲寄存器。這促使C個分配的數據時槽連續循環通過每一節點。因而存在可用於典型數據轉移操作的最大數目的通道。實際上,由於包括一通道以用於通常將不接收或傳輸數據的每一控制節點,因此導致一個或一個以上額外的通道。這些通道可用於將狀態信息發送回控制器。一個通道通常用於為系統中的每一存儲器晶片發送狀態信息。
然而,儘管便於用圖3B所示的方式來實施時分多路復用,但此最大數目的數據通道很少是必需的。因此優選使用任何特定數據轉移操作所需的儘可能少的時槽C,以便最多地利用數據總線帶寬。圖3C的時序圖說明具有動態選定數目C個通道的總線的操作,可使其成為給定數據轉移所必需的通道,但不需要含有在如圖3B所示操作時可發生的許多空時槽。
在圖3C中,說明使用比總線上節點數目D更少的通道數目C的情況。在此實例中,在同時具有相同通道身份的至少兩個時槽中圍繞環狀總線計算來自節點的連續數據幀。舉例來說,如果在總線上存在D=12個節點且多路復用已動態指定同時轉移C=6個數據通道,那麼每一通道圍繞總線出現兩次。這是相對直接的,因為D/C是整數,在此實例中,所述整數等於2。但圖3C中展示更經常的D/C不是整數的情況。在這種情況下,插入一個或一個以上未使用的時槽,其中未使用的時槽被稱為「空槽(nul slot)」。插入許多空槽以使得節點數目D減去空槽數目再除以時槽數目C為整數。也就是說,使(D-[空槽])/C等於整數。
圖3C中指定在數據總線上轉移的所有C個數據幀(時槽)的序列以形成一個「周期」。促使全部N個周期重複以便形成圍繞總線的一組時槽,所述時槽在此實例中少於總線上數據通過的節點的數目D。為了使時槽的序列等於節點數目D,在實際中添加一空槽以將該群組延長為N個周期加上空槽。在圖3C的實例中,N=D-1,且通過將空槽插入所示處來完成此少1的補償。在例如N=D-2的另一情況下,插入兩個空槽。這使得每次圍繞總線完全移動所述群組的數據所必需的時鐘周期的總數目等於圍繞環的一位存儲位置的總數目。針對給定的數據轉移操作來選擇數量N和C,以使圍繞環循環的未使用空槽的數目最小化,因為其使用在一定程度上減小了總線的數據轉移帶寬。在必要時空槽不具有與其相關聯的數據通道,且其圍繞環在節點之間連續循環。具有「無關(don’t care)」值的空數據在空槽中在節點間傳遞。
圖4展示用於圖2的數據節點123-126中每一者的示範性電路實施方案。環狀總線的數據線133上的數據位的信號由寄存器級151接收,並串行移位通過連續的寄存器152、154和156。說明四個寄存器級以匹配四個時鐘周期的時槽長度A。最末級156的輸出與第一級151的輸出均作為輸入連接到切換電路153。這允許電路153以一個或四個周期的延遲進行操作。切換電路153的輸出通過驅動器155連接回到數據線133。當切換電路153使其來自寄存器156的輸入連接到其輸出驅動器155時(最常見的配置),由數據節點的寄存器151接收的數據位在數據線133上被往後放置在四個時鐘周期之後,以便在環狀總線的另一段上傳輸到下一數據節點。類似地,當切換電路153使其來自寄存器151的輸入連接到其輸出驅動器155時,延遲是一個時鐘周期。在由節點從其寄存器A或B中的一者中將數據放置在數據線上的時槽期間,切換電路153將不會使這些數據總線輸入中的任一者連接到其輸出。
如果數據總線使用兩個或兩個以上並行的數據線而不是所說明的單個線,那麼針對每一條線提供單獨的寄存器級,且切換電路153一起切換所述寄存器級。舉例來說,如果數據總線含有四條線,那麼數據節點在每條線中包括單個寄存器級。在這種情況下,每一節點轉移一個時槽的四個位通過所述節點的總延遲為單個時鐘周期而不是四個周期。儘管這有利地增加了總線的帶寬,但系統的電路和操作更為複雜。
到數據節點的命令線135輸入類似地連接到另一串四個寄存器157、158、160和162。命令在命令線135上與數據線133上的數據同步地路由,即施加有相同的延遲。最末寄存器162的輸出連接到切換電路153,如同第一寄存器級158的輸出,類似於數據寄存器路徑。這些輸入中的任一者可通過切換電路153連接到驅動器159,以便將命令信息以一個或四個時鐘周期的延遲放置到環狀總線的下一段上。當節點需要將pip放置到命令線135上時,這些輸入中的任一者都不連接到驅動器159,節點將pip放置到命令線135上以指示有效數據在隨後發生的時槽中正被節點放置到數據總線133上。如果數據總線含有兩條或兩條以上線,那麼優選以類似方式建構命令總線,包括並行寄存器的使用,使得所述兩個總線同步操作。
時鐘信號線137與驅動器161直接連接,並提供用於數據和命令寄存器級的計時,以及用於數據節點的其餘電路的時鐘信號。
解碼器163在寄存器157的輸出處接收來自命令線135的控制器命令,且在寄存器151的輸出處接收數據線133上的相關數據。解碼器的功能是執行命令以配置其節點以在後續的數據傳輸中接收或傳輸數據。與在數據線133上供應的命令相關聯的數據可包括命令期望針對的節點識別號、將在上面傳輸或接收數據的通道號、將使用寄存器A還是B、進行轉移的數據的長度,和其它配置信息。
寄存器165含有在存儲器系統加電或其它初始化時存儲在其中的用於節點的唯一識別號。由系統控制器發出的全局初始化命令優選完成此舉。識別號在操作期間被用作來自控制器的期望用於節點的命令的地址。儘管環狀總線上的所有節點將接收一命令,但所述命令在總線上與命令所期望針對的節點的識別號一起傳輸。因此,僅用其識別號定址的節點將響應進行存儲並接著執行命令。
另一寄存器167含有特定節點在上面進行通信的經時間多路復用的數據總線的通道號。此通道號通常在每次在數據總線133上向節點傳輸數據或從節點傳輸數據之前被重寫作為節點的配置的一部分。在數據傳輸期間,所存儲的通道號用於識別分配通道來用於節點傳輸或接收數據時槽的發生。在當前轉移操作中將轉移的數據的長度存儲在另一寄存器168中,且將關於寄存器A或B中的哪一個正用於轉移的名稱存儲在寄存器170中。寄存器167、168和170的參數通過解碼器163由圍繞命令線135上的總線發送的命令而載入所述寄存器中,所述命令包括存儲在寄存器165中的節點識別號。
圖4的切換電路153通過各數據線169與171中的一者在數據總線線133與寄存器A和B(圖2中所示)中的一者之間建立連接。控制電路配置節點以在寄存器A和B中的一者與數據線133之間轉移數據。當從總線轉移數據以便存儲在節點的存儲器平面中時,電路153將由線182上經解碼的控制信號選擇的寄存器151或寄存器156的輸出處的來自總線線133的數據引導到由線177上控制信號選擇的寄存器A和B中的一者。然而,當在分配到節點的時槽期間在從寄存器A或B中的選定一者到數據總線線133的相反方向上轉移數據時,切換電路153將選定寄存器的輸出連接到驅動器155,同時斷開數據總線線133在寄存器151與驅動器155之間的段。在其它時間期間,切換電路153經連接以使數據通過節點而不會對數據進行任何動作,除了施加一個或四個時鐘周期的延遲。當節點沒有在其數據寄存器A或B中的一者與數據總線133之間轉移數據時,維持數據總線線133在寄存器151或寄存器156與驅動器155之間的通過連接。
切換電路153在適當時間完成這些連接的控制來自在控制線175-179和182上來自解碼器163以及在其它控制線180上來自通道計數器181的輸出的信號。計數器181由解碼器163用線183-186上的四個信號來控制。線183載運在關於節點的數據轉移操作的開始時重設計數器181的初始化信號。線185載運用於當前數據傳輸的通道的數目的數據,其由控制器傳送作為針對數據轉移而設置節點的一部分。環狀總線上節點的數目D也在線186上被供應到計數器181,且在電路184上傳送周期數目N(見圖3C)。計數器181計數到最高的通道號,且接著被重設到最低的通道號、被中止、再次開始計數,依此類推。當前計數,且因此當前的通道號在線180上被輸入到切換電路153。電路153將所述號碼與來自寄存器167的被分配給節點的、在控制線175上由解碼器提供的通道號進行比較。當這些號碼相同時,電路153切換節點以接收來自數據總線133的數據或將數據傳輸到數據總線133,直到轉移完成為止(由來自寄存器168的在控制線176上提供的數據傳輸長度所決定)。
線177上的控制信號規定是用節點的寄存器A還是寄存器B轉移數據。線178和179載運信號,所述信號切換電路153以(1)接收來自數據總線線133的數據,在這種情況下數據總線通過節點,且由控制線177識別的寄存器與其連接,(2)在分配給節點的時槽期間將來自經識別的寄存器的數據傳輸到總線線133上,在所述時槽期間總線線133不通過節點,或(3)使數據總線線133通過節點而不與寄存器A或B中的任一者連接。
關於圖4而描述的數據接口節點控制總線133與寄存器A和B之間的數據轉移。將來自存儲器單元陣列平面的數據讀取到寄存器A或B中以便轉移到總線133上,或將從總線133獲得的數據從寄存器A或B編程到存儲器單元陣列中,是通過命令環狀總線接口節點127(圖2)控制的。在圖5中給出命令節點電路的實例,其中作為圖4元件的對應部分的元件由相同的參考標號識別,但添加有符號(』)。一旦被線195中的來自解碼器197的控制信號啟用,那麼寄存器193就存儲從命令總線135接收到的命令數據。類似地,當被線201中的來自解碼器的信號啟用時,寄存器199存儲從數據總線133接收到的數據。寄存器199的主要用途是將地址存儲到正被存取以進行讀取或編程的存儲器單元陣列中。
寄存器193和199中的數據在各自線203和205上輸出,線203和205連同狀態信號線207一起通過信號路徑209與存儲器陣列控制電路121(圖2)連接。由線203載運的主要命令是用以在由線205中的地址規定的位置處將數據編程到存儲器平面105-108中的一者或一者以上和從存儲器平面105-108中的一者或一者以上讀取數據,以及從寄存器A或B中的一者編程和讀取數據或將數據編程和讀取到寄存器A或B中的一者中的命令。線203上載運的命令代碼是由用於存儲器晶片103內的命令與控制電路121(圖2)的協議規定的命令代碼。此協議不需要等同於環狀總線內使用的命令代碼的協議。舉例來說,環狀總線命令代碼可能與存儲器單元陣列所使用的命令代碼具有不同的長度。在這種情況下,可將解碼器(未圖示)併入到命令寄存器193(圖5)的輸出上。可通過系統配置命令將用以轉換一種協議為另一種協議的映射信息載入翻譯器中。狀態線207在當設置存儲器系統以便在節點之間轉移數據時指定的時間多路復用通道中的一者中提供來自控制電路121的狀態信號,且通過切換電路211到達數據總線線133。
圖5的切換電路211在功能上比圖4的切換電路153簡單。除了在來自線207的狀態信息被放置在線133上的時槽期間之外,在所有時間都在由線214中的控制信號選擇的寄存器151′或寄存器156′與驅動器155′之間通過數據線133。經配置的時槽的發生是由切換電路211以相同於圖4切換電路153的方式從通道計數器181′和線175′中分配的通道號中確定的,以及由線213上的控制信號確定的。在節點之間的數據轉移期間,狀態信息被放置在總線133上,而從系統控制器將命令和地址接收到寄存器193和199中發生在數據轉移之前或之後,其早於將數據讀出快閃記憶體而進入寄存器A和B中的一者或兩者中以轉移到另一節點,或晚於將已從另一節點轉移到這些寄存器中的數據編程到快閃記憶體中。
圖6A到圖6I中展示用以操作圖2-5的存儲器系統的一組命令,其全部由控制器130通過其環狀總線節點128(圖2)發出。為了方便起見而展示通過環狀總線的三個節點在各總線線135(CMND)和133(DATA)上的命令和數據傳輸,因為其以時間順序發生。當然,存儲器系統可能具有遠多於三個環狀總線節點,其中擴展圖6A到6I中展示的圖案以展示每一節點處的信號,一個節點的信號比緊鄰的前一個節點的信號延遲一個時鐘周期。將注意到,在此特定實例中,pip是在緊接著每一命令之前的時鐘周期中在命令線上發送的,且還對數據線上發送的數據標記開始。不同於所說明的單個周期pip,每一命令之前的pip可能佔據多個時鐘周期,且可能被定義為啟用後續命令所需的唯一代碼。這將對所傳輸的命令的錯誤檢測提供更大的抗擾性。
圖6A、6B和6C的命令是由環狀總線上的每一節點執行的配置命令。通過圖6A或6B中任一者的替代命令,唯一的節點識別(ID)號存儲在每一節點的寄存器165和165′(圖4和5)中。在圖6A中,在命令總線線135上發送設定ID命令,由pip標記其開始。緊接著的是數據線133上的唯一的識別號(ID),也由命令線上的pip標記其開始。作為節點切換電路153或211(圖4和5)的一部分的電路使由總線上第一節點在控制器節點之後接收的ID號遞增,且經遞增的號接著圍繞環狀總線按次序被傳輸到下一節點。
在圖6B中,由控制器電路130(圖2)而不是由先前節點的遞增電路確定由環狀總線的連續節點使用的ID號的順序。這允許在將ID號分配給節點時具有更大的靈活性。控制器130不僅傳輸用於環狀總線上第一相鄰節點的單個ID號,而且傳輸一串ID號,總線上的每一節點使用其中一個ID號。每一節點去除其接收到的第一ID號,並將其餘的ID號在環狀總線上按次序重新傳輸到下一節點。
圖6C中說明重設通道命令,控制器在命令總線線135上發送由系統上每一節點接收並執行的命令。當此命令由節點接收時,其經分配的通道號寄存器167和167′(圖4和5)被重設。
圖6D、6E和6F的三個命令被引導到環狀總線系統上經識別的命令節點(例如命令節點127(圖2和5))並由其接收。圖6D的地址輸入命令識別將要存取的快閃記憶體地址。所述地址在命令線135上圍繞總線發送,同時在數據線133上發送預定接收命令的一個命令節點的ID號。緊隨著節點ID的是存儲器單元陣列的地址,在後續步驟中將在所述地址處執行某個操作。接著在其寄存器165′中具有與控制器所發送的ID相匹配的一個節點將此地址載入其地址寄存器199(圖5)。相同的ID和地址圍繞總線在節點之間傳遞,但僅具有匹配ID的一個命令節點啟用其本身以接收和存儲地址。
圖6E中展示一組相關命令,所述命令對快閃記憶體的已由圖6D的一個或一個以上地址輸入命令定址的部分進行操作。在命令線135上發送用於圖6E中列出的命令之一的唯一代碼,而在數據線133上發送所述命令被引導到的一個命令節點的ID。所述命令接著被載入經識別的命令節點的命令寄存器193(圖5)且立即執行。圖6E的讀取模式命令促使快閃記憶體中在由圖6D的命令先前載入的地址(或多個地址)處的數據被讀出快閃記憶體,且進入寄存器以準備由環狀總線轉移數據。類似地,圖6E的多塊編程命令可用於將來自寄存器的數據並行地編程到快閃記憶體的兩個或兩個以上平面中的先前由圖6D的地址命令供應的地址處。如果存儲器系統中存在期望用以執行圖6E的命令之一的一個以上命令節點,那麼圖6D和6E的命令被單獨地發送到每一命令節點。
如果期望在讀取、編程或其它操作期間由命令節點發送狀態信號,那麼圖6F的狀態讀取命令用於設置命令節點以進行此工作。在命令線135上發送唯一的命令,而在數據線133上發送期望用所述命令來設置的一個命令節點的ID。將在上面發送狀態信息的通道號緊隨數據線上的節點ID。接著將此通道號載入經分配的通道號寄存器167′(圖5)中。
圖6G展示相關的輸入與輸出命令,其用於響應於後續的數據命令來調節數據節點,以在環狀總線的數據線133與寄存器A或B中的一者之間轉移數據。輸入或輸出命令被控制器放置在命令總線線135上,隨後是期望節點的ID、在上面轉移數據的通道號(時槽)、轉移數據所使用的寄存器A或B以及數據轉移的長度。接著將發送的通道號載入數據節點的寄存器167(圖4)中,選定的寄存器A或B和數據轉移的長度臨時存儲在解碼器163中且由各自的解碼器輸出177和176提供。
一旦所有相關的數據節點經配置以便通過接收和執行圖6G的命令(每次一個)進行數據轉移,那麼圖6H的數據啟用命令促使進行轉移。由控制器在總線的命令線135上發送數據啟用命令,且在數據線133上發送進行轉移所必需的配置參數。這些參數包括用於數據轉移的通道(時槽)數目C、一組時槽中周期的數目N和環狀總線上節點的數目D,其遵循圖3C的時序圖所說明的經分組的通道轉移。這些參數存儲在數據節點(圖4)中且在數據轉移期間在線184、185和186上被提供到通道計數器181。如圖6G的輸入或輸出命令所引導,在由所述命令規定的用於每一節點的唯一通道上,數據接著被轉移到已接收所述命令的每一節點的寄存器A或B的一者中或從已接收所述命令的每一節點的寄存器A或B的一者中轉移出。
圖6H的數據啟用命令促使正被轉移的數據在其被分配的時間多路復用通道中圍繞環狀總線循環。有限量的數據可根據通道的寬度(即,分配給每一者的時間的長度)而在每一數據通道中轉移。在圖6H中,為便於解釋而將各通道(數據幀)展示成長度為四個時鐘周期,從而載運四個數據位,但實際上可能比四個大得多。根據圖3C所示的分組通道周期技術,每一數據節點可在先前傳輸的幀完全通過圍繞環狀總線的電路並返回到所述節點之前傳輸另一數據幀。這持續進行,直到以此方式傳輸完從所述節點轉移的所有數據為止。
在控制器在環狀總線上傳輸另一命令節點或數據節點命令,而數據正在執行數據啟用命令的過程中轉移之前,轉移需要首先被中止。圖6I中展示數據中斷命令以進行此工作。當在數據轉移期間源數據節點接收到數據中斷命令時,所述節點中止數據轉移,直到隨後接收到數據啟用命令為止。然而,用於進行轉移的數據的目的地節點繼續接收任何相關數據,因為在數據中斷命令之後在其它通道上可能存在有效數據。經配置以僅僅使數據通過的那些節點繼續進行此工作。用數據中斷命令中止數據轉移的一個原因是能夠添加通道、配置額外節點以傳輸或接收數據等,如同在數據中斷命令之後且在經重新配置的數據轉移通過隨後的數據啟用命令而重新開始之前可通過使用輸入和/或輸出命令來完成。用於經重新配置的數據轉移的新參數被規定作為隨後數據啟用命令的一部分。
圖6I的數據中斷命令與所有其它命令的不同之處在於,其不具有相關聯的命令代碼。可僅在先前命令為數據啟用命令時使用所述命令。數據中斷命令由控制器用信號發出作為任一通道上的命令線上的擴展pip。數據線載運適合於與數據中斷命令不關聯的所述通道的數據。
圖7中概括了通過使用剛才已描述的命令在節點之間轉移數據的整個過程。快閃記憶體平面內將轉移的數據首先被移動到寄存器中,所述寄存器在此實例中為一個或一個以上平面中每一者的寄存器A或B之一。第一步驟221促使快閃記憶體地址按順序被發送到各命令節點,所述命令節點每一者與一個或一個以上存儲器平面相關聯。緊接著的是將來自平面的經定址的位置的數據讀取到其相關聯的寄存器A或B中的一者中。
這些數據源節點還經配置以通過使用用於待配置的每一節點的圖6G的輸出命令來轉移數據,如步驟223指示。在步驟224中,數據目的地節點通過使用用於待配置的每一節點的輸入命令來接收這些數據。步驟223和224可與步驟222同時執行。在起始步驟222之後可發出狀態讀取命令(圖6F)以便接收在節點之間圍繞總線起始數據轉移之前已完成在節點內的步驟222的轉移的確認。
在完成步驟223和224以設置源節點和目的地節點以用於數據轉移之後,且一旦確認步驟222已完成,如果以上已完成,那麼在步驟225中發出圖6H的數據啟用命令。這促使數據在環狀總線上從源節點的寄存器移動到目的地節點的寄存器。源節點和目的地節點寄存器包括控制器節點128(圖2)的寄存器,其用於通過控制器130從主機接收數據或將數據發送到主機。
接著,存儲在目的地節點的寄存器中的數據被編程到快閃記憶體中。在步驟226中,通過圖6D的地址輸入命令將快閃記憶體內由命令節點控制的地址發送到所述命令節點。如果存在多個命令節點,那麼針對每一命令節點單獨執行此步驟。接著發送圖6E的編程命令中的一者以促使從寄存器到快閃記憶體中的編程具有可能的最大並行度。通過這些技術,數據可在以下兩種情況的任一者或兩者的情況下移動(1)在主機到控制器中的寄存器與快閃記憶體中的位置之間,(2)僅在快閃記憶體內的位置之間。
步驟226的起始不需要等待步驟225的完成,而是可與步驟225同時執行。對於一控制節點操作和一數據節點操作,或對於單個寄存器上的兩個數據節點操作,同時的操作是可能的。
圖8和圖9中給出通過使用圖6A-6I的命令來轉移數據的說明,其中圖8示意性展示圖2到圖5的具有在實例中使用的特定所需的數據源和目的地的存儲器系統,且圖9按順序列出用以實現所需轉移的命令。在已由主機系統(存儲器系統通過控制器與所述主機系統連接)將數據的扇區19、20和21寫入到控制器緩衝器RAM之後,所述數據的扇區19、20和21從控制器緩衝器RAM轉移以寫入到快閃記憶體中。這些數據扇區分別轉移到存儲器平面A、B和C中。同時,平面C中的數據扇區R6轉移到平面D。
圖8和9的實例還展示尚未討論的結束命令(圖6E)的使用。在此處其用作命令#10(圖9)以終止由命令#4起始的狀態讀取操作。同樣,使用兩次數據中斷命令,作為命令##9和14以停止各自的數據啟用命令##8和13的執行。數據中斷命令#9的原因是中止數據轉移以便配置源節點和目的地節點以用於扇區R6的轉移,其由各自的輸出與輸入命令##11和12完成。這可能是必需的,因為快閃記憶體讀取命令#3的執行花費相對長的時間,在此時間期間可由控制器發出命令##4-8。接著發出另一數據啟用命令#13,其在通道0中將扇區R6添加到進行轉移的數據,而通道1、2和3上的數據扇區19、20和21的轉移重新開始。在數據扇區19、20和21的轉移完成(將在稍後開始的數據扇區R6的轉移完成之前發生)之後,發出另一數據中斷命令#14以使得後續的數據啟用命令#15可減少用於結束扇區R6的轉移的通道的數目。需要僅規定在最多一直發生的任何數據轉移所需的通道的數目,從而避免時槽無數據,這不利地影響存儲器性能。
還將注意到,圖8和圖9中說明的示範性數據轉移在單個環狀總線上同時執行某些操作,這是上述架構和命令結構的特性。舉例來說,響應於數據啟用命令#8,由於使用時分多路復用,數據的三個扇區19、20和21同時轉移,每一扇區具有不同的源節點和目的地節點。響應於數據啟用命令#13,四個數據扇區19、20、21和R6一起圍繞總線轉移。同樣,在命令#4期間,在數據扇區19、20和21的轉移在通道1、2和3上進行的同時,狀態讀取命令在通道0上執行。另外,如上所提到,在執行快閃記憶體讀取命令#3時,執行命令##4-7和命令#8的一部分。另外,圍繞環狀總線轉移的數據在通過控制器節點時可由控制器的ECC電路檢查,這與數據轉移同時發生。
存在可實現的圖2存儲器系統架構的許多變化,同時仍用上述的命令和方式來作業系統。不再是具有四個存儲器平面的存儲器晶片,存儲器晶片可具有單個的未經劃分的存儲器單元陣列,如圖10所說明。兩個存儲器晶片231和233展示為在環狀總線中與控制器晶片101連接。存儲器晶片231和233中每一者均包括通過總線以先前描述的環連接的單個命令節點和單個數據節點。兩個以上存儲器晶片可用於特定系統。
圖11中展示其它可能的變化,其中兩個存儲器晶片235和237中的每一者也在環狀總線上與控制器晶片101連接,但每一存儲器晶片分別包括單個組合的命令和數據節點239和241。節點239和241單獨地具有組合到一個電路中的圖4和5的單獨的節點電路。其優點在於可通過消除例如切換電路、命令解碼器、通道計數器、各種存儲寄存器和類似物的重複的組件來縮減節點電路。
為了提供與在單個並行總線上與存儲器晶片通信的常規控制器向後兼容(backwardcompatible)的存儲器集成電路晶片,存儲器晶片可包括常規的總線接口以及環狀總線節點和外部連接。圖12中展示此種存儲器晶片。其含有四個環狀總線節點245-248,每一者連接到四個多路復用器251-254中的一者的一個輸入。多路復用器251-254中每一者的另一輸入通過共用總線257連接到常規的總線接口電路259,所述總線接口電路259提供終止於存儲器晶片的外部連接墊的常規總線261。這些總線墊接著與系統控制器連接,且視需要與其它存儲器晶片連接。常規控制器263(類似於圖1的控制器11)或具有環狀總線節點的控制器265(類似於圖2的控制器101)可與這些總線墊連接。
給定晶片的多路復用器251-254在安裝在存儲器系統中時優選永久設定,以便將存儲器陣列及其命令與控制電路(圖12中未圖示)的部分單獨地連接到各環狀總線節點245-248或並行連接到更常規的總線257。可添加存儲器晶片的外部引腳以便設定多路復用器251-254,以根據存儲器系統中使用的控制器將晶片連接到各種類型控制器263或265中的任一者。晶片的環狀總線的輸入267連接到常規總線接口261的一組輸入線,在此情況下為一組三條線。環狀總線的輸出269連接到常規總線269的另一組三個不同導體。因此,當控制器265用於存儲器系統中時,其與常規外部總線的這兩組線連接,因為所述總線不是以常規方式使用。因此不需要增加存儲器晶片的外部墊的數目以便適應與任一類型控制器的連接。
使用存儲器晶片的額外的外部引腳來設定多路復用器251-254的替代方案是使用常規總線257中的沒有用作環狀總線的輸入或輸出線的引腳。可將這些引腳永久設定為狀態的預定組合以設定多路復用器251-254來選擇環狀總線節點245-248。可將狀態的組合選擇為在常規總線257的正常操作中不會發生的非法組合。
在圖2、10和11所示的系統實例中,除了環狀總線節點接口已代替存儲器接口25之外,控制器130極類似於圖1的現有控制器11。但並不是通過單個總線節點接口存取控制器的許多組件和功能中的每一者,這些組件和功能可通過單獨地具有其自身的節點而圍繞環狀總線分布。圖13中展示此情況的實例。指示若干環狀總線節點275-279以代表單個集成電路晶片上或許多可能配置(包括先前說明和描述的配置)中任一者中的單獨晶片上的存儲器陣列的命令和數據節點。圖13的系統的不同之處在於用與少於所有控制器電路和功能的控制器電路和功能單獨連接的多個這種節點替換了單個控制器節點。在此特定實例中,包括七個控制器環狀總線節點281-287。其分別單獨地連接到非易失性存儲器高速緩衝存儲器289、易失性存儲器高速緩衝存儲器291、ECC電路293、易失性數據緩衝存儲器295(主要用於在存儲器與主機之間轉移的數據的臨時存儲)、用以存儲由處理器299執行的固件代碼的易失性存儲器297,和主機接口電路301。可通過使用額外的控制器節點添加其它功能,或可消除圖13所示的控制器功能中的一個或一個以上功能,或可組合所述組件和功能中的某些組件和功能以便通過單個共享的總線節點連接到環狀總線。
為了使環狀總線不會負擔有控制器操作內部的命令和數據的轉移,期望包括單獨的並行控制器總線303,其允許處理器299與例如圖13所示的控制器功能中的某一者之間的直接通信。額外的非易失性存儲器305也可連接到控制器總線303以便存儲引導代碼,所述引導代碼在系統的初始化期間使用以促使處理器299將固件從系統的快閃記憶體載入存儲器297中。這使得主要在數據或命令在某些控制器組件中的一者與和存儲器節點275-279連接的快閃記憶體組件之間轉移時使用所述控制器組件與環狀總線的連接。先前提到的一個實例是使圍繞總線轉移的數據(尤其是從快閃記憶體讀取的數據)通過ECC電路293以驗證其有效性。接著優選由處理器299校正由ECC電路293在用於校正的ECC算法的能力內檢測到的錯誤。其它實例包括環狀總線到緩衝存儲器295和高速緩衝存儲器289與291的直接連接。
期望使存儲器晶片容易通過其本身與控制器連接,或者還容易連接到一個、兩個或兩個以上其它存儲器晶片。在存儲卡的製造中,控制器和一個或一個以上存儲器晶片物理地附接到小的印刷電路板(PCB),所述印刷電路板還提供用於使晶片與卡的外部接點互連的電導體。相對直接的是當在PCB上使用常規的並行總線時,向PCB提供包括從一到某個有限數目的可變數目的存儲器晶片的能力,以便能夠製造具有不同存儲容量的卡。但當一個或一個以上存儲器晶片連接到環狀總線時,PCB上環狀總線的將存儲器晶片與控制器晶片連接在一起的部分需要能夠適應可變數目的串聯連接的晶片。由於所述串聯的最末存儲器晶片的輸出連接回控制器,因此需要某種用不同數目的存儲器晶片容易地進行此工作的方式。
圖14中說明用於進行此工作的一種這樣的技術。控制器晶片311和兩個存儲器晶片313和315在單個PCB上連接在一起作為存儲卡的一部分。控制器311包括至少一個總線節點,且存儲器晶片的每一者包括多個總線節點。存儲器晶片313具有與控制器晶片311的總線輸出連接的總線輸入317,和連接到第二存儲器晶片315的總線輸入的第一輸出319。第二輸出321也提供在存儲器晶片313上且連接到總線的部分323,所述部分323在PCB上包括在晶片之間以將串聯的最末存儲器晶片的輸出返回到控制器晶片311的總線輸入。但由於存儲器晶片313不是串聯的最末存儲器晶片,因此其返回的輸出321在晶片上被禁用,而輸出319保持可操作。第二存儲器晶片315類似地具有兩個總線輸出325和327,由於所有的存儲器晶片最容易被製造成一樣,因此由於晶片315是串聯的最末晶片而保持返回輸出327被啟用。其與PCB總線返回部分323的連接隨後使環完整。晶片315的第二輸出325接著在晶片315上被禁用,且無需連接到任何地方。
儘管圖14的配置允許可變數目的晶片相對容易的串聯連接,但PCB上總線部分323的長度在許多情況下可具有顯著高於晶片上總線段電容的電容水平。由於這可限制整個環狀總線的操作頻率,因此進一步需要用可使這種效應最小化的方式來提供返回總線路徑。這在圖15的卡系統中是通過在存儲器晶片331和333本身上形成返迴路徑的大部分且通過將返迴路徑分成被單獨驅動的較短段來完成的。那麼環狀總線的任一段的最大電容就維持在較低水平。
以存儲器晶片331作為實例,其具有環狀總線輸入335和用於串聯連接到下一存儲器晶片的輸出337(如果存在輸出337(如圖15))。用於返回到控制器的第二輸出339保持在存儲器晶片內。返迴路徑的部分341包括在存儲器晶片中而不是在PCB上。返迴路徑341連接到級343,所述級343包括一個時鐘周期的延遲以將其輸入與輸出總線段以及驅動器去耦來驅動返回輸出345,這類似於早先描述的節點。對於存儲器晶片不是串聯中的最末晶片的情況,例如晶片331不在圖15中,提供返回總線輸入347用於下一按次序的存儲器晶片以連接其返回總線輸出。
在圖15的兩個存儲器晶片的實例中,使第一晶片331的輸出337可操作以便連接到串聯的下一存儲器晶片333的輸入,而其返回輸出339被禁用。使第二存儲器晶片333的返回輸出349可操作,因為第二存儲器晶片是串聯的最末晶片。接著總線跟隨晶片333上的返迴路徑,通過與電路343相同的寄存器和驅動器電路351而到達第一晶片331的輸入347。實際上,非常需要製成單獨的一個可連接在串聯串內多個位置中的任一個位置的存儲器集成電路晶片。最末存儲器晶片333的第二輸出353被禁用且保持無連接。當然,對最末晶片333的返回總線輸入355沒有連接。
儘管已關於本發明的示範性實施例描述了本發明的各種方面,但將了解,本發明有權受到所附權利要求書的整個範圍內的保護。
權利要求
1.一種圍繞將多個節點與一控制器連接在一起的一環狀總線來轉移數據的方法,其包含在從所述控制器到所述節點的圍繞所述環狀總線的一給定方向上傳遞命令,以便確立所述節點中的至少一個節點作為待轉移的數據的一源,且確立所述節點中的至少另一個作為待轉移的數據的一目的地,將待轉移的數據從連接到所述至少一個源節點的存儲器讀取到在所述至少一個源節點處提供的臨時數據存儲裝置中,隨後僅在從所述至少一個源節點處的臨時數據存儲裝置圍繞所述環狀總線的所述給定方向上轉移所述讀取數據,隨後將所述轉移的數據寫入到在所述至少一個目的地節點處提供的臨時數據存儲裝置中,和隨後將所述轉移的數據從所述至少一個目的地節點處的所述臨時數據存儲裝置寫入到與其連接的存儲器中。
2.根據權利要求1所述的方法,其中圍繞所述環狀總線傳遞命令包括通過連接到所述環狀總線中的一控制器節點從所述控制器傳遞命令。
3.根據權利要求2所述的方法,其額外包含通過所述控制器中包括的緩衝存儲器以及所述控制器節點將數據轉移到一主機和從所述主機轉移數據。
4.根據權利要求1所述的方法,其額外包含通過連接到所述環狀總線中的另一節點將數據轉移到一主機和從所述主機轉移數據。
5.根據權利要求1所述的方法,其中傳遞命令包括確立所述節點中的至少兩個節點作為待轉移的數據的源,且確立所述節點中的至少兩個節點作為待轉移的數據的目的地,其中轉移所述讀取數據包括在至少兩個連續的時槽中從所述至少兩個源節點圍繞所述環狀總線轉移數據,且其中寫入所述轉移的數據包括將所述正轉移的數據從所述至少兩個連續的時槽中的不同時槽寫入所述至少兩個目的地節點中。
6.根據權利要求5所述的方法,其中轉移所述讀取數據額外包括調節所述至少兩個連續時槽的數目以減少任何未使用時槽的數目。
7.根據權利要求5所述的方法,其中圍繞所述環狀總線傳遞命令不包括連續時槽的使用。
8.根據權利要求1所述的方法,其中圍繞所述環狀總線傳遞所述讀取數據包括從所述至少一個源節點並回到所述至少一個源節點完全圍繞所述環轉移所述讀取數據。
9.根據權利要求8所述的方法,其額外包含在所述至少一個源節點處驗證所述讀取數據在完全圍繞所述環轉移之後的有效性。
10.根據權利要求9所述的方法,其中驗證所述讀取數據的有效性包括將在完全圍繞所述環轉移之後的所述讀取數據與放置在所述環狀總線上所述至少一個源節點處的所述讀取數據進行比較。
11.根據權利要求8所述的方法,其額外包含在所述環狀總線上的一位置處用一錯誤校正方案檢查所述讀取數據。
12.根據權利要求11所述的方法,其中用一錯誤校正方案檢查所述讀取數據發生在所述控制器中。
13.根據權利要求11所述的方法,其中用一錯誤校正方案檢查所述讀取數據包括使所述數據傳遞通過錯誤校正電路,其中所述錯誤校正電路通過除了所述至少一個源節點和所述至少一個目的地節點之外的一節點連接到所述環狀總線。
14.根據權利要求1所述的方法,其中圍繞所述環狀總線傳遞的用以確立所述節點中的至少一個節點作為待轉移數據的一源且確立所述節點中的至少另一個節點作為待轉移數據的一目的地的所述命令僅由所述控制器發起。
15.根據權利要求1所述的方法,其額外包含在圍繞所述環狀總線轉移所述讀取數據之前,從所述控制器圍繞所述環狀總線發送命令和數據以配置所述多個節點。
16.根據權利要求1所述的方法,其中圍繞所述環狀總線轉移所述讀取數據包括在所述多個節點中的個別節點處施加正轉移的讀取數據所同步的一系統時鐘源的一個或一個以上周期的一延遲。
17.根據權利要求1所述的方法,其中圍繞所述環狀總線傳遞命令包括在所述環狀總線的至少一第一導體上傳遞命令,且圍繞所述環狀總線轉移所述讀取數據包括在所述環狀總線的不同於所述第一導體的至少一第二導體上轉移所述讀取數據。
18.根據權利要求1所述的方法,其中圍繞所述環狀總線傳遞命令包括(1)通過所述多個節點中的至少另一個節點接收所述命令並接著將所述節點中的所述至少一個節點配置為數據的一源來確立所述節點中的所述至少一個節點作為數據的一源,和(2)通過所述多個節點中的至少另一個節點接收所述命令並接著將所述節點中的所述至少一個節點配置為數據的一目的地來確立所述節點中的所述至少一個節點作為數據的一目的地。
19.根據權利要求1所述的方法,其中從連接到所述至少一個源節點的存儲器讀取待轉移的數據包括從連接到所述至少一個源節點的可再編程非易失性存儲器單元的至少一第一單位讀取數據。
20.根據權利要求1所述的方法,其中將所述轉移的數據寫入到與所述至少一個目的地節點連接的所述存儲器中包括將所述轉移的數據寫入到連接到所述至少一個目的地節點的可再編程非易失性存儲器單元的至少一第二單位中。
21.根據權利要求19或20中任一權利要求所述的方法,其中存儲器單元的所述第一和第二單位包括少於一單個集成電路晶片上所有存儲器單元的分別第一和第二平面。
22.根據權利要求19或20中任一權利要求所述的方法,其中存儲器單元的所述第一和第二單位包括分別第一和第二集成電路晶片上的一整個存儲器單元陣列。
23.根據權利要求2所述的方法,其額外包含將所述讀取數據臨時存儲在連接到所述多個節點中不同於所述控制器節點、所述至少一個源節點和所述至少一個目的地節點的另一節點的緩衝存儲器中。
24.根據權利要求1所述的方法,其中將數據讀取到臨時數據存儲裝置中包括將所述讀取數據轉移到在所述至少一個源節點處提供的至少兩個數據寄存器中的一者中。
25.根據權利要求1所述的方法,其中將數據寫入到臨時數據存儲裝置中包括將所述轉移的數據寫入到在所述至少一個目的地節點處提供的至少兩個數據寄存器中的一者中。
26.根據權利要求1所述的方法,其額外包含同時將一第二組數據從連接到所述多個節點中的一個節點的存儲器讀取到所述多個節點中的所述節點處的臨時數據存儲裝置的一個部分中和將一第三組數據從所述環狀總線寫入到所述多個節點中的所述節點處的臨時數據存儲裝置的另一部分中。
27.一種存儲器系統,其包含至少一個可再編程非易失性存儲器單位,其包括一數據通信節點,一主機數據輸入/輸出電路,其具有另一數據通信節點,一總線,其將所述分別數據通信節點共同連接成一環,和一控制器,其包括一微控制器,所述微控制器與所述環狀總線可操作地連接以促使通過適於包括許多正轉移的多個通道的數據的許多時間多路復用數據幀在一單個方向上完全圍繞所述環狀總線從所述數據通信節點中的一個或一個以上數據通信節點同時轉移多個通道的數據。
28.根據權利要求27所述的存儲器系統,其中所述控制器進一步通過所述環狀總線可操作地連接,以通過所述環狀總線將配置命令發送到所述通信節點中選定的通信節點以通過其轉移數據。
29.根據權利要求28所述的存儲器系統,其中所述至少一個存儲器單位額外包括一配置電路和連接到所述環狀總線的一命令節點,且所述配置電路用於接收和執行來自所述控制器的所述配置命令。
30.根據權利要求27所述的存儲器系統,其中所述至少一個存儲器單位的至少所述數據通信節點包括至少兩個寄存器,所述至少兩個寄存器經連接以同時存儲在存儲器子系統與所述環狀總線之間轉移的至少兩塊數據。
31.根據權利要求27所述的存儲器系統,其中所述控制器包括所述主機數據輸入/輸出電路,且所述控制器通過所述另一數據通信節點連接到所述環狀總線。
32.根據權利要求27所述的存儲器系統,其中所述控制器通過一命令信號節點連接到所述環狀總線。
33.根據權利要求27所述的存儲器系統,其中所述至少一個存儲器單位包括多個單獨地包括一數據通信節點的兩個或兩個以上可再編程非易失性存儲器單位。
34.根據權利要求33所述的存儲器系統,其中所述兩個或兩個以上存儲器單位包括一單個集成電路晶片上的兩個或兩個以上存儲器平面。
35.根據權利要求33所述的存儲器系統,其中所述兩個或兩個以上存儲器單位形成在分別的兩個或兩個以上獨立的集成電路晶片上。
36.根據權利要求27所述的存儲器系統,其額外包含一錯誤校正電路,所述錯誤校正電路與所述環狀總線可操作地連接以在所述多個通道的數據圍繞所述環狀總線轉移時使所述多個通道的數據能夠通過所述錯誤校正電路。
37.根據權利要求36所述的存儲器系統,其中所述控制器包括所述錯誤校正電路。
38.一種快閃記憶體系統,其包含多個快閃記憶體數據存儲單位,其單獨地包括一快閃記憶體單元陣列、一數據節點和連接在所述數據節點與所述陣列之間的至少一個數據存儲寄存器,至少一個命令單位,其與用於在其間傳送地址和狀態信息的所述數據存儲單位連接且與一命令節點連接,一控制器,其具有一接口節點,一總線,其將所述數據、命令和接口節點共同連接成一環,且所述控制器操作以通過經由所述總線將命令發送到所述命令單位而在所述數據存儲單位以及在所述數據存儲單位與所述控制器之間轉移數據,其中所述至少一個寄存器是所述轉移的數據的一源或一目的地。
39.根據權利要求38所述的存儲器系統,其中所述至少一個寄存器包括兩個或兩個以上寄存器,且所述控制器進一步操作以通過所述總線將經定址的存儲單位的所述至少兩個存儲寄存器中的一者選擇為所述轉移的數據的所述源或一目的地。
40.一種集成電路晶片,其包含至少兩個可再編程非易失性存儲器單元子陣列,至少兩個數據存儲寄存器,所述至少兩個子陣列中的每一者可操作地連接以用所述數據存儲寄存器中的至少一者轉移數據,至少兩個總線節點,所述至少兩個總線節點中的每一者可操作地連接以用所述數據存儲寄存器中的至少一者轉移數據,一第一組多個外部接點,其提供到達所述集成電路晶片的一總線輸入,一第二組多個外部接點,其提供來自所述集成電路晶片的一總線輸出,和一總線,其將所述至少兩個總線節點與所述第一和第二組外部接點串聯連接,藉此所述集成電路晶片通過所述第一和第二組節點可與其它集成電路晶片連接成一串聯環。
41.根據權利要求40所述的集成電路晶片,其中所述至少兩個總線節點包括一命令節點,所述命令節點適於接收命令以配置所述至少兩個子陣列和所述至少兩個寄存器,以便在所述至少兩個子陣列與所述至少兩個總線節點之間轉移選定的數據。
42.根據權利要求40所述的集成電路晶片,其中所述至少兩個數據存儲寄存器包括所述寄存器中的至少兩個寄存器,所述至少兩個寄存器可操作地連接以用所述至少兩個子陣列中的不同一者來轉移數據。
43.一種集成電路晶片,其包含至少一個可再編程非易失性存儲器單元陣列,至少一個總線節點,其可操作地連接以用所述至少一個陣列轉移數據,一第一組多個外部接點,其提供到達所述集成電路晶片的一總線輸入,一第二組多個外部接點,其提供來自所述集成電路晶片的一第一總線輸出,以便與含有至少一個可再編程非易失性存儲器單元陣列的另一集成電路晶片的輸入總線接點連接,一第三組多個外部接點,其提供來自所述集成電路晶片的一第二總線輸出,所述第二總線輸出可經啟用以確立返回總線連接,和一總線,其可操作地將所述至少一個總線節點與外部接點的所述總線輸入和所述總線輸出組串聯連接。
44.根據權利要求43所述的集成電路晶片,其中在所述第二組接點未與含有至少一個可再編程非易失性存儲器單元陣列的另一集成電路晶片的輸入總線接點連接時,所述第三組接點可經啟用以提供所述第二總線輸出。
45.根據權利要求43所述的集成電路晶片,其額外包含包括總線數據臨時存儲裝置和驅動器的一電路,其中所述驅動器將所述臨時存儲裝置連接到所述第三組接點以便將存儲在其中的數據放置到所述第三組接點上,且一第四組多個外部接點也在所述電路晶片上連接到所述臨時存儲裝置。
46.一種集成電路晶片,其包含至少一個可再編程非易失性存儲器單元陣列,至少一個總線節點,其可操作地連接以用所述至少一個陣列轉移數據,一第一組多個外部接點,其提供到達所述集成電路晶片的一總線輸入,一第二組多個外部接點,其提供來自所述集成電路晶片的一總線輸出,一總線,其將所述至少一個總線節點與所述第一和第二組外部接點串聯連接,藉此所述集成電路晶片通過所述第一和第二組接點可與其它集成電路晶片連接成一串聯環,且其中所述至少一個總線節點包括在所述總線上接收的數據的臨時存儲裝置和用以將所述存儲的數據輸出到所述總線上的驅動器。
47.根據權利要求46所述的集成電路晶片,其中所述至少一個節點額外包含用於存儲所述至少一個節點的一識別號的一第一寄存器和用於存儲所述總線上既定用於所述至少一個節點的數據的一通道號的一第二寄存器,藉此與所述總線介接,所述至少一個節點在時間多路復用模式中操作。
全文摘要
一種系統和所述系統中使用的集成電路晶片利用環形式的總線來使個別組件的節點互連以便在其間轉移數據和命令。所描述的示範性系統是具有一個或一個以上可再編程非易失性存儲器單元陣列的存儲器,其中所述可再編程非易失性存儲器單元陣列通過環狀總線彼此連接且連接到系統控制器。
文檔編號G06F13/42GK101036132SQ200580031817
公開日2007年9月12日 申請日期2005年8月3日 優先權日2004年8月9日
發明者艾倫·韋爾什·辛克萊 申請人:桑迪士克股份有限公司