獲取處理器工作狀態的方法、多處理器系統與處理器的製作方法
2023-08-04 00:14:31 1
專利名稱:獲取處理器工作狀態的方法、多處理器系統與處理器的製作方法
技術領域:
本發明涉及通信領域,尤其涉及獲取處理器工作狀態的方法、多處理器 系統與處理器。
背景技術:
隨著集成電路設計的不斷進步,無論是計算機領域還是嵌入式領域,都 需要使用多個處理器,或者將多個處理器集成到一個晶片。而在多處理器系 統中,高效的多核通信與配合機制是關鍵技術。現有技術最常見的多核通信機制是郵箱通信,也就是多核之間通過雙向 的郵箱來向對端發送信息或者接收對端發送的信息。 一般地,所述多核通信 機制在晶片上集成多個處理器內核,而處理器對郵箱消息的處理依賴於具體 調度程序,調度程序決定了處理器在某個時刻執行哪個任務,通常在沒有更 高優先級任務的時候才處理郵箱消息,從而使得對端處理郵箱消息的時間和 響應時間不確定。發明人在實現本發明過程中,發現現有技術中至少存在如下問題由於 上述現有技術中處理器對郵箱的處理時間和響應時間不確定,這樣在實時性 要求高的應用場合就會導致通過郵箱傳遞的重要信息被延遲。發明內容本發明實施例提供了一種獲取處理器工作狀態的方法,所述方法能夠及 時獲取從處理器的工作狀態。本發明實施例提供了一種多處理器系統,所述系統能夠及時獲取從處理 器的工作狀態。本發明實施例提供了一種處理器,所述處理器能夠及時獲取第一處理器 的工作狀態。為解決上述技術問題,本發明實施例提供了一種獲取處理器工作狀態的方法,其特徵在於,包括查詢第一處理器對應的狀態機,獲取所述狀態^L的狀態;根據所述狀態機的狀態分析得到第一處理器所處的工作狀態。本發明實施例還提供了一種處理器,所述處理器包括獲取單元,用於通過查詢第一處理器對應的狀態機獲取所述狀態機的狀態;分析單元,用於根據所述狀態機的狀態分析得到所述從處理器所處的工 作狀態。本發明實施例還提供了 一種多處理器系統,所述系統包括狀態機,用於在多個狀態之間切換;從處理器,用於根據狀態機所處的狀態確定工作狀態;主處理器,用於通過查詢所述狀態機獲取所述狀態機的狀態,以及根據 所述狀態機的狀態得到所述從處理器所處的工作狀態。以上技術方案具有如下優點或有益效果1、 由於本發明實施例通過查詢所述狀態機就能獲知作為從處理器的第一 處理器所處的工作狀態,這樣使得作為主處理器的第二處理器可以及時了解 作為從處理器的第一處理器的工作狀態,從而使得主處理器可以及時對第一 處理器進行控制,比如,通過修改狀態機的狀態強制第一處理器從當前的工 作狀態進入所需要的某個工作狀態或避開修改第一處理器當前所處工作狀態 可能訪問的一些資源。2、 由於本發明實施例通過查詢所述狀態機就能獲知從處理器所處的工作 狀態,這樣能夠及時了解從處理器的工作狀態,從而可以及時對從處理器進 行控制,比如,通過修改狀態機的狀態強制從處理器從當前的工作狀態進入 所需要的某個工作狀態或避開修改從處理器當前所處工作狀態可能訪問的一 些資源。
圖1是本發明實施例一獲取處理器工作狀態的方法流程圖; 圖2是本發明實施例二獲取處理器工作狀態的方法流程圖; 圖3是本發明實施例三處理器的示意圖; 圖4是本發明實施例四多處理器系統的示意圖。
具體實施方式
本發明實施例提供了一種獲取處理器工作狀態的方法,所述方法包括查詢第 一處理器對應的狀態機,獲取所述狀態機的狀態;根據所述狀態機的狀態分析得到第一處理器所處的工作狀態。為使本領域技術人員能夠更好地理解本發明實施例,下面結合附圖對本 發明實施例的技術方案進行描述。實施例一、 一種獲取處理器工作狀態的方法,其方法流程如圖1所示, 包括以下步驟步驟IOI、根據業務需求劃分從處理器的工作狀態,例如,業務需要將從 處理器的工作狀態分為等待、工作或休眠狀態等,再為所述從處理器的工作這樣狀態機在每個時刻都處於一種確定的狀態,從處理器就會根據狀態機進 行相應的操作。可以用計數器實現狀態機,這樣計數器的每個值就可以表示從處理器所 處的工作狀態。另外,從處理器在不同的工作狀態會進行不同的操作。步驟102、從處理器獲取狀態機的當前狀態,並根據所述當前狀態進行相 應的操作, 一般地,從處理器在不同狀態訪問不同的系統資源,以及執行不 同的任務等操作。步驟103、狀態機根據收到的事件從當前狀態遷移到另一個狀態,並觸發 從處理器從當前所處的工作狀態遷移到另 一個工作狀態。所述事件可以為計 數器等於預置計數值、定時器等於預置時間或從處理器執行完當前工作狀態 對應的操作等。其中,所述事件為計數器等於預置計數值時,該計數器是底層的一個計 數器,當它的計數值等於預置計數值時就會溢出,從而觸發狀態機進行狀態 遷移。其中,所述事件為定時器等於預置時間時,假設預置時間為10ms,每次 定時器計滿lOms就會觸發狀態機進行狀態遷移。步驟104、主從處理器通過查詢狀態機獲知從處理器所處的工作狀態,根 據所述工作狀態便可確定從處理器正在進行的相應操作,從而可以避免與從 處理的訪問衝突和確定對從處理器的控制方法。值得說明的是,由於本發明實施例能夠獲取第一處理器對應的狀態機, 以及通過查詢所述狀態機就能獲知第 一處理器所處的工作狀態以及第 一處理 器正在進行的相應操作,這樣使得作為主處理器的第二處理器可以及時了解 作為從處理器的第一處理器的工作狀態,從而使得第二處理器可以及時對第 一處理器進行控制,比如,通過修改狀態機的狀態強制第一處理器從當前的 工作狀態進入所需要的某個工作狀態或避開修改第一處理器當前所處工作狀 態可能訪問的一些資源。值得說明的是,主處理器可以通過修改狀態機的狀態強制從處理器從當 前所處的工作狀態進入所需要的某個工作狀態。值得說明的是,因為從處理器當前所處的工作狀態確定,主處理器可以 避開修改從處理器當前工作狀態可能訪問的一些資源,例如,所述的資源可 以為控制寄存器存儲的控制參數,所述控制參數可以為從處理器在某個狀態 的運行參數或判決門限等,從而可以有效地避免資源衝突,同時也避免了從 處理器在一個狀態中控制參數前後不一致帶來的混亂。值得說明的是,主處理器在獲取從處理器所處的工作狀態後還進一步判 斷將要下發的控制信息或數據是否為遲到的無意義操作,這樣避免將控制信 息或數據發送給從處理器,從而中斷從處理器做一些無意義的操作,進而提 高系統效率。最後,值得說明的是,主處理器可以作為從處理器,從處理器也可以作 為主處理器,通常也可將從處理器稱為第一處理器,將i處理器稱為第二處 理器。由上述可知,實施例一是一個普遍適用的技術方案,不針對某個具體的 業務,下面以從處理器對10個通道傳輸的數據進行編解碼為例對實施例一進 行說明。實施例二、 一種獲取處理器工作狀態的方法,本實施例的主處理器是一個CPU (Center Process Unit,簡稱為"中央處理器"),從處理器為多個DSP (Digital Signal Processor,簡稱為"數位訊號處理器"),其方法流程如圖2所 示,包括以下步驟步驟201、配置一個模值為10的狀態計數器,其計數範圍為0 9,每個計 數值分別表示DSP所處的一個工作狀態。其中,所述狀態計數器相當於一個狀 態機, 一般地,每個DSP都對應一個狀態機。步驟202、 DSP獲取狀態計數器的當前計數值,並根據當前計數值進行相 應的操作,例如,計數值為O表示DSP所處的工作狀態為O,表示DSP對第1個 通道的數據進行編解碼;計數值為l表示DSP所處的工作狀態為l,表示DSP對 第2個通道的數據進行編解碼,其他計數值依次類推。步驟203、狀態計數器根據收到的事件從當前狀態遷移到另一個狀態,此 時狀態計數器自動加l,觸發DSP從當前所處的工作狀態遷移到另一個工作狀 態。其中,所述事件為計數器等於預置計數值、定時器等於預置時間或從處 理器執行完當前工作狀態對應的操作等。步驟204、 CPU通過查詢狀態計數器便可獲知DSP所處的工作狀態,根據 工作狀態便可確定DSP正在進行的相應操作。例如,狀態計數器為O表示DSP 正在對第l個通道的數據進行編解碼操作,需要訪問第l個通道的內存空間, 同時如果正好收到該通道的新數據,為了避免內存空間的讀寫衝突,CPU不 能立即更新這個通道的數據內存空間時,此時CPU可以選擇丟棄數據、延遲更新或其他異常處理策略。另外,CPU通過查詢狀態計數器便可得知DSP在整個狀態循環的哪個狀 態,正在訪問哪些共享資源。比如,假設狀態計數器的每個狀態表示從處理器在執行同一業務的某種不同操作,如果業務需要CPU收到的新數據或控制信息必須在DSP的狀態3 ~ 5 之間修改某些控制寄存器才能生效,否則可能影響其他狀態的運行,此刻DSP 已經運行到了狀態8, CPU可以忽略新數據或控制信息、延遲更新或其他異常 處理等策略。如果業務需要CPU收到的新數據或控制信息必須在DSP的狀態6 之前修改某些控制寄存器才能在當前狀態循環中生效,否則要到下一個循環 的狀態6才能生效,此刻DSP已經運行到了狀態7,若CPU收到的是延遲的新數 據,則可以丟棄;若CPU收到的是控制信息,則根據延時是否允許來決定是 否需要對DSP發出控制操作。由上述可知,本發明實施例的主處理器和從處理器個數不限,可以是任 意組合,並且從處理器可以是CPU、 DSP和邏輯協處理器。可選地,控制從處理器的狀態計數器可以是一個或多個,狀態計數器的跳 轉可以不是加l,而可以是任意數字之間的跳轉。是可以通過程序來指示相關的硬體來完成,所述的程序可以存儲於計算機可讀取存儲介質中,該程序在執行時,包括以下步驟查詢第一處理器對應的狀態機,獲取所述狀態機的狀態;根據所述狀態機的狀態分析得到第一處理器所處的工作狀態。其中,所述的存儲介質可以是ROM、 RAM、磁碟或光碟等等。實施例三、 一種處理器,參照圖3,所述處理器包括獲取單元301,用於獲取第一處理器對應的狀態機;分析單元302,用於查詢所述狀態機得到第一處理器所處的工作狀態,並 根據所述工作狀態確定第一處理器正在進行的相應操作。狀態更新單元303,用於根據分析單元302得到的工作狀態修改所述狀態 機的狀態,以使第一處理器從當前所處的工作狀態進入所需要的工作狀態。判斷單元304,用於根據分析單元302得到的工作狀態判斷第一資源在所 述第一處理器的當前工作狀態內是否會被第一處理器訪問;資源更新控制單元305,用於在第一資源被第一處理器訪問時不修改所述 第一資源,以及在第一資源不被第一處理器訪問時修改所述第一資源。需要說明的是,所述處理器可以為中央處理器、數位訊號處理器或邏輯 協處理器等。需要iJt明的是,所述處理器通過查詢單元302得到第一處理器所處的工 作狀態,並根據所述工作狀態確定第一處理器正在進行的相應操作,從而可 以避免與從處理的訪問衝突和確定對從處理器的控制方法。由上述可知,由於本發明實施例通過查詢所述狀態機就能獲知第一處理 器所處的工作狀態,這樣能夠及時了解第一處理器的工作狀態,從而可以及 時對第一處理器進行控制,比如,通過修改狀態機的狀態強制第一處理器從 當前的工作狀態進入所需要的某個工作狀態或避開修改第一處理器當前所處工作狀態可能訪問的 一些資源。實施例四、 一種多處理器系統,參照圖4,所述系統包括狀態機401,用於在多個狀態之間切換;從處理器402,用於根據狀態機401所處的狀態確定工作狀態;主處理器403,用於通過查詢所述狀態機401獲取所述狀態才幾401的狀態, 以及根據所述狀態機401的狀態得到所述從處理器402所處的工作狀態。 可選地,所述主處理器403包括第一獲取單元,用於通過查詢從處理器402對應的狀態機獲取所述狀態 才幾的狀態。第一分析單元,用於根據所述狀態機401的狀態分析得到所述從處理器 402所處的工作狀態。第 一狀態更新單元,用於根據第 一分析單元得到的工作狀態修改所述狀態機401的狀態,以使所述從處理器402從當前所處的工作狀態進入所需要的 工作狀態。第一判斷單元,用於根據第一分析單元得到的工作狀態判斷第一資源在 所述從處理器402的當前工作狀態內是否會被所述從處理器402訪問;第一資源更新控制單元,用於在第一資源被所述從處理器402訪問時不 修改所述第一資源。由上述可知,由於本發明實施例通過查詢所述狀態機就能獲知從處理器 所處的工作狀態,這樣能夠及時了解從處理器的工作狀態,從而可以及時對 從處理器進行控制,比如,通過修改狀態機的狀態強制從處理器從當前的工 作狀態進入所需要的某個工作狀態或避開修改從處理器當前所處工作狀態可 能訪問的一些資源。以上對本發明實施例所提供的獲取處理器工作狀態的方法、多處理器系 統與處理器進行了詳細介紹,本文中應用了具體個例對本發明的原理及實施 方式進行了闡述,以上實施例的說明只是用於幫助理解本發明的方法及其核 心思想;同時,對於本領域的一般技術人員,依據本發明的思想,在具體實 施方式及應用範圍上均會有改變之處,綜上所述,本說明書內容不應理解為 對本發明的限制。
權利要求
1、一種獲取處理器工作狀態的方法,其特徵在於,包括查詢第一處理器對應的狀態機,獲取所述狀態機的狀態;根據所述狀態機的狀態分析得到第一處理器所處的工作狀態。
2、 如權利要求l所述的方法,其特徵在於,所述方法還包括 根據所述第一處理器的工作狀態確定所述第一處理器正在進行的相應操作。
3、 如權利要求l所述的方法,其特徵在於,所述狀態機用於根據事件從 當前狀態遷移到另一個狀態,以觸發所述第一處理器從當前所處的工作狀態 切換到另一個工作狀態。
4、 如權利要求3所述的方法,其特徵在於,所述事件為計數器等於預置 計數值、定時器等於預置時間或所述第一處理器執行完當前工作狀態對應的 操作。
5、 如權利要求1至4任一項所述的方法,其特徵在於,所述方法還包括 修改所述狀態機的狀態,以使所述第一處理器從當前所處的工作狀態進入所需要的工作狀態。
6、 如權利要求1至4任一項所述的方法,其特徵在於,所述在根據所述 狀態機的狀態得到第一處理器所處的工作狀態之後,還包括根據所述第一處理器所處的當前工作狀態,判斷第一資源在所述第一處 理器的當前工作狀態內是否會被第一處理器訪問,若是,則不修改該第一資 源。
7、 一種處理器,其特徵在於,所述處理器包括獲取單元,用於通過查詢第一處理器對應的狀態才幾獲取所述狀態4幾的狀態;分析單元,用於根據所述狀態機的狀態分析得到所述從處理器所處的工 作狀態。
8、 如權利要求7所述的處理器,其特徵在於,所述處理器還進一步包括狀態更新單元,用於根據分析單元得到的工作狀態修改所述狀態機的狀 態,以使第一處理器從當前所處的工作狀態進入所需要的工作狀態。
9、 如權利要求8所述的處理器,其特徵在於,所述處理器還進一步包括 判斷單元,用於根據分析單元得到的工作狀態判斷第一資源在所述第一處理器的當前工作狀態內是否會被第 一處理器訪問;資源更新控制單元,用於在第一資源被第一處理器訪問時不修改所述第 一資源。
10、 如權利要求7至9任一項所述的處理器,其特徵在於,所述處理器 為中央處理器、數位訊號處理器或邏輯協處理器。
11、 一種多處理器系統,其特徵在於,所述系統包括 狀態機,用於在多個狀態之間切換;從處理器,用於根據狀態機所處的狀態確定工作狀態; 主處理器,用於通過查詢所述狀態機獲取所述狀態機的狀態,以及根據 所述狀態機的狀態得到所述從處理器所處的工作狀態。
12、 如權利要求11所述的系統,其特徵在於,所述主處理器包括 第一獲取單元,用於通過查詢從處理器對應的狀態機獲取所述狀態機的狀態;第一分析單元,用於根據所述狀態機的狀態得到所述從處理器所處的工 作狀態;第一狀態更新單元,用於根據所述第一分析單元得到的工作狀態修改所 述狀態機的狀態,以使所述從處理器從當前所處的工作狀態進入所需要的工 作狀態。
13、 如權利要求11或12所述的系統,其特徵在於,所述主處理器還進 一步包括第一判斷單元,用於根據所述第一分析單元得到的工作狀態判斷第 一資 源在所述從處理器的當前工作狀態內是否會被所述從處理器訪問;第一資源更新控制單元,用於在所述第一資源被所述從處理器訪問時不 修改所述第一資源。
全文摘要
本發明涉及通信領域,公開了獲取處理器工作狀態的方法、多處理器系統與處理器,其中,所述方法包括查詢第一處理器對應的狀態機,獲取所述狀態機的狀態;根據所述狀態機的狀態分析得到第一處理器所處的工作狀態。本發明使得作為主處理器的第二處理可以及時了解作為從處理器的第一處理器的工作狀態,從而使得主處理器可以及時對從處理器進行控制。
文檔編號G06F11/34GK101226498SQ20081000916
公開日2008年7月23日 申請日期2008年2月2日 優先權日2008年2月2日
發明者凡 餘 申請人:華為技術有限公司