• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 特36条6項1、2号及び3号 請求の範囲の記載不備 取り消して特許、登録 G06F
審判 査定不服 2項進歩性 取り消して特許、登録 G06F
管理番号 1346328
審判番号 不服2017-9381  
総通号数 229 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2019-01-25 
種別 拒絶査定不服の審決 
審判請求日 2017-06-27 
確定日 2018-12-10 
事件の表示 特願2014-527060「マルチコアシステムのインターラプト割り当て方法及び装置」拒絶査定不服審判事件〔平成25年 2月28日国際公開、WO2013/027951、平成26年 9月22日国内公表、特表2014-524626、請求項の数(12)〕について、次のとおり審決する。 
結論 原査定を取り消す。 本願の発明は、特許すべきものとする。 
理由 第1 手続の経緯

本願は,2012年8月10日(パリ条約による優先権主張2011年8月23日(以下,「優先日」という。);韓国)を国際出願日とする出願であって,平成28年7月8日付けで拒絶理由通知がされ,平成28年10月17日に意見書が提出されるとともに手続補正がされ,平成29年2月22日付けで拒絶査定(原査定)がされ,これに対し,平成29年6月27日に拒絶査定不服審判の請求がされると同時に手続補正がされ,平成30年5月28日付けで当審より拒絶理由通知(以下,「当審拒絶理由」という。)がされ,平成30年9月4日に意見書が提出されるとともに手続補正がされたものである。


第2 原査定の概要

原査定(平成29年2月22日付け拒絶査定)の概要は次のとおりである。

本願請求項1-12に係る発明は,以下の引用文献A-Dに基づいて,その発明の属する技術の分野における通常の知識を有する者(以下,「当業者」という。)が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができない。

引用文献等一覧
A.米国特許出願公開第2011/0087815号明細書
B.特開2005-4562号公報
C.米国特許出願公開第2011/0072180号明細書
D.特開昭55-154653号公報


第3 当審拒絶理由の概要

当審拒絶理由の概要は次のとおりである。

1.本願出願は,請求項1-12に係る特許請求の範囲の記載が,特許法第36条第6項第2号に規定する要件を満たしていない。

2.本願請求項1-12に係る発明は,以下の引用文献1-3に基づいて,当業者が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができない。

引用文献等一覧
1.米国特許出願公開第2011/0087815号明細書(原査定時の引用文献A)
2.特開昭55-154653号公報(原査定時の引用文献D)
3.米国特許出願公開第2011/0072180号明細書(原査定時の引用文献C)


第4 本願発明

本願請求項1-12に係る発明(以下,それぞれ「本願発明1」-「本願発明12」という。)は,平成30年9月4日付けの手続補正で補正された特許請求の範囲の請求項1-12に記載された事項により特定される発明であり,本願発明1-12は以下のとおりの発明である。

「 【請求項1】
マルチコアシステムの各コアのインターラプト処理能力を記録するインターラプト制御レジスタ部を具備したインターラプト割り当て装置のインターラプト割り当て方法において,
インターラプトを受信する受信段階と,
前記各コアに対応する各インターラプト制御レジスタを確認することで,前記各コアの前記インターラプトの処理可能可否を確認する確認段階と,
前記各コアのうち任意のコアが,前記インターラプトの処理が可能であると判断されると,前記任意のコアに前記インターラプトを割り当てる割り当て段階と,
前記インターラプトを割り当てられたコアから,前記コアに対応するインターラプト制御レジスタをインターラプト処理不能状態に変更するための信号を受信する段階と,を含み,
前記確認段階は,
任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないことを特徴とするインターラプト割り当て方法。
【請求項2】
前記コアは,前記インターラプトの処理を完了した後,前記コアに対応するインターラプト制御レジスタをインターラプト処理可能状態に変更する信号を前記インターラプト制御レジスタ部に送信することを特徴とする請求項1に記載のインターラプト割り当て方法。
【請求項3】
前記インターラプト制御レジスタ部は,前記コアの信号によって前記コアに対応するインターラプト制御レジスタを変更することを特徴とする請求項2に記載のインターラプト割り当て方法。
【請求項4】
前記インターラプト制御レジスタ部は,各コアの複数のタイプのインターラプト処理能力を記録することを特徴とする請求項1に記載のインターラプト割り当て方法。
【請求項5】
前記インターラプト制御レジスタ部は,各コアのプリエンプション/ノン-プリエンプション状態を記録することを特徴とする請求項4に記載のインターラプト割り当て方法。
【請求項6】
前記インターラプト制御レジスタ部は,各コアのインターラプト処理能力を記録するレジスタを含む1つの物理的集合で構成されることを特徴とする請求項1に記載のインターラプト割り当て方法。
【請求項7】
マルチコアシステムのインターラプト割り当て装置において,
各コアのインターラプト処理能力を記録するインターラプト制御レジスタ部と,
前記各コアに対応する各インターラプト制御レジスタを確認することで,前記各コアのインターラプトの処理可能可否を確認し,前記各コアのうち任意のコアが,前記インターラプトの処理が可能であると判断されると,前記任意のコアに前記インターラプトを割り当てるインターラプト割り当て部とを含み,
前記インターラプト制御レジスタ部は,
前記インターラプトを割り当てられたコアから,前記コアに対応するインターラプト制御レジスタをインターラプト処理不能状態に変更するための信号を受信し,
前記インターラプト割り当て部は,
任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないことを特徴とするインターラプト割り当て装置。
【請求項8】
前記コアは,前記インターラプトの処理を完了した後,前記コアに対応するインターラプト制御レジスタをインターラプト処理可能状態に変更する信号を前記インターラプト制御レジスタ部に送信することを特徴とする請求項7に記載のインターラプト割り当て装置。
【請求項9】
前記インターラプト制御レジスタ部は,前記コアの信号によって前記コアに対応するインターラプト制御レジスタを変更することを特徴とする請求項8に記載のインターラプト割り当て装置。
【請求項10】
前記インターラプト制御レジスタ部は,各コアの複数のタイプのインターラプト処理能力を記録することを特徴とする請求項7に記載のインターラプト割り当て装置。
【請求項11】
前記インターラプト制御レジスタ部は,各コアのプリエンプション/ノン-プリエンプション状態を記録することを特徴とする請求項10に記載のインターラプト割り当て装置。
【請求項12】
前記インターラプト制御レジスタ部は,各コアのインターラプト処理能力を記録するレジスタを含む1つの物理的集合で構成されることを特徴とする請求項7に記載のインターラプト割り当て装置。」


