説明

メモリ制御回路

【課題】実際のシステムにメモリデバイスを組み込んだ際に利用されないメモリアドレス空間を利用し、上記で述べたようなページミス時のアクセスペナルティを軽減する。
【解決手段】メモリ制御回路は、メモリデバイスへのアクセス種別およびアクセスアドレスを判別し適切なメモリデバイスに対してアクセスコマンドを発行させるコマンド振り分け手段と、実際のメモリデバイスにアクセスコマンドを発行させるコマンド発行手段とを備える。コマンド振り分け手段はメモリアクセスがライトであった場合には、アドレス変換手段が示すデバイスの物理アドレスに対しライトコマンドを発行する。メモリアクセスがリードであった場合には前記アドレス変換手段が示す物理アドレスの状態を確認して最適なデバイスに対してリードコマンドを発行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ制御方法及びその実施装置に関し、特に、複数のバンクを有するメモリ制御回路であって、メモリデバイスへの高速なメモリ・アクセスを行うメモリ制御方法及びその実施装置に適用して有効な技術に関するものである。
【背景技術】
【0002】
昨今のメモリデバイスの大容量化、高速化は目覚しいものがあり、また、メモリアクセスへの高速化としてバンクインターリーブアクセスが一般化されている。バンクインターリーブアクセスは最近のメモリデバイスのようにメモリデバイス内部が複数のバンクに分割されている。各々のバンクが独立した構成になっていることを利用し、異なるバンクに対するアクセスコマンドを交互に、かつオーバーラップさせながら発行することでコマンド間隔を小さくする手法である。また、メモリコントローラがメモリの共有領域の最終アドレスへの書き込み要求がメモリに対して発行されたことをバスマスタBに通知する、といったものが提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−241612号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記バンクインターリーブアクセスを行わせるためには、メモリ制御回路あるいはそのメモリ制御回路を使用するシステムにおいて、メモリアクセスがバンクインターリーブ条件を満足できるようにメモリ割り振りを行う必要がある。この条件を必ず満足させることは不可能に近く、一定の割合でバンクインターリーブ条件を満足できないアクセスが発生する。昨今のメモリデバイスは、バンクへのアクセスが同一のロウアドレスであるか、あるいは上記バンクインターリーブアクセスが可能な場合にはメモリデバイスの持つ高速アクセスの恩恵を得られる。一度ページミスとなった場合には、そのアクセスペナルティーが与える影響がクロック周期に対し大きく、問題となる。
【0005】
上記問題は、特に、複数の機能モジュールが同一のメモリ制御回路を共有する、いわゆるユニファイドメモリ構成を用いたシステムの場合に特に問題となる。加えていえば、複数のマスターモジュール内にメモリのページアサインが困難なマスターモジュール、例えばディスクリプターテーブルを参照する。その結果に基づき、アクセスアドレスを決定するDMACのようなマスターモジュールが存在する場合に、その他のマスターモジュールのメモリアクセスまで影響が及び、メモリアクセス効率を大幅に下げてしまうため問題となる。
【0006】
先にも述べたように、昨今のメモリデバイスはデータ転送の高速化が図られているが、これは、内部構造を並列化することにより得られている。そのため、上記従来例で示したようなページミスが発生したときのアクセスペナルティの時間は実は改善されていない。つまり、高速メモリデバイスになるに従い、ページミスが発生したときのクロックサイクル数でのアクセスペナルティは実は大きくなることが良く知られている。
【0007】
そこで、本発明の目的は、論理アドレスエリアにおけるページミスの発生確率を低減させ、結果的にシステム全体としての高速アクセスを可能とすることにある。
【課題を解決するための手段】
【0008】
本発明のメモリ制御回路は、複数のバンクを有する複数のメモリデバイスが接続され、それぞれのメモリデバイスにアクセス可能なメモリ制御回路において、論理アドレスと実際のメモリデバイスにおける物理アドレスとの変換を行うアドレス変換手段と、前記メモリデバイスの各バンクにおけるアクセス状態を管理する管理手段と、メモリデバイスへのアクセスコマンドと物理アドレスとに基づいて適切なメモリデバイスに対してアクセスコマンドを発行させるコマンド振り分け手段と、実際のメモリデバイスにアクセスコマンドを発行させるコマンド発行手段とを備え、前記コマンド振り分け手段は、メモリアクセスがライトであった場合には前記アドレス変換手段が示すデバイスの物理アドレスに対しライトコマンドを発行し、メモリアクセスがリードであった場合には前記アドレス変換手段が示す物理アドレスの状態を確認してデバイスに対してリードコマンドを発行することを特徴とする。
【発明の効果】
【0009】
本発明によれば、論理アドレスエリアにおけるページミスの発生確率を低減させ、結果的にシステム全体としての高速アクセスを可能とするものである。
【図面の簡単な説明】
【0010】
【図1】本発明の第1の実施形態に係るメモリ制御回路の内部構成を概略的に示すブロック図である。
【図2】本発明の第1の実施形態におけるメモリマップの例を示す図である。
【図3】メモリ制御回路におけるアドレス変換/コマンド振り分け回路のライトコマンド発行時の処理を示すフローチャートである。
【図4】メモリ制御回路におけるアドレス変換/コマンド振り分け回路のリードコマンド発行時の処理を示すフローチャートである。
【図5】本発明の第1実施形態の効果を説明するためのタイミングチャートである。
【図6】本発明の第2の実施形態に係るメモリ制御回路の内部構成を概略的に示すブロック図である。
【図7】本発明の第2の実施形態におけるメモリマップの例を示す図である。
【図8】本発明の第2の実施形態の効果を説明するためのタイミングチャートである。
【発明を実施するための形態】
【0011】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【0012】
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係るメモリ制御回路の内部構成を概略的に示すブロック図である。図1において、1は各マスターモジュールに接続されて受け取ったメモリへの論理アクセスを一時記憶しておくコマンドFIFOである。2はコマンドFIFOから取り出したメモリアクセスコマンドを解析し、リード/ライトコマンドおよびデバイス側で用いられる物理アドレスに変換するアドレス変換/コマンド振り分け回路である。また、アドレス変換/コマンド振り分け回路2は、アクセス可能なデバイス側のアドレスが複数ある場合に各デバイスの状態に応じてどのデバイスにアクセスするかを決定する。3は各デバイスの各バンク状態を保持/管理するバンク状態管理回路である。4はアドレス変換/コマンド振分け回路2から受け取ったコマンドにより、該当するメモリデバイスに対し、メモリデバイスに適合するタイミングでコマンドを発行するコマンド発行回路4である。また、コマンド発行回路4は、該当するメモリデバイスのバンク状態管理回路に対し、アクセス状態を知らせる機能を有する。
【0013】
本実施形態において用いられるメモリマップの例を図2に示す。マスターモジュール102(M0)がデバイス0のバンクAおよびBを使用する。マスターモジュール103(M1)がデバイス0のバンクCおよびDを使用する。マスターモジュール104がデバイス1のバンクCおよびDを使用するものとする。
【0014】
コマンドFIFO1がマスターモジュールからのメモリアクセスコマンドを受け取っているとき、アドレス変換/コマンド振り分け回路2はコマンドFIFO1からメモリアクセスコマンドを取り出す。アドレス変換/コマンド振り分け回路2は、まず、メモリアクセスコマンドのアドレスから該当する物理アドレスの状態をバンク状態管理回路3に問い合わせる。このとき、複数の物理アドレスが同じ論理アドレスに割り振られている場合があるので、その場合は1つの論理アドレスに割り振られている全ての物理アドレスを有するバンク状態管理回路出力をその後は使用する。バンク状態管理回路からの問い合わせ結果を得たアドレス変換/コマンド振り分け回路2は次にアクセスコマンドの種別(ライトであるかリードであるか)を確認し、その後の処理フローを決定する。ライトであった場合には図3に一例を示すフローに従いコマンドを発行する。図3で示されるように、ライトアクセス要求のあったアドレスが2重化されたアドレスであるかをチェックし(Step1)、2重化されていないアドレスであった場合には通常のアクセスとしてアクセスコマンドの発行を行わせる(Step4)。アクセス要求の対象である物理アドレスを有するバンクが複数存在する場合には、まず、現在アクセスされているかどうかをチェックし(Step2)、アクセスされている場合には先に発行されているアクセスが完了するまで発行を待たせる。全てのバンクに対し、現在アクセスされていないアドレスであったならば、全てのバンクに対する対象アドレスのヒット/ページミスをチェックする(Step3)。全てに対しヒットであった場合にはヒットとして書き込みコマンドを出力させる(Step5)。一方、どれか1つでもページミスとして扱われるデバイスがあった場合には、ページミス相当として全てのデバイスに対して書き込みコマンドを発行させる(Step6)。リードであった場合には図4に一例を示すようなフローに従いコマンドを発行する。図4で示されるように、リードアクセス要求のあったアドレスが2重化されたアドレスであるかをチェックし(Step1)2重化されていないアドレスであった場合には通常のアクセスとしてアクセスコマンドの発行を行わせる(Step7)。アクセス要求の対象である物理アドレスを有するバンクが複数存在する場合には直前のアクセスコマンドをチェック(Step2)し、異なるデバイスへのアクセスを優先させる。先のアクセス対象のデバイスとことなるデバイスに対し、アクセスするアドレスがヒットであるかどうかをチェックする(Step3および4)。ヒットする場合には先のアクセス対象であったデバイスと異なるデバイスに対してリードコマンドを発行する(Step8)。ページミスである場合には、さらに、直前にアクセスを行ったデバイスに対しヒットであるかどうかをチェックする(Step5および6)。ヒットであった場合には直前にアクセスを行ったデバイスに対してリードコマンドを発行する(Step9)。ページミスであった場合には直前のアクセスと異なるデバイスに対してリードコマンドを発行する。直前のアクセス対象であるかどうかとは、コマンド発行回路4は対象となるアクセスコマンドの開始から完了までの期間をバンク状態管理回路3に知らせる。これにより、現在使用されているデバイスについての情報をバンク状態管理回路4にしらせ、この情報がアドレス変換/コマンド振り分け回路2における直前のアクセスデバイス情報として参照される。
【0015】
これらのフローに従い本発明を用いた場合のタイミングチャートを図5に示す。図5では、コマンド発行回路は極単純にコマンド発行が完了しないと次のコマンド(データは別途適切なタイミング管理を行う)を受け付けないという条件でタイミングを図示してある。また、図5ではライトデータとリードデータの区別をしやすくするため別々に示してあるが、実際のシステムではデータバスとして同じ信号線上に観測されることはいうまでもない。
【0016】
図5にてt0でのマスターモジュールM0からのライトコマンドは図2のメモリマップからメモリデバイス0およびメモリデバイス1の両方が該当する。よって、図3のライト時の処理フローに従いデバイス0(CS0)およびデバイス1(CS1)の両方に対し同時にライトコマンドの発行が行われる。このライトコマンドに対応するライトデータは図5のData#oにてt1からのデータとして図示されている。次にマスターモジュールM2からのライトコマンドは対象アドレスがデバイス1のみであることからデバイス1に対してのみのライトコマンドとしてt3に出力される。このライトコマンドに対応する出力データはt4からのデータとして図示されている。次のマスターモジュールMOからの最初のリードコマンドは、図2のメモリマップからデバイス0およびデバイス1の両方に対応するアドレスが存在する。従来例の説明時に用いた仮定からページミスであるため、図4のリード時の処理フローに従い、デバイス0に対して発行される。このとき、ページミスであるため、リードコマンドはデバイスのアクセス仕様に従いt4のプリチャージから発行される。t7のアクティベート、t10のリードコマンドのように発行され、対応するリードデータはt12から得られるものとして図示してある。マスターモジュールM0の2つ目のリードは最初のリードコマンドと同様な処理フローに従い今度はデバイス1に対して発行される。このリードコマンドは最初のリードコマンド同様にページミスであるためプリチャージから発行される必要がある。本発明では異なるデバイスにたいするアクセスとしてアクセスが可能であるため、最初のリードコマンドがデータの取り込みまで完了するのを待たずにコマンド発行が可能である。よって、図5に図示されるようにt12のタイミングでプリチャージコマンドの発行が可能となる。
【0017】
上記説明では、コマンド発行回路の機能を大幅に制限した形で本発明の効果を説明しているが、コマンド発行をより効率よく行えるシステムでは上記タイミング図にて示した以上のアクセスの効率化が得られることは明らかである。
【0018】
次に、本発明の第2の実施形態について説明する。メモリ制御回路から各デバイスに対しバンク選択信号を独立に制御できるようにすればより自由にアドレスマッピングができることは明らかである。図6はバンク選択信号を独立に制御できるようにした本発明の第2の実施形態を示し、図7にはそのときのアドレスマップ例を示す。また図8にタイミング図を示す。図8ではマスターモジュールM0のアクセスはデバイス0に対してはバンク0へ、デバイス1に対してはバンク1へのアクセスであったとして図示してある。
【0019】
図6にて1は第1の実施形態と同じコマンドFIFO、3は第1の実施形態と同じバンク状態管理回路であり、第1の実施形態から変更されているものは21のアドレス変換/コマンド振り分け回路と22のコマンド発行回路である。コマンド発行回路にコマンドを指示する際、対象となるデバイス毎にバンク情報を出力し、コマンド発行回路22は指示されたデバイス毎のバンク情報をデバイスにコマンドを発行する際に併せて発行できる。このような構成とすることで、容量の異なるメモリデバイスを組み合わせることが可能となる。その一例として、図7ではメモリデバイス0とメモリデバイス1は異なる容量のデバイス(デバイス1はデバイス0の半分の容量)をシステムで使用している例を示している。本発明の第2の実施例で利用可能なメモリデバイスの組み合わせ条件としては2つのメモリデバイスのカラムアドレスビット数が等しく、クロック周期で数えたタイミング特性が等しければよい。
【0020】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0021】
1:コマンドFIFO、2:アドレス変換/コマンド振り分け回路、3:バンク状態管理回路、4:コマンド発行回路、21:アドレス変換/コマンド振り分け回路、22:コマンド発行回路

【特許請求の範囲】
【請求項1】
複数のバンクを有する複数のメモリデバイスが接続され、それぞれのメモリデバイスにアクセス可能なメモリ制御回路において、
論理アドレスと実際のメモリデバイスにおける物理アドレスとの変換を行うアドレス変換手段と、
前記メモリデバイスの各バンクにおけるアクセス状態を管理する管理手段と、
メモリデバイスへのアクセスコマンドと物理アドレスとに基づいて適切なメモリデバイスに対してアクセスコマンドを発行させるコマンド振り分け手段と、
実際のメモリデバイスにアクセスコマンドを発行させるコマンド発行手段とを備え、
前記コマンド振り分け手段は、メモリアクセスがライトであった場合には前記アドレス変換手段が示すデバイスの物理アドレスに対しライトコマンドを発行し、メモリアクセスがリードであった場合には前記アドレス変換手段が示す物理アドレスの状態を確認してデバイスに対してリードコマンドを発行することを特徴とするメモリ制御回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−13909(P2011−13909A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−157100(P2009−157100)
【出願日】平成21年7月1日(2009.7.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】