TW201947392A - 子向量數值之加載及複製之系統及方法 - Google Patents
子向量數值之加載及複製之系統及方法 Download PDFInfo
- Publication number
- TW201947392A TW201947392A TW108115783A TW108115783A TW201947392A TW 201947392 A TW201947392 A TW 201947392A TW 108115783 A TW108115783 A TW 108115783A TW 108115783 A TW108115783 A TW 108115783A TW 201947392 A TW201947392 A TW 201947392A
- Authority
- TW
- Taiwan
- Prior art keywords
- vector
- value
- register
- sub
- processor
- Prior art date
Links
- 239000013598 vector Substances 0.000 title claims abstract description 415
- 238000000034 method Methods 0.000 title claims description 27
- 230000010076 replication Effects 0.000 title description 3
- 238000001914 filtration Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8092—Array of vector units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本發明揭示一種處理器,其包括經組態以回應於一專用加載指令而加載資料的一向量暫存器。該處理器亦包括經組態以複製來自該向量暫存器之一所選擇子向量數值的電路。
Description
本發明大體上係關於處理器,且更特定言之係關於加載及複製資料以用於向量處理。
技術的進步已導致更強大的計算裝置。舉例而言,諸如膝上型電腦及桌上型電腦及伺服器之計算裝置以及諸如攜帶型無線電話之無線計算裝置具有改良之計算能力並能夠執行日益複雜之操作。增加之計算能力亦增強了各種其他應用中的裝置能力。舉例而言,載具可包括實現全球定位系統操作或其他位置操作、自我驅動操作、交互式通信及娛樂操作等的處理裝置。其他實例包括家用電氣設備、安全性攝影機、計量裝備等,其亦合併計算裝置以實現增強之功能性,諸如物聯網(IoT)裝置之間的通信。
計算裝置可包括一或多個數位信號處理器(DSP)、影像處理器或執行向量處理(包括執行共同操作(例如乘法運算)之多個例項以並行處理向量資料之多個元素)的其他處理裝置。舉例而言,向量可包括多個子向量數值(例如向量內之個別元素),諸如32個四位元組數值。在說明性乘法運算中,對於向量之每一四位元組數值,第一位元組乘以第一一位元組數值,第二位元組乘以第二一位元組數值,第三位元組乘以第三一位元組數值,且第四位元組乘以第四一位元組數值。四個乘積相加在一起且所得總和被添加至目的地向量暫存器中之對應四位元組數值。
為使得所得128個乘法之全部能夠被同時執行,四個一位元組數值中之每一者係自純量暫存器讀取且自純量暫存器複製(例如,四個一位元組數值之多個複本係在大體上同一時間輸出,在本文中亦被稱作「展開(splat)」或「廣播」)至向量乘法電路之輸入。然而,加載四個一位元組數值至純量暫存器中可歸因於純量暫存器經由涉及多個資料傳遞(例如自記憶體加載四位元組數值至第二階(L2)快取,自L2快取加載至第一階(L1)快取,並自L1快取加載至暫存器檔案中之純量暫存器)之習知處理器操作加載而引起處理瓶頸。
在一特定態樣中,處理器包括經組態以回應於專用加載指令而加載資料的向量暫存器。該處理器亦包括經組態以複製來自該向量暫存器之一所選擇子向量數值的電路。
在另一態樣中,一種操作處理器之方法包括回應於專用加載指令加載一向量暫存器及複製來自該向量暫存器之所選擇子向量數值。
在另一態樣中,一種設備包括用於儲存回應於專用加載指令而加載之資料的構件。該設備亦包括用於複製來自用於儲存資料之該構件之所選擇子向量數值的構件。
藉由所揭示態樣中之至少一者提供的一個特定優勢係相較於加載數值至通用暫存器檔案之純量暫存器中並複製來自純量暫存器之數值的處理器,當藉由使用專用加載指令加載向量暫存器及複製來自向量暫存器之子向量數值執行向量操作時增加之處理器輸送量。舉例而言,將數值自L2快取加載至通用暫存器檔案中可包括相較於使用單一傳遞將數值自L2快取加載至向量暫存器中導致較長延遲及減小之輸送量的多個資料傳遞(例如自L2快取至L1快取,及自L1快取至純量暫存器)。另外或替代地,相較於執行獨立加載操作以加載供複製至暫存器檔案之純量暫存器中的每一數值,處理器輸送量可藉由使用單一加載指令加載供複製至向量暫存器中的多個數值而增加。在檢閱整個申請案之後,本發明之其他態樣、優勢及特徵將變得顯而易見,該整個申請案包括以下章節:圖式簡單說明、實施方式及申請專利範圍。
優先權之主張
本專利申請案主張2018年5月16日申請之名為「SYSTEM AND METHOD OF LOADING AND REPLICATION OF SUB-VECTOR VALUES」的美國非臨時專利申請案第15/981,203號之優先權,該非臨時專利申請案讓與給本受讓人且特此明確地以全文引用之方式併入本文中。
下文參考圖式描述本發明之特定態樣。在描述中,共同特徵由共同參考數字指定。另外,應瞭解某些序數術語(例如「第一」或「第二」)可為了易於參考而提供且不必暗示實體特性或定序。因此,如本文所使用,用以修改諸如結構、組件、操作等之元件之序數術語(例如,「第一」、「第二」、「第三」等)未必指示元件關於另一元件之優先權或次序,而是將元件與具有相同名稱之另一元件區別開(除非使用序數術語)。另外,如本文所使用不定冠詞(「一」(“a”及“an”))可指示「一或多個」而非「一個」。另外,「基於」一條件或事件執行之操作亦可基於未明確列舉之一個或多個其他條件或事件而執行。
圖1描繪一處理器系統100,其包括經組態以回應於專用加載指令170而加載資料的向量暫存器172及經組態以實現來自向量暫存器172之所選擇子向量數值之複製的電路,如下文進一步描述。舉例而言,向量暫存器172可包括對應於多個像素的資料,諸如包括用於32個像素中之每一者的四位元組數值的128位元組向量。四位元組數值中之每一者形成可經選擇用於複製(例如產生多個複本)的子向量數值。所選擇子向量數值之每一複本可在向量操作中使用,如在下文更詳細地描述。
處理器系統100包括經耦接至處理器101之記憶體102。處理器101包括一包括L2快取104及L1快取106之處理器記憶體系統。純量組件包括一或多個執行單元(諸如代表性執行單元116),及通用暫存器檔案之一或多個純量暫存器(諸如代表性純量暫存器126)。向量組件包括耦接至複製電路176之向量暫存器172、向量暫存器檔案173及向量乘法累加(MAC)電路178。向量暫存器172在向量暫存器檔案173之外部(例如在外部)。向量暫存器檔案173包括可經由向量暫存器檔案173之一或多個埠存取的多個向量暫存器,說明為代表性第二向量暫存器174及第三向量暫存器180。儘管兩個向量暫存器經說明於向量暫存器檔案173中,但在其他實施中,向量暫存器檔案173包括多於兩個向量暫存器。
執行單元116經組態以執行專用加載指令170以起始一「橫向(broadside)」加載操作171,該「橫向」加載操作諸如經由將L2快取104耦接至向量暫存器172的匯流排或信號線之集合自L2快取104加載純量元素之向量118至向量暫存器172。專用加載指令170使得並行加載向量118之多個純量數值(例如32個四位元組字組)至向量暫存器172中。儘管本文中為了說明使用由32個四位元組字組形成的128位元組向量,但在其他實施中,可使用其他向量大小及字組大小。與用以向向量暫存器172加載來自L2快取104之資料的橫向加載操作171對比,用以加載資料至純量暫存器126中的習知加載操作將傳遞來自L2快取104之資料至L1快取106且接著加載來自L1快取106之單一32位元字組至純量暫存器126。與至純量暫存器126之習知加載操作相比,橫向加載操作171因此加載更大數量資料且在不使用L1快取作為中間階段情況下傳遞資料至向量暫存器172。
向量暫存器172經組態以實現純量元素之向量118之所選擇子向量數值的複製。在一實例中,向量暫存器172中之純量元素的向量118之每一子向量單元(例如四位元組字組)耦接至複製電路176並可個別地選擇為至複製電路176之輸入數值(例如耦接至複製電路176中的多工器之可選擇輸入)。當藉由複製電路176選擇時,所選擇四位元組子向量單元經複製(例如四位元組子向量數值之多個複本係在大體上同一時間產生)並在複製電路176之32個輸出中之每一者處提供。在特定實施中,複製電路176包括經組態以選擇儲存於向量暫存器172中的子向量數值中之任一者的多工器。多工器具有32之散出且經組態以自向量暫存器172中之32個可用四位元組子向量數值中選擇單一四位元組輸入數值並輸出所選擇四位元組子向量數值之32個複本。所選擇四位元組子向量數值的32個複本經提供至向量乘法累加電路178之輸入。在一些實施中,與向量暫存器檔案173中之不具有複製或「展開」所選擇資料之能力的向量暫存器(例如向量暫存器174及向量暫存器180)對比,複製電路176專門與(例如實施為)向量暫存器172 (之部分)一起使用。
向量乘法累加(MAC)電路178包括經組態以執行一向量操作的向量操作電路,該向量操作使用自複製電路176接收到之經複製子向量數值並使用第二向量暫存器174中之子向量數值。向量乘法累加電路178可組態以儲存向量操作之結果至第三向量暫存器180中。如所說明,來自複製電路176之經複製輸出經提供至向量乘法累加電路178之輸入。來自第二向量暫存器174之向量資料120亦提供至向量乘法累加電路178之輸入。來自複製電路176之每一四位元組字組與來自第二向量暫存器174之對應四位元組字組的逐位元組乘法係在向量乘法累加電路178處執行。每一逐位元組乘法的結果相加在一起以產生每一四位元組字組的結果,且每一四位元組字組之結果與第三向量暫存器180中之經累加向量資料182累加。如本文所使用,當第一數值與第二數值組合時,第一數值係諸如藉由將第一數值與第二數值相加而「與第二數值累加」。在一些實施中,第二數值為表示待與第二數值累加的多個數值之累計總計的「經累加資料」,諸如用以表示在濾波操作期間被判定並具有經計算為多個輸入像素值之加權和的數值的輸出像素。
複製電路176之多個例項耦接至向量暫存器172以實現自向量暫存器172選擇多個子向量數值並複製所選擇子向量數值以供輸入至向量操作。舉例而言,處理器101包括複製電路176之四個例項。複製電路176之每一例項經組態以自向量暫存器172選擇不同四位元組字組,複製所選擇四位元組字組,並提供經複製四位元組字組至向量乘法累加電路178。因此,四個向量乘法累加操作可回應於單一向量指令184 (諸如向量乘法累加(MAC)指令)使用來自向量暫存器172之四個經選擇四位元組字組對向量資料120並行執行。向量指令184為引起處理器101自向量暫存器172選擇一或多個子向量數值,複製該一或多個子向量數值至向量乘法累加電路178之輸入並使用經複製一或多個子向量數值在向量乘法累加電路178處執行向量操作的專用指令。
舉例而言,向量MAC指令184可包括指示至向量暫存器172中之偏移的一參數,且複製電路176之每一例項可基於該參數選擇各別四位元組字組用於複製。舉例而言,參數可指定指示向量暫存器172中之前8個四位元組字組中之一者的數值。參數可用於在複製電路176之第一例項的多工器之控制輸入處產生選擇信號以引起多工器選擇所指示四位元組字組。複製電路176可包括經組態以添加偏移至參數以產生指示向量暫存器172中之8個四位元組字組的下一群組之四位元組字組中之一者的第二數值、指示向量暫存器172中之8個四位元組字組的第三群組之四位元組字組中之一者的第三數值,及指示向量暫存器172中之8個四位元組字組的第四群組之四位元組字組中之一者的第四數值的偏移產生電路。第二數值可用於在複製電路176之第二例項的第二多工器之控制輸入處產生第二選擇信號以引起第二多工器選擇第二所指示四位元組字組。第三數值可用於在複製電路176之第三例項之第三多工器的控制輸入處產生第三選擇信號以引起第三多工器選擇第三所指示四位元組字組。第四數值可用於在複製電路176之第四例項之第四多工器的控制輸入處產生第四選擇信號以引起第四多工器選擇第四所指示四位元組字組。在其中參數指示8個四位元組字組之第一群組中的所選擇四位元組字組之起始位元組的說明性實例中,偏移產生電路將32位元組的倍數應用於參數之數值以選擇剩餘四位元組字組用於複製(例如選擇在位元組8、位元組40、位元組72及位元組104處起始之字組)。
替代地,向量指令184可能夠經由間接方式存取向量暫存器172。舉例而言,向量指令184可包括識別暫存器(例如純量暫存器126)之參數,且儲存於所識別暫存器中的數值可用作至向量暫存器172中之偏移。舉例而言,參數可識別儲存指示所選擇子向量數值之純量數值的純量暫存器。額外偏移可藉由添加32位元組的倍數(如上文所描述)至儲存於所識別暫存器中的數值而計算。因此,處理器101包括經組態以存取來自純量暫存器126之純量數值(例如偏移)的電路,其中純量數值指示向量暫存器172中之所選擇子向量元素。
在操作期間,處理器101執行指令以執行向量操作,諸如將濾波操作應用於像素資料集合。舉例而言,該像素資料集合可表示由攝影機擷取並加載至記憶體102中的影像之像素,且濾波操作可包括使用邊緣偵測濾波器處理像素資料以識別像素資料中之邊緣。在另一說明性實例中,像素資料對應於神經網路之卷積層中的元素且未必表示影像資料。表示濾波器之資料可作為向量資料120經由向量加載操作自L2快取104加載至向量暫存器檔案173中之向量暫存器174中。處理器101執行專用加載指令170以加載待濾波之資料至向量暫存器172中。舉例而言,像素資料之部分(例如第一部分)經由橫向加載操作171自L2快取104加載至向量暫存器172。
在加載像素資料之第一部分至向量暫存器172中之後,處理器101執行向量乘法累加指令184以將向量118之一或多個經複製部分與向量資料120之部分相乘。舉例而言,複製電路176之第一例項選擇並複製向量118之第一四位元組字組且輸出該第一四位元組字組之複本至對向量乘法累加電路178之32個輸入中之每一者中。向量暫存器174亦將來自向量資料120之32個四位元組數值(例如32個濾波權重)提供至向量乘法累加電路178之輸入。向量乘法累加電路178將來自向量118之第一四位元組字組的每一複本與來自向量資料120之各別四位元組字組並行相乘以產生32個乘法結果。32個乘法結果中之每一者與向量暫存器180中之對應數值累加以產生經累加向量資料182中之32個經更新數值。
與複製電路176的第一例項選擇及複製向量118之第一四位元組字組並行地,複製電路176之第二例項選擇及複製向量118之第二四位元組字組,複製電路176之第三例項選擇及複製向量118之第三四位元組字組,且複製電路176之第四例項選擇及複製向量118之第四四位元組字組。如本文所使用,「並行」執行的兩個或大於兩個操作係在大體上同一時間(諸如在同一時脈循環期間或在時間上彼此至少部分重疊)執行,但未必恰好在彼此相同的時間起始(或結束)。向量乘法累加電路178藉由將來自向量資料120之32個四位元組數值分別與向量118之第二四位元組字組、向量118之第三四位元組字組及向量118之第四四位元組字組相乘而產生32個四位元組數值之第二、第三及第四集合。32個四位元組數值之第二、第三及第四集合係與經累加向量資料182中之對應數值累加。
向量乘法累加指令184可包括在一迴路中,該迴路在每一迴路迭代期間更新選自向量暫存器172的四位元組字組之位置。當向量暫存器172中之所有數值已被處理時,下一橫向加載操作171可經執行以加載下一批次像素資料至向量暫存器172中以繼續處理,諸如參看圖2更詳細地描述。經累加向量資料182中之所得數值可對應於將由向量暫存器174中之像素權重表示的濾波應用(例如卷積)於像素資料所得的結果。儘管上述實例描述其中向量暫存器172、複製電路176及向量乘法累加電路178操作以濾波像素資料的使用情況,但在其他實施中,向量暫存器172、複製電路176及向量乘法累加電路178根據其他使用情況操作,諸如執行矩陣乘法,作為非限制性實例。
耦接至複製電路176之向量暫存器172使得能夠選擇及複製子向量數值以用於輸入至向量乘法累加電路178中並規避在子向量數值實際上加載至純量暫存器126中並自純量暫存器126複製至向量乘法累加電路178的情況下將引發的延遲(例如避免歸因於傳遞資料至L1快取中及自L1快取傳遞資料至通用暫存器檔案中的延遲)。另外,橫向加載操作171使得相對大量資料能夠自L2快取104傳遞至向量暫存器172,從而減小藉由處理器101對於待自L2快取104加載的每一資料單元執行的加載指令之平均數。另外,因為實施具有額外埠之向量暫存器檔案173相對昂貴且區域密集,所以向量暫存器檔案173可受埠限制。在其中向量暫存器檔案173受埠限制之實施中加載純量元素之向量118至向量暫存器檔案173內之向量暫存器中可在向量暫存器檔案173之所有可用埠用於其他操作時引發與傳遞資料至向量暫存器檔案173中相關聯的延遲及資源衝突。結果,相較於在其中向量暫存器檔案173受埠限制的實施中加載純量元素之向量118至向量暫存器檔案173內之向量暫存器中,加載純量元素之向量118至在向量暫存器檔案173外部且並未經由向量暫存器檔案173之埠加載的向量暫存器172中減少延遲及資源衝突。
儘管圖1出於解釋之目的描繪處理器101中之向量暫存器172之特定說明性實施,但應理解,在其他實施中,向量暫存器172可結合其他組態使用。舉例而言,儘管複製電路176經說明為耦接至向量暫存器172,但在其他實施中,複製電路176併入於向量暫存器172內。儘管複製電路176之四個例項經說明並行自向量暫存器172選擇及複製四個數值,但在其他實施中,複製電路176之一個、兩個、三個或多於四個例項經組態以自向量暫存器172選擇及複製數值。另外,向量暫存器172可經實施具有任何大小且不限於此處提供的特定實例。詳言之,向量暫存器172之大小可正交於複製的量,且在不同實施中不同大小資料經加載至向量暫存器172中且不同數目個數值自向量暫存器172複製。
儘管複製電路176經說明為將經複製輸出提供至向量乘法累加電路178之輸入,但在其他實施中,複製電路176將經複製輸出提供至另一向量處理電路,諸如向量相加電路、向量乘法器電路、向量移位器電路、任何其他向量處理電路,或其任何組合。類似地,儘管向量指令184經描述為向量乘法累加指令184,但在其他實施中,向量指令184對應於另一類型之向量指令,諸如向量相加指令、向量乘法指令、向量移位指令、任何其他向量指令,或其任何組合。
儘管處理器101係結合包括L1快取106、L2快取104及記憶體102之記憶體系統而說明,但在其他實施中,處理器101與略去L1快取106、L2快取104或記憶體102中之一或多者、添加一或多個額外記憶體裝置(例如L3記憶體)或其任何組合的記憶體系統結合使用。儘管處理器101經說明為包括單一執行單元116,但在其他實施中,處理器包括多個執行單元並經組態以根據超長指令字組(VLIW)組態、超純量組態、一個或多個其他組態或其任何組合操作。
圖2描繪使用圖1之向量暫存器172的操作200之特定實施。資料之三個向量經說明為儲存於記憶體102中之連續位置中,該等向量包括具有元素A、B、C及D之第一向量,具有元素E、F、G及H之第二向量,及具有元素I、J、K及L之第三向量。元素A至L中之每一者對應於多位元組數值,諸如32位元組數值。在說明性實例中,元素A至L中之每一者對應於諸如在與卷積層相關聯的「麵包片(slices-of-bread)」資料配置中的神經網路之卷積層的數值(例如像素)。舉例而言,經組態以對於輸入影像資料執行機器視覺應用的神經網路可包括具有麵包片資料配置的一或多個卷積層。
第一階段202說明經由執行向量記憶體「vmem」指令(專用加載指令170)以橫向加載第一向量至向量暫存器(「Z緩衝器」)172中而加載第一向量(具有元素A、B、C及D)。指標203指示待執行的卷積濾波操作之位置。加載至向量暫存器172中之第一向量對應於至記憶體102中的「窗口」。在加載至向量暫存器172中後,第一向量之子向量數值被選擇、被複製並用於卷積濾波操作中,如下文所描述。
第二階段212說明經由指令(諸如圖1之向量指令184)之執行處理元素A、B、C及D。如所說明,指令對應於經執行以對第一向量操作的向量減少乘法Z緩衝器指令(「vrmpyz」)。卷積濾波操作之迴路參數(例如儲存在純量暫存器126中)指示向量暫存器172中之所選擇子向量數值的位置,諸如在元素「D」之第一4位元組字組處起始,並隨著每一迴路迭代行進至元素「D」之下一4位元組字組。並行地,32位元組偏移的倍數經應用於所選擇子向量的位置以判定第二子向量數值、第三子向量數值及第四子向量數值之位置。
舉例而言,在第一迴路迭代中,A之第一四位元組數值、B之第一四位元組數值、C之第一四位元組數值及D之第一四位元組數值係在向量暫存器172處選擇、複製,並提供至對圖1之向量乘法累加電路178的輸入。在第二迴路迭代中,A之第二四位元組數值、B之第二四位元組數值、C之第二四位元組數值及D之第二四位元組數值經選擇、複製,並提供至對圖1之向量乘法累加電路178的輸入。在每一迴路迭代處向量乘法累加電路178將來自向量暫存器172的經複製選擇之數值與表示卷積濾波之權重的自向量暫存器174擷取或已加載至記憶體中的數值(例如向量資料120)相乘。乘法之結果經累加於向量暫存器180中。
亦在第二階段212中,向量暫存器172之下一部分經由執行專用加載指令170以橫向加載元素E、F、G及H至向量暫存器172中而以記憶體102之下一「窗口」加載。
在第三階段222中,指標203前進一個元素(亦即,步幅=1)且元素B、C、D及E以類似於關於第二階段212中之元素A、B、C及D描述的方式經由執行向量減少乘法Z緩衝器指令(「vrmpyz」)而經處理。
處理繼續每一後續階段,使指標203前進一個元素且對四個元素之對應移位集合執行向量減少乘法Z緩衝器指令(「vrmpyz」)。
在第六階段232處,卷積濾波操作已前進至元素I,且記憶體102之下一「窗口」將在開始對元素I操作的下一階段之前複製至向量暫存器172。在一些實施中,元素I、J、K及L覆寫向量暫存器172中之元素A、B、C及D,且向量暫存器172經操作為循環緩衝器。
藉由使用橫向加載操作以運用記憶體102之連續「窗口」加載向量暫存器172及展開來自向量暫存器172之每一元素的所選擇數值以乘以卷積濾波權重之對應集合,卷積濾波處理可以較高速度並運用經由通用暫存器檔案的減小數目之資料傳送來執行。結果,相較於不包括向量暫存器172之處理器,諸如基於神經網路之影像識別的操作可更有效地執行。
儘管卷積濾波操作經描述為將來自向量暫存器172之每一所選擇子向量數值乘以權重之共同集合,但在其他實施中,可使用權重之多個集合。作為說明性實例,第二階段212可包括來自A之子向量數值乘以權重之第一集合,且並行地,來自B之子向量數值乘以權重之第二集合,來自C之子向量數值乘以權重之第三集合,且來自D之子向量數值乘以權重之第四集合。儘管圖2之實例說明指標203每階段前進一個元素(步幅=1),但在其他實施中,指標203每階段前進兩個元素、每階段前進三個元素,或更多元素(亦即,步幅具有任何正整數數值)。雖然圖2描繪應用與神經網路之卷積層相關聯的卷積濾波的具有增強效率之實施,但在其他實施中,向量暫存器172用以為其他應用(諸如矩陣乘法)提供增強效率。
圖3描繪操作處理器(諸如圖1之處理器101)之方法300的實例。方法300包括在302處回應於專用加載指令加載一向量暫存器。在說明性實例中,加載向量暫存器包括並行地將多個純量數值加載至向量暫存器中。舉例而言,圖1之處理器101執行專用加載指令170以執行橫向加載操作171以將純量元素之向量118加載至向量暫存器172中。
方法300包括在304處複製來自向量暫存器之所選擇子向量數值。舉例而言,處理器101執行向量乘法累加指令184以引起複製電路176複製來自向量暫存器172之所選擇子向量數值並引起向量乘法累加電路178使用經複製子向量數值作為輸入而操作。在一些實施中,所選擇子向量數值經由指令之參數(諸如結合向量乘法累加指令184提供且指示所選擇子向量數值在向量暫存器中之位置的位元組偏移參數)識別。在其他實施中,方法300包括自純量暫存器存取指示所選擇子向量數值的純量數值。舉例而言,純量暫存器126可儲存指示向量暫存器172中之位置(例如位元組偏移值)的迴路變數之數值,且向量乘法累加指令184可包括識別儲存所選擇子向量數值之位置的純量暫存器126的參數。
在一些實施中,方法300包括使用經複製子向量數值及使用第二向量暫存器中之子向量數值執行向量操作。舉例而言,向量乘法累加指令184經執行以引起向量乘法累加電路178執行向量暫存器174中之數值與來自複製電路176之經複製子向量數值的向量乘法。向量操作之結果經儲存至第三向量暫存器(諸如向量暫存器180)中。
在一些實施中,方法300包括與複製所選擇子向量數值並行地複製來自向量暫存器之第二子向量數值。在說明性實例中,複製電路176選擇來自向量暫存器172之4個四位元組數值且輸出四位元組數值中之每一者的32個例項。在一些實施中,第二子向量數值諸如經由指令參數顯式地選擇。在其他實施中,第二子向量數值諸如藉由複製電路將偏移(例如32位元組偏移)應用於所選擇子向量數值在向量暫存器中之位置以選擇第二子向量數值在向量暫存器中的位置而隱式地選擇。作為說明性實例,所選擇子向量數值之位置對應於卷積濾波操作之迴路參數,諸如參看圖2所描述,且偏移對應於32位元組偏移。
在一些實施中,方法300亦包括與執行向量操作並行地使用第二複製子向量數值執行第二向量操作。如在說明性實例中,向量乘法累加電路178使用向量暫存器174之數值及來自向量暫存器172之經複製第一4位元組字組執行第一組乘法累加操作同時亦使用向量暫存器174之數值及來自向量暫存器172之經複製第二4位元組字組執行第二組乘法累加操作。
藉由回應於專用加載指令加載向量暫存器及複製來自向量暫存器之所選擇子向量數值,方法300使得能夠加載數值至向量暫存器中,其略過經由純量暫存器檔案加載該等數值。舉例而言,向量118係自L2快取104加載至向量暫存器172以用於複製且不傳遞至L1快取及純量暫存器126以用於複製。因此,避免與加載資料至純量暫存器檔案相關聯的潛在效能瓶頸。另外,多個數值可回應於專用加載指令而加載至向量暫存器中,諸如在圖1之橫向加載操作171的單一例項期間加載的32個四位元組數值。相較於每加載指令加載單一數值的處理器,回應於單一加載指令加載多個數值減少待執行的加載操作之數目。處理器效能因此由於避免處理器瓶頸、減小被執行的加載指令之數目或其組合而得以改良。
參考圖4,包括包括圖1之向量緩衝器172的處理器410之電子裝置的特定說明性實施之方塊圖經描繪並通常指定為400。作為說明性實例,電子裝置400可對應於行動裝置(例如蜂巢式電話)。在其他實施中,電子裝置400可對應於電腦(例如,伺服器、膝上型電腦、平板電腦或桌上型電腦)、可穿戴電子裝置(例如個人攝影機、頭戴式顯示器或手錶)、載具控制系統或控制台、家用電器、機上盒、娛樂單元、導航裝置、電視、監視器、調諧器、無線電(例如,衛星無線電)、音樂播放器(例如數位音樂播放器或攜帶型音樂播放器)、視訊播放器(例如數位視訊播放器,諸如數位視訊光碟(DVD)播放器或攜帶型數位視訊播放器)、機器人、醫療裝置、另一電子裝置,或其組合。
裝置400包括耦接至記憶體432之處理器410,諸如數位信號處理器(DSP)。處理器410包括向量緩衝器172並經組態以執行圖1之專用加載指令170以執行至向量暫存器172中的橫向加載。處理器410亦經組態以執行圖1之向量乘法累加指令184,其包括複製向量暫存器172中之一或多個子向量數值。在一些實施中,處理器410對應於圖1之處理器101。
該記憶體432可耦接至處理器410或整合於該處理器內。記憶體432可包括隨機存取記憶體(RAM)、磁電阻隨機存取記憶體(MRAM)、快閃記憶體、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、抹除式可程式化唯讀記憶體(EPROM)、電抹除式可程式化唯讀記憶體(EEPROM)、一或多個暫存器、硬碟、可移除式磁碟或緊密光碟唯讀記憶體(CD-ROM)、另一儲存裝置或其組合。記憶體432儲存可由處理器410執行以執行操作的一或多個指令,諸如專用加載指令170及向量乘法累加指令184。
圖4亦展示顯示控制器426,其耦接至數位信號處理器410及顯示器428。編碼器/解碼器(編解碼器)434亦可耦接至數位信號處理器410。揚聲器436及麥克風438可耦接至編解碼器434。
圖4亦指示無線控制器440可經耦接至處理器410及天線442。在一特定實施中,處理器410、顯示控制器426、記憶體432、編解碼器434及無線控制器440包括於系統級封裝或系統單晶片裝置422中。在一特定實施中,輸入裝置430及電力供應器444耦接至系統單晶片裝置422。此外,在一特定實施中,如圖4中所說明,顯示器428、輸入裝置430、揚聲器436、麥克風438、天線442及電力供應器444係在系統單晶片裝置422外部。然而,顯示器428、輸入裝置430、揚聲器436、麥克風438、天線442及電力供應器444中之每一者可耦接至系統單晶片裝置422之組件,諸如介面或控制器。
前述所揭示裝置及功能性(例如,如參考圖1至圖4中之任何一或多者所描述)可經設計並組態至儲存於電腦可讀媒體上之電腦檔案(例如RTL、GDSII、GERBER等)中。一些或所有此等檔案可提供至基於此等檔案製造裝置之製造操作者。所得產品包括接著被切割成半導體晶粒且封裝成半導體晶片的半導體晶圓。接著在上文所描述之裝置中使用晶片。
結合所揭示實例,非暫時性電腦可讀媒體(例如記憶體102或記憶體432)儲存可由處理器執行以引起處理器回應於專用加載指令而加載向量暫存器(諸如向量暫存器172)並複製來自向量暫存器之所選擇子向量數值的指令(例如專用加載指令170及向量乘法累加指令184)。舉例而言,在一特定態樣中,記憶體102儲存指令以引起處理器101執行圖3之方法300。
結合所揭示實例,設備包括用於儲存回應於專用加載指令加載之資料的構件。舉例而言,用於儲存資料的該構件可對應於圖1或圖4之向量暫存器172、用以回應於專用加載指令儲存資料的一或多個其他電路或裝置,或其任何組合。
該設備亦包括用於複製來自用於儲存資料之該構件之所選擇子向量數值的構件。舉例而言,用於複製的該構件可對應於圖1之複製電路176、用以複製所選擇子向量數值的一或多個其他電路或裝置,或其任何組合。
在一些實施中,設備亦包括用於儲存資料的第二構件(例如圖1之向量暫存器174)、用於儲存資料的第三構件(例如圖1之向量暫存器180),及用於使用經複製子向量數值及使用用於儲存資料之第二構件中的子向量數值而執行向量操作並用於儲存向量操作之結果至用於儲存資料的第三構件中的構件(例如圖1之向量乘法累加電路178)。
熟習此項技術者將進一步瞭解結合本文所揭示之實施例描述的各種說明性邏輯區塊、組態、模組、電路及演算法步驟可實施為電子硬體、電腦軟體或兩者的組合。上文大體在功能性方面描述各種說明性組件、區塊、組態、模組、電路及步驟。此功能性實施為硬體抑或軟體取決於特定應用及強加於整個系統之設計約束而定。熟習此項技術者可針對每一特定應用而以變化之方式實施所描述之功能性,但不應將此等實施決策解譯為致使脫離本發明之範疇。
結合本文所揭示之實施例描述的方法或演算法之部分可直接體現於硬體、藉由處理器執行的軟體模組或兩者之組合中。軟體模組可駐留於隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、可程式化唯讀記憶體(PROM)、抹除式可程式化唯讀記憶體(EPROM)、電子抹除式可程式化唯讀記憶體(EEPROM)、暫存器、硬碟、可移除式磁碟、緊密光碟唯讀記憶體(CD-ROM)或此項技術中已知的任何其他形式的儲存媒體中。例示性非暫時性(例如有形的)儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊並寫入資訊至儲存媒體。在替代方案中,儲存媒體可與處理器成一體式。處理器及儲存媒體可駐留於特殊應用積體電路(ASIC)中。ASIC可駐留於計算裝置或使用者終端機中。在替代方案中,處理器及儲存媒體可作為離散組件駐留於計算裝置或使用者終端機中。
提供所揭示之實施例的先前描述以使熟習此項技術者能夠製作或使用所揭示之實施例。對於熟習此項技術者而言,此等實施例之各種修改將易於顯而易見,且本文所定義之原理可在不脫離本發明之範疇的情況下應用於其他實施例。因此,本發明並非意欲限於本文中所展示之實施例,而應符合可能與如以下申請專利範圍所定義之原理及新穎特徵相一致的最廣泛範疇。
100‧‧‧處理器系統
101‧‧‧處理器
102‧‧‧記憶體
104‧‧‧L2快取
106‧‧‧L1快取
116‧‧‧執行單元
118‧‧‧純量元素之向量
120‧‧‧向量資料
126‧‧‧純量暫存器
170‧‧‧專用加載指令
171‧‧‧「橫向」加載操作
172‧‧‧向量暫存器
173‧‧‧向量暫存器檔案
174‧‧‧第二向量暫存器
176‧‧‧複製電路
178‧‧‧向量乘法累加電路
180‧‧‧第三向量暫存器
182‧‧‧經累加向量資料
184‧‧‧向量指令/向量MAC指令
200‧‧‧操作
202‧‧‧第一階段
203‧‧‧指標
212‧‧‧第二階段
222‧‧‧第三階段
232‧‧‧第六階段
300‧‧‧方法
302‧‧‧步驟
304‧‧‧步驟
400‧‧‧電子裝置
410‧‧‧處理器
422‧‧‧系統單晶片裝置
426‧‧‧顯示控制器
428‧‧‧顯示器
430‧‧‧輸入裝置
432‧‧‧記憶體
434‧‧‧編解碼器
436‧‧‧揚聲器
438‧‧‧麥克風
440‧‧‧無線控制器
442‧‧‧天線
444‧‧‧電力供應器
圖1為包括向量暫存器之處理器的特定實施之方塊圖。
圖2為使用圖1之向量暫存器的操作之特定實施的圖。
圖3為可藉由圖1之處理器執行的操作方法之特定實施之流程圖。
圖4為包括具有圖1之向量暫存器之處理器的攜帶型裝置之方塊圖。
Claims (23)
- 一種處理器,其包含: 一向量暫存器,其經組態以回應於一專用加載指令而加載資料;及 電路,其經組態以複製來自該向量暫存器之一所選擇子向量數值。
- 如請求項1之處理器,其中該電路經組態以存取來自一純量暫存器之一純量數值,該純量數值指示該所選擇子向量數值。
- 如請求項1之處理器,其中該專用加載指令經組態以使得多個純量數值並行地加載至該向量暫存器中。
- 如請求項1之處理器,其進一步包含: 一第二向量暫存器;及 向量操作電路,其經組態以使用該經複製子向量數值及使用該第二向量暫存器中之子向量數值執行一向量操作。
- 如請求項4之處理器,其進一步包含包括該第二向量暫存器之一向量暫存器檔案,且其中該向量暫存器係在該向量暫存器檔案外部。
- 如請求項4之處理器,其中該電路進一步經組態以與複製該所選擇子向量數值並行地複製來自該向量暫存器之一第二子向量數值。
- 如請求項6之處理器,其中該向量操作電路經組態以與執行該向量操作並行地執行一第二向量操作,該第二向量操作使用該第二經複製子向量數值。
- 如請求項6之處理器,其中該電路經組態以將一偏移應用於該所選擇子向量數值在該向量暫存器中的一位置以選擇該第二子向量數值在該向量暫存器中之一位置。
- 如請求項8之處理器,其中該所選擇子向量數值的該位置係藉由一卷積濾波操作之一迴路參數指示。
- 一種操作一處理器之方法,該方法包含: 回應於一專用加載指令加載一向量暫存器;及 複製來自該向量暫存器之一所選擇子向量數值。
- 如請求項10之方法,其進一步包含存取來自一純量暫存器之一純量數值,該純量數值指示該所選擇子向量數值。
- 如請求項10之方法,其中該向量暫存器之該加載包含並行地將多個純量數值加載至該向量暫存器中。
- 如請求項10之方法,其進一步包含: 使用該等經複製子向量數值及一第二向量暫存器中之子向量數值執行一向量操作;及 將該向量操作之結果儲存至一第三向量暫存器中。
- 如請求項13之方法,其進一步包含與複製該所選擇子向量數值並行地複製來自該向量暫存器之一第二子向量數值。
- 如請求項14之方法,其進一步包含與執行該向量操作並行地執行一第二向量操作,該第二向量操作使用該第二經複製子向量數值。
- 如請求項14之方法,其進一步包含將一偏移應用於該所選擇子向量數值在該向量暫存器中的一位置以選擇該第二子向量數值在該向量暫存器中之一位置。
- 如請求項16之方法,其中該所選擇子向量數值的該位置對應於一卷積濾波操作之一迴路參數。
- 一種設備,其包含: 用於儲存回應於一專用加載指令加載之資料的構件;及 用於複製來自用於儲存資料的該構件之一所選擇子向量數值的構件。
- 如請求項18之設備,其進一步包含: 用於儲存資料的第二構件;及 用於使用該等經複製子向量數值及在用於儲存資料的該第二構件中之子向量數值而執行一向量操作的構件。
- 如請求項18之設備,其中用於複製的該構件進一步經組態以與複製該所選擇子向量數值並行地複製來自用於儲存資料的該構件之一第二子向量數值。
- 一種包含指令的非暫時性電腦可讀媒體,該等指令在由一處理器執行時引起該處理器執行包含以下操作的操作: 回應於一專用加載指令加載一向量暫存器;及 複製來自該向量暫存器之一所選擇子向量數值。
- 如請求項21之非暫時性電腦可讀媒體,其中該等操作進一步包含: 使用該等經複製子向量數值及使用在一第二向量暫存器中之子向量數值執行一向量操作;及 將該向量操作之結果儲存至一第三向量暫存器中。
- 如請求項21之非暫時性電腦可讀媒體,其中該所選擇子向量數值在該向量暫存器中之一位置係藉由一卷積濾波操作之一迴路參數指示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/981,203 | 2018-05-16 | ||
US15/981,203 US11372804B2 (en) | 2018-05-16 | 2018-05-16 | System and method of loading and replication of sub-vector values |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201947392A true TW201947392A (zh) | 2019-12-16 |
TWI803634B TWI803634B (zh) | 2023-06-01 |
Family
ID=66625331
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108115783A TWI803634B (zh) | 2018-05-16 | 2019-05-07 | 子向量數值之加載及複製之處理器、操作一處理器之方法、處理設備及包含指令的非暫時性電腦可讀媒體 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11372804B2 (zh) |
EP (1) | EP3794443A1 (zh) |
CN (1) | CN112119375A (zh) |
TW (1) | TWI803634B (zh) |
WO (1) | WO2019221976A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10997116B2 (en) * | 2019-08-06 | 2021-05-04 | Microsoft Technology Licensing, Llc | Tensor-based hardware accelerator including a scalar-processing unit |
US11526305B2 (en) * | 2020-11-24 | 2022-12-13 | Arm Limited | Memory for an artificial neural network accelerator |
KR20220101518A (ko) * | 2021-01-11 | 2022-07-19 | 에스케이하이닉스 주식회사 | 곱셈-누산 회로 및 이를 포함하는 프로세싱-인-메모리 장치 |
US11853598B2 (en) * | 2021-05-10 | 2023-12-26 | Microsoft Technology Licensing, Llc | Software memory tagging for heap overflow protection |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901422B1 (en) | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US7873812B1 (en) * | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US7552316B2 (en) | 2004-07-26 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for compressing instructions to have consecutively addressed operands and for corresponding decompression in a computer system |
US7493475B2 (en) | 2006-11-15 | 2009-02-17 | Stmicroelectronics, Inc. | Instruction vector-mode processing in multi-lane processor by multiplex switch replicating instruction in one lane to select others along with updated operand address |
US8108652B1 (en) * | 2007-09-13 | 2012-01-31 | Ronald Chi-Chun Hui | Vector processing with high execution throughput |
US8255884B2 (en) * | 2008-06-06 | 2012-08-28 | International Business Machines Corporation | Optimized scalar promotion with load and splat SIMD instructions |
US8650240B2 (en) | 2009-08-17 | 2014-02-11 | International Business Machines Corporation | Complex matrix multiplication operations with data pre-conditioning in a high performance computing architecture |
US9600281B2 (en) * | 2010-07-12 | 2017-03-21 | International Business Machines Corporation | Matrix multiplication operations using pair-wise load and splat operations |
WO2013095607A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction execution unit that broadcasts data values at different levels of granularity |
WO2014142972A1 (en) | 2013-03-15 | 2014-09-18 | Intel Corporation | Methods and systems to vectorize scalar computer program loops having loop-carried dependences |
GB2519108A (en) * | 2013-10-09 | 2015-04-15 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling performance of speculative vector operations |
US9619214B2 (en) | 2014-08-13 | 2017-04-11 | International Business Machines Corporation | Compiler optimizations for vector instructions |
US9588746B2 (en) * | 2014-12-19 | 2017-03-07 | International Business Machines Corporation | Compiler method for generating instructions for vector operations on a multi-endian processor |
-
2018
- 2018-05-16 US US15/981,203 patent/US11372804B2/en active Active
-
2019
- 2019-05-07 TW TW108115783A patent/TWI803634B/zh active
- 2019-05-07 EP EP19725523.5A patent/EP3794443A1/en active Pending
- 2019-05-07 CN CN201980032456.7A patent/CN112119375A/zh active Pending
- 2019-05-07 WO PCT/US2019/031129 patent/WO2019221976A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2019221976A1 (en) | 2019-11-21 |
EP3794443A1 (en) | 2021-03-24 |
US20190354508A1 (en) | 2019-11-21 |
CN112119375A (zh) | 2020-12-22 |
US11372804B2 (en) | 2022-06-28 |
TWI803634B (zh) | 2023-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI803634B (zh) | 子向量數值之加載及複製之處理器、操作一處理器之方法、處理設備及包含指令的非暫時性電腦可讀媒體 | |
TWI601066B (zh) | 具有用於提供多模基-2x蝶形向量處理電路的可程式設計資料路徑的向量處理引擎以及相關的向量處理器、系統和方法 | |
KR101697548B1 (ko) | Fifo 로드 명령 | |
TWI507982B (zh) | 向量算術縮減 | |
EP3832500B1 (en) | Device and method for performing vector four-fundamental-rule operation | |
TW200521702A (en) | Parallel processing array | |
JP2017527886A (ja) | ベクトルレジスタファイルにおいてデータインデックス方式アキュムレータを使用するベクトルプロセッサによるスカラ演算の並列化、関連する回路、方法およびコンピュータ可読媒体 | |
US8843730B2 (en) | Executing instruction packet with multiple instructions with same destination by performing logical operation on results of instructions and storing the result to the destination | |
US9146741B2 (en) | Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media | |
JP6737869B2 (ja) | スライディングウィンドウ演算 | |
WO2016014239A1 (en) | ENFORCING LOOP-CARRIED DEPENDENCY (LCD) DURING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA | |
TWI816814B (zh) | 在以向量處理器為基礎之裝置中提供處理元件之可重組態融合的裝置、方法以及非暫時性電腦可讀媒體 | |
EP4195062A1 (en) | Method and apparatus for separable convolution filter operations on matrix multiplication arrays | |
JP6985377B2 (ja) | 連続するメモリアドレスにおけるデータ記憶 | |
US20170046168A1 (en) | Scalable single-instruction-multiple-data instructions | |
CN108027866B (zh) | 具有轮常数生成的sms4加速处理器 | |
US9336579B2 (en) | System and method of performing multi-level integration | |
US11748098B2 (en) | Adler assist instructions | |
CN113762488A (zh) | 处理器、数据处理方法、计算机设备和存储介质 |