本技術涉及芯片,特別是涉及一種數據搬移方法、裝置、芯片、設備、存儲介質及程序產品。
背景技術:
1、高級精簡指令集計算機(advanced?risc?machine,arm)架構的芯片通常會利用高級可擴展接口(advanced?extensible?interface,axi)總線,將一個地址讀取到的數據,寫入另一個地址中。
2、相關技術中,利用axi總線進行的讀請求或寫請求對應的目標搬移數據,可以拆分為至少一個子數據,每個子數據可以分別進行一次傳輸,從而完成讀請求或寫請求的數據搬移。
3、然而,由于相關技術中,目標搬移數據拆分成的子數據的大小是隨機的,從而導致拆分后的子數據的個數過多,占用過多帶寬導致傳輸性能較差,進而降低了數據搬移效率。
技術實現思路
1、基于此,有必要針對上述技術問題,提供一種能夠提高數據搬移效率的數據搬移方法、裝置、設備、存儲介質及程序產品。
2、第一方面,本技術提供了一種數據搬移方法。應用于主設備,所述方法包括:
3、向第一從設備發送讀請求,所述讀請求用于請求從第一從設備的源地址中讀取目標搬移數據,所述讀請求中包括有第一控制信息和第二控制信息,所述第一控制信息用于指示所述目標搬移數據在讀取過程中的傳輸次數,所述第二控制信息用于指示每個第一子數據的數據量均為設定數據量,所述第一子數據為在讀取過程中每次傳輸的目標搬移數據的子數據;
4、接收所述第一從設備傳輸的至少一個第一子數據;
5、根據所述至少一個第一子數據,生成所述目標搬移數據。
6、在其中一個實施例中,所述根據所述至少一個第一子數據,生成所述目標搬移數據,包括:
7、若所述源地址為非對齊地址,則根據所述源地址的信息和所述目標搬移數據的數據量,裁剪所述至少一個第一子數據中的無效字節,生成所述目標搬移數據。
8、在其中一個實施例中,所述根據所述源地址的信息和所述目標搬移數據的數據量,裁剪所述至少一個第一子數據中的無效字節,生成所述目標搬移數據,包括:
9、若所述第一控制信息指示的傳輸次數為一,則根據所述源地址的信息和所述目標搬移數據的數據量,裁剪單次傳輸的第一子數據中的無效字節;
10、將裁剪后的單次傳輸的第一子數據,確定為所述目標搬移數據。
11、在其中一個實施例中,所述根據所述源地址的信息和所述目標搬移數據的數據量,裁剪所述至少一個第一子數據中的無效字節,生成所述目標搬移數據,包括:
12、若所述第一控制信息指示的傳輸次數大于一,則將所述至少一個第一子數據進行拼接,得到待處理數據;
13、根據所述源地址的信息和所述目標搬移數據的數據量,裁剪所述待處理數據中的無效字節;
14、通過將裁剪后的待處理數據中的有效部分前移,生成所述目標搬移數據。
15、在其中一個實施例中,所述根據所述至少一個第一子數據,生成所述目標搬移數據,包括:
16、若所述源地址為對齊地址,則將所述至少一個第一子數據拼接為所述目標搬移數據。
17、在其中一個實施例中,在所述向第一從設備發送讀請求之前,所述方法還包括:
18、獲取待執行的axi任務,所述axi任務用于指示所述主設備將所述目標搬移數據從所述第一從設備的源地址搬移到第二從設備的目的地址,所述axi任務中包含有所述源地址的信息、所述目的地址的信息和所述目標搬移數據的數據量;
19、將所述源地址的信息、所述目的地址的信息和所述目標搬移數據的數據量存儲在目標寄存器中。
20、第二方面,本技術提供了一種數據搬移方法。應用于主設備,所述方法包括:
21、根據目的地址的信息,生成目標搬移數據對應的至少一個第二子數據,所述第二子數據為在寫入過程中每次傳輸的目標搬移數據的子數據,所述目的地址為所述目標搬移數據的寫入地址;
22、根據所述至少一個第二子數據,確定所述目標搬移數據的第三控制信息和第四控制信息,所述第三控制信息用于指示所述目標搬移數據在寫入過程中的傳輸次數,所述第四控制信息用于指示每次傳輸的第二子數據中的有效字節;
23、向所述目的地址對應的第二從設備發送寫請求,所述寫請求用于請求在所述目的地址寫入所述目標搬移數據,所述寫請求中包含有所述第三控制信息、所述第四控制信息和第五控制信息,所述第五控制信息用于指示每個第二子數據的數據量均為設定數據量;
24、根據所述第三控制信息、所述第四控制信息和所述第五控制信息,向所述第二從設備發送至少一個第二子數據,以傳輸所述目標搬移數據。
25、在其中一個實施例中,所述根據目的地址的信息,生成所述目標搬移數據對應的至少一個第二子數據,包括:
26、若所述目的地址為對齊地址,則根據所述設定數據量將所述目標搬移數據劃分為至少一個第二子數據。
27、在其中一個實施例中,所述根據目的地址的信息,生成所述目標搬移數據對應的至少一個第二子數據,包括:
28、若所述目的地址為非對齊地址,則通過在所述目標搬移數據中添加無效字節,使所述目標搬移數據移位;
29、根據所述設定數據量將移位后的目標搬移數據劃分為至少一個第二子數據。
30、第三方面,本技術提供了一種數據搬移方法。應用于第一從設備,所述方法包括:
31、接收主設備發送的讀請求,所述讀請求用于請求從所述第一從設備的源地址中讀取目標搬移數據,所述讀請求中包括有第一控制信息和第二控制信息,所述第一控制信息用于指示所述目標搬移數據在讀取過程中的傳輸次數,所述第二控制信息用于指示每個第一子數據的數據量均為設定數據量,所述第一子數據為在讀取過程中每次傳輸的目標搬移數據的子數據;
32、根據所述第一控制信息和所述第二控制信息,向所述主設備發送至少一個第一子數據,以傳輸所述目標搬移數據。
33、第四方面,本技術提供了一種數據搬移方法。應用于第二從設備,所述方法包括:
34、接收主設備發送的寫請求,所述寫請求用于請求在目的地址寫入目標搬移數據,所述寫請求中包含有第三控制信息、第四控制信息和第五控制信息,所述第三控制信息用于指示所述目標搬移數據在寫入過程中的傳輸次數,所述第四控制信息用于指示每次傳輸的第二子數據中的有效字節,所述第五控制信息用于指示每個第二子數據的數據量均為設定數據量;
35、接收所述主設備傳輸的至少一個第二子數據;
36、根據所述第三控制信息、所述第四控制信息、所述第五控制信息和所述至少一個第二子數據,將所述目標搬移數據寫入所述目的地址。
37、第五方面,本技術提供了一種數據搬移裝置,所述裝置包括:
38、第一發送模塊,用于向第一從設備發送讀請求,所述讀請求用于請求從第一從設備的源地址中讀取目標搬移數據,所述讀請求中包括有第一控制信息和第二控制信息,所述第一控制信息用于指示所述目標搬移數據在讀取過程中的傳輸次數,所述第二控制信息用于指示每個第一子數據的數據量均為設定數據量,所述第一子數據為在讀取過程中每次傳輸的目標搬移數據的子數據;
39、第一接收模塊,用于接收所述第一從設備傳輸的至少一個第一子數據;
40、第一處理模塊,用于根據所述至少一個第一子數據,生成所述目標搬移數據。
41、在其中一個實施例中,所述第一處理模塊,具體用于若所述源地址為非對齊地址,則根據所述源地址的信息和所述目標搬移數據的數據量,裁剪所述至少一個第一子數據中的無效字節,生成所述目標搬移數據。
42、在其中一個實施例中,所述第一處理模塊,具體用于若所述第一控制信息指示的傳輸次數為一,則根據所述源地址的信息和所述目標搬移數據的數據量,裁剪單次傳輸的第一子數據中的無效字節;將裁剪后的單次傳輸的第一子數據,確定為所述目標搬移數據。
43、在其中一個實施例中,所述第一處理模塊,具體用于若所述第一控制信息指示的傳輸次數大于一,則將所述至少一個第一子數據進行拼接,得到待處理數據;根據所述源地址的信息和所述目標搬移數據的數據量,裁剪所述待處理數據中的無效字節;通過將裁剪后的待處理數據中的有效部分前移,生成所述目標搬移數據。
44、在其中一個實施例中,所述第一處理模塊,具體用于若所述源地址為對齊地址,則將所述至少一個第一子數據拼接為所述目標搬移數據。
45、在其中一個實施例中,所述第一處理模塊,還用于獲取待執行的高級可擴展接口axi任務,所述axi任務用于指示所述主設備將所述目標搬移數據從所述第一從設備的源地址搬移到第二從設備的目的地址,所述axi任務中包含有所述源地址的信息、所述目的地址的信息和所述目標搬移數據的數據量;將所述源地址的信息、所述目的地址的信息和所述目標搬移數據的數據量存儲在目標寄存器中。
46、第六方面,本技術提供了一種數據搬移裝置,所述裝置包括:
47、第二處理模塊,用于根據目的地址的信息,生成目標搬移數據對應的至少一個第二子數據,所述第二子數據為在寫入過程中每次傳輸的目標搬移數據的子數據,所述目的地址為所述目標搬移數據的寫入地址;根據所述至少一個第二子數據,確定所述目標搬移數據的第三控制信息和第四控制信息,所述第三控制信息用于指示所述目標搬移數據在寫入過程中的傳輸次數,所述第四控制信息用于指示每次傳輸的第二子數據中的有效字節;
48、第二發送模塊,用于向所述目的地址對應的第二從設備發送寫請求,所述寫請求用于請求在所述目的地址寫入所述目標搬移數據,所述寫請求中包含有所述第三控制信息、所述第四控制信息和第五控制信息,所述第五控制信息用于指示每個第二子數據的數據量均為設定數據量;根據所述第三控制信息、所述第四控制信息和所述第五控制信息,向所述第二從設備發送至少一個第二子數據,以傳輸所述目標搬移數據。
49、在其中一個實施例中,所述第二處理模塊,具體用于若所述目的地址為對齊地址,則根據所述設定數據量將所述目標搬移數據劃分為至少一個第二子數據。
50、在其中一個實施例中,所述第二處理模塊,具體用于若所述目的地址為非對齊地址,則通過在所述目標搬移數據中添加無效字節,使所述目標搬移數據移位;根據所述設定數據量將移位后的目標搬移數據劃分為至少一個第二子數據。
51、第七方面,本技術提供了一種數據搬移裝置,所述裝置包括:
52、第二接收模塊,用于接收主設備發送的讀請求,所述讀請求用于請求從第一從設備的源地址中讀取目標搬移數據,所述讀請求中包括有第一控制信息和第二控制信息,所述第一控制信息用于指示所述目標搬移數據在讀取過程中的傳輸次數,所述第二控制信息用于指示每個第一子數據的數據量均為設定數據量,所述第一子數據為在讀取過程中每次傳輸的目標搬移數據的子數據;
53、第三發送模塊,用于根據所述第一控制信息和所述第二控制信息,向所述主設備發送至少一個第一子數據,以傳輸所述目標搬移數據。
54、第八方面,本技術提供了一種數據搬移裝置,所述裝置包括:
55、第三接收模塊,用于接收主設備發送的寫請求,所述寫請求用于請求在目的地址寫入目標搬移數據,所述寫請求中包含有第三控制信息、第四控制信息和第五控制信息,所述第三控制信息用于指示所述目標搬移數據在寫入過程中的傳輸次數,所述第四控制信息用于指示每次傳輸的第二子數據中的有效字節,所述第五控制信息用于指示每個第二子數據的數據量均為設定數據量;接收所述主設備傳輸的至少一個第二子數據;
56、第三處理模塊,用于根據所述第三控制信息、所述第四控制信息、所述第五控制信息和所述至少一個第二子數據,將所述目標搬移數據寫入所述目的地址。
57、第九方面,本技術還提供了一種計算機設備。所述計算機設備包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現上述第一至第四任一方面所述的數據搬移方法。
58、第十方面,本技術還提供了一種計算機可讀存儲介質。所述計算機可讀存儲介質,其上存儲有計算機程序,所述計算機程序被處理器執行時實現第一至第四任一方面所述的數據搬移方法。
59、第十一方面,本技術還提供了一種計算機程序產品。所述計算機程序產品,包括計算機程序,該計算機程序被處理器執行時實現第一至第四任一方面所述的數據搬移方法。
60、第十二方面,本技術還提供了一種一種數據處理器芯片,所述數據處理器芯片包括處理器和存儲器,所述存儲器存儲有計算機程序,其特征在于,所述所述處理器執行所述計算機程序時實現實現第一至第四任一方面所述的數據搬移方法。
61、上述數據搬移方法、裝置、設備、存儲介質及程序產品,主設備首先向第一從設備發送讀請求,讀請求用于請求從第一從設備的源地址中讀取目標搬移數據,讀請求中包括有第一控制信息和第二控制信息,第一控制信息用于指示目標搬移數據在讀取過程中的傳輸次數,第二控制信息用于指示每個第一子數據的數據量均為設定數據量,第一子數據為在讀取過程中每次傳輸的目標搬移數據的子數據。隨后,主設備接收第一從設備傳輸的至少一個第一子數據。最后,主設備根據至少一個第一子數據,生成目標搬移數據。通過第二控制信息,使得每個第一子數據的數據量均為設定數據量,進而使得在目標搬移數據傳輸過程中每次傳輸的第一子數據的數據量為固定值,以完成目標搬移數據的讀取。通過該方式,可以避免第一子數據過多而占用大量帶寬,避免了性能浪費,進而提高了數據搬移效率。