第5 引用文献,引用発明等

1.引用文献1について
原査定の拒絶の理由に引用され,当審拒絶理由にも引用された引用文献1(米国特許出願公開第2011/0087815号明細書)には,図面とともに次の事項が記載されている。(下線は当審により付与。)

A 「[0012] This disclosure is generally drawn, inter alia, to methods, apparatus, systems, and computer program products related to multi-core processors. Techniques are described to configure a core specific interrupt mask (“CIM”) to influence the assignment of interrupts to particular processor cores in the multi-core processor. The CIM may be arranged to flag specific processor cores as being either available or unavailable to handle interrupts. If the CIM flags a specific processor core as being available, then a computer system that is part of the multi-core processor may route an interrupt service routine (“ISR”) corresponding to an interrupt service request (“IRQ”) to that specific processor core. This specific processor core may then execute the ISR. If the CIM flags a specific processor core as being unavailable, then the computer system may route the ISR away from that specific processor core to another available processor core. The computer system may configure the CIM such that processor cores that minimally impact overall system performance can be selected to execute the ISRs.」
(ファミリである特表2013-507719号公報の対応する記載:
「【0010】
本開示は一般に,とりわけ,マルチコアプロセッサに関連した方法,装置,システム,およびコンピュータプログラム製品を対象とするものである。マルチコアプロセッサ内の特定のプロセッサコアへの割込みの割当てに影響を及ぼすようにコア別の割込みマスク(「CIM」)を構成するための技法が説明される。CIMは,特定のプロセッサコアに,割込みを処理するのに利用可能と利用不可能のどちらかであるというフラグを立てるように構成され得る。CIMが特定のプロセッサコアに利用可能というフラグを立てている場合には,マルチコアプロセッサの一部であるコンピュータシステムは,割込みサービス要求(「IRQ」)に対応する割込みサービスルーチン(「ISR」)を当該の特定のプロセッサコアへ経路指定し得る。次いでこの特定のプロセッサコアはISRを実行し得る。CIMが特定のプロセッサコアに利用不可能というフラグを立てている場合には,コンピュータシステムは,ISRを当該の特定のプロセッサコアから離して別の利用可能なプロセッサコアへ経路指定し得る。コンピュータシステムは,ISRを実行するのに,全般的システム性能に最小限の影響しか及ぼさないプロセッサコアが選択され得るようにCIMを構成し得る。」)

B 「[0033] According to some embodiments, the CIM, as described in greater detail below, may be adapted to identify specific processor cores as being unavailable or available to execute the ISR 134 . An operating system or other suitable controlling mechanism may configure the CIM such that processor cores having a significant impact on overall system performance may be specified as unavailable. When an ISR guide logic 235 in the interrupt controller 220 reads the CIM, the ISR guide logic 235 may guide the ISR 134 away from unavailable processor cores to those processor cores that have the least impact on overall system performance.
[0034] According to Amdahl's law, overall system performance improves as the percentage of parallel computing increases and the percentage of non-parallel (i.e., serial) computing decreases. By guiding interrupts to those processor cores having the least impact on overall system performance, the CIM may improve overall system performance under Amdahl's law. For example, the first processor core 115 A may be executing a highly serial task. Under Amdahl's law, overall system performance may decrease if the first processor core 115 A delays executing the serial task in order to handle additional serial computations, such as the ISR 134 . By directing the ISR 134 to another processor core that is not executing any tasks, the interrupt controller 220 may increase the percentage of parallel computing by increasing the number of processor cores that are concurrently performing tasks.」
(「【0031】
いくつかの実施形態によれば,CIMは,以下でより詳細に説明するように,特定のプロセッサコアを,ISR134を実行するために利用不可能であり,または利用可能であるものとして識別するように適合され得る。オペレーティングシステムまたは他の適切な制御機構が,CIMを,全般的システム性能に大きな影響を及ぼすプロセッサコアが利用不可能と指定されるように構成し得る。割込み制御器220内のISR誘導論理235がCIMを読み取るときに,ISR誘導論理235はISR134を利用不可能なプロセッサコアから離して,全般的システム性能に最小限の影響しか及ぼさないプロセッサコアに誘導し得る。
【0032】
アムダールの法則によれば,全般的システム性能は,並列計算処理の割合が増加し,非並列(すなわち直列の)計算処理の割合が減少するに従って向上する。割込みを全般的システム性能に最小限の影響しか及ぼさないプロセッサコアに誘導することにより,CIMは,アムダールの法則に従って全般的システム性能を向上させ得る。例えば,第1のプロセッサコア115Aが直列性の高いタスクを実行しているとする。アムダールの法則によれば,全般的システム性能は,第1のプロセッサコア115Aが,ISR134といったさらに別の直列計算処理を処理するために直列タスクの実行を遅延させる場合に低下し得る。ISR134を,タスクを実行していない別のプロセッサコアに向ければ,割込み制御器220は,タスクを同時に実行しているプロセッサコアの数を増やすことにより,並列計算処理の割合を増加させ得る。」)

