(57)【要約】  マルチプロセッサシステムにおいて、画像ヘッダおよびセグメント化されたデータ画像を含む実行可能ソフトウェア画像が、第1のプロセッサから第2のプロセッサに分散ロードされる。画像ヘッダは、第2のプロセッサのメモリに分散ロードされるデータ画像セグメントのターゲットロケーションを含む。画像ヘッダが処理されると、第2のプロセッサからのさらなるCPU関与なしに、データセグメントが第2のプロセッサのメモリに直接ロードされ得る。
2013522803.tif 000002
【特許請求の範囲】
【請求項１】
システムメモリおよび実行可能ソフトウェア画像の少なくとも一部分を受信するためのハードウェアバッファを備え、前記ハードウェアバッファから前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするための分散ローダコントローラを備える2次プロセッサと、
メモリに結合された1次プロセッサであって、前記メモリは、前記2次プロセッサのための前記実行可能ソフトウェア画像を記憶する、1次プロセッサと、
前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して前記実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
【請求項２】
前記分散ローダコントローラは、前記2次プロセッサにおいてシステムメモリロケーション間でデータをコピーすることなく、前記ハードバッファから前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするように構成される、請求項1に記載のマルチプロセッサシステム。
【請求項３】
前記実行可能ソフトウェア画像の生画像データが、前記インターフェースを介して前記2次プロセッサによって受信される、請求項1に記載のマルチプロセッサシステム。
【請求項４】
前記実行可能ソフトウェア画像は、画像ヘッダおよび少なくとも1つのデータセグメントを備える、請求項1に記載のマルチプロセッサシステム。
【請求項５】
前記2次プロセッサは、前記画像ヘッダを受信し、前記少なくとも1つのデータセグメントを記憶する前記システムメモリ内の少なくとも1つのロケーションを特定するために前記画像ヘッダを処理するように構成される、請求項4に記載のマルチプロセッサシステム。
【請求項６】
前記2次プロセッサは、前記少なくとも1つのデータセグメントを受信する前に、前記少なくとも1つのデータセグメントを記憶する前記システムメモリ内の前記少なくとも1つのロケーションを、前記受信された画像ヘッダに基づいて特定するように構成される、請求項5に記載のマルチプロセッサシステム。
【請求項７】
前記2次プロセッサは、前記2次プロセッサのための前記実行可能ソフトウェア画像の転送を開始するブートローダを記憶している不揮発性メモリをさらに備える、請求項1に記載のマルチプロセッサシステム。
【請求項８】
前記1次および2次プロセッサは異なるチップに位置する、請求項1に記載のマルチプロセッサシステム。
【請求項９】
実行可能ソフトウェア画像全体が前記ハードウェアバッファに記憶されることなく、前記実行可能ソフトウェア画像の前記一部分が前記2次プロセッサの前記システムメモリにロードされる、請求項1に記載のマルチプロセッサシステム。
【請求項１０】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項1に記載のマルチプロセッサシステム。
【請求項１１】
2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するステップであって、前記実行可能ソフトウェア画像は、前記画像ヘッダおよび少なくとも1つのデータセグメントを備える、ステップと、
前記少なくとも1つのデータセグメントを記憶する、前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、前記画像ヘッダを前記2次プロセッサによって処理するステップと、
前記2次プロセッサにおいて、前記チップ間通信バスを介して前記1次プロセッサから、前記少なくとも1つのデータセグメントを受信するステップと、
前記2次プロセッサによって、前記システムメモリの中の前記特定された少なくとも1つのロケーションに前記少なくとも1つのデータセグメントを直接ロードするステップと
を含む方法。
【請求項１２】
前記実行可能ソフトウェア画像を使用して前記2次プロセッサをブートするステップをさらに含む、請求項11に記載の方法。
【請求項１３】
システムメモリロケーション間でデータをコピーすることなく、ハードウェアバッファから前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするステップをさらに含む、請求項11に記載の方法。
【請求項１４】
前記処理するステップは、前記ロードするステップの前に生じる、請求項11に記載の方法。
【請求項１５】
前記1次および2次プロセッサは異なるチップに位置する、請求項11に記載の方法。
【請求項１６】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つにおいて、前記受信するステップ、前記処理するステップおよび前記ロードするステップを実施するステップをさらに含む、請求項11に記載の方法。
【請求項１７】
2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するための手段であって、前記実行可能ソフトウェア画像は、前記画像ヘッダおよび少なくとも1つのデータセグメントを備える、手段と、
前記少なくとも1つのデータセグメントを記憶する、前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、前記画像ヘッダを前記2次プロセッサによって処理するための手段と、
前記2次プロセッサにおいて、前記チップ間通信バスを介して前記1次プロセッサから、前記少なくとも1つのデータセグメントを受信するための手段と、
前記2次プロセッサによって、前記システムメモリの中の前記特定された少なくとも1つのロケーションに前記少なくとも1つのデータセグメントを直接ロードするための手段と
を含む装置。
【請求項１８】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項17に記載の装置。
【請求項１９】
第1の不揮発性メモリに結合された1次プロセッサであって、前記第1の不揮発性メモリは前記1次プロセッサに結合され、前記1次プロセッサのためのファイルシステムならびに前記1次プロセッサおよび2次プロセッサのための実行可能画像を記憶する、1次プロセッサと、
第2の不揮発性メモリに結合された2次プロセッサであって、前記第2の不揮発性メモリは前記2次プロセッサに結合され、前記2次プロセッサのための構成パラメータおよびファイルシステムを記憶する、2次プロセッサと、
前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
【請求項２０】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項19に記載のマルチプロセッサシステム。
【請求項２１】
第1の不揮発性メモリに結合された1次プロセッサであって、前記第1の不揮発性メモリは前記1次プロセッサに結合され、前記1次プロセッサおよび2次プロセッサのための実行可能画像およびファイルシステムを記憶する、1次プロセッサと、
前記第1の不揮発性メモリに直接結合されていない2次プロセッサと、
前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
【請求項２２】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項21に記載のマルチプロセッサシステム。
【請求項２３】
1次プロセッサに結合されたメモリから、2次プロセッサのための実行可能ソフトウェア画像を、前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースを介して送るステップと、
前記2次プロセッサにおいて、前記実行可能ソフトウェア画像を受信するステップと、
前記2次プロセッサにおいて、前記実行可能ソフトウェア画像を実行するステップと
を含む方法。
【請求項２４】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つにおいて、前記送るステップ、前記受信するステップおよび前記実行するステップを実施するステップをさらに含む、請求項23に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、開示の全体が参照により明白に本明細書に組み込まれる、MALAMANTらの名前で2010年3月22日に出願された米国仮特許出願第61/316,369号、GUPTAらの名前で2010年4月14日に出願された米国仮特許出願第61/324,035号、GUPTAらの名前で2010年4月14日に出願された米国仮特許出願第61/324,122号、GUPTAらの名前で2010年4月19日に出願された米国仮特許出願第61/325,519号の利益を主張する。
【０００２】
以下の説明は、一般にはマルチプロセッサシステムに関し、より詳細には1次プロセッサが、専用揮発性メモリに各々が結合されたシステムにおける1つまたは複数の他のプロセッサ(本明細書では「2次」プロセッサと呼ぶ)の実行可能ソフトウェア画像を記憶している不揮発性メモリに結合されたマルチプロセッサシステムであって、実行可能ソフトウェア画像が(たとえば、直接分散ロードプロセスを使用して)セグメント化されたフォーマットで1次プロセッサから2次プロセッサに効率的に通信される、マルチプロセッサシステムに関する。
【背景技術】
【０００３】
プロセッサは、動作を実行するためにソフトウェアコードを実行する。プロセッサは、起動させるために実行されるべき、ブートコードと一般に呼ばれる何らかのソフトウェアコードを要求することがある。マルチプロセッサシステムでは、各プロセッサが、起動させるためにそれぞれのブートコードを要求することがある。一例として、アプリケーションプロセッサおよびモデムプロセッサを含むスマートフォンデバイスでは、プロセッサの各々が起動させるためのそれぞれのブートコードを有し得る。
【０００４】
複数のプロセッサ(たとえば、別個のモデムプロセッサチップと一体化した独立型アプリケーションプロセッサチップ)を組み込んだ(スマートフォンなどの)非常に多くのデバイスに問題が存在する。フラッシュ/不揮発性メモリ構成要素が、プロセッサの各々のために使用されることがあり、その理由は、各プロセッサが実行可能画像およびファイルシステムの不揮発性メモリ(たとえば、持続的記憶装置)を有することである。たとえば、プロセッサのブートコードを、プロセッサのそれぞれの不揮発性メモリ(たとえば、フラッシュメモリ、読取り専用メモリ(ROM)など)に記憶することができ、電源投入時に、ブートコードソフトウェアがそれぞれの不揮発性メモリからプロセッサによって実行されるためにロードされる。したがって、このタイプのアーキテクチャでは、プロセッサのブートコードのような実行可能ソフトウェアを、プロセッサに対し、システム内の別のプロセッサからロードする必要はない。
【０００５】
しかしながら、各プロセッサに専用不揮発性メモリを追加すると、回路基板の空間がより多く占有され、結果的に回路基板のサイズが大きくなる。いくつかの設計では、ランダムアクセスメモリ(RAM)およびフラッシュメモリ向けの結合されたチップ(RAMデバイスとフラッシュデバイスとを1つのパッケージとして積層してサイズを縮小している)を使用して、回路基板のサイズを縮小することができる。マルチチップパッケージの解決策によって、必要な回路基板のフットプリントはある程度縮小するものの、コストが増大することがある。
【０００６】
いくつかのマルチプロセッサシステムでは、1つのプロセッサに対し、別のプロセッサからソフトウェアをロードしなければならないことがある。たとえば、マルチプロセッサシステム内の第1のプロセッサが、システム内の1つまたは複数の他のプロセッサのためのブートコードを不揮発性メモリに記憶する役目を果たし、その場合に、他のプロセッサの不揮発性メモリにそのようなブートコードが存在する場合とは異なり、電源投入時に第1のプロセッサが他のプロセッサにそれぞれのブートコードをロードしなければならないと仮定する。このタイプのシステムでは、ソフトウェア(たとえば、ブート画像)が第1のプロセッサから他のプロセッサに(たとえば、他のプロセッサの揮発性メモリに)ダウンロードされ、その後、受信プロセッサがダウンロードされた画像でブートする。
【０００７】
多くの場合、ロードされるソフトウェア画像は、2値のマルチセグメント化された画像である。たとえば、ソフトウェア画像は、コードの複数のセグメントの前にヘッダを含み得る。ソフトウェア画像が外部デバイスから(たとえば、別のプロセッサから)ターゲットデバイス(たとえば、ターゲットプロセッサ)にロードされるとき、2値のマルチセグメント化された画像がブートローダによってシステムメモリに転送され、次いで後ほどターゲットロケーションに転送される中間ステップが存在し得る。
【０００８】
ソフトウェア画像が第1の「1次」プロセッサからターゲットの「2次」プロセッサにロードされるシステムでは、そのようなローディングを実施する1つの方法は、各パケットが受信される一時バッファを割り当てることであり、各パケットは、ペイロードとともに関連パケットヘッダ情報を有する。この場合のペイロードは、実際の画像データである。一時バッファから、処理の一部をペイロードに対して実行することができ、次いでペイロードは最終的な宛先向けにコピーされる。一時バッファは、たとえば内部のランダムアクセスメモリ(RAM)またはダブルデータレート(DDR)メモリの中など、システムメモリの中のある場所である。
【０００９】
したがって、中間バッファが使用される場合、1次プロセッサから2次プロセッサにダウンロードされるデータは、中間バッファにコピーされる。このようにして、バッファを使用して、1次プロセッサから画像データの一部を受信し、バッファから、画像データが2次プロセッサのメモリ(たとえば、揮発性メモリ)に分散され得る。
【００１０】
1次プロセッサおよび2次プロセッサのためのブート画像を記憶する1次プロセッサの不揮発性メモリは、2次プロセッサが実装されるチップとは異なるチップに実装され得る。したがって、1次プロセッサの不揮発性メモリから2次プロセッサに(たとえば、2次プロセッサの揮発性メモリに)データを転送するために、パケットベースの通信が利用されることがあり、その場合、2次プロセッサに通信される各パケットにパケットヘッダが含まれる。パケットは中間バッファに記憶され、次いで、当該データをしかるべく場所(たとえば、2次プロセッサの揮発性メモリ内)に記憶するために受信パケットに何らかの処理が必要とされる。
【発明の概要】
【課題を解決するための手段】
【００１１】
1つのマルチプロセッサシステムが提供される。本システムは、システムメモリおよび実行可能ソフトウェア画像の少なくとも一部分を受信するためのハードウェアバッファを有する2次プロセッサを含む。2次プロセッサは、ハードウェアバッファからシステムメモリに実行可能ソフトウェア画像を直接ロードするための分散ローダコントローラを含む。本システムはまた、メモリに結合された1次プロセッサを含む。メモリは、2次プロセッサのための実行可能ソフトウェア画像を記憶する。本システムは、1次プロセッサと2次プロセッサとを通信可能に結合するインターフェースをさらに含み、このインターフェースを介して実行可能ソフトウェア画像が2次プロセッサによって受信される。
【００１２】
また、一方法が提供される。本方法は、2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、1次プロセッサに結合されたメモリに記憶されている2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するステップを含む。実行可能ソフトウェア画像は、画像ヘッダおよび少なくとも1つのデータセグメントを含む。本方法はまた、少なくとも1つのデータセグメントを記憶する、2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、画像ヘッダを2次プロセッサによって処理するステップを含む。本方法はまた、2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、少なくとも1つのデータセグメントを受信するステップを含む。またさらに、本方法は、2次プロセッサによって、システムメモリの中の特定された少なくとも1つのロケーションに少なくとも1つのデータセグメントを直接ロードするステップを含む。
【００１３】
1つの装置が提供される。本装置は、2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、1次プロセッサに結合されたメモリに記憶されている2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するための手段を含む。実行可能ソフトウェア画像は、画像ヘッダおよび少なくとも1つのデータセグメントを含む。本装置はまた、少なくとも1つのデータセグメントを記憶する、2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、画像ヘッダを2次プロセッサによって処理するための手段を含む。本装置は、2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、少なくとも1つのデータセグメントを受信するための手段をさらに含む。またさらに、本装置は、2次プロセッサによって、システムメモリの中の特定された少なくとも1つのロケーションに少なくとも1つのデータセグメントを直接ロードするための手段を含む。
【００１４】
1つのマルチプロセッサシステムが提供される。本システムは、第1の不揮発性メモリに結合された1次プロセッサを含む。第1の不揮発性メモリは、1次プロセッサにのみ結合され、1次プロセッサのためのファイルシステムならびに1次プロセッサおよび2次プロセッサのための実行可能画像を記憶する。本システムはまた、第2の不揮発性メモリに結合された2次プロセッサを含む。第2の不揮発性メモリは、2次プロセッサにのみ結合され、2次プロセッサのための構成パラメータおよびファイルシステムを記憶する。本システムは、1次プロセッサと2次プロセッサとを通信可能に結合するインターフェースをさらに含み、このインターフェースを介して実行可能ソフトウェア画像が2次プロセッサによって受信される。
【００１５】
1つのマルチプロセッサシステムが提供される。本システムは、第1の不揮発性メモリに結合された1次プロセッサを含む。第1の不揮発性メモリは、1次プロセッサにのみ結合され、1次および2次プロセッサのための実行可能画像およびファイルシステムを記憶する。本システムはまた、2次プロセッサを含む。本システムは、1次プロセッサと2次プロセッサとを通信可能に結合するインターフェースをさらに含み、このインターフェースを介して実行可能ソフトウェア画像が2次プロセッサによって受信される。
【００１６】
一方法が提供される。本方法は、1次プロセッサに結合されたメモリから、2次プロセッサのための実行可能ソフトウェア画像を送るステップを含む。実行可能ソフトウェア画像は、1次プロセッサと2次プロセッサとを通信可能に結合するインターフェースを介して送られる。本方法はまた、2次プロセッサにおいて、実行可能ソフトウェア画像を受信するステップを含む。本方法は、2次プロセッサおいて、実行可能ソフトウェア画像を実行するステップをさらに含む。
【００１７】
本教示をより完全に理解するために、次に添付の図面に関連して以下の説明を参照する。
【図面の簡単な説明】
【００１８】
【図１】本開示の態様が実施され得る例示的なデバイスを示す図である。
【図２】本開示の態様が実施され得る例示的なデバイスを示す図である。
【図３】本開示の一態様による、1次プロセッサから2次プロセッサに実行可能画像をロードするための例示的なローディングプロセスの動作フローを示す図である。
【図４】本開示の一態様による、分散ローディング方法を示すフローチャートである。
【図５】本開示の実施形態を有利に使用できる例示的なワイヤレス通信システムを示すブロック図である。
【発明を実施するための形態】
【００１９】
「例示的な」という言葉は、「一例、実例または例として」を意味するために本明細書で使用される。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００２０】
本明細書で開示するいくつかの態様は、1つの1次プロセッサが、システム内の1つまたは複数の他のプロセッサ(本明細書では「2次」プロセッサと呼ぶ)の実行可能画像を記憶している不揮発性メモリに接続されるマルチプロセッサシステムに関する。そのようなマルチプロセッサシステムでは、2次プロセッサの各々は、実行可能画像、実行時データ、および随意にファイルシステムミラーを記憶するために使用される専用揮発性メモリに接続され得る。
【００２１】
実行可能画像は、セグメント化されたフォーマットで記憶されることが多く、この場合、各セグメントは異なるメモリ領域にロードされ得る。実行可能セグメントのターゲットメモリロケーションは、互いに隣接していることも、隣接していないこともある。マルチセグメント化された画像フォーマットの一例は、Executable and Linking Format(ELF)であり、これにより実行可能画像を複数のセグメントに分けることができ、これらのセグメントの各々は、異なるシステムメモリロケーションにロードされ得る。
【００２２】
1つの例示的な態様では、1次プロセッサの不揮発性メモリから2次プロセッサの揮発性メモリに、セグメント化された画像をロードするための直接分散ロード技法が開示される。以下でさらに説明するように、直接分散ロード技法は、一時バッファの使用を回避する。たとえば、一態様では、各々がそれぞれのヘッダを含むパケットを介して画像が通信されるパケットベースの通信を用いるのではなく、1次プロセッサから2次プロセッサに生画像データがロードされる。別の態様では、データのターゲットロケーション情報を特定するために使用される情報を含むヘッダが使用される。
【００２３】
ファイルシステムのための集中型不揮発性メモリを有し、縮小された局在化不揮発性メモリを有する例示的なマルチプロセッサアーキテクチャ
図1は、1次プロセッサ(アプリケーションプロセッサ104)が1次(大型)不揮発性メモリ106(たとえば、NAND型フラッシュメモリ)のホストとして働き、2次プロセッサ(たとえば、モデムプロセッサ110)が2次(縮小または最小)不揮発性メモリ114(たとえば、NOR型フラッシュメモリ)を有する、第1のマルチプロセッサアーキテクチャ102のブロック図を示している。
【００２４】
通信デバイスアーキテクチャ102では、アプリケーションプロセッサ104が1次不揮発性メモリ106およびアプリケーションプロセッサ揮発性メモリ108(たとえば、ランダムアクセスメモリ)に結合される。モデムプロセッサ110は、2次不揮発性メモリ114およびモデムプロセッサ揮発性メモリ112に結合される。プロセッサ間通信バス134は、アプリケーションプロセッサ104とモデムプロセッサ110との間の通信を可能にする。
【００２５】
モデムプロセッサ110のためのモデム実行可能画像120はアプリケーションプロセッサ(AP)不揮発性メモリ106の中に、AP実行可能画像118およびAPファイルシステム116とともに記憶され得る。アプリケーションプロセッサ104は、AP実行可能画像118をアプリケーションプロセッサ揮発性メモリ108にロードし、それをAP実行可能画像122として記憶することができる。アプリケーションプロセッサ揮発性メモリ108は、AP実行時データ124を記憶する役目を果たすこともできる。
【００２６】
モデムプロセッサ110は、ファイルシステム128を記憶する専用2次(縮小または最小)不揮発性メモリ114(たとえば、NOR型フラッシュ)を有する。この2次(縮小または最小)不揮発性メモリ114は、実行時モデム実行可能画像120とファイルシステム128の両方を記憶することが可能なフラッシュデバイスよりも小さく、コストが低い。
【００２７】
システムの電源投入時に、モデムプロセッサ110は、ハードウェアブートROM126(小型読取り専用オンチップメモリ)から1次ブートローダ(PBL)を実行する。モデムPBLは、アプリケーションプロセッサ104からモデム実行可能画像120をダウンロードするように適合可能である。すなわち、(1次不揮発性メモリ106に当初記憶されている)モデム実行可能画像120が、モデムプロセッサ110によってアプリケーションプロセッサ104に対し要求される。アプリケーションプロセッサ104は、モデム実行可能画像120を取り出し、それをプロセッサ間通信バス134(たとえば、チップ間通信バス)を介してモデムプロセッサ110に提供する。モデムプロセッサ110は、モデム実行可能画像132を、モデムプロセッサRAM(ランダムアクセスメモリ)112内の一時バッファにデータをコピーすることなく、最終的な宛先であるモデムプロセッサRAM112に直接記憶する。プロセッサ間通信バス134は、たとえば、HSICバス(USBベースの高速インターチップ)、HSIバス(MIPI高速同期インターフェース)、SDIOバス(セキュアデジタルI/Oインターフェース)、UARTバス(汎用非同期受信機/送信機)、SPIバス(シリアルペリフェラルインターフェース)、I2Cバス(インター集積回路)、またはモデムプロセッサ110とアプリケーションプロセッサ104の両方で利用できるチップ間通信にふさわしい任意の他のハードウェアインターフェースであり得る。
【００２８】
モデム実行可能画像120は、モデムプロセッサRAM112にダウンロードされ、認証されると、モデム実行可能画像132として維持される。さらに、モデムプロセッサ揮発性メモリ112は、モデム実行時データ130を記憶することもできる。次いでモデムブートROMコード126が、そのモデム実行可能画像132にジャンプし、モデムプロセッサRAM112から主要モデムプログラムの実行を開始することができる。持続的(不揮発性)データ、たとえば無線周波数(RF)キャリブレーションおよびシステムパラメータを、モデムプロセッサ110に取り付けられた2次(縮小または最小)不揮発性メモリ114を使用してモデムファイルシステム128に記憶できる。
【００２９】
ファイルシステムのための集中型不揮発性メモリを有し、局在化不揮発性メモリを有さない例示的なマルチプロセッサアーキテクチャ
図2は、1次プロセッサ(アプリケーションプロセッサ204)が1次(大型)不揮発性メモリ206(たとえば、NAND型フラッシュメモリ)のホストとして働く、第2のマルチプロセッサアーキテクチャ202のブロック図を示している。1次不揮発性メモリ206は、2次プロセッサ(モデムプロセッサ210)のためのモデム実行可能画像214および/またはモデムファイルシステム220を記憶することができる。2次プロセッサ(モデムプロセッサ210)は、モデム実行可能画像214および/またはモデムファイルシステム220を1次プロセッサ204に対し要求するように構成され得る。次いで1次プロセッサ204は、要求されたモデム実行可能画像214および/またはモデムファイルシステム220を不揮発性メモリ206から取り出し、それをプロセッサ間通信バス234を介して2次プロセッサ210に提供する。
【００３０】
このアーキテクチャ202では、アプリケーションプロセッサ204が不揮発性メモリ206およびアプリケーションプロセッサ揮発性メモリ208(たとえば、ランダムアクセスメモリ)に結合される。モデムプロセッサ210は、モデムプロセッサ揮発性メモリ212に結合されるが、自身の不揮発性メモリを有さない。モデムプロセッサ揮発性メモリ212は、ファイルシステムミラー228、モデム実行可能画像236およびモデム実行時データ230を記憶する。プロセッサ間通信バス234は、アプリケーションプロセッサ204とモデムプロセッサ210との間の通信を可能にする。
【００３１】
モデムプロセッサ210のためのすべての実行可能画像214およびファイルシステム220は不揮発性メモリ206の中に、AP実行可能画像218およびAPファイルシステム216とともに記憶され得る。アプリケーションプロセッサ204は、AP実行可能画像218をアプリケーションプロセッサ揮発性メモリ208にロードし、それをAP実行可能画像222として記憶することができる。アプリケーションプロセッサ揮発性メモリ208は、AP実行時データ224を記憶する役目を果たすこともできる。モデムファイルシステムは、プライバシー保護および加入者識別情報のコピー防止のために、モデムプロセッサの秘密鍵で暗号化され得る。
【００３２】
システムの電源投入時に、モデムブートROMコード226は、モデム実行可能画像214とモデムファイルシステム220の両方をアプリケーションプロセッサ204からモデムプロセッサ揮発性メモリ212にダウンロードする。正常動作中には、モデムファイルシステム228への任意の読取りアクセスは、モデムプロセッサ揮発性メモリ212により処理される。いかなる書込みアクセスも、モデムプロセッサ揮発性メモリ212で実施される。さらに、不揮発性メモリ206に記憶されているモデムファイルシステム220とモデムプロセッサ揮発性メモリ212内のファイルシステム228のコンテンツを同期させるためにモデムプロセッサ210およびアプリケーションプロセッサ204で作動するバックグラウンドプロセスが存在し得る。
【００３３】
1次プロセッサおよび2次プロセッサは、2次プロセッサのための揮発性メモリ内のファイルシステムを、1次不揮発性メモリ内の対応するファイルシステムと周期的に同期させることができる。モデムファイルシステム228への最初の書込みによって、モデムプロセッサ210でタイマー(たとえば、10分のタイマー)が開始し得る。このタイマーが作動している間、ファイルシステム228へのすべての書込みがモデムプロセッサ揮発性メモリ212に一本化される(coalesced)。タイマーの終了時に、モデムプロセッサ210はファイルシステム画像228を揮発性メモリ212からコピーし、それを暗号化し、アプリケーションプロセッサ204に対し、新たなデータが入手できることを警告する。アプリケーションプロセッサ204は、暗号化されたコピーを読み取り、それを不揮発性メモリ206のモデムファイルシステム220に書き込む。次いでアプリケーションプロセッサ204はモデムプロセッサ210に対し、書込み動作が完了したことを知らせる。同期化動作が失敗した場合、モデムファイルシステムの現在のバージョンを使用することができる。同期化は、周期的に(たとえば、90秒ごとに)、またはモデムによるファイルシステムへの書込み動作から一定の時間が経過した後に、生じ得る。突然の電力消失などの事態による悪影響(corruption)を防ぐために、モデムファイルシステム220の2つのコピーを記憶することができる。
【００３４】
モデムプロセッサ210は、アプリケーションプロセッサの不揮発性メモリ206に対するファイルシステムミラー228の「フラッシュ」動作を開始することもできる。これは、電話の電源切断、ならびに入来SMSメッセージの受け取りおよび記憶を示すためにネットワークに確認メッセージを送ることを含む、いくつかの理由で生じ得る。
【００３５】
モデムプロセッサ210でのファイルシステム読取り動作は、モデムプロセッサ揮発性メモリ212によって行われ、これはモデムファイルシステムの現在の状態を反映する。読取り動作は書込み動作よりも頻度が高く、書込み動作は活動の「突発的現象(bursts)」で生じる傾向があるので、全体的なシステムロードおよび電力消費は低減し得る。
【００３６】
アプリケーションプロセッサ204、モデムプロセッサ210およびブートローダは、常に不揮発性メモリ206に利用できる少なくとも1つの完全なファイルシステム画像が所定の場所にあることを確実にするための具体的措置を講じている。これにより、電力喪失または突然のリセットシナリオの影響を受けずに済む。
【００３７】
本明細書で開示するコンセプトの適用は、上で示した例示的なシステムに限定されず、様々な他のマルチプロセッサシステムにも同様に用いることができる。
【００３８】
ゼロコピー移送フロー
本開示の態様は、1次プロセッサの不揮発性メモリから2次プロセッサの揮発性メモリに実行可能ソフトウェア画像を効率的にロードするための技法を提供する。上述のように、従来型のローディングプロセスでは、(たとえば、ブートローダによって)2値のマルチセグメント化された画像がバッファリングされ(たとえば、システムメモリに転送され)、次いでターゲットロケーションに分散される中間ステップが必要である。本開示の態様は、従来型のローディングプロセスで必要なバッファリングの中間ステップを軽減する技法を提供する。したがって、本開示の態様は、追加のメモリコピー動作を回避し、それによりパフォーマンスが改善する(たとえば、マルチプロセッサシステムで2次プロセッサをブートするのに必要な時間が減少する)。
【００３９】
以下でさらに説明するように、本開示の1つの例示的な態様は、1次プロセッサの不揮発性メモリから2次プロセッサの揮発性メモリに実行可能ソフトウェア画像をロードするための直接分散ロード技法を用いる。本開示のいくつかの態様はさらに、以下でさらに説明するように、認証のような転送後のデータ処理と同時の画像転送を可能にし、効率性をさらに高めることができる。
【００４０】
一態様では、ホストの1次プロセッサは、実際の画像データからのいかなる情報の処理や取り出しも行わず、パケットにいかなるパケットヘッダも添付せずに、画像データを「生」データとしてターゲットに送るだけである。ターゲットの2次プロセッサは、データ転送要求を開始するので、どれだけのデータを受信するかを正確に把握している。これにより、ホストはパケットヘッダなしでデータを送ることができ、ターゲットはデータを直接受信して記憶することができる。この態様では、ターゲットは必要に応じてホストに対しデータを要求する。ターゲットが要求する第1のデータ項目は、所与の画像転送用の画像ヘッダである。ターゲットは、画像ヘッダを処理することで、画像内の各データセグメントのロケーションおよびサイズを把握する。画像ヘッダはまた、ターゲットメモリ内の画像の宛先アドレスを指定する。この情報により、ターゲットは各データセグメントについてホストに対しデータを要求することができ、ターゲットメモリ内の適切なロケーションにデータを直接転送することができる。アプリケーションプロセッサにおけるチップ間通信バスのためのハードウェアコントローラは、自身の低レベルプロトコルヘッダを追加することができ、これはモデムプロセッサによって処理され、剥ぎ取られる。これらの低レベルヘッダは、両方のプロセッサで作動するソフトウェアには透過的であり得る。
【００４１】
本開示の一態様では、図3に示す例示的なフローで示されているように、ローディングプロセスは2つの段階に分けられる。図3は、1次プロセッサ301(図1または図2の、不揮発性メモリ106または206を有するアプリケーションプロセッサ104または204であり得る)および2次プロセッサ302(図1または図2の、揮発性メモリ112または212を有するモデムプロセッサ110または210であり得る)のブロック図を示している。図3では、2次プロセッサ302のための例示的なソフトウェア画像が、1次プロセッサ301の不揮発性メモリに記憶されている。この例で示すように、例示的なソフトウェア画像303は、画像ヘッダ部分および複数のデータセグメント(この例ではデータセグメント1〜5として示している)を含むマルチセグメント画像である。1次プロセッサ301および2次プロセッサ302は、異なる物理シリコンチップに(すなわち、異なるチップパッケージに)位置することも、同じパッケージに位置することもある。
【００４２】
図3の例示的なローディングプロセスの第1の段階では、画像ヘッダ情報が2次プロセッサ302に転送される。1次プロセッサ301は、1次プロセッサの不揮発性メモリ306から、画像ヘッダで始まるデータ画像セグメントを取り出す。1次プロセッサ301は画像ヘッダを解析して、1次プロセッサの不揮発性メモリ306から1次プロセッサのシステムメモリ307に個々の画像セグメントをロードする。画像ヘッダは、2次プロセッサのシステムメモリ305のどこにモデム画像実行可能データを最終的に入れるかを特定するために使用される情報を含む。ヘッダ情報は2次プロセッサ302によって使用されて、分散ローダ/直接メモリアクセスコントローラ304が、実際の実行可能データを受信したときにアドレスを受信するようにプログラミングされる。次いでデータセグメントは、システムメモリ307から1次ハードウェア移送機構308に送られる。次いでセグメントは、チップ間通信バス310(たとえば、HS-USBケーブル)を介して、1次プロセッサ301のハードウェア移送機構308から2次プロセッサ302のハードウェア移送機構309に送られる。転送される第1のセグメントは画像ヘッダであってよく、これは、2次プロセッサのシステムメモリ305内のターゲットロケーションにデータセグメントを位置付けるために2次プロセッサによって使用される情報を含む。画像ヘッダは、データのターゲットロケーション情報を特定するために使用される情報を含むことができる。
【００４３】
一態様では、ターゲットロケーションは事前に特定されているわけではなく、分散ローディングプロセスの一環として2次プロセッサでソフトウェアを実行することによって特定される。画像ヘッダからの情報を使用して、ターゲットロケーションを特定することができる。この態様では、2次プロセッサのブートローダが最初に、1次プロセッサに対し画像ヘッダを要求する(1次プロセッサのCPUは、画像ヘッダをまったく処理しない)。2次プロセッサは、画像ヘッダを見ることによって、不揮発性メモリ内でデータセグメントがどのように配置されているかを把握する(RAMのアドレス/サイズのほかに、ヘッダは、各セグメントについての画像ファイルの開始点に関係する不揮発性メモリ内の相対ロケーションも含む)。その後のデータセグメント要求は、2次プロセッサによって行われる。
【００４４】
別の態様では、画像ヘッダを解析し、次いで、画像ヘッダで示される指定されたアドレスに後続データセグメントを配置するように2次プロセッサのコントローラをプログラミングすることによって、1次プロセッサは、2次プロセッサの揮発性メモリ内のどこにセグメントを置くかを示すことができる。これは、2次プロセッサのコントローラをこのように外部から制御することを可能にする追加のハードウェアを伴うことがある。
【００４５】
画像ヘッダは一般に、2次プロセッサのシステムメモリ305内のどこにセグメントの各々をロードすべきかを定めた、セグメント開始アドレスおよびサイズのリストを含む。2次プロセッサ302は、分散ローダコントローラ304を含むハードウェア移送機構309(たとえば、USBコントローラ)を含む。ローディングプロセスの第2の段階では、ブートローダがチップ間接続コントローラのエンジンをプログラミングして、入来データを受信し、第1の段階で受信されたヘッダ情報に従い、それを2次プロセッサの対応するターゲットメモリ領域305に分散ロードするようにする。
【００４６】
USBまたはHSICバスの場合、画像の各セグメントは、チップ間通信バス310における単一のUSB転送として転送され得る。セグメントのサイズおよび宛先アドレスを把握することにより、ソフトウェアは、2次プロセッサ302によるソフトウェア干渉を最小限に抑えて、(システムメモリ305内の)ターゲットメモリロケーションにセグメント全体を直接転送するように、2次プロセッサ302の分散ローダコントローラ304をプログラミングすることができる。その結果、セグメントが著しく大きい(たとえば、1メガバイト(MB)を超える)ときのUSB/HSICバスのパフォーマンスが向上し得る。
【００４７】
図3に示すように、画像セグメントは、2次プロセッサのシステムメモリ305内の連続的ロケーションに配置されるとは限らない。代わりに、セグメントはメモリの様々なロケーションに分散され得る。図3の例示的なローディングプロセスにより、2次プロセッサのソフトウェアのコピー(すなわち、画像303)を、1次プロセッサ301から2次プロセッサのシステムメモリ305におけるセグメントの最終的な宛先に直接送ることができる。
【００４８】
1次プロセッサ301から2次プロセッサ302の分散ローダコントローラ304に画像ヘッダがロードされる。画像ヘッダは、システムメモリ305内のどこにデータセグメントを位置付けるかに関する情報を提供する。分散ローダコントローラ304は、それに応じて、画像セグメントを2次プロセッサのシステムメモリ305におけるそれぞれのターゲットロケーションに直接転送する。すなわち、2次プロセッサのCPUがメモリ305内の画像ヘッダを処理し、分散ローダコントローラ304をプログラミングすると、分散ローダコントローラ304は、2次プロセッサのシステムメモリ305内のどこに画像セグメントを入れる必要があるかを正確に把握し、そのため、次いでハードウェア分散ローダコントローラ304はそれに応じて、データセグメントをターゲットの宛先に直接転送するようにプログラミングされる。図3の例では、分散ロードコントローラ304は、画像セグメントを受信し、それらをシステムメモリ305内の様々なロケーションに分散する。一態様では、実行可能ソフトウェア画像全体を2次プロセッサのハードウェアバッファに記憶することなく、実行可能ソフトウェア画像が2次プロセッサのシステムメモリにロードされる。
【００４９】
したがって、上記の態様では2次プロセッサ内で追加のメモリコピー動作は発生しない。そのため、画像全体のために一時バッファを用いる従来型の技法、およびパケットヘッダ処理などは、より効率的な直接ローディングプロセスを優先して回避される。よって、図3の例示的なロードプロセスは、1次プロセッサから2次プロセッサにソフトウェア画像をロードするのに従来必要であった中間バッファ動作を必要としない。画像全体を保有する一時バッファから分散ロードする代わりに、図3の例示的なロードプロセスでは、それぞれのターゲットの宛先向けの画像セグメントを、ハードウェアからシステムメモリに直接分散ロードすることができる。画像ヘッダが処理されると、実行可能画像は、CPUのさらなる関与を回避して、ターゲットメモリに直接分散ロードされる。
【００５０】
従来、外部インターフェースが関与するとき(たとえば、1次プロセッサから2次プロセッサに画像データを通信する際に使用される場合)、両方のプロセッサが実際のデータの内容およびデータの読取り方法を把握できるように当該データを移送するための何らかの機構が必要とされている。多くの場合、外部インターフェースを介して転送されるデータはパケット化され、各パケットは、パケット内に含まれるデータを記述したヘッダを含む。たとえば、ネットワークを介してデータが転送されている伝送制御プロトコル/インターネットプロトコル(TCP/IP)システムでは、パケットヘッダの処理に関連するオーバーヘッドが生じる。
【００５１】
(たとえば、図3の例のような)本発明のいくつかの態様によれば、生画像データが移送される。たとえば、パケットヘッダを有する画像データの各セグメントを移送するのではなく、図3の例示的なロードプロセスは、画像全体に関連するヘッダからデータに関して必要な情報を特定する。よって、画像ヘッダを最初に転送することができ、(画像ヘッダに基づき)セグメントの転送の前に、システムメモリ305にデータを記憶する方法を特定するためのすべての処理が生じることが可能で、次いで生データとしてセグメントが転送され、セグメントが転送されるので各セグメントのパケットヘッダの処理を必要としない。したがって、図3の例では、生画像データが1次プロセッサから2次プロセッサに通信されており、次いでハードウェアによって処理され、いかなるUSBパケットヘッダなどもなくすことができる。この例示的な態様では、実際のデータセグメントに対してCPU処理は行われず、その結果、ロードプロセスの効率性が向上する。
【００５２】
同じ2次プロセッサの揮発性メモリに複数の画像をロードしなければならないとき、本開示の一態様により、図3の上記手順は、転送される画像の回数だけ繰り返してよい。いくつかの態様では、1次プロセッサ301内において、不揮発性メモリからシステムメモリへの転送は、1次プロセッサから2次プロセッサにデータを送るのと並行して生じ得る。
【００５３】
一態様では、各セグメントの転送が完了すると、2次プロセッサ302は、次のセグメントを転送するように分散ローダコントローラ304をプログラミングし、転送されたばかりのセグメントの認証を開始する。これにより、分散ローダコントローラ304は、2次プロセッサ302が認証を実行している間にデータを転送することができる。本明細書での認証は一般に、受信データの完全性および信頼性をチェックすることを指す。認証メカニズムの詳細は、本開示の範囲外であり、所与の実装形態で望まれ得る任意の適切な認証メカニズム(当技術分野でよく知られているものを含む)を用いることができる。上記の並行処理は、所与の実装形態で2次プロセッサ302によって実行されることが望まれ得る、他の転送後の処理に適用することもできる。
【００５４】
最後の画像の最後のセグメントが転送され認証されるとすぐに、2次プロセッサ302は、ブートプロセスを続行し、転送画像を実行することができる。
【００５５】
一態様では、モデム(2次)プロセッサ110は、埋込み型ブート読取り専用メモリ(ROM)からブートローダを実行する。そのような態様では、ハードウェアからブートROMを実行することで、モデム側におけるフラッシュメモリまたはデバイスの必要性を排除する。ROMコードは、シリコン自体によって実行され得る。
【００５６】
図4は、本開示の一態様による、分散ローディング方法を示すフローチャートである。ブロック402に示すように、2次プロセッサは、チップ間通信バスを介して1次プロセッサから、1次プロセッサに結合されたメモリに記憶されている2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信し、この実行可能ソフトウェア画像は、画像ヘッダおよび少なくとも1つのデータセグメントを備える。ブロック404に示すように、少なくとも1つのデータセグメントを記憶する、2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、2次プロセッサは画像ヘッダを処理する。ブロック406に示すように、2次プロセッサは、チップ間通信バスを介して1次プロセッサから、少なくとも1つのデータセグメントを受信する。ブロック408に示すように、2次プロセッサは、システムメモリの中の特定された少なくとも1つのロケーションに、少なくとも1つのデータセグメントを直接ロードする。
【００５７】
一態様では、1つの装置は、実行可能画像を受信するための手段と、画像ヘッダを処理するための手段と、データセグメントを受信するための手段と、データセグメントをロードするための手段とを含む。これらの手段は、1次プロセッサ301、2次プロセッサ302、チップ間通信バス310、メモリ305もしくは307、不揮発性メモリ306、コントローラ304、またはハードウェア移送機構308もしくは309を含むことができる。別の態様では、上記手段は上記手段によって列挙される機能を実行するように構成されたモジュールまたは任意の装置であり得る。
【００５８】
上記に鑑みて、2次プロセッサに接続された不揮発性メモリからソフトウェア画像を直接ロードする代わりに、HS-USBまたは高速相互接続機能のような相互接続結合によって1次プロセッサから2次プロセッサのソフトウェア画像をロードすることができる。2次プロセッサは、不揮発性メモリに直接接続されなくてもよい。したがって、本開示の態様は、2次プロセッサ向け画像が1次プロセッサから転送されるマルチプロセッサシステムにおいて、2次プロセッサをブートするのに要する時間を短縮することができる。この短縮は、追加のメモリコピー動作を回避し、認証などのバックグラウンドデータ処理と同時の画像転送を可能にすることによって達成される。
【００５９】
図5は、本開示の実施形態を有利に使用できる例示的なワイヤレス通信システム500を示すブロック図である。例示のために、図5は、3つの遠隔ユニット520、530および550ならびに2つの基地局540を示している。ワイヤレス通信システムがこれよりも多くの遠隔ユニットおよび基地局を有してもよいことが認識されよう。遠隔ユニット520、530および550は、ICデバイス525A、525Cおよび525Bを含み、これらは開示済みのMRAMを含む。基地局、スイッチングデバイスおよびネットワーク機器など、他のデバイスも開示済みMRAMを含み得ることが認識されよう。図5は、基地局540から遠隔ユニット520、530および550への順方向リンク信号580、ならびに遠隔ユニット520、530および550から基地局540への逆方向リンク信号590を示す。
【００６０】
図5では、遠隔ユニット520は携帯電話として示され、遠隔ユニット530はポータブルコンピュータとして示され、遠隔ユニット550はワイヤレスローカルループシステム内の固定ロケーション遠隔ユニットとして示されている。たとえば、遠隔ユニットは、携帯電話、ハンドヘルドパーソナル通信システム(PCS)ユニット、個人情報端末のようなポータブルデータユニット、GPS対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メータ読取り機器のような固定ロケーションデータユニット、またはデータもしくはコンピュータ命令の記憶もしくは取り出しを行う任意の他のデバイス、またはそれらの任意の組合せであってよい。図5は、本開示の教示に従った遠隔ユニットを示すが、本開示は、これらの例示的な示されたユニットには限定されない。本開示の実施形態は、MRAMを含む任意のデバイスにおいて適切に使用されてもよい。
【００６１】
ファームウェアおよび/またはソフトウェア実装形態の場合、これらの方法は、本明細書で説明する機能を実行するモジュール(たとえば、プロシージャ、関数など)によって実現されてもよい。本明細書で説明する方法を実現する際に命令を具体的に実施する任意の機械可読媒体を使用してもよい。たとえば、ソフトウェアコードはメモリに記憶され、プロセッサユニットにより実行されてもよい。メモリは、プロセッサユニット内で実現されてもあるいはプロセッサユニットの外部で実現されてもよい。本明細書では、「メモリ」という用語は、長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、または他のメモリのいずれかの種類を指し、メモリのいかなる特定の種類またはメモリの数、あるいはメモリが記憶される媒体の種類に限定されない。
【００６２】
ファームウェアおよび/またはソフトウェアにおいて実現する場合、機能はコンピュータ可読媒体上に1つまたは複数の命令あるいはコードとして記憶してもよい。この例には、データ構造によって符号化されたコンピュータ可読媒体およびコンピュータプログラムによって符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体であってもよい。限定ではなく、一例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、あるいは所望のプログラムコードを命令またはデータ構造の形で記憶するのに使用することができ、かつコンピュータからアクセスすることのできる任意の他の媒体を含んでよく、本明細書で使用する場合、ディスク(diskおよびdisc)には、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピィディスク、およびブルーレイディスクが含まれ、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)はデータをレーザによって光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含めるべきである。
【００６３】
命令および/またはデータは、コンピュータ可読媒体上に記憶されるだけでなく、通信装置に含まれる伝送媒体上の信号として提供されてもよい。たとえば、通信装置には、命令およびデータを示す信号を有するトランシーバを含めてもよい。命令およびデータは、1つまたは複数のプロセッサに特許請求の範囲において概説する機能を実施させるように構成される。
【００６４】
特定の回路について説明したが、当業者には、本開示を実施するうえで開示された回路のすべてが必要とされるわけではないことが理解されよう。さらに、本開示に対する注目を維持するためにある公知の回路については説明していない。
【００６５】
本開示およびその利点について詳しく説明したが、添付の特許請求の範囲によって規定される本開示の技術から逸脱することなく、本明細書において様々な変更、代用および改変を施せることを理解されたい。たとえば、「上」および「下」などの関係語が、基板または電子デバイスに関して使用される。もちろん、基板または電子デバイスが逆転した場合には、上は下に、下は上になる。さらに、横向き、上および下は、基板または電子デバイスの側面を指すことがある。さらに、本出願の範囲は、本明細書において説明したプロセス、機械、製造、物質組成、手段、方法、およびステップの特定の実施形態に限定されるものではない。当業者には本開示から容易に理解されるように、本明細書で説明した対応する実施形態と実質的に同じ機能を実行するかあるいは実質的に同じ結果を実現する、現存するかあるいは後に開発されるプロセス、機械、製造、物質組成、手段、方法、またはステップを本開示に従って利用してもよい。したがって、添付の特許請求の範囲は、そのようなプロセス、機械、製造、物質組成、手段、方法、またはステップを範囲内に含むものである。
【符号の説明】
【００６６】
102  第1のマルチプロセッサアーキテクチャ
104  アプリケーションプロセッサ
106  1次(大型)不揮発性メモリ、アプリケーションプロセッサ(AP)不揮発性メモリ
108  アプリケーションプロセッサ揮発性メモリ
110  モデムプロセッサ
112  モデムプロセッサ揮発性メモリ、モデムプロセッサRAM(ランダムアクセスメモリ)
114  2次(縮小または最小)不揮発性メモリ
116  APファイルシステム
118  AP実行可能画像
120  モデム実行可能画像、実行時モデム実行可能画像、モデム実行可能データ
122  AP実行可能画像
124  AP実行時データ
126  ハードウェアブートROM、モデムブートROMコード
128  ファイルシステム、モデムファイルシステム
130  モデム実行時データ
132  モデム実行可能画像
134  プロセッサ間通信バス
202  第2のマルチプロセッサアーキテクチャ
204  アプリケーションプロセッサ、1次プロセッサ
206  1次(大型)不揮発性メモリ
208  アプリケーションプロセッサ揮発性メモリ
210  モデムプロセッサ
212  モデムプロセッサ揮発性メモリ
214  モデム実行可能画像
216  APファイルシステム
218  AP実行可能画像
220  モデムファイルシステム
222  AP実行可能画像
224  AP実行時データ
226  モデムブートROMコード
228  ファイルシステムミラー、モデムファイルシステム、ファイルシステム画像
230  モデム実行時データ
234  プロセッサ間通信バス
236  モデム実行可能画像
【図１】
2013522803.tif 000003
【図２】
2013522803.tif 000004
【図３】
2013522803.tif 000005
【図４】
2013522803.tif 000006
【図５】
2013522803.tif 000007
【手続補正書】
【提出日】平成24年9月21日(2012.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
システムメモリおよび実行可能ソフトウェア画像の少なくとも一部分を受信するためのハードウェアバッファを備え、前記ハードウェアバッファから前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするための分散ローダコントローラを備える2次プロセッサと、
メモリに結合された1次プロセッサであって、前記メモリは、前記2次プロセッサのための前記実行可能ソフトウェア画像を記憶する、1次プロセッサと、
前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して前記実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
【請求項２】
前記分散ローダコントローラは、前記2次プロセッサにおいてシステムメモリロケーション間でデータをコピーすることなく、前記ハードバッファから前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするように構成される、請求項1に記載のマルチプロセッサシステム。
【請求項３】
前記実行可能ソフトウェア画像の生画像データが、前記インターフェースを介して前記2次プロセッサによって受信される、請求項1に記載のマルチプロセッサシステム。
【請求項４】
前記実行可能ソフトウェア画像は、画像ヘッダおよび少なくとも1つのデータセグメントを備える、請求項1に記載のマルチプロセッサシステム。
【請求項５】
前記2次プロセッサは、前記画像ヘッダを受信し、前記少なくとも1つのデータセグメントを記憶する前記システムメモリ内の少なくとも1つのロケーションを特定するために前記画像ヘッダを処理するように構成される、請求項4に記載のマルチプロセッサシステム。
【請求項６】
前記2次プロセッサは、前記少なくとも1つのデータセグメントを受信する前に、前記少なくとも1つのデータセグメントを記憶する前記システムメモリ内の前記少なくとも1つのロケーションを、前記受信された画像ヘッダに基づいて特定するように構成される、請求項5に記載のマルチプロセッサシステム。
【請求項７】
前記2次プロセッサは、前記2次プロセッサのための前記実行可能ソフトウェア画像の転送を開始するブートローダを記憶している不揮発性メモリをさらに備える、請求項1に記載のマルチプロセッサシステム。
【請求項８】
前記1次および2次プロセッサは異なるチップに位置する、請求項1に記載のマルチプロセッサシステム。
【請求項９】
実行可能ソフトウェア画像全体が前記ハードウェアバッファに記憶されることなく、前記実行可能ソフトウェア画像の前記部分が前記2次プロセッサの前記システムメモリにロードされる、請求項1に記載のマルチプロセッサシステム。
【請求項１０】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項1に記載のマルチプロセッサシステム。
【請求項１１】
2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するステップであって、前記実行可能ソフトウェア画像は、前記画像ヘッダおよび少なくとも1つのデータセグメントを備える、ステップと、
前記少なくとも1つのデータセグメントを記憶する、前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、前記画像ヘッダを前記2次プロセッサによって処理するステップと、
前記2次プロセッサにおいて、前記チップ間通信バスを介して前記1次プロセッサから、前記少なくとも1つのデータセグメントを受信するステップと、
前記2次プロセッサによって、前記システムメモリの中の前記特定された少なくとも1つのロケーションに前記少なくとも1つのデータセグメントを直接ロードするステップと
を含む方法。
【請求項１２】
前記実行可能ソフトウェア画像を使用して前記2次プロセッサをブートするステップをさらに含む、請求項11に記載の方法。
【請求項１３】
システムメモリロケーション間でデータをコピーすることなく、ハードウェアバッファから前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするステップをさらに含む、請求項11に記載の方法。
【請求項１４】
前記処理するステップは、前記ロードするステップの前に生じる、請求項11に記載の方法。
【請求項１５】
前記1次および2次プロセッサは異なるチップに位置する、請求項11に記載の方法。
【請求項１６】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つにおいて、前記受信するステップ、前記処理するステップおよび前記ロードするステップを実施するステップをさらに含む、請求項11に記載の方法。
【請求項１７】
2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するための手段であって、前記実行可能ソフトウェア画像は、前記画像ヘッダおよび少なくとも1つのデータセグメントを備える、手段と、
前記少なくとも1つのデータセグメントを記憶する、前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、前記画像ヘッダを前記2次プロセッサによって処理するための手段と、
前記2次プロセッサにおいて、前記チップ間通信バスを介して前記1次プロセッサから、前記少なくとも1つのデータセグメントを受信するための手段と、
前記2次プロセッサによって、前記システムメモリの中の前記特定された少なくとも1つのロケーションに前記少なくとも1つのデータセグメントを直接ロードするための手段と
を含む装置。
【請求項１８】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項17に記載の装置。
【請求項１９】
第1の不揮発性メモリに結合された1次プロセッサであって、前記第1の不揮発性メモリは前記1次プロセッサに結合され、前記1次プロセッサのためのファイルシステムならびに前記1次プロセッサおよび2次プロセッサのための実行可能画像を記憶する、1次プロセッサと、
第2の不揮発性メモリに結合された2次プロセッサであって、前記第2の不揮発性メモリは前記2次プロセッサに結合され、前記2次プロセッサのための構成パラメータおよびファイルシステムを記憶する、2次プロセッサと、
前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して実行可能ソフトウェア画像が、前記2次プロセッサのシステムメモリに前記実行可能ソフトウェア画像を直接ロードするための分散ローダコントローラによって、前記2次プロセッサによって受信されるマルチプロセッサシステム。
【請求項２０】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項19に記載のマルチプロセッサシステム。
【請求項２１】
第1の不揮発性メモリに結合された1次プロセッサであって、前記第1の不揮発性メモリは前記1次プロセッサに結合され、前記1次プロセッサおよび2次プロセッサのための実行可能画像およびファイルシステムを記憶する、1次プロセッサと、
前記第1の不揮発性メモリに直接結合されていない2次プロセッサと、
前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して実行可能ソフトウェア画像が、前記2次プロセッサのシステムメモリに前記実行可能ソフトウェア画像を直接ロードするための分散ローダコントローラによって、前記2次プロセッサによって受信されるマルチプロセッサシステム。
【請求項２２】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項21に記載のマルチプロセッサシステム。
【請求項２３】
1次プロセッサに結合されたメモリから、2次プロセッサのための実行可能ソフトウェア画像を、前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースを介して送るステップと、
前記2次プロセッサにおいて、前記実行可能ソフトウェア画像を受信するステップと、
分散ローダコントローラによって、前記2次プロセッサにおいて、前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするステップと、
前記2次プロセッサにおいて、前記実行可能ソフトウェア画像を実行するステップと
を含む方法。
【請求項２４】
携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つにおいて、前記送るステップ、前記受信するステップおよび前記実行するステップを実施するステップをさらに含む、請求項23に記載の方法。
【国際調査報告】
2013522803.tif 000008
2013522803.tif 000009