• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない(前置又は当審拒絶理由) G06F
管理番号 1315546
審判番号 不服2014-18109  
総通号数 199 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2016-07-29 
種別 拒絶査定不服の審決 
審判請求日 2014-09-10 
確定日 2016-06-07 
事件の表示 特願2013-501416「マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェアイメージの直接分散ローディング」拒絶査定不服審判事件〔平成23年 9月29日国際公開、WO2011/119648、平成25年 6月13日国内公表、特表2013-522803〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 1.手続の経緯
本願は,2011年3月22日(パリ条約による優先権主張外国庁受理2011年3月21日,米国,2010年4月19日,米国,2010年4月14日,米国,2010年4月14日,米国,2010年3月22日,米国)を国際出願日とする出願であって,平成24年9月21日付けで手続補正がなされ,平成25年12月10日付けの拒絶理由通知に対して平成26年3月17日付けで意見書が提出されるとともに誤訳訂正がなされたが,同年5月7日付けで拒絶査定がなされ,これに対して同年9月10日に拒絶査定不服審判の請求がなされ,平成27年6月26日付けの当審の拒絶理由通知に対して,同年9月29日付けで意見書が提出されるとともに手続補正がなされたものである。

2.本願発明
本願の請求項10に係る発明(以下,「本願発明」という。)は,平成27年9月29日付けの手続補正書により補正された特許請求の範囲の請求項10に記載された事項により特定される次のとおりのものである。

「2次プロセッサにおいて,チップ間通信バスを介して1次プロセッサから,前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェアイメージのイメージヘッダを受信するステップであって,前記実行可能ソフトウェアイメージは,前記イメージヘッダおよび少なくとも1つのデータセグメントを備え,前記2次プロセッサは,最初に前記1次プロセッサに対して前記イメージヘッダを要求し,その後前記少なくとも1つのデータセグメントを要求し,前記イメージヘッダおよび各データセグメントは別々に受信される,ステップと,
各データセグメントを記憶する,前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために,前記イメージヘッダを前記2次プロセッサによって処理するステップと,
前記2次プロセッサにおいて,前記チップ間通信バスを介して前記1次プロセッサから,各データセグメントを受信するステップと,
前記2次プロセッサによって,前記1次プロセッサから前記システムメモリの中の前記特定された少なくとも1つのロケーションに各データセグメントを直接分散ロードするステップと
を含み,各データセグメントは,処理されたイメージヘッダに少なくとも一部基づいて分散ロードされる,方法。」

3.引用例
(1)引用例1
当審で通知した平成27年6月26日付けの拒絶理由通知において引用した国際公開第2006/077068号(以下,「引用例1」という。)には,図面とともに,次の事項が記載されている。(下線は当審において付加したものである。)

(ア)「FIG. 1 depicts such a multi-processor system 100 that includes a host processor 102 and a client processor 104. It will be appreciated that although FIG. 1 shows one client processor 104, more can be provided. It will also be appreciated that the host and client processors may be any programmable electronic processors. In the example depicted in FIG. 1 , the processor 102 is shown as the central processing unit (CPU) of an advanced RISC machine (ARM), and the processor 104 is shown as the CPU of a digital signal processor (DSP) device. The dashed line in FIG. 1 depicts the hardware boundary between the host and slave devices, in this example, the ARM and the DSP, and also a non-volatile memory 106. The memory 106 may be a ROM, a flash memory, or other type of non-volatile memory device.
Most commercially available DSP devices include on-chip memories, and as indicated in FIG. 1 , the DSP includes "internal" single-access RAM (SARAM) and dual- access RAM (DARAM) 108, as well as an "external" RAM (XRAM) 110. An intermediate storage area, indicated by the dashed line, is defined within the memory 108 as described in more detail below. The arrows in FIG. 1 indicate access paths, e.g., busses and DMA paths, between the CPUs and the memories. The ARM host CPU 102 can access the non-volatile memory 106 and the SARAM and DARAM 108 of the DSP, but not the DSP's XRAM 110, and the DSP slave CPU 104 can access all of the RAMs 108, 110.
The SARAM and DARAM 108 can be loaded from the non-volatile memory 106 by the trivial "push" method. When code needs to be loaded to the XRAM 110 during boot, however, a bootloader solution is required because the XRAM 110 is invisible to, i.e., not accessible by, the CPU 102 and so boot code cannot be pushed to the XRAM 110.」(第4頁27行?第5頁17行)
(当審仮訳:図1は,ホストプロセッサ102とクライアントプロセッサ104を含むようなマルチプロセッサシステム100を示す。図1は1つのクライアントプロセッサ104を示すが,さらに多くを備えることができることは理解される。また,ホストプロセッサとクライアントプロセッサは,任意のプログラムできる電子プロセッサでよいことも理解される。図1で示された例では,プロセッサ102は,advanced RISC machine(ARM)の中央処理装置(CPU)として示され,プロセッサ104は,デジタル信号プロセッサ(DSP)装置のCPUとして示される。図1の中の破線は,ホスト装置とスレーブ装置,この例ではARMとDSP,及び不揮発性メモリ106との間のハードウェア境界を示す。メモリ106はROM,フラッシュメモリ,あるいは他のタイプの不揮発性メモリ装置でもよい。
最も商業的に利用可能なDSP装置は,オンチップメモリを含み,図1に示されるように,DSPは,“内部の”シングルアクセスRAM(SARAM)及びデュアルアクセスRAM(DARAM)108,並びに“外部の”RAM(XRAM)110を含む。破線で示される中間の記憶領域は,以下でより詳しく記述されるように,メモリ108の中で定義される。図1における矢印は,例えば,バスやDMAパスのような,CPUとメモリとの間のアクセスパスを示す。ARMホストCPU102は,不揮発性メモリ106とDSPのSARAM及びDARAM108にアクセスすることができるが,DSPのXRAM110にはアクセスできない。また,DSPのスレーブCPU104は,RAM108,110のすべてにアクセスすることができる。
SARAM及びDARAM108は上述の“プッシュ”方式によって不揮発性メモリ106からロードされ得る。しかしながら,ブートの間にコードがXRAM110にロードされる必要があるとき,XRAM110は,CPU102に見えない,すなわち,CPU102によってアクセスできない,そして,そのためにブートコードがXRAM110にプッシュされることができないため,bootloaderソリューションが必要とされる。)

