JP4292598B2 - Fifo回路及びマルチプロセッサシステム - Google Patents
Fifo回路及びマルチプロセッサシステム Download PDFInfo
- Publication number
- JP4292598B2 JP4292598B2 JP24079298A JP24079298A JP4292598B2 JP 4292598 B2 JP4292598 B2 JP 4292598B2 JP 24079298 A JP24079298 A JP 24079298A JP 24079298 A JP24079298 A JP 24079298A JP 4292598 B2 JP4292598 B2 JP 4292598B2
- Authority
- JP
- Japan
- Prior art keywords
- master
- fifo
- count
- assigned
- request
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、ライトアクセスするアドレスを指定するライトポインタと、リードアクセスするアドレスを指定するリードポインタとを含めて構成されるFIFO(First In First Out)回路、及び、マルチプロセッサシステムに関する。
【0002】
マルチプロセッサシステムにおいては、各プロセッサ間のデータ受け渡し手段としてFIFO回路が良く使用されるが、FIFO回路の利点は、データの受け渡しが順番通りに行われるというルールから、FIFO回路内の状態、つまり、フル(満杯)又はエンプティ(空)の状態のみの情報でデータのライト/リードの同期取りが可能な点にある。
【0003】
また、各プロセッサ間で受け渡されるデータが入力データとして利用された後、再利用されないようなケースでは、データを順次転送するだけでよく、FIFO回路が使用されることが多い。その反面、受け渡されるデータが再利用されるようなケースでは、データを一時的にしか保持することができないFIFO回路ではなく、共有メモリが使用されることになる。
【0004】
しかし、共有メモリ形式のシステムにおいては、プロセッサのアクセス競合が発生すると、自身のデータ転送とは無関係な場合であっても、データ転送を待たされるケースもあり、ポイント・ツー・ポイントのFIFO形式のシステムに比べ性能が劣化するという問題をはらんでいる。そこで、従来のFIFO形式と共有メモリ形式の中間的なデータ受け渡し手段が求められる。
【0005】
【従来の技術】
図11は従来のFIFO回路の一例の概念図であり、図11中、1はシフトレジスタ、2−0、2−1、・・・2−nはそれぞれ初段目、2段目、・・・最終段目のレジスタである。
【0006】
図11に示す従来のFIFO回路においては、順に与えられるデータD0、D1、D2・・・は、レジスタ2−0に順に入力され、レジスタ2−0からレジスタ2−nに向かって順にシフトされ、入力された順に出力されることになる。
【0007】
図12は従来のFIFO回路の他の例の概念図であり、図12中、4はデータが格納されるメモリ部、5−0、5−1、・・・5−nはアドレス(ADD)を0番地、1番地、・・・n番地とするワード格納領域である。
【0008】
また、6はライトアクセスするアドレスを指定するライトポインタ、7はリードアクセスするアドレスを指定するリードポインタであり、ライトポインタ6はメモリ部4にライトアクセスできるマスタに割り当てられ、リードポインタ7はメモリ部4にリードアクセスできるマスタに割り当てられる。
【0009】
また、8はメモリ部4がフルとなった時は、ライトポインタ6が割り当てられたマスタにFIFOフルフラグを出力し、メモリ部4がエンプティとなった時は、リードポインタ7が割り当てられたマスタにFIFOエンプティフラグを出力するFIFOフル/エンプティフラグ生成部である。
【0010】
また、9はメモリ部4に格納することができる最大のワード数を設定する最大ワード数設定レジスタ、10はライトポインタ6が割り当てられたマスタからのカウントアップ要求及びリードポインタ7が割り当てられたマスタからのカウントダウン要求を入力し、カウント値が最大ワード数となった時は、ライトポインタ6が割り当てられたマスタにFIFOフルフラグを出力し、カウント値がゼロとなった時は、リードポインタ7が割り当てられたマスタにFIFOエンプティフラグを出力するFIFOカウンタである。
【0011】
図12に示す従来のFIFO回路においては、ライトポインタ6は、アドレス0、1、・・・nを順に指定し、リードポインタ7は、ライトポインタ6に遅れてアドレス0、1、・・・nを順に指定することになる。この結果、順に与えられるデータD0、D1、D2・・・は、ライトポインタ6が順に指定するアドレス0、1、・・・nに順に格納され、格納されたデータD0、D1、D2・・・は、リードポインタ7が順に指定するアドレス0、1、・・・nから順にリードされることになる。
【0012】
【発明が解決しようとする課題】
ここに、FIFO回路に格納されたデータD0、D1、D2・・・の再利用を考えた場合、図11に示す従来のFIFO回路においては、データが常に上書きされるため、データの再利用は不可能であるが、図12に示す従来のFIFO回路の場合には、ライトポインタがアドレスを一巡して上書きされるまで、データが保存されているので、再利用の道を残している。
【0013】
しかし、図12に示す従来のFIFO回路は、データのライト/リードをライトポインタ、リードポインタ及びFIFOカウンタの各1個で管理する構成とされているため、このままでは、格納されたデータの再利用を行うことができないという問題点があった。
【0014】
本発明は、かかる点に鑑み、入力したデータの順に出力するというFIFO回路の機能を損なうことなく、格納したデータの再利用を容易に行うことができるようにしたFIFO回路を提供することを第1の目的とし、データ処理の高速化を図ることができるようにしたマルチプロセッサシステムを提供することを第2の目的とする。
【0015】
【課題を解決するための手段】
本発明中、第1の発明は、FIFO回路の発明であり、メモリ部と、第1のマスタに割り当てられるライトポインタと、第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、前記第2〜第n+1のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第1のマスタにFIFOフルフラグを出力する第1のFIFOカウンタと、初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、第i(但し、i=2〜n+1)のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第iのマスタに第i−1のFIFOエンプティフラグを出力する第iのFIFOカウンタとを備えているというものである。
【0016】
本発明中、第2の発明は、FIFO回路の発明であり、メモリ部と、第1のマスタに割り当てられるライトポインタと、第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第n+1のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第1のマスタにFIFOフルフラグを出力し、カウント値がゼロとなった時は、前記第n+1のマスタに第nのFIFOエンプティフラグを出力する第1のFIFOカウンタと、初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、第j(但し、j=2〜n)のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第jのマスタに第j−1のFIFOエンプティフラグを出力する第jのFIFOカウンタとを備えているというものである。
【0017】
本発明中、第3の発明は、FIFO回路の発明であり、メモリ部と、第1のマスタに割り当てられるライトポインタと、第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、前記第2〜第n+1のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第1のマスタにFIFOフルフラグを出力する第1のFIFOカウンタと、初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、第i(但し、i=2〜n+1)のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第iのマスタに第i−1のFIFOエンプティフラグを出力する第iのFIFOカウンタとを備えているというものである。
【0018】
本発明中、第4の発明は、FIFO回路の発明であり、メモリ部と、第1のマスタに割り当てられるライトポインタと、第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第n+1のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第1のマスタにFIFOフルフラグを出力し、カウント値が最大値となった時は、前記第n+1のマスタに第nのFIFOエンプティフラグを出力する第1のFIFOカウンタと、初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、第j(但し、j=2〜n)のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第jのマスタに第j−1のFIFOエンプティフラグを出力する第jのFIFOカウンタとを備えているというものである。
【0019】
本発明中、第5の発明は、第1〜第4の発明のいずれか一の発明において、前記カウントアップ要求及び前記カウントダウン要求をワード単位で行うマスタに使用されるものであり、前記メモリ部に格納することができる最大ワード数を設定する最大ワード数設定手段を有し、前記最大値は、前記最大ワード数設定手段に設定された最大ワード数とされるというものである。
【0020】
本発明中、第6の発明は、第1〜第4の発明のいずれか一の発明において、前記カウントアップ要求及び前記カウントダウン要求をパケット単位で行うマスタに使用されるものであり、前記メモリ部に格納することができる最大パケット数を設定する最大パケット数設定手段を有し、前記最大値は、前記最大パケット数設定手段に設定した最大パケット数とされるというものである。
【0021】
本発明中、第7の発明は、第1〜第6の発明のいずれか一の発明において、前記メモリ部のリードポートの数が前記nよりも少なく、前記第2〜第n+1のマスタの前記メモリ部に対するリードアクセスを調整するアービタを備えているというものである。
【0022】
本発明のFIFO回路においては、前記第1のマスタによるライトポインタを介したアドレスの指定が、前記第2〜第n+1のマスタのうち、リードアクセスを最後に行っているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、前記第2〜第n+1のマスタにおいて同一のデータを利用することができる。したがって、入力したデータの順に出力するというFIFO回路の機能を損なわずに、格納したデータの再利用を図ることができる。
【0023】
本発明中、第8の発明は、マルチプロセッサシステムの発明であり、第1〜第7の発明のいずれか一の発明のFIFO回路を備えているというものである。
【0024】
本発明中、第8の発明のマルチプロセッサシステムにおいては、FIFO回路に格納された同一データを複数のマスタで使用することができるので、共有メモリを設ける必要がない。したがって、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【0025】
本発明中、第9の発明は、第8の発明において、前記FIFO回路として、第1〜第m(但し、mは2以上の整数)のFIFO回路を備えると共に、第1〜第m+n(但し、nは2以上の整数)のマスタを備え、第k(但し、k=1〜m)のマスタは、第kのFIFO回路のライトポインタが割り当てられ、第m+p(但し、p=1〜n)のマスタは、前記第1〜第mのFIFO回路の第pのリードポインタが割り当てられているというものである。
【0026】
本発明中、第10の発明は、第9の発明において、前記第kのマスタは、前記第kのFIFO回路がフルの時は、後続する命令の実行を停止する命令を備え、前記第m+pのマスタは、前記第kのFIFO回路が前記第m+pのマスタにとってエンプティの時は、後続する命令の実行を停止する命令を備えているというものである。
【0027】
本発明中、第11の発明は、第10の発明において、前記nは2、前記第1〜m+1のマスタはプロセッサ、前記第m+2のマスタはDMAコントローラであり、前記第m+1のマスタは、前記第kのFIFO回路に格納されているデータについて所定の処理を行い、その処理結果に基づいて、前記第kのFIFO回路に格納されている前記第kのマスタの出力データ又は前記第m+1のマスタの出力データのうち、いずれの出力データを出力ポートに転送するかのリクエストを行うようにプログラムされるというものである。
【0028】
【発明の実施の形態】
以下、図1〜図10を参照して、本発明のFIFO回路の第1実施形態〜第8実施形態、並びに、本発明のマルチプロセッサシステムの第1実施形態及び第2実施形態について説明する。
【0029】
本発明のFIFO回路の第1実施形態・・図1
図1は本発明のFIFO回路の第1実施形態の概念図である。本発明のFIFO回路の第1実施形態は、FIFOカウンタの更新を1ワード単位で行うものであり、図1中、12は1個のライトポートと2個のリードポートとを有するメモリ部、13−0、13−1、・・・13−nは、それぞれ、アドレスを0番地、1番地、・・・n番地とするワード格納領域である。
【0030】
また、14はライトアクセスするアドレスを指定するライトポインタ、15、16はリードアクセスするアドレスを指定するリードポインタであり、ライトポインタ14はメモリ部12にライトアクセスできるマスタM14(図示せず)に割り当てられ、リードポインタ15、16は、それぞれ、メモリ部12にリードアクセスできるマスタM15、M16(図示せず)に割り当てられる。
【0031】
また、17はメモリ部12がフルとなった時は、ライトポインタが割り当てられたマスタM14にFIFOフルフラグを出力し、リードポインタ15が割り当てられたマスタM15にとってメモリ部12がエンプティとなった時は、リードポインタ15が割り当てられたマスタM15にFIFOエンプティフラグF15を出力し、リードポインタ16が割り当てられたマスタM16にとってメモリ部12がエンプティとなった時は、リードポインタ16が割り当てられたマスタM16にFIFOエンプティフラグF16を出力するFIFOフル/エンプティフラグ生成部である。
【0032】
また、18はメモリ部12に格納することができる最大ワード数を設定する最大ワード数設定手段をなす最大ワード数設定レジスタ、19は初期値をゼロとされ、ライトポインタ14が割り当てられたマスタM14からのカウントアップ要求及びリードポインタ15、16が割り当てられたマスタM15、M16のうち、同一のデータを後からリードアクセスしているマスタからのカウントダウン要求D15又はD16を入力し、カウント値が最大値となった時、即ち、ライトポインタ14が割り当てられたマスタM14にとってメモリ部12がフルとなった時は、ライトポインタ14が割り当てられたマスタM14にFIFOフルフラグを出力するFIFOカウンタである。
【0033】
また、20は初期値をゼロとされ、ライトポインタ14が割り当てられたマスタM14からのカウントアップ要求及びリードポインタ15が割り当てられたマスタM15からのカウントダウン要求D15を入力し、カウント値がゼロとなった時、即ち、リードポインタ15が割り当てられたマスタM15にとってメモリ部12がエンプティとなった時は、リードポインタ15が割り当てられたマスタM15にFIFOエンプティフラグF15を出力するFIFOカウンタである。
【0034】
また、21は初期値をゼロとされ、ライトポインタ14が割り当てられたマスタM14からのカウントアップ要求及びリードポインタ16が割り当てられたマスタM16からのカウントダウン要求D16を入力し、カウント値がゼロとなった時、即ち、リードポインタ16が割り当てられたマスタM16にとってメモリ部12がエンプティとなった時は、リードポインタ16が割り当てられたマスタM16にFIFOエンプティフラグF16を出力するFIFOカウンタである。
【0035】
このように構成された本発明のFIFO回路の第1実施形態においては、ライトポインタ14が割り当てられたマスタM14によるライトポインタ14を介したアドレスの指定が、リードポインタ15、16が割り当てられたマスタM15、M16のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ15、16が割り当てられたマスタM15、M16において同一のデータを利用することができる。
【0036】
したがって、本発明のFIFO回路の第1実施形態によれば、メモリ部12に入力したデータの順に出力するというFIFO回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【0037】
本発明のFIFO回路の第2実施形態・・図2
図2は本発明のFIFO回路の第2実施形態の概念図であり、本発明のFIFO回路の第2実施形態は、図1に示す本発明のFIFO回路の第1実施形態が備える1個のライトポートと2個のリードポートとを有するメモリ部12の代わりに、1個のライトポートと1個のリードポートとを有するメモリ部23を設けると共に、リードポインタ15、16とメモリ部23との間に、リードポインタ15が割り当てられたマスタM15によるリードアクセスと、リードポインタ16が割り当てられたマスタM16によるリードアクセスとを調整するアービタ24を設け、その他については、本発明のFIFO回路の第1実施形態と同様に構成したものである。
【0038】
このように構成された本発明のFIFO回路の第2実施形態においては、メモリ部23のリードポート数がリードポインタ数よりも少ないが、アービタ24を備えているので、ライトポインタ14が割り当てられたマスタM14によるライトポインタ14を介したアドレスの指定が、リードポインタ15、16が割り当てられたマスタM15、M16のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ15、16が割り当てられたマスタM15、M16において同一のデータを利用することができる。
【0039】
したがって、本発明のFIFO回路の第2実施形態によれば、メモリ部23に入力したデータの順に出力するというFIFO回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【0040】
なお、本発明のFIFO回路の第1実施形態及び第2実施形態においては、FIFOカウンタ19、20、21の初期値をゼロとすることを前提としているが、この代わりに、FIFOカウンタ19、20、21の初期値を最大ワード数設定レジスタ18に設定した最大ワード数とすることもできる。
【0041】
この場合、FIFOカウンタ19は、ライトポインタ14が割り当てられたマスタM14からのカウントダウン要求及びリードポインタ15、16が割り当てられたマスタM15、M16のうち、同一のデータを後からリードアクセスしているマスタからのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ14が割り当てられたマスタM14にとってメモリ部12又はメモリ部23がフルとなった時は、ライトポインタ14が割り当てられたマスタM14にFIFOフルフラグを出力するように構成する。
【0042】
また、FIFOカウンタ20は、ライトポインタ14が割り当てられたマスタM14からのカウントダウン要求及びリードポインタ15が割り当てられたマスタM15からのカウントアップ要求を入力し、カウント値が最大ワード数となった時、即ち、リードポインタ15が割り当てられたマスタM15にとってメモリ部12又はメモリ部23がエンプティとなった時は、リードポインタ15が割り当てられたマスタM15にFIFOエンプティフラグF15を出力するように構成する。
【0043】
また、FIFOカウンタ21は、ライトポインタ14が割り当てられたマスタM14からのカウントダウン要求及びリードポインタ16が割り当てられたマスタM16からのカウントアップ要求を入力し、カウント値が最大ワード数となった時、即ち、リードポインタ16が割り当てられたマスタM16にとってメモリ部12又はメモリ部23がエンプティとなった時は、リードポインタ16が割り当てられたマスタM16にFIFOエンプティフラグF16を出力するように構成する。
【0044】
本発明のFIFO回路の第3実施形態・・図3
図3は本発明のFIFO回路の第3実施形態の概念図であり、本発明のFIFO回路の第3実施形態は、メモリ部12に対するリードアクセスは、リードポインタ15が割り当てられたマスタM15が必ず先行することを前提とし、図1に示す本発明のFIFO回路の第1実施形態が備えるFIFOフル/エンプティフラグ生成部17と構成の異なるFIFOフル/エンプティフラグ生成部26を備え、その他については、本発明のFIFO回路の第1実施形態と同様に構成したものである。
【0045】
FIFOフル/エンプティフラグ生成部26は、FIFOフル/エンプティフラグ生成部17が備えるFIFOカウンタ19の代わりに、FIFOカウンタ27を備えると共に、FIFOフル/エンプティフラグ生成部17が備えるFIFOカウンタ21を備えないようにし、その他については、FIFOフル/エンプティフラグ生成部17と同様に構成したものである。
【0046】
FIFOカウンタ27は、初期値をゼロとされ、ライトポインタ14が割り当てられたマスタM14からのカウントアップ要求及びリードポインタ16が割り当てられたマスタM16からのカウントダウン要求D16を入力し、カウント値が最大ワード数となった時、即ち、ライトポインタ14が割り当てられたマスタM14にとってメモリ部12がフルとなった時は、ライトポインタ14が割り当てられたマスタM14にFIFOフルフラグを出力し、カウント値がゼロとなった時、即ち、リードポインタ16が割り当てられたマスタM16にとってメモリ部12がエンプティとなった時は、リードポインタ16が割り当てられたマスタM16にFIFOエンプティフラグF16を出力するものである。
【0047】
このように構成された本発明のFIFO回路の第3実施形態においては、ライトポインタ14が割り当てられたマスタM14によるライトポインタ14を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されているマスタM16によるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ15、16が割り当てられたマスタM15、M16において同一のデータを利用することができる。
【0048】
したがって、本発明のFIFO回路の第3実施形態によれば、メモリ部12に入力したデータの順に出力するというFIFO回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【0049】
本発明のFIFO回路の第4実施形態・・図4
図4は本発明のFIFO回路の第4実施形態の概念図であり、本発明のFIFO回路の第4実施形態は、図3に示す本発明のFIFO回路の第3実施形態が備える1個のライトポートと2個のリードポートとを有するメモリ部12の代わりに、1個のライトポートと1個のリードポートとを有するメモリ部23を設けると共に、リードポインタ15、16とメモリ部23との間に、リードポインタ15が割り当てられたマスタM15によるリードアクセスと、リードポインタ16が割り当てられたマスタM16によるリードアクセスとを調整するアービタ24を設け、その他については、本発明のFIFO回路の第3実施形態と同様に構成したものである。
【0050】
このように構成された本発明のFIFO回路の第4実施形態においては、メモリ部23のリードポート数がリードポインタ数よりも少ないが、アービタ24を備えているので、ライトポインタ14が割り当てられたマスタM14によるライトポインタ14を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されているマスタM16によるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ15、16が割り当てられたマスタM15、M16において同一のデータを利用することができる。
【0051】
したがって、本発明のFIFO回路の第4実施形態によれば、メモリ部23に入力したデータの順に出力するというFIFO回路の機能を損なわずに、ワード単位で格納したデータの再利用を図ることができる。
【0052】
なお、本発明のFIFO回路の第3実施形態及び第4実施形態においては、FIFOカウンタ27、20の初期値をゼロとすることを前提としているが、この代わりに、FIFOカウンタ27、20の初期値を最大ワード数設定レジスタ18に設定した最大ワード数とすることもできる。
【0053】
この場合、FIFOカウンタ27は、ライトポインタ14が割り当てられたマスタM14からのカウントダウン要求及びリードポインタ16が割り当てられたマスタM16からのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ14が割り当てられたマスタM14にとってメモリ部12又はメモリ部23がフルとなった時は、ライトポインタ14が割り当てられたマスタM14にFIFOフルフラグを出力し、カウント値が最大ワード数となった時、即ち、リードポインタ16が割り当てられたマスタM16にとってメモリ部12又はメモリ部23がエンプティとなった時は、リードポインタ16が割り当てられたマスタM16にFIFOエンプティフラグF16を出力するように構成する。
【0054】
また、FIFOカウンタ20は、ライトポインタ14が割り当てられたマスタM14からのカウントダウン要求及びリードポインタ15が割り当てられたマスタM15からのカウントアップ要求を入力し、カウント値が最大ワード数となった時、即ち、リードポインタ15が割り当てられたマスタM15にとってメモリ部12又はメモリ部23がエンプティとなった時は、リードポインタ15が割り当てられたマスタM15にFIFOエンプティフラグF15を出力するように構成する。
【0055】
本発明のFIFO回路の第5実施形態・・図5
図5は本発明のFIFO回路の第5実施形態の概念図である。本発明のFIFO回路の第5実施形態は、FIFOカウンタの更新を1パケット単位で行うものであり、図5中、29は1個のライトポートと2個のリードポートとを有するメモリ部、30−0、30−1、・・・30−nはパケット格納領域、31−0、31−1、31−2・・・は、それぞれ、アドレスを0番地、1番地、2番地・・・とするワード格納領域である。
【0056】
また、32はライトアクセスするアドレスを指定するライトポインタ、33、34はリードアクセスするアドレスを指定するリードポインタであり、ライトポインタ32はメモリ部29にライトアクセスできるマスタM32(図示せず)に割り当てられ、リードポインタ33、34はそれぞれメモリ部29をリードアクセスできるマスタM33、M34(図示せず)に割り当てられる。
【0057】
また、35はメモリ部29がフルとなった時は、ライトポインタが割り当てられたマスタM32にFIFOフルフラグを出力し、リードポインタ33が割り当てられたマスタM33にとってメモリ部29がエンプティとなった時は、リードポインタ33が割り当てられたマスタM33にFIFOエンプティフラグF33を出力し、リードポインタ34が割り当てられたマスタM34にとってメモリ部29がエンプティとなった時は、リードポインタ34が割り当てられたマスタM34にFIFOエンプティフラグF34を出力するFIFOフル/エンプティフラグ生成部である。
【0058】
また、36はメモリ部29に格納することができる最大パケット数を設定する最大パケット数設定手段をなす最大パケット数設定レジスタ、37は初期値をゼロとされ、ライトポインタ32が割り当てられたマスタM32からのカウントアップ要求及びリードポインタ33、34が割り当てられたマスタM33、M34のうち、同一のデータを後からリードアクセスしているマスタからのカウントダウン要求D33又はD34を入力し、カウント値が最大パケット数となった時、即ち、ライトポインタ32が割り当てられたマスタM32にとってメモリ部29がフルとなった時は、ライトポインタ32が割り当てられたマスタM32にFIFOフルフラグを出力するFIFOカウンタである。
【0059】
また、38は初期値をゼロとされ、ライトポインタ32が割り当てられたマスタM32からのカウントアップ要求及びリードポインタ33が割り当てられたマスタM33からのカウントダウン要求D33を入力し、カウント値がゼロとなった時、即ち、リードポインタ33が割り当てられたマスタM33にとってメモリ部29がエンプティとなった時は、リードポインタ33が割り当てられたマスタM33にFIFOエンプティフラグF33を出力するFIFOカウンタである。
【0060】
また、39は初期値をゼロとされ、ライトポインタ32が割り当てられたマスタM32からのカウントアップ要求及びリードポインタ34が割り当てられたマスタM34からのカウントダウン要求D34を入力し、カウント値がゼロとなった時、即ち、リードポインタ34が割り当てられたマスタM34にとってメモリ部29がエンプティとなった時は、リードポインタ34が割り当てられたマスタM34にFIFOエンプティフラグF34を出力するFIFOカウンタである。
【0061】
このように構成された本発明のFIFO回路の第5実施形態においては、ライトポインタ32が割り当てられたマスタM32によるライトポインタ32を介したアドレスの指定が、リードポインタ33、34が割り当てられたマスタM33、M34のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ33、34が割り当てられたマスタM33、M34において同一のデータを利用することができる。
【0062】
したがって、本発明のFIFO回路の第5実施形態によれば、メモリ部29に入力したデータの順に出力するというFIFO回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、FIFO回路の機能を損なうことがないので、自由に行うことができる。
【0063】
本発明のFIFO回路の第6実施形態・・図6
図6は本発明のFIFO回路の第6実施形態の概念図であり、本発明のFIFO回路の第6実施形態は、図5に示す本発明のFIFO回路の第5実施形態が備える1個のライトポートと2個のリードポートとを有するメモリ部29の代わりに、1個のライトポートと1個のリードポートとを有するメモリ部41を設けると共に、リードポインタ33、34とメモリ部41との間に、リードポインタ33が割り当てられたマスタM33によるリードアクセスと、リードポインタ34が割り当てられたマスタM34によるリードアクセスとを調整するアービタ42を設け、その他については、本発明のFIFO回路の第5実施形態と同様に構成したものである。
【0064】
このように構成された本発明のFIFO回路の第6実施形態においては、メモリ部41のリードポート数がリードポインタ数よりも少ないが、アービタ42を備えているので、ライトポインタ32が割り当てられたマスタM32によるライトポインタ32を介したアドレスの指定が、リードポインタ33、34が割り当てられたマスタM33、M34のうち、同一のデータを後からリードアクセスしているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ33、34が割り当てられたマスタM33、M34において同一のデータを利用することができる。
【0065】
したがって、本発明のFIFO回路の第6実施形態によれば、メモリ部41に入力したデータの順に出力するというFIFO回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、FIFO回路の機能を損なうことがないので、自由に行うことができる。
【0066】
また、本発明のFIFO回路の第5実施形態及び第6実施形態においては、FIFOカウンタ37、38、39の初期値をゼロとすることを前提としているが、この代わりに、FIFOカウンタ37、38、39の初期値を最大パケット数設定レジスタ36に設定した最大パケット数とすることもできる。
【0067】
この場合、FIFOカウンタ37は、ライトポインタ32が割り当てられたマスタM32からのカウントダウン要求及びリードポインタ33、34が割り当てられたマスタM33、M34のうち、同一のデータを後からリードアクセスしているマスタからのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ32が割り当てられたマスタM32にとってメモリ部29又はメモリ部41がフルとなった時は、ライトポインタ32が割り当てられたマスタM32にFIFOフルフラグを出力するように構成する。
【0068】
また、FIFOカウンタ38は、ライトポインタ32が割り当てられたマスタM32からのカウントダウン要求及びリードポインタ34が割り当てられたマスタM34からのカウントアップ要求を入力し、カウント値が最大パケット数となった時、即ち、リードポインタ33が割り当てられたマスタM33にとってメモリ部29又はメモリ部41がエンプティとなった時は、リードポインタ33が割り当てられたマスタM33にFIFOエンプティフラグF33を出力するように構成する。
【0069】
また、FIFOカウンタ39は、ライトポインタ32が割り当てられたマスタM32からのカウントダウン要求及びリードポインタ34が割り当てられたマスタM34からのカウントアップ要求を入力し、カウント値が最大パケット数となった時、即ち、リードポインタ34が割り当てられたマスタM34にとってメモリ部29又はメモリ部41がエンプティとなった時は、リードポインタ34が割り当てられたマスタM34にFIFOエンプティフラグF34を出力するように構成する。
【0070】
本発明のFIFO回路の第7実施形態・・図7
図7は本発明のFIFO回路の第7実施形態の概念図であり、本発明のFIFO回路の第7実施形態は、メモリ部29に対するリードアクセスは、リードポインタ33が割り当てられたマスタM33が必ず先行することを前提とし、図5に示す本発明のFIFO回路の第5実施形態が備えるFIFOフル/エンプティフラグ生成部35と構成の異なるFIFOフル/エンプティフラグ生成部44を備え、その他については、本発明のFIFO回路の第5実施形態と同様に構成したものである。
【0071】
FIFOフル/エンプティフラグ生成部44は、FIFOフル/エンプティフラグ生成部35が備えるFIFOカウンタ37の代わりに、FIFOカウンタ45を備えると共に、FIFOフル/エンプティフラグ生成部35が備えるFIFOカウンタ39を備えないようにし、その他については、FIFOフル/エンプティフラグ生成部35と同様に構成したものである。
【0072】
FIFOカウンタ45は、初期値をゼロとされ、ライトポインタ32が割り当てられたマスタM32からのカウントアップ要求及びリードポインタ34が割り当てられたマスタM34からのカウントダウン要求D34を入力し、カウント値が最大パケット数となった時、即ち、ライトポインタ32が割り当てられたマスタM32にとってメモリ部29がフルとなった時は、ライトポインタ32が割り当てられたマスタM32にFIFOフルフラグを出力し、カウント値がゼロとなった時、即ち、リードポインタ34が割り当てられたマスタM34にとってメモリ部29がエンプティとなった時は、リードポインタ34が割り当てられたマスタM34にFIFOエンプティフラグF34を出力するものである。
【0073】
このように構成された本発明のFIFO回路の第7実施形態においては、ライトポインタ32が割り当てられたマスタM32によるライトポインタ32を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されているマスタM34によるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、リードポインタ33、34が割り当てられたマスタM33、M34において同一のデータを利用することができる。
【0074】
したがって、本発明のFIFO回路の第7実施形態によれば、メモリ部29に入力したデータの順に出力するというFIFO回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、FIFO回路の機能を損なうことがないので、自由に行うことができる。
【0075】
本発明のFIFO回路の第8実施形態・・図8
図8は本発明のFIFO回路の第8実施形態の概念図であり、本発明のFIFO回路の第8実施形態は、図7に示す本発明のFIFO回路の第7実施形態が備える1個のライトポートと2個のリードポートとを有するメモリ部29の代わりに、1個のライトポートと1個のリードポートとを有するメモリ部41を設けると共に、リードポインタ33、34とメモリ部41との間に、リードポインタ33が割り当てられたマスタM33によるリードアクセスと、リードポインタ34が割り当てられたマスタM34によるリードアクセスを調整するアービタ42を設け、その他については、本発明のFIFO回路の第7実施形態と同様に構成したものである。
【0076】
このように構成された本発明のFIFO回路の第8実施形態においては、メモリ部41のリードポート数がリードポインタ数よりも少ないが、アービタ42を備えているので、ライトポインタ32が割り当てられたマスタM32によるライトポインタ32を介したアドレスの指定が、同一のデータを後からリードアクセスするように設定されたマスタM34によるリードポインタ34を介したアドレスの指定を追い越さないように制御する場合には、リードポインタ33、34が割り当てられたマスタM33、M34において同一のデータを利用することができる。
【0077】
したがって、本発明のFIFO回路の第8実施形態によれば、メモリ部41に入力したデータの順に出力するというFIFO回路の機能を損なわずに、パケット単位で格納したデータの再利用を図ることができる。なお、パケット領域内のワード格納領域のリードアクセスは、順不同で行うとしても、FIFO回路の機能を損なうことがないので、自由に行うことができる。
【0078】
また、本発明のFIFO回路の第7実施形態及び第8実施形態においては、FIFOカウンタ45、38の初期値をゼロとすることを前提としているが、この代わりに、FIFOカウンタ45、38の初期値を最大パケット数設定レジスタ36に設定した最大パケット数とすることもできる。
【0079】
この場合、FIFOカウンタ45は、ライトポインタ32が割り当てられたマスタM32からのカウントダウン要求及びリードポインタ34が割り当てられたマスタM34からのカウントアップ要求を入力し、カウント値がゼロとなった時、即ち、ライトポインタ32が割り当てられたマスタM32にとってメモリ部29又はメモリ部41がフルとなった時は、ライトポインタ32が割り当てられたマスタM32にFIFOフルフラグを出力し、カウント値が最大パケット数となった時、即ち、リードポインタ34が割り当てられたマスタM34にとってメモリ部29又はメモリ部41がエンプティとなった時は、リードポインタ34が割り当てられたマスタM34にFIFOエンプティフラグF34を出力するように構成する。
【0080】
また、FIFOカウンタ38は、ライトポインタ32が割り当てられたマスタM32からのカウントダウン要求及びリードポインタ33が割り当てられたマスタM33からのカウントアップ要求を入力し、カウント値が最大パケット数となった時、即ち、リードポインタ33が割り当てられたマスタM33にとってメモリ部29又はメモリ部41がエンプティとなった時は、リードポインタ33が割り当てられたマスタM33にFIFOエンプティフラグF33を出力するように構成する。
【0081】
また、本発明の第1実施形態〜第8実施形態においては、2個のリードポインタを設けるようにした場合について説明したが、この代わりに、3個以上のリードポインタを設けるようにしても良い。
【0082】
本発明のマルチプロセッサシステムの第1実施形態・・図9
図9は本発明のマルチプロセッサシステムの第1実施形態の要部を示すブロック回路図である。図9中、47−1、47−mはプロセッサであり、プロセッサ47−1、47−mの間に存在するプロセッサ47−2〜47−(m−1)は図示を省略している。これらプロセッサ47−1〜47−mは、命令の並列実行を行うものである。
【0083】
また、48−1、48−mは、それぞれ、プロセッサ47−1、47−mの出力データが格納されるFIFO回路であり、プロセッサ47−2〜47−(m−1)の出力データを格納するFIFO回路48−2〜48−(m−1)は図示を省略している。
【0084】
なお、本発明のマルチプロセッサシステムの第1実施形態においては、FIFO回路48−1〜48−mとして、本発明のFIFO回路の第1実施形態、第3実施形態、第5実施形態又は第7実施形態が使用される。
【0085】
また、49−1、49−2はFIFO回路48−1〜48−mに格納されたプロセッサ47−1〜47−mの出力データについて所定の処理を行うプロセッサである。
【0086】
また、50−1、50−mはプロセッサ49−1、49−2から出力されるアドレス Address_11、Address_12を選択してFIFO回路48−1、48−mに出力するセレクタ、51−1、51−2はFIFO回路48−1〜48−mの出力を選択してプロセッサ49−1、49−2に出力するセレクタである。
【0087】
また、Write_1、Address_1、Data_1はプロセッサ47−1からFIFO回路48−1に与えられるライト制御信号、アドレス、データであり、FIFO Full_1はFIFO回路48−1からプロセッサ47−1に出力されるFIFOフルフラグである。
【0088】
また、Read_11はプロセッサ49−1からFIFO回路48−1に与えられるリード制御信号、FIFO Empty_11はFIFO回路48−1からプロセッサ49−1に出力されるFIFOエンプティフラグである。
【0089】
また、Read_12はプロセッサ49−2からFIFO回路48−1に与えられるリード制御信号、FIFO Empty_12はFIFO回路48−1からプロセッサ49−2に出力されるFIFOエンプティフラグである。
【0090】
また、Write_m、Adress_m、Data_mはプロセッサ47−mからFIFO回路48−mに与えられるライト制御信号、アドレス、データであり、FIFO Full_mはFIFO回路48−mからプロセッサ47−mに出力されるFIFOフルフラグである。
【0091】
また、Read_m1はプロセッサ49−1からFIFO回路48−mに与えられるリード制御信号であり、FIFO Empty_m1はFIFO回路48−mからプロセッサ49−1に出力されるFIFOエンプティフラグである。
【0092】
また、Read_m2はプロセッサ49−2からFIFO回路48−mに与えられるリード制御信号であり、FIFO Empty_m2はFIFO回路48−mからプロセッサ49−2に出力されるFIFOエンプティフラグである。
【0093】
なお、プロセッサ47−k(但し、k=1〜m)は、FIFO回路48−kからFIFOフルフラグFIFO Full_kが出力されている場合には、後続する命令の実行を停止する命令を備えている。
【0094】
また、プロセッサ49−1、49−2は、FIFO回路48−k(k=1、2、・・・m)からFIFOエンプティフラグが出力されている場合には、後続する命令の実行を停止する命令を備えている。
【0095】
このように構成された本発明のマルチプロセッサシステムの第1実施形態においては、たとえば、プロセッサ47−1は、FIFO回路48−1からFIFOフルフラグFIFO Full_1が出力されていない場合には、命令を実行して、ライト制御信号Write_1、アドレスAddress_1及び出力データData_1をFIFO回路48−1に転送する。
【0096】
そして、FIFO回路48−1がフルとなった時は、FIFO回路48−1からプロセッサ47−1にFIFOフルフラグFIFO Full_1が出力され、この場合には、プロセッサ47−1は、後続する命令の実行を停止し、FIFOフルフラグFIFO Full_1の解除を待つことになる。
【0097】
また、プロセッサ49−1は、FIFO回路48−1からFIFOエンプティフラグFIFO Empty_11が出力されていない場合において、FIFO回路48−1に格納されたプロセッサ47−1の出力データを利用する場合には、リード制御信号Read_11及びアドレスAddress_11をFIFO回路48−1に転送し、FIFO回路48−1からデータをリードする。
【0098】
そして、FIFO回路48−1がエンプティとなった時は、FIFO回路48−1からプロセッサ49−1にFIFOエンプティフラグFIFO Empty_11が出力され、この場合には、プロセッサ49−1は、後続する命令の実行を停止し、FIFOエンプティフラグ FIFO Empty_11 の解除を待つことになる。
【0099】
他方、プロセッサ49−2は、FIFO回路48−1に格納されているプロセッサ49−1が利用したプロセッサ47−1の出力データを再利用する場合には、リード制御信号Read_12及びアドレスAddress_12をFIFO回路48−1に転送し、FIFO回路48−1からデータをリードする。
【0100】
そして、FIFO回路48−1がエンプティとなった時は、FIFO回路48−1からプロセッサ49−2にFIFOエンプティフラグFIFO Empty_12が出力され、この場合には、プロセッサ49−2は、後続する命令の実行を停止し、FIFOエンプティフラグ FIFO Empty_12の解除を待つことになる。
【0101】
なお、プロセッサ49−2がFIFO回路48−1からのリードを先行して行う場合にも、FIFO回路48−1に格納されたプロセッサ47−1の出力データのプロセッサ49−1による再利用は可能であり、以上のことは、他のFIFO回路48−2〜48−mとの関係においても同様である。
【0102】
このように、本発明のマルチプロセッサシステムの第1実施形態によれば、FIFO回路48−1〜48−mとして、本発明のFIFO回路の第1実施形態、第3実施形態、第5実施形態又は第7実施形態を使用するとしたことにより、FIFO回路48−1〜48−mのそれぞれに格納されたデータをプロセッサ49−1、49−2で利用することができるので、同一のデータをプロセッサ49−1、49−2で使用する必要がある場合においても、共有メモリを備える必要がなく、その結果、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【0103】
本発明のマルチプロセッサシステムの第2実施形態・・図10
図10は本発明のマルチプロセッサシステムの第2実施形態の要部を示すブロック回路図であり、本発明のマルチプロセッサシステムの第2実施形態は、本発明のマルチプロセッサシステムの第1実施形態が備えるプロセッサ49−2及びセレクタ51−2の代わりに、DMAコントローラ53及びセレクタ54を設け、その他については、本発明のマルチプロセッサシステムの第1実施形態と同様に構成したものである。
【0104】
なお、セレクタ54は、FIFO回路48−1〜48−m及びプロセッサ49−1のデータ出力端子のうち、DMAコントローラ53が指示するデータ出力端子を選択するためのものである。
【0105】
また、RequestはFIFO回路48−1〜48−mが格納するプロセッサ47−1〜47−mの出力データ及びプロセッサ49−1の出力データのうち、いずれの出力データを出力ポートに転送するかをリクエストするリクエスト信号であり、Acknowledgeはリクエスト信号Requestを認識した旨のアクノリッジ信号である。
【0106】
なお、本発明のマルチプロセッサシステムにおいては、FIFO回路48−1〜48−mとして、本発明のFIFO回路の第2実施形態、第4実施形態、第6実施形態又は第8実施形態が使用される。
【0107】
このように構成された本発明のマルチプロセッサシステムにおいては、プロセッサ49−1は、FIFO回路48−kに格納されたプロセッサ47−kの出力データについて所定の処理を行い、その処理結果に基づいて、DMAコントローラ53に対して、FIFO回路48−kに格納されているプロセッサ47−kの出力データ及びプロセッサ49−1の出力データのうち、いずれの出力データを出力ポートに転送するかをDMAコントローラ53にリクエストし、DMAコントローラ53は、プロセッサ49−1がリクエストした出力データを出力ポートに転送することになる。
【0108】
このように、本発明のマルチプロセッサシステムの第2実施形態によれば、FIFO回路48−1〜48−mとして、本発明のFIFO回路の第2実施形態、第4実施形態、第6実施形態又は第8実施形態を使用するとしたことにより、プロセッサ49−1で使用されたプロセッサ47−1〜47−mの出力データをDMAコントローラ53が再利用する必要がある場合においても、共有メモリを備える必要がないので、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【0109】
【発明の効果】
以上のように、本発明のFIFO回路によれば、複数のリードポインタを備えるとしたことにより、入力したデータの順に出力するというFIFO回路の機能を損なわずに、格納されたデータの再利用を図ることができる。
【0110】
また、本発明のマルチプロセッサシステムによれば、本発明のFIFO回路を備えるとしたことにより、FIFO回路に格納された同一データを複数のマスタで使用することができるので、同一のデータを複数のマスタで使用する必要がある場合においても、共有メモリを設ける必要がなく、この結果、データの転送の高速化を図り、データ処理の高速化を図ることができる。
【図面の簡単な説明】
【図1】 本発明のFIFO回路の第1実施形態の概念図である。
【図2】 本発明のFIFO回路の第2実施形態の概念図である。
【図3】 本発明のFIFO回路の第3実施形態の概念図である。
【図4】 本発明のFIFO回路の第4実施形態の概念図である。
【図5】 本発明のFIFO回路の第5実施形態の概念図である。
【図6】 本発明のFIFO回路の第6実施形態の概念図である。
【図7】 本発明のFIFO回路の第7実施形態の概念図である。
【図8】 本発明のFIFO回路の第8実施形態の概念図である。
【図9】 本発明のマルチプロセッサシステムの第1実施形態の要部を示すブロック回路図である。
【図10】 本発明のマルチプロセッサシステムの第2実施形態の要部を示すブロック回路図である。
【図11】 従来のFIFO回路の一例の概念図である。
【図12】 従来のFIFO回路の他の例の概念図である。
【符号の説明】
(図1〜図4)
13−0、13−1、13−2、13−n ワード格納領域
(図5〜図8)
30−0、30−1 パケット格納領域
31−0、31−1、31−2 ワード格納領域
Claims (11)
- メモリ部と、
第1のマスタに割り当てられるライトポインタと、
第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、
初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、前記第2〜第n+1のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第1のマスタにFIFOフルフラグを出力する第1のFIFOカウンタと、
初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、第i(但し、i=2〜n+1)のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第iのマスタに第i−1のFIFOエンプティフラグを出力する第iのFIFOカウンタと
を備えていることを特徴とするFIFO回路。 - メモリ部と、
第1のマスタに割り当てられるライトポインタと、
第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、
初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第n+1のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値が最大値となった時は、前記第1のマスタにFIFOフルフラグを出力し、カウント値がゼロとなった時は、前記第n+1のマスタに第nのFIFOエンプティフラグを出力する第1のFIFOカウンタと、
初期値をゼロとされ、前記第1のマスタからのカウントアップ要求によりカウント値をインクリメントし、第j(但し、j=2〜n)のマスタからのカウントダウン要求によりカウント値をデクリメントし、カウント値がゼロとなった時は、前記第jのマスタに第j−1のFIFOエンプティフラグを出力する第jのFIFOカウンタと
を備えていることを特徴とするFIFO回路。 - メモリ部と、
第1のマスタに割り当てられるライトポインタと、
第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、
初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、前記第2〜第n+1のマスタのうち、同一のデータについて最後にリードアクセスを行っているマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第1のマスタにFIFOフルフラグを出力する第1のFIFOカウンタと、
初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、第i(但し、i=2〜n+1)のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第iのマスタに第i−1のFIFOエンプティフラグを出力する第iのFIFOカウンタと
を備えていることを特徴とするFIFO回路。 - メモリ部と、
第1のマスタに割り当てられるライトポインタと、
第2〜第n+1(但し、nは2以上の整数)のマスタに割り当てられる第1〜第nのリードポインタと、
初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、同一のデータについて最後にリードアクセスを行うように設定された前記第n+1のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値がゼロとなった時は、前記第1のマスタにFIFOフルフラグを出力し、カウント値が最大値となった時は、前記第n+1のマスタに第nのFIFOエンプティフラグを出力する第1のFIFOカウンタと、
初期値を最大値とされ、前記第1のマスタからのカウントダウン要求によりカウント値をデクリメントし、第j(但し、j=2〜n)のマスタからのカウントアップ要求によりカウント値をインクリメントし、カウント値が最大値となった時は、前記第jのマスタに第j−1のFIFOエンプティフラグを出力する第jのFIFOカウンタと
を備えていることを特徴とするFIFO回路。 - 前記カウントアップ要求及び前記カウントダウン要求をワード単位で行うマスタに使用されるものであり、
前記メモリ部に格納することができる最大ワード数を設定する最大ワード数設定手段を有し、
前記最大値は、前記最大ワード数設定手段に設定された最大ワード数とされることを特徴とする請求項1乃至4のいずれか一項に記載のFIFO回路。 - 前記カウントアップ要求及び前記カウントダウン要求をパケット単位で行うマスタに使用されるものであり、
前記メモリ部に格納することができる最大パケット数を設定する最大パケット数設定手段を有し、
前記最大値は、前記最大パケット数設定手段に設定した最大パケット数とされること
を特徴とする請求項1乃至4のいずれか一項に記載のFIFO回路。 - 前記メモリ部のリードポートの数が前記nよりも少なく、
前記第2〜第n+1のマスタの前記メモリ部に対するリードアクセスを調整するアービタを備えていること
を特徴とする請求項1乃至6のいずれか一項に記載のFIFO回路。 - 請求項1乃至7のいずれか一項に記載のFIFO回路を備えていること
を特徴とするマルチプロセッサシステム。 - 前記FIFO回路として、第1〜第m(但し、mは2以上の整数)のFIFO回路を備えると共に、第1〜第m+n(但し、nは2以上の整数)のマスタを備え、
第k(但し、k=1〜m)のマスタは、第kのFIFO回路のライトポインタが割り当てられ、
第m+p(但し、p=1〜n)のマスタは、前記第1〜第mのFIFO回路の第pのリードポインタが割り当てられていること
を特徴とする請求項8に記載のマルチプロセッサシステム。 - 前記第kのマスタは、前記第kのFIFO回路がフルの時は、後続する命令の実行を停止する命令を備え、
前記第m+pのマスタは、前記第kのFIFO回路が前記第m+pのマスタにとってエンプティの時は、後続する命令の実行を停止する命令を備えていること
を特徴とする請求項9に記載のマルチプロセッサシステム。 - 前記nは2、前記第1〜m+1のマスタはプロセッサ、前記第m+2のマスタはDMAコントローラであり、
前記第m+1のマスタは、前記第kのFIFO回路に格納されているデータについて所定の処理を行い、その処理結果に基づいて、前記第kのFIFO回路に格納されている前記第kのマスタの出力データ又は前記第m+1のマスタの出力データのうち、いずれの出力データを出力ポートに転送するかのリクエストを行うようにプログラムされること
を特徴とする請求項10に記載のマルチプロセッサシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24079298A JP4292598B2 (ja) | 1998-08-26 | 1998-08-26 | Fifo回路及びマルチプロセッサシステム |
US09/304,842 US6571301B1 (en) | 1998-08-26 | 1999-05-05 | Multi processor system and FIFO circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24079298A JP4292598B2 (ja) | 1998-08-26 | 1998-08-26 | Fifo回路及びマルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000076841A JP2000076841A (ja) | 2000-03-14 |
JP4292598B2 true JP4292598B2 (ja) | 2009-07-08 |
Family
ID=17064766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24079298A Expired - Fee Related JP4292598B2 (ja) | 1998-08-26 | 1998-08-26 | Fifo回路及びマルチプロセッサシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4292598B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4517741B2 (ja) * | 2004-06-23 | 2010-08-04 | 富士ゼロックス株式会社 | 記憶装置 |
WO2013129031A1 (ja) | 2012-02-29 | 2013-09-06 | 三菱電機株式会社 | データ転送装置、データ転送方法及びデータ転送プログラム |
-
1998
- 1998-08-26 JP JP24079298A patent/JP4292598B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000076841A (ja) | 2000-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080189501A1 (en) | Methods and Apparatus for Issuing Commands on a Bus | |
JP3180362B2 (ja) | 情報処理装置 | |
JP4566738B2 (ja) | コンピュータメモリ装置 | |
JP4007483B2 (ja) | 高位合成装置および高位合成方法 | |
US6317806B1 (en) | Static queue and index queue for storing values identifying static queue locations | |
US6546465B1 (en) | Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol | |
JPH03118649A (ja) | メモリーサブシステム入力キュー | |
EP1026597B1 (en) | Data alignment between buses | |
EP0533427A1 (en) | Computer memory control system | |
EP2393004B1 (en) | Cache apparatus and control method thereof | |
JP5439808B2 (ja) | 複数バスを有するシステムlsi | |
JP4292598B2 (ja) | Fifo回路及びマルチプロセッサシステム | |
US5774697A (en) | Data realignment method and apparatus | |
JP2003271574A (ja) | 共有メモリ型マルチプロセッサシステムにおけるデータ通信方法 | |
US5627968A (en) | Data transfer apparatus which allows data to be transferred between data devices without accessing a shared memory | |
US7206904B2 (en) | Method and system for buffering multiple requests from multiple devices to a memory | |
JPH08161254A (ja) | 情報処理システムおよびそのバス調停方式 | |
JP2005527030A (ja) | ストール機能を有する疑似マルチポートデータメモリ | |
JPH10502756A (ja) | ベクトルプロセッサのためのチャンク連鎖 | |
US6308147B1 (en) | Data structure synthesis in hardware using memory transaction translation techniques | |
TWI488040B (zh) | 緩衝記憶體管理方法與相關緩衝記憶體控制器 | |
US20100153610A1 (en) | Bus arbiter and bus system | |
US20110320694A1 (en) | Cached latency reduction utilizing early access to a shared pipeline | |
JP3467188B2 (ja) | 多重化バスの順序保証システム | |
JPS6024976B2 (ja) | メモリ・アクセス制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050816 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20080730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080909 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081110 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090317 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090330 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120417 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120417 Year of fee payment: 3 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120417 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130417 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130417 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140417 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |