[發明專利]數據處理方法、處理器、數據處理裝置及存儲介質有效
| 申請號: | 201811457691.2 | 申請日: | 2018-11-30 |
| 公開(公告)號: | CN111258643B | 公開(公告)日: | 2022-08-09 |
| 發明(設計)人: | 不公告發明人 | 申請(專利權)人: | 上海寒武紀信息科技有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 北京華進京聯知識產權代理有限公司 11606 | 代理人: | 孫巖 |
| 地址: | 200120 上海市浦*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據處理 方法 處理器 裝置 存儲 介質 | ||
本申請涉及一種數據處理方法、處理器、數據處理裝置及存儲介質。所述數據處理方法包括:根據運算指令從第一存儲裝置中讀取子數據段,并將當前讀取的子數據段存儲至第二存儲裝置中,根據運算指令,將子數據段中的N個子數據逐一進行邏輯非運算得到當前運算結果,并將當前運算結果存儲于第一存儲裝置中,之后返回繼續從第一存儲裝置中讀取第一子數據,直至完成該運算指令對應的相關運算操作。通過將大數據拆分成小數據進行循環運算處理,通過對操作數按照數據讀取容量循環讀取,使得運算處理時的能夠容納的數據大小滿足要求,且加快運算速度。
技術領域
本申請涉及數據處理技術領域,特別是涉及一種數據處理方法、處理器、數據處理裝置及存儲介質。
背景技術
原子操作是指不會被線程調度機制打斷的操作,這種操作一旦開始,就一直運行到結束,中間不會有任何線程切換(例如共享變量i執行累加,非原子操作情況下多個核同時i++的結果會出錯)。在多核處理器系統當中,多個處理器核共享同一塊存儲空間,通常的數據傳輸技術可能無法保證原子性,即同一時間可能有多個處理器核訪問同一地址。
在實際程序當中,運算結果存儲在一個存儲空間內,該存儲空間具有一定的地址范圍,由于該存儲空間可能在運算完成之前被其他處理器核訪問,傳統的做法是先將該存儲空間的數據讀到存儲單元,然后將運算結果存在該存儲單元,指令運算結束之后將該存儲單元的結果寫回到該存儲空間。然而,如果運算期間有其它的處理器核訪問該存儲空間,就會得到一個錯誤的結果,破壞這次累加的原子性。
發明內容
基于此,有必要針對上述技術問題,提供一種能夠實現原子操作期間單獨訪問片外存儲空間的數據處理方法、處理器、數據處理裝置及存儲介質。
一種數據處理方法,所述方法包括:
獲取運算指令,其中,所述運算指令用于實現源操作數的邏輯非運算,所述源操作數包括至少一個子數據段,每一所述子數據段包括N個子數據;
根據數據讀取容量以及所述運算指令,按照預設的數據讀取方式,從第一存儲裝置中讀取所述子數據段,并將當前讀取的所述子數據段存儲至第二存儲裝置,其中,所述第一存儲裝置為片外存儲裝置,所述第二存儲裝置為片上存儲裝置;
根據所述運算指令,將所述子數據段中的N個子數據逐一進行邏輯非運算得到當前運算結果,并將所述當前運算結果存儲至所述第二存儲裝置以及所述第一存儲裝置中;
之后,返回根據數據讀取容量以及所述運算指令,按照預設的數據讀取方式,從第一存儲裝置中讀取所述子數據段的步驟,直至完成所述運算指令對應的運算操作。
在其中一個實施例中,每當將所述當前運算結果存儲至所述第一存儲裝置中之后,所述方法還包括如下步驟:
控制計數器累加一次或遞減一次,之后,返回根據數據讀取容量以及所述運算指令,按照預設的數據讀取方式,從第一存儲裝置中讀取所述子數據段的步驟,直至所述計數器從初始值累加至目標循環次數,或所述計數器從所述目標循環次數遞減為初始值,完成所述運算指令對應的運算操作。
在其中一個實施例中,所述運算指令的指令格式,包括指令類別、指令類型、第一源操作數、第二源操作數、目標操作數及操作碼;
所述指令類別用于確定所述運算指令是否為原子操作運算指令;
所述指令類型用于確定所述運算指令的運算類型;
所述操作碼用于配置源操作數的個數;
所述目標操作數用于表示所述當前運算結果。
一種用于數據處理方法的處理器,所述處理器包括運算電路、讀寫電路以及與所述運算電路鄰近設置的第二存儲裝置,所述第二存儲裝置能夠通過所述讀寫電路與所述處理器外部的第一存儲裝置連接;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海寒武紀信息科技有限公司,未經上海寒武紀信息科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811457691.2/2.html,轉載請聲明來源鉆瓜專利網。