(イ)「As described in more detail below and in connection with the flow chart of FIG. 2, an OS-friendly bootloader advantageously has a host part and a client part that is loaded into a memory or memories visible to both the master and the slave (e.g., SARAM and DARAM 108).
The host part of the OS-friendly bootloader may be considered as including two stages or modes of operation. The first stage resets and holds the slave 104 in the reset state (Step 202) and pushes information (program instructions and/or data) (Step 204) in the usual way from the non-volatile memory 106 into the commonly visible memories 108. The information pushed into these memories is mainly the bootloader, the OS, and any necessary start-up code for the OS. ・・・(中略)・・・When this "push" is finished (Step 206), the slave 104 is allowed to boot (Step 208) and to start up the OS (e.g., it is released from the reset state) and its normal communication mechanisms (Step 210). The host part then awaits a message from the slave, which initiates operation of its second stage as described in more detail below.
The slave part of the OS-friendly bootloader that is loaded ("pushed" by the host part's first stage) into the commonly visible memories 108 starts the operating system, carrying out the following operations (Step 210). First, interrupt handlers are created. ・・・(中略)・・・ Second, data structures (e.g., process control blocks and stacks) of common processes, i.e., processes that run in both the host and the slave, are created. ・・・(中略)・・・ Third, the system idle process is created. ・・・(中略)・・・ Fourth, the scheduling of at least all processes residing in, i.e., having program code or data located in, the "external" memory 110 is blocked. ・・・(中略)・・・ Finally, the OS scheduler is released, which allows the OS to start executing code and scheduling processes. ・・・(中略)・・・
At this point, the slave 104 is partly up and running. The slave part of the OS- friendly bootloader has been loaded, and the slave's idle process is executing. The slave's OS can schedule and execute code in response to interrupts and can schedule the idle process and any unblocked processes having code residing in internal memory. OS mechanisms for which all code and data accesses are in memory that has already been loaded (SARAM and DARAM 108, in this example) are available, including the usual communication mechanisms. These OS communication mechanisms, being high-level abstractions of DMA, shared memory, and structured registers, are more capable than simple semaphores and enable the host processor to communicate efficiently with a processor (the slave) that has not completely started, which is to say a processor that is executing mainly only the OS, interrupt services, and processes residing in "internal" RAM.
The idle process reserves a block of memory in the slave's heap of memory that is located in the memory visible to the host, such as "internal" memory 108 (Step 212). As described in more detail below, this reserved block of memory is used for intermediate storage of information (code and/or data) to be transferred to the slave- private memory, i.e., the memory that is invisible to the host, such as "external" XRAM 110. The slave's idle process advantageously uses the established communication mechanisms to send to the host (Step 214) information about the address and size or length of the intermediate storage area reserved in the previous step. After sending the information, which may be contained in one or more suitable messages, the slave blocks, awaiting a message from the host. While "blocked", the slave does not conduct any further loading activities until it receives the host's response.
・・・(中略)・・・
On receipt of the slave's information, the second stage of the host bootloader fills the intermediate storage area with information (code and/or data) to be loaded into the slave's invisible memory (Step 216). Code and data is pushed to the intermediate storage area in the usual way because this area is memory that both processors can access, but the push is activated through the OS communication mechanisms.
The host now sends a message to the slave (Step 218) that indicates the intermediate storage area has been loaded and whether loading is finished or more code and/or data is available. This is the message the slave is waiting for. The host in turn now blocks, awaiting a message from the slave. The slave copies the contents of the intermediate storage area to appropriate locations in its slave-private memory (Step 220), thereby implementing its actual loading. The slave then sends a message to the host (Step 222) that indicates that the slave has copied the contents of the intermediate storage area.
If there is more code and/or data to load (Step 224), this cycle of copying and messaging (Steps 216-224) can be repeated as many times as required. When the loading is finished, i.e., when no more information needs to be copied to the slave, the slave releases the blocking of processes that were blocked earlier, thereby allowing scheduling of code in its slave-private memory (Step 226). Loading is now complete.」(第5頁18行?第8頁9行)
(当審仮訳:図2のフローチャートに関連して以下でより詳細に記述されるように,OSフレンドリなbootloaderは,有利には,マスターとスレーブの両方に見える1つまたは複数のメモリ(例えば,SARAM及びDARAM108)にロードされるホスト部分とクライアント部分を有する。
OSフレンドリなbootloaderのホスト部分は,2つのステージあるいはモードのオペレーションを含むと考えられる。第1ステージは,リセット状態において,スレーブ104をリセット及びホールドし(ステップ202),そして通常の方法で,不揮発性メモリ106から,共通に見えるメモリ108へ情報(プログラム命令及び/又はデータ)をプッシュする(ステップ204)。これらのメモリにプッシュされた情報は,主にbootloader,OS,及びOSに必要な任意の始動コードである。・・・(中略)・・・この“プッシュ”が終了すると(ステップ206),スレーブ104は,ブート(ステップ208)し,OS(例えば,それはリセット状態から解放される)及びその通常の通信メカニズムを開始することを許される(ステップ210)。ホスト部分はそれから 以下でより詳細に記述されるように,その第2ステージのオペレーションを開始するスレーブからのメッセージを待ち受ける。
共通に見えるメモリ108にロードされる(ホスト部分の第1ステージによって“プッシュ”される)OSフレンドリなbootloaderのスレーブ部分は,オペレーティングシステムを開始し,以下のオペレーションを実行する(ステップ210)。第1に,割り込みハンドラが作成される。・・・(中略)・・・第2に,共通のプロセス,すなわち,ホストとスレーブの両方で走るプロセスのデータ構造(例えば,プロセスコントロールブロックとスタック)が作成される。・・・(中略)・・・第3に,システムアイドルプロセスが作成される。・・・(中略)・・・第4に,少なくとも,“外部”メモリ110にある,すなわち,プログラムコードあるいはデータが配置されている,すべてのプロセスのスケジューリングがブロックされる。・・・(中略)・・・最後に,OSスケジューラーは解放され,これはOSがコードの実行とプロセスのスケジューリングを開始することを可能にする。・・・(中略)・・・
この時点で,スレーブ104は部分的に稼動している。OSフレンドリなbootloaderのスレーブ部分はロードされ,スレーブのアイドルプロセスが実行されている。スレーブのOSは,割り込みに応答してコードをスケジュールし,そして実行することができ,コードが内部メモリに存在しているアイドルプロセスとブロックされていない任意のプロセスをスケジュールすることができる。そのためのすべてのコードとデータアクセスがすでにロードされて,メモリ(この例では,SARAM及びDARAM108)にあるOSメカニズムは,通常の通信メカニズムを含めて利用可能である。DMA,共有メモリ,及び構造化されたレジスタの高レベルの抽象概念であるOS通信メカニズムは,シンプルなセマフォよりも能力があり,そしてホストプロセッサが,完全にスタートしていないプロセッサ(スレーブ)と効率よく通信することを可能にし,これは,プロセッサが,主に,“内部”RAMに存在するOS,割り込みサービス,及びプロセスだけを実行していると言うことである。
アイドルプロセスは,“内部”メモリ108のようなホストに見えるメモリに位置しているスレーブのメモリにおいて,メモリブロックを予約する(ステップ212)。以下でより詳細に記述されるように,この予約されたメモリブロックは,スレーブのプライベートメモリ,すなわち,“外部”XRAM 110のようなホストに見えないメモリに転送される情報(コード及び/又はデータ)の中間記憶のために使われる。スレーブのアイドルプロセスは,有利には,確立された通信メカニズムを,前のステップで予約された中間記憶領域のアドレスとサイズあるいは長さについての情報をホストに送信するために使用する(ステップ214)。1つ又はそれ以上の適当なメッセージが含まれてもよい情報を送信した後,スレーブは,ホストからのメッセージを待ち受けながら,ブロックする。“ブロック”の間,スレーブはホストの応答を受けるまで,さらなるローディング動作を行なわない。
・・・(中略)・・・
スレーブの情報を受領すると,ホストbootloaderの第2ステージは,スレーブの見えないメモリにロードされる情報(コード及び/又はデータ)で中間記憶領域を満たす(ステップ216)。コード及びデータは,この領域が両方のプロセッサがアクセスすることができるメモリであるため,通常の方法で中間記憶領域にプッシュされるが,このプッシュはOS通信メカニズムを通して作動される。
ホストは,次に,中間記憶領域にロードされたこと,ロードが終了したかどうか,あるいは,さらなるコード及び/又はデータが利用可能であるかどうかを示すメッセージをスレーブへ送信する(ステップ218)。これは,スレーブが待っているメッセージである。今度はホストが,スレーブからのメッセージを待ち受けながら,ブロックする。スレーブは,そのスレーブ-プライベートメモリの適切な場所に中間記憶領域の内容をコピーし,これによってその実際のローディングを実行する(ステップ220)。スレーブはそれから,スレーブが中間記憶領域の内容をコピーしたことを示すメッセージをホストに送る(ステップ222)。
もし,ロードすべきさらなるコード及び/又はデータがある場合は(ステップ224),コピーとメッセージングのこのサイクル(ステップ216-224)が必要な回数だけ繰り返される。ロードすることが終了しているとき,すなわち,これ以上の情報がスレーブにコピーされる必要がないとき,スレーブは,前にブロックされたブロッキングプロセスをリリースし,それにより,そのスレーブ-プライベートメモリにおけるコードのスケジューリングが許可される(ステップ226)。これで,ローディングが完了する。)

(ウ)「As described above, the host fills the intermediate storage area in the memory 108 with code and data that the slave further copies to end destinations in the slave- private memory 110. Perhaps the simplest way of doing this is to precede all code and data in the intermediate storage area with a tag that contains the destination address and length of the block to be loaded. FIG. 3 depicts one example of such an organization of the intermediate storage area. A block of code and/or data to be transferred into the intermediate storage area includes a header that indicates the length of the block and where it is to be loaded in the slave memory, i.e., the destination address. As indicated by the dashed lines in FIG. 3, several such blocks may be concatenated in the intermediate storage area.
The information (code and data) to be loaded can be arranged in many ways in the intermediate storage area and memories. Often the information is arranged as blocks of consecutive information that are to be loaded to different addresses, and thus an arbitrarily chosen size of the intermediate storage area may not match the sizes of all such blocks. Still, it should be understood that the system will operate more efficiently when the intermediate storage area is always filled. This means that if the blocks to be loaded are smaller than this area, a transfer of several (smaller) blocks should be done at the same time. This also means that a block should be split if it is larger than the remaining part of the intermediate storage area, and one part transferred to the intermediate storage area with the remaining part transferred in the next block. Moreover, if a block is several times larger than the intermediate storage area, it may have to be split more than once. All of this splitting and concatenation is done in the host part of the OS-friendly bootloader in ways that are well known to computer scientists. From the point of view of data communications engineers, the host part of the OS-friendly bootloader is thus a kind of "transport layer".
The artisan will understand the benefit of this splitting and concatenation of information into transfer blocks. Some kind of communication mechanism is required to perform the actual transfers of information between memories, and whatever the mechanism used, fewer large transfers are typically preferable to more small transfers. A kept-full intermediate storage area can make the most efficient use of the available bandwidth by advantageously minimizing overhead on the communications channel. Each message requires some amount of administration and administrative information, and so fewer messages means less overhead.
A good example of the benefit of block splitting and concatenation effect is DMA as the communication mechanism. DMA typically requires some setup overhead (i.e., it takes some time to set up), but then DMA is very efficient once it has been started because transfers can be carried out in minimal CPU cycles. In order to gain the greatest benefit from the use of DMA, the largest DMA transfer permitted by the hardware should be done every time. Thus, it is currently believed to be advantageous to set the size of the intermediate storage area to the maximum DMA block size.」(第8頁10行?第9頁17行)
(当審仮訳:上記のように,ホストは,メモリ108の中間記憶領域を,スレーブがスレーブのプライベートメモリ110の最終目的地にさらにコピーするコード及びデータで満たす。おそらく,これをする最も簡単な方法は,中間記憶領域の全てのコード及びデータの前に,ロードされるブロックの目的地アドレスと長さとを含むタグを付けることである。図3は,このような中間記憶領域の構成の1つの例を示す。中間記憶領域へ転送されるコード及び/又はデータのブロックは,ブロックの長さと,それがロードされるスレーブメモリの場所,すなわち,目的地アドレスとを示すヘッダを含む。図3において破線で示されるように,いくつかのこのようなブロックは中間記憶領域において連結されてもよい。
ロードされる情報(コード及びデータ)は,中間記憶領域及びメモリにおいて,多くの方法でアレンジされ得る。情報はしばしば,異なったアドレスにロードされるような情報の連続したブロックとしてアレンジされるので,中間記憶領域の任意に選択されたサイズはすべてのそのようなブロックのサイズとマッチしないかもしれない。それでも,中間記憶領域が常に一杯であるとき,システムは,いっそう効率的に稼働するであろうことは理解されるべきである。これは,もしロードされるブロックがこの領域より小さいなら,いくつかの(より小さい)ブロックの転送が同時にされるべきであることを意味する。これはまた,もしブロックが中間記憶領域の残っている部分よりもより大きいなら,ブロックを分割して,1部分が中間記憶領域に転送され,残りの部分が次のブロックで転送されるようにすべきであることを意味する。さらに,もしブロックが中間記憶領域より数倍大きいなら,それは複数回分割されなければならないかもしれない。この分割と連結のすべては,コンピュータ科学者によく知られている方法でOSフレンドリなbootloaderのホスト部分で実行される。データ通信エンジニアの見地から,OSフレンドリなbootloaderのホスト部分はそれゆえ一種の“トランスポートレイヤ”である。
当業者は,転送ブロックへの情報のこの分割と連結の利益を理解するだろう。メモリ間の情報の実際の転送を行なうために,いくつかの種類の通信メカニズムが必要とされるが,どのメカニズムを使ったとしても,典型的には,より少数の大きな転送がより多数の小さな転送より望ましい。中間記憶領域を満杯に保持することは,通信チャネルのオーバーヘッドを有利に最小化することで,利用可能なバンド幅を最も効率的に使用させ得る。それぞれのメッセージは,ある程度の管理と管理上の情報を必要とするので,より少数のメッセージはより少ないオーバーヘッドを意味する。
ブロック分割と連結効果の利益の良い例は,通信メカニズムとしてのDMAである。DMAは典型的に,セットアップのオーバーヘッドをいくらか必要とする(すなわち,セットアップするためにいくらか時間がかかる)が,転送は最小のCPUサイクルで実行されるため,一旦それが始まると,それからはDMAは非常に効率的である。DMAの使用から最大の利益を得るために,ハードウェアによって許容される最大のDMA転送が毎回行われるべきである。したがって,中間記憶領域のサイズを最大のDMAブロックサイズに設定することが有利であると現在は考えられている。)

ここで,上記引用例1に記載されている事項を検討する。

(a)
(a-1)上記(ア)の「図1は,ホストプロセッサ102とクライアントプロセッサ104を含むようなマルチプロセッサシステム100を示す。」との記載,及びFIG.1の記載からみて,引用例1には,「ホストプロセッサ102とクライアントプロセッサ104とから構成されたマルチプロセッサシステム」が記載されていると認められる。
(a-2)上記(ア)の「図1で示された例では,プロセッサ102は,advanced RISC machine(ARM)の中央処理装置(CPU)として示され,プロセッサ104は,デジタル信号プロセッサ(DSP)装置のCPUとして示される。」との記載,「メモリ106は・・・不揮発性メモリ装置でもよい」との記載,「DSPは,“内部の”シングルアクセスRAM(SARAM)及びデュアルアクセスRAM(DARAM)108,並びに“外部の”RAM(XRAM)110を含む。」との記載,「図1における矢印は,例えば,バスやDMAパスのような,CPUとメモリとの間のアクセスパスを示す。ARMホストCPU102は,不揮発性メモリ106とDSPのSARAM及びDARAM108にアクセスすることができるが,DSPのXRAM110にはアクセスできない。」との記載,及びFIG.1の記載からみて,引用例1には,「ホストプロセッサ102には,不揮発性メモリ106が接続されていること」,「クライアントプロセッサ104には,内部RAM108と外部RAM110が接続されていること」,「ホストプロセッサ102は,クライアントプロセッサ104の内部RAM108にアクセスすることはできるが,クライアントプロセッサ104の外部RAM110にはアクセスできないこと」が記載されていると認められる。
(a-3)上記(a-1),(a-2)の検討から,引用例1には,「ホストプロセッサ102には,不揮発性メモリ106が接続されており,クライアントプロセッサ104には,内部RAM108と外部RAM110が接続されており,ホストプロセッサ102は,クライアントプロセッサ104の内部RAM108にアクセスすることはできるが,クライアントプロセッサ104の外部RAM110にはアクセスできないように構成されたマルチプロセッサシステム」が記載されているものと認められる。

(b)
(b-1)上記(ア)の「SARAM及びDARAM108は上述の“プッシュ”方式によって不揮発性メモリ106からロードされ得る。しかしながら,ブートの間にコードがXRAM110にロードされる必要があるとき,XRAM110は,CPU102に見えない,すなわち,CPU102によってアクセスできない,そして,そのためにブートコードがXRAM110にプッシュされることができないため,bootloaderソリューションが必要とされる。」との記載,上記(イ)の「スレーブの情報を受領すると,ホストbootloaderの第2ステージは,スレーブの見えないメモリにロードされる情報(コード及び/又はデータ)で中間記憶領域を満たす(ステップ216)。」との記載,「スレーブは,そのスレーブ-プライベートメモリの適切な場所に中間記憶領域の内容をコピーし,これによってその実際のローディングを実行する(ステップ220)。」との記載からみて,引用例1には,「不揮発性メモリ106からSARAM及びDARAM108にコード及び/又はデータがロードされ,SARAM及びDARAM108からXRAM110にコード及び/又はデータがロードされる」ことが記載されているものと認められる。
ここで,上記記載における「SARAM及びDARAM108」は(a)において指摘したとおり「内部RAM108」のことであり,「XRAM110」は「外部RAM110」のことであり,「コード及び/又はデータ」は,少なくとも「コード」を含むものであるから,結局,引用例1には,「不揮発性メモリ106から内部RAM108にコードがロードされ,内部RAM108から外部RAM110にコードがロードされる」ことが記載されているものと認められる。
(b-2)上記(イ)の「スレーブの情報を受領すると,ホストbootloaderの第2ステージは,スレーブの見えないメモリにロードされる情報(コード及び/又はデータ)で中間記憶領域を満たす(ステップ216)。・・・ホストは,次に,中間記憶領域にロードされたこと,ロードが終了したかどうか,あるいは,さらなるコード及び/又はデータが利用可能であるかどうかを示すメッセージをスレーブへ送信する(ステップ218)。」との記載からみて,引用例1には,「ホストbootloaderの第2ステージは,スレーブの見えないメモリにロードされるコード及び/又はデータで中間記憶領域を満たし,ホストは,次に,中間記憶領域にロードされたことを示すメッセージをスレーブへ送信する」ことが記載されていると認められる。
ここで,上記記載における「スレーブの見えないメモリ」は,上記(イ)の「“外部”XRAM 110のようなホストに見えないメモリ」との記載からみて,「外部RAM110」のことであり,
また,上記記載における「コード及び/又はデータ」は少なくとも「コード」を含むものであり,
また,上記記載における「中間記憶領域」は,上記(イ)の「アイドルプロセスは,“内部”メモリ108のようなホストに見えるメモリに位置しているスレーブのメモリにおいて,メモリブロックを予約する(ステップ212)。以下でより詳細に記述されるように,この予約されたメモリブロックは,スレーブのプライベートメモリ,すなわち,“外部”XRAM 110のようなホストに見えないメモリに転送される情報(コード及び/又はデータ)の中間記憶のために使われる。スレーブのアイドルプロセスは,有利には,確立された通信メカニズムを,前のステップで予約された中間記憶領域のアドレスとサイズあるいは長さについての情報をホストに送信するために使用する(ステップ214)。」との記載,及び上記(ウ)の「上記のように,ホストは,メモリ108の中間記憶領域を,スレーブがスレーブのプライベートメモリ110の最終目的地にさらにコピーするコード及びデータで満たす。」との記載からみて,「内部RAM108の中間記憶領域」のことであり,
また,上記記載における「スレーブ」は,上記(ア)の「図1は,ホストプロセッサ102とクライアントプロセッサ104を含むようなマルチプロセッサシステム100を示す。」との記載,上記(イ)の「第1ステージは,リセット状態において,スレーブ104をリセット及びホールドし(ステップ202)」との記載からみて,「クライアントプロセッサ104」のことである。
してみれば,引用例1には,「ホストbootloaderの第2ステージは,外部RAM110にロードされるコードで内部RAM108の中間記憶領域を満たし,ホストは,次に,内部RAM108の中間記憶領域にロードされたことを示すメッセージをクライアントプロセッサ104へ送信する」ことが記載されているものと認められる。
(b-3)上記(イ)の「スレーブは,そのスレーブ-プライベートメモリの適切な場所に中間記憶領域の内容をコピーし,これによってその実際のローディングを実行する(ステップ220)。」との記載からみて,引用例1には,「スレーブは,そのスレーブ-プライベートメモリの適切な場所に中間記憶領域の内容をコピーし,これによってその実際のローディングを実行する」ことが記載されていると認められる。
ここで,上記記載における「スレーブ」は,上記(b-2)で検討したように「クライアントプロセッサ104」のことであり,
また,上記記載における「スレーブ-プライベートメモリ」は,上記(イ)の「以下でより詳細に記述されるように,この予約されたメモリブロックは,スレーブのプライベートメモリ,すなわち,“外部”XRAM 110のようなホストに見えないメモリに転送される情報(コード及び/又はデータ)の中間記憶のために使われる。」との記載からみて,「外部RAM110」のことであり,
また,上記記載における「中間記憶領域」は,上記(b-2)で検討したように「内部RAM108の中間記憶領域」のことである。
してみれば,引用例1には,「クライアントプロセッサ104は,外部RAM110の適切な場所に内部RAM108の中間記憶領域の内容をコピーし,これによってその実際のローディングを実行する」ことが記載されているものと認められる。
(b-4)上記(b-1)の動作は,上記(b-2)及び(b-3)の動作によって具体的に実行されているものであるから,上記(b-1)?(b-3)の検討を総合すると,引用例1には,「不揮発性メモリ106から内部RAM108にコードがロードされ,内部RAM108から外部RAM110にコードがロードされるようにするために,ホストbootloaderの第2ステージは,外部RAM110にロードされるコードで内部RAM108の中間記憶領域を満たし,ホストは,次に,内部RAM108の中間記憶領域にロードされたことを示すメッセージをクライアントプロセッサ104へ送信し,クライアントプロセッサ104は,外部RAM110の適切な場所に内部RAM108の中間記憶領域の内容をコピーし,これによってその実際のローディングを実行する」ことが記載されているものと認められる。

(c)上記(ウ)の「中間記憶領域へ転送されるコード及び/又はデータのブロックは,ブロックの長さと,それがロードされるスレーブメモリの場所,すなわち,目的地アドレスとを示すヘッダを含む。」との記載からみて,引用例1には,「中間記憶領域へ転送されるコード及び/又はデータのブロックは,ブロックの長さと,それがロードされるスレーブメモリの場所,すなわち,目的地アドレスとを示すヘッダを含む」ことが記載されているものと認められる。
また,引用例1のFIG.3の記載からみて,「ブロック」は,「ヘッダ」と「データ」とを含むことが読み取れる。
そうすると,引用例1には,「中間記憶領域へ転送されるコード及び/又はデータのブロックは,ブロックの長さと,それがロードされるスレーブメモリの場所,すなわち,目的地アドレスとを示すヘッダと,データとを含む」ことが記載されているものと認められる。
ここで,上記記載における「中間記憶領域」は,上記(b-2)で検討したように「内部RAM108の中間記憶領域」のことであり,
また,上記記載における「コード及び/又はデータ」は少なくとも「コード」を含むものであり,
また,上記記載における「スレーブメモリ」は,上記(イ)の「以下でより詳細に記述されるように,この予約されたメモリブロックは,スレーブのプライベートメモリ,すなわち,“外部”XRAM 110のようなホストに見えないメモリに転送される情報(コード及び/又はデータ)の中間記憶のために使われる。」との記載,上記(ウ)の「・・・ホストは,メモリ108の中間記憶領域を,スレーブがスレーブのプライベートメモリ110の最終目的地にさらにコピーするコード及びデータで満たす。・・・中間記憶領域へ転送されるコード及び/又はデータのブロックは,ブロックの長さと,それがロードされるスレーブメモリの場所,すなわち,目的地アドレスとを示すヘッダを含む。」との記載からみて,「外部RAM110」のことである。
してみれば,引用例1には,「内部RAM108の中間記憶領域へ転送されるコードのブロックは,ブロックの長さと,それがロードされる外部RAM110の場所,すなわち,目的地アドレスとを示すヘッダと,データとを含む」ことが記載されているものと認められる。

(d)上記(ウ)の「ホストは,メモリ108の中間記憶領域を,スレーブがスレーブのプライベートメモリ110の最終目的地にさらにコピーするコード及びデータで満たす。」との記載,「中間記憶領域へ転送されるコード及び/又はデータのブロックは,ブロックの長さと,それがロードされるスレーブメモリの場所,すなわち,目的地アドレスとを示すヘッダを含む。」との記載,「もしロードされるブロックがこの領域より小さいなら,いくつかの(より小さい)ブロックの転送が同時にされるべきであることを意味する。これはまた,もしブロックが中間記憶領域の残っている部分よりもより大きいなら,ブロックを分割して,1部分が中間記憶領域に転送され,残りの部分が次のブロックで転送されるようにすべきであることを意味する。・・・この分割と連結のすべては,コンピュータ科学者によく知られている方法でOSフレンドリなbootloaderのホスト部分で実行される。」との記載,「当業者は,転送ブロックへの情報のこの分割と連結の利益を理解するだろう。メモリ間の情報の実際の転送を行なうために,いくつかの種類の通信メカニズムが必要とされるが,どのメカニズムを使ったとしても,典型的には,より少数の大きな転送がより多数の小さな転送より望ましい。」との記載,「ブロック分割と連結効果の利益の良い例は,通信メカニズムとしてのDMAである。」との記載,「したがって,中間記憶領域のサイズを最大のDMAブロックサイズに設定することが有利であると現在は考えられている。」との記載からみて,引用例1には,「コード及びデータのブロックは,メモリ108の中間記憶領域の大きさに合わせて分割又は連結がなされて中間記憶領域に転送される」こと,「中間記憶領域からスレーブのプライベートメモリ110へコピーするための通信メカニズムとしてDMAを使用する」ことが記載されていると認められる。
ここで,上記記載における「コード及びデータ」,「メモリ108」,及び「スレーブのプライベートメモリ110」については,既に検討したように,それぞれ「コード」,「内部RAM108」,及び「外部RAM110」であるといえるから,結局,引用例1には,「コードのブロックは,内部RAM108の中間記憶領域の大きさに合わせて分割又は連結がなされて内部RAM108の中間記憶領域に転送され,内部RAM108の中間記憶領域から外部RAM110へコピーするための通信メカニズムとしてDMAを使用する」ことが記載されていると認められる。

(e)上記(ウ)の「ロードされる情報(コード及びデータ)は,中間記憶領域及びメモリにおいて,多くの方法でアレンジされ得る。情報はしばしば,異なったアドレスにロードされるような情報の連続したブロックとしてアレンジされる」との記載からみて,引用例1には,「ロードされる情報(コード及びデータ)は,中間記憶領域において,しばしば,異なったアドレスにロードされるような情報の連続したブロックとしてアレンジされる」ことが記載されているものと認められる。
ここで,上記記載における「ロードされる情報(コード及びデータ)」は,少なくとも「コード」を含むものであり,「中間記憶領域」は,既に検討したように,「内部RAM108の中間記憶領域」のことであるから,引用例1には,「ロードされるコードは,内部RAM108の中間記憶領域において,しばしば,異なったアドレスにロードされるような情報の連続したブロックとしてアレンジされる」ことが記載されているものと認められる。

(f)上記(b)の検討から,引用例1には,マルチプロセッサシステムが動作する「方法」が記載されているものと認められる。

以上の検討から,引用例1には,次のとおりの発明(以下,「引用発明」という。)が記載されていると認められる。

「ホストプロセッサ102には,不揮発性メモリ106が接続されており,クライアントプロセッサ104には,内部RAM108と外部RAM110が接続されており,ホストプロセッサ102は,クライアントプロセッサ104の内部RAM108にアクセスすることはできるが,クライアントプロセッサ104の外部RAM110にはアクセスできないように構成されたマルチプロセッサシステムにおいて,
不揮発性メモリ106から内部RAM108にコードがロードされ,内部RAM108から外部RAM110にコードがロードされるようにするために,ホストbootloaderの第2ステージは,外部RAM110にロードされるコードで内部RAM108の中間記憶領域を満たし,ホストは,次に,内部RAM108の中間記憶領域にロードされたことを示すメッセージをクライアントプロセッサ104へ送信し,クライアントプロセッサ104は,外部RAM110の適切な場所に内部RAM108の中間記憶領域の内容をコピーし,これによってその実際のローディングを実行し,
内部RAM108の中間記憶領域へ転送されるコードのブロックは,ブロックの長さと,それがロードされる外部RAM110の場所,すなわち,目的地アドレスとを示すヘッダと,データとを含み,
コードのブロックは,内部RAM108の中間記憶領域の大きさに合わせて分割又は連結がなされて内部RAM108の中間記憶領域に転送され,内部RAM108の中間記憶領域から外部RAM110へコピーするための通信メカニズムとしてDMAを使用し,
ロードされるコードは,内部RAM108の中間記憶領域において,しばしば,異なったアドレスにロードされるような情報の連続したブロックとしてアレンジされる,
方法。」

(2)引用例2
当審で通知した平成27年6月26日付けの拒絶理由通知において引用した特開2003-345480号公報(以下,「引用例2」という。)には,図面とともに,次の事項が記載されている。(下線は当審において付加したものである。)

(エ)「【請求項1】 プリント基板上に実装された半導体チップ間の複数ビットをバスで接続するバス接続方式において,
前記プリント基板上のバス接続をストレートのパターン配線とし,
前記半導体チップ内にバス接続の並び替え部を設け,
前記並び替え部におけるバスの並びを正接続又は逆接続とするための前記半導体チップの外部設定部を設けることを特徴とするバス接続方式。」

(3)引用例3
当審で通知した平成27年6月26日付けの拒絶理由通知において引用した特開平10-11404号公報(以下,「引用例3」という。)には,図面とともに,次の事項が記載されている。(下線は当審において付加したものである。)

(オ)「【0033】一方,プロセッサチップ4.1上のプロセッサエレメント1.1から送信された信号は,プロセッサチップ間のプロセッサ間通信バス2.1.1を通じて,隣接するプロセッサチップ4.2上のプロセッサエレメント1.2によって受信される。以下同様にして,最終端のプロセッサチップ4.4上のプロセッサエレメント1.8から送信された信号はプロセッサ間通信バス2.4を通じて同じプロセッサチップ4.4上の他方のプロセッサグループ内のプロセッサエレメント1.9により受信される。プロセッサチップ4.1上のプロセッサエレメント1.16から送信された信号はプロセッサ間通信バス2.8を通じて同じプロセッサチップ4.1上のプロセッサエレメント1.1によって受信される。以上の過程により,プロセッサエレメント1.1?1.16全てが互いにデータ交換を行なうことが可能である。」

(4)引用例4
当審で通知した平成27年6月26日付けの拒絶理由通知において引用した特開平1-292559号公報(以下,「引用例4」という。)には,図面とともに,次の事項が記載されている。(下線は当審において付加したものである。)

(カ)「次に,第6図に従って,このように構成される本発明のデータ転送方式の処理内容について説明する。
送信側プロセッサ10aは,まず,送信データ長を含むヘッダ情報を送信し,送信終了後に直ちにWAIT状態に移行する。このヘッダ情報を入力バッファ41で受信すると,各受信側プロセッサ10bでは,入カバッファ41からのデータ受信割込み処理を受けて,受信バッファ獲得のための受信タスクが起動されることになる。この受信タスクでは,ヘッダ情報をリードし,送信されてくることになるデータ分を格納できる受信バッファを獲得するよう処理する。この獲得に失敗するとWAIT状態に移行し,他タスクがバッファ解放を行うまで待つことになる。そして,受信バッファの獲得に成功すると,HACKθレジスタ43に“1”をセットし,ヘッダの受信処理を終了する。
全受信側プロセッサ10bのHACKθレジスタ43に“1”がセットされることでHACKIレジスタ33に“1”がセットされると,送信側プロセッサ10aでは,このHACKIレジスタ33からの割込みによって実行が再開されて,データ送信の処理に入ることになる。このデータ送信の開始を入カバッファ41で受信すると,各受信側プロセッサ10bでは,入力バッファ41からのデータ受信割込み処理を受けて,データ受信のための受信タスクが起動されることになる。このとき,先に実行されたヘッダの受信処理で,既に受信バッファが獲得されているので,この受信タスクでは,直ちに,この獲得されている受信バッファに送信されてきたデータを入力するよう処理する。そして,全送信データの入力後に,DACKθレジスタ42に“1”をセットして,データの受信処理を終了する。
最後に,送信側プロセッサ10aは,全受信側プロセッサ10bのDACKθレジスタ42に“1”がセットされることで,DACKIレジスタ32に“1”がセットされたことを確認すると,データの送信処理を終了することになる。
このように,本発明では,受信側プロセンサ10bの実行する受信タスクは,ヘッダの受信処理とデータの受信処理という2段階の構成をとることになる。」(第7頁右下欄5行?第8頁右上欄8行)

4.対比
本願発明と引用発明とを対比する。

(a)
(a-1)引用発明の「ホストプロセッサ102」は,当該「ホストプロセッサ102」に接続された不揮発性メモリ106からクライアントプロセッサ104に接続された外部RAM110にコードをロードするものであるから,引用発明の「ホストプロセッサ102」が本願発明の「1次プロセッサ」に相当し,また,引用発明の「不揮発性メモリ106」,「クライアントプロセッサ104」が本願発明の「1次プロセッサに結合されたメモリ」,「2次プロセッサ」にそれぞれ相当する。
(a-2)引用発明の「コード」は,クライアントプロセッサ104の外部RAM110にロードされ,「クライアントプロセッサ104(2次プロセッサ)」で“実行可能”なものであるから,本願発明の「2次プロセッサのための実行可能ソフトウェアイメージ」に対応するものである。
そして,引用発明の「コード」は,「コードのブロック」の形で転送されるものであり,この「コードのブロック」は「ヘッダと,データとを含」むものであるところ,この「ヘッダ」と「データ」が,本願発明の「イメージヘッダ」と「データセグメント」にそれぞれ相当するから,引用発明の「ヘッダと,データとを含」む「コードのブロック」が,本願発明の「イメージヘッダおよび少なくとも1つのデータセグメントを備え」る「2次プロセッサのための実行可能ソフトウェアイメージ」に相当する。
また,引用発明において,「コード」は,不揮発性メモリ106から内部RAM108にロードされるものであるから,引用発明の「コードのブロック」は「不揮発性メモリ106(1次プロセッサに結合されたメモリ)」に“記憶されている”ものと認められる。
そうすると,引用発明の「コードのブロック」が本願発明の「1次プロセッサに結合されたメモリに記憶されている2次プロセッサのための実行可能ソフトウェアイメージ」に相当する。
また,本願発明と引用発明とは,「実行可能ソフトウェアイメージは,イメージヘッダおよび少なくとも1つのデータセグメントを備え」る点で共通している。
(a-3)引用発明において,ホストプロセッサ102は,クライアントプロセッサ104の内部RAM108にアクセスすることができるものであるから,ホストプロセッサ102とクライアントプロセッサ104との間に何らかの“通信接続手段”があることは自明のことである。
(a-4)引用発明では,「不揮発性メモリ106から内部RAM108にコードがロードされ」るものであるところ,この「ロード」処理は,内部RAM108に接続される「クライアントプロセッサ104」が,不揮発性メモリ106に接続される「ホストプロセッサ102」から,コードを“受信する”処理であるといえるから,引用発明は,「クライアントプロセッサ104(2次プロセッサ)」“において”,「ホストプロセッサ102(1次プロセッサ)」“から”コードを“受信する”ものであるということができる。
そして,このコードの“受信”は,「コードのブロック」の形で行われるものであるから,少なくとも「コードのブロック」に含まれる「ヘッダ(イメージヘッダ)」を“受信”しているということができる。
また,この“受信”が上記した“通信接続手段”を“介して”行われることは自明のことである。
(a-5)上記(a-1)?(a-4)の検討から,本願発明と引用発明とは,後記する点で相違するものの,「2次プロセッサにおいて,通信接続手段を介して1次プロセッサから,前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェアイメージのイメージヘッダを受信するステップであって,前記実行可能ソフトウェアイメージは,前記イメージヘッダおよび少なくとも1つのデータセグメントを備える,ステップ」を含む点で共通している。

(b)
(b-1)引用発明の「外部RAM110」は,「クライアントプロセッサ104」に「接続」された“メモリ”であり,また,「コード」を「内部RAM108からロード」して実行させるための“メモリ”であるから,引用発明の「外部RAM110」が本願発明の「2次プロセッサが結合されたシステムメモリ」に相当する。
そして,引用発明の「コードのブロック」は,「それがロードされる外部RAM110の場所,すなわち,目的地アドレスを示すヘッダ」を含んでいるところ,引用発明の「それがロードされる外部RAM110の場所,すなわち,目的地アドレス」は,「コード」が「ロードされる」「外部RAM110(システムメモリ)」の“中の”“少なくとも1つのロケーション”であるということができる。
してみれば,引用発明の「それがロードされる外部RAM110の場所,すなわち,目的地アドレス」が,本願発明の「2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーション」に相当する。
(b-2)引用発明の「コードのブロック」に含まれる「コード」の「データ」が本願発明の「各データセグメント」に相当し,引用発明の「外部RAM110にコード」を「ロード」することは,「外部RAM110にコード」を“記憶する”ことであるといえるから,引用発明の「外部RAM110にコード」を「ロード」することが,本願発明の「各データセグメントを記憶する」ことに相当する。
そして,上記(b-1)で検討したように,引用発明の「それがロードされる外部RAM110の場所,すなわち,目的地アドレス」は,「コード」が「ロードされる」“ロケーション”であるといえるから,引用発明の「それがロードされる外部RAM110の場所,すなわち,目的地アドレス」が本願発明の「各データセグメントを記憶する・・・ロケーション」に相当する。
(b-3)上記(b-1)及び(b-2)の検討から,引用発明の「それがロードされる外部RAM110の場所,すなわち,目的地アドレス」が本願発明の「各データセグメントを記憶する,2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーション」に相当する。
(b-4)引用発明において,「クライアントプロセッサ104は,外部RAM110の適切な場所に内部RAM108の中間記憶領域の内容をコピーし,これによってその実際のローディングを実行し」ており,このとき,「外部RAM110(システムメモリ)の適切な場所(少なくとも1つのロケーション)」を“特定するために”,「クライアントプロセッサ104(2次プロセッサ)」が,「ヘッダ(イメージヘッダ)」を“処理”していることは明らかである。
(b-5)上記(b-1)?(b-4)の検討から,本願発明と引用発明とは,「各データセグメントを記憶する,2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために,イメージヘッダを前記2次プロセッサによって処理するステップ」を含む点で共通している。

(c)引用発明は,「不揮発性メモリ106から内部RAM108にコードがロードされ」るものである。
ここで,引用発明の「不揮発性メモリ106から内部RAM108にコード」を「ロード」することは,内部RAM108に接続される「クライアントプロセッサ104」が,不揮発性メモリ106に接続される「ホストプロセッサ102」から,コードを“受信する”ことであるといえるから,引用発明は,クライアントプロセッサ104“において”,ホストプロセッサ102“から”コードを“受信する”ものであるということができる。
そして,このコードの“受信”は,「コードのブロック」の形で行われるものであるから,少なくとも「コードのブロック」に含まれる「データ(データセグメント)」を“受信”するものである。
また,この“受信”が上記した“通信接続手段”を“介して”行われることは自明のことである。
してみれば,本願発明と引用発明とは,後記する点で相違するものの,「2次プロセッサにおいて,通信接続手段を介して1次プロセッサから,各データセグメントを受信するステップ」を含む点で共通している。

(d)
(d-1)引用発明では,「不揮発性メモリ106から内部RAM108にコードがロードされ,内部RAM108から外部RAM110にコードがロードされるように」なっていることから,上記(c)で検討したことを踏まえれば,引用発明では,「ホストプロセッサ102(1次プロセッサ)」“から”コードが“受信され”,この“受信された”コードが,「ロード」されるものであるといえる。
(d-2)上記(b)の検討から,引用発明の「外部RAM110の適切な場所」が本願発明の「システムメモリの中の特定された少なくとも1つのロケーション」に相当し,また,引用発明の「外部RAM110の適切な場所に内部RAM108の中間記憶領域の内容をコピー」することが,本願発明の「システムメモリの中の特定された少なくとも1つのロケーションに各データセグメントをロードする」ことに相当する。
(d-3)引用発明において「ロードされるコード」は,「内部RAM108の中間記憶領域において,しばしば,異なったアドレスにロードされるような情報の連続したブロックとしてアレンジされ」ることから,この場合,内部RAM108の中間記憶領域に記憶された「コード」は,外部RAM110の「異なったアドレス」に“分散ロード”されるものであるということができる。
(d-4)上記(d-1)?(d-3)の検討から,本願発明と引用発明とは,「1次プロセッサからシステムメモリの中の特定された少なくとも1つのロケーションに各データセグメントを分散ロードするステップ」を含む点で共通している。
(d-5)引用発明において,「コードのブロックは,内部RAM108の中間記憶領域の大きさに合わせて分割又は連結がなされて内部RAM108の中間記憶領域に転送され,内部RAM108の中間記憶領域から外部RAM110へコピーするための通信メカニズムとしてDMAを使用」するものである。
ここで,DMAが,中間記憶領域のデータを外部RAM110の所定の目的地アドレスに,「直接ロードする」ことができるものであることは,技術常識である。
(d-6)上記(d-4),(d-5)から,本願発明と引用発明とは,後記する点で相違するものの,「1次プロセッサからシステムメモリの中の特定された少なくとも1つのロケーションに各データセグメントを直接分散ロードするステップ」を含む点で共通している。

(e)上記(b)及び(d)の検討から,引用発明の「コード(各データセグメント)」が,“処理されたヘッダ”に“少なくとも一部基づいて”“分散ロードされる”ものであることは自明のことである。
してみれば,本願発明と引用発明とは,「各データセグメントは,処理されたイメージヘッダに少なくとも一部基づいて分散ロードされる」ものである点で共通している。

そうすると,本願発明と引用発明とは,

「2次プロセッサにおいて,通信接続手段を介して1次プロセッサから,前記1次プロセッサに結合されたメモリに記憶されている前記2次プロセッサのための実行可能ソフトウェアイメージのイメージヘッダを受信するステップであって,前記実行可能ソフトウェアイメージは,前記イメージヘッダおよび少なくとも1つのデータセグメントを備える,ステップと,
各データセグメントを記憶する,前記2次プロセッサが結合されたシステムメモリの中の少なくとも1つのロケーションを特定するために,前記イメージヘッダを前記2次プロセッサによって処理するステップと,
前記2次プロセッサにおいて,通信接続手段を介して前記1次プロセッサから,各データセグメントを受信するステップと,
前記1次プロセッサから前記システムメモリの中の前記特定された少なくとも1つのロケーションに各データセグメントを直接分散ロードするステップと
を含み,各データセグメントは,処理されたイメージヘッダに少なくとも一部基づいて分散ロードされる,方法。」

の点で一致し,次の点で相違する。

[相違点1]
2次プロセッサにおいて,1次プロセッサからイメージヘッダやデータセグメントを受信する際に,本願発明では,「チップ間通信バス」を介しているのに対して,引用発明では,「チップ間通信バス」を介することは特定されていない点。

[相違点2]
本願発明では,「2次プロセッサは,最初に1次プロセッサに対してイメージヘッダを要求し,その後少なくとも1つのデータセグメントを要求し,前記イメージヘッダおよび各データセグメントは別々に受信される」のに対して,引用発明はそのようになっているかどうか明らかでない点。

[相違点3]
前記1次プロセッサから前記システムメモリの中の前記特定された少なくとも1つのロケーションに各データセグメントを直接分散ロードするステップが,本願発明では,「2次プロセッサによって」実行されているのに対して,引用発明では,これに対応するDMA処理の主体が明らかでない点。

5.当審の判断
上記相違点について検討する。

[相違点1]について
上記(ア)の「図1の中の破線は,ホスト装置とスレーブ装置,この例ではARMとDSP,及び不揮発性メモリ106との間のハードウェア境界を示す。」との記載,「最も商業的に利用可能なDSP装置は,オンチップメモリを含み」との記載からみて,引用例1のホストプロセッサやクライアントプロセッサは「チップ」で構成されることが想定されているものと認められる。
そして,これらのホストプロセッサやクライアントプロセッサなどの「チップ間」を「バス」で接続することは,例えば引用例2(上記(エ)を参照)や引用例3(上記(オ)を参照)に記載されているように周知技術であるから,引用発明に当該周知技術を適用して,相違点1に係る構成とすることは,当業者が容易に想到し得たことである。

[相違点2]について
引用例4には,「プロセッサ間でデータ通信を行う際に,まず,ヘッダ部分を送信し,受信側では,このヘッダ部分の内容を解析して必要な処理を実行し,処理が終了したことを送信側に通知すると,送信側プロセッサがデータ部分の送信処理を開始するという手順」(以下,「引用例4記載事項」という。)が記載されている。
ここで,この手順において,最初に受信側からヘッダ部分を要求する手順を加えることは,当業者であれば適宜採用しうる設計的事項である。
そして,引用発明と引用例4記載事項とは,共に,プロセッサ間でデータ通信を行う技術分野に関するものである点で共通していることから,引用発明に引用例4記載事項の手順を適用して,まず,受信側が送信側に対してヘッダ部分を要求し,要求に応じて送信側がヘッダ部分を送信すると受信側がヘッダ部分の内容を解析し,その後,データ部分の送信を要求するように構成すること,すなわち,相違点2に係る構成とすることは当業者が容易に想到し得たことである。

[相違点3]について
引用発明では,DMA処理の主体が明らかではないものの,通常,DMA処理は,「DMAコントローラ」によってコントロールされることが技術常識である。
そして,引用発明では,DMA処理が,クライアントプロセッサ104に接続される内部RAM108と外部RAM110との間で行われているところ,当該DMA処理をコントロールする「DMAコントローラ」が,「クライアントプロセッサ104」の制御“によって”動作することは自明のことである。
してみれば,引用発明のDMA処理を,クライアントプロセッサ104が制御するDMAコントローラによって実行するように構成すること,すなわち,「クライアントプロセッサ104(2次プロセッサ)」“によって”各データセグメントを直接分散ロードするように構成することは当業者が容易に想到し得たことである。

そして,本願発明の作用効果も,引用発明,引用例4記載事項及び周知技術から当業者が予測できる範囲のものである。

したがって,本願発明は,引用発明,引用例4記載事項及び周知技術に基づいて,当業者が容易に発明をすることができたものである。

6.むすび
以上のとおり,本願発明は,引用発明,引用例4記載事項及び周知技術に基づいて,当業者が容易に発明をすることができたものであるから,特許法第29条第2項の規定により特許を受けることができない。
したがって,本願は他の請求項について検討するまでもなく拒絶されるべきものである。

よって,結論のとおり審決する。
 
審理終結日 2015-12-21 
結審通知日 2016-01-04 
審決日 2016-01-25 
出願番号 特願2013-501416(P2013-501416)
審決分類 P 1 8・ 121- WZ (G06F)
最終処分 不成立  
前審関与審査官 三坂 敏夫  
特許庁審判長 石井 茂和
特許庁審判官 辻本 泰隆
須田 勝巳
発明の名称 マルチプロセッサシステムにおける1次プロセッサから1つまたは複数の2次プロセッサへの実行可能ソフトウェアイメージの直接分散ローディング  
代理人 黒田 晋平  
代理人 村山 靖彦  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