審決検索MVP
← 検索一覧に戻る
特許拒絶査定不服審判

2023-008031

ベクトル計算ユニット

審判番号
2023-008031
法域
特許
審判種別
拒絶査定不服審判(拒絶査定不服の審決)
出願番号
特願2020-503785外部サイト(J-PlatPat)へ移動します
請求日
2023年05月17日
審決日
2023年12月12日
公報発行日
2024年01月26日
結論
原査定取消(特許/登録すべき)
審判長/審判官
分類
P18 .113-WY (G06F) / P18 .121-WY (G06F) / P18 .03 -WY (G06F) / P18 .575-WY (G06F)
条文(本文から自動抽出・参考)
特許法第29条第2項、特許法第17条の2第6項、特許法第29条第1項第3号、特許法第17条の2第5項第2号
データ出所
審決公報(XML)

事件の表示

特願2020-503785「ベクトル計算ユニット」拒絶査定不服審判事件〔平成31年 1月31日国際公開、WO2019/022872、令和 2年10月 1日国内公表、特表2020-529070、請求項の数(23)〕について、次のとおり審決する。

結論

結 論 原査定を取り消す。 本願の発明は、特許すべきものとする。

理由

理 由 第1 手続の経緯 本願は、2018年(平成30年)6月20日(パリ条約による優先権主張 外国庁受理 2017年7月24日 米国、2017年9月20日 米国、2018年2月1日 米国、2018年3月13日 米国)を国際出願日とする特許出願であって、その手続の経緯は以下のとおりである。 令和3年 5月17日付け:拒絶理由通知書 令和3年10月21日 :意見書、手続補正書の提出 令和4年 3月15日付け:拒絶理由(最後)通知書 令和4年 9月21日 :意見書、手続補正書の提出 令和5年 1月 6日付け:補正の却下の決定、拒絶査定(原査定) 令和5年 5月17日 :審判請求書、手続補正書の提出 令和5年 7月 6日付け:前置報告書 第2 原査定の概要 原査定(令和5年1月6日付け拒絶査定)の概要は次のとおりである。 (理由1)新規性 本願請求項1、2、4、5、7、13及び16ないし18に係る発明は、以下の引用文献6に記載された発明であるから、特許法第29条第1項第3号に該当し、特許を受けることができない。 (理由2)進歩性 本願請求項1、2、4ないし7、11、13及び16ないし18に係る発明は、以下の引用文献6に記載された発明に基いて、本願請求項3、14、15及び21ないし24に係る発明は、以下の引用文献6ないし9に記載された発明に基いて、本願請求項8及び12に係る発明は、以下の引用文献6及び1に記載された発明に基いて、本願請求項9に係る発明は、以下の引用文献6ないし9及び1に記載された発明に基いて、また、本願請求項10、19及び20に係る発明は、以下の引用文献6及び2に記載された発明に基いて、それぞれその発明の属する技術の分野における通常の知識を有する者(以下、「当業者」という。)が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。 引用文献1:米国特許出願公開第2016/0342891号明細書 引用文献2:特開2017-27149号公報(周知技術を示す文献) 引用文献6:米国特許出願公開第2016/0379109号明細書 引用文献7:岩瀬 正(外3名),「SIMD型並列計算機における高速処理方式」,電気学会論文誌C,Vol.122-C, No.5,2002年5月1日,(社)電気学会,第878~884頁,ISSN: 0385-4221.(周知技術を示す文献) 引用文献8:有馬 裕(外4名),「ニューロチップの最近の話題」,システム/制御/情報,Vol.38, No.8,システム制御情報学会,1994年8月15日,第13~19頁,ISSN: 0916-1600.(周知技術を示す文献) 引用文献9:高橋 義造 編,「並列処理機構」,初版,丸善株式会社,1989年8月25日,第67~77,259頁,ISBN: 4-621-03383-2.(周知技術を示す文献) 引用文献10:米国特許第6847365号明細書(周知技術を示す文献) 引用文献11:米国特許出願公開第2005/0172106号明細書(周知技術を示す文献) 引用文献12:石井 潤(外2名),「可変データビット幅を持つDNNとそのアクセラレータアーキテクチャの検討」,電子情報通信学会技術研究報告,Vol.117, No.153,一般社団法人 電子情報通信学会,2017年7月19日,第137~144頁,ISSN: 0913-5685.(周知技術を示す文献) 第3 前置報告の概要 前置報告書でされた前置報告の概要は次のとおりである。 令和5年5月17日に提出された手続補正書による補正(以下、「本件補正」という。)は、本件補正前の請求項1、21及び24の各々に、「前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている」との限定を付して本件補正後の請求項1、20及び23とする補正を含むところ、本件補正は、特許法第17条の2第5項第2号に規定する「特許請求の範囲の減縮(第36条第5項の規定により請求項に記載した発明を特定するために必要な事項を限定するものであつて、その補正前の当該請求項に記載された発明とその補正後の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるものに限る。)」を目的とするものである。 そして、本件補正後の請求項1、2、4ないし7、11、13及び16ないし18に係る発明は、上記の引用文献6及び10ないし12に記載された発明に基いて、本件補正後の請求項3に係る発明は、上記の引用文献6ないし12に記載された発明に基いて、本件補正後の請求項8及び12に係る発明は、上記の引用文献6、10ないし12及び1に記載された発明に基いて、本件補正後の請求項9に係る発明は、上記の引用文献6ないし12及び1に記載された発明に基いて、本件補正後の請求項10及び19に係る発明は、上記の引用文献6、10ないし12及び2に記載された発明に基いて、また、本件補正後の請求項14、15及び20ないし23に係る発明は、上記の引用文献6ないし12に記載された発明に基いて、当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。 よって、本件補正後の請求項1ないし23に係る発明は、特許出願の際独立して特許を受けることができるものではないため、本件補正は、特許法第17条の2第6項において準用する同法第126条第7項の規定に適合せず、却下すべきものである。 したがって、原査定の理由は維持される。 第4 本願発明 本願請求項1ないし23に係る発明(以下、それぞれ「本願発明1」ないし「本願発明23」という。)は、令和5年5月17日に提出された手続補正書で補正された特許請求の範囲の請求項1ないし23に記載された事項により特定される発明であり、このうち、独立形式の請求項に係る発明である本願発明1、本願発明20及び本願発明23は、以下のとおりの発明である。なお、本願発明2ないし19は、本願発明1を引用するものであり、本願発明21及び22は、本願発明20を引用するものである。 1 本願発明1 複数の計算ユニットを含む計算配列であって、前記計算ユニットが複数のレーンにグループ化され、前記各レーンが先入れ先出しキューに関連付けられている、計算配列と、 前記計算配列と通信するベクトル計算ユニットであって、前記ベクトル計算ユニットは、複数の処理要素を備え、前記複数の処理要素からの前記各処理要素は、前記複数のレーンの各レーンに関連付けられた前記先入れ先出しキューから出力データ要素を受け取るように構成され、前記処理要素は、ベクトルとして配置されるとともに、並列に前記受け取った出力データ要素を処理して処理結果を形成するように構成される、ベクトル計算ユニットと、を備え、 前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている、マイクロプロセッサシステム。 2 本願発明20 複数の計算ユニットを含む計算配列であって、前記計算ユニットが複数のレーンにグループ化され、前記複数の計算ユニットの各計算ユニットが単一の計算配列命令に応答してドット積演算を実行するように構成された、計算配列と、 前記計算配列と通信するベクトル計算ユニットであって、前記ベクトル計算ユニットは複数の処理要素を含み、前記処理要素は、前記各レーンから出力データ要素を受け取り、単一のベクトル計算ユニット命令に応答して、前記受け取った出力データ要素を並列処理するように構成され、前記処理要素は、ベクトルとして配置されるとともに、並列に前記受け取った出力データ要素を処理して処理結果を形成するように構成される、ベクトル計算ユニットと、 を備え、 前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている、マイクロプロセッサシステム。 3 本願発明23 ベクトル計算ユニットのための単一のプロセッサ命令を受け取る工程であって、前記ベクトル計算ユニットは、計算配列と通信し、かつ、ベクトルとして配置された複数の処理要素を含み、前記処理要素は、前記計算配列の複数のレーンの各レーンから出力データ要素を受け取るように構成され、前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている、工程と、 前記計算配列から前記出力データ要素を受け取る工程であって、前記計算配列は複数の計算ユニットを含み、前記計算ユニットは、処理結果を形成するために前記複数のレーンにグループ化され、前記各処理要素は、前記複数のレーンの各レーンに関連付けられた個々の先入れ先出しキューから出力データ要素を受け取るように構成される、工程と、 前記単一のプロセッサ命令に応答して、前記受け取った出力データ要素を並列処理する工程と、を含む方法。 第5 優先権主張について 本願は、以下の4つの優先権主張(以下、「優先権主張1」ないし「優先権主張4」という。)を伴うものである。 (優先権主張1) 優先権主張番号:62/536399 優先日:2017年4月24日 (優先権主張2) 優先権主張番号:15/710433 優先日:2017年9月20日 (優先権主張3) 優先権主張番号:62/625251 優先日:2018年2月1日 (優先権主張4) 優先権主張番号:15/920156 優先日:2018年3月13日 なお、上記優先権主張番号はいずれも米国における特許出願の番号に対応している。 本願発明1ないし23はいずれも「ベクトル計算ユニット」をその構成として含むものであるところ、優先権主張1及び優先権主張2に係る優先権主張番号に対応する米国特許出願の書面には、「ベクトル計算ユニット」について記載も示唆もなく、そのことが各優先権主張に係る優先日前における技術常識から自明な事項であるとも認められない。 よって、本願発明1ないし23について、優先権主張の利益を享受できる最先の優先日は、優先権主張3に係る優先日である2018年2月1日である。(以下、この優先日を「本願優先日」という。) 第6 引用文献、引用発明等 1 引用文献6について (1)引用文献6記載事項 原査定の拒絶の理由及び前置報告書に引用された引用文献6には、図面とともに次の事項が記載されている。(下線は、強調のため当審が付与した。これ以降の下線についても同様。) 「[0277] Referring again to FIG. 44, the convolution result values for each functional unit in the same column will be shifted out one by one through the shift register chain in a vertical direction to corresponding output data buffers OB0, OB1, ..., OBM-1. Thus, the multiply-and-accumulation can occur every cycle. [0278] As described above, functional unit array 4408 includes and NxM array of functional units FU0,0, FU0,1, ..., FUN-1,M-1. In an implementation in which acceleration component 4402 is physically implemented as an FPGA device, the dimensions N and M can be software-reconfigurable at run time. For example, in a first instantiation with N=8 and M=128, functional unit array 4408 can be configured as an 8x128 array of functional units. In a second instantiation with N=64 and M=16, functional unit array 4408 can be configured as a 64x16 array of functional units, and so on. [0279] In the implementation of acceleration component 4402, input data are fed to rows of functional units in functional unit array 4408, and weights data are fed to columns of functional units in functional unit array 4408. Persons of ordinary skill in the art will understand that input data alternatively may be fed to columns of functional units in functional unit array 4408, and weights data may be fed to rows of functional units in functional unit array 4408. [0280] In instances in which an output volume includes more planes than the available number of columns of functional units, the convolutional layer may be implemented on multiple acceleration components. For example, if an output volume includes 256 planes, a first acceleration component may be configured with a functional unit array having 128 columns that are fed with kernel weights data Weights0, Weights1, ..., Weights127, and a second acceleration component may be configured with a functional unit array having 128 columns that are fed with kernel weights data Weights128, Weights129, ..., Weights255. In Such an implementation, kernel weights data are stored in weights data buffers IBW0, IBW1, ..., IBWM-1, of each acceleration component at run-time, avoiding the need to load kernel weights data from external DRAM. [0281] Alternatively, the convolutional layer may be implemented on a single acceleration component, and the functional unit array may be run multiple iterations, loading new kernel weights for each iteration. Thus, if an output Volume includes 256 planes, an acceleration component may be configured with a functional unit array having 128 columns that are fed in a first iteration with kernel weights data Weights0, Weights1, ..., Weights127, and are fed in a second iteration with kernel weights data Weights128, Weights129, ..., Weights255.」 (当審訳) 「[0277] 再び図44を参照すると、同じ列の各機能ユニットの畳み込み結果値は、シフトレジスタチェーンを通して垂直方向に1つずつ、対応する出力データ・バッファOB0、OB1、...、OBM-1にシフトアウトされる。このように、乗算と累積は毎サイクル発生することができる。 [0278] 上述したように、機能ユニット・アレイ4408は、機能ユニットFU0,0、FU0,1、...、FUN-1,M-1のNxMアレイを含む。加速コンポーネント4402がFPGAデバイスとして物理的に実装される実装では、寸法NおよびMは、実行時にソフトウェアで再構成可能である。たとえば、N=8、M=128の最初のインスタンス化では、機能ユニット・アレイ4408は、機能ユニットの8x128アレイとして構成できる。N=64、M=16の第2のインスタンス化では、機能ユニット・アレイ4408は、機能ユニットの64x16アレイとして構成することができる。 [0279] 加速コンポーネント4402の実装では、入力データは機能ユニット・アレイ4408内の機能ユニットの行に供給され、重みデータは機能ユニット・アレイ4408内の機能ユニットの列に供給される。当業者であれば、入力データを機能ユニット・アレイ4408内の機能ユニットの列に供給し、重みデータを機能ユニット・アレイ4408内の機能ユニットの行に供給することもできることを理解するであろう。 [0280] 出力ボリュームが機能ユニットの利用可能な列数よりも多くのプレーンを含む場合、畳み込み層は複数の加速コンポーネントで実装されることがある。例えば、出力ボリュームが256プレーンを含む場合、第1の加速コンポーネントは、カーネル重みデータWeights0、Weights1、...、Weights127が供給される128列を有する機能ユニット・アレイで構成されてもよく、第2の加速コンポーネントは、カーネル重みデータWeights128、Weights129、...、Weights255が供給される128列を有する機能ユニット・アレイで構成されてもよい。このような実装では、カーネル重みデータは実行時に各加速コンポーネントの重みデータ・バッファ IBW0、IBW1、...、IBWM-1に格納されるため、外部DRAMからカーネル重みデータをロードする必要がない。 [0281] あるいは、畳み込み層を単一の加速コンポーネントに実装し、機能ユニット・アレイを複数回繰り返し実行し、繰り返しごとに新しいカーネル重みをロードすることもできる。したがって、出力ボリュームが256プレーンを含む場合、加速コンポーネントは、カーネル重みデータWeights0、Weights1、...、Weights127で最初の反復で供給され、カーネル重みデータWeights128、Weights129、...、Weights255で2回目の反復で供給される128列を有する機能ユニットアレイで構成されてもよい。」 「[0289] FIG. 49 shows an implementation of a CNN that includes multiple convolutional layers, pooling and non linear operations on an acceleration component 4902, which may be physically implemented as an FPGA device. Acceleration component 4902 includes input double-buffer array 4404, kernel weights buffer array 4406, functional unit array 4408, output buffer array 4410, a controller component 4904 and FIFO array and ring arbiter 4708, as in acceleration component 4702 of FIG. 47, and performs convolution operations as described above for acceleration component 4702. [0290] To avoid the need to transfer convolution output data to CPUs for performing operations such as bias offset, non-linear function and pooling operations, acceleration component 4902 includes bias array 4906, non-linear function array 4908, pooling array 4910, and pooling controller component 4912 for performing these operations on acceleration component 4902. [0291] In particular, convolution outputs in output data buffers OB0, OB1, ..., OBM-1 are inputs to bias array 4906, which includes bias components are configured to add corresponding bias values +b0, +b1, +b2, ..., +bM-1 to the convolution results stored in output data buffers OB0, OB1, ..., OBM-1, respectively. In an implementation, controller component 4904 may load bias values +b0, +b1, +b2, ..., +bM-1 one time from DRAM for all convolutional layers, or may load new sets of bias values +b0, +b1, +b2, ..., +bM-1 for each convolutional layer. [0292] Non-linear function array 4908 includes non-linear function components FN0, FN1, FN2, ..., FNM-1 configured to apply non-linear functions (e.g., sigmoid, tan h, etc.) to the outputs of bias components +b0, +b1, +b2, ..., +bM-1. [0293] Pooling array 4910 includes pooling components MP0, MP1, MP2, ..., MPM-1 which perform pooling operations on the outputs of non-linear function components FN0, FN1, FN2, ..., FNM-1. In particular, pooling controller 4912 selects rectangular blocks from output data buffers OB0, OB1, ..., OBM-1, and subsamples each block to produce a single output from that block. There are several ways to do this pooling, such as taking the average or the maximum, or a learned linear combination of the neurons in the block. [0294] Without wanting to be bound by any particular theory, it is believed that this CNN operation may reduce redundant data transfers to and from DRAM when comput ing intermediate output feature layers. In particular, as described above, because the outputs of one convolutional layer are fed back as inputs to the next convolutional layer, the output data of intermediate convolutional layers need not be transferred from acceleration component 4702 to DRAM, and inputs to intermediate convolutional layers need not be transferred from DRAM to acceleration component 4702. In this regard, without wanting to be bound by any particular theory, it is believed that acceleration component 4702 may reduce the memory bandwidth requirements needed to implement CNNs. [0295] In each of acceleration components 4402, 4702 and 4902 described above, input data and weights data are loaded from off-chip DRAM into input data buffers IPD0, IPD1, ..., IPDN-1 and weights data buffers IBW0, IBW1, ..., IBWM-1. In an implementation, data interleaving is performed in software when data are forwarded from a host component to an acceleration component (e.g., via a PCIe interface). [0296] Data interleaving is an operation that schedules data words into slots on the DRAM word that map directly into the corresponding input buffers (data and weights) of the acceleration component. In an implementation, a FIFO with data word width conversion capabilities is used at the hardware level during the DRAM fetch operation. The FIFO converts the DRAM data width into the correct width of the input buffer array. [0297] For example, if the DRAM word width is 1024 bits, each input data word is 16-bits, and there are 8-input data buffers (IPD0, IPD1, ..., IPDN-1, and weights data buffers IBW0, IBW1, ..., IBWM-1.), each DRAM word can store 64-data words (1024/16). The 64-data words will be scheduled in each DRAM word so that when the hardware FIFO converts the DRAM word from 1024-bits to 128-bits, each data word can be directly fed into its corresponding input buffer. This allows data to be forwarded without the need for a crossbar to direct data, and also allows parallel storage of values in each input data buffer IPD0, IPD1, ..., IPDN-1, and weights data buffers IBW0, IBW1, ..., IBWM-1). [0298] As described above, DNNs may include a number of different processing layers, including convolutional layers and linear layers. In an implementation, SMC 128 (FIG. 1) partitions a DNN into multiple segments, mapping a first segment of DNN layers (e.g., one or more convolutional layers) to one or more acceleration components, and a second segment of DNN layers (e.g., fully connected layers) to one or more host components.」 (当審訳) 「[0289] 図49は、FPGAデバイスとして物理的に実装することができる加速コンポーネント4902上に、複数の畳み込み層、プーリング及び非線形演算を含むCNNの実装を示している。加速コンポーネント4902は、図47の加速コンポーネント4702と同様に、入力ダブル・バッファ・アレイ4404、カーネル重みバッファ・アレイ4406、機能ユニット・アレイ4408、出力バッファ・アレイ4410、コントローラ・コンポーネント4904、FIFOアレイおよびリング・アービタ4708を含み、加速コンポーネント4702について上述したような畳み込み演算を実行する。 [0290] バイアスオフセット、非線形関数、プーリング演算などの演算を実行するために畳み込み出力データをCPUに転送する必要性を回避するために、加速コンポーネント4902は、バイアス・アレイ4906、非線形関数アレイ4908、プーリング・アレイ4910、および加速コンポーネント4902上でこれらの演算を実行するためのプーリング・コントローラ・コンポーネント4912を含む。 [0291] 特に、出力データ・バッファOB0、OB1、...、OBM-1内の畳み込み出力は、バイアス・アレイ4906への入力であり、バイアス・コンポーネントを含むバイアス・アレイ4906は、対応するバイアス値+b0、+b1、+b2、...、+bM-1を、出力データ・バッファOB0、OB1、...、OBM-1に格納された畳み込み結果にそれぞれ加算するように構成される。実施形態では、コントローラ・コンポーネント4904は、すべての畳み込み層に対してDRAMからバイアス値+b0、+b1、+b2、...、+bM-1を1回ロードしてもよく、または各畳み込み層に対してバイアス値+b0、+b1、+b2、...、+bM-1の新しいセットをロードしてもよい。 [0292] 非線形関数アレイ4908は、バイアス・コンポーネント+b0、+b1、+b2、...、+bM-1の出力に非線形関数(例えば、シグモイド、tanhなど)を適用するように構成された非線形関数コンポーネントFN0、FN1、FN2、...、FNM-1を含む。 [0293] プーリング・アレイ4910は、非線形関数成分FN0、FN1、FN2、...、FNM-1の出力に対してプーリング演算を実行するプーリング・コンポーネントMP0、MP1、MP2、...、MPM-1を含む。特に、プーリング・コントローラ4912は、出力データ・バッファOB0、OB1、...、OBM-1から矩形ブロックを選択し、各ブロックをサブサンプリングして、そのブロックから単一の出力を生成する。このプーリングを行うには、ブロック内のニューロンの平均または最大、または学習された線形結合を取るなど、いくつかの方法がある。 [0294] 特定の理論に束縛されることを望むものではないが、このCNN動作は、中間出力特徴層を計算する際のDRAMとの間の冗長なデータ転送を減らすことができると考えられる。特に、上述したように、1つの畳み込み層の出力が次の畳み込み層への入力としてフィードバックされるため、中間の畳み込み層の出力データを加速コンポーネント4702からDRAMに転送する必要がなく、中間の畳み込み層への入力をDRAMから加速コンポーネント4702に転送する必要がない。この点に関して、特定の理論に拘束されることを望むものではないが、加速コンポーネント4702は、CNNを実装するのに必要なメモリ帯域幅の要件を低減することができると考えられる。 [0295] 上述の各加速コンポーネント4402、4702、4902では、入力データと重みデータがオフチップDRAMから入力データ・バッファIPD0、IPD1、...、IPDN-1と重みデータ・バッファIBW0、IBW1、...、IBWM-1にロードされる。実装では、データがホスト・コンポーネントからアクセラレーション・コンポーネントに(例えばPCIeインターフェース経由で)転送される際に、データ・インターリーブはソフトウェアで実行される。 [0296] データ・インターリーブとは、加速コンポーネントの対応する入力バッファ(データおよび重み)に直接マッピングされるDRAMワード上のスロットにデータ・ワードをスケジュールする操作である。実装では、DRAMフェッチ動作中に、データ・ワード幅変換機能を持つFIFOがハードウェア・レベルで使用される。このFIFOは、DRAMデータ幅を入力バッファ配列の正しい幅に変換する。 [0297] 例えば、DRAMワード幅が1024ビットで、各入力データ・ワードが16ビットであり、8つの入力データ・バッファ(IPD0、IPD1、...、IPDN-1、及び重みデータ・バッファIBW0、IBW1、...、IBWM-1)がある場合、各DRAMワードは64データワード(1024/16)を格納できる。64個のデータ・ワードは、ハードウェアFIFOがDRAMワードを1024ビットから128ビットに変換するときに、各データ・ワードが対応する入力バッファに直接供給できるように、各DRAMワードにスケジュールされる。これにより、データを指示するためのクロスバーを必要とせずにデータを転送することができ、また、各入力データ・バッファIPD0、IPD1、...、IPDN-1、及び重みデータ・バッファIBW0、IBW1、...、IBWM-1)に値を並列に格納することができる。」 「FIG.44(図44) [図:0001405713000001.jpg] 」 「FIG.49(図49) [図:0001405713000002.jpg] 」 (当審訳)省略 (2)引用発明 引用文献6の[0289]の記載より、引用文献6には、「CNN」を実装する「加速コンポーネント4902」の発明が記載されているといえる。 また、引用文献6において、図44に係る「機能ユニット・アレイ4408」と、図49に係る「機能ユニット・アレイ4408」は、同じ符号が付されていることから同じものと認められる。 よって、前記(1)の特に下線部に着目すると、引用文献6には次の発明(以下、「引用発明」という。)が記載されていると認められる。 「 CNNを実装する加速コンポーネント4902であって 加速コンポーネント4902は、入力ダブル・バッファ・アレイ4404、カーネル重みバッファ・アレイ4406、機能ユニット・アレイ4408、出力バッファ・アレイ4410、コントローラ・コンポーネント4904、FIFOアレイおよびリング・アービタ4708を含み、 加速コンポーネント4902は、バイアス・アレイ4906、非線形関数アレイ4908、プーリング・アレイ4910、および加速コンポーネント4902上でこれらの演算を実行するためのプーリング・コントローラ・コンポーネント4912を含み、 機能ユニット・アレイ4408は、機能ユニットFU0,0、FU0,1、...、FUN-1,M-1のNxMアレイを含み、同じ列の各機能ユニットの畳み込み結果値は、シフトレジスタチェーンを通して垂直方向に1つずつ、対応する出力データ・バッファOB0、OB1、...、OBM-1にシフトアウトされ、 出力データ・バッファOB0、OB1、...、OBM-1内の畳み込み出力は、バイアス・アレイ4906への入力であり、バイアス・コンポーネントを含むバイアス・アレイ4906は、対応するバイアス値を、出力データ・バッファOB0、OB1、...、OBM-1に格納された畳み込み結果にそれぞれ加算するように構成され、 非線形関数アレイ4908は、バイアス・コンポーネント+b0、+b1、+b2、...、+bM-1の出力に非線形関数(例えば、シグモイド、tanhなど)を適用するように構成された非線形関数コンポーネントFN0、FN1、FN2、...、FNM-1を含み、 プーリング・アレイ4910は、非線形関数成分FN0、FN1、FN2、...、FNM-1の出力に対してプーリング演算を実行するプーリング・コンポーネントMP0、MP1、MP2、...、MPM-1を含む、 加速コンポーネント4902。」 2 引用文献10について 原査定の拒絶の理由及び前置報告書に引用された引用文献10には、図面とともに次の事項が記載されている。 「ABSTRACT A media processing system is provided including a DRAM that includes a plurality of storage locations for storing digital data being processed by said media processing system, said digital data including video data that is compressed in a Standardized format, a system for processing said digital data that includes said standardized format compressed video data to produce compressed video images and image data, a system for decoding said standardized format compressed video images to generate full motion video pixel data, a system for sharing said DRAM between said processing means and Said decoding means, and a system for producing a full motion video signal from said full motion video pixel data. The media processing system may also have a System for multiplying or combining a first pixel by a second pixel in a Single clock cycle. The media processing system may have a plurality of processing elements connected together in parallel, a system for controlling said processing elements with instruction words that have a predetermined number of instructions, and a system for distributing data simultaneously to each of Said processing elements.」 (当審訳) 「要約 メディア処理システムは、前記メディア処理システムによって処理されるデジタルデータを記憶するための複数の記憶位置を含むDRAMを含み、前記デジタルデータは、標準化フォーマットで圧縮されたビデオデータを含み、前記標準化フォーマットで圧縮されたビデオデータを含む前記デジタルデータを処理して圧縮ビデオ画像および画像データを生成するシステムと、前記標準化フォーマットで圧縮されたビデオ画像を復号してフルモーションビデオピクセルデータを生成するシステムと、前記処理手段と前記復号手段との間で前記DRAMを共有するシステムと、前記フルモーションビデオピクセルデータからフルモーションビデオ信号を生成するシステムとを備える。また、前記メディア処理システムは、単一クロックサイクルで第1の画素と第2の画素とを乗算または合成するシステムを有してもよい。また、前記メディア処理システムは、並列に接続された複数の処理素子と、所定の命令数を有する命令語を用いて前記処理素子を制御するシステムと、前記各処理素子に同時にデータを分配するシステムとを有してもよい。」 「 [図:0001405713000003.jpg] …(以下省略)」 (当審訳(抜粋)) 「 表1 メディアプロセッサ内の主なレジスタ 名前 用途&構造 コメント V0-V7 8つの128ビット、4つの要素 4つのスカラレジスタのため ベクトルレジスタ に論理的に結合されたアセン ブラエイリアス …(以下省略)」 (第14欄第23-45行) 「As shown in Table 1, each media processing element (MPE) 66-72 (FIG. 3) preferably includes a register file 116 comprising thirty-two (32) 32-bit physical registers that preferably store scalar data types. To store any of the other data types described above, the 32-bit long registers are logically combined together. Thus, there are only 32 physical registers, however, these 32 physical registers are used to represent a plurality of data types. For example, R0-R3 may be combined to store a first pixel, R4-R7 may store a second pixel, R8 may store a scalar, and R12-R15 may store a vector for a particular clock cycle. Then, the next clock cycle, these assignments may be changed. This aliasing or logical combining of the physical registers reduces the overall size of the register file, yet retains the ability to support different data types. For example, to store a vector value that requires 128 bits, four of the 32-bit physical registers are logically combined together. Thus, the first defined logical vector register, V0, may be stored in physical registers R0-R3. Since each vector data type requires 4 physical registers, there are a total of eight (8) vector registers available at any one time. Similarly, the small vector and pixel data types also are stored in four physical registers, as described above.」 (当審訳) 「表1に示すように、各メディア・プロセッシング・エレメント(MPE)66~72(図3)は、好ましくはスカラー・データタイプを格納する32個の32ビット物理レジスタからなるレジスタ・ファイル116を含む。上述した他のデータ・タイプのいずれかを記憶するために、32ビット長のレジスタが論理的に結合される。したがって、物理レジスタは32本しかないが、これらの32本の物理レジスタは複数のデータ・タイプを表現するために使用される。例えば、R0~R3は第1のピクセルを、R4~R7は第2のピクセルを、R8はスカラーを、R12~R15は特定のクロックサイクルのベクトルを格納するために組み合わされてもよい。そして、次のクロックサイクルでは、これらの割り当てが変更される。このように物理レジスタをエイリアシングまたは論理的に結合することで、レジスタ・ファイルの全体的なサイズを縮小しながら、異なるデータ・タイプをサポートする能力を維持することができる。例えば、128ビットを必要とするベクタ値を格納するために、32ビット物理レジスタの4つが論理的に結合される。したがって、最初に定義された論理ベクタ・レジスタV0は、物理レジスタR0~R3に格納されます。各ベクトル・データ・タイプは4つの物理レジスタを必要とするので、一度に使用できるベクタ・レジスタは合計8つである。同様に、小ベクトルおよびピクセル・データ・タイプも、上述のように4つの物理レジスタに格納される。」 以上から、引用文献10には、以下の事項が記載されていると認められる。 「 並列に接続された複数の処理素子と、所定の命令数を有する命令語を用いて前記処理素子を制御するシステムと、前記各処理素子に同時にデータを分配するシステムとを有するメディア処理システムにおいて、 32個の32ビット物理レジスタからなるレジスタ・ファイル116を、他のデータ・タイプのいずれかを記憶するために論理的に結合され、 例えば、32ビット物理レジスタの4つが論理的に結合された8つの128ビットベクトルレジスタ(アセンブリエイリアス)V0-V7とすること。」 3 引用文献11について 原査定の拒絶の理由及び前置報告書に引用された引用文献11には、図面とともに次の事項が記載されている。 (発明の名称) 「ALIASING DATA PROCESSING REGISTERS」 (当審訳) 「データ処理レジスタのエイリアシング」 「[0100] FIG. 6 illustrates how the SIMD register data store 20 may be viewed as being divided into thirty two 64-bit registers or sixteen 128-bit registers. These registers map to the same physical SIMD register data store 20 and accordingly alias together. As an example, a data element within register D0 may also be accessed as a data element within register Q0.」 (当審訳) 「[0100] 図6は、SIMDレジスタ・データ・ストア20が32個の64ビット・レジスタまたは16個の128ビット・レジスタに分割されていると見なすことができる方法を示している。これらのレジスタは、同じ物理的なSIMDレジスタ・データ・ストア20にマップされ、それに応じて一緒にエイリアスされる。一例として、レジスタD0内のデータ要素は、レジスタQ0内のデータ要素としてもアクセスされ得る。」 以上から、引用文献11には、以下の事項が記載されていると認められる。 「 データ処理レジスタのエイリアシングにおいて、 SIMDレジスタ・データ・ストア20が32個の64ビット・レジスタまたは16個の128ビット・レジスタに分割されていると見なすことができ、これらのレジスタは、同じ物理的なSIMDレジスタ・データ・ストア20にマップされ、それに応じて一緒にエイリアスされること。」 4 引用文献12について 前置報告書に引用された引用文献12には、図面とともに次の事項が記載されている。 (第1ページ) 「概要:近年、DNN(Deep Neural Network)において、重みや入力値のビット幅を縮小させる量子化を行うことで、記憶領域と計算資源のコストを削減する研究が多く行われている。これまでネットワーク全体や層毎で量子化ビット幅を最適化する手法が提案されているが、各層内のニューロン毎に量子化ビット幅を最適化することについては、まだ検討されていない。本稿では、ネットワークの各層と層内のニューロン毎にビット幅を最適化する手法と、そのネットワークモデルを効率的に実行可能なハードウェア機構を検討する。…(以下省略)」 (第1ページ左欄「1. はじめに」の抜粋) 「 畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)は畳み込み層とプーリング層など、特に画像処理を指向した演算を行う層を含むDNNの一種であり、主に画像認識に使用される。」 (第4ページ~第5ページ) 「4. ニューロン毎の量子化のためのアーキテクチャ拡張 4.1 ベースのハードウェア構成 我々は、高い消費電力効率と様々なネットワークモデルを実行可能な柔軟性を備えるDNN推論用のアクセラレータチップを検討している[19]。本アクセラレータは、図2に示すように、マイクロコントローラとSIMD型積和演算器を主な構成要素とするコアを複数搭載したマルチコアアクセラレータである。…(中略)… メモリ構成 各コアが持つ5つのメモリ(inst, sbuf, dmem, lut, omem)は32ビットのアドレス空間に割り付けられており、load/store命令によって全てのメモリとレジスタファイル間でデータをやりとりできる。…(中略)… 4.2 アーキテクチャの拡張 …(中略)… 図4に拡張部分のハードウェア構成を示す。これは、図3のsbufとdmem、SIMD演算器部分に相当する。まず、sbufの1エントリのビット幅は半分になり、各演算器へと供給するビット幅も半分になる。また、sbufの各エントリへのフラグビットを示すxflagと呼ぶ領域を新たにsbufに追加する。xflagは、値が0であれば通常の演算モード用のデータが格納され、値が1の場合は2倍のビット幅を利用する2倍ビット長演算モード用のデータであることを示す。また、SIMD演算器の入力部にはラッチを設ける。」 「 [図:0001405713000004.jpg] 」 以上から、引用文献12には、以下の事項が記載されていると認められる。 「 DNN(Deep Neural Network)において、重みや入力値のビット幅を縮小させる量子化を行うことで、記憶領域と計算資源のコストを削減する研究が多く行われており、本稿では、ネットワークの各層と層内のニューロン毎にビット幅を最適化する手法と、そのネットワークモデルを効率的に実行可能なハードウェア機構を検討するものであり、 畳み込みニューラルネットワーク(Convolutional Neural Network: CNN)は畳み込み層とプーリング層など、特に画像処理を指向した演算を行う層を含むDNNの一種であり、 DNN推論用のアクセラレータは、マイクロコントローラとSIMD型積和演算器を主な構成要素とするコアを複数搭載したマルチコアアクセラレータであり、 各コアが持つ5つのメモリ(inst, sbuf, dmem, lut, omem)は32ビットのアドレス空間に割り付けられており、 sbufとdmem、SIMD演算器部分に相当する拡張部分のハードウェア構成において、sbufの各エントリへのフラグビットを示すxflagと呼ぶ領域を新たにsbufに追加し、xflagは、値が0であれば通常の演算モード用のデータが格納され、値が1の場合は2倍のビット幅を利用する2倍ビット長演算モード用のデータであることを示すこと。」 5 引用文献1について 原査定の拒絶の理由及び前置報告書に引用された引用文献1には、図面とともに次の事項が記載されている。 「[0021] The system generates accumulated values from the weight inputs and the activation inputs using a matrix multiplication unit of the special-purpose hardware circuit (step 106).In some implementations, the accumulated values are dot products of the sets of weight inputs and the sets of activation inputs. That is, for one set of weights, the system can multiply each weight input with each activation input and sum the products together to form an accumulated value. The system can then compute dot products of other set of weights with other sets of activation inputs.」 (当審訳) 「[0021] システムは、専用ハードウェア回路の行列乗算ユニットを使用して、重み入力と活性化入力から累積値を生成する(ステップ106)。いくつかの実装では、累積値は重み入力のセットと活性化入力のセットのドット積である。すなわち、1セットの重みについて、システムは各重み入力と各活性化入力を乗算し、積を合計して累積値を形成することができる。次にシステムは、他の重みのセットと他の活性化入力のセットのドット積を計算することができる。」 「FIG.2(図2) [図:0001405713000005.jpg] 」 「FIG.3(図3) [図:0001405713000006.jpg] 」 6 引用文献2について 原査定の拒絶の理由及び前置報告書に引用された引用文献2には、図面とともに次の事項が記載されている。 「【0011】 実施形態に係るベクトル命令を実行するデータ処理装置は、ベクトルレジスタ(WR)101とベクトルレジスタ(WR)101の内容を演算するN個の演算器(ALU)102と専用回路103とレジスタ(MPXCC)104とを備える。」 「【図1】 [図:0001405713000007.jpg] 」 7 引用文献7について 原査定の拒絶の理由及び前置報告書に引用された引用文献7には、図面とともに次の事項が記載されている。 (第879ページ右欄) 「2.2 SIMD型並列計算機の制御方式 並列プログラムの実行制御はCUが行う。 SIMD型並列計算機の機械語命令は機能的に分類すると次のようになる。 (1)アレイ命令 AUの各PE内のアレイデータに対して、全PE一斉にアレイ演算を行う。ロード・ストア、ムーブ、シフト、算術・論理演算、PE間転送などの命令がある。」 8 引用文献8について 原査定の拒絶の理由及び前置報告書に引用された引用文献8には、図面とともに次の事項が記載されている。 (第16ページ左欄) 「 ニューロコンピュータと言っても、ニューラルネットのための専用コンピュータではなく、積和演算や非線形変換など、ニューラルネットに特徴的な計算が得意な、並列コンピュータと考えるのが適当である。コンピュータアーキテクチャの観点から見ると、これまでに発表されているシステムの多くはSIMD(Single Instruction Multiple Data stream)方式のシストリックアレイ構造を採用した並列コンピュータに属する。SIMD方式とは複数のプロセッサが同一命令をそれぞれのプロセッサが持つデータに対して実行する処理方式で、シストリックアレイは隣合ったプロセッサ間でデータ交換ができるような通信回路を持つ構造のことである。」 9 引用文献9について 原査定の拒絶の理由及び前置報告書に引用された引用文献9には、図面とともに次の事項が記載されている。 (第68ページ) 「 並列処理機構をその処理方式から分類することもできる。すなわち処理要素がそれぞれのデータに対してコントローラの指示に従って同じ種題の演算を施すようなSIMD型処理(→用語解説)、連続して供給されるデータを一列に配置された処理要素が流れ作業で処理するパイプライン処理、および各要素がそれぞれのデータについて独立に処理するMIMD型処理(→用語解説)の3種類の処理方式がある。」 (第72ページ) 「これに対して一つのプログラムを実行するのに異なる演算器を同時に使用して複数の演算を行う方式の並列処理機構がある。これには図2-6に示すような種類のものがある。最初のアレイ計算機では多数の同一機能の演算器を配置し、これらに制御プロセッサから同じ命令を与えてそれぞれのデータについて演算させる方式をとるもので、これはSIMD方式と呼ばれる。」 (第78ページ) 「 各処理要素がそれぞれ別個のデータを与えられて一斉に同じ演算を施すのがSIMD型の処理方式である。」 第5 前置報告について 1 本願発明1について (1)対比 本願発明1と引用発明とを対比する。 ア 引用発明の「機能ユニットFU0,0、FU0,1、...、FUN-1,M-1のNxMアレイ」を構成する各「機能ユニットFU」は、本願発明1の「計算ユニット」に相当し、引用発明の「機能ユニットFU0,0、FU0,1、...、FUN-1,M-1のNxMアレイ」は、本願発明1の「複数の計算ユニット」に相当する。 そして、引用発明において、「機能ユニットFU0,0、FU0,1、...、FUN-1,M-1のNxMアレイ」を含む「機能ユニット・アレイ4408」は、本願発明1の「複数の計算ユニットを含む計算配列」に相当する。 イ 引用発明の「機能ユニット・アレイ4408は、機能ユニットFU0,0、FU0,1、...、FUN-1,M-1のNxMアレイを含み、同じ列の各機能ユニットの畳み込み結果値は、シフトレジスタチェーンを通して垂直方向に1つずつ、対応する出力データ・バッファOB0、OB1、...、OBM-1にシフトアウトされ」との構成によれば、引用発明の「機能ユニット・アレイ4408」の「列」は、その演算結果である「畳み込み結果値」を垂直方向に(引用文献1の図44及び図49においては下方向に)出し入れする“先入れ先出しキュー”に関連付けられた“レーン”といい得るものである。 引用発明における「機能ユニット・アレイ4408」は「NxMアレイ」であるところ、「M」個の、すなわち複数の「列」に“グループ化”されているといえる。 よって、引用発明の「機能ユニット・アレイ4408」は、本願発明1の「前記計算ユニットが複数のレーンにグループ化され、前記各レーンが先入れ先出しキューに関連付けられている」との構成を備えているといえる。 ウ 前記ア及びイを総合すると、引用発明の「機能ユニット・アレイ4408」は、本願発明1の「複数の計算ユニットを含む計算配列であって、前記計算ユニットが複数のレーンにグループ化され、前記各レーンが先入れ先出しキューに関連付けられている、計算配列」に相当する。 エ 引用発明の「バイアス・コンポーネント+b0、+b1、+b2、...、+bM-1」で構成される「バイアス・アレイ4906」は、「出力データ・バッファOB0、OB1、...、OBM-1」を介して「機能ユニット・アレイ4408」と通信し、「機能ユニット・アレイ4408」の対応する「列」から「畳み込み結果(値)」を受け取り、当該「畳み込み結果(値)」に対し、対応する「バイアス値」を加算し、「非線形関数コンポーネントFN0、FN1、FN2、...、FNM-1」で構成される「非線形関数アレイ4908」は、対応する加算結果に「非線形関数」を適用する処理を実行して処理結果を形成するように構成されているといえる。 よって、引用発明において、「バイアス・アレイ4906」と「非線形関数アレイ4908」はまとめて、“計算ユニット”といい得るものである。 また、引用発明の「バイアス・コンポーネント+b0、+b1、+b2、...、+bM-1」と「非線形関数コンポーネントFN0、FN1、FN2、...、FNM-1」とにおいて、添え字「*」が対応する「バイアス・コンポーネント+b*」と「非線形関数コンポーネントFN*」の各組は、“処理要素”といい得るものである。 よって、前記イを参酌すれば、引用発明の「バイアス・アレイ4906」と「非線形関数アレイ4908」と、本願発明1の「前記計算配列と通信するベクトル計算ユニットであって、前記ベクトル計算ユニットは、複数の処理要素を備え、前記複数の処理要素からの前記各処理要素は、前記複数のレーンの各レーンに関連付けられた前記先入れ先出しキューから出力データ要素を受け取るように構成され、前記処理要素は、ベクトルとして配置されるとともに、並列に前記受け取った出力データ要素を処理して処理結果を形成するように構成される、ベクトル計算ユニット」とは、「前記計算配列と通信する計算ユニットであって、前記計算ユニットは、複数の処理要素を備え、前記複数の処理要素からの前記各処理要素は、前記複数のレーンの各レーンに関連付けられた前記先入れ先出しキューから出力データ要素を受け取るように構成され、前記処理要素は、前記受け取った出力データ要素を処理して処理結果を形成するように構成される、計算ユニット」である点において共通する。 オ 引用発明の「加速コンポーネント4902」と本願発明1の「マイクロプロセッサシステム」とは、「システム」である点において共通する。 (2)一致点、相違点 前記(1)より、本願発明1と引用発明は、次の点において一致ないし相違する。 ○一致点 「 複数の計算ユニットを含む計算配列であって、前記計算ユニットが複数のレーンにグループ化され、前記各レーンが先入れ先出しキューに関連付けられている、計算配列と、 前記計算配列と通信する計算ユニットであって、前記計算ユニットは、複数の処理要素を備え、前記複数の処理要素からの前記各処理要素は、前記複数のレーンの各レーンに関連付けられた前記先入れ先出しキューから出力データ要素を受け取るように構成され、前記処理要素は、前記受け取った出力データ要素を処理して処理結果を形成するように構成される、計算ユニットと、を備える、 マイクロプロセッサシステム。」 ○相違点 (相違点1) 共通点である「計算ユニット」について、本願発明1においては、「処理要素」が「ベクトルとして配置される」とともに受け取った「出力データ要素」を「並列に」処理する「ベクトル計算ユニット」であるのに対し、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」、並びに、これらに含まれ、添え字が対応する「バイアス・コンポーネント+b*」と「非線形関数コンポーネントFN*」の各組が、そのような構成であることを具体的に特定していない点。 (相違点2) 本願発明1は、「前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている」という構成を備えるのに対し、引用発明は、対応する構成について備えていない点。 (相違点3) 本願発明1は、「マイクロプロセッサシステム」であるのに対し、引用発明の「加速コンポーネント4902」は、「マイクロプロセッサシステム」であることを具体的に特定していない点。 (3)相違点についての判断 事案に鑑みて上記相違点2について検討する。 まず、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」について、引用文献6にはその具体的な構造が開示されておらず、本願発明1の「複数のレジスタ」に相当する記憶手段を備えているか否か具体的に特定されていない。 加えて、引用文献10ないし12は、いずれも、レジスタのエイリアスについて開示しているといえるものの、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」と同様の演算器に使用されるレジスタについてのものではなく、また、引用文献10と12は、「複数のレジスタの数を増加させるようにエイリアス」するものではない。 なお、引用文献12は、引用発明の「CNN」をその一種とする「DNN」に係る演算を実施する「アクセラレータ」に関するものであるため、技術分野が引用発明と共通するといえる。また、引用文献12には、「これまでネットワーク全体や層毎で量子化ビット幅を最適化する手法が提案されている。」と記載されていることからすれば、「層毎」に「量子化ビット幅を最適化する」ことが示唆されているといえる。しかしながら、当該「層毎」の「層」に、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」によって構成される層が含まれることは記載されていない。そして、引用文献12においては、「SIMD演算器」(SIMD型積和演算器)の入力として使用されるメモリ「sbuf」を「2倍ビット長演算モード」で使用できるようにすることで「ネットワークの各層と層内のニューロン毎にビット幅を最適化する」ことを実現しているものと認められるところ、引用文献12は、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」に相当する演算器の入力となるレジスタをエイリアスすることを具体的に開示するものではない。(引用文献12の「SIMD型積和演算器」は、演算の内容からすれば、引用発明においては、むしろ「機能ユニット」に対応したものと認められる。) そうすると、引用文献12の示唆を参酌しても、当業者が、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」で使用されるレジスタのビット幅を最適化すること(レジスタをエイリアスすること)が動機付けられる理由がない。 また、相違点2に係る本願発明1の構成を引用発明に付加するためには、引用文献6には記載のない(かつ「エイリアス」をすることが可能な)「複数のレジスタ」を「バイアス・アレイ4906」及び「非線形関数アレイ4908」に設け、引用文献12に記載の「量子化ビット幅を最適化する」対象となる「各層」として、引用発明の「バイアス・アレイ4906」及び「非線形関数アレイ4908」によって構成される層を選択し、さらに、引用文献11のみに記載の「複数のレジスタの数を増加されるようにエイリアス」する構成を付加しなければならず、そのような複数の工程を経て相違点2に係る本願発明1の構成を想到することは当業者といえども容易であるとはいえない。 また、相違点2に係る本願発明1の構成は、他の引用文献にも記載されておらず、本願優先日前における技術常識であるとも認められない。 したがって、他の相違点について判断するまでもなく、本願発明1は、当業者であっても引用文献6に記載された発明及び引用文献10ないし12に記載された技術的事項に基いて容易に発明をすることができたものであるとはいえない。 2 本願発明2ないし19について 本願発明2ないし19は、本願発明1の構成をすべて備えるものであるから、本願発明1と同じ理由により、当業者であっても、引用文献6に記載された発明及び引用文献10ないし12に記載された技術的事項に基いて容易に発明をすることができたものであるとはいえない。 4 本願発明20について 本願発明20は、相違点2に係る本願発明1の構成に相当する「前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている」との構成を備えるものであり、また、当該構成は、引用文献7ないし9にも記載されていない。 よって、本願発明20は、本願発明1と同様の理由により、当業者であっても、引用文献6に記載された発明及び引用文献7ないし12に記載された技術的事項に基いて容易に発明をすることができたものであるとはいえない。 5 本願発明21及び22について 本願発明21及び22は、本願発明20の構成をすべて備えるものであるから、本願発明20と同じ理由により、当業者であっても、引用文献6に記載された発明及び引用文献7ないし12に記載された技術的事項に基いて容易に発明をすることができたものであるとはいえない。 6 本願発明23について 本願発明23は、相違点2に係る本願発明1の構成に相当する「前記ベクトル計算ユニットは、複数のオペランドサイズのうち選択されたオペランドサイズを使用して動作するように構成され、前記ベクトル計算ユニットは、特定のビットサイズに関連付けられた複数のレジスタを含み、前記レジスタは、選択された前記オペランドサイズに基づいて、アクセスできる前記複数のレジスタの数を増加させるようにエイリアスされるように構成されている」との構成を備えるものであり、また、当該構成は、引用文献7ないし9にも記載されていない。 よって、本願発明23は、本願発明1と同様の理由により、当業者であっても、引用文献6に記載された発明及び引用文献7ないし12に記載された技術的事項に基いて容易に発明をすることができたものであるとはいえない。 7 小括 本願発明1ないし23は、ほかに拒絶の理由を発見しない。 よって、本件補正後の本願発明1なしい23は、拒絶の理由がないから、特許出願の際独立して特許を受けることができるものであり、本件補正は、特許法第17条の2第6項において準用する同法第126条第7項の規定に適合している。 また、ほかに本件補正を却下すべき理由もない。 したがって、本件補正は適法であり、却下すべきものではない。 第6 原査定について 原査定は、前置報告で引用された引用文献12を引用することなく本願の新規性又は進歩性を否定するものであるところ、上記第5で述べたように、本願発明1ないし23は、引用文献12を引用しても進歩性を否定することができない以上、引用文献12を引用しない原査定の理由を維持することはできない。 第7 むすび 以上のとおり、原査定の理由によっては、本願を拒絶することはできない。 また、他に本願を拒絶すべき理由を発見しない。 よって、結論のとおり審決する。

