TW202044043A - 記憶體裝置、資料處理系統以及操作記憶體裝置的方法 - Google Patents

記憶體裝置、資料處理系統以及操作記憶體裝置的方法 Download PDF

Info

Publication number
TW202044043A
TW202044043A TW109107967A TW109107967A TW202044043A TW 202044043 A TW202044043 A TW 202044043A TW 109107967 A TW109107967 A TW 109107967A TW 109107967 A TW109107967 A TW 109107967A TW 202044043 A TW202044043 A TW 202044043A
Authority
TW
Taiwan
Prior art keywords
memory
command
address
memory device
processing
Prior art date
Application number
TW109107967A
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 TW202044043A publication Critical patent/TW202044043A/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/0656Data buffering arrangements
    • 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/0608Saving storage space on storage 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Abstract

一種記憶體裝置包括具有記憶體組的記憶體、記憶體中處理器(PIM)電路及控制邏輯。記憶體中處理器電路包括儲存自主機提供的至少一個指令的指令記憶體。記憶體中處理器電路被配置成使用由主機提供的資料或自記憶體組讀取的資料來處理操作,且儲存由主機提供的至少一個指令。控制邏輯被配置成對自主機接收到的命令/位址進行解碼以產生解碼結果,並基於解碼結果來執行控制操作,使得達成以下情形之一:i)對記憶體組實行記憶體操作,以及ii)記憶體中處理器電路實行處理操作。因應於命令/位址指示欲實行處理操作而控制程式計數器的計數值,所述計數值指示指令記憶體的位置。

Description

