説明

メモリシステム

【課題】リアルタイム性の要求が高い機能ブロックのリアルタイム性を確保するとともに、リアルタイム性の要求が低い機能ブロックの性能を低下しないようにする。
【解決手段】バスマスタとして動作し、所定の処理を行う複数の機能ブロックと、メモリコントローラと、前記複数の機能ブロックと前記メモリコントローラとを接続するバスとにより構成されるメモリシステムであって、前記機能ブロックは、メモリアクセスを発行する時に前記メモリアクセスが終了する時間情報を付加し、前記バスは、メモリアクセス情報に前記メモリアクセスが終了する時間情報を付加して転送する。さらに、前記メモリコントローラは、複数のメモリアクセスを保持し、前記バスマスタより受信したメモリアクセスが終了する時間情報に基づき、前記保持されたメモリアクセスの発行順序を制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体メモリデバイスを用いたメモリシステムに関する。
【背景技術】
【0002】
組み込み系システムでは、CPUの他、特定の機能を実現する機能ブロック・処理モジュールを複数搭載し、システムに求められる機能を実現している。特に性能要求の高い機能ブロックに関しては、ハードワイヤードロジックで回路の実装がなされることにより、ソフトウェアの処理では達成することが困難な高性能・高速処理を実現している。多くの機能ブロックではデータの授受を、外部の主記憶デバイスを介して行い、また、複雑な処理や多くのデータ参照を行う処理においては、主記憶デバイスを一時記憶・ワークメモリとして使用することにより機能を実現している。そこで、多くの組み込み系システムでは、外部の主記憶デバイスにDRAMデバイスを採用している。
【0003】
ハードワイヤードロジックの機能ブロックがメモリにアクセスする場合、外部の主記憶デバイスに対するアクセス応答時間は、他の機能ブロックとバスアクセスにおいて競合したり、メモリにアクセスする時のページ処理等が遅延したりする。このため、アクセス応答時間は不均一である。そのため、ハードウェアロジックの処理性能を確保するために、機能ブロック内に小容量の一時的な記憶手段としてバッファを有し、そのバッファを介して主記憶デバイスとデータの授受を行うのが一般的である。機能ブロックとしてバッファを用いることにより、メモリにアクセスする時の応答時間の不均一による影響を小さくしている。このように、結果としてハードワイヤードロジックによる読み出しデータの不足やデータの書き込みが不能になることによって、処理が停止すること(以下、ストール)を排除している。
【0004】
近年、半導体集積度の向上が著しく、組み込み系LSI内部で実現される機能が高機能化及び多機能化しており、単一のLSIで複数の機能を実現するものが増えている。例えば、スキャン機能、プリント機能によって実現するコピー機能に加え、ネットワークを介したスキャン、プリントデータの送受信や蓄積、FAXの送受信を実現す複合機のコントローラ等が挙げられる。それらの機器においては、複数の機能が非同期に且つ並列に動作し、システムの機能を実現している。
【0005】
一方、複数の機能が同時に動作すると、複数の機能ブロックが並列してメモリにアクセスすることとなり、バスアクセスやメモリアクセスが競合してしまうという課題が生じる。そこで、このような一般的な課題に対しては、システム内におけるリアルタイム性の要求度に基づき、バスアクセスやメモリアクセスの優先度を変更して制御することにより、バスアクセスやメモリアクセスが競合してしまう課題を解消している。
【0006】
例えば、複合機の場合、スキャン機能やプリント機能に関しては一度動作が開始されると停止することが困難であるため、リアルタイム性の要求が高い。これに対し、ネットワークを介したデータの送受信に関しては、リアルタイム性の要求が低い。そのため、スキャン機能やプリント機能といったリアルタイム性の要求が高い機能ブロックに対してメモリアクセスの優先度を上げることにより、メモリアクセスが競合してしまう課題に対応している。具体的な手法としては、バス調停時の優先度を変更するものがある。また、メモリアクセスをバッファリングし、バス転送に付加される優先度やバスマスタを識別して優先度を判別し、メモリアクセスの発行順序を制御することにより、リアルタイム性を確保しつつシステム機能の並列性を実現している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−185198号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、従来の構成によると優先度が一意に決定されるため実際の処理状況によらずリアルタイム性の要求が高い機能ブロックからメモリアクセスが優先処理されてしまう。前述したように、ハードウェアロジックで搭載される機能ブロックは一般的にストールを回避するためにバッファを有する。メモリに書き込みを行う場合はバッファ内にデータが存在する限り、メモリへ書み込むためにメモリアクセスを発行する。メモリから読み出しを行う場合は、バッファ内に空きが存在する限り、メモリへ読み出すためにメモリアクセスを発行する。つまり、機能ブロックはストールの可能性の判定を行うことなくメモリアクセスを発行することとなる。
【0009】
この機能ブロックがリアルタイム要求の高い機能ブロックであり、高優先度として指定されている場合、常に発行されるメモリアクセスは高優先度として処理がなされる。従って、この機能ブロックでの処理速度に対してバッファの使用量に十分な猶予があった場合でも、メモリアクセスは高優先で処理が終了することとなる。これに対して、リアルタイム性の要求が低い機能ブロックに関しては、逆にバッファの使用量に十分な猶予がない状態であったとしても、常に優先度が低く処理がなされるため、ストールの可能性が高くなってしまう。
【0010】
このように従来の構成では、機能ブロック毎に優先度が一意に決定される。このため、リアルタイム性の要求が高いとされる機能ブロックのメモリアクセスであって、実際にメモリアクセスでの終了が先送りできるメモリアクセスが優先的に発行される。逆にリアルタイム性の要求が低いとされる機能ブロックのメモリアクセスであって、該機能ブロックの処理がストールしてしまう状況下においてもメモリアクセスでの終了が先送りされてしまう。すなわち、優先度の高い機能ブロックに対して過度にメモリアクセスの帯域を割り当て、優先度の低い機能ブロックに対しては過度にメモリアクセス帯域を制限してしまう。したがって、リアルタイム性の要求が低い機能ブロックの性能が低下してしまうという課題が生じていた。
【0011】
本発明は前述の問題点に鑑み、リアルタイム性の要求が高い機能ブロックのリアルタイム性を確保するとともに、リアルタイム性の要求が低い機能ブロックの性能を低下しないようにすることを目的としている。
【課題を解決するための手段】
【0012】
本発明のメモリシステムは、バスマスタとして動作し、所定の処理を行う複数の機能ブロックと、メモリコントローラと、前記複数の機能ブロックと前記メモリコントローラとを接続するバスとにより構成されるメモリシステムであって、前記機能ブロックは、メモリアクセスを発行する時に前記メモリアクセスが終了する時間情報を付加する付加手段を有し、前記バスは、メモリアクセス情報に前記メモリアクセスが終了する時間情報を付加して転送する転送手段を有し、前記メモリコントローラは、複数のメモリアクセスを保持する保持手段と、前記バスマスタより受信したメモリアクセスが終了する時間情報に基づき、前記保持手段に保持されたメモリアクセスを発行する順序を制御する制御手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、優先度に基づくメモリアクセスの帯域割当の不均衡を抑制することができ、リアルタイム性の要求が高い機能ブロックのリアルタイム性を確保するとともに、リアルタイム性の要求が低い機能ブロックの性能を向上させることができる。
【図面の簡単な説明】
【0014】
【図1】本実施形態に係るメモリシステムの構成例を示すブロック図である。
【図2】図1に示す機能ブロックの詳細な構成例を示すブロック図である。
【図3】メモリコントローラの詳細な内部構成例を示すブロック図である。
【発明を実施するための形態】
【0015】
(第1の実施形態)
以下、本発明の実施形態について、図面を参照しながら説明する。
図1は、本実施形態に係るメモリシステムの構成例を示すブロック図である。
図1に示すように、本実施形態におけるメモリシステムは、バスマスタとして動作する複数の機能ブロック102とシステムバス104とメモリコントローラ101とから構成されている。また、メモリコントローラ101を介してメモリデバイス105が接続されている。
【0016】
それぞれの機能ブロック102はハードウェアモジュールであり、メモリへアクセスすることによりある特定の機能を実現するものである。なお、本実施形態における機能ブロック102の実現する機能は特に限定されるものではなく、何でもよい。また、機能ブロック102は、システムバス104に対してバスマスタとしてメモリにアクセスすることにより特定の機能を実現するものである。
【0017】
さらに、機能ブロック102は、メモリへのアクセスが終了されるべき時間を検出するアクセス終了時間検出部103を有している。そして、システムバス104へメモリアクセス情報を発行する時に、アクセス終了時間検出部103にて検出されたメモリアクセスの終了時間の情報を付加して転送する。なお、それぞれの機能ブロック102が付加するメモリアクセスの終了時間の情報は、メモリアクセスが終了するまでの消費クロックサイクル情報にて通知される。
【0018】
図2に、図1に示す機能ブロック102の詳細な構成例を示すブロック図である。
図2に示すように、機能ブロック102は、所定の処理を行う機能処理ブロック201を有している。本実施形態では、圧縮データを伸張する機能として、メモリ上の圧縮データを読み出し、伸張結果をメモリへ書き込む機能を実現する機能ブロックを想定している。
【0019】
本実施形態の機能ブロック102は、メモリ上のデータを読み出すためのデータロードバッファ202と、処理結果をメモリへ書き込むためのデータストアバッファ203とを有している。本実施形態では、データロードバッファ202及びデータストアバッファ203の双方を有しているが、実現される機能によってはどちらか一方が搭載される構成であってもよい。例えば、機能ブロック102にてスキャン等の画像の入力を取り扱う場合、外部からデータを入力してメモリへ書き込むためのデータストアバッファ203のみが実装される。一方、機能ブロック102がLCD等の外部モニタへ映像データを出力する場合、メモリ上のフレームデータを読み出して出力するためのデータロードバッファ202のみが実装される。
【0020】
本実施形態の機能ブロック102は、データロードバッファ202とは対にアクセス終了時間検出部103として読み出し終了時間検出部207が搭載されている。さらに、データストアバッファ203とは対にアクセス終了時間検出部103として書込み終了時間検出部208が搭載されている。以下、読み出し終了時間検出部207及び書込み終了時間検出部208の作用・実装例についてそれぞれ示す。
【0021】
読み出し終了時間検出部207は、メモリアクセスをする発行時にアクセスされるデータが機能処理ブロック201にて使用されるまでのサイクル数を検出する。また、読み出し終了時間検出部207は、機能処理ブロック201から、処理速度情報と、データロードバッファ202の有効なデータ容量ステータスの情報とを受け取る。ここで、機能処理ブロック201の処理速度情報は、データロードバッファ202内のデータの消費速度を示すデータである。本実施形態の説明においては、2Byte/cycleとして記載する。
【0022】
読み出し終了時間検出部207では、データロードバッファ202に蓄積されている有効なデータ容量を、機能処理ブロック201の消費速度で除算する。これにより、次に発行されるメモリアクセスのデータを機能処理ブロック201がいつ必要とするかを算出する。例えば、ある時点でデータロードバッファ202に64Byteのデータが既に蓄積されていた場合、次の読み出し終了時間として32cycleが算出されることになる。
【0023】
また、システムバス104の構成に依存するが、アドレスフェーズとデータフェーズとが分離されているスプリットバス構成であった場合は、アドレスフェーズのコマンドを先行して発行することが可能である。その場合はデータロードバッファ202に蓄積されている有効なデータ容量に先行して発行した読み出しデータ容量を加算した容量に基づき、読み出し終了時間を算出する。例えば、上記の64Byteのデータロードバッファ202の容量に対し、次のメモリアクセスの読み出し終了時間として48cycleが算出されることとなる。
【0024】
書込み終了時間検出部208は、機能処理ブロック201の処理結果である書き込み用のデータに対するメモリアクセスが終了する時間までのサイクル数を検出する。また、書込み終了時間検出部207は、機能処理ブロック201より処理速度情報と、データストアバッファ203の有効な空きデータ容量のステータスの情報を受け取る。ここで、機能処理ブロック201の処理速度情報は、データストアバッファ203へ書き込むデータ速度を示すデータである。本実施形態の説明においては、読み出しの場合と同様に2Byte/cycleとして記載する。
【0025】
書込み終了時間検出部208では、データストアバッファ203の空きデータ容量を、機能処理ブロック201の処理速度で除算する。これにより、機能処理ブロック201から出力されるデータがいつまでにメモリに対して書き込まれなければいけないかを算出する。例えば、ある時点でデータストアバッファ203の空き容量が128Byteであった場合に、メモリへの書込み終了時間は64cycleとして算出されることになる。算出結果は機能処理ブロック201からの出力結果と対にデータストアバッファ203に蓄積されるとともに、データストアバッファ203内でのサイクル経過に従い、減算され更新される。また、算出結果はシステムバス104のバス幅やバースト長等にも依存する。データストアバッファ203内に保持されたデータの書込み終了時間は、バス転送単位で管理され、終了時間までのサイクル数が小さいものが該メモリ書き込みアクセスの終了時間として保持・更新される。
【0026】
本実施形態におけるアクセス終了時間検出部103では、機能処理ブロック201の処理速度情報とデータバッファの有効容量とに基づき検出しているが、本発明は本実施系にとらわれるものではなく、種々変更可能である。
【0027】
以下、機能ブロック102におけるバス転送について、読み出し、書き込みの順で説明する。
読み出し動作は、リードアクセス発行部204により行われる。ここで、メモリアクセスアドレスの指定等に関しては機能ブロック102の機能に依存し、本発明で限定されるものではない。リードアクセス発行部204は、データロードバッファ202の空き容量情報を検知し、空きがある場合にメモリリードアクセスを発行する。メモリリードアクセスの発行時には、読み出し終了時間検出部207が示す読み出し終了時間を参照し、バスアクセスに付加して転送を行う。
【0028】
一方、書き込み動作は、ライトアクセス発行部205により行われる。ここで、メモリアクセスアドレスの指定等に関しては機能ブロック102の機能に依存し、本発明で限定されるものではない。ライトアクセス発行部205は、データストアバッファ203に蓄積された有効データ容量を検出し、バス転送分のデータが蓄積されている場合にメモリライトアクセスを発行する。メモリライトアクセスの発行時には、書込み終了時間検出部208にて検出されデータストアバッファ203内にデータと対で保持されている書き込み終了時間を参照し、バスアクセスに付加して転送を行う。
【0029】
なお、図2に示す構成では、リードアクセス発行部204及びライトアクセス発行部205はDMAをそれぞれ有し、ブリッジ206を介してシステムバス104に接続される構成としている。なお、それぞれの発行部がシステムバス104に接続していても構わない。また、リードアクセス用DMAとライトアクセス用DMAとが共用で使用されても構わない。
【0030】
図1の説明に戻り、システムバス104は、バスマスタである機能ブロック102からのメモリアクセスを、バススレーブであるメモリコントローラ101へ伝達するバスである。システムバス104には、アドレス信号、バス制御信号、データ信号のほかにバスアクセス毎に付加される終了時間信号を有し、バスマスタである機能ブロック102が付加するアクセス終了時間をバス転送に付加して転送するものである。システムバス104内の終了時間信号は、バス内でクロックサイクルを消費するに従い、減算されてバススレーブへ伝達される。なお、終了時間信号の構成を除き、システムバス104の構成、プロトコルは任意である。
【0031】
以下、メモリコントローラ101の作用について説明する。メモリコントローラ101は、バスマスタである機能ブロック102からのメモリアクセスコマンドをバスインターフェース部106にて受信する。そして、メモリアクセスコマンドをアクセス順序制御部108内で保持する。アクセス順序制御部108はさらに、メモリアクセスコマンドを保持するコマンドバッファ109を有する。また、コマンドバッファ109に保持されたメモリアクセスコマンドと対でバスアクセスに付加された終了時間情報を保持するアクセス終了時間算出部110を有し、保持されたメモリアクセスコマンドの順序制御を行う。そして、メモリコマンド発行部107に対してメモリアクセス発行情報を伝達し、メモリコマンド発行部107にてメモリデバイス105へのアクセスプロトコルに変換され、出力される。以下、バスインターフェース部106及びアクセス順序制御部108の構成について説明する。
【0032】
図3は、バスインターフェース部106及びアクセス順序制御部108の詳細な内部構成例を示すブロック図である。
図3において、バスインターフェース部106は、システムバス104のバススレーブとして動作するバスプロトコル制御部302を有する。メモリアクセスのアドレス、リード・ライト識別、バスマスタ・バス転送識別、メモリアクセス長、アクセス終了時間を抽出し、アクセス順序制御部108にメモリアクセス転送を伝達する。アクセス順序制御部108は、受信したメモリアクセスコマンドをエントリとしてコマンドバッファ109に、アクセス終了時間算出部110として保持する。保持されたメモリアクセスエントリの順序入替を行い、メモリコマンド発行部107にメモリアクセスを伝達する。
【0033】
ここで、メモリアクセスエントリの入替は、順序入替制御部301により行われる。順序入替制御部301は、アクセス終了時間算出部110に保持されたメモリアクセスエントリ内の終了時間情報を参照する。そして、終了時間として保持されたサイクル数が一番小さいものが先に発行されるよう順序入替制御を行う。メモリアクセスエントリ内の終了時間情報で同一値のものが存在した場合は、機能ブロック102を示すIDとID毎の優先度を指定するレジスタとの指定に従い、別途入替を行う。また、ページ管理情報を参照し、ページ遷移が少ない方向に入替を行てもよい。
【0034】
以上の構成により、メモリアクセスに付加されるアクセス終了時間情報に基づきメモリアクセスが発行される。このため、メモリアクセスが必要とされるタイミングで機能ブロックのメモリアクセスを実行することが可能となり、システム全体の適切なメモリアクセス帯域割当が可能となる。
【0035】
また、本実施形態においては、順序入替制御部301にてアクセス終了時間指定にのみ基づく順序入替を行う構成について説明した。さらに、メモリアクセス時のページ管理情報に基づき、メモリアクセスの応答時間を減じた値に基づく順序入替を行うことにより、ページ管理の遷移も加味したより適切なメモリアクセスの帯域割当が可能となる。
【0036】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0037】
101 メモリコントローラ、102 機能ブロック、104 システムバス