C 「[0035] Turning now to FIG. 3 , a block diagram 300 illustrates the interrupt controller 220 , a CIM 305 , a control module 310 , and an interrupt mask register (“IMR”) 315 , arranged according to at least some embodiments presented herein. Although not illustrated in FIG. 3 , the CIM 305 and/or the IMR 315 may be implemented within the interrupt controller 220 . The interrupt controller 220 may be adapted to receive and latch IRQs arriving on one or more interrupt lines 225 . In response to an IRQ, the interrupt controller 220 may identify one of the processor cores 115 to respond to the IRQ. In particular, the interrupt controller 220 may identify one of the available processor cores as indicated in the CIM 305 .
[0036] According to some embodiments, the CIM 305 may be implemented as a register containing a number of bits. In some implementations, each of the bits may correspond to one or more of the processor cores 115 . In other implementations, one or more bits may correspond to each of the processor cores 115 . In other embodiments, the CIM 305 may be implemented as other types of hardware, software, firmware, or any combination thereof.
[0037] In some examples, each bit may correspond to a respective one of the processor cores 115 . In some implementations, a “1” value in the bit may indicate that the corresponding processor core is available, and a “0” value in the bit may indicate that the corresponding processor core is unavailable. In other implementations, multiple bits may be utilized to indicate information about a corresponding processor core. For example, a “0” value in the bits may indicate that the corresponding processor core is unavailable, a “1” value in the bits may indicate that the corresponding processor cores was just made available (e.g., available for less than a first threshold number of clock cycles), a “2” value in the bits may indicate that the corresponding processor core was available for more than the first threshold number of clock cycles but less than a second threshold number of clock cycles, and a “3” value in the bits may indicate that the corresponding processor core was available for more than the second threshold number of clock cycles. In yet other implementations, the bits in multiple processor cores may be encoded. The bits in the CIM 305 may also indicate other information as may be contemplated by one skilled in the art. The ISR guide logic 235 in the interrupt controller 220 may be arranged to route the ISR 134 away from the unavailable processor cores and toward the available processor cores.」
(「【0033】
次に図3を見ると,ブロック図300で,本明細書で提示する少なくともいくつかの実施形態に従って構成された,割込み制御器220,CIM305,制御モジュール310,および割込みマスクレジスタ(「IMR」)315が示されている。図3には示されていないが,CIM305および/またはIMR315は割込み制御器220内で実施されていてもよい。割込み制御器220は,1つまたは複数の割込み線225上で届くIRQを受け取り,ラッチするように適合され得る。IRQに応答して,割込み制御器220は,IRQに応答するためのプロセッサコア115のうちの1つを識別し得る。特に,割込み制御器220は,CIM305において表示される利用可能なプロセッサコアのうちの1つを識別し得る。
【0034】
いくつかの実施形態によれば,CIM305は,いくつかのビットを含むレジスタとして実施され得る。実施態様によっては,各ビットはプロセッサコア115のうちの1つまたは複数に対応していてもよい。実施態様によっては,1つまたは複数のビットが各プロセッサコア115に対応していてもよい。別の実施形態では,CIM305は,別の種類のハードウェア,ソフトウェア,ファームウェア,またはそれらの任意の組み合わせとして実施されてもよい。
【0035】
場合によっては,各ビットは,プロセッサコア115のうちの個々の1つに対応していてもよい。実施態様によっては,ビットの値「1」が,対応するプロセッサコアが利用可能であることを表示してもよく,ビットの値「0」が,対応するプロセッサコアが利用不可能であることを表示してもよい。他の実施態様では,対応するプロセッサコアに関する情報を表示するのに複数のビットが利用されてもよい。例えば,ビットの値「0」は,対応するプロセッサコアが利用不可能であることを表示し,ビットの値「1」は,対応するプロセッサコアが直前に利用可能になった(例えば,第1の閾値クロックサイクル数より少ないクロックサイクル数にわたって利用可能であったなど)ことを表示し,ビットの値「2」は,対応するプロセッサコアが第1の閾値クロックサイクル数より多いが,第2の閾値クロックサイクル数より少ないクロックサイクル数にわたって利用可能であったことを表示し,ビットの値「3」が,対応するプロセッサコアが第2の閾値クロックサイクル数より多いクロックサイクル数にわたって利用可能であったことを表示してもよい。さらに別の実施態様では,複数のプロセッサコア内のビットが符号化されてもよい。またCIM305内の各ビットは,当業者によって企図され得る他の情報も表示してよい。割込み制御器220内のISR誘導論理235は,ISR134を,利用不可能なプロセッサコアから離し,利用可能なプロセッサコアへ経路指定するように構成され得る。」)