記憶體裝置、資料處理系統以及操作記憶體裝置的方法
本發明概念是有關於一種記憶體裝置,且更具體而言,是有關於一種用於處理操作的記憶體裝置、一種包括所述記憶體裝置的資料處理系統以及一種操作所述記憶體裝置的方法。 [相關申請案的交叉參考]
本美國非臨時專利申請案主張於2019年3月11日在美國專利及商標局提出申請的美國臨時申請案第62/816,509號的優先權,並主張於2019年12月6日在韓國智慧財產局提出申請的韓國專利申請案第10-2019-0161674號的優先權利,所述美國臨時申請案及韓國專利申請案的揭露內容全部併入本文中供參考。
半導體記憶體裝置是用於數位資料儲存的數位電子半導體裝置,例如電腦記憶體。用於高效能操作的半導體記憶體裝置的容量及速度不斷增加。半導體記憶體裝置的實例包括揮發性記憶體,例如動態隨機存取記憶體(dynamic random access memory,DRAM),其藉由儲存於電容器中的電荷來確定資料。
包括DRAM在內的記憶體裝置可用於儲存藉由各種類的操作(例如神經網路操作或算術操作)來加以操作的資料。記憶體裝置中的記憶體中處理器(processor in memory,PIM)電路可高效地處理大量操作。
本發明概念的至少一個實施例提供一種記憶體裝置、一種包括所述記憶體裝置的資料處理系統以及一種操作所述記憶體裝置的方法,所述記憶體裝置能夠在藉由使用記憶體裝置中的記憶體中處理器(PIM)電路來處理操作時提高操作效率及效能。
根據本發明概念的示例性實施例,提供一種記憶體裝置,包括具有包括記憶體胞元的記憶體組(memory bank)的記憶體、記憶體中處理器(PIM)電路及控制邏輯。所述PIM電路包括儲存自主機提供的至少一個指令的指令記憶體。所述PIM電路被配置成使用由所述主機提供的資料或自所述記憶體組讀取的資料來處理操作,且儲存由所述主機提供的至少一個指令。所述控制邏輯被配置成對自所述主機接收的命令/位址進行解碼以產生解碼結果,並基於解碼結果來執行控制操作,使得達成以下情形之一:i)對記憶體組實行記憶體操作,以及ii)PIM電路實行處理操作。因應於所述命令/位址指示欲實行所述處理操作而控制程式計數器的計數值,所述計數值指示所述指令記憶體的位置。
根據本發明概念的示例性實施例,提供一種操作包括多個記憶體組的記憶體裝置的方法。所述方法包括:儲存自主機接收到的與處理操作對應的多個指令;對自所述主機接收到的命令/位址進行解碼,以判斷所述位址是否屬於第一範圍及第二範圍之一;當確定所述位址對應於所述第一範圍時,實行與接收到的所述命令/位址對應的記憶體操作;以及當確定所述位址屬於所述第二範圍時,讀取所述多個指令中的指令,並在設置於所述記憶體裝置中的記憶體中處理器(PIM)電路中實行與所讀取的所述指令對應的處理操作。
根據本發明概念的示例性實施例,提供一種包括主機的資料處理系統。所述主機包括位址映射記憶體(address map memory)及記憶體介面。所述位址映射記憶體被配置成儲存屬於第一範圍的多個位址及屬於第二範圍的多個位址,所述第一範圍用於指示欲對記憶體裝置實行記憶體操作,所述第二範圍用於指示欲使用自所述記憶體裝置的記憶體組中的所選擇記憶體組讀取的資料來實行處理操作。所述記憶體介面被配置成藉由輸出屬於所述第一範圍的位址來指示欲實行所述記憶體操作,且藉由輸出屬於所述第二範圍的位址來指示欲實行所述處理操作。
在下文中,將參照附圖詳細闡述本發明概念的示例性實施例。
圖1是示出根據本發明概念示例性實施例包括記憶體裝置的資料處理系統10的方塊圖。
參照圖1,資料處理系統10包括記憶體控制器100(例如,控制電路)及記憶體裝置200。記憶體控制器100可包括記憶體介面110(例如,介面電路)及位址映射120,且可藉由記憶體介面110向記憶體裝置200提供各種訊號,並且可控制例如寫入及讀取等記憶體操作。位址映射120可儲存於記憶體控制器100的記憶體或暫存器中。例如,記憶體控制器100可向記憶體裝置200提供命令CMD及位址ADD,以存取記憶體裝置200的資料DATA。命令CMD可包括請求寫入資料的寫入命令WR及請求讀取資料的讀取命令RD。
記憶體控制器100可根據來自主機HOST(例如,主機裝置)的請求(例如,訊息或訊號)來存取記憶體裝置200,且記憶體介面110可提供與記憶體裝置200的介面。記憶體控制器100可藉由使用各種協定與主機HOST通訊。例如,記憶體控制器100可藉由使用例如以下等介面協定與主機HOST通訊:周邊組件互連高速(peripheral component interconnect - express,PCI-E)、進階技術附件(advanced technology attachment,ATA)、串列ATA(serial ATA,SATA)、並列ATA(parallel ATA,PATA)或串列附接小型電腦系統介面(Small Computer System Interface,SCSI)(serial attached SCSI,SAS)。另外,可應用例如通用串列匯流排(universal serial bus,USB)、多媒體卡(multi-media card,MMC)、增強型小型磁碟介面(enhanced small disk interface,ESDI)及積體驅動電子裝置(integrated drive electronics,IDE)等其他各種介面協定中的每一者作為主機HOST與記憶體控制器100之間的通訊協定。作為另一選擇,根據示例性實施例,記憶體控制器100可對應於主機HOST或主機HOST中所包括的組件。
記憶體裝置200包括記憶體210、記憶體中處理器(PIM)電路220及控制邏輯230(例如,邏輯電路)。控制邏輯230包括命令解碼器231(例如,解碼器電路)。另外,記憶體210包括多個記憶體組BANK 1至BANK N,且記憶體組BANK 1至BANK N中的每一者可包括多個記憶體胞元(或者包括記憶體胞元的胞元陣列)。可以各種方式來定義記憶體組。例如,所述記憶體組可被定義為包括記憶體胞元的組件或者包括一或多個周邊電路以及記憶體胞元的組件。
可使用自記憶體控制器100接收的位址ADD來選擇將實行資料存取的記憶體組。另外,可選擇記憶體組中的記憶體胞元。另外,命令解碼器231可對自記憶體控制器100接收的命令/位址CMD/ADD實行解碼操作以產生解碼結果,且控制邏輯230可根據解碼結果來對記憶體裝置200實行內部控制操作,以便實行記憶體操作。
另一方面,記憶體裝置200可為動態隨機存取記憶體(dynamic random access memory,DRAM),例如雙倍資料速率同步動態隨機存取記憶體(double data rate synchronous dynamic random access memory,DDR SDRAM)、低功率雙倍資料速率(low power double data rate,LPDDR)、SDRAM、圖形雙倍資料速率(graphics double data rate,GDDR)SDRAM或rambus動態隨機存取記憶體(rambus dynamic random access memory,RDRAM)。然而,本發明概念的實施例並非僅限於此。例如,記憶體裝置200A可由例如以下等非揮發性記憶體來實作:快閃記憶體、磁性RAM(magnetic RAM,MRAM)、鐵電RAM(ferroelectric RAM,FeRAM)、相變RAM(phase change RAM,PRAM)或電阻性RAM(resistive RAM,ReRAM)。
另外,記憶體裝置200可對應於半導體晶片、或者包括具有獨立介面的多個通道的記憶體裝置中的通道。作為另一選擇,記憶體裝置200可對應於記憶體模組。作為另一選擇,記憶體模組可包括多個記憶體晶片,且圖1所示記憶體裝置200可對應於安裝於模組板上的記憶體晶片。
在下文中,根據本發明概念的示例性實施例,闡述其中記憶體裝置200的PIM電路220處理操作的實例。可在記憶體裝置200中實行各種類的操作處理操作(operation processing operation)。例如,關於人工智慧(artificial intelligence,AI),可在記憶體裝置200中實行至少部分的神經網路操作。例如,主機HOST可藉由記憶體控制器100控制記憶體裝置200,使得至少部分的神經網路操作由記憶體裝置200實行。另外,在以下實施例中,將闡述記憶體控制器100控制記憶體裝置200。然而,本發明概念的實施例並非僅限於此。例如,記憶體控制器100可對應於主機HOST中所包括的組件,其中主機HOST控制記憶體裝置200。
記憶體控制器100可向記憶體裝置200傳送一或多個指令Inst,以使用資料來處理操作。記憶體裝置200可接收多個指令Inst,且可將接收到的指令Inst儲存於其中。例如,PIM電路220可包括一或多個處理元件221(例如,處理器或邏輯電路)及用於儲存指令Inst的指令記憶體(未示出)。然後,當自記憶體控制器100接收到指示欲處理操作的命令/位址CMD/ADD時,處理元件221可處理與自指令記憶體讀取的指令Inst對應的操作。
根據本發明概念的示例性實施例,記憶體控制器100可向記憶體裝置200傳送多個指令Inst,以便可連續地處理多個操作。例如,在處理所述操作之前,可實行用於將所述多個指令Inst載入於指令記憶體(未示出)中的模式(例如,指令載入模式(instruction loading mode))。在指令載入模式中,所述多個指令Inst可載入於記憶體裝置200的指令記憶體中。
另一方面,記憶體控制器100可實行控制操作,使得記憶體裝置200藉由使用與正常記憶體操作相關的命令來處理操作。例如,由記憶體控制器100提供的位址ADD的位元值可被劃分成多個範圍。例如,根據位元值,位址ADD可屬於指示記憶體操作的第一範圍或指示欲處理操作的第二範圍。記憶體控制器100可管理位址映射120。位址映射120可管理屬於第一範圍的位址及屬於第二範圍的位址。另外,關於位址映射120中所包含的位址的資訊可儲存於記憶體控制器100中的所規定記憶體中。
記憶體裝置200可因應於來自記憶體控制器100的命令/位址CMD/ADD而選擇性地實行記憶體操作或操作處理操作。例如,記憶體裝置200可因應於來自記憶體控制器100的資料寫入命令或資料讀取命令WR/RD來處理操作。
作為操作實例,記憶體控制器100可將屬於第一範圍的位址ADD與寫入命令WR及用於寫入的資料或者與讀取命令RD一起傳送至記憶體裝置200。在此種情形中,記憶體裝置200的命令解碼器231可對接收到的命令/位址CMD/ADD實行解碼操作,且當位址ADD的值屬於第一範圍時,實行將資料DATA寫入記憶體210的記憶體組的由位址ADD指示的位置中或者自所述位置讀取資料DATA的記憶體操作。另一方面,當位址ADD的值屬於第二範圍時,基於命令/位址CMD/ADD的解碼結果,PIM電路220進入操作處理模式並處理操作。例如,PIM電路220的處理元件221可藉由使用由記憶體控制器100提供的資料DATA或自記憶體210的記憶體組讀取的資料DATA來處理操作。
另外,例如,位址ADD包含多個位元,且根據所述多個位元中特定位置的至少一個位元的值,位址ADD可屬於第一範圍或第二範圍。另外,位址ADD的除所述特定位置中的位元之外的剩餘位元中的至少一些位元可包括指示資料DATA的位置的資訊(例如,列位址及行位址)。作為操作實例,PIM電路220可依據位址ADD在記憶體210的記憶體組中藉由表示所述位置的資訊來讀取資料DATA,且可藉由使用所讀取的資料DATA來處理操作。
根據本發明概念的上述實施例,由於記憶體裝置200的PIM電路220因應於來自記憶體控制器100的命令/位址CMD/ADD而獨立於來自主機HOST的請求來處理操作,因此可防止來自記憶體控制器100的記憶體操作請求與記憶體裝置200的操作處理操作衝突。例如,對於記憶體操作或操作處理,可啟動記憶體210的記憶體組的一列。記憶體控制器100可為記憶體操作及操作處理確定命令/位址CMD/ADD的提供定時(provision timing)。另外,可由記憶體控制器100確定記憶體組的位置、經啟動列的位置及經存取行的位置。
另外,根據本發明概念的實施例,當記憶體控制器100在記憶體裝置200處理操作的同時產生用於記憶體操作的異動時,記憶體操作可被延遲至操作處理已完成為止或者被延遲使操作處理停止所花費的時間。然而,根據本發明概念的實施例,由於記憶體控制器100或包括記憶體控制器100的主機HOST可控制記憶體裝置200的操作處理定時,因此可防止效能由於上述衝突而劣化。
另一方面,在圖1所示的實施例中,處理元件221可包括各種數目的處理元件。例如,處理元件221中的每一者可被佈置成對應於一個記憶體組或不少於二個記憶體組。
另一方面,可藉由各種方法來指示將被實行操作處理的資料DATA的位置。例如,如上所述,可將關於記憶體組選擇的資訊包含於伴隨有用於操作處理的命令CMD的位址ADD中。作為另一選擇,可將關於欲用於操作的資料DATA所位於的記憶體組的資訊包含於每一指令Inst中。作為另一選擇,記憶體裝置200可被實作為使得基於指令Inst中所儲存的資訊與位址ADD中所儲存的資訊的組合來指示欲用於操作處理的資料的位置。
圖2是示出圖1所示記憶體裝置200的記憶體中處理器(PIM)電路的實作實例的方塊圖。
參照圖1及圖2,PIM電路220包括處理元件221、處理控制器222(例如,控制電路)、程式計數器223(例如,計數電路)及指令記憶體224。例如,處理元件221可包括與多個記憶體組BANK 1至BANK N對應的多個處理元件PE,且可處理與載入於指令記憶體224中的指令Inst對應的操作。另外,所述多個處理元件PE中的每一者可包括暫存器(未示出)。將被實行操作處理(或處理操作)以產生操作處理結果的運算元及/或所述操作處理結果可暫時儲存於暫存器中。
另一方面,處理控制器222可控制與記憶體裝置200中的操作處理相關的整體操作。處理控制器222可在自記憶體控制器100接收到指示欲處理操作的命令/位址CMD/ADD時讀取指令記憶體224中所儲存的指令Inst,且可控制處理元件PE,以便可處理與所讀取的指令Inst對應的操作。
在示例性實施例中,可在指令記憶體224中儲存或自指令記憶體224依序讀取多個指令Inst 0至Inst n-1。作為操作實例,程式計數器223可藉由實行程式計數操作來指示欲自記憶體224讀取的指令。例如,因應於來自記憶體控制器100的指示欲處理操作的命令/位址CMD/ADD,讀取與程式計數器223的當前計數值對應的位置中的指令,且可基於程式計數操作來增加計數值。作為另一選擇,根據各種實施例,因應於指示欲處理操作的命令/位址CMD/ADD,增加程式計數器223的當前計數值,且可自與增加後的計數值對應的位置讀取指令。
在將所述多個指令Inst 0至Inst n-1儲存於指令記憶體224中時,可應用各種方法。例如,將位址指派給指令記憶體224,且在指令載入過程中可由記憶體控制器100提供所指派的位址。例如,記憶體控制器100可將位址連同指令一起提供至記憶體裝置200,所述位址指示指令記憶體224內欲儲存所述指令的位置。另外,藉由應用基於循環佇列的儲存方法(circular queue based storage method),可藉由覆寫指令來減小指令記憶體224的大小。例如,指令記憶體224可儲存固定數目的指令,且當接收到超出所述固定數目的新指令時,可以新指令覆寫指令記憶體224內所儲存的最舊指令或最近最少使用指令(least recently used instruction)。
另一方面,處理控制器222可基於經解碼的命令/位址CMD/ADD來控制將被實行操作處理的資料DATA的路線。例如,在記憶體裝置200中,可包括用於對提供至記憶體210的記憶體組或自記憶體210的記憶體組讀取的資料DATA的路線進行控制的電路(未示出),且可控制所述電路,使得可將欲用於操作的資料DATA提供至處理元件PE。根據各種實施例,基於處理控制器222的控制或控制邏輯230的控制,可將來自主機HOST的資料DATA提供至處理元件PE。作為另一選擇,可自記憶體210的記憶體組的由位址ADD指示的位置讀取資料DATA,且可將資料DATA提供至處理元件PE。
像在圖2所示的實施例中一樣,預先載入用於處理操作的多個指令,且因應於來自主機HOST的指示欲處理操作的命令/位址CMD/ADD,可處理與所讀取的指令對應的操作。另外,指示用於操作處理操作的資料DATA的位址資訊(例如,列位址及行位址)可包含於來自主機HOST的指示欲處理操作的命令/位址CMD/ADD中。亦即,當記憶體裝置200獨立於來自主機HOST的請求而處理操作時,位址資訊需要預先儲存於記憶體裝置200中,以根據所述多個指令來處理操作。然而,根據本發明概念的至少一個實施例,由於用於處理操作的位址資訊不需要預先儲存於記憶體裝置200中,因此可減小處理操作所需的儲存空間的大小。
根據上述實施例,不管由主機HOST提供的指令Inst 0至Inst n-1的次序如何,指令Inst 0至Inst n-1均可儲存於指令記憶體224中。例如,當指令Inst 0至Inst n-1處理相同種類的操作時,由於將被進行操作處理的運算元可由主機HOST所指示的位址來指示,因此不管所執行的指令Inst 0至Inst n-1的次序如何,均可處理主機HOST所需的操作以產生操作結果。
圖3是示出根據本發明概念示例性實施例包括記憶體裝置的資料處理系統300的方塊圖。如圖3所示,資料處理系統300包括應用處理器310及記憶體裝置320,且應用處理器310包括與記憶體裝置320通訊的記憶體控制模組311。例如,應用處理器310及記憶體裝置320可配置出記憶體系統。
另一方面,根據上述實施例,應用處理器310可用作圖1所示主機HOST,且可包括用於管理與記憶體操作相關的第一位址及與操作處理相關的第二位址的位址映射312。在圖3中,位址映射312被示為設置於記憶體控制模組311之外。然而,像在上述實施例中一樣,位址映射312可設置於記憶體控制模組311中。
另一方面,應用處理器310可由包括系統匯流排(未示出)的系統晶片(system on chip,SoC)來實作。作為系統匯流排的標準規範,可應用進階精簡指令集電腦(Reduced Instruction-Set Computer,RISC)機器(advanced RISC machine,ARM)的進階微控制器匯流排架構(advanced microcontroller bus architecture,AMBA)協定。AMBA協定的匯流排類型可為進階高效能匯流排(advanced high-performance bus,AHB)、進階周邊匯流排(advanced peripheral bus,APB)、進階可擴展介面(advanced extensible interface,AXI)、AXI4或AXI一致性擴展(AXI coherency extensions,ACE)。除了上述匯流排類型之外,亦可應用另一種類型的協定,例如SONICs公司的μNetwork、IBM的CoreConnect或OCP-IP的開放核心協定(open core protocol)。
記憶體控制模組311可用作上述實施例中的記憶體控制器,且可藉由向記憶體裝置320傳送命令/位址CMD/ADD來控制記憶體裝置320中的記憶體操作或操作處理操作。記憶體裝置320包括記憶體321、PIM電路322及控制邏輯323。PIM電路322包括處理元件322_1,且控制邏輯323包括命令解碼器323_1。應用處理器310可向記憶體裝置320提供多個指令Inst,以在記憶體裝置320中處理操作,且所述多個指令Inst可儲存於記憶體裝置320中的指令記憶體(未示出)中。另外,當指示欲處理操作的命令/位址CMD/ADD被提供至記憶體裝置320時,處理元件322_1可藉由使用來自應用處理器310的資料DATA及/或自記憶體321讀取的資料DATA來處理所述操作。
圖4是示出根據本發明概念示例性實施例的資料處理系統400的實作實例的方塊圖。
參照圖4,資料處理系統400包括主機410及記憶體裝置420。儘管在圖4中未示出,但主機410可包括像在上述實施例中一樣的記憶體控制器,且更包括位址映射411。例如,主機410可將用於指示記憶體操作的位址範圍及用於指示操作處理的位址範圍作為列位址進行管理。因此,位址映射411可被稱為列位址映射。位址映射411可儲存於設置於主機410中的記憶體(未示出)中。
像在上述實施例中一樣,可定義用於指示記憶體操作的第一範圍中的列位址的值及用於指示欲處理操作的第二範圍中的列位址的值,且主機410可管理第一範圍及第二範圍中的列位址。例如,列位址可包括多個位元,且根據所述多個位元中的至少一個位元的值,第一範圍可與第二範圍區別開。另外,所述多個位元中的剩餘位元可包括表示在包括多個列的記憶體組中被啟動的列的位置的資訊。另外,根據示例性實施例,第一範圍中的列位址可儲存於位址映射411的一個區域(例如,記憶體組區域)中,且第二範圍中的列位址可儲存於另一區域(例如,PE區域)中。
主機410可藉由例如以下等多個匯流排BUS與記憶體裝置420通訊:命令/位址匯流排CA BUS、用於記憶體操作的資料匯流排DQ BUS for BANK以及用於操作處理操作的資料匯流排DQ BUS for PE。記憶體裝置420包括記憶體組421、命令解碼器(或控制邏輯)422、處理元件423、處理控制器424、程式計數器425及指令記憶體426。圖4所示的組件中的一些組件可形成上述實施例中的PIM電路。
命令解碼器422可接收命令/位址CMD/ADD,且可對命令/位址CMD/ADD實行解碼操作。當接收到的位址ADD對應於記憶體組區域中所包含的第一範圍中的位址時,記憶體裝置420可基於命令/位址CMD/ADD的解碼結果將資料DATA儲存於記憶體組421的所選擇記憶體組中。
另一方面,當接收到的位址ADD對應於PE區域中所包含的第二範圍中的位址時,命令解碼器422可將命令/位址CMD/ADD傳送至處理控制器424。根據各種實施例,命令解碼器422可將接收到的命令/位址CMD/ADD傳送至處理控制器424,或者可將命令/位址CMD/ADD的解碼結果傳送至處理控制器424。
在示例性實施例中,在處理控制器424接收到指示欲處理操作的命令/位址CMD/ADD之後,處理控制器424讀取由程式計數器425指示的區域中所儲存的指令Inst,且可控制程式計數器425的計數操作。另外,處理控制器424可基於命令/位址CMD/ADD及指令Inst來選擇用於處理操作的處理元件PE,且可控制所選擇的處理元件PE。另外,將藉由用於操作處理操作的資料匯流排DQ BUS for PE接收的資料DATA提供至所選擇的處理元件PE,且可使用資料DATA來處理操作。
作為另一選擇,表示將被實行操作處理的資料DATA的儲存位置的資訊可包含於接收到的位址ADD中,且處理控制器424及/或命令解碼器422可實行控制操作,使得藉由使用位址ADD自記憶體組421讀取的資料DATA可藉由內部匯流排被提供至所選擇的處理元件PE。處理元件PE可將藉由使用由主機HOST提供的或者自記憶體組421讀取的資料DATA來處理操作的結果儲存於其中的暫存器(未示出)中。
圖5是示出其中根據本發明概念示例性實施例的記憶體裝置包括高頻寬記憶體(HBM)500的實例的方塊圖。
HBM 500包括具有獨立介面的多個通道,且可具有增加的頻寬。參照圖5,HBM 500可包括多個晶粒,例如,緩衝晶粒(或邏輯晶粒510)及堆疊於緩衝晶粒(或邏輯晶粒510)上的一或多個核心晶粒520。在圖5中,示出了其中在HBM 500中包括四個核心晶粒的實例。然而,核心晶粒520的數目可變化。
另外,核心晶粒520中的每一者可包括一或多個通道。在圖5所示實例中,當核心晶粒520中的每一者包括二個通道時,HBM 500包括八個通道CH1至CH8。例如,第一核心晶粒可包括第一通道CH1及第三通道CH3,第二核心晶粒可包括第二通道CH2及第四通道CH4,第三核心晶粒可包括第五通道CH5及第七通道CH7,且第四核心晶粒可包括第六通道CH6及第八通道CH8。
緩衝晶粒510可包括與主機(或記憶體控制器)通訊的介面(IF)電路511,且可藉由介面電路511自主機接收命令/位址及資料。主機可藉由被佈置成對應於所述通道的匯流排來傳送命令/位址及資料。所述匯流排可形成為對應於所述通道,或者所述匯流排中的一些匯流排中的每一者可由至少二個通道共享。介面電路511可將命令/位址及資料傳送至由主機請求的通道,以實行記憶體操作或處理操作。另外,根據本發明概念的示例性實施例,核心晶粒520中的每一者及所述通道中的每一者可包括PIM電路521及命令解碼器522,且命令解碼器522可控制對接收到的命令/位址實行的解碼操作。
主機可提供命令/位址及資料,使得HBM 500可處理多個操作中的至少一些操作。所述操作可由主機指示的通道的PIM電路521來處理。例如,根據上述實施例,當接收到的命令/位址指示記憶體操作時,可對資料實行存取操作。另一方面,當接收到的命令/位址指示欲處理操作時,PIM電路521可藉由使用來自主機的資料及/或自對應通道讀取的資料來處理操作。
根據示例性實施例,所述通道中的每一者可包括多個記憶體組,且可在所述通道中的每一者的PIM電路521中設置一或多個處理元件。例如,在所述通道中的每一者中,處理元件的數目可與通道的記憶體組的數目相同。作為另一選擇,當處理元件的數目少於記憶體組的數目時,一個處理元件可由至少二個記憶體組共享。
緩衝晶粒510可更包括矽穿孔(through-silicon via,TSV)區域512、實體PHY區域513及直接存取區域DA 514。雖然在圖5中未示出,但在緩衝晶粒510中可更包括用於對HBM 500的整體操作進行控制(例如對資料的路線進行控制)的處理器。
在TSV區域512中,形成用於與核心晶粒520通訊的TSV。另外,實體PHY區域513可包括用於與外部主機通訊的多個輸入及輸出電路。例如,實體PHY區域513可包括用於與主機通訊的一或多個埠。另一方面,直接存取區域DA 514可被佈置成在HBM 500的測試模式中藉由佈置於HBM 500的外部表面上的導電單元(例如,導電墊)與外部測試器(例如,用於實行測試的外部裝置)直接通訊。
圖6是示出根據本發明概念示例性實施例的記憶體系統的操作的實例的概念圖。在圖6中,示出了其中記憶體裝置與主機HOST通訊的實例,且在主機HOST中,可設置與記憶體裝置通訊的記憶體控制器(或記憶體控制模組)。
參照圖6,主機HOST可控制記憶體裝置的各種操作模式,且當記憶體裝置以指令載入模式運作時,主機HOST可向記憶體裝置傳送處理操作所需的多個指令。所傳送的指令可儲存於記憶體裝置中。例如,例如加法、減法及乘法等各種類的操作可由記憶體裝置處理,且PIM電路可藉由在操作處理模式中讀取指令並對所讀取的指令進行解碼來確定操作的種類。
主機HOST可實行控制操作,使得記憶體裝置以正常模式運作。例如,主機HOST可將包括用於指示記憶體操作的第一範圍中的位址的命令/位址CMD/ADD傳送至記憶體裝置。記憶體裝置可對接收到的命令/位址CMD/ADD進行解碼,且可因應於屬於第一範圍的位址而實行記憶體操作。另外,在記憶體操作被完全處理以產生記憶體操作結果之後,可將記憶體操作結果輸出至主機HOST。例如,可將因應於讀取命令而讀取的資料輸出至主機HOST。作為另一選擇,因應於寫入命令,可將表示資料寫入操作已完成的回應輸出至主機HOST。
另一方面,主機HOST可將包括用於指示欲處理操作的第二範圍中的位址的命令/位址CMD/ADD傳送至記憶體裝置。記憶體裝置對接收到的命令/位址CMD/ADD進行解碼,且可因應於屬於第二範圍的位址而進入操作處理模式。例如,在自主機HOST與命令/位址CMD/ADD一起接收到資料之後,可藉由使用自主機HOST接收到的資料來處理操作,以產生操作處理結果。另外,可將操作處理結果傳送至主機HOST。例如,在操作處理操作已完成之後,可將結果傳送至主機HOST。作為另一選擇,根據示例性實施例,操作處理結果可儲存於處理元件中的暫存器或記憶體組的胞元陣列中,且主機HOST可將用於讀取操作處理結果的命令/位址CMD/ADD傳送至記憶體裝置。
圖7及圖8是示出根據本發明概念示例性實施例操作記憶體裝置的方法的流程圖。
參照圖7,在操作S11中,記憶體裝置接收由主機以指令載入模式提供的指令,並儲存接收到的指令。記憶體裝置可自主機接收各種類的命令,且可藉由使用所述命令的解碼結果來實行各種功能。在操作S12中,記憶體裝置自主機接收寫入/讀取命令WR/RD,並接收與寫入/讀取命令WR/RD對應的位址。另外,在操作S13中,記憶體裝置對接收到的命令/位址實行解碼操作,以產生解碼結果。
在操作S14中,記憶體裝置基於解碼結果來判斷將以操作處理模式還是記憶體操作模式運作。例如,根據上述實施例接收到的位址可具有屬於第一範圍或第二範圍的位元值,且當接收到的位址的位元值屬於第一範圍時,在操作S15中,記憶體裝置實行與接收到的命令/位址對應的正常寫入/讀取操作。例如,記憶體裝置在記憶體操作模式期間實行正常寫入/讀取操作。另一方面,當接收到的位址的位元值屬於第二範圍時,記憶體裝置進入操作處理模式。例如,位址的具有位元值的一部分被稱為模式資訊(mode information),所述模式資訊被設定為記憶體操作模式及操作處理模式之一。
在操作處理模式中,設置於記憶體裝置中的PIM電路可實行單個操作或一系列操作來處理操作。來自主機的命令/位址可被提供至PIM電路,且在操作S16中,PIM電路可讀取儲存於指令記憶體中的指令中由程式計數器指示的指令並實行程式計數操作。根據上述操作,可依序讀取儲存於指令記憶體中的指令。
另一方面,表示儲存了欲用於操作的資料的位置的位址資訊可包含於用於指示欲處理操作的命令/位址中。基於記憶體裝置中的控制操作,在操作S17中,自與接收到的位址對應的位置讀取資料,且可將資料提供至PIM電路,且在操作S18中,PIM電路藉由使用所讀取的資料來處理操作。
另一方面,參照圖8,可在主機與記憶體裝置之間定義用於操作處理操作的各種命令,且在藉由使用寫入命令及讀取命令來處理操作時,可根據命令將操作處理方法設定為不同的。
根據示例性實施例,主機將讀取命令作為用於處理操作的命令提供至記憶體裝置,且在操作S21中,記憶體裝置自主機接收讀取命令及位址。記憶體裝置可基於對命令/位址的解碼操作來處理操作,且用於進入操作處理模式的命令/位址可藉由各種方法來定義。例如,根據上述實施例,當位址的位元值可屬於第一範圍或第二範圍且屬於第一範圍的位址被提供至記憶體裝置時,記憶體裝置可以操作處理模式運作。
當讀取命令被提供至記憶體裝置時,可對自記憶體胞元陣列讀取的資料處理操作。在伴隨有讀取命令的位址中,可包含關於儲存了欲自記憶體胞元陣列讀取的資料的位置的資訊(例如,記憶體組位址、列位址及行位址)。在操作S22中,記憶體裝置讀取與接收到的位址對應的位置中的資料,且在將所讀取的資料提供至PIM電路之後,在操作S23中,藉由使用所讀取的資料來處理操作。
另一方面,當寫入命令被提供至記憶體裝置時,可控制記憶體裝置,使得可藉由使用由主機提供的資料來處理操作。例如,記憶體裝置在操作S24中接收寫入命令及位址,並對寫入命令及位址實行解碼操作。在操作S25中,記憶體裝置自主機接收資料。接收到的資料可被提供至PIM電路。在操作S26中,PIM電路可藉由使用自主機接收到的資料來處理操作(實行操作),以產生操作處理結果。另外,操作處理結果可暫時儲存於PIM電路中的暫存器中。
根據示例性實施例,在與寫入命令一起接收到的位址中,可包含用於指示資料位置的資訊。例如,記憶體裝置可被實作為使得當寫入命令被提供至記憶體裝置時,記憶體裝置藉由使用來自主機的資料來處理操作以產生處理結果,且處理結果儲存於由接收到的位址指示的位置中。
圖9是示出根據本發明概念示例性實施例的記憶體裝置600的整體實作實例的方塊圖。圖9中所示的組件中的一些組件是可選的,且可被移除。作為另一選擇,圖9中所示的組件中的一些組件可在功能方面被劃分成至少二個組件。作為另一選擇,所述組件中的二或更多個組件可結合成一個組件。亦即,可以各種方式來實作根據本發明概念實施例的記憶體裝置,只要記憶體裝置實行相同的功能或相似的功能即可。
參照圖9,記憶體裝置600包括多個記憶體組610_1至610_N,且所述多個記憶體組610_1至610_N可以與圖3所示的記憶體組相同的方式來實作。例如,記憶體組610_1包括胞元陣列611、列解碼器612(例如,解碼器電路)、行解碼器613(例如,解碼器電路)、感測放大器/寫入驅動器614及處理元件615。亦即,每一記憶體組可被定義為包括記憶體胞元及與記憶體操作相關的各種周邊電路。
記憶體裝置600更包括命令解碼器621、記憶體組控制器622、位址暫存器623、處理元件控制器631、PE命令佇列632、PE控制暫存器633、資料閘控單元641(例如,閘控電路)及資料緩衝器642。圖9所示的各種組件可對應於上述實施例中的組件。例如,在上述實施例中,命令解碼器621、記憶體組控制器622及位址暫存器623可設置於控制邏輯中,且處理元件控制器631及/或PE控制暫存器633可設置於PIM電路中。另一方面,PE命令佇列632可對應於上述實施例中的指令記憶體,且來自PE命令佇列632的PE命令可對應於上述實施例中的指令。
列解碼器612可藉由字元線WL選擇記憶體組610_1的一列,且行解碼器613可藉由行選擇線CSL選擇記憶體組610_1的一行。另外,感測放大器/寫入驅動器614可藉由全域輸入及輸出線GIO存取胞元陣列611的記憶體胞元,且寫入資料及讀取資料可在感測放大器/寫入驅動器614與資料閘控單元641之間傳送。
根據示例性實施例,指令(或PE命令)由主機藉由記憶體裝置600的資料輸入及輸出墊DQ提供。另外,主機可藉由資料輸入及輸出墊DQ向記憶體裝置600提供關於對處理元件615的操作的控制的各種PE控制資訊項,且處理元件控制器631可基於PE控制暫存器633中所儲存的資訊來控制處理元件615。另外,基於處理元件控制器631的控制,PE命令佇列632中所儲存的指令可被提供至處理元件615。
根據上述實施例,基於由主機提供的命令/位址CMD/ADD,命令解碼器621及/或處理元件控制器631可控制記憶體裝置600的整體操作,且因此,記憶體裝置600可以正常模式或操作處理模式運作。
圖10是示出設置於主機中的位址映射的實作實例的方塊圖。
參照圖10,主機包括位址映射(例如,列位址映射),且可藉由所述位址映射來管理用於指示各種模式的列位址。列位址可根據其位元值而屬於各種範圍。在上述實施例中,示出了正常模式及操作處理模式。然而,可藉由管理位址映射來實行各種模式。
例如,列位址的一些位元(例如,一些高位元(upper bit))所屬的範圍可根據所述位元的值來設定。例如,藉由主機提供其中位元的值對應於00x0的列位址,記憶體裝置可以正常模式(例如,寫入及讀取操作)運作。另外,在示例性實施例中,在擴展位址模式(extended address mode)中,可同時選擇記憶體裝置的多個記憶體組。例如,為了對所述多個記憶體組實行預充電操作,可選擇擴展位址模式。
另外,關於操作處理,主機可選擇命令暫存器檔案(command register file,CRF)存取模式,且可在CRF存取模式中將多個指令傳送至記憶體裝置。例如,CRF可對應於上述實施例中儲存指令的指令記憶體,且主機可存取記憶體裝置的CRF。另外,主機可提供位址,使得記憶體裝置以操作模式運作。因此,可由設置於記憶體裝置中的處理元件來處理操作。
圖11是示出其中根據本發明概念示例性實施例的記憶體裝置實行神經網路操作的實例的視圖。
圖11所示記憶體裝置700的處理操作可使用一或多個神經網路模型來分析輸入資料以提取資訊。例如,處理操作可使用深度學習演算法來分析輸入資料。神經網路操作可由例如通用硬體或專用硬體等各種類的硬體(或處理器)來執行。通用硬體可包括中央處理單元(central processing unit,CPU)或圖形處理單元(graphics processing unit)。可針對特定軟體對專用硬體進行最佳化。例如,專用硬體可包括各種類的硬體,例如專用積體電路(application specific integrated circuit,ASIC)、神經處理單元(neural processing unit,NPU)、張量處理單元(tensor processing unit,TPU)及神經引擎。
根據本發明概念的示例性實施例,資料處理系統可包括主機(未示出)及記憶體裝置700。在執行神經網路的主機中,一些操作可由通用硬體及/或專用硬體來處理。根據本發明概念的實施例,神經網路中所包括的至少一些操作可由記憶體裝置700處理。在替代實施例中,神經網路中所包括的所有多個操作均由記憶體裝置700處理。
參照圖11,記憶體裝置700包括胞元陣列710、處理元件711、處理控制器712及指令記憶體713。例如,處理元件711、處理控制器712及指令記憶體713可包含於上述實施例中的PIM電路中。另外,根據各種實施例,可在記憶體裝置700中的各種位置中實作各組件。例如,記憶體胞元陣列710及處理元件711可包含於同一記憶體組中。
神經網路操作可包括使用資料DATA及權重的操作。用於操作的各種資訊項可由主機HOST提供,或者可儲存於記憶體裝置中。例如,在圖11中,資料DATA由主機HOST提供,且權重儲存於胞元陣列710的記憶體組中。然而,本發明概念的實施例並非僅限於此。例如,資料DATA可儲存於胞元陣列710中,或者可自胞元陣列710被讀取用於操作,且權重可由主機HOST提供。
每當接收到用於處理操作的命令/位址時,實行用於選擇指令記憶體713中所儲存的指令的程式計數操作,且根據所述指令,處理元件711可藉由使用資料DATA及權重來處理所述操作,以產生操作結果Res_P。另外,操作結果Res_P可儲存於PIM電路中的暫存器中。例如,在圖11中,暫存器被示為包含於處理元件711中。
根據示例性實施例,記憶體裝置700包括與多個記憶體組對應的多個處理元件,且操作可由所述多個處理元件並行地實行。作為操作實例,神經網路操作可以多個不同權重對同一資料DATA進行操作,且所述不同權重可分別儲存於多個記憶體組中。另外,資料DATA(例如,由主機提供的資料)可被共同提供至所述多個處理元件。因此,所述多個處理元件可以不同權重並行地對同一資料DATA進行操作。
圖12是示出根據本發明概念示例性實施例的記憶體裝置中的資訊傳輸路徑的實例的方塊圖。
參照圖12,資料處理系統800包括主機810及記憶體裝置820,並且主機810包括記憶體控制器MC,且可與記憶體裝置820通訊。另外,記憶體裝置820包括至少一個記憶體組821、PIM電路822及作為路線選擇器823的多工器MUX。記憶體裝置820可更包括用於記憶體操作及操作處理操作的各種組件。然而,為了方便起見,未示出所述組件。
以下將闡述主機810與記憶體裝置820之間的資訊傳輸路線的實例。在路線選擇器823中,可包括用於控制記憶體裝置820中所包括的多個匯流排間的連接關係的開關(未示出)。開關可由記憶體裝置中的組件控制。例如,可基於記憶體裝置820中的命令解碼器(未示出)及/或PIM電路822中的處理控制器的控制操作來控制開關。
自記憶體組821讀取的資訊可對應於上述實施例中的公共資料、操作處理結果或用於處理操作的資訊(例如,權重資訊)。另外,由主機810提供的資料可儲存於記憶體組821中,或者可直接提供至PIM電路822,以處理操作。
在示例性實施例中,自主機810向記憶體裝置820提供命令/位址,在記憶體裝置820中對命令/位址實行解碼操作以產生解碼區域,且根據解碼結果,可改變路線選擇器823的開關的切換狀態。例如,當命令/位址對應於對記憶體組821的讀取請求時,可藉由路線a將自記憶體組821讀取的資料提供至主機810。另一方面,當命令/位址對應於藉由使用記憶體組821中所儲存的資料實行的操作處理請求時,可藉由路線b將自記憶體組821讀取的資料提供至PIM電路822
另一方面,當命令/位址對應於對記憶體組821的寫入請求時,可藉由路線c將來自主機810的資料提供至記憶體組821。另一方面,當命令/位址對應於藉由使用來自主機810的資料的操作處理請求時,可藉由路線d將來自主機810的資料提供至PIM電路822。
另一方面,命令/位址可對應於PIM電路822中所儲存的資訊(例如,操作處理結果)。在此種情形中,可藉由路線f將PIM電路822中所儲存的資訊提供至主機810。另一方面,命令/位址可對應於欲將PIM電路822中的資訊儲存於記憶體組821中的請求。在此種情形中,可藉由路線e將PIM電路822中所儲存的資訊提供至記憶體組821。
圖13A及圖13B是示出根據本發明概念示例性實施例由記憶體裝置執行的指令的實作實例以及根據本發明概念示例性實施例操作記憶體裝置的方法的流程圖。
可提供各種類的指令。例如,可定義用於實行迴圈的迴圈指令,或者可定義用於分支至不同指令序列的分支指令(branch instruction)。此時,在處理迴圈指令的過程中,可能產生用於處理分支條件(branch condition)的附加潛時開銷(latency overhead),此使指令的執行效率劣化。例如,滿足分支條件可能使迴圈指令的迴圈被執行附加時間。另一方面,當迴圈展開(loop unrolling)應用於執行指令時,由於迴圈基本區塊的大小增加,因此儲存指令的記憶體的大小增加。
根據示例性實施例,提供與迴圈指令的處理相關的指令標準架構(instruction standard architecture,ISA)。參照圖13A,迴圈指令可包括各種欄位。根據本發明概念的示例性實施例,迴圈指令包括表示迴圈指令的FJUMP欄位、表示迴圈重複次數的次數欄位以及表示欲移動的指令的位置的目標欄位。藉由包括上述欄位資訊項,可執行所確定次數的迴圈。例如,可連續執行迴圈中的每一指令,直至到達迴圈中的最後一個指令為止,且然後執行可恢復至迴圈中與目標欄位中所儲存的位置相關聯的第一指令。
參照圖13B,示出與上述實例中迴圈指令的執行相關的記憶體裝置900的操作實例。記憶體裝置900包括處理控制器910、指令記憶體920及程式計數器930。在指令記憶體920中,儲存第一指令Inst 0至第n指令Inst n-1。另外,當前程式計數值對應於1。因此,因應於命令/位址CMD/ADD,讀取第二指令Inst 1。根據當前實施例,與第二指令Inst 1一起,讀取與由下一程式計數值(例如,PC=2)指示的迴圈指令對應的第三指令Inst 2。
處理控制器910包括用於對指令實行解碼操作的指令解碼器911及用於產生迴圈計數值的迴圈計數器912。指令解碼器911可對所讀取的第三指令Inst 2實行預解碼操作。另外,由於第三指令Inst 2對應於迴圈指令,因此迴圈計數值被設定成對應於次數欄位中表示迴圈次數的資訊。每當迴圈被實行一次時,迴圈計數器912可增加或減小迴圈計數值。例如,在其中迴圈計數器912基於遞減計數(down-counting)操作而實行計數操作的情形中,每當實行迴圈時,迴圈計數值減小1。
處理控制器910可基於預解碼結果來確定欲讀取的指令是迴圈指令,且可控制程式計數器930,使得程式計數值指示與目標對應的指令。因此,當接收到指示欲處理下一操作的命令/位址CMD/ADD時,可藉由指示與目標對應的指令而不讀取及執行第三指令Inst 2來實行迴圈。
圖14是示出根據本發明概念示例性實施例執行迴圈指令的記憶體裝置的操作實例的流程圖。
參照圖14,根據上述實施例,可基於程式計數操作來讀取指令。例如,基於來自主機的欲處理操作的命令/位址,在操作S31中讀取指令記憶體中所儲存的指令。另外,預先讀取由下一程式計數值指示的指令,且可對所述指令實行預解碼操作。在操作S32中,判斷下一指令是否對應於執行迴圈的指令FJUMP。當確定下一指令不是執行迴圈的指令FJUMP時,在操作S33中,將程式計數值(例如,當前程式計數值)設定為指示下一指令的值。因此,當接收到指示欲處理下一操作的命令/位址時,可隨後處理下一指令。
另一方面,當確定下一指令是指令FJUMP時,在操作S34中實行檢查迴圈計數器的操作以確定迴圈的執行次數,且在操作S35中判斷迴圈計數值LC是否對應於0。當確定迴圈計數值LC不對應於0時,實行迴圈計數器的遞減計數操作,並且因此,在操作S36中減小迴圈計數值LC,且在操作S37中程式計數值指示與迴圈指令中所包含的目標對應的指令。因此,當接收到指示欲處理下一操作的命令/位址時,可執行與目標對應的指令而不執行迴圈指令。
另一方面,當確定迴圈計數值LC對應於0時,其表示迴圈已執行了所確定的次數。因此,在操作S38中,程式計數值可改變,以指示下一指令。
圖15A及圖15B是示出根據本發明概念示例性實施例實行迴圈(執行迴圈指令)的指令的基本區塊及操作實例的視圖。
參照圖15A,基本區塊(例如,碼區塊)包括一或多個指令。例如,在基本區塊中,可包括實行第一函數Function A的第一指令Inst 0、實行第二函數Function B的第二指令Inst 1及實行用於執行迴圈的移動函數JFUMP的第三指令Inst 2。另外,在第三指令Inst 2中可包含關於目標位置的資訊@0及表示迴圈次數的資訊n。另外,根據上述實施例,當當前程式計數值為1時,與第二指令Inst 1一起,讀取第三指令Inst 2,且可實行預解碼操作。
另一方面,在圖15B中,示出了其中處理普通情形中包括迴圈指令在內的指令的情形及其中處理根據本發明概念示例性實施例包括迴圈指令在內的指令的情形。
參照圖15B,當藉由普通方法執行圖15A所示基本區塊時,自每一操作定時讀取一個指令,且因此,可依序實行第一函數Function A、第二函數Function B及移動函數JUMP。另一方面,根據本發明概念的示例性實施例,當當前程式計數值指示第二指令Inst 1時,對第三指令Inst 2實行預解碼操作。因此,在不另外執行移動函數JUMP的情況下,第一函數Function A及第二函數Function B可被重複實行所確定的次數。
圖16A、圖16B及圖17是示出根據本發明概念實施例的指令的實作實例以及根據本發明概念實施例操作指令的方法的視圖。在圖16A、圖16B及圖17中,示出了執行無操作(no operation,NOP)達所確定次數的指令(例如,多循環NOP指令)。
參照圖16A,基本區塊包括一或多個指令。例如,在基本區塊中,包括實行第一函數Function A的第一指令Inst 0、實行第二函數Function B的第二指令Inst 1及在多循環期間實行NOP(MNOP4)的第三指令Inst 2。另外,在第三指令Inst 2中,可包含表示NOP指令的資訊及表示其中實行NOP的循環的次數的資訊。在圖16A所示實例中,在四個循環中實行NOP。在執行圖16A所示的基本區塊時,可應用根據上述實施例的預解碼操作,或者可在一個操作處理循環中讀取僅一個指令。
與其中將多個指令儲存於記憶體中以在多循環中實行NOP的情形相較,當根據圖16A所示的實施例定義多循環NOP指令時,基本區塊的大小可減小。例如,可出於例如為指令處理提供所規定延遲等各種目的來執行NOP。因此,需要儲存多次實行NOP的多個指令。然而,藉由根據本發明概念的實施例來定義多循環NOP指令,可高效地使用指令記憶體。
另一方面,圖16B示出其中根據多循環NOP指令多次實行NOP的實例。在實行第一函數Function A及第二函數Function B之後,可實行多次NOP。作為操作實例,處理控制器基於多循環NOP指令的解碼結果將當前程式計數值維持於所規定的次數,而不增加程式計數值。因此,可在多循環中實行NOP。
圖17示出根據多循環NOP指令的記憶體裝置的操作實例。例如,在操作S41中讀取並解碼由當前程式計數器指示的指令,且在操作S42中判斷當前指令是否對應於多循環NOP指令MNOP。當當前指令不對應於多循環NOP指令MNOP時,在操作S43中,程式計數值(例如,當前程式計數值)具有指示下一指令的值。因此,當接收到欲處理下一操作的命令/位址指令時,可隨後實行下一指令。
另一方面,當當前指令對應於多循環NOP指令時,在操作S44中實行檢查迴圈計數器的操作以確定NOP的執行次數,且在操作S45中判斷迴圈計數值LC是否對應於0。當確定迴圈計數值LC不對應於0時,基於遞減計數操作,在操作S46中減小迴圈計數值LC,且藉由實行NOP,在操作S47中使程式計數值維持於當前值。當確定迴圈計數值LC對應於0時,其表示NOP已被執行了所確定的次數。因此,在操作S48中,程式計數值改變以指示下一指令。
圖18是示出根據本發明概念示例性實施例包括資料處理系統的伺服器系統1000的方塊圖。
參照圖18,伺服器系統1000包括管理器1010(例如,控制器或控制電路)及多個伺服器1020_1至1020_K。所述多個伺服器1020_1至1020_K中的每一者可對應於在上述實施例中闡述的資料處理系統。所述多個伺服器1020_1至1020_K藉由支援所規定協定(例如,PCI或PCIe)的匯流排彼此連接。例如,所述多個伺服器1020_1至1020_K可基於管理器1010的控制藉由同級間(peer to peer,P2P)連接結構彼此通訊。
參照一個伺服器(例如,第一伺服器1020_1),第一伺服器1020_1包括根據上述實施例的主機HOST,並且一或多個記憶體裝置MEM可根據第一伺服器1020_1的功能來處理各種類的操作以產生處理結果,且可儲存處理結果。根據實施例,第一伺服器1020_1包括主機中的位址映射ADD Map及記憶體裝置MEM。記憶體裝置可包括根據上述實施例的處理元件,且主機可控制記憶體裝置MEM的操作處理定時。另外,根據上述實施例,記憶體裝置MEM可藉由對來自主機的命令/位址進行解碼來確定操作處理定時。在至少一個示例性實施例中,伺服器系統1000對應於神經網路伺服器系統,且第一伺服器1020_1控制記憶體裝置MEM,使得大量神經網路操作的至少一部分可由記憶體裝置MEM處理。
儘管已參照本發明概念的實施例具體示出及闡述了本發明概念,但應理解,在不背離本發明概念的精神及範圍的條件下,可對其在形式及細節上作出各種改變。
10、300、400、800:資料處理系統 100、MC:記憶體控制器 110:記憶體介面 120、312、411、ADD Map:位址映射 200、320、420、600、700、820、900、MEM:記憶體裝置 210、321:記憶體 220、322、521、822:記憶體中處理器(PIM)電路 221、322_1、423、615、711、PE:處理元件 222、424、712、910:處理控制器 223、425、930:程式計數器 224、426、713、920:指令記憶體 230、323:控制邏輯 231、323_1、422、522、621:命令解碼器 310:應用處理器 311:記憶體控制模組 410、810、HOST:主機 421、610_1、610_N、821、BANK 1、BANK N:記憶體組 500:高頻寬記憶體(HBM) 510:邏輯晶粒/緩衝晶粒 511:介面電路 512:矽穿孔(TSV)區域 513:實體PHY區域 514:直接存取區域DA 520:核心晶粒 611、710:胞元陣列 612:列解碼器 613:行解碼器 614:感測放大器/寫入驅動器 622:記憶體組控制器 623:位址暫存器 631:處理元件控制器 632:PE命令佇列 633:PE控制暫存器 641:資料閘控單元 642:資料緩衝器 823:路線選擇器 911:指令解碼器 912:迴圈計數器 1000:伺服器系統 1010:管理器 1020_1:伺服器/第一伺服器 1020_2、1020_K:伺服器 a、b、c、d、e、f:路線 ADD:位址 CA Bus:命令/位址匯流排 CH1:第一通道/通道 CH2:第二通道/通道 CH3:第三通道/通道 CH4:第四通道/通道 CH5:第五通道/通道 CH6:第六通道/通道 CH7:第七通道/通道 CH8:第八通道/通道 CMD:命令 CSL:行選擇線 DATA:資料 DQ:資料輸入及輸出墊 DQ Bus for Bank:用於記憶體操作的資料匯流排 DQ Bus for PE:用於操作處理操作的資料匯流排 FJUMP:迴圈指令/指令 Function A:第一函數 Function B:第二函數 GIO:全域輸入及輸出線 Inst:指令 Inst 0:指令/第一指令 Inst 1:指令/第二指令 Inst n-2:指令/第n-1指令 Inst n-1:指令/第n指令 JUMP:移動函數 LC:迴圈計數值 MNOP:多循環NOP指令 MUX:多工器 PC:程式計數值 RD:讀取命令 Res_P:操作結果 S11、S12、S13、S14、S15、S16、S17、S18、S21、S22、S23、S24、S25、S26、S31、S32、S33、S34、S35、S36、S37、S38、S41、S42、S43、S44、S45、S46、S47、S48:操作 WL:字元線 WR:寫入命令
結合附圖閱讀以下詳細說明,將更清楚地理解本發明概念的實施例,附圖中: 圖1是示出根據本發明概念示例性實施例包括記憶體裝置的資料處理系統的方塊圖。 圖2是示出圖1所示記憶體裝置的記憶體中處理器(PIM)電路的實作實例的方塊圖。 圖3是示出根據本發明概念示例性實施例包括記憶體裝置的資料處理系統的方塊圖。 圖4是示出根據本發明概念示例性實施例的資料處理系統的實作實例的方塊圖。 圖5是示出其中根據本發明概念示例性實施例的記憶體裝置包括高頻寬記憶體(high bandwidth memory,HBM)的實例的方塊圖。 圖6是示出根據本發明概念示例性實施例的記憶體系統的操作實例的概念圖。 圖7及圖8是示出根據本發明概念示例性實施例操作記憶體裝置的方法的流程圖。 圖9是示出根據本發明概念示例性實施例的記憶體裝置的整體實作實例的方塊圖。 圖10是示出設置於主機中的位址映射(address map)的實作實例的方塊圖。 圖11是示出其中根據本發明概念示例性實施例的記憶體裝置實行神經網路操作的實例的視圖。 圖12是示出根據本發明概念示例性實施例的記憶體裝置中的資訊傳輸路徑的實例的方塊圖。 圖13A及圖13B是示出根據本發明概念示例性實施例由記憶體裝置執行的指令的實作實例以及根據本發明概念示例性實施例操作記憶體裝置的方法的流程圖。 圖14是示出根據本發明概念示例性實施例執行迴圈指令(loop instruction)的記憶體裝置的操作實例的流程圖。 圖15A及圖15B是示出根據本發明概念示例性實施例實行迴圈的指令的基本區塊及操作實例的視圖。 圖16A、圖16B及圖17是示出根據本發明概念示例性實施例的指令的實作實例以及根據本發明概念示例性實施例操作指令的方法的視圖。 圖18是示出根據本發明概念示例性實施例包括資料處理系統的伺服器系統的方塊圖。
10:資料處理系統
100:記憶體控制器
110:記憶體介面
120:位址映射
200:記憶體裝置
210:記憶體
220:記憶體中處理器(PIM)電路
221:處理元件
230:控制邏輯
231:命令解碼器
ADD:位址
BANK 1、BANK N:記憶體組
CMD:命令
DATA:資料
HOST:主機
Inst:指令
RD:讀取命令
WR:寫入命令