審決本文(J-PlatPat)

J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。

J-PlatPat 審決検索を開く
2023-008031

番号・当事者・条文・審決分類・商標の称呼が一致(または近い)審決を機械的に集めた候補です。判断内容は各審決の本文でご確認ください。

同じ当事者の審決13件(テスラ,インコーポレイテッド)
  • 2025-008229拒絶査定不服審判 / 2026-07-27 / 原査定取消(特許/登録すべき)ジフルオロリン酸リチウムに基づく新規な電池システム
    同じ当事者: テスラ,インコーポレイテッド
  • 2024-002801拒絶査定不服審判 / 2025-11-20 / 原査定取消(特許/登録すべき)車両乗員分類システムのためのセンサおよび方法
    同じ当事者: テスラ,インコーポレイテッド
  • 2024-004797拒絶査定不服審判 / 2025-03-18 / 原査定取消(特許/登録すべき)視覚画像データを用いたオブジェクト属性の推定
    同じ当事者: テスラ,インコーポレイテッド
  • 2023-014593拒絶査定不服審判 / 2024-06-28 / 原査定取消(特許/登録すべき)拡張データによって機械モデルを訓練するためのシステムおよび方法
    同じ当事者: テスラ,インコーポレイテッド
  • 2023-002745拒絶査定不服審判 / 2024-04-03 / 請求不成立ジフルオロリン酸リチウムに基づく新規な電池システム
    同じ当事者: テスラ,インコーポレイテッド
