(57)【特許請求の範囲】
【請求項１】
マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法であって、
前記マルチプロセッサコアシステムの実行プロセスにおいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するステップを含み、前記第1の制御パラメータがN個のデータフローの表示情報を指し、前記N個のデータフローが、前記マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた前記処理されたパケットの数に従って降順にソートすることによって第１のサンプリング周期内で取得された第１のN個のデータフローを指し、Nが正の整数であり、前記第2の制御パラメータが、前記マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、前記マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指し、前記第3の制御パラメータが、最低使用量を有する前記プロセッサコアのプロセッサコア情報を指し、前記第4の制御パラメータが、各々のデータフローのアプリケーションクリティカルパス記述情報を指し、
前記第1の制御パラメータに基づいて、現在のパケットが属するデータフローが前記N個のデータフローのうちの1つであるかどうかを検出するステップを含み、
前記現在のパケットが属する前記データフローが前記N個のデータフローのうちの1つでないとき、前記第2の制御パラメータと前記第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、前記マルチプロセッサコアシステムに入る前記データフローの前記パケットを処理のためにアイドルプロセッサコアに転送するステップを含み、前記コア間切替えポリシーが、パケットの前記内部伝送期間が前記プロセッサコアによって前記パケットを処理するための期間を超える場合、前記パケットが前記最低使用量を有する前記プロセッサコアによって処理され、前記プロセッサコアによって前記パケットを処理するための期間が前記パケットの前記内部伝送期間を超える場合、前記パケットが処理のために指定されたプロセッサコアに結合され、
前記第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、前記マルチプロセッサコアシステム内で前記パケットを処理する前記プロセッサコアを割込みモードとポーリングモードとの間で切り替えるステップを含み、前記コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、前記プロセッサコアが前記割込みモードに入って前記パケットを処理し、前記全体的なポーリングオーバーヘッドが前記全体的な割込みオーバーヘッドよりも小さい場合、前記プロセッサコアが前記ポーリングモードに入って前記パケットを処理する方法。
【請求項２】
前記第2の制御パラメータと前記第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、前記マルチプロセッサコアシステムに入る前記データフローの前記パケットを処理のためにアイドルプロセッサコアに転送するステップが、
前記第2の制御パラメータに基づいて、前記マルチプロセッサコアシステム内の前記現在のパケットが属する前記データフローの前記内部伝送期間が前記マルチプロセッサコアシステム内の前記プロセッサコアによって前記現在のパケットが属する前記データフローを処理するための前記期間を超えるかどうかを判断するステップと、
前記マルチプロセッサコアシステム内の前記現在のパケットが属する前記データフローの前記内部伝送期間が前記マルチプロセッサコアシステム内の前記プロセッサコアによって前記現在のパケットが属する前記データフローを処理するための前記期間を超える場合、前記第3の制御パラメータに基づいて、前記マルチプロセッサコアシステム内の前記最低使用量を有する前記プロセッサコアに前記現在のパケットを分配するステップとを含む、請求項1に記載の方法。
【請求項３】
前記現在のパケットが属する前記データフローが前記N個のデータフローのうちの1つであるとき、または前記マルチプロセッサコアシステム内の前記現在のパケットが属する前記データフローの前記内部伝送期間が前記マルチプロセッサコアシステム内の前記プロセッサコアによって前記現在のパケットが属する前記データフローを処理するための前記期間を超えないとき、前記現在のパケットが属する前記データフローの前記パケットが前記マルチプロセッサコアシステムに入るときに、前記パケットが、そのリソース使用量が第1のしきい値よりも低い前記プロセッサコアによって処理されるように、前記現在のパケットをそのリソース使用量が前記第1のしきい値よりも低い前記プロセッサコアに送信するステップと、前記現在のパケットが属する前記データフローをそのリソース使用量が前記第1のしきい値よりも低い前記プロセッサコアに結合するステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、前記マルチプロセッサコアシステム内で前記パケットを処理する前記プロセッサコアを割込みモードとポーリングモードとの間で切り替えるステップが、
前記マルチプロセッサコアシステムの初期化の間に、各々のデータフローを前記割込みモードで処理するための単一の割込みオーバーヘッドを検出し、各々のデータフローを前記ポーリングモードで処理するための単一のポーリングオーバーヘッドを検出するステップと、
各々のデータフローの前記アプリケーションクリティカルパス記述情報に基づいて、前記現在のパケットが属する前記データフローが対応するアプリケーションクリティカルパスを有するかどうかを検出するステップと、
前記現在のパケットが属する前記データフローが前記対応するアプリケーションクリティカルパスを有し、かつ前記現在のパケットを処理する前記プロセッサコアが前記ポーリングモードである場合、第1の測定周期内のポーリング回数を検出するステップと、
前記ポーリング回数と前記単一のポーリングオーバーヘッドとに基づいて、全体的なポーリングオーバーヘッドを取得するステップと、
割込み回数の予測しきい値と前記単一の割込みオーバーヘッドとに基づいて、前記全体的な割込みオーバーヘッドを取得するステップと、
前記全体的なポーリングオーバーヘッドが前記全体的な割込みオーバーヘッドよりも大きいとき、前記現在のパケットを処理する前記プロセッサコアを前記ポーリングモードから前記割込みモードに切り替えるステップと
前記全体的なポーリングオーバーヘッドが前記全体的な割込みオーバーヘッドよりも大きくないとき、前記現在のパケットを処理する前記プロセッサコアの前記ポーリングモードを維持するステップとを含む、請求項1から3のいずれか一項に記載の方法。
【請求項５】
前記現在のパケットが属する前記データフローが対応する前記アプリケーションクリティカルパスを有し、かつ前記現在のパケットを処理する前記プロセッサコアが前記割込みモードである場合、第2の測定周期内の前記割込み回数を検出するステップと、
前記割込み回数と前記単一の割込みオーバーヘッドとに基づいて、前記全体的な割込みオーバーヘッドを取得するステップと、
前記ポーリング回数の予測しきい値と前記単一のポーリングオーバーヘッドとに基づいて、前記全体的なポーリングオーバーヘッドを取得するステップと、
前記全体的な割込みオーバーヘッドが前記全体的なポーリングオーバーヘッドよりも大きいとき、前記現在のパケットを処理する前記プロセッサコアを前記割込みモードから前記ポーリングモードに切り替えるステップと、
前記全体的な割込みオーバーヘッドが前記全体的なポーリングオーバーヘッドほど大きくないとき、前記現在のパケットを処理する前記プロセッサコアの前記割込みモードを維持するステップと
をさらに含む、請求項4に記載の方法。
【請求項６】
第1の制御パラメータを取得する前記ステップが、
前記第1のサンプリング周期内で前記マルチプロセッサコアシステムによって処理された前記パケットを取得するステップと、
前記マルチプロセッサコアシステムによって処理された前記パケットと前記パケットが属する前記データフローとの間の関係を判断するステップと、
前記マルチプロセッサコアシステムによって処理されたパケットの数を降順にソートして、前記マルチプロセッサコアシステムによって処理された前記パケットと前記パケットが属する前記データフローとの間の関係に基づいて、前記順序に従って、前記第1のN個のパケットを含む前記データフローを判断するステップとを含む、請求項1から5のいずれか一項に記載の方法。
【請求項７】
第4の制御パラメータを取得するステップが、
第1の検出周期内で、検出されることになる前記データフローのパケットの処理期間および処理頻度が処理期間しきい値および処理頻度しきい値を超えるかどうかを判断するステップと、
前記マルチプロセッサコアシステム内で検出されることになる前記データフローの前記パケットの前記処理期間および前記処理頻度が前記処理期間しきい値ならびに前記処理頻度しきい値を超えるとき、検出されることになる前記データフローの前記アプリケーションクリティカルパス記述情報を取得するステップと、を含み、前記アプリケーションクリティカルパス記述情報が、検出されることになる前記データフローがアプリケーションクリティカルパスを有することを示す、請求項1から6のいずれか一項に記載の方法。
【請求項８】
検出されることになる前記データフローのパケットの処理期間および処理頻度が処理期間しきい値および処理頻度しきい値を超えるかどうか検出するステップが、
機能処理カウンタと頻度カウンタとを動作可能にするステップと、
検出されることになる前記データフローの前記パケットが前記現在の機能モジュールによって処理されるとき、前記機能処理カウンタの値に1を加算するステップと、
前記機能処理カウンタの値が前記処理期間しきい値よりも大きいかどうかを検出するステップと、
前記機能処理カウンタの値が前記処理期間しきい値よりも大きいとき、前記頻度カウンタの値に1を加算して、前記機能処理カウンタをリセットするステップと、
前記頻度カウンタの値が前記処理頻度しきい値よりも大きいかどうかを検出するステップとを含み、
検出されることになる前記データフローの前記アプリケーションクリティカルパス記述情報を取得するステップが、
前記頻度カウンタの前記値が前記処理頻度しきい値よりも大きいとき、前記頻度カウンタの値が前記処理頻度しきい値よりも大きい、対応するパケットを含む前記データフローに関する前記アプリケーションクリティカルパス記述情報を取得するステップを含む、請求項7に記載の方法。
【請求項９】
マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための装置であって、
前記マルチプロセッサコアシステムの実行プロセスにおいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するように構成された制御パラメータ取得ユニットを含み、前記第1の制御パラメータがN個のデータフローの表示情報を指し、前記N個のデータフローが、前記マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた前記処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nが正の整数であり、前記第2の制御パラメータが、前記マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、前記マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指し、前記第3の制御パラメータが、最低使用量を有する前記プロセッサコアのプロセッサコア情報を指し、前記第4の制御パラメータが、各々のデータフローのアプリケーションクリティカルパス記述情報を指し、
前記第1の制御パラメータに基づいて、現在のパケットが属するデータフローが前記N個のデータフローのうちの1つであるかどうかを検出するように構成された第1の検出ユニットを含み、
前記第1の検出ユニットが、前記現在のパケットが属する前記データフローが前記N個のデータフローのうちの1つでないことを検出したとき、前記第2の制御パラメータと前記第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、前記マルチプロセッサコアシステムに入る前記データフローの前記パケットを処理のためにアイドルプロセッサコアに転送するように構成されたコア間切替えスケジューリングユニットを含み、前記コア間切替えポリシーが、パケットの前記内部伝送期間が前記プロセッサコアによって前記パケットを処理するための期間を超える場合、前記パケットが前記最低使用量を有する前記プロセッサコアによって処理され、前記プロセッサコアによって前記パケットを処理するための期間が前記パケットの前記内部伝送期間を超える場合、前記パケットが処理のために指定されたプロセッサコアに結合され、
前記第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、前記マルチプロセッサコアシステム内で前記パケットを処理する前記プロセッサコアを割込みモードとポーリングモードとの間で切り替えるように構成されたコア内切替えスケジューリングユニットを含み、前記コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、前記プロセッサコアが前記割込みモードに入って前記パケットを処理し、前記全体的なポーリングオーバーヘッドが前記全体的な割込みオーバーヘッドよりも小さい場合、前記プロセッサコアが前記ポーリングモードに入って前記パケットを処理する装置。
【請求項１０】
前記コア間切替えスケジューリングユニットが、
前記第2の制御パラメータに基づいて、前記マルチプロセッサコアシステム内の前記現在のパケットが属する前記データフローの前記内部伝送期間が前記マルチプロセッサコアシステム内の前記プロセッサコアによって前記現在のパケットが属する前記データフローを処理するための期間を超えるかどうかを判断するように構成された第1の判断サブユニットと、
前記第1の検出ユニットが、前記現在のパケットが属する前記データフローが前記N個のデータフローのうちの1つではなく、かつ前記マルチプロセッサコアシステム内の前記現在のパケットが属する前記データフローの前記内部伝送期間が前記マルチプロセッサコアシステム内の前記プロセッサコアによって前記現在のパケットが属する前記データフローを処理するための前記期間を超えることを検出したとき、前記第3の制御パラメータに基づいて、前記マルチプロセッサコアシステム内の前記最低使用量を有する前記プロセッサコアに前記現在のパケットを分配するように構成された第1のスケジューリングサブユニットとを含む、請求項9に記載の装置。
【請求項１１】
前記コア間切替えスケジューリングユニットが、
前記第1の検出ユニットが、前記現在のパケットが属する前記データフローが前記N個のデータフローのうちの1つであることを検出したとき、または前記第1の判断サブユニットが、前記マルチプロセッサコアシステム内の前記現在のパケットが属する前記データフローの前記内部伝送期間が前記マルチプロセッサコアシステム内の前記プロセッサコアによって前記現在のパケットが属する前記データフローを処理するための期間を超えないと判断したとき、前記現在のパケットが属する前記データフローの前記パケットが前記マルチプロセッサコアシステムに入るときに、前記パケットがそのリソース使用量が第1のしきい値よりも低い前記プロセッサコアによって処理されるように、前記現在のパケットをそのリソース使用量が前記第1のしきい値よりも低い前記プロセッサコアに送信することと、前記現在のパケットが属する前記データフローをそのリソース使用量が前記第1のしきい値よりも低い前記プロセッサコアに結合することとを行うように構成された第2のスケジューリングサブユニットをさらに含む、請求項10に記載の装置。
【請求項１２】
前記コア内切替えスケジューリングユニットが、
前記マルチプロセッサコアシステムの初期化の間に、各々のデータフローを前記割込みモードで処理するための単一の割込みオーバーヘッドを検出し、各々のデータフローを前記ポーリングモードで処理するための単一のポーリングオーバーヘッドを検出するように構成された第2の検出サブユニットと、
各々のデータフローのアプリケーションクリティカルパス記述情報に基づいて、前記現在のパケットが属する前記データフローが対応するアプリケーションクリティカルパスを有するかどうかを検出するように構成された第3の検出サブユニットと、
前記現在のパケットが属する前記データフローが前記対応するアプリケーションクリティカルパスを有し、かつ前記現在のパケットを処理する前記プロセッサコアが前記ポーリングモードであるとき、第1の測定周期内のポーリング回数を検出するように構成されたポーリング検出サブユニットと、
前記ポーリング回数と前記単一のポーリングオーバーヘッドとに基づいて、全体的なポーリングオーバーヘッドを取得するように構成されたポーリングオーバーヘッド取得サブユニットと、
割込み回数の予測しきい値と前記単一の割込みオーバーヘッドとに基づいて、全体的な割込みオーバーヘッドを取得するように構成された割込みオーバーヘッド取得サブユニットと、
前記全体的なポーリングオーバーヘッドが前記全体的な割込みオーバーヘッドよりも大きいとき、前記現在のパケットを処理する前記プロセッサコアを前記ポーリングモードから前記割込みモードに切り替えるように構成された第3のスケジューリングサブユニットと、
前記全体的なポーリングオーバーヘッドが前記全体的な割込みオーバーヘッドほど大きくないとき、前記現在のパケットを処理する前記プロセッサコアの前記ポーリングモードを維持するように構成された第4のスケジューリングサブユニットとを含む、請求項9から11のいずれか一項に記載の装置。
【請求項１３】
前記コア内切替えスケジューリングユニットが、
前記現在のパケットが属する前記データフローが前記対応するアプリケーションクリティカルパスを有し、かつ前記現在のパケットを処理する前記プロセッサコアが前記割込みモードであるとき、第2の測定周期内の前記割込み回数を検出するように構成された割込み検出サブユニットをさらに含み、
前記割込みオーバーヘッド取得サブユニットが、前記割込み回数と前記単一の割込みオーバーヘッドとに基づいて、前記全体的な割込みオーバーヘッドを取得するように構成され、
前記ポーリングオーバーヘッド取得サブユニットが、前記ポーリング回数の予測しきい値と前記単一のポーリングオーバーヘッドとに基づいて、前記全体的なポーリングオーバーヘッドを取得するように構成され、
前記第4のスケジューリングサブユニットが、前記全体的な割込みオーバーヘッドが前記全体的なポーリングオーバーヘッドよりも大きいとき、前記現在のパケットを処理する前記プロセッサコアを前記割込みモードから前記ポーリングモードに切り替えるように構成され、
前記第3のスケジューリングサブユニットが、前記全体的な割込みオーバーヘッドが前記全体的なポーリングオーバーヘッドほど大きくないとき、前記現在のパケットを処理する前記プロセッサコアの前記割込みモードを維持するように構成された、請求項12に記載の装置。
【請求項１４】
前記制御パラメータ取得ユニットが、
前記第1のサンプリング周期内で前記マルチプロセッサコアシステムによって処理された前記パケットを取得することと、前記マルチプロセッサコアシステムによって処理されたパケットの数を降順にソートすることと、前記マルチプロセッサコアシステムによって処理された前記パケットと前記パケットが属する前記データフローとの間の関係に基づいて、前記順序に従って、前記第1のN個のパケットを含む前記データフローを判断するように構成された第1の制御パラメータ取得ユニットを含み、
前記マルチプロセッサコアシステムの前記実行プロセスにおいて、前記第2の制御パラメータを取得するように構成された第2の制御パラメータ取得ユニットを含み、前記第2の制御パラメータが、前記マルチプロセッサコアシステム内の各々のデータフローの前記内部伝送期間と、前記マルチプロセッサコアシステム内の前記プロセッサコアによって各々のデータフローを処理するための前記期間とを指し、
前記マルチプロセッサコアシステムの前記実行プロセスにおいて、前記第3の制御パラメータを取得するように構成された第3の制御パラメータ取得ユニットを含み、前記第3の制御パラメータが、前記最低使用量を有する前記プロセッサコアのプロセッサコア情報を指し、
前記マルチプロセッサコアシステム内で検出されることになる前記データフローのパケットの処理期間および処理頻度が処理期間しきい値および処理頻度しきい値を超えるとき、検出されることになる前記データフローの前記アプリケーションクリティカルパス記述情報を取得するように構成された第4の制御パラメータ取得ユニットを含む、請求項9から13のいずれか一項に記載の装置。
【請求項１５】
前記第1の制御パラメータ取得ユニットが、
前記第1のサンプリング周期内で前記マルチプロセッサコアシステムによって処理された前記パケットを取得するように構成されたパケット情報取得サブユニットと、
前記マルチプロセッサコアシステムによって処理された前記パケットと前記パケットが属するパケットフローとの間の関係を判断するように構成されたデータフロー判断サブユニットと、
前記マルチプロセッサコアシステムによって処理されたパケットの数を降順にソートして、前記マルチプロセッサコアシステムによって処理された前記パケットと前記パケットが属する前記データフローとの間の関係に基づいて、前記順序に従って、前記第1のN個のパケットを含む前記データフローを判断するように構成された第1の制御パラメータ取得サブユニットとを含む、請求項14に記載の装置。
【請求項１６】
前記第4の制御パラメータ取得ユニットが、
第1の検出周期内で、検出されることになる前記データフローの前記パケットの前記処理期間および前記処理頻度が前記処理期間しきい値および前記処理頻度しきい値を超えるかどうかを検出することを行うように構成されたしきい値検出サブユニットと、
前記しきい値検出サブユニットが、前記マルチプロセッサコアシステム内で検出されることになる前記データフローの前記パケットの前記処理期間および前記処理頻度が前記処理期間しきい値および前記処理頻度しきい値を超えることを検出したとき、検出されることになる前記データフローの前記アプリケーションクリティカルパス記述情報を取得するように構成された第4の制御パラメータ取得サブユニットを含み、前記アプリケーションクリティカルパス記述情報が、検出されることになる前記データフローがアプリケーションクリティカルパスを有する請求項14に記載の装置。
【請求項１７】
バスと、
前記バスに結合したマルチプロセッサコアと、
前記バスに結合したメモリと
を含むコンピュータシステムであって、
前記マルチプロセッサコアが請求項9から16のいずれか一項に記載の装置を含むコンピュータシステム。
【請求項１８】
バスと、
前記バスに接続されたマルチプロセッサコアと、
前記バスに接続されたメモリと
を含むコンピュータシステムであって、
前記バスを介して前記メモリ内の実行命令を呼び出すことによって、前記マルチプロセッサコアが、前記メモリから呼び出されたデータに基づいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するように構成され、前記第1の制御パラメータがN個のデータフローの表示情報を指し、前記N個のデータフローが、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた前記処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nが正の整数であり、前記第2の制御パラメータが、前記マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、前記マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指し、前記第3の制御パラメータが、最低使用量を有する前記プロセッサコアのプロセッサコア情報を指し、前記第4の制御パラメータが、各々のデータフローのアプリケーションクリティカルパス記述情報を指し、
前記マルチプロセッサコアが、前記第1の制御パラメータに基づいて、現在のパケットが属するデータフローが前記N個のデータフローのうちの1つであるかどうかを検出することを行うようにさらに構成され、
前記マルチプロセッサコアが、前記現在のパケットが属する前記データフローが前記N個のデータフローのうちの1つでないとき、前記第2の制御パラメータと前記第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、前記マルチプロセッサコアシステムに入る前記データフローの前記パケットを処理のためにアイドルプロセッサコアに転送するようにさらに構成され、前記コア間切替えポリシーが、パケットの前記内部伝送期間が前記プロセッサコアによって前記パケットを処理するための期間を超える場合、前記パケットが前記最低使用量を有する前記プロセッサコアによって処理され、前記プロセッサコアによって前記パケットを処理するための期間が前記パケットの前記内部伝送期間を超える場合、前記パケットが処理のために指定されたプロセッサコアに結合され、
前記マルチプロセッサコアが、前記第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、前記マルチプロセッサコアシステム内で前記パケットを処理する前記プロセッサコアを割込みモードとポーリングモードとの間で切り替えるようにさらに構成され、前記コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、前記プロセッサコアが前記割込みモードに入って前記パケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも小さい場合、前記プロセッサコアが前記ポーリングモードに入って前記パケットを処理するコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサコアシステムの分野に関し、より詳細には、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法、装置、およびシステムに関する。
【背景技術】
【０００２】
現在、マルチプロセッサコアシステム内に統合されているサービスは、徐々に増えており、ネットワークI/O(input/output、入出力)要求も増えている。ネットワークI/O要求に対するマルチプロセッサコアシステムのデータ処理機能は、システムがその完全な機能性を発揮するために重要な役割を果たす。先行技術では、ネットワークI/O要求を処理するための1つの方法は、静的構成処理モード(static-configuration processing mode)に基づいて、指定されたプロセッサコア上で実行されるタスクを指定されたプロセッサコアに結合すること、またはアイドルプロセッサコア(idle processor core)上で実行されるタスクを、バランスがとれた形でアイドルプロセッサコア上に割り当てることであり、ネットワークI/O要求を処理するための別の方法は、静的構成切替え規則(static-configuration switchover rule)に基づいて、割込みモードとポーリングモードとの間でプロセッサコアを切り替えて、ネットワークI/O要求に対するシステムの処理効率を改善することである。
【０００３】
前述の技術的解決策を実行する間に、本発明者は、先行技術は少なくとも以下の課題に直面することを見出した。すなわち、静的構成はシステムの実行プロセスに先立つ、システムの実際の実行プロセスの間の手動構成を指し、プロセッサコアは静的構成解決策に基づいてスケジュールされるため、リアルタイムネットワークI/O処理に対する要求を満たすことができず、プロセッサコアをスケジューリングする合理的な解決策を提供することができず、それによって、マルチプロセッサコアシステム全体の効率を改善することができないことである。
【発明の概要】
【課題を解決するための手段】
【０００４】
本発明の実施形態は、リアルタイムネットワークI/O処理に対する要求を満たし、それによって、マルチプロセッサコアシステム全体の効率を改善することができる、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法、装置、およびシステムを提供する。
【０００５】
本発明の実施形態は、以下の技術的解決策を採用する。
【０００６】
マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法は、
マルチプロセッサコアシステムの実行プロセスにおいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するステップを含み、第1の制御パラメータがN個のデータフローの表示情報を指し、N個のデータフローが、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nが正の整数であり、第2の制御パラメータが、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間(internal transmission duration)と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指し、第3の制御パラメータが、最低使用量を有するプロセッサコアのプロセッサコア情報を指し、第4の制御パラメータが、各々のデータフローのアプリケーション(APP: Application)クリティカルパス記述情報を指し、
第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出するステップを含み、
現在のパケットが属するデータフローがN個のデータフローのうちの1つでないとき、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するステップを含み、コア間切替えポリシーが、内部伝送期間がプロセッサコアによってパケットを処理するための期間を超える場合、パケットが最低使用量を有するプロセッサコアによって処理され、プロセッサコアによってパケットを処理するための期間が内部伝送期間を超える場合、パケットが処理のために指定されたプロセッサコアに結合され、
第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、マルチプロセッサコアシステム内でパケットを処理するプロセッサコアを割込みモードとポーリングモードとの間で切り替えるステップを含み、コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、プロセッサコアが割込みモードに入ってパケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも小さい場合、プロセッサコアがポーリングモードに入ってパケットを処理する。
【０００７】
マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための装置は、
マルチプロセッサコアシステムの実行プロセスにおいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4制御パラメータを取得するように構成された制御パラメータ取得ユニットを含み、第1の制御パラメータがN個のデータフローの表示情報を指し、N個のデータフローが、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nが正の整数であり、第2の制御パラメータが、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理する期間とを指し、第3の制御パラメータが、最低の使用量を有するプロセッサコアのプロセッサコア情報を指し、第4の制御パラメータが、各々のデータフローのアプリケーション(APP)クリティカルパス記述情報を指し、
第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出することを行うように構成された第1の検出ユニットを含み、
第1の検出ユニットが現在のパケットが属するデータフローがN個のデータフローのうちの1つではないことを検出したとき、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するように構成されたコア間切替えスケジューリングユニットを含み、コア間切替えポリシーが、内部伝送期間がプロセッサコアによってパケットを処理するための期間を超える場合、パケットが最低使用量を有するプロセッサコアによって処理され、プロセッサコアによってパケットを処理するための期間が内部伝送期間を超える場合、パケットが処理のために指定されたプロセッサコアに結合され、第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、マルチプロセッサコアシステム内のパケットを処理するプロセッサコアを割込みモードとポーリングモードとの間で切り替えるように構成されたコア内切替えスケジューリングユニットを含み、コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、プロセッサコアが割込みモードに入ってパケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも小さい場合、プロセッサコアがポーリングモードに入ってパケットを処理する。
【０００８】
コンピュータシステムは、
バスと、
バスに接続されたマルチプロセッサコアと、
バスに接続されたメモリと
を含み、
マルチプロセッサコアは前述の装置を含む。
【０００９】
コンピュータシステムは、
バスと、
バスに接続されたマルチプロセッサコアと、
バスに接続されたメモリと
を含み、
バスを介してメモリ内の実行命令を呼び出すことによって、マルチプロセッサコアが、メモリから呼び出されたデータに基づいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するように構成され、第1の制御パラメータがN個のデータフローの表示情報を指し、N個のデータフローが、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nが正の整数であり、第2の制御パラメータが、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指し、第3の制御パラメータが、最低使用量を有するプロセッサコアのプロセッサコア情報を指し、第4の制御パラメータが、各々のデータフローのアプリケーション(APP)クリティカルパス記述情報を指し、
マルチプロセッサコアが、第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出することを行うようにさらに構成され、
マルチプロセッサコアが、現在のパケットが属するデータフローがN個のデータフローのうちの1つでないとき、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するようにさらに構成され、コア間切替えポリシーが、内部伝送期間がプロセッサコアによってパケットを処理するための期間を超える場合、パケットが最低使用量を有するプロセッサコアによって処理され、プロセッサコアによってパケットを処理するための期間が内部伝送期間を超える場合、パケットが処理のために指定されたプロセッサコアに結合され、
マルチプロセッサコアが、第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、マルチプロセッサコアシステム内でパケットを処理するプロセッサコアを割込みモードとポーリングモードとの間で切り替えるようにさらに構成され、コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、プロセッサコアが割込みモードに入ってパケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも小さい場合、プロセッサコアがポーリングモードに入ってパケットを処理する。
【００１０】
本発明の実施形態によって提供される、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法、装置、およびシステムでは、マルチプロセッサコアシステムの実行プロセスの間に第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することによって、かつ制御パラメータに基づいてプロセッサコアをスケジューリングすることによって、マルチプロセッサコアシステム内のリアルタイムネットワークI/O処理に対する要求を満たすことができ、それによって、マルチプロセッサコアシステム全体の効率を改善することができる。
【００１１】
本発明の実施形態または先行技術の技術的解決策をより明瞭に例示するために、以下の説明は、本実施形態または先行技術を説明するために必要とされる添付の図面を手短に紹介する。明らかに、以下の説明において添付の図面は、本発明のいくつかの実施形態を示すにすぎず、当業者は、創造的な取組みなしに、これらの添付の図面から他の図面をさらに導き出すことが可能である。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態1による、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法の流れ図である。
【図２】本発明の実施形態2による、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法の流れ図である。
【図３ａ】本発明の実施形態2による、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための別の方法の流れ図である。
【図３ｂ】本発明の実施形態2による、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための別の方法の流れ図である。
【図４】本発明の実施形態2による、APPクリティカルパス記述情報を取得する流れ図である。
【図５】本発明の実施形態3による、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための装置のブロック図である。
【図６】本発明の実施形態3による、コア間切替えスケジューリングユニットのブロック図である。
【図７】本発明の実施形態3による、別のコア間切替えスケジューリングユニットのブロック図である。
【図８】本発明の実施形態3による、コア内切替えスケジューリングユニットのブロック図である。
【図９】本発明の実施形態3による、別のコア内切替えスケジューリングユニットのブロック図である。
【図１０】本発明の実施形態3による、制御パラメータ取得ユニットのブロック図である。
【図１１ａ】本発明の実施形態3による第1の制御パラメータ取得ユニットのブロック図である。
【図１１ｂ】本発明の実施形態3による第4の制御パラメータ取得ユニットのブロック図である。
【図１２】本発明の実施形態4による、コンピュータシステムの概略図である。
【図１３】本発明の実施形態5による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【００１３】
以下の記述は、本発明の実施形態で添付の図面を参照して本発明の実施形態の技術的解決策を明瞭かつ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態のすべてではなく、それらの一部にすぎない。創造的な取組みなしに、本発明の実施形態に基づいて当業者によって取得されるすべてのその他の実施形態は、本発明の保護範囲に該当すべきである。
【００１４】
実施形態1
本発明の実施形態は、以下のステップを含む、図1に示されるようなマルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法を提供する。
【００１５】
101．マルチプロセッサコアシステムの実行プロセスの間に、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するステップ。
【００１６】
第1の制御パラメータは、N個のデータフローの表示情報を指し、N個のデータフローは、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれる処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nは正の整数である。N個のデータフローの表示情報は、どのN個のデータフローが表示情報によって示されるかを示すことが可能である。
【００１７】
第2の制御パラメータは、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指す。第3の制御パラメータは、最低使用量を有するプロセッサコアのプロセッサコア情報を指す。第4の制御パラメータは、各々のデータフローのAPP (Application、アプリケーション)クリティカルパス記述情報を指す。
【００１８】
第1のサンプリング周期は、プリセットされた(preset)サンプリング周期または動的に取得されたサンプリング周期であってよい。例えば、第1のサンプリング周期は、ヒューマン−コンピュータ・インタラクションインターフェースを介して取得される、加入者によって動的に構成されたサンプリング周期であってよく、または第1のサンプリング周期は、通信インターフェースを介してアクセスされるデータベース内に記憶された、対応するサンプリング周期であってもよい。
【００１９】
102．第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出するステップ。
【００２０】
103．現在のパケットが属するデータフローがN個のデータフローのうちの1つでないとき、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するステップ。
【００２１】
アイドルプロセッサコアは、最低使用量を有するプロセッサコアと、そのリソース使用量が一定のしきい値未満であるプロセッサコアとを含み、一定のしきい値は、システム内でプリセットされたしきい値、または人間とコンピュータのインタラクションインターフェースを介して、必要に応じて、加入者によって入力される、動的に構成されたしきい値であってよい。
【００２２】
具体的には、まず、第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかが検出され、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、現在のパケットが属するデータフローがN個のデータフローのうちの1つでないとき、マルチプロセッサコアシステムに入るデータフローのパケットは処理のためにアイドルプロセッサコアに転送される。
【００２３】
104．第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、マルチプロセッサコアシステム内のプロセッサコアを割込みモードとポーリングモードとの間で切り替えるステップ。
【００２４】
マルチプロセッサコアシステムに入る各々のデータフローのパケットに関して、ステップ102および103を実行して、プロセッサコアを各々のパケットに割り当て、ステップ104は、単一のプロセッサコアに関するコア内処理モードの切り替えである。実際の応用では、前述のステップ102および103は、同時にまたは別個で実行可能な、ステップ104の独立した動作である。
【００２５】
本発明の実施形態では、第2の制御パラメータと第3の制御パラメータとに基づいて、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するステップは、具体的には、コア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するステップである。コア間切替えポリシーは、パケットの内部伝送期間がプロセッサコアによってパケットを処理するための期間を超える場合、パケットが最低の使用量を有するプロセッサコアによって処理され、プロセッサコアによってパケットを処理するための期間がパケットの内部伝送期間を超える場合、パケットが処理のために指定されたプロセッサコアに結合される。
【００２６】
加えて、本明細書の実施形態による、第4の制御パラメータに基づいてマルチプロセッサコアシステム内のプロセッサコアの割込みモードとポーリングモードとの間で切り替えるステップは、具体的には、コア内切替えポリシーに従って、マルチプロセッサコアシステム内のプロセッサコアの割込みモードとポーリングモードとの間で切り替えるステップを指す。コア内切替えポリシーは、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドを超える場合、プロセッサコアが割込みモードに入ってパケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッド未満である場合、プロセッサコアがポーリングモードに入ってパケットを処理するということである。
【００２７】
本発明の実施形態では、異なるネットワークI/Oデータフローは、5つの条件(quintuple)(データフローのソースアドレス、ターゲットアドレス、ソースポート、ターゲットポート、および伝送プロトコル)によって区別される。
【００２８】
本発明の実施形態は、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするためのある方法を提供し、この場合、マルチプロセッサコアシステムの実行プロセスの間に、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することによって、かつ制御パラメータに基づいて、プロセッサコアをスケジューリングすることによって、マルチプロセッサコアシステム内のリアルタイムネットワークI/O処理に対する要求を満たすことができ、それによって、マルチプロセッサコアシステム全体の効率を改善することができる。
【００２９】
実施形態2
本発明の実施形態は、図2に示されるような、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするためのある方法を提供し、この方法は以下を含む。
【００３０】
201．マルチプロセッサコアシステムの実行プロセスの間に、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するステップ。
【００３１】
第1の制御パラメータは、N個のデータフローの表示情報を指し、N個のデータフローは、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nは正の整数である。N個のデータフローの表示情報は、どのN個のデータフローが表示情報によって示されるかを示すことが可能である。例えば、Nの値が3であるとき、N個のデータフローの表示情報は、表示情報が3個のデータフローを示す(flow1、flow5、flow6)であり、これらの3個のデータフローはflow1、flow5、およびflow6である。
【００３２】
第2の制御パラメータは、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指す。第3の制御パラメータは、最低使用量を有するプロセッサコアのプロセッサコア情報を指す。第4の制御パラメータは、各々のデータフローのAPPクリティカルパス記述情報を指す。
【００３３】
202．データフローの現在のパケットがマルチプロセッサコアシステムに入った後で、第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出するステップ。
【００３４】
データフローの現在のパケットがマルチプロセッサコアシステムに入った後で、第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローの表示情報によって示されたN個のデータフローのうちの1つであるかどうかが検出される。現在のパケットが属するデータフローがN個のデータフローのうちの1つである場合、ステップ205が実行される。そうでない場合、ステップ203が実行される。
【００３５】
第1のサンプリング周期は、プリセットされたサンプリング周期または動的に取得されたサンプリング周期であってよい。例えば、第1のサンプリング周期は、ヒューマン−コンピュータ・インタラクションインターフェースを介して取得される、加入者によって動的に構成されたサンプリング周期であってよく、または第1のサンプリング周期は、通信インターフェースを介してアクセスされるデータベース内に記憶された、対応するサンプリング周期であってもよい。
【００３６】
第1の制御パラメータを取得する動作は、まず、第1のサンプリング周期内でマルチプロセッサコアシステムによって処理されたパケットを取得すること、次いで、マルチプロセッサコアシステムによって処理されたパケットとそのパケットが属するデータフローとの間の関係を判断すること、マルチプロセッサコアシステムによって処理されたパケットの数を降順にソートして、マルチプロセッサコアシステムによって処理されたパケットとそのパケットが属するデータフローとの間の関係に基づいて、前述の順序に従って、第1のN個のパケットを含むデータフローを判断することである。
【００３７】
以下の例は、第1の制御パラメータをどのように取得するかを説明する。flow1と、flow2と、flow3と、flow4と、flow5とを含むデータフローが存在すると仮定する。N=3である。各々のデータフローのパケットがマルチプロセッサコアシステムに入るとき、処理されたパケットは第1のサンプリング周期内で記録される。次いで、マルチプロセッサコアシステムによって処理されたパケットとそのパケットが属するデータフローとの間の関係が判断されて、マルチプロセッサコアシステムによって処理されたパケットの数が降順にソートされる。記録されたソート結果が、システムに入るflow1のパケットが最も多く処理され、flow2のパケットが次に最も多く処理され、flow3のパケットが最も少なく処理されるということである場合、これに応じて、第1の制御パラメータは、flow1、flow2、およびflow3を記録する。
【００３８】
203．第2の制御パラメータに基づいて、マルチプロセッサコアシステム内の現在のパケットが属するデータフローの内部伝送期間が現在のパケットが属するデータフローをマルチプロセッサコアシステム内のプロセッサコアによって処理するための期間を超えるかどうかを判断するステップ。
【００３９】
マルチプロセッサコアシステムの現在のパケットが属するデータフローの内部伝送期間がマルチプロセッサコアシステム内のプロセッサコアによって現在のパケットが属するデータフローを処理するための期間を超える場合、ステップ204が実行される。そうでない場合、ステップ205が実行される。
【００４０】
204．第3の制御パラメータに基づいて、最低使用量を有するプロセッサコアに現在のパケットを分配するステップ。
【００４１】
205．そのリソース使用量が第1のしきい値未満であるプロセッサコアに現在のパケットを送信して、現在のパケットが属するデータフローをそのリソース使用量が第1のしきい値未満であるプロセッサコアに結合するステップ。
【００４２】
現在のパケットが属するデータフローのパケットがマルチプロセッサコアシステムに入るときに、そのパケットが、そのリソース使用量が第1のしきい値未満であるプロセッサコアによって処理されるように、現在のパケットが属するデータフローはそのリソース使用量が第1のしきい値未満であるプロセッサコアに結合される。
【００４３】
実際の応用シナリオに基づいて、本発明の実施形態の第1のしきい値を設定することが可能である。
【００４４】
前述のステップ201からステップ205は、複数のプロセッサコアの間で負荷スケジューリングを実現し、それによって、プロセッサコアリソースの浪費を削減して、マルチプロセッサコアの効率および機能を改善するコア間切替えポリシーの実施形態である。
【００４５】
第2の制御パラメータを取得するステップは、異なるデータフローのパケットに関して、マルチプロセッサコアシステム内のパケットの内部伝送期間を取得するために、パケットがマルチプロセッサコアシステムに入るとき、およびそのパケットがマルチプロセッサコアシステムを退去するときに時間タグを設定するステップであってよく、他方で、プロセッサコアによってパケットの処理に関する期間を取得するために、プロセッサコアがパケットの処理を開始して、その処理を完了する時間を記録するステップであってよい。実際の応用では、データフローの複数のパケットの内部伝送期間と、プロセッサコアによってそれらの複数のパケットをそれぞれ処理するための期間とがそれぞれ取得される。マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間およびプロセッサコアによって各々のデータフローを処理するための期間として、内部伝送期間ならびにプロセッサコアによって複数のパケットを処理するための期間の算術平均がそれぞれ計算される。プロセッサコアによって処理されるのにより長くかかるデータフローがそのプロセッサコアに結合される。これは、過剰なコア間切替えを回避することができ、処理効率を改善するためのプロセッサコアの計算機能を十分に利用することができる。ネットワーク処理圧力を軽減するために、その内部伝送期間がより長いデータフローは低い使用量を有するプロセッサコアに分配される。
【００４６】
第3の制御パラメータを取得するステップは、その優先順位レベルがマルチプロセッサコアシステム内のアイドル状態の優先順位レベルを単に超えるタスクを設定するステップ、およびどのプロセッサコア内にこのタスクが存在するかを定期的に検査するステップであってよく、このプロセッサコアは、最低使用量を有するプロセッサコアと見なされる。
【００４７】
本発明の実施形態の前述の様式とは別に、当技術分野で知られているその他の様式を使用して、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、プロセッサコアによって各々のデータフローを処理するための期間とを取得して、最低使用量を有するプロセッサコアのプロセッサコア情報を取得することも可能であり、これは、本明細書で再度説明されないことに留意されたい。
【００４８】
他方で、取得された第4の制御パラメータに基づいて、本発明の実施形態は、図3aに示されるように以下のステップを含んだ、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法をさらに提供する。
【００４９】
301．各々のデータフローを割込みモードで処理するための単一の割込みオーバーヘッドを検出し、各々のデータフローをポーリングモードで処理するための単一のポーリングオーバーヘッドを検出するステップ。
【００５０】
マルチプロセッサコアシステムの初期化の間に、各々のデータフローを割込みモードで処理するための単一の割込みオーバーヘッドと、各々のデータフローをポーリングモードで処理するための単一のポーリングオーバーヘッドとがそれぞれ検出される。具体的には、割込みオーバーヘッドの場合、カウンタは、プロセッサコア上で割込み動作が発生するときはいつでも、割込みのための期間を検出することを行うように構成され、ポーリングオーバーヘッドの場合、カウンタは、無効なポーリング動作のための期間を検出することを行うように構成される。次いで、検出された1秒当たりの割込み回数と、1秒当たりの無効なポーリング回数とに基づいて、1秒間の割込みオーバーヘッドおよびポーリングオーバーヘッドの期間がそれぞれ計算される。
【００５１】
302．各々のデータフローのAPPクリティカルパス記述情報に基づいて、現在のパケットが属するデータフローが対応するAPPクリティカルパスを有するかどうかを検出するステップ。
【００５２】
第4の制御パラメータは、各々のデータフローのAPPクリティカルパス記述情報である。各々のAPPクリティカルパス記述情報は、その対応するデータフローがAPPクリティカルパスを有することを示す。例えば、可変APP_flagによってAPPクリティカルパス記述情報を表すことができる。データフローflow1の対応するAPP_flag値がゼロでない場合、それは、データフローflow1がAPPクリティカルパスを有することを示す。
【００５３】
現在のパケットが属するデータフローがAPPクリティカルパスを有さない場合、現在のパケットを処理するプロセッサコアの処理状態が維持される。
【００５４】
現在のパケットのデータフローが対応するAPPクリティカルパスを有する場合、本発明の実施形態は、現在のパケットを処理するプロセッサコアがポーリングモードであるか、または割込みモードであるかに応じて、異なる実行手順を有する。以下のステップ303からステップ308は、例として、ポーリングモードのプロセッサコアを使用する。
【００５５】
303．第1の測定周期内のポーリング回数を検出するステップ。
【００５６】
第1の測定周期は、必要に応じて、プリセットされる。プロセッサコアによるパケット処理頻度が第1の測定周期内で比較的安定状態にあることを確保すべきである。
【００５７】
304．ポーリング回数と単一のポーリングオーバーヘッドとに基づいて、全体的なポーリングオーバーヘッドを取得するステップ。
【００５８】
全体的なポーリングオーバーヘッドを取得するために、ポーリング回数と単一のポーリングオーバーヘッドを乗算する。
【００５９】
305．割込み回数の予測しきい値と単一の割込みオーバーヘッドとに基づいて、全体的な割込みオーバーヘッドを取得するステップ。
【００６０】
割込み回数の予測しきい値はプリセット値であり、割込み回数の予測しきい値は、第1の測定周期内の割込み回数を予測して、全体的な割込みオーバーヘッドを取得するために、単一の割込みオーバーヘッドで乗算される。
【００６１】
ステップ304およびステップ305の実行順序は交換可能であることに留意されたい。
【００６２】
306．全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きいかどうかを判断するステップ。
【００６３】
全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、ステップ307が実行される。そうでない場合、ステップ308が実行される。
【００６４】
307．現在のパケットを処理するプロセッサコアをポーリングモードから割込みモードに切り替えるステップ。
【００６５】
308．現在のパケットを処理するプロセッサコアのポーリングモードを維持するステップ。
【００６６】
前述のステップ303からステップ308は、例として、ポーリングモードのプロセッサコアを使用する。割込みモードのプロセッサコアの場合、これらの動作はステップ303からステップ308に類似する。具体的には、現在のパケットを処理するプロセッサコアが、図3bに示されるように、割込みモードである場合、プロセスは以下の通りである。
【００６７】
303b．第2の測定周期内の割込み回数を検出するステップ。
【００６８】
第2の測定周期は、必要に応じて、プリセットされる。プロセッサコアによるパケット処理頻度が第2の測定周期内で比較的安定状態であることを確実にすべきである。第2の測定周期の期間は、第1の測定周期の期間と同一であってよい。
【００６９】
304b．割込み回数と単一の割込みオーバーヘッドとに基づいて、全体的な割込みオーバーヘッドを取得するステップ。
【００７０】
305b．ポーリング回数の予測しきい値と単一のポーリングオーバーヘッドとに基づいて、全体的なポーリングオーバーヘッドを取得する。
【００７１】
ポーリング回数の予測しきい値はプリセット値であり、ポーリング回数の予測しきい値は、第2の測定周期内のポーリング回数を予測して、全体的なポーリングオーバーヘッドを取得するために、単一のポーリングオーバーヘッドで乗算される。
【００７２】
ステップ304bおよびステップ305bの実行順序は交換可能であることに留意されたい。
【００７３】
306b．全体的な割込みオーバーヘッドが全体的なポーリングオーバーヘッドよりも大きいかどうかを判断するステップ。
【００７４】
全体的な割込みオーバーヘッドが全体的なポーリングオーバーヘッドよりも大きい場合、ステップ307bが実行される。そうでない場合、ステップ308bが実行される。
【００７５】
307b．現在のパケットを処理するプロセッサコアをポーリングモードに切り替えるステップ。
【００７６】
308b．現在のパケットを処理するプロセッサコアの割込みモードを維持するステップ。
【００７７】
前述のステップ301からステップ308、およびステップ303bからステップ308bは、コア内切替えポリシーの特定の実装であり、割込みモードとポーリングモードとの間でプロセッサコアを切り替えることは、プロセッサコアリソースの浪費を削減して、マルチプロセッサコアの効率性および機能を改善する。
【００７８】
以下の図4は、以下のステップを含めて、データフローがAPPクリティカルパスを有するかどうかをどのように判断するか、およびAPPクリティカルパス記述情報をどのように取得するかを例示する。
【００７９】
401．機能処理カウンタと頻度カウンタとを動作可能にするステップ。
【００８０】
マルチプロセッサコアシステムを動作可能にする前に、機能処理カウンタおよび頻度カウンタに関するしきい値、すなわち、処理期間しきい値と処理頻度しきい値とが手動で設定される。処理期間しきい値および処理頻度しきい値は、APPクリティカルパスを設定するための規則を設定する。
【００８１】
402．検出されることになるデータフローのパケットが現在の機能モジュールによって処理されるときはいつでも、機能処理カウンタの値に1を加算するステップ。
【００８２】
403．機能処理カウンタの値が処理期間しきい値よりも大きいかどうかを検出するステップ。
【００８３】
機能処理カウンタの値が処理期間しきい値よりも大きいとき、ステップ404が実行される。機能処理カウンタの値が処理期間しきい値ほど大きくないとき、検出されることになるデータフローの処理が完了していないかどうかを検出することに進み、機能処理カウンタの値が蓄積される。
【００８４】
404．頻度カウンタの値に1を加算して、機能処理カウンタをリセットするステップ。
【００８５】
405．頻度カウンタの値が処理頻度しきい値よりも大きいかどうかを検出するステップ。
【００８６】
頻度カウンタの値が処理頻度しきい値よりも大きいとき、ステップ406が実行される。頻度カウンタの値が処理頻度しきい値ほど大きくないとき、検出されることになるデータフローの処理が完了していないかどうかを検出することに進む。
【００８７】
406。頻度カウンタの値に対応するパケットが属するデータフローに関するAPPクリティカルパス記述情報を取得するステップ。頻度カウンタの値が処理頻度しきい値よりも大きい。
【００８８】
検出されることになるデータフローの処理が完了したとき、機能処理カウンタの値が処理期間しきい値ほど大きくないか、もしくは頻度カウンタの値が処理頻度しきい値ほど大きくない場合、または、第1検出周期が終了したとき、機能処理カウンタの値が処理期間しきい値ほど大きくないか、もしくは頻度カウンタの値が処理頻度しきい値ほど大きくない場合、APPクリティカルパスは存在しないと見なすことができ、APPクリティカルパス記述情報を取得するための動作は省略される。
【００８９】
ステップ401からステップ406を説明するために、以下の例が使用される。パケットがマルチプロセッサコアシステムに入った後で、そのパケットをプロセッサコア内の複数の機能モジュールによって処理することができる。例えば、データフローflow1のパケットがマルチプロセッサコアシステムに入った後で、そのパケットは、機能モジュール、すなわち、function1、function2、およびfunction3によって1つずつ処理される。したがって、flow1の対応する処理経路は、function1-function2-function3である。同時に、flow2の対応する処理経路は、function1-function3であり、flow3の対応する処理経路は、function1-function2-function3-function4であると仮定する。プリセット処理期間しきい値が3であり、プリセット処理頻度しきい値が1である場合、機能モジュールがflow1の処理を完了したとき、対応する機能処理カウンタの値は3であると判断することができる。この値は処理期間しきい値を超えない。したがって、APPクリティカルパスは存在しない。同様に、flow2もAPPクリティカルパスを有さない。flow3がその対応する処理経路の機能モジュールによって処理された後で、対応する機能処理カウンタの値は4である。この時点で、頻度カウンタは、１を加算する演算(plus-one operation)を実行し、値は1であり、その値が4である機能処理カウンタはリセットされる。次いで、flow3のパケットがシステムに再度入り、そのパケットが機能モジュールによって処理された後で、頻度カウンタの値は2になる。この時点で、flow3の場合、頻度カウンタの値(値は2である)は処理頻度しきい値を超える。flow3に関して、APPクリティカルパスが存在する。したがって、マルチプロセッサコアシステム内で、flow3に関して、対応するAPPクリティカルパス情報が取得される。flow3のパケットがシステムに再度入らず、機能モジュールによって処理されず、その頻度カウンタの値が処理頻度しきい値を超えない場合、flow3に関するAPPクリティカルパスは存在せず、flow3に関して、対応するAPPクリティカルパス記述情報を取得するための動作は省略される。
【００９０】
本発明の実施形態では、データフローは、5つの条件(データフローのソースアドレス、ターゲットアドレス、ソースポート、ターゲットポート、および伝送プロトコル)によって区別される。
【００９１】
本発明の実施形態によるマルチプロセッサコアシステム内のプロセッサコアは、CPU、MCU、またはDSPなどであってよい。マルチプロセッサコアシステム内で、多数のプロセッサコアが同時に切り替わり、その独自のコア内タスクおよびコア間タスクをスケジューリングする。
【００９２】
本発明の実施形態は、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするためのある方法を提供し、この場合、マルチプロセッサコアシステムの実行プロセスの間に、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することによって、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータとに基づいて、複数のプロセッサコアの間の負荷スケジューリングを実現することによって、かつ第4の制御パラメータに基づいて、単一のプロセッサコアの割込みモードとポーリングモードとの間の切替えを実現することによって、マルチプロセッサコアシステム内のリアルタイムネットワークI/O処理に対する要求を満たすことができ、それによって、マルチプロセッサコアシステム全体の効率を改善することができる。マルチプロセッサコア環境に関して特別に考案された負荷スケジューリングは、合理的なスケジューリング選択を行うことが困難であり、その結果、マルチプロセッサコアの効果および機能を十分に利用することができないという、旧来の構成スケジューリングモードにおける問題を回避する。加えて、この方法は、エンジニアまたは加入者によるマルチプロセッサコアのネットワークI/Oの手動設定を簡素化し、これは、マルチコアプラットフォーム上のソフトウェア展開効率を改善する。
【００９３】
実施形態3
本発明の実施形態は、図5に示されるように、制御パラメータ取得ユニット51と、第1の検出ユニット52と、コア間切替えスケジューリングユニット53と、コア内切替えスケジューリングユニット54とを含む、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための装置を提供する。
【００９４】
制御パラメータ取得ユニット51は、マルチプロセッサコアシステムの実行プロセスの間に、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することを行うように構成される。
【００９５】
第1の制御パラメータはN個のデータフローの表示情報を指し、N個のデータフローは、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nは正の整数である。N個のデータフローの表示情報は、表示情報によって示されたN個のデータフローを示すことが可能である。
【００９６】
第2の制御パラメータは、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指す。第3の制御パラメータは、最低使用量を有するプロセッサコアのプロセッサコア情報を指す。第4の制御パラメータは、各々のデータフローのAPPクリティカルパス記述情報を指す。
【００９７】
第1の検出ユニット52は、第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出するように構成される。
【００９８】
コア間切替えスケジューリングユニット53は、現在のパケットが属するデータフローがN個のデータフローのうちの1つでないとき、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを処理のためにアイドルプロセッサコアに転送するように構成される。
【００９９】
コア間切替えポリシーは、パケットの内部伝送期間がプロセッサコアによってパケットを処理するための期間を超える場合、そのパケットが最低使用量を有するプロセッサコアによって処理され、プロセッサコアによってパケットを処理するための期間がパケットの内部伝送期間を超える場合、そのパケットが処理のために指定されたプロセッサコアに結合される。
【０１００】
コア内切替えスケジューリングユニット54は、第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、マルチプロセッサコアシステム内でパケットを処理するプロセッサコアを割込みモードとポーリングモードとの間で切り替えるように構成される。
【０１０１】
コア内切替えポリシーは、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、プロセッサコアが割込みモードに入ってパケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドほど大きくない場合、プロセッサコアがポーリングモードに入ってパケットを処理するということである。
【０１０２】
アイドルプロセッサコアは、最低使用量を有するプロセッサコアと、そのリソース使用量が一定のしきい値よりも低いプロセッサコアとを含み、一定のしきい値は、システム内でプリセットされたしきい値、またはヒューマン−コンピュータ・インタラクションインターフェースを介して、必要に応じて、加入者によって入力された動的に構成されたしきい値であってよい。
【０１０３】
さらに、図6に示されるように、コア間切替えスケジューリングユニット53は、具体的には、第1の判断サブユニット531と第1のスケジューリングサブユニット532とをさらに含む。
【０１０４】
第1の判断サブユニット531は、第2の制御パラメータに基づいて、マルチプロセッサコアシステム内に現在のパケットが属するデータフローの内部伝送期間がマルチプロセッサコアシステム内のプロセッサコアによって現在のパケットが属するデータフローを処理するための期間を超えるかどうかを判断するように構成される。
【０１０５】
第1のスケジューリングサブユニット532は、第1の検出ユニット52が現在のパケットが属するデータフローがN個のデータフローのうちの1つではないことを検出し、かつマルチプロセッサコアシステム内の現在のパケットが属するデータフローの内部伝送期間がマルチプロセッサコアシステム内のプロセッサコアによって現在のパケットが属するデータフローを処理するための期間を超えるとき、第3の制御パラメータに基づいて、マルチプロセッサコアシステム内の最低使用量を有するプロセッサコアに現在のパケットを分配するように構成される。
【０１０６】
さらに、図7に示されるように、コア間切替えスケジューリングユニット53は、第1の検出ユニット52が、現在のパケットが属するデータフローがN個のデータフローのうちの1つであることを検出したとき、または第1の判断サブユニット531が、マルチプロセッサコアシステム内に現在のパケットが属するデータフローの内部伝送期間がマルチプロセッサコアシステム内のプロセッサコアによって現在のパケットが属するデータフローを処理するための期間を超えないことが判断されたとき、現在のパケットが属するデータフローのパケットがマルチプロセッサコアシステムに入るときに、そのパケットが、そのリソース使用量が第1のしきい値よりも低いプロセッサコアによって処理されるように、そのリソース使用量が第1のしきい値よりも低いプロセッサコアに現在のパケットを送信することと、現在のパケットが属するデータフローをそのリソース使用量が第1のしきい値よりも低いプロセッサコアに結合するように構成された第2のスケジューリングサブユニット533をさらに含む。
【０１０７】
実際の応用シナリオに基づいて、本発明の実施形態の第1のしきい値を設定することが可能である。
【０１０８】
加えて、図8に示されるように、コア内切替えスケジューリングユニット54は、第2の検出サブユニット545と、第3の検出サブユニット546と、ポーリング検出サブユニット547と、ポーリングオーバーヘッド取得サブユニット548と、割込みオーバーヘッド取得サブユニット549と、第3のスケジューリングサブユニット5410と、第4のスケジューリングサブユニット5411とをさらに含む。
【０１０９】
第2の検出サブユニット545は、マルチプロセッサコアシステムの初期化の間に、各々のデータフローを割込みモードで処理するための単一の割込みオーバーヘッドを検出することと、各々のデータフローをポーリングモードで処理するための単一のポーリングオーバーヘッドを検出するように構成される。
【０１１０】
第3の検出サブユニット546は、各々のデータフローのAPPクリティカルパス記述情報に基づいて、現在のパケットが属するデータフローが対応するAPPクリティカルパスを有するかどうかを判断するように構成される。
【０１１１】
ポーリング検出サブユニット547は、現在のパケットが属するデータフローが対応するAPPクリティカルパスを有し、現在のパケットを処理するプロセッサコアがポーリングモードであるとき、第1の測定周期内のポーリング回数を検出するように構成される。
【０１１２】
第1の測定周期は、必要に応じて、プリセットされる。プロセッサコアによるパケット処理頻度が第1の測定周期内で比較的安定状態にあることを確保すべきである。
【０１１３】
ポーリングオーバーヘッド取得サブユニット548は、ポーリング回数と単一のポーリングオーバーヘッドとに基づいて、全体的なポーリングオーバーヘッドを取得するように構成される。
【０１１４】
割込みオーバーヘッド取得サブユニット549は、割込み回数の予測しきい値と単一の割込みオーバーヘッドとに基づいて、全体的な割込みオーバーヘッドを取得するように構成される。
【０１１５】
第3のスケジューリングサブユニット5410は、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きいとき、現在のパケットを処理するプロセッサコアをポーリングモードから割込みモードに切り替えるように構成される。
【０１１６】
第4のスケジューリングサブユニット5411は、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドほど大きくないとき、現在のパケットを処理するプロセッサコアのポーリングモードを維持するように構成される。
【０１１７】
さらに、図9に示されるように、コア内切替えスケジューリングユニット54は、現在のパケットが属するデータフローが対応するAPPクリティカルパスを有し、現在のパケットを処理するプロセッサコアが割込みモードであるとき、第2の測定周期内の割込み回数を検出するように構成された割込み検出サブユニット5412をさらに含む。
【０１１８】
第2の測定周期は、必要に応じて、プリセットされる。プロセッサコアによるパケット処理頻度が第2の測定周期内で比較的安定状態にあることを確保すべきである。第2の測定周期の期間は、第1の測定周期の期間と同一であってよい。
【０１１９】
割込みオーバーヘッド取得サブユニット549は、割込み回数と単一の割込みオーバーヘッドとに基づいて、全体的な割込みオーバーヘッドを取得するようにさらに構成される。
【０１２０】
ポーリングオーバーヘッド取得サブユニット548は、ポーリング回数の予測しきい値と単一のポーリングオーバーヘッドとに基づいて、全体的なポーリングオーバーヘッドを取得するようにさらに構成される。
【０１２１】
第4のスケジューリングサブユニット5411は、全体的な割込みオーバーヘッドが全体的なポーリングオーバーヘッドよりも大きいとき、現在のパケットを処理するプロセッサコアを割込みモードからポーリングモードに切り替えるようにさらに構成される。
【０１２２】
第3のスケジューリングサブユニット5410は、全体的な割込みオーバーヘッドが全体的なポーリングオーバーヘッドほど大きくないとき、現在のパケットを処理するプロセッサコアの割込みモードを維持するようにさらに構成される。
【０１２３】
APPクリティカルパスをどのように設定するかに関しては、本明細書で再度説明されない、本発明の実施形態2を参照されたい。
【０１２４】
加えて、図10に示されるように、制御パラメータ取得ユニット51は、第1の制御パラメータ取得ユニット55と、第2の制御パラメータ取得ユニット56と、第3の制御パラメータ取得ユニット57と、第4の制御パラメータ取得ユニット58とを含む。
【０１２５】
第1の制御パラメータ取得ユニット55は、第1のサンプリング周期内でマルチプロセッサコアシステムによって処理されたパケットを取得することと、マルチプロセッサコアシステムによって処理されたパケットの数を降順にソートして、マルチプロセッサコアシステムによって処理されたパケットとそのパケットが属するデータフローとの間の関係に基づいて、前述の順序に従って、第1のN個のパケットを含むデータフローを判断するように構成される。
【０１２６】
第2の制御パラメータ取得ユニット56は、マルチプロセッサコアシステムの実行プロセスの間に、第2の制御パラメータを取得するように構成され、第2の制御パラメータは、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指す。
【０１２７】
第2の制御パラメータを取得するステップは、異なるデータフローのパケットに関して、マルチプロセッサコアシステム内のパケットの内部伝送期間を取得するために、パケットがマルチプロセッサコアシステムに入るとき、およびパケットがマルチプロセッサコアシステムを退去するときの時間タグを設定することであってよく、他方で、プロセッサコアによってパケットを処理するための期間を取得するために、プロセッサコアがプロセスを開始して、その処理を完了するときを記録することであってよい。実際の応用では、データフローの複数のパケットの内部伝送期間と、プロセッサコアによって複数のパケットをそれぞれ処理するための期間とがそれぞれ取得される。マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間およびプロセッサコアによって各々のデータフローを処理するための期間として、内部伝送期間ならびにプロセッサコアによって複数のパケットを処理するための期間の算術平均がそれぞれ計算される。プロセッサコアによって処理されるのにより長い時間がかかるデータフローがそのプロセッサコアに結合される。これは、過剰なコア間切替えを回避することができ、処理効率を改善するためのプロセッサコアの計算能力を十分利用することができる。ネットワーク処理負荷を軽減するために、その内部伝送期間がより長いデータフローは低い使用量を有するプロセッサコアに分配される。
【０１２８】
第3の制御パラメータ取得ユニット57は、マルチプロセッサコアシステムの実行プロセスの間に、第3の制御パラメータを取得するように構成される。第3の制御パラメータが、最低使用量を有するプロセッサコアのプロセッサコア情報を指す。
【０１２９】
第3の制御パラメータを取得することは、その優先レベルがマルチプロセッサコアシステム内のアイドル状態の優先レベルを単に超えるタスクを設定すること、およびどのプロセッサコア内にこのタスクが存在するかを定期的に検査することであってよく、このプロセッサコアは、最低使用量を有するプロセッサコアと見なされる。
【０１３０】
第4の制御パラメータ取得ユニット58は、マルチプロセッサコアシステム内で検出されることになるデータフローのパケットの処理期間および処理頻度が処理期間しきい値ならびに処理頻度しきい値を超えるとき、検出されることになるデータフローのAPPクリティカルパス記述情報を取得することを行うように構成される。
【０１３１】
さらに、図11aに示されるように、第1の制御パラメータ取得ユニット55は、パケット情報取得サブユニット551と、データフロー判断サブユニット552と、第1の制御パラメータ取得サブユニット553とを含む。
【０１３２】
パケット情報取得サブユニット551は、第1のサンプリング周期内で、マルチプロセッサコアシステム内で処理されたパケットに関する情報を取得するように構成される。
【０１３３】
データフロー判断サブユニット552は、マルチプロセッサコアシステムによって処理されたパケットとそのパケットが属するデータフローとの間の関係を判断するように構成される。
【０１３４】
第1の制御パラメータ取得サブユニット553は、マルチプロセッサコアシステムによって処理されたパケットの数を降順にソートして、マルチプロセッサコアシステムによって処理されたパケットとそのパケットが属するデータフローとの間の関係に基づいて、前述の順序に従って、第1のN個のパケットを含むデータフローを判断するように構成される。
【０１３５】
加えて、図11bに示されるように、第4の制御パラメータ取得ユニット58は、しきい値検出サブユニット584と第4の制御パラメータ取得サブユニット585とを含む。
【０１３６】
しきい値検出サブユニット584は、第1の検出周期内で、検出されることになるデータフローのパケットの処理期間および処理頻度が処理期間しきい値ならびに処理頻度しきい値を超えるかどうかを判断するように構成される。
【０１３７】
第4の制御パラメータ取得サブユニット585は、マルチプロセッサコアシステム内で検出されることになるデータフローのパケットの処理期間および処理頻度が処理期間しきい値ならびに処理頻度しきい値を超えるとき、検出されることになるデータフローのAPPクリティカルパス記述情報を取得することであって、APPクリティカルパス記述情報が、検出されることになるデータフローがAPPクリティカルパスを有することを示す、取得するように構成される。
【０１３８】
本発明の実施形態では、データフローは、5つの条件(データフローのソースアドレス、ターゲットアドレス、ソースポート、ターゲットポート、および伝送プロトコル)によって区別される。
【０１３９】
本発明の実施形態によるマルチプロセッサコアシステム内のプロセッサコアは、CPU、MCU、またはDSPなどであってよい。マルチプロセッサコアシステム内で、多数のプロセッサコアが同時に切り替わり、それらの独自のコア内タスクおよびコア間タスクをスケジュールする。
【０１４０】
本発明の実施形態による、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための装置の実装詳細は、本明細書で再度説明されない、前述の実施形態の説明に見出すことができることに留意されたい。
【０１４１】
本発明の実施形態は、マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするためのある装置を提供し、この場合、マルチプロセッサコアシステムの実行プロセスの間に、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することによって、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータとに基づいて、複数のプロセッサコアの間で負荷スケジューリングを実現することによって、かつ第4の制御パラメータに基づいて、単一のプロセッサコアの割込みモードとポーリングモードとの間の切替えを実現することによって、マルチプロセッサコアシステム内のリアルタイムネットワークI/O処理に関する要求を満たすことができ、それによって、マルチプロセッサコアシステム全体の効率を改善することができる。マルチプロセッサコア環境に関して特別に考案された負荷スケジューリングは、合理的なスケジューリング選択を行うことは困難があり、その結果、マルチプロセッサコアの効果および機能を十分に利用することができないという、旧来の構成スケジューリングモードにおける問題を回避する。加えて、この方法は、エンジニアまたは加入者によるマルチプロセッサコアのネットワークI/Oの手動設定を簡素化し、これは、マルチコアプラットフォーム上のソフトウェア展開効率を改善する。
【０１４２】
実施形態4
本発明の実施形態はまた、図12に示されるような、
バス1201と、
バス1201に接続されたマルチプロセッサコア1202と、
バス1201に接続されたメモリ1203と
を含むコンピュータシステムであって、
マルチプロセッサコア1202が、実施形態3の装置のうちのいずれか1つを含むコンピュータシステムを提供する。
【０１４３】
図12では、マルチプロセッサコア1202は、制御パラメータ取得ユニット1204と、第1の検出ユニット1205と、コア間切替えスケジューリングユニット1206と、コア内切替えスケジューリングユニット1207とを含む。
【０１４４】
本発明の実施形態は、コンピュータシステムを提供し、この場合、マルチプロセッサコアによって形成されたコンピュータシステムの実行プロセスにおいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することによって、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータとに基づいて、複数のプロセッサコアの間の負荷スケジューリングを実現することによって、かつ第4の制御パラメータに基づいて、単一のプロセッサコアの割込みモードとポーリングモードとの間の切替えを実現することによって、マルチプロセッサコアシステム内のリアルタイムネットワークI/O処理に対する要求を満たすことができ、それによって、コンピュータシステム全体の効率を改善することができる。マルチプロセッサコア環境に関して特別に考案された負荷スケジューリングは、合理的なスケジューリング選択を行うことが困難であり、その結果、マルチプロセッサコアの効果および機能を十分に利用することができないという、旧来の構成スケジューリングモードにおける問題を回避する。加えて、この方法は、エンジニアまたは加入者によるマルチプロセッサコアのネットワークI/Oの手動設定を簡素化し、これは、マルチコアプラットフォーム上のソフトウェア展開効率を改善する。
【０１４５】
実施形態5
本発明の実施形態は、図13に示されるような、
バスと、
バスに接続されたマルチプロセッサコアと、
バスに接続されたメモリと
を含むコンピュータシステムであって
バス1301を介してメモリ1303内の実行命令を呼び出すことによって、マルチプロセッサコア1302は、メモリ1303から呼び出されたデータに基づいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得するように構成され、メモリ1303はメモリ、ハードディスクドライブ、またはフラッシュメモリ(flash memory)であってよく、第1の制御パラメータがN個のデータフローの表示情報を指し、N個のデータフローが、マルチプロセッサコアシステムによって処理されたパケットを含むデータフローを各々のデータフロー内に含まれた処理されたパケットの数に従って降順にソートすることによって第1のサンプリング周期内で取得された第1のN個のデータフローを指し、Nが正の整数であり、第2の制御パラメータが、マルチプロセッサコアシステム内の各々のデータフローの内部伝送期間と、マルチプロセッサコアシステム内のプロセッサコアによって各々のデータフローを処理するための期間とを指し、第3の制御パラメータが、最低使用量を有するプロセッサコアのプロセッサコア情報を指し、第4の制御パラメータが、各々のデータフローのAPPクリティカルパス記述情報を指す。
【０１４６】
マルチプロセッサコア1302は、第1の制御パラメータに基づいて、現在のパケットが属するデータフローがN個のデータフローのうちの1つであるかどうかを検出するようにさらに構成される。
【０１４７】
マルチプロセッサコア1302は、現在のパケットが属するデータフローがN個のデータフローのうちの1つでないとき、第2の制御パラメータと第3の制御パラメータとに基づいて、かつコア間切替えポリシーに従って、マルチプロセッサコアシステムに入るデータフローのパケットを、処理のためにアイドルプロセッサコアに転送するようにさらに構成され、コア間切替えポリシーが、パケットの内部伝送期間がプロセッサコアによってパケットを処理する期間を超える場合、そのパケットが最低使用量を有するプロセッサコアによって処理され、プロセッサコアによってパケットを処理するための期間がパケットの内部伝送期間を超える場合、そのパケットが処理のために指定されたプロセッサコアに結合される。
【０１４８】
マルチプロセッサコア1302は、第4の制御パラメータに基づいて、かつコア内切替えポリシーに従って、マルチプロセッサコア1302によって形成されたコンピュータシステム内でパケットを処理するプロセッサコアを割込みモードとポーリングモードとの間で切り替えるようにさらに構成され、コア内切替えポリシーが、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも大きい場合、プロセッサコアが割込みモードに入ってパケットを処理し、全体的なポーリングオーバーヘッドが全体的な割込みオーバーヘッドよりも小さい場合、プロセッサコアがポーリングモードに入ってパケットを処理する。
【０１４９】
本発明の実施形態によるマルチプロセッサコアは、シングルコアプロセッサ内のプロセッサコアまたはマルチコアプロセッサ内のプロセッサコアであってよい。例えば、図13に示されるように、複数のプロセッサのカーネルをカプセル化構造でカプセル化することが実現可能である。前述のコンピュータシステムでは、複数のカプセル化構造が存在する可能性があり、各々のカプセル化構造は複数のプロセッサカーネルでカプセル化される。
【０１５０】
本発明の実施形態は、コンピュータシステムを提供し、この場合、マルチプロセッサコアによって形成されたコンピュータシステムの実行プロセスにおいて、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータと、第4の制御パラメータとを取得することによって、第1の制御パラメータと、第2の制御パラメータと、第3の制御パラメータとに基づいて、複数のプロセッサコアの間で負荷スケジューリングを実現することによって、かつ第4の制御パラメータに基づいて、単一のプロセッサコアの割込みモードとポーリングモードとの間の切替えを実現することによって、マルチプロセッサコアによって形成されたコンピュータシステム内のリアルタイムネットワークI/O処理に対する要求を満たすことができ、それによって、コンピュータシステム全体の効率を改善することができる。マルチプロセッサコア環境に関して特に考案された負荷スケジューリングは、合理的なスケジューリング選択を行うことが困難であり、その結果、マルチプロセッサコアの効率および機能を十分に利用することができないという、旧来の構成スケジューリングモードにおける問題を回避する。加えて、この方法は、エンジニアまたは加入者によるマルチプロセッサコアのネットワークI/Oの手動設定を簡素化し、これは、マルチコアプラットフォーム上のソフトウェア展開効率を改善する。
【０１５１】
これらの実施形態の方法のステップのすべてまたは一部は、関連するハードウェアに命令するプログラムによって実行可能であることを当業者は理解されよう。前述のプログラムは、コンピュータ可読記憶媒体内に記憶可能である。プログラムが実行するとき、これらの方法の実施形態内に含まれた前述のステップが実行され、前述の記憶媒体は、ROM、RAM、磁気ディスク、または光ディスクなど、プログラムコードを記憶することができる任意の媒体であってよい。
【０１５２】
これらの実施形態の説明で使用された、第1の、第2の、第3の、および第4のという表現は、順序を限定することが意図されないことに留意されたい。代わりに、これらの表現は、区別するためだけに使用される。
【０１５３】
前述の説明は、本発明の特定の実施形態にすぎず、本発明の保護範囲を限定することが意図されない。本発明で開示された技術範囲内で当業者によって容易に理解されるいずれの改変または置換も、本発明の保護範囲に包含されるべきである。したがって、本発明の保護範囲は、請求項の保護範囲による。
【符号の説明】
【０１５４】
51  制御パラメータ取得ユニット
52  第1の検出ユニット
53  コア間切替えスケジューリングユニット
54  コア内切替えスケジューリングユニット
55  第1の制御パラメータ取得ユニット
56  第2の制御パラメータ取得ユニット
57  第3の制御パラメータ取得ユニット
58  第4の制御パラメータ取得ユニット
531  第1の判断サブユニット
532  第1のスケジューリングサブユニット
533  第2のスケジューリングサブユニット
545  第2の検出サブユニット
546  第3の検出サブユニット
547  ポーリング検出サブユニット
548  ポーリングオーバーヘッド取得サブユニット
549  割込みオーバーヘッド取得サブユニット
551  パケット情報取得サブユニット
552  データフロー判断サブユニット
553  第1の制御パラメータ取得サブユニット
584  しきい値検出サブユニット
585  第4の制御パラメータ取得サブユニット
1201  バス
1202  マルチプロセッサコア
1203  メモリ
1204  制御パラメータ取得ユニット
1205  第1の検出ユニット
1206  コア間切替えスケジューリングユニット
1207  コア内切替えスケジューリングユニット
1301  バス
1302  マルチプロセッサコア
1303  メモリ
5410  第3のスケジューリングサブユニット
5411  第4のスケジューリングサブユニット
5412  割込み検出サブユニット
【図１】
0005888629.tif 000002
【図２】
0005888629.tif 000003
【図３ａ】
0005888629.tif 000004
【図３ｂ】
0005888629.tif 000005
【図４】
0005888629.tif 000006
【図５】
0005888629.tif 000007
【図６】
0005888629.tif 000008
【図７】
0005888629.tif 000009
【図８】
0005888629.tif 000010
【図９】
0005888629.tif 000011
【図１０】
0005888629.tif 000012
【図１１ａ】
0005888629.tif 000013
【図１１ｂ】
0005888629.tif 000014
【図１２】
0005888629.tif 000015
【図１３】
0005888629.tif 000016