TWI776838B - 半導體裝置 - Google Patents
半導體裝置 Download PDFInfo
- Publication number
- TWI776838B TWI776838B TW107100401A TW107100401A TWI776838B TW I776838 B TWI776838 B TW I776838B TW 107100401 A TW107100401 A TW 107100401A TW 107100401 A TW107100401 A TW 107100401A TW I776838 B TWI776838 B TW I776838B
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- data
- register
- calculation
- semiconductor device
- Prior art date
Links
Images
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/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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- 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/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Image Processing (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Mechanical Treatment Of Semiconductor (AREA)
- Bipolar Transistors (AREA)
- Noodles (AREA)
Abstract
一種半導體裝置包括:第一處理器,具有第一暫存器,所述第一處理器被配置成使用所述第一暫存器執行關注區域計算;以及第二處理器,具有第二暫存器,所述第二處理器被配置成使用所述第二暫存器執行算術計算。所述第一暫存器是由所述第二處理器共用,且所述第二暫存器是由所述第一處理器共用。
Description
本申請主張對在2017年3月31日在韓國智慧財產權局提出申請的韓國專利申請第10-2017-0041748號的優先權,所述韓國專利申請的全部內容併入本申請供參考。
本發明概念涉及一種半導體裝置,且更具體來說,涉及一種對圖像資料執行影像處理、視覺處理及神經網路處理的半導體裝置。
涉及影像處理、視覺處理及神經網路處理的應用(application)可例如在包含指令以及專用於矩陣計算的記憶體結構的系統上實現或者作為所述系統的一部分實現。然而,儘管涉及影像處理、視覺處理及神經網路處理的應用可使用相似的計算方法,然而施行這些處理的系統在許多情形中包括多個處理器,所述多個處理器是分別孤立的且被實現為單獨地施行影像處理、視覺處理及神經網路處理。這是因為,儘管涉及影像處理、視覺
處理及神經網路處理的應用具有功能相似性,然而相應的應用所需的例如資料處理速率、記憶體頻寬、同步化(synchronization)等細節是不同的。難以實現能夠集成影像處理、視覺處理及神經網路處理於一體的單個處理器。因此,對於其中需要進行影像處理、視覺處理及神經網路處理中的每一者的系統來說,需要提供可滿足各個應用各自的要求的集成處理環境及方法。
本發明概念的實施例提供一種半導體裝置,所述半導體裝置能夠提供對影像處理、視覺處理及神經網路處理進行高效控制並提高資料利用率的集成處理環境。
本發明概念的實施例提供一種半導體裝置,所述半導體裝置包括:第一處理器,具有第一暫存器,所述第一處理器被配置成使用所述第一暫存器執行關注區域(region of interest,ROI)計算;以及第二處理器,具有第二暫存器,所述第二處理器被配置成使用所述第二暫存器執行算術計算。所述第一暫存器是由所述第二處理器共用,且所述第二暫存器是由所述第一處理器共用。
本發明概念的實施例提供一種半導體裝置,所述半導體裝置包括:第一處理器,具有第一暫存器,所述第一處理器被配置成使用所述第一暫存器執行關注區域(ROI)計算;以及第二處理器,具有第二暫存器,所述第二處理器被配置成使用所述第二暫存器執行算術計算。所述第一處理器及所述第二處理器共用相同的指令集架構(instruction set arcbitecture,ISA)。
本發明概念的實施例提供一種半導體裝置,所述半導體裝置包括:載入儲存單元,被配置成向記憶體裝置傳送圖像資料以及從所述記憶體裝置接收圖像資料;內部暫存器,被配置成儲存從所述載入儲存單元提供的所接收的所述圖像資料;資料排列層,被配置成將來自所述內部暫存器的所儲存的所述圖像資料重新排列成N個資料列,其中所述資料列分別具有多個通道;以及多個算數邏輯單位(arithmetic logic unit,ALU),所述多個算數邏輯單位具有N個算數邏輯單位群組。所述N個算數邏輯單位群組分別被配置成處理N個資料列的經重新排列的圖像資料。
本發明概念的實施例提供一種半導體裝置,所述半導體裝置包括:第一處理器,具有第一暫存器,所述第一處理器被配置成使用所述第一暫存器執行關注區域(ROI)計算;以及第二處理器,具有第二暫存器,所述第二處理器被配置成使用所述第二暫存器執行算術計算。所述第一處理器包括:資料排列層,被配置成將來自第一暫存器的圖像資料重新排列成N個資料列,其中所述N個資料列分別具有多個通道;以及多個算數邏輯單位(ALU),具有N個算數邏輯單位群組,所述N個算數邏輯單位群組分別被配置成處理N個資料列的經重新排列的圖像資料。所述第一暫存器是由所述第二處理器共用,且所述第二暫存器是由所述第一處理器共用。
本發明概念的實施例提供一種半導體裝置的關注區域(ROI)計算方法。所述半導體裝置包括:內部暫存器,被配置成儲存圖像資料;資料排列層,被配置成將所儲存的圖像資料重新排列成N個資料列,所述N個資料列分別具有多個通道;以及多
個算數邏輯單位(ALU),具有被配置成處理N個資料列的N個算數邏輯單位群組。所述方法包括:由資料排列層重新排列所儲存的圖像資料的第一資料以提供經重新排列的第一圖像資料,所述第一資料具有n×n矩陣大小,其中n是自然數;由算數邏輯單位使用所述經重新排列的第一圖像資料執行第一映射計算以產生第一輸出資料;由資料排列層重新排列所儲存的所述圖像資料的第三資料以提供經重新排列的第二圖像資料,所述第三資料及所述第一資料被包括為所儲存的所述圖像資料的第二資料的一些部分,所述第二資料具有(n+1)×(n+1)矩陣大小,且所述第三資料不屬於所述第一資料;由算數邏輯單位使用所述經重新排列的第二圖像資料執行第二映射計算以產生第二輸出資料;以及由算數邏輯單位使用所述第一輸出資料及所述第二輸出資料執行歸納計算(reduce calculation)以產生最終圖像資料。
1:半導體裝置
100:第一處理器
105:記憶體層次結構
110:暫存器文件/內部暫存器
112:圖像暫存器
114:係數暫存器
116:輸出暫存器
120:載入儲存單元
130:資料排列層
140:映射層
150:歸納層
160、ALU1_1、ALU1_2、ALU1_3~ALU1_64、ALU1_128、ALU2_1、ALU2_2、ALU2_3~ALU2_64、ALU2_128、ALU3_1~ALU3_64、ALU3_128、ALU8_1、ALU8_2、ALU8_3~ALU8_64、ALU8_128、ALU9_1、ALU9_2、ALU9_3~ALU9_64、ALU9_128:算數邏輯單位
160a:第一算數邏輯單位群組/算數邏輯單位群組
160b~160c:第二算數邏輯單位群組~第八算數邏輯單位群組/算數邏輯單位群組
160d:第九算數邏輯單位群組/算數邏輯單位群組
170、300:控制器
190:資料排列模組
192:圖像資料排列器
194:係數資料排列器
200:第二處理器
212:標量暫存器/第二暫存器
214:向量暫存器/第二暫存器
220:提取單元
230:解碼器
240a:槽位/第一槽位
240b:槽位/第二槽位
240c:槽位/第三槽位
240d:槽位/第四槽位
242a、242b、242d:標量功能單元
242c:柔性卷積引擎單元
244a、244b、244c:向量功能單元
244d:控制單元
246a、246b、246c、246d:移動單元
400:記憶體匯流排
500:記憶體裝置
1100:框架
A1、B1、C1:要素/第一要素
A2、B2、C2:要素/第二要素
A3、A4、A64、A128、B3、B4、B64、B128、C3、C4、C64、C128、D4、D64、D128:要素
CR[0]、CR[1]、CR[2]、CR[3]、CR[4]、CR[5]、CR[6]、CR[7]、CR[8]、CR[9]、CR[10]、CR[11]、CR[12]、CR[13]、CR[14]、CR[15]、dm、IR[0]、IR[1]、IR[2]、IR[3]、IR[4]、IR[5]、IR[6]、IR[7]、IR[8]、IR[9]、IR[10]、IR[11]、IR[12]、IR[13]、IR[14]、IR[15]、Ve[0]、Ve[2]、Ve[4]、Ve[6]、Ve[8]、Ve[10]、Ve[12]、Ve[14]、Vo[1]、Vo[3]、Vo[5]、Vo[7]、Vo[9]、Vo[11]、Vo[13]、Vo[15]、W[0]、W[1]、W[2]、
W[3]、W[4]、W[5]、W[6]、W[7]:項
CSR0、CSR1、ISR0、ISR1、OSR0、OSR1、Ve、Vo:暫存器文件
W:W暫存器
D1:要素/第一要素/區
D2:要素/第二要素/區
D3:要素/區
DATA 1:第一資料列/資料列
DATA 2:第二資料列/資料列
DATA 3~DATA 9:第三資料列~第九資料列/資料列;
M1、M2、M3、M4、M5、M6、M7、M11、M12、M13、M31、M32:矩陣
N11、N12、N13、N14、N15、N16、N17、N18、N19、N21、N22、N23、N24、N25、N26、N27:資料項目/圖像資料
N28、N29、N31、N32、N33、N34、N35、N36、N37、N38、N39、N41、N42、N43、N44、N45、N46、N47、N48、N49、N51、N52、N53、N54、N55、N56、N57、N58、N59、N61、N62、N63、N64、N65、N66、N67、N68、N69、N71、N72、N73、N74、N75、N76、N77、N78、N79、N81、N82、N83、N84、N85、N86、N87、N88、N89、N91、N92、N93、N94、N95、N96、N97、N98、N99、NA1、NA2、NA3、NA4、NA5、NA6、NA7、NA8、NA9、NB1、NB2、NB3、NB4、NB5、NB6、NB7、NB8、NB9、NC1、NC2、NC3、NC4、NC5、NC6、NC7、NC8、NC9、ND1、ND2、ND3、ND4、ND5、ND6、ND7、ND8、ND9、NE1、NE2、NE3、NE4:
圖像資料
ORh[0]、ORh[1]、ORh[2]、ORh[3]、ORh[4]、ORh[5]、ORh[6]、ORh[7]、ORh[8]、ORh[9]、ORh[10]、ORh[11]、ORh[12]、ORh[13]、ORh[14]、ORh[15]:部分/上部部分
ORl[0]、ORl[1]、ORl[2]、ORl[3]、ORl[4]、ORl[5]、ORl[6]、ORl[7]、ORl[8]、ORl[9]、ORl[10]、ORl[11]、ORl[12]、ORl[13]、ORl[14]、ORl[15]:部分/下部部分
R1:第一區
R2:第二區
S901、S903、S905、S907、S909、S911、S913、S1201、S1203、S1205、S1207、S1209:步驟
通過參照附圖來詳細闡述本發明概念的示例性實施例,本發明概念的以上及其他目的、特徵、及優點對所屬領域的普通技術人員來說將變得更顯而易見。
圖1示出用於解釋根據本發明概念實施例的半導體裝置的示意圖。
圖2示出用於解釋根據本發明概念實施例的半導體裝置的第一處理器的示意圖。
圖3示出用於解釋根據本發明概念實施例的半導體裝置的第二處理器的視圖。
圖4示出用於解釋根據本發明概念實施例的半導體裝置的架構的示意圖。
圖5A、圖5B、圖5C及圖5D示出用於解釋根據本發明概念實施例的半導體裝置的暫存器的結構的示意圖。
圖6示出用於解釋其中將資料儲存在根據本發明概念實施例的半導體裝置中的實現方式的示意圖。
圖7示出用於解釋其中將資料儲存在根據本發明概念另一個實施例的半導體裝置中的實施方式的示意圖。
圖8A示出用於解釋對各種大小的矩陣進行的關注區域(ROI)計算的資料圖案(data pattern)的示意圖。
圖8B及圖8C示出用於解釋根據本發明概念實施例的關注區域計算的資料圖案的示意圖。
圖8D、圖8E、圖8F及圖8G示出用於解釋根據本發明概念另一個實施例的關注區域計算的資料圖案的示意圖。
圖8H示出用於解釋根據本發明概念實施例的半導體裝置的上移計算(shiftup calculation)的示意圖。
圖9示出用於解釋其中使用根據本發明概念各個實施例的半導體裝置執行哈里斯角點檢測(Harris corner detection)的示例性操作的流程圖。
圖10A及圖10B示出用於解釋用於圖8D中的5×5矩陣的卷積計算的實際彙編指令的實例的視圖。
圖11示出用於解釋使用根據本發明概念實施例的半導體裝
置的示例性關注區域(ROI)計算的流程圖。
按照本發明概念的領域中的傳統,可採用施行所闡述的一種或多種功能的區塊來闡述及說明各實施例。這些區塊(在本文中可被稱為單元、或模組等)是由例如邏輯閘、積體電路、微處理器、微控制器、記憶體電路、無源電子元件、有源電子元件、光學元件、硬接線電路(hardwired circuit)等類比及/或數位電路以實體方式實現,且可視需要通過韌體及/或軟體來驅動。所述電路可例如被實現於一個或多個半導體晶片中、或例如印刷電路板等襯底支撐件(substrate support)上。構成區塊的電路可由專用硬體、或由處理器(例如,一個或多個經過程式設計的微處理器及相關聯的電路系統)、或者由用於執行所述區塊的一些功能的專用硬體與用於執行所述區塊的其他功能的處理器的組合來實現。所述實施例中的每一區塊可在不背離本發明概念的範圍的條件下在實體上分成兩個或更多個交互作用且分立的區塊。同樣地,所述實施例的區塊可在不背離本發明概念的範圍的條件下在實體上組合成更複雜的區塊。
圖1示出用於解釋根據本發明概念實施例的半導體裝置的示意圖。參照圖1,半導體裝置1包括第一處理器100、第二處理器200、控制器300及記憶體匯流排400。控制器300控制第一處理器100、第二處理器200及記憶體匯流排400的總體操作。記憶體匯流排400可連接到記憶體裝置500。在一些實施例中,記憶體裝置500可獨立於包括控制器300、第一處理器100、第二處理
器200及記憶體匯流排400的半導體裝置1設置。在其他實施例中,記憶體裝置500可被設置為半導體裝置1的一部分。
第一處理器100可為專用於在影像處理、視覺處理及神經網路處理中所主要使用的關注區域(ROI)計算的處理器。舉例來說,第一處理器100可執行一維濾波器計算(one-dimensional filter calculation)、二維濾波器計算(two-dimensional filter calculation)、統計變換計算(census transform calculation)、最小/最大濾波器計算(min/max filter calculation)、絕對誤差和(sum of absolute difference,SAD)計算、誤差平方和(sum of squared difference,SSD)計算、非極大值抑制(non maximum suppression,NMS)計算、矩陣乘法計算(matrix multiplication calculation)等。
第一處理器100可包括第一暫存器112、114及116,且可使用第一暫存器112、114及116執行關注區域計算。在一些示例性實施例中,第一暫存器可包括圖像暫存器(image register,IR)112、係數暫存器(coefficient register,CR)114及輸出暫存器(output register,OR)116中的至少一者。
舉例來說,圖像暫存器112可儲存被輸入的用於在第一處理器100處進行處理的圖像資料,且係數暫存器114可儲存用於對圖像資料進行計算的濾波器的係數。另外,輸出暫存器116可儲存在第一處理器100處進行處理之後對圖像資料執行計算的結果。
第一處理器100還可包括資料排列模組(data arrange module,DA)190,資料排列模組190產生用於在第一處理器100處進行處理的資料圖案。資料排列模組190可產生用於對各種大
小的矩陣高效地執行關注區域計算的資料圖案。
具體來說,在一些示例性實施例中,舉例來說,資料排列模組190可包括圖像資料排列器(image data arranger,IDA)192,圖像資料排列器192通過對被輸入的用於在第一處理器100處進行處理並被儲存在圖像暫存器112中的圖像資料進行排列來產生用於在第一處理器100處進行高效關注區域計算的資料圖案。另外,舉例來說,資料排列模組190可包括係數資料排列器(coefficient data arranger,CDA)194,係數資料排列器194通過對被儲存在係數暫存器114中的用於對圖像資料進行計算的濾波器的係數資料進行排列來產生用於在第一處理器114處進行高效關注區域計算的資料圖案。以下將參照圖6至圖8E闡述對於由資料排列模組190產生的資料圖案的具體解釋。第一處理器100可為柔性卷積引擎(flexible convolution engine,FCE)單元。
第二處理器200是適用於執行算術計算的通用處理器。在一些示例性實施例中,第二處理器200可被實現為專用于包含例如向量專用指令的向量計算處理(例如預測計算(prediction calculation)、向量重組計算(vector permute calculation)、向量位運算計算(vector bit manipulation calculation)、蝶形計算(butterfly calculation)、分類計算(sorting calculation)等)的向量處理器(vector processor)。在一些示例性實施例中,第二處理器200可採用以下結構:單指令多資料(single instruction multiple data,SIMD)架構或多槽位超長指令字(multi-slot very long instruction word,multi-slot VLIW)架構。
第二處理器200可包括第二暫存器212及214,且可使
用第二暫存器212及214執行算術計算。在一些示例性實施例中,第二暫存器可包括標量暫存器(scalar register,SR)212及向量暫存器(vector register,VR)214中的至少一者。
舉例來說,標量暫存器212可為在第二處理器200的標量計算中使用的暫存器,且向量暫存器214可為在第二處理器200的向量計算中使用的暫存器。
在一些示例性實施例中,第一處理器100與第二處理器200可共用相同的指令集架構(instruction set architecture,ISA)。因此,專用於關注區域計算的第一處理器100與專用於算術計算的第二處理器200可在指令層次上共用,因而有利於控制第一處理器100及第二處理器200。
同時,在一些示例性實施例中,第一處理器100與第二處理器200可共用暫存器。也就是說,第一處理器100的第一暫存器112、114及116可由第二處理器200共用(即,由第二處理器200使用),且第二處理器200的第二暫存器212及214可由第一處理器100共用(即,由第一處理器100使用)。因此,專用於關注區域計算的第一處理器100與專用於算術計算的第二處理器200可共用各自的內部暫存器,此轉而可提高資料利用率並減少對記憶體進行存取的次數。
在一些示例性實施例中,第一處理器100及第二處理器200可被實現為使得第一處理器100與第二處理器200由單獨的或相應的獨立電源驅動。因此,可根據具體操作情況切斷向第一處理器100及第二處理器200中的未被使用的一者供應的電力。
圖2示出用於解釋根據本發明概念實施例的半導體裝置
的第一處理器的示意圖。參照圖2,半導體裝置1(圖1所示)的第一處理器100包括內部暫存器110、載入儲存單元(load store unit,LSU)120、資料排列層130、映射層140及歸納層(reduce layer)150。
內部暫存器110包括以上參照圖1所闡述的圖像暫存器112、係數暫存器114及輸出暫存器116。
載入儲存單元120可向記憶體裝置(例如,圖1所示記憶體裝置500)傳送資料以及從所述記憶體裝置接收資料。舉例來說,載入儲存單元120可通過例如圖1所示記憶體匯流排400來讀取儲存在記憶體裝置(圖中未示出)中的資料。載入儲存單元120及記憶體匯流排400可對應於以下將參照圖4闡述的記憶體層次結構(memory hierarchy)105。
在一些示例性實施例中,載入儲存單元120可同時讀取1024位元資料。同時,在一些示例性實施例中,載入儲存單元120可通過支援n個埠(例如,n為2、4、8等)來同時讀取1024×n位元資料。由於載入儲存單元120可同時讀取以每1024位元為單位的資料,因此以下將要闡述的資料排列層130可根據單指令多資料(SIMD)架構以其中一行由1024個位元構成的排列形式來對資料進行重新排列。
資料排列層130可對應於在圖1中被示出為資料排列模組190的元件,且可對用於在第一處理器100處進行處理的資料進行重新排列。具體來說,資料排列層130可產生用於對將由第一處理器100處理的各種大小的資料(例如,矩陣)高效地執行關注區域計算的資料圖案。根據作為資料圖案而產生的資料的類
型,資料排列層130可包括分別與在圖1中被示出為圖像資料排列器192及係數資料排列器194的元件對應的子單元。
具體來說,資料排列層130可根據單指令多資料架構以分別包含多個資料的多個資料列的形式來對用於在第一處理器100處進行處理的資料進行重新排列。舉例來說,資料排列層130可根據單指令多資料架構以分別包含多個資料的多個資料列的形式來對圖像資料進行重新排列,以使得第一處理器100高效地執行關注區域計算,同時還根據單指令多資料架構以分別包含多個資料的多個資料列的形式來對用於對圖像資料進行計算的濾波器的係數資料進行重新排列。
儘管在圖2中僅示出單個算數邏輯單位(ALU)160,然而第一處理器100可包括多個算數邏輯單位(ALU)160,所述多個算數邏輯單位160相對於彼此並行地排列從而與多個資料列中的每一者對應。所述多個算數邏輯單位160中的每一者可包括映射層140及歸納層150。算數邏輯單位160可執行映射計算、歸納計算等,從而使用映射層140及歸納層150來並行地處理儲存在多個資料列中的每一個資料列中的資料。
通過採用對資料進行重新排列的結構,尤其可對例如在影像處理、視覺處理、及神經網路處理中經常使用的3×3矩陣、4×4矩陣、5×5矩陣、7×7矩陣、8×8矩陣、9×9矩陣、11×11矩陣執行高效處理。以下將參照圖4、圖6及圖7闡述具體解釋。
圖3示出用於解釋根據本發明概念實施例的半導體裝置的第二處理器的視圖。參照圖3,半導體裝置1(圖1所示)的第二處理器200包括提取單元220及解碼器230。
解碼器230可對從提取單元220提供的指令進行解碼。在一些示例性實施例中,指令可根據超長指令字架構由四個槽位240a、240b、240c及240d來進行處理,由此提取單元220會向解碼器230提供超長指令字指令。舉例來說,當由提取單元220提取的指令是128位元時,解碼器230可將所提取的指令解碼成分別由32個位元構成的四個指令,且所述四個指令可分別由槽位240a、240b、240c及240d來進行處理。也就是說,提取單元220可被配置成向解碼器230提供超長指令字指令,且解碼器230可被配置成將超長指令字指令解碼成多個指令。
儘管為解釋方便起見,實施例示出所提取的指令被解碼成四個指令且由四個槽位進行處理,然而第二處理器200並非僅限於在四個槽位處進行處理。舉例來說,指令可被實現為在不少於2的任意數目的槽位處進行處理。
在一些示例性實施例中,四個槽位240a、240b、240c240d可同時執行除了在控制單元(control unit,CT)244d處執行的控制指令之外的所有指令。為高效進行這種並行處理,在四個槽位240a、240b、240c及240d中可設置有標量功能單元(scalar functional unit,SFU)242a、242b及242d、向量功能單元(vector functional unit,VFU)244a、244b及244c、以及移動單元(move unit,MV)246a、246b、246c及246d。
具體來說,第一槽位240a可包括標量功能單元242a、向量功能單元244a、及移動單元246a,且第二槽位240b可包括標量功能單元242b、向量功能單元244b及移動單元246b。第三槽位240c可包括柔性卷積引擎(FCE)單元242c、向量功能單元
244c及移動單元246c,此對應於使用第一處理器100對指令進行的處理。第四槽位240d可包括標量功能單元242d、與控制指令對應的控制單元(control unit,CT)244d以及移動單元246d。
在此實例中,第三槽位240c的柔性卷積引擎單元242c可對應於第一處理器100。另外,除了第三槽位240c之外的槽位(即,第一槽位240a、第二槽位240b及第四槽位240d)可對應於第二處理器200。舉例來說,在第三槽位240c的柔性卷積引擎單元242c中設置的指令可由第一處理器100執行,且在第四槽位240d中設置的指令可由第二處理器200執行。
另外,第一處理器100與第二處理器200可使用槽位240a、240b、240c及240d中的每一者中所包括的移動單元246a、246b、246c及246d來共用彼此的資料。因此,如果需要,則可通過槽位240c的柔性卷積引擎單元242c來使原本可能打算由第二處理器200處理的工作轉而由第一處理器100來處理。另外,在這種情形中,原本可能打算由第二處理器200處理的資料也可由第一處理器100分擔。
由標量功能單元242a、242b及242d進行處理的結果可儲存在相對於圖1所闡述的標量暫存器212中,且由向量功能單元244a、244b及244c進行處理的結果可儲存在也相對於圖1所闡述的向量暫存器214中。當然,儲存在標量暫存器212及向量暫存器214中的結果可根據需要由第一處理器100及第二處理器200中的至少一者使用。
應理解,圖3中所示出的配置僅是為解釋方便而呈現的本發明概念的各種實施例中的一者,且第二處理器200不應僅限
於圖2所示實施例。
圖4示出用於解釋根據本發明概念實施例的半導體裝置的架構的示意圖。參照圖4,根據本發明概念實施例的半導體裝置的架構可包括記憶體層次結構105、暫存器文件(register file)110、資料排列層130、多個算數邏輯單位160以及用於控制這些元件的總體操作的控制器170。
舉例來說,記憶體層次結構105可提供(或包括)以上參照圖1及圖2闡述的記憶體介面、記憶體裝置(例如,圖1所示記憶體裝置500)、記憶體匯流排400、載入儲存單元120等。
暫存器文件110可對應於包括以上參照圖2闡述的圖像暫存器112、係數暫存器114及輸出暫存器116的內部暫存器110。另外,暫存器文件110可包括以下參照圖5A至圖5D闡述的示例性結構。
資料排列層130可對應於以上參照圖2闡述的資料排列層130,且可產生用於對用於在第一處理器100處進行處理的各種大小的資料(例如,矩陣)高效地執行關注區域計算的資料圖案。
多個算數邏輯單位160可對應於以上參照圖2闡述的多個算數邏輯單位160,可包括映射層140及歸納層150,且可執行映射計算、歸納計算等。
圖4所示架構使得能夠使用可由多個算數邏輯單位160共用的暫存器文件110來實現準確的流程控制及複雜的算術計算,同時還使得能夠使用資料排列層130對儲存在暫存器文件110中的資料進行圖案化(patternizing),從而提高輸入資料的重複利用率。
舉例來說,資料排列層130可產生資料圖案以使得用於進行處理的資料(具體來說,用於關注區域計算的資料)可分別由屬於第一算數邏輯單位群組160a、第二算數邏輯單位群組160b、...、第八算數邏輯單位群組160c及第九算數邏輯單位群組160d的多個算數邏輯單位進行處理。算數邏輯單位群組160a、160b、160c及160d被示出為分別包括例如64個算數邏輯單位,但是在本發明概念的其他實施例中,算數邏輯單位群組可包括任意其他適合數目的算數邏輯單位。以下將參照圖6至圖8E具體闡述如何產生適於由九個算數邏輯單位群組160a、160b、160c及160d處理的資料圖案。
圖5A、圖5B、圖5C及圖5D示出用於解釋根據本發明概念實施例的半導體裝置的暫存器的結構的示意圖。
參照圖5A,圖1所示半導體裝置1的圖像暫存器(IR)112被設置成儲存特別地用於在第一處理器100處處理關注區域計算的輸入圖像資料。應理解,本實施例中的圖像暫存器112被表徵為圖像暫存器‘IR’,這是因為圖像暫存器112用於儲存輸入圖像資料,但在其他實施例中,可根據具體實現方式來對圖像暫存器112進行不同的命名。
根據本發明概念的實施例,舉例來說,圖像暫存器112可被實施為包含16個項。另外,舉例來說,項IR[i](其中,i是值為0到15的整數)中的每一者的大小可被實施為1024個位元。
在這些項中,項IR[0]到IR[7]可被定義為並用作暫存器文件ISR0來支援各種關注區域計算的圖像資料大小。同樣地,項IR[8]到IR[15]可被定義為並用作暫存器文件ISR1來支援各種關注
區域計算的圖像資料大小。
然而,應理解,對暫存器文件ISR0及暫存器文件ISR1的定義並非被限制為對於圖5A所闡述,而是可根據所處理的資料的大小來以各種方式對暫存器文件ISR0及暫存器文件ISR1進行分組及定義。也就是說,考慮到例如圖像資料大小、矩陣計算特徵、濾波器計算特徵等,可將暫存器文件ISR0及暫存器文件ISR1定義成具有與圖5A所示結構不同的結構。
接下來,參照圖5B,圖1所示半導體裝置1的係數暫存器(CR)114被設置成儲存用於對儲存在圖像暫存器112中的圖像資料進行計算的濾波器的係數。應理解,本實施例中的係數暫存器114被表徵為係數暫存器‘CR’,這是因為係數暫存器114用於儲存係數,但在其他實施例中,可根據具體實現方式來對係數暫存器114進行不同的命名。
根據本發明概念的實施例,舉例來說,係數暫存器114可被實現為包含16個項。另外,舉例來說,項CR[i](其中,i是值為0到15的整數)中的每一者的大小可被實現為1024個位元。
在這些項中,項CR[0]到CR[7]可被定義為並用作暫存器文件CSR0來支援各種關注區域計算的圖像資料大小,如在圖像暫存器112的情形中一樣。同樣地,項CR[8]到CR[15]可被定義為並用作暫存器文件CSR1來支援各種關注區域計算的圖像資料大小。
然而,應理解,對暫存器文件CSR0及暫存器文件CSR1的定義並非被限制為對於圖5B所闡述,而是可根據所處理的資料的大小來以各種方式對暫存器文件CSR0及暫存器文件CSR1進行
分組及定義。也就是說,考慮到例如圖像資料大小、矩陣計算特徵、濾波器計算特徵等,可將暫存器文件CSR0及暫存器文件CSR1定義成具有與圖5B所示結構不同的結構。
接下來,參照圖5C,圖1所示半導體裝置1的輸出暫存器(OR)116被設置成儲存來自在第一處理器100處對圖像資料進行的處理的計算結果。應理解,本實施例中的輸出暫存器116被表徵為輸出暫存器‘OR’,這是因為輸出暫存器116用於儲存計算結果,但在其他實施例中,可根據具體實現方式來對輸出暫存器116進行不同的命名。
根據本發明概念的實施例,舉例來說,輸出暫存器116可被實現為包含16個項。輸出暫存器116的各個項可包括對應的部分ORh[i]及ORl[i],如圖5C所示。包括對應的部分ORh[i]及ORl[i]的項在下文中可籠統地被表徵為項OR[i](其中,i是值為0到15的整數)。另外,舉例來說,項OR[i]中的每一者的大小可被實現為2048個位元。在本發明概念的實施例中,輸出暫存器116的大小可為圖像暫存器112的大小的整數倍。
在本發明概念的一些示例性實施例中,輸出暫存器116可用作圖4所示資料排列層130的輸入暫存器。在這種情形中,為高效地重複使用儲存在輸出暫存器116中的計算結果,輸出暫存器116的每一個項OR[i]可被劃分成上部部分ORh[i]及下部部分ORl[i]。舉例來說,項OR[0]可包括具有1024個位元的上部部分ORh[0]以及具有1024個位元的下部部分ORl[0]。為實現與以下將參照圖5D闡述的W暫存器的相容性,可實現將每一個項OR[i]劃分成上部部分ORh[i]及下部部分ORl[i]的這種劃分。W暫存器
是指儲存對暫存器文件Ve中所包含的對應項與在暫存器文件Vo中所包含的對應項進行整合的結果的相應的單個項,如圖5D所示。
通過將輸出暫存器116的各個項定義成使得各個項具有與圖像暫存器112的各個項及係數暫存器114的各個項中的每一個項相同的大小,可更容易且更方便地實現在圖像暫存器112、係數暫存器114及輸出暫存器116之間移動資料。也就是說,由於輸出暫存器116的各個項可與圖像暫存器112的各個項及係數暫存器114的各個項相容,因此可高效、方便地移動資料。
在這些項中,項OR[0](如圖中所示包括部分ORh[0]及ORl[0])到OR[7](如圖中所示包括部分ORh[7]及ORl[7])可被定義為並用作暫存器文件OSR0來支援各種關注區域計算的圖像資料大小,如在圖像暫存器112及係數暫存器114的情形中一樣。同樣地,項OR[8](如圖中所示包括部分ORh[8]及ORl[8])到OR[15](如圖中所示包括部分ORh[15]及ORl[15])可被定義為並用作暫存器文件OSR1來支援各種關注區域計算的圖像資料大小。
然而,應理解,對暫存器文件OSR0及暫存器文件OSR1的定義並非被限制為對於圖5C所闡述,而是可根據所處理的資料的大小來以各種方式對暫存器文件OSR0及暫存器文件OSR1進行分組及定義。也就是說,考慮到例如圖像資料大小、矩陣計算特徵、濾波器計算特徵等,可將暫存器文件OSR0及暫存器文件OSR1定義成具有與圖5C所示結構不同的結構。
另外,圖像暫存器112、係數暫存器114及輸出暫存器
116的項的大小、及/或構成暫存器文件的項的數目並非僅限於上述實施例,且項的大小及/或數目可根據實現方式的具體目的而有所變化。
在圖5A至圖5C中基於圖像暫存器112、係數暫存器114及輸出暫存器116的用途單獨闡述了圖像暫存器112、係數暫存器114及輸出暫存器116。然而,在一些示例性實施例中,可實現暫存器虛擬化(virtualization)以使得從第一處理器100的角度來說,可感知到猶如存在具有相同大小的四組暫存器一樣。
現參照圖5D,向量暫存器(VR)214被設置成儲存用於在第二處理器200處執行向量計算的資料。
根據實施例,向量暫存器214可被實現為包含16個項。舉例來說,所述16個項如圖5D所示可包含在下文中可籠統地被表徵為項Ve[i](其中,i是0與15之間的偶數整數(即,偶數編號的索引))的項Ve[0]、Ve[2]、Ve[4]、Ve[6]、Ve[8]、Ve[10]、Ve[12]及Ve[14]、以及在下文中可籠統地被表徵為項Vo[i](其中,i是0與15之間的奇數整數(即,奇數編號的索引))的項Vo[1]、Vo[3]、Vo[5]、Vo[7]、Vo[9]、Vo[11]、Vo[13]及Vo[15]。另外,舉例來說,項Ve[i]及Vo[i]中的每一者的大小可被實現為1024個位元。
根據實施例,所述16個項中的與偶數編號的索引對應的8個項Ve[i]可被定義為暫存器文件Ve,且所述16個項中的與奇數編號的索引對應的8個項Vo[i]可被定義為暫存器文件Vo。另外,可實現W暫存器,W暫存器包含在下文中可籠統地被表徵為項W[i](i是值為0到7的整數)的相應的單個項並儲存對暫存器
文件Ve中所包含的對應項與暫存器文件Vo中所包含的對應項進行整合的結果。
舉例來說,可定義儲存對項Ve[0]與項Vo[1]進行整合的結果的一個項W[0],且可定義儲存對項Ve[2]與項Vo[3]進行整合的結果的一個項W[1],由此建立如圖中所示包含總共8個項W[i]的W暫存器。
向量暫存器214的項的大小、及/或構成暫存器文件的項的數目並非僅限於上述實施例,且項的大小及/或數目可根據實現方式的具體目的而有所變化。
如以上在圖5A至圖5C中闡述的圖像暫存器112、係數暫存器114及輸出暫存器116的情形中一樣,對於向量暫存器214來說,可實現暫存器虛擬化以使得從第一處理器100及第二處理器200的角度來說,可感知到猶如存在具有相同大小的五組暫存器一樣。
在以上情形中,儲存在虛擬暫存器中的資料可通過圖3所示移動單元246a、246b、246c及246d在圖像暫存器112、係數暫存器114、輸出暫存器116及向量暫存器214之間移動。因此,第一處理器100與第二處理器200可使用虛擬暫存器共用資料或對所儲存的資料進行重複使用,而非對記憶體裝置(例如,圖1所示記憶體裝置500)進行存取或使用所述記憶體裝置。
圖6示出用於解釋其中將資料儲存在根據本發明概念實施例的半導體裝置中的實現方式的示意圖。參照圖6,由資料排列層130重新排列的資料可構成9個並行排列的資料列(DATA 1到DATA 9)。
資料列(DATA 1到DATA 9)中的每一者在垂直方向上可具有多個通道。舉例來說,第一資料列DATA 1的第一要素A1、第二資料列DATA 2的第一要素B1、第三資料列DATA 3的第一要素C1、...及第九資料列DATA 9的第一要素D1可形成第一通道,且第一資料列DATA 1的第二要素A2、第二資料列DATA 2的第二要素B2、第三資料列DATA 3的第二要素C3、...及第九資料列DATA 9的第二要素D2可形成第二通道。在圖6中,由資料排列層130重新排列的資料包括64個通道。
根據實施例,每一個通道的寬度可為16個位元。也就是說,第一資料列DATA 1的第一要素A1可以16位元資料形式儲存。在這種情形中,第一資料列DATA 1可包括分別具有16位元資料形式的64個要素A1、A2、A3、...及A64。相似地,第二資料列DATA 2可包括分別具有16位元資料形式的64個要素B1、B2、B3、...及B64,第三資料列DATA 3可包括分別具有16位元資料形式的64個要素C1、C2、C3、...及C64,且第九資料列DATA 9可包括分別具有16位元資料形式的64個要素D1、D2、D3、...及D64。
第一處理器100可包括用於處理由資料排列層130重新排列的資料的多個算數邏輯單位,且所述多個算數邏輯單位可包括分別與9個資料列(DATA 1到DATA 9)對應的9×64個算數邏輯單位。舉例來說,圖4所示第一算數邏輯單位群組160a可對應於第一資料列DATA 1,且圖4所示第二算數邏輯單位群組160b可對應於第二資料列DATA 2。另外,圖4所示第八算數邏輯單位群組160c可對應於第八資料列DATA 8(圖中未示出),且圖4所
示第九算數邏輯單位群組160d可對應於第九資料列DATA 9。
另外,第一算數邏輯單位群組160a的64個算數邏輯單位(即,ALU1_1到ALU1_64)可分別並行地處理與第一資料列DATA 1的64個要素對應的資料,且第二算數邏輯單位群組160b的64個算數邏輯單位(即,ALU2_1到ALU2_64)可分別並行地處理與第二資料列DATA 2的64個要素對應的資料。另外,第八算數邏輯單位群組160c的64個算數邏輯單位(即,ALU8_1到ALU8_64)可並行地處理與第八資料列DATA 8的64個要素對應的資料,且第九算數邏輯單位群組160d的64個算數邏輯單位可分別並行地處理與第九資料列DATA 9的64個要素對應的資料。因此,在對於圖4及圖6闡述的實施例中,半導體裝置1包括分別具有M個通道的N個資料列、以及分別處理N個資料列的N個算數邏輯單位群組,其中N個算數邏輯單位群組分別包括M個算數邏輯單位。在圖4及圖6的實施例中,N是9且M是64。
根據各種實施例,在由資料排列層130重新排列的資料中的資料列的數目並非僅限於9,且可根據實現方式的具體目的而有所變化。另外,分別與多個資料列對應的多個算數邏輯單位的數目可根據實現方式的目的而有所變化。
同時,如以下參照圖8A所闡述,當由資料排列層130重新排列的資料的資料列的數目是9時,效率可得到提高,在各種大小的矩陣的關注區域計算中尤其如此。
圖7示出用於解釋其中將資料儲存在根據本發明概念另一個實施例的半導體裝置中的實現方式的示意圖。
參照圖7,由資料排列層130重新排列的資料可構成9
個並行排列的資料列(DATA 1到DATA 9)。
參照圖7,僅闡述圖6所示實現方式與圖7所示實現方式之間的差異。在圖7中,資料列(DATA 1到DATA 9)中的每一者在垂直方向上可具有多個通道,且根據實施例,每一個通道的寬度可為8個位元。也就是說,第一資料列DATA 1的第一要素A1可以8位元資料形式儲存。在這種情形中,第一資料列DATA 1可包括分別具有8位元資料形式的128個要素。
第一處理器100可包括用於處理由資料排列層130重新排列的資料的多個算數邏輯單位,且多個算數邏輯單位可包括分別與9個資料列(DATA 1到DATA 9)對應的9×128個算數邏輯單位。
根據各種實施例,在由資料排列層130重新排列的資料中的資料列的數目並非僅限於9,且可根據實現方式的具體目的而有所變化。另外,分別與多個資料列對應的多個算數邏輯單位的數目可根據實現方式的具體目的而有所變化。
如以下參照圖8A所闡述,當由資料排列層130重新排列的資料的資料列的數目是9時,效率可得到提高,在各種大小的矩陣的關注區域計算中尤其如此。
圖8A示出為解釋對各種大小的矩陣進行的關注區域計算的資料圖案而提供的示意圖,圖8B及圖8C示出用於解釋根據本發明概念實施例的關注區域計算的資料圖案的示意圖,且圖8D、圖8E、圖8F及圖8G示出用於解釋根據本發明概念另一個實施例的關注區域計算的資料圖案的示意圖。參照圖8A至圖8G,可根據在與影像處理、視覺處理、及神經網路處理相關聯的應用
中最頻繁使用的矩陣大小來確定使用由資料排列層130重新排列的資料的圖案。
參照圖8A,矩陣M1包含將通過關注區域計算執行的圖像大小3×3所需的圖像資料,且矩陣M2包含將通過關注區域計算執行的圖像大小4×4所需的圖像資料。矩陣M3包含將通過關注區域計算執行的圖像大小5×5所需的圖像資料,矩陣M4包含將通過關注區域計算執行的圖像大小7×7所需的圖像資料,且矩陣M5包含將通過關注區域計算執行的圖像大小8×8所需的圖像資料。同樣地,矩陣M6包含將通過關注區域計算執行的圖像大小9×9所需的圖像資料,且矩陣M7包含將通過關注區域計算執行的圖像大小11×11所需的圖像資料。舉例來說,假設圖8A所示圖像資料儲存在記憶體裝置(例如圖1所示記憶體裝置500)中。如圖8B所示,當對3×3大小的矩陣(例如,M11、M12及M13)執行關注區域計算時,第一處理器100可讀取儲存在記憶體裝置中的圖8A所示圖像資料,並將所述圖像資料儲存在圖像暫存器112中。
在這種情形中,參照圖8C,與矩陣M11對應的圖像資料(N11到N19)可排列在9個並行排列的資料列(DATA 1到DATA 9)的位於第一方向上的第一通道處。接下來,與矩陣M12對應的圖像資料N12、N13、N21、N15、N16、N22、N18、N19及N23可排列在第二通道處。接下來,與矩陣M13對應的圖像資料N13、N21、N31、N16、N22、N32、N19、N23及N33可排列在第三通道處。
因此,例如圖4所示的多個算數邏輯單位(ALU1_1到ALU9_1)可對包含與矩陣M11對應的圖像資料的第一通道執行關
注區域計算,且多個算數邏輯單位(ALU1_2到ALU9_2)可對包含與矩陣M12對應的圖像資料的第二通道執行關注區域計算。另外,多個算數邏輯單位(ALU1_3到ALU9_3)可對包含與矩陣M13對應的圖像資料的第三通道執行關注區域計算。
由於圖像資料是如在以上實施例中所闡述的一樣被處理,因此當假設將通過關注區域計算執行的矩陣具有3×3大小時,第一處理器100每一個迴圈可對三個圖像行執行矩陣計算。在此實例中,使用多個算數邏輯單位來並行處理9個資料列(DATA 1到DATA 9)會提供100%的效率。
如圖8D所示,當對5×5大小的矩陣(例如,M31及M32)執行關注區域計算時,第一處理器100可讀取儲存在記憶體裝置中的圖8A所示圖像資料,並將所述圖像資料儲存在圖像暫存器112中。
在這種情形中,參照圖8E、圖8F、及圖8G,5×5矩陣計算總共執行三個迴圈。在如圖8E所示的第一迴圈期間,計算是利用與對於圖8B及圖8C所闡述的用於3×3矩陣的方法相同方法來執行。在如圖8F所示的第二迴圈期間,圖8A所示矩陣M2中的除了圖8A所示矩陣M1的圖像資料之外的圖像資料(N21、N22、N23、N27、N26、N25及N24)被分配到算數邏輯單位(ALU1_1到ALU9_1)或者被分配到第一向量通道,且圖像資料N31、N32、N33、N34、N27、N26及N25的資料被分配到算數邏輯單位(ALU1_2到ALU9_2)或者被分配到第二向量通道。在第二迴圈期間,資料是使用相同的方法被連續地分配到各個通道。在如圖8G所示的第三迴圈期間,矩陣M3中的除了矩陣M2的圖像資料之外的圖像資
料(N31、N32、N33、N34、N37、N36、N35、N29及N28)被分配到算數邏輯單位(ALU1_1到ALU9_1)或者被分配到第一向量通道,且對於後續通道來說,分配及處理是以相同的方式繼續進行。
由於圖像資料是以根據以上實施例闡述的方式進行處理,因此當假設將通過關注區域計算執行的矩陣具有5×5大小時,第一處理器100在第二迴圈期間跳過對僅兩個資料(如在圖8F中由項dm表示)的計算,且因此,獲得93%的算數邏輯單位使用效率((64個通道×9個行×3個迴圈-64個通道×2個行)×100/64×9×3)。
在相同的上下文中,當假設將通過關注區域計算執行的矩陣具有4×4大小時,第一處理器100通過兩個迴圈來執行矩陣計算,同時跳過對僅兩個資料的計算,在這種情形中,獲得89%的算數邏輯單位使用效率。
當假設將通過關注區域計算執行的矩陣具有7×7大小時,第一處理器100通過六個迴圈來執行矩陣計算,同時跳過對僅五個資料的計算,在這種情形中,獲得91%的算數邏輯單位使用效率。
當假設將通過關注區域計算執行的矩陣具有8×8大小時,第一處理器100通過八個迴圈來執行矩陣計算,同時跳過對僅八個資料的計算,在這種情形中,獲得89%的算數邏輯單位使用效率。
當假設將通過關注區域計算執行的矩陣具有9×9大小時,第一處理器100通過九個迴圈來對九個圖像行執行9×9矩陣
計算,同時使用所有的資料,在這種情形中,獲得100%的算數邏輯單位使用效率。
當假設將通過關注區域計算執行的矩陣具有11×11大小時,第一處理器100通過14個迴圈來執行矩陣計算,同時跳過對來自11個圖像行的僅八個資料的計算,在這種情形中,獲得96%的算數邏輯單位使用效率。
如以上參照圖8A至圖8G所闡述,在對包含在與影像處理、視覺處理、及神經網路處理相關聯的應用中最頻繁使用的矩陣大小即3×3、4×4、5×5、7×7、8×8、9×9、11×11這些大小在內的各種矩陣大小執行關注區域計算時,當由資料排列層130重新排列的資料的資料列的數目是9時,可維持第一處理器100的90%的算數邏輯單位使用效率。
在一些示例性實施例中,當所計算的矩陣的大小增大時,僅對從之前的矩陣大小增大的部分執行資料排列。舉例來說,為對圖8A所示矩陣M2執行第二計算,在對矩陣M1執行第一計算之後,可僅對第二計算所需的圖像資料(N21、N22、N23、N27、N26、N25及N24)執行額外的資料排列。
在一些示例性實施例中,多個算數邏輯單位可使用儲存在圖像暫存器112中的圖像資料以及儲存在係數暫存器114中的篩檢程式係數執行計算,並將結果儲存在輸出暫存器116中。
圖8H示出用於解釋根據本發明概念實施例的半導體裝置的上移計算的示意圖。
參照圖8H,由根據本發明概念實施例的半導體裝置執行的上移計算可控制用於讀取儲存在圖像暫存器112中的資料的
方法以對來自記憶體裝置的之前儲存在圖像暫存器112中的圖像資料進行高效處理。
為具體解釋上移計算,當需要對例如圖8D所示5×5矩陣M31及M32進行關注區域計算時,與圖8H所示第一區R1對應的所有圖像資料可能均已經過處理,且當需要處理與圖8H所示第二區R2對應的圖像資料時,從記憶體向圖像暫存器112讀取額外需要的僅第六行資料(即,圖像資料N38、N39、N46、N47、N48、N49、N56、N76、N96、NA6及NB6)。
舉例來說,當與第一區R1對應的第一行到第五行的資料分別儲存在圖5A所示的IR[0]到IR[4]中時,第六行的資料可預先儲存在IR[5]中。這樣,僅通過將圖像暫存器112的讀取區調整到第二區R2便可針對第二行到第六行來對5×5矩陣M31及M32連續地執行關注區域計算,同時避免額外的記憶體存取。
圖9示出用於解釋其中使用根據本發明概念各個實施例的半導體裝置執行哈裡斯角點檢測的示例性操作的流程圖。應理解,哈裡斯角點檢測是所屬領域中的技術人員所熟知的,且因此此處將不再具體解釋。
參照圖9,哈裡斯角點檢測的實施例在S901處包括輸入圖像。舉例來說,用於角點檢測的圖像通過圖1所示記憶體匯流排400(例如,從例如圖1所示記憶體裝置500等記憶體裝置)被輸入到第一處理器100。
在S903處,計算推導值(derivative value)DV。舉例來說,第一處理器100可根據需要例如從由資料排列層130重新排列的圖像資料來對沿X軸及Y軸的圖元計算推導值DV。在此
實例中,可通過應用例如索貝爾濾波器(Sobel filter)等一維濾波器、通過將每一個圖像乘以在x軸方向上的推導係數(Ix=Gx * I)以及在y軸方向上的推導係數(Iy=Gy * I)來容易地獲得推導值(derivative)。所輸入的圖像被儲存在圖像暫存器112中,推導係數(Gx及Gy)被儲存在係數暫存器114中,且相乘的結果(Ix及Iy)被儲存在輸出暫存器116中。
接下來,在S905處,對推導乘積(derivation product)DP進行計算。舉例來說,根據需要,第一處理器100可從由資料排列層130重新排列的推導值DV來對每一個圖元計算推導乘積DP。基於S903的結果,對x軸結果及y軸結果(即,推導值)求平方(Ix2,Iy2),且將x軸求平方結果與y軸求平方結果彼此相乘(Ixy=Ix2 * Iy2),由此提供DP值。在此實例中,通過重複使用儲存在輸出暫存器116中的S903的結果,使用輸出暫存器116的圖像資料排列器192/係數資料排列器194圖案來將計算的x軸結果及y軸結果用作向量算數邏輯單位輸入,且計算的結果被再次儲存在輸出暫存器116中。
接下來,在S907處,計算誤差平方和(SSD)。舉例來說,第一處理器100使用推導乘積DP計算誤差平方和。與在S905處的運算相似,誤差平方和計算(Sx2=Gx * Ix2、Sy2=Gy * Iy2、Sxy=Gxy * Ix * Iy)也對儲存在輸出暫存器116中的資料進行處理作為S905中的運算結果,且圖像資料排列器192將資料分配到例如圖3所示的向量功能單元(VFU)244a、244b及244c,乘以儲存在係數暫存器114中的推導係數,並再次將結果儲存在輸出暫存器116中。
在S909處,定義關鍵點矩陣。另外,由於確定關鍵點矩陣難以僅利用專用於關注區域處理的第一處理器100來執行,因此確定關鍵點矩陣可通過第二處理器200來執行。也就是說,第二處理器200定義關鍵點矩陣。
在這種情形中,在第一處理器100的輸出暫存器116中儲存的所得值可由第二處理器200共用並被重複使用。舉例來說,可使用圖3所示移動單元246a、246b、246c及246d將儲存在第一處理器100的輸出暫存器116中的所得值移動到第二處理器200的向量暫存器214。作為另外一種選擇,可被直接輸入有輸出暫存器116的值的向量功能單元(VFU)244a、244b及244c可使用第一處理器100處的結果,而無需經過移動單元246a、246b、246c及246d。
接下來,在S911處,計算回應函數(R=Det(H)-k(Trace(H)2))。舉例來說,第二處理器200使用儲存在向量暫存器214中的S909的所得值來計算回應函數。在這一階段,由於僅使用第二處理器200,因此所有計算的中間結果及最終結果均儲存在向量暫存器214中。
接下來,在S913處,通過執行非極大值抑制(NMS)計算來檢測關鍵點。S913處的操作可再次由第一處理器100來處理。
在這種情形中,在第二處理器200的向量暫存器214中儲存的所得值可由第一處理器100共用並被重複使用。舉例來說,可使用圖3所示移動單元246a、246b、246c及246d將儲存在第二處理器200的向量暫存器214中的所得值移動到第一處理器100
的輸出暫存器116。作為另外一種選擇,可通過圖像資料排列器192/係數資料排列器194來將所得值從向量暫存器214直接分配到向量功能單元244a、244b及244c。
由於在以上述方式完成輸入圖像的角點檢測工作之前僅使用第一處理器100的暫存器(即,圖像暫存器112、係數暫存器114及輸出暫存器116)以及第二處理器200的暫存器(即,標量暫存器212及向量暫存器214),因此不需要對記憶體裝置進行存取。因此,在對記憶體裝置進行存取時花費的例如開銷及功耗等成本可明顯降低。
表一示出用於解釋由根據本發明概念實施例的半導體裝置所支援的在與視覺處理及神經網路處理相關聯的應用中使用的用於高效地處理矩陣計算的指令的實現方式的視圖。
參照表一,第一處理器100支援在與視覺處理及神經網路處理相關聯的應用中使用的用於高效地處理矩陣計算的指令。所述指令可主要被劃分成三種類型的指令(或階段)。
MAP指令是例如用於使用多個算數邏輯單位160計算資料的指令,且支援由例如Add、Sub、Abs、AbsDiff、Cmp、Mul、Sqr等操作碼(opcode)標識的計算。MAP指令以第一處理器100的輸出暫存器116作為目標暫存器,且使用從圖像資料排列器192及係數資料排列器194中的至少一者產生的資料圖案作為運算元
(operand)。另外,可額外地(可選地)包含欄位來指示所處理資料的單位是8個位元還是16個位元。
REDUCE指令是例如用於樹計算的指令,且支援由例如添加樹(Add tree)、最小化樹(minimum tree)、最大化樹(maximum tree)等操作碼標識的計算。REDUCE指令以第一處理器100的輸出暫存器116及第二處理器200的向量暫存器214中的至少一者作為目標暫存器,且使用從圖像資料排列器192及係數資料排列器194中的至少一者產生的資料圖案。另外,可額外地包含欄位來指示所處理資料的單位是8個位元還是16個位元。
MAP_REDUCE指令是用於對映射計算及歸納計算進行組合的指令。MAP_REDUCE指令以第一處理器100的輸出暫存器116及第二處理器200的向量暫存器214中的至少一者作為目標暫存器,且使用從圖像資料排列器192及係數資料排列器194中的至少一者產生的資料圖案。另外,可額外地包含欄位來指示所處理資料的單位是8個位元還是16個位元。
根據上述各個實施例,第一處理器100與第二處理器200共用相同的指令集架構以使得專用於關注區域計算的第一處理器100與專用於算術計算的第二處理器200在指令層次上共用,從而有利於進行控制。另外,通過共用暫存器,第一處理器100與第二處理器200可提高資料利用率並減少記憶體存取次數。另外,通過使用對用於在第一處理器100處進行處理的各種大小的資料(例如,矩陣)高效地執行關注區域計算的資料圖案,便可有可能對在影像處理、視覺處理、及神經網路處理中頻繁使用的矩陣大小即3×3矩陣、4×4矩陣、5×5矩陣、7×7矩陣、8×8
矩陣、9×9矩陣、11×11矩陣專門地執行高效處理。
圖10A及圖10B示出用於解釋用於圖8D中的5×5矩陣的卷積計算的實際彙編指令的實例的視圖。
參照表一及圖10A,在框架1100中,在第一行處的MAPMUL_ReduceAcc16(IDA_Conv3(IR),CDA_Conv3(CR,w16))指令(即,第一彙編指令)中,MAPMUL_ReduceAcc16指示將根據表一所示階段、目標暫存器、運算元1、運算元2、及操作碼在MAP階段及REDUCE階段執行的指令。因此,對於16位元資料,在MAP階段執行Mul指令且在REDUCE階段執行添加樹,其中由於對之前的加法結果進行累加而使用了Acc指令。每一行的運算子“.”是用於對將在第一處理器100及第二處理器200的槽位240a、240b、240c、及240d中的每一者中進行處理的指令進行區分的運算子。因此,計算操作是使用單指令多資料的指令集與多槽位超長指令字結構在第一處理器100及第二處理器200中執行的。舉例來說,MAPMul_RcducedAcc16被分配到第一處理器100所在的槽位,且ShUpReg=1指令被分配到與第二處理器200對應的槽位。指令‘ShUpReg’是如以上在圖8F中所闡述的用於改變在計算中使用的暫存器資料區(暫存器視窗)的上移暫存器指令,且可被實現成由第一處理器100或第二處理器200執行。除了MAPMul_ReducedAcc16之外的其他指令可在與第二處理器200對應的槽位中執行,但並非僅限於此。根據實現方式的方法而定,所述其他指令也可在第一處理器100中執行。
在此實例中,從虛擬暫存器接收到輸入值,IDA_Conv3(IR)及CDA_Conv3(CR,w16)。Conv3指示圖8B中的
3×3矩陣(即,n×n矩陣)的資料圖案是從圖像暫存器112及係數暫存器114輸入的。當執行第一彙編指令時,圖8B所示矩陣M11的資料被儲存在第一通道處,矩陣M12的資料被儲存在第二通道處,矩陣M13的資料被儲存在第三通道處,且其他對應的資料同樣地儲存在之後的通道中。
第二彙編指令MAPMUL_reduceAcc16(IDA_Conv4(IR),CDA_Conv4(CR,w16))是在僅改變輸入資料圖案的同時以相同的方法計算。在此實例中,如以上對於5×5矩陣計算所闡述,4×4矩陣(即,(n+1)×(n+1)矩陣)的資料中除了3×3矩陣的資料之外的其餘資料(例如,圖10B中D2區的不包含D1區的區的圖像資料)被輸入到向量功能單元的每一個通道,且對應的結果根據添加樹與3×3結果一同被儲存在輸出暫存器116中。這一結果表示對4×4大小的卷積計算的結果。
最終的MAPMUL_ReduceAcc16(IDA_Conv5(IR),CDA_Conv5(CR,w16))執行與之前的對5×5矩陣的資料中除了4×4矩陣的資料之外的其餘資料的計算相同的計算。
當執行這三個指令時,對於所輸入的5個列的5×5矩陣,卷積濾波器的結果被儲存在輸出暫存器116中。稍後當計算視窗下移且再次開始與第一列到第五列對應的5×5矩陣計算時,僅新輸入第五列來實現這一目的,而之前使用的第一列到第四列則利用暫存器上移指令來重複使用,如以上參照圖8H所闡述。
根據實施例,資料一旦被輸入,則將不再從記憶體裝置重新讀取,從而可降低對記憶體裝置進行存取的頻率,且性能及電源效率可得到最大化。
圖11示出用於解釋使用根據本發明概念實施例的半導體裝置的示例性關注區域(ROI)計算的流程圖。
關注區域計算可根據對於圖6至圖8H、圖10A及圖10B及表一所進一步闡述的特徵,使用半導體裝置(例如對於圖1至圖5D闡述的半導體裝置1)來執行。半導體裝置在此實施例中可包括:內部暫存器110,被配置成儲存從記憶體裝置500提供的圖像資料;資料排列層130,被配置成將所儲存的圖像資料重新排列成N個資料列,所述N個資料列分別具有多個通道;以及多個算數邏輯單位(ALU)160,被排列成用以處理N個資料列的N個算數邏輯單位群組160a、160b、160c、及160d。
參照圖11,在S1201處,資料排列層130被配置成對內部暫存器110中的所儲存的圖像資料的第一資料進行重新排列以提供經重新排列的第一圖像資料。第一資料可具有n×n矩陣大小,其中n是自然數。舉例來說,第一資料可為3×3矩陣,且可例如對應於圖10B所示的D1區的圖像資料。
在圖11所示S1203處,算數邏輯單位160被配置成使用經重新排列的第一圖像資料執行第一映射計算以產生第一輸出資料。
在圖11所示S1205處,資料排列層130被配置成對內部暫存器110中的所儲存的圖像資料的第三資料進行重新排列以提供經重新排列的第二圖像資料。此處,第三資料及第一資料被包含為內部暫存器110中所儲存的圖像資料的第二資料的部分。舉例來說,第二資料可具有(n+1)×(n+1)矩陣大小。舉例來說,第二資料可為圖10B所示包含資料項目N11、N12、N13、N21、
N14、N15、N16、N22、N17、N18、N19、N23、N24、N25、N26、及N27的4×4矩陣。在此實例中,第三資料可對應於圖10B所示D2區的資料項目N21、N22、N23、N27、N26、N25、及N24。對於此實例還應注意,D2區的第三資料不屬於D1區的第一資料。也就是說,D2區的第三資料不包含在由圖10B所示D1區的第一資料組成的3×3矩陣中。
在圖11所示S1207處,算數邏輯單位160被配置成使用經重新排列的第二圖像資料執行第二映射計算以產生第二輸出資料。
在圖11所示S1209處,算數邏輯單位160被配置成使用第一輸出資料及第二輸出資料執行歸納計算以產生最終圖像資料。
儘管已參照本發明概念的示例性實施例具體示出並闡述了本發明概念,然而所屬領域的普通技術人員應理解,在不背離由以上權利要求書所界定的本發明概念的精神及範圍的條件下,在本文中可作出形式及細節上的各種變化。因此,期望本實施例在所有方面均被視為例示性的而非限制性的,並應參照隨附權利要求書而非上述說明來指示本發明概念的範圍。
105‧‧‧記憶體層次結構
110‧‧‧暫存器文件/內部暫存器
130‧‧‧資料排列層
160、ALU1_1~ALU1_64、ALU2_1~ALU2_64、ALU8_1~ALU8_64、ALU9_1~ALU9_64‧‧‧算數邏輯單位
160a‧‧‧第一算數邏輯單位群組/算數邏輯單位群組
160b~160c‧‧‧第二算數邏輯單位群組~第八算數邏輯單位群組/算數邏輯單位群組
160d‧‧‧第九算數邏輯單位群組/算數邏輯單位群組
170‧‧‧控制器
Claims (14)
- 一種半導體裝置,包括:第一處理器,包括第一暫存器,所述第一處理器被配置成使用所述第一暫存器執行關注區域計算且根據單指令多資料架構處理指令;以及第二處理器,包括第二暫存器,所述第二處理器被配置成使用所述第二暫存器執行算術計算且根據超長指令字架構處理指令,其中所述第一暫存器是由所述第二處理器共用,且所述第二暫存器是由所述第一處理器共用,由所述第二處理器所處理的所述指令包括兩個或更多個槽位,以及所述兩個或更多個槽位中的至少一者是使用所述第一處理器來執行。
- 如申請專利範圍第1項所述的半導體裝置,其中所述第一處理器及所述第二處理器共用相同的指令集架構。
- 如申請專利範圍第1項所述的半導體裝置,其中所述第一暫存器包括圖像暫存器、係數暫存器及輸出暫存器中的至少一者。
- 如申請專利範圍第1項所述的半導體裝置,其中所述第二暫存器包括標量暫存器及向量暫存器中的至少一者。
- 如申請專利範圍第1項所述的半導體裝置,其中所述第一處理器及所述第二處理器分別由相應的獨立電源驅動。
- 如申請專利範圍第5項所述的半導體裝置,其中所述第一處理器及所述第二處理器中未被使用的一者的所述相應的獨立電源中的電源被切斷。
- 如申請專利範圍第1項所述的半導體裝置,其中所述第一處理器被配置成執行以下中的至少一者:一維濾波器計算、二維濾波器計算、統計變換計算、最小/最大濾波器計算、絕對差值和計算、誤差平方和計算、非極大值抑制計算及矩陣乘法計算,且所述第二處理器被配置成執行以下中的至少一者:預測計算、向量重組計算、向量位運算計算、蝶形計算及分類計算。
- 一種半導體裝置,包括:第一處理器,包括第一暫存器,所述第一處理器被配置成使用所述第一暫存器執行關注區域計算且根據單指令多資料架構處理指令;以及第二處理器,包括第二暫存器,所述第二處理器被配置成使用所述第二暫存器執行算術計算且根據超長指令字架構處理指令,其中所述第一處理器與所述第二處理器共用相同的指令集架構,由所述第二處理器所處理的所述指令包括兩個或更多個槽位,並且所述兩個或更多個槽位中的至少一者是使用所述第一處理器來執行。
- 如申請專利範圍第8項所述的半導體裝置,其中所述第一暫存器是由所述第二處理器共用,且所述第二暫存器是由所述第一處理器共用。
- 如申請專利範圍第8項所述的半導體裝置,其中所述第一暫存器包括圖像暫存器、係數暫存器及輸出暫存器中的至少一者。
- 如申請專利範圍第8項所述的半導體裝置,其中所述第二暫存器包括標量暫存器及向量暫存器中的至少一者。
- 如申請專利範圍第8項所述的半導體裝置,其中所述第一處理器包括資料排列單元,所述資料排列單元被配置成對用於處理的資料進行重新排列。
- 如申請專利範圍第12項所述的半導體裝置,其中所述第一處理器包括多個算數邏輯單位,所述多個算數邏輯單位相對於彼此並行地排列,且所述多個算數邏輯單位被配置成並行地處理來自所述資料排列單元的經重新排列的所述資料。
- 如申請專利範圍第8項所述的半導體裝置,其中所述第二處理器包括:提取單元,被配置成提供超長指令字指令;以及解碼器,被配置成將所述超長指令字指令解碼成多個指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??10-2017-0042125 | 2017-03-31 | ||
KR1020170042125A KR102235803B1 (ko) | 2017-03-31 | 2017-03-31 | 반도체 장치 |
KR10-2017-0042125 | 2017-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201837716A TW201837716A (zh) | 2018-10-16 |
TWI776838B true TWI776838B (zh) | 2022-09-11 |
Family
ID=63865574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107100401A TWI776838B (zh) | 2017-03-31 | 2018-01-05 | 半導體裝置 |
Country Status (5)
Country | Link |
---|---|
US (4) | US10409593B2 (zh) |
JP (1) | JP7154788B2 (zh) |
KR (1) | KR102235803B1 (zh) |
CN (1) | CN109447892B (zh) |
TW (1) | TWI776838B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102235803B1 (ko) | 2017-03-31 | 2021-04-06 | 삼성전자주식회사 | 반도체 장치 |
US11175915B2 (en) * | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US20220334634A1 (en) * | 2021-04-16 | 2022-10-20 | Maxim Integrated Products, Inc. | Systems and methods for reducing power consumption in embedded machine learning accelerators |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200813724A (en) * | 2006-07-28 | 2008-03-16 | Samsung Electronics Co Ltd | Multipath accessible semiconductor memory device with host interface between processors |
WO2010043401A2 (en) * | 2008-10-15 | 2010-04-22 | Martin Vorbach | Data processing device |
CN105589336A (zh) * | 2014-11-07 | 2016-05-18 | 三星电子株式会社 | 多处理器设备 |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3167363B2 (ja) * | 1991-08-29 | 2001-05-21 | 株式会社東芝 | 関心領域設定方法及び画像処理装置 |
US6058473A (en) * | 1993-11-30 | 2000-05-02 | Texas Instruments Incorporated | Memory store from a register pair conditional upon a selected status bit |
JP2889842B2 (ja) | 1994-12-01 | 1999-05-10 | 富士通株式会社 | 情報処理装置及び情報処理方法 |
US6195150B1 (en) * | 1997-07-15 | 2001-02-27 | Silverbrook Research Pty Ltd | Pseudo-3D stereoscopic images and output device |
JP3209205B2 (ja) * | 1998-04-28 | 2001-09-17 | 日本電気株式会社 | プロセッサにおけるレジスタ内容の継承装置 |
US6139498A (en) | 1998-12-29 | 2000-10-31 | Ge Diasonics Israel, Ltd. | Ultrasound system performing simultaneous parallel computer instructions |
US6397324B1 (en) * | 1999-06-18 | 2002-05-28 | Bops, Inc. | Accessing tables in memory banks using load and store address generators sharing store read port of compute register file separated from address register file |
JP2001014139A (ja) | 1999-06-28 | 2001-01-19 | Nec Corp | ワークファイルを使用するマルチスレッドソート処理方式及び処理方法 |
US6901422B1 (en) | 2001-03-21 | 2005-05-31 | Apple Computer, Inc. | Matrix multiplication in a vector processing system |
US6898691B2 (en) | 2001-06-06 | 2005-05-24 | Intrinsity, Inc. | Rearranging data between vector and matrix forms in a SIMD matrix processor |
JP3805314B2 (ja) * | 2003-02-27 | 2006-08-02 | Necエレクトロニクス株式会社 | プロセッサ |
US7162573B2 (en) | 2003-06-25 | 2007-01-09 | Intel Corporation | Communication registers for processing elements |
GB2409066B (en) | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
US7873812B1 (en) | 2004-04-05 | 2011-01-18 | Tibet MIMAR | Method and system for efficient matrix multiplication in a SIMD processor architecture |
US7386842B2 (en) | 2004-06-07 | 2008-06-10 | International Business Machines Corporation | Efficient data reorganization to satisfy data alignment constraints |
JP2006011924A (ja) * | 2004-06-28 | 2006-01-12 | Fujitsu Ltd | 再構成可能演算装置および半導体装置 |
CA2572954A1 (en) * | 2004-07-13 | 2006-02-16 | 3Plus1 Technology, Inc. | Programmable processor system with two types of sub-processors to execute multimedia applications |
JP2006236715A (ja) | 2005-02-23 | 2006-09-07 | Matsushita Electric Works Ltd | 照明器具 |
JP2007004542A (ja) * | 2005-06-24 | 2007-01-11 | Renesas Technology Corp | 半導体信号処理装置 |
US20070116357A1 (en) * | 2005-11-23 | 2007-05-24 | Agfa-Gevaert | Method for point-of-interest attraction in digital images |
US7624250B2 (en) | 2005-12-05 | 2009-11-24 | Intel Corporation | Heterogeneous multi-core processor having dedicated connections between processor cores |
KR100739785B1 (ko) | 2006-01-09 | 2007-07-13 | 삼성전자주식회사 | 관심 영역 기반 영상 부호화, 복호화 방법 및 장치 |
US20070239970A1 (en) * | 2006-04-06 | 2007-10-11 | I-Tao Liao | Apparatus For Cooperative Sharing Of Operand Access Port Of A Banked Register File |
US7697443B2 (en) * | 2006-04-13 | 2010-04-13 | International Business Machines Corporation | Locating hardware faults in a parallel computer |
CN101163240A (zh) * | 2006-10-13 | 2008-04-16 | 国际商业机器公司 | 一种滤波装置及其方法 |
US8725991B2 (en) | 2007-09-12 | 2014-05-13 | Qualcomm Incorporated | Register file system and method for pipelined processing |
US8213515B2 (en) * | 2008-01-11 | 2012-07-03 | Texas Instruments Incorporated | Interpolated skip mode decision in video compression |
US8248422B2 (en) | 2008-01-18 | 2012-08-21 | International Business Machines Corporation | Efficient texture processing of pixel groups with SIMD execution unit |
JP2010015257A (ja) * | 2008-07-01 | 2010-01-21 | Canon Inc | 画像処理装置、画像処理方法、及びプログラム |
US9652231B2 (en) | 2008-10-14 | 2017-05-16 | International Business Machines Corporation | All-to-all permutation of vector elements based on a permutation pattern encoded in mantissa and exponent bits in a floating-point SIMD architecture |
US7930519B2 (en) * | 2008-12-17 | 2011-04-19 | Advanced Micro Devices, Inc. | Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit |
JP5445469B2 (ja) | 2009-01-13 | 2014-03-19 | 日本電気株式会社 | Simd型並列データ処理装置及びデータソート方法並びにプロセッシングエレメント |
JP2010192983A (ja) * | 2009-02-16 | 2010-09-02 | Renesas Electronics Corp | フィルタ処理装置及び半導体装置 |
KR101110550B1 (ko) | 2009-04-08 | 2012-02-08 | 한양대학교 산학협력단 | 프로세서 장치, 멀티 프로세서 시스템 및 멀티 프로세서 시스템의 공유메모리 접근 방법 |
KR101027906B1 (ko) | 2009-04-28 | 2011-04-12 | 한국과학기술원 | 물체 인식 방법 및 장치 |
KR101662769B1 (ko) | 2010-03-09 | 2016-10-05 | 삼성전자주식회사 | 고속 정렬 장치 및 방법 |
KR101079691B1 (ko) | 2010-06-01 | 2011-11-04 | 공주대학교 산학협력단 | 데이터 정렬 방법과 상기 방법을 수행할 수 있는 장치들 |
KR101670958B1 (ko) | 2010-11-30 | 2016-11-01 | 삼성전자주식회사 | 이기종 멀티코어 환경에서의 데이터 처리 방법 및 장치 |
JP5648465B2 (ja) | 2010-12-17 | 2015-01-07 | 富士通セミコンダクター株式会社 | グラフィックスプロセッサ |
GB2489914B (en) * | 2011-04-04 | 2019-12-18 | Advanced Risc Mach Ltd | A data processing apparatus and method for performing vector operations |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9996500B2 (en) * | 2011-09-27 | 2018-06-12 | Renesas Electronics Corporation | Apparatus and method of a concurrent data transfer of multiple regions of interest (ROI) in an SIMD processor system |
JP5708450B2 (ja) | 2011-11-10 | 2015-04-30 | 富士通株式会社 | マルチコアプロセッサシステム、レジスタ利用方法、およびレジスタ利用プログラム |
JP5554358B2 (ja) * | 2012-03-23 | 2014-07-23 | 株式会社東芝 | マルチプロセッサシステムおよび電力制御方法 |
CN102707931A (zh) * | 2012-05-09 | 2012-10-03 | 刘大可 | 一种基于并行数据通道的数字信号处理器 |
US9405538B2 (en) | 2012-12-28 | 2016-08-02 | Intel Corporation | Functional unit having tree structure to support vector sorting algorithm and other algorithms |
KR20140092135A (ko) | 2013-01-15 | 2014-07-23 | 한국전자통신연구원 | 빅 데이터를 위한 병렬 정렬 방법 및 장치 |
KR101482229B1 (ko) | 2013-04-29 | 2015-01-14 | 주식회사 실리콘아츠 | 컴퓨터 실행 가능한 데이터 정렬 방법, 이를 수행하는 데이터 정렬 시스템 및 이를 저장하는 기록매체 |
JP6462979B2 (ja) * | 2013-09-06 | 2019-01-30 | キヤノン株式会社 | 画像処理装置、画像処理方法、プログラムおよび記憶媒体 |
KR102122406B1 (ko) | 2013-11-06 | 2020-06-12 | 삼성전자주식회사 | 셔플 명령어 처리 장치 및 방법 |
KR102310246B1 (ko) | 2014-04-23 | 2021-10-08 | 삼성전자주식회사 | 세컨더리 인덱스 생성 방법 및 세컨더리 인덱스 저장 장치 |
KR101573618B1 (ko) | 2014-07-04 | 2015-12-01 | 한양대학교 산학협력단 | 메모리 구조에 기반한 외부 퀵 정렬의 방법 및 장치 |
US9563953B2 (en) * | 2014-08-28 | 2017-02-07 | Qualcomm Incorporated | Systems and methods for determining a seam |
JP2016091488A (ja) | 2014-11-11 | 2016-05-23 | アズビル株式会社 | データソート方法およびプログラム |
JP2016112285A (ja) | 2014-12-17 | 2016-06-23 | 日立アロカメディカル株式会社 | 超音波診断装置 |
KR102332523B1 (ko) * | 2014-12-24 | 2021-11-29 | 삼성전자주식회사 | 연산 처리 장치 및 방법 |
KR101665207B1 (ko) | 2014-12-31 | 2016-10-14 | (주)베라시스 | 복수개의 검출윈도우를 통한 관심영역에서의 차량식별방법 |
KR101645517B1 (ko) * | 2015-04-01 | 2016-08-05 | 주식회사 씨케이앤비 | 특징점 추출 장치 및 방법과 이를 이용한 콘텐츠의 온라인 유통 현황 분석을 위한 이미지 매칭 시스템 |
US9569661B2 (en) * | 2015-05-21 | 2017-02-14 | Futurewei Technologies, Inc. | Apparatus and method for neck and shoulder landmark detection |
JP2017037505A (ja) * | 2015-08-11 | 2017-02-16 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US20170337156A1 (en) * | 2016-04-26 | 2017-11-23 | Onnivation Llc | Computing machine architecture for matrix and array processing |
KR102235803B1 (ko) | 2017-03-31 | 2021-04-06 | 삼성전자주식회사 | 반도체 장치 |
-
2017
- 2017-03-31 KR KR1020170042125A patent/KR102235803B1/ko active IP Right Grant
-
2018
- 2018-01-05 TW TW107100401A patent/TWI776838B/zh active
- 2018-02-27 US US15/905,979 patent/US10409593B2/en active Active
- 2018-03-27 JP JP2018060426A patent/JP7154788B2/ja active Active
- 2018-03-29 CN CN201810274218.4A patent/CN109447892B/zh active Active
-
2019
- 2019-07-24 US US16/520,761 patent/US10990388B2/en active Active
-
2021
- 2021-03-29 US US17/216,323 patent/US11645072B2/en active Active
-
2023
- 2023-03-31 US US18/129,119 patent/US12106098B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200813724A (en) * | 2006-07-28 | 2008-03-16 | Samsung Electronics Co Ltd | Multipath accessible semiconductor memory device with host interface between processors |
WO2010043401A2 (en) * | 2008-10-15 | 2010-04-22 | Martin Vorbach | Data processing device |
CN105589336A (zh) * | 2014-11-07 | 2016-05-18 | 三星电子株式会社 | 多处理器设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180300128A1 (en) | 2018-10-18 |
US20210216312A1 (en) | 2021-07-15 |
KR102235803B1 (ko) | 2021-04-06 |
TW201837716A (zh) | 2018-10-16 |
CN109447892B (zh) | 2023-11-28 |
US10409593B2 (en) | 2019-09-10 |
CN109447892A (zh) | 2019-03-08 |
KR20180111321A (ko) | 2018-10-11 |
JP2018173956A (ja) | 2018-11-08 |
US10990388B2 (en) | 2021-04-27 |
US11645072B2 (en) | 2023-05-09 |
US20230236832A1 (en) | 2023-07-27 |
JP7154788B2 (ja) | 2022-10-18 |
US12106098B2 (en) | 2024-10-01 |
US20190347096A1 (en) | 2019-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7146999B2 (ja) | 畳み込みニューラルネットワークのための効率的データレイアウト | |
CN110149802B (zh) | 用于在虚拟图像处理器指令集架构(isa)与具有二维移位阵列结构的目标硬件之间进行转译的编译器 | |
US11790609B2 (en) | Reducing level of detail of a polygon mesh to decrease a complexity of rendered geometry within a scene | |
TWI776838B (zh) | 半導體裝置 | |
US20200202198A1 (en) | Neural network processor | |
US10649771B2 (en) | Semiconductor device | |
CN110603544A (zh) | 用于四元数操作的基于张量的计算系统 | |
CN106846235A (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
US10248384B2 (en) | Arithmetic processing device and control method for arithmetic processing device | |
EP3678037A1 (en) | Neural network generator | |
CN107223237A (zh) | 用于存储器访问的方法和装置 | |
US11321092B1 (en) | Tensor-based memory access | |
US11164032B2 (en) | Method of performing data processing operation | |
CN107851016A (zh) | 向量算术指令 | |
US9600446B2 (en) | Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof | |
JP2021005227A (ja) | 演算装置および演算方法 | |
CN116185377A (zh) | 计算图的优化方法、计算装置及相关产品 | |
Yang et al. | Photomosaic generation by rearranging subimages, with GPU acceleration | |
WO2022001499A1 (zh) | 一种计算装置、芯片、板卡、电子设备和计算方法 | |
JP2024536901A (ja) | ハードウェアアクセラレータ最適化グループ畳み込みベースのニューラルネットワークモデル | |
Tokura | A Study on Efficient GPU Implementations for Many Small Problems | |
CN113867792A (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |