(57)【特許請求の範囲】
【請求項１】
所定のフレーム期間Ｔ内に、バッファメモリにＮ回のアクセスを必要とする第１の回路ブロックを含む複数の回路ブロックからの前記バッファメモリへのアクセス要求を、予め定められた優先順位に従って許可するメモリアクセスの調停を行うメモリ制御装置において、比較基準値に予め定められた数値Ｍを有する比較手段と、前記Ｔ内で、周期Ｔ／（Ｎ＋Ｍ）毎カウントアップし前記第１の回路ブロックに対してメモリアクセスが許可されればカウントダウンするアップダウンカウント手段を有し、そのアップダウンカウント手段の計数値と前記基準値Ｍを前記比較手段にて比較し、その比較出力に応じて前記第１の回路ブロックの優先順位を変更することを特徴とするメモリ制御装置。
【請求項２】
前記フレームの始まりに同期して、前記アップダウンカウント手段に初期値Ｐを与えることを特徴とする請求項１に記載のメモリ制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メモリ制御装置に関するものであり、特に、メモリアクセスの優先順位を変更してメモリアクセス効率化に特徴を有するものである。
【０００２】
【従来の技術】
外部記憶装置等に使用される信号処理ＬＳＩシステム等においては、記録媒体への読み出し／書き込みの為のメモリアクセス、制御マイコンからのメモリアクセス、ホストコンピュータとのデータ転送の為のメモリアクセス、バッファに格納されたデータに対する誤り訂正の為のメモリアクセス等を調停し、バッファメモリを有効に使用する必要がある。従来、バッファメモリの調停においては、あらかじめ決定された優先順位に従って調停を行っている。例えば、記録媒体への読み出し／書き込みの為のメモリアクセスを１番、制御マイコンからのメモリアクセスを２番、ホストコンピュータとのデータ転送の為のメモリアクセスを３番、誤り訂正の為のメモリアクセスを４番と優先順位を決定し、メモリアクセス調停を行っている。しかしこの方法では、ホストとのデータ転送速度が上がると誤り訂正処理の為のメモリアクセスが充分にできなくなり、誤り訂正処理が一定期間中に終了できなくなるという問題が生じることがあり、そのために、誤り訂正の為のメモリアクセスを３番、ホストとのデータ転送の為のメモリアクセスを４番とし、誤り訂正処理の為のメモリアクセスを一定間隔で発生させることによって、メモリへのアクセスを調停していた。
【０００３】
【発明が解決しようとする課題】
このようなメモリ制御装置においては、誤り訂正処理の為のメモリアクセスを一定間隔で発生している為、ホスト転送や、記録媒体とのデータ転送が中断している場合にメモリへのアクセスが可能であっても、誤り訂正処理の為のメモリアクセスができなくなったり、また、その期間の誤り訂正の為のメモリアクセスを許可するようなシステムであったとしても、その期間に誤り訂正処理の為にメモリアクセスを行ったという情報はそれ以後のメモリ調停に生かされず、メモリアクセスの効率化に問題があった。
【０００４】
【課題を解決するための手段】
前記課題を解決するために、本発明のメモリ制御装置は、所定のフレーム期間Ｔ内に、バッファメモリにＮ回のアクセスを必要とする第１の回路ブロックを含む複数の回路ブロックからの前記バッファメモリへのアクセス要求を、予め定められた優先順位に従って許可するメモリアクセスの調停を行うメモリ制御装置において、比較基準値に予め定められた数値Ｍを有する比較手段と、前記Ｔ内で、周期Ｔ／（Ｎ＋Ｍ）毎カウントアップし前記第１の回路ブロックに対してメモリアクセスが許可されればカウントダウンするアップダウンカウント手段を有し、そのアップダウンカウント手段の計数値と前記基準値Ｍを前記比較手段にて比較し、その比較出力に応じて前記第１の回路ブロックの優先順位を変更することを特徴としたものである。
【０００５】
本発明によれば、ホストへの転送速度を落とさずに、メモリアクセスを調停できバッファメモリを有効に活用することができるメモリ制御装置を提供できる。
【０００６】
【発明の実施の形態】
本発明の請求項１に記載のメモリ制御装置は、所定のフレーム期間Ｔ内に、バッファメモリにＮ回のアクセスを必要とする第１の回路ブロックを含む複数の回路ブロックからの前記バッファメモリへのアクセス要求を、予め定められた優先順位に従って許可するメモリアクセスの調停を行うメモリ制御装置において、比較基準値に予め定められた数値Ｍを有する比較手段と、前記Ｔ内で、周期Ｔ／（Ｎ＋Ｍ）毎カウントアップし前記第１の回路ブロックに対してメモリアクセスが許可されればカウントダウンするアップダウンカウント手段を有し、そのアップダウンカウント手段の計数値と前記基準値Ｍを前記比較手段にて比較し、その比較出力に応じて前記第１の回路ブロックの優先順位を変更することを特徴としたものであり、ホストへの転送速度を落とさずに、メモリアクセス要求を調停できバッファメモリを効率的に活用することができる。
【０００７】
次に、請求項２に記載されたメモリ制御装置は、請求項１において、前記フレームの始まりに同期して、前記アップダウンカウント手段に初期値Ｐを与えることを特徴としたものであり、前記アップダウンカウンタのカウントアップ周期を変えることなく、優先順位変更手段が先行的なメモリアクセスを考慮することにより、メモリ利用効率を上げることができる。
【０００８】
（実施の形態１）
以下に本発明の請求項１及び請求項２に記載された発明の実施の形態について、図１、図２及び図３を用いて説明する。
【０００９】
図１において、１１は例えばデータを記憶するバッファメモリ、１２は記録媒体１８とバッファメモリ１１との間で同期検出やデータのフォーマット変換（ＤＣバランスをとるための１０−８変換、１６−８変換等）を行うフォーマッタブロック、１３は制御マイコン１７とバッファメモリ１１とのデータ転送を行う制御マイコンインタフェースブロック、１４はバッファメモリ１１に格納されたデータに対して誤り訂正を行う誤り訂正ブロック、１５はバッファメモリ１１とホストコンピュータ１９とのデータ転送を行うホストインタフェースブロック、１６はバッファメモリ１１を制御するメモリコントロールブロックである。
【００１０】
前述のように構成されるメモリ制御装置において、記録媒体１８から読み出されたデータは、フォーマッタブロック１２に取り込まれ、同期信号検出と所定のデータフォーマット変換される。フォーマッタブロック１２はメモリコントロールブロック１６の制御によってフォーマット変換後のデータをバッファメモリ１１に書き込む。１ブロック分のデータがバッファメモリ１１に書き込まれると、誤り訂正ブロック１４はメモリコントロールブロック１６の制御によってバッファメモリ１１に格納されたデータをリード／ライトすることによって誤り訂正を行う。誤り訂正後のデータは、メモリコントロールブロック１６の制御で読み出され、ホストインタフェースブロック１５を介してホストコンピュータ１９にデータが転送される。また、制御マイコン１７は、メモリコントロールブロック１６の制御によってバッファメモリ１１に格納されたデータをリード／ライトすることができる。ここにおいて各ブロックからのメモリアクセス要求はメモリコントロールブロック１６内部の調停回路によって優先順位に従って調停される。
【００１１】
図２は、誤り訂正ブロック１４に内蔵されている優先順位変更器（以降、プライオリティチェインジャーと呼ぶ。）を示している。２３は制御マイコン１７から設定されるアップカウンタ２１のカウント周期を設定するアップ周期設定レジスタ、２２はアップ周期設定設定レジスタ２３とアップカウンタ２１の出力を比較する比較器、２５はある時点までに誤り訂正ブロック１４がメモリにアクセスしていなければならないメモリアクセス数と実際にメモリにアクセスした数の差を示すアップダウンカウンタ、２４はアップダウンカウンタ２５の値が一定値以上になったかどうかを比較する比較器、２６は比較器２４によりアップダウンカウンタ２５が一定の値以上になった場合により優先順位の高いメモリアクセス要求を有効にする為のＡＮＤゲートである。
【００１２】
プライオリティチェインジャーは、誤り訂正ブロック１４からのメモリアクセス要求がメモリコントロールブロック１６によって一定数受付けられない場合に、誤り訂正ブロック１４のメモリアクセス要求の優先順位をより高い優先順位に切り替える機能をもっている。誤り訂正ブロック１４が一定期間Ｔ内にメモリにＮ回アクセスする必要がある場合、Ｍ回アクセス要求が受け付けられないと優先順位を切り換えるとすると、制御マイコン１７は周期Ｔ／（Ｎ＋Ｍ）の値をアップダウンカウンタ２５のアップカウント周期としてアップ周期設定レジスタ２３に設定する。アップカウンタ２１は一定周期のクロックに同期してカウントアップし、比較器２２はアップカウンタ２１とアップ周期設定レジスタ２３の出力の一致を検出する。すなわち、アップカウンタ２１は実施の形態では、システムクロック（例えば４０ＭＨｚ）を計数し、そのシステムクロックの周期でアップダウンカウンタ２５のアップ周期を計数するもので、システムクロックの周波数を上げることにより、前記アップ周期を正確に計数することができる。
【００１３】
アップダウンカウンタ２５は、誤り訂正ブロック１４がメモリにアクセスしていなければならないメモリアクセス数と実際にメモリにアクセスした数の差を示すアップダウンカウンタであるので、比較器２２から一致信号が出力されるとカウントアップし、メモリコントロールブロック１６からのアクセス許可信号がくるとカウントダウンする。つまり、制御マイコン１７によってアップ周期設定レジスタ２３に設定された間隔でカウントアップし、メモリアクセスが許可されるとカウントダウンする。従って、比較器２２から一致信号が出力された場合、メモリコントロールブロック１６からのアクセス許可信号が来ていなければカウントアップを行い、許可信号が来ていればカウント値を保持する。すなわち、一致信号とアクセス許可信号が同時に発生すれば、カウント値を保持する。そして、比較器２２からの一致信号が出力されていない場合、メモリコントロールブロック１６からのアクセス許可信号が来るとカウントダウンし、許可信号が来なければカウント値を保持する。
【００１４】
つぎに、アップダウンカウンタ２５の出力は比較器２４に入力される。比較器２４では予め決められた判定値Ｍと比較し、カウント値がその判定値Ｍ以上になった場合、優先順位を上げる為の許可信号を出力する。アンドゲート２６では、誤り訂正ブロック１４のメモリアクセス要求信号が有効になっており、かつ比較器２４からの優先順位を上げる為の許可信号が有効になっている場合、優先順位の高いメモリアクセス要求信号を有効にする。
【００１５】
今、フォーマッタブロック１２のメモリアクセス優先順位を１番、制御マイコンインタフェースブロック１３の優先順位を２番、誤り訂正ブロック１４の高い方の優先順位を３番、ホストインタフェース１５の優先順位を４番、誤り訂正ブロック１４の低い方の優先順位を５番とする。制御マイコン１７からのアクセス頻度は低いので、制御マイコン１７からのメモリアクセスを除くフォーマッタブロック１２、誤り訂正ブロック１４、ホストインタフェースブロック１５がメモリにアクセスする場合を図３を用いて説明する。
【００１６】
フォーマッタブロック１２は、各フレームの前半はメモリに対してアクセス要求はなく、各フレームの後半においてメモリに集中的にメモリアクセスを行う必要がある。誤り訂正ブロック１４は、各フレームにおいて、メモリにいつでもアクセスしてもよいが、１フレーム内にメモリアクセスしなければならないアクセス数は決まっている。ホストインタフェース１５からのメモリアクセスは数フレームに渡って連続的に発生する。また、メモリにアクセスする３つのブロック全てのメモリアクセス要求が重なった場合のみ、３ブロックからのメモリアクセス要求を完全に満たせなくなるとする。プライオリティチェインジャーの動作を図３を用いて説明する。最初は、誤り訂正ブロック１４内のプライオリティチェインジャーは初期化されるので、誤り訂正ブロック１４からのメモリアクセス要求の優先順位は５番であるとし、フォーマッタメモリ要求、誤り訂正メモリ要求、ホスト転送メモリ要求が、図３の場合である各区間において動作を説明する。
【００１７】
（１）区間３−１（誤り訂正メモリ要求のみ）
誤り訂正ブロック１４のみメモリを要求しているので、メモリは全て誤り訂正ブロックに割り当てられる。誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるので、アップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００１８】
（２）区間３−２
フォーマッタブロック１２と誤り訂正ブロック１４がメモリを要求しており、フォーマッタブロック１２に優先的にメモリが割り当てられるが、残りは全て誤り訂正ブロック１４にメモリが割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００１９】
（３）区間３−３
全てのブロックがメモリを要求しており、フォーマッタブロック１２、ホストインタフェース１５に優先的にメモリが割り当てられ、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられ、誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも長い間隔でしかメモリアクセスが許可されないので、アップダウンカウンタ２５のカウント値は増加する。
【００２０】
（４）区間３−４
フレームの始めでアップダウンカウンタ２５のカウント値が初期化される。その後、ホストインタフェース１５と誤り訂正ブロックがメモリを要求しているので、ホストインタフェース１５に優先的にメモリが割り当てられるが、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられる。従って、誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００２１】
（５）区間３−５
全てのブロックがメモリを要求しており、フォーマッタブロック１２、ホストインタフェース１５に優先的にメモリが割り当てられ、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられ、誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも長い間隔でしかメモリアクセスが許可されないのでアップダウンカウンタ２５のカウント値は増加する。
【００２２】
（６）区間３−６
全てのブロックがメモリを要求しており、フォーマッタブロック１２、ホストインタフェース１５に優先的にメモリが割り当てられ、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられ、誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも長い間隔でしかメモリアクセスが許可されないのでアップダウンカウンタ２５のカウント値は増加する。アップダウンカウンタ２５のカウント値がＭ以上になると比較器２４から、優先順位を上げる為の許可信号が出力され、誤り訂正ブロック１４のメモリアクセス要求の優先順位が３番になる。その結果、誤り訂正ブロック１４がホストインタフェース１５よりもメモリアクセス要求の優先順位が高くなり、誤り訂正ブロック１４に優先的にメモリが割り当てられるので、アップダウンカウンタ２５のカウント値が減少する。カウント値がＭよりも小さくなるとプライオリティチェインジャーによって、誤り訂正ブロック１４のメモリアクセス優先順位は再び低く設定されるので、カウント値が増加する。プライオリティチェインジャーはこのような動作を繰り返すので、アップダウンカウンタ２５のカウント値はＭ近辺となる。
【００２３】
（７）区間３−７
フレームの始めでアップダウンカウンタ２５のカウント値が初期化される。その後、ホストインタフェース１５と誤り訂正ブロックがメモリを要求しているので、ホストインタフェース１５に優先的にメモリが割り当てられるが、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００２４】
（８）区間３−８
誤り訂正ブロック１４のみメモリを要求しているので、メモリは全て誤り訂正ブロックに割り当てられる。誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００２５】
（９）区間３−９
フォーマッタブロック１２と誤り訂正ブロック１４がメモリを要求しており、フォーマッタブロック１２に優先的にメモリが割り当てられるが、残りは全て誤り訂正ブロック１４にメモリが割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００２６】
このように、プライオリティチェインジャーを使用することによって、誤り訂正に必要なメモリアクセスを確保しつつ、ホストインタフェースに優先的にメモリを割り当てるシステムが実現できる。ただし、図３の区間３−６を見ればわかるとおり全てのブロックからメモリアクセス要求が出されている場合、プライオリティチェインジャーがメモリアクセスの優先順位を上げるまで（アップダウンカウンタ２５のカウント値がＭより小さい値の時）誤り訂正ブロックがメモリにアクセスできない可能性がある。その為確実に１フレーム期間Ｔの間にＮ回のメモリアクセスを確保する為には、｛Ｔ／（Ｎ＋Ｍ）｝の周期でアップダウンカウンタ２５に対してアップパルスを供給する必要がある。
【００２７】
（実施の形態２）
次に本発明の請求項２に記載された発明の実施の形態について、図４を用いて説明する。図４において、フォーマッタブロック１２、誤り訂正ブロック１４、ホストインタフェース１５からのメモリアクセス要求は図３と同じとする。
【００２８】
（１）区間４−１
フレームの始めでアップダウンカウンタ２５のカウント値が初期値Ｐに初期化される。誤り訂正ブロック１４のみメモリを要求しているので、メモリは全て誤り訂正ブロックに割り当てられる。誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は減少する。
【００２９】
（２）区間４−２
フォーマッタブロック１２と誤り訂正ブロック１４がメモリを要求しており、フォーマッタブロック１２に優先的にメモリが割り当てられるが、残りは全て誤り訂正ブロック１４にメモリが割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は０近辺になる（アンダーフロー防止回路によって０より小さい値はとらない。）。
【００３０】
（３）区間４−３
全てのブロックがメモリを要求しており、フォーマッタブロック１２、ホストインタフェース１５に優先的にメモリが割り当てられ、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられ、誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも長い間隔でしかメモリアクセスが許可されないのでアップダウンカウンタ２５のカウント値は増加する。
【００３１】
（４）区間４−４
フレームの始めでアップダウンカウンタ２５のカウント値がＰに初期化される。その後、ホストインタフェース１５と誤り訂正ブロックがメモリを要求しているので、ホストインタフェース１５に優先的にメモリが割り当てられるが、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は徐々に減少する。
【００３２】
（５）区間４−５
全てのブロックがメモリを要求しており、フォーマッタブロック１２、ホストインタフェース１５に優先的にメモリが割り当てられ、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられ、誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも長い間隔でしかメモリアクセスが許可されないのでアップダウンカウンタ２５のカウント値は増加する。
【００３３】
（６）区間４−６
フレームの始めでアップダウンカウンタ２５のカウント値がＰに初期化される。その後、ホストインタフェース１５と誤り訂正ブロックがメモリを要求しているので、ホストインタフェース１５に優先的にメモリが割り当てられるが、残りのメモリアクセスが誤り訂正ブロック１４に割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は徐々に減少する。
【００３４】
（７）区間４−７
誤り訂正ブロック１４のみメモリを要求しているので、メモリは全て誤り訂正ブロックに割り当てられる。誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は減少する。
【００３５】
（８）区間４−８
フォーマッタブロック１２と誤り訂正ブロック１４がメモリを要求しており、フォーマッタブロック１２に優先的にメモリが割り当てられるが、残りは全て誤り訂正ブロック１４にメモリが割り当てられるので誤り訂正ブロック１４が必要とするメモリアクセス間隔よりも頻繁にメモリアクセスが行えるのでアップダウンカウンタ２５のカウント値は徐々に減少する。
【００３６】
このように、プライオリティチェインジャーのアップダウンカウンタ２５に初期値Ｐを設定することにより、すなわち、フレームの最初にアップダウンカウンタ２５に初期値（オフセット値）をセットしてカウンタ動作をさせることによって、１フレーム期間の始めの方で誤り訂正ブロック１４にメモリが頻繁に与えられた場合でも、それを考慮したメモリの調停が実現できる。また、１フレーム期間が長いシステムの場合、効率よくメモリを調停する為にはメモリへのアクセス要求の優先順位を切り替える為の判定基準Ｍの値を大きくとる必要があるが、Ｍを大きくするとアップダウンカウンタのアップカウント周期｛Ｔ／（Ｎ＋Ｍ）｝が小さくなってしまい、誤り訂正ブロック１４の優先順位が上がった場合にホストコンピュータ１９との転送速度が極端に落ちてしまう。そこで、アップダウンカウンタ２５に初期値を与えることによってアップパルスの発生周期を変えることなくＭの値を大きくすることができる。
【００３７】
すなわち、アップダウンカウンタ２５にオフセットＰを与えることにより、等価的に、優先順位切り換え点Ｍの値を大きく設定することとなり、誤り訂正ブロック１４の優先順位の切り換え期間を短く、あるいは、ほとんど零にする事ができ、メモリアクセスの調停が実現でき、ホストコンピュータ１９との転送速度の低下を防止することができる。
【００３８】
【発明の効果】
以上のように、本発明のメモリ制御装置によれば、システム内の各ブロックからのメモリアクセス要求を効率的に調停することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるメモリ制御装置のブロック図
【図２】本発明の実施の形態におけるメモリ制御装置のプライオリティチェインジャーのブロック図
【図３】本発明の実施の形態におけるメモリ制御装置のプライオリティチェインジャー動作を説明するための図
【図４】本発明の他の実施の形態におけるメモリ制御装置のプライオリティチェインジャーの動作を説明するための図
【符号の説明】
１１  バッファメモリ
１２  フォーマッタブロック
１３  制御マイコンインタフェースブロック
１４  誤り訂正ブロック
１５  ホストインタフェースブロック
１６  メモリコントロールブロック
１７  制御マイコン
１８  記録媒体
１９  ホストコンピュータ
【図１】
0004081843.tif 000002
【図２】
0004081843.tif 000003
【図３】
0004081843.tif 000004
【図４】
0004081843.tif 000005