(57)【要約】【課題】リアルタイム性の要求が高い機能ブロックのリアルタイム性を確保するとともに、リアルタイム性の要求が低い機能ブロックの性能を低下しないようにする。【解決手段】バスマスタとして動作し、所定の処理を行う複数の機能ブロックと、メモリコントローラと、前記複数の機能ブロックと前記メモリコントローラとを接続するバスとにより構成されるメモリシステムであって、前記機能ブロックは、メモリアクセスを発行する時に前記メモリアクセスが終了する時間情報を付加し、前記バスは、メモリアクセス情報に前記メモリアクセスが終了する時間情報を付加して転送する。さらに、前記メモリコントローラは、複数のメモリアクセスを保持し、前記バスマスタより受信したメモリアクセスが終了する時間情報に基づき、前記保持されたメモリアクセスの発行順序を制御する。【選択図】図１
2011065359.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタとして動作し、所定の処理を行う複数の機能ブロックと、メモリコントローラと、前記複数の機能ブロックと前記メモリコントローラとを接続するバスとにより構成されるメモリシステムであって、
前記機能ブロックは、メモリアクセスを発行する時に前記メモリアクセスが終了する時間情報を付加する付加手段を有し、
前記バスは、メモリアクセス情報に前記メモリアクセスが終了する時間情報を付加して転送する転送手段を有し、
前記メモリコントローラは、複数のメモリアクセスを保持する保持手段と、前記バスマスタより受信したメモリアクセスが終了する時間情報に基づき、前記保持手段に保持されたメモリアクセスを発行する順序を制御する制御手段とを有することを特徴とするメモリシステム。
【請求項２】
前記機能ブロックの付加手段により付加される前記メモリアクセスが終了する時間情報は、前記メモリアクセスが終了するまでの消費クロックサイクル情報にて通知されることを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記機能ブロックは、前記消費クロックサイクル情報を、書き込みアクセスに対し書き込み用のバッファの残り容量がなくなるまでの消費クロックサイクルにて指定することを特徴とする請求項２記載のメモリシステム。
【請求項４】
前記バスの転送手段は、前記機能ブロックにより発行された前記消費クロックサイクル情報を転送するのに要するクロックサイクルの経過に従い、減算してバススレーブに転送することを特徴とする請求項２記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体メモリデバイスを用いたメモリシステムに関する。
【背景技術】
【０００２】
組み込み系システムでは、ＣＰＵの他、特定の機能を実現する機能ブロック・処理モジュールを複数搭載し、システムに求められる機能を実現している。特に性能要求の高い機能ブロックに関しては、ハードワイヤードロジックで回路の実装がなされることにより、ソフトウェアの処理では達成することが困難な高性能・高速処理を実現している。多くの機能ブロックではデータの授受を、外部の主記憶デバイスを介して行い、また、複雑な処理や多くのデータ参照を行う処理においては、主記憶デバイスを一時記憶・ワークメモリとして使用することにより機能を実現している。そこで、多くの組み込み系システムでは、外部の主記憶デバイスにＤＲＡＭデバイスを採用している。
【０００３】
ハードワイヤードロジックの機能ブロックがメモリにアクセスする場合、外部の主記憶デバイスに対するアクセス応答時間は、他の機能ブロックとバスアクセスにおいて競合したり、メモリにアクセスする時のページ処理等が遅延したりする。このため、アクセス応答時間は不均一である。そのため、ハードウェアロジックの処理性能を確保するために、機能ブロック内に小容量の一時的な記憶手段としてバッファを有し、そのバッファを介して主記憶デバイスとデータの授受を行うのが一般的である。機能ブロックとしてバッファを用いることにより、メモリにアクセスする時の応答時間の不均一による影響を小さくしている。このように、結果としてハードワイヤードロジックによる読み出しデータの不足やデータの書き込みが不能になることによって、処理が停止すること（以下、ストール）を排除している。
【０００４】
近年、半導体集積度の向上が著しく、組み込み系ＬＳＩ内部で実現される機能が高機能化及び多機能化しており、単一のＬＳＩで複数の機能を実現するものが増えている。例えば、スキャン機能、プリント機能によって実現するコピー機能に加え、ネットワークを介したスキャン、プリントデータの送受信や蓄積、ＦＡＸの送受信を実現す複合機のコントローラ等が挙げられる。それらの機器においては、複数の機能が非同期に且つ並列に動作し、システムの機能を実現している。
【０００５】
一方、複数の機能が同時に動作すると、複数の機能ブロックが並列してメモリにアクセスすることとなり、バスアクセスやメモリアクセスが競合してしまうという課題が生じる。そこで、このような一般的な課題に対しては、システム内におけるリアルタイム性の要求度に基づき、バスアクセスやメモリアクセスの優先度を変更して制御することにより、バスアクセスやメモリアクセスが競合してしまう課題を解消している。
【０００６】
例えば、複合機の場合、スキャン機能やプリント機能に関しては一度動作が開始されると停止することが困難であるため、リアルタイム性の要求が高い。これに対し、ネットワークを介したデータの送受信に関しては、リアルタイム性の要求が低い。そのため、スキャン機能やプリント機能といったリアルタイム性の要求が高い機能ブロックに対してメモリアクセスの優先度を上げることにより、メモリアクセスが競合してしまう課題に対応している。具体的な手法としては、バス調停時の優先度を変更するものがある。また、メモリアクセスをバッファリングし、バス転送に付加される優先度やバスマスタを識別して優先度を判別し、メモリアクセスの発行順序を制御することにより、リアルタイム性を確保しつつシステム機能の並列性を実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−１８５１９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の構成によると優先度が一意に決定されるため実際の処理状況によらずリアルタイム性の要求が高い機能ブロックからメモリアクセスが優先処理されてしまう。前述したように、ハードウェアロジックで搭載される機能ブロックは一般的にストールを回避するためにバッファを有する。メモリに書き込みを行う場合はバッファ内にデータが存在する限り、メモリへ書み込むためにメモリアクセスを発行する。メモリから読み出しを行う場合は、バッファ内に空きが存在する限り、メモリへ読み出すためにメモリアクセスを発行する。つまり、機能ブロックはストールの可能性の判定を行うことなくメモリアクセスを発行することとなる。
【０００９】
この機能ブロックがリアルタイム要求の高い機能ブロックであり、高優先度として指定されている場合、常に発行されるメモリアクセスは高優先度として処理がなされる。従って、この機能ブロックでの処理速度に対してバッファの使用量に十分な猶予があった場合でも、メモリアクセスは高優先で処理が終了することとなる。これに対して、リアルタイム性の要求が低い機能ブロックに関しては、逆にバッファの使用量に十分な猶予がない状態であったとしても、常に優先度が低く処理がなされるため、ストールの可能性が高くなってしまう。
【００１０】
このように従来の構成では、機能ブロック毎に優先度が一意に決定される。このため、リアルタイム性の要求が高いとされる機能ブロックのメモリアクセスであって、実際にメモリアクセスでの終了が先送りできるメモリアクセスが優先的に発行される。逆にリアルタイム性の要求が低いとされる機能ブロックのメモリアクセスであって、該機能ブロックの処理がストールしてしまう状況下においてもメモリアクセスでの終了が先送りされてしまう。すなわち、優先度の高い機能ブロックに対して過度にメモリアクセスの帯域を割り当て、優先度の低い機能ブロックに対しては過度にメモリアクセス帯域を制限してしまう。したがって、リアルタイム性の要求が低い機能ブロックの性能が低下してしまうという課題が生じていた。
【００１１】
本発明は前述の問題点に鑑み、リアルタイム性の要求が高い機能ブロックのリアルタイム性を確保するとともに、リアルタイム性の要求が低い機能ブロックの性能を低下しないようにすることを目的としている。
【課題を解決するための手段】
【００１２】
本発明のメモリシステムは、バスマスタとして動作し、所定の処理を行う複数の機能ブロックと、メモリコントローラと、前記複数の機能ブロックと前記メモリコントローラとを接続するバスとにより構成されるメモリシステムであって、前記機能ブロックは、メモリアクセスを発行する時に前記メモリアクセスが終了する時間情報を付加する付加手段を有し、前記バスは、メモリアクセス情報に前記メモリアクセスが終了する時間情報を付加して転送する転送手段を有し、前記メモリコントローラは、複数のメモリアクセスを保持する保持手段と、前記バスマスタより受信したメモリアクセスが終了する時間情報に基づき、前記保持手段に保持されたメモリアクセスを発行する順序を制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、優先度に基づくメモリアクセスの帯域割当の不均衡を抑制することができ、リアルタイム性の要求が高い機能ブロックのリアルタイム性を確保するとともに、リアルタイム性の要求が低い機能ブロックの性能を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るメモリシステムの構成例を示すブロック図である。
【図２】図１に示す機能ブロックの詳細な構成例を示すブロック図である。
【図３】メモリコントローラの詳細な内部構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
（第１の実施形態）
以下、本発明の実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係るメモリシステムの構成例を示すブロック図である。
図１に示すように、本実施形態におけるメモリシステムは、バスマスタとして動作する複数の機能ブロック１０２とシステムバス１０４とメモリコントローラ１０１とから構成されている。また、メモリコントローラ１０１を介してメモリデバイス１０５が接続されている。
【００１６】
それぞれの機能ブロック１０２はハードウェアモジュールであり、メモリへアクセスすることによりある特定の機能を実現するものである。なお、本実施形態における機能ブロック１０２の実現する機能は特に限定されるものではなく、何でもよい。また、機能ブロック１０２は、システムバス１０４に対してバスマスタとしてメモリにアクセスすることにより特定の機能を実現するものである。
【００１７】
さらに、機能ブロック１０２は、メモリへのアクセスが終了されるべき時間を検出するアクセス終了時間検出部１０３を有している。そして、システムバス１０４へメモリアクセス情報を発行する時に、アクセス終了時間検出部１０３にて検出されたメモリアクセスの終了時間の情報を付加して転送する。なお、それぞれの機能ブロック１０２が付加するメモリアクセスの終了時間の情報は、メモリアクセスが終了するまでの消費クロックサイクル情報にて通知される。
【００１８】
図２に、図１に示す機能ブロック１０２の詳細な構成例を示すブロック図である。
図２に示すように、機能ブロック１０２は、所定の処理を行う機能処理ブロック２０１を有している。本実施形態では、圧縮データを伸張する機能として、メモリ上の圧縮データを読み出し、伸張結果をメモリへ書き込む機能を実現する機能ブロックを想定している。
【００１９】
本実施形態の機能ブロック１０２は、メモリ上のデータを読み出すためのデータロードバッファ２０２と、処理結果をメモリへ書き込むためのデータストアバッファ２０３とを有している。本実施形態では、データロードバッファ２０２及びデータストアバッファ２０３の双方を有しているが、実現される機能によってはどちらか一方が搭載される構成であってもよい。例えば、機能ブロック１０２にてスキャン等の画像の入力を取り扱う場合、外部からデータを入力してメモリへ書き込むためのデータストアバッファ２０３のみが実装される。一方、機能ブロック１０２がＬＣＤ等の外部モニタへ映像データを出力する場合、メモリ上のフレームデータを読み出して出力するためのデータロードバッファ２０２のみが実装される。
【００２０】
本実施形態の機能ブロック１０２は、データロードバッファ２０２とは対にアクセス終了時間検出部１０３として読み出し終了時間検出部２０７が搭載されている。さらに、データストアバッファ２０３とは対にアクセス終了時間検出部１０３として書込み終了時間検出部２０８が搭載されている。以下、読み出し終了時間検出部２０７及び書込み終了時間検出部２０８の作用・実装例についてそれぞれ示す。
【００２１】
読み出し終了時間検出部２０７は、メモリアクセスをする発行時にアクセスされるデータが機能処理ブロック２０１にて使用されるまでのサイクル数を検出する。また、読み出し終了時間検出部２０７は、機能処理ブロック２０１から、処理速度情報と、データロードバッファ２０２の有効なデータ容量ステータスの情報とを受け取る。ここで、機能処理ブロック２０１の処理速度情報は、データロードバッファ２０２内のデータの消費速度を示すデータである。本実施形態の説明においては、2Byte/cycleとして記載する。
【００２２】
読み出し終了時間検出部２０７では、データロードバッファ２０２に蓄積されている有効なデータ容量を、機能処理ブロック２０１の消費速度で除算する。これにより、次に発行されるメモリアクセスのデータを機能処理ブロック２０１がいつ必要とするかを算出する。例えば、ある時点でデータロードバッファ２０２に64Byteのデータが既に蓄積されていた場合、次の読み出し終了時間として32cycleが算出されることになる。
【００２３】
また、システムバス１０４の構成に依存するが、アドレスフェーズとデータフェーズとが分離されているスプリットバス構成であった場合は、アドレスフェーズのコマンドを先行して発行することが可能である。その場合はデータロードバッファ２０２に蓄積されている有効なデータ容量に先行して発行した読み出しデータ容量を加算した容量に基づき、読み出し終了時間を算出する。例えば、上記の64Byteのデータロードバッファ２０２の容量に対し、次のメモリアクセスの読み出し終了時間として48cycleが算出されることとなる。
【００２４】
書込み終了時間検出部２０８は、機能処理ブロック２０１の処理結果である書き込み用のデータに対するメモリアクセスが終了する時間までのサイクル数を検出する。また、書込み終了時間検出部２０７は、機能処理ブロック２０１より処理速度情報と、データストアバッファ２０３の有効な空きデータ容量のステータスの情報を受け取る。ここで、機能処理ブロック２０１の処理速度情報は、データストアバッファ２０３へ書き込むデータ速度を示すデータである。本実施形態の説明においては、読み出しの場合と同様に2Byte/cycleとして記載する。
【００２５】
書込み終了時間検出部２０８では、データストアバッファ２０３の空きデータ容量を、機能処理ブロック２０１の処理速度で除算する。これにより、機能処理ブロック２０１から出力されるデータがいつまでにメモリに対して書き込まれなければいけないかを算出する。例えば、ある時点でデータストアバッファ２０３の空き容量が128Byteであった場合に、メモリへの書込み終了時間は64cycleとして算出されることになる。算出結果は機能処理ブロック２０１からの出力結果と対にデータストアバッファ２０３に蓄積されるとともに、データストアバッファ２０３内でのサイクル経過に従い、減算され更新される。また、算出結果はシステムバス１０４のバス幅やバースト長等にも依存する。データストアバッファ２０３内に保持されたデータの書込み終了時間は、バス転送単位で管理され、終了時間までのサイクル数が小さいものが該メモリ書き込みアクセスの終了時間として保持・更新される。
【００２６】
本実施形態におけるアクセス終了時間検出部１０３では、機能処理ブロック２０１の処理速度情報とデータバッファの有効容量とに基づき検出しているが、本発明は本実施系にとらわれるものではなく、種々変更可能である。
【００２７】
以下、機能ブロック１０２におけるバス転送について、読み出し、書き込みの順で説明する。
読み出し動作は、リードアクセス発行部２０４により行われる。ここで、メモリアクセスアドレスの指定等に関しては機能ブロック１０２の機能に依存し、本発明で限定されるものではない。リードアクセス発行部２０４は、データロードバッファ２０２の空き容量情報を検知し、空きがある場合にメモリリードアクセスを発行する。メモリリードアクセスの発行時には、読み出し終了時間検出部２０７が示す読み出し終了時間を参照し、バスアクセスに付加して転送を行う。
【００２８】
一方、書き込み動作は、ライトアクセス発行部２０５により行われる。ここで、メモリアクセスアドレスの指定等に関しては機能ブロック１０２の機能に依存し、本発明で限定されるものではない。ライトアクセス発行部２０５は、データストアバッファ２０３に蓄積された有効データ容量を検出し、バス転送分のデータが蓄積されている場合にメモリライトアクセスを発行する。メモリライトアクセスの発行時には、書込み終了時間検出部２０８にて検出されデータストアバッファ２０３内にデータと対で保持されている書き込み終了時間を参照し、バスアクセスに付加して転送を行う。
【００２９】
なお、図２に示す構成では、リードアクセス発行部２０４及びライトアクセス発行部２０５はＤＭＡをそれぞれ有し、ブリッジ２０６を介してシステムバス１０４に接続される構成としている。なお、それぞれの発行部がシステムバス１０４に接続していても構わない。また、リードアクセス用ＤＭＡとライトアクセス用ＤＭＡとが共用で使用されても構わない。
【００３０】
図１の説明に戻り、システムバス１０４は、バスマスタである機能ブロック１０２からのメモリアクセスを、バススレーブであるメモリコントローラ１０１へ伝達するバスである。システムバス１０４には、アドレス信号、バス制御信号、データ信号のほかにバスアクセス毎に付加される終了時間信号を有し、バスマスタである機能ブロック１０２が付加するアクセス終了時間をバス転送に付加して転送するものである。システムバス１０４内の終了時間信号は、バス内でクロックサイクルを消費するに従い、減算されてバススレーブへ伝達される。なお、終了時間信号の構成を除き、システムバス１０４の構成、プロトコルは任意である。
【００３１】
以下、メモリコントローラ１０１の作用について説明する。メモリコントローラ１０１は、バスマスタである機能ブロック１０２からのメモリアクセスコマンドをバスインターフェース部１０６にて受信する。そして、メモリアクセスコマンドをアクセス順序制御部１０８内で保持する。アクセス順序制御部１０８はさらに、メモリアクセスコマンドを保持するコマンドバッファ１０９を有する。また、コマンドバッファ１０９に保持されたメモリアクセスコマンドと対でバスアクセスに付加された終了時間情報を保持するアクセス終了時間算出部１１０を有し、保持されたメモリアクセスコマンドの順序制御を行う。そして、メモリコマンド発行部１０７に対してメモリアクセス発行情報を伝達し、メモリコマンド発行部１０７にてメモリデバイス１０５へのアクセスプロトコルに変換され、出力される。以下、バスインターフェース部１０６及びアクセス順序制御部１０８の構成について説明する。
【００３２】
図３は、バスインターフェース部１０６及びアクセス順序制御部１０８の詳細な内部構成例を示すブロック図である。
図３において、バスインターフェース部１０６は、システムバス１０４のバススレーブとして動作するバスプロトコル制御部３０２を有する。メモリアクセスのアドレス、リード・ライト識別、バスマスタ・バス転送識別、メモリアクセス長、アクセス終了時間を抽出し、アクセス順序制御部１０８にメモリアクセス転送を伝達する。アクセス順序制御部１０８は、受信したメモリアクセスコマンドをエントリとしてコマンドバッファ１０９に、アクセス終了時間算出部１１０として保持する。保持されたメモリアクセスエントリの順序入替を行い、メモリコマンド発行部１０７にメモリアクセスを伝達する。
【００３３】
ここで、メモリアクセスエントリの入替は、順序入替制御部３０１により行われる。順序入替制御部３０１は、アクセス終了時間算出部１１０に保持されたメモリアクセスエントリ内の終了時間情報を参照する。そして、終了時間として保持されたサイクル数が一番小さいものが先に発行されるよう順序入替制御を行う。メモリアクセスエントリ内の終了時間情報で同一値のものが存在した場合は、機能ブロック１０２を示すＩＤとＩＤ毎の優先度を指定するレジスタとの指定に従い、別途入替を行う。また、ページ管理情報を参照し、ページ遷移が少ない方向に入替を行てもよい。
【００３４】
以上の構成により、メモリアクセスに付加されるアクセス終了時間情報に基づきメモリアクセスが発行される。このため、メモリアクセスが必要とされるタイミングで機能ブロックのメモリアクセスを実行することが可能となり、システム全体の適切なメモリアクセス帯域割当が可能となる。
【００３５】
また、本実施形態においては、順序入替制御部３０１にてアクセス終了時間指定にのみ基づく順序入替を行う構成について説明した。さらに、メモリアクセス時のページ管理情報に基づき、メモリアクセスの応答時間を減じた値に基づく順序入替を行うことにより、ページ管理の遷移も加味したより適切なメモリアクセスの帯域割当が可能となる。
【００３６】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００３７】
１０１  メモリコントローラ、１０２  機能ブロック、１０４  システムバス
【図１】
2011065359.tif 000003
【図２】
2011065359.tif 000004
【図３】
2011065359.tif 000005