TW202044265A - 能夠驗算記憶體資料之正確性的系統單晶片 - Google Patents
能夠驗算記憶體資料之正確性的系統單晶片 Download PDFInfo
- Publication number
- TW202044265A TW202044265A TW108116839A TW108116839A TW202044265A TW 202044265 A TW202044265 A TW 202044265A TW 108116839 A TW108116839 A TW 108116839A TW 108116839 A TW108116839 A TW 108116839A TW 202044265 A TW202044265 A TW 202044265A
- Authority
- TW
- Taiwan
- Prior art keywords
- crc code
- memory
- dma
- processing circuit
- data
- Prior art date
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本發明揭露一種系統單晶片,能驗算一記憶體之資料的正確性,以得知該記憶體是否被損壞。該系統單晶片包含一處理電路、一記憶體控制器與N個直接記憶體存取(DMA)電路。該處理電路設定該N個DMA電路;該N個DMA電路及/或該處理電路將第一預設資料寫入一記憶體的第一儲存區塊。該記憶體控制器依據該N個DMA電路及/或該處理電路的控制,存取該記憶體。該N個DMA電路的每個包含一存取控制電路與一循環冗餘校驗(CRC)運算電路;該N個DMA電路之一第一DMA電路透過該記憶體控制器從該第一儲存區塊讀取代表該第一預設資料的第一儲存資料,據以產生一第一CRC碼給該處理電路。該處理電路判斷該第一CRC碼是否符合一第一參考CRC碼,以判斷該第一儲存資料是否正確。
Description
本發明是關於系統單晶片,尤其是關於能夠驗算記憶體資料之正確性的系統單晶片。
系統單晶片(System on a Chip, SoC)是將電腦或其他電子系統整合到單一晶片的積體電路(IC),常用於嵌入式系統中。現代嵌入式系統通常是基於微控制器(例如:中央處理單元包含整合記憶體及/或介面電路用來與外部裝置通訊);但在較複雜的嵌入式系統中,普通微處理器(例如:中央處理單元使用外部記憶體和外部介面電路)也很常見。
現今IC的整合度愈來愈高,但大尺寸動態隨機存取記憶體(DRAM)還是不適合整合至SoC,因此,SoC仍需要外部DRAM。
儘管DRAM不適合整合至SoC,但為追求高速和低成本,將SoC和DRAM整合至同一封裝是種有效的方式。上述封裝稱為多晶片模組(Multi-Chip Module, MCM),是種已知的封裝技術,此種封裝技術能夠在一個封裝內,容納兩個或兩個以上的裸晶(die)。然而,封裝過程可能造成晶片損壞,或者晶片(特別是DRAM)本身是有缺陷的,因此,封裝後的晶片仍須接受測試。
對DRAM的測試可使用先寫後讀的程序,藉由判斷讀取內容的正確性以確認接線和反應是否正確。由於DRAM是供中央處理單元存取,因此使用中央處理單元對DRAM執行該先寫後讀的程序是種直覺的作法。使用上述作法來測試外部DRAM(未整合至SoC)雖然可行,但由於中央處理單元是逐筆地做資料比對以判斷讀取內容的正確性,因此整體測試時間會相當長,導致測試成本上升。
本發明之一目的在於提供一種能夠驗算記憶體資料之正確性的系統單晶片,以避免先前技術的問題。
本發明之系統單晶片的一實施例包含一處理電路、一記憶體控制器、與N個直接記憶體存取(direct memory access, DMA)電路。該處理電路用來設定該N個DMA電路,其中該N個DMA電路與該處理電路的至少其中之一用來將第一預設資料寫入一記憶體的一第一儲存區塊,該N為正整數。該記憶體控制器用來依據該N個DMA電路與該處理電路的至少其中之一的控制,存取該記憶體。該N個DMA電路的每一個包含一存取控制電路與一循環冗餘校驗(Cyclic Redundancy Check, CRC)運算電路;該N個DMA電路包含一第一DMA電路,該第一DMA電路用來透過該記憶體控制器從該第一儲存區塊讀取代表該第一預設資料的第一儲存資料,並依據該第一儲存資料產生一第一CRC碼,進而提供該第一CRC碼給該處理電路。該處理電路進一步用來判斷該第一CRC碼是否符合一第一參考CRC碼,並於該第一CRC碼符合該第一參考CRC碼時,判斷該第一儲存資料是正確的,這代表該第一儲存區塊之讀寫運作是正常的。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
以下說明內容的用語是參照本技術領域的習慣用語,如本說明書對部分用語有加以說明或定義,該部分用語的解釋是以本說明書的說明或定義為準。
圖1顯示本發明之系統單晶片的一實施例。圖1之系統單晶片100能夠驗算一記憶體10之資料的正確性,以得知記憶體10是否有缺陷或被損壞;上述驗算可於一生產測試作業中進行,也可於系統單晶片100的一自動的/被動的檢測作業中進行。系統單晶片100包含一處理電路110、一記憶體控制器120、以及N個直接記憶體存取(direct memory access, DMA)電路130,其中處理電路110(例如:中央處理單元)與記憶體控制器120的每一個為已知的電路,或為自行開發的電路,該N為正整數。另外,系統單晶片100與記憶體10視實施需求可包含於一多晶片模組(Multi-Chip Module, MCM)中,然此並非本發明之實施限制。再者,記憶體10為動態隨機存取記憶體(DRAM)或其它已知/自行開發的記憶體。
請參閱圖1。處理電路110用來設定N個DMA電路130。舉例而言,處理電路110依據記憶體10的容量設定N個DMA電路130,因此,N個DMA電路130能夠同時地分別讀取記憶體10的不同儲存空間的資料,從而快速地完成讀取記憶體10的所有儲存空間的資料,以進行後續處理。進一步而言,若上述例子中,該N為三,記憶體10的容量為四個記憶庫(memory banks),處理電路110可設定該三個DMA電路130,使得每個DMA電路130分別負責讀取該四個記憶庫的其中之一的資料,並使該三個DMA電路130分別負責讀取餘下的一個記憶庫的不同儲存區塊(blocks)(每個儲存區塊存放一或多個字組( words))的資料,如此一來,整體的讀取時間可有效地縮短。值得注意的是,上述對DMA電路130的設定為已知的技術,或為自行開發的技術;另外,記憶庫與儲存區塊的定義為本領域的通常知識。另值得注意的是,即便只有一個DMA電路130負責讀取記憶體10的所有資料,本發明也能藉由後述的循環冗餘校驗(Cyclic Redundancy Check, CRC)技術來縮短測試記憶體10的時間。
請參閱圖1。N個DMA電路130的任意個及/或處理電路110視實施需求都可用來透過記憶體控制器120將資料寫入記憶體10。舉例來說,N個DMA電路130的至少其中之一及/或處理電路110用來透過記憶體控制器120將相同的預設資料寫入記憶體10的每個儲存區塊。另舉例來說,N個DMA電路130的至少其中之一及/或處理電路110用來透過記憶體控制器120將不同的預設資料(例如:第一預設資料與第二預設資料)分別寫入記憶體10的不同的儲存區塊(例如:第一儲存區塊與第二儲存區塊)。上述不同的儲存區塊依實施需求可屬於記憶體10的同一記憶庫或分屬於記憶體10的不同記憶庫。更多範例可由上述說明推衍而得。
請參閱圖1。記憶體控制器120用來依據N個DMA電路130與處理電路110的至少其中之一的控制,存取記憶體10;上述控制包含邏輯位址至實體位址的轉換等已知的控制,其細節在此省略。N個DMA電路130的每一個包含一存取控制電路210(例如:一讀取控制電路或一讀寫控制電路)與一CRC運算電路220如圖2所示;存取控制電路210與CRC運算電路220的每一個單獨而言為已知的電路,或為自行開發的電路。藉由處理電路110的設定,N個DMA電路130中至少一DMA電路130的存取控制電路210可用來讀取已寫入記憶體10中代表前述預設資料的儲存資料,該至少一DMA電路130的CRC運算電路220可用來依據該儲存資料執行一CRC運算,以產生至少一CRC碼,該至少一DMA電路130再提供該至少一CRC碼給處理電路110,處理電路110會比對該至少一CRC碼與至少一參考CRC碼,以判斷兩者是否相符,從而處理電路110可依據上述比對的結果來判斷該儲存資料是否正確,並得知記憶體10是否有問題。上述CRC運算為已知的CRC運算,或為自行開發的CRC運算的變體;由於CRC碼的大小通常僅為數個位元組(bytes),因此處理電路110可以快速地完成CRC碼的比對,從而縮短測試記憶體10的時間。
基於前述,複數個實作範例分述如下:
(一)第一實作範例:N個DMA電路130與處理電路110的至少其中之一(例如:處理電路110)將第一預設資料寫入記憶體10的一第一儲存區塊,且N個DMA電路130包含一第一DMA電路,該第一DMA電路透過記憶體控制器120從該第一儲存區塊讀取代表該第一預設資料的第一儲存資料,並依據該第一儲存資料產生一第一CRC碼,進而提供該第一CRC碼給處理電路110,接著,處理電路110判斷該第一CRC碼是否符合一第一參考CRC碼,並於該第一CRC碼符合該第一參考CRC碼時,判斷該第一儲存資料是正確的,這代表對該第一儲存區塊的寫讀操作是正常的。
(二)第二實作範例:基於該第一實作範例,N個DMA電路130與處理電路110的至少其中之一(例如:處理電路110)另將該第一預設資料寫入記憶體10的一第二儲存區塊,該第一DMA電路透過記憶體控制器120從該第二儲存區塊讀取代表該第一預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給處理電路110,接著,處理電路110判斷該第二CRC碼是否符合該第一參考CRC碼,並於該第二CRC碼符合該第一參考CRC碼時,判斷該第二儲存資料是正確的,這代表對該第二儲存區塊的寫讀操作是正常的。
(三)第三實作範例:基於該第一實作範例,N個DMA電路130與處理電路110的至少其中之一(例如:處理電路110)另將第二預設資料寫入記憶體10的一第二儲存區塊,該第二預設資料不同於該第一預設資料,該第一DMA電路透過記憶體控制器120從該第二儲存區塊讀取代表該第二預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給處理電路110,接著,處理電路110判斷該第二CRC碼是否符合一第二參考CRC碼,並於該第二CRC碼符合該第二參考CRC碼時,判斷該第二儲存資料是正確的,這代表對該第二儲存區塊的寫讀操作是正常的。
(四)第四實作範例中:基於該第一實作範例,N個DMA電路130與處理電路110的至少其中之一(例如:處理電路110)另將該第一預設資料寫入記憶體10的一第二儲存區塊, N個DMA電路130包含一第二DMA電路,該第二DMA電路透過記憶體控制器120從該第二儲存區塊讀取代表該第一預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給處理電路110,接著,處理電路110判斷該第二CRC碼是否符合一第二參考CRC碼,並於該第二CRC碼符合該第二參考CRC碼時,判斷該第二儲存資料是正確的,這代表對該第二儲存區塊的寫讀操作是正常的。
(五)第五實作範例:基於該第一實作範例,N個DMA電路130與處理電路110的至少其中之一(例如:處理電路110)另將第二預設資料寫入記憶體10的一第二儲存區塊,該第二預設資料不同於該第一預設資料,N個DMA電路130包含一第二DMA電路,該第二DMA電路透過記憶體控制器120從該第二儲存區塊讀取代表該第二預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給處理電路110,接著,處理電路110判斷該第二CRC碼是否符合一第二參考CRC碼,並於該第二CRC碼符合該第二參考CRC碼時,判斷該第二儲存資料是正確的,這代表對該第二儲存區塊的寫讀操作是正常的。
更多的實作範例可依上述範例推衍而得。
值得注意的是,前述第四與第五實作範例中,該第一DMA電路與該第二DMA電路可於同一時段(period)分別地讀取該第一儲存區塊的儲存資料與該第二儲存區塊的儲存資料,以實現記憶體資料讀取的多工作業,其中該第一儲存區塊與該第二儲存區塊視實施需求可屬於記憶體10的同一記憶庫或分屬於記憶體10的不同記憶庫,且該第一儲存區塊與該第二儲存區塊的位址不同;舉例來說,該第一/第二儲存區塊屬於一第一/第二記憶庫,該第一/第二記憶庫的每個儲存區塊均被寫入該第一/第二預設資料以供測試。另值得注意的是,前述各個實作範例中,由於該第一/第二預設資料為已知資料,因此該已知資料的CRC碼可被事先求出並儲存於系統單晶片100的一儲存電路(例如:暫存器(register))中,以作為該第一/第二參考CRC碼,簡言之,該第一參考CRC碼及/或該第二參考CRC碼可為系統單晶片100中的預存資料;若該第一及/或第二預設資料的CRC碼未被事先儲存,處理電路110可將該第一CRC碼作為該第一參考CRC碼(用來與代表該第一預設資料的每筆儲存資料的CRC碼相比對)及/或將該第二CRC碼作為該第二參考CRC碼(用來與代表該第二預設資料的每筆儲存資料的CRC碼相比對)。
請注意,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例/實作範例中部分或全部技術特徵,或選擇性地實施前述複數個實施例/實作範例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。
綜上所述,本發明能夠驗算一記憶體之資料的正確性,以得知該記憶體是否有缺陷或被損壞;另外,本發明以一或多個DMA電路讀取該記憶體之儲存資料以產生CRC碼給處理電路進行比對,藉此有效地節省測試該記憶體的時間,從而節省測試成本。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
10:記憶體
100:系統單晶片
110:處理電路
120:記憶體控制器
130:DMA(直接記憶體存取)電路
210:存取控制電路
220:CRC(循環冗餘校驗)運算電路
[圖1]顯示本發明之系統單晶片的一實施例;以及
[圖2]顯示圖1之每個DMA電路的一實施例。
10:記憶體
100:系統單晶片
110:處理電路
120:記憶體控制器
130:DMA(直接記憶體存取)電路
Claims (10)
- 一種系統單晶片,能夠驗算記憶體資料的正確性,包含: 一處理電路,用來設定N個直接記憶體存取(direct memory access, DMA)電路,其中該N個DMA電路與該處理電路的至少其中之一用來將第一預設資料寫入一記憶體的一第一儲存區塊,該N為正整數; 一記憶體控制器,用來依據該N個DMA電路與該處理電路的至少其中之一的控制,存取該記憶體;以及 該N個DMA電路,該N個DMA電路的每一個包含一存取控制電路與一循環冗餘校驗(Cyclic Redundancy Check, CRC)運算電路,該N個DMA電路包含一第一DMA電路,該第一DMA電路用來透過該記憶體控制器從該第一儲存區塊讀取代表該第一預設資料的第一儲存資料,並依據該第一儲存資料產生一第一CRC碼,進而提供該第一CRC碼給該處理電路, 其中,該處理電路進一步用來判斷該第一CRC碼是否符合一第一參考CRC碼,並於該第一CRC碼符合該第一參考CRC碼時,判斷該第一儲存資料是正確的。
- 如申請專利範圍第1項所述之系統單晶片,其中該N個DMA電路與該處理電路的至少其中之一用來將該第一預設資料寫入該記憶體的一第二儲存區塊,該第一DMA電路用來透過該記憶體控制器從該第二儲存區塊讀取代表該第一預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給該處理電路,該處理電路進一步用來判斷該第二CRC碼是否符合該第一參考CRC碼,並於該第二CRC碼符合該第一參考CRC碼時,判斷該第二儲存資料是正確的。
- 如申請專利範圍第1項所述之系統單晶片,其中該N個DMA電路與該處理電路的至少其中之一用來將該第一預設資料寫入該記憶體的一第二儲存區塊,該N個DMA電路進一步包含一第二DMA電路,該第二DMA電路用來透過該記憶體控制器從該第二儲存區塊讀取代表該第一預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給該處理電路,該處理電路進一步用來判斷該第二CRC碼是否符合該第一參考CRC碼,並於該第二CRC碼符合該第一參考CRC碼時,判斷該第二儲存資料是正確的。
- 如申請專利範圍第3項所述之系統單晶片,其中該第一DMA電路與該第二DMA電路於同一時間分別地讀取該第一儲存資料與該第二儲存資料。
- 如申請專利範圍第2項、第3項或第4項所述之系統單晶片,其中該第一儲存區塊與該第二儲存區塊屬於該記憶體的同一記憶庫(memory bank)或分別屬於該記憶體的不同記憶庫;該第一參考CRC碼為該系統單晶片中的預存資料,或者該處理電路將該第一CRC碼作為該第一參考CRC碼。
- 如申請專利範圍第1項所述之系統單晶片,其中該N個DMA電路與該處理電路的至少其中之一用來將第二預設資料寫入該記憶體的一第二儲存區塊,該第二預設資料不同於該第一預設資料,該第一DMA電路用來透過該記憶體控制器從該第二儲存區塊讀取代表該第二預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給該處理電路,該處理電路進一步用來判斷該第二CRC碼是否符合一第二參考CRC碼,並於該第二CRC碼符合該第二參考CRC碼時,判斷該第二儲存資料是正確的。
- 如申請專利範圍第1項所述之系統單晶片,其中該N個DMA電路與該處理電路的至少其中之一用來將第二預設資料寫入該記憶體的一第二儲存區塊,該第二預設資料不同於該第一預設資料,該N個DMA電路進一步包含一第二DMA電路,該第二DMA電路用來透過該記憶體控制器從該第二儲存區塊讀取代表該第二預設資料的第二儲存資料,並依據該第二儲存資料產生一第二CRC碼,進而提供該第二CRC碼給該處理電路,該處理電路進一步用來判斷該第二CRC碼是否符合一第二參考CRC碼,並於該第二CRC碼符合該第二參考CRC碼時,判斷該第二儲存資料是正確的。
- 如申請專利範圍第7項所述之系統單晶片,其中該第一DMA電路與該第二DMA電路於同一時間分別地讀取該第一儲存資料與該第二儲存資料。
- 如申請專利範圍第6項、第7項、或第8項所述之系統單晶片,其中該第一儲存區塊與該第二儲存區塊屬於該記憶體的同一記憶庫或分別屬於該記憶體的不同記憶庫;該第一參考CRC碼及/或該第二參考CRC碼為該系統單晶片中的預存資料,或者該處理電路將該第一CRC碼作為該第一參考CRC碼及/或將該第二CRC碼作為該第二參考CRC碼。
- 如申請專利範圍第1項所述之系統單晶片,其中該系統單晶片與該記憶體包含於一多晶片封裝(Multi-Chip Module, MCM)中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108116839A TWI692768B (zh) | 2019-05-16 | 2019-05-16 | 能夠驗算記憶體資料之正確性的系統單晶片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW108116839A TWI692768B (zh) | 2019-05-16 | 2019-05-16 | 能夠驗算記憶體資料之正確性的系統單晶片 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI692768B TWI692768B (zh) | 2020-05-01 |
TW202044265A true TW202044265A (zh) | 2020-12-01 |
Family
ID=71896023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108116839A TWI692768B (zh) | 2019-05-16 | 2019-05-16 | 能夠驗算記憶體資料之正確性的系統單晶片 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI692768B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079703A (zh) * | 2023-10-17 | 2023-11-17 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6842457B1 (en) * | 1999-05-21 | 2005-01-11 | Broadcom Corporation | Flexible DMA descriptor support |
US8718087B1 (en) * | 2006-10-24 | 2014-05-06 | Marvell International Ltd. | Processing architecture for passive optical network |
US9178713B1 (en) * | 2006-11-28 | 2015-11-03 | Marvell International Ltd. | Optical line termination in a passive optical network |
US7818389B1 (en) * | 2006-12-01 | 2010-10-19 | Marvell International Ltd. | Packet buffer apparatus and method |
GB201315397D0 (en) * | 2013-08-29 | 2013-10-16 | Quixant Plc | Memory controller and memory access method |
-
2019
- 2019-05-16 TW TW108116839A patent/TWI692768B/zh active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117079703A (zh) * | 2023-10-17 | 2023-11-17 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
CN117079703B (zh) * | 2023-10-17 | 2024-02-02 | 紫光同芯微电子有限公司 | 用于测试芯片内嵌存储器的方法及装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
TWI692768B (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430334B2 (en) | Memory circuit and cache circuit configuration | |
US7802157B2 (en) | Test mode for multi-chip integrated circuit packages | |
US11314590B2 (en) | Memory device for detecting a defective memory chip | |
KR101203764B1 (ko) | 메모리 셀프-리프레시 전력을 절약하기 위한 시스템들, 방법들 및 장치들 | |
US7519873B2 (en) | Methods and apparatus for interfacing between test system and memory | |
KR102471416B1 (ko) | 반도체 장치 및 이를 포함하는 메모리 모듈 | |
TWI759884B (zh) | 記憶體裝置、記憶體裝置的操作方法以及記憶體系統 | |
US9063827B2 (en) | Systems and methods for storing and retrieving a defect map in a DRAM component | |
US9442658B2 (en) | Apparatuses and methods including selectively providing a single or separate chip select signals | |
US20150227461A1 (en) | Repairing a memory device | |
US20100096629A1 (en) | Multi-chip module for automatic failure analysis | |
CN101923494A (zh) | 一种存储器控制器验证系统、方法及记分板 | |
US7830730B2 (en) | Semiconductor device | |
TWI692768B (zh) | 能夠驗算記憶體資料之正確性的系統單晶片 | |
US8918685B2 (en) | Test circuit, memory system, and test method of memory system | |
EP4312219A2 (en) | Memory system, operating method of the same, and controller of memory device | |
TWI385525B (zh) | 用以傳送資料遮罩位元至記憶體裝置之系統、方法與裝置 | |
KR102582492B1 (ko) | 메모리와 통합된 로직을 사용한 백그라운드 함수의 수행 기법 | |
JP2018092690A (ja) | 半導体装置および半導体集積システム | |
JP2021043557A (ja) | 半導体装置 | |
CN111984456B (zh) | 能够验算存储器数据的正确性的系统单芯片 | |
KR20150006167A (ko) | 반도체 시스템 및 그 리페어 방법 | |
KR100612127B1 (ko) | 메모리 모듈 테스트 방법 및 이를 위한 메모리 모듈의 허브 | |
JP5532059B2 (ja) | 半導体装置 | |
JPH10207786A (ja) | メモリシステム |