IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

<>
  • 特開-半導体集積回路および半導体装置 図1
  • 特開-半導体集積回路および半導体装置 図2
  • 特開-半導体集積回路および半導体装置 図3
  • 特開-半導体集積回路および半導体装置 図4
  • 特開-半導体集積回路および半導体装置 図5
  • 特開-半導体集積回路および半導体装置 図6
  • 特開-半導体集積回路および半導体装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024106442
(43)【公開日】2024-08-08
(54)【発明の名称】半導体集積回路および半導体装置
(51)【国際特許分類】
   H03K 23/00 20060101AFI20240801BHJP
【FI】
H03K23/00 B
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2023010691
(22)【出願日】2023-01-27
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】白石 幹雄
(57)【要約】
【課題】消費電力が低減された半導体集積回路および半導体装置を提供すること。
【解決手段】半導体集積回路の第1フリップフロップおよび第2フリップフロップのそれぞれのクロック端子にクロック信号が入力される。第2フリップフロップのQ端子が出力する第1信号が第1フリップフロップのD端子に入力される。インバータは、第1フリップフロップのQ端子が出力する第2信号を反転し、第2信号を反転した第3信号が第2フリップフロップのD端子に入力される。各加算器は入力されるキャリー信号に基づく加算によってグレイコードのうちのそれぞれ異なるビットを演算する。回路ブロックは、第1加算器に入力されるキャリー信号を第1信号と第3信号との論理積の演算によって生成する。回路ブロックは、他の加算器に入力されるキャリー信号を第1信号と第2信号とに基づいて生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
第1クロック信号のカウント値に応じたLビット(ただしLは3以上の整数)のグレイコードを生成する半導体集積回路であって、
前記第1クロック信号がクロック端子に入力される第1フリップフロップと、
前記第1クロック信号がクロック端子に入力される第2フリップフロップであって、前記第2フリップフロップのQ端子が出力する第1信号が前記第1フリップフロップのD端子に入力される、前記第2フリップフロップと、
前記第1フリップフロップのQ端子が出力する第2信号に対して反転の演算を行うインバータであって、前記インバータが出力する前記第2信号を反転した第3信号が前記第2フリップフロップのD端子に入力される、前記インバータと、
それぞれは入力されるキャリー信号に基づく加算によって前記グレイコードのうちのそれぞれ異なるビットを演算する(L-1)個の加算器と、
前記(L-1)個の加算器のうちの第1加算器に入力されるキャリー信号を前記第1信号と前記第3信号との論理積の演算によって生成し、前記(L-1)個の加算器のうちの第2加算器から第(L-1)加算器までのそれぞれに入力されるキャリー信号を前記第1信号と前記第2信号とに基づいて生成する、回路ブロックと、
前記第1信号を出力する第1端子と、
前記(L-1)個の加算器から出力される信号のセットを出力する(L-1)個の第2端子と、
を備える半導体集積回路。
【請求項2】
前記(L-1)個の加算器のそれぞれは、
第3フリップフロップと、
入力されるキャリー信号と前記第3フリップフロップのQ端子が出力する第4信号との排他的論理和を演算し、前記排他的論理和の演算によって得られた信号を前記第3フリップフロップのD端子に入力する排他的論理和回路と、
を備え、
前記(L-1)個の第2端子は、前記(L-1)個の加算器のそれぞれの第4信号のセットを出力する、
請求項1に記載の半導体集積回路。
【請求項3】
前記回路ブロックは、
前記第1信号を反転し、前記第1信号を反転した第5信号と前記第2信号との論理積を演算し、前記(L-1)個の加算器のうちの前記第1加算器と異なる第2加算器に入力されるキャリー信号を、前記第5信号と前記第2信号との論理積の演算によって得られた第6信号と、前記第1加算器の第4信号と、の論理積の演算によって生成する、
請求項2に記載の半導体集積回路。
【請求項4】
請求項1から3の何れか一項に記載の半導体集積回路と、
第2クロック信号を生成する発振回路と、
前記半導体集積回路の前記第1端子および前記(L-1)個の第2端子から出力されるグレイコードを前記第2クロック信号に基づくタイミングで自身に格納するレジスタと、
を備える半導体装置。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、半導体集積回路および半導体装置に関する。
【背景技術】
【0002】
クロックのカウント値に応じたグレイコードを出力する半導体集積回路として、グレイコードカウンタがある。グレイコードは、カウント値の変化に対して1ビットしか変化しないコードである。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008-131071号公報
【非特許文献】
【0004】
【非特許文献1】M. Cohen, and S. Even, "A Gray code counter," IEEE Transactions on Computers, vol. C-18, no.7, pp. 662-664, Jul. 1969.
【発明の概要】
【発明が解決しようとする課題】
【0005】
一つの実施形態は、消費電力が低減された半導体集積回路および半導体装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態によれば、半導体集積回路は、第1クロック信号のカウント値に応じたLビット(ただしLは3以上の整数)のグレイコードを生成する。半導体集積回路は、第1フリップフロップと、第2フリップフロップと、インバータと、(L-1)個の加算器と、回路ブロックと、第1端子と、(L-1)個の第2端子と、を備える。第1フリップフロップのクロック端子に第1クロック信号が入力される。第2フリップフロップのクロック端子に第1クロック信号が入力される。第2フリップフロップのQ端子が出力する第1信号が第1フリップフロップのD端子に入力される。インバータは、第1フリップフロップのQ端子が出力する第2信号に対して反転の演算を行う。インバータが出力する第2信号を反転した第3信号が第2フリップフロップのD端子に入力される。(L-1)個の加算器のそれぞれは入力されるキャリー信号に基づく加算によってグレイコードのうちのそれぞれ異なるビットを演算する。回路ブロックは、(L-1)個の加算器のうちの第1加算器に入力されるキャリー信号を第1信号と第3信号との論理積の演算によって生成する。回路ブロックは、(L-1)個の加算器のうちの第2加算器から第(L-1)加算器までのそれぞれに入力されるキャリー信号を第1信号と第2信号とに基づいて生成する。第1端子は第1信号を出力する。(L-1)個の第2端子は、(L-1)個の加算器から出力される信号のセットを出力する。
【図面の簡単な説明】
【0007】
図1】第1の実施形態の半導体集積回路であるグレイコードカウンタの回路構成の一例を示す図。
図2】第1の実施形態のグレイコードカウンタにおけるクロック信号およびリセット信号に応じた各種信号の遷移の一例を示すタイミングチャート。
図3図2に示したタイミングチャートに対応した真理値表。
図4】第2の実施形態のメモリシステムの構成の一例を示す模式的な図。
図5】第2の実施形態のブリッジチップの一部の構成の一例を示す模式的な図。
図6】第2の実施形態の周波数カウンタの構成の一例を示す模式的な図。
図7】第2の実施形態の周波数カウンタにおける各種信号の波形の一例を示すタイミングチャート。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、実施形態にかかる半導体集積回路および半導体装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0009】
(第1の実施形態)
図1は、第1の実施形態の半導体集積回路であるグレイコードカウンタの回路構成の一例を示す図である。以降では、信号のレベルに対応する論理値に関し、Hステートは「1」、「L」ステートは「0」を表すこととして説明する。
【0010】
グレイコードカウンタ1は、それに入力されるクロック信号CLKのカウント値に応じたLビット(ただしLは3以上の整数)のグレイコードを出力する。
【0011】
グレイコードカウンタ1は、クロック信号CLKが入力されるクロック端子TCLKと、リセット信号RSTNが入力されるリセット入力端子TRSTNと、Lビットのグレイコードのそれぞれ異なるビットを出力するL個のデータ出力端子TQ0~TQ(L-1)と、を備える。
【0012】
本明細書では、グレイコードの最下位ビットを第0ビットと表記し、グレイコードの最下位ビットからi番目(ただしiは0から(L-1)までの整数)のビットを第iビットと表記する。データ出力端子TQiは、グレイコードの第iビットを出力することとする。グレイコードの第iビットのデータを示す信号をデータ信号Qiと表記する。以降では、データ出力端子TQ0~TQ(L-1)のそれぞれをデータ出力端子TQと表記する場合がある。また、データ信号Q0~Q(L-1)を総称して、データ信号Qと表記する場合がある。
【0013】
グレイコードカウンタ1は、第1回路ブロック11と、第2回路ブロック12と、(L-1)個の加算器AD1~AD(L-1)と、を備える。以降では、加算器AD1~AD(L-1)のそれぞれを加算器ADと表記する場合がある。
【0014】
各加算器ADには、キャリー信号Cが第2回路ブロック12から入力される。各加算器ADは、入力されるキャリー信号Cに基づく加算によってグレイコードのうちのそれぞれ異なるビットを演算し、演算によって得られたビットのデータをデータ信号Qとして出力する。以降、加算器ADj(ただしjは1から(L-1)までの整数)に入力されるキャリー信号Cをキャリー信号C(j-1)と表記する。
【0015】
加算器ADjは、排他的論理和(換言するとXOR)の演算を行うXOR回路XORjと、フリップフロップFFjと、を備える。なお、フリップフロップFFjは、Q端子、D端子、クロック端子、およびリセット端子を備えるDフリップフロップである。
【0016】
XOR回路XORjは2つの入力端子を備え、当該2つの入力端子のうちの一には、フリップフロップFFjのQ端子が接続される。XOR回路XORjの2つの入力端子のうちの他には、第2回路ブロック12が接続され、第2回路ブロック12からキャリー信号Cとしてキャリー信号C(j-1)が入力される。XOR回路XORjの出力端子は、フリップフロップFFjのD端子に接続される。
【0017】
フリップフロップFFjのQ端子から出力されるデータは、データ信号Qjとされる。よって、XOR回路XORjは、キャリー信号Cが「1」であるとき、データ信号Qjを反転して出力し、キャリー信号Cが「0」であるとき、データ信号Qjを反転せずに出力する。
【0018】
フリップフロップFFjは、XOR回路XORjからD端子に入力された信号を次のクロックサイクル(正確にはクロック信号CLKの次の立ち上がりタイミング)で取り込んで、取り込んだ信号をQ端子から出力する。
【0019】
よって、キャリー信号C(j-1)が「1」であるとき、加算器ADjは、現在のデータ信号Qjが表す値に「1」を加算するビット演算を行って、次のクロックサイクルにおいて、ビット演算後の信号をデータ信号Qjとして出力する。キャリー信号C(j-1)が「0」であるとき、加算器ADjは、現在のデータ信号Qjが表す値を変化させずに、次のクロックサイクルにおいて、データ信号Qjとして出力する。
【0020】
フリップフロップFFjのQ端子は、データ出力端子TQ1~TQ(L-1)のうちのデータ出力端子TQjに接続される。よって、データ出力端子TQ1~TQ(L-1)は、加算器AD1~AD(L-1)から出力されるデータ信号Q1~Q(L-1)のセットを出力する。
【0021】
フリップフロップFFjのリセット端子には、リセット信号RSTNが入力される。なお、この例では、フリップフロップFFjは、リセット信号RSTNが「0」であるときにリセットされることとしている。
【0022】
第2回路ブロック12は、第1回路ブロック11から入力される参照信号に基づき、加算器AD1~AD(L-1)に入力されるキャリー信号C、即ちキャリー信号C0~C(L-2)、を演算する。
【0023】
第2回路ブロック12は、リップルキャリー方式でキャリー信号C0~C(L-2)を演算してもよいし、キャリールックアヘッド方式でキャリー信号C0~C(L-2)を演算してもよい。図1に示す例では、第2回路ブロック12は、リップルキャリー方式でキャリー信号C0~C(L-2)を演算する構成を備える。
【0024】
第2回路ブロック12は、直列に接続された(L-2)個の要素ブロック13_1~13_(L-2)を備える。要素ブロック13_1~13_(L-2)を総称して、要素ブロック13と表記することがある。
【0025】
要素ブロック13_1から要素ブロック13_(L-2)まで、キャリー信号Cを生成するために使用される信号であるキャリー生成信号Pが伝播される。各要素ブロック13は、自身に伝播してきたキャリー生成信号Pに基づき、キャリー信号Cと、後段の要素ブロック13に伝播させるキャリー生成信号Pと、を生成する。要素ブロック13_m(ただしmは1から(L-2)までの整数)が生成するキャリー生成信号Pを、キャリー生成信号Pmと表記する。
【0026】
要素ブロック13_1は、アンド回路ANp1を備え、アンド回路ANp1の出力端子からキャリー生成信号P1を出力する。要素ブロック13_1の構成のこれ以上の詳細を説明する前に、まず、要素ブロック13_2~13_(L-2)の構成の詳細を説明する。
【0027】
要素ブロック13_2~13_(L-2)の構成は共通する。要素ブロック13_k(ただしkは2から(L-2)までの整数)は、キャリー生成信号P(k-1)と、データ信号Q(k-1)と、に基づいて、キャリー信号C(k-1)と、キャリー生成信号Pkと、を生成する。
【0028】
要素ブロック13_kは、2つのアンド回路ANpk,ANckと、インバータINVkと、を備える。アンド回路ANpk,ANckのそれぞれは、2つの入力端子を備える。
【0029】
アンド回路ANckの2つの入力端子のうちの一には、加算器AD(k-1)が備えるフリップフロップFF(k-1)のQ端子が接続され、フリップフロップFF(k-1)のQ端子から出力されるデータ信号Q(k-1)が入力される。アンド回路ANckの2つの入力端子のうちの他には、要素ブロック13_(k-1)、より正確には要素ブロック13_(k-1)が備えるアンド回路ANp(k-1)の出力端子、が接続され、キャリー生成信号P(k-1)が入力される。アンド回路ANckの出力端子は、加算器ADkが備えるXOR回路XORkの2つの入力端子のうちの他に接続される。
【0030】
アンド回路ANckは、データ信号Q(k-1)とキャリー生成信号P(k-1)との論理積を演算し、当該論理積の演算によって得られた信号は、キャリー信号C(k-1)としてXOR回路XORkに入力される。
【0031】
インバータINVkの入力端子には、フリップフロップFF(k-1)のQ端子が接続され、フリップフロップFF(k-1)のQ端子から出力されるデータ信号Q(k-1)が入力される。インバータINVkは、データ信号Q(k-1)に対し、反転の演算を実行する。
【0032】
アンド回路ANpkの2つの入力端子のうちの一には、要素ブロック13_(k-1)が備えるアンド回路ANp(k-1)の出力端子が接続され、アンド回路ANp(k-1)から出力されるキャリー生成信号P(k-1)が入力される。アンド回路ANpkの2つの入力端子のうちの他には、インバータINVkの出力端子が接続され、インバータINVkによって反転されたデータ信号Q(k-1)が入力される。アンド回路ANpkは、キャリー生成信号P(k-1)と反転されたデータ信号Q(k-1)との論理積を演算する。当該論理積の演算によって得られた信号は、キャリー生成信号Pkとして要素ブロック13_kから出力される。
【0033】
このように、キャリー生成信号Pは、要素ブロック13_2から要素ブロック13_(L-2)まで伝播する。各要素ブロック13_kは、前段の要素ブロック13_(k-1)から伝播したキャリー生成信号P(k-1)と、加算器AD(k-1)から出力されるデータ信号Q(k-1)と、に基づいてキャリー信号C(k-1)を生成する。また、各要素ブロック13_kは、キャリー生成信号P(k-1)と、データ信号Q(k-1)と、に基づいてキャリー生成信号Pkを新たに生成し、生成したキャリー生成信号Pkを後段の要素ブロック13_(k+1)に伝播させる。
【0034】
要素ブロック13_2~13_(L-2)のうちの最後段の要素ブロック13に該当する要素ブロック13_(L-2)では、アンド回路ANp(L-2)の出力端子は、加算器AD(L-1)が備えるXOR回路XOR(L-1)の2つの入力端子のうちの他に接続される。アンド回路ANp(L-2)の出力端子から出力されるキャリー生成信号P(L-2)は、キャリー信号C(L-2)としてXOR回路XOR(L-1)に入力される。
【0035】
第1回路ブロック11は、クロック信号CLKに基づき、第2回路ブロック12に供給される参照信号を生成する。
【0036】
ここで、実施形態と比較される技術について説明する。実施形態と比較される技術を比較例と表記する。比較例によれば、参照信号を生成するための回路ブロックは、Dフリップフロップを備える。参照信号を生成するための回路ブロックが備えるDフリップフロップを、参照フリップフロップと表記する。
【0037】
比較例では、参照フリップフロップのクロック端子にはクロック信号が入力され、参照フリップフロップが保持するデータは、クロックサイクル毎に反転する。回路ブロックは、クロックサイクル毎に反転する参照フリップフロップが保持するデータに基づき、参照信号を生成する。
【0038】
グレイコードはクロックサイクル毎に1ビットしか変化しないため、グレイコードの各ビットを保持するフリップフロップ(図1に示す構成では例えばフリップフロップFF1~FF(L-1)など)におけるデータの反転に起因する消費電力が小さい。比較例のように、参照信号の生成のためにクロックサイクル毎にデータが反転するフリップフロップが参照フリップフロップとして設けられた場合、参照フリップフロップにおけるデータの反転に起因する消費電力は、グレイコードの各ビットを保持するフリップフロップにおけるデータの反転に起因する消費電力に比べて顕著に大きく、グレイコードカウンタの消費電力が増加する。
【0039】
そこで、実施形態では、参照フリップフロップが保持するデータが反転する頻度を比較例に比べて少なくなるよう、第1回路ブロック11が構成される。参照フリップフロップが保持するデータの反転の頻度が低減されることで、参照フリップフロップのデータの反転に起因する消費電力が低減され、これによってグレイコードカウンタ1の消費電力が低減される。
【0040】
具体的には、第1回路ブロック11は、2つの参照フリップフロップFFr1、FFr2と、インバータINVrと、を備える。参照フリップフロップFFr1、FFr2のそれぞれは、Q端子、D端子、クロック端子、およびリセット端子を備えるDフリップフロップである。
【0041】
参照フリップフロップFFr1、FFrのクロック端子にはクロック信号CLKが入力され、参照フリップフロップFFr1、FFrのリセット端子には、リセット信号RSTNが入力される。なお、この例では、参照フリップフロップFFr1、FFrは、リセット信号RSTNが「0」であるときにリセットされることとしている。
【0042】
参照フリップフロップFFr1のQ端子は、インバータINVrの入力端子に接続される。インバータINVrの出力端子は、参照フリップフロップFFr2のD端子に接続される。参照フリップフロップFFr2のQ端子は、参照フリップフロップFFr1のD端子に接続される。
【0043】
よって、参照フリップフロップFFr1、FFr2が保持するデータは、クロック信号CLKのクロックサイクルの2倍の時間間隔で反転する。参照フリップフロップFFr1、FFr2が保持するデータの反転の頻度が、比較例にかかる参照フリップフロップが保持するデータの反転の頻度よりも小さくされ、比較例に比べてグレイコードカウンタ1の消費電力が低減される。
【0044】
参照フリップフロップFFr2のQ端子が出力する信号は、データ信号Q0とされる。参照フリップフロップFFr2のQ端子は、データ端子TQ0に接続される。データ端子TQ0は、参照フリップフロップFFr2のQ端子から出力されたデータ信号Q0を出力する。
【0045】
参照フリップフロップFFr2のQ端子が出力する信号(つまりデータ信号Q0)と、参照フリップフロップFFr1のQ端子が出力する信号と、インバータINVrの出力端子が出力する信号と、が参照信号として第2回路ブロック12に入力される。
【0046】
参照フリップフロップFFr1のQ端子が出力する信号を、便宜的に、データ信号Q(-1)と表記する。なお、データ信号Q(-1)は、グレイコードカウンタ1から外には出力されない。
【0047】
インバータINVrの出力端子が出力する信号を、便宜的に、キャリー生成信号P0と表記する。
【0048】
第2回路ブロック12では、要素ブロック13_1は、データ信号Q0、データ信号Q(-1)、およびキャリー生成信号P0に基づいて、キャリー信号C0およびキャリー生成信号P1を生成する。そのための構成として、要素ブロック13_1は、2つのアンド回路ANp1、ANc1と、インバータINV1と、を備える。
【0049】
アンド回路ANc1の2つの入力端子のうちの一には、第1回路ブロック11が備える参照フリップフロップFFr2のQ端子が接続され、参照フリップフロップFFr2のQ端子から出力されるデータ信号Q0が入力される。アンド回路ANc1の2つの入力端子のうちの他には、インバータINVrの出力端子が接続され、インバータINVrの出力端子から出力されるキャリー生成信号P0が入力される。
【0050】
アンド回路ANc1の出力端子は、加算器AD1が備えるXOR回路XOR1の2つの入力端子のうちの他に接続される。アンド回路ANc1は、データ信号Q0とキャリー生成信号P0との論理積を演算し、当該論理積の演算によって得られた信号は、キャリー信号C0としてXOR回路XOR1に入力される。
【0051】
インバータINV1の入力端子には、参照フリップフロップFFr2のQ端子が接続され、参照フリップフロップFFr2のQ端子から出力されるデータ信号Q0が入力される。インバータINV1は、データ信号Q0に対し、反転の演算を実行する。
【0052】
アンド回路ANp1の2つの入力端子のうちの一には、参照フリップフロップFFr1のQ端子が接続され、参照フリップフロップFFr1のQ端子から出力されるデータ信号Q(-1)が入力される。アンド回路ANp1の2つの入力端子のうちの他には、インバータINV1の出力端子が接続され、インバータINV1によって反転されたデータ信号Q0が入力される。アンド回路ANp1は、データ信号Q(-1)と反転されたデータ信号Q0との論理積を演算する。当該論理積の演算によって得られた信号は、キャリー生成信号P1として要素ブロック13_1から出力される。
【0053】
なお、図1に示した例では、第2回路ブロック12は、リップルキャリー方式でキャリー信号C0~C(L-2)を演算した。前述したように、第2回路ブロック12は、キャリールックアヘッド方式でキャリー信号C0~C(L-2)を演算するよう構成されてもよい。キャリールックアヘッド方式が適用される場合、第2回路ブロック12は、例えば、要素ブロック13_2~13_(L-2)に替えて、キャリー生成信号P1に基づいてキャリー信号C1~C(L-2)を一括に演算する演算回路を有するよう、構成される。
【0054】
図2は、第1の実施形態のグレイコードカウンタ1におけるクロック信号CLKおよびリセット信号RSTNに応じた各種信号の遷移の一例を示すタイミングチャートである。なお、本図では、理解を簡単にするために、Lは「4」であることとしている。
【0055】
リセット信号RSTNによってリセットされているとき(図2においてタイミングt0の直前)、キャリー生成信号P0は「1」であり、キャリー生成信号P1、P2、キャリー信号C,およびデータ信号Qは「0」である。
【0056】
そして、リセット信号RSTNによるリセットが解除されると(タイミングt0)、参照フリップフロップFFr1のQ端子から出力されるデータ信号Q(-1)、データ信号Q(-1)を反転した信号であるキャリー生成信号P0、および参照フリップフロップFFr2のQ端子から出力されるデータ信号Q0は、クロック信号CLKを4分周した波形で遷移することが読み取れる。つまり、クロック信号CLKのクロックサイクルをCCと表記すると、参照フリップフロップFFr1、FFr2が保持するデータは、4CCのサイクルで周期的に変化する。
【0057】
図3は、図2に示したタイミングチャートに対応した真理値表である。本図から、4ビットのグレイコードQ0-Q3はクロックサイクル毎にいずれか1ビットが変化し、この4ビットのグレイコードQ0-Q3のデータの生成の元となるデータ信号Q(-1)は、2クロックサイクル毎に反転していることが読み取れる。
【0058】
このように、第1の実施形態のグレイコードカウンタ1は、参照フリップフロップFFr1と、参照フリップフロップFFr2と、インバータINVrと、(L-1)個の加算器AD1~AD(L-1)と、第2回路ブロック12と、データ出力端子TQ0~TQ(L-1)と、を備える。参照フリップフロップFFr1のクロック端子および参照フリップフロップFFr2のクロック端子にはクロック信号CLKが入力される。参照フリップフロップFFr2のQ端子が出力する信号であるデータ信号Q0は、参照フリップフロップFFr1のD端子に入力される。インバータINVrは、参照フリップフロップFFr1のQ端子が出力するデータ信号Q(-1)に対して反転の演算を行う。インバータINVrによって反転されたデータ信号Q(-1)、つまりキャリー生成信号P0は、参照フリップフロップFFr2のD端子に入力される。加算器AD1~AD(L-1)のそれぞれは、入力されるキャリー信号Cに基づく加算によって、(L-1)ビットのグレイコードのうちのそれぞれ異なるビットを演算する。第2回路ブロック12のうちの要素ブロック13_1は、データ信号Q0とキャリー生成信号P0とに対するアンド回路ANc1による論理積の演算によって、キャリー信号C0を生成する。また、第2回路ブロック12のうちの要素ブロック13_2~13_(L-2)は、データ信号Q0とデータ信号Q(-1)とから得られるキャリー生成信号P1に基づいて加算器AD2~AD(L-1)に入力されるキャリー信号C1~C(L-2)を生成する。
【0059】
よって、参照信号の演算に必要とされる参照フリップフロップ(例えば参照フリップフロップFFr1,FFr2)が保持するデータが反転する頻度が低減され、これによってグレイコードカウンタ1の消費電力が低減される。
【0060】
また、第1の実施形態によれば、各加算器AD(加算器ADjと表記する)は、フリップフロップFFjと、XOR回路XORjと、を備える。XOR回路XORjは、フリップフロップFFjのQ端子が出力する信号、即ち信号Qjと、キャリー信号C(j-1)と、の排他的論理和によって得られた信号をフリップフロップFFjのD端子に入力する。
【0061】
よって、各加算器ADは、入力されるキャリー信号Cに基づく加算を行うことができる。
【0062】
なお、第1の実施形態によれば、第2回路ブロック12は、リップルキャリー方式に基づいてキャリー信号Cを生成する。例えば、第2回路ブロック12は、データ信号Q0をインバータINV1によって反転し、反転したデータ信号Q0とデータ信号Q(-1)との論理積をアンド回路ANp1によって演算する。第2回路ブロック12は、アンド回路ANp1によって演算された信号であるキャリー生成信号P1と、加算器AD1が出力するデータ信号Q1と、に対するアンド回路ANc2による論理積の演算によって、加算器AD2に入力するキャリー信号C1を生成する。
【0063】
(第2の実施形態)
グレイコードは、クロックサイクルあたりに1ビットしか変化しない。よって、グレイコードカウンタは、グレイコードカウンタの出力値をグレイコードカウンタの動作とは非同期に取得したときに発生し得るエラーの影響を抑制できるという特長がある。その特長により、グレイコードカウンタは、例えば2つの異なるクロック信号を扱う装置で活用され得る。
【0064】
第2の実施形態のグレイコードは、第1のクロック信号に同期してデータが入力されて、当該データを第2のクロック信号に基づいて処理する半導体装置に備えられる。このような半導体装置を備えるシステムの一例として、メモリシステムSYSについて説明する。
【0065】
図4は、第2の実施形態のメモリシステムSYSの構成の一例を示す模式的な図である。
【0066】
メモリシステムSYSは、ホストHSに接続可能である。ホストHSとメモリシステムSYSとを接続する通信路および当該通信路を介した通信が準拠する規格は、特定の規格に限定されない。ホストHSは、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどである。ホストHSは、メモリシステムSYSに対し、ライトコマンドまたはリードコマンドなどを含む種々のコマンドを送信する。
【0067】
メモリシステムSYSは、半導体記憶装置100、メモリコントローラMC、およびRAM(Random Access Memory)200を含む。
【0068】
メモリコントローラMCは、半導体記憶装置100の制御を行う制御回路である。メモリコントローラMCは、半導体記憶装置100の制御の一環として、ホストHSからのアクセスコマンドに応じたホストHSと半導体記憶装置100との間のデータ転送を実行する。
【0069】
RAM200は、メモリコントローラMCに、バッファエリア、キャッシュエリア、プログラムがロードされるエリア、などの記憶領域を提供する。例えば、メモリコントローラMCは、ホストHSと半導体記憶装置100との間の転送データをRAM200にバッファすることができる。また、メモリコントローラMCは、ファームウェアプログラムをRAM200にロードして使用したり、各種管理データをRAM200にバッファまたはキャッシュしたりする。
【0070】
半導体記憶装置100は、外部端子群T、ブリッジチップBC、および複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3を備える。
【0071】
なお、ブリッジチップBCは、第2の実施形態の半導体装置の一例である。
【0072】
複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3のそれぞれは、例えば、NAND型フラッシュメモリ等の不揮発性メモリのメモリチップである。
【0073】
半導体記憶装置100は、メモリチップCP0-0~CP0-3およびメモリチップCP1-0~CP1-3それぞれが積層されたMCP(Multi Chip Package)として実装され得る。半導体記憶装置100がMCPとして実装される場合、半導体記憶装置100では、ブリッジチップBCおよび複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3の周囲が、モールド樹脂で封止されていてもよい。
【0074】
また、半導体記憶装置100は、複数のメモリチップCP0-0~CP0-3,CP1-0~CP1-3とブリッジチップBCとを接続する複数のチャネルを備える。この複数のチャネルのそれぞれを、NAND型のフラッシュメモリを接続するチャネルという意味で、メモリチャネルMCHと表記する。
【0075】
図4の例では、半導体記憶装置100は、複数のメモリチャネルMCHとして、メモリチャネルMCH0,MCH1を備える。そして、メモリチャネルMCH0を介してブリッジチップBCに4つのメモリチップCP0-0~CP0-3が接続され、メモリチャネルMCH1を介してブリッジチップBCに4つのメモリチップCP1-0~CP1-3が接続される。
【0076】
それぞれのメモリチャネルMCHは、所定の規格に基づき構成される。各メモリチップCP0-0~CP0-3,CP1-0~CP1-3がNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。
【0077】
なお、半導体記憶装置100が備えるメモリチップCPの数は8個に限定されない。また、ブリッジチップBCと複数のメモリチップCPとを接続するメモリチャネルMCHの数は2個に限定されない。さらに、1つのメモリチャネルMCHに接続されるメモリチップCPの数は4個に限定されない。
【0078】
以降、メモリチップCP0-0~CP0-3,CP1-0~CP1-3のそれぞれを、メモリチップCPと表記することがある。
【0079】
半導体記憶装置100は、1つのチャネルを介してメモリコントローラMCに接続される。この1つのチャネルを、ブリッジチップBCから見てホスト側のチャネルという意味で、ホストチャネルHCHと表記する。
【0080】
ホストチャネルHCHは、所定の規格に基づき構成される。各メモリチップCPがNAND型フラッシュメモリである場合、所定の規格は、例えば、トグルDDR規格である。
【0081】
ホストチャネルHCHは、チップイネーブル信号CEnを転送する信号線、コマンドラッチ信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、所定のビット幅(ここでは一例として8ビットの幅)を有するデータ信号DQ[7:0]を転送する信号線、レディービジー信号R/Bn_1を転送する信号線、およびレディービジー信号R/Bn_2を転送する信号線を含む。なお、信号を表す符号の末尾に記された「n」は、負論理で動作せしめられる信号であることを表す。各信号が負論理で動作せしめられるか正論理で動作せしめられるかは任意に設計され得る。
【0082】
チップイネーブル信号CEnは、アクセスの対象のメモリチップCPをイネーブル状態とするための信号である。データストローブ信号DQS/DQSnは、データ信号DQ[7:0]で送信されるデータを相手装置に取り込むように指示する信号である。データストローブ信号DQS/DQSnは、データストローブ信号DQSとデータストローブ信号DQSnとによって構成される差動信号である。コマンドラッチイネーブル信号CLEは、データ信号DQ[7:0]がコマンドであることを示す信号である。アドレスラッチイネーブル信号ALEは、データ信号DQ[7:0]がアドレスであることを示す信号である。ライトイネーブル信号WEnは、データ信号DQ[7:0]で送信されるコマンドまたはアドレスを取り込むように相手装置に指示する信号である。リードイネーブル信号RE/REnは、データ信号DQ[7:0]を出力するように相手装置に指示する信号である。リードイネーブル信号RE/REnは、リードイネーブル信号REおよびリードイネーブル信号REnによって構成される差動信号である。レディービジー信号R/Bn_1およびレディービジー信号R/Bn_2は、コマンドの受信を待機している状態であるレディー状態であるかコマンドを受信しても実行できない状態であるビジー状態であるかを示す信号である。なお、ホストチャネルHCHが含むレディービジー信号R/Bnを転送する信号線の構成は上記された例に限定されない。例えば、ホストチャネルHCHは、メモリチャネルMCH0にかかるレディービジー信号R/Bnと、メモリチャネルMCH1にかかるレディービジー信号R/Bnと、からワイヤードOR接続などによって生成された一つのレディービジー信号R/Bnを転送するための1つの信号線を備えていてもよい。
【0083】
メモリチャネルMCH0,MCH1のそれぞれは、ホストチャネルHCHの信号群と同種の信号群を送受信できる。即ち、メモリチャネルMCH0,MCH1のそれぞれは、チップイネーブル信号CEnを転送する信号線、コマンドラッチ信号CLEを転送する信号線、アドレスラッチ信号ALEを転送する信号線、ライトイネーブル信号WEnを転送する信号線、リードイネーブル信号RE/REnを転送する信号線、データストローブ信号DQS/DQSnを転送する信号線、データ信号DQ[7:0]を転送する信号線群、およびレディービジー信号R/Bnを転送する信号線、を備えている。
【0084】
メモリコントローラMCは、ホストHSからライトコマンドによってデータ(ライトデータと表記する)のライトが要求されたとき、ライトデータを、いったんRAM200に格納する。そして、メモリコントローラMCは、RAM200に格納されたライトデータに対して誤り訂正符号化などの種々の処理を行い、処理後のライトデータを、データ信号DQ[7:0]としてブリッジチップBCに転送する。メモリコントローラMCは、ブリッジチップBCへのデータ信号DQ[7:0]の転送の際には、データ信号DQ[7:0]の転送と同期するようにトグルさせたデータストローブ信号DQS/DQSnをブリッジチップBCに転送する。
【0085】
ブリッジチップBCは、メモリコントローラMCからデータ信号DQ[7:0]として転送されたライトデータを、データストローブ信号DQS/DQSnのトグルに応じて順次取り込む。ブリッジチップBCは、取り込んだライトデータを何れかのメモリチップCPにデータ信号DQ[7:0]として転送する。ブリッジチップBCは、メモリチップCPへのデータ信号DQ[7:0]の転送の際には、データ信号DQ[7:0]の転送と同期するようにトグルさせたデータストローブ信号DQS/DQSnをメモリチップCPに転送する。
【0086】
メモリコントローラMCは、ホストHSからリードコマンドによってデータ(リードデータと表記する)のリードが要求されたとき、リードデータが格納されたメモリチップCPに対し、ブリッジチップBCを介してリード動作を指示する。リードデータが格納されたメモリチップCPは、リード動作の指示に応じ、リードデータをデータ信号DQ[7:0]としてブリッジチップBCに転送する。メモリチップCPは、ブリッジチップBCへのデータ信号DQ[7:0]の転送の際には、データ信号DQ[7:0]の転送と同期するようにトグルさせたデータストローブ信号DQS/DQSnをブリッジチップBCに転送する。
【0087】
ブリッジチップBCは、メモリチップCPからデータ信号DQ[7:0]として転送されたリードデータを、データストローブ信号DQS/DQSnのトグルに応じて順次取り込む。ブリッジチップBCは、取り込んだリードデータをメモリコントローラMCにデータ信号DQ[7:0]として転送する。ブリッジチップBCは、メモリコントローラMCへのデータ信号DQ[7:0]の転送の際には、データ信号DQ[7:0]の転送と同期するようにトグルさせたデータストローブ信号DQS/DQSnをメモリコントローラMCに転送する。
【0088】
このように、ブリッジチップBCは、外部の装置(この場合はメモリコントローラMCおよびメモリチップCPのうちの一)から転送されるデータを当該データの転送と同期するようにトグルさせられたデータストローブ信号DQS/DQSnによって取り込む。そして、ブリッジチップBCは、取り込んだデータを別の外部の装置(この場合はメモリコントローラMCおよびメモリチップCPのうちの他)に転送する。
【0089】
ブリッジチップBCは、種々の処理に使用するクロック信号を生成する発振回路(後述する発振回路101)を備える。発振回路101が生成するクロック信号を、クロック信号CLK0と表記する。ブリッジチップBCは、データストローブ信号DQS/DQSnを用いて取り込んだデータに対し、クロック信号CLK0を用いて種々の処理を行う。
【0090】
クロック信号CLK0の周波数は、発振回路101の温度の変動、または発振回路101に供給される電圧の変動、などを含む種々の要因で変動する。しかしながら、データストローブ信号DQS/DQSnを用いて取り込んだデータに対してもれなく処理を行うためには、クロック信号CLK0の周波数は、データストローブ信号DQS/DQSnの周波数以上であることが求められる。そこで、ブリッジチップBCは、クロック信号CLK0の周波数をデータストローブ信号DQS/DQSnの周波数以上に維持するために、次に説明する構成を備える。
【0091】
図5は、第2の実施形態のブリッジチップBCの一部の構成の一例を示す模式的な図である。ブリッジチップBCは、発振回路101、周波数カウンタ102、および制御回路103を備える。
【0092】
発振回路101は、外部端子からの入力によって発振周波数の制御が可能な発振器である。発振回路101は、クロック信号CLK0を生成する。発振回路101は、一例では、電圧制御発振器(Voltage-controlled oscillator:VCO)である。
【0093】
周波数カウンタ102には、外部(メモリコントローラMCまたはメモリチップCP)から転送されてきたデータストローブ信号DQS/DQSnが入力される。周波数カウンタ102は、入力されたデータストローブ信号DQS/DQSnをカウントする。周波数カウンタ102によるカウントは、データストローブ信号DQS/DQSnの周波数のカウントに対応する。
【0094】
なお、ここでは簡単に理解できるように、周波数カウンタ102にはデータストローブ信号DQS/DQSnのうちのデータストローブ信号DQSが入力され、データストローブ信号DQSの周波数がカウントされることとする。データストローブ信号DQSの周波数は、データストローブ信号DQSnの周波数と等しい。
【0095】
また、周波数カウンタ102に入力されるデータストローブ信号DQSを、クロック信号と同様の信号として便宜的に扱い、クロック信号CLK1と表記することがある。
【0096】
制御回路103は、周波数カウンタ102によるカウント値に基づき、クロック信号CLK0の周波数がデータストローブ信号DQS/DQSnの周波数以上となるようクロック信号CLK0の周波数を調整する。制御回路103は、発振回路101の制御端子に制御信号を入力することによって、クロック信号CLK0の周波数の変更を行う。
【0097】
図6は、第2の実施形態の周波数カウンタ102の構成の一例を示す模式的な図である。
【0098】
周波数カウンタ102は、グレイコードカウンタ1a、4個のレジスタRG1~RG4、グレイ―バイナリ符号変換器111、2個のマルチプレクサMX1,MX2、タイミング信号生成回路112、および減算器113を備える。
【0099】
グレイコードカウンタ1a、レジスタRG1~RG4、およびタイミング信号生成回路112のリセット端子にはリセット信号RSTNが入力される。レジスタRG1~RG4のクロック端子にはクロック信号CLK0が入力される。
【0100】
グレイコードカウンタ1aは、第1の実施形態のグレイコードカウンタ1と同様の構成を備えた半導体集積回路である。グレイコードカウンタ1aのクロック端子(第1の実施例ではクロック端子TCLK)には、クロック信号CLK1、つまりデータストローブ信号DQSが入力され、グレイコードカウンタ1aは、入力されたクロック信号CLK1をカウントする。グレイコードカウンタ1aは、クロック信号CLK1のカウント値に応じたLビットのグレイコードQ0~Q(L-1)をデータ出力端子(第1の実施形態ではデータ出力端子TQ0~TQ(L-1)のセット)から出力する。
【0101】
グレイコードカウンタ1aのデータ出力端子にはレジスタRG1のデータ入力端子が接続される。レジスタRG1は、グレイコードカウンタ1aのデータ出力端子から出力されるLビットのグレイコードをクロック信号CLK0に基づくタイミング、より具体的にはクロック信号CLK0の立ち上がりエッジのタイミング、で自身に格納する。
【0102】
レジスタRG1のデータ出力端子にはレジスタRG2のデータ入力端子が接続される。レジスタRG2のデータ出力端子にはグレイ-バイナリ符号変換器111が接続される。
【0103】
グレイ―バイナリ符号変換器111は、LビットのグレイコードをLビットのバイナリデータに変換する。これによって、クロック信号CLK1のカウント値を2進数で表したLビットのデータが得られる。
【0104】
マルチプレクサMX1は、それぞれはLビットのデータが入力される2つの入力端子AI、BIと、Lビットのデータを出力する出力端子ZOと、選択信号が入力される入力端子SIと、を備える。マルチプレクサMX1の入力端子AIには、レジスタRG3の出力端子が接続される。マルチプレクサMX1の入力端子BIには、グレイ―バイナリ符号変換器111の出力端子が接続される。
【0105】
レジスタRG3の入力端子には、マルチプレクサMX1の出力端子が接続される。
【0106】
マルチプレクサMX2は、それぞれはLビットのデータが入力される2つの入力端子AI、BIと、Lビットのデータを出力する出力端子ZOと、選択信号が入力される入力端子SIと、を備える。マルチプレクサMX2の入力端子AIには、レジスタRG4の出力端子が接続される。マルチプレクサMX2の入力端子BIには、レジスタRG3の出力端子が接続される。
【0107】
タイミング信号生成回路112は、クロック信号CLK0に基づき、所定のクロックサイクル数(以降、カウント期間と表記する)毎に、1クロックサイクルの間に「1」となるタイミングパルスTPを生成する。タイミングパルスTPは、マルチプレクサMX1,MX2に選択信号として入力される。
【0108】
マルチプレクサMX1,MX2のそれぞれは、入力された選択信号(即ちタイミングパルスTP)が「0」である場合には、入力端子AIからの入力を選択する。マルチプレクサMX1,MX2のそれぞれは、入力された選択信号(即ちタイミングパルスTP)が「1」である場合には、入力端子BIからの入力を選択する。
【0109】
減算器113は、それぞれはLビットのデータが入力される2つの入力端子XI、YIと、出力端子と、を備える。入力端子XIにはレジスタRG3の出力端子が接続される。入力端子Y1にはレジスタRG4の出力端子が接続される。減算器113は、入力端子XIに入力されるLビットのデータから入力端子YIに入力されるLビットのデータを減算し、減算によって得られたLビットのデータを、クロック信号CLK1の周波数に対応したデータ(以降、周波数データ)FOとして出力する。周波数データFOは、カウント期間におけるクロック信号CLK1のカウント値に相当する。
【0110】
図7は、第2の実施形態の周波数カウンタ102における各種信号の波形の一例を示すタイミングチャートである。本図に示すように、リセット信号RSTNによるリセットが解除され(タイミングt2)、カウント期間毎に「1」とされるタイミングパルスTPがマルチプレクサMX1,MX2に入力されると、各カウント期間において得られるクロック信号CLK1(つまりデータストローブ信号DQS)のカウント値が、次のカウント期間に周波数データFOとして出力される。
【0111】
制御回路103は、周波数カウンタ102によるカウント値として周波数データFOを取得する。制御回路103は、周波数カウンタ102から取得した周波数データFOに基づいて発振回路101の発振周波数を調整する。
【0112】
例えば、制御回路103は、周波数カウンタ102から取得した周波数データFOによって、クロック信号CLK0の周波数がクロック信号CLK1の周波数よりも低いと判定した場合、発振回路101の発振周波数を高める。クロック信号CLK0の周波数がクロック信号CLK1の周波数よりも低くないと判定した場合、制御回路103は、発振回路101の発振周波数を変化させない。なお、発振回路101の発振周波数の調整方法はこれに限定されない。
【0113】
以上述べたように、第2の実施形態によれば、ブリッジチップBCは、クロック信号CLK1をカウントするグレイコードカウンタ1aと、クロック信号CLK0を生成する発振回路101と、グレイコードカウンタ1aから出力されるグレイコードをクロック信号CLK0に基づくタイミングで自身に格納するレジスタRG1と、を備える。
【0114】
なお、実施形態のグレイコードカウンタ1は、ブリッジチップBCだけでなく、グレイコードカウンタ1aのカウント対象のクロック信号とは異なるクロック信号に基づいて動作する任意の半導体装置に適用され得る。
【0115】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0116】
1,1a グレイコードカウンタ、11 第1回路ブロック、12 第2回路ブロック、13,13_1~13_(L-2) 要素ブロック、100 半導体記憶装置、101 発振回路、102 周波数カウンタ、103 制御回路、111 グレイ-バイナリ符号変換器、112 タイミング信号生成回路、113 減算器、AD,AD1~AD(L-1) 加算器、FFr1,FFr2 参照フリップフロップ、INVr インバータ。
図1
図2
図3
図4
図5
図6
図7