検索でもっと見る →
同じ論点・分野の審決(審決分類)2,467件(03・G06F、113・G06F、121・G06F ほか)
  • 2024-003820拒絶査定不服審判 / 2024-09-25 / 請求不成立情報処理装置および情報処理装置の制御方法
    共通の審決分類: 113・G06F、121・G06F、575・G06F
  • 2021-002527拒絶査定不服審判 / 2021-11-19 / 請求不成立個人情報(PII)開示検出
    共通の審決分類: 113・G06F、121・G06F、575・G06F
  • 2019-015594拒絶査定不服審判 / 2020-12-22 / 請求不成立電子機器、文字入力制御方法、及び文字入力プログラム
    共通の審決分類: 113・G06F、121・G06F、575・G06F
  • 2018-016652拒絶査定不服審判 / 2020-08-24 / 請求不成立センサシステムのための自動ジェスチャ認識
    共通の審決分類: 113・G06F、121・G06F、575・G06F
  • 2017-019307拒絶査定不服審判 / 2018-10-18 / 請求不成立領域特有のメモリアクセススケジューリングを有するメモリシステム
    共通の審決分類: 113・G06F、121・G06F、575・G06F

メモ・タグ(非公開)

あなただけに表示されます。審決本文の公開範囲は変わりません。

メモとタグは Pro の機能です。ログイン/Proでメモを保存