JP2016115371A - マルチプロセッサシステムにおけるプロセッサ間プロトコル - Google Patents

マルチプロセッサシステムにおけるプロセッサ間プロトコル Download PDF

Info

Publication number
JP2016115371A
JP2016115371A JP2016027736A JP2016027736A JP2016115371A JP 2016115371 A JP2016115371 A JP 2016115371A JP 2016027736 A JP2016027736 A JP 2016027736A JP 2016027736 A JP2016027736 A JP 2016027736A JP 2016115371 A JP2016115371 A JP 2016115371A
Authority
JP
Japan
Prior art keywords
processor
image
data
primary processor
secondary processor
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.)
Granted
Application number
JP2016027736A
Other languages
English (en)
Other versions
JP6336498B2 (ja
Inventor
ニティン・グプタ
Gupta Nitin
ダニエル・エイチ・キム
Daniel H Kim
イゴール・マラマント
Malamant Igor
スティーヴ・ヘーニヘン
Haehnichen Steve
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016115371A publication Critical patent/JP2016115371A/ja
Application granted granted Critical
Publication of JP6336498B2 publication Critical patent/JP6336498B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Transfer Systems (AREA)
  • Facsimiles In General (AREA)
  • Communication Control (AREA)
  • Image Processing (AREA)

Abstract

【課題】マルチプロセッサシステム内の2つのプロセッサ間の通信方法を提供する。【解決手段】マルチプロセッサシステムでは、1次プロセッサが2次プロセッサ用の実行可能イメージを記憶することができる。通信プロトコルは、1次プロセッサから2次プロセッサへの実行可能イメージのイメージヘッダおよびデータセグメントの転送を支援する。1次プロセッサと2次プロセッサとの間のメッセージは、転送されたデータの成功した受信、転送プロセスの終了、および転送プロセスの終了の確認応答を示す。【選択図】図4

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号の利益を主張する、GUPTAらの名前で2011年3月21日に出願された米国特許出願第13/052,516号の一部継続出願である。
以下の説明は、一般に、マルチプロセッサシステムに関し、より詳細には、専用揮発性メモリに各々が結合されたシステム内の1つまたは複数の他のプロセッサ(本明細書では「2次」プロセッサと呼ぶ)の実行可能ソフトウェアイメージを記憶している不揮発性メモリに、1次プロセッサが結合されたマルチプロセッサシステムに関し、実行可能ソフトウェアイメージは、(たとえば、直接分散ロードプロセスを使用して)セグメント化されたフォーマットで1次プロセッサから2次プロセッサに効率的に通信される。
プロセッサは、ソフトウェアコードを実行して動作を遂行する。プロセッサは、起動させるために実行されるべき、通常ブートコードと呼ばれる特定のソフトウェアコードを使用することができる。マルチプロセッサシステムでは、各プロセッサは、起動させるためのそれぞれのブートコードを使用することができる。一例として、アプリケーションプロセッサおよびモデムプロセッサを含むスマートフォンデバイスでは、プロセッサの各々は、起動させるためのそれぞれのブートコードを使用することができる。
複数のプロセッサ(たとえば、別個のモデムプロセッサチップと一体化した独立型アプリケーションプロセッサチップ)を組み込んだ(スマートフォンなどの)非常に多くのデバイスには、問題が存在する。各プロセッサが実行可能イメージおよびファイルシステムの不揮発性メモリ(たとえば、持続性ストレージ)を有するので、フラッシュ/不揮発性メモリ構成要素は、プロセッサの各々のために使用される場合がある。たとえば、プロセッサのブートコードは、プロセッサのそれぞれの不揮発性メモリ(たとえば、フラッシュメモリ、読取り専用メモリ(ROM)など)に記憶することができ、電源投入時に、ブートコードソフトウェアは、それぞれの不揮発性メモリからプロセッサによって実行されるためにロードされる。したがって、このタイプのアーキテクチャでは、プロセッサのブートコードなどの実行可能ソフトウェアは、プロセッサにシステム内の別のプロセッサからロードする必要はない。
しかしながら、各プロセッサに専用不揮発性メモリを追加すると、回路基板の空間がより多く占有され、それにより回路基板のサイズが大きくなる。いくつかの設計では、ランダムアクセスメモリ(RAM)およびフラッシュメモリ向けの結合されたチップ(RAMデバイスとフラッシュデバイスとを1つのパッケージとして積層してサイズを縮小している)を使用して、基板のサイズを縮小することができる。マルチチップパッケージの解決策により、必要な回路基板のフットプリントはある程度縮小されるが、コストが増大する可能性がある。
いくつかのマルチプロセッサシステムでは、1つのプロセッサに別のプロセッサからソフトウェアがロードされる場合がある。たとえば、マルチプロセッサシステム内の第1のプロセッサが、システム内の1つまたは複数の他のプロセッサのためのブートコードをその不揮発性メモリに記憶することを担当し、その場合、他のプロセッサの不揮発性メモリにそのようなブートコードが存在する場合とは異なり、電源投入時に第1のプロセッサが他のプロセッサにそれぞれのブートコードをロードする任務を負うと仮定する。このタイプのシステムでは、ソフトウェア(たとえば、ブートイメージ)が第1のプロセッサから他のプロセッサに(たとえば、他のプロセッサの揮発性メモリに)ダウンロードされ、その後、受信プロセッサがダウンロードされたイメージでブートする。
しばしば、ロードされるソフトウェアイメージは、バイナリのマルチセグメント化されたイメージである。たとえば、ソフトウェアイメージは、コードの複数のセグメントの前にヘッダを含む場合がある。ソフトウェアイメージが外部デバイスから(たとえば、別のプロセッサから)ターゲットデバイス(たとえば、ターゲットプロセッサ)にロードされるとき、バイナリのマルチセグメント化されたイメージがブートローダによってシステムメモリに転送され、次いで後ほどターゲットロケーションに転送される中間ステップが存在する場合がある。
ソフトウェアイメージが第1の「1次」プロセッサからターゲットの「2次」プロセッサにロードされるシステムでは、そのようなローディングを実施する1つの方法は、各パケットが受信される一時バッファを割り当てることであり、各パケットは、ペイロードとともに関連パケットヘッダ情報を有する。この場合のペイロードは、実際のイメージデータである。一時バッファから、処理の一部をペイロード上で実行することができ、次いでペイロードを最終的な宛先に上書きすることができる。一時バッファは、たとえば内部のランダムアクセスメモリ(RAM)またはダブルデータレート(DDR)メモリの中などのシステムメモリの中に位置する場合がある。
したがって、中間バッファが使用される場合、1次プロセッサから2次プロセッサにダウンロードされるデータは、中間バッファにコピーされる。このようにして、バッファを使用して、1次プロセッサからイメージデータの一部を受信し、バッファから、イメージデータを2次プロセッサのメモリ(たとえば、揮発性メモリ)に分散することができる。
1次プロセッサ、および2次プロセッサ用のブートイメージを記憶する1次プロセッサの不揮発性メモリは、2次プロセッサが実装されるチップとは異なるチップに実装される場合がある。したがって、1次プロセッサの不揮発性メモリから2次プロセッサに(たとえば、2次プロセッサの揮発性メモリに)データを転送するために、パケットベースの通信が利用される場合があり、その場合、2次プロセッサに通信される各パケットにパケットヘッダが含まれる。パケットは中間バッファに記憶され、データがその最終的な宛先(たとえば、2次プロセッサの揮発性メモリ内)に記憶されるように、受信パケットの何らかの処理が実行される。
マルチプロセッサシステム内の2つのプロセッサ間の通信方法が提供される。方法は、2次プロセッサにより、1次プロセッサとの通信を開始するステップを含む。方法はまた、2次プロセッサにより、実行可能ソフトウェアイメージ用のイメージヘッダを転送するように、1次プロセッサに命令するステップを含む。実行可能ソフトウェアイメージは、イメージヘッダおよびデータセグメントを含む。方法はさらに、2次プロセッサにより、イメージヘッダおよびデータセグメントを受信するステップを含む。方法はさらに、2次プロセッサにより、イメージヘッダおよびデータセグメントの成功した受信を、1次プロセッサに示すステップを含む。方法はさらに、2次プロセッサにより、実行可能ソフトウェアイメージの転送終了の指示を、1次プロセッサから受信するステップを含む。方法はまた、2次プロセッサにより、転送終了の指示の受信を、1次プロセッサに確認応答するステップを含む。
マルチプロセッサデバイスが提供される。デバイスは、2次プロセッサにより、1次プロセッサとの通信を開始するための手段を含む。デバイスはまた、2次プロセッサにより、実行可能ソフトウェアイメージ用のイメージヘッダを転送するように、1次プロセッサに命令するための手段を含む。実行可能ソフトウェアイメージは、イメージヘッダおよびデータセグメントを含む。デバイスはさらに、2次プロセッサにより、イメージヘッダおよびデータセグメントを受信するための手段を含む。デバイスはさらに、2次プロセッサにより、イメージヘッダおよびデータセグメントの成功した受信を、1次プロセッサに示すための手段を含む。デバイスはさらに、2次プロセッサにより、実行可能ソフトウェアイメージの転送終了の指示を、1次プロセッサから受信するための手段を含む。デバイスはまた、2次プロセッサにより、転送終了の指示の受信を、1次プロセッサに確認応答するための手段を含む。
コンピュータプログラム製品が提供される。コンピュータプログラム製品は、非一時的プログラムコードが記録された非一時的コンピュータ可読媒体を含む。非一時的プログラムコードは、2次プロセッサにより、1次プロセッサとの通信を開始するプログラムコードを含む。非一時的プログラムコードはさらに、2次プロセッサにより、実行可能ソフトウェアイメージ用のイメージヘッダを転送するように、1次プロセッサに命令するプログラムコードを含む。実行可能ソフトウェアイメージは、イメージヘッダおよびデータセグメントを含む。非一時的プログラムコードはさらに、2次プロセッサにより、イメージヘッダおよびデータセグメントを受信するプログラムコードを含む。非一時的プログラムコードはさらに、2次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信を、1次プロセッサに示すプログラムコードを含む。非一時的プログラムコードはさらに、2次プロセッサにより、実行可能ソフトウェアイメージの転送終了の指示を、1次プロセッサから受信するプログラムコードを含む。非一時的プログラムコードはまた、2次プロセッサにより、転送終了の指示の受信を、1次プロセッサに確認応答するプログラムコードを含む。
マルチプロセッサシステム内の2つのプロセッサ間の通信方法が提供される。方法は、1次プロセッサにより、実行可能ソフトウェアイメージ用のイメージヘッダを転送する命令を受信するステップを含む。実行可能ソフトウェアイメージは、イメージヘッダおよびデータセグメントを含む。方法はまた、1次プロセッサにより、イメージヘッダおよびデータセグメントを2次プロセッサに送るステップを含む。方法はさらに、1次プロセッサにより、イメージヘッダおよびデータセグメントの成功した受信の指示を、2次プロセッサから受信するステップを含む。方法はさらに、1次プロセッサにより、実行可能イメージの転送終了の指示を送るステップを含む。方法はまた、1次プロセッサにより、転送終了の指示の受信の2次プロセッサからの確認応答を受信するステップを含む。
マルチプロセッサデバイスが提供される。デバイスは、1次プロセッサにより、実行可能ソフトウェアイメージ用のイメージヘッダを転送する命令を受信するための手段を含む。実行可能ソフトウェアイメージは、イメージヘッダおよびデータセグメントを含む。デバイスはまた、1次プロセッサにより、イメージヘッダおよびデータセグメントを2次プロセッサに送るための手段を含む。デバイスはさらに、1次プロセッサにより、イメージヘッダおよびデータセグメントの成功した受信の指示を、2次プロセッサから受信するための手段を含む。デバイスはさらに、1次プロセッサにより、実行可能イメージの転送終了の指示を送るための手段を含む。デバイスはまた、1次プロセッサにより、転送終了の指示の受信の2次プロセッサからの確認応答を受信するための手段を含む。
コンピュータプログラム製品が提供される。コンピュータプログラム製品は、非一時的プログラムコードが記録された非一時的コンピュータ可読媒体を含む。非一時的プログラムコードは、1次プロセッサにより、実行可能ソフトウェアイメージ用のイメージヘッダを転送する命令を受信するプログラムコードを含み、前記実行可能ソフトウェアイメージは、前記イメージヘッダおよびデータセグメントを含む。非一時的プログラムコードはまた、1次プロセッサにより、イメージヘッダおよびデータセグメントを2次プロセッサに送るプログラムコードを含む。非一時的プログラムコードはさらに、1次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信の指示を、2次プロセッサから受信するプログラムコードを含む。非一時的プログラムコードはさらに、1次プロセッサにより、実行可能イメージの転送終了の指示を送るプログラムコードを含む。非一時的プログラムコードはさらに、1次プロセッサにより、転送終了の指示の受信の2次プロセッサからの確認応答を受信するプログラムコードを含む。
本教示をより完全に理解するために、次に、添付図面とともに行われる以下の説明を参照する。
その内部で本開示の態様が実施され得る、例示的なデバイスを示す図である。 その内部で本開示の態様が実施され得る、例示的なデバイスを示す図である。 本開示の一態様による、1次プロセッサから2次プロセッサに実行可能イメージをロードするための、例示的なローディングプロセスの動作フローを示す図である。 本開示の一態様による、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は、アプリケーションプロセッサ104からモデムプロセッサ110によって要求される。アプリケーションプロセッサ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)は、1次プロセッサ204からモデム実行可能イメージ214および/またはモデムファイルシステム220を要求するように構成することができる。次いで、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内で実施される。加えて、モデムプロセッサ揮発性メモリ212内のファイルシステム228の内容を、不揮発性メモリ206に記憶されているモデムファイルシステム220と同期させるために、モデムプロセッサ210およびアプリケーションプロセッサ204で動作するバックグラウンドプロセスが存在する場合がある。
1次プロセッサおよび2次プロセッサは、2次プロセッサ用の揮発性メモリ内のファイルシステムを、1次不揮発性メモリ内の対応するファイルシステムと周期的に同期させることができる。モデムファイルシステム228への最初の書込みにより、モデムプロセッサ210内のタイマ(たとえば、10分のタイマ)が開始され得る。このタイマが作動している間、ファイルシステム228へのすべての書込みは、モデムプロセッサ揮発性メモリ212に一本化される。タイマの終了時に、モデムプロセッサ210は、揮発性メモリ212からファイルシステムイメージ228をコピーし、それを暗号化し、新たなデータが入手できることをアプリケーションプロセッサ204に警告する。アプリケーションプロセッサ204は、暗号化されたコピーを読み取り、それを不揮発性メモリ206のモデムファイルシステム220に書き込む。次いで、アプリケーションプロセッサ204は、書込み動作が完了したことをモデムプロセッサ210に通知する。同期化動作が失敗した場合、モデムファイルシステムの現在バージョンを使用することができ、モデムプロセッサ210が、アプリケーションプロセッサ204からイメージを再ロードするのではなく、それ自体の揮発性メモリに現在存在するイメージで実行を続けることができることを意味する。同期化は、周期的に(たとえば、90秒ごとに)、またはモデムによるそのファイルシステムへの書込み動作から一定の時間が経過した後に、起こる場合がある。突然の電力消失などの事態からの破損を防止するために、モデムファイルシステム220の2つのコピーを記憶することができる。
モデムプロセッサ210は、アプリケーションプロセッサの不揮発性メモリ206に対するファイルシステムミラー228の「フラッシュ」動作を開始することもできる。これは、電話の電源切断、ならびに、ネットワークに確認メッセージを送って着信SMSメッセージの受信および記憶を示すことを含む、いくつかの理由で起こる場合がある。
モデムプロセッサ210でのファイルシステム読取り動作は、モデムプロセッサ揮発性メモリ212によって行われ、これはモデムファイルシステムの現在の状態を反映する。読取り動作は書込み動作よりも頻度が高く、書込み動作は活動の「バースト」で起こる傾向があるので、全体的なシステムロードおよび電力消費を低減することができる。
アプリケーションプロセッサ204、モデムプロセッサ210およびブートローダは、利用できる少なくとも1つの完全なファイルシステムイメージが常に不揮発性メモリ206内にあることを確実にするために、具体的措置を講じている。これにより、電力喪失または突然のリセットシナリオの影響を受けずに済む。
本明細書で開示された概念の適用は、上記で示された例示的なシステムに限定されず、同様に様々な他のマルチプロセッサシステムで使用することができる。
ゼロコピー移送フロー
本開示の態様は、1次プロセッサの不揮発性メモリから2次プロセッサの揮発性メモリに、実行可能ソフトウェアイメージを効率的にロードするための技法を提供する。上述されたように、従来のローディングプロセスでは、(たとえば、ブートローダにより)バイナリのマルチセグメント化されたイメージがバッファリングされ(たとえば、システムメモリに転送され)、次いでターゲットロケーションに分散される中間ステップが必要である。本開示の態様は、従来のローディングプロセスで必要なバッファリングの中間ステップを軽減する技法を提供する。したがって、本開示の態様は、余分なメモリコピー動作を回避し、それにより性能が改善される(たとえば、マルチプロセッサシステムで2次プロセッサをブートするのに必要な時間が削減される)。
以下でさらに説明されるように、本開示の1つの例示的な態様は、1次プロセッサの不揮発性メモリから2次プロセッサの揮発性メモリに、実行可能ソフトウェアイメージをロードするための直接分散ロード技法を使用する。本開示のいくつかの態様はまた、以下でさらに説明されるように、認証などの転送後のデータ処理と同時のイメージ転送を可能にし、効率性をさらに高めることができる。
一態様では、ホストの1次プロセッサは、実際のイメージデータからのいかなる情報の処理または抽出も行わず、パケットにいかなるパケットヘッダも添付せずに、イメージデータを「生」データとしてターゲットに送るだけである。ターゲットの2次プロセッサは、データ転送要求を開始するので、どれだけのデータを受信するかを正確に把握している。これにより、ホストがパケットヘッダなしでデータを送ることが可能になり、ターゲットがデータを直接受信し記憶することが可能になる。この態様では、ターゲットは必要に応じてホストからデータを要求する。ターゲットが要求する第1のデータ項目は、所与のイメージ転送用のイメージヘッダである。ターゲットは、イメージヘッダを処理すると、イメージ内の各データセグメントのロケーションおよびサイズを把握する。イメージヘッダはまた、ターゲットメモリ内のイメージの宛先アドレスを指定する。この情報を用いて、ターゲットはセグメントごとにホストからデータを要求し、ターゲットメモリ内の適切なロケーションにデータを直接転送することができる。アプリケーションプロセッサ上のプロセッサ間通信バス用のハードウェアコントローラは、それ自体の低レベルプロトコルヘッダを追加することができ、これはモデムプロセッサによって処理され、取り除かれる。これらの低レベルヘッダは、両方のプロセッサで動作するソフトウェアに透過的であり得る。
本開示の一態様では、図3に示された例示的なフローで示されているように、ローディングプロセスは2つの段階に分けられる。図3は、(不揮発性メモリ106または206を有する、図1または図2のアプリケーションプロセッサ104または204であり得る)1次プロセッサ301、および(揮発性メモリ112または212を有する、図1または図2のモデムプロセッサ110または210であり得る)2次プロセッサ302のブロック図を示す。図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のどこにモデムイメージ実行可能データを最終的に入れるかを特定するために使用される情報を含む。ヘッダ情報は、実際の実行可能データを受信したときにアドレスを受信するように、分散ローダ/直接メモリアクセスコントローラ304をプログラミングするために、2次プロセッサ302によって使用される。次いで、データセグメントは、システムメモリ307から1次ハードウェア移送機構308に送られる。次いで、セグメントは、プロセッサ間通信バス310(たとえば、HS-USBケーブル)を介して、1次プロセッサ301のハードウェア移送機構308から2次プロセッサ302のハードウェア移送機構309に送られる。転送される第1のセグメントはイメージヘッダである場合があり、これは、2次プロセッサのシステムメモリ305内のターゲットロケーションにデータセグメントを位置付けるために、2次プロセッサによって使用される情報を含む。イメージヘッダは、データ用のターゲットロケーション情報を特定するために使用される情報を含む場合がある。
一態様では、ターゲットロケーションは事前に特定されているわけではなく、分散ローディングプロセスの一部として2次プロセッサでソフトウェアを実行することによって特定される。イメージヘッダからの情報を使用して、ターゲットロケーションを特定することができる。この態様では、2次プロセッサのブートローダが、最初に1次プロセッサからイメージヘッダを要求する(1次プロセッサのCPUは、イメージヘッダをまったく処理しない)。2次プロセッサは、イメージヘッダを見ることによって、不揮発性メモリ内でデータセグメントがどのように配置されているかを把握する(RAMのアドレス/サイズのほかに、ヘッダは、セグメントごとのイメージファイルの開始点に関する不揮発性メモリ内の相対ロケーションも含む)。その後のデータセグメントに対する要求は、2次プロセッサによって行われる。
別の態様では、1次プロセッサは、イメージヘッダを解析し、次いで、イメージヘッダで示される指定されたアドレスに後続するデータセグメントを配置するように2次プロセッサのコントローラをプログラミングすることによって、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次プロセッサのシステムメモリにロードされる。一態様では、転送されるべきイメージデータセグメントは、メモリ306内の連続していないロケーションに位置する。別の態様では、単一のイメージデータセグメントだけが転送される。別の態様では、複数のイメージデータセグメントが転送される。
したがって、上記の態様では、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をプログラミングし、転送されたばかりのセグメントの認証を開始する。これにより、2次プロセッサ302が認証を実行している間に、分散ローダコントローラ304がデータを転送することが可能になる。本明細書での認証は、一般に、受信データの完全性および信頼性をチェックすることを指す。認証メカニズムの詳細は本開示の範囲外であり、所与の実装形態で望まれ得るように、任意の適切な認証メカニズム(当技術分野でよく知られているものを含む)を使用することができる。上記の並行処理は、所与の実装形態で2次プロセッサ302によって実行されることが望まれ得る他の転送後の処理に適用することもできる。
最後のイメージの最後のセグメントが転送され認証されるとすぐに、2次プロセッサ302は、ブートプロセスを続行し、転送イメージを実行することができる。
プロセッサ間通信プロトコル
プロセッサ間通信プロトコルも開示される。本開示の一態様では、2次プロセッサから駆動される例示的なプロトコルが提供される。たとえば、2次プロセッサは、2次プロセッサが1次プロセッサから望むどのようなデータ転送も開始することができる。言い換えれば、2次プロセッサは、2次プロセッサが何のデータを受信したいかに関して、1次プロセッサに命令する。したがって、いくつかの態様では、1次プロセッサは、どこかに(たとえば、1次プロセッサが結合されている不揮発性メモリに)存在する実行可能ソフトウェアイメージ(ファイル)を有することができ、識別情報をそのファイルに関連付けることができる。2次プロセッサ(または「ターゲット」)は、その識別情報を1次プロセッサに送り、ファイル内の指定されたオフセットに存在している対応するデータを送るように、1次プロセッサに命令することができる。それに応答して、1次プロセッサは、その生データを2次プロセッサに送ることができる。そのため、返信されたデータにはパケットヘッダが必要ではなく、代わりに返信されたデータは、1次プロセッサから2次プロセッサに直接送られ、2次プロセッサは、データを受信すると、それを2次プロセッサのシステムメモリ内の適切なロケーションに入れる。
以下に、プロセッサ間通信プロトコルの例示的な実施形態についてさらなる詳細が記載される。下記の例示的な実施形態について具体的な詳細が記載されるが、プロセッサ間通信プロトコルについて本明細書に記載される概念は、下記に記載される特定の詳細には限定されないことを理解されたい。
序論
この以下の説明は、データをメモリに/から転送するために使用され得る、例示的なプロセッサ間通信プロトコルに関する情報を提供する。説明は、プロトコルのパケット構造、パケットフロー、および例示的な使用法に関する情報を含む。下記に記載される例示的なプロトコルの特定の実装形態は、プロトコルを使用して送られたデータを認証/検証するための機構を提供しない。そのような機構は、本明細書で提供される例示的なプロトコルの説明の範囲外であるが、所与の適用例に望まれる場合があるように、データが転送されているこのプロトコルと連携して、任意の適切な認証および/または検証の機構を実装することができる。
例示的なプロトコルの概要
下記に記載されるプロセッサ間通信プロトコルの例示的な態様は、主に、ホスト(たとえば、「1次プロセッサ」)からターゲット(たとえば、「2次プロセッサ」)にソフトウェアイメージを転送するために設計される。プロトコルは、任意の物理リンクを介して転送されるべきデータを要求するための簡単な機構を提供する。
このプロトコルの例示的な態様は、2つの基本的なパケットタイプ、コマンドパケットおよびデータパケットをサポートする。コマンドパケットは、ホストとターゲットとの間を送られて、データパケットの転送をセットアップする。
ターゲット駆動のプロトコル。このプロトコルの例示的な態様は、ホストとターゲットとの間を送られるコマンドパケットの数を減少させることによって、データ転送のオーバーヘッドを低減する。これは、プロトコルをターゲット駆動にすることによって、かつターゲットにデータ処理を実行させることによって達成される。ホストは、以下の情報を含んでいるデータ転送要求を待つ。
・転送するデータイメージ
・読取りを開始するイメージ内のオフセット
・データ転送の長さ
ホストは、実際のイメージデータからいかなる情報も処理または抽出せず、パケットにいかなるパケットヘッダも添付せずに、イメージデータを「生」データとしてターゲットに送る。ターゲットは、データ転送要求を開始するので、どれだけのデータを受信するかを正確に把握している。これにより、ホストがパケットヘッダなしでデータを送ること、およびターゲットがデータを直接受信して記憶することが可能になる。
ターゲットは、必要に応じてホストからデータを要求することができる。このプロトコルの例示的な態様においてターゲットが要求する第1のデータ項目は、所与のソフトウェアイメージの転送用のイメージヘッダである。ターゲットは、イメージヘッダを処理すると、イメージ内の各データセグメントのロケーションおよびサイズを把握する。イメージヘッダはまた、ターゲットメモリ内のイメージの宛先アドレスを指定する。この情報を用いて、ターゲットはセグメントごとにホストからデータを要求し、ターゲットメモリ内の適切なロケーションにデータを直接転送することができる。
パケット処理。このプロトコルの例示的な態様は、物理トランスポート層を使用して信頼できるデータ転送を提供することによって、パケット処理を削減する。フレーミング、HDLC(高レベルデータリンク制御)符号化、またはCRC(巡回冗長検査)は、プロトコルレベルでパケットに適用されない。
各コマンドパケットのタイプは、コマンドIDおよびパケット長を含むことができる、定義された構造を有する。この情報を使用して、各コマンドパケットの長さは、受信されたコマンドパケットの長さを2つの値のいずれかと比較することによって、検証することができる。
・所与のコマンドID用の予想パケット長
・パケット自体に含まれている長さフィールド
このプロトコルの例示的な態様は、各パケットの最後にCRCフィールドを追加することによって、コマンドパケットの検証をサポートするように、容易に拡張することができる。データパケットは、様々な認証方法を使用してデータの完全性について検証することもできるが、これはこのプロトコルの例示的な態様の本説明の範囲外である。
確認応答通信。このプロトコルの例示的な態様によれば、ホストとターゲットとの間の通信は確認応答される。ターゲットからホストに送られたコマンドパケットは、ホストからターゲットに送り返されたコマンドパケットまたはデータパケットで確認応答される。同様に、ホストからターゲットに送られたコマンドパケットは、ターゲットからホストへのコマンドパケットまたはデータパケットで確認応答される。
ホストとターゲットとの間のリンクは信頼できると予想されるが、ホストからターゲットへのコマンドパケットの送信中にエラーが発生し、結果としてターゲットが誤ったパケットを受信した場合、ターゲットはホストにエラー応答を送る。
送信失敗の場合パケットの再送信をサポートするために、ホストとターゲットの両方にタイマ機構を実装することができる。しかしながら、そのような機構の実装は、このプロトコルの例示的な態様の本説明の範囲外であり、プロトコルは、ターゲット側で予想外または誤ったパケットが受信されたときに何が起こるかだけを指定する。
拡張性。このプロトコルの例示的な態様は、コマンド構造およびパケットフローの固定セットを定義する。しかしながら、この固定セットは、(下記にさらに記載されるように)さらなるコマンド構造および状態遷移をサポートするように、容易に拡張することができる。
インターフェース
概要。このプロトコルの例示的な態様は、2つのタイプのパケットを定義する。
・コマンドパケット
・データパケット
このプロトコルの例示的な態様によるこれらのパケットの構造が下記に示される。
Figure 2016115371
コマンドパケットは、コマンドIDおよびパケット長を含む。コマンドに応じて、パケットは追加のコマンド固有のフィールドを含む場合がある。コマンドパケットの構造により、プロトコルの将来の改訂版が、以前のプロトコルバージョンのパケット構造との互換性を保ちながら、パケットタイプの最後にフィールドを容易に追加することが可能になる。
コマンド。このプロトコルの例示的な態様のコマンドパケットで使用されるコマンドが、下記の表1に列記される。
Figure 2016115371
ハローパケット。ターゲットがハローパケットを送るとき、ターゲットは下記の表2に示されたフォーマットを使用する。
Figure 2016115371
ハローパケットは、ターゲットがホストに送る最初のパケットである。ホストが任意の他のパケットを受信した場合、ホストはターゲットにリセットコマンドを送る。
ホストが有効なハローパケットを受信したとき、ホストは最初に、ターゲットで実行しているプロトコルがホストで実行しているプロトコルと互換性があることを検証する。プロトコルが不適合である場合、ホストはターゲットにリセットコマンドを送る。
ターゲットはまた、ターゲットがサポートするコマンドパケットの最大長を送り、ホストはこの情報を使用して、ターゲットが受信コマンドバッファ内でサポートできるよりも多いバイトを送ることを回避する。
ハロー応答パケット。ホストがハロー応答パケットを送るとき、ホストは下記の表3に示されたフォーマットを使用する。
Figure 2016115371
ホストがターゲットで実行しているプロトコルを検証すると、ホストは以下の情報をターゲットに送る。
・ホストが実行しているプロトコルバージョン
・ホストがサポートする最小プロトコルバージョン
ホスト側でエラーが発生しない場合、ホストはパケットステータスフィールドを「成功」にセットする。ターゲットがこのパケットを受信すると、ターゲットはデータ転送要求を進めることができる。
データ読取りパケット。ターゲットがデータ読取りパケットを送るとき、ターゲットは下記の表4に示されたフォーマットを使用する。
Figure 2016115371
イメージ転送を開始するために、ターゲットはこのパケットを、ターゲットが受信したいイメージに対応するイメージIDで満たす。ターゲットはまた、イメージファイル内へのオフセット、およびターゲットがイメージから読み取りたいデータの長さ(バイト単位)を送る。
このパケットは、イメージデータがホストからターゲットに転送されるべきときの一般的なデータ転送パケットとして働く。データ読取りパケットは、イメージがホストからターゲットに転送される方法における柔軟性をもたせる。ターゲットはどのデータが転送されるかを制御するので、ターゲットはイメージのどの部分がどの順序で転送されるかを決定することができる。
ホストは、イメージの構造に関して何も把握することができず、単にファイルをオープンし、パケットで指定されたパラメータに基づいて、ターゲットへのデータ転送を開始するにすぎない。これにより、イメージがどのように転送され処理されるかについてのターゲットの制御が与えられる。
ホストがこのパケットを受信したとき、ホストはデータパケットで応答することを期待される。データパケットは、イメージデータのみを含まなければならず、データ読取りパケットで指定された長さでなければならない。
ホストがデータ読取りパケットで以下のいずれかを受信した場合、いくつかのエラー状態が発生する可能性がある。
・無効またはサポートされていないイメージID
・無効データオフセット
・無効データ長
上記のフィールドのいずれかが無効である場合、またはホストで任意の他のエラーが発生した場合、ホストは、ターゲットが予想していた長さと一致しない長さを有するデータパケットを送る可能性がある。生じたエラーは、ステータスフィールドにエラーコードを有するイメージ転送の終了パケット(表5の例示的なパケット構造を参照)をターゲットに送らせる。このトランザクションにより、ターゲットとホストの両方がエラー処理状態に入ることが可能になる。
このプロトコルの例示的な態様は、状態機械によって実装することができ、そこでは、発生する任意のエラーにより、ホストがリセットパケット(下記の「例示的なプロトコル実装」のさらなる説明を参照)を送る結果になる。プロトコルのいくつかの実装形態は、いくつかのエラーを処理するためにホストエラーパケットおよびホストエラー応答パケットを使用できる実装形態を提供することができる。
イメージ転送の終了パケット。ターゲットがイメージ転送の終了パケットを送るとき、ターゲットは下記の表5に示されたフォーマットを使用する。
Figure 2016115371
イメージ転送が首尾よく完了した場合、ターゲットは、「成功」ステータスを有するイメージ転送の終了パケットをホストに送る。この時点で、ターゲットはホストが完了パケットを送るのを待つ。イメージデータの転送または処理の間にいずれかのエラーが発生した場合、ステータスは対応するエラーコードにセットされ、ターゲットは異なるコマンドパケットを待つ。
このプロトコルの例示的な態様は、状態機械によって実装することができ、そこでは、ターゲットはイメージ転送の終了パケット内でエラーが送られた後、ホストが常にリセットパケット(下記の「例示的なプロトコル実装」のさらなる説明を参照)を送ろうとすると見なす。プロトコルにより、イメージ転送の終了のエラーパケットに応答して、他のコマンドパケットがホストからターゲットに送られることが可能になる。
完了パケット。ホストが完了パケットを送るとき、ホストは下記の表6に示されたフォーマットを使用する。
Figure 2016115371
ホストが「成功」ステータスを有するイメージ転送の終了パケットを受信した場合、ホストは、ホストがプロトコルを終了し実行を継続できることをターゲットに示すために、完了パケットを送ることに進む。ターゲットがホストから別のイメージの転送を望む場合、ターゲットは別のハローパケットから始めることによってプロトコルを再開する。
完了応答パケット。ターゲットが完了応答パケットを送るとき、ターゲットは下記の表7に示されたフォーマットを使用する。
Figure 2016115371
ターゲットが完了パケットを受信した場合、ターゲットはイメージ転送ステータスを含む完了応答パケットで応答する。
・すべてのイメージが転送された場合、ターゲットは「完了」ステータスを送ってホストがプロトコルを終了することを可能にする。
・すべてのイメージが転送されなかった場合、ターゲットは「保留」ステータスを送る。ターゲットは、ホストがプロトコルの実行を続け、別のハローパケットが届くのを待つと見なす。
リセットパケット。ホストがリセットパケットを送るとき、ホストは下記の表8に示されたフォーマットを使用する。
Figure 2016115371
ホストは、ターゲットをリセットしたいとき、リセットパケットを送る。ターゲットは、リセット要求が有効な状態にある場合、リセット要求を処理する。ターゲットが無効なリセット要求を受信した場合、ターゲットはイメージ転送の終了パケット内でエラーを送る。
リセット応答パケット。ターゲットがリセット応答パケットを送るとき、ターゲットは下記の表9に示されたフォーマットを使用する。
Figure 2016115371
ターゲットが有効なリセット要求を受信した場合、ターゲットはリセットする直前にリセット応答パケットを送る。この応答の目的は、ターゲットがリセット要求を受信したことをホストに確認応答することである。ホストがターゲットからリセット応答コマンドを受信しなかった(または異なるコマンドを受信した)場合、ホストは要求を再送するように試みることができる。
ホストエラーパケット。プロトコルの態様はこのパケットを使用して、ホストでいずれかのエラーが発生した場合、ホストがターゲットにエラーコードを送ることを可能にすることができる。
ホストエラー応答パケット。プロトコルの態様はこのパケットを使用して、ターゲットがホストエラーパケットを確認応答することを可能にすることができる。このパケットは、ターゲットがホストエラーをどのように処理しているかに関する情報をホストに提供することができる。
メモリダンプパケット。プロトコルの態様はこのパケットを使用して、ターゲットのシステムメモリのメモリダンプを開始する。このパケットは、ターゲットがメモリ読取り要求を受信してシステムメモリの内容を転送する準備ができていることをホストに示すことができる。
メモリ読取りパケット。プロトコルの態様はこのパケットを使用して、ホストがターゲットからのメモリ読取り要求を発行することを可能にすることができる。このパケットは、メモリ転送の物理アドレスおよびサイズを含むことができる。ターゲットは、ホストが要求したメモリの内容だけを含むデータパケットで応答することができる。ターゲット側でいずれかのエラーが発生した場合、ターゲットはメモリ転送の要求されたサイズと一致しない長さを有するデータパケットを送ることができる。これにより、ホスト側でエラーが発生し、ホストが適切に応答することが可能になる。
ステータスコード。下記の表10は、このプロトコルの例示的な態様によってサポートされるステータスおよびエラーコードを列記する。
Figure 2016115371
動作
概要。下記の説明は以下の話題をカバーする。
・ホストからターゲットにイメージを転送するために、このプロトコルの例示的な態様をどのように使用することができるか
・プロトコルを実装し、イメージ転送中に発生するエラーにどのように対処するかを示す例示的な状態機械
・システムがプロトコルをどのように使用してイメージ転送要求を並列化することができるか
成功したイメージ転送シーケンス。図4は、成功したイメージ転送シーケンスについてのパケットフローを示す。パケットフローシーケンスは下記のように記載される。時刻402で、ハローパケットがターゲット450からホスト400に送られてプロトコルを開始する。ハローパケットを受信し、ターゲット450で実行しているプロトコルバージョンを検証すると、時刻404で、ホスト400は「成功」ステータスを有するハロー応答パケットを送る。
ターゲット450がハロー応答を受信すると、時刻406で、ターゲット450は、データ読取りパケットを送ることによってイメージ転送要求を開始する。各データ読取りパケットは、ターゲット450がどのイメージを受信したいか、およびイメージのどの部分を転送すべきかを指定する。正常動作中、時刻406で、ターゲット450は最初に、その他のイメージを指定するイメージヘッダ情報(すなわち、イメージサイズおよびイメージデータが転送されるべきシステムメモリ内の場所)を要求する。データ読取り要求として送られる、イメージヘッダに対するこの要求を送るとき、ターゲット450は転送されるべきイメージのフォーマットを把握している。ホスト400は、イメージフォーマットに関して何も把握することができず、ホスト400がターゲット450によって要求されたようにイメージからデータを読み取り転送することだけが可能になる。要求に続いて、時刻408で、イメージヘッダがホスト400からターゲット450に送られる。
イメージがデータ分割のない単独のバイナリイメージである(すなわち、データがターゲット450のシステムメモリに記憶ならびに転送されるとき完全に連続している)場合、ターゲット450は、イメージデータ全体が1回の転送で送られように要求することができる。イメージデータが分割され、データセグメントが連続していないシステムメモリロケーションに分散されることが必要な場合、ターゲット450は、(たとえば、時刻406、410、414、および418で)複数のデータ読取り要求を発行して、各データセグメントが(たとえば、時刻412、416、および420で)それぞれの宛先アドレスに直接転送されることを可能にすることができる。この分散情報はイメージヘッダに存在し、データ読取り要求を発行する前にターゲット450によって解析される。
データ読取り要求を受信すると、ホスト400は、対応するイメージファイルからデータを転送するために、イメージID、データオフセット、およびデータ長を解析する。ホスト400は、パケットヘッダなしで要求されたデータを送る。ターゲット450は、システムメモリ内のデータのソフトウェア処理または一時的なバッファリングを行わずに、宛先アドレスにこのデータを直接転送する。これは、イメージヘッダをターゲット450に転送することによって、かつデータ用の受信バッファをシステムメモリ内の宛先アドレスになるようにセットすることによって可能になる。
ターゲット450がイメージ用のすべてのセグメントの受信に成功した場合、時刻422で、ターゲット450は、対応するイメージのイメージIDおよび「成功」ステータスを有するイメージ転送の終了(END_IMAGE_TX)パケットを送る。これにより、ホスト400が読取りを停止し、イメージファイルをクローズすることが可能になる。成功したイメージ転送の終了を受信すると、時刻424で、ホスト400は、完了パケットを送ってターゲット450がプロトコルを終了することを可能にする。ターゲット450が完了パケットを受信すると、時刻426で、ターゲット450は、完了応答パケットをホスト400に送る。このパケット内で、ターゲット450は、別のイメージが転送されることを期待するかどうかを示す。別のイメージがターゲット450に転送されるべき場合、ホスト400はプロトコルの実行を続けることができる。
例示的なプロトコル実装。このプロトコルの例示的な態様は、ターゲットとホストの両方向けの状態機械を使用して実装することができる。これらの状態機械の例は、図5、図6、および図7に示される。
ターゲット状態機械。図5および図6は、図4に示されたパケットフローのターゲット側を実施する状態機械を示す。これは、2つのタイプのソフトウェアイメージフォーマットについて、実際のイメージデータがどのように転送され得るかを示す。
・単独のバイナリ
・実行可能およびリンク可能フォーマット(ELF)
単独のバイナリフォーマットは、イメージデータ用のサイズおよび宛先アドレスを記述する簡単なイメージヘッダを使用する。ELFフォーマットにより、データが分割され、システムメモリの連続していないセクションに分散されることが可能になる。
以下のリストは、図5および図6の状態機械における各状態、およびターゲットがこれらの状態にあるとき着信パケットにどのように反応するかを記載する。
WAIT_HELLO_RESP:ターゲットがハローパケットを送った後、ターゲットはホストからハロー応答パケットを受信するまで待つ。無効パケットまたは誤ったパケットが受信された場合、ターゲットは対応するエラーコードを有するイメージ転送の終了パケットをホストに送る。リセットパケットが受信された場合、ターゲットはリセット応答を送り、次いでリセットする。
DATA_BINARY:ターゲットは、単独のバイナリイメージヘッダを受信している。イメージヘッダで何かが誤っている場合、ターゲットは対応するエラーコードを有するイメージ転送の終了パケットを送る。有効なイメージヘッダが受信された場合、ターゲットはイメージデータを転送する単一のデータ読取り要求を送る。イメージデータが受信されると、データが有効である場合、ターゲットは「成功」ステータスを有するイメージ転送の終了を送る。イメージ転送中にいずれかのエラーが発生した場合、ターゲットは対応するエラーコードを有するイメージ転送の終了を送る。
DATA_ELF_HDR:ターゲットは、ELFイメージ用のELFヘッダを受信している。ELFヘッダで何かが誤っている場合、ターゲットは対応するエラーコードを有するイメージ転送の終了パケットを送る。有効なELFヘッダが受信された場合、ターゲットはELFイメージからのプログラムヘッダに対する単一のデータ読取り要求を送る。ELFイメージ内のプログラムヘッダのサイズおよびロケーションは、ELFヘッダに埋め込まれている。
DATA_ELF_PROG_HDR:ターゲットは、ELFイメージ用のELFプログラムヘッダを受信している。プログラムヘッダで何かが誤っている場合、ターゲットは対応するエラーコードを有するイメージ転送の終了パケットを送る。有効なプログラムヘッダが受信された場合、ターゲットはそれらを処理してハッシュテーブルセグメントのロケーションを特定する。ハッシュテーブルは、ハッシュ関数を各データセグメントに適用し、ハッシュ値をハッシュテーブルに記憶することによって、各データセグメントの完全性を検証するために使用することができる。各ELFデータセグメントをロードすると、ハッシュ関数は各セグメントに適用され、ハッシュ値をハッシュテーブルに格納されたハッシュ値と比較することができる。特定のハッシュアルゴリズムおよび認証ルーチンは、このプロトコルの範囲外なので本明細書では記載されない。
DATA_ELF_SEGMENTS:プログラムヘッダから各データセグメントのロケーションおよびサイズが決定されると、ターゲットは、各データセグメントが転送されるまでデータ読取り要求を繰り返し送る。すべてのELFセグメントが受信されると、ターゲットは「成功」ステータスを有するイメージ転送の終了を送る。
WAIT_DONE:単一のイメージ転送が完了すると、ターゲットは完了パケットが送られるのを待つ。無効または任意の他のパケットが受信された場合、ターゲットは対応するエラーコードを有するイメージ転送の終了パケットを送る。有効な完了パケットが受信された場合、ターゲットはホストに完了応答を送り、イメージ転送ステータスフィールドは、別のイメージが転送されるべきか否かに基づいて、「完了」または「保留」にセットされる。
WAIT_RESET:ターゲットでエラーが発生したときはいつでも、ターゲットはホストがリセットコマンドを送ることを期待する。ターゲットがリセットコマンドを受信した場合、ターゲットはホストにリセット応答を送り、次いでリセットする。無効または任意の他のコマンドが受信された場合、ターゲットは対応するエラーコードを有するイメージ転送の終了パケットを送る。
ホスト側の状態機械。ホスト側の状態機械は、図4に示されたパケットフローのホスト側を実施するために使用することができる。以下のリストは、その状態機械の動作、およびホストがこれらの状態にあるとき着信パケットにどのように反応するかを記載する。
WAIT_HELLO:ホストは、ターゲットがプロトコルを開始するのを待つ。ハローが受信され、プロトコルバージョンが検証されると、ホストは「成功」ステータスを有するハロー応答を送る。ホストが無効パケット(または任意の他のパケット)を受信した場合、ホストはターゲットにリセットパケットを送る。ホストは、ターゲットのプロトコルバージョンがホストと互換性がない場合もリセットパケットを送る。
WAIT_COMMAND:ホストがデータ読取りパケットを受信した場合、ホストは対応するイメージからデータを読み取り、データパケット内で転送する。ホストが「成功」ステータスを有するイメージ転送の終了パケットを受信した場合、ホストは完了パケットを送る。ホストが無効コマンド(または任意の他のコマンド)を受信した場合、ホストはリセットパケットを送る。ホストは、エラーコードを有するイメージ転送の終了パケットを受信した場合もリセットパケットを送る。
WAIT_DONE_RESP:ホストは完了応答を待つ。すべてのイメージが転送されていない場合、ホストは別のハローパケットを待つ。すべてのイメージが転送された場合、ホストはプロトコルを終了する。ホストが無効コマンド(または任意の他のコマンド)を受信した場合、ホストはリセットパケットを送る。
WAIT_RESET_RESP:ホストがリセットパケットを送った後、ホストはターゲットがリセット応答を送るのを待つ。ホストがリセット応答を受信した場合、ホストはプロトコルを終了する。ホストが無効コマンド(または任意の他のコマンド)を受信した場合、ホストは別のリセットパケットを送る。
エラー処理。「例示的なプロトコル実装」に続く上記の説明は、このプロトコルの例示的な態様を使用して、エラーをどのように報告および処理できるかを記載する。タイムアウトおよびパケットの再送信は、起こり得る送信または受信のエラーを処理するために、しばしば実施される。そのような戦略を実施するための技法を使用することができるが、それらの特定の技法のさらなる説明は、このプロトコルの例示的な態様の本説明の範囲外である。
並行イメージ転送。以下に、マルチスレッド環境の使用を介して、どのように複数のイメージを並行して転送できるかが記載される。
単一ホスト、複数ターゲット。ホストがハードウェアのトランスポート層でターゲットの間を区別し、プロトコルのパケットを対応するターゲットにルーティングできる場合、ホストは、別個のスレッド上のターゲットごとに状態機械を実行することができる。
・各ターゲットはそれ自体の状態機械を実行して、ターゲットが転送したいイメージを転送する
・ホストはスレッドマネージャを実行して、プロトコルのパケットを送受信し、それらを対応する状態機械にルーティングする
データ読取り要求は、イメージID、データオフセット、およびデータ長を指定するので、ホストは対応するイメージファイルから読み取り、要求元のターゲットにデータを送る。
複数ホスト、単一ターゲット。ターゲットが複数のホストからイメージを転送することを望む場合、各ホストからの接続を、ハードウェアのトランスポート層にカプセル化することができる。プロトコルに入ると、ターゲットは、どのハードウェアを使用して所与のイメージを転送したいかを指定することができる。ターゲットは、イメージごとにプロトコルからの出入りを選ぶことができ、イメージごとに使用するハードウェアのトランスポート層を選択することを可能にする(ディスパッチテーブルを使用することによって対応するソフトウェアドライバ内のホスト接続を事実上取り除く)。次いで、各ホストは別個の状態機械を実行することができる。
単一ホスト、単一ターゲット、並行イメージ。ターゲットがホストから並行してイメージを転送することを望む場合、(上述されたスレッド環境と同様に)ターゲットでスレッド環境を使用することができる。違いは、スレッド環境がホストで関係していないことである。ターゲットは、イメージごとに状態機械へのパケットのルーティングを管理する。
図5は、その中で本開示の態様が有利に利用され得る、例示的なワイヤレス通信システム500を示すブロック図である。例示のために、図5は、3つのリモートユニット520、530および550ならびに2つの基地局540を示す。ワイヤレス通信システムがはるかに多いリモートユニットおよび基地局を有する場合があることを認識されよう。リモートユニット520、530および550は、開示されたマルチプロセッサデバイスを含むICデバイス525A、525Cおよび525Bを含む。基地局、スイッチングデバイスおよびネットワーク機器などの他のデバイスも、開示されたマルチプロセッサデバイスを含む場合があることを認識されよう。図5は、基地局540からリモートユニット520、530および550への順方向リンク信号580、ならびにリモートユニット520、530および550から基地局540への逆方向リンク信号590を示す。
図5では、リモートユニット520は携帯電話として示され、リモートユニット530はポータブルコンピュータとして示され、リモートユニット550はワイヤレスローカルループシステム内の固定ロケーションリモートユニットとして示される。たとえば、リモートユニットは、携帯電話、ハンドヘルドパーソナル通信システム(PCS)ユニット、携帯情報端末などのポータブルデータユニット、GPS対応デバイス、ナビゲーションデバイス、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、メータ読取り機器などの固定ロケーションデータユニット、またはデータもしくはコンピュータ命令の記憶もしくは取り出しを行う任意の他のデバイス、またはそれらの任意の組合せであり得る。図5は、本開示の教示によるリモートユニットを示すが、本開示は、これらの例示的に示されたユニットには限定されない。本開示の態様は、マルチプロセッサシステムを含む任意のデバイスで適切に使用することができる。
図6に示されたように、マルチプロセッサシステム内の2次プロセッサは、実行可能ソフトウェアイメージの転送用の方法を実行することができる。ブロック602で示されたように、2次プロセッサは、1次プロセッサとの通信を開始することができる。ブロック604で示されたように、2次プロセッサは、実行可能ソフトウェアイメージ用のイメージヘッダを転送するように、1次プロセッサに命令することができる。実行可能ソフトウェアイメージは、イメージヘッダおよび少なくとも1つのデータセグメントを含む。ブロック606で示されたように、2次プロセッサは、イメージヘッダおよび少なくとも1つのデータセグメントを受信することができる。ブロック608で示されたように、2次プロセッサは、イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信を示すことができる。ブロック610で示されたように、2次プロセッサは、実行可能ソフトウェアイメージの転送終了の指示を受信することができる。ブロック612で示されたように、2次プロセッサは、転送終了の指示の受信を確認応答することができる。
マルチプロセッサデバイスは、開始するための手段、命令するための手段、受信するための手段、示すための手段、および確認応答するための手段を備えることができる。手段は、アプリケーションプロセッサ104、204、2次プロセッサ302、プロセッサ間通信バス134、234、ハードウェア移送機構309、コントローラ304、および/または物理データパイプ310を含むことができる。別の態様では、上記の手段は、上記の手段によって列挙された機能を実行するように構成されたモジュールまたは任意の装置であり得る。
図7に示されたように、マルチプロセッサシステム内の1次プロセッサは、ブロック702で示されたように、実行可能ソフトウェアイメージ用のイメージヘッダを転送する命令を受信することができ、前記実行可能ソフトウェアイメージは、前記イメージヘッダおよび少なくとも1つのデータセグメントを含む。ブロック704で示されたように、1次プロセッサは、イメージヘッダおよび少なくとも1つのデータセグメントを2次プロセッサに送ることができる。ブロック706で示されたように、1次プロセッサは、イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信の2次プロセッサからの指示を受信することができる。ブロック708で示されたように、1次プロセッサは、実行可能イメージの転送終了の指示を送ることができる。ブロック710で示されたように、1次プロセッサは、転送終了の指示の受信の2次プロセッサからの確認応答を受信することができる。
マルチプロセッサデバイスは、受信するための手段、および送るための手段を備えることができる。手段は、モデムプロセッサ110、210、1次プロセッサ301、プロセッサ間通信バス134、234、ハードウェア移送機構308、システムメモリ307、および/または物理データパイプ310を含むことができる。別の態様では、上記の手段は、上記の手段によって列挙された機能を実行するように構成されたモジュールまたは任意の装置であり得る。
ファームウェアおよび/またはソフトウェアの実装形態の場合、これらの方法を、本明細書に記載された機能を実行するモジュール(たとえば、プロシージャ、関数など)で実施することができる。本明細書に記載された方法を実施する際に、命令を有形に具現化する任意の機械可読媒体を使用することができる。たとえば、ソフトウェアコードをメモリに記憶し、プロセッサユニットによって実行することができる。メモリは、プロセッサユニット内に実装され得るか、またはプロセッサユニットの外部であり得る。本明細書で使用する「メモリ」という用語は、長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、または他のメモリのいずれかのタイプを指し、メモリのいかなる特定のタイプもしくはメモリの数、またはメモリが記憶される媒体のタイプには限定されない。
ファームウェアおよび/またはソフトウェアに実装する場合、機能は、コンピュータ可読媒体に1つまたは複数の命令またはコードとして記憶することができる。これらの例には、データ構造で符号化されたコンピュータ可読媒体、およびコンピュータプログラムで符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体には、物理的コンピュータ記憶媒体が含まれる。記憶媒体は、コンピュータによってアクセスされ得る任意の入手可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体には、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または所望のプログラムコードを命令もしくはデータ構造の形で記憶するのに使用することができ、かつコンピュータによってアクセスすることができる任意の他の媒体が含まれ得るし、本明細書で使用する場合、ディスク(diskおよびdisc)には、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクが含まれ、ディスク(disk)は通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
命令および/またはデータは、コンピュータ可読媒体に記憶されることに加えて、通信装置に含まれる伝送媒体上の信号として提供される場合がある。たとえば、通信装置は、命令およびデータを示す信号を有する送受信機を含む場合がある。命令およびデータは、1つまたは複数のプロセッサに、特許請求の範囲において概説される機能を実施させるように構成される。
特定の回路が説明されたが、当業者は、本開示を実施するために、開示された回路のすべてが必要とされるわけではないことを理解されよう。その上、本開示に対する注目を維持するために、いくつかのよく知られている回路は記載されなかった。
本開示およびその利点が詳細に記載されたが、添付の特許請求の範囲によって規定される本開示の技術から逸脱することなく、本明細書において様々な変更、代用および改変が行われ得ることを理解されたい。たとえば、「上」および「下」などの関係用語が、基板または電子デバイスに関して使用される。もちろん、基板または電子デバイスが反転した場合、上は下に、下は上になる。加えて、横向きの場合、上および下は、基板または電子デバイスの側面を指す場合がある。さらに、本出願の範囲は、本明細書に記載されたプロセス、機械、製造、物質組成、手段、方法、およびステップの特定の実施形態に限定されるものではない。当業者が本開示から容易に諒解するように、本明細書に記載された対応する実施形態と実質的に同じ機能を実行するか、または実質的に同じ結果を実現する、既存または今後開発されるプロセス、機械、製造、物質組成、手段、方法、またはステップが、本開示に従って利用され得る。したがって、添付の特許請求の範囲は、そのようなプロセス、機械、製造、物質組成、手段、方法、またはステップをそれらの範囲内に含むものとする。
102 第1のマルチプロセッサアーキテクチャ
104 アプリケーションプロセッサ
106 1次不揮発性メモリ
108 アプリケーションプロセッサ揮発性メモリ
110 モデムプロセッサ
112 モデムプロセッサ揮発性メモリ
114 2次不揮発性メモリ
116 APファイルシステム
118 AP実行可能イメージ
120 モデム実行可能イメージ
122 AP実行可能イメージ
124 AP実行時データ
126 ハードウェアブートROM
128 モデムファイルシステム
130 モデム実行時データ
132 モデム実行可能イメージ
134 プロセッサ間通信バス
202 第2のマルチプロセッサアーキテクチャ
204 アプリケーションプロセッサ
206 1次不揮発性メモリ
208 アプリケーションプロセッサ揮発性メモリ
210 モデムプロセッサ
212 モデムプロセッサ揮発性メモリ
214 モデム実行可能イメージ
216 APファイルシステム
218 AP実行可能イメージ
220 モデムファイルシステム
222 AP実行可能イメージ
224 AP実行時データ
226 モデムブートROMコード
228 ファイルシステムミラー
230 モデム実行時データ
234 プロセッサ間通信バス
236 モデム実行可能イメージ
301 1次プロセッサ
302 2次プロセッサ
303 ソフトウェアイメージ
304 分散ローダ/直接メモリアクセスコントローラ
305 2次プロセッサのシステムメモリ
306 1次プロセッサの不揮発性メモリ
307 1次プロセッサのシステムメモリ
308 1次プロセッサのハードウェア移送機構
309 2次プロセッサのハードウェア移送機構
310 プロセッサ間通信バス
400 ホスト
402 ハロー
404 ハロー応答
406 READ_DATA(イメージID、オフセット、イメージヘッダのサイズ)
408 RAW_DATA(イメージヘッダ)
410 READ_DATA(イメージID、セグメント0のオフセット、セグメント0のサイズ)
412 RAW_DATA(セグメント0)
414 READ_DATA(イメージID、セグメント1のオフセット、セグメント1のサイズ)
416 RAW_DATA(セグメント1)
418 READ_DATA(イメージID、セグメントNのオフセット、セグメントNのサイズ)
420 RAW_DATA(セグメントN)
422 END_IMG_TX
424 DONE
426 DONE_RESP
450 ターゲット
500 ワイヤレス通信システム
520 リモートユニット
525A ICデバイス
525B ICデバイス
525C ICデバイス
530 リモートユニット
540 基地局
550 リモートユニット
580 順方向リンク信号
590 逆方向リンク信号
602 1次プロセッサとの通信を開始する
604 実行可能ソフトウェアイメージ用のイメージヘッダを転送するように、1次プロセッサに命令する
606 イメージヘッダおよびデータセグメントを受信する
608 イメージヘッダおよびデータセグメントの成功した受信を示す
610 転送終了の指示を受信する
610 転送終了の指示の受信を確認応答する
702 実行可能ソフトウェアイメージ用のイメージヘッダを転送する命令を受信する 704 イメージヘッダおよびデータセグメントを2次プロセッサに送る
706 イメージヘッダおよびデータセグメントの成功した受信の指示を受信する
708 実行可能イメージの転送終了の指示を送る
710 転送終了の指示の受信の確認応答を受信する

