(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024065862
(43)【公開日】2024-05-15
(54)【発明の名称】半導体装置
(51)【国際特許分類】
G06F 17/10 20060101AFI20240508BHJP
G11C 11/412 20060101ALI20240508BHJP
【FI】
G06F17/10 S
G11C11/412
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022174932
(22)【出願日】2022-10-31
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】田中 信二
(72)【発明者】
【氏名】北形 大樹
【テーマコード(参考)】
5B015
5B056
【Fターム(参考)】
5B015HH03
5B015KA09
5B015NN01
5B015PP08
5B056BB71
5B056FF01
5B056FF02
(57)【要約】
【課題】従来の半導体装置では、演算誤差が大きくなる問題があった。
【解決手段】一実施の形態にかかる半導体装置1では、入力値を示す複数のビット値を所定のビット数を有する分割値に分割して出力する入力制御回路11と、3値で表現される保持値と、入力値を示す複数のビット値のいずれか1ビットと、の積を出力するメモリセルを複数含み、それぞれが複数の分割値のいずれか1つに対応した複数のメモリユニットMU1~MU4と、分割値毎に出力される出力値に対して和演算処理を施して最終的な演算結果値を出力する和演算回路16と、を有する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
入力値を示す複数のビット値を所定のビット数を有する分割値に分割して出力する入力制御回路と、
3値で表現される保持値と、前記入力値を示す複数のビット値のいずれか1ビットと、の積を出力するメモリセルを複数含み、それぞれが複数の前記分割値のいずれか1つに対応した複数のメモリユニットと、
前記メモリセルのうち第1の値を出力するメモリセルが電気的に接続される第1のデータ線と、
前記メモリセルのうち第2の値を出力するメモリセルが電気的に接続される第2のデータ線と、
前記第1のデータ線と前記第2のデータ線の何れか一方に情報処理サイクル毎に値が変化するリファレンス値を与える情報処理リファレンスセルと、
前記第1のデータ線に接続された前記メモリセルの数と前記第2のデータ線に接続された前記メモリセルの数の大小関係に応じて異なる値を示す二値信号を前記情報処理サイクル毎に出力する判定回路と、
前記判定回路が前記分割値毎に出力する出力値に対して和演算処理を施して最終的な演算結果値を出力する和演算回路と、
前記情報処理リファレンスセル及び前記判定回路の動作を制御する動作制御回路と、
を有する半導体装置。
【請求項2】
前記第1のデータ線、前記第2のデータ線、前記情報処理リファレンスセル、及び、前記判定回路は、前記メモリユニット毎に設けられ、
前記入力制御回路は、前記複数のメモリユニットに対して一括して複数の前記分割値を与え、
前記動作制御回路は、1つの期間内で並列して前記判定回路が演算処理を実行するように前記情報処理リファレンスセル及び前記判定回路を制御し、
前記和演算回路は、並列処理により得られた前記判定回路の出力値に対して和演算処理を行うことで前記演算結果値を出力する請求項1に記載の半導体装置。
【請求項3】
前記第1のデータ線、前記第2のデータ線、前記情報処理リファレンスセル、及び、前記判定回路は、前記複数のメモリユニットに対して共通に設けられ、
前記入力制御回路は、前記複数のメモリユニットに対して時分割で前記分割値を与え、
前記動作制御回路は、前記分割値毎に前記判定回路が演算処理を実行するように前記情報処理リファレンスセル及び前記判定回路を制御し、
前記和演算回路は、前記分割値毎に前記判定回路から得られた前記判定回路の出力値に対して和演算処理を行うことで前記演算結果値を出力する請求項1に記載の半導体装置。
【請求項4】
前記第1のデータ線の電圧値に基づき前記第1の値を有するメモリセル数が予め設定した閾値以上となったことを検知する第1の検知回路と、
前記第2のデータ線の電圧値に基づき前記第2の値を有するメモリセル数が予め設定した閾値以上となったことを検知する第2の検知回路と、をさらに有し、
前記第1のデータ線、前記第2のデータ線、前記情報処理リファレンスセル、及び、前記判定回路は、前記複数のメモリユニットに対して共通に設けられ、
前記入力値を一括して前記複数のメモリセルユニットに与える期間と、前記複数のメモリユニットに対して時分割で前記分割値を与える期間の双方を設けており、
前記第1の検知回路と前記第2の検知回路の少なくとも一方が前記閾値以上のメモリセル数を検知した場合には、前記動作制御回路は、前記複数のメモリユニットに対して時分割で前記分割値を与える期間に、前記判定回路が演算処理を実行するように前記情報処理リファレンスセル及び前記判定回路を制御し、前記和演算回路は、前記分割値毎に前記判定回路から得られた前記判定回路の出力値に対して和演算処理を行うことで前記演算結果値を出力し、
前記第1の検知回路と前記第2の検知回路のいずれもが前記閾値未満のメモリセル数を検知した場合には、前記動作制御回路は、前記入力値を一括して前記複数のメモリセルユニットに与える期間に、前記判定回路が演算処理を実行するように前記情報処理リファレンスセル及び前記判定回路を制御し、前記和演算回路は、前記判定回路で決定された出力値をそのまま前記演算結果値として出力する請求項1に記載の半導体装置。
【請求項5】
前記動作制御回路は、前記判定回路の出力値により予め設定されたビット数の1つの情報処理結果を確定させる期間を1情報処理期間とした場合、前記1情報処理期間の最初の情報処理サイクルにおいて出力される前記第1の検知回路と前記第2の検知回路の検知結果に基づき、前記判定回路が演算処理を実行する期間を切り替える請求項4に記載の半導体装置。
【請求項6】
第1のメモリ領域と第2のメモリ領域とを有し、
前記第1のメモリ領域には、前記入力制御回路、前記情報処理リファレンスセル、前記判定回路、及び、前記動作制御回路を第1の入力制御回路、第1の情報処理リファレンスセル、第1の判定回路、及び前記第1の動作制御回路として、前記第1の入力制御回路、前記複数のメモリユニットと、前記第1のデータ線、前記第2のデータ線、前記第1の情報処理リファレンスセル、前記第1の判定回路、前記和演算回路、及び、前記第1の動作制御回路が設けられ、
前記第2のメモリ領域には、
前記入力値を示す複数のビット値を一括して出力する第2の入力制御回路と、
3値で表現される保持値と、前記入力値を示す複数のビット値のいずれか1ビットと、の積を出力する複数のメモリセルと、
前記メモリセルのうち第1の値を出力するメモリセルが電気的に接続される第3のデータ線と、
前記メモリセルのうち第2の値を出力するメモリセルが電気的に接続される第4のデータ線と、
前記第1のデータ線と前記第2のデータ線の何れか一方に情報処理サイクル毎に値が変化するリファレンス値を与える第2の情報処理リファレンスセルと、
前記第1のデータ線に接続された前記メモリセルの数と前記第2のデータ線に接続された前記メモリセルの数の大小関係に応じて異なる値を示す二値信号を前記情報処理サイクル毎に出力する第2の判定回路と、
前記第2の判定回路の動作を制御する動作制御回路と、
が設けられる請求項1に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体装置に関し、例えば、積和演算機能を有するメモリを含む半導体装置に関する。
【背景技術】
【0002】
近年、人工知能が多方面で利用されている。この人工知能では、積和演算を大量に実行する必要がある。そこでGPU(Graphics Processing Unit)等によって、積和演算の処理をアクセラレーションすることが行われる。また、積和演算の処理だけでなく、処理を行うのに付随して、大量のデータ転送処理も発生する。これらの処理を行うために、消費電力が非常に大きくなると言う課題が生じている。そこで、積和演算を大量にかつ低消費電力で処理する半導体装置に関する技術が特許文献1に開示されている。
【0003】
特許文献1では、2本のデータ線に接続され、3値のデータを格納し、格納されたデータと入力された入力データとデータ線におけるデータとの間で積和演算を行う積演算メモリセルが開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載の半導体装置では、メモリセルによるデータ線の駆動電流が大きくなると誤差が大きくなる問題がある。
【0006】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【0007】
一実施の形態にかかる半導体装置では、入力値を示す複数のビット値を所定のビット数を有する分割値に分割して出力する入力制御回路と、3値で表現される保持値と、入力値を示す複数のビット値のいずれか1ビットと、の積を出力するメモリセルを複数含み、それぞれが複数の分割値のいずれか1つに対応した複数のメモリユニットと、分割値毎に出力される出力値に対して和演算処理を施して最終的な演算結果値を出力する和演算回路と、を有する。
【発明の効果】
【0008】
一実施の形態にかかる半導体装置では、データ線を駆動する駆動電流を一定値以下に抑制して演算精度を高めることができる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1にかかる半導体装置のブロック図である。
【
図2】実施の形態1にかかる半導体装置の詳細なブロック図である。
【
図3】実施の形態1にかかる情報処理リファレンスセルの回路図である。
【
図4】実施の形態1にかかるメモリセルの回路図である。
【
図5】実施の形態1にかかる判定回路の回路図である。
【
図6】実施の形態1にかかる判定回路の動作を説明するフローチャートである。
【
図7】実施の形態1にかかる半導体装置の動作を説明するタイミングチャートである。
【
図8】実施の形態2にかかる半導体装置の詳細なブロック図である。
【
図9】実施の形態2にかかる半導体装置の動作を説明するタイミングチャートである。
【
図10】実施の形態3にかかる半導体装置詳細なブロック図である。
【
図11】実施の形態3にかかる半導体装置の第1の動作を説明するタイミングチャートである。
【
図12】実施の形態3にかかる半導体装置の第2の動作を説明するタイミングチャートである。
【
図13】実施の形態4にかかる半導体装置のブロック図である。
【
図14】実施の形態4にかかる半導体装置の第2のメモリ領域に配置される一括処理メモリの詳細なブロック図である。
【発明を実施するための形態】
【0010】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0011】
以下で説明する半導体装置は、3値の値を保持することが可能な複数のメモリセルが、複数のメモリセルに共通して設けられるデータ線に接続される構成を有する。そして、メモリセルへの入力値とメモリセルに格納されている値の積をデータ線上で加算することで積和演算を行う。また、積和演算結果は、情報処理リファレンスセルが出力するリファレンス値と逐次比較することで最終的にマルチビットの出力値として出力される。以下では、このような半導体装置について詳細に説明する。
【0012】
実施の形態1
まず、
図1に実施の形態1にかかる半導体装置のブロック図を示す。
図1に示すように、実施の形態1にかかる半導体装置1は、メモリコントローラ10、入力制御回路11、電流源12、セルアレイ13、定電流源14、判定回路15、和演算回路16、動作制御回路17を有する。
【0013】
メモリコントローラ10は、半導体装置1との外部インタフェースであり、外部に設けられる半導体装置から入力値を受け付けるとともに、半導体装置1内で生成された演算結果値を外部装置に出力する。また、メモリコントローラ10は、電流源12等の半導体装置1内の電源を制御する機能を有していても良い。
【0014】
入力制御回路11は、メモリコントローラ10を介して入力された入力値からセルアレイ13内に設けられるメモリセルを制御する信号に変換してメモリセルを駆動する。より具体的には、実施の形態1では、入力制御回路11は、入力値を示す複数のビット値を所定のビット数を有する分割値に分割して出力する機能を有する。また、実施の形態1では、半導体装置1は、後述する複数のメモリユニットに対して一括して複数の分割値を与える。
【0015】
電流源12は、セルアレイ13の第1のデータ線(以下、データ線PBLと称す)及び第2のデータ線(以下、データ線NBLと称す)に与える電流を生成する。セルアレイ13は、メモリセルが格子状に配置される。また、詳しくは後述するが、実施の形態1にかかる半導体装置1では、入力値を分割値としたときの分割数に応じた数のメモリセルをメモリユニットとしてまとめて制御する。
【0016】
定電流源14は、セルアレイ13内のメモリセルを駆動する定電流を生成する。判定回路15は、セルアレイ13内のメモリセルからの積和演算結果の大小を判定して最終的な出力値を構成するビットを1ビットずつ順次出力する。和演算回路16は、分割値毎に判定回路が確定させた出力値の総和を演算して最終的な演算結果値を算出する。
【0017】
動作制御回路17は、例えば、和演算回路16が出力した演算結果値からマルチビットの最終的な出力値を生成してメモリコントローラ10に送信する。また、動作制御回路17は、後述するAD変換REFセル及び判定回路を制御する制御回路としても機能する。より具体的には、半導体装置1では、動作制御回路17は、1つの期間内で並列して判定回路が演算処理を実行するように情報処理リファレンスセル及び判定回路を制御する。
【0018】
以下では、入力制御回路11、電流源12、セルアレイ13、定電流源14、判定回路15、和演算回路16、動作制御回路17の構成に着目して説明する。そこで、
図2に実施の形態1にかかる半導体装置の詳細なブロック図を示す。
【0019】
図2に示す例では、入力制御回路11が入力値から4つの分割値に分割する。そして、4つの分割値に対して4つのメモリユニットMU1~MU4を設ける。つまり、メモリユニットMU1~MU4は、それぞれ4つの分割値のいずれか1つに対応する。そしてメモリユニットMU1~MU4は、それぞれ3値で表現される保持値と、入力値を示す複数のビット値のいずれか1ビットと、の積を出力するメモリセルを含む。
図2に示す例では、各分割値は、32ビットの値であり、メモリユニットMU1~MU4は、32個のメモリセルを有する。具体的には、メモリユニットMU1は、メモリセルMC0~MC31を有し、メモリユニットMU2は、メモリセルMC32~MC63を有し、メモリユニットMU3は、メモリセルMC64~MC95を有し、メモリユニットMU4は、メモリセルMC96~MC127を有する。
【0020】
そして、
図2に示す半導体装置1では、メモリユニット毎に電流源12、定電流源14、判定回路15、データ線PBL、データ線NBLを設ける。
図2では、メモリユニット毎に電流源12、定電流源14、判定回路15、第1のデータ線PBL、第2のデータ線NBLの1つの組をメモリモジュールとして示した。具体的には、メモリモジュールMM1は、メモリユニットMU1に対応したメモリモジュールであり、メモリモジュールMM2は、メモリユニットMU2に対応したメモリモジュールであり、メモリモジュールMM3は、メモリユニットMU3に対応したメモリモジュールであり、メモリモジュールMM4は、メモリユニットMU4に対応したメモリモジュールである。メモリモジュールMM1~MM4は、含まれるメモリユニットが対応する分割値が異なるのみで、構成は同じであるので以下ではメモリモジュールMM1を例にメモリモジュールの構成を説明する。
【0021】
図2に示すように、実施の形態1にかかるメモリモジュールMM1では、データ線PBL、NBLに接続されるようにメモリユニットMU1に含まれる複数のメモリセル(例えば、MC0~MC31)が設けられる。メモリセルに与えられる分割値はマルチビットで構成されるが、各メモリセルには分割値のうち対応する1ビットが入力される。そして、メモリセルは、1ビットの入力値と3値で表現される保持値との積を出力する。また、詳しくは後述するが、メモリセルは、第1の値が保持されている場合にデータ線PBLを定電流源14に電気的に接続する第1のメモリセルと、第2の値が保持されている場合にデータ線NBLを定電流源14に電気的に接続する第2のメモリセルと、を有する。つまり、データ線PBLは、複数のメモリセルのうち第1の値を出力するメモリセルが電気的に接続される。データ線NBLは、複数のメモリセルのうち第2の値を出力するメモリセルが電気的に接続される。
【0022】
また、データ線PBL、NBLに接続されるように、情報処理リファレンスセル(例えば、AD変換REFセルREFC1)が設けられる。このAD変換REFセルは、メモリモジュールMM1~MM4にそれぞれ内包される。
図2では、メモリモジュールMM1~MM4に対応するAD変換REFセルとして、AD変換REFセルREFC1~4を示した。AD変換REFセルREFC1~REFC4は、それぞれデータ線PBLとデータ線NBLの何れか一方に情報処理サイクル毎に値が変化するリファレンス値を与える。AD変換REFセルREFC1~4は、リファレンス制御信号REF1~REF4によりリファレンス値を変化させる。また、リファレンス制御信号REF1~REF4は、動作制御回路17が出力するものとする。
【0023】
電流源12は、PMOSトランジスタP1~P4を有する。PMOSトランジスタP1は、ソースが電源配線Vdに接続され、ゲートとドレインが共通接続され、ドレインがデータ線PBLに接続される。PMOSトランジスタP2は、ゲートがPMOSトランジスタP1のゲートと共通接続され、ソースが電源配線Vdに接続され、ドレインがデータ線NBLに接続される。PMOSトランジスタP3は、ゲートがPMOSトランジスタP4のゲートと共通接続され、ソースが電源配線Vdに接続され、ドレインがデータ線PBLに接続される。PMOSトランジスタP4は、ソースが電源配線Vdに接続され、ゲートとドレインが共通接続され、ドレインがデータ線NBLに接続される。
【0024】
つまり、半導体装置1では、データ線PBL、NBLにおいて、一方のデータ線に電流を供給するダイオード接続されたPMOSトランジスタで生成された電流と、他方のデータ線に電流を供給するダイオード接続されたPMOSトランジスタで生成された電流と、を合計した電流を流す。これにより、半導体装置1では、電流源12用いることで、データ線PBL、NBLに供給される電流ばらつきを低減する。
【0025】
定電流源14は、NMOSトランジスタN1を有する。NMOSトランジスタN1は、ソースが接地され、ゲートに積和演算モードイネーブル信号MACEが与えられ、ドレインにセル接地配線CVSSが接続される。セル接地配線CVSSは、複数のメモリセル、AD変換REFセルREFC1に接続される。そして、定電流源14は、セル接地配線CVSSを介して、複数のメモリセルとAD変換REFセルREFC1がデータ線PBL及びデータ線NBLを駆動する駆動電流を生成する。また、定電流源14に与えられる積和演算モードイネーブル信号MACEは、動作制御回路17が出力するものとする。
【0026】
判定回路15は、データ線PBLに接続されたメモリセルの数とデータ線NBLに接続されたメモリセルの数の大小関係に応じて異なる値を示す二値信号を情報処理サイクル毎に出力する。また、判定回路15には、制御信号として、トリガ信号TRIG及びプリチャージ信号PCENが入力される。判定回路15は、トリガ信号TRIGがイネーブル状態(例えば、ハイレベル)である期間に動作する。
【0027】
続いて、
図2で示した回路ブロックについて具体的な回路の一例を説明する。なお、各回路ブロックは以下に示す回路以外であっても実現可能である。
【0028】
AD変換REFセルREFC1~REFC4はそれぞれ同じ構成である。そこで、以下の説明では、AD変換REFセルREFC1を例に、AD変換REFセルの構成について説明する。
図3に実施の形態1にかかるAD変換REFセルREFC1の回路図を示す。
図3に示すように、AD変換REFセルREFC1は、データ線PBLとデータ線NBLとの間に直列に接続される2つのトランジスタの組を複数有する。また、AD変換REFセルREFC1は、データ線PBLとデータ線NBLとの間に接続されたトランジスタを制御する制御ロジック21を有する。
【0029】
データ線PBLとデータ線NBLとの間に直列に接続される2つのトランジスタの組は、組毎にトランジスタサイズが異なる。
図3では、AD変換REFセルREFC1は、トランジスタサイズが16、8、4、2、1、0.5となるように設定される例を示した。また、各トランジスタ組を構成するトランジスタは、トランジスタ同士が接続されるノードにセル接地配線CVSSが接続される。制御ロジック21は、トランジスタ組毎に反転入力付きANDゲートとANDゲートを有する。そして、反転入力付きANDゲートの反転入力端子及びANDゲートの一方の端子に極性制御信号PNS1が入力される。また、反転入力付きANDゲートの正転入力端子及びANDゲートの他方の端子にリファレンス制御信号REF1のうち対応するトランジスタ組に対応するビットの信号が入力される。例えば、
図3に示す例では、トランジスタサイズが16となるトランジスタ組に対応する制御ロジック21には、リファレンス制御信号REF1の最上位ビットが入力され、トランジスタサイズが小さくなるほどリファレンス制御信号REF1の下位側のビットが入力される。そして、AD変換REFセルREFC1では、反転入力付きANDゲートの出力によりデータ線PBL側のトランジスタを制御し、ANDゲートの出力によりデータ線NBL側のトランジスタを制御する。なお、トランジスタサイズが0.5となるトランジスタ組に対応する制御ロジック21については、反転入力付きANDゲートの出力によりデータ線NBL側のトランジスタを制御し、ANDゲートの出力によりデータ線PBL側のトランジスタを制御する。
【0030】
これにより、AD変換REFセルREFC1は、極性制御信号PNS1がデータ線PBL側を選択している場合(例えば、ロウレベルである場合)、データ線PBLをリファレンス制御信号REF1で指定されるトランジスタによりデータ線PBLからセル接地配線CVSSに電流を引き抜く。一方、極性制御信号PNS1がデータ線NBL側を選択している場合(例えば、ハイレベルである場合)、データ線NBLをリファレンス制御信号REF1で指定されるトランジスタによりデータ線NBLからセル接地配線CVSSに電流を引き抜く。なお、トランジスタサイズが0.5に設定されるトランジスタ(例えば、N308、N318)については、他のトランジスタとは逆側のデータ線から電流をセル接地配線CVSSに引き抜く。
【0031】
図4に実施の形態1にかかるメモリセルの回路図を示す。
図4では、
図2で示した複数のメモリセルの代表としてMC0のみを示した。
図4に示すように、メモリセルは、第1のメモリセル31、第2のメモリセル32を有する。また、メモリセルは、NMOSトランジスタN38、N39P、N39Nを有する。NMOSトランジスタN38は、セル接地配線CVSSが一端に接続され、他端がNMOSトランジスタN39P及びNMOSトランジスタN39Nの一端が接続される。また、NMOSトランジスタN38のゲートには、入力値INPの0ビット目が与えられる。NMOSトランジスタN39Pの他端は、データ線PBLが接続される。NMOSトランジスタN39Pのゲートは、第1のメモリセル31に接続される。NMOSトランジスタN39Nの他端は、データ線NBLが接続される。NMOSトランジスタN39Nのゲートは、第2のメモリセル32に接続される。
【0032】
第1のメモリセル31及び第2のメモリセル32は、SRAM(Static Random Memory)として機能する構成を有する。具体的には、第1のメモリセル31は、PMOSトランジスタP30、P31、NMOSトランジスタN30~N33を有する。PMOSトランジスタP30とNMOSトランジスタN30は、電源配線と接地配線との間に直列に接続され、ゲートが共通接続される。PMOSトランジスタP31とNMOSトランジスタN31は、電源配線と接地配線との間に直列に接続され、ゲートが共通接続される。そして、PMOSトランジスタP30とNMOSトランジスタN30のゲートは、PMOSトランジスタP31とNMOSトランジスタN31とが接続されるノード及びNMOSトランジスタN33の一端に接続される。また、PMOSトランジスタP31とNMOSトランジスタN31のゲートは、PMOSトランジスタP30とNMOSトランジスタN30とが接続されるノード及びNMOSトランジスタN32の一端に接続される。NMOSトランジスタN32の他端は、相補ビット線BLに接続される。NMOSトランジスタN33の他端は、相補ビット線BLBに接続される。また、NMOSトランジスタN32、N33のゲートにはワード線WL[0]が接続される。
【0033】
また、第2のメモリセル32は、PMOSトランジスタP32、P33、NMOSトランジスタN34~N37を有する。PMOSトランジスタP32とNMOSトランジスタN34は、電源配線と接地配線との間に直列に接続され、ゲートが共通接続される。PMOSトランジスタP33とNMOSトランジスタN35は、電源配線と接地配線との間に直列に接続され、ゲートが共通接続される。そして、PMOSトランジスタP32とNMOSトランジスタN34のゲートは、PMOSトランジスタP33とNMOSトランジスタN35とが接続されるノード及びNMOSトランジスタN37の一端に接続される。また、PMOSトランジスタP33とNMOSトランジスタN35のゲートは、PMOSトランジスタP32とNMOSトランジスタN34とが接続されるノード及びNMOSトランジスタN36の一端に接続される。NMOSトランジスタN36の他端は、相補ビット線BLに接続される。NMOSトランジスタN37の他端は、相補ビット線BLBに接続される。また、NMOSトランジスタN36、N37のゲートにはワード線WL[1]が接続される。
【0034】
メモリセルでは、ワード線WL[0]をハイレベルにした状態で相補ビット線BL、BLBにより第1のメモリセル31内のインバータの状態を確定させることで値が書き込まれる。また、メモリセルでは、ワード線WL[1]をハイレベルにした状態で相補ビット線BL、BLBにより第2のメモリセル32内のインバータの状態を確定させることで値が書き込まれる。
【0035】
そして、メモリセルは、PMOSトランジスタP30及びNMOSトランジスタN30により構成されるインバータで保持される値によりNMOSトランジスタN39Pの開閉状態を制御する。また、メモリセルでは、PMOSトランジスタP32及びNMOSトランジスタN34により構成されるインバータで保持される値によりNMOSトランジスタN39Nの開閉状態を制御する。
【0036】
図4に示すメモリセルでは、第1のメモリセル31及び第2のメモリセル32の両方が論理値“0“を格納しているとき、論理値“0“を格納しているものとする。また、第1のメモリセル31が論理値“1“を格納し、第2のメモリセル32が論理値“0“を格納しているとき、メモリセルは、論理値“+1“を格納しているものとする。さらに、第1のメモリセル31が論理値“0“を格納し、第2のメモリセル32が論理値“1“を格納しているとき、メモリセルは、論理値“-1“を格納しているものとする。
【0037】
これにより、メモリセルに論理値“0“が格納されているとき、NMOSトランジスタN39P及びNMOSトランジスタN39Nは、ともにオフ状態となり、入力値INPが例え論理値“1“であっても、データ線PBL、NBLから定電流源14に電流は流れない。
【0038】
これに対して、メモリセルに論理値“+1“が格納されているとき、NMOSトランジスタN39Pはオン状態となり、NMOSトランジスタN39Nはオフ状態となる。このとき、入力値INPが論理値“1“であれば、オン状態のNMOSトランジスタN39PおよびNMOSトランジスタN38を介して、データ線PBLから定電流源14に電流が流れ、データ線PBLの電圧は低下する。このとき、データ線NBLの電圧は低下しない。一方、このとき、入力値INPが論理値“0“であれば、NMOSトランジスタN38がオフ状態となるため、データ線PBL、NBLから定電流源14に電流は流れず、データ線PBL、NBLの電圧は低下しない。
【0039】
さらに、メモリセルに論理値“-1“が格納されているときには、NMOSトランジスタN39Nはオン状態となり、NMOSトランジスタN39Pはオフ状態となる。このとき、入力値INPが論理値“1“であれば、オン状態のNMOSトランジスタN39NおよびNMOSトランジスタN38を介して、データ線NBLから定電流源14に電流が流れ、データ線NBLの電圧は低下し、データ線PBLの電圧は低下しない。一方、このとき、入力値INPが論理値“0“であれば、NMOSトランジスタN38がオフ状態となるため、データ線PBL、NBLから定電流源14に電流は流れず、データ線PBL、NBLの電圧は低下しない。
【0040】
すなわち、メモリセルでは、第1のメモリセル31が、メモリセルに論理値“+1“を格納するのに用いられ、第2のメモリセル32が、メモリセルに論理値“-1“を格納するのに用いられていると見なすことができる。
【0041】
これにより、メモリセルに格納されている3値と入力値INPの値との間で積演算が実行される。すなわち、入力値の論理値と、メモリセルの論理値に従って、0×0、0×(+1)、0×(-1)、1×0、1×(+1)、1×(-1)の6つの状態が形成される。この場合、入力値の論理値とメモリセルに格納されている論理値との間で積演算が実行され、積演算の結果が論理値“1“のとき、データ線PBLと定電流源14との間を電流が流れ、データ線PBLの電圧が低下する。これに対して、積演算の結果が論理値“-1“のとき、データ線NBLと定電流源14との間を電流が流れ、データ線NBLの電圧が低下する。
【0042】
そして、半導体装置1のメモリセルでは、データ線PBL、NBLのそれぞれにおいて、データ線に接続される複数のメモリセルの積演算結果に従った電流が、重畳されて、データ線PBL、NBLのそれぞれにおいて電流・電圧が定まる。すなわち、複数のメモリセルにおいて得られた積が、データ線PBL、NBLによって、和を求めるように和演算が実行される。和演算の結果である積和演算の結果は、データ線PBL、NBLを介して出力される。
【0043】
続いて、判定回路15について詳細に説明する。
図5に実施の形態1にかかる判定回路15の回路図を示す。
図5に示すように、判定回路15は、PMOSトランジスタP41~P45、NMOSトランジスタN41~N43、インバータ41、42、ラッチ43、バッファ44、トランスファゲート45、46、ORゲート47を有する。
【0044】
PMOSトランジスタP41、P42は、ソースが電源配線に接続され、ドレインがPMOSトランジスタP43により連結される。また、PMOSトランジスタP41のドレインは、PMOSトランジスタP44とNMOSトランジスタN41とが接続されるノードND52に接続される。PMOSトランジスタP42のドレインは、PMOSトランジスタP45とNMOSトランジスタN42とが接続されるノードND53に接続される。ORゲート47は、プリチャージ信号PCENと、トリガ信号TRIGをインバータ41、42で遅延させた信号とが入力され、ノードND54に2つの入力信号の論理和値を出力する。PMOSトランジスタP41~P43のゲートには、ノードND54の信号が与えられる。そして、ノードND54の信号がハイレベルであればPMOSトランジスタP41~P43はオフ状態、逆に、ノードND54の信号がロウレベルであれば、オン状態となる。
【0045】
PMOSトランジスタP44とNMOSトランジスタN41は、電源配線とNMOSトランジスタN43のドレインとの間に直列に接続され、ゲートが共通接続される。PMOSトランジスタP45とNMOSトランジスタN42は、電源配線とNMOSトランジスタN43のドレインとの間に直列に接続され、ゲートが共通接続される。そして、PMOSトランジスタP44とNMOSトランジスタN41のゲートは、PMOSトランジスタP45とNMOSトランジスタN42とが接続されるノードND53に接続されるとともに、トランスファゲート46を介してデータ線NBLに接続される。また、PMOSトランジスタP45とNMOSトランジスタN42のゲートは、PMOSトランジスタP44とNMOSトランジスタN41とが接続されるノードND52に接続されるとともに、トランスファゲート45を介してデータ線PBLに接続される。つまり、PMOSトランジスタP44、P45及びNMOSトランジスタN41~N43は、NMOSトランジスタN43を電流源とするラッチ型センスアンプ構造となる。
【0046】
トランスファゲート45、46は、トリガ信号TRIGがロウレベルとなるとオン状態となり、トリガ信号TRIGがハイレベルとなるとオフ状態になる。
【0047】
ここで、
図6に実施の形態1にかかる判定回路15の動作を説明するタイミングチャートを示す。
図6に示すように、判定回路15では、タイミングTa以前の初期状態において、プリチャージ信号PCEN及びトリガ信号TRIGをロウレベルとすることで、ノードND52及びノードND53をハイレベルにプリチャージする。このプリチャージでは、トランスファゲート45、46は導通状態であるため。ノードND52、ND53とともにデータ線PBL、NBLもハイレベルにプリチャージされる。続いて、タイミングTaでは、プリチャージ信号PCENをハイレベルに切り替えて、ノードND54をハイレベルに切り替えることで、プリチャージを停止する。このとき、プリチャージが停止したことで、データ線PBL、NBLに接続されているメモリセルの電流によってデータ線PBL、NBLの電圧低下が始まる。さらに、トランスファゲート45、46も導通した状態が維持されているため、トランスファゲート45、46を介してノードND52及びノードND53は、データ線PBL、NBLと同じレベルとなる。続いて、タイミングTbでは、トリガ信号TRIGをハイレベルとし、トランスファゲートを遮断する。また、タイミングTbでは、NMOSトランジスタN43を導通させ、PMOSトランジスタP44、P45及びNMOSトランジスタN41、N42により構成される判定セルを動作させる。また、ラッチ43には、インバータ41、42を介してトリガ信号TRIGが与えられる。そして、ラッチ43は、ノードND51がハイレベルで入力通過状態となりノードND53の論理値をバッファ44に伝える。その後、タイミングTcで、プリチャージ信号PCEN及びトリガ信号TRIGをハイレベルからロウレベルに切り替える事で、ラッチ43は、その時に入力されている値を保持する。そして、ラッチした出力がタイミングTc以降にバッファ44から出力される。
【0048】
つまり、判定回路15は、トリガ信号TRIGがロウレベルの期間に判定セルにデータ線PBL、NBLの値を取り込む。そして、判定回路15は、トリガ信号TRIGをハイレベルとした状態で、判定セルがデータ線PBLとデータ線NBLの電位の大小比較を行う。そして、判定回路15は、トリガ信号TRIGの立ち下がりエッジをラッチ43に与えることで判定セルが確定した値をバッファ44によりMQ出力として和演算回路16に出力する。
【0049】
続いて、実施の形態1にかかる半導体装置1の動作について説明する。そこで、
図7に実施の形態1にかかる半導体装置1の動作を説明するタイミングチャートを示す。なお、
図7では、入力値として各分割値の最上位ビットの値と最下位ビットの値のみを示し、その他のビットに関する信号の明示は省略した。また、半導体装置1は、動作クロックCLKに基づき動作するため、タイミングチャートにはこの動作クロックCLKを示した。また、実施の形態1では、動作期間中は定電流源14を動作させ続けるため、積和演算モードイネーブル信号MACEをハイレベルで維持する。
【0050】
図7に示すように、実施の形態1にかかる半導体装置1では、動作期間中は演算処理の最初のタイミングT0で入力される動作クロックに応じて、AD変換REFセルREFC1~REFC4によるデータ線PBL、NBLへの干渉を停止し、メモリモジュール毎にデータ線PBL、NBLの大小関係を判定回路15で判定する。このタイミングT0での比較により、各分割値に対応する出力値(例えば、出力値MQ1~MQ4)の最上位ビットが確定する。また、タイミングT0の判定結果に応じて、タイミングT1以降の極性制御信号PNS1~PNS4の論理値が決定される。
【0051】
具体的には、タイミングT0終了時点での出力値がハイレベルであれば、データ線PBLに接続されるメモリセル数がデータ線NBLに接続されるメモリセル数よりも多いことになるため、タイミングT1以降の極性制御信号はハイレベルとなりAD変換REFセルREFC1~REFC4によりデータ線NBLからの電流引き抜きが行われる。
【0052】
一方、タイミングT0終了時点での出力値がロウレベルであれば、データ線NBLに接続されるメモリセル数がデータ線PBLに接続されるメモリセル数よりも多いことになるため、タイミングT1以降の極性制御信号はロウレベルとなりAD変換REFセルREFC1~REFC4によりデータ線PBLからの電流引き抜きが行われる。
【0053】
そして、タイミングT1以降は、逐次アナログデジタル変換シーケンスとして、リファレンス制御信号REF1~REF4の2ビット目から6ビット目を順次オンさせ、判定結果MQ1~MQ4に応じて該当のリファレンス制御信号REF1~REF4においてオンさせたビットを継続してオンとするかオフとするかを決定する。5サイクルの逐次アナログデジタル変換シーケンスの結果、リファレンス制御信号の全てのビットがオンとなった場合は、AD変換REFセルREFC1~REFC4の電流値はそれぞれ32個相当、リファレンス制御信号の全てのビットがオフとなった場合は、電流値は0個相当となる。タイミングT1~T5におけるAD変換REFセルREFC1~REFC4の電流値はメモリモジュール毎に異なった値を取る。
【0054】
その後、
図6では図示してないがタイミングT5で確定した各メモリモジュールの出力値MQ1~MQ4の総和を和演算回路16で算出し、算出した値を演算結果値として出力する。
【0055】
上記説明より、実施の形態1にかかる半導体装置1は、入力値を分割値に分割し、分割値毎に対応するメモリセルを複数含むメモリユニットを設ける。そして、メモリユニット毎に出力値を確定した後に、確定した出力値の総和を演算して演算結果値を出力する。これにより、実施の形態1にかかる半導体装置1では、データ線に接続されるメモリセル数が一定数以下に抑制されるため、データ線に接続されるメモリセル数が多いことに起因して発生する演算誤差を抑制することができる。具体的には、実施の形態1では、128ビットの入力値を4分割した分割値を生成し、かつ、1つのデータ線対に接続されるメモリセル数の最大値を32個以下に抑制した。
【0056】
また、メモリセルとビット線の組を分割しない場合、128ビットの入力値に対しては演算結果値を得るために8回の情報処理サイクルを要するが、
図6に示すように、実施の形態1にかかる半導体装置1では、6回の情報処理サイクルで最終的な演算結果値を得ることができる。つまり、実施の形態1にかかる半導体装置1では、演算の高速化を実現することができる。
【0057】
実施の形態2
実施の形態2では、実施の形態1にかかる半導体装置1の別の形態となる半導体装置2について説明する。なお、実施の形態2の説明では、実施の形態1で説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0058】
そこで、
図8に実施の形態2にかかる半導体装置2のブロック図を示す。
図8に示すブロックは、半導体装置2の電流源12、セルアレイ13、定電流源14、判定回路15、入力制御回路51、セルアレイ53、和演算回路56、動作制御回路57に着目したブロック図であるが、半導体装置2には、実施の形態1にかかる半導体装置1と同様にメモリコントローラ10等の他の回路ブロックが含まれる。
【0059】
図8に示すように、実施の形態2にかかる半導体装置2は、半導体装置1の入力制御回路11、セルアレイ13、和演算回路16、動作制御回路17に代えて、入力制御回路51、セルアレイ53、和演算回路56、動作制御回路57を有する。
【0060】
入力制御回路51は、複数のメモリユニットに対して時分割で前記分割値を与える。セルアレイ53は、セルアレイ13と同様にメモリユニットMU1~MU4を有するが、1組のデータ線PBLとデータ線NBLにメモリユニットMU1~MU4が全て接続される。また、セルアレイ53では、AD変換REFセルREFC、電流源12、及び、判定回路15がメモリユニットMU1~MU4が接続されるデータ線PBL、NBLに接続される。さらに、セルアレイ53では、定電流源14がメモリユニットMU1~MU4に対して共通に設けられる。
図2では、メモリモジュールMMa内にメモリユニットMU1~MU4、AD変換REFセルREFC、電流源12、定電流源14、及び、判定回路15が含まれる。
【0061】
なお、半導体装置2では、メモリユニットMU1~MU4がメモリモジュールMMaに含まれており、メモリモジュールMMaに含まれるAD変換REFセルREFC、極性制御信号PNSは1つとなる。また、半導体装置2は、複数のメモリモジュールを複数含み、複数のメモリモジュールは、入力制御回路51が出力する入力値INP0~INP127と保持している値との積和演算を行う。また、和演算回路56は、メモリモジュール毎に設けられる。
【0062】
和演算回路56は、分割値毎に判定回路15から得られた判定回路15の出力値に対して和演算処理を行うことで演算結果値を出力する。動作制御回路57は、分割値毎に判定回路15が演算処理を実行するようにAD変換REFセルREFC及び判定回路15を制御する。
【0063】
続いて、実施の形態2にかかる半導体装置2の動作について説明する。
図9に実施の形態2にかかる半導体装置2の動作を説明するタイミングチャートを示す。なお、
図9においても
図6と同様に入力値として各分割値の最上位ビットの値と最下位ビットの値のみを示し、その他のビットに関する信号の明示は省略した。また、実施の形態2においても、動作期間中は定電流源14の動作させ続けるため、積和演算モードイネーブル信号MACEをハイレベルで維持する。
【0064】
図9に示すように、実施の形態2にかかる半導体装置2では、4つの分割動作期間で4つの分割値に対して順次演算処理を行う。具体的には、
図2では、第1の分割動作期間(タイミングT0~T5の動作クロックCLKの入力期間)、第2の分割動作期間(タイミングT6~T11の動作クロックCLKの入力期間)、第3の分割動作期間(タイミングT12~T17の動作クロックCLKの入力期間)、第4の分割動作期間(タイミングT18~T23の動作クロックCLKの入力期間)を示した。
【0065】
具体的には、第1の分割動作期間では、入力値INP0~INP31で構成される分割値に対する演算処理が行われる。第2の分割動作期間では、入力値INP32~INP63で構成される分割値に対する演算処理が行われる。第3の分割動作期間では、入力値INP64~INP95で構成される分割値に対する演算処理が行われる。第4の分割動作期間では、入力値INP96~INP127で構成される分割値に対する演算処理が行われる。
【0066】
また、分割動作期間では、分割動作期間の最初のタイミングで入力される動作クロックCLKに応じて、AD変換REFセルREFCによるデータ線PBL、NBLへの干渉を停止し、メモリモジュール毎にデータ線PBL、NBLの大小関係を判定回路15で判定する。この最初のタイミングでの比較により、各分割値に対応する出力値(例えば、出力値MQ)の最上位ビットが確定する。また、最初のタイミングの判定結果に応じて、2つ目のタイミング以降の極性制御信号PNSの論理値が決定される。
【0067】
そして、各分割動作期間の2つ目のタイミング以降は、逐次アナログデジタル変換シーケンスとして、リファレンス制御信号REFの1ビット目から6ビット目を順次オンさせ、判定結果MQに応じて該当のビットを継続してオンとするかオフとするかを決定する。そして、各分割動作期間終了後に各分割動作期間で確定したメモリモジュールの出力値MQの総和を和演算回路56で算出し、算出した値を演算結果値として出力する。
【0068】
上記説明より、実施の形態2にかかる半導体装置2は、1組のデータ線に1つの入力値に対応するメモリユニットを全て接続し、時分割でメモリユニットに分割値を与える、時分割で得られる出力値の総和を和演算回路56で算出することで演算結果値を得る。
【0069】
これにより、実施の形態2にかかる半導体装置2では、電流源12、定電流源14、判定回路15及びデータ線PBL、NBLを一組のみ設ければ良く、実施の形態1よりも回路規模を縮小することができる。また、実施の形態2にかかる半導体装置2では、メモリユニット毎に演算動作を行ことで、1度にデータ線に接続されるメモリセル数が一定数以下に抑制されるため、実施の形態1と同様に演算誤差を抑制することができる。
【0070】
実施の形態3
実施の形態3では、実施の形態2にかかる半導体装置2の変形例となる半導体装置3について説明する。なお、実施の形態3の説明では、実施の形態1、2で説明した構成要素と同じ構成要素については実施の形態1、2と同じ符号を付して説明を省略する。
【0071】
そこで、
図10に実施の形態3にかかる半導体装置3のブロック図を示す。
図10に示すブロックは、半導体装置3の電流源12、セルアレイ13、定電流源14、判定回路15、入力制御回路61、セルアレイ53、和演算回路66、動作制御回路67に着目したブロック図であるが、半導体装置3には、実施の形態1にかかる半導体装置1と同様にメモリコントローラ10等の他の回路ブロックが含まれる。
【0072】
図10に示すように、実施の形態3にかかる半導体装置3は、半導体装置2の入力制御回路51、和演算回路56、動作制御回路57に代えて、入力制御回路61、和演算回路66、動作制御回路67を有する。また、半導体装置3では、半導体装置2に対してANDゲート71、74、75、第1の検知回路72、第2の検知回路73を追加した。
【0073】
入力制御回路61は、動作制御回路67からの指示に基づき入力値を1つのタイミングで一括して出力するのか、入力値を分割値に分割して時分割で出力するのかを切り替える。和演算回路66は、判定回路15が出力値を分割動作無しで出力する場合は最終的に確定した出力値をそのまま演算結果値として出力し、判定回路15が出力値を時分割で出力する場合は時分割で確定された出力値の総和を演算結果値として出力する。動作制御回路67は、後述する第1の検知回路72、第2の検知回路73による検出結果に応じて、入力制御回路61及び動作制御回路67の動作を切り替える機能が動作制御回路57に対して加えられたものである。
【0074】
第1の検知回路72は、第1のデータ線(例えば、データ線PBL)の電圧値に基づき第1の値を有するメモリセル数が予め設定した閾値以上となったことを検知する。第2の検知回路73は、第2のデータ線(例えば、データ線NBL)の電圧値に基づき第2の値を有するメモリセル数が予め設定した閾値以上となったことを検知する。
図10に示す例では、第1の検知回路72の出力値と第2の検知回路73の出力値は、ANDゲート75により合成されて動作制御回路67に伝達される。具体的には、半導体装置3では、第1の検知回路72と第2の検知回路73がともにデータ線に接続されるメモリセル数が閾値未満であることを検出した場合は、ANDゲート75が動作制御回路67にハイレベルとなる検出信号を与える。一方、半導体装置3では、第1の検知回路72と第2の検知回路73のいずれか一方がデータ線に接続されるメモリセル数が閾値以上であることを検出した場合は、ANDゲート75が動作制御回路67にロウレベルとなる検出信号を与える。
【0075】
また、実施の形態3にかかる半導体装置3では、リファレンス制御信号REFの最下位ビットとなるリファレンス制御信号REF[0]の反転値とトリガ信号TRIGの論理和をANDゲート74が算出して第2センスイネーブル信号SSEとして第1の検知回路72及び第2の検知回路73に与える。これにより、第1の検知回路72及び第2の検知回路73は、演算処理の最初の動作クロックが入力されている期間に動作することになる。
【0076】
また、実施の形態3にかかる半導体装置3では、積和演算モードイネーブル信号MACEとトリガ信号TRIGの論理和をANDゲート71により演算して第1センスイネーブル信号SAEとする。そして、半導体装置3では、トリガ信号TRIGに代えて第1センスイネーブル信号SAEを判定回路15に与える。これにより、判定回路15は、積和演算モードイネーブル信号MACEがロウレベルである期間は、トリガ信号TRIGの論理レベルによらず動作を停止することが可能になる。
【0077】
ここで、実施の形態3にかかる半導体装置3の動作について説明する。実施の形態3にかかる半導体装置3では、第1の検知回路72及び第2の検知回路73による検出結果により動作が異なる。そこで、以下の説明では、第1の検知回路72、第2の検知回路73のいずれもがデータ線に接続されるメモリセル数が閾値未満であると検出した場合の動作を第1の動作として説明し、第1の検知回路72、第2の検知回路73のいずれか一方がデータ線に接続されるメモリセル数が閾値以上であると検出した場合の動作を第2の動作として説明する。
【0078】
まず、
図11に実施の形態3にかかる半導体装置3の第1の動作を説明するタイミングチャートを示す。なお、
図11においても
図6と同様に入力値として各分割値の最上位ビットの値と最下位ビットの値のみを示し、その他のビットに関する信号の明示は省略した。
【0079】
図11に示すように、実施の形態3にかかる半導体装置3では、演算処理の最初のタイミングT0で入力される動作クロックCLKに応じて入力値を分割せずに全てのメモリユニットに与える。また、この期間においては、第2センスイネーブル信号SSEがハイレベルとなり、第1の検知回路72及び第2の検知回路73が、データ線PBL、NBLに接続されるメモリセル数の判定を行う。第1の動作では、データ線PBL、NBLに接続されるメモリセル数が閾値未満であるため、第1の検知回路72及び第2の検知回路73の検出信号を受けて動作制御回路67は、AD変換REFセルREFC及び判定回路15に全ての入力値(例えば、INP0~INP127)がメモリセルに与えられた状態での演算を行うことを指示する。これにより、第1の動作では、タイミングT0~T7の期間に8回の情報処理サイクルを実施して演算結果値を確定する。
【0080】
また、第1の動作では、タイミングT7の後のタイミングT8以降は、動作制御回路67が積和演算モードイネーブル信号MACEをロウレベルとすることで、メモリセル及びAD変換REFセルREFCに与える電流を遮断し、かつ、判定回路15の動作を停止する。
【0081】
続いて、
図12に実施の形態3にかかる半導体装置3の第2の動作を説明するタイミングチャートを示す。なお、
図12においても
図6と同様に入力値として各分割値の最上位ビットの値と最下位ビットの値のみを示し、その他のビットに関する信号の明示は省略した。
【0082】
図12に示すように、実施の形態3にかかる半導体装置3では、演算処理の最初のタイミングT0で入力される動作クロックCLKに応じて入力値を分割せずに全てのメモリユニットに与える。また、この期間においては、第2センスイネーブル信号SSEがハイレベルとなり、第1の検知回路72及び第2の検知回路73が、データ線PBL、NBLに接続されるメモリセル数の判定を行う。第2の動作では、データ線PBL、NBLのすくなくとも一方に接続されるメモリセル数が閾値以上であるため、第1の検知回路72及び第2の検知回路73の検出信号号を受けて動作制御回路67は、AD変換REFセルREFC及び判定回路15にタイミングT8以降に分割値に対応した動作を行うことを指示する。入力制御回路61は、タイミングT8~T31の期間、入力値を分割値として出力する。さらに、第2の動作では、タイミングT1~T7の期間は、積和演算モードイネーブル信号MACEをロウレベルとし、タイミングT8以降に積和演算モードイネーブル信号MACEをハイレベルとする。これにより、第2の動作では、タイミングT0~T7の期間は、メモリセル及びAD変換REFセルREFCに与える電流を遮断し、かつ、判定回路15の動作を停止される。一方、第2の動作では、タイミングT8以降に、
図9で説明した動作と同様な分割値に対応した演算処理が行われる。
【0083】
上記説明より、実施の形態3にかかる半導体装置3では、データ線に接続されるメモリセル数が閾値よりも少ない場合は、入力値を分割せずに一括して与えることで変換処理サイクル数を削減する。これにより、実施の形態3にかかる半導体装置3は、実施の形態2にかかる半導体装置2よりも消費電力を削減することができる。
【0084】
実施の形態4
実施の形態4では、実施の形態1にかかる半導体装置1を含む半導体装置4について説明する。なお、実施の形態4の説明では、実施の形態1で説明した構成要素と同じ構成要素については実施の形態1と同じ符号を付して説明を省略する。
【0085】
図13に実施の形態4にかかる半導体装置4のブロック図を示す。
図13に示すように、実施の形態4にかかる半導体装置4は、第1のメモリ領域5及び第2のメモリ領域6を備える。第1のメモリ領域5には、実施の形態1で説明した半導体装置1を備える。一方、第2のメモリ領域6には、入力値を分割した分割値に対応した動作を行う機能を有さない一括演算処理メモリを備える。
【0086】
この一括演算処理メモリは、入力制御回路81、電流源82、セルアレイ83、定電流源84、判定回路85及び動作制御回路87を有する。この第2のメモリ領域6について、
図14に実施の形態4にかかる半導体装置4の第2のメモリ領域6に配置される一括処理メモリの詳細なブロック図を示す。
【0087】
図14に示すように、一括処理メモリは、入力制御回路81が分割値を生成する機能を有さず、入力値を一括してメモリセルに与える。そして、電流源82、定電流源84、判定回路85は、電流源12、定電流源14、判定回路15と同じ構成を有する。セルアレイ83は、セルアレイ53と同様に1組のデータ線に全てのメモリセルが接続され、かつ、メモリユニットの概念がないものである。また、動作制御回路87は、動作制御回路67において、
図11のタイミングT0~T7の動作を行う機能のみを実装したものである。
【0088】
このように、第1のメモリ領域5と第2のメモリ領域6を設けることで、高い演算精度が必要な保持値については第1のメモリ領域5に保持させ、高い演算精度を要さない保持値については第2のメモリ領域6に保持することができる。人工知能に関する演算では、第1のメモリ領域5及び第2のメモリ領域6に実装した積和演算装置による積和演算が多用されるが、全ての演算に高い演算精度が必要になるわけではない。そのため、実施の形態4にかかる半導体装置4のように、求められる演算精度によって保持値を保持するメモリ領域を分けることで、演算速度と演算精度を両立することができる。また、このようにメモリ領域を分けることで、演算に要する消費電力を削減することができる。
【0089】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0090】
1~4 半導体装置
5 第1のメモリ領域
6 第2のメモリ領域
10 メモリコントローラ
11、51、61、81 入力制御回路
12、82 電流源
13、53、63、83 セルアレイ
14、84 定電流源
15、85 判定回路
16、56、66 和演算回路
17、57、67、87 動作制御回路
21 制御ロジック
31 第1のメモリセル
32 第2のメモリセル
41、42 インバータ
43 ラッチ
44 バッファ
45、46 トランスファゲート
47 ORゲート
71、74、75 ANDゲート
72 第1の検知回路
73 第2の検知回路
MC0~MC127 メモリセル
MU1~MU4 メモリユニット
MM1~MM4 メモリモジュール
REFC、REFC1~REFC4 AD変換REFセル
TRIG トリガ信号
MACE 積和演算モードイネーブル信号
PCEN プリチャージ信号
PNS 極性制御信号
REF リファレンス制御信号
SAE 第1センスイネーブル信号
SSE 第2センスイネーブル信号