JP3755249B2 - データ記憶装置 - Google Patents

データ記憶装置 Download PDF

Info

Publication number
JP3755249B2
JP3755249B2 JP20357997A JP20357997A JP3755249B2 JP 3755249 B2 JP3755249 B2 JP 3755249B2 JP 20357997 A JP20357997 A JP 20357997A JP 20357997 A JP20357997 A JP 20357997A JP 3755249 B2 JP3755249 B2 JP 3755249B2
Authority
JP
Japan
Prior art keywords
data
address
write
read
port ram
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 - Lifetime
Application number
JP20357997A
Other languages
English (en)
Other versions
JPH1145561A (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.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP20357997A priority Critical patent/JP3755249B2/ja
Priority to US09/120,277 priority patent/US6266746B1/en
Publication of JPH1145561A publication Critical patent/JPH1145561A/ja
Application granted granted Critical
Publication of JP3755249B2 publication Critical patent/JP3755249B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Reverberation, Karaoke And Other Acoustics (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、ランダムアクセス可能なメモリを共用してFIFO(First In First Out)機能とアキュムレータ機能(より広義にはランダムアクセス機能)とを実現するデータ記憶装置に関する。
【0002】
【従来の技術】
例えば音響信号を処理する音響処理装置では、図8に示すような処理を行うことがある。前段部分は、RAM(Random Access Memory)で所定時間遅延した音響信号を後段のFIFOに出力するとともに入力される音響信号と適当な比率で加算してRAMの同一エリアに再記憶する機能であり、音響信号に対してリバーブ、エコーのようなエフェクトを付与する場合に使われるアキュムレータ機能である。本願明細書ではRAMの所定エリアから読み出したデータに対して所定の演算を施して同一エリアに再記憶する機能を便宜上アキュムレータ機能と言う。後段部分は、前段でエフェクトを付与された音響信号を例えば48kHzの一定のレート(サンプリング周波数)で出力するFIFO機能であり、RAMの書き込みと読み出しを制御することで実現される。このように後段のFIFOで一定レートに変換して出力することにより、前段部分は48kHzに縛られない非同期かつ高速の動作周波数で動作するDSP、CPU等を使用できる。
【0003】
【発明が解決しようとする課題】
ところで、従来のこの種の信号処理では、アキュムレータとFIFOとが別々に構成されているため、回路サイズが増大するという問題があった。
【0004】
この発明は上述した事情に鑑みてなされたもので、アキュムレータとFIFOとを共用のメモリを使用して一体とし、回路サイズを小さくできるデータ記憶装置を提供することを目的としている。
【0009】
【課題を解決するための手段】
述した問題点を解決するために、請求項記載の発明では、ランダムアクセス可能な記憶手段のデータ入出力制御を行うデータ記憶装置において、ランダムアクセス可能な記憶手段と、前記記憶手段に対するデータの書き込み要求が生じると、所定の規則に従って書き込みアドレスを生成する書き込みアドレス生成手段と、前記記憶手段に対するデータの読み出し要求が生じると、所定の規則に従って読み出しアドレスを生成する読み出しアドレス生成手段と、所定の切替信号に従って、前記書き込みアドレス生成手段によって生成された書き込みアドレスと前記読み出しアドレス生成手段によって生成された読み出しアドレスとを選択的に切り替える切替手段と、前記書き込み要求および前記読み出し要求の有無に応じて、前記切替手段への切替信号および前記記憶手段への書き込み/読み出し指示信号を生成する調整手段と入力されるデータに前記記憶手段から出力されるデータを加算する演算手段とを具備し、前記書き込み要求が生じると、まず、前記書き込みアドレス生成手段は、書き込み要求に応じて、書き込みアドレスを生成し、前記記憶手段は、該書き込みアドレスに記憶されているデータを読み出し、次いで、前記加算手段は、入力されるデータと前記記憶手段から読み出したデータとを加算した後、前記記憶手段は、該加算したデータを前記書き込みアドレスへ書き込むことを特徴とする。
【0010】
この発明によれば、記憶手段をFIFOとして用いる場合には、前記アドレス生成手段によってFIFO用のアドレスを生成し、該アドレスを切替手段を介して記憶手段に供給し、PUSHもしくはPOPを行い、一方、アキュムレータとして用いる場合には、ランダムアクセス用のアドレスを切替手段を介して記憶手段に供給し、該アドレスでデータを読み出し、外部で演算した後、再び、同一アドレスに書き込むようにするようにしたので、アキュムレータとFIFOとを一体とすることが可能となり、回路サイズを小さくすることが可能となる。
【0011】
【発明の実施の形態】
次に図面を参照してこの発明の実施形態について説明する。
【0012】
A.実施形態の構成
A−1.実施形態の基本構成
図1は、本発明の実施形態の基本構成を示すブロック図である。図において、ポインタ1は、カウンタにより構成されており、PUSH信号によりカウンタ値を更新し、該カウンタ値を選択回路2に供給する。選択回路2は、後述するデュアルポートRAM5をアキュムレータとして用いる場合には、書き込みアドレスWADをデュアルポートRAM5に供給し、デュアルポートRAM5をFIFOとして用いる場合には、ポインタ1のカウンタ値をデュアルポートRAM5に供給する。
【0013】
次に、ポインタ3は、カウンタにより構成されており、POP信号によりカウンタ値を更新し、該カウンタ値を選択回路4に供給する。選択回路4は、デュアルポートRAM5をアキュムレータとして用いる場合には、読み出しアドレスRADをデュアルポートRAM5に供給し、デュアルポートRAM5をFIFOとして用いる場合には、ポインタ3のカウンタ値をデュアルポートRAM5に供給するようになっている。
【0014】
デュアルポートRAM5は、ライトアドレスとして供給されるアドレスに従って、入力されるデータを記憶し、リードアドレスとして供給されるアドレスに従って、記憶されているデータを出力する。なお、該RAMは、必ずしもデュアルポートRAMである必要はない。
【0015】
上述した構成では、上記デュアルポートRAM5をアキュムレータとして使用する場合には、直接、書き込みアドレスまたは読み出しアドレスを供給し、選択回路2、4で、上記書き込みアドレスまたは読み出しアドレスを選択する。デュアルポートRAM5では、上記書き込みアドレスまたは読み出しアドレスに従って、供給されるデータを記憶したり読み出したりする。一方、上記デュアルポートRAM5をFIFOとして使用する場合には、PUSHまたはPOPを供給し、ポインタ1または3で書き込みアドレスまたは読み出しアドレスを生成し、選択回路2、4で上記ポインタ1または3の書き込みアドレスまたは読み出しアドレスを選択する。デュアルポートRAM5では、上記書き込みアドレスまたは読み出しアドレスに従って、供給されるデータを記憶したり読み出したりする。
【0016】
B.第1実施形態
B−1.第1実施形態の構成
次に、本発明の第1実施形態についてより具体的な構成を参照して説明する。本第1実施形態は、FIFO処理とアキュムレータ処理(またはランダムアクセス処理)をシングルポートRAMで実現する際に、PUSHリクエスト、POPリクエスト、書き込みリクエストおよび読み出しリクエストの競合を調整する構成となっている。ここで、図2は、本第1実施形態の構成を示すブロック図である。図において、ラッチ回路10は、後述する競合調整回路16からの制御信号(※1)に従って、後述するシングルポートRAM17をFIFOとして使用する場合に供給されるデータDin1を保持し、選択回路12の一方の入力端に供給する。
【0017】
また、ラッチ回路11は、後述する競合調整回路16からの制御信号(※2)に従って、後述するシングルポートRAM17をアキュムレータとして使用する場合に供給されるデータDin2を保持し、選択回路12の他方の入力端に供給する。次に、選択回路12は、後述する競合調整回路16からの制御信号(※5)に従って、上記データDin1またはデータDin2のいずれか一方を、シングルポートRAM17の入力端Iに供給する。
【0018】
次に、カウンタ13は、PUSHリクエストPUSH-reqが供給されると、PUSHアドレスを示すカウント値を更新するとともに、該カウント値を選択回路15に供給する。また、カウンタ14は、POPリクエストPOP-reqが供給されると、POPアドレスを示すカウント値を更新するとともに、該カウント値を選択回路15に供給する。選択回路15は、シングルポートRAM17をランダムアクセスする際の書き込みアドレスW-add、同読み出しアドレスR-add、上記PUSHリクエストPUSH-reqに対するカウント値、または上記POPリクエストPOP-reqに対するカウント値のいずれかを、後述する競合調整回路16からの制御信号に従って選択し、シングルポートRAM17のアドレス入力端Aに供給する。
【0019】
次に、競合調整回路16は、シングルポートRAM17をランダムアクセスする際の書き込みリクエストW-req、同読み出しリクエストR-req、上記PUSHリクエストPUSH-req、または上記POPリクエストPOP-reqの発生に従って、ラッチ回路10,11、選択回路12,15、シングルポートRAM17、後述するラッチ回路18,19に対する制御信号(選択信号やラッチタイミング信号、書き込みイネーブル信号等)を生成し、各部へ供給する。
【0020】
シングルポートRAM17は、書き込みイネーブルWEがアクティブのとき、アドレス入力端Aに供給されるアドレスに従って、入力端Iに供給されるデータを記憶する一方、書き込みイネーブルWEが非アクティブのとき、アドレス入力端Aに供給されるアドレスに記憶されているデータを読み出して出力端Oから出力し、ラッチ回路18,19に供給する。
【0021】
ラッチ回路18,19は、シングルポートRAM17から出力されるデータを、上記競合調整回路16から供給される制御信号(※3,※4)に従って保持し、それぞれデータDout1,Dout2として、所定タイミングで出力する。ラッチ回路18は、シングルポートRAM17をFIFOとして用いる場合のデータを保持するようになっており、該ラッチ回路18から出力されるデータは、例えばD/A変換器等へ供給される。また、ラッチ回路19は、シングルポートRAM17をアキュムレータとして用いる場合のデータを保持するようになっている。
【0022】
B−2.第1実施形態の動作
次に、上述した第1実施形態による動作について説明する。
(a)FIFOとして用いる場合(PUSH)
まず、PUSHリクエストでは、PUSHリクエストPUSH-reqを供給するとともに、データDin1を供給する。競合調整回路16では、上記PUSHリクエストPUSH-reqの発生に従って、制御信号(※1,※5)、選択回路15への制御信号(選択信号)、シングルポートRAM17への書き込みイネーブル信号を、所定タイミングで発生し、各部へ供給する。
【0023】
上記データDin1は、競合調整回路16からの制御信号(※1)に従って、ラッチ回路10に保持される。次に、上記ラッチ回路10に保持されたデータDin1は、選択回路12において、競合調整回路16からの制御信号(※5)に従って選択され、シングルポートRAM17の入力端子Iに供給される。
【0024】
一方、カウンタ13では、PUSHリクエストPUSH-reqが供給されると、カウント値を更新する。次に、更新されたカウント値は、選択回路15において、競合調整回路16からの制御信号(選択信号)に従って選択され、シングルポートRAM17のアドレス入力端Aに供給される。
【0025】
シングルポートRAM17では、上記アドレス入力端Aに供給されたカウント値をアドレスとして、競合調整回路16から書き込みイネーブル信号が供給されるタイミングで、上記入力端に供給されたデータDin1を記憶(PUSH)する。
【0026】
(b)FIFOとして用いる場合(POP)
次に、POPリクエストでは、POPリクエストPOP-reqを供給する。競合調整回路16では、上記POPリクエストPOP-reqの発生に従って、制御信号(※3)、選択回路15への制御信号(選択信号)、シングルポートRAM17への書き込みイネーブル信号を、所定タイミングで発生し、各部へ供給する。
【0027】
カウンタ14では、POPリクエストPOP-reqが供給されると、カウント値を更新する。次に、選択回路15では、競合調整回路16からの制御信号(選択信号)に従って、更新されたカウント値が選択され、シングルポートRAM17のアドレス入力端Aに供給される。
【0028】
シングルポートRAM17では、競合調整回路16からの書き込みイネーブルWEが非アクティブとなるタイミングで、上記アドレス入力端Aに供給されたカウント値をアドレスとして、該アドレスに記憶されているデータを読み出して出力端Oから出力する。該データは、競合調整回路16からの制御信号(※3)に従って、ラッチ回路18に保持され、データDout1として後段の回路に出力される。
【0029】
(c)ランダムアクセスメモリ(書き込み)
まず、ランダムアクセスメモリとしてデータを書き込む場合には、書き込みリクエストW-req、書き込みアドレスW-addを供給するとともに、データDin2を供給する。競合調整回路16では、上記書き込みリクエストW-reqの発生に従って、制御信号(※2,※5)、選択回路15への制御信号(選択信号)、シングルポートRAM17への書き込みイネーブル信号を、所定タイミングで発生し、各部へ供給する。
【0030】
上記データDin2は、競合調整回路16からの制御信号(※2)に従って、ラッチ回路11に保持される。次に、上記ラッチ回路11に保持されたデータDin2は、選択回路12において、競合調整回路16からの制御信号(※5)に従って選択され、シングルポートRAM17の入力端子Iに供給される。
【0031】
一方、選択回路15では、競合調整回路16からの制御信号(選択信号)に従って、書き込みアドレスW-addが選択され、シングルポートRAM17のアドレス入力端Aに供給される。
【0032】
シングルポートRAM17では、上記アドレス入力端Aに供給された書き込みアドレスW-addに従って、競合調整回路16から書き込みイネーブル信号が供給されるタイミングで、上記入力端に供給されたデータDin2を記憶する。
【0033】
(d)ランダムアクセスメモリ(読み出し)
次に、ランダムアクセスメモリとしてデータを読み出す場合には、読み出しリクエストR-reqとともに、読み出しアドレスR-addを供給する。競合調整回路16では、上記読み出しリクエストR-reqの発生に従って、制御信号(※4)、選択回路15への制御信号(選択信号)、シングルポートRAM17への書き込みイネーブル信号を、所定タイミングで発生し、各部へ供給する。
【0034】
次に、選択回路15では、競合調整回路16からの制御信号(選択信号)に従って、読み出しアドレスR-addが選択され、シングルポートRAM17のアドレス入力端Aに供給される。
【0035】
シングルポートRAM17では、競合調整回路16からの書き込みイネーブルWEが非アクティブとなるタイミングで、上記アドレス入力端Aに供給された読み出しアドレスR-addに記憶されているデータを読み出して出力端Oから出力する。該データは、競合調整回路16からの制御信号(※4)に従って、ラッチ回路19に保持され、データDout2として後段の回路に出力される。
【0036】
(e)アキュムレータ
上述した構成では、FIFOとランダムアクセスメモリとしての使用しか説明していないが、アキュムレータとして用いる場合には、上述した読み出し手順で、読み出しリクエストR-req、読み出しアドレスR-addに従って、元になるデータを読み出した後、演算を施し、上述した書き込み手順で、同一アドレスに書き込むようにすればよい。
【0037】
C.第2実施形態
C−1.第2実施形態の構成
上述した第1実施形態では、書き込み2系統、読み出し2系統と、シングルポートRAM17への負担が大きいので、本第2実施形態では、書き込みと読み出しが独立しているデュアルポートRAMを使用している。ここで、図3は、本発明の第2実施形態の構成を示すブロック図である。なお、図1、図2に対応する部分には同一の符号を付けて説明を省略する。図において、デュアルポートRAM20は、書き込みおよび読み出しを並行して行うことができるので、データのPUSHおよび書き込み系と、データのPOPおよび読み出し系とを、それぞれ独立して設けている。
【0038】
選択回路15aは、図2に示す選択回路15に相当し、デュアルポートRAM20をランダムアクセスする際の書き込みアドレスW-addまたは上記PUSHリクエストPUSH-reqに対するカウント値のいずれかを、後述する競合調整回路16aからの制御信号に従って選択し、デュアルポートRAM20の書き込みアドレス入力端WAに供給する。また、選択回路15bは、デュアルポートRAM20をランダムアクセスする際の読み出しアドレスR-addまたはPOPリクエストPOP-reqに対するカウント値のいずれかを、後述する競合調整回路16bからの制御信号に従って選択し、デュアルポートRAM20の読み出しアドレス入力端RAに供給する。
【0039】
次に、競合調整回路16aは、デュアルポートRAM20をランダムアクセスする際の書き込みリクエストW-reqまたはPUSHリクエストPUSH-reqの発生に従って、ラッチ回路10,11、選択回路12,15aに対する制御信号(選択信号やラッチタイミング信号等)を生成し、各部へ供給する。また、競合調整回路16bは、デュアルポートRAM20をランダムアクセスする際の読み出しリクエストR-reqまたはPOPリクエストPOP-reqの発生に従って、選択回路15b、後述するラッチ回路18,19に対する制御信号(選択信号やラッチタイミング信号等)を生成し、各部へ供給する。
【0040】
この第1実施形態では、RAMとしてシングルポートのものを使用しているので、安価にFIFO処理とアキュムレータ処理(またはランダムアクセス処理)を実現できる。
【0041】
C−2.第2実施形態の動作
次に、上述した第2実施形態による動作について説明する。
(a)FIFOとして用いる場合(PUSH)
まず、PUSHリクエストでは、PUSHリクエストPUSH-reqを供給するとともに、データDin1を供給する。競合調整回路16aでは、上記PUSHリクエストPUSH-reqの発生に従って、制御信号(※1〜※3)、選択回路15aへの制御信号(選択信号)を、所定タイミングで発生し、各部へ供給する。
【0042】
上記データDin1は、競合調整回路16aからの制御信号(※1)に従って、ラッチ回路10に保持される。次に、上記ラッチ回路10に保持されたデータDin1は、選択回路12において、競合調整回路16aからの制御信号(※3)に従って選択され、デュアルポートRAM20の入力端子Iに供給される。
【0043】
一方、カウンタ13では、PUSHリクエストPUSH-reqが供給されると、カウント値を更新する。次に、更新されたカウント値は、選択回路15aにおいて、競合調整回路16からの制御信号(選択信号)に従って選択され、デュアルポートRAM20の書き込みアドレス入力端WAに供給される。
【0044】
デュアルポートRAM20では、上記書き込みアドレス入力端WAに供給されたカウント値をアドレスとして、上記入力端Iに供給されたデータDin1を記憶(PUSH)する。
【0045】
(b)FIFOとして用いる場合(POP)
次に、POPリクエストでは、POPリクエストPOP-reqを供給する。競合調整回路16bでは、上記POPリクエストPOP-reqの発生に従って、制御信号(※4)、選択回路15bへの制御信号(選択信号)を、所定タイミングで発生し、各部へ供給する。
【0046】
カウンタ14では、POPリクエストPOP-reqが供給されると、カウント値を更新する。次に、選択回路15bでは、競合調整回路16bからの制御信号(選択信号)に従って、更新されたカウント値が選択され、デュアルポートRAM20の読み出しアドレス入力端RAに供給される。
【0047】
デュアルポートRAM20では、上記読み出しアドレス入力端RAに供給されたカウント値をアドレスとして、該アドレスに記憶されているデータを読み出して出力端Oから出力する。該データは、競合調整回路16bからの制御信号(※4)に従って、ラッチ回路18に保持され、データDout1として後段の回路に出力される。
【0048】
(c)ランダムアクセスメモリ(書き込み)
まず、ランダムアクセスメモリとしてデータを書き込む場合には、書き込みリクエストW-req、書き込みアドレスW-addを供給するとともに、データDin2を供給する。競合調整回路16aでは、上記書き込みリクエストW-reqの発生に従って、制御信号(※2,※3)、選択回路15aへの制御信号(選択信号)を、所定タイミングで発生し、各部へ供給する。
【0049】
上記データDin2は、競合調整回路16aからの制御信号(※2)に従って、ラッチ回路11に保持される。次に、上記ラッチ回路11に保持されたデータDin2は、選択回路12において、競合調整回路16aからの制御信号(※3)に従って選択され、デュアルポートRAM20の入力端子Iに供給される。
【0050】
一方、選択回路15aでは、競合調整回路16aからの制御信号(選択信号)に従って、書き込みアドレスW-addが選択され、デュアルポートRAM20の書き込みアドレス入力端WAに供給される。
【0051】
デュアルポートRAM20では、上記書き込みアドレス入力端WAに供給された書き込みアドレスW-addに従って、記入力端Iに供給されたデータDin2を記憶する。
【0052】
(d)ランダムアクセスメモリ(読み出し)
次に、ランダムアクセスメモリとしてデータを読み出す場合には、読み出しリクエストR-reqとともに、読み出しアドレスR-addを供給する。競合調整回路16bでは、上記読み出しリクエストR-reqの発生に従って、制御信号(※5)、選択回路15bへの制御信号(選択信号)を、所定タイミングで発生し、各部へ供給する。
【0053】
次に、選択回路15bでは、競合調整回路16bからの制御信号(選択信号)に従って、読み出しアドレスR-addが選択され、デュアルポートRAM20の読み出しアドレス入力端RAに供給される。
【0054】
デュアルポートRAM20では、上記読み出しアドレス入力端RAに供給された読み出しアドレスR-addに記憶されているデータを読み出して出力端Oから出力する。該データは、競合調整回路16bからの制御信号(※5)に従って、ラッチ回路19に保持され、データDout2として後段の回路に出力される。
【0055】
(e)アキュムレータ
上述した構成では、第1実施形態と同様に、FIFOとランダムアクセスメモリとしての使用しか説明していないが、アキュムレータとして用いる場合には、上述した読み出し手順で、読み出しリクエストR-req、読み出しアドレスR-addに従って、元になるデータを読み出した後、演算を施し、上述した書き込み手順で、同一アドレスに書き込むようにすればよい。また、動作クロック内で、読み出し→演算→書き込みの一連の処理が行えると仮定すると、読み出しアドレスR-addと書き込みアドレスW-addを同一にして、アキュムレート動作が行える。動作クロック内で一連の処理が間に合わなければ、一旦、演算用レジスタに保持し、次の動作同期で書き込むようにすればよい。
【0056】
この第2実施形態では、RAMとしてデュアルポートのものを使用し、書き込み系と読み出し系とを分離しているので、競合の発生確立を低減でき、確実に動作する。
【0057】
D.第3実施形態
上述した第1実施形態および第2実施形態では、FIFOとランダムアクセス(またはアキュムレート)するデータの関係については特定していない。すなわち、FIFOするデータとランダムアクセス(またはアキュムレート)するデータとが全く無関係な場合であっても本発明が適用できることを示している。この本第3実施形態では、FIFOするデータとアキュムレートするデータとが密接に関連する場合について説明する。
【0058】
D−1.基本構成
ここで、図4は、第3実施形態の基本構成を示すブロック図である。図において、加算器22は、入力されるデータとRAM23から読み出されたデータとに所定の係数を乗算した後に加算し、その加算したデータをRAM23に書き込む。すなわち、書き込み要求(PUSHリクエスト)に対しては、指示されるアドレスのデータを一旦読み出し、入力データとの間で所定の演算を行った後、同一のアドレスに書き込む動作を行う。一方、読み出し要求(POPリクエスト)に対しては、指示されるアドレスからデータを読み出して出力する動作を行う。以下、このようにFIFOのPUSHに連動してアキュムレートを同時に行う処理(機能)を便宜上アキュムレータFIFO処理(機能)と呼ぶことにする。
【0059】
D−2.第3実施形態の具体的構成
次に、図5は、本第3実施形態の具体的な構成を示すブロック図である。なお、図1〜図4に対応する部分には同一の符号を付けて説明を省略する。図において、選択回路15cは、シングルポートRAM17をアキュムレータ、FIFOとして用いる際のPUSHリクエストPUSH-reqに対するカウント値、またはPOPリクエストPOP-reqに対するカウント値のいずれかを、後述する競合調整回路16cからの制御信号に従って選択し、シングルポートRAM17のアドレス入力端Aに供給する。
【0060】
次に、競合調整回路16cは、上記PUSHリクエストPUSH-reqまたは上記POPリクエストPOP-reqの発生に従って、選択回路15c、シグルポートRAM17、ラッチ回路18,19に対する制御信号(選択信号やラッチタイミング信号、書き込みイネーブル信号等)を生成し、各部へ供給する。また、ラッチ回路18は、上記制御信号に従って、シングルポートRAM17から出力されるデータを保持し、そのデータを加算器25に供給する。加算器25は、一方の入力端に供給されるデータDinと、上記他方の入力端に供給されるラッチ回路18からのデータとを適当に重み付けした後に加算し、シングルポートRAM17の入力端Iに供給するようになっている。また、ラッチ回路19は、上記制御信号に従って、シングルポートRAM17から出力されるデータを保持し、データDoutとして後段の回路へ出力する。
【0061】
D−3.第3実施例の動作
(a)FIFOとして用いる場合(PUSH)
まず、データDinとともにPUSHリクエストPUSH-reqが供給されると、競合調整回路16cでは、上記PUSHリクエストPUSH-reqの発生に従って、選択回路15cへの制御信号(選択信号)およびシングルポートRAM17への書き込みイネーブルWEを、所定タイミングで発生し、各部へ供給する。具体的には、第1のタイミングで、選択回路15cでカウンタ13のカウント値を選択するとともに書き込みイネーブルWEを読み出しに設定することでカウンタ13のカウント値に対応したアドレスのデータを読み出してラッチ回路18でラッチする。そして、続く第2のタイミングで、書き込みイネーブルWEを書き込みに設定することで、第1のタイミングで読み出したデータと入力データDinとの間の演算結果(加算器25の出力)を同一のアドレスに書き込む。
【0062】
(b)アキュムレータFIFO(POP)
次に、POPリクエストでは、POPリクエストPOP-reqを供給する。競合調整回路16cでは、上記POPリクエストPOP-reqの発生に従って、制御信号(※2)、選択回路15cへの制御信号(選択信号)、およびシングルポートRAM17への書き込みイネーブルWEを、所定タイミングで発生し、各部へ供給する。
【0063】
カウンタ14では、POPリクエストPOP-reqが供給されると、カウント値を更新する。次に、選択回路15cでは、競合調整回路16cからの制御信号(選択信号)に従って、更新されたカウント値が選択され、シングルポートRAM17のアドレス入力端Aに供給される。
【0064】
シングルポートRAM17では、上記アドレス入力端Aに供給されたカウント値をアドレスとして、該アドレスに記憶されているデータを読み出して出力端Oから出力する。該データは、競合調整回路16cからの制御信号(※2)に従って、ラッチ回路19に保持され、データDoutとして後段の回路に出力される。
【0065】
なお、この第3実施形態(図5の構成)でアキュムレートを伴わない通常のFIFO処理を行うには、入力データDinに乗算する係数を「1」にするとともに、競合調整回路16cにより各部を適切に制御すればよい。また、この第3実施形態を第2実施形態(図3の構成)のようにデュアルポートRAMで実現することも可能である。
【0066】
E.第4実施形態
次に、本発明の第4実施形態について説明する。この第4実施形態では、第3実施形態と同様の処理(アキュムレータFIFO諸Rい)を、シングルポートRAMをダブルバッファ構成で使用して行っている。
E−1.第4実施形態の構成
ここで、図6は、第4実施形態の構成を示すブロック図である。なお、図1〜図5に対応する部分には同一の符号を付けて説明を省略する。図において、選択回路28aは、バッファ切替信号BuffSWに従って、カウンタ13のカウンタ値またはカウンタ14のカウンタ値のいずれか一方を選択し、シングルポートRAM17aのアドレス入力端Aに供給する。具体的には、選択回路28aは、バッファ切替信号BuffSWが「1」のとき、カウンタ13のカウンタ値をシングルポートRAM17aに供給し、バッファ切替信号BuffSWが「0」のとき、カウンタ14のカウンタ値をシングルポートRAM17aに供給する。
また、選択回路28bは、バッファ切替信号BuffSWに従って、カウンタ14のカウンタ値またはカウンタ13のカウンタ値のいずれか一方を選択し、シングルポートRAM17bのアドレス入力端Aに供給する。具体的には、選択回路28bは、バッファ切替信号BuffSWが「1」のとき、カウンタ14のカウンタ値をシングルポートRAM17bに供給し、バッファ切替信号BuffSWが「0」のとき、カウンタ13のカウンタ値をシングルポートRAM17bに供給する。
【0067】
遅延回路29は、PUSHリクエストPUSH-reqを遅延させ、AND回路30aの一方の入力端、およびAND回路30bの一方の入力端に供給する。AND回路30aは、バッファ切替信号BuffSWが「1」のとき、遅延されたPUSHリクエストPUSH-reqが「0」で、シングルポートRAM17aの書き込みイネーブルWEをアクティブとする。また、AND回路30bは、バッファ切替信号BuffSWが「0」のとき、遅延されたPUSHリクエストPUSH-reqが「0」で、シングルポートRAM17bの書き込みイネーブルWEをアクティブとする。
【0068】
次に、シングルポートRAM17aは、書き込みイネーブルWEがアクティブのとき、アドレス入力端に供給されるカウンタ値(カウンタ13またはカウンタ14)をアドレスとし、入力端Iに供給されるデータを記憶する。また、シングルポートRAM17aは書き込みイネーブルWEが非アクティブのとき、アドレス入力端に供給されるカウンタ値(カウンタ13またはカウンタ14)をアドレスとし、該アドレスに記憶されているデータを読み出し、出力端Oから出力する。一方、シングルポートRAM17bは、書き込みイネーブルWEがアクティブのとき、アドレス入力端に供給されるカウンタ値(カウンタ13またはカウンタ14)をアドレスとし、入力端Iに供給されるデータを記憶する。また、シングルポートRAM17bは書き込みイネーブルWEが非アクティブのとき、アドレス入力端に供給されるカウンタ値(カウンタ13またはカウンタ14)をアドレスとし、該アドレスに記憶されているデータを読み出し、出力端Oから出力する。
【0069】
選択回路40aは、バッファ切替信号BuffSWに従って、シングルポートRAM17aの出力データまたはシングルポートRAM17bの出力データのいずれか一方を選択し、演算器42に供給する。具体的には、選択回路40aは、バッファ切替信号BuffSWが「1」のとき、シングルポートRAM17aの出力データを演算器42に供給し、バッファ切替信号BuffSWが「0」のとき、シングルポートRAM17bの出力データを演算器42に供給する。また、選択回路40bは、バッファ切替信号BuffSWに従って、シングルポートRAM17bの出力データまたはシングルポートRAM17aの出力データのいずれか一方を選択し、データDoutとして出力する。具体的には、選択回路40bは、バッファ切替信号BuffSWが「1」のとき、シングルポートRAM17bの出力データをデータDoutとして出力し、バッファ切替信号BuffSWが「0」のとき、シングルポートRAM17aの出力データをデータDoutとして出力する。
【0070】
E−2.第4実施形態の動作
次に、上述した第4実施形態の動作について説明する。ここで、図7は、第4実施形態の動作を説明するためのタイミングチャートである。シングルポートRAM17a,17bへのPUSHまたはPOPは、バッファ切替信号BuffSWを交互に切替ることにより行われる。バッファ切替信号BuffSWが「1」のときには、シングルポートRAM17aへPUSH(データ書き込み)が行われ、シングルポートRAM17bへPOP(データ読み出し)が行われる一方、バッファ切替信号BuffSWが「0」のときには、シングルポートRAM17aへPOP(データ読み出し)が行われ、シングルポートRAM17bへPUSH(データ書き込み)が行われる
【0071】
また、アキュムレータFIFOとして動作する場合には、PUSHリクエストPUSH-reqを供給すると、まず、遅延されたPUSHリクエストPUSH-reqが非アクティブのときに、カウンタ13または14のカウンタ値で示されるアドレスのデータがシングルポートRAM17aまたは17bから読み出され、選択回路40aを介して演算器42に供給される。演算器42では、上記読み出されたデータと入力されたデータDinとを演算する。該演算されたデータは、遅延されたPUSHリクエストPUSH-reqがアクティブのときに、シングルポートRAM17bの同一アドレスに記憶される。
【0072】
この第4実施形態では、PUSHとPOPの競合を回避して、確実なアキュムレータFIFO動作が行える。
【0073】
【発明の効果】
以上、説明したように、この発明によれば、記憶手段をFIFOとして用いる場合には、前記アドレス生成手段によってFIFO用のアドレスを生成し、該アドレスを切替手段を介して記憶手段に供給し、PUSHもしくはPOPを行い、一方、アキュムレータとして用いる場合には、ランダムアクセス用のアドレスを切替手段を介して記憶手段に供給し、該アドレスでデータを読み出し、外部で演算した後、再び、同一アドレスに書き込むようにするようにしたので、アキュムレータとFIFOとを一体とすることが可能となり、回路サイズを小さくすることができるという利点が得られる。
【図面の簡単な説明】
【図1】 本発明の実施形態の基本構成を示すブロック図である。
【図2】 第1実施形態の構成を示すブロック図である。
【図3】 第2実施形態の構成を示すブロック図である。
【図4】 本発明をアキュムレータFIFOとして用いる場合の基本構成を示すブロック図である。
【図5】 本発明をアキュムレータFIFOとして用いる場合の具体的な構成を示すブロック図である。
【図6】 第4実施形態の構成を示すブロック図である。
【図7】 第4実施形態の動作を説明するためのタイミングチャートである。
【図8】 従来のアキュムレータとFIFOの構成を示すブロック図である。
【符号の説明】
1,3 ポインタ(アドレス生成手段)
2,4 選択回路(切替手段)
5 デュアルポートRAM(記憶手段)
10,11 ラッチ回路
12 選択回路
13 カウンタ(アドレス生成手段、書き込みアドレス生成手段)
14 カウンタ(アドレス生成手段、読み出しアドレス生成手段)
15 選択回路(切替手段)
15a 選択回路(書き込みアドレス切替手段)
15b 選択回路(読み出しアドレス切替手段)
15c 選択回路(切替手段)
16 競合調整回路(調整手段)
16a 競合調整回路(書き込み調整手段)
16b,16c 競合調整回路(読み出し調整手段)
17,17a,17b シングルポートRAM(記憶手段)
18,19 ラッチ回路
20 デュアルポートRAM(記憶手段)
25 加算器
29 遅延回路
30a,30b AND回路
40a,40b 選択回路

Claims (1)

  1. ランダムアクセス可能な記憶手段のデータ入出力制御を行うデータ記憶装置において、
    ランダムアクセス可能な記憶手段と、
    前記記憶手段に対するデータの書き込み要求が生じると、所定の規則に従って書き込みアドレスを生成する書き込みアドレス生成手段と、
    前記記憶手段に対するデータの読み出し要求が生じると、所定の規則に従って読み出しアドレスを生成する読み出しアドレス生成手段と、
    所定の切替信号に従って、前記書き込みアドレス生成手段によって生成された書き込みアドレスと前記読み出しアドレス生成手段によって生成された読み出しアドレスとを選択的に切り替える切替手段と、
    前記書き込み要求および前記読み出し要求の有無に応じて、前記切替手段への切替信号および前記記憶手段への書き込み/読み出し指示信号を生成する調整手段と
    入力されるデータに前記記憶手段から出力されるデータを加算する演算手段とを具備し、
    前記書き込み要求が生じると、まず、前記書き込みアドレス生成手段は、書き込み要求に応じて、書き込みアドレスを生成し、前記記憶手段は、該書き込みアドレスに記憶されているデータを読み出し、次いで、前記加算手段は、入力されるデータと前記記憶手段から読み出したデータとを加算した後、前記記憶手段は、該加算したデータを前記書き込みアドレスへ書き込む
    ことを特徴とするデータ記憶装置。
JP20357997A 1997-07-29 1997-07-29 データ記憶装置 Expired - Lifetime JP3755249B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP20357997A JP3755249B2 (ja) 1997-07-29 1997-07-29 データ記憶装置
US09/120,277 US6266746B1 (en) 1997-07-29 1998-07-22 Control apparatus for random access memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20357997A JP3755249B2 (ja) 1997-07-29 1997-07-29 データ記憶装置

Publications (2)

Publication Number Publication Date
JPH1145561A JPH1145561A (ja) 1999-02-16
JP3755249B2 true JP3755249B2 (ja) 2006-03-15

Family

ID=16476449

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20357997A Expired - Lifetime JP3755249B2 (ja) 1997-07-29 1997-07-29 データ記憶装置

Country Status (1)

Country Link
JP (1) JP3755249B2 (ja)

Also Published As

Publication number Publication date
JPH1145561A (ja) 1999-02-16

Similar Documents

Publication Publication Date Title
JP4812058B2 (ja) Fifo管理方法及びパイプラインプロセッサシステム
US5567900A (en) Electronic tone generator system with CPU and DSP
JPH06295257A (ja) デジタル信号処理システム
US5657466A (en) Circuit for designating write and read address to provide a delay time in a sound system
JP3755249B2 (ja) データ記憶装置
JP3803150B2 (ja) 画像処理装置
US6266746B1 (en) Control apparatus for random access memories
CN114363769A (zh) 数字信号处理装置以及数字信号处理装置的控制方法
US20070233934A1 (en) Signal processor
US6766403B2 (en) CPU system with high-speed peripheral LSI circuit
JPH0444136A (ja) メモリアクセス制御装置
JP4478592B2 (ja) メモリ回路
JP4232914B2 (ja) シングルポートram用制御回路
JP4851964B2 (ja) デュアルポートメモリを用いた同期化回路
JP2723843B2 (ja) デュアルポートメモリ制御回路
KR100557561B1 (ko) Fifo 저장 장치
JPH033048A (ja) 情報処理装置
JPH05165609A (ja) ディジタル信号プロセッサの疑似乱数発生回路
JP3255429B2 (ja) メモリ・インタフェース回路
JP2580649B2 (ja) 記憶装置制御方式
JPH07253920A (ja) Fifo ram コントローラ
JPH07262075A (ja) ディジタル信号処理装置
JPH1124689A (ja) 効果音処理装置
JPH04145785A (ja) 倍速変換回路
JPH03250328A (ja) 情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050405

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: 20051129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051212

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

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: 20100106

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110106

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120106

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130106

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140106

Year of fee payment: 8

EXPY Cancellation because of completion of term