JP4292598B2 - Fifo回路及びマルチプロセッサシステム - Google Patents

Fifo回路及びマルチプロセッサシステム Download PDF

Info

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
Application number
JP24079298A
Other languages
English (en)
Other versions
JP2000076841A (ja
Inventor
誠 中原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP24079298A priority Critical patent/JP4292598B2/ja
Priority to US09/304,842 priority patent/US6571301B1/en
Publication of JP2000076841A publication Critical patent/JP2000076841A/ja
Application granted granted Critical
Publication of JP4292598B2 publication Critical patent/JP4292598B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ライトアクセスするアドレスを指定するライトポインタと、リードアクセスするアドレスを指定するリードポインタとを含めて構成される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
【課題を解決するための手段】
本発明中、第の発明は、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
本発明中、第の発明は、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
本発明中、第の発明は、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
本発明中、第の発明は、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
本発明中、第の発明は、第1〜第4の発明のいずれか一の発明において、前記カウントアップ要求及び前記カウントダウン要求をワード単位で行うマスタに使用されるものであり、前記メモリ部に格納することができる最大ワード数を設定する最大ワード数設定手段を有し、前記最大値は、前記最大ワード数設定手段に設定された最大ワード数とされるというものである。
【0020
本発明中、第の発明は、第1〜第4の発明のいずれか一の発明において、前記カウントアップ要求及び前記カウントダウン要求をパケット単位で行うマスタに使用されるものであり、前記メモリ部に格納することができる最大パケット数を設定する最大パケット数設定手段を有し、前記最大値は、前記最大パケット数設定手段に設定した最大パケット数とされるというものである。
【0021
本発明中、第の発明は、第1〜第6の発明のいずれか一の発明において、前記メモリ部のリードポートの数が前記nよりも少なく、前記第2〜第n+1のマスタの前記メモリ部に対するリードアクセスを調整するアービタを備えているというものである。
【0022
本発明のFIFO回路においては、前記第1のマスタによるライトポインタを介したアドレスの指定が、前記第2〜第n+1のマスタのうち、リードアクセスを最後に行っているマスタによるリードポインタを介したアドレスの指定を追い越さないように制御する場合には、前記第2〜第n+1のマスタにおいて同一のデータを利用することができる。したがって、入力したデータの順に出力するというFIFO回路の機能を損なわずに、格納したデータの再利用を図ることができる。
【0023
本発明中、第の発明は、マルチプロセッサシステムの発明であり、第1〜第7の発明のいずれか一の発明のFIFO回路を備えているというものである。
【0024
本発明中、第の発明のマルチプロセッサシステムにおいては、FIFO回路に格納された同一データを複数のマスタで使用することができるので、共有メモリを設ける必要がない。したがって、データ転送の高速化を図り、データ処理の高速化を図ることができる。
【0025
本発明中、第の発明は、第の発明において、前記FIFO回路として、第1〜第m(但し、mは2以上の整数)のFIFO回路を備えると共に、第1〜第m+n(但し、nは2以上の整数)のマスタを備え、第k(但し、k=1〜m)のマスタは、第kのFIFO回路のライトポインタが割り当てられ、第m+(但し、=1〜n)のマスタは、前記第1〜第mのFIFO回路の第のリードポインタが割り当てられているというものである。
【0026
本発明中、第10の発明は、第の発明において、前記第kのマスタは、前記第kのFIFO回路がフルの時は、後続する命令の実行を停止する命令を備え、前記第m+のマスタは、前記第kのFIFO回路が前記第m+のマスタにとってエンプティの時は、後続する命令の実行を停止する命令を備えているというものである。
【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. メモリ部と、
    第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回路
  2. メモリ部と、
    第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回路
  3. メモリ部と、
    第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回路
  4. メモリ部と、
    第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回路
  5. 前記カウントアップ要求及び前記カウントダウン要求をワード単位で行うマスタに使用されるものであり、
    前記メモリ部に格納することができる最大ワード数を設定する最大ワード数設定手段を有し、
    前記最大値は、前記最大ワード数設定手段に設定された最大ワード数とされることを特徴とする請求項1乃至4のいずれか一項に記載のFIFO回路。
  6. 前記カウントアップ要求及び前記カウントダウン要求をパケット単位で行うマスタに使用されるものであり、
    前記メモリ部に格納することができる最大パケット数を設定する最大パケット数設定手段を有し、
    前記最大値は、前記最大パケット数設定手段に設定した最大パケット数とされること
    を特徴とする請求項1乃至4のいずれか一項に記載のFIFO回路。
  7. 前記メモリ部のリードポートの数が前記nよりも少なく、
    前記第2〜第n+1のマスタの前記メモリ部に対するリードアクセスを調整するアービタを備えていること
    を特徴とする請求項1乃至6のいずれか一項に記載のFIFO回路。
  8. 請求項1乃至7のいずれか一項に記載のFIFO回路を備えていること
    を特徴とするマルチプロセッサシステム。
  9. 前記FIFO回路として、第1〜第m(但し、mは2以上の整数)のFIFO回路を備えると共に、第1〜第m+n(但し、nは2以上の整数)のマスタを備え、
    第k(但し、k=1〜m)のマスタは、第kのFIFO回路のライトポインタが割り当てられ、
    第m+(但し、=1〜n)のマスタは、前記第1〜第mのFIFO回路の第のリードポインタが割り当てられていること
    を特徴とする請求項8に記載のマルチプロセッサシステム。
  10. 前記第kのマスタは、前記第kのFIFO回路がフルの時は、後続する命令の実行を停止する命令を備え、
    前記第m+のマスタは、前記第kのFIFO回路が前記第m+のマスタにとってエンプティの時は、後続する命令の実行を停止する命令を備えていること
    を特徴とする請求項9に記載のマルチプロセッサシステム。
  11. 前記nは2、前記第1〜m+1のマスタはプロセッサ、前記第m+2のマスタはDMAコントローラであり、
    前記第m+1のマスタは、前記第kのFIFO回路に格納されているデータについて所定の処理を行い、その処理結果に基づいて、前記第kのFIFO回路に格納されている前記第kのマスタの出力データ又は前記第m+1のマスタの出力データのうち、いずれの出力データを出力ポートに転送するかのリクエストを行うようにプログラムされること
    を特徴とする請求項10に記載のマルチプロセッサシステム。
JP24079298A 1998-08-26 1998-08-26 Fifo回路及びマルチプロセッサシステム Expired - Fee Related JP4292598B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4517741B2 (ja) * 2004-06-23 2010-08-04 富士ゼロックス株式会社 記憶装置
WO2013129031A1 (ja) 2012-02-29 2013-09-06 三菱電機株式会社 データ転送装置、データ転送方法及びデータ転送プログラム

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