| 【発明の名称】 |
プロセッサ及び該プロセッサを用いたデータ処理システム |
| 【発明者】 |
【氏名】小柳 誠
|
| 【要約】 |
【課題】プロセッサの実行ユニット部の構成をデータ処理の特性に応じて可変に設定変更する。
【解決手段】プロセッサ1の実行ユニット部には、例えば8個の実行ユニットU1〜U8が設けられている。各実行ユニットU1〜U8では、それぞれ4個のサブユニットSU1〜SU4中からいずれか1つのサブユニットを選択できるようになっている。各サブユニットSU1〜SU4は、ALU機能(L)、乗算機能(M)、メモリアクセス機能(D)、シフト機能(S)等の所定の機能を実行可能に構成されている。セレクタ3の切替を制御することにより、データ処理の特性に応じた機能を割り当てることができる。 |
【特許請求の範囲】
【請求項1】 予め設定された複数の機能のうちいずれか一つの機能を選択的に実現する複数の実行ユニットと、前記各実行ユニットを前記各機能のうちいずれの機能に設定するかを選択する選択手段とを備え、データ処理の特性に応じて、前記各実行ユニットの機能を設定変更可能なことを特徴とするプロセッサ。 【請求項2】 前記各実行ユニットは、それぞれ異なる機能を実現する複数の単位実行部と、前記選択手段からの信号に基づいて前記各単位実行部のうち前記選択された機能に対応する単位実行部を選択する設定部とを含んでなる請求項1に記載のプロセッサ。 【請求項3】 使用頻度の高い機能は前記各実行ユニットで選択可能に設定されており、使用頻度の相対的に低い機能は前記各実行ユニットのうち一部の実行ユニットで選択可能に設定されている請求項1または請求項2のいずれかに記載のプロセッサ。 【請求項4】 前記各機能には、乗算機能、加減算及び論理演算機能、メモリアクセス機能、シフト機能が含まれている請求項1〜請求項3のいずれかに記載のプロセッサ。 【請求項5】 予め設定された複数の機能のうちいずれか一つの機能を選択的に実現する複数の実行ユニットと、前記各実行ユニットを前記各機能のうちいずれの機能に設定するかを選択する選択手段とを含んでなるプロセッサを用いて画像処理を行うデータ処理システムにおいて、次に処理すべきデータ処理の特性に応じて、前記各実行ユニットの機能を設定変更させることを特徴とするデータ処理システム。 【請求項6】 前記各実行ユニットは、それぞれ異なる機能を実現する複数の単位実行部と、前記選択手段からの信号に基づいて前記各単位実行部のうち前記選択された機能に対応する単位実行部を選択する設定部とを含んでなる請求項5に記載のデータ処理システム。 【請求項7】 前記各実行ユニットにそれぞれ設定すべき機能を予め記述してあるプログラムを実行する請求項5または請求項6のいずれかに記載のデータ処理システム。 【請求項8】 プログラムの各命令と該各命令に適した前記各実行ユニットの機能パターンとを対応付けて管理する管理手段と、前記データ処理を行わせるプログラムの各命令を解析し、前記管理手段を参照することにより、前記各実行ユニットの機能をそれぞれ設定させる設定手段とを更に設けた請求項5〜請求項7のいずれかに記載のデータ処理システム。 【請求項9】 圧縮された画像データを復元するデータ処理システムであって、予め設定された複数の機能のうちいずれか一つの機能を選択的に実現する複数の実行ユニットと、前記各実行ユニットを前記各機能のうちいずれの機能に設定するかを選択する選択手段とを含んでなるプロセッサと、メモリとを備え、前記画像データの復元処理を行う際には、前記各実行ユニットにそれぞれ設定される機能のパターンを前記復元処理に適したパターンに設定してから該復元処理を行い、前記復元処理の結果を前記メモリに記憶させる際には、前記各実行ユニットにそれぞれ設定される機能のパターンをメモリアクセスに適したパターンに設定してから前記復元処理の結果を前記メモリに記憶させるようにしたデータ処理システム。 【請求項10】 多値化画像データを二値化画像データに変換するデータ処理システムであって、予め設定された複数の機能のうちいずれか一つの機能を選択的に実現する複数の実行ユニットと、前記各実行ユニットを前記各機能のうちいずれの機能に設定するかを選択する選択手段とを含んでなるプロセッサと、メモリとを備え、前記多値化画像データを二値化処理する際には、前記各実行ユニットにそれぞれ設定される機能のパターンを前記二値化処理に適したパターンに設定してから該二値化処理を行い、前記二値化処理の結果を前記メモリに記憶させる際には、前記各実行ユニットにそれぞれ設定される機能のパターンをメモリアクセスに適したパターンに設定してから前記二値化処理の結果を前記メモリに記憶させるようにしたデータ処理システム。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、CPUやDSP等として好適に用いられるプロセッサ及び該プロセッサを用いたデータ処理システムに関する。 【0002】 【従来の技術】例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)等として知られるデータ処理プロセッサは、メモリや命令キャッシュからフェッチした命令をバイナリコードにデコードし、このバイナリコードを各種の実行ユニットによりそれぞれ処理させるようになっている。 【0003】図6は、従来技術によるプロセッサのコア部を概略的に示す説明図である。プロセッサコア100は、制御ユニット部(図示せず)と、実行ユニット部とに大別される。制御ユニット部は、プログラムキャッシュから命令をフェッチする命令フェッチ部、フェッチした命令をデコードする命令デコード部、割り込み制御部等を備えている。制御ユニット部によりデコードされた命令は、実行ユニット部に入力される。実行ユニット部は、それぞれレジスタ及び実行ユニットを備えた第1実行部と第2実行部とからなる。第1実行部では、レジスタ102に各実行ユニットU1〜U4が接続されており、第2実行部では、レジスタ103に各実行ユニットU5〜U8が接続されている。各実行ユニットU1〜U8は、レジスタ102又は103及び2本のデータパスのいずれかを介してRAM等のメモリ101との間でデータを入出力するようになっている。 【0004】ここで、実行ユニットとしては、例えば、加減算及び論理演算(ALU)、シフタ、メモリアクセス等のユニットが知られている。図中、「L」は加減算及び論理演算を行う機能、「M」は乗算機能、「S」はレジスタに記憶されたビットデータをシフトさせる機能、「D」はメモリアクセス機能をそれぞれ示す。各実行ユニットの機能はそれぞれ予め固定されており、各実行ユニットで処理可能な命令は定められている。プロセッサは、各実行ユニットに命令を分配して処理させ、その処理結果はレジスタ102,103やキャッシュ等を介してRAM等のメモリ101に格納される。 【0005】 【発明が解決しようとする課題】上述のように、プロセッサは、複数の実行ユニット(図示の例では8個)U1〜U8を備えている。しかし、各実行ユニットの機能は予め設定され、固定されているため、実行ユニットの稼働率が低い。仮に、図6に示すプロセッサが、8本のデータバスを有しており、8個の実行ユニットを同時に稼働可能な構成であったとしても、ALUやメモリアクセス等の各機能を実現する実行ユニットはそれぞれ2個ずつしか備えていない。 【0006】従って、例えば、乗算を行う命令を処理する場合には、乗算命令を実行可能なユニットU2,U6だけしか使用できず、他の実行ユニットは休止することになる。もちろん、並列処理可能な命令がある場合には、該命令を実行可能なユニットも稼働する。しかし、例えば、メモリ102へのアクセスが頻繁に続く処理等のように、偏ったデータ処理を行う場合は、8個ある実行ユニットU1〜U8のうち2個しか使用されない。このため、実行ユニット部の稼働率が低下し、データ処理の時間もかかる。 【0007】本発明は、上記のような種々の課題に鑑みなされたものであり、その目的は、データ処理の特性に応じて実行ユニットの機能を設定変更可能なプロセッサ及び該プロセッサを用いたデータ処理システムを提供することにある。 【0008】 【課題を解決するための手段】上記課題を解決するため本発明に係るプロセッサは、以下の構成を備える。即ち、予め設定された複数の機能のうちいずれか一つの機能を選択的に実現する複数の実行ユニットと、前記各実行ユニットを前記各機能のうちいずれの機能に設定するかを選択する選択手段とを備え、データ処理の特性に応じて、前記各実行ユニットの機能を設定変更可能なことを特徴とする。 【0009】複数の機能としては、例えば、加減算及び論理演算機能、乗算機能、シフト機能、メモリアクセス機能等を挙げることができる。各実行ユニットは、各機能のうちいずれか一つを実行することができる。各実行ユニットにいずれの機能を設定するかは、選択手段により定められる。従って、データ処理の特性に応じて、各実行ユニットの機能を設定することにより、該データ処理に適した実行ユニット群を構成することができ、データ処理を高速化することができる。ここで、各実行ユニットが全て同じ機能を備えている必要はない。例えば、使用頻度の高い機能は全部の実行ユニットで選択可能としておき、使用頻度の低い機能は一部の実行ユニットのみが選択できるように設定してもよい。 【0010】複数の機能に設定変更可能な実行ユニットは、例えば、それぞれ異なる機能を実現する複数の単位実行部と、前記選択手段からの信号に基づいて前記各単位実行部のうち前記選択された機能に対応する単位実行部を選択する設定部とを含んで構成することができる。 【0011】即ち、単位実行部は各機能を専門的に処理する電子回路であり、セレクタ等から構成可能な設定部を介して選択される。 【0012】プロセッサが実行するプログラム中の所定箇所に、各実行ユニットに割り当てる機能を予め記述しておくことにより、データ処理の特性に応じた実行ユニットの組合せを得ることができる。例えば、演算結果をメモリに格納する処理を行う場合には、その処理に係るプログラムコードが実行される前に、メモリアクセス機能を多くの実行ユニットに割り当てておけばよい。 【0013】本発明は、データ処理システムとして把握することもできる。そして、プログラムの各命令と該各命令に適した前記各実行ユニットの機能パターンとを対応付けて管理する管理手段と、前記データ処理を行わせるプログラムの各命令を解析し、前記管理手段を参照することにより、前記各実行ユニットの機能をそれぞれ設定させる設定手段とを設けることもできる。 【0014】例えば、データの格納命令、読出し命令、アドレッシング命令、シフト命令、比較命令、論理演算命令、算術演算命令、ローテート命令、ビットカウント命令等の各命令毎に、該命令を処理するのに好ましい機能のパターンを予め対応付けておき、管理手段により管理させる。そして、設定手段は、命令を解析して管理手段を参照することにより、次に処理する命令に適した実行ユニット群を動的に構成する。ここで、命令を解析して機能パターンを自動的に設定する本発明は、以下のような形態で使用可能であろう。第1は、プログラムコードを処理する間に、該プログラムコードを解析して各実行ユニットの機能をそれぞれ割り当てるものである。この場合は、命令の解析、管理手段の参照等に所定のクロックを消費するが、予め所定箇所で各実行ユニットへの機能割当てを宣言する必要がなく、プログラマーの負担が軽減される。第2は、本発明をプログラム開発支援ツールとして利用するものである。試作されたプログラムコードを本発明によるシステムで走らせることにより、試作プログラム中に各実行ユニットの機能割当てを自動的に追加記述させることができるであろう。 【0015】さらに、本発明は、画像データを処理するシステムにおいて好適に用いられるであろう。画像データ処理としては、例えば、圧縮画像の復元、多値化画像の二値化変換、ローテート、拡大縮小処理、色変換処理等を挙げることができる。処理すべき対象が画像データに絞られ、かつデータ量が膨大になる場合が多いので、特定の機能をより多く必要とするデータ処理が多く発生するためである。 【0016】 【発明の実施の形態】以下、図面に基づいて本発明の実施の形態について詳細に説明する。 【0017】1.第1の実施の形態図1〜図3に基づいて本発明の第1の実施の形態を説明する。図1は、本発明に係るプロセッサの要部を概略的に示すブロック図である。 【0018】プロセッサ1は、例えば、画像処理用DSP等として好適に用いられるもので、命令フェッチ部、命令デコード部、制御レジスタ等を含んでなる制御ユニット部(図示せず)と実行ユニット部とメモリ2とを備えている。プロセッサ1は、32ビット幅のデータバス8本を介してメモリ2に接続されている(プログラムバスやキャッシュ等は図示を省略している)。 【0019】実行ユニット部は、例えば、8個のレジスタR1〜R8と、各レジスタR1〜R8にそれぞれ接続された実行ユニットU1〜U8と、各実行ユニットU1〜U8にそれぞれ接続されたセレクタ3と、各セレクタ3にそれぞれ接続されたサブユニットSU1〜SU4とを含んで構成されている(なお、レジスタR4〜R7等は図示を省略している)。なお、本実施の形態では、実行ユニット群を8個から構成する場合を例示しているが、本発明はこれに限定されない。「設定部」としてのセレクタ3は、後述する選択レジスタ4からの入力データに応じて、自己につながる各サブユニットSU1〜SU4のうちいずれか一つのサブユニットを選択するものである。各サブユニットSU1〜SU4は、「単位実行部」に該当するもので、それぞれ所定の機能を実現すべく、例えば、加減算及び論理演算機能、乗算機能、メモリアクセス機能、シフト機能等が予め設定されている。ここで、図示されている実行ユニットU1〜U8は、論理的な存在であり、電子回路として物理的に存在する必要はない。選択されたサブユニットSUが各実行ユニットの実体をなすためである。 【0020】セレクタ3が加減算及び論理演算を行うサブユニットSU1を選択した場合、該セレクタ3に接続された実行ユニットは、いわゆるALU(算術論理演算ユニット)となる。従って、全ての実行ユニットU1〜U8を同一の機能に揃えて設定することもできるし、一群を4個の実行ユニットから構成して各群単位で同一の機能をそれぞれ設定することも可能である。 【0021】図2は、各実行ユニットU1〜U8に機能(サブユニット)を割り当てる方法の一例を示す説明図である。「選択手段」としての選択レジスタ4に、2ビットずつ8個の格納域を設け、各格納域に2ビットデータでサブユニットの番号を記憶させる。例えば、ALU機能(L)を実現するサブユニットSU1はビット「00」、乗算機能(M)を実現するサブユニットSU2はビット「01」、シフト機能(S)を実現するサブユニットSU3はビット「10」、メモリアクセス機能(D)を実現するサブユニットSU4はビット「11」で表現される。このように選択レジスタ4が保持するデータを各セレクタ3に入力させることにより、該各セレクタ3は指定されたサブユニットSUを選択することができる。 【0022】次に、図3に基づいて、上記構成を有するプロセッサ1を用いて画像処理を行う場合の作用を説明する。図3は、例えば、PCカードに記憶された圧縮画像データを印刷用の二値化データに変換する処理の要部を示している。 【0023】まず、ステップ(以下「S」と略記)1では、インターフェースを介してPCカードに記憶された画像ファイルを読み出す。この画像ファイルは、例えば、JPEG形式(Joint Photographic Experts Group)で圧縮記憶されている。次に、この読み出された圧縮画像データを復元すべく、選択レジスタ4のデータを書き換えて、各実行ユニットU1〜U8の機能をデータ復元に適したものに設定変更させる(S2)。DCT(Discrete Cosine Transform)変換に適した機能パターンとして、例えば、積和演算を高速に処理すべく、各実行ユニットU1〜U4を乗算機能(M)にそれぞれ設定し、各実行ユニットU5〜U8をALU機能(L)にそれぞれ設定する。そして、プロセッサ1は、DCT変換処理用に設定変更された各実行ユニットU1〜U8を用いて変換処理を行う(S3)。 【0024】DCT処理が終了すると、選択レジスタ4の内容を書き換えて、メモリアクセス用の機能パターンを設定する(S4)。具体的には、例えば、各実行ユニットU1〜U8を全てメモリアクセス機能(D)に設定することができる。これにより、4個の実行ユニットによるメモリ2へのデータ書き込みと、他の4個の実行ユニットによる次のデータの読出しとを行うことができる。そして、各実行ユニットU1〜U8を用いて、メモリ2に圧縮画像の復元データを書き込んだ後(S5)、選択レジスタ4を介して各実行ユニットU1〜U8の機能を二値化処理用のパターンに設定する(S6)。例えば、二値化処理では、比較演算とメモリアクセスとが頻繁に行われるため、各実行ユニットU1〜U4をALU機能(L)にそれぞれ設定し、各実行ユニットU5〜U8をメモリアクセス機能(D)にそれぞれ設定することができる。このようにして、各実行ユニットU1〜U8を二値化処理用に設定変更した後で、二値化処理を行う(S7)。これにより、多値画像データが印刷可能な二値化画像データに変換される。次に、再び、各実行ユニットU1〜U8をメモリアクセス用に再設定し(S8)、二値化画像データをメモリ2に記憶保存させる(S9)。そして、メモリ2に記憶された二値化画像データをプリントエンジンのエンジン制御部に転送させる(S10)。 【0025】なお、図3では、圧縮画像データの復元処理、復元された画像データの二値化処理を中心に説明したが、この他に、ローテート処理、拡大縮小処理、色変換処理等を行うこともできる。この場合には、各処理に適した実行ユニット部を得るべく、選択レジスタ4の内容を適宜書き換えればよい。 【0026】このように構成される本実施の形態によれば、データ処理の特性に応じて、各実行ユニットU1〜U8の機能を動的に変化させることができる。従って、そのデータ処理に適した実行ユニットの組合せを得ることができ、データ処理を高速に行うことができる。 【0027】特に、例えば、画像処理等のように、使用する機能が偏るデータ処理の場合に、適切な実行ユニット部を構成して演算等を行うことができ、実行ユニットの稼働率を高めて処理速度を高速化することができる。 【0028】2.第2の実施の形態次に、図4は本発明の第2の実施の形態を示すフローチャートである。以下の説明では前記第1の実施の形態で述べた構成要素と同一の構成要素に同一の符号を付し、その説明を省略するものとする。本実施の形態の特徴は、プログラムコードを解析し、各実行ユニットU1〜U8に割り当てるべき機能を自動的に設定するようにした点にある。 【0029】まず、プログラムコードを取り出して処理内容を解析し(S21)、「管理手段」としての機能設定テーブル11を参照する(S22)。機能設定テーブル11には、データ処理の種類毎に、各実行ユニットU1〜U8に設定すべき適切な機能の組合せ(機能パターン)がそれぞれ対応付けられている。この参照結果に基づいて選択レジスタ4の内容を書き換えることにより(S23)、各データ処理に応じた機能パターンを有する実行ユニット部を得ることができる。 【0030】このように構成される本実施の形態でも、上述した第1の実施の形態と同様の効果を得ることができる。特に、本実施の形態では、機能設定テーブル11を参照しつつ各実行ユニットU1〜U8への機能割当てを自動的に行うため、容易に実行ユニット部を最適化することができる。図4に示すプログラムは、プログラム開発支援ツールとして利用することができる。各実行ユニット部U1〜U8の機能割当てを考慮せずに基本となるプログラムを作成し、このプログラムを図4に示すプログラムで解析することにより、所定箇所に各実行ユニットU1〜U8への機能割当てを追加記述させることができるであろう。 【0031】3.第3の実施の形態次に、図5は本発明の第3の実施の形態に係るプロセッサの要部を示すブロック図である。本プロセッサ1では、実行ユニットU1〜U4からなる第1実行ユニット群と実行ユニットU5〜U8からなる第2実行ユニット群とに、それぞれ異なる組合せのサブユニットSUを設けている。図5の例では、実行ユニットU1〜U4が選択可能な機能「D」を、実行ユニットU5〜U8では他の機能「X」に置き換えている。このように、使用頻度の高い機能L、M、Sは全実行ユニットが選択可能にしておき、それ以外の機能D,Xは一部の実行ユニットだけが選択可能に構成できる。これにより、プロセッサのチップ面積増大を抑制しつつ、より多種類のデータ処理機能を実装することができる。 【0032】なお、当業者であれば、各実施の形態に記載された本発明の要旨の範囲内で種々の追加、変更等が可能である。例えば、選択可能とする演算機能の種類、同時に実行可能なユニット数等、適宜変更することができる。 【0033】 【発明の効果】以上説明した通り、本発明に係るプロセッサ及び該プロセッサを用いたデータ処理システムによれば、データ処理の特性に応じて動的に各実行ユニットの機能を設定可能なため、特定の機能を多用する処理が連続するような場合でも、速やかに処理することができる。
|
| 【出願人】 |
【識別番号】000002369 【氏名又は名称】セイコーエプソン株式会社
|
| 【出願日】 |
平成12年10月3日(2000.10.3) |
| 【代理人】 |
【識別番号】100095371 【弁理士】 【氏名又は名称】上村 輝之 (外1名)
|
| 【公開番号】 |
特開2002−108609(P2002−108609A) |
| 【公開日】 |
平成14年4月12日(2002.4.12) |
| 【出願番号】 |
特願2000−303595(P2000−303595) |
|