Claims (30)

  1. マルチプロセッサシステム内の2つのプロセッサ間の通信方法であって、
    2次プロセッサにより、1次プロセッサとの通信を開始するステップと、
    前記2次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントを含む実行可能ソフトウェアイメージ用の前記イメージヘッダを転送するように、前記1次プロセッサに命令するステップと、
    前記2次プロセッサにより、前記1次プロセッサから、前記イメージヘッダおよび少なくとも1つのデータセグメントを受信するステップと、
    前記2次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信を、前記1次プロセッサに示すステップと、
    前記2次プロセッサにより、前記2次プロセッサのシステムメモリのターゲットロケーション内に前記実行可能ソフトウェアイメージの前記少なくとも1つのデータセグメントを直接記憶するステップであって、前記ターゲットロケーションは、前記イメージヘッダに従って前記2次プロセッサにより割り当てられる、ステップと、
    前記2次プロセッサにより、転送終了の指示の受信を、前記1次プロセッサに確認応答するステップと
    を含む、方法。
  2. 前記イメージヘッダが、イメージサイズと、イメージデータが位置するメモリ内のロケーションとを含む、請求項1に記載の方法。
  3. 前記2次プロセッサにより、前記少なくとも1つのデータセグメントの各々について、前記1次プロセッサに転送要求を送るステップをさらに含む、請求項1に記載の方法。
  4. 前記命令するステップが、前記2次プロセッサにより、イメージ識別情報、データオフセット、およびデータ長を含むメッセージを、前記1次プロセッサに送るステップを含む、請求項1に記載の方法。
  5. 前記2次プロセッサにより、着信データセグメント用の受信バッファを、前記2次プロセッサの前記システムメモリ内の宛先アドレスになるようにセットするステップをさらに含む、請求項1に記載の方法。
  6. 2次プロセッサにより、1次プロセッサとの通信を開始するための手段と、
    前記2次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントを含む実行可能ソフトウェアイメージ用の前記イメージヘッダを転送するように、前記1次プロセッサに命令するための手段と、
    前記2次プロセッサにより、前記1次プロセッサから、前記イメージヘッダおよび少なくとも1つのデータセグメントを受信するための手段と、
    前記2次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信を、前記1次プロセッサに示すための手段と、
    前記2次プロセッサにより、前記2次プロセッサのシステムメモリのターゲットロケーション内に前記実行可能ソフトウェアイメージの前記少なくとも1つのデータセグメントを直接記憶するための手段であって、前記ターゲットロケーションは前記イメージヘッダに従って前記2次プロセッサにより割り当てられる、手段と、
    前記2次プロセッサにより、転送終了の指示の受信を、前記1次プロセッサに確認応答するための手段と
    を備える、マルチプロセッサデバイス。
  7. 前記イメージヘッダが、イメージサイズと、イメージデータが位置するメモリ内のロケーションとを含む、請求項6に記載のマルチプロセッサデバイス。
  8. 前記2次プロセッサにより、前記少なくとも1つのデータセグメントの各々について、前記1次プロセッサに転送要求を送るための手段をさらに備える、請求項6に記載のマルチプロセッサデバイス。
  9. 前記命令するための手段が、前記2次プロセッサにより、イメージ識別情報、データオフセット、およびデータ長を含むメッセージを、前記1次プロセッサに送るための手段を備える、請求項6に記載のマルチプロセッサデバイス。
  10. 前記2次プロセッサにより、着信データセグメント用の受信バッファを、前記2次プロセッサの前記システムメモリ内の宛先アドレスになるようにセットするための手段をさらに備える、請求項6に記載のマルチプロセッサデバイス。
  11. プロセッサにより実行可能なプログラムコードを含むコンピュータプログラムであって、前記プログラムコードが、
    2次プロセッサにより、1次プロセッサとの通信を開始するプログラムコードと、
    前記2次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントを含む実行可能ソフトウェアイメージ用の前記イメージヘッダを転送するように、前記1次プロセッサに命令するプログラムコードと、
    前記2次プロセッサにより、前記1次プロセッサから、前記イメージヘッダおよび少なくとも1つのデータセグメントを受信するプログラムコードと、
    前記2次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信を、前記1次プロセッサに示すプログラムコードと、
    前記2次プロセッサにより、前記2次プロセッサのシステムメモリのターゲットロケーション内に前記実行可能ソフトウェアイメージの前記少なくとも1つのデータセグメントを直接記憶するプログラムコードであって、前記ターゲットロケーションは前記イメージヘッダに従って前記2次プロセッサにより割り当てられる、プログラムコードと、
    前記2次プロセッサにより、転送終了の指示の受信を、前記1次プロセッサに確認応答するプログラムコードと
    を含む、
    コンピュータプログラム。
  12. 前記イメージヘッダが、イメージサイズと、イメージデータが位置するメモリ内のロケーションとを含む、請求項11に記載のコンピュータプログラム。
  13. 前記プログラムコードが、前記2次プロセッサにより、前記少なくとも1つのデータセグメントの各々について、前記1次プロセッサに転送要求を送るプログラムコードをさらに含む、請求項11に記載のコンピュータプログラム。
  14. 前記命令するプログラムコードが、前記2次プロセッサにより、イメージ識別情報、データオフセット、およびデータ長を含むメッセージを、前記1次プロセッサに送るプログラムコードを含む、請求項11に記載のコンピュータプログラム。
  15. 前記プログラムコードが、前記2次プロセッサにより、着信データセグメント用の受信バッファを、前記2次プロセッサの前記システムメモリ内の宛先アドレスになるようにセットするプログラムコードをさらに含む、請求項11に記載のコンピュータプログラム。
  16. マルチプロセッサシステム内の2つのプロセッサ間の通信方法であって、
    1次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントを含む実行可能ソフトウェアイメージ用の前記イメージヘッダを転送する命令を受信するステップと、
    前記1次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントを前記2次プロセッサに送るステップであって、前記実行可能ソフトウェアイメージの前記少なくとも1つのデータセグメントは、前記2次プロセッサのシステムメモリのターゲットロケーション内に直接記憶され、前記ターゲットロケーションは、前記イメージヘッダに従って割り当てられる、ステップと、
    前記1次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信の前記2次プロセッサからの指示を受信するステップと、
    前記1次プロセッサにより、前記実行可能ソフトウェアイメージの転送終了の指示を送るステップと、
    前記1次プロセッサにより、前記転送終了の指示の受信の前記2次プロセッサからの確認応答を受信するステップと
    を含む、方法。
  17. 前記イメージヘッダが、イメージサイズと、イメージデータが位置するメモリ内のロケーションとを含む、請求項16に記載の方法。
  18. 前記1次プロセッサにより、前記少なくとも1つのデータセグメントの各々について、前記1次プロセッサへの転送要求を受信するステップをさらに含む、請求項16に記載の方法。
  19. 前記1次プロセッサにより、イメージ識別情報、データオフセット、およびデータ長を含む前記2次プロセッサからのメッセージを受信するステップをさらに含む、請求項16に記載の方法。
  20. 前記メッセージに基づいてデータを送るステップをさらに含む、請求項19に記載の方法。
  21. 1次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントを含む実行可能ソフトウェアイメージ用の前記イメージヘッダを転送する命令を受信するための手段と、
    前記1次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントを前記2次プロセッサに送るための手段であって、受信された前記実行可能ソフトウェアイメージの前記少なくとも1つのデータセグメントは、前記2次プロセッサのシステムメモリのターゲットロケーション内に直接記憶され、前記ターゲットロケーションは、前記イメージヘッダに従って割り当てられる、手段と、
    前記1次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信の前記2次プロセッサからの指示を受信するための手段と、
    前記1次プロセッサにより、前記実行可能ソフトウェアイメージの転送終了の指示を送るための手段と、
    前記1次プロセッサにより、前記転送終了の指示の受信の前記2次プロセッサからの確認応答を受信するための手段と
    を備える、マルチプロセッサデバイス。
  22. 前記イメージヘッダが、イメージサイズと、イメージデータが位置するメモリ内のロケーションとを含む、請求項21に記載のマルチプロセッサデバイス。
  23. 前記1次プロセッサにより、前記少なくとも1つのデータセグメントの各々について、前記1次プロセッサへの転送要求を受信するための手段をさらに備える、請求項21に記載のマルチプロセッサデバイス。
  24. 前記1次プロセッサにより、イメージ識別情報、データオフセット、およびデータ長を含む前記2次プロセッサからのメッセージを受信するための手段をさらに備える、請求項21に記載のマルチプロセッサデバイス。
  25. メッセージに基づいてデータを送るための手段をさらに備える、請求項24に記載のマルチプロセッサデバイス。
  26. プロセッサにより実行可能なプログラムコードを含むコンピュータプログラムであって、前記プログラムコードが、
    1次プロセッサにより、イメージヘッダおよび少なくとも1つのデータセグメントを含む実行可能ソフトウェアイメージ用の前記イメージヘッダを転送する命令を受信するプログラムコードと、
    前記1次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントを前記2次プロセッサに送るプログラムコードであって、前記実行可能ソフトウェアイメージの前記少なくとも1つのデータセグメントは、2次プロセッサのシステムメモリのターゲットロケーション内に直接記憶され、前記ターゲットロケーションは、前記イメージヘッダに従って割り当てられる、プログラムコードと、
    前記1次プロセッサにより、前記イメージヘッダおよび少なくとも1つのデータセグメントの成功した受信の前記2次プロセッサからの指示を受信するプログラムコードと、
    前記1次プロセッサにより、前記実行可能ソフトウェアイメージの転送終了の指示を送るプログラムコードと、
    前記1次プロセッサにより、前記転送終了の指示の受信の前記2次プロセッサからの確認応答を受信するプログラムコードと
    を含む、
    コンピュータプログラム。
  27. 前記イメージヘッダが、イメージサイズと、イメージデータが位置するメモリ内のロケーションとを含む、請求項26に記載のコンピュータプログラム。
  28. 前記プログラムコードが、前記1次プロセッサにより、前記少なくとも1つのデータセグメントの各々について、前記1次プロセッサへの転送要求を受信するプログラムコードをさらに含む、請求項26に記載のコンピュータプログラム。
  29. 前記プログラムコードが、前記1次プロセッサにより、イメージ識別情報、データオフセット、およびデータ長を含む前記2次プロセッサからのメッセージを受信するプログラムコードをさらに含む、請求項26に記載のコンピュータプログラム。
  30. 前記プログラムコードが、前記メッセージに基づいてデータを送るプログラムコードをさらに含む、請求項29に記載のコンピュータプログラム。
