【発明の詳細な説明】 【0001】 【産業上の利用分野】この発明は半導体記憶装置に関し、特に通常2進数データおよび冗長2進数データを記憶する半導体記憶装置に関する。 【0002】 【従来の技術】近年、半導体技術の進歩は目覚ましく、 多くの回路素子を1つのチップ上に集積化することが可能になってきた。 また、処理速度をさらに高速化するという要求も多く、特に算術演算を高速に処理したいという要求が強くなっている。 そして、算術演算を高速に処理するための方法として、冗長2進数を用いた演算回路の利用が注目を集めている。 【0003】ここで、各桁が0および1の2数で表わされる一般的な2進数を通常2進数と呼ぶ。 これに対して、各桁が1,0および−1の3数で表わされる2進数を冗長2進数と呼ぶ。 nビットの2進数は一般にx n x n-1 …x 1と表現される。 ここでは、符号なし2進表示による2進数を[x n x n-1 …x 1 ] 2と表記し、2の補数表示による2進数を[x n x n-1 …x 1 ] C2と表記する。 この場合、x n ,x n-1 ,…,x 1の各々は0または1を表わしている。 また、冗長2進数を[x n ,x n-1 ,…x 1 ] SD2と表記する。 この場合、x n ,x n-1 ,…,x 1の各々は1,0または−1を表わす。 【0004】通常2進表現では、10進数の“3”は[011] 2と表わされる。 一方、冗長2進表現では、 10進数の“3”は[0,1,1] SD2または[1, 0,−1] SD2と表わされる。 このように、冗長2進表現では、1つの数を複数の方法で表わすことができる。 【0005】通常2進数と冗長2進数との間の相互変換については、たとえば、高木,安浦,矢島:“冗長2進加算木を用いたVLSI向き高速乗算器”,電子通信学会論文誌´83/6 Vol. J66−D No. 6, pp. 683−690に説明されている。 【0006】通常2進表現は、冗長2進表現の1つと一致している。 たとえば、冗長2進表現の[011] 2は冗長2進表現の[0,1,1] SD2に一致している。 したがって、通常2進数を冗長2進数へ変換する際には、 何も処理を行なう必要がない。 【0007】一方、冗長2進数から通常2進数への変換は、2つの2進数の減算により行なうことができる。 一方の2進数は、冗長2進数の“1”の桁に対応するビットを“1”に設定しかつ残りのビットを“0”に設定することにより得られる。 他方の2進数は、冗長2進数の“−1”の桁に対応するビットを“1”に設定しかつ残りのビットを“0”に設定することにより得られる。 一方の2進数から他方の2進数を減算すると、2の補数表示による通常2進数が得られる。 【0008】たとえば、冗長2進数[1,0,−1] SD2は、次のようにして通常2進数[011] C2に変換される。 【0009】[1,0,−1] SD2 =[100] 2 − [001] 2 =[011] C2 2つの通常2進数の減算は、2の補数表示による2進数を用いた加算により行なわれる。 したがって、冗長2進数から通常2進数への変換は主として加算回路を用いて行なわれる。 【0010】通常2進数を用いた演算では、桁上げ信号の伝搬による遅延が生じるため、データのビット長が長くなるほど演算時間が長くなる。 これに対して、冗長2 進数表現では1つの数を複数の形で表現できるので、桁上げの回数を減少させることが可能となる。 冗長2進数を用いた加算および乗算については、上記の電子通信学会論文誌に説明されている。 【0011】ここでは、簡単な加算の例を説明する。 たとえば、3+1=4という加算を通常2進数を用いて行なうと、図10に示されるように、最下位ビットから第2ビットへ桁上げが生じ、さらに第2ビットから第3ビットへ桁上げが生じる。 これに対して、図11に示されるように、10進数の“3”を冗長2進数の[1,0, −1] SD2で表わし、10進数の“1”を冗長2進数の[0,0,1] SD2で表わす。 このような冗長2進数を用いた加算では、桁上げが生じない。 したがって、冗長2進数を用いると、高速な演算が可能となる。 【0012】冗長2進数を利用する演算回路では回路素子の数が多くなるが、最近の半導体技術の進歩により回路素子の数が多いことは何ら問題ではなくなっている。 そのため、冗長2進数を利用する高速性能を有する演算回路が半導体集積回路装置内に組み込まれるようになってきた。 たとえば、Yamashitaet al., “A 200MHz16-bi t BiCMOS Signal Processor” ,1989 ISSCC DIGEST OF TECHNICAL PAPERS,pp.172-173およびEdamatsu et al., “A 33MFLOPS Floating Point Processor using Redund ant Binary Representation ”,1988 ISSCC DIGEST OF TECHNICAL PAPERS,pp.152-153 に冗長2進数を利用した演算回路が開示されている。 【0013】 【発明が解決しようとする課題】上記のように、冗長2 進数を利用した高速な演算回路が開発されている。 しかしながら、多くのデータ処理システムでは、通常2進数データが用いられる。 そのため、冗長2進数を利用する演算回路を他のシステムと接続するためには、冗長2進数と通常2進数との間で相互変換が必要となる。 そのためには、上記のように通常2進数の加算回路が必要となり、変換のために演算時間が増加する。 【0014】特に、通常のマイクロプロセッサでは、多数のデータに関して算術演算処理および論理演算処理が行なわれる。 算術演算処理は冗長2進数データを用いて行なうことができるが、論理演算処理は冗長2進数データを用いて行なうことはできない。 【0015】図12に、一般的なマイクロプロセッサの主として実行部を示す。 マイクロプロセッサ300は、 レジスタファイル回路(RF)310および演算処理回路(ALU)320を含む。 このマイクロプロセッサ3 00には主記憶装置200が接続される。 マイクロプロセッサ300は1つのLSIにより形成され、主記憶装置200は別のLSIにより形成される。 主記憶装置2 00には通常2進数データが記憶されている。 演算処理回路320は、算術演算処理、論理演算処理等の演算処理を行なう。 レジスタファイル回路310は、通常RA M(Random Access Memory)からなり、主記憶装置200に記憶されるデータのうち演算処理回路320の処理に必要なデータを記憶する。 【0016】ここで、演算処理回路320として、冗長2進数を利用する演算および冗長2進数と通常2進数との間の相互変換が可能な演算回路を用いた場合を想定し、その場合における動作を説明する。 【0017】まず、演算処理回路320の演算処理に必要な通常2進数データが主記憶装置200からレジスタファイル回路310に転送され、そこに記憶される。 たとえば、2数を加算する命令を実行するときには、2つの通常2進数データが主記憶装置200からレジスタファイル回路310に転送される。 【0018】次に、演算処理回路320はその2つのデータの加算処理を実行する。 通常2進数データは冗長2 進数データとみなすこともできるので、この場合、演算処理回路320は冗長2進数を利用した演算を実行する。 それにより、演算時間が短縮される。 その演算結果は冗長2進数データとなる。 【0019】通常、レジスタファイル回路310は冗長2進数データを記憶することはできない。 そのため、演算処理回路320は、冗長2進数データを通常2進数データに変換する。 その変換された通常2進数データがレジスタファイル回路310に記憶される。 この場合、演算処理回路320は、演算処理に加えて変換処理を行なう必要があるので、結局実行時間は長くなる。 【0020】また、レジスタファイル回路310が冗長2進数データを記憶することができると仮定すると、演算結果は冗長2進数の形でレジスタファイル回路310 に記憶される。 次にその演算結果を利用する命令が算術演算の命令であれば、その冗長2進数データを用いてその演算を実行することができる。 【0021】しかし、次にその演算結果を利用する命令が論理演算の命令であれば、その冗長2進数データを通常2進数データに変換する必要がある。 その場合、演算処理回路320が変換処理を行なわなければならず、結局実行時間が増加する。 【0022】さらに、たとえ論理演算の命令がまったく存在しないとしても、レジスタファイル回路310に記憶された冗長2進数データは最終的には主記憶装置20 0に保存される。 主記憶装置200は、システム内で他の回路とも接続されるので、データを必ず通常2進数の形で記憶する必要がある。 したがって、レジスタファイル回路310に記憶された冗長2進数データは、演算処理回路320により通常2進数データに変換された後に、主記憶装置200に転送される。 【0023】このように、冗長2進数データを通常2進数データに変換するために余分な時間がかかり、実行速度が遅くなる。 そのため、マイクロプロセッサに冗長2 進数を利用する演算回路を組み込むことは実際には行なわれていない。 【0024】しかし、算術演算を冗長2進数で実行することによりマイクロプロセッサをさらに高速化したいという要求は非常に多いこの発明の目的は、冗長2進数データから通常2進数データへの変換により生じる実行時間の増加をなくし、高速な演算処理を可能にすることである。 【0025】 【課題を解決するための手段】第1の発明にかかる半導体記憶装置は、少なくとも1つの記憶手段、書込手段および読出手段を含む。 記憶手段は、冗長2進数データを記憶するメモリセル、メモリセルに記憶された冗長2進数データを通常2進数データに変換する変換手段、およびメモリセルに記憶された冗長2進数データおよび変換手段により変換された通常2進数データのいずれか一方を選択する選択手段を含む。 書込手段は、記憶手段のメモリセルに通常2進数データまたは冗長2進数データを書込む。 読出手段は、記憶手段の選択手段により選択されたデータを読出す。 【0026】第2の発明にかかる半導体記憶装置は、少なくとも1つの記憶手段、変換手段、書込手段および読出手段を含む。 記憶手段は、通常2進数データを記憶する第1のメモリセルおよび冗長2進数データを記憶する第2のメモリセルを含む。 変換手段は、外部から与えられた冗長2進数データを通常2進数データに変換する。 書込手段は、外部から与えられた冗長2進数データおよび変換手段により変換された通常2進数データを記憶手段の第1および第2のメモリセルにそれぞれ書込む。 読出手段は、記憶手段の第1のメモリセルに記憶された通常2進数データおよび記憶手段の第2のメモリセルに記憶された冗長2進数データを選択的に読出す。 【0027】 【作用】第1の発明にかかる半導体記憶装置において、 書込手段により記憶手段のメモリセルに冗長2進数データが書込まれると、その冗長2進数データは変換手段により通常2進数データに変換される。 冗長2進数データが必要なときには、メモリセルに記憶された冗長2進数データが選択手段により選択され、その選択された冗長2進数データが読出手段により読出される。 通常2進数データが必要なときには、変換手段により変換された通常2進数データが選択手段により選択され、その選択された通常2進数データが読出手段により読出される。 【0028】書込手段により記憶手段のメモリセルに通常2進数データが書込まれた場合には、その通常2進数データはそのままの形で冗長2進数データとみなすことができる。 この場合、メモリセルに記憶されたデータと変換手段により変換されたデータとは同じ形になっている。 【0029】このように、記憶手段に冗長2進数データおよび通常2進数データのいずれが書込まれていても、 必要に応じて、そのデータを冗長2進数データの形で読出すこともできかつ通常2進数データの形で読出すこともできる。 【0030】第2の発明にかかる半導体記憶装置において、外部から冗長2進数データが与えられると、その冗長2進数データは変換手段により通常2進数データに変換される。 その変換された通常2進数データは書込手段により記憶手段の第1のメモリセルに書込まれ、冗長2 進数データは書込手段により記憶手段の第2のメモリセルに書込まれる。 通常2進数データが必要なときには、 記憶手段の第1のメモリセルに記憶される冗長2進数データが読出手段により読出される。 冗長2進数データが必要なときには、読出手段により記憶手段の第2のメモリセルに記憶される冗長2進数データが読出される。 【0031】外部から通常2進数データが与えられると、その通常2進数データはそのままの形で冗長2進数データとみなすことができる。 この場合、記憶手段の第1のメモリセルに記憶されるデータと記憶手段の第2のメモリセルに記憶されるデータとは同じ形になっている。 【0032】このように、外部から冗長2進数データおよび通常2進数データのいずれが与えられても、そのデータは冗長2進数データおよび通常2進数データの両方の形で記憶手段に記憶される。 したがって、必要に応じて、そのデータを冗長2進数データの形で読出すこともでき、かつそのデータを通常2進数データの形で読出すこともできる。 【0033】 【実施例】以下、この発明の実施例を図面を用いて詳細に説明する。 【0034】図1は、この発明の一実施例による半導体記憶装置の構成を示すブロック図である。 【0035】半導体記憶装置1は、複数行および複数列に配列された複数のメモリ回路10、読出/書込回路2 0およびデコーダ・制御回路30を含む。 メモリ回路1 0の各列に対応して第1および第2のビット線BL1, BL2が設けられ、メモリ回路10の各行に対応してワード線WLが設けられる。 第1および第2のビット線B L1,BL2は読出/書込回路20に接続される。 各ワード線WLはデコーダ・制御回路30に接続される。 メモリ回路10の列の数は記憶されるデータDのビット数に対応する。 したがって、メモリ回路10の列の数がn であるときには、メモリ回路10の各行にnビットのデータが記憶される。 【0036】各メモリ回路10は、対応するワード線W Lおよび対応する第1および第2のビット線BL1,B L2に接続されている。 各行の各メモリ回路10から出力される桁上げ信号CRは上位ビットのメモリ回路10 に与えられる。 【0037】読出/書込回路20には外部から通常2進数データDまたは冗長2進数データDが与えられる。 また、読出/書込回路20から半導体記憶装置1の外部に通常2進数データDまたは冗長2進数データDが出力される。 読出/書込回路20には外部から選択信号SEL および読出/書込信号RWが与えられる。 選択信号SE Lは、すべてのメモリ回路10にも与えられる。 デコーダ・制御回路30には、外部からアドレス信号ADが与えられる。 【0038】図2に、各メモリ回路10の構成が示される。 メモリ回路10は、データビットメモリセル11、 サインビットメモリセル12、変換回路13および選択回路14を含む。 データビットメモリセル11およびサインビットメモリセル12の各々は、1ビットのデータを記憶する。 【0039】データビットメモリセル11の入力端子は対応する第1のビット線BL1に接続されている。 データビットメモリセル11の制御端子は対応するワード線WLに接続されている。 サインビットメモリセル12の入力端子は対応する第2のビット線BL2に接続されている。 サインビットメモリセル12の制御端子は対応するワード線WLに接続されている。 データビットメモリセル11の出力端子は変換回路13の一方の入力端子B および選択回路14の一方の入力端子aに接続されている。 サインビットメモリセル12の出力端子は変換回路13の他方の入力端子Aおよび対応する第2のビット線BL2に接続されている。 【0040】変換回路13の出力端子Sは選択回路14 の他方の入力端子bに接続されている。 選択回路14の制御端子は対応するワード線WLに接続されている。 選択回路14の出力端子は対応する第1のビット線BL1 に接続されている。 選択回路14のセレクト端子saには選択信号SELが与えられる。 変換回路13は、下位ビットに対応するメモリ回路内の変換回路から桁上げ入力端子CIを介して桁上げ信号CRを受け、上位ビットに対応するメモリ回路内の変換回路に桁上げ出力端子C Oを介して桁上げ信号CRを与える。 【0041】冗長2進数データは図3に示されるようにサインビットおよびデータビットからなる。 冗長2進数の“−1”はサインビット“1”とデータビット“1” で表わされる。 冗長2進数の“1”はサインビット“0”およびデータビット“1”で表わされる。 冗長2 進数の“0”はデータビット“0”で表わされる。 この場合、データビットが“0”であればサインビットの値にかかわらず、そのビットは冗長2進数の“0”であると認識される。 【0042】通常2進数データの各ビットは第1のビット線BL1に与えられる。 冗長2進数データの各桁のデータビットは第1のビット線BL1に与えられ、冗長2 進数データの各桁のサインビットは第2のビット線BL 2に与えられる。 データビットメモリセル11は、通常2進数データの各ビットまたは冗長2進数データの各桁のデータビットを記憶する。 サインビットメモリセル1 2は、冗長2進数データの各桁のサインビットを記憶する。 データビットメモリセル11に通常2進数データの各ビットが与えられたときには、サインビットメモリセル12には“0”が与えられる。 【0043】変換回路13は、主として全加算器を含み、桁上げ信号CR、データビットおよびサインビットに基づいて、外部からの命令なしに冗長2進数データを通常2進数データに自動的に変換する。 図1に示される1行に相当する複数の変換回路13が、n桁の冗長2進数データを上述した方法で通常2進数データに変換する。 すなわち、1行に相当するn個の変換回路13は、 与えられた冗長2進数データから2種類の通常2進数データを作成し、それらの通常2進数データを全加算器で加算することにより、与えられた冗長2進数データを通常2進数データに変換する。 【0044】図4に、変換回路13の詳細な構成を示す。 変換回路13は、NチャネルMOSトランジスタT 1〜T6およびインバータG1〜G7を含む。 入力端子Aはサインビットメモリセル12からサインビットを受け、入力端子Bはデータビットメモリセル11からデータビットを受ける。 桁上げ入力端子CIは下位ビットに対応するメモリ回路内の変換回路から桁上げ信号CRを受ける。 出力端子Sから変換結果が出力される。 桁上げ出力端子COから上位ビットに対応するメモリ回路内の変換回路に与えられるべき桁上げ信号CRが出力される。 【0045】入力端子Bに与えられるデータビットが“1”のときには、トランジスタT1がオンする。 入力端子Aに与えられるサインビットが“1”のときには、 トランジスタT3,T6がオンする。 それにより、出力端子Sからは、桁上げ入力端子CIに与えられる桁上げ信号CRの反転信号が出力される。 桁上げ出力端子CO からは、入力端子Bに与えられるデータビット“1”が出力される。 【0046】入力端子Aに与えられるサインビットが“0”のときには、トランジスタT4,T5がオンする。 それにより、出力端子Sからは、桁上げ入力端子C Iに与えられる桁上げ信号CRが出力される。 桁上げ出力端子COからも、桁上げ入力端子CIに与えられる桁上げ信号CRが出力される。 【0047】入力端子Bに与えられるデータビットが“0”のとき、トランジスタT2がオンする。 入力端子Aに与えられるサインビットが“1”のとき、トランジスタT4,T5がオンする。 それにより、出力端子Sからは、桁上げ入力端子CIに与えられる桁上げ信号CR が出力される。 桁上げ出力端子COからも、桁上げ入力端子CIに与えられる桁上げ信号CRが出力される。 【0048】入力端子Aに与えられるサインビットが“0”のとき、トランジスタT3,T6がオンする。 それにより、出力端子Sからは、桁上げ入力端子CIに与えられる桁上げ信号CRの反転信号が出力される。 桁上げ出力端子COからは、入力端子Bに与えられるデータビット“0”が出力される。 【0049】図5に、選択回路14の構成を示す。 選択回路14は、インバータG8,ANDゲートG9,G1 0およびORゲートG11を含む。 入力端子aはデータビットメモリセル11の出力を受け、入力端子bは変換回路13の出力を受ける。 セレクト端子saは選択信号SELを受ける。 出力端子oはビット線BL1に接続される。 図5においては、制御端子は省略されている。 【0050】選択信号SELが“1”のとき、入力端子aに与えられる信号が出力端子oから出力される。 選択信号SELが“0”のとき、入力端子bに与えられる信号が出力端子oから出力される。 【0051】次に、図1および図2を参照しながら、この実施例の半導体記憶装置1の動作を説明する。 【0052】読出/書込信号RWにより、データの読出動作または書込動作が選択される。 冗長2進数データの書込時には、外部からnビットの冗長2進数データDが読出/書込回路20に入力される。 読出/書込回路20 はその冗長2進数データの各桁のデータビットを第1のビット線BL1に与え、冗長2進数データの各桁のサインビットを第2のビット線BL2に与える。 【0053】一方、デコーダ・制御回路30は、外部から与えられるアドレス信号ADに応答して、複数のワード線WLのうち1つを選択する。 それにより、選択されたワード線WLに接続されるn個のメモリ回路10が選択される。 その結果、選択された各メモリ回路10内のデータビットメモリセル11およびサインビットメモリセル12が活性状態になる(図2参照)。 それにより、 対応する第1のビット線BL1上のデータビットがデータビットメモリセル11に書込まれるとともに、そのデータビットがデータビットメモリセル11から出力される。 また、対応する第2のビット線BL2上のサインビットがサインビットメモリセル12に書込まれるとともに、そのサインビットがサインビットメモリセル12から出力される。 【0054】選択された1行に相当する変換回路13がデータビットおよびサインビットに基づいて冗長2進数データを通常2進数データに変換する。 各変換回路13 は変換された通常2進数データの対応するビットを保持するとともにそれを選択回路14に出力する。 【0055】上記のようにして、選択された1行のメモリ回路10内のデータビットメモリセル11およびサインビットメモリセル12に冗長2進数データが記憶され、選択された1行のメモリ回路10内の変換回路13 に通常2進数データが記憶される。 【0056】通常2進数データの書込時にも、同様の動作が行なわれる。 この場合、各メモリ回路10のデータビットメモリセル11には通常2進数データの1ビットが書込まれ、サインビットメモリセル12には“0”が書込まれる。 通常2進数データはそのままの形で冗長2 進数データになるので、通常2進数データから冗長2進数データへの変換のために特別な処理や変換時間は必要ない。 【0057】データの読出時には、読出/書込信号により読出動作が選択される。 デコーダ・制御回路30は、 外部から与えられるアドレス信号ADに応答して複数のワード線WLのうち1つを選択する。 それにより、選択されたワード線WLに接続されるn個のメモリ回路10 が選択される。 その結果、選択された各メモリ回路10 内のデータビットメモリセル11、サインビットメモリセル12および選択回路14が活性状態になる。 外部から与えられる選択信号SELにより通常2進数データまたは冗長2進数データが選択される。 【0058】通常2進数データの読出時には、選択回路14が変換回路13の出力を対応する第1のビット線B L1に与える。 その結果、複数の第1のビット線BL1 上に通常2進数データが読出される。 読出/書込回路2 0は、複数の第1のビット線BL1上の通常2進数データを半導体記憶装置1の外部に出力する。 【0059】冗長2進数データの読出時には、選択回路14がデータビットメモリセル11の出力を対応する第1のビット線BL1に与える。 また、サインビットメモリセル12の出力が対応する第2のビット線BL2に与えられる。 その結果、複数の第1および第2のビット線BL1,BL2上に冗長2進数データが読出される。 読出/書込回路20は、複数の第1および第2のビット線BL1,BL2上の冗長2進数データを半導体記憶装置1の外部に出力する。 【0060】このように、上記実施例の半導体記憶装置においては、外部から通常2進数データおよび冗長2進数データのいずれが与えられても、そのデータは通常2 進数データおよび冗長2進数データの形で記憶される。 したがって、必要に応じて、記憶されたデータを通常2 進数データの形で読出すこともできかつ冗長2進数データの形で読出すこともできる。 【0061】図6は、上記実施例の半導体記憶装置を用いたマイクロプロセッサの構成を示すブロック図である。 マイクロプロセッサ100は第1の演算処理回路1 10、第2の演算処理回路120、レジスタファイル回路130、コントローラ140および入出力インターフェース回路150を含む。 第1の演算処理回路110、 第2の演算処理回路120、レジスタファイル回路13 0および入出力インターフェース150は第1のデータバスDB1に接続されている。 第2の演算処理回路12 0およびレジスタファイル回路130は第2のデータバスDB2にも接続されている。 第1のデータバスDB1 は通常2進数データのためのデータバスであり、第2のデータバスDB2は冗長2進数データのためのデータバスである。 入出力インターフェース回路150には主記憶装置200が接続されている。 【0062】第1の演算処理回路110は通常2進数データを用いて論理演算を実行する。 第2の演算処理回路120は冗長2進数データを用いて算術演算を実行する。 レジスタファイル回路130として、上記実施例の半導体記憶装置1が用いられる。 コントローラ140 は、このマイクロプロセッサ100の各回路の動作を制御する。 入出力インターフェース回路150は、このマイクロプロセッサ100の内部の各回路と外部装置との間のインターフェース制御を行なう。 【0063】次に、図6のマイクロプロセッサ100の動作を説明する。 コントローラ140の指示により主記憶装置200に記憶される通常2進数データのうち必要な通常2進数データが入出力インターフェース回路15 0に取込まれる。 その通常2進数データは、コントローラ140の制御により第1のデータバスDB1を介してレジスタファイル回路130に転送される。 レジスタファイル回路130には、データが通常2進数データの形および冗長2進数データの形で記憶される。 【0064】論理演算の実行時には、必要とする通常2 進数データがレジスタファイル回路130から第1のデータバスDB1を介して第1の演算処理回路110に転送される。 第1の演算処理回路110から演算結果として出力された通常2進数データは第1のデータバスDB 1を介してレジスタファイル回路130に転送される。 【0065】算術演算の実行時には、必要とする冗長2 進数データがレジスタファイル回路130から第2のデータバスDB2を介して第2の演算処理回路120に転送される。 第2の演算処理回路120から演算結果として出力された冗長2進数データは、第2のデータバスD B2を介してレジスタファイル回路130に転送される。 レジスタファイル回路130は、その冗長2進数データを通常2進数データに変換し、それらの冗長2進数データおよび通常2進数データを記憶する。 【0066】レジスタファイル回路130に記憶された通常2進数データは、必要に応じて、第1のデータバスDB1および入出力インターフェース回路150を介して外部の主記憶装置200に転送される。 上記の転送制御は、コントローラ140が行なう。 【0067】通常2進数データは冗長2進数データとみなすこともできるので、第2の演算処理回路120は、 主記憶装置200から入出力インターフェース回路15 0および第1のデータバスDB1を介して直接通常2進数データを受けとり、その通常2進数データを用いて算術演算を実行することもできる。 【0068】図6のマイクロプロセッサ100においては、第1および第2の演算処理回路110,120が通常2進数データと冗長2進数データとの間の相互変換を行なうことなく、第2の演算処理回路120が冗長2進数データを用いた算術演算を実行することができるので、実行速度の高速化が図られる。 【0069】図7は、この発明の他の実施例による半導体記憶装置の構成を示すブロック図である。 【0070】図7の半導体記憶装置1aは複数行および複数列に配列された複数のメモリ回路10a、読出/書込・変換回路20aおよびデコーダ・制御回路30を含む。 メモリ回路10aの各列に対応して第1、第2および第3のビット線BL1,BL2,BL3が設けられている。 メモリ回路10aの各行に対応してワード線WL が設けられている。 【0071】各列の第1、第2および第3のビット線B L1,BL2,BL3は読出/書込・変換回路20aに接続されている。 各列のワード線WLはデコーダ・制御回路30に接続されている。 読出/書込・変換回路20 aには外部から選択信号SEL1および読出/書込信号RWが与えられる。 デコーダ・制御回路30には外部からアドレス信号ADが与えられる。 【0072】図8に、各メモリ回路10aの構成を示す。 メモリ回路10aは、第1のメモリセル21、第2 のメモリセル22および第3のメモリセル23を含む。 第1のメモリセル21は対応する第1のビット線BL1 に接続され、第2のメモリセル22は対応する第2のビット線BL2に接続され、第3のメモリセル23は対応する第3のビット線BL3に接続されている。 また、第1のメモリセル21、第2のメモリセル22および第3 のメモリセル23の制御端子は対応するワード線WLに接続されている。 第1、第2および第3のメモリセル2 1,22,23の各々は、1ビットのデータを記憶する。 【0073】第1のビット線BL1には通常2進数データの各ビットが与えられる。 第2のビット線BL2には冗長2進数データの各桁のサインビットが与えられる。 第3のビット線BL3には冗長2進数データの各桁のデータビットが与えられる。 第1のメモリセル21は通常2進数データの1ビットを記憶し、第2のメモリセル2 2は冗長2進数データの1つの桁のサインビットを記憶し、第3のメモリセル23は冗長2進数データの1つの桁のデータビットを記憶する。 【0074】図9に、読出/書込・変換回路20aの構成を示す。 図9には、1ビットに相当する回路部分20 0のみが示される。 実際には、読出/書込・変換回路2 0aは、複数ビットに対応して、図9に示される構成を有する複数の回路部分200を含む。 【0075】回路部分200は、変換回路13、選択回路14a,14b、NチャネルMOSトランジスタT 7,T8およびインバータG12を含む。 入出力端子D Bはデータビットを受け、入出力端子SBはサインビットを受ける。 入力端子RWIは読出/書込信号RWを受ける。 桁上げ入力端子CIは下位ビットに相当する回路部分から桁上げ信号CRを受ける。 桁上げ出力端子CO から出力される桁上げ信号CRは、上位ビットに相当する回路部分に与えられる。 【0076】選択回路14aのセレクト端子saは、書込のための選択信号SEL1を受ける。 選択回路14b のセレクト端子saは、読出のための選択信号SEL2 を受ける。 選択回路14aの出力端子soおよび選択回路14bの入力端子bは、ビット線BL1に接続される。 変換回路13の入力端子Aは、ビット線BL2に接続される。 変換回路13の入力端子Bは、ビット線BL 3に接続される。 【0077】読出/書込信号RWが“1”のときには、 読出動作が行なわれる。 このとき、トランジスタT7がオフし、トランジスタT8がオンする。 選択回路14b は、選択信号SEL2に応答して、ビット線BL1に読出された通常2進数データのビットおよびビット線BL 3に読出された冗長2進数データのデータビットのうち一方を選択し、それを入出力端子DBに与える。 入出力端子SBには、ビット線BL2に読出されたサインビットが与えられる。 【0078】読出/書込信号RWが“0”のときには、 書込動作が行なわれる。 このとき、トランジスタT7がオンし、トランジスタT8がオフする。 それにより、入出力端子DBに与えられた通常2進数データのビットまたは冗長2進数データのデータビットが、ビット線BL 3、変換回路13の入力端子Bおよび選択回路14aの入力端子aに与えられる。 入出力端子SBに与えられる冗長2進数データのサインビットは、ビット線BL2および変換回路13の入力端子Aに与えられる。 【0079】選択回路14aは、選択信号SEL1に応答して、入力端子aに与えられる通常2進数データのビットまたは冗長2進数データのデータビットおよび入力端子bに与えられる変換回路13の出力信号のうち一方を選択し、それをビット線BL1に与える。 【0080】次に、図7および図8を参照しながらこの実施例の半導体記憶装置1aの動作を説明する。 【0081】冗長2進数データの書込時には、読出/書込信号RWおよび選択信号SEL1により冗長2進数データの書込動作が選択される。 それにより、読出/書込・変換回路20aは、外部から与えられる冗長2進数データDを通常2進数データに変換する。 さらに、読出/ 書込・変換回路20aは、変換された通常2進数データの各ビットを各第1のビット線BL1に与え、外部から与えられた冗長2進数データの各桁のサインビットを各第2のビット線BL2に与え、外部から与えられた冗長2進数データの各桁のデータビットを各第3のビット線BL3に与える。 【0082】一方、デコーダ・制御回路30は、外部から与えられるアドレス信号ADに応答して複数のワード線WLのうち1つを選択する。 それにより、選択されたワード線WLに接続される各メモリセル10a内の第1、第2および第3のメモリセル21,22,23が活性状態なる。 その結果、複数の第1のビット線BL1上の通常2進数データが1行のメモリ回路10a内の第1 のメモリセル21に書込まれる。 また、複数の第2のビット線BL2上の冗長2進数データのサインビットが1 行のメモリ回路10a内の第2のメモリセル22に書込まれ、複数の第3のビット線BL3上の冗長2進数データのデータビットが1行のメモリ回路10a内の第3のメモリセル23に書込まれる。 【0083】通常2進数データの書込時には、外部から与えられる読出/書込信号RWおよび選択信号SEL1 により通常2進数データの書込動作が選択される。 この場合、読出/書込・変換回路20aは、外部から与えられた通常2進数データの各ビットを各第1のビット線B L1および各第3のビット線BL3に与えるとともに、 “0”を各第2のビット線BL2に与える。 【0084】一方、デコーダ・制御回路30は、外部から与えられるアドレス信号ADに応答して複数のワード線WLのうち1つを選択する。 それにより、選択されたワード線WLに接続された各メモリセル10a内の第1、第2および第3のメモリセル21,22,23が活性状態になる。 その結果、複数の第1および第3のビット線BL1,BL3上の通常2進数データが1行のメモリ回路10a内の第1のメモリセル21および第3のメモリセル23に書込まれ、第2のメモリセル22に“0”が書込まれる。 【0085】冗長2進数データの読出時には、読出/書込信号RWおよび選択信号SEL1により冗長2進数データの読出動作が選択される。 この場合にも、デコーダ・制御回路30により1つのワード線WLが選択され、 その選択されたワード線WLに接続された各メモリ回路10a内の第1、第2および第3のメモリセル21,2 2,23が活性状態になる。 その結果、各第1のメモリセル21に記憶された通常2進数データの各ビットが対応する第1のビット線BL1に読出される。 また、各第2のメモリセル22に記憶された冗長2進数データの各桁のサインビットが対応する第2のビット線BL2に読出され、各第3のメモリセル23に記憶された冗長2進数データの各桁のデータビットが対応する第3のビット線BL3に読出される。 この場合、読出/書込・変換回路20aは、複数の第2および第3のビット線BL2, BL3上の冗長2進数データを外部に出力する。 【0086】通常2進数データの読出時には、読出/書込信号RWおよび選択信号SEL1により通常2進数データの読出動作が選択される。 この場合も、上記と同様にして、各第1のビット線BL1に通常2進数データの各ビットが読出され、各第2のビット線BL2に冗長2 進数データの各桁のサインビットが読出され、各第3のビット線BL3に冗長2進数データの各桁のデータビットが読出される。 この場合、読出/書込・変換回路20 aは、複数の第1のビット線BL1上の通常2進数データを外部に出力する。 【0087】この実施例では、各メモリ回路10aが変換回路を含まず、半導体記憶装置1a内に1つの変換回路のみが設けられているので、回路規模が小さくなる。 【0088】この実施例においても、通常2進数データおよび冗長2進数データのいずれが書込まれても、そのデータが通常2進数データおよび冗長2進数データの両方の形で記憶される。 したがって、この実施例の半導体記憶装置1aを図6に示されるマイクロプロセッサ10 0のレジスタファイル回路130として用いると、高速な演算処理が可能となる。 【0089】 【発明の効果】以上のように第1および第2の発明によれば、データの書込時に、そのデータが通常2進数および冗長2進数の両方の形で記憶されるので、データの読出時に、必要な形のデータをただちに読出すことができる。 したがって、このデータを利用する他の回路において通常2進数データと冗長2進数データとの間の相互変換の処理を行なう必要がない。 その結果、第1および第2の発明に係る半導体記憶装置を用いれば高速処理が可能な半導体集積回路装置を得ることができる。 【図面の簡単な説明】 【図1】この発明の一実施例による半導体記憶装置の構成を示すブロック図である。 【図2】同実施例の半導体記憶装置に含まれるメモリ回路の構成を示すブロック図である。 【図3】冗長2進数データの表現方法の一例を示す図である。 【図4】変換回路の構成を示す回路図である。 【図5】選択回路の構成を示す回路図である。 【図6】同実施例の半導体記憶装置を利用したマイクロプロセッサの構成を示すブロック図である。 【図7】この発明の他の実施例による半導体記憶装置の構成を示すブロック図である。 【図8】図7の実施例の半導体記憶装置に含まれるメモリ回路の構成を示すブロック図である。 【図9】読出/書込・変換回路の構成を示す図である。 【図10】通常2進数を用いた加算の一例を示す図である。 【図11】冗長2進数を用いた加算の一例を示す図である。 【図12】従来のマイクロプロセッサの実行部の構成を示すブロック図である。 【符号の説明】 1…半導体記憶装置 10…メモリ回路 11…データビットメモリセル 12…サインビットメモリセル 13…変換回路 14…選択回路 20…読出/書込回路 30…デコーダ・制御回路 BL1…第1のビット線 BL2…第2のビット線 WL…ワード線 なお、各図中同一符号は同一または相当部分を示す。 |