D 「[0038] According to some embodiments, a CIM bit control logic 325 in the control module 310 can be adapted to set the values of bits 405 in the CIM 305 . The control module 310 may be implemented in an operating system, a supervisory system, or other suitable centralized control mechanisms. In some further embodiments, a CIM setting module, such as a first CIM setting module 320 A, a second CIM setting module 320 B, and an Nth CIM setting module 320 E, may also be implemented in one or more of the processor cores 115 . The first CIM setting module 320 A, the second CIM setting module 320 B, and the Nth CIM setting module 320 E may be referred to collectively, or generally, as CIM setting modules 320 . The CIM setting modules 320 may enable one or more of the processor cores 115 to directly set their own corresponding bits within the CIM 305 .
[0039] The CIM bit control logic 325 in the control module 310 may be configured to set the bits 405 according to a variety of CIM setting criteria 335 . In a first example implementation, the control module 310 may set a processor core as unavailable when the processor core begins executing a task. By setting a busy processor core as unavailable, the control module 310 can prevent the interrupt controller 220 from potentially assigning the ISR 134 to the processor core when the processor core may become temporarily idle during execution of the task.
・・・(中略)・・・
[0044] In some implementations, the CIM setting modules 320 may be configured to initially set each of the bits 405 in the CIM 305 to a “1” value, indicating that each of the processor cores 115 is available. The CIM setting modules 320 may be configured to change one or more of the bits 405 in the CIM 305 from the “1” value to the “0 value, indicating that the one or more corresponding processor cores 115 are unavailable, based on the CIM setting criteria 335 , as previously described. When the CIM setting criteria 335 is no longer satisfied, the CIM setting modules 320 may be configured to return the bits 405 in the CIM 305 from the “0” value back to the “1” value.」
(「【0036】
いくつかの実施形態によれば,制御モジュール310内のCIMビット制御論理325は,CIM305内のビット405の値を設定するように適合させることができる。制御モジュール310は,オペレーティングシステム,監視システム,または他の適切な集中制御機構において実施され得る。また,いくつかのさらに別の実施形態では,第1のCIM設定モジュール320A,第2のCIM設定モジュール320B,第NのCIM設定モジュール320EといったCIM設定モジュールも,プロセッサコア115のうちの1つまたは複数において実施され得る。第1のCIM設定モジュール320A,第2のCIM設定モジュール320B,および第NのCIM設定モジュール320Eをまとめて,または一般的に,CIM設定モジュール320と呼んでもよい。CIM設定モジュール320は,プロセッサコア115のうちの1つまたは複数がCIM305内のそれぞれに対応するビットを直接設定することを可能にし得る。
【0037】
制御モジュール310内のCIMビット制御論理325は,様々なCIM設定基準335に従ってビット405を設定するように構成され得る。第1の実施態様の例において,制御モジュール310は,プロセッサコアがタスクを実行し始めるときに,プロセッサコアを利用不可能と設定し得る。動作中のプロセッサコアを利用不可能と設定することにより,制御モジュール310は,プロセッサコアがタスクの実行中に一時的に遊休状態になり得るときに,割込み制御器220がプロセッサコアにISR134を割り当てる可能性を防止することができる。
・・・(中略)・・・
【0042】
実施態様によっては,CIM設定モジュール320は,最初に,CIM305内の各ビット405を値「1」に設定し,各プロセッサコア115が利用可能であることを表示するように構成されてもよい。CIM設定モジュール320は,前述のように,CIM設定基準335に基づいて,CIM305内のビット405のうちの1つまたは複数を値「1」から値「0」に変更し,1つまたは複数の対応するプロセッサコア115が利用不可能であることを表示するように構成されてもよい。CIM設定基準335が満たされなくなると,CIM設定モジュール320は,CIM305内のビット405を値「0」から値「1」に戻すように構成されてもよい。」)

