一種計算序列平均值的方法和裝置的制造方法
【專利摘要】本發明提供了一種計算序列平均值的方法和裝置,該方法包括:設置采樣周期和第一寄存器,每達到一次采樣周期,獲取一個序列元素;當每獲取一個序列元素時,執行將當前序列元素與所述第一寄存器中存儲的當前數據進行累加,并將累加后的結果數據替換所述第一寄存器中存儲的當前數據,其中,所述第一寄存器的初始值為0;確定所述結果數據對應的序列長度;根據所述結果數據和所述序列長度,計算序列平均值。本方案能夠降低對芯片內存的消耗。
【專利說明】
一種計算序列平均值的方法和裝置
技術領域
[0001] 本發明涉及信號處理技術領域,特別涉及一種計算序列平均值的方法和裝置。
【背景技術】
[0002] 在信號產生過程中,經常需要按照時間順序采集數據,形成序列,并對序列求平均 值,以了解產生信號的設備的性能。例如,需要對處理器互聯總線的性能進行評估,則可通 過實時監控處理器互連總線的傳輸帶寬,計算在一段時間內傳輸帶寬的平均值,通過該平 均值能夠評估處理器互連總線的傳輸速率。
[0003] 目前,計算序列平均值的方法主要是,以固定的整數個核心時鐘作為采樣周期,進 行數據采集,其中,每個采樣周期采集的一個數據作為一個序列元素,存儲在一個寄存器 中,另外,不同的序列元素存儲在不同的寄存器中,并將1秒內采集到的所有序列元素進行 代數平均。以每個監控采樣周期包含20個處理器核心時鐘為例,采集處理器互連總線的傳 輸帶寬,假設處理器核心時鐘頻率為2GHz,那么1秒中內可以采樣到的帶寬數據的序列長度 η為:
[0005] 即在1秒內一共采集到100000000個帶寬數據/序列元素,設帶寬數據/序列元素組 成的序列為XI,Χ2,Χ3,Χ4,......X1Q_Q_,則,這100000000個帶寬數據/序列元素需要存儲 在100000000個寄存器中,然后將這100000000個寄存器中的帶寬數據/序列元素相加,得到 序列總和sum:
[0006] SUm = Xl+X2+X3+X4+."+X100 000000 [0007]最后,根據sum計算出序列平均值aver:
[0009] 在現有這種計算序列平均值的方法中,需要設置比較多的寄存器,而寄存器越多, 占用設備的芯片內存資源越大,因此,現有的這種計算序列平均值的方法,常常需要消耗較 大的芯片內存。
【發明內容】
[0010] 本發明實施例提供了一種計算序列平均值的方法和裝置,能夠降低對芯片內存的 消耗。
[0011] -種計算序列平均值的方法,設置采樣周期和第一寄存器,每達到一次采樣周期, 獲取一個序列元素,還包括:
[0012] 當每獲取一個序列元素時,執行將當前序列元素與所述第一寄存器中存儲的當前 數據進行累加,并將累加后的結果數據替換所述第一寄存器中存儲的當前數據,其中,所述 第一寄存器的初始值為ο;
[0013] 確定所述結果數據對應的序列長度;
[0014] 根據所述結果數據和所述序列長度,計算序列平均值。
[0015] 優選地,上述方法,進一步包括:設置第二寄存器;
[0016] 所述確定所述結果數據對應的序列長度,包括:當每獲取一個序列元素時,所述第 二寄存器加1,統計序列長度,其中,所述第二寄存器的初始值為〇。
[0017] 優選地,所述根據所述結果數據和所述序列長度,計算序列平均值,包括:
[0018] 判斷所述第二寄存器統計的序列長度是否為2的整數次冪;
[0019] 如果是,則根據下述公式,計算右移位數,并根據所述右移位數,將所述結果數據 右移相應的位數,得到序列平均值;
[0020] j = log2 η
[0021 ]其中,所述j表征右移位數,所述η表征序列長度;
[0022]否則,直接等待下一個采樣周期,獲取下一個序列元素。
[0023]優選地,上述方法,進一步包括:設置擇機有效標志和第三寄存器;
[0024]將所述序列平均值存儲到第三寄存器中;
[0025] 輸出所述第三寄存器中存儲的所述序列平均值;
[0026] 控制所述擇機有效標志處于拉高狀態,輸出所述第二寄存器統計的序列長度。 [0027]優選地,上述方法,進一步包括:
[0028] 當所述結果數據溢出所述第一寄存器時,所述第一寄存器和所述第二寄存器將存 儲的數據清零;
[0029] 或者,
[0030] 當接收到系統上電請求時,所述第一寄存器和所述第二寄存器清零;
[0031] 或者,
[0032] 當接收到系統復位請求時,所述第一寄存器和所述第二寄存器清零。
[0033] -種計算序列平均值的裝置,包括:設置單元、第一寄存器、確定單元和平均值計 算單元,其中,
[0034] 所述設置單元,用于設置采樣周期,并發送所述采樣周期給所述第一寄存器;
[0035] 所述第一寄存器,用于接收所述設置單元發送的所述采樣周期,每達到一次所述 采樣周期,獲取一個序列元素,當每獲取一個序列元素時,執行將序列元素與自身存儲的當 前數據進行累加,并將累加后的結果數據替換所述當前數據,將所述結果數據發送給所述 平均值計算單元;
[0036] 所述確定單元,用于確定所述第一寄存器存儲的結果數據對應的序列長度,并將 所述序列長度發送給所述平均值計算單元;
[0037] 所述平均值計算單元,用于接收所述第一寄存器發送的結果數據和所述確定單元 發送的序列長度,根據所述結果數據和所述序列長度,計算序列平均值。
[0038] 優選地,所述確定單元,包括:第二寄存器,其中,
[0039] 所述第二寄存器,用于當所述第一寄存器獲取一個序列元素時,執行加1操作,統 計序列長度,其中,所述第二寄存器的初始值為〇。
[0040] 優選地,上述裝置,進一步包括:判斷單元,其中,
[0041] 所述判斷單元,用于判斷所述第二寄存器統計的序列長度是否為2的整數次冪,如 果是,則觸發所述平均值計算單元;
[0042] 所述平均值計算單元,用于在接收到所述判斷單元的觸發時,根據下述公式,計算 右移位數,并根據所述右移位數,將所述結果數據右移相應的位數,得到序列平均值;
[0043] j = log2 η
[0044]其中,所述j表征右移位數,所述η表征序列長度。
[0045] 優選地,
[0046] 所述平均值計算單元,包括:擇機有效標志和第三寄存器,其中,
[0047] 所述第三寄存器,用于存儲所述序列平均值,并輸出所述序列平均值,并觸發所述 擇機有效標志;
[0048]所述擇機有效標志,用于當接收到所述第三寄存器的觸發時,調整為拉高狀態,并 觸發第二寄存器;
[0049] 所述第二寄存器,用于接收到所述擇機有效標志的觸發時,輸出所述序列長度。
[0050] 優選地,
[0051] 所述第一寄存器,用于當所述結果數據溢出時,將自身存儲的數據清零;
[0052]所述第二寄存器,用于當所述第一寄存器中的結果數據溢出時,將自身存儲的數 據清零;
[0053]或者,
[0054]所述第一寄存器,用于當接收到上電請求時,將自身存儲的數據清零;
[0055] 所述第二寄存器,用于當接收到上電請求時,將自身存儲的數據清零;
[0056] 或者,
[0057] 所述第一寄存器,用于當接收到復位請求時,將自身存儲的數據清零;
[0058]所述第二寄存器,用于當接收到復位請求時,將自身存儲的數據清零。
[0059] 本發明實施例提供了一種計算序列平均值的方法和裝置,該方法通過采樣周期和 第一寄存器,每達到一次采樣周期,獲取一個序列元素;當每獲取一個序列元素時,執行將 當前序列元素與所述第一寄存器中存儲的當前數據進行累加,并將累加后的結果數據替換 所述第一寄存器中存儲的當前數據,其中,所述第一寄存器的初始值為〇;確定所述結果數 據對應的序列長度;根據所述結果數據和所述序列長度,計算序列平均值。通過上述過程描 述可知,在第一寄存器中存儲的是序列元素的累加結果,即通過一個寄存器即可實現序列 元素的累加,而無需為每個序列元素配置一個寄存器,能夠降低對芯片內存的消耗。
【附圖說明】
[0060] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明 的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據 這些附圖獲得其他的附圖。
[0061] 圖1是本發明一個實施例提供的一種計算序列平均值的方法的流程圖;
[0062] 圖2是本發明另一個實施例提供的一種計算序列平均值的方法的流程圖;
[0063] 圖3是本發明一個實施例提供的一種計算序列平均值的裝置的結構示意圖;
[0064] 圖4是本發明另一個實施例提供的一種計算序列平均值的裝置的結構示意圖;
[0065] 圖5是本發明又一個實施例提供的一種計算序列平均值的裝置的結構示意圖;
[0066] 圖6是本發明另一個實施例提供的一種計算序列平均值的裝置的結構示意圖; [0067]圖7是本發明一個實施例提供的應用于芯片中的時序邏輯電路SEQ_AVER的輸入輸 出結構示意圖;
[0068]圖8是本發明一個實施例提供的SEQ_AVER的內部邏輯運算的結構示意圖。
【具體實施方式】
[0069] 為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例 中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是 本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員 在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0070] 如圖1所示,本發明實施例提供了一種計算序列平均值的方法,該方法可以包括以 下步驟:
[0071] 步驟101:設置采樣周期和第一寄存器,每達到一次采樣周期,獲取一個序列元素;
[0072] 步驟102:當每獲取一個序列元素時,執行將當前序列元素與第一寄存器中存儲的 當前數據進行累加,并將累加后的結果數據替換第一寄存器中存儲的當前數據,其中,第一 寄存器的初始值為〇;
[0073] 步驟103:確定結果數據對應的序列長度;
[0074]步驟104:根據結果數據和序列長度,計算序列平均值。
[0075] 圖1所示的本發明實施例中,通過采樣周期和第一寄存器,每達到一次采樣周期, 獲取一個序列元素;當每獲取一個序列元素時,執行將當前序列元素與所述第一寄存器中 存儲的當前數據進行累加,并將累加后的結果數據替換所述第一寄存器中存儲的當前數 據,其中,所述第一寄存器的初始值為〇;確定所述結果數據對應的序列長度;根據所述結果 數據和所述序列長度,計算序列平均值。通過上述過程描述可知,在第一寄存器中存儲的是 序列元素的累加結果,即通過一個寄存器即可實現序列元素的累加,不僅無需為每個序列 元素配置一個寄存器,而且無需進行大規模的多輸入加法,能夠降低對芯片內存的消耗。
[0076] 在本發明一個實施例中,上述方法進一步包括:設置第二寄存器;步驟103的具體 實施方式,包括:當每獲取一個序列元素時,第二寄存器加1,統計序列長度,其中,第二寄存 器的初始值為〇,通過該過程,可以實時記錄序列的長度,保證了序列長度的統計的準確性。
[0077] 在本發明一個實施例中,步驟104的【具體實施方式】,包括:判斷第二寄存器統計的 序列長度是否為2的整數次冪;如果是,則根據下述公式,計算右移位數,并根據右移位數, 將結果數據右移相應的位數,得到序列平均值,;
[0078] j = log2 η
[0079] 其中,所述j表征右移位數,所述η表征序列長度;
[0080] 否則,直接等待下一個采樣周期,獲取下一個序列元素,在本發明實施例中,通過 右移的方式獲取并輸出序列平均值,避免進行多位除法運算,進一步降低了對內存的消耗, 同時,當序列長度為2的整數次冪時,獲得序列平均值,并輸出序列平均值,實現擇機輸出序 列平均值,保證序列平均值的輸出。
[0081] 在本發明一個實施例中,上述方法進一步包括:設置擇機有效標志和第三寄存器; 將序列平均值存儲到第三寄存器中;輸出第三寄存器中存儲的序列平均值,并控制擇機有 效標志處于拉高狀態,輸出第二寄存器統計的序列長度,通過將序列平均值存儲到第三寄 存器中,避免序列平均值丟失,通過擇機有效標志的狀態,保證序列平均值與序列長度之間 的一致性。
[0082] 在本發明一個實施例中,上述方法進一步包括:當結果數據溢出第一寄存器時,第 一寄存器和第二寄存器將存儲的數據清零,由于寄存器存儲數據的位數是有限的,通過本 發明實施例提供的方案,能夠保證寄存器存儲的準確性。
[0083]在本發明一個實施例中,上述方法進一步包括:當接收到上電請求時,第一寄存器 和第二寄存器清零,保證了上電時,寄存器恢復初始值〇,保證序列平均值和序列長度輸出 的準確性。
[0084] 在本發明一個實施例中,上述方法進一步包括:當接收到系統復位請求時,第一寄 存器和第二寄存器清零,進一步保證序列平均值和序列長度輸出的準確性。
[0085] 為使本發明的目的、技術方案和優點更加清楚,下面結合附圖及具體實施例對本 發明作進一步地詳細描述。
[0086] 如圖2所示,本發明另一實施例提供了一種計算序列平均值的方法,該方法可以包 括以下步驟:
[0087] 步驟201:設置采樣周期、第一寄存器、第二寄存器和第三寄存器;
[0088]步驟202:每達到一次采樣周期,獲取一個序列元素;
[0089] 在該步驟中,可以通過設置邏輯時鐘來實現設置采樣周期,例如:可以設置1個邏 輯時鐘為一個采樣周期,也可以設置20個邏輯時鐘為一個采樣周期等等,該邏輯時鐘的個 數,將影響采樣的頻率,邏輯時鐘個數越多,采樣的頻率越低。
[0090] 以20個邏輯時鐘為例,每個邏輯時鐘頻率為2GHz,那么,每個周期的時長為:
[0092] 即根據公式(1)計算,每l(T8s獲取一個序列元素,假設第一個l(T8s獲取的序列元 素為 X1,第i個l〇_8s獲取的序列元素為Xl。
[0093] 值得說明的是,對于芯片來說,可以通過芯片的輸入端口來獲取序列元素,還可以 根據第一寄存器的性能,設置第一寄存器接收數據的長度,例如:第一寄存器的取值范圍為 0~127,即最長接收序列元素長度為2 128,即第一寄存器為128位的寄存器。
[0094] 步驟203:當每獲取一個序列元素時,執行將當前序列元素與第一寄存器中存儲的 當前數據進行累加;
[0095] 步驟204:將累加后的結果數據替換第一寄存器中存儲的當前數據;
[0096] 在步驟203和步驟204中,第一寄存器的初始值為0;例如:獲取序列元素 Xi時,該Xi 作為當前序列元素,可以根據公式(2),與第一寄存器中的當前數據進行累加,
[0097] Xi = xi+Xi-i (2)
[0098] 其中,X,表征結果數據,Xl表征當前序列元素;Xh表征前i-1個序列元素之和。在得 至iJXi之后,Xi將替換Xi-i成為xi+i對應的第一寄存器中的當前數據,即當i = l的時候,Xi-i為第 一寄存器的初始值〇;當i = 2時,Xi-1為X1+0的計算結果;當i = 3時,Xi-1為X2+X1+0的計算結 果;即上一個周期的結果數據為當前周期對應的第一寄存器中存儲的當前數據,整個過程 僅通過一個寄存器完成,一方面避免了為每個序列元素設置一個寄存器,另一方面避免了 多輸入加法的運算,從而有效地降低了對芯片內存的消耗。
[0099] 步驟205:當每獲取一個序列元素時,第二寄存器加1,統計序列長度;
[0100] 在該步驟中,第二寄存器的初始值為0;即當獲取到第一個序列元素^時,第二寄 存器加1即0+1 = 1;當獲取到第二個序列元素 X2時,第二寄存器加1即1+1 = 2;當獲取到第三 個序列元素 X3時,第二寄存器加1即1+2 = 3;依此類推,當獲取到第i個序列元素 xdt,第二寄 存器加1即l+(i-l) = i,即該第二寄存器加1的過程是一個累加的過程,準確地統計了序列 的長度。
[0101]步驟206:判斷結果數據是否溢出第一寄存器,如果是,則執行步驟207 ;否則執行 步驟208;
[0102]步驟207:第一寄存器和第二寄存器將存儲的數據清零,并執行步驟202;
[0103]步驟208:判斷第二寄存器統計的序列長度是否為2的整數次冪,如果是,則執行步 驟209;否則直接執行步驟212;
[0104] 該步驟主要是為了實現擇機計算和輸出序列平均值,由于本發明是通過右移來獲 得序列平均值,而不是通過除法運算獲得,而右移的位數相當于執行除以2的整數次冪的操 作,即數據右移1位,相當于數據除以2 1;數據右移2位,相當數據于除以22;數據右移3位,相 當數據于除以23;依此類推,數據右移i位相當于數據于除以2 1;即本發明實施例提供的方案 主要對序列長度為2的整數次冪的序列計算序列平均值。
[0105] 值得說明的是,前面第一寄存器的序列長度范圍為0~127;則可為這0~127設置 一個表,用來存儲2°~2m之間的數據,其中,在該表中,2的冪的取值為整數,即在該步驟判 斷的過程是將第二寄存器統計的序列長度與表中的數進行對比,看序列長度是否屬于表中 的數。
[0106] 步驟209:計算右移位數,并根據右移位數,將結果數據右移相應的位數,得到序列 平均值;
[0107] 步驟210:將序列平均值存儲到第三寄存器中,并通過第三寄存器輸出序列平均 值;
[0108] 步驟211:控制擇機有效標志處于拉高狀態,輸出第二寄存器統計的序列長度;
[0109] 在該步驟中,根據公式(3),計算右移位數;
[0110] j = log2 η (3)
[0111] 其中,j表征右移位數,η表征序列長度;
[0112] 例如:η = 2時,j = 1,即序列長度為2時,右移1位獲得一個序列平均值;η = 4時,j = 2,即序列長度為4時,右移2位獲得另一個序列平均值等。
[0113] 步驟212:等待下一個采樣周期,并執行步驟202。
[0114] 值得說明的是,為了保證序列平均值和序列長度統計的準確性,當接收到安裝于 芯片上的系統上電請求時,第一寄存器和第二寄存器清零;當接收到安裝于芯片上的系統 復位請求時,第一寄存器和第二寄存器清零。同時,本發明實施例提供的方法可以通過構建 時序邏輯電路的方式實現,應用于芯片中。
[0115] 另外,以邏輯時鐘頻率為2GHz,每個采樣周期包含20個邏輯時鐘為例,本發明實施 例提供的方法可實現,即16680天之內的超長序列 的平均值的計算。
[0116]如圖3所示,本發明實施例提供一種計算序列平均值的裝置,該裝置包括:設置單 元301、第一寄存器302、確定單元303和平均值計算單元304,其中,
[0117]設置單元301,用于設置采樣周期,并發送采樣周期給第一寄存器302;
[0118]第一寄存器302,用于接收設置單元301發送的所述采樣周期,每達到一次采樣周 期,獲取一個序列元素,當每獲取一個序列元素時,執行將序列元素與自身存儲的當前數據 進行累加,并將累加后的結果數據替換當前數據,將結果數據發送給平均值計算單元304; [0119]確定單元303,用于確定第一寄存器302存儲的結果數據對應的序列長度,并將序 列長度發送給平均值計算單元304;
[0120]平均值計算單元304,用于接收第一寄存器302發送的結果數據和確定單元303發 送的序列長度,根據結果數據和序列長度,計算序列平均值,并輸出序列平均值。
[0121] 如圖4所示,在本發明另一實施例中,上述確定單元303,包括:第二寄存器401,其 中,
[0122] 第二寄存器401,用于當第一寄存器302獲取一個序列元素時,執行加1操作,統計 序列長度,其中,第二寄存器的初始值為0。
[0123] 如圖5所示,在本發明另一實施例中,上述裝置進一步包括:判斷單元501,其中,
[0124] 判斷單元501,用于判斷第二寄存器401統計的序列長度是否為2的整數次冪,如果 是,則觸發平均值計算單元304;
[0125]平均值計算單元304,用于在接收到判斷單元501的觸發時,根據下述公式,計算右 移位數,并根據右移位數,將結果數據右移相應的位數,得到序列平均值;
[0126] j = log2 η
[0127] 其中,j表征右移位數,η表征序列長度。
[0128] 如圖6所示,在本發明又一實施例中,平均值計算單元304,包括:擇機有效標志601 和第三寄存器602,其中,
[0129] 第三寄存器602,用于存儲序列平均值,并輸出序列平均值,并觸發擇機有效標志 601;
[0130]擇機有效標志601,用于當接收到第三寄存器的觸發時,調整為拉高狀態,并觸發 第二寄存器401;
[0131] 第二寄存器401,用于接收到擇機有效標志601的觸發時,輸出序列長度。
[0132] 值得說明的是,只有在第三寄存器602輸出序列平均值時,擇機有效標志601才處 于拉高狀態,此時第二寄存器401才會輸出序列長度,當第三寄存器沒有輸出序列平均值 時,擇機有效標志601將一直保持拉低狀態,此時,第二寄存器401不會輸出序列長度,例如: 前面提及的當某一序列長度為2的整數次冪時,才會計算出一個該序列長度對應的序列平 均值,此時,第三寄存器才會輸出該序列長度對應的序列平均值,此時,擇機有效標志601調 整為拉高狀態,使得第二寄存器401輸出該序列長度,保證了序列長度與序列平均值的一致 性。
[0133] 在本發明另一實施例中,第一寄存器302,用于當結果數據溢出時,將自身存儲的 數據清零;
[0134] 第二寄存器401,用于當第一寄存器中的結果數據溢出時,將自身存儲的數據清 零。
[0135] 在本發明另一實施例中,第一寄存器302,用于當接收到上電請求時,將自身存儲 的數據清零;
[0136] 第二寄存器401,用于當接收到上電請求時,將自身存儲的數據清零。
[0137] 在本發明又一實施例中,第一寄存器302,用于當接收到復位請求時,將自身存儲 的數據清零;
[0138] 第二寄存器401,用于當接收到復位請求時,將自身存儲的數據清零。
[0139] 值得說明的是,本發明實施例提供的裝置可以為應用于芯片中的一種時序邏輯電 路SEQ_AVER,其通過各種端口與外設的設備進行信息交互,該SEQ_AVER的接口設置可以如 圖7所示,其中,輸入端包括:clk(芯片邏輯時鐘)、reset(芯片復位)和seq_in[6:0](序列元 素輸入端口);輸出端包括:1'(^1_1111111[56:0](當前序列總長度輸出端口)、4¥61'_〇111:[7:0] (序列平均值輸出端口)和Aver_vld(擇機有效標志);該SEQ_AVER的內部邏輯運算框圖如圖 8所示,其中,Rs[127:0]801作為第一寄存器,在接收seq_in[6 :0]發送的序列元素時,將Rs [127:0]801自身存儲的當前數據與seq_in[6:0]發送的序列元素進行累加操作,累加后的 結果存儲到Rs[127:0]801中,同時,每獲取一個序列元素,Ri[126:0]802作為第二寄存器, 進行加1操作,并將加1后的結果存儲到Ri[126:0]802中,以統計序列長度,當Ri[126:0]802 統計的序列長度為2 j(j = 0,1,2,3……)時,Rs[ 127 :0]801中存儲的數據執行右移j位的操 作,并將右移j位后的序列平均值存儲到Ra[6:0]803中,通過Aver_ 〇ut[7:0]輸出Ra[6:0] 803中的序列平均值,同時,當Ri[126:0]802統計的序列長度為2 j(j = 0,l,2,3……)時,使 Aver_vld處于拉高狀態,Ri [ 126:0]802通過Total_num[56:0]輸出序列長度。
[0140]上述裝置內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施 例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
[0141] 根據上述方案,本發明的各實施例所提供的計算序列平均值的方法和裝置,至少 具有如下有益效果:
[0142] 1.通過采樣周期和第一寄存器,每達到一次采樣周期,獲取一個序列元素;當每獲 取一個序列元素時,執行將當前序列元素與所述第一寄存器中存儲的當前數據進行累加, 并將累加后的結果數據替換所述第一寄存器中存儲的當前數據,其中,所述第一寄存器的 初始值為〇 ;確定所述結果數據對應的序列長度;根據所述結果數據和所述序列長度,計算 序列平均值,并輸出所述序列平均值。通過上述過程描述可知,在第一寄存器中存儲的是序 列元素的累加結果,即通過一個寄存器即可實現序列元素的累加,不僅無需為每個序列元 素配置一個寄存器,而且無需進行大規模的多輸入加法,能夠降低對芯片內存的消耗。
[0143] 2 .通過設置第二寄存器,當每獲取一個序列元素時,第二寄存器加 1,統計序列長 度,可以實時記錄序列長度的變化,保證了序列長度的統計的準確性;另外,當第二寄存器 記錄的序列長度為2的整數次冪時,則對第一寄存器存儲的結果數據進行右移操作,而無需 進行復雜的多位除法運算,在實現了擇機計算序列平均值的同時,進一步降低了對芯片內 存的消耗。
[0144] 3.通過設置擇機有效標志和第三寄存器,將序列平均值存儲到第三寄存器中;然 后通過第三寄存器輸出其存儲的序列平均值,并控制擇機有效標志處于拉高狀態,輸出第 二寄存器統計的序列長度,通過將序列平均值存儲在第三寄存器中,避免了序列平均值的 丟失,另外,只有當第三寄存器輸出其存儲的序列平均值對應的序列長度與第二寄存器統 計的序列長度一致時,擇機有效標志將處于拉高狀態,此時輸出第二寄存器統計的序列長 度,保證了輸出的序列長度與序列平均值的一致性。
[0145] 4.本發明實施例僅通過一個寄存器,實現每接收到一個序列元素進行一次累加, 而無需為每個序列元素設置一個寄存器,因此,本發明實施例提供的方案,大大降低了寄存 器的個數,減少了寄存器對芯片的占用,一定程度上,有助于減小芯片的大小。
[0146] 5.本發明實施例提供的方案,一方面通過第一寄存器每接收一個序列元素進行一 次累加,另一方面能夠通過右移的方式獲取序列平均值,不僅無需進行超大規模的多輸入 加法,而且無需進行多位除法運算,從而能夠促進芯片性能的提高。
[0147] 需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體 或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在 任何這種實際的關系或者順序。而且,術語"包括"、"包含"或者其任何其他變體意在涵蓋非 排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素, 而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固 有的要素。在沒有更多限制的情況下,由語句"包括一個......"限定的要素,并不排 除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
[0148] 本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過 程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序 在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光 盤等各種可以存儲程序代碼的介質中。
[0149] 最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技 術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、 等同替換、改進等,均包含在本發明的保護范圍內。
【主權項】
1. 一種計算序列平均值的方法,其特征在于,設置采樣周期和第一寄存器,每達到一次 采樣周期,獲取一個序列元素,還包括: 當每獲取一個序列元素時,執行將當前序列元素與所述第一寄存器中存儲的當前數據 進行累加,并將累加后的結果數據替換所述第一寄存器中存儲的當前數據,其中,所述第一 寄存器的初始值為0; 確定所述結果數據對應的序列長度; 根據所述結果數據和所述序列長度,計算序列平均值。2. 根據權利要求1所述的方法,其特征在于,進一步包括:設置第二寄存器; 所述確定所述結果數據對應的序列長度,包括:當每獲取一個序列元素時,所述第二寄 存器加1,統計序列長度,其中,所述第二寄存器的初始值為0。3. 根據權利要求2所述的方法,其特征在于,所述根據所述結果數據和所述序列長度, 計算序列平均值,包括: 判斷所述第二寄存器統計的序列長度是否為2的整數次冪; 如果是,則根據下述公式,計算右移位數,并根據所述右移位數,將所述結果數據右移 相應的位數,得到序列平均值; j = log2n 其中,所述j表征右移位數,所述η表征序列長度; 否則,直接等待下一個采樣周期,獲取下一個序列元素。4. 根據權利要求2或3所述的方法,其特征在于,進一步包括:設置擇機有效標志和第三 寄存器; 將所述序列平均值存儲到第三寄存器中; 輸出所述第三寄存器中存儲的所述序列平均值; 控制所述擇機有效標志處于拉高狀態,輸出所述第二寄存器統計的序列長度。5. 根據權利要求2或3所述的方法,其特征在于,進一步包括: 當所述結果數據溢出所述第一寄存器時,所述第一寄存器和所述第二寄存器將存儲的 數據清零; 或者, 當接收到系統上電請求時,所述第一寄存器和所述第二寄存器清零; 或者, 當接收到系統復位請求時,所述第一寄存器和所述第二寄存器清零。6. -種計算序列平均值的裝置,其特征在于,包括:設置單元、第一寄存器、確定單元和 平均值計算單元,其中, 所述設置單元,用于設置采樣周期,并發送所述采樣周期給所述第一寄存器; 所述第一寄存器,用于接收所述設置單元發送的所述采樣周期,每達到一次所述采樣 周期,獲取一個序列元素,當每獲取一個序列元素時,執行將序列元素與自身存儲的當前數 據進行累加,并將累加后的結果數據替換所述當前數據,將所述結果數據發送給所述平均 值計算單元; 所述確定單元,用于確定所述第一寄存器存儲的結果數據對應的序列長度,并將所述 序列長度發送給所述平均值計算單元; 所述平均值計算單元,用于接收所述第一寄存器發送的結果數據和所述確定單元發送 的序列長度,根據所述結果數據和所述序列長度,計算序列平均值。7. 根據權利要求6所述的裝置,其特征在于,所述確定單元,包括:第二寄存器,其中, 所述第二寄存器,用于當所述第一寄存器獲取一個序列元素時,執行加1操作,統計序 列長度,其中,所述第二寄存器的初始值為0。8. 根據權利要求7所述的裝置,其特征在于,進一步包括:判斷單元,其中, 所述判斷單元,用于判斷所述第二寄存器統計的序列長度是否為2的整數次冪,如果 是,則觸發所述平均值計算單元; 所述平均值計算單元,用于在接收到所述判斷單元的觸發時,根據下述公式,計算右移 位數,并根據所述右移位數,將所述結果數據右移相應的位數,得到序列平均值; j = log2n 其中,所述j表征右移位數,所述η表征序列長度。9. 根據權利要求7或8所述的裝置,其特征在于, 所述平均值計算單元,包括:擇機有效標志和第三寄存器,其中, 所述第三寄存器,用于存儲所述序列平均值,并輸出所述序列平均值,并觸發所述擇機 有效標志; 所述擇機有效標志,用于當接收到所述第三寄存器的觸發時,調整為拉高狀態,并觸發 第二寄存器; 所述第二寄存器,用于接收到所述擇機有效標志的觸發時,輸出所述序列長度。10. 根據權利要求7或8所述的裝置,其特征在于, 所述第一寄存器,用于當所述結果數據溢出時,將自身存儲的數據清零; 所述第二寄存器,用于當所述第一寄存器中的結果數據溢出時,將自身存儲的數據清 零; 或者, 所述第一寄存器,用于當接收到上電請求時,將自身存儲的數據清零; 所述第二寄存器,用于當接收到上電請求時,將自身存儲的數據清零; 或者, 所述第一寄存器,用于當接收到復位請求時,將自身存儲的數據清零; 所述第二寄存器,用于當接收到復位請求時,將自身存儲的數據清零。
【文檔編號】G06F9/50GK105868026SQ201610207072
【公開日】2016年8月17日
【申請日】2016年4月5日
【發明人】周恒釗, 劉璧怡, 鐘俊華
【申請人】浪潮電子信息產業股份有限公司