(57)【要約】【課題】実際のシステムにメモリデバイスを組み込んだ際に利用されないメモリアドレス空間を利用し、上記で述べたようなページミス時のアクセスペナルティを軽減する。【解決手段】メモリ制御回路は、メモリデバイスへのアクセス種別およびアクセスアドレスを判別し適切なメモリデバイスに対してアクセスコマンドを発行させるコマンド振り分け手段と、実際のメモリデバイスにアクセスコマンドを発行させるコマンド発行手段とを備える。コマンド振り分け手段はメモリアクセスがライトであった場合には、アドレス変換手段が示すデバイスの物理アドレスに対しライトコマンドを発行する。メモリアクセスがリードであった場合には前記アドレス変換手段が示す物理アドレスの状態を確認して最適なデバイスに対してリードコマンドを発行する。【選択図】図１
2011013909.tif 000002
【特許請求の範囲】
【請求項１】
複数のバンクを有する複数のメモリデバイスが接続され、それぞれのメモリデバイスにアクセス可能なメモリ制御回路において、
論理アドレスと実際のメモリデバイスにおける物理アドレスとの変換を行うアドレス変換手段と、
前記メモリデバイスの各バンクにおけるアクセス状態を管理する管理手段と、
メモリデバイスへのアクセスコマンドと物理アドレスとに基づいて適切なメモリデバイスに対してアクセスコマンドを発行させるコマンド振り分け手段と、
実際のメモリデバイスにアクセスコマンドを発行させるコマンド発行手段とを備え、
前記コマンド振り分け手段は、メモリアクセスがライトであった場合には前記アドレス変換手段が示すデバイスの物理アドレスに対しライトコマンドを発行し、メモリアクセスがリードであった場合には前記アドレス変換手段が示す物理アドレスの状態を確認してデバイスに対してリードコマンドを発行することを特徴とするメモリ制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御方法及びその実施装置に関し、特に、複数のバンクを有するメモリ制御回路であって、メモリデバイスへの高速なメモリ・アクセスを行うメモリ制御方法及びその実施装置に適用して有効な技術に関するものである。
【背景技術】
【０００２】
昨今のメモリデバイスの大容量化、高速化は目覚しいものがあり、また、メモリアクセスへの高速化としてバンクインターリーブアクセスが一般化されている。バンクインターリーブアクセスは最近のメモリデバイスのようにメモリデバイス内部が複数のバンクに分割されている。各々のバンクが独立した構成になっていることを利用し、異なるバンクに対するアクセスコマンドを交互に、かつオーバーラップさせながら発行することでコマンド間隔を小さくする手法である。また、メモリコントローラがメモリの共有領域の最終アドレスへの書き込み要求がメモリに対して発行されたことをバスマスタＢに通知する、といったものが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２４１６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記バンクインターリーブアクセスを行わせるためには、メモリ制御回路あるいはそのメモリ制御回路を使用するシステムにおいて、メモリアクセスがバンクインターリーブ条件を満足できるようにメモリ割り振りを行う必要がある。この条件を必ず満足させることは不可能に近く、一定の割合でバンクインターリーブ条件を満足できないアクセスが発生する。昨今のメモリデバイスは、バンクへのアクセスが同一のロウアドレスであるか、あるいは上記バンクインターリーブアクセスが可能な場合にはメモリデバイスの持つ高速アクセスの恩恵を得られる。一度ページミスとなった場合には、そのアクセスペナルティーが与える影響がクロック周期に対し大きく、問題となる。
【０００５】
上記問題は、特に、複数の機能モジュールが同一のメモリ制御回路を共有する、いわゆるユニファイドメモリ構成を用いたシステムの場合に特に問題となる。加えていえば、複数のマスターモジュール内にメモリのページアサインが困難なマスターモジュール、例えばディスクリプターテーブルを参照する。その結果に基づき、アクセスアドレスを決定するＤＭＡＣのようなマスターモジュールが存在する場合に、その他のマスターモジュールのメモリアクセスまで影響が及び、メモリアクセス効率を大幅に下げてしまうため問題となる。
【０００６】
先にも述べたように、昨今のメモリデバイスはデータ転送の高速化が図られているが、これは、内部構造を並列化することにより得られている。そのため、上記従来例で示したようなページミスが発生したときのアクセスペナルティの時間は実は改善されていない。つまり、高速メモリデバイスになるに従い、ページミスが発生したときのクロックサイクル数でのアクセスペナルティは実は大きくなることが良く知られている。
【０００７】
そこで、本発明の目的は、論理アドレスエリアにおけるページミスの発生確率を低減させ、結果的にシステム全体としての高速アクセスを可能とすることにある。
【課題を解決するための手段】
【０００８】
本発明のメモリ制御回路は、複数のバンクを有する複数のメモリデバイスが接続され、それぞれのメモリデバイスにアクセス可能なメモリ制御回路において、論理アドレスと実際のメモリデバイスにおける物理アドレスとの変換を行うアドレス変換手段と、前記メモリデバイスの各バンクにおけるアクセス状態を管理する管理手段と、メモリデバイスへのアクセスコマンドと物理アドレスとに基づいて適切なメモリデバイスに対してアクセスコマンドを発行させるコマンド振り分け手段と、実際のメモリデバイスにアクセスコマンドを発行させるコマンド発行手段とを備え、前記コマンド振り分け手段は、メモリアクセスがライトであった場合には前記アドレス変換手段が示すデバイスの物理アドレスに対しライトコマンドを発行し、メモリアクセスがリードであった場合には前記アドレス変換手段が示す物理アドレスの状態を確認してデバイスに対してリードコマンドを発行することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、論理アドレスエリアにおけるページミスの発生確率を低減させ、結果的にシステム全体としての高速アクセスを可能とするものである。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態に係るメモリ制御回路の内部構成を概略的に示すブロック図である。
【図２】本発明の第１の実施形態におけるメモリマップの例を示す図である。
【図３】メモリ制御回路におけるアドレス変換／コマンド振り分け回路のライトコマンド発行時の処理を示すフローチャートである。
【図４】メモリ制御回路におけるアドレス変換／コマンド振り分け回路のリードコマンド発行時の処理を示すフローチャートである。
【図５】本発明の第１実施形態の効果を説明するためのタイミングチャートである。
【図６】本発明の第２の実施形態に係るメモリ制御回路の内部構成を概略的に示すブロック図である。
【図７】本発明の第２の実施形態におけるメモリマップの例を示す図である。
【図８】本発明の第２の実施形態の効果を説明するためのタイミングチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１２】
先ず、本発明の第１の実施形態について説明する。図１は、本発明の第１の実施形態に係るメモリ制御回路の内部構成を概略的に示すブロック図である。図1において、１は各マスターモジュールに接続されて受け取ったメモリへの論理アクセスを一時記憶しておくコマンドＦＩＦＯである。２はコマンドＦＩＦＯから取り出したメモリアクセスコマンドを解析し、リード／ライトコマンドおよびデバイス側で用いられる物理アドレスに変換するアドレス変換／コマンド振り分け回路である。また、アドレス変換／コマンド振り分け回路２は、アクセス可能なデバイス側のアドレスが複数ある場合に各デバイスの状態に応じてどのデバイスにアクセスするかを決定する。３は各デバイスの各バンク状態を保持／管理するバンク状態管理回路である。４はアドレス変換／コマンド振分け回路２から受け取ったコマンドにより、該当するメモリデバイスに対し、メモリデバイスに適合するタイミングでコマンドを発行するコマンド発行回路４である。また、コマンド発行回路４は、該当するメモリデバイスのバンク状態管理回路に対し、アクセス状態を知らせる機能を有する。
【００１３】
本実施形態において用いられるメモリマップの例を図２に示す。マスターモジュール１０２(Ｍ０)がデバイス０のバンクＡおよびＢを使用する。マスターモジュール１０３（Ｍ１）がデバイス０のバンクＣおよびＤを使用する。マスターモジュール１０４がデバイス１のバンクＣおよびＤを使用するものとする。
【００１４】
コマンドＦＩＦＯ１がマスターモジュールからのメモリアクセスコマンドを受け取っているとき、アドレス変換／コマンド振り分け回路２はコマンドＦＩＦＯ１からメモリアクセスコマンドを取り出す。アドレス変換／コマンド振り分け回路２は、まず、メモリアクセスコマンドのアドレスから該当する物理アドレスの状態をバンク状態管理回路３に問い合わせる。このとき、複数の物理アドレスが同じ論理アドレスに割り振られている場合があるので、その場合は１つの論理アドレスに割り振られている全ての物理アドレスを有するバンク状態管理回路出力をその後は使用する。バンク状態管理回路からの問い合わせ結果を得たアドレス変換／コマンド振り分け回路２は次にアクセスコマンドの種別（ライトであるかリードであるか）を確認し、その後の処理フローを決定する。ライトであった場合には図３に一例を示すフローに従いコマンドを発行する。図３で示されるように、ライトアクセス要求のあったアドレスが２重化されたアドレスであるかをチェックし（Step１）、２重化されていないアドレスであった場合には通常のアクセスとしてアクセスコマンドの発行を行わせる（Step４）。アクセス要求の対象である物理アドレスを有するバンクが複数存在する場合には、まず、現在アクセスされているかどうかをチェックし（Step２）、アクセスされている場合には先に発行されているアクセスが完了するまで発行を待たせる。全てのバンクに対し、現在アクセスされていないアドレスであったならば、全てのバンクに対する対象アドレスのヒット／ページミスをチェックする（Step３）。全てに対しヒットであった場合にはヒットとして書き込みコマンドを出力させる（Step５）。一方、どれか１つでもページミスとして扱われるデバイスがあった場合には、ページミス相当として全てのデバイスに対して書き込みコマンドを発行させる（Step６）。リードであった場合には図４に一例を示すようなフローに従いコマンドを発行する。図４で示されるように、リードアクセス要求のあったアドレスが２重化されたアドレスであるかをチェックし（Step１）２重化されていないアドレスであった場合には通常のアクセスとしてアクセスコマンドの発行を行わせる（Step７）。アクセス要求の対象である物理アドレスを有するバンクが複数存在する場合には直前のアクセスコマンドをチェック（Step２）し、異なるデバイスへのアクセスを優先させる。先のアクセス対象のデバイスとことなるデバイスに対し、アクセスするアドレスがヒットであるかどうかをチェックする（Step３および４）。ヒットする場合には先のアクセス対象であったデバイスと異なるデバイスに対してリードコマンドを発行する（Step８）。ページミスである場合には、さらに、直前にアクセスを行ったデバイスに対しヒットであるかどうかをチェックする（Step５および６）。ヒットであった場合には直前にアクセスを行ったデバイスに対してリードコマンドを発行する（Step９）。ページミスであった場合には直前のアクセスと異なるデバイスに対してリードコマンドを発行する。直前のアクセス対象であるかどうかとは、コマンド発行回路４は対象となるアクセスコマンドの開始から完了までの期間をバンク状態管理回路３に知らせる。これにより、現在使用さ��ているデバイスについての情報をバンク状態管理回路４にしらせ、この情報がアドレス変換／コマンド振り分け回路２における直前のアクセスデバイス情報として参照される。
【００１５】
これらのフローに従い本発明を用いた場合のタイミングチャートを図５に示す。図５では、コマンド発行回路は極単純にコマンド発行が完了しないと次のコマンド（データは別途適切なタイミング管理を行う）を受け付けないという条件でタイミングを図示してある。また、図５ではライトデータとリードデータの区別をしやすくするため別々に示してあるが、実際のシステムではデータバスとして同じ信号線上に観測されることはいうまでもない。
【００１６】
図５にてt０でのマスターモジュールＭ０からのライトコマンドは図２のメモリマップからメモリデバイス０およびメモリデバイス１の両方が該当する。よって、図３のライト時の処理フローに従いデバイス０（ＣＳ０）およびデバイス１（ＣＳ１）の両方に対し同時にライトコマンドの発行が行われる。このライトコマンドに対応するライトデータは図５のData#oにてt１からのデータとして図示されている。次にマスターモジュールＭ２からのライトコマンドは対象アドレスがデバイス１のみであることからデバイス１に対してのみのライトコマンドとしてt３に出力される。このライトコマンドに対応する出力データはt４からのデータとして図示されている。次のマスターモジュールＭＯからの最初のリードコマンドは、図２のメモリマップからデバイス０およびデバイス１の両方に対応するアドレスが存在する。従来例の説明時に用いた仮定からページミスであるため、図４のリード時の処理フローに従い、デバイス０に対して発行される。このとき、ページミスであるため、リードコマンドはデバイスのアクセス仕様に従いt４のプリチャージから発行される。t７のアクティベート、t１０のリードコマンドのように発行され、対応するリードデータはt１２から得られるものとして図示してある。マスターモジュールＭ０の２つ目のリードは最初のリードコマンドと同様な処理フローに従い今度はデバイス１に対して発行される。このリードコマンドは最初のリードコマンド同様にページミスであるためプリチャージから発行される必要がある。本発明では異なるデバイスにたいするアクセスとしてアクセスが可能であるため、最初のリードコマンドがデータの取り込みまで完了するのを待たずにコマンド発行が可能である。よって、図５に図示されるようにt１２のタイミングでプリチャージコマンドの発行が可能となる。
【００１７】
上記説明では、コマンド発行回路の機能を大幅に制限した形で本発明の効果を説明しているが、コマンド発行をより効率よく行えるシステムでは上記タイミング図にて示した以上のアクセスの効率化が得られることは明らかである。
【００１８】
次に、本発明の第２の実施形態について説明する。メモリ制御回路から各デバイスに対しバンク選択信号を独立に制御できるようにすればより自由にアドレスマッピングができることは明らかである。図６はバンク選択信号を独立に制御できるようにした本発明の第２の実施形態を示し、図７にはそのときのアドレスマップ例を示す。また図８にタイミング図を示す。図８ではマスターモジュールＭ０のアクセスはデバイス０に対してはバンク０へ、デバイス１に対してはバンク１へのアクセスであったとして図示してある。
【００１９】
図６にて１は第１の実施形態と同じコマンドＦＩＦＯ、３は第１の実施形態と同じバンク状態管理回路であり、第１の実施形態から変更されているものは２１のアドレス変換／コマンド振り分け回路と２２のコマンド発行回路である。コマンド発行回路にコマンドを指示する際、対象となるデバイス毎にバンク情報を出力し、コマンド発行回路２２は指示されたデバイス毎のバンク情報をデバイスにコマンドを発行する際に併せて発行できる。このような構成とすることで、容量の異なるメモリデバイスを組み合わせることが可能となる。その一例として、図７ではメモリデバイス０とメモリデバイス１は異なる容量のデバイス（デバイス１はデバイス０の半分の容量）をシステムで使用している例を示している。本発明の第２の実施例で利用可能なメモリデバイスの組み合わせ条件としては２つのメモリデバイスのカラムアドレスビット数が等しく、クロック周期で数えたタイミング特性が等しければよい。
【００２０】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００２１】
１：コマンドＦＩＦＯ、２：アドレス変換／コマンド振り分け回路、３：バンク状態管理回路、４：コマンド発行回路、２１：アドレス変換／コマンド振り分け回路、２２：コマンド発行回路
【図１】
2011013909.tif 000003
【図２】
2011013909.tif 000004
【図３】
2011013909.tif 000005
【図４】
2011013909.tif 000006
【図５】
2011013909.tif 000007
【図６】
2011013909.tif 000008
【図７】
2011013909.tif 000009
【図８】
2011013909.tif 000010