(57)【要約】【課題】特許文献１の回路は、環状的にアドレスにアクセスするにあたり、回路規模を十分小さくできていないという課題があった。【解決手段】回路は、所定の番地から始まるアドレスにアクセスする回路であって、起動後、前記アドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定部と、所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御部と、を備え、前記制御部は、否定論理和回路を用いて、若しくは、前記所定の番地と同じ前記アドレスが入力されたときに前記アドレスの１が立つビットが入力される入力段に否定回路を備えた否定論理和回路を用いて前記判別を行う。【選択図】      図１４
2016184451.tif 000002
【特許請求の範囲】
【請求項１】
所定の番地から始まるアドレスにアクセスする回路であって、
起動後、前記アドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定部と、
所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御部と、を備え、
前記制御部は、否定論理和回路を用いて、若しくは、前記所定の番地と同じ前記アドレスが入力されたときに前記アドレスの１が立つビットが入力される入力段に否定回路を備えた否定論理和回路を用いて前記判別を行う、
ことを特徴とする回路。
【請求項２】
前記アドレスは、前記第１のメモリのアドレスであり、
前記変数は、前記第１のメモリのアドレスを指定するポインタである、
ことを特徴とする請求項１に記載の回路。
【請求項３】
前記所定の番地は、０番地であり、
前記制御部は、前記否定論理和回路を用いて前記判別を行う、
ことを特徴とする請求項１乃至２のいずれか１項に記載の回路。
【請求項４】
ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）制御を行う回路であって、
前記制御部は、第１の書き込み部と第１の読み出し部を備え、
前記設定部は、起動後、所定の番地からアドレスが始まる前記第１のメモリへデータを書き込む位置を指定する第１のライトポインタ、及び、前記第１のメモリからデータを読み出す位置を指定する第１のリードポインタに対し、前記第１のメモリの所定のアドレスを第１の初期値として設定し、
前記第１の書き込み部は、入力された第１種データを前記第１のライトポインタの指定する位置に書き込むと、前記第１のライトポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のライトポインタを前記第１の初期値に戻し、等しくない場合には前記第１のライトポインタをデクリメントし、
前記第１の読み出し部は、所定の読み出し信号の入力により前記第１のリードポインタが指定する位置から前記第１種データを読み出して出力すると、前記第１のリードポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第１のリードポインタを前記第１のライトポインタと同じ数デクリメントする、
ことを特徴とする請求項２乃至３のいずれか１項に記載の回路。
【請求項５】
前記制御部は、第２の書き込み部と第２の読み出し部を備え、
前記設定部は、最大アドレスが１のみのビット列で表わされる第２のメモリへの書き込み位置を指定する第２のライトポインタ、及び、前記第２のメモリから読み出す位置を指定する第２のリードポインタに前記最大アドレスを第２の初期値として設定し、
前記第２の書き込み部は、入力された第２種データを前記第２のライトポインタの指定する位置に書き込むと、前記第２のライトポインタが前記最大アドレスと等しいか否か判別し、等しい場合には前記第１のライトポインタに前記最大アドレスを設定し、等しくない場合には前記第２のライトポインタをインクリメントし、
前記第２の読み出し部は、所定の読み出し信号の入力により前記第２のリードポインタが指定する位置から前記第２種データを読み出して出力すると、前記第２のリードポインタが前記最大アドレスと等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第２のリードポインタを前記第２のライトポインタと同じ数インクリメントし、
前記第２の書き込み部及び前記第２の読み出し部は、論理積回路、若しくは否定論理和回路と否定回路を用いて、前記最大アドレスと等しいか否かの判別を行う、
ことを特徴とする請求項２乃至４のいずれか１項に記載の回路。
【請求項６】
前記１のメモリと前記第２のメモリは、前記回路に備わる１つのメモリを分割したメモリである、
ことを特徴とする請求項５に記載の回路。
【請求項７】
起動後、所定の番地から始まるアドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定ステップと、
所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御ステップと、を有し、
前記制御ステップにおいては、前記アドレスの否定論理和、若しくは、前記所定の番地の１が立つビットに対応するビットを論理否定した前記アドレスの否定論理和により前記判別を行う、
ことを特徴とする方法。
【請求項８】
前記アドレスは、前記第１のメモリのアドレスであり、
前記変数は、前記第１のメモリのアドレスを指定するポインタである、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記所定の番地は、０番地であり、
前記制御ステップにおいては、前記否定論理和を用いて前記判別を行う、
ことを特徴とする請求項７乃至８のいずれか１項に記載の方法。
【請求項１０】
ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）制御を行う方法であって、
前記制御ステップは、第１の書き込みステップと第１の読み出しステップを有し、
前記設定ステップにおいては、起動後、所定の番地からアドレスが始まる第１のメモリへデータを書き込む位置を指定する第１のライトポインタ、及び、前記第１のメモリからデータを読み出す位置を指定する第１のリードポインタに対し、前記第１のメモリの所定のアドレスを第１の初期値として設定し、
前記第１の書き込みステップにおいては、入力された第１種データを前記第１のライトポインタの指定する位置に書き込むと、前記第１のライトポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のライトポインタを前記第１の初期値に戻し、等しくない場合には前記第１のライトポインタをデクリメントし、
前記第１の読み出しステップにおいては、所定の読み出し信号の入力により前記第１のリードポインタが指定する位置から前記第１種データを読み出して出力すると、前記第１のリードポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第１のリードポインタを前記第１のライトポインタと同じ数デクリメントする、
ことを特徴とする請求項８乃至９のいずれか１項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路及び方法に関し、特に、メモリを使用する回路及び方法に関する。
【背景技術】
【０００２】
一般的に、メモリを使用する回路が知られている。メモリを使用する回路は、以下の特許文献１に開示されている。図１は、特許文献１の回路に備わるメモリや回路の動作について説明する為の図である。
【０００３】
特許文献１の回路は、図１に示されるように、０、１、２、…、Ｎと順番にアドレスが付与されたメモリを備え、さらに、上述のメモリへのアクセスを管理するポインタを有する。ポインタの初期値は、上述のメモリの先頭アドレス（０番地）である。
【０００４】
特許文献１の回路は、接続する他装置からデータが入力されたとき、ポインタの示すアドレスにアクセスし、その位置にデータを書き込むと、当該ポインタを１つインクリメントする。その際、特許文献１の回路は、ポインタがＮ、すなわちメモリの最終アドレスに達したか否か判定し、達していれば、図１に示されるように、ポインタをメモリの先頭アドレス０番地に戻す。特許文献１の回路は、他の装置からデータが入力される毎に、ポインタの示すアドレスにアクセスすると共に、当該ポインタをインクリメントし、ポインタが最終アドレスに達すれば、０番地に戻す処理を行う。
【０００５】
上述の構成や動作の通り、特許文献１の回路は、環状的にアドレスにアクセスする。その結果、特許文献１の回路は、メモリを環状的に使用することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−４４５３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１の回路は、環状的にアドレスにアクセスするにあたり、回路規模を十分小さくできていないという課題があった。
【０００８】
なぜなら、特許文献１の回路は、上述のポインタがメモリの最終アドレスに達したかの判定、すなわちポインタを初期値に戻す判定において、値（アドレス）の一致を判別する為、一致回路、若しくは比較回路を備えなければならないからである。一致回路や比較回路は、比較対象の値の一致をビット毎に確認するので、回路規模が大きく、それを備える回路の回路規模を大きくしてしまう。図２は、一般的な一致回路の構成と動作を示した図である。
【０００９】
図２に示される一致回路は、１ビットの値同士の一致を確認する回路であり、２つのＡＮＤ回路（論理積回路）、１つのＯＲ回路（論理和回路）、及び２つのＮＯＴ回路（否定回路）の、計５つの回路で実現される。２ビット以上の値同士の一致を確認する一致回路は、（ビット毎に一致を確認していくので、）上述の５つの回路をビット数分、備えた回路となり、回路規模が大きくなる。メモリのアドレスは２ビット以上で表わされることが一般的であり、特許文献１の回路に備わる一致回路は、回路規模が大きいものとなる。なお、比較回路は、値の一致に加え、値の大小も判定する回路であり、一致回路よりもさらに回路規模が大きい。
【００１０】
特許文献１の回路は、環状的にアドレスにアクセスするにあたり、規模の大きい比較回路や一致回路を備える為、回路規模を十分小さくできていなかった。
【００１１】
本発明は、上記課題を解決する回路及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の回路は、所定の番地から始まるアドレスにアクセスする回路であって、起動後、前記アドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定部と、所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御部と、を備え、前記制御部は、否定論理和回路を用いて、若しくは、前記所定の番地と同じ前記アドレスが入力されたときに前記アドレスの１が立つビットが入力される入力段に否定回路を備えた否定論理和回路を用いて前記判別を行う。
【００１３】
上記目的を達成するために、本発明の方法は、起動後、所定の番地から始まるアドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定ステップと、所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御ステップと、を有し、前記制御ステップにおいては、前記アドレスの否定論理和、若しくは、前記所定の番地の１が立つビットに対応するビットを論理否定した前記アドレスの否定論理和により前記判別を行う。
【発明の効果】
【００１４】
本発明によれば、回路は、環状的にアドレスにアクセスするにあたり、回路規模を十分小さくすることができる。
【図面の簡単な説明】
【００１５】
【図１】特許文献１の回路に備わるメモリや回路の動作について説明する為の図である。
【図２】一般的な一致回路の構成と動作を示した図である。
【図３】本発明の第１の実施の形態における回路の構成例を示す図である。
【図４】本発明の第１の実施の形態における回路の動作（概要）を説明する為の図である。
【図５】本発明の第１の実施の形態における回路の動作を説明する為の図である。
【図６】一般的なＮＯＲ回路（否定論理和回路）の構成と動作を示した図である。
【図７】本発明の第１の実施の形態における回路に備わるＮＯＲ回路の実現例を示した図である。
【図８】一般的な論理回路の実現例を示した図である。
【図９】本発明の第２の実施の形態における回路の構成例を示す図である。
【図１０】本発明の第２の実施の形態における回路の動作（概要）を説明する為の図である。
【図１１】本実施形態の回路の動作（ライトポインタを制御する動作）を説明する為の図である。
【図１２】本実施形態の回路の動作（リードポインタを制御する動作）を説明する為の図である。
【図１３】一般的なＡＮＤ回路（論理積回路）の構成と動作を示した図である。
【図１４】本発明の第３の実施の形態における回路の構成例を示す図である。
【図１５】本発明の第３の実施の形態における回路に備わる判別回路の構成例を示す図である。
【発明を実施するための形態】
【００１６】
次に本発明の実施形態について、図面を参照して詳細に説明する。
【００１７】
≪第１の実施の形態≫
[概要]
本実施形態の回路は、０番地からアドレスが始まるメモリを備える。本実施形態の回路は、上述のメモリの最終アドレスから順にポインタをデクリメントしていくことで、上述のメモリに最終アドレスから０番地に向けて順にアクセスする。また、本実施形態の回路は、デクリメントする毎に、該ポインタが０番地か判定し、０番地である場合には、ポインタを初期値（メモリの最終アドレス）に戻す。上述のポインタ動作により、本実施形態の回路は、環状的にメモリのアドレスにアクセスし、当該メモリを環状的に使用する。
【００１８】
ここで、上述の０番地であるか否かの判定、すなわち、ポインタを初期値に戻す判定は、一致回路や比較回路よりも回路規模が小さいＮＯＲ回路１つで実現できる。本実施形態の回路は、ポインタを初期値に戻す判定を行うのに、規模の大きな一致回路や比較回路を用いる必要がない。本実施形態の回路は、環状的にアドレスにアクセスし、メモリを環状的に使用するにあたり、規模の大きな一致回路や比較回路を備える必要がない為、回路規模を十分小さくすることができる。
【００１９】
以下に、本発明の第１の実施の形態におけるシステムの構成や機能、動作について説明する。
【００２０】
［構成の説明］
まず、本発明の第１の実施の形態におけるシステムの構成と機能について説明する。図３は、本発明の第１の実施の形態における回路の構成例を示す図である。図４は、本発明の第１の実施の形態における回路の動作概要を説明する為の図である。
【００２１】
（１）本発明の第１の実施の形態におけるシステムの構成
本実施形態の回路は、図３に示されるように、データ解析部１と、制御部２と、メモリ部３と、を備える。
【００２２】
メモリ部３は、０番地からアドレスが順に割り振られたメモリ４を備える。図３では、０番地から９番地までアドレスが割り振られたメモリ４がメモリ部３に備わる例を示している。
【００２３】
制御部２は、信号線を介してデータ解析部１やメモリ部３と接続される。また、データ解析部１、制御部２、及びメモリ部３は、それぞれ信号線を介して他の電子部品（図示せず）と接続される。さらに、制御部２は、図示していないが、回路外部に備わるレジスタ（以下、「外部レジスタ」という）と信号線を介して接続される。
【００２４】
（２）本実施形態の回路の各部位の機能
本実施形態の回路は、図４に示されるように、ポインタをデクリメントすることで、メモリ４を環状的に使用するものである。その為の、本実施形態の回路に備わる各部位の機能について以下に説明する。
【００２５】
（２−１）データ解析部１の機能
データ解析部１は、データが入力されるとＳＥＬ＿Ａ信号を出力する。上述のデータは、他の電子部品（図示せず）から入力される。
【００２６】
（２−２）制御部２の機能
（２−２−１）アドレス記憶機能
制御部２は、起動後、外部レジスタに予め設定されているアドレスを記憶する。本実施形態の回路の利用者は、外部レジスタに、メモリ４の最終アドレス（例えば９番地）を設定する。
【００２７】
（２−２−２）初期値設定機能
制御部２は、データをメモリ４に書き込む場所を指定するライトポインタを保持する。メモリ４アクセス用のライトポインタは、以下、「ライトポインタ４＿１」という。
【００２８】
制御部２は、上述の（２−２−１）の機能実施後、上述のライトポインタ４＿１に対し、記憶するメモリ４の最終アドレス（例えば、９番地）を初期値として設定する。
【００２９】
（２−２−３）メモリ４を環状的に使用する機能
制御部２は、ポインタに初期値を設定した後、ＳＥＬ＿Ａ信号が入力されると、ライトポインタ４＿１の示すアドレス（例えば、９番地）と書き込み信号をメモリ部３に出力する。ライトポインタ４＿１が示すアドレス（例えば、９番地）に、入力されたデータを書き込む為である。次に、制御部２は、ライトポインタ４＿１が示すアドレスが０番地か否かを判別し、０番地でなければ、制御部２は、ライトポインタ４＿１を１つデクリメントする。０番地であれば、制御部２は、ライトポインタ４＿１に初期値（例えば、９番地）を設定する。
【００３０】
（２−３）メモリ部３の機能
メモリ部３は、他の電子部品（図示せず）からデータ（以下、「入力データ」という）が入力され、さらに、制御部２から書き込み信号とアドレスが入力されると、入力されたアドレスにアクセスし、上述の入力データを書き込む。
【００３１】
（２−４）各部位の実現手段について
上述のデータ解析部１は、電子回路を用いて実現することができる。制御部２とメモリ部３は、電子回路とＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリを用いて実現することができる。
【００３２】
［動作の説明］
図５は、本実施形態の回路の動作を説明する為の図である。図５を用いて、本実施形態の回路の詳細な動作を以下に説明する。
【００３３】
（１）初期値設定動作
まず、本実施形態の回路の制御部２は、図示していないが、起動後、上述の（２−２−１）で説明した通り、予め外部レジスタに設定されたアドレス（メモリ４の最終アドレス９番地）を記憶する。
【００３４】
次に、本実施形態の回路の制御部２は、図５に示されるように、ライトポインタ４＿１に、記憶するメモリ４の最終アドレス（９番地）を初期値として設定する（Ｓ１）。
【００３５】
その後、接続する他の電子部品（図示せず）からデータが本実施形態の回路に入力されたとする。入力されたデータは、信号線（図３に示されるＲＸＤＡＴＡ）を介してデータ解析部１とメモリ部３に入力される。
【００３６】
（２）データ入力時のデータ解析部１の動作
データ解析部１は、データが入力されると、図示していないが、ＳＥＬ＿Ａ信号を制御部２に出力する。
【００３７】
（３）メモリ４のアドレスに環状的にアクセスする制御
（３−１）入力されたデータの書き込み制御（メモリへのアクセス制御）
次に、制御部２は、データ解析部１からＳＥＬ＿Ａ信号が入力されると、図５に示されるように、書き込み信号と、ライトポインタ４＿１が示すアドレス（９番地）と、をメモリ部３に出力する（Ｓ２）。メモリ部３は、制御部２から書き込み信号とアドレスが入力されると、当該アドレスにアクセスし、他の電子部品（図示せず）から入力されたデータを書き込む。ライトポインタ４＿１が示すアドレスが９番地であるとき、メモリ部３は、９番地にデータを書き込む。
【００３８】
次に、制御部２は、ライトポインタ４＿１が示すアドレスが０番地か否かを判別する（Ｓ３）。
【００３９】
上述のＳ３において、ライトポインタ４＿１が示すアドレスが０番地でない場合（Ｓ３でＮｏの場合）、制御部２は、ライトポインタ４＿１を１つデクリメント（Ｓ４）し、次にＳＥＬ＿Ａ信号（データ）が入力されるのを待つ。
【００４０】
本実施形態の制御部２は、ＳＥＬ＿Ａ信号（データ）が入力される毎に、上述のＳ２〜Ｓ４を繰り返し実施する。その結果、本実施形態の回路は、ライトポインタ４＿１をデクリメントしていくと共に、入力されたデータを、ライトポインタ４＿１の示すアドレスにアクセスして書き込んでいく。その結果、本実施形態の回路は、入力されたデータを、９番地（メモリ４の最終アドレス）から０番地に向かって順に蓄えていく。
【００４１】
（３−２）各ポインタを初期値に戻す制御
本実施形態の回路の制御部２は、上述のＳ２〜Ｓ４の処理を繰り返し実施する。そのうち、ライトポインタ４＿１が０番地となる。そのとき、制御部２は、上述のＳ３の判定において、ポインタが０番地であると判別する。
【００４２】
制御部２は、ポインタが０番地であると判別した場合（Ｓ３でＹｅｓの場合）には、当該ポインタに初期値（メモリ４の最終アドレス９番地）を設定する（Ｓ１）。すなわち、制御部２は、ポインタを初期値に戻す。その後、制御部２は、再度、上述のＳ２〜Ｓ４の処理を繰り返す。
【００４３】
上述のＳ１〜Ｓ４の処理により、本実施形態の回路は、メモリ４のアドレスに環状的にアクセスし、当該メモリ４を環状的に使用していく。
【００４４】
（３−３）ポインタを初期値に戻す回路
本実施形態の回路は、Ｓ３において、ポインタを初期値に戻す為に、ポインタが０番地か否かを判別した。ポインタが０番地か否かの判別は、ＮＯＲ回路（否定論理和回路）を１つ用いて実現できる。図６は、一般的なＮＯＲ回路の構成と動作を示した図である。
【００４５】
ＮＯＲ回路は、図６の右図に示されるように、入力された値の各ビットが全て０であるときだけ１を出力する回路である。本実施形態の回路は、ポインタ値（番地）をビットとしてＮＯＲ回路に入力し、１が出力されたときに、ポインタが０番地と判別し、０が出力されたときに、ポインタが０番地ではないと判別する。
【００４６】
本実施形態の回路は、ポインタが０番地か否かの判別（すなわち、ポインタを初期値に戻す判定）を、規模の大きな一致回路や比較回路ではなく、規模の小さいＮＯＲ回路１つを用いて実現できる。本実施形態の回路は、規模の大きな一致回路や比較回路を用いる必要がない。その為、本実施形態の回路は、メモリ４のアドレスに環状的にアクセスし、当該メモリ４を環状的に使用するにあたり、回路規模を十分小さくすることができる。
【００４７】
（３−４）ＮＯＲ回路の回路規模について
ここでは、ＮＯＲ回路の回路規模が小さいことを一致回路と比較しながら詳細に説明する。図７は、本発明の第１の実施の形態における回路に備わるＮＯＲ回路の実現例を示した図である。図８は、一般的な論理回路の実現例を示した図である。
【００４８】
本実施形態の回路は、ライトポインタ４＿１が０番地か否かの判別を実現する回路として、図７に示されるＮＯＲ回路を備えることができる。図７のＮＯＲ回路は、全てのビットが０（０番地）のとき、（ダイオードからトランジスタに電流を流さず、）１を出力する回路である。本実施形態の回路に備わるＮＯＲ回路は、図７に示されるように、Ｍ個のダイオードと１つのトランジスタで実現される。上述のＭは、ライトポインタ４＿１が扱うアドレスのビット数である。
【００４９】
一方、特許文献１の回路に備わる一致回路は、[発明が解決しようとする課題]欄で説明した通り、５つの回路（具体的には、２つのＡＮＤ回路、１つのＯＲ回路、２つのＮＯＴ回路）をＭ個分備わる。ここで、ＡＮＤ回路とＯＲ回路は、図８に示されるように、２つのダイオードを用いて実現され、ＮＯＴ回路は、１つのトランジスタを用いて実現される。その為、一致回路は、｛（ダイオード２つ）×２＋（ダイオード２つ）×１＋(トランジスタ１つ)×２｝×Ｍ個を用いて実現される。言い換えると、一致回路は、ダイオード（６×Ｍ）個とトランジスタ（２×Ｍ）個を用いて実現される。ＮＯＲ回路の方が、一致回路よりも規模が小さい。なお、比較回路は、上述の[発明が解決しようとする課題]で説明した通り、一致回路より規模が大きい。その為、ＮＯＲ回路は、比較回路よりも規模が小さい。
【００５０】
本実施形態の回路は、規模の小さいＮＯＲ回路１つを用いて実現する為、回路規模を小さくできる。
【００５１】
（３−４）ＮＯＲ回路の代わりに使用可能な回路
なお、本実施形態の回路は、ＮＯＲ回路の代わりに、ＯＲ回路とＮＯＴ回路を用いてもよい。その場合、ＮＯＴ回路は、ＯＲ回路の後段に接続される。上述のＯＲ回路には、Ｍビットのアドレスが入力される。上述のＯＲ回路は、入力されたアドレスの各ビットが全て０であるときに０を出力するよう、Ｍ個のダイオードを備える。
【００５２】
その為、本実施形態の回路は、ＯＲ回路とＮＯＴ回路を用いるときには、ダイオードＭ個（ＯＲ回路を構成する回路）とトランジスタ１個（ＮＯＴ回路を構成する回路）を備える。上述のＯＲ回路とＮＯＴ回路は、一致回路よりも規模が小さく、本実施形態の回路は、回路規模を小さくできる。
【００５３】
［効果の説明］
本実施形態によれば、回路は、メモリ４のアドレスに環状的にアクセスし、メモリ４を環状的に使用するにあたり、回路規模を十分小さくすることができる。
【００５４】
その理由を以下に説明する。
【００５５】
まず、本実施形態の回路は、メモリ４アクセス用のポインタの示すアドレスにアクセスすると、ポインタが０番地か否かの判定を行い、０番地でないときはポインタをデクリメントし、０番地であるときには当該ポインタを初期値に戻す。上述の動作により、本実施形態の回路は、メモリ４のアドレスに環状的にアクセスし、当該メモリ４を環状的に使用していく。
【００５６】
ここで、上述のポインタが０番地か否かの判定、すなわちポインタを初期値に戻す判定は、規模の大きな一致回路や比較回路ではなく、規模の小さいＮＯＲ回路１つを用いて実現できる。すなわち、本実施形態の回路は、メモリ４のアドレスに環状的にアクセスし、当該メモリ４を環状的に使用するとき、規模の大きな一致回路や比較回路を用いる必要がない。本実施形態の回路は、メモリ４のアドレスに環状的にアクセスし、メモリ４を環状的に使用するにあたり、規模の大きな一致回路や比較回路を備える必要がないので、回路規模を十分小さくすることができる。
【００５７】
≪第２の実施の形態≫
[概要]
本実施形態の回路は、第１の実施形態の回路の技術を用いてＦＩＦＯ制御を行う回路である。すなわち、本実施形態の回路は、０番地からアドレスが始まるメモリについては、最終アドレスからポインタをデクリメントさせていくことでＦＩＦＯ制御を行う。その際、本実施形態の回路は、デクリメントする毎にポインタが０番地であるか判定し、０番地である場合にポインタを初期値（メモリの最終アドレス）に戻す処理を行う。
【００５８】
上述の０番地であるか否かの判定、すなわち、ポインタを初期値に戻す判定は、一致回路や比較回路よりも回路規模が小さいＮＯＲ回路で実現できる。本実施形態の回路は、ポインタを初期値に戻す判定を行うのに、規模の大きな一致回路や比較回路を用いる必要がない。本実施形態の回路は、上述のメモリにＦＩＦＯ制御を行うにあたり、規模の大きな一致回路や比較回路を備える必要がない為、回路規模を十分小さくすることができる。
【００５９】
以下に、本発明の第２の実施の形態におけるシステムの構成や機能、動作について説明する。
【００６０】
［構成の説明］
まず、本発明の第２の実施の形態におけるシステムの構成と機能について説明する。図９は、本発明の第２の実施の形態における回路の構成例を示す図である。図１０は、本発明の第２の実施の形態における回路の動作概要を説明する為の図である。
【００６１】
（１）本発明の第２の実施の形態におけるシステムの構成
本実施形態の回路は、図９に示されるように、データ解析部１１と、ＦＩＦＯ制御部１２と、ＦＩＦＯ部１３と、を備える。
【００６２】
ＦＩＦＯ部１３は、０番地からアドレスが順に割り振られたメモリを備える。図９では、０番地から９番地までアドレスが割り振られたメモリがＦＩＦＯ部１３に備わる例を示している。メモリは、図９に示されるように、２つの領域ＦＩＦＯ＿ＡとＦＩＦＯ＿Ｂに分けられる。
【００６３】
ＦＩＦＯ制御部１２は、信号線を介してデータ解析部１１やＦＩＦＯ部１３と接続される。また、データ解析部１１、ＦＩＦＯ制御部１２、及びＦＩＦＯ部１３は、それぞれ信号線を介して他の電子部品（図示せず）と接続される。さらに、ＦＩＦＯ制御部１２は、図示していないが、制御部２と同様、外部レジスタと信号線を介して接続される。
【００６４】
（２）本実施形態の回路の各部位の機能
本実施形態の回路は、図１０に示されるように、０番地からアドレスが始まるＦＩＦＯ＿Ａについては、第１の実施形態の回路と同様に、ポインタをデクリメントしてＦＩＦＯ制御し、ＦＩＦＯ＿ＢについてはポインタをインクリメントしてＦＩＦＯ制御を行う。上述のＦＩＦＯ制御を実現する為の、本実施形態の回路に備わる各部位の機能について以下に説明する。
【００６５】
（２−１）データ解析部１１の機能
データ解析部１１は、入力されたデータの種別に応じて異なる信号（ＳＥＬ＿Ａ信号やＳＥＬ＿Ｂ信号）を出力する。例えば、データ解析部１１は、音声データが入力されるとＳＥＬ＿Ａ信号を出力し、メールデータが入力されるとＳＥＬ＿Ｂ信号を出力してもよい。上述の各データは、他の電子部品（図示せず）から入力される。
【００６６】
（２−２）ＦＩＦＯ制御部１２の機能
（２−２−１）ＦＩＦＯ＿ＡとＦＩＦＯ＿Ｂの境界アドレス記憶機能
ＦＩＦＯ制御部１２は、起動後、外部レジスタに設定されたアドレスをＦＩＦＯ＿Ａの最終アドレスとして記憶する。外部レジスタには、予めＦＩＦＯ＿Ａの最終アドレス（例えば６番地）が本実施形態の回路の利用者によって設定される。さらに、ＦＩＦＯ制御部１２は、外部レジスタに設定されたアドレスを１つインクリメントしたアドレス（例えば７番地）を、ＦＩＦＯ＿Ｂの先頭アドレスとして記憶する。
【００６７】
ＦＩＦＯ制御部１２は、上述のＦＩＦＯ＿Ａの最終アドレスとＦＩＦＯ＿Ｂの先頭アドレスによって、ＦＩＦＯ部１３に備わるメモリを２つの領域ＦＩＦＯ＿Ａ、ＦＩＦＯ＿Ｂに分け、それぞれに対してＦＩＦＯ制御を行う。その為に、ＦＩＦＯ制御部１２は、後述の（２−２−２）〜（２−２−４）に示す機能を備える。
【００６８】
（２−２−２）初期値設定機能
まず、ＦＩＦＯ制御部１２は、ＦＩＦＯ＿Ａ、ＦＩＦＯ＿Ｂ毎に、当該ＦＩＦＯ用のライトポインタとリードポインタを保持する。ＦＩＦＯ＿Ａ用のライトポインタとリードポインタは、以下、ライトポインタ５＿１、リードポインタ６＿１という。ＦＩＦＯ＿Ｂ用のライトポインタとリードポインタは、以下、ライトポインタ５＿２、リードポインタ６＿２という。
【００６９】
ＦＩＦＯ制御部１２は、上述の（２−２−１）の機能実施後、ＦＩＦＯ＿Ａのライトポインタ５＿１とリードポインタ６＿１に対し、記憶したＦＩＦＯ＿Ａの最終アドレス（例えば、図１０に示される６番地）を初期値として設定する。さらに、ＦＩＦＯ制御部１２は、ＦＩＦＯ＿Ｂのライトポインタ５＿２とリードポインタ６＿２に、記憶したＦＩＦＯ＿Ｂの先頭アドレス（例えば、図１０に示される７番地）を初期値として設定する。
【００７０】
（２−２−３）ＦＩＦＯ＿ＡへのＦＩＦＯ制御機能
ＦＩＦＯ制御部１２は、制御部２と同じ機能を備えるが、信号を、メモリ部３ではなく、ＦＩＦＯ部１３に出力する。また、ＦＩＦＯ制御部１２は、ライトポインタ、リードポインタ毎に制御を行う。
【００７１】
すなわち、ＦＩＦＯ制御部１２は、各ポインタに初期値を設定した後、ＳＥＬ＿Ａ信号が入力されると、ＦＩＦＯ部１３に対し、ライトポインタ５＿１が示すアドレス（例えば、６番地）と書き込み信号を出力する。ライトポインタ５＿１が示すアドレス（例えば、６番地）に、入力されたデータを書き込む為である。次に、ＦＩＦＯ制御部１２は、制御部２と同様に、ライトポインタ５＿１が示すアドレスが０番地か否かを判別し、０番地であれば、ライトポインタ５＿１に初期値（すなわち、ＦＩＦＯ＿Ａの最終アドレス）を設定する。ＦＩＦＯ＿Ａの最終アドレスは、例えば６番地である。０番地でなければ、ＦＩＦＯ制御部１２は、制御部２と同様に、ライトポインタ５＿１を１つデクリメントする。
【００７２】
リードポインタ６＿１についても同様に、ＦＩＦＯ制御部１２はデクリメント制御を行う。すなわち、ＦＩＦＯ制御部１２は、ＦＩＦＯ＿Ａからデータを読み出すことを要求するリード信号が入力されると、リードポインタ６＿１が示すアドレスと読み出し信号をＦＩＦＯ部１３に出力する。リードポインタ６＿１が示すアドレス（例えば、６番地）からデータを読み出す為である。ＦＩＦＯ制御部１２は、アドレスと読み出し信号を出力した後、リードポインタ６＿１が示すアドレスが０番地か否かを判別し、０番地であれば、リードポインタ６＿１に初期値（すなわち、ＦＩＦＯ＿Ａの最終アドレス）を設定する。０番地でなければ、ＦＩＦＯ制御部１２は、リードポインタ６＿１を１つデクリメントする。
【００７３】
（２−２−４）ＦＩＦＯ＿ＢへのＦＩＦＯ制御機能
ＦＩＦＯ制御部１２は、ＳＥＬ＿Ｂ信号が入力されると、ライトポインタ５＿２が示すアドレス（例えば、７番地）と書き込み信号をＦＩＦＯ部１３に出力する。ライトポインタ５＿２が示すアドレス（例えば、７番地）に、入力されたデータを書き込む為である。次に、ＦＩＦＯ制御部１２は、ライトポインタ５＿２が示すアドレスがＦＩＦＯ＿Ｂの最終アドレス（９番地）であるか否かを判別し、最終アドレスであれば、ライトポインタ５＿２に初期値（すなわち、ＦＩＦＯ＿Ｂの先頭アドレス）を設定する。ＦＩＦＯ＿Ｂの最終アドレス（９番地）は、本実施形態の回路の製造者によって予めＦＩＦＯ制御部１２に設定される。ライトポインタ５＿２の示すアドレスがＦＩＦＯ＿Ｂの最終アドレスでなければ、ＦＩＦＯ制御部１２は、ライトポインタ５＿２を１つインクリメントする。
【００７４】
リードポインタ６＿２についても同様に、ＦＩＦＯ制御部１２はインクリメント制御を行う。すなわち、ＦＩＦＯ制御部１２は、ＦＩＦＯ＿Ｂからデータを読み出すことを要求するリード信号が入力されると、リードポインタ６＿２が示すアドレスと読み出し信号をＦＩＦＯ部１３に出力する。リードポインタ６＿２が示すアドレス（例えば、７番地）からデータを読み出す為である。ＦＩＦＯ制御部１２は、アドレスと読み出し信号を出力した後、リードポインタ６＿２の示すアドレスがＦＩＦＯ＿Ｂの最終アドレス（９番地）であるか否かを判別し、最終アドレス（９番地）であれば、リードポインタ６＿２に初期値を設定する。初期値は、ＦＩＦＯ＿Ｂの先頭アドレス（例えば、７番地）である。最終アドレスでなければ、ＦＩＦＯ制御部１２は、リードポインタ６＿２を１つインクリメントする。
【００７５】
（２−２−５）外部レジスタの他の設定例
上述の外部レジスタには、本実施形態の回路の利用者によってＦＩＦＯ＿Ａのメモリ長が設定されてもよい。その場合、ＦＩＦＯ制御部１２は、起動後、外部レジスタに設定されたＦＩＦＯ＿Ａのメモリ長分、ＦＩＦＯ＿Ａの先頭アドレス（０番地）から大きいアドレスをＦＩＦＯ＿Ａの最終アドレスとして記憶する。
【００７６】
（２−３）ＦＩＦＯ部１３の機能
（２−３−１）データ書き込み制御
ＦＩＦＯ部１３は、メモリ部３と同じ機能を備える。但し、ＦＩＦＯ部１３には、制御部２ではなく、ＦＩＦＯ制御部１２から信号が入力される。
【００７７】
すなわち、ＦＩＦＯ部１３は、他の電子部品（図示せず）からデータ（以下、「入力データ」という）が入力され、さらに、ＦＩＦＯ制御部１２から書き込み信号とアドレスが入力されると、メモリ部３と同様に、入力されたアドレスに、上述の入力データを書き込む。
【００７８】
（２−３−２）データ読み出し制御
また、ＦＩＦＯ部１３は、読み出し信号とアドレスがＦＩＦＯ制御部１２から入力されると、当該アドレスからデータを読み出し、読み出したデータを他の電子部品（図示せず）に出力する。
【００７９】
（２−４）各部位の実現手段について
上述のデータ解析部１１は、電子回路を用いて実現することができる。ＦＩＦＯ制御部１２とＦＩＦＯ部１３は、電子回路とＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリを用いて実現することができる。
【００８０】
［動作の説明］
図１１、図１２は、本実施形態の回路の動作を説明する為の図である。図１１、図１２を用いて、本実施形態の回路の詳細な動作を以下に説明する。
【００８１】
（１）初期値設定動作
まず、本実施形態の回路のＦＩＦＯ制御部１２は、図示していないが、起動後、上述の（２−２−１）で説明した通り、外部レジスタに設定された値を基に、ＦＩＦＯ＿Ａの最終アドレスとＦＩＦＯ＿Ｂの先頭アドレスを記憶する。以下、ＦＩＦＯ制御部１２は、図１０に示されるように、ＦＩＦＯ＿Ａの最終アドレスとして６番地を記憶し、ＦＩＦＯ＿Ｂの先頭アドレスとして７番地を記憶したものとして説明を続ける。
【００８２】
次に、本実施形態の回路のＦＩＦＯ制御部１２は、各ポインタに初期値を設定する。
【００８３】
具体的には、本実施形態の回路のＦＩＦＯ制御部１２は、図１１の左図に示されるように、Ｓ１と同様、ライトポインタ５＿１に、記憶したＦＩＦＯ＿Ａの最終アドレス（６番地）を初期値として設定する（Ｓ１）。
【００８４】
また、本実施形態の回路のＦＩＦＯ制御部１２は、図１２の左図に示されるように、リードポインタ６＿１に、記憶したＦＩＦＯ＿Ａの最終アドレス（６番地）を初期値として設定する（Ｓ１１）。
【００８５】
さらに、本実施形態の回路のＦＩＦＯ制御部１２は、図１１の右図に示されるように、ライトポインタ５＿２に、記憶したＦＩＦＯ＿Ｂの先頭アドレス（７番地）を初期値として設定する（Ｓ５）。
【００８６】
本実施形態の回路のＦＩＦＯ制御部１２は、図１２の右図に示されるように、リードポインタ６＿２に、記憶したＦＩＦＯ＿Ｂの先頭アドレス（７番地）を初期値として設定する（Ｓ１５）。
【００８７】
その後、接続する他の電子部品（図示せず）から音声データが本実施形態の回路に入力されたとする。入力された音声データは、信号線（図９に示されるＲＸＤＡＴＡ）を介してデータ解析部１１とＦＩＦＯ部１３に入力される。
【００８８】
（２）データ入力時のデータ解析部１１の動作
データ解析部１１は、音声データが入力されると、図示していないが、ＳＥＬ＿Ａ信号をＦＩＦＯ制御部１２に出力する。
【００８９】
（３）ＦＩＦＯ＿ＡへのＦＩＦＯ制御
（３−１）入力されたデータのＦＩＦＯ＿Ａへの書き込み制御
次に、ＦＩＦＯ制御部１２は、データ解析部１１からＳＥＬ＿Ａ信号が入力されると、図１１の左図に示されるように、書き込み信号と、ライトポインタ５＿１が示すアドレス（６番地）と、をＦＩＦＯ部１３に出力する（Ｓ２）。ＦＩＦＯ部１３は、ＦＩＦＯ制御部１２から書き込み信号とアドレスが入力されると、当該アドレスに、他の電子部品（図示せず）から入力された音声データを書き込む。
【００９０】
ライトポインタ５＿１が示すアドレスが６番地であるとき、ＦＩＦＯ部１３は、６番地に音声データを書き込む。
【００９１】
次に、ＦＩＦＯ制御部１２は、ライトポインタ５＿１が示すアドレスが０番地か否かを判別する（Ｓ３）。
【００９２】
上述のＳ３において、ライトポインタ５＿１が示すアドレスが０番地でない場合（Ｓ３でＮｏの場合）、ＦＩＦＯ制御部１２は、ライトポインタ５＿１を１つデクリメント（Ｓ４）し、次にＳＥＬ＿Ａ信号（音声データ）が入力されるのを待つ。
【００９３】
本実施形態のＦＩＦＯ制御部１２は、ＳＥＬ＿Ａ信号（音声データ）が入力される毎に、上述のＳ２〜Ｓ４を繰り返し実施する。その結果、本実施形態の回路は、ライトポインタ５＿１をデクリメントしていくと共に、音声データを、６番地（ＦＩＦＯ＿Ａの最終アドレス）から０番地に向かって順に蓄えていく。
【００９４】
（３−２）ＦＩＦＯ＿Ａからデータを読み出す制御
一方、本実施形態の回路は、ＦＩＦＯ＿Ａからデータを読み出すことを要求するリード信号（以下、「リード信号Ａ」という）が他の電子部品（図示せず）より入力されると、ＦＩＦＯ＿Ａに蓄えられている音声データを、蓄えた順に読み出し、出力する。
【００９５】
具体的には、本実施形態の回路のＦＩＦＯ制御部１２は、図１２の左図に示されるように、リード信号Ａが入力されると、読み出し信号と、リードポインタ６＿１が示すアドレス（６番地）と、をＦＩＦＯ部１３に出力する（Ｓ１２）。ＦＩＦＯ部１３は、読み出し信号とアドレスがＦＩＦＯ制御部１２から入力されると、当該アドレスから音声データを読み出し、他の電子部品（図示せず）に出力する。
【００９６】
リードポインタ６＿１が示すアドレスが６番地の場合、ＦＩＦＯ部１３は、６番地から音声データを読み出し、出力する。
【００９７】
次に、本実施形態の回路のＦＩＦＯ制御部１２は、リードポインタ６＿１が示すアドレスが０番地か否か判別する（Ｓ１３）。
【００９８】
次に、ＦＩＦＯ制御部１２は、リードポインタ６＿１が示すアドレスが０番地でない場合（Ｓ１３でＮｏの場合）には、リードポインタ６＿１を１つデクリメント（Ｓ１４）し、次にリード信号Ａが入力されるのを待つ。
【００９９】
本実施形態のＦＩＦＯ制御部１２は、リード信号Ａが入力される毎に、上述のＳ１２〜Ｓ１４の処理を繰り返す。その結果、本実施形態の回路は、リードポインタ６＿１をデクリメントしていくと共に、６番地（ＦＩＦＯ＿Ａの最終アドレス）から０番地に向かって、音声データを順に読み出し、出力していく。その結果、本実施形態の回路は、ＦＩＦＯ＿Ａに対してＦＩＦＯ制御を実現することとなる。
【０１００】
（３−３）各ポインタを初期値に戻す制御
本実施形態の回路のＦＩＦＯ制御部１２は、上述のＳ２〜Ｓ４やＳ１２〜Ｓ１４の処理を繰り返し実施する。そのうち、ライトポインタ５＿１やリードポインタ６＿１は、０番地となる。そのとき、ＦＩＦＯ制御部１２は、上述のＳ３、Ｓ１３の判定において、ポインタが０番地であると判別する。
【０１０１】
ＦＩＦＯ制御部１２は、ポインタが０番地であると判別した場合（Ｓ３、Ｓ１３でＹｅｓの場合）には、当該ポインタに初期値（ＦＩＦＯ＿Ａの最終アドレス６番地）を設定する（Ｓ１、Ｓ５）。すなわち、ＦＩＦＯ制御部１２は、ポインタを初期値に戻す。その後、ＦＩＦＯ制御部１２は、再度、上述のＳ２〜Ｓ４やＳ１２〜Ｓ１４の処理を繰り返し、ＦＩＦＯ制御を継続する。
【０１０２】
（３−４）ポインタを初期値に戻す回路
本実施形態の回路は、ポインタを初期値に戻すのに、Ｓ３やＳ１３において、ポインタが０番地か否かにより判別した。ポインタが０番地か否かの判別は、ＮＯＲ回路（否定論理和回路）を１つ用いて実現できる。
【０１０３】
ＮＯＲ回路は、図６の右図に示されるように、入力された値の各ビットが全て０であるときだけ１を出力する回路である。本実施形態の回路は、ポインタ値（番地）をビットとしてＮＯＲ回路に入力し、１が出力されたときにポインタが０番地と判別し、０が出力されたときに、ポインタが０番地ではないと判別する。
【０１０４】
本実施形態の回路は、ポインタが０番地か否かの判別（すなわち、ポインタを初期値に戻す判定）を、規模の大きな一致回路や比較回路ではなく、規模の小さいＮＯＲ回路１つを用いて実現できる。本実施形態の回路は、規模の大きな一致回路や比較回路を用いる必要がない。その為、本実施形態の回路は、ＦＩＦＯ＿Ａに対してＦＩＦＯ制御を行うにあたり、回路規模を十分小さくすることができる。
【０１０５】
（４）ＦＩＦＯ＿ＢへのＦＩＦＯ制御
本実施形態の回路は、ＦＩＦＯ＿Ｂに対してもＦＩＦＯ制御を行う。但し、本実施形態の回路は、ライトポインタ５＿２やリードポインタ６＿２をインクリメントしてＦＩＦＯ制御を行う。以下、ＦＩＦＯ＿ＢへのＦＩＦＯ制御方法について具体的に説明する。
【０１０６】
（４−１）初期値設定動作
まず、接続する他の電子部品（図示せず）からメールデータが本実施形態の回路に入力されたとする。入力されたメールデータはデータ解析部１１とＦＩＦＯ部１３に入力される。
【０１０７】
データ解析部１１は、図示していないが、メールデータが入力されると、ＳＥＬ＿Ｂ信号をＦＩＦＯ制御部１２に出力する。
【０１０８】
（４−２）入力されたデータのＦＩＦＯ＿Ｂへの書き込み制御
次に、ＦＩＦＯ制御部１２は、データ解析部１１からＳＥＬ＿Ｂ信号が入力されると、図１１の右図に示されるように、書き込み信号と、ライトポインタ５＿２が示すアドレス（７番地）と、をＦＩＦＯ部１３に出力する（Ｓ６）。ＦＩＦＯ部１３は、ＦＩＦＯ制御部１２から書き込み信号とアドレスが入力されると、当該アドレスに、他の電子部品（図示せず）から入力されたメールデータを書き込む。
【０１０９】
ライトポインタ５＿２が示すアドレスが７番地であるとき、ＦＩＦＯ部１３は、７番地にメールデータを書き込む。
【０１１０】
次に、ＦＩＦＯ制御部１２は、ライトポインタ５＿２が示すアドレスがＦＩＦＯ＿Ｂの最終アドレス（９番地）か否かを判別する（Ｓ７）。ＦＩＦＯ＿Ｂの最終アドレスは、本実施形態の回路の製造者によって予めＦＩＦＯ制御部１２に設定されているアドレスである。
【０１１１】
上述のＳ３において、ライトポインタ５＿２が示すアドレスがＦＩＦＯ＿Ｂの最終アドレス（９番地）でない場合（Ｓ７でＮｏの場合）、ＦＩＦＯ制御部１２は、ライトポインタ５＿２を１つインクリメント（Ｓ８）し、次にＳＥＬ＿Ｂ信号が入力されるのを待つ。
【０１１２】
本実施形態のＦＩＦＯ制御部１２は、ＳＥＬ＿Ｂ信号（メールデータ）が入力される毎に、上述のＳ６〜Ｓ８を繰り返し実施する。その結果、本実施形態の回路は、ライトポインタ５＿２をデクリメントしていくと共に、メールデータを、７番地（ＦＩＦＯ＿Ｂの先頭アドレス）から９番地（ＦＩＦＯ＿Ｂの最終アドレス）に向かって順に蓄えていく。
【０１１３】
（４−３）ＦＩＦＯ＿Ｂからデータを読み出す制御
一方、本実施形態の回路は、ＦＩＦＯ＿Ｂからデータを読み出すことを要求するリード信号（以下、「リード信号Ｂ」という）が他の電子部品（図示せず）より入力されると、ＦＩＦＯ＿Ｂに蓄えられているメールデータを、蓄えた順に読み出し、出力する。
【０１１４】
具体的には、本実施形態の回路のＦＩＦＯ制御部１２は、図１２の右図に示されるように、リード信号Ｂが入力されると、読み出し信号と、リードポインタ６＿２が示すアドレス（７番地）と、をＦＩＦＯ部１３に出力する（Ｓ１６）。ＦＩＦＯ部１３は、読み出し信号とアドレスがＦＩＦＯ制御部１２から入力されると、当該アドレスからメールデータを読み出し、他の電子部品（図示せず）に出力する。
【０１１５】
リードポインタ６＿２が示すアドレスは７番地の場合、ＦＩＦＯ部１３は、７番地からメールデータを読み出し、出力する。
【０１１６】
次に、本実施形態の回路のＦＩＦＯ制御部１２は、リードポインタ６＿２の示すアドレスが９番地（ＦＩＦＯ＿Ｂの最終アドレス）か否かを判別する（Ｓ１７）。
【０１１７】
次に、ＦＩＦＯ制御部１２は、リードポインタ６＿２が示すアドレスが９番地（ＦＩＦＯ＿Ｂの最終アドレス）でない場合（Ｓ１７でＮｏの場合）には、リードポインタ６＿２を１つインクリメント（Ｓ１８）し、次にリード信号Ｂが入力されるのを待つ。
【０１１８】
本実施形態のＦＩＦＯ制御部１２は、リード信号Ｂが入力される毎に、上述のＳ１６〜Ｓ１８の処理を繰り返す。その結果、本実施形態の回路は、リードポインタ６＿２をインクリメントしていくと共に、７番地（ＦＩＦＯ＿Ｂの先頭アドレス）から９番地（ＦＩＦＯ＿Ｂの最終アドレス）に向かって、メールデータを順に読み出し、出力していく。その結果、本実施形態の回路は、ＦＩＦＯ＿Ｂに対してＦＩＦＯ制御を実現する。
【０１１９】
（４−４）各ポインタを初期値に戻す制御
本実施形態の回路のＦＩＦＯ制御部１２は、上述のＳ６〜Ｓ８やＳ１６〜Ｓ１８の処理を繰り返し実施する。そのうち、ライトポインタ５＿２やリードポインタ６＿２は、９番地（ＦＩＦＯ＿Ｂの最終アドレス）となる。そのとき、ＦＩＦＯ制御部１２は、上述のＳ７、Ｓ１７の判定において、ポインタが９番地（ＦＩＦＯ＿Ｂの最終アドレス）と判別する。
【０１２０】
ＦＩＦＯ制御部１２は、ポインタが９番地（ＦＩＦＯ＿Ｂの最終アドレス）と判別した場合（Ｓ７、Ｓ１７でＹｅｓの場合）には、当該ポインタに初期値（ＦＩＦＯ＿Ｂの先頭アドレス７番地）を設定する（Ｓ５、Ｓ１５）。すなわち、ＦＩＦＯ制御部１２は、ポインタを初期値に戻す。その後、ＦＩＦＯ制御部１２は、再度、上述のＳ６〜Ｓ８やＳ１６〜Ｓ１８の処理を繰り返し、ＦＩＦＯ制御を継続する。
【０１２１】
（４−５）各ポインタを初期値に戻す回路
本実施形態の回路は、ポインタを初期値に戻すのに、Ｓ７やＳ１７において、ポインタがＦＩＦＯ＿Ｂの最終アドレスか否かにより判別した。
【０１２２】
上述の判別（ポインタを初期値に戻す判別）は、ＦＩＦＯ＿Ｂの最終アドレスがＡＬＬ１ビットで表わされる値である場合に限るが、比較器を用いず、ＡＮＤ回路（論理積回路）を１つ用いて実現できる。図１３は、一般的なＡＮＤ回路（論理積回路）の構成と動作を示した図である。
【０１２３】
ＡＮＤ回路は、図１３の右図に示されるように、入力された値の各ビットが全て１であるときだけ１を出力する回路である。本実施形態の回路は、ポインタ値（番地）をビットとしてＡＮＤ回路に入力し、１が出力されたときは、ポインタがＡＬＬ１ビットで表わされる値（ＦＩＦＯ＿Ｂの最終アドレス）と判別し、０が出力されたとき、ＦＩＦＯ＿Ｂの最終アドレスでないと判別する。
【０１２４】
本実施形態の回路は、ＦＩＦＯ＿Ｂの最終アドレスがＡＬＬ１ビットで表わされる値であるときには、ポインタがＦＩＦＯ＿Ｂの最終アドレスか否かの判別（すなわち、ポインタを初期値に戻す判定）を、ＡＮＤ回路１つを用いて実現できる。ＡＮＤ回路は、一致回路や比較回路よりも回路規模の小さい回路である。その為、本実施形態の回路は、ＦＩＦＯ＿Ｂの最終アドレスがＡＬＬ１ビットで表わされるときだけだが、より一層小さい回路を実現できる。
【０１２５】
（４−６）ＡＮＤ回路の代わりに使用可能な回路
なお、本実施形態の回路は、ＡＮＤ回路の代わりに、ＮＯＲ回路とＮＯＴ回路を用いてもよい。
【０１２６】
（５）各処理を実施するタイミングについて
ＦＩＦＯ制御部１２は、Ｓ１〜Ｓ４の処理、Ｓ１１〜Ｓ１４の処理、Ｓ５〜Ｓ８の処理、及びＳ１５〜Ｓ１８の処理を並行して実施してもよい。その為に、ＦＩＦＯ制御部１２は、各処理を実施する回路を備え、それぞれ独立に動作させてもよい。
【０１２７】
［効果の説明］
本実施形態によれば、回路は、０番地からアドレスが始まるＦＩＦＯ＿Ａに対してＦＩＦＯ制御を行うにあたり、回路規模を十分小さくすることができる。
【０１２８】
その理由を以下に説明する。
【０１２９】
まず、本実施形態の回路は、ＦＩＦＯ＿ＡにＦＩＦＯ制御を行うときには、ＦＩＦＯ用のポインタをデクリメントし、ポインタが０番地か否かの判定を行い、０番地であるときには当該ポインタを初期値に戻す。ポインタが０番地か否かの判定、すなわちポインタを初期値に戻す判定は、規模の大きな一致回路や比較回路ではなく、規模の小さいＮＯＲ回路１つを用いて実現できる。すなわち、本実施形態の回路は、ＦＩＦＯ＿Ａに対してＦＩＦＯ制御を行うときには、規模の大きな一致回路や比較回路を用いる必要がない。本実施形態の回路は、ＦＩＦＯ＿Ａに対してＦＩＦＯ制御を行うにあたり、規模の大きな一致回路や比較回路を備える必要がない為、回路規模を十分小さくすることができる。
【０１３０】
≪第３の実施の形態≫
次に、本発明の第３の実施の形態について説明する。
【０１３１】
図１４は、本発明の第３の実施の形態における回路の構成例を示す図である。以下に、第３の実施の形態の回路の構成と動作について説明する。
【０１３２】
［構成の説明］
（１）第３の実施形態の回路の構成
第３の実施形態の回路１００は、図１４に示されるように、設定部１０１と、制御部１０２と、を備える。各部位は、信号線を介して互いに接続される。
【０１３３】
第３の実施形態の回路１００は、所定の番地から始まるアドレスにアクセスする回路である。例えば、第３の実施形態の回路１００は、図１４に示されるように、（０番地から始まる）０番地から１００番地までのアドレスにアクセスする回路であってもよい。
【０１３４】
（２）第３の実施形態の回路１００の各部位の機能
（２−１）設定部１０１の機能
設定部１０１は、上述のアドレス（例えば、０番地から１００番地までのアドレス）の何れかを指定する変数を保持する。
【０１３５】
設定部１０１は、起動後、上述の変数に対し、上述のアドレス（０番地から１００番地までのアドレス）の中の所定のアドレス（例えば、１００番地）を初期値として設定する。所定のアドレスは、回路１００の製造者によって設定部１０１に設定されてもよい。
【０１３６】
（２−２）制御部１０２の機能
制御部１０２は、所定の契機に上述の変数の指定するアドレスにアクセスすると、変数の指定するアドレスが所定の番地（例えば、０番地）と等しいか否か判別し、等しい場合には当該変数を初期値（例えば、１００番地）に戻す。
【０１３７】
上述の所定の契機は、データが回路１００に入力されたときであってもよい。また、回路１００は、アクセスした際、当該アドレスに、入力されたデータを書き込んでもよい。
【０１３８】
一方、制御部１０２は、変数が所定の番地（例えば、０番地）と等しくない場合には変数をデクリメントする。制御部１０２は、変数を１つデクリメントしてもよい。
【０１３９】
上述の変数はポインタであってもよい。
【０１４０】
[動作の説明]
次に、本実施形態のシステムの動作を説明する。
【０１４１】
（１）初期値設定動作
まず、本実施形態の回路１００の設定部１０１は、起動後、アドレスを指定する変数に対し、所定のアドレス（１００番地）を初期値として設定する。
【０１４２】
（２）データ格納動作
その後、本実施形態の回路１００にデータが入力されたとする。上述のデータは、回路１００に接続されている外部のデバイス（図示せず）から入力されてもよい。
【０１４３】
そのとき、本実施形態の回路１００の制御部１０２は、上述の変数の指定するアドレス１００番地）にアクセスする。その際、制御部１０２は、アクセスしたアドレス（１００番地）に、入力されたデータを書き込んでもよい。
【０１４４】
次に、制御部１０２は、上述の変数が所定の番地（０番地）と等しいか否か判別する。
【０１４５】
制御部１０２は、上述の変数が０番地と等しくない場合には変数を１つデクリメントする。
【０１４６】
制御部１０２は、データが入力される毎に、上述の処理を繰り返す。その結果、本実施形態の回路１００は、変数をデクリメントしていき、所定のアドレス（１００番地）から０番地に向かって順にアクセスしていく。
【０１４７】
（３）各ポインタを初期値に戻す制御
制御部１０２が上述の（２）の処理を繰り返し実施していると、やがて変数が所定の番地（０番地）になる。
【０１４８】
制御部１０２は、変数が所定の番地（０番地）と等しい場合には、当該変数を初期値（すなわち、所定のアドレス１００番地）に戻す。具体的には、制御部１０２は、上述の変数に所定のアドレス（１００番地）を設定する。
【０１４９】
（４）初期値に戻した後の動作
初期値に戻した後、制御部１０２は、データが入力される毎に、上述の（２）〜（３）の処理を繰り返し実施する。その結果、本実施形態の回路１００は、（初期値１００番地から所定の０番地までの）アドレスに環状的にアクセスしていく。
【０１５０】
（６）回路について
（６−１）ＮＯＲ回路
上記では、本実施形態の回路１００は、変数が所定の番地（０番地）か否かで判別して、変数を初期値に戻している。変数が０番地か否かの判別、すなわち変数を初期値に戻す判別は、ＮＯＲ回路１つで実現できる。
【０１５１】
ところで、上述の所定の番地は０番地でなくてもよく、その場合には、本実施形態の回路１００は、後述の「（６−２）判別回路」で説明する判別回路を用いて、上述の（変数を初期値に戻す）判別を行うことができる。
【０１５２】
（６−２）判別回路
図１５は、本実施形態の回路１００に備わる判別回路の構成例を示した図である。図１５の上図に示される判別回路は、変数の指定するアドレスが３ビットで入力されたとき、当該アドレスが所定の番地（３番地）か否かを判別する回路である。
【０１５３】
その為に、図１５の上図に示される判別回路は、入力段１１０、１１１に否定回路（ＮＯＴ回路）を備えた否定論理和回路（ＮＯＲ回路）を含む。入力段１１０、１１１は、判別回路に所定の番地（３番地）と同じアドレスがビットとして入力されたとき、当該アドレスの１が立つビットが入力される入力段である。図１５の上図に示される判別回路は、所定の番地（３番地）と同じアドレスが入力されると、ＮＯＴ回路から０番地がＮＯＲ回路に出力されることとなり、ＮＯＲ回路にて０番地か否かを判別することができる。
【０１５４】
入力される変数の指定するアドレスがＭビットであった場合には、判別回路は、図１５の下図に示される通りの構成となる。すなわち、当該回路は、所定の番地と同じアドレスがＭビットで入力されたとき、当該アドレスの１が立つビットが入力される入力段にＮＯＴ回路を備える回路である。
【０１５５】
上述の判別回路は、ＮＯＲ回路に加えて、最大Ｍ個のＮＯＴ回路を備える。その為、上述の判別回路は、ＮＯＲ回路を構成するダイオードＭ個及びトランジスタ１個に加えて、ＮＯＴ回路を構成するトランジスタ最大Ｍ個、合計して、Ｍ個のダイオードと（Ｍ＋１）個のトランジスタを備える。一致回路は、上述の「（３−４）ＮＯＲ回路の回路規模について」で説明した通り、ダイオード（６×Ｍ）個とトランジスタ（２×Ｍ）個を備える回路なので、上述の判別回路は、一致回路よりも回路規模が小さい。
【０１５６】
［効果の説明］
本実施形態によれば、回路は、環状的にアドレスにアクセスするにあたり、回路規模を十分小さくすることができる。
【０１５７】
その理由を以下に説明する。
【０１５８】
まず、本実施形態の回路は、変数の指定するアドレスにアクセスすると、当該変数が所定の番地か否かの判別を行い、所定の番地でないときは当該変数をデクリメントし、所定の番地であるときには該変数を初期値に戻す。上述の動作により、本実施形態の回路は、環状的にアドレスにアクセスする。
【０１５９】
ここで、上述の変数が所定の番地か否かの判別、すなわち変数を初期値に戻す判別は、規模の大きな一致回路や比較回路ではなく、規模の小さいＮＯＲ回路１つ、若しくは、上述の判別回路を用いて実現できる。すなわち、本実施形態の回路は、環状的にアドレスにアクセスするとき、規模の大きな一致回路や比較回路を用いる必要がない。本実施形態の回路は、環状的にアドレスにアクセスするにあたり、規模の大きな一致回路や比較回路を備える必要がない為、回路規模を十分小さくすることができる。
【０１６０】
なお、上述した実施の形態は、その形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々変更可能である。
【０１６１】
さらに、上記の各実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
所定の番地から始まるアドレスにアクセスする回路であって、
起動後、前記アドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定部と、
所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御部と、を備え、
前記制御部は、否定論理和回路を用いて、若しくは、前記所定の番地と同じ前記アドレスが入力されたときに前記アドレスの１が立つビットが入力される入力段に否定回路を備えた否定論理和回路を用いて前記判別を行う、
ことを特徴とする回路。
（付記２）
前記アドレスは、前記第１のメモリのアドレスであり、
前記変数は、前記第１のメモリのアドレスを指定するポインタである、
ことを特徴とする付記１に記載の回路。
（付記３）
前記所定の番地は、０番地であり、
前記制御部は、前記否定論理和回路を用いて前記判別を行う、
ことを特徴とする付記１乃至２のいずれか１項に記載の回路。
（付記４）
ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）制御を行う回路であって、
前記制御部は、第１の書き込み部と第１の読み出し部を備え、
前記設定部は、起動後、所定の番地からアドレスが始まる前記第１のメモリへデータを書き込む位置を指定する第１のライトポインタ、及び、前記第１のメモリからデータを読み出す位置を指定する第１のリードポインタに対し、前記第１のメモリの所定のアドレスを第１の初期値として設定し、
前記第１の書き込み部は、入力された第１種データを前記第１のライトポインタの指定する位置に書き込むと、前記第１のライトポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のライトポインタを前記第１の初期値に戻し、等しくない場合には前記第１のライトポインタをデクリメントし、
前記第１の読み出し部は、所定の読み出し信号の入力により前記第１のリードポインタが指定する位置から前記第１種データを読み出して出力すると、前記第１のリードポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第１のリードポインタを前記第１のライトポインタと同じ数デクリメントする、
ことを特徴とする付記２乃至３のいずれか１項に記載の回路。
（付記５）
前記制御部は、第２の書き込み部と第２の読み出し部を備え、
前記設定部は、最大アドレスが１のみのビット列で表わされる第２のメモリへの書き込み位置を指定する第２のライトポインタ、及び、前記第２のメモリから読み出す位置を指定する第２のリードポインタに前記最大アドレスを第２の初期値として設定し、
前記第２の書き込み部は、入力された第２種データを前記第２のライトポインタの指定する位置に書き込むと、前記第２のライトポインタが前記最大アドレスと等しいか否か判別し、等しい場合には前記第１のライトポインタに前記最大アドレスを設定し、等しくない場合には前記第２のライトポインタをインクリメントし、
前記第２の読み出し部は、所定の読み出し信号の入力により前記第２のリードポインタが指定する位置から前記第２種データを読み出して出力すると、前記第２のリードポインタが前記最大アドレスと等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第２のリードポインタを前記第２のライトポインタと同じ数インクリメントし、
前記第２の書き込み部及び前記第２の読み出し部は、論理積回路、若しくは否定論理和回路と否定回路を用いて、前記最大アドレスと等しいか否かの判別を行う、
ことを特徴とする付記２乃至４のいずれか１項に記載の回路。
（付記６）
前記１のメモリと前記第２のメモリは、前記回路に備わる１つのメモリを分割したメモリである、
ことを特徴とする付記５に記載の回路。
（付記７）
起動後、所定の番地から始まるアドレスのいずれかを指定する変数に対し、前記アドレスの中の所定のアドレスを初期値として設定する設定ステップと、
所定の契機に前記変数の指定する前記アドレスにアクセスすると、前記変数の指定する前記アドレスが前記所定の番地と等しいか否か判別し、等しい場合には前記変数を前記初期値に戻し、等しくない場合には前記変数をデクリメントする制御ステップと、を有し、
前記制御ステップにおいては、前記アドレスの否定論理和、若しくは、前記所定の番地の１が立つビットに対応するビットを論理否定した前記アドレスの否定論理和により前記判別を行う、
ことを特徴とする方法。
（付記８）
前記アドレスは、前記第１のメモリのアドレスであり、
前記変数は、前記第１のメモリのアドレスを指定するポインタである、
ことを特徴とする付記７に記載の方法。
（付記９）
前記所定の番地は、０番地であり、
前記制御ステップにおいては、前記否定論理和を用いて前記判別を行う、
ことを特徴とする付記７乃至８のいずれか１項に記載の方法。
（付記１０）
ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）制御を行う方法であって、
前記制御ステップは、第１の書き込みステップと第１の読み出しステップを有し、
前記設定ステップにおいては、起動後、所定の番地からアドレスが始まる第１のメモリへデータを書き込む位置を指定する第１のライトポインタ、及び、前記第１のメモリからデータを読み出す位置を指定する第１のリードポインタに対し、前記第１のメモリの所定のアドレスを第１の初期値として設定し、
前記第１の書き込みステップにおいては、入力された第１種データを前記第１のライトポインタの指定する位置に書き込むと、前記第１のライトポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のライトポインタを前記第１の初期値に戻し、等しくない場合には前記第１のライトポインタをデクリメントし、
前記第１の読み出しステップにおいては、所定の読み出し信号の入力により前記第１のリードポインタが指定する位置から前記第１種データを読み出して出力すると、前記第１のリードポインタが前記所定の番地と等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第１のリードポインタを前記第１のライトポインタと同じ数デクリメントする、
ことを特徴とする付記８乃至９のいずれか１項に記載の方法。
（付記１１）
前記制御ステップは、第２の書き込みステップと第２の読み出しステップを有し、
前記設定ステップは、最大アドレスが１のみのビット列で表わされる第２のメモリへの書き込み位置を指定する第２のライトポインタ、及び、前記第２のメモリから読み出す位置を指定する第２のリードポインタに前記最大アドレスを第２の初期値として設定し、
前記第２の書き込みステップは、入力された第２種データを前記第２のライトポインタの指定する位置に書き込むと、前記第２のライトポインタが前記最大アドレスと等しいか否か判別し、等しい場合には前記第１のライトポインタに前記最大アドレスを設定し、等しくない場合には前記第２のライトポインタをデクリメントし、
前記第２の読み出しステップは、所定の読み出し信号の入力により前記第２のリードポインタが指定する位置から前記第２種データを読み出して出力すると、前記第２のリードポインタが前記最大アドレスと等しいか否か判別し、等しい場合には前記第１のリードポインタを前記第１の初期値に戻し、等しくない場合には前記第２のリードポインタを前記第２のライトポインタと同じ数デクリメントし、
前記第２の書き込みステップ及び前記第２の読み出しステップにおいては、論理積、若しくは否定論理和と論理否定により、前記最大アドレスと等しいか否かの判別を行う、
ことを特徴とする付記８乃至１０に記載の方法。
（付記１２）
前記１のメモリと前記第２のメモリは、前記回路に備わる１つのメモリを分割したメモリである、
ことを特徴とする付記１１に記載の方法。
（付記１３）
前記所定のアドレスは、前記第１のメモリの最大アドレスである、
ことを特徴とする付記８乃至１２のいずれか１項に記載の方法。
（付記１４）
前記制御ステップにおいては、前記否定論理和の代わりに、論理和と論理否定により前記アドレスが前記所定の番地と等しいか否かの前記判別を行う、
ことを特徴とする付記７乃至１３のいずれか１項に記載の方法。
（付記１５）
前記所定のアドレスは、前記第１のメモリの最大アドレスである、
ことを特徴とする付記２乃至６のいずれか１項に記載の回路。
（付記１６）
前記制御部は、前記否定論理和回路の代わりに、論理和回路と否定回路を用いて、前記アドレスが前記所定の番地と等しいか否かの前記判別を行う、
ことを特徴とする付記１乃至６のいずれか１項、又は付記１５に記載の回路。
【符号の説明】
【０１６２】
１    データ解析部
２    制御部
３    メモリ部
４    メモリ
４＿１    ライトポインタ
５＿１、５＿２    ライトポインタ
６＿１、６＿２    リードポインタ
１０    回路
１１    データ解析部
１２    ＦＩＦＯ制御部
１３    ＦＩＦＯ部
１００    回路
１０１    設定部
１０２    制御部
１１０、１１１    入力段
【図１】
2016184451.tif 000003
【図２】
2016184451.tif 000004
【図３】
2016184451.tif 000005
【図４】
2016184451.tif 000006
【図５】
2016184451.tif 000007
【図６】
2016184451.tif 000008
【図７】
2016184451.tif 000009
【図８】
2016184451.tif 000010
【図９】
2016184451.tif 000011
【図１０】
2016184451.tif 000012
【図１１】
2016184451.tif 000013
【図１２】
2016184451.tif 000014
【図１３】
2016184451.tif 000015
【図１４】
2016184451.tif 000016
【図１５】
2016184451.tif 000017