JP2006323695A - Computer device - Google Patents
Computer device Download PDFInfo
- Publication number
- JP2006323695A JP2006323695A JP2005147254A JP2005147254A JP2006323695A JP 2006323695 A JP2006323695 A JP 2006323695A JP 2005147254 A JP2005147254 A JP 2005147254A JP 2005147254 A JP2005147254 A JP 2005147254A JP 2006323695 A JP2006323695 A JP 2006323695A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- bits
- decoder
- parity
- error correction
- 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.)
- Pending
Links
Images
Abstract
Description
この発明は、コンピュータ装置に関し、特に内蔵メモリからの読み出し時にECC(Error Check and Correct:誤り検出訂正)機能を実現するコンピュータ装置に関するものである。 The present invention relates to a computer apparatus, and more particularly to a computer apparatus that realizes an ECC (Error Check and Correct) function when reading from a built-in memory.
内蔵メモリからの読み出し時にECC機能を実現するには、内蔵メモリにパリティビットを付加して誤り訂正符号化したデータを格納しておくことになるが、例えば、特許文献1では、パリティビットを付加して誤り訂正符号化したデータをメモリセルアレイに書き込む機能と、メモリセルアレイから読み出したデータに誤りがある場合には訂正する機能とを備えたECC機能付き半導体記憶装置が開示されている。 In order to realize the ECC function at the time of reading from the built-in memory, the parity bit is added to the built-in memory and the error correction encoded data is stored. For example, in Patent Document 1, the parity bit is added. Thus, a semiconductor memory device with an ECC function is disclosed which has a function of writing error correction encoded data into a memory cell array and a function of correcting data read from the memory cell array when there is an error.
ところで、コンピュータ装置が使用する内蔵メモリには、一般データの他に命令コードも格納される。そして、その命令コードには、できるだけ早くメモリから読み出す必要のある命令コード(例えば加算命令など処理に時間の掛かる命令コード)がある一方で、命令コードの読み出しに引き続いて実行される一般データや、処理時間の短い命令コード(例えば論理演算命令コード)などは、早く読み出す必要はない。 By the way, in addition to general data, an instruction code is also stored in the built-in memory used by the computer device. The instruction code includes an instruction code that needs to be read from the memory as soon as possible (for example, an instruction code that takes time for processing such as an addition instruction), while the general data that is executed following the reading of the instruction code, An instruction code with a short processing time (for example, a logical operation instruction code) does not need to be read out quickly.
しかしながら、上記文献に記載の技術では、メモリから読み出した全てのデータは同じECC回路(誤り訂正回路)にて誤り訂正処理を受ける構成であるので、上記文献に記載の技術を内蔵メモリからの読み出し時にECC機能を実現するコンピュータ装置に適用すると、一般データと命令コードとの区別なく、同じECC回路にて誤り訂正処理を受けるので、早く読み出す必要のある命令コードも一般データと同じ遅延時間で出力されることになる。この場合に、ECC回路は、上記文献にも示されているように、排他的論理和回路を含む多段の論理回路で構成されるので、遅延時間を短縮することは困難である。 However, in the technique described in the above document, since all data read from the memory is subjected to error correction processing by the same ECC circuit (error correction circuit), the technique described in the above document is read from the built-in memory. Sometimes applied to a computer device that realizes the ECC function, error codes are processed by the same ECC circuit without distinguishing between general data and instruction codes, so that instruction codes that need to be read out quickly are output with the same delay time as general data Will be. In this case, the ECC circuit is composed of a multi-stage logic circuit including an exclusive OR circuit as shown in the above-mentioned document, so that it is difficult to shorten the delay time.
したがって、内蔵メモリからの読み出し時にECC機能を実現するコンピュータ装置では、内蔵メモリからの読み出し時に行う誤り訂正処理を、一般データと命令コードとに分けて行い、命令コード側の誤り訂正処理は一般データ側の誤り訂正処理よりも早く行えるようにする必要があるが、遅延時間の短い命令コード側の誤り訂正処理をどのようにして実現するかが問題である。 Therefore, in a computer device that realizes the ECC function when reading from the built-in memory, error correction processing performed when reading from the built-in memory is performed separately for general data and instruction codes, and error correction processing on the instruction code side is performed using general data. It is necessary to make the error correction process faster than the error correction process on the side, but how to implement the error correction process on the instruction code side with a short delay time is a problem.
この発明は、上記に鑑みてなされたものであり、内蔵メモリからの読み出し時にECC機能を実現する場合に、高速にメモリからの読み出しが必要な命令コードの処理系での遅延時間の削減を図ったコンピュータ装置を得ることを目的とする。 The present invention has been made in view of the above, and aims to reduce a delay time in a processing system of an instruction code that needs to be read from the memory at a high speed when the ECC function is realized at the time of reading from the built-in memory. An object is to obtain a computer apparatus.
上述した目的を達成するために、この発明は、第1のビット長を持つデータビット列の全体を対象とした第1のパリティビットを付加した第1のビット長+第1のパリティビットからなる第1のビット列と、前記第1のビット長よりも短い第2のビット長を持つ第2の命令コードに第2のパリティビットを付加した第2のビット列であって、当該第2のビット長を複数個に分割した単位ビット長毎に前記第2のパリティビットを付加した単位ビット長+第2のパリティビットを一組とする所定数からなる第2のビット列とを格納する内蔵メモリと、前記内蔵メモリから読み出した前記第1のビット列について誤り訂正を行う誤り訂正回路と、前記内蔵メモリから読み出した前記第2のビット列について、誤り訂正と訂正後の処理であるデコードとを並行して行う誤り訂正・デコーダとを備えたことを特徴とする。 To achieve the above object, the present invention provides a first bit length plus a first parity bit to which a first parity bit for the entire data bit string having the first bit length is added. 1 bit string and a second bit string obtained by adding a second parity bit to a second instruction code having a second bit length shorter than the first bit length, wherein the second bit length is A built-in memory for storing a unit bit length obtained by adding the second parity bit for each unit bit length divided into a plurality of units + a second bit string having a predetermined number of second parity bits as a set; An error correction circuit that performs error correction on the first bit string read from the built-in memory, and a decoding that is a process after error correction and correction for the second bit string read from the built-in memory. Characterized by comprising an error correction decoder for performing in parallel and.
この発明によれば、内蔵メモリには、第1のビット長を持つデータビット列(主に一般データである)と、命令コード(主に高速要命令コードである)とが誤り訂正符号化の形式を異ならせて格納し、データビット列を含む第1のビット列に対しては、一般に用いられている誤り訂正回路を適用し、命令コードを含む第2のビット列に対しては、誤り訂正と訂正後の処理であるデコードとを共用化し経由段数を減らした誤り訂正・デコーダを適用する。これによって、命令コードは、複数段の論理ゲートを経由せずに、経由段数の少ない誤り訂正の過程で得ることができるので、高速読み出しを必要とする命令コードを遅延時間少なく内蔵メモリから読み出すことができる。 According to the present invention, the built-in memory includes a data bit string having a first bit length (mainly general data) and an instruction code (mainly high-speed instruction code) in the form of error correction encoding. Are stored differently, a commonly used error correction circuit is applied to the first bit string including the data bit string, and error correction and correction are applied to the second bit string including the instruction code. An error correction / decoder with a reduced number of via stages is used in common with the decoding process. As a result, instruction codes can be obtained in the process of error correction with a small number of transit stages without going through multiple stages of logic gates, so that instruction codes that require high-speed reading can be read from the built-in memory with a short delay time. Can do.
この発明によれば、内蔵メモリからの読み出し時にECC機能を実現する場合に、高速にメモリからの読み出しが必要な命令コードの処理系での遅延時間の削減を図ったコンピュータ装置が得られるという効果を奏する。 According to the present invention, when the ECC function is realized at the time of reading from the built-in memory, it is possible to obtain a computer device that can reduce the delay time in the processing system of the instruction code that needs to be read from the memory at high speed. Play.
以下に図面を参照して、この発明にかかるコンピュータ装置の好適な実施の形態を詳細に説明する。 Exemplary embodiments of a computer apparatus according to the present invention will be described below in detail with reference to the drawings.
図1は、この発明の一実施の形態によるコンピュータ装置の構成を示すブロック図である。図1において、コンピュータ装置の主要素であるCPU1は、汎用レジスタ11とALU(演算装置)12とを備えている。CPU1には、高速読み出しが不要(以降「高速不要」という)の命令コードをデコードする高速不要命令デコーダ13と、ECC・デコーダ14と、セレクタ15とが追加されている。
FIG. 1 is a block diagram showing a configuration of a computer apparatus according to an embodiment of the present invention. In FIG. 1, a CPU 1 that is a main element of a computer apparatus includes a general-
CPU1が使用する内蔵メモリ2は、例えば21ビット単位で書き込みと読み出しとが行えるメモリである。内蔵メモリ2は、CPU1のアドレスバス/制御信号ラインが接続されるアドレスバス/制御信号ポート2aと、21ビットのデータ入出力を行うデータ入力ポート2bおよびデータ出力ポート2cとを備えている。
The built-in memory 2 used by the CPU 1 is a memory capable of writing and reading in units of 21 bits, for example. The built-in memory 2 includes an address bus /
CPU1と内蔵メモリ2との間には、パリティ生成回路3と従来型ECC回路4とが設けられている。CPU1が出力する書き込みデータ列は、内蔵メモリ2のデータ入力ポート2bとパリティ生成回路3とに入力される。パリティ生成回路3は、CPU1が出力する書き込みデータ列にパリティビットを付加する論理演算を行い、求めた数のパリティビットを内蔵メモリ2のデータ入力ポート2bに出力する。
A
CPU1が内蔵メモリ2に出力する書き込みデータ列は、汎用レジスタ11の内容であるが、この実施の形態では、16ビット構成のものと、12ビット構成のものとからなるとしている。16ビット構成のデータ列は、一般データと高速不要の命令コードとに適用される。12ビット構成のデータ列は、高速読み出しが必要(以降「高速要」という)である命令コードに適用される。
The write data string output from the CPU 1 to the built-in memory 2 is the contents of the general-
なお、この実施の形態では、CPU1が命令コードも内蔵メモリ2に書き込む場合を示すが、内蔵メモリ2にマスクROMやEEPROMを用いるなど内蔵メモリ2の性格などによっては、命令コードは外部から直接書き込まれる場合もある。 In this embodiment, the CPU 1 writes the instruction code in the built-in memory 2. However, depending on the nature of the built-in memory 2 such as using a mask ROM or EEPROM in the built-in memory 2, the instruction code is directly written from the outside. Sometimes it is.
パリティ生成回路3は、CPU1が出力する書き込みデータ列が16ビット構成であるときは、16ビットの全体を対象とするパリティ5ビットを演算し、そのパリティ5ビットを内蔵メモリ2のデータ入力ポート2bに出力する。また、CPU1が出力する書き込みデータ列が12ビット構成であるときは、後述する方法で演算したパリティ9ビットを内蔵メモリ2のデータ入力ポート2bに出力する。
When the write data string output from the CPU 1 has a 16-bit configuration, the
要するに、内蔵メモリ2には、書き込みデータ列にパリティが付加された21ビット構成で格納されるが、この実施の形態では、CPU1が出力するデータ列が16ビット構成で、それにパリティ5ビットが付加される高速不要命令コードでは、データビット16+パリティ5ビットの形式で格納されるのに対し、データ列が12ビット構成で、それにパリティ9ビットが付加される高速要命令コードでは、「データ4ビット+パリティ3ビット」の7ビット×3の形式で格納される。
In short, the built-in memory 2 stores in a 21-bit configuration in which parity is added to the write data sequence, but in this embodiment, the data sequence output by the CPU 1 has a 16-bit configuration and 5 bits of parity is added to it. The high-speed unnecessary instruction code is stored in the format of data bit 16 + parity 5 bits, whereas the high-speed instruction code in which the data string has a 12-bit configuration and a parity of 9 bits is added to “data 4 bits”. It is stored in the format of 7 bits × 3 of “+
従来型ECC回路4は、一般的に用いられているECC回路(誤り訂正回路)であり、例えば特許文献1に示されるECC回路も用いることができる。この従来型ECC回路4には、内蔵メモリ2のデータ出力ポート2bから出力される21ビットのデータ列のうち、データ16ビット+パリティ5ビットのデータ列が入力される(図2(1)参照)。つまり、従来型ECC回路4には、一般データと高速不要命令コードとが入力される。従来型ECC回路4にて誤り訂正された16ビットの一般データは汎用レジスタ11に出力され、誤り訂正された16ビットの高速不要命令コードは高速不要命令デコーダ13に入力される。
The conventional ECC circuit 4 is a commonly used ECC circuit (error correction circuit). For example, an ECC circuit disclosed in Patent Document 1 can also be used. Of the 21-bit data string output from the
高速不要命令デコーダ13は、汎用レジスタ11とALU12とを選択する2系統のデコード出力を行う。図1では、セレクタ15に対しては32ビット(16ビット+16ビット)を出力し、ALU12に対しては2ビットを出力するとしている。
The high-speed
一方、ECC・デコーダ14には、内蔵メモリ2のデータ出力ポート2bから出力される21ビットのデータ列のうち、データ12ビット+パリティ9ビット(「データ4ビット+パリティ3ビット」の7ビット×3)のデータ列(図2(2)参照)が入力される。つまり、ECC・デコーダ14には、高速要命令コードが入力される。
On the other hand, in the
ECC・デコーダ14は、誤り訂正を行う回路部分(高速型ECC回路14a)と、訂正後のデータ処理回路の一部であるデコーダ(高速要命令デコーダ14b)とを一体化構成したものである。図1では、理解を容易にするため、従来型ECC回路4に対応する高速型ECC回路14aと、高速不要命令デコーダ13に対応する高速要命令デコーダ14bとにブロック分けして示してあるが、実際には区別できない(図3〜図6参照)。
The ECC /
ECC・デコーダ14は、汎用レジスタ11とALU12とを選択する2系統のデコード出力を行う。図1では、セレクタに対しては32ビット(16ビット+16ビット)を出力し、ALU12に対しては15ビットを出力し、セレクタ15に1ビットを出力するとしている。
The ECC /
セレクタ15は、ECC・デコーダ14からの1ビットを選択指令とし、ECC・デコーダ14が出力する汎用レジスタ11への32ビット(16ビット+16ビット)と、高速不要命令デコーダ13が出力する汎用レジスタ11への32ビット(16ビット+16ビット)との一方を選択して汎用レジスタ11に与えるようになっている。
The selector 15 uses 1 bit from the
次に、図2を参照して、内蔵メモリ2に書き込まれ読み出される高速不要命令コードと高速要命令コードの各ビット構成について説明する。これは、パリティ生成回路3の動作を説明する図でもある。
Next, with reference to FIG. 2, the bit configuration of the high-speed unnecessary instruction code and the high-speed required instruction code written to and read from the internal memory 2 will be described. This is also a diagram for explaining the operation of the
図2(1)は、高速不要命令デコーダへの入力ビットの構成例を示す図である。パリティ生成回路3は、CPU1から高速不要命令コードの出力通知を受け取ると、CPU1が出力する16ビット(D0〜D15)の全データビットに論理演算を施して、5ビットのパリティビットD16〜D20を生成する。この場合、CPU1が出力する16ビットの高速不要命令コードでは、ビットD4〜D6,D11,D12には、パリティ5ビットをゼロにするための論理値が設定されている。つまり、内蔵メモリ2から従来型ECC回路4に入力する21ビットの高速不要命令コードでは、ビットD16〜D20が全て“0”になっている。
FIG. 2A is a diagram showing a configuration example of input bits to the high-speed unnecessary instruction decoder. When the
高速不要命令デコーダ13では、従来型ECC回路4から、誤り訂正を行った図2(1)に示す16ビット(ビットD0〜D15)の高速不要命令コードを受け取ると、ビットD7〜D10の5ビットを汎用レジスタ(ソース1)選択用に用い、ビットD0〜D3の4ビットを汎用レジスタ(ソース2/ディスティネーション)選択用に用い、ビットD13を命令選択用に用いるようになっている。
When the high-speed
図2(2)は、ECC・デコーダ14への入力ビットの構成例を示す図である。ECC・デコーダ14は、後述するように7ビット単位で処理動作を行うので、パリティ生成回路3は、CPU1から高速要命令コードの出力通知を受け取ると、CPU1が出力する12ビットのデータを、「D0〜D3」「D7〜D10」「D14〜D17」と4ビット単位で分割し、各4ビットのデータビットに論理演算を施して、3ビットのパリティビット「D4〜D6」「D11〜D13」「D18〜D20」を生成する。その結果、ECC・デコーダ14には、内蔵メモリ2から21ビットの高速要命令コードが、「D0〜D6」「D7〜D13」「D14〜D20」の組み合わせで入力される。
FIG. 2 (2) is a diagram showing a configuration example of input bits to the ECC /
この場合、パリティ生成回路3は、12ビット構成の高速要命令コードへの各3ビットのパリティビットを次のようにして求める。すなわち、「^」を排他的論理和の記号とすれば、「D4〜D6」は、D4=D0^D1^D3、D5=D0^D2^D3、D6=D1^D2^D3の演算を行って生成する。また、「D11〜D13」は、D11=D7^D8^D10、D12=D7^D9^D10、D6=D8^D9^D10の演算を行って生成する。また、「D18〜D20」は、D18=D14^D15^D17、D19=D14^D16^D17、D20=D15^D16^D17の演算を行って生成する。
In this case, the
ECC・デコーダ14では、ビットD0〜D6の7ビットを汎用レジスタ(ソース2/ディスティネーション)選択用として用い、ビットD7〜D13の7ビットを汎用レジスタ(ソース1)選択用として用い、ビットD14〜D21の7ビットを命令選択用として用いる。そして、命令選択用の7ビット(ビットD14〜D21)をデコードした16ビット中の1ビットがセレクタ15に出力される。ビットD17〜D14が全て“0”であるときはビットD20〜D18も全て“0”であるので、この場合には、高速不要命令デコーダ13の出力が選択され汎用レジスタ11に与えられる。上記以外の場合には、ECC・デコーダ14の出力が選択され汎用レジスタ11に与えられる。
The
図3は、図1に示すECC・デコーダ14の機能的な構成を説明する図である。図2(2)に示すビット構成から理解できるように、ECC・デコーダ14は、機能的に、データ4ビット+パリティ3ビットの7ビットを16ビットにデコードする7to16デコーダ31,32,33の3デコーダで構成される。
FIG. 3 is a diagram for explaining a functional configuration of the ECC /
7to16デコーダ31は、A〜G入力として、ビットD14〜D21がデータビットD0〜D3,パリティビットP0〜P2として入力し、Y00〜Y15の16ビットが命令選択信号として出力される。そのうちの15ビットがALU12に与えられ、1ビットがセレクタ15に与えられる。
In the
7to16デコーダ32は、A〜G入力として、ビットD7〜D13がデータビットD0〜D3,パリティビットP0〜P2として入力し、Y00〜Y15の16ビットが汎用レジスタ選択信号(ソース1)としてセレクタ15に出力される。
The 7 to 16
7to16デコーダ33は、A〜G入力として、ビットD0〜D6がデータビットD0〜D3,パリティビットP0〜P2として入力し、Y00〜Y15の16ビットが汎用レジスタ選択信号(ソース2/ディスティネーション)としてセレクタ15に出力される。
The
図4−1は、図3に示す7to16デコーダの入力段を構成する3to8デコーダを示す図である。図4−2は、図3に示す7to16デコーダの出力段を構成するRデコーダを示す図である。 FIG. 4A is a diagram illustrating a 3to8 decoder that constitutes an input stage of the 7to16 decoder illustrated in FIG. 3. FIG. 4B is a diagram of an R decoder constituting the output stage of the 7to16 decoder shown in FIG.
図3に示す3つの7to16デコーダ31,32,33は、一体的に構成され、その入力段は、図4−1に示すように、7個の3to8デコーダ41a〜41gで構成され、その出力段は、図4−2に示すように、16個のRデコーダ4200〜4215で構成されている。
The three 7to16
図4−1において、A〜Gの7ビット信号のうち、EFGの3ビットは3to8デコーダ41aの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたEFG0〜EFG7の8ビット信号が出力される。AFGの3ビットは3to8デコーダ41bの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたAFG0〜AFG7の8ビット信号が出力される。ABGの3ビットは3to8デコーダ41cの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたABG0〜ABG7の8ビット信号が出力される。ABCの3ビットは3to8デコーダ41dの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたABC0〜ABC7の8ビット信号が出力される。BCDの3ビットは3to8デコーダ41eの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたBCD0〜BCD7の8ビット信号が出力される。CDEの3ビットは3to8デコーダ41fの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたCDE0〜CDE7の8ビット信号が出力される。DEFの3ビットは3to8デコーダ41gの入力端X1,X2,X3に印加され、出力端Y0〜Y7からデコードしたDEF0〜DEF7の8ビット信号が出力される。
4A, among the 7-bit signals A to G, 3 bits of EFG are applied to the input terminals X1, X2, and X3 of the
図4−2において、16個のRデコーダ4200〜4215は、14個の入力端「A0,A1,B0,B1,C0,C1,D0,D1,E0,E1,F0,F1,G0,G1」を備え、1つ出力端Yを備えている。そして、14個の入力端では、7個の3to8デコーダ41a〜41gの出力ビットのうち、Aビット信号を除いた出力ビットが入力端「A0,A1」に入力され、Bビット信号を除いた出力ビットが入力端「B0,B1」に入力され、Cビット信号を除いた出力ビットが入力端「C0,C1」に入力され、Dビット信号を除いた出力ビットが入力端「D0,D1」に入力され、Eビット信号を除いた出力ビットが入力端「E0,E1」に入力され、Fビット信号を除いた出力ビットが入力端「F0,F1」に入力され、Gビット信号を除いた出力ビットが入力端「G0,G1」に入力される。
In FIG. 4B, the 16
次に、図4−1に示す7個の3to8デコーダ41a〜41gは、それぞれ例えば図5に示すように構成されている。図5において、入力端X1に印加されるデータビットは、インバータ回路52にて反転されてNAND回路57,59の一方の入力となり、さらにインバータ回路55にて反転されてNAND回路56,58の一方の入力となる。入力端X2に印加されるデータビットは、インバータ回路51にて反転されてNAND回路58,59の他方の入力となり、さらにインバータ回路54にて反転されてNAND回路56,57の他方の入力となる。
Next, the seven
NAND回路59の出力は、NOR回路として動作するインバータ付きAND回路63,67の一方の入力端に印加される。NAND回路58の出力は、NOR回路として動作するインバータ付きAND回路62,66の一方の入力端に印加される。NAND回路57の出力は、NOR回路として動作するインバータ付きAND回路61,65の一方の入力端に印加される。NAND回路56の出力は、NOR回路として動作するインバータ付きAND回路60,64の一方の入力端に印加される。
The output of the
入力端X3に印加されるデータビットは、インバータ回路50にて反転されてインバータ付きAND回路60,61,62,63の他方の入力端に印加され、さらにインバータ回路53にて反転されてインバータ付きAND回路64,65,66,67の他方の入力端に印加される。これによって、8個のインバータ付きAND回路67〜60の出力に、3ビット入力のデコード結果(Y0〜Y7)が得られる。
The data bit applied to the input terminal X3 is inverted by the
次に、図4−2に示す16個のRデコーダ4200〜4215は、それぞれ例えば図6に示すように構成されている。図6において、入力端A0,A1に印加される2ビットデータは、AND回路70を介してNOR回路78の一方の入力となり、入力端B0,B1に印加される2ビットデータは、AND回路71を介してNOR回路78の他方の入力となる。入力端C0,C1に印加される2ビットデータは、AND回路72を介してNOR回路79の一方の入力となり、入力端D0,D1に印加される2ビットデータは、AND回路73を介してNOR回路79の他方の入力となる。NOR回路78,79の出力はNAND回路として動作するインバータ付きOR回路81を介してNOR84の一方の入力となる。
Next, the 16
入力端E0,E1に印加される2ビットデータは、AND回路74を介してNOR回路80の一方の入力となり、入力端F0,F1に印加される2ビットデータは、AND回路75を介してNOR回路80の他方の入力となる。NOR回路80の出力はOR回路83のインバータ端に入力される。入力端G0に印加されるビットデータは、インバータ回路76にて反転されNOR回路として動作するインバータ付きAND回路82の一方の入力となる。入力端G1に印加されるビットデータは、インバータ回路77にて反転されインバータ付きAND回路82の他方の入力となる。インバータ付きAND回路82の出力はOR回路83の非インバータ端に入力される。OR回路83の出力はNOR84の他方の入力となる。これによって、NOR84の出力に、14個の入力ビットデータから選択された1つのビットデータYが得られる。
The 2-bit data applied to the input terminals E0 and E1 becomes one input of the NOR
次に、動作について説明する。従来型ECC回路4では、内蔵メモリ2から読み出される、データ16ビット+パリティ5ビット構成の21ビットデータに誤り訂正を施し、図2(1)において、データビットD20〜D16(パリティ5ビット)が全て“0”である場合のデータビットD15〜D0が高速不要命令デコーダ13に与えられ、データビットD20〜D16(パリティ5ビット)が全て“0”以外である一般データの16ビットが汎用レジスタ11に与えられる。
Next, the operation will be described. In the conventional ECC circuit 4, error correction is performed on 21-bit data composed of 16 bits of data and 5 bits of parity, which is read from the built-in memory 2, and data bits D20 to D16 (parity 5 bits) in FIG. Data bits D15 to D0 when all are "0" are given to the high-speed
高速不要命令デコーダ13は、図1では汎用レジスタ11の選択に「16ビット+16ビット」を出力するとしてあるが、高速不要命令コードは、図2(1)において、データビットD15=D14=“0”であり、「×」印のデータビットD12,D11,D6〜D4は、特別のデータビットである。したがって、高速不要命令デコーダ13は、実際には、データビットD10〜D7の4ビットをデコードして8ビットの汎用レジスタ選択信号(ソース1)を出力し、データビットD3〜D0の4ビットをデコードして8ビットの汎用レジスタ選択信号(ソース2/ディスティネーション)を出力する。そして、データビットD13をデコードした2ビットの命令選択信号をALU12に出力する。
The high-speed
一方、ECC・デコーダ14では、上記した構成によって、高速化が必要な命令コード12ビットについての誤り訂正と訂正後のデータ処理であるデコードとを並行して行えるようにし、遅延時間の短縮化を可能にしている。以下、具体的に説明する。
On the other hand, the ECC /
図2(2)にて説明したように、図3に示した7to16デコーダ31〜33の3デコーダの各入力A〜Gのうち、入力E〜Gは、任意のデータビットA〜D(D0〜D3)に対して、E=A^B^D、F=A^C^D、G=B^C^Dの演算を施して生成されたパリティビットP0〜P2である。したがって、この例では、誤りなしの命令コードは、全部で24=16種類作ることができる。このようにしておくと、1ビットの誤りのある命令コードは、他の15種類の誤りのない命令コードと、それらに1ビットの誤りのある命令コードとに一致しないので、1ビットの誤りのある命令コードから元の誤りのない命令コードを同定することができる。
As described in FIG. 2B, among the inputs A to G of the three decoders 7 to 16
ECC・デコーダ14では、このようなデータ4ビット+パリティ3ビット構成の7ビットを単位にして、7to16のデコードを行う。一般に、例えば4to16のデコードでは、16個の4入力AND回路に、データ4ビットをそのまま入力する、または反転したデータ4ビットを入力し、それらの出力のORを取る構成が採用される。
The ECC /
ECC・デコーダ14での7to16のデコードを同様の構成で行うと、入力A〜Gの1つに誤りがある場合に出力がイネーブルにならない。そこで、例えば、入力Aに誤りのある場合を想定して入力Aを無視した6入力(B〜G)をそのまま、または反転してAND回路に入力する構成を採用する。入力B〜Gについても同様である。
If 7 to 16 decoding by the
要するに、ECC・デコーダ14での7to16のデコードでは、それらのどの場合にも対応できるように、入力A〜G(または反転したA〜G)の1入力を無視した7通りの6入力についてANDを取り、それによる7入力のORを取る構成を採る。そして、ゲート段数を減らした構成にしている。
In short, in the 7 to 16 decoding by the
具体的には、6入力ANDは、3入力AND(図5)の2個と図6の入力段に示す2入力ANDの1個とで構成され、7入力ORは、図6に示す78〜80,81〜84の6つで構成される。そして、入力A〜G(または反転したA〜G)の1入力を無視した7通りの6入力ANDが構成できるように、2つの3入力AND(図5)の入力の組み合わせを、図4−1での3入力に示すように、重複しないように定めている。 Specifically, the 6-input AND is composed of two 3-input ANDs (FIG. 5) and one 2-input AND shown in the input stage of FIG. 80, 81 to 84. Then, combinations of two three-input ANDs (FIG. 5) are combined so that seven types of six-input ANDs ignoring one input of inputs A to G (or inverted A to G) can be configured. As shown in 3 inputs in 1, it is determined not to overlap.
これによって、図4−2に示す16個のRデコーダ4200〜4215の出力Y00〜Y15には、入力A〜Gの1ビット誤りを無視したデコード信号が出力され、誤り訂正されたデコード信号が出力されることになる。
As a result, decode signals ignoring 1-bit errors of the inputs A to G are output to the outputs Y00 to Y15 of the 16
従来型ECC回路4および高速不要命令デコーダ13では、内蔵メモリ2の読み出しデータが入力されてからデコード出力が得られるまでに、例えば特許文献1に示されているように、10段以上のゲートを通過する必要がある。
In the conventional ECC circuit 4 and the high-speed
これに対して、この実施の形態によるECC・デコーダ14では、内蔵メモリ2の読み出しデータが入力されてからデコード出力が得られるまでに、3to8デコーダ(図5)では、56〜59のNAND1段と60〜67のNOR1段とを通り、Rデコーダ(図5)では、70と78の複合ゲート1段と81のNAND1段と84のNOR1段とを通るので、都合、ゲート5段で済み、遅延時間を削減することができる。
On the other hand, in the ECC /
このように、この実施の形態によれば、内蔵メモリからの読み出し時にECC機能を実現する場合に、内蔵メモリに、高速読み出しを必要とする命令コードと高速読み出しを必要としない命令コードとを誤り訂正符号化の形式を違えて格納し、高速読み出しが必要な命令コードについては、誤り訂正とそれ後続する処理系の一部であるデコードとを共用化するようにしたので、遅延時間の削減を図ることができる。 As described above, according to this embodiment, when the ECC function is realized at the time of reading from the built-in memory, an instruction code that requires high-speed reading and an instruction code that does not require high-speed reading are mistaken in the built-in memory. For instruction codes that need to be stored in different correction encoding formats and require high-speed reading, error correction and subsequent decoding, which is part of the processing system, are shared, reducing delay time. You can plan.
なお、この実施の形態では、高速読み出し不要の命令コードを一般データと共に、内蔵メモリに格納する場合を示したが、高速読み出し不要の命令コードが存在しない場合もある。その場合には、高速不要命令デコーダとセレクタは、不要にすると良い。 In this embodiment, the case where the instruction code not requiring high-speed reading is stored together with the general data in the built-in memory has been described. However, the instruction code not requiring high-speed reading may not exist. In that case, the high-speed unnecessary instruction decoder and the selector may be unnecessary.
また、汎用レジスタ選択信号(ソース2/ディスティネーション)は、汎用レジスタ選択信号(ソース2)と汎用レジスタ選択信号(ディスティネーション)とに分かれている場合もあるが、その場合でもECC・デコーダは対応して構成できるので、この発明は適用することができる。 The general-purpose register selection signal (source 2 / destination) may be divided into a general-purpose register selection signal (source 2) and a general-purpose register selection signal (destination). Therefore, the present invention can be applied.
以上のように、この発明にかかるコンピュータ装置は、内蔵メモリからの読み出し時にECC機能を実現する場合に、高速読み出しを必要とする命令コードのECC処理での遅延時間を少なくするのに有用である。 As described above, the computer apparatus according to the present invention is useful for reducing the delay time in the ECC processing of the instruction code that requires high-speed reading when the ECC function is realized at the time of reading from the built-in memory. .
1 CPU(コンピュータ装置)
2 内蔵メモリ
3 パリティ生成回路
4 従来型ECC回路
11 汎用レジスタ
12 ALU(演算装置)
13 高速不要命令デコーダ
14 ECC・デコーダ
14a 高速型ECC回路
14b 高速要命令デコーダ
15 セレクタ
31〜33 7to16デコーダ
41a〜41g 3to8デコーダ
4200〜4215 Rデコーダ
50〜55,76,77 インバータ回路
56〜59 NAND回路
60〜67,82 インバータ付きAND回路(NOR回路)
70〜76 AND回路
78〜80,84 NOR回路
81 インバータ付きOR回路(NAND回路)
83 片端インバータ付きOR回路
1 CPU (computer device)
2 Built-in
13 Fast
70 to 76 AND
83 OR circuit with single-ended inverter
Claims (5)
前記内蔵メモリから読み出した前記第1のビット列について誤り訂正を行う誤り訂正回路と、
前記内蔵メモリから読み出した前記第2のビット列について、誤り訂正と訂正後の処理であるデコードとを並行して行う誤り訂正・デコーダと、
を備えたことを特徴とするコンピュータ装置。 A first bit string consisting of a first bit length plus a first parity bit to which a first parity bit for the entire data bit string having the first bit length is added, and a length greater than the first bit length. A second bit string in which a second parity bit is added to an instruction code having a short second bit length, and the second parity bit for each unit bit length obtained by dividing the second bit length into a plurality of unit bits A built-in memory for storing a unit bit length added with a second bit string consisting of a predetermined number of second parity bits as a set;
An error correction circuit that performs error correction on the first bit string read from the internal memory;
An error correction / decoder that performs error correction and decoding, which is processing after correction, in parallel with respect to the second bit string read from the internal memory;
A computer apparatus comprising:
前記内蔵メモリから読み出した前記第1のビット列について誤り訂正を行う誤り訂正回路と、
前記誤り訂正回路が誤り訂正した前記第1の命令コードをデコードする命令デコーダと、
前記内蔵メモリから読み出した前記第2のビット列について、誤り訂正と訂正後の処理であるデコードとを並行して行う誤り訂正・デコーダと、
前記命令デコーダが出力する汎用レジスタ選択信号と前記誤り訂正・デコーダが出力する汎用レジスタ選択信号の一方を選択して汎用レジスタに与えるセレクタと、
を備えたことを特徴とするコンピュータ装置。 The first bit length plus the first parity bit obtained by adding the first parity bit for the entire first bit length to the general data having the first bit length and the first instruction code. 1 bit string and a second bit string obtained by adding a second parity bit to a second instruction code having a second bit length shorter than the first bit length, wherein the second bit length is A built-in memory for storing a unit bit length obtained by adding the second parity bit for each unit bit length divided into a plurality of units + a second bit string having a predetermined number of second parity bits as a set;
An error correction circuit that performs error correction on the first bit string read from the internal memory;
An instruction decoder for decoding the first instruction code corrected by the error correction circuit;
An error correction / decoder that performs error correction and decoding, which is processing after correction, in parallel with respect to the second bit string read from the internal memory;
A selector that selects one of the general-purpose register selection signal output from the instruction decoder and the general-purpose register selection signal output from the error correction / decoder and supplies the general-purpose register;
A computer apparatus comprising:
前記第2のビット列における前記一組のそれぞれに対し、前記一組の入力ビットのうちの1つを除いたビットデータについて、または、当該ビットデータの反転ビットデータについてANDのORを取る回路を備え、
前記ANDのORを取る回路を用いて、前記一組それぞれのビット長を前記第1のビット長にデコードする回路として構成されている
ことを特徴とする請求項1または2に記載のコンピュータ装置。 The error correction decoder is
For each of the set in the second bit string, there is provided a circuit that performs an OR of bit data excluding one of the set of input bits or an inverted bit data of the bit data. ,
The computer apparatus according to claim 1, wherein the computer apparatus is configured as a circuit that decodes each set of bit lengths to the first bit length using a circuit that takes an OR of the ANDs.
5. The computer apparatus according to claim 4, wherein the selector performs a selection operation using a part of the instruction selection signal output from the error correction / decoder.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005147254A JP2006323695A (en) | 2005-05-19 | 2005-05-19 | Computer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005147254A JP2006323695A (en) | 2005-05-19 | 2005-05-19 | Computer device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006323695A true JP2006323695A (en) | 2006-11-30 |
Family
ID=37543315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005147254A Pending JP2006323695A (en) | 2005-05-19 | 2005-05-19 | Computer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006323695A (en) |
-
2005
- 2005-05-19 JP JP2005147254A patent/JP2006323695A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7352299B1 (en) | Method and system for improving memory interface data integrity | |
US9811429B2 (en) | Microcontroller utilizing redundant address decoders and electronic control device using the same | |
KR20080040706A (en) | Method and apparatus for configuring a cyclic redundancy check(crc) generation circuit to perform crc on a data stream | |
US5631915A (en) | Method of correcting single errors | |
WO1980000626A1 (en) | Data processing system having error detection and correction circuits | |
US7292161B2 (en) | NB/MB coding apparatus and method using both disparity independent and disparity dependent encoded vectors | |
JP3274668B2 (en) | Arithmetic processing device and arithmetic processing method | |
EP3503411B1 (en) | Improved single error correction and double error detection | |
US7979783B2 (en) | Error detection device and method for error detection for a command decoder | |
US7085988B1 (en) | Hashing system utilizing error correction coding techniques | |
CN101499325B (en) | Non-volatile memory system and method with variable error correcting capability | |
JPH06187248A (en) | Data error detection and correction control circuit | |
EP0186588B1 (en) | Error - correcting circuit having a reduced syndrome word | |
US20040088497A1 (en) | Methods and apparatus for exchanging data using cyclic redundancy check codes | |
JP2001298370A (en) | Encoding device | |
JP2006323695A (en) | Computer device | |
CN110795271A (en) | Error correction circuit for performing error correction on user data and error correction method using the same | |
US5671238A (en) | Method and circuitry for generating r-bit parallel CRC code for an l-bit data source | |
JP4567753B2 (en) | Parity generation circuit, counting circuit, and counting method | |
WO2000070459A1 (en) | Error correction circuit and method for a memory device | |
JP2008084052A (en) | Semiconductor memory device | |
CN111243652B (en) | Parallel redundancy correction circuit | |
JP3475860B2 (en) | Arithmetic processing unit | |
WO2006027742A1 (en) | Fault tolerant bus | |
AU2022332699A1 (en) | Modified staircase forward error correction coding |