本技術(shù)涉及計算設(shè)備中的數(shù)據(jù)處理領(lǐng)域,特別涉及一種數(shù)據(jù)分發(fā)電路、方法、介質(zhì)及芯片。
背景技術(shù):
1、在現(xiàn)代數(shù)字系統(tǒng)中,數(shù)據(jù)處理和傳輸?shù)男蕦τ谙到y(tǒng)性能至關(guān)重要,而且隨著數(shù)字系統(tǒng)的復(fù)雜性不斷增加,傳統(tǒng)的單一處理單元已經(jīng)無法滿足高吞吐量、低延遲的數(shù)據(jù)處理需求。多通道的架構(gòu)成為解決這一問題的主流設(shè)計趨勢。
2、在多通道數(shù)據(jù)領(lǐng)域中,現(xiàn)有的設(shè)計通常是將數(shù)據(jù)從內(nèi)存中讀取,經(jīng)過處理后再傳輸?shù)较鄳?yīng)的下游通道,然而,由于需要等待數(shù)據(jù)處理的過程,故而在數(shù)據(jù)處理時,需要將數(shù)據(jù)在寄存器中儲存,故而需要大量的寄存器來暫存數(shù)據(jù),進而導(dǎo)致相應(yīng)的處理芯片面積增加、功耗上升。
技術(shù)實現(xiàn)思路
1、本技術(shù)的主要目的是提出一種數(shù)據(jù)分發(fā)電路、方法、介質(zhì)及芯片,旨在解決目前在多通道數(shù)據(jù)傳輸中,需要大量的寄存器來暫存數(shù)據(jù),導(dǎo)致處理芯片面積增加、功耗上升的問題。
2、為實現(xiàn)上述目的,本技術(shù)提出一種數(shù)據(jù)分發(fā)電路,包括:內(nèi)存交互模塊、頭信息處理模塊、數(shù)據(jù)處理模塊和數(shù)據(jù)輸出模塊;
3、所述內(nèi)存交互模塊被配置為:響應(yīng)于收到數(shù)據(jù)讀取指令,第一次讀取所述數(shù)據(jù)讀取指令對應(yīng)的目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和各個子數(shù)據(jù),并將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至所述頭信息處理模塊;
4、所述頭信息處理模塊被配置為:響應(yīng)于接收到所述數(shù)據(jù)頭和各個子數(shù)據(jù),確定所述數(shù)據(jù)頭及所述各個子數(shù)據(jù)與各個下游通道的第一匹配關(guān)系,并將所述第一匹配關(guān)系發(fā)送至所述數(shù)據(jù)處理模塊,以及向所述內(nèi)存交互模塊發(fā)送匹配完成信號;
5、所述內(nèi)存交互模塊還被配置為:響應(yīng)于收到所述匹配完成信號,第二次讀取所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和各個子數(shù)據(jù),并將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至所述數(shù)據(jù)處理模塊;
6、所述數(shù)據(jù)處理模塊被配置為:響應(yīng)于接收到所述數(shù)據(jù)頭和所述各個子數(shù)據(jù),確定所述數(shù)據(jù)輸出模塊的先進先出緩存序列與所述各個下游通道的第二匹配關(guān)系,并基于所述第一匹配關(guān)系和所述第二匹配關(guān)系,將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至所述數(shù)據(jù)輸出模塊的先進先出緩存序列;
7、所述數(shù)據(jù)輸出模塊被配置為:響應(yīng)于接收到的所述數(shù)據(jù)頭和所述各個子數(shù)據(jù),將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至相應(yīng)的下游通道。
8、在本技術(shù)實施中,所述內(nèi)存交互模塊還被配置為:
9、在收到所述數(shù)據(jù)讀取指令后,解析所述數(shù)據(jù)讀取指令,確定所述目標(biāo)數(shù)據(jù)包在預(yù)設(shè)存儲模塊中的首地址;
10、基于所述首地址從預(yù)設(shè)存儲模塊中讀取所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭;
11、基于所述數(shù)據(jù)頭確定所述目標(biāo)數(shù)據(jù)包所包含的子數(shù)據(jù)的個數(shù);
12、基于所述首地址和所述子數(shù)據(jù)的個數(shù),從所述存儲模塊中讀取所述各個子數(shù)據(jù)。
13、在本技術(shù)實施中,所述內(nèi)存交互模塊還被配置為:從所述存儲模塊的各個存儲塊中并行讀取所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)。
14、在本技術(shù)實施中,所述內(nèi)存交互模塊還被配置為:
15、在每次獲取到所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和各個子數(shù)據(jù)后,將獲取到的數(shù)據(jù)頭和各個子數(shù)據(jù)重排,以使所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)按照各自在所述目標(biāo)數(shù)據(jù)包內(nèi)的順序緩存至所述內(nèi)存交互模塊的先進先出緩存序列中。
16、在本技術(shù)實施中,所述頭信息處理模塊還被配置為:
17、提取所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)的第一特征值;
18、基于所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)的第一特征值及預(yù)設(shè)寄存信息,確定所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)所匹配的下游通道。
19、在本技術(shù)實施中,所述數(shù)據(jù)處理模塊還被配置為:
20、在收到所述各個子數(shù)據(jù)后,提取所述各個子數(shù)據(jù)的有效信息,得到目標(biāo)輸出數(shù)據(jù),所述目標(biāo)輸出數(shù)據(jù)包括所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和提取后的各個子數(shù)據(jù),并基于所述第一匹配關(guān)系和所述第二匹配關(guān)系,將所述目標(biāo)輸出數(shù)據(jù)發(fā)送至所述數(shù)據(jù)輸出模塊的先進先出緩存序列。
21、在本技術(shù)實施中,所述數(shù)據(jù)處理模塊還被配置為:
22、在獲取到所述目標(biāo)數(shù)據(jù)包后,提取所述目標(biāo)數(shù)據(jù)包的第二特征值;
23、基于所述第二特征值,確定所述數(shù)據(jù)輸出模塊的先進先出緩存序列與所述各個下游通道的第二匹配關(guān)系。
24、在本技術(shù)實施中,所述數(shù)據(jù)處理模塊還被配置為:
25、基于所述第一匹配關(guān)系和所述第二匹配關(guān)系,確定所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)在所述數(shù)據(jù)輸出模塊內(nèi)對應(yīng)的目標(biāo)先進先出緩存序列,其中,所述數(shù)據(jù)頭和任一所述子數(shù)據(jù)對應(yīng)的目標(biāo)先進先出緩存序列,在所述第一匹配關(guān)系和所述第二匹配關(guān)系中均與同一個下游通道匹配;
26、將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)分別發(fā)送至各自在所述數(shù)據(jù)輸出模塊中對應(yīng)的目標(biāo)先進先出緩存序列。
27、在本技術(shù)實施中,所述數(shù)據(jù)輸出模塊還被配置為:
28、在將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至相應(yīng)的下游通道后,向所述內(nèi)存交互模塊發(fā)送傳輸完成指令;
29、所述內(nèi)存交互模塊還被配置為:響應(yīng)于接收到所述傳輸完成指令,向預(yù)設(shè)同步內(nèi)存模塊發(fā)送同步信息,所述同步信息包括本次數(shù)據(jù)傳輸向下游通道所發(fā)送的子數(shù)據(jù)的個數(shù)。
30、本技術(shù)還提出一種數(shù)據(jù)分發(fā)方法,運用于上述任一實施例所述的數(shù)據(jù)分發(fā)電路,所述數(shù)據(jù)分發(fā)方法包括:
31、響應(yīng)于收到數(shù)據(jù)讀取指令,基于所述內(nèi)存交互模塊第一次讀取所述數(shù)據(jù)讀取指令對應(yīng)的目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和各個子數(shù)據(jù),并將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至所述頭信息處理模塊;
32、基于所述頭信息處理模塊確定所述數(shù)據(jù)頭及所述各個子數(shù)據(jù)與各個下游通道的第一匹配關(guān)系,并在得到所述第一匹配關(guān)系后,將所述第一匹配關(guān)系發(fā)送至所述數(shù)據(jù)處理模塊,以及向所述內(nèi)存交互模塊發(fā)送匹配完成信號;
33、響應(yīng)于所述內(nèi)存交互模塊收到所述匹配完成信號,基于所述內(nèi)存交互模塊第二次讀取所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和各個子數(shù)據(jù),并將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至所述數(shù)據(jù)處理模塊;
34、基于所述數(shù)據(jù)處理模塊確定所述數(shù)據(jù)輸出模塊的先進先出緩存序列與所述各個下游通道的第二匹配關(guān)系,并基于所述第一匹配關(guān)系和所述第二匹配關(guān)系,將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至所述數(shù)據(jù)輸出模塊的先進先出緩存序列;
35、基于所述數(shù)據(jù)處理模塊將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至相應(yīng)的下游通道。
36、在本技術(shù)實施中,在所述內(nèi)存交互模塊收到所述數(shù)據(jù)讀取指令后,所述數(shù)據(jù)分發(fā)方法還包括:
37、基于所述內(nèi)存交互模塊解析所述數(shù)據(jù)讀取指令,確定所述目標(biāo)數(shù)據(jù)包在預(yù)設(shè)存儲模塊中的首地址;
38、基于所述首地址從預(yù)設(shè)存儲模塊中讀取所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭;
39、基于所述數(shù)據(jù)頭確定所述目標(biāo)數(shù)據(jù)包所包含的子數(shù)據(jù)的個數(shù);
40、基于所述首地址和所述子數(shù)據(jù)的個數(shù),從所述存儲模塊中讀取所述各個子數(shù)據(jù)。
41、在本技術(shù)實施中,基于所述內(nèi)存交互模塊從所述存儲模塊的各個存儲塊中并行讀取所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)。
42、在本技術(shù)實施中,在所述內(nèi)存交互模塊讀取到所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和各個子數(shù)據(jù)后,所述數(shù)據(jù)分發(fā)方法還包括:
43、將獲取到的數(shù)據(jù)頭和各個子數(shù)據(jù)重排,以使所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)按照各自在所述目標(biāo)數(shù)據(jù)包內(nèi)順序緩存至所述內(nèi)存交互模塊的先進先出緩存序列中。
44、在本技術(shù)實施中,在所述頭信息處理模塊獲取到所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)后,按照如下方式確定所述第一匹配關(guān)系:
45、提取所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)的第一特征值;
46、基于所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)的第一特征值及預(yù)設(shè)寄存信息,確定所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)所匹配的下游通道。
47、在本技術(shù)實施中,在所述數(shù)據(jù)處理模塊收到所述各個子數(shù)據(jù)后,所述數(shù)據(jù)分發(fā)方法還包括:
48、提取所述各個子數(shù)據(jù)的有效信息,得到目標(biāo)輸出數(shù)據(jù),所述目標(biāo)輸出數(shù)據(jù)包括所述目標(biāo)數(shù)據(jù)包的數(shù)據(jù)頭和提取后的各個子數(shù)據(jù),并基于所述第一匹配關(guān)系和所述第二匹配關(guān)系,將所述目標(biāo)輸出數(shù)據(jù)發(fā)送至所述數(shù)據(jù)輸出模塊的先進先出緩存序列。
49、在本技術(shù)實施中,在所述數(shù)據(jù)處理模塊獲取到所述目標(biāo)數(shù)據(jù)包后,按照如下方式確定所述第二匹配關(guān)系:
50、提取所述目標(biāo)數(shù)據(jù)包的第二特征值;
51、基于所述第二特征值,確定所述數(shù)據(jù)輸出模塊的先進先出緩存序列與所述各個下游通道的第二匹配關(guān)系。
52、在本技術(shù)實施中,所述的數(shù)據(jù)分發(fā)方法,還包括:
53、基于所述第一匹配關(guān)系和所述第二匹配關(guān)系,確定所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)在所述數(shù)據(jù)輸出模塊內(nèi)對應(yīng)的目標(biāo)先進先出緩存序列,其中,所述數(shù)據(jù)頭和任一所述子數(shù)據(jù)對應(yīng)的目標(biāo)先進先出緩存序列,在所述第一匹配關(guān)系和所述第二匹配關(guān)系中均與同一個下游通道匹配;
54、基于所述數(shù)據(jù)處理模塊將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)分別發(fā)送至各自在所述數(shù)據(jù)輸出模塊中對應(yīng)的目標(biāo)先進先出緩存序列。
55、在本技術(shù)實施中,在所述數(shù)據(jù)輸出模塊將所述數(shù)據(jù)頭和所述各個子數(shù)據(jù)發(fā)送至相應(yīng)的下游通道后,所述數(shù)據(jù)分發(fā)方法還包括:
56、基于所述數(shù)據(jù)輸出模塊向所述內(nèi)存交互模塊發(fā)送傳輸完成指令;
57、基于內(nèi)存交互模塊向預(yù)設(shè)同步內(nèi)存模塊發(fā)送同步信息,所述同步信息包括本次數(shù)據(jù)傳輸向下游通道所發(fā)送的子數(shù)據(jù)的個數(shù)。
58、本技術(shù)還提出一種可讀存儲介質(zhì),其包括指令,當(dāng)其在計算設(shè)備上運行時,使得計算設(shè)備執(zhí)行上述任一項所述的方法。
59、本技術(shù)還提出一種芯片,包括上述任一實施例所述的數(shù)據(jù)分發(fā)電路。
60、本技術(shù)實施例,將數(shù)據(jù)讀取、數(shù)據(jù)解析、頭信息生成和數(shù)據(jù)分發(fā)等功能,模塊化為內(nèi)存交互模塊、數(shù)據(jù)處理模塊、頭信息處理模塊和數(shù)據(jù)輸出模塊,使得數(shù)據(jù)傳輸系統(tǒng)更易于擴展和維護,可以根據(jù)實際需求靈活增加或減少模塊,適應(yīng)不同規(guī)模的應(yīng)用。另外,現(xiàn)有技術(shù)中,在進行數(shù)據(jù)發(fā)送時,從存儲模塊讀取目標(biāo)數(shù)據(jù)包后,需要對目標(biāo)數(shù)據(jù)包進行處理,以確定目標(biāo)數(shù)據(jù)包中的數(shù)據(jù)頭和各個子數(shù)據(jù)與下游通道的匹配關(guān)系,在此過程中,數(shù)據(jù)頭和各個子數(shù)據(jù)需要等待處理過程而無法向下游通道發(fā)送,故而,需要大量的寄存器對數(shù)據(jù)頭和各個子數(shù)據(jù)進行儲存。而本技術(shù)實施例中,對于一個數(shù)據(jù)讀取指令,先后兩次讀取目標(biāo)數(shù)據(jù)包,在第一次讀取時,確定目標(biāo)數(shù)據(jù)包中的數(shù)據(jù)頭和各個子數(shù)據(jù)與下游通道的第一匹配關(guān)系,在得到了第一匹配關(guān)系后,再進行第二次讀取目標(biāo)數(shù)據(jù)包,由于在第一次讀取目標(biāo)數(shù)據(jù)包時已經(jīng)獲取了數(shù)據(jù)頭和各個子數(shù)據(jù)與下游通道的第一匹配關(guān)系,因此,在第二次讀取時,可以直接發(fā)送,而無需儲存,從而不需要大量的寄存器,進而能夠降低存儲開銷。