TWI764128B - 具有後通道應用之準揮發性記憶體裝置 - Google Patents

具有後通道應用之準揮發性記憶體裝置

Info

Publication number
TWI764128B
TWI764128B TW109111807A TW109111807A TWI764128B TW I764128 B TWI764128 B TW I764128B TW 109111807 A TW109111807 A TW 109111807A TW 109111807 A TW109111807 A TW 109111807A TW I764128 B TWI764128 B TW I764128B
Authority
TW
Taiwan
Prior art keywords
memory
volatile memory
quasi
data
controller
Prior art date
Application number
TW109111807A
Other languages
English (en)
Other versions
TW202101204A (zh
Inventor
羅伯D 諾瑪
伊萊 哈拉利
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 TW202101204A publication Critical patent/TW202101204A/zh
Application granted granted Critical
Publication of TWI764128B publication Critical patent/TWI764128B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0652Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00 the devices being arranged next and on each other, i.e. mixed assemblies
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/03Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes
    • H01L25/04Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers
    • H01L25/065Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof all the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N, e.g. assemblies of rectifier diodes the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L25/0657Stacked arrangements of devices
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L25/00Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof
    • H01L25/18Assemblies consisting of a plurality of individual semiconductor or other solid state devices ; Multistep manufacturing processes thereof the devices being of types provided for in two or more different subgroups of the same main group of groups H01L27/00 - H01L33/00, or in a single subclass of H10K, H10N
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/12Structure, shape, material or disposition of the bump connectors prior to the connecting process
    • H01L2224/13Structure, shape, material or disposition of the bump connectors prior to the connecting process of an individual bump connector
    • H01L2224/13001Core members of the bump connector
    • H01L2224/1302Disposition
    • H01L2224/13025Disposition the bump connector being disposed on a via connection of the semiconductor or solid-state body
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/12Structure, shape, material or disposition of the bump connectors prior to the connecting process
    • H01L2224/13Structure, shape, material or disposition of the bump connectors prior to the connecting process of an individual bump connector
    • H01L2224/13001Core members of the bump connector
    • H01L2224/13099Material
    • H01L2224/131Material with a principal constituent of the material being a metal or a metalloid, e.g. boron [B], silicon [Si], germanium [Ge], arsenic [As], antimony [Sb], tellurium [Te] and polonium [Po], and alloys thereof
    • H01L2224/13138Material with a principal constituent of the material being a metal or a metalloid, e.g. boron [B], silicon [Si], germanium [Ge], arsenic [As], antimony [Sb], tellurium [Te] and polonium [Po], and alloys thereof the principal constituent melting at a temperature of greater than or equal to 950°C and less than 1550°C
    • H01L2224/13147Copper [Cu] as principal constituent
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16135Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip
    • H01L2224/16145Disposition the bump connector connecting between different semiconductor or solid-state bodies, i.e. chip-to-chip the bodies being stacked
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2224/00Indexing scheme for arrangements for connecting or disconnecting semiconductor or solid-state bodies and methods related thereto as covered by H01L24/00
    • H01L2224/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L2224/10Bump connectors; Manufacturing methods related thereto
    • H01L2224/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L2224/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • H01L2224/161Disposition
    • H01L2224/16151Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive
    • H01L2224/16221Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked
    • H01L2224/16225Disposition the bump connector connecting between a semiconductor or solid-state body and an item not being a semiconductor or solid-state body, e.g. chip-to-substrate, chip-to-passive the body and the item being stacked the item being non-metallic, e.g. insulating substrate with or without metallisation
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2225/00Details relating to assemblies covered by the group H01L25/00 but not provided for in its subgroups
    • H01L2225/03All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00
    • H01L2225/04All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers
    • H01L2225/065All the devices being of a type provided for in the same subgroup of groups H01L27/00 - H01L33/648 and H10K99/00 the devices not having separate containers the devices being of a type provided for in group H01L27/00
    • H01L2225/06503Stacked arrangements of devices
    • H01L2225/06541Conductive via connections through the device, e.g. vertical interconnects, through silicon via [TSV]
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L24/00Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
    • H01L24/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L24/10Bump connectors ; Manufacturing methods related thereto
    • H01L24/12Structure, shape, material or disposition of the bump connectors prior to the connecting process
    • H01L24/13Structure, shape, material or disposition of the bump connectors prior to the connecting process of an individual bump connector
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L24/00Arrangements for connecting or disconnecting semiconductor or solid-state bodies; Methods or apparatus related thereto
    • H01L24/01Means for bonding being attached to, or being formed on, the surface to be connected, e.g. chip-to-package, die-attach, "first-level" interconnects; Manufacturing methods related thereto
    • H01L24/10Bump connectors ; Manufacturing methods related thereto
    • H01L24/15Structure, shape, material or disposition of the bump connectors after the connecting process
    • H01L24/16Structure, shape, material or disposition of the bump connectors after the connecting process of an individual bump connector
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/15Details of package parts other than the semiconductor or other solid state devices to be connected
    • H01L2924/151Die mounting substrate
    • H01L2924/1517Multilayer substrate
    • H01L2924/15192Resurf arrangement of the internal vias
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L2924/00Indexing scheme for arrangements or methods for connecting or disconnecting semiconductor or solid-state bodies as covered by H01L24/00
    • H01L2924/15Details of package parts other than the semiconductor or other solid state devices to be connected
    • H01L2924/151Die mounting substrate
    • H01L2924/153Connection portion
    • H01L2924/1531Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface
    • H01L2924/15311Connection portion the connection portion being formed only on the surface of the substrate opposite to the die mounting surface being a ball array, e.g. BGA

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一準揮發記憶體堆疊,其包含至少一個半導體晶片;於其中形成準揮發記憶體電路;鍵合到該準揮發記憶體之一記憶體控制器所形成的一第二半導體上。在已鍵合的半導體晶片當中的電路係透過多個銅互連導體和導電性的矽穿孔彼此連接。該準揮發記憶體控制器可以包含連接到額外的後背通道裝置之一或多個介面,使得該準揮發記憶體控制器同樣作為每個後背通道裝置的控制器並且用於提供額外的服務。該準揮發記憶體控制器在一個後背通道裝置與該準揮發記憶體之間進行資料轉移,而無須主機中央處理器控制單元的介入。

Description

具有後通道應用之準揮發性記憶體裝置
本發明大致上關於積體電路(晶片),例如處理器與主要儲存記憶體技術。更精確地,本發明關於加強型隨機存取記憶體晶片的操作與使用模式。
本發明係關於並主張下列申請案的優先權:(i)第一美國臨時申請案,申請號為62/831,611,申請日為2019年四月9日,名稱為具有後通道(或稱後背通道)應用之準揮發(quasi-volatile)記憶體;以及(ii)第七美國臨時申請案,申請號為62/867,604,申請日為2019年六月27日,名稱為具有後通道應用之準揮發(quasi-volatile)記憶體裝置。
本發明亦有關於(i)第二美國臨時申請案,申請號為62/735,678,申請日為2018年九月24日,名稱為三維非或閘記憶體製造過程中的晶圓鍵合;以及(ii)第三美國臨時申請案,申請號為62/843,733,申請日為2019年五月6日,名稱為使用晶圓鍵合的嵌入式高頻寬高容量記憶體裝置。
本發明也有關於第一美國專利申請案,申請號為16/107,306,申請日為2018年八月21日,名稱為在三維陣列中的電容性耦合的非揮發性薄膜電晶體串。該第一美國專利申請案為第二美國專利申請 案的分割案。該第二美國專利申請案的申請號為15/248,420,申請日為2016年八月26日,名稱為在三維陣列中的電容性耦合的非揮發性薄膜電晶體串。該第二美國專利申請案係關於並主張下列申請案的優先權:(i)第四美國臨時申請案,申請號為62/235,322,申請日為2015年九月30日,名稱為具有垂直控制閘的堆疊式水平主動條帶當中的多閘之非或閘快閃薄膜電晶體串;(ii)第五美國臨時申請案,申請號為62/260,137,申請日為2015年十一月25日,名稱為三維垂直NOR快閃薄膜電晶體串;(iii)第三美國專利申請案,申請號為15/220,375,申請日為2016年七月26日,名稱為具有垂直控制閘的堆疊式水平主動條帶當中的多閘之非或閘快閃薄膜電晶體串;以及(iv)第六美國臨時申請案,申請號為62/363,189,申請日為2016年七月15日,名稱為電容式耦合的非揮發性薄膜電晶體串。上述的第一至第七美國臨時申請案與第一至第三美國專利申請案的全部揭露內容在此作為參考。
典型的計算機系統可以包含一或多個中央處理器單元,每個中央處理器單元具有一或多個核心。除此之外,這種計算機系統通常包含其他的元件,用於延伸中央處理器單元的功能,例如用於透過一記憶體匯流排自一隨機存取記憶體儲存與提取資料的一記憶體控制器。許多其他的匯流排與裝置可以用於執行多種其他的功能。
在一種架構當中,有兩種連接到中央處理器單元的裝置(合稱為晶片組)用於連接其餘的支援裝置。典型地,這些裝置被稱之為北橋與南橋。北橋作為高速記憶體的控制器,並且提供存取埠來連接隨機存取記憶體。隨機存取記憶體可以用雙列直插式記憶體模組(DIMM,dual in-line memory module)的型式來實現。此外,典型的北橋也具有一個視訊通道。近來,某些設計將北橋晶片整合到中央處理器單元當中。南橋支援較慢存取交易(例如輸入或輸出交易)的周邊裝置。南橋可以包含一個開機記憶體連接埠,用於連接一非揮發性記憶體與一個磁碟連接埠(例如支援先進技術附件ATA或串流式先進技術附件SATA傳輸協定)以便與一存儲系統進行通信。南橋也支援其他種類的輸出入連接埠(例如通用串列匯流排USB),例如多種特定的控制器,通常用於控制一或多種工業標準的周邊匯流排(例如PCIe匯流排)。上述控制器的一例為網路介面卡(NIC,network interface card),其透過以太網路連線執行與一計算機網路(如網際網路)之間的數據通訊。網路介面卡支援本機系統與遠端系統(雲端)的輸出輸入交易,諸如將遠端系統的資料轉移到本機系統的隨機存取記憶體,或是將本機的隨機存取記憶體內的資料轉移到遠端系統。例如當瀏覽器自雲端取得一影像檔或是檔案供顯示時,網路介面卡執行一個輸出入交易。
在較高端的系統當中,通常有一個專屬的磁碟介面卡用於處理在區域與遠端網路進行存儲的通訊。例如,磁碟介面卡可以使用儲存區域網路(SAN,storage area network)的光纖通道,或是網路附加儲存(NAS,network attached storage)的以太網路加以實施。其餘的範例包含符合SATA、ATA、小型計算機系統SCSI、串列式小型計算機系統SAS、InfiniBand與其他介面協定的裝置。中央處理器單元通常藉由一工業標準介面(例如PCIe介面)與該磁碟介面卡通訊。
上述的裝置是基礎模組,這些模組可以打造多種複雜程度的系統,從簡單的裝置(例如膝上型計算機)到極度特化應用與具有非常精 密性能的高端伺服器。這些系統橫跨在各類平台的頻譜之上,其運算速度、硬體複雜度、作業系統與應用軟體都是不同的。
歷史上,通常透過提高運作時脈以及縮小至特定尺寸來滿足更高性能的需求,而這些主要都來自於製程技術的進步。這種方法可能正要達到其極限,例如下一代技術所能提供的更高速與更高密度的電路可能不再是理所當然的了。性能的進步更多地是來自於中央處理器單元架構的進步,例如增加處理核心以便執行更多平行的行程(process)。然而,在改善中央處理器單元的功耗與資料傳輸瓶頸方面,僅有少數值得一提的進展。
隨機存取記憶體是高性能運算的基礎。然而,記憶體的速度與吞吐量並沒有跟上中央處理器的需求。例如,性能的下降通常是因為透過外部連接埠、以及透過較慢速、較高延遲的記憶體裝置所進行的資料存取。在這方面,可以透過增加中央處理器單元的快取記憶體的數量,部分地緩解上述的問題。然而,近來中央處理器的快取記憶體的數量已經變得如此巨大,使得數量增加的效果也遞減了。無論如何,記憶體介面的標準組織們恆常地為了更高的記憶體存取速率與吞吐量而努力。例如,共通的動態隨機記憶體介面(DRAM),也就是雙倍資料率(DDR,double data rate)介面,持續地改進規格,從DDR1、DDR2、DDR3、DDR4以至於DDR5,以增加記憶體存取速率與吞吐量。諸如製造記憶體元件與其控制器的高性能製程工藝的逐漸進步,才能達成上述規格的進步,但製程工藝的進步也面臨到了極限。
其他達成更高系統效能的方式包含了卸載或簡化中央處理 器的運行負荷。其中一種方式是將中央處理器單元的行程外包(outbound)。舉例來說,為了雲端儲存的安全防護而加密的檔案,中央處理器與其相連的隨機存取記憶體並不執行加密的工作,此工作卸載到一加速電路板,該加速電路板執行接收、加密以及轉送檔案到雲端儲存空間。通常是經過直接記憶體存取(DMA,direct memory access)電路來將資料移進或移出主記憶體。但是中央處理器單元必須牽涉到管理記憶體相關的資料移轉,使得效率降低的問題依舊存在。
圖1為傳統計算機系統100的架構之示意圖。如圖1所示,中央處理器單元101係透過北橋102的一或多高速通道,連接到高速記憶體106(亦即動態隨機存取記憶體DRAM)。此外,中央處理器101還可以透過一或多個周邊匯流排(例如PCIe匯流排)存取周邊裝置(例如存儲裝置或網路連線裝置)的資料。南橋103可以包含直接記憶體DMA存取控制器,以便在上述裝置與高速記憶體106之間轉移資料。可能作為伺服器的計算機系統100的運作速度,取決於資料能夠多快地轉移。
在計算機系統100當中,作業系統OS為使用中央處理器單元101的每一個應用程式或作業系統行程(processes)分配執行時間。在此種安排底下,每一行程在所分配的時間當中使用中央處理器單元101,除非它為了等待資料轉移而暫停,或是被較高優先度的行程排擠。無論哪一種情況,在一個文本切換操作(context switch)中,中央處理器單元101被交給另一個行程使用。(典型地,和系統行程相比,應用程式行程分配到較低優先度。)在這個過程當中,高速記憶體106的大小是一個既存的瓶頸,新行程的動態影像必須在文本切換中載入到高速記憶體106當中。傳統以電容 為主的動態隨機存取記憶體晶片可能已經達到或接近製造工藝的極限,很難再增加密度以便滿足更大的工作負荷。如果不增加密度,就需要增加動態隨機存取記憶體晶片的數量來滿足工作負荷,這對於設計記憶體通道的電氣特性上是個挑戰。
有人提議一種方案,利用稱之為持續性記憶體(persistent memory)裝置的一種非揮發性記憶體來取代部分的高速記憶體106。持續性記憶體裝置的密度較傳統的動態隨機存取記憶來得高,甚至當電力中斷時還能夠保存資料。此外,持續性記憶體裝置不需要區塊管理來執行固定的擦除(erase)作業,並且能夠比傳統的非揮發性記憶體(例如快閃記憶體裝置)提供更快速的資料存取速率。然而,即便是比傳統非揮發性記憶體裝置的讀寫速度更快,持續性記憶體裝置還是顯著地慢於傳統的動態隨機存取記憶體裝置。因此,為了在同一系統當中與動態隨機存取記憶體裝置並存,一個由持續性記憶體與動態隨機存取記憶體組成的高速記憶體,必須提供分開的通道,以便適應其時脈上的差異。通常來說,必須由分別不同的記憶體控制器來提供分開的通道,通常並不能利用單一控制器動態地在不同的裝置之間進行切換。圖2顯示圖1的計算機系統100,其具有不同的通道CH 0與CH 1以分別連接動態隨機存取記憶體DRAM的高速記憶體106與持續性記憶體107(注意:由於時脈的差異,動態隨機存取記憶體DRAM和持續性記憶體位於不同的中央處理器單元的通道上。)。甚至在持續性記憶體107所提供的密度和資料保存特性的優點是相當顯著的情況下,其伴隨而來的系統複雜度和延遲性的開銷抵銷了這些優點。
因此,亟需完全不同的記憶體設計、操作與使用模式,以 便能夠達成更佳的中央處理器或系統的效能。
根據本發明的一實施例,一準揮發記憶體堆疊,其包含至少一個半導體晶片;於其中形成準揮發記憶體電路;鍵合到該準揮發記憶體之一記憶體控制器所形成的一第二半導體上。在已鍵合的半導體晶片當中的電路係透過多個銅互連導體和導電性的矽穿孔(TSVs)彼此連接。該準揮發記憶體控制器可以包含連接到額外的後背通道裝置之一或多個介面,使得該準揮發記憶體控制器同樣作為每個後背通道裝置的控制器並且用於提供額外的服務。該準揮發記憶體控制器在一個後背通道裝置與該準揮發記憶體之間進行資料轉移,而無須主機中央處理器控制單元的介入。
根據本發明的一實施例,一種記憶體模組包含:(a)一第一半導體晶片,於其上形成一或多個準揮發記憶體陣列的一第一集合與互連導體的一第一群組,其用於對上述之準揮發記憶體陣列的讀取、寫入或擦除作業傳送與接收資料與控制信號;以及(b)鍵合至該第一半導體晶片的一第二半導體晶片,於該第二半導體晶片其上形成一記憶體控制器電路,該記憶體控制器電路包含一內部匯流排,該內部匯流排連接該記憶體控制器及透過該第一群組之互連導體以便連接到該第一集合之準揮發記憶體陣列,其中該記憶體控制器在讀取、寫入或擦除作業時,傳送與接收上述之資料與控制信號以便存取該第一集合之準揮發記憶體陣列。記憶體控制器包含一主機記憶體介面,以允許一主機處理器要求該記憶體控制器執行交易。
根據本發明的一實施例,上述之記憶體模組更包含實質上 與該第一半導體晶片相同的一第三半導體晶片,其中於該第三半導體晶片之上的互聯導體係透過該第一半導體晶片的部分互連導體與矽穿孔連接到該內部匯流排,使得該第二半導體晶片的該記憶體控制器可以連接到該第三半導體晶片的該準揮發記憶體陣列。在此種安排之下,該記憶體控制器作為該記憶體模組內之全部準揮發記憶體的控制器。
根據本發明的一實施例,上述之記憶體模組可以更包含一介面電路,用於連接該內部匯流排與一後背通道裝置,以令該後背通道裝置與該記憶體模組內的該準揮發記憶體陣列之間進行資料轉移。在某些實施例當中,該介面電路包含多個連接埠。在某些實施例當中,該後背通道裝置本身可以是由另一個如圖形處理器單元(GPU)之主機處理器所存取的一或多個準揮發記憶體陣列。在該些實施例當中,該記憶體控制器可以對該記憶體模組內的任兩個準揮發記憶體進行直接的記憶體對記憶體的資料轉移。
在某些實施例當中,該後背通道裝置為以下其中之一的控制器:(a)一非揮發性記憶體系統(NVM);(b)一磁碟存儲系統;(c)一周邊介面;以及(d)資料網路介面。非揮發性記憶體系統包含反及閘(NAND)型態的快閃記憶體裝置以及在某些實施例當中,該非揮發性記憶體的控制器可以存在於該記憶體控制器的同一半導體晶片上以作為記憶體控制器。為了存取該非揮發性記憶體系統的目錄與位址轉換表,可以同時維護於該記憶體模組的準揮發記憶體與該非揮發性記憶體系統當中。該非揮發性記憶體系統可以基於一虛擬化(virtualized)檔案系統來儲存檔案。
根據本發明的一實施例,該後背通道裝置為該資料網路介 面的控制器,該資料網路介面可以為一以太網路介面或一無線介面。在另外的實施例當中,該後背通道裝置可以是一周邊介面(例如一PCIe介面)。
在某些實施例當中,該記憶體控制器包含一精簡指令集計算機(RISC)處理器與一直接記憶體存取(DMA)電路,其用於在該準揮發記憶體陣列當中或之間,以及在該後背通道裝置及該該準揮發記憶體陣列之間進行資料轉移。在某些實施例當中,該記憶體控制器更包含在該準揮發記憶體陣列與該後背通道裝置之間的一格式器電路,用於在該準揮發記憶體陣列與該後背通道裝置之間轉換資料的格式。該格式器電路與該記憶體控制器當中的其他電路可以是由現場可編程閘陣列(FPGAs)所形成。
根據本發明的某些實施例,該記憶體控制器可以執行以下一或多個功能:日記、檢查點、發出指令至該後背通道裝置以及追蹤該指令在後背通道裝置的執行狀態、資料的加解密、資料的壓縮與解壓縮、糾錯碼的產生、錯誤偵測、糾錯、錯誤紀錄與其他適合的服務,而不需要主機中央處理器單元的介入。
可以藉由底下的詳細說明與其相關的圖式更好地理解本發明。
100:計算機系統
101:中央處理器單元
102:北橋
103:南橋
104:唯讀記憶體/非揮發性記憶體/基本輸出入系統
105:硬碟/固態硬碟
106:高速記憶體
107:非揮發性記憶體/持續性記憶體
300:系統
301-1:記憶體陣列晶片
301-2:記憶體陣列晶片
302:記憶體控制晶片
303:圖形處理器單元
304:中央處理器單元
307:中介晶片
309:封裝基板
311:電路板
312:現場可編程閘陣列(FPGA)晶片
313:介面晶片/工業標準介面
314:介面晶片/工業標準介面
330:記憶體堆疊
400:計算機系統
401:記憶體堆疊
500:記憶體堆疊
501:記憶體控制器晶片
502-1、502-2、502-3、502-4:記憶體晶片
503:記憶體介面匯流排
504:寫入暫存器
505:讀取資料暫存器
506:校正邏輯電路
507:糾錯徵狀產生器
508:檢驗位元產生器
509:內部匯流排
600:錯誤紀錄電路
601:錯誤計數器
602:暫存器檔案
603:匯流排
604:讀取錯誤信號
605:位址匯流排
606:糾錯碼字
607:錯誤時脈信號
608:錯誤偵測信號
609:重設錯誤計數信號
610:錯誤記錄偏離值/位址計數
700:記憶體堆疊
701:精簡指令集計算機處理器
702-1、702-2:非揮發性記憶體介面/反及閘
703R:讀取資料匯流排
703W:寫入資料匯流排
704:準揮發記憶體介面
705:糾錯更正電路
706:校驗位元產生電路
707:直接記憶體存取控制電路/直接記憶體存取位址邏輯電路
708:快取
709:讀寫介面
710:記憶體匯流排/主機中央處理器單元匯流排
711:刷新電路
740:記憶體控制器
741:記憶體晶片(n個晶片)
800:系統
801-1、801-2、801-3、801-4:記憶體堆疊
802-1~802-12:非揮發性記憶體陣列
803:中央處理器單元
850:磁碟系統
851:記憶體控制器
852:準揮發記憶體
853:非揮發性記憶體排
854:非揮發性記憶體排
855:存儲系統控制器
856:硬碟堆疊
857:存儲介面
860:記憶體控制器介面
861:記憶體堆疊
901:位址解碼器與資料緩衝電路
903:精簡指令集計算機處理器專屬的位址與資料匯流排
904:記憶體匯流排
905:窗口/限制只有程式碼與程式資料碼才能使用的部分
906:準揮發記憶體的部分
1001:中央處理器單元
1002:指令緩衝區/循環指令緩衝區
1003:狀態緩衝區循環狀態緩衝區
F0~F5、F200、F201:檔案
1201:寫入埠
1202:寫入埠
1203:記憶體控制器/準揮發記憶體控制器
1204~1207:區塊
1208:準揮發記憶體
1300:計算機網路
1301-1~1301-4:主機處理器/伺服器
1302-1~1302-4:記憶體控制器
1303:以太網路交換器
1304:雲端
1305:印表機
1306:磁帶儲存裝置
1037-1~1307-4:網路附加儲存裝置
1400:計算機系統
1401:中央處理器單元
1402:記憶體控制器
1403:記憶體控制器
1404:記憶體控制器
1405:記憶體控制器
1406:印表機
1407:雲端
1408:交換器
1409-1~1409-3:儲存裝置
1410:磁帶裝置
1500:計算機系統
1501:中央處理器單元
1502:圖形處理器單元
1503:記憶體控制器/準揮發記憶體控制器
1504:記憶體控制器/準揮發記憶體控制器
1505:雙倍資料率匯流排介面
1506:高頻寬記憶體匯流排介面
1507:高頻寬記憶體匯流排介面
1508:雙倍資料率匯流排介面
1509:存儲系統
1510:SATA介面
1650:格式器
1651:記憶體控制電路
1652:序列器
1653:暫存器檔案
1654:多工器
1655:內部匯流排
1656:高頻寬記憶體匯流排介面
1700:計算機系統
1701:圖形處理器單元
1702:圖形處理器單元
1703、1703-1~1703-3:準揮發記憶體堆疊
1750:計算機系統
1751:中介晶片
1752:封裝基板
1753:讀取記憶體匯流排
1754:寫入記憶體匯流排
1800:計算機系統
1801:中央處理器單元
1802:準揮發記憶體堆疊
1803:準揮發記憶體堆疊
1804:記憶體介面擴充器
1805a、1805b:後背通道
圖1所示為具有傳統架構的計算機系統100。
圖2所示為圖1所示的計算機系統,其具有不同的中央處理器單元之通道CH 0與CH 1以分別提供動態隨機存取記憶體(DRAM)為主的高速記憶體106與持續性記憶體107。
圖3所示為根據本發明一實施例的包含記憶體次系統(記憶 體堆疊)330的系統300,該記憶體次系統中包含了堆疊在記憶體控制晶片302之上並且透過準揮發記憶體介面互相連接的記憶體陣列晶片301-1與301-2。
圖4所示為計算機系統400的實施例,其包含了中介晶片(interposer die)307,用於整合記憶體堆疊401上的記憶體陣列、介面晶片313與314、中央處理器單元(CPU)304、圖形處理器單元(GPU)303與現場可編程閘陣列(FPGA)晶片312。
圖5所示為根據本發明一實施例在記憶體堆疊500當中的偵錯與糾錯電路。
圖6所示為根據本發明一實施例的錯誤紀錄電路600的一方塊示意圖,該錯誤紀錄電路600包含了錯誤計數器601與暫存器檔案602。
圖7所示為根據本發明一實施例的記憶體堆疊700的記憶體控制器740,其包含了精簡指令集計算機(RISC)處理器701與非揮發性記憶體介面702-1與702-2。
圖8A所示為根據本發明一實施例的系統800,其中記憶體堆疊801-1至801-4當中的每一個堆疊除了存取一準揮發記憶體之外,還有一後背通道用於控制在非揮發性記憶體排802-1至802-12的非揮發性記憶體陣列。
圖8B所示為根據本發明一實施例的磁碟系統850,其中在記憶體堆疊861當中的記憶體控制器851在一後背通道中提供了一個非揮發性記憶體控制器。
圖9所示為根據本發明一實施例之適用於精簡指令集計算機 (RISC)處理器701的準揮發記憶體當中的程式碼與資料的實作範例900。
圖10所示為根據本發明一實施例的主機中央處理器單元(CPU)1001發送指令,且記憶體控制器740追蹤指令的執行過程。
圖11所示為根據本發明一實施例的虛擬化一非揮發性記憶體(NVM)記憶體的一種實作範例。
圖12所示為根據本發明一實施例的記憶體控制器1203,其具有兩個寫入埠1201與1202以用於同時替準揮發記憶體1208接收資料。
圖13所示為根據本發明一實施例的計算機網路1300,其包含主機處理器(例如伺服器)1301-1至1301-4,其具有以太網路為底的後背通道,用於連接到存儲器與其他裝置。
圖14所示為根據本發明一實施例的計算機系統1400,其用於執行的實時備份作業將單一檔案的不同拷貝分別儲存到非揮發性記憶體與在網路上的遠端站點。
圖15所示為根據本發明一實施例的計算機系統1500,其包含了中央處理器單元(CPU)1501與圖形處理器(GPU)1502,分別透過記憶體控制器1503與1504存取其所管理的準揮發記憶體(中央處理器單元準揮發記憶體與圖形處理器準揮發記憶體)。
圖16所示為根據本發明一實施例之圖15所示的記憶體控制器1503當中的格式器(formatter)1650。
圖17A所示為根據本發明一實施例的計算機系統1700,其中資料流經準揮發記憶體堆疊1703-1至1703-3的流水線的各級,由串聯的圖形處理器1701與1702先後進行處理。
圖17B所示為根據本發明一實施例的計算機系統1700的一種實作範例1750,其使用中介晶片1751來連接各元件。
圖18所示為根據本發明一實施例的計算機系統1800,其包含連接到後背通道的記憶體介面擴充器1804,用於提供使用者可以選用的一些標準周邊介面。
雖然圖式繪製了本發明的許多範例,但本發明並不受限於所繪製的範例。在圖式當中,類似的符號用於表示類似的元件。此外,圖式未必符合比例。
可以使用多種方式來實作不同的實施例與範例,其包含了系統、行程、裝置、或是合適的計算機可讀取媒體中的一連串計算機指令(例如:計算機可讀取媒體,或是上述之計算機指令可以藉由一光學、電子或無線通信連接進行傳輸的一計算機網路)。通常,所揭露行程的各項運作可以任何順序實施,除非在申請專利範圍當中特別定義其順序。
將在以下的段落,和附圖一起對本申請的一或多個實施例進行詳細的說明。這些說明是用來描述而非用於限制本發明。本發明內容的範圍是由申請專利範圍所界定,其可以包含眾多的改動、變化、修改與等同。各個實施例相關的已知技術材料不再詳細贅敘,以避免對實施例的說明造成不必要的遮蔽。
在某些範例當中,多種記憶體類型被整合到單一元件(例如晶圓、基板或晶片)。在此引用的第一美國專利申請案揭露了在本申請中稱之為準揮發記憶體(QV memory)的裝置。準揮發記憶體裝置包含了電荷陷 阱層(例如一種氧化物-氮-氧化物或簡稱”ONO”三層結構),其最適合於快速擦寫作業以及具有高擦寫循環量的耐用程度。在某些實施例當中,準揮發記憶體裝置可以具有相對短的資料保存時間(例如大於100毫秒但小於100天),以至於在某些應用當中,準揮發記憶體裝置可能需要時時地(例如每次間隔100毫秒)執行像傳統的動態隨機存取記憶體裝置(DRAM)一樣的資料刷新(refresh)作業。用準揮發記憶體裝置所建構的記憶體可以用於取代傳統的動態隨機存取記憶體為基礎的記憶體。
本發明提供以準揮發記憶體為基礎的高速記憶體之計算機系統當中的多種設計、操作與使用模式。在一實施例當中,準揮發記憶體為基礎的高速記憶體完全地取代了動態隨機存取記憶體為基礎的記憶體。由於準揮發記憶體裝置的密度顯著地高於動態隨機存取記憶體裝置,以準揮發記憶體為基礎的高速記憶體的容量遠大於具有相當的足跡(例如相當數量的記憶體晶片)的以動態隨機存取記憶體為基礎的記憶體。再者,由於準揮發記憶體裝置所需的刷新頻率較低,以準揮發記憶體為基礎的高速記憶體的耗電量需求低於相當容量的以動態隨機存取記憶體為基礎的記憶體。其次,和現行的動態隨機記憶體的製程技術相比,準揮發記憶體裝置的製程更適合光刻。此外,準揮發記憶體晶片也可以使用現有的三維堆疊技術進行堆疊。根據上述的原因,傳統的動態存取記憶體晶片缺乏準揮發記憶體晶片的容量與彈性,而且製造成本更高。
準揮發記憶體裝置也具有新的記憶體使用模式。在一實施例當中,可以在一個晶片上提供多個準揮發記憶體陣列與其記憶體控制電路,可以透過將上述的準揮發記憶體陣列晶圓鍵合(wafer-bonded)到另一個 晶片上,用於連接該晶片。據此,上述的記憶體控制電路可以透過適用於邏輯電路的製程進行製作,使得電路的運作速度高於利用記憶體電路的製程所製作的電路。在某些實施例當中,該記憶體控制電路能提供更快的記憶體介面給系統的其他部分使用。包含了上述兩個晶片之系統範例如圖3所示。
圖3所示為根據本發明一實施例的包含記憶體次系統(記憶體堆疊)330的系統300,其中有堆疊在記憶體控制晶片302之上並且利用銅柱CU Studs與矽穿孔TSVs(through-silicon vias)與該記憶體控制晶片302互相連接的記憶體陣列晶片301-1與301-2。如圖3所示,記憶體陣列晶片301-1與301-2可以是準揮發記憶體晶片,其彼此之間可以如前述的第一與第二美國臨時申請案所述,利用晶圓鍵合或晶片鍵合(die-bonded)互相連接,並且透過銅柱電性耦接在一起。如圖3所示,記憶體陣列晶片301-1與301-2包含了已填充導體的矽穿孔TSVs,其實質深度相當於每個晶片的厚度。這些矽穿孔允許更多的晶片加入堆疊,並且提供了跨晶片的連接。圖3顯示了已堆疊的記憶體陣列晶片301-1與301-2,其鍵合連接到了記憶體控制晶片302。如圖3所示,記憶體控制晶片302可以利用銅柱與矽穿孔電性(亦即準揮發記憶體介面)連接到記憶體陣列晶片301-1與301-2。在圖3當中,記憶體堆疊330、中央處理器單元304與圖形處理器單元303都透過微凸塊(MicroBump)連接到中介晶片307。記憶體堆疊330、中央處理器單元304、圖形處理器單元303與中介晶片307可以全部封裝在包含封裝基板309的一電子封裝體內。在中介晶片307當中的一內導體網路連接了封裝體針腳(Package Balls)、記憶體堆疊330、中央處理器單元304與圖形處理器單元 303。該封裝體可以和其他元件一樣置於系統300的電路板311(例如計算機系統的主機板)之上。
由於銅柱很小(如1μm2),而且能夠傳送夠精細的信令,記憶體控制晶片302可以包含邏輯電路,用於獨立地控制記憶體陣列晶片301-1與301-2當中的記憶體陣列的不同部分。這種安排能夠客製化地讓記憶體控制器302當中的不同控制電路利用不同的設定控制同一記憶體晶片中的不同記憶體陣列,用於實現如同時進行讀取或寫入作業的新使用模式。藉由在不同的晶片上提供記憶體陣列與記憶體控制,記憶體堆疊330提供了新的記憶體使用模式與架構的可能性,其在傳統記憶體架構是難以實現的。如此的安排也可以讓不同晶片上的多個記憶體陣列分享同一個記憶體控制邏輯電路,藉此增進矽晶片的運用效率與整體的效率。其餘的優點包含了較小的足跡(footprint),並且顯著地減少了連接記憶體裝置之間的銅繞線長度。由於同時減少了阻抗與電容,這些優點可以降低電力驅動的需求(因此有較少耗電量與散熱)與更短的資料存取延遲時間。
對一堆疊中的多個記憶體晶片進行鍵合,提供一種有效率的方法,以利用一中介晶片將一記憶體系統連接或整合到一計算機系統當中。圖4所示為計算機系統400的實施例,其包含了中介晶片(interposer die)307,用於整合其上的記憶體堆疊401的記憶體陣列、介面晶片313與314、中央處理器單元304、圖形處理器單元303與現場可編程閘陣列(FPGA)晶片312。記憶體堆疊401可以包含記憶體控制器或用於控制記憶體堆疊401中的記憶體陣列的多個控制器。如圖3所示,記憶體堆疊中的記憶體控制器或多個控制器可以做在一晶片上,該晶片和作為記憶體陣列的晶 片是不同的晶片。介面晶片313與314當中的每一個可以實作一或多個工業標準介面(如DDR4)。雖然圖4只有顯示中介晶片307上只有單一個記憶體堆疊(即記憶體堆疊401),但中介晶片307尚可以有多個記憶體堆疊。在這種安排之中,每一個記憶體堆疊(如記憶體堆疊401)當中的記憶體陣列可以由一個獨立的記憶體控制器所管理。又或者,不同的記憶體堆疊中的記憶體陣列可以由獨立分開於該記憶體堆疊的同一個記憶體控制器進行管理。無論是哪一種連接方式,記憶體堆疊可以組成多個通道,每一個通道可以讓中央處理器單元304或圖形處理器單元303透過介面晶片313或314所構成的介面進行存取。透過單一個記憶體控制器來存取一記憶體堆疊當中的所有記憶體陣列的作法,利用通道的連接性來交換效率的增長。設計者可以根據想要達成的記憶體排(rank)架構來變化記憶體堆疊當中的通道對應關係。讓一個記憶體控制器控制多個晶片上的記憶體陣列的作法,能夠讓每一個介面晶片將上述的記憶體陣列視為單一負載(load),而不是將每一個晶片上的記憶體陣列視為獨立負載。上述的架構安排提供了許多電性上的優點。
當一記憶體堆疊中的一記憶體控制器控制該記憶體堆疊中多個記憶體晶片中的記憶體陣列時(例如在圖3的記憶體控制晶片302中的一記憶體控制器控制在記憶體晶片301-1與301-2的記憶體陣列),就已經準備好可以實現額外的功能。舉例來說,可以利用該記憶體堆疊中的記憶體控制器(例如記憶體控制晶片302中的一記憶體控制器)內部的直接記憶體存取(DMA,direct memory access)能力,來實現記憶體堆疊內的記憶體陣列之間的記憶體對記憶體的資料轉移(例如從記憶體晶片301-1的記憶體陣列轉移 到記憶體晶片301-2的記憶體陣列),該記憶體控制器包含一內部的記憶體直接存取控制電路(這種電路無須提供傳統記憶體直接存取控制器的所有功能),其更包含了轉移計數器、內部來源與內部目的暫存器。在一狀態機(SM)與一位址產生電路的控制之下,該記憶體直接存取控制電路自該內部來源暫存器所存記憶體位置開始之處提取某一範圍的資料,並且將資料寫入到該指定暫存器所存記憶體位置開始之處的一相應範圍的記憶體位置當中。在這種安排之下,資料係透過該直接記憶體存取控制電路的一內部匯流排來轉移,而不用使用到任何介面匯流排(亦即工業標準介面313與314)。由於不需要動用到介面驅動電路,因此可以達成顯著的耗電效率。這樣的內部轉移極少地牽涉到主機的中央處理器單元303,因此也能節省主機中央處理器單元的計算循環並且增進整體的系統效能。
由同一記憶體控制器控制多晶片上的記憶體陣列在資料正確度(integrity)方面達成了另一種的效率。為了確保資料正確,在將已提取的資料傳送到記憶體介面之前,大多數的記憶體電路至少實作了偵錯(例如奇偶校驗)功能,還有更典型的糾錯(例如糾錯碼ECC(error correction code))功能。當同一記憶體控制器控制多晶片上的記憶體陣列時,可以在記憶體控制器當中實作偵錯與糾錯電路,而非實作在記憶體電路本身,藉此可以節省大量矽面積(例如檢驗位元產生器電路與修正電路所包含的數以千計的邏輯閘)。再者,在這樣的安排之下,偵錯與糾錯電路是利用適於邏輯電路的製程所製造,而不是以適於記憶體電路的製程來製造,可以製成速度較快的電路並且也能減少延遲。
圖5所示為根據本發明一實施例在記憶體堆疊500當中的偵 錯與糾錯電路。如圖5所示,記憶體堆疊500包含了記憶體控制器晶片501與記憶體晶片502-1、502-2、502-3與502-4。在不同記憶體晶片502-1至502-4當中的記憶體陣列可以彼此互連,或是透過一個準揮發記憶體介面來連接記憶體控制晶片501當中的電路。在記憶體控制器晶片501當中的一記憶體控制器自記憶體介面匯流排503取得資料到寫入暫存器504,以及自讀取暫存器505提供所讀取的資料到記憶體介面匯流排503。檢驗位元產生器508產生偵錯碼(例如奇偶校驗碼),其可以和資料一同透過內部匯流排509寫入到記憶體晶片502-1至502-4當中的一記憶體陣列。經由內部匯流排509自記憶體晶片502-1至502-4當中的一記憶體陣列中讀取資料。針對從內部匯流排509所讀取的資料,如果糾錯徵狀產生器507發現有錯誤的話,會產生指示必要的糾錯徵狀(syndrome)。校正邏輯電路506用於進行該徵狀所指示的糾錯,並且將糾錯結果寫入到讀取資料暫存器505當中。讀取資料暫存器505將糾錯結果提供到記憶體介面匯流排503。
當偵錯與糾錯功能作在記憶體控制器當中時,可以用於紀錄所有的錯誤,藉此可以標定(flag)記憶體當中的潛在錯誤點。圖6所示為根據本發明一實施例的錯誤紀錄電路600的一方塊示意圖,該錯誤紀錄電路600包含了錯誤計數器601與暫存器檔案602。如圖6所示,當錯誤偵測信號608被開啟(asserted)之後,致能EN了錯誤計數器601與暫存器檔案602。因此,錯誤時脈信號607的下一次傳輸會增加錯誤記錄偏離值610,以便為下一個錯誤指向錯誤記錄當中的下一個位置。錯誤時脈信號607的下一次傳輸也將由位址匯流排605所提供之發生現行錯誤的記憶體位置存入到暫存器檔案602當中。暫存器檔案602也將寫入糾錯碼字(correction bits word)606,其用於指示糾錯所需的記憶體的位元。繼錯誤時脈信號(Err CLK)607的傳輸之後,當讀取錯誤信號606被開啟,暫存器檔案602將錯誤發生的位址、糾錯碼字以及在糾錯記錄中下一個錯誤該被記錄的位置輸出到匯流排603。任何在錯誤記錄中出現的位置代表著潛在錯誤點。當有必要或想要將錯誤記錄中的次一記錄位置重設到第一個位置時,可以開啟重設錯誤計數信號609。
有了潛在錯誤點的對應圖之後,系統或記憶體控制器可以將上述的潛在錯誤點的位置替換成是可程式化的備用冗餘替換電路,而通常會在一旁設置該備用冗餘替換電路以供備用。在某些實施例當中,這種冗餘替換電路可以利用一次性可程式化記憶體(OTP,one-time programmable memory)、非揮發性記憶體或暫存器在開機時透過錯誤指標進行替換。現今並沒有一種一致的標準來實作記憶體的冗餘備用,設計者可以自由地實作他們自己的備用方案。舉例來說,當預期不需要進行系統存取的時候,可以在準揮發記憶體的一次刷新作業的同時完成冗餘的對應。對準揮發記憶體而言,在一次刷新循環中進行設定的更換可以避免對功能性的使用造成中斷,並且避免需要產生排程性的維護服務中斷時間。此外,快速地移除潛在錯誤點的位置可以避免中斷功能性的作業。
在某些實施例當中,記憶體堆疊當中的記憶體控制器與每一個記憶體晶片都具有實質相同大小的矽面積。因此,具有相同大小的記憶體控制晶片可以在晶片上的一或多個記憶體控制器上加入額外非傳統的邏輯電路。圖7所示為根據本發明一實施例的記憶體堆疊700的記憶體控制器740,其包含了精簡指令集計算機(RISC)處理器701與非揮發性記憶體介 面702-1與702-2。如圖7所示,記憶體堆疊700包含了一或多個記憶體晶片741,其被鍵合到包含記憶體控制器740的一邏輯電路晶片。通過這些被鍵合的晶片之間的準揮發記憶體介面704,記憶體控制器740連接到記憶體晶片741上的準揮發記憶體陣列。如圖7所示,精簡指令集計算機處理器701存取專用的快取708,其連接到資料匯流排703R與703W。資料匯流排703R保留從準揮發記憶體陣列所讀取的資料,資料匯流排703W保留將要寫入到準揮發記憶體陣列的資料。主機中央處理器單元可以在記憶體匯流排710發出一個適當的讀取或寫入指令,其包含了欲讀寫資料的來源或目的位址,以及寫入指令所欲寫入的資料內容,來啟動針對準揮發記憶體陣列的一個位置的讀取或寫入作業。對於讀取作業而言,資料匯流排703R的資料在讀取循環的最後交付到記憶體匯流排710。讀寫介面709代表記憶體控制器740來處理記憶體匯流排710上的協定。針對從準揮發記憶體介面704自該準揮發記憶體陣列所讀取資料中被偵測到的錯誤,糾錯更正電路705會進行更正。校驗位元產生電路706提供透過準揮發記憶體介面704將要寫入到準揮發記憶體之資料的校驗位元。直接記憶體存取控制電路707提供準揮發記憶體匯流排704的控制信號,以便執行圖3所述的直接記憶體存取作業。刷新電路711以預定的時間間隔刷新準揮發記憶體陣列的各位置。
如圖7所示,記憶體控制器740也透過非揮發性記憶體介面702-1與702-2連接到一個非揮發性記憶體系統(例如一個反及閘非揮發性記憶體陣列)。非揮發性記憶體介面702-1與702-2當中的每一個都連接到資料匯流排703R與703W以便自準揮發記憶體陣列讀取資料或是將資料寫入到準揮發記憶體陣列。直接記憶體存取控制電路707也提供控制信號到非揮 發性記憶體介面702-1與702-2,以便執行在非揮發性記憶體系統當中以及在非揮發性記憶體系統和準揮發記憶體陣列之間的直接記憶體存取作業。在此,非揮發性記憶體介面702-1與702-2提供一個後背通道(亦即不是透過中央處理器單元所介接的額外記憶體存取路徑)來連接其他的系統硬體。據此,記憶體控制器740不但提供在準揮發記憶體當中的傳統記憶體作業,還提供後背通道給其他的裝置來存取準揮發記憶體。這樣的設計讓主機中央處理器單元可以卸載特定作業的開銷,而這些特定作業係周邊裝置利用記憶體控制器740對準揮發記憶體介面704與任何後背通道所進行的作業。(圖7畫出兩個非揮發性記憶體介面只是為了顯示高性能系統;僅需較低性能的系統可以只用單一個非揮發性記憶體介面。)
記憶體控制器740因此控制著一個準揮發記憶體系統與一個非揮發性記憶體系統。事實上,透過非揮發性記憶體介面702-1與702-2,記憶體控制器740可以控制非揮發性記憶體晶片的陣列(例如快閃記憶體晶片)。藉由精簡指令集計算機處理器701所執行的適當軟體,記憶體控制器740也可以作為一個非揮發性記憶體為基礎的存儲控制器或是一個固態硬碟控制器。在記憶體控制器740的後背通道提供中央處理器單元一個固態硬碟的連接點,而不需要透過一個主機匯流排適配器(adapter)或是一個周邊介面(例如PCIe通道)。被釋放的PCIe通道可以被指派到其他用途上。在一個固態硬碟的應用當中,後背通道可以被設定用作一個固態硬碟的控制器,以便取得最大的性能並且節省成本。該後背通道也可以作為「一組快閃磁碟(JBOF,just a bunch of flash)規格」的控制器。在這樣的規劃下,可以動態地設定記憶體控制器740,以便為某容量範圍內任意大小的非揮發 性記憶體提供服務,亦即可以因應非揮發性記憶體模組的增減。
圖8A所示為根據本發明一實施例的系統800,其中記憶體堆疊801-1至801-4當中的每一個堆疊除了存取一準揮發記憶體之外,還有一後背通道用於控制在非揮發性記憶體排802-1至802-12的非揮發性記憶體陣列。如圖8A所示,記憶體堆疊801-1與801-2以及非揮發性記憶體排802-1至802-6被分配到由中央處理器單元803所存取的準揮發記憶體匯流排的第0通道Channel 0,而記憶體堆疊801-3與801-4以及非揮發性記憶體排802-7至802-12被分配到準揮發記憶體匯流排的第1通道Channel 1。記憶體堆疊801-1的非揮發性記憶體介面由一組非揮發性記憶體排(分別是非揮發性記憶體排802-1、802-2、802-3與802-4)所專用。類似地,記憶體堆疊801-3的非揮發性記憶體介面分別為非揮發性記憶體排802-7、802-8、802-9與802-10所專用。這樣的安排能讓兩個獨立的資料串流同時在後背通道同時運作,以達到較高性能。另外,記憶體堆疊801-2與801-4當中的每一個分別有其非揮發性記憶體介面,由相對應的非揮發性記憶體晶片共享存取。
圖8B所示為根據本發明一實施例的磁碟系統850,其中記憶體控制器851(於記憶體堆疊861中)於一後背通道中提供了一個非揮發性記憶體控制器。如圖8B所示,磁碟系統850包含傳統的存儲系統控制器855以存取硬碟堆疊856。存儲系統控制器855透過存儲介面857接收存儲指令,並且透過其記憶體控制器介面860存取記憶體堆疊861當中的準揮發記憶體。在記憶體堆疊861中的記憶體控制器851用於應對傳送至記憶體堆疊861的指令,用於存取準揮發記憶體852以及如圖7所述的實施方式,利用記憶體堆疊861當中的一個非揮發性記憶體控制器提供一後背通道連接到 一非揮發性記憶體系統。如同圖7的記憶體控制器740,為了提供上述的後背通道,記憶體堆疊861的記憶體控制器851包含了非揮發性記憶體介面,允許記憶體控制器851存取並且控制該非揮發性記憶體系統。如圖8B所示,該非揮發性記憶體系統至少包含了在非揮發性記憶體排853與854當中的非揮發性記憶體陣列。
在圖7、8A與8B的範例當中,該非揮發性記憶體系統係映射到記憶體(memory-mapped),可能需要安裝到作業系統當中以利採用一磁碟作業系統的目錄與檔案結構進行操作。舉例而言,在開機之後,準揮發記憶體當中的一個目錄即針對每一個行程(process)或檔案的英文字母數字名稱提供對應的唯一數字標識符(unique numeric identifier)。該唯一數字標識符可以用於一位址轉換表(address translation table)當中,該位址轉換表也在開機時被載入到準揮發記憶體當中,用於獲得在該非揮發性記憶體系統當中的行程或檔案的位置。舉例來說,該唯一數字標識符可以是在準揮發記憶體當中之位址轉換表的一索引值。當某一應用程式被啟動時,該記憶體控制器可以利用該唯一數字標識符自該位址轉換表獲得該行程或檔案在該非揮發性記憶體系統當中的位置。為了增進在執行時期(runtime)的效率,可以在準揮發記憶體當中為該行程或檔案安排位置。作業系統對每一個行程或檔案所下指令的參數值也可以儲存,例如存在準揮發記憶體的已知位置。利用後背通道中的非揮發性記憶體控制器,可以利用直接記憶體存取控制電路(例如圖7的直接記憶體存取控制電路707)將該行程或檔案自該非揮發性記憶體系統讀入到準揮發記憶體中安排的位置。在主機中央處理器單元給該記憶體控制器的每一個指令中,使用上述的唯一數字標識符 來表示在準揮發記憶體當中相應之行程或檔案的某一作業。利用這種方式,可以無需該主機中央處理器單元的干預,而能夠以非常有效率的方式執行該指令。
圖10所示為根據本發明一實施例的主機中央處理器單元1001發送指令至記憶體控制器740並且追蹤指令的執行過程。如圖10所示,主機中央處理器單元1001發出指令到指令緩衝區1002並且在狀態緩衝區1003當中設定一相應的條目(entry),當記憶體控制器740執行指令時,會將狀態碼更新到該條目以便指明該指令的執行進度。可以同時發出相關於同一個行程或檔案的多個指令,並且同時等待處理(pending)。當發出一指令時,該指令在指令緩衝區1002與狀態緩衝區1003的相應條目都會被標識為上鎖(亦即不可使用)。在記憶體控制器740發出中斷通知主機中央處理器單元1001該指令已經執行完畢後,上述的條目才獲釋自由。記憶體控制器740在送出上述的中斷到主機中央處理器單元1001之前,先更新狀態緩衝區1003中的相關條目,以便指示該指令已經完成。主機中央處理器單元1001響應中斷採取適當動作,同時釋放在指令緩衝區1002與狀態緩衝區1003當中的條目,以便重新利用這些空間。上述的兩個緩衝區可以實作為循環(circular)緩衝區。
在許多傳統檔案系統當中,記憶體當中的一轉換表指向被載入到記憶體之檔案的區塊(block)。可以如上述一般地,透過傳送到記憶體控制器的指令來使用本發明的位址轉換表,其效率就如同在傳統檔案系統中存取轉換表一樣。可以使用在準揮發記憶體中相當普遍的內容定址記憶體(content addressable memory)技術,來達成包含多層轉換在內之轉換功 能的額外效率。
據此,如同圖8A與8B所示的本發明之資料移轉作業,不只避免爭用了主機中央處理器單元,還消除了存取傳統磁碟類型所相關聯的慢速硬體堆疊。舉例來說,對於檔案配置表樹(FAT tree)的解析作業、將牽涉到大型非揮發性記憶體邏輯段之單一指令分割成存取非揮發性記憶體實體段的多個指令之動作,以及在許多磁碟介面中經常可見的輸出/輸入交握操作(handshake operation)都可以全部消除。因此,在後背通道進行資料轉移可以大幅度地減少相關於在一傳統磁碟硬體上進行資料轉移的軟體開銷(overhead),使得延遲時間可以減少許多毫秒。
圖9所示為根據本發明一實施例之適用於精簡指令集計算機(RISC)處理器701的準揮發記憶體當中的程式碼與資料的實作範例。如圖9所示,準揮發記憶體包含了905部分與906部分。精簡指令集計算機處理器701與快取708(先前已經在圖7的實施例當中討論過)透過位址解碼器與資料緩衝電路901來存取該準揮發記憶體。精簡指令集計算機處理器701利用專用的匯流排803進行準揮發記憶體的905部分之存取作業,如儲存特權程式碼與程式資料,將在下面解釋。其餘對準揮發記憶體(例如準揮發記憶體的906部分)的存取,包含直接記憶體存取作業,是藉由記憶體匯流排904進行。記憶體控制器740用於載入軟體到準揮發記憶體的開機碼,在一範例中可以存在於非揮發性記憶體中,或是存在記憶體控制器740的一次性可程式化(OTP)記憶體中。作為開機程序的一部分,從非揮發性記憶體將程式碼與程式資料碼讀取到準揮發記憶體當中。該軟體包含了在準揮發記憶體中的某一預定記憶體位置(進入點),精簡指令集計算機處理器701可以從 進入點開始執行記憶體控制器740。為了保護在905部分的程式碼與程式資料碼,在準揮發記憶體中有兩個邊界暫存器(bound register),可以設置用於定義905部分(窗口905)的位址邊界。只有具備所需特權的行程,可以透過記憶體控制器740來存取窗口905。任何未經授權而欲存取窗口905的動作會被位址解碼器與資料緩衝電路901捕捉住,進而設定旗標以便指示發生了系統錯誤狀態。
圖9提供了在窗口905中儲存以下各種程式碼與程式資料碼的範例,包含了:(a)開機設定資訊;(b)糾錯碼與錯誤記錄資料;(c)非揮發性記憶體控制器、驅動程式、映射器和檔案管理器;以及(d)位址轉換表。如上所述,位址轉換表將唯一數字標識符對應到相關行程或檔案存在於準揮發記憶體系統的位置。當所儲存的檔案數量增加時,位址轉換表也會隨著時間流逝而變大。在某些實施例當中,可以提供一個簡化的表格,當中只包含了在準揮發記憶體當中的現存檔案。當要存取不在簡化表格當中的檔案時,會導致精簡指令集計算機處理器701所執行的記憶體控制軟體透過後背通道到非揮發性記憶體系統當中儲存的完整位址轉換表中進行搜尋。若在完整的位址轉換表當中找到,這個遺失的檔案就會進到簡化表格之中。
在圖7與8A的範例當中,當每一個記憶體堆疊中有兩個非揮發性記憶體介面(亦即非揮發性記憶體介面702-1與702-2)時,某一記憶體堆疊的記憶體控制器可能會將同一檔案分散儲存到它的兩個非揮發性記憶體排(例如記憶體控制器801可能將一個檔案分散到非揮發性記憶體排802-1與802-2)。在這個案例當中,在記憶體堆疊中的記憶體控制器必須應對所 有對非揮發性記憶體排存取某一檔案的作業,該檔案係被分配到該記憶體控制器所對應之準揮發記憶體空間的部分。當要在該記憶體控制器所控制之準揮發記憶體的部分與非揮發性記憶體的部分之間進行資料轉移時,可以在直接記憶體存取電路(例如記憶體控制器740的直接記憶體存取電路707)的控制下提供資料緩衝區。在某些實施例當中,當該記憶體堆疊的準揮發記憶體陣列一起形成一準揮發記憶體系統,以及當該記憶體控制器之後背通道相關的非揮發性記憶體陣列組成一非揮發性記憶體系統時,每個記憶體控制器獨立地處理其對應的準揮發記憶體與非揮發性記憶體陣列之存取。在這種方式當中,可以同時進行對準揮發記憶體與非揮發性記憶體系統的多個存取作業,進而享有非常高的系統吞吐量。在另外的範例中,系統可以讓多個記憶體堆疊的記憶體控制器在「準揮發記憶體的島嶼」上和在「非揮發性記憶體的島嶼」上運作。這種系統允許特殊的「跨島」處理協定來進行跨記憶體堆疊的存取,例如在兩個準揮發記憶體的島嶼之間,在兩個非揮發性記憶體的島嶼之間,以及在一個準揮發記憶體島嶼和另一個非揮發性記憶體島嶼之間進行快速與同時的存取作業。
基於安全的理由,儲存在本發明所提供之系統當中的資料可以是加密的(例如企業的銀行交易資料、客戶列表或機密的技術訊息)。傳統上是由主機中央處理器對檔案進行加密後,再將檔案存到持續性記憶體或非揮發性記憶體的存儲器當中。解密通常是在相反的資料流程上進行。因此,加密和解密都對主機中央處理器單元造成計算上的開銷,使得某些系統將加密和解密的工作轉給加速板來進行。(這種加速板將要被加密的檔案載入到記憶體中,執行加密工作,並且將已加密的檔案寫入到磁碟 的持續性存儲器;解密作業則是在相反的資料流程上進行。)本發明所提供的後背通道,可以在記憶體控制器中完成加密與解密作業,舉例來說,精簡指令集計算機處理器(例如精簡指令集計算機處理器701)可以達成加解密作業,而不需要主機中央處理器單元的干預,也不需要任何檔案傳輸作業,因為資料已經存在記憶體當中了。在某些實施例當中,可以提供額外的邏輯電路來協助作業。在本發明當中,既不會造成主機中央處理器的計算開銷,也不需要加速板,就可以顯著地降低成本,並且具有更高效能。根據本發明的範例,圖8A的系統800已經可以用於在一非揮發性記憶體中對檔案進行加密與儲存。類似地,根據本發明,圖8B的系統850也已經可以用於在一磁碟機中對檔案進行加密與儲存。可以提供關於加密與解密的額外指令。舉例來說,一種「加密並報告」指令可以用於將一檔案進行加密,並且將以加密的檔案留在準揮發記憶體之中。(已加密的檔案隨後可以從準揮發記憶體中提取出來,並且送到一外部存儲裝置。)在另一個範例中,一種「加密並儲存」指令可以讓記憶體控制器對檔案進行加密,並且將其儲存在非揮發記憶體中。
可以用類似的方式,透過資料壓縮電路與解壓縮電路進行資料的壓縮與解壓縮。
本發明也能將傳統上由主機中央處理器單元所處理之功能轉移至記憶體控制器。舉例來說,為了在資料庫管理系統中確保資料的正確性,需要讓一筆交易(一項工作或計算)完整地發生或完全不發生(亦即基元作業atomic operation)。如果沒有這樣的規定,當在交易中間發生錯誤情況時(例如斷電),可能導致資料錯誤。為了確保基元作業,資料庫軟體產 生了多個檢查點,用於形成單一交易狀態的執行記錄,在每一個檢查點記錄了該交易的狀態。在某個檢查點所記錄的交易的狀態是由一組關鍵參數值來表示,當發生錯誤情況時,這些資訊可以讓該交易回復到前一個檢查點的狀態。檢查點的記錄通常會寫入到一持續性存儲系統的一記錄檔案中。此記錄檔案通常被實作為一循環檔案,也就是每個檢查點記錄被寫入到最後一筆檢查點記錄的後方,以及當寫到記錄檔案的盡頭時,下一個檢查點記錄會覆寫到檔案的開頭位置。在先前技術當中,無論該記錄檔案是儲存在一磁碟、固態硬碟或持續性記憶體當中,主機中央處理器單元通常都要產生該記錄檔案,並且發出一磁碟指令,該磁碟指令則需要該主機中央處理器單元執行磁碟堆疊軟體。然而,在本發明所提供之一方法當中,主機中央處理器單元只需要準備儲存在準揮發記憶體當中的資料與參數值,接著發出一個指令到記憶體控制器以儲存該檢查點檔案,就可以使用上述如圖10相應的機制。
本申請的另一應用程式為「日記」(journaling)。當系統的一項作業被電力中斷或由類似的重大事件干擾時,作業系統可能會從先前儲存的一儲存點開始重複進行記錄在一日記當中的作業,直到發生錯誤為止。如同先前所述的資料庫檢查點作業,日記可能需要仰賴寫入在非揮發性記憶體、持續性記憶體或在系統磁碟中的檔案中的循環性緩衝區,來追蹤起所記錄的作業。根據本發明的一實施例,該日記檔案的一部份被寫入到準揮發記憶體,記憶體控制器可以利用後背通道將其寫入到非揮發性記憶體中。在一實施例當中,每次當在準揮發記憶體中的日記檔案更新時,該日記檔案都會經由後背通道自動儲存到非揮發性記憶體。上述的做法可 以節省處理器進行磁碟堆疊作業的開銷,而不需要主機中央處理器單元的干預。
在上述的說明當中,準揮發記憶體的記憶體控制器也控制著非揮發性記憶體。如果非揮發性記憶體是由快閃記憶體組成,大型的擦除區塊將會導致較慢的擦除作業。為了改進寫入作業的效能,快閃記憶體可以被虛擬化(亦即,非揮發性記憶體的物理位址空間是由該準揮發記憶體控制器來幫助一快閃記憶體控制器進行管理)。如果用到了持續性記憶體,可以對較少的記憶體單元進行快速的擦除作業而無須擦除整個區塊;在這樣的擦除作業當中,可以使用對準揮發記憶體控制器或甚至是對主機中央處理器單元可見的物理位置的直接映射關係。
圖11所示為根據本發明一實施例的虛擬化一非揮發性記憶體的一種實作範例。該非揮發性記憶體是以區塊來安排,每一個區塊包含4K位元組大小的非揮發性記憶體單元。在一開始,除了開銷檔案以外,該非揮發性記憶體是被完全擦除的,通常很少去改變這些開銷檔案。舉例來說,這些開銷檔案包含開機區塊、目錄、檔案配置表、作業系統軟體和位址轉換表。該非揮發性記憶體的其餘部分都是已擦除的單元。第一個檔案(圖11的F0)被儲存在非揮發性記憶體當中之這些開銷檔案之後的第一個可用位置。F0的檔案名稱與其在非揮發性記憶體當中的位置被記錄在非揮發性記憶體與準揮發記憶體當中的位址轉換表。如圖11的時間t0所示,接下來的檔案(例如圖11當中的檔案F1至F5)一個接著一個被寫入到前一個檔案之後,而他們的位置被寫到非揮發性記憶體與準揮發記憶體當中的位址轉換表當中。當有檔案寫入到非揮發性記憶體時,整個檔案會被寫到非揮發 性記憶體的下一個可用的已擦除空間。新的位置被更新到非揮發性記憶體與準揮發記憶體當中的位址轉換表當中,被舊檔案佔據的非揮發性記憶體位置被標示出來以供再利用。圖11顯示在t1時,在非揮發性記憶體當中的檔案F3、F4、F5與F0依序被更新,而後續到檔案F200的被寫入到非揮發性記憶體的已擦除空間。在這段期間當中,或當有需要時,可以透過區塊擦除那些被標示以供再利用的非揮發性記憶體單元。圖11顯示在t1時,已失效檔案F0、F3、F4、F5所佔用的非揮發性記憶體中的位置已經被擦除,更精確地說,檔案F0的位置已經被檔案F201重新利用,而檔案F201是繼檔案F200之後寫入的。請注意在此作法當中,非揮發性記憶體的非開銷部分(non-overhead portion)可視為一種循環緩衝區。在此種作法當中,非揮發性記憶體單元輪流被寫入,以避免任何一個位置的使用次數超過其他的次數,據此可以增加耐用度。不常被更新的非揮發性記憶體當中的檔案(冷門檔案),可以儲存在能輕易被跳過(skipped over)的非揮發性記憶體的一個區域內。
記憶體控制器可以在一個控制檔案中追蹤每一個檔案的修改活動。冷門檔案可以和其他冷門檔案歸類在一個群組之內,而整個群組可以被輕易地跳過(skipped over)。(若一個冷門檔案變成活躍時,可以在位址更新時,將其移出該群組。)在某些實施例當中,在分配檔案的儲存位置時,可以根據檔案的類型來進行。舉例來說,圖片或影片檔案可以被歸類成一個群組,並且被視為冷門檔案,因為它們極少被更新。據此,可以簡化整體的管理。
因此,每當在非揮發性記憶體當中發生檔案位置的改變 時,在準揮發記憶體與非揮發性記憶體當中的兩個位址轉換表就會有所調整。當只有檔案位置發生變化時,位址資訊才會隨之改變,因此位址轉換表的更新頻率不會變得太高。多數檔案的更新通常發生在開始產生檔案時,但更新的頻率很快地就降低了。為了適應這種表現,並不會在每次檔案更新時就覆寫在準揮發記憶體與非揮發性記憶體當中的兩個位址轉換表,除非是在新檔案增加時才進行覆寫。替代地,系統使用一更新表來記錄每一筆上述的更新,並且利用該更新表調整準揮發記憶體當中的位址轉換表,以便建立檔案當前在非揮發性記憶體當中的位置。隨著時間推移,在準揮發記憶體與非揮發性記憶體當中的兩個位址轉換表的更新係整合了在該更新表當中的累次更新。
圖12所示為根據本發明一實施例的記憶體控制器1203,其具有兩個寫入埠1201與1202以用於同時替準揮發記憶體1208接收資料。如圖12所示,準揮發記憶體1208包含兩個排(bank),每個排包含兩欄(column)的區塊。更精確地說,在圖12當中,區塊1204與1205在第0排的同一列(row),區塊1206與1207在第1排的同一列。如圖12所示,連接埠1201與1202當中的每一個都有兩個區塊的寬度。連接埠1201所收到的兩個區塊分別被寫入到第0排與第1排。類似地,連接埠1202所收到的兩個區塊也分別被寫入到第0排與第1排。在圖12當中,在時段t0當中,資料區塊F2與F0,以及資料區塊F3與F1分別到達準揮發記憶體控制器1203的連接埠1201與1202。在一預定的延遲時間τ,區塊F3與F2被一組驅動電路寫入到第0排。區塊F1與F1被第二組驅動電路獨立地寫入到第1排。類似地,在時段t1當中,資料區塊F7與F5,以及資料區塊F6與F4分別到達準揮發記憶體控制器 1203的連接埠1201與1202。在一預定的延遲時間τ,區塊F7與F6被該第一組驅動電路寫入到第0排。區塊F5與F4被該第二組驅動電路獨立地寫入到第1排。
如果後背通道的介面(例如非揮發性記憶體介面702-1與702-2)為連接周邊裝置的介面(例如PCIe介面)時,後背通道可以讓記憶體控制器連接到那些會存取記憶體的裝置。上述裝置的一個範例為一種外部存儲系統,其用於執行本領域普通技術人員已知的非揮發性記憶體主機控制器介面協定(NVMe,Non-Volatile Memory Host Controller Interface Specification)。透過後背通道連接到一個這種裝置時,該裝置可以不需要主機匯流排適配器(adapter)或經由主機中央處理器單元所中介的直接記憶體存取,就可以對記憶體進行存取。當該後背通道能夠存取到準揮發記憶體的記憶體陣列時,可以提供足夠的資料緩衝區以便應對準揮發記憶體存取與該裝置資料速率之間的存取速率的差異。在這種做法當中,後背通道能夠提供準揮發記憶體的介面,而不需要任何SATA、SAS、SCSI光纖通道或以太網路裝置,因此避免了傳統中央處理器單元硬體和軟體的開銷(overhead)。
圖13所示為根據本發明一實施例的計算機網路1300,其包含主機處理器(例如伺服器)1301-1至1301-4,其具有以太網路為底的後背通道,用於連接到存儲器與其他裝置。如圖13所示,主機處理器1301-1至1301-4分別通過記憶體控制器1302-1至1302-4存取自己的準揮發記憶體與後背通道。在本實施例當中,每個後背通道包含一個以太介面,允許與它相關的主機處理器通過以太網路交換器1303來存取計算機網路1300當中的 其他裝置與主機處理器。圖13顯示,除了主機處理器1301-1至1301-4以外,連接到以太交換器1303的其他裝置包含了印表機1305、磁帶儲存裝置1306與網路附加儲存(NAS)裝置1307-1至1307-4。在這種構型當中,主機處理器1301-1至1301-4可以利用其後背通道來彼此交換其準揮發記憶體當中的資料。圖13所示的以太網路交換器1303可以連接到雲端1304,其可以代表一個廣域網路(例如網際網路),可以提供無限資源的網路存取功能。本發明也可以提供一個基於USB介面的後背通道。
後背通道具有一個網路介面是特別有用的。該網路介面可以提供網路上任何伺服器之準揮發記憶體與其它裝置之間的資料轉移的直接資料路徑。舉例來說,一企業伺服器可以從其內部網路中載入所有欲外傳的資料到它的記憶體,以便直接傳送到網際網路當中的一或多個接收者。透過簡化的程序與取消後台處理程序(spooler),這樣的安排改進了效率。本發明使得直接在記憶體之間的資料轉移變成可行,由於資料從準揮發記憶體中提取的速度遠快於自非揮發性記憶體中提取的速度,進而能大幅度地減少在網路中進行非常大量資料轉移時的延遲。在這種作法當中,可以自一伺服器的準揮發記憶體將大量資料(例如電影、具有影片內容的熱門網站)傳送或串流給許多網路上的接收者。
具有網路介面之後背通道的另一個應用是做為系統備份服務。一個從記憶體至存儲系統或是一個從記憶體至網路的後背通道允許準揮發記憶體控制器對相關主機中央處理器單元或伺服器的備份作業進行排程。優選的是一遠端存儲系統。在一實施例當中,當一資料庫被儲存時,可以啟動一備份作業。當一行程的資料被儲存到一當地儲存裝置(例如一非 揮發性記憶體),以便該伺服器用於服務其他行程時,上述的資料也可以同時將第二份拷貝儲存在一遠端且不在當地的儲存裝置,以便在災難發生後進行回復。因此,在本發明中記憶體控制器既可以作為一備份路徑也可以一回復路徑。由於準揮發記憶體係直連接到該儲存裝置,該儲存與備份的作業可以實時(realtime)進行以便有最大地回復涵蓋範圍,也就是說,保證可以無需延遲地立即備份重要檔案。
圖14所示為根據本發明一實施例的計算機系統1400,其執行的實時備份作業用於將單一檔案的不同拷貝分別儲存到非揮發性記憶體與在網路上的遠端處。如圖14所示,主機中央處理器單元1401與四個記憶體堆疊的記憶體控制器1402至1405進行通訊,每個記憶體控制器都管理一準揮發記憶體與一後背通道的一介面。更精確地說,記憶體控制器1402具有一以太網路為底的後背通道介面,其連接到可以是任何計算機網路(例如網際網路)的雲端1407與當地的磁帶裝置1410。類似地,記憶體控制器1402具有一個PCIe介面或是一個非揮發性記憶體介面以便通過交換器1408連接到多個儲存裝置1409-1至1409-3,以及記憶體控制器1405具有一個USB型態的介面,其連接到印表機1406。根據本發明,在圖14的系統當中,在非揮發性記憶體當中的一更新表可以由記憶體控制器1402實時地備份到當地的磁帶裝置1410,並且同時備份到雲端1407的一遠端儲存處。
本發明也緩解了圖形處理與人工智慧應用程式常見的記憶體瓶頸問題,這些應用程式使用圖形處理器來執行大量的計算。在一傳統的系統當中,中央處理器單元與圖形處理器單元都有專屬的動態隨機存取記憶體為主的記憶體供作業之用。典型地,在許多圖形與人工智慧應用程 式當中,首先從一儲存裝置(例如磁碟儲存裝置)提取出資料到中央處理器單元的記憶體,接著中央處理器單元從中複製,例如透過一PCIe介面將該資料複製到圖形處理器單元的記憶體以供圖形處理器進行作業。相關的記憶體瓶頸問題就在於當資料載入到圖形處理器記憶體時,圖形處理器在閒置狀態下等待。由於準揮發記憶體比傳統的動態隨機存取記憶體為主的記憶體有較高的資料密度,比起傳統的動態隨機存取記憶體,可以有較多的資料載入到準揮發記憶體,因此在一準揮發記憶體系統當中的記憶體瓶頸問題通常較不嚴重。即便如此,當中央處理器單元與圖形處理器單元雙方的記憶體在進行直接記憶體存取時,中央處理器單元與圖形處理器單元都必須用於處理資料的轉換作業。再者,當資料載入到圖形處理器單元的記憶體之後,傳統的中央處理器單元必須透過上述的PCIe匯流排發出一道指令以便傳遞所要求的圖形處理器單元的作業。
根據本發明的一實施例,透過在中央處理器單元與圖形處理器單元之間共享的準揮發記憶體,以及透過在一後背通道中額外提供一記憶體匯流排(例如一高頻寬記憶體匯流排HBM,high bandwidth memory),可以達成較佳的效能。圖15所示為根據本發明一實施例的計算機系統1500,其包含了中央處理器單元1501與圖形處理器單元1502,分別透過記憶體控制器1503與1504存取其所管理的準揮發記憶體(中央處理器單元準揮發記憶體與圖形處理器準揮發記憶體)。中央處理器單元準揮發記憶體與圖形處理器準揮發記憶體和它們的記憶體控制器1503與1504可以分別設置在兩個準揮發記憶體型態的記憶體堆疊當中。如圖15所示,記憶體控制器1503允許中央處理器單元1501透過工業標準匯流排介面(雙倍資料率匯流排 介面DDR,例如符合任何DDR3、DDR4與DDR5工業標準)來存取中央處理器單元準揮發記憶體,並且藉由高頻寬記憶體匯流排介面1506提供一後背通道讓圖形處理器單元1502來存取。記憶體控制器1504允許圖形處理器單元1502透過高頻寬記憶體匯流排1507來存取圖形處理器準揮發記憶體,並且透過雙倍資料率匯流排介面1508提供一後背通道。在圖15所示的計算機系統1500當中,記憶體控制器1503與1504中的每一個可以利用其相對應的直接記憶體存取控制電路,分別處理經由高頻寬記憶體匯流排介面1506與雙倍資料率匯流排介面1508在中央處理器單元準揮發記憶體與圖形處理器準揮發記憶體之間進行的直接記憶體對記憶體的資料轉移。在一實施例當中,中央處理器單元準揮發記憶體與圖形處理器準揮發記憶體是一整個準揮發記憶體的不同部分。在這個範例當中,記憶體控制器1503管理著該整個準揮發記憶體,而記憶體控制器1504只需要為記憶體介面1507與1508提供電路即可。
在計算機系統1500當中,每個準揮發記憶體可以具有多個連接埠,並且可以被分成多個區塊,據此可以讓其中一個連接埠載入資料到一個記憶體區塊,同時讓另一個連接埠自先前已載入資料的記憶體區塊中提出資料。在這個系統當中,基於一或多個特別暫存器的簡單協定就可以確保對某一記憶體區塊的存取是獨占的,無不需要複雜的閉鎖(lockout)硬體。舉例來說,當在一後背通道中透過一SATA介面自存儲系統1509載入資料到中央處理器單元準揮發記憶體之後,中央處理器單元1501可以令記憶體控制器1503準備將中央處理器單元準揮發記憶體的一區塊中的資料,透過高頻寬記憶體匯流排介面1506轉移到圖形處理器準揮發記憶體的 一特殊記憶體區塊(假設是圖形處理器第0區塊)。當上述的資料轉移完成之時,記憶體控制器1503在圖形處理器單元的特殊暫存器中設置一個位元,以便表示有效資料已經載入到圖形處理器第0區塊之中。接著,圖形處理器單元1502可以對圖形處理器第0區塊之中的資料進行作業。當圖形處理器單元1502的作業完成時,圖形處理器單元1502啟動一個記憶體對記憶體的資料移轉,透過雙倍資料率匯流排介面1508自圖形處理器第0區塊將資料轉移到中央處理器單元準揮發記憶體當中的一個指定的結果記憶體區塊,並且設置中央處理器單元特殊暫存器中的一個位元,以便表示作業結果已經準備好供中央處理器單元進行存取,以及清除掉在圖形處理器單元的特殊暫存器中的該位元,以便表示圖形處理器第0區塊已經可以被重新利用。同時,當圖形處理器單元1502對圖形處理器第0區塊之中的資料進行作業時,中央處理器單元1501可以準備對圖形處理器準揮發記憶體的另一區塊(圖形處理器第1區塊)進行資料轉移。
假設在圖形處理器準揮發記憶體中的資料需要以一特殊格式呈現時,記憶體控制器1503可以提供一格式化電路,以便在透過高頻寬記憶體匯流排介面1506將格式化後的資料寫入到圖形處理器準揮發記憶體之前,先執行格式化步驟。這種電路可以避免讓圖形處理器單元1502花費寶貴的時脈循環來執行格式化資料的動作。圖16所示為根據本發明一實施例之圖15所示的記憶體控制器1503當中的格式器(formatter)1650。如圖16所示,在記憶體控制電路1651(例如圖7所示的那些記憶體控制器740)之外,記憶體控制器1503更包含格式器1650。在本範例中,格式器1650重新安排在內部匯流排1655的資料位元組(例如從小值little-endian轉換成大值big- endian格式)。因此,格式器1650包含了多工器1654,其用於根據序列器1562(sequencer)自內部匯流排1655選出一個格式單位(例如一個位元組)的資料。從多工器1654所輸出的選擇資料被格式化並且被寫入到暫存器檔案1653。當匯流排1655上的所有資料都處理完畢之後,序列器1652令暫存器檔案1653輸出已格式化的資料到輸出匯流排1656,其接著導入到高頻寬記憶體匯流排介面1506。當某一控制位元被設置之後,可以用另一個未示出的資料路徑跳過格式器電路1650。當上述事件發生時,內部匯流排1655的資料直接提供給高頻寬記憶體匯流排介面1506。通常來說,格式化通常發生於在資料載入到圖形處理器準揮發記憶體的時候。然而,當資料從圖形處理器準揮發記憶體載入到中央處理器準揮發記憶體時,也可以提供實質相同的格式化方法。
舉例來說,可以由本領域普通技術人員所知的現場可編程閘陣列(FPGA)來實作格式器電路1650,以便利用現場可編程閘陣列的高度彈性的可編程能力。現場可編程閘陣列允許使用者針對一種特殊資料集合來調整其演算法的格式化功能。可以在記憶體控制器1503內部的一非揮發性記憶體當中儲存並且回復上述的現場可編程閘陣列的設定。在另一作法當中,由於準揮發記憶體也可以在非揮發性記憶體模式下做為一種非揮發性記憶體,準揮發記憶體的一部分可以特別設定為在非揮發性記憶體模式下來運作。(在大多數的準揮發記憶體當中,已經有一部分已經被設成在非揮發性記憶體模式下運作,以便提供管家house-keeping功能,例如紀錄一損壞區塊的目錄。)在組成許多通用電路時,現場可編程閘陣列提供了有效的建造元件(例如組合邏輯電路、暫存器、移位器和狀態機)。
對某些應用程式而言,需要多個圖形處理器單元(例如在人工智慧應用程式中的複雜神經網路)。圖17A所示為根據本發明一實施例的計算機系統1700,其中要被串聯的圖形處理器單元1701與1702先後處理的資料,流經準揮發記憶體堆疊1703-1至1703-3的流水線的各級。計算機1700可以被用於取代圖15所示之中央處理器準揮發記憶體的記憶體堆疊、圖形處理器準揮發記憶體的記憶體堆疊和計算機系統1500中的圖形處理器單元1502的構型。基本上,計算機系統1700在計算機系統1500之上增加了額外的圖形處理器單元1702。
圖17B所示為根據本發明一實施例的計算機系統1700的一種實作範例1750,其使用中介晶片1751來連接各元件。如圖17B所示,準揮發記憶體堆疊1703-1至1703-3被整合到單一個共享的準揮發記憶體堆疊1703。圖形處理器1701與1702和準揮發記憶體堆疊1703透過中介晶片1751以及準揮發記憶體介面(亦即銅柱和圖形處理器單元1701與1702和準揮發記憶體堆疊1703的矽穿孔)彼此互相連接。中介晶片1751被配置在封裝基板1752之上。封裝基板1752可以是一球格封裝(ball grid-array)的一部份,該球格封裝可以在一表面提供錫球以便連接其內部元件。在圖17B當中,中介晶片1751具有矽穿孔,所以在封裝基板1752的矽穿孔提供了在中介晶片1751上的原件的外部連接。例如圖17B所示,讀取和寫入記憶體匯流排1753和1754不只可以藉由其準揮發記憶體介面和中介晶片1751來提供圖形處理器單元1701與1702存取,讀取和寫入記憶體匯流排1753和1754還可以透過包含該封裝基板1752之封裝體的外部錫球來存取。
本發明的後背通道凸顯了傳統封裝標準中關於針腳與貼入 連接器(connector-tie-in)相容性的挑戰。舉例來說,可以提供實作了數個工業標準介面的特殊硬體,使得運用這種特殊硬體的記憶體控制器可以在後背通道中提供上述的介面,據此可以讓這一種後背通道具有可編程的傳統通信與控制。在另一種作法當中,幾乎是任何一種可以作為匯流排主控端(master)的介面都適合作為本發明的一後背通道,優選的是,在後背通道中的一特製介面可以讓記憶體堆疊能夠更廣泛地進行通訊。圖18所示為根據本發明一實施例的計算機系統1800,其包含連接到後背通道的記憶體介面擴充器(expander)1804,用於提供使用者可以選用的一些標準周邊介面。如圖18所示,中央處理器單元1801可以透過一傳統的雙倍資料率記憶體介面匯流排來存取準揮發記憶體堆疊1802與1803當中的每一個記憶體陣列。在後背通道中,記憶體介面擴充器1804利用任何適當的客製化界面匯流排來與準揮發記憶體堆疊1802與1803當中的每一個記憶體陣列進行通訊,而上述的客製化界面匯流排即分別為圖18所示的後背通道1805a與1805b。為了避免記憶體瓶頸問題,優選的後背通道1805a與1805b應當是通道寬且快速的匯流排。記憶體介面擴充器1804可以透過一些工業標準介面當中相應的一個介面與任何裝置進行通訊。圖18顯示下列合格的工業標準介面:USB、以太網路、SATA、SAS、MCIe以及NAND。記憶體擴充器1804在所選的介面與後背通道1805a與1805b之間的信號進行轉譯。
本發明的後背通道幾乎解除了中央處理器單元所負責的大部分硬體控制與流量管理開銷,使得中央處理器單元僅作為一個計算島,而讓大多數的裝置控制功能轉由一或多個準揮發記憶體控制器來負責。由於中央處理器單元有更多計算作業,導致有較高記憶體容量需求。較高密 度的準揮發記憶體至少能夠滿足該需求的部分。當有越來越多個記憶體堆疊可用於服務主機中央處理器單元或多個中央處理器單元時,可能要在後背通道中具有更多個處理能量,以便完全地利用這些記憶體堆疊。這些額外的處理能量允許後背通道能增長其能力(例如做為一個叢集化的伺服器)。這樣的發展可能導致更複雜的分散式作業系統。
本發明讓計算機和伺服器有了新應用(例如前述的高速記憶體匯流排)。當後背通道可以支援一種無線介面時,後背通道也可以有無線的應用。舉例來說,透過一微波無線連接到準揮發記憶體可以讓更多直接且動態重設的連線進行遠距離的資料轉移。這樣的無線能力允許任何來源執行直接的記憶體對記憶體、記憶體對磁碟或磁碟對記憶體的資料轉移,而不需要主機中央處理器單元的任何介入。當擁有這種能力時,一個主控端可以動態地改變通道的分配,幾乎可以消除主機與磁碟通道分配所造成的傳統瓶頸。
以上的詳細說明係用於說明本發明的特定實施例,不是用於限制在本發明可能之範圍當中的眾多變化與修改。本發明的界定係根據以下的申請專利範圍。
700:記憶體堆疊
701:精簡指令集計算機處理器
702-1、702-2:非揮發性記憶體介面/反及閘
703R:讀取資料匯流排
703W:寫入資料匯流排
704:準揮發記憶體介面
705:糾錯更正電路
706:校驗位元產生電路
707:直接記憶體存取控制電路/直接記憶體存取位址邏輯電路
708:快取
709:讀寫介面
710:記憶體匯流排/主機中央處理器單元匯流排
711:刷新電路
740:記憶體控制器
741:記憶體晶片(n個晶片)
NAND:反及閘

Claims (43)

  1. 一種記憶體模組,包含:一第一半導體晶片,於其上形成一或多個準揮發記憶體陣列的一第一集合與互連導體的一第一群組,其用於對上述之準揮發記憶體陣列的讀取、寫入或擦除作業傳送與接收資料與控制信號;鍵合至該第一半導體晶片的一第二半導體晶片,於該第二半導體晶片其上形成一記憶體控制器電路,該記憶體控制器電路包含一內部匯流排,該內部匯流排連接該記憶體控制器及透過該第一群組之互連導體以便連接到該第一集合之準揮發記憶體陣列,其中該記憶體控制器在讀取、寫入或擦除作業時,傳送與接收上述之資料與控制信號以便存取該第一集合之準揮發記憶體陣列;以及一第三半導體晶片,於其上形成一或多個準揮發記憶體陣列的一第二集合與互連導體的一第二群組,其用於對上述之第二集合的準揮發記憶體陣列的讀取、寫入或擦除作業傳送與接收資料與控制信號,其中該第一半導體晶片更包含於其上形成互連導體的一第三群組,該第三群組的互聯導體透過矽穿孔來連接到該第二群組的互聯導體,其中該第二半導體晶片的該記憶體控制器電路經由該第三群組的互連導體來連接該第二集合之準揮發記憶體陣列,其中該記憶體控制器電路在讀取、寫入或擦除作業時,傳送與接收上述之資料與控制信號以便存取該第二集合之準揮發記憶體陣列。
  2. 如申請專利範圍第1項的記憶體模組,其中該記憶體控制器包含一主機記憶體介面,以允許一主機處理器要求該記憶體控制器執行交易。
  3. 如申請專利範圍第1項的記憶體模組,其中該第二半導體晶片的內部匯流排更連接該記憶體控制器及透過該第二群組之互連導體以便連接到該第三半導體晶片之準揮發記憶體陣列。
  4. 如申請專利範圍第3項的記憶體模組,其中該記憶體控制器更包含一介面電路,用於連接該內部匯流排與一後背通道裝置,以令該後背通道裝置與該記憶體模組內的該準揮發記憶體陣列之間進行資料轉移。
  5. 如申請專利範圍第4項的記憶體模組,其中該介面電路包含具有多個連接埠的一介面電路。
  6. 如申請專利範圍第4項的記憶體模組,其中該後背通道裝置包含由一或多個額外之主機處理器所存取的一或多個準揮發記憶體陣列的一第三集合。
  7. 如申請專利範圍第6項的記憶體模組,其中該記憶體控制器電路執行在該第一集合與該第三集合之準揮發記憶體陣列之間的記憶體對記憶體的資料轉移。
  8. 如申請專利範圍第4項的記憶體模組,其中該後背通道裝置包含選自以下 其中之一的控制器:一非揮發性記憶體系統的一控制器;一磁碟存儲系統的一控制器;一周邊介面的一控制器;以及存取一資料網路的一控制器。
  9. 如申請專利範圍第8項的記憶體模組,其中該非揮發性記憶體系統包含反及閘(NAND)型態的快閃記憶體裝置。
  10. 如申請專利範圍第8項的記憶體模組,其中該非揮發性記憶體系統的該控制器形成在該第二半導體晶片之上。
  11. 如申請專利範圍第8項的記憶體模組,其中該後背通道裝置包含:該非揮發性記憶體系統的該控制器,該記憶體控制器維護在該準揮發記憶體陣列中的一查詢表,其針對儲存在該非揮發性記憶體系統中的每一個檔案分配一個數字標識符。
  12. 如申請專利範圍第11項的記憶體模組,其中該記憶體控制器維護一位址轉換表,其將每一個檔案的該數字標識符對應到該非揮發性記憶體系統的一或多個位置。
  13. 如申請專利範圍第12項的記憶體模組,其中該非揮發性記憶體系統係根 據一虛擬化檔案系統來儲存檔案。
  14. 如申請專利範圍第13項的記憶體模組,其中該虛擬化檔案系統在該非揮發性記憶體系統的指定開銷(overhead)位置儲存開銷檔案。
  15. 如申請專利範圍第14項的記憶體模組,其中在該非揮發性記憶體系統的指定開銷位置之外的部分維護著一或兩個循環儲存區。
  16. 如申請專利範圍第14項的記憶體模組,其中該虛擬化檔案系統在該準揮發記憶體陣列與在該非揮發性記憶體系統當中維護該位址轉換表。
  17. 如申請專利範圍第16項的記憶體模組,其中該記憶體控制器更包含在準揮發記憶體陣列中的一更新表以記錄一檔案之更新,其中該更新表係被整合到該準揮發記憶體陣列與在該非揮發性記憶體系統當中的位址轉換表。
  18. 如申請專利範圍第8項的記憶體模組,其中存取一資料網路的該控制器包含一以太網路控制器。
  19. 如申請專利範圍第8項的記憶體模組,其中存取一資料網路的該控制器包含一無線網路介面控制器。
  20. 如申請專利範圍第8項的記憶體模組,其中該周邊介面包含一PCIe介面。
  21. 如申請專利範圍第8項的記憶體模組,其中該記憶體控制器包含一精簡指令集計算機(RISC)處理器。
  22. 如申請專利範圍第8項的記憶體模組,其中該記憶體控制器更包含一直接記憶體存取(DMA)電路,用於在該準揮發記憶體陣列之間或內部,以及在該後背通道裝置及該準揮發記憶體陣列之間進行資料轉移。
  23. 如申請專利範圍第8項的記憶體模組,其中該記憶體控制器更包含在該準揮發記憶體陣列與該後背通道裝置之間的一格式器電路,用於在該準揮發記憶體陣列與該後背通道裝置之間轉換資料的格式。
  24. 如申請專利範圍第4項的記憶體模組,其中該記憶體控制器更包含由現場可編程閘陣列(FPGAs)所形成的一或多個邏輯電路。
  25. 如申請專利範圍第4項的記憶體模組,其中與該後背通道裝置相關的被要求之交易是由該記憶體控制器執行,而無須該主機處理器的介入。
  26. 如申請專利範圍第2項的記憶體模組,其中該記憶體控制器在該記憶體模組的該準揮發記憶體陣列上執行被要求之交易的日記(journaling)。
  27. 如申請專利範圍第2項的記憶體模組,其中該記憶體控制器在該記憶體 模組的該準揮發記憶體陣列上執行被要求之交易的檢查點(checkpointing)。
  28. 如申請專利範圍第2項的記憶體模組,其中對於每一個被要求之交易,該記憶體控制器在該準揮發記憶體陣列中進行記錄,並且在該被要求之交易進行時,對於該交易的每一個處理狀態記錄一或多個相關的狀態碼。
  29. 如申請專利範圍第28項的記憶體模組,其中該被要求之交易與其相關的該狀態碼記錄在該準揮發記憶體陣列中所分配的循環緩衝區內。
  30. 如申請專利範圍第2項的記憶體模組,其中該記憶體控制器更包含一加密電路與一解密電路,用於在資料存入該準揮發記憶體陣列時加密,以及自該準揮發記憶體陣列提取資料時解密。
  31. 如申請專利範圍第2項的記憶體模組,其中該記憶體控制器更包含一資料壓縮電路與一資料解壓縮電路,用於在資料存入該準揮發記憶體陣列時進行壓縮,以及自該準揮發記憶體陣列提取資料時進行解壓縮。
  32. 如申請專利範圍第2項的記憶體模組,其中該記憶體控制器更包含一資料糾錯碼產生電路與一糾錯電路,用於在資料存入該準揮發記憶體陣列時產生隨伴資料一同存入的糾錯碼,以及自該準揮發記憶體陣列提取資料時基於隨伴的糾錯碼對資料進行糾錯。
  33. 如申請專利範圍第32項的記憶體模組,更包含一錯誤記錄電路,用於當自該準揮發記憶體陣列提取資料時被該糾錯電路發現錯誤時,偵測並且記錄每次的錯誤事件。
  34. 如申請專利範圍第33項的記憶體模組,其中該記憶體控制器更包含一刷新電路,用於刷新儲存在該準揮發記憶體陣列的資料,以及當該刷新電路刷新該準揮發記憶體陣列的同時,在該準揮發記憶體陣列的其中之一執行錯誤事件的該記錄步驟。
  35. 如申請專利範圍第32項的記憶體模組,其中該準揮發記憶體陣列包含了冗餘的準揮發記憶體單元,其中在該準揮發記憶體陣列中的準揮發記憶體單元係根據該錯誤事件而被對應到該冗餘的準揮發記憶體單元。
  36. 如申請專利範圍第2項的記憶體模組,其中該記憶體模組被鍵合到一中介晶片,其中該主機處理器也被鍵合到該中介晶片,該中介晶片提供互連導體以便將該主機處理器電性連接到該主機處理器介面。
  37. 如申請專利範圍第36項的記憶體模組,其中該中介晶片更鍵合到在該中介晶片之上的額外半導體晶片,每一個額外半導體晶片都具有額外的電路,其中該中介晶片提供互連導體以便內連接該記憶體模組、該主機處理器以及該額外半導體晶片上的該額外電路。
  38. 如申請專利範圍第37項的記憶體模組,其中該額外電路包含一圖形處理器單元(GPU)。
  39. 如申請專利範圍第37項的記憶體模組,其中該額外電路包含一現場可編程閘陣列電路(FPGA)。
  40. 如申請專利範圍第37項的記憶體模組,其中該額外電路包含如該記憶體模組的一第二記憶體模組。
  41. 如申請專利範圍第37項的記憶體模組,其中該額外電路包含一工業標準介面電路。
  42. 如申請專利範圍第36項的記憶體模組,其中該中介晶片鍵合到一封裝基板,該封裝基板是一積體電路封裝的一部分,該積體電路封裝包含外部連線用的端子,其中該中介晶片與該封裝基板包含矽穿孔以允許該外部端子電性連接到該中介晶片中的互連導體。
  43. 如申請專利範圍第42項的記憶體模組,其中該積體電路封裝包含一球格陣列積體電路封裝。
TW109111807A 2019-04-09 2020-04-08 具有後通道應用之準揮發性記憶體裝置 TWI764128B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962831611P 2019-04-09 2019-04-09
US62/831,611 2019-04-09
US201962867604P 2019-06-27 2019-06-27
US62/867,604 2019-06-27

Publications (2)

Publication Number Publication Date
TW202101204A TW202101204A (zh) 2021-01-01
TWI764128B true TWI764128B (zh) 2022-05-11

Family

ID=72747899

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109111807A TWI764128B (zh) 2019-04-09 2020-04-08 具有後通道應用之準揮發性記憶體裝置

Country Status (4)

Country Link
US (2) US11301172B2 (zh)
EP (1) EP3953937A4 (zh)
TW (1) TWI764128B (zh)
WO (1) WO2020210390A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11120884B2 (en) 2015-09-30 2021-09-14 Sunrise Memory Corporation Implementing logic function and generating analog signals using NOR memory strings
US10372625B2 (en) * 2016-12-27 2019-08-06 Intel Corporation Secure memory
US11397687B2 (en) * 2017-01-25 2022-07-26 Samsung Electronics Co., Ltd. Flash-integrated high bandwidth memory appliance
CN111033625B (zh) * 2017-06-20 2024-02-06 日升存储公司 三维nor存储器阵列架构及其制造方法
US11670620B2 (en) 2019-01-30 2023-06-06 Sunrise Memory Corporation Device with embedded high-bandwidth, high-capacity memory using wafer bonding
WO2020210390A1 (en) * 2019-04-09 2020-10-15 Sunrise Memory Corporation Quasi-volatile memory device with a back-channel usage
KR20210050243A (ko) * 2019-10-28 2021-05-07 삼성전자주식회사 뉴로모픽 패키지 장치 및 뉴로모픽 컴퓨팅 시스템
WO2021127218A1 (en) 2019-12-19 2021-06-24 Sunrise Memory Corporation Process for preparing a channel region of a thin-film transistor
EP4100839A4 (en) 2020-02-07 2024-03-13 Sunrise Memory Corp QUASI-VOLATILE SYSTEM LEVEL MEMORY
US11675500B2 (en) 2020-02-07 2023-06-13 Sunrise Memory Corporation High capacity memory circuit with low effective latency
US11507301B2 (en) 2020-02-24 2022-11-22 Sunrise Memory Corporation Memory module implementing memory centric architecture
US20210105207A1 (en) * 2020-11-18 2021-04-08 Intel Corporation Direct memory access (dma) engine with network interface capabilities
US11810640B2 (en) 2021-02-10 2023-11-07 Sunrise Memory Corporation Memory interface with configurable high-speed serial data lanes for high bandwidth memory
TWI807384B (zh) * 2021-08-09 2023-07-01 宇瞻科技股份有限公司 儲存裝置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010002884A1 (en) * 1998-11-11 2001-06-07 Mitsuru Hiraki Semiconductor integrated circuit device, memory module, storage device and the method for repairing semiconductor integrated circuit device
US20140159247A1 (en) * 2012-12-06 2014-06-12 Texas Instruments Incorporated 3D Semiconductor Interposer for Heterogeneous Integration of Standard Memory and Split-Architecture Processor
US20150379670A1 (en) * 2014-06-30 2015-12-31 Altug Koker DATA DISTRIBUTION FABRIC IN SCALABLE GPUs
TW201629955A (zh) * 2014-10-26 2016-08-16 Neo半導體股份有限公司 用於提供三維整合揮發記憶體與動態隨機存取記憶體之記憶裝置之方法與設備
US20170092371A1 (en) * 2015-09-30 2017-03-30 Eli Harari Capacitive-coupled non-volatile thin-film transistor strings in three dimensional arrays
TW201727857A (zh) * 2016-01-19 2017-08-01 聯發科技股份有限公司 混合系統

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092595B2 (en) * 1997-10-08 2015-07-28 Pact Xpp Technologies Ag Multiprocessor having associated RAM units
US7177191B2 (en) * 2004-12-30 2007-02-13 Sandisk 3D Llc Integrated circuit including memory array incorporating multiple types of NAND string structures
US7514773B2 (en) 2006-08-31 2009-04-07 Intel Corporation Systems and arrangements for interconnecting integrated circuit dies
US8468417B2 (en) * 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
US8630114B2 (en) 2011-01-19 2014-01-14 Macronix International Co., Ltd. Memory architecture of 3D NOR array
US9666238B2 (en) * 2011-05-12 2017-05-30 Rambus Inc. Stacked DRAM device and method of manufacture
US9535831B2 (en) 2014-01-10 2017-01-03 Advanced Micro Devices, Inc. Page migration in a 3D stacked hybrid memory
US20150279431A1 (en) 2014-04-01 2015-10-01 Micron Technology, Inc. Stacked semiconductor die assemblies with partitioned logic and associated systems and methods
KR102513489B1 (ko) * 2016-08-26 2023-03-23 선라이즈 메모리 코포레이션 3차원 어레이에서 용량 결합된 비휘발성 박막 트랜지스터 스트링
KR20180064734A (ko) * 2016-12-06 2018-06-15 삼성전자주식회사 반도체 메모리 장치 및 이를 구비하는 메모리 모듈
US10803962B1 (en) * 2019-04-01 2020-10-13 Micron Technology, Inc. Current monitoring in semiconductor packages
WO2020210390A1 (en) * 2019-04-09 2020-10-15 Sunrise Memory Corporation Quasi-volatile memory device with a back-channel usage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010002884A1 (en) * 1998-11-11 2001-06-07 Mitsuru Hiraki Semiconductor integrated circuit device, memory module, storage device and the method for repairing semiconductor integrated circuit device
US20140159247A1 (en) * 2012-12-06 2014-06-12 Texas Instruments Incorporated 3D Semiconductor Interposer for Heterogeneous Integration of Standard Memory and Split-Architecture Processor
US20150379670A1 (en) * 2014-06-30 2015-12-31 Altug Koker DATA DISTRIBUTION FABRIC IN SCALABLE GPUs
TW201629955A (zh) * 2014-10-26 2016-08-16 Neo半導體股份有限公司 用於提供三維整合揮發記憶體與動態隨機存取記憶體之記憶裝置之方法與設備
US20170092371A1 (en) * 2015-09-30 2017-03-30 Eli Harari Capacitive-coupled non-volatile thin-film transistor strings in three dimensional arrays
TW201727857A (zh) * 2016-01-19 2017-08-01 聯發科技股份有限公司 混合系統

Also Published As

Publication number Publication date
US20220188041A1 (en) 2022-06-16
EP3953937A1 (en) 2022-02-16
US20200326889A1 (en) 2020-10-15
US11301172B2 (en) 2022-04-12
EP3953937A4 (en) 2022-12-14
US11954363B2 (en) 2024-04-09
WO2020210390A1 (en) 2020-10-15
TW202101204A (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
TWI764128B (zh) 具有後通道應用之準揮發性記憶體裝置
US11775455B2 (en) Storage device for interfacing with host and method of operating the host and the storage device
US11182078B2 (en) Method of accessing a data storage device using a multi-access command
CN108885584B (zh) 使用主机存储器缓冲区的无序读取传输
US10318164B2 (en) Programmable input/output (PIO) engine interface architecture with direct memory access (DMA) for multi-tagging scheme for storage devices
US10534560B2 (en) Data storage device and data processing system having the same
JP7252845B2 (ja) 高帯域幅メモリのras(信頼性、アクセシビリティ、及びサービサビリティ)キャッシュ構造
US9009580B2 (en) System and method for selective error checking
US9996282B2 (en) Method of operating data storage device and method of operating system including the same
US8949509B2 (en) Mass storage systems and methods using solid-state storage media and ancillary interfaces for direct communication between memory cards
US20160291869A1 (en) Data storage device and data processing system including the same
Khalifa et al. Memory controller architectures: A comparative study
US20160306579A1 (en) Method of operating data storage device and method of operating system including the same
US11789654B2 (en) Data storage device and method for file-based interrupt coalescing
US20220283912A1 (en) Storage device, operating method of storage device, and electronic device including storage device
US20240176546A1 (en) Quasi-volatile memory device with a back-channel usage
US11836117B2 (en) Storage device, storage system, and method of operating the storage system
US20170031633A1 (en) Method of operating object-oriented data storage device and method of operating system including the same
US11995327B2 (en) Data storage device and method for adaptive host memory buffer allocation based on virtual function prioritization
US20240004561A1 (en) Data Storage Device and Method for Adaptive Host Memory Buffer Allocation Based on Virtual Function Prioritization
US20230376427A1 (en) Memory system and computing system including the same
US11442665B2 (en) Storage system and method for dynamic selection of a host interface
CN117795466A (zh) 使用子命令的存取请求管理
KR20230144434A (ko) 호스트 장치의 동작 방법 및 스토리지 장치의 동작 방법
WO2024030785A2 (en) Memory controller for a high capacity memory circuit with large number of independently accessible memory banks