JP6780347B2 - メモリ回路およびメモリ回路の制御方法 - Google Patents

メモリ回路およびメモリ回路の制御方法 Download PDF

Info

Publication number
JP6780347B2
JP6780347B2 JP2016148904A JP2016148904A JP6780347B2 JP 6780347 B2 JP6780347 B2 JP 6780347B2 JP 2016148904 A JP2016148904 A JP 2016148904A JP 2016148904 A JP2016148904 A JP 2016148904A JP 6780347 B2 JP6780347 B2 JP 6780347B2
Authority
JP
Japan
Prior art keywords
data
circuit
memory cell
data input
input paths
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016148904A
Other languages
English (en)
Other versions
JP2018018566A (ja
Inventor
一広 阿部
一広 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016148904A priority Critical patent/JP6780347B2/ja
Publication of JP2018018566A publication Critical patent/JP2018018566A/ja
Application granted granted Critical
Publication of JP6780347B2 publication Critical patent/JP6780347B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Static Random-Access Memory (AREA)

Description

開示の技術は、メモリ回路およびメモリ回路の制御方法に関する。
1つのメモリセルに対してデータ入力経路であるポートを複数有するマルチポートメモリセルを備えたメモリ回路に関する技術として、以下の技術が知られている。
例えば、特許文献1には、第1および第2のポートのワード線と第1および第2のポートのビット線とに接続され、クロック信号に同期して読み出し動作が行われるメモリセルを備えたメモリ回路が記載されている。このメモリ回路は、第1および第2のポートのロウアドレス同士を比較し、ロウアドレスの一致を検出するアドレス一致検出回路と、アドレス一致検出回路の検出結果に応じて調整されたタイミングを有するクロック信号を生成するタイミング生成回路とを備える。
また、特許文献2には、複数のポートから同一アドレスのメモリセルに書き込みが重複する場合に、他のポートに優先してメモリセルに所望のデータを書き込む書込回路を含むメモリ回路が記載されている。
特開2012−234594号公報 特開2003−91992号公報
例えば、プロセッサ内の演算器において使用されるデータを一時的に保持するレジスタは、演算器の演算結果を複数のメモリセルに同時に書きこむことができるように、マルチポートメモリセルが使用される。それぞれのデータ信号に対して、どのメモリセルに書き込むかを決めるアドレス信号は、一つのデータ信号に対して一つ存在する。
複数のデータの各々の書き込み先となるメモリセルが全て異なる場合は、各データは対応するアドレス信号で定められたメモリセルに書き込まれる。しかしながら、各データに対応するアドレス信号によって指定される書き込み先のメモリセルが重複する場合には、1つのメモリセルに対して複数のデータ入力経路から供給される複数のデータによる同時書き込みを試みることとなる。1つのメモリセルに同時に書き込まれる複数のデータが互いに異なる場合には、バスファイトを生じ、書き込むデータの値が不定になることにより、論理の保証ができないばかりでなく、メモリ回路の破壊に至るおそれがある。
バスファイトを防止するための手法として、同一のメモリセルに複数のデータ入力経路から同時にデータの書き込みが起こらないように制御する手法が考えられる。具体的には、アドレス値に優先順位を付与し、付与した優先順位に基づき、いずれか1つのデータ入力経路を介して供給されるデータのみをメモリセルに書き込む。しかしながら、この手法によれば、アドレス信号をデコードするアドレスデコーダの後段に優先順位を調整するための回路を設ける必要がある。また、優先順位の調整に時間を要するため、メモリ回路の動作速度が低下するという問題がある。
バスファイトを防止するための他の手法として、複数のアドレス信号に基づいて書き込みアドレスの重複を検出した場合に、重複したアドレスに対応するメモリセルに対する書き込みデータを同一値に変更するという手法が考えられる。すなわち、この手法では、複数のデータ入力経路を介して同一のメモリセルに同時に供給される複数のデータを同一値に変更することで、バスファイトを回避するというものである。しかしながらこの手法によれば、アドレスが重複する場合(1つのメモリセルに複数のデータを同時に書き込む場合)には、アドレスが重複しない場合(1つのメモリセルに1つのデータを書き込む場合)と比較して、メモリセルにデータを書き込むために作用するトランジスタの数が増加する。これにより、アドレスが重複する場合には、アドレスが重複しない場合と比較して、データ書き込みのための駆動力が大きくなり、データ書き込みによるメモリセルのデータの更新(遷移)のタイミングが早まる場合がある。
例えば、マルチポートメモリセルをパイプライン処理に組み込んだ場合には、メモリセルのデータ更新のタイミングにずれが生じることにより、設計時に想定したタイミングでのパイプライン動作が実施されないおそれがある。従って、このようなタイミングのずれを考慮したタイミング設計を行う必要があるが、タイミングのずれが大きくなる場合にはタイミング設計が困難になる。
開示の技術は、複数のデータ入力経路を有するメモリセルを備えたメモリ回路において、複数のデータ入力経路の2つ以上を介して供給される複数のデータによる同時書き込みに起因するメモリセルのデータ更新のタイミングのずれを抑制することを目的とする。
開示の技術に係るメモリ回路は、複数のデータ入力経路を有するメモリセルと、前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数を示す判定信号を生成する判定回路と、駆動力調整回路と、を含む。駆動力調整回路は、前記判定信号によって示されるデータの数の増加に伴って低下する駆動力によって前記メモリセルに同時に供給されるデータの各々を、対応するデータ入力経路の各々に出力する。
開示の技術は、一つの側面として、複数のデータ入力経路の2つ以上を介して供給される複数のデータによる同時書き込みに起因するメモリセルのデータ更新のタイミングのずれを抑制するという効果を奏する。
開示の技術の実施形態に係るマルチポートメモリセル10の構成を示す図である。 開示の技術の実施形態に係るメモリ回路の概念的な構成を示す回路ブロック図である 開示の技術の実施形態に係るメモリ回路の具体的な構成を示す回路ブロック図である。 開示の技術の実施形態に係るクロックドライバの詳細な構成を示す回路図である。 開示の技術の実施形態に係る同時書き込み判定回路の構成を示す回路ブロック図である。 開示の技術の実施形態に係るデータ変換回路の詳細な構成を示す回路図である。 開示の技術の実施形態に係る駆動力調整回路の構成を示す回路ブロック図である。 開示の技術の実施形態に係るドライバ回路の詳細な構成を示す回路図である。 比較例に係るメモリ回路の構成を示す回路ブロック図である。 パイプライン処理の流れに沿って並べられたマルチポートメモリセルおよび演算器を示す図である。 パイプライン処理において、比較例に係るメモリ回路のマルチポートメモリセルに単一のデータによる通常書き込みがなされた場合の各要素の動作タイミングの一例を示すタイムチャートである。 パイプライン処理において、比較例に係るメモリ回路のマルチポートメモリセルに複数のデータによる同時書き込みがなされた場合の各要素の動作タイミングの一例を示すタイムチャートである。 開示の技術の実施形態に係るメモリ回路および比較例に係るメモリ回路における、マルチポートメモリセルに対する同時書き込み数とデータ書き込み時の駆動力との関係を示すグラフである。 開示の技術の実施形態に係るメモリ回路の制御方法を示すフローチャートである。 プロセッサ内に設けられたマルチポートメモリセルの使用例を示す図である。 開示の技術の他の実施形態に係るマルチポートメモリセル10aの構成を示す図である。 開示の技術の他の実施形態に係るメモリ回路の構成を示す回路ブロック図である。 開示の技術の他の実施形態に係る可変容量回路の構成を示す回路図である。
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素および部分には同一の参照符号を付与している。
[第1の実施形態]
図1は、開示の技術の実施形態に係るマルチポートメモリセル10の構成を示す図である。マルチポートメモリセル10は、1ビットのデータを記憶するメモリセル11と、メモリセル11に接続された複数のデータ入力経路d1〜d5と、を含んで構成されている。メモリセル11は、一例として、入力端と出力端とが相互に接続された2つのインバータ11Aおよび11Bを有するスタティックメモリである。なお、マルチポートメモリセル10は、メモリセル11に記憶されたデータを読み出すための複数のデータ出力経路も含み得るが、図1において、データ出力経路の図示は省略されている。
データ入力経路d1〜d5には、メモリセル11にデータを書き込む場合にオン状態とされるトランジスタT10〜T15がそれぞれ接続されている。また、データ入力経路d1〜d5には、メモリセル11にデータを書き込む場合にオン状態とされるトランジスタT20〜T25が、トランジスタT30〜T35を介してそれぞれ接続されている。トランジスタT10〜T15、T20〜T25、T30〜35は、それぞれnチャネル型であり、ゲートにハイレベルの信号が供給された場合にオン状態となる。
トランジスタT10〜T15は、ゲートがクロック入力信号経路c0〜c5にそれぞれ接続され、ソースがデータ入力経路d0〜d5にそれぞれ接続され、ドレインがメモリセル11の一方のノードn1にそれぞれ接続されている。トランジスタT20〜T25は、ゲートがクロック入力信号経路c0〜c5にそれぞれ接続され、ドレインがメモリセル11の他方のノードn2にそれぞれ接続され、ソースがトランジスタT30〜T35のドレインにそれぞれ接続されている。トランジスタT30〜T35は、ゲートがデータ入力経路d0〜d5にそれぞれ接続され、ソースが接地電位にそれぞれ接続されている。メモリセル11の一方のノードn1には、NOT回路12が接続され、NOT回路12の出力端が、マルチポートメモリセル10の出力端13とされている。
トランジスタT10〜T15およびT20〜T25は、それぞれ、クロック入力経路c0〜c5を介して供給されるクロック信号XCK0〜XCK5がハイレベルを呈する場合にオン状態となる。トランジスタT10〜T15およびT20〜T25はオン状態とされた場合に、対応するデータ入力経路d0〜d5を介して供給されるデータXD0〜XD5によるデータ書き込みを行う。なお、ノードn1にNOT回路12が接続されているため、出力端13から出力されるデータの論理はデータ入力経路d0〜d5を介して供給されるデータXD0〜XD5の論理とは逆となる。
マルチポートメモリセル10において、例えば、メモリセル11に、データXD0によるデータ書き込みを行う場合には、クロック信号XCK0がハイレベルとされ、他のクロック信号XCK1〜XCK5はローレベルとされる。これにより、トランジスタT10およびT20がオン状態とされ、メモリセル11にデータXD0によるデータの書き込みが行われる。このように、複数のデータ入力経路d0〜d5を介してそれぞれ供給される複数のデータXD0〜XD5のうち、どのデータによってメモリセル11にデータの書き込みを行うのかがクロック信号XCK0〜XCK5によって定められる。なお、本実施形態ではマルチポートメモリセル10が、6つのデータ入力経路d0〜d5および6つのクロック入力経路c0〜c5を備える構成を例示したが、データ入力経路およびクロック入力経路の数は、適宜増減することが可能である。
マルチポートメモリセル10においては、例えば、クロック信号XCK0とクロック信号XCK1とが同時にハイレベルとなる可能性がある。この場合、トランジスタT10およびT20からなる対と、トランジスタT11およびT21からなる対とが同時にオン状態となり、データ入力経路d0およびd1を介してデータXD0およびXD1が同時にメモリセル11に供給されることとなる。すなわち、メモリセル11に対して、データXD0による書き込みと、データXD1による書き込みとが同時に行われることとなる。
以下に説明する開示の技術の実施形態に係るメモリ回路は、メモリセル11に複数のデータによる同時書き込みがなされる場合に、当該複数のデータを同一値とすることで、バスファイトの発生を回避する機能を有する。更に、開示の技術の実施形態に係るメモリ回路は、メモリセル11に複数のデータによる同時書き込みされる場合でも、メモリセル11のデータ更新のタイミングのずれを抑制する機能を有する。
図2は、開示の技術の実施形態に係るメモリ回路1の概念的な構成を示す回路ブロック図である。図3は、メモリ回路1のより具体的な構成を示す回路ブロック図である。図3に示すように、メモリ回路1は、一例として、8つのマルチポートメモリセル10<0>、10<1>、・・・、10<7>を備える。マルチポートメモリセル10<0>〜10<7>は、それぞれ、図1に示すマルチポートメモリセル10と同じ構成である。また、メモリ回路1は、マルチポートメモリセル10<0>〜10<7>の各々に対応して設けられた8つのクロックドライバ30<0>、30<1>、・・・、30<7>を備える。なお、図2においては、8つのマルチポートメモリセル10<0>〜10<7>のうち、マルチポートメモリセル10<0>のみが図示され、8つのクロックドライバ30<0>〜30<7>のうち、クロックドライバ30<0>のみが図示されている。
アドレス信号WA0[2:0]〜WA5[2:0]は、それぞれ、データ入力経路d0〜d5に供給されるデータの各々の書き込み先を指定する信号であり、データD0〜D5にそれぞれ対応している。例えば、アドレス信号WA0[2:0]は、データD0の書き込み先を指定し、アドレス信号WA5[2:0]は、データD5の書き込み先を指定する。データの書き込み先はマルチポートメモリセル10<0>〜10<7>のうちのいずれかである。アドレス信号WA0[2:0]〜WA5[2:0]は、アドレスデコーダ20および同時書き込み判定回路40にそれぞれ供給される。
アドレスデコーダ20は、アドレス信号WA0[2:0]〜WA5[2:0]が個別に入力される6つのデコーダ21を備える。6つのデコーダ21は、マルチポートメモリセル10<0>〜10<7>の6つのクロック入力経路c0〜c5にそれぞれ対応している。6つのデコーダ21は、自身に入力されたアドレス信号WA0[2:0]〜WA5[2:0]に基づいてクロックイネーブル信号CE0[7:0]〜CE5[7:0]をそれぞれ生成する。クロックイネーブル信号CE0[7:0]〜CE5[7:0]は、それぞれ、対応するクロック入力経路c0〜c5にクロック信号XCK0〜XCK5を供給するか否かを示す信号である。例えば、クロックイネーブル信号CE0[7:0]は、マルチポートメモリセル10<0>〜10<7>の各々に対応する8つのクロックイネーブル信号CE0[0]〜CE0[7]によって構成されている。例えば、CE0[0]は、マルチポートメモリセル10<0>のクロック入力経路c0にクロック信号XCK0を供給する否かを示し、CE0[1]は、マルチポートメモリセル10<1>のクロック入力経路c0にクロック信号XCK0を供給する否かを示す。クロックイネーブル信号CE0[0]〜CE0[7]は、それぞれ対応するクロックドライバ30<0>〜30<7>に供給される。他のクロックイネーブル信号CE1[7:0]〜CE5[7:0]についても同様である。
クロックドライバ30<0>〜30<7>は、マルチポートメモリセル10<0>〜10<7>にそれぞれ対応している。クロックドライバ30<0>〜30<7>は、それぞれ、対応するマルチポートメモリセル10<0>〜10<7>のクロック入力経路c0〜c5のうち、クロックイネーブル信号によって指定された経路に、対応するクロック信号XCK0〜XCK5を供給する。
図4は、クロックドライバ30<0>の詳細な構成を示す回路図である。クロックドライバ30<0>は、NOT回路31およびクロック入力経路c0〜c5にそれぞれ対応する6つのAND回路300〜305を含んで構成されている。NOT回路31の入力端には基本クロック信号CKが入力される。AND回路300〜305の一方の入力端には、それぞれ、複数のデコーダ21の各々から出力されたクロックイネーブル信号CE0[0]〜CE5[0]が入力される。AND回路300〜305の他方の入力端は、NOT回路31の出力端に接続されている。AND回路300〜305の出力端は対応するクロック入力経路c1〜c5に接続されている。例えば、AND回路300は、クロックイネーブル信号CE0[0]がハイレベルを呈する場合に基本クロック信号CKを論理反転させたクロック信号XCK0をマルチポートメモリセル10<0>のクロック入力経路c0に供給する。同様に、AND回路301〜305は、入力されるクロックイネーブル信号CE1[0]〜CE5[0]がハイレベルを呈する場合に、クロック信号XCK1〜XCK5をマルチポートメモリセル10<0>のクロック入力経路c1〜c5にそれぞれ供給する。
このように、クロックドライバ30<0>は、マルチポートメモリセル10<0>のクロック入力経路c0〜c5のうち、クロックイネーブル信号CE0[0]〜CE5[0]によって指定された経路に、対応するクロック信号XCK0〜XCK5を供給する。
クロックドライバ30<1>〜30<7>は、クロックドライバ30<0>と同様の構成を有する。クロックドライバ30<1>〜30<7>は、対応するマルチポートメモリセル10<1>〜10<7>のクロック入力経路c0〜c5のうち、クロックイネーブル信号によって指定された経路に、対応するクロック信号XCK0〜XCK5を供給する。
同時書き込み判定回路40は、アドレス信号WA0[2:0]〜WA5[2:0]に基づいて、同一のマルチポートメモリセルに対するデータの同時書き込みに関する情報を含む第1の判定信号MATCH[0:5]および第2の判定信号MATCH0[4:0]〜MATCH5[4:0]を生成する。
第1の判定信号MATCH[0:5]は、データ入力経路d0〜d5にそれぞれ供給されるデータのうち、同一のマルチポートメモリセルを書き込み先とするデータを、データ入力経路毎に特定する信号である。第1の判定信号MATCH[0:5]は、データ入力経路d0〜d5の各々に対応する6つの判定信号MATCH[0]〜MATCH[5]により構成されている。例えば、判定信号MATCH[0]は、データ入力経路d0に供給されるデータの書き込み先が、他のデータ入力経路d1〜d5に供給されるデータのうちのいずれかの書き込み先と一致する場合にハイレベルを呈し、それ以外の場合にローレベルを呈する。判定信号MATCH[1]は、データ入力経路d1に供給されるデータの書き込み先が、他のデータ入力経路d0、d2〜d5に供給されるいずれかのデータの書き込み先と一致する場合にハイレベルを呈し、それ以外の場合にローレベルを呈する。判定信号MATCH[2]〜MATCH[5]についても同様である。
第2の判定信号MATCH0[4:0]〜MATCH5[4:0]は、それぞれ、データ入力経路d0〜d5に対応している。例えば、第2の判定信号MATCH0[4:0]は、データ入力経路d0に対応し、データ入力経路d0に供給されるデータの書き込み先が、他のデータ入力経路d1〜d5のいずれかに供給されるデータの書き込み先と一致数する場合の一致数を示す信号である。例えば、データ入力経路d0に供給されるデータの書き込み先が、データ入力経路d1に供給されるデータの書き込み先と一致する場合に、一致数が1であることが第2の判定信号MATCH0[4:0]によって示される。また、データ入力経路d0に供給されるデータの書き込み先が、データ入力経路d1およびd2に供給されるデータの書き込み先と一致する場合に、一致数が2であることが第2の判定信号MATCH0[4:0]によって示される。なお、第2の判定信号MATCH0[4:0]は、判定信号MATCH0[0]〜MATCH0[4]により構成されており、これらによって一致数が示される。
第2の判定信号MATCH1[4:0]〜MATCH5[4:0]は、それぞれデータ入力経路d1〜d5を判定対象としている点を除き、MATCH0[4:0]と同様である。第2の判定信号MATCH0[4:0]〜MATCH5[4:0]は、駆動力調整回路60に供給される。
図5は、同時書き込み判定回路40の構成を示す回路ブロック図である。同時書き込み判定回路40は、複数のアドレス比較回路401〜415と、複数のOR回路420〜425と、を含んで構成されている。
アドレス信号WA0[2:0]〜WA5[2:0]は、複数のアドレス比較回路401〜415によって総当りで比較される。例えば、アドレス比較回路401は、アドレス信号WA0[2:0]によって示されるデータD0の書き込み先と、アドレス信号WA1[2:0]によって示されるデータD1の書き込み先とを比較する。アドレス比較回路401は、両者の書き込み先が一致する場合にハイレベルの判定信号M01を出力し、一致しない場合にローレベルの判定信号M01を出力する。また、例えば、アドレス比較回路402は、アドレス信号WA0[2:0]によって示されるデータD0の書き込み先と、アドレス信号WA2[2:0]によって示されるデータD2の書き込み先とを比較する。アドレス比較回路402は、両者の書き込み先が一致する場合にハイレベルの判定信号M02を出力し、一致しない場合にローレベルの判定信号M02を出力する。アドレス比較回路403〜415についても同様である。複数のアドレス比較回路401〜415によって判定信号M01〜M05、M12〜M15、M23〜M25、M34、M35およびM45が生成される。
判定信号M01〜M05は、それぞれ、判定信号MATCH0[0]〜MATCH0[4]に対応し、これらをまとめた第2の判定信号MATCH0[4:0]として出力される。判定信号M01、M12〜M15は、それぞれ、判定信号MATCH1[0]〜MATCH1[4]に対応し、これらをまとめた第2の判定信号MATCH1[4:0]として出力される。判定信号M02、M12、M23〜M25は、それぞれ、判定信号MATCH2[0]〜MATCH2[4]に対応し、これらをまとめた第2の判定信号MATCH2[4:0]として出力される。判定信号M03、M13、M23、M34およびM35は、それぞれ、判定信号MATCH3[0]〜MATCH3[4]に対応し、これらをまとめた第2の判定信号MATCH3[4:0]として出力される。判定信号M04、M14、M24、M34およびM45は、それぞれ、判定信号MATCH4[0]〜MATCH4[4]に対応し、これらをまとめた第2の判定信号MATCH4[4:0]として出力される。判定信号M05、M15、M25、M35およびM45は、それぞれ、判定信号MATCH5[0]〜MATCH5[4]に対応し、これらをまとめた第2の判定信号MATCH5[4:0]として出力される。
OR回路420は、判定信号M01〜M05の論理和を演算した結果を第1の判定信号MATCH[0]として出力する。OR回路421は、判定信号M01、M12〜M15の論理和を演算した結果を第1の判定信号MATCH[1]として出力する。OR回路422は、判定信号M02、M12、M23〜M25の論理和を演算した結果を第1の判定信号MATCH[2]として出力する。OR回路423は、判定信号M03、M13、M23、M34およびM35の論理和を演算した結果を第1の判定信号MATCH[3]として出力する。OR回路424は、判定信号M04、M14、M24、M34およびM45の論理和を演算した結果を第1の判定信号MATCH[4]として出力する。OR回路425は、判定信号M05、M15、M25、M35およびM45の論理和を演算した結果を第1の判定信号MATCH[5]として出力する。
データ変換回路50は、第1の判定信号MATCH[0:5]に基づいて、入力されるデータD0〜D5のうち、書き込み先が一致するデータを特定する。データ変換回路50は、書き込み先が一致するデータの各々が互いに同一値となるようにデータ変換処理を行う。
図6は、データ変換回路50の詳細な構成を示す回路図である。データ変換回路50は、NOT回路51およびデータ入力経路d0〜d5にそれぞれ対応する6つのNAND回路500〜505を含んで構成されている。NOT回路51の入力端には第1の判定信号MATCH[0:5](MATCH[0]〜MATCH[5])が入力される。NAND回路500〜505の一方の入力端には、それぞれ、データD0〜D5が入力され、NAND回路500〜505の他方の入力端は、NOT回路51の出力端に接続されている。
例えば、NAND回路500は、第1の判定信号MATCH[0]の論理反転信号とデータD0との否定論理積を演算する。NAND回路500は、第1の判定信号MATCH[0]がハイレベルを呈する場合、データD0の値を固定値“1”に変換し、これをデータXDO0として出力する。一方、NAND回路500は、第1の判定信号MATCH[0]がローレベルを呈する場合、データD0を論理反転したものをデータXDO0として出力する。
同様に、NAND回路501〜505は、それぞれ第1の判定信号MATCH[1]〜MATCH[5]の論理反転信号とデータD1〜D5との否定論理積を演算する。NAND回路501〜505は、第1の判定信号MATCH[1]〜MATCH[5]がそれぞれハイレベルを呈する場合、データD1〜D5の値を、固定値“1”に変換し、これらをデータXDO1〜XDO5としてそれぞれ出力する。一方、NAND回路501〜505は、第1の判定信号MATCH[1]〜MACH[5]がそれぞれローレベルを呈する場合、データD1〜D5をそれぞれ論理反転したものをデータXDO1〜XDO5としてそれぞれ出力する。
例えば、データD0の書き込み先とデータD1の書き込み先が同一である場合、データ変換回路50は、データD0およびD1をそれぞれ固定値“1”に変換し、これらをデータXDO0およびXDO1として出力する。データ変換回路50は、書き込み先が互いに異なるデータD2〜D5については、これらを論理反転したものをデータXDO2〜XDO5として出力する。このようにデータ変換回路50によって書き込み先が同一であるデータの値を同一値に変換することで、マルチポートメモリセル10<0>〜10<7>においてバスファイトの発生を回避することができる。データ変換回路50から出力されるデータXDO0〜XDO5は、それぞれ、駆動力調整回路60に供給される。
駆動力調整回路60は、第2の判定信号MATCH0[4:0]〜MATCH5[4:0]に基づいて、データ変換回路50から出力されるデータXDO0〜XDO5の書き込み先の一致数をデータ入力経路毎に特定する。駆動力調整回路60は、データXDO0〜XDO5の書き込み先の一致数に応じて、データXDO0〜XDO5を対応するデータ入力経路d1〜d5に出力する際の駆動力を調整する。
図7は、駆動力調整回路60の構成を示す回路ブロック図である。駆動力調整回路60は、データ入力経路d0〜d5にそれぞれ対応する6つのドライバ回路600〜605を含んで構成されている。ドライバ回路600〜605は、それぞれ、データ入力端D、信号入力端Sおよびデータ出力端DOを有する。ドライバ回路600〜605のデータ入力端Dには、データ変換回路50から出力されるデータ変換処理後のデータXDO0〜XDO5がそれぞれ入力される。ドライバ回路600〜605の信号入力端Sには、第2の判定信号MATCH0[4:0]〜MATCH5[4:0]がそれぞれ入力される。
例えば、ドライバ回路600は、第2の判定信号MATCH0[4:0]に基づいて、自身に入力されるデータXDO0と、他のドライバ回路601〜605にそれぞれ入力されるデータXDO1〜XDO5との間での書き込み先の一致数を特定する。ドライバ回路600は、特定した書き込み先の一致数に応じて、自身に入力されたデータXDOをXD0として対応するデータ入力経路d0に出力する際の駆動力を調整する。ドライバ回路600は、書き込み先の一致数が多い程、小さい駆動力によってデータXDOを出力する。換言すれば、ドライバ回路600は、書き込み先の一致数の増加に伴って低下する駆動力によってデータXD0を出力する。
同様に、ドライバ回路601〜605は、それぞれ、第2の判定信号MATCH1[4:0]〜MATCH5[4:0]に基づいて、自身に入力されるデータXDO1〜XDO5と他のドライバ回路に入力されるデータとの間での書き込み先の一致数を特定する。ドライバ回路601〜605は、特定した書き込み先の一致数に応じて、自身に入力されたデータXDO1〜XDO5をそれぞれXD1〜XD5として対応するデータ入力経路d1〜d5に出力する際の駆動力をそれぞれ調整する。ドライバ回路601〜605は、書き込み先の一致数が多い程、小さい駆動力によってデータXD1〜XD5をそれぞれ出力する。換言すれば、ドライバ回路601〜605は、書き込み先の一致数の増加に伴って低下する駆動力によってデータXD1〜XD5をそれぞれ出力する。
図8は、ドライバ回路600のより詳細な構成を示す回路図である。ドライバ回路600は、入力段インバータ回路110、6つの出力段インバータ回路100〜105およびNOT回路120を含んで構成されている。入力段インバータ回路110の入力端は、ドライバ回路600のデータ入力端Dに接続されており、データXDO0が入力される。入力段インバータ回路110の出力端は、出力段インバータ回路100〜105の各々の入力端に接続されている。出力段インバータ回路100〜105の各々の出力端は、ドライバ回路600の出力端DOに接続されている。すなわち、出力段インバータ回路100〜105の各々は、互いに並列接続されている。
出力段インバータ回路100〜105は、それぞれ、直列接続されたpチャネル型のトランジスタQ1、Q2およびnチャネル型のトランジスタQ3、Q4を含んで構成されている。
出力段インバータ回路100〜104の各々において、トランジスタQ1のゲートは信号入力端Sに接続され、トランジスタQ4のゲートはNOT回路120の出力端に接続されている。一方、出力段インバータ回路105において、トランジスタQ1のゲートは接地電位に接続され、トランジスタQ4のゲートは電源電位に接続されている。
出力段インバータ回路100において、トランジスタQ1のゲートには第2の判定信号MATCH0[0]が入力され、トランジスタQ4のゲートには第2の判定信号MATCH0[0]の論理反転信号が入力される。出力段インバータ回路100は、第2の判定信号MATCH0[0]がローレベルを呈する場合に有効化され、インバータとしての機能を発揮し、第2の判定信号MATCH0[0]がハイレベルを呈する場合に無効化され、停止状態となる。
同様に、出力段インバータ回路101〜104において、トランジスタQ1のゲートには第2の判定信号MATCH0[1]〜MTCH0[4]がそれぞれ入力され、トランジスタQ4のゲートには第2の判定信号MATCH0[1]〜MATCH0[4]の論理反転信号がそれぞれ入力される。出力段インバータ回路101〜104は、それぞれ、第2の判定信号MATCH0[1]〜MATCH0[4]がローレベルを呈する場合に有効化され、インバータとしての機能を発揮し、第2の判定信号MATCH0[1]〜MATCH0[4]がハイレベルを呈する場合に無効化され、停止状態となる。一方、出力段インバータ回路105は、電源投入により有効化される。
ドライバ回路600は、出力段インバータ回路100〜105のうち有効化されたものによって、データ入力端Dに入力されたデータXDOをXD0として出力端DOから出力し、これをデータ入力経路d0に供給する。ドライバ回路600において、有効化された出力段インバータの数が多い程、データ出力時の駆動力が大きくなる。ドライバ回路600がデータ入力経路d0にデータXD0を出力する際の駆動力は、第2の判定信号MATCH0[4:0]によって定められる。
ドライバ回路600は、入力されるデータXDO0の書き込み先が、他のデータXDO1〜XDO5の書き込み先と一致する場合の一致数が増加する程、有効化させる出力段インバータの数を減少させ、データ出力時の駆動力を低下させる。例えば、書き込み先が、データXDO0と一致する他のデータが存在しない場合(書き込み先の一致数が0である場合)、ドライバ回路600は、6つの出力段インバータ回路100〜105の全てを有効化させる。この場合、ドライバ回路600の駆動力は最大となる。また、例えば、データXDO0およびデータXDO1の書き込み先が一致する場合(書き込み先の一致数が1である場合)、ドライバ回路600は有効化させる出力段インバータの数を5つとし、駆動力を上記の場合よりも低下させる。また、例えば、データXDO0、XDO1およびXDO2の書き込み先が一致する場合(書き込み先の一致数が2である場合)、ドライバ回路600は有効化させる出力段インバータの数を4つとし、駆動力を更に低下させる。
ドライバ回路601〜605は、ドライバ回路600と同じ構成を有する。ドライバ回路601〜605が、それぞれ、データ入力経路d1〜d5にデータXD1〜XD5を出力する際の駆動力は、対応する第2の判定信号MATCH1[4:0]〜MATCH5[4:0]によってそれぞれ定められる。ドライバ回路601〜605は、それぞれ、入力されるデータXDO1〜XDO5の書き込み先と他のデータの書き込み先との一致数が増加する程、有効化させる出力段インバータの数を減少させ、データ出力時の駆動力を低下させる。
以下に、メモリ回路1の動作について説明する。以下では、データ入力経路d0およびd1に供給される各データの書き込み先が、共にマルチポートメモリセル10<0>であり、データ入力経路d2〜d5に供給される各データの書き込み先がマルチポートメモリセル10<0>以外である場合を例に説明する。なお、データ入力経路d2〜d5に供給される各データの書き込み先は、互いに一致しないものとする。この場合、データD0の書き込み先がマルチポートメモリセル10<0>であることがアドレス信号WA0[2:0]によって示され、データD1の書き込み先がマルチポートメモリセル10<0>であることがアドレス信号WA1[2:0]によって示される。
アドレスデコーダ20は、アドレス信号WA0[2:0]〜WA5[2:0]によってデータD0〜D5のそれぞれの書き込み先を特定し、クロックイネーブル信号CE0[7:0]〜CE5[7:0]を生成し、これらをクロックドライバ30<0>〜30<7>に供給する。
クロックドライバ30<0>に供給されるクロックイネーブル信号CE0[0]〜CE5[0]のうち、CE0[0]およびCE1[0]はハイレベルを呈し、CE2[0]〜CE5[0]はローレベルを呈する。クロックドライバ30<0>は、クロックイネーブル信号CE0[0]〜CE5[0]に基づいて、クロック入力経路c0にクロック信号XCK0を供給するとともにクロック入力経路c1にクロック信号XCK1を供給する。クロックドライバ30<0>は、他のクロック入力経路c2〜c5にはクロック信号を供給しない。マルチポートメモリセル10<0>は、クロック入力経路c0およびc1にそれぞれクロック信号XCK0およびXCK1が供給されることにより、トランジスタT10、T11、T20、T21(図1参照)がオン状態となる。これにより、マルチポートメモリセル10<0>において、データ入力経路d0およびd1の各々を介してメモリセル11にデータが同時に供給されることとなる。
同時書き込み判定回路40は、アドレス信号WA0[2:0]〜WA5[2:0]に基づいて、データ入力経路d0に対応するデータD0の書き込み先とデータ入力経路d1に対応するデータD1の書き込み先が一致していることを特定する。同時書き込み判定回路40は、データD0の書き込み先とデータD1の書き込み先が一致していることを示す第1の判定信号MATCH[0:5]を生成し、これをデータ変換回路50に供給する。
また、同時書き込み判定回路40はアドレス信号WA0[2:0]〜WA5[2:0]に基づいて、データ入力経路d0およびd1にそれぞれ供給されるデータの書き込み先と、書き込み先が一致するデータの数(一致数)がそれぞれ1であることを特定する。同時書き込み判定回路40は、データ入力経路毎のデータの書き込み先の一致数を示す第2の判定信号MATCH0[4:0]〜MATCH5[4:0]を生成し、これを駆動力調整回路60に供給する。
データ変換回路50は、第1の判定信号MATCH[0:5]に基づいて、データ入力経路d0に対応するデータD0の書き込み先とデータ入力経路d1に対応するデータD1の書き込み先が一致していることを特定する。データ変換回路50は、入力されたデータD0〜D5のうち、書き込み先が一致するデータD0およびD1の値をそれぞれ固定値“1”に変換し、これらをそれぞれデータXDO0、XDO1として出力する。データ変換回路50は、他のデータD2〜D5についてはそれぞれ論理反転させ、データXDO2〜XDO5として出力する。
駆動力調整回路60は、第2の判定信号MATCH0[4:0]〜MATCH5[4:0]に基づいて、データ入力経路d0に供給されるデータの書き込み先についての一致数が1であり、データ入力経路d1に供給されるデータの書き込み先についての一致数が1であることを特定する。
駆動力調整回路60は、第2の判定信号MATCH0[4:0]に基づいて、ドライバ回路600を構成する6つの出力段インバータ回路100〜105のうちの5つを有効化させる。ドライバ回路600は、有効化された出力段インバータ回路の各々によってデータXDO0をXD0として出力し、これをデータ入力経路d0に供給する。
駆動力調整回路60は、第2の判定信号MATCH1[4:0]に基づいて、ドライバ回路601を構成する6つの出力段インバータ回路100〜105のうちの5つを有効化させる。ドライバ回路601は、有効化された出力段インバータ回路の各々によってデータXDO1をXD1として出力し、これをデータ入力経路d1に供給する。
駆動力調整回路60は、第2の判定信号MATCH2[4:0]〜MATCH5[4:0]に基づいて、ドライバ回路602〜605をそれぞれ構成する6つの出力段インバータ回路100〜105の全てを有効化させる。ドライバ回路602〜605は、それぞれ、有効化された出力段インバータ回路の各々によってデータXDO2〜XDO5をそれぞれXD2〜XD5として出力し、これらをデータ入力経路d2〜d5にそれぞれ供給する。データ入力経路d0に供給された固定値“1”に変換されたデータXD0およびデータ入力経路d1に供給された固定値“1”に変換されたデータXD1は、それぞれ、マルチポートメモリセル10<0>のメモリセル11に同時に書き込まれる。
マルチポートメモリセル10<0>に同時に供給されるデータXD0およびXD1が同一値に変換されることで、バスファイトの発生を回避することができる。また、マルチポートメモリセル10<0>においては、複数のデータXD0およびXD1による同時書き込みがなされることにより、単一のデータによる通常書き込みの場合と比較してデータ書き込み時の駆動力が増大する。これは、マルチポートメモリセル10<0>を構成するトランジスタT10〜T15、T20〜T25のうち、オン状態となるトランジスタの数が、通常書き込み時よりも同時書き込み時の方が多くなるからである。これにより、同時書き込み時には、メモリセル11におけるデータ更新のタイミングが、通常書き込み時よりも早まる方向にずれるおそれがある。開示の技術の実施形態に係るメモリ回路1によれば、駆動力調整回路60が、データの書き込み先の一致数(以下、同時書き込み数ともいう)の増加に伴って低下する駆動力によって同時書き込みを行うデータを出力するので、同時書き込みによる駆動力の増大が抑制される。これにより、同時書き込み時と通常書き込み時との間でのメモリセル11のデータ更新タイミングのずれを抑制することができる。
図9は、比較例に係るメモリ回路1Xの構成を示す回路ブロック図である。比較例に係るメモリ回路1Xは、開示の技術の実施形態に係るメモリ回路1が備える駆動力調整回路60を有しない。従って、比較例に係るメモリ回路1Xによれば、同一のマルチポートメモリセルに複数のデータが同時に書き込まれる場合の同時書き込み数の増加に伴って、データ書き込み時の駆動力はリニアに増大する。
ここで、図10は、プロセッサ内部において実施されるパイプライン処理の一例を示す図である。図10には、パイプライン処理の流れに沿って並べられたマルチポートメモリセル10<0>、演算器200、マルチポートメモリセル10<1>および演算器201が例示されている。
図11Aは、図10に示すパイプライン処理において、比較例に係るメモリ回路1Xのマルチポートメモリセル10<0>に単一のデータによる通常書き込みがなされた場合の各要素の動作タイミングの一例を示すタイムチャートである。図11Aに示す各要素の動作タイミングは、設計時の想定に従う適正なタイミングであるものとする。
時刻t1においてクロック信号XCKがハイレベルに遷移すると、前段のマルチポートメモリセル10<0>は自身に入力されたデータによってデータ書き込みを行い、出力データM1を更新させる。演算器200は、マルチポートメモリセル10<0>の出力データM1を用いて所定の演算を行い、クロック信号XCXがローレベルに遷移する時刻t2よりも後のタイミングで演算結果DIを出力する。後段のマルチポートメモリセル10<1>は、時刻t3においてクロック信号XCXがハイレベルに遷移することで、演算結果DIによってデータ書き込みを行い、出力データM2を更新させる。演算器201は、マルチポートメモリセル10<1>の出力データM2を用いて所定の演算を行う。
図11Bは、図10に示すパイプライン処理において、比較例に係るメモリ回路1Xのマルチポートメモリセル10<0>に複数のデータによる同時書き込みがなされた場合の各要素の動作タイミングの一例を示すタイムチャートである。比較例に係るメモリ回路1Xにおいてマルチポートメモリセル10<0>に同時書き込みが行われると、データ書き込み時の駆動力の増大により出力データM1の更新タイミングが通常書き込み時(図11A参照)と比較して早まるおそれがある。これに伴って、演算器200による演算結果DIの出力タイミングが、クロック信号XCKがローレベルに遷移する時刻t2よりも前になると、後段のマルチポートメモリセル10<1>の出力データM2の更新タイミングも時刻t2よりも前となるおそれがある。この場合、出力データM2の更新タイミングが正規のタイミングに対して大幅にずれ、演算器201は、誤ったデータで演算を行うこととなる。
このように、比較例に係るメモリ回路1Xによれば、マルチポートメモリセルに複数のデータによる同時書き込みがなされると、単一のデータによる通常書き込みの場合と比較して駆動力が増大し、データ更新のタイミングが早まる方向にずれるおそれがある。従って、比較例に係るメモリ回路1Xのマルチポートメモリセルをパイプライン処理に組み込んだ場合には、正規のタイミングに従うパイプライン処理がなされないおそれがある。
一方、開示の技術の実施形態に係るメモリ回路1によれば、マルチポートメモリセルに複数のデータによる同時書き込みがなされる場合でも、駆動力調整回路60によって駆動力の増大が抑制されるので、データ更新のタイミングのずれを抑制することができる。
図12は、開示の技術の実施形態に係るメモリ回路1および比較例に係るメモリ回路1Xのそれぞれについて、マルチポートメモリセルにおける同時書き込み数と、データ書き込み時の駆動力との関係を示したグラフである。図12に示すグラフにおいて、横軸はマルチポートメモリセルにおける同時書き込み数を示し、縦軸は駆動力比を示す。駆動力比とは、単一のデータによる通常書き込み時(同時書き込み数0)の駆動力F1に対する各同時書き込み数における駆動力F2の比率(F2/F1)を意味する。開示の技術の実施形態に係るメモリ回路1においては、駆動力調整回路60を構成するドライバ回路600〜605において、データ書き込み時に有効化されるインバータ回路の総数が駆動力に相当するものとする。
図12に示すように、比較例に係るメモリ回路1Xによれば、同時書き込み数の増加に伴って駆動力比はリニアに増大する。比較例に係るメモリ回路1Xによれば、例えば、同時書き込み数が3の場合、駆動力は通常書き込み時の4倍となり、同時書き込み数が5の場合、駆動力は通常書き込み時の6倍となる。一方、開示の技術の実施形態に係るメモリ回路1によれば、駆動力調整回路60を構成するドライバ回路600〜605において、同時書き込み数の増加に伴って有効化されるインバータ回路の数が減少する。従って、同時書き込み数の増加に伴って駆動力比がリニアに増大することを防止できる。開示の技術の実施形態に係るメモリ回路1によれば、例えば、同時書き込み数が3の場合の駆動力を通常書き込み時の2倍に抑えることができ、同時書き込み数が5の場合の駆動力を通常書き込み時と同等(1倍)にすることができる。
図13は、開示の技術の実施形態に係るメモリ回路1によって実現されるメモリ回路の制御方法の一例を示すフローチャートである。
ステップS1において、注目データ入力経路dnの経路番号nを初期値である0にセットする(n=0)。
ステップS2において、同時書き込み判定回路40が、アドレス信号WA0[2:0]〜WA5[2:0]に基づいて、注目データ入力経路dnに供給されるデータの書き込み先と、書き込み先が一致するデータの有無を判定する。同時書き込み判定回路40は、注目データ入力経路dnに供給されるデータの書き込み先と、書き込み先が一致するデータの有無を示す第1の判定信号MATCH[n]を生成する。また、同時書き込み判定回路40は、注目データ入力経路dnに供給されるデータの書き込み先が、他のデータ入力経路に供給されるデータの書き込み先と一致する場合の一致数を示す第2の判定信号MATCHn[4:0]を生成する。注目データ入力経路dnに供給されるデータの書き込み先と、書き込み先が一致するデータが存在する場合には処理はステップS3に移行され、存在しない場合には処理はステップS4に移行される。
ステップS3において、データ変換回路50は、第1の判定信号MATCH[n]に基づいて、注目データ入力経路dnに供給されるデータを固定値に変換する。
ステップS4において、駆動力調整回路60は、第2の判定信号MATCHn[4:0]に基づいて、注目データ入力経路dnに供給されるデータの書き込み先と、書き込み先が一致するデータの数(一致数)を特定する。駆動力調整回路60は、特定した一致数に応じて、注目データ入力経路dnにデータを出力する際の駆動力を調整する。
ステップS5において、注目データ入力経路dnの経路番号nを1つインクリメントする。
ステップS6において、注目データ入力経路dnの経路番号nが最終値nMAX(メモリ回路1の場合には、最終値nMAX=5)以下であるか否かを判定する。注目データ入力経路dnの経路番号nが最終値nMAX以下である場合には、処理はステップS2に戻され、注目データ入力経路dnの経路番号nが最終値nMAXよりも大となるまで、ステップS2〜S5の処理が繰り返し実行される。これにより、データ入力経路d0〜d5の各々について、各データ入力経路に供給されるデータの変換処理がなれるとともに、各データ入力経路にデータを出力する際の駆動力が調整される。
ステップS7において、駆動力調整回路60は、調整された駆動力により、データ入力経路の各々にデータを出力する。これにより、アドレス信号WA0[2:0]〜WA5[2:0]によって指定されたマルチポートメモリセルに各データが書き込まれる。
図14は、プロセッサ内に設けられたマルチポートメモリセルの使用例を示す図である。プロセッサ内には、複数のマルチポートメモリセルからなるマルチポートメモリセル群1000、複数の演算器201〜203および複数のラッチ回路701〜709が設けられている。なお、図14では各要素間でのデータの流れが矢印で示され、アドレスの流れは図示が省略されている。
図14には、マルチポートメモリセル群1000から読み出したデータを演算器201〜203に同時に供給し、演算器201〜203による演算結果をマルチポートメモリセル群1000に書き込む様子が示されている。すなわち、マルチポートメモリセル群1000をプロセッサ内で実施されるパイプライン処理に組み込んだ場合の態様が例示されている。なお、マルチポートメモリセル群1000から読み出されるデータは、例えば別演算器による演算結果であってもよい。
ラッチ回路701〜709は、マルチポートメモリセル群1000と演算器201〜203との間に介在し、マルチポートメモリセル群1000と演算器201〜203との間でやりとりされるデータを一時的に保持する。マルチポートメモリセル群1000におけるデータの読み出しおよび書き込みは、図示しないクロック信号に同期して行われる。各処理サイクルにおいて、マルチポートメモリセル群1000に対する書き込みアドレスおよび読み出しアドレスを独立に指定することによって、複数の演算器201〜203に同時且つ連続的に演算を行わせることができる。
マルチポートメモリセルを、図14に例示するような態様で使用する場合、マルチポートメモリセルにおいて、同時書き込みに起因してデータ更新のタイミングにずれが生じると、想定したタイミングで演算器にデータが入力されない場合がある。この場合、演算器は、誤ったデータで演算を行うこととなり、システムが誤動作を起こしてしまうことがある。これを回避するために、マルチポートメモリセルにおけるデータ更新のタイミングのずれを考慮してタイミング設計を行うことも考えられるが、タイミングのずれが大きくなってしまう場合ではタイミング設計が困難になる。
開示の技術の実施形態に係るメモリ回路1によれば、駆動力調整回路60がメモリセル11に同時に供給されるデータの数(同時書き込み数)の増加に伴って低下する駆動力によってメモリセル11に同時に供給されるデータの各々を、対応するデータ入力経路の各々に出力する。これにより、メモリセル11のデータ更新のタイミングのずれを抑制することが可能となる。従って、パイプライン処理におけるタイミング設計が容易となる。
[第2の実施形態]
図15は、開示の技術の第2の実施形態に係るマルチポートメモリセル10aの構成を示す図である。第2の実施形態に係るマルチポートメモリセル10aは、可変容量回路14を更に含む点が、第1の実施形態に係るマルチポートメモリセル10(図1参照)と異なる。可変容量回路14は、メモリセル11のノードn1とノードn2との間に設けられている。すなわち、可変容量回路14はメモリセル11に並列接続されている。可変容量回路14は、入力端15に入力される、同時書き込み判定回路40からの第1の判定信号MATCH[0:5]によって静電容量の大きさを変化させることが可能である。
図16は、開示の技術の第2の実施形態に係るメモリ回路1Aの構成を示す回路ブロック図である。メモリ回路1Aは、一例として、8つのマルチポートメモリセル10a<0>A、10a<1>、・・・、10a<7>を備える。マルチポートメモリセル10a<0>〜10a<7>は、それぞれ、図15に示すマルチポートメモリセル10aと同じ構成であり、それぞれ、可変容量回路14を備えている。メモリ回路1Aは、第1の実施形態に係るメモリ回路1(図3参照)が備える駆動力調整回路60を有していない。
図17は、可変容量回路14の構成を示す回路図である。可変容量回路14は、メモリセル11のノードn1に一端がそれぞれ接続された複数のトランスファーゲート801〜806と、トランスファーゲート801〜806の他端に入力端がそれぞれ接続された複数のNOT回路821〜826とを備える。また、可変容量回路14は、メモリセル11のノードn2に一端がそれぞれ接続された複数のトランスファーゲート811〜816と、トランスファーゲート811〜816の他端に入力端がそれぞれ接続された複数のNOT回路831〜836とを備える。トランスファーゲート801〜806、811〜816は、それぞれnチャネル型トランジスタとpチャネル型トランジスタとを組み合わせて構成されている。
トランスファーゲート801および811において、nチャネル型トランジスタのゲートにはクロックイネーブル信号CE0が入力され、pチャネル型トランジスタのゲートにはクロックイネーブル信号CE0をNOT回路841により論理反転した信号が入力される。トランスファーゲート801および811は、クロックイネーブル信号CE0がハイレベルを呈する場合にオン状態となる。
トランスファーゲート802および812において、nチャネル型トランジスタのゲートにはクロックイネーブル信号CE1が入力され、pチャネル型トランジスタのゲートにはクロックイネーブル信号CE1をNOT回路842により論理反転した信号が入力される。トランスファーゲート802および812は、クロックイネーブル信号CE1がハイレベルを呈する場合にオン状態となる。
トランスファーゲート803および813において、nチャネル型トランジスタのゲートにはクロックイネーブル信号CE2が入力され、pチャネル型トランジスタのゲートにはクロックイネーブル信号CE2をNOT回路843により論理反転した信号が入力される。トランスファーゲート803および813は、クロックイネーブル信号CE2がハイレベルを呈する場合にオン状態となる。
トランスファーゲート804および814において、nチャネル型トランジスタのゲートにはクロックイネーブル信号CE3が入力され、pチャネル型トランジスタのゲートにはクロックイネーブル信号CE3をNOT回路844により論理反転した信号が入力される。トランスファーゲート804および814は、クロックイネーブル信号CE3がハイレベルを呈する場合にオン状態となる。
トランスファーゲート805および815において、nチャネル型トランジスタのゲートにはクロックイネーブル信号CE4が入力され、pチャネル型トランジスタのゲートにはクロックイネーブル信号CE4をNOT回路845により論理反転した信号が入力される。トランスファーゲート805および815は、クロックイネーブル信号CE4がハイレベルを呈する場合にオン状態となる。
トランスファーゲート806および816において、nチャネル型トランジスタのゲートにはクロックイネーブル信号CE5が入力され、pチャネル型トランジスタのゲートにはクロックイネーブル信号CE5をNOT回路846により論理反転した信号が入力される。トランスファーゲート806および816は、クロックイネーブル信号CE5がハイレベルを呈する場合にオン状態となる。
可変容量回路14は、オン状態となるトランスファーゲートの数が増加する程、静電容量が大きくなる。可変容量回路14の静電容量を、クロックイネーブル信号CE0〜CE5によって制御することで、メモリセル11に同時に供給されるデータの数(同時書き込み数)が増加する程、可変容量回路14の静電容量が大きくなる。これにより、同時書き込みに起因するメモリセル11のデータ更新のタイミングのずれを抑制することが可能となる。
なお、メモリ回路1および1Aは、開示の技術におけるメモリ回路の一例である。データ入力経路d0〜d5は、開示の技術におけるデータ入力経路の一例である。マルチポートメモリセル10<0>のメモリセル11は、開示の技術におけるメモリセルの一例である。駆動力調整回路60は、開示の技術における駆動力調整回路の一例である。ドライバ回路600〜601は、開示の技術におけるドライバ回路の一例である。出力段インバータ回路100〜105は、開示の技術におけるインバータ回路の一例である。データ変換回路50は、開示の技術におけるデータ変換回路の一例である。同時書き込み判定回路40は、開示の技術における判定回路の一例である。トランジスタT10〜T15、T20〜T25は、開示の技術におけるトランジスタの一例である。可変容量回路14は、開示の技術における可変容量回路の一例である。トランスファーゲート801〜806は、開示の技術における第1ノード側トランスファーゲートの一例である。トランスファーゲート811〜816は、開示の技術における第2ノード側トランスファーゲートの一例である。NOT回路821〜826は、開示の技術における第1ノード側NOT回路の一例である。NOT回路831〜836は、開示の技術における第2ノード側NOT回路の一例である。
以上の第1および第2の実施形態に関し、更に以下の付記を開示する。
(付記1)
複数のデータ入力経路を有するメモリセルと、
前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数の増加に伴って低下する駆動力によって前記メモリセルに同時に供給されるデータの各々を、対応するデータ入力経路の各々に出力する駆動力調整回路と、
を含むメモリ回路。
(付記2)
前記駆動力調整回路は、前記複数のデータ入力経路の各々に接続された複数のドライバ回路を含み、
前記複数のドライバ回路の各々は、互いに並列接続され且つ出力端が対応するデータ入力経路に接続された複数のインバータ回路を含み、
前記複数のインバータ回路のうち有効化されるインバータ回路の数によって前記駆動力を調整する
付記1に記載のメモリ回路。
(付記3)
前記複数のデータ入力経路のいずれか2つ以上を介して前記メモリセルに同時に供給される複数のデータの各々が同一値となるようにデータ変換処理を行うデータ変換回路を更に含む
付記1または付記2に記載のメモリ回路。
(付記4)
前記メモリセルを含む複数のメモリセルのうち、データの書き込み先となるメモリセルを、前記複数のデータ入力経路の各々に供給されるデータ毎に指定するアドレス信号に基づいて、前記複数のデータ入力経路のうちの1つに供給されるデータの書き込み先が他のデータ入力経路に供給されるデータの書き込み先と一致する場合の一致数を、前記複数のデータ入力経路の各々について示す判定信号を生成する判定回路を更に含み、
前記駆動力調整回路は、前記判定信号に基づいて前記駆動力を調整する
付記1から付記3のいずれか1つに記載のメモリ回路。
(付記5)
前記複数のデータ入力経路の各々に接続され、前記メモリセルにデータを書き込む場合にオン状態とされる複数のトランジスタと、
前記複数のトランジスタのうち、前記メモリセルを書き込み先とするデータが供給されるデータ入力経路に接続されたトランジスタのゲートにクロック信号を供給するクロックドライバと、
を更に含む付記1から付記4のいずれか1つに記載のメモリ回路。
(付記6)
複数のデータ入力経路を有するメモリセルと、
前記メモリセルに接続され、前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数の増加に伴って静電容量が増加する可変容量回路と、
を含むメモリ回路。
(付記7)
前記可変容量回路は、
前記メモリセルの第1ノードに各々の一端が接続された複数の第1ノード側トランスファーゲートと、
前記複数の第1ノード側トランスファーゲートの各々の他端に各々の入力端が接続された複数の第1ノード側NOT回路と、
前記メモリセルの第2ノードに各々の一端が接続された複数の第2ノード側トランスファーゲートと、
前記複数の第2ノード側トランスファーゲートの各々の他端に各々の入力端が接続された複数の第2ノード側NOT回路と、
を含み、
前記複数の第1ノード側トランスファーゲートおよび前記複数の第2ノード側トランスファーゲートのうち、オン状態とされるトランスファーゲートの数によって静電容量を変化させる
付記6に記載のメモリ回路。
(付記8)
前記複数のデータ入力経路のいずれか2つ以上を介して前記メモリセルに同時に供給される複数のデータの各々が同一値となるようにデータ変換処理を行うデータ変換回路を更に含む
付記6または付記7に記載のメモリ回路。
(付記9)
前記メモリセルを含む複数のメモリセルのうち、データの書き込み先となるメモリセルを、前記複数のデータ入力経路の各々に供給されるデータ毎に指定するアドレス信号に基づいて、前記複数のデータ入力経路のうちの1つに供給されるデータの書き込み先と、他のデータ入力経路に供給されるデータの書き込み先とが一致しているか否かを、前記複数のデータ入力経路の各々について示す判定信号を生成する判定回路を更に含み、
前記可変容量回路は、クロックイネーブル信号に基づいて静電容量を変化させる
付記6から付記8のいずれか1つに記載のメモリ回路。
(付記10)
前記複数のデータ入力経路の各々に接続され、前記メモリセルにデータを書き込む場合にオン状態とされる複数のトランジスタと、
前記複数のトランジスタのうち、前記メモリセルを書き込み先とするデータが供給されるデータ入力経路に接続されたトランジスタのゲートにクロック信号を供給するクロックドライバと、
を更に含む付記6から付記9のいずれか1つに記載のメモリ回路。
(付記11)
複数のデータ入力経路を有するメモリセルを含むメモリ回路の制御方法であって、
前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数の増加に伴って低下する駆動力によって前記メモリセルに同時に供給されるデータの各々を対応するデータ入力経路に出力する
メモリ回路の制御方法。
(付記12)
複数のデータ入力経路を有するメモリセルを含むメモリ回路の制御方法であって、
前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数の増加に伴って前記メモリセルに接続された可変容量回路の静電容量を増加させる
メモリ回路の制御方法。
1、1A メモリ回路
10、10<0>〜10<7> マルチポートメモリセル
10a、10a<0>〜10a<7> マルチポートメモリセル
11 メモリセル
20 アドレスデコーダ
30<0>〜30<7> クロックドライバ
40 同時書き込み判定回路
50 データ変換回路
60 駆動力調整回路
100〜105 出力段インバータ回路
600〜605 ドライバ回路
c0〜c5 クロック入力経路
d0〜d5 データ入力経路
T10〜T15、T20〜T25 トランジスタ

Claims (7)

  1. 複数のデータ入力経路を有するメモリセルと、
    前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数を示す判定信号を生成する判定回路と、
    前記判定信号によって示されるデータの数の増加に伴って低下する駆動力によって前記メモリセルに同時に供給されるデータの各々を、対応するデータ入力経路の各々に出力する駆動力調整回路と、
    を含むメモリ回路。
  2. 前記駆動力調整回路は、前記複数のデータ入力経路の各々に接続された複数のドライバ回路を含み、
    前記複数のドライバ回路の各々は、互いに並列接続され且つ出力端が対応するデータ入力経路に接続された複数のインバータ回路を含み、
    前記複数のインバータ回路のうち有効化されるインバータ回路の数によって前記駆動力を調整する
    請求項1に記載のメモリ回路。
  3. 前記複数のデータ入力経路のいずれか2つ以上を介して前記メモリセルに同時に供給される複数のデータの各々が同一値となるようにデータ変換処理を行うデータ変換回路を更に含む
    請求項1または請求項2に記載のメモリ回路。
  4. 前記判定回路は、前記メモリセルを含む複数のメモリセルのうち、データの書き込み先となるメモリセルを、前記複数のデータ入力経路の各々に供給されるデータ毎に指定するアドレス信号に基づいて、前記複数のデータ入力経路のうちの1つに供給されるデータの書き込み先が他のデータ入力経路に供給されるデータの書き込み先と一致する場合の一致数を、前記複数のデータ入力経路の各々について示す前記判定信号を生成す
    求項1から請求項3のいずれか1項に記載のメモリ回路。
  5. 前記複数のデータ入力経路の各々に接続され、前記メモリセルにデータを書き込む場合にオン状態とされる複数のトランジスタと、
    前記複数のトランジスタのうち、前記メモリセルを書き込み先とするデータが供給されるデータ入力経路に接続されたトランジスタのゲートにクロック信号を供給するクロックドライバと、
    を更に含む請求項1から請求項4のいずれか1項に記載のメモリ回路。
  6. 複数のデータ入力経路を有するメモリセルと、
    前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数を示す判定信号を生成する判定回路と、
    前記メモリセルに接続され、前記判定信号によって示されるデータの数の増加に伴って静電容量が増加する可変容量回路と、
    を含むメモリ回路。
  7. 複数のデータ入力経路を有するメモリセルを含むメモリ回路の制御方法であって、
    前記複数のデータ入力経路のうちのいずれか2つ以上を介して前記メモリセルに同時に供給されるデータの数を示す判定信号を生成し、
    前記判定信号によって示されるデータの数の増加に伴って低下する駆動力によって前記メモリセルに同時に供給されるデータの各々を対応するデータ入力経路に出力する
    メモリ回路の制御方法。
JP2016148904A 2016-07-28 2016-07-28 メモリ回路およびメモリ回路の制御方法 Active JP6780347B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016148904A JP6780347B2 (ja) 2016-07-28 2016-07-28 メモリ回路およびメモリ回路の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016148904A JP6780347B2 (ja) 2016-07-28 2016-07-28 メモリ回路およびメモリ回路の制御方法

Publications (2)

Publication Number Publication Date
JP2018018566A JP2018018566A (ja) 2018-02-01
JP6780347B2 true JP6780347B2 (ja) 2020-11-04

Family

ID=61076153

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016148904A Active JP6780347B2 (ja) 2016-07-28 2016-07-28 メモリ回路およびメモリ回路の制御方法

Country Status (1)

Country Link
JP (1) JP6780347B2 (ja)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0630072B2 (ja) * 1984-12-28 1994-04-20 富士通株式会社 半導体記憶装置
JPS61288517A (ja) * 1985-06-14 1986-12-18 Hitachi Micro Comput Eng Ltd 半導体集積回路装置
JP3118472B2 (ja) * 1991-08-09 2000-12-18 富士通株式会社 出力回路
JPH0594414A (ja) * 1991-10-02 1993-04-16 Nec Corp バスフアイト防止回路付きバスドライバ
US6229845B1 (en) * 1999-02-25 2001-05-08 Qlogic Corporation Bus driver with data dependent drive strength control logic
JP4408366B2 (ja) * 2003-11-12 2010-02-03 株式会社リコー 半導体記憶装置
JP6070315B2 (ja) * 2013-03-18 2017-02-01 富士通株式会社 レジスタファイル装置および情報処理装置

Also Published As

Publication number Publication date
JP2018018566A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
JP6224401B2 (ja) 半導体メモリ
JP6553713B2 (ja) 電子回路
US10854284B1 (en) Computational memory cell and processing array device with ratioless write port
US10943648B1 (en) Ultra low VDD memory cell with ratioless write port
US9780788B2 (en) Muller C-element as majority gate for self-correcting triple modular redundant logic with low-overhead modes
US20130082736A1 (en) Semiconductor device including multiple-input logic circuit with operation rate balanced with driving ability
US10453520B2 (en) Multi-port memory and semiconductor device
JP4267006B2 (ja) 半導体記憶装置
JPH06215576A (ja) 半導体記憶装置
US10754584B2 (en) Data processing method and system for 2R1W memory
US7215579B2 (en) System and method for mode register control of data bus operating mode and impedance
TWI593235B (zh) 延遲電路與包括該延遲電路之半導體設備
JP6780347B2 (ja) メモリ回路およびメモリ回路の制御方法
US6693838B2 (en) Semiconductor memory device equipped with refresh timing signal generator
JP2013025848A (ja) 半導体記憶装置及び半導体記憶装置の制御方法
JP6480838B2 (ja) 半導体記憶装置
JP4408833B2 (ja) 半導体記憶装置
US11610627B2 (en) Write masked latch bit cell
KR100761402B1 (ko) 내부신호 발생기
JP6780041B2 (ja) 半導体記憶装置
US20210295930A1 (en) Semiconductor integrated circuit and semiconductor storage device
EP3863014A1 (en) Computational memory cell and processing array device with ratioless write port
JP2001237691A (ja) 半導体集積回路装置
WO2020003519A1 (ja) 半導体記憶装置およびデータ書き込み方法
KR20230148762A (ko) 기입 동작을 위한 워드 라인 지연 인터로크 회로

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200421

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200915

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200928

R150 Certificate of patent or registration of utility model

Ref document number: 6780347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150