TW202540836A - 減少記憶體中處理操作中之延時 - Google Patents
減少記憶體中處理操作中之延時Info
- Publication number
- TW202540836A TW202540836A TW114112439A TW114112439A TW202540836A TW 202540836 A TW202540836 A TW 202540836A TW 114112439 A TW114112439 A TW 114112439A TW 114112439 A TW114112439 A TW 114112439A TW 202540836 A TW202540836 A TW 202540836A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- memory
- command
- host device
- pim
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mram Or Spin Memory Techniques (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本揭示案提供了方法、系統及媒體,包含:一主機裝置,該主機裝置經組態以執行一或多個應用程式;及一記憶體中處理(PIM)子系統,該PIM子系統包含一或多個記憶體陣列及一或多個積體計算元件,其中該等積體計算元件包含在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間能夠存取的內部儲存器,其中該主機裝置經組態以經由一命令介面發送命令以開始經由一資料介面將資料儲存在該一或多個記憶體陣列中,且其中該主機裝置經組態以經由該命令介面發送資料以儲存在該PIM子系統之該內部儲存器中。
Description
本說明書大體上係關於用於執行計算之記憶體裝置。
現代計算系統通常併入有各種各樣的計算處理單元,該等計算處理單元各自提供不同之計算能力及折衷。給定計算作業之高效執行通常涉及將計算剖析成有意義之子任務或工作負載,該等子任務或工作負載被映射至計算系統之可用處理器核心。可基於諸如處理器能力、效能及功率之適合性準則來剖析及映射計算。一般而言,將計算之各部分分配給適當處理器資源之此總體程序稱為異質計算。
計算系統之至少一個處理器核心可為智慧財產區塊(「IP區塊」),該IP區塊針對不同多媒體工作負載執行計算操作之各別部分。實例用例可涉及處理分別由行動裝置上之相機或麥克風擷取之影像或語音資料。SoC可使用異質計算操作來處理自影像資料、語音資料或兩者得到之輸入樣本。異質計算操作中之實例步驟可包括使用提供記憶體中處理或計算能力之記憶體裝置來處理與輸入樣本相關聯之資料。
本說明書描述了用於在用於受記憶體限制之計算工作負載的記憶體中處理器架構(「PiM架構」)中儲存資料的硬體及軟體技術。PiM架構定義記憶體裝置之一或多個PiM區塊,且每一PiM區塊包括計算元件,諸如處理器單元、模式暫存器及一或多個算術邏輯單元(ALU)。舉例而言,PiM區塊可包括協作以形成一或多個PiM計算元件之離散處理器、處理器單元、暫存器裝置、緩衝器等。
用於在PiM架構中儲存資料之先前設計方法需要在將資料寫入至動態隨機存取記憶體DRAM或PiM暫存器裝置中之記憶體陣列之前打開「虛設」頁。一旦寫入操作完成,則必須關閉虛設頁。在資料將寫入至PiM暫存器裝置之情形下,打開及關閉虛設頁之步驟係不必要的,因為並未正在存取DRAM頁。與此等先前方法相比,本說明書之技術在將資料寫入至PiM暫存器裝置時移除了打開及關閉虛設頁之不必要步驟。另外,若正在寫入之資料的大小低於臨限值,則可藉由在PiM架構之命令匯流排中傳輸待寫入之資料來實現進一步的處理效率。
可實施本說明書中描述之標的物的特定實施例,以便實現以下優點中之一或多者。在將資料寫入至PiM暫存器裝置時移除打開及關閉虛設頁之不必要步驟極大地減少寫入延時。此等技術亦減少當跨共用同一命令匯流排及資料匯流排之PiM記憶體晶粒列進行寫入操作時的切換延時。在待寫入之資料足夠小以藉由命令匯流排發送之情形下,此等技術可將同一寫入命令同時廣播至兩個列,因此消除切換延時。減少寫入延時導致主機裝置之整體處理效率更高。
本說明書之標的物之一或多個實施例之細節在附圖及下文描述中闡述。標的物的其他特徵、態樣及優點將自說明書、圖式及申請專利範圍中變得顯而易見。
圖1為包括單晶片系統或主機裝置102 (「SoC 102」)之實例計算系統100的方塊圖。SoC 102包括中央處理單元104 (「CPU 104」)、記憶體控制器105、共用記憶體106 (「記憶體106」)、資源管理器108及IP/電路區塊110。在一些實施方案中,系統100可包括多個SoC,且對SoC 102之任何描述將同樣適用於可包括在系統100處的多個SoC中之每一者。實例計算系統可實施下文關於圖2至圖7描述之方法及程序。
CPU 104可為通用CPU (例如,單核心或多核心CPU)。CPU 104產生一或多個指示符,諸如回應於在使用者裝置處執行或啟動應用程式而觸發之app啟動指示符或函數調用。舉例而言,應用程式可為使用成像感測器來產生影像資料之相機應用程式或需要大量記憶體及圖形處理資源來渲染遊戲之圖形內容之遊戲應用程式。CPU 104亦產生一或多個應用程式值,諸如像素值或訊框速率。應用程式值可與函數調用相關聯,可描述在應用程式之執行期間發生之事件,或兩者。
記憶體106為系統記憶體、共用記憶體或兩者。在圖1之實例中,記憶體106被繪示為在電路區塊110外部。然而,記憶體106可包括以下記憶體部分:i)特定於電路區塊110,ii)在電路區塊110外部,或iii)兩者。記憶體106可為SoC 102之隨機存取記憶體,諸如靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、同步DRAM (SDRAM)或雙倍資料速率(DDR) SDRAM。
在一些實施方案中,記憶體106之態樣被組態為共用暫存記憶體(shared scratchpad memory),該共用暫存記憶體支援電路110之兩個或更多個處理器對其記憶體資源之平行存取。記憶體106亦可包括各種其他類型的記憶體,諸如高頻寬記憶體(HBM)、窄記憶體(例如,用於儲存8位元值)、寬記憶體(例如,用於儲存16位元或32位元值)等。
資源管理器108以硬體及軟體實施。資源管理器108之態樣亦可被實施為SoC 102之韌體或SoC 102之裝置(諸如DRAM記憶體裝置或CPU 104)之韌體。資源管理器108為記憶體中處理器(PiM)資源管理器(「PiM資源管理器108」),其包括以硬體、軟體或兩者實施之控制邏輯。舉例而言,PiM資源管理器108可包括以硬體實施之資源,諸如正反器、暫存器、緩衝器等;及以軟體實施之控制邏輯(例如經程式化之程式碼)。
電路區塊110大體包括個別IP裝置,諸如處理器、處理器核心或專用處理裝置。舉例而言,電路區塊110可包括影像信號處理器(ISP) 112、張量處理單元(TPU) 114、數位信號處理器(DSP) 116及圖形處理單元(GPU) 118。電路區塊110替代地稱為IP區塊110,其中IP區塊可包括一或多個專有硬體元件。舉例而言,ISP 112、TPU 114、DSP 116及GPU 118中之每一者可為特定實體或裝置製造商之各別專有IP區塊(或IP裝置)。
PiM資源管理器108之一或多個態樣可實施為CPU 104之軟體常式(或模組),該軟體常式(或模組)使用CPU 104之一或多個硬體資源,諸如暫存器、緩衝器等。CPU 104可被組態為指令及向量資料處理引擎,該指令及向量資料處理引擎處理自SoC 102之系統記憶體(諸如記憶體106)獲得之資料。在一些實施方案中,SoC 102之每一處理器(例如,ISP 112、DSP 116、TPU 114、GPU 118)包括多個核心,且CPU 104及/或PiM資源管理器108可產生經由命令匯流排(「CA BUS」) 124及資料匯流排(「DQ BUS」) 125之控制信令,以管理記憶體密集型計算操作且將記憶體密集型計算操作分配至記憶體裝置122 (例如,DRAM),以使處理器之每一核心處的處理負載最小化。在系統100處使用SoC 102之實例匯流排120路由命令匯流排124及資料匯流排125之控制信令。命令匯流排124及資料匯流排125之控制信令可包括命令、請求、資料、指令或此等之組合。在下文關於圖5描述之一些實例中,命令匯流排124除了發送指令之外亦發送資料。
PiM資源管理器108與CPU 104、記憶體控制器105及儲存器控制器107協作以動態地控制及管理一或多個記憶體中計算(CIM)操作。在一些實施方案中,在SoC 102處執行CIM操作以支援包括在IP區塊110、CPU 104或兩者之中的兩個或更多個處理單元之間的異質計算操作。更具體而言,PiM資源管理器108經組態以產生經由命令匯流排124及資料匯流排125之控制信令,且使用控制信令之一或多個離散信號值來管理及增強記憶體裝置122處之資料存取操作。
系統100包括實例記憶體裝置122。記憶體裝置122可包括多個記憶體晶片,每一記憶體晶片包括記憶體陣列及積體計算元件。舉例而言,記憶體裝置122可包括N個記憶體晶粒,其中N為大於1之整數。記憶體裝置122可為動態隨機存取記憶體(DRAM)或雙倍資料速率(DDR)同步DRAM (SDRAM)。記憶體裝置122經組態以執行或支援各種類型的PiM操作、CiM操作及近記憶體計算操作(「MnC操作」)。記憶體裝置122使用其多個PiM計算元件來執行或支援此等操作,在下文參考圖3至圖7來描述此等操作。記憶體陣列可為DRAM或SDRAM陣列。PiM計算元件(亦稱為積體計算元件)包含內部儲存器,諸如亦可稱為PiM暫存器裝置或PiM暫存器記憶庫之PiM暫存器。PiM計算元件之內部儲存器係在PiM計算元件執行指令以對儲存在記憶體陣列中之資料進行操作期間可由PiM計算元件存取的。在一實例中,PiM計算元件使用由內部儲存器儲存之輸入資料及由記憶體陣列儲存之神經網路層之權重來執行乘法-累加(MAC)操作。記憶體陣列可具有比PiM計算元件之內部儲存器更大的儲存容量。
SoC 102與記憶體裝置122協作以跨記憶體裝置122之一或多個記憶庫群組執行計算。該等計算可用於涉及IP區塊110處之處理器中之一或多者的操作或工作負載。另外,該等計算可用於跨越IP區塊110之多個處理器、多個IP區塊110或兩者之異質操作。在至少一個實例中,記憶體裝置122可在SoC 102外部,而在另一實例中,記憶體裝置122可在SoC 102內部。
在圖1之實例中,系統100及SoC 102為實例使用者/用戶端裝置130、消費類電子裝置或行動裝置之積體電路,其中此等裝置中之每一者可包括諸如智慧型電話130a、平板電腦130b、膝上型電腦130c、智慧型手錶或可穿戴裝置130d之物品。裝置130亦可包括其他物品,諸如電子筆記型電腦、上網本、智慧型揚聲器或行動電腦。在一些實施方案中,系統100及SoC 102為桌上型電腦、網路伺服器或相關之基於雲端之資產的積體電路。
圖2為使用用於對記憶體陣列進行寫入之完整命令協定在PiM架構中寫入資料之實例先前技術方法200。實例方法200包括命令匯流排206、資料匯流排208、待寫入資料216及經由命令匯流排206發送之各種命令。在使用完整命令協定對記憶體陣列進行寫入之先前技術方法中,為了在關閉前一頁202之後對PiM暫存器執行寫入操作,經由命令匯流排206發送虛設頁打開命令(「活躍」或「ACT」) 210。接下來,發送CAS寫入命令212以使接收記憶體結構(例如,DRAM或PiM暫存器)準備好進行寫入操作。在對PiM暫存器進行寫入之情況下,CAS寫入命令212之後為PiM寫入命令214。接著經由資料匯流排208發送資料216且將資料寫入至PiM暫存器。為了結束寫入操作,經由命令匯流排206發送虛設頁關閉命令(「預充電」或「PRE」) 218以關閉虛設頁。接著可用另一頁打開命令204開始其他寫入操作。在一些實例中,由於發出ACT 210及PRE 218命令兩者導致之週期時間開銷為約100個週期。
圖3為使用用於對積體計算元件(例如,PiM暫存器裝置)之內部儲存器進行寫入的精簡命令協定,在PiM架構(例如,圖1之記憶體裝置122)中寫入資料之改良方法300的實例。在此改良方法300中,與先前技術方法200共用之命令用相似編號指示。命令匯流排206及資料匯流排208類似於圖1之命令匯流排124及資料匯流排125。與先前技術方法200相比,改良方法300移除不必要的ACT命令210及PRE命令218。在用於將資料寫入至PiM暫存器之改良方法300中,命令匯流排206首先發送CAS寫入命令212。在一些實例中,CAS寫入命令212經修改以向DRAM指示要對PiM暫存器進行寫入操作。舉例而言,可藉由選定CAS寫入命令212中之未使用位元來指定PiM暫存器寫入(例如,「PiM CAS_WR」)來修改該命令。CAS寫入命令212中之未使用位元之實例為WRITE-X位元(WRX/WXSA),其可用於指定PiM暫存器寫入。藉由移除虛設頁命令,可消除與此等命令相關聯之週期時間(例如,100個週期)且改良延時。
圖4為在PiM架構中對兩個列進行寫入之改良方法400的實例。在此改良方法400中,與方法200及300共用之命令用相似編號指示。與先前方法相比,改良方法400繪示跨多個PiM暫存器列之寫入操作。在此方法中,用於多個列之命令在共用命令匯流排206上同時發出(例如,在用於列「0」之PiM寫入命令214發出的同時發出用於列「1」之PiM CAS寫入命令212。另外,在多記憶庫寫入操作中已針對前一記憶庫寫入資料216之後,藉由命令匯流排206發出列切換命令402 (例如,一旦資料216已完成寫入至列0,則在將資料404寫入至列1之前發出列切換命令402)。在此方法400中,類似於方法300,消除虛設頁命令節省了週期時間且減少了延時。
圖5為實例改良方法500,其中當待寫入至PiM暫存器之資料低於臨限值大小時,經由命令匯流排206發送資料。舉例而言,若待寫入之資料為8位元或更小,則可使用命令匯流排206直接發送寫入命令。否則,若資料高於臨限值大小,則使用資料匯流排208發送資料,如上文在圖3至圖4中所述。在一些實例中,為了使得能夠使用命令匯流排206寫入資料,在閒置時段期間將命令添加至命令匯流排206 (例如,可在4週期閒置時段期間發送用於小於或等於8位元之資料的寫入命令)。在一些實例中,取決於待傳送之資料位元,此命令可為1週期或2週期命令。在一些實例中,此命令為在1週期寫入504之前發送的1週期命令502。另外,由於命令匯流排可在PiM暫存器列之間共用,因此經由命令匯流排發送之寫入操作可同時廣播至多個列。在一些實例中,主機裝置平行地(例如,經由命令匯流排206)將資料發送至多列PiM架構之所有列。在其他實例中,主機裝置串列地(例如,經由資料匯流排208)將資料發送至多列PiM架構之列。
圖6為用於實施在PiM架構(例如,圖1之記憶體裝置122)中寫入資料之改良方法的實例程序600。PiM架構包含一或多個記憶體陣列(例如,DRAM或SDRAM陣列)及一或多個積體計算元件(例如,PiM計算元件)。在一些實例中,一或多個記憶體陣列具有比積體計算元件之內部儲存器更高的儲存容量。該一或多個積體計算元件包括在一或多個積體計算元件執行指令以對儲存於一或多個記憶體陣列中之資料進行操作期間可被存取的內部儲存器(例如,PiM暫存器)。實例程序600包括使用精簡命令協定經由資料介面接收資料(610)及將該資料儲存在一或多個積體計算元件之內部儲存器中(620)。如上文關於圖3至圖4所描述,精簡命令協定在將資料寫入至PiM暫存器時消除了不必要的虛設頁命令。「資料介面」係指資料匯流排(例如,資料匯流排125或208)連接至PiM架構的介面。在一些實例中,主機裝置經組態以將精簡命令協定與用於打開一或多個記憶體陣列之一部分以進行讀取的操作重疊。在一些實例中,主機裝置經組態以將對內部儲存器進行寫入與用於打開一或多個記憶體陣列之該部分的操作重疊。在一些實例中,與打開一或多個記憶體陣列之該部分以進行讀取相比,精簡命令協定及對內部儲存器進行寫入佔用更少的時脈週期。在一些實例中,主機裝置經組態以在用於打開一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將資料寫入至內部儲存器。
圖7為用於經由命令匯流排發送用於寫入之資料的實例程序700。實例程序700包括經由記憶體中處理(PiM)子系統之命令介面接收資料以用於儲存(710)。圖1之記憶體裝置122為PiM子系統之實例。PiM子系統包含一或多個記憶體陣列(例如,DRAM或SDRAM陣列)及一或多個積體計算元件(例如,PiM計算元件)。該一或多個積體計算元件包括在一或多個積體計算元件執行指令以對儲存於一或多個記憶體陣列中之資料進行操作期間可被存取的內部儲存器(例如,PiM暫存器)。「命令介面」係指命令匯流排(例如,命令匯流排124或206)連接至PiM子系統的介面。實例程序700進一步包括將該資料儲存在一或多個積體計算元件之內部儲存器中(720)。如上文在圖5中所描述,當資料大小低於臨限值時,使用命令匯流排發送資料以用於寫入至PiM暫存器。
本說明書中描述之標的物及功能操作之實施例可用數位電子電路系統、有形體現之電腦軟體或韌體、電腦硬體(包括本說明書中揭示之結構及其結構等效物)、或其中一或多者之組合來實施。本說明書中描述之標的物的實施例可實施為一或多個電腦程式,亦即,編碼在有形非暫時性儲存媒體上的電腦程式指令之一或多個模組,用於由資料處理設備執行或控制資料處理設備之操作。電腦儲存媒體可為機器可讀儲存裝置、機器可讀儲存基板、隨機或串列存取記憶體裝置或其中之一或多者之組合。替代地或另外地,該等程式指令可編碼在人工產生之傳播信號(例如機器產生之電、光或電磁信號)上,該傳播信號經產生以對資訊進行編碼以便傳輸至合適的接收器設備以由資料處理設備執行。
術語「資料處理設備」係指資料處理硬體且涵蓋用於處理資料之所有種類的設備、裝置及機器,包括例如可程式化處理器、電腦或多個處理器或電腦。該設備亦可為或進一步包括專用邏輯電路系統,例如,FPGA (場可程式化閘陣列)或ASIC (特殊應用積體電路)。除硬體以外,設備亦可視情況地包括為電腦程式建立執行環境的程式碼,例如,構成處理器韌體、協定堆疊、資料庫管理系統、作業系統或其中之一或多者之組合的程式碼。電腦程式(其亦可稱為或描述為程式、軟體、軟體應用程式、app、模組、軟體模組、指令碼或程式碼)可用任何形式之程式設計語言(包括編譯或解釋語言、或聲明性或程序性語言)編寫;且其可以任何形式部署,包括部署為獨立程式或為模組、組件、子常式或適合在計算環境中使用之其他單元。程式可但無需對應於檔案系統中之檔案。程式可儲存在保存其他程式或資料的檔案之一部分(例如,儲存在標記語言文件中之一或多個指令碼)、專用於所討論程式之單個檔案,或多個協調檔案(例如,儲存一或多個模組、子程式、或程式碼之部分的檔案)中。電腦程式可被部署為在一個電腦上或在多個電腦上執行,該多個電腦位於一個地點或分散於多個地點之間且藉由資料通信網路互連。
一或多個電腦之系統經組態以執行特定操作或動作意謂著該系統上已安裝了在操作中使該系統執行該等操作或動作的軟體、韌體、硬體或其組合。一或多個電腦程式經組態以執行特定操作或動作意謂著一或多個程式包括當由資料處理設備執行時使該設備執行該等操作或動作的指令。
如本說明書中所使用,「引擎」或「軟體引擎」係指提供與輸入不同之輸出的軟體實施之輸入/輸出系統。引擎可為功能之編碼區塊,諸如庫、平台、軟體開發套組(「SDK」)或物件。每一引擎可在任何適當類型之計算裝置(例如伺服器、行動電話、平板電腦、筆記型電腦、音樂播放器、電子書閱讀器、膝上型或桌上型電腦、PDA、智慧型電話或其他固定或可攜式裝置)上實施,該計算裝置包括一或多個處理器及電腦可讀媒體。另外,引擎中之兩個或更多個可在同一計算裝置上或在不同計算裝置上實施。
本說明書中描述之程序及邏輯流程可由一或多個可程式化電腦執行,該一或多個可程式化電腦執行一或多個電腦程式以藉由對輸入資料進行操作且產生輸出來執行功能。程序及邏輯流程亦可由專用邏輯電路系統(例如,FPGA或ASIC)或由專用邏輯電路系統與一或多個經程式化電腦之組合來執行。適合於執行電腦程式之電腦可基於通用或專用微處理器或兩者,或任何其他種類之中央處理單元。一般而言,中央處理單元將自唯讀記憶體或隨機存取記憶體或兩者接收指令及資料。電腦之基本元件為用於執行(performing/executing)指令之中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。中央處理單元及記憶體可由專用邏輯電路系統補充或併入專用邏輯電路系統中。一般而言,電腦亦將包括用於儲存資料之一或多個大量儲存裝置(例如磁碟、磁光碟或光碟),或可操作地耦接以自一或多個大量儲存裝置接收資料或將資料傳送至一或多個大量儲存裝置,或以上兩種情況均有。然而,電腦不需要具有此類裝置。此外,電腦可嵌入另一裝置中,該另一裝置例如行動電話、個人數位助理(PDA)、行動音訊或視訊播放器、遊戲控制台、全球定位系統(GPS)接收器或可攜式儲存裝置,例如通用串列匯流排(USB)快閃驅動器,僅舉幾例。
適合於儲存電腦程式指令及資料之電腦可讀媒體包括所有形式的非揮發性記憶體、媒體及記憶體裝置,包括例如半導體記憶體裝置,例如EPROM、EEPROM及快閃記憶體裝置;磁碟,例如內部硬碟或可移動磁碟;磁光碟;以及CD-ROM及DVD-ROM碟。
為了提供與使用者之交互,本說明書中描述之標的物之實施例可在電腦上實施,該電腦具有用於向使用者顯示資訊之顯示裝置(例如,CRT (陰極射線管)或LCD (液晶顯示器)監視器)及使用者可藉此向電腦提供輸入之鍵盤及指向裝置(例如滑鼠、軌跡球或在場敏感顯示器或其他表面)。其他種類之裝置亦可用於提供與使用者之交互;舉例而言,提供給使用者之回饋可為任何形式之感覺回饋,例如視覺回饋、聽覺回饋或觸覺回饋;且來自使用者之輸入可以任何形式接收,包括聲學、語音或觸覺輸入。另外,電腦可藉由向使用者使用之裝置發送文檔及自使用者使用之裝置接收文檔來與使用者交互;例如,藉由回應於自網頁瀏覽器接收到之請求而將網頁發送至使用者之裝置上的網頁瀏覽器。此外,電腦可藉由向個人裝置(例如,運行訊息傳遞應用程式之智慧型電話)發送文本訊息或其他形式之訊息及作為回饋自使用者接收回應訊息來與使用者交互。
本說明書中描述之標的物之實施例可在計算系統中實施,該計算系統包括後端組件,例如作為資料伺服器;或包括中間件組件,例如應用程式伺服器;或包括前端組件,例如具有圖形使用者介面、網頁瀏覽器或app之用戶端電腦,使用者可經由該圖形使用者介面、網頁瀏覽器或app與本說明書中描述之標的物之實施方案進行交互;或一或多個此類後端組件、中間件組件或前端組件之任何組合。系統之組件可藉由任何形式或媒體之數位資料通信(例如,通信網路)互連。通信網路之實例包括區域網路(LAN)及廣域網路(WAN),例如網際網路。
計算系統可包括用戶端及伺服器。用戶端及伺服器通常彼此遠離且通常經由通信網路交互。用戶端與伺服器之關係藉由在各別電腦上運行且彼此具有用戶端-伺服器關係之電腦程式而產生。在一些實施例中,伺服器將資料(例如,HTML頁面)傳輸至使用者裝置,例如,用於向與充當用戶端之裝置交互之使用者顯示資料及自該使用者接收使用者輸入的目的。在使用者裝置處產生之資料(例如,使用者交互之結果)可在伺服器處自該裝置接收。
儘管本說明書包含諸多特定實施細節,但此等細節不應被解釋為對任何發明之範疇或可主張之內容之範疇的限制,而是應被解釋為對特定發明之特定實施例可能特有的特徵之描述。在本說明書中在單獨實施例之上下文中描述的某些特徵亦可在單個實施例中組合實施。相反地,在單個實施例之上下文中描述的各種特徵亦可在多個實施例中單獨地實施或以任何合適子組合實施。此外,儘管特徵可在上文中描述為以某些組合起作用且甚至最初如此主張,但在一些情況下可自所主張之組合中去除該組合中之一或多個特徵,且所主張之組合可針對子組合或子組合之變化形式。
類似地,雖然在附圖中以特定順序繪示操作,但此不應被理解為需要以所示之特定順序或以依序順序執行此類操作,或執行所有所圖解說明之操作,以達成所要結果。在某些情況下,多任務及平行處理可為有利的。此外,上述實施例中各種系統模組及組件之分離不應被理解為在所有實施例中皆需要此類分離,且應理解,所描述之程式組件及系統通常可一起整合於單一軟體產品中或封裝至多個軟體產品中。
已描述標的物之特定實施例。其他實施例在以下申請專利範圍之範疇內。舉例而言,申請專利範圍中所列舉之動作可以不同順序執行且仍達成所要結果。作為一個實例,附圖中繪示之程序不一定需要所示之特定順序或依序順序來達成所要結果。在某些情況下,多任務及平行處理可為有利的。
除上述實施例外,以下實施例亦具有創新性:實施例1為一種系統,該系統包含:一主機裝置,該主機裝置經組態以執行一或多個應用程式;及一記憶體中處理(PIM)子系統,該PIM子系統包含一或多個記憶體陣列及一或多個積體計算元件,其中該等積體計算元件包含在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間能夠存取的內部儲存器,且其中該主機裝置經組態以使用一精簡命令協定經由一資料介面發送資料且將資料儲存在該等積體計算元件之該內部儲存器中。實施例2為實施例1之系統,該系統進一步包含一完整命令協定,該完整命令協定包括用於打開該一或多個記憶體陣列之一部分的一第一命令,且其中該精簡命令協定省略該第一命令。在一些實例中,該系統可經組態以使用完整命令協定經由資料介面發送其他資料且將其他資料儲存在該一或多個記憶體陣列中。在一些實例中,該第一命令可用於打開一接收記憶體結構之一部分。實施例3為實施例2之系統,其中該完整命令協定包括用於關閉該一或多個記憶體陣列之一部分的一第二命令,且其中該精簡命令協定省略該第二命令。在一些實例中,該第二命令可用於關閉該接收記憶體結構之一部分。實施例4為實施例1至3中任一項之系統,其中該精簡命令協定包括一經修改寫入命令,該經修改寫入命令指示該主機裝置正在將資料儲存在該等積體計算元件之該內部儲存器中。實施例5為實施例1至4中任一項之系統,其中該主機裝置經組態以使用該PIM子系統之該一或多個記憶體陣列作為一主記憶體。實施例6為實施例2至3中任一項之系統,其中該主機裝置經組態以使用一命令介面將命令發送至該PIM子系統。實施例7為實施例6之系統,其中該系統經組態以將該命令介面用於該完整命令協定及該精簡命令協定。在一些實例中,系統經組態以針對完整命令協定及精簡命令協定使用命令介面將命令發送至PIM子系統。實施例8為實施例1至7中任一項之系統,其中該主機裝置經組態以將該精簡命令協定與用於打開該一或多個記憶體陣列之一部分以進行讀取之操作重疊。實施例9為實施例8之系統,其中該主機裝置經組態以將對該內部儲存器進行寫入與用於打開該一或多個記憶體陣列之該部分之該等操作重疊。實施例10為實施例8至9中任一項之系統,其中與打開該一或多個記憶體陣列之該部分以進行讀取相比,該精簡命令協定及對該內部儲存器進行寫入佔用更少的時脈週期。實施例11為實施例9至10中任一項之系統,其中該PIM子系統為一多列子系統,且其中該主機裝置經組態以執行包含以下之操作:針對一第一列執行一第一精簡命令協定;針對一第二列執行一第二精簡命令協定;將第一資料寫入至該第一列之第一內部儲存器;在將資料寫入至該內部儲存器之後發出一列切換命令;及將第二資料寫入至該第二列之第二內部儲存器。實施例12為實施例11之系統,其中該第一精簡命令協定與該第二精簡命令協定至少部分地重疊。實施例13為實施例11至12中任一項之系統,其中該第二精簡命令協定與將該第一資料寫入至該第一列之該第一內部儲存器至少部分地重疊。實施例14為實施例11至13中任一項之系統,其中該系統經組態以在用於打開該一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將該第二資料寫入至該第二內部儲存器。實施例15為一種由一記憶體中處理(PIM)子系統執行之方法,該PIM子系統包含一或多個記憶體陣列及具有內部儲存器之一或多個積體計算元件,該方法包含:經由一資料介面自一主機裝置接收資料以儲存在該內部儲存器中;及將該資料儲存在該內部儲存器中,其中該資料係使用一精簡命令協定自該主機裝置發送的,且其中該內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。實施例16為實施例15之方法,該方法進一步包含一完整命令協定,該完整命令協定包括用於打開該一或多個記憶體陣列之一部分的一第一命令,且其中該精簡命令協定省略該第一命令。實施例17為實施例16之方法,其中該完整命令協定包括用於關閉該一或多個記憶體陣列之一部分的一第二命令,且其中該精簡命令協定省略該第二命令。實施例18為實施例15至17中任一項之方法,其中該精簡命令協定包括一經修改寫入命令,該經修改寫入命令指示該主機裝置正在將資料儲存在該等積體計算元件之該內部儲存器中。實施例19為實施例15至18中任一項之方法,其中該主機裝置經組態以使用該PIM子系統之該一或多個記憶體陣列作為一主記憶體。實施例20為實施例16至17中任一項之方法,其中該主機裝置經組態以使用一命令介面將命令發送至該PIM子系統。實施例21為實施例20之方法,其中該命令介面用於該完整命令協定及該精簡命令協定。實施例22為實施例15至21中任一項之方法,其中該主機裝置經組態以將該精簡命令協定與用於打開該一或多個記憶體陣列之一部分以進行讀取之操作重疊。實施例23為實施例22之方法,其中該主機裝置經組態以將對該內部儲存器進行寫入與用於打開該一或多個記憶體陣列之該部分之該等操作重疊。實施例24為實施例22至23中任一項之方法,其中與打開該一或多個記憶體陣列之該部分以進行讀取相比,該精簡命令協定及對該內部儲存器進行寫入佔用更少的時脈週期。實施例25為實施例23至24中任一項之方法,其中該PIM子系統為一多列子系統,且其中該主機裝置經組態以執行包含以下之操作:針對一第一列執行一第一精簡命令協定;針對一第二列執行一第二精簡命令協定;將第一資料寫入至該第一列之第一內部儲存器;在將資料寫入至該內部儲存器之後發出一列切換命令;及將第二資料寫入至該第二列之第二內部儲存器。實施例26為實施例25之方法,其中該第一精簡命令協定與該第二精簡命令協定至少部分地重疊。實施例27為實施例25至26中任一項之方法,其中該第二精簡命令協定與將該第一資料寫入至該第一列之該第一內部儲存器至少部分地重疊。實施例28為實施例25至27中任一項之方法,其中在用於打開該一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將該第二資料寫入至該第二內部儲存器。實施例29為一或多種非暫時性電腦儲存媒體,該一或多種非暫時性電腦儲存媒體編碼有電腦程式指令,該等電腦程式指令在由一或多個電腦執行時使該一或多個電腦執行包含以下之操作:經由一資料介面自一主機裝置接收資料以儲存在包含一或多個記憶體陣列之一記憶體中處理(PIM)子系統之一或多個積體計算元件之內部儲存器中;及將該資料儲存在該內部儲存器中,其中該資料係使用一精簡命令協定自該主機裝置發送的,且其中該內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。實施例30為實施例29之媒體,該媒體進一步包含一完整命令協定,該完整命令協定包括用於打開該一或多個記憶體陣列之一部分的一第一命令,且其中該精簡命令協定省略該第一命令。實施例31為實施例30之媒體,其中該完整命令協定包括用於關閉該一或多個記憶體陣列之一部分的一第二命令,且其中該精簡命令協定省略該第二命令。實施例32為實施例29至31中任一項之媒體,其中該精簡命令協定包括一經修改寫入命令,該經修改寫入命令指示該主機裝置正在將資料儲存在該等積體計算元件之該內部儲存器中。實施例33為實施例29至32中任一項之媒體,其中該主機裝置經組態以使用該PIM子系統之該一或多個記憶體陣列作為一主記憶體。實施例34為實施例30至31中任一項之媒體,其中該主機裝置經組態以使用一命令介面將命令發送至該PIM子系統。實施例35為實施例34之媒體,其中該命令介面用於該完整命令協定及該精簡命令協定。實施例36為實施例29至35中任一項之媒體,其中該主機裝置經組態以將該精簡命令協定與用於打開該一或多個記憶體陣列之一部分以進行讀取之操作重疊。實施例37為實施例36之媒體,其中該主機裝置經組態以將對該內部儲存器進行寫入與用於打開該一或多個記憶體陣列之該部分之該等操作重疊。實施例38為實施例36至37中任一項之媒體,其中與打開該一或多個記憶體陣列之該部分以進行讀取相比,該精簡命令協定及對該內部儲存器進行寫入佔用更少的時脈週期。實施例39為實施例37至38中任一項之媒體,其中該PIM子系統為一多列子系統,且其中該主機裝置經組態以執行包含以下之操作:針對一第一列執行一第一精簡命令協定;針對一第二列執行一第二精簡命令協定;將第一資料寫入至該第一列之第一內部儲存器;在將資料寫入至該內部儲存器之後發出一列切換命令;及將第二資料寫入至該第二列之第二內部儲存器。實施例40為實施例39之媒體,其中該第一精簡命令協定與該第二精簡命令協定至少部分地重疊。實施例41為實施例39至40中任一項之媒體,其中該第二精簡命令協定與將該第一資料寫入至該第一列之該第一內部儲存器至少部分地重疊。實施例42為實施例39至41中任一項之媒體,其中在用於打開該一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將該第二資料寫入至該第二內部儲存器。實施例43為一種系統,該系統包含:一主機裝置,該主機裝置經組態以執行一或多個應用程式;及一記憶體中處理(PIM)子系統,該PIM子系統包含一或多個記憶體陣列及一或多個積體計算元件,其中該等積體計算元件包含在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間能夠存取的內部儲存器,其中該主機裝置經組態以經由一命令介面發送命令以開始經由一資料介面將資料儲存在該一或多個記憶體陣列中,且其中該主機裝置經組態以經由該命令介面發送資料以儲存在該PIM子系統之該內部儲存器中。實施例44為實施例43之系統,其中該主機裝置經組態以在該資料之大小低於一臨限值時使用該命令介面來發送資料以儲存在該內部儲存器中。實施例45為實施例44之系統,其中該主機裝置經組態以在該資料之該大小等於或高於該臨限值時使用該資料介面來發送資料以儲存在該內部儲存器中。實施例46為實施例43至45中任一項之系統,其中該PIM子系統為一多列系統,且其中該系統經組態以經由該命令介面至少部分平行地將資料發送至該多列系統之所有列。實施例47為實施例46之系統,其中該主機裝置經組態以經由該資料介面串列地將資料發送至該多列系統之該等列。實施例48為一種由一記憶體中處理(PIM)子系統執行之方法,該PIM子系統包含一或多個記憶體陣列及具有內部儲存器之一或多個積體計算元件,該方法包含:經由一命令介面自一主機裝置接收資料以用於儲存;及將該資料儲存在該內部儲存器中,其中該內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。實施例49為實施例48之方法,其中該主機裝置經組態以在該資料之大小低於一臨限值時使用該命令介面來發送資料以儲存在該內部儲存器中。實施例50為實施例49之方法,其中該主機裝置經組態以在該資料之該大小等於或高於該臨限值時使用該資料介面來發送資料以儲存在該內部儲存器中。實施例51為實施例48至50中任一項之方法,其中該PIM子系統為一多列系統,且其中該系統經組態以經由該命令介面至少部分平行地將資料發送至該多列系統之所有列。實施例52為實施例51之方法,其中該主機裝置經組態以經由該資料介面串列地將資料發送至該多列系統之該等列。實施例53為一或多種非暫時性電腦儲存媒體,該一或多種非暫時性電腦儲存媒體編碼有電腦程式指令,該等電腦程式指令在由一或多個電腦執行時使該一或多個電腦執行包含以下之操作:經由一命令介面自一主機裝置接收資料以儲存在包含一或多個記憶體陣列之一記憶體中處理(PIM)子系統之一或多個積體計算元件之內部儲存器中;及將該資料儲存在該內部儲存器中,其中內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。實施例54為實施例53之媒體,其中該主機裝置經組態以在該資料之大小低於一臨限值時使用該命令介面來發送資料以儲存在該內部儲存器中。實施例55為實施例54之媒體,其中該主機裝置經組態以在該資料之該大小等於或高於該臨限值時使用該資料介面來發送資料以儲存在該內部儲存器中。實施例56為實施例53至55中任一項之媒體,其中該PIM子系統為一多列系統,且其中該系統經組態以經由該命令介面至少部分平行地將資料發送至該多列系統之所有列。實施例57為實施例56之媒體,其中該主機裝置經組態以經由該資料介面串列地將資料發送至該多列系統之該等列。
100:計算系統102:單晶片系統/SoC104:中央處理單元/CPU105:記憶體控制器106:共用記憶體/記憶體107:儲存器控制器108:資源管理器110:IP區塊/電路區塊112:影像信號處理器/ISP114:張量處理單元/TPU116:數位信號處理器/DSP118:圖形處理單元/GPU120:SoC匯流排122:記憶體裝置124:命令匯流排/CA BUS125:資料匯流排/DQ BUS130:用戶端裝置130a:智慧型電話130b:平板電腦130c:膝上型電腦130d:智慧型手錶/可穿戴裝置200:方法202:頁關閉204:頁打開206:CA匯流排208:DQ匯流排210:ACT212:CAS寫入214:PiM寫入216:資料218:PRE300:方法400:方法402:列切換命令404:資料500:方法502:1週期命令504:1週期寫入600:程序610:步驟620:步驟700:程序710:步驟720:步驟
圖1為具有至少一個SoC之實例計算系統的方塊圖。圖2為在PiM架構中寫入資料之實例先前技術方法。圖3為在PiM架構中寫入資料之實例改良方法。圖4為在PiM架構中將資料寫入至兩個列(rank)之實例改良方法。圖5為經由命令匯流排發送資料之實例改良方法。圖6為用於實施在PiM架構中寫入資料之改良方法的實例程序。圖7為用於經由命令匯流排發送用於寫入之資料的實例程序。
100:計算系統
102:單晶片系統/SoC
104:中央處理單元/CPU
105:記憶體控制器
106:共用記憶體/記憶體
107:儲存器控制器
108:資源管理器
110:IP區塊/電路區塊
112:影像信號處理器/ISP
114:張量處理單元/TPU
116:數位信號處理器/DSP
118:圖形處理單元/GPU
120:SoC匯流排
122:記憶體裝置
124:命令匯流排/CA BUS
125:資料匯流排/DQ BUS
130:用戶端裝置
130a:智慧型電話
130b:平板電腦
130c:膝上型電腦
130d:智慧型手錶/可穿戴裝置
Claims (57)
- 一種系統,該系統包含:一主機裝置,該主機裝置經組態以執行一或多個應用程式;及一記憶體中處理(PIM)子系統,該PIM子系統包含一或多個記憶體陣列及一或多個積體計算元件,其中該等積體計算元件包含內部儲存器(storage),該內部儲存器係在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間能夠存取的,其中該主機裝置經組態以使用一精簡命令協定(reduced command protocal)經由一資料介面發送資料且將資料儲存在該等積體計算元件之該內部儲存器中。
- 如請求項1之系統,該系統進一步包含一完整命令協定,該完整命令協定包括用於打開該一或多個記憶體陣列之一部分的一第一命令,且其中該精簡命令協定省略該第一命令。
- 如請求項2之系統,其中該完整命令協定包括用於關閉該一或多個記憶體陣列之一部分的一第二命令,且其中該精簡命令協定省略該第二命令。
- 如請求項1至3中任一項之系統,其中該精簡命令協定包括一經修改寫入命令,該經修改寫入命令指示該主機裝置正在將資料儲存在該等積體計算元件之該內部儲存器中。
- 如請求項1至3中任一項之系統,其中該主機裝置經組態以使用該PIM子系統之該一或多個記憶體陣列作為一主記憶體。
- 如請求項2或3之系統,其中該主機裝置經組態以使用一命令介面將命令發送至該PIM子系統。
- 如請求項6之系統,其中該系統經組態以將該命令介面用於該完整命令協定及該精簡命令協定。
- 如請求項1至3中任一項之系統,其中該主機裝置經組態以將該精簡命令協定與用於打開該一或多個記憶體陣列之一部分以進行讀取之操作重疊。
- 如請求項8之系統,其中該主機裝置經組態以將對該內部儲存器進行寫入與用於打開該一或多個記憶體陣列之該部分之該等操作重疊。
- 如請求項8之系統,其中與打開該一或多個記憶體陣列之該部分以進行讀取相比,該精簡命令協定及對該內部儲存器進行寫入佔用更少的時脈週期。
- 如請求項9之系統,其中該PIM子系統為一多列子系統(multi-rank subsystem),且其中該主機裝置經組態以執行包含以下之操作:針對一第一列(rank)執行一第一精簡命令協定;針對一第二列執行一第二精簡命令協定;將第一資料寫入至該第一列之第一內部儲存器;在將資料寫入至該內部儲存器之後發出一列切換命令;及將第二資料寫入至該第二列之第二內部儲存器。
- 如請求項11之系統,其中該第一精簡命令協定與該第二精簡命令協定至少部分地重疊。
- 如請求項11之系統,其中該第二精簡命令協定與將該第一資料寫入至該第一列之該第一內部儲存器至少部分地重疊。
- 如請求項11之系統,其中該系統經組態以在用於打開該一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將該第二資料寫入至該第二內部儲存器。
- 一種由一記憶體中處理(PIM)子系統執行之方法,該PIM子系統包含一或多個記憶體陣列及具有內部儲存器之一或多個積體計算元件,該方法包含:經由一資料介面自一主機裝置接收資料以儲存在該內部儲存器中;及將該資料儲存在該內部儲存器中,其中該資料係使用一精簡命令協定自該主機裝置發送的,且其中該內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。
- 如請求項15之方法,該方法進一步包含一完整命令協定,該完整命令協定包括用於打開該一或多個記憶體陣列之一部分的一第一命令,且其中該精簡命令協定省略該第一命令。
- 如請求項16之方法,其中該完整命令協定包括用於關閉該一或多個記憶體陣列之一部分的一第二命令,且其中該精簡命令協定省略該第二命令。
- 如請求項15至17中任一項之方法,其中該精簡命令協定包括一經修改寫入命令,該經修改寫入命令指示該主機裝置正在將資料儲存在該等積體計算元件之該內部儲存器中。
- 如請求項15至17中任一項之方法,其中該主機裝置經組態以使用該PIM子系統之該一或多個記憶體陣列作為一主記憶體。
- 如請求項16或17之方法,其中該主機裝置經組態以使用一命令介面將命令發送至該PIM子系統。
- 如請求項20之方法,其中該命令介面用於該完整命令協定及該精簡命令協定。
- 如請求項15至17中任一項之方法,其中該主機裝置經組態以將該精簡命令協定與用於打開該一或多個記憶體陣列之一部分以進行讀取之操作重疊。
- 如請求項22之方法,其中該主機裝置經組態以將對該內部儲存器進行寫入與用於打開該一或多個記憶體陣列之該部分之該等操作重疊。
- 如請求項22之方法,其中與打開該一或多個記憶體陣列之該部分以進行讀取相比,該精簡命令協定及對該內部儲存器進行寫入佔用更少的時脈週期。
- 如請求項23之方法,其中該PIM子系統為一多列子系統,且其中該主機裝置經組態以執行包含以下之操作:針對一第一列執行一第一精簡命令協定;針對一第二列執行一第二精簡命令協定;將第一資料寫入至該第一列之第一內部儲存器;在將資料寫入至該內部儲存器之後發出一列切換命令;及將第二資料寫入至該第二列之第二內部儲存器。
- 如請求項25之方法,其中該第一精簡命令協定與該第二精簡命令協定至少部分地重疊。
- 如請求項25之方法,其中該第二精簡命令協定與將該第一資料寫入至該第一列之該第一內部儲存器至少部分地重疊。
- 如請求項25之方法,其中在用於打開該一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將該第二資料寫入至該第二內部儲存器。
- 一或多種非暫時性電腦儲存媒體,該一或多種非暫時性電腦儲存媒體編碼有電腦程式指令,該等電腦程式指令在由一或多個電腦執行時使該一或多個電腦執行包含以下之操作:經由一資料介面自一主機裝置接收資料以儲存在包含一或多個記憶體陣列之一記憶體中處理(PIM)子系統之一或多個積體計算元件之內部儲存器中;及將該資料儲存在該內部儲存器中,其中該資料係使用一精簡命令協定自該主機裝置發送的,且其中該內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。
- 如請求項29之媒體,該媒體進一步包含一完整命令協定,該完整命令協定包括用於打開該一或多個記憶體陣列之一部分的一第一命令,且其中該精簡命令協定省略該第一命令。
- 如請求項30之媒體,其中該完整命令協定包括用於關閉該一或多個記憶體陣列之一部分的一第二命令,且其中該精簡命令協定省略該第二命令。
- 如請求項29至31中任一項之媒體,其中該精簡命令協定包括一經修改寫入命令,該經修改寫入命令指示該主機裝置正在將資料儲存在該等積體計算元件之該內部儲存器中。
- 如請求項29至31中任一項之媒體,其中該主機裝置經組態以使用該PIM子系統之該一或多個記憶體陣列作為一主記憶體。
- 如請求項30或31之媒體,其中該主機裝置經組態以使用一命令介面將命令發送至該PIM子系統。
- 如請求項34之媒體,其中該命令介面用於該完整命令協定及該精簡命令協定。
- 如請求項29至31中任一項之媒體,其中該主機裝置經組態以將該精簡命令協定與用於打開該一或多個記憶體陣列之一部分以進行讀取之操作重疊。
- 如請求項36之媒體,其中該主機裝置經組態以將對該內部儲存器進行寫入與用於打開該一或多個記憶體陣列之該部分之該等操作重疊。
- 如請求項36之媒體,其中與打開該一或多個記憶體陣列之該部分以進行讀取相比,該精簡命令協定及對該內部儲存器進行寫入佔用更少的時脈週期。
- 如請求項37之媒體,其中該PIM子系統為一多列子系統,且其中該主機裝置經組態以執行包含以下之操作:針對一第一列執行一第一精簡命令協定;針對一第二列執行一第二精簡命令協定;將第一資料寫入至該第一列之第一內部儲存器;在將資料寫入至該內部儲存器之後發出一列切換命令;及將第二資料寫入至該第二列之第二內部儲存器。
- 如請求項39之媒體,其中該第一精簡命令協定與該第二精簡命令協定至少部分地重疊。
- 如請求項39之媒體,其中該第二精簡命令協定與將該第一資料寫入至該第一列之該第一內部儲存器至少部分地重疊。
- 如請求項39之媒體,其中在用於打開該一或多個記憶體陣列之該部分以進行讀取之操作已完成之前完成將該第二資料寫入至該第二內部儲存器。
- 一種系統,該系統包含:一主機裝置,該主機裝置經組態以執行一或多個應用程式;及一記憶體中處理(PIM)子系統,該PIM子系統包含一或多個記憶體陣列及一或多個積體計算元件,其中該等積體計算元件包含在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間能夠存取的內部儲存器,其中該主機裝置經組態以經由一命令介面發送命令以開始經由一資料介面將資料儲存在該一或多個記憶體陣列中,且其中該主機裝置經組態以經由該命令介面發送資料以儲存在該PIM子系統之該內部儲存器中。
- 如請求項43之系統,其中該主機裝置經組態以在該資料之大小低於一臨限值時使用該命令介面來發送資料以儲存在該內部儲存器中。
- 如請求項44之系統,其中該主機裝置經組態以在該資料之該大小等於或高於該臨限值時使用該資料介面來發送資料以儲存在該內部儲存器中。
- 如請求項43至45中任一項之系統,其中該PIM子系統為一多列系統,且其中該系統經組態以經由該命令介面至少部分平行地將資料發送至該多列系統之所有列。
- 如請求項46之系統,其中該主機裝置經組態以經由該資料介面串列地將資料發送至該多列系統之該等列。
- 一種由一記憶體中處理(PIM)子系統執行之方法,該PIM子系統包含一或多個記憶體陣列及具有內部儲存器之一或多個積體計算元件,該方法包含:經由一命令介面自一主機裝置接收資料以用於儲存;及將該資料儲存在該內部儲存器中,其中該內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。
- 如請求項48之方法,其中該主機裝置經組態以在該資料之大小低於一臨限值時使用該命令介面來發送資料以儲存在該內部儲存器中。
- 如請求項49之方法,其中該主機裝置經組態以在該資料之該大小等於或高於該臨限值時使用該資料介面來發送資料以儲存在該內部儲存器中。
- 如請求項48至50中任一項之方法,其中該PIM子系統為一多列系統,且其中該系統經組態以經由該命令介面至少部分平行地將資料發送至該多列系統之所有列。
- 如請求項51之方法,其中該主機裝置經組態以經由該資料介面串列地將資料發送至該多列系統之該等列。
- 一或多種非暫時性電腦儲存媒體,該一或多種非暫時性電腦儲存媒體編碼有電腦程式指令,該等電腦程式指令在由一或多個電腦執行時使該一或多個電腦執行包含以下之操作:經由一命令介面自一主機裝置接收資料以儲存在包含一或多個記憶體陣列之一記憶體中處理(PIM)子系統之一或多個積體計算元件之內部儲存器中;及將該資料儲存在該內部儲存器中,其中內部儲存器在該PIM子系統執行指令以對儲存在該一或多個記憶體陣列中之資料進行操作期間係能夠存取的。
- 如請求項53之媒體,其中該主機裝置經組態以在該資料之大小低於一臨限值時使用該命令介面來發送資料以儲存在該內部儲存器中。
- 如請求項54之媒體,其中該主機裝置經組態以在該資料之該大小等於或高於該臨限值時使用該資料介面來發送資料以儲存在該內部儲存器中。
- 如請求項53至55中任一項之媒體,其中該PIM子系統為一多列系統,且其中該系統經組態以經由該命令介面至少部分平行地將資料發送至該多列系統之所有列。
- 如請求項56之媒體,其中該主機裝置經組態以經由該資料介面串列地將資料發送至該多列系統之該等列。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IN202441025905 | 2024-03-29 | ||
| IN202441025905 | 2024-03-29 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW202540836A true TW202540836A (zh) | 2025-10-16 |
Family
ID=95519051
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW114112439A TW202540836A (zh) | 2024-03-29 | 2025-03-31 | 減少記憶體中處理操作中之延時 |
Country Status (2)
| Country | Link |
|---|---|
| TW (1) | TW202540836A (zh) |
| WO (1) | WO2025208038A1 (zh) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE102021121105A1 (de) * | 2020-09-28 | 2022-03-31 | Samsung Electronics Co., Ltd. | Intelligente ablagespeichervorrichtung |
| KR20220127601A (ko) * | 2021-03-11 | 2022-09-20 | 삼성전자주식회사 | 인터페이스를 이용하여 내부 프로세싱을 수행하는 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 |
| US20240070801A1 (en) * | 2022-08-31 | 2024-02-29 | Micron Technology, Inc. | Processing-in-memory system with deep learning accelerator for artificial intelligence |
-
2025
- 2025-03-28 WO PCT/US2025/022032 patent/WO2025208038A1/en active Pending
- 2025-03-31 TW TW114112439A patent/TW202540836A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025208038A1 (en) | 2025-10-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3612991B1 (en) | Power-efficient deep neural network module configured for executing a layer descriptor list | |
| US9129674B2 (en) | Hybrid memory device | |
| JP2019036298A (ja) | 知能型高帯域幅メモリシステム及びそのための論理ダイ | |
| US20130194286A1 (en) | Graphics processing unit buffer management | |
| TW202134861A (zh) | 交錯記憶體請求以加速記憶體存取 | |
| CN112214443B (zh) | 设置于图形处理器中的二次卸载装置和方法 | |
| JP7096213B2 (ja) | 人工知能チップに適用される算出方法および人工知能チップ | |
| US11494237B2 (en) | Managing workloads of a deep neural network processor | |
| US10877509B2 (en) | Communicating signals between divided and undivided clock domains | |
| CN114008589A (zh) | 用于在顺序处理器上进行多次执行的动态代码加载 | |
| TW202107408A (zh) | 波槽管理之方法及裝置 | |
| CN114722259B (zh) | 数据处理系统、方法和装置 | |
| WO2025188766A1 (en) | Collaborative dvfs control for a processing-in-memory architecture of a heterogeneous computing system | |
| KR102549070B1 (ko) | 휘발성 메모리에 대한 극성 기반 데이터 트랜스퍼 기능 | |
| TW202540836A (zh) | 減少記憶體中處理操作中之延時 | |
| US20210073033A1 (en) | Memory management using coherent accelerator functionality | |
| US12045193B2 (en) | Dynamic processing memory | |
| US10620958B1 (en) | Crossbar between clients and a cache | |
| WO2026019459A1 (en) | Interleaving commands and data writes to a processing-in-memory architecture to optimize execution of in-memory computations | |
| US20250307039A1 (en) | Optimized gpu kernel application management | |
| WO2025174940A1 (en) | Multi-batch computations in a processing-in-memory architecture of a memory circuit | |
| EP4666169A1 (en) | Memory access scheduling for parallel computations using a processing-in-memory architecture | |
| WO2026035679A1 (en) | Exploiting input and output sparsity for in-memory machine-learning computations | |
| TW202528931A (zh) | 用於記憶體有界計算工作負載之記憶體中處理架構 | |
| TW202542832A (zh) | 用於積體電路上記憶體異動之最佳化執行的硬體合併單元 |