JP2016027736A 2011-12-05 2016-02-17 マルチプロセッサシステムにおけるプロセッサ間プロトコル Active JP6336498B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/310,928 2011-12-05
US13/310,928 US9058191B2 (en) 2010-03-22 2011-12-05 Direct transfer of executable software image to memory allocated by target processor based on transferred image header

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014546042A Division JP5890038B2 (ja) 2011-12-05 2012-12-05 マルチプロセッサシステムにおけるプロセッサ間プロトコル

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP2017067173A Division JP2017117499A (ja) 2011-12-05 2017-03-30 マルチプロセッサシステムにおけるプロセッサ間プロトコル
JP2017239644A Division JP2018045718A (ja) 2011-12-05 2017-12-14 マルチプロセッサシステムにおけるプロセッサ間プロトコル

Publications (2)

Publication Number Publication Date
JP2016115371A true JP2016115371A (ja) 2016-06-23
JP6336498B2 JP6336498B2 (ja) 2018-06-06

Family

ID=47472020

Family Applications (4)

Application Number Title Priority Date Filing Date
JP2014546042A Active JP5890038B2 (ja) 2011-12-05 2012-12-05 マルチプロセッサシステムにおけるプロセッサ間プロトコル
JP2016027736A Active JP6336498B2 (ja) 2011-12-05 2016-02-17 マルチプロセッサシステムにおけるプロセッサ間プロトコル
JP2017067173A Pending JP2017117499A (ja) 2011-12-05 2017-03-30 マルチプロセッサシステムにおけるプロセッサ間プロトコル
JP2017239644A Pending JP2018045718A (ja) 2011-12-05 2017-12-14 マルチプロセッサシステムにおけるプロセッサ間プロトコル

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014546042A Active JP5890038B2 (ja) 2011-12-05 2012-12-05 マルチプロセッサシステムにおけるプロセッサ間プロトコル

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2017067173A Pending JP2017117499A (ja) 2011-12-05 2017-03-30 マルチプロセッサシステムにおけるプロセッサ間プロトコル
JP2017239644A Pending JP2018045718A (ja) 2011-12-05 2017-12-14 マルチプロセッサシステムにおけるプロセッサ間プロトコル