Claims (23)

  1. 一種記憶體裝置,包括: 記憶體,包括記憶體組,所述記憶體組包括記憶體胞元; 記憶體中處理器電路,被配置成使用由主機提供的資料或自所述記憶體組讀取的資料來處理操作,所述記憶體中處理器電路包括儲存自所述主機提供的至少一個指令的指令記憶體;以及 控制邏輯,被配置成對自所述主機接收到的命令或位址進行解碼以產生解碼結果並基於所述解碼結果來實行控制操作,使得達成以下情形之一:i)對所述記憶體組實行記憶體操作,以及ii)所述記憶體中處理器電路實行處理操作, 其中因應於所述命令或所述位址指示欲實行所述處理操作而控制程式計數器的計數值,所述計數值指示所述指令記憶體的位置。
  2. 如請求項1所述的記憶體裝置,其中所述記憶體裝置在所述位址的位元值屬於第一範圍時實行所述記憶體操作,且在所述位址的所述位元值屬於與所述第一範圍不同的第二範圍時實行所述處理操作。
  3. 如請求項2所述的記憶體裝置,其中所述位址包含表示記憶體操作模式或操作處理模式的模式資訊及表示所述記憶體組的位置的位址資訊,且 其中根據所述模式資訊的位元值,所述位址屬於所述第一範圍或所述第二範圍。
  4. 如請求項1所述的記憶體裝置,其中所述命令是讀取命令或寫入命令。
  5. 如請求項4所述的記憶體裝置, 其中當所述命令對應於所述讀取命令時,所述記憶體中處理器電路藉由使用自所述記憶體組的與所述位址對應的位置讀取的所述資料來實行所述處理操作,且 其中當所述命令對應於所述寫入命令時,所述記憶體中處理器電路使用由所述主機提供的所述資料來實行所述處理操作。
  6. 如請求項1所述的記憶體裝置,其中所述位址包括指示所述記憶體組的列的列位址及指示所述記憶體組的行的行位址,且所述記憶體中處理器電路使用自由所述列位址及所述行位址指示的位置讀取的所述資料來實行所述處理操作。
  7. 如請求項1所述的記憶體裝置,其中所述記憶體中處理器電路更包括: 處理控制器,被配置成實行控制操作,使得與由所述程式計數器的所述計數值指示的指令對應的指令操作被處理;以及 至少一個處理元件,被配置成基於所述處理控制器的控制來實行所述指令操作。
  8. 如請求項7所述的記憶體裝置,其中所述至少一個處理元件包括多個處理元件,所述記憶體包含包括所述記憶體組在內的多個記憶體組,且所述多個處理元件分別被佈置成對應於所述多個記憶體組。
  9. 如請求項7所述的記憶體裝置,其中所述多個處理元件中的每一者由所述多個記憶體組中的至少二者共享。
  10. 如請求項1所述的記憶體裝置,其中當接收到指示欲實行所述處理操作的所述命令或所述位址時, 將由所述程式計數器的當前計數值指示的第一指令及由所述程式計數器的下一計數值指示的第二指令一起讀取,且 對所述第二指令實行預解碼操作。
  11. 如請求項10所述的記憶體裝置,其中當所述第二指令對應於迴圈指令時,所述第二指令包含關於欲移動的第三指令的位置的資訊,且 其中當接收到指示欲處理下一操作的命令或位址時,所述記憶體中處理器電路執行所述第三指令而不執行所述第二指令。
  12. 如請求項1所述的記憶體裝置,其中所述操作是用於神經網路處理,且所述記憶體中處理器電路使用來自所述主機的所述資料及所述記憶體組中的權重資訊來實行所述處理操作。
  13. 一種操作包括多個記憶體組的記憶體裝置的方法,所述方法包括: 儲存自主機接收到的與處理操作對應的多個指令; 對自所述主機接收到的命令或位址進行解碼,以判斷所述位址是否屬於第一範圍及第二範圍之一; 當確定所述位址對應於所述第一範圍時,實行與接收到的所述命令或所述位址對應的記憶體操作;以及 當確定所述位址屬於所述第二範圍時,讀取所述多個指令中的指令,並在設置於所述記憶體裝置中的記憶體中處理器電路中實行與所讀取的所述指令對應的處理操作。
  14. 如請求項13所述的方法,其中所述讀取所述指令包括: 檢查程式計數器的計數值,所述計數值指示其中儲存所述多個指令的指令記憶體的位置,以及 因應於所述命令或所述位址指示欲實行所述處理操作,實行所述程式計數器的計數。
  15. 如請求項13所述的方法,其中所述位址的至少一些位元包括關於所述多個記憶體組中的記憶體組中所儲存的資料的位置的位址資訊,且 其中所述處理操作是藉由使用自由所述位址資訊指示的位置讀取的資料來實行。
  16. 如請求項13所述的方法,其中所述處理操作是藉由使用由所述主機與所述命令或所述位址一起提供的資料來實行。
  17. 如請求項13所述的方法,其中所述命令是讀取命令或寫入命令。
  18. 如請求項13所述的方法,其中所述多個記憶體組中儲存有關於神經網路操作的權重資訊,且其中所述處理操作包括: 自所述多個記憶體組讀取具有不同值的權重資訊項;以及 以所述權重資訊項並行地對由所述主機提供的資料進行操作。
  19. 一種包括主機的資料處理系統,其中所述主機包括: 位址映射記憶體,被配置成儲存屬於第一範圍的多個位址及屬於第二範圍的多個位址,所述第一範圍用於指示欲對記憶體裝置實行記憶體操作,所述第二範圍用於指示欲使用自所述記憶體裝置的多個記憶體組中的所選擇記憶體組讀取的資料來實行處理操作;以及 記憶體介面,被配置成藉由輸出屬於所述第一範圍的位址來指示欲實行所述記憶體操作,且藉由輸出屬於所述第二範圍的位址來指示欲實行所述處理操作。
  20. 如請求項19所述的資料處理系統,其中在指示所述記憶體操作及所述處理操作時,所述主機更輸出寫入命令或讀取命令。
  21. 如請求項19所述的資料處理系統,更包括包含所述多個記憶體組的所述記憶體裝置,其中所述記憶體裝置包括: 記憶體中處理器電路,被配置成藉由使用由所述主機提供的資料及自所述多個記憶體組讀取的資料中的至少一者來處理操作;以及 控制邏輯,被配置成對自所述主機接收到的命令或位址進行解碼以產生解碼結果並基於所述解碼結果來實行控制操作,使得達成以下情形之一:i)對所述多個記憶體組實行所述記憶體操作,以及ii)所述記憶體中處理器電路實行所述處理操作。
  22. 如請求項21所述的資料處理系統,其中所述記憶體中處理器電路包括: 指令記憶體,被配置成儲存由所述主機提供的多個指令;以及 程式計數器,被配置成輸出指示所述指令記憶體的位置的計數值,且 其中因應於所述命令或所述位址指示欲實行所述處理操作,實行所述程式計數器的計數。
  23. 如請求項21所述的資料處理系統,其中在所述命令或所述位址指示欲實行所述處理操作時,在所述位址中包含關於所述所選擇記憶體組中所儲存的資料的位置的位址資訊,且 其中所述記憶體中處理器電路藉由使用自所述所選擇記憶體組的與所述位址對應的位置讀取的資料來實行所述處理操作。
TW109107967A 2019-03-11 2020-03-11 記憶體裝置、資料處理系統以及操作記憶體裝置的方法 TW202044043A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962816509P 2019-03-11 2019-03-11
US62/816,509 2019-03-11
KR10-2019-0161674 2019-12-06
KR1020190161674A KR20200108773A (ko) 2019-03-11 2019-12-06 연산 처리를 수행하는 메모리 장치, 이를 포함하는 데이터 처리 시스템 및 메모리 장치의 동작방법

Publications (1)

Publication Number Publication Date
TW202044043A true TW202044043A (zh) 2020-12-01

Family

ID=72707900

Family Applications (2)

Application Number Title Priority Date Filing Date
TW109107592A TW202111540A (zh) 2019-03-11 2020-03-09 記憶體裝置、操作記憶體裝置的方法和記憶體系統
TW109107967A TW202044043A (zh) 2019-03-11 2020-03-11 記憶體裝置、資料處理系統以及操作記憶體裝置的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW109107592A TW202111540A (zh) 2019-03-11 2020-03-09 記憶體裝置、操作記憶體裝置的方法和記憶體系統

Country Status (3)

Country Link
KR (4) KR20200108768A (zh)
SG (3) SG10202002213RA (zh)
TW (2) TW202111540A (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11537323B2 (en) 2020-01-07 2022-12-27 SK Hynix Inc. Processing-in-memory (PIM) device
US11908541B2 (en) 2020-01-07 2024-02-20 SK Hynix Inc. Processing-in-memory (PIM) systems
TW202141290A (zh) 2020-01-07 2021-11-01 韓商愛思開海力士有限公司 記憶體中處理(pim)系統和pim系統的操作方法
US11281583B1 (en) 2020-09-24 2022-03-22 Hughes Network Systems, Llc Unified memory management for a multiple processor system
US11893278B2 (en) 2021-02-08 2024-02-06 Samsung Electronics Co., Ltd. Memory controller and memory control method for generating commands based on a memory request
US20230207038A1 (en) * 2021-12-29 2023-06-29 Advanced Micro Devices, Inc. Dram specific interface calibration via programmable training sequences

Also Published As

Publication number Publication date
KR20200108774A (ko) 2020-09-21
KR20200108773A (ko) 2020-09-21
TW202111540A (zh) 2021-03-16
SG10202002232UA (en) 2020-10-29
KR20200108768A (ko) 2020-09-21
SG10202002213RA (en) 2020-10-29
SG10202002231WA (en) 2020-10-29
KR20200108772A (ko) 2020-09-21

Similar Documents

Publication Publication Date Title
US11663008B2 (en) Managing memory device with processor-in-memory circuit to perform memory or processing operation
US11693783B2 (en) Apparatuses and methods for cache operations
US11513945B2 (en) Apparatuses and methods for transferring data using a cache
US11614877B2 (en) Apparatuses and methods for data movement
US11094371B2 (en) Memory device for processing operation and method of operating the same
US11482260B2 (en) Apparatuses and methods for scatter and gather
US11482278B2 (en) Method of performing internal processing operation of memory device
TW202044043A (zh) 記憶體裝置、資料處理系統以及操作記憶體裝置的方法
TWI629686B (zh) 用於同時存取非揮發性記憶體之多個分區之裝置及方法
US20210216243A1 (en) Memory device performing parallel calculation processing, operating method thereof, and operating method of memory controller controlling the memory device
US10614871B2 (en) Semiconductor devices and semiconductor systems including the semiconductor devices
US10867662B2 (en) Apparatuses and methods for subarray addressing
CN110008147A (zh) 存储器控制器以及用于对存储模块进行访问的方法
US20200293452A1 (en) Memory device and method including circular instruction memory queue
US20190096459A1 (en) Memory devices for performing multiple write operations and operating methods thereof
US9711198B1 (en) Semiconductor device for control read or write operation using a bank address and system including the same
KR20210156058A (ko) 인-메모리 프로세싱을 수행하는 메모리 디바이스