【特許請求の範囲】
【請求項1】
バスマスタとして動作し、所定の処理を行う複数の機能ブロックと、メモリコントローラと、前記複数の機能ブロックと前記メモリコントローラとを接続するバスとにより構成されるメモリシステムであって、
前記機能ブロックは、メモリアクセスを発行する時に前記メモリアクセスが終了する時間情報を付加する付加手段を有し、
前記バスは、メモリアクセス情報に前記メモリアクセスが終了する時間情報を付加して転送する転送手段を有し、
前記メモリコントローラは、複数のメモリアクセスを保持する保持手段と、前記バスマスタより受信したメモリアクセスが終了する時間情報に基づき、前記保持手段に保持されたメモリアクセスを発行する順序を制御する制御手段とを有することを特徴とするメモリシステム。
【請求項2】
前記機能ブロックの付加手段により付加される前記メモリアクセスが終了する時間情報は、前記メモリアクセスが終了するまでの消費クロックサイクル情報にて通知されることを特徴とする請求項1記載のメモリシステム。
【請求項3】
前記機能ブロックは、前記消費クロックサイクル情報を、書き込みアクセスに対し書き込み用のバッファの残り容量がなくなるまでの消費クロックサイクルにて指定することを特徴とする請求項2記載のメモリシステム。
【請求項4】
前記バスの転送手段は、前記機能ブロックにより発行された前記消費クロックサイクル情報を転送するのに要するクロックサイクルの経過に従い、減算してバススレーブに転送することを特徴とする請求項2記載のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate