TW202027076A - 基於記憶體的處理器 - Google Patents

基於記憶體的處理器 Download PDF

Info

Publication number
TW202027076A
TW202027076A TW108132302A TW108132302A TW202027076A TW 202027076 A TW202027076 A TW 202027076A TW 108132302 A TW108132302 A TW 108132302A TW 108132302 A TW108132302 A TW 108132302A TW 202027076 A TW202027076 A TW 202027076A
Authority
TW
Taiwan
Prior art keywords
memory
group
test
processor
integrated circuit
Prior art date
Application number
TW108132302A
Other languages
English (en)
Inventor
埃拉德 希提
埃利亞德 希勒爾
Original Assignee
埃拉德 希提
埃利亞德 希勒爾
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 埃拉德 希提, 埃利亞德 希勒爾 filed Critical 埃拉德 希提
Publication of TW202027076A publication Critical patent/TW202027076A/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/12Group selection circuits, e.g. for memory block selection, chip selection, array selection
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17732Macroblocks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)

Abstract

本發明提供一種記憶體晶片,其可包括:複數個記憶體組;一資料儲存器,其經組態以儲存指示該等複數個記憶體組中之一或多個區段之存取操作的存取資訊;以及一刷新控制器,其經組態以至少部分地基於所儲存的存取資訊而執行該一或多個區段之一刷新操作。

Description

基於記憶體的處理器
相關申請案之交叉參考
本申請案主張2018年9月6日申請之美國臨時專利申請案第61/727,653號之優先權,該案以全文引用之方式併入本文中。
本發明大體上關於用於促進記憶體密集型操作之設備。特定而言,本發明關於包括耦接至專用記憶體組之處理元件的硬體晶片。本發明亦關於用於改良記憶體晶片之功率效率及速度的設備。特定而言,本發明關於用於在記憶體晶片上實施部分刷新或甚至無刷新之系統及方法。本發明亦關於大小可選擇之記憶體晶片及記憶體晶片上之雙埠能力。
隨著處理器速度及記憶體大小均繼續增大,對有效處理速度之顯著限制係馮諾依曼(von Neumann)瓶頸。馮諾依曼瓶頸係由習知電腦架構所導致之輸送量限製造成。特定而言,相較於由處理器進行之實際演算,自記憶體至處理器之資料傳送常會遇到瓶頸。因此,用以對記憶體進行讀取及寫入之時脈循環的數目隨著記憶體密集型處理程序而顯著增大。此等時脈循環導致較低的有效處理速度,此係因為對記憶體進行讀取及寫入會消耗時脈循環,該等時脈循環無法用於對資料執行操作。此外,處理器之演算頻寬通常大於處理器用以存取記憶體之匯流排的頻寬。
此等瓶頸對於以下各者特別明顯:記憶體密集型處理程序, 諸如神經網路及其他機器學習演算法;資料庫建構、索引搜尋及查詢;以及包括比資料處理操作多的讀取及寫入操作之其他任務。
另外,可用數位資料之體積及粒度之快速增長已產生開發機器學習演算法之機會且已啟用新技術。然而,此亦為資料庫及平行演算之領域帶來棘手之挑戰。舉例而言,社交媒體及物聯網(IoT)之興起以創記錄的速率產生數位資料。此新資料可用以產生用於多種用途之演算法,範圍為新廣告技術至工業處理程序之更精確控制方法。然而,新資料難以儲存、處理、分析及處置。
新資料資源可為巨大的,有時為大約千萬億至十萬億億(zetta)位元組。此外,此等資料資源之增長速率可能超過資料處理能力。因此,資料科學家已轉向平行資料處理技術,以應對此等挑戰。為了提高演算能力且處置大量資料,科學家已嘗試產生能夠進行平行密集型演算之系統及方法。但此等現有系統及方法跟不上資料處理要求,常常係因為所使用之技術受該等技術對用於資料管理、整合分隔資料及分析分段資料之額外資源的需求限制。
為了促進對大資料集之操控,工程師及科學家現在正設法改良用以分析資料之硬體。舉例而言,新的半導體處理器或晶片(例如本文中所描述之半導體處理器或晶片)可藉由在以更適合記憶體操作而非算術演算之技術製造的單一基板中併入記憶體及處理功能而特定地針對資料密集型任務設計。利用特定地針對資料密集型任務而設計之積體電路,有可能滿足新的資料處理要求。然而,應對大資料集之資料處理的此新方法需要解決晶片設計及製造中之新問題。舉例而言,若針對資料密集型任務而設計之新晶片係利用用於普通晶片之製造技術及架構製造,則該等新晶片將具有不良的效能及/或不可接受的良率。此外,若該等新晶片經設計以利 用當前資料處置方法進行操作,則該等新晶片將具有不良的效能,此係因為當前方法可限制晶片處置平行操作的能力。
本發明描述用於減輕或克服上文所闡述之問題中之一或多者以及先前技術中之其他問題的解決方案。
於本發明之一些實施例中,一種記憶體晶片可包括:複數個記憶體組;一資料儲存器,其經組態以儲存指示該等複數個記憶體組中之一或多個區段之存取操作的存取資訊;以及一刷新控制器,其經組態以至少部分地基於所儲存的存取資訊而執行該一或多個區段之一刷新操作。
本發明之一些實施例可包括一種非暫時性電腦可讀媒體,其儲存在由至少一個處理器執行時使該至少一個處理器進行以下操作之指令:接收較高階電腦程式碼;識別待由該較高階電腦程式碼存取之在與一記憶體晶片相關聯之複數個記憶體組上分佈的複數個記憶體區段;評估該較高階電腦程式碼以識別在複數個記憶體存取循環上出現之複數個記憶體讀取命令;致使與該等複數個記憶體讀取命令相關聯之資料跨越該等複數個記憶體區段中之每一者的一分佈,使得在該等複數個記憶體存取循環中之每一者期間存取該等複數個記憶體區段中之每一者。
本發明之一些實施例可包括一種非暫時性電腦可讀媒體,其儲存在由至少一個處理器執行時使該至少一個處理器進行以下操作之指令:接收較高階電腦程式碼;識別待由該較高階電腦程式碼存取之在與一記憶體晶片相關聯之複數個記憶體組上分佈的複數個記憶體區段;評估該較高階電腦程式碼以識別複數個記憶體存取命令,每一記憶體存取指令涉及該等複數個記憶體區段中之一或多者;基於對該等記憶體存取命令之分析且對於該等複數個記憶體區段當中之每一記憶體區段,追蹤自該記憶體 區段之最後一次存取起所累積的一時間量;及回應於自任何特定記憶體區段之最後一次存取起的一時間量將超過一預定臨限值的一判定,將經組態以致使對該特定記憶體區段之一存取的一記憶體刷新命令或一記憶體存取命令中之至少一者引入至該較高階電腦程式碼中。
於本發明之一些實施例中,具有一軟體可組態的記憶體刷新控制件之一種記憶體晶片可包括:複數個記憶體組及包括於該等複數個記憶體組中之每一者中的複數個記憶體區段;及一刷新控制器,其包括一資料儲存元件,該資料儲存元件儲存至少一個記憶體刷新圖案,該至少一個記憶體刷新圖案待實施以刷新包括於該等複數個記憶體組中之每一者中之該等複數個記憶體區段,且其中該記憶體刷新圖案可使用軟體來組態,以識別在一刷新循環期間,一特定記憶體組中之該等複數個記憶體區段中之哪些者需刷新,而該特定記憶體組中之該等複數個記憶體區段中之哪些者在該刷新循環期間不需刷新。
根據本發明之一實施例為一種用於自一晶圓生產大小可選擇之記憶體晶片的方法。該方法包括形成包含一晶粒群組及一耦接電路之一晶圓,其中該群組之該等晶粒包含記憶體單元,且其中該耦接電路耦接至該群組之該等晶粒。該方法進一步包括藉由以下操作中之至少一者形成該等大小可選擇之記憶體晶片:切割包含該晶粒群組及該耦接電路之該晶圓的一區,以提供包含該晶粒群組之一單一記憶體晶片;及組態與該晶粒群組相關聯之至少一個控制器以將該晶粒群組充當一單一記憶體晶片來控制;及切割該晶圓之區,該晶圓之每一區包括該群組之一晶粒以提供複數個分開的記憶體晶片。
根據本發明之另一實施例為一種用於自一晶圓生產大小可選擇之記憶體晶片的方法。該方法包括:在該晶圓上形成複數個記憶體晶 片,該等複數個記憶體晶片沿著一或多列配置;及形成對應於該一或多列之至少一個共用的輸入輸出匯流排,其中該至少一個共用的輸入輸出匯流排將該等複數個記憶體晶片中之至少兩個相電連接以充當一單一晶片作用。該方法可進一步包括自該晶圓切下該等複數個記憶體晶片中之具有該共用的輸入輸出匯流排之至少一個對應部分的至少兩個,使得至少一個記憶體控制器可組態以控制該等複數個記憶體晶片中之該至少兩個,以充當一單一晶片作用。
根據本發明之另一實施例為一種包括具有可選擇大小之記憶體晶片的晶圓。該晶圓可包括沿著該晶圓之一或多列配置的複數個記憶體晶片及對應於該一或多列之至少一個共用的輸入輸出匯流排。該晶圓可進一步包括複數個切割形狀,該等複數個切割形狀包括該等複數個記憶體晶片且不包括該共用的輸入輸出匯流排之至少一部分。
本發明之一些實施例可包括提供雙埠功能性之一種記憶體執行個體。該記憶體執行個體可包括:複數個記憶體組,其沿著至少一列及至少一行配置;至少一個行多工器,其經組態以在一單一時脈循環期間接收用於讀取或寫入之兩個位址;及一列解碼器,其經組態以與該至少一個行多工器協作以進行以下操作:基於該兩個位址啟動一字線,其中該兩個位址共用一字線位址;在一記憶體存取循環期間藉由解碼對應於該兩個位址中之一第一位址的一位元線自該至少一個行多工器擷取該第一位址;及在該記憶體存取循環期間藉由解碼對應於該兩個位址中之一第二位址的一位元線自該至少一個行多工器擷取該第二位址
於本發明之其他實施例中,提供雙埠功能性之一種記憶體執行個體可包括:複數個記憶體組,其沿著至少一列及至少一行配置;至少一個列多工器或至少一個行多工器,其經組態以在一單一時脈循環期間接 收用於讀取或寫入之兩個位址;以及一列解碼器及一行解碼器,該等解碼器經組態以協作,從而進行以下操作:在一第一循環期間自該至少一個列多工器或該至少一個行多工器擷取該兩個位址中之一第一位址,且解碼對應於該第一位址之一字線及一位元線;及在該第一循環之後的一第二循環期間,自該至少一個列多工器或該至少一個行多工器擷取該兩個位址中之一第二位址,且解碼對應於該第二位址之一字線及一位元線。
於本發明之一些實施例中,一種記憶體執行個體可包括:複數個記憶體組,其沿著至少一列及至少一行配置;至少一個列電路及至少一個行電路,該等電路經組態以充當開關;以及一列解碼器及一行解碼器,該等解碼器經組態以協作,從而進行以下操作:在一記憶體時脈循環期間,藉由以下操作擷取兩個位址中之一第一位址:藉由傳輸一或多個控制信號以閉合對應於該第一位址之開關元件中之多者來啟動對應於該第一位址之該至少一個列電路及該至少一個行電路中的對應者,及使用記憶體晶片之至少一個列多工器及至少一個行多工器以解碼對應於該第一位址之一字線及一位元線;及在該記憶體時脈循環期間,藉由以下操作擷取兩個位址中之一第二位址:藉由傳輸一或多個控制信號以閉合對應於該第二位址之該等開關元件中之多者來啟動對應於該第二位址之該至少一個列電路及該至少一個行電路中的對應者,及使用該至少一個列多工器及該至少一個行多工器以解碼對應於該第二位址之一字線及一位元線。
於本發明之其他實施例中,一種用於雙埠存取之記憶體墊可包括:複數個記憶體胞元,其沿著至少一列及至少一行配置且包含複數個電容性元件;至少兩個列解碼器,其用於啟動該至少一列;至少兩個行多工器,其用於啟動該至少一行;及第一複數條導線,其將該等記憶體胞元連接至該至少兩個列解碼器中之一第一列解碼器及該至少兩個行多工器中 之一第一行多工器;及第二複數條導線,其將該等記憶體胞元連接至該至少兩個列解碼器中之一第二列解碼器及該至少兩個行多工器中之一第二行多工器。
於本發明之一些實施例中,一種積體電路可包含:一記憶體單元,其包含記憶體胞元、一輸出埠及讀取電路系統;以及一處理單元。該讀取電路系統可包含:一縮減單元;及記憶體內讀取路徑之一第一群組,該等記憶體內讀取路徑用於經由該輸出埠輸出多達第一數目個位元。該處理單元可經組態以將一讀取請求發送至該記憶體單元以自該記憶體單元讀取第二數目個位元。該縮減單元可經組態以在由該讀取請求觸發之一讀取操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內讀取路徑。
本發明之另一實施例可包括積體電路,其包含:一記憶體單元,其包含記憶體胞元、一輸出埠及寫入電路系統;以及一處理單元。該寫入電路系統可包含:一縮減單元;及記憶體內寫入路徑之一第一群組,該等記憶體內寫入路徑用於經由該輸出埠輸出多達第一數目個位元。該處理單元可經組態以將一寫入請求發送至該記憶體單元以寫入來自該記憶體單元之第二數目個位元。該縮減單元可經組態以在由該寫入請求觸發之一寫入操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內寫入路徑。
本發明之一些實施例可包括一種用於縮減一積體電路之能量的方法。該方法可包括:藉由該積體電路之一處理單元將一讀取請求發送至該積體電路之一記憶體單元以自該記憶體單元讀取第二數目個位元;其中該記憶體單元包含記憶體胞元、一輸出埠及讀取電路系統,該讀取電路系統包含一縮減單元及記憶體內讀取路徑之一第一群組,該等記憶體內 讀取路徑用於經由該輸出埠輸出多達第一數目個位元;及藉由該縮減單元在由該讀取請求觸發之一讀取操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內讀取路徑。
於本發明之一些實施例中,一種記憶體單元可包括:一第一記憶體墊;一第二記憶體墊;及一啟動單元,其經組態以啟動包括於該第一記憶體墊中之記憶體胞元的一第一群組,而不啟動包括於該第二記憶體墊中之記憶體胞元的一第二群組,其中記憶體胞元之該第一群組及記憶體胞元之該第二群組皆屬於該記憶體單元之一單一列。
本發明之另一實施例可包括一記憶體單元,其包含:一第一記憶體墊;一第二記憶體墊;及一啟動單元,其經組態以將一啟動信號供應至該第一記憶體墊之記憶體胞元的一第一群組,且延遲該啟動信號至該第二記憶體墊之記憶體胞元之一第二群組的一供應,至少直至記憶體胞元之該第一群組的啟動已完成。記憶體胞元之該第一群組及記憶體胞元之該第二群組可屬於該記憶體單元之一單一列。
於本發明之一些實施例中,一種記憶體單元可包含一第一記憶體墊、一第二記憶體墊及一隔離單元。該隔離單元可經組態以在該第一記憶體墊之第一記憶體胞元被啟動之一初始啟動時段期間將該等第一記憶體胞元與該第二記憶體墊之第二記憶體胞元相隔離;及在該初始啟動時段之後將該等第一記憶體胞元耦接至該等二記憶體胞元;其中該等第一記憶體胞元及該等第二記憶體胞元屬於該記憶體單元之一單一列。
一些實施例可包括一種用於操作一記憶體單元之方法。該方法可包括藉由一啟動單元啟動包括於該記憶體單元之一第一記憶體墊中的記憶體胞元之一第一群組,而不啟動包括於該記憶體單元之一第二記憶體墊中的記憶體胞元之一第二群組。記憶體胞元之該第一群組及記憶體胞元 之該第二群組可皆屬於該記憶體單元之一單一列。
於本發明之一些實施例中,一種積體電路可包含:一基板;一記憶體陣列,其安置於該基板上;一處理陣列,其安置於該基板上;及一介面,其安置於該基板上。該記憶體陣列可包含多個記憶體組,該處理陣列可包含複數個測試單元,該等複數個測試單元可經組態以測試該多個記憶體組以提供測試結果,且該介面可經組態以在該積體電路外部輸出指示該等測試結果之資訊。
本發明之另一實施例可包括一種積體電路,其包含:一基板;一記憶體陣列,其安置於該基板上;一處理陣列,其安置於該基板上;及一介面,其安置於該基板上。該記憶體陣列可包含多個記憶體組,該介面可經組態以接收包含指令之組態資訊,該處理陣列可經組態以執行該等指令以存取該記憶體陣列,執行演算運算且提供結果,且該介面可經組態以在該積體電路外部輸出指示該等結果之資訊。
本發明之一些實施例可包括一種用於測試一積體電路之記憶體組的方法。該方法可包括接收測試一積體電路之記憶體組的一請求,該積體電路包含一基板、安置於該基板上且包含該等記憶體組之一記憶體陣列、安置於該基板上之一處理陣列及安置於該基板上之一介面;其中該處理陣列包含複數個測試單元;藉由該等複數個測試單元且回應於該請求而測試該多個記憶體組以提供測試結果;及藉由該介面及在該積體電路外部輸出指示該等測試結果之資訊。
在本發明之一些實施例中,一種用於測試一積體電路之記憶體組的方法可包含:藉由一積體電路之一介面接收包含指令之組態資訊,該積體電路包含一基板、包含記憶體組且安置於該基板上之一記憶體陣列、安置於該基板上之一處理陣列及安置於該基板上之一介面;藉由該處 理陣列執行該等指令,該執行係藉由存取該記憶體陣列、執行演算運算及提供結果來進行;及藉由該介面及在該積體電路外部輸出指示該等結果之資訊。
根據本發明之其他實施例,非暫時性電腦可讀儲存媒體可儲存程式指令,該等程式指令由至少一個處理裝置執行且執行本文中所描述之方法中的任一者。
前文之一般描述及下文之詳細描述僅為例示性及解釋性的,且並不限制申請專利範圍。
100‧‧‧CPU
110‧‧‧處理單元
120a‧‧‧處理器子單元
120b‧‧‧處理器子單元
130‧‧‧快取記憶體
140a‧‧‧共用記憶體
140b‧‧‧共用記憶體
200‧‧‧GPU
210‧‧‧處理單元
220a‧‧‧處理器子單元
220b‧‧‧處理器子單元
220c‧‧‧處理器子單元
220d‧‧‧處理器子單元
220e‧‧‧處理器子單元
220f‧‧‧處理器子單元
220g‧‧‧處理器子單元
220h‧‧‧處理器子單元
220i‧‧‧處理器子單元
220j‧‧‧處理器子單元
220k‧‧‧處理器子單元
220l‧‧‧處理器子單元
220m‧‧‧處理器子單元
220n‧‧‧處理器子單元
220o‧‧‧處理器子單元
220p‧‧‧處理器子單元
230a‧‧‧快取記憶體
230b‧‧‧快取記憶體
230c‧‧‧快取記憶體
230d‧‧‧快取記憶體
250a‧‧‧共用記憶體
250b‧‧‧共用記憶體
250c‧‧‧共用記憶體
250d‧‧‧共用記憶體
300‧‧‧硬體晶片
300'‧‧‧硬體晶片
310a‧‧‧處理群組
310b‧‧‧處理群組
310c‧‧‧處理群組
310d‧‧‧處理群組
320a‧‧‧邏輯及控制子單元
320b‧‧‧邏輯及控制子單元
320c‧‧‧邏輯及控制子單元
320d‧‧‧邏輯及控制子單元
320e‧‧‧邏輯及控制子單元
320f‧‧‧邏輯及控制子單元
320g‧‧‧邏輯及控制子單元
320h‧‧‧邏輯及控制子單元
330a‧‧‧專用記憶體執行個體
330b‧‧‧專用記憶體執行個體
330c‧‧‧專用記憶體執行個體
330d‧‧‧專用記憶體執行個體
330e‧‧‧專用記憶體執行個體
330f‧‧‧專用記憶體執行個體
330g‧‧‧專用記憶體執行個體
330h‧‧‧專用記憶體執行個體
340a‧‧‧控制件
340b‧‧‧控制件
340c‧‧‧控制件
340d‧‧‧控制件
350‧‧‧主機
350a‧‧‧處理器子單元
350b‧‧‧處理器子單元
350c‧‧‧處理器子單元
350d‧‧‧處理器子單元
360a‧‧‧匯流排
360b‧‧‧匯流排
360c‧‧‧匯流排
360d‧‧‧匯流排
360e‧‧‧匯流排
360f‧‧‧匯流排
400‧‧‧處理程序
410‧‧‧處理群組
420‧‧‧專用記憶體執行個體
430‧‧‧處理器子單元
440‧‧‧處理元件
450‧‧‧位址產生器
460‧‧‧控制件
500‧‧‧用於執行專門命令之例示性處理程序
510‧‧‧處理群組
520‧‧‧專用記憶體執行個體
530‧‧‧處理元件
600‧‧‧處理群組
610‧‧‧處理器子單元
620‧‧‧記憶體/記憶體元件
630‧‧‧匯流排
640‧‧‧處理元件
650‧‧‧加速器/MUX
660‧‧‧輸入多工器(MUX)/DEMUX
670‧‧‧輸出DEMUX
710‧‧‧基板
720a‧‧‧記憶體組
720b‧‧‧記憶體組
720c‧‧‧記憶體組
720d‧‧‧記憶體組
720e‧‧‧記憶體組
720f‧‧‧記憶體組
720g‧‧‧記憶體組
720h‧‧‧記憶體組
730a‧‧‧處理器子單元
730b‧‧‧處理器子單元
730c‧‧‧處理器子單元
730d‧‧‧處理器子單元
730e‧‧‧處理器子單元
730f‧‧‧處理器子單元
730g‧‧‧處理器子單元
730h‧‧‧處理器子單元
740a‧‧‧匯流排
740b‧‧‧匯流排
740c‧‧‧匯流排
740d‧‧‧匯流排
740e‧‧‧匯流排
740f‧‧‧匯流排
740g‧‧‧匯流排
740h‧‧‧匯流排
750a‧‧‧匯流排
750b‧‧‧匯流排
750c‧‧‧匯流排
750d‧‧‧匯流排
750e‧‧‧匯流排
750f‧‧‧匯流排
750g‧‧‧匯流排
750h‧‧‧匯流排
750i‧‧‧匯流排
750j‧‧‧匯流排
760‧‧‧架構
770a‧‧‧記憶體晶片
770b‧‧‧記憶體晶片
770c‧‧‧記憶體晶片
770d‧‧‧記憶體晶片
800‧‧‧用於編譯一系列指令之方法
810‧‧‧步驟
820‧‧‧步驟
830‧‧‧步驟
840‧‧‧步驟
850‧‧‧步驟
900‧‧‧組
910‧‧‧列解碼器
920‧‧‧全域感測放大器
930-1‧‧‧墊
930-2‧‧‧墊
940-1‧‧‧墊
940-2‧‧‧墊
950‧‧‧字線
960‧‧‧位元線
1000‧‧‧墊
1010-1‧‧‧區域放大器
1010-2‧‧‧區域放大器
1010-x‧‧‧區域放大器
1020-1‧‧‧字線驅動器
1020-2‧‧‧字線驅動器
1020-x‧‧‧字線驅動器
1030-1‧‧‧胞元
1030-2‧‧‧胞元
1030-3‧‧‧胞元
1040‧‧‧字線
1050‧‧‧位元線
1100‧‧‧組/子組
1110‧‧‧組列解碼器
1120‧‧‧組行解碼器
1121a‧‧‧位元線
1121b‧‧‧位元線
1130a‧‧‧子組控制器
1130b‧‧‧子組控制器
1130c‧‧‧子組控制器
1131a‧‧‧匯流排
1131b‧‧‧匯流排
1131c‧‧‧匯流排
1140a‧‧‧解算器
1140b‧‧‧解算器
1140c‧‧‧解算器
1150a‧‧‧邏輯
1150b‧‧‧邏輯
1150c‧‧‧邏輯
1160a‧‧‧解碼器
1160b‧‧‧解碼器
1160c‧‧‧解碼器
1160d‧‧‧解碼器
1160e‧‧‧解碼器
1160f‧‧‧解碼器
1160g‧‧‧解碼器
1160h‧‧‧解碼器
1160i‧‧‧解碼器
1170a‧‧‧子組
1170b‧‧‧子組
1170c‧‧‧子組
1180a‧‧‧解碼器
1180b‧‧‧解碼器
1180c‧‧‧解碼器
1181a‧‧‧位元線
1181b‧‧‧位元線
1190a-1‧‧‧墊
1190a-2‧‧‧墊
1190a-x‧‧‧墊
1190b-1‧‧‧墊
1190b-2‧‧‧墊
1190b-x‧‧‧墊
1190c-1‧‧‧墊
1190c-2‧‧‧墊
1190c-x‧‧‧墊
1200‧‧‧記憶體子組
1210‧‧‧記憶體控制器
1220a‧‧‧熔斷器及比較器
1220b‧‧‧熔斷器及比較器
1230a‧‧‧列解碼器
1230b‧‧‧列解碼器
1240a‧‧‧墊
1240b‧‧‧墊
1250a‧‧‧行解碼器
1250b‧‧‧行解碼器
1251‧‧‧位元線
1253‧‧‧位元線
1260a-1‧‧‧胞元
1260a-2‧‧‧胞元
1260a-x‧‧‧胞元
1260b-1‧‧‧胞元
1260b-2‧‧‧胞元
1260b-x‧‧‧胞元
1300‧‧‧記憶體晶片
1301‧‧‧基板
1302‧‧‧位址管理器
1304‧‧‧記憶體陣列
1304(a,a)‧‧‧記憶體組/記憶體區塊/記憶體執行個體
1304(z,z)‧‧‧記憶體組/記憶體執行個體
1306‧‧‧記憶體邏輯
1308‧‧‧商業邏輯
1310‧‧‧冗餘商業邏輯/冗餘邏輯區塊/冗餘商業區塊
1312‧‧‧撤銷啟動開關
1314‧‧‧啟動開關
1400‧‧‧冗餘邏輯區塊集合
1402‧‧‧位址匯流排
1404‧‧‧資料匯流排
1500‧‧‧邏輯區塊
1504‧‧‧提取電路
1506‧‧‧解碼器
1508‧‧‧暫存器
1510‧‧‧演算單元
1512‧‧‧複製演算單元
1514‧‧‧開關電路
1516‧‧‧開關電路
1518‧‧‧寫回電路
1602‧‧‧邏輯區塊
1602(a)‧‧‧邏輯區塊
1602(b)‧‧‧邏輯區塊
1602(c)‧‧‧邏輯區塊
1604‧‧‧熔斷識別件
1604(a)‧‧‧邏輯區塊
1604(b)‧‧‧邏輯區塊
1604(c)‧‧‧邏輯區塊
1614‧‧‧位址匯流排
1616‧‧‧命令線
1618‧‧‧資料線
1702‧‧‧單元
1702(a)‧‧‧單元
1702(b)‧‧‧發生故障的單元
1702(c)‧‧‧單元
1712‧‧‧單元
1712(a)‧‧‧單元
1712(b)‧‧‧單元
1712(c)‧‧‧單元
1722‧‧‧開關電路
1722(a)‧‧‧開關電路
1722(b)‧‧‧開關電路
1722(c)‧‧‧開關電路
1728‧‧‧開關電路
1728(a)‧‧‧開關電路
1728(c)‧‧‧開關電路
1730‧‧‧樣本電路
1730(a)‧‧‧樣本電路
1730(b)‧‧‧樣本電路
1730(c)‧‧‧樣本電路
1804‧‧‧I/O區塊
1806‧‧‧單元
1808‧‧‧開關箱
1810‧‧‧連接箱
1902(a)‧‧‧單元
1902(b)‧‧‧單元
1902(c)‧‧‧單元
1902(d)‧‧‧單元
1902(e)‧‧‧單元
1902(f)‧‧‧單元
1904(a)‧‧‧組態開關
1904(b)‧‧‧組態開關
1904(c)‧‧‧組態開關
1904(d)‧‧‧組態開關
1904(e)‧‧‧組態開關
1904(f)‧‧‧組態開關
1904(g)‧‧‧組態開關
1904(h)‧‧‧組態開關
2000‧‧‧冗餘區塊啟用處理程序
2002‧‧‧步驟
2004‧‧‧步驟
2006‧‧‧步驟
2008‧‧‧步驟
2010‧‧‧步驟
2100‧‧‧位址指派處理程序
2102‧‧‧步驟
2104‧‧‧步驟
2106‧‧‧步驟
2108‧‧‧步驟
2110‧‧‧步驟
2112‧‧‧步驟
2114‧‧‧步驟
2116‧‧‧步驟
2118‧‧‧步驟
2120‧‧‧步驟
2122‧‧‧步驟
2200‧‧‧處理裝置
2202‧‧‧第一記憶體區塊
2204‧‧‧第二記憶體區塊
2210‧‧‧記憶體控制器
2212‧‧‧組態管理器
2214‧‧‧邏輯區塊/單元
2216‧‧‧加速器/單元
2216(a)‧‧‧加速器
2216(n)‧‧‧加速器
2218‧‧‧線
2220‧‧‧線
2230‧‧‧主機
2300‧‧‧處理裝置
2302‧‧‧MAC單元
2304‧‧‧組態管理器
2306‧‧‧記憶體控制器
2308(a)‧‧‧記憶體區塊
2308(b)‧‧‧記憶體區塊
2308(c)‧‧‧記憶體區塊
2308(d)‧‧‧記憶體區塊
2500‧‧‧記憶體組態處理程序
2502‧‧‧步驟
2504‧‧‧步驟
2506‧‧‧步驟
2508‧‧‧步驟
2510‧‧‧步驟
2512‧‧‧步驟
2514‧‧‧步驟
2600‧‧‧記憶體讀取處理程序
2602‧‧‧步驟
2604‧‧‧步驟
2606‧‧‧步驟
2608‧‧‧步驟
2614‧‧‧步驟
2616‧‧‧步驟
2618‧‧‧步驟
2620‧‧‧步驟
2700‧‧‧執行處理程序
2702‧‧‧步驟
2704‧‧‧步驟
2706‧‧‧步驟
2708‧‧‧步驟
2710‧‧‧步驟
2712‧‧‧步驟
2714‧‧‧步驟
2176‧‧‧步驟
2718‧‧‧步驟
2720‧‧‧步驟
2800‧‧‧記憶體晶片
2801a‧‧‧記憶體組
2803‧‧‧刷新控制器
2805‧‧‧控制器
2900‧‧‧實例刷新控制器
2900'‧‧‧實例刷新控制器
2901‧‧‧計時器
2903‧‧‧列計數器
2905‧‧‧有效位元
2907‧‧‧加法器
2909‧‧‧資料儲存器
2911‧‧‧刷新閘
3000‧‧‧用於記憶體晶片中之部分刷新的處理程序
3010‧‧‧步驟
3020‧‧‧步驟
3030‧‧‧步驟
3100‧‧‧用於判定記憶體晶片之刷新的處理程序
3110‧‧‧步驟
3120‧‧‧步驟
3130‧‧‧步驟
3140‧‧‧步驟
3200‧‧‧用於判定記憶體晶片之刷新的處理程序
3210‧‧‧步驟
3220‧‧‧步驟
3230‧‧‧步驟
3240‧‧‧步驟
3250‧‧‧步驟
3300‧‧‧刷新控制器
3301‧‧‧計時器
3303‧‧‧列計數器
3305‧‧‧加法器
3307‧‧‧資料儲存器
3400‧‧‧用於判定記憶體晶片之刷新的處理程序
3410‧‧‧步驟
3420‧‧‧步驟
3430‧‧‧步驟
3440‧‧‧步驟
3501‧‧‧晶圓
3503‧‧‧晶粒
3504‧‧‧第二區/記憶體晶片/群組
3505‧‧‧區/記憶體晶片
3506‧‧‧記憶體晶片
3506A‧‧‧記憶體晶粒/記憶體晶片
3506B‧‧‧記憶體晶粒/記憶體晶片
3506C‧‧‧記憶體晶片
3506D‧‧‧記憶體晶片
3507‧‧‧基板
3511A‧‧‧記憶體組
3511B‧‧‧記憶體組
3511C‧‧‧記憶體組
3511D‧‧‧記憶體組
3511E‧‧‧記憶體組
3511F‧‧‧記憶體組
3511G‧‧‧記憶體組
3511H‧‧‧記憶體組
3512‧‧‧匯流排或連接件
3515A‧‧‧處理器子單元
3515B‧‧‧處理器子單元
3515C‧‧‧處理器子單元
3515D‧‧‧處理器子單元
3515E‧‧‧處理器子單元
3515F‧‧‧處理器子單元
3515G‧‧‧處理器子單元
3515H‧‧‧處理器子單元/連接件
3515I‧‧‧處理器子單元
3515J‧‧‧處理器子單元
3515K‧‧‧處理器子單元
3515L‧‧‧處理器子單元
3515M‧‧‧處理器子單元
3515N‧‧‧處理器子單元
3515O‧‧‧處理器子單元
3515P‧‧‧處理器子單元
3516A‧‧‧連接件
3516B‧‧‧連接件
3516C‧‧‧連接件
3516D‧‧‧連接件
3517‧‧‧區/記憶體晶片
3521‧‧‧輸入輸出(IO)控制器/IO控制模組
3521A‧‧‧IO控制器
3521B‧‧‧IO控制器
3521‧‧‧IO控制器/IO控制模組
3522‧‧‧IO控制器/IO控制模組
3523‧‧‧IO控制模組
3524‧‧‧IO控制器
3530‧‧‧輸入輸出匯流排/匯流排線
3530A‧‧‧輸入輸出匯流排
3530B‧‧‧輸入輸出匯流排
3531A‧‧‧分支
3531B‧‧‧分支
3532‧‧‧記憶體晶片
3533‧‧‧線
3540‧‧‧晶粒
3542A‧‧‧輸入/輸出控制器
3542B‧‧‧輸入/輸出控制器
3546‧‧‧晶粒
3554‧‧‧熔斷器/熔斷器元件
3554A‧‧‧熔斷器
3554B‧‧‧熔斷器
3555‧‧‧熔斷器/熔斷器元件
3556‧‧‧熔斷器/熔斷器元件
3557‧‧‧熔斷器/熔斷器元件
3601‧‧‧域
3602‧‧‧域
3603‧‧‧域
3611‧‧‧匯流排線
3612‧‧‧匯流排線
3613‧‧‧匯流排線
3711‧‧‧膠合邏輯/邏輯電路/膠合邏輯單元
3713‧‧‧群組
3715‧‧‧群組
3801‧‧‧水平切割
3802‧‧‧線/切割
3803‧‧‧豎直切割
3804‧‧‧線/切割
3806‧‧‧線/切割
3811A‧‧‧區
3811B‧‧‧區
3811C‧‧‧區
3820‧‧‧匯流排線
3822‧‧‧區
3824‧‧‧匯流排線
3901‧‧‧記憶體單元之群組
3905‧‧‧連接件
4000‧‧‧自晶粒群組建置記憶體晶片之實例處理程序
4011‧‧‧步驟
4015‧‧‧步驟
4017‧‧‧步驟
4100‧‧‧用於製造含有多個晶粒之記憶體晶片的實例處理程序
4101‧‧‧處理程序
4102‧‧‧處理程序
4111‧‧‧步驟
4113‧‧‧步驟
4115‧‧‧步驟
4117‧‧‧步驟
4119‧‧‧步驟
4131‧‧‧步驟
4133‧‧‧步驟
4140‧‧‧步驟
4200‧‧‧實例電路系統
4201‧‧‧記憶體陣列
4203‧‧‧列解碼器
4205a‧‧‧行多工器(「mux」)
4205b‧‧‧行多工器(「mux」)
4300‧‧‧實例電路系統
4301‧‧‧記憶體陣列
4303‧‧‧列解碼器
4305‧‧‧行多工器
4400‧‧‧實例電路系統
4401‧‧‧記憶體陣列
4403‧‧‧列解碼器
4405‧‧‧行解碼器(或多工器)
4500‧‧‧方法
4600‧‧‧實例電路系統
4601a‧‧‧列解碼器
4601b‧‧‧列解碼器
4603a‧‧‧行多工器
4603b‧‧‧行多工器
4607‧‧‧列控制件
4609a‧‧‧記憶體墊
4609b‧‧‧記憶體墊
4611a‧‧‧字線
4611b‧‧‧字線
4613a‧‧‧開關元件
4613b‧‧‧開關元件
4615a‧‧‧位元線
4615b‧‧‧位元線
4700‧‧‧用於在單埠記憶體陣列或墊上提供雙埠存取之處理程序
4710‧‧‧步驟
4720‧‧‧步驟
4730‧‧‧步驟
4740‧‧‧步驟
4750‧‧‧用於在單埠記憶體陣列或墊上提供雙埠存取的處理程序
4760‧‧‧步驟
4770‧‧‧步驟
4780‧‧‧步驟
4790‧‧‧步驟
4800‧‧‧實例電路系統
4801a‧‧‧列解碼器
4801b‧‧‧列解碼器
4803a‧‧‧行多工器
4803b‧‧‧行多工器
4900‧‧‧記憶體墊
5000‧‧‧實例積體電路
5001‧‧‧記憶體胞元
5008‧‧‧記憶體胞元
5011‧‧‧記憶體讀取路徑
5018‧‧‧記憶體讀取路徑
5020‧‧‧輸出埠
5021‧‧‧位元
5028‧‧‧位元
5030‧‧‧縮減單元
5040‧‧‧讀取電路系統
5050‧‧‧記憶體胞元之陣列
5100‧‧‧記憶體組
5101‧‧‧記憶體組
5102‧‧‧記憶體單元
5111‧‧‧陣列
5112‧‧‧列解碼器
5113‧‧‧行多工器
5114‧‧‧主I/O匯流排
5115‧‧‧輸出匯流排
5116‧‧‧記憶體內處理(PIM)邏輯
5117‧‧‧匯流排
5118‧‧‧PIM位址匯流排/位址行匯流排
5119‧‧‧匯流排
5130‧‧‧實例方法
5132‧‧‧步驟
5134‧‧‧步驟
5140‧‧‧記憶體晶片
5140(1)‧‧‧記憶體組之部分
5140(2)‧‧‧記憶體組之部分
5140(3)‧‧‧記憶體組之部分
5140(4)‧‧‧記憶體組之部分
5140(5)‧‧‧記憶體組之部分
5140(6)‧‧‧記憶體組之部分
5141‧‧‧記憶體墊及相關聯邏輯
5142‧‧‧記憶體墊及相關聯邏輯
5143‧‧‧記憶體墊及相關聯邏輯
5144‧‧‧記憶體墊及相關聯邏輯
5145‧‧‧記憶體墊及相關聯邏輯
5146‧‧‧記憶體墊及相關聯邏輯
5147‧‧‧匯流排
5150(10)‧‧‧記憶體墊
5150(2)‧‧‧記憶體墊
5150(3)‧‧‧記憶體墊
5150(4)‧‧‧記憶體墊
5150(5)‧‧‧記憶體墊
5150(6)‧‧‧記憶體墊
5151(1)‧‧‧記憶體墊
5151(2)‧‧‧記憶體墊
5151(3)‧‧‧記憶體墊
5151(4)‧‧‧記憶體墊
5151(5)‧‧‧記憶體墊
5151(6)‧‧‧記憶體墊
5152(1)‧‧‧記憶體墊/全域字線
5152(2)‧‧‧記憶體墊/全域字線
5152(3)‧‧‧記憶體墊/全域字線
5152(4)‧‧‧記憶體墊/全域字線
5152(5)‧‧‧記憶體墊/全域字線
5152(6)‧‧‧記憶體墊/全域字線
5152(8)‧‧‧全域字線
5153(1)‧‧‧延遲或隔離電路
5153(3)‧‧‧延遲或隔離電路
5154(1)‧‧‧延遲或隔離電路
5154(3)‧‧‧延遲或隔離電路
5155(1)‧‧‧正反器
5155(3)‧‧‧正反器
5156(1)‧‧‧正反器
5156(3)‧‧‧正反器
5157(1)‧‧‧開關
5157(3)‧‧‧開關
5157(8)‧‧‧開關
5158(1)‧‧‧開關
5158(3)‧‧‧開關
5158(8)‧‧‧開關
5159(1)‧‧‧反相器閘或緩衝器
5159(3)‧‧‧反相器閘或緩衝器
5159'(1)‧‧‧反相器閘或緩衝器
5159'(3)‧‧‧反相器閘或緩衝器
5160(1)‧‧‧列控制單元
5160(2)‧‧‧單元
5160(3)‧‧‧單元
5170(1)‧‧‧列部分啟用信號
5170(2)‧‧‧列部分啟用信號
5180‧‧‧全域字線
5190‧‧‧用於操作記憶體單元之方法
5192‧‧‧步驟
5194‧‧‧步驟
5200‧‧‧測試器
5201‧‧‧開關
5202‧‧‧區段/完整晶圓
5210‧‧‧晶片(或晶片之晶圓)/積體電路/記憶體
5211‧‧‧晶片介面
5212‧‧‧記憶體組
5213‧‧‧匯流排
5214‧‧‧I/O控制器
5215‧‧‧邏輯單元/邏輯
5216‧‧‧熔斷器介面
5217‧‧‧匯流排
5218‧‧‧測試單元(TU)
5219‧‧‧測試圖案產生器
5221‧‧‧寫入測試序列/第一步驟
5222‧‧‧讀回測試結果
5223‧‧‧寫入預期結果序列/第二步驟
5224‧‧‧讀取故障位址以修復/第三步驟
5225‧‧‧程式化熔斷器/第四步驟
5231‧‧‧測試結果
5232‧‧‧測試程式碼
5300‧‧‧用於測試記憶體組之方法
5302‧‧‧步驟
5310‧‧‧步驟
5320‧‧‧步驟
5350‧‧‧用於測試積體電路之記憶體組的方法
5352‧‧‧步驟
5355‧‧‧步驟
5358‧‧‧步驟
RD‧‧‧列解碼器
COL‧‧‧行解碼器
併入於本發明中且構成本發明之一部分的隨附圖式說明各種所揭示實施例。在圖式中:
圖1為中央處理單元(CPU)之示意圖。
圖2為圖形處理單元(GPU)之示意圖。
圖3A為符合所揭示實施例之例示性硬體晶片之一實施例的示意圖。
圖3B為符合所揭示實施例之例示性硬體晶片之另一實施例的示意圖。
圖4為由符合所揭示實施例之例示性硬體晶片執行之通用命令的示意圖。
圖5為由符合所揭示實施例之例示性硬體晶片執行之專門命令的示意圖。
圖6為供用於符合所揭示實施例之例示性硬體晶片中之處理群組的示意圖。
圖7A為符合所揭示實施例之處理群組之矩形陣列的示意 圖。
圖7B為符合所揭示實施例之處理群組之橢圓形陣列的示意圖。
圖7C為符合所揭示實施例之硬體晶片之一陣列的示意圖。
圖7D為符合所揭示實施例之硬體晶片之另一陣列的示意圖。
圖8為描繪用於編譯一系列指令以供在符合所揭示實施例之例示性硬體晶片上執行之例示性方法的流程圖。
圖9為記憶體組之示意圖。
圖10為記憶體組之示意圖。
圖11為符合所揭示實施例之具有子組控制件的例示性記憶體組之一實施例的示意圖。
圖12為符合所揭示實施例之具有子組控制件的例示性記憶體組之另一實施例的示意圖。
圖13為符合所揭示實施例之例示性記憶體晶片的功能方塊圖。
圖14為符合所揭示實施例之例示性冗餘邏輯區塊集合的功能方塊圖。
圖15為符合所揭示實施例之例示性邏輯區塊的功能方塊圖。
圖16為符合所揭示實施例之與匯流排連接之例示性邏輯區塊的功能方塊圖。
圖17為符合所揭示實施例之串聯連接之例示性邏輯區塊的功能方塊圖。
圖18為符合所揭示實施例之成二維陣列連接之例示性邏輯區塊的功能方塊圖。
圖19為符合所揭示實施例之處於複雜連接中之例示性邏輯區塊的功能方塊圖。
圖20為說明符合所揭示實施例之冗餘區塊啟用處理程序的例示性流程圖。
圖21為說明符合所揭示實施例之位址指派處理程序的例示性流程圖。
圖22為符合所揭示實施例之例示性處理裝置的功能方塊圖。
圖23為符合所揭示實施例之例示性處理裝置的功能方塊圖。
圖24包括符合所揭示實施例之例示性記憶體組態圖。
圖25為說明符合所揭示實施例之記憶體組態處理程序的例示性流程圖。
圖26為說明符合所揭示實施例之記憶體讀取處理程序的例示性流程圖。
圖27為說明符合所揭示實施例之處理程序執行的例示性流程圖。
圖28為符合本發明之具有刷新控制器的記憶體晶片之一實施例。
圖29A為符合本發明之一實施例的刷新控制器。
圖29B為符合本發明之另一實施例的刷新控制器。
圖30為符合本發明之藉由刷新控制器執行之處理程序之一 實施例的流程圖。
圖31為符合本發明之由編譯器實施之處理程序之一實施例的流程圖。
圖32為符合本發明之由編譯器實施之處理程序之另一實施例的流程圖。
圖33展示符合本發明之藉由所儲存圖案組態的實例刷新控制器。
圖34為符合本發明之由刷新控制器內之軟體實施的處理程序的實例流程圖。
圖35A展示符合本發明之包括晶粒的實例晶圓。
圖35B展示符合本發明之連接至輸入/輸出匯流排的實例記憶體晶片。
圖35C展示符合本發明之包括成列配置且連接至輸入輸出匯流排之記憶體晶片的實例晶圓。
圖35D展示符合本發明之形成群組且連接至輸入輸出匯流排的兩個記憶體晶片。
圖35E展示符合本發明之實例晶圓,其包括以六邊形晶格置放且連接至輸入輸出匯流排之晶粒。
圖36A至圖36D展示符合本發明之連接至輸入/輸出匯流排之記憶體晶片的各種可能組態。
圖37展示符合本發明之共用膠合邏輯(glue logic)之晶粒的實例分組。
圖38A至圖38B展示符合本發明之穿過晶圓的實例切割。
圖38C展示符合本發明之晶圓上之晶粒的實例配置及輸入 輸出匯流排之配置。
圖39展示符合本發明之具有互連處理器子單元之晶圓上的實例記憶體晶片。
圖40為符合本發明之自晶圓佈置記憶體晶片之群組的處理程序的一實例流程圖。
圖41A為符合本發明之自晶圓佈置記憶體晶片之群組的處理程序的另一實例流程圖。
圖41B至圖41C為符合本發明之判定用於自晶圓切割記憶體晶片之一或多個群組的切割圖案之處理程序的實例流程圖。
圖42為符合本發明的提供沿著行之雙埠存取的記憶體晶片內之電路系統的實例。
圖43為符合本發明的提供沿著列之雙埠存取的記憶體晶片內之電路系統的實例。
圖44為符合本發明的提供沿著列及行兩者之雙埠存取的記憶體晶片內之電路系統的實例。
圖45A為使用複製記憶體陣列或墊的雙讀取。
圖45B為使用複製記憶體陣列或墊的雙寫入。
圖46為符合本發明之具有用於沿著列之雙埠存取的開關元件之記憶體晶片內之電路系統的實例。
圖47A為符合本發明之用於在單埠記憶體陣列或墊上提供雙埠存取之一處理程序的實例流程圖。
圖47B為符合本發明之用於在單埠記憶體陣列或墊上提供雙埠存取之另一處理程序的實例流程圖。
圖48為符合本發明之提供沿著列及行兩者之雙埠存取的記 憶體晶片記憶體晶片內之電路系統的另一實例。
圖49為符合本發明之用於記憶體墊內的雙埠存取之開關元件的實例。
圖50為符合本發明之具有經組態以存取部分字之縮減單元的實例積體電路。
圖51為用於使用如關於圖50所描述之縮減單元的記憶體組。
圖52為符合本發明之使用整合至PIM邏輯中之縮減單元的記憶體組。
圖53為符合本發明之使用PIM邏輯以啟動用於存取部分字之開關的記憶體組。
圖54A為符合本發明之具有用於撤銷啟動以存取部分字之分段行多工器的記憶體組。
圖54B為符合本發明之用於記憶體中的部分字存取之處理程序的實例流程圖。
圖55為包括多個記憶體墊的現有記憶體晶片。
圖56為符合本發明之具有用於在線斷開期間縮減功率消耗之啟動電路的記憶體晶片之一實施例。
圖57為符合本發明之具有用於在線斷開期間縮減功率消耗之啟動電路的記憶體晶片之另一實施例。
圖58為符合本發明之具有用於在線斷開期間縮減功率消耗之啟動電路的記憶體晶片之又一實施例。
圖59為符合本發明之具有用於在線斷開期間縮減功率消耗之啟動電路的記憶體晶片之再一實施例。
圖60為符合本發明之具有用於在線斷開期間縮減功率消耗之全域字線及區域字線的記憶體晶片之一實施例。
圖61為符合本發明之具有用於在線斷開期間縮減功率消耗之全域字線及區域字線的記憶體晶片之另一實施例。
圖62為符合本發明之用於依序斷開記憶體中的線之處理程序的流程圖。
圖63為用於記憶體晶片之一現有測試器。
圖64為用於記憶體晶片之另一現有測試器。
圖65為符合本發明之使用與記憶體在同一基板上的邏輯單元測試記憶體晶片的一實施例。
圖66為符合本發明之使用與記憶體在同一基板上的邏輯單元測試記憶體晶片的另一實施例。
圖67為符合本發明之使用與記憶體在同一基板上的邏輯單元測試記憶體晶片的又一實施例。
圖68為符合本發明之使用與記憶體在同一基板上的邏輯單元測試記憶體晶片的再一實施例。
圖69為符合本發明之使用與記憶體在同一基板上的邏輯單元測試記憶體晶片的另一實施例。
圖70為符合本發明之用於測試記憶體晶片之一處理程序的流程圖。
圖71為符合本發明之用於測試記憶體晶片之另一處理程序的流程圖。
以下詳細描述參考隨附圖式。在任何方便之處,在圖式及以 下描述中使用相同參考編號來指相同或類似部分。雖然本文中描述了若干說明性實施例,但修改、調適及其他實施為可能的。舉例而言,可對圖式中所說明之組件進行替代、添加或修改,且可藉由替代、重排序、移除步驟或添加步驟至所揭示方法來修改本文中所描述之說明性方法。因此,以下詳細描述不限於所揭示實施例及實例。實情為,適當範疇由隨附申請專利範圍界定。
處理器架構
如貫穿本發明所使用,術語「硬體晶片」係指半導體晶圓(諸如,矽或其類似物),其上形成有一或多個電路元件(諸如,電晶體、電容器、電阻器及/或其類似者)。該等電路元件可形成處理元件或記憶體元件。「處理元件」係指一起執行至少一個邏輯功能(諸如,算術功能、邏輯閘、其他布林運算或其類似者)之一或多個電路元件。處理元件可為通用處理元件(諸如,可組態的複數個電晶體)或專用處理元件(諸如,經設計以執行特定邏輯功能之一特定邏輯閘或複數個電路元件)。「記憶體元件」係指可用以儲存資料之一或多個電路元件。「記憶體元件」亦可被稱作「記憶體胞元」。記憶體元件可為動態(使得需要電刷新以維持資料儲存)、靜態(使得資料在失去電力之後持續存在至少一段時間)或非揮發性之記憶體。
處理元件可接合以形成處理器子單元。「處理器子單元」因此可包含可執行至少一個任務或指令(例如,屬於一處理器指令集)的處理元件之最小分組。舉例而言,一子單元可包含經組態以一起執行指令之一或多個通用處理元件、與經組態成以互補方式執行指令之一或多個專用處理元件配對的一或多個通用處理元件,或其類似者。該等處理器子單元可成一陣列配置於一基板(例如,一晶圓)上。儘管「陣列」可包含矩形形狀,但陣列中之子單元的任何配置可形成於基板上。
記憶體元件可接合以形成記憶體組。舉例而言,記憶體組可包含沿著至少一條導線(或其他導電連接件)鏈接之記憶體元件的一或多個線。此外,記憶體元件可在另一方向上沿著至少一條添加導線鏈接。舉例而言,記憶體元件可沿著字線及位元線配置,如下文所解釋。儘管記憶體組可包含線,但組中之元件的任何配置可用以在基板上形成組。此外,一或多個組可電接合至至少一個記憶體控制器以形成記憶體陣列。儘管記憶體陣列可包含組之矩形配置,但陣列中之組的任何配置可形成於基板上。
如貫穿本發明進一步所使用,「匯流排」係指基板之元件之間的任何通信連接件。舉例而言,導線或線(形成電連接件)、光纖(形成光學連接件)或進行組件之間的通信之任何其他連接件可被稱作「匯流排」。
習知處理器使通用邏輯電路與共用記憶體配對。共用記憶體可儲存用於由邏輯電路執行之指令集以及用於指令集之執行且由指令集之執行產生的資料兩者。如下文所描述,一些習知處理器使用快取系統來縮減執行自共用記憶體提取時的延遲;然而,習知快取系統保持共用。習知處理器包括中央處理單元(CPU)、圖形處理單元(GPU)、各種特殊應用積體電路(ASIC)或其類似者。圖1展示CPU之實例,且圖2展示GPU之實例。
如圖1所示,CPU 100可包含處理單元110,處理單元110可包括一或多個處理器子單元,諸如處理器子單元120a及處理器子單元120b。儘管圖1中未描繪,但每一處理器子單元可包含複數個處理元件。此外,處理單元110可包括一或多個層級之晶載快取記憶體。此類快取記憶體元件通常與處理單元110形成於同一半導體晶粒上,而非經由形成於基板中之一或多個匯流排連接至處理器子單元120a及120b,該基板含有處理器子單元120a及120b以及快取記憶體元件。對於習知處理器中之第一 階(L1)及第二階(L2)快取記憶體,直接在同一晶粒上而非經由匯流排連接之配置為常用的。替代地,在早期處理器中,L2快取記憶體係使用子單元與L2快取記憶體之間的背側匯流排而在處理器子單元當中共用。背側匯流排通常大於下文所描述之前側匯流排。因此,因為快取記憶體待供晶粒上之所有處理器子單元共用,所以快取記憶體130可與處理器子單元120a及120b在同一晶粒上形成或經由一或多個背側匯流排以通信方式耦接至處理器子單元120a及120b。在不具有匯流排(例如,快取記憶體直接形成於晶粒上)之實施例以及使用背側匯流排之實施例兩者中,快取記憶體在CPU之處理器子單元之間共用。
此外,處理單元110與共用記憶體140a及記憶體140b通信。舉例而言,記憶體140a及140b可表示共用動態隨機存取記憶體(DRAM)之記憶體組。儘管描繪為具有兩個記憶體組,但大部分習知記憶體晶片包括介於八個與十六個之間的記憶體組。因此,處理器子單元120a及120b可使用共用記憶體140a及140b儲存資料,該資料接著由處理器子單元120a及120b進行操作。然而,此配置導致記憶體140a及140b與處理單元110之間的匯流排在處理單元110之時脈速度超過匯流排之資料傳送速度時成為瓶頸。對於習知處理器,通常係如此情況,從而導致低於基於時脈速率及電晶體數目之規定處理速度的有效處理速度。
如圖2中所展示,GPU中亦存在類似缺陷。GPU 200可包含處理單元210,處理單元210可包括一或多個處理器子單元(例如,子單元220a、220b、220c、220d、220e、220f、220g、220h、220i、220j、220k、220l、220m、220n、220o及220p)。此外,處理單元210可包括一或多個層級之晶載快取記憶體及/或暫存器檔案。此類快取記憶體元件通常與處理單元210形成於同一半導體晶粒上。實際上,在圖2之實施例中,快取記 憶體210與處理單元210形成於同一晶粒上且在所有處理器子單元當中共用,而快取記憶體230a、230b、230c及230d分別形成於處理器子單元之子集上且專用於該等處理器子單元。
此外,處理單元210與共用記憶體250a、250b、250c及250d通信。舉例而言,記憶體250a、250b、250c及250d可表示共用DRAM之記憶體組。因此,處理單元210之處理器子單元可使用共用記憶體250a、250b、250c及250d儲存資料,該資料接著由該等處理器子單元進行操作。然而,此配置導致記憶體250a、250b、250c及250d與處理單元210之間的匯流排成為瓶頸,其類似於上文關於CPU所描述之瓶頸。
所揭示硬體晶片之概述
圖3A為描繪例示性硬體晶片300之實施例的示意圖。硬體晶片300可包含經設計以緩解上文關於CPU、GPU及其他習知處理器所描述之瓶頸的分散式處理器。分散式處理器可包括在空間上分佈於單一基板上之複數個處理器子單元。此外,如上文所解釋,在本發明之分散式處理器中,對應記憶體組亦在空間上分佈於基板上。在一些實施例中,分散式處理器可與一組指令相關聯,且分散式處理器之處理器子單元中的每一者可負責執行包括於該組指令中之一或多個任務。
如圖3A中所描繪,硬體晶片300可包含複數個處理器子單元,例如,邏輯及控制子單元320a、320b、320c、320d、320e、320f、320g及320h。如圖3A中進一步所描繪,每一處理器子單元可具有一專用記憶體執行個體。舉例而言,邏輯及控制子單元320a可操作地連接至專用記憶體執行個體330a,邏輯及控制子單元320b可操作地連接至專用記憶體執行個體330b,邏輯及控制子單元320c可操作地連接至專用記憶體執行個體330c,邏輯及控制子單元320d可操作地連接至專用記憶體執行個體330d, 邏輯及控制子單元320e可操作地連接至專用記憶體執行個體330e,邏輯及控制子單元320f可操作地連接至專用記憶體執行個體330f,邏輯及控制子單元320g可操作地連接至專用記憶體執行個體330g,且邏輯及控制子單元320h可操作地連接至專用記憶體執行個體330h。
儘管圖3A將每一記憶體執行個體描繪為單一記憶體組,但硬體晶片300可包括兩個或多於兩個記憶體組作為用於硬體晶片300上之處理器子單元的專用記憶體執行個體。此外,儘管圖3A將每一處理器子單元描繪為包含邏輯組件及用於專用記憶體組之控制件兩者,但硬體晶片300可使用用於記憶體組之控制件,該等控制件至少部分地與該等邏輯組件分開。此外,如圖3A中所描繪,可將兩個或多於兩個處理器子單元及其對應記憶體組分組成例如處理群組310a、310b、310c及310d。「處理群組」可表示上面形成有硬體晶片300之基板上的空間區別。因此,處理群組可包括用於群組中之記憶體組的其他控制件,例如,控制件340a、340b、340c及340d。另外或替代地,「處理群組」可表示用於編譯程式碼以供在硬體晶片300上執行之目的之邏輯分組。因此,用於硬體晶片300之編譯器(下文進一步描述)可在硬體晶片300上之處理群組之間劃分整組指令。
此外,主機350可將指令、資料及其他輸入提供至硬體晶片300且自該硬體晶片讀取輸出。因此,一組指令可全部在單一晶粒上,例如在代管硬體晶片300之晶粒上執行。實際上,晶粒外之僅有通信可包括指令至硬體晶片300之載入、發送至硬體晶片300之任何輸入及自硬體晶片300讀取之任何輸出。因此,所有計算及記憶體操作可在晶粒上(在硬體晶片300上)執行,此係因為硬體晶片300之處理器子單元與硬體晶片300之專用記憶體組通信。
圖3B為另一例示性硬體晶片300'之實施例的示意圖。儘管 描繪為硬體晶片300之替代,但圖3B中所描繪之架構可至少部分地與圖3A中所描繪之架構組合。
如圖3B中所描繪,硬體晶片300'可包含複數個處理器子單元,例如,處理器子單元350a、350b、350c及350d。如圖3B中進一步所描繪,每一處理器子單元可具有複數個專用記憶體執行個體。舉例而言,處理器子單元350a可操作地連接至專用記憶體執行個體330a及330b,處理器子單元350b可操作地連接至專用記憶體執行個體330c及330d,處理器子單元350c可操作地連接至專用記憶體執行個體330e及330f,且處理器子單元350d可操作地連接至專用記憶體執行個體330g及330h。此外,如圖3B中所描繪,可將處理器子單元及其對應記憶體組分組成例如處理群組310a、310b、310c及310d。如上文所解釋,「處理群組」可表示上面形成有硬體晶片300'之基板上的空間區別及/或用於編譯程式碼以供在硬體晶片300'上執行之目的之邏輯分組。
如圖3B中進一步所描繪,處理器子單元可經由匯流排彼此通信。舉例而言,如圖3B所展示,處理器子單元350a可經由匯流排360a與處理器子單元350b通信,經由匯流排360c與處理器子單元350c通信,且經由匯流排360f與處理器子單元350d通信。類似地,處理器子單元350b可經由匯流排360a與處理器子單元350a通信(如上文所描述),經由匯流排360e與處理器子單元350c通信,且經由匯流排360d與處理器子單元350d通信。此外,處理器子單元350c可經由匯流排360c與處理器子單元350a通信(如上文所描述),經由匯流排360e與處理器子單元350b通信(如上文所描述),且經由匯流排360b與處理器子單元350d通信。因此,處理器子單元350d可經由匯流排360f與處理器子單元350a通信(如上文所描述),經由匯流排360d與處理器子單元350b通信(如上文所描述),且經 由匯流排360b與處理器子單元350c通信(如上文所描述)。一般熟習此項技術者將理解,可使用比圖3B中所描繪之匯流排少的匯流排。舉例而言,可消除匯流排360e,使得處理器子單元350b與350c之間的通信經由處理器子單元350a及/或350d傳遞。類似地,可消除匯流排360f,使得處理器子單元350a與處理器子單元350d之間的通信經由處理器子單元350b或350c傳遞。
此外,一般熟習此項技術者將理解,可使用除圖3A及圖3B中所描繪之架構以外的架構。舉例而言,各具有單一處理器子單元及記憶體執行個體之處理群組的陣列可配置於基板上。處理器子單元可另外或替代地形成用於對應的專用記憶體組之控制器的部分、用於對應的專用記憶體之記憶體墊之控制器的部分,或其類似者。
鑒於上文所描述之架構,相較於傳統架構,硬體晶片300及300'可顯著提高記憶體密集型任務之效率。舉例而言,資料庫操作及人工智慧演算法(諸如,神經網路)為記憶體密集型任務之實例,對於記憶體密集型任務,傳統架構在效率上低於硬體晶片300及300'。因此,硬體晶片300及300'可被稱作資料庫加速器處理器及/或人工智慧加速器處理器。
組態所揭示硬體晶片
上文所描述之硬體晶片架構可經組態以用於程式碼執行。舉例而言,每一處理器子單元可與硬體晶片中之其他處理器子單元隔開而個別地執行程式碼(定義一組指令)。因此,替代依賴於作業系統來管理多執行緒處理或使用多任務處理(其為並行而非平行的),本發明之硬體晶片可允許處理器子單元完全平行地操作。
除上文所描述之完全平行實施以外,指派給每一處理器子單元之指令中的至少一些可重疊。舉例而言,分散式處理器上之複數個處理 器子單元可執行重疊指令作為例如作業系統或其他管理軟體之實施,同時執行非重疊指令以便在作業系統或其他管理軟體之內容背景內執行平行任務。
圖4描繪藉由處理群組410進行之用於執行通用命令的例示性處理程序400。舉例而言,處理群組410可包含本發明之硬體晶片(例如,硬體晶片300、硬體晶片300'或其類似者)的一部分。
如圖4中所描繪,命令可發送至與專用記憶體執行個體420配對之處理器子單元430。外部主機(例如,主機350)可將該命令發送至處理群組410以供執行。替代地,主機350可能已發送包括該命令之指令集以用於儲存於記憶體執行個體420中,使得處理器子單元430可自記憶體執行個體420擷取命令且執行所擷取之命令。因此,該命令可由處理元件440執行,該處理元件為可組態以執行所接收之命令的通用處理元件。此外,處理群組410可包括用於記憶體執行個體420之控制件460。如圖4中所描繪,控制件460可執行處理元件440在執行所接收之命令時所需的對記憶體執行個體420之任何讀取及/或寫入。在執行命令之後,處理群組410可將命令之結果輸出至例如外部主機或輸出至同一硬體晶片上之不同處理群組。
在一些實施例中,如圖4中所描繪,處理器子單元430可進一步包括位址產生器450。「位址產生器」可包含複數個處理元件,該等複數個處理元件經組態以判定用於執行讀取及寫入之一或多個記憶體組中的位址,且亦可對位於所判定位址處之資料執行操作(例如,加法、減法、乘法或其類似者)。舉例而言,位址產生器450可判定用於對記憶體進行之任何讀取或寫入的位址。在一個實例中,位址產生器450可藉由在不再需要讀取值時用基於命令所判定之新值覆寫讀取值來提高效率。另外或替代 地,位址產生器450可選擇可用位址以用於儲存來自命令執行之結果。此可允許為後一時脈循環排程結果讀出,此對於外部主機較為便利。在另一實例中,位址產生器450可在諸如向量或矩陣乘法累加(multiply-accumulate)計算之多循環計算期間判定讀取及寫入的位址。因此,位址產生器450可維持或計算用於讀取資料及寫入多循環計算之中間結果的記憶體位址,使得處理器子單元430可繼續處理而不必儲存此等記憶體位址。
圖5描繪藉由處理群組510進行之用於執行專門命令的例示性處理程序500。舉例而言,處理群組510可包含本發明之硬體晶片(例如,硬體晶片300、硬體晶片300'或其類似者)的一部分。
如圖5中所描繪,專門命令(例如,乘法累加命令)可發送至與專用記憶體執行個體520配對之處理元件530。外部主機(例如,主機350)可將該命令發送至處理元件530以供執行。因此,該命令可由處理元件530在來自主機之給定信號下執行,該處理元件為可組態以執行特定命令(包括所接收之命令)的專門處理元件。替代地,處理元件530可自記憶體執行個體520擷取命令以供執行。因此,在圖5之實例中,處理元件530為乘法累加(MAC)電路,該電路經組態以執行自外部主機接收或自記憶體執行個體520擷取之MAC命令。在執行命令之後,處理群組410可將命令之結果輸出至例如外部主機或輸出至同一硬體晶片上之不同處理群組。儘管關於單一命令及單一結果來描繪,但可接收或擷取並執行複數個命令,且複數個結果可在輸出之前在處理群組510上組合。
儘管在圖5中描繪為MAC電路,但額外或替代的專門電路可包括於處理群組510中。舉例而言,可實施MAX讀取命令(其傳回向量之最大值)、MAX0讀取命令(亦被稱作整流器之常用功能,其傳回整個向 量,而且傳回為0之最大值),或其類似者。
儘管分開地描繪,但圖4之一般處理群組410及圖5之專門處理群組510可組合。舉例而言,通用處理器子單元可耦接至一或多個專門處理器子單元以形成處理器子單元。因此,通用處理器子單元可用於不可由一或多個專門處理器子單元執行的所有指令。
一般熟習此項技術者將理解,可藉由專門邏輯電路來處置神經網路實施及其他記憶密集型任務。舉例而言,資料庫查詢、封包檢測、字串比較及其他功能在由本文中所描述之硬體晶片執行的情況下可提高效率。
用於分散式處理之基於記憶體之架構
在符合本發明之硬體晶片上,專用匯流排可在該晶片上之處理器子單元之間及/或在該等處理器子單元與其對應的專用記憶體組之間傳送資料。使用專用匯流排可降低仲裁成本,此係因為競爭請求係不可能的或容易使用軟體而非使用硬體來避免。
圖6示意性地描繪處理群組600之示意圖。處理群組600可供用於硬體晶片(例如,硬體晶片300、硬體晶片300'或其類似者)中。處理器子單元610可經由匯流排630連接至記憶體620。記憶體620可包含隨機可存取記憶體(RAM)元件,其儲存用於由處理器子單元610執行之資料及程式碼。在一些實施例中,記憶體620可為N路記憶體(其中N為等於或大於1之數字,其暗示交錯之記憶體620中之區段的數目)。因為處理器子單元610經由匯流排630耦接至專用於處理器子單元610之記憶體620,所以N可保持相對較小而不損害執行效能。此表示對習知多路暫存器檔案或快取記憶體之改良,其中較低N通常導致較低執行效能,且較高N通常導致大的面積及功率損失。
可根據例如一或多個任務中所涉及之資料的大小而調整記憶體620之大小、通路之數目及匯流排630之寬度以滿足使用處理群組600之系統之任務及應用程式實施的要求。記憶體元件620可包含此項技術中已知的一或多個類型之記憶體,例如,揮發性記憶體(諸如,RAM、DRAM、SRAM、相變RAM(PRAM)、磁阻式RAM(MRAM)、電阻式RAM(ReRAM)或其類似者)或非揮發性記憶體(諸如,快閃記憶體或ROM)。根據一些實施例,記憶體元件620之一部分可包含第一記憶體類型,而另一部分可包含另一記憶體類型。舉例而言,記憶體元件620之程式碼區可包含ROM元件,而記憶體元件620之資料區可包含DRAM元件。此分割之另一實例為將神經網路之權重儲存於快閃記憶體中,而將用於計算之資料儲存於DRAM中。
處理器子單元610包含處理元件640,該處理元件可包含處理器。該處理器可為管線式或非管線式的,可為定製精簡指令集演算(RISC)元件或其他處理方案,實施於此項技術中已知之任何商業積體電路(IC)(諸如,ARM、ARC、RISCV等)上,如一般熟習此項技術者所瞭解。處理元件640可包含控制器,該控制器在一些實施例中包括算術邏輯單元(ALU)或其他控制器。
根據本發明之一些實施例,執行所接收或所儲存之程式碼的處理元件640可包含通用處理元件,且因此為靈活的並能夠執行廣泛多種處理操作。當比較在特定操作之執行期間所消耗的功率時,非專用電路系統通常比特定操作專用電路系統消耗更多功率。因此,當執行特定的複雜算術計算時,處理元件640可比專用硬體消耗更多功率且執行效率更低。因此,根據一些實施例,處理元件640之控制器可經設計以執行特定操作(例如,加法或「移動」操作)。
在本發明之一實施例中,特定操作可由一或多個加速器650執行。每一加速器可為專用的且經程式化以執行特定計算(諸如,乘法、浮點向量運算或其類似者)。藉由使用加速器,每個處理器子單元之每次計算所消耗的平均功率可降低,且計算輸送量此後增大。可根據系統經設計以實施之應用程式(例如,執行神經網路、執行資料庫查詢或其類似者)而選擇加速器650。加速器650可由處理元件640組態且可與處理元件串接地操作以用於降低功率消耗且加速計算及演算。加速器可另外或替代地用以在諸如智慧型直接記憶體存取(DMA)周邊裝置之處理群組600的記憶體與MUX/DEMUX/輸入/輸出埠(例如,MUX 650及DEMUX 660)之間傳送資料。
加速器650可經組態以執行多種功能。舉例而言,一個加速器可經組態以執行常用於神經網路中之16位元浮點計算或8位元整數計算。加速器功能之另一實例為常用於神經網路之訓練階段期間的32位元浮點計算。加速器功能之又一實例為查詢處理,諸如用於資料庫中之查詢處理。在一些實施例中,加速器650可包含用以執行此等功能之專門處理元件及/或可根據儲存於記憶體元件620上之組態資料而組態使得其可加以修改。
加速器650可另外或替代地實施記憶體移動之可組態的指令碼處理清單以對資料至/自記憶體620或至/自其他加速器及/或輸入/輸出的移動進行計時。因此,如下文進一步所解釋,使用處理群組600之硬體晶片內部的所有資料移動可使用軟體同步而非硬體同步。舉例而言,一個處理群組(例如,群組600)中之加速器可每十個循環將資料自其輸入端傳送至其加速器,接著在下一個循環輸出資料,藉此使資訊自處理群組之記憶體流送至另一記憶體。
如圖6中進一步所描繪,在一些實施例中,處理群組600可進一步包含連接至其輸入埠之至少一個輸入多工器(MUX)660及連接至其輸出埠之至少一個輸出DEMUX 670。此等MUX/DEMUX可由來自處理元件640及/或來自加速器650中之一者的控制信號(未圖示)控制,該等控制信號係根據正由處理元件640進行之當前指令及/或由加速器650中之一加速器執行的操作而判定。在一些情境中,可能需要處理群組600(根據來自其程式碼記憶體之預定義指令)將資料自其輸入埠傳送至其輸出埠。因此,除DEMUX/MUX中之每一者連接至處理元件640及加速器650以外,輸入MUX(例如,MUX 660)中之一或多者亦可經由一或多個匯流排直接連接至輸出DEMUX(例如,DEMUX 670)。
圖6之處理群組600可排成陣列以形成分散式處理器,例如,如圖7A中所描繪。處理群組可安置於基板710上以形成陣列。在一些實施例中,基板710可包含諸如矽之半導體基板。另外或替代地,基板710可包含電路板,諸如可撓性電路板。
如圖7A中所描繪,基板710可包括安置於其上之複數個處理群組,諸如處理群組600。因此,基板710包括記憶體陣列,該記憶體陣列包括複數個組,諸如組720a、720b、720c、720d、720e、720f、720g及720h。此外,基板710包括處理陣列,該處理陣列可包括複數個處理器子單元,諸如子單元730a、730b、730c、730d、730e、730f、730g及730h。
此外,如上文所解釋,每一處理群組可包括一處理器子單元及專用於該處理器子單元之一或多個對應的記憶體組。因此,如圖7A中所描繪,每一子單元與一對應的專用記憶體組相關聯,例如:處理器子單元730a與記憶體組720a相關聯,處理器子單元730b與記憶體組720b相關聯,處理器子單元730c與記憶體組720c相關聯,處理器子單元730d與記憶體 組720d相關聯,處理器子單元730e與記憶體組720e相關聯,處理器子單元730f與記憶體組720f相關聯,處理器子單元730g與記憶體組720g相關聯,處理器子單元730h與記憶體組720h相關聯。
為了允許每一處理器子單元與其對應的專用記憶體組通信,基板710可包括將處理器子單元中之一者連接至其對應的專用記憶體組的第一複數個匯流排。因此,匯流排740a將處理器子單元730a連接至記憶體組720a,匯流排740b將處理器子單元730b連接至記憶體組720b,匯流排740c將處理器子單元730c連接至記憶體組720c,匯流排740d將處理器子單元730d連接至記憶體組720d,匯流排740e將處理器子單元730e連接至記憶體組720e,匯流排740f將處理器子單元730f連接至記憶體組720f,匯流排740g將處理器子單元730g連接至記憶體組720g,且匯流排740h將處理器子單元730h連接至記憶體組720h。此外,為了允許每一處理器子單元與其他處理器子單元通信,基板710可包括將處理器子單元中之一者連接至處理器子單元中之另一者的第二複數個匯流排。在圖7A之實例中,匯流排750a將處理器子單元730a連接至處理器子單元750e,匯流排750b將處理器子單元730a連接至處理器子單元750b,匯流排750c將處理器子單元730b連接至處理器子單元750f,匯流排750d將處理器子單元730b連接至處理器子單元750c,匯流排750e將處理器子單元730c連接至處理器子單元750g,匯流排750f將處理器子單元730c連接至處理器子單元750d,匯流排750g將處理器子單元730d連接至處理器子單元750h,匯流排750h將處理器子單元730h連接至處理器子單元750g,匯流排750i將處理器子單元730g連接至處理器子單元750g,且匯流排750j將處理器子單元730f連接至處理器子單元750e。
因此,在圖7A中所展示之實例配置中,複數個邏輯處理器 子單元配置成至少一列及至少一行。該第二複數個匯流排將每一處理器子單元連接至同一列中之至少一個鄰近處理器子單元且連接至同一行中之至少一個鄰近處理器子單元。圖7A可被稱作「部分塊連接」。
圖7A中所展示之配置可經修改以形成「完全塊連接」。完全塊連接包括連接對角線處理器子單元之額外匯流排。舉例而言,該第二複數個匯流排可包括處理器子單元730a與處理器子單元730f之間、處理器子單元730b與處理器子單元730e之間、處理器子單元730b與處理器子單元730g之間、處理器子單元730c與處理器子單元730f之間、處理器子單元730c與處理器子單元730h之間以及處理器子單元730d與處理器子單元730g之間的額外匯流排。
完全塊連接可用於卷積計算,在卷積計算中,使用儲存於附近處理器子單元中之資料及結果。舉例而言,在卷積影像處理期間,每一處理器子單元可接收影像之塊(諸如,像素或像素群組)。為了計算卷積結果,每一處理器子單元可自所有八個鄰近處理器子單元獲取資料,該等鄰近處理器子單元中之每一者已接收對應塊。在部分塊連接中,來自對角線鄰近處理器子單元之資料可經由連接至該處理器子單元之其他鄰近處理器子單元傳遞。因此,晶片上之分散式處理器可為人工智慧加速器處理器。
在卷積計算之特定實施例中,可跨越複數個處理器子單元來劃分N×M影像。每一處理器子單元可在其對應塊上藉由A×B濾波器執行卷積。為了對塊之間的邊界上的一或多個像素執行濾波,每一處理器子單元可能需要來自相鄰處理器子單元之資料,該等相鄰處理器子單元具有包括同一邊界上之像素的塊。因此,針對每一處理器子單元產生之程式碼組態該子單元以計算卷積且每當需要來自鄰近子單元之資料時自第二複數個匯流排提取。將資料輸出至第二複數個匯流排之對應命令被提供至該子單 元以確保所需資料傳送之適當時序。
圖7A之部分塊連接可修改為N部分塊連接。在此修改中,第二複數個匯流排可進一步將每一處理器子單元連接至在圖7A之匯流排延行所沿的四個方向(亦即,上、下、左及右)上在該處理器子單元之臨限距離內(例如,在n個處理器子單元內)的處理器子單元。可對完全塊連接進行類似修改(以產生N完全塊連接),使得第二複數個匯流排進一步將每一處理器子單元連接至在除兩個對角線方向以外的圖7A之匯流排延行所沿的四個方向上在該處理器子單元之臨限距離內(例如,在n個處理器子單元內)的處理器子單元。
其他配置係可能的。舉例而言,在圖7B中所展示之配置中,匯流排750a將處理器子單元730a連接至處理器子單元730d,匯流排750b將處理器子單元730a連接至處理器子單元730b,匯流排750c將處理器子單元730b連接至處理器子單元730c,且匯流排750d將處理器子單元730c連接至處理器子單元730d。因此,在圖7B中所展示之實例配置中,複數個處理器子單元配置成星形圖案。第二複數個匯流排將每一處理器子單元連接至星形圖案內之至少一個鄰近處理器子單元。
其他配置(未圖示)係可能的。舉例而言,可使用相鄰者連接配置,使得複數個處理器子單元配置於一或多個線中(例如,類似於圖7A中所描繪之情況)。在相鄰者連接配置中,第二複數個匯流排將每一處理器子單元連接至同一線中在左方之處理器子單元、同一線中在右方之處理器子單元、同一線中在左方及右方兩者之處理器子單元,等等。
在另一實施例中,可使用N線性連接配置。在N線性連接配置中,第二複數個匯流排將每一處理器子單元連接至在該處理器子單元之臨限距離內(例如,在n個處理器子單元內)的處理器子單元。N線性 連接配置可與線陣列(上文所描述)、矩形陣列(圖7A中所描繪)、橢圓形陣列(圖7B中所描繪)或任何其他幾何陣列一起使用。
在又一實施例中,可使用N對數連接配置。在N對數連接配置中,第二複數個匯流排將每一處理器子單元連接至在該處理器子單元之二的冪之臨限距離內(例如,在2n個處理器子單元內)的處理器子單元。N對數連接配置可與線陣列(上文所描述)、矩形陣列(圖7A中所描繪)、橢圓形陣列(圖7B中所描繪)或任何其他幾何陣列一起使用。
可組合上文所描述之連接方案中之任一者以供用於同一硬體晶片中。舉例而言,可在一個區中使用完全塊連接,而在另一區中使用部分塊連接。在另一實施例中,可在一個區中使用N線性連接配置,而在另一區中使用N完全塊連接。
替代記憶體晶片之處理器子單元之間的專用匯流排或除該等專用匯流排以外,亦可使用一或多個共用匯流排以互連分散式處理器之所有處理器子單元(或處理器子單元之子集)。仍可藉由使用由處理器子單元執行之程式碼對共用匯流排上之資料傳送進行計時來避免共用匯流排上之衝突,如下文進一步所解釋。替代共用匯流排或除共用匯流排以外,亦可使用可組態匯流排以動態地連接處理器子單元以形成連接至分開匯流排之處理器單元之群組。舉例而言,可組態匯流排可包括電晶體或可由處理器子單元來控制以將資料傳送引導至選定處理器子單元的其他機構。
在圖7A及圖7B兩者中,處理陣列之複數個處理器子單元在空間上分佈於記憶體陣列之複數個離散記憶體組當中。在其他替代實施例(未圖示)中,複數個處理器子單元可聚集在基板之一或多個區中,且複數個記憶體組可聚集在基板之一或多個其他區中。在一些實施例中,可使用空間分佈與聚集之組合(未圖示)。舉例而言,基板之一個區可包括處 理器子單元之叢集,基板之另一區可包括記憶體組之叢集,且基板之又一區可包括分佈於記憶體組當中之處理陣列。
一般熟習此項技術者將認識到,在基板上將處理器群組600排成陣列並非排他性實施例。舉例而言,每一處理器子單元可與至少兩個專用記憶體組相關聯。因此,可替代處理群組600或與處理群組600組合地使用圖3B之處理群組310a、310b、310c及310d,以形成處理陣列及記憶體陣列。可使用包括例如三個、四個或多於四個專用記憶體組之其他處理群組(未圖示)。
複數個處理器子單元中之每一者可經組態以相對於包括於複數個處理器子單元中之其他處理器子單元獨立地執行與特定應用程式相關聯之軟體程式碼。舉例而言,如下文所解釋,指令之複數個子系列可分組為機器碼且被提供至每一處理器子單元以供執行。
在一些實施例中,每一專用記憶體組包含至少一個動態隨機存取記憶體(DRAM)。替代地,記憶體組可包含諸如靜態隨機存取記憶體(SRAM)、DRAM、快閃記憶體或其類似者之記憶體類型的混合。
在習知處理器中,處理器子單元之間的資料共用通常藉由共用記憶體來執行。共用記憶體通常需要大部分晶片面積及/或執行由額外硬體(諸如,仲裁器)管理之匯流排。如上文所描述,該匯流排造成瓶頸。此外,可在晶片外部之共用記憶體通常包括快取一致性機制及更複雜的快取記憶體(例如,L1快取記憶體、L2快取記憶體及共用DRAM),以便將準確且最新的資料提供至處理器子單元。如下文進一步所解釋,圖7A及圖7B中所描繪之專用匯流排允許無硬體管理(諸如,仲裁器)之硬體晶片。此外,使用如圖7A及圖7B中所描繪之專用記憶體允許消除複雜的快取層及一致性機制。
實情為,為了允許每一處理器子單元存取由其他處理器子單元計算及/或儲存於專用於其他處理器子單元之記憶體組中的資料,提供匯流排,該等匯流排之時序係使用由每一處理器子單元個別地執行之程式碼動態地執行。此情形允許消除如習知地所使用的大部分(若非全部)匯流排管理硬體。此外,此等匯流排上之直接傳送替換複雜的快取機制,以縮減在記憶體讀取及寫入期間的潛時。
基於記憶體之處理陣列
如圖7A及圖7B中所描繪,本發明之記憶體晶片可獨立地操作。替代地,本發明之記憶體晶片可與諸如記憶體裝置(例如,一或多個DRAM組)、系統單晶片、場可程式化閘陣列(FPGA)或其他處理及/或記憶體晶片的一或多個額外積體電路可操作地連接。在此等實施例中,由該架構執行之一系列指令中的任務可在記憶體晶片之處理器子單元與額外積體電路之任何處理器子單元之間進行劃分(例如,藉由編譯器,如下文所描述)。舉例而言,其他積體電路可包含將指令及/或資料輸入至記憶體晶片且自其接收輸出之主機(例如,圖3A之主機350)。
為了將本發明之記憶體晶片與一或多個額外積體電路互連,記憶體晶片可包括記憶體介面,諸如遵從聯合電子裝置工程委員會(Joint Electron Device Engineering Council;JEDEC)標準或其變體中之任一者的記憶體介面。一或多個額外積體電路接著可連接至該記憶體介面。因此,若該一或多個額外積體電路連接至本發明之複數個記憶體晶片,則資料可經由該一或多個額外積體電路在記憶體晶片之間共用。另外或替代地,該一或多個額外積體電路可包括用以連接至本發明之記憶體晶片上之匯流排的匯流排,使得該一或多個額外積體電路可與本發明之記憶體晶片串接地執行程式碼。在此等實施例中,該一或多個額外積體電路進一步輔 助分散式處理,即使該等額外積體電路可與本發明之記憶體晶片在不同基板上亦如此。
此外,本發明之記憶體晶片可排成陣列以便形成分散式處理器之陣列。舉例而言,一或多個匯流排可將記憶體晶片770a連接至額外記憶體晶片770b,如圖7C中所描繪。在圖7C之實施例中,記憶體晶片770a包括處理器子單元與專用於每一處理器子單元之一或多個對應的記憶體組,例如:處理器子單元730a與記憶體組720a相關聯,處理器子單元730b與記憶體組720b相關聯,處理器子單元730e與記憶體組720c相關聯,且處理器子單元730f與記憶體組720d相關聯。匯流排將每一處理器子單元連接至其對應的記憶體組。因此,匯流排740a將處理器子單元730a連接至記憶體組720a,匯流排740b將處理器子單元730b連接至記憶體組720b,匯流排740c將處理器子單元730e連接至記憶體組720c,且匯流排740d將處理器子單元730f連接至記憶體組720d。此外,匯流排750a將處理器子單元730a連接至處理器子單元750e,匯流排750b將處理器子單元730a連接至處理器子單元750b,匯流排750c將處理器子單元730b連接至處理器子單元750f,且匯流排750d將處理器子單元730e連接至處理器子單元750f。舉例而言,如上文所描述,可使用記憶體晶片770a之其他配置。
類似地,記憶體晶片770b包括處理器子單元與專用於每一處理器子單元之一或多個對應的記憶體組,例如:處理器子單元730c與記憶體組720e相關聯,處理器子單元730d與記憶體組720f相關聯,處理器子單元730g與記憶體組720g相關聯,且處理器子單元730h與記憶體組720h相關聯。匯流排將每一處理器子單元連接至其對應的記憶體組。因此,匯流排740e將處理器子單元730c連接至記憶體組720e,匯流排740f將處理器子單元730d連接至記憶體組720f,匯流排740g將處理器子單元730g連 接至記憶體組720g,且匯流排740h將處理器子單元730h連接至記憶體組720h。此外,匯流排750g將處理器子單元730c連接至處理器子單元750g,匯流排750h將處理器子單元730d連接至處理器子單元750h,匯流排750i將處理器子單元730c連接至處理器子單元750d,且匯流排750j將處理器子單元730g連接至處理器子單元750h。舉例而言,如上文所描述,可使用記憶體晶片770b之其他配置。
記憶體晶片770a及770b之處理器子單元可使用一或多個匯流排來連接。因此,在圖7C之實施例中,匯流排750e可將記憶體晶片770a之處理器子單元730b與記憶體晶片770b之處理器子單元730c連接,且匯流排750f可將記憶體晶片770a之處理器子單元730f與記憶體770b之處理器子單元730c連接。舉例而言,匯流排750e可充當至記憶體晶片770b之輸入匯流排(且因此充當記憶體晶片770a之輸出匯流排),而匯流排750f可充當至記憶體晶片770a之輸入匯流排(且因此充當記憶體晶片770b之輸出匯流排),或反之亦然。替代地,匯流排750e及750f均可充當記憶體晶片770a與770b之間的雙向匯流排。
匯流排750e及750f可包括直接導線或可在高速連接上交錯,以便縮減用於記憶體晶片770a與積體電路770b之間的晶片間介面的接腳。此外,用於記憶體晶片本身中的上文所描述之連接配置中之任一者可用以將記憶體晶片連接至一或多個額外積體電路。舉例而言,記憶體晶片770a及770b可使用完全塊或部分塊連接而非如圖7C所展示僅使用兩個匯流排來連接。
因此,儘管使用匯流排750e及750f來描繪,但架構760可包括更少匯流排或額外匯流排。舉例而言,可使用處理器子單元730b與730c之間或處理器子單元730f與730c之間的單一匯流排。替代地,可使用例如 處理器子單元730b與730d之間、處理器子單元730f與730d之間或其類似者的額外匯流排。
此外,儘管描繪為使用單一記憶體晶片及一額外積體電路,但複數個記憶體晶片可使用如上文所解釋之匯流排來連接。舉例而言,如圖7C之實施例中所描繪,記憶體晶片770a、770b、770c及770d連接成一陣列。類似於上文所描述之記憶體晶片,每一記憶體晶片包括處理器子單元及專用記憶體組。因此,此處不重複對此等組件之描述。
在圖7C之實施例中,記憶體晶片770a、770b、770c及770d連接成一迴路。因此,匯流排750a連接記憶體晶片770a與770d,匯流排750c連接記憶體晶片770a與770b,匯流排750e連接記憶體晶片770b與770c,且匯流排750g連接記憶體晶片770c與770d。儘管記憶體晶片770a、770b、770c及770d可利用完全塊連接、部分塊連接或其他連接配置來連接,但圖7C之實施例允許記憶體晶片770a、770b、770c及770d之間的更少接腳連接。
相對較大的記憶體
本發明之實施例可使用大小與習知處理器之共用記憶體相比相對較大的專用記憶體。使用專用記憶體而非共用記憶體允許繼續獲得效率增益而不會隨著記憶體增大而逐漸縮減。此允許諸如神經網路處理及資料庫查詢之記憶體密集型任務比在習知處理器中更高效地執行,在習知處理器中,增大共用記憶體之效率增益由於馮諾伊曼瓶頸而逐漸縮減。
舉例而言,在本發明之分散式處理器中,安置於分散式處理器之基板上的記憶體陣列可包括複數個離散記憶體組。離散記憶體組中之每一者可具有大於一百萬位元組之容量;以及安置於該基板上之處理陣列,該處理陣列包括複數個處理器子單元。如上文所解釋,該等處理器子 單元中之每一者可與該等複數個離散記憶體組中之一對應的專用記憶體組相關聯。在一些實施例中,該等複數個處理器子單元可在空間上分佈於記憶體陣列內之複數個離散記憶體組當中。藉由將至少一百萬位元組之專用記憶體而非幾百萬位元組之共用快取記憶體用於大型CPU或GPU,本發明之分散式處理器獲得在習知系統中由於CPU及GPU中之馮諾依曼瓶頸而不可能達成的效率。
不同記憶體可用作專用記憶體。舉例而言,每一專用記憶體組可包含至少一個DRAM組。替代地,每一專用記憶體組可包含至少一個靜態隨機存取記憶體組。在其他實施例中,不同類型之記憶體可在單一硬體晶片上組合。
如上文所解釋,每一專用記憶體可為至少一百萬位元組。因此,每一專用記憶體組可大小相同,或該等複數個記憶體組中之至少兩個記憶體組可具有不同大小。
此外,如上文所描述,該分散式處理器可包括:第一複數個匯流排,其各將該等複數個處理器子單元中之一者連接至一對應的專用記憶體組;及第二複數個匯流排,其各將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之另一者。
使用軟體之同步
如上文所解釋,本發明之硬體晶片可使用軟體而非硬體來管理資料傳送。特定而言,因為匯流排上之傳送、對記憶體進行之讀取及寫入以及處理器子單元之計算的時序係藉由處理器子單元所執行的指令之子系列設定,所以本發明之硬體晶片可執行程式碼以防止匯流排上之衝突。因此,本發明之硬體晶片可避免習知地用以管理資料傳送之硬體機構(諸如,晶片內之網路控制器、處理器子單元之間的封包剖析器及封包傳送器、 匯流排仲裁器、用以避免仲裁的複數個匯流排,或其類似者)。
若本發明之硬體晶片習知地傳送資料,則利用匯流排連接N個處理器子單元將需要由仲裁器控制的匯流排仲裁或寬MUX。實情為,如上文所描述,本發明之實施例可在處理器子單元之間使用僅為導線、光學纜線或其類似者之匯流排,其中該等處理器子單元個別地執行程式碼以避免匯流排上之衝突。因此,本發明之實施例可節省基板上之空間以及材料成本及效率損失(例如,由於仲裁導致之功率及時間消耗)。相較於使用先進先出(FIFO)控制器及/或信箱之其他架構,效率及空間增益甚至更大。
此外,如上文所解釋,除一或多個處理元件以外,每一處理器子單元亦可包括一或多個加速器。在一些實施例中,加速器可自匯流排而非自處理元件進行讀取及寫入。在此等實施例中,可藉由允許加速器在處理元件執行一或多個計算之同一循環期間傳輸資料來獲得額外效率。然而,此等實施例需要用於加速器之額外材料。舉例而言,可能需要額外電晶體以用於製造加速器。
程式碼亦可考慮處理器子單元(例如,包括形成處理器子單元之部分的處理元件及/或加速器)之內部行為,包括時序及潛時。舉例而言,編譯器(如下文所描述)可執行當產生控制資料傳送之指令子系列時考慮時序及潛時的預處理。
在一個實施例中,複數個處理器子單元可經指派計算神經網路層之任務,該神經網路層含有全部連接至較大複數個神經元之前一層的複數個神經元。假設前一層之資料均勻地散佈在複數個處理器子單元之間,執行該計算的一種方式可為組態每一處理器子單元,以依次將前一層之資料傳輸至主匯流排,且接著每一處理器子單元將此資料乘以子單元實施之對應神經元的權重。因為每一處理器子單元計算多於一個神經元,所 以每一處理器子單元將數次傳輸前一層之資料,該次數等於神經元之數目。因此,每一處理器子單元之程式碼與用於其他處理器子單元之程式碼不相同,此係因為該等子單元將在不同時間進行傳輸。
在一些實施例中,分散式處理器可包含基板(例如,諸如矽之半導體基板及/或諸如可撓性電路板之電路板),該基板具有:安置於該基板上之記憶體陣列,該記憶體陣列包括複數個離散記憶體組;及安置於該基板上之處理陣列,該處理陣列包括複數個處理器子單元,如描繪於例如圖7A及圖7B中。如上文所解釋,該等處理器子單元中之每一者可與該等複數個離散記憶體組中之一對應的專用記憶體組相關聯。此外,如描繪於例如圖7A及圖7B中,分散式處理器可進一步包含複數個匯流排,該等複數個匯流排中之每一者將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之至少另一者。
如上文所解釋,該等複數個匯流排可用軟體來控制。因此,該等複數個匯流排可能不含時序硬體邏輯組件,使得在處理器子單元之間及跨越該等複數個匯流排中之對應者的資料傳送不受時序硬體邏輯組件控制。在一個實施例中,該等複數個匯流排可能不含匯流排仲裁器,使得在處理器子單元之間及跨越該等複數個匯流排中之對應者的資料傳送不受匯流排仲裁器控制。
在一些實施例中,如描繪於例如圖7A及圖7B中,分散式處理器可進一步包含第二複數個匯流排,該第二複數個匯流排將複數個處理器子單元中之一者連接至一對應的專用記憶體組。類似於上文所描述之複數個匯流排,第二複數個匯流排可能不含時序硬體邏輯組件,使得處理器子單元與對應的專用記憶體組之間的資料傳送不受時序硬體邏輯組件控制。在一個實施例中,第二複數個匯流排可能不含匯流排仲裁器,使得處 理器子單元與對應的專用記憶體組之間的資料傳送不受匯流排仲裁器控制。
如本文中所使用,片語「不含」未必暗示諸如時序硬體邏輯組件(例如,匯流排仲裁器、仲裁樹、FIFO控制器、信箱或其類似者)的組件之絕對不存在。此等組件仍可包括於描述為「不含」彼等組件之硬體晶片中。實情為,片語「不含」係指硬體晶片之功能;亦即,「不含」時序硬體邏輯組件之硬體晶片控制其資料傳送之時序而不使用包括於其中的時序硬體邏輯組件(若存在)。舉例而言,硬體晶片執行包括指令之子系列的程式碼,該等指令控制該硬體晶片之處理器子單元之間的資料傳送,即使該硬體晶片包括時序硬體邏輯組件作為防範由於所執行程式碼中之錯誤的衝突之輔助預防措施亦如此。
如上文所解釋,複數個匯流排可包含介於複數個處理器子單元中之對應者之間的導線或光纖中之至少一者。因此,在一個實施例中,不含時序硬體邏輯組件之分散式處理器可僅包括導線或光纖,而無匯流排仲裁器、仲裁樹、FIFO控制器、信箱或其類似者。
在一些實施例中,複數個處理器子單元經組態以根據由該等複數個處理器子單元執行之程式碼跨越複數個匯流排中之至少一者傳送資料。因此,如下文所解釋,編譯器可組織指令之子系列,每一子系列包含由單一處理器子單元執行之程式碼。該等子系列指令可指示處理器子單元何時將資料傳送至匯流排中之一者上及何時自匯流排擷取資料。當該等子系列以串接方式跨越分散式處理器執行時,處理器子單元之間的傳送之時序可藉由包括於該等子系列中的用以傳送及擷取之指令來控制。因此,程式碼規定跨越複數個匯流排中之至少一者的資料傳送之時序。編譯器可產生待由單一處理器子單元執行之程式碼。另外,編譯器可產生待由處理器 子單元之群組執行的程式碼。在一些狀況下,編譯器可將所有處理器子單元一起視為該等處理器子單元係一個超處理器(例如,分散式處理器),且編譯器可產生用於由彼定義的超處理器/分散式處理器執行的程式碼。
如上文所解釋且如圖7A及圖7B中所描繪,複數個處理器子單元可在空間上分佈於記憶體陣列內之複數個離散記憶體組當中。替代地,複數個處理器子單元可聚集在基板之一或多個區中,且複數個記憶體組可聚集在基板之一或多個其他區中。在一些實施例中,可使用空間分佈與聚集之組合,如上文所解釋。
在一些實施例中,分散式處理器可包含基板(例如,包括矽之半導體基板及/或諸如可撓性電路板之電路板),該基板具有安置於其上之記憶體陣列,該記憶體陣列包括複數個離散記憶體組。處理陣列亦可安置於基板上,該處理陣列包括複數個處理器子單元,如描繪於例如圖7A及圖7B中。如上文所解釋,該等處理器子單元中之每一者可與該等複數個離散記憶體組中之一對應的專用記憶體組相關聯。此外,如描繪於例如圖7A及圖7B中,該分散式處理器可進一步包含複數個匯流排,該等複數個匯流排中之每一者將該等複數個處理器子單元中之一者連接至該等複數個離散記憶體組中之一對應的專用記憶體組。
如上文所解釋,該等複數個匯流排可用軟體來控制。因此,複數個匯流排可能不含時序硬體邏輯組件,使得處理器子單元與複數個離散記憶體組中之對應的專用離散記憶體組之間及跨越複數個匯流排中之對應者的資料傳送不受時序硬體邏輯組件控制。在一個實施例中,該等複數個匯流排可能不含匯流排仲裁器,使得在處理器子單元之間及跨越該等複數個匯流排中之對應者的資料傳送不受匯流排仲裁器控制。
在一些實施例中,如描繪於例如圖7A及圖7B中,分散式 處理器可進一步包含第二複數個匯流排,該第二複數個匯流排將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之至少另一者。類似於上文所描述之複數個匯流排,第二複數個匯流排可能不含時序硬體邏輯組件,使得處理器子單元與對應的專用記憶體組之間的資料傳送不受時序硬體邏輯組件控制。在一個實施例中,第二複數個匯流排可能不含匯流排仲裁器,使得處理器子單元與對應的專用記憶體組之間的資料傳送不受匯流排仲裁器控制。
在一些實施例中,分散式處理器可使用軟體時序組件與硬體時序組件之組合。舉例而言,分散式處理器可包含基板(例如,包括矽之半導體基板及/或諸如可撓性電路板之電路板),該基板安置於其上之記憶體陣列,該記憶體陣列包括複數個離散記憶體組。處理陣列亦可安置於基板上,該處理陣列包括複數個處理器子單元,如描繪於例如圖7A及圖7B中。如上文所解釋,該等處理器子單元中之每一者可與該等複數個離散記憶體組中之一對應的專用記憶體組相關聯。此外,如描繪於例如圖7A及圖7B中,分散式處理器可進一步包含複數個匯流排,該等複數個匯流排中之每一者將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之至少另一者。此外,如上文所解釋,該等複數個處理器子單元可經組態以執行軟體,該軟體控制跨越該等複數個匯流排之資料傳送的時序,以避免與該等複數個匯流排中之至少一者上的資料傳送衝突。在此實施例中,軟體可控制資料傳送之時序,但傳送本身可至少部分地由一或多個硬體組件控制。
在此等實施例中,分散式處理器可進一步包含第二複數個匯流排,該第二複數個匯流排將該等複數個處理器子單元中之一者連接至一對應的專用記憶體組。類似於上文所描述之複數個匯流排,該等複數個處 理器子單元可經組態以執行軟體,該軟體控制跨越該第二複數個匯流排之資料傳送的時序,以避免與該第二複數個匯流排中之至少一者上的資料傳送衝突。在此實施例中,如上文所解釋,軟體可控制資料傳送之時序,但傳送本身可至少部分地由一或多個硬體組件控制。
程式碼之劃分
如上文所解釋,本發明之硬體晶片可跨越包括於形成硬體晶片之基板上的處理器子單元平行地執行程式碼。另外,本發明之硬體晶片可執行多任務處理。舉例而言,本發明之硬體晶片可執行區域多任務處理,其中硬體晶片之處理器子單元的一個群組執行一個任務(例如,音訊處理),而硬體晶片之處理器子單元的另一群組執行另一任務(例如,影像處理)。在另一實施例中,本發明之硬體晶片可執行時序多任務處理,其中硬體晶片之一或多個處理器子單元在第一時間段期間執行一個任務且在第二時間段期間執行另一任務。亦可使用區域多任務處理與時序多任務處理之組合,使得一個任務可在第一時間段期間指派給處理器子單元之第一群組,而另一任務可在第一時間段期間指派給處理器子單元之第二群組,此後,第三任務可在第二時間段期間指派給包括於第一群組及第二群組中之處理器子單元。
為了組織供在本發明之記憶體晶片上執行的機器碼,機器碼可在記憶體晶片之處理器子單元之間進行劃分。舉例而言,記憶體晶片上之處理器可包含基板及安置於該基板上之複數個處理器子單元。該記憶體晶片可進一步包含安置於該基板上之對應的複數個記憶體組,該等複數個處理器子單元中之每一者連接至不被該等複數個處理器子單元中之任何其他處理器子單元共用的至少一個專用記憶體組。該記憶體晶片上之每一處理器子單元可經組態以獨立於其他處理器子單元執行一系列指令。每一系 列指令可藉由以下操作執行:根據定義該系列指令之程式碼而組態處理器子單元之一或多個一般處理元件及/或根據在定義該系列指令之該程式碼中所提供的序列而啟動處理器子單元之一或多個特殊處理元件(例如,一或多個加速器)。
因此,每一系列指令可定義待由單一處理器子單元執行之一系列任務。單一任務可包含在由處理器子單元中之一或多個處理元件之架構定義的指令集內之指令。舉例而言,該處理器子單元可包括特定暫存器,且單一任務可將資料推送至暫存器上,自暫存器提取資料,對暫存器內之資料執行算術函數,對暫存器內之資料執行邏輯運算,或其類似者。此外,處理器子單元可針對任何數目個運算元來組態,諸如0運算元處理器子單元(亦被稱作「堆疊機」)、1運算元處理器子單元(亦被稱作累加機)、2運算元處理器子單元(諸如,RISC)、3運算元處理器子單元(諸如,複雜指令集電腦(CISC))或其類似者。在另一實施例中,處理器子單元可包括一或多個加速器,且單一任務可啟動一加速器以執行特定功能,諸如MAC功能、MAX功能、MAX-0功能或其類似者。
該系列指令可進一步包括用於對記憶體晶片之專用記憶體組進行讀取及寫入的任務。舉例而言,一任務可包括將一段資料寫入至專用於執行該任務之處理器子單元的記憶體組、自專用於執行該任務之處理器子單元的記憶體組讀取一段資料,或其類似者。在一些實施例中,讀取及寫入可由處理器子單元與記憶體組之控制器串接地執行。舉例而言,處理器子單元可藉由將控制信號發送至控制器以執行讀取或寫入來執行讀取或寫入任務。在一些實施例中,該控制信號可包括用於讀取及寫入之特定位址。替代地,處理器子單元可聽從記憶體控制器以選擇可用於讀取及寫入之位址。
另外或替代地,讀取及寫入可由一或多個加速器與記憶體組之控制器串接地執行。舉例而言,該等加速器可產生用於記憶體控制器之控制信號,此類似於處理器子單元如何產生控制信號,如上文所描述。
在上文所描述之實施例中之任一者中,位址產生器亦可用以引導對記憶體組之特定位址的讀取及寫入。舉例而言,該位址產生器可包含經組態以產生用於讀取及寫入之記憶體位址的處理元件。該位址產生器可經組態以產生位址以便提高效率,例如藉由將稍後計算之結果寫入至與先前計算之不再需要之結果相同的位址。因此,位址產生器可回應於來自處理器子單元(例如,來自包括於其中之處理元件或來自其中之一或多個加速器)之命令抑或與處理器子單元串接地產生用於記憶體控制器之控制信號。另外或替代地,位址產生器可基於一些組態或暫存器產生位址,例如產生巢套迴圈結構,從而以某一圖案在記憶體中之某些位址上進行反覆。
在一些實施例中,每一系列指令可包含定義對應的一系列任務之一組機器碼。因此,上文所描述之該系列任務可囊封於包含該系列指令之機器碼內。在一些實施例中,如下文關於圖8所解釋,該系列任務可由編譯器定義,該編譯器經組態以將較高階系列之任務作為複數個系列之任務分佈於複數個邏輯電路當中。舉例而言,編譯器可基於較高階系列之任務產生複數個系列之任務,使得串接地執行對應的每一系列任務之處理器子單元執行與由較高階系列之任務所概述之功能相同的功能。
如下文進一步所解釋,較高階系列之任務可包含用人類可讀程式設計語言編寫之一組指令。對應地,每一處理器子單元之該系列任務可包含較低階系列任務,該等任務中之每一者包含以機器碼編寫之一組指令。
如上文關於圖7A及圖7B所解釋,記憶體晶片可進一步包 含複數個匯流排,每一匯流排將複數個處理器子單元中之一者連接至複數個處理器子單元中之至少另一者。此外,如上文所解釋,複數個匯流排上之資料傳送可使用軟體來控制。因此,跨越複數個匯流排中之至少一者的資料傳送可藉由包括於連接至複數個匯流排中之至少一者之處理器子單元中的該系列指令預定義。因此,包括於該系列指令中之任務中之一者可包括將資料輸出至匯流排中之一者或自匯流排中之一者提取資料。此等任務可由處理器子單元之一處理元件或由包括於處理器子單元中之一或多個加速器執行。在後一實施例中,處理器子單元可執行計算或在同一循環中將控制信號發送至對應記憶體組,在該循環期間,加速器自匯流排中之一者提取資料或將資料置放於匯流排中之一者上。
在一個實施例中,包括於連接至複數個匯流排中之至少一者之處理器子單元中的該系列指令可包括發送任務,該發送任務包含針對連接至複數個匯流排中之至少一者之處理器子單元的用以將資料寫入至複數個匯流排中之至少一者的命令。另外或替代地,包括於連接至複數個匯流排中之至少一者之處理器子單元中的該系列指令可包括接收任務,該接收任務包含針對連接至複數個匯流排中之至少一者之處理器子單元的用以自複數個匯流排中之至少一者讀取資料的命令。
除將程式碼分佈在處理器子單元當中以外或替代將程式碼分佈在處理器子單元當中,可在記憶體晶片之記憶體組之間劃分資料。舉例而言,如上文所解釋,記憶體晶片上之分散式處理器可包含安置於記憶體晶片上之複數個處理器子單元及安置於記憶體晶片上之複數個記憶體組。該等複數個記憶體組中之每一者可經組態以儲存獨立於儲存在該等複數個記憶體組之其他者中之資料的資料,且該等複數個處理器子單元中之一者可連接至該等複數個記憶體組當中之至少一個專用記憶體組。舉例而 言,每一處理器子單元可存取專用於該處理器子單元之一或多個對應記憶體組的一或多個記憶體控制器,且其他處理器子單元不可存取此等對應的一或多個記憶體控制器。因此,儲存於每一記憶體組中之資料對於專用處理器子單元可為唯一的。此外,儲存於每一記憶體組中之資料可獨立於儲存在其他記憶體組中之記憶體,此係因為無記憶體控制器可在記憶體組之間共用。
在一些實施例中,如下文關於圖8所描述,儲存於複數個記憶體組中之每一者中的資料可由編譯器定義,該編譯器經組態以將資料分佈於該等複數個記憶體組當中。此外,該編譯器可經組態以使用分佈於對應處理器子單元當中之複數個較低階任務將定義於較高階系列之任務中的資料分佈於複數個記憶體組當中。
如下文進一步所解釋,較高階系列之任務可包含用人類可讀程式設計語言編寫之一組指令。對應地,每一處理器子單元之該系列任務可包含較低階系列任務,該等任務中之每一者包含以機器碼編寫之一組指令。
如上文關於圖7A及圖7B所解釋,記憶體晶片可進一步包含複數個匯流排,每一匯流排將複數個處理器子單元中之一者連接至複數個記憶體組當中之一或多個對應的專用記憶體組。此外,如上文所解釋,複數個匯流排上之資料傳送可使用軟體來控制。因此,跨越複數個匯流排中之特定匯流排的資料傳送可由連接至該等複數個匯流排中之該特定匯流排的對應處理器子單元來控制。因此,包括於該系列指令中之任務中之一者可包括將資料輸出至匯流排中之一者或自匯流排中之一者提取資料。如上文所解釋,此等任務可由(i)處理器子單元之一處理元件或(ii)包括於處理器子單元中之一或多個加速器執行。在後一實施例中,處理器子單元 可執行計算或在同一循環中使用將該處理器子單元連接至其他處理器子單元之匯流排,在該循環期間,加速器自連接至一或多個對應的專用記憶體組的匯流排中之一者提取資料或將資料置放於該等匯流排中之一者上。
因此,在一個實施例中,包括於連接至複數個匯流排中之至少一者之處理器子單元中的該系列指令可包括發送任務。該發送任務可包含針對連接至複數個匯流排中之至少一者之處理器子單元的用以將資料寫入至複數個匯流排中之至少一者以供儲存於一或多個對應的專用記憶體組中的命令。另外或替代地,包括於連接至複數個匯流排中之至少一者之處理器子單元中的該系列指令可包括接收任務。該接收任務可包含針對連接至複數個匯流排中之至少一者之處理器子單元的用以自複數個匯流排中之至少一者讀取資料以供儲存於一或多個對應的專用記憶體組中的命令。因此,此等實施例中之發送任務及接收任務可包含控制信號,該等控制信號沿著複數個匯流排中之至少一者發送至一或多個對應的專用記憶體組之一或多個記憶體控制器。此外,發送任務及接收任務可與由處理子單元之另一部分(例如,由處理子單元之一或多個不同加速器)執行的計算或其他任務並行地由處理子單元之一個部分(例如,由處理子單元之一或多個加速器)執行。此並行執行之實施例可包括MAC中繼命令,其中接收、相乘及發送係串接地執行。
除將資料分佈於記憶體組當中以外,亦可跨越不同記憶體組複製資料之特定部分。舉例而言,如上文所解釋,記憶體晶片上之分散式處理器可包含安置於記憶體晶片上之複數個處理器子單元及安置於記憶體晶片上之複數個記憶體組。該等複數個處理器子單元中之每一者可連接至該等複數個記憶體組當中之至少一個專用記憶體組,且該等複數個記憶體組中之每一記憶體組可經組態以儲存獨立於儲存在該等複數個記憶體組之 其他者中之資料的資料。此外,儲存於複數個記憶體組當中之一個特定記憶體組中之資料中的至少一些可包含儲存於複數個記憶體組中之至少另一記憶體組中的資料之複製者。舉例而言,該系列指令中所使用之數字、字串或其他類型之資料可儲存於專用於不同處理器子單元之複數個記憶體組中,而非自一個記憶體組傳送至記憶體晶片中之其他處理器子單元。
在一個實施例中,平行字串匹配可使用上文所描述之資料複製。舉例而言,可將複數個字串與同一字串進行比較。習知處理器可依序將複數個字串中之每一字串與同一字串進行比較。在本發明之硬體晶片上,可跨越記憶體組複製同一字串,使得處理器子單元可平行地將複數個字串中之分開字串與所複製字串進行比較。
在一些實施例中,如下文關於圖8所描述,跨越複數個記憶體組當中之一個特定記憶體組及複數個記憶體組中之至少另一記憶體組複製的至少一些資料由編譯器定義,該編譯器經組態以跨越記憶體組複製資料。此外,該編譯器可經組態以使用分佈於對應處理器子單元當中之複數個較低階任務來複製至少一些資料。
資料之複製可適用於跨越不同計算重複使用資料之相同部分的特定任務。藉由複製資料之此等部分,不同計算可分佈於記憶體晶片之處理器子單元當中以用於平行執行,而每一處理器子單元可將資料之該等部分儲存於專用記憶體組中且自專用記憶體組存取所儲存部分(而非跨越連接處理器子單元之匯流排推送及提取資料之該等部分)。在一個實施例中,跨越複數個記憶體組當中之一個特定記憶體組及複數個記憶體組中之至少另一記憶體組複製的至少一些資料可包含神經網路之權重。在此實施例中,該神經網路中之每一節點可由複數個處理器子單元當中之至少一個處理器子單元定義。舉例而言,每一節點可包含由定義該節點之至少一個 處理器子單元執行的機器碼。在此實施例中,權重之複製可允許每一處理器子單元執行機器碼以至少部分地實現對應節點,同時僅存取一或多個專用記憶體組(而非與其他處理器子單元執行資料傳送)。因為對專用記憶體組進行之讀取及寫入的時序獨立於其他處理器子單元,而處理器子單元之間的資料傳送之時序需要時序同步(例如,使用軟體,如上文所解釋),所以複製記憶體以避免處理器子單元之間的資料傳送可進一步提高總體執行之效率。
如上文關於圖7A及圖7B所解釋,記憶體晶片可進一步包含複數個匯流排,每一匯流排將複數個處理器子單元中之一者連接至複數個記憶體組當中之一或多個對應的專用記憶體組。此外,如上文所解釋,複數個匯流排上之資料傳送可使用軟體來控制。因此,跨越複數個匯流排中之特定匯流排的資料傳送可由連接至該等複數個匯流排中之該特定匯流排的對應處理器子單元來控制。因此,包括於該系列指令中之任務中之一者可包括將資料輸出至匯流排中之一者或自匯流排中之一者提取資料。如上文所解釋,此等任務可由(i)處理器子單元之一處理元件或(ii)包括於處理器子單元中之一或多個加速器執行。如上文進一步所解釋,此等任務可包括包含控制信號之發送任務及/或接收任務,該等控制信號沿著複數個匯流排中之至少一者發送至一或多個對應的專用記憶體組之一或多個記憶體控制器。
圖8描繪用於編譯一系列指令以供在例如如圖7A及圖7B中所描繪的本發明之例示性記憶體晶片上執行之方法800的流程圖。方法800可藉由任何習知處理器(無論係通用抑或專用的)實施。
方法800可作為形成編譯器之電腦程式之一部分執行。如本文中所使用,「編譯器」係指將較高階語言(例如,程序性語言,諸如C、 FORTRAN、BASIC或其類似者;物件導向式語言,諸如Java、C++、Pascal、Python或其類似者;等等)轉換成較低階語言(例如,組合程式碼、目標程式碼、機器碼或其類似者)的任何電腦程式。編譯器可允許人類以人類可讀語言來程式設計一系列指令,接著將該人類可讀語言轉換成機器可執行語言。
在步驟810處,處理器可將與該系列指令相關聯之任務指派給處理器子單元中之不同處理器子單元。舉例而言,該系列指令可分成子群組,該等子群組待跨越處理器子單元平行地執行。在一個實施例中,可將神經網路分成其節點,且可將一或多個節點指派給分開的處理器子單元。在此實施例中,每一子群組可包含跨越不同層連接的複數個節點。因此,處理器子單元可實施來自神經網路之第一層的節點、來自連接至由同一處理器子單元實施的來自第一層之節點的第二層之節點,及類似節點。藉由基於節點之連接來指派節點,可縮減處理器子單元之間的資料傳送,此可導致效率提高,如上文所解釋。
如上文圖7A及圖7B中所描繪而解釋,處理器子單元可在空間上分佈於安置於記憶體晶片上之複數個記憶體組當中。因此,任務之指派可至少部分地為空間劃分以及邏輯劃分。
在步驟820處,處理器可產生用以在記憶體晶片之成對的處理器子單元之間傳送資料的任務,每一對處理器子單元由一匯流排連接。舉例而言,如上文所解釋,該等資料傳送可使用軟體來控制。因此,處理器子單元可經組態以在同步時間將資料推送於匯流排上及提取匯流排上之資料。所產生之任務可因此包括用於執行資料之此同步推送及提取的任務。
如上文所解釋,步驟820可包括預處理以考慮處理器子單元之內部行為,包括時序及潛時。舉例而言,處理器可使用處理器子單元之 已知時間及潛時(例如,將資料推送至匯流排的時間、自匯流排提取資料的時間、計算與推送或提取之間的潛時,或其類似者)以確保所產生之任務同步。因此,包含由一或多個處理器子單元進行之至少一次推送及由一或多個處理器子單元進行之至少一次提取的資料傳送可同時發生,而不會由於處理器子單元之間的時序差、處理器子單元之潛時或其類似者而引起延遲。
在步驟830處,處理器可將所指派及產生之任務分組成子系列指令之複數個群組。舉例而言,該等子系列指令可各包含供單一處理器子單元執行的一系列任務。因此,子系列指令之複數個群組中之每一者可對應於複數個處理器子單元中之一不同處理器子單元。因此,步驟810、820及830可導致將該系列指令分成子系列指令之複數個群組。如上文所解釋,步驟820可確保不同群組之間的任何資料傳送同步。
在步驟840處,處理器可產生對應於子系列指令之複數個群組中之每一者的機器碼。舉例而言,可將表示子系列指令之較高階程式碼轉換成可由對應處理器子單元執行的較低階程式碼,諸如機器碼。
在步驟850處,處理器可根據劃分將對應於子系列指令之複數個群組中之每一者的所產生機器碼指派給複數個處理器子單元中之對應處理器子單元。舉例而言,處理器可用對應處理器子單元之識別符來標記每一子系列指令。因此,當將子系列指令上傳至記憶體晶片以供執行(例如,由圖3A之主機350)時,每一子系列可組態一正確的處理器子單元。
在一些實施例中,將與該系列指令相關聯之任務指派給處理器子單元中之不同處理器子單元可至少部分地取決於記憶體晶片上之處理器子單元中之兩者或多於兩者之間的空間接近性。舉例而言,如上文所解釋,可藉由縮減處理器子單元之間的資料傳送之數目來提高效率。因此, 處理器可將跨越處理器子單元中之多於兩者移動資料的資料傳送減至最少。因此,處理器可結合一或多個最佳化演算法(諸如,貪婪演算法)使用記憶體晶片之已知佈局,以便將子系列指派給處理器子單元,其指派方式使鄰近傳送達至最大(至少區域地)且使至非相鄰處理器子單元之傳送減至最少(至少區域地)。
方法800可包括針對本發明之記憶體晶片的進一步最佳化。舉例而言,處理器可基於劃分將與該系列指令相關聯之資料分組且根據該分組將資料指派給記憶體組。因此,該等記憶體組可保存用於指派給每一記憶體組所專用於的每一處理器子單元之子系列指令的資料。
在一些實施例中,將資料分組可包括判定在記憶體組中之兩者或多於兩者中複製的資料之至少一部分。舉例而言,如上文所解釋,可跨越多於一個子系列指令使用一些資料。此資料可跨越專用於經指派不同子系列指令之複數個處理器子單元的記憶體組複製。此最佳化可進一步縮減跨越處理器子單元之資料傳送。
可將方法800之輸出輸入至本發明之記憶體晶片以供執行。舉例而言,一記憶體晶片可包含複數個處理器子單元及對應的複數個記憶體組,每一處理器子單元連接至專用於該處理器子單元之至少一個記憶體組,且該記憶體晶片之該等處理器子單元可經組態以執行由方法800產生之機器碼。如上文關於圖3A所解釋,主機350可將由方法800產生之機器碼輸入至處理器子單元以供執行。
子組及子控制器
在習知記憶體組中,控制器設置在組層級處。每一組包括複數個墊,該等複數個墊通常以矩形方式配置,但可按任何幾何形狀配置。每一墊包括複數個記憶體胞元,該等複數個記憶體胞元亦通常以矩形方式 配置,但可按任何幾何形狀配置。每一胞元可儲存單一資料位元(例如,取決於該胞元保持在高電壓抑或低電壓下)。
此習知架構之實施例描繪於圖9及圖10中。如圖9中所展示,在組層級處,複數個墊(例如,墊930-1、930-2、940-1及940-2)可形成組900。在習知矩形組織中,可跨越全域字線(例如,字線950)及全域位元線(例如,位元線960)控制組900。因此,列解碼器910可基於傳入控制信號(例如,對自位址讀取之請求、對寫入至位址之請求或其類似者)選擇正確字線,且全域感測放大器920(及/或全域行解碼器,圖9中未展示)可基於該控制信號選擇正確位元線。放大器920亦可在讀取操作期間放大來自選定組之任何電壓位準。儘管描繪為將列解碼器用於初始選擇且沿著行執行放大,但組可另外或替代地將行解碼器用於初始選擇且沿著列執行放大。
圖10描繪墊1000之實施例。舉例而言,墊1000可形成諸如圖9之組900的記憶體組之一部分。如圖10中所描繪,複數個胞元(例如,胞元1030-1、1030-2及1030-3)可形成墊1000。每一胞元可包含儲存至少一個資料位元之電容器、電晶體或其他電路系統。舉例而言,一胞元可包含電容器或可包含正反器,該電容器經充電以表示「1」且放電以表示「0」,該正反器具有表示「1」之第一狀態及表示「0」之第二狀態。習知墊可包含例如512個位元×512個位元。在墊1000形成MRAM、ReRAM或其類似者之一部分的實施例中,一胞元可包含電晶體、電阻器、電容器或用於隔離儲存至少一個資料位元之材料之離子或一部分的其他機構。舉例而言,一胞元可包含具有表示「1」之第一狀態及表示「0」之第二狀態的電解質離子、硫族化物玻璃之一部分,或其類似者。
如圖10中進一步所描繪,在習知矩形組織中,可跨越區域 字線(例如,字線1040)及區域位元線(例如,位元線1050)控制墊1000。因此,字線驅動器(例如,字線驅動器1020-1、1020-2、……、1020-x)可基於來自與記憶體組(墊1000形成該記憶體組之一部分)相關聯之控制器的控制信號(例如,對自位址讀取之請求、對寫入至位址之請求、刷新信號)而控制選定字線以執行讀取、寫入或刷新。此外,區域感測放大器(例如,區域放大器1010-1、1010-2、……、1010-x)及/或區域行解碼器(圖10中未展示)可控制選定位元線以執行讀取、寫入或刷新。該等區域感測放大器亦可在讀取操作期間放大來自選定胞元之任何電壓位準。儘管描繪為將字線驅動器用於初始選擇且沿著行執行放大,但墊可替代地將位元線驅動器用於初始選擇且沿著列執行放大。
如上文所解釋,複製大量墊以形成記憶體組。可將記憶體組群聚以形成記憶體晶片。舉例而言,記憶體晶片可包含八個至三十二個記憶體組。因此,使處理器子單元與習知記憶體晶片上之記憶體組配對可產生僅八個至三十二個處理器子單元。因此,本發明之實施例可包括具有額外子組階層之記憶體晶片。本發明之此等記憶體晶片可接著包括具有用作與處理器子單元配對之專用記憶體組之記憶體子組的處理器子單元,以允許較大數目個子處理器,此可接著達成記憶體內演算之較高平行性及效能。
在本發明之一些實施例中,組900之全域列解碼器及全域感測放大器可用子組控制器來替換。因此,記憶體組之控制器可將控制信號引導至適當的子組控制器,而非將控制信號發送至記憶體組之全域列解碼器及全域感測放大器。引導可動態地加以控制或可為硬連線的(例如,經由一或多個邏輯閘)。在一些實施例中,熔斷器可用以指示每一子組或墊之控制器是否阻斷控制信號或傳遞控制信號至適當的子組或墊。在此等實施例中,可因此使用熔斷器來撤銷啟動故障子組。
在此等實施例之一個實施例中,一記憶體晶片可包括複數個記憶體組,每一記憶體組具有一組控制器及複數個記憶體子組,每一記憶體子組具有一子組列解碼器及一子組行解碼器以允許對該記憶體子組上之位置進行讀取及寫入。每一子組可包含複數個記憶體墊,每一記憶體墊具有複數個記憶體胞元且可具有在內部之區域列解碼器、行解碼器及/或區域感測放大器。該等子組列解碼器及該等子組行解碼器可處理用於子組記憶體上之記憶體內演算的來自組控制器或來自子組處理器子單元之讀取及寫入請求,如下文所描述。另外,每一記憶體子組可進一步具有一控制器,該控制器經組態以判定處理來自組控制器之讀取請求及寫入請求及/或將讀取請求及寫入請求轉送至下一層級(例如,墊上之列解碼器及行解碼器的下一層級),抑或阻斷該等請求,例如以允許內部處理元件或處理器子單元存取記憶體。在一些實施例中,該組控制器可同步至系統時脈。然而,該等子組控制器可不同步至系統時脈。
如上文所解釋,子組之使用可允許在記憶體晶片中包括比在處理器子單元與習知晶片之記憶體組配對之情況下更大數目個處理器子單元。因此,每一子組可進一步具有使用子組作為專用記憶體之一處理器子單元。如上文所解釋,該處理器子單元可包含RISC、CISC或其他通用處理子單元及/或可包含一或多個加速器。另外,該處理器子單元可包括位址產生器,如上文所解釋。在上文所描述之實施例中之任一者中,每一處理器子單元可經組態以使用專用於該處理器子單元之子組的列解碼器及行解碼器而不使用組控制器來存取該子組。與子組相關聯之處理器子單元亦可處置記憶體墊(包括下文所描述之解碼器及記憶體冗餘機構)及/或判定是否轉送且因此處置來自上部層級(例如,組層級或記憶體層級)之讀取或寫入請求。
在一些實施例中,子組控制器可進一步包括儲存子組之狀態的暫存器。因此,在該暫存器指示該子組處於使用中時,若該子組控制器接收到來自記憶體控制器之控制信號,則該子組控制器可傳回錯誤。在每一子組進一步包括一處理器子單元之實施例中,若該子組中之該處理器子單元正存取與來自記憶體控制器之外部請求衝突的記憶體,則該暫存器可指示錯誤。
圖11展示使用子組控制器之記憶體組之另一實施例的實施例。在圖11之實施例中,組1100具有列解碼器1110、行解碼器1120,及具有子組控制器(例如,控制器1130a、1130b及1130c)之複數個記憶體子組(例如,子組1170a、1170b及1170c)。該等子組控制器可包括位址解算器(例如,解算器1140a、1140b及1140c),該等位址解算器可判定是否將請求傳遞至由子組控制器控制之一或多個子組。
該等子組控制器可進一步包括一或多個邏輯電路(例如,邏輯1150a、1150b及1150c)。舉例而言,包含一或多個處理元件之邏輯電路可允許執行諸如刷新子組中之胞元、清除子組中之胞元或其類似者的一或多個操作而無需來自組1100外部之處理請求。替代地,邏輯電路可包含處理器子單元,如上文所解釋,使得處理器子單元具有由子組控制器控制之任何子組作為對應的專用記憶體。在圖11之實施例中,邏輯1150a可具有子組1170a作為對應的專用記憶體,邏輯1150b可具有子組1170b作為對應的專用記憶體,且邏輯1150c可具有子組1170c作為對應的專用記憶體。在上文所描述之實施例中之任一者中,邏輯電路可具有至子組之匯流排,例如,匯流排1131a、1131b或1131c。如圖11中進一步所描繪,該等子組控制器可各包括複數個解碼器,諸如子組列解碼器及子組行解碼器,以允許處理元件或處理器子單元或發佈命令之較高階記憶體控制器對記憶體子組 上之位址進行讀取及寫入。舉例而言,子組控制器1130a包括解碼器1160a、1160b及1160c,子組控制器1130b包括解碼器1160d、1160e及1160f,且子組控制器1130c包括解碼器1160g、1160h及1160i。基於來自組列解碼器1110之請求,子組控制器可使用包括於子組控制器中之解碼器來選擇字線。所描述系統可允許子組之處理元件或處理器子單元在不中斷其他組及甚至其他子組的情況下存取記憶體,藉此允許每一子組處理器子單元與其他子組處理器子單元平行地執行記憶體演算。
此外,每一子組可包含複數個記憶體墊,每一記憶體墊具有複數個記憶體胞元。舉例而言,子組1170a包括墊1190a-1、1190a-2、……、1190a-x;子組1170b包括墊1190b-1、1190b-2、……、1190b-x;且子組1170c包括墊1190c-1、1190c-2、……、1190c-3。如圖11中進一步所描繪,每一子組可包括至少一個解碼器。舉例而言,子組1170a包括解碼器1180a,子組1170b包括解碼器1180b,且子組1170c包括解碼器1180c。因此,組行解碼器1120可基於外部請求而選擇全域位元線(例如,位元線1121a或1121b),而由組列解碼器1110選擇之子組可使用其行解碼器基於來自子組所專用於的邏輯電路之區域請求而選擇區域位元線(例如,位元線1181a或1181b)。因此,每一處理器子單元可經組態以使用子組之列解碼器及行解碼器來存取專用於該處理器子單元之子組而無需使用組列解碼器及組行解碼器。因此,每一處理器子單元可存取對應子組而不會中斷其他子組。此外,當對子組之請求在處理器子單元外時,子組解碼器可向組解碼器反映所存取之資料。替代地,在每一子組僅具有一列記憶體墊之實施例中,區域位元線可為墊之位元線,而非子組之位元線。
可使用以下實施例之組合:使用子組列解碼器及子組行解碼器之實施例;及圖11中所描繪之實施例。舉例而言,可消除組列解碼器, 但保留組行解碼器且使用區域位元線。
圖12展示具有複數個墊之記憶體子組1200之實施例的實施例。舉例而言,子組1200可表示圖11之子組1100的一部分或可表示記憶體組之替代實施。在圖12之實施例中,子組1200包括複數個墊(例如,墊1240a及1240b)。此外,每一墊可包括複數個胞元。舉例而言,墊1240a包括胞元1260a-1、1260a-2、……、1260a-x,且墊1240b包括胞元1260b-1、1260b-2、……、1260b-x。
每一墊可經指派將指派給墊之記憶體胞元的位址之範圍。此等位址可在生產時組態,使得墊可到處移動且使得故障墊可被撤銷啟動且保持未使用(例如,使用一或多個熔斷器,如下文進一步所解釋)。
子組1200接收來自記憶體控制器1210之讀取及寫入請求。儘管圖12中未描繪,但來自記憶體控制器1210之請求可經由子組1200之控制器來篩選且引導至子組1200之適當墊以進行位址解算。替代地,來自記憶體控制器1210之請求的位址之至少一部分(例如,較高位元)可傳輸至子組1200之所有墊(例如,墊1240a及1240b),使得僅當墊之經指派位址範圍包括命令中所指定的位址時,每一墊方可處理完整位址及與該位址相關聯之請求。類似於上文所描述之子組引導,墊判定可動態地加以控制或可為硬連線的。在一些實施例中,熔斷器可用以判定每一墊之位址範圍,以亦允許藉由指派不合法位址範圍來停用故障墊。墊可另外或替代地藉由其他常用方法或熔斷器之連接來停用。
在上文所描述之實施例中之任一者中,子組之每一墊可包括用於選擇墊中之字線的列解碼器(例如,列解碼器1230a或1230b)。在一些實施例中,每一墊可進一步包括熔斷器及比較器(例如,1220a及1220b)。如上文所描述,比較器可允許每一墊判定是否處理傳入請求,且熔斷器可 允許每一墊在發生故障之情況下撤銷啟動。替代地,可使用組及/或子組之列解碼器,而非使用每一墊中之列解碼器。
此外,在上文所描述之實施例中之任一者中,包括於適當墊中之行解碼器(例如,行解碼器1250a或1250b)可選擇區域位元線(例如,位元線1251或1253)。區域位元線可連接至記憶體組之全域位元線。在子組具有其自身的區域位元線之實施例中,胞元之區域位元線可進一步連接至子組之區域位元線。因此,可經由胞元之行解碼器(及/或感測放大器)、接著經由子組之行解碼器(及/或感測放大器)(在包括子組行解碼器及/或感測放大器之實施例中)且接著經由組之行解碼器(及/或感測放大器)來讀取選定胞元中之資料。
墊1200可經複製及排成陣列以形成記憶體組(或記憶體子組)。舉例而言,本發明之記憶體晶片可包含複數個記憶體組,每一記憶體組具有複數個記憶體子組,且每一記憶體子組具有用於處理對記憶體子組上之位置進行的讀取及寫入之子組控制器。此外,每一記憶體子組可包含複數個記憶體墊,每一記憶體墊具有複數個記憶體胞元且具有一墊列解碼器及一墊行解碼器(例如,如圖12中所描繪)。該等墊列解碼器及該等墊行解碼器可處理來自子組控制器之讀取及寫入請求。舉例而言,該等墊解碼器可接收所有請求且基於每一墊之已知位址範圍判定(例如,使用比較器)是否處理請求,或該等墊解碼器可基於子組(或組)控制器對墊的選擇而僅接收在已知位址範圍內之請求。
控制器資料傳送
除使用處理子單元來共用資料以外,本發明之記憶體晶片中之任一者亦可使用記憶體控制器(或子組控制器或墊控制器)來共用資料。舉例而言,本發明之記憶體晶片可包含:複數個記憶體組(例如,SRAM 組、DRAM組或其類似者),每一記憶體組具有一組控制器、一列解碼器及一行解碼器,以允許對該記憶體組上之位置進行讀取及寫入;以及複數個匯流排,其將複數個組控制器中之每一控制器連接至複數個組控制器中之至少一個其他控制器。該等複數個匯流排可類似於如上文所描述之連接處理子單元的匯流排,但該等複數個匯流排直接地而非經由處理子單元來連接該等組控制器。此外,儘管描述為連接組控制器,但匯流排可另外或替代地連接子組控制器及/或墊控制器。
在一些實施例中,可在不中斷連接至一或多個處理器子單元之記憶體組之主匯流排上的資料傳送的情況下存取該等複數個匯流排。因此,記憶體組(或子組)可在與將資料傳輸至不同記憶體組(或子組)或自不同記憶體組(或子組)傳輸資料相同的時脈循環中將資料傳輸至對應處理器子單元或自對應處理器子單元傳輸資料。在每一控制器連接至複數個其他控制器之實施例中,該等控制器可能可組態以用於選擇其他控制器中之另一者用於發送或接收資料。在一些實施例中,每一控制器可連接至至少一個相鄰控制器(例如,空間鄰近控制器對可彼此連接)。
記憶體電路中之冗餘邏輯
本發明大體上係有關於具有用於晶片上資料處理之主要邏輯部分的記憶體晶片。該記憶體晶片可包括冗餘邏輯部分,該等冗餘邏輯部分可替換有缺陷的主要邏輯部分以提高晶片之製造良率。因此,該晶片可包括晶載組件,該等晶載組件允許基於對該等邏輯部分之個別測試來組態記憶體晶片中之邏輯區塊。該晶片之此特徵可提高良率,此係因為具有專用於邏輯部分之較大面積的記憶體晶片更容易發生製造故障。舉例而言,具有大冗餘邏輯部分之DRAM記憶體晶片可容易發生製造問題,此降低良率。然而,實施冗餘邏輯部分可導致提高良率及可靠性,此係因為該 實施使DRAM記憶體晶片之製造商或使用者能夠在維持高平行性的同時接通或斷開全部邏輯部分。應注意,在此處及貫穿本發明,可識別某些記憶體類型(諸如,DRAM)之實施例,以便促進解釋所揭示實施例。然而,應理解,在此等情況下,識別之記憶體類型並不意欲為限制性的。確切而言,諸如DRAM、快閃記憶體、SRAM、ReRAM、PRAM、MRAM、ROM或任何其他記憶體之記憶體類型可與所揭示實施例一起使用,即使在本發明之某一章節中特定地識別較少實施例亦如此。
圖13為符合所揭示實施例之例示性記憶體晶片1300的功能方塊圖。記憶體晶片1300可實施為DRAM記憶體晶片。記憶體晶片1300亦可實施為任何類型之揮發性或非揮發性記憶體,諸如快閃記憶體、SRAM、ReRAM、PRAM及/或MRAM等。記憶體晶片1300可包括基板1301,該基板中安置有位址管理器1302、包括複數個記憶體組1304(a,a)至1304(z,z)的記憶體陣列1304、記憶體邏輯1306、商業邏輯1308及冗餘商業邏輯1310。記憶體邏輯1306及商業邏輯1308可構成主要邏輯區塊,而冗餘商業邏輯1310可構成冗餘區塊。此外,記憶體晶片1300可包括組態開關,該等組態開關可包括撤銷啟動開關1312及啟動開關1314。撤銷啟動開關1312及啟動開關1314亦可安置於基板1301中。在本申請案中,記憶體邏輯1306、商業邏輯1308及冗餘商業邏輯1310亦可統稱為「邏輯區塊」。
位址管理器1302可包括列及行解碼器或其他類型之記憶體輔助裝置。替代地或另外,位址管理器1302可包括微控制器或處理單元。
在一些實施例中,如圖13中所展示,記憶體晶片1300可包括單一記憶體陣列1304,該記憶體陣列可將複數個記憶體區塊以二維陣列配置於基板1301上。然而,在其他實施例中,記憶體晶片1300可包括多個記憶體陣列1304,且記憶體陣列1304中之每一者可按不同組態配置記憶 體區塊。舉例而言,記憶體陣列中之至少一者中的記憶體區塊(亦被稱為記憶體組)可按徑向分佈配置以促進位址管理器1302或記憶體邏輯1306至記憶體區塊之間的路由。
商業邏輯1308可用以進行與用以管理記憶體本身之邏輯無關的應用程式之記憶體內演算。舉例而言,商業邏輯1308可實施與AI相關之功能,諸如用作啟動功能之浮點、整數或MAC運算。此外,商業邏輯1308可實施資料庫相關功能,如最小值、最大值、排序、計數以及其他。記憶體邏輯1306可執行與記憶體管理相關之任務,包括(但不限於)讀取、寫入及刷新操作。因此,可在組層級、墊層級或墊群組層級中之一或多者中添加商業邏輯。商業邏輯1308可具有一或多個位址輸出及一或多個資料輸入/輸出。舉例而言,商業邏輯1308可藉由至位址管理器1302之列\行線來定址。然而,在某些實施例中,邏輯區塊可另外或替代地經由資料輸入\輸出來定址。
冗餘商業邏輯1310可為商業邏輯1308之再製品。此外,冗餘商業邏輯1310可連接至撤銷啟動開關1312及/或啟動開關1314,其可包括小的熔斷器\反熔斷器,且用於邏輯停用或啟用執行個體中之一者(例如,預設連接之執行個體)且啟用其他邏輯區塊中之一者(例如,預設斷開之執行個體)。在一些實施例中,如關於圖15進一步所描述,區塊之冗餘在諸如商業邏輯1308之邏輯區塊內可為區域的。
在一些實施例中,記憶體晶片1300中之邏輯區塊可藉由專用匯流排連接至記憶體陣列1304之子集。舉例而言,記憶體邏輯1306、商業邏輯1308及冗餘商業邏輯1310之集合可連接至記憶體陣列1304中之第一列記憶體區塊(亦即,記憶體區塊1304(a,a)至1304(a,z))。專用匯流排可允許相關聯邏輯區塊快速地存取記憶體區塊之資料,而不要求經由例如位 址管理器1302開放通信線。
複數個主要邏輯區塊中之每一者可連接至複數個記憶體組1304中之至少一者。又,諸如冗餘商業區塊1310之冗餘區塊可連接至記憶體執行個體1304(a,a)至1304(z,z)中之至少一者。冗餘區塊可再製複數個主要邏輯區塊中之至少一者,諸如記憶體邏輯1306或商業邏輯1308。撤銷啟動開關1312可連接至該等複數個主要邏輯區塊中之至少一者,且啟動開關1314可連接至該等複數個冗餘區塊中之至少一者。
在此等實施例中,在偵測到與複數個主要邏輯區塊中之一者(記憶體邏輯1306及/或商業邏輯1308)相關聯之故障後,撤銷啟動開關1312可經組態以停用複數個主要邏輯區塊中之該者。同時,啟動開關1314可經組態以啟用複數個冗餘區塊中的再製複數個主要邏輯區塊中之一者的冗餘區塊,諸如冗餘邏輯區塊1310。
此外,可統稱為「組態開關」之啟動開關1314及撤銷啟動開關1312可包括用以組態開關之狀態的外部輸入。舉例而言,啟動開關1314可經組態以使得外部輸入中之啟動信號產生閉合開關條件,而撤銷啟動開關1312可經組態以使得外部輸入中之撤銷啟動信號產生斷開開關條件。在一些實施例中,1300中之所有組態開關可預設為撤銷啟動,且在測試指示相關聯邏輯區塊起作用且信號施加於外部輸入中之後變得被啟動或啟用。替代地,在一些狀況下,1300中之所有組態開關可預設為經啟用,且可在測試指示相關聯邏輯區塊不起作用且撤銷啟動信號施加於外部輸入中之後被撤銷啟動或停用。
無關於最初啟用抑或停用組態開關,在偵測到與相關聯邏輯區塊相關聯之故障後,組態開關可停用相關聯邏輯區塊。在最初啟用組態開關之狀況下,組態開關之狀態可改變至停用,以便停用相關聯邏輯區塊。 在最初停用組態開關之狀況下,組態開關之狀態可保持在其停用狀態中,以便停用相關聯邏輯區塊。舉例而言,可操作性測試之結果可指示,某一邏輯區塊不操作或該邏輯區塊不能在某些規格內操作。在此等狀況下,可停用邏輯區塊,可能不啟用其對應組態開關。
在一些實施例中,組態開關可連接至兩個或多於兩個邏輯區塊,且可經組態以在不同邏輯區塊之間進行選擇。舉例而言,組態開關可連接至商業邏輯區塊1308及冗餘邏輯區塊1310兩者。組態開關可啟用冗餘邏輯區塊1310,同時停用商業邏輯1308。
替代地或另外,複數個主要邏輯區塊中之至少一者(記憶體邏輯1306及/或商業邏輯1308)可藉由第一專用連接件連接至複數個記憶體組或記憶體執行個體1304之子集。接著,複數個冗餘區塊中的再製複數個主要邏輯區塊中之至少一者的至少一個冗餘區塊(諸如,冗餘商業邏輯1310)可藉由第二專用連接件連接至相同複數個記憶體組或執行個體1304之子集。
此外,記憶體邏輯1306可具有不同於商業邏輯1308之功能及能力。舉例而言,雖然記憶體邏輯1306可經設計以實現記憶體組1304中之讀取及寫入操作,但商業邏輯1308可經設計以執行記憶體內演算。因此,若商業邏輯1308包括第一商業邏輯區塊且商業邏輯1308包括第二商業邏輯區塊(如冗餘商業邏輯1310),則有可能將有缺陷的商業邏輯1308斷開且重新連接冗餘商業邏輯1310使得不會失去任何能力。
在一些實施例中,組態開關(包括撤銷啟動開關1312及啟動開關1314)可用熔斷器、反熔斷器或可程式化裝置(包括可一次性程式化裝置)或其他形式之非揮發性記憶體來實施。
圖14為符合所揭示實施例之例示性冗餘邏輯區塊集合1400 的功能方塊圖。在一些實施例中,冗餘邏輯區塊集合1400可安置於基板1301中。冗餘邏輯區塊集合1400可包括分別連接至開關1312及1314之商業邏輯1308及冗餘商業邏輯1310中之至少一者。此外,商業邏輯1308及冗餘商業邏輯1310可連接至位址匯流排1402及資料匯流排1404。
在一些實施例中,如圖14中所展示,開關1312及1314可將邏輯區塊連接至時脈節點。以此方式,組態開關可將邏輯區塊與時脈信號接合或脫離,以有效地啟動或撤銷啟動邏輯區塊。然而,在其他實施例中,開關1312及1314可將邏輯區塊連接至其他節點以用於啟動或撤銷啟動。舉例而言,組態開關可將邏輯區塊連接至電壓供應節點(例如,VCC)或連接至接地節點(例如,GND)或時脈信號。以此方式,邏輯區塊可由組態開關啟用或停用,此係因為該等組態開關可產生開路或截斷邏輯區塊供電。
在一些實施例中,如圖14中所展示,位址匯流排1402及資料匯流排1404可在邏輯區塊之相對側中,該等邏輯區塊並聯地連接至該等匯流排中之每一者。以此方式,可藉由邏輯區塊集合1400促進不同晶載組件之路由。
在一些實施例中,複數個撤銷啟動開關1312中之每一者將複數個主要邏輯區塊中之至少一者與時脈節點耦接,且複數個啟動開關1314中之每一者可將複數個冗餘區塊中之至少一者與時脈節點耦接,以允許連接\斷開時脈以作為簡單的啟動\撤銷啟動機制。
冗餘邏輯區塊集合1400之冗餘商業邏輯1310允許設計者基於面積及路由而選擇值得複製之區塊。舉例而言,晶片設計者可選擇較大區塊進行複製,此係因為較大區塊可更容易出錯。因此,晶片設計者可決定複製大的邏輯區塊。另一方面,設計者可偏好複製較小邏輯區塊,此係 因為較小邏輯區塊容易複製而無顯著的空間損失。此外,使用圖14中之組態,設計者可容易取決於每個區域之錯誤的統計資料來選擇複製邏輯區塊。
圖15為符合所揭示實施例之例示性邏輯區塊1500的功能方塊圖。該邏輯區塊可為商業邏輯1308及/或冗餘商業邏輯1310。然而,在其他實施例中,例示性邏輯區塊可描述記憶體邏輯1306或記憶體晶片1300之其他組件。
邏輯區塊1500呈現在小型處理器管線內使用邏輯冗餘之又一實施例。邏輯區塊1500可包括暫存器1508、取得電路1504、解碼器1506及寫回電路1518。此外,邏輯區塊1500可包括演算單元1510及複製演算單元1512。然而,在其他實施例中,邏輯區塊1500可包括其他單元,該等其他單元不包含控制器管線,但包括包含所需商業邏輯之分散的處理元件。
演算單元1510及複製演算單元1512可包括能夠執行數位計算之數位電路。舉例而言,演算單元1510及複製演算單元1512可包括算術邏輯單元(ALU)以對二進位數執行算術及逐位元運算。替代地,演算單元1510及複製演算單元1512可包括對浮點數進行運算之浮點單元(FPU)。此外,在一些實施例中,演算單元1510及複製演算單元1512可實施資料庫相關功能,如最小值、最大值、計數及比較運算以及其他。
在一些實施例中,如圖15中所展示,演算單元1510及複製演算單元1512可連接至開關電路1514及1516。當經啟動時,該等開關電路可啟用或停用該等演算單元。
在邏輯區塊1500中,複製演算單元1512可再製計算單元1510。此外,在一些實施例中,暫存器1508、取得電路1504、解碼器1506及寫回電路1518(統稱為區域邏輯單元)之大小可小於演算單元1510。因為較大元件更容易在製造期間出現問題,所以設計者可決定複製較大單元 (諸如,演算單元1510)而非複製較小單元(諸如,區域邏輯單元)。然而,取決於歷史良率及錯誤率,除複製大單元(或整個區塊)以外或替代複製大單元(或整個區塊),設計者亦可選擇複製區域邏輯單元。舉例而言,演算單元1510可比暫存器1508、取得電路1504、解碼器1506及寫回電路1518大,且因此更容易出錯。設計者可選擇複製演算單元1510而非複製邏輯區塊1500中之其他元件或整個區塊。
邏輯區塊1500可包括複數個區域組態開關,該等複數個區域組態開關中之每一者連接至演算單元1510或複製演算單元1512中之至少一者中的至少一者。當偵測到演算單元1510中之故障時,區域組態開關可經組態以停用演算單元1510且啟用複製演算單元1512。
圖16展示符合所揭示實施例之與匯流排連接之例示性邏輯區塊的功能方塊圖。在一些實施例中,邏輯區塊1602(其可表示記憶體邏輯1306、商業邏輯1308或冗餘商業邏輯1310)可彼此獨立,可經由匯流排連接,且可藉由特定地定址該等邏輯區塊而在外部啟動。舉例而言,記憶體晶片1300可包括許多邏輯區塊,每一邏輯區塊具有一ID號。然而,在其他實施例中,邏輯區塊1602可表示由記憶體邏輯1306、商業邏輯1308或冗餘商業邏輯1310中之複數者(一或多者)構成的較大單元。
在一些實施例中,邏輯區塊1602中之每一者可與其他邏輯區塊1602冗餘。所有區塊可作為主要或冗餘區塊來操作之此完全冗餘性可改良製造良率,此係因為設計者可斷開故障單元同時維持整個晶片之功能性。舉例而言,設計者可能夠停用容易出錯但維持類似演算能力之邏輯區域,此係因為所有複製區塊可連接至相同的位址匯流排及資料匯流排。舉例而言,邏輯區塊1602之初始數目可大於目標容量。因而,停用一些邏輯區塊1602將不會影響目標容量。
連接至邏輯區塊之匯流排可包括位址匯流排1614、命令線1616及資料線1618。如圖16中所展示,邏輯區塊中之每一者可獨立於匯流排中之每一線而連接。然而,在某些實施例中,邏輯區塊1602可按階層式結構連接以促進路由。舉例而言,匯流排中之每一線可連接至將該線路由至不同邏輯區塊1602之多工器。
在一些實施例中,為了在不知曉內部晶片結構(其可能由於啟用及停用單元而改變)之情況下允許外部存取,邏輯區塊中之每一者可包括熔斷ID,諸如熔斷識別件1604。熔斷識別件1604可包括判定ID之開關(如熔斷器)的陣列,且可連接至管理電路。舉例而言,熔斷識別件1604可連接至位址管理器1302。替代地,熔斷識別件1604可連接至較高記憶體位址單元。在此等實施例中,熔斷識別件1604可能可組態以用於特定位址。舉例而言,熔斷識別件1604可包括可程式化的非揮發性裝置,其基於自管理電路接收到之指令而判定最終ID。
記憶體晶片上之分散式處理器可設計成具有圖16中所描繪之組態。在晶片喚醒時或在工廠測試時執行為BIST之測試程序可將運行ID號指派給通過測試協定的複數個主要邏輯區塊(記憶體邏輯1306及商業邏輯1308)中之區塊。測試程序亦可將不合法ID號指派給未通過測試協定的複數個主要邏輯區塊中之區塊。測試程序亦可將運行ID號指派給通過測試協定的複數個冗餘區塊中之區塊(冗餘邏輯區塊1310)。因為冗餘區塊替換發生故障的主要邏輯區塊,所以經指派運行ID號的複數個冗餘區塊中之區塊可等於或大於經指派不合法ID號的複數個主要邏輯區塊中之區塊,藉此停用區塊。此外,複數個主要邏輯區塊中之每一者及複數個冗餘區塊中之每一者可包括至少一個熔斷識別件1604。又,如圖16中所展示,連接邏輯區塊1602之匯流排可包括命令線、資料線及位址線。
然而,在其他實施例中,連接至匯流排之所有邏輯區塊1602將開始被停用且不具有ID號。逐個地測試,每一良好邏輯區塊將得到運行ID號,且不工作之彼等邏輯區塊將保留不合法ID,此將停用此等區塊。以此方式,冗餘邏輯區塊可藉由替換在測試處理程序期間已知有缺陷的區塊來改良製造良率。
位址匯流排1614可將管理電路耦接至複數個記憶體組中之每一者、複數個主要邏輯區塊中之每一者及複數個冗餘區塊中之每一者。此等連接允許管理電路在偵測到與主要邏輯區塊(諸如,商業邏輯1308)相關聯之故障後將無效位址指派給複數個主要邏輯區塊中之一者且將有效位址指派給複數個冗餘區塊中之一者。
舉例而言,如圖16A中所展示,不合法ID經組態至所有邏輯區塊1602(a)至1602(c)(例如,位址0xFFF)。在測試之後,邏輯區塊1602(a)及1602(c)經驗證為起作用,而邏輯區塊1602(b)不起作用。在圖16A中,無陰影邏輯區塊可表示成功地通過功能性測試之邏輯區塊,而陰影邏輯區塊可表示未通過功能性測試之邏輯區塊。因而,測試程序針對起作用的邏輯區塊將不合法ID改變為合法ID,而為不作用之邏輯區塊保留不合法ID。作為一實施例,在圖16A中,邏輯區塊1602(a)及1602(c)之位址自0xFFF分別改變為0x001及0x002。相比之下,邏輯區塊1602(b)之位址仍為不合法位址0xFFF。在一些實施例中,ID藉由程式化對應熔斷識別件1604來改變。
來自邏輯區塊1602之測試的不同結果可產生不同組態。舉例而言,如圖16B中所展示,位址管理器1302最初可將不合法ID指派給所有邏輯區塊1602(亦即,0xFFF)。然而,測試結果可指示兩個邏輯區塊1602(a)及1602(b)起作用。在此等狀況下,對邏輯區塊1602(c)之測試可能並 非必要的,此係因為記憶體晶片1300可能僅需要兩個邏輯區塊。因此,為了將測試資源減至最少,可僅根據1300之產品定義所需的起作用邏輯區塊之最小數目來測試邏輯區塊,以使其他邏輯區塊未經測試。圖16B亦展示表示通過功能性測試之經測試邏輯區塊的無陰影邏輯區塊及表示未測試邏輯區塊之陰影邏輯區塊。
在此等實施例中,在起動時執行BIST之生產測試器(外部或內部的,自動或人工的)或控制器可針對起作用的經測試邏輯區塊將不合法ID改變為運行ID,而為未測試邏輯區塊保留不合法ID。作為一實施例,在圖16B中,邏輯區塊1602(a)及1602(b)之位址自0xFFF分別改變為0x001及0x002。相比之下,未測試邏輯區塊1602(c)之位址仍為不合法位址0xFFF。
圖17為符合所揭示實施例的串聯連接之例示性單元1702及1712的功能方塊圖。圖17可表示整個系統或晶片。替代地,圖17可表示含有其他起作用區塊之晶片中的區塊。
單元1702及1712可表示包括諸如記憶體邏輯1306及/或商業邏輯1308的複數個邏輯區塊之完整單元。在此等實施例中,單元1702及1712亦可包括執行操作所需之元件,諸如位址管理器1302。然而,在其他實施例中,單元1702及1712可表示諸如商業邏輯1308或冗餘商業邏輯1310之邏輯單元。
圖17呈現單元1702及1712可能需要在其本身之間通信的實施例。在此類狀況下,單元1702及1712可串聯連接。然而,非工作單元可破壞邏輯區塊之間的連續性。因此,當單元由於缺陷而需要被停用時,單元之間的連接可包括旁路選項。該旁路選項亦可為旁路單元本身之部分。
在圖17中,單元可串聯連接(例如,1702(a)至1702(c)), 且發生故障的單元(例如,1702(b))可在其有缺陷時被繞過。該等單元可進一步與開關電路並聯地連接。舉例而言,在一些實施例中,單元1702及1712可與開關電路1722及1728連接,如圖17中所描繪。在圖17中所描繪之實施例中,單元1702(b)有缺陷。舉例而言,單元1702(b)未通過電路功能性測試。因此,可使用例如啟動開關1314(圖17中未展示)來停用單元1702(b),及/或可啟動開關電路1722(b)以繞過單元1702(b)且維持邏輯區塊之間的連接性。
因此,當複數個主要單元串聯連接時,該等複數個單元中之每一者可與一並聯開關並聯地連接。在偵測到與複數個單元中之一者相關聯的故障後,可啟動連接至該等複數個單元中之該者的並聯開關以連接該等複數個單元中之兩者。
在其他實施例中,如圖17中所展示,開關電路1728可包括將致使一或多個循環延遲之一或更多個取樣點,以維持單元之不同線之間的同步。當停用一單元時,鄰近邏輯區塊之間的連接之短路可能會產生與其他計算之同步誤差。舉例而言,若一任務需要來自A線及B線兩者之資料,且A及B中之每一者係由獨立之一系列單元承載,則停用一單元將導致將需要進一步資料管理之線之間的去同步。為了防止去同步,樣本電路1730可模擬由經停用單元1712(b)引起的延遲。然而,在一些實施例中,並聯開關可包括反熔斷器而非取樣電路1730。
圖18為符合所揭示實施例之成二維陣列連接之例示性單元的功能方塊圖。圖18可表示整個系統或晶片。替代地,圖18可表示含有其他起作用區塊之晶片中的區塊。
單元1806可表示包括諸如記憶體邏輯1306及/或商業邏輯1308之複數個邏輯區塊的自主單元。然而,在其他實施例中,單元1806可 表示諸如商業邏輯1308之邏輯單元。在方便時,圖18之論述可參考圖13(例如,記憶體晶片1300)中所識別且上文所論述之元件。
如圖18中所展示,單元可配置成二維陣列,其中單元1806(其可包括或表示記憶體邏輯1306、商業邏輯1308或冗餘商業邏輯1310中之一或多者)經由開關箱1808及連接箱1810互連。此外,為了控制二維陣列之組態,二維陣列可在二維陣列之周邊中包括I/O區塊1804。
連接箱1810可為可程式化且可重組態之裝置,其可對自I/O區塊1804輸入之信號作出回應。舉例而言,連接箱可包括來自單元1806之複數個輸入接腳且亦可連接至開關箱1808。替代地,連接箱1810可包括將可程式化邏輯胞元之接腳與路由軌線連接的開關之群組,而開關箱1808可包括連接不同軌線的開關之群組。
在某些實施例中,連接箱1810及開關箱1808可藉由諸如開關1312及1314之組態開關實施。在此等實施例中,連接箱1810及開關箱1808可由生產測試器或在晶片起動時所執行之BIST來組態。
在一些實施例中,連接箱1810及開關箱1808可在測試單元1806之電路功能性之後進行組態。在此等實施例中,I/O區塊1804可用以將測試信號發送至單元1806。取決於測試結果,I/O區塊1804可發送程式化信號,該等程式化信號以停用未通過測試協定之單元1806且啟用通過測試協定之單元1806的方式來組態連接箱1810及開關箱1808。
在此等實施例中,複數個主要邏輯區塊及複數個冗餘區塊可成二維柵格安置於基板上。因此,複數個主要單元1806中之每一者及複數個冗餘區塊中之每一者(諸如,冗餘商業邏輯1310)可用開關箱1808互連,且輸入區塊可安置於二維柵格之每一線及每一行之周邊中。
圖19為符合所揭示實施例之處於複雜連接中之例示性單元 的功能方塊圖。圖19可表示整個系統。替代地,圖19可表示含有其他起作用區塊之晶片中的區塊。
圖19之複雜連接包括單元1902(a)至1902(f)及組態開關1904(a)至1904(f)。單元1902可表示包括諸如記憶體邏輯1306及/或商業邏輯1308之複數個邏輯區塊的自主單元。然而,在其他實施例中,單元1902可表示諸如記憶體邏輯1306、商業邏輯1308或冗餘商業邏輯1310之邏輯單元。組態開關1904可包括撤銷啟動開關1312及啟動開關1314中之任一者。
如圖19中所展示,該複雜連接可包括兩個平面中之單元1902。舉例而言,複雜連接可包括在z軸上分開的兩個獨立基板。替代地或另外,單元1902可配置於基板之兩個表面中。舉例而言,出於縮減記憶體晶片1300之面積之目的,基板1301可配置於兩個重疊表面中且與在三維上配置之組態開關1904連接。組態開關可包括撤銷啟動開關1312及/或啟動開關1314。
基板之第一平面可包括「主」單元1902。此等區塊可預設為經啟用。在此等實施例中,第二平面可包括「冗餘」單元1902。此等單元可預設為經停用。
在一些實施例中,組態開關1904可包括反熔斷器。因此,在測試單元1902之後,區塊可藉由將某些反熔斷器切換至「始終接通」及停用選定單元1902來連接於起作用單元之塊中,即使該等單元在不同平面中亦如此。在圖19中所呈現之實施例中,「主」單元中之一者(單元1902(e))不工作。圖19可將不起作用區塊或未測試區塊表示為陰影區塊,而經測試或起作用區塊可為無陰影的。因此,組態開關1904經組態以使得不同平面中之邏輯區塊中之一者(例如,單元1902(f))變為作用中。以此方式,即 使主邏輯區塊中之一者有缺陷,記憶體晶片仍藉由替換備用邏輯單元而工作。
圖19另外展示不測試或啟用第二平面中之單元1902中之一者(亦即,1902(c)),此係因為主邏輯區塊起作用。舉例而言,在圖19中,兩個主單元1902(a)及1902(d)通過功能性測試。因此,單元1902(c)未被測試或啟用。因此,圖19展示特定地選擇取決於測試結果而變為在作用中之邏輯區塊的能力。
在一些實施例中,如圖19中所展示,並非第一平面中之所有單元1902均可具有對應的備用或冗餘區塊。然而,在其他實施例中,所有單元可彼此冗餘以實現完全冗餘,其中所有單元均為主要或冗餘的。此外,雖然一些實施可遵循圖19中所描繪之星形網路拓樸,但其他實施可使用並聯連接、串聯連接及/或將不同元件與組態開關並聯地或串聯地耦接。
圖20為說明符合所揭示實施例之冗餘區塊啟用處理程序2000的例示性流程圖。可針對記憶體晶片1300且特別地針對DRAM記憶體晶片實施啟用處理程序2000。在一些實施例中,處理程序2000可包括以下步驟:測試記憶體晶片之基板上的複數個邏輯區塊中之每一者的至少一個電路功能性;基於測試結果識別複數個主要邏輯區塊中之故障邏輯區塊;測試記憶體晶片之基板上的至少一個冗餘或額外邏輯區塊的至少一個電路功能性;藉由將外部信號施加至撤銷啟動開關來停用至少一個故障邏輯區塊;及藉由將該外部信號施加至啟動開關來啟用該至少一個冗餘區塊,該啟動開關與該至少一個冗餘區塊連接且安置於該記憶體晶片之該基板上。以下圖20之描述進一步詳述處理程序2000之每一步驟。
處理程序2000可包括測試諸如商業區塊1308之複數個邏輯區塊(步驟2002)及複數個冗餘區塊(例如,冗餘商業區塊1310)。測試 可在封裝之前使用例如用於晶圓上測試之探測站進行。然而,步驟2000亦可在封裝之後執行。
步驟2002中之測試可包括將有限序列之測試信號施加至記憶體晶片1300中之每個邏輯區塊或記憶體晶片1300中之邏輯區塊的子集。該等測試信號可包括請求預期得到0或1之演算。在其他實施例中,測試信號可請求讀取記憶體組中之特定位址或寫入特定記憶體組中。
可在步驟2002中實施測試技術以測試邏輯區塊在反覆處理程序下之回應。舉例而言,該測試可涉及藉由傳輸將資料寫入記憶體組中之指令及接著驗證寫入資料之完整性來測試邏輯區塊。在一些實施例中,該測試可包括利用反轉資料重複演算法。
在替代實施例中,步驟2002之測試可包括運行邏輯區塊之模型以基於一組測試指令產生目標記憶體影像。接著,可對記憶體晶片中之邏輯區塊執行同一序列之指令,且可記錄結果。模擬之殘餘記憶體影像亦可與自測試獲得之影像進行比較,且任何失配可標示為故障。
替代地,在步驟2002中,該測試可包括陰影模型化,在陰影模型化中會產生診斷,但未必預測結果。實情為,使用陰影模型化之測試可對記憶體晶片及模擬兩者平行地執行。舉例而言,當記憶體晶片中之邏輯區塊完成指令或任務時,模擬可經發信以執行同一指令。一旦記憶體晶片中之邏輯區塊完成該等指令,便可將兩個模型之架構狀態進行比較。若存在失配,則標示故障。
在一些實施例中,可在步驟2002中測試所有邏輯區塊(包括例如記憶體邏輯1306、商業邏輯1308或冗餘商業邏輯1310中之每一者)。然而,在其他實施例中,可在不同測試回合中僅測試邏輯區塊之子集。舉例而言,在第一測試回合中,可僅測試記憶體邏輯1306及相關聯區塊。 在第二回合中,可僅測試商業邏輯1308及相關聯區塊。在第三回合中,取決於前兩個回合之結果,可測試與冗餘商業邏輯1310相關聯之邏輯區塊。
處理程序2000可繼續至步驟2004。在步驟2004中,可識別故障邏輯區塊,且亦可識別故障冗餘區塊。舉例而言,未通過步驟2002之測試的邏輯區塊可在步驟2004中識別為故障區塊。然而,在其他實施例中,最初僅可識別某些故障邏輯區塊。舉例而言,在一些實施例中,僅可識別與商業邏輯1308相關聯之邏輯區塊,且僅在需要故障冗餘區塊以替代故障邏輯區塊的情況下識別故障冗餘區塊。此外,識別故障區塊可包括在記憶體組或非揮發性記憶體上寫入經識別故障區塊之識別資訊。
在步驟2006中,可停用故障邏輯區塊。舉例而言,使用組態電路,可藉由將故障邏輯區塊與時脈、接地及/或電源節點斷開來停用故障邏輯區塊。替代地,可藉由以避開邏輯區塊之配置組態連接箱來停用故障邏輯區塊。又,在其他實施例中,可藉由自位址管理器1302接收不合法位址來停用故障邏輯區塊。
在步驟2008中,可識別複製故障邏輯區塊之冗餘區塊。即使一些邏輯區塊已發生故障,為了支援記憶體晶片的相同能力,在步驟2008中,可識別可用且可複製故障邏輯區塊之冗餘區塊。舉例而言,若執行向量之乘法的邏輯區塊經判定為發生故障,則在步驟2008中,位址管理器1302或晶載控制器可識別亦執行向量之乘法的可用冗餘邏輯區塊。
在步驟2010中,可啟用在步驟2008中所識別之冗餘區塊。與步驟2006之停用操作相比,在步驟2010中,可藉由將經識別冗餘區塊連接至時脈、接地及/或電源節點來啟用該等經識別冗餘區塊。替代地,可藉由以連接經識別冗餘區塊之配置組態連接箱來啟用經識別冗餘區塊。又,在其他實施例中,可藉由在測試程序執行時間接收運行位址來啟用經 識別冗餘區塊。
圖21為說明符合所揭示實施例之位址指派處理程序2100的例示性流程圖。可針對記憶體晶片1300且特別地針對DRAM記憶體晶片實施位址指派處理程序2100。如關於圖16所描述,在一些實施例中,記憶體晶片1300中之邏輯區塊可連接至資料匯流排且具有位址標識。處理程序2100描述位址指派方法,該位址指派方法停用故障邏輯區塊且啟用通過測試之邏輯區塊。處理程序2100中所描述之步驟將描述為由生產測試器或在晶片起動時所執行之BIST執行;然而,記憶體晶片1300之其他組件及/或外部裝置亦可執行處理程序2100之一或多個步驟。
在步驟2102中,測試器可藉由在晶片層級將不合法標識指派給每一邏輯區塊來停用所有邏輯區塊及冗餘區塊。
在步驟2104中,測試器可執行邏輯區塊之測試協定。舉例而言,測試器可針對記憶體晶片1300中之邏輯區塊中之一或多者執行步驟2002中所描述的測試方法。
在步驟2106中,取決於步驟2104中之測試之結果,測試器可判定邏輯區塊是否有缺陷。若邏輯區塊無缺陷(步驟2106:否),則位址管理器可在步驟2108中將運行ID指派給經測試邏輯區塊。若邏輯區塊有缺陷(步驟2106:是),則位址管理器1302可在步驟2110中為有缺陷邏輯區塊保留不合法ID。
在步驟2112中,位址管理器1302可選擇複製有缺陷邏輯區塊之冗餘邏輯區塊。在一些實施例中,複製有缺陷邏輯區塊之冗餘邏輯區塊可具有與有缺陷邏輯區塊相同的組件及連接。然而,在其他實施例中,冗餘邏輯區塊可具有不同於有缺陷邏輯區塊的組件及/或連接,但能夠執行等效操作。舉例而言,若有缺陷邏輯區塊經設計以執行向量之乘法,則選 定冗餘邏輯區塊將能夠執行向量之乘法,即使選定冗餘邏輯區塊不具有與有缺陷單元相同的架構亦如此。
在步驟2114中,位址管理器1302可測試冗餘區塊。舉例而言,測試器可將步驟2104中應用之測試技術應用於經識別冗餘區塊。
在步驟2116中,基於步驟2114中之測試之結果,測試器可判定冗餘區塊是否有缺陷。在步驟2118中,若冗餘區塊無缺陷(步驟2116:否),則測試器可將運行ID指派給經識別冗餘區塊。在一些實施例中,處理程序2100可在步驟2118之後返回至步驟2104,以產生測試記憶體晶片中之所有邏輯區塊的反覆迴圈。
若測試器判定冗餘區塊有缺陷(步驟2116:是),則在步驟2120中,測試器可判定額外冗餘區塊是否可用。舉例而言,測試器可向記憶體組查詢關於可用冗餘邏輯區塊之資訊。若冗餘邏輯區塊可用(步驟2120:是),則測試器可返回至步驟2112且識別再製有缺陷邏輯區塊之新的冗餘邏輯區塊。若冗餘邏輯區塊不可用(步驟2120:否),則在步驟2122中,測試器可產生錯誤信號。該錯誤信號可包括有缺陷邏輯區塊及有缺陷冗餘區塊之資訊。
耦接之記憶體組
本發明所揭示之實施例亦包括分散式高效能處理器。該處理器可包括介接記憶體組及處理單元之記憶體控制器。該處理器可能可組態以加快將資料遞送至處理單元以用於計算。舉例而言,若處理單元需要兩個資料例項以執行任務,則記憶體控制器可經組態以使得通信線獨立地提供對來自兩個資料例項之資訊的存取。所揭示之記憶體架構試圖將與複雜快取記憶體及複雜暫存器檔案方案相關聯之硬體要求降至最低。通常,處理器晶片包括允許核心直接與暫存器一起工作的快取記憶體階層。然而, 快取記憶體操作需要相當大的晶粒面積且消耗額外功率。所揭示之記憶體架構藉由在記憶體中添加邏輯組件來避免使用快取記憶體階層。
所揭示架構亦實現資料在記憶體組中之策略性(或甚至最佳化)置放。即使記憶體組具有單一埠及高潛時,所揭示之記憶體架構亦可藉由將資料策略性地定位於記憶體組之不同區塊中來實現高效能及避免記憶體存取瓶頸。以將資料之連續串流提供至處理單元為目標,編譯最佳化步驟可針對特定或一般任務判定資料應如何儲存於記憶體組中。接著,介接處理單元及記憶體組之記憶體控制器可經組態以在特定處理單元需要資料以執行操作時向該等特定處理單元授權存取。
記憶體晶片之組態可由處理單元(例如,組態管理者)或外部介面執行。該組態亦可由編譯器或其他SW工具寫入。此外,記憶體控制器之組態可基於記憶體組中之可用埠及記憶體組中之資料的組織。因此,所揭示架構可向處理單元提供來自不同記憶體區塊之恆定資料流或同時資訊。以此方式,記憶體內之演算任務可藉由避免潛時瓶頸或快取記憶體要求來快速地處理。
此外,儲存於記憶體晶片中之資料可基於編譯最佳化步驟進行配置。編譯可允許建置處理常式,其中處理器將任務高效地指派給處理單元而無記憶體潛時相關聯之延遲。該編譯可由編譯器執行且被傳輸至連接至基板中之外部介面之主機。通常,某些存取圖案之高潛時及/或少量埠將導致需要資料之處理單元的資料瓶頸。然而,所揭示編譯可按使得處理單元能夠甚至在不利記憶體類型之情況下仍連續地接收資料的方式將資料定位於記憶體組中。
此外,在一些實施例中,組態管理器可基於任務所需之演算向所需處理單元發信。晶片中之不同處理單元或邏輯區塊可具有針對不同 任務之專門硬體或架構。因此,取決於將執行之任務,可選擇處理單元或處理單元群組來執行任務。基板上之記憶體控制器可能可組態以根據處理子單元之選擇來投送資料或授權存取,以改良資料傳送速率。舉例而言,基於編譯最佳化及記憶體架構,當需要處理單元以執行任務時,可授權該等處理單元對記憶體組之存取。
此外,晶片架構可包括晶載組件,該等晶載組件藉由縮減存取記憶體組中之資料所需的時間來促進資料之傳送。因此,本發明描述用於能夠使用簡單的記憶體執行個體執行特定或一般任務的高效能處理器的晶片架構連同編譯最佳化步驟。記憶體執行個體可具有高的隨機存取潛時及/或少量埠,諸如DRAM裝置或其他記憶體定向技術中所使用之彼等記憶體執行個體,但所揭示架構可藉由實現自記憶體組至處理單元之連續(或幾乎連續)資料流來克服此等缺點。
在本申請案中,同時通信可指一時脈循環內之通信。替代地,同時通信可指在預定時間量內發送資訊。舉例而言,同時通信可指在幾奈秒內之通信。
圖22提供符合所揭示實施例之例示性處理裝置的功能方塊圖。圖22A展示處理裝置2200之第一實施例,其中記憶體控制器2210使用多工器連接第一記憶體區塊2202及第二記憶體區塊2204。記憶體控制器2210亦可連接至少一組態管理器2212、一邏輯區塊2214及多個加速器2216(a)至2216(n)。圖22B展示處理裝置2200之第二實施例,其中記憶體控制器2210使用匯流排連接記憶體區塊2202及2204,該匯流排連接記憶體控制器2210與至少一組態管理器2212、一邏輯區塊2214及多個加速器2216(a)至2216(n)。此外,主機2230可在處理裝置2200外部且經由例如外部介面連接至處理裝置。
記憶體區塊2202及2204可包括DRAM墊或墊群組、DRAM組、MRAM\PRAM\RERAM\SRAM單元、快閃記憶體墊或其他記憶體技術。記憶體區塊2202及2204可替代地包括非揮發性記憶體、快閃記憶體裝置、電阻式隨機存取記憶體(ReRAM)裝置或磁阻式隨機存取記憶體(MRAM)裝置。
記憶體區塊2202及2204可另外包括複數個記憶體胞元,該等複數個記憶體胞元在複數條字線(未圖示)與複數條位元線(未圖示)之間配置成列及行。每一列記憶體胞元之閘極可連接至複數條字線中之各別者。每一行記憶體胞元可連接至複數條位元線中之各別者。
在其他實施例中,記憶體區域(包括記憶體區塊2202及2204)由簡單的記憶體執行個體建置。在本申請案中,術語「記憶體執行個體」可與術語「記憶體區塊」互換使用。記憶體執行個體(或區塊)可具有不良特性。舉例而言,記憶體可為僅單埠記憶體且可具有高隨機存取潛時。替代地或另外,記憶體在行及線改變期間可能無法存取且面臨與例如電容充電及/或電路系統設置相關之資料存取問題。然而,藉由允許記憶體執行個體與處理單元之間的專用連接及以考慮區塊之特性的某一方式來配置資料,圖22中所呈現之架構仍促進記憶體裝置中之平行處理。
在一些裝置架構中,記憶體執行個體可包括若干埠,以促進平行操作。然而,在此等實施例中,當資料基於晶片架構來編譯及組織時,晶片仍可達成改良效能。舉例而言,編譯器可藉由提供指令及組織資料置放來改良記憶體區域中之存取的效率,因此即使使用單埠記憶體,仍能夠容易存取記憶體區域。
此外,記憶體區塊2202及2204可為單一晶片中之記憶體的多個類型。舉例而言,記憶體區塊2202及2204可為eFlash及eDRAM。又, 記憶體區塊可包括具有ROM執行個體之DRAM。
記憶體控制器2210可包括用以處置記憶體存取及將結果傳回至模組之其餘部分的邏輯電路。舉例而言,記憶體控制器2210可包括位址管理器及諸如多工器之選擇裝置,以在記憶體區塊與處理單元之間投送資料或授權對記憶體區塊之存取。替代地,記憶體控制器2210可包括用以驅動DDR SDRAM之雙資料速率(DDR)記憶體控制器,其中資料係在系統之記憶體時脈的上升邊緣及下降邊緣上傳送。
此外,記憶體控制器2210可構成雙通道記憶體控制器。雙通道記憶體之併入可促進記憶體控制器2210對平行存取線之控制。該等平行存取線可經組態以具有相同長度,以在結合使用多個線時促進資料同步。替代地或另外,該等平行存取線可允許存取記憶體組之多個記憶體埠。
在一些實施例中,處理裝置2200可包括可連接至處理單元之一或多個多工器。該等處理單元可包括可直接至多工器之組態管理器2212、邏輯區塊2214及加速器2216。又,記憶體控制器2210可包括來自複數個記憶體組或區塊2202及2204之至少一個資料輸入端,及連接至複數個處理單元中之每一者的至少一個資料輸出端。藉由此組態,記憶體控制器2210可經由兩個資料輸入端同時自記憶體組或記憶體區塊2202及2204接收資料,且經由兩個資料輸出端同時將經由接收之資料傳輸至至少一個選定處理單元。然而,在一些實施例中,至少一個資料輸入端及至少一個資料輸出端可實施於單一埠中,以允許僅讀取或寫入操作。在此等實施例中,單一埠可實施為包括資料線、位址線及命令線之資料匯流排。
記憶體控制器2210可連接至複數個記憶體區塊2202及2204中之每一者,且亦可經由例如選擇開關連接至處理單元。基板上之處理單元(包括組態管理器2212、邏輯區塊2214及加速器2216)亦可獨立 地連接至記憶體控制器2210。在一些實施例中,組態管理器2212可接收待執行之任務的指示,且作為回應,根據儲存於記憶體中或自外部供應之組態而組態記憶體控制器2210、加速器2216及/或邏輯區塊2214。替代地,記憶體控制器2210可由外部介面組態。該任務可能需要可用以自複數個處理單元選擇至少一個選定處理單元之至少一次演算。替代地或另外,該選擇可至少部分地基於選定處理單元執行至少一次演算之能力。作為回應,記憶體控制器2210可授權對記憶體組之存取,或使用專用匯流排及/或以管線式記憶體存取在至少一個選定處理單元與至少兩個記憶體組之間投送資料。
在一些實施例中,至少兩個記憶體區塊中之第一記憶體區塊2202可配置於複數個處理單元之第一側上;且至少兩個記憶體組中之第二記憶體組2204可配置該等複數個處理單元之與該第一側相對的第二側上。另外,用以執行任務之選定處理單元(例如,加速器2216(n))可經組態以在至第一記憶體組或第一記憶體區塊2202之通信線開放的時脈循環期間存取第二記憶體組2204。替代地,該選定處理單元可經組態以在至第一記憶體區塊2202之通信線開放的時脈循環期間將資料傳送至第二記憶體區塊2204。
在一些實施例中,記憶體控制器2210可實施為獨立元件,如圖22中所展示。然而,在其他實施例中,記憶體控制器2210可嵌入於記憶體區域中或可沿著加速器2216(a)至2216(n)安置。
處理裝置2200中之處理區域可包括組態管理器2212、邏輯區塊2214及加速器2216(a)至2216(n)。加速器2216可包括具有預定義功能之多個處理電路且可由特定應用程式定義。舉例而言,加速器可為處置模組之間的記憶體移動之向量乘法累加(MAC)單元或直接記憶體存取 (DMA)單元。加速器2216亦可能夠計算其自身位址且向記憶體控制器2210請求資料或將資料寫入至記憶體控制器。舉例而言,組態管理器2212可向加速器2216中之至少一者發信該加速器可存取記憶體組。接著,加速器2216可組態記憶體控制器2210以投送資料或向加速器本身授權存取。此外,加速器2216可包括至少一個算術邏輯單元、至少一個向量處置邏輯單元、至少一個字串比較邏輯單元、至少一個暫存器及至少一個直接記憶體存取件。
組態管理器2212可包括用以組態加速器2216及指示任務之執行的數位處理電路。舉例而言,組態管理器2212可連接至記憶體控制器2210及複數個加速器2216中之每一者。組態管理器2212可具有其自身的專用記憶體以保存加速器2216之組態。組態管理器2212可使用記憶體組以經由記憶體控制器2210取得命令及組態。替代地,組態管理器2212可經由外部介面來程式化。在某些實施例中,組態管理器2212可用具有自身的快取記憶體階層之晶載精簡指令集電腦(RISC)或晶載複雜CPU來實施。在一些實施例中,亦可省略組態管理器2212,且加速器可經由外部介面來組態。
處理裝置2200亦可包括外部介面(未圖示)。該外部介面允許自上部層級(此記憶體組控制器,其接收來自外部主機2230或晶載主處理器之命令)對記憶體進行存取,或自外部主機2230或晶載主處理器對記憶體進行存取。該外部介面可藉由經由記憶體控制器2210將組態或程式碼寫入至記憶體以供組態管理器2212或單元2214及2216本身稍後使用來允許程式化組態管理器2212及加速器2216。然而,該外部介面亦可直接程式化處理單元而不經由記憶體控制器2210進行路由。在組態管理器2212為微控制器之狀況下,組態管理器2212可允許經由外部介面將程式碼自主記憶體載入至控制器區域記憶體。記憶體控制器2210可經組態以回應於接收 到來自外部介面之請求而中斷任務。
該外部介面可包括與邏輯電路相關聯之多個連接器,該等連接器提供至處理裝置上之多種元件的無膠合介面。該外部介面可包括:用於資料讀取之資料I/O輸入端及用於資料寫入之輸出端;外部位址輸出端;外部CE0晶片選擇接腳;低有效晶片選擇器;位元組啟用接腳;用於記憶體循環之等待狀態的接腳;寫入啟用接腳;輸出啟用有效接腳;及讀取寫入啟用接腳。因此,該外部介面具有所需輸入端及輸出端以控制處理程序且自處理裝置獲得資訊。舉例而言,該外部介面可符合JEDEC DDR標準。替代地或另外,外部介面可符合其他標準,諸如SPI\OSPI或UART。
在一些實施例中,該外部介面可安置於晶片基板上且可連接外部主機2230。外部主機可經由外部介面存取記憶體區塊2202及2204、記憶體控制器2210以及處理單元。替代地或另外,外部主機2230可對記憶體進行讀取及寫入,或可經由讀取及寫入命令向組態管理器2212發信以執行操作,諸如開始處理程序及/或停止處理程序。此外,外部主機2230可直接組態加速器2216。在一些實施例中,外部主機2230能夠直接對記憶體區塊2202及2204執行讀取/寫入操作。
在一些實施例中,組態管理器2212及加速器2216可經組態以取決於目標任務而使用直接匯流排來連接裝置區域與記憶體區域。舉例而言,當加速器2216之子集能夠執行任務執行所需之演算時,加速器之該子集可與記憶體執行個體2204連接。藉由進行此分開,有可能確保專用加速器獲得記憶體區塊2202及2204所需之頻寬(BW)。此外,具有專用匯流排之此組態可允許將大記憶體分裂成較小執行個體或區塊,此係因為將記憶體執行個體連接至記憶體控制器2210允許甚至在具有高列潛時之情況下亦可快速存取不同記憶體中的資料。為達成連接之平行化,記憶體控制 器2210可用資料匯流排、位址匯流排及/或控制匯流排連接至記憶體執行個體中之每一者。
記憶體控制器2210之上述包括可消除對處理裝置中之快取記憶體階層或複雜暫存器檔案的要求。儘管可添加快取記憶體階層以得到添加的能力,但處理裝置處理裝置2200中之架構可允許設計者基於處理操作而添加足夠記憶體區塊或執行個體且在無快取記憶體階層之情況下相應地管理該等執行個體。舉例而言,處理裝置處理裝置2200中之架構可藉由實施管線式記憶體存取來消除對快取記憶體階層的需求。在管線式記憶體存取中,處理單元可在某些資料線可開放(或啟動)而其他資料線接收或傳輸資料的每個循環中接收持續資料流。使用獨立通信線之持續資料流可能由於線改變而實現改良之執行速度及最小潛時。
此外,圖22中之所揭示架構實現管線式記憶體存取,有可能將資料組織在少量記憶體區塊中且節省由線切換造成之功率損耗。舉例而言,在一些實施例中,編譯器可向主機2230傳達資料在記憶體組中之組織或用以將資料組織在記憶體組中之方法,以促進在給定任務期間存取資料。接著,組態管理器2212可定義哪些記憶體組且在一些狀況下記憶體組之哪些埠可由加速器存取。記憶體組中之資料的位置與資料存取方法之間的此同步藉由以最小潛時將資料饋入至加速器來改良演算任務。舉例而言,在組態管理器2212包括RISC\CPU的實施例中,該方法可用離線軟體(SW)來實施,且接著組態管理器2212可經程式化以執行該方法。該方法可用可由RISC/CPU電腦執行之任何語言來開發且可在任何平台上執行。該方法之輸入可包括記憶體控制器後方之記憶體的組態及資料本身,連同記憶體存取之圖案。此外,該方法可用特定於實施例之語言或機器語言來實施,且亦可僅為以二進位或文字表示的一系列組態值。
如上文所論述,在一些實施例中,編譯器可將指令提供至主機2230以用於在準備管線式記憶體存取時將資料組織在記憶體區塊2202及2204中。該管線式記憶體存取通常可包括以下步驟:接收複數個記憶體組或記憶體區塊2202及2204之複數個位址;根據所接收之位址使用獨立資料線存取該等複數個記憶體組;經由第一通信線將來自第一位址之資料供應至複數個處理單元中之至少一者且開放至第二位址之第二通信線,該第一位址在該等複數個記憶體組中之第一記憶體組中,該第二位址在該等複數個記憶體組中之第二記憶體組2204中;及在第二時脈循環內,經由該第二通信線將來自該第二位址之資料供應至該等複數個處理單元中之該至少一者且開放至第一線中之第一記憶體組中之第三位址的第三通信線。在一些實施例中,該管線式記憶體存取可在兩個記憶體區塊連接至單一埠的情況下執行。在此等實施例中,記憶體控制器2210可將兩個記憶體區塊隱藏在單一埠後,但利用管線式記憶體存取方法將資料傳輸至處理單元。
在一些實施例中,編譯器可在主機2230上執行,之後執行任務。在此等實施例中,編譯器可能夠基於記憶體裝置之架構而判定資料流之組態,此係因為該組態將為編譯器已知的。
在其他實施例中,若記憶體區塊2204及2202之組態在離線時間係未知的,則管線式方法可在主機2230上執行,該主機可在開始計算之前將資料配置在記憶體區塊中。舉例而言,主機2230可將資料直接寫入記憶體區塊2204及2202中。在此等實施例中,諸如組態管理器2212及記憶體控制器2210之處理單元在運行時間之前可能不會具有關於所需硬體的資訊。接著,可能有必要延遲對加速器2216之選擇,直至任務開始運行。在此等情形中,處理單元或記憶體控制器2210可隨機地選擇加速器2216且產生測試資料存取圖案,該存取圖案可在執行任務時加以修改。
然而,當任務預先已知時,編譯器可將資料及指令組織在記憶體組中以供主機2230提供至諸如組態管理器2212之處理單元,以設定將存取潛時減至最少的信號連接。舉例而言,在一些狀況下,加速器2216可能同時需要n個字。然而,每一記憶體執行個體支援每次僅擷取m個字,其中「m」及「n」為整數且m<n。因此,編譯器可跨越不同記憶體執行個體或區塊置放所需資料,以促進資料存取。又,為了避免線錯漏潛時,在處理裝置2200包括多個記憶體記憶體的情況下,主機可在不同記憶體執行個體之不同線中分裂資料。資料之劃分可允許存取下一執行個體中之下一資料線,同時仍使用來自當前執行個體之資料。
舉例而言,加速器2216(a)可經組態以將兩個向量相乘。向量中之每一者可儲存於諸如記憶體區塊2202及2204之獨立記憶體區塊中,且每一向量可包括多個字。因此,為了完成需要加速器2216(a)進行乘法之任務,可能有必要存取兩個記憶體區塊且擷取多個字。然而,在一些實施例中,記憶體區塊僅允許每個時脈循環存取一個字。舉例而言,記憶體區塊可具有單一埠。在此等狀況下,為了在操作期間加快資料傳輸,編譯器可將構成向量之字組織於不同記憶體區塊中,以允許對字之平行及/或同時讀取。在此等情形中,編譯器可將字儲存於具有專用線之記憶體區塊中。舉例而言,若每一向量包括兩個字且記憶體控制器能夠直接存取四個記憶體區塊,則編譯器可將資料配置於四個記憶體區塊中,每一記憶體區塊傳輸一字且加快資料遞送。此外,在實施例中,當記憶體控制器2210可具有至每一記憶體區塊之多於單一連接時,編譯器可指示組態管理器2212(或其他處理單元)存取埠特定埠。以此方式,處理裝置2200可執行管線式記憶體存取,以藉由同時在一些線中載入字及在其他線中傳輸資料來將資料連續地提供至處理單元。因此,此管線式記憶體存取避免可避免潛時 問題。
圖23為符合所揭示實施例之例示性處理裝置2300的功能方塊圖。該功能方塊圖展示簡化之處理裝置2300,其顯示呈MAC單元2302形式之單一加速器、組態管理器2304(等效或類似於組態管理器2212)、記憶體控制器2306(等效或類似於記憶體控制器2210)及複數個記憶體區塊2308(a)至2308(d)。
在一些實施例中,MAC單元2302可為用於處理特定任務之特定加速器。作為實施例,處理裝置2300可以2D卷積為任務。接著,組態管理器2304可向具有適當硬體之加速器發信以執行與任務相關聯之計算。舉例而言,MAC單元2302可具有四個內部遞增計數器(用以管理卷積計算所需之四個迴路的邏輯加法器及暫存器)及一乘法累加單元。組態管理器2304可向MAC單元2302發信以處理傳入資料且執行任務。組態管理器2304可將指示傳輸至MAC單元2302以執行任務。在此等情形中,MAC單元2302可在所計算位址上進行反覆,將數字相乘,且將其累加至內部暫存器。
在一些實施例中,組態管理器2304可組態加速器,而記憶體控制器2306授權使用專用匯流排存取區塊2308及MAC單元2302。然而,在其他實施例中,記憶體控制器2306可基於自組態管理器2304或外部介面接收之指令而直接組態加速器。替代地或另外,組態管理器2304可預先載入幾個組態且允許加速器反覆地在具有不同大小之不同位址上運行。在此等實施例中,組態管理器2304可包括快取記憶體,該快取記憶體儲存命令,之後該命令被傳輸至諸如加速器2216之複數個處理單元中的至少一者。然而,在其他實施例中,組態管理器2304可能不包括快取記憶體。
在一些實施例中,組態管理器2304或記憶體控制器2306 可接收為了任務需要存取之位址。組態管理器2304或記憶體控制器2306可檢查暫存器以判定位址是否已經在至記憶體區塊2308中之一者的載入線中。若在載入線中,則記憶體控制器2306可自記憶體區塊2308讀取字且將該字傳遞至MAC單元2302。若位址不在載入線中,則組態管理器2304可請求記憶體控制器2306可載入該線且向MAC單元2302發信以延遲,直至擷取該載入線。
在一些實施例中,如圖23中所展示,記憶體控制器2306可包括形成兩個獨立位址之兩個輸入。但若應同時存取多於兩個位址,且此等位址在單一記憶體區塊中(例如,位址僅在記憶體區塊2308(a)中),則記憶體控制器2306或組態管理器2304可能會引發例外狀況。替代地,當兩個位址僅可經由單一線來存取時,組態管理器2304可傳回無效資料信號。在其他實施例中,該單元可延遲處理程序執行,直至有可能擷取所有需要的資料。此可降低總體效能。然而,編譯器可能夠找到將防止延遲之組態及資料置放。
在一些實施例中,編譯器可產生用於處理裝置2300之組態或指令集,該組態或指令集可組態組態管理器2304及記憶體控制器2306以及加速器2302以處置需要自單一記憶體區塊存取多個位址但該記憶體區塊具有一個埠的情形。舉例而言,編譯器可將資料重新配置在記憶體區塊2308中,使得處理單元可存取記憶體區塊2308中之多個線。
此外,記憶體控制器2306亦可在同一時間同時對多於一個輸入進行工作。舉例而言,記憶體控制器2306可允許經由一個埠存取記憶體區塊2308中之一者及在於另一輸入端中接收對不同記憶體區塊之請求時供應資料。因此,此操作可導致以例示性2D卷積為任務之加速器2216自相關記憶體區塊之專用通信線接收資料。
另外或替代地,記憶體控制器2306或邏輯區塊可保持針對每個記憶體區塊2308之刷新計數器且處置所有線之刷新。具有此計數器允許記憶體控制器2306插入裝置之停滯存取時間之間的刷新循環中。
此外,記憶體控制器2306可能可組態以執行管線式記憶體存取,以接收位址且開放記憶體區塊中之線,之後供應資料。該管線式記憶體存取可在不中斷或不延遲時脈循環之情況下將資料提供至處理單元。舉例而言,雖然記憶體控制器2306或邏輯區塊中之一者在圖23中利用右方線存取資料,但記憶體控制器或邏輯區塊可正在左方線中傳輸資料。將關於圖26更詳細地解釋此等方法。
回應於所需資料,處理裝置2300可使用多工器及/或其他開關裝置來選擇服務哪些裝置以執行給定任務。舉例而言,組態管理器2304可組態多工器,使得至少兩個資料線到達MAC單元2302。以此方式,需要來自多個位址之資料的任務(諸如,2D卷積)可較快地執行,此係因為在卷積期間需要乘法之向量或字可在單一時脈中同時到達處理單元。此資料傳送方法可允許諸如加速器2216之處理單元快速地輸出結果。
在一些實施例中,組態管理器2304可能可組態以基於任務之優先權執行處理程序。舉例而言,組態管理器2304可經組態以使運行中處理程序無任何中斷地完成。在彼狀況下,組態管理器2304可將任務之指令或組態提供至加速器2216,使該等加速器不間斷地運行,且僅在任務完成時切換多工器。然而,在其他實施例中,組態管理器2304可在其接收到優先任務(諸如,來自外部介面之請求)時中斷任務且重新組態資料路由。然而,在記憶體區塊2308足夠之情況下,記憶體控制器2306可能可組態以利用專用線將資料投送至處理單元或向處理單元授權存取,該等專用線在任務完成之前不必改變。此外,在一些實施例中,所有裝置可藉由匯流 排連接至組態管理器2304之實體,且裝置可管理裝置本身與匯流排之間的存取(例如,使用與多工器相同之邏輯)。因此,記憶體控制器2306可直接連接至數個記憶體執行個體或記憶體區塊。
替代地,記憶體控制器2306可直接連接至記憶體子執行個體。在一些實施例中,每一記憶體執行個體或區塊可由子執行個體建置(例如,DRAM可由配置於多個子區塊中的具有獨立資料線之墊建置)。另外,執行個體可包括DRAM墊、DRAM、組、快閃記憶體墊或SRAM墊或任何其他類型的記憶體中之至少一者。接著,記憶體控制器2306可包括專用線以直接定址子執行個體,以將管線式記憶體存取期間在潛時減至最少。
在一些實施例中,記憶體控制器2306亦可保持特定記憶體執行個體所需之邏輯(諸如,列\行解碼器、刷新邏輯等),且記憶體區塊2308可處置其自身的邏輯。因此,記憶體區塊2308可獲得位址且產生用於傳回\寫入資料之命令。
圖24描繪符合所揭示實施例之例示性記憶體組態圖。在一些實施例中,產生用於處理裝置2200之程式碼或組態的編譯器可執行用以藉由將資料預先配置在每一區塊中來組態自記憶體區塊2202及2204之載入的方法。舉例而言,編譯器可預先配置資料,使得任務所需之每一字與一記憶體執行個體或記憶體區塊之一線相關。但對於需要比處理裝置2200中可用之記憶體區塊多的記憶體區塊之任務,編譯器可實施使資料適配每一記憶體區塊之多於一個記憶體位置的方法。編譯器亦可依序儲存資料且評估每一記憶體區塊之潛時以避免線錯漏潛時。在一些實施例中,主機可為處理單元之部分,諸如組態管理器2212,但在其他實施例中,編譯器主機可經由外部介面連接至處理裝置2200。在此等實施例中,主機可運行編譯功能,諸如針對編譯器所描述之編譯功能。
在一些實施例中,組態管理器2212可為CPU或微控制器(uC)。在此等實施例中,組態管理器2212可能必須存取記憶體以取得置放於記憶體中之命令或指令。特定編譯器可產生程式碼且以一方式將該程式碼置放於記憶體中,該方式允許在同一記憶體線中及跨越數個記憶體組儲存連續命令,以允許亦對所取得命令進行管線式記憶體存取。在此等實施例中,組態管理器2212及記憶體控制器2210可能夠藉由促進管線式記憶體存取來避免線性執行中之列潛時。
程式之線性執行之先前狀況描述供編譯器辨識及置放指令以允許管線式記憶體執行之方法。然而,其他軟體結構可能更複雜且將需要編譯器辨識其他軟體結構且相應地採取動作。舉例而言,在任務需要迴圈及分支之狀況下,編譯器可將所有迴圈程式碼置放於單一線內,使得單一線可在不具有線開放潛時之情況下進行迴圈。接著,記憶體控制器2210可能不需要在執行期間改變線。
在一些實施例中,組態管理器2212可包括內部快取記憶體或小記憶體。內部快取記憶體可儲存由組態管理器2212執行以處置分支及迴圈的命令。舉例而言,內部快取記憶體中之命令可包括用以組態用於存取記憶體區塊之加速器的指令。
圖25為說明符合所揭示實施例之可能記憶體組態處理程序2500的例示性流程圖。在便於描述記憶體組態處理程序2500之情況下,可參考圖22中所描繪及上文所描述的元件之識別符。在一些實施例中,處理程序2500可由編譯器執行,該編譯器將指令提供至經由外部介面連接之主機。在其他實施例中,處理程序2500可由處理裝置2200之組件(諸如,組態管理器2212)執行。
一般而言,處理程序2500可包括:判定執行任務同時所需 的字之數目;判定可同時自複數個記憶體組中之每一者存取的字之數目;及當同時所需的字之數目大於可同時存取的字之數目時,在多個記憶體組之間劃分同時所需的該數目個字。此外,劃分同時所需的該數目個字可包括執行字之循環組織及依序地每個記憶體組指派一個字。
更具體而言,處理程序2500可以步驟2502開始,在該步驟中,編譯器可接收任務規格。該規格包括所需演算及/或優先權等級。
在步驟2504中,編譯器可識別可執行任務之一加速器或加速器群組。替代地,編譯器可產生指令,因此處理單元(諸如,組態管理器2212)可識別加速器以執行該任務。舉例而言,使用所需演算組態管理器2212可識別加速器2216之群組中的可處理該任務之加速器。
在步驟2506中,編譯器可判定為了執行該任務需要同時存取的字之數目。舉例而言,兩個向量之乘法需要存取至少兩個向量,且編譯器因此可判定必須同時存取向量字以執行運算。
在步驟2508中,編譯器可判定執行該任務必需的循環之數目。舉例而言,若該任務需要對四個附帶產生結果之卷積運算,則編譯器可判定至少4個循環將為執行該任務所必需的。
在步驟2510中,編譯器可將需要同時存取之字置放於不同記憶體組中。以彼方式,記憶體控制器2210可經組態以開放至不同記憶體執行個體之線且在一時脈循環內存取所需記憶體區塊,而不需要任何快取資料。
在步驟2512中,編譯器將依序存取的字置放於相同記憶體組中。舉例而言,在需要操作之四個循環的狀況下,編譯器可產生指令以在依序循環中將所需字寫入單一記憶體區塊中,以避免在執行期間在不同記憶體區塊之間改變線。
在步驟2514中,編譯器產生用於程式化諸如組態管理器2212之處理單元的指令。該等指令可指定操作開關裝置(諸如,多工器)或組態資料匯流排之條件。藉由此等指令,組態管理器2212可根據任務組態記憶體控制器2210以使用專用通信線將資料自記憶體區塊投送至處理單元或授權對該等記憶體區塊之存取。
圖26為說明符合所揭示實施例之記憶體讀取處理程序2600的例示性流程圖。在便於描述記憶體讀取處理程序2600之情況下,可參考圖22中所描繪及上文所描述的元件之識別符。在一些實施例中,如下文所描述,處理程序2600可由記憶體控制器2210實施。然而,在其他實施例中,處理程序2600可由處理裝置2200中之其他元件(諸如,組態管理器2212)實施。
在步驟2602中,記憶體控制器2210、組態管理器2212或其他處理單元可接收投送來自記憶體組之資料或授權對記憶體組之存取的指示。請求可指定位址及記憶體區塊。
在一些實施例中,該請求可經由在線2218中指定讀取命令及在線2220中指定位址的資料匯流排接收。在其他實施例中,該請求可經由連接至記憶體控制器2210之解多工器接收。
在步驟2604中,組態管理器2212、主機或其他處理單元可查詢內部暫存器。該內部暫存器可包括關於至記憶體組之開放線、開放位址、開放記憶體區塊及/或即將進行的任務的資訊。基於內部暫存器中之資訊,可判定是否存在至記憶體組之開放線及/或記憶體區塊是否在步驟2602中接收到請求。替代地或另外,記憶體控制器2210可直接查詢該內部暫存器。
若該內部暫存器指示記憶體組未載入開放線中(步驟 2606:否),則處理程序2600可繼續至步驟2616,且可將線載入至與所接收位址相關聯之記憶體組。此外,記憶體控制器2210或諸如組態管理器2212之處理單元可在步驟2616中將延遲發信至請求來自記憶體位址之資訊的元件。舉例而言,若加速器2216正請求位於已被佔用之記憶體區塊的記憶體資訊,則在步驟2618中,記憶體控制器2210可將延遲信號發送至加速器。在步驟2620中,組態管理器2212或記憶體控制器2210可更新內部暫存器以指示已開放至新記憶體組或新記憶體區塊之線。
若該內部暫存器指示記憶體組載入開放線中(步驟2606:是),則處理程序2600可繼續至步驟2608。在步驟2608中,可判定載入有記憶體組之線是否正用於不同位址。若該線正用於不同位址(步驟2608:是),則此將指示單一區塊中存在兩個執行個體,且因此,不能同時存取該兩個執行個體。因此,可在步驟2616中將錯誤或免除信號發送至請求來自記憶體位址之資訊的元件。但若該線並未正用於不同位址(步驟2608:否),則可開放針對該位址之線並自目標記憶體組擷取資料,且繼續至步驟2614以將資料傳輸至請求來自記憶體位址之資訊的元件。
利用處理程序2600,處理裝置2200能夠建立處理單元與含有執行任務所需之資訊的記憶體區塊或記憶體執行個體之間的直接連接。資料之此組織將使得能夠自不同記憶體執行個體中之經組織向量讀取資訊,以及允許在裝置請求複數個此等位址時同時自不同記憶體區塊擷取資訊。
圖27為說明符合所揭示實施例之執行處理程序2700的例示性流程圖。在便於描述執行處理程序2700之情況下,可參考圖22中所描繪及上文所描述的元件之識別符。
在步驟2702中,編譯器或諸如組態管理器2212之區域單元 可接收需要執行之任務的指示。該任務可包括單一運算(例如,乘法)或更複雜運算(例如,矩陣之間的卷積)。該任務亦可指示所需演算。
在步驟2704中,編譯器或組態管理器2212可判定執行該任務同時所需的字之數目。舉例而言,組態編譯器可判定同時需要兩個字來執行向量之間的乘法。在另一實施例(2D卷積任務)中,組態管理器2212可判定矩陣之間的卷積需要「n」乘「m」個字,其中「n」及「m」為矩陣維度。此外,在步驟2704中,組態管理器2212亦可判定執行該任務必需的循環之數目。
在步驟2706中,取決於步驟2704中之判定,編譯器可將需要同時存取之字寫入安置於基板上之複數個記憶體組中。舉例而言,當可自複數個記憶體組中之一者同時存取的字之數目的數目小於同時所需的字之數目時,編譯器可將資料組織在多個記憶體組中以促進在一時脈內存取不同所需字。此外,當組態管理器2212或編譯器判定執行任務必需的循環之數目時,編譯器可在依序循環中將所需的字寫入複數個記憶體組中之單一記憶體組中,以防止記憶體組之間的線之切換。
在步驟2708中,記憶體控制器2210可經組態以使用第一記憶體線自複數個記憶體組或區塊中之第一記憶體組讀取至少一個第一字或授權對該至少一個第一字的存取。
在步驟2170中,處理單元(例如,加速器2216中之一者)可使用至少一個第一字來處理任務。
在步驟2712中,記憶體控制器2210可經組態以開放第二記憶體組中之第二記憶體線。舉例而言,基於任務且使用管線式記憶體存取方法,記憶體控制器2210可經組態以開放在步驟2706中寫入有任務所需之資訊的第二記憶體區塊中之第二記憶體線。在一些實施例中,該第二記 憶體線可在步驟2170中之任務將要完成時開放。舉例而言,若一任務需要100個時脈,則該第二記憶體線可在第90個時脈中開放。
在一些實施例中,步驟2708至2712可在一個線存取循環內執行。
在步驟2714中,記憶體控制器2210可經組態以授權使用在步驟2710中開放之第二記憶體線存取來自第二記憶體組之至少一個第二字的資料。
在步驟2176中,處理單元(例如,加速器2216中之一者)可使用至少第二字來處理任務。
在步驟2718中,記憶體控制器2210可經組態以開放第一記憶體組中之第二記憶體線。舉例而言,基於任務且使用管線式記憶體存取方法,記憶體控制器2210可經組態以開放至第一記憶體區塊之第二記憶體線。在一些實施例中,至第一區塊之第二記憶體線可在步驟2176中之任務將要完成時開放。
在一些實施例中,步驟2714至2718可在一個線存取循環內執行。
在步驟2720中,記憶體控制器2210可使用第一記憶組中之第二記憶體線或第三記憶組中之第一線及在不同記憶體組中繼續而自複數個記憶體組或區塊中之第一記憶體組讀取至少一個第三字或授權對該至少一個第三字的存取。
諸如動態隨機存取記憶體(DRAM)晶片之一些記憶體晶片使用刷新以避免所儲存資料(例如,使用電容)由於晶片之電容器或其他電組件中之電壓衰減而失去。舉例而言,在DRAM中,必須時常刷新每一胞元(基於特定處理程序及設計)以恢復電容器中之電荷,使得資料不會 丟失或損壞。隨著DRAM晶片之記憶體容量增加,刷新記憶體所需之時間量變得顯著。在正刷新記憶體之某一線的時間段期間,不能存取含有正刷新之該線的組。此可導致效能降低。另外,與刷新處理程序相關聯之功率亦可為顯著的。先前已努力嘗試縮減執行刷新之速率以縮減與刷新記憶體相關聯之不利影響,但大部分此等努力集中於DRAM之實體層。
刷新類似於讀取及寫回記憶體之一列。使用此原理且集中於存取記憶體之圖案,本發明之實施例包括軟體及硬體技術以及對記憶體晶片之修改,以使用較少功率用於刷新且縮減刷新記憶體期間之時間量。舉例而言,作為概述,一些實施例可使用硬體及/或軟體以追蹤線存取時序且在刷新循環內跳過最近存取列(例如,基於時序臨限值)。在另一實施例中,一些實施例可依賴於由記憶體晶片之刷新控制器執行的軟體來指派讀取及寫入,使得對記憶體之存取為非隨機的。因此,軟體可更精確地控制刷新以避免浪費刷新循環及/或線。此等技術可單獨使用或與編碼用於刷新控制器之命令及用於處理器之機器碼的編譯器組合使用,使得對記憶體之存取同樣為非隨機的。使用下文詳細描述之此等技術及組態之任何組合,所揭示實施例可藉由縮減刷新記憶體單元期間之時間量來降低記憶體刷新功率要求及/或提高系統效能。
圖28描繪符合本發明之具有刷新控制器2803的實施例記憶體晶片2800。舉例而言,記憶體晶片2800可包括基板上之複數個記憶體組(例如,記憶體組2801a及其類似者)。在圖28之實施例中,基板包括四個記憶體組,其各具有四個線。一線可指記憶體晶片2800之一或多個記憶體組或記憶體晶片2800內之記憶體胞元之任何其他集合(諸如,記憶體組之一部分或沿著記憶體組之一整列或記憶體組之群組)內的字線。
在其他實施例中,基板可包括任何數目個記憶體組,且每一 記憶體組可包括任何數目個線。一些記憶體組可包括相同數目個線(如圖28中所展示),而其他記憶體組可包括不同數目個線。如圖28中進一步描繪,記憶體晶片2800可包括控制器2805,該控制器用以接收至記憶體晶片2800之輸入且自記憶體晶片2800傳輸輸出(例如,如上文在「碼之劃分」中所描述)。
在一些實施例中,複數個記憶體組可包含動態隨機存取記憶體(DRAM)。然而,複數個記憶體組可包含儲存需要週期性刷新之資料的任何揮發性記憶體。
如下文將更詳細地論述,本發明所揭示之實施例可使用計數器或電阻器-電容器電路以對刷新循環進行計時。舉例而言,計數器或計時器可用以對自最後完整刷新循環之時間進行計數,且接著當計數器達到其目標值時,可使用另一計數器對所有列進行反覆。本發明之實施例可另外追蹤對記憶體晶片2800之區段的存取且縮減所需的刷新功率。舉例而言,儘管未在圖28中描繪,但記憶體晶片2800可進一步包括資料儲存器,該資料儲存器經組態以儲存指示複數個記憶體組之一或多個區段之存取操作的存取資訊。舉例而言,該一或多個區段可包含記憶體晶片2800內之記憶體胞元的線、行或任何其他分組之任何部分。在一個特定實施例中,該一或多個區段可包括複數個記憶體組內之至少一列記憶體結構。刷新控制器2803可經組態以至少部分地基於所儲存的存取資訊而執行該一或多個區段之刷新操作。
舉例而言,該資料儲存器可包含與記憶體晶片2800之區段(例如,記憶體晶片2800內之記憶體胞元的線、行或任何其他分組)相關聯的一或多個暫存器、靜態隨機存取記憶體(SRAM)胞元,或其類似者。另外,該資料儲存器可經組態以儲存指示相關聯之區段是否在一或多個先 前循環中經存取的位元。「位元」可包含儲存至少一個位元之任何資料結構,諸如暫存器、SRAM胞元、非揮發性記憶體或其類似者。此外,位元可藉由將資料結構之對應開關(或開關元件,諸如電晶體)設定為接通(其可等效於「1」或「真」)來設定。另外或替代地,位元可藉由修改資料結構內之任何其他性質(諸如,對快閃記憶體之浮動閘充電,修改SRAM中之一或多個正反器的狀態或其類似者)以便將「1」寫入至該資料結構(或指示位元之設定的任何其他值)來設定。若一位元被判定為作為記憶體控制器之刷新操作的部分而經設定,則刷新控制器2803可跳過相關聯區段之刷新循環且清空與彼部分相關聯之暫存器。
在另一實施例中,資料儲存器可包含與記憶體晶片2800之區段(例如,記憶體晶片2800內之記憶體胞元的線、行或任何其他分組)相關聯的一或多個非揮發性記憶體(例如,快閃記憶體或其類似者)。非揮發性記憶體可經組態以儲存指示相關聯之區段是否在一或多個先前循環中經存取的位元。
一些實施例可另外或替代地在每一列或列群組(或記憶體晶片2800之其他區段)上添加時戳暫存器,該時戳暫存器保存當前刷新循環內線被存取的最後時刻。此意謂在每一列存取之情況下,刷新控制器可更新列時戳暫存器。因此,當下一次刷新發生時(例如,在刷新循環結束時),刷新控制器可比較所儲存時戳,且若相關聯區段先前在某一時間段內(例如,在如應用於所儲存時戳之某一臨限值內)經存取,則刷新控制器可跳至下一區段。此避免系統在最近已存取之區段上消耗刷新功率。此外,刷新控制器可繼續追蹤存取以確保在下一循環存取或刷新每一區段。
因此,在又一實施例中,資料儲存器可包含與記憶體晶片2800之區段(例如,記憶體晶片2800內之記憶體胞元的線、行或任何其他 分組)相關聯之一或多個暫存器或非揮發性記憶體。該等暫存器或非揮發性記憶體可經組態以儲存指示相關聯區段之最近存取的時戳或其他資訊,而非使用位元來指示是否已存取相關聯區段。在此實施例中,刷新控制器2803可基於儲存於相關聯暫存器或記憶體中之時戳與當前時間(例如,來自計時器,如下文在圖29A及圖29B中所解釋)之間的時間量是否超過預定臨限值(例如,8ms、16ms、32ms、64ms或其類似者)來判定是否刷新或存取相關聯區段。
因此,預定臨限值可包含確保相關聯區段在每個刷新循環內被刷新(若並非存取)至少一次之刷新循環的時間量。替代地,預定臨限值可包含短於刷新循環所需之時間量的時間量(例如,以確保任何所需刷新或存取信號可在刷新循環完成之前到達相關聯區段)。舉例而言,預定時間可包含用於具有8ms刷新時段之記憶體晶片的7ms,使得若區段在7ms內尚未被存取,則刷新控制器將發送在8ms刷新時段結束時到達該區段之刷新或存取信號。在一些實施例中,預定臨限值可取決於相關聯區段之大小。舉例而言,對於記憶體晶片2800之較小區段,預定臨限值可較小。
儘管上文關於記憶體晶片進行描述,但本發明之刷新控制器亦可用於分散式處理器架構中,如在上文及貫穿本發明之章節中描述的彼等架構。此類架構之一個實施例描繪於圖7A中。在此等實施例中,與記憶體晶片2800相同之基板可包括安置於其上之複數個處理群組,例如,如圖7A中所描繪。如上文關於圖3A所解釋,「處理群組」可指基板上之兩個或多於兩個處理器子單元及其對應記憶體組。該群組可表示用於編譯程式碼以供在記憶體晶片2800上執行之目的之基板上的空間分佈及/或邏輯分組。因此,該基板可包括記憶體陣列,該記憶體陣列包括複數個組,諸如圖28中所展示之組2801a及其他組。此外,該基板可包括處理陣列,該處 理陣列可包括複數個處理器子單元(諸如,圖7A中所展示之子單元730a、730b、730c、730d、730e、730f、730g及730h)。
如上文關於圖7A進一步所解釋,每一處理群組可包括一處理器子單元及專用於該處理器子單元之一或多個對應記憶體組。此外,為了允許每一處理器子單元與其對應的專用記憶體組通信,該基板可包括將處理器子單元中之一者連接至其對應的專用記憶體組之第一複數個匯流排。
在此等實施例中,如圖7A中所展示,該基板可包括用以將每一處理器子單元連接至至少一個其他處理器子單元(例如,同一列中之鄰近子單元、同一行中之鄰近處理器子單元,或基板上之任何其他處理器子單元)的第二複數個匯流排。第一複數個匯流排及/或第二複數個匯流排可能不含時序硬體邏輯組件,使得在處理器子單元之間及跨越該等複數個匯流排中之對應者的資料傳送不受時序硬體邏輯組件控制,如上文在「使用軟體之同步」章節中所解釋。
在與記憶體晶片2800相同之基板可包括安置於其上之複數個處理群組(例如,如圖7A中所描繪)的實施例中,處理器子單元可進一步包括位址產生器(例如,如圖4中所描繪之位址產生器450)。此外,每一處理群組可包括一處理器子單元及專用於該處理器子單元之一或多個對應記憶體組。因此,該等位址產生器中之每一者可與該等複數個記憶體組中之一對應的專用記憶體組相關聯。此外,該基板可包括複數個匯流排,每一匯流排將該等複數個位址產生器中之一者連接至其對應的專用記憶體組。
圖29A描繪符合本發明之實施例刷新控制器2900。刷新控制器2900可併入本發明之記憶體晶片(諸如,圖28之記憶體晶片2800) 中。如圖29A中所描繪,刷新控制器2900可包括計時器2901,該計時器可包含用於刷新控制器2900之晶載振盪器或任何其他時序電路。在圖29A中所描繪之組態中,計時器2901可週期性地(例如,每8ms、16ms、32ms、64ms或其類似時間)觸發刷新循環。刷新循環可使用列計數器2903以循環通過對應記憶體晶片之所有列,且使用加法器2901結合有效位元2905來針對每一列產生一刷新信號。如圖29A中所展示,位元2905可固定為1(「真」)以確保每一列在一循環期間刷新。
在本發明之實施例中,刷新控制器2900可包括資料儲存器。如上文所描述,該資料儲存器可包含與記憶體晶片2800之區段(例如,記憶體晶片2800內之記憶體胞元的線、行或任何其他分組)相關聯的一或多個暫存器或非揮發性記憶體。該等暫存器或非揮發性記憶體可經組態以儲存指示相關聯區段之最近存取的時戳或其他資訊。
刷新控制器2900可使用所儲存的資訊來跳過記憶體晶片2900之區段的刷新。舉例而言,若該資訊指示一區段在一或多個先前刷新循環期間已刷新,則刷新控制器2900可在當前刷新循環中跳過該區段。在另一實施例中,若針對一區段所儲存之時戳與當前時間之間的差低於臨限值,則刷新控制器2900可在當前刷新循環中跳過該區段。刷新控制器2900可進一步經由多個刷新循環繼續追蹤記憶體晶片2800之區段的存取及刷新。舉例而言,刷新控制器2900可使用計時器2901更新所儲存時戳。在此等實施例中,刷新控制器2900可經組態以在臨限時間間隔之後,使用計時器之輸出來清除儲存於資料儲存器中之存取資訊。舉例而言,在資料儲存器儲存相關聯區段之最近存取或刷新之時戳的實施例中,每當將存取命令或刷新信號發送至該區段時,刷新控制器2900便可將新時戳儲存於資料儲存器中。若資料儲存器儲存位元而非時戳,則計時器2901可經組態以清 除經設定持續長於臨限時間段之位元。舉例而言,在資料儲存器儲存指示相關聯區段在一或多個先前循環中經存取之實施例中,每當計時器2901觸發新的刷新循環,刷新控制器2900便可清除資料儲存器中之位元(例如,將其設定為0),該新的刷新循環係在設定相關聯位元(例如,設定為1)後經過臨界數目個循環(例如,一個、兩個或其類似者)的循環。
刷新控制器2900可協同記憶體晶片2800之其他硬體追蹤記憶體晶片2800之區段的存取。舉例而言,記憶體晶片使用感測放大器以執行讀取操作(例如,如上文在圖9及圖10中所展示)。該等感測放大器可包含複數個電晶體,該等複數個電晶體經組態以感測來自將資料儲存於一或多個記憶體胞元中之記憶體晶片2800之區段的低功率信號,且將小的電壓擺動放大至較高電壓位準,使得資料可由諸如如上文所解釋之外部CPU或GPU或整合式處理器子單元的邏輯解譯。儘管在圖29A中未描繪,但刷新控制器2900可進一步與感測放大器通信,該感測放大器經組態以存取一或多個區段且改變至少一個位元暫存器之狀態。舉例而言,當感測放大器存取一或多個區段時,其可設定與該等區段相關聯之位元(例如,設定為1),該等位元指示相關聯區段在前一循環中經存取。在資料儲存器儲存相關聯區段之最近存取或刷新之時戳的實施例中,當感測放大器存取一或多個區段時,其可觸發將來自計時器2901之時戳寫入至暫存器、記憶體或包含資料儲存器之其他元件。
在上文所描述之實施例中之任一者中,刷新控制器2900可與用於複數個記憶體組之記憶體控制器整合。舉例而言,類似於圖3A中所描繪之實施例,刷新控制器2900可併入至與記憶體晶片2800之記憶體組或其他區段相關聯的邏輯及控制子單元中。
圖29B描繪符合本發明之另一實施例刷新控制器2900'。刷 新控制器2900'可併入本發明之記憶體晶片(諸如,圖28之記憶體晶片2800)中。類似於刷新控制器2900,刷新控制器2900'包括計時器2901、列計數器2903、有效位元2905及加法器2907。另外,刷新控制器2900'可包括資料儲存器2909。如圖29B中所展示,資料儲存器2909可包含與記憶體晶片2800之區段(例如,記憶體晶片2800內之記憶體胞元的線、行或任何其他分組)相關聯之一或多個暫存器或非揮發性記憶體,且資料儲存器內之狀態可經組態以回應於一或多個區段經存取而改變(例如,藉由感測放大器及/或刷新控制器2900'之其他元件,如上文所描述)。因此,刷新控制器2900'可經組態以基於資料儲存器內之狀態跳過一或多個區段之刷新。舉例而言,若與區段相關聯之狀態經啟動(例如,藉由接通、使性質變更以便儲存「1」或其類似者而設定為1),則刷新控制器2900'可跳過相關聯區段之刷新循環且清除與彼部分相關聯之狀態。該狀態可至少藉由一位元暫存器或經組態以儲存至少一個資料位元之任何其他記憶體結構來儲存。
為了確保記憶體晶片之區段在每一刷新循環期間經刷新或存取,刷新控制器2900'可重設或以其他方式清除狀態以便在下一刷新循環期間觸發刷新信號。在一些實施例中,在一區段被跳過之後,刷新控制器2900'可清除相關聯狀態,以便確保在下一刷新循環刷新該區段。在其他實施例中,刷新控制器2900'可經組態以在臨限時間間隔之後重設資料儲存器內之狀態。舉例而言,每當自相關聯狀態經設定(例如,藉由接通、使性質變更以便儲存「1」或其類似者而設定為1)起,計時器2901超過臨限時間,刷新控制器2900'便可清除資料儲存器中之狀態(例如,將其設定為0)。在一些實施例中,刷新控制器2900'可使用臨界數目個刷新循環(例如,一個、兩個或其類似者)或使用臨界數目個時脈循環(例如,兩個、四個或其類似者)而非臨限時間。
在其他實施例中,該狀態可包含相關聯區段之最近刷新或存取的時戳,使得若該時戳與當前時間(例如,來自圖29A及圖29B之計時器2901)之間的時間量超過預定臨限值(例如,8ms、16ms、32ms、64ms或其類似時間),則刷新控制器2900'可將存取命令或刷新信號發送至相關聯區段且更新與彼部分相關聯之時戳(例如,使用計時器2901)。另外或替代地,若刷新時間指示符指示最後刷新時間在預定時間臨限值內,則刷新控制器2900'可經組態以跳過相對於複數個記憶體組之一或多個區段的刷新操作。在此等實施例中,在跳過相對於一或多個區段之刷新操作之後,刷新控制器2900'可經組態以更改與一或多個區段相關聯之所儲存的刷新時間指示符,使得在下一操作循環期間,將刷新該一或多個區段。舉例而言,如上文所描述,刷新控制器2900'可使用計時器2901來更新所儲存的刷新時間指示符。
因此,資料儲存器可包括經組態以儲存刷新時間指示符之時戳暫存器,該刷新時間指示符指示最後刷新複數個記憶體組之一或多個區段的時間。此外,刷新控制器2900'可在臨限時間間隔之後,使用計時器之輸出來清除儲存於資料儲存器中之存取資訊。
在上文所描述之實施例中之任一者中,對一或多個區段之存取可包括與一或多個區段相關聯之寫入操作。另外或替代地,對一或多個區段之存取可包括與一或多個區段相關聯之讀取操作。
此外,如圖29B中所描繪,刷新控制器2900'可包含經組態以至少部分地基於資料儲存器內之狀態而輔助更新資料儲存器2909的列計數器2903及加法器2907。資料儲存器2909可包含與複數個記憶體組相關聯之位元表。舉例而言,該位元表可包含經組態以保存用於相關聯區段之位元的開關(或開關元件,諸如電晶體)或暫存器(例如,SRAM或其類 似者)的陣列。另外或替代地,資料儲存器2909可儲存與複數個記憶體組相關聯之時戳。
此外,刷新控制器2900'可包括刷新閘2911,該刷新閘經組態以基於儲存於位元表中之對應值而控制是否進行對一或多個區段的刷新。舉例而言,刷新閘2911可包含邏輯閘(諸如,「及(and)閘」,該邏輯閘在資料儲存器2909之對應狀態指示相關聯區段在一或多個先前時脈循環期間經刷新或存取之情況下使來自列計數器2903之刷新信號無效。在其他實施例中,刷新閘2911可包含微處理器或其他電路,該微處理器或其他電路經組態以在來自資料儲存器2909之對應時戳指示相關聯區段在預定臨限時間值內經刷新或存取之情況下使來自列計數器2903之刷新信號無效。
圖30為用於記憶體晶片(例如,圖28之記憶體晶片2800)中之部分刷新的處理程序3000之實施例流程圖,處理程序3000可由符合本發明之刷新控制器執行,諸如圖29A之刷新控制器2900或圖29B之刷新控制器2900'。
在步驟3010處,刷新控制器可存取指示複數個記憶體組之一或多個區段之存取操作的資訊。舉例而言,如上文關於圖29A及圖29B所解釋,刷新控制器可包括資料儲存器,該資料儲存器與記憶體晶片2800之區段(例如,記憶體晶片2800內之記憶體胞元的線、行或任何其他分組)相關聯且經組態以儲存指示相關聯區段之最近存取的時戳或其他資訊。
在步驟3020處,刷新控制器可至少部分地基於所存取資訊而產生刷新及/或存取命令。舉例而言,如上文關於圖29A及圖29B所解釋,若所存取資訊指示最後刷新或存取時間在預定時間臨限值內及/或若所存取資訊指示最後刷新或存取發生在一或多個先前時脈循環期間,則刷新控制器可跳過相對於複數個記憶體組之一或多個區段的刷新操作。另外或替代 地,刷新控制器可基於所存取資訊是否指示最後刷新或存取時間超過預定臨限值及/或所存取資訊是否指示最後刷新或存取並未在一或多個先前時脈循環期間發生而產生刷新或存取相關聯區段之意見。
在步驟3030處,刷新控制器可更改與一或多個區段相關聯之所儲存的刷新時間指示符,使得在下一操作循環期間,將刷新該一或多個區段。舉例而言,在跳過相對於一或多個區段之刷新操作之後,刷新控制器可更改指示該一或多個區段之存取操作的資訊,使得在下一時脈循環期間,將刷新該一或多個區段。因此,在跳過刷新循環之後,刷新控制器可清除區段之狀態(例如,設定為0)。另外或替代地,刷新控制器可設定在當前循環期間刷新及/或存取之區段的狀態(例如,設定為1)。在指示一或多個區段之存取操作之資訊包括時戳的實施例中,刷新控制器可更新與在當前循環期間刷新及/或存取之區段相關聯的任何所儲存的時戳。
方法3000可進一步包括額外步驟。舉例而言,除步驟3030以外或作為該步驟之替代,感測放大器可存取一或多個區段且可改變與該一或多個區段相關聯之資訊。另外或替代地,感測放大器可在存取已發生時向刷新控制器發信,使得刷新控制器可更新與一或多個區段相關聯之資訊。如上文所解釋,感測放大器可包含複數個電晶體,該等複數個電晶體經組態以感測來自將資料儲存於一或多個記憶體胞元中之記憶體晶片之區段的低功率信號,且將小的電壓擺動放大至較高電壓位準,使得資料可由諸如如上文所解釋之外部CPU或GPU或整合式處理器子單元的邏輯解譯。在此實施例中,每當感測放大器存取一或多個區段時,其可設定(例如,設定為1)與區段相關聯之位元,該等位元指示相關聯區段在前一循環中經存取。在指示一或多個區段之存取操作之資訊包括時戳的實施例中,每當感測放大器存取一或多個區段時,其便可觸發將來自刷新控制器之計 時器之時戳寫入至資料儲存器以更新與該等區段相關聯之任何所儲存的時戳。
圖31為用於判定記憶體晶片(例如,圖28之記憶體晶片2800)之刷新的處理程序3100之一實施例流程圖。處理程序3100可實施於符合本發明之編譯器內。如上文所解釋,「編譯器」係指將較高階語言(例如,程序性語言,諸如C、FORTRAN、BASIC或其類似者;物件導向式語言,諸如Java、C++、Pascal、Python或其類似者;等等)轉換成較低階語言(例如,組合程式碼、目標程式碼、機器碼或其類似者)的任何電腦程式。編譯器可允許人類以人類可讀語言來程式設計一系列指令,接著將該人類可讀語言轉換成機器可執行語言。編譯器可包含由一或多個處理器執行之軟體指令。
在步驟3110處,一或多個處理器可接收較高階電腦程式碼。舉例而言,該較高階電腦程式碼可編碼於記憶體(例如,諸如硬碟機或其類似者之非揮發性記憶體、諸如DRAM之揮發性記憶體,或其類似者)上之一或多個檔案中或經由網路(例如,網際網路或其類似者)接收。另外或替代地,可自使用者接收該較高階電腦程式碼(例如,使用諸如鍵盤之輸入裝置)。
在步驟3120處,一或多個處理器可識別待由較高階電腦程式碼存取之在與記憶體晶片相關聯之複數個記憶體組上分佈的複數個記憶體區段。舉例而言,一或多個處理器可存取定義記憶體晶片之複數個記憶體組及一對應結構的資料結構。一或多個處理器可自記憶體(例如,諸如硬碟機或其類似者之非揮發性記憶體、諸如DRAM之揮發性記憶體,或其類似者)存取資料結構,或經由網路(例如,網際網路或其類似者)接收資料結構。在此等實施例中,資料結構包括於可由編譯器存取之一或多個 庫中,以准許編譯器產生用於待存取之特定記憶體晶片的指令。
在步驟3130處,一個或處理器可評估較高階電腦程式碼以識別在複數個記憶體存取循環內出現的複數個記憶體讀取命令。舉例而言,一或多個處理器可識別需要自記憶體讀取之一或多個讀取命令及/或寫入至記憶體之一或多個寫入命令的較高階電腦程式碼內之每一操作。此等指令可包含變數初始化、變數重新指派、對變數進行邏輯運算、輸入輸出操作或其類似者。
在步驟3140處,一或多個處理器可致使與複數個記憶體存取命令相關聯之資料跨越複數個記憶體區段中之每一者的分佈,使得在複數個記憶體存取循環中之每一者期間存取複數個記憶體區段中之每一者。舉例而言,一或多個處理器可自定義記憶體晶片之結構的資料結構識別記憶體區段,且接著將來自較高階程式碼之變數指派給記憶體區段中之各者,使得在每一刷新循環(其可包含特定數目個時脈循環)期間存取(例如,經由寫入或讀取)每一記憶體區段至少一次。在此實施例中,一或多個處理器可存取指示較高階程式碼之每一線需要多少個時脈循環的資訊,以便指派來自較高階程式碼之線的變數,使得在特定數目個時脈循環期間存取(例如,經由寫入或讀取)每一記憶體區段至少一次。
在另一實施例中,一或多個處理器可首先自較高階程式碼產生機器碼或其他較低階程式碼。一或多個處理器可接著將來自較低階程式碼之變數指派給記憶體區段中之各者,使得在每一刷新循環(其可包含特定數目個時脈循環)期間存取(例如,經由寫入或讀取)每一記憶體區段至少一次。在此實施例中,較低階程式碼之每一線可能需要單一時脈循環。
在上文所給出之實施例中之任一者中,一或多個處理器可將使用臨時輸出之邏輯運算或其他命令進一步指派給記憶體區段中之各者。 此等臨時輸出亦可產生讀取及/或寫入命令,使得即使尚未將指明之變數指派給經指派之記憶體區段,在彼刷新循環期間仍存取該記憶體區段。
方法3100可進一步包括額外步驟。舉例而言,在變數在編譯之前經指派的實施例中,一或多個處理器可自較高階程式碼產生機器碼或其他較低階程式碼。此外,一或多個處理器可傳輸經編譯程式碼以供記憶體晶片及對應邏輯電路執行。該等邏輯電路可包含諸如GPU或CPU之習知電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。因此,如上文所描述,該基板可包括記憶體陣列,該記憶體陣列包括複數個組,諸如圖28中所展示之組2801a及其他組。此外,該基板可包括處理陣列,該處理陣列可包括複數個處理器子單元(諸如,圖7A中所展示之子單元730a、730b、730c、730d、730e、730f、730g及730h)。
圖32為用於判定記憶體晶片(例如,圖28之記憶體晶片2800)之刷新的處理程序3200之另一實施例流程圖。處理程序3200可實施於符合本發明之編譯器內。處理程序3200可由執行包含編譯器之軟體指令的一或多個處理器執行。處理程序3200可與圖31之處理程序3100分開地或組合地實施。
在步驟3210處,類似於步驟3110,一或多個處理器可接收較高階電腦程式碼。在步驟3220處,類似於步驟3210,一或多個處理器可識別待由較高階電腦程式碼存取之在與記憶體晶片相關聯之複數個記憶體組上分佈的複數個記憶體區段。
在步驟3230處,一或多個處理器可評估較高階電腦程式碼以識別各涉及複數個記憶體區段中之一或多者的複數個記憶體讀取命令。舉例而言,一或多個處理器可識別需要自記憶體讀取之一或多個讀取命令及/或寫入至記憶體之一或多個寫入命令的較高階電腦程式碼內之每一操 作。此等指令可包含變數初始化、變數重新指派、對變數進行邏輯運算、輸入輸出操作或其類似者。
在一些實施例中,一或多個處理器可使用邏輯電路及複數個記憶體區段模擬較高階程式碼之執行。舉例而言,該模擬可包含較高階程式碼之逐線逐步通過,其類似於除錯器或其他指令集模擬器(ISS)之情況。該模擬可進一步維持表示複數個記憶體區段之位址的內部變數,其類似於除錯器可如何維持表示處理器之暫存器的內部變數。
在步驟3240處,一或多個處理器可基於對記憶體存取命令之分析且針對複數個記憶體區段當中之每一記憶體區段而追蹤自對記憶體區段之最後一次存取起所累積的時間量。舉例而言,使用上文所描述之模擬,一個或多個處理器可判定對複數個記憶體區段中之每一者內的一或多個位址之每一存取(例如,讀取或寫入)之間的時間長度。可按絕對時間、時脈循環或刷新循環(例如,由記憶體晶片之已知刷新速率判定)來量測時間長度。
在步驟3250處,回應於自任何特定記憶體區段之最後一次存取起經過的時間量將超過預定臨限值的判定,一或多個處理器可將經組態以致使對特定記憶體區段之存取的記憶體刷新命令或記憶體存取命令中之至少一者引入至較高階電腦程式碼中。舉例而言,一或多個處理器可包括供刷新控制器(例如,圖29A之刷新控制器2900或圖29B之刷新控制器2900')執行的刷新命令。在邏輯電路不嵌入與記憶體晶片相同之基板上的實施例中,一或多個處理器可產生與用於發送至邏輯電路之較低階程式碼分開的用於發送至記憶體晶片之刷新命令。
另外或替代地,一或多個處理器可包括供記憶體控制器(其可與刷新控制器分開或併入至刷新控制器中)執行之存取命令。該存取命 令可包含虛設命令,該虛設命令經組態以觸發對記憶體區段之讀取操作,但不使邏輯電路對來自記憶體區段之經讀取或寫入變數執行任何其他操作。
在一些實施例中,編譯器可包括來自處理程序3100之步驟及來自處理程序3200之步驟的組合。舉例而言,編譯器可根據步驟3140指派變數且接著根據步驟3250運行上文所描述之模擬以加入任何額外的記憶體刷新命令或記憶體存取命令中。此組合可允許編譯器跨越儘可能多的記憶體區段來分佈變數,且為無法在預定臨限時間量存取之任何記憶體區段產生刷新或存取命令。在另一組合實施例中,編譯器可根據步驟3230模擬程式碼,且基於該模擬指示在預定臨限時間量內將不存取之任何記憶體區段而根據步驟3140指派變數。在一些實施例中,此組合可進一步包括步驟3250以允許編譯器為在預定臨限時間量內無法存取之任何記憶體區段產生刷新或存取命令,即使在根據步驟3140之指派完成之後亦如此。
本發明之刷新控制器可允許由邏輯電路(無論係諸如CPU及GPU之習知邏輯電路抑或與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪)執行之軟體停用由刷新控制器執行之自動刷新,且替代地經由所執行軟體控制刷新。因此,本發明之一些實施例可將具有已知存取圖案之軟體提供至記憶體晶片(例如,若編譯器能夠存取定義記憶體晶片之複數個記憶體組及一對應結構的資料結構)。在此等實施例中,編譯後最佳化器可停用自動刷新,且僅針對記憶體晶片之在臨限時間量內未被存取之區段手動地設定刷新控制。因此,類似於上文所描述之步驟3250但在編譯之後,編譯後最佳化器可產生刷新命令以確保使用預定臨限時間量存取或刷新每一記憶體區段。
縮減刷新循環之另一實施例可包括使用對記憶體晶片之存 取的預定義圖案。舉例而言,若由邏輯電路執行之軟體可控制其用於記憶體晶片之存取圖案,則一些實施例可產生用於超出習知線性線刷新之刷新的存取圖案。舉例而言,若控制器判定由邏輯電路執行之軟體規則地每隔一列記憶體進行存取,則本發明之刷新控制器可使用並非每隔一線進行刷新之存取圖案以便加速記憶體晶片且縮減功率使用量。
此刷新控制器之實施例展示於圖33中。圖33描繪符合本發明之藉由所儲存圖案組態的實施例刷新控制器3300。刷新控制器3300可併入於本發明之記憶體晶片中,該記憶體晶片例如具有複數個記憶體組及包括於複數個記憶體組中之每一者中的複數個記憶體區段,諸如圖28之記憶體晶片2800。
刷新控制器3300包括計時器3301(類似於圖29A及圖29B之計時器2901)、列計數器3303(類似於圖29A及圖29B之列計數器2903)及加法器3305(類似於圖29A及圖29B之加法器2907)。此外,刷新控制器3300包括資料儲存器3307。不同於圖29B之資料儲存區2909,資料儲存器3307可儲存至少一個記憶體刷新圖案,該至少一個記憶體刷新圖案待實施以刷新包括於複數個記憶體組中之每一者中的複數個記憶體區段。舉例而言,如圖33中所描繪,資料儲存器3307可包括成列及/或行定義記憶體組中之區段的Li(例如,在圖33之實施例中,L1、L2、L3及L4)及Hi(例如,在圖33之實施例中,H1、H2、H3及H4)。此外,每一區段可與Inci變數(例如,在圖33之實施例中,Inc1、Inc2、Inc3及Inc4)相關聯,該變數定義與區段相關聯之列如何遞增(例如,是否存取或刷新每一列,是否每隔一列進行存取或刷新,或其類似者)。因此,如圖33中所展示,刷新圖案可包含一表,該表包括由軟體指派之複數個記憶體區段識別符,該等複數個記憶體區段識別符用以識別特定記憶體組中之在刷新循環 期間需刷新的複數個記憶體區段之範圍,及該特定記憶體組中之在該刷新循環期間不需刷新的複數個記憶體區段之範圍。
因此,資料儲存器3308可定義由邏輯電路(無論係諸如CPU及GPU之習知邏輯電路抑或與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪)執行之軟體可選擇以供使用的刷新圖案。記憶體刷新圖案可使用軟體可組態,以識別在刷新循環期間,特定記憶體組中之複數個記憶體區段中的哪些者需刷新,而特定記憶體組中之複數個記憶體區段中的哪些者在該刷新循環期間不需刷新。因此,刷新控制器3300可根據Inci刷新在當前循環期間未被存取之所定義區段內的一些或所有列。刷新控制器3300可跳過經設定為在當前循環期間被存取之所定義區段的其他列。
在刷新控制器3300之資料儲存器3308包括複數個記憶體刷新圖案的實施例中,每一記憶體刷新圖案可表示不同的刷新圖案,用於刷新包括於複數個記憶體組中之每一者中之複數個記憶體區段。記憶體刷新圖案可為可選擇的以用於複數個記憶體區段上。因此,刷新控制器3300可經組態以允許選擇在特定刷新循環期間實施複數個記憶體刷新圖案中之哪一者。舉例而言,由邏輯電路(無論係諸如CPU及GPU之習知邏輯電路抑或與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪)執行之軟體可選擇不同記憶體刷新圖案以供在一或多個不同刷新循環期間使用。替代地,由邏輯電路執行之軟體可選擇一個記憶體刷新圖案以供貫穿不同刷新循環中之一些或全部而使用。
可使用儲存於資料儲存器3308中之一或多個變數來編碼記憶體刷新圖案。舉例而言,在複數個記憶體區段配置成列的實施例中,每一記憶體區段識別符可經組態以識別記憶體之一列內,記憶體刷新應開始或結束之特定位置。舉例而言,除Li及Hi以外,一或多個額外變數亦可定 義由Li及Hi定義之列之哪些部分在區段內。
圖34為用於判定記憶體晶片(例如,圖28之記憶體晶片2800)之刷新的處理程序3400之實施例流程圖。處理程序3100可由符合本發明之刷新控制器(例如,圖33之刷新控制器3300)內的軟體實施。
在步驟3410處,刷新控制器可儲存至少一個記憶體刷新圖案,該至少一個記憶體刷新圖案待實施以刷新包括於複數個記憶體組中之每一者中的複數個記憶體區段。舉例而言,如上文關於圖33所解釋,刷新圖案可包含一表,該表包括由軟體指派之複數個記憶體區段識別符,該等複數個記憶體區段識別符用以識別特定記憶體組中之在刷新循環期間需刷新的複數個記憶體區段之範圍,及該特定記憶體組中之在刷新循環期間不需刷新的複數個記憶體區段之範圍。
在一些實施例中,至少一個刷新圖案可在製造期間編碼至刷新控制器上(例如,編碼至與刷新控制器相關聯或至少可由刷新控制器存取之唯讀記憶體上)。因此,刷新控制器可存取至少一個記憶體刷新圖案,但不儲存該至少一個記憶體刷新圖案。
在步驟3420及3430處,刷新控制器可使用軟體以識別特定記憶體組中之複數個記憶體區段中的哪些者在刷新循環期間需刷新,而特定記憶體組中之複數個記憶體區段中的哪些者在該刷新循環期間不需刷新。舉例而言,如上文關於圖33所解釋,由邏輯電路(無論係諸如CPU及GPU之習知邏輯電路抑或與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪)執行之軟體可選擇至少一個記憶體刷新圖案。此外,刷新控制器可存取選定的至少一個記憶體刷新圖案以在每一刷新循環期間產生對應刷新信號。刷新控制器可根據該至少一個記憶體刷新圖案刷新在當前循環期間未被存取之所定義區段內的一些或所有部分,且可跳過經設 定為在當前循環期間被存取之所定義區段的其他部分。
在步驟3440處,刷新控制器可產生對應刷新命令。舉例而言,如圖33中所描繪,加法器3305可包含邏輯電路,該邏輯電路經組態以根據資料儲存器3307中之至少一個記憶體刷新圖案來使用於未被刷新之特定區段的刷新信號無效。另外或替代地,微處理器(圖33中未展示)可基於根據資料儲存器3307中之至少一個記憶體刷新圖案將刷新哪些區段而產生特定刷新信號。
方法3400可進一步包括額外步驟。舉例而言,在至少一個記憶體刷新圖案經組態以每一個、兩個或其他數目個刷新循環而改變(例如,自L1、H1及Inc1移動至L2、H2及Inc2,如圖33中所展示)的實施例中,刷新控制器可根據步驟3430及3440存取資料儲存器之不同部分以用於刷新信號之下一判定。類似地,若由邏輯電路(無論係諸如CPU及GPU之習知邏輯電路抑或與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪)執行之軟體自資料儲存器選擇新的記憶體刷新圖案以供用於一或多個未來刷新循環中,則刷新控制器可根據步驟3430及3440存取資料儲存器之不同部分以用於刷新信號之下一判定。
當設計記憶體晶片且目標為記憶體之某一容量時,記憶體容量改變至較大大小或較小大小可能需要重新設計產品及重新設計整個光罩集。通常,產品設計與市場研究平行地進行,且在一些狀況下,產品設計在市場研究可用之前完成。因此,產品設計與市場之實際需求之間可能存在脫節。本發明提出靈活地提供具有滿足市場需求之記憶體容量的記憶體晶片之方式。設計方法可包括在晶圓上設計晶粒連同適當的互連電路系統,使得可自晶圓選擇性地切割可含有一或多個晶粒之記憶體晶片,以便提供自單一晶圓生產具有大小可變之記憶體容量的記憶體晶片之機會。
本發明係關於用於藉由自晶圓切割記憶體晶片來製造該等記憶體晶片之系統及方法。該方法可用於自晶圓生產大小可選擇之記憶體晶片。含有晶粒3503之晶圓3501的實施例實施例展示於圖35A中。晶圓3501可由半導體材料(例如,矽(Si)、矽鍺(SiGe)、絕緣體上矽(SOI)、氮化鎵(GaN)、氮化鋁(AlN)、氮化鋁鎵(AlGaN)、氮化硼(BN)、砷化鎵(GaAs)、砷化鎵鋁(AlGaAs)、氮化銦(InN)、以上各者之組合及其類似者)形成。晶粒3503可包括任何合適的電路元件(例如,電晶體、電容器、電阻器及/或其類似者),該等電路元件可包括任何合適的半導體、介電或金屬組件。晶粒3503可由可能與晶圓3501之材料相同或不同的半導體材料形成。除晶粒3503以外,晶圓3501亦可包括其他結構及/或電路系統。在一些實施例中,可提供一或多個耦接電路且且該一或多個耦接電路將晶粒中之一或多者耦接在一起。在一實施例實施例中,此耦接電路可包括由兩個或多於兩個晶粒3503共用之一匯流排。另外,該耦接電路可包括經設計以控制與晶粒3503相關聯之電路系統及/或將資訊導引至晶粒3503/導引來自晶粒3503之資訊的一或多個邏輯電路。在一些狀況下,該耦接電路可包括記憶體存取管理邏輯。此邏輯可將邏輯記憶體位址轉譯成與晶粒3503相關聯之實體位址。應注意,如本文中所使用,術語製造可共同地指用於建置所揭示晶圓、晶粒及/或晶片之步驟中之任一者。舉例而言,製造可指包括於晶圓上之各種晶粒(及任何其他電路系統)的同時佈置及形成。製造亦可指自晶圓切割大小可選擇之記憶體晶片以在一些狀況下包括一個晶粒,或在其他狀況下包括多個晶粒。當然,術語製造並不欲限於此等實施例,而是可包括與所揭示記憶體晶片及中間結構中之任一者或全部之產生相關聯的其他態樣。
晶粒3503或晶粒群組可用於製造記憶體晶片。記憶體晶片 可包括分散式處理器,如本發明之其他章節中所描述。如圖35B中所展示,晶粒3503可包括基板3507及安置於該基板上之記憶體陣列。該記憶體陣列可包括一或多個記憶體單元,諸如經設計以儲存資料之記憶體組3511A至3511D。在各種實施例中,記憶體組可包括基於半導體之電路元件,諸如電晶體、電容器及其類似者。在一實施例實施例中,一記憶體組可包括多列及多行儲存單元。在一些狀況下,此記憶體組可具有大於一百萬位元組之容量。該等記憶體組可包括動態或靜態存取記憶體。
晶粒3503可進一步包括安置於基板上之處理陣列,該處理陣列包括複數個處理器子單元3515A至3515D,如圖35B中所展示。如上文所描述,每一記憶體組可包括由一專用匯流排連接之一專用處理器子單元。舉例而言,處理器子單元3515A經由匯流排或連接件3512與記憶體組3511A相關聯。應理解,記憶體組3511A至3511D與處理器子單元3515A至3515D之間的各種連接係可能的,且僅一些說明性連接展示於圖35B中。在一實施例實施例中,處理器子單元可對相關聯之記憶體組執行讀取/寫入操作,且可進一步相對於儲存於各種記憶體組中之記憶體執行刷新操作或任何其他合適之操作。
如所提到,晶粒3503可包括經組態以將處理器子單元與其對應記憶體組連接之匯流排的第一群組。實施例匯流排可包括連接電組件之一組導線或導體,且允許將資料及位址傳送至每一記憶體組及其相關聯之處理器子單元以及自每一記憶體組及其相關聯之處理器子單元傳送資料。在一實施例中,連接件3512可充當用於將處理器子單元3515A連接至記憶體組3511A之專用匯流排。晶粒3503可包括此類匯流排之群組,每一匯流排將一處理器子單元連接至一對應的專用記憶體組。另外,晶粒3503可包括匯流排之另一群組,每一匯流排將處理器子單元(例如,子單元3515A 至3515D)連接至彼此。舉例而言,此類匯流排可包括連接件3516A至3516D。在各種實施例中,用於記憶體組3511A至3511D之資料可經由輸入輸出匯流排3530遞送。在一實施例中,輸入輸出匯流排3530可攜載資料相關資訊,及用於控制晶粒3503之記憶體單元之操作的命令相關資訊。資料資訊可包括用於儲存於記憶體組中之資料、自記憶體組讀取之資料、基於相對於儲存於對應記憶體組中之資料執行之操作的來自處理器子單元中之一或多者的處理結果、命令相關資訊、各種程式碼等。
在各種狀況下,由輸入輸出匯流排3530傳輸之資料及命令可由輸入輸出(IO)控制器3521控制。在一實施例中,IO控制器3521可控制自匯流排3530至處理器子單元3515A至3515D及來自處理器子單元3515A至3515D之資料流。IO控制器3521可判定自處理器子單元3515A至3515D中之哪一者擷取資訊。在各種實施例中,IO控制器3521可包括經組態以撤銷啟動IO控制器3521之熔斷器3554。若多個晶粒組合在一起以形成較大記憶體晶片(亦被稱作多晶粒記憶體晶片,作為僅含有一個晶粒之單晶粒記憶體晶片的替代),則可使用熔斷器3554。該多晶粒記憶體晶片可接著使用形成該多晶粒記憶體晶片之晶粒單元中之一者的IO控制器中之一者,同時藉由使用對應於與其他晶粒單元相關之其他IO控制器的熔斷器來停用其他IO控制器。
如所提到,每一記憶體晶片或前置晶粒或晶粒群組可包括與對應記憶體組相關聯之分散式處理器。在一些實施例中,此等分散式處理器可配置於與複數個記憶體組安置在同一基板上的處理陣列中。另外,該處理陣列可包括各包括一位址產生器(亦被稱作位址產生器單元(AGU))之一或多個邏輯部分。在一些狀況下,該位址產生器可為至少一個處理器子單元之部分。該位址產生器可產生自與記憶體晶片相關聯之一或多個記 憶體組取得資料所需的記憶體位址。位址產生計算可涉及整數算術運算,諸如加法、減法、模數運算或位元移位。該位址產生器可經組態以一次對多個運算元進行運算。此外,多個位址產生器可同時執行多於一個位址計算運算。在各種實施例中,位址產生器可能與對應記憶體組相關聯。該等位址產生器可藉助於對應匯流排線與其對應記憶體組連接。
在各種實施例中,大小可選擇之記憶體晶片可藉由選擇性地切割晶圓3501之不同區而由該晶圓形成。如所提到,該晶圓可包括晶粒3503之群組,該群組包括晶圓上所包括之兩個或多於兩個晶粒(例如,2個、3個、4個、5個、10個或多於10個晶粒)的任何群組。如將在下文進一步所論述,在一些狀況下,單一記憶體晶片可藉由切割晶圓之僅包括晶粒群組中之一個晶粒的一部分來形成。在此等狀況下,所得記憶體晶片將包括與一個晶粒相關聯之記憶體單元。然而,在其他狀況下,大小可選擇之記憶體晶片可形成為包括多於一個晶粒。此等記憶體晶片可藉由切割晶圓之包括晶圓上所包括之晶粒群組中之兩個或多於兩個晶粒的區來形成。在此等狀況下,晶粒連同將晶粒耦接在一起之耦接電路提供多晶粒記憶體晶片。一些額外電路元件亦可板載地線連接於晶片之間,諸如時脈元件、資料匯流排或任何合適的邏輯電路。
在一些狀況下,與晶粒群組相關聯之至少一個控制器可經組態以控制晶粒群組作為單一記憶體晶片(例如,多記憶體單元記憶體晶片)進行操作。該控制器可包括管理進入記憶體晶片及來自記憶體晶片之資料流的一或多個電路。記憶體控制器可為記憶體晶片之一部分,或其可為不與記憶體晶片直接相關之分開晶片的一部分。在一實施例中,控制器可經組態以促進與記憶體晶片之分散式處理器相關聯的讀取及寫入請求或其他命令,且可經組態以控制記憶體晶片之任何其他合適的態樣(例如,刷新 記憶體晶片,與分散式處理器相互作用等)。在一些狀況下,控制器可為晶粒3503之部分,且在其他狀況下,控制器可鄰近於晶粒3503佈置。在各種實施例中,控制器亦可包括記憶體晶片上所包括之記憶體單元中之至少一者的至少一個記憶體控制器。在一些狀況下,用於存取記憶體晶片上之資訊的協定可能與可存在於記憶體晶片上之複製邏輯及記憶體單元(例如,記憶體組)無關。該協定可經組態以具有用於充分存取記憶體晶片上之資料的不同ID或位址範圍。具有此協定之晶片的實施例可包括具有聯合電子裝置工程委員會(JEDEC)雙資料速率(DDR)控制器之晶片,其中不同記憶體組可具有不同位址範圍、串列周邊介面(SPI)連接,其中不同記憶體單元(例如,記憶體組)具有不同標識(ID),及其類似者。
在各種實施例中,可自晶圓切割多個區,其中各個區包括一或多個晶粒。在一些狀況下,每一分開區可用以建置一多晶粒記憶體晶片。在其他狀況下,待自晶圓切割之每一區可包括單一晶粒以提供單晶粒記憶體晶片。在一些狀況下,該等區中之兩者或多於兩者可具有相同形狀且具有以相同方式耦接至耦接電路之相同數目個晶粒。替代地,在一些實施例中,區之第一群組可用以形成第一類型之記憶體晶片,且區之第二群組可用以形成第二類型之記憶體晶片。舉例而言,如圖35C中所展示,晶圓3501可包括區3505,該區可包括單一晶粒,且第二區3504可包括兩個晶粒之群組。當自晶圓3501切割區3505時,將提供單晶粒記憶體晶片。當自晶圓3501切割區3504時,將提供多晶粒記憶體晶片。圖35C中所展示之群組僅為說明性,且可自晶圓3501切下晶粒之各種其他區及群組。
在各種實施例中,晶粒可形成於晶圓3501上,使得其沿著晶圓之一或多列配置,如展示於例如圖35C中。該等晶粒可共用對應於一或多列之輸入輸出匯流排3530。在一實施例中,可使用各種切割形狀自晶 圓3501切下晶粒群組,其中當切下可用以形成記憶體晶片之晶粒群組時,可能不包括共用的輸入輸出匯流排3530之至少一部分(例如,僅可包括輸入輸出匯流排3530之一部分作為形成為包括晶粒群組之記憶體晶片的一部分)。
如先前所論述,當多個晶粒(例如,晶粒3506A及3506B,如圖35C中所展示)用以形成記憶體晶片3517時,對應於該等晶粒中之一者的一個IO控制器可經啟用且經組態以控制至晶粒3506A及3506B之所有處理器子單元的資料流。舉例而言,圖35D展示經組合以形成記憶體晶片3517之記憶體晶粒3506A及3506B,該記憶體晶片包括記憶體組3511A至3511H、處理器子單元3515A至3515H、IO控制器3521A及3521B,以及熔斷器3554A及3554B。應注意,在自晶圓移除記憶體晶片3517之前,該記憶體晶片對應於晶圓3501之區3517。換言之,如此處且在本發明中別處所使用,一旦自晶圓3501切割,晶圓3501之區3504、3505、3517等便將產生記憶體晶片3504、3505、3517等。另外,本文中之熔斷器亦被稱作停用元件。在一實施例中,熔斷器3554B可用以撤銷啟動IO控制器3521B,且IO控制器3521A可用以藉由將資料傳達至處理器子單元3515A至3515H來控制至所有記憶體組3511A至3511H之資料流。在一實施例中,IO控制器3521A可使用任何合適之連接來連接至各種處理器子單元。在一些實施例中,如下文進一步所描述,處理器子單元3515A至3515H可互連,且IO控制器3521A可經組態以控制至形成記憶體晶片3517之處理邏輯之處理器子單元3515A至3515H的資料流。
在一實施例中,諸如控制器3521A及3521B之IO控制器以及對應熔斷器3554A及3554B可連同形成記憶體組3511A至3511H及處理器子單元3515A至3515H一起在晶圓3501上形成。在各種實施例中,當 形成記憶體晶片3517時,可啟動熔斷器中之一者(例如,熔斷器3554B)使得晶粒3506A及3506B經組態以形成記憶體晶片3517,該記憶體晶片充當單一晶片且受單一輸入輸出控制器(例如,控制器3521A)控制。在一實施例中,啟動熔斷器可包括施加電流以觸發熔斷器。在各種實施例中,當多於一個晶粒用於形成記憶體晶片時,可經由對應熔斷器撤銷啟動除一個IO控制器之外的所有其他IO控制器。
在各種實施例中,如圖35C中所展示,多個晶粒連同一組輸入輸出匯流排及/或控制匯流排一起形成於晶圓3501上。輸入輸出匯流排3530之實施例繪示於圖35C中。在一實施例中,輸入輸出匯流排中之一者(例如,輸入輸出匯流排3530)可連接至多個晶粒。圖35C展示接近晶粒3506A及3506B通過之輸入輸出匯流排3530的實施例。如圖35C中所展示之晶粒3506A及3506B以及輸入輸出匯流排3530之組態僅為說明性的,且可使用各種其他組態。舉例而言,圖35E說明形成於晶圓3501上且配置成六邊形形式之晶粒3540。可自晶圓3501切下包括四個晶粒3540之記憶體晶片3532。在一實施例中,記憶體晶片3532可包括藉由合適的匯流排線(例如,線3533,如圖35E中所展示)連接至四個晶粒的輸入輸出匯流排3530之一部分。為了將資訊投送至記憶體晶片3532之適當記憶體單元,記憶體晶片3532可包括置放於輸出匯流排3530之分支點處的輸入/輸出控制器3542A及3542B。控制器3542A及3542B可經由輸入輸出匯流排3530接收命令資料,且選擇匯流排3530之分支用於將資訊傳輸至適當記憶體單元。舉例而言,若命令資料包括自/至與晶粒3546相關聯之記憶體單元的讀取/寫入資訊,則控制器3542A可接收命令請求且將資料傳輸至匯流排3530之分支3531A,如圖35D中所展示,而控制器3542B可接收命令請求且將資料傳輸至分支3531B。圖35E指示可進行之不同區的各種切割,其中切割 線由虛線表示。
在一實施例中,晶粒群組及互連電路系統可經設計以包括於如圖36A中所展示之記憶體晶片3506中。此實施例可包括可經組態以彼此通信之處理器子單元(用於記憶體內處理)。舉例而言,待包括於記憶體晶片3506中之每一晶粒可包括諸如記憶體組3511A至3511D之各種記憶體單元、處理器子單元3515A至3515D,以及IO控制器3521及3522。IO控制器3521及3522可並聯連接至輸入輸出匯流排3530。IO控制器3521可具有熔斷器3554,且IO控制器3522可具有熔斷器3555。在一實施例中,處理器子單元3515A至3515D可藉助於例如匯流排3613連接。在一些狀況下,IO控制器中之一者可使用對應熔斷器來停用。舉例而言,可使用熔斷器3555停用IO控制器3522,且IO控制器3521可經由處理器子單元3515A至3515D控制至記憶體組3511A至3511D中之資料流,該等處理器子單元經由匯流排3613彼此連接。
如圖36A中所展示之記憶體單元的組態僅為說明性的,且各種其他組態可藉由切割晶圓3501之不同區來形成。舉例而言,圖36B展示具有三個域3601至3603之組態,該三個域含有記憶體單元且連接至輸入輸出匯流排3530。在一實施例中,域3601至3603係使用可由對應熔斷器3554至3556停用之IO控制模組3521至3523連接至輸入輸出匯流排3530。配置含有記憶體單元之域的實施例之另一實施例繪示於圖36C中,其中使用匯流排線3611、3612及3613將三個域3601、3602及3603連接至輸入輸出匯流排3530。圖36D展示經由IO控制器3521至3524連接至輸入輸出匯流排3530A及3530B之記憶體晶片3506A至3506D的另一實施例。在一實施例中,可使用對應熔斷器元件3554至3557撤銷啟動IO控制器,如圖36D中所展示。
圖37展示晶粒3503之各種群組,諸如可包括一或多個晶粒3503之群組3713及群組3715。在一實施例中,除在晶圓3501上形成晶粒3503以外,晶圓3501亦可含有被稱作膠合邏輯3711之邏輯電路3711。相較於在不存在膠合邏輯3711之情況下可能已製造的晶粒之數目,膠合邏輯3711可佔用晶圓3501上之一些空間,以導致每晶圓3501製造較少數目個晶粒。然而,存在膠合邏輯3711可允許多個晶粒經組態以充當單一記憶體晶片作用。舉例而言,膠合邏輯可連接多個晶粒,而不必改變組態且不必為僅用於將晶粒連接在一起之電路系統指明晶粒本身中之任一者內的區域。在各種實施例中,膠合邏輯3711提供與其他記憶體控制器之介面,使得多晶粒記憶體晶片充當單一記憶體晶片。膠合邏輯3711可連同晶粒群組(例如,如由群組3713展示)一起切割。替代地,若記憶體晶片僅需要一個晶粒,例如,如對於群組3715,則可能不切割膠合邏輯。舉例而言,在不需要實現不同晶粒之間的協作之處,可選擇性地消除膠合邏輯。在圖37中,可進行不同區之各種切割,例如,如由虛線區所展示。在各種實施例中,如圖37中所展示,對於每兩個晶粒3506,可在晶圓上佈置一個膠合邏輯元件3711。在一些狀況下,一個膠合邏輯元件3711可用於形成晶粒群組之任何合適數目個晶粒3506。膠合邏輯3711可經組態以連接至來自晶粒群組之所有晶粒。在各種實施例中,連接至膠合邏輯3711之晶粒可經組態以形成多晶粒記憶體晶片,且可經組態以在晶粒不連接至膠合邏輯3711時形成分開的單晶粒記憶體晶片。在各種實施例中,連接至膠合邏輯3711且經設計以一起起作用之晶粒可作為群組自晶圓3501切下,且可包括膠合邏輯3711,例如,如由群組3713所指示。未連接至膠合邏輯3711之晶粒可自晶圓3501切下而不包括膠合邏輯3711,例如,如由群組3715所指示,以形成單晶粒記憶體晶片。
在一些實施例中,在自晶圓3501製造多晶粒記憶體晶片期間,可判定一或多個切割形狀(例如,形成群組3713、3715之形狀)用於產生多晶粒記憶體晶片中之所要集合。在一些狀況下,如由群組3715所展示,切割形狀可能不包括膠合邏輯3711。
在各種實施例中,膠合邏輯3711可為用於控制多晶粒記憶體晶片之多個記憶體單元的控制器。在一些狀況下,膠合邏輯3711可包括可由各種其他控制器修改之參數。舉例而言,用於多晶粒記憶體晶片之耦接電路可包括用於組態膠合邏輯3711之參數或記憶體控制器之參數的電路(例如,處理器子單元3515A至3515D,如展示於例如圖35B中)。膠合邏輯3711可經組態以進行多種任務。舉例而言,邏輯3711可經組態以判定哪些晶粒可能需要定址。在一些狀況下,邏輯3711可用以使多個記憶體單元同步。在各種實施例中,邏輯3711可經組態以控制各種記憶體單元,使得記憶體單元作為單一晶片操作。在一些狀況下,可在輸入輸出匯流排(例如,匯流排3530,如圖35C中所展示)與處理器子單元3515A至3515D之間添加放大器以放大來自匯流排3530之資料信號。
在各種實施例中,自晶圓3501切割複雜形狀在技術可能為困難/昂貴的,且可採用較簡單的切割方法,其限制條件為晶粒在晶圓3501上對準。舉例而言,圖38A展示經對準以形成矩形柵格之晶粒3506。在一實施例中,可進行跨越整個晶圓3501之豎直切割3803及水平切割3801以分開切下之晶粒群組。在一實施例中,豎直切割3803及水平切割3801可產生含有選定數目個晶粒之群組。舉例而言,切割3803及3801可產生含有單一晶粒之區(例如,區3811A)、含有兩個晶粒之區(例如,區3811B)及含有四個晶粒之區(例如,區3811C)。由切割3801及3803形成之區僅為說明性的,且可形成任何其他合適的區。在各種實施例中,取決於晶粒 對準,可進行各種切割。舉例而言,若晶粒配置成三角形柵格,如圖38B中所展示,則諸如線3802、3804及3806之切割線可用以製成多晶粒記憶體晶片。舉例而言,一些區可包括六個晶粒、五個晶粒、四個晶粒、三個晶粒、兩個晶粒、一個晶粒任何其他合適數目個晶粒。
圖38C展示配置成三角形柵格之匯流排線3530,其中晶粒3503在藉由匯流排線3530相交形成之三角形的中心對準。晶粒3503可經由匯流排線3820連接至所有相鄰的匯流排線。藉由切割含有兩個或多於兩個鄰近晶粒之區(例如,區3822,如圖38C中所展示),至少一個匯流排線(例如,線3824)保留在區3822內,且匯流排線3824可用以將資料及命令供應至使用區3822形成之多晶粒記憶體晶片。
圖39展示可形成於處理器子單元3515A至3515P之間以允許記憶體單元之群組充當單一記憶體晶片的各種連接件。舉例而言,各種記憶體單元之群組3901可包括處理器子單元3515B與子單元3515E之間的連接件3905。連接件3905可用作用於將資料及命令自子單元3515B傳輸至可用以控制各別記憶體組3511E之子單元3515E的匯流排線。在各種實施例中,處理器子單元之間的連接件可在晶圓3501上形成晶粒期間實施。在一些狀況下,額外連接件可在由若干晶粒形成之記憶體晶片的封裝階段期間製造。
如圖39中所展示,處理器子單元3515A至3515P可使用各種匯流排(例如,連接件3905)彼此連接。連接件3905可能不含時序硬體邏輯組件,使得在處理器子單元之間及跨越連接件3905的資料傳送可能不受時序硬體邏輯組件控制。在各種實施例中,連接處理器子單元3515A至3515P之匯流排可在將各種電路製造於晶圓3501上之前佈置於晶圓3501上。
在各種實施例中,處理器子單元(例如,子單元3515A至3515P)可互連。舉例而言,子單元3515A至3515P可藉由合適匯流排(例如,連接件3905)連接。連接件3905可將子單元3515A至3515P中之任一者與子單元3515A至3515P中之任何其他子單元連接。在一實施例中,連接之子單元可在同一晶粒上(例如,子單元3515A及3515B),且在其他狀況下,連接之子單元可在不同晶粒上(例如,子單元3515B及3515E)。連接件3905可包括用於連接子單元之專用匯流排且可經組態以在子單元3515A至3515P之間高效地傳輸資料。
本發明之各種態樣係關於用於自晶圓生產大小可選擇之記憶體晶片的方法。在一實施例中,大小可選擇之記憶體晶片可由一或多個晶粒形成。如前文所提到,該等晶粒可沿著一或多列配置,如展示於例如圖35C中。在一些狀況下,對應於一或多列之至少一個共用的輸入輸出匯流排可佈置於晶圓3501上。舉例而言,匯流排3530可如圖35C中所展示而佈置。在各種實施例中,匯流排3530可電連接至晶粒中之至少兩個的記憶體單元,且連接之晶粒可用以形成多晶粒記憶體晶片。在一實施例中,一或多個控制器(例如,輸入輸出控制器3521及3522,如圖35B中所展示)可經組態以控制用以形成多晶粒記憶體晶片之至少兩個晶粒之記憶體單元。在各種實施例中,可自晶圓切下具有連接至匯流排3530之記憶體單元的晶粒,其具有共用的輸入輸出匯流排(例如,匯流排3530,如圖35B中所展示)之一個對應部分,該共用的輸入輸出匯流排將資訊傳輸至至少一個控制器(例如,控制器3521、3522)以組態控制器以控制所連接晶粒之記憶體單元,以充當單一晶片作用。
在一些狀況下,可在藉由切割晶圓3501之區來製造記憶體晶片之前測試位於晶圓3501上之記憶體單元。可使用至少一個共用的輸入 輸出匯流排(例如,匯流排3530,如圖35C中所展示)進行該測試。當記憶體單元通過測試時,記憶體晶片可由含有該等記憶體單元之晶粒的群組形成。可捨棄未通過測試之記憶體單元,且不將該等記憶體單元用於製造記憶體晶片。
圖40展示自晶粒群組建置記憶體晶片之處理程序4000之一實施例。在處理程序4000之步驟4011處,可在半導體晶圓3501上佈置晶粒。在步驟4015處,可使用任何合適的方法在晶圓3501上製造晶粒。舉例而言,可藉由蝕刻晶圓3501,沈積各種介電質、金屬或半導體層及進一步蝕刻所沈積層等來製造晶粒。舉例而言,可沈積及蝕刻多個層。在各種實施例中,可使用任何合適的摻雜元素對層進行n型摻雜或P型摻雜。舉例而言,可用磷對半導體層進行n型摻雜有且用硼對半導體層進行P型摻雜。如圖35A中所展示,晶粒3503可藉由可用以自晶圓3501切下晶粒3503之空間彼此分開。舉例而言,晶粒3503可藉由間隔區彼此隔開,其中可選擇間隔區之寬度以允許在間隔區中進行晶圓切割。
在步驟4017處,可使用任何合適的方法自晶圓3501切下晶粒3503。在一實施例中,可使用雷射切下晶粒3503。在一實施例中,可首先刻劃晶圓3501,其後接著進行機械劃割。替代地,可使用機械劃割鋸。在一些狀況下,可使用隱式劃割處理程序。在劃割期間,一旦切下晶粒,晶圓3501便可安裝於用於固持晶粒之劃割帶上。在各種實施例中,可進行大的切割,例如,如在圖38A中由切割3801及3803所展示或在圖38B中由切割3802、3804或3806所展示。一旦個別地或以群組切下晶粒3503,如在圖35C中例如由群組3504所展示,便可封裝晶粒3503。晶粒之封裝可包括形成至晶粒3503之接點,在接點上方沈積保護層,附接熱管理裝置(例如,散熱片)及囊封晶粒3503。在各種實施例中,取決於選擇多少晶粒 來形成一記憶體晶片,可使用接點及匯流排之適當組態。在一實施例中,可在記憶體晶片封裝期間製作形成記憶體晶片之不同晶粒之間的接點中之一些。
圖41A展示用於製造含有多個晶粒之記憶體晶片的處理程序4100之一實施例。處理程序4100之步驟4011可與處理程序4000之步驟4011相同。在步驟4111處,如圖37中所展示,可將膠合邏輯3711佈置於晶圓3501上。膠合邏輯3711可為用於控制晶粒3506之操作的任何合適的邏輯,如圖37中所展示。如前文所描述,膠合邏輯3711之存在可允許多個晶粒充當單一記憶體晶片。膠合邏輯3711可提供與其他記憶體控制器之介面,使得由多個晶粒形成之記憶體晶片充當單一記憶體晶片。
在處理程序4100之步驟4113處,可將匯流排(例如,輸入輸出匯流排及控制匯流排)佈置於晶圓3501上。匯流排可佈置為使得其與各種晶粒及諸如膠合邏輯3711之邏輯電路連接。在一些狀況下,匯流排可連接記憶體單元。舉例而言,匯流排可經組態以連接不同晶粒之處理器子單元。在步驟4115處,可使用任何合適的方法製造晶粒、膠合邏輯及匯流排。舉例而言,可藉由蝕刻晶圓3501,沈積各種介電質、金屬或半導體層及進一步蝕刻所沈積層等來製造邏輯元件。可使用例如金屬蒸鍍來製造匯流排。
在步驟4140處,可使用切割形狀以切割連接至單一膠合邏輯3711之晶粒的群組,如展示於例如圖37中。可使用含有多個晶粒3503之記憶體晶片的記憶體要求來判定切割形狀。舉例而言,圖41B展示處理程序4101,該處理程序可為處理程序4100之變體,其中步驟4117及4119可置於處理程序4100之步驟4140之前。在步驟4117處,用於切割晶圓3501之系統可接收描述記憶體晶片之要求的指令。舉例而言,要求可包括形成 包括四個晶粒3503之記憶體晶片。在一些狀況下,在步驟4119處,程式軟體可判定用於晶粒群組及膠合邏輯3711之週期性圖案。舉例而言,週期性圖案可包括兩個膠合邏輯3711元件及四個晶粒3503,其中每兩個晶粒連接至一個膠合邏輯3711。替代地,在步驟4119處,可由記憶體晶片之設計者提供該圖案。
在一些狀況下,可選擇該圖案以使自晶圓3501形成之記憶體晶片的產率達至最大。在一實施例中,可測試晶粒3503之記憶體單元以識別具有故障記憶體單元之晶粒(此類晶粒被稱作發生故障晶粒),且基於故障晶粒之位置,可識別含有通過測試之記憶體單元的晶粒3503之群組且可判定適當的切割圖案。舉例而言,若在晶圓3501之邊緣處,大量晶粒3503發生故障,則可判定切割圖案以避開晶圓3501之邊緣處的晶粒。處理程序4101之諸如步驟4011、4111、4113、4115及4140的其他步驟可與處理程序4100之相同編號步驟相同。
圖41C展示可為處理程序4101之變化形式的處理程序4102之實施例。處理程序4102之步驟4011、4111、4113、4115及4140可與處理程序4101之相同編號步驟相同,處理程序4102之步驟4131可替代處理程序4101之步驟4117,且處理程序4102之步驟4133可替代處理程序4101之步驟4119。在步驟4131處,用於切割晶圓3501之系統可接收描述第一記憶體晶片集合及第二記憶體晶片集合之要求的指令。舉例而言,要求可包括:形成具有由四個晶粒3503組成之記憶體晶片的第一記憶體晶片集合;及形成具有由兩個晶粒3503組成之記憶體晶片的第二記憶體晶片集合。在一些狀況下,可能需要自晶圓3501形成多於兩個記憶體晶片集合。舉例而言,第三記憶體晶片集合可包括僅由一個晶粒3503組成之記憶體晶片。在一些狀況下,在步驟4133處,程式軟體可判定用於晶粒群組及膠合 邏輯3711之週期性圖案,以用於形成每一記憶體晶片集合之記憶體晶片。舉例而言,第一記憶體晶片集合可包括含有兩個膠合邏輯3711及四個晶粒3503之記憶體晶片,其中每兩個晶粒連接至一個膠合邏輯3711。在各種實施例中,用於同一記憶體晶片之膠合邏輯單元3711可鏈接在一起以充當單一膠合邏輯。舉例而言,在製造膠合邏輯3711期間,可形成將膠合邏輯單元3711彼此鏈接之適當匯流排線。
第二記憶體晶片集合可包括含有一個膠合邏輯3711及兩個晶粒3503之記憶體晶片,其中晶粒3503連接至膠合邏輯3711。在一些狀況下,當選擇第三記憶體晶片集合時且當第三記憶體晶片集合包括由單一晶粒3503組成之記憶體晶片時,此等記憶體晶片可能不需要膠合邏輯3711。
當設計記憶體晶片或晶片內之記憶體執行個體時,一個重要的特性為在單一時脈循環期間可同時存取之字的數目。對於讀取及/或寫入,可同時存取之位址愈多(例如,沿著亦被稱作字或字線之列及亦被稱作位元或位元線之行的位址),記憶體晶片愈快。雖然在開發包括多路埠之記憶體時已存在一些活動,該等埠允許同時存取多個位址,例如用於建置暫存器檔案、現金或共用記憶體,但大部分執行個體使用大小較大且支援多個位址存取之記憶體墊。然而,DRAM晶片通常包括連接至每一記憶體胞元之每一電容器的單一位元線及單一列線。因此,本發明之實施例試圖提供對現有DRAM晶片之多埠存取,而不修改DRAM陣列之此習知單埠記憶體結構。
本發明之實施例可使用記憶體以兩倍於邏輯電路之速度來時控記憶體執行個體或晶片。使用記憶體之任何邏輯電路可因此「對應於」記憶體及其任何組件。因此,本發明之實施例可在兩個記憶體陣列時脈循環中對兩個位址進行擷取或寫入,該兩個記憶體陣列時脈循環等效於用於 邏輯電路之單一處理時脈循環。該等邏輯電路可包含諸如控制器、加速器、GPU或CPU之電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。如上文關於圖3A所解釋,「處理群組」可指基板上之兩個或多於兩個處理器子單元及其對應記憶體組。該群組可表示用於編譯程式碼以供在記憶體晶片2800上執行之目的之基板上的空間分佈及/或邏輯分組。因此,如上文關於圖7A所描述,具有記憶體晶片之基板可包括記憶體陣列,該記憶體陣列具有複數個組,諸如圖28中所展示之組2801a及其他組。此外,該基板亦可包括處理陣列,該處理陣列可包括複數個處理器子單元(諸如,圖7A中所展示之子單元730a、730b、730c、730d、730e、730f、730g及730h)。
因此,本發明之實施例可在兩個連續記憶體循環中之每一者內自陣列擷取資料,以便針對每一邏輯循環處置兩個位址,且向邏輯提供兩個結果,就如同單埠記憶體陣列為雙埠記憶體晶片一般。額外時控可允許本發明之記憶體晶片如同單埠記憶體陣列為雙埠記憶體執行個體、三埠記憶體執行個體、四埠記憶體執行個體埠或任何其他多埠記憶體執行個體一般起作用。
圖42描繪符合本發明的提供沿著記憶體晶片之行之雙埠存取的電路系統4200之實施例,在該記憶體晶片中使用電路系統4200。圖42中所描繪之實施例可使用具有兩個行多工器(「mux」)4205a及4205b以在用於邏輯電路之同一時脈循環期間存取同一列上之兩個字的一個記憶體陣列4201。舉例而言,在一記憶體時脈循環期間,RowAddrA用於列解碼器4203中且ColAddrA用於多工器4205a中以緩衝來自具有位址(RowAddrA,ColAddrA)之記憶體胞元的資料。在同一記憶體時脈循環期間,ColAddrB用於多工器4205b中以緩衝來自具有位址(RowAddrA, ColAddrB)之記憶體胞元的資料。因此,電路系統4200可允許沿著同一列或字線對儲存於兩個不同位址處之記憶體胞元上的資料(例如,DataA及DataB)進行雙埠存取。因此,兩個位址可共用一列使得列解碼器4203針對兩次擷取啟動同一字線。此外,如圖42中所描繪之實施例可使用行多工器,使得可在同一記憶體時脈循環期間存取兩個位址。
類似地,圖43描繪符合本發明的提供沿著記憶體晶片之列之雙埠存取的電路系統4300之一實施例,在該記憶體晶片中使用電路系統4300。圖43中所描繪之實施例可使用具有與多工器(「mux」)耦接之列解碼器4303以在用於邏輯電路之同一時脈循環期間存取同一行上之兩個字的一個記憶體陣列4301。舉例而言,在兩個記憶體時脈循環中之第一記憶體時脈循環上,RowAddrA用於列解碼器4303中且ColAddrA用於行多工器4305中以緩衝來自具有位址(RowAddrA,ColAddrA)之記憶體胞元的資料(例如,至圖43之「緩衝字」緩衝器)。在兩個記憶體時脈循環中之第二記憶體時脈循環上,RowAddrB用於列解碼器4303中且ColAddrA用於行多工器4305中以緩衝來自具有位址(RowAddrB,ColAddrA)之記憶體胞元的資料。因此,電路系統4300可允許沿著同一行或位元線對儲存於兩個不同位址處之記憶體胞元上的資料(例如,DataA及DataB)進行雙埠存取。因此,兩個位址可共用一列使得行解碼器(其可與一或多個行多工器分開或組合,如圖43中所描繪)針對兩次擷取啟動同一位元線。如圖43中所描繪之實施例可使用兩個記憶體時脈循環,此係因為列解碼器4303啟動每一字線皆可能需要一個記憶體時脈循環。因此,若以至少兩倍於對應邏輯電路之速度進行時控,則使用電路系統4300之記憶體晶片可充當雙埠記憶體。
因此,如上文所解釋,圖43可在比用於對應邏輯電路之時脈循環快的兩個記憶體時脈循環期間擷取DataA及DataB。舉例而言,列 解碼器(例如,圖43之列解碼器4303)及行解碼器(其可與一或多個行多工器分開或組合,如圖43中所描繪)可經組態成以至少兩倍於對應邏輯電路產生兩個位址之速率的速率進行時控。舉例而言,用於電路系統4300之時脈電路(圖43中未展示)可根據至少兩倍於對應邏輯電路產生兩個位址之速率的速率對電路系統4300進行時控。
可分開地或組合地使用圖42之實施例及圖43之實施例。因此,在單埠記憶體陣列或墊上提供雙埠功能性之電路系統(例如,電路系統4200或4300)可包含沿著至少一列及至少一行配置之複數個記憶體組。該等複數個記憶體組在圖42中描繪為記憶體陣列4201及在圖43中描繪為記憶體陣列4301。該等實施例可進一步使用經組態以在單一時脈循環期間接收用於讀取或寫入之兩個位址的至少一個列多工器(如圖43中所描繪)或至少一個行多工器(如圖42中所描繪)。此外,該等實施例可使用列解碼器(例如,圖42之列解碼器4203及圖43之列解碼器4303)及行解碼器(其可與一或多個行多工器分開或組合,如圖42及圖43中所描繪)以自兩個位址讀取或寫入至兩個位址。舉例而言,列解碼器及行解碼器可在第一循環期間自至少一個列多工器或至少一個行多工器擷取兩個位址中之第一位址,且解碼對應於第一位址之字線及位元線。此外,列解碼器及行解碼器可在第二循環期間自至少一個列多工器或至少一個行多工器擷取兩個位址中之第二位址,且解碼對應於第二位址之字線及位元線。該等擷取可各包含使用列解碼器啟動對應於位址之字線及使用行解碼器啟動經啟動的字線上之對應於位址的位元線。
儘管上文針對擷取進行了描述,但圖42及圖43之實施例(無論係分開地抑或組合地實施)皆可包括寫入命令。舉例而言,在第一循環期間,列解碼器及行解碼器可將自至少一個列多工器或至少一個行多工器 擷取之第一資料寫入至兩個位址中之第一位址。舉例而言,在第二循環期間,列解碼器及行解碼器可將自至少一個列多工器或至少一個行多工器擷取之第二資料寫入至兩個位址中之第二位址。
圖42繪示在第一位址及第二位址共用字線位址時之此處理程序之實施例,而圖43繪示在第一位址及第二位址共用行位址時之此處理程序之實施例。如下文關於圖47進一步所描述,在第一位址及第二位址不共用字線位址抑或行位址時,可實施同一處理程序。
因此,儘管上文之實施例提供沿著列或行中之至少一者的雙埠存取,但額外實施例可提供沿著列及行兩者之雙埠存取。圖44描繪符合本發明的提供沿著記憶體晶片之列及行兩者之雙埠存取的電路系統4400之實施例,在該記憶體晶片中使用電路系統4400。因此,電路系統4700可表示圖42之電路系統4200與圖43之電路系統4300的組合。
圖44中所描繪之實施例可使用具有與多工器(「mux」)耦接之列解碼器4403以在用於邏輯電路之同一時脈循環期間存取兩列的一個記憶體陣列4401。此外,圖44中所描繪之實施例可使用具有與多工器(「mux」)耦接之行解碼器(或多工器)4405以在同一時脈循環期間存取兩行的記憶體陣列4401。舉例而言,在兩個記憶體時脈循環中之第一記憶體時脈循環上,RowAddrA用於列解碼器4403中且ColAddrA用於行多工器4405中以緩衝來自具有位址(RowAddrA,ColAddrA)之記憶體胞元的資料(例如,至圖44之「緩衝字」緩衝器)。在兩個記憶體時脈循環中之第二記憶體時脈循環上,RowAddrB用於列解碼器4403中且ColAddrB用於行多工器4405中以緩衝來自具有位址(RowAddrB,ColAddrB)之記憶體胞元的資料。因此,電路系統4400可允許對儲存於兩個不同位址處之記憶體胞元上之資料(例如,DataA及DataB)進行雙埠存取。如圖44中所描繪 之實施例可使用額外緩衝器,此係因為列解碼器4403啟動每一字線可能皆需要一個記憶體時脈循環。因此,若以至少兩倍於對應邏輯電路之速度進行時控,則使用電路系統4400之記憶體晶片可充當雙埠記憶體。
儘管在圖44中未描繪,但電路系統4400可進一步包括沿著列或字線之圖46(下文進一步描述)的額外電路系統及/或沿著行或位元線之類似額外電路系統。因此,電路系統4400可啟動對應電路系統(例如,藉由斷開一或多個開關元件,諸如圖46之開關元件4613a、4613b及其類似者中之一或多者)以啟動包括位址之斷開部分(例如,藉由連接電壓或允許電流流動至斷開部分)。因此,當電路系統之元件(諸如,線或其類似者)包括識別位址之位置時及/或當電路系統之元件(諸如,開關元件)控制至由位址識別之記憶體胞元的供應或電壓及/或電流時,該電路系統可「對應」。電路系統4400可接著使用列解碼器4403及行多工器4405以解碼對應字線及位元線,以自位於經啟動之斷開部分中之位址擷取資料或將資料寫入至該等位址。
如圖44中進一步所描繪,電路系統4400可進一步使用經組態以在單一時脈循環期間接收用於讀取或寫入之兩個位址的至少一個列多工器(描繪為與列解碼器4403分開,但可併入其中)及/或至少一個行多工器(例如,描繪為與行多工器4405分開,但可併入其中)。因此,實施例可使用列解碼器(例如,列解碼器4403)及行解碼器(其可與行多工器4405分開或組合)以自兩個位址讀取或寫入至兩個位址。舉例而言,列解碼器及行解碼器可在記憶體時脈循環期間自至少一個列多工器或至少一個行多工器擷取兩個位址中之第一位址,且解碼對應於第一位址之字線及位元線。此外,列解碼器及行解碼器可在同一記憶體循環期間自至少一個列多工器或至少一個行多工器擷取兩個位址中之第二位址,且解碼對應於第二 位址之字線及位元線。
圖45A及圖45B描繪用於在單埠記憶體陣列或墊上提供雙埠功能性之現有複製技術。如圖45A中所展示,雙埠讀取可藉由跨越記憶體陣列或墊使資料之複本保持同步來提供。因此,可自記憶體執行個體之兩個複本執行讀取,如圖45A中所描繪。此外,如圖45B中所展示,雙埠寫入可藉由跨越記憶體陣列或墊複製所有寫入來提供。舉例而言,記憶體晶片可能需要使用記憶體晶片之邏輯電路重複地發送寫入命令,每一資料複本發送一個寫入命令。替代地,在一些實施例中,如圖45A中所展示,額外電路系統可允許使用記憶體執行個體之邏輯電路發送單寫入命令,單寫入命令由額外電路系統自動地複製以跨越記憶體陣列或墊產生寫入資料之複本,以便使複本保持同步。圖42、圖43及圖44之實施例可藉由使用多工器在單一記憶體時脈循環中存取兩條位元線(例如,如圖42中所描繪)及/或藉由比對應邏輯電路更快地時控記憶體(例如,如圖43及圖44中所描繪)及提供額外多工器以處置額外位址而非複製記憶體中之所有資料來縮減來自此等現有複製技術之冗餘。
除上文所描述之更快時控及/或額外多工器以外,本發明之實施例亦可使用在記憶體陣列內之一些點處斷開位元線及/或字線的電路系統。此等實施例可允許對陣列之多個同時存取,只要列解碼器及行解碼器存取不耦接至斷開電路系統之相同部分的不同位置即可。舉例而言,可同時存取具有不同字線及位元線之位置,此係因為斷開電路系統可允許列及行解碼存取不同位址而無電干擾。在設計記憶體晶片期間,可權衡記憶體陣列內之斷開區的粒度與斷開電路系統所需之額外區域。
用於實施此同時存取之架構描繪於圖46中。特定而言,圖46描繪在單埠記憶體陣列或墊上提供雙埠功能性之電路系統4600的實施 例。如圖46中所描繪,電路系統4600可包括沿著至少一列及至少一行配置之複數個記憶體墊(例如,記憶體墊4609a、墊4609b及其類似者)。電路系統4600之佈局進一步包括複數條字線,諸如對應於列之字線4611a及4611b,以及對應於行之位元線4615a及4615b。
圖46所繪示之實施例包括十二個記憶體墊,每一記憶體墊具有兩條線及八個行。在其他實施例中,基板可包括任何數目個記憶體墊,且每一記憶體墊可包括任何數目條線及任何數目個行。一些記憶體墊可包括相同數目個線及行(如圖46中所展示),而其他記憶體墊可包括不同數目個線及/或行。
儘管在圖46中未描繪,但電路系統4600可進一步使用經組態以在單一時脈循環期間接收用於讀取或寫入之兩個(或三個或任何複數個)位址的至少一個列多工器(與列解碼器4601a及/或4601b分開或與該列解碼器合併)或至少一個行多工器(例如,行多工器4603a及/或4603b)。此外,實施例可使用列解碼器(例如,列解碼器4601a及/或4601b)及行解碼器(其可與行多工器4603a及/或4603b分開或組合)以自兩個(或多於兩個)位址讀取或寫入至兩個(或多於兩個)位址。舉例而言,列解碼器及行解碼器可在記憶體時脈循環期間自至少一個列多工器或至少一個行多工器擷取兩個位址中之第一位址,且解碼對應於第一位址之字線及位元線。此外,列解碼器及行解碼器可在同一記憶體循環期間自至少一個列多工器或至少一個行多工器擷取兩個位址中之第二位址,且解碼對應於第二位址之字線及位元線。如上文所解釋,只要兩個位址處於不耦接至斷開電路系統(例如,開關元件,諸如4613a、4613b及其類似者)之相同部分的不同位置中,便可在同一記憶體時脈循環期間進行存取。另外,電路系統4600可在第一記憶體時脈循環期間同時存取前兩個位址,且接著在第二記 憶體時脈循環期間同時存取接下來兩個位址。在此等實施例中,若以至少兩倍於對應邏輯電路之速度進行時控,則使用電路系統4600之記憶體晶片可充當四埠記憶體。
圖46進一步包括經組態以充當開關之至少一個列電路及至少一個行電路。舉例而言,諸如4613a、4613b及其類似者之對應開關元件可包含電晶體或任何其他電元件,其經組態以允許或停止電流流動及/或連接或斷開電壓與連接至諸如4613a、4613b及其類似者之開關元件的字線或位元線。因此,對應開關元件可將電路系統4600分成斷開部分。儘管描繪為包含單一列且每一列包含十六行,但電路系統4600內之斷開區可取決於電路系統4600之設計而包括不同粒度等級。
電路系統4600可使用控制器(例如,列控制件4607)以啟動至少一個列電路及至少一個行電路中之對應者,以便在上文所描述之位址操作期間啟動對應斷開區。舉例而言,電路系統4600可傳輸一或多個控制信號以閉合開關元件(例如,開關元件4613a、4613b及其類似者)中之對應者。在開關元件4613a、4613b及其類似者包含電晶體之實施例中,控制信號可包含斷開電晶體之電壓。
取決於包括位址之斷開區,可由電路系統4600啟動開關元件中之多於一者。舉例而言,為到達圖46之記憶體墊4609b內的位址,必須斷開允許存取記憶體墊4609a之開關元件以及允許存取記憶體墊4609b之開關元件。列控制件4607可判定要啟動之開關元件,以便根據特定位址擷取電路系統4600內之特定位址。
圖46表示用以劃分記憶體陣列(例如,包含記憶體墊4609a、墊4609b及其類似者)之字線的電路系統4600之實施例。然而,其他實施例可使用類似電路系統(例如,將記憶體晶片4600分成斷開區之 開關元件)以劃分記憶體陣列之位元線。因此,電路系統4600之架構可用於雙行存取(如圖42或圖44中所描繪之情況)以及雙列存取(如圖43或圖44中所描繪之情況)中。
用於對記憶體陣列或墊進行多循環存取的處理程序描繪於圖47A中。特定而言,圖47A為用於在單埠記憶體陣列或墊上提供雙埠存取(例如,使用圖43之電路系統4300或圖44之電路系統4400)之處理程序4700的實施例之流程圖,可使用符合本發明之列解碼器及行解碼器執行處理程序4700,諸如分別圖43或圖44之列解碼器4303或4403,及行解碼器(其可與一或多個行多工器分開或組合,諸如分別描繪於圖43或圖44中之行多工器4305或4405)。
在步驟4710處,在第一記憶體時脈循環期間,該電路系統可使用至少一個列多工器及至少一個行多工器以解碼對應於兩個位址中之第一位址的字線及位元線。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可放大來自沿著經啟動的字線並對應於第一位址之記憶體胞元的電壓。可將經放大電壓提供至使用包括該電路系統之記憶體晶片的邏輯電路,或根據下文所描述之步驟4720緩衝經放大電壓。該等邏輯電路可包含諸如GPU或CPU之電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。
儘管上文描述為讀取操作,但方法4700可類似地處理寫入操作。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可將電壓施加至沿著經啟動的字線並對應於第一位址之記憶體胞元,以將新資料寫入至該記憶體胞元。在一些實施例中,該電路系統可將對寫入之確認提供至使用包括該電路系統之記憶體晶片的邏輯電路,或根據下文步驟4720緩衝該確認。
在步驟4720處,該電路系統可緩衝第一位址之所擷取資料。舉例而言,如圖43及圖44中所描繪,緩衝器可允許電路系統擷取兩個位址中之第二位址(如下文描述於步驟4730中)且將兩次擷取之結果一起傳回。緩衝器可包含暫存器、SRAM、非揮發性記憶體或任何其他資料儲存裝置。
在步驟4730處,在第二記憶體時脈循環期間,該電路系統可使用至少一個列多工器及至少一個行多工器以解碼對應於兩個位址中之第二位址的字線及位元線。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可放大來自沿著經啟動的字線並對應於第二位址之記憶體胞元的電壓。可將經放大電壓提供至使用包括該電路系統之記憶體晶片的邏輯電路,無論係個別地抑或連同例如來自步驟4720之經緩衝電壓一起。該等邏輯電路可包含諸如GPU或CPU之電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。
儘管上文描述為讀取操作,但方法4700可類似地處理寫入操作。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可將電壓施加至沿著經啟動的字線並對應於第二位址之記憶體胞元,以將新資料寫入至該記憶體胞元。在一些實施例中,該電路系統可將對寫入之確認提供至使用包括該電路系統之記憶體晶片的邏輯電路,無論係個別地抑或連同例如來自步驟4720之經緩衝電壓一起。
在步驟4740處,該電路系統可輸出第二位址與經緩衝第一位址之所擷取資料。舉例而言,如圖43及圖44中所描繪,該電路系統可將兩次擷取之結果(例如,來自步驟4710及4730)一起傳回。該電路系統可將結果傳回至使用包括該電路系統之記憶體晶片的邏輯電路,該邏輯電路可包含諸如GPU或CPU之電路,或可包含與記憶體晶片在同一基板上 之處理群組,例如,如圖7A中所描繪。
儘管參考多個循環進行描述,但若兩個位址共用一字線,如圖42中所描繪,則方法4700可允許對兩個位址之單循環存取。舉例而言,步驟4710及4730可在同一記憶體時脈循環期間進行,此係因為多個行多工器可在同一記憶體時脈循環期間解碼同一字線上之不同位元線。在此等實施例中,可跳過緩衝步驟4720。
用於同時存取(例如,使用上文所描述之電路系統4600)之處理程序描繪於圖47B中。因此,儘管依序地展示,圖47B之步驟可全部在同一記憶體時脈循環期間進行,且可同時執行至少一些步驟(例如,步驟4760與4780或步驟4770與4790)。特定而言,圖47B為用於在單埠記憶體陣列或墊上提供雙埠存取(例如,使用圖42之電路系統4200或圖46之電路系統4600)的處理程序4750之實施例的流程圖,可使用符合本發明之列解碼器及行解碼器執行處理程序4750,諸如分別圖42或圖46之列解碼器4203或列解碼器4601a及4601b,及行解碼器(其可與一或多個行多工器分開或組合,諸如分別描繪於圖42或圖46中之行多工器4205a及4205b或行多工器4603a及4306b)。
在步驟4760處,在一記憶體時脈循環期間,該電路系統可基於兩個位址中之第一位址啟動至少一個列電路及至少一個行電路中之對應者。舉例而言,該電路系統可傳輸一或多個控制信號以閉合包含至少一個列電路及至少一個行電路之開關元件中之對應者。因此,該電路系統可存取包括兩個位址中之第一位址的對應斷開區。
在步驟4770處,在該記憶體時脈循環期間,該電路系統可使用至少一個列多工器及至少一個行多工器以解碼對應於第一位址之字線及位元線。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工 器可放大來自沿著經啟動的字線並對應於第一位址之記憶體胞元的電壓。可將經放大電壓提供至使用包括該電路系統之記憶體晶片的邏輯電路。舉例而言,如上文所描述,該等邏輯電路可包含諸如GPU或CPU之電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。
儘管上文描述為讀取操作,但方法4500可類似地處理寫入操作。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可將電壓施加至沿著經啟動的字線並對應於第一位址之記憶體胞元,以將新資料寫入至該記憶體胞元。在一些實施例中,該電路系統可將對寫入之確認提供至使用包括該電路系統之記憶體晶片的邏輯電路。
在步驟4780處,在同一循環期間,該電路系統可基於兩個位址中之第二位址啟動至少一個列電路及至少一個行電路中之對應者。舉例而言,該電路系統可傳輸一或多個控制信號以閉合包含至少一個列電路及至少一個行電路之開關元件中之對應者。因此,該電路系統可存取包括兩個位址中之第二位址的對應斷開區。
在步驟4790處,在同一循環期間,該電路系統可使用至少一個列多工器及至少一個行多工器以解碼對應於第二位址之字線及位元線。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可放大來自沿著經啟動的字線並對應於第二位址之記憶體胞元的電壓。可將經放大電壓提供至使用包括該電路系統之記憶體晶片的邏輯電路。舉例而言,如上文所描述,該等邏輯電路可包含諸如GPU或CPU之習知電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。
儘管上文描述為讀取操作,但方法4500可類似地處理寫入操作。舉例而言,至少一個列解碼器可啟動字線,且至少一個行多工器可將電壓施加至沿著經啟動的字線並對應於第二位址之記憶體胞元,以將新 資料寫入至該記憶體胞元。在一些實施例中,該電路系統可將對寫入之確認提供至使用包括該電路系統之記憶體晶片的邏輯電路。
儘管參考單一循環進行描述,但若兩個位址處於共用字線或位元線(或以其他方式共用至少一個列電路及至少一個行電路中之開關元件)之斷開區中,則方法4500可允許對兩個位址之多循環存取。舉例而言,步驟4760及4770可在第一記憶體時脈循環期間進行,在該第一記憶體時脈循環中,第一列解碼器及第一行多工器可解碼對應於第一位址之字線及位元線,而步驟4780及4790可在第二記憶體時脈循環期間進行,在該第二記憶體時脈循環中,第二列解碼器及第二行多工器可解碼對應於第二位址之字線及位元線。
用於沿著列及行兩者之雙埠存取的架構之另一實施例描繪於圖48中。特定而言,圖48描繪使用多個列解碼器結合多個行多工器提供沿著列及行兩者之雙埠存取的電路系統4800之一實施例。在圖48中,列解碼器4801a可存取第一字線,且行多工器4803a可解碼來自沿著第一字線之一或多個記憶體胞元的資料,而列解碼器4801b可存取第二字線,且行多工器4803b可解碼來自沿著第二字線之一或多個記憶體胞元的資料。
如關於圖47B所描述,此存取可在一個記憶體時脈循環期間同時進行。因此,類似於圖46之架構,圖48之架構(包括下文描述於圖49中之記憶體墊)可允許在同一時脈循環中存取多個位址。舉例而言,圖48之架構可包括任何數目個列解碼器及任何數目個行多工器,使得對應於列解碼器及行多工器之數目的數目個位址可全部在單一記憶體時脈循環內存取。
在其他實施例中,此存取沿著兩個記憶體時脈循環可依序進行。藉由比對應邏輯電路更快地時控記憶體晶片4800,兩個記憶體時脈循 環可等效於使用記憶體之邏輯電路的一個時脈循環。舉例而言,如上文所描述,該等邏輯電路可包含諸如GPU或CPU之習知電路,或可包含與記憶體晶片在同一基板上之處理群組,例如,如圖7A中所描繪。
其他實施例可允許同時存取。舉例而言,如關於圖42所描述,多個行解碼器(其可包含行多工器,諸如4803a及4803b,如圖48中所展示)可在單一記憶體時脈循環期間讀取沿著同一字線之多條位元線。另外或替代地,如關於圖46所描述,電路系統4800可併有額外電路系統使得此存取可為同時的。舉例而言,列解碼器4801a可存取第一字線,且行多工器4803a可在同一記憶體時脈循環期間解碼來自沿著第一字線之一記憶體胞元的資料,在該記憶體時脈循環中,列解碼器4801b存取第二字線,且行多工器4803b解碼來自沿著第二字線之一記憶體胞元的資料。
圖48之架構可與形成記憶體組之經修改記憶體墊一起使用,如圖49中所展示。在圖49中,藉由兩條字線及兩條位元線存取每一記憶體胞元(描繪為類似於DRAM之電容器,但亦可包含以類似於SRAM或任何其他記憶體胞元之方式配置的數個電晶體)。因此,圖49之記憶體墊4900允許藉由兩個不同邏輯電路同時存取兩個不同位元,或甚至存取同一位元。然而,圖49之實施例使用對記憶體墊之修改而非在標準DRAM記憶體墊上實施雙埠解決方案,該等記憶體墊經線連接以用於單埠存取,如上文實施例一般。
儘管描述為具有兩個埠,但上文所描述之實施例中之任一者可擴展至多於兩個埠。舉例而言,圖42、圖46、圖48及圖49之實施例可分別包括額外的行多工器或列多工器,以在單一時脈循環期間提供對額外行或列之存取。作為另一實施例,圖43及圖44之實施例可包括額外的列解碼器及/或行多工器,以在單一時脈循環期間分別提供對額外列或行之存 取。
記憶體中之可變字長存取
如上文及及下文進一步所使用,術語「耦接」可包括直接連接、間接連接、電通信及其類似者。
此外,如「第一」、「第二」及其類似者之術語用以區分具有相同或類似名稱或標題之元件或方法步驟,且未必指示空間或時間次序。
通常,記憶體晶片可包括記憶體組。記憶體組可耦接至列解碼器及行解碼器,該等解碼器經組態以選擇待讀取或寫入之特定字(或其他固定大小之資料單元)。每一記憶體組可包括用以儲存資料單元之記憶體胞元、用以放大來自藉由列解碼器及行解碼器選擇之記憶體胞元的電壓,及任何其他適當電路。
每一記憶體組通常具有特定I/O寬度。舉例而言,I/O寬度可包含字。
雖然由使用記憶體晶片之邏輯電路執行的一些處理程序可受益於使用極長字,但一些其他處理程序可僅需要該字之一部分。
實際上,記憶體內演算單元(諸如,與記憶體晶片安置於同一基板上之處理器子單元,例如,如圖7A中所描繪及描述)頻繁地執行僅需要該字之一部分的記憶體存取操作。
為了縮減在僅使用一部分時與存取整個字相關聯之潛時,本發明之實施例可提供用於僅取得一字之一或多個部分的方法及系統,藉此縮減與傳送該字之不需要部分相關聯的資料損失且允許記憶體裝置中之功率節省。
此外,本發明之實施例亦可縮減記憶體晶片與其他實體(諸如,邏輯電路,無論係分開的,如CPU及GPU,抑或與記憶體晶片包括於 同一基板上,諸如圖7A中所描繪及描述之處理器子單元)之間的相互作用之功率消耗,該等其他實體存取記憶體晶片,其可僅接收或寫入該字之一部分。
記憶體存取命令(例如,來自使用記憶體之邏輯電路)可包括記憶體中之位址。舉例而言,該位址可包括列位址及行位址,或可例如藉由記憶體之記憶體控制器轉移成列位址及行位址。
在諸如DRAM的許多揮發性記憶體中,將列位址發送(例如,直接由邏輯電路或使用記憶體控制器)至列解碼器,該列解碼器啟動整個列(亦被稱作字線)且載入包括於該列中之所有位元線。
該行位址識別經啟動列上之位元線,其在包括位元線之記憶體組外部轉送且傳送至下一層級電路系統。舉例而言,下一層級電路系統可包含記憶體晶片之I/O匯流排。在使用記憶體內處理之實施例中,下一層級電路系統可包含記憶體晶片之處理器子單元(例如,如圖7A中所描繪)。
因此,下文所描述之記憶體晶片可包括於如圖3A、圖3B、圖4至圖6、圖7A至圖7D、圖11至圖13、圖16至圖19、圖22或圖23中之任一者中所說明的記憶體晶片中,或以其他方式包含該記憶體晶片。
該記憶體晶片可藉由針對記憶體胞元而非邏輯胞元最佳化之第一製造處理程序來製造。舉例而言,由第一製造處理程序製造之記憶體胞元可展現比由第一製造處理程序製造之邏輯電路之臨界尺寸小的臨界尺寸(例如,小超過2倍、3倍、4倍、5倍、6倍、7倍、8倍、9倍、10倍及其類似者)。舉例而言,第一製造處理程序可包含類比製造處理程序、DRAM製造處理程序及其類似者。
此記憶體晶片可包含積體電路,該積體電路可包括記憶體單元。該記憶體單元可包括記憶體胞元、輸出埠及讀取電路系統。在一些實 施例中,該記憶體單元可進一步包括處理單元,諸如,如上文所描述之處理器子單元。
舉例而言,該讀取電路系統可包括縮減單元及記憶體內讀取路徑之第一群組,該等記憶體內讀取路徑用於經由輸出埠輸出多達第一數目個位元。該輸出埠可連接至晶片外邏輯電路(諸如,加速器、CPU、GPU或其類似者)或晶載處理器子單元,如上文所描述。
在一些實施例中,該處理單元可包括縮減單元,可為縮減單元之部分,可不同於縮減單元,或可以其他方式包含縮減單元。
記憶體內讀取路徑可包含於積體電路中(例如,可在記憶體單元中),且可包括經組態用於自記憶體胞元讀取及/或寫入至記憶體胞元之任何電路及/或鏈路。舉例而言,記憶體內讀取路徑可包括感測放大器、耦接至記憶體胞元之導體、多工器及其類似者。
該處理單元可經組態以將一讀取請求發送至該記憶體單元以自該記憶體單元讀取第二數目個位元。另外或替代地,該讀取請求可源自晶片外邏輯電路(諸如,加速器、CPU、GPU或其類似者)。
該縮減單元可經組態以例如藉由使用本文中所描述之部分字存取中之任一者來輔助縮減與存取請求相關之功率消耗。
該縮減單元可經組態以在由該讀取請求觸發之讀取操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內讀取路徑。舉例而言,來自縮減單元之控制信號可影響讀取路徑之記憶體消耗,以縮減與所請求之第二數目個位元不相關的記憶體讀取路徑之能量消耗。舉例而言,該縮減單元可經組態以在第二數目小於第一數目時控制不相關的記憶體讀取路徑。
如上文所解釋,該積體電路可包括於如圖3A、圖3B、圖4 至圖6、圖7A至圖7D、圖11至圖13、圖16至圖19、圖22或圖23中之任一者中所說明的記憶體晶片中,可包括該記憶體晶片或以其他方式包含該記憶體晶片。
不相關的記憶體內讀取路徑可與第一數目個位元中之不相關的位元相關,諸如第一數目個位元中之不包括於第二數目個位元中的位元。
圖50說明本發明之一實施例中之積體電路5000,其包括:記憶體胞元陣列5050中之記憶體胞元5001至5008;輸出埠5020,其包括位元5021至5028;讀取電路系統5040,其包括記憶體讀取路徑5011至5018;及縮減單元5030。
當使用對應的記憶體讀取路徑讀取第二數目個位元時,第一數目個位元中之不相關位元可對應於不應讀取之位元(例如,不包括於第二數目個位元中之位元)。
在讀取操作期間,縮減單元5030可經組態以啟動對應於第二數目個位元之記憶體讀取路徑,使得經啟動之記憶體讀取路徑可經組態以輸送第二數目個位元。在此等實施例中,可僅啟動對應於第二數目個位元之記憶體讀取路徑。
在讀取操作期間,縮減單元5030可經組態以切斷每一不相關的記憶體讀取路徑之至少一部分。舉例而言,不相關的記憶體讀取路徑可對應於第一數目個位元中之不相關位元。
應注意,替代切斷不相關的記憶體路徑之至少一部分,縮減單元5030可替代地保證不啟動不相關的記憶體路徑。
另外或替代地,在讀取操作期間,縮減單元5030可經組態以將不相關的記憶體讀取路徑維持於低功率模式中。舉例而言,低功率模 式可包含分別向不相關的記憶體路徑供應低於正常工作電壓或電流之電壓或電流。
縮減單元5030可經進一步組態以控制不相關的記憶體讀取路徑之位元線。
因此,縮減單元5030可經組態以載入相關的記憶體讀取路徑之位元線,且將不相關的記憶體讀取路徑之位元線維持於低功率模式下。舉例而言,僅可載入相關的記憶體讀取路徑之位元線。
另外或替代地,縮減單元5030可經組態以載入相關的記憶體讀取路徑之位元線,同時將不相關的記憶體讀取路徑之位元線維持為撤銷啟動。
在一些實施例中,縮減單元5030可經組態以在讀取操作期間利用相關的記憶體讀取路徑之部分,且將每一不相關的記憶體讀取路徑之一部分維持於低功率模式下,其中該部分不同於位元線。
如上文所解釋,記憶體晶片可使用感測放大器以放大來自包括於記憶體晶片中之記憶體胞元的電壓。因此,縮減單元5030可經組態以在讀取操作期間利用相關的記憶體讀取路徑之部分,且將與不相關的記憶體讀取路徑中之至少一些讀取路徑相關聯的感測放大器維持於低功率模式下。
在此等實施例中,縮減單元5030可經組態以在讀取操作期間利用相關的記憶體讀取路徑之部分,且將與所有不相關的記憶體讀取路徑相關聯之一或多個感測放大器維持於低功率模式下。
另外或替代地,縮減單元5030可經組態以在讀取操作期間利用相關的記憶體讀取路徑之部分,且將在與不相關的記憶體讀取路徑相關聯之一或多個感測放大器之後(例如,在空間上及/或在時間上)的不相 關的記憶體讀取路徑之部分維持於低功率模式下。
在上文所描述之實施例中之任一者中,該記憶體單元可包括行多工器(未圖示)。
在此等實施例中,縮減單元5030可耦接於行多工器與輸出埠之間。
另外或替代地,縮減單元5030可嵌入於行多工器中。
另外或替代地,縮減單元5030可耦接於記憶體胞元與行多工器之間。
縮減單元5030可包含可為可獨立控制之縮減子單元。舉例而言,不同的縮減子單元可與不同的記憶體單元行相關聯。
儘管上文關於讀取操作及讀取電路系統進行描述,但上文實施例可類似地應用於寫入操作及寫入電路系統。
舉例而言,根據本發明之積體電路可包括記憶體單元,該記憶體單元包含記憶體胞元、輸出埠及寫入電路系統。在一些實施例中,該記憶體單元可進一步包括處理單元,諸如,如上文所描述之處理器子單元。該寫入電路系統可包括縮減單元及記憶體內寫入路徑之第一群組,該等記憶體內寫入路徑用於經由輸出埠輸出多達第一數目個位元。該處理單元可經組態以將一寫入請求發送至該記憶體單元以寫入來自該記憶體單元之第二數目個位元。另外或替代地,該寫入請求可源自晶片外邏輯電路(諸如,加速器、CPU、GPU或其類似者)。縮減單元5030可經組態以在由該寫入請求觸發之寫入操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體寫入路徑。
圖51說明記憶體組5100,該記憶體組包括使用列位址及行位址(例如,來自晶載處理器子單元或晶片外邏輯電路,諸如加速器、CPU、 GPU或其類似者)來定址之記憶體胞元的陣列5111。如圖51中所展示,記憶體胞元饋接至位元線(豎直)及字線(水平,為簡單起見省略許多字線)。此外,列解碼器5112可饋入有列位址(例如,來自晶載處理器子單元、晶片外邏輯電路,或圖51中未展示之記憶體控制器),行多工器5113可饋入有行位址(例如,來自晶載處理器子單元、晶片外邏輯電路,或圖51中未展示之記憶體控制器),且行多工器5113可經由輸出匯流排5115接收來自多達整個線之輸出及多達一字之輸出。在圖51中,行多工器5113之輸出匯流排5115耦接至主I/O匯流排5114。在其他實施例中,輸出匯流排5115可耦接至記憶體晶片(例如,如圖7A中所描繪)之發送列位址及行位址的處理器子單元。為簡單起見,未展示將記憶體組分成記憶體墊。
圖52說明記憶體組5101。在圖52中,記憶體組亦說明為包括記憶體內處理(PIM)邏輯5116,該邏輯具有耦接至輸出匯流排5115之輸入端。PIM邏輯5116可產生位址(例如,包含列位址及行位址)且經由PIM位址匯流排5118輸出位址以存取記憶體組。PIM邏輯5116為亦包含處理單元之縮減單元(例如,單元5030)的實施例。PIM邏輯5016可控制圖52未展示之輔助縮減功率的其他電路。PIM邏輯5116可進一步控制包括記憶體組5101之記憶體單元的記憶體路徑。
如上文所解釋,在一些狀況下,字長(例如,選擇一次傳送之位元線之數目)可為大的。
在彼等狀況下,用於讀取及/或寫入之每一字可與可在讀取及/或寫入操作之各種階段消耗功率的記憶體路徑相關聯,例如:
a.載入位元線一為了將位元線載入至所需值(在讀取循環中自位元線上之電容器,抑或在寫入循環中待寫入至電容器之新值),需要停用位於記憶體陣列之末端處的感測放大器且確保保存資料之電容器不放電或充電 (否則,儲存於其上之資料將被破壞);及
b.經由選擇位元線之行多工器將來自感測放大器之資料移動至晶片之其餘部分(移動至將資料傳入及傳出晶片之I/O匯流排或移動至將使用資料之嵌入式邏輯,諸如與記憶體在同一基板上之處理器子單元)。
為了達成功率節省,本發明之積體電路可在列啟動時間判定一字之一些部分為不相關的且接著針對該字之該等不相關的部分將停用信號發送至一或多個感測放大器。
圖53說明記憶體單元5102,該記憶體單元包括記憶體胞元陣列5111、列解碼器5112、耦接至輸出匯流排5115之行多工器5113,及PIM邏輯5116。
記憶體單元5102亦包括啟用或停用位元至行多工器5113之通道的開關5201。開關5201可包含類比開關、經組態以充當開關之電晶體,經組態以控制至記憶體單元5102之部分的供應或電壓及/或電流流動。感測放大器(未圖示)可位於記憶體胞元陣列之末端處,例如,在開關5201之前(在空間上及/或在時間上)。
開關5201可由自PIM邏輯5116經由匯流排5117發送之啟用信號控制。當斷開時,該等開關經組態以斷開記憶體單元5102之感測放大器(未圖示),且因此不對與感測放大器斷開之位元線放電或充電。
開關5201及PIM邏輯5116可形成縮減單元(例如,縮減單元5030)。
在又一實施例中,PIM邏輯5116可將啟用信號發送至感測放大器(例如,當感測放大器具有啟用輸入時)而非發送至開關5201。
位元線可另外或替代地在其他點處斷開,例如,不在位元線之末端處及在感測放大器之後斷開。舉例而言,位元線可在進入陣列5111 之前斷開。
在此等實施例中,在自感測放大器及轉送硬體(諸如,輸出匯流排5115)之資料傳送上,亦可節省功率。
其他實施例(其可節省較少功率,但可較容易實施)聚焦於節省行多工器5113之功率且將損失自行多工器5113轉移至下一層級電路系統。舉例而言,如上文所解釋,下一層級電路系統可包含記憶體晶片之I/O匯流排(諸如,匯流排5115)。在使用記憶體內處理之實施例中,下一層級電路系統可另外或替代地包含記憶體晶片之處理器子單元(諸如,PIM邏輯5116)。
圖54A說明分段為區段5202之行多工器5113。行多工器5113之每一區段5202可藉由自PIM邏輯5116經由匯流排5119發送之啟用及/或停用信號來個別地啟用或停用。行多工器5113亦可由位址行匯流排5118饋入。
圖54A之實施例可提供對來自行多工器5113之輸出之不同部分的較佳控制。
應注意,對不同記憶體路徑之控制可具有不同解析度,例如範圍為自一位元解析度至多位元解析度。前者在功率節省之意義上可能更有效。後者之實施可能較簡單且需要較少控制信號。
圖54B說明方法5130之實施例。舉例而言,可使用上文關於圖50、圖51、圖52、圖53或圖54A所描述之記憶體單元中之任一者來實施方法5130。
方法5130可包括步驟5132及5134。
步驟5132可包括:藉由積體電路之處理單元(例如,PIM邏輯5116)將存取請求發送至積體電路之記憶體單元以自該記憶體單元讀 取第二數目個位元。該記憶體單元可包括記憶體胞元(例如,陣列5111之記憶體胞元)、輸出埠(例如,輸出匯流排5115),及讀取/寫入電路系統,該讀取/寫入電路系統可包括縮減單元(例如,縮減單元5030)及記憶體讀取/寫入路徑之第一群組,該等記憶體讀取/寫入路徑用於經由輸出埠輸出及/或輸入多達第一數目個位元。
存取請求可包含讀取請求及/或寫入請求。
記憶體輸入/輸出路徑可包含記憶體讀取路徑、記憶體寫入路徑及/或用於讀取及寫入兩者之路徑。
步驟5134可包括對存取請求作出回應。
舉例而言,步驟5134可包括在由存取請求觸發之存取操作期間藉由縮減單元(例如,單元5030)基於第一數目個位元及第二數目個位元而控制記憶體讀取/寫入路徑。
步驟5134可進一步包括以下操作中之任一者及/或以下操作中之任一者的任何組合。下文列出之操作中的任一者可在對存取請求作出回應期間執行,但亦可在對存取請求作出回應之前及/或之後執行。
因此,步驟5134可包含以下操作中之至少一者:
a.在第二數目小於第一數目時控制不相關的記憶體讀取路徑,其中不相關的記憶體讀取路徑與第一數目個位元中之不包括於第二數目個位元中的位元相關聯;
b.在讀取操作期間啟動相關的記憶體讀取路徑,其中相關的記憶體讀取路徑經組態以輸送第二數目個位元;
c.在讀取操作期間切斷不相關的記憶體讀取路徑中之每一者的至少一部分;
d.在讀取操作期間將不相關的記憶體讀取路徑維持於低功率模式 中;
e.控制不相關的記憶體讀取路徑之位元線;
f.載入相關的記憶體讀取路徑之位元線且將不相關的記憶體讀取路徑之位元線維持於低功率模式中;
g.載入相關的記憶體讀取路徑之位元線,同時將不相關的記憶體讀取路徑之位元線維持為撤銷啟動;
h.在讀取操作期間利用相關的記憶體讀取路徑之部分且將每一不相關的記憶體讀取路徑之一部分維持於低功率模式中,其中該部分不同於位元線;
i.在讀取操作期間利用相關的記憶體讀取路徑之部分且將用於不相關的記憶體讀取路徑中之至少一些讀取路徑的感測放大器維持於低功率模式中;
j.在讀取操作期間利用相關的記憶體讀取路徑之部分且將不相關的記憶體讀取路徑中之至少一些讀取路徑的感測放大器維持於低功率模式中;及
k.在讀取操作期間利用相關的記憶體讀取路徑之部分且將在不相關的記憶體讀取路徑之感測放大器之後的不相關的記憶體讀取路徑維持於低功率模式中。
低功率模式或閒置模式可包含記憶體存取路徑之功率消耗低於在記憶體存取路徑用於存取操作時記憶體存取路徑之功率消耗的模式。在一些實施例中,低功率模式可甚至涉及切斷記憶體存取路徑。低功率模式可另外或替代地包括不啟動記憶體存取路徑。
應注意,在位元線階段期間發生的功率縮減可能需要在開放字線之前應知曉記憶體存取路徑之相關性或不相關性。在別處發生(例如, 在行多工器中)之功率縮減可替代地允許在每次存取時決定記憶體存取路徑之相關性或不相關性。
快速及低功率啟動以及快速存取記憶體
DRAM及其他記憶體類型(諸如,SRAM、快閃記憶體或其類似者)常常自記憶體組建置,該等記憶體組通常建置為允許列及行存取方案。
圖55說明記憶體晶片5140之實施例,該記憶體晶片包括多個記憶體墊及相關聯邏輯(諸如,列及行解碼器,在圖55中分別描繪為RD及COL)。在圖55之實施例中,墊被分組成組且具有通過其的字線及位元線。記憶體墊及相關聯邏輯在圖55中標明為5141、5142、5143、5144、5145及5146,且共用至少一個匯流排5147。
記憶體晶片5140可包括於如圖3A、圖3B、圖4至圖6、圖7A至圖7D、圖11至圖13、圖16至圖19、圖22或圖23中之任一者中所說明的記憶體晶片中,可包括該記憶體晶片或以其他方式包含該記憶體晶片。
舉例而言,在DRAM中,與啟動新列(例如,準備用於存取之新線)相關聯的開銷很大。一旦一線經啟動(亦被稱作開放),彼列內之資料便可用於更快存取。在DRAM中,此存取可能以隨機方式進行。
與啟動新線相關聯之兩個問題為功率及時間:
a.由於一起存取該線上之所有電容器及必須載入該線所導致的電流驟增,功率會上升(例如,當開放僅具有幾個記憶體組之線時,功率可達到若干安培);及
b.時間延遲問題主要與載入列(字)線及接著載入位元(行)線所花費之時間相關聯。
本發明之一些實施例可包括用以在啟動線期間縮減峰值功率消耗且縮減線啟動時間之系統及方法。一些實施例可至少在一定程度上犧牲一線內之完全隨機存取,以縮減此等功率及時間成本。
舉例而言,在一個實施例中,記憶體單元可包括第一記憶體墊、第二記憶體墊及啟動單元,該啟動單元經組態以啟動包括於第一記憶體墊中之記憶體胞元的第一群組,而不啟動包括於第二記憶體墊中之記憶體胞元的第二群組。記憶體胞元之該第一群組及記憶體胞元之該第二群組可皆屬於該記憶體單元之一單一列。
替代地,該啟動單元可經組態以啟動包括於第二記憶體墊中之記憶體胞元的第二群組,而不啟動記憶體胞元之第一群組。
在一些實施例中,該啟動單元可經組態以在啟動記憶體胞元之第一群組之後啟動記憶體胞元之第二群組。
舉例而言,該啟動單元可經組態以在記憶體胞元之第一群組的啟動已完成之後起始的延遲時段期滿之後啟動記憶體胞元之第二群組。
另外或替代地,該啟動單元可經組態以基於信號之值而啟動記憶體胞元之第二群組,該信號係在耦接至記憶體胞元之第一群組的第一字線區段上產生的。
在上文所描述之實施例中之任一者中,該啟動單元可包括安置於第一字線區段與第二字線區段之間的中間電路。在此等實施例中,第一字線區段可耦接至第一記憶體胞元且第二字線區段可耦接至第二記憶體胞元。中間電路之非限制性實施例包括開關、正反器、緩衝器、反相器及其類似者,其中之一些貫穿圖56至圖61加以說明。
在一些實施例中,第二記憶體胞元可耦接至第二字線區段。在此等實施例中,第二字線區段可耦接至通過至少第一記憶體墊之旁路字 線路徑。此類旁路路徑之實施例說明於圖61中。
該啟動單元可包含控制單元,該控制單元經組態以基於來自與單一列相關聯之字線的啟動信號而控制電壓(及/或電流)至記憶體胞元之第一群組及記憶體胞元之第二群組的供應。
在另一實施例中,記憶體單元可包括第一記憶體墊、第二記憶體墊及啟動單元,該啟動單元經組態以將啟動信號供應至第一記憶體墊之記憶體胞元之第一群組且延遲該啟動信號至第二記憶體墊之記憶體胞元之第二群組的供應,至少直至記憶體胞元之第一群組的啟動已完成。記憶體胞元之該第一群組及記憶體胞元之該第二群組可屬於該記憶體單元之一單一列。
舉例而言,該啟動單元可包括可經組態以延遲供應啟動信號之延遲單元。
另外或替代地,該啟動單元可包括比較器,該比較器可經組態以在其輸入端處接收啟動信號且基於啟動信號之至少一個特性而控制延遲單元。
在另一實施例中,記憶體單元可包括第一記憶體墊、第二記憶體墊及隔離單元,該隔離單元可經組態以:在第一記憶體墊之第一記憶體胞元被啟動的初始啟動時段期間將該等第一記憶體胞元與第二記憶體墊之第二記憶體胞元相隔離;及在該初始啟動時段之後將該等第一記憶體胞元耦接至該等二記憶體胞元。第一記憶體胞元及第二記憶體胞元可屬於記憶體單元之單一列。
在以下實施例中,可能不需要對記憶體墊本身進行修改。在某些實例中,實施例可依賴於對記憶體組之少量修改。
以下圖式描繪縮短添加至記憶體組之字信號,藉此將字線分 裂成數個較短部分的機構。
在以下諸圖中,為了清楚起見省略各種記憶體組組件。
圖56至圖61說明記憶體組之部分(分別標明為5140(1)、5140(2)、5140(3)、5140(4)、5140(5)及5149(6)),該等部分包括分組於不同群組內之列解碼器5112及多個記憶體墊(諸如,5150(1)、5150(2)、5150(3)、5150(4)、5150(5)、5150(6)、5151(1)、5151(2)、5151(3)、5151(4)、5151(5)、5151(6)、5152(1)、5152(2)、5152(3)、5152(4)、5152(5)及5152(6))。
配置成一列之記憶體墊可包括不同群組。
圖56至圖59及圖61說明記憶體墊之九個群組,其中每一群組包括一對記憶體墊。可使用任何數目個群組,每一群組具有任何數目個記憶體墊。
記憶體墊5150(1)、5150(2)、5150(3)、5150(4)、5150(5)及5150(6)配置成一列,共用多條記憶體線,且分成三個群組:第一上部群組,其包括記憶體墊5150(1)及5150(2);第二上部群組,其包括記憶體墊5150(3)及5150(4);及第三上部群組,其包括記憶體墊5150(5)及5150(6)。
類似地,記憶體墊5151(1)、5151(2)、5151(3)、5151(4)、5151(5)及5151(6)配置成一列,共用多條記憶體線且分成三個群組:第一中間群組,其包括記憶體墊5151(1)及5151(2);第二中間群組,其包括記憶體墊5151(3)及5151(4);及第三中間群組,其包括記憶體墊5151(5)及5151(6)。
此外,記憶體墊5152(1)、5152(2)、5152(3)、5152(4)、5152(5)及5152(6)配置成一列,共用多條記憶體線且分組成三個群組:第一下部群組,其包括記憶體墊5152(1)及5152(2);第二下部群組,其包括記憶體墊5152(3)及5152(4);及第三下部群組,其包括記憶體墊5152(5)及5152(6)。 任何數目個記憶體墊可配置成一列並共用記憶體線,且可分成任何數目個群組。
舉例而言,每個群組之記憶體墊的數目可為一個、兩個或可超過兩個。
如上文所解釋,啟動電路可經組態以啟動記憶體墊之一個群組,而不啟動共用相同記憶體線或至少耦接至具有同一線位址之不同記憶體線區段的記憶體墊之另一群組。
圖56至圖61說明啟動電路之不同實例。在一些實施例中,啟動電路之至少一部分(諸如,中間電路)可位於記憶體墊群組之間,以允許啟動一個群組之記憶體墊,而不啟動同一列之記憶體墊的另一群組。
圖56說明如定位於記憶體之第一上部群組的不同線與記憶體墊之第二上部群組的不同線之間的中間電路,諸如延遲或隔離電路5153(1)至5153(3)。
圖56亦說明如定位於記憶體之第二上部群組的不同線與記憶體墊之第三上部群組的不同線之間的中間電路,諸如延遲或隔離電路5154(1)至5154(3)。另外,一些延遲或隔離電路定位於由中間群組之記憶體墊形成的群組之間。此外,一些延遲或隔離電路定位於由下部群組之記憶體墊形成的群組之間。
該等延遲或隔離電路可延遲或停止字線信號自列解碼器5112沿著一列傳播至另一群組。
圖57說明包含正反器(諸如,5155(1)至5155(3)及5156(1)至5156(3))之中間電路,諸如延遲或隔離電路。
當將啟動信號注入至字線時,啟動第一墊群組中之一者(取決於該字線),而沿著該字線之其他群組保持撤銷啟動。可在下一時脈循環 啟動其他群組。舉例而言,可在下一時脈循環啟動其他群組中之第二群組,且可在又一時脈循環之後啟動其他群組中之第三群組。
正反器可包括D型正反器或任何其他類型的正反器。為簡單起見,自圖式省略饋入至D型正反器的時脈。
因此,對第一群組的存取可使用電力以僅對與第一群組相關聯之字線的部分充電,此比對整條字線充電更快且需要更少電流。
可在記憶體墊群組之間使用多於一個正反器,藉此增加開放部分之間的延遲。另外或替代地,實施例可使用較慢時脈以增加延遲。
此外,經啟動之群組可仍含有來自所使用之先前線值的群組。舉例而言,該方法可允許啟動新的線區段,同時仍存取先前線之資料,藉此縮減與啟動新線相關聯之損失。
因此,一些實施例可具有經啟動之第一群組且允許先前啟動線之其他群組保持在作用中,其中位元線之信號彼此不干擾。
另外,一些實施例可包括開關及控制信號。該等控制信號可由組控制器控制或藉由在控制信號之間添加正反器(例如,產生上文所描述之機構具有的相同時序效應)來控制。
圖58說明諸如延遲或隔離電路之中間電路,其為開關(諸如,5157(1)至5157(3)及5158(1)至5158(3))且定位於另一群組的一群組之間。定位於群組之間的一組開關可由專用控制信號控制。在圖58中,控制信號可由列控制單元5160(1)發送且由不同組開關之間的一或多個延遲單元之序列(例如,單元5160(2)及5160(3))延遲。
圖59說明諸如延遲或隔離電路之中間電路,其為反相器閘或緩衝器(諸如,5159(1)至5159(3)及5159'1(0-5159'(3))之序列且定位於記憶體墊群組之間。
替代開關,可在記憶體墊群組之間使用緩衝器。緩衝器可能不允許開關之間沿著字線降低電壓,此為在使用單一電晶體結構時有時會發生的效應。
其他實施例可允許更多的隨機存取,且藉由使用添加至記憶體組之區域仍提供極低的啟動功率及時間。
圖60繪示一實施例,用以說明使用接近記憶體墊定位之全域字線(諸如,5152(1)至5152(8))。此等字線可能通過或可能不通過記憶體墊且經由諸如開關(諸如,5157(1)至5157(8))之中間電路耦接至記憶體墊內之字線。該等開關可控制將啟動哪一記憶體墊且允許記憶體控制器在每一時間點處僅啟動相關線部分。不同於上文所描述之使用線部分之依序啟動的實施例,圖60之實施例可提供更好的控制。
諸如列部分啟用信號5170(1)及7150(2)之啟用信號可源自未展示之邏輯,諸如記憶體控制器。
圖61說明全域字線5180通過記憶體墊且形成用於可能不需要在墊外部投送之字線信號的旁路路徑。因此,圖61中所展示之實施例可以一些記憶體密度為代價來縮減記憶體組之面積。
在圖61中,全域世界線可不間斷地通過記憶體墊且可能不連接至記憶體胞元。區域字線區段可由開關中之一者控制且連接至墊中之記憶體胞元。
當記憶體墊群組提供字線之實質分割區時,記憶體組可實際上支援完全隨機存取。
用於減緩啟動信號沿著字線之散佈的另一實施例亦可節省一些佈線及邏輯,在記憶體墊之間使用開關及/或其他緩衝或隔離電路,而不使用專用啟用信號及專用線來輸送啟用信號。
舉例而言,比較器可用以控制開關或其他緩衝或隔離電路。當由比較器監測之字線區段上的信號之位準達到某一位準時,比較器可啟動開關或其他緩衝或隔離電路。舉例而言,某一位準可指示完全載入先前字線區段。
圖62說明用於操作記憶體單元之方法5190。舉例而言,可使用上文關於圖56至圖61所描述之記憶體組中之任一者來實施方法5130。
方法5190可包括步驟5192及5194。
步驟5192可包括藉由啟動單元啟動包括於記憶體單元之第一記憶體墊中的記憶體胞元之第一群組,而不啟動包括於記憶體單元之第二記憶體墊中的記憶體胞元之第二群組。記憶體胞元之該第一群組及記憶體胞元之該第二群組可皆屬於該記憶體單元之一單一列。
步驟5194可包括藉由啟動單元啟動記憶體胞元之第二群組,例如,在步驟5192之後。
可在啟動記憶體胞元之第一群組時,在完全啟動記憶體胞元之第一群組之後,在記憶體胞元之第一群組的啟動已完成之後起始的延遲時段期滿之後,在記憶體胞元之第一群組撤銷啟動之後及在類似情況下執行步驟5194。
延遲時段可為固定或可調整的。舉例而言,延遲時段之持續時間可基於記憶體單元之預期存取圖案,或可與預期存取圖案無關地設定。延遲時段之範圍可介於少於一毫秒與多於一秒之間。
在一些實施例中,步驟5194可基於信號之值起始,該信號係在耦接至記憶體胞元之第一群組的第一字線區段上產生的。舉例而言,當信號之值超過第一臨限值時,其可指示記憶體胞元之第一群組完全啟動。
步驟5192及5194中之任一者可涉及使用安置於第一字線區 段與第二字線區段之間的中間電路(例如,啟動單元之中間電路)。第一字線區段可耦接至第一記憶體胞元且第二字線區段可耦接至第二記憶體胞元。
中間電路之實施例貫穿圖56至圖61予以說明。
步驟5192及5194可進一步包括藉由控制單元來控制啟動信號至記憶體胞元之第一群組及記憶體胞元之第二群組的供應,該啟動信號來自與單一列相關聯之字線。
使用記憶體平行性來加速測試時間及使用向量測試記憶體中之邏輯
本發明之一些實施例可使用晶片內測試單元來加速測試。
一般而言,記憶體晶片測試需要大量測試時間。縮減測試時間可縮減生產成本且亦允許進行更多測試,以產生更可靠的產品。
圖63及圖64說明測試器5200及晶片(或晶片之晶圓)5210。測試器5200可包括管理測試之軟體。測試器5200可將不同資料序列運行至所有記憶體5210,且接著讀回該等序列以識別記憶體5210之發生故障位元位於何處。一旦辨識到,測試器5200便可發出修復位元之命令,且若能夠修復問題,則測試器5200可聲明記憶體5210通過。在其他狀況下,可聲明一些晶片未通過。
測試器5200可寫入測試序列且接著讀回資料以將其與預期結果進行比較。
圖64展示測試系統,其具有測試器5200及被平行地測試之晶片(諸如,5210)之完整晶圓5202。舉例而言,測試器5200可藉由導線匯流排連接至晶片中之每一者。
如圖64中所展示,測試器5200必須數次讀取及寫入所有記 憶體晶片,且彼資料必須經由外部晶片介面傳遞。
此外,例如使用可程式化組態資訊測試積體電路之邏輯及記憶體組兩者可為有益的,可使用規則I/O操作提供該組態資訊。
該測試亦可受益於積體電路內存在測試單元。
該等測試單元可屬於積體電路且可分析測試結果,並找到例如邏輯(例如,如圖7A中所描繪及所描述之處理器子單元)及/或記憶體(例如,跨越複數個記憶體組)中的故障。
記憶體測試器通常極簡單且根據簡單格式與積體電路交換測試向量。舉例而言,可存在寫入向量,該等寫入向量包括成對的待寫入之記憶體條目的位址與待寫入至記憶體條目之值。亦可存在讀取向量,該讀取向量包括待讀取之記憶體條目的位址。寫入向量之位址中的至少一些可與讀取向量中之至少一些位址相同。寫入向量之至少一些其他位址可不同於讀取向量之至少一些其他位址。當經程式化時,記憶體測試器亦可接收預期結果向量,該預期結果向量可包括待讀取之記憶體條目的位址及待讀取之預期值。記憶體測試器可將預期值與其讀取值進行比較。
根據一實施例,積體電路(具有或不具有積體電路之記憶體)之邏輯(例如,處理器子單元)可藉由記憶體測試器使用同一協定/格式來測試。舉例而言,寫入向量中之一些值可為待由積體電路之邏輯執行的命令(且可例如涉及計算及/或記憶體存取)。可運用讀取向量及預期結果向量來程式化記憶體測試器,該預期結果向量可包括記憶體條目位址,其中之一些儲存計算之預期值。因此,記憶體測試器可用於測試邏輯以及記憶體。記憶體測試器通常比邏輯測試器更簡單且更便宜,且所提議方法允許使用簡單的記憶體測試器執行複雜的邏輯測試。
在一些實施例中,記憶體內之邏輯可藉由僅使用向量(或其 他資料結構)而不使用邏輯測試中常見之更複雜機制(諸如,例如經由介面與控制器通信,告知邏輯測試哪一電路)來啟用對記憶體內之邏輯的測試。
替代使用測試單元,記憶體控制器可經組態以接收存取包括於組態資訊中之記憶體條目的指令,且執行存取指令並輸出結果。
圖65至圖69中所說明之積體電路中之任一者可執行測試,甚至在缺乏測試單元之情況下或在存在不能夠執行測試之情況下。
本發明之實施例可包括使用記憶體平行性及內部晶片頻寬來加速及改良測試時間之方法及系統。
該方法及系統可基於記憶體晶片測試本身(相對於測試器運行測試、讀取測試結果及分析結果),保存結果且最終允許測試器讀取該等結果(且在需要時,往回程式化記憶體晶片,例如以啟動冗餘機構)。該測試可包括測試記憶體或測試記憶體組及邏輯(在具有要測試之起作用邏輯部分的演算記憶體之狀況下,諸如上文在圖7中所描述之狀況)。
在一個實施例中,該方法可包括讀取及寫入晶片內之資料使得外部頻寬不限制測試。
在記憶體晶片包括處理器子單元之實施例中,每一處理器子單元可藉由測試程式碼或組態來程式化。
在記憶體晶片具有無法執行測試程式碼之處理器子單元或不具有處理器子單元但具有記憶體控制器的實施例中,記憶體控制器接著可經組態以讀取及寫入圖案(例如,在外部程式化至控制器)且標記故障之位置(例如,將值寫入至記憶體條目,讀取該條目,及接收不同於寫入值之值)以供進一步分析。
應注意,測試記憶體可能需要測試大量位元,例如,測試記 憶體之每一位元及驗證受測位元是否起作用。此外,有時可在不同電壓及溫度條件下重複記憶體測試。
對於一些缺陷,可啟動一或多個冗餘機構(例如,藉由程式化快閃記憶體或OTP或燒斷熔斷器)。此外,可能亦必須測試記憶體晶片之邏輯及類比電路(例如,控制器、調節器、I/O)。
在一個實施例中,積體電路可包括:基板、安置於基板上之記憶體陣列、安置於基板上之處理陣列,及安置於基板上之介面。
本文中所描述之積體電路可包括於如圖3A、圖3B、圖4至圖6、圖7A至圖7D、圖11至圖13、圖16至圖19、圖22或圖23中之任一者中所說明的記憶體晶片中,可包括該記憶體晶片,或以其他方式包含該記憶體晶片。
圖65至圖69說明各種積體電路5210及測試器5200。
該積體電路說明為包括記憶體組5212、晶片介面5211(諸如,由該等記憶體組共用之I/O控制器5214及匯流排5213)及邏輯單元(在下文中為「邏輯」)5215。圖66說明熔斷器介面5216及耦接至熔斷器介面及不同記憶體組之匯流排5217。
圖65至圖70亦說明測試處理程序中之各種步驟,諸如:
a.寫入測試序列5221(圖65、圖67、圖68及圖69);
b.讀回測試結果5222(圖67、圖68及圖69);
c.寫入預期結果序列5223(圖65);
d.讀取故障位址以修復5224(圖66);及
e.程式化熔斷器5225(圖66)。
每一記憶體組可耦接至其自身的邏輯單元5215及/或由該邏輯單元來控制。然而,如上文所描述,可提供對邏輯單元5215之任何記 憶體組分配。因此,邏輯單元5215之數目可不同於記憶體組之數目,邏輯單元可控制多於單一記憶體組或一記憶體組之一部分,及其類似者。
邏輯單元5215可包括一或多個測試單元。圖65說明邏輯5215內之測試單元(TU)5218。TU可包括於所有或一些邏輯單元5212中。應注意,測試單元可與邏輯單元分開或與邏輯單元整合。
圖65亦說明TU 5218內之測試圖案產生器(標明為GEN)5219。
測試圖案產生器可包括於所有或一些測試單元中。為簡單起見,測試圖案產生器及測試單元未說明於圖66至圖70中,但可包括於此等實施例中。
該記憶體陣列可包括多個記憶體組。此外,該處理陣列可包括複數個測試單元。該等複數個測試單元可經組態以測試多個記憶體組以提供測試結果。該介面可經組態以將指示測試結果之資訊輸出至在積體電路外部之裝置。
該等複數個測試單元可包括至少一個測試圖案產生器,該至少一個測試圖案產生器經組態以產生至少一個測試圖案以供用於測試多個記憶體組中之一或多者。在一些實施例中,如上文所解釋,該等複數個測試單元中之每一者可包括一測試圖案產生器,該測試圖案產生器經組態以產生一測試圖案以供該等複數個測試單元中之特定測試單元使用以測試多個記憶體組中之至少一者。如上文所指示,圖65說明測試單元內之測試圖案產生器(GEN)5219。一或多個或甚至所有邏輯單元可包括測試圖案產生器。
至少一個測試圖案產生器可經組態以自介面接收用於產生至少一個測試圖案之指令。測試圖案可包括在測試期間應存取(例如,讀 取及/或寫入)之記憶體條目及/或待寫入至該等條目之值,及其類似者。
該介面可經組態以自可在積體電路外部之外部單元接收組態資訊,該組態資訊包括用於產生至少一個測試圖案之指令。
至少一個測試圖案產生器可經組態以自記憶體陣列讀取組態資訊,該組態資訊包括用於產生至少一個測試圖案之指令。
在一些實施例中,該組態資訊可包括向量。
該介面可經組態以自可在積體電路外部之裝置接收組態資訊,該組態資訊可包括可為至少一個測試圖案之指令。
舉例而言,至少一個測試圖案可包括待在記憶體陣列之測試期間存取的記憶體陣列條目。
至少一個測試圖案進一步可包括待寫入至在記憶體陣列之測試期間存取之記憶體陣列條目的輸入資料。
另外或替代地,至少一個測試圖案進一步可包括待寫入至在記憶體陣列之測試期間存取之記憶體陣列條目的輸入資料,及待自在記憶體陣列之測試期間存取之記憶體陣列條目讀取的輸出資料之預期值。
在一些實施例中,該等複數個測試單元可經組態以自記憶體陣列擷取一旦由該等複數個測試單元執行便使該等複數個測試單元測試該記憶體陣列之測試指令。
舉例而言,該等測試指令可包括於組態資訊中。
組態資訊可包括記憶體陣列之測試的預期結果。
另外或替代地,該組態資訊可包括待自在記憶體陣列之測試期間存取之記憶體陣列條目讀取的輸出資料之值。
另外或替代地,該組態資訊可包括向量。
在一些實施例中,該等複數個測試單元可經組態以自記憶體 陣列擷取一旦由該等複數個測試單元執行便使該等複數個測試單元測試該記憶體陣列且測試該處理陣列之測試指令。
舉例而言,該等測試指令可包括於組態資訊中。
該組態資訊可包括向量。
另外或替代地,該組態資訊可包括記憶體陣列及處理陣列之測試的預期結果。
在一些實施例中,如上文所描述,該等複數個測試單元可缺乏測試圖案產生器,該測試圖案產生器用於產生在多個記憶體組之測試期間使用的測試圖案。
在此等實施例中,該等複數個測試單元中之至少兩個可經組態以平行地測試多個記憶體組中之至少兩個。
替代地,該等複數個測試單元中之至少兩個可經組態以串行地測試多個記憶體組中之至少兩個。
在一些實施例中,指示測試結果之資訊可包括故障記憶體陣列條目之識別符。
在一些實施例中,該介面可經組態以在記憶體陣列之測試期間多次擷取由複數個測試電路獲得之部分測試結果。
在一些實施例中,該積體電路可包括錯誤校正單元,該錯誤校正單元經組態以校正在記憶體陣列之測試期間偵測到的至少一個錯誤。舉例而言,該錯誤校正單元可經組態以使用任何適當技術來修復記憶體誤差,例如,藉由停用一些記憶體字及用冗餘字替換該等字。
在上文所描述之實施例中之任一者中,該積體電路可為記憶體晶片。
舉例而言,該積體電路可包括分散式處理器,其中處理陣列 可包括分散式處理器之複數個子單元,如圖7A中所描繪。
在此等實施例中,該等處理器子單元中之每一者可與多個記憶體組中之一對應的專用記憶體組相關聯。
在上文所描述之實施例中之任一者中,指示測試結果之資訊可指示至少一個記憶體組之狀態。可用一或多個粒度來提供記憶體組之狀態:每一記憶體字,每一條目群組,或每一完整記憶體組。
圖65至圖66說明測試器測試階段中之四個步驟。
在第一步驟中,測試器寫入(5221)測試序列,且組之邏輯單元將資料寫入至其記憶體。該邏輯亦可足夠複雜以自測試器接收命令且其自身產生序列(如下文所解釋)。
在第二步驟中,測試器將預期結果寫入(5223)至受測記憶體,且邏輯單元將預期結果與自其記憶體組讀取之資料進行比較,保存錯誤清單。若邏輯足夠複雜以自身產生預期結果之序列(如下文所解釋),則可簡化預期結果之寫入。
在第三步驟中,測試器自邏輯單元讀取(5224)故障位址。
在第四步驟中,測試器對結果採取動作(5225)且可修復錯誤。舉例而言,測試器可連接至特定介面以程式化記憶體中之熔斷器,但亦可使用允許程式化記憶體內之錯誤校正機構的任何其他機構。
在此等實施例中,記憶體測試器可使用向量以測試記憶體。
舉例而言,每一向量可自輸入系列及輸出系列建置。
輸入系列可包括成對的位址與寫入至記憶體之資料(在許多實施例中,此系列可模型化為允許程式在需要時產生的公式,該程式諸如由邏輯單元執行之程式)。
在一些實施例中,測試圖案產生器可產生此類向量。
應注意,向量為資料結構之一實施例,但一些實施例可使用其他資料結構。該等資料結構可與由位於積體電路外部之測試器產生的其他測試資料結構相容。
該輸出系列可包括位址與資料對,其包含待自記憶體讀回之預期資料(在一些實施例中,該系列可另外或替代地由程式在執行階段產生,例如藉由邏輯單元)。
記憶體測試通常包括執行向量清單,每一向量根據輸入系列將資料寫入至記憶體,且接著根據輸出系列讀回資料並將該資料與其預期資料進行比較。
在失配之狀況下,記憶體可分類為發生故障的,或若記憶體包括用於冗餘之機構,則可啟動冗餘機構使得再次在經啟動冗餘機構上測試向量。
在記憶體包括處理器子單元(如上文關於圖7A所描述)或含有許多記憶體控制器之實施例中,整個測試可由組之邏輯單元操控。因此,記憶體控制器或處理器子單元可執行測試。
該記憶體控制器可自測試器程式化,且測試結果可保存於控制器本身中以稍後由測試器讀取。
為了組態及測試邏輯單元之操作,測試器可組態邏輯單元以用於記憶體存取且確認結果可藉由記憶體存取來讀取。
舉例而言,輸入向量可含有用於邏輯單元之程式化序列,且輸出向量可含有此測試之預期結果。舉例而言,若諸如處理器子單元之邏輯單元包含經組態以對記憶體中之兩個位址執行演算的乘法器或加法器,則輸入向量可包括將資料寫入至記憶體之一組命令以及至加法器/乘法器邏輯之一組命令。只要可將加法器/乘法器結果讀回至輸出向量,便可將結果 發送至測試器。
該測試可進一步包括自記憶體載入邏輯組態及使邏輯輸出發送至記憶體。
在邏輯單元自記憶體載入其組態(例如,若該邏輯為記憶體控制器)之實施例中,該邏輯單元可運行來自記憶體本身之程式碼。
因此,該輸入向量可包括用於邏輯單元之程式,且該程式本身可測試邏輯單元中之各種電路。
因此,測試可能不限於接收呈由外部測試器使用之格式的向量。
若載入至邏輯單元之命令指示邏輯單元將結果寫回至記憶體組中,則測試器可讀取彼等結果且將該等結果與預期輸出系列進行比較。
舉例而言,寫入至記憶體之向量可為或可包括用於邏輯單元之測試程式(例如,測試可假定記憶體有效,但即使記憶體無效,寫入之測試程式將不工作且測試將未通過,此為可接受之結果,此係因為晶片無論如何為無效的)及/或邏輯單元如何運行程式碼及將結果寫回至記憶體。由於邏輯單元之所有測試可經由記憶體進行(例如,將邏輯測試輸入寫入至記憶體及將測試結果寫回至該記憶體),因此測試器可運用輸入序列及預期輸出序列來運行簡單的向量測試。
邏輯組態及結果可存取為讀取及/或寫入命令。
圖68說明發送寫入測試序列5221之測試器5200,該寫入測試序列為向量。
向量之部分包括在耦接至處理陣列之邏輯5215的記憶體組5212之間分裂的測試程式碼5232。
每一邏輯5215可執行儲存於其相關聯記憶體組中之程式碼 5232,且該執行可包括存取一或多個記憶體組,執行計算及將結果(例如,測試結果5231)儲存於記憶體組5212中。
測試結果可由測試器5200發送回(例如,讀回結果5222)。
此可允許邏輯5215受由I/O控制器5214接收之命令控制。
在圖68中,I/O控制器5214連接至記憶體組及邏輯。在其他實施例中,邏輯可連接於I/O控制器5214與記憶體組之間。
圖70說明用於測試記憶體組之方法5300。舉例而言,可使用上文關於圖65至圖69所描述之記憶體組中之任一者來實施方法5300。
方法5300可包括步驟5302、5310及5320。步驟5302可包括接收測試積體電路之記憶體組的請求。該積體電路可包括:基板、安置於基板上且包含記憶體組之記憶體陣列、安置於基板上之處理陣列,及安置於基板上之介面。該處理陣列可包括複數個測試單元,如上文所描述。
在一些實施例中,該請求可包括組態資訊、一或多個向量、命令,及其類似者。
在此等實施例中,該組態資訊可包括記憶體陣列之測試的預期結果、指令、資料、待自在記憶體陣列之測試期間存取之記憶體陣列條目讀取的輸出資料之值、測試圖案,及其類似者。
該測試圖案可包括以下各者中之至少一者:(i)待在記憶體陣列之測試期間存取的記憶體陣列條目,(ii)待寫入至在記憶體陣列之測試期間存取之記憶體陣列條目的輸入資料,或(iii)待自在記憶體陣列之測試期間存取之記憶體陣列條目讀取的輸出資料之預期值。
步驟5302可包括以下各者中之至少一者及/或其後可接著以下各者中之至少一者:
a.藉由至少一個測試圖案產生器自介面接收用於產生至少一個測 試圖案之指令;
b.藉由該介面及自在積體電路外部之外部單元接收組態資訊,該組態資訊包括用於產生至少一個測試圖案之指令;
c.藉由至少一個測試圖案產生器自記憶體陣列讀取組態資訊,該組態資訊包括用於產生至少一個測試圖案之指令;
d.藉由該介面及自在積體電路外部之外部單元接收組態資訊,該組態資訊包含為至少一個測試圖案之指令;
e.藉由複數個測試單元及自記憶體陣列擷取一旦由該等複數個測試單元執行便使該等複數個測試單元測試記憶體陣列之測試指令;及
f.藉由複數個測試單元及自該記憶體陣列接收一旦由該等複數個測試單元執行便使該等複數個測試單元測試記憶體陣列且測試處理陣列之測試指令。
步驟5302之後可接著步驟5310。步驟5310可包括藉由複數個測試單元且回應於請求而測試多個記憶體組以提供測試結果。
方法5300可進一步包括藉由該介面在記憶體陣列之測試期間接收由複數個測試電路獲得之部分測試結果。
步驟5310可包括以下各者中之至少一者及/或其後可接著以下各者中之至少一者:
a.藉由一或多個測試圖案產生器(例如,包括於複數個測試單元中之一者、一些或全部中)產生測試圖案以供一或多個測試單元用於測試多個記憶體組中之至少一者;
b.藉由該等複數個測試單元中之至少兩個平行地測試多個記憶體組中之至少兩個;
c.藉由該等複數個測試單元中之至少兩個串行地測試多個記憶體 組中之至少兩個;
d.將值寫入至記憶體條目,讀取記憶體條目及比較結果;及
e.藉由錯誤校正單元校正在記憶體陣列之測試期間偵測到的至少一個錯誤。
步驟5310之後可接著步驟5320。步驟5320可包括藉由介面及在積體電路外部輸出指示測試結果之資訊。
指示測試結果之該資訊可包括故障記憶體陣列條目之識別符。藉由不發送關於每一記憶體條目之讀取資料,可節省時間。
另外或替代地,指示測試結果之該資訊可指示至少一個記憶體組之狀態。
因此,在一些實施例中,指示測試結果之該資訊可比在測試期間寫入至記憶體組或自記憶體組讀取之資料單元的總大小小得多,且可比在無測試單元輔助之情況下可自測試記憶體之測試器發送的輸入資料小得多。
受測積體電路可包含如先前諸圖中之任一者中所說明的記憶體晶片及/或分散式處理器。舉例而言,本文中所描述之積體電路可包括於如圖3A、圖3B、圖4至圖6、圖7A至圖7D、圖11至圖13、圖16至圖19、圖22或圖23中之任一者中所說明的記憶體晶片中,可包括該記憶體晶片,或以其他方式包含該記憶體晶片。
圖71說明用於測試積體電路之記憶體組的方法5350之實施例。舉例而言,可使用上文關於圖65至圖69所描述之記憶體組中之任一者來實施方法5350。
方法5350可包括步驟5352、5355及5358。步驟5352可包括藉由積體電路之介面接收包含指令之組態資訊。包括介面之積體電路亦 可包括基板、包含記憶體組且安置於基板上之記憶體陣列、安置於基板上之處理陣列,及安置於基板上之介面。
該組態資訊可包括記憶體陣列之測試的預期結果、指令、資料、待自在記憶體陣列之測試期間存取之記憶體陣列條目讀取的輸出資料之值、測試圖案,及其類似者。
另外或替代地,該組態資訊可包括指令、用以寫入該等指令之記憶體條目的位址、輸入資料,且亦可包括用以接收在指令執行期間計算得之輸出值的記憶體條目之位址。
該測試圖案可包括以下各者中之至少一者:(i)待在記憶體陣列之測試期間存取的記憶體陣列條目,(ii)待寫入至在記憶體陣列之測試期間存取之記憶體陣列條目的輸入資料,或(iii)待自在記憶體陣列之測試期間存取之記憶體陣列條目讀取的輸出資料之預期值。
步驟5352之後可接著步驟5355。步驟5355可包括藉由處理陣列執行指令,該執行藉由存取記憶體陣列,執行演算運算及提供結果來進行。
步驟5355之後可接著步驟5358。步驟5358可包括藉由介面及在積體電路外部輸出指示結果之資訊。
已出於說明之目的呈現先前描述。先前描述並不詳盡且不限於所揭示之精確形式或實施例。自本說明書之考慮及所揭示實施例之實踐,修改及調適對熟習此項技術者將為顯而易見的。另外,儘管所揭示實施例之態樣描述為儲存於記憶體中,但熟習此項技術者將瞭解,此等態樣亦可儲存於其他類型之電腦可讀媒體上,諸如次要儲存裝置,例如硬碟或CD ROM,或其他形式之RAM或ROM、USB媒體、DVD、藍光、4K超HD藍光,或其他光碟機媒體。
基於書面描述及所揭示方法之電腦程式在有經驗開發者之技能範圍內。可使用熟習此項技術者已知的技術中之任一者產生或可結合現有軟體設計各種程式或程式模組。舉例而言,程式區段或程式模組可用或藉助於.Net Framework、.Net Compact Framework(及相關語言,諸如Visual Basic、C等)、Java、C++、Objective-C、HTML、HTML/AJAX組合、XML或包括Java小程式之HTML來設計。
此外,雖然本文中已經描述了說明性實施例,但熟習此項技術者基於本發明將瞭解具有等效元件、修改、省略、組合(例如,跨越各種實施例之態樣的組合)、調適及/或更改的任何及所有實施例之範疇。申請專利範圍中之限制應基於申請專利範圍中所使用之語言來廣泛地解譯,且不限於本說明書中所描述或在本申請案之審查期間的實施例。實施例應解釋為非排他性的。此外,所揭示方法之步驟可用任何方式進行修改,包括藉由對步驟重排序及/或插入或刪除步驟。因此,本說明書及實施例意欲被視為僅說明性的,其中真實範疇及精神由以下申請範圍及其等效物之完整範疇指示。
300‧‧‧硬體晶片
310a‧‧‧處理群組
310b‧‧‧處理群組
310c‧‧‧處理群組
310d‧‧‧處理群組
320a‧‧‧邏輯及控制子單元
320b‧‧‧邏輯及控制子單元
320c‧‧‧邏輯及控制子單元
320d‧‧‧邏輯及控制子單元
320e‧‧‧邏輯及控制子單元
320f‧‧‧邏輯及控制子單元
320g‧‧‧邏輯及控制子單元
320h‧‧‧邏輯及控制子單元
330a‧‧‧專用記憶體執行個體
330b‧‧‧專用記憶體執行個體
330c‧‧‧專用記憶體執行個體
330d‧‧‧專用記憶體執行個體
330e‧‧‧專用記憶體執行個體
330f‧‧‧專用記憶體執行個體
330g‧‧‧專用記憶體執行個體
330h‧‧‧專用記憶體執行個體
340a‧‧‧控制件
340b‧‧‧控制件
340c‧‧‧控制件
340d‧‧‧控制件
350‧‧‧主機

Claims (225)

  1. 一種記憶體晶片,其包含:
    複數個記憶體組;
    一資料儲存器,其經組態以儲存指示該等複數個記憶體組之一或多個區段之存取操作的存取資訊;以及
    一刷新控制器,其經組態以至少部分地基於所儲存的存取資訊而執行該一或多個區段之一刷新操作。
  2. 如請求項1所述之記憶體晶片,其中該資料儲存器包括經組態以儲存一刷新時間指示符之一時戳暫存器,該刷新時間指示符指示最後刷新該等複數個記憶體組之該一或多個區段的一時間。
  3. 如請求項2所述之記憶體晶片,其中若該刷新時間指示符指示一最後刷新時間在一預定時間臨限值內,則該刷新控制器經組態以跳過相對於該等複數個記憶體組之該一或多個的一刷新操作。
  4. 如請求項3所述之記憶體晶片,其中在跳過相對於該一或多個區段之一刷新操作之後,該刷新控制器經組態以更改與該一或多個區段相關聯之所儲存的刷新時間指示符,使得在下一操作循環期間,將刷新該一或多個區段。
  5. 如請求項1所述之記憶體晶片,其中該一或多個區段包括該等複數個記憶體組內之至少一列記憶體結構。
  6. 如請求項1所述之記憶體晶片,其進一步包含一計時器,且其中該刷新控制器經組態以在一臨限時間間隔之後使用該計時器之一輸出以清除儲存於該資料儲存器中之該存取資訊。
  7. 如請求項1所述之記憶體晶片,其中該資料儲存器包含與該一或多個區段相關聯之至少一個位元暫存器,其中該至少一個位元暫存器之一狀態經組態以回應於該一或多個區段的被存取而改變,且其中該刷新 控制器經組態以基於該至少一個位元暫存器之該狀態而跳過該一或多個區段之一刷新。
  8. 如請求項7所述之記憶體晶片,其中對該一或多個區段之存取包括與該一或多個區段相關聯之一寫入操作。
  9. 如請求項7所述之記憶體晶片,其進一步包含一計時器,且其中該刷新控制器經組態以在一臨限時間間隔之後重設該至少一個位元暫存器。
  10. 如請求項7所述之記憶體晶片,其中該刷新控制器包含一列計數器及一加法器,該列計數器及該加法器經組態以至少部分地基於該至少一個位元暫存器之該狀態,而輔助更新與該等複數個記憶體組相關聯之一位元表,且其中該刷新控制器進一步包括一刷新閘,該刷新閘經組態以基於儲存於該位元表中之一對應值而控制是否進行對該一或多個區段之一刷新。
  11. 如請求項7所述之記憶體晶片,其進一步包含一計時器,且其中該刷新控制器經組態以在一臨限時間間隔之後使用該計時器之一輸出以清除儲存於該資料儲存器中之該存取資訊。
  12. 如請求項1所述之記憶體晶片,其中該等複數個記憶體組包含動態隨機存取記憶體(DRAM)。
  13. 如請求項7所述之記憶體晶片,其進一步包含一感測放大器,該感測放大器經組態以存取該一或多個區段且與經組態以更新該至少一個位元暫存器之該狀態的該刷新控制器通信。
  14. 如請求項7所述之記憶體晶片,其中該刷新控制器與用於該等複數個記憶體組之一記憶體控制器整合。
  15. 如請求項1所述之記憶體晶片,其進一步包含:
    一處理陣列,其與該等複數個記憶體組安置於同一基板上,該處理陣 列包括複數個處理器子單元,該等處理器子單元中之每一者與該等複數個記憶體組中之一對應的專用記憶體組相關聯;
    第一複數個匯流排,每一匯流排將該等複數個處理器子單元中之一者連接至其對應的專用記憶體組;以及
    第二複數個匯流排,每一匯流排將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之另一者。
  16. 如請求項1所述之記憶體晶片,其進一步包含:
    一處理陣列,其與該等複數個記憶體組安置於同一基板上,該處理陣列包括複數個邏輯部分,每一邏輯部分包括一位址產生器,其中該等位址產生器中之每一者與該等複數個記憶體組中之一對應的專用記憶體組相關聯;以及
    複數個匯流排,每一匯流排將該等複數個位址產生器中之一者連接至其對應的專用記憶體組。
  17. 如請求項1所述之記憶體晶片,其進一步包含:
    一處理陣列,其與該等複數個記憶體組安置於同一基板上,該處理陣列包括複數個處理器子單元,該等處理器子單元中之每一者與該等複數個記憶體組中之一對應的專用記憶體組相關聯;以及
    複數個匯流排,該等複數個匯流排中之每一者將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之至少另一者,
    其中該等複數個匯流排不含時序硬體邏輯組件,使得在處理器子單元之間及跨越該等複數個匯流排中之對應者的資料傳送不受時序硬體邏輯組件控制。
  18. 一種非暫時性電腦可讀媒體,其儲存在由至少一個處理器執行時使該至少一個處理器進行以下操作之指令:
    接收較高階電腦程式碼;
    識別待由該較高階電腦程式碼存取之在與一記憶體晶片相關聯之複數個記憶體組上分佈的複數個記憶體區段;
    評估該較高階電腦程式碼以識別在複數個記憶體存取循環上出現之複數個記憶體讀取命令;以及
    致使與該等複數個記憶體讀取命令相關聯之資料跨越該等複數個記憶體區段中之每一者的一分佈,使得在該等複數個記憶體存取循環中之每一者期間存取該等複數個記憶體區段中之每一者。
  19. 一種非暫時性電腦可讀媒體,其儲存在由至少一個處理器執行時使該至少一個處理器進行以下操作之指令:
    接收較高階電腦程式碼;
    識別待由該較高階電腦程式碼存取之在與一記憶體晶片相關聯之複數個記憶體組上分佈的複數個記憶體區段;
    評估該較高階電腦程式碼以識別複數個記憶體存取命令,每一記憶體存取命令涉及該等複數個記憶體區段中之一或多者;
    基於對該等記憶體存取命令之分析且對於該等複數個記憶體區段當中之每一記憶體區段,追蹤自對該記憶體區段之最後一次存取起所累積的一時間量;以及
    回應於自任何特定記憶體區段之最後一次存取起的一時間量將超過一預定臨限值的一判定,將經組態以致使對該特定記憶體區段之一存取的一記憶體刷新命令或一記憶體存取命令中之至少一者引入至該較高階電腦程式碼中。
  20. 一種記憶體晶片,其具有一軟體可組態的記憶體刷新控制件,該記憶體晶片包含:
    複數個記憶體組及包括於該等複數個記憶體組中之每一者中的複數個記憶體區段;以及
    一刷新控制器,其包括一資料儲存元件,該資料儲存元件儲存至少一個記憶體刷新圖案,該至少一個記憶體刷新圖案待實施以刷新包括於該等複數個記憶體組中之每一者中之該等複數個記憶體區段,且其中可使用軟體組態該記憶體刷新圖案以識別待在一刷新循環期間刷新一特定記憶體組中之該等複數個記憶體區段中之哪些者且在該刷新循環期間不刷新該特定記憶體組中之該等複數個記憶體區段中之哪些者。
  21. 如請求項20所述之記憶體晶片,其中該刷新圖案包含一表,該表包括複數個記憶體區段識別符,且其中該等複數個記憶體區段識別符由該軟體指派以識別一特定記憶體組中之在一刷新循環期間將刷新的該等複數個記憶體區段之範圍,及該特定記憶體組中之在該刷新循環期間不需刷新的該等複數個記憶體區段之範圍。
  22. 如請求項21所述之記憶體晶片,其中該等複數個記憶體區段係成列配置,且每一記憶體區段識別符經組態以識別記憶體之一列內,一記憶體刷新應開始或結束之一特定位置。
  23. 如請求項21所述之記憶體晶片,其中該刷新控制器之該資料儲存元件包括複數個記憶體刷新圖案,每一記憶體刷新圖案表示一不同的刷新圖案,用於刷新包括於該等複數個記憶體組中之每一者中之該等複數個記憶體區段,且其中該刷新控制器經組態以允許選擇在一特定刷新循環期間實施該等複數個記憶體刷新圖案之哪一者。
  24. 如請求項21所述之記憶體晶片,其中該資料儲存元件包含複數個可組態的暫存器。
  25. 一種用於刷新一記憶體晶片上之記憶體組的方法,該方法包含:
    存取一資料儲存器,該資料儲存器含有用於指示包括於該記憶體晶片上之複數個記憶體組之一或多個區段的存取操作的資訊;以及
    藉由一刷新控制器至少部分地基於指示存取操作之所儲存的資訊而執 行該一或多個區段之一刷新操作。
  26. 如請求項25所述之方法,其進一步包括若一刷新時間指示符指示一最後刷新時間在一預定時間臨限值內,則跳過相對於該等複數個記憶體組之該一或多個區段的一刷新操作,其中該刷新時間指示符指示最後刷新該等複數個記憶體組之該一或多個區段的一時間,且其中該刷新時間指示符儲存於該資料儲存器之一時戳暫存器中。
  27. 如請求項26所述之方法,其進一步包括:
    在跳過相對於該一或多個區段之一刷新操作之後,使該刷新控制器更改與該一或多個區段相關聯之所儲存的刷新時間指示符,使得在下一操作循環期間,將刷新該一或多個區段。
  28. 如請求項25所述之方法,其進一步包括使該刷新控制器在一臨限時間間隔之後使用與該記憶體晶片相關聯之一計時器的一輸出以清除儲存於該資料儲存器中之存取資訊。
  29. 如請求項25所述之方法,其中該資料儲存器包含與該一或多個區段相關聯之至少一個位元暫存器,且其中該方法包括回應於該一或多個區段的被存取而改變該至少一個位元暫存器之一狀態,且使該刷新控制器基於該至少一個位元暫存器之該狀態而跳過該一或多個區段之一刷新。
  30. 如請求項29所述之方法,其進一步包括使該刷新控制器在一臨限時間間隔之後,基於與該記憶體晶片相關聯之一計時器的一輸出而重設該至少一個位元暫存器。
  31. 一種用於自一晶圓生產大小可選擇之記憶體晶片的方法,其包含:
    形成包含一晶粒群組及一耦接電路之一晶圓,其中該群組之該等晶粒包含記憶體單元,且其中該耦接電路耦接至該群組之該等晶粒;
    藉由以下操作中之至少一者形成該等大小可選擇之記憶體晶片:
    切割包含該晶粒群組及該耦接電路之該晶圓的一區,以提供包含該晶粒群組之一單一記憶體晶片;以及
    組態與該晶粒群組相關聯之至少一個控制器以將該晶粒群組充當一單一記憶體晶片來控制;及切割該晶圓之區,該晶圓之每一區包括該群組之一晶粒以提供複數個分開的記憶體晶片。
  32. 如請求項31所述之方法,其中該至少一個控制器包括該等記憶體單元中之至少一者的至少一個記憶體控制器。
  33. 如請求項31所述之方法,其中該至少一個控制器不同於該等記憶體單元中之至少一者的至少一個記憶體控制器。
  34. 如請求項31所述之方法,其中該等記憶體單元各包括一分散式處理器,其中每一分散式處理器包括:
    一基板;
    一記憶體陣列,其安置於該基板上,該記憶體陣列包括複數個離散記憶體組;
    一處理陣列,其安置於該基板上,該處理陣列包括複數個處理器子單元,該等處理器子單元中之每一者與該等複數個離散記憶體組中之一對應的專用記憶體組相關聯;
    第一複數個匯流排,每一匯流排將該等複數個處理器子單元中之一者連接至其對應的專用記憶體組;以及
    第二複數個匯流排,每一匯流排將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之另一者。
  35. 如請求項31所述之方法,其中該等記憶體單元各包括一分散式處理器,其中每一分散式處理器包含:
    一基板;
    一記憶體陣列,其安置於該基板上,該記憶體陣列包括複數個離散記 憶體組,其中該等離散記憶體組中之每一者具有大於一百萬位元組之一容量;以及
    一處理陣列,其安置於該基板上,該處理陣列包括複數個處理器子單元,該等處理器子單元中之每一者與該等複數個離散記憶體組中之一對應的專用記憶體組相關聯。
  36. 如請求項31所述之方法,其中該等記憶體單元各包括與複數個記憶體組安置於同一基板上之一處理陣列,該處理陣列包括複數個邏輯部分,每一邏輯部分包含一位址產生器,其中該等位址產生器中之每一者與該等複數個記憶體組中之一對應的專用記憶體組相關聯;及複數個匯流排,每一匯流排將該等複數個位址產生器中之一者連接至其對應的專用記憶體組。
  37. 如請求項31所述之方法,其中該等記憶體單元各包括與複數個記憶體組安置於同一基板上之一處理陣列,該處理陣列包括複數個處理器子單元,該等處理器子單元中之每一者與該等複數個記憶體組中之一對應的專用記憶體組相關聯;及複數個匯流排,該等複數個匯流排中之每一者將該等複數個處理器子單元中之一者連接至該等複數個處理器子單元中之至少另一者,其中該等複數個匯流排不含時序硬體邏輯組件使得在處理器子單元之間及跨越該等複數個匯流排中之對應者的資料傳送不受時序硬體邏輯組件控制
  38. 如請求項31所述之方法,其中該耦接電路包含由該群組之該等記憶體單元共用的一匯流排。
  39. 如請求項31所述之方法,其中該耦接電路包含一或多個邏輯電路。
  40. 如請求項31所述之方法,其中該耦接電路包含一記憶體存取管理邏輯。
  41. 如請求項31所述之方法,其中該耦接電路包含一電路,該電路組態該至少一個控制器以及該等記憶體單元中之至少一者的至少一個記憶體 控制器。
  42. 如請求項31所述之方法,其包含當切割包含該晶粒群組之該晶圓的該區時停用與該晶粒群組相關聯之至少一個其他控制器。
  43. 如請求項31所述之方法,其中該等記憶體單元各包括安置於基板上之一處理陣列,該處理陣列包括複數個處理器子單元,該等處理器子單元中之每一者與複數個離散記憶體組中之一對應的專用記憶體組相關聯;及第二複數個匯流排,每一匯流排將該群組之該等晶粒中之任一者的該等複數個處理器子單元中之一者連接至該群組之該等晶粒中之任一者的該等複數個處理器子單元中之另一者。
  44. 一種用於自一晶圓生產大小可選擇之記憶體晶片的方法,其包含:在該晶圓上形成複數個記憶體晶片,該等複數個記憶體晶片沿著一或多列配置;
    形成對應於該一或多列之至少一個共用的輸入輸出匯流排,其中該至少一個共用的輸入輸出匯流排將該等複數個記憶體晶片中之至少兩個相電連接以充當一單一晶片作用;以及
    自該晶圓切下該等複數個記憶體晶片中之至少兩個,其等具有該共用的輸入輸出匯流排之至少一個對應部分,使得至少一個記憶體控制器可組態以控制該等複數個記憶體晶片中之該至少兩個,以充當一單一晶片作用。
  45. 如請求項44所述之方法,其進一步包含使用該至少一個共用的輸入輸出匯流排來測試該等複數個記憶體晶片,其中該切割僅包括通過該測試之記憶體晶片。
  46. 如請求項44所述之方法,其進一步包含:
    在該晶圓上形成對應於該等記憶體晶片之輸入輸出控制器;
    形成對應於該等輸入輸出控制器之停用元件;以及
    啟動該等停用元件中之一或多者使得該等複數個記憶體晶片中經組態以充當一單一晶片作用的該至少兩個記憶體晶片共用一輸入輸出控制器。
  47. 如請求項46所述之方法,其中該等停用元件包含熔斷器,且啟動該等停用元件中之一或多者包含施加一電流以觸發該等熔斷器中之一或多者。
  48. 如請求項44所述之方法,其進一步包含:
    在該晶圓上形成一或多個邏輯電路,該一或多個邏輯電路電連接該等複數個記憶體晶片之群組,
    其中記憶體晶片之該等群組經組態以在該一或多個邏輯電路存在時一起起作用,且在該一或多個邏輯電路被移除時獨立地起作用。
  49. 如請求項48所述之方法,其進一步包含:
    對於經設計以一起起作用之該等群組中之一或多個群組,自該晶圓切下具有該一或多個邏輯電路中之對應者的該一或多個群組;以及
    對於經設計以獨立地起作用之該等群組中之其他群組,自該晶圓切下無該一或多個邏輯電路中之對應者的該等其他群組。
  50. 如請求項48所述之方法,其進一步包含:
    形成包括該等複數個記憶體晶片而不包括該一或多個邏輯電路之複數個切割形狀。
  51. 一種用於提供大小可選擇之記憶體晶片的晶圓,其包含:
    一晶粒群組,其中該群組之該等晶粒包含記憶體單元;以及
    至少一個輸入輸出匯流排,其由該晶粒群組共用,其中該群組之該等晶粒經配置以允許複數個切割形狀,每一切割形狀對應於待生產之一記憶體晶片且該等複數個切割形狀中之每一者不包括該共用的輸入輸出匯流排之至少一部分。
  52. 如請求項51所述之晶圓,其中該群組之該等晶粒沿著該晶圓之一或多列配置。
  53. 如請求項51所述之晶圓,其進一步包含:
    至少一個邏輯電路,其電連接來自該晶粒群組之複數個晶粒,其中若該邏輯電路被移除,則來自該等複數個晶粒之該等晶粒經組態以獨立地起作用。
  54. 如請求項53所述之晶圓,其中該至少一邏輯電路鄰接於該等複數個晶粒佈置,使得該至少一邏輯電路及該等複數個晶粒為待生產之該記憶體晶片的部分。
  55. 如請求項53所述之晶圓,其中至少一個切割形狀包括至少一個邏輯電路及該等複數個晶粒。
  56. 如請求項53所述之晶圓,其中複數個邏輯電路鄰近於該等複數個晶粒佈置,使得來自該等複數個邏輯電路之至少一個邏輯電路連接至來自該等複數個邏輯電路之至少另一邏輯電路,且其中該等複數個邏輯電路及該等複數個晶粒為待生產之該記憶體晶片的部分。
  57. 如請求項53所述之晶圓,其中該等切割形狀中之至少一者不包括該至少一個邏輯電路。
  58. 如請求項51所述之晶圓,其中:
    該群組之該等晶粒進一步包括輸入輸出控制器;以及
    該群組之該等晶粒進一步包括經組態以電斷開該等輸入輸出控制器中之對應者的停用元件。
  59. 如請求項58所述之晶圓,其中該等停用元件包含熔斷器。
  60. 如請求項58所述之晶圓,其中若停用一對應的輸入輸出控制器,則來自該群組之一晶粒經組態以獨立地起作用。
  61. 如請求項51所述之晶圓,其中晶粒之記憶體單元各包括安置於基板上 之一處理陣列,該處理陣列包括複數個處理器子單元,該等處理器子單元中之每一者與複數個離散記憶體組中之一對應的專用記憶體組相關聯;以及第二複數個匯流排,每一匯流排將該群組之該等晶粒中之任一者的該等複數個處理器子單元中之一者連接至該群組之該等晶粒中之任一者的該等複數個處理器子單元中之另一者。
  62. 一種用於提供大小可選擇之記憶體晶片的晶圓,其包含:
    一晶粒群組,其中該群組之該等晶粒包含記憶體單元;以及
    一耦接電路,其中該耦接電路耦接至該群組之該等晶粒;
    其中該群組之該等晶粒經配置以允許複數個切割形狀,每一切割形狀對應於待生產之一記憶體晶片且該等複數個切割形狀中之每一者不包括該耦接電路之至少一部分。
  63. 如請求項62所述之晶圓,其中該群組之該等晶粒藉由間隔區彼此隔開,該等間隔區經選擇以促進該等間隔區中之晶圓切割。
  64. 一種提供雙埠功能性之記憶體執行個體,其包含:
    複數個記憶體組,其沿著至少一列及至少一行配置;
    至少一個行多工器,其經組態以在一單一時脈循環期間接收用於讀取或寫入之兩個位址;以及
    一列解碼器,其經組態以與該至少一個行多工器協作以進行以下操作:基於該兩個位址啟動一字線,其中該兩個位址共用一字線位址;
    在一記憶體存取循環期間藉由解碼對應於該兩個位址中之一第一位址的一位元線自該至少一個行多工器擷取該第一位址;以及
    在該記憶體存取循環期間藉由解碼對應於該兩個位址中之一第二位址的一位元線自該至少一個行多工器擷取該第二位址。
  65. 如請求項64所述之記憶體執行個體,其中該兩個位址中之至少該第一位址用於寫入,且其中該列解碼器及該至少一個行多工器經進一步組 態以協作,以在該記憶體存取循環期間將自該至少一個行多工器擷取之第一資料寫入至該兩個位址中之該第一位址。
  66. 如請求項64所述之記憶體執行個體,其進一步包含經組態以充當開關之至少一個列電路及至少一個行電路。
  67. 如請求項66所述之記憶體執行個體,其中該列解碼器及該至少一個行多工器經進一步組態以協作,以藉由傳輸一或多個控制信號以閉合對應於該字線之開關元件中之多者來啟動對應於該字線之該至少一個列電路及該至少一個行電路中的對應者。
  68. 一種提供雙埠功能性之記憶體執行個體,其包含:
    複數個記憶體組,其沿著至少一列及至少一行配置;
    至少一個列多工器或至少一個行多工器,該等多工器經組態以在一單一時脈循環期間接收用於讀取或寫入之兩個位址;以及
    一列解碼器及一行解碼器,該等解碼器經組態以協作,從而進行以下操作:
    在一第一循環期間自該至少一個列多工器或該至少一個行多工器擷取該兩個位址中之一第一位址,且解碼對應於該第一位址之一字線及一位元線;以及
    在該第一循環之後的一第二循環期間,自該至少一個列多工器或該至少一個行多工器擷取該兩個位址中之一第二位址,且解碼對應於該第二位址之一字線及一位元線。
  69. 如請求項68所述之記憶體執行個體,其中該列解碼器及該行解碼器經組態成以至少兩倍於一對應邏輯電路產生該兩個位址之一速率的一速率進行時控。
  70. 如請求項68所述之記憶體執行個體,其中該兩個位址共用一列使得該列解碼器啟動同一字線用於兩次擷取。
  71. 如請求項68所述之記憶體執行個體,其中該列解碼器及該行解碼器經進一步組態以藉由以下操作來協作:
    使用該列解碼器啟動對應於該第一位址或該第二位址之一字線;以及使用該行解碼器啟動對應於該第一位址或該第二位址之經啟動的字線上的一位元線。
  72. 如請求項68所述之記憶體執行個體,其中該兩個位址係用於寫入,且其中該列解碼器及該行解碼器經進一步組態以協作,從而進行以下操作:
    在該第一循環期間,將自該至少一個列多工器或該至少一個行多工器擷取之第一資料寫入至該兩個位址中之該第一位址;以及
    在該第二循環期間,將自該至少一個列多工器或該至少一個行多工器擷取之第二資料寫入至該兩個位址中之該第二位址。
  73. 如請求項68所述之記憶體執行個體,其中該第一位址及該第二位址共用一列,使得該列解碼器經組態以將與在該第一循環期間針對該第一位址啟動之字線相同的字線用於該第二位址。
  74. 如請求項68所述之記憶體執行個體,其進一步包含經組態以充當開關之至少一個列電路及至少一個行電路。
  75. 如請求項74所述之記憶體執行個體,其中該列解碼器及該行解碼器經進一步組態以協作,以藉由傳輸一或多個控制信號以閉合開關元件中之對應者來啟動該至少一個列電路及該至少一個行電路中之對應者。
  76. 一種記憶體執行個體,其包含:
    複數個記憶體組,其沿著至少一列及至少一行配置;
    至少一個列電路及至少一個行電路,該等電路經組態以充當開關;以及
    一列解碼器及一行解碼器,該等解碼器經組態以協作,從而進行以下 操作:
    在一記憶體時脈循環期間,藉由以下操作擷取兩個位址中之一第一位址:
    藉由傳輸一或多個控制信號以閉合對應於該第一位址之開關元件中之多者來啟動對應於該第一位址之該至少一個列電路及該至少一個行電路中的對應者;以及
    使用記憶體晶片之至少一個列多工器及至少一個行多工器以解碼對應於該第一位址之一字線及一位元線;以及
    在該記憶體時脈循環期間,藉由以下操作擷取該兩個位址中之一第二位址:
    藉由傳輸一或多個控制信號以閉合對應於該第二位址之該等開關元件中之多者來啟動對應於該第二位址之該至少一個列電路及該至少一個行電路中的對應者;以及
    使用該至少一個列多工器及該至少一個行多工器以解碼對應於該第二位址之一字線及一位元線。
  77. 如請求項76所述之記憶體執行個體,其中該第一位址及該第二位址共用一列,且其中該列解碼器經組態以將與藉由該列解碼器針對該第一位址啟動之字線相同的字線用於該第二位址。
  78. 如請求項76所述之記憶體執行個體,其中該至少一個列電路及該至少一個行電路包含開關元件。
  79. 如請求項76所述之記憶體執行個體,其中該至少一個列電路及該至少一個行電路包含經組態以充當開關之電晶體。
  80. 如請求項78所述之記憶體執行個體,其中啟動該至少一個列電路及該至少一個行電路中之對應者包含傳輸一或多個控制信號以閉合該等開關元件中之對應者。
  81. 一種用於雙埠存取之記憶體墊,其包含:
    複數個記憶體胞元,其沿著至少一列及至少一行配置且包含複數個電容性元件;
    至少兩個列解碼器,其用於啟動該至少一列;
    至少兩個行多工器,其用於啟動該至少一行;以及
    第一複數條導線,其將該等記憶體胞元連接至該至少兩個列解碼器中之一第一列解碼器及該至少兩個行多工器中之一第一行多工器;以及第二複數條導線,其將該等記憶體胞元連接至該至少兩個列解碼器中之一第二列解碼器及該至少兩個行多工器中之一第二行多工器。
  82. 如請求項81所述之記憶體墊,其中該等記憶體胞元包含電容器。
  83. 一種積體電路,其包含:
    一記憶體單元,其包含記憶體胞元、一輸出埠及讀取電路系統;以及一處理單元;
    其中該讀取電路系統包含一縮減單元及記憶體內讀取路徑之一第一群組,該等記憶體內讀取路徑用於經由該輸出埠輸出多達第一數目個位元;
    其中該處理單元經組態以將一讀取請求發送至該記憶體單元以自該記憶體單元讀取第二數目個位元;以及
    其中該縮減單元經組態以在由該讀取請求觸發之一讀取操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內讀取路徑。
  84. 如請求項83所述之積體電路,其中該縮減單元經組態以在該第二數目小於該第一數目時控制不相關的記憶體內讀取路徑,其中該等不相關的記憶體內讀取路徑與該第一數目個位元中之不相關位元相關聯,且其中該等不相關位元不包括於該第二數目個位元中。
  85. 如請求項84所述之積體電路,其中在該讀取操作期間,該縮減單元經組態以啟動相關的記憶體內讀取路徑,其中該等相關的記憶體內讀取路徑經組態以輸送該第二數目個位元。
  86. 如請求項84所述之積體電路,其中在該讀取操作期間,該縮減單元經組態以切斷該等不相關的的記憶體內讀取路徑中之每一者的至少一部分。
  87. 如請求項84所述之積體電路,其中在該讀取操作期間,該縮減單元經組態以將該等不相關的記憶體內讀取路徑維持於一低功率模式中。
  88. 如請求項84所述之積體電路,其中該縮減單元經組態以控制該等不相關的記憶體內讀取路徑之位元線。
  89. 如請求項84所述之積體電路,其中該縮減單元經組態以載入相關的記憶體內讀取路徑之位元線且將該等不相關的記憶體內讀取路徑之位元線維持於一低功率模式中。
  90. 如請求項84所述之積體電路,其中該縮減單元經組態以載入相關的記憶體內讀取路徑之位元線,同時將不相關的記憶體內讀取路徑之位元線維持為撤銷啟動。
  91. 如請求項83所述之積體電路,其中該縮減單元經組態以在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將每一不相關的記憶體內讀取路徑之一部分維持於一低功率模式中,其中該部分不同於一位元線。
  92. 如請求項83所述之積體電路,其中該縮減單元經組態以在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將不相關的記憶體內讀取路徑中之至少一些讀取路徑的一感測放大器維持於一低功率模式中。
  93. 如請求項83所述之積體電路,其中該縮減單元經組態以在該讀取操作 期間利用相關的記憶體內讀取路徑之部分,且將不相關的記憶體內讀取路徑中之至少一些讀取路徑的一感測放大器維持於一低功率模式中。
  94. 如請求項83所述之積體電路,其中該縮減單元經組態以在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將在不相關的記憶體內讀取路徑之感測放大器之後的不相關的記憶體內讀取路徑之部分維持於一低功率模式中。
  95. 如請求項83所述之積體電路,其中該記憶體單元包含一行多工器。
  96. 如請求項95所述之積體電路,其中該縮減單元耦接於該行多工器與該輸出埠之間。
  97. 如請求項95所述之積體電路,其中該縮減單元嵌入於該行多工器中。
  98. 如請求項95所述之積體電路,其中該縮減單元耦接於該等記憶體胞元與該行多工器之間。
  99. 如請求項83所述之積體電路,其中該縮減單元包含可獨立地控制之縮減子單元,且其中不同的縮減子單元與不同的記憶體單元行相關聯。
  100. 如請求項83所述之積體電路,其中該縮減單元不同於該處理單元。
  101. 如請求項83所述之積體電路,其中該縮減單元為該處理單元。
  102. 一種用於縮減一積體電路之能量的方法,該方法包含:
    藉由該積體電路之一處理單元將一讀取請求發送至該積體電路之一記憶體單元以自該記憶體單元讀取第二數目個位元,其中該記憶體單元包含記憶體胞元、一輸出埠及讀取電路系統,該讀取電路系統包含一縮減單元及記憶體內讀取路徑之一第一群組,該等記憶體內讀取路徑用於經由該輸出埠輸出多達第一數目個位元;以及
    藉由該縮減單元在由該讀取請求觸發之一讀取操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內讀取路徑。
  103. 如請求項102所述之方法,其中該控制包含在該第二數目小於該第一數目時控制不相關的記憶體內讀取路徑,其中該等不相關的記憶體內讀取路徑與該第一數目個位元中之不相關位元相關聯,且其中該等不相關位元不包括於該第二數目個位元中。
  104. 如請求項103所述之方法,其中該控制包含在該讀取操作期間啟動相關的記憶體內讀取路徑,其中該等相關的記憶體內讀取路徑經組態以輸送該第二數目個位元。
  105. 如請求項103所述之方法,其中該控制包含在該讀取操作期間切斷該等不相關的記憶體內讀取路徑中之每一者的至少一部分。
  106. 如請求項103所述之方法,其中該控制包含在該讀取操作期間將該等不相關的記憶體內讀取路徑維持於一低功率模式中。
  107. 如請求項103所述之方法,其中該控制包含控制該等不相關的記憶體內讀取路徑之位元線。
  108. 如請求項103所述之方法,其中該控制包含載入相關的記憶體內讀取路徑之位元線且將不相關的記憶體內讀取路徑之位元線維持於一低功率模式中。
  109. 如請求項103所述之方法,其中該控制包含載入相關的記憶體內讀取路徑之位元線,同時將不相關的記憶體內讀取路徑之位元線維持為撤銷啟動。
  110. 如請求項102所述之方法,其中該控制包含在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將每一不相關的記憶體內讀取路徑之一部分維持於一低功率模式中,其中該部分不同於一位元線。
  111. 如請求項102所述之方法,其中該控制包含在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將不相關的記憶體內讀取路徑中之至少一些讀取路徑的一感測放大器維持於一低功率模式中。
  112. 如請求項102所述之方法,其中該控制包含在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將不相關的記憶體內讀取路徑中之至少一些讀取路徑的一感測放大器維持於一低功率模式中。
  113. 如請求項102所述之方法,其中該控制包含在該讀取操作期間利用相關的記憶體內讀取路徑之部分,且將在不相關的記憶體內讀取路徑之感測放大器之後的不相關的記憶體內讀取路徑之部分維持於一低功率模式中。
  114. 如請求項102所述之方法,其中該記憶體單元包含一行多工器。
  115. 如請求項114所述之方法,其中該縮減單元耦接於該行多工器與該輸出埠之間。
  116. 如請求項114所述之方法,其中該縮減單元嵌入於該行多工器中。
  117. 如請求項114所述之方法,其中該縮減單元耦接於該等記憶體胞元與該行多工器之間。
  118. 如請求項102所述之方法,其中該縮減單元包含可獨立地控制之縮減子單元,且其中不同的縮減子單元與不同的記憶體單元行相關聯。
  119. 如請求項102所述之方法,其中該縮減單元不同於該處理單元。
  120. 如請求項102所述之方法,其中該縮減單元為該處理單元。
  121. 一種積體電路,其包含:
    一記憶體單元,其包含記憶體胞元、一輸出埠及寫入電路系統;以及一處理單元;
    其中該寫入電路系統包含一縮減單元及記憶體內寫入路徑之一第一群組,該等記憶體內寫入路徑用於經由該輸出埠輸出多達第一數目個位元;
    其中該處理單元經組態以將一寫入請求發送至該記憶體單元以寫入來自該記憶體單元之第二數目個位元;以及
    其中該縮減單元經組態以在由該寫入請求觸發之一寫入操作期間基於該第一數目個位元及該第二數目個位元而控制該等記憶體內寫入路徑。
  122. 一種記憶體單元,其包含:
    一第一記憶體墊;
    一第二記憶體墊;以及
    一啟動單元,其經組態以啟動包括於該第一記憶體墊中之記憶體胞元的一第一群組,而不啟動包括於該第二記憶體墊中之記憶體胞元的一第二群組,其中記憶體胞元之該第一群組及記憶體胞元之該第二群組皆屬於該記憶體單元之一單一列。
  123. 如請求項122所述之記憶體單元,其中該啟動單元經組態以啟動包括於該第二記憶體墊中之記憶體胞元的該第二群組,而不啟動記憶體胞元之該第一群組
  124. 如請求項122所述之記憶體單元,其中該啟動單元經組態以在完全啟動記憶體胞元之該第一群組之後啟動記憶體胞元之該第二群組。
  125. 如請求項123所述之記憶體單元,其中該啟動單元經組態在記憶體胞元之該第一群組的啟動已完成之後起始的一延遲時段期滿之後啟動記憶體胞元之該第二群組。
  126. 如請求項122所述之記憶體單元,其中該啟動單元經組態以基於一信號之一值啟動記憶體胞元之該第二群組,該信號係在耦接至記憶體胞元之該第一群組的一第一字線區段上產生的。
  127. 如請求項122所述之記憶體單元,其中該啟動單元包含安置於一第一字線區段與一第二字線區段之間的一中間電路,且其中該第一字線區段耦接至第一記憶體胞元且該第二字線區段耦接至第二記憶體胞元。
  128. 如請求項126所述之記憶體單元,其中該中間電路包含一正反器。
  129. 如請求項126所述之記憶體單元,其中該中間電路包含一開關。
  130. 如請求項126所述之記憶體單元,其中該中間電路包含一緩衝器。
  131. 如請求項126所述之記憶體單元,其中該中間電路包含一或多個反相器。
  132. 如請求項122所述之記憶體單元,其中第二記憶體胞元耦接至一第二字線區段,且其中該第二字線區段耦接至通過至少該第一記憶體墊之一旁路字線路徑。
  133. 如請求項122所述之記憶體單元,其中該啟動單元包含一控制單元,該控制單元經組態以控制一啟動信號至記憶體胞元之該第一群組及記憶體胞元之該第二群組的一供應,該啟動信號來自與該單一列相關聯之一字線。
  134. 一種記憶體單元,其包含:一第一記憶體墊、一第二記憶體墊及一啟動單元,該啟動單元經組態以將一啟動信號供應至該第一記憶體墊之記憶體胞元的一第一群組,且延遲該啟動信號至該第二記憶體墊之記憶體胞元之一第二群組的一供應,至少直至記憶體胞元之該第一群組的啟動已完成;其中記憶體胞元之該第一群組及記憶體胞元之該第二群組屬於該記憶體單元之一單一列。
  135. 如請求項134所述之記憶體單元,其中該啟動單元包含一延遲單元,該延遲單元經組態以延遲該啟動信號之該供應。
  136. 如請求項135所述之記憶體單元,進一步包含一比較器,該比較器經組態以在其一輸入端處接收該啟動信號且基於該啟動信號之至少一個特性控制該延遲單元。
  137. 一種記憶體單元,包含:一第一記憶體墊、一第二記憶體墊及一隔離單元,該隔離單元經組態以:
    在該第一記憶體墊之第一記憶體胞元被啟動之一初始啟動時段期間將 該等第一記憶體胞元與該第二記憶體墊之第二記憶體胞元相隔離;以及
    在該初始啟動時段之後將該等第一記憶體胞元耦接至該等第二記憶體胞元;其中該等第一記憶體胞元及該等第二記憶體胞元屬於該記憶體單元之一單一列。
  138. 一種用於操作一記憶體單元之方法,包含:
    藉由一啟動單元啟動包括於該記憶體單元之一第一記憶體墊中的記憶體胞元之一第一群組,而不啟動包括於該記憶體單元之一第二記憶體墊中的記憶體胞元之一第二群組,其中記憶體胞元之該第一群組及記憶體胞元之該第二群組皆屬於該記憶體單元之一單一列。
  139. 如請求項138所述之方法,包含藉由該啟動單元啟動記憶體胞元之該第二群組,而不啟動記憶體胞元之該第一群組。
  140. 如請求項138所述之方法,包含在完全啟動記憶體胞元之該第一群組之後啟動記憶體胞元之該第二群組。
  141. 如請求項138所述之方法,包含在記憶體胞元之該第一群組的啟動已完成之後起始的一延遲時段期滿之後啟動記憶體胞元之該第二群組。
  142. 如請求項138所述之方法,包含基於一信號之一值啟動記憶體胞元之該第二群組,該信號係在耦接至記憶體胞元之該第一群組的一第一字線區段上產生的。
  143. 如請求項138所述之方法,其中該啟動單元包含安置於一第一字線區段與一第二字線區段之間的一中間電路,且該第一字線區段耦接至第一記憶體胞元且該第二字線區段耦接至第二記憶體胞元。
  144. 如請求項143所述之方法,其中該中間電路包含一正反器。
  145. 如請求項143所述之方法,其中該中間電路包含一開關。
  146. 如請求項143所述之方法,其中該中間電路包含一緩衝器。
  147. 如請求項143所述之方法,其中該中間電路包含一或多個反相器。
  148. 如請求項148所述之方法,其中該等第二記憶體胞元耦接至一第二字線區段,且其中該第二字線區段耦接至通過至少該第一記憶體墊之一旁路字線路徑。
  149. 如請求項148所述之方法,包含藉由一控制單元來控制一啟動信號至記憶體胞元之該第一群組及記憶體胞元之該第二群組的一供應,該啟動信號來自與該單一列相關聯之一字線。
  150. 一種積體電路,包含:
    一基板;
    一記憶體陣列,其安置於該基板上;
    一處理陣列,其安置於該基板上;以及
    一介面,其安置於該基板上;
    其中該記憶體陣列包含多個記憶體組;
    其中該處理陣列包含複數個測試單元;
    其中該等複數個測試單元經組態以測試該多個記憶體組以提供測試結果;以及
    其中該介面經組態以在該積體電路外部輸出指示該等測試結果之資訊。
  151. 如請求項150所述之積體電路,其中該等複數個測試單元中之每一者包含一測試圖案產生器,該測試圖案產生器經組態以產生一測試圖案以供該等複數個測試單元中之一特定測試單元使用以測試該多個記憶體組中之至少一者。
  152. 如請求項150所述之積體電路,其中該等複數個測試單元包含至少一個測試圖案產生器,該至少一個測試圖案產生器經組態以產生至少一個測試圖案以供用於測試該多個記憶體組中之一或多者。
  153. 如請求項152所述之積體電路,其中該至少一個測試圖案產生器經組態以自該介面接收用於產生該至少一個測試圖案之指令。
  154. 如請求項153所述之積體電路,其中該介面經組態以自該積體電路外部之一外部單元接收組態資訊,該組態資訊包括用於產生該至少一個測試圖案之該等指令。
  155. 如請求項152所述之積體電路,其中該至少一個測試圖案產生器經組態以自該記憶體陣列讀取包括用於產生該至少一個測試圖案之指令的組態資訊。
  156. 如請求項154所述之積體電路,其中該組態資訊包括一向量。
  157. 如請求項153所述之積體電路,其中該介面經組態以自該積體電路外部之一外部單元接收組態資訊,該組態資訊包含為該至少一個測試圖案之指令。
  158. 如請求項150所述之積體電路,其中至少一個測試圖案包含待在該記憶體陣列之該測試期間存取的記憶體陣列條目。
  159. 如請求項158所述之積體電路,其中該至少一個測試圖案進一步包含待寫入至在該記憶體陣列之該測試期間存取之該等記憶體陣列條目的輸入資料。
  160. 如請求項158所述之積體電路,其中該至少一個測試圖案進一步包含待寫入至在該記憶體陣列之該測試期間存取之該等記憶體陣列條目的輸入資料,且其中該至少一個測試圖案亦包括待自在該記憶體陣列之該測試期間存取之該等記憶體陣列條目讀取的輸出資料之預期值。
  161. 如請求項150所述之積體電路,其中該等複數個測試單元經組態以自該記憶體陣列擷取一旦由該等複數個測試單元執行便使該等複數個測試單元測試該記憶體陣列之測試指令。
  162. 如請求項161所述之積體電路,其中該等測試指令包括於組態資訊中。
  163. 如請求項162所述之積體電路,其中該組態資訊包含該記憶體陣列之該測試的預期結果。
  164. 如請求項162所述之積體電路,其中該組態資訊包含待自在該記憶體陣列之該測試期間存取之記憶體陣列條目讀取的輸出資料之值。
  165. 如請求項162所述之積體電路,其中該組態資訊包括一向量。
  166. 如請求項150所述之積體電路,其中該等複數個測試單元經組態以自該記憶體陣列擷取一旦由該等複數個測試單元執行便使該等複數個測試單元測試該記憶體陣列且測試該處理陣列之測試指令。
  167. 如請求項166所述之積體電路,其中該等測試指令包括於組態資訊中。
  168. 如請求項167所述之積體電路,其中該組態資訊包括一向量。
  169. 如請求項167所述之積體電路,其中該組態資訊包含該記憶體陣列及該處理陣列之該測試的預期結果。
  170. 如請求項150所述之積體電路,其中該等複數個測試單元缺乏一測試圖案產生器,該測試圖案產生器用於產生在該多個記憶體組之該測試期間使用的一測試圖案。
  171. 如請求項150所述之積體電路,其中該等複數個測試單元中之至少兩個經組態以平行地測試該多個記憶體組中之至少兩個。
  172. 如請求項150所述之積體電路,其中該等複數個測試單元中之至少兩個經組態以串行地測試該多個記憶體組中之至少兩個。
  173. 如請求項150所述之積體電路,其中指示該等測試結果之該資訊包含故障記憶體陣列條目之識別符。
  174. 如請求項173所述之積體電路,其中該介面經組態以在該記憶體陣列之該測試期間多次擷取由複數個測試電路獲得之部分測試結果。
  175. 如請求項150所述之積體電路,其包含一錯誤校正單元,該錯誤校正單元經組態以校正在該記憶體陣列之測試期間偵測到的至少一個錯 誤。
  176. 如請求項150所述之積體電路,其中該積體電路為一記憶體晶片。
  177. 如請求項150所述之積體電路,其中該積體電路包括一分散式處理器,其中該處理陣列包含該分散式處理器之複數個子單元。
  178. 如請求項177所述之積體電路,其中該等處理器子單元中之每一者與多個記憶體組中之一對應的專用記憶體組相關聯。
  179. 如請求項150所述之積體電路,其中指示該等測試結果之該資訊指示至少一個記憶體組之一狀態。
  180. 一種積體電路,其包含:
    一基板;
    一記憶體陣列,其安置於該基板上;
    一處理陣列,其安置於該基板上;以及
    一介面,其安置於該基板上;
    其中該記憶體陣列包含多個記憶體組;
    其中該介面經組態以接收包含指令之組態資訊;
    其中該處理陣列經組態以執行該等指令以存取該記憶體陣列,執行演算運算且提供結果;以及
    其中該介面經組態以在該積體電路外部輸出指示該等結果之資訊。
  181. 如請求項180所述之積體電路,其中該組態資訊包含該等指令、用以寫入該等指令之記憶體條目的位址、輸入資料,及用以接收在該等指令之該執行期間計算得之輸出值的記憶體條目之位址。
  182. 如請求項180所述之積體電路,其中該處理陣列之至少兩個處理器經組態以平行地執行需要存取該多個記憶體組中之至少兩個的不同指令。
  183. 如請求項180所述之積體電路,其中該處理陣列之至少兩個處理器經 組態成以一非重疊方式執行需要存取該多個記憶體組中之至少兩個的不同指令
  184. 如請求項180所述之積體電路,其包含一錯誤校正單元,該錯誤校正單元經組態以校正在該記憶體陣列之測試期間偵測到的至少一個錯誤。
  185. 如請求項180所述之積體電路,其中該積體電路為一記憶體晶片。
  186. 如請求項180所述之積體電路,其中該積體電路包括一分散式處理器,其中該處理陣列包含該分散式處理器之複數個子單元。
  187. 如請求項186所述之積體電路,其中該等處理器子單元中之每一者與多個記憶體組中之一對應的專用記憶體組相關聯。
  188. 一種用於測試一積體電路之記憶體組的方法,該方法包含:
    接收測試一積體電路之記憶體組的一請求,該積體電路包含一基板、安置於該基板上且包含該等記憶體組之一記憶體陣列、安置於該基板上之一處理陣列,及安置於該基板上之一介面;其中該處理陣列包含複數個測試單元;
    藉由該等複數個測試單元且回應於該請求而測試多個記憶體組以提供測試結果;以及
    藉由該介面及在該積體電路外部輸出指示該等測試結果之資訊。
  189. 如請求項188所述之方法,其中該等複數個測試單元中之每一者包含一測試圖案產生器,其中該方法包含藉由該等測試圖案產生器中之一些測試圖案產生器產生測試圖案以供該等複數個測試單元中之一特定測試單元使用以測試該多個記憶體組中之至少一者。
  190. 如請求項188所述之方法,其中該等複數個測試單元包含至少一個測試圖案產生器,其中該方法包含藉由該至少一個測試圖案產生器產生至少一個測試圖案以供用於測試該多個記憶體組中之一或多者。
  191. 如請求項190所述之方法,其包含藉由該至少一個測試圖案產生器自該介面接收用於產生該至少一個測試圖案之指令。
  192. 如請求項191所述之方法,其包含藉由該介面及自該積體電路外部之一外部單元接收組態資訊,該組態資訊包括用於產生該至少一個測試圖案之該等指令。
  193. 如請求項190所述之方法,其包含藉由該至少一個測試圖案產生器自該記憶體陣列讀取組態資訊,該組態資訊包括用於產生該至少一個測試圖案之指令。
  194. 如請求項193所述之方法,其中該組態資訊包括一向量。
  195. 如請求項191所述之方法,其包含藉由該介面及自該積體電路外部之一外部單元接收組態資訊,該組態資訊包含為該至少一個測試圖案之指令。
  196. 如請求項188所述之方法,其中至少一個測試圖案包含待在該記憶體陣列之測試期間存取的記憶體陣列條目。
  197. 如請求項196所述之方法,其中該至少一個測試圖案進一步包含待寫入至在該記憶體陣列之該測試期間存取之該等記憶體陣列條目的輸入資料。
  198. 如請求項196所述之積體電路,其中該至少一個測試圖案進一步包含待寫入至在該記憶體陣列之該測試期間存取之該等記憶體陣列條目的輸入資料,且其中該至少一個測試圖案亦包括待自在該記憶體陣列之該測試期間存取之該等記憶體陣列條目讀取的輸出資料之預期值。
  199. 如請求項188所述之方法,其包含藉由複數個測試單元及自該記憶體陣列擷取一旦由該等複數個測試單元執行便使該等複數個測試單元測試該記憶體陣列之測試指令。
  200. 如請求項199所述之方法,其中該等測試指令包括於組態資訊中。
  201. 如請求項200所述之方法,其中該組態資訊包含該記憶體陣列之該測試的預期結果。
  202. 如請求項200所述之方法,其中該組態資訊包含待自在該記憶體陣列之該測試期間存取之記憶體陣列條目讀取的輸出資料之值。
  203. 如請求項200所述之方法,其中該組態資訊包括一向量。
  204. 如請求項188所述之方法,其包含藉由該等複數個測試單元及自該記憶體陣列接收一旦由該等複數個測試單元執行便使該等複數個測試單元測試該記憶體陣列且測試該處理陣列之測試指令。
  205. 如請求項204所述之方法,其中該等測試指令包括於組態資訊中。
  206. 如請求項204所述之方法,其中該組態資訊包括一向量。
  207. 如請求項204所述之方法,其中該組態資訊包含該記憶體陣列及該處理陣列之該測試的預期結果。
  208. 如請求項188所述之方法,其中該等複數個測試單元缺乏一測試圖案產生器,該測試圖案產生器用於產生在該多個記憶體組之該測試期間使用的一測試圖案。
  209. 如請求項188所述之方法,其包含藉由該等複數個測試單元中之至少兩個平行地測試該多個記憶體組中之至少兩個。
  210. 如請求項188所述之方法,其包含藉由該等複數個測試單元中之至少兩個串行地測試該多個記憶體組中之至少兩個。
  211. 如請求項188所述之方法,其中指示該等測試結果之該資訊包含故障記憶體陣列條目之識別符。
  212. 如請求項188所述之方法,其包含藉由該介面在該記憶體陣列之該測試期間多次接收由複數個測試電路獲得之部分測試結果。
  213. 如請求項188所述之方法,其包含藉由一錯誤校正單元校正在該記憶體陣列之測試期間偵測到的至少一個錯誤。
  214. 如請求項188所述之方法,其中該積體電路為一記憶體晶片。
  215. 如請求項188所述之方法,其中該積體電路包括一分散式處理器,其中該處理陣列包含該分散式處理器之複數個子單元。
  216. 如請求項215所述之方法,其中該等處理器子單元中之每一者與多個記憶體組中之一對應的專用記憶體組相關聯。
  217. 如請求項188所述之方法,其中指示該等測試結果之該資訊指示至少一個記憶體組之一狀態。
  218. 一種用於測試一積體電路之記憶體組的方法,該方法包含:藉由一積體電路之一介面接收包含指令之組態資訊,該積體電路包含一基板、包含記憶體組且安置於該基板上之一記憶體陣列、安置於該基板上之一處理陣列;及安置於該基板上之一介面;藉由該處理陣列執行該等指令,該執行係藉由存取該記憶體陣列、執行演算運算及提供結果來進行;以及藉由該介面及在該積體電路外部輸出指示該等結果之資訊。
  219. 如請求項218所述之方法,其中該組態資訊包含該等指令、用以寫入該等指令之記憶體條目的位址、輸入資料,及用以接收在該等指令之該執行期間計算得之輸出值的記憶體條目之位址。
  220. 如請求項218所述之方法,其包含藉由該處理陣列之至少兩個處理器平行地執行需要存取該多個記憶體組中之至少兩個的不同指令。
  221. 如請求項218所述之方法,其包含藉由該處理陣列之至少兩個處理器串行地執行需要存取該多個記憶體組中之至少兩個的不同指令。
  222. 如請求項218所述之方法,其包含藉由一錯誤校正單元校正在該記憶體陣列之測試期間偵測到的至少一個錯誤。
  223. 如請求項218所述之方法,其中該積體電路為一記憶體晶片。
  224. 如請求項218所述之方法,其中該積體電路包括一分散式處理器,其 中該處理陣列包含該分散式處理器之複數個子單元。
  225. 如請求項218所述之方法,其中該等處理器子單元中之每一者與多個記憶體組中之一對應的專用記憶體組相關聯。
TW108132302A 2018-09-06 2019-09-06 基於記憶體的處理器 TW202027076A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862727653P 2018-09-06 2018-09-06
US62/727,653 2018-09-06

Publications (1)

Publication Number Publication Date
TW202027076A true TW202027076A (zh) 2020-07-16

Family

ID=69722252

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108132302A TW202027076A (zh) 2018-09-06 2019-09-06 基於記憶體的處理器

Country Status (5)

Country Link
EP (1) EP3847553A4 (zh)
KR (1) KR20210068034A (zh)
CN (1) CN112912856B (zh)
TW (1) TW202027076A (zh)
WO (1) WO2020049363A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI783573B (zh) * 2020-09-08 2022-11-11 旺宏電子股份有限公司 記憶體裝置及其操作方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI779069B (zh) * 2017-07-30 2022-10-01 埃拉德 希提 具有以記憶體為基礎的分散式處理器架構的記憶體晶片
US20220269645A1 (en) 2019-08-13 2022-08-25 Neuroblade Ltd. Memory mat as a register file
US11217296B2 (en) * 2020-03-27 2022-01-04 Micron Technology, Inc. Staggered refresh counters for a memory device
WO2022082115A1 (en) * 2020-10-16 2022-04-21 Neuroblade Ltd. Memory appliances for memory intensive operations
FR3118829B1 (fr) * 2021-01-14 2024-06-21 Commissariat Energie Atomique Matrice de commutateurs elementaires formant un message, procedes d’ecriture et de lecture associes
US20230051863A1 (en) * 2021-08-10 2023-02-16 Micron Technology, Inc. Memory device for wafer-on-wafer formed memory and logic
KR102389444B1 (ko) * 2021-12-14 2022-04-22 주식회사 스카이칩스 IoT 센서 디바이스에 범용적으로 사용 가능한 스케일러블 PIM 기반 자가전원공급 신호처리회로
CN115237822B (zh) * 2022-09-22 2022-12-30 之江实验室 一种针对晶圆级处理器iic配置接口的地址优化装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981188B2 (en) * 2001-08-16 2005-12-27 Tower Semiconductor Ltd. Non-volatile memory device with self test
US7043599B1 (en) * 2002-06-20 2006-05-09 Rambus Inc. Dynamic memory supporting simultaneous refresh and data-access transactions
US7342841B2 (en) * 2004-12-21 2008-03-11 Intel Corporation Method, apparatus, and system for active refresh management
JP4756581B2 (ja) * 2005-07-21 2011-08-24 ルネサスエレクトロニクス株式会社 半導体記憶装置
US7565479B2 (en) * 2005-08-04 2009-07-21 Rambus Inc. Memory with refresh cycle donation to accommodate low-retention-storage rows
KR20090013342A (ko) * 2007-08-01 2009-02-05 삼성전자주식회사 멀티 포트 반도체 메모리 장치 및 그에 따른 리프레쉬 방법
US8930618B2 (en) * 2010-08-24 2015-01-06 Futurewei Technologies, Inc. Smart memory
KR20120028581A (ko) * 2010-09-15 2012-03-23 삼성전자주식회사 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 장치들
US8705302B2 (en) * 2010-09-24 2014-04-22 Samsung Electronics Co., Ltd. Semiconductor memory devices having self-refresh capability
JP2013182635A (ja) * 2012-02-29 2013-09-12 Elpida Memory Inc 半導体装置及びこれを備える情報処理システム並びに半導体装置の制御方法
US9384821B2 (en) * 2012-11-30 2016-07-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
KR20140113191A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 반도체 메모리 장치 및 이의 리프레쉬 방법
US9087569B2 (en) * 2013-11-26 2015-07-21 Lenovo (Singapore) Pte. Ltd. Non-volatile memory validity

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI783573B (zh) * 2020-09-08 2022-11-11 旺宏電子股份有限公司 記憶體裝置及其操作方法

Also Published As

Publication number Publication date
CN112912856A (zh) 2021-06-04
EP3847553A4 (en) 2022-05-18
WO2020049363A2 (en) 2020-03-12
KR20210068034A (ko) 2021-06-08
CN112912856B (zh) 2024-06-07
WO2020049363A3 (en) 2020-05-14
EP3847553A2 (en) 2021-07-14

Similar Documents

Publication Publication Date Title
TWI779069B (zh) 具有以記憶體為基礎的分散式處理器架構的記憶體晶片
CN112912856B (zh) 基于存储器的处理器
US11817167B2 (en) Variable word length access
EP4010808A2 (en) Memory-based processors