(57)【特許請求の範囲】
【請求項１】
集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備え、
前記第２のタスクリストは、第３のタスク命令を含み、
前記第２のタスクマネージャは、前記第２のバスを通して、前記メモリから前記第３のタスク命令を読み取って、前記第３のタスク命令を解釈し、前記第１の処理回路から受け取る信号のアサート時に、前記第２の処理回路を開始させることにより、前記第３のタスク命令を実行する集積回路。
【請求項２】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項１記載の集積回路。
【請求項３】
集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備え、
前記第２のバスは、
前記プロセッサを、前記第１のタスクマネージャおよび前記第２のタスクマネージャ中のポインタレジスタに結合させる第１のサブバスと、
前記メモリを、前記第１のタスクマネージャおよび前記第２のタスクマネージャに結合させる第２のサブバスとを備え、
前記プロセッサは、前記第１のサブバスを通して、前記ポインタレジスタ中にポインタ値を書き込み、
前記第１のタスクマネージャおよび前記第２のタスクマネージャは、前記第２のサブバスを通して、前記メモリからタスク命令を読み取る集積回路。
【請求項４】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項３記載の集積回路。
【請求項５】
集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備え、
前記第１の処理回路および前記第２の処理回路は、命令をフェッチしない専用ハードウェア回路である集積回路。
【請求項６】
前記第１のバッファと、前記第２のバッファと、前記第３のバッファは、ワイヤレス通信変調器／復調器（ＭＯＤＥＭ）集積回路の受信チャネル部分の一部である請求項５記載の集積回路。
【請求項７】
集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備え、
前記第１のタスク命令は、発信元アドレスフィールドおよび宛先アドレスフィールドを含み、
前記発信元アドレスフィールド中の発信元アドレス値は、前記第１のバッファにおける発信元位置を示し、
前記宛先アドレスフィールド中の宛先アドレス値は、前記第２のバッファにおける宛先位置を示している集積回路。
【請求項８】
前記第１のバッファと、前記第２のバッファと、前記第３のバッファは、ワイヤレス通信変調器／復調器（ＭＯＤＥＭ）集積回路の受信チャネル部分の一部である請求項７記載の集積回路。
【請求項９】
集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備え、
前記プロセッサは、前記第１のサブ回路が前記第１のタスク命令を実行している間に、前記第１のタスクリスト中に第３のタスク命令を書き込む集積回路。
【請求項１０】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項９記載の集積回路。
【請求項１１】
方法において、
プロセッサが、第１のバスを通して、メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させることと、
第１のサブ回路が、第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取ることと、
前記第１のサブ回路が、前記第１のタスク命令により示される第１の動作を実行することと、
第２のサブ回路が、前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取ることと、
前記第２のサブ回路が、前記第２のタスク命令により示される第２の動作を実行することとを含み、
前記プロセッサと、前記第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記プロセッサと、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のサブ回路と、前記第２のサブ回路は、集積回路の一部であり、
前記第１の動作は、前記第１のサブ回路がデータをバッファ中に書き込むことを含み、
前記第２の動作は、前記第２のサブ回路が前記データを前記バッファから読み取ることを含み、
前記第１のタスク命令は、宛先アドレスフィールドを備え、
前記宛先アドレスフィールド中の宛先アドレス値は、前記第１のサブ回路が前記データを書き込む、前記バッファ中の位置を示す方法。
【請求項１２】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項１１記載の方法。
【請求項１３】
方法において、
プロセッサが、第１のバスを通して、メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させることと、
第１のサブ回路が、第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取ることと、
前記第１のサブ回路が、前記第１のタスク命令により示される第１の動作を実行することと、
第２のサブ回路が、前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取ることと、
前記第２のサブ回路が、前記第２のタスク命令により示される第２の動作を実行することとを含み、
前記プロセッサと、前記第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記プロセッサと、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のサブ回路と、前記第２のサブ回路は、集積回路の一部であり、
前記第１の動作は、前記第１のサブ回路がデータをバッファ中に書き込むことを含み、
前記第２の動作は、前記第２のサブ回路が前記データを前記バッファから読み取ることを含み、
前記第２のタスク命令は、発信元アドレスフィールドを備え、
前記発信元アドレスフィールド中の発信元アドレス値は、前記第２のサブ回路が前記データを読み取る、前記バッファ中の位置を示す方法。
【請求項１４】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項１３記載の方法。
【請求項１５】
方法において、
プロセッサが、第１のバスを通して、メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させることと、
第１のサブ回路が、第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取ることと、
前記第１のサブ回路が、前記第１のタスク命令により示される第１の動作を実行することと、
第２のサブ回路が、前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取ることと、
前記第２のサブ回路が、前記第２のタスク命令により示される第２の動作を実行することと、
前記プロセッサが、前記メモリの前記第１のタスクリスト中にタイムスタンプタスク命令を記憶させることとを含み、
前記プロセッサと、前記第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記プロセッサと、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のサブ回路と、前記第２のサブ回路は、集積回路の一部であり、
前記タイムスタンプタスク命令はタイマーカウントフィールドを有し、
前記第１のサブ回路による前記タイムスタンプタスク命令の実行は、前記タイマーカウントフィールド中の値により示される時間において開始される方法。
【請求項１６】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項１５記載の方法。
【請求項１７】
装置において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
第１のバスを介して、前記メモリに密に結合されているプロセッサと、
第２のバスと、
前記第２のバスを通して、前記メモリから前記第１のタスクリストのタスク命令を読み取って、前記第１のタスクリストのタスク命令により示される第１の動作を実行する第１の手段と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストのタスク命令を読み取って、前記第２のタスクリストのタスク命令により示される第２の動作を実行する第２の手段とを具備し、
前記第１の手段は、前記第１のタスクリストのタスク命令以外の何らかの命令をフェッチすることなく、前記第１の動作を実行し、
前記第１の手段は、第１の処理回路および第１のタスクマネージャを備え、
前記第１の処理回路は、第１のデータを処理し、それにより、第２のデータを発生させ、
前記第２の手段は、前記第２のタスクリストのタスク命令以外の何らかの命令をフェッチすることなく、前記第２の動作を実行し、
前記第２の手段は、第２の処理回路および第２のタスクマネージャを備え、
前記第２の処理回路は、前記第２のデータを処理し、それにより、第３のデータを発生させ、
前記第１の処理回路も前記第２の処理回路も何らかの命令をフェッチせず、
前記第１の手段および前記第２の手段は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である装置。
【請求項１８】
バッファをさらに具備し、
前記第１の手段は、前記第１のタスクリストのタスク命令中のフィールドにより示される位置において、前記バッファ中にデータを書き込み、前記第２の手段は、前記第２のタスクリストのタスク命令中のフィールドにより示される位置より、前記バッファから前記データを読み取る請求項１７記載の装置。
【請求項１９】
前記プロセッサは、マルチコアプロセッサとマルチスレッドプロセッサとから成るグループから選ばれるプロセッサである請求項１７記載の装置。
【請求項２０】
前記第２のバスに動作可能に結合されているウォールクロックタイマーをさらに具備する請求項１７記載の装置。
【請求項２１】
前記装置は、集積回路である請求項２０記載の装置。
【請求項２２】
集積回路において、
第１のバスを介してメモリに密に結合されているプロセッサを備える密結合メモリ（ＴＣＭ）システムと、
タイマーと、
複数のサブ回路とを具備し、
前記メモリは、複数のタスクリストを記憶し、
各サブ回路は、第２のバスを介して、前記サブ回路に対応するタスクリストからタスク命令を読み取って、前記タスク命令を実行し、
前記タスクリストは、サブ回路により実行されるときに、前記サブ回路により前記メモリ中に情報が書き込まれるようにするプッシュタスク命令を含み、
前記タスクリストは、サブ回路により実行されるときに、構成タスク命令により決定される特定の方法で前記サブ回路を構成させる構成タスク命令を含み、
前記タスクリストは、タイマーカウントフィールドを備えるタイムスタンプタスク命令を含み、
前記タイムスタンプタスク命令の実行は、前記タイマーカウントフィールド中のタイマーカウント値により示される時間において、サブ回路により開始され、
前記タスクリストは、ハードウェア信号イベントタスク命令を含み、
前記ハードウェア信号イベントタスク命令の実行は、別のサブ回路によって発生される信号のアサート時にサブ回路により開始され、
前記サブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である集積回路。
【請求項２３】
集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備え、
前記第１のバッファはサンプルバッファであり、前記第２のバッファはシンボルバッファであり、前記第３のバッファはタイルバッファである集積回路。
【請求項２４】
前記第１のサブ回路および前記第２のサブ回路は、ワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）である請求項２３記載の集積回路。
【請求項２５】
装置において、
第１のバスを通して、メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させる手段と、
第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取る手段と、
前記第１のタスク命令により示される第１の動作を実行する手段と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取る手段と、
前記第２のタスク命令により示される第２の動作を実行する手段とを具備し、
前記記憶させる手段と、前記第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記記憶させる手段と、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のタスク命令を読み取る手段と、前記第１の動作を実行する手段と、前記第２のタスク命令を読み取る手段と、前記第２の動作を実行する手段は、集積回路の一部であり、
前記第１の動作は、前記第１の動作を実行する手段がデータをバッファ中に書き込むことを含み、
前記第２の動作は、前記第２の動作を実行する手段が前記データを前記バッファから読み取ることを含み、
前記第１のタスク命令は、宛先アドレスフィールドを備え、
前記宛先アドレスフィールド中の宛先アドレス値は、前記第１の動作を実行する手段が前記データを書き込む、前記バッファ中の位置を示す装置。
【請求項２６】
装置において、
第１のバスを通して、メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させる手段と、
第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取る手段と、
前記第１のタスク命令により示される第１の動作を実行する手段と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取る手段と、
前記第２のタスク命令により示される第２の動作を実行する手段とを具備し、
前記記憶させる手段と、前記第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記記憶させる手段と、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のタスク命令を読み取る手段と、前記第１の動作を実行する手段と、前記第２のタスク命令を読み取る手段と、前記第２の動作を実行する手段は、集積回路の一部であり、
前記第１の動作は、前記第１の動作を実行する手段がデータをバッファ中に書き込むことを含み、
前記第２の動作は、前記第２の動作を実行する手段が前記データを前記バッファから読み取ることを含み、
前記第２のタスク命令は、発信元アドレスフィールドを備え、
前記発信元アドレスフィールド中の発信元アドレス値は、前記第２の動作を実行する手段が前記データを読み取る、前記バッファ中の位置を示す装置。
【請求項２７】
装置において、
第１のバスを通して、メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させる手段と、
第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取る手段と、
前記第１のタスク命令により示される第１の動作を実行する手段と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取る手段と、
前記第２のタスク命令により示される第２の動作を実行する手段と、
前記メモリの前記第１のタスクリスト中にタイムスタンプタスク命令を記憶させる手段とを具備し、
前記第１のタスクリストおよび第２のタスクリストを記憶させる手段と、前記タイムスタンプタスク命令を記憶させる手段と、前記第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記第１のタスクリストおよび第２のタスクリストを記憶させる手段と、前記タイムスタンプタスク命令を記憶させる手段と、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のタスク命令を読み取る手段と、前記第１の動作を実行する手段と、前記第２のタスク命令を読み取る手段と、前記第２の動作を実行する手段は、集積回路の一部であり、
前記タイムスタンプタスク命令はタイマーカウントフィールドを有し、
前記第１の動作を実行する手段による前記タイムスタンプタスク命令の実行は、前記タイマーカウントフィールド中の値により示される時間において開始される装置。
【発明の詳細な説明】
【関連出願に対する相互参照】
【０００１】
本出願は、２００８年３月２６日に出願された仮出願シリアル番号第６１／０３９，７７４号、および、２００８年３月２９日に出願された仮出願シリアル番号第６１／０４０，６５４号の３５Ｕ．Ｓ．Ｃ．１９９条のもとでの利益を主張し、前記仮出願は、参照によりここに組み込まれている。
【技術分野】
【０００２】
本開示は、データストリームを処理するために協働する多数のサブ回路に関与するデジタルシステムの制御に関連し、さらに詳細には、本開示は、オフラインタスクリストを使用する、ワイヤレスモデムサブ回路の制御に関連する。
【背景情報】
【０００３】
デジタルデータ処理システムは、いくつかのより小さいサブ動作に分けることができる非常に多数の動作に関与していることがある。ワイヤレス通信システム変調器／復調器（ＭＯＤＥＭ）集積回路として一般的に使用される技術のような１つの技術では、独立した専用ハードウェア回路は、さまざまなサブ動作のそれぞれを実行するように設計されている。独立した専用ハードウェア回路は、中央プロセッサにより制御される。独立したさまざまな専用ハードウェア回路を通るメインデータパスが、存在していることが多い。プロセッサ上で実行しているソフトウェアは、リアルタイムクロック（ＲＴＣ）に関連して動作する。リアルタイムクロックにより決定されるようなある時間間隔において、ハードウェア回路が、データストリーム中のデータを所望の方法で処理するように、ソフトウェアが、ハードウェア回路のうちのさまざまなものをプロセッサに構成または制御させる。プロセッサは、割込みを使用してある条件がアラートされるかもしれない。例えば、プロセッサは、割込みを通して、特定のハードウェア回路がデータの処理を完了していることを知り、この割込みに応答して、プロセッサは、後続するハードウェア回路にデータの処理を開始させるかもしれない。プロセッサは、例外的な取り扱いをすることを要求されるかもしれない。
【０００４】
図１（先行技術）は、ワイヤレスＭＯＤＥＭ集積回路１の受信チャネルの一部分の簡略化したブロックダイヤグラムである。この集積回路では、プロセッサ２は、メモリ３からのコードを実行して、さまざまなハードウェア回路３〜８を構成している。集積回路を構成するために、プロセッサ２は、バス９を通して、構成されることになるハードウェア回路中の構成レジスタ中に構成情報を書き込む。参照番号１０は、ハードウェア回路４中の１組の構成／制御レジスタを識別している。プロセッサ２はまた、一般的に、さまざまなハードウェア回路を制御する。プロセッサ２は、例えば、ハードウェア回路の動作を開始させてもよく、または、ハードウェア回路の制御レジスタ中に制御情報を書き込むことにより、ハードウェア回路の動作を変更させてもよい。プロセッサはまた、バス９を介して、ハードウェア回路により出力されている選択されたデータを読み取り、このデータに基づいて決定を行い、その後、バス９を通して、構成／制御情報を選択された構成／制御レジスタ中に書き込むことにより、１つ以上のハードウェア回路のうちの１つ以上が動作する方法をこのデータに基づいて変更してもよい。個々のハードウェア回路４〜８はまた、一般的にライン１１を通して通信される割込みを介して、特定の条件に対して、プロセッサ２にアラートする。１つの例では、特定のハードウェア回路は、特定の時間において、特定の動作の実行を開始する。ソフトウェア実行は、リアルタイムクロック１６から受け取った割込み信号に応答して、メインルーチン１２の実行から、割込みサブルーチン１３〜１５のうちの適切な１つにジャンプする。プロセッサ２は、サブルーチンの実行の際に、割込みの時間のすぐ後に要求されるように特定のハードウェア回路を構成または制御する。それゆえ、さまざまなハードウェア回路４〜８は、プロセッサ２により指示されたように、あるイベントに応答して、または、ある時間において、所望の機能を実行するように制御できる。
【０００５】
図１のアーキテクチャは多くのアプリケーション中でうまく動作し、利点を有するが、これはまた、ある欠点を有する。例えば、プロセッサ２はスループット制約されているかもしれず、バス９のようなバスを通した書き込みが望ましくないくらい遅いかもしれない。この問題は、プロセッサ２が多くの構成／制御レジスタ中に書き込むために、相当な構成／制御情報を有しているかもしれないという事実が原因で、増幅されるかもしれない。第２の潜在的な問題は、プロセッサ２が、同時に、または、ほぼ同時に、１つよりも多いハードウェア回路の動作を開始するように、要求されるかもしれないことである。しかしながら、プロセッサ２は、シーケンシャル的に命令を実行する。この問題に対する１つの解法では、個々のハードウェアブロックが複数の組の構成／制御レジスタを有する。プロセッサ２が前もって、ハードウェア回路における未使用の組の構成／制御レジスタ中に書き込んでおいて、複数のハードウェア回路を開始されるべきときに、余分な構成／制御レジスタ中に以前に供給しておいた構成／制御情報を使用して、動作を開始させるためにプロセッサが書き込む回数をより少なくすることができる。しかしながら、要求される増加した数の構成／制御レジスタを提供することは望ましくない。
【概要】
【０００６】
第１の側面では、デジタルシステムは、第１のバスにより、メモリに密に結合されているプロセッサを備える。デジタルシステムは、１組のサブ回路をさらに備える。各サブ回路は、タスクマネージャと、あるタイプのデータ処理を実行するための、多数の構成可能であるが特殊化されたハードウェア回路とを備えている。サブ回路のタスクマネージャは、サブ回路の構成可能なハードウェアを構成および制御できる。動作において、システムのプロセッサは、メモリ中に１組のタスクリストを維持することにより、サブ回路の動作を構成し、これらの動作およびタイミングを調整する。各タスクリストは、サブ回路のうちのそれぞれ対応する１つのものに対するタスク命令を含む。各サブ回路のタスクマネージャは、第２のバスを通して、メモリ中のその対応するタスクリストからタスク命令を読み取る。第２のバスを介するタスクマネージャのメモリアクセスは、一般的に第１のバスを介するプロセッサのメモリアクセスが持つよりも、より長いメモリアクセス待ち時間を持つ。サブ回路のタスクマネージャに、より遅い第２のバスを通してメモリからタスク命令を読み取らせることは、第２のバスを通して、多くの相対的にゆっくりな転送を実行しなければならないプロセッサの負担を軽減する。相対的に遅い第２のバスを通した読み取りをプロセッサが実行しなければならないことによるソフトウェア実行の遅れが回避される。タスクマネージャが、第２のバスを通して、タスク命令を読み取った後、タスクマネージャは、タスク命令を解釈して、タスク命令により示されるような動作を、サブ回路の関係する構成可能なハードウェアに実行させる。
【０００７】
１つの例では、タスクリストは、“タイムスタンプ”タイプのタスク命令を含んでもよい。サブ回路のタスクマネージャがこのようなタイムスタンプタスク命令を読み取るとき、タイムスタンプタスク命令により示された動作は直ちに実行されず、むしろ、タイムスタンプにより示された時間において開始される。中央ウォールクロックタイマーは、タイムスタンプにより示された時間に到達したときを決定するために使用される現在時間の表示を提供する。サブ回路のすべてのタスクマネージャは、１つの中央ウォールクロックタイマーにより供給される、１つの時間カウント基準を参照する。タイムスタンプタスク命令をさまざまなサブ回路のタスクリスト中に書き込むことにより、プロセッサは、複数のサブ回路がある動作を実行するときの時間を事前にセットアップできる。別の例では、タスクリストは、プッシュタスク命令を含む。サブ回路によるプッシュタスク命令の実行により、プッシュタスク命令により指定されたある情報が、タスクマネージャにより、第２のバスを通してメモリ中に書き込まれる。いったん、プッシュされた情報がメモリ中に存在すると、プロセッサは、その後、この情報にアクセスし、この情報を使用して決定を行なう。プロセッサは、例えば、この情報を使用して、サブ回路がさらなる処理を実行する方法を変更してもよい。説明するオフラインタスクリストアーキテクチャは、複数のサブ回路を具備する大きなデジタルシステムの設計における一般的な適応可能性を予見する。特に、オフラインタスクリストアーキテクチャは、独立したハードウェア処理サブ回路を含むデジタルシステムの設計において特別な適応可能性を予見し、その動作は、サブ回路の機能がともにデータのストリームを処理するように、柔軟に制御され、互いに時間が合わせられる。
【０００８】
第２の側面では、移動体通信デバイスのワイヤレス通信システムモデムが、第１のバスにより、メモリに密に結合されているプロセッサを具備する。モデムはまた、複数のワイヤレス通信システムサブ回路（ＷＣＳＭＳＣ）を具備する。各ＷＳＣＭＳＣは、タスクマネージャと、あるタイプのデータ処理を実行するための多数の、構成可能であるが特殊化されたハードウェア回路とを備えている。ＷＣＳＭＳＣのタスクマネージャは、第２のバスを介して、メモリからタスク命令を読み取ることができ、その後、タスク命令の読み取りにより示されたように、その関係するＷＣＳＭＳＣの構成可能ハードウェアを構成および／または制御できる。ＷＣＳＭＳＣは再構成可能ワイヤレスモデム受信チャネルをともに形成する。ここで、受信チャネルという用語は、ベースバンドハードウェア受信機処理チェーンのことを意味する。ＷＣＳＭＳＣが、メモリ中に記憶されたタスク命令により示されたような第１の方法で構成される場合、チャネルは、第１のエアインターフェース標準規格（例えば、ＬＴＥ）にしたがって通信するように構成されるのに対して、ＷＣＳＭＳＣが、メモリ中に記憶されているタスク命令により示されたような第２の方法で構成される場合、受信チャネルは、第２のエアインターフェース標準規格（例えば、ＵＭＢまたはＷｉＭＡＸ（登録商標））にしたがって通信するように構成される。下記の詳細な説明で記述する、タイムスタンプタスク命令や、プッシュタスク命令や、ハードウェアイベント起動タスク命令や、他のタイプのタスク命令は、ハードウェアの設計変更なしに、受信チャネル（ベースバンド受信機処理チェーンハードウェア）の再構成を容易にするためにタスクリスト中で使用可能である。例えば、１つのエアインターフェース標準規格の通信を受信することから、別のエアインターフェース標準規格の通信を受信することに、同一のモデムハードウェアを切り替えるのに、または、モデムハードウェアの製造の後に行なわれる通信標準規格の変更に適応するためにタスクリスト中で使用可能である。
【０００９】
上述したものは要約であり、したがって、必要により、詳細な説明の、簡略化や、一般化や、省略を含む。結果として、要約はただ説明的なものであり、何らかの方法で限定することを意図してはいないことを当業者は正しく理解するだろう。特許請求の範囲によってのみ規定される、ここで説明する、デバイスおよび／または処理の他の側面、発明的特徴、および利点は、ここに述べる限定していない詳細な説明において明らかになるだろう。
【図面の簡単な説明】
【００１０】
【図１】図１（先行技術）は、従来のワイヤレスモデムアーキテクチャを使用するワイヤレスモデム集積回路のダイヤグラムである。
【図２】図２は、新規な１つの側面にしたがった、移動体通信デバイスの簡略化したダイヤグラムである。
【図３】図３は、図２の移動体通信デバイスのＲＦトランシーバ集積回路１０３のより詳細なダイヤグラムである。
【図４】図４は、図２の移動体通信デバイスのデジタルベースバンド集積回路１０４のより詳細なダイヤグラムである。
【図５】図５は、タスクマネージャの機能性を備える例示的なモデムサブ回路のダイヤグラムである。
【図６】図６は、タスクリスト中のすべてのタスク命令が完了しているタスクリストのダイヤグラムである。
【図７】図７は、実行されていないタスク命令を含むタスクリストのダイヤグラムである。
【図８】図８は、タスクリストを準備および維持するためにプロセッサにより行なわれるステップを図示している簡略化したフローチャートである。
【図９】図９は、タスク命令を読み取る、および、タスク命令の動作の実行を始めるためにタスクマネージャにより行なわれるステップを図示している簡略化したフローチャートである。
【図１０】図１０は、図４のデジタルベースバンド集積回路１０４のウォールクロックタイマー１２９の簡略化したブロックダイヤグラムである。
【図１１】図１１は、タイムスタンプタスク命令の実行を読み取っている、および、開始しているタスクマネージャにより行なわれるステップを図示している簡略化したフローチャートである。
【図１２Ａ】図１２Ａは、すべてのタスク命令中に存在する共通ヘッダのダイヤグラムである。
【図１２Ｂ】図１２Ｂは、ＦＴＴタスク命令のダイヤグラムである。
【図１２Ｃ】図１２Ｃは、サンプルバッファプッシュタスク命令のダイヤグラムである。
【図１２Ｄ】図１２Ｄは、ＦＦＴおよびサンプルバッファプッシュタスク命令のダイヤグラムである。
【図１２Ｅ】図１２Ｅは、シンボルバッファプッシュタスク命令のダイヤグラムである。
【図１２Ｆ】図１２Ｆは、復調構成タスク命令のダイヤグラムである。
【図１２Ｇ】図１２Ｇは、復調ＭＭＳＥタスク命令のダイヤグラムである。
【図１２Ｈ】図１２Ｈは、復調ＭＲＣタスク命令のダイヤグラムである。
【図１２Ｉ】図１２Ｉは、ＤＤＥ構成タスク命令のダイヤグラムである。
【図１２Ｊ】図１２Ｊは、ＤＤＥクリアＬＬＲタスク命令のダイヤグラムである。
【図１２Ｋ】図１２Ｋは、ＤＤＥプッシュタスク命令のダイヤグラムである。
【図１３】図１３は、到来ＬＴＥフレームを処理する間に、さまざまなタイプの処理が生じるときを示すタイムラインダイヤグラムである。
【図１４】図１４は、到来ＵＭＢフレームを処理する間に、さまざまなタイプの処理が生じるときを示すタイムラインダイヤグラムである。
【図１５】図１５は、ＬＴＥフレームの処理の間のＦＦＴ  ＷＣＳＭＳＣの動作を図示しているダイヤグラムである。
【図１６】図１６は、図１５中に図示した動作を実行するために、タスクリストをどのように作ることができるかを図示しているダイヤグラムである。
【図１７】図１７は、図４のデジタルベースバンド集積回路１０４のＤＥＭＯＤ  ＷＣＳＭＳＣ１４１のブロックダイヤグラムである。
【図１８】図１８は、図４のデジタルベースバンド集積回路１０４のＤＤＥ  ＷＣＳＭＳＣ１４２のブロックダイヤグラムである。
【詳細な説明】
【００１１】
図２は、１つの側面にしたがった、１つの特定のタイプの移動体通信デバイス１００の非常に簡略化したハイレベルブロックダイヤグラムである。この特定の例では、移動体通信デバイス１００は、セルラ電話機である。移動体通信デバイス１００は、（図示していない他のいくつかのパーツのうちの）２つのアンテナ１０１および１０２と、２つの集積回路１０３および１０４とを具備している。集積回路１０３は、ＲＦトランシーバ集積回路である。ＲＦトランシーバ集積回路１０３は、“トランシーバ”と呼ばれる。その理由は、ＲＦトランシーバは、送信機とともに受信機も備えているからである。ＲＦトランシーバ集積回路１０３は、主として、アナログ回路を備えるアナログ集積回路である。集積回路１０４は、その一方で、主として、デジタル回路を備えるデジタル集積回路である。集積回路１０４は、“デジタルベースバンド集積回路”または“ベースバンドプロセッサ集積回路”と呼ばれることが多い。移動体通信デバイスの電子回路を区分する他の方法もあるが、これは１つの例示的な方法である。
【００１２】
図３は、ＲＦトランシーバ集積回路１０３のさらに詳細なブロックダイヤグラムである。この特定のトランシーバは、２つのトランシーバを備えている。第１のトランシーバは、受信チェーン１０５Ａおよび送信チェーン１０５Ｂを備えている。第２のトランシーバは、受信チェーン１０６Ａおよび送信チェーン１０６Ｂを備えている。セルラ電話機１００が受信しているとき、高周波数ＲＦ信号は、アンテナのうちの１つまたは双方の上で受信される。アンテナ１０１上で受信されたＲＦ信号において、信号は、デュプレクサ１０８、ネットワーク１０９を通って、受信チェーン１０５Ａを通る。信号は、低ノイズ増幅器（ＬＮＡ）１１０により増幅され、ミキサー１１１により、周波数がダウンコンバートされる。結果として生じるダウンコンバートされた信号は、ベースバンドフィルタ１１２によりフィルタリングされて、適切に制御されているマルチプレクサ１１３を介して、デジタルベースバンド集積回路１０４に送られる。デジタルベースバンド集積回路１０４中のアナログデジタルコンバータ（ＡＤＣ）１１４は、信号をデジタルサンプルのストリームにコンバートする。サンプルのストリームは、その後、デジタル集積回路１０４内の受信チャネル１１５（図４参照）により処理される。
【００１３】
セルラ電話機１００がアンテナ１０１から送信しようとする場合、通信される情報は、デジタルベースバンド集積回路１０４の送信チャネル１１６（図４参照）により処理されて、デジタルアナログコンバータ（ＤＡＣ）１１７によりアナログ形態にコンバートされる。結果として生じるアナログ信号は、適切に制御されているデマルチプレクサ１１８を介して、ＲＦトランシーバ集積回路１０３の“送信チェーン”１０５Ｂに供給される。ベースバンドフィルタ１１９は、デジタルアナログコンバージョンプロセスにより導入されたノイズをフィルタリングする。ミキサーブロック１２０は、その後、信号を高周波数信号にアップコンバートする。駆動増幅器１２１および外部電力増幅器１２２は、アンテナ１０１を駆動するために高周波数信号を増幅させ、これにより、高周波数ＲＦ信号がアンテナ１０１から送信される。移動体通信デバイス１００では、動作のモードにしたがって、アンテナのうちの、１つまたは双方を使用することができる。
【００１４】
図４は、図２のデジタルベースバンド集積回路１０４のより詳細なブロックダイヤグラムである。ＡＤＣ１１４と、受信チャネル１１５と、送信チャネル１１６と、ＤＡＣ１１７に加えて、デジタルベースバンド集積回路１０４は、プロセッサ１２３と、第１のバス１２４と、多数の高速マルチバンクデュアルポートメモリ１２５とを備えている。プロセッサ１２３は、第１のバス１２４を介して、メモリ１２５から読み取り、メモリ１２５に書き込むことができる。プロセッサ１２３は、マルチコアプロセッサ、または、マルチスレッドプロセッサであり、複数のプロセッサを実際に備えていてもよい。第１のバス１２４は、１つのマスター、プロセッサ１２３と、１つのスレーブ、メモリ１２５とを関係させる高速なポイントツーポイントバスである。プロセッサ１２３と、第１のバス１２４と、メモリ１２５は、ともに密結合メモリ（ＴＣＭ）システム１２６と呼ばれるものを形成する。メモリ１２５は、プログラムメモリではなく、むしろ、変数およびデータおよび制御情報の記憶ために使用される、高速の、レベル２キャッシュの、マルチポート付きでマルチバンク化されたメモリである。
【００１５】
加えて、デジタルベースバンド集積回路１０４は、第２のバス１２７と、多数のプログラムメモリ１２８と、ウォールクロックタイマー１２９と、データムーバーブロック１３０と、コーデックブロック１３１と、ビデオプロセッサブロック１３２と、１組の２対１のデマルチプレクサ１３３と、１組の１対２のマルチプレクサ１３４とを備えている。プログラムメモリ１２８は、プロセッサ１２３により実行される命令のプログラム１３５を記憶する。ウォールクロックタイマー１２９は、外部水晶振動子１３６から供給される基準クロック信号を使用して、カウンタをインクリメントさせる。カウンタは、リアルタイムの表示であるカウント値の、継続的にインクリメントするシーケンスを出力する。プロセッサ１２３、および、第２のバス１２７上の他の回路は、下記でさらに詳細に説明するように、第２のバス１２７を通して、ウォールクロックタイマー１２９から読み取り、ウォールクロックタイマー１２９に書き込むことができる。メモリ１２５が、第２のバス１２７を介してアクセス可能であるよりも、より少ないメモリアクセス待ち時間で、メモリ１２５は、第１のバス１２４を通して、プロセッサ１２３によりアクセス可能である。図４のデジタルベースバンド集積回路１０４はまた、第２のバス１２７を介して、外部フラッシュ不揮発性メモリデバイス１３７と、外部同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）１３８とに結合されている。データムーバーブロック１３０およびプロセッサ１２３は、下記でさらに詳細に説明するように、第２のバス１２７を通して、外部デバイス１３７および１３８から読み取ることができ、外部デバイス１３７および１３８に書き込むことができる。
【００１６】
受信チャネル１１５（ベースバンド受信ハードウェア）は、複数の機能ブロック１３９〜１４２を備えており、ここでは、これらをワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）と呼ぶ。ＷＣＳＭＳＣ１３９〜１４２は、フロントエンドサブ回路１３９と、高速フーリエ変換（ＦＦＴ）サブ回路１４０と、復調（ＤＥＭＯＤ）サブ回路１４１と、デマップ／デインターリーブ／デコード（ＤＤＥ）サブ回路１４２とを備えている。ここで“サンプルバッファ”１４３と呼ばれている、多数のメモリは、フロントエンドＷＣＳＭＳＣ１３９からＦＦＴ  ＷＣＳＭＳＣ１４０に渡されるデータをバッファリングする。ここで“シンボルバッファ”１４４と呼ばれている、類似した多数のメモリは、ＦＦＴ  ＷＣＳＭＳＣ１４０からＤＥＭＯＤ  ＷＣＳＭＳＣ１４１に渡されるデータをバッファリングする。ここで“タイルバッファ”１４５と呼ばれている、別の多数のメモリは、ＤＭＯＤ  ＷＣＳＭＳＣ１４１からＤＤＥ  ＷＣＳＭＳＣ１４２に渡されるデータをバッファリングする。“デコード出力バッファ”１４６は、ＤＤＥ  ＷＣＳＭＳＣ１４２から第２のバス１２７に渡されるデータをバッファリングする。受信チャネルデータの一般的なパスは、図４中の左から右に、回路１１４、１３３、１３９、１４３、１４０、１４４、１４１、１４５、１４２、および１４６を通り、第２のバス１２７に続く。
【００１７】
送信チャネル１１６は、別の複数のワイヤレス通信システムモデムサブ回路（ＷＣＳＭＳＣ）１４７〜１５０を備えている。ＷＣＳＭＳＣ１４７〜１５０は、エンコード／インターリーブ／マップサブ回路１４７と、変調サブ回路１４８と、逆高速フーリエ変換（ＩＦＦＴ）サブ回路１４９と、ウィンドウおよび加算サブ回路１５０とを備えている。送信チャネルのさまざまなサブ回路は、図示しているように、１組のバッファ１５１〜１５４によりバッファリングされる。送信チャネルデータの一般的なパスは、右から左へ、回路１５１、１４７、１５２、１４８、１５３、１４９、１５４、１５０、１３４、および１１１７を通り、ＲＦトランシーバ集積回路１０３に続く。
【００１８】
１つの新たな側面では、密結合メモリシステム１２６のメモリ１２５が、図示しているように、複数のタスクリストを記憶する。各タスクリストは、デジタルベースバンド集積回路１０４の関係するサブ回路により実行するためのタスク命令のシーケンスを含む。図示している例では、タスクリストＴＬ１は、ＦＦＴ  ＷＣＳＭＳＣ１４０のためのタスク命令を含む。タスクリストＴＬ２は、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１のためのタスク命令を含む。タスクリストＴＬ３は、ＤＤＥ  ＷＣＳＭＳＣ１４２のためのタスク命令を含む。タスクＴＬ４は、データムーバーブロック１３０のためのタスク命令を含む。図４中には図示していないが、メモリ１２５はまた、全体としての送信チャネル回路１１６のための、コーデックブロック１３１のための、および、ビデオプロセッサブロック１３２のための、タスクリストを含む。プロセッサ１２３は、これらのタスクリスト中にタスク命令を書き込み、これらのタスクリストを修正し、タスクリストを削除し、そうでなければ、望ましいように、第１のバス１２４を介して、タスクリストを維持することができる。各タスクリストは、循環バッファ中のメモリ１２５中に維持される。各タスクリストは、適切なサブ回路により実行されるとき、サブ回路を構成および制御するタスク命令を含む。関係するサブ回路のそれぞれは、第２のバス１２７に結合されているタスクマネージャ回路とともに、データ処理動作を実行する多数の専用機能回路を備えている。図４中の参照番号１５５は、ＦＦＴ  ＷＣＳＭＳＣ１４０のタスクマネージャ回路１５５を識別している。
【００１９】
図５は、１つの代表的なＷＣＳＭＳＣのさらに詳細なダイヤグラムである。描いているＷＣＭＳＣは、ＦＦＴ  ＷＣＳＭＳＣ１４０である。タスクマネージャ回路１５５は、汎用タスクマネージャ部分１５６と、ＦＦＴ制御状態機械部分１７７と、１組のポインタレジスタ１５７〜１６０と、ＤＭＡ（ダイレクトメモリアクセス）エンジン１６１とを備えている。ＦＦＴ  ＷＣＳＭＳＣ１４０は、ＷＣＳＭＳＣのメインデータ処理動作を実行するための多数の専用ハードウェア回路１６２を備えている。専用ハードウェア回路１６２は、第１のインターフェース回路１６３を介して、バッファ１４３からデータを受け取ることができる。専用ハードウェア回路１６２は、第２のインターフェース回路１６４を介して、データをバッファ１４４中に供給できる。下記でさらに詳細に説明するように、汎用タスクマネージャ部分１５６は、第２のバス１２７を介して、メモリ１２５中の対応するタスクリスト（ＴＬ１）から１つずつタスク命令を読み取るように適合されている。プロセッサ１２３は、第２のバス１２７を通して、タスクマネージャ１５５のレジスタ１５９中に書き込みポインタＷＲ＿ＰＴＲを書き込むことができる。ＤＭＡエンジン１６１は、ＦＦＴハードウェアブロック１６５から情報を読み取り、第２のバス１２７を介して、例えばメモリ１２５のような第２のバス１２７上の回路にその情報を書き込むことができる。ＦＦＴ制御回路１７７は、汎用タスクマネージャ部分１５６により読み取られたタスク命令を解釈して、その後、信号導体１６６を使用し、ＦＦＴハードウェアブロック１６５を制御および構成する。この方法では、タスクマネージャ１５５は、サンプルバッファ１４３（図４参照）の特定の部分からのデータが読み取り、処理のために、ＦＦＴ専用ハードウェア回路１６２中に転送するように、インターフェース１６３を制御できる。同様に、タスクマネージャ１５５は、ＦＦＴ専用ハードウェア回路１６２によるデータ出力をシンボルバッファ１４４（図４参照）の特定の部分中に書き込むように、インターフェース１６４を制御できる。図示および説明を簡単にするために、第２のバス１２７は、図５および図４中で単線として描写されているが、第２のバス１２７は、プロセッサ１２３を、さまざまなＷＣＳＭＳＣの各タスクマネージャ中のポインタレジスタに結合する第１のサブバスを含んでいてもよく、第２のバス１２７は、さまざまなＷＣＳＭＳＣのタスクマネージャをメモリ１２５に結合する第２のサブバスをさらに含んでいてもよい。汎用タスクマネージャ１５６は、“汎用”であると呼ばれている。その理由は、そのハードウェアが、ＷＣＳＭＳＣのそれぞれのタスクマネージャ中で複製されるからである。その一方で、図５中の楕円形において図示されている制御回路は、制御されるべき特定のＷＣＳＭＳＣのタスク命令に特有な状態機械回路である。タスクマネージャの回路は、ＶｅｒｉｌｏｇまたはＶＨＤＬのようなハードウェア記述言語でそのさまざまなコンポーネント部分の機能を記述し、その後、商業入手可能な統合ツールを使用して、記述した機能を実行するハードウェア回路設計を発生させることにより、実現される。
【００２０】
図６は、タスクリストを図示しているダイヤグラムである。図示した特定の例では、タスクリストは、ＦＦＴ  ＷＣＳＭＳＣ１４０のためのタスクリストＴＬ１である。タスクリストＴＬ１は、メモリ１２５内の循環バッファ中に記憶される。循環バッファは、レジスタ１５７中のポインタＳＴＡＲＴ＿ＡＤＤＲにより識別される、メモリ１２５中の位置において開始する。循環バッファは、レジスタ１５８中のポインタＥＮＤ＿ＡＤＤＲにより識別される、メモリ１２５中の位置において終了する。タスクマネージャ１５５中のレジスタ１５７および１５８中に記憶されているＳＴＡＲＴ＿ＡＤＤＲおよびＥＮＤ＿ＡＤＤＲポインタにより、タスクリストＴＬ１を記憶している循環バッファがメモリ１２５中のどこで開始および終了するのかをＦＦＴ  ＷＣＳＭＳＣ１４０のタスクマネージャ１５５は把握する。これらのレジスタは、汎用タスクマネージャ１５６によりアクセス可能である。図６中の各長方形は、メモリ１２５中のワードを表している。図６の例では、タスクリストＴＬ１中にいくつかのタスク命令（ＴＡＳＫ＃１、ＴＡＳＫ＃２、ＴＡＳＫ＃３、ＴＡＳＫ＃４、ＴＡＳＫ＃５）が存在する。いくつかのタスク命令は、その他のタスク命令より多くのワードを含むことに留意されたい。ポインタＥＸＥＣ＿ＰＴＲは、ＷＣＳＭＳＣにより実行された最後のタスク命令の終りの後の、次の位置（次のワード）を識別する。ポインタＷＲ＿ＰＴＲは、実行されなければならない最後のタスク命令の最後のワードの終りを識別する。図６の例では、ＦＦＴ  ＷＣＳＭＳＣは、そのタスクリストＴＬ１中のすべてのタスク命令を実行している。それゆえ、ＥＸＥＣ＿ＰＴＲおよびＷＲ＿ＰＴＲポインタは、同一の位置をポイント指定している。ポインタがこの状態にある場合、タスクマネージャ１５５は、タスクリストＴＬ１からこれ以上のタスク命令を読み取るように試みない。
【００２１】
図７は、プロセッサ１２３がタスクリストＴＬ１中に新たなタスク命令（ＴＡＳＫ＃６）を書き込んだ後のＴＬ１タスクリストを図示しているダイヤグラムである。プロセッサ１２３は、タスク命令ＴＡＳＫ＃６をメモリ１２５中のＴＬ１タスクリストに追加し、その後、第２のバス１２７を通して、レジスタ１５９中に新たなＷＲ＿ＰＴＲ値を書き込むことにより、タスクマネージャ１５５のレジスタ１５９中のＷＲ＿ＰＴＲポインタを３つだけインクリメントさせる。タスク命令を読み取った後、タスクマネージャ１５５は、ＥＸＥＣ＿ＰＴＲを更新し、読み取った最後のタスク命令の後の、タスクリスト中の次の位置をポイント指定する。このメカニズムにより、プロセッサ１２３は、高速な第１のバス１２４を通して、ＷＣＳＭＳＣのためのタスクリスト中に適切なタスク命令を書き込むことにより、特定のＷＣＳＭＳＣに特定のタスクを実行させる。いったんメモリ１２５中のタスクリストが更新されると、適切なＷＣＳＭＳＣのタスクマネージャが応答して、次のタスク命令を読み取り、それを解釈して、タスク命令が指定している動作を実行させるように、プロセッサ１２３は、第２のバス１２７を通して、１回の書き込みをして、ＷＣＳＭＳＣのＷＲ＿ＰＴＲを更新するだけでよい。
【００２２】
図８は、プロセッサ１２３が、どのように、所望の動作を所望のＷＣＳＭＳＣに実行させることができるかを図示している簡略化したフローチャートである。第１のステップ（ステップ２００）では、所望の動作をＷＣＳＭＳＣに実行させるように命令するタスク命令を含む、ＷＣＳＭＳＣのためのタスクリストを、プロセッサ１２３はメモリ１２５中に準備する。例えば、プロセッサ１２３は、上記で説明したように、第１の高速バス１２４を介して、メモリ１２５中のターゲットＷＣＳＭＳＣのためのタスクリストの終りにタスク命令を書き込んでもよい。第２のステップ（ステップ２０１）では、プロセッサ１２３は、より遅いバス１２７を通して、ターゲットＷＣＳＭＳＣのタスクマネージャ中のＷＲ＿ＰＴＲの値を更新し、これにより、タスクマネージャのＷＲ＿ＰＴＲは、新たに追加されたタスク命令の終了位置の後のタスクリスト位置をポイント指定する。タスクリスト中のタスク命令の実行を開始するためには、遅いバス１２７を通した、ただ１つの書き込みが必要とされるだけである。
【００２３】
図９は、ターゲットＷＣＳＭＣＳのタスクマネージャが、図８中のプロセッサ動作にどのように応答するかを図示している簡略化したフローチャートである。第１のステップ（ステップ２０２）では、タスクマネージャは、そのＷＲ＿ＰＴＲが更新されていることを認識し、これに応答して、メモリ１２５中のそのタスクリストから次のタスク命令を読み取る。タスクマネージャは、第２のバス１２７を通して、この読み取りを実行する。タスクマネージャは、その後、タスク命令を解釈し（ステップ２０３）、ＷＣＳＭＳＣのハードウェアブロック部分に供給される、制御および／または構成信号を（例えば、図５中の導体１６６を介して）発生させる。制御および／または構成信号は、タスク命令により指定された動作をハードウェアブロック部分に実行させる。この動作を実行することを、ここでは、タスクを“実行すること”、または、タスク命令を実行することと呼ぶ。次に、ＥＸＥＣ＿ＰＴＲがＷＲ＿ＰＴＲに等しくない場合（ステップ２０４）、読み取られ、実行されるべき、より多くのタスク命令がタスクリスト上にある。処理は、ステップ２０２に戻る。しかしながら、ＥＸＥＣ＿ＰＴＲがＷＲ＿ＰＴＲに等しい場合（ステップ２０４）、タスクリスト中には、実行されるべきタスク命令はもはや存在しない。プロセッサ１２３が実行されるべきタスク命令がさらにあることを示すＷＲ＿ＰＴＲを再び書き込む場合のみ（ステップ２０５）、タスクマネージャはメモリ１２５からタスク命令を読み取るためにステップ２０２に戻る。タスクマネージャは、メモリ１２５中のＳＴＡＲＴ＿ＰＴＲとＥＮＤ＿ＰＴＲとの間の位置を、循環バッファとして扱う。したがって、最後に実行されたタスク命令が、循環バッファの終りにある場合、その後、タスクマネージャは、循環バッファの始めにおいて新たに追加されたタスク命令を探す。バッファオーバーフローおよびアンダーフローのエラー検査を組み込むことができる。
【００２４】
タスク命令の中には、ここで“タイムスタンプタスク命令”または“時間が合わされたタスク命令”と呼ばれるタイプのタスク命令もある。タイムスタンプタスク命令は、タイムスタンプを含むフィールドを含む。このタイムスタンプは、図４のウォールクロックタイマーブロック１２９内のウォールクロックカウンタにより出力されるタイマーカウント値に対応している。このようなタイムスタンプタスク命令を読み取るタスクマネージャは、タスク命令を解釈するが、タスク命令のタイムスタンプフィールド中に示される時間に到達するまで、指定された動作の実行を、ターゲットＷＣＳＭＳＣの関係するハードウェアに開始させない。プロセッサ１２３は、それゆえ、複数の異なるタスクリスト中に、タイムスタンプタスク命令を書き込むことができ、対応するタスクマネージャのＷＲ＿ＰＴＲを更新することができ、これにより、対応するタスクマネージャがタイムスタンプタスク命令を読み取る。これらのタイムスタンプタスク命令のすべてのタイムスタンプが同一の将来時間にセットされている場合、タスクマネージャは、指定された動作の実行をそれらのそれぞれのハードウェアブロックに開始させない。図４のウォールクロックカウンタ１２９により維持されているタイムカウント値がタイムスタンプ値に到達するとき、すべてのタスクマネージャは、プロセッサにより前にセットアップされたそれらのそれぞれの動作の実行を、それらのそれぞれのハードウェアブロックに同時に開始させる。この方法では、プロセッサ１２３は命令をシーケンシャル的に実行するという事実にもかかわらず、プロセッサ１２３は複数のＷＣＳＭＳＣを制御して、同時に動作を実行させることができる。
【００２５】
図１０は、図４のウォールクロックタイマー１２９のブロックダイヤグラムである。ウォールクロックタイマー１２９は、そのカウントが、ウォールクロックタイマー１２９がその一部分であるモデムの動作寿命全体（例えば、１０年間）を通してロールオーバーしない非常に多くのビットを含む、３２ビットのウォールクロックカウンタ１６７を備えている。タイマーカウント値１６８は、それゆえ、リアルタイムに対応し、リアルタイムを示している。リアルタイムのこの表示は、（タイムスタンプタスク命令の使用を通して）モデムのすべてのさまざまなサブ回路により使用可能であるので、“ウォールクロックタイム”と呼ばれる。この例では、ウォールクロックカウンタ１６７は、図４の受信チャネル１１５中に渡される各サンプルに対して１度インクリメントする。ウォールクロックカウンタ１６７をクロックするクロック信号は、ライン１７０を介して、図４のＡＤＣ１１４に供給されるのと同一の信号ＡＤＣ＿ＣＬＫである。ウォールクロックカウンタ１２９は、第２のバス１２７を通して書き込むことができる制御レジスタ１７１を備えている。ウォールクロックタイマー１２９は、２つの異なるエアインターフェース標準規格に対する正確なサンプリング周波数のクロック信号を発生させる２つの位相同期ループ（ＰＬＬ）１７２および１７３を備えている。図示している例では、ＰＬＬ１７２は、ＬＴＥ（ロングタームエボリューション）エアインターフェース標準規格に対して要求されている正確な１５．３６ＭＨｚのクロック信号を出力するのに対して、ＰＬＬ１７３は、ＵＭＢ（ウルトラ移動体ブロードバンド）エアインターフェース標準規格に対して要求されている正確な９．３８ＭＨｚのクロック信号を出力する。プロセッサ１２３は、適切な制御ビットを制御レジスタ１７１のビット１７４中に書き込むことにより、モデムにより処理すべき通信に対する正確なサンプリング周波数をセットする。ＬＴＥは、技術的に知られているテクノロジーであり、“第三世代パートナーシッププロジェクト”（３ＧＰＰ）という名の機関からの入手可能な文書中で説明されている。ＵＭＢは、技術的に知られているテクノロジーであり、“第三世代パートナーシッププロジェクト２”（３ＧＰＰ２）という名の機関からの入手可能な文書中で説明されている。
【００２６】
ウォールクロックタイマー１２９はまた、複数のプログラム可能タイマーブロック１７５Ａ、１７５Ｂ〜１７５Ｎを備えている。これらのプログラム可能タイマーブロックのそれぞれは、ウォールクロックカウンタ１６７により出力されるタイムカウンタ値１６８と、ＩＮＩＴ＿ＶＡＬＵＥを比較するように制御できる比較器を備えている。上記で説明したように、さまざまなＷＣＳＭＳＣのタスクマネージャが、第２のバス１２７に結合されている。プログラム可能タイマーブロック１７５Ａ、１７５Ｂ〜１７５Ｎに対して第２のバス１２７がインターフェースしていることから、ＷＣＳＭＳＣのタスクマネージャは、第２のバス１２７を通して適切なアドレスを書き込むことにより、プログラム可能タイマー中にＩＮＴ＿ＶＡＬＵＥ値およびＣＯＮＴＲＯＬ値を書き込むことができる。プログラム可能タイマーがこれらのＩＮＩＴ＿ＶＡＬＵＥ値およびＣＯＮＴＲＯＬ値により正確に構成されている場合、ウォールクロックカウンタ１６７によって出力されたタイマーカウント値１６８がＩＮＩＴ＿ＶＡＬＵＥに到達するとき、プログラム可能タイマーブロック中の比較器がトリガー信号をアサートする。図１０中のライン１７６は、例えば、第１のプログラム可能タイマーブロック１７５Ａにより発生された１ビットのデジタルトリガー信号を伝える信号導体を識別している。トリガー信号がアサートされた場合には、そのために専用ハードウェア回路が構成されている動作の実行を、専用ハードウェア回路が開始するように、このトリガー信号は、適切なハードワイヤード接続により、特定のＷＣＳＭＳＣ中の専用ハードウェア回路の適切な入力に結合されている。タイムスタンプタスク命令を使用することの１つの特有な例では、トリガー信号導体１７６は、特定の時間において開始されなければならない専用ハードウェア回路に対してハードワイヤード接続されている。ＷＣＳＭＳＣに対するタスクマネージャは、そのタスクリストを読み取り、タイムスタンプタスク命令を取得する。タイムスタンプタスク命令を解釈した結果として、タスクマネージャは、第２のバス１２７を通してウォールクロックタイマーブロック１２９に書き込んで、プログラム可能タイマーをセットアップする。プログラム可能タイマーのトリガー信号出力導線は、専用ハードウェア回路開始入力導線に接続されている。タスクマネージャは、プログラム可能タイマーのＩＮＩＴ＿ＶＡＬＵＥレジスタ中に、タイムスタンプタスク命令から取得されたタイムスタンプ値を書き込む。ＷＣＳＭＳＣ中の専用ハードウェア回路は、トリガー信号がまだアサートされていないことから、この時、タスク命令により指定された動作の実行を開始しない。指定時間に達したとき、プログラム可能タイマー中の比較器は、ウォールクロックカウンタ１６７により出力されたタイマーカウント値１６８がＩＮＩＴ＿ＶＡＬＵＥに一致することを検出する。この検出の結果として、比較器は、トリガー信号をアサートし、これにより、ＷＣＳＭＳＣ中のハードウェア回路を開始させる。
【００２７】
図１１は、タイムスタンプタスク命令の使用を図示している簡略化したフローチャートである。初めのステップ（ステップ２０６）では、タスクマネージャは、第２のバス１２７を通してメモリ１２５から次のタスク命令を読み取る。タスクマネージャは、その後、タイムスタンプタスク命令を解釈する（ステップ２０７）。タスク命令の解釈の結果として、タスクマネージャの制御回路部分は、ＷＳＣＭＳＣの専用ハードウェア部分に供給されるトリガー信号をアサートするように、ウォールクロックタイマーブロック１２９をセットアップする。上述したように、１つの例では、タスクマネージャは、第２のバス１２７を通して、ウォールクロックタイマー１２９中に値を書き込んで、適切なプログラム可能タイマーをセットアップする。そして、タイムスタンプにより示される後の時間において、ウォールクロックタイマーはトリガー信号をアサートする（ステップ２０８）。トリガー信号をアサートすることで、ＷＣＳＭＳＣの専用ハードウェア回路は、指定された動作の実行を開始する。実行される動作は、例えば、タイムスタンプタスク命令の別のフィールド中の値により決定されてもよい。
【００２８】
タイムスタンプタスク命令を実行するための回路を実現する多くの方法がある。ターゲットＷＣＳＭＳＣのタスクマネージャが、ウォールクロック中のプログラム可能タイマーをセットアップして、トリガー信号を発生させる先に述べた例は、１つの可能性ある方法に過ぎない。別の例では、タイムスタンプ値をウォールクロックタイムと比較する比較器はタスクマネージャ中に位置し、タイマーカウント値１６８（ウォールクロックタイム）が、比較器に供給される。
【００２９】
タイムスタンプにより示された時間において、タスク命令の実行を開始することに加えて、タスク命令の実行を起動できる別の３つの方法がある。タスク命令をどのように実行すべきかを指定する４つの異なる方法を、“起動モード”と呼ぶ。上述したタイムスタンプ起動モードに加えて、即時起動モードがある。即時起動モードでは、タスクマネージャがタスク命令を解釈するとすぐに、タスク命令に関係する動作が開始される。タスク命令により指定された動作は、何の制限もなく開始される。“ＨＷイベント駆動型”起動モードと呼ばれる起動モードもある。このモードでは、実行されるべき動作は、特定のハードウェアイベントが生じる時間において開始する。ＨＷイベント駆動型タスク命令の実行を起動するようにできるハードウェアイベントの例は、ハードウェアタスクの完了、または、リソースの利用可能性の表示である。“ＳＷイベント駆動型”起動モードと呼ばれる第４の起動モードもある。このモードでは、識別されたレジスタに対してソフトウェアが書き込みを行なうときに、実行されるべき動作が開始する。どの特定の起動モードが用いられているかは、タスク命令の第１のワードにおける２ビットのフィールドにより指定される。プロセッサ１２３は、これらのタスク命令中の２ビットを適切な値にセットすることにより、タスクがどのように実行されるかを指定することができる。
【００３０】
図１２Ａは、タスク命令の第１の６４ビットのダイヤグラムである。これらのビットは、“共通ヘッダ”とも呼ばれる。初めの４ビットの“ＯＰ”はオペコードである。タスクマネージャの汎用タスクマネージャ部分は、このオペコードをデコードして、タスク命令のタイプや、タスク命令のさまざまなフィールドをどのように取り扱うかを決定する。次の８“ＬＮ”ビットは、数字を保持する長さフィールドである。この数は、タスク命令中のワードの数を示す。タスクマネージャの汎用タスクマネージャ部分は、この長さフィールドを使用して、メモリ１２５からいくつのワードを読み取るかを決定する。“ＡＴ２”フィールドは、４つの起動モードのうちのどの起動モードを使用すべきかを示すコードを含んでいる。“ＲＴＣ  ＣＯＵＮＴ”フィールドは、タイムスタンプである。
【００３１】
図１２Ｂは、“ＦＦＴタスク”と呼ばれるタスク命令のダイヤグラムである。ＦＦＴタスクの共通ヘッダは、図１２Ａ中に示されている。次の６４ビットは、発信元アドレスフィールドと、宛先アドレスフィールドと、４ビットのＦＦＴサイズフィールドとを含むさまざまなフィールドを含んでいる。４ビットのＦＦＴサイズフィールドは、バッファ中の位置の数を含んでいる。ＦＦＴ  ＷＣＳＭＳＣ中に読み取られた各バッファ値に対して、ＦＦＴ  ＷＣＳＭＳＣは１つの値を出力する。発信元アドレスフィールドは、サンプルバッファ１４３中の最初の位置のアドレスを含み、ここから、ＦＦＴ  ＷＣＳＭＳＣは、処理するデータを読み取る。宛先フィールドは、ＦＦＴ  ＷＣＳＭＳＣが処理データを置くシンボルバッファ１４４中の最初の位置のアドレスを含む。サンプルバッファ１４３から読み取られるべき連続的なバッファ位置の数、および、シンボルバッファ１４４中に書き込まれるべき連続的なバッファ位置の対応する数は、ＦＦＴサイズフィールド中で明らかにされている。
【００３２】
図１２Ｃは、“サンプルバッファプッシュタスク”と呼ばれるタスク命令のダイヤグラムである。発信元アドレスフィールドは、サンプルバッファ１４３中の開始アドレスを示す。データはこの開始アドレスからプッシュされる。宛先アドレスフィールドは、プッシュデータが書き込まれるべきメモリ１２５中の開始アドレスを示す。サンプルバッファプッシュ長さフィールドは、プッシュする連続的なバッファ位置の数を示す数を含む。
【００３３】
図１２Ｄは、“ＦＦＴサンプルバッファプッシュタスク”と呼ばれるタスク命令のダイヤグラムである。このタスク命令の実行は、ＦＦＴ  ＷＣＳＭＳＣに、タスク命令の第２の６４ビットにより指定されるようなＦＦＴ動作を実行させ、加えて、このタスク命令の実行は、サンプルメモリバッファ１４３からメモリ１２５にデータをプッシュさせる。
【００３４】
図１２Ｅは、“シンボルバッファプッシュタスク”と呼ばれる別のプッシュタスク命令のダイヤグラムである。このタスク命令の実行は、ＦＦＴ  ＷＣＳＭＳＣ１４０により、シンボルバッファ１４４からメモリ１２５中に複数の個々に指定されたバッファ位置をプッシュさせる。このタスク命令の共通ヘッダは、図１２Ａ中で明らかにされている。プッシュされる値は、宛先アドレスフィールドにより示されているアドレスで開始する連続的な位置において、メモリ１２５中に書き込まれなければならない。プッシュされるべき個々の値の位置は、発信元アドレスフィールドのシーケンスにより示される。タスク命令のワードの数、および、それゆえプッシュされるべき値の数は、“Ｎｕｍシンボル”フィールド中で明らかにされている。
【００３５】
図１２Ｆは、“復調構成タスク”と呼ばれるタスク命令のダイヤグラムである。図１２Ｇは、“復調ＭＭＳＥタスク”と呼ばれるタスク命令のダイヤグラムである。図１２Ｈは、“復調ＭＲＣタスク”と呼ばれるタスク命令のダイヤグラムである。一般的に、復調構成タスクは復調ＷＣＳＭＳＣ１４１に対する構成パラメータを含む。一般的に、より頻繁に変化する、復調ＭＭＳＥタスク命令および復調ＭＲＣタスク命令中で明らかにされているパラメータと比較すると、この構成パラメータは、相対的に静的である。使用法として、単一の復調構成タスクは、復調ＷＣＳＭＳＣ１４１を構成するために使用され、その後、復調ＭＭＳＥタスク命令か、復調ＭＲＣタスク命令かのいずれかのシーケンスが後に続いて、ＤＥＭＯＤ  ＷＣＳＭＳＣに個々の復調動作を実行させる。実行できる２つの一般的なタイプの復調動作、最小平均二乗誤差（ＭＭＳＥ）タイプ復調または最大比合成（ＭＲＣ）タイプ復調がある。復調ＭＭＳＥタスク命令が、ＭＭＳＥタイプ復調を実行するために使用されるのに対して、復調ＭＲＣタスク命令は、ＭＲＣタイプ復調を実行するために使用される。
【００３６】
図１２Ｉは、“ＤＤＥ構成タスク”と呼ばれるタスク命令のダイヤグラムである。上記に説明した復調構成タスクのケースのように、ＤＤＥ構成タスクは、相対的に静的である、ＤＤＥ  ＷＣＳＭＳＣ１４２に対する構成パラメータを含む。ノートのうちの１つのフィールドは、１ビットの“ＳＣＥ”ソフト合成イネーブルフィールドである。このビットがセットされている場合、ＤＤＥ  ＷＣＳＭＳＣ１４２のデコーダ部分は、ＨＡＲＱプロトコルにしたがって、先の送信からのデータを、現在の送信からのデータとソフト合成するように構成される。
【００３７】
図１２Ｊは、“ＤＤＥクリアＬＬＲタスク”と呼ばれるタスク命令のダイヤグラムである。このタスクの実行は、ＤＤＥ  ＷＣＳＭＳＣ１４２のソフト合成バッファ（図１８のＬＬＲバッファを参照）内のデータをクリアさせる。
【００３８】
図１２Ｋは、“ＤＤＥプッシュタスク”と呼ばれるタスク命令のダイヤグラムである。このタスクの実行は、メモリ１２５中に情報をプッシュさせるようにする。ＤＤＥ  ＷＣＳＭＳＣ１４２のデマップ部分により出力される情報は、“デマッププッシュＴＣＭ宛先アドレス”フィールドにより指定されるような、メモリ１２５中の位置にプッシュされる。ＤＤＥ  ＷＣＳＭＳＣ１４２のデコード部分により出力される情報は、“デコードプッシュＴＣＭ宛先アドレス”により指定されるような、メモリ１２５中の位置にプッシュされる。ＤＤＥ  ＷＣＳＭＳＣ１４２のデコーダ部分により実行される多くの動作のうちの１つは、巡回冗長検査（ＣＲＣ）を実行して、受信したデータのデコードに成功したか否かを決定することである。ＣＲＣ検査に合格または不合格か否かは、ステータス情報である。適切な値で２ビットのＰＳＨフィールドをセットすると、“デコードプッシュＴＣＭ宛先アドレス”値におけるアドレスに対して既知のオフセットでメモリ１２５中にステータス情報がプッシュされる。
【００３９】
図１２Ａ〜１２Ｋ中で明らかにされているタスク命令は、図４のデジタルベースバンド集積回路１０４中で使用されているいくつかのタスク命令の単なる例である。図４のデジタルベースバンド集積回路１０４のケースのように、ここに説明する新規のオフラインタスクリスト技法を用いる典型的な設計では、タスクマネージャを有するＷＣＳＭＳＣのそれぞれにより実行されるように規定されている多くのタスク命令がある。他のタスク命令は、ＤＰＩＣＨ  ＸＦＥＲタスク、ＣＰＩＣＨ  ＸＦＥＲタスク、データムーバータスク、散布収集タスク、音声出力プッシュタスク、ＶＤＥＣ出力プッシュタスク、ＴＤＥＣ出力プッシュタスク、ＡＣＫ／ＮＡＣＫ検出プッシュデータタスク、ＴＸフレームステータスプッシュデータタスクを含む。
【００４０】
図１３は、到来ＬＴＥフレームを処理する受信チャネルの例の間に、さまざまなタイプの処理がいつ生じるかを図示しているタイムラインダイヤグラムである。図１４は、到来ＵＭＢフレームを処理する受信チャネルの例の間に、さまざまなタイプの処理がいつ生じるかを図示しているタイムラインダイヤグラムである。ＬＴＥの例において、７つのＯＦＤＭシンボルＦＦＴ動作の結果は、その結果が復調動作中で処理される前に、集められることに留意されたい。図１３では、Ｔ０’〜Ｔ６’で指定している矢印は、７つのＦＦＴ処理タスクの結果がいつ生じたかを示す。図１３中の矢印Ｔ０〜Ｔ６は、これらの７つのＦＦＴ処理タスクがいつ開始されたかを示す。ＦＦＴ処理結果Ｔ６’が発生されたすぐ後に制御チャネル復調の実行が開始される。制御チャネル情報の復調およびデコーディングの後に、図１３中で図示しているような時間で開始および終了するように、７つのシンボルのトラフィックチャネルデータは、復調およびデコードされる。図１４のＵＭＢの例において、シンボルレートホッピングモードでは、対照的に、各ＯＦＤＭシンボルに対して、復調タスクおよびデコードタスクが実行される。巡回プリフィックス当たりのサンプルの数は、図１３のＬＴＥの例のものとは異なる。ＬＴＥ送信を受信するために要求される処理のタイプと、ＵＭＢ送信を受信するために要求される処理のタイプとの間には、多くの異なるフォーマットおよびタイミングの差がある。それでも動作のタイプは多くの類似点を有する。双方のタイプの送信の受信処理では、下記の動作：ＦＦＴ処理、復調、およびデマッピング／デインターリービング／デコーディングが実行される。したがって、１つの新しい側面では、同一のハードウェアが、２つのエアインターフェース標準規格（ＬＴＥまたはＵＭＢ）のうちのいずれか１つにおいて送信を通信するために使用可能であるように、ワイヤレスモデムの受信チャネルのＷＣＳＭＳＣは、オフラインタスクリストにより構成および制御される。１つの例では、プロセッサ１２３（図４参照）により実行されるプログラム１３５は、集積回路１０４の電源が入れられる前に、外部フラッシュメモリ１３７中に初めに記憶される。電源を入れると、プログラムは、第２のバス１２７を通して集積回路１０４中に読み取られ、プログラムメモリ１２８中にロードされる。プロセッサ１２３は、プログラムメモリからのプログラム１３５を実行する。プログラム１３５は、プロセッサ１２３が、メモリ１２５中のタスクリストをどのように作って、制御するかを命令して、それゆえ、集積回路１０４のさまざまなサブ回路をどのように構成するかと、それらの動作をどのように起動するかと、ワイヤレス通信を受信および送信するために、これらのサブ回路がどのように協働するかとを決定する。１つのモードでは、集積回路１０４のさまざまなサブ回路が、第１のエアインターフェース標準規格（例えば、ＬＴＥ）にしたがって通信するためにともに働くように、プロセッサ１２３は、プログラム１３５の指示の下で、タスクリストを作って制御する。第２のモードでは、集積回路１０４のさまざまなサブ回路が、第２のエアインターフェース標準規格（例えば、ＵＭＢ）にしたがって通信するためにともに働くように、プロセッサ１２３は、プログラム１３５の指示の下で、タスクリストを作って制御する。ＷＣＳＭＳＣサブ回路の適切な再構成可能性のおかげで、１つのモードから別のモードに変更することは、何らかのハードウェアの再設計を伴わない。変化する標準規格に適応するためのデジタルベースバンド集積回路１０４のプログラミングは、柔軟で理解が簡単なタスク命令と、用いられるオフラインタスクリストアーキテクチャとにより容易となる。
【００４１】
タスクリストアーキテクチャの１つの側面では、モデムの特定のＷＣＳＭＳＣ中のハードウェア形態において、実現される処理が、標準規格における変更により通信標準規格と互換性がなくなった場合や、ＷＣＳＭＳＣハードウェアが、変更された標準規格の新たな要件に適応するように設計されていなかった場合には、全く同一のデジタルベースバンド集積回路１０４は、それにもかかわらず、変更された標準規格にしたがって動作するように、一般的には、比較的簡単に修正できる。その要件が変更された動作をＷＣＳＭＳＣに実行させるよりむしろ、そうでなければＷＣＳＭＳＣが使用していたであろう動作を実行するためのデータをプッシュさせるために、プッシュタスク命令が用いられる。プロセッサ１２３は、メモリ１２５からのプッシュされたデータにアクセスし、変更された標準規格により必要とされている新たなタイプの処理をソフトウェア中で実行し、その後、ソフトウェア処理の結果に基づいて、データパス中の後続するＷＣＳＭＳＣを制御する。プロセッサ１２３は、各ＷＣＳＭＳＣのタスクリストを適切に修正することにより、後続するＷＣＳＭＳＣを制御する。それゆえ、選択された専用ハードウェアサブ回路を受信チャネルまたは送信チャネルから効果的に除去することができ、その後、望ましいように、効果的に除去されたサブ回路の機能は、ソフトウェアインプリメンテーションに置き換えることができることが多い。
【００４２】
図１５は、到来ＬＴＥフレームの１個のスロットが処理される例におけるＦＦＴ  ＷＣＳＭＳＣ１４０の動作を図示している。ＡＤＣ＿ＣＬＫ信号が、関係するＬＴＥ標準規格に対する正確なサンプリング周波数（このケースでは１５．３６ＭＨｚ）であるように、プロセッサ１２３は、ウォールクロックタイマー１２９を初めに構成する。連続するバッファ位置にサンプルが書き込まれるように、ＡＤＣサンプルの到来ストリームがサンプルバッファ１４３中に書き込まれる。図１３に示したように、ＬＴＥの例において、１個のＯＦＤＭシンボルは１０２４個のサンプルに関係している。シンボルに先行するプリフィックスは、８０個のサンプルの長さを有する最後のプリフィックスを除いて、７２個のサンプルの長さである。サンプルバッファ１４３中に出現する到来サンプルのストリームは、図１５において、“サンプルバッファ”というラベルが付けられた列中に描写されている。さまざまなシンボルおよびプリフィックスに対応している、サンプルバッファ１４３中のアドレスは、右隣の列で明らかにされている。ＦＦＴ  ＷＣＳＭＳＣ１４０により実行されるべきＦＦＴ動作の結果は、サンプルバッファ１４３から読み取られる、各サンプル値に対して、出力値をシンボルバッファ１４４中に置くことを伴う。したがって、図１５中の“シンボルバッファ”というラベルが付けられた列はシンボルのシーケンスを示している。サンプルバッファからのプリフィックスサンプル値は使用されず、ＦＦＴ動作中では無視される。プリフィックス値は、ＦＦＴ  ＷＣＳＭＳＣ１４０を通り過ぎた受信チャネルの下流には渡されるべきではない。したがって、図１５の“シンボルバッファ”列の１０２４個の位置シンボルは、何らかの介在プリフィックスなく、互いに接していることを示している。
【００４３】
図１６は、ＦＦＴ  ＷＣＳＭＳＣ１４０のためのタスクリストが、図１３および図１５中で概要を述べたＬＴＥ  ＦＦＴ処理を実行するためにどのように生成されるかを図示している。タスクリスト中の第１のタスク（ＴＡＳＫ＃１）は、図１５中で図示したように、アドレスＸ＋７２において始まるサンプルをサンプルバッファ１４３から読み取るためのものである。このタスクは、図１５中で図示したように、アドレスＹにおいて始めて、シンボルバッファ１４４中に結果を書き込むためのものである。読み取られるサンプルと、書き込まれるシンボル値の数は１０２４個である。すべてのサンプルがＦＦＴ  ＷＣＳＭＳＣ１４０中に読み取られた後でのみ、ＦＦＴ動作を開始することができる。それゆえ、ＦＦＴ動作それ自体が開始されるべき時間は、タイマーカウント値１６８が値Ｘ＋１０２４＋７２に到達する時間である。図１６の最も右側の列における上位４つのエントリは、“ＦＦＴタスク”中の関係するフィールド中で明らかにされるべき値を示している。先の図１２Ｂでは、ＦＦＴタスクのフォーマットを明らかにしている。ＦＦＴタスクリストに追加された次の６つのタスクは、類似した作りで生成されている。サンプルバッファからサンプルを読み取る際に、プリフィックスサンプル値を飛び越えるようにサンプルバッファ１４３中の開始アドレスが指定される。シンボルごとに１つのＦＦＴ動作で、７つのＦＦＴ動作が実行された後に、図１３中に図示している時間Ｔ７’において復調動作を開始できる。
【００４４】
しかしながら、図示した例では、特別なタイプのチャネル推定動作をプロセッサ１２３により最初に行なわなければならない。専用ハードウェア回路中で実行されることに向けられているものではなく、むしろ、プロセッサ１２３により、さらに柔軟なソフトウェア中でより有利に実行される動作の例として、チャネル推定動作がここで説明されている。あるパイロット信号サンプルは、ＬＴＥ標準規格により指定されるパターンで、シンボルバッファ内の位置に分散されている。したがって、図１６中のＴＡＳＫ＃８は、図１２Ｅ中で明らかにされているシンボルバッファプッシュタスクである。“シンボルバッファプッシュタスク”命令中の発信元アドレスフィールドは、これらのパイロットが発見される、シンボルバッファ１４４中の位置である。起動モードは即時モードになるように指定されている。ＦＦＴ  ＷＣＳＭＳＣ１４０によるプッシュタスク命令の実行の後に、プロセッサ１２３は、メモリ１２５中のパイロット情報を使用して、特別なチャネル推定動作をソフトウェアで実行する。ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１により実行される復調で使用される復調パラメータ（例えば、チャネル推定パラメータおよび干渉推定パラメータ）は、チャネル推定の結果に依存している。現在の例では、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４４のためのタスクリスト中に書き込まれている復調タスク命令のさまざまなＲＥＡＬおよびＩＭＡＧのパラメータフィールド中にこれらの復調パラメータを提供することにより、プロセッサ１２３は、これらの復調パラメータを変更する。例えば、ＭＭＳＥタイプ復調が使用される場合に、パラメータは、復調ＭＭＳＥタスク命令（図１２Ｇ参照）中に提供される。復調ＭＭＳＥタスク命令は、図１３中の時間Ｔ７’のすぐ後に開始する、図示されている復調動作を起動する。
【００４５】
ソフトウェアでプロセッサにより実行される動作の別の例は、ＡＣＫ／ＮＡＣＫ処理の例である。この動作の結果は、その後、後続する処理を制御するためにタスク命令中で使用される。ＤＤＥプッシュタスク（図１２Ｋ参照）は、ＤＤＥ  ＷＣＳＭＳＣ１４２のためのタスクリスト中に入れられている。このタスク命令中の２ビットのＰＳＨフィールドは、ＤＤＥ  ＷＣＳＭＳＣ１４２のタスクマネージャによりＣＲＣ検査の結果をメモリ１２５中にプッシュさせるためにセットされる。この例では、プロセッサ１２３は、プッシュされたＣＲＣ検査情報を取り出し、その情報を使用してデコーディングが成功または失敗であるか否かを決定する。デコーディングが成功した場合には、受信したトラフィックデータはＨＡＲＱソフト合成で使用されない。それゆえ、ＤＤＥ  ＷＣＳＭＳＣ１４２のデコード部分におけるソフト合成バッファがクリアされるように、プロセッサは、ＤＤＥ  ＷＣＳＭＳＣ１４２のためのタスクリスト中にＤＤＥクリアＬＬＲタスク（図１２Ｊ参照）を書き込む。そのソフト合成イネーブル（ＳＣＥ）ビットをゼロにセットさせるＤＤＥ構成タスク命令（図１２Ｉ参照）もタスクリスト中に書き込まれ、ＤＤＥ  ＷＣＳＭＳＣ１４２によるソフト合成をディセーブルさせる。プロセッサ１２３はまた、送信チャネル１１６のためのタスクリスト中に適切なタスク命令を書き込むことにより、ＡＣＫメッセージが送信されるようにする。その一方で、デコーディングが失敗したとプロセッサ１２３が決定した場合には、後続する送信からの情報が、最後に失敗した送信からのバッファされている情報とソフト合成されるように、プロセッサ１２３はＤＤＥソフトバッファをクリアせず、ソフト合成をディセーブルさせないだろう。プロセッサ１２３はまた、送信チャネル１１６に対するタスクリスト中に適切なタスク命令を書き込むことにより、ＮＡＣＫメッセージが送信されるようにする。
【００４６】
図１７は、図４のＤＥＭＯＤ  ＷＣＳＭＳＣ１４１のブロックダイヤグラムである。ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１は、タスクマネージャ回路３００と、ＩＱフェッチャー３０１と、チャネル推定回路３０２と、ＭＭＳＥ／ＭＲＣ復調器エンジン３０３と、書き込みマネージャ３０４とを備えている。タスクマネージャ回路３００は、汎用タスクマネージャ部分３０５と、ポインタレジスタを含む１組のレジスタ３０６と、ＡＨＢバスインターフェース３０７と、復調器制御状態機械部分３０８と、１組のプリタスクレジスタ３０９とを備えている。汎用タスクマネージャ部分３０５は、マスターとして、第２のバス１２７のＡＸＩバス部分に対してインターフェースする。ＡＨＢバスインターフェース３０７は、スレーブとして、第２のバス１２７のＡＨＢバス部分に対してインターフェースする。データの一般的な流れは、シンボルバッファ１４４からのパイプライン化されたデータパスを通り、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１を通って、タイルバッファ１４５に向かう。タスクマネージャ３００はＡＸＩバスインターフェースを使用して、密結合メモリ１２５からタスク命令を読み取る。プロセッサ１２３は、ＡＨＢバス上でマスターとして動作し、スレーブＡＨＢインターフェース３０７を使用して、ＤＥＭＯＤ  ＷＣＳＭＳＣの内部レジスタを読み取り、レジスタ３０６のＷＲ＿ＰＴＲレジスタを書き込み、そして、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１を通してタイルバッファ１４５を読み取る。ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１は、３つの一般的なタイプのタスク命令を実行できる：実行されるべき将来の復調動作のために、ＷＣＳＭＳＣハードウェアエンジンに対する構成パラメータを、実行されるときにロードする構成タスク命令と、ＭＭＳＥ動作に対するパラメータを、実行されるときに受信して復調を実施するＭＭＳＥタスク命令と、ＭＲＣ動作に対するパラメータを、実行されるときに受信して復調を実施するＭＲＣタスク命令とである。
【００４７】
動作において、プロセッサ１２３は、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１のレジスタ３０６中のＷＲ＿ＰＴＲを更新し、これにより、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１に対する、実行するための少なくとも１つの付加的なタスク命令があることを示している。汎用タスクマネージャ３０５は、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１による実行のための新たなタスク命令が密結合メモリ１２５中にあるか否かを決定する。別のタスク命令があると汎用タスクマネージャ３０５が決定した場合には、汎用タスクマネージャ３０５は、第２のバス１２７を通してタスク命令を読み取って、プリタスクレジスタ部分３０９のレジスタ中にタスク命令を書き込むように、復調制御論理３０８に通知して、復調制御論理３０８とともに機能する。汎用タスクマネージャ３０５が、タスク命令のヘッダを解釈するのに対して、復調制御論理３０８は、タスク命令の残りを解釈する。復調制御論理３０８は、タスク命令の解釈の結果に基づいて、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１の他の部分に構成パラメータを提供する。その後、タスク命令により指定され、タスク命令中で指定される動作全体が実施されるように、復調制御論理３０８により、これらの他の部分がトリガーされて、さまざまな時間においてさまざまな動作が実行される。復調制御論理３０８は、各タスク命令に対して異なる状態機械を実現する。状態機械の状態に入る際、および、出る際に、復調制御論理３０８は制御信号をアサートする。１つの例でのＤＥＭＯＤ  ＷＣＳＭＳＣの設計では、状態機械はハードウェア記述言語で規定され、商業上入手可能な統合ツールを使用して、記述がハードウェア論理に統合された。タスクマネージャ３００の制御の下で、ＩＱフェッチャー３０１は、シンボルバッファ１４４から、タスク命令により指定された位置からのものを読み取って、ＩＱサンプルの状態にする。到来Ｉサンプル値（実数値）と、それに対応する到来Ｑサンプル値（虚数値）とは一緒になってＩＱサンプルを構成する。チャネル推定回路３０２が開始し、チャネルを推定することと、チャネル補間値を発生させることとを始め、発生させた補間の結果を対応するＩＱサンプルと整列させ、これにより、ＩＱサンプルと、関係する補間結果とがＭＭＳＥ／ＭＲＣエンジン３０３に同時に供給される。このような２つのＩＱフェッチャーが、アンテナ１０１と１０２との各々に対して１つずつある。ＭＭＳＥ／ＭＲＣエンジン３０３は、２組のＩＱサンプル（各アンテナに対して１組）と、関係するチャネル推定値とを使用して、タスク命令により決定されたあるタイプの復調を実行し、復調出力値Ｉ、復調出力値Ｑ、およびＳＮＲ値を出力する。アクティブな受信チャネルの数とレイヤの数とに基づいて、ＭＭＳＥ復調またはＭＲＣ復調のどちらかが使用される。１組の値がエンジン３０３に入って１組が出ることや、２組が入って２組が出ることや、または、２組が入って１組が出ることがあってもよい。書き込みマネージャ３０４は、タイルバッファ１４５中に、復調出力値Ｉと、復調値Ｑと、ＳＮＲ値との各組を書き込むようにタスクマネージャ３００により命令される。この方法では、復調制御論理３０８は、復調ＷＣＳＭＳＣ１４１が、一度で１つのトーンに働くよう��させて、シンボルバッファ１４４からトーンを読み取らせ、復調を行わせ、結果をタイルバッファに書き込ませる。タスク命令により指定されるこのようなすべての復調が終了したときに、復調制御論理３０８は、ステータスレジスタ３０６中にタスク終了のフラッグをセットする。ＤＤＥ  ＷＣＳＭＳＣ１４２中で動作を開始させるために、ハードウェアストローブ信号をＤＥＭＯＤ  ＷＣＳＭＳＣ１４１から出力させるべきであることをタスク命令が示す場合には、ストローブ信号が、導体３１０上にアサートされる。導体３１０は、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１からＤＤＥ  ＷＣＳＭＳＣ１４２に伸びている。
【００４８】
図１８は、ＤＤＥ（デマップ／デインターリーブ／デコードエンジン）ＷＣＳＭＳＣ１４２のダイヤグラムである。ＤＤＥ  ＷＣＳＭＳＣ１４２は、２つのデマップエンジンＤＥＭＡＰ１  ４００および４０１と、（第１のビタビデコーダ４０３と、第２のビタビデコーダ４０４と、第１のターボデコーダ４０５と、第２のターボレコーダ４０６とを含む）デコーダブロック４０２と、プッシュエンジン４０７と、ＡＨＢバスインターフェース４０８と、構成レジスタや状態レジスタやポインタレジスタを含むレジスタ４０９と、メモリインターフェース４１０とを備えている。デマップエンジン４００および４０１の各々はタスクマネージャ機能性を有するが、この機能性のうちのいくつかのものは共有される。例えば、ＡＨＢバスインターフェース４０８と、ポインタレジスタ４０９と、プッシュエンジン４０７とは共有され、図１８中のデマップエンジンの外に図示されている。デマップエンジン４００は、タスクマネージャ回路４１１と、データストリーム処理回路とを備え、データストリーム処理回路は、アンペイント回路４１２と、ＬＬＲ（ログ最尤比）発生器４１３と、デスクランブラー４１４と、デインターリーバー４１５とを構えている。同様に、デマップエンジン４０１は、タスクマネージャ回路４１６と、アンペイント回路４１７と、ＬＬＲ発生器４１８と、デスクランブラー４１９と、デインターリーバー４２０とを備えている。データの一般的な流れは、タイルバッファ１４５からデマッパー４００および４０１を通り、バス４２２および４２３を介してＬＬＲバッファ４２１中へ流れ、その後、ＬＬＲバッファ４２１から、バス４２４を介してデコーダブロック４０２中に戻り、デコーディングにより、バス４２５を介してデコーダ出力バッファ１４６に出る。デマップエンジン４００は、デマップエンジン４０２よりも、さらに少ないスループット能力を有するが、デマップエンジン４００はまた、より少ない電力消費量を有し、制御パケットの処理に限定されている。デマップエンジン４００は、ＬＬＲバッファ４２１に対する２つの読み取り／書き込みチャネルを有し、それゆえ、２つの異なるＰＢＲＩ（プルーンドビットリバーサルインターリーバー）アドレスにおいて、２個のＬＬＲ値を一度にＬＬＲバッファ４２１に出力することができる。その一方で、デマップエンジン４０１は、データパケットの処理のために使用され、ＬＬＲバッファ４２１に対する６つの読み取り／書き込みチャネルを有する。デマップエンジン４０１は、６つの異なるＰＢＲＩアドレスにおいて、６つのＬＬＲ値をＬＬＲバッファ４２１に同時に出力して書き込むことができる。デマップエンジン４００および４０１は並列で動作することから、それぞれがその自己のタスクマネージャを備えている。ＤＤＥタスク命令は、情報を密結合メモリ１２５中にプッシュして戻すことを要求するかもしれない。それゆえ、ＤＤＥ  ＷＣＳＭＳＣ１４２は、ＡＨＢスレーブインターフェースを介して、第２のバス１２７に結合されているプッシュエンジン４０７を備えている。
【００４９】
動作において、プロセッサ１２３は、タスク命令をＤＤＥタスクリストでメモリ１２５に置いて、レジスタ４０９中のＷＲ＿ＰＴＲを更新する。タスクマネージャ４１６の汎用タスクマネージャ部分４２６は、ＤＤＥ  ＷＣＳＭＳＣ１４２による実行のためにタスク命令が存在することを決定する。汎用タスクマネージャ４２６は、メモリ１２５からタスク命令を読み取る。ＤＤＥタスク命令の第１の部分は、デマッピングを制御するためのものであるのに対して、ＤＤＥタスク命令の第２の部分は、デコーディングを制御するためのものである。制御論理４２７は、第１の部分を使用して、ブロック４１７〜４２０により実行されるデマッピング動作を構成および制御する。制御論理４２７は、信号導体３１０を介して、ＤＥＭＯＤ  ＷＣＳＭＳＣ１４１から受け取ったハードウェアトリガー信号を用いて、タスク命令により規定されているある動作を、いつ開始するかを決定する。制御論理４２７は、（示していない）制御導体により、ブロック４１７〜４２０に対して制御信号を送る。デマップ／デインターリーブ動作は、ＨＡＲＱ（ハイブリッド自動反復要求）ソフト合成動作において、ＬＬＲバッファ４２１からの情報の読み取りと、何らかの処理と、情報をＬＬＲバッファ４２１中に戻す後続する書き込みとを伴うかもしれず、または、デマップ／デインターリーブ動作は、何らかのソフト合成なしに、ＬＬＲバッファ４２１中への書き込みにだけを伴うかもしれない。デマップ動作の結果がメモリ１２５にプッシュされるべきであることをＤＤＥタスク命令が示している場合には、制御論理４２７は、示された情報をプッシュエンジン４０７によって第２のバス１２７を通してメモリ１２５にプッシュさせる。デマップ／デインターリーブ動作が実行された後に、結果がＬＬＲバッファ４２１中にあると、その後、制御論理４２７およびデコーダタスクライター４２８は、タスク命令の第２の部分を使用して、デコーディング動作を実行するデコーダブロックハードウェアを構成および制御する。デコーダタスクライター４２８は、デコーダブロック４０２の動作をトリガーし、その時、デコーディング中に使用するための適切な構成およびパラメータをデコーダブロック４０２に供給する。デコーダブロック４０２は、処理するための情報をＬＬＲバッファ４２１から読み取り、タスク命令の第２の部分にしたがって、そして、制御論理４２７により構成および制御されるように、デコーディングを実行し、結果をデコード出力バッファ１４６中に書き込む。デコード動作の結果がメモリ１２５にプッシュされるべきであることをタスク命令が示している場合には、制御論理４２７は、示された情報をプッシュエンジン４０７によって第２のバス１２７を通してメモリ１２５にプッシュさせる。この方法においてプッシュされるかもしれない情報の例は、デコーダブロック４０２により発生されるＣＲＣ合格／不合格情報である。
【００５０】
１つ以上の例示的な実施形態では、記述した機能は、ハードウェアで、ソフトウェアで、ファームウェアで、または、これらのものを組み合わせた任意のもので実現してもよい。ソフトウェアで実現された場合、機能は、１つ以上の命令、または、コードとして、コンピュータ読取可能媒体上に記憶されてもよく、あるいは、コンピュータ読取可能媒体上で送信されてもよい。コンピュータ読取可能媒体は、１つの位置から別の位置へのコンピュータプログラムの転送を容易にする何らかの媒体を含む、コンピュータ記憶媒体および通信媒体の双方を含む。記憶媒体は、汎用または特定用途向けコンピュータによりアクセスできる何らかの利用可能な媒体であってもよい。例として、これらに限定されないが、このようなコンピュータ読取可能媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスク記憶装置、磁気ディスク記憶装置または他の磁気記憶デバイス、あるいは、汎用または特定用途向けコンピュータ、または、汎用または特定用途向けプロセッサによりアクセスでき、命令またはデータ構造の形態で所望のプログラムコード手段を伝送または記憶するために使用できる他の何らかの媒体を含んでいてもよい。また、任意の接続は、適切にコンピュータ読取可能媒体と呼ばれる。例えば、ソフトウェアが、同軸ケーブルや、光ファイバケーブルや、撚り対や、デジタル加入者線（ＤＳＬ）や、あるいは、赤外線、無線、マイクロ波のようなワイヤレス技術を使用して、ウェブサイト、サーバ、または、他の遠隔ソースから送信される場合には、同軸ケーブル、光ファイバケーブル、撚り対、ＤＳＬ、あるいは、赤外線、無線、および、マイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。ここで使用したようなディスク（ｄｉｓｋおよびｄｉｓｃ）は、コンパクトディスク（ＣＤ）、レーザディスク（登録商標）、光ディスク、デジタル汎用ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、および、ブルーレイディスク（登録商標）を含むが、一般的に、ディスク（ｄｉｓｋ）は、データを磁気的に再生する一方で、ディスク（ｄｉｓｃ）はデータをレーザによって光学的に再生する。先のものを組み合わせたものもまた、コンピュータ読取可能媒体の範囲内に含められるべきである。
【００５１】
ある特有の実施形態を、使用説明の目的のために上記に記述しているが、この特許文書の教示は一般的な適用可能性を有しており、上記に記述した特有の実施形態に限定されてはいない。オフラインタスクリストアーキテクチャは、ＬＴＥ、ＵＭＢ、またはＷｉＭＡＸのような、何らかの特定のエアインターフェース標準規格にしたがって通信するモデムを実現する際の使用に限定されずに、むしろ、オフラインタスクリストアーキテクチャは、他のエアインターフェース標準規格への一般的な適用可能性と、そして、より広くは、データのストリーム上で異なる動作を実行するための複数のサブ回路を有する大きなデジタルシステムへの一般的な適用可能性を有している。プロセッサが、第１のバスを介して、密結合メモリ中にタスク命令を書き込み、タスクマネージャが、第２のバスを介して、密結合メモリからタスク命令を読み取る例を上記に記述しているが、これは１つの例に過ぎない。他の例において、プロセッサおよびタスクマネージャは、同一のバスを介して、タスク命令を記憶するメモリにアクセスする。したがって、記述した、特有の実施形態のさまざまな機能の、さまざまな変更、適合、および組み合わせは、下記に述べる特許請求の範囲内から逸脱することなく実施できる。
以下に、本願出願時の特許請求の範囲に記載された発明を付記する。
［１］集積回路において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
前記メモリに結合されている第１のバスと、
前記第１のバスを通して、前記メモリ中にタスク命令を書き込むように適合されているプロセッサと、
第１のバッファと、
第２のバッファと、
第３のバッファと、
前記メモリに結合されている第２のバスと、
第１のサブ回路と、
第２のサブ回路とを具備し、
前記第１のタスクリストはタスク命令を含み、
前記第２のタスクリストはタスク命令を含み、
前記第１のサブ回路は、
前記第１のバッファから第１のデータを読み取って、前記第１のデータを処理し、これにより、第２のデータを発生させて、前記第２のバッファ中に前記第２のデータを書き込むように適合されている第１の処理回路と、
前記第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取って、前記第１のタスク命令を解釈し、前記解釈の結果に基づいて前記第１の処理回路を構成するように適合されている第１のタスクマネージャを備え、
前記第２のサブ回路は、
前記第２のバッファから前記第２のデータを読み取って、前記第２のデータを処理し、これにより、第３のデータを発生させて、前記第３のバッファ中に前記第３のデータを書き込むように適合されている第２の処理回路と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取って、前記第２のタスク命令を解釈し、前記解釈の結果に基づいて前記第２の処理回路を構成するように適合されている第２のタスクマネージャを備えている集積回路。
［２］前記第１のタスクマネージャは、複数の異なるタスク命令を解釈するように適合され、前記異なるタスク命令の各々は、前記第１の処理回路が異なる処理動作を実行するように、前記第１のサブ回路により実行することができる［１］記載の集積回路。
［３］タイマーカウント値のシーケンスを出力するウォールクロックタイマーをさらに具備し、前記第１のタスクマネージャにより読み取られた前記第１のタスク命令は、第１のタイマーカウントフィールドを備え、前記第１の処理回路は、前記第１のタイマーカウントフィールドの値が前記シーケンスの第１のタイマーカウント値に実質上等しいとき、前記第１のデータの処理を開始する［１］記載の集積回路。
［４］ウォールクロックタイマーをさらに具備し、前記第１のタスク命令は、前記第１のタスク命令が、前記ウォールクロックタイマーにより示されるような第１の特定の時間において、前記第１のサブ回路により実行されるようにする、第１のタイマーカウント値を含んでいる［１］記載の集積回路。
［５］前記ウォールクロックタイマーはタスクマネージャを備え、前記ウォールクロックタイマーの前記タスクマネージャは、前記第２のバスを通して、前記メモリ中に記憶されているタイマータスクリストからタスク命令を読み取るように適合されている［４］記載の集積回路。
［６］前記第１のタスクマネージャは第１のポインタレジスタを備え、前記プロセッサは、前記第２のバスを通して、前記第１のタスクマネージャの前記第１のポインタレジスタ中に第１のポインタ値を書き込むように適合され、前記第１のポインタ値は、前記第１のタスクリストを含む、前記メモリの循環バッファ部分における位置をポイント指定する［１］記載の集積回路。
［７］前記第１のタスクマネージャは、前記第１のタスクリストからのタスク命令を読み取ることにより、前記第１のポイントレジスタの書き込みに応答する［６］記載の集積回路。
［８］前記第２のタスクリストは、第３のタスク命令を含み、前記第２のタスクマネージャは、前記第２のバスを通して、前記メモリから前記第３のタスク命令を読み取って、前記第３のタスク命令を解釈し、前記第１の処理回路から受け取る信号のアサート時に、前記第２の処理回路を開始させることにより、前記第３のタスク命令を実行する［１］記載の集積回路。
［９］前記集積回路からの信号を出力するように適合されている第３の処理回路と、
前記第２のバスを通して、前記メモリから第３のタスクリストの第３のタスク命令を読み取って、前記第３のタスク命令を解釈し、前記解釈の結果に基づいて前記第３の処理回路を構成するように適合されている第３のタスクマネージャとを備える第３のサブ回路をさらに具備する［１］記載の集積回路。
［１０］データムーバーエンジンと、
前記第２のバスを通して、前記メモリから第３のタスクリストの第３のタスク命令を読み取って、前記第３のタスク命令を解釈し、前記解釈の結果に基づいて前記データムーバーエンジンを構成するように適合されている第３のタスクマネージャとを備える第３のサブ回路をさらに具備する［１］記載の集積回路。
［１１］前記第２のバスは、
前記プロセッサを、前記第１のタスクマネージャおよび前記第２のタスクマネージャ中のポインタレジスタに結合させる第１のサブバスと、
前記メモリを、前記第１のタスクマネージャと、前記第２のタスクマネージャとに結合させる第２のサブバスとを備え、
前記プロセッサは、前記第１のサブバスを通して、前記ポインタレジスタ中にポインタ値を書き込み、
前記第１のタスクマネージャおよび前記第２のタスクマネージャは、前記第２のサブバスを通して、前記メモリからタスク命令を読み取る［１］記載の集積回路。
［１２］前記メモリと、前記第１のバスと、前記プロセッサは、ともに密結合メモリ（ＴＣＭ）システムを形成する［１］記載の集積回路。
［１３］前記メモリが、前記第２のバスを介して、前記第１のタスクマネージャおよび前記第２のタスクマネージャによりアクセス可能であり、さらに小さいメモリアクセス待ち時間で、前記メモリは、前記第１のバスを介して、前記プロセッサによりアクセス可能である［１］記載の集積回路。
［１４］前記第１の処理回路および前記第２の処理回路は、命令をフェッチしない専用ハードウェア回路である［１］記載の集積回路。
［１５］前記第１のタスク命令は、発信元アドレスフィールドおよび宛先アドレスフィールドを含み、前記発信元アドレスフィールド中の発信元アドレス値は、前記第１のバッファにおける発信元位置を示し、前記宛先アドレスフィールド中の宛先アドレス値は、前記第２のバッファにおける宛先位置を示している［１］記載の集積回路。
［１６］前記プロセッサは、前記第１のサブ回路が第１のタスク命令を実行している間に、前記第１のタスクリスト中に第３のタスク命令を書き込む［１］記載の集積回路。
［１７］前記第１のサブ回路は、前記第１のタスクリストからプッシュタスク命令を読み取って、前記プッシュタスク命令を実行し、前記第１のサブ回路による前記プッシュタスク命令の実行は、前記第１のサブ回路に、前記第２のバスを通して、前記メモリに情報を書き込むようにさせる［１］記載の集積回路。
［１８］集積回路において、
第１のバスを介してメモリに密に結合されているプロセッサを備える密結合メモリ（ＴＣＭ）システムと、
タイマーと、
複数のサブ回路とを具備し、
前記メモリは、複数のタスクリストを記憶し、
各サブ回路は、第２のバスを介して、前記サブ回路に対応するタスクリストからタスク命令を読み取って、前記タスク命令を実行し、前記タスクリストは、サブ回路により実行されるときに、前記サブ回路により前記メモリ中に情報が書き込まれるようにするプッシュタスク命令を含み、前記タスクリストは、サブ回路により実行されるときに、構成タスク命令により決定される特定の方法で前記サブ回路を、構成させる構成タスク命令を含み、前記タスクリストは、タイマーカウントフィールドを備えるタイムスタンプタスク命令を含み、前記タイムスタンプタスク命令の実行は、前記タイマーカウントフィールド中のタイマーカウント値により示される時間において、サブ回路により開始され、前記タスクリストは、ハードウェア信号イベントタスク命令を含み、前記ハードウェア信号イベントタスク命令の実行は、別のサブ回路によって発生される信号のアサート時にサブ回路により開始される集積回路。
［１９］方法において、
メモリ中に、第１のタスクリストおよび第２のタスクリストを記憶させることと、
第１のサブ回路が、第２のバスを通して、前記メモリから前記第１のタスクリストの第１のタスク命令を読み取ることと、
前記第１のサブ回路が、前記第１のタスク命令により示される第１の動作を実行することと、
第２のサブ回路が、前記第２のバスを通して、前記メモリから前記第２のタスクリストの第２のタスク命令を読み取ることと、
前記第２のサブ回路が、前記第２のタスク命令により示される第２の動作を実行することとを含み、
プロセッサと、第１のバスと、前記メモリは、密結合メモリ（ＴＣＭ）システムを形成し、
前記プロセッサと、前記第１のバスと、前記第２のバスと、前記メモリと、前記第１のサブ回路と、前記第２のサブ回路は、集積回路の一部である方法。
［２０］前記第１の動作は、前記第１のサブ回路がデータをバッファ中に書き込むことを含み、前記第２の動作は、前記第２のサブ回路が前記データを前記バッファから読み取ることを含んでいる［１９］記載の方法。
［２１］前記第１のタスク命令は、宛先アドレスフィールドを備え、前記宛先アドレスフィールド中の宛先アドレス値は、前記第１のサブ回路が前記データを書き込む、前記バッファ中の位置を示す［２０］記載の方法。
［２２］前記第２のタスク命令は、発信元アドレスフィールドを備え、前記発信元アドレスフィールド中の発信元アドレス値は、前記第２のサブ回路が前記データを読み取る、前記バッファ中の位置を示す［２０］記載の方法。
［２３］前記メモリの前記第１のタスクリスト中にタイムスタンプタスク命令を記憶させることをさらに含み、前記タイムスタンプタスク命令はタイマーカウントフィールドを有し、前記第１のサブ回路による前記タイムスタンプタスク命令の実行は、前記タイマーカウントフィールド中の値により示される時間において開始される［１９］記載の方法。
［２４］前記第１のタスクリスト中にプッシュタスク命令を記憶させることをさらに含み、前記第１のサブ回路による前記プッシュタスク命令の実行は、前記第１のサブ回路が、前記第２のバスを通して、前記メモリに情報を書き込む結果となる［１９］記載の方法。
［２５］装置において、
第１のタスクリストおよび第２のタスクリストを記憶するメモリと、
第１のバスを介して、前記メモリに密に結合されているプロセッサと、
第２のバスと、
前記第２のバスを通して、前記メモリから前記第１のタスクリストのタスク命令を読み取って、前記第１のタスクリストのタスク命令により示される第１の動作を実行する第１の手段と、
前記第２のバスを通して、前記メモリから前記第２のタスクリストのタスク命令を読み取って、前記第２のタスクリストのタスク命令により示される第２の動作を実行する第２の手段とを具備し、
前記第１の手段は、前記第１のタスクリストのタスク命令以外の何らかの命令をフェッチすることなく、前記第１の動作を実行し、
前記第２の手段は、前記第２のタスクリストのタスク命令以外の何らかの命令をフェッチすることなく、前記第２の動作を実行する装置。
［２６］バッファをさらに具備し、
前記第１の手段は、前記第１のタスクリストのタスク命令中のフィールドにより示される位置において、前記バッファ中にデータを書き込み、前記第２の手段は、前記第２のタスクリストのタスク命令中のフィールドにより示される位置より、前記バッファから前記データを読み取る［２５］記載の装置。
［２７］前記プロセッサは、マルチコアプロセッサとマルチスレッドプロセッサとから成るグループから選ばれる［２５］記載の装置。
［２８］コンピュータプログラムプロダクトにおいて、
第１のサブ回路に、第１のタスクリスト中のタスク命令により示される第１の組の動作を実行させるための第１のタスクリストと、
第２のサブ回路に、第２のタスクリスト中のタスク命令により示される第２の組の動作を実行させるための第２のタスクリストと、
プロセッサに、第１のバスを通して、コンピュータ読取可能媒体中に前記第１のタスクリストおよび前記第２のタスクリストを維持させるためのコードとを含むコンピュータ読取可能媒体を具備し、
前記第１のサブ回路は、第２のバスを通して、前記コンピュータ読取可能媒体から前記タスク命令を読み取り、
前記第２のサブ回路は、前記第２のバスを通して、前記コンピュータ読取可能媒体から前記タスク命令を読み取るコンピュータプログラムプロダクト。
［２９］前記第１のタスクリストおよび前記第２のタスクリストは、タイマーカウントフィールドを備えるタイムスタンプタスク命令を含み、前記第１のタスクリストおよび前記第２のタスクリストはまた、サブ回路により前記コンピュータ読取可能媒体中に情報が書き込まれるようにするプッシュタスク命令を含み、前記第１のタスクリストおよび前記第２のタスクリストは、発信元アドレスフィールドおよび宛先アドレスフィールドを備えるタスク命令を含んでいる［２８］記載のコンピュータプログラムプロダクト。
［３０］前記コンピュータ読取可能媒体は、前記プロセッサにより実行されるプログラムコードを記憶するプログラムメモリの容量を備え、前記プロセッサに結合されているキャッシュメモリをさらに備え、前記第１のタスクリストおよび前記第２のタスクリストは前記キャッシュメモリ中に記憶される［２８］記載のコンピュータプログラムプロダクト。
【図１】
0005496999.tif 000002
【図２】
0005496999.tif 000003
【図３】
0005496999.tif 000004
【図４】
0005496999.tif 000005
【図５】
0005496999.tif 000006
【図６】
0005496999.tif 000007
【図７】
0005496999.tif 000008
【図８】
0005496999.tif 000009
【図９】
0005496999.tif 000010
【図１０】
0005496999.tif 000011
【図１１】
0005496999.tif 000012
【図１２Ａ】
0005496999.tif 000013
【図１２Ｂ】
0005496999.tif 000014
【図１２Ｃ】
0005496999.tif 000015
【図１２Ｄ】
0005496999.tif 000016
【図１２Ｅ】
0005496999.tif 000017
【図１２Ｆ】
0005496999.tif 000018
【図１２Ｇ】
0005496999.tif 000019
【図１２Ｈ】
0005496999.tif 000020
【図１２Ｉ】
0005496999.tif 000021
【図１２Ｊ】
0005496999.tif 000022
【図１２Ｋ】
0005496999.tif 000023
【図１３】
0005496999.tif 000024
【図１４】
0005496999.tif 000025
【図１５】
0005496999.tif 000026
【図１６】
0005496999.tif 000027
【図１７】
0005496999.tif 000028
【図１８】
0005496999.tif 000029