基于比特或字節(jié)并行加速的處理器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信領(lǐng)域,具體涉及一種基于比特或字節(jié)流并行加速的處理器。
【背景技術(shù)】
[0002]目前針對比特流進行加速的電路設(shè)計功能較為單一,有的是專門針對加密類應(yīng) 用,主要是支持某一種加密算法。有的是專門用于進行CRC計算,有的專門對信道編碼進行 加速。實際上,智能設(shè)備對這些應(yīng)用都有需求,如果采用傳統(tǒng)方法就需要設(shè)計不同的加速模 塊分別對這些應(yīng)用提供支持。這樣智能設(shè)備的造價就會很高,另外由于ASIC方案的靈活性 很低,當應(yīng)用需求發(fā)生變化時就需要重新流片,導(dǎo)致芯片的生命周期較短。如果采用通用處 理器或者數(shù)字信號處理器,可以支持各類算法,但是性能難以滿足未來高速通信系統(tǒng)的需 求,功耗和硅面積開銷也是移動設(shè)備難以接受的。
[0003] 采用多個ASIC模塊構(gòu)成的芯片對加密、CRC、RS解碼和其他Galois運算進行加速, 硬件設(shè)計成本高,靈活性不足,產(chǎn)品生命周期短。
【發(fā)明內(nèi)容】
[0004] 針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明提供了一種基于比特或字節(jié)流并行加速的處理 器,降低了數(shù)據(jù)處理的功耗,同時提高了數(shù)據(jù)處理的高靈活性。
[0005] 第一方面,本發(fā)明提供一種基于比特或字節(jié)流并行加速的處理器,包括:
[0006] 代碼區(qū)模塊,取指與譯碼模塊,地址生成模塊、數(shù)據(jù)區(qū)模塊、第一交織網(wǎng)絡(luò)模塊、數(shù) 據(jù)通路模塊、第二交織網(wǎng)絡(luò)模塊;
[0007] 所述代碼區(qū)模塊與所述取指與譯碼模塊相連,所述取指與譯碼模塊與所述地址生 成模塊相連,所述地址生成模塊與所述數(shù)據(jù)區(qū)模塊相連,所述數(shù)據(jù)區(qū)模塊與所述第一交織 網(wǎng)絡(luò)模塊相連,所述第一交織網(wǎng)絡(luò)模塊與所述數(shù)據(jù)通路模塊相連,所述數(shù)據(jù)通路模塊與所 述第二交織網(wǎng)絡(luò)模塊相連。
[0008] 可選的,所述取指與譯碼模塊包括指令取指模塊和指令譯碼模塊;
[0009] 所述指令譯碼模塊存儲有預(yù)設(shè)的指令集;
[0010] 所述譯碼模塊,用于對所述指令取指模塊取得的指令進行譯碼。
[0011] 可選的,所述地址生成模塊包括:內(nèi)層地址生成模塊和外層地址生成模塊。
[0012] 可選的,所述地址生成模塊,用于根據(jù)所述指令取值模塊取得的指令生成待處理 數(shù)據(jù)的地址。
[0013] 可選的,所述第一交織網(wǎng)絡(luò)模塊和第二交織網(wǎng)絡(luò)模塊用于對輸出數(shù)據(jù)的順序進行 重排。
[0014] 可選的,所述數(shù)據(jù)通路模塊包括:第三交織網(wǎng)絡(luò)模塊、第一運算模塊、靜態(tài)隨機存 儲器、第四交織網(wǎng)絡(luò)模塊、第二運算模塊、第五交織網(wǎng)絡(luò)模塊、第三運算模塊、第四運算模塊 和輸出控制模塊;
[0015] 所述第三交織網(wǎng)絡(luò)模塊分別與所述第一運算模塊和靜態(tài)隨機存儲器的輸入端相 連,所述第四交織網(wǎng)絡(luò)模塊分別與所述第一運算模塊和靜態(tài)隨機存儲器的輸出端相連,所 述第二運算模塊與所述第四交織網(wǎng)絡(luò)模塊相連,所述第五交織網(wǎng)絡(luò)模塊與所述第二運算模 塊相連,所述第三運算模塊與所述靜態(tài)隨機存儲器和所述第五交織網(wǎng)絡(luò)模塊的輸出端相 連,所述第三運算模塊與所述第四運算模塊相連,所述第四交織網(wǎng)絡(luò)模塊、所述第五交織網(wǎng) 絡(luò)模塊、所述第三運算模塊和所述第四運算模塊均與所述輸出控制模塊相連。
[0016] 可選的,所述靜態(tài)隨機存儲器為多個。
[0017] 可選的,所有所述靜態(tài)隨機存儲器的輸出端與所述第四交織網(wǎng)絡(luò)模塊相連;
[0018] 至少一個靜態(tài)隨機存儲器的輸出端與所述第三運算模塊相連。
[0019] 可選的,所述靜態(tài)隨機存儲器中可用于存儲查找表。
[0020] 可選的,所述數(shù)據(jù)區(qū)模塊包括:多個數(shù)據(jù)存儲區(qū)域;
[0021] 所述數(shù)據(jù)區(qū)模塊,用于存儲所述數(shù)據(jù)通路模塊中的查找表初始化需要的數(shù)據(jù)以及 暫存所述數(shù)據(jù)通路模塊計算過程中輸入輸出的數(shù)據(jù);
[0022] 所述第三交織網(wǎng)絡(luò)模塊,用于對輸入到數(shù)據(jù)通路模塊的數(shù)據(jù)的順序進行重排,然 后輸出至所述第一運算模塊和靜態(tài)隨機存儲器;
[0023] 所述第四交織網(wǎng)絡(luò)模塊,用于對所述第一運算模塊和靜態(tài)隨機存儲器的輸出數(shù)據(jù) 的順序進行重排,然后輸出至所述第二運算模塊;
[0024] 所述第五交織網(wǎng)絡(luò)模塊,用于對所述第二運算模塊的輸出數(shù)據(jù)的順序進行重排, 然后輸出至所述第三運算模塊和靜態(tài)隨機存儲器。
[0025] 由上述技術(shù)方案可知,本發(fā)明提出了一種基于比特或字節(jié)流并行加速的處理器, 該處理器具有高并行度(每個時鐘可以處理128bit數(shù)據(jù)),高通量(達到lOOGbps),硅面 積開銷?。ㄅc用多片ASIC分別加速相比),功耗?。ㄅcGPP,DSP相比)能夠提供足夠靈活 性的、支持CRC、RS前向糾錯解碼、AES、ZUC、ARIA、Camillia,SNOW3G等通信和加密領(lǐng)域常 見算法。同時,當應(yīng)用需求發(fā)生變化時,只需要通過軟件編程就可以實現(xiàn)支持,使得產(chǎn)品的 生命周期更長。另外,本發(fā)明還為比特處理領(lǐng)域的常見功能提供了一些sn?加速指令,使 得本發(fā)明可以對比特處理領(lǐng)域其他的應(yīng)用提供加速支持。
【附圖說明】
[0026]圖1為本發(fā)明一實施例提供的基于比特或字節(jié)流并行加速的處理器的結(jié)構(gòu)示意 圖;
[0027]圖2為本發(fā)明一實施例提供的數(shù)據(jù)通路的結(jié)構(gòu)示意圖;
[0028] 圖3為本發(fā)明一實施例提供的基于比特或字節(jié)流并行加速的處理器處理數(shù)據(jù)的 流程圖;
[0029] 圖4至圖16為本發(fā)明一實施例提供的基于比特或字節(jié)流并行加速的處理器根據(jù) 加速指令映射到數(shù)據(jù)通路模塊的示意圖。
【具體實施方式】
[0030] 下面結(jié)合附圖,對發(fā)明的【具體實施方式】作進一步描述。以下實施例僅用于更加清 楚地說明本發(fā)明的技術(shù)方案,而不能以此來限制本發(fā)明的保護范圍。
[0031]圖1示出了本發(fā)明一實施例提供的一種基于比特或字節(jié)流并行加速的處理器的 結(jié)構(gòu)示意圖,如圖1所示,該處理器包括:
[0032] 代碼區(qū)模塊,取指與譯碼模塊,地址生成模塊、數(shù)據(jù)區(qū)模塊、第一交織網(wǎng)絡(luò)模塊、數(shù) 據(jù)通路模塊、第二交織網(wǎng)絡(luò)模塊;
[0033] 所述代碼區(qū)模塊與所述取指與譯碼模塊相連,所述取指與譯碼模塊與所述地址生 成模塊相連,所述地址生成模塊與所述數(shù)據(jù)區(qū)模塊相連,所述數(shù)據(jù)區(qū)模塊與所述第一交織 網(wǎng)絡(luò)模塊相連,所述第一交織網(wǎng)絡(luò)模塊與所述數(shù)據(jù)通路模塊相連,所述數(shù)據(jù)通路模塊與所 述第二交織網(wǎng)絡(luò)模塊相連。
[0034] 上述處理器具有高并行度(每個時鐘可以處理128bit數(shù)據(jù)),高通量(達到 lOOGbps),硅面積開銷?。ㄅc用多片ASIC分別加速相比),功耗?。ㄅcGPP,DSP相比),能 夠提供足夠靈活性的、支持CRC、RS前向糾錯解碼、AES、ZUC、ARIA、Camillia,SNOW3G等通 信和加密領(lǐng)域常見算法。同時,當應(yīng)用需求發(fā)生變化時,只需要通過軟件編程就可以實現(xiàn)支 持,使得產(chǎn)品的生命周期更長。另外,本發(fā)明還為比特處理領(lǐng)域的常見功能提供了一些sn? 加速指令,使得本發(fā)明可以對比特處理領(lǐng)域其他的應(yīng)用提供加速支持。
[0035] 其中,所述取指與譯碼模塊包括指令取指模塊和指令譯碼模塊;
[0036] 所述指令譯碼模塊存儲有預(yù)設(shè)的指令集;
[0037] 所述指令譯碼模塊,用于對所述指令取指模塊取得的指令進行譯碼。
[0038] 所述地址生成模塊包括:內(nèi)層地址生成模塊和外層地址生成模塊。
[0039] 所述地址生成模塊,用于根據(jù)所述指令取指模塊取得的指令生成待處理數(shù)據(jù)的地 址。
[0040] 所述第一交織網(wǎng)絡(luò)模塊和第二交織網(wǎng)絡(luò)模塊用于對輸出數(shù)據(jù)的順序進行重排。
[0041] 如圖2所示,所述數(shù)據(jù)通路模塊包括:第三交織網(wǎng)絡(luò)模塊、第一運算模塊、靜態(tài)隨 機存儲器、第四交織網(wǎng)絡(luò)模塊、第二運算模塊、第五交織網(wǎng)絡(luò)模塊、第三運算模塊、第四運算 模塊和輸出控制模塊;
[0042] 所述第三交織網(wǎng)絡(luò)模塊分別與所述第一運算模塊和靜態(tài)隨機存儲器的輸入端相 連,所述第四交織網(wǎng)絡(luò)模塊分別與所述第一運算模塊和靜態(tài)隨機存儲器的輸出端相連,所 述第二運算模塊與所述第四交織網(wǎng)絡(luò)模塊相連,所述第五交織網(wǎng)絡(luò)模塊與所述第二運算模 塊相連,所述第三運算模塊與所述靜態(tài)隨機存儲器和所述第五交織網(wǎng)絡(luò)模塊的輸出端相 連,所述第三運算模塊與所述第四運算模塊相連,所述第四交織網(wǎng)絡(luò)模塊、所述第五交織網(wǎng) 絡(luò)模塊、所述第三運算模塊和所述第四運算模塊均與所述輸出控制模塊相連。
[0043] 其中,所述靜態(tài)隨機存儲器為多個。
[0044] 所有所述靜態(tài)隨機存儲器的輸出端與所述第四交織網(wǎng)絡(luò)模塊相連;
[0045] 至少一個靜態(tài)隨機存儲器的輸出端與所述第三運算模塊相連。
[0046] 所述靜態(tài)隨機存儲器可用于存儲查找表。
[0047] 所述數(shù)據(jù)區(qū)模塊包括:多個數(shù)據(jù)存儲區(qū)域;
[0048] 所述數(shù)據(jù)區(qū)模塊,用于存儲所述數(shù)據(jù)通路模塊中的查找表初始化需要的數(shù)據(jù)以及 暫存所述數(shù)據(jù)通路模塊計算過程中輸入輸出的數(shù)據(jù);
[0049] 所述第三交織網(wǎng)絡(luò)模塊,用于對輸入到數(shù)據(jù)通路模塊的數(shù)據(jù)的順序進行重排,然 后輸出至所述第一運算模塊和靜態(tài)隨機存儲器;
[0050] 所述第四交織網(wǎng)絡(luò)模塊,用于對所述第一運算模塊和靜態(tài)隨機存儲器的輸出數(shù)據(jù) 的順序進行重排,然后輸出至所述第二運算模塊;
[0051] 所述第五交織網(wǎng)絡(luò)模塊,用于對所述第二運算模塊的輸出數(shù)據(jù)的順序進行重排, 然后輸出至所述第三運算模塊和靜態(tài)隨機存儲器。
[0052] 所述第一運算模塊,第二運算模塊,第三運算模塊和第四運算模塊分別完成指令 的第一級流水,第二級流水,第三級級流水和第四級流水對應(yīng)的功能。包括普通邏輯運算和 特殊加速功能,比如三角異或。
[0053] 本發(fā)明首先對未來通信系統(tǒng)的