E 「[0051] Referring now to FIG. 5 , additional details will be provided regarding the embodiments presented herein for interrupt masking in multi-core processors. In particular, FIG. 5 is a flow diagram illustrating a process 500 for handling interrupts in a multi-core processor computing system having the CIM 305 , arranged according to at least some embodiments presented herein.
[0052] It should be appreciated that the operations described herein are implemented as a sequence of operational or manufacturing acts, as a sequence of computer implemented acts or program modules running on a computing system, or as interconnected machine logic circuits or circuit modules within the computing system. The implementation is a matter of choice dependent on the performance and other requirements of the various embodiments. Some of the logical operations described herein are referred to variously as state operations, structural devices, acts, or modules. These operations, functions, structural devices, acts and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof. It should also be appreciated that more or fewer operations may be performed than shown in the figures and described herein. These operations may also be performed sequentially, in parallel, or in a different order than those described herein.
[0053] The process 500 may include various operations, functions or actions as illustrated by one or more of blocks 502 , 504 , and/or 506 . The process 500 may begin at block 502 (Receive Interrupt Associated with Interrupt Service Routine), where the interrupt controller 220 may receive an IRQ from the interrupt lines 225 . The IRQ may be associated with an ISR, such as the ISR 134 . Block 502 may be followed by block 504 .
[0054] At block 504 (Determine Available Processor Cores), the interrupt controller 220 , and in particular the ISR guide logic 235 , may determine available processor cores by reading (i.e., evaluating) the CIM 305 . For example, the CIM 305 may store bit values indicating the available processor cores and the unavailable processor cores in the processor cores 115 . Block 504 may be followed by block 506 .
[0055] At block 506 (Assign Interrupt Service Routine to Available Processor), the interrupt controller 220 , and in particular the ISR guide logic 235 , can assign the associated ISR 134 to one of the available processor cores as specified by the CIM 305 . The interrupt controller 220 may also assign the IRQ to one of the available processor cores as specified by the CIM 305 . After block 506 , the process may either repeat (e.g., periodically, continuously, or on demand as needed) or terminate.」
(「【0049】
次に図5を参照して,マルチコアプロセッサにおける割込みマスクについて本明細書で提示する実施形態に関してさらに詳細に説明する。特に,図5は,本明細書で提示する少なくともいくつかの実施形態に従って構成された,CIM305を有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセス500を示す流れ図である。
【0050】
本明細書で説明する動作は,一連の動作もしくは製造行為として,一連のコンピュータによる動作もしくはコンピューティングシステム上で走るプログラムモジュールとして,または相互接続された機械論理回路もしくはコンピューティングシステム内の回路モジュールとして実施されることを理解すべきである。実施態様は,様々な実施形態の性能および他の要件に依存する選択の問題である。本明細書で説明する論理動作の中には,状態動作,構造的装置,作用,またはモジュールと,様々な名称で呼ばれるものがある。これらの動作,機能,構造的装置,作用,およびモジュールは,ソフトウェア,ファームウェア,専用デジタル論理として実施されても,これらの組み合わせとして実施されてもよい。また,各図に示され,本明細書に記載される動作よりも多い,または少ない動作が実施されてもよいことも理解すべきである。またこれらの動作は,順次に実施されても,並列に実施されても,本明細書に記載されるのとは異なる順序で実施されてもよい。
【0051】
プロセス500は,ブロック502,ブロック504および/またはブロック506のうちの1つまたは複数によって示される様々な動作,機能,または措置を含み得る。プロセス500は,ブロック502(割込みサービスルーチンと関連付けられた割込みを受け取る)から開始してよく,そこで割込み制御器220は割込み線225からIRQを受け取り得る。IRQはISR134といったISRと関連付けられていてよい。ブロック502に続いてブロック504が行われ得る。
【0052】
ブロック504(利用可能なプロセッサコアを決定する)で,割込み制御器220,特にISR誘導論理235は,CIM305を読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定し得る。例えば,CIM305は,プロセッサコア115における利用可能なプロセッサコアと利用不可能なプロセッサコアとを表示するビット値を記憶し得る。ブロック504に続いてブロック506が行われ得る。
【0053】
ブロック506(割込みサービスルーチンを利用可能なプロセッサに割り当てる)で,割込み制御器220,特にISR誘導論理235は,関連付けられたISR134を,CIM305によって指定される利用可能なプロセッサコアのうちの1つに割り当てることができる。また割込み制御器220は,IRQを,CIM305によって指定される利用可能なプロセッサコアのうちの1つに割り当ててもよい。ブロック506の後で,プロセスは(例えば,周期的に,連続して,または必要に応じて要求時に)繰り返しても,終了してもよい。」)

以上の記載から,引用文献1には,下記の発明(以下,「引用発明」という)が記載されているといえる。

「マルチコアプロセッサに関連した方法であって,
マルチコアプロセッサ内の特定のプロセッサコアへの割込みの割当てに影響を及ぼすようにコア別の割込みマスク(「CIM」)を構成するためのものであり,CIMは,特定のプロセッサコアに,割込みを処理するのに利用可能と利用不可能のどちらかであるというフラグを立てるように構成され,上記CIMが特定のプロセッサコアに利用可能というフラグを立てている場合には,マルチコアプロセッサの一部であるコンピュータシステムは,割込みサービス要求(「IRQ」)に対応する割込みサービスルーチン(「ISR」)を当該の特定のプロセッサコアへ経路指定し,次いでこの特定のプロセッサコアはISRを実行し,上記CIMが特定のプロセッサコアに利用不可能というフラグを立てている場合には,コンピュータシステムは,ISRを当該の特定のプロセッサコアから離して別の利用可能なプロセッサコアへ経路指定し,コンピュータシステムは,ISRを実行するのに,全般的システム性能に最小限の影響しか及ぼさないプロセッサコアが選択され得るように上記CIMを構成するものであり,
上記CIMは,特定のプロセッサコアを,ISRを実行するために利用不可能であり,または利用可能であるものとして識別するように適合され,オペレーティングシステムまたは他の適切な制御機構が,上記CIMを,全般的システム性能に大きな影響を及ぼすプロセッサコアが利用不可能と指定されるように構成し,割込み制御器内のISR誘導論理が上記CIMを読み取るときに,ISR誘導論理はISRを利用不可能なプロセッサコアから離して,全般的システム性能に最小限の影響しか及ぼさないプロセッサコアに誘導し得るものであり,
上記CIMおよび/またはIMRは割込み制御器内で実施されており,割込み制御器は,1つまたは複数の割込み線上で届くIRQを受け取り,ラッチするように適合され,IRQに応答して,割込み制御器は,IRQに応答するためのプロセッサコアのうちの1つを識別し,特に,割込み制御器は,上記CIMにおいて表示される利用可能なプロセッサコアのうちの1つを識別し,
上記CIMは,いくつかのビットを含むレジスタとして実施され,
対応するプロセッサコアに関する情報を表示するのに複数のビットが利用されてもよく,
第1のCIM設定モジュール,第2のCIM設定モジュール,第NのCIM設定モジュールといったCIM設定モジュールも,プロセッサコアのうちの1つまたは複数において実施され,上記CIM設定モジュールは,プロセッサコアのうちの1つまたは複数が上記CIM内のそれぞれに対応するビットを直接設定することを可能にし,
制御モジュール内のCIMビット制御論理は,様々なCIM設定基準に従ってビットを設定するように構成され,プロセッサコアがタスクを実行し始めるときに,プロセッサコアを利用不可能と設定し,
上記CIM設定モジュールは,最初に,上記CIM内の各ビットを値「1」に設定し,各プロセッサコアが利用可能であることを表示するように構成されて,上記CIM設定モジュールは,上記CIM設定基準に基づいて,上記CIM内のビットのうちの1つまたは複数を値「1」から値「0」に変更し,1つまたは複数の対応するプロセッサコアが利用不可能であることを表示するように構成され,上記CIM設定基準が満たされなくなると,上記CIM設定モジュールは,上記CIM内のビットを値「0」から値「1」に戻すように構成されており,
上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセスとして,
割込みサービスルーチンと関連付けられた割込みを受け取ることであって,そこで割込み制御器は割込み線からIRQを受け取り,
利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定し,
割込みサービスルーチンを利用可能なプロセッサに割り当てることであって,割込み制御器,特にISR誘導論理は,関連付けられたISRを,上記CIMによって指定される利用可能なプロセッサコアのうちの1つに割り当てること,を含む
方法。」

