TWI793676B - 應用於類神經網路之填充架構 - Google Patents
應用於類神經網路之填充架構 Download PDFInfo
- Publication number
- TWI793676B TWI793676B TW110126012A TW110126012A TWI793676B TW I793676 B TWI793676 B TW I793676B TW 110126012 A TW110126012 A TW 110126012A TW 110126012 A TW110126012 A TW 110126012A TW I793676 B TWI793676 B TW I793676B
- Authority
- TW
- Taiwan
- Prior art keywords
- filling
- address
- signal
- memory
- multiplexer
- Prior art date
Links
Images
Landscapes
- Dram (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
一種應用於類神經網路之填充架構包含一填充計數器、一填充位址電路、一記憶體控制電路及一填充電路,該填充計數器輸出一計數訊號,該填充位址電路接收該計數訊號及複數個填充位址訊號,該填充位址電路輸出一填充位址控制訊號,該記憶體控制電路接收該填充位址控制訊號及一記憶體位址訊號,該記憶體控制電路輸出一記憶體數據,該填充電路接收該填充位址控制訊號及該記憶體數據,該填充電路輸出該記憶體數據或一填充值。
Description
本發明是關於一種填充架構,特別是關於一種應用於類神經網路之填充架構。
近來物聯網、自動駕駛等人工智慧相關領域大幅發展,且由於人工智慧之類神經網路可應用於影像辨識或語音辨識,使得類神經網路的邊緣運算受到了重視。其中,為了讓輸入圖的圖片大小在類神經網路的卷積運算中不受影響,中央處理單元會先在輸入圖進行填充(Padding),也就是在輸入圖中填充數值後再進行卷積計算。於先前技術中,一般是以中央處理單元透過軟體將各個輸入圖中填入填充值後存入DRAM(Dynamic Random Access Memory),接著再由DRAM將填充完後的輸入圖傳送至硬體之SRAM(Static Random Access Memory),最後再從SRAM中讀取出來進行卷積運算,但這樣的作法會讓填充運算占了整個類神經網路運算的極大部分,而不符合邊緣運算需要即時性之高速運算的需求。
本發明的主要目的在於提供一種應用於類神經網路之填充架構,
該填充架構可在硬體中對輸入資料完成填充,可大幅減少資料重新進行排列的時間,而加快運算速度並降低整體系統的功率消耗。
本發明之一種應用於類神經網路之填充架構包含一填充計數器、一填充位址電路、一記憶體控制電路及一填充電路,該填充計數器用以進行計數並輸出一計數訊號,該填充位址電路電性連接該填充計數器,該填充位址電路接收該計數訊號及複數個填充位址訊號,該填充位址電路根據該計數訊號輸出一填充位址控制訊號,該記憶體控制電路電性連接該填充位址電路,該記憶體控制電路接收該填充位址控制訊號及一記憶體位址訊號,該記憶體控制電路根據該填充位址控制訊號輸出一記憶體數據,該填充電路電性連接該填充位址電路及該記憶體控制電路以接收該填充位址控制訊號及該記憶體數據,該填充電路根據該填充位址控制訊號輸出該記憶體數據或一填充值。
本發明之該應用於類神經網路之填充架構可實現於晶片中,並直接以硬體架構達成填充運算,能夠減少資料重新排列的時間,而大幅提高填充之運算,且由於並非是在中央處理器中進行填充運算,可減少資料存入DRAM中再載入SRAM的資料大小,而減少整體系統之功率消耗,使本發明之該應用於類神經網路之填充架構相當適用於邊緣運算之系統。
100:應用於類神經網路之填充架構
110:填充計數器
111:加法器
112:第一正反器
120:填充位址電路
121:第一多工器
121a:第一輸入埠
121b:第一選擇埠
121c:第一輸出埠
130:記憶體控制電路
131:暫存選擇器
131a:第二多工器
131b:第二正反器
132:記憶體單元
140:填充電路
141:填充值輸出單元
142:第三多工器
P_Index_0~n:填充位址訊號
P_con:填充位址控制訊號
Ra:暫存位址訊號
M_addr:記憶體位址訊號
PI_c:計數訊號
M_data:記憶體數據
Rsa:記憶體選擇位址
PV:填充值
clk:時脈訊號
Rst:重置訊號
第1圖:依據本發明之一實施例,一種應用於類神經網路之填充架構的功能方塊圖。
第2圖:依據本發明之一實施例,該應用於類神經網路之填充架構的電路圖。
請參閱第1圖,其為本發明之一實施例,一種應用於類神經網路之填充架構100的功能方塊圖,該應用於類神經網路之填充架構100具有一填充計數器110、一填充位址電路120、一記憶體控制電路130及一填充電路140。該填充計數器110用以進行計數而輸出一計數訊號PI_c。該填充位址電路120電性連接該填充計數器110以接收該計數訊號PI_c,且該填充位址電路120根據該計數訊號PI_c輸出一填充位址控制訊號P_con。該記憶體控制電路130電性連接該填充位址電路120以接收該填充位址控制訊號P_con,且該記憶體控制電路130根據該填充位址控制訊號P_con輸出一記憶體數據M_data。該填充電路140電性連接該填充位址電路120及該記憶體控制電路130以接收該填充位址控制訊號P_con及該記憶體數據M_data,該填充電路140根據該填充位址控制訊號P_con輸出該記憶體數據M_data或一填充值PV。
請參閱第2圖,為本發明之該應用於類神經網路之填充架構100的電路圖,該填充計數器110具有一加法器111及一第一正反器112,該加法器111接收一初始訊號及該計數訊號PI_c進行相加而輸出一加法訊號,該第一正反器112電性連接該加法器111,以接收該加法訊號進行暫存並輸出該計數訊號PI_c,且該計數訊號PI_c回傳至該加法器111,藉此達成加法運算。在本實施例中,該初始訊號為1,也就是由0開始進行加1的計數,逐一計數各個像素位址以進行該記憶體數據M_data或該填充值PV的填入,直至所有像素位址完成。
該填充位址電路120具有一第一多工器121,該第一多工器121具有複數個第一輸入埠121a、一第一選擇埠121b及一第一輸出埠121c,各該第一輸入
埠121a接收各該填充位址訊號P_Index_0~n,該第一選擇埠121b接收該計數訊號PI_c,該第一輸出埠121c輸出該填充位址控制訊號P_con。該第一多工器121根據該計數訊號PI_c輸出其中之一該填充位址訊號P_Index_0~n為該填充位址控制訊號P_con。其中,各該填充位址訊號P_Index_0~n為預設進行填充值填入的像素位址,位址可以依需求任意設定,而當該計數訊號PI_c計數到其中之一該填充位址訊號P_Index_0~n的位址時,該第一輸出埠121c輸出該填充位址控制訊號P_con為被計數到之該填充位址訊號P_Index_0~n的位址,可讓後端電路藉由該填充位址控制訊號P_con進行控制。
請參閱第2圖,該記憶體控制電路130具有一暫存選擇器131及一記憶體單元132,該暫存選擇器131電性連接該填充位址電路120以接收該填充位址控制訊號P_con,且該暫存選擇器131輸出一暫存位址訊號Ra,該記憶體單元132電性連接該暫存選擇器131以接收該暫存位址訊號Ra,且該記憶體單元132根據該暫存位址訊號Ra輸出儲存於該位址中的該記憶體數據M_data。
在本實施例中,該記憶體控制電路130之該暫存選擇器131具有一第二多工器131a及一第二正反器131b,該第二多工器131a電性連接該填充位址電路120,該第二多工器131a接收該填充位址控制訊號P_con、該暫存位址訊號Ra及一記憶體位址訊號M_addr,且該第二多工器131a輸出一記憶體選擇位址Rsa,該第二正反器131b電性連接該第二多工器131a以接收該記憶體選擇位址Rsa,該第二正反器131b輸出該暫存位址訊號Ra,且該第二正反器131b將該暫存位址訊號Ra回傳至該第二多工器131a。其中,當該計數訊號PI_c計數到其中之一該填充位址訊號P_Index_0~n的位址時,該填充位址控制訊號P_con控制該第二多工器131a輸出之該暫存位址訊號Ra維持原本的位址,也是讓該記憶體選擇位址Rsa維持為
該第二正反器131b所暫存之該暫存位址訊號Ra,並透過該填充電路140輸出該填充值PV。而當該計數訊號PI_c並未計數到其中之一該填充位址訊號P_Index_0~n的位址時,該填充位址控制訊號P_con控制該第二多工器131a輸出之該記憶體選擇位址Rsa為記憶體位址訊號M_addr,並透過該填充電路140輸出該記憶體數據M_data。
該填充電路140具有一填充值輸出單元141及一第三多工器142,該填充值輸出單元141用以輸出該填充值PV,本實施例之該填充值PV為0,在其他實施例中,該填充值PV可依需求設定為其他數值,此並非本案之所限制。該第三多工器142電性連接該填充值輸出單元141、該填充位址電路120之該第一多工器121及該記憶體控制電路130之該記憶體單元132,該第三多工器142接收該填充值PV、該填充位址控制訊號P_con及該記憶體數據M_data,該第三多工器142根據該填充位址控制訊號P_con輸出該填充值PV或該記憶體數據M_data。
當該計數訊號PI_c計數到其中之一該填充位址訊號P_Index_0~n的位址時,該填充位址控制訊號P_con控制該第三多工器142輸出該填充值PV,相對地,當該計數訊號PI_c並未計數到填充位址時,該填充位址控制訊號P_con控制該第三多工器142輸出該記憶體數據M_data,藉此達成填充運算。由於本實施例之該應用於類神經網路之填充架構100可直接實現於晶片之硬體架構中,而非於中央處理器中進行,可大幅降低資料重新排列的時間,並免去將填補後之資料存入DRAM中再載入SRAM所需之較大讀取時間,而能夠降低功率消耗。
本發明之該應用於類神經網路之填充架構100可實現於晶片中,並直接以硬體架構達成填充運算,能夠減少資料重新排列的時間,而大幅提高填充之運算,且由於並非是在中央處理器中進行填充運算,可減少資料存入DRAM中
再載入SRAM的資料大小,而減少整體系統之功率消耗,使本發明之該應用於類神經網路之填充架構100相當適用於邊緣運算之系統。
本發明之保護範圍當視後附之申請專利範圍所界定者為準,任何熟知此項技藝者,在不脫離本發明之精神和範圍內所作之任何變化與修改,均屬於本發明之保護範圍。
100:應用於類神經網路之填充架構
110:填充計數器
111:加法器
112:第一正反器
120:填充位址電路
121:第一多工器
121a:第一輸入埠
121b:第一選擇埠
121c:第一輸出埠
130:記憶體控制電路
131:暫存選擇器
131a:第二多工器
131b:第二正反器
132:記憶體單元
140:填充電路
141:填充值輸出單元
142:第三多工器
P_Index_0~n:填充位址訊號
P_con:填充位址控制訊號
Ra:暫存位址訊號
M_addr:記憶體位址訊號
PI_c:計數訊號
M_data:記憶體數據
Rsa:記憶體選擇位址
PV:填充值
clk:時脈訊號
Rst:重置訊號
Claims (8)
- 一種應用於類神經網路之填充架構,其包含:一填充計數器,用以進行計數並輸出一計數訊號;一填充位址電路,電性連接該填充計數器,該填充位址電路接收該計數訊號及複數個填充位址訊號,該填充位址電路根據該計數訊號輸出一填充位址控制訊號;一記憶體控制電路,電性連接該填充位址電路,該記憶體控制電路接收該填充位址控制訊號及一記憶體位址訊號,該記憶體控制電路根據該填充位址控制訊號輸出一記憶體數據;以及一填充電路,電性連接該填充位址電路及該記憶體控制電路以接收該填充位址控制訊號及該記憶體數據,該填充電路根據該填充位址控制訊號輸出該記憶體數據或一填充值,其中該填充電路具有一填充值輸出單元及一第三多工器,該填充值輸出單元用以輸出該填充值,該第三多工器電性連接該填充值輸出單元、該填充位址電路及該記憶體控制電路,該第三多工器接收該填充值、該填充位址控制訊號及該記憶體數據,該第三多工器根據該填充位址控制訊號輸出該填充值或該記憶體數據。
- 如請求項1之應用於類神經網路之填充架構,其中該填充計數器具有一加法器及一第一正反器,該加法器接收一初始訊號及該計數訊號進行相加而輸出一加法訊號,該第一正反器電性連接該加法器,以接收該加法訊號並輸出該計數訊號,且該計數訊號回傳至該加法器。
- 如請求項2之應用於類神經網路之填充架構,其中該填充位址電路具有一第一多工器,該第一多工器具有複數個第一輸入埠、一第一選擇埠及一 第一輸出埠,各該第一輸入埠接收各該填充位址訊號,該第一選擇埠接收該計數訊號,該第一輸出埠輸出該填充位址控制訊號,其中,該第一多工器根據該計數訊號輸出其中之一該填充位址訊號為該填充位址控制訊號。
- 如請求項1之應用於類神經網路之填充架構,其中該記憶體控制電路具有一暫存選擇器及一記憶體單元,該暫存選擇器電性連接該填充位址電路以接收該填充位址控制訊號,且該暫存選擇器輸出一暫存位址訊號,該記憶體單元電性連接該暫存選擇器以接收該暫存位址訊號,且該記憶體單元輸出該記憶體數據。
- 如請求項4之應用於類神經網路之填充架構,其中該記憶體控制電路之該暫存選擇器具有一第二多工器及一第二正反器,該第二多工器電性連接該填充位址電路,該第二多工器接收該填充位址控制訊號、該暫存位址訊號及一記憶體位址訊號,且該第二多工器輸出一記憶體選擇位址,該第二正反器電性連接該第二多工器以接收該記憶體選擇位址,該第二正反器輸出該暫存位址訊號,且該暫存位址訊號回傳至該第二多工器。
- 如請求項3之應用於類神經網路之填充架構,其中該記憶體控制電路具有一暫存選擇器及一記憶體單元,該暫存選擇器電性連接該第一多工器之該第一輸出埠以接收該填充位址控制訊號,且該暫存選擇器輸出一暫存位址訊號,該記憶體單元電性連接該暫存選擇器以接收該暫存位址訊號,且該記憶體單元輸出該記憶體數據。
- 如請求項6應用於類神經網路之填充架構,其中該記憶體控制電路之該暫存選擇器具有一第二多工器及一第二正反器,該第二多工器電性連接該第一多工器之該第一輸出埠,該第二多工器接收該填充位址控制訊號、該暫存 位址訊號及一記憶體位址訊號,且該第二多工器輸出一記憶體選擇位址,該第二正反器電性連接該第二多工器以接收該記憶體選擇位址,且該第二正反器輸出該暫存位址訊號。
- 如請求項6之應用於類神經網路之填充架構,其中該第三多工器電性連接該第一多工器之該第一輸出埠及該記憶體控制電路之該記憶體單元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126012A TWI793676B (zh) | 2021-07-15 | 2021-07-15 | 應用於類神經網路之填充架構 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110126012A TWI793676B (zh) | 2021-07-15 | 2021-07-15 | 應用於類神經網路之填充架構 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202305622A TW202305622A (zh) | 2023-02-01 |
TWI793676B true TWI793676B (zh) | 2023-02-21 |
Family
ID=86661350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110126012A TWI793676B (zh) | 2021-07-15 | 2021-07-15 | 應用於類神經網路之填充架構 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI793676B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200842758A (en) * | 2007-02-16 | 2008-11-01 | Qualcomm Inc | Efficient 2-D and 3-D graphics processing |
US20180189639A1 (en) * | 2016-12-31 | 2018-07-05 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with re-shapeable memory |
CN111133447A (zh) * | 2018-02-18 | 2020-05-08 | 辉达公司 | 适于自主驾驶的对象检测和检测置信度 |
US20210089864A1 (en) * | 2016-08-11 | 2021-03-25 | Nvidia Corporation | Sparse convolutional neural network accelerator |
-
2021
- 2021-07-15 TW TW110126012A patent/TWI793676B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200842758A (en) * | 2007-02-16 | 2008-11-01 | Qualcomm Inc | Efficient 2-D and 3-D graphics processing |
US20210089864A1 (en) * | 2016-08-11 | 2021-03-25 | Nvidia Corporation | Sparse convolutional neural network accelerator |
US20180189639A1 (en) * | 2016-12-31 | 2018-07-05 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with re-shapeable memory |
CN111133447A (zh) * | 2018-02-18 | 2020-05-08 | 辉达公司 | 适于自主驾驶的对象检测和检测置信度 |
Also Published As
Publication number | Publication date |
---|---|
TW202305622A (zh) | 2023-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301455B (zh) | 用于卷积神经网络的混合立方体存储系统及加速计算方法 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
WO2017173755A1 (zh) | 片上数据划分读写方法、系统及其装置 | |
CN107392309A (zh) | 一种基于fpga的通用定点数神经网络卷积加速器硬件结构 | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
US20220188073A1 (en) | Data-type-aware clock-gating | |
CN103760525A (zh) | 一种补齐式原地矩阵转置方法 | |
CN114942831A (zh) | 处理器、芯片、电子设备及数据处理方法 | |
CN115860080A (zh) | 计算核、加速器、计算方法、装置、设备、介质及系统 | |
WO2018148918A1 (zh) | 存储设备、芯片及存储设备的控制方法 | |
US11567661B2 (en) | Virtual memory management method and processor | |
US11500802B1 (en) | Data replication for accelerator | |
WO2020118713A1 (zh) | 位宽匹配电路、数据写入装置、数据读出装置和电子设备 | |
US20200293452A1 (en) | Memory device and method including circular instruction memory queue | |
TWI793676B (zh) | 應用於類神經網路之填充架構 | |
KR20210081663A (ko) | 인터커넥트 장치, 인터커넥트 장치의 동작 방법 및 인터커넥트 장치를 포함하는 AI(Artificial Intelligence) 가속기 시스템 | |
US11550736B1 (en) | Tensorized direct memory access descriptors | |
TWI777268B (zh) | 虛擬記憶管理方法及處理器 | |
CN112596881B (zh) | 存储部件及人工智能处理器 | |
US11755235B2 (en) | Increasing random access bandwidth of a DDR memory in a counter application | |
US20220318604A1 (en) | Sparse machine learning acceleration | |
US11983128B1 (en) | Multidimensional and multiblock tensorized direct memory access descriptors | |
US11748253B1 (en) | Address generation for page collision prevention in memory regions | |
US20240257844A1 (en) | Memory device including a filtering circuit and memory system including the memory device and filtering circuit | |
US11789859B1 (en) | Address generation for page collision prevention |