【手続補正書】
【提出日】平成24年1月25日(2012.1.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
様々なアプリケーションプログラムのためのソフトウェア計算命令に適応するための柔軟なデータパイプラインアーキテクチャであって、
前記データパイプラインアーキテクチャは、
パイプラインステージの少なくとも一部が数学的実行ユニットであり、少なくとも一部がメモリユニットである複数のパイプラインステージを有するプログラマブル埋め込みプロセッサと、
相互接続スイッチマトリックスであって、各前記パイプラインステージに直接的に接続されて、前記パイプラインステージ間の直接的な相互接続を形成可能であり、前記パイプラインステージ間の直接的な相互接続は、任意の数および任意の順序で前記パイプラインステージを相互に接続するように、少なくともクロックサイクルごとに様々なアプリケーション命令シーケンスに応じて変えることができる相互接続スイッチマトリックスと、
を備え、
前記各実行ユニットは複数の論理回路を備え、前記複数の論理回路は、マルチビット算術演算及び論理演算を異なる精度で実施するように、異なる階層型アーキテクチャ構造に相互接続可能であり、
各前記実行ユニットは、前記論理回路を前記実行ユニットにおいて異なる階層型アーキテクチャ構造に構成するための制御設定をロード可能なプログラムＲＡＭを備える、データパイプラインアーキテクチャ。
【請求項２】
請求項１に記載のデータパイプラインアーキテクチャであって、
前記論理回路は、マルチビット算術演算及び論理演算を異なる精度で実施するように、クロックサイクルごとに、異なる階層型アーキテクチャ構造に構成可能である、データパイプラインアーキテクチャ。
【請求項３】
請求項２に記載のデータパイプラインアーキテクチャであって、
数学的実行ユニットは、実行時に、８ビット、１６ビット、３２ビット、及び／又は８ビットのその他の倍数の、算術演算及び論理演算を実施するようにプログラムされ、実施される演算に応じて、実行ユニット内部の論理回路は、命令シーケンスに基づいて、クロックサイクルごとに、並列演算を実施するために独立したユニットに分割されるか、又は直列演算を実施するために接続したユニットとして用意されるか、又はより大規模な演算を階層型構造で実施するために統合されて（１つ又は複数の）更に大きなユニットに形成されるか、のいずれかであるように設定されるデータパイプラインアーキテクチャ。
【請求項４】
請求項３に記載のデータパイプラインアーキテクチャであって、
各実行ユニットは、合計で２n個の８×８ＡＬＵ及び／又は８×８乗算器を含み、各８×８ＡＬＵ又は８×８乗算器は、その機能性を制御する対応する制御レジスタを有し、実行ユニット全体が一レベルずつ重なるように構成され、ｎが偶数であるときは（８×２n/2）×（８×２n/2）個のユニットを、ｎが奇数であるときは（８×２(n-1)/2）×（８×２(n+1)/2）個のユニットを形成するべく合計で（ｎ＋１）のレベルを有するように、各８×１６ユニットは、２つの８×８ＡＬＵ又は８×８乗算器を、８×８乗算結果に基づいて８×１６乗算結果を計算するための専用の回路ブロックによって相互に接続することによって形成され、各１６×１６ユニットは、２つの８×１６ユニットを、８×１６乗算結果に基づいて１６×１６乗算結果を計算するための専用の回路ブロックによって相互に接続することによって形成されるデータパイプラインアーキテクチャ。
【請求項５】
請求項４に記載のデータパイプラインアーキテクチャであって、
８×８ＡＬＵは、１つのクロックサイクル内で以下の２つの機能：
・結果を左又は右に０〜７ビットシフト又は回転される、加算演算、減算演算、又は論理演算であって、各層が、
層１：演算無し
層２：加算演算、減算演算、ビット単位の論理演算、又は設定に応じて演算無し
層３：左に１ビットシフト、又は設定に応じて演算無し
層４：左に２ビットシフト、又は設定に応じて演算無し
層５：左に４ビットシフト、又は設定に応じて演算無し
層６：右に１ビットシフト、又は設定に応じて演算無し
層７：右に２ビットシフト、又は設定に応じて演算無し
しとと  層８：右に４ビットシフト、又は設定に応じて演算無し
を実施する演算、並びに
・８ビット×８ビット乗算であって、各層が、
層１：８ビット入力と１ビット入力とのビット単位の論理ＡＮＤ
層２〜８の各層：８ビット入力と１ビット入力とのビット単位のＡＮＤに、８ビットの加算が続き、更に１ビットの右が続き、これらは全て、８ビット×８ビット乗算における繰り返しステップの１つを完了させること、
を実施する演算、
のうちの１つを実施するようにプログラムされた８層の回路系を含むデータパイプラインアーキテクチャ。
【請求項６】
請求項４に記載のデータパイプラインアーキテクチャであって、
各実行ユニットは、シフト又は回転を実施するための階層型構造を用い、シフト又は回転のための構造全体が一レベルずつ重なるように構成され、ｎ個の８×８ＡＬＵを伴う８ｎビットのシフタを形成するように、８×１６ＡＬＵにおける各１６ビットシフト／回転構造は、８×８ＡＬＵにおける２つの８ビットシフト／回転構造を追加のマルチプレクサによって相互に接続することによって形成され、１６×１６ＡＬＵにおける各３２ビットシフト／回転構造は、８×１６ＡＬＵにおける２つの１６ビットシフト／回転構造を追加のマルチプレクサによって相互に接続することによって形成されるデータパイプラインアーキテクチャ。
【請求項７】
請求項４に記載のデータパイプラインアーキテクチャであって、
実行ユニット全体は、複数の階層レベルを含み、一レベルにある各ユニットは、下のレベルにある２つのサブユニットと追加の回路系とによって構成されるデータパイプラインアーキテクチャ。
【請求項８】
内部パイプラインステージを有するプログラマブル埋め込みプロセッサであって、
前記パイプラインステージの少なくとも一部が数学的実行ユニットであり、少なくとも一部がメモリユニットであり、
各前記パイプラインステージは、相互接続スイッチマトリックスに直接的に接続されて、前記相互接続スイッチマトリックスは、前記パイプラインステージ間の直接的な相互接続を形成可能であり、
前記パイプラインステージ間の直接的な相互接続は、任意の数および任意の順序で前記パイプラインステージを相互に接続するように、クロックサイクルごとの速さで様々なアプリケーション命令シーケンスに応じて変えることができ、
各前記実行ユニットは複数の論理回路を備え、前記複数の論理回路は、マルチビット算術演算及び論理演算を異なる精度で実施するように、異なる階層型アーキテクチャ構造に相互接続可能であり、
各前記実行ユニットは、前記論理回路を前記実行ユニットにおいて異なる階層型アーキテクチャ構造に構成するための制御設定をロード可能なプログラムＲＡＭを備える
プロセッサ。
【請求項９】
請求項８に記載のプロセッサであって、
前記論理回路は、マルチビット算術演算及び論理演算を異なる精度で実施するように、クロックサイクルごとに、異なる階層型アーキテクチャ構造に構成可能であるプロセッサ。
【請求項１０】
請求項８に記載のプロセッサであって、
数学的実行ユニットは、実行時に、８ビット、１６ビット、３２ビット、及び／又は８ビットのその他の倍数の、算術演算及び論理演算を実施するようにプログラムされ、実施される演算に応じて、実行ユニット内部の論理回路は、命令シーケンスに基づいて、クロックサイクルごとに、並列演算を実施するために独立したユニットに分割されるか、又は直列演算を実施するために接続したユニットとして用意されるか、又はより大規模な演算を階層型構造で実施するために統合されて（１つ又は複数の）更に大きなユニットに形成されるか、のいずれかであるように設定されるプロセッサ。
【請求項１１】
請求項１０に記載のプロセッサであって、
各実行ユニットは、合計で２n個の８×８ＡＬＵ及び／又は８×８乗算器を含み、各８×８ＡＬＵ又は８×８乗算器は、その機能性を制御する対応する制御レジスタを有し、前記実行ユニット全体が一レベルずつ重なるように構成され、ｎが偶数であるときは（８×２n/2）×（８×２n/2）個のユニットを、ｎが奇数であるときは（８×２(n-1)/2）×（８×２(n+1)/2）個のユニットを形成するべく合計で（ｎ＋１）のレベルを有するように、各８×１６ユニットは、２つの８×８ＡＬＵ又は８×８乗算器を、８×８乗算結果に基づいて８×１６乗算結果を計算するための専用の回路ブロックによって相互に接続することによって形成され、各１６×１６ユニットは、２つの８×１６ユニットを、８×１６乗算結果に基づいて１６×１６乗算結果を計算するための専用の回路ブロックによって相互に接続することによって形成されるプロセッサ。
【請求項１２】
請求項１１に記載のプロセッサであって、
８×８ＡＬＵは、１つのクロックサイクル内で以下の２つの機能：
・結果を左又は右に０〜７ビットシフト又は回転される、加算演算、減算演算、又は論理演算であって、各層が、
層１：演算無し
層２：加算演算、減算演算、ビット単位の論理演算、又は設定に応じて演算無し
層３：左に１ビットシフト、又は設定に応じて演算無し
層４：左に２ビットシフト、又は設定に応じて演算無し
層５：左に４ビットシフト、又は設定に応じて演算無し
層６：右に１ビットシフト、又は設定に応じて演算無し
層７：右に２ビットシフト、又は設定に応じて演算無し
層８：右に４ビットシフト、又は設定に応じて演算無し
を実施する演算、並びに
・８ビット×８ビット乗算であって、各層が、
層１：８ビット入力と１ビット入力とのビット単位の論理ＡＮＤ
層２〜８の各層：８ビット入力と１ビット入力とのビット単位の論理ＡＮＤに、８ビットの加算が続き、更に１ビットの右が続き、これらは全て、８ビット×８ビット乗算における繰り返しステップの１つを完了させること、
を実施する演算、
のうちの１つを実施するようにプログラムされた８層の回路系を含むプロセッサ。
【請求項１３】
請求項１１に記載のプロセッサであって、
各実行ユニットは、シフト又は回転を実施するための階層型構造を用い、シフト又は回転のための構造全体が一レベルずつ重なるように構成され、ｎ個の８×８ＡＬＵを伴う８ｎビットのシフタを形成するように、８×１６ＡＬＵにおける各１６ビットシフト／回転構造は、８×８ＡＬＵにおける２つの８ビットシフト／回転構造を追加のマルチプレクサによって相互に接続することによって形成され、１６×１６ＡＬＵにおける各３２ビットシフト／回転構造は、８×１６ＡＬＵにおける２つの１６ビットシフト／回転構造を追加のマルチプレクサによって相互に接続することによって形成されるプロセッサ。
【請求項１４】
請求項１１に記載のプロセッサであって、
実行ユニット全体は、複数の階層レベルを含み、一レベルにある各ユニットは、下のレベルにある２つのサブユニットと追加の回路系とによって構成されるプロセッサ。
【請求項１５】
様々なアプリケーションプログラムのためのソフトウェアアルゴリズムに適応する柔軟なデータパイプライン方法であって、
パイプラインステージの少なくとも一部が数学的実行ユニットであり、少なくとも一部がメモリユニットである内部パイプラインステージを伴うプログラマブル埋め込みプロセッサであって、各前記実行ユニットが複数の論理回路を備え、各前記実行ユニットが、前記論理回路を前記実行ユニットにおいて異なる階層型アーキテクチャ構造に相互接続するための制御設定をロード可能なプログラムＲＡＭを備え、各前記パイプラインステージが相互接続スイッチマトリックスに直接的に接続されるようなプロセッサをプログラムすることと、
前記相互接続スイッチマトリックスにより形成され、任意の数および任意の順序で前記パイプラインステージを相互に接続するようにクロックサイクルごとの速さで様々なアプリケーション命令シーケンスに応じて変えることができる前記パイプラインステージ間の直接的な相互接続を形成することと、
前記実行ユニットの前記プログラムＲＡＭ内に制御設定をロードして、前記実行ユニットによりマルチビット算術演算及び論理演算を異なる精度で実施させるように、前記論理回路を異なる階層型アーキテクチャ構造に相互接続することと、
所望のメモリアドレッシングモードで且つマルチレベル階層方式でメモリ読み出し及びメモリ書き込みを実施するようにメモリユニットを設定することと
を備える方法。
【請求項１６】
請求項１５に記載の方法であって、
前記論理回路は、マルチビット算術演算及び論理演算を異なる精度で実施するように、クロックサイクルごとに、異なる階層型アーキテクチャ構造に構成可能である方法。
【請求項１７】
請求項１５に記載の方法であって、
数学的実行ユニットは、実行時に、８ビット、１６ビット、３２ビット、及び／又は８ビットのその他の倍数の、算術演算及び論理演算を実施するようにプログラムされ、実施される演算に応じて、実行ユニット内部の論理回路は、命令シーケンスに基づいて、クロックサイクルごとに、並列演算を実施するために独立したユニットに分割されるか、又は直列演算を実施するために接続したユニットとして用意されるか、又はより大規模な演算を階層型構造で実施するために統合されて（１つ又は複数の）更に大きなユニットに形成されるか、のいずれかであるように設定される方法。
【請求項１８】
請求項１７に記載の方法であって、
各実行ユニットは、合計で２n個の８×８ＡＬＵ及び／又は８×８乗算器を含み、各８×８ＡＬＵ又は８×８乗算器は、その機能性を制御する対応する制御レジスタを有し、前記実行ユニット全体が一レベルずつ重なるように構成され、ｎが偶数であるときは（８×２n/2）×（８×２n/2）個のユニットを、ｎが奇数であるときは（８×２(n-1)/2）×（８×２(n+1)/2）個のユニットを形成するべく合計で（ｎ＋１）のレベルを有するように、各８×１６ユニットは、２つの８×８ＡＬＵ又は８×８乗算器を、８×８乗算結果に基づいて８×１６乗算結果を計算するための専用の回路ブロックによって相互に接続することによって形成され、各１６×１６ユニットは、２つの８×１６ユニットを、８×１６乗算結果に基づいて１６×１６乗算結果を計算するための専用の回路ブロックによって相互に接続することによって形成される方法。
【請求項１９】
請求項１８に記載の方法であって、
８×８ＡＬＵは、１つのクロックサイクル内で以下の２つの機能：
・結果を左又は右に０〜７ビットシフト又は回転される、加算演算、減算演算、又は論理演算であって、各層が、
層１：演算無し
層２：加算演算、減算演算、ビット単位の論理演算、又は設定に応じて演算無し
層３：左に１ビットシフト、又は設定に応じて演算無し
層４：左に２ビットシフト、又は設定に応じて演算無し
層５：左に４ビットシフト、又は設定に応じて演算無し
層６：右に１ビットシフト、又は設定に応じて演算無し
層７：右に２ビットシフト、又は設定に応じて演算無し
層８：右に４ビットシフト、又は設定に応じて演算無し
を実施する、演算、並びに
・８ビット×８ビット乗算であって、各層が、
層１：８ビット入力と１ビット入力とのビット単位の論理ＡＮＤ
層２〜８の各層：８ビット入力と１ビット入力とのビット単位の論理ＡＮＤに、８ビットの加算が続き、更に１ビットの右が続き、これらは全て、８ビット×８ビット乗算における繰り返しステップの１つを完了させること、
を実施する演算、
のうちの１つを実施するようにプログラムされた８層の回路系を含む方法。
【請求項２０】
請求項１８に記載の方法であって、
各実行ユニットは、シフト又は回転を実施するための階層型構造を用い、シフト又は回転のための構造全体が一レベルずつ重なるように構成され、ｎ個の８×８ＡＬＵを伴う８ｎビットのシフタを形成するように、８×１６ＡＬＵにおける各１６ビットシフト／回転構造は、８×８ＡＬＵにおける２つの８ビットシフト／回転構造を追加のマルチプレクサによって相互に接続することによって形成され、１６×１６ＡＬＵにおける各３２ビットシフト／回転構造は、８×１６ＡＬＵにおける２つの１６ビットシフト／回転構造を追加のマルチプレクサによって相互に接続することによって形成される方法。
【請求項２１】
請求項１８に記載の方法であって、
実行ユニット全体は、複数の階層レベルを含み、一レベルにある各ユニットは、下のレベルにある２つのサブユニットと追加の回路系とによって構成される方法。