2.引用文献2について

原査定の拒絶の理由に引用され,当審拒絶理由にも引用された引用文献2(特開昭55-154653号公報)の第2頁左上第14行?右上欄第13行,には,マルチプロセッサの複数のプロセッサに割込処理を分配するシステムにおいて,割込要求に対して割込を受け付けたプロセッサがあれば,次の割込時には予め決められた順序における次の順のプロセッサから順次循環して割込をかける,という技術的事項が記載されている。

3.引用文献3について

原査定の拒絶の理由に引用され,当審拒絶理由にも引用された引用文献3(米国特許出願公開第2011/0072180号明細書)の段落【0062】には,各コアがプリエンプション/ノンプリエンプションであるかにより,割り込み可能であるか否かの判断を行う,という技術的事項が記載されている。

4.引用文献Bについて

原査定の拒絶の理由に引用された引用文献B(特開2005-4562号公報)の段落【0051】-【0056】,【0069】-【0076】には,割込処理を実行するプロセッサを選択するために,割込を受け付けると書き込まれ,割込状態が終了するとをクリアされる「割り込み状態」のフラグを設け,上記フラグを参照して割り込み先のプロセッサを選択する,という技術的事項が記載されている。


第6 対比・判断

1.本願発明1について
(1)対比
本願発明1と引用発明とを対比する。

ア 引用発明である「マルチコアプロセッサに関連した方法」は,「割込みサービスルーチンと関連付けられた割込みを受け取ること」,「利用可能なプロセッサコアを決定すること」,及び,「割込みサービスルーチンを利用可能なプロセッサに割り当てることであって,割込み制御器,特にISR誘導論理は,関連付けられたISRを,CIMによって指定される利用可能なプロセッサコアのうちの1つに割り当てること」,とのプロセスを含むことから,割込み制御器によって,割込みを利用可能なプロセッサコアに割り当てる方法であり,「インターラプト割り当て方法」であるといえ,また,引用発明における「マルチコアプロセッサ」,「プロセッサコア」,「割込み制御器」は,本願発明1における「マルチコアシステム」,「コア」,「インターラプト割り当て装置」にそれぞれ相当する。
そして,引用発明における「コア別の割込みマスク(「CIM」)」は,「特定のプロセッサコアに,割込みを処理するのに利用可能と利用不可能のどちらかであるというフラグを立てるように構成され,上記CIMが特定のプロセッサコアに利用可能というフラグを立てている場合には,マルチコアプロセッサの一部であるコンピュータシステムは,割込みサービス要求(「IRQ」)に対応する割込みサービスルーチン(「ISR」)を当該の特定のプロセッサコアへ経路指定し,次いでこの特定のプロセッサコアはISRを実行し,上記CIMが特定のプロセッサコアに利用不可能というフラグを立てている場合には,コンピュータシステムは,ISRを当該の特定のプロセッサコアから離して別の利用可能なプロセッサコアへ経路指定」するためのものであることから,各「プロセッサコア」に「割込みサービス要求(「IRQ」)に対応する割込みサービスルーチン(「ISR」)」を割り当てる上で用いる,「利用可能と利用不可能のどちらかであるというフラグ」が立てられているものであり,また,その構成として「いくつかのビットを含むレジスタとして実施」されていることから,本願発明1における「各コアのインターラプト処理能力を記録するインターラプト制御レジスタ部」に相当する。
そうすると,引用発明である「マルチコアプロセッサに関連した方法であって」,「CIMは,特定のプロセッサコアに,割込みを処理するのに利用可能と利用不可能のどちらかであるというフラグを立てるように構成され,上記CIMが特定のプロセッサコアに利用可能というフラグを立てている場合には,マルチコアプロセッサの一部であるコンピュータシステムは,割込みサービス要求(「IRQ」)に対応する割込みサービスルーチン(「ISR」)を当該の特定のプロセッサコアへ経路指定し,次いでこの特定のプロセッサコアはISRを実行し,上記CIMが特定のプロセッサコアに利用不可能というフラグを立てている場合には,コンピュータシステムは,ISRを当該の特定のプロセッサコアから離して別の利用可能なプロセッサコアへ経路指定」するものであり,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセスとして,割込みサービスルーチンと関連付けられた割込みを受け取ることであって,そこで割込み制御器は割込み線からIRQを受け取り,利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定し,割込みサービスルーチンを利用可能なプロセッサに割り当てることであって,割込み制御器,特にISR誘導論理は,関連付けられたISRを,上記CIMによって指定される利用可能なプロセッサコアのうちの1つに割り当てること,を含む」ことは,本願発明1である「マルチコアシステムの各コアのインターラプト処理能力を記録するインターラプト制御レジスタ部を具備したインターラプト割り当て装置のインターラプト割り当て方法」に対応する。

