【手続補正書】
【提出日】平成24年3月6日(2012.3.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
組込みプロセッサであって、
Ａ．複数の処理ユニットであって、該複数の処理ユニットの各々が１つ以上のプロセスまたはスレッド（１つ以上のプロセスまたはスレッドを集合的に「スレッド」という）を実行し、１以上の処理ユニットが複数のスレッドを実行する、複数の処理ユニットと、
Ｂ．該複数の処理ユニットによって共有され、かつ、該複数の処理ユニットと通信接続された１つ以上の実行ユニットであって、該実行ユニットは、該スレッドからの命令を実行する、１つ以上の実行ユニットと、
Ｃ．イベントをそのイベントが関連付けられているそれぞれのスレッドに伝達するイベント伝達メカニズムと
を備え、
該イベント伝達メカニズムは、
ｉ．  該複数の処理ユニットと通信接続され、
ｉｉ．  そのような各イベントを、該処理ユニットによる命令を実行することなく、代わりに、イベントを待ち行列にルーティングするゲートおよびラッチのいずれかを用いて、該それぞれのスレッドに伝達し、該待ち行列はそれ自体、伝達されるイベントを待ち行列に入れる一連のゲートおよび専用バッファとして随意に実装されており、
該イベント伝達メカニズムは、イベントからスレッドへのルックアップに基づいて該イベントを処理ユニットに伝達して該それぞれのスレッドに伝達し、
Ｄ．該イベントは、ハードウェアイベント、ソフトウェアイベント、およびメモリイベントのいずれかを含み、１以上のイベントが１つのスレッドにより他のスレッドを起こすのに用いられ得る、組込みプロセッサ。
【請求項２】
前記イベントが伝達される前記スレッドは、該イベントを、そのスレッドの外での命令の実行をすることなく処理する、請求項１に記載の組込みプロセッサ。
【請求項３】
前記実行ユニットは、前記スレッドからの命令を、どのスレッドからの命令であるかを知ることを必要とせずに実行する、請求項１に記載の組込みプロセッサ。
【請求項４】
各スレッドは、そのスレッドが生きている間、同じ処理ユニット上での実行を強いられるか、または強いられない、請求項１に記載の組込みプロセッサ。
【請求項５】
前記処理ユニットの少なくとも１つは、仮想処理ユニットである、請求項１に記載の組込みプロセッサ。
【請求項６】
組込みプロセッサであって、
Ａ．複数の仮想処理ユニットであって、各々が１つ以上のプロセスまたはスレッド（１つ以上のプロセスまたはスレッドを集合的に「スレッド」という）を実行し、各スレッドは、該スレッドが生きている間、同じ処理ユニット上での実行を強いられるか、または強いられない、複数の仮想処理ユニットと、
Ｂ．複数の実行ユニットと、
Ｃ．該複数の処理ユニットおよび該複数の実行ユニットと通信接続されているパイプラインコントロールであって、該パイプラインコントロールは、該スレッドのうちの複数のものからの命令を、該実行ユニットのうちの複数のものでの同時実行のために起動する、パイプラインコントロールと、
Ｄ．該複数の処理ユニットと通信接続され、かつ、イベントをそのイベントが関連付けられているそれぞれのスレッドに、該処理ユニットによる命令を実行することなく、代わりに、イベントを待ち行列にルーティングするゲートおよびラッチのいずれかを用いて伝達するイベント伝達メカニズムであって、該待ち行列はそれ自体、伝達されるイベントを待ち行列に入れる一連のゲートおよび専用バッファとして随意に実装されており、該イベント伝達メカニズムは、イベントからスレッドへのルックアップに基づいて該イベントを処理ユニットに伝達して該それぞれのスレッドに伝達する、イベント伝達メカニズムと
を備え、
Ｅ．該イベントは、ハードウェアイベント、ソフトウェアイベントおよびメモリイベントのいずれかを含む、組込みプロセッサ。
【請求項７】
前記パイプラインコントロールは、複数の命令キューを備え、各々は１つの仮想処理ユニットに関連付けられている、請求項６に記載の組込みプロセッサ。
【請求項８】
前記パイプラインコントロールは、前記命令キューからの命令クラスをデコードする、請求項７に記載の組込みプロセッサ。
【請求項９】
前記パイプラインコントロールは、前記命令キューからディスパッチされた前記命令のための、リソース供給ソースと宛先レジスタとに対する前記処理ユニットによるアクセスを制御する、請求項７に記載の組込みプロセッサ。
【請求項１０】
前記実行ユニットは、命令アドレスの生成、アドレス変換および命令のフェッチのいずれかを担う分岐実行ユニットを備える、請求項７に記載の組込みプロセッサ。
【請求項１１】
前記分岐実行ユニットは、前記仮想処理ユニットの状態を維持する、請求項１０に記載の組込みプロセッサ。
【請求項１２】
前記パイプラインコントロールは、前記仮想処理ユニットによる前記実行ユニットへのアクセスを制御する、請求項６に記載の組込みプロセッサ。
【請求項１３】
前記パイプラインコントロールは、各仮想処理ユニットのための前記命令キューが空になると、該仮想処理ユニットによって共有される分岐実行ユニットに信号を送る、請求項６に記載の組込みプロセッサ。
【請求項１４】
前記パイプラインコントロールは、前記実行ユニットをアイドル状態にして電力消費を減らす、請求項６に記載の組込みプロセッサ。
【請求項１５】
前記複数の実行ユニットは、整数ユニット、浮動ユニット、分岐ユニット、比較ユニット、およびメモリユニットのいずれかを備える、請求項６に記載の組込みプロセッサ。
【請求項１６】
組込みプロセッサシステムであって、
Ａ．複数の組込みプロセッサと、
Ｂ．該複数の組込みプロセッサ上で実行する複数の仮想処理ユニットであって、各仮想処理ユニットは、１つ以上のプロセスまたはスレッド（１つ以上のプロセスまたはスレッドを集合的に「スレッド」という）を、１つ以上の組込みプロセッサがその上で実行している複数のスレッドを持つように実行し、各スレッドは、そのスレッドが生きている間、同じ仮想処理ユニットおよび／あるいは同じプロセッサ上での実行を強いられるか、または強いられない、複数の仮想処理ユニットと、
Ｃ．該複数の仮想処理ユニットによって共有され、かつ、該複数の仮想処理ユニットと通信接続された１つ以上の実行ユニットであって、該実行ユニットは、該スレッドからの命令を実行し、該実行ユニットは、整数ユニット、浮動ユニット、分岐ユニット、比較ユニット、およびメモリ実行ユニットのいずれかを備える、１つ以上の実行ユニットと、
Ｄ．イベントをそのイベントが関連付けられているそれぞれのスレッドに伝達するイベント伝達メカニズムであって、前記イベント伝達メカニズムは、
ｉ    該複数の仮想処理ユニットと通信接続され、
ｉｉ  そのような各イベントを該それぞれのスレッドに、該仮想処理ユニットによる命令を実行することなく、代わりに、イベントを待ち行列にルーティングするゲートおよびラッチのいずれかを用いて伝達し、該待ち行列はそれ自体、伝達されるイベントを待ち行列に入れる一連のゲートおよび専用バッファとして随意に実装されている、イベント伝達メカニズムと
を備え、
該イベント伝達メカニズムは、イベントからスレッドへのルックアップに基づいて該イベントを処理ユニットに伝達して該それぞれのスレッドに伝達し、１つ以上のイベントが１つのスレッドにより他のスレッドを起こすのに用いられ得る、組込みプロセッサシステム。
【請求項１７】
イベントが伝達される前記スレッドは、そのイベントを、そのスレッドの外での命令の実行をすることなく処理する、請求項１６に記載の組込みプロセッサシステム。
【請求項１８】
前記分岐ユニットは、前記スレッドのために実行されるべき命令のフェッチを担う、請求項１７に記載の組込みプロセッサシステム。
【請求項１９】
前記分岐ユニットは、命令アドレスの生成およびアドレス変換のいずれかをさらに担う、請求項１８に記載の組込みプロセッサシステム。
【請求項２０】
前記分岐ユニットは、前記それぞれの仮想処理ユニットの各々に対してスレッド状態を格納するスレッド状態ストアを備える、請求項１９に記載の組込みプロセッサシステム。
【請求項２１】
Ａ．前記複数の処理ユニットおよび前記複数の実行ユニットと通信接続されるパイプラインコントロールであって、前記パイプラインコントロールは、該実行ユニットのうちの複数のものの上での同時実行のために、該スレッドのうちの複数のものからの命令をディスパッチする、パイプラインコントロールを備え、
Ｂ．該パイプラインコントロールは、複数の命令キューであって、各々がそれぞれの仮想処理ユニットと関連付けられている、複数の命令キューを備え、
Ｃ．前記分岐実行ユニットによってフェッチされた命令は、対応するスレッドが実行される前記それぞれの仮想処理ユニットと関連付けられた前記命令キュー内に置かれる、請求項１７に記載の組込みプロセッサシステム。
【請求項２２】
１つ以上の命令が、前記命令キューを等しいレベルに保つという目的で、前記１つのスレッドに対して一度にフェッチされる、請求項２１に記載の組込みプロセッサシステム。
【請求項２３】
前記パイプラインコントロールは、実行するために所与の命令キューから１つ以上の命令を一度にディスパッチする、請求項２２に記載の組込みプロセッサシステム。
【請求項２４】
前記パイプラインコントロールによって所与の時点に所与の命令キューからディスパッチされた多数の命令は、そのキューの一連の命令におけるストップフラグによってコントロールされる、請求項２３に記載の組込みプロセッサシステム。
【請求項２５】
前記パイプラインコントロールが１つ以上のスレッドからの複数の命令を同時に起動して、前記実行ユニットが該複数の命令を同時に実行する、請求項２１に記載の組込みプロセッサシステム。
【請求項２６】
組込みプロセッサであって、
Ａ．複数の処理ユニットであって、該複数の処理ユニットの各々が１つ以上のプロセスまたはスレッド（１つ以上のプロセスまたはスレッドを集合的に「スレッド」という）を実行し、１つ以上の処理ユニットが複数のスレッドを実行する、複数の処理ユニットと、
Ｂ．イベントをそのイベントが関連付けられているそれぞれのスレッドに伝達するイベント伝達メカニズムであって、前記イベント伝達メカニズムは、
ｉ    該複数の処理ユニットと通信接続され、
ｉｉ  そのようなイベントを該それぞれのスレッドに、該処理ユニットによる命令を実行することなく、代わりに、イベントを待ち行列にルーティングするゲートおよびラッチのいずれかを用いて伝達し、該待ち行列はそれ自体、伝達されるイベントを待ち行列に入れる一連のゲートおよび専用バッファとして随意に実装されており、該イベント伝達メカニズムは、イベントからスレッドへのルックアップに基づいて該イベントを処理ユニットに伝達して該それぞれのスレッドに伝達する、イベント伝達メカニズムと
を備える、組込みプロセッサ。
【請求項２７】
イベントが伝達される前記スレッドは、そのイベントをそのスレッドの外での命令の実行をすることなく処理する、請求項２６に記載の組込みプロセッサ。
【請求項２８】
各スレッドは、そのスレッドが生きている間、同じ処理ユニット上での実行を強いられるか、または強いられない、請求項２６に記載の組込みプロセッサ。
【請求項２９】
前記処理ユニットの少なくとも１つは、仮想処理ユニットである、請求項２６に記載の組込みプロセッサ。
【請求項３０】
組込みプロセッサシステムであって、
Ａ．複数の組込みプロセッサと、
Ｂ．該複数の組込みプロセッサ上で実行する複数の仮想処理ユニットであって、各仮想処理ユニットは、１つ以上のプロセスまたはスレッド（１つ以上のプロセスまたはスレッドを集合的に「スレッド」という）を、１つ以上の組込みプロセッサがその上で実行している複数のスレッドを持つように実行する、複数の仮想処理ユニットと、
Ｃ．イベントをそのイベントが関連付けられているそれぞれのスレッドに伝達するイベント伝達メカニズムであって、該イベント伝達メカニズムは、
ｉ    該複数の仮想処理ユニットと通信接続され、
ｉｉ  そのような各イベントを該それぞれのスレッドに、該仮想処理ユニットによる命令を実行することなく、代わりに、イベントを待ち行列にルーティングするゲートおよびラッチのいずれかを用いて伝達し、該待ち行列はそれ自体、伝達されるイベントを待ち行列に入れる一連のゲートおよび専用バッファとして随意に実装されている、イベント伝達メカニズムと
を備え、
該イベント伝達メカニズムは、イベントからスレッドへのルックアップに基づいて該イベントを処理ユニットに伝達して該それぞれのスレッドに伝達し、１つ以上のイベントが１つのスレッドにより他のスレッドを起こすのに用いられ得る、組込みプロセッサシステム。
【請求項３１】
イベントが伝達される前記スレッドは、そのイベントをそのスレッドの外での命令の実行をすることなく処理する、請求項３０に記載の組込みプロセッサシステム。
【請求項３２】
各スレッドは、そのスレッドが生きている間、同じ処理ユニット上での実行を強いられるか、または強いられない、請求項３１に記載の組込みプロセッサシステム。