(57)【要約】【課題】  本発明は、光学センサ、アナログ−デジタル・コンバータ、複数の計算要素、および相互接続ネットワークを備えるデジタル・イメージ処理装置を提示する。【解決手段】  光学センサは物体像を検出イメージに変換し、このイメージはさらに、アナログ−デジタル・コンバータによりデジタル・イメージ情報に変換される。複数の計算要素は、第１の固定アーキテクチャを備える第１の計算要素および第２の固定アーキテクチャを備える第２の計算要素を含む。相互接続ネットワークは、複数の異なるイメージ処理機能を実行するように複数の計算要素を構成し、再構成することにより、デジタル・イメージ情報から処理済みデジタル・イメージを供給することができる。本発明は、例えば、デジタル・カメラ、スキャナ、プリンタ、または乾式コピー機として実現することができる。【選択図】図１
2005020722.tif 000002
【特許請求の範囲】
【請求項１】
デジタル・イメージ処理装置であって、
物体像を検出イメージに変換することができる光学センサと、
光学センサに結合され、検出イメージをデジタル・イメージ情報に変換することができるアナログ−デジタル・コンバータと、
複数の計算要素と、第１の固定アーキテクチャは第２の固定アーキテクチャと異なるものである第１の固定アーキテクチャを備える複数の計算要素のうちの第１の計算要素および第２の固定アーキテクチャを備える複数の計算要素のうちの第２の計算要素と、
複数の計算要素およびアナログ−デジタル・コンバータに結合され、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成することと、第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することによりデジタル・イメージ情報からの処理済みのデジタル・イメージを供給することができ、第１のイメージ処理機能は第２のイメージ処理機能と異なる、相互接続ネットワークを備えることを特徴とするデジタル・イメージ処理装置。
【請求項２】
さらに、
物体像を光学センサに送ることができる焦点合わせ手段を備える請求項１に記載のデジタル・イメージ処理装置。
【請求項３】
焦点合わせ手段は焦点合わせアセンブリを備え、焦点合わせアセンブリはさらに、レンズ、シャッター、絞り、および焦点合わせモータを備える請求項２に記載のデジタル・イメージ処理装置。
【請求項４】
光学センサは、電荷結合素子（ＣＣＤ）、電荷注入素子（ＣＩＤ）、光学相補型金属酸化シリコン（ＣＭＯＳ）アレイ、光学バイポーラ接合型トランジスタ（ＢＪＴ）アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイを含む複数の光学センサのうちの少なくとも１つである請求項１に記載のデジタル・イメージ処理装置。
【請求項５】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェースと、
アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるファインダ画面を備える請求項１に記載のデジタル・イメージ処理装置。
【請求項６】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェースと、
アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートとを備える請求項１に記載のデジタル・イメージ処理装置。
【請求項７】
さらに、
相互接続ネットワークに結合可能であり、処理済みデジタル・イメージを格納することができる第１のメモリを備える請求項１に記載のデジタル・イメージ処理装置。
【請求項８】
第１のメモリは選択的に取り外し可能なフラッシュ・メモリである請求項７に記載のデジタル・イメージ処理装置。
【請求項９】
さらに、
相互接続ネットワークに結合され、第１の構成情報および第２の構成情報を格納することができる第２のメモリを備える請求項７に記載のデジタル・イメージ処理装置。
【請求項１０】
第２のメモリは同期ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）である請求項１０に記載のデジタル・イメージ処理装置。
【請求項１１】
第１のメモリおよび第２のメモリは、フラッシュ・メモリ、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、ＦｅＲＡＭ、ＭＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、およびＥ２ＰＲＯＭを含む複数のメモリ・タイプのうちの少なくとも１つである請求項９に記載のデジタル・イメージ処理装置。
【請求項１２】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備える請求項１に記載のデジタル・イメージ処理装置。
【請求項１３】
処理済みデジタル・イメージは、複数の処理済みデジタル・イメージ・データ・パケットとして供給される請求項１に記載のデジタル・イメージ処理装置。
【請求項１４】
さらに、
相互接続ネットワークに結合され、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができるデジタル出力インターフェースを備える請求項１３に記載のデジタル・イメージ処理装置。
【請求項１５】
デジタル・イメージ情報は、複数のデジタル・イメージ情報データ・パケットとして供給される請求項１に記載のデジタル・イメージ処理装置。
【請求項１６】
さらに、
物体からの反射で物体像を形成する光を供給することができる光源を備える請求項１に記載のデジタル・イメージ処理装置。
【請求項１７】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージを有形の媒体に印刷することができるプリンタを備える請求項１に記載のデジタル・イメージ処理装置。
【請求項１８】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージを有形の媒体に転送することができる乾式コピー機を備える請求項１に記載のデジタル・イメージ処理装置。
【請求項１９】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器を備える請求項１に記載のデジタル・イメージ処理装置。
【請求項２０】
データ送信器は、アナログ（音声帯域）モデム、デジタル・モデム、デジタル加入者回線モデム、およびケーブル・モデムの複数のデータ送信器のうちの少なくとも１つである請求項１８に記載のデジタル・イメージ処理装置。
【請求項２１】
複数のイメージ処理機能は、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理、メディアン・フィルタ処理、局所重み付きメディアン・フィルタ処理、中心重み付きメディアン・フィルタ処理、ベクトル重み付きメディアン・フィルタ処理、マルチチャネル・イメージ回復、マルチフレーム・イメージ復元、反復イメージ復元、動き検出、動き推定、ローパス・フィルタ処理、マルチレート・フィルタ処理、ウェーブレット・ベースのマルチレート・フィルタ処理、オートフォーカス、コントラスト促進、ぼやけ除去などの機能うちの少なくとも２つを含む請求項１に記載のデジタル・イメージ処理装置。
【請求項２２】
第１の固定されたアーキテクチャおよび第２の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能のうち少なくとも２つを含む複数の特定のアーキテクチャから選択される請求項１に記載のデジタル・イメージ処理装置。
【請求項２３】
検出イメージは、物体像の輝度および色の変化に対応する電気的信号を含む請求項１に記載のデジタル・イメージ処理装置。
【請求項２４】
少なくとも１つの集積回路として実現される請求項１に記載のデジタル・イメージ処理装置。
【請求項２５】
デジタル・カメラとして実現される請求項１に記載のデジタル・イメージ処理装置。
【請求項２６】
スキャナ、プリンタ、または乾式コピー機のうち１つまたは複数として実現される請求項１に記載のデジタル・イメージ処理装置。
【請求項２７】
デジタル・イメージ処理装置であって、
物体像を検出イメージに変換することができる光学センサと、
光学センサに結合され、検出イメージを複数のデジタル・イメージ情報データ・パケットに変換することができるアナログ−デジタル・コンバータと、
アナログ−デジタル・コンバータに結合され、複数のデジタル・イメージ情報データ・パケットを受信することができる入力パイプライン・レジスタと、
複数のデジタル・イメージ情報データ・パケットを格納することができる第１のメモリと、
複数のイメージ処理タスクを処理し、複数のイメージ処理タスクのうちの第１のイメージ処理タスクを実行することが可能であり、複数のイメージ処理タスクのうちの第２のイメージ処理タスクを実行することが可能であり、第１のイメージ処理タスクは第２のイメージ処理タスクと異なることを判別することができるハードウェア・タスク・マネージャと、
入力パイプライン・レジスタ、第１のメモリ、およびハードウェア・タスク・マネージャに結合され、複数のデジタル・イメージ情報データ・パケットを第１のメモリに分配することができるデータ分配器と、
ハードウェア・タスク・マネージャおよび第１のメモリに結合され、第１のイメージ処理タスクを実行するように構成することができ、また複数のデジタル・イメージ情報データ・パケットを使用して第１のイメージ処理タスクを実行することができ、さらに第２のイメージ処理タスクを実行するように再構成することができ、また第２のイメージ処理タスクを実行することができ、さらに第１のイメージ処理タスクおよび第２のイメージ処理タスクの実行で得られる複数の対応する処理済みデジタル・イメージ・データ・パケットを生成することができる適応型実行ユニットと、
ハードウェア・タスク・マネージャ、適応型実行ユニット、および第１のメモリに結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットの経路を決定することができるデータ選択器と、
データ選択器に結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットを受信することができる出力パイプライン・レジスタを備えることを特徴とするデジタル・イメージ処理装置。
【請求項２８】
適応型実行ユニットは、
複数の計算要素と、第１の固定アーキテクチャは第２の固定アーキテクチャと異なるものである第１の固定アーキテクチャを備える複数の計算要素のうちの第１の計算要素および第２の固定アーキテクチャを備える複数の計算要素のうちの第２の計算要素と、
複数の計算要素に結合され、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成することができ、さらに第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することができ、第１のイメージ処理機能は第２のイメージ処理機能と異なる、複数のスイッチング要素を備えるデジタル・イメージ処理装置。
【請求項２９】
複数のスイッチング要素は、複数のマルチプレクサ、複数のデマルチプレクサ、および複数の経路選択要素で構成される請求項２８に記載のデジタル・イメージ処理装置。
【請求項３０】
入力パイプライン・レジスタは複数のデジタル・イメージ情報データ・パケットを受信することができ、複数のデジタル・イメージ情報データ・パケットのそれぞれのデジタル・イメージ情報データ・パケットは複数のフィールドを含み、複数のフィールドは経路選択情報用の第１のデータ・フィールド、セキュリティ情報用の第２のデータ・フィールド、肯定応答メッセージ、メモリ読み出し、メモリ書き込み、メモリ移動、またはメモリ・アドレスを指定するサービス・コード用の第３のデータ・フィールド、タスク指定を含む補助コード用の第４のデータ・フィールド、およびデジタル・イメージ情報データ・ワード用の第５のデータ・フィールドを含む請求項２７に記載のデジタル・イメージ処理装置。
【請求項３１】
ハードウェア・タスク・マネージャはさらに、適応型実行ユニットにより実行される複数のイメージ処理タスクのタスク・キューを生成することができる請求項２７に記載のデジタル・イメージ処理装置。
【請求項３２】
さらに、
物体像を光学センサに送ることができる焦点合わせ手段を備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項３３】
焦点合わせ手段は焦点合わせアセンブリを備え、焦点合わせアセンブリはさらに、レンズ、シャッター、絞り、および焦点合わせモータを備える請求項３２に記載のデジタル・イメージ処理装置。
【請求項３４】
光学センサは、電荷結合素子（ＣＣＤ）、電荷注入素子（ＣＩＤ）、光学相補型金属酸化シリコン（ＣＭＯＳ）アレイ、光学バイポーラ接合型トランジスタ（ＢＪＴ）アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイを含む複数の光学センサのうちの少なくとも１つである請求項２７に記載のデジタル・イメージ処理装置。
【請求項３５】
さらに、
相互接続ネットワークを介して出力パイプライン・レジスタに結合され、複数の処理済みデジタル・イメージ・データ・パケットを処理済みデジタル・イメージのアナログ形式に変換することができるアナログ出力インターフェースと、
アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるファインダ画面を備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項３６】
さらに、
相互接続ネットワークを介して出力パイプライン・レジスタに結合され、複数の処理済みデジタル・イメージ・データ・パケットを処理済みデジタル・イメージのアナログ形式に変換することができるアナログ出力インターフェースと、
アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートとを備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項３７】
さらに、
物体からの反射で物体像を形成する光を供給することができる光源を備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項３８】
さらに、
出力パイプライン・レジスタに結合され、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができるデジタル出力インターフェースを備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項３９】
さらに、
相互接続ネットワークを介してデジタル出力インターフェースに結合可能であり、選択的に取り外し可能であり、処理済みデジタル・イメージを格納することができる第２のメモリを備える請求項３８に記載のデジタル・イメージ処理装置。
【請求項４０】
さらに、
デジタル出力インターフェースに結合され、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備える請求項３８に記載のデジタル・イメージ処理装置。
【請求項４１】
さらに、
デジタル出力ポートに結合され、処理済みデジタル・イメージを有形の媒体に印刷することができるプリンタを備える請求項４０に記載のデジタル・イメージ処理装置。
【請求項４２】
さらに、
デジタル出力ポートに結合され、処理済みデジタル・イメージを有形の媒体に転送することができる乾式コピー機を備える請求項４０に記載のデジタル・イメージ処理装置。
【請求項４３】
さらに、
デジタル出力ポートに結合され、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器を備える請求項４０に記載のデジタル・イメージ処理装置。
【請求項４４】
さらに、
出力パイプライン・レジスタに結合され、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができ、さらに処理済みデジタル・イメージを出力することができるデジタル出力ポートを備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項４５】
複数のイメージ処理タスクは、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理、メディアン・フィルタ処理、局所重み付きメディアン・フィルタ処理、中心重み付きメディアン・フィルタ処理、ベクトル重み付きメディアン・フィルタ処理、マルチチャネル・イメージ回復、マルチフレーム・イメージ復元、反復イメージ復元、動き検出、動き推定、ローパス・フィルタ処理、マルチレート・フィルタ処理、ウェーブレット・ベースのマルチレート・フィルタ処理、オートフォーカス、コントラスト促進、ぼやけ除去などの機能うちの少なくとも２つを実行する機能を備える請求項２７に記載のデジタル・イメージ処理装置。
【請求項４６】
少なくとも１つの集積回路として実現される請求項２７に記載のデジタル・イメージ処理装置。
【請求項４７】
デジタル・カメラとして実現される請求項２７に記載のデジタル・イメージ処理装置。
【請求項４８】
スキャナ、プリンタ、または乾式コピー機のうち１つまたは複数として実現される請求項２７に記載のデジタル・イメージ処理装置。
【請求項４９】
デジタル・イメージ処理装置であって、
物体像を供給できる焦点合わせ手段と、
物体像を検出イメージに変換することができる光学センサと、
光学センサに結合され、検出イメージを複数のデジタル・イメージ情報データ・パケットに変換することができるアナログ−デジタル・コンバータと、
複数の計算要素と、第１の固定アーキテクチャは第２の固定アーキテクチャと異なるものである第１の固定アーキテクチャを備える複数の計算要素のうちの第１の計算要素および第２の固定アーキテクチャを備える複数の計算要素のうちの第２の計算要素と、
複数の計算要素およびアナログ−デジタル・コンバータに結合され、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成することと、第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することにより、複数のデジタル・イメージ情報データ・パケットから複数の処理済みデジタル・イメージ・データ・パケットを供給することができ、第１のイメージ処理機能は第２のイメージ処理機能と異なる、相互接続ネットワークと、
相互接続ネットワークに結合され、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができるデジタル出力インターフェースを備えることを特徴とするデジタル・イメージ処理装置。
【請求項５０】
光学センサは、電荷結合素子（ＣＣＤ）、電荷注入素子（ＣＩＤ）、光学相補型金属酸化シリコン（ＣＭＯＳ）アレイ、光学バイポーラ接合型トランジスタ（ＢＪＴ）アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイを含む複数の光学センサのうちの少なくとも１つである請求項４９に記載のデジタル・イメージ処理装置。
【請求項５１】
さらに、
相互接続ネットワークに結合され、処理済みデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェースと、
アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるファインダ画面と、
アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートと、
相互接続ネットワークに結合され、処理済みデジタル・イメージを出力することができるデジタル出力ポートとを備える請求項４９に記載のデジタル・イメージ処理装置。
【請求項５２】
複数のイメージ処理機能は、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理、メディアン・フィルタ処理、局所重み付きメディアン・フィルタ処理、中心重み付きメディアン・フィルタ処理、ベクトル重み付きメディアン・フィルタ処理、マルチチャネル・イメージ回復、マルチフレーム・イメージ復元、反復イメージ復元、動き検出、動き推定、ローパス・フィルタ処理、マルチレート・フィルタ処理、ウェーブレット・ベースのマルチレート・フィルタ処理、オートフォーカス、コントラスト促進、ぼやけ除去などの機能うちの少なくとも２つを含む請求項４９に記載のデジタル・イメージ処理装置。
【請求項５３】
第１の固定されたアーキテクチャおよび第２の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能のうち少なくとも２つを含む複数の特定のアーキテクチャから選択される請求項４９に記載のデジタル・イメージ処理装置。
【請求項５４】
デジタル・カメラとして実現される請求項１に記載のデジタル・イメージ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、デジタル・イメージ処理に関するものであり、より具体的には、固定されたアプリケーション固有の計算要素を持つ多様な適応型計算単位(diverse and adaptive computational units)の異成分からなる再構成可能なマトリックス(heterogeneous and reconfigurable matrices)とともに適応型集積回路(adaptive integrated circuitry)を使用するデジタル・イメージ処理およびその他の光学的応用に関するものである。
【背景技術】
【０００２】
本出願は、本発明の譲受人であるＱｕｉｃｋＳｉｌｖｅｒ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．に譲渡された２００１年３月２２日に出願されたPaul L.Master et al.による「Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed, Application Specific Computational Elements」という表題の米国特許出願第０９／８  １５，１２２号の一部継続出願である、本発明の譲受人であるＱｕｉｃｋＳｉｌｖｅｒ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．に譲渡され、参照により本明細書に組み込まれ、一般に開示されているすべての主題（「関連出願」）の優先権を主張する、２００３年に出願されたPaul L.Master et al.による「Adaptive Integrated Circuitry With Heterogeneous And Reconfigurable Matrices Of Diverse And Adaptive Computational Units Having Fixed,Application Specific Computational Elements」という表題の米国特許出願に関係する。
【０００３】
関連出願では、適応型コンピューティング・エンジン（Ａdaptive Ｃomputing Ｅngine：ＡＣＥ）と呼ばれる、新しい形態または種類の集積回路を開示しており、これは、リアルタイムで容易に再構成可能であり、対応する複数の動作モードを持つことができる。
【０００４】
適応型または再構成可能コンピューティングのＡＣＥアーキテクチャは、相互接続ネットワークに結合されている複数の異なるまたは異成分の計算要素を含む。複数の異成分計算要素は、メモリ、加算、乗算、複素乗算、減算、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどのさまざまな機能に対する固定されたアーキテクチャなど、固定された異なるアーキテクチャを備える対応する計算要素を含む。構成情報に対する応答として、相互接続ネットワークは、線形アルゴリズム・オペレーション、非線形アルゴリズム・オペレーション、有限状態機械オペレーション、メモリ・オペレーション、およびビット・レベル操作を含む、複数の異なる機能モードに対し複数の異成分計算要素を適応（構成し再構成）させる動作をリアルタイムで実行する。
【０００５】
ＡＣＥアーキテクチャは、これらの固定およびアプリケーション固有の計算要素を使用して、リアルタイムで、さまざまなタスクを実行するように適応させることができる単一のＩＣを備える。例えば、異成分計算要素の同じ集合の時間の経過とともに異なる構成を使用することで、ＡＣＥアーキテクチャは有限インパルス応答フィルタ処理、高速フーリエ変換、離散コサイン変換などの機能を実装することができ、また他の種類の計算要素を使用して、高度な通信およびコンピューティングに対する他の多くの高水準の処理機能を実装できる。
【０００６】
デジタル・イメージ処理技術は、比較的最近の分野であり、デジタル・カメラ、デジタル・スキャナ、ファクシミリ（ＦＡＸ）機、およびコピー機などのデバイスを含む。しかし、従来のデジタル・イメージ処理では、デジタル・シグナル・プロセッサ（Ｄigital Ｓervice Ｐrocessor：「ＤＳＰ」）、マイクロプロセッサ、または特定用途向け集積回路（Ａpplicaion-Ｓpecific Ｉntegrated Ｃircuits：ＡＳＩＣ」）を利用している。したがって、デジタル・イメージ処理では、関連出願のＡＣＥアーキテクチャを使用するなど、適応型コンピューティング回路アーキテクチャを使用する必要がまだある。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明では、例えば、デジタル・カメラ、スキャナ、プリンタ、乾式コピー機、またはデジタル・イメージ処理アプリケーションで使用される他の手段として実現できるデジタル・イメージ処理装置を実現する。
【課題を解決するための手段】
【０００８】
本発明のデジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、複数の計算要素、および相互接続ネットワークを含む。光学センサは、物体像を検出イメージに変換することができる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージをデジタル・イメージ情報に変換することができる。複数の計算要素は、第１の固定アーキテクチャを備える第１の計算要素および第２の固定アーキテクチャを備える第２の計算要素を含み、第１の固定アーキテクチャは第２の固定アーキテクチャと異なる。相互接続ネットワークは、複数の計算要素およびアナログ−デジタル・コンバータに結合され、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成し、第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することによりデジタル・イメージ情報からの処理済みのデジタル・イメージを供給することができるが、ただし、第１のイメージ処理機能は第２のイメージ処理機能と異なる。
【０００９】
デジタル・イメージ処理装置は、さらに、レンズ、シャッター、絞り、およびフォーカス・モータを備えるフォーカス・アセンブリなどの光学センサに物体像を供給することができる焦点合わせ手段も含むことができる。光学センサは、電荷結合素子（Ｃharge Ｃoupled Ｄevice：ＣＣＤ）、電荷注入素子（Ｃharge Ｉnjection Ｄevice：ＣＩＤ）、光学相補型金属酸化シリコン（Ｃomplementary Ｍetal Ｏxide Ｓilicon：ＣＭＯＳ）アレイ、光学バイポーラ接合型トランジスタ（Ｂipolar Ｊunction Ｔransistor：ＢＪＴ）アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイなどの複数の光学センサのうちの少なくとも１つである。
【００１０】
デジタル・イメージ処理装置は、さまざまな実施形態において、相互接続ネットワークに結合され、処理済みのデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェース、アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるビューファインダ画面、およびアナログ出力インターフェースに結合され、テレビまたはその他のビデオ表示装置に接続することなどを目的として、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートを備えることもできる。デジタル・イメージ処理装置はさらに、相互接続ネットワークに結合され、コンピュータまたはデータ送信デバイスに接続することなどを目的として、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備えることもできる。
【００１１】
処理済みデジタル・イメージは、さらに、複数の処理済みデジタル・イメージ・データ・パケットとして供給することもできる。この実施形態では、デジタル・イメージ処理装置は、さらに、相互接続ネットワークに結合されたデジタル出力インターフェースも備え、デジタル出力インターフェースは、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができる。
【００１２】
デジタル・イメージ処理装置は、さらに、例えば、有形媒体上に処理済みデジタル・イメージを印刷することができるプリンタ、処理済みデジタル・イメージを有形媒体に転送することができる乾式コピー機、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器、処理済みデジタル・イメージを記憶媒体、コンピュータなどに転送することができるスキャナの中に組み込んだり、またはそれに結合することもできる。
【００１３】
さまざまな実施形態において、複数のイメージ処理機能として、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理(morphological filtering)、メディアン・フィルタ処理(median filtering)、局所重み付きメディアン・フィルタ処理(local weighted median filtering)、中心重み付きメディアン・フィルタ処理(center weighted median filtering)、ベクトル重み付きメディアン・フィルタ処理(vector weighted median filtering)、マルチチャネル・イメージ回復(multichannel image recovery)、マルチフレーム・イメージ復元(multiframe image restoration)、反復イメージ復元(iterative image restoration)、動き検出(motion detection)、動き推定(motion estimation)、ローパス・フィルタ処理、マルチレート・フィルタ処理(multirate filtering)、ウェーブレット・ベースのマルチレート・フィルタ処理(wavelet-based multirate filtering)、オートフォーカス、コントラスト促進(contrast enhancement)、ぼやけ除去(blur removal)などの機能うちの１つまたは複数がある。
【００１４】
また、さまざまな実施形態では、複数の計算要素の第１の固定されたアーキテクチャおよび第２の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能を備えるアーキテクチャなどの複数の特定のアーキテクチャから選択することができる。
【００１５】
さまざまな種類のメモリをデジタル・イメージ処理装置内に組み込むことができる。例えば、第１のメモリは、相互接続ネットワークに結合可能であり、処理済みデジタル・イメージを格納することができ、この第１のメモリは、選択的に取り外し可能なフラッシュ・メモリとすることができる。第２のメモリも、組み込み、相互接続ネットワークに結合可能であり、第１の構成情報および第２の構成情報を格納することができ、例えば同期型ダイナミック・ランダム・アクセス・メモリ（Ｓynchronous Ｄynamic Ｒandom Ａccess Ｍemory：ＳＤＲＡＭ）とすることができる。
【００１６】
他の実施形態では、デジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、入力パイプライン・レジスタ、第１のメモリ、ハードウェア・タスク・マネージャ、データ分配器、適応型実行ユニット、データ選択器、および出力パイプライン・レジスタを備える。光学センサは、さらに、物体像を検出イメージに変換することもできる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージを複数のデジタル・イメージ情報データ・パケットに変換することができる。入力パイプライン・レジスタは、アナログ−デジタル・コンバータに結合され、複数のデジタル・イメージ情報データ・パケットを受信することができ、その一方で、第１のメモリは、複数のデジタル・イメージ情報データ・パケットを格納することができる。ハードウェア・タスク・マネージャは、複数のイメージ処理タスクを処理し、複数のイメージ処理タスクのうちの第１のイメージ処理タスクを実行することが可能であり、複数のイメージ処理タスクのうちの第２のイメージ処理タスクを実行することが可能であり、第１のイメージ処理タスクは第２のイメージ処理タスクと異なることを判別することができる。データ分配器は、入力パイプライン・レジスタ、第１のメモリ、およびハードウェア・タスク・マネージャに結合され、複数のデジタル・イメージ情報データ・パケットを第１のメモリに分配することができる。適応型実行ユニットは、ハードウェア・タスク・マネージャおよび第１のメモリに結合され、第１のイメージ処理タスクを実行するように構成することができ、また複数のデジタル・イメージ情報データ・パケットを使用して第１のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第２のイメージ処理タスクを実行するように再構成することができ、また第２のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第１のイメージ処理タスクおよび第２のイメージ処理タスクの実行で得られる複数の対応する処理済みデジタル・イメージ・データ・パケットを生成することができる。データ選択器は、ハードウェア・タスク・マネージャ、適応型実行ユニット、および第１のメモリに結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットの経路を決定することができる。出力パイプライン・レジスタは、データ選択器に結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットを受信することができる。
【００１７】
この実施形態では、適応型実行ユニットは、複数の計算要素および複数の計算要素に結合されている複数のスイッチング要素を含む。複数の計算要素において、第１の計算要素は第１の固定アーキテクチャを備え、第２の計算要素は第２の固定アーキテクチャを備え、第１の固定アーキテクチャは第２の固定アーキテクチャと異なる。複数のスイッチング要素は、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成し、第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することができるが、第１のイメージ処理機能は第２のイメージ処理機能と異なる。
【００１８】
本発明の他の多数の利点および特徴は、本発明およびその実施形態の以下の詳細な説明、特許請求の範囲、および付属の図面から容易に理解されるであろう。
【発明を実施するための最良の形態】
【００１９】
本発明についてさまざまな種類の実施形態が考えられ、図面には特定の実施形態が示されおり、本明細書でそれらについて説明するが、本開示は本発明の原理の例示としてみなされるべきであり、本発明を例示されている特定の実施形態に限ることは意図していないことを理解されたい。
【００２０】
本発明は、ＡＣＥアーキテクチャなどの適応型コンピューティング・アーキテクチャを使用するデジタル・イメージ処理を行う。本発明の適応型コンピューティング・アーキテクチャでは、複数の計算要素を使用しており、これらはそれ自体、相互接続ネットワークとともにアーキテクチャを固定しており、この場合デジタル・イメージ処理に関係するさまざまな機能およびオペレーションを実行するように同じ計算要素を構成し、再構成する。ＡＣＥアーキテクチャは、例えば、デジタル・カメラ、ビデオ・カメラ、ビデオ電話アプリケーション、デジタルＴＶ、デジタル映画、ファクス機、コピー機、または可視スペクトル（光）信号からイメージを作成または再現する他の任意の個数のデバイスで使用することなどを目的として、光学検出イメージを処理し、処理されたデジタル・イメージを供給するように構成し、再構成することができる。
【００２１】
図１は、本発明による第１の装置１００の実施形態を例示するブロック図である。装置１００は、本明細書では適応型コンピューティング・エンジン（Ａdaptive Ｃomputing Ｅngine：ＡＣＥ）１００とも呼ばれ、集積回路として、または他の追加コンポーネントを備える集積回路の一部として実現するのが好ましい。第１の装置実施形態では、以下で詳しく説明するが、ＡＣＥ１００は例示されているようなマトリックス１５０Ａから１５０Ｎなどの１つまたは複数の再構成可能なマトリックス（またはノード）１５０、およびマトリックス相互接続ネットワーク１１０を含む。また、第１の装置実施形態では、以下で詳しく説明するが、マトリックス１５０Ａおよび１５０Ｂなどのマトリックス（ノード）１５０のうちの１つまたは複数は、コントローラ１２０として機能するように構成され、マトリックス１５０Ｃおよび１５０Ｄなどの他のマトリックスは、メモリ１４０として機能するように構成される。さまざまなマトリックス１５０およびマトリックス相互接続ネットワーク１１０は、さらに、フラクタル・サブユニット(fractal subunit)としてまとめて実装することもでき、少数のノードから数千ものノードまで拡張することができる。
【００２２】
従来技術から著しく逸脱するが、ＡＣＥ１００では、再構成可能マトリックス１５０、コントローラ１２０、およびメモリ１４０の間の信号送受信およびその他の伝送、またはその他の入出力（「Ｉ／Ｏ」）機能に、従来の（および通常独立している）データ、ダイレクト・メモリ・アクセス（Ｄirect Ｍemory Ａccess：ＤＭＡ）、ランダム・アクセス、構成および命令用バスを使用しない。むしろ、データ、制御、および構成情報は、マトリックス相互接続ネットワーク１１０を利用して、これらのマトリックス１５０要素間でやり取りされ、以下で詳しく説明するように、コントローラ１２０およびメモリ１４０として構成されているマトリックス１５０を含む、再構成可能マトリックス１５０の間の所定の接続を実現するようにリアルタイムで構成し再構成することができる。
【００２３】
メモリ１４０として機能するように構成されているマトリックス１５０は、固定メモリ要素の計算要素（後述）を使用して、望ましいまたは好ましい方法で実装することができ、ＡＣＥ１００に含めるか、または他のＩＣまたはＩＣの一部の中に組み込むことができる。第１の装置実施形態では、メモリ１４０はＡＣＥ１００とともに含まれ、低消費電力のランダム・アクセス・メモリ（Ｒandom Ａccess Ｍemeory：ＲＡＭ）である計算要素から構成されるのが好ましいが、フラッシュ・メモリ、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、ＦｅＲＡＭ、ＭＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、またはＥ２ＰＲＯＭなどの他のメモリ形態の計算要素から構成することもできる。第１の装置実施形態では、メモリ１４０は、ＤＭＡエンジンを備えるのが好ましいが、別に例示されてはいない。
【００２４】
コントローラ１２０は、適応型有限状態機械、後述の２種類の機能を実行できる縮小命令セット（ＲＩＳＣ）プロセッサ、コントローラ、またはその他のデバイスまたはＩＣとして構成されたマトリックス１５０Ａおよび１５０Ｂを使用して、実装するのが好ましい。（それとは別に、これらの機能は、従来のＲＩＳＣまたはその他のプロセッサを使用して実装することができる。）「カーネル」制御と呼ばれる第１の制御機能は、マトリックス１５０Ａのカーネル・コントローラ（ＫＡＲＣ）として例示されており、「マトリックス」制御と呼ばれる第２の制御機能は、マトリックス１５０Ｂのマトリックス・コントローラ（ＭＡＲＣ）として例示されている。コントローラ１２０のカーネルおよびマトリックス制御機能については、さまざまなマトリックス１５０の構成可能性と再構成可能性に関して、また本明細書で「ｓｉｌｖｅｒｗａｒｅ」モジュールと称する、組み合わされたデータ、構成、および制御情報の形態の例を参照して、後で詳しく説明する。カーネル・コントローラは、「Ｋノード」とも呼ばれるが、図１０および１１を参照して以下で詳述する。
【００２５】
図１のマトリックス相互接続ネットワーク（Ｍatix Ｉnterconnection Ｎetwork：ＭＩＮ）１１０、および図３および４に別々に例示されているそのサブセット相互接続ネットワーク（ブール相互接続ネットワーク２１０、データ相互接続ネットワーク２４０、および相互接続２２０）は、本明細書では「相互接続」または「相互接続ネットワーク」と総称するが、かなり異なる方法であっても、ＦＰＧＡ相互接続ネットワークまたはスイッチング・ファブリックを利用するなどして一般に当業で知られているように実装することができる。第１の装置実施形態では、さまざまな相互接続ネットワークは、例えば、特許文献１乃至４で説明されているように、また後述のように、図７、８、および９を参照して例示されているように実装される。
【特許文献１】米国特許第５，２１８，２４０号
【特許文献２】米国特許第５，３３６，９５０号
【特許文献３】米国特許第５，２４５，２２７号
【特許文献４】米国特許第５，１４４，１６６号これらのさまざまな相互接続ネットワークは、コントローラ１２０、メモリ１４０、さまざまなマトリックス１５０、および後述の計算ユニット２００および計算要素２５０の間の選択可能な（または切り換え可能な）接続を提供し、これは、本明細書で「構成情報」と一般に呼ぶ構成信号に対する応答として、その制御の下で、本明細書で参照している構成および再構成の物理的基盤となる。さらに、さまざまな相互接続ネットワーク（１１０、２１０、２４０、および２２０）は、任意の形態の従来のまたは別の入出力バス、データ・バス、ＤＭＡ、ＲＡＭ、構成および命令バスの代わりに、コントローラ１２０、メモリ１４０、さまざまなマトリックス１５０、および計算ユニット２００および計算要素２５０の間の選択可能または切り換え可能なデータ、入力、出力、制御、および構成経路を備える。第２の装置実施形態では、さまざまな相互接続ネットワークは、システムおよび装置実施形態の中のさまざまなレベルで、トークン・リングまたはアービタ、およびマルチプレクサなどの経路選択要素のさまざまな組み合わせを使用し、図１２および１３を参照しながら以下で説明するように実装される。
【００２６】
しかし、さまざまな相互接続ネットワーク（１１０、２１０、２４０、および２２０）のまたはその中の所定のレベルのスイッチングまたは選択オペレーションは、当業で知られているように実装できるが、経路選択要素および多重化要素の組み合わせ、システム内の異なるレベルでの異なる経路選択要素および多重化要素の使用、およびさまざまな相互接続ネットワーク（１１０、２１０、２４０、および２２０）の設計およびレイアウトは、以下で詳述するように、新規性がある。例えば、後述のさまざまなレベルのマトリックス１５０、計算ユニット２００、および計算要素２５０に対応するさまざまなレベルの相互接続が提供される。マトリックス１５０レベルでは、従来技術のＦＰＧＡ相互接続と比較すると、マトリックス相互接続ネットワーク１１０は、かなり制限されており、あまり「豊か」でなく、所定の領域における接続能力が小さいことで、キャパシタンスが下がり、動作速度が上がる。しかし、特定のマトリックス１５０または計算ユニット２００内では、相互接続ネットワーク（２１０、２２０、および２４０）は、かなり高密度で、豊かであるため、狭いまたは密集した参照の局所性の範囲内でより大きな適応性と再構成能力を実現できる。
【００２７】
さまざまなマトリックスまたはノード１５０は、再構成可能で、異成分からなる、つまり、一般に望む構成に応じて、再構成可能マトリックス１５０Ａは一般に再構成可能マトリックス１５０Ｂから１５０Ｎまでと異なる、再構成可能マトリックス１５０Ｂは一般に再構成可能マトリックス１５０Ａおよび１５０Ｃから１５０Ｎまでと異なる、再構成可能マトリックス１５０Ｃは一般に再構成可能マトリックス１５０Ａ、１５０Ｂ、および１５０Ｄから１５０Ｎまでと異なる、といった違いがある。さまざまな再構成マトリックス１５０は、それぞれ、一般に、異なるまたは多様な適応型計算ユニットと再構成可能計算ユニットの混合（２００）を含み、次に、計算ユニット２００は、一般に、さまざまな相互接続ネットワークを介して、多様な機能を実行するようにさまざまな方法により適応できる形で接続、構成、および再構成を行える、図３および４を参照して以下で詳しく説明する、固定されたアプリケーション固有の計算要素（２５０）の異なるまたは多様な混合を含む。さまざまなマトリックス１５０は、多様な内部構成および再構成に加えて、以下でも詳しく説明するように、マトリックス相互接続ネットワーク１１０を通じて、他のマトリックス１５０のそれぞれに関して、より高水準で接続、構成、および再構成することができる。
【００２８】
複数の異なる、洞察にみちた新規性のある概念がＡＣＥ１００アーキテクチャに組み込まれており、ＡＣＥ１００のリアルタイムの動作およびその内在する利点を説明する有用な基盤となる。
【００２９】
第１の新規性の概念は、アプリケーション固有の、専用の、または固定されたハードウェア・ユニット（計算要素２５０）の適応型の、再構成可能な利用の仕方、およびそれぞれ対応する乗算、複素乗算、および加算機能を最適な形で実行するように設計されている複数の乗算器、複素乗算器、および加算器などの、マトリックス１５０の計算ユニット２００（図３）内のこれらのアプリケーション固有の、専用の、または固定されたハードウェア・ユニット（計算要素２５０）に入れる高速化するための特定の機能の選択に関する。ＡＣＥ１００が最適化されるとすると、第１の装置実施形態では、低消費電力に関して、高速化のための機能が消費電力に基づいて選択される。例えば、モバイル通信などの所定のアプリケーションの場合、対応するＣ（Ｃ＃またはＣ＋＋）または他のコードを消費電力に関して分析することができる。このような実証的分析により、例えば、そのようなコードの小さな部分、例えば１０％の部分が、実際には実行時の動作電力の９０％を消費していることがわかる。このような電力利用度に基づき、ある種の再構成可能マトリックス１５０内で高速化するためコードのこの小さな部分を選択し、例えば、残りのコードをコントローラ１２０として構成されているマトリックス１５０内で実行するように適応させる。高速化のため追加コードも選択し、ＡＣＥ１００による消費電力を、設計または運用上の複雑さから生じる潜在的トレードオフまで最適化することができる。さらに、図３に関して説明したように、制御コードなどの他の機能は、有限状態機械として構成されている場合にマトリックス１５０内で高速化できる。
【００３０】
次に、高速化のため選択されたアルゴリズムまたは他の機能を「データ・フロー・グラフ」（Ｄata Ｆlow Ｇraph：ＤＦＧ）と呼ばれる形式に変換する。本発明によるデータ・フロー・グラフの概略図を図２に示す。図２に示されているように、ＣＤＭＡ音声符号化（ＱＣＥＬＰ（Ｑｕａｌｃｏｍｍ  Ｃｏｄｅ  Ｅｘｃｉｔｅｄ  Ｌｉｎｅａｒ  Ｐｒｅｄｉｃｔｉｏｎ））に使用されるアルゴリズムまたは機能は、４つの乗算器１９０の後に４つの加算器１９５を配置して実装される。さまざまなレベルの相互接続において、このデータ・フロー・グラフのアルゴリズムを、そのときどきに、固定された計算要素（２５０）の構成および再構成を通じて実装する、すなわち、効率を念頭において最適化され、構成されているハードウェア内に実装する、つまり特定のアルゴリズムを実行するように最適化されている「機械」をリアルタイムで構成する。引き続きＤＦＧの例または図２において、４つの固定されたまたは専用の乗算器は計算要素２５０として、４つの固定されたまたは専用の加算器は、これもまた異なる計算要素２５０として、特定のＤＦＧの機能またはアルゴリズムを実行するように相互接続を通じてリアルタイムで構成される。このデータ・フロー・モデルを使用すると、乗算器１９０などにより出力されたデータは、加算器１９５などによりたちまち消費される。
【００３１】
第３のおよびおそらくは最も重要な概念、および従来技術の概念および指針からの著しい逸脱は、上述のさまざまな選択されたアルゴリズムを実装するために使用される再構成可能な「異質性(heterogeneity)」の概念である。上述のように、従来技術の再構成可能性はもっぱら同質のＦＰＧＡに依存しており、その中の論理ゲートの同一のブロックは豊かなプログラム可能相互接続内にアレイとして繰り返し配置され、その相互接続は、不効率であっても、また多くの場合、経路選択および組み合わせに関する問題があるとしても、特定の機能を実装するために同一ゲート間を接続するようにその後構成される。著しく対照的であるが、計算ユニット２００内では、異なる計算要素（２５０）は、専用乗算器、複素乗算器、アキュムレータ、算術論理演算ユニット（Ａrithmetric Ｌogic Ｕnits：ＡＬＵ）、レジスタ、および加算器など、それに対応して異なる固定された（または専用の）アプリケーション固有のハードウェアとして直接実装される。その後、相互接続（２１０および２２０）を使用し、それらのさまざまな異成分からなる計算要素（２５０）を、移動体通信でよく使用される離散コサイン変換の実行などの選択されたアルゴリズムを実行するように、リアルタイムで構成し適応させることができる。図２のデータ・フロー・グラフの例では、特定のアルゴリズムを実行するように、４つの乗算器および４つの加算器が構成される、つまり、リアルタイムで接続される。したがって、異なる（「異成分からなる」）計算要素（２５０）は、いつでも、与えられたアルゴリズムまたは他の機能を最適な形で実行するように構成され、再構成される。さらに、反復機能については、計算要素の指定されたインスタンス化または構成は時間が経過しても依然として有効である、つまり、そのような反復計算の全工程で変化しないことも考えられる。
【００３２】
ＡＣＥ１００アーキテクチャの時間的な性質も注意しなければならない。ある時点において、異なるレベルの相互接続（１１０、２１０、２４０、および２２０）を使用し、指定された機能を実行するか、または特定のアルゴリズムを実装するように最適化されている特定の構成がＡＣＥ１００内に存在しうる。別の時点で、構成が変更され、他の計算要素（２５０）を相互接続したり、または同じ計算要素２５０を異なる仕方で接続したりして、他の機能またはアルゴリズムを実行することができる。この時間的な再構成可能性から２つの重要な特徴が現れる。第１に、時間が経ちアルゴリズムが新しい技術標準の実装のため変更されるのに合わせて、ＡＣＥ１００も共進化し、再構成によりその新しいアルゴリズムを実装することができる。簡単な例として、第５の乗算器および第５の加算器を図２のＤＦＧに組み込んで、対応する新しいアルゴリズムを実行するようにできるが、その際に、追加相互接続も、追加バス機能を実装するために使用することが可能である。第２に、計算要素はある時点に、指定されたアルゴリズムのインスタンス化として相互接続され、その後、別の時点に、他の異なるアルゴリズムを実行するように再構成されるため、ゲート（またはトランジスタ）の使用は最大になり、活動度に関して最も効率のよいＡＳＩＣと比べてかなり優れたパフォーマンスを示す。
【００３３】
さまざまな異なるアルゴリズムの実行に関する計算要素２５０のこのような時間的な再構成可能性は、一方の適応（構成および再構成）と他方のプログラミングまたは再プログラム可能性との本明細書で使用している概念上の区別を行うことを示している。通常のプログラム可能性では、既定のアルゴリズムを実装するために、さまざまな順序で時間が経つうちに呼び出される可能性のある、機能の既存のグループまたは集合を利用する。それとは対照的に、本明細書で使用しているような構成可能性および再構成可能性（または適応）は、利用できなくなってしまった、または存在していない新しい機能をさらに追加または作成できることを含む。
【００３４】
次に、ＡＣＥ１００は、さらに、１つの実際に連続する情報ストリームの中でデータおよび構成（またはその他の制御）情報を緊密に結合する（または相互デジタル化(interdigitation)）ことも利用する。データと構成情報とのこのような結合または混合は、「ｓｉｌｖｅｒｗａｒｅ」モジュールと呼ばれ、別の関連特許出願の主題である。しかし、本発明の目的のためには、このようにデータと構成情報とを結合して１つの情報（またはビット）ストリームにして、ＡＣＥ１００をリアルタイムで再構成することができ、しかも従来技術のハードウェア相互接続の（多くの場合未使用の）複数のオーバーレイ・ネットワークを必要としないことに注意すれば十分である。例えば、類似のものとして、特定の第１の期間にその第１の期間の間またはその後に、対応するアルゴリズムを実行するハードウェアとしての計算要素の特定の第１の構成は、同じアルゴリズムを実行することができるソフトウェア内のサブルーチンを「呼び出す」ハードウェアによる類似物としてみなす、または概念化することができる。したがって、構成情報の指示に従い計算要素２５０の構成が行われた（つまり、適切な状態に置かれた）後、アルゴリズムで使用するデータは、ｓｉｌｖｅｒｗａｒｅモジュールの一部としてすぐに利用可能になる。その後、またすぐに利用可能なデータを使用して、第２の異なるアルゴリズムを実行するため、第２の構成情報の指示に従い、第２の期間に同じ計算要素を再構成することができる。構成された計算要素２５０でデータがすぐに使用できるため、メモリ・アドレスを決定し、アドレス指定されたレジスタから格納済みのデータをフェッチする複数の別々のソフトウェア工程に類似する、１または２クロック・サイクルのハードウェアが実現される。さらにその結果、効率が高まるが、構成された計算要素は、従来のマイクロプロセッサまたはＤＳＰの中でサブルーチンとして呼ばれた場合に実行に数桁分多いクロック・サイクル数を必要とする可能性のあるアルゴリズムを、比較的少ないクロック数で、実行できるからである。
【００３５】
複数の異成分からなるおよび固定された計算要素２５０をリアルタイムで再構成できるという特徴と併せて、ｓｉｌｖｅｒｗａｒｅモジュールを、データと構成情報との混合として使用して適応型の異なる異成分からなる計算ユニット２００およびマトリックス１５０を形成することにより、ＡＣＥ１００アーキテクチャは複数の異なる動作モードを備えることができる。例えば、携帯型デバイスに組み込む場合、対応するｓｉｌｖｅｒｗａｒｅモジュールを指定すると、ＡＣＥ１００は携帯電話またはその他の移動式電話、音楽プレーヤ、ポケベル、パーソナル・デジタル・アシスタント、およびその他の新しいまたは既存の機能としてさまざまな異なる動作モードを備えることができる。さらに、これらの動作モードは、デバイスの物理的な場所に基づいて変化することができ、例えば、米国内で使用するＣＤＭＡ携帯電話として構成されているＡＣＥ１００は、ヨーロッパで使用する場合にはＧＳＭ携帯電話として再構成することができる。
【００３６】
図１を再び参照すると、コントローラ１２０（有限状態機械として構成されているマトリックス（ＫＡＲＣ）１５０Ａおよびマトリックス（ＭＡＲＣ）１５０Ｂであるのが好ましい）の機能については、（１）ｓｉｌｖｅｒｗａｒｅモジュール、つまり、単一情報ストリーム内のデータおよび構成情報の緊密な結合を参照して、（２）複数の潜在的動作モードを参照して、（３）再構成可能なマトリックス１５０を参照して、および（４）再構成可能な計算ユニット２００および図３に示されている計算要素１５０を参照して、説明することができる。上記のように、ＡＣＥ１００は、ｓｉｌｖｅｒｗａｒｅモジュールを通じて、新しい技術標準へのアップグレードなどの新しいまたは追加機能、または移動体通信デバイスへの音楽機能の追加などの全く新しい機能の追加を実行するように構成または再構成することができる。このようなｓｉｌｖｅｒｗａｒｅモジュールは、メモリ１４０のマトリックス１５０に格納するか、または例えば、マトリックス相互接続ネットワーク１１０を通じて外部（有線または無線）送信元から入力することができる。第１の装置実施形態では、複数のマトリックス１５０のうちの１つは、セキュリティを目的としてそのようなモジュールの暗号解読を行い、その有効性を検証するように構成されている。次に、既存のＡＣＥ１００の資源の構成または再構成の前に、コントロール１２０は、マトリックス（ＫＡＲＣ）１５０Ａを通じて、音楽機能を追加すると既存の移動体通信機能に悪影響を及ぼさないかなど、既存の機能に悪影響を及ぼすことなく構成または再構成を実行できるかチェックし、確認することができる。第１の装置実施形態では、このような構成または再構成に対するシステム要件は、ｓｉｌｖｅｒｗａｒｅモジュールに含まれ、このような評価機能の実行の際にマトリックス（ＫＡＲＣ）１５０Ａにより使用される。そのような悪影響を生じることなく構成または再構成が実行できる場合、ｓｉｌｖｅｒｗａｒｅモジュールをメモリ１４０のマトリックス１５０にロードし、マトリックス（ＫＡＲＣ）１５０Ａによりメモリ１４０のマトリックス１５０Ｃおよび１５０Ｄ内のＤＭＡエンジン（または従来のメモリの他のスタンドアロンのＤＭＡエンジン）を設定することができる。構成または再構成がそのような悪影響を及ぼす、または及ぼすおそれがある場合、マトリックス（ＫＡＲＣ）１５０Ａでは、新しいモジュールをＡＣＥ１００内に組み込むことを許可しない。Ｋノードとしてのカーネル・コントローラの追加機能については、以下で詳述する。
【００３７】
引き続き図１を参照すると、マトリックス（ＭＡＲＣ）１５０Ｂは、マトリックス１５０の資源のスケジューリングおよび対応するデータのタイミングを管理することで、さまざまな計算要素２５０および計算ユニット２００の構成または再構成を対応する入力データおよび出力データに同期させる。第１の装置実施形態では、タイミング情報は、さらに、ｓｉｌｖｅｒｗａｒｅモジュールにも含まれており、このため、マトリックス（ＭＡＲＣ）１５０Ｂは、さまざまな相互接続ネットワークを通じて、さまざまなマトリックス１５０の再構成を時を違えずに、また好ましくはちょうどの時間で指令し、対応するデータがさまざまな再構成された計算ユニット２００の入力に現れる前に再構成が実行されるようにできる。さらに、マトリックス（ＭＡＲＣ）１５０Ｂは、さまざまなマトリックス１５０の中で高速化されていない残りの処理を実行することもできる。したがって、マトリックス（ＭＡＲＣ）１５０Ｂは、それらのさまざまな再構成可能なハードウェア・ユニットにより使用される対応するデータと同期して、リアルタイムで、マトリックス１５０の構成および再構成、計算ユニット２００、および計算要素２５０を「呼び出し」、残りの、または他の制御処理を実行する、制御ユニットとしてみなすことができる。他のマトリックス１５０は、さらに、他のマトリックス１５０の構成および再構成を呼び出し、制御することができる所定のマトリックス１５０とともに、この制御機能を備えることもできる。このマトリックス制御機能は、さらに、後述のＫノードなど、カーネル制御と組み合わせることもできる。
【００３８】
図３は、複数の計算ユニット２００（計算ユニット２００Ａから２００Ｎとして例示されている）および複数の計算要素２５０（計算要素２５０Ａから２５０Ｚとして例示されている）を含む再構成可能マトリックス（またはノード）１５０を詳細に例示しているブロック図であり、計算要素２５０の例と有用な要約がさらに示されている。図３に例示されているように、マトリックス１５０は一般に、マトリックス・コントローラ２３０、複数の計算ユニット２００、およびマトリックス相互接続ネットワーク１１０の論理的または概念的なサブセットまたは部分として、データ相互接続ネットワーク２４０およびブール相互接続ネットワーク２１０を含む。マトリックス・コントローラ２３０は、さらに、図１０を参照して以下で説明しているハードウェア・タスク・マネージャとして実装することもできる。上述のように、第１の装置実施形態では、ＡＣＥ１００アーキテクチャ内の「深さ」がますます深くなると、相互接続ネットワークは、適応性および再構成のレベルが高くなり、次第に豊かになってくる。上でも説明したように、ブール相互接続ネットワーク２１０は、さまざまな計算ユニット２００間の再構成およびデータ相互接続機能を実現し、小さいのが好ましいが（つまり、数ビット程度の幅）、データ相互接続ネットワーク２４０は、さまざまな計算ユニット２００の間のデータ入力および出力に対する再構成およびデータ相互接続能を備え、比較的大きい（すなわちビットが大きい）ことが好ましい。しかし、概念上再構成およびデータ機能に分割されているが、ある時点でのマトリックス相互接続ネットワーク１１０の与えられた物理的部分は、ブール相互接続ネットワーク２１０、データ相互接続ネットワーク２４０、最下位レベル相互接続２２０（さまざまな計算要素２５０間の）、またはその他の入力、出力、または接続機能のいずれかとして動作することが可能であることに留意されたい。相互接続の他の形態例について図１１乃至１３で後述することにも留意されたい。
【００３９】
引き続き図３を参照すると、計算ユニット２００には、計算要素２５０Ａから２５０Ｚ（計算要素２５０と個々に呼び、また総称する）、および追加相互接続２２０として例示されている、複数の計算要素２５０が含まれる。相互接続２２０は、再構成可能な相互接続機能およびさまざまな計算要素２５０間の入出力経路を備える。上述のように、さまざまな計算要素２５０はそれぞれ、指定されたタスクまたはある範囲のタスクを実行するように設計されている専用の、アプリケーション固有のハードウェアからなり、したがって複数の異なる固定された計算要素２５０がある。相互接続２２０を使用すると、固定された計算要素２５０は、再構成可能な形で接続し適応型および可変計算ユニット２００にまとめることができ、これらはさらに、相互接続２２０、ブール・ネットワーク２１０、およびマトリックス相互接続ネットワーク１１０を使用して、図２のＤＦＧの四重の乗算および加算などのアルゴリズムまたは他の機能をいつでも実行できるように再構成し、相互接続することもできる。例えば、後述の多重化または経路選択機能を使用することで、計算要素２５０の入出力は、第１の機能またはアルゴリズムを実行するように（他の）計算要素の第１の集合の入出力に結合され、その後、これらの入出力が（他の）計算要素２５０の第２の集合の入出力に結合され第２の機能またはアルゴリズムを実行するように適応または再構成することができる。
【００４０】
第１の装置実施形態では、さまざまな計算要素２５０は、設計で、さまざまな適応型および再構成可能計算ユニット２００にまとめられる（例えば、図５Ａから９に例示されている）。乗算または加算などの特定のアルゴリズムまたは機能を実行するように設計されている計算要素２５０のほかに、他の種類の計算要素２５０も、第１の装置実施形態では使用される。図３に例示されているように、計算要素２５０Ａおよび２５０Ｂはメモリを実装し、所定の計算または処理機能に対し（より「リモートの」メモリ１４０と比べて）ローカルのメモリ要素を実現する。さらに、計算要素２５０Ｉ、２５０Ｊ、２５０Ｋ、および２５０Ｌは、有限状態機械を実装する（例えば、図７、８、および９に例示されている計算要素を使用して）ように構成されており、ローカルの処理機能（より「リモートの」マトリックス（ＭＡＲＣ）１５０Ｂと比べて）を備え、複雑な制御処理に特に適し、後述のハードウェア・タスク・マネージャ内で使用できる。
【００４１】
ＡＣＥ１００の望む機能に応じて、利用可能な場合があるさまざまな種類の異なる計算要素２５０を使用し、計算ユニット２００を大まかに分類することができる。第１のカテゴリの計算ユニット２００は、乗算、加算、有限インパルス応答フィルタ処理などの線形オペレーションを実行する計算要素２５０を含む（例えば、以下で、図５Ａから５Ｅおよび図６を参照して例示されているように）。第２のカテゴリの計算ユニット２００は、離散コサイン変換、三角法計算、および複素乗算などの非線形オペレーションを実行する計算要素２５０を含む。第３の種類の計算ユニット２００は、図３に示されているような、また図７から９に関して後で詳しく説明するような計算ユニット２００Ｃなどの有限状態機械を実装し、特にこれは、複雑な制御シーケンス、動的スケジューリング、および入出力管理に使用されるが、第４の種類は図３に示されているような計算ユニット２００Ａなどのメモリおよびメモリ管理を実装することができる。最後に、第５の種類の計算ユニット２００は、暗号化、暗号解読、チャネル符号化、Ｖｉｔｅｒｂｉ符号化、およびパケットおよびプロトコル処理（インターネット・プロトコル処理など）などのビット・レベルの操作を実行するため含めることができる。
【００４２】
第１の装置実施形態では、他のマトリックスまたはノード１５０からの制御に加えて、マトリックス・コントローラ２３０を所定のマトリックス１５０の中に含めることもでき、そうすることで、参照の局所性および再構成プロセスおよび対応するデータ操作の制御を高めることもできる。例えば、計算要素２５０の再構成が所定の計算ユニット２００内で実行された後、マトリックス・コントローラ２３０は、例えば、指定されたアプリケーションに対して反復データ処理を続けさせるため、一定期間、特定のインスタンス化（または構成）が変化しないように指示することができる。
【００４３】
上記のように、相互接続ネットワークのレベル（１１０、２１０、２２０、２４０）により、線形オペレーション、非線形オペレーション、有限状態機械オペレーション、メモリおよびメモリ管理、およびビット・レベル操作などの複数の機能または動作モードを実行するように複数の異成分からなる計算要素２５０を構成および再構成することができる。しかし、相互接続ネットワーク（１１０、２１０、２２０、２４０）のレベルによる複数の異成分からなる計算要素２５０のこのような構成および再構成は、他のより高いまたはより抽象的なレベル、つまり、複数のアルゴリズム要素の実行に対する構成および再構成に基づいて概念化することができる。
【００４４】
アルゴリズム要素のこのようなより抽象的なレベルでは、複数のアルゴリズム要素のうちのいずれか１つを実行するために、メモリ、加算、乗算、複素乗算、減算、同期化、キュー操作、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの複数の固定されたアーキテクチャを備える計算要素の構成（および再構成）を使用して、移動、入力、出力、加算、減算、乗算、複素乗算、除算、シフト、積和などの複数の低レベルの機能またはオペレーションを同時に実行する必要があると考えられる。
【００４５】
このような複数の固定されたアーキテクチャが、アルゴリズム要素全体を実行するように構成および再構成された場合、比較的少ないクロック・サイクルで実行でき、通常であれば数桁分多いクロック・サイクルを必要とするところである。アルゴリズム要素は、例えば、基数２の高速フーリエ変換（Ｆast Ｆourier Ｔransformation：ＦＦＴ）、基数４の高速フーリエ変換（ＦＦＴ）、基数２の逆高速フーリエ変換（Ｉnverse-ＦＦＴ：ＩＦＦＴ）、基数４のＩＦＦＴ、１次元離散コサイン変換（Ｄiscrete Ｃosine Ｔransformation：ＤＣＴ）、多次元離散コサイン変換（ＤＣＴ）、有限インパルス応答（Ｆinite Ｉmpulse Ｒesponse：ＦＩＲ）フィルタ処理、畳み込み符号化、スクランブリング、パンクチャリング、インターリービング、変調マッピング、Ｇｏｌａｙ相関、ＯＶＳＦ符号生成、アダマール変換、ターボ復号化、ビット訂正、Ｇｒｉｆｆｉｔｈｓ  ＬＭＳアルゴリズム、可変長符号化、アップリンク・スクランブリング符号生成、ダウンリンク・スクランブリング符号生成、ダウンリンク逆拡散、アップリンク拡散、アップリンク連結(uplink concatenation)、Ｖｉｔｅｒｂｉ符号化、Ｖｉｔｅｒｂｉ復号化、巡回冗長符号化（ＣＲＣ）、複素乗算、データ圧縮、動き補償、チャネル探索、チャネル収集、およびマルチパス補正などの複数のアルゴリズム要素から選択できる。多数の他のアルゴリズム要素例について、図１０を参照しながら以下で詳しく説明する。
【００４６】
ＡＣＥ１００の他の実施形態では、マトリックス（またはノード）１５０の１つまたは複数は、アプリケーション固有のものとして設計することができ、複数のオペレーション、機能、またはアルゴリズム要素を実行するように構成および再構成することができる複数の異成分からなる計算要素で構成されるのではなく、対応する固定された機能（または所定のアプリケーション）を含む固定されたアーキテクチャを備える。例えば、アナログ−デジタル（Ａ／Ｄ）またはデジタル−アナログ（Ｄ／Ａ）コンバータは、適応型機能がなくても実装することができる。以下で詳述するように、共通ノード（マトリックス）機能も、後述のノード・ラッパ機能などの適応型機能なしで実装することができる。しかし、さまざまな状況において、固定された機能ノードは、所定のアプリケーションを実行するためパラメータ調整を行える。例えば、パラメータ調整では、多数のフィルタ係数、多数の並列入力ビット、多数の並列出力ビット、高速フーリエ変換の多数の選択された点、多数の精度ビット、符号レート、三角関数の多数の補間ビット、実数または複素数の評価のうち１つまたは複数のパラメータを変更することができる。この固定された機能ノード（またはマトリックス）１５０は、パラメータ化可能であり、通常は、ある種の通信またはコンピューティング・アプリケーションなどで、アルゴリズム要素が事実上連続的に使用される状況で使用される。
【００４７】
例えば、固定された機能ノード１５０としては、マイクロプロセッサ（ＲＩＳＣプロセッサなど）、デジタル・シグナル・プロセッサ（Ｄigital Ｓervice Ｐrocessor：ＤＳＰ）、またはコ・プロセッサがあり、また組み込みオペレーティング・システムを搭載する場合もしない場合もある。このようなコントローラまたはプロセッサの固定された機能ノード１５０は、構成情報を相互接続ネットワークに供給する、さまざまな機能モードまたはアルゴリズム要素を実行するため他のノード１５０の複数の異成分からなる計算要素２５０の構成を指令しスケジュールする、または対応するデータとともに複数の異成分からなる計算要素の構成および再構成のタイミングを設定しスケジュールするなど、上述のさまざまなＫＡＲＣ１５０ＡまたはＭＡＲＣ１５０Ｂアプリケーションに使用することができる。他のアプリケーションでは、例えば、固定された機能ノードは、並列カスケード積分くし形（Ｃascaded Ｉntegrated Ｃomb：ＣＩＣ）フィルタまたはパラメータ化された並列カスケード積分くし形（ＣＩＣ）フィルタ、有限インパルス応答（ＦＩＲ）フィルタまたは可変フィルタ長用にパラメータ化された有限インパルス応答（ＦＩＲ）フィルタ、またはＡ／ＤまたはＤ／Ａコンバータとすることができる。
【００４８】
図４は、再構成可能なマトリックス１５０の計算ユニット２００の例または代表的な計算ユニットを詳しく示すブロック図である。図４に例示されているように、計算ユニット２００は、通常、複数メモリ計算要素２５０Ａおよび２５０Ｂなどの複数の多様な、異成分からなる、固定された計算要素２５０を含み、計算ユニット（Ｃomputational Ｕnit：ＣＵ）コア２６０、複数のアルゴリズムまたは有限状態機械計算要素２５０Ｃから２５０Ｋを形成する。上述のように、複数の多様な計算要素２５０のそれぞれの計算要素２５０は固定されたまたは専用の特定用途向け回路であり、加算または乗算などの特定の機能またはアルゴリズムを実行するように設計され、そのような対応する論理ゲート・レイアウトを備える。さらに、さまざまなメモリ計算要素２５０Ａおよび２５０Ｂは、ＲＡＭ（著しい深さを持つ）などさまざまなビット深さで、または深さが１または２ビットのレジスタとして実装することができる。
【００４９】
概念的なデータおよびブール相互接続ネットワーク２４０および２１０を形成する計算ユニット２００の例はさらに、複数の入力マルチプレクサ２８０、複数の入力線（またはワイヤ）２８１、およびＣＵコア２６０（線またはワイヤ２７０として示されている）、複数の出力デマルチプレクサ２８５および２９５、および複数の出力線（またはワイヤ２９１）を備える。入力マルチプレクサ２８０を通じて、データ変換と構成および相互接続プロセスで入力に使用するのに適した入力線２８１を選択することができ、出力デマルチプレクサ２８５および２９０を通じて、１つまたは複数の出力を選択された出力線２９１に出すことができ、これはさらに、追加データ変換と構成および相互接続プロセスでも使用される。
【００５０】
第１の装置実施形態では、さまざまな入力および出力線２８１および２９１の選択、および相互接続（２１０、２２０、および２４０）によるさまざまな接続の確立は、後述のように、計算ユニット・コントローラ２５５からの制御ビット２６５によって制御される。これらの制御ビット２６５に基づき、入力イネーブル２５１、入力選択２５２、出力選択２５３、ＭＵＸ選択２５４、ＤＥＭＵＸイネーブル２５６、ＤＥＭＵＸ選択２５７、およびＤＥＭＵＸ出力選択２５８の有効または無効を設定できる。
【００５１】
計算ユニット２００の例は、制御ビット２６５を通じて、各計算要素２５０、相互接続（２１０、２２０、および２４０）、およびその他の要素（上記）がクロック・サイクル毎に何を行うかを制御する計算ユニット・コントローラ２５５を含む。別々には示されていないが、相互接続（２１０、２２０、および２４０）を通じて、さまざまな制御ビット２６５が、必要に応じて、さまざまな入力イネーブル２５１、入力選択２５２、出力選択２５３、ＭＵＸ選択２５４、ＤＥＭＵＸイネーブル２５６、ＤＥＭＵＸ選択２５７、およびＤＥＭＵＸ出力選択２５８など、計算ユニット２００のさまざまな部分に分配される。ＣＵコントローラ２５５は、さらに、制御（または構成）情報を受信し、ステータス情報を送信するための１つまたは複数の信号線２９５を含む。
【００５２】
上述のように、相互接続は、上述のようなさまざまなビット幅のデータ相互接続ネットワーク２４０およびブール相互接続ネットワーク２１０への概念的分割を含むことができる。一般に、（より幅の広い）データ相互接続ネットワーク２４０は、構成可能および再構成可能な接続を確立するために使用され、データおよび構成情報の対応する経路選択が行われる。（より幅の狭い）ブール相互接続ネットワーク２１０は、構成可能および再構成可能接続の確立にも使用されるが、ＤＦＧの決定ノードを生成する、さまざまなデータ・フロー・グラフの論理（またはブール）決定の制御に使用され、またそのようなＤＦＧ内のデータ経路選択にも使用することができる。
【００５３】
図５Ａ乃至５Ｅは、計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。これらの図を検討するとよくわかるように、同じ固定された計算要素の多くは、さまざまな構成とともに、異なるアルゴリズムの実行に使用される。
【００５４】
図５Ａは、４点非対称有限インパルス応答（ＦＩＲ）フィルタ計算ユニット３００を例示するブロック図である。例示されているように、この計算ユニット３００の例は、係数メモリ３０５、データ・メモリ３１０、レジスタ３１５、３２０、および３２５、乗算器３３０、加算器３３５、およびアキュムレータ・レジスタ３４０、３４５、３５０、および３５５をはじめとする、複数の固定された計算要素の特定の第１の構成を、相互接続ネットワーク（２１０、２２０、および２４０）の一部を形成するマルチプレクサ（ＭＵＸ）３６０および３６５とともに、含む。
【００５５】
図５Ｂは、２点対称有限インパルス応答（ＦＩＲ）フィルタ計算ユニット３７０を例示するブロック図である。例示されているように、この計算ユニット３７０の例は、係数メモリ３０５、データ・メモリ３１０、レジスタ３１５、３２０、および３２５、乗算器３３０、加算器３３５、第２の加算器３７５、およびアキュムレータ・レジスタ３４０および３４５をはじめとする、複数の固定された計算要素の第２の構成を、さらに相互接続ネットワーク（２１０、２２０、および２４０）の一部を形成するマルチプレクサ（ＭＵltipleＸer：ＭＵＸ）３６０および３６５とともに、含む。
【００５６】
図５Ｃは、高速フーリエ変換（ＦＦＴ）計算ユニット４００のサブユニットを例示するブロック図である。例示されているように、この計算ユニット４００の例は、係数メモリ３０５、データ・メモリ３１０、レジスタ３１５、３２０、３２５、および３８５、乗算器３３０、加算器３３５、および加算器／減算器３８０をはじめとする、複数の固定された計算要素の第３の構成を、相互接続ネットワーク（２１０、２２０、および２４０）の一部を形成するマルチプレクサ（ＭＵＸ）３６０、３６５、３９０、３９５、および４０５とともに、含む。
【００５７】
図５Ｄは、複素有限インパルス応答（ＦＩＲ）フィルタ計算ユニット４４０を例示するブロック図である。例示されているように、この計算ユニット４４０の例は、メモリ４１０、レジスタ３１５および３２０、乗算器３３０、加算器／減算器３８０、および実数アキュムレータ・レジスタ４１５、および虚数アキュムレータ・レジスタ４２０をはじめとする、複数の固定された計算要素の第４の構成を、さらに相互接続ネットワーク（２１０、２２０、および２４０）の一部を形成するマルチプレクサ（ＭＵＸ）３６０および３６５とともに、含む。
【００５８】
図５Ｅは、対応するデータ・フロー・グラフ４６０を使用する、バイクアッド無限インパルス応答（biquad Ｉnfinite Ｉmpulse Ｒesponse：biquad ＩＩＲ）フィルタ計算ユニット４５０を例示するブロック図である。例示されているように、この計算ユニット４５０の例は、係数メモリ３０５、入力メモリ４９０、レジスタ４７０、４７５、４８０、および４８５、乗算器３３０、および加算器３３５をはじめとする、複数の固定された計算要素の第５の構成を、相互接続ネットワーク（２１０、２２０、および２４０）の一部を形成するマルチプレクサ（ＭＵＸ）３６０、３６５、３９０、および３９５とともに、含む。
【００５９】
図６Ａ乃至図６Ｄは、複数の異なる固定された計算要素を備える多機能適応型計算ユニット５００の例を詳しく示すブロック図である。しかるべく構成された適応型計算ユニット５００は、図５Ａから５Ｅを参照してすでに例示されているさまざまな各機能に加えて、離散コサイン変換などの他の機能を実行する。例示されているように、この多機能適応型計算ユニット５００は、入力メモリ５２０、データ・メモリ５２５、レジスタ５３０（レジスタ５３０Ａから５３０Ｑとして例示されている）、乗算器５４０（乗算器５４０Ａから５４０Ｄとして例示されている）、加算器５４５、第１の算術演算論理ユニット（Ａrithmetric Ｌogic Ｕnit：ＡＬＵ）５５０（ＡＬＵ＿１ｓ  ５５０Ａから５５０Ｄとして例示されている）、第２の算術演算論理ユニット（ＡＬＵ）５５５（ＡＬＵ＿２ｓ  ５５５Ａから５５５Ｄとして例示されている）、およびパイプライン（長さ１）レジスタ５６０をはじめとする、複数の固定された計算要素の複数の構成に対する機能を、相互接続ネットワーク（２１０、２２０、および２４０）を形成する入力５０５、線５１５、出力５７０、およびマルチプレクサ（ＭＵＸまたはＭＸ）５１０（ＭＵＸおよびＭＸ５１０Ａから５１０ＫＫとして例示されている）とともに、含む。例えば、加算と減算の並列オペレーションに２つの異なるＡＬＵ５５０および５５５を使用するのが好ましく、特に離散コサイン変換の基数２のオペレーションに使用する。
【００６０】
図７は、複数の固定された計算要素を備える適応型論理プロセッサ（Ａdaptive Ｌogic Ｐrocessor：ＡＬＰ）計算ユニット６００の例を詳しく示すブロック図である。ＡＬＰ６００は適応性が高く、入出力構成、有限状態機械実装、一般的なフィールド・プログラマビリティ、およびビット操作に使用するのが好ましい。ＡＬＰ６００の固定された計算要素は、図９に別々に例示されているように、複数の適応型コア・セル（Ｃore Ｃell：ＣＣ）６１０（図８）のそれぞれの一部（６５０）である。相互接続ネットワーク（２１０、２２０、および２４０）は、複数の垂直方向入力（Ｖertical Ｉnput：ＶＩ）６１５、垂直方向リピータ（Ｖertical Ｒepeater：ＶＲ）６２０、垂直方向出力（Ｖertical Ｏutput：ＶＯ）６２５、水平方向リピータ（Ｈorizontal Ｒepeater：ＨＲ）６３０、水平方向ターミネータ（Ｈorizontal Ｔerminator：ＨＴ）６３５、および水平方向コントローラ（Ｈorizontal Ｃontroller：ＨＣ）６４０のさまざまな組み合わせおよび順列置換から形成される。
【００６１】
図８は、固定された計算要素６５０を備える適応型論理プロセッサ計算ユニット６００のコア・セル６１０の例を詳しく示すブロック図である。固定された計算要素は、３入力−２出力機能発生器５５０で、図９には別々に例示されている。好ましいコア・セル６１０は、制御論理回路６５５、制御入力６６５、制御出力６７０（出力相互接続を実現する）、出力６７５、および入力（相互接続マルチプレクサを備える）６６０（入力相互接続を実現する）も含む。
【００６２】
図９は、適応型論理プロセッサ計算ユニット６００のコア・セル６１０の固定された計算要素６５０の例を詳しく示すブロック図である。固定された計算要素６５０は、複数の排他ＮＯＲ（ＸＮＯＲ）ゲート６８０、ＮＯＲゲート６８５、ＮＡＮＤゲート６９０、および排他ＯＲ（ＸＯＲ）ゲート６９５の固定されたレイアウトからなり、３本の入力７２０と２本の出力７１０を備える。構成および相互接続は、ＭＵＸ７０５および相互接続入力７３０を介して行われる。
【００６３】
図１０は、第２の装置実施形態を含むプロトタイプであるノードまたはマトリックス８００を例示するブロック図である。ノード８００は、マトリックス相互接続ネットワーク１１０を通じてＡＣＥ１００内の他のノード１５０に接続される。プロトタイプであるノード８００は、固定された（かつ再構成不可能な）「ノード・ラッパ」、適応型（再構成可能）実行ユニット８４０、およびメモリ８４５（可変でもよい）を含む。この固定された再構成不可能な「ノード・ラッパ」は、入力パイプライン・レジスタ８１５、データ復号器および分配器８２０、ハードウェア・タスク・マネージャ８１０、アドレス・レジスタ８２５（任意選択）、ＤＭＡエンジン８３０（任意選択）、データ集積器および選択器８５０、および出力パイプライン・レジスタ８５５を含む。ノード・ラッパを含むこれらのコンポーネントは、一般的に、ＡＣＥ１００のすべてのノードに共通であり、固定されたアーキテクチャで構成される（つまり、アプリケーション固有のまたは再構成不可能なアーキテクチャ）。したがって、ノードまたはマトリックス８００は、固定された再構成不可能なノード・ラッパ・コンポーネント、メモリ、および適応型実行ユニット８４０の再構成可能コンポーネント（固定された計算要素および相互接続ネットワークで構成される）を一意に混合したものである。
【００６４】
さまざまなノード８００は、一般に、１つまたは複数の特定のアプリケーションまたはアルゴリズムに合わせて修正された独特のサイズ変更可能な適応型実行ユニット８４０、および適応型実行ユニット８４０の要件に応じてさまざまなサイズで実装されるメモリ８４５を備える。与えられたノード８００に対する適応型実行ユニット８４０は、一般に、他のノード８００の適応型実行ユニット８４０とは異なる。各適応型実行ユニット８４０は、構成情報に応じて再構成可能であり、複数の計算要素２５０で構成される複数の計算ユニット２００および対応する相互接続ネットワーク２１０、２２０、および２４０で構成される。実施例で使用される特定の適応型実行ユニット８４０、およびノード８００およびノード・ラッパのオペレーションについて、以下で詳述する。
【００６５】
図１１は、第１のシステム実施形態９００を例示するブロック図である。第１のシステム９００は、それよりも大きなシステムまたはホスト環境、例えばコンピュータまたは通信デバイスなどの一部として含まれる。図１１は、大域的資源に接続能力がある（または他の何らかの手段により見つけられる）そのようなシステム１００の「ルート」レベルを例示している。このルート・レベルで、第１のシステム９００は、１つまたは複数の適応型コア９５０、外部（ＩＣ外付けまたはチップ外付け）メモリ９０５（ＳＤＲＡＭなど）、ホスト（システム）入力および出力接続、およびネットワーク（ＭＩＮ１１０）入力および出力接続（追加適応型コア９５０の）を含む。各適応型コア９５０は、（オンＩＣまたはオン・チップ）メモリ９２０、「Ｋノード」９２５、およびノード象限(node quadrant)９３０と呼ばれるノードの１つまたは複数の集合（１５０、８００）を含む。Ｋノード９２５（カーネル・コントローラ１５０Ａのような）は、適応型コア９５０用のオペレーティング・システムを備える。一般に、それぞれのノード象限９３０は、拡大可能な４倍（×４）フラクタル状配置からなる。このルート・レベルでは、これら（７つの）例示されている要素のそれぞれが、他のすべて（６つ）の要素との完全な接続性を持つ。したがって、ルート・レベル要素の出力は、他のすべてのルート・レベルの入力に供給され（そして、駆動することができ）、各ルート・レベルの入力は、他のすべてのルート・レベル要素の出力とともに供給される。別に例示されてはいないが、第１のシステム９００のこのルート・レベルでは、ＭＩＮ１１０は、ラウンド・ロビン、トークン・リング、クロス・ポイント・スイッチ、または他のアービタ要素などの経路選択（またはスイッチング）要素（９３５）を備えるネットワーク、およびリアルタイムのデータ転送（または伝送）を行うための（データ・ネットワーク２４０などの）ネットワーク（または経路）を含む。
【００６６】
図１２は、経路選択要素９３５を含むノード象限９３０の例を示すブロック図である。ルート・レベルから、ノード象限９３０はツリー・トポロジを持ち、１６個のノード（１５０または８００）からなり、４つのノードはすべて、経路選択（またはスイッチング）要素９３５を持つノード「クワッド」９４０として接続されている。経路選択要素は、ラウンド・ロビン、トークン・リング、クロス・ポイント・スイッチ、（４路）スイッチング、（１／４、１／３、または１／２）アービトレーションまたは他のアービタまたはアービトレーション要素などを使用する、または許容可能な制御のオーバーヘッドの程度によっては、マルチプレクサおよびデマルチプレクサなどの他の経路選択またはスイッチング要素を使用するなど、さまざまな手段により実装することができる。この４倍フラクタル・アーキテクチャは、論理的な制限を受けることなく、経路選択機能、スケーラビリティ、および拡張に対応することができる。ノード象限９３０は、例示されているように、ルート・レベルにおいて第１のシステム９００内で結合されている。この４倍フラクタル・アーキテクチャはさらに、重要で完全な接続性を備え、ノード間の最悪の場合の距離は、「ｋ」ホップ（またはノード数）（線形距離ではなく）のｌｏｇ４であり、例えば、完全なクロスバー・スイッチまたはバスのオーバーヘッドおよびキャパシタンスを回避できる。
【００６７】
ノード象限９３０およびノード・クワッド９４０の構造は、スケーラビリティ、反復構造、および拡張に関してフラクタル自己類似性を示す。ノード象限９３０およびノード・クワッド９４０構造はさらに、複数の異成分からなる再構成可能なノード８００の異質性、複数の異成分からなる計算ユニット２００の異質性、および複数の異成分からなる計算要素２５０の異質性に関してもフラクタル自己類似性を示す。異質性の増大に関して、適応型計算集積回路９００は、複数の異成分からなる再構成可能なマトリックスの第１のレベルから複数の異成分からなる計算ユニットの第２のレベルへ、さらに複数の異成分からなる計算要素の第３のレベルへの異質性の増大を示す。複数の相互接続レベルはさらに、複数の相互接続レベルのそれぞれの相互接続レベルに関してフラクタル自己類似性を示す。マトリックス１５０レベルから計算ユニット２００レベルへ、さらに計算要素２５０レベルへＡＣＥ１００内の深さが増すと、相互接続ネットワークは次第に豊かになり、提供する帯域幅が増大し、またそれに対応して増大する再構成可能性のレベルに対する接続の数が増える、または接続性が高まる。したがって、マトリックス・レベル相互接続ネットワーク、計算ユニット・レベル相互接続ネットワーク、および計算要素レベル相互接続ネットワークも、フラクタル状配置をなす。
【００６８】
図１１および１２を参照すると、以下で詳述するように、システム実施形態９００では、後述のデータ・パケット（またはデータ構造）を使用して、ストリーミング・データおよび構成情報の転送にポイントツーポイント・サービスを利用する。この通信にパケット交換プロトコルを使用するが、実施例では、データ・バッファリングの必要をなくすためパケット長を（長さ５１ビットの）単一ワードに制限している。データ・パケット内の経路選択情報を利用して、特定の適応型コア９５０を選択し、その後、選択された適応型コア９５０のルート・レベルを選択し（または選択せず）、さらに選択された適応型コア９５０の特定のノード（１１０または８００）を選択する。この選択経路は、図１１および１２の例示されている接続に従って視覚化することができる。特定のノードから出るデータ・パケットの経路選択は、これもまた同様に実行することができるが、後述のように、ノード８００またはクワッド９４０内で交換またはアービトレーションを行うなどにより、より直接的に実行することもできる。
【００６９】
図１３は、ノード８００およびノード・クワッド９４０を出入りするネットワーク相互接続の例を示すブロック図である。図１３を参照すると、経路選択要素９３５を介したＭＩＮ１００とノードとの接続は、共通入力９４５（クワッド９４０内の４つのノード８００すべてに供給される）と、特定のクワッド９４０内の他の（３つの）「ピア」ノードからの入力を含む。例えば、ピア・ノード１、２、および３からの出力は、ノード０への入力に使用されるという具合である。このレベルで、経路選択要素９３５は、例えば、ラウンド・ロビン、トークン・リング、アービタ、クロス・ポイント・スイッチ、または他の４路スイッチング要素として実装することができる。経路選択要素９３５からの出力は、対応するノード８００のマルチプレクサ９５５（または他のスイッチング要素）に、対応するノード８００からのフィードバック入力９６０および（データ・ネットワーク２４０からの）リアルタイム・データの入力とともに供給される（リアルタイム・データをノード８００に入力するための高速トラックを実現する）。マルチプレクサ９５５（または他のスイッチング要素）は、３つの入力のうち１つを選択する（スイッチングまたはアービトレーション）、つまり、選択されたピアまたは共通入力９４５からの入力を選択するか、またはフィードバックと同じノードから入力を選択するか、またはリアルタイム・データの入力を選択し、マルチプレクサ９５５の出力を、対応するノード８００に（ノードのパイプライン・レジスタ８１５を介して）入力されたネットワーク（ＭＩＮ１１０）として供給する。
【００７０】
ノード８００の出力は、ノード８００内のデータ集積器および選択器（「ＤＡＳ」）８５０に供給され、これにより、ノード自体（同じノード・フィードバック）、またはネットワーク（ＭＩＮ１１０）（他のノードまたは他のシステム要素への経路選択のため）、またはデータ・ネットワーク２４０（リアルタイム・データ出力のため）への出力情報の経路選択が決定される。ＭＩＮ１１０への経路選択のため出力情報が選択されると、ＤＡＳ８５０からの出力は対応する出力経路選択要素９３５に送られ、そこで、出力情報の経路はクワッド９４０内のピア・ノードへの経路、または共通出力９６５を通して特定のクワッド９４０から外へ向かう経路選択（他のノード・クワッド９４０への経路選択、ノード象限９３０への経路選択、または適応型コア９５０への経路選択など）のため他の後続の経路選択要素９３５への経路に設定される。
【００７１】
図１４は、データ構造の実施例を示すブロック図である。システム実施形態９００では、データ・パケット（データ構造例としての）９７０を使用して、ポイントツーポイント・データおよび構成情報の転送を利用しており、本明細書ですでに説明しているように、「ｓｉｌｖｅｒｗａｒｅ」の形態例としてみなすことができる。データ・パケット９７０の例では、１パケット当たり５１ビットを使用し、経路選択フィールド（９７１）に８ビット、セキュリティ・フィールド（９７２）に１ビット、サービス・コード・フィールド（９７３）に４ビット、補助フィールド（９７４）に６ビット、データ（データ・ペイロードまたはデータ・フィールドとして）（９７５）に３２ビット（１ワード長）を確保する。上記のように、経路選択フィールド９７１は、さらに、適応型コア選択（９７６）、ルート選択（９７７）、およびノード選択（９７８）用のフィールドに分割できる。この選択された５１ビットの実施形態では、最大４つまでの適応型コアを選択することができ、適応型コア１つにつき最大３２ノードとすることができる。パケットの経路選択が行われるときに、経路選択プロセスでの使用と同時にパケットから経路選択ビットを剥ぎ取ることができる。サービス・コード・フィールド９７３では、ポイントツーポイント・プロセス間通信、データ・フロー制御の肯定応答、「ｐｅｅｋｓ」および「ｐｏｋｅｓ」（Ｋノードによるメモリ８４５への読み書きを意味する用語として作り出された）、ＤＭＡ操作（メモリ移動用）、およびメモリ８４５への読み書きのためのランダム・アドレス指定などの指定を行う。補助（ＡＵＸiliary：ＡＵＸ）フィールド９７４は、後述のように、適応型実行ユニット８４０上で実行される最大３２個までのタスクに対し最大３２本までのストリームをサポートし、構成情報ペイロードと考えられる。そこで、１ワード長（３２ビット）データ・ペイロードがデータ・フィールド９７５で与えられる。データ構造９７０の例（データ・パケットとして）は、上述のように、データおよび構成／制御情報の相互デジタル化を例示している。
【００７２】
図１０を参照し、上述の第１のシステム９００の構造およびデータ構造をふまえ、第２の装置実施形態のノード８００のアーキテクチャについて詳述できる。入力パイプライン・レジスタ８１５を使用して、ネットワーク相互接続１１０からデータおよび構成情報を受信する。入力パイプライン・レジスタ８１５ではデータのストールを許さないのが好ましい。より具体的には、本発明のデータ・フロー・モデリングによれば、入力パイプライン・レジスタ８１５は、クロック期間毎に相互接続ネットワーク１１０から新規データを受け入れる必要があり、したがって、データは生成されるとともに消費されなければならない。このため、ノード８００内の入力パイプライン・レジスタ８１５と他の資源の間の争奪問題はその入力パイプライン・レジスタ８１５に有利な形で解決されなければならないという要件が課される、つまり、入力パイプライン・レジスタ内の入力データはさまざまな経路選択（またはスイッチング）要素９３５、マルチプレクサ９５５、または使用可能なその他のスイッチングまたはアービトレーション要素で実装される選択プロセスにおいて優先する。
【００７３】
データ復号器および分配器８２０は、５１ビット・データ構造のサービスおよび補助フィールド内の値に基づき、入力パイプライン・レジスタ８１５とノード８００内の各種メモリ（例えば、８４５）およびレジスタ（例えば、８２５）、ハードウェア・タスク・マネージャ８１０、およびＤＭＡエンジン８３０とのインターフェースとなる。データ復号器８２０は、さらに、（構成情報またはオペランド・データの）５１ビット・ネットワーク・データ構造のセキュリティ、サービス、および補助フィールドを復号化し、受け取ったワードをノード８００内の目的の宛先に送る。
【００７４】
逆に、ノード８００からネットワーク（ＭＩＮ１１０または他のノード）へのデータ転送には、ノード８００の各種メモリ（８４５）またはレジスタ（例えば、８２５または適応型実行ユニット８４０内のレジスタ）の１つからのデータを保持する出力パイプライン・レジスタ８５５、適応型実行ユニット８４０、ＤＭＡエンジン８３０、および／またはハードウェア・タスク・マネージャ８１０が使用される。出力パイプライン・レジスタ８５５にデータをロードする許可は、ノード８００の各種（４つの）コンポーネントの競合する需要（つまり、ハードウェア・タスク・マネージャ８１０、適応型実行ユニット８４０、メモリ８４５、およびＤＭＡエンジン８３０からの要求）を調停または選択するデータ集積器および選択器（ＤＡＳ）８５０により与えられる。データ集積器および選択器８５０は、１つまたは複数の要求があり、出力パイプライン・レジスタ８５５が使用可能な場合に限りただ１つの許可を発行する。選択された実施形態では、このような許可の発行に対する優先度は、１番目に、Ｋノードのｐｅｅｋ（読み込み）データ、２番目に、適応型実行ユニット８４０の出力データ、３番目に送信元ＤＭＡデータ、４番目に、ハードウェア・タスク・マネージャ８１０のメッセージ・データの順である。出力パイプライン・レジスタ８５５は、空の場合、または現在のクロック・サイクルの終わりにその内容が他のレジスタに転送される場合に使用可能である。
【００７５】
ノード８００のＤＭＡエンジン８３０は任意選択のコンポーネントである。一般に、ＤＭＡエンジン８３０は、５レジスタ・モデルに従い、開始アドレス・レジスタ、アドレス・ストライド・レジスタ、転送カウント・レジスタ、デューティ・サイクル・レジスタ、および制御レジスタを備える。ＤＭＡエンジン８３０内の制御レジスタは、ＧＯビット、ターゲット・ノード番号および／またはポート番号、およびＤＯＮＥプロトコルを使用する。Ｋノード９２５は、データ転送が完了したときに、レジスタを書き込み、ＧＯビットをセットし、ＤＯＮＥメッセージを受信する。ＤＭＡエンジン８３０を使用すると、ノード８００のメモリから、オンチップ・バルク・メモリ、外部ＳＤＲＡＭメモリ、他のノードのメモリ、または診断および／または運用目的のＫノード・メモリなどの他のメモリへのブロック移動が簡単になる。ＤＭＡエンジン８３０は、一般に、Ｋノード９２５により制御される。
【００７６】
ハードウェア・タスク・マネージャ８１０は、Ｋノード９２５により構成され、制御され、ＤＭＡエンジン８３０以外のすべてのノード・コンポーネントとインターフェースする。ハードウェア・タスク・マネージャ８１０は、各ノード８００上で実行され、タスク・リストを処理し、先入れ先出し（ＦＩＦＯ）メモリとして実装されるタスク実行可キュー(task ready-to-run queue)を生成する。ハードウェア・タスク・マネージャ８１０は、個々のハードウェア・タスク・マネージャ・コンポーネントを制御する多数の下位有限状態機械とインターフェースする最上位レベルの有限状態機械を備える。ハードウェア・タスク・マネージャ８１０は、適応型実行ユニット８４０による指定されたタスクの実行のため適応型実行ユニット８４０内の計算要素２５０の構成および再構成を制御する。
【００７７】
Ｋノード９２５は、ハードウェア・タスク・マネージャ８１０を初期化し、通信プロセッサまたはＭＰ３プレーヤとしての動作など、所定の動作モードに必要なタスクのセットアップ情報をマネージャに供給する。Ｋノード９２５は、メモリ８４５および適応型実行ユニット８４０内のローカル・メモリ内に格納されている（タスク）プログラムとして構成情報を供給する。Ｋノード９２５は、入力ポート、出力ポート、経路選択情報、実行されるオペレーション（タスク）の種類（例えば、ＦＦＴ、ＤＣＴ）、およびメモリ・ポインタを指定することにより、ハードウェア・タスク・マネージャ８１０を（パラメータ・テーブルとして）初期化する。Ｋノード９２５はさらに、ＤＭＡエンジン８３０も初期化する。
【００７８】
ハードウェア・タスク・マネージャ８１０は、ポート変換テーブルを保持し、ポイントツーポイント・データ配信のためのアドレスを生成し、入力ポート番号を、着信データを格納するメモリ８４５の場所の現在のアドレスにマッピングする。ハードウェア・タスク・マネージャ８１０は、データ・フロー制御サービスを実行し、対応する生成および消費カウンタを使用してデータの生成および消費の両方を追跡し、それにより、データ・バッファが指定されたタスクで使用可能かどうかを判別する。ハードウェア・タスク・マネージャ８１０は、タスクの、および選択された実施形態では最大３２個までのタスクの状態テーブルを保持する。状態テーブルは、ＧＯビット（Ｋノード９２５により有効化されるか、または有効化されない（サスペンド））、タスクの状態ビット（アイドル、実行可、実行（実行中））、入力ポート・カウント、および出力ポート・カウント（入力データおよび出力データを追跡するため）を含む。選択された実施形態では、最大３２個までのタスクを所与の時間に有効にすることができる。指定され有効にされたタスクについては、状態がアイドルであれば、また十分な入力データ（入力ポートから）が利用でき、十分な出力ポートが出力データに利用できる場合、その状態は実行可に変更され、実行中のためキューに入れられる（実行可ＦＩＦＯまたはキューに転送される）。通常、適応型実行ユニット８４０には、構成情報（またはコード）および２つのデータ・オペランド（ｘおよびｙ）が送られる。
【００７９】
実行可キューから、タスクはアクティブなタスク・キューに転送され、適応型実行ユニット８４０はそのタスク（セットアップ）について構成され、タスクは適応型実行ユニット８４０により実行され、出力データは、データ集積器および選択器８５０に供給される。この実行の後、適応型実行ユニット８４０は肯定応答メッセージをハードウェア・タスク・マネージャ８１０に送り、次の項目を要求する。その後、ハードウェア・タスク・マネージャ８１０は、適切に設定されている同じ構成でデータの処理を続行するか、または現在の構成を破棄し、その破棄の完了に関する肯定応答を送り、実行可キューに次のタスクを要求するよう、適応型実行ユニット８４０に指令を送る。選択されたアルゴリズムを実行するように構成した後、ハードウェア・タスク・マネージャ８１０からの新しい構成情報は必要でなく、適応型実行ユニット８４０は実際にＡＳＩＣのように機能し、ハードウェア・タスク・マネージャ８１０への肯定応答メッセージ伝送の追加オーバーヘッドはわずかである。これらのオペレーションについて、以下で詳述する。
【００８０】
モジュールは、自給型のコード・ブロック（プロセッサにより実行される）またはハードウェア実装機能（構成された計算要素２５０として実装）であり、実行ユニット８４０により処理または実行される。タスクはモジュールの１つのインスタンスであり、サスペンド、アイドル、使用可、または実行の４つの状態を持つ。タスクは、タスクを特定のノード８００上の特定のモジュール（計算要素２５０）に関連付ける、モジュールの物理的メモリおよび論理入力バッファ、論理出力バッファ、論理入力ポート、および論理出力ポートを関連付ける、そのタスクに対する構成パラメータを初期化するという方法で生成される。タスクを形成するには、タスクが生成されるノード８００内の制御レジスタをＫノードが書き込み（つまり、タスクを実行する計算要素２５０の構成を有効にする）、そのタスクに対するデータを生成し、かつ／またはそのタスクからのデータを消費する他のノードがあれば、それらのノード内の制御レジスタにＫノードが書き込む。これらのレジスタは、Ｋノードのアドレス空間にマッピングされたメモリであり、「ｐｅｅｋ  ａｎｄ  ｐｏｋｅ」ネットワーク・サービスを使用して、これらの値を読み書きする。新規に作成されたタスクは、「サスペンド」状態で開始する。
【００８１】
タスクが構成されると、Ｋノードは「ｇｏ」コマンドを発行することができ、ハードウェア・タスク・マネージャ８１０内の制御レジスタのビットをセットする。このコマンドは、「サスペンド」状態から「アイドル」状態にタスクを移行させる動作をする。タスクが「アイドル」であり、すべての入力バッファおよび出力バッファが利用可能な場合、そのタスクは、ＦＩＦＯとして実装されている「実行可」キューに追加され、タスク状態は「実行可／実行」に変更される。バッファは、後続のタスク実行で入力バッファ内に存在している以上のデータを消費しないか、または出力バッファ内のキャパシティを超えるデータを生成しないときにタスクで利用できる。
【００８２】
適応型実行ユニット８４０が使用中でなく、ＦＩＦＯが空でない場合、ＦＩＦＯから実行可状態の次のタスクに対するタスク番号が削除され、このタスクの状態は「実行」になる。「実行」状態では、タスク（構成された適応型実行ユニット８４０により実行される）は入力バッファからのデータを消費し、出力バッファ向けのデータを生成する。
適応型実行ユニット８４０は、実装されたノード８００の種類に応じて異なる。異成分からなるノード８００で使用する、例えば、プログラム可能ＲＩＳＣ処理ノード、プログラム可能ＤＳＰノード、算術演算ノードなどの特定のドメインの適応型または再構成可能ノード、および適応型ビット操作ユニット（ＲＢＵ）用に、さまざまな適応型実行ユニット８４０を専用設計で実装することができる。さまざまな適応型実行ユニット８４０について、以下で詳述する。
【００８３】
例えば、ノード８００は、実行ユニット８４０を通じて、数百または数千クロック・サイクルを超える、独立のオペレーション、ロード／ストア、メモリ・フェッチなどの長いシーケンスを実行するのと比べて、１または２クロック・サイクルなど、比較的少ないクロック・サイクルでアルゴリズム要素全体を実行し、結局は、同じ最終結果が得られる。計算要素２５０を通じて、他の異なるアルゴリズム要素を実行するように実行ユニット８４０を再構成することができる。アルゴリズム要素は、例えば、基数２の高速フーリエ変換（ＦＦＴ）、基数４の高速フーリエ変換（ＦＦＴ）、基数２の逆高速フーリエ変換（ＩＦＦＴ）、基数４の逆高速フーリエ変換（ＩＦＦＴ）、１次元離散コサイン変換（ＤＣＴ）、多次元離散コサイン変換（ＤＣＴ）、有限インパルス応答（ＦＩＲ）フィルタ処理、畳み込み符号化、スクランブリング、パンクチャリング、インターリービング、変調マッピング、Ｇｏｌａｙ相関、ＯＶＳＦ符号生成、アダマール変換、ターボ復号化、ビット訂正、Ｇｒｉｆｆｉｔｈｓ  ＬＭＳアルゴリズム、可変長符号化、アップリンク・スクランブリング符号生成、ダウンリンク・スクランブリング符号生成、ダウンリンク逆拡散、アップリンク拡散、アップリンク連結、Ｖｉｔｅｒｂｉ符号化、Ｖｉｔｅｒｂｉ復号化、巡回冗長符号化（ＣＲＣ）、複素乗算、データ圧縮、動き補償、チャネル探索、チャネル収集、およびマルチパス補正などの複数のアルゴリズム要素から選択できる。
【００８４】
一実施例では、計算要素２５０の種類および量を変更し（計算ユニット２００を形成する）、それぞれのノード８００の実行ユニット８４０を形成する相互接続（スイッチングまたは経路選択要素を含む）の種類、量、および場所を変更することにより、複数の異なるそのようなノード８００を生成する。この実施例では、２つの異なるノード８００は、一般に、算術演算または数学的アルゴリズムを実行し、適応型（または再構成可能）算術演算ノード（ＡＮ）としてＡＮ１およびＡＮ１と呼ばれる。例えば、ＡＮ１ノードは、複数の異成分からなる再構成可能ノードの第１のノード８００として、複数の異成分からなる計算要素から計算要素２５０をまず選択し、高速フーリエ変換（ＦＦＴ）および離散コサイン変換（ＤＣＴ）を実行する第１の再構成可能算術演算ノードを形成する。この例の続きでは、ＡＮ２ノードは、複数の異成分からなる再構成可能ノードの第２のノード８００として、複数の異成分からなる計算要素から計算要素２５０の第２の選択を行い、第２の再構成可能算術演算ノードを形成するが、第２の選択は第１の選択とは異なり、多次元離散コサイン変換（ＤＣＴ）、有限インパルス応答（ＦＩＲ）フィルタ処理、ＯＶＳＦ符号生成、アダマール変換、ビットＷＣＤＭＡターボ・インターリーブ、ＷＣＤＭＡアップリンク連結、ＷＣＤＭＡアップリンク反復、およびＷＣＤＭＡアップリンク実拡散および利得スケーリングの算術演算要素のうちの少なくとも２つを実行する。
【００８５】
また、この実施例では、複数の他の種類のノード８００も、例えば以下のように、定義されている。
【００８６】
ビット操作ノードは、複数の異成分からなる再構成可能ノードの第３のノードとして、複数の異成分からなる計算要素から計算要素２５０の第３の選択をし、第３の選択は第１の選択と異なり、可変および複数レート畳み込み符号化、スクランブリング符号生成、パンクチャリング、インターリービング、変調マッピング、複素乗算、Ｖｉｔｅｒｂｉアルゴリズム、ターボ符号化、ターボ復号化、補正、非線形フィードバック・シフト、ダウンリンク逆拡散、アップリンク拡散、ＣＲＣ符号化、逆パンクチャリング(de-puncturing)、および逆反復(de-repeating)のアルゴリズム要素のうち少なくとも２つを実行する。
【００８７】
再構成可能フィルタ・ノードは、複数の異成分からなる再構成可能ノードの第４のノードとして、複数の異成分からなる計算要素から計算要素２５０の第４の選択をし、第４の選択は第１の選択とは異なり、適応型有限インパルス応答（ＦＩＲ）フィルタ処理、ＧｒｉｆｆｉｔｈのＬＭＳアルゴリズム、およびＲＲＣフィルタ処理のアルゴリズム要素のうちの少なくとも２つを実行する。
【００８８】
再構成可能有限状態機械ノードは、複数の異成分からなる再構成可能ノードの第５のノードとして、複数の異成分からなる計算要素から計算要素２５０の第５の選択をし、第５の選択は第１の選択とは異なり、制御処理、複数の異成分からなる計算要素２５０の間のデータおよび制御情報の経路選択、第１のアルゴリズム要素を実行するための複数の異成分からなる計算要素の構成および第２のアルゴリズム要素を実行するための複数の異成分からなる計算要素の再構成の指令およびスケジューリング、対応するデータを使用した複数の異成分からなる計算要素の構成および再構成のタイミング設定およびスケジューリング、複数の異成分からなる計算要素および相互接続ネットワークへの電力分配の制御、および複数の構成情報と混合したデータを含む単一ビット・ストリームから第１の構成情報および第２の構成情報を選択する操作のアルゴリズム要素のうちの少なくとも２つを実行する。
【００８９】
再構成可能マルチメディア・ノードは、複数の異成分からなる再構成可能ノードの第６のノードとして、複数の異成分からなる計算要素から計算要素２５０の第６の選択をし、第６の選択は第１の選択とは異なり、基数４の高速フーリエ変換（ＦＦＴ）、多次元の基数２の離散コサイン変換（ＤＣＴ）、Ｇｏｌａｙ補正、適応型有限インパルス応答（ＦＩＲ）フィルタ処理、ＧｒｉｆｆｉｔｈのＬＭＳアルゴリズム、およびＲＲＣフィルタ処理のアルゴリズム要素のうちの少なくとも２つを実行する。
【００９０】
再構成可能ハイブリッド・ノードは、複数の異成分からなる再構成可能ノードの第７のノードとして、複数の異成分からなる計算要素から計算要素２５０の第７の選択をし、第７の選択は第１の選択とは異なり、算術演算機能およびビット操作機能を実行する。
再構成可能入力および出力（Ｉ／Ｏ）ノードは、複数の異成分からなる再構成可能なノードの第８のノードとして、複数の異成分からなる計算要素から計算要素２５０の第８の選択をし、第８の選択は第１の選択とは異なり、複数の種類のＩ／Ｏ規格に入力および出力機能を適応させるが、複数の種類のＩ／Ｏ規格は、ＰＣＩバス、ユニバーサル・シリアル・バス・タイプ１およびタイプ２（ＵＳＢ１およびＵＳＢ２）、およびSmall Computer Systems Interface（ＳＣＳＩ）のうちの少なくとも２つに対応する規格を含む。
【００９１】
再構成可能オペレーティング・システム・ノードは、複数の異成分からなる再構成可能ノードの第９のノードとして、複数の異成分からなる計算要素から計算要素２５０の第９の選択をし、第９の選択は第１の選択とは異なり、複数のオペレーティング・システムのうち選択されたオペレーティング・システムを格納し実行する。
【００９２】
図１５は、本発明による第２のシステム実施形態１０００を例示するブロック図である。第２のシステム実施形態１０００は、複数のサイズ可変のノード（またはマトリックス）１０１０（ノード１０１０Ａから１０１０Ｘで例示されている）で構成され、また指定されたノード１０１０の例示されているサイズで、ノード１０１０内の計算要素２５０の個数とノード１０１０自体の中に含まれるメモリの量を示す。ノード１０１０は、上述のように、構成、再構成、経路選択などのために、相互接続ネットワーク１１０に結合されている。第２のシステム実施形態１０００は、ノード８００および上述の象限９３０およびクワッド９４０構成と異なっており、またより変化に富むシステム構成を例示している。
【００９３】
例示されているように、第２のシステム実施形態１０００は、大規模システム内の他の回路とともに使用するように設計されており、その結果、構成可能な入出力（Ｉ／Ｏ）回路１０２５を備え、これはＩ／Ｏ機能に対する構成可能な（図に別に示されていないが、対応する相互接続を通じて）複数の異成分からなる計算要素で構成される。構成可能な入出力（Ｉ／Ｏ）回路１０２５は、システム・バス（外部）、外部ＳＤＲＡＭと接続し、通信し、リアルタイムの入出力を実現する。Ｋノード（ＫＡＲＣ）１０５０は、上述のＫノード（ＫＡＲＣ）機能を備える。第２のシステム実施形態１０００はさらに、メモリ１０３０（メモリ・コントローラ付きのオンチップＲＡＭとして）およびメモリ・コントローラ１０３５（外部メモリ（ＳＤＲＡＭ）とともに使用する）を備える。また、装置１０００には、集積器／フォーマッタ１０４０および逆フォーマッタ／分配器１０４５が含まれ、データ集積器および選択器８５０およびデータ分配器および復号器８２０の機能にそれぞれ対応する機能を備えるが、ただし、大規模なシステム１０００の場合である（ノード８００の中でのことではなく）。
【００９４】
再び図１０を参照すると、すでに述べたように、ノード８００を手直しすることができるが、それには、適応型実行ユニット８４０の構成およびメモリ８４５のサイズを変更し、１つまたは複数の特定のアプリケーションまたはアルゴリズムを実行する。計算要素２５０の種類および量を変更し、また相互接続（１１０、２１０、２２０、２４０）の種類、量、および場所を変更することにより、さまざまな種類の多数のノード８００を作成することができる。例えば、デジタル・カメラ、ビデオ・カメラ、ビデオ電話アプリケーション、デジタルＴＶ、デジタル映画、ファクス機、コピー機、または可視スペクトル（光）信号からイメージを作成または再現する他の任意の個数のデバイスで使用することなどを目的として、光学データ処理を実行して処理されたデジタル・イメージを生成するようにＡＣＥ１００の１つまたは複数のノード８００の適応型実行ユニット８４０およびメモリ８４５を構成することができる。
【００９５】
一眼レフ（Ｓingle Ｌens Ｒeflex：ＳＬＲ）とコンパクト・カメラの両タイプを含む代表的な従来のカメラはＤＳＰまたはマイクロプロセッサ・ベースのデバイスである。一般に、電荷結合素子（「ＣＣＤ」）などの１つまたは複数の光学センサは、カメラに入ってきた光の量を検出する。光の量は、カメラのレンズ系によって捕捉された物体像によって異なる。カメラの光学センサによって生成されたその結果のデータは、本明細書では、物体の検出イメージと呼び、マイクロプロセッサまたはＤＳＰにより処理され、これを使用して、適切な露光および焦点などのカメラ設定を調整する（例えば、レンズ口径、シャッター速度、フラッシュ、オートフォーカスなど）。従来のデジタル・カメラの場合、その結果得られるＣＣＤからの（アナログ）データはデジタル・データに変換され、マイクロプロセッサまたはＤＳＰにより処理され、処理済みデジタル・イメージと本明細書では呼ぶオリジナルの検出されたイメージのデジタル形式を出力する。しかし、すでに述べたように、マイクロプロセッサは、実際のアルゴリズム・オペレーション−この場合、２値化されたイメージを出力するためにカメラ設定およびアルゴリズムを調整するために使用されるアルゴリズム−の実行に関して比較的不効率であり、したがって、ＡＣＥ１００などの他の種類のＩＣに比べてＩＣの専有面積および消費電力は著しく大きい。
【００９６】
図１６Ａは、本発明によるデジタル・カメラ１１００の例を示すブロック図である。図１６Ｂは、本発明によるデジタル・カメラ１１００の例の透視図である。デジタル・カメラ１１００の例では、適応型コンピューティング・エンジン（ＡＣＥ）１００を使用して、デジタル・イメージを処理し、処理済みデジタル・イメージをさまざまな出力に供給し、該当するカメラ設定を調整する。デジタル・カメラ１１００は、焦点合わせ手段１１０２（例えば、レンズ、シャッター、絞り、フィルタ、モータなど）、ＣＣＤタイプの光学センサ１１０４、アナログ−デジタル（「Ａ／Ｄ」）コンバータ１１１８（ＡＣＥ１００に付属する場合もある）、ＡＣＥ１００（例えば、１つまたは複数のノード８００）、メモリＩＣ１１１０などの１つまたは複数のメモリおよび取り外し可能メモリまたは記憶媒体１１１２（例えば、フラッシュ・メモリ、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、ＦｅＲＡＭ、ＭＲＡＭ、ＲＯＭ，ＥＰＲＯＭ、および／またはＥＥＰＲＯＭ）、ＡＣＥ１００のデジタル出力（処理済みデジタル・イメージまたは複数の処理済みデジタル・イメージ・データ・パケット）をテレビ出力ポート１１１６および表示（ファインダ）画面１１０６などの１つまたは複数のアナログ出力ポートとをインターフェースするアナログ出力インターフェース１１０８、いくつかの実施形態では、ＡＣＥ１００のデジタル出力を（複数の処理済みデジタル・イメージ・データ・パケットとして）コンピュータ出力ポート１１１４（または、別に例示されてはいないが、プリンタ・ポート、データ伝送ポートなど）などの１つまたは複数のデジタル出力ポートとインターフェースするデジタル出力インターフェース１１２０、および任意選択の光学ファインダ１１１８を備える。デジタル・カメラ１１１０の例のファインダ画面１１０６は、カラー液晶表示装置（ＬＣＤ）画面であるのが好ましいが、他の種類の適当な画面を使用することもできる。さらに、フラッシュ・メモリは通常、デジタル・カメラ１１１０の例で作成される処理済みデジタル・イメージを格納するための取り外し可能メモリ１１１２として使用されるが、処理済みデジタル・イメージはさらに、他のメモリＩＣ、ディスケット、ＣＤ、ＰＣまたはＰＣＭＣＩＡカード（または物理的サイズ、重量、アスペクト、およびその他の特性が携帯型カメラなどの可搬性に適しているような特定のイメージ処理デバイスの設計に好適な他の適当な記憶媒体）などの他の形態のメモリに格納することもできる。
【００９７】
デジタル・カメラ１１００では、露光すると化学的変化を生じるフィルムにイメージを捕捉するのではなく、後でデジタル形式に変換される各ピクセルまたは要素に対するある種の電気的信号を発生する感光アレイ（ピクセルとして編成されるかまたは通常ピクセルと呼ばれる）を備える光学センサ１１０４を使用する。物体を透過した、または物体から反射された光は、物体像として、光学センサ（１１０４、１２０４）上に投影または集束される（焦点合わせ手段１１０２により）。デジタル・カメラ１１００内での感光は、通常、光学センサ１１０４に投影された物体像から電荷結合素子（ＣＣＤ）により実行され、検出イメージを出力することができる。例えば、ＣＣＤとして実現される場合、光学センサ１１０４は、電荷が記憶領域内を移動する半導体材料である。次に、光学センサ１１０４から出力された電荷（つまり、電気的信号）は、Ａ／Ｄコンバータ１１０８に送られる。Ａ／Ｄコンバータ１１１８は、電気的信号をサンプリングし、その電気的信号をデジタル形式に変換し（つまり、それぞれの光学センサ要素上の電荷のレベルに対応するデジタル値を供給する）、（焦点合わせ手段１１０２により光学センサ１１０４上に投影された物体像から検出された）検出イメージを表すデジタル・イメージ情報を供給する。選択された実施形態に応じて、Ａ／Ｄコンバータ１１１８からのこのデジタル・イメージ情報はまた、図１４に例示されているデータ構造を持つデジタル・イメージ情報データ・パケットなどの複数のデジタル・イメージ情報データ・パケットとして（ノード８００に）供給することもできる。
【００９８】
デジタル・イメージ情報（または複数のデジタル・イメージ情報データ・パケット）はＡＣＥ１００に供給され、そこで、処理され、処理済みデジタル・イメージ（または、同等のことであるが、複数の処理済みデジタル・イメージ・データ・パケット）を生成する。ＡＣＥ１００から、処理済みデジタル・イメージ（または複数の処理済みデジタル・イメージ・データ・パケット）がさまざまな出力、例えば、メモリ１１１０、長期記憶用のまたは処理済みデジタル・イメージからデジタル写真を印刷するために使用される取り外し可能（または交換可能）メモリ１１１２（場合によっては、デジタル出力インターフェース１１２０を介して）、デジタル出力インターフェース１１２０（任意選択）、さまざまなデジタル・ポート（コンピュータ・ポート１１１４またはプリンタ・ポートなど、ただし別に例示されていない）、表示（ファインダ）画面１１０６またはテレビ画面（テレビ出力ポート１１１６などのアナログ出力ポートを介する）のいずれかに表示するのに好適なアナログ形式に変換するためのアナログ出力インターフェース１１０８に送られる。
【００９９】
上記のように、データは一般に、ＭＩＮ１１０上で、図１４に例示されている構造を持つデータ・パケットのなどの、データ・パケットの形式で転送される。したがって、選択された実施形態に応じて、Ａ／Ｄコンバータ１１１８からのデジタル・イメージ情報は、複数のデジタル・イメージ情報データ・パケットの形態をとることができ、これらは、ノード８００の入力パイプライン・レジスタ８１５に送られる。
【０１００】
さらに、選択された実施形態に応じて、複数のノード８００を使用してＡＣＥ１００を形成する場合などに、さまざまなノード８００により出力データ・パケットが出力パイプライン・レジスタ８５５を介して供給される。デジタル・イメージ処理では、これらの出力データ・パケットは、処理済みデジタル・イメージを含む複数のデータ・ワードからなるデータ・ペイロードを持つ、つまり、出力データ・パケットは複数の処理済みデジタル・イメージ・データ・パケットである。次に、デジタル出力インターフェース（図１７の１１２０または１２２２）は、複数の処理済みデジタル・イメージ・データ・パケットからなるデータ・ワードを組み立てて、全体的なまたは完全な処理済みデジタル・イメージを形成することができる（さらに、印刷、コピー、格納、アナログ形式への変換などを行える）。他の実施形態では、さまざまなデジタル・イメージ処理アプリケーションは、複数の処理済みデジタル・イメージ・データ・パケットを直接使用することができ、またもしそうならば、そのようなデジタル出力インターフェースを使用して、複数の処理済みデジタル・イメージ・データ・パケットから処理済みデジタル・イメージを組み立てることは、装置１１００では必要ない。同様に、アナログ出力については、処理済みデジタル・イメージをアナログ形式に変換する（デジタル−アナログ（「Ｄ／Ａ」）変換）アナログ出力インターフェース１１０８では、同様に、複数の処理済みデジタル・イメージ・データ・パケットからなるデータ・ワード・ペイロードから処理済みデジタル・イメージのそのような組み立てを行うことができる（その後、アナログ形式への変換が行われる）。
【０１０１】
デジタル・カメラ１１００の例で使用される光学センサ１１０４（ＣＣＤなど）（または、後述の光学センサ１２０４）の設計は、アプリケーション毎に異なり、本発明の目的については、光学センサは物体から（一般に、焦点合わせ手段１１０２を通じて）投影または反射された光信号を処理可能な電気的形態（蓄積された電荷または電圧など）に変換するだけでよく、そのようなすべての光学センサは本発明の範囲内にある。光学センサ１１０４、１２０４は、通常、ＣＣＤ、電荷注入素子（「ＣＩＤ」）、光学ＣＭＯＳ（受動的または能動的ピクセル・センサ）、光学バイポーラ接合型トランジスタ（「ＢＪＴ」）、フォトゲートまたはフォトダイオード・アレイなどのソリッドステートＩＣ素子であり、そのうちどれかは、線形またはフル・フレーム・アレイ(full frame arrays)でよく、任意の種類の電荷または他の情報読み出し機能を備え、ダーク・ピクセル(dark pixels)およびアンチブルーム・ドレイン(antibloom drain)、マイクロレンズ、カラー・フィルタ・アレイなどを備えることもできる。さらに、異なる検出器アレイを利用する他の種類の光学センサは、さまざまな光学センサ・アプリケーションで使用される。例えば、１ページ分のテキストまたはグラフィックスからキャプチャされた輝度変動を電気的信号に変換するように構成されている光学センサを使用して、以下で詳述するコピー機、スキャナ、およびファクス機と一般に関連するゼログラフィ（つまり、乾式コピー）を実行できる。このような状況で光学センサを使用することで、光導電性（つまり、電流が流れることに耐えられるある種の物質は、光に晒されたときに導電性が高まる）をテキストおよびグラフィックス材料に応用し、テキストおよびグラフィックス材料の複数のコピーを生成することができる。
【０１０２】
図１７は、本発明によるファクシミリ、スキャナ、またはコピー機１２００の例を示すブロック図である。ファクス機／スキャナ／コピー機１２００の例では、適応型コンピューティング・エンジン（ＡＣＥ）１００（例えば、１つまたは複数のノード８００）を使用して、デジタル・イメージ情報を処理し、処理済みデジタル・イメージを出力する。さまざまな実施形態ではさらに、紙への印刷または乾式コピーなどにより有形な媒体上に表示するため処理済みデジタル・イメージを変換する。ファクス機／スキャナ／コピー機１２００の例は、一般に、光源１２０２、光学センサ１２０４、Ａ／Ｄコンバータ１２１６（ＡＣＥ１００内に備えることもできる）、ＡＣＥ１００（例えば、１つまたは複数のノード８００）、デジタル出力インターフェース（またはポート）１２２２（選択された実施形態に応じて）、レーザ・プリンタ、インクジェット・プリンタ、または他のプリンタ（レーザ、インクジェット、または他のプリント・ヘッドを含み、また選択された実施形態、ドラム荷電電極、回転ドラムなどの他の印刷メカニズムに応じて）などのプリンタ（または印刷手段）１２１０、乾式コピー機１２２０（ゼログラフィまたは他の乾式コピー・メカニズムまたは手段）、およびアナログ、デジタル、ＤＳＬ、またはケーブル・モデムなどのデータ送信器１２０６（ＡＣＥ１００も含むことができる）（ファクス送受信または他のデータ送信用）を含む。選択された実施形態では、装置１２００は、さらに、上述のように、焦点合わせメカニズムを備えることもできる。
【０１０３】
さまざまな印刷メカニズム１２１０または乾式コピー機（ゼログラフィ）メカニズム１２２０は、当業で知られているように、または当業で知られることになるように実装することができ、一般に、紙またはその他の媒体の収納および供給、照合、ユーザ・インターフェース、および物理的イメージ生成（例えば、プリント・ヘッド（レーザ、インクジェット）、トナー・カートリッジ、ドラム、荷電電極など）のためのコンポーネントを備える。データ伝送メカニズム１２０６は、さらに、無線リンク（無線周波数（ＲＦ）リンクなど）、有線または他のバス・リンク、Ｅｔｈｅｒｎｅｔ（登録商標）リンク、またはインターネットなどの公衆通信回線リンクを含むこともできる。ファクス機／スキャナ／コピー機１２００の例を、スキャンなどのためにコンピュータ１２３０に結合することもできる。ファクス機／スキャナ／コピー機１２００の例には、本発明の範囲内にあるさまざまな実装が考えられることに留意されたい。これらのさまざまな実施形態については、本発明では、光学センサ（１１０４または１２０４）およびＡＣＥ１００（例えば、１つまたは複数のノード８００）を必要とし、これらのコンポーネントは、１つまたは複数のプリンタ１２１０、乾式コピー機（または、それと同等の、ゼログラフィ手段）１２２０、またはデータ送信器１２０６に組み込むことで、選択された実施形態を形成することができる。
【０１０４】
ファクス機／スキャナ／コピー機１２００の例は、イメージをキャプチャする動作をし（また、テキストまたはグラフィックス材料の１つまたは複数のコピーを送信または生成する）、光学センサ１２０４は、光源１２０２を使用して物体（ここでは大きな「Ｐ」で示されている）から反射された光を（物体像として）受け取り、物体像の明暗領域を変化する電圧（または電荷）として登録する（そして検出イメージを形成する）。図１６で説明されているデジタル・カメラ１１００の例と全く同様に、電圧（または電荷）の変動は、検出イメージとして、光学センサ１２０４の感光ピクセルのアレイによりキャプチャされた明暗領域に相関する。光学センサ１２０４は、光学センサ１１０４に関してすでに説明したようにどのような種類の光学センサでもよい。光学センサ１２０４から出力されたアナログ電気的信号は、検出イメージの輝度変動を表す（そして、物体像の輝度変動に対応する）一連の電圧（または電荷）で構成される。アナログ電気的信号は、Ａ／Ｄコンバータ１２１６によりデジタル・ビット列に変換されるか、またはすでに述べたように、複数のデジタル・イメージ情報データ・パケットに変換される。デジタル・ビット列は、本明細書ではデジタル・イメージ情報（または、それと同等であるが、複数のデジタル・イメージ情報データ・パケット）とも呼ばれ、ＡＣＥ１００によって受信され、処理されて、ファクス送受信の使用、スキャン・イメージとしての表示、印刷、またはコピー機としての乾式コピーに好適な処理済みデジタル・イメージまたは複数の処理済みデジタル・イメージ・データ・パケット（光学センサ１２０４上に投影または反射される物体像に対応する）を出力する。当業者には周知のように、光学センサ１２０４、ＡＣＥ１００、またはＡ／Ｄコンバータ１２１６は、チップ上のシステム（「ＳＯＣ」）実施形態と同じ半導体（ＩＣ）上、または回路基板（例えば、プリント回路基板）上で結合されている複数のＩＣ上の同じ場所に配置または集積化することができる。
【０１０５】
ＡＣＥ１００による処理が完了した後、処理済みデジタル・イメージ（装置１１００または１２００のいずれかからの）は、プリンタ１２１０を介した印刷および乾式（ゼログラフィ）コピー機１２２０を介した乾式コピーを含む、さまざまなメカニズムを使用して有形な媒体上に物理的に実現または他の何らかの手段により表示するか、またはデータ伝送メカニズム１２０６を介して複数の場所に送信し、複数のアプリケーションで使用することができる。例えば、処理済みデジタル・イメージは、リモートのファクス機の受信側に、プリンタに、携帯電話に、コンピュータ画面上に表示するためコンピュータに、またはネットワーク（インターネットなど）に送信することができる。さらに、例えば、データ伝送メカニズム１２０６は、１つまたは複数のモデム１３０４、無線周波数（Ｒadio Ｆrequency：ＲＦ）リンク１３０６、有線バス・リンク１３０８、Ｅｔｈｅｒｎｅｔ（登録商標）リンク１３１０、またはインターネットなどの公衆通信回線リンク１３１２を含むこともできる。受信側デバイスは、１つまたは複数のコンピュータ１３１４を含むことができ、そのようなものとしては、ラップトップ、デスクトップ、またはハンドヘルド・コンピュータ、携帯電話１３１６、プリンタ１３１８、または受信用ファクス機１３２０、または物体像（そして、おそらく物体）に対応する（処理済みデジタル・イメージからの）最終コピーを表示または印刷する他のデバイスがある。
【０１０６】
例えば、再び図１７を参照すると、受信側デバイスが受信用ファクス機であれば、着信するデジタル・ビット列（処理済みデジタル・イメージを表す）に対応してレーザ・ビームがオン、オフし、イメージの明領域に対応する、ドラム電荷電極によりすでに帯電している回転ドラムの領域を放電する。オリジナルの物体像のピクセル化された最終コピーは、媒体、例えば、受信側で出力する紙の上に再現される。当業者であれば、印刷またはゼログラフィ（乾式コピー）手段の適当な種類のものを使用できること、およびすべてが本発明の範囲内にあることを理解するであろう。
【０１０７】
一般に、本発明によれば、光景またはテキストまたはグラフィックス材料の物体像をキャプチャするなど、物体像を検出するための光学センサは、静止画撮影、動画撮影、印刷、スキャン、コピー、テレビ、ビデオ、ビデオ電話、デジタルＴＶ、デジタル映画など、どのようなデジタル・イメージ処理アプリケーションでも、処理済みデジタル・イメージを生成するためにＡＣＥ１００とともに使用することができる。上記のように、アナログ−デジタル・コンバータ１１１８および１２１６は、別々に示されているが、光学センサの出力（検出イメージ）をデジタル・イメージ情報に変換する操作は、同じＩＣまたはＳＯＣ上のＡＣＥ１００と同じ場所に配置または集積化されているＡ／Ｄコンバータにより実行することができる。さらに、使用される光学センサの種類によっては、光学センサをＡＣＥ１００および／またはＡ／Ｄコンバータと同じＩＣに配置またはそこに集積化することもできる。例えば、ＡＣＥ１００を含むさまざまなノード８００は、ルート・レベル（図１１に示されている）の光学センサおよびＡ／Ｄコンバータと同じＩＣに配置または集積化することができ、その際に、デジタル・イメージ情報（Ａ／Ｄコンバータからの出力）をＭＩＮ１１０上で送信されるデータ・パケットの形式で埋め込む。他の実施形態では、光学センサ（Ａ／Ｄコンバータを使用可能）は、デジタル・イメージ処理を実行する１つまたは複数の再構成可能なノード８００とともに使用される１つまたは複数の固定された機能ノード８００（例えば、複数の感光およびＡ／Ｄ変換計算要素２５０で構成される）である、またはそのようにみなすことができる。（しかし、固定された機能光学ノードとしては、光学センサは上述のノード・ラッパのコンポーネントの多くを必要としないと考えられる。）また、量子化されたデジタル読み出し値を直接与える光学センサを開発できるとも考えられ、しかもそれは本発明の範囲にある。
【０１０８】
これらのさまざまな集積化（ＳＯＣ）または非集積化の実施形態において、本明細書では、光学センサはアナログ出力（例えば、ＣＣＤまたは光学ＣＭＯＳとして単独で実現する場合）またはデジタル出力（Ａ／Ｄ変換機能と一体化したＣＣＤまたは光学ＣＭＯＳとして組み合わせで実現した場合）のいずれかを生成することができるということが暗黙の了解となっている。したがって、本明細書で使用しているように、光学センサは、より一般的に、物体像（例えば、焦点合わせ手段から、または物体から反射された）を、構成され再構成される複数の計算要素によりさらに処理するのに好適な「イメージ情報」に変換するものと考えられ、イメージ情報がアナログの場合、Ａ／Ｄ変換の介在は暗黙のうちに存在する（アナログ検出イメージをデジタル・イメージ情報に変換する）。さらに、イメージ情報（またはデジタル・イメージ情報）を使用して、デジタル写真撮影、コピーまたは印刷などの１つまたは複数のイメージ処理アプリケーションに好適な処理済みデジタル・イメージを供給するために、複数の計算要素を第１のイメージ処理機能またはアルゴリズムに対して構成し、第２のイメージ処理機能またはアルゴリズムを実行するように再構成するが、第１のイメージ処理機能またはアルゴリズムは第２のイメージ処理機能またはアルゴリズムと異なる。
【０１０９】
光学センサ１１０４、１２０４により実行される、イメージ感知、または光検出は、一般に、光を一連の電荷（または電圧）として表される変化するアナログ電気的信号に変換するピクセルまたは画素（「ペル」）と一般に呼ばれる数百万個の感光セルからなるアレイにより実現される。数百万個からなるアレイの各感光セルは、物体像からの（または対応する）光の量を検出する。カラー・アプリケーションでは、感光セルは、特定の色（または周波数帯域）に対応する光の量も検出する。その結果、光学センサ１１０４、１２０４によって生成されるアナログ電気的信号は、感光セルのアレイに当たる光のさまざまな量に対応する。光を検出した後、光学センサ１１０４、１２０４は、電荷を順次、光学センサ（後述）の出力増幅器に移動してから、デジタル・イメージ情報ストリーム（または複数のデジタル・イメージ情報データ・パケット）に変換し、最後に、ＡＣＥ１００で処理する。
【０１１０】
光学センサ１１０４、１２０４の中央ビルディング・ブロックは、一般に、金属絶縁半導体材料である。一実施形態では、光学センサ１１０４、１２０４は、例えば、フォトダイオード・アレイまたはフォトゲート・アレイのいずれかを含むように構成することができる相補形金属酸化物半導体（ＣＭＯＳ）ＩＣを使用する。光が光学センサ１１０４、１２０４の感光ピクセルに当たると、エネルギーが（光子の形態で）吸収され、その後、放出されるか、または半導体シリコン層内に励起された電子を与える。ピクセル上の光が強ければ強いほど、放出される電子は多く、その結果そのピクセルに対して生じる電荷は大きくなる。
【０１１１】
その後、各ピクセルからの電荷（または電圧）が、例えば、カラムを読み出す、クロック・サイクル毎に一方のゲートから次のゲートへ電荷を移動する、水平シリアル読み出しロー・レジスタに送るなど、アレイ（線形またはフル・フレームなど）の種類に応じて、アレイから対応するレジスタ内に読み出される（または移動される）。これは、アレイ（ＣＭＯＳゲートのカラムとロー）のゲート電圧を系統的方式で制御し、電子を一方のゲートから次のゲートへ、順繰りに移動させることにより行われる。ＣＭＯＳゲートの各カラムの終わりで、シリアル読み出しロー・レジスタにより一度にロー１つずつピクセルの水平ローが収集され、そして、後でデジタル情報に変換するため（例えば、Ａ／Ｄコンバータ１１１８、１２１６により）、出力増幅器（出力の増幅を行う）に送られる。このプロセスにより、イメージの写真撮影、コピー、または送信に関連する２次元イメージを表すシリアル・データ・ストリーム、デジタル・イメージ情報が生成される。さまざまな実施形態において、このデジタル・イメージ情報はさらに、図１４に例示されているデータ構造例のデータ・ペイロード部分などで、ＭＩＮ１１０上でさまざまなノード８００に送信するため、データ・パケットで複数のデジタル・イメージ情報データ・パケットとして供給することもできる。
【０１１２】
例えば、イメージ・ピクセルの３×３アレイを持ち、イメージ・ピクセルあたり３つのＭＯＳゲートを備えるＣＣＤの場合、ＣＣＤが点灯したときに９個のピクセル上に電子イメージが作成される。次に、３×３アレイのカラムのそれぞれが、一度に１クロック・パルスずつ、一度に１ゲートずつ、並列にシフト・ダウンされる。シリアル読み出しロー・レジスタに到達した後、ピクセルは、一度に１ローずつ出力増幅器にシフト・アウトされる。シリアル・ロー全体がクロックと同期して出力されてから、ピクセル内容（つまり、電荷）の次のローがシリアル読み出しロー・レジスタに転送される。このプロセスは、すべてのイメージ・ピクセルの電荷が出力増幅器に転送されるのが完了するまで続く。
【０１１３】
上述の光学センサはカラムとローからなる単純なピクセル・アレイであるが、光学センサ１１０４、１２０４は、線形の１ライン・アレイ、フル・フレーム転送アレイ、フレーム転送アレイ（つまり、イメージ・ピクセル用に１つと記憶用に１つの、２つの同一アレイ）、またはインターライン転送アレイ(interline transfer array)（つまり、垂直転送レジスタにより隔てられているフォトダイオード）として構成することもできる。さらに、光学センサ１１０４、１２０４は、例えば、ニューロン・バイポーラ接合型トランジスタ（νＢＪＴ）構造またはサファイヤ上シリコンＣＭＯＳ構造などの適当なトランジスタ構造による適当な技術を使用して製作することができる。
【０１１４】
説明を簡単にするため、図１６Ａおよび１６Ｂのデジタル・カメラ１１００の例を使用して、対応する動作がファクス機、スキャナ、またはコピー機１２００で行われる、処理済みデジタル・イメージを出力する光学センサとともに使用することができる多数のＡＣＥ１００の構成を例示することができる。しかし、当業者には周知のように、ファクス機、コピー機、スキャナ、プロジェクタ、ビデオ・カメラなどそのオペレーションで光学センサを使用する他のデバイスも同様に、ＡＣＥ１００で構成することができる。
【０１１５】
再び、図１６Ａおよび１６Ｂのデジタル・カメラ１１００の例のオペレーションを参照すると、アナログ処理（上述の電荷読み出しおよび増幅）の完了後、検出イメージ（光学センサ１１０４出力として）は、アナログ−デジタル・コンバータ１１１８によりデジタル・イメージ情報に変換される。アナログ−デジタル・コンバータ１１１８は、光学センサの出力をサンプリングし、量子化して、アナログ電気的信号をデジタル・イメージ情報に変換する（つまり、電圧の高と低、または論理１と０の列であり、これはシリアル・ビット・ストリームまたは１つまたは複数のデジタル・イメージ情報データ・パケットである）。その後、デジタル・イメージ情報は、ＡＣＥ１００（後述）により処理され、例えば、デジタル・カメラ・アプリケーション、コピー・アプリケーション、印刷アプリケーション、ファクス送受信またはその他のデータ送信アプリケーションなど、多数のアプリケーションで使用するのに適している処理済みデジタル・イメージ（または、それと同等であるが、複数の処理済みデジタル・イメージ・データ・パケット）を生成することができ、コンピュータ画面に表示する、テレビ画面に表示する、メモリ１１１２に保存する、ＣＤまたはディスクに格納する、ファインダ画面１１０６に表示する、レーザまたはインクジェット・プリンタにより写真として印刷する、紙に乾式コピーする、無線または有線リンクで送信するなど、有形の媒体に表示したり格納したりすることができる。上述のように、処理済みデジタル・イメージが複数の処理済みデジタル・イメージ・データ・パケットとして供給されるときに、パケットを組み立てて処理済みデジタル・イメージを形成し、これを、例えば、デジタル出力インターフェースを使用するか、または直接アプリケーションにより、アプリケーションの中で使用することができる。
【０１１６】
処理済みデジタル・イメージは、さらに、マルチフレーム・アプリケーション（例えば、動いているイメージの写真撮影、ビデオ・カセット・レコーダ（ＶＣＲ））、マルチチャネル・アプリケーション（例えば、陽電子放出断層撮影（ＰＥＴ）走査）で使用したり、あるいは離れた場所で表示するため、ファクス機、コンピュータなどを介してリモート受信器に送信することもできる。
【０１１７】
また、図１６Ａおよび１６Ｂを参照すると、オートフォーカス・システムは、デジタル・カメラ１１００の例に備えられていれば、光学センサ１１０４およびＡＣＥ１００を使用して、小型モータ（別に示されていない）により焦点合わせ手段１１０２を調整または動かし、焦点の合っている物体像を入力として光学センサ１１０４に自動的に供給する。Ａ／Ｄコンバータ１１１８（および光学センサ１１０４）により供給されるデジタル・イメージ情報を使用することで、ＡＣＥ１００はまず、「エッジ・ポイント」を検出する（つまり、黒の背景色に白いシャツのようなコントラストが大きく変化する領域）。エッジ・ポイントでは、１つのピクセルは１つの値（例えば、黒を表す）を持つが、隣接するピクセルは非常に異なる値（例えば、白を表す）を持つことになる。検出されたエッジ・ポイントに関連する値に基づき、ＡＣＥ１００は、モータで焦点合わせ手段１１０４を調整し、エッジでの値の差が最大になるようにする。つまり、ＡＣＥ１００による焦点合わせ手段１１０４に対する調整が正しくないと（例えば、イメージに向けて外へではなくイメージから中へ調整する）、隣接するピクセルの値の差は小さくなる。
【０１１８】
さらに、図１６Ａおよび１６Ｂのデジタル・カメラ１１００の例に備えられている（または他の装置が光学センサおよびＡＣＥ１００を備える）場合、光学イメージ安定器システムは、動きセンサ（別に例示されていない）に結合されているＡＣＥ１００を使用して、レンズ・アクチュエータ（別に例示されていない）によりレンズ１１０４を上下、または左右に動かし、カメラの動きを補正する。
【０１１９】
一般に、イメージ・キャプチャまたは検出プロセスには不備があるため、さらに処理を行わないと、記録されたイメージは、通常、オリジナル・イメージまたは物体が歪んだり、劣化したイメージとなる。したがって、さまざまな種類の歪み、人為的影響、ノイズまたはノイズのような劣化がイメージに入り込む可能性があるため、物体像の収集から処理済みデジタル・イメージの生成までの間に、イメージが一方の形式から他方の形式に変換されるときなどイメージ処理プロセス中に（例えば、イメージの取得、コピー、スキャン、デジタル化、送信、表示、印刷、または圧縮が行われるときに）、画像強調が一般に必要になる。例えば、さまざまな歪みがイメージ検出に入り込み、Ａ／Ｄコンバータ１１１８により検出イメージ（アナログ信号としての）が変換されるときに、その結果得られるデジタル信号に量子化歪みまたはノイズが入り込むのが一般的である。同様に、イメージを通信チャネルを介して送信すると、例えば、受信したイメージにはチャネル・ノイズが含まれる。したがって、本明細書で使用しているように、「イメージ強調」という用語は、イメージに含まれる情報のある側面を増強または強調する、あるいはイメージを損なっている可能性のある信号取得に際しての誤りのせいで生じる不規則さ（例えば、ぼけ）、歪み、またはノイズを最小に抑える、記録されたイメージ（検出されたイメージまたはデジタル・イメージ情報など）に適用される１つまたは複数のプロセス、機能、またはアルゴリズムを意味する。
【０１２０】
さまざまなノード８００を手直しして１つまたは複数の選択されたアルゴリズムを実行するようにできるので、カメラ、ファクス機、コピー機などのデジタル・イメージ処理アプリケーションで使用されるイメージ検出、復元および強調機能、またはオペレーションの多くを実行するようにＡＣＥ１００を構成することができる。ＡＣＥ１００は、例えば、（１）ローパス・フィルタを使用して高周波ノイズを抑制する線形フィルタ処理、（２）モルフォロジーおよびメディアン・フィルタを使用してイメージ内の歪みを低減する（除去する）非線形フィルタ処理、および（３）マルチレート・フィルタ・バンクを使用するウェーブレット・ベースの歪み低減など、多数のイメージ復元アルゴリズム（例えば、ボケ除去、デバッグ）を実行するように構成することができる。ウェーブレット・ベースの歪み低減では、離散ウェーブレット変換（「ＤＷＴ」）により、イメージ・エネルギーは大きな振幅を持つ少数のＤＷＴ係数に圧縮され、ノイズのエネルギーは小さな振幅を持つ多数のＤＷＴ係数に拡散され、調整可能な閾値フィルタを介してノイズおよび他の歪みが除去される。
【０１２１】
例えば、写真撮影が露光不足、低光量状態だと、イメージに「グレイン・ノイズ」が含まれ、このノイズは、イメージ信号自体とともに、２値化プロセスのときに取り込まれる。グレイン・ノイズは、一般に、光学センサ１１０４を使用するイメージ取得システムにある程度の物理的ランダムさがあるため存在する。離散空間イメージ信号を、各重み付きインパルスがイメージの複数のピクセルのうちの１つを含む重み付きシフト・インパルスの総和として表すことができるので、線形フィルタ処理イメージ強調を使用して、そのような歪みおよびその他のノイズを除去することができる。ＡＣＥ１００のノード８００は、インパルスからノイズを除去し歪みの少ないイメージを生成するように構成することができる。
【０１２２】
さらに、例えば、ローパス・フィルタ処理を実行し、イメージ劣化の原因となるホワイト・ノイズまたは広帯域ノイズの高周波成分を除去するようにノード８００の１つまたは複数を構成することができる。ノード８００はさらに、２値化されたイメージの理想的ローパス・フィルタ処理またはガウス・フィルタ処理を実行するように構成することもできる。さらに、ＡＣＥ１００の時間的な特質のため、フィルタ処理を実行し、イメージ内容の劣化を最小限に抑えるように、ＡＣＥ１００のフィルタ処理機能を、イメージ状態に応じて実質的に「リアルタイムで」最適化することができる。
【０１２３】
他の例では、イメージの表示を改善するために２値化されたイメージの非線形フィルタ処理、または平滑化を行う重み付きメディアン（Ｗeighted Ｍedian：ＷＭ）フィルタを実現するようにノード８００の１つまたは複数を構成することができる。一般に、ＷＭフィルタは、ローカル・ウィンドウ内のピクセル値の一次結合を使用するのではなく、ローカルの重み付きメディアンを使用する。計算要素２５０に合った適切な構成を選択し、メディアン・フィルタ構成をとれるように計算ユニット２００および相互接続を構成することにより、ＡＣＥ１００はインパルスノイズ除去（例えば、すべてのサンプルが等しい重みが付けられているわけではない中心ＷＭフィルタによる）、エッジ劣化がほとんどないイメージ強調およびズーム、およびエッジ検出アルゴリズムの実行を含むイメージ分析を行うことができる。さらに、中心重み付きメディアン円滑化は、ＡＣＥ１００（重み付きメディアン・フィルタにより構成されている）によって実現することができ、これにより、特定の入力サンプルの強調および強調解除(deemphasize)を行うことができる。ウィンドウの中心サンプルは、他のすべてのサンプルの重み付き値を１に保持しながら中心重みをチューニングすることにより強調される。この概念は、ＡＣＥ１００にベクトル重み付きメディアン・フィルタを含めることで、カラー・イメージを含むように拡張できる。
【０１２４】
さらに他の例では、ノード８００の１つまたは複数は、イメージ検出および強調に対するモルフォロジー・フィルタを実現するように構成することができ、別に形態的イメージ処理とも呼ばれる。形態的イメージ検出および強調は、イメージをいくつかに分割したときのその分割されたさまざまな領域の視認性および認知性を高める非線形フィルタ（例えば、モルフォロジー・フィルタ）、設計方法論、およびアルゴリズムの広範な集合体を意味する。本質的に、イメージ分析の数理形態学は、イメージ・オブジェクトの幾何学的構造を定量的に記述することを目的としている。例えば、形状分析に対する線形フィルタよりも適しているモルフォロジー・フィルタ（つまり、形態的信号変換）は、幾何学に基づく強調および検出で主要な役割を果たす。モルフォロジー・フィルタは、また、非ガウス・ノイズ抑制にも適している。
【０１２５】
場合によっては、光学センサ１１０４によって取得されたイメージは、デジタル処理の後、複数のフレームまたはチャネルを組み立てるか、または解決して、復元されたイメージを形成するマルチチャネルまたはマルチフレーム・アプリケーションで使用される。したがって、ＡＣＥ１００のノード８００は、マルチチャネル・イメージ・アプリケーション（つまり、同一でないが、強いチャネル間相関を示すイメージの集合体があるアプリケーション）用のマルチチャネル・イメージ回復アルゴリズムを実行するように構成することができる。このようなイメージ回復アルゴリズムは、単独で一意的には望むイメージを確定しない観察データからイメージを計算する。マルチチャネル・イメージ回復アルゴリズムには、イメージ歪み低減（ノイズ除去）、イメージ・ボケ除去、圧縮イメージの復号化、および医療用イメージ再構成のためのアルゴリズムがある。例えば、暗黙のマルチチャネル回復は、陽電子放出断層撮影（Ｐosition Ｅmission Ｔomography：ＰＥＴ）を使用して得られた医療用イメージ・シーケンスのマルチチャネル再構成を実現するためにＡＣＥ１００によって実行できる。
【０１２６】
同様に、ＡＣＥ１００のノード８００は、例えば、光学センサ１１０４によって取得されたイメージ・データのアンダー・サンプリングのせいで劣化の変動があった場合に取得されるイメージを改善するマルチフレーム・イメージ復元アルゴリズムを実行するように構成することができる。アンダー・サンプリングは、ＣＣＤ１１０４のピクセル・サイズが視野の拡大とともに大きくなったときに視野とピクセル・サイズとのトレードオフの関係として生じることがある。アンダー・サンプリングされたイメージ・フレームのシーケンスを処理しイメージ解像度を復元するマイクロスキャニング・アルゴリズムは、一種のマルチフレーム・イメージ復元アルゴリズムであり、これは、発生しうるアンダー・サンプリング問題を克服するためにＡＣＥ１００で実行することができる。
【０１２７】
ＡＣＥ１００によって用意できるまたは実行できる他のアルゴリズムとしては、反復イメージ復元アルゴリズム、記録されたイメージ・シーケンス（例えば、静止デジタル・カメラによりキャプチャされたビデオ、動画）の動き検出および推定アルゴリズム、ビデオ強調および復元アルゴリズム、３Ｄ再構成、およびイメージ・シーケンス安定化アルゴリズムがあるが、それらに限定されない。当業者には周知のように、ＡＣＥ１００を構成できるイメージ処理のタイプまたは種類には実質的に制限がなく、ＡＣＥ１００の１つまたは複数のノード８００で実行するためのそのようなすべてのイメージ処理アルゴリズムは、本発明の範囲内にある。
【０１２８】
要約すると、本発明では、例えば、デジタル・カメラ、スキャナ、プリンタ、乾式コピー機、またはデジタル・イメージ処理アプリケーションで使用される他の手段として実現できるデジタル・イメージ処理装置を実現するということである。本発明のデジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、複数の計算要素、および相互接続ネットワークを含む。光学センサは、物体像を検出イメージに変換することができる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージをデジタル・イメージ情報に変換することができる。複数の計算要素は、第１の固定アーキテクチャを備える第１の計算要素および第２の固定アーキテクチャを備える第２の計算要素を含み、第１の固定アーキテクチャは第２の固定アーキテクチャと異なる。相互接続ネットワークは、複数の計算要素およびアナログ−デジタル・コンバータに結合され、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成し、第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することによりデジタル・イメージ情報からの処理済みのデジタル・イメージを供給することができるが、ただし、第１のイメージ処理機能は第２のイメージ処理機能と異なる。
デジタル・イメージ処理装置は、さらに、レンズ、シャッター、絞り、およびフォーカス・モータを備えるフォーカス・アセンブリなどの光学センサに物体像を供給することができる焦点合わせ手段も含むことができる。光学センサは、電荷結合素子（ＣＣＤ）、電荷注入素子（ＣＩＤ）、光学相補型金属酸化シリコン（ＣＭＯＳ）アレイ、光学バイポーラ接合型トランジスタ（ＢＪＴ）アレイ、フォトゲート・アレイ、またはフォトダイオード・アレイなどの複数の光学センサのうちの少なくとも１つである。
【０１２９】
デジタル・イメージ処理装置は、さまざまな実施形態において、相互接続ネットワークに結合され、処理済みのデジタル・イメージをアナログ形式に変換することができるアナログ出力インターフェース、アナログ出力インターフェースに結合され、処理済みデジタル・イメージのアナログ形式を視覚的に表示することができるファインダ画面、およびアナログ出力インターフェースに結合され、テレビまたはその他のビデオ表示装置に接続することなどを目的として、処理済みデジタル・イメージのアナログ形式を出力することができるアナログ出力ポートを備えることもできる。デジタル・イメージ処理装置はさらに、相互接続ネットワークに結合され、コンピュータまたはデータ送信デバイスに接続することなどを目的として、処理済みデジタル・イメージを出力することができるデジタル出力ポートを備えることもできる。
【０１３０】
処理済みデジタル・イメージは、さらに、複数の処理済みデジタル・イメージ・データ・パケットとして供給することもできる。この実施形態では、デジタル・イメージ処理装置は、さらに、相互接続ネットワークに結合されたデジタル出力インターフェースも備え、デジタル出力インターフェースは、複数の処理済みデジタル・イメージ・データ・パケットから複数の処理済みデジタル・イメージ・データ・ワードを選択し、複数の処理済みデジタル・イメージ・データ・ワードをまとめることで処理済みデジタル・イメージを形成することができる。
【０１３１】
デジタル・イメージ処理装置は、さらに、例えば、有形の媒体上に処理済みデジタル・イメージを印刷することができるプリンタ、処理済みデジタル・イメージを有形媒体に転送することができる乾式コピー機、処理済みデジタル・イメージを離れた場所に送信することができるデータ送信器、処理済みデジタル・イメージを記憶媒体、コンピュータなどに転送することができるスキャナの中に組み込んだり、またはそれに結合することもできる。
【０１３２】
さまざまな実施形態において、複数のイメージ処理機能として、線形フィルタ処理、非線形フィルタ処理、モルフォロジー・フィルタ処理、メディアン・フィルタ処理、局所重み付きメディアン・フィルタ処理、中心重み付きメディアン・フィルタ処理、ベクトル重み付きメディアン・フィルタ処理、マルチチャネル・イメージ回復、マルチフレーム・イメージ復元、反復イメージ復元、動き検出、動き推定、ローパス・フィルタ処理、マルチレート・フィルタ処理、ウェーブレット・ベースのマルチレート・フィルタ処理、オートフォーカス、コントラスト促進、ぼやけ除去などの機能うちの１つまたは複数がある。
また、さまざまな実施形態では、複数の計算要素の第１の固定されたアーキテクチャおよび第２の固定されたアーキテクチャは、線形フィルタ処理、非線形フィルタ処理、メモリ、加算、乗算、複素乗算、減算、同期化、キュー処理、オーバー・サンプリング、アンダー・サンプリング、適応、構成、再構成、制御、入力、出力、およびフィールド・プログラマビリティなどの対応する機能を備えるアーキテクチャなどの複数の特定のアーキテクチャから選択することができる。
【０１３３】
さまざまな種類のメモリをデジタル・イメージ処理装置内に組み込むことができる。例えば、第１のメモリは、相互接続ネットワークに結合可能であり、処理済みデジタル・イメージを格納することができ、この第１のメモリは、選択的に取り外し可能なフラッシュ・メモリとすることができる。第２のメモリも、組み込み、相互接続ネットワークに結合可能であり、第１の構成情報および第２の構成情報を格納することができ、例えば、同期型ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）とすることができる。
【０１３４】
さらに要約すると、他の実施形態では、デジタル・イメージ処理装置は、光学センサ、アナログ−デジタル・コンバータ、入力パイプライン・レジスタ、第１のメモリ、ハードウェア・タスク・マネージャ、データ分配器、適応型実行ユニット、データ選択器、および出力パイプライン・レジスタを備える。光学センサは、さらに、物体像を検出イメージに変換することもできる。アナログ−デジタル・コンバータは、光学センサに結合され、検出イメージを複数のデジタル・イメージ情報データ・パケットに変換することができる。入力パイプライン・レジスタは、アナログ−デジタル・コンバータに結合され、複数のデジタル・イメージ情報データ・パケットを受信することができ、その一方で、第１のメモリは、複数のデジタル・イメージ情報データ・パケットを格納することができる。ハードウェア・タスク・マネージャは、複数のイメージ処理タスクを処理し、複数のイメージ処理タスクのうちの第１のイメージ処理タスクを実行することが可能であり、複数のイメージ処理タスクのうちの第２のイメージ処理タスクを実行することが可能であり、第１のイメージ処理タスクは第２のイメージ処理タスクと異なることを判別することができる。データ分配器は、入力パイプライン・レジスタ、第１のメモリ、およびハードウェア・タスク・マネージャに結合され、複数のデジタル・イメージ情報データ・パケットを第１のメモリに分配することができる。適応型実行ユニットは、ハードウェア・タスク・マネージャおよび第１のメモリに結合され、第１のイメージ処理タスクを実行するように構成することができ、また複数のデジタル・イメージ情報データ・パケットを使用して第１のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第２のイメージ処理タスクを実行するように再構成することができ、また第２のイメージ処理タスクを実行することができ、さらにこの適応型実行ユニットは、第１のイメージ処理タスクおよび第２のイメージ処理タスクの実行で得られる複数の対応する処理済みデジタル・イメージ・データ・パケットを生成することができる。データ選択器は、ハードウェア・タスク・マネージャ、適応型実行ユニット、および第１のメモリに結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットの経路を決定することができる。出力パイプライン・レジスタは、データ選択器に結合され、対応する複数の処理済みデジタル・イメージ・データ・パケットを受信することができる。
【０１３５】
この実施形態では、適応型実行ユニットは、複数の計算要素および複数の計算要素に結合されている複数のスイッチング要素を含む。複数の計算要素において、第１の計算要素は第１の固定アーキテクチャを備え、第２の計算要素は第２の固定アーキテクチャを備え、第１の固定アーキテクチャは第２の固定アーキテクチャと異なる。複数のスイッチング要素は、第１の構成情報への応答として複数のイメージ処理機能のうちの第１のイメージ処理機能を実行するように複数の計算要素を構成し、第２の構成情報への応答として複数のイメージ処理機能のうちの第２のイメージ処理機能を実行するように複数の計算要素を再構成することができるが、第１のイメージ処理機能は第２のイメージ処理機能と異なる。
【０１３６】
本発明に多数の利点のあることは、当業者であれば容易にわかるであろう。第１に、複数の異なるイメージ処理または光学機能およびアルゴリズムを実行するように計算要素を再構成することができるため、新しいまたは変更されたアルゴリズムをすぐに実装することが容易である。第２に、特定の構成がイメージ処理光学アルゴリズムの実行に適したものとなったら、さまざまなノードは、実装の自由度を保持しながら、非常に高い効率を持ち、それに対応して待ち時間が短縮され、ＡＳＩＣに匹敵するほどである。さらに、本発明は、また、ＩＣ面積と消費電力をかなり節減する実装も可能である。
前記のことから、多数のバリエーションおよび修正が、本発明の新規性のある概念の精神と範囲から逸脱することなく、実施することが可能であることがわかる。本明細書で例示している特定の方法および装置に関する制限はいっさい意図しておらず、またそのように推論されることはないことは理解されるであろう。もちろん、付属の請求項は、請求項の範囲内に収まるそのようなすべての修正を対象とするものとする。
【図面の簡単な説明】
【０１３７】
【図１】本発明による第１の装置実施形態の例を示すブロック図である。
【図２】データ・フロー・グラフの例を示す概略図である。
【図３】再構成可能なマトリックス（またはノード）、複数の計算ユニット、および複数の計算要素を示すブロック図である。
【図４】再構成可能なマトリックスの計算ユニットを詳しく示すブロック図である。
【図５Ａ】計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。
【図５Ｂ】計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。
【図５Ｃ】計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。
【図５Ｄ】計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。
【図５Ｅ】計算ユニットを形成する固定された計算要素および特定の計算要素の例を詳しく示すブロック図である。
【図６Ａ】複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。
【図６Ｂ】複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。
【図６Ｃ】複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。
【図６Ｄ】複数の異なる固定された計算要素を備える多機能適応型計算ユニットの例を詳しく示すブロック図である。
【図７】複数の固定された計算要素を備える適応型論理プロセッサ計算ユニットの例を詳しく示すブロック図である。
【図８】固定された計算要素を備える適応型論理プロセッサ計算ユニットのコア・セルの例を詳しく示すブロック図である。
【図９】適応型論理プロセッサ計算ユニットのコア・セルの固定された計算要素の例を詳しく示すブロック図である。
【図１０】本発明による第２の装置実施形態の例を示すブロック図である。
【図１１】本発明による第１のシステム実施形態の例を示すブロック図である。
【図１２】本発明による経路選択要素を含むノード象限の例を示すブロック図である。
【図１３】本発明によるネットワーク相互接続の例を示すブロック図である。
【図１４】本発明によるデータ構造実施形態の例を示すブロック図である。
【図１５】本発明による第２のシステム実施形態の例を示すブロック図である。
【図１６Ａ】本発明によるデジタル・カメラの例を示すブロック図である。
【図１６Ｂ】本発明によるデジタル・カメラの例を示す透視図である。
【図１７】本発明によるファクシミリ、スキャナ、またはコピー機の例を示すブロック図である。
【図１】
2005020722.tif 000003
【図２】
2005020722.tif 000004
【図３】
2005020722.tif 000005
【図４】
2005020722.tif 000006
【図５Ａ】
2005020722.tif 000007
【図５Ｂ】
2005020722.tif 000008
【図５Ｃ】
2005020722.tif 000009
【図５Ｄ】
2005020722.tif 000010
【図５Ｅ】
2005020722.tif 000011
【図６Ａ】
2005020722.tif 000012
【図６Ｂ】
2005020722.tif 000013
【図６Ｃ】
2005020722.tif 000014
【図６Ｄ】
2005020722.tif 000015
【図７】
2005020722.tif 000016
【図８】
2005020722.tif 000017
【図９】
2005020722.tif 000018
【図１０】
2005020722.tif 000019
【図１１】
2005020722.tif 000020
【図１２】
2005020722.tif 000021
【図１３】
2005020722.tif 000022
【図１４】
2005020722.tif 000023
【図１５】
2005020722.tif 000024
【図１６Ａ】
2005020722.tif 000025
【図１６Ｂ】
2005020722.tif 000026
【図１７】
2005020722.tif 000027