イ 引用発明は,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセスとして,割込みサービスルーチンと関連付けられた割込みを受け取ること」を含むものであるから,引用発明と本願発明1とは,「インターラプトを受信する受信段階」を含む点で一致する。

ウ 引用発明は,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセス」として,「利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定」することを含むものであり,上記CIMとは「マルチコアプロセッサ内の特定のプロセッサコアへの割込みの割当てに影響を及ぼすようにコア別」に構成されたものであるから,各コアに対応したものであり,また,上記CIMを「読み取る(すなわち評価する)」ことは確認することといえ,さらに,「割込みを処理する」上で「利用可能なプロセッサコア」を「決定」することは,割込みの処理可能可否を確認していることに他ならない。
そうすると,引用発明が,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセス」として,「マルチコアプロセッサ内の特定のプロセッサコアへの割込みの割当てに影響を及ぼすようにコア別」に構成した「CIM」について,「利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定」することを含むことは,本願発明1が,「前記各コアに対応する各インターラプト制御レジスタを確認することで,前記各コアの前記インターラプトの処理可能可否を確認する確認段階」を含むことに相当する。

エ 上記ウで検討のとおり,引用発明は,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセス」として,「利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定」することを含み,また,「割込みサービスルーチンを利用可能なプロセッサに割り当てること」を含むところ,当該「割り当てること」ができるのは,「利用可能なプロセッサコア」が「決定」された場合であって,そして,当該「利用可能なプロセッサコア」の「決定」とは,あるプロセッサコアが割込みの処理が可能であると判断することに他ならない。
そうすると,引用発明が,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセス」として,「利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定」することを含むことは,本願発明1が,「前記各コアのうち任意のコアが,前記インターラプトの処理が可能であると判断されると,前記任意のコアに前記インターラプトを割り当てる割り当て段階」を含むことに相当する。

オ 引用発明は,「上記CIM設定モジュールは,最初に,上記CIM内の各ビットを値「1」に設定し,各プロセッサコアが利用可能であることを表示するように構成されて,上記CIM設定モジュールは,上記CIM設定基準に基づいて,上記CIM内のビットのうちの1つまたは複数を値「1」から値「0」に変更し,1つまたは複数の対応するプロセッサコアが利用不可能であることを表示するように構成され,上記CIM設定基準が満たされなくなると,上記CIM設定モジュールは,上記CIM内のビットを値「0」から値「1」に戻すように」構成されており,この場合の「CIM内」の『値「0」』及び『値「1」』とは,「プロセッサコア」が「利用不可能」及び「利用可能」であることを表示するものであるから,特に前者の『値「0」』はインターラプト処理不能状態を示すものといえる。
そして,引用発明では,「上記CIM設定基準に基づいて,上記CIM内のビットのうちの1つまたは複数を値「1」から値「0」に変更し,1つまたは複数の対応するプロセッサコアが利用不可能であることを表示する」ものであるところ,上記「CIM設定基準」では,「プロセッサコアがタスクを実行し始めるときに,プロセッサコアを利用不可能と設定」するものであるから,上記「CIM内のビットのうちの1つまたは複数を値「1」から値「0」に変更し,1つまたは複数の対応するプロセッサコアが利用不可能であることを表示する」ようにするのは,プロセッサコアが実行するタスクに対応する割込みを割り当てられるときであるといえる。
さらに,引用発明は,「第1のCIM設定モジュール,第2のCIM設定モジュール,第NのCIM設定モジュールといったCIM設定モジュールも,プロセッサコアのうちの1つまたは複数において実施」されるものであり,「CIM」内の各ビットを変更するよう設定する各「CIM設定モジュール」は,対応する「プロセッサコア」に構成として含まれることから,当該「CIM設定モジュール」が「CIM」内の各ビットを変更するよう設定するための信号が,対応する「プロセッサコア」から送信されているといえ,送信された当該信号を「CIM」が受信していることは明らかである。
そうすると,引用発明が,「上記CIM設定モジュールは,最初に,上記CIM内の各ビットを値「1」に設定し,各プロセッサコアが利用可能であることを表示するように構成されて,上記CIM設定モジュールは,上記CIM設定基準に基づいて,上記CIM内のビットのうちの1つまたは複数を値「1」から値「0」に変更し,1つまたは複数の対応するプロセッサコアが利用不可能であることを表示するように構成され,上記CIM設定基準が満たされなくなると,上記CIM設定モジュールは,上記CIM内のビットを値「0」から値「1」に戻すように」することは,本願発明1が,「前記インターラプトを割り当てられたコアから,前記コアに対応するインターラプト制御レジスタをインターラプト処理不能状態に変更するための信号を受信する段階」を含むことに相当する。

上記アないしオの対比によれば,本願発明1と引用発明とは,次の点で一致し,そして相違する。

(一致点)
マルチコアシステムの各コアのインターラプト処理能力を記録するインターラプト制御レジスタ部を具備したインターラプト割り当て装置のインターラプト割り当て方法において,
インターラプトを受信する受信段階と,
前記各コアに対応する各インターラプト制御レジスタを確認することで,前記各コアの前記インターラプトの処理可能可否を確認する確認段階と,
前記各コアのうち任意のコアが,前記インターラプトの処理が可能であると判断されると,前記任意のコアに前記インターラプトを割り当てる割り当て段階と,
前記インターラプトを割り当てられたコアから,前記コアに対応するインターラプト制御レジスタをインターラプト処理不能状態に変更するための信号を受信する段階と,を含む,
インターラプト割り当て方法。

