專利名稱:存儲器宏配置及其方法
技術領域:
本公開基本上涉及半導體結構以及方法,更具體地,涉及存儲器宏。
背景技術:
許多集成電路(比如專用集成電路,也稱為ASIC)包括嵌入式動態隨機存取存儲器(eDRAM)塊(也稱為eDRAM宏)。通過將DRAM嵌入到帶有數字信號處理器(DSP)或者其他專用硬件的集成電路(IC)芯片上,芯片設計者避免了 DSP或硬件與單獨的存儲器芯片之間的大延遲。相比于使用單獨的DRAM芯片,eDRAM能提高數據帶寬并降低功耗。使用eDRAM 還能夠降低產品的整體器件封裝。因此,eDRAM在種類繁多的電子器件中越來越普遍,包括但不限于,移動電話、智能手機、MP3播放器、以及便攜式筆記本電腦。其中包括eDRAM的ASIC環境可以具有各種系統總線,以及各種總線帶寬。在設計產品時,IC設計者會尋求將eDRAM的帶寬(輸入輸出端子的數量,或者I/O的數量)與系統總線的帶寬相匹配。產生帶有不同的eDRAM宏帶寬的不同的產品配置的一種方式是使用編譯器的軟件解決方案。然而,這通常必須要提供多個與不同的期望帶寬相對應的eDRAM配置,因而會帶來高額成本。為eDRAM宏改變I/O的數量的另一種方法是通過毗鄰(abutment)方式來包含多個宏。例如,為了將給定的宏的帶寬加倍,可以包括進兩個宏而不是一個。當需要較寬的數據總線的時候,這種方式增加了存儲器的物理尺寸。這還會使eDRAM宏所用的面積加倍。
發明內容
本發明提出了一種存儲器宏,包括多個存儲器陣列段,每個存儲器陣列段均具有預定數量的數據輸入端和輸出端;段解碼器電路,配置為接收指示存儲器分區數量的第一值,其中,存儲器陣列段將被分割,并且基于第一值,輸出多個信號,用于選擇性地激活將要被存取的多個存儲器陣列段中的一個或者多個;以及多個輸出端驅動器,與段解碼器電路相連接,并且與相應的輸出端相連接,多個輸出端驅動器配置為從每個相應的激活的存儲器陣列段的相應輸出端中選擇性地輸出數據。其中,配置多個存儲器陣列段,從而使得沒有被多個信號選擇的存儲器陣列段處于待用狀態。其中,每個輸出端驅動器均包括三態緩沖器。其中,輸出端驅動器配置為響應于多個信號,從而使得與沒有被選擇的多個存儲器陣列段之一的輸出端之一相連接的每個輸出端驅動器均處于高阻抗狀態。其中,存儲器宏是嵌入式動態隨機存取存儲器宏。其中,段解碼器配置為,產生多個信號,從而使得在給定時間所激活的存儲器陣列段的數量等于存儲器陣列段的總數量除以存儲器分區數量。其中,將到分區的給定的一個中的兩個或者更多個段的數據輸入端連接到公共節
點O
其中,將從分區的給定的一個中的兩個或者更多個段的輸出端連接到公共節點。其中,存儲器宏的每個段均接收相應的寫屏蔽輸入端,并且到分區的給定的一個中的每個段的寫屏蔽輸入端均連接到公共節點。其中,段解碼器電路進一步配置為,接收將要進行存取的存儲器宏中的地址的一部分,并且多個信號還基于地址的一部分。本發明還提出了一種集成電路,包括嵌入式存儲器宏,包括多個存儲器陣列段,每個都具有預定數量的數據輸入端和輸出端;段解碼器電路配置為接收指示存儲器分區數量的第一值,其中,存儲器陣列段將被分割,并且基于第一值,輸出多個信號,用于選擇性地激活將要被存取的多個存儲器陣列段中的一個或者多個;以及多個輸出端驅動器, 與段解碼器電路相連接,并且與相應的輸出端相連接,多個輸出端驅動器配置為從每個相應的激活的存儲器陣列段的相應輸出端中選擇性地輸出數據;執行電路,配置為對將要從嵌入式存儲器中取回的數據或者存儲在嵌入式存儲器中的數據執行至少一種算法或者邏輯運算,執行電路具有至少一個第一輸入端和至少一個第一輸出端,其中在至少一個分區中,多個存儲器陣列段的相應的數據輸入端以第一公共節點的方式連接到執行電路的第一輸出端,并且在至少一個分區中,多個存儲器陣列段的相應的輸出端以第二公共節點的方式連接到執行電路的第一輸入端。其中存儲器宏具有I個存儲器陣列段,每個存儲器陣列段均具有J個輸入端和J 個輸出端,執行電路具有K個輸入端和K個輸出端,其中,[(IXJ)/K]是整數,以及執行電路的K個輸出端中的每一個均連接到相應的第一公共節點,第一公共節點還連接到[(I X J)/ K]個相應的不同的存儲器陣列段中的存儲器宏的[(I XJ)/K]個輸入端。其中,[(IXJ)/K]是分區數量。本發明還提供了一種方法,包括提供存儲器宏,存儲器宏具有多個存儲器陣列段,每個存儲器陣列段均具有預定數量的數據輸入端和輸出端;接收指示存儲器分區數量的第一值,其中,存儲器宏中的多個存儲器陣列段將被分割,并且基于第一值,選擇性地激活將要被存取的多個存儲器陣列段中的一個或者多個;以及從每個相應的激活的存儲器陣列段的相應的輸出端選擇性地輸出數據。該方法進一步包括接收在存儲器宏中將要被存取的數據的地址,其中,選擇性地激活的步驟使用所接收到的地址的一部分。其中,存儲器宏具有N個輸入端和輸出端(1/0),其中,N是整數,方法進一步包括 提供具有數量為N/K個(I/O)的電路,其中,K是整數,電路的每個輸出端連接到相應的第一公共節點,電路的每個輸入端連接到相應的第二公共節點;從第一公共節點中的一個向存儲器宏的N/K個數據輸入端提供信號;以及從存儲器宏的N/K個輸出端向第二公共節點中的一個提供信號。其中,將來自第一公共節點中的一個的信號提供給存儲器宏中的N/K個相應的不同段中的輸入端。其中,存儲器宏具有K個寫屏蔽輸入端,方法進一步包括從第三公共節點向存儲器宏中的K個寫屏蔽輸入端提供信號。其中,接收第一值的步驟包括從多個電路路徑接收多個電壓信號,每個電路路徑均單獨地與Vss或者Vdd相連接。
其中,存儲器宏的每個輸出端均具有三態輸出端緩沖器,多個存儲器陣列段中的其他沒有被選擇性地激活的存儲器陣列段的輸出端緩沖器處于高阻抗狀態。
圖IA和圖IB是包括了 eDRAM宏的專用集成電路的框圖。圖2是圖1的eDRAM宏的框圖。圖3A是圖2的段解碼器的框圖。圖:3B是示出了通過圖3A的段解碼器產生的SEGMENT信號值的真值表。圖4示出了以單一分區運行的圖2的eDRAM宏。圖5A-5B示出了以兩個分區運行的圖2的eDRAM宏。圖6A-6D示出了以四個分區運行的圖2的eDRAM宏。圖7A-7H示出了以八個分區運行的圖2的eDRAM宏。圖8A-8D示出了分別在以1個、2個、4個和8個分區運行的時候的圖2的宏的I/ 0配置。圖9是使用圖2的存儲器宏的方法的流程圖。
具體實施例方式這里對于示例性實施例的描述旨在與附圖結合在一起進行閱讀,這些附圖可視作整個書面說明所要參考的部分。圖IA是包括了 eDRAM宏110和專用集成電路120的集成電路(IC)IOO的框圖。 eDRAM宏110具有可重復使用的設計,其可以包括在各種IC中。在一些實施例中,eDRAM宏 110由半導體代工(semiconductor foundry)進行設計,而電路120由無晶圓廠設計公司 (fabless design house)(不具備室內生產設備的半導體供應商)進行設計。在其他實施例中,eDRAM 110和電路120由集成設計制造商(integrated design manufacturer)進行設計。專用集成電路塊120配置為,在將要從eDRAM宏110上取回或者存儲在eDRAM宏 110中的數據上實現至少一種算法或者邏輯操作。電路120可以包括特殊用途的功能和可重復使用的IP單元的任一種組合,與存儲器宏110相分離。所述的宏和方法允許電路120的設計者通過外部連接改變宏配置。例如,原來的存儲器宏尺寸是M個字XN個1/0,或者MXN。在不改變宏110的尺寸(MXN)的情況下, 可以將宏配置為(MXK)個字X (N/K)個1/0,其中,K是整數,并且N/K是分區數量(number of partitions)。K的值的示例包括但不限于,2、4、8、16等等,并且這一系列相應的示例宏配制包括M 個字 XN 個 1/0,(MX2)個字 X (N/2)個 1/0,(MX4)個字 X (N/4)個 1/0,(MX8)個字 X (N/8)個 1/0,(MX 16)個字 X (N/16)個 1/0,等等。eDRAM宏110具有多個可變動的1/0引腳13h_132h以及14^i-142h,可以通過在引腳之間形成連接131a、131b、141a、141b來在宏110的外部重新配置這些引腳。該重新配制可以在自動布局布線(APR)工具中完成,而不會影響宏110的內部設計。因為不管如何配制宏I/O引腳配制,Ara工具都用于將專用集成電路120與宏110相連接,從而在Ara工具中形成硬接線的連接不會增加設計或者制造工藝的復雜度。在圖IA的示例中,為了簡潔,示出了 8個輸入端引腳1323-13 和8個輸出端引腳142a-142h,但是還可以使用任一的I/O數量(例如,256個、288個、512個,等等)。在圖 IA中,專用集成電路120只具有2個輸入端140a、140b以及兩個輸出端130a、130b。在該簡化示例中,AI3R工具形成了將電路輸出端130a與4個宏輸入端132a-132d在公共節點131a 處相連接的線路段(circuit segment)。類似地,APR工具形成(1)將電路輸出端130b與 4個宏輸入端132θ-13 !在公共節點131b上相連接的線路段;(2)將電路輸入端140a與4 個宏輸出端142a-142d在公共節點141a上相連接的線路段;以及(3)將電路輸入端140b 與4個宏輸出端142e-14a!在公共節點141b上相連接的線路段。相同的eDRAM宏110可以被重復用于具有4個輸入端引腳和4個輸出端引腳的專用集成電路,或者具有其他I/O數量的專用集成電路。例如,如圖IB所示,相同的eDRAM宏110被連接到具有4個I/O (輸出端130a-130d 和輸入端140a-140d)的不同的專用集成電路120’。在不改變宏110內部的情況下,將通過布局布線工具制成的連接用于“重新配置”宏110的I/O。這樣,Ara工具產生了線路段,以進行以下連接(1)將輸出端130a與輸入端引腳132a、13 在公共節點131a上相連接;(2)將輸出端130b與輸入端引腳132c、132d在公共節點131b上相連接;(3)將輸出端130c與輸入端引腳13&、132f在公共節點131c上相連接;(4)將輸出端130d與輸入端引腳132g、13 !在公共節點131d上相連接;(5)將輸入端140a與輸出端引腳142^14 在公共節點141a上相連接;(6)將輸入端140b與輸出端引腳142c、142d在公共節點141b上相連接;(7)將輸入端140c與輸出端引腳142e、142f在公共節點141c上相連接;以及(8)將輸入端140d與輸出端引腳14&、142f在公共節點141d上相連接。雖然在圖IA和圖IB中沒有示出,但是通過在宏110的I/O引腳和APR工具中的專用集成電路的I/O引腳之間制造一對一連接點,相同的宏110也可以重復用于配置為8 個I/O的專用集成電路。在一些實施例中,eDRAM宏110具有分段的I/O塊。段包括作為單個組一起進行控制的I/O的最小數量。存儲器宏110可以具有許多段。根據所選配置,數據輸入端被跨段(across segments)連接在一起,數據輸出端被跨段連接在一起。配置的類型(分區數量)通過下面所述的配置輸入端引腳上的信號進行確定。在宏外面(例如,通過布局布線工具)制造外部連接(電線)并且外部連接與所選配置相對應。在一些實施例中,在每段中都提供輸出端驅動器,可以根據控制信號將每段設置為使用模式(高電壓或者低電壓)或者高阻抗(hi-Z)模式。如果2段、4段或者8段的輸出端通過電線連接在一起,則只有所選段的輸出端緩沖器驅動公共節點,而其他未選段的輸出端驅動器則處于高阻抗模式。給定的公共輸出端節點之一通過單個段的驅動器在任一時間進行驅動;也就是說,不同段的兩個輸出端驅動器不會同時驅動一個驅動節點(或者電路120的輸入端引腳)。在一些實施例中,如果給定的段沒有被選擇,則與該段相對應的存儲器陣列的部分可以選擇性地處于待用狀態以節省功耗。段的選擇是基于外部提供的將要被存取的數據的地址而動態地完成的。圖2是適合用作eDRAM的存儲器宏110’的示例的框圖。該存儲器宏110’與圖IA和圖IB中的宏110類似,除了宏110,配置為觀8個I/O引腳(即,288個數據輸入端和288個數據輸出端)。數據輸入端表示為DIN(O). . . DIN(287),而數據輸出端表示為 DOUT(O)... DOUT (287) 0 宏 110,被分為 8 個存儲器段 150a_150h,表示為段(0)...段(7)。 每個存儲器陣列段都具有數據輸入端和數據輸出端的預定最小數量,數據輸入端和數據輸出端作為一個組進行共同控制。只示出了 8個段中的2個段,段150a和段150h ;另外6個段配置為與段150a和段150h的方式相同。段(0) 150a包括輸入端DIN(O)... DIN(35)和輸出端DOUT (0). . . DOUT (35)。每個連續的段包括下一組36個1/0,直到段(7) 150h,其具有輸入端DINQ52). . .DIM287)和輸出端DOUT (252). . . DOUT (觀7)。在該示例中,宏110,的總尺寸是7 (即,73728位),對應于每段9216位,但是其他實施例包括了更大或者更小的宏ο電路120具有至少一個第一輸入端引腳和至少一個第一輸出端引腳,其中存儲器宏110’的至少一個分區中的多個存儲器陣列段的相應數據輸入端經由第一公共節點,與電路120的第一輸出端相連接,至少一個分區中的多個存儲器陣列段的相應輸出端經由第二公共節點,與電路的第一輸入端相連接。在解釋宏110’中的其他電路之前,要參考圖4到圖7H,從而分別解釋存儲器陣列段150a-150h是如何連同具有1、2、4和8個分區的各種專用集成電路進行使用的。參考圖4,所有的8個段(從0到7進行編號)都是使用的。宏110’用作具有觀8 位的總線帶寬的單個大分區。在單個讀周期中,從8個段中的每個中讀取36位,一共288 位。參考圖5A-5B,示出了相同的宏110’,其被配置為用于具有144個I/O引腳的專用集成電路。在該模式中,宏110’以2個分區運行。在單個讀周期期間,只有一個分區被讀取。對于寫操作來說同樣如此。每個分區都具有144位的帶寬。在單個讀周期中,只從(8 個中的)4個段中的每個中讀取36位,一共144位。因此,當第一分區在使用時(圖5A), 段0、2、4和6在使用,而段1、3、5和7待用,通過陰影(shading)示出。相反,當第二分區在使用時(圖5B),段0、2、4和6待用,通過陰影示出,而段1、3、5和7在使用。參考圖6A-6D,示出了相同的宏110’,其被配置為用于具有72個I/O引腳的專用集成電路。在該模式中,宏110’以4個分區運行。在單個讀周期期間,只有一個分區被讀取。對于寫操作來說同樣如此。每個分區都具有72位的帶寬。在單個讀周期中,只從(8 個中的)2個段中的每個讀取36位,一共72位。因此,當第一分區在使用時(圖6A),段0 和4在使用,而段1-3和5-7待用,通過陰影示出。當第二分區在使用時(圖6B),段0、2-4 和6-7待用,通過陰影示出,而段1和5在使用。當第三分區在使用時(圖6C),段0-1、3-5 和7待用,通過陰影示出,而段2和6在使用。當第四分區在使用時(圖6D),段0-2和4-6 待用,通過陰影示出,而段3和7在使用。
參考圖7A-7H,示出了相同的宏110’,其被配置為用于具有36個I/O引腳的專用集成電路。在該模式中,宏110’以8個分區運行。在單個讀周期期間,只有一個分區被讀取。對于寫操作來說同樣如此。每個分區都具有36位的帶寬。在單個讀周期中,只從(8 個中的)1個段中讀取36位,一共36位。因此,當第一分區在使用時(圖7A),段0在使用, 而段1-7待用,通過陰影示出。當第二分區在使用時(圖7B),段0和2-7待用,通過陰影示出,而段1在使用。當第三分區在使用時(圖7C),段0-1和3-7待用,通過陰影示出,而段2在使用。當第四分區在使用時(圖7D),段0-2和4-7待用,通過陰影示出,而段3在使用。當第五分區在使用時(圖7E),段0-3、5-7待用,通過陰影示出,而段4在使用。當第六分區在使用時(圖7F),段0-4和6-7待用,通過陰影示出,而段5在使用。當第七分區在使用時(圖7G),段0-5和7待用,通過陰影示出,而段6在使用。當第八分區在使用時(圖 7H),段0-6待用,通過陰影示出,而段7在使用。再次參考圖2,除了數據引腳DIN[287:0] ^P DOUT[287:0]之外,宏110’還具有以下控制輸入端WM[7:0]、A[15:0]以及FLEXIO[1:0]。對于任一給定的IC,FLEXI0[1:0]是在布局布線工藝期間通過將兩個FLEXIO輸入端引腳與Vdd或者Vss相連接的硬接線連接,以分別將每個針編程(program)為1或者0。也就是說,雖然宏設計能夠重復用于各種分區數量,但是存儲器分區的數量對于任一給定的IC來說在布局布線工藝期間是固定的。DIN、 DOUT, WM和A是到宏110’的動態輸入端,而其值通過電路120在運行期間確定。FLEXI0[1:0]輸入端引腳接收了示出分區數量的2位。在圖2的示例中,有4種運行模式,分別對應于1、2、4或者8個分區。FLEXI0[1:0]的2位的各種值對應于這4種模式。表1示出了 FLEXI0[1:0]的值和對應的分區數量。表 權利要求
1.一種存儲器宏,包括多個存儲器陣列段,每個所述存儲器陣列段均具有預定數量的數據輸入端和輸出端; 段解碼器電路,配置為接收指示存儲器分區數量的第一值,其中,所述存儲器陣列段將被分割,并且基于所述第一值,輸出多個信號,用于選擇性地激活將要被存取的所述多個存儲器陣列段中的一個或者多個;以及多個輸出端驅動器,與所述段解碼器電路相連接,并且與相應的輸出端相連接,所述多個輸出端驅動器配置為從每個相應的激活的存儲器陣列段的相應輸出端中選擇性地輸出數據。
2.根據權利要求1所述的存儲器宏,其中,配置所述多個存儲器陣列段,從而使得沒有被所述多個信號選擇的存儲器陣列段處于待用狀態。
3.根據權利要求1所述的存儲器宏,其中,每個所述輸出端驅動器均包括三態緩沖器。
4.根據權利要求3所述的存儲器宏,其中,所述輸出端驅動器配置為響應于所述多個信號,從而使得與沒有被選擇的多個存儲器陣列段之一的輸出端之一相連接的每個輸出端驅動器均處于高阻抗狀態。
5.根據權利要求1所述的存儲器宏,其中,所述存儲器宏是嵌入式動態隨機存取存儲器宏ο
6.根據權利要求1所述的存儲器宏,其中,所述段解碼器配置為,產生多個信號,從而使得在給定時間所激活的存儲器陣列段的數量等于存儲器陣列段的總數量除以所述存儲器分區數量。
7.根據權利要求1所述的存儲器宏,其中,將到所述分區的給定的一個中的兩個或者更多個段的數據輸入端連接到公共節點。
8.根據權利要求1所述的存儲器宏,其中,將從所述分區的給定的一個中的兩個或者更多個段的輸出端連接到公共節點。
9.一種集成電路,包括 嵌入式存儲器宏,包括多個存儲器陣列段,每個都具有預定數量的數據輸入端和輸出端; 段解碼器電路配置為接收指示存儲器分區數量的第一值,其中,所述存儲器陣列段將被分割,并且基于所述第一值,輸出多個信號,用于選擇性地激活將要被存取的所述多個存儲器陣列段中的一個或者多個;以及多個輸出端驅動器,與所述段解碼器電路相連接,并且與相應的輸出端相連接,所述多個輸出端驅動器配置為從每個相應的激活的存儲器陣列段的相應輸出端中選擇性地輸出數據;執行電路,配置為對將要從所述嵌入式存儲器中取回的數據或者存儲在所述嵌入式存儲器中的數據執行至少一種算法或者邏輯運算,所述執行電路具有至少一個第一輸入端和至少一個第一輸出端,其中在至少一個所述分區中,多個存儲器陣列段的相應的數據輸入端以第一公共節點的方式連接到所述執行電路的所述第一輸出端,并且在至少一個所述分區中,多個存儲器陣列段的相應的輸出端以第二公共節點的方式連接到所述執行電路的所述第一輸入端。
10. 一種方法,包括提供存儲器宏,所述存儲器宏具有多個存儲器陣列段,每個所述存儲器陣列段均具有預定數量的數據輸入端和輸出端;接收指示存儲器分區數量的第一值,其中,存儲器宏中的多個存儲器陣列段將被分割,并且基于所述第一值,選擇性地激活將要被存取的所述多個存儲器陣列段中的一個或者多個;以及從每個相應的激活的存儲器陣列段的相應的輸出端選擇性地輸出數據。
全文摘要
一種存儲器宏,包括多個存儲器陣列段,每個存儲器陣列段都具有預定數量的數據輸入端和輸出端。段解碼器電路配置為接收指示存儲器的分區數量的第一值,其中,存儲器陣列段將被分割,并且基于第一值,輸出多個信號,用于選擇性地激活將要被存取的多個存儲器陣列段中的一個或者多個。多個輸出端驅動器,與段解碼器電路相連接,并且與相應的輸出端相連接。多個輸出端驅動器配置為從每個相應被激活的存儲器陣列段的相應輸出端選擇性地輸出數據。
文檔編號G11C11/4063GK102403032SQ201110166138
公開日2012年4月4日 申請日期2011年6月15日 優先權日2010年9月8日
發明者謝爾蓋·羅馬洛夫斯基 申請人:臺灣積體電路制造股份有限公司