(57)【要約】【課題】ライト動作時にウェイト機能をもたないＣＰＵで、ライト動作時にウェイトが発生した場合にもリトライ処理機構を不要にしてアクセスおよびデータ書込みを可能にする。また、ＣＰＵからみてアクセス処理遅れを発生しない。【解決手段】ＦＰＧＡ４はウェイト機能をもたないＣＰＵ２Ａによるライト動作時にウェイトが発生した場合にメモリライトサイクル時のアドレスおよび書込みデータを記憶しておき、ＣＰＵに代わって書込動作を代行する。  ＦＰＧＡは代行書込みのアクセス待ちになっている状態をＣＰＵに通知し、ＣＰＵは代行書込みのアクセス待ち状態のときには連続してアクセスを発生することを禁止する。また、代行書込み時にＣＰＵから発生するアドレス、データを複数個記憶し、この記憶したアドレス、データをデュアルポートメモリに逐次書き込んでいくことも含む。【選択図】図１
2007316880.tif 000002
【特許請求の範囲】
【請求項１】
ライト動作時にウェイト機能をもたないＣＰＵによるデュアルポートメモリへのアクセスおよびデータ書込みをアクセス権調停機構で調停するデュアルポートメモリのアクセス権調停方式であって、
前記アクセス権調停機構は、前記ＣＰＵによる前記デュアルポートメモリへのアクセスに対してウェイトが必要になった場合のみ、メモリライトサイクル時のアドレスおよび書込みデータを記憶しておく記憶手段と、前記デュアルポートメモリに対するアクセス権が得られた時点で前記記憶手段に記憶しておいたアドレスと書込みデータをデュアルポートメモリに書込む代行書込み手段とを備えたことを特徴とするデュアルポートメモリのアクセス権調停方式。
【請求項２】
前記アクセス権調停機構は、前記代行書込みのアクセス待ちになっている状態を前記ＣＰＵに通知するためのアクセス待ち確認レジスタを備え、
前記ＣＰＵは代行書込みのアクセス待ち状態のときには連続してアクセスを発生することを禁止することを特徴とする請求項１に記載のデュアルポートメモリのアクセス権調停方式。
【請求項３】
前記アクセス権調停機構は、代行書込み時に前記ＣＰＵから発生するアドレスと書き込みデータを複数個記憶できるバッファと、このバッファに記憶したアドレスと書き込みデータを前記デュアルポートメモリに逐次書き込んでいくことを特徴とする請求項１または２に記載のデュアルポートメモリのアクセス権調停方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デュアルポートメモリのアクセス権調停方式に係り、特にライト動作時にウェイト機能をもたないＣＰＵによるアクセスおよびデータ書込みに対するアクセス権調停方式に関する。
【背景技術】
【０００２】
複数のＣＰＵが共通のデータを利用する場合に、デュアルポートメモリを利用することが多い。このデュアルポートメモリは、それぞれのＣＰＵからアクセスできるように２系統のアドレス、データ、各種制御信号が用意されている。このデュアルポートメモリは通常動作時はそれぞれのＣＰＵからアクセスが行われるが、同一アドレスに同時アクセスが発生した場合、片方のＣＰＵにウェイト信号を出す機能を設けている。この信号を受けたＣＰＵはウェイトが解除されるまでメモリアクセスを延長し、衝突が起こるのを回避している。
【０００３】
ところで、既存のデュアルポートメモリはメモリ容量が少ないもの、製造中止になるものが多く、現在では新規開発品への使用を避ける傾向にある。この場合、デュアルポートメモリの変わりにＳＲＡＭを使用して、外部に調停機構を設けてデュアルポートメモリに近い機能（以下、デュアルポートメモリ機能）を持たせるようにしている。
【０００４】
この例を図３に示し、メモリアクセス使用権の調停機構をＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）１にもたせ、２つのＣＰＵ２Ａ，２Ｂから同時にＳＲＡＭ３へのアクセスが発生した場合に、ＦＰＧＡ１は片方のＣＰＵにウェイト信号を出力するとともに、ＳＲＡＭ３へのアドレス、データのセレクトをして衝突を防ぐ。
【０００５】
上記のデュアルポートメモリ、またはＳＲＡＭを使ったデュアルポートメモリ機能共に、必ず必要な機能はＣＰＵのウェイト機能である。この機能は上記のようにウェイト信号が入力されている間、ＣＰＵはメモリサイクルを延長し、ウェイトが解除後にアクセスを継続する。
【０００６】
ここで、ＣＰＵまたはプロセッサには、デュアルポートメモリ機能が必要な場合でも、ウェイト機能をサポートしていないものや、サポートしていてもリードまたはライトの片方しかサポートしていないものがある。このようなＣＰＵまたはプロセッサによるデュアルポートメモリのアクセス権調停では誤ったアクセスおよびデータ書込みのおそれがある。
【０００７】
例として２個のＣＰＵ（ＣＰＵ２Ａ、ＣＰＵ２Ｂ）のうち、ＣＰＵ２Ａがリード動作にはウェイト対応しているが、ライト動作がウェイト非対応の場合、アクセス権調停機構がＣＰＵ２Ｂにウェイトを出した場合には問題ないが、ＣＰＵ２Ａのライト時にウェイトを出した場合、ＣＰＵ２Ａはメモリサイクルを延長できないため、正常にデータを書き込めないままメモリサイクルを完了してしまう。
【０００８】
このような不都合を解消するシステムが提案されている（例えば、特許文献１参照）。このシステムでは、デュアルポートメモリは２つのポートで受け付けたアクセスが競合した場合に後にアクセスを受け付けたポートからアクセスの競合を通知するビジー信号を出力するものとし、２つのポートのうちの一方のポートからビジー信号が出力されたときに当該ビジー信号を保持する保持回路を設け、デュアルポートメモリへのアクセスが受け付けられたプロセッサはそのアクセス実行後に保持回路の保持内容がビジー信号であるときには実行したアクセスを再度行うリトライ処理を実行する。
【特許文献１】特開平９−２３１１２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
デュアルポートメモリ機能が必要な場合でも、ＣＰＵまたはプロセッサがウェイト機能をサポートしていない場合、前記の特許文献１では保持回路とリトライ処理機構によって書込み失敗を回避している。
【００１０】
しかし、この方式ではＣＰＵまたはプロセッサ側はリトライ処理機構を持つことが必要条件となり、この処理機構をもたないプロセッサ等はその改造が必要となる。
【００１１】
また、ライト動作時にウェイトが発生した場合のリトライ処理では、再度ＣＰＵからのライトアクセスを行うため、アクセス処理遅れが発生する。
【００１２】
本発明の目的は、上記の課題を解決したアクセス権調停方式を提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、前記の課題を解決するため、ライト動作時にウェイト機能をもたないＣＰＵで、ライト動作時にウェイトが発生した場合にＣＰＵに代わってＦＰＧＡ等のアクセス権調停機構が書込動作を代行するようにしたもので、以下の構成を特徴とする。
【００１４】
（１）ライト動作時にウェイト機能をもたないＣＰＵによるデュアルポートメモリへのアクセスおよびデータ書込みをアクセス権調停機構で調停するデュアルポートメモリのアクセス権調停方式であって、
前記アクセス権調停機構は、前記ＣＰＵによる前記デュアルポートメモリへのアクセスに対してウェイトが必要になった場合のみ、メモリライトサイクル時のアドレスおよび書込みデータを記憶しておく記憶手段と、前記デュアルポートメモリに対するアクセス権が得られた時点で前記記憶手段に記憶しておいたアドレスと書込みデータをデュアルポートメモリに書込む代行書込み手段とを備えたことを特徴とする。
【００１５】
（２）前記アクセス権調停機構は、前記代行書込みのアクセス待ちになっている状態を前記ＣＰＵに通知するためのアクセス待ち確認レジスタを備え、
前記ＣＰＵは代行書込みのアクセス待ち状態のときには連続してアクセスを発生することを禁止することを特徴とする。
【００１６】
（３）前記アクセス権調停機構は、代行書込み時に前記ＣＰＵから発生するアドレスと書き込みデータを複数個記憶できるバッファと、このバッファに記憶したアドレスと書き込みデータを前記デュアルポートメモリに逐次書き込んでいくことを特徴とする。
【発明の効果】
【００１７】
以上のとおり、本発明によれば、ライト動作時にウェイト機能をもたないＣＰＵで、ライト動作時にウェイトが発生した場合にＣＰＵに代わってＦＰＧＡ等のアクセス権調停機構が書込動作を代行するようにしたため、ＣＰＵは従来のリトライ処理機構を持つことが不要になるし、この処理機構をもたないＣＰＵの改造も不要となる。
【００１８】
また、従来のリトライ処理方式に比べて、ＣＰＵからの再度のライトアクセスがなされることなく、ＣＰＵからみてアクセス処理遅れが発生することもない。また、再度ライトアクセスを起こすと、再びアクセス権調停により待たされる可能性があるが、このような不都合は代行書込みにより解消される。
【発明を実施するための最良の形態】
【００１９】
（実施形態１）
図１は、本発明の実施形態を示す要部構成図である。同図が図３と異なる部分はアクセス件調停機構になるＦＰＧＡ４の機能構成にあり、ライト動作時にウェイト機能をもたない（リード動作時はウェイト機能有り）ＣＰＵ２Ａでデュアルポートメモリ機能へのアクセスおよびデータ書き込みを可能とするものである。
【００２０】
本実施形態では、ＦＰＧＡ４がＣＰＵ２Ａに代わって指定アドレスへのデータ書込を行う機能構成とする。
【００２１】
ＦＰＧＡ４は、従来と同様に、ＣＰＵ２Ａ，２Ｂからアクセス要求があると、ＳＲＡＭ３に対するアドレス、データ、制御信号の切り替え制御を行う。また、ＦＰＧＡ４は、ＳＲＡＭ３に対するアクセス権調停を行うが、このアクセス権調停に際して、ライト動作時にウェイト非対応のＣＰＵ２Ａにウェイトが必要になった場合のみ、メモリライトサイクル時のアドレスおよび書込みデータをＦＰＧＡ内に記憶しておく（１アクセス分のラッチ）。このとき、ＣＰＵ２Ａはライトサイクルを終了する。その後、アクセス権が得られた時点で、ＦＰＧＡ４は記憶しておいたアドレスと書込みデータをＳＲＡＭ３に書込む。すなわち、ＦＰＧＡ４はＣＰＵ２Ａに代行して当該アドレスにデータを書込む（以下、代行書込アクセス）。
【００２２】
なお、ＦＰＧＡ４は、ライト動作時にウェイト不要の場合、代行書込アクセスは発生せず、ＣＰＵ２Ａによる通常タイミングのメモリライトサイクル動作によりＳＲＡＭ３にデータが書き込まれる。
【００２３】
したがって、本実施形態によれば、リード動作時のみウェイト機能をサポートしているＣＰＵで、ライト動作時にウェイトが発生した場合にＣＰＵに代わって書込動作をＦＰＧＡが代行することにより、ＣＰＵは従来のリトライ処理機構を持つことが不要になるし、この処理機構をもたないＣＰＵの改造も不要となる。
【００２４】
また、従来のリトライ処理方式に比べて、ＣＰＵからの再度のライトアクセスがなされることなく、ＣＰＵからみてアクセス処理遅れが発生することもない。また、再度ライトアクセスを起こすと、再びアクセス権調停により待たされる可能性があるが、このような不都合は代行書込みにより解消される。
【００２５】
（実施形態２）
図２は、本発明の実施形態を示す要部構成図である。同図が図１と異なる部分はＦＰＧＡ４の追加機能として、ＣＰＵ２Ａに代行書込アクセス待ちになっている状態を通知する機能を搭載する点にある。
【００２６】
実施形態１の場合、ＣＰＵ２ＡがＦＰＧＡ４の代行書込アクセスがわからない場合、再度このＣＰＵ２Ａがライトアクセスを繰り返すと、ＦＰＧＡ４は１アクセス分のアドレス、データのラッチしかできないため、次のアドレス、データが記憶できなくなる。
【００２７】
そこで、本実施形態では、ＦＰＧＡ４内にはＣＰＵ２Ａに代行書込アクセス待ちを知らせるためのアクセス待ち確認レジスタを設ける。このレジスタの内容は、ＣＰＵ２Ａからアクセスして確認するか、ＦＰＧＡ４からＣＰＵ２Ａに対する割り込みを使っても良い。
【００２８】
本実施形態によれば、ＦＰＧＡ４による代行書込アクセス待ち状態をＣＰＵ２Ａが認識することができ、この認識によりＣＰＵ２Ａが代行書込みのアクセス待ちには連続してアクセスを発生することを禁止して的確なアクセスおよびデータ書き込みが可能となる。
【００２９】
（実施形態３）
本実施形態は、実施形態１または実施形態２の構成になるＦＰＧＡ４内に、代行書込み時にＣＰＵ２Ａから発生するアドレス、データを複数個記憶できるバッファを設けるものである。
【００３０】
実施形態２の場合、ＣＰＵ２Ａ内でデュアルポートメモリに対する連続アクセスが発生した場合にはＦＰＧＡ４による代行書込アクセス待ち状態の認識でウエイト状態になってしまう。
【００３１】
そこで、本実施形態では、ＣＰＵ２Ａ側のデュアルポートメモリへのアクセス処理をより高速にするために、ＦＰＧＡ４内にＣＰＵ２Ａによるライトアクセス時のアドレス、データ記憶にＦＩＦＯ機能を設ける。ＦＰＧＡ４はＦＩＦＯに格納されたデータをＣＰＵ２Ｂや、ＣＰＵ２Ａのリードサイクルとの調停を取りながらデュアルポートメモリに逐次書き込んでいく。この場合には、ＦＩＦＯがいっぱいになった場合のみ割り込み等を使用してＣＰＵ２Ａに通知する。
【００３２】
したがって、本実施形態によれば、ＣＰＵ２Ａ内でデュアルポートメモリに対する連続アクセスが発生した場合に、それらを一括してＦＰＧＡ４による代行書込みができ、ＣＰＵ２Ａの連続アクセス処理を容易にし、ＦＰＧＡ４は代行書込みの通知を一回ごとに行うことなく、その分処理が高速になる。
【００３３】
この場合も、ＦＩＦＯが空でライト動作時にウェイト不要の場合は、ＦＰＧＡ４は代行書込アクセスは発生せず、ＣＰＵによる通常タイミングのメモリライトサイクル動作によりメモリにデータが書き込まれる。
【００３４】
なお、以上までの実施形態では、ＦＰＧＡ４とＳＲＡＭ３を使用してデュアルポートメモリ機能を実現する場合を示すが、プロセッサなどで構成するアクセス権調停手段を使用してそれに代行書込み機能、代行書込み状態の通知、ＦＩＦＯ機能等を搭載することで同等の作用効果を得ることができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の実施形態１を示す要部構成図。
【図２】本発明の実施形態２を示す要部構成図。
【図３】ＦＰＧＡとＳＲＡＭで構成したデュアルポートメモリの例。
【符号の説明】
【００３６】
１、４  ＦＰＧＡ
２Ａ、２Ｂ  ＣＰＵ
３  ＳＲＡＭ
【図１】
2007316880.tif 000003
【図２】
2007316880.tif 000004
【図３】
2007316880.tif 000005