JP2013522803A - マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェア画像の直接分散ローディング - Google Patents

マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェア画像の直接分散ローディング Download PDF

Info

Publication number
JP2013522803A
JP2013522803A JP2013501416A JP2013501416A JP2013522803A JP 2013522803 A JP2013522803 A JP 2013522803A JP 2013501416 A JP2013501416 A JP 2013501416A JP 2013501416 A JP2013501416 A JP 2013501416A JP 2013522803 A JP2013522803 A JP 2013522803A
Authority
JP
Japan
Prior art keywords
processor
image
secondary processor
memory
executable software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013501416A
Other languages
English (en)
Other versions
JP2013522803A5 (ja
Inventor
ニティン・グプタ
ダニエル・エイチ・キム
イゴール・マラマント
スティーヴ・ヘーニヘン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=43926387&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2013522803(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2013522803A publication Critical patent/JP2013522803A/ja
Publication of JP2013522803A5 publication Critical patent/JP2013522803A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Abstract

マルチプロセッサシステムにおいて、画像ヘッダおよびセグメント化されたデータ画像を含む実行可能ソフトウェア画像が、第1のプロセッサから第2のプロセッサに分散ロードされる。画像ヘッダは、第2のプロセッサのメモリに分散ロードされるデータ画像セグメントのターゲットロケーションを含む。画像ヘッダが処理されると、第2のプロセッサからのさらなるCPU関与なしに、データセグメントが第2のプロセッサのメモリに直接ロードされ得る。

Description

関連出願の相互参照
本出願は、開示の全体が参照により明白に本明細書に組み込まれる、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 モデム実行可能画像

Claims (24)

  1. システムメモリおよび実行可能ソフトウェア画像の少なくとも一部分を受信するためのハードウェアバッファを備え、前記ハードウェアバッファから前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするための分散ローダコントローラを備える2次プロセッサと、
    メモリに結合された1次プロセッサであって、前記メモリは、前記2次プロセッサのための前記実行可能ソフトウェア画像を記憶する、1次プロセッサと、
    前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して前記実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
  2. 前記分散ローダコントローラは、前記2次プロセッサにおいてシステムメモリロケーション間でデータをコピーすることなく、前記ハードバッファから前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするように構成される、請求項1に記載のマルチプロセッサシステム。
  3. 前記実行可能ソフトウェア画像の生画像データが、前記インターフェースを介して前記2次プロセッサによって受信される、請求項1に記載のマルチプロセッサシステム。
  4. 前記実行可能ソフトウェア画像は、画像ヘッダおよび少なくとも1つのデータセグメントを備える、請求項1に記載のマルチプロセッサシステム。
  5. 前記2次プロセッサは、前記画像ヘッダを受信し、前記少なくとも1つのデータセグメントを記憶する前記システムメモリ内の少なくとも1つのロケーションを特定するために前記画像ヘッダを処理するように構成される、請求項4に記載のマルチプロセッサシステム。
  6. 前記2次プロセッサは、前記少なくとも1つのデータセグメントを受信する前に、前記少なくとも1つのデータセグメントを記憶する前記システムメモリ内の前記少なくとも1つのロケーションを、前記受信された画像ヘッダに基づいて特定するように構成される、請求項5に記載のマルチプロセッサシステム。
  7. 前記2次プロセッサは、前記2次プロセッサのための前記実行可能ソフトウェア画像の転送を開始するブートローダを記憶している不揮発性メモリをさらに備える、請求項1に記載のマルチプロセッサシステム。
  8. 前記1次および2次プロセッサは異なるチップに位置する、請求項1に記載のマルチプロセッサシステム。
  9. 実行可能ソフトウェア画像全体が前記ハードウェアバッファに記憶されることなく、前記実行可能ソフトウェア画像の前記一部分が前記2次プロセッサの前記システムメモリにロードされる、請求項1に記載のマルチプロセッサシステム。
  10. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項1に記載のマルチプロセッサシステム。
  11. 2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するステップであって、前記実行可能ソフトウェア画像は、前記画像ヘッダおよび少なくとも1つのデータセグメントを備える、ステップと、
    前記少なくとも1つのデータセグメントを記憶する、前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、前記画像ヘッダを前記2次プロセッサによって処理するステップと、
    前記2次プロセッサにおいて、前記チップ間通信バスを介して前記1次プロセッサから、前記少なくとも1つのデータセグメントを受信するステップと、
    前記2次プロセッサによって、前記システムメモリの中の前記特定された少なくとも1つのロケーションに前記少なくとも1つのデータセグメントを直接ロードするステップと
    を含む方法。
  12. 前記実行可能ソフトウェア画像を使用して前記2次プロセッサをブートするステップをさらに含む、請求項11に記載の方法。
  13. システムメモリロケーション間でデータをコピーすることなく、ハードウェアバッファから前記2次プロセッサの前記システムメモリに前記実行可能ソフトウェア画像を直接ロードするステップをさらに含む、請求項11に記載の方法。
  14. 前記処理するステップは、前記ロードするステップの前に生じる、請求項11に記載の方法。
  15. 前記1次および2次プロセッサは異なるチップに位置する、請求項11に記載の方法。
  16. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つにおいて、前記受信するステップ、前記処理するステップおよび前記ロードするステップを実施するステップをさらに含む、請求項11に記載の方法。
  17. 2次プロセッサにおいて、チップ間通信バスを介して1次プロセッサから、前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェア画像の画像ヘッダを受信するための手段であって、前記実行可能ソフトウェア画像は、前記画像ヘッダおよび少なくとも1つのデータセグメントを備える、手段と、
    前記少なくとも1つのデータセグメントを記憶する、前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために、前記画像ヘッダを前記2次プロセッサによって処理するための手段と、
    前記2次プロセッサにおいて、前記チップ間通信バスを介して前記1次プロセッサから、前記少なくとも1つのデータセグメントを受信するための手段と、
    前記2次プロセッサによって、前記システムメモリの中の前記特定された少なくとも1つのロケーションに前記少なくとも1つのデータセグメントを直接ロードするための手段と
    を含む装置。
  18. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項17に記載の装置。
  19. 第1の不揮発性メモリに結合された1次プロセッサであって、前記第1の不揮発性メモリは前記1次プロセッサに結合され、前記1次プロセッサのためのファイルシステムならびに前記1次プロセッサおよび2次プロセッサのための実行可能画像を記憶する、1次プロセッサと、
    第2の不揮発性メモリに結合された2次プロセッサであって、前記第2の不揮発性メモリは前記2次プロセッサに結合され、前記2次プロセッサのための構成パラメータおよびファイルシステムを記憶する、2次プロセッサと、
    前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
  20. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項19に記載のマルチプロセッサシステム。
  21. 第1の不揮発性メモリに結合された1次プロセッサであって、前記第1の不揮発性メモリは前記1次プロセッサに結合され、前記1次プロセッサおよび2次プロセッサのための実行可能画像およびファイルシステムを記憶する、1次プロセッサと、
    前記第1の不揮発性メモリに直接結合されていない2次プロセッサと、
    前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースとを含み、前記インターフェースを介して実行可能ソフトウェア画像が前記2次プロセッサによって受信されるマルチプロセッサシステム。
  22. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つに統合される、請求項21に記載のマルチプロセッサシステム。
  23. 1次プロセッサに結合されたメモリから、2次プロセッサのための実行可能ソフトウェア画像を、前記1次プロセッサと前記2次プロセッサとを通信可能に結合するインターフェースを介して送るステップと、
    前記2次プロセッサにおいて、前記実行可能ソフトウェア画像を受信するステップと、
    前記2次プロセッサにおいて、前記実行可能ソフトウェア画像を実行するステップと
    を含む方法。
  24. 携帯電話、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、コンピュータ、ハンドヘルドパーソナル通信システム(PCS)ユニット、ポータブルデータユニット、および固定ロケーションデータユニットのうちの少なくとも1つにおいて、前記送るステップ、前記受信するステップおよび前記実行するステップを実施するステップをさらに含む、請求項23に記載の方法。
JP2013501416A 2010-03-22 2011-03-22 マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェア画像の直接分散ローディング Pending JP2013522803A (ja)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US31636910P 2010-03-22 2010-03-22
US61/316,369 2010-03-22
US32412210P 2010-04-14 2010-04-14
US32403510P 2010-04-14 2010-04-14
US61/324,122 2010-04-14
US61/324,035 2010-04-14
US32551910P 2010-04-19 2010-04-19
US61/325,519 2010-04-19
US13/052,516 2011-03-21
US13/052,516 US8838949B2 (en) 2010-03-22 2011-03-21 Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
PCT/US2011/029484 WO2011119648A1 (en) 2010-03-22 2011-03-22 Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system

Publications (2)

Publication Number Publication Date
JP2013522803A true JP2013522803A (ja) 2013-06-13
JP2013522803A5 JP2013522803A5 (ja) 2014-05-08

Family

ID=43926387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013501416A Pending JP2013522803A (ja) 2010-03-22 2011-03-22 マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェア画像の直接分散ローディング

Country Status (6)

Country Link
US (1) US8838949B2 (ja)
EP (1) EP2550603B1 (ja)
JP (1) JP2013522803A (ja)
KR (1) KR101412173B1 (ja)
CN (2) CN105718419B (ja)
WO (1) WO2011119648A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015508520A (ja) * 2011-12-05 2015-03-19 クアルコム,インコーポレイテッド マルチプロセッサシステムにおけるプロセッサ間プロトコル

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8838949B2 (en) 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US9800455B1 (en) 2012-02-08 2017-10-24 Amazon Technologies, Inc. Log monitoring system
JP5970867B2 (ja) * 2012-03-05 2016-08-17 富士ゼロックス株式会社 情報処理装置、画像形成装置およびプログラム
WO2014055957A1 (en) 2012-10-04 2014-04-10 Apple Inc. Methods and apparatus for reducing power consumption within embedded systems
US9594718B2 (en) 2013-01-24 2017-03-14 Qualcomm Innovation Center, Inc. Hardware accelerated communications over a chip-to-chip interface
CN105122261B (zh) * 2013-04-23 2020-04-24 惠普发展公司,有限责任合伙企业 从遭到破坏的系统启动代码中恢复的方法以及计算装置
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
EP2989547B1 (en) 2013-04-23 2018-03-14 Hewlett-Packard Development Company, L.P. Repairing compromised system data in a non-volatile memory
TWI494849B (zh) * 2013-05-06 2015-08-01 Phison Electronics Corp 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
CN103608792B (zh) * 2013-05-28 2016-03-09 华为技术有限公司 支持多核架构下资源隔离的方法及系统
CN104427120B (zh) * 2013-09-06 2017-03-15 展讯通信(上海)有限公司 通信终端及其非易失性数据的处理方法
CN104427119B (zh) * 2013-09-06 2017-03-15 展讯通信(上海)有限公司 通信终端及其非易失性数据的处理方法
US9547497B2 (en) * 2013-09-27 2017-01-17 Intel Corporation Sharing embedded hardware resources
USRE49652E1 (en) 2013-12-16 2023-09-12 Qualcomm Incorporated Power saving techniques in computing devices
KR102116096B1 (ko) * 2013-12-20 2020-05-27 한화테크윈 주식회사 다중시스템 및 이의 부팅 방법
US9529601B1 (en) * 2015-07-15 2016-12-27 Dell Products L.P. Multi-processor startup system
US10120818B2 (en) 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output command
US9710171B2 (en) * 2015-10-01 2017-07-18 International Business Machines Corporation Synchronous input/output commands writing to multiple targets
US10063376B2 (en) 2015-10-01 2018-08-28 International Business Machines Corporation Access control and security for synchronous input/output links
US9588758B1 (en) * 2015-12-18 2017-03-07 International Business Machines Corporation Identifying user managed software modules
CN105589832B (zh) * 2015-12-23 2019-02-19 北京工业大学 一种基于网络自启动所需程序或系统的微处理器架构
CN108959133B (zh) * 2017-05-22 2021-12-10 扬智科技股份有限公司 可共用存储器的电路结构与数字视频转换装置
CN109376016A (zh) * 2018-10-29 2019-02-22 安徽智传科技有限公司 一种多线程的人脸识别效率提高方法和系统
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
US11520662B2 (en) 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63233460A (ja) * 1986-11-20 1988-09-29 アルカテル・エヌ・ブイ 2次コンピュータへの初期プログラムローダを負荷する方法および回路装置
JPH06195310A (ja) * 1992-12-22 1994-07-15 Fujitsu Ltd マルチcpuに対する制御データ書換え方法
JPH08161283A (ja) * 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
JPH09244902A (ja) * 1996-03-12 1997-09-19 Oki Electric Ind Co Ltd ダウンロード回路
JP2000020492A (ja) * 1998-06-29 2000-01-21 Yaskawa Electric Corp サブcpuへのプログラムダウンロード方法およびそのnc装置
JP2004086447A (ja) * 2002-08-26 2004-03-18 Renesas Technology Corp マイクロコンピュータ
JP2005122759A (ja) * 2001-01-31 2005-05-12 Renesas Technology Corp データ処理システム
WO2006077068A2 (en) * 2005-01-22 2006-07-27 Telefonaktiebolaget L M Ericsson (Publ) Operating-system-friendly bootloader
JP2007157150A (ja) * 2005-12-06 2007-06-21 Samsung Electronics Co Ltd メモリシステム及びそれを含むメモリ処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970055857A (ko) 1995-12-30 1997-07-31 김광호 디지탈 셀룰라 시스템에서 기지국시스템의 로딩방법
KR100265955B1 (ko) 1996-12-02 2000-09-15 김영환 주프로세서에대해다수개의부프로세서가존재하는시스템의부프로세서로딩방법
US20020138156A1 (en) 2001-01-25 2002-09-26 Wong Isaac H. System of connecting multiple processors in cascade
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
CN1595372A (zh) * 2003-09-12 2005-03-16 翁嘉联 一种改进bios执行的方法
US7496917B2 (en) * 2003-09-25 2009-02-24 International Business Machines Corporation Virtual devices using a pluarlity of processors
JP2007213292A (ja) 2006-02-09 2007-08-23 Nec Electronics Corp マルチプロセッサシステム及びスレーブシステムの起動方法
US7447846B2 (en) 2006-04-12 2008-11-04 Mediatek Inc. Non-volatile memory sharing apparatus for multiple processors and method thereof
JP5458574B2 (ja) * 2006-06-27 2014-04-02 日本電気株式会社 マルチプロセッサシステム、マルチプロセッサシステムを使用した携帯端末
KR20100034415A (ko) 2008-09-24 2010-04-01 삼성전자주식회사 메모리 링크 아키텍쳐를 활용한 부팅기능을 갖는 멀티 프로세서 시스템
CN101387952B (zh) * 2008-09-24 2011-12-21 上海大学 单芯片多处理器任务调度管理方法
KR20110013867A (ko) * 2009-08-04 2011-02-10 삼성전자주식회사 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템
US8838949B2 (en) 2010-03-22 2014-09-16 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
US9058191B2 (en) 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63233460A (ja) * 1986-11-20 1988-09-29 アルカテル・エヌ・ブイ 2次コンピュータへの初期プログラムローダを負荷する方法および回路装置
JPH06195310A (ja) * 1992-12-22 1994-07-15 Fujitsu Ltd マルチcpuに対する制御データ書換え方法
JPH08161283A (ja) * 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
JPH09244902A (ja) * 1996-03-12 1997-09-19 Oki Electric Ind Co Ltd ダウンロード回路
JP2000020492A (ja) * 1998-06-29 2000-01-21 Yaskawa Electric Corp サブcpuへのプログラムダウンロード方法およびそのnc装置
JP2005122759A (ja) * 2001-01-31 2005-05-12 Renesas Technology Corp データ処理システム
JP2004086447A (ja) * 2002-08-26 2004-03-18 Renesas Technology Corp マイクロコンピュータ
WO2006077068A2 (en) * 2005-01-22 2006-07-27 Telefonaktiebolaget L M Ericsson (Publ) Operating-system-friendly bootloader
JP2007157150A (ja) * 2005-12-06 2007-06-21 Samsung Electronics Co Ltd メモリシステム及びそれを含むメモリ処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015508520A (ja) * 2011-12-05 2015-03-19 クアルコム,インコーポレイテッド マルチプロセッサシステムにおけるプロセッサ間プロトコル
JP2016115371A (ja) * 2011-12-05 2016-06-23 クアルコム,インコーポレイテッド マルチプロセッサシステムにおけるプロセッサ間プロトコル

Also Published As

Publication number Publication date
US20120072710A1 (en) 2012-03-22
CN105718419A (zh) 2016-06-29
EP2550603A1 (en) 2013-01-30
US8838949B2 (en) 2014-09-16
CN102812453A (zh) 2012-12-05
CN105718419B (zh) 2019-04-16
EP2550603B1 (en) 2021-03-10
KR20120140681A (ko) 2012-12-31
CN102812453B (zh) 2016-02-24
KR101412173B1 (ko) 2014-06-25
WO2011119648A1 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
JP2013522803A (ja) マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェア画像の直接分散ローディング
JP2013522803A5 (ja)
JP6336498B2 (ja) マルチプロセッサシステムにおけるプロセッサ間プロトコル
KR101825005B1 (ko) 하드웨어 플랫폼에 대한 펌웨어의 인-시스템 프로비저닝
EP3567483B1 (en) Method for processing service data, and network device
KR20140132386A (ko) 감소된 지연을 갖는 원격 직접 메모리 액세스
WO2008138258A1 (fr) Procédé d'exploitation de dispositif périphérique, dispositif périphérique et hôte
CN110647359A (zh) 半导体装置、其操作方法和具有其的层叠存储装置
CN114780465B (zh) 可共享远程直接数据存取链接的创建方法及装置
WO2023226720A1 (zh) 资源文件的传输方法、装置、设备及存储介质
WO2013154540A1 (en) Continuous information transfer with reduced latency
JP2009116386A (ja) 情報処理装置および方法、並びにプログラム
US7751269B2 (en) Coupling device for transmitting data
US20140059224A1 (en) Functional device, access system, and communication establishing method
JP2006221354A (ja) 情報更新方法、プログラム、情報処理装置
JP2006309332A (ja) 計算機システム、メモリ初期化方法、および計算機システムのプログラム
CN114664336B (zh) 堆叠存储器件、存储芯片及其控制方法
WO2023051504A1 (zh) 应用升级方法、装置、网卡和设备
CN104050145A (zh) 集成式的系统与存储介质控制器
TW201305909A (zh) 用於提供遊戲援助程式的伺服器、系統及方法
CN116028433A (zh) 数据迁移方法和电子设备
JP2011107928A (ja) インターフェース回路、ホスト装置、スレーブ装置、および不揮発性記憶システム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131217

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140317

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150929