(57)【要約】【課題】性能偏差を減らし得るシステムとモバイルコンピューティング装置とを提供する。【解決手段】本発明のシステムは、プロセッサと、プロセッサに接続された第１メモリ及び第２メモリと、メモリ割り当て要請を受信するメモリ管理モジュールと、を含み、第１メモリ及び第２メモリのそれぞれは、帯域幅と消費電力とのうちから１つを含むハードウェア属性を有し、第１メモリのハードウェア属性の第１値は、第２メモリのハードウェア属性の第２値と互いに異なり、メモリ管理モジュールは、第１値及び第２値に基づいたメモリ割り当て要請に応答して、メモリ領域を第１メモリまたは第２メモリに割り当てる。【選択図】      図５Ａ
2015079511.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに接続された第１メモリ及び第２メモリと、
メモリ割り当て要請を受信するメモリ管理モジュールと、を含み、
前記第１メモリと前記第２メモリのそれぞれは、帯域幅と消費電力とのうちから１つを含むハードウェア属性を有し、前記第１メモリの前記ハードウェア属性の第１値は、前記第２メモリの前記ハードウェア属性の第２値と互いに異なり、
前記メモリ管理モジュールは、前記第１値及び前記第２値に基づいた前記メモリ割り当て要請に応答して、メモリ領域を前記第１メモリまたは前記第２メモリに割り当てるシステム。
【請求項２】
前記第１メモリの前記帯域幅及び前記消費電力を含む前記第１値は、前記第２メモリの前記帯域幅及び前記消費電力を含む前記第２値と互いに異なる請求項１に記載のシステム。
【請求項３】
前記第１メモリを制御する第１メモリコントローラと、前記第２メモリを制御する第２メモリコントローラと、をさらに含む請求項１に記載のシステム。
【請求項４】
前記第１メモリコントローラと前記第２メモリコントローラは、前記プロセッサを含む１つのチップに具現される請求項３に記載のシステム。
【請求項５】
前記メモリ割り当て要請は、ハードウェア属性レベルを明示し、前記メモリ管理モジュールは、前記メモリ割り当て要請で明示された前記ハードウェア属性レベルに基づいて、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる請求項１に記載のシステム。
【請求項６】
前記ハードウェア属性は、前記帯域幅、前記消費電力、及びレイテンシのうちから１つを含む請求項１に記載のシステム。
【請求項７】
前記メモリ管理モジュールは、前記メモリ割り当て要請を出力したアプリケーションのアプリケーションタイプに基づいて、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる請求項１に記載のシステム。
【請求項８】
前記メモリ管理モジュールは、前記第１値及び前記第２値に基づいた前記メモリ割り当て要請に応答して、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当て、前記第１値と前記第２値のそれぞれは、前記第１メモリと前記第２メモリのそれぞれの前記帯域幅、前記消費電力、及びレイテンシのうちから少なくとも１つを含む請求項１に記載のシステム。
【請求項９】
前記メモリ管理モジュールは、前記第１値、前記第２値、前記メモリ割り当て要請を出力したアプリケーションの配定優先権に基づいた前記メモリ割り当て要請に応答して、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる請求項１に記載のシステム。
【請求項１０】
前記メモリ管理モジュールは、第１配定優先権を有する第１アプリケーションから出力された前記メモリ割り当て要請に応答して、前記メモリ領域が、前記第１メモリで割り当てられなければならないという決定と、前記第１アプリケーションから出力された前記メモリ割り当て要請を満足するために、前記第１メモリで利用可能な自由メモリ領域が十分ではないという決定と、に基づいて、前記第１配定優先権よりも低い第２配定優先権を有する第２アプリケーションのために、前記第１メモリで既に割り当てられたバッファを前記第２メモリに移送し、次いで、前記メモリ割り当て要請に応答して、前記第１メモリの前記メモリ領域を前記第１アプリケーションに割り当てる請求項１に記載のシステム。
【請求項１１】
前記メモリ管理モジュールは、前記バッファに対して十分なメモリ領域が前記第１メモリで使用可能になった時、前記第２アプリケーションのために割り当てられた前記バッファを前記第１メモリに移送する請求項１０に記載のシステム。
【請求項１２】
前記メモリ管理モジュールは、第１配定優先権を有する第１アプリケーションから出力された前記メモリ割り当て要請に応答して、前記メモリ領域が、前記第１メモリに割り当てられなければならないという決定と、前記第１アプリケーションから出力された前記メモリ割り当て要請を満足するために、前記第１メモリで利用可能な自由メモリ領域が十分ではないという決定と、に基づいて、前記第１配定優先権よりも低い第２配定優先権を有し、前記第１メモリで割り当てられたメモリ領域を有する第２アプリケーションをキルし、次いで、前記メモリ割り当て要請に応答して、前記第１メモリの前記メモリ領域を前記第１アプリケーションに割り当てる請求項１に記載のシステム。
【請求項１３】
前記第１メモリ、前記第２メモリ、前記プロセッサのそれぞれは、互いに異なるチップに具現される請求項１に記載のシステム。
【請求項１４】
前記第１メモリと前記プロセッサは、第１パッケージとして具現され、前記第２メモリは、前記第１パッケージと互いに異なる第２パッケージとして具現される請求項１３に記載のシステム。
【請求項１５】
前記第１メモリは、ＴＳＶを通じて前記プロセッサと接続される請求項１４に記載のシステム。
【請求項１６】
前記第１メモリは、ＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭであり、第２メモリは、ＤＲＡＭである請求項１に記載のシステム。
【請求項１７】
プロセッサと、
前記プロセッサに接続されたディスプレイコントローラと、
前記プロセッサに接続された第１メモリコントローラ及び第２メモリコントローラと、
それぞれが前記第１メモリコントローラと前記第２メモリコントローラのそれぞれに接続された第１ＤＲＡＭ及び第２ＤＲＡＭと、
メモリ割り当て要請を受信するメモリ管理モジュールと、を含み、
前記第１ＤＲＡＭと前記第ＤＲＡＭのそれぞれは、ハードウェア属性を有し、前記第１ＤＲＡＭの前記ハードウェア属性の第１値は、前記第２ＤＲＡＭの前記ハードウェア属性の第２値と互いに異なり、
前記メモリ管理モジュールは、前記メモリ割り当て要請、前記第１値、及び前記第２値に応答してメモリを割り当てるモバイルコンピューティング装置。
【請求項１８】
前記ハードウェア属性は、帯域幅、消費電力、及びレイテンシを含む請求項１７に記載のモバイルコンピューティング装置。
【請求項１９】
前記第１ＤＲＡＭ、前記第２ＤＲＡＭ、及び前記プロセッサのそれぞれは、互いに異なるチップに具現される請求項１８に記載のモバイルコンピューティング装置。
【請求項２０】
前記第１ＤＲＡＭは、ＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭであり、前記第２ＤＲＡＭは、ＬＰＤＤＲ  ＤＲＡＭである請求項１７に記載のモバイルコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ管理技術に係り、特に、異種のメモリを管理する方法とシステムとに関する。
【背景技術】
【０００２】
メモリ管理（ｍｅｍｏｒｙ ｍａｎａｇｅｍｅｎｔ）とは、コンピュータで使用可能なメモリ領域を管理する方法である。最も単純な形態のメモリ管理は、プログラムによる要請がある時、メモリの一部領域をプログラムに割り当て（ａｌｌｏｃａｔｅ）、メモリの一部領域に対する割り当てがこれ以上必要ではない時、後で一部領域を再び使用できるように、一部領域に対する割り当てを解除することである。メインメモリに対する管理は、コンピュータシステムにおいて必須である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許公開第２０１２／０１４４１１１号公報
【特許文献２】米国特許第８４２３７２７号公報
【特許文献３】米国特許公開第２０１３／０１１１２２１号公報
【特許文献４】米国特許公開第２０１２／０１３７０５５号公報
【特許文献５】米国特許公開第２０１２／０１１７３２０号公報
【特許文献６】米国特許公開第２０１１／００３５５４８号公報
【特許文献７】米国特許公開第２０１０／００３７０１７号公報
【特許文献８】米国特許第８４３３６８６号公報
【特許文献９】米国特許第７５８４３３５号公報
【特許文献１０】米国特許第６２９２８７４号公報
【特許文献１１】米国特許公開第２０１１／０２８３０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする技術的な課題は、異種のメモリのそれぞれのハードウェア特性を用いてアプリケーションが使うメモリ領域を異種のメモリのうちから何れか１つに割り当てることによって、性能（ｐｅｒｆｏｒｍａｎｃｅ）を向上させ、性能偏差（ｐｅｒｆｏｒｍａｎｃｅ ｄｅｖｉａｔｉｏｎ）を減らしうる異種のメモリを管理する方法と、該方法を行うシステムと、を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の実施形態によるシステムは、プロセッサと、前記プロセッサに接続された第１メモリ及び第２メモリと、メモリ割り当て要請を受信するメモリ管理モジュールと、を含み、前記第１メモリと前記第２メモリのそれぞれは、帯域幅と消費電力とのうちから１つを含むハードウェア属性を有し、前記第１メモリの前記ハードウェア属性の第１値は、前記第２メモリの前記ハードウェア属性の第２値と互いに異なり、前記メモリ管理モジュールは、前記第１値及び前記第２値に基づいた前記メモリ割り当て要請に応答して、メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる。
【０００６】
前記第１メモリの前記帯域幅及び前記消費電力を含む前記第１値は、前記第２メモリの前記帯域幅及び前記消費電力を含む前記第２値と互いに異なる。前記システムは、前記第１メモリを制御する第１メモリコントローラと、前記第２メモリを制御する第２メモリコントローラと、をさらに含む。前記第１メモリコントローラと前記第２メモリコントローラは、前記プロセッサを含む１つのチップに具現される。
【０００７】
実施形態によって、前記メモリ割り当て要請は、ハードウェア属性レベルを明示（ｓｐｅｃｉｆｉｅｓ）し、前記メモリ管理モジュールは、前記メモリ割り当て要請で明示された前記ハードウェア属性レベルに基づいて、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる。前記ハードウェア属性は、前記帯域幅、前記消費電力、及びレイテンシのうちから１つを含む。
他の実施形態によって、前記メモリ管理モジュールは、前記メモリ割り当て要請を出力したアプリケーションのアプリケーションタイプに基づいて、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる。
【０００８】
さらに他の実施形態によって、前記メモリ管理モジュールは、前記第１値及び前記第２値に基づいた前記メモリ割り当て要請に応答して、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当て、前記第１値と前記第２値のそれぞれは、前記第１メモリと前記第２メモリのそれぞれの前記帯域幅、前記消費電力、及びレイテンシのうちから少なくとも１つを含む。さらに他の実施形態によって、前記メモリ管理モジュールは、前記第１値、前記第２値、前記メモリ割り当て要請を出力したアプリケーションの配定優先権（ｐｒｉｏｒｉｔｙ）に基づいた前記メモリ割り当て要請に応答して、前記メモリ領域を前記第１メモリまたは前記第２メモリに割り当てる。
【０００９】
さらに他の実施形態によって、前記メモリ管理モジュールは、第１配定優先権を有する第１アプリケーションから出力された前記メモリ割り当て要請に応答して、前記メモリ領域が、前記第１メモリで割り当てられなければならないという決定と、前記第１アプリケーションから出力された前記メモリ割り当て要請を満足するために、前記第１メモリで利用可能な自由メモリ領域が十分ではないという決定と、に基づいて、前記第１配定優先権よりも低い第２配定優先権を有する第２アプリケーションのために、前記第１メモリで既に割り当てられたバッファを前記第２メモリに移送し、次いで、前記メモリ割り当て要請に応答して、前記第１メモリの前記メモリ領域を前記第１アプリケーションに割り当てる。
【００１０】
さらに他の実施形態によって、前記メモリ管理モジュールは、前記バッファに対して十分なメモリ領域が前記第１メモリで使用可能になった時、前記第２アプリケーションのために割り当てられた前記バッファを前記第１メモリに移送する。
さらに他の実施形態によって、前記メモリ管理モジュールは、第１配定優先権を有する第１アプリケーションから出力された前記メモリ割り当て要請に応答して、前記メモリ領域が、前記第１メモリに割り当てられなければならないという決定と、前記第１アプリケーションから出力された前記メモリ割り当て要請を満足するために、前記第１メモリで利用可能な自由メモリ領域が十分ではないという決定と、に基づいて、前記第１配定優先権よりも低い第２配定優先権を有し、前記第１メモリで割り当てられたメモリ領域を有する第２アプリケーションをキル（ｋｉｌｌ）し、次いで、前記メモリ割り当て要請に応答して、前記第１メモリの前記メモリ領域を前記第１アプリケーションに割り当てる。
【００１１】
前記第１メモリ、前記第２メモリ、前記プロセッサのそれぞれは、互いに異なるチップに具現されうる。前記第１メモリと前記プロセッサは、第１パッケージとして具現され、前記第２メモリは、前記第１パッケージと互いに異なる第２パッケージとして具現可能である。
前記第１メモリは、ＴＳＶ（Ｔｈｒｏｕｇｈ Ｓｉｌｉｃｏｎ Ｖｉａ）を通じて前記プロセッサと接続されうる。前記第１メモリは、ＷＩＤＥ Ｉ／Ｏ ＤＲＡＭであり、第２メモリは、ＤＲＡＭであり得る。
【００１２】
本発明の実施形態によるモバイルコンピューティング装置（ｍｏｂｉｌｅ ｃｏｍｐｕｔｉｎｇ ｄｅｖｉｃｅ）は、プロセッサと、前記プロセッサに接続されたディスプレイコントローラと、前記プロセッサに接続された第１メモリコントローラ及び第２メモリコントローラと、それぞれが前記第１メモリコントローラと前記第２メモリコントローラのそれぞれに接続された第１ＤＲＡＭ及び第２ＤＲＡＭと、メモリ割り当て要請を受信するメモリ管理モジュールと、を含み、前記第１ＤＲＡＭと前記第ＤＲＡＭのそれぞれは、ハードウェア属性を有し、前記第１ＤＲＡＭの前記ハードウェア属性の第１値は、前記第２ＤＲＡＭの前記ハードウェア属性の第２値と互いに異なり、前記メモリ管理モジュールは、前記メモリ割り当て要請、前記第１値、及び前記第２値に応答してメモリを割り当てる。
【００１３】
前記ハードウェア属性は、帯域幅、消費電力、及びレイテンシを含む。
前記第１ＤＲＡＭ、前記第２ＤＲＡＭ、及び前記プロセッサのそれぞれは、互いに異なるチップに具現されうる。前記第１ＤＲＡＭは、ＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭであり、前記第２ＤＲＡＭは、ＬＰＤＤＲ（Ｌｏｗ  Ｐｏｗｅｒ  Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）ＤＲＡＭであり得る。
【発明の効果】
【００１４】
本発明の実施形態による方法と、該方法を行うシステムは、異種のメモリのそれぞれのハードウェア属性を用いて、実行されるアプリケーションによって使われるメモリ領域を異種のメモリのうちから何れか１つに割り当てることによって、システムの性能を向上させ、性能偏差を減らしうる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態による異種のメモリを含むシステムのブロック図。
【図２】図１に示されたシステムのメモリ管理方法の一実施形態を説明する概念図。
【図３】図１に示されたシステムのメモリ管理方法の他の実施形態を説明する概念図。
【図４】図１に示されたシステムのメモリ領域割り当て方法を説明するフローチャート。
【図５Ａ】図１に示されたシステムでハードウェア属性情報に基づいてメモリ領域を割り当てる方法の一実施形態を説明するフローチャート。
【図５Ｂ】図１に示されたシステムでハードウェア属性情報に基づいてメモリ領域を割り当てる方法の他の実施形態を説明するフローチャート。
【図５Ｃ】図１に示されたシステムでハードウェア属性情報に基づいてメモリ領域を割り当てる方法のさらに他の実施形態を説明するフローチャート。
【図６】図１に示されたシステムで行われる移送動作を説明する概念図。
【図７】図１に示されたシステムで行われるキルリング動作を説明する概念図。
【図８】図６と図７とに示された移送動作とキルリング動作とを説明するフローチャート。
【図９】従来のアプリケーションのランチング時間の偏差と、本発明の実施形態によるメモリ管理プログラムを利用したアプリケーションのランチング時間の偏差と、を示すグラフ。
【図１０】従来のアプリケーションのランチング時間の偏差と、本発明の実施形態によるメモリ管理プログラムを利用したアプリケーションのランチング時間の偏差と、を示すグラフ。
【図１１】従来のアプリケーションのランチング時間の偏差と、本発明の実施形態によるメモリ管理プログラムを利用したアプリケーションのランチング時間の偏差と、を示すグラフ。
【図１２】従来のアプリケーションのランチング時間の偏差と、本発明の実施形態によるメモリ管理プログラムを利用したアプリケーションのランチング時間の偏差と、を示すグラフ。
【図１３】図１に示されたシステムの構造を示す断面図の一実施形態。
【図１４】図１に示されたシステムの構造を示す断面図の他の実施形態。
【図１５】図１に示されたシステムの構造を示す断面図のさらに他の実施形態。
【図１６Ａ】異種のメモリに対するレイテンシと帯域幅とを示すグラフ。
【図１６Ｂ】異種のメモリに対するレイテンシと帯域幅とを示すグラフ。
【発明を実施するための形態】
【００１６】
異種のメモリは、互いに異なる動作特性を有するメモリ、例えば、フラッシュメモリとＤＲＡＭなどを含む。たとえコンピュータシステムの多様な他種がメモリの他種を支援しても、現存するメモリ管理スキーム（ｓｃｈｅｍｅｓ）は、バッファ割り当て要請（ｂｕｆｆｅｒ  ａｌｌｏｃａｔｉｏｎ  ｒｅｑｕｅｓｔ）のようなメモリ割り当て要請が実行される時、多種のメモリの間で区別しない。
【００１７】
したがって、バッファ割り当て要請は、メモリ領域の完全に使われていない部分内で、どこでもメモリの割り当てを引き起こし得る。すなわち、他の特性を有する２種のメモリを有するシステムで、バッファ割り当て要請は、２種のメモリの如何なる部分からも満足することができる。この場合、アプリケーション（ａｐｐｌｉｃａｔｉｏｎ）またはドライバ（ｄｒｉｖｅｒ）からのバッファ割り当てのための要請は、システムの全般的な性能を減少させうるアプリケーションまたはドライバによって生成されたメモリアクセスの種類に最もよく整合するメモリの領域に割り当てられないこともある。
【００１８】
本発明は、メモリの特性を考慮して、互いに異なる種類のメモリに領域を割り当てられるシステムと方法とを提供することである。
図１は、本発明の実施形態による異種のメモリを含むシステムのブロック図を示す。図１を参照すれば、システム１００は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、サーバ（ｓｅｒｖｅｒ）または携帯用電子装置（モバイル（ｍｏｂｉｌｅ）装置またはモバイルコンピューティング（ｍｏｂｉｌｅ  ｃｏｍｐｕｔｉｎｇ）装置）として具現可能である。
【００１９】
携帯用電子装置は、ラップトップコンピュータ（ｌａｐｔｏｐ  ｃｏｍｐｕｔｅｒ）、携帯電話、スマートフォン（ｓｍａｒｔ  ｐｈｏｎｅ）、タブレット（Ｔａｂｌｅｔ）ＰＣ、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ＥＤＡ（Ｅｎｔｅｒｐｒｉｓｅ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、デジタルスチルカメラ（Ｄｉｇｉｔａｌ  Ｓｔｉｌｌ  Ｃａｍｅｒａ）、デジタルビデオカメラ（Ｄｉｇｉｔａｌ  ＶｉｄｅｏＣａｍｅｒａ）、ＰＭＰ（Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｍｅｄｉａ  Ｐｌａｙｅｒ）、ＰＮＤ（Ｐｅｒｓｏｎａｌ  Ｎａｖｉｇａｔｉｏｎ  ＤｅｖｉｃｅまたはＰｏｒｔａｂｌｅＮａｖｉｇａｔｉｏｎ  Ｄｅｖｉｃｅ）、携帯用ゲームコンソール（ｈａｎｄｈｅｌｄ  ｇａｍｅ  ｃｏｎｓｏｌｅ）、モバイルインターネット装置（Ｍｏｂｉｌｅ  Ｉｎｔｅｒｎｅｔ  Ｄｅｖｉｃｅ；ＭＩＤ）、ウェアラブルコンピュータ、または電子ブック（ｅ−ｂｏｏｋ）として具現可能である。
【００２０】
システム１００は、コントロール回路２００、第１メモリ３００、第２メモリ４００、第３メモリ５００、及びディスプレイ６００を含む。
コントロール回路２００は、第１メモリ３００、第２メモリ４００、第３メモリ５００、及びディスプレイ６００のそれぞれの動作を制御することができる。実施形態によって、コントロール回路２００は、応用プロセッサ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ；ＡＰ）のような集積回路（ＩＣ）、システム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ；ＳｏＣ）、ハードウェア、または印刷回路基板（Ｐｒｉｎｔｅｄ  ＣｉｒｃｕｉｔＢｏａｒｄ；ＰＣＢ）として具現可能である。システム１００が携帯用電子装置として具現される時、コントロール回路２００は、モバイルアプリケーションプロセッサ（ｍｏｂｉｌｅ  ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｃｅｓｓｏｒ）として具現可能である。
【００２１】
コントロール回路２００は、バス２０１、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１０、第１メモリコントローラ２２０、第２メモリコントローラ２３０、第３メモリコントローラ２４０、複数のマルチメディアハードウェアＩＰ（ｍｕｌｔｉｍｅｄｉａ  ｈａｒｄｗａｒｅ  ｉｎｔｅｌｌｅｃｔｕａｌ  ｐｒｏｐｅｒｔｉｅｓ；ＩＰｓ）２５０−１、２５０−２、及びディスプレイコントローラ２６０を含む。
【００２２】
ＣＰＵ２１０は、バス２０１を通じて各構成要素２２０、２３０、２４０、２５０−１、２５０−２、及び２６０の動作を制御することができる。ＣＰＵ２１０は、複数のコアを含むマルチコアプロセッサとして具現可能である。
第１メモリコントローラ２２０は、対応するプログラム及び／または対応するデータを第１メモリ３００にライトする動作及び第１メモリ３００から対応するプログラム及び／または対応するデータをリードする動作を制御することができる。第２メモリコントローラ２３０は、対応するプログラム及び／または対応するデータを第２メモリ４００にライトする動作及び第２メモリ４００から対応するプログラム及び／または対応するデータをリードする動作を制御することができる。
【００２３】
第１メモリ３００は、第１ハードウェア特性（または、属性（ａｔｔｒｉｂｕｔｅ））を有するメモリとして具現され、第２メモリ４００は、第２ハードウェア特性（または、属性）を有するメモリとして具現可能である。特に、第１ハードウェア特性と第２ハードウェア特性は、帯域幅（ｂａｎｄｗｉｄｔｈ）、レイテンシ（ｌａｔｅｎｃｙ）、及び／またはメモリの消費電力を含みうる。
【００２４】
例えば、第１メモリ３００は、ＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）として具現可能である。ＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭに関連した内容は、“ＪＥＤＥＣ  ＳＴＡＮＤＡＲＤ  ＷＩＤＥ  Ｉ／Ｏ  ＳＩＮＧＬＥ  ＤＡＴＡ  ＲＡＴＥ（ＷＩＤＥ  Ｉ／Ｏ  ＳＤＲ）、ＪＥＳＤ２２９、Ｄｅｃｅｍｂｅｒ  ２０１１”に詳細に記載されており、本明細書は、ＪＥＳＤ２２９に記載のあらゆる内容をレファレンス（ｒｅｆｅｒｅｎｃｅ）として含む。例えば、ＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭの帯域幅は、１２．８Ｇｂｙｔｅ／ｓであり得るが、本発明の技術的思想が、これに限定されるものではない。
【００２５】
第２メモリ４００は、ＬＰＤＤＲ  ＤＲＡＭとして具現可能である。ＬＰＤＤＲ  ＤＲＡＭに関連した内容は、“ＪＥＤＥＣ  ＳＴＡＮＤＡＲＤ  ＬＯＷ  ＰＯＷＥＲ  ＤＯＵＢＬＥ  ＤＡＴＥ  ＲＡＴＥ  ３  ＳＤＲＡＭ（ＬＰＤＤＲ３）、ＪＥＳＤ２０９−３、Ｍａｙ  ２０１２”に詳細に記載されており、本明細書は、ＪＥＳＤ２０９−３に記載のあらゆる内容をレファレンスとして含む。例えば、第２メモリ４００の帯域幅は、６．４Ｇｂｙｔｅ／ｓであり得るが、本発明の技術的思想が、これに限定されるものではない。例えば、ＬＰＤＤＲ  ＤＲＡＭは、ＬＰＤＤＲｘ  ＤＲＡＭを含み、ｘは、１、２、または３のような自然数である。
【００２６】
上述したように、第１メモリ３００の帯域幅は、第２メモリ４００の帯域幅よりも高いか、広い。しかし、第１メモリ３００のレイテンシは、第２メモリ４００のレイテンシよりも大きい。実施形態によって、第１メモリ３００の消費電力は、第２メモリ４００の消費電力よりも低い。
【００２７】
第１メモリ及び第２メモリのそれぞれのレイテンシと帯域幅は、図１６Ａと図１６Ｂのそれぞれに示される。レイテンシ（または、待機時間）は、要請を受けた後、情報を伝達するメモリのための時間の量を意味する。すなわち、速い応答時間を有するメモリは、低い（ｌｏｗ）レイテンシを有し、遅い応答時間を有するメモリは、高い（ｈｉｇｈ）レイテンシを有する。
【００２８】
図１６Ａを参照すれば、時間０でメモリアクセス要請が第１メモリ３００に受信されると仮定すれば、第１メモリ３００は、Ｔ１の応答時間を有する。したがって、情報は、帯域幅ＢＷ１で第１メモリ３００から伝送される。図１６Ｂを参照すれば、第２メモリ４００は、Ｔ２の応答時間を有する。したがって、情報は、帯域幅ＢＷ２で第２メモリ４００から伝送される。
【００２９】
Ｔ１がＴ２よりも大きいために、第１メモリ３００は、第２メモリ４００よりもさらに高いレイテンシ（すなわち、さらに遅れた応答時間）を有する。しかし、ＢＷ１がＢＷ２よりも大きいために、第１メモリ３００によって伝送されるデータの帯域幅は、第２メモリ４００によって伝送されるデータの帯域幅よりもさらに大きい。すなわち、互いに対して、第２メモリ４００は、低いレイテンシ、低い帯域幅メモリと特徴づけられ、一方、第１メモリ３００は、高いレイテンシ、高い帯域幅メモリと特徴づけられる。しかし、前述したことは、単に実施形態であり、本発明の技術的思想が、これに限定されるものではない。
【００３０】
第１メモリ３００及び第２メモリ４００のそれぞれは、メイン（ｍａｉｎまたはｐｒｉｍａｒｙ）メモリとして使われる。実施形態によって、第１メモリ３００及び第２メモリ４００のそれぞれは、互いに異なる種類の揮発性メモリとして具現可能である。
揮発性メモリは、ＤＲＡＭ、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、Ｔ−ＲＡＭ（Ｔｈｙｒｉｓｔｏｒ  ＲＡＭ）、Ｚ−ＲＡＭ（Ｚｅｒｏｃａｐａｃｉｔｏｒ  ＲＡＭ）、またはＴＴＲＡＭ（Ｔｗｉｎ  Ｔｒａｎｓｉｓｔｏｒ  ＲＡＭ）のように現存する揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）と現在開発中である揮発性メモリとを含む。
【００３１】
図１を再び参照すれば、第１メモリ３００及び第２メモリ４００のそれぞれが互いに分離されて示されているが、実施形態によって、第１メモリ３００及び第２メモリ４００は、ＴＳＶのような手段を通じて互いに電気的に接続されるか、１つのパッケージとしてパッケージングされうる。他の実施形態によって、パッケージは、コントロール回路２００上に積層された第１メモリ３００及び第２メモリ４００を含みうる。例えば、各構成要素２００、３００、及び４００が積層される順序は、実施形態によって多様に変形されうる。
【００３２】
第３メモリコントローラ２４０は、対応するプログラム及び／または対応するデータを第３メモリ５００にライトする動作及び第３メモリ５００から対応するプログラム及び／または対応するデータをリードする動作を制御することができる。第３メモリ５００は、補助（ａｕｘｉｌｉａｒｙまたはｓｅｃｏｎｄａｒｙ）メモリ装置として具現可能である。第３メモリ５００は、フラッシュベースメモリ、ＭＭＣ（ｍｕｌｔｉｍｅｄｉａ  ｃａｒｄ）、ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  ＭＭＣ）、ＵＦＳ（Ｕｎｉｖｅｒｓａｌ  ＦｌａｓｈＳｔｏｒａｇｅ）、ソリッドステートドライブ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ；ＳＳＤ）、ｅＳＳＤ（ｅｍｂｅｄｄｅｄ  ＳＳＤ）、またはハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）として具現可能である。第３メモリ５００は、不揮発性メモリの集合を意味する。不揮発性メモリは、同種のメモリまたは互いに異なる種類のメモリとして具現可能である。
【００３３】
図１には、説明の便宜上、２つのマルチメディアハードウェアＩＰ（または、マルチメディア回路）２５０−１、２５０−２が示されているが、これは例示的なものに過ぎない。
例えば、マルチメディアハードウェアＩＰ（Ｍｕｌｔｉｍｅｄｉａ  ＨａｒｄｗａｒｅＩｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ；ＩＰ）は、ビデオコーデック（Ｖｉｄｅｏ  Ｃｏｄｅｃ）またはマルチフォーマットコーデック（Ｍｕｌｔｉ  Ｆｏｒｍａｔ  Ｃｏｄｅｃ；ＭＦＣ）として具現可能である。ビデオコーデックは、デジタルビデオデータを圧縮（ｃｏｍｐｒｅｓｓ）するか、圧縮解除（ｄｅ−ｃｏｍｐｒｅｓｓ）することができるハードウェアを意味する。
【００３４】
また、マルチメディアハードウェアＩＰ（または、回路）は、ＪＰＥＧ標準を支援するハードウェア、スケーラ（ｓｃａｌｅｒ）、ローテータ（ｒｏｔａｔｏｒ）、マルチメディアのためのハードウェアアクセラレータ（Ｈａｒｄｗａｒｅ  Ａｃｃｅｌｅｒａｔｏｒ）、３Ｄグラフィックスエンジン（３Ｄ  ｇｒａｐｈｉｃｓ  ｅｎｇｉｎｅ）、２Ｄグラフィックスエンジン、またはＭＰ３プレーヤなどとして具現可能である。
【００３５】
ディスプレイコントローラ２６０は、ディスプレイ６００の動作を制御することができる。例えば、ディスプレイコントローラ２６０は、複数のマルチメディアハードウェアＩＰ２５０−１、２５０−２のうちの何れか１つから出力されたマルチメディアデータ、例えば、イメージデータまたは３Ｄイメージデータをディスプレイすることができる。
【００３６】
実施形態によって、ディスプレイコントローラ２６０は、タッチ入力（ｔｏｕｃｈ  ｉｎｐｕｔ）のためのタッチスクリーン（または、タッチスクリーンパネル）６１０を含みうる。ユーザは、タッチスクリーン６１０を用いてアプリケーションまたはプログラムを選択することができる。実施形態によって、タッチスクリーン６１０の動作を制御することができるタッチスクリーンコントローラ（図示せず）は、コントロール回路２００の内部に、またはディスプレイ６００の内部に具現されうる。
【００３７】
図２は、図１に示されたシステムのメモリ管理方法の一実施形態を説明する概念図であり、図３は、図１に示されたシステムのメモリ管理方法の他の実施形態を説明する概念図であり、図４は、図１に示されたシステムのメモリ領域割り当て方法を説明するフローチャートである。
【００３８】
図１から図４を参照すれば、システム１００がブーティング（ｂｏｏｔｉｎｇ）される時（ステップＳ１００）、第３メモリ５００に保存された運用体制（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ；ＯＳ）、及び／またはプログラムは、構成要素２１０、２２０、及び／または２４０の制御によって第１メモリ３００にロード（ｌｏａｄ）される（ステップＳ１１０）。
ＯＳは、Ａｎｄｒｏｉｄ、ＢＳＤ（Ｂｅｒｋｅｌｅｙ  Ｓｏｆｔｗａｒｅ  Ｄｉｓｔｒｉｂｕｔｉｏｎ）、ｉＯＳ、Ｌｉｎｕｘ（登録商標）、ＯＳ  Ｘ、ＱＮＸ、Ｓｙｍｂｉａｎ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗｓ  Ｐｈｏｎｅ、及びＩＢＭ  ｚ／ＯＳ、または他の適したＯＳを含みうる。
【００３９】
例えば、カーネル（ｋｅｒｎｅｌ）ＯＳ、メモリ管理プログラム３１１、ハードウェア属性（特性）情報３１３、少なくとも１つの装置ドライバ３１５、及び少なくとも１つのスケジューラ３１７は、構成要素２１０、２２０、及び／または２４０の制御によって第３メモリ５００から第１メモリ３００のカーネル領域３１０の各メモリ領域にロードされうる。第１メモリ３００は、カーネル領域３１０とユーザデータを保存することができるユーザデータ領域３２０とを含む。
【００４０】
ハードウェア属性情報３１３は、各メモリ３００、４００の帯域幅、各メモリ３００、４００のレイテンシ、及び／または各メモリ３００、４００の消費電力についての情報を含み、アップデート可能なテーブルとして具現可能である。ハードウェア属性情報３１３は、構成要素２１０、２２０、及び／または２４０の制御によって第３メモリ５００から第１メモリ３００のカーネル領域３１０のメモリ領域にロードされうる。
【００４１】
次いで、メモリ管理プログラム３１１とハードウェア属性情報３１３は、ＣＰＵ２１０にロードされる（ステップＳ１２０）。実施形態によって、ハードウェア属性情報３１３は、メモリ管理プログラム３１１に含まれて、または独立してＣＰＵ２１０にロードされる（ステップＳ１２０）。例えば、メモリ管理プログラム３１１とハードウェア属性情報３１３は、ＣＰＵ２１０のＬ１キャッシュの命令キャッシュ（ｉｎｓｔｒｕｃｔｉｏｎ  ｃａｃｈｅ）にロードされうる（ステップＳ１０）。
【００４２】
１つまたはそれ以上のアプリケーション及び／または１つまたはそれ以上の装置ドライバが実行される時、メモリ管理プログラム３１１は、メモリ割り当てとメモリ管理とを行うことができる。実施形態によって、メモリ管理プログラム３１１は、メモリ管理モジュールの機能を行うことができる。
【００４３】
本明細書でモジュール（ｍｏｄｕｌｅ）とは、本明細書で説明されるそれぞれの名称による機能と動作とを行うハードウェアを意味することもあり、または特定の機能と動作とを行うコンピュータプログラムコードを意味することもあり、または特定の機能と動作とを行わせるコンピュータプログラムコード付き電磁的記録媒体、例えば、プロセッサを意味することもある。言い換えれば、モジュールとは、本発明の技術的思想を行うためのハードウェア及び／またはハードウェアを駆動するためのソフトウェアの機能的及び／または構造的結合を意味する。
アプリケーションは、対応する装置ドライバ（例えば、マルチメディアドライバ）の駆動を要しない第１タイプアプリケーションと、対応する装置ドライバの駆動を必要とする第２タイプアプリケーションと、を含む。
【００４４】
図２を参照すれば、ユーザがアプリケーション４１０、例えば、第１タイプアプリケーションＡＰＰ１を実行させれば（ステップＳ１３０）、第２メモリ４００に保存された第１タイプアプリケーションＡＰＰ１は、ＣＰＵ２１０にロードされる（ステップＳ２０）。例えば、第１タイプアプリケーションＡＰＰ１は、Ｌ１キャッシュの命令キャッシュにロードされうる（ステップＳ２０）。
【００４５】
実施形態によって、第１タイプアプリケーションＡＰＰ１が、第１メモリ３００、第２メモリ４００、第３メモリ５００または図示されていないメモリに保存されていながら第１タイプアプリケーションＡＰＰ１が実行されれば、ＣＰＵ２１０にロードされうる。図２では、説明の便宜上、第１タイプアプリケーションＡＰＰ１は、第２メモリ４００に保存または設けられたと仮定する。
【００４６】
ＣＰＵ２１０にロードされた第１タイプアプリケーションＡＰＰ１は、第１タイプアプリケーションＡＰＰ１によって使われる第１メモリ領域（または、バッファ（ｂｕｆｆｅｒ））の割り当てをメモリ管理プログラム３１１に要請する（ステップＳ３０）。すなわち、第１タイプアプリケーションＡＰＰ１は、第１メモリ領域割り当て要請ＲＥＱ１をメモリ管理プログラム３１１に出力する。
【００４７】
実施形態によって、第１メモリ領域割り当て要請ＲＥＱ１は、第１タイプアプリケーションＡＰＰ１によって使われる第１メモリ領域のサイズについての情報を含みうる。他の実施形態によって、第１メモリ領域割り当て要請ＲＥＱ１は、第１タイプアプリケーションＡＰＰ１によって使われる第１メモリ領域のサイズについての情報と、第１メモリ領域を含むメモリ３００または４００についてのハードウェア属性情報と、を含みうる。ハードウェア属性情報は、第１タイプアプリケーションＡＰＰ１によって使われるメモリの帯域幅、レイテンシ、及び／または消費電力についての情報を含みうる。
【００４８】
メモリ管理プログラム３１１は、実行される第１タイプアプリケーションＡＰＰ１の第１メモリ割り当て情報を分析する（ステップＳ１４０）。第１メモリ割り当て情報は、ハードウェア属性情報３１３及び／または第１メモリ領域割り当て要請ＲＥＱ１を含みうる。例えば、メモリ管理プログラム３１１は、第１メモリ領域割り当て要請ＲＥＱ１に応答してハードウェア属性情報３１３及び／または第１メモリ領域割り当て要請ＲＥＱ１を分析することができる。
【００４９】
メモリ管理プログラム３１１は、第１メモリ割り当て情報についての分析の結果に基づいて、第１メモリ領域を第１メモリ３００及び第２メモリ４００のうちから如何なるメモリに割り当てるかを決定することができる（ステップＳ１５０）。第１タイプアプリケーションＡＰＰ１が速い応答性（ｆａｓｔ  ｒｅｓｐｏｎｓｅ）を要求するアプリケーションである時、メモリ管理プログラム３１１は、低いレイテンシ（ｌｏｗ  ｌａｔｅｎｃｙ）を有する第２メモリ４００に第１メモリ領域４２０を割り当てる（ステップＳ４０）。
【００５０】
しかし、図３に示したように、ユーザが装置ドライバ３１５の駆動を必要とするアプリケーション４１０、すなわち、第２タイプアプリケーションＡＰＰ２を実行させれば（ステップＳ１３０）、第２メモリ４００に保存または設けられた第２タイプアプリケーションＡＰＰ２は、ＣＰＵ２１０にロードされる（ステップＳ２０）。ＣＰＵ２１０にロードされた第２タイプアプリケーションＡＰＰ２は、第１メモリ３００に保存された装置ドライバ３１５を呼び出す（ｃａｌｌ）か、または駆動することができる（ステップＳ２１）。
【００５１】
第２タイプアプリケーションＡＰＰ２の要請によって、装置ドライバ３１５は、第１メモリ３００からＣＰＵ２１０にロードされる（ステップＳ５０）。例えば、第２タイプアプリケーションＡＰＰ２と装置ドライバ３１５は、Ｌ１キャッシュの命令キャッシュにロードされうる（ステップＳ５０）。
【００５２】
実施形態によって、第１メモリ３００、第３メモリ５００または図示されていないメモリに保存された装置ドライバ３１５は、第２タイプアプリケーションＡＰＰ２が実行されれば、ＣＰＵ２１０にロードされうる（ステップＳ５０）。図３では、説明の便宜上、装置ドライバ３１５は、第１メモリ３００のカーネル領域３１０に保存または設けられたと仮定する。装置ドライバ３１５は、複数のマルチメディアハードウェアＩＰ（または、ハードウェア回路）２５０−１、２５０−２のうちから少なくとも１つを駆動（ｄｒｉｖｅ）させるプログラムである。
【００５３】
ＣＰＵ２１０にロードされた装置ドライバ３１５は、装置ドライバ３１５に対応するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われる第２メモリ領域（または、バッファ）の割り当てをメモリ管理プログラム３１１に要請する（ステップＳ６０）。すなわち、装置ドライバ３１５は、第２メモリ領域割り当て要請ＲＥＱ２をメモリ管理プログラム３１１に出力する。
【００５４】
実施形態によって、第２メモリ領域割り当て要請ＲＥＱ２は、装置ドライバ３１５に対応するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われる第２メモリ領域のサイズについての情報を含みうる。他の実施形態によって、第２メモリ領域割り当て要請ＲＥＱ２は、装置ドライバ３１５に対応するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われる第２メモリ領域のサイズについての情報と前記第２メモリ領域を含むメモリ３００または４００についてのハードウェア属性情報とを含みうる。
【００５５】
ハードウェア属性情報は、装置ドライバ３１５に対応するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリの帯域幅、レイテンシ、及び／または消費電力についての情報を含みうる。
メモリ管理プログラム３１１は、実行される装置ドライバ３１５の第２メモリ割り当て情報を分析する（ステップＳ１４０）。第２メモリ割り当て情報は、ハードウェア属性情報３１３及び／または第２メモリ領域割り当て要請ＲＥＱ２を含みうる。メモリ管理プログラム３１１は、第２メモリ割り当て情報についての分析の結果に基づいて、第２メモリ領域を第１メモリ３００及び第２メモリ４００のうちのどのメモリに割り当てるかを決定することができる（ステップＳ１５０）。
【００５６】
装置ドライバ３１５または装置ドライバ３１５に対応するマルチメディアハードウェアＩＰ２５０−１または２５０−２が、広いか、または高い帯域幅（ｈｉｇｈ  ｏｒ  ｗｉｄｅｂａｎｄｗｉｄｔｈ）を要求する時、メモリ管理プログラム３１１は、第２メモリ領域３２１を、広いか、または高い帯域幅を提供する第１メモリ３００に割り当てる（ステップＳ７０）。
【００５７】
アプリケーション、アプリケーションによって実行される装置ドライバ、または装置ドライバによって駆動されるマルチメディアハードウェアＩＰは、互いに関連しているので、本明細書では、アプリケーションによって使われるメモリ領域を異種のメモリのうちの何れか１つに割り当てるということは、（１）メモリ領域をアプリケーションに割り当てる場合、（２）メモリ領域を装置ドライバに割り当てる場合、及び（３）メモリ領域をマルチメディアハードウェアＩＰ（または、マルチメディア回路）に割り当てる場合を含むものと広く解釈されうる。
【００５８】
マルチメディアハードウェアＩＰ（または、マルチメディア回路）２５０−１または２５０−２は、第２メモリ領域３２１に保存されたマルチメディアデータを処理し、該処理されたマルチメディアデータを第１メモリ３００の他のメモリ領域３２３にライトすることができる。
【００５９】
上述したように、メモリ管理プログラム３１１は、対応する構成４１０、または３１５のメモリ割り当て情報（例えば、アプリケーションＡＰＰ１またはＡＰＰ２の種類、ハードウェア属性情報３１３、及び対応する構成４１０または３１５から出力されたメモリ割り当て要請ＲＥＲＱ１またはＲＥＱ２）を分析し、該分析の結果によって対応する構成４１０、３１５、２５０−１または２５０−２によって使われるメモリ領域３２１または４２０を第１メモリ３００または第２メモリ４００に割り当てられる。
【００６０】
したがって、メモリ管理プログラム３１１を実行するシステム１００は、異種のメモリ３００、４００のハードウェア属性情報と対応する構成４１０または３１５から出力されたメモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２とに応答して、異種のメモリ３００、４００のうちの何れか１つを対応する構成４１０、３１５、２５０−１または２５０−２によって使われるメモリとして割り当てられるので、システム１００の性能を向上させ、アプリケーション４１０のランチング時間（ｌａｕｎｃｈｉｎｇ  ｔｉｍｅ）の偏差を減らしうる効果がある。ランチング時間は、アプリケーション４１０がＣＰＵ２１０にロードされる時間またはアプリケーション４１０によって使われるメモリ領域を割り当てる時間を意味する。
【００６１】
さらに他の実施形態によれば、ユーザが第１タイプアプリケーションまたは第２タイプアプリケーションを実行させれば、第１メモリ３００、第２メモリ４００または図示されていないメモリに保存されていた第１タイプアプリケーションまたは第２タイプアプリケーションは、ＣＰＵ２１０にロードされうる。例えば、第１タイプアプリケーションまたは第２タイプアプリケーションは、Ｌ１キャッシュの命令キャッシュにロードされうる。
【００６２】
この場合、メモリ管理プログラム３１１は、第１タイプアプリケーションまたは第２タイプアプリケーションからメモリ領域割り当て要請がないとしても、第１タイプアプリケーションまたは第２タイプアプリケーションによって使われるメモリ領域についての情報とメモリ領域を含むメモリ３００または４００についてのハードウェア属性情報とを分析することができる。
【００６３】
ハードウェア特性情報は、メモリ３００または４００の帯域幅、メモリ３００または４００のレイテンシ及び／またはメモリ３００または４００の消費電力についての情報を含み、メモリ領域についての情報は、第１タイプアプリケーションまたは第２タイプアプリケーションによって使われるメモリ領域を含むメモリ３００または４００の帯域幅、メモリ３００または４００のレイテンシ、及び／またはメモリ３００または４００の消費電力についての情報を含みうる。
メモリ管理プログラム３１１は、メモリ３００または４００に対する分析結果と前記メモリ領域に対する分析結果とに基づいて、メモリ領域を第１メモリ３００及び第２メモリ４００のうちの何れか１つに割り当てるかを決定することができる。
【００６４】
図５Ａは、図１に示されたシステムでハードウェア属性情報に基づいてメモリ領域を割り当てる方法の一実施形態を説明するフローチャートである。図１から図５Ａを参照すれば、システム１００がブーティングされた後、ユーザによってアプリケーション４１０が選択され、ＣＰＵ２１０によって実行されれば（ステップＳ２１０）、実行されるアプリケーション４１０は、第２メモリ４００からＣＰＵ２１０にロードされる。前述したように、実行されるアプリケーション４１０は、第１タイプアプリケーションＡＰＰ１または第２タイプアプリケーションＡＰＰ２であり得る。また、アプリケーション４１０が、第１メモリ３００、第２メモリ４００、第３メモリ５００または図示されていないメモリからＣＰＵ２１０にロードされうる。
【００６５】
第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５は、メモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２をメモリ管理プログラム３１１に出力し、メモリ管理プログラム３１１は、メモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２に応答してハードウェア属性情報３１３を分析することができる（ステップＳ２２０）。
【００６６】
分析の結果、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域が、高い帯域幅を必要とする時（ステップＳ２３０のＹＥＳ）、メモリ管理プログラム３１１は、異種のメモリ３００、４００のうちから相対的に高い帯域幅を有するメモリ、例えば、第１メモリ３００を割り当てる（ステップＳ２４１）。
【００６７】
しかし、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域が、高い帯域幅よりは速い応答性を必要とする時（ステップＳ２３０のＮＯとステップＳ２４０のＹＥＳ）、メモリ管理プログラム３１１は、異種のメモリ３００、４００のうちから相対的に速い応答性（例えば、低いレイテンシ）を有するメモリ、例えば、第２メモリ４００を割り当てる（ステップＳ２４３）。
【００６８】
第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域が、帯域幅と応答性とを要しない時（ステップＳ２３０のＮＯとステップＳ２４０のＮＯ）、メモリ管理プログラム３１１は、異種のメモリ３００、４００のうちからデフォルト（ｄｅｆａｕｌｔ）で指定されたメモリを割り当てる（ステップＳ２４５）。
【００６９】
本発明の実施形態によるメモリ管理プログラム３１１は、ランタイム（ｒｕｎ−ｔｉｍｅ）途中で動的（ｄｙｎａｍｉｃ）で第１タイプアプリケーションＡＰＰ１、または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を異種のメモリ３００、４００のうちから何れか１つに設定できるだけではなく、静的割り当て（ｓｔａｔｉｃ  ａｌｌｏｃａｔｉｏｎ）を行うことができる。
【００７０】
静的割り当ては、コンパイル時間（ｃｏｍｐｉｌｅ  ｔｉｍｅ）に装置ドライバ（例えば、マルチメディアドライバ）に該当するマルチメディアハードウェアＩＰによって使われるメモリ領域を異種のメモリ３００、４００のうちから相対的に高い帯域幅を有するメモリに割り当て、第１タイプアプリケーションＡＰＰ１によって使われるメモリ領域は、異種のメモリ３００、４００のうちから相対的に低いレイテンシを有するメモリに割り当てることを意味する。
【００７１】
例えば、第２タイプアプリケーションＡＰＰ２が、低電力を要求するＭＰ３プレーヤである時、メモリ管理プログラム３１１は、ＭＰ３プレーヤまたは前記ＭＰ３プレーヤに該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を第１メモリ３００に割り当てる。
【００７２】
また、第２タイプアプリケーションＡＰＰ２が、低電力と高い帯域幅とを要求するビデオプレーヤである時、メモリ管理プログラム３１１は、ビデオプレーヤまたはビデオプレーヤに相応するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を第１メモリ３００に割り当てる。しかし、第１タイプアプリケーションＡＰＰ１が、速い応答性を要求するアプリケーション、例えば、ウェブブラウザ（ｗｅｂ  ｂｒｏｗｓｅｒ）である時、メモリ管理プログラム３１１は、ウェブブラウザによって使われるメモリ領域を第２メモリ４００に割り当てる。
【００７３】
図５Ｂは、図１に示されたシステムでハードウェア属性情報に基づいてメモリ領域を割り当てる方法の他の実施形態を説明するフローチャートである。
図５Ａでは、メモリ領域割り当てのために、帯域幅要求条件が判断された後、レイテンシ要求条件が判断されたが、図５Ｂでは、メモリ領域割り当てのために、レイテンシ要求条件が判断された後、帯域幅要求条件が判断される。
【００７４】
実施形態によって、メモリ領域を割り当てるために、３つの要求条件（例えば、帯域幅要求条件、レイテンシ要求条件、及び消費電力要求条件）のうちから、ある要求条件が最も早く判断（または、考慮）され、３つの要求条件のうちから、ある要求条件が二番目に判断され、３つの要求条件のうちから、ある要求条件が三番目に判断されるかは、システム１００の設計によって多様に変形されうる。したがって、消費電力要求条件が最も早く判断されることもある。
【００７５】
実施形態によれば、デフォルトで指定されたメモリが割り当てられる場合（ステップＳ２４５）、３つの要求条件以外にさらにデフォルトで指定されたメモリに余裕空間（または、メモリ領域（ｍｅｍｏｒｙ  ｓｐａｃｅ））があるか否かをさらに判断する順序（または、過程）が追加されうる。したがって、デフォルトで指定されたメモリに余裕空間があれば、メモリ管理プログラム３１１は、異種のメモリ３００、４００のうちからデフォルトで指定されたメモリを割り当て、デフォルトで指定されたメモリに余裕空間がなければ、メモリ管理プログラム３１１は、異種のメモリ３００、４００のうちから余裕空間があるメモリを割り当てる。
【００７６】
図５Ｃは、図１に示されたシステムでハードウェア属性情報に基づいてメモリ領域を割り当てる方法のさらに他の実施形態を説明するフローチャートである。
図５Ｃで、メモリ領域を低電力を使うメモリに割り当てるかを決定する追加決定を除けば、図５Ｃに示された動作は、図５Ｂに示された動作と類似している。すなわち、メモリ割り当てのために、低いレイテンシメモリが要求されないということを決定した後（ステップＳ２４０）、そして、メモリ割り当てのために、高い帯域幅メモリが要求されないということを決定した後（ステップＳ２３０）、メモリ割り当てのために、低電力メモリが要求されるか否かが決定される（ステップＳ２４２）。低電力メモリが要求されれば、メモリ領域は、低電力ハードウェア特性を有するメモリに割り当てられ（ステップＳ２４４）、低電力メモリが要求されなければ、メモリ領域は、デフォルトで指定されたメモリに割り当てられる（ステップＳ２４５）。上述したように、Ｓ２３０、Ｓ２４０、及びＳ２５０の順序は、本発明の技術的思想を外れない範囲内で変更されうる。
【００７７】
図６は、図１に示されたシステムで行われる移送動作（ｍｉｇｒａｔｉｏｎ  ｏｐｅｒａｔｉｏｎ）を説明する概念図である。メモリ管理プログラム３１１が自由メモリ領域を管理する時、自由メモリ領域は、ハードウェア属性に優れる第１メモリ３００で優先的に管理されうる。
【００７８】
例えば、第１メモリ３００で、各メモリ領域Ｂｕｆｆｅｒ＃１〜Ｂｕｆｆｅｒ＃Ｎが各アプリケーションＡＰＰ１〜ＡＰＰＮに既に割り当てられており、現在実行されるアプリケーションＣＡＰＰによって使われるメモリ領域が第１メモリ３００では割り当てることができないが、第２メモリ４００で割り当てることができる時、メモリ管理プログラム３１１は、各アプリケーションＡＰＰ１〜ＡＰＰＮに既に割り当てられた各メモリ領域Ｂｕｆｆｅｒ＃１〜Ｂｕｆｆｅｒ＃Ｎに保存されたデータのうちから非活性（ｉｎａｃｔｉｖｅ）データを選択し、該選択されたデータを第２メモリ４００に移送させることができる。ここで、非活性データとは、データが第１メモリ３００に保存されているが、現在使われていないデータまたは使われていないデータのうちから最も長時間使われていないデータであり得る。
【００７９】
他の実施形態によって、非活性データとは、現在第１メモリ３００に割り当てられたメモリ領域に対応するアプリケーションＡＰＰ１〜ＡＰＰＮのうちから第１メモリ３００に対する配定優先権が最も低いアプリケーションに対応するデータであり得る。第１メモリ３００に対する配定優先権は、メモリ管理プログラム３１１によって当該メモリ領域を第１メモリ３００に割り当てる時に決定されるか、各アプリケーションＡＰＰ１〜ＡＰＰＮが、メモリ管理プログラム３１１にメモリ領域割り当て要請を出力する時に決定されうる。
【００８０】
図６に示したように、メモリ管理プログラム３１１が、現在実行されたアプリケーションＣＡＰＰによって使われるメモリ領域を第１メモリ３００に割り当てしようとする時、メモリ管理プログラム３１１は、第ＮアプリケーションＡＰＰＮに割り当てられたメモリ領域Ｂｕｆｆｅｒ＃Ｎに保存されたデータを第２メモリ４００に移送（ｍｉｇｒａｔｅ）することができる。
【００８１】
移送の結果によって、自由メモリ領域Ｂｕｆｆｅｒ＃Ｎが生成される。したがって、メモリ管理プログラム３１１は、自由メモリ領域Ｂｕｆｆｅｒ＃Ｎの少なくとも一部を現在実行されたアプリケーションＣＡＰＰによって使われるメモリ領域に割り当て（または、リクレイム（ｒｅｃｌａｉｍ））することができる。
しかし、現在実行されたアプリケーションＣＡＰＰによって使われるメモリ領域が、１つのメモリ領域に保存されたデータを移送させるのに足りない時、メモリ管理プログラム３１１は、少なくとも２つのアプリケーションに割り当てられたメモリ領域に保存されたデータを第２メモリ４００に移送させて、現在実行されたアプリケーションＣＡＰＰによって使われる自由メモリ領域を確保することができる。
【００８２】
第ＮアプリケーションＡＰＰＮに割り当てられたメモリ領域Ｂｕｆｆｅｒ＃Ｎに保存されたデータが、第２メモリ４００に移送された後、第１メモリ３００内で保留（ｒｅｓｅｒｖｅｄ）メモリ領域を有するアプリケーションが終了するか、キル（ｋｉｌｌ）されるか、割り当てられたメモリ領域を譲る時、追加メモリ領域は、第１メモリ３００で生成されうる。この場合、メモリ管理プログラム３１１は、メモリ領域Ｂｕｆｆｅｒ＃Ｎを自由メモリ領域として確保することができる。
【００８３】
図７は、図１に示されたシステムで行われるキリング動作（ｋｉｌｌｉｎｇ  ｏｐｅｒａｔｉｏｎ）を説明する概念図である。第２メモリ４００の各メモリ領域Ｕ＿Ｂｕｆｆｅｒ＃１１〜Ｕ＿Ｂｕｆｆｅｒ＃１６は、各アプリケーションＡＰＰ１１〜ＡＰＰ１６に既に割り当てられている。各アプリケーションＡＰＰ１１〜ＡＰＰ１６は、第１タイプアプリケーションまたは第２タイプアプリケーションであり得る。
【００８４】
第１メモリ３００の各メモリ領域Ｂｕｆｆｅｒ＃１〜Ｂｕｆｆｅｒ＃Ｎが、各アプリケーションＡＰＰ１〜ＡＰＰＮに既に割り当てられており、現在実行されるアプリケーションＣＡＰＰによって使われるメモリ領域を、第１メモリ３００及び第２メモリ４００のそれぞれに割り当てることができない時、すなわち、第１メモリ３００及び第２メモリ４００に余裕空間（または、メモリ領域）がない時、メモリ管理プログラム３１１は、メモリ領域Ｂｕｆｆｅｒ＃１〜Ｂｕｆｆｅｒ＃Ｎを使うアプリケーションＡＰＰ１〜ＡＰＰＮのうちから１つまたはそれ以上のアプリケーションの実行を中止させることができる。メモリ管理プログラム３１１は、各アプリケーションＡＰＰ１〜ＡＰＰＮに割り当てた各メモリ領域Ｂｕｆｆｅｒ＃１〜Ｂｕｆｆｅｒ＃Ｎのサイズを記録（ｌｏｇ）することができる。
【００８５】
メモリ管理プログラム３１１は、各アプリケーションＡＰＰ１〜ＡＰＰＮの配定優先権と各アプリケーションＡＰＰ１〜ＡＰＰＮに割り当てられた各メモリ領域Ｂｕｆｆｅｒ＃１〜Ｂｕｆｆｅｒ＃Ｎのサイズとに基づいて、中止されるか、またはキルされる少なくとも１つのアプリケーションを選択することができる。例えば、メモリ管理プログラム３１１は、低い優先権を有しながら大きなメモリ領域を割り当てられたアプリケーション（例えば、ＡＰＰ２）を中止またはキルされるアプリケーションで優先的に選択することができる。
１つまたはそれ以上のアプリケーションの実行が中止される（または、キリング（ｋｉｌｌｉｎｇ））ことによって、少なくとも１つのメモリ領域は自由メモリ領域になる。
【００８６】
図７に示したように、メモリ管理プログラム３１１が、現在実行されるアプリケーションＣＡＰＰによって使われるメモリ領域を第１メモリ３００に割り当てしようとする時、メモリ管理プログラム３１１は、第２アプリケーションＡＰＰ２に割り当てられたメモリ領域Ｂｕｆｆｅｒ＃２を自由メモリ領域に確保するために、第２アプリケーションＡＰＰ２の実行を中止させることができる。したがって、メモリ管理プログラム３１１は、自由メモリ領域Ｂｕｆｆｅｒ＃２の少なくとも一部を現在実行されるアプリケーションＣＡＰＰによって使われるメモリ領域に割り当て（または、リクレイム）る。
【００８７】
図６と図７は、現在実行されるアプリケーションＣＡＰＰによって使われるメモリ領域が、第１メモリ３００に割り当てられる場合を説明するが、現在実行されるアプリケーションＣＡＰＰによって使われるメモリ領域が、第２メモリ４００に割り当てられる時、第２メモリ４００に保存された非活性データは、第１メモリ３００に移送されるか、中止されるか、またはキルされる少なくとも１つのアプリケーションは、各アプリケーションＡＰＰ１１〜ＡＰＰ１６の配定優先権と各アプリケーションＡＰＰ１１〜ＡＰＰ１６に割り当てられた各メモリ領域Ｕ＿Ｂｕｆｆｅｒ１１〜Ｕ＿Ｂｕｆｆｅｒ１６のサイズとに基づいて選択されうる。例えば、メモリ管理プログラム３１１は、低い配定優先権を有し、大きなメモリ領域を割り当てられたアプリケーションを中止されるアプリケーションで優先的に選択することができる。
【００８８】
図８は、図６と図７とに示された移送動作とキリング動作とを説明するフローチャートである。図６から図８を参照すれば、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５が実行されれば（ステップＳ３１０）、第１タイプアプリケーションＡＰＰ１は、第２メモリ４００からＣＰＵ２１０にロードされ、装置ドライバ３１５は、第１メモリ３００からＣＰＵ２１０にロードされる。実施形態によって、第１タイプアプリケーションＡＰＰ１は、第２メモリ４００からＣＰＵ２１０にロードされうる。前述したように、第１タイプアプリケーション、第２タイプアプリケーション、または装置ドライバは、自分が保存されたメモリからＣＰＵ２１０にロードされうる。
【００８９】
第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５は、メモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２をメモリ管理プログラム３１１に伝送する。メモリ管理プログラム３１１は、メモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２を受信し、ハードウェア属性情報３１３及び／またはメモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２を含むメモリ割り当て情報を分析する。
【００９０】
メモリ管理プログラム３１１は、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を異種のメモリ３００、４００で何れか１つに割り当てるために、第１メモリ３００を優先的にスキャン（ｓｃａｎ）する。
【００９１】
第１メモリ３００で利用可能な領域が、メモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２に十分な空間を提供するかが決定される（ステップＳ３３０）。第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を、第１メモリ３００で十分に割り当てることができる時（ステップＳ３３０のＹＥＳ）、メモリ管理プログラム３１１は、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を第１メモリ３００に割り当てる（ステップＳ３４６）。
【００９２】
しかし、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を、第１メモリ３００で十分に割り当てることができない時（ステップＳ３３０のＮＯ）、メモリ管理プログラム３１１は、第２メモリ４００をスキャンする。
【００９３】
第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を、第２メモリ４００で十分に割り当てることができる時（ステップＳ３４０のＹＥＳ）、メモリ管理プログラム３１１は、図６を参照して説明したように、非活性データを第１メモリ３００から第２メモリ４００に移送する（ステップＳ３４２）。この移送によって、自由メモリ領域が、第１メモリ３００に生成される。
【００９４】
メモリ管理プログラム３１１は、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を第１メモリ３００の自由メモリ領域に割り当てる（ステップＳ３４６）。
【００９５】
第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を、第２メモリ４００で十分に割り当てることができない時（ステップＳ３４０のＮＯ）、メモリ管理プログラム３１１は、図７を参照して説明したように、第１メモリ３００で遂行中である少なくとも１つのプロセス（すなわち、第１メモリ３００のメモリ領域を使う第２タイプアプリケーションＡＰＰ２または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２）を中止させるか、キルする（ステップＳ３４４）。中止動作またはキル動作によって、自由メモリ領域が、第１メモリ３００に生成される。
【００９６】
メモリ管理プログラム３１１は、第１タイプアプリケーションＡＰＰ１または装置ドライバ３１５に該当するマルチメディアハードウェアＩＰ２５０−１または２５０−２によって使われるメモリ領域を第１メモリ３００の自由メモリ領域に割り当てる（ステップＳ３４６）。
【００９７】
実施形態によって、メモリ管理プログラム３１１が、メモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２を受信し、ハードウェア属性情報３１３とメモリ領域割り当て要請ＲＥＱ１またはＲＥＱ２を含むメモリ割り当て情報とを分析する段階（ステップＳ３２０）の代わりに、アプリケーションＡＰＰ１またはＡＰＰ２が実行されれば、メモリ管理プログラム３１１は、ハードウェア属性情報３１３と、アプリケーションＡＰＰ１またはＡＰＰ２の実行に必要なメモリ３００または４００の帯域幅、レイテンシ、及び／または消費電力についての情報と、を分析することができる。
【００９８】
図９から図１２は、従来のアプリケーションのランチング時間の偏差（ｄｅｖｉａｔｉｏｎ）と、本発明の実施形態によるメモリ管理プログラムを利用したアプリケーションのランチング時間の偏差と、を示すグラフである。
図９は、音楽プレーヤのランチング時間とランチング時間との偏差とを示す。ＧＰ１は、メモリ管理プログラム３１１を含むシステム１００での音楽プレーヤのランチング時間を表わし、ＰＰ１は、メモリ管理プログラム３１１を含まないシステムでの音楽プレーヤのランチング時間を表わす。
【００９９】
図１０は、ウェブブラウザのランチング時間とランチング時間との偏差とを示す。ＧＰ２は、メモリ管理プログラム３１１を含むシステム１００でのウェブブラウザのランチング時間を表わし、ＰＰ２は、メモリ管理プログラム３１１を含まないシステムでのウェブブラウザのランチング時間を表わす。
【０１００】
図１１は、計算器（ｃａｌｃｕｌａｔｏｒ）のランチング時間とランチング時間との偏差とを示す。ＧＰ３は、メモリ管理プログラム３１１を含むシステム１００での計算器のランチング時間を表わし、ＰＰ３は、メモリ管理プログラム３１１を含まないシステムでの計算器のランチング時間を表わす。
図１２は、ギャラリ（ｇａｌｌｅｒｙ）のランチング時間とランチング時間との偏差とを示す。ＧＰ４は、メモリ管理プログラム３１１を含むシステム１００でのギャラリのランチング時間を表わし、ＰＰ４は、メモリ管理プログラム３１１を含まないシステムでのギャラリのランチング時間を表わす。
図９から図１２を参照すれば、メモリ管理プログラム３１１は、各アプリケーションのランチング時間を減少させ、ランチング時間の偏差を減少させうる。
【０１０１】
本発明の実施形態によるシステムのメモリ割り当て方法は、コンピュータで読み取り可能なプログラムを記録したコンピュータで読み取り可能な記録媒体を含むコンピュータプログラム製品として具現可能である。また、本発明の実施形態によるシステムのメモリ割り当て方法は、コンピュータで読み取り可能な記録媒体に保存することができる。記録媒体は、第１メモリ３００、第３メモリ５００、またはＣＰＵ２１０のＬ１キャッシュの命令キャッシュを意味する。
【０１０２】
図１３は、図１に示されたシステムの構造を示す断面図の一実施形態である。図１と図１３とを参照すれば、制御回路２００は、アプリケーションプロセッサ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ；ＡＰ）であり、第１メモリ３００は、ＷＩＤＥ  Ｉ／ＯＤＲＡＭを意味する。図１３は、ＡＰ２００とＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭ３００とをダイツーダイ（ｄｉｅ−ｔｏ−ｄｉｅ）で直接連結した半導体パッケージ７００を示す。半導体パッケージ７００は、第３メモリ５００とディスプレイ６００とを含まない。
【０１０３】
図１３に示された半導体パッケージ７００は、ＡＰ２００とＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭ３００のそれぞれをパッケージ（ｐａｃｋａｇｅ）した後で、再びパッケージするＰｏＰ（Ｐａｃｋａｇｅ  ｏｎ  Ｐａｃｋａｇｅ）方式ではないＴＳＶ技術を用いて、ＡＰ２００とＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭ３００とを直接連結する。図１３を参照すれば、半導体パッケージ７００は、印刷回路基板（Ｐｒｉｎｔｅｄ  Ｃｉｒｃｕｉｔ  Ｂｏａｒｄ；ＰＣＢ）７０１上（ｏｎ）に形成されたＡＰ２００を含み、ＡＰ２００とＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭ３００は、ＴＳＶを通じて連結される。
【０１０４】
図１４は、図１に示されたシステムの構造を示す断面図の他の実施形態である。図１４は、図１３に示された半導体パッケージ７００と類似した半導体パッケージ７１０上にＬＰＤＤＲ  ＤＲＡＭ４００を積層したＰｏＰを示す。図１４を参照すれば、ＰｏＰは、第１パッケージ７１０上に第２パッケージ７２０を積層する。ＰｏＰは、第３メモリ５００とディスプレイ６００とを含まない。
【０１０５】
連結手段７３０を除けば、図１３のパッケージ７００の構造と図１４の第１パッケージ７１０の構造は、実質的に同一である。第２パッケージ７２０は、ＰＣＢ７２１上に形成されたＬＰＤＤＲ  ＤＲＡＭ４００を含み、ＰＣＢ７２１とＬＰＤＤＲ  ＤＲＡＭ４００は、ワイヤ（ｗｉｒｅ）を通じて接続される。連結手段７３０は、第１パッケージ７１０のＰＣＢ７１１及び第２パッケージ７２０のＰＣＢ７２１を電気的に互いに接続する。
【０１０６】
図１５は、図１に示されたシステムの構造を示す断面図のさらに他の実施形態である。図１５を参照すれば、第１パッケージ７４０及び第２パッケージ７５０のそれぞれは、ボード（ｂｏａｒｄ）にマウント（ｍｏｕｎｔ）される。図１５を参照すれば、第１パッケージ７４０のＡＰ２００とＷＩＤＥ  Ｉ／Ｏ  ＤＲＡＭ３００は、ＴＳＶを通じて互いに接続され、第２パッケージ７５０のＰＣＢ７５１とＬＰＤＤＲ  ＤＲＡＭ４００は、ワイヤを通じて接続される。第１パッケージ７４０及び第２パッケージ７６０は、信号ライン７６０を通じて電気的に接続される。
【産業上の利用可能性】
【０１０７】
本発明は、システムとモバイルコンピューティング装置とに利用されうる。
【符号の説明】
【０１０８】
１００：システム
２００：コントロール回路
２１０：ＣＰＵ
２２０：第１メモリコントローラ
２３０：第２メモリコントローラ
２４０：第３メモリコントローラ
２５０−１、２５０−２：マルチメディアハードウェアＩＰまたはハードウェア回路
３００：第１メモリ
３１０：カーネル領域
３１３：メモリ管理プログラム
３２０：ユーザデータ領域
４００：第２メモリ
５００：第３メモリ
６００：ディスプレイ
【図１】
2015079511.tif 000003
【図２】
2015079511.tif 000004
【図３】
2015079511.tif 000005
【図４】
2015079511.tif 000006
【図５Ａ】
2015079511.tif 000007
【図５Ｂ】
2015079511.tif 000008
【図５Ｃ】
2015079511.tif 000009
【図６】
2015079511.tif 000010
【図７】
2015079511.tif 000011
【図８】
2015079511.tif 000012
【図９】
2015079511.tif 000013
【図１０】
2015079511.tif 000014
【図１１】
2015079511.tif 000015
【図１２】
2015079511.tif 000016
【図１３】
2015079511.tif 000017
【図１４】
2015079511.tif 000018
【図１５】
2015079511.tif 000019
【図１６Ａ】
2015079511.tif 000020
【図１６Ｂ】
2015079511.tif 000021