(相違点1)
確認段階に関し,
本願発明1は,「任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないこと」であるのに対して,
引用発明では,そのような特定はなされていない点。

(2)相違点についての判断

引用発明は,「上記CIMを有するマルチコア・プロセッサ・コンピューティング・システムにおいて割込みを処理するためのプロセス」として,「マルチコアプロセッサ内の特定のプロセッサコアへの割込みの割当てに影響を及ぼすようにコア別」に構成した「CIM」について,「利用可能なプロセッサコアを決定することであって,割込み制御器,特にISR誘導論理は,上記CIMを読み取る(すなわち評価する)ことによって利用可能なプロセッサコアを決定」することを含むところ,
相違点1に係る本願発明1における「任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないこと」という構成は,上記引用文献2,3,Bのいずれにも記載されておらず,また,本願優先日前において当該技術分野の周知技術であるともいえない。
そうすると,引用発明に基づいて,相違点1に係る本願発明1の構成とすることは,当業者が容易になし得ることであるとはいえない。

したがって,本願発明1は,当業者であっても引用発明,引用文献2,3,Bに記載された技術的事項,および周知技術に基づいて容易に発明できたものであるとはいえない。


2.本願発明7について

本願発明7は,本願発明1に対応する「インターラプト割り当て装置」の発明であり,本願発明1の「任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないこと」に対応する構成を備えるものであるから,本願発明1と同じ理由により,当業者であっても引用発明,引用文献2,3,Bに記載された技術的事項,および周知技術に基づいて容易に発明できたものであるとはいえない。

3.本願発明2-6,8-12について

本願発明2-6は,本願発明1を減縮したものであり,また,本願発明8-12は,本願発明7を減縮したものであって,本願発明1の「任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないこと」と同一の構成または対応する構成を備えるものであるから,本願発明1と同じ理由により,当業者であっても引用発明,引用文献2,3,Bに記載された技術的事項,および周知技術に基づいて容易に発明できたものであるとはいえない。


第7 原査定についての判断

原査定は,請求項1-12について上記引用文献1-3,Bに基づいて,当業者が容易に発明できたものであるから,特許法第29条第2項の規定により特許を受けることができないというものである。しかしながら,平成30年9月4日付け手続補正により補正された請求項1,7は,「任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの前記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタに対しては前記任意の順番に沿った確認を行わないこと」という事項または対応する構成を有するものとなっており,上記のとおり,本願発明1-12は,上記引用発明,引用文献2,3,Bに記載された技術的事項,および周知技術に基づいて,当業者が容易に発明できたものではない。したがって,原査定を維持することはできない。


第8 当審拒絶理由について

1.特許法第36条第6項第2号について

(1)当審では,請求項1の「任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの次回の順にあたるコア」における「次回の順」との記載は,どのような単位を“回”とした場合の,どのような順番での“次”の“順”を意味しているのか明確になっておらず,例えば,各コアに割り当てられた「任意の順番」における「最近インターラプトを割り当てられたコア」の次の順番に当たる「コア」のための順番を指しているのか,あるいは,まとまったインターラプト割り当てが行われることに相当する“回”に対し,「最近」のインターラプト割り当てに相当する“回”の次のインターラプト割り当ての“回”における当該「最近インターラプトを割り当てられたコア」のための順番を指しているのか,日本語として不明である,との拒絶の理由を通知しているが,平成30年9月4日付けの補正において,「上記任意の順番における次の順にあたるコア」と補正された結果,この拒絶の理由は解消した。

(2)また,当審では,請求項1の「前記確認段階は,任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの次回の順にあたるコアに対応するインターラプト制御レジスタから優先的に確認すること」との記載は,「優先的」な「確認」が,いずれの「コア」に対する,どのような順番を用いた「確認」を意味しているのか明確になっておらず,日本語として不明である,との拒絶の理由を通知しているが,平成30年9月4日付けの補正において,「前記確認段階は,任意の順番が割り当てられた前記各コアに対し,最近インターラプトを割り当てられたコアの上記任意の順番における次の順にあたるコアに対応するインターラプト制御レジスタを優先的に確認し,それ以外のコアに対応するインターラプト制御レジスタは上記任意の順番に沿った確認を行わないこと」と補正された結果,この拒絶の理由は解消した。

2.特許法第29条第2項について

上記「第6 対比・判断」で検討のとおり,平成30年9月4日付けの補正により,この拒絶の理由は解消した。


第9 むすび

以上のとおり,本願発明1-12は,当業者が引用発明,引用文献2,3,Bに記載された技術的事項,および周知技術に基づいて容易に発明をすることができたものではない。
したがって,原査定の理由によっては,本願を拒絶することはできない。
また,他に本願を拒絶すべき理由を発見しない。
よって,結論のとおり審決する。
 
審決日 2018-11-28 
出願番号 特願2014-527060(P2014-527060)
審決分類 P 1 8・ 121- WY (G06F)
P 1 8・ 537- WY (G06F)
最終処分 成立  
前審関与審査官 漆原 孝治  
特許庁審判長 辻本 泰隆
特許庁審判官 仲間 晃
山崎 慎一
発明の名称 マルチコアシステムのインターラプト割り当て方法及び装置  
代理人 実広 信哉  
代理人 木内 敬二  
代理人 崔 允辰  
代理人 阿部 達彦  

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