説明

マルチCPUコア・プロセッサ用DMAC付きDRAMアドレス・マッピング回路

【課題】CPUシステム(PC,TabletPC,PDA etc.)において、CPUコアもしくはOSが32bitであると主記憶サイズは4GB以下の3.5GB程度に制約される。 現状4GB(3.5GB)を超えて搭載したメモリーは無駄となる。 また、実行速度改善に効果がある現在のRAMDISKは主記憶を使う為、主記憶サイズの制限は、32bitシステムでの性能向上の足かせとなっている。
【解決手段】DRAMのローカル・アドレスをシステム物理アドレスにマッピングする回路にDMA機能を持たせる事により、主記憶に割り振れなかったDRAM領域をRAMDISKとして経済的に使用し、かつ、それに関わるデータ転送をDRAMのローカルバス上で局所的に行う事で、従来の主記憶を使ったRAMDISKより、実行効率の良いRAMDISKを供給する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチCPUコア・プロセッサ・システムに於けるDRAM(DDR)の局所アドレス空間とシステムバス・アドレス空間のマッピング回路にキャッシュ・コヒーレンシ機能付きDMA制御回路を内蔵し、搭載DRAMの有効活用と高速RAMDISKを実現するものである。
【先行技術文献】
【特許文献】
【0002】
【特許文献1】特表2009-510630
【特許文献2】特開平06-52092
【特許文献3】特開2000-132499
【特許文献4】特開2000-315186
【特許文献5】特開2008-158964
【発明の概要】
【発明が解決しようとする課題】
【0003】
一時ファイルや作業ファイルをRAMDISKに割り当てるのは性能向上の有効な手段であるが、32ビットCPUあるいは32ビットOSを使用するシステムでは主記憶は4GB以下の制約がある。 主記憶を使用するRAMDISKは32bitシステムでは大容量にする事は難しい。
【0004】
一般的なマルチCPUコア・プロセッサ・システム(PC,TabletPC, PDA etc)において、64ビット化のメリットは64ビット単位で纏めて処理する性能向上と主記憶サイズの制限(2の32乗=4GB)が取り払われる事にある。
【0005】
インテル系CPUの64ビット化はOSの入れ替えで実現出来るが、64ビットOSを統一的に使用するにはアプリケーションの整備状況が不十分ある。 また、非インテルのマルチCPUコアSoCは32ビットが主流であり、4GBを超える主記憶を実装する事は技術的に難しい。
【0006】
主記憶サイズの制限を受けないRAMDISKの実現が望まれる。
【課題を解決するための手段】
【0007】
システムに実装されたDRAMはDRAMコントローラによって、DRAMローカルアドレス空間にマッピングされる。 さらにDRAMローカルアドレス空間は、DRAMアドレス・マッピング回路によって、システムバス・アドレス(通常は物理アドレス)空間にマッピングされる。
【0008】
後者のマッピング回路にDMAC(ダイレクト・メモリー・アクセス・コントローラ)を持たせ、DRAMローカル・アドレス同士およびシステムバス・アドレス空間との間でデータ転送可能せしめる事で、主記憶に割り振る事が出来なかったDRAMの残りの全てをRAMDISKに転用出来、無効メモリーの解消、主記憶サイズの制限を受けないRAMDISKの構築、および、データ転送の効率化が達成される。
【図面の簡単な説明】
【0009】
【図1】本特許のアドレス・マッピング回路[11](Address Mapping Circuit)
【図2】4GBの一部にDDR(DRAM)メモリーがマッピングされた状態の説明
【図3】システムのCPUがマッピング回路を通じて、被マッピング領域をアクセスする状態
【図4】本発明のDMACが非マッピング領域のデータをコヒーレントなデータ転送する状態
【図5】本発明のDMACが非マッピング領域のデータを高速データ転送する状態
【実施例】
【0010】
図1の説明。

