(57)【要約】【課題】CPUシステム（PC,TabletPC,PDA etc.）において、CPUコアもしくはOSが32bitであると主記憶サイズは4GB以下の3.5GB程度に制約される。 現状4GB（3.5GB)を超えて搭載したメモリーは無駄となる。 また、実行速度改善に効果がある現在のRAMDISKは主記憶を使う為、主記憶サイズの制限は、32bitシステムでの性能向上の足かせとなっている。【解決手段】DRAMのローカル・アドレスをシステム物理アドレスにマッピングする回路にDMA機能を持たせる事により、主記憶に割り振れなかったDRAM領域をRAMDISKとして経済的に使用し、かつ、それに関わるデータ転送をDRAMのローカルバス上で局所的に行う事で、従来の主記憶を使ったRAMDISKより、実行効率の良いRAMDISKを供給する。【選択図】図１
2013073554.tif 000002
【特許請求の範囲】
【請求項１】
マルチ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メモリーアドレスマッピング回路。
【請求項２】
マルチ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メモリーアドレスマッピング回路を内蔵したシステム・オン・チップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチCPUコア・プロセッサ・システムに於けるDRAM(DDR)の局所アドレス空間とシステムバス・アドレス空間のマッピング回路にキャッシュ・コヒーレンシ機能付きDMA制御回路を内蔵し、搭載DRAMの有効活用と高速RAMDISKを実現するものである。
【先行技術文献】
【特許文献】
【０００２】
【特許文献１】特表2009-510630
【特許文献２】特開平06-52092
【特許文献３】特開2000-132499
【特許文献４】特開2000-315186
【特許文献５】特開2008-158964
【発明の概要】
【発明が解決しようとする課題】
【０００３】
一時ファイルや作業ファイルをRAMDISKに割り当てるのは性能向上の有効な手段であるが、32ビットCPUあるいは32ビットOSを使用するシステムでは主記憶は4GB以下の制約がある。 主記憶を使用するRAMDISKは32bitシステムでは大容量にする事は難しい。
【０００４】
一般的なマルチCPUコア・プロセッサ・システム（PC,TabletPC, PDA etc)において、64ビット化のメリットは64ビット単位で纏めて処理する性能向上と主記憶サイズの制限（2の32乗＝4GB）が取り払われる事にある。
【０００５】
インテル系CPUの64ビット化はOSの入れ替えで実現出来るが、64ビットOSを統一的に使用するにはアプリケーションの整備状況が不十分ある。 また、非インテルのマルチCPUコアSoCは32ビットが主流であり、4GBを超える主記憶を実装する事は技術的に難しい。
【０００６】
主記憶サイズの制限を受けないRAMDISKの実現が望まれる。
【課題を解決するための手段】
【０００７】
システムに実装されたDRAMはDRAMコントローラによって、DRAMローカルアドレス空間にマッピングされる。 さらにDRAMローカルアドレス空間は、DRAMアドレス・マッピング回路によって、システムバス・アドレス（通常は物理アドレス）空間にマッピングされる。
【０００８】
後者のマッピング回路にDMAC(ダイレクト・メモリー・アクセス・コントローラ)を持たせ、DRAMローカル・アドレス同士およびシステムバス・アドレス空間との間でデータ転送可能せしめる事で、主記憶に割り振る事が出来なかったDRAMの残りの全てをRAMDISKに転用出来、無効メモリーの解消、主記憶サイズの制限を受けないRAMDISKの構築、および、データ転送の効率化が達成される。
【図面の簡単な説明】
【０００９】
【図１】本特許のアドレス・マッピング回路[11](Address Mapping Circuit)
【図２】4GBの一部にDDR(DRAM)メモリーがマッピングされた状態の説明
【図３】システムのCPUがマッピング回路を通じて、被マッピング領域をアクセスする状態
【図４】本発明のDMACが非マッピング領域のデータをコヒーレントなデータ転送する状態
【図５】本発明のDMACが非マッピング領域のデータを高速データ転送する状態
【実施例】
【００１０】
図1の説明。
[11]は本発明のDMAC付アドレス・マッピング回路である。 本アドレス・マッピング回路[11]はSYSTEM INTERCONNECT BUS[12]とDDR LOCAL BUS[13]の接続点として存在する。  [14][15][16]はDDR(SDRAM)コントローラの一般的構成を示す。
【００１１】
本発明のDMAC付アドレス・マッピング回路[11]は以下に示す６つのブロックで構成される。
【００１２】
[11#1]：Register File
通常はマッピングの為のアドレステーブルを格納する。本発明ではこれに加えてDMACの為の制御レジスタが追加で含まれる。 通常のアドレス・マッピング回路でも存在する。
【００１３】
[11#2]：System Interconnect Interface ex OCP Slave Register)
ホストCPUが本回路内の制御レジスタ群をアクセスする為のインタフェース。 通常のアドレス・マッピング回路でも存在する。
【００１４】
[11#3]：Address Mapping & Data Transfer Logic
[11#4]のSLAVE Portが受信した、ホストからのアクセスを受け、Register fileのマッピング情報に沿ってアドレス変換を行い、該当するDRAMのアドレスに対して、転送処置を行う。 通常のアドレス・マッピング回路でも存在する。[図3]参照
【００１５】
[11#4]：System Interconnect Interface ex OCP Slave
ホストCPUからのメモリーアクセスを受信する為のSLAVE Port。 通常のアドレス・マッピング回路でも存在する。
【００１６】
[11#5]：Direct Memory Access Controller (DMAC)
本発明におけるDMAコントローラ。 マッピングされたDRAMメモリー領域がキャッシュかアンキャッシュかで、DMA転送の方法が異なる。 キャッシュの場合にはCPU内のキャッシュ内容の整合性を確保する為に[11#6]のMASTER Portを駆動して、CPUのキャッシュコヒーレンシー・エージェントの機能を使う。 [図4]参照
一方、アンキャッシュの場合にはDRAMローカル・バスのみを使用して、最速で転送を行う。[図5]参照
【００１７】
[11#6]：System Interconnect Interface  ex OCP Master
本アドレス・マッピング回路から、データ転送を起動(イニシエイト)する為のMASTER Port。 本発明特有の機能ブロック。
【００１８】
図2の説明
[21]：32bitシステムにおけるメモリーマップ例。 
[22]：DRAM(DDR) メモリーマップ例。本例では、1024GBの大きさがある。
本例ではシステムメモリー空間の０番地から、3.5GBまでが、DRAMの同様のアドレスにマッピングされている。 DRAMの3.5GBから1024GBまでは割り当てがなされていない。
【００１９】
図3の説明
Multi-CPU Core[31]内のいずれかのCPUがDRAM領域をアクセスした場合を示している。 本アクセスは本発明に拠るマッピング回路のSLAVE Port[32]で受理され、Memory Mapping & Data Transfer Logic[33]を経由し、DDR Memoryをアクセスする。  この動作自身は通常のメモリーマッピング回路と同等である。
【００２０】
図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]に伝わり、通常のメモリー・マッピング処理転送となる。
【００２１】
図5の説明
DMAC[51]に与えられたDRAMアドレスがアンキャッシュ領域の場合にはコヒーレンシー処理が不要である。その場合DMAC[51]はDRAM(DDR)ローカル・バス上のみでデータ転送を行う。 この転送ではDRAM(DDR)メモリー[52]のみが関与する。
【図１】
2013073554.tif 000003
【図２】
2013073554.tif 000004
【図３】
2013073554.tif 000005
【図４】
2013073554.tif 000006
【図５】
2013073554.tif 000007