3つ目が、製造プロセスのばらつきによる演算誤差を回避する技術の開発だ。製造プロセスがばらつくと、ビット線電流の値に誤差が生じ、それがメモリデータ読み出しの誤差につながってしまう。例えば、ばらつきが大きいメモリセル(異常に大きな電流を流してしまうメモリセル)に「−1」や「+1」といった重みデータが格納されてしまうと、積和演算の結果が大きく違ってしまう可能性がある。一方で、もしそのセルに格納されている重みデータが「0」ならば、掛け算の結果は常にゼロになるので電流は流れず、積和演算の結果に影響がない。
新しいPIMでは、この原理を利用したという。チップに多数のSRAM演算回路ブロックを敷き詰め、ばらつきの大きいセルに「−1」や「+1」の重みデータが格納されたブロックがあった場合、すぐ隣のブロックと重み情報を入れ替えるという仕組みだ。
前述したように、活性化しているニューロンは基本的に極めて少ない。そのため、ほとんどの3値セルには「0」が格納されている。つまり、隣のブロックの同じ番地には『0』が入っている確率が非常に高い。ブロックを入れ替えれば、ばらつきが大きいセルに『0』が入る可能性が高く、掛け算の結果をゼロにできるのだ。
ただし、野瀬氏によると、メモリセルのばらつきを検出する方法は「検討中」だという。
「演算回路ブロックを入れ替えるだけでいいので、冗長セルなどを入れずに演算誤差を大幅に低減できる」(野瀬氏)
Copyright © ITmedia, Inc. All Rights Reserved.