(57)【要約】【課題】本開示は、プロセッサキャッシュとランダムアクセスメモリとを切り替える技術および装置を説明する。いくつかの態様において、当該技術および装置は、専用のランダムアクセスメモリ（ＲＡＭ）を省略することにより、特定用途向けコンポーネントのダイサイズを小型化出来る。【解決手段】専用のＲＡＭを用いる代わりに、キャッシュ構成を有するメモリが動作中においてＲＡＭ構成を有するよう再構成され、その後、動作が完了すると、当該メモリは、再びキャッシュ構成を有するよう再構成される。多くの特定用途向けコンポーネントはキャッシュ構成を有するメモリを既に含んでいるので、専用のＲＡＭを含めるのではなくこのメモリを再構成することにより、特定用途向けコンポーネントのダイサイズが小型化される。【選択図】図２
2014522040.tif 000002
【特許請求の範囲】
【請求項１】
システムオンチップ（ＳｏＣ）であり、
プロセッサキャッシュ構成とランダムアクセスメモリ構成（ＲＡＭ構成）とで切り替わる切り替え可能メモリと、
コントローラと
を備え、
前記コントローラは、
パワーダウンイベントまたはパワーオンイベントに応答して、前記切り替え可能メモリを前記プロセッサキャッシュ構成から前記ＲＡＭ構成へ動的に切り替え、
前記切り替え可能メモリが前記ＲＡＭ構成を有する場合、ブートコードを不揮発性メモリから前記切り替え可能メモリへロードし、
前記切り替え可能メモリが前記ＲＡＭ構成を有する場合、前記ＳｏＣのオペレーティングシステムをブートするよう前記切り替え可能メモリから前記ブートコードを実行し、
前記ＳｏＣの前記オペレーティングシステムのブートに応答して、前記切り替え可能メモリを前記ＲＡＭ構成から前記プロセッサキャッシュ構成へ動的に切り替える、システムオンチップ。
【請求項２】
前記不揮発性メモリは、前記ブートコードを格納する、前記ＳｏＣ内のブート読取専用メモリ（ＲＯＭ）である、請求項１に記載のシステムオンチップ。
【請求項３】
前記ＳｏＣは、前記ブートコードの実行専用のランダムアクセスメモリを含まない、請求項２に記載のシステムオンチップ。
【請求項４】
前記コントローラはさらに、ハイバネーションモードまたは休止モードである前記パワーダウンイベントに応答して、および、リセットまたはコールドブートである前記パワーオンイベントの前に、前記切り替え可能メモリを前記プロセッサキャッシュ構成から前記ＲＡＭ構成へ動的に切り替える、請求項１から３のいずれか１項に記載のシステムオンチップ。
【請求項５】
前記コントローラはさらに、ハイバネーションモードまたは休止モードからのリセットである前記パワーオンイベントに応答して、前記切り替え可能メモリを前記プロセッサキャッシュ構成から前記ＲＡＭ構成へ動的に切り替える、請求項１から４のいずれか１項に記載のシステムオンチップ。
【請求項６】
前記ブートコードの実行により、前記オペレーティングシステムのオペレーティングシステムイメージを格納するブートデバイスから、前記ＳｏＣの前記オペレーティングシステムがブートされる、請求項１から５のいずれか１項に記載のシステムオンチップ。
【請求項７】
前記切り替え可能メモリを前記ＲＡＭ構成から前記プロセッサキャッシュ構成へ動的に切り替えた後、前記切り替え可能メモリが前記プロセッサキャッシュ構成を有する場合、前記コントローラはさらに、前記切り替え可能メモリを用いる、または前記切り替え可能メモリの利用を有効化する、請求項１から６のいずれか１項に記載のシステムオンチップ。
【請求項８】
前記プロセッサキャッシュ構成は第２レベルキャッシュ構成（Ｌ２キャッシュ構成）であり、
前記ＲＡＭ構成はスタティックＲＡＭ構成（ＳＲＡＭ構成）であり、
前記コントローラはさらに、
制御レジスタのイネーブルビットへ書き込むことにより前記切り替え可能メモリをＬ２キャッシュとして機能させなくし、
前記切り替え可能メモリをクリーニングし、
構成レジスタの読取専用メモリ選択ビット（ＲＡＭ選択ビット）をクリアし、
前記切り替え可能メモリをＬ２キャッシュとして無効化し、
前記切り替え可能メモリがアイドル状態になるまで待機し、
前記構成レジスタに前記ＲＡＭ選択ビットを設定し、
ＳＲＡＭのための前記切り替え可能メモリのバンクを構成する
ことにより、前記切り替え可能メモリを前記Ｌ２キャッシュ構成から前記ＳＲＡＭ構成へ動的に切り替える、請求項１から７のいずれか１項に記載のシステムオンチップ。
【請求項９】
前記プロセッサキャッシュ構成は第２レベルキャッシュ構成（Ｌ２キャッシュ構成）であり、
前記ＲＡＭ構成はスタティックＲＡＭ構成（ＳＲＡＭ構成）であり、
前記コントローラはさらに、
前記切り替え可能メモリのバンクから第２メモリへデータをコピーし、
前記切り替え可能メモリの前記バンクを機能させなくし、
Ｌ２選択ビットをクリアし、
制御レジスタのＬ２キャッシュイネーブルビットをクリアし、
前記切り替え可能メモリを無効化する
ことにより、前記切り替え可能メモリを前記ＳＲＡＭ構成から前記Ｌ２キャッシュ構成へ動的に切り替える、請求項１から７のいずれか１項に記載のシステムオンチップ。
【請求項１０】
パワーオンイベントに応答して、切り替え可能メモリをプロセッサキャッシュ構成からランダムアクセスメモリ構成（ＲＡＭ構成）へ動的に切り替える段階と、
不揮発性メモリから、前記ＲＡＭ構成を有する前記切り替え可能メモリへブートコードをロードする段階と、
オペレーティングシステムイメージを有するブートデバイスを検出し構成するよう、前記切り替え可能メモリから前記ブートコードの第１部分を実行する段階と、
前記ブートデバイスから前記オペレーティングシステムイメージをブートするよう、前記切り替え可能メモリから前記ブートコードの第２部分を実行する段階と、
前記ブートデバイスから前記オペレーティングシステムイメージをブートした後、前記切り替え可能メモリを前記ＲＡＭ構成から前記プロセッサキャッシュ構成へ切り替える段階と
を備える方法。
【請求項１１】
前記パワーオンイベントは、リセット、コールドブート、ハイバネーションモードからの再開、またはスリープモードからの再開である、請求項１０に記載の方法。
【請求項１２】
前記プロセッサキャッシュ構成は第２レベルキャッシュ構成（Ｌ２キャッシュ構成）であり、
前記ＲＡＭ構成はスタティックＲＡＭ構成（ＳＲＡＭ構成）である、請求項１０または１１に記載の方法。
【請求項１３】
前記切り替え可能メモリを前記プロセッサキャッシュ構成から前記ＲＡＭ構成へ動的に切り替える段階は、
制御レジスタのイネーブルビットへ書き込むことにより前記切り替え可能メモリをＬ２キャッシュとして機能させなくする段階と、
前記切り替え可能メモリをクリーニングする段階と、
構成レジスタの読取専用メモリ選択ビット（ＲＡＭ選択ビット）をクリアする段階と、
前記切り替え可能メモリをＬ２キャッシュとして無効化する段階と、
前記切り替え可能メモリがアイドル状態になるまで待機する段階と、
前記構成レジスタに前記ＲＡＭ選択ビットを設定する段階と、
ＳＲＡＭのための前記切り替え可能メモリのバンクを構成する段階と
を有する、請求項１２に記載の方法。
【請求項１４】
前記切り替え可能メモリを前記ＲＡＭ構成から前記プロセッサキャッシュ構成へ切り替える段階は、
前記切り替え可能メモリのバンクから第２メモリへデータをコピーする段階と、
前記切り替え可能メモリの前記バンクを機能させなくする段階と、
Ｌ２選択ビットをクリアする段階と、
制御レジスタのＬ２キャッシュイネーブルビットをクリアする段階と、
前記切り替え可能メモリを無効化する段階と
を有する、請求項１２または１３に記載の方法。
【請求項１５】
前記第２メモリは、前記切り替え可能メモリが組み込まれたシステムオンチップの外部のダイナミックＲＡＭ（ＤＲＡＭ）またはフラッシュメモリである、請求項１４に記載の方法。
【請求項１６】
前記方法は、特定用途向け集積回路（ＡＳＩＣ）、システムオンチップ（ＳｏＣ）、アプリケーションプロセッサ、またはセルラープロセッサにより実施される、請求項１０から１５のいずれか１項に記載の方法。
【請求項１７】
前記ブートデバイスはフラッシュメモリを含み、
前記切り替え可能メモリからの前記ブートコードの前記第２部分の実行により、フラッシュコントローラを用いる前記ブートデバイスから前記オペレーティングシステムイメージがブートされる、請求項１０から１６のいずれか１項に記載の方法。
【請求項１８】
前記オペレーティングシステムイメージがブートされる前に、信頼されたオペレーティングシステムイメージとして前記オペレーティングシステムイメージを認証するよう、前記切り替え可能メモリから前記ブートコードの他の部分を実行する段階をさらに備える、請求項１０から１７のいずれか１項に記載の方法。
【請求項１９】
コントローラであり、
パワーダウンイベントまたはパワーオンイベントに応答して、切り替え可能メモリをプロセッサキャッシュ構成からランダムアクセスメモリ構成（ＲＡＭ構成）へ動的に切り替え、
前記切り替え可能メモリが前記ＲＡＭ構成を有する場合、ブートコードを不揮発性メモリから前記切り替え可能メモリへロードし、
前記切り替え可能メモリが前記ＲＡＭ構成を有する場合、オペレーティングシステムをブートするよう前記切り替え可能メモリから前記ブートコードを実行し、
前記オペレーティングシステムのブートに応答して、前記切り替え可能メモリを前記ＲＡＭ構成から前記プロセッサキャッシュ構成へ動的に切り替える、コントローラ。
【請求項２０】
前記コントローラは、前記切り替え可能メモリを有するデバイス内のファームウェアまたは論理回路として実装される、請求項１９に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本開示は、２０１１年７月２９日に提出された米国仮特許出願第６１／５１３，４４３号の優先権を主張する。当該仮特許出願はその内容の全体が、参照により本明細書に組み込まれる。
【背景技術】
【０００２】
背景技術の説明は、本開示の背景を一般的に示すことを目的としている。本明細書において他に特記しない限り、このセクションにおいて説明されるアプローチは本開示の請求項の先行技術ではなく、このセクションに含まれるからといって先行技術とは認められない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
従来の多くのシステムオンチップ（ＳｏＣｓ）は、アプリケーションプロセッサおよび特定用途向け集積回路など特定用途向けコンポーネントを含む。これらの特定用途向けコンポーネントは、様々な機能性を提供する適合された命令セットまたは回路などを用いて、特定の用途に役立つように少なくとも部分的に適合されている。これらの特定用途向けコンポーネントの性能を継続して改善するべく、これらの特定用途向けコンポーネントにはますます多くの機能性が加えられるようになっており、ダイサイズが大型化し、製造コストが増大している。
【課題を解決するための手段】
【０００４】
この概要は、詳細な説明および図面において以下にさらに説明される主題の概要を説明するべく提供される。したがってこの概要は、必須である特徴を説明するものと見なされるべきではなく、かつ、特許請求される主題の態様を限定するのに用いられるべきではない。
【０００５】
システムオンチップ（ＳｏＣ）は、プロセッサキャッシュ構成とランダムアクセスメモリ（ＲＡＭ）構成とで切り替わる切り替え可能メモリと、コントローラとを備える。コントローラは、パワーダウンイベントまたはパワーオンイベントに応答して、切り替え可能メモリをプロセッサキャッシュ構成からＲＡＭ構成へ動的に切り替え、切り替え可能メモリがＲＡＭ構成を有する場合、ブートコードを不揮発性メモリから切り替え可能メモリへロードし、切り替え可能メモリがＲＡＭ構成を有する場合、ＳｏＣのオペレーティングシステムをブートするよう切り替え可能メモリからブートコードを実行し、切り替え可能メモリからのブートコードの実行の完了に応答して、切り替え可能メモリをＲＡＭ構成からプロセッサキャッシュ構成へ動的に切り替える。
【０００６】
方法は、パワーオンイベントに応答して、切り替え可能メモリをプロセッサキャッシュ構成からランダムアクセスメモリ（ＲＡＭ）構成へ動的に切り替える段階と、ブートコードを不揮発性メモリからＲＡＭ構成を有する切り替え可能メモリへロードする段階と、オペレーティングシステムイメージを有するブートデバイスを検出し構成するよう、切り替え可能メモリからブートコードの第１部分を実行する段階と、ブートデバイスからオペレーティングシステムイメージをブートするよう、切り替え可能メモリからブートコードの第２部分を実行する段階と、ブートデバイスからオペレーティングシステムイメージをブートした後、切り替え可能メモリをＲＡＭ構成からプロセッサキャッシュ構成へ切り替える段階とを備える。
【図面の簡単な説明】
【０００７】
１以上の実施例の詳細は添付の図面と以下の詳細な説明に記載される。図面において、参照番号の一番左の数字は、当該参照番号が最初に用いられる図面の番号を示す。説明および図面の異なる箇所で同じ参照番号が言及された場合、それらは同様の要素を指す。
【図１】プロセッサキャッシュとランダムアクセスメモリとを切り替える技術が実装され得る動作環境を示す。
【図２】プロセッサキャッシュとランダムアクセスメモリとを切り替える方法を示す。
【図３】部分的に、切り替え可能メモリをプロセッサキャッシュ構成からＲＡＭ構成へ切り替えることによりオペレーティングシステムをブートする方法を示す。
【図４】切り替え可能レベル２（Ｌ２）プロセッサキャッシュを用いる切り替え可能メモリの一例を含むアプリケーションプロセッサの一例を示す。
【図５】Ｌ２プロセッサキャッシュ構成からＳＲＡＭ構成へ切り替える方法を示す。
【図６】ＳＲＡＭ構成からＬ２プロセッサキャッシュ構成へ切り替える方法を示す。
【図７】本明細書で説明される技術の態様を実施するためのシステムオンチップ（ＳｏＣ）環境を示す。
【発明を実施するための形態】
【０００８】
概説
本明細書は、プロセッサキャッシュとランダムアクセスメモリとの間でメモリを切り替えるための技術および装置を説明する。いくつかの態様において、これらの技術および装置は、特定用途向けコンポーネントのダイサイズの小型化を可能とし、これにより多くの場合において、製造コストが低減される、または性能が向上させられる。いくつかの態様において、技術および装置は、ランダムアクセスメモリ（ＲＡＭ）の動作の特定用途向けコンポーネントによる実行を依然として可能としつつ従来の専用のＲＡＭを省略することにより、ダイサイズを小型化出来る。専用のＲＡＭを用いる代わりに、キャッシュ構成を有するメモリが動作中においてＲＡＭ構成を有するよう再構成され、その後、動作が完了すると、当該メモリは、再びキャッシュ構成を有するよう再構成される。特定用途向けコンポーネントはキャッシュ構成を有するメモリを既に含んでいるので、専用のＲＡＭを含めるのではなくこのメモリを再構成することにより、特定用途向けコンポーネントのダイサイズが小型化される。
【０００９】
例えば、セルラープロセッサまたはベースバンドプロセッサを含むスマートフォンなどのモバイルデバイスに適合された特定用途向けコンポーネントを考えてみる。最初にスマートフォンの電源が入れられると、または、スマートフォンがハイバネーション状態または休止状態から再開させられると、スマートフォンのオペレーティングシステムは、特定用途向けコンポーネントによってブートされる、または、再開させられる。従来よりこの特定用途向けコンポーネントは、ブートコードを有する読取専用メモリ（ＲＯＭ）（ブートＲＯＭ）、ブートコードがロードされるランダムアクセスメモリ（ＲＡＭ）、オペレーティングシステムイメージを有するブートデバイス、および、ＲＡＭにロードされたブートコードを実行するプロセッサを含む。この特定用途向けコンポーネントにおいて、プロセッサはブートコードをＲＡＭにロードし、その後、ＲＡＭからブートコードを実行してブートデバイスを検出し、ブートデバイスを構成し、オペレーティングシステムを認証し、オペレーティングシステムをブートする。
【００１０】
しかし当該技術および装置は、従来のＲＡＭを用いることなく、特定用途向けコンポーネントがオペレーティングシステムをブートすることを可能とする。代わりに、Ｌ２キャッシュ構成を有するよう構成されたメモリは、ブート処理の前、またはその間、スタティックＲＡＭ（ＳＲＡＭ）構成を有するよう再構成される。ブートコードはＳＲＡＭ構成を有するメモリにロードされ、その後、プロセッサにより実行されてオペレーティングシステムをブートする。オペレーティングシステムがブートされた後、メモリはＬ２キャッシュ構成へ切り替え戻される。このようにすることにより、当該技術および装置は、より少ないメモリを用いて特定用途向けコンポーネントを構築することを可能とし、このことにより、より小さなダイサイズ、およびコスト削減が可能となる。
【００１１】
以下において、動作環境、当該動作環境において採用され得る技術、および、当該動作環境のコンポーネントが実装され得るシステムオンチップ（ＳｏＣ）について説明する。以下の説明において、あくまで例示として動作環境を参照する。
【００１２】
動作環境
図１は、特定用途向けコンポーネント１０２とブートデバイス１０４とを有する動作環境１００の一例を示す。特定用途向けコンポーネント１０２およびブートデバイス１０４はそれぞれ、集積回路−集積回路（Ｉ２Ｃ）バス、ｌｏｗ  ｐｉｎ  ｃｏｕｎｔ（ＬＰＣ）バス、シリアルペリフェラルインターコネクト（ＳＰＩ）バス、ｕｎｉｖｅｒｓａｌ  ａｓｙｎｃｈｒｏｎｏｕｓ  ｒｅｃｅｉｖｅｒ／ｔｒａｎｓｍｉｔｔｅｒ（ＵＡＲＴ）バス、１ワイヤバスなどのデータバス１０６上で通信を行う。
【００１３】
特定用途向けコンポーネント１０２は、１以上のマイクロプロセッサ１０８、切り替え可能メモリ１１０、ブート読取専用メモリ（ブートＲＯＭ）１１２、およびコントローラ１１４を含む。マイクロプロセッサ１０８は、特定用途向けコンポーネント１０２のプログラムおよび／またはオペレーティングシステムに関連付けられた命令またはコードを実行するシングルコアまたはマルチコアの何らかのタイプのプロセッサであってよい。マイクロプロセッサ１０８は、シリコンおよび他の半導体など何らかの適した材料から構成される、または製造され得る。切り替え可能メモリ１１０は、プロセッサキャッシュ構成およびランダムアクセスメモリ（ＲＡＭ）構成など少なくとも２つの構成間での切り替えが可能なメモリである。ブートＲＯＭ１１２は、消去可能プログラム可能ＲＯＭ（ＥＰＲＯＭ）、電気的消去可能プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）など何らかの適した不揮発性メモリにより構成され得る。ブートＲＯＭ１１２は、実行されると特定用途向けコンポーネント１０２に関連付けられたシステムのブートを補助するブートコードを含む。なお、特定用途向けコンポーネント１０２は、特定の用途に役立つよう、上述の例においては、スマートフォンのオペレーティングシステムをブートするよう少なくとも部分的に適合されている。
【００１４】
しかし当該技術および装置は、スマートフォンに適合された特定用途向けコンポーネントに限定されない。代わりに、様々な電子デバイスまたはコンピューティングデバイスでの採用のために、様々なタイプの特定用途向けコンポーネントが本明細書で説明される技術と共に用いられ得る。例えば、特定用途向けコンポーネントは、集積回路（ＡＳＩＣ）、システムオンチップ（ＳｏＣ）、または特定用途向け標準プロダクト（ＡＳＳＰ）として構成され得る。これらの特定用途向けコンポーネントが採用され得るデバイスには、プリンタ、カメラ、コピー機、タブレットコンピュータ、デスクトップコンピュータ、セットトップボックス、ＦＡＸ機、家電、ゲーム機、モバイルインターネットデバイス、テレビ、電子書籍、電子写真フレームなどが含まれる。いくつかの場合において、特定用途向けコンポーネントは最小限の再構成により、または再構成を行わず、このようなデバイスの複数に採用され得る。
【００１５】
コントローラ１１４は、プロセッサキャッシュ構成とランダムアクセスメモリ（ＲＡＭ）構成との間で動的に切り替えを行うなどにより、切り替え可能メモリ１１０を複数の構成間で切り替える。コントローラ１１４は、マイクロプロセッサ１０８により実行される、ブートＲＯＭ１１２に格納された実行可能コード、状態機械、ハードウェア（例えば論理回路）、ファームウェア、またはこれらの何らかの適した組み合わせなど、様々なやり方で実装され得る。コントローラ１１４がどのように用いられ実装されるかは様々であり、以下により詳細に説明する。
【００１６】
ブートデバイス１０４は、特定用途向けコンポーネント１０２のオペレーションファームウェアまたはオペレーティングシステムを格納する。この特定の例において、ブートデバイス１０４はオペレーティングシステムイメージ１１６を格納する。ブートデバイス１０４は、不揮発性ＲＡＭ（ＮＶＲＡＭ）、ＥＥＰＲＯＭ、フラッシュメモリなどの何らかの適したタイプのハードウェアメモリまたはメモリデバイスにより構成され得る。ファームウェアまたはオペレーティングシステムは、オペレーティングシステムイメージ、ファームウェアモジュール、マイクロコードなどの様々なやり方でブートデバイス１０４により格納され得る。代替的に、または追加的に、ブートデバイス１０４のコンテンツは、安全な実行環境での実行の前に、安全な、または信頼性の高いコードとして認証され得る。例示される環境１００においては互いに別個のエンティティとして示されているが、ブートデバイス１０４と特定用途向けコンポーネント１０２とは、本明細書で開示される当該技術および装置の他の態様においては物理的に統合され得る。
【００１７】
プロセッサキャッシュ−ランダムアクセスメモリ間の切り替え
以下において、プロセッサキャッシュ構成とランダムアクセスメモリ（ＲＡＭ）構成との間でメモリを切り替えるための技術を説明する。これらの技術は、図１のコントローラ１１４など前述した環境を用いて実施され得る。これらの技術は、図２、３、５、および／または６に示される方法を含む。各方法は、１以上のエンティティにより実行される複数の動作からなるセットとして示されている。これらの方法の動作を実行する順序は、示されるものに必ずしも限定されない。さらに、これらの方法は、全体的に、または部分的に互いに組み合わせられ得、同じエンティティ、別々のエンティティ、またはこれらの組み合わせにより実施され得る。以下の説明のいくつかの箇所において、例として図１の動作環境１００を参照する。そのように参照したからといって、動作環境１００に限定されるものと見なされるべきではなく、様々な例のうちの１つを例示するものとして見なされるべきである。
【００１８】
図２は、プロセッサキャッシュとランダムアクセスメモリとを切り替える方法２００を示す。２０２において、切り替え可能メモリは、パワーダウンイベントまたはパワーオンイベントに応答して、プロセッサキャッシュ構成からランダムアクセスメモリ（ＲＡＭ）構成へ動的に切り替えられる。パワーダウンイベントは、ソフトリセットまたはハードリセット、低電力状態（例えば、休止モードまたはハイバネーションモード）に入ること、システムの完全なシャットダウンなどを含みうる。パワーオンイベントは、電源オンリセット（ハードまたはソフト）、再ブート、コールドブート（例えば、オフ状態からのシステム開始）、ウォームブート、休止モードまたはハイバネーションモードからの再開などを含みうる。図１のコントローラ１１４が、パワーダウンイベントが起こっていること、またはパワーダウンイベントが起こることを示す情報を受信する場合を考える。このパワーダウンイベントが、コンピューティングシステム（例えば、デスクトップコンピュータ、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、ゲームシステムなど）がハイバネーション状態または休止状態などの低電力状態または電源オフ状態にある、またはそれらの状態に入ろうとしていることを示すと仮定する。この場合、ハイバネーション状態または休止状態に入る前にコントローラ１１４は、切り替え可能メモリ１１０を現在のプロセッサキャッシュ構成からＲＡＭ構成へ切り替え、コンピューティングシステムがブートされる、後のパワーオンイベントに備える。
【００１９】
代わりにコントローラ１１４は、リセットまたはシステム開始などパワーオンイベントに応答して動作し、切り替え可能メモリをＲＡＭ構成へ切り替えてもよい。この場合、コントローラ１１４は切り替え可能メモリ１１０を現在のプロセッサキャッシュ構成からＲＡＭ構成へ動的に切り替え、ブートＲＯＭ１１２からのブートコードの実行に備える。レベルＬ２プロセッサキャッシュ構成（Ｌ２構成）からスタティックＲＡＭ（ＳＲＡＭ）構成へ切り替えるなど、コントローラ１１４が複数の構成間で切り替える動作を行う様々なやり方は、以下の図５および図６の方法５００および６００の一部として詳細に説明する。
【００２０】
２０４において、切り替え可能メモリがＲＡＭ構成を有する場合、ブートコードが不揮発性メモリから切り替え可能メモリにロードされる。不揮発性メモリは、上述したようにブートコードを格納するブートＲＯＭであってよい。コントローラ１１４は例えば、マイクロプロセッサ１０８によりブートコードの実行を可能とするようブートＲＯＭ１１２から切り替え可能メモリ１１０へブートコードをロードする。いくつかの場合において、オペレーティングシステムイメージはフラッシュメモリのブートデバイス１０４に格納されてもよい。そのような場合、コントローラ１１４はフラッシュコントローラを用いてオペレーティングシステムイメージ１１６をロードしてもよい。コンピューティングシステムのブートの一部として、コントローラ１１４はオペレーティングシステムイメージ１１６を認証してもよい。
【００２１】
２０６において、切り替え可能メモリがＲＡＭ構成を有する場合、ブートコードが切り替え可能メモリから実行される。ブートコードの実行により、特定用途向けコンポーネントのオペレーティングシステムまたはファームウェアがブートされ得る。オペレーティングシステムまたはファームウェアは、特定用途向けコンポーネントの内部または外部にあるフラッシュモジュールまたはＥＥＰＲＯＭモジュールなどのブートデバイスに格納され得る。いくつかの場合において、オペレーティングシステムまたはファームウェアは、ブートの前に、信頼性が高い、または安全であると認証され得る。説明してきた例を引き続き参照すると、マイクロプロセッサ１０８は切り替え可能メモリ１１０からブートコードを実行し、ブートデバイス１０４からオペレーティングシステムイメージ１１６を認証し、ブートする。
【００２２】
２０８において、オペレーティングシステムのブートに応答して、切り替え可能メモリは、ＲＡＭ構成からプロセッサキャッシュ構成へ動的に切り替えられる。そうする際に、コントローラ１１４は、切り替え可能メモリがその以前の構成で用いられ得るようにする。例えば、オペレーティングシステムが実行されている場合、マイクロプロセッサ１０８はオペレーティングシステムまたは他のプログラムの実行に関連付けられたデータまたは命令のためのキャッシュとして切り替え可能メモリ１１０を利用し得る。
【００２３】
本実施例の最後に、マイクロプロセッサ１０８は、プロセッサキャッシュ構成を有する切り替え可能メモリ１１０のデータにアクセスする。このことは２１０に示されている。切り替え可能メモリをＲＡＭ構成からプロセッサキャッシュ構成へ動的に切り替えた後、２１０において、切り替え可能メモリはプロセッサキャッシュ構成を有するものとして用いられ得るようになる。上述したように、コントローラ１１４が構成を切り替えるように動作し得る様々なやり方を以下において詳細に説明する。
【００２４】
図３は、部分的に、切り替え可能メモリをプロセッサキャッシュ構成からＲＡＭ構成へ切り替えることにより、オペレーティングシステムをブートする方法３００を示す。以下の説明のいくつかの箇所において、例として図１の動作環境１００および図４のエンティティを参照する。そのように参照したからといって、図１または図４に限定されるものと見なされるべきではなく、様々な例のうちの１つを例示するものとして見なされるべきである。
【００２５】
３０２において、パワーオンイベントに応答して、切り替え可能メモリがプロセッサキャッシュ構成からＲＡＭ構成へ切り替えられる。このパワーオンイベントは、リセット、コールドブート、若しくはスリープ状態またはハイバネーション状態などの低電力モードからの再開であり得る。
【００２６】
例として、図１の特定用途向けコンポーネント１０２の一例である図４のアプリケーションプロセッサ４０２に関連して方法３００を考える。アプリケーションプロセッサ４０２は、共に図１に示されるブートＲＯＭ１１２およびコントローラ１１４、並びに、切り替え可能メモリ１１０の一例である切り替え可能レベル２（Ｌ２）プロセッサキャッシュ４０４を含む。アプリケーションプロセッサ４０２は、ダブルデータレートシンクロナスＤＲＡＭコントローラ４０６（ＤＤＲコントローラ４０６）、レベル１（Ｌ１）実行変換索引バッファ（ＩＴＬＢ、またはより短くＩ）プロセッサキャッシュ４０８、レベル１（Ｌ１）読取／書込変換索引バッファ（ＤＴＬＢ、またはより短くＤ）キャッシュ４１０、および、フラッシュコントローラ４１２も含む。フラッシュコントローラ４１２は外部のフラッシュ４１４を制御する。ＤＤＲコントローラ４０６は、ダブルデータレートシンクロナスＤＲＡＭ４１６（ＤＤＲメモリ４１６）を制御する。
【００２７】
コントローラ１１４は、セルラープロセッサ４１８と通信を行う、および／または全体的に、または部分的にセルラープロセッサ４１８を用いて実行される。３０２において、アプリケーションプロセッサ４０２の電力管理サブシステム（図示せず）などによりパワーオンイベントが検出される。ここでＬ２キャッシュ４０４は、ブート処理の間（または反対に、パワーダウンシーケンスの間）も含めて動的にその構成が変更され得る。３０２において、コントローラ１１４は、プロセッサキャッシュとして構成されたＬ２キャッシュ４０４を、スタティックランダムアクセスメモリ（ＳＲＡＭ）構成へ切り替える。この方法においては特定のやり方でこの構成を切り替える必要はないが、方法５００では、Ｌ２キャッシュ構成からＳＲＡＭ構成へのこの切り替えがどのように行われ得るかについて詳細な実施形態が示されている。方法５００は以下に詳細に説明する。
【００２８】
３０４において、不揮発性メモリデバイスから、ＲＡＭ構成を有する切り替え可能メモリにブートコードがロードされる。ここでブートコードは、ブートＲＯＭ１１２から、アプリケーションプロセッサ４０２のＬ２プロセッサキャッシュ４０４にロードされる。
【００２９】
３０６において、ブートデバイスを検出し構成するようブートコードの第１部分が実行される。このブートデバイスは、特定用途向けコンポーネントのオペレーティングシステム、オペレーティングシステムイメージ、またはファームウェアを格納し得る。ブートデバイスは、ＥＥＰＲＯＭまたはフラッシュメモリなどの何らかの適したタイプのメモリ、またはメモリモジュールによって構成され得る。説明してきた例を引き続き参照すると、アプリケーションプロセッサ４０２は、外部のフラッシュ４１４を検出し構成するようＬ２キャッシュ４０４からブートコードを実行する。ここで、本願発明に従って構成されたアプリケーションプロセッサ４０２はフラッシュメモリ４１４に直接アクセスし得ないので、外部のフラッシュ４１４の検出および構成においてフラッシュコントローラ４１２が用いられる。
【００３０】
場合によっては３０８において、ブートデバイスのオペレーティングシステムイメージを信頼性が高い、または安全であると認証するようブートコードの第２部分が実行される。いくつかの場合において、ブートデバイスのコンテンツの実行またはブートは、認証が失敗すると進められない。他の場合において、認証が失敗したとの情報がユーザに提示されても、または、セキュリティポリシーマネジャに報告されても、ブートまたは実行は進められる。本実施例の場合において、アプリケーションプロセッサ４０２は追加のブートコードを実行し、外部のフラッシュ４１４に格納されたオペレーティングシステムイメージを認証する。
【００３１】
３１０において、ブートデバイスからオペレーティングシステムイメージをブートするようブートコードの第３部分が実行される。説明されるようにブートコードは、オペレーティングシステムをブートする少なくとも何らかのコードを含むが、コントローラ１１４の動作を実行する実行可能命令などの他のコードも含まれ得る。オペレーティングシステムイメージが外部のフラッシュ４１４に格納される説明してきた例において、切り替え可能メモリからＲＯＭコードを実行することにより、フラッシュコントローラ４１２を介して外部のフラッシュ４１４からオペレーティングシステムイメージがブートされる。
【００３２】
３１２において、オペレーティングシステムイメージがブートデバイスからブートされた後、切り替え可能メモリはＳＲＡＭ構成からプロセッサキャッシュ構成へ切り替えられる。このことにより切り替え可能メモリの他の用途での利用が可能となり、ここでは、切り替え可能メモリはプロセッサキャッシュとして利用され得る。本実施例の最後に、コントローラ１１４は、アプリケーションプロセッサ４０２のオペレーティングシステムをブートするのに用いられたＳＲＡＭ構成からＬ２キャッシュ構成へとＬ２キャッシュ４０４を再構成する。以下に説明する方法６００では、ＳＲＡＭ構成からＬ２キャッシュ構成へ戻すこの切り替えがどのように行われ得るかについて詳細な実施形態が示されている。
【００３３】
なお、方法２００、方法３００、またはそれらの組み合わせに係る技術は、全体的に、または部分的に、コンピューティングシステムの信頼性の高い、または信頼性の低いブート（例えば動作３０８）を実行し得る。
【００３４】
図５は、Ｌ２プロセッサキャッシュ構成からＳＲＡＭ構成へ切り替える方法５００を示す。方法５００は、切り替え可能メモリの構成を切り替える１つの例示的なやり方に過ぎない。説明されるようにいくつかの場合において、これにより特定用途向けコンポーネント上のメモリが少なくなりコスト削減および性能向上が可能となる。
【００３５】
５０２において、切り替え可能メモリをＬ２キャッシュとして機能させなくすべく、切り替え可能メモリの制御レジスタのイネーブルビットが書き込まれる。５０４において、切り替え可能メモリが「ｃｌｅａｎ  ａｌｌ」命令を用いてクリーニングされる。５０６において、切り替え可能メモリの構成レジスタの選択ビットがクリアされる。５０８において、「ｉｎｖａｌｉｄａｔｅ  ａｌｌ」命令を用いて、切り替え可能メモリをＬ２キャッシュとして無効化する。５１０において、方法５００は、切り替え可能メモリがアイドル状態になるまで待機する。５１２において、切り替え可能メモリの構成レジスタのＳＲＡＭ選択ビットが設定される。５１４において、ＳＲＡＭのために、切り替え可能メモリのバンクが構成される。
【００３６】
図６は、ＳＲＡＭ構成からＬ２プロセッサキャッシュ構成へ切り替える方法６００を示す。方法６００は、切り替え可能メモリの構成を切り替える１つの例示的なやり方に過ぎない。
【００３７】
６０２において、切り替え可能メモリのバンクからのデータが他のメモリにコピーされる。よって、ＳＲＡＭのために構成されたＬ２キャッシュ４０４のバンクのデータは、ＤＤＲコントローラ４０６を介してＤＤＲ４１６へ、若しくはフラッシュコントローラ４１２を介して外部のフラッシュ４１４へなど、アプリケーションプロセッサ４０２の外部のものなど他のメモリへコピーされる。６０４において、切り替え可能メモリのバンクが機能しないようにされる。６０６において、Ｌ２選択ビットがクリアされる。６０８において、制御レジスタのＬ２キャッシュイネーブルビットがクリアされる。６１０において、Ｌ２キャッシュ「ｉｎｖａｌｉｄａｔｅ  ａｌｌ」命令を用いて切り替え可能メモリが無効化される。
【００３８】
方法５００、６００は、切り替え可能メモリと関連付けられた様々なレジスタの特定のビットを介して、および、特定の命令を用いて実施されるが、これらは一例であり、方法５００または６００、若しくは、方法２００または３００をこれらの示された実施例に限定するわけではない。特定用途向けコンポーネントの電力状態の移行をモニタリングする、および／または制御することに関連付けられた論理回路または状態機械の利用など、代替的な態様も考えられ得る。
【００３９】
システムオンチップ
図７は、上述した様々な態様を実施し得るシステムオンチップ（ＳｏＣ）７００を示す。ＳｏＣは、ビデオゲームコンソール、ＩＰ機能を有するテレビ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、サーバ、ネットワーク機能を有するプリンタ、セットトップボックス、プリンタ、スキャナ、カメラ、写真フレーム、および／またはモバイルインターネット機器など何らかの適したデバイスで実装され得る。
【００４０】
ＳｏＣ７００は、電子回路、マイクロプロセッサ、メモリ、入出力（Ｉ／Ｏ）論理制御回路、通信インタフェースおよびコンポーネント、他のハードウェア、ファームウェア、および／またはソフトウェアと統合され得る。ＳｏＣ７００は、ＳｏＣの様々なコンポーネント間を、それらコンポーネント間のデータ通信のために結合する統合されたデータバス（図示せず）も含みうる。
【００４１】
本実施例において、ＳｏＣ７００は、（例えば電子回路を含む）入出力（Ｉ／Ｏ）論理制御回路７０２、およびマイクロプロセッサ７０４（例えば、マイクロコントローラまたはデジタル信号プロセッサのいずれか）など様々なコンポーネントを含みうる。またＳｏＣ７００は、ＲＡＭ、低遅延不揮発性メモリ（例えばフラッシュメモリ）、ＲＯＭ、および／または、他の適した電子データ記憶装置などの何らかのタイプのメモリ７０６も含みうる。ＳｏＣ７００は、メモリ７０６により保持されマイクロプロセッサ７０４により実行されるコンピュータ実行可能命令であり得るオペレーティングシステム７０８など、様々なファームウェア、および／またはソフトウェアも含みうる。ＳｏＣ７００は、他の様々な通信インタフェースおよびコンポーネント、通信コンポーネント、他のハードウェア、ファームウェア、および／またはソフトウェアも含みうる。
【００４２】
ＳｏＣ７００は、切り替え可能メモリ１１０、ブートＲＯＭ１１２、およびコントローラ１１４を含む。これらの様々なコンポーネント、機能、および／または、エンティティ、並びにそれらの対応する機能性の例は、図１および図４に示される環境１００の各コンポーネントを参照して説明される。コントローラ１１４および他のコンポーネントは、Ｉ／Ｏ論理制御部７０２、および／またはＳｏＣ７００の他の信号処理回路および信号制御回路と関連付けて実装されるハードウェア、ファームウェア、固定論理回路、またはこれらの何らかの組み合わせで実装され得る。
【００４３】
構造的な特徴、および／または方法論的な動作について特定的な言語を用いて主題を説明してきたが、以下の請求項において定義される主題は、上述した特定の特徴または動作、並びに、上述したそれら動作が実行される順序に必ずしも限定されない。
【図１】
2014522040.tif 000003
【図２】
2014522040.tif 000004
【図３】
2014522040.tif 000005
【図４】
2014522040.tif 000006
【図５】
2014522040.tif 000007
【図６】
2014522040.tif 000008
【図７】
2014522040.tif 000009
【国際調査報告】
2014522040.tif 000010
2014522040.tif 000011