(57)【要約】      （修正有）【課題】任意のＮ進法のデータ（Ｎは３以上の整数）の書き込み及び読み出しが可能な情報処理装置を提供する。【解決手段】情報処理装置は、演算処理装置１１０と、スイッチ素子及び容量素子を有する記憶素子を複数含む記憶装置１２０とを備える。記憶装置は、書き込み処理部と読み出し処理部とを備える。書き込み処理部は、書き込み処理を指示する命令を受けたとき、容量素子に対する電圧の印加時間を変化させることにより、Ｎ進データ（Ｎは３以上の整数）のそれぞれに対応する電圧を容量素子に生じさせるように構成されている。読み出し処理部は、読み出し処理を指示する命令を受けたとき、容量素子の電圧が所定の電圧閾値に下がるまでの時間を測定し、当該測定された時間に応じたデータを演算処理装置に出力するように構成されている。【選択図】図１
2019175531.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置と、
複数の記憶素子を含む記憶装置であって、前記複数の記憶素子の各々が、容量素子及びスイッチ素子を有し、前記スイッチ素子は、前記容量素子の状態を、充電可能状態と、放電状態と、の何れかに切り替えるように構成されている、記憶装置と、
を備える情報処理装置において、
Ｎを３以上の整数として、
前記演算処理装置は、前記複数の記憶素子のそれぞれへのＮ進データの書き込み処理を指示する命令及び前記複数のそれぞれの記憶素子からの前記Ｎ進データの読み出し処理を指示する命令を前記記憶装置に送るように構成され、
前記記憶装置は、
前記演算処理装置から前記書き込み処理を指示する命令を受けたとき、前記スイッチ素子を用いて前記容量素子の状態を前記充電可能状態に設定するとともに、所定の書込み用電圧を前記容量素子に印加するように構成された書き込み処理部であって、前記所定の書込み用電圧の印加時間を変化させることにより、前記Ｎ進データのそれぞれに対応する電圧を前記容量素子に生じさせるように構成された書き込み処理部と、
前記演算処理装置から前記読み出し処理を指示する命令を受けたとき、前記スイッチ素子を用いて前記容量素子の状態を前記放電状態に設定するとともに、前記容量素子の電圧が所定の電圧閾値に下がるまでの時間を測定し、当該測定された時間に応じたデータを前記演算処理装置に出力するように構成された読み出し処理部と、
を備える、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置及び記憶装置を備える情報処理装置に関する。
【背景技術】
【０００２】
コンピュータでは、中央演算処理装置（ＣＰＵ）の作業領域として、メモリ及びキャッシュ等の記憶装置が用いられる。ＣＰＵは、記憶装置からデータを読み込んだり又は記憶装置にデータを書き込んだりして、演算処理を実行する。
【０００３】
ところで、コンピュータの処理速度の向上を目的として、Ｎ進法（Ｎは３以上の整数であり、例えば、１０進法）で表現された電気信号を用いて演算処理を行う演算回路が提案されている（例えば、特許文献１を参照。）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−０７９４０８号公報
【発明の概要】
【０００５】
しかしながら、依然として、任意のＮ進法でデータを記憶することが可能な単一の記憶素子が実現されてない。このような事情から、現状においては、ＣＰＵの作業領域として、２進データ（０又は１）を記憶する記憶素子が用いられている。従って、ＣＰＵと記憶装置との間でのデータのやり取りが２進データを用いて行われるので、コンピュータの処理速度を十分に向上させることができない。
【０００６】
本発明は、上記課題を解決するためになされた。即ち、本発明の目的の一つは、任意のＮ進法のデータ（Ｎは３以上の整数）の書き込み及び読み出しが可能な情報処理装置を提供することである。
【０００７】
本発明の情報処理装置（以下、「本発明装置」と称呼される場合がある。）は、演算処理装置（１１０）と、複数の記憶素子（２５０）を含む記憶装置（１２０）とを備える。前記複数の記憶素子の各々が、容量素子（３１０）及びスイッチ素子（３２０）を有する。前記スイッチ素子は、前記容量素子の状態を、充電可能状態と、放電状態と、の何れかに切り替えるように構成されている。
前記演算処理装置は、前記複数の記憶素子のそれぞれへのＮ進データ（Ｎは３以上の整数）の書き込み処理を指示する命令及び前記複数のそれぞれの記憶素子からの前記Ｎ進データの読み出し処理を指示する命令を前記記憶装置に送るように構成されている。
前記記憶装置は、
前記演算処理装置から前記書き込み処理を指示する命令を受けたとき、前記スイッチ素子を用いて前記容量素子の状態を前記充電可能状態に設定するとともに、所定の書込み用電圧を前記容量素子に印加するように構成された書き込み処理部であって、前記所定の書込み用電圧の印加時間を変化させることにより、前記Ｎ進データのそれぞれに対応する電圧を前記容量素子に生じさせるように構成された書き込み処理部（２６０）と、
前記演算処理装置から前記読み出し処理を指示する命令を受けたとき、前記スイッチ素子を用いて前記容量素子の状態を前記放電状態に設定するとともに、前記容量素子の電圧が所定の電圧閾値に下がるまでの時間（Ｔ１）を測定し、当該測定された時間に応じたデータを前記演算処理装置に出力するように構成された読み出し処理部（２７０）と、
を備える。
【０００８】
係る構成を有する本発明装置は、Ｎ進データの形式で、データを単一の記憶素子に書き込むことができる。更に、本発明装置は、Ｎ進データの形式で、データを単一の記憶素子から読み出すことができる。情報処理装置が一度に処理できるデータ量が、従来の装置（即ち、２進データを扱う装置）と比べて増加するので、処理速度を向上させることができる。更に、単一の記憶素子がＮ進データを記憶することができるので、記憶装置の集積度（単位面積当たりに記憶可能なデータ量）が向上する。
【０００９】
上記説明においては、本発明の理解を助けるために、後述する実施形態に対応する発明の構成に対し、その実施形態で用いた名称及び／又は符号を括弧書きで添えている。しかしながら、本発明の各構成要素は、前記名称及び／又は符号によって規定される実施形態に限定されるものではない。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態に係る情報処理装置の概略構成図である。
【図２】図１に示した主記憶装置の概略構成図である。
【図３】図２に示したメモリセルの概略構成図である。
【図４】容量素子の電圧値と１０進法の値との関係を示す図である。
【図５】容量素子に対する電圧の印加時間と、容量素子の電圧値との関係を示す図である。
【図６】容量素子に対する電圧の印加時間を示す一例である。
【図７】容量素子の電圧値（容量素子に対応するビット線の電圧をセンスアンプによって増幅した値）と、当該電圧値が所定の電圧閾値ＴｈＶに到達するまでの時間Ｔ１（ｔｂ１乃至ｔｂ９）との関係を示す図である。
【図８】図７に示した時間Ｔ１と、１０進法の値との関係を示す図である。
【図９】アドレスバス、データバス及びコントロールバスを介して送信される電圧信号のＯＮ期間を説明する図である。
【図１０】図９に示した電圧信号のＯＮ期間と、１０進法の値との関係を示す図である。
【図１１】ＣＰＵが実行する命令の命令部に含まれる１０進法の値と、記憶装置の処理内容との関係を示す図である。
【図１２】本発明の実施形態にかかるＣＰＵ及び主記憶装置がストア命令を実行する際のタイミングチャートである。
【図１３】本発明の実施形態にかかるＣＰＵ及び主記憶装置がロード命令を実行する際のタイミングチャートである。
【図１４】本発明の実施形態にかかるＡＬＵ（Arithmetic logic unit）に含まれる加算器の一例を示す図である。
【図１５】本発明の変形例にかかるＣＰＵが加算演算を行う際に使用するマップの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照して本発明の実施形態に係る情報処理装置（以下、「本実施装置」と称呼される場合がある。）について説明する。以下では、１０進法のデータを扱うことが可能な情報処理装置について説明する。
【００１２】
＜構成＞
本発明の実施形態に係る情報処理装置は、図１に示すように、中央演算処理装置（ＣＰＵ）１１０及び主記憶装置１２０を備える。
【００１３】
（ＣＰＵの構成）
ＣＰＵ１１０は、制御装置１１１と、演算装置（Arithmetic logic unit。以下、「ＡＬＵ」と称呼する。）１１２と、データキャッシュ１１３と、プログラムカウンタ１１４と、命令レジスタ１１５と、レジスタ１１６とを備える。
【００１４】
制御装置１１１は、入力された命令をデコードし、当該命令を実行するようになっている。ＡＬＵ１１２は、四則演算及び論理演算等の各種演算処理を行う演算器である。データキャッシュ１１３は、使用頻度の高いデータを一時的に記憶しておく緩衝記憶装置である。
【００１５】
プログラムカウンタ１１４は、次に実行する命令のアドレス（主記憶装置１２０上のアドレス）を記憶するレジスタである。プログラムカウンタ１１４は、一つの命令を実行するごとにカウンタの値を増加させて、次の命令のアドレスを示すようになっている。命令レジスタ１１５は、プログラムカウンタ１１４によって示された主記憶装置１２０上のアドレスから読み出された命令、即ち、次に実行する命令を記憶するレジスタである。命令レジスタ１１５に読み出された命令は制御装置１１１に入力される。
【００１６】
レジスタ１１６は、複数のレジスタ部を有している。レジスタ１１６は、主記憶装置１２０から読み出されたデータ、ＡＬＵ１１２の演算処理の途中で得られたデータ、及び、ＡＬＵ１１２の演算処理の結果得られたデータ等を記憶する。
【００１７】
（主記憶装置の構成）
主記憶装置１２０は、制御装置１１１によって実行される命令、並びに、ＡＬＵ１１２における演算処理に用いられるデータ及びその演算処理結果のデータ等を記憶する。
【００１８】
ＣＰＵ１１０と主記憶装置１２０とは、アドレスバス１３１、データバス１３２及びコントロールバス１３３によって接続されている。アドレスバス１３１は、書き込み又は読み出し対象となる主記憶装置１２０上のアドレスを指定するために使用される信号線である。データバス１３２は、ＣＰＵ１１０から主記憶装置１２０へのデータの送信及び主記憶装置１２０からＣＰＵ１１０へのデータの送信のために使用される信号線である。コントロールバス１３３は、主記憶装置１２０に対して、書き込み処理を行うか又は読み出し処理を行うのかを指定するために使用される信号線である。
【００１９】
図２に示すように、主記憶装置１２０は、メモリセルアレイ２１０と、アドレス選択部２２０と、制御部２３０と、センスアンプ２４０とを備える。
【００２０】
メモリセルアレイ２１０は、第１方向ＤＲ１に沿って互いに平行に配列された複数のワード線ＷＬと、第１方向ＤＲ１に略直交する第２方向ＤＲ２に沿って互いに平行に配列された複数のビット線ＢＬと、ワード線ＷＬとビット線ＢＬの各交差部に形成された複数のメモリセル（記憶素子）２５０とを備える。ワード線ＷＬ及びビット線ＢＬをそれぞれ選択することにより、ワード線ＷＬとビット線ＢＬの交差部にある一つのメモリセル２５０に対して書き込み処理又は読み出し処理を行うことができる。なお、各メモリセル２５０には、固有のアドレス（例えば、整数値）が割り当てられている。
【００２１】
図３に示すように、メモリセル２５０は、スイッチ素子３１０と、容量素子３２０とを有する。スイッチ素子３１０は、例えばＭＯＳ（Metal Oxide Semiconductor）トランジスタである。容量素子３２０はコンデンサである。スイッチ素子３１０の一方の端子はビット線ＢＬに接続され、他方の端子は容量素子３２０に接続されている。スイッチ素子３１０の制御端子は、ワード線ＷＬに接続されている。なお、複数のメモリセル２５０は全て同一構成を有していることから、以降、一つのメモリセル２５０に着目して書き込み処理及び読み出し処理を説明する。
【００２２】
図２に示すように、アドレス選択部２２０は、アドレスバス１３１を介して、メモリセルアレイ２１０上のアドレスを指定する電圧信号（以下、「アドレス信号」と称呼する場合がある。）を受け取る。アドレス選択部２２０は、アドレス信号を受け取ると、そのアドレス信号からメモリセルアレイ２１０上のアドレスを求める。アドレス選択部２２０は、求められたアドレスに対応するメモリセル２５０に対してデータの書き込み処理又は読み出し処理が行えるように、当該アドレスに対応するワード線ＷＬに所定の電圧を印加するようになっている。これにより、書込み用電圧が印加されたワード線ＷＬに制御端子が接続されているスイッチ素子３１０の状態が非導通（ＯＦＦ）状態から導通（ＯＮ）状態へと変更される。以下、この所定の電圧は「スイッチオン電圧」とも称呼される。
【００２３】
制御部２３０は、コントロールバス１３３を介して、書き込み処理を行うか又は読み出し処理を行うのかを指定する電圧信号（以下、「制御信号」と称呼する場合がある。）を受け取る。更に、制御部２３０は、アドレス選択部２２０からアドレスの情報を受け取る。制御部２３０は、制御信号に応じて、指定されたアドレスに対応するメモリセル２５０に対してデータの書き込み処理又は読み出し処理の何れかを実行するようになっている。
【００２４】
制御部２３０は、機能的に見た場合、書き込み処理部２６０及び読み出し処理部２７０を備える。書き込み処理部２６０は、書き込み処理を指定する制御信号を受け取ると、指定されたアドレスに対応するビット線ＢＬに書込み用電圧を印加することにより書き込み処理を実行する。この書込み用電圧は、図示しない電源の電圧を一定の電圧となるように調整した電圧である。
【００２５】
読み出し処理部２７０は、読み出し処理を指定する制御信号を受け取ると、指定されたアドレスに対応するビット線ＢＬの電圧を監視して、指定されたアドレスに対応するメモリセル２５０に記憶されていた値を判定する（読み取る）。読み出し処理部２７０は、当該判定された値を表す電圧信号（後述する「第２基準電圧Ｖref2の電圧信号」）を生成して、当該電圧信号をデータバス１３２を介してＣＰＵ１１０に送信する。
【００２６】
センスアンプ２４０は、メモリセルアレイ２１０と制御部２３０との間に配置されている。センスアンプ２４０は、読み出し処理を実行する際に、ビット線ＢＬの電圧を増幅して、読み出し処理部２７０に出力するようになっている。
【００２７】
＜書き込み処理＞
本実施形態では、メモリセル２５０の容量素子３２０が、１０進法のデータ（以下、単に「１０進データ」と称呼する。）を記憶するようになっている。具体的には、図４に示すように、容量素子３２０における電圧値Ｖ０乃至Ｖ９によって１０進データが表現される。例えば、電圧値Ｖ０は、１０進データの「０」に対応する。電圧値Ｖ１は、１０進データの「１」に対応する。「ｎ」を「０」乃至「９」の整数とするとき、電圧値Ｖｎはｎが大きいほど大きくなる。
【００２８】
メモリセル２５０に１０進データを書き込むとき、書き込み処理部２６０は、記憶すべき１０進データに応じて、容量素子３２０に対する書込み用電圧の印加時間（即ち、充電時間）を変化させる。図５は、横軸を時間として、上記書込み用電圧としての所定の第１基準電圧Ｖref1を容量素子３２０に印加したときの容量素子３２０の電圧の変化を示したグラフである。このように、容量素子３２０に対する第１基準電圧Ｖref1の印加時間をｔａ１からｔａ９に変化させることによって、１０進データの各々に対応する電圧値Ｖ０乃至Ｖ９を容量素子３２０に生じさせることができる。
【００２９】
例えば、容量素子３２０に１０進データの「１」を記憶する場合について説明する。アドレス選択部２２０は、指定されたアドレスに対応するワード線ＷＬにスイッチオン電圧を印加する。これにより、指定されたアドレスに対応するメモリセル２５０のスイッチ素子３１０がＯＮ状態となる。これにより、指定されたアドレスに対応するメモリセル２５０の容量素子３２０が、充電可能な状態（以降、「充電可能状態」と称呼する場合がある。）となる。容量素子３２０が充電可能状態となっている間に、書き込み処理部２６０は、図６に示すように、指定されたアドレスに対応するビット線ＢＬに第１基準電圧Ｖref1を時間ｔａ１だけ印加する。これにより、容量素子３２０が充電され、容量素子３２０の電圧はＶ１になる。即ち、容量素子３２０は「１」を記憶した状態になる。第１基準電圧Ｖref1の印加時間が時間ｔａ１に達した時点にて、アドレス選択部２２０は、指定されたアドレスに対応するワード線ＷＬの電圧を下げることにより、メモリセル２５０のスイッチ素子３１０をＯＦＦ状態にする。これにより、容量素子３２０に蓄積された電荷が保持される（以降、この状態を「電荷保持状態」と称呼する場合がある。）。即ち、容量素子３２０の電圧がＶ１で保持される。
【００３０】
なお、容量素子３２０に１０進データの「０」を記憶する場合、アドレス選択部２２０は、指定されたアドレスに対応するワード線ＷＬにスイッチオン電圧を十分に長い時間（後述する時間ｔｂ９よりも長い時間）印加する。これにより、指定されたアドレスに対応するメモリセル２５０のスイッチ素子３１０がＯＮ状態となる。この状態で、書き込み処理部２６０は、指定されたアドレスに対応するビット線ＢＬに電圧を印加しない。即ち、指定されたアドレスに対応するビット線ＢＬを接地状態に設定する。これにより、容量素子３２０が放電され、容量素子３２０の電圧はＶ０（＝０）になる。即ち、容量素子３２０は「０」を記憶した状態になる。その後、アドレス選択部２２０は、指定されたアドレスに対応するワード線ＷＬの電圧を下げる（スイッチオン電圧の印加を停止する。）ことにより、メモリセル２５０のスイッチ素子３１０をＯＦＦ状態にする。
【００３１】
このように、容量素子３２０に対する第１基準電圧Ｖref1の印加時間を変化させることにより、単一の容量素子３２０に対して１０進データを記憶させることができる。
【００３２】
＜読み出し処理＞
本実施形態では、メモリセル２５０から１０進データを読み出すとき、ビット線ＢＬの電圧を監視することにより、メモリセル２５０に１０進データの何れの値が記憶されていたかを判定する（読み取る）。具体的には、読み出し処理部２７０は、指定されたアドレスに対応するビット線ＢＬを接地状態に維持したまま、当該アドレスに対応するワード線ＷＬにスイッチオン電圧を印加する。これにより、容量素子３２０の電荷が放電される（以降、この状態を「放電状態」と称呼する場合がある。）。読み出し処理部２７０は、ワード線ＷＬにスイッチオン電圧を印加し始めた時点から、ビット線ＢＬの電圧が所定の電圧閾値ＴｈＶ以下になる時点までの時間（即ち、放電時間）Ｔ１を測定する。電圧閾値ＴｈＶは、電圧Ｖ１に対して十分に低い電圧に設定されている。なお、読み出し処理部２７０は、センスアンプ２４０によって増幅されたビット線ＢＬの電圧を監視するようになっている。
【００３３】
図７は、横軸を時間として、容量素子３２０の電圧が電圧値Ｖ１乃至Ｖ９のそれぞれの状態から容量素子３２０を放電させたときの電圧の変化（センスアンプ２４０によって増幅されたビット線ＢＬの電圧の変化）を示したグラフである。ビット線ＢＬの電圧が所定の電圧閾値ＴｈＶ以下になるまでの時間Ｔ１は、電圧値Ｖ１乃至Ｖ９のそれぞれの場合で異なる（ｔｂ１乃至ｔｂ９）。従って、図８に示すように、読み出し処理部２７０は、時間Ｔ１に応じて、メモリセル２５０に１０進データの何れの値が記憶されていたかを判定する。
【００３４】
具体的な処理の流れを述べると、メモリセル２５０から１０進データを読み出す場合、アドレス選択部２２０は、指定されたアドレスに対応するワード線ＷＬにスイッチオン電圧を印加する。これにより、指定されたアドレスに対応するメモリセル２５０のスイッチ素子３１０がＯＮ状態となる。容量素子３２０の状態が電荷保持状態から放電状態へと切り替えられ、容量素子３２０の放電が開始される。読み出し処理部２７０は、指定されたアドレスに対応するビット線ＢＬの電圧を監視し、ワード線ＷＬにスイッチオン電圧を印加し始めた時点（放電開始時点）からビット線ＢＬの電圧が電圧閾値ＴｈＶになる時点までの時間Ｔ１を計測する。例えば、時間Ｔ１が「ｔｂ１」である場合、読み出し処理部２７０は、メモリセル２５０に「１」が記憶されていたと判定する。読み出し処理部２７０は、当該判定された１０進データの値を表す電圧信号（以降で説明する「所定の第２基準電圧Ｖref2の電圧信号」）を生成して、当該電圧信号をデータバス１３２を介してＣＰＵ１１０に送信する。
【００３５】
なお、メモリセル２５０に「０」が記憶されている場合、容量素子３２０の電圧値はＶ０（＝０）である。この場合、容量素子３２０の放電を開始した時点で、ビット線ＢＬの電圧は電圧閾値ＴｈＶより小さい。この場合、読み出し処理部２７０は、時間Ｔ１が「０」であるとみなし、メモリセル２５０に「０」が記憶されていたと判定する。
【００３６】
＜命令の実行＞
次に、ＣＰＵ１１０が命令を実行する際の作動の概要について説明する。図１に示すように、ＣＰＵ１１０は、機能的にみた場合、命令実行部１４１及び監視部１４２を備える。命令実行部１４１は、命令レジスタ１１５から入力された命令を実行するようになっている。監視部１４２は、命令実行部１４１による命令の実行状況（即ち、命令がどこまで実行されたか）を監視するようになっている。
【００３７】
命令は、命令部とオペランド部とから構成される。命令部は、その命令で実行する処理の内容を示す。オペランド部は、命令によって操作されるデータ又はそのデータが記憶されている場所（主記憶装置１２０上の特定のアドレス又はレジスタ１１６の特定のレジスタ部等）の情報、並びに、そのデータを記憶すべき場所等の情報を含む。
【００３８】
命令実行部１４１は、バス１３１乃至１３３を介して主記憶装置１２０と通信するとき、命令部の内容及びオペランド部の内容を１０進データで表現する。具体的には、図９に示すように、命令実行部１４１は、所定の第２基準電圧Ｖref2の電圧信号（以下、単に「電圧信号」と称呼する場合がある。）のＯＮ期間を変化させることにより、命令部の内容及びオペランド部の内容を１０進データで表現する。
【００３９】
図１０に示すように、１０進データの値は、それぞれ、電圧信号のＯＮ期間ｔｃ０乃至ｔｃ９に対応する。なお、ｔｃ０乃至ｔｃ９の大小関係は以下の通りである。
0 < tc0 < tc1 < tc2 < tc3 < tc4 < tc5 < tc6 < tc7 < tc8 < tc9 
【００４０】
なお、コントロールバス１３３を介して送られる電圧信号（即ち、命令部を示す１０進データ）は、命令の処理内容に対応づけられる。図１１に示すように、１０進データの「１」は、「ストア命令によるメモリセル２５０への書き込み」に対応する。１０進データの「２」は、「ロード命令によるメモリセル２５０からの読み出し」に対応する。従って、主記憶装置１２０は、１０進データの値によって書き込み処理及び読み出し処理の何れの処理が指定されたかを判定することができる。
【００４１】
更に、命令実行部１４１は、命令の実行状況を上記の電圧信号のＯＦＦ期間によって表現する。ここで、ＯＦＦ期間とは、上記の電圧信号がバス１３１乃至１３３の何れに対しても送信されていない期間である。
【００４２】
具体的には、命令実行部１４１は、命令部の内容を送信する期間とオペランド部の内容を送信する期間との間に第１ＯＦＦ期間ｔｏｆ１を設ける。更に、オペランド部が複数の情報（第１情報及び第２情報）を含む場合、命令実行部１４１は、第１情報を送信する期間と第２情報を送信する期間との間に第２ＯＦＦ期間ｔｏｆ２を設ける。更に、命令実行部１４１は、命令が実行し終わった後に第３ＯＦＦ期間ｔｏｆ３を設ける。
【００４３】
監視部１４２は、命令実行部１４１がバス１３１乃至１３３を介して主記憶装置１２０と通信を行っている間、上記のＯＦＦ期間を測定する。監視部１４２は、ＯＦＦ期間の長さに応じて、命令の実行状況（即ち、命令がどこまで実行されたか）を判定する。監視部１４２は、第３ＯＦＦ期間ｔｏｆ３を検出すると、命令が終了したと判定する。そして、監視部１４２は、プログラムカウンタ１１４の値を増加させる。これにより、命令実行部１４１は、次の命令に移ることができる。このような構成によれば、命令の実行タイミングを制御するためのクロック信号が必要ない。
【００４４】
＜実際の動作＞
次に、所定の命令を実行する際のＣＰＵ１１０及び主記憶装置１２０の実際の動作について説明する。以降では、ストア命令（書込み命令）及びロード命令（読出し命令）について説明する。
【００４５】
（ストア命令）
ストア命令は、レジスタ１１６に記憶されているデータを、主記憶装置１２０の特定のアドレスに書き込む命令である。ストア命令の場合、命令部は、ストア命令を示す１０進データの値（即ち、「１」）を含む（図１１を参照。）。更に、オペランド部は、レジスタ１１６の特定のレジスタ部を示す情報、及び、主記憶装置１２０上の特定のアドレスを示す情報を含む。
【００４６】
以下、レジスタ１１６の特定のレジスタ部に記憶されている「３」を、主記憶装置１２０の特定のアドレス「２」に書き込むストア命令を実行する際の作動を、図１２を参照して説明する。なお、図１２では、説明を簡単にするために、アドレスバス１３１及びデータバス１３２がそれぞれ１本のみ示されている。しかし、ＣＰＵ１１０と主記憶装置１２０が、複数のアドレスバス１３１及び複数のデータバス１３２を介してデータ（即ち、２桁以上の１０進データ）のやり取りを行ってもよい。
【００４７】
まず、ＣＰＵ１１０の命令実行部１４１は、オペランド部で指定された特定のレジスタ部から「３」の値を取得する。次に、命令実行部１４１は、ＯＮ期間が「ｔｃ１」の電圧信号（第２基準電圧Ｖref2の電圧信号）を、コントロールバス１３３を介して主記憶装置１２０に送信する。
【００４８】
主記憶装置１２０の制御部２３０は、コントロールバス１３３を介して送信されてきた電圧信号のＯＮ期間を測定する。ＯＮ期間が「ｔｃ１」であるので、制御部２３０は、１０進データの「１」に対応する処理を指示する命令を受けたと判定する。即ち、制御部２３０は、書き込み処理の命令を受けたと判定する。制御部２３０は、書き込み処理部２６０を作動させる。
【００４９】
命令実行部１４１は、コントロールバス１３３を介して電圧信号を送信した後、第１ＯＦＦ期間ｔｏｆ１を設ける。次に、命令実行部１４１は、ＯＮ期間が「ｔｃ２」の電圧信号を、アドレスバス１３１を介して主記憶装置１２０に送信する。
【００５０】
主記憶装置１２０のアドレス選択部２２０は、アドレスバス１３１を介して送信されてきた電圧信号のＯＮ期間を測定する。ＯＮ期間が「ｔｃ２」であるので、アドレス選択部２２０は、メモリセルアレイ２１０の中のアドレス「２」に対応するメモリセル２５０を選択する。具体的には、アドレス選択部２２０は、アドレス「２」に対応するワード線ＷＬにスイッチオン電圧を印加することにより、アドレス「２」に対応するメモリセル２５０のスイッチ素子３１０をＯＮ状態にする。更に、アドレス選択部２２０は、書き込み処理部２６０に対して、アドレス「２」を選択したことを通知する。
【００５１】
命令実行部１４１は、アドレスバス１３１を介して電圧信号を送信した後、第２ＯＦＦ期間ｔｏｆ２を設ける。次に、命令実行部１４１は、ＯＮ期間が「ｔｃ３」の電圧信号を、データバス１３２を介して主記憶装置１２０に送信する。
【００５２】
書き込み処理部２６０は、データバス１３２を介して送信されてきた電圧信号のＯＮ期間を測定する。ＯＮ期間が「ｔｃ３」であるので、書き込み処理部２６０は、記憶すべき値が「３」であると判定する。書き込み処理部２６０は、アドレス「２」に対応するビット線ＢＬに第１基準電圧（書込み用電圧）Ｖref1を時間ｔａ３だけ印加する。これにより、アドレス「２」のメモリセル２５０の容量素子３２０の電圧はＶ３になる。即ち、アドレス「２」のメモリセル２５０は「３」を記憶した状態になる。書き込み処理部２６０は、時間ｔａ３が経過した時点にて書き込み処理が終了したことをアドレス選択部２２０に通知する。アドレス選択部２２０は、アドレス「２」に対応するワード線ＷＬの電圧を下げる（スイッチオン電圧の印加を停止する）ことにより、スイッチ素子３１０をＯＦＦ状態にする。なお、書き込み処理部２６０は、アドレス「２」に記憶すべき値が「３」であると判定した時点から特定時間が経過した後にアドレス「２」に対応するビット線ＢＬに第１基準電圧（書込み用電圧）Ｖref1を印加してもよい。これにより、それまでメモリセル２５０に記憶されていた１０進データが確実にクリアされる（即ち、書き込み用電圧を印加する前に、メモリセル２５０の電圧が確実に「０」まで低下される。）。
【００５３】
命令実行部１４１は、データバス１３２を介して電圧信号を送信した後、第３ＯＦＦ期間ｔｏｆ３を設ける。監視部１４２は、第３ＯＦＦ期間ｔｏｆ３を検出すると、今回の命令（ストア命令）が終了したと判定する。監視部１４２は、プログラムカウンタ１１４の値を増加させる。命令実行部１４１は、プログラムカウンタ１１４が示す次のアドレスに従い、命令レジスタ１１５に次に実行すべき命令を記憶させる。これにより、命令実行部１４１は、次の命令に移ることができる。
【００５４】
（ロード命令）
ロード命令は、主記憶装置１２０の特定のアドレスのデータを読み出して、そのデータをレジスタ１１６の特定のレジスタ部にコピーする命令である。ロード命令の場合、命令部は、ロード命令を示す１０進データの値（即ち、「２」）を含む（図１１を参照。）。更に、オペランド部は、主記憶装置１２０上の特定のアドレスを示す情報、及び、レジスタ１１６の特定のレジスタ部を示す情報を含む。
【００５５】
以下、主記憶装置１２０の特定のアドレス「２」に記憶されている「３」を、レジスタ１１６の特定のレジスタ部にコピーするロード命令を実行する際の作動を、図１３を参照して説明する。なお、図１３では、図１２と同様に、説明を簡単にするために、アドレスバス１３１及びデータバス１３２がそれぞれ１本のみ示されている。
【００５６】
まず、ＣＰＵ１１０の命令実行部１４１は、ＯＮ期間が「ｔｃ２」の電圧信号（第２基準電圧Ｖref2の電圧信号）を、コントロールバス１３３を介して主記憶装置１２０に送信する。
【００５７】
主記憶装置１２０の制御部２３０は、コントロールバス１３３を介して送信されてきた電圧信号のＯＮ期間を測定する。ＯＮ期間が「ｔｃ２」であるので、制御部２３０は、１０進データの「２」に対応する処理を指示する命令を受けたと判定する。即ち、制御部２３０は、読み出し処理の命令を受けたと判定する。制御部２３０は、読み出し処理部２７０を作動させる。
【００５８】
命令実行部１４１は、コントロールバス１３３を介して電圧信号を送信した後、第１ＯＦＦ期間ｔｏｆ１を設ける。次に、命令実行部１４１は、ＯＮ期間が「ｔｃ２」の電圧信号を、アドレスバス１３１を介して主記憶装置１２０に送信する。
【００５９】
主記憶装置１２０のアドレス選択部２２０は、アドレスバス１３１を介して送信されてきた電圧信号のＯＮ期間を測定する。ＯＮ期間が「ｔｃ２」であるので、アドレス選択部２２０は、メモリセルアレイ２１０の中のアドレス「２」に対応するメモリセル２５０を選択する。具体的には、アドレス選択部２２０は、アドレス「２」に対応するワード線ＷＬにスイッチオン電圧を印加することにより、アドレス「２」に対応するメモリセル２５０のスイッチ素子３１０をＯＮ状態にする。更に、アドレス選択部２２０は、読み出し処理部２７０に対して、アドレス「２」を選択したことを通知する。
【００６０】
読み出し処理部２７０は、アドレス選択部２２０から通知を受けると、アドレス「２」に対応するビット線ＢＬの電圧を監視する。読み出し処理部２７０は、当該ビット線ＢＬの電圧が所定の電圧閾値ＴｈＶ以下になるまでの時間Ｔ１を測定する。いま、アドレス「２」のメモリセル２５０には「３」が記憶されているので、時間Ｔ１は「ｔｂ３」となる。従って、読み出し処理部２７０は、アドレス「２」のメモリセル２５０に「３」が記憶されていたと判定（認識）する。読み出し処理部２７０は、読み出し処理が終了したことをアドレス選択部２２０に通知する。アドレス選択部２２０は、アドレス「２」に対応するワード線ＷＬの電圧を下げる（スイッチオン電圧の印加を停止する）ことにより、スイッチ素子３１０をＯＦＦ状態にする。
【００６１】
次に、読み出し処理部２７０は、ＯＮ期間が「ｔｃ３」の電圧信号を、データバス１３２を介してＣＰＵ１１０に送信する。
【００６２】
命令実行部１４１は、データバス１３２を介して送信されてきた電圧信号のＯＮ期間を測定する。ＯＮ期間が「ｔｃ３」であるので、命令実行部１４１は、記憶すべき値が「３」であると判定（認識）する。命令実行部１４１は、オペランド部で指定された特定のレジスタ部に「３」を記憶する。
【００６３】
命令実行部１４１は、データバス１３２を介して電圧信号を受け取った後、第３ＯＦＦ期間ｔｏｆ３を設ける。監視部１４２は、第３ＯＦＦ期間ｔｏｆ３を検出すると、今回の命令（ロード命令）が終了したと判定する。監視部１４２は、プログラムカウンタ１１４の値を増加させる。命令実行部１４１は、プログラムカウンタ１１４が示す次のアドレスに従い、命令レジスタ１１５に次に実行すべき命令を記憶させる。これにより、命令実行部１４１は、次の命令に移ることができる。
【００６４】
＜ＡＬＵ＞
次に、ＡＬＵ１１２について説明する。ＡＬＵ１１２は、図１４に示すようなオペアンプ型の加算器１４００を含む。オペアンプ型の加算器１４００では、出力端子の電圧Ｖoutは以下の（１）式のように表される。
Ｖout＝−（Ｒｆ）（Ｖin1／Ｒ１＋Ｖin2／Ｒ２＋  …  ＋ＶinN／ＲＮ）  …（１）
【００６５】
本実施形態において、総ての抵抗Ｒ１、Ｒ２、…、ＲＮ及びＲｆが同じ値である。この場合、出力端子の電圧Ｖoutは以下の（２）式のように表される。
Ｖout＝−（Ｖin1＋Ｖin2＋  …  ＋ＶinN）  …（２）
【００６６】
このような加算器１４００によれば、命令実行部１４１は、図４により示した「電圧値と１０進データの値との関係」を用いて、加算処理を行うことができる。例えば、命令実行部１４１が、「３＋４」の加算命令を実行すると仮定する。この場合、命令実行部１４１は、以下のように加算器１４００に入力する。
Ｖin1＝Ｖ３
Ｖin2＝Ｖ４
【００６７】
この場合、電圧Ｖoutは、極性が反転するものの、電圧値Ｖ３と電圧値Ｖ４との和となる。即ち、電圧Ｖoutは「−Ｖ７」となる。命令実行部１４１は、電圧Ｖoutから加算処理結果を得て、その加算処理結果を上述のように主記憶装置１２０に１０進データの形式で記憶することができる。このように、加算器１４００に対する入力及び加算器１４００からの出力を１０進データで扱うことが可能となる。
【００６８】
以上のように、本実施装置によれば、単一のメモリセル２５０が１０進データを記憶するようになっている。ＣＰＵ１１０は、１０進データの形式でデータを主記憶装置１２０とやり取りすることができる。例えば、ＣＰＵ１１０は、１０進データの演算結果（例えば、加算器１４００による加算処理結果）を主記憶装置１２０へ書き込むことができる。更に、ＣＰＵ１１０は、その１０進データを主記憶装置１２０から読み出すことができる。このように、ＣＰＵ１１０及び主記憶装置１２０の両方が１０進データを扱うことができるので、２進データを扱う従来の装置と比べて、一度に処理できるデータ量が増加する。従って、処理速度を向上させることができる。例えば、２００６年の「Fall Processor Forum」では、「ＩＢＭのＰＯＷＥＲ６プロセサＪａｖａ（登録商標）の１０進浮動小点演算を使う実アプリで７倍以上、Ｃ言語では４倍の性能が得られた」と報告されている。本実施装置は、これと同等の処理速度の向上を得ることができると考えられる。
【００６９】
更に、単一のメモリセル２５０が１０進データを記憶できるので、主記憶装置１２０の集積度（単位面積当たりに記憶可能なデータ量）も向上する。
【００７０】
なお、本発明は上記実施形態に限定されることはなく、本発明の範囲内において種々の変形例を採用することができる。
【００７１】
メモリセル２５０の容量素子３２０は、任意のＮ（Ｎは、３以上の整数）進法のデータ（以下、「Ｎ進データ」と称呼する。）を記憶するように構成されてもよい。この場合、書き込み処理部２６０は、容量素子３２０への電圧（書込み用電圧）の印加時間を変化させることにより、Ｎ進データのそれぞれに対応する電圧を容量素子３２０に生じさせるように構成される。読み出し処理部２７０は、ビット線ＢＬの電圧が所定の電圧閾値ＴｈＶ以下になるまでの時間Ｔ１を測定し、当該時間Ｔ１に応じて、メモリセル２５０にＮ進データの何れの値が記憶されていたかを判定するように構成される。
【００７２】
読み出し処理部２７０は、読み出した時間Ｔ１の情報を、データバス１３２を介して、１０進データの形式で（第２基準電圧Ｖref2の電圧信号で）ＣＰＵ１１０に送信してもよい。この構成において、ＣＰＵ１１０の命令実行部１４１は、読み出した時間Ｔ１の情報から、メモリセル２５０に１０進データの何れかの値が記憶されていたのかを判定（認識）してもよい。
【００７３】
四則演算を行うために、図１５に示すようなマップ１５００が用いられてもよい。マップ１５００は、情報処理装置の図示しないＲＯＭに格納されている。例えば、マップ１５００は、情報処理装置の起動時に主記憶装置１２０のメモリセルアレイ２１０に書き込まれる。
【００７４】
マップ１５００は「ａ＋ｂ」の加算処理を行うためのマップであり、マップ１５００の各セルの値は１０進データで表現されている。マップ１５００の１つのセルは、１つのメモリセル２５０に対応する。「ａ」の値に応じてマップ１５００の２つ列が選択され、「ｂ」の値に応じてマップの１つの行が選択される。選択された列と行が交差する２つのセルが、「ａ＋ｂ」の加算結果を示す。例えば、「１＋１」の加算処理の場合、「ａ＝１」であるので、マップ１５００の第１列目及び第２列目が選択される。更に、「ｂ＝１」であるので、マップ１５００の第１行目が選択される。従って、マップ１５００の１行１列目の１０進データ及び１行２列目の１０進データが、「１＋１」の加算処理結果である。なお、１行１列目のメモリセル２５０は十の位の値を示し、１行２列目のメモリセル２５０は一の位の値を示す。
【００７５】
ＣＰＵ１１０は、「ａ＋ｂ」の加算処理を行う際、上述したように対応するメモリセル２５０の１０進データを読み出すことにより、１０進データの形式で「ａ＋ｂ」の加算処理結果を得ることができる。従って、ＣＰＵ１１０は、ＡＬＵ１１２の加算器を用いることなく、「ａ＋ｂ」の加算処理を行うことができる。なお、加算処理用のマップに加えて、他の四則演算（減算、乗算及び除算）のマップが主記憶装置１２０のメモリセルアレイ２１０に適用されてもよい。
【００７６】
ＣＰＵ１１０は、従来通り、２進データを扱ってもよい。ＣＰＵ１１０は、書込み及び／又は読出しの際に、２進データをＮ進データに変換して主記憶装置１２０と通信を行ってもよい。
【００７７】
読み出し処理部２７０は、読み出した時間Ｔ１に応じて、その読み出しを行ったメモリセル２５０に対して再度書き込みを行ってもよい。これにより、メモリセル２５０に記憶されている１０進データを維持することができる。
【符号の説明】
【００７８】
１１０…ＣＰＵ、１１１…制御装置、１１３…データキャッシュ、１１４…プログラムカウンタ、１１５…命令レジスタ、１１６…レジスタ、１２０…主記憶装置、１４１…命令実行部、１４２…監視部、２１０…メモリセルアレイ、２２０…アドレス選択部、２３０…制御部、２４０…センスアンプ、２５０…メモリセル、２６０…書き込み処理部、２７０…読み出し処理部、３１０…スイッチ素子、３２０…容量素子。
【図１】
2019175531.tif 000003
【図２】
2019175531.tif 000004
【図３】
2019175531.tif 000005
【図４】
2019175531.tif 000006
【図５】
2019175531.tif 000007
【図６】
2019175531.tif 000008
【図７】
2019175531.tif 000009
【図８】
2019175531.tif 000010
【図９】
2019175531.tif 000011
【図１０】
2019175531.tif 000012
【図１１】
2019175531.tif 000013
【図１２】
2019175531.tif 000014
【図１３】
2019175531.tif 000015
【図１４】
2019175531.tif 000016
【図１５】
2019175531.tif 000017