[11]は本発明のDMAC付アドレス・マッピング回路である。 本アドレス・マッピング回路[11]はSYSTEM INTERCONNECT BUS[12]とDDR LOCAL BUS[13]の接続点として存在する。 [14][15][16]はDDR(SDRAM)コントローラの一般的構成を示す。
【0011】
本発明のDMAC付アドレス・マッピング回路[11]は以下に示す6つのブロックで構成される。
【0012】
[11#1]:Register File
通常はマッピングの為のアドレステーブルを格納する。本発明ではこれに加えてDMACの為の制御レジスタが追加で含まれる。 通常のアドレス・マッピング回路でも存在する。
【0013】
[11#2]:System Interconnect Interface ex OCP Slave Register)
ホストCPUが本回路内の制御レジスタ群をアクセスする為のインタフェース。 通常のアドレス・マッピング回路でも存在する。
【0014】
[11#3]:Address Mapping & Data Transfer Logic
[11#4]のSLAVE Portが受信した、ホストからのアクセスを受け、Register fileのマッピング情報に沿ってアドレス変換を行い、該当するDRAMのアドレスに対して、転送処置を行う。 通常のアドレス・マッピング回路でも存在する。[図3]参照
【0015】
[11#4]:System Interconnect Interface ex OCP Slave
ホストCPUからのメモリーアクセスを受信する為のSLAVE Port。 通常のアドレス・マッピング回路でも存在する。
【0016】
[11#5]:Direct Memory Access Controller (DMAC)
本発明におけるDMAコントローラ。 マッピングされたDRAMメモリー領域がキャッシュかアンキャッシュかで、DMA転送の方法が異なる。 キャッシュの場合にはCPU内のキャッシュ内容の整合性を確保する為に[11#6]のMASTER Portを駆動して、CPUのキャッシュコヒーレンシー・エージェントの機能を使う。 [図4]参照
一方、アンキャッシュの場合にはDRAMローカル・バスのみを使用して、最速で転送を行う。[図5]参照
【0017】
[11#6]:System Interconnect Interface ex OCP Master
本アドレス・マッピング回路から、データ転送を起動(イニシエイト)する為のMASTER Port。 本発明特有の機能ブロック。
【0018】
図2の説明

[21]:32bitシステムにおけるメモリーマップ例。
[22]:DRAM(DDR) メモリーマップ例。本例では、1024GBの大きさがある。

本例ではシステムメモリー空間の0番地から、3.5GBまでが、DRAMの同様のアドレスにマッピングされている。 DRAMの3.5GBから1024GBまでは割り当てがなされていない。
【0019】
図3の説明

Multi-CPU Core[31]内のいずれかのCPUがDRAM領域をアクセスした場合を示している。 本アクセスは本発明に拠るマッピング回路のSLAVE Port[32]で受理され、Memory Mapping & Data Transfer Logic[33]を経由し、DDR Memoryをアクセスする。 この動作自身は通常のメモリーマッピング回路と同等である。
【0020】
図4の説明

DMAC[41]がキャッシュされた主記憶の領域に対して転送を起動した場合である。 転送要求はSystem Interconnect Interface (Master)[42]を通じて、Multi-CPU Core[43]のIO Coherency Portに送られる。 このIO Coherency Portはキャッシュのコヒーレンシーをキープするに必要な処置を取り、最終的には同Multi-CPU Core[43]のSystem Interconnect Interface (Master)を通じて、マッピング回路のSystem Interconnect Interface (Slave)[44]に伝わり、通常のメモリー・マッピング処理転送となる。
【0021】
図5の説明

DMAC[51]に与えられたDRAMアドレスがアンキャッシュ領域の場合にはコヒーレンシー処理が不要である。その場合DMAC[51]はDRAM(DDR)ローカル・バス上のみでデータ転送を行う。 この転送ではDRAM(DDR)メモリー[52]のみが関与する。

【特許請求の範囲】
【請求項1】
マルチCPUコアシステムに於ける、DDR SDRAM(以下DRAM)コントローラのDRAMローカルアドレス空間をシステム・インターコネクト・バス・アドレス空間(以下、システム・バス・アドレス空間)にマッピングする回路で有って、ダイレクト・メモリー・アクセス・コントローラ(以下、DMAC)およびシステム・インターコネクト・バス(以下、システム・バス)に対し、転送を起動(イニシェイト)する事が出来るマスターポート(以下、MASTER Port)を具備し、少なくとも(1)システム・バスからのアクセスをDRAMにマッピングしデータ転送を行う第1の転送モードと、(2)DMACを起動し、DRAMメモリー上の任意の第1アドレス領域とマッピング回路に拠ってマッピングされたキャッシュ領域の任意の第2アドレス領域間で該MASTER Portを介し、IOコヒーレントなデータ転送を行う第2の転送モードと、(3)DMACを起動して、DRAMメモリー上の任意の第1アドレス領域とマッピング回路に拠ってマッピングされたアンキャッシュ領域の任意の第3アドレス領域間のデータ転送をDRAMローカル・アドレス上で行う、第3のモードを持った、DRAMメモリーアドレスマッピング回路。
【請求項2】
マルチCPUコアシステムに於ける、DDR SDRAM(以下DRAM)コントローラのDRAMローカルアドレス空間をシステム・インターコネクト・バス・アドレス空間(以下、システム・バス・アドレス空間)にマッピングする回路で有って、ダイレクト・メモリー・アクセス・コントローラ(以下、DMAC)およびシステム・インターコネクト・バス(以下、システム・バス)に対し、転送を起動(イニシェイト)する事が出来るマスターポート(以下、MASTER Port)を具備し、少なくとも(1)システム・バスからのアクセスをDRAMにマッピングしデータ転送を行う第1の転送モードと、(2)DMACを起動し、DRAMメモリー上の任意の第1アドレス領域とマッピング回路に拠ってマッピングされたキャッシュ領域の任意の第2アドレス領域間で該MASTER Portを介し、IOコヒーレントなデータ転送を行う第2の転送モードと、(3)DMACを起動して、DRAMメモリー上の任意の第1アドレス領域とマッピング回路に拠ってマッピングされたアンキャッシュ領域の任意の第3アドレス領域間のデータ転送をDRAMローカル・アドレス上で行う、第3のモードを持った、DRAMメモリーアドレスマッピング回路を内蔵したシステム・オン・チップ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−73554(P2013−73554A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−213923(P2011−213923)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(711002018)
【Fターム(参考)】