Country Status (6)

Country Link
US (1) US9058191B2 (ja)
EP (1) EP2788870A1 (ja)
JP (4) JP5890038B2 (ja)
KR (1) KR101627097B1 (ja)
CN (1) CN103975305B (ja)
WO (1) WO2013086062A1 (ja)

Families Citing this family (23)

* 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
KR102011137B1 (ko) 2012-12-07 2019-08-14 삼성전자주식회사 데이터 처리 장치와 회로
US9594718B2 (en) 2013-01-24 2017-03-14 Qualcomm Innovation Center, Inc. Hardware accelerated communications over a chip-to-chip interface
US8954992B2 (en) * 2013-03-15 2015-02-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Distributed and scaled-out network switch and packet processing
JP6089349B2 (ja) * 2013-05-28 2017-03-08 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム
KR102116096B1 (ko) * 2013-12-20 2020-05-27 한화테크윈 주식회사 다중시스템 및 이의 부팅 방법
KR102083931B1 (ko) 2014-01-21 2020-03-03 한화테크윈 주식회사 광각 렌즈계
TWI557644B (zh) * 2014-11-12 2016-11-11 鴻海精密工業股份有限公司 雙處理器電子裝置及其快速開機啓動的方法
CN105704749A (zh) * 2016-01-11 2016-06-22 努比亚技术有限公司 网络参数恢复装置及方法
US10564983B2 (en) * 2016-06-15 2020-02-18 Vmware, Inc. Multiprocessor initialization via firmware configuration
US11449479B2 (en) * 2018-08-06 2022-09-20 Accelario Software Ltd. Data migration methods and system
US11824009B2 (en) 2018-12-10 2023-11-21 Preferred Networks, Inc. Semiconductor device and data transferring method for semiconductor device
US11853104B2 (en) * 2019-06-27 2023-12-26 Netapp, Inc. Virtual machine backup from computing environment to storage environment
US11201749B2 (en) 2019-09-11 2021-12-14 International Business Machines Corporation Establishing a security association and authentication to secure communication between an initiator and a responder
US11308243B2 (en) 2019-09-11 2022-04-19 International Business Machines Corporation Maintenance of access for security enablement in a storage device
US11206144B2 (en) 2019-09-11 2021-12-21 International Business Machines Corporation Establishing a security association and authentication to secure communication between an initiator and a responder
US11354455B2 (en) 2019-09-11 2022-06-07 International Business Machines Corporation Maintenance of access for security enablement on a host system
US11188658B2 (en) 2019-09-11 2021-11-30 International Business Machines Corporation Concurrent enablement of encryption on an operational path at a storage port
US11188659B2 (en) 2019-09-11 2021-11-30 International Business Machines Corporation Concurrent enablement of encryption on an operational path at a host port
US11303441B2 (en) 2019-09-25 2022-04-12 International Business Machines Corporation Reverting from a new security association to a previous security association in response to an error during a rekey operation
US11245521B2 (en) 2019-09-25 2022-02-08 International Business Machines Corporation Reverting from a new security association to a previous security association in response to an error during a rekey operation
US11570586B2 (en) * 2020-07-02 2023-01-31 At&T Intellectual Property I, L.P. Location aware assignment of resources for push to talk (PTT) communication systems in a fifth generation (5G) network or other next generation wireless communication system
CN113204438B (zh) * 2021-03-24 2023-08-01 深圳震有科技股份有限公司 一种amp系统核间通讯方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253960A (ja) * 1994-03-16 1995-10-03 Fujitsu Ltd マルチプロセッサシステムにおけるipl方式
JPH08161283A (ja) * 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
JPH11282686A (ja) * 1998-03-30 1999-10-15 Hitachi Ltd ネットワークコンピュータシステム
US5978589A (en) * 1995-12-30 1999-11-02 Samsung Electronics Co., Ltd. Loading method of base station system in digital cellular system
WO2006077068A2 (en) * 2005-01-22 2006-07-27 Telefonaktiebolaget L M Ericsson (Publ) Operating-system-friendly bootloader
JP2007183705A (ja) * 2006-01-04 2007-07-19 Olympus Corp マルチプロセッサシステム
WO2011119648A1 (en) * 2010-03-22 2011-09-29 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3639571A1 (de) 1986-11-20 1988-06-01 Standard Elektrik Lorenz Ag Verfahren und schaltungsanordnung zum urladen eines zweitrechners
JPH06195310A (ja) 1992-12-22 1994-07-15 Fujitsu Ltd マルチcpuに対する制御データ書換え方法
JPH09244902A (ja) 1996-03-12 1997-09-19 Oki Electric Ind Co Ltd ダウンロード回路
KR100265955B1 (ko) * 1996-12-02 2000-09-15 김영환 주프로세서에대해다수개의부프로세서가존재하는시스템의부프로세서로딩방법
JP2000020492A (ja) 1998-06-29 2000-01-21 Yaskawa Electric Corp サブcpuへのプログラムダウンロード方法およびそのnc装置
US20020138156A1 (en) 2001-01-25 2002-09-26 Wong Isaac H. System of connecting multiple processors in cascade
KR100994003B1 (ko) 2001-01-31 2010-11-11 가부시키가이샤 히타치세이사쿠쇼 데이터 처리 시스템 및 데이터 프로세서
US7093104B2 (en) 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
JP2003036251A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 信号処理装置
JP2004086447A (ja) 2002-08-26 2004-03-18 Renesas Technology Corp マイクロコンピュータ
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
US7359919B2 (en) * 2005-03-08 2008-04-15 Microsoft Corporation Reliable request-response messaging over a request-response transport
JP2007157150A (ja) 2005-12-06 2007-06-21 Samsung Electronics Co Ltd メモリシステム及びそれを含むメモリ処理方法
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
EP2034416A4 (en) 2006-06-27 2009-09-09 Nec Corp MULTIPROCESSOR SYSTEM AND PORTABLE DEVICE THEREWITH
US20080235493A1 (en) * 2007-03-23 2008-09-25 Qualcomm Incorporated Instruction communication techniques for multi-processor system
KR20100034415A (ko) 2008-09-24 2010-04-01 삼성전자주식회사 메모리 링크 아키텍쳐를 활용한 부팅기능을 갖는 멀티 프로세서 시스템
CN101387952B (zh) 2008-09-24 2011-12-21 上海大学 单芯片多处理器任务调度管理方法
KR20110013867A (ko) 2009-08-04 2011-02-10 삼성전자주식회사 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템
JP5999532B2 (ja) * 2015-09-16 2016-09-28 ヤマハ株式会社 Pll回路

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07253960A (ja) * 1994-03-16 1995-10-03 Fujitsu Ltd マルチプロセッサシステムにおけるipl方式
JPH08161283A (ja) * 1994-12-07 1996-06-21 Sony Corp 複数プロセツサシステム
US5978589A (en) * 1995-12-30 1999-11-02 Samsung Electronics Co., Ltd. Loading method of base station system in digital cellular system
JPH11282686A (ja) * 1998-03-30 1999-10-15 Hitachi Ltd ネットワークコンピュータシステム
WO2006077068A2 (en) * 2005-01-22 2006-07-27 Telefonaktiebolaget L M Ericsson (Publ) Operating-system-friendly bootloader
JP2007183705A (ja) * 2006-01-04 2007-07-19 Olympus Corp マルチプロセッサシステム
WO2011119648A1 (en) * 2010-03-22 2011-09-29 Qualcomm Incorporated Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system
JP2013522803A (ja) * 2010-03-22 2013-06-13 クアルコム,インコーポレイテッド マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェア画像の直接分散ローディング

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
浜田 憲一郎, WINDOWS VISTA デバイスドライバプログラミング, vol. 第1版, JPN6016041118, 30 September 2007 (2007-09-30), JP, pages 221頁〜232頁 *
野崎 原生 他, USB3.0設計のすべて 初版, vol. 第1版, JPN6018010768, 20 October 2011 (2011-10-20), JP, pages 第98頁-第104頁 *

