JP2003216950A - パターンマッチングなどを行なうためのsimd型マイクロプロセッサ - Google Patents
パターンマッチングなどを行なうためのsimd型マイクロプロセッサInfo
- Publication number
- JP2003216950A JP2003216950A JP2002018207A JP2002018207A JP2003216950A JP 2003216950 A JP2003216950 A JP 2003216950A JP 2002018207 A JP2002018207 A JP 2002018207A JP 2002018207 A JP2002018207 A JP 2002018207A JP 2003216950 A JP2003216950 A JP 2003216950A
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- memory
- pattern matching
- data transfer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Advance Control (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
(57)【要約】
【課題】 SIMD型マイクロプロセッサにおいて、簡
単な構成で高速にパターンマッチングを行う。 【解決手段】 複数のプロセッサエレメントを有するS
IMD型マイクロプロセッサを含む画像処理装置におい
て、各プロセッサエレメントが内蔵する汎用レジスタに
プロセッサ外部からアクセスするためのデータ転送用ポ
ートに接続されたデータ転送装置を有し、該データ転送
装置は、テーブル変換を行うためのルックアップテーブ
ルと、該ルックアップテーブルに格納されているデータ
を格納し、更にパイプライン遅延するための複数のレジ
スタとを、有し、該ルックアップテーブルの入力アドレ
スとして、データ転送用ポートより出力されるデータ
と、該ルックアップテーブルの出力をパイプライン遅延
するための該レジスタのデータとを、合成したものを用
いることを特徴とする。
単な構成で高速にパターンマッチングを行う。 【解決手段】 複数のプロセッサエレメントを有するS
IMD型マイクロプロセッサを含む画像処理装置におい
て、各プロセッサエレメントが内蔵する汎用レジスタに
プロセッサ外部からアクセスするためのデータ転送用ポ
ートに接続されたデータ転送装置を有し、該データ転送
装置は、テーブル変換を行うためのルックアップテーブ
ルと、該ルックアップテーブルに格納されているデータ
を格納し、更にパイプライン遅延するための複数のレジ
スタとを、有し、該ルックアップテーブルの入力アドレ
スとして、データ転送用ポートより出力されるデータ
と、該ルックアップテーブルの出力をパイプライン遅延
するための該レジスタのデータとを、合成したものを用
いることを特徴とする。
Description
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サ、特にSIMD(Single Instructi
on−stream Multiple Data−s
tream)型のマイクロプロセッサを含む、画像処理
装置に関する。
サ、特にSIMD(Single Instructi
on−stream Multiple Data−s
tream)型のマイクロプロセッサを含む、画像処理
装置に関する。
【0002】
【従来の技術】SIMD型マイクロプロセッサでは、複
数のデータに対して1つの命令で同時に同一の演算処理
が実行可能である。この構造により、演算は同一である
がデータ量が非常に多い処理(特に、画像処理)に係る
用途において、頻用される。
数のデータに対して1つの命令で同時に同一の演算処理
が実行可能である。この構造により、演算は同一である
がデータ量が非常に多い処理(特に、画像処理)に係る
用途において、頻用される。
【0003】SIMD型マイクロプロセッサにおける通
常の画像処理では、複数の演算ユニット(Proces
sor Element[PE];プロセッサエレメン
ト)を主走査方向に対応する方向に並べ、同一の演算を
同時に複数のデータに対して実行する。このことにより
高速な演算処理が可能となっている。
常の画像処理では、複数の演算ユニット(Proces
sor Element[PE];プロセッサエレメン
ト)を主走査方向に対応する方向に並べ、同一の演算を
同時に複数のデータに対して実行する。このことにより
高速な演算処理が可能となっている。
【0004】ところで、画像処理においては、画像情報
の中からある特徴量を検出する処理が頻繁に現れる。例
えばエッジ検出や孤立点検出などはそれらの処理に含ま
れるが、いずれも画像処理において重要な処理である。
それらの処理にはパターンマッチングという手法が取ら
れることが多い。パターンマッチングとは、注目画素の
周辺、例えば注目画素を中央に含む3×3の画素(縦3
画素、横3画素)のデータが、ある所定のパターンと一
致する場合に、画像処理上の特徴点を検出した、とする
手法である。通常のASICにおいては、所定のパター
ンとの比較ではパターン数分だけ設定されたパイプライ
ンを利用して処理を実施する。このように、ASIC
は、簡単なハードウェア構成でパターンマッチングを実
現していることが多い。
の中からある特徴量を検出する処理が頻繁に現れる。例
えばエッジ検出や孤立点検出などはそれらの処理に含ま
れるが、いずれも画像処理において重要な処理である。
それらの処理にはパターンマッチングという手法が取ら
れることが多い。パターンマッチングとは、注目画素の
周辺、例えば注目画素を中央に含む3×3の画素(縦3
画素、横3画素)のデータが、ある所定のパターンと一
致する場合に、画像処理上の特徴点を検出した、とする
手法である。通常のASICにおいては、所定のパター
ンとの比較ではパターン数分だけ設定されたパイプライ
ンを利用して処理を実施する。このように、ASIC
は、簡単なハードウェア構成でパターンマッチングを実
現していることが多い。
【0005】しかし、マイクロプロセッサ、特にSIM
D型マイクロプロセッサを用いて、パターンマッチング
に係る処理を実施しようとするならば、かなりのサイク
ル数がかかってしまう。処理をプログラムで実現せねば
ならず、然もそのプログラムでは、対象画素と隣接する
画素のデータを参照しながら、定められたパターンと一
致するかどうかを比較する作業がなされなければならな
いから、である。
D型マイクロプロセッサを用いて、パターンマッチング
に係る処理を実施しようとするならば、かなりのサイク
ル数がかかってしまう。処理をプログラムで実現せねば
ならず、然もそのプログラムでは、対象画素と隣接する
画素のデータを参照しながら、定められたパターンと一
致するかどうかを比較する作業がなされなければならな
いから、である。
【0006】このことを回避するため、通常のマイクロ
プロセッサでは、画素データが2値化あるいは3値化さ
れていることが多いことから、パターンマッチングを行
う前に隣接するPEの画素データをビットパックしてか
ら比較を行う、という手法が取られてきた。
プロセッサでは、画素データが2値化あるいは3値化さ
れていることが多いことから、パターンマッチングを行
う前に隣接するPEの画素データをビットパックしてか
ら比較を行う、という手法が取られてきた。
【0007】例えば、特第02812292号や特表平
11−505640号には、隣接する複数のPEのデー
タを1ビットずつずらして入力し一度にビットパックす
ることを可能にする構成について、開示されている。こ
の構成においては、ビットパックが1命令で実行され得
るので、ビットパックが何回も必要とされる処理では非
常に有利である。
11−505640号には、隣接する複数のPEのデー
タを1ビットずつずらして入力し一度にビットパックす
ることを可能にする構成について、開示されている。こ
の構成においては、ビットパックが1命令で実行され得
るので、ビットパックが何回も必要とされる処理では非
常に有利である。
【0008】更に、ビットパック後のデータを用いてパ
ターンマッチングを高速化するためには、テーブル参照
用のメモリを用いて、テーブル変換を行う、という方法
が想定され得る。
ターンマッチングを高速化するためには、テーブル参照
用のメモリを用いて、テーブル変換を行う、という方法
が想定され得る。
【0009】詳しく言うと、特開平5−67203号で
は、各PEの出力シフトレジスタからデータを出力し、
そのデータを外部のテーブルメモリのアドレスとして入
力し、そのテーブルメモリから出力されるデータを入力
シフトレジスタから入力する、という構成について開示
されている。全データの処理にはPE数以上のサイクル
が必要となるが、SIMD型マイクロプロセッサ外部の
転送装置が転送を行っている間にプロセッサ自体は別の
処理を行えるということ、及び、構成が簡単であるとい
うことが、利点である。
は、各PEの出力シフトレジスタからデータを出力し、
そのデータを外部のテーブルメモリのアドレスとして入
力し、そのテーブルメモリから出力されるデータを入力
シフトレジスタから入力する、という構成について開示
されている。全データの処理にはPE数以上のサイクル
が必要となるが、SIMD型マイクロプロセッサ外部の
転送装置が転送を行っている間にプロセッサ自体は別の
処理を行えるということ、及び、構成が簡単であるとい
うことが、利点である。
【0010】また、特第02812292号のSIMD
型マイクロプロセッサでは、PE数のポートを持つ(一
つの)メモリによりテーブル参照が行なわれ、特表平1
1−505640号のSIMD型マイクロプロセッサで
は、全てのPEが備えるメモリによりテーブル参照が行
なわれる。いずれも処理時間は高速だが、前者ではPE
数のポートを持つメモリの、後者では各PEが備えるメ
モリの、いずれもコストが高くなってしまう。
型マイクロプロセッサでは、PE数のポートを持つ(一
つの)メモリによりテーブル参照が行なわれ、特表平1
1−505640号のSIMD型マイクロプロセッサで
は、全てのPEが備えるメモリによりテーブル参照が行
なわれる。いずれも処理時間は高速だが、前者ではPE
数のポートを持つメモリの、後者では各PEが備えるメ
モリの、いずれもコストが高くなってしまう。
【0011】そもそも、パターンマッチングにてテーブ
ル変換を利用する場合には、パターンマッチングに用い
られる画素の個数がそのままテーブルのアドレスの桁数
となるため、画素数の多いパターンマッチングになると
テーブルに必要なメモリ容量が膨大になってしまう、と
いうことを考慮する必要がある。
ル変換を利用する場合には、パターンマッチングに用い
られる画素の個数がそのままテーブルのアドレスの桁数
となるため、画素数の多いパターンマッチングになると
テーブルに必要なメモリ容量が膨大になってしまう、と
いうことを考慮する必要がある。
【0012】上記以外にパターンマッチング自体を高速
化する手法として、SIMD型マイクロプロセッサの外
部にパターンマッチング専用のハードウェアを設ける、
というものがあるが、パターン数、若しくはパターンマ
ッチングを行う画素数などの、自由度が少なくなる欠点
がある。
化する手法として、SIMD型マイクロプロセッサの外
部にパターンマッチング専用のハードウェアを設ける、
というものがあるが、パターン数、若しくはパターンマ
ッチングを行う画素数などの、自由度が少なくなる欠点
がある。
【0013】
【発明が解決しようとする課題】本発明は、上記の技術
を鑑みて、SIMD型マイクロプロセッサにおいて、簡
単な構成で高速にパターンマッチングを行うことを目的
とする。
を鑑みて、SIMD型マイクロプロセッサにおいて、簡
単な構成で高速にパターンマッチングを行うことを目的
とする。
【0014】
【課題を解決するための手段】本発明は、上記の目的を
達成するために為されたものである。本発明に係る請求
項1に記載の画像処理装置は、複数のデータを処理する
ための複数のプロセッサエレメントを有するSIMD型
マイクロプロセッサを含む、画像処理装置である。その
画像処理装置において、各プロセッサエレメントが内蔵
する汎用レジスタにプロセッサ外部からアクセスするた
めのデータ転送用ポートに接続されたデータ転送装置を
有し、該データ転送装置は、テーブル変換を行うための
ルックアップテーブルと、該ルックアップテーブルに格
納されているデータを格納し、更にパイプライン遅延す
るための複数のレジスタとを、有し、該ルックアップテ
ーブルの入力アドレスとして、データ転送用ポートより
出力されるデータと、該ルックアップテーブルの出力を
パイプライン遅延するための該レジスタのデータとを、
合成したものを用いることを特徴とする。
達成するために為されたものである。本発明に係る請求
項1に記載の画像処理装置は、複数のデータを処理する
ための複数のプロセッサエレメントを有するSIMD型
マイクロプロセッサを含む、画像処理装置である。その
画像処理装置において、各プロセッサエレメントが内蔵
する汎用レジスタにプロセッサ外部からアクセスするた
めのデータ転送用ポートに接続されたデータ転送装置を
有し、該データ転送装置は、テーブル変換を行うための
ルックアップテーブルと、該ルックアップテーブルに格
納されているデータを格納し、更にパイプライン遅延す
るための複数のレジスタとを、有し、該ルックアップテ
ーブルの入力アドレスとして、データ転送用ポートより
出力されるデータと、該ルックアップテーブルの出力を
パイプライン遅延するための該レジスタのデータとを、
合成したものを用いることを特徴とする。
【0015】本発明に係る請求項2に記載の画像処理装
置は、該ルックアップテーブルの入力アドレスとして合
成のためにデータを出力する、データ転送用ポートが、
複数であることを特徴とする、請求項1に記載の画像処
理装置である。
置は、該ルックアップテーブルの入力アドレスとして合
成のためにデータを出力する、データ転送用ポートが、
複数であることを特徴とする、請求項1に記載の画像処
理装置である。
【0016】本発明に係る請求項3に記載の画像処理装
置は、ルックアップテーブルのデータをパイプライン遅
延するためのレジスタの値を、データ転送の直前に移送
し得る別のレジスタであって、それぞれの上記レジスタ
に1対1にて対応する、別のレジスタを、データ転送装
置が有し、それらの別のレジスタの値は、プロセッサエ
レメント番号により指定されたプロセッサエレメントの
レジスタのデータが処理されるまで、対応するレジスタ
の値によって更新されることを特徴とする、請求項1又
は請求項2に記載の画像処理装置である。
置は、ルックアップテーブルのデータをパイプライン遅
延するためのレジスタの値を、データ転送の直前に移送
し得る別のレジスタであって、それぞれの上記レジスタ
に1対1にて対応する、別のレジスタを、データ転送装
置が有し、それらの別のレジスタの値は、プロセッサエ
レメント番号により指定されたプロセッサエレメントの
レジスタのデータが処理されるまで、対応するレジスタ
の値によって更新されることを特徴とする、請求項1又
は請求項2に記載の画像処理装置である。
【0017】本発明に係る請求項4に記載の画像処理装
置は、データ転送装置と、メモリの間に接続を制御する
メモリスイッチを介し、メモリを該データ転送装置以外
のデータ転送装置にも接続することが可能であることを
特徴とする、請求項1又は請求項3に記載の画像処理装
置である。
置は、データ転送装置と、メモリの間に接続を制御する
メモリスイッチを介し、メモリを該データ転送装置以外
のデータ転送装置にも接続することが可能であることを
特徴とする、請求項1又は請求項3に記載の画像処理装
置である。
【0018】
【発明の実施の形態】以下、図面を参照して、本発明に
係る好適な実施形態を説明する。
係る好適な実施形態を説明する。
【0019】図1は、本発明に係る画像処理装置1の構
成を示すブロック図である。該画像処理装置1は、SI
MD型マイクロプロセッサ2、メモリコントローラ1
1、及びメモリ15を含む。更に該SIMD型マイクロ
プロセッサ2は、概略、グローバルプロセッサ4、レジ
スタファイル6、演算アレイ8、及び外部インタフェー
ス7から構成される。
成を示すブロック図である。該画像処理装置1は、SI
MD型マイクロプロセッサ2、メモリコントローラ1
1、及びメモリ15を含む。更に該SIMD型マイクロ
プロセッサ2は、概略、グローバルプロセッサ4、レジ
スタファイル6、演算アレイ8、及び外部インタフェー
ス7から構成される。
【0020】(1)グローバルプロセッサ4
このグローバルプロセッサ4そのものは、いわゆるSI
SD型のプロセッサであり、プログラムRAM10とデ
ータRAM12を内蔵し(図2参照)、プログラムを解
読し各種制御信号を生成する。この制御信号は内蔵する
各種ブロック以外に、レジスタファイル6、演算アレイ
8、及びメモリコントローラ11にも供給される。ま
た、GP(グローバルプロセッサ)命令実行時は内蔵す
る汎用レジスタ、ALU(算術論理演算器)等を使用し
て各種演算処理、プログラム制御処理をおこなう。
SD型のプロセッサであり、プログラムRAM10とデ
ータRAM12を内蔵し(図2参照)、プログラムを解
読し各種制御信号を生成する。この制御信号は内蔵する
各種ブロック以外に、レジスタファイル6、演算アレイ
8、及びメモリコントローラ11にも供給される。ま
た、GP(グローバルプロセッサ)命令実行時は内蔵す
る汎用レジスタ、ALU(算術論理演算器)等を使用し
て各種演算処理、プログラム制御処理をおこなう。
【0021】(2)レジスタファイル6
PE(プロセッサエレメント)命令で処理されるデータ
を保持している。PE(プロセッサエレメント)3は、
公知のように、SIMD(Single Instru
ction−Stream,Multiple Dat
a−Stream)型マイクロプロセッサにおいて個別
の演算を実行する構成単位である。図2のレジスタファ
イル6及び演算アレイ8が示すように、図2のSIMD
型マイクロプロセッサ2では256個のPE3を含んで
いる。上記のPE命令はSIMD型の命令であり、レジ
スタファイル6に保持されている複数のデータに対し、
同時に同じ処理を行なう。このレジスタファイル6から
のデータの読み出し/書き込みの制御はグローバルプロ
セッサ4からの制御によって行なわれる。読み出された
データは演算アレイ8に送られ、演算アレイ8での演算
処理後にレジスタファイル6に書き込まれる。
を保持している。PE(プロセッサエレメント)3は、
公知のように、SIMD(Single Instru
ction−Stream,Multiple Dat
a−Stream)型マイクロプロセッサにおいて個別
の演算を実行する構成単位である。図2のレジスタファ
イル6及び演算アレイ8が示すように、図2のSIMD
型マイクロプロセッサ2では256個のPE3を含んで
いる。上記のPE命令はSIMD型の命令であり、レジ
スタファイル6に保持されている複数のデータに対し、
同時に同じ処理を行なう。このレジスタファイル6から
のデータの読み出し/書き込みの制御はグローバルプロ
セッサ4からの制御によって行なわれる。読み出された
データは演算アレイ8に送られ、演算アレイ8での演算
処理後にレジスタファイル6に書き込まれる。
【0022】また、レジスタファイル6は、外部インタ
フェース7を介してプロセッサ外部のメモリコントロー
ラ11からのアクセスが可能であり、グローバルプロセ
ッサ4の制御とは別に、外部から特定のレジスタに対し
読み出し/書き込みが行なわれる。
フェース7を介してプロセッサ外部のメモリコントロー
ラ11からのアクセスが可能であり、グローバルプロセ
ッサ4の制御とは別に、外部から特定のレジスタに対し
読み出し/書き込みが行なわれる。
【0023】(3)演算アレイ8
PE命令の演算処理が行なわれる。処理の制御はすべて
グローバルプロセッサ4から行なわれる。
グローバルプロセッサ4から行なわれる。
【0024】(4)メモリコントローラ11
外部インタフェース7のポートに、クロックとアドレ
ス、リード/ライト制御を出力し、メモリ15(のシン
グルポート)に、クロックとアドレス、リード/ライト
制御を出力することにより、夫々のPE3に含まれる各
レジスタ34とメモリ15との間でデータ転送を行な
う。処理の制御は全てグローバルプロセッサ4から行な
われる。
ス、リード/ライト制御を出力し、メモリ15(のシン
グルポート)に、クロックとアドレス、リード/ライト
制御を出力することにより、夫々のPE3に含まれる各
レジスタ34とメモリ15との間でデータ転送を行な
う。処理の制御は全てグローバルプロセッサ4から行な
われる。
【0025】図2は、本発明に係るSIMD型マイクロ
プロセッサ2の、更に詳細な構成を示すブロック図であ
る。
プロセッサ2の、更に詳細な構成を示すブロック図であ
る。
【0026】グローバルプロセッサ4には、本プロセッ
サ2のプログラム格納用のプログラムRAM10と、演
算データ格納用のデータRAM12が内蔵されている。
さらに、プログラムのアドレスを保持するプログラムカ
ウンタ(PC)14、演算処理のデータ格納のための汎
用レジスタであるG0、G1、G2及びG3レジスタ
(16、18、20、22)、レジスタ退避・復帰時に
退避先データRAMのアドレスを保持しているスタック
ポインタ(SP)24、サブルーチンコール時にコール
元のアドレスを保持するリンクレジスタ(LS)26、
同じくIRQ(Interrupt ReQuest;
割込み要求)時とNMI(Non−Maskable
Interrupt request;禁止不能割込み
要求)時の分岐元アドレスを保持するLIレジスタ28
及びLNレジスタ30、プロセッサの状態を保持してい
るプロセッサステータスレジスタ(P)32が内蔵され
ている。
サ2のプログラム格納用のプログラムRAM10と、演
算データ格納用のデータRAM12が内蔵されている。
さらに、プログラムのアドレスを保持するプログラムカ
ウンタ(PC)14、演算処理のデータ格納のための汎
用レジスタであるG0、G1、G2及びG3レジスタ
(16、18、20、22)、レジスタ退避・復帰時に
退避先データRAMのアドレスを保持しているスタック
ポインタ(SP)24、サブルーチンコール時にコール
元のアドレスを保持するリンクレジスタ(LS)26、
同じくIRQ(Interrupt ReQuest;
割込み要求)時とNMI(Non−Maskable
Interrupt request;禁止不能割込み
要求)時の分岐元アドレスを保持するLIレジスタ28
及びLNレジスタ30、プロセッサの状態を保持してい
るプロセッサステータスレジスタ(P)32が内蔵され
ている。
【0027】これらのレジスタと、(図示していない)
命令デコーダ、ALU、SCU(シーケンシャルユニッ
ト)、メモリ制御回路、割り込み制御回路、外部インタ
フェース制御回路及びGP演算制御回路を使用して、G
P命令の実行が行なわれる。
命令デコーダ、ALU、SCU(シーケンシャルユニッ
ト)、メモリ制御回路、割り込み制御回路、外部インタ
フェース制御回路及びGP演算制御回路を使用して、G
P命令の実行が行なわれる。
【0028】また、PE命令実行時には、命令デコーダ
(図示せず。)、レジスタファイル制御回路(図示せ
ず。)、PE演算制御回路(図示せず。)を使用して、
レジスタファイル6の制御と演算アレイ8の制御を行な
う。
(図示せず。)、レジスタファイル制御回路(図示せ
ず。)、PE演算制御回路(図示せず。)を使用して、
レジスタファイル6の制御と演算アレイ8の制御を行な
う。
【0029】レジスタファイル6においては、1つのP
E単位に8ビットのレジスタ34が32本内蔵されてお
り、256個のPE分の(32本の)組が、アレイ構成
になっている。レジスタ34はPE毎に、R0、R1、
R2、...R31と呼ばれる。それぞれのレジスタ3
4は、演算アレイ8に対して1つの読み出しポートと1
つの書き込みポートを備えており、8ビットのリード/
ライト兼用のバスで演算アレイ8からアクセスされる。
32本のレジスタの内、24本(R0〜R23)は外部
インタフェース7を介してプロセッサ外部からアクセス
可能であり、外部からはクロック(CLK)とアドレス
(Address)、リード/ライト制御(RWB)を
入力することで、任意のレジスタ34に対し、読み書き
できる。
E単位に8ビットのレジスタ34が32本内蔵されてお
り、256個のPE分の(32本の)組が、アレイ構成
になっている。レジスタ34はPE毎に、R0、R1、
R2、...R31と呼ばれる。それぞれのレジスタ3
4は、演算アレイ8に対して1つの読み出しポートと1
つの書き込みポートを備えており、8ビットのリード/
ライト兼用のバスで演算アレイ8からアクセスされる。
32本のレジスタの内、24本(R0〜R23)は外部
インタフェース7を介してプロセッサ外部からアクセス
可能であり、外部からはクロック(CLK)とアドレス
(Address)、リード/ライト制御(RWB)を
入力することで、任意のレジスタ34に対し、読み書き
できる。
【0030】レジスタ34の外部からのアクセスにおい
て、1つの外部ポートにより各PE3の1つのレジスタ
34がアクセス可能である。後で詳しく説明するよう
に、各PE3には、PE番号と呼ばれる(0から255
の)通し番号が付されているが、外部から入力されたア
ドレスでPEの番号が指定される。よって、レジスタ3
4にアクセスするための外部ポートは全部で24組搭載
されている。
て、1つの外部ポートにより各PE3の1つのレジスタ
34がアクセス可能である。後で詳しく説明するよう
に、各PE3には、PE番号と呼ばれる(0から255
の)通し番号が付されているが、外部から入力されたア
ドレスでPEの番号が指定される。よって、レジスタ3
4にアクセスするための外部ポートは全部で24組搭載
されている。
【0031】演算アレイ8は、16ビットALU36と
16ビットAレジスタ38、1つ又は複数のFレジスタ
40を内蔵している。PE命令による演算は、レジスタ
ファイル6から読み出されたデータ若しくはグローバル
プロセッサ4から与えられたデータをALU36の片側
の入力とし、Aレジスタ38の内容をもう片側の入力と
して、通常、行なわれるものである。その演算結果は、
Aレジスタ38に格納される。したがって、R0〜R3
1レジスタ34若しくはグローバルプロセッサ4から与
えられたデータと、Aレジスタ38に格納されるデータ
との、演算が通常行なわれることになる。
16ビットAレジスタ38、1つ又は複数のFレジスタ
40を内蔵している。PE命令による演算は、レジスタ
ファイル6から読み出されたデータ若しくはグローバル
プロセッサ4から与えられたデータをALU36の片側
の入力とし、Aレジスタ38の内容をもう片側の入力と
して、通常、行なわれるものである。その演算結果は、
Aレジスタ38に格納される。したがって、R0〜R3
1レジスタ34若しくはグローバルプロセッサ4から与
えられたデータと、Aレジスタ38に格納されるデータ
との、演算が通常行なわれることになる。
【0032】レジスタファイル6と演算アレイ8との接
続に、7to1(7対1)のマルチプレクサ42が置か
れている。図2に示すように、あるマルチプレクサ42
から見て、左方向の3つのPE3に含まれるR0〜R3
1レジスタ34のデータと、右方向の3つのPE3に含
まれるR0〜R31レジスタ34のデータと、自らが属
するPE3に含まれるR0〜R31レジスタ34のデー
タを、演算対象として選択し得るように設定されてい
る。また、レジスタファイル6の8ビットのデータは、
シフト・拡張回路44により任意のビット分だけ、左シ
フトしてALU36に入力する。
続に、7to1(7対1)のマルチプレクサ42が置か
れている。図2に示すように、あるマルチプレクサ42
から見て、左方向の3つのPE3に含まれるR0〜R3
1レジスタ34のデータと、右方向の3つのPE3に含
まれるR0〜R31レジスタ34のデータと、自らが属
するPE3に含まれるR0〜R31レジスタ34のデー
タを、演算対象として選択し得るように設定されてい
る。また、レジスタファイル6の8ビットのデータは、
シフト・拡張回路44により任意のビット分だけ、左シ
フトしてALU36に入力する。
【0033】さらに、8ビットの条件レジスタ(図示せ
ず。)により、PE3別に演算実行の無効/有効の制御
をしており、特定のPE3だけを演算対象として選択で
きるようになっている。
ず。)により、PE3別に演算実行の無効/有効の制御
をしており、特定のPE3だけを演算対象として選択で
きるようになっている。
【0034】各PE3には、PE番号と呼ばれる通し番
号が付されている。図2のSIMD型マイクロプロセッ
サ2では、PEの個数が256個であるので、8ビット
のビット列(即ち、00000000b〜111111
11bの256通り。ここで、上記のような末尾の
“b”は2進法表記であることを表す。)が、各PE3
にPE番号データとして与えられる。PE番号は、各P
E3に対し、PEの位置とは無関係に与えられても構わ
ないが、本明細書においては、(左)端から順に付され
ているものとする。また、PE番号が「n」であるPE
を、・PE[n]と表すことにする。従って、図2のS
IMD型マイクロプロセッサ2は、左方から、PE
[0]、PE[2]、PE[3]、・・・PE[25
4]、PE[255]により、構成される。
号が付されている。図2のSIMD型マイクロプロセッ
サ2では、PEの個数が256個であるので、8ビット
のビット列(即ち、00000000b〜111111
11bの256通り。ここで、上記のような末尾の
“b”は2進法表記であることを表す。)が、各PE3
にPE番号データとして与えられる。PE番号は、各P
E3に対し、PEの位置とは無関係に与えられても構わ
ないが、本明細書においては、(左)端から順に付され
ているものとする。また、PE番号が「n」であるPE
を、・PE[n]と表すことにする。従って、図2のS
IMD型マイクロプロセッサ2は、左方から、PE
[0]、PE[2]、PE[3]、・・・PE[25
4]、PE[255]により、構成される。
【0035】なお、上記のPE番号データは、各PE3
にて8ビットの入力端子を備えさせその端子をVCC若
しくはGNDに結ぶ組み合わせを変えることにより、作
成している。
にて8ビットの入力端子を備えさせその端子をVCC若
しくはGNDに結ぶ組み合わせを変えることにより、作
成している。
【0036】≪第1の実施の形態≫図3は、本発明の第
1の実施の形態に係るメモリコントローラ11の構成を
示すブロック図である。
1の実施の形態に係るメモリコントローラ11の構成を
示すブロック図である。
【0037】上記第1の実施の形態に係るメモリコント
ローラ11は、メモリ15にクロック、アドレス、及び
リード/ライト制御を供給することでメモリ15の制御
を行うRAM制御部56、外部インタフェース7にクロ
ック、アドレス、及びリード/ライト制御を供給するこ
とで外部インタフェース7(及び外部ポート)を制御す
る外部ポート制御部50、外部インタフェース7から出
力されたデータのバッファ受けや、外部インタフェース
7に入力するデータのタイミングの調整を行っている入
出力バッファ52、及びメモリ15から出力されたデー
タをパイプライン遅延させるための複数個の遅延レジス
タ(第1の遅延レジスタ62、第2の遅延レジスタ6
4、第3の遅延レジスタ66、第4の遅延レジスタ6
8、・・・)から、構成されている。
ローラ11は、メモリ15にクロック、アドレス、及び
リード/ライト制御を供給することでメモリ15の制御
を行うRAM制御部56、外部インタフェース7にクロ
ック、アドレス、及びリード/ライト制御を供給するこ
とで外部インタフェース7(及び外部ポート)を制御す
る外部ポート制御部50、外部インタフェース7から出
力されたデータのバッファ受けや、外部インタフェース
7に入力するデータのタイミングの調整を行っている入
出力バッファ52、及びメモリ15から出力されたデー
タをパイプライン遅延させるための複数個の遅延レジス
タ(第1の遅延レジスタ62、第2の遅延レジスタ6
4、第3の遅延レジスタ66、第4の遅延レジスタ6
8、・・・)から、構成されている。
【0038】上記の夫々のブロックは、グローバルプロ
セッサ4より制御されるコントロールブロック70によ
って制御されている。該コントロールブロック70は、
具体的には、図示していないが、制御用のレジスタや転
送数を管理するカウンタなどから構成される。
セッサ4より制御されるコントロールブロック70によ
って制御されている。該コントロールブロック70は、
具体的には、図示していないが、制御用のレジスタや転
送数を管理するカウンタなどから構成される。
【0039】外部ポート制御部50は、アドレスを外部
インタフェース7に供給するためのアドレスカウンタ
(図示せず。)を内蔵している。後で説明するが、各P
E3のレジスタ34からのデータ転送は、アドレス(即
ち、PE番号)の昇順(或いは降順)に行われればよい
ので、該アドレスカウンタは単純なアップ(或いはダウ
ン)カウンタであればよい。
インタフェース7に供給するためのアドレスカウンタ
(図示せず。)を内蔵している。後で説明するが、各P
E3のレジスタ34からのデータ転送は、アドレス(即
ち、PE番号)の昇順(或いは降順)に行われればよい
ので、該アドレスカウンタは単純なアップ(或いはダウ
ン)カウンタであればよい。
【0040】RAM制御部56の中には、第2のマルチ
プレクサ58が内蔵されており、PE3のレジスタ34
より外部ポートを介して出力されてきたデータと、(後
で説明する)複数個の遅延レジスタ(62、64、・・
・)のデータとを合成して、メモリ15上のテーブルの
アドレスを生成する。
プレクサ58が内蔵されており、PE3のレジスタ34
より外部ポートを介して出力されてきたデータと、(後
で説明する)複数個の遅延レジスタ(62、64、・・
・)のデータとを合成して、メモリ15上のテーブルの
アドレスを生成する。
【0041】メモリ15から出力されたデータは、遅延
レジスタ(62、64、・・・)によってパイプライン
遅延されるのと同時に、入出力バッファ52を経て外部
インタフェース7(及び外部ポート)に転送される。
レジスタ(62、64、・・・)によってパイプライン
遅延されるのと同時に、入出力バッファ52を経て外部
インタフェース7(及び外部ポート)に転送される。
【0042】メモリ15は、グローバルプロセッサ4よ
りデータが書き込まれ得るように、構成されており(図
示せず。)、パターンマッチング処理におけるデータ転
送を開始する前に、メモリ15上に、パターンマッチン
グ処理で必要とされる変換テーブルが書き込まれる。遅
延レジスタ(62、64、・・・)には、パターンマッ
チング処理におけるデータ転送を開始する前に、グロー
バルプロセッサ4より初期値が設定される。
りデータが書き込まれ得るように、構成されており(図
示せず。)、パターンマッチング処理におけるデータ転
送を開始する前に、メモリ15上に、パターンマッチン
グ処理で必要とされる変換テーブルが書き込まれる。遅
延レジスタ(62、64、・・・)には、パターンマッ
チング処理におけるデータ転送を開始する前に、グロー
バルプロセッサ4より初期値が設定される。
【0043】かかる第1の実施の形態に係るメモリコン
トローラ11を利用すれば、各PE3の所定のレジスタ
34に、副走査方向にビットパックされたデータを格納
した後、データ変換を行えば、パターンマッチング結果
が各PE3の所定のレジスタ34に格納されることにな
る。
トローラ11を利用すれば、各PE3の所定のレジスタ
34に、副走査方向にビットパックされたデータを格納
した後、データ変換を行えば、パターンマッチング結果
が各PE3の所定のレジスタ34に格納されることにな
る。
【0044】<パターンマッチングの対象の画素データ
が2値データである場合の例>以下では、上記メモリコ
ントローラ11を用いて、図4上部に示される「3×
3」の画素パターンでのパターンマッチングを行う手順
につき記述している。ここでのパターンマッチングで
は、図4上部の6つのパターンのいずれかに一致すれ
ば、「真」(即ち、「1」)を返している。この図4に
おいては、「黒丸」はデータが“1”であることを意味
し、「空欄」はデータが何でもよいことを意味してい
る。
が2値データである場合の例>以下では、上記メモリコ
ントローラ11を用いて、図4上部に示される「3×
3」の画素パターンでのパターンマッチングを行う手順
につき記述している。ここでのパターンマッチングで
は、図4上部の6つのパターンのいずれかに一致すれ
ば、「真」(即ち、「1」)を返している。この図4に
おいては、「黒丸」はデータが“1”であることを意味
し、「空欄」はデータが何でもよいことを意味してい
る。
【0045】更に、パターンマッチングの対象の画素デ
ータは、2値データであり、データは副走査方向にビッ
トパックされ、各PE3の所定のレジスタ34におい
て、ビット0(bit0)に一番上のラインが、ビット
1(bit1)に2番目のラインが、ビット2(bit
2)に1番下のラインが、格納されているものとする
(図4の下部右を参照)。
ータは、2値データであり、データは副走査方向にビッ
トパックされ、各PE3の所定のレジスタ34におい
て、ビット0(bit0)に一番上のラインが、ビット
1(bit1)に2番目のラインが、ビット2(bit
2)に1番下のラインが、格納されているものとする
(図4の下部右を参照)。
【0046】メモリ15上の変換テーブルのアドレス
は、メモリコントローラ11内のRAM制御部56の第
2のマルチプレクサ58において、図5の左部の図のよ
うに合成される。9ビットの有効なアドレスは、ビット
0〜2に外部ポート(及び外部インタフェース7)から
出力されるデータ(つまり、PEのレジスタのデータ)
の下位3ビットの値を置き、ビット3〜5に第1の遅延
レジスタ62の下位3ビットの値を置き、ビット6〜8
に第2の遅延レジスタ64の下位3ビットの値を置い
て、設定される。後でも説明するように、第1の遅延レ
ジスタ62には、外部ポートから出力されてきてアドレ
スを形成するデータの格納元の(レジスタの)PEの、
1つ前のPE番号を備えるPE(のレジスタ)からのデ
ータ(の下位3ビット)が格納されていることになる。
同様に、第2の遅延レジスタ64には、外部ポートから
出力されてきてアドレスを形成するデータの格納元の
(レジスタの)PEの、2つ前のPE番号を備えるPE
(のレジスタ)からのデータ(の下位3ビット)が格納
されていることになる。従って、メモリ15の変換テー
ブルの9ビット・アドレス(図5左部)は、図4下部左
の「3×3」の画素の組み合わせに対応することにな
る。
は、メモリコントローラ11内のRAM制御部56の第
2のマルチプレクサ58において、図5の左部の図のよ
うに合成される。9ビットの有効なアドレスは、ビット
0〜2に外部ポート(及び外部インタフェース7)から
出力されるデータ(つまり、PEのレジスタのデータ)
の下位3ビットの値を置き、ビット3〜5に第1の遅延
レジスタ62の下位3ビットの値を置き、ビット6〜8
に第2の遅延レジスタ64の下位3ビットの値を置い
て、設定される。後でも説明するように、第1の遅延レ
ジスタ62には、外部ポートから出力されてきてアドレ
スを形成するデータの格納元の(レジスタの)PEの、
1つ前のPE番号を備えるPE(のレジスタ)からのデ
ータ(の下位3ビット)が格納されていることになる。
同様に、第2の遅延レジスタ64には、外部ポートから
出力されてきてアドレスを形成するデータの格納元の
(レジスタの)PEの、2つ前のPE番号を備えるPE
(のレジスタ)からのデータ(の下位3ビット)が格納
されていることになる。従って、メモリ15の変換テー
ブルの9ビット・アドレス(図5左部)は、図4下部左
の「3×3」の画素の組み合わせに対応することにな
る。
【0047】メモリ15上の変換テーブルのデータ部
は、図5の右部のように形成される。まず、下位3ビッ
トには、そのアドレスのビット0〜2の値がそのまま格
納される。次に、ビット7には、アドレス値の元である
「3×3」の画素の組み合わせにおけるデータが、図4
上部のパターンのいずれかと合致する場合に、“1”が
格納される。
は、図5の右部のように形成される。まず、下位3ビッ
トには、そのアドレスのビット0〜2の値がそのまま格
納される。次に、ビット7には、アドレス値の元である
「3×3」の画素の組み合わせにおけるデータが、図4
上部のパターンのいずれかと合致する場合に、“1”が
格納される。
【0048】表1の例を説明する。
【表1】
【0049】[ケース1]では、アドレスの全てのビッ
トが0であり、画素データに戻して表現すると9画素全
てが黒(“1”)ではない場合なので、図4上部のパタ
ーン全てに一致しない。この場合、メモリ15の変換テ
ーブルのデータ部では、ビット7には不一致を示す
“0”が、下位3ビットにはアドレスの下位3ビット
“000”が、設定される。
トが0であり、画素データに戻して表現すると9画素全
てが黒(“1”)ではない場合なので、図4上部のパタ
ーン全てに一致しない。この場合、メモリ15の変換テ
ーブルのデータ部では、ビット7には不一致を示す
“0”が、下位3ビットにはアドレスの下位3ビット
“000”が、設定される。
【0050】[ケース2]では、アドレスの中位3ビッ
トが“111”であり、画素データに戻して表現する
と、9画素のうちで中の列の画素データ3つが全て黒
(“1”)である場合なので、図4上部のパターンの
「2」に一致する。この場合、メモリ15の変換テーブ
ルのデータ部では、ビット7には一致パターンが存在す
ることを示す“1”が、下位3ビットにはアドレスの下
位3ビット“000”が、設定される。
トが“111”であり、画素データに戻して表現する
と、9画素のうちで中の列の画素データ3つが全て黒
(“1”)である場合なので、図4上部のパターンの
「2」に一致する。この場合、メモリ15の変換テーブ
ルのデータ部では、ビット7には一致パターンが存在す
ることを示す“1”が、下位3ビットにはアドレスの下
位3ビット“000”が、設定される。
【0051】同様にして、[ケース3]では、図4上の
パターンの「2」と「5」に一致しているので、ビット
7には“1”が、下位3ビットには“001”が設定さ
れる。[ケース4]では、図4上部のパターン全てに一
致しないので、ビット7には“0”が、下位3ビットに
は“111”が設定される。
パターンの「2」と「5」に一致しているので、ビット
7には“1”が、下位3ビットには“001”が設定さ
れる。[ケース4]では、図4上部のパターン全てに一
致しないので、ビット7には“0”が、下位3ビットに
は“111”が設定される。
【0052】メモリ15上の必要な領域に、上記の[ケ
ース1]乃至[ケース4]のように、予め、データを格
納しておく。上記の場合は、アドレスが9ビットである
ので、メモリ15の0番地から511番地までに格納さ
れることになる。
ース1]乃至[ケース4]のように、予め、データを格
納しておく。上記の場合は、アドレスが9ビットである
ので、メモリ15の0番地から511番地までに格納さ
れることになる。
【0053】遅延レジスタ(62、64、66、・・
・)には、パターンマッチ結果と直前の列の画素データ
とが、メモリ15の出力として順次書き込まれていき、
遅延レジスタの段数分に応じてパイプラインが形成され
る。本実施の形態では、2つの遅延レジスタ(第1の遅
延レジスタ62、第2の遅延レジスタ64)データと、
外部ポート(及び外部インタフェース7)より出力され
たデータとの、3段のパイプラインが形成され、3列の
画素データに関してのパターンマッチングが行なわれ
る。
・)には、パターンマッチ結果と直前の列の画素データ
とが、メモリ15の出力として順次書き込まれていき、
遅延レジスタの段数分に応じてパイプラインが形成され
る。本実施の形態では、2つの遅延レジスタ(第1の遅
延レジスタ62、第2の遅延レジスタ64)データと、
外部ポート(及び外部インタフェース7)より出力され
たデータとの、3段のパイプラインが形成され、3列の
画素データに関してのパターンマッチングが行なわれ
る。
【0054】PE3のレジスタ34に書き戻されるデー
タは、真中の列に相当する第1の遅延レジスタ62より
の出力のデータであり、該データは第1のマルチプレク
サ54により選択されて、外部インタフェース7(及び
外部ポート)を介して書き込まれる。全PE3に関して
一連の転送が終了すると、各PE3のレジスタ34のビ
ット7には、パターンマッチング結果が格納されること
になる。
タは、真中の列に相当する第1の遅延レジスタ62より
の出力のデータであり、該データは第1のマルチプレク
サ54により選択されて、外部インタフェース7(及び
外部ポート)を介して書き込まれる。全PE3に関して
一連の転送が終了すると、各PE3のレジスタ34のビ
ット7には、パターンマッチング結果が格納されること
になる。
【0055】<パターンマッチングの対象の画素データ
が3値データである場合の例>以上では、2値、つまり
ある閾値以上の値を持つ画素を黒(“1”)それ以外を
白(“0”)としたデータに関して、パターンマッチン
グを行う例につき記載してきた。画像処理では、3値、
つまりある閾値以上の値、その閾値とは別の閾値以下の
値、そしてどちらでもない値の、3つの値を取り得る画
素に関してのパターンマッチング処理も行われることが
ある。
が3値データである場合の例>以上では、2値、つまり
ある閾値以上の値を持つ画素を黒(“1”)それ以外を
白(“0”)としたデータに関して、パターンマッチン
グを行う例につき記載してきた。画像処理では、3値、
つまりある閾値以上の値、その閾値とは別の閾値以下の
値、そしてどちらでもない値の、3つの値を取り得る画
素に関してのパターンマッチング処理も行われることが
ある。
【0056】この場合は、通常、各PE3において2つ
のレジスタが使用される。即ち、ある閾値以上の値を持
つ画素を例えば「黒」の画素とし、「黒」の画素か否か
を示す(ひとつの)レジスタが設定され、その閾値とは
別の閾値以下の値を持つ画素を例えば「白」の画素と
し、「白」の画素か否かを示す(更に別の)レジスタが
設定される。「黒」の画素を示すレジスタでは、画素が
ある閾値以上であれば“1”、それ以外の値であれば
“0”が格納される。「白」の画素を示すレジスタで
は、画素が別の閾値以下であれば“1”、それ以外の値
であれば“0”が格納される。
のレジスタが使用される。即ち、ある閾値以上の値を持
つ画素を例えば「黒」の画素とし、「黒」の画素か否か
を示す(ひとつの)レジスタが設定され、その閾値とは
別の閾値以下の値を持つ画素を例えば「白」の画素と
し、「白」の画素か否かを示す(更に別の)レジスタが
設定される。「黒」の画素を示すレジスタでは、画素が
ある閾値以上であれば“1”、それ以外の値であれば
“0”が格納される。「白」の画素を示すレジスタで
は、画素が別の閾値以下であれば“1”、それ以外の値
であれば“0”が格納される。
【0057】図6の上部は、上記の3値によるパターン
マッチングにおける、パターンの例を示す。図6上部の
22個のパターンのどれかに一致すれば、真(“1”)
が返される場合について、説明する。
マッチングにおける、パターンの例を示す。図6上部の
22個のパターンのどれかに一致すれば、真(“1”)
が返される場合について、説明する。
【0058】図6上部において、黒丸は「黒」の画素の
レジスタが“1”であることを、白丸は「白」の画素の
レジスタが“1”であることを、空欄はデータが何でも
よいことを意味している。
レジスタが“1”であることを、白丸は「白」の画素の
レジスタが“1”であることを、空欄はデータが何でも
よいことを意味している。
【0059】まず、黒丸データと白丸データとが、副走
査方向にビットパックされる。即ち、黒丸データは、各
PE3の所定のレジスタ34に、一番上のラインがビッ
ト0に、2番目のラインがビット1に、1番下のライン
がビット2に、夫々設定されるように、格納されるもの
とする。白丸データは、同じレジスタに、一番上のライ
ンがビット3に、2番目のラインがビット4に、一番下
のラインがビット5に、夫々設定されるように、格納さ
れるものとする(図6の下部右を参照)。
査方向にビットパックされる。即ち、黒丸データは、各
PE3の所定のレジスタ34に、一番上のラインがビッ
ト0に、2番目のラインがビット1に、1番下のライン
がビット2に、夫々設定されるように、格納されるもの
とする。白丸データは、同じレジスタに、一番上のライ
ンがビット3に、2番目のラインがビット4に、一番下
のラインがビット5に、夫々設定されるように、格納さ
れるものとする(図6の下部右を参照)。
【0060】メモリ15上の変換テーブルのアドレス
は、メモリコントローラ11内のRAM制御部56の第
2のマルチプレクサ58において、図7の左部のように
合成される。14ビットの有効なアドレスは、ビット0
〜2に外部ポート(及び外部インタフェース7)から出
力されるデータ(つまり、PEのレジスタのデータ)の
ビット0〜2の値を置き、ビット3〜5に外部ポート
(及び外部インタフェース7)から出力されるデータ
(つまり、PEのレジスタのデータ)のビット3〜5の
値を置き、ビット6〜9に第1の遅延レジスタ62の下
位4ビットの値を置き、ビット10〜13に第2の遅延
レジスタ64の下位4ビットの値を置いて、設定され
る。後でも説明するように、第1の遅延レジスタ62に
は、外部ポートから出力されてきてアドレスを形成する
データの格納元の(レジスタの)PEの、1つ前のPE
番号を備えるPE(のレジスタ)からのデータの、下位
6ビットに係る列パターン番号が格納されている。同様
に、第2の遅延レジスタ64には、外部ポートから出力
されてきてアドレスを形成するデータの格納元の(レジ
スタの)PEの、2つ前のPE番号を備えるPE(のレ
ジスタ)からのデータの、下位6ビットに係る列パター
ン番号が格納されている。従って、メモリ15の変換テ
ーブルの14ビット・アドレス(図7左部)は、図6下
部左の「3×3」の画素の組み合わせに対応することに
なる。
は、メモリコントローラ11内のRAM制御部56の第
2のマルチプレクサ58において、図7の左部のように
合成される。14ビットの有効なアドレスは、ビット0
〜2に外部ポート(及び外部インタフェース7)から出
力されるデータ(つまり、PEのレジスタのデータ)の
ビット0〜2の値を置き、ビット3〜5に外部ポート
(及び外部インタフェース7)から出力されるデータ
(つまり、PEのレジスタのデータ)のビット3〜5の
値を置き、ビット6〜9に第1の遅延レジスタ62の下
位4ビットの値を置き、ビット10〜13に第2の遅延
レジスタ64の下位4ビットの値を置いて、設定され
る。後でも説明するように、第1の遅延レジスタ62に
は、外部ポートから出力されてきてアドレスを形成する
データの格納元の(レジスタの)PEの、1つ前のPE
番号を備えるPE(のレジスタ)からのデータの、下位
6ビットに係る列パターン番号が格納されている。同様
に、第2の遅延レジスタ64には、外部ポートから出力
されてきてアドレスを形成するデータの格納元の(レジ
スタの)PEの、2つ前のPE番号を備えるPE(のレ
ジスタ)からのデータの、下位6ビットに係る列パター
ン番号が格納されている。従って、メモリ15の変換テ
ーブルの14ビット・アドレス(図7左部)は、図6下
部左の「3×3」の画素の組み合わせに対応することに
なる。
【0061】メモリ15上の変換テーブルのデータ部
は、図7の右部のように形成される。まず、下位4ビッ
トには、外部ポートから出力されてきた(下位6ビット
の)列データが、図8の複数の列パターンのうち、合致
するものの列パターン番号(但し、2進数表示)を格納
する。図6上部のパターンの例では、14個の列パター
ンで全てが網羅されるので、列パターン番号は、4ビッ
トである。ここで、3画素とも黒丸データである場合に
は、列パターン番号の0000、0100、0101、
1010、1011、1100の6つに合致し得るが、
このような場合には予め一つ列パターン番号を決定して
設定しておく。例えば、最も合致条件が厳しいとされる
「0000」を設定すればよい。
は、図7の右部のように形成される。まず、下位4ビッ
トには、外部ポートから出力されてきた(下位6ビット
の)列データが、図8の複数の列パターンのうち、合致
するものの列パターン番号(但し、2進数表示)を格納
する。図6上部のパターンの例では、14個の列パター
ンで全てが網羅されるので、列パターン番号は、4ビッ
トである。ここで、3画素とも黒丸データである場合に
は、列パターン番号の0000、0100、0101、
1010、1011、1100の6つに合致し得るが、
このような場合には予め一つ列パターン番号を決定して
設定しておく。例えば、最も合致条件が厳しいとされる
「0000」を設定すればよい。
【0062】次に、ビット7には、アドレス値の元であ
る「3×3」の画素の組み合わせが、図6上部のパター
ンのいずれかと合致する場合に、“1”が格納される。
る「3×3」の画素の組み合わせが、図6上部のパター
ンのいずれかと合致する場合に、“1”が格納される。
【0063】表2の例を説明する。
【表2】
【0064】[ケースa]では、第2の遅延レジスタ6
4(左列)の列パターンが0000(黒黒黒)、第1の
遅延レジスタ62(中央列)の列パターンが0000
(黒黒黒)、外部ポートから出力されたデータが黒丸デ
ータでは000(NB,NB,NB)、白丸データでは
000(NW,NW,NW)である場合になるので、パ
ターン2に一致しており、ビット7には“1”が設定さ
れる。右列が、図8の列パターンのどれとも一致してい
ないので、下位4ビットには“1101”が設定され
る。
4(左列)の列パターンが0000(黒黒黒)、第1の
遅延レジスタ62(中央列)の列パターンが0000
(黒黒黒)、外部ポートから出力されたデータが黒丸デ
ータでは000(NB,NB,NB)、白丸データでは
000(NW,NW,NW)である場合になるので、パ
ターン2に一致しており、ビット7には“1”が設定さ
れる。右列が、図8の列パターンのどれとも一致してい
ないので、下位4ビットには“1101”が設定され
る。
【0065】ここで、上記「NB」は、「黒ではない」
(Not Black)ことを示し、上記「NW」は、
「白ではない」(Not White)ことを示す。以
下、同様である。
(Not Black)ことを示し、上記「NW」は、
「白ではない」(Not White)ことを示す。以
下、同様である。
【0066】[ケースb]では、第2の遅延レジスタ6
4(左列)の列パターンが0000(黒黒黒)、第1の
遅延レジスタ62(中央列)の列パターンが0000
(黒黒黒)、外部ポートから出力されたデータが黒丸デ
ータでは001(上から、黒,NB,NB)、白丸デー
タでは000(NW,NW,NW)である場合になるの
で、パターン2に一致しており、ビット7には“1”が
設定される。下位4ビットには列パターン番号“101
0”が設定される。
4(左列)の列パターンが0000(黒黒黒)、第1の
遅延レジスタ62(中央列)の列パターンが0000
(黒黒黒)、外部ポートから出力されたデータが黒丸デ
ータでは001(上から、黒,NB,NB)、白丸デー
タでは000(NW,NW,NW)である場合になるの
で、パターン2に一致しており、ビット7には“1”が
設定される。下位4ビットには列パターン番号“101
0”が設定される。
【0067】[ケースc]では、第2の遅延レジスタ6
4(左列)の列パターンが0000(黒黒黒)、第1の
遅延レジスタ62(中央列)の列パターンが0000
(黒黒黒)、外部ポートから出力されたデータが黒丸デ
ータでは010(上から、NB,黒,NB)、白丸デー
タでは000(NW,NW,NW)である場合になるの
で、パターン2に一致しており、ビット7には“1”が
設定される。下位4ビットには列パターン番号“101
1”が設定される。
4(左列)の列パターンが0000(黒黒黒)、第1の
遅延レジスタ62(中央列)の列パターンが0000
(黒黒黒)、外部ポートから出力されたデータが黒丸デ
ータでは010(上から、NB,黒,NB)、白丸デー
タでは000(NW,NW,NW)である場合になるの
で、パターン2に一致しており、ビット7には“1”が
設定される。下位4ビットには列パターン番号“101
1”が設定される。
【0068】[ケースd]では、第2の遅延レジスタ6
4(左列)の列パターンが0010(上から、白黒
黒)、第1の遅延レジスタ62(中央列)の列パターン
が0010(上から、白黒黒)、外部ポートから出力さ
れたデータが黒丸データでは000(NB,NB,N
B)、白丸データでは000(NW,NW,NW)であ
る場合になるので、いずれのパターンとも一致せず、よ
ってビット7には“0”が設定される。下位4ビットに
は列パターン番号“1101”(該当なし)が設定され
る。
4(左列)の列パターンが0010(上から、白黒
黒)、第1の遅延レジスタ62(中央列)の列パターン
が0010(上から、白黒黒)、外部ポートから出力さ
れたデータが黒丸データでは000(NB,NB,N
B)、白丸データでは000(NW,NW,NW)であ
る場合になるので、いずれのパターンとも一致せず、よ
ってビット7には“0”が設定される。下位4ビットに
は列パターン番号“1101”(該当なし)が設定され
る。
【0069】[ケースe]では、第2の遅延レジスタ6
4(左列)の列パターンが0010(上から、白黒
黒)、第1の遅延レジスタ62(中央列)の列パターン
が0010(上から、白黒黒)、外部ポートから出力さ
れたデータが黒丸データでは001(上から、黒,N
B,NB)、白丸データでは000(NW,NW,N
W)である場合になるので、パターン4に一致してお
り、ビット7には“1”が設定される。下位4ビットに
は列パターン番号“1010”が設定される。
4(左列)の列パターンが0010(上から、白黒
黒)、第1の遅延レジスタ62(中央列)の列パターン
が0010(上から、白黒黒)、外部ポートから出力さ
れたデータが黒丸データでは001(上から、黒,N
B,NB)、白丸データでは000(NW,NW,N
W)である場合になるので、パターン4に一致してお
り、ビット7には“1”が設定される。下位4ビットに
は列パターン番号“1010”が設定される。
【0070】[ケースf]では、第2の遅延レジスタ6
4(左列)の列パターンが0010(上から、白黒
黒)、第1の遅延レジスタ62(中央列)の列パターン
が0010(上から、白黒黒)、外部ポートから出力さ
れたデータが黒丸データでは010(上からNB,黒,
NB)、白丸データでは000(NW,NW,NW)で
ある場合になるので、パターン1に一致しており、ビッ
ト7には“1”が設定される。下位4ビットには列パタ
ーン番号“1011”が設定される。
4(左列)の列パターンが0010(上から、白黒
黒)、第1の遅延レジスタ62(中央列)の列パターン
が0010(上から、白黒黒)、外部ポートから出力さ
れたデータが黒丸データでは010(上からNB,黒,
NB)、白丸データでは000(NW,NW,NW)で
ある場合になるので、パターン1に一致しており、ビッ
ト7には“1”が設定される。下位4ビットには列パタ
ーン番号“1011”が設定される。
【0071】[ケースg]では、第2の遅延レジスタ6
4(左列)の列パターンが1101(該当なし)、第1
の遅延レジスタ62(中央列)の列パターンが1101
(該当なし)、外部ポートから出力されたデータが黒丸
データでは000(上から、NB,NB,NB)、白丸
データでは111(白白白)である場合になるので、い
ずれのパターンにも一致せず、よってビット7には
“0”が設定される。下位4ビットには列パターン番号
“1101”(該当なし)が設定される。
4(左列)の列パターンが1101(該当なし)、第1
の遅延レジスタ62(中央列)の列パターンが1101
(該当なし)、外部ポートから出力されたデータが黒丸
データでは000(上から、NB,NB,NB)、白丸
データでは111(白白白)である場合になるので、い
ずれのパターンにも一致せず、よってビット7には
“0”が設定される。下位4ビットには列パターン番号
“1101”(該当なし)が設定される。
【0072】メモリ15上の必要な領域に、上記の[ケ
ースa]乃至[ケースg]のように、予め、データを格
納しておく。上記の場合は、アドレスが14ビットであ
るので、メモリ15の0番地から16383番地まで格
納されることになる。但し、[ケースg]のアドレスよ
り上位のアドレスは、参照されることがないので何を格
納しておいても問題はない。
ースa]乃至[ケースg]のように、予め、データを格
納しておく。上記の場合は、アドレスが14ビットであ
るので、メモリ15の0番地から16383番地まで格
納されることになる。但し、[ケースg]のアドレスよ
り上位のアドレスは、参照されることがないので何を格
納しておいても問題はない。
【0073】3値のデータの場合、各PE3のレジスタ
34から出力されてくる白丸データと黒丸データとを単
純に合成して変換テーブルのアドレスとするならば、遅
延レジスタ1段あたり6ビットが必要となる。すると、
3列分合わせると18ビットのアドレスとなり、結局変
換テーブルに256Kバイトのメモリ容量が必要とな
る。本実施の形態では、遅延レジスタ(62、64、6
6、・・・)1段あたりには、4ビットが格納されれば
よい。なぜなら、パターンマッチングのパターンを構成
する列パターンの数のみが考慮されればよいからであ
る。よって、2段の遅延レジスタの夫々において4ビッ
ト、外部ポート(及び外部インタフェース7)から出力
される6ビット、これらを合算すると3列合わせて14
ビットとなる。即ち、上記256Kバイトの1/16の
容量の、16Kバイトのメモリ容量で賄えることにな
る。
34から出力されてくる白丸データと黒丸データとを単
純に合成して変換テーブルのアドレスとするならば、遅
延レジスタ1段あたり6ビットが必要となる。すると、
3列分合わせると18ビットのアドレスとなり、結局変
換テーブルに256Kバイトのメモリ容量が必要とな
る。本実施の形態では、遅延レジスタ(62、64、6
6、・・・)1段あたりには、4ビットが格納されれば
よい。なぜなら、パターンマッチングのパターンを構成
する列パターンの数のみが考慮されればよいからであ
る。よって、2段の遅延レジスタの夫々において4ビッ
ト、外部ポート(及び外部インタフェース7)から出力
される6ビット、これらを合算すると3列合わせて14
ビットとなる。即ち、上記256Kバイトの1/16の
容量の、16Kバイトのメモリ容量で賄えることにな
る。
【0074】遅延レジスタ(62、64、66、・・
・)には、パターンマッチ結果と、直前の列の画素デー
タの列パターン番号とが、メモリ15の出力として順次
書き込まれていき、遅延レジスタの段数分に応じてパイ
プラインが形成される。本実施の形態では、2つの遅延
レジスタ(第1の遅延レジスタ62、第2の遅延レジス
タ64)データと、外部ポート(及び外部インタフェー
ス7)より出力されたデータとの、3段のパイプライン
が形成され、3列の画素データに関してのパターンマッ
チングが行われる。
・)には、パターンマッチ結果と、直前の列の画素デー
タの列パターン番号とが、メモリ15の出力として順次
書き込まれていき、遅延レジスタの段数分に応じてパイ
プラインが形成される。本実施の形態では、2つの遅延
レジスタ(第1の遅延レジスタ62、第2の遅延レジス
タ64)データと、外部ポート(及び外部インタフェー
ス7)より出力されたデータとの、3段のパイプライン
が形成され、3列の画素データに関してのパターンマッ
チングが行われる。
【0075】PE3のレジスタ34に書き戻されるデー
タは、真中の列に相当する第1の遅延レジスタ62より
の出力のデータであり、該データは第1のマルチプレク
サ54により選択されて、外部インタフェース7(及び
外部ポート)を介して書き込まれる。全PE3に関して
一連の転送が終了すると、各PE3のレジスタ34のビ
ット7には、パターンマッチング結果が格納されること
になる。
タは、真中の列に相当する第1の遅延レジスタ62より
の出力のデータであり、該データは第1のマルチプレク
サ54により選択されて、外部インタフェース7(及び
外部ポート)を介して書き込まれる。全PE3に関して
一連の転送が終了すると、各PE3のレジスタ34のビ
ット7には、パターンマッチング結果が格納されること
になる。
【0076】≪第2の実施の形態≫図10は、本発明の
第2の実施の形態に係るメモリコントローラ11の構成
を示すブロック図である。
第2の実施の形態に係るメモリコントローラ11の構成
を示すブロック図である。
【0077】上記第2の実施の形態に係るメモリコント
ローラ11’は、2つの外部インタフェース(7’、
7”)より出力されたデータを、第3のマルチプレクス
58’にて選択の上、変換テーブルのアドレスの一部と
してメモリ15に出力するように構成されている。遅延
レジスタ(62’、64’、66’、68’、・・・)
からの出力信号に関しては、下位8ビットが第1の入出
力バッファ52’を介して第1の外部インタフェース
7’に出力され、上位8ビットが第2の入出力バッファ
52”を介して第2の外部インタフェース7”に出力さ
れる構成となっている。
ローラ11’は、2つの外部インタフェース(7’、
7”)より出力されたデータを、第3のマルチプレクス
58’にて選択の上、変換テーブルのアドレスの一部と
してメモリ15に出力するように構成されている。遅延
レジスタ(62’、64’、66’、68’、・・・)
からの出力信号に関しては、下位8ビットが第1の入出
力バッファ52’を介して第1の外部インタフェース
7’に出力され、上位8ビットが第2の入出力バッファ
52”を介して第2の外部インタフェース7”に出力さ
れる構成となっている。
【0078】かかる構成によれば、パターンマッチング
を行う対象の画素数が増えた場合であっても、2つの外
部インタフェースを利用すれば対処できることになる。
例えば、3値の画素データの5×5のパターンマッチン
グでは、黒データ、白データの合わせて10ビットのデ
ータを、外部インタフェースから出力する必要がある
が、上記第1の実施の形態の構成では、8ビットまでし
か出力できないため対応できない。この第2の実施の形
態の構成では、黒データ5ビットを第1の外部インタフ
ェース7’から、白データ5ビットを第2の外部インタ
フェース7”から出力するようにすれば、パターンマッ
チングを行うことが可能となる。
を行う対象の画素数が増えた場合であっても、2つの外
部インタフェースを利用すれば対処できることになる。
例えば、3値の画素データの5×5のパターンマッチン
グでは、黒データ、白データの合わせて10ビットのデ
ータを、外部インタフェースから出力する必要がある
が、上記第1の実施の形態の構成では、8ビットまでし
か出力できないため対応できない。この第2の実施の形
態の構成では、黒データ5ビットを第1の外部インタフ
ェース7’から、白データ5ビットを第2の外部インタ
フェース7”から出力するようにすれば、パターンマッ
チングを行うことが可能となる。
【0079】また、画像処理では、広範囲な領域で、領
域ごとに処理を変える必要がある場合が多い。例えば、
文字の部分と写真の部分とで異なるパターンでのパター
ンマッチングを行う必要がある場合が存在する。この場
合に、本実施の形態によれば、第2の外部インタフェー
ス7”から特徴量(たとえば、文字領域なら“0”で、
写真領域なら“1”など)を出力し、メモリ15上の変
換テーブルのアドレスとしてこの特徴量を用いると、ア
ドレスにオフセットを付けることが可能となる。このと
き、第1の外部インタフェース7’からはビットパック
された画素データを出力すると、文字と写真とで異なる
パターンを使ってパターンマッチングを行うこともでき
る。
域ごとに処理を変える必要がある場合が多い。例えば、
文字の部分と写真の部分とで異なるパターンでのパター
ンマッチングを行う必要がある場合が存在する。この場
合に、本実施の形態によれば、第2の外部インタフェー
ス7”から特徴量(たとえば、文字領域なら“0”で、
写真領域なら“1”など)を出力し、メモリ15上の変
換テーブルのアドレスとしてこの特徴量を用いると、ア
ドレスにオフセットを付けることが可能となる。このと
き、第1の外部インタフェース7’からはビットパック
された画素データを出力すると、文字と写真とで異なる
パターンを使ってパターンマッチングを行うこともでき
る。
【0080】≪第3の実施の形態≫図9は、SIMD型
マイクロプロセッサ2のPE数よりも主走査方向の画素
数が多い場合に、どのように処理を進めるかを図示した
ものである。例えば、デジタルコピアのように主走査方
向に7000画素以上の画素が並ぶ場合には、通常のS
IMD型マイクロプロセッサでは一度に全ての画素の処
理を行うことはできない。通常は、1ラインを分割し
て、分割された部分に対して処理を行い、それを複数回
繰り返すことによって画像処理を実現している。例えば
7000画素に対して、PE数が256であるSIMD
型マイクロプロセッサを利用する場合、28回に分割し
て処理を行う。
マイクロプロセッサ2のPE数よりも主走査方向の画素
数が多い場合に、どのように処理を進めるかを図示した
ものである。例えば、デジタルコピアのように主走査方
向に7000画素以上の画素が並ぶ場合には、通常のS
IMD型マイクロプロセッサでは一度に全ての画素の処
理を行うことはできない。通常は、1ラインを分割し
て、分割された部分に対して処理を行い、それを複数回
繰り返すことによって画像処理を実現している。例えば
7000画素に対して、PE数が256であるSIMD
型マイクロプロセッサを利用する場合、28回に分割し
て処理を行う。
【0081】ところで、画像処理では、フィルタ処理な
どのように左右の画素のデータを参照している処理が数
多く行われている。その場合には、単純に分割して処理
を行うのではなく、左右画素を参照することによって目
減りしていく画素数だけオーバラップを持った形で分割
することによって、連続性を保っている。図9は、PE
数をn個、目減りする画素数をa個とした場合の例であ
る。斜線部分が連続性を保持した画像データになる。
どのように左右の画素のデータを参照している処理が数
多く行われている。その場合には、単純に分割して処理
を行うのではなく、左右画素を参照することによって目
減りしていく画素数だけオーバラップを持った形で分割
することによって、連続性を保っている。図9は、PE
数をn個、目減りする画素数をa個とした場合の例であ
る。斜線部分が連続性を保持した画像データになる。
【0082】パターンマッチングを本発明に係るメモリ
コントローラで行う場合には、このオーバラップ処理を
考慮する必要がある。1SIMD目(分割された一つ目
の領域のこと。ここでは、領域の単位として“SIM
D”という言葉を用いることにする。)では、パターン
マッチングを0からn−1まで行う。転送が終わった
後、遅延レジスタにはn−1、n−2、…の画素の列デ
ータが格納されている。次に、2SIMD目の転送を行
う場合を考えてみると、オーバラップ分だけ画素が左に
戻っているので、最初の画素が(n−2×a)となる。
このとき、(n−2×a−1)、(n−2×a−2)、
…のデータが遅延レジスタにないとパターンマッチング
ができない。
コントローラで行う場合には、このオーバラップ処理を
考慮する必要がある。1SIMD目(分割された一つ目
の領域のこと。ここでは、領域の単位として“SIM
D”という言葉を用いることにする。)では、パターン
マッチングを0からn−1まで行う。転送が終わった
後、遅延レジスタにはn−1、n−2、…の画素の列デ
ータが格納されている。次に、2SIMD目の転送を行
う場合を考えてみると、オーバラップ分だけ画素が左に
戻っているので、最初の画素が(n−2×a)となる。
このとき、(n−2×a−1)、(n−2×a−2)、
…のデータが遅延レジスタにないとパターンマッチング
ができない。
【0083】図11にてブロック図が示されるメモリコ
ントローラ11”は、上記の瑕疵を改善した構成を備え
る。
ントローラ11”は、上記の瑕疵を改善した構成を備え
る。
【0084】図11は、本発明の第3の実施の形態に係
るメモリコントローラ11の構成を示すブロック図であ
る。遅延レジスタ(62”、64”、66”、68”、
・・・)は、個々に対応する退避レジスタ(82、8
4、86、88、・・・)を備え、それぞれの遅延レジ
スタ(62”、64”、66”、68”、・・・)の値
が更新されるときに、その値を個々に備わる退避レジス
タ(62”、64”、66”、68”、・・・)にも反
映するように構成されている。
るメモリコントローラ11の構成を示すブロック図であ
る。遅延レジスタ(62”、64”、66”、68”、
・・・)は、個々に対応する退避レジスタ(82、8
4、86、88、・・・)を備え、それぞれの遅延レジ
スタ(62”、64”、66”、68”、・・・)の値
が更新されるときに、その値を個々に備わる退避レジス
タ(62”、64”、66”、68”、・・・)にも反
映するように構成されている。
【0085】外部ポート制御部50”には、PE番号を
外部インタフェース7に出力するためのアドレスカウン
タ76が内蔵され、更に、そのアドレスカウンタ76の
値と、予めオフセット設定用のレジスタ(オフセット設
定値保存部72)に設定されていた値とを、監視する比
較器74が内蔵されている。比較器74は、それらの値
が一致した場合に制御信号をコントロールブロック70
に出力するように構成されている。コントロールブロッ
ク70は、この制御信号がアクティブになると、退避レ
ジスタ(82、84、86、88、・・・)の値がそれ
以上更新されないように制御を行う。更に、退避レジス
タ(82、84、86、88、・・・)の値は、SIM
D毎の転送の開始時に遅延レジスタ(62”、64”、
66”、68”、・・・)にロードされるように構成さ
れるのが好ましい。
外部インタフェース7に出力するためのアドレスカウン
タ76が内蔵され、更に、そのアドレスカウンタ76の
値と、予めオフセット設定用のレジスタ(オフセット設
定値保存部72)に設定されていた値とを、監視する比
較器74が内蔵されている。比較器74は、それらの値
が一致した場合に制御信号をコントロールブロック70
に出力するように構成されている。コントロールブロッ
ク70は、この制御信号がアクティブになると、退避レ
ジスタ(82、84、86、88、・・・)の値がそれ
以上更新されないように制御を行う。更に、退避レジス
タ(82、84、86、88、・・・)の値は、SIM
D毎の転送の開始時に遅延レジスタ(62”、64”、
66”、68”、・・・)にロードされるように構成さ
れるのが好ましい。
【0086】かかる構成によると、オフセット設定値保
存部72に(n−2×a−1)の値を予め設定しておけ
ば、PE[(n−2×a−1)]の画素の変換が終わっ
た後、退避レジスタ(82、84、86、88、・・
・)の更新が抑制される。次のSIMD分の転送の時に
は、まず退避レジスタ(82、84、86、88、・・
・)の値が遅延レジスタ(62”、64”、66”、6
8”、・・・)に初期ロードされるため、画素の連続性
が保たれたままパターンマッチングを行うことが可能に
なる。
存部72に(n−2×a−1)の値を予め設定しておけ
ば、PE[(n−2×a−1)]の画素の変換が終わっ
た後、退避レジスタ(82、84、86、88、・・
・)の更新が抑制される。次のSIMD分の転送の時に
は、まず退避レジスタ(82、84、86、88、・・
・)の値が遅延レジスタ(62”、64”、66”、6
8”、・・・)に初期ロードされるため、画素の連続性
が保たれたままパターンマッチングを行うことが可能に
なる。
【0087】≪第4の実施の形態≫図12は、本発明の
第4の実施の形態に係る画像処理装置1’の構成を示す
ブロック図である。外部インタフェース7には、複数の
メモリコントローラ(第1のメモリコントローラ11−
(1)、第2のメモリコントローラ11−(2))が接
続されており、それぞれはメモリスイッチ90を介して
複数のメモリ(第1のメモリ15−(1)、第2のメモ
リ15−(2))にアクセスできるように構成されてい
る。上記の複数のメモリコントローラは、全てが本発明
に係るメモリコントローラに限定されるものではない。
例えば、特開2001−134538号に開示されてい
るような、通常のラインディレイのためのメモリコント
ローラが一部に利用されてもよい。
第4の実施の形態に係る画像処理装置1’の構成を示す
ブロック図である。外部インタフェース7には、複数の
メモリコントローラ(第1のメモリコントローラ11−
(1)、第2のメモリコントローラ11−(2))が接
続されており、それぞれはメモリスイッチ90を介して
複数のメモリ(第1のメモリ15−(1)、第2のメモ
リ15−(2))にアクセスできるように構成されてい
る。上記の複数のメモリコントローラは、全てが本発明
に係るメモリコントローラに限定されるものではない。
例えば、特開2001−134538号に開示されてい
るような、通常のラインディレイのためのメモリコント
ローラが一部に利用されてもよい。
【0088】かかる構成によれば、画素数の大きいパタ
ーンとのパターンマッチングが必要な場合には、複数の
メモリを使って変換テーブルのための容量を大きくする
ことでパターンマッチングが可能となる。更に、パター
ンマッチングを行う必要がない処理においては、余剰の
メモリを他のメモリコントローラに割り当てることがで
き、従ってメモリの有効活用ができることとなる。
ーンとのパターンマッチングが必要な場合には、複数の
メモリを使って変換テーブルのための容量を大きくする
ことでパターンマッチングが可能となる。更に、パター
ンマッチングを行う必要がない処理においては、余剰の
メモリを他のメモリコントローラに割り当てることがで
き、従ってメモリの有効活用ができることとなる。
【0089】
【発明の効果】本発明を利用することにより、以下のよ
うな効果を奏することができる。
うな効果を奏することができる。
【0090】本発明に係る第1の実施の形態を利用する
ことにより、処理サイクルを短縮すること、及び、転送
するデータのビット幅を少なくすることが可能になる。
更に、パターンマッチングを行う画素数から算出される
アドレス空間よりも、少ないアドレス空間でのテーブル
変換によって、パターンマッチングを行うことができる
ため、メモリの容量を節約できる。
ことにより、処理サイクルを短縮すること、及び、転送
するデータのビット幅を少なくすることが可能になる。
更に、パターンマッチングを行う画素数から算出される
アドレス空間よりも、少ないアドレス空間でのテーブル
変換によって、パターンマッチングを行うことができる
ため、メモリの容量を節約できる。
【0091】本発明に係る第2の実施の形態を利用する
ことにより、一つのデータ転送用ポートで送信できるデ
ータ量以上のデータ量に係る画素数のパターンでも、パ
ターンマッチングを行うことが可能となる。3値データ
のパターンマッチングにおいて、2種のデータのビット
パックを行うことなくパターンマッチングが可能とな
る。
ことにより、一つのデータ転送用ポートで送信できるデ
ータ量以上のデータ量に係る画素数のパターンでも、パ
ターンマッチングを行うことが可能となる。3値データ
のパターンマッチングにおいて、2種のデータのビット
パックを行うことなくパターンマッチングが可能とな
る。
【0092】本発明に係る第3の実施の形態を利用する
ことにより、ラインの画素数がPE数よりも多いような
画像処理において、フィルタ演算などの前後の画素を参
照する処理がある場合に必要となるオーバラップ処理に
対応したパターンマッチングを行うことが可能となる。
よって、パターンマッチングのための転送を行っている
間に、フィルタ演算などの演算を行うことが可能とな
る。
ことにより、ラインの画素数がPE数よりも多いような
画像処理において、フィルタ演算などの前後の画素を参
照する処理がある場合に必要となるオーバラップ処理に
対応したパターンマッチングを行うことが可能となる。
よって、パターンマッチングのための転送を行っている
間に、フィルタ演算などの演算を行うことが可能とな
る。
【0093】本発明に係る第4の実施の形態を利用する
ことにより、パターンマッチングに必要となるメモリの
容量に合わせて、メモリ容量を変更することが可能とな
る。またパターンマッチングが不要な場合にメモリを他
の機能を持つメモリコントローラに割り当てることで、
メモリの有効活用ができる。
ことにより、パターンマッチングに必要となるメモリの
容量に合わせて、メモリ容量を変更することが可能とな
る。またパターンマッチングが不要な場合にメモリを他
の機能を持つメモリコントローラに割り当てることで、
メモリの有効活用ができる。
【図1】 本発明に係る画像処理装置の構成を示すブロ
ック図である。
ック図である。
【図2】 本発明に係るSIMD型マイクロプロセッサ
のより詳細な構成を示すブロック図である。
のより詳細な構成を示すブロック図である。
【図3】 本発明の第1の実施の形態に係るメモリコン
トローラの構成を示すブロック図である。
トローラの構成を示すブロック図である。
【図4】 パターンマッチングのパターンの例と、画素
に係るデータの格納の例と、各PEのレジスタにおける
データの格納の例を示す。
に係るデータの格納の例と、各PEのレジスタにおける
データの格納の例を示す。
【図5】 メモリ上の変換テーブルの第1の例へ入力す
るアドレスの形成内容と、同テーブルのデータ内容を示
す。
るアドレスの形成内容と、同テーブルのデータ内容を示
す。
【図6】 パターンマッチングのパターンの別の例と、
画素に係るデータの格納の別の例と、各PEのレジスタ
におけるデータの格納の別の例を示す。
画素に係るデータの格納の別の例と、各PEのレジスタ
におけるデータの格納の別の例を示す。
【図7】 メモリ上の変換テーブルの第2の例へ入力す
るアドレスの形成内容と、同テーブルのデータ内容を示
す。
るアドレスの形成内容と、同テーブルのデータ内容を示
す。
【図8】 図6のパターンマッチングのパターンを構成
する、列パターンである。
する、列パターンである。
【図9】 SIMD型マイクロプロセッサのPE数より
も主走査方向の画素数が多い場合に、どのように処理を
進めるかを図示する。
も主走査方向の画素数が多い場合に、どのように処理を
進めるかを図示する。
【図10】 本発明の第2の実施の形態に係るメモリコ
ントローラの構成を示すブロック図である。
ントローラの構成を示すブロック図である。
【図11】 本発明の第3の実施の形態に係るメモリコ
ントローラの構成を示すブロック図である。
ントローラの構成を示すブロック図である。
【図12】 本発明の第4の実施の形態に係る画像処理
装置の構成を示すブロック図である。
装置の構成を示すブロック図である。
1・・・画像処理装置、2・・・SIMD型マイクロプ
ロセッサ、3・・・プロセッサエレメント、4・・・グ
ローバルプロセッサ、6・・・レジスタファイル、7・
・・外部インタフェース、8・・・演算アレイ、11、
11’・・・メモリコントローラ、15・・・メモリ、
36・・・16ビットALU、38・・・Aレジスタ、
40・・・Fレジスタ、56・・・RAM制御部、70
・・・コントロールブロック、90・・・メモリスイッ
チ。
ロセッサ、3・・・プロセッサエレメント、4・・・グ
ローバルプロセッサ、6・・・レジスタファイル、7・
・・外部インタフェース、8・・・演算アレイ、11、
11’・・・メモリコントローラ、15・・・メモリ、
36・・・16ビットALU、38・・・Aレジスタ、
40・・・Fレジスタ、56・・・RAM制御部、70
・・・コントロールブロック、90・・・メモリスイッ
チ。
─────────────────────────────────────────────────────
フロントページの続き
Fターム(参考) 5B013 DD05
5B045 AA01 GG12 GG14 GG17
5B057 CH03 CH05 CH07 CH09 CH16
DB02 DB05 DB08 DC33
5L096 AA03 AA07 GA08 LA01 LA10
LA15 LA17
Claims (4)
- 【請求項1】 複数のデータを処理するための複数のプ
ロセッサエレメントを有するSIMD型マイクロプロセ
ッサを含む、画像処理装置において、 各プロセッサエレメントが内蔵する汎用レジスタにプロ
セッサ外部からアクセスするためのデータ転送用ポート
に接続されたデータ転送装置を有し、 該データ転送装置は、テーブル変換を行うためのルック
アップテーブルと、該ルックアップテーブルに格納され
ているデータを格納し、更にパイプライン遅延するため
の複数のレジスタとを、有し、 該ルックアップテーブルの入力アドレスとして、データ
転送用ポートより出力されるデータと、該ルックアップ
テーブルの出力をパイプライン遅延するための該レジス
タのデータとを、合成したものを用いることを特徴とす
る、画像処理装置。 - 【請求項2】 該ルックアップテーブルの入力アドレス
として合成のためにデータを出力する、データ転送用ポ
ートが、複数であることを特徴とする、請求項1に記載
の画像処理装置。 - 【請求項3】 ルックアップテーブルのデータをパイプ
ライン遅延するためのレジスタの値を、データ転送の直
前に移送し得る別のレジスタであって、それぞれの上記
レジスタに1対1にて対応する、別のレジスタを、デー
タ転送装置が有し、 それらの別のレジスタの値は、プロセッサエレメント番
号により指定されたプロセッサエレメントのレジスタの
データが処理されるまで、対応するレジスタの値によっ
て更新されることを特徴とする、請求項1又は請求項2
に記載の画像処理装置。 - 【請求項4】 データ転送装置と、メモリの間に接続を
制御するメモリスイッチを介し、メモリを該データ転送
装置以外のデータ転送装置にも接続することが可能であ
ることを特徴とする、請求項1又は請求項3に記載の画
像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002018207A JP2003216950A (ja) | 2002-01-28 | 2002-01-28 | パターンマッチングなどを行なうためのsimd型マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002018207A JP2003216950A (ja) | 2002-01-28 | 2002-01-28 | パターンマッチングなどを行なうためのsimd型マイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003216950A true JP2003216950A (ja) | 2003-07-31 |
Family
ID=27653644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002018207A Pending JP2003216950A (ja) | 2002-01-28 | 2002-01-28 | パターンマッチングなどを行なうためのsimd型マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2003216950A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235161A (ja) * | 2004-01-19 | 2005-09-02 | Ricoh Co Ltd | Simd型プロセッサ及び画像処理プロセッサ |
JP2007047009A (ja) * | 2005-08-10 | 2007-02-22 | Hitachi High-Technologies Corp | 半導体デバイスの欠陥検査方法及びその装置 |
WO2008043287A1 (en) * | 2006-10-03 | 2008-04-17 | Hong Kong Applied Science And Technology Research Institute Co. Ltd (Astri) | Configurable single instruction multiple data unit |
CN102842109A (zh) * | 2012-08-30 | 2012-12-26 | 北京工业大学 | 停车场服务水平量化分级的评价方法 |
-
2002
- 2002-01-28 JP JP2002018207A patent/JP2003216950A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005235161A (ja) * | 2004-01-19 | 2005-09-02 | Ricoh Co Ltd | Simd型プロセッサ及び画像処理プロセッサ |
JP4641151B2 (ja) * | 2004-01-19 | 2011-03-02 | 株式会社リコー | Simd型プロセッサ及び画像処理プロセッサ |
JP2007047009A (ja) * | 2005-08-10 | 2007-02-22 | Hitachi High-Technologies Corp | 半導体デバイスの欠陥検査方法及びその装置 |
US8385627B2 (en) | 2005-08-10 | 2013-02-26 | Hitachi High-Technologies Corporation | Method and apparatus for inspecting defects of semiconductor device |
WO2008043287A1 (en) * | 2006-10-03 | 2008-04-17 | Hong Kong Applied Science And Technology Research Institute Co. Ltd (Astri) | Configurable single instruction multiple data unit |
CN102842109A (zh) * | 2012-08-30 | 2012-12-26 | 北京工业大学 | 停车场服务水平量化分级的评价方法 |
CN102842109B (zh) * | 2012-08-30 | 2016-12-21 | 北京工业大学 | 停车场服务水平量化分级的评价方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3971535B2 (ja) | Simd型プロセッサ | |
US20130179606A1 (en) | Information processor system | |
US20090238478A1 (en) | Image processing apparatus | |
JP3619532B2 (ja) | 半導体集積回路装置 | |
JP2845433B2 (ja) | 集積回路装置 | |
JP2581323B2 (ja) | 参照ビット,変更ビットの更新方法 | |
US6684267B2 (en) | Direct memory access controller, and direct memory access control method | |
US4941107A (en) | Image data processing apparatus | |
US7512290B2 (en) | Image processing apparatus with SIMD-type microprocessor to perform labeling | |
JP2003216950A (ja) | パターンマッチングなどを行なうためのsimd型マイクロプロセッサ | |
JPH11110339A (ja) | Dmaコントローラ | |
US6795874B2 (en) | Direct memory accessing | |
JP4408113B2 (ja) | 信号処理方法 | |
JP3821198B2 (ja) | 信号処理装置 | |
JP2001157049A (ja) | 画像処理装置およびそれを備えた複写装置 | |
JP2812292B2 (ja) | 画像処理装置 | |
JP4413905B2 (ja) | Simd型プロセッサ | |
JP3837293B2 (ja) | 定数選択機能を有するsimd型マイクロプロセッサ | |
JP3704927B2 (ja) | プログラマブルコントローラ | |
JP3936694B2 (ja) | 半導体集積回路装置および半導体集積回路装置のデータ転送方法 | |
JP2008071037A (ja) | Simd型マイクロプロセッサ | |
JPH01205339A (ja) | マイクロコンピュータシステム | |
JP4612352B2 (ja) | ラベリング処理装置及びラベリング処理方法 | |
JPS6054056A (ja) | ビットデ−タ書込メモリインタ−フェ−ス回路 | |
JPS61198351A (ja) | ダイレクト・メモリ・アクセス制御回路 |