Gpdsp中基于三級超前進位加法器的64位定點alu電路的制作方法
【技術領域】
[0001] 本發(fā)明主要涉及微處理器的運算部件實現(xiàn)領域,特指一種適用于在高性能通用 DSP(GPDSP)芯片中的基于三級超前進位加法器的64位定點ALU電路。
【背景技術】
[0002] 數(shù)字信號處理器(Digital Signal Processor,DSP)作為一種典型的嵌入式微處 理器被廣泛應用于嵌入式系統(tǒng)中,它以其數(shù)據(jù)處理能力強大、可編程性好、使用靈活和低功 耗等特點,給信號處理的發(fā)展帶來了巨大機遇,其應用領域拓展到軍事、經(jīng)濟發(fā)展的各個方 面。在現(xiàn)代通信、圖像處理和雷達信號處理等應用領域,隨著數(shù)據(jù)處理量加大、數(shù)據(jù)計算的 精度和實時性要求的增加,通常需要使用更高性能的微處理器進行處理。
[0003] 定點算術邏輯運算單元(IALU)是DSP完成定點加減等算數(shù)運算以及邏輯運算的 主要模塊,提供強大的運算能力,是DSP芯片中最重要的部件之一。IALU主要執(zhí)行微處理器 的單周期指令,往往決定著整個微處理器的工作頻率,它的設計是極具挑戰(zhàn)性的問題。IALU 單元內指令種類繁多,而且多數(shù)為單周期指令,時序要求比較苛刻,而且不能進行流水線加 站,
[0004] IALU從結構上分為兩種:一種是加法器分離的方式,在加法器外圍附加其他電路 以實現(xiàn)邏輯運算指令,另一種把算術運算和邏輯運算集成到加法器內部。加法器是整數(shù)部 件的核心運算單元,它的計算延時決定了DSP的性能。采用加法器分離方式設計IALU單元, 最終結果隨選擇級數(shù)、面積隨IALU指令的增加而增加,最終ALU結構面積較大,總體時序也 不理想。
【發(fā)明內容】
[0005] 本發(fā)明要解決的技術問題就在于:針對現(xiàn)有技術存在的技術問題,本發(fā)明提供一 種能降低面積開銷、減少選擇器、降低時序的GPDSP中基于三級超前進位加法器的64位定 點ALU電路,進而在算法級和結構級進行優(yōu)化,壓縮邏輯級數(shù),降低關鍵路徑延時。
[0006] 為解決上述技術問題,本發(fā)明采用以下技術方案:
[0007] -種GPDSP中基于三級超前進位加法器的64位定點ALU電路,其包括ALU譯碼站、 站間寄存器、通用寄存器RF和執(zhí)行站,所述ALU譯碼站接收派發(fā)模塊的指令信號,經(jīng)過譯碼 邏輯向通用寄存器RF發(fā)出讀信號和讀地址,讀取原操作數(shù);所述執(zhí)行站接收到原操作數(shù)經(jīng) 過預處理邏輯,發(fā)送到IALU的運算核心與譯碼生成的指令選擇信號、控制信號結合進行計 算,計算完成后向通用寄存器RF或其他寄存器發(fā)出寫信號、寫地址和寫數(shù)據(jù);所述執(zhí)行站 把除飽和指令和LZD指令外的所有指令通過由64位三級先行進位加法器實現(xiàn),并通過控制 信號進行區(qū)分控制。
[0008] 作為本發(fā)明的進一步改進:所述除飽和指令和LZD指令外的所有指令包括加減法 指令、比較類指令、取絕對值/相反數(shù)指令、取最大值/最小值指令、數(shù)據(jù)搬移MOV類指令、 邏輯指令。
[0009] 作為本發(fā)明的進一步改進:所述通用寄存器RF的讀寫都是時鐘上升沿有效。
[0010] 作為本發(fā)明的進一步改進:所述64位三級先行進位加法器是由2個串行的32位 加法器組成,所述32位加法器是使用三級超前進位鏈的2個16位加法器串行組成,所述16 位加法器是使用二級先行進位鏈的4個4位加法器串行組成,各組4位加法器采用完全相 同的結構。
[0011]與現(xiàn)有技術相比,本發(fā)明的優(yōu)點在于:
[0012] 1、本發(fā)明的GPDSP中基于三級超前進位加法器的64位定點ALU電路,通過復用加 法器實現(xiàn)IALU比較、取絕對值、取反類指令,大大降低了面積開銷。
[0013] 2、本發(fā)明的GPDSP中基于三級超前進位加法器的64位定點ALU電路,通過譯碼站 增加控制信號實現(xiàn)邏輯類、MOV類,從而減少選擇器,降低了時序。
[0014] 3、本發(fā)明的GPDSP中基于三級超前進位加法器的64位定點ALU電路,通過把64 位加法器分組,把進位產(chǎn)生和進位傳播信號分組分層劃分,減少了高位進位延時并減小信 號驅動。
【附圖說明】
[0015] 圖1是IALU在DSP中的位置示意圖。
[0016] 圖2是本發(fā)明的結構示意圖。
[0017] 圖3是本發(fā)明在具體應用實例中4位加法器邏輯示意圖。
[0018] 圖4是本發(fā)明在具體應用實例中16位二級先行進位加法器結構的示意圖。
[0019] 圖5是本發(fā)明在具體應用實例中64位三級先行進位加法器結構的示意圖。
【具體實施方式】
[0020] 以下將結合說明書附圖和具體實施例對本發(fā)明做進一步詳細說明。
[0021] 在本發(fā)明中,定點算術邏輯運算單元(IALU)是DSP內核重要組成部分,包含43條 算術和邏輯指令的實現(xiàn),并且支持S頂D操作,可以進行兩個32位和64位的定點操作,具有 很強的運算能力。
[0022] IALU包含多種算術操作,同時數(shù)據(jù)搬移MOV類指令可以配置標量控制寄存器,向 量全局控制寄存器,標向量共享寄存器等,提供強大的邏輯和運算能力。表2是本發(fā)明IALU 所實現(xiàn)的具體指令:
[0023] 表2本發(fā)明中的IALU指令
[0024]
[0025] 如圖1所示,為DSP的計算單元結構示意圖,其包括三個功能部件,分別為兩個MAC執(zhí)行部件(MACCKMAC1)和一個定點執(zhí)行部件 IEU (Integer/Fixed-point Execution Unit), 用于支持標量和向量運算。每個部件對應執(zhí)行VLIW指令包中的一條向量指令,即PE包括 3條可并行執(zhí)行的流水線,每拍能同時執(zhí)行3條標量指令。IEU部件是由定點IALU和位處 理部件BP兩個單元構成。兩者是具有相同數(shù)據(jù)通路的獨立單元,同一周期兩者不能同時開 始執(zhí)行或寫回,可由軟件流水調度實現(xiàn)并行。
[0026] 本發(fā)明采用一種用于DSP的IALU運算部件,通過三級超前進位加法器結構和通過 復用加法器實現(xiàn)比較類指令,通過控制信號選擇實現(xiàn)的邏輯類、MOV類指令。IALU是執(zhí)行邏 輯運算和算術運算的單元。算術運算中的加法、減法和邏輯運算中的與、或、非等操作都在 這里執(zhí)行。這些運算都可以通過有限的幾種邏輯運算實現(xiàn)。
[0027] S卩:包括加法器單元、進位輔助電路和超前進位單元(LAC)。由加法器單元和進位 輔助單元構成底層超前進位模塊,將4個底層超前進位模塊與超前進位單元一起組成第二 層的超前進位模塊,由4個第二層的超前進位模塊和超前進位單元一起組成第三層超前進 位模塊。本發(fā)明的ALU結構通過加法器實現(xiàn)多條定點ALU指令,通過算術和邏輯功能復用, 降低定點ALU的面積,減少硬件開銷,降低計算延時,并能在同一硬件結構上實現(xiàn)一個64位 運算和兩個并行的32位運算。
[0028] 如圖2所示,為本發(fā)明中IALU的結構示意圖。本發(fā)明的GPDSP中基于三級超前進 位加法器的64位定點ALU電路,包括ALU譯碼站、站間寄存器、通用寄存器RF和執(zhí)行站,所 述ALU譯碼站接收派發(fā)模塊的指令信號,經(jīng)過譯碼邏輯向通用寄存器RF發(fā)出讀信號和讀地 址,讀取原操作數(shù);其中RF讀寫都是時鐘上升沿有效。所述執(zhí)行站接收到原操作數(shù)經(jīng)過預 處理邏輯,發(fā)送到IALU的運算核心與譯碼生成的指令選擇信號、控制信號結合進行計算, 計算完成后向通用寄存器RF或其他寄存器發(fā)出寫信號、寫地址和寫數(shù)據(jù);所述執(zhí)行站把除 飽和指令和LZD指令外的所有指令通過由64位三級先行進位加法器實現(xiàn),并通過控制信號 進行區(qū)分控制。
[0029] IALU主要用來支持8類指令,分別為:加減法指令、飽和指令、比較類指令、取絕對 值/相反數(shù)指令、取最大值/最小值指令、數(shù)據(jù)搬移MOV類指令、邏輯指令、前導零指令。本 發(fā)明的ALU把除飽和指令和LZD指令外的所有指令通過由64位三級先行進位加法器實現(xiàn), 并通過控制信號進行區(qū)分控制。
[0030] 所述64位三級先行進位加法器是由2個串行的32位加法器組成,32位加法器是 使用三級超前進位鏈的2個16位加法器串行組成,16位加法器是使用二級先行進位鏈的4 個4位加法器串行組成,各組4位加法器采用完全相同的設計。
[0031] 如圖3所示,為上述4位加法器結構在具體應用實例中的示意圖,其中進位產(chǎn)生和 進位傳播函數(shù)表達式如下:
[0032] gl= A&B 式(1)
[0033] pfA十B式(2)
[0034] C;=gi+Pi&C; !式(3)
[0035] 進位產(chǎn)生描述:
[0036] C〇=g〇+p〇C1
[0037] Ci=gi+p^o+PiPoC!
[0038] C2=g^p^i+p^iGo+p^iPoC!
[0039] C3=g3+P3G2+p3p2G1+p3p2p1G0+p3p2p1p0C!
[0040] 在C產(chǎn)生以后,得到本位加法結果:
[0041] SfA#B#q式(4)
[0042] 超前進位加法器的進位輸出Q表達式(3)不會隨著位數(shù)的增