(57)【特許請求の範囲】
【請求項１】
メモリ部と、
第１のマスタに割り当てられるライトポインタと、
第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、
初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、前記第２〜第ｎ＋１のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第１のマスタにＦＩＦＯフルフラグを出力する第１のＦＩＦＯカウンタと、
初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、第ｉ（但し、ｉ＝２〜ｎ＋１）のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第ｉのマスタに第ｉ−１のＦＩＦＯエンプティフラグを出力する第ｉのＦＩＦＯカウンタと
を備えていることを特徴とするＦＩＦＯ回路。
【請求項２】
メモリ部と、
第１のマスタに割り当てられるライトポインタと、
第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、
初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第ｎ＋１のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第１のマスタにＦＩＦＯフルフラグを出力し、カウント値がゼロとなった時は、前記第ｎ＋１のマスタに第ｎのＦＩＦＯエンプティフラグを出力する第１のＦＩＦＯカウンタと、
初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、第ｊ（但し、ｊ＝２〜ｎ）のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第ｊのマスタに第ｊ−１のＦＩＦＯエンプティフラグを出力する第ｊのＦＩＦＯカウンタと
を備えていることを特徴とするＦＩＦＯ回路。
【請求項３】
メモリ部と、
第１のマスタに割り当てられるライトポインタと、
第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、
初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、前記第２〜第ｎ＋１のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第１のマスタにＦＩＦＯフルフラグを出力する第１のＦＩＦＯカウンタと、
初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、第ｉ（但し、ｉ＝２〜ｎ＋１）のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第ｉのマスタに第ｉ−１のＦＩＦＯエンプティフラグを出力する第ｉのＦＩＦＯカウンタと
を備えていることを特徴とするＦＩＦＯ回路。
【請求項４】
メモリ部と、
第１のマスタに割り当てられるライトポインタと、
第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、
初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第ｎ＋１のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第１のマスタにＦＩＦＯフルフラグを出力し、カウント値が最大値となった時は、前記第ｎ＋１のマスタに第ｎのＦＩＦＯエンプティフラグを出力する第１のＦＩＦＯカウンタと、
初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、第ｊ（但し、ｊ＝２〜ｎ）のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第ｊのマスタに第ｊ−１のＦＩＦＯエンプティフラグを出力する第ｊのＦＩＦＯカウンタと
を備えていることを特徴とするＦＩＦＯ回路。
【請求項５】
前記カウントアップ要求及び前記カウントダウン要求をワード単位で行うマスタに使用されるものであり、
前記メモリ部に格納することができる最大ワード数を設定する最大ワード数設定手段を有し、
前記最大値は、前記最大ワード数設定手段に設定された最大ワード数とされることを特徴とする請求項１乃至４のいずれか一項に記載のＦＩＦＯ回路。
【請求項６】
前記カウントアップ要求及び前記カウントダウン要求をパケット単位で行うマスタに使用されるものであり、
前記メモリ部に格納することができる最大パケット数を設定する最大パケット数設定手段を有し、
前記最大値は、前記最大パケット数設定手段に設定した最大パケット数とされること
を特徴とする請求項１乃至４のいずれか一項に記載のＦＩＦＯ回路。
【請求項７】
前記メモリ部のリードポートの数が前記ｎよりも少なく、
前記第２〜第ｎ＋１のマスタの前記メモリ部に対するリードアクセスを調整するアービタを備えていること
を特徴とする請求項１乃至６のいずれか一項に記載のＦＩＦＯ回路。
【請求項８】
請求項１乃至７のいずれか一項に記載のＦＩＦＯ回路を備えていること
を特徴とするマルチプロセッサシステム。
【請求項９】
前記ＦＩＦＯ回路として、第１〜第ｍ（但し、ｍは２以上の整数）のＦＩＦＯ回路を備えると共に、第１〜第ｍ＋ｎ（但し、ｎは２以上の整数）のマスタを備え、
第ｋ（但し、ｋ＝１〜ｍ）のマスタは、第ｋのＦＩＦＯ回路のライトポインタが割り当てられ、
第ｍ＋ｐ（但し、ｐ＝１〜ｎ）のマスタは、前記第１〜第ｍのＦＩＦＯ回路の第ｐのリードポインタが割り当てられていること
を特徴とする請求項８に記載のマルチプロセッサシステム。
【請求項１０】
前記第ｋのマスタは、前記第ｋのＦＩＦＯ回路がフルの時は、後続する命令の実行を停止する命令を備え、
前記第ｍ＋ｐのマスタは、前記第ｋのＦＩＦＯ回路が前記第ｍ＋ｐのマスタにとってエンプティの時は、後続する命令の実行を停止する命令を備えていること
を特徴とする請求項９に記載のマルチプロセッサシステム。
【請求項１１】
前記ｎは２、前記第１〜ｍ＋１のマスタはプロセッサ、前記第ｍ＋２のマスタはＤＭＡコントローラであり、
前記第ｍ＋１のマスタは、前記第ｋのＦＩＦＯ回路に格納されているデータについて所定の処理を行い、その処理結果に基づいて、前記第ｋのＦＩＦＯ回路に格納されている前記第ｋのマスタの出力データ又は前記第ｍ＋１のマスタの出力データのうち、いずれの出力データを出力ポートに転送するかのリクエストを行うようにプログラムされること
を特徴とする請求項１０に記載のマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ライトアクセスするアドレスを指定するライトポインタと、リードアクセスするアドレスを指定するリードポインタとを含めて構成されるＦＩＦＯ（First In First Out）回路、及び、マルチプロセッサシステムに関する。
【０００２】
マルチプロセッサシステムにおいては、各プロセッサ間のデータ受け渡し手段としてＦＩＦＯ回路が良く使用されるが、ＦＩＦＯ回路の利点は、データの受け渡しが順番通りに行われるというルールから、ＦＩＦＯ回路内の状態、つまり、フル（満杯）又はエンプティ（空）の状態のみの情報でデータのライト／リードの同期取りが可能な点にある。
【０００３】
また、各プロセッサ間で受け渡されるデータが入力データとして利用された後、再利用されないようなケースでは、データを順次転送するだけでよく、ＦＩＦＯ回路が使用されることが多い。その反面、受け渡されるデータが再利用されるようなケースでは、データを一時的にしか保持することができないＦＩＦＯ回路ではなく、共有メモリが使用されることになる。
【０００４】
しかし、共有メモリ形式のシステムにおいては、プロセッサのアクセス競合が発生すると、自身のデータ転送とは無関係な場合であっても、データ転送を待たされるケースもあり、ポイント・ツー・ポイントのＦＩＦＯ形式のシステムに比べ性能が劣化するという問題をはらんでいる。そこで、従来のＦＩＦＯ形式と共有メモリ形式の中間的なデータ受け渡し手段が求められる。
【０００５】
【従来の技術】
図１１は従来のＦＩＦＯ回路の一例の概念図であり、図１１中、１はシフトレジスタ、２−０、２−１、・・・２−ｎはそれぞれ初段目、２段目、・・・最終段目のレジスタである。
【０００６】
図１１に示す従来のＦＩＦＯ回路においては、順に与えられるデータＤ０、Ｄ１、Ｄ２・・・は、レジスタ２−０に順に入力され、レジスタ２−０からレジスタ２−ｎに向かって順にシフトされ、入力された順に出力されることになる。
【０００７】
図１２は従来のＦＩＦＯ回路の他の例の概念図であり、図１２中、４はデータが格納されるメモリ部、５−０、５−１、・・・５−ｎはアドレス（ＡＤＤ）を０番地、１番地、・・・ｎ番地とするワード格納領域である。
【０００８】
また、６はライトアクセスするアドレスを指定するライトポインタ、７はリードアクセスするアドレスを指定するリードポインタであり、ライトポインタ６はメモリ部４にライトアクセスできるマスタに割り当てられ、リードポインタ７はメモリ部４にリードアクセスできるマスタに割り当てられる。
【０００９】
また、８はメモリ部４がフルとなった時は、ライトポインタ６が割り当てられたマスタにＦＩＦＯフルフラグを出力し、メモリ部４がエンプティとなった時は、リードポインタ７が割り当てられたマスタにＦＩＦＯエンプティフラグを出力するＦＩＦＯフル／エンプティフラグ生成部である。
【００１０】
また、９はメモリ部４に格納することができる最大のワード数を設定する最大ワード数設定レジスタ、１０はライトポインタ６が割り当てられたマスタからのカウントアップ要求及びリードポインタ７が割り当てられたマスタからのカウントダウン要求を入力し、カウント値が最大ワード数となった時は、ライトポインタ６が割り当てられたマスタにＦＩＦＯフルフラグを出力し、カウント値がゼロとなった時は、リードポインタ７が割り当てられたマスタにＦＩＦＯエンプティフラグを出力するＦＩＦＯカウンタである。
【００１１】
図１２に示す従来のＦＩＦＯ回路においては、ライトポインタ６は、アドレス０、１、・・・ｎを順に指定し、リードポインタ７は、ライトポインタ６に遅れてアドレス０、１、・・・ｎを順に指定することになる。この結果、順に与えられるデータＤ０、Ｄ１、Ｄ２・・・は、ライトポインタ６が順に指定するアドレス０、１、・・・ｎに順に格納され、格納されたデータＤ０、Ｄ１、Ｄ２・・・は、リードポインタ７が順に指定するアドレス０、１、・・・ｎから順にリードされることになる。
【００１２】
【発明が解決しようとする課題】
ここに、ＦＩＦＯ回路に格納されたデータＤ０、Ｄ１、Ｄ２・・・の再利用を考えた場合、図１１に示す従来のＦＩＦＯ回路においては、データが常に上書きされるため、データの再利用は不可能であるが、図１２に示す従来のＦＩＦＯ回路の場合には、ライトポインタがアドレスを一巡して上書きされるまで、データが保存されているので、再利用の道を残している。
【００１３】
しかし、図１２に示す従来のＦＩＦＯ回路は、データのライト／リードをライトポインタ、リードポインタ及びＦＩＦＯカウンタの各１個で管理する構成とされているため、このままでは、格納されたデータの再利用を行うことができないという問題点があった。
【００１４】
本発明は、かかる点に鑑み、入力したデータの順に出力するというＦＩＦＯ回路の機能を損なうことなく、格納したデータの再利用を容易に行うことができるようにしたＦＩＦＯ回路を提供することを第１の目的とし、データ処理の高速化を図ることができるようにしたマルチプロセッサシステムを提供することを第２の目的とする。
【００１５】
【課題を解決するための手段】
本発明中、第１の発明は、ＦＩＦＯ回路の発明であり、メモリ部と、第１のマスタに割り当てられるライトポインタと、第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、前記第２〜第ｎ＋１のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第１のマスタにＦＩＦＯフルフラグを出力する第１のＦＩＦＯカウンタと、初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、第ｉ（但し、ｉ＝２〜ｎ＋１）のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第ｉのマスタに第ｉ−１のＦＩＦＯエンプティフラグを出力する第ｉのＦＩＦＯカウンタとを備えているというものである。
【００１６】
本発明中、第２の発明は、ＦＩＦＯ回路の発明であり、メモリ部と、第１のマスタに割り当てられるライトポインタと、第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第ｎ＋１のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第１のマスタにＦＩＦＯフルフラグを出力し、カウント値がゼロとなった時は、前記第ｎ＋１のマスタに第ｎのＦＩＦＯエンプティフラグを出力する第１のＦＩＦＯカウンタと、初期値をゼロとされ、前記第１のマスタからのカウントアップ要求によりカウント値をインクリメントし、第ｊ（但し、ｊ＝２〜ｎ）のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第ｊのマスタに第ｊ−１のＦＩＦＯエンプティフラグを出力する第ｊのＦＩＦＯカウンタとを備えているというものである。
【００１７】
本発明中、第３の発明は、ＦＩＦＯ回路の発明であり、メモリ部と、第１のマスタに割り当てられるライトポインタと、第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、前記第２〜第ｎ＋１のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第１のマスタにＦＩＦＯフルフラグを出力する第１のＦＩＦＯカウンタと、初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、第ｉ（但し、ｉ＝２〜ｎ＋１）のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第ｉのマスタに第ｉ−１のＦＩＦＯエンプティフラグを出力する第ｉのＦＩＦＯカウンタとを備えているというものである。
【００１８】
本発明中、第４の発明は、ＦＩＦＯ回路の発明であり、メモリ部と、第１のマスタに割り当てられるライトポインタと、第２〜第ｎ＋１（但し、ｎは２以上の整数）のマスタに割り当てられる第１〜第ｎのリードポインタと、初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第ｎ＋１のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第１のマスタにＦＩＦＯフルフラグを出力し、カウント値が最大値となった時は、前記第ｎ＋１のマスタに第ｎのＦＩＦＯエンプティフラグを出力する第１のＦＩＦＯカウンタと、初期値を最大値とされ、前記第１のマスタからのカウントダウン要求によりカウント値をデクリメントし、第ｊ（但し、ｊ＝２〜ｎ）のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第ｊのマスタに第ｊ−１のＦＩＦＯエンプティフラグを出力する第ｊのＦＩＦＯカウンタとを備えているというものである。
【００１９】
本発明中、第５の発明は、第１〜第４の発明のいずれか一の発明において、前記カウントアップ要求及び前記カウントダウン要求をワード単位で行うマスタに使用されるものであり、前記メモリ部に格納することができる最大ワード数を設定する最大ワード数設定手段を有し、前記最大値は、前記最大ワード数設定手段に設定された最大ワード数とされるというものである。
【００２０】
本発明中、第６の発明は、第１〜第４の発明のいずれか一の発明において、前記カウントアップ要求及び前記カウントダウン要求をパケット単位で行うマスタに使用されるものであり、前記メモリ部に格納することができる最大パケット数を設定する最大パケット数設定手段を有し、前記最大値は、前記最大パケット数設定手段に設定した最大パケット数とされるというものである。
【００２１】
本発明中、第７の発明は、第１〜第６の発明のいずれか一の発明において、前記メモリ部のリードポートの数が前記ｎよりも少なく、前記第２〜第ｎ＋１のマスタの前記メモリ部に対するリードアクセスを調整するアービタを備えているというものである。
【００２２】
本発明のＦＩＦＯ回路においては、前記第１のマスタによるライトポインタを介したアドレスの指定が、前記第２〜第ｎ＋１のマスタのうち、リードアクセスを最後に行っているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、前記第２〜第ｎ＋１のマスタにおいて同一のデータを利用することができる。したがって、入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、格納したデータの再利用を図ることができる。
【００２３】
本発明中、第８の発明は、マルチプロセッサシステムの発明であり、第１〜第７の発明のいずれか一の発明のＦＩＦＯ回路を備えているというものである。
【００２４】
本発明中、第８の発明のマルチプロセッサシステムにおいては、ＦＩＦＯ回路に格納された同一データを複数のマスタで使用することができるので、共有メモリを設ける必要がない。したがって、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【００２５】
本発明中、第９の発明は、第８の発明において、前記ＦＩＦＯ回路として、第１〜第ｍ（但し、ｍは２以上の整数）のＦＩＦＯ回路を備えると共に、第１〜第ｍ＋ｎ（但し、ｎは２以上の整数）のマスタを備え、第ｋ（但し、ｋ＝１〜ｍ）のマスタは、第ｋのＦＩＦＯ回路のライトポインタが割り当てられ、第ｍ＋ｐ（但し、ｐ＝１〜ｎ）のマスタは、前記第１〜第ｍのＦＩＦＯ回路の第ｐのリードポインタが割り当てられているというものである。
【００２６】
本発明中、第１０の発明は、第９の発明において、前記第ｋのマスタは、前記第ｋのＦＩＦＯ回路がフルの時は、後続する命令の実行を停止する命令を備え、前記第ｍ＋ｐのマスタは、前記第ｋのＦＩＦＯ回路が前記第ｍ＋ｐのマスタにとってエンプティの時は、後続する命令の実行を停止する命令を備えているというものである。
【００２７】
本発明中、第１１の発明は、第１０の発明において、前記ｎは２、前記第１〜ｍ＋１のマスタはプロセッサ、前記第ｍ＋２のマスタはＤＭＡコントローラであり、前記第ｍ＋１のマスタは、前記第ｋのＦＩＦＯ回路に格納されているデータについて所定の処理を行い、その処理結果に基づいて、前記第ｋのＦＩＦＯ回路に格納されている前記第ｋのマスタの出力データ又は前記第ｍ＋１のマスタの出力データのうち、いずれの出力データを出力ポートに転送するかのリクエストを行うようにプログラムされるというものである。
【００２８】
【発明の実施の形態】
以下、図１〜図１０を参照して、本発明のＦＩＦＯ回路の第１実施形態〜第８実施形態、並びに、本発明のマルチプロセッサシステムの第１実施形態及び第２実施形態について説明する。
【００２９】
本発明のＦＩＦＯ回路の第１実施形態・・図１
図１は本発明のＦＩＦＯ回路の第１実施形態の概念図である。本発明のＦＩＦＯ回路の第１実施形態は、ＦＩＦＯカウンタの更新を１ワード単位で行うものであり、図１中、１２は１個のライトポートと２個のリードポートとを有するメモリ部、１３−０、１３−１、・・・１３−ｎは、それぞれ、アドレスを０番地、１番地、・・・ｎ番地とするワード格納領域である。
【００３０】
また、１４はライトアクセスするアドレスを指定するライトポインタ、１５、１６はリードアクセスするアドレスを指定するリードポインタであり、ライトポインタ１４はメモリ部１２にライトアクセスできるマスタＭ１４（図示せず）に割り当てられ、リードポインタ１５、１６は、それぞれ、メモリ部１２にリードアクセスできるマスタＭ１５、Ｍ１６（図示せず）に割り当てられる。
【００３１】
また、１７はメモリ部１２がフルとなった時は、ライトポインタが割り当てられたマスタＭ１４にＦＩＦＯフルフラグを出力し、リードポインタ１５が割り当てられたマスタＭ１５にとってメモリ部１２がエンプティとなった時は、リードポインタ１５が割り当てられたマスタＭ１５にＦＩＦＯエンプティフラグＦ１５を出力し、リードポインタ１６が割り当てられたマスタＭ１６にとってメモリ部１２がエンプティとなった時は、リードポインタ１６が割り当てられたマスタＭ１６にＦＩＦＯエンプティフラグＦ１６を出力するＦＩＦＯフル／エンプティフラグ生成部である。
【００３２】
また、１８はメモリ部１２に格納することができる最大ワード数を設定する最大ワード数設定手段をなす最大ワード数設定レジスタ、１９は初期値をゼロとされ、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントアップ要求及びリードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６のうち、同一のデータを後からリードアクセスしているマスタからのカウントダウン要求Ｄ１５又はＤ１６を入力し、カウント値が最大値となった時、即ち、ライトポインタ１４が割り当てられたマスタＭ１４にとってメモリ部１２がフルとなった時は、ライトポインタ１４が割り当てられたマスタＭ１４にＦＩＦＯフルフラグを出力するＦＩＦＯカウンタである。
【００３３】
また、２０は初期値をゼロとされ、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントアップ要求及びリードポインタ１５が割り当てられたマスタＭ１５からのカウントダウン要求Ｄ１５を入力し、カウント値がゼロとなった時、即ち、リードポインタ１５が割り当てられたマスタＭ１５にとってメモリ部１２がエンプティとなった時は、リードポインタ１５が割り当てられたマスタＭ１５にＦＩＦＯエンプティフラグＦ１５を出力するＦＩＦＯカウンタである。
【００３４】
また、２１は初期値をゼロとされ、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントアップ要求及びリードポインタ１６が割り当てられたマスタＭ１６からのカウントダウン要求Ｄ１６を入力し、カウント値がゼロとなった時、即ち、リードポインタ１６が割り当てられたマスタＭ１６にとってメモリ部１２がエンプティとなった時は、リードポインタ１６が割り当てられたマスタＭ１６にＦＩＦＯエンプティフラグＦ１６を出力するＦＩＦＯカウンタである。
【００３５】
このように構成された本発明のＦＩＦＯ回路の第１実施形態においては、ライトポインタ１４が割り当てられたマスタＭ１４によるライトポインタ１４を介したアドレスの指定が、リードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６において同一のデータを利用することができる。
【００３６】
したがって、本発明のＦＩＦＯ回路の第１実施形態によれば、メモリ部１２に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【００３７】
本発明のＦＩＦＯ回路の第２実施形態・・図２
図２は本発明のＦＩＦＯ回路の第２実施形態の概念図であり、本発明のＦＩＦＯ回路の第２実施形態は、図１に示す本発明のＦＩＦＯ回路の第１実施形態が備える１個のライトポートと２個のリードポートとを有するメモリ部１２の代わりに、１個のライトポートと１個のリードポートとを有するメモリ部２３を設けると共に、リードポインタ１５、１６とメモリ部２３との間に、リードポインタ１５が割り当てられたマスタＭ１５によるリードアクセスと、リードポインタ１６が割り当てられたマスタＭ１６によるリードアクセスとを調整するアービタ２４を設け、その他については、本発明のＦＩＦＯ回路の第１実施形態と同様に構成したものである。
【００３８】
このように構成された本発明のＦＩＦＯ回路の第２実施形態においては、メモリ部２３のリードポート数がリードポインタ数よりも少ないが、アービタ２４を備えているので、ライトポインタ１４が割り当てられたマスタＭ１４によるライトポインタ１４を介したアドレスの指定が、リードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６において同一のデータを利用することができる。
【００３９】
したがって、本発明のＦＩＦＯ回路の第２実施形態によれば、メモリ部２３に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【００４０】
なお、本発明のＦＩＦＯ回路の第１実施形態及び第２実施形態においては、ＦＩＦＯカウンタ１９、２０、２１の初期値をゼロとすることを前提としているが、この代わりに、ＦＩＦＯカウンタ１９、２０、２１の初期値を最大ワード数設定レジスタ１８に設定した最大ワード数とすることもできる。
【００４１】
この場合、ＦＩＦＯカウンタ１９は、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントダウン要求及びリードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６のうち、同一のデータを後からリードアクセスしているマスタからのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ１４が割り当てられたマスタＭ１４にとってメモリ部１２又はメモリ部２３がフルとなった時は、ライトポインタ１４が割り当てられたマスタＭ１４にＦＩＦＯフルフラグを出力するように構成する。
【００４２】
また、ＦＩＦＯカウンタ２０は、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントダウン要求及びリードポインタ１５が割り当てられたマスタＭ１５からのカウントアップ要求を入力し、カウント値が最大ワード数となった時、即ち、リードポインタ１５が割り当てられたマスタＭ１５にとってメモリ部１２又はメモリ部２３がエンプティとなった時は、リードポインタ１５が割り当てられたマスタＭ１５にＦＩＦＯエンプティフラグＦ１５を出力するように構成する。
【００４３】
また、ＦＩＦＯカウンタ２１は、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントダウン要求及びリードポインタ１６が割り当てられたマスタＭ１６からのカウントアップ要求を入力し、カウント値が最大ワード数となった時、即ち、リードポインタ１６が割り当てられたマスタＭ１６にとってメモリ部１２又はメモリ部２３がエンプティとなった時は、リードポインタ１６が割り当てられたマスタＭ１６にＦＩＦＯエンプティフラグＦ１６を出力するように構成する。
【００４４】
本発明のＦＩＦＯ回路の第３実施形態・・図３
図３は本発明のＦＩＦＯ回路の第３実施形態の概念図であり、本発明のＦＩＦＯ回路の第３実施形態は、メモリ部１２に対するリードアクセスは、リードポインタ１５が割り当てられたマスタＭ１５が必ず先行することを前提とし、図１に示す本発明のＦＩＦＯ回路の第１実施形態が備えるＦＩＦＯフル／エンプティフラグ生成部１７と構成の異なるＦＩＦＯフル／エンプティフラグ生成部２６を備え、その他については、本発明のＦＩＦＯ回路の第１実施形態と同様に構成したものである。
【００４５】
ＦＩＦＯフル／エンプティフラグ生成部２６は、ＦＩＦＯフル／エンプティフラグ生成部１７が備えるＦＩＦＯカウンタ１９の代わりに、ＦＩＦＯカウンタ２７を備えると共に、ＦＩＦＯフル／エンプティフラグ生成部１７が備えるＦＩＦＯカウンタ２１を備えないようにし、その他については、ＦＩＦＯフル／エンプティフラグ生成部１７と同様に構成したものである。
【００４６】
ＦＩＦＯカウンタ２７は、初期値をゼロとされ、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントアップ要求及びリードポインタ１６が割り当てられたマスタＭ１６からのカウントダウン要求Ｄ１６を入力し、カウント値が最大ワード数となった時、即ち、ライトポインタ１４が割り当てられたマスタＭ１４にとってメモリ部１２がフルとなった時は、ライトポインタ１４が割り当てられたマスタＭ１４にＦＩＦＯフルフラグを出力し、カウント値がゼロとなった時、即ち、リードポインタ１６が割り当てられたマスタＭ１６にとってメモリ部１２がエンプティとなった時は、リードポインタ１６が割り当てられたマスタＭ１６にＦＩＦＯエンプティフラグＦ１６を出力するものである。
【００４７】
このように構成された本発明のＦＩＦＯ回路の第３実施形態においては、ライトポインタ１４が割り当てられたマスタＭ１４によるライトポインタ１４を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されているマスタＭ１６によるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６において同一のデータを利用することができる。
【００４８】
したがって、本発明のＦＩＦＯ回路の第３実施形態によれば、メモリ部１２に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【００４９】
本発明のＦＩＦＯ回路の第４実施形態・・図４
図４は本発明のＦＩＦＯ回路の第４実施形態の概念図であり、本発明のＦＩＦＯ回路の第４実施形態は、図３に示す本発明のＦＩＦＯ回路の第３実施形態が備える１個のライトポートと２個のリードポートとを有するメモリ部１２の代わりに、１個のライトポートと１個のリードポートとを有するメモリ部２３を設けると共に、リードポインタ１５、１６とメモリ部２３との間に、リードポインタ１５が割り当てられたマスタＭ１５によるリードアクセスと、リードポインタ１６が割り当てられたマスタＭ１６によるリードアクセスとを調整するアービタ２４を設け、その他については、本発明のＦＩＦＯ回路の第３実施形態と同様に構成したものである。
【００５０】
このように構成された本発明のＦＩＦＯ回路の第４実施形態においては、メモリ部２３のリードポート数がリードポインタ数よりも少ないが、アービタ２４を備えているので、ライトポインタ１４が割り当てられたマスタＭ１４によるライトポインタ１４を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されているマスタＭ１６によるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ１５、１６が割り当てられたマスタＭ１５、Ｍ１６において同一のデータを利用することができる。
【００５１】
したがって、本発明のＦＩＦＯ回路の第４実施形態によれば、メモリ部２３に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【００５２】
なお、本発明のＦＩＦＯ回路の第３実施形態及び第４実施形態においては、ＦＩＦＯカウンタ２７、２０の初期値をゼロとすることを前提としているが、この代わりに、ＦＩＦＯカウンタ２７、２０の初期値を最大ワード数設定レジスタ１８に設定した最大ワード数とすることもできる。
【００５３】
この場合、ＦＩＦＯカウンタ２７は、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントダウン要求及びリードポインタ１６が割り当てられたマスタＭ１６からのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ１４が割り当てられたマスタＭ１４にとってメモリ部１２又はメモリ部２３がフルとなった時は、ライトポインタ１４が割り当てられたマスタＭ１４にＦＩＦＯフルフラグを出力し、カウント値が最大ワード数となった時、即ち、リードポインタ１６が割り当てられたマスタＭ１６にとってメモリ部１２又はメモリ部２３がエンプティとなった時は、リードポインタ１６が割り当てられたマスタＭ１６にＦＩＦＯエンプティフラグＦ１６を出力するように構成する。
【００５４】
また、ＦＩＦＯカウンタ２０は、ライトポインタ１４が割り当てられたマスタＭ１４からのカウントダウン要求及びリードポインタ１５が割り当てられたマスタＭ１５からのカウントアップ要求を入力し、カウント値が最大ワード数となった時、即ち、リードポインタ１５が割り当てられたマスタＭ１５にとってメモリ部１２又はメモリ部２３がエンプティとなった時は、リードポインタ１５が割り当てられたマスタＭ１５にＦＩＦＯエンプティフラグＦ１５を出力するように構成する。
【００５５】
本発明のＦＩＦＯ回路の第５実施形態・・図５
図５は本発明のＦＩＦＯ回路の第５実施形態の概念図である。本発明のＦＩＦＯ回路の第５実施形態は、ＦＩＦＯカウンタの更新を１パケット単位で行うものであり、図５中、２９は１個のライトポートと２個のリードポートとを有するメモリ部、３０−０、３０−１、・・・３０−ｎはパケット格納領域、３１−０、３１−１、３１−２・・・は、それぞれ、アドレスを０番地、１番地、２番地・・・とするワード格納領域である。
【００５６】
また、３２はライトアクセスするアドレスを指定するライトポインタ、３３、３４はリードアクセスするアドレスを指定するリードポインタであり、ライトポインタ３２はメモリ部２９にライトアクセスできるマスタＭ３２（図示せず）に割り当てられ、リードポインタ３３、３４はそれぞれメモリ部２９をリードアクセスできるマスタＭ３３、Ｍ３４（図示せず）に割り当てられる。
【００５７】
また、３５はメモリ部２９がフルとなった時は、ライトポインタが割り当てられたマスタＭ３２にＦＩＦＯフルフラグを出力し、リードポインタ３３が割り当てられたマスタＭ３３にとってメモリ部２９がエンプティとなった時は、リードポインタ３３が割り当てられたマスタＭ３３にＦＩＦＯエンプティフラグＦ３３を出力し、リードポインタ３４が割り当てられたマスタＭ３４にとってメモリ部２９がエンプティとなった時は、リードポインタ３４が割り当てられたマスタＭ３４にＦＩＦＯエンプティフラグＦ３４を出力するＦＩＦＯフル／エンプティフラグ生成部である。
【００５８】
また、３６はメモリ部２９に格納することができる最大パケット数を設定する最大パケット数設定手段をなす最大パケット数設定レジスタ、３７は初期値をゼロとされ、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントアップ要求及びリードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４のうち、同一のデータを後からリードアクセスしているマスタからのカウントダウン要求Ｄ３３又はＤ３４を入力し、カウント値が最大パケット数となった時、即ち、ライトポインタ３２が割り当てられたマスタＭ３２にとってメモリ部２９がフルとなった時は、ライトポインタ３２が割り当てられたマスタＭ３２にＦＩＦＯフルフラグを出力するＦＩＦＯカウンタである。
【００５９】
また、３８は初期値をゼロとされ、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントアップ要求及びリードポインタ３３が割り当てられたマスタＭ３３からのカウントダウン要求Ｄ３３を入力し、カウント値がゼロとなった時、即ち、リードポインタ３３が割り当てられたマスタＭ３３にとってメモリ部２９がエンプティとなった時は、リードポインタ３３が割り当てられたマスタＭ３３にＦＩＦＯエンプティフラグＦ３３を出力するＦＩＦＯカウンタである。
【００６０】
また、３９は初期値をゼロとされ、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントアップ要求及びリードポインタ３４が割り当てられたマスタＭ３４からのカウントダウン要求Ｄ３４を入力し、カウント値がゼロとなった時、即ち、リードポインタ３４が割り当てられたマスタＭ３４にとってメモリ部２９がエンプティとなった時は、リードポインタ３４が割り当てられたマスタＭ３４にＦＩＦＯエンプティフラグＦ３４を出力するＦＩＦＯカウンタである。
【００６１】
このように構成された本発明のＦＩＦＯ回路の第５実施形態においては、ライトポインタ３２が割り当てられたマスタＭ３２によるライトポインタ３２を介したアドレスの指定が、リードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４において同一のデータを利用することができる。
【００６２】
したがって、本発明のＦＩＦＯ回路の第５実施形態によれば、メモリ部２９に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、ＦＩＦＯ回路の機能を損なうことがないので、自由に行うことができる。
【００６３】
本発明のＦＩＦＯ回路の第６実施形態・・図６
図６は本発明のＦＩＦＯ回路の第６実施形態の概念図であり、本発明のＦＩＦＯ回路の第６実施形態は、図５に示す本発明のＦＩＦＯ回路の第５実施形態が備える１個のライトポートと２個のリードポートとを有するメモリ部２９の代わりに、１個のライトポートと１個のリードポートとを有するメモリ部４１を設けると共に、リードポインタ３３、３４とメモリ部４１との間に、リードポインタ３３が割り当てられたマスタＭ３３によるリードアクセスと、リードポインタ３４が割り当てられたマスタＭ３４によるリードアクセスとを調整するアービタ４２を設け、その他については、本発明のＦＩＦＯ回路の第５実施形態と同様に構成したものである。
【００６４】
このように構成された本発明のＦＩＦＯ回路の第６実施形態においては、メモリ部４１のリードポート数がリードポインタ数よりも少ないが、アービタ４２を備えているので、ライトポインタ３２が割り当てられたマスタＭ３２によるライトポインタ３２を介したアドレスの指定が、リードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４において同一のデータを利用することができる。
【００６５】
したがって、本発明のＦＩＦＯ回路の第６実施形態によれば、メモリ部４１に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、ＦＩＦＯ回路の機能を損なうことがないので、自由に行うことができる。
【００６６】
また、本発明のＦＩＦＯ回路の第５実施形態及び第６実施形態においては、ＦＩＦＯカウンタ３７、３８、３９の初期値をゼロとすることを前提としているが、この代わりに、ＦＩＦＯカウンタ３７、３８、３９の初期値を最大パケット数設定レジスタ３６に設定した最大パケット数とすることもできる。
【００６７】
この場合、ＦＩＦＯカウンタ３７は、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントダウン要求及びリードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４のうち、同一のデータを後からリードアクセスしているマスタからのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ３２が割り当てられたマスタＭ３２にとってメモリ部２９又はメモリ部４１がフルとなった時は、ライトポインタ３２が割り当てられたマスタＭ３２にＦＩＦＯフルフラグを出力するように構成する。
【００６８】
また、ＦＩＦＯカウンタ３８は、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントダウン要求及びリードポインタ３４が割り当てられたマスタＭ３４からのカウントアップ要求を入力し、カウント値が最大パケット数となった時、即ち、リードポインタ３３が割り当てられたマスタＭ３３にとってメモリ部２９又はメモリ部４１がエンプティとなった時は、リードポインタ３３が割り当てられたマスタＭ３３にＦＩＦＯエンプティフラグＦ３３を出力するように構成する。
【００６９】
また、ＦＩＦＯカウンタ３９は、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントダウン要求及びリードポインタ３４が割り当てられたマスタＭ３４からのカウントアップ要求を入力し、カウント値が最大パケット数となった時、即ち、リードポインタ３４が割り当てられたマスタＭ３４にとってメモリ部２９又はメモリ部４１がエンプティとなった時は、リードポインタ３４が割り当てられたマスタＭ３４にＦＩＦＯエンプティフラグＦ３４を出力するように構成する。
【００７０】
本発明のＦＩＦＯ回路の第７実施形態・・図７
図７は本発明のＦＩＦＯ回路の第７実施形態の概念図であり、本発明のＦＩＦＯ回路の第７実施形態は、メモリ部２９に対するリードアクセスは、リードポインタ３３が割り当てられたマスタＭ３３が必ず先行することを前提とし、図５に示す本発明のＦＩＦＯ回路の第５実施形態が備えるＦＩＦＯフル／エンプティフラグ生成部３５と構成の異なるＦＩＦＯフル／エンプティフラグ生成部４４を備え、その他については、本発明のＦＩＦＯ回路の第５実施形態と同様に構成したものである。
【００７１】
ＦＩＦＯフル／エンプティフラグ生成部４４は、ＦＩＦＯフル／エンプティフラグ生成部３５が備えるＦＩＦＯカウンタ３７の代わりに、ＦＩＦＯカウンタ４５を備えると共に、ＦＩＦＯフル／エンプティフラグ生成部３５が備えるＦＩＦＯカウンタ３９を備えないようにし、その他については、ＦＩＦＯフル／エンプティフラグ生成部３５と同様に構成したものである。
【００７２】
ＦＩＦＯカウンタ４５は、初期値をゼロとされ、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントアップ要求及びリードポインタ３４が割り当てられたマスタＭ３４からのカウントダウン要求Ｄ３４を入力し、カウント値が最大パケット数となった時、即ち、ライトポインタ３２が割り当てられたマスタＭ３２にとってメモリ部２９がフルとなった時は、ライトポインタ３２が割り当てられたマスタＭ３２にＦＩＦＯフルフラグを出力し、カウント値がゼロとなった時、即ち、リードポインタ３４が割り当てられたマスタＭ３４にとってメモリ部２９がエンプティとなった時は、リードポインタ３４が割り当てられたマスタＭ３４にＦＩＦＯエンプティフラグＦ３４を出力するものである。
【００７３】
このように構成された本発明のＦＩＦＯ回路の第７実施形態においては、ライトポインタ３２が割り当てられたマスタＭ３２によるライトポインタ３２を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されているマスタＭ３４によるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４において同一のデータを利用することができる。
【００７４】
したがって、本発明のＦＩＦＯ回路の第７実施形態によれば、メモリ部２９に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、ＦＩＦＯ回路の機能を損なうことがないので、自由に行うことができる。
【００７５】
本発明のＦＩＦＯ回路の第８実施形態・・図８
図８は本発明のＦＩＦＯ回路の第８実施形態の概念図であり、本発明のＦＩＦＯ回路の第８実施形態は、図７に示す本発明のＦＩＦＯ回路の第７実施形態が備える１個のライトポートと２個のリードポートとを有するメモリ部２９の代わりに、１個のライトポートと１個のリードポートとを有するメモリ部４１を設けると共に、リードポインタ３３、３４とメモリ部４１との間に、リードポインタ３３が割り当てられたマスタＭ３３によるリードアクセスと、リードポインタ３４が割り当てられたマスタＭ３４によるリードアクセスを調整するアービタ４２を設け、その他については、本発明のＦＩＦＯ回路の第７実施形態と同様に構成したものである。
【００７６】
このように構成された本発明のＦＩＦＯ回路の第８実施形態においては、メモリ部４１のリードポート数がリードポインタ数よりも少ないが、アービタ４２を備えているので、ライトポインタ３２が割り当てられたマスタＭ３２によるライトポインタ３２を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されたマスタＭ３４によるリードポインタ３４を介したアドレスの指定を追い越さないように制御する場合には、リードポインタ３３、３４が割り当てられたマスタＭ３３、Ｍ３４において同一のデータを利用することができる。
【００７７】
したがって、本発明のＦＩＦＯ回路の第８実施形態によれば、メモリ部４１に入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、ＦＩＦＯ回路の機能を損なうことがないので、自由に行うことができる。
【００７８】
また、本発明のＦＩＦＯ回路の第７実施形態及び第８実施形態においては、ＦＩＦＯカウンタ４５、３８の初期値をゼロとすることを前提としているが、この代わりに、ＦＩＦＯカウンタ４５、３８の初期値を最大パケット数設定レジスタ３６に設定した最大パケット数とすることもできる。
【００７９】
この場合、ＦＩＦＯカウンタ４５は、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントダウン要求及びリードポインタ３４が割り当てられたマスタＭ３４からのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ３２が割り当てられたマスタＭ３２にとってメモリ部２９又はメモリ部４１がフルとなった時は、ライトポインタ３２が割り当てられたマスタＭ３２にＦＩＦＯフルフラグを出力し、カウント値が最大パケット数となった時、即ち、リードポインタ３４が割り当てられたマスタＭ３４にとってメモリ部２９又はメモリ部４１がエンプティとなった時は、リードポインタ３４が割り当てられたマスタＭ３４にＦＩＦＯエンプティフラグＦ３４を出力するように構成する。
【００８０】
また、ＦＩＦＯカウンタ３８は、ライトポインタ３２が割り当てられたマスタＭ３２からのカウントダウン要求及びリードポインタ３３が割り当てられたマスタＭ３３からのカウントアップ要求を入力し、カウント値が最大パケット数となった時、即ち、リードポインタ３３が割り当てられたマスタＭ３３にとってメモリ部２９又はメモリ部４１がエンプティとなった時は、リードポインタ３３が割り当てられたマスタＭ３３にＦＩＦＯエンプティフラグＦ３３を出力するように構成する。
【００８１】
また、本発明の第１実施形態〜第８実施形態においては、２個のリードポインタを設けるようにした場合について説明したが、この代わりに、３個以上のリードポインタを設けるようにしても良い。
【００８２】
本発明のマルチプロセッサシステムの第１実施形態・・図９
図９は本発明のマルチプロセッサシステムの第１実施形態の要部を示すブロック回路図である。図９中、４７−１、４７−ｍはプロセッサであり、プロセッサ４７−１、４７−ｍの間に存在するプロセッサ４７−２〜４７−（ｍ−１）は図示を省略している。これらプロセッサ４７−１〜４７−ｍは、命令の並列実行を行うものである。
【００８３】
また、４８−１、４８−ｍは、それぞれ、プロセッサ４７−１、４７−ｍの出力データが格納されるＦＩＦＯ回路であり、プロセッサ４７−２〜４７−（ｍ−１）の出力データを格納するＦＩＦＯ回路４８−２〜４８−（ｍ−１）は図示を省略している。
【００８４】
なお、本発明のマルチプロセッサシステムの第１実施形態においては、ＦＩＦＯ回路４８−１〜４８−ｍとして、本発明のＦＩＦＯ回路の第１実施形態、第３実施形態、第５実施形態又は第７実施形態が使用される。
【００８５】
また、４９−１、４９−２はＦＩＦＯ回路４８−１〜４８−ｍに格納されたプロセッサ４７−１〜４７−ｍの出力データについて所定の処理を行うプロセッサである。
【００８６】
また、５０−１、５０−ｍはプロセッサ４９−１、４９−２から出力されるアドレス Address_11、Address_12を選択してＦＩＦＯ回路４８−１、４８−ｍに出力するセレクタ、５１−１、５１−２はＦＩＦＯ回路４８−１〜４８−ｍの出力を選択してプロセッサ４９−１、４９−２に出力するセレクタである。
【００８７】
また、Write_1、Address_1、Data_1はプロセッサ４７−１からＦＩＦＯ回路４８−１に与えられるライト制御信号、アドレス、データであり、FIFO Full_1はＦＩＦＯ回路４８−１からプロセッサ４７−１に出力されるＦＩＦＯフルフラグである。
【００８８】
また、Read_11はプロセッサ４９−１からＦＩＦＯ回路４８−１に与えられるリード制御信号、FIFO Empty_11はＦＩＦＯ回路４８−１からプロセッサ４９−１に出力されるＦＩＦＯエンプティフラグである。
【００８９】
また、Read_12はプロセッサ４９−２からＦＩＦＯ回路４８−１に与えられるリード制御信号、FIFO Empty_12はＦＩＦＯ回路４８−１からプロセッサ４９−２に出力されるＦＩＦＯエンプティフラグである。
【００９０】
また、Write_m、Adress_m、Data_mはプロセッサ４７−ｍからＦＩＦＯ回路４８−ｍに与えられるライト制御信号、アドレス、データであり、FIFO Full_mはＦＩＦＯ回路４８−ｍからプロセッサ４７−ｍに出力されるＦＩＦＯフルフラグである。
【００９１】
また、Read_m1はプロセッサ４９−１からＦＩＦＯ回路４８−ｍに与えられるリード制御信号であり、FIFO Empty_m1はＦＩＦＯ回路４８−ｍからプロセッサ４９−１に出力されるＦＩＦＯエンプティフラグである。
【００９２】
また、Read_m2はプロセッサ４９−２からＦＩＦＯ回路４８−ｍに与えられるリード制御信号であり、FIFO Empty_m2はＦＩＦＯ回路４８−ｍからプロセッサ４９−２に出力されるＦＩＦＯエンプティフラグである。
【００９３】
なお、プロセッサ４７−ｋ（但し、ｋ＝１〜ｍ）は、ＦＩＦＯ回路４８−ｋからＦＩＦＯフルフラグFIFO Full_kが出力されている場合には、後続する命令の実行を停止する命令を備えている。
【００９４】
また、プロセッサ４９−１、４９−２は、ＦＩＦＯ回路４８−ｋ（ｋ＝１、２、・・・ｍ）からＦＩＦＯエンプティフラグが出力されている場合には、後続する命令の実行を停止する命令を備えている。
【００９５】
このように構成された本発明のマルチプロセッサシステムの第１実施形態においては、たとえば、プロセッサ４７−１は、ＦＩＦＯ回路４８−１からＦＩＦＯフルフラグFIFO Full_1が出力されていない場合には、命令を実行して、ライト制御信号Write_1、アドレスAddress_1及び出力データData_1をＦＩＦＯ回路４８−１に転送する。
【００９６】
そして、ＦＩＦＯ回路４８−１がフルとなった時は、ＦＩＦＯ回路４８−１からプロセッサ４７−１にＦＩＦＯフルフラグFIFO Full_1が出力され、この場合には、プロセッサ４７−１は、後続する命令の実行を停止し、ＦＩＦＯフルフラグFIFO Full_1の解除を待つことになる。
【００９７】
また、プロセッサ４９−１は、ＦＩＦＯ回路４８−１からＦＩＦＯエンプティフラグFIFO Empty_11が出力されていない場合において、ＦＩＦＯ回路４８−１に格納されたプロセッサ４７−１の出力データを利用する場合には、リード制御信号Read_11及びアドレスAddress_11をＦＩＦＯ回路４８−１に転送し、ＦＩＦＯ回路４８−１からデータをリードする。
【００９８】
そして、ＦＩＦＯ回路４８−１がエンプティとなった時は、ＦＩＦＯ回路４８−１からプロセッサ４9−１にＦＩＦＯエンプティフラグFIFO Empty_11が出力され、この場合には、プロセッサ４９−１は、後続する命令の実行を停止し、ＦＩＦＯエンプティフラグ FIFO Empty_11 の解除を待つことになる。
【００９９】
他方、プロセッサ４９−２は、ＦＩＦＯ回路４８−１に格納されているプロセッサ４９−１が利用したプロセッサ４７−１の出力データを再利用する場合には、リード制御信号Read_12及びアドレスAddress_12をＦＩＦＯ回路４８−１に転送し、ＦＩＦＯ回路４８−１からデータをリードする。
【０１００】
そして、ＦＩＦＯ回路４８−１がエンプティとなった時は、ＦＩＦＯ回路４８−１からプロセッサ４9−2にＦＩＦＯエンプティフラグFIFO Empty_12が出力され、この場合には、プロセッサ４９−２は、後続する命令の実行を停止し、ＦＩＦＯエンプティフラグ FIFO Empty_12の解除を待つことになる。
【０１０１】
なお、プロセッサ４９−２がＦＩＦＯ回路４８−１からのリードを先行して行う場合にも、ＦＩＦＯ回路４８−１に格納されたプロセッサ４７−１の出力データのプロセッサ４９−１による再利用は可能であり、以上のことは、他のＦＩＦＯ回路４８−２〜４８−ｍとの関係においても同様である。
【０１０２】
このように、本発明のマルチプロセッサシステムの第１実施形態によれば、ＦＩＦＯ回路４８−１〜４８−ｍとして、本発明のＦＩＦＯ回路の第１実施形態、第３実施形態、第５実施形態又は第７実施形態を使用するとしたことにより、ＦＩＦＯ回路４８−１〜４８−ｍのそれぞれに格納されたデータをプロセッサ４９−１、４９−２で利用することができるので、同一のデータをプロセッサ４９−１、４９−２で使用する必要がある場合においても、共有メモリを備える必要がなく、その結果、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【０１０３】
本発明のマルチプロセッサシステムの第２実施形態・・図１０
図１０は本発明のマルチプロセッサシステムの第２実施形態の要部を示すブロック回路図であり、本発明のマルチプロセッサシステムの第２実施形態は、本発明のマルチプロセッサシステムの第１実施形態が備えるプロセッサ４９−２及びセレクタ５１−２の代わりに、ＤＭＡコントローラ５３及びセレクタ５４を設け、その他については、本発明のマルチプロセッサシステムの第１実施形態と同様に構成したものである。
【０１０４】
なお、セレクタ５４は、ＦＩＦＯ回路４８−１〜４８−ｍ及びプロセッサ４９−１のデータ出力端子のうち、ＤＭＡコントローラ５３が指示するデータ出力端子を選択するためのものである。
【０１０５】
また、RequestはＦＩＦＯ回路４８−１〜４８−ｍが格納するプロセッサ４７−１〜４７−ｍの出力データ及びプロセッサ４９−１の出力データのうち、いずれの出力データを出力ポートに転送するかをリクエストするリクエスト信号であり、Acknowledgeはリクエスト信号Requestを認識した旨のアクノリッジ信号である。
【０１０６】
なお、本発明のマルチプロセッサシステムにおいては、ＦＩＦＯ回路４８−１〜４８−ｍとして、本発明のＦＩＦＯ回路の第２実施形態、第４実施形態、第６実施形態又は第８実施形態が使用される。
【０１０７】
このように構成された本発明のマルチプロセッサシステムにおいては、プロセッサ４９−１は、ＦＩＦＯ回路４８−ｋに格納されたプロセッサ４７−ｋの出力データについて所定の処理を行い、その処理結果に基づいて、ＤＭＡコントローラ５３に対して、ＦＩＦＯ回路４８−ｋに格納されているプロセッサ４７−ｋの出力データ及びプロセッサ４９−１の出力データのうち、いずれの出力データを出力ポートに転送するかをＤＭＡコントローラ５３にリクエストし、ＤＭＡコントローラ５３は、プロセッサ４９−１がリクエストした出力データを出力ポートに転送することになる。
【０１０８】
このように、本発明のマルチプロセッサシステムの第２実施形態によれば、ＦＩＦＯ回路４８−１〜４８−ｍとして、本発明のＦＩＦＯ回路の第２実施形態、第４実施形態、第６実施形態又は第８実施形態を使用するとしたことにより、プロセッサ４９−１で使用されたプロセッサ４７−１〜４７−ｍの出力データをＤＭＡコントローラ５３が再利用する必要がある場合においても、共有メモリを備える必要がないので、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【０１０９】
【発明の効果】
以上のように、本発明のＦＩＦＯ回路によれば、複数のリードポインタを備えるとしたことにより、入力したデータの順に出力するというＦＩＦＯ回路の機能を損なわずに、格納されたデータの再利用を図ることができる。
【０１１０】
また、本発明のマルチプロセッサシステムによれば、本発明のＦＩＦＯ回路を備えるとしたことにより、ＦＩＦＯ回路に格納された同一データを複数のマスタで使用することができるので、同一のデータを複数のマスタで使用する必要がある場合においても、共有メモリを設ける必要がなく、この結果、データの転送の高速化を図り、データ処理の高速化を図ることができる。
【図面の簡単な説明】
【図１】  本発明のＦＩＦＯ回路の第１実施形態の概念図である。
【図２】  本発明のＦＩＦＯ回路の第２実施形態の概念図である。
【図３】  本発明のＦＩＦＯ回路の第３実施形態の概念図である。
【図４】  本発明のＦＩＦＯ回路の第４実施形態の概念図である。
【図５】  本発明のＦＩＦＯ回路の第５実施形態の概念図である。
【図６】  本発明のＦＩＦＯ回路の第６実施形態の概念図である。
【図７】  本発明のＦＩＦＯ回路の第７実施形態の概念図である。
【図８】  本発明のＦＩＦＯ回路の第８実施形態の概念図である。
【図９】  本発明のマルチプロセッサシステムの第１実施形態の要部を示すブロック回路図である。
【図１０】  本発明のマルチプロセッサシステムの第２実施形態の要部を示すブロック回路図である。
【図１１】  従来のＦＩＦＯ回路の一例の概念図である。
【図１２】  従来のＦＩＦＯ回路の他の例の概念図である。
【符号の説明】
（図１〜図４）
１３−０、１３−１、１３−２、１３−ｎ  ワード格納領域
（図５〜図８）
３０−０、３０−１  パケット格納領域
３１−０、３１−１、３１−２  ワード格納領域
【図１】
0004292598.tif 000002
【図２】
0004292598.tif 000003
【図３】
0004292598.tif 000004
【図４】
0004292598.tif 000005
【図５】
0004292598.tif 000006
【図６】
0004292598.tif 000007
【図７】
0004292598.tif 000008
【図８】
0004292598.tif 000009
【図９】
0004292598.tif 000010
【図１０】
0004292598.tif 000011
【図１１】
0004292598.tif 000012
【図１２】
0004292598.tif 000013