Also Published As

Publication number Publication date
JP2015508520A (ja) 2015-03-19
JP2017117499A (ja) 2017-06-29
CN103975305A (zh) 2014-08-06
CN103975305B (zh) 2017-10-31
JP2018045718A (ja) 2018-03-22
US20120089814A1 (en) 2012-04-12
KR101627097B1 (ko) 2016-06-03
JP5890038B2 (ja) 2016-03-22
KR20140098246A (ko) 2014-08-07
EP2788870A1 (en) 2014-10-15
JP6336498B2 (ja) 2018-06-06
WO2013086062A1 (en) 2013-06-13
US9058191B2 (en) 2015-06-16

Similar Documents

Publication Publication Date Title
JP6336498B2 (ja) マルチプロセッサシステムにおけるプロセッサ間プロトコル
EP2550603B1 (en) Direct scatter loading of executable software image from a primary processor to one or more secondary processors in a multi-processor system
JP2013522803A5 (ja)
US11379278B2 (en) Methods and apparatus for correcting out-of-order data transactions between processors
US8626969B2 (en) Redirection communication
CN113709131B (zh) 一种网络数据传输方法、装置、计算机设备及可读介质
JP5932947B2 (ja) ホスト及びシステム
KR20190088734A (ko) 메모리 인터페이스와, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN111800488B (zh) 一种基于udp和ipv6协议的数据传输方法及系统
TWI269978B (en) Method allowing single host to access plurality of peripheral devices and electronic system thereof
US20090064129A1 (en) Suspend and resume mechanisms on a flash memory
WO2023226720A1 (zh) 资源文件的传输方法、装置、设备及存储介质
KR20150011738A (ko) 컴퓨터 시스템의 부팅 가속을 위한 시스템 및 방법
KR20040043940A (ko) 펌웨어 다운로드 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161031

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170330

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170814

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171214

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180402

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180502

R150 Certificate of patent or registration of utility model

Ref document number: 6336498

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250