<kbd id="ia2e8"><input id="ia2e8"></input></kbd><u id="ia2e8"></u>
  • <blockquote id="ia2e8"></blockquote>
  • <blockquote id="ia2e8"></blockquote>
  • <samp id="ia2e8"><label id="ia2e8"></label></samp>
  • 存算一體數據讀取譯碼電路以及存算一體存儲器的制作方法

    文檔序號:26091240發布日期:2021-07-30 17:59
    存算一體數據讀取譯碼電路以及存算一體存儲器的制作方法

    本發明涉及半導體集成電路領域,尤其涉及一種存算一體數據讀取譯碼電路以及存算一體存儲器。



    背景技術:

    存儲器(memory)是現代信息技術中用于保存信息的記憶設備,其主要功能是存儲程序和各種數據。在存儲器的可靠性中,存入數據和讀取數據過程中,為了對抗傳輸中的噪音和衰減以及人為干擾,使得經邏輯和存儲后的碼與原碼之間存在差異,出現誤碼。為了保障數據存儲可靠性,在傳統的馮洛伊曼結構中,通常需要特定的編碼電路和讀電路,以對待儲存的數據進行編碼生成校驗碼,然后通過寫電路寫入到對應的待儲存的區域。在數據讀出時,通過讀模塊讀出之后,通過讀電路進行譯碼檢驗正確之后再輸出。在線性解碼過程中,讀取存儲器中含有信息碼元和監督碼元,用編碼規則檢驗解碼出來的監督碼元,從解碼過程中發現錯誤或糾正錯誤。如果沒有錯誤,則原規則一定滿足,否則就不滿足。當不能滿足時,在可糾錯能力之內按一定的規則確定錯誤所在的位置,并予以糾正。如圖1所示,輸入數據(待存數據)通過編碼模塊根據特定的編碼算法對輸入數據進行編碼,然后把編碼后的信息位和校驗位通過寫入模塊寫入存儲器當中;當讀取數據時,通過讀模塊存存儲器中讀出數據,被編碼的信息位和校驗位被譯碼模塊根據對等的譯碼算法進行解碼,恢復出正確的原文再輸出。如圖2所示,在信息碼中通過編碼邏輯增加一定數量的多余碼元(稱為監督碼元),如校驗碼等,使它們經過編碼滿足一定的約束關系,這樣由信息碼元和監督碼元共同組成一個由存儲器存儲的碼字,來提高抗干擾能力以及糾錯能力,實現可靠存儲和存取。

    在傳統的馮洛伊曼的計算機體系結構中,中央處理器和存儲器分離。為了實現生成對應的編碼邏輯和譯碼邏輯,需要通過專門的編碼器將原碼字按照某種規則變成有一定剩余度的碼字和對應的譯碼器將對應的剩余度的碼字還原成原碼字,并驗證其正確性。原碼字按某種規則使每個碼字的碼元之間有一定的關系變成一定剩余度的碼字。剩余的碼字再通過專門的解碼器,按照同樣的規則,解碼還原成之前的原碼,并判斷其正確性,如果一旦傳輸過程中發生差錯,則信息碼元與校驗碼元之間的關系將受到破壞,從而可以發現錯誤,乃至糾正錯誤。

    現有數據編碼存儲方法和譯碼由于在讀模塊和寫模塊的基礎上,還需要設置編碼模塊和譯碼模塊或者編解碼一體模塊對數據進行編碼和譯碼,編碼模塊和譯碼模塊增加了存儲器的面積,不能適應小型化集成化的需求。在編碼的時候,需要花費大量的時間進行數據的搬移到編碼模塊中,同時數據還需要串聯的異或操作,并且將輸出的結果重新寫入到存儲器中,在時間和功耗上需求高能耗和高延時具有較大的成本,導致低能效。在譯碼的時候,同時也需要將數據花費大量的時間和功耗再次搬移到譯碼模塊中,進行串聯的異或操作,恢復正確的數據的輸出,從而導致低能效。

    舉例來說,首先原始數據需要經過特有的編碼裝置實現對應的編碼串聯或者大面積的并列的生成,從而數據串聯的帶來大延時和低能效。然后數據需要經過特有的解碼裝置實現對應解碼。編解碼模塊會增加存儲器芯片不必要的面積(成本);同時編解碼算法的運算過程會增加數據訪存的時延;此外,編解碼模塊一旦確定,對應的編解碼算法通常就固定,難以更改,缺乏靈活性。這樣的問題僅依靠傳統硅工藝尺寸的縮小是不能解決問題。



    技術實現要素:

    針對現有技術中的問題,本發明提供一種存算一體數據讀取譯碼電路以及存算一體存儲器,能夠至少部分地解決現有技術中存在的問題。

    為了實現上述目的,本發明采用如下技術方案:

    第一方面,提供一種存算一體數據讀取譯碼電路,包括:預充電感應放大器以及與所述預充電感應放大器連接的邏輯單元;

    其中,所述預充電感應放大器以及所述邏輯單元均與一非易失性存儲單元以及參考存儲單元連接;所述邏輯單元用于對所述非易失性存儲單元中的存儲值進行邏輯運算,所述預充電感應放大器用于輸出對應的正反邏輯運算結果。

    進一步地,所述預充電感應放大器包括:第一pmos晶體管、第二pmos晶體管、第三pmos晶體管、第四pmos晶體管、第一nmos晶體管、第二nmos晶體管以及第五nmos晶體管;

    所述第一pmos晶體管、所述第四pmos晶體管以及所述第五nmos晶體管的柵極接入時鐘信號,所述第一pmos晶體管、所述第二pmos晶體管、所述第三pmos晶體管以及所述第四pmos晶體管的漏極均連接電源,所述第一pmos晶體管的源極、所述第二pmos晶體管的源極、所述第一nmos晶體管的漏極、所述第三pmos晶體管的柵極、所述第二nmos晶體管的柵極連接在一起,作為反輸出端;所述第三pmos晶體管的源極、所述第四pmos晶體管的源極、所述第二nmos晶體管的漏極、所述第二pmos晶體管的柵極、所述第一nmos晶體管的柵極連接在一起,作為正輸出端;所述第一nmos晶體管的源極以及所述第二nmos晶體管的源極分別連接所述邏輯運算單元的兩個輸出端;所述第五nmos晶體管的漏極連接所述非易失性存儲單元的位線以及所述參考存儲單元的位線,所述第五nmos晶體管的源極接地。

    進一步地,所述邏輯單元為異或邏輯單元,包括:第五pmos晶體管、第六pmos晶體管、第三nmos晶體管、第四nmos晶體管;

    所述第五pmos晶體管、所述第六pmos晶體管、所述第三nmos晶體管、所述第四nmos晶體管的柵極連接在一起,作為邏輯控制端,用于輸入邏輯控制信號;

    所述第五pmos晶體管的漏極、所述第三nmos晶體管的漏極、所述第一nmos晶體管的源極連接在一起,所述第六pmos晶體管的漏極、所述第四nmos晶體管的漏極、所述第二nmos晶體管的源極連接在一起;所述第五pmos晶體管的源極、所述第四nmos晶體管的源極與所述非易失性存儲單元的源極線連接,所述第六pmos晶體管的源極、所述第三nmos晶體管的源極與所述參考存儲單元的源極線連接。

    進一步地,所述邏輯單元為與邏輯單元,包括:第八nmos晶體管;

    所述第八nmos晶體管的柵極作為邏輯控制端,用于輸入邏輯控制信號;所述第八nmos晶體管的源極連接所述第一nmos晶體管的源極;所述第八nmos晶體管的漏極連接所述非易失性存儲單元的源極線連接,所述第二nmos晶體管的源極連接所述參考存儲單元的源極線連接。

    進一步地,所述邏輯單元為或邏輯單元,包括:第九nmos晶體管;

    所述第九nmos晶體管的柵極作為邏輯控制端,用于輸入邏輯控制信號;所述第九nmos晶體管的源極連接所述第二nmos晶體管的源極;所述第九nmos晶體管的漏極連接所述參考存儲單元的源極線連接,所述第一nmos晶體管的源極連接所述非易失性存儲單元的源極線連接。

    進一步地,所述非易失性存儲單元為1t1r存儲單元結構。

    第二方面,提供一種存算一體存儲器,包括:用于接收輸入數據的寫入編碼電路、連接所述寫入編碼電路的存儲單元陣列、連接所述存儲單元陣列的如上述的存算一體數據讀取譯碼電路;

    所述存算一體數據讀取譯碼電路與所述寫入編碼電路連接;所述存算一體數據讀取譯碼電路用于對存儲單元中存儲的數據進行讀取譯碼。

    進一步地,所述存儲單元陣列包括:至少一個參考存儲單元列以及多個非易失性存儲單元列,

    所述參考存儲單元列提供一列參考信號,用來比較參考判斷數據的大小。

    進一步地,碼字中的信息碼元和監督碼元分開存儲在多個非易失性存儲單元列中。

    進一步地,將每行非易失性存儲單元中左邊的非易失性存儲單元存儲的n位信息位邏輯運算生成監督碼元存儲在右邊k位非易失性存儲單元中。

    本發明提供的存算一體數據讀取譯碼電路以及存算一體存儲器,存算一體數據讀取譯碼電路包括:預充電感應放大器以及與所述預充電感應放大器連接的邏輯單元;其中,所述預充電感應放大器以及所述邏輯單元均與一非易失性存儲單元以及參考存儲單元連接;所述邏輯單元用于對所述非易失性存儲單元中的存儲值進行邏輯運算,所述預充電感應放大器用于輸出對應的正反邏輯運算結果,實現數據讀取譯碼一體操作,基于存內計算原理直接利用非易失存儲器的存儲單元對數據進行編碼和解碼,減少存儲器的面積,適應小型化集成化的需求。

    為讓本發明的上述和其他目的、特征和優點能更明顯易懂,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。

    附圖說明

    為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本申請的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。在附圖中:

    圖1為現有存儲器架構;

    圖2示出了存儲器中碼字的組成;

    圖3示出了本發明實施例中存算一體數據讀取譯碼電路的模塊圖;

    圖4示出了本發明實施例中存算一體數據讀取譯碼電路的電路圖一;

    圖5示出了本發明實施例中存算一體數據讀取譯碼電路的電路圖二;

    圖6示出了本發明實施例中存算一體數據讀取譯碼電路的電路圖三;

    圖7示出了本發明實施例中存算一體數據讀取譯碼電路的電路圖四;

    圖8示出了本發明實施例中非易失性存儲單元的結構;

    圖9示出了本發明實施例中對數據進行編碼存儲的計算原理。

    圖10示出了本發明實施例中存算一體存儲器的架構;

    圖11示出了本發明實施例中非易失性存儲單元列的存儲結構;

    圖12示出了本發明實施例中1t1r存儲單元陣列結構;

    圖13示出了本發明實施例中數據寫入編碼方法的流程圖;

    圖14示出了本發明實施例中數據讀取譯碼方法的流程圖;

    圖15示出了本發明實施例中對應的寫邏輯的真值表。

    具體實施方式

    為了使本技術領域的人員更好地理解本申請方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分的實施例,而不是全部的實施例?;诒旧暾堉械膶嵤├?,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本申請保護的范圍。

    以下在實施方式中詳細敘述本發明的詳細特征以及優點,其內容足以使任何本領域技術人員,了解本發明的技術內容并據以實施,且根據本說明書所揭露的內容、權利要求及圖式,任何本領域技術人員可輕易地理解本發明相關的目的及優點。以下的實施例進一步詳細說明本發明的觀點,但非以任何觀點限制本發明的范疇。

    需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結合實施例來詳細說明本申請。

    圖3示出了本發明實施例中存算一體數據讀取譯碼電路的模塊圖;如圖3所示,該存算一體數據讀取譯碼電路包括:預充電感應放大器以及與所述預充電感應放大器連接的邏輯單元;

    其中,所述預充電感應放大器以及所述邏輯單元均與一非易失性存儲單元以及參考存儲單元連接;所述邏輯單元用于對所述非易失性存儲單元中的存儲值進行邏輯運算,所述預充電感應放大器用于輸出對應的正反邏輯運算結果。

    通過采用上述技術方案,實現數據讀取譯碼一體操作,基于存內計算原理直接利用非易失存儲器的存儲單元對數據進行編碼和解碼,減少存儲器的面積,適應小型化集成化的需求。

    在一個可選的實施例中,參見圖4至圖6,該預充電感應放大器包括:第一pmos晶體管p1、第二pmos晶體管p2、第三pmos晶體管p3、第四pmos晶體管p4、第一nmos晶體管n1、第二nmos晶體管n2以及第五nmos晶體管n5;

    所述第一pmos晶體管、所述第四pmos晶體管以及所述第五nmos晶體管的柵極接入時鐘信號,所述第一pmos晶體管、所述第二pmos晶體管、所述第三pmos晶體管以及所述第四pmos晶體管的漏極均連接電源,所述第一pmos晶體管的源極、所述第二pmos晶體管的源極、所述第一nmos晶體管的漏極、所述第三pmos晶體管的柵極、所述第二nmos晶體管的柵極連接在一起,作為反輸出端;所述第三pmos晶體管的源極、所述第四pmos晶體管的源極、所述第二nmos晶體管的漏極、所述第二pmos晶體管的柵極、所述第一nmos晶體管的柵極連接在一起,作為正輸出端;所述第一nmos晶體管的源極以及所述第二nmos晶體管的源極分別連接所述邏輯運算單元的兩個輸出端;所述第五nmos晶體管的漏極連接所述非易失性存儲單元的位線以及所述參考存儲單元的位線,所述第五nmos晶體管的源極接地。

    值得說明的是,非易失性存儲單元包括第一電阻r1以及第七nmos晶體管n7,參考存儲單元包括參考電阻r0以及第六nmos晶體管,第六nmos晶體管以及第七nmos晶體管的柵極用于施加訪問控制信號a,漏極/源極作為位線,另一端連接單元中的電阻的一端,單元中電阻的另一端連接第五nmos晶體管的漏極。

    通過采用上述預充電感應放大器獲取對應的存儲器的值,靈活可靠。

    值得說明的是,在實際應用中,根據應用場景所需要的運算,選擇邏輯單元的運算邏輯。

    在一個可選的實施例中,參見圖4,該邏輯單元為異或邏輯單元,包括:第五pmos晶體管p5、第六pmos晶體管p6、第三nmos晶體管n3、第四nmos晶體管n4;

    所述第五pmos晶體管、所述第六pmos晶體管、所述第三nmos晶體管、所述第四nmos晶體管的柵極連接在一起,作為邏輯控制端,用于輸入邏輯控制信號;

    所述第五pmos晶體管的漏極、所述第三nmos晶體管的漏極、所述第一nmos晶體管的源極連接在一起,所述第六pmos晶體管的漏極、所述第四nmos晶體管的漏極、所述第二nmos晶體管的源極連接在一起;所述第五pmos晶體管的源極、所述第四nmos晶體管的源極與所述非易失性存儲單元的源極線連接,所述第六pmos晶體管的源極、所述第三nmos晶體管的源極與所述參考存儲單元的源極線連接。

    通過采用上述電路,高效實現讀取解碼時的邏輯異或運算。

    在一個可選的實施例中,參見圖5,該邏輯單元為與邏輯單元,包括:第八nmos晶體管n8;

    所述第八nmos晶體管的柵極作為邏輯控制端,用于輸入邏輯控制信號;所述第八nmos晶體管的源極連接所述第一nmos晶體管的源極;所述第八nmos晶體管的漏極連接所述非易失性存儲單元的源極線連接,所述第二nmos晶體管的源極連接所述參考存儲單元的源極線連接。

    在一個可選的實施例中,參見圖6,該邏輯單元為或邏輯單元,包括:第九nmos晶體管;

    所述第九nmos晶體管的柵極作為邏輯控制端,用于輸入邏輯控制信號;所述第九nmos晶體管的源極連接所述第二nmos晶體管的源極;所述第九nmos晶體管的漏極連接所述參考存儲單元的源極線連接,所述第一nmos晶體管的源極連接所述非易失性存儲單元的源極線連接。

    在一個可選的實施例中,為了提高運算精度,該邏輯單元可以由多個邏輯單元疊加構成,參見圖7,示出了一種高精度的異或邏輯單元的電路結構。

    在一個可選的實施例中,非易失性存儲單元為1t1r存儲單元結構,參見圖8,一個晶體管(記為t)和一個非易失性存儲器件(記為r)。其中,非易失性存儲器件r的阻值可以有兩種狀態,一種為高阻狀態,一種為低阻狀態,分別代表數據比特“0”和“1”,或者反之。對于晶體管的柵極接字線(wl),漏極經非易失性存儲器件后接位線(bl),源極接源線(sl),源線一般接地。在邏輯電路中,通常具有三個信號:(1)訪問控制信號(記為a,通常從字線施加),用于對存儲單元進行訪問控制;(2)當前已存儲的數據(記為bi);(3)寫入信號(記為c,通常從位線施加,可以是電流或電壓)。根據這三個信號,存儲單元下一個存儲的數據(記為bi+1)可以表達為基于表達式,如圖9所示,寫入信號c可以看作邏輯功能選擇信號,決定了邏輯計算的功能函數,如當c等于“0”,“1”,以及(當前存儲器的取反)時,存儲單元下一個存儲的數據bi+1分別等于(“與”邏輯),a+bi(“或”邏輯)以及a⊕bi(“異或”邏輯)。最終計算的結果(即bi+1)直接存儲在存儲單元內。其中與當前存儲器的值編碼運算的另一個值為存儲單元的字線a。其邏輯計算操作與存儲器的正常讀寫操作基本一致。

    本發明實施例還提供了一種存算一體存儲器,參見圖10,包括:用于接收輸入數據并將數據寫入存儲單元陣列的寫入編碼電路、連接所述寫入編碼電路的存儲單元陣列、連接所述存儲單元陣列的如上述的存算一體數據讀取譯碼電路;

    所述存算一體數據讀取譯碼電路與所述寫入編碼電路連接;所述存算一體數據讀取譯碼電路用于對存儲單元中存儲的數據進行讀取譯碼。

    通過采用上述技術方案,實現存算一體的同時,實現數據讀取與譯碼一體,基于存內計算原理直接利用非易失存儲器的存儲單元對數據進行編碼和解碼,減少存儲器的面積,適應小型化集成化的需求。

    通過采用非易失存儲陣列,實現并行數據編碼存儲、并行數據解碼,實現數據可靠性存儲。通過向一存儲單元修改寫入端的寫入電路和讀取的電路來實現數據的邊編碼邊存儲的操作。通過修改對應的存儲單元中需要譯碼的單元的讀取電路和寫入電路實現數據的譯碼,檢查和糾錯。通過數據讀寫過程即可實現,不需要單獨的編解碼電路,進而減小存儲器的面積。在本專利設定的存儲方式中將對應信息碼元(y1~yn)和監督碼元(z1~zk)成塊地分開存儲,如圖11所示的儲存陣列。這樣方便在可靠性要求不高的情況下,可以直接讀取對應的數據,而不需要將讀取的數據進行重組等操作。

    其中,通過將信息碼元(y1~yn)和監督碼元(z1~zk)成塊地分開存儲,讀取方便。

    整個存儲陣列分布如圖12所示,對應的行地址譯碼和列地址譯碼同常規的存儲器單元一樣。在信息碼元和監督碼元的儲存陣列的存儲分布方法,既分開又相互之間有聯系。通過將每行的左邊的n位信息位邏輯運算生成監督碼元存儲在右邊k位中。因此不同于其他結構,本專利在不考慮可靠性的情況下,可以不經過編碼和譯碼的操作,直接進行存儲和讀取,同時右邊每行的k位也可以進行存儲。在要求考慮存儲器的可靠性的時候,通過生成監督碼元存儲在每行的右邊中,然后在讀取的時候,通過監督碼元校驗輸出的正確性,且具有一定的糾錯能力,從而實現靈活可操作。

    在該電路中,僅僅通過字線、位線、源線將所有的存儲器組織在一起。另外,該非易失性存儲器件配套的行譯碼器、列譯碼器、寫驅動、讀電路和讀邏輯等。在正常的寫驅動中,如圖9所示,利用存儲單元對數據進行編碼存儲的計算原理,通過控制字線a的電壓即可控制晶體管的開閉,從而控制存儲單元的選擇與否。更具體地,當字線a為高電平時,晶體管處于導通狀態,存儲單元可訪問,可對其進行寫操作;而當字線為低電平時,晶體管處于非導通狀態,存儲單元不可訪問,亦不可寫,從而不能進行改變對應的狀態。對于1t1r存儲單元,通常需要施加兩個信號:(1)訪問控制信號(即是行地址譯碼,通常從字線a施加),用于對存儲單元進行訪問控制;(2)寫入信號(通常從位線c施加,可以是電流或電壓形式)。另外,存儲單元中存儲的數據為一個二進制數的一個二進制位。

    繼續參見圖12,最左邊的那一列的器件上增加一列參考信號,用來比較參考判斷數據的大小。對于1t1r的數據獲取,使用非易失性的預充電感應放大器獲取對應的存儲器的值,其中一個為參考信號,另一個為待讀的數據。對于預充電部分,參見圖4,通過p1,p2,p3,p4和n1,n2組成。在初始時刻,p1,p4管子開啟,使得n1,n2的漏極都充滿電。晶體管n5到接地。初始時刻,n5晶體管關閉,由此在整個通路中實現預充電的效果。在讀取時刻,此時通過關閉p1,p4管子,充電結束,開啟n5管子,開始放電。由于r0和r1的電阻不同,導致其兩條通路的放電的速度不同,從而通過p2,p3,n1,n2中能在輸出out處輸出對應的輸出值,并保持不變。預充電感應放大器(pcsa)實現對應的正反數據的輸出。該讀操作的電路具有較好的擴展性,可以在預充電放大器和非易失性存儲器中間增加一級或者多級邏輯電路,可實現對應的與‘&’,或‘|’,同或‘⊙’和異或‘⊕’等邏輯。例如在邏輯處增加4個mosn3,n4和p5,p6管。通過d的不同值使得電流的走向發生改變,例如當d為0的時候,p5,p6導通,n3,n4截止,則對應的電流路徑同原來一樣。當d為1的時候,p5,p6截止,n3,n4導通,則對應的電流路徑同原來相反,電流路徑發生改變。從而輸出不同的值,實現對應的輸出數據d⊕bi操作。由此在讀邏輯電路中實現異或⊕或者同或⊙操作。因此本專利的重點保護的對象之一的是這樣的硬件電路結構實現的對應的異或操作。在原始的正常的預充電的電路中,增加了4個mos管子,就可以實現常規的異或等其他操作的。并且有效的使用在本專利的編碼和譯碼的電路中。

    同時為了使用上述電路較好的完成編碼和譯碼操作。接下來提供一種數據編碼的存儲方法如圖13中。向一存儲單元的寫入端寫入初始運算數據;向所示的存儲單元通過輸入下一個數據在a中與當前數據通過c賦予不同的值實現寫入或通過d輸入實現讀取邏輯輸出運算,其結果可直接寫入到存儲器中;重復上述過程,直到所有的需要參與運算的數據計算完畢。這時候其編碼的結果便在對應的存儲器中。通過在數組內的實現存儲寫入的過程完成各種常規的基礎的邏輯運算,從而實現數據位和校驗位的生成,最大限度地減少來自數組外部的復雜檢驗計算和傳輸過程的開銷。

    同時提供一種數據譯碼方法如圖14中,包括:向需要譯碼操作的存儲單元讀取對應的存儲數據;然后通過寫入邏輯的輸入端輸入對應的數據與下一個存儲單元的數據執行需要的邏輯運算或者輸入到讀取邏輯的輸入端實現譯碼需要的邏輯。經過反復的讀或者寫邏輯,在對應的校驗位即可實現對應的譯碼的結果。從而判斷輸出數據的正確性。如果對應的位的信息不正確,可以根據對應檢驗位的信息,修改對應錯誤位的值。

    值得說明的是,申請人通過對現有的非易失性存儲存儲器的存儲原理和工作流程進行了深入地分析和研究后,通過大量的推理驗證,發現了利用非易失性存儲存儲器的存儲單元能夠實現邏輯計算的特性能夠進行數據編碼存儲和數據譯碼輸出,從而解決現有技術中存在的技術問題。例如在糾錯編碼中,漢明碼作為一個線性的錯誤糾正碼,廣泛的應用在存儲單元和通信等領域中。漢明碼中(7,4)是被廣泛采用之一,它通過增加3個奇偶位將每4位數據編碼成7位,可以有效地糾正由于有噪聲的數據存儲等產生的任何比特的錯誤。如果在數據傳輸過程中確實發生了單位錯誤,其結果能夠指示翻轉位的詳細位置,因此可以隨后進行糾正。下面以圖15中示出的采用本發明實施例提供的數據編碼存儲方法利用存儲單元對數據進行編碼存儲的真值表為例,對本發明實施例提供的以漢明碼為例編解碼存儲方法進行詳細說明。以原碼1011為例來說明編碼存儲,此時d1=1、d2=0、d3=1、d4=1,對在p1編碼時,先將d1、d2、d4的二進制碼相加,結果為偶數2,漢明碼對奇數結果編碼為1,偶數結果為0,因此p1值為0,d1+d3+d4=3,為奇數,那么p2值為1,d2+d3+d4=2,為偶數,p3值為0。這樣漢明碼編碼的結果就是d1d2d3d4p1p2p31011010。

    傳統實現編碼的方式是對于p1,將d1、d2、d4進行組合邏輯兩個兩輸入的異或門串聯形成,或者一個三輸入的異或門得到結果p1,然后寫入到p1對應的存儲器中,但是對應的面積增大。利用圖13中的編碼存儲方法邏輯,首先同時在存儲器d1d2d3d4p1p2p3中存儲對應的d1,d2,d3,d4,d1,d3,d4。然后通過圖9的寫入邏輯實現在p1p2p3的存儲器中,其中寫入的方式實現異或,例如對于p1即是此時bi為d1,則通過讀取獲取bi的值,其輸出的相反值賦值給c,對應的a為下一個需要異或的數據d2。此時再一次實現寫操作,便能實現對應的異或操作其bi+1=d1⊕d2。重復上述操作,此時讀取對應的存儲的結果,并取相反值賦值給c。對應的a為下一個需要異或的數據d4。此時再一次實現寫操作,便能實現對應的異或操作其bi+2=d1⊕d2⊕d4。因此通過三次寫的邏輯操作,完成三個數的異或操作,并且存儲在對應的存儲器中。以此內推同時可以并列的實現p2和p3的值。這樣便是實現對應的編碼。

    在數據獲取的時候,先對原始數據進行譯碼檢查,即是需要判斷d1⊕d2⊕d4⊕p1,d1⊕d3⊕d4⊕p2,d2⊕d3⊕d4⊕p3,對應的值是否為0。在傳統的實現中,需要將數據讀取出來經過3個串行的兩輸入的異或門,或者4輸入的一個大的異或門。本專利中通過上述圖11的讀邏輯,對輸出數據的檢查,對于存儲器中存儲的對應的d1d2d3d4p1p2p3,通過串連的方式實現如圖4所示,先讀取d1的值,然后將d1的值輸入到d2的輸入d口中實現d1⊕d2,再通過d2的輸出到d4的輸入d口實現d1⊕d2⊕d4,最后通過d4口的輸出輸入到p1的輸入口d中實現d1⊕d2⊕d4⊕p1,從而獲得對應檢查的輸出。同理通過以此類推的方式獲得p2和p3的檢查,通過p1p2p3的值判斷是否為0,則通過對應的數值指定對應的輸出使用反輸出獲取對應的值。即實現糾正的結果。

    例如通過編碼實現上述1011010,因為錯誤導致數據為1010010,既是對應的數據的d4錯誤,那么則讀取出來的值p1p2p3變為111,則是指向的d4的值應該為取反,則就在讀取的時候使用對應的反輸出即可。

    為解決上述傳統編解碼存儲器的局限性,本發明提供一種基于存內計算的編解碼存儲器,其直接利用存內計算對數據進行編解碼,不需要額外的編解碼模塊。

    基于如上的存內計算,可以實現編解碼存儲。編碼儲存過程中,既可以根據寫實現對應的編碼需要的邏輯,也可以結合讀實現對應的邏輯運算。這樣一來,可以選擇任意的操作讀寫(即讀寫運算的組合),例如通過在最初編碼的過程中,最開始d1d2d3d4p1p2p3中寫入數據d1,d2,d3,d4,d4,d1,d2;通過讀邏輯在d1和d2中實現d1⊕d2,在d3和d4中實現d3⊕d4;最后通過讀輸出的值直接輸入到寫邏輯中在p1中實現d1⊕d2⊕d4,在p2中實現d1⊕d3⊕d4,p3中實現d2⊕d3⊕d4。除此之外還有對應的讀和寫還能實現其他的與或非等邏輯,能組合成其他復雜的操作。

    可以看出,利用本申請中的技術,基于存內計算的讀和寫的編解碼存儲器,不需要額外的編解碼模塊,通過正常的數據讀寫過程即可實現,且靈活性增加。另外,由于摒棄了現有技術中的編解碼算法的運算過程,采用邊存儲邊編碼的方式對數據進行編碼存儲,或者,采用邊讀取邊譯碼的方式對數據進行譯碼,進而能夠降低數據訪存的時延,提高了數據編解碼存儲速度。

    對于非易失性存儲單元可以采用例如阻變存儲器(reram)、自旋轉移矩磁性隨機存儲器(stt-mram)、自旋軌道扭矩磁性隨機存儲器(sot-mram)、相變存儲器(pcram)、熱輔助開關(tas)、磁場感應開關(mfis)、電壓控制的磁各向異性(vcma)等以及對應器件的組合,例如vcma-sot、vcma-stt、sot和stt,包括多個閃存(flash)單元等非易失性的存儲器件。

    其中線性編碼中包括:hamming碼、elias卷積碼、bch碼、rs碼、pgz譯碼、ldpc(lowdensityparitycheck,低密度奇偶校驗)碼、b-m譯碼、rrns碼、viterbi、chase氏譯碼、map、bcm分組編碼、wolf格狀分組碼、padovani恒包絡相位/頻率編碼調制、tcm格狀編碼、simonmtcm多重格狀編碼、多維星座tcm碼、sova算法碼、max-log-map算法碼、turbo碼、pyndiah乘積碼、log-map算法、turbobch碼、turbohamming碼、空-時卷格狀碼、alamouti空時分組碼、刪除型turbo碼等。

    儲存單元結構中,除了1t1r存儲單元,同時也適用于對應的xtxr,x為對應的一個或者多個存儲單元。其中,非易失性存儲器件的阻值可以有兩種狀態,一種為高阻狀態,一種為低阻狀態,分別代表數據比特“0”和“1”,或者反之。而對于多個r中,只要能夠區別表示數據比特,都在本專利覆蓋范圍內,例如對于兩個r中,使用01表示‘1’,10表示‘0’?;蛘叻粗?,或者00表示‘1’,11表示‘0’,或者反之,皆在本專利覆蓋范圍之內。

    在實現邏輯的過程中,因為非易失性器件讀取的時候有邏輯實現且輸出包括其結果和相反值,不需要額外的反相器。同時寫入時候的也能實現基本的邏輯。本專利也覆蓋先通過讀實現部分邏輯或者寫實現部分邏輯,交叉,次序調整等組合方式實現最終的運算。例如在譯碼的時候,先讀d1和d3,通過讀邏輯同時獲取d1⊕d2,d3⊕d4,然后再通過讀獲取d1⊕d2⊕p1,d3⊕d4⊕p2,d3⊕d4⊕p3,既是將對應的輸出同步的實現輸入到另外三個中。然后將此輸入d4,d1和d2,就能同步得到d1⊕d2⊕p1⊕d4,d3⊕d4⊕p2⊕d1,d3⊕d4⊕p3⊕d2。

    同樣可以通過增加邏輯樹圖7所示在p1p2p3中,將對應的d的異或的層數增加,則可以在對應的存儲其中分別讀取d1d2d3d4,然后將他們分別輸入到p1p2p3的d端口中,則可以一次性獲得多個異或值。同理利用此結構,修改編碼時候的邏輯,在最初存儲中d1d2d3d4p1p2p3寫入d1d2d3d4d4d1d2,然后通過讀取獲取d1d2d3d4,分別輸入到p1p2p3中的d口中,就能一次性p1中輸出d1⊕d2⊕d4的值,然后寫入到p1中。皆是本專利的保護范圍。既是由上述編碼的寫邏輯過程中,p1的生成的過程中在讀取的邏輯中,獲得對應的d2和d4異或的值。然后將結果寫入到對應的存儲器中,實現兩步寫入的操作實現。也可以在對應的多層中圖13所示,將p1p2p3初始化為0,那么對應多層的邏輯中,通過讀邏輯則就是求得的實現d1⊕d2⊕d4⊕0,d1⊕d3⊕d4⊕0,d2⊕d3⊕d4⊕0,則就是d1⊕d2⊕d4,d1⊕d3⊕d4,d2⊕d3⊕d4,然后將對應的輸出寫到p1p2p3中。本專利中保護所有的經過讀寫組合實現的邏輯方式。

    由于摒棄了現有技術中的編解碼算法的運算過程,采用邊存儲邊編碼的方式對數據進行編碼存儲,進而能夠降低數據訪存的時延,提高了數據編碼存儲速度。再者,本發明實施例利用存內計算原理對數據進行編解碼,編碼過程靈活,更改方便。

    本發明中應用了具體實施例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發明的限制。

    還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。

    本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于系統實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。

    以上所述僅是本發明的較佳實施例而已,并非對本發明做任何形式上的限制,雖然本發明已以較佳實施例揭露如上,然而并非用以限定本發明,任何本領域技術人員,在不脫離本發明技術方案的范圍內,當可利用上述揭示的技術內容做出些許更動或修飾為等同變化的等效實施例,但凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化與修飾,均仍屬于本發明技術方案的范圍內。

    再多了解一些
    當前第1頁1 2 
    網友詢問留言 已有0條留言
    • 還沒有人留言評論。精彩留言會獲得點贊!
    1
    中文字幕一区在线观看视频_国产偷v国产偷v_西西人体44rt net毛最多_伊人久久大香线蕉综合网