JP2006323695A - Computer device - Google Patents

Computer device Download PDF

Info

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
Application number
JP2005147254A
Other languages
Japanese (ja)
Inventor
Tomoya Kawagoe
知也 河越
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2005147254A priority Critical patent/JP2006323695A/en
Publication of JP2006323695A publication Critical patent/JP2006323695A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a computer device for reducing a delay time in the processing system of an instruction code whose reading from a built-in memory is required at a high speed when realizing an ECC function for reading the instruction code from the memory. <P>SOLUTION: General data having 16 bit length and a high speed non-requirement instruction code are added with parity 5 bits, and a high speed requirement instruction code having 12 bit length is added with parity 9 bits in the form of "4+parity 3 bits"×3, and stored in a built-in memory 2. A conventional type ECC circuit 4 which is generally used is applied to the bit string of "16+parity 5 bits", and an error correction/decoder 14 in which the number of passing stages is reduced is applied to the bit string of "4+parity 3 bits"×3 by sharing error correction and decoding as post-correction processing. Thus, it is possible to read the high speed requirement instruction code from the built-in memory by reducing a delay time. <P>COPYRIGHT: (C)2007,JPO&INPIT

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.

特開2005−85357公報JP 2005-85357 A

ところで、コンピュータ装置が使用する内蔵メモリには、一般データの他に命令コードも格納される。そして、その命令コードには、できるだけ早くメモリから読み出す必要のある命令コード(例えば加算命令など処理に時間の掛かる命令コード)がある一方で、命令コードの読み出しに引き続いて実行される一般データや、処理時間の短い命令コード(例えば論理演算命令コード)などは、早く読み出す必要はない。   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-purpose register 11 and an ALU (arithmetic unit) 12. A high-speed unnecessary instruction decoder 13 that decodes an instruction code that does not require high-speed reading (hereinafter referred to as “high-speed unnecessary”), an ECC / decoder 14, and a selector 15 are added to the CPU 1.

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 / control signal port 2a to which an address bus / control signal line of the CPU 1 is connected, a data input port 2b for performing 21-bit data input / output, and a data output port 2c.

CPU1と内蔵メモリ2との間には、パリティ生成回路3と従来型ECC回路4とが設けられている。CPU1が出力する書き込みデータ列は、内蔵メモリ2のデータ入力ポート2bとパリティ生成回路3とに入力される。パリティ生成回路3は、CPU1が出力する書き込みデータ列にパリティビットを付加する論理演算を行い、求めた数のパリティビットを内蔵メモリ2のデータ入力ポート2bに出力する。   A parity generation circuit 3 and a conventional ECC circuit 4 are provided between the CPU 1 and the built-in memory 2. The write data string output by the CPU 1 is input to the data input port 2 b and the parity generation circuit 3 of the built-in memory 2. The parity generation circuit 3 performs a logical operation of adding a parity bit to the write data string output from the CPU 1 and outputs the determined number of parity bits to the data input port 2 b of the built-in memory 2.

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-purpose register 11. In this embodiment, the write data string is composed of a 16-bit configuration and a 12-bit configuration. The 16-bit data string is applied to general data and an instruction code not requiring high speed. The 12-bit data string is applied to an instruction code that requires high-speed reading (hereinafter referred to as “high-speed required”).

なお、この実施の形態では、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 parity generation circuit 3 calculates 5 bits of parity for the entire 16 bits, and uses the 5 bits of parity for the data input port 2b of the built-in memory 2 Output to. When the write data string output by the CPU 1 has a 12-bit configuration, 9 bits of parity calculated by a method described later is output to the data input port 2 b of the built-in memory 2.

要するに、内蔵メモリ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 “+ parity 3 bits”.

従来型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 data output port 2b of the built-in memory 2, the conventional ECC circuit 4 receives a data string of data 16 bits + parity 5 bits (see FIG. 2 (1)). ). That is, general data and a high-speed unnecessary instruction code are input to the conventional ECC circuit 4. The 16-bit general data error-corrected by the conventional ECC circuit 4 is output to the general-purpose register 11, and the error-corrected 16-bit high-speed unnecessary instruction code is input to the high-speed unnecessary instruction decoder 13.

高速不要命令デコーダ13は、汎用レジスタ11とALU12とを選択する2系統のデコード出力を行う。図1では、セレクタ15に対しては32ビット(16ビット+16ビット)を出力し、ALU12に対しては2ビットを出力するとしている。   The high-speed unnecessary instruction decoder 13 performs two systems of decoding output for selecting the general-purpose register 11 and the ALU 12. In FIG. 1, 32 bits (16 bits + 16 bits) are output to the selector 15 and 2 bits are output to the ALU 12.

一方、ECC・デコーダ14には、内蔵メモリ2のデータ出力ポート2bから出力される21ビットのデータ列のうち、データ12ビット+パリティ9ビット(「データ4ビット+パリティ3ビット」の7ビット×3)のデータ列(図2(2)参照)が入力される。つまり、ECC・デコーダ14には、高速要命令コードが入力される。   On the other hand, in the ECC decoder 14, among the 21-bit data string output from the data output port 2 b of the internal memory 2, data 12 bits + parity 9 bits (“data 4 bits + parity 3 bits” 7 bits × 3) (see FIG. 2 (2)) is input. That is, the ECC / decoder 14 is inputted with a high-speed instruction code.

ECC・デコーダ14は、誤り訂正を行う回路部分(高速型ECC回路14a)と、訂正後のデータ処理回路の一部であるデコーダ(高速要命令デコーダ14b)とを一体化構成したものである。図1では、理解を容易にするため、従来型ECC回路4に対応する高速型ECC回路14aと、高速不要命令デコーダ13に対応する高速要命令デコーダ14bとにブロック分けして示してあるが、実際には区別できない(図3〜図6参照)。   The ECC / decoder 14 is an integrated configuration of a circuit portion for error correction (high-speed ECC circuit 14a) and a decoder (high-speed instruction decoder 14b) which is a part of the corrected data processing circuit. In FIG. 1, for ease of understanding, the high-speed ECC circuit 14a corresponding to the conventional ECC circuit 4 and the high-speed instruction decoder 14b corresponding to the high-speed unnecessary instruction decoder 13 are shown in blocks. In fact, they cannot be distinguished (see FIGS. 3 to 6).

ECC・デコーダ14は、汎用レジスタ11とALU12とを選択する2系統のデコード出力を行う。図1では、セレクタに対しては32ビット(16ビット+16ビット)を出力し、ALU12に対しては15ビットを出力し、セレクタ15に1ビットを出力するとしている。   The ECC / decoder 14 performs decoding output of two systems for selecting the general-purpose register 11 and the ALU 12. In FIG. 1, 32 bits (16 bits + 16 bits) are output to the selector, 15 bits are output to the ALU 12, and 1 bit is output to the selector 15.

セレクタ15は、ECC・デコーダ14からの1ビットを選択指令とし、ECC・デコーダ14が出力する汎用レジスタ11への32ビット(16ビット+16ビット)と、高速不要命令デコーダ13が出力する汎用レジスタ11への32ビット(16ビット+16ビット)との一方を選択して汎用レジスタ11に与えるようになっている。   The selector 15 uses 1 bit from the ECC decoder 14 as a selection command, 32 bits (16 bits + 16 bits) to the general register 11 output from the ECC decoder 14, and the general register 11 output from the high-speed unnecessary instruction decoder 13. One of 32 bits (16 bits + 16 bits) is selected and given to the general-purpose register 11.

次に、図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 parity generation circuit 3.

図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 parity generation circuit 3 receives the output notification of the high-speed unnecessary instruction code from the CPU 1, the parity generation circuit 3 performs a logical operation on all the 16 bits (D0 to D15) output from the CPU 1 and sets the 5-bit parity bits D16 to D20. Generate. In this case, in the 16-bit high-speed unnecessary instruction code output from the CPU 1, a logical value for setting the parity 5 bits to zero is set in the bits D4 to D6, D11, and D12. That is, in the 21-bit high-speed unnecessary instruction code input from the built-in memory 2 to the conventional ECC circuit 4, all the bits D16 to D20 are “0”.

高速不要命令デコーダ13では、従来型ECC回路4から、誤り訂正を行った図2(1)に示す16ビット(ビットD0〜D15)の高速不要命令コードを受け取ると、ビットD7〜D10の5ビットを汎用レジスタ(ソース1)選択用に用い、ビットD0〜D3の4ビットを汎用レジスタ(ソース2/ディスティネーション)選択用に用い、ビットD13を命令選択用に用いるようになっている。   When the high-speed unnecessary instruction decoder 13 receives the 16-bit (bits D0 to D15) high-speed unnecessary instruction code shown in FIG. 2 (1) after error correction from the conventional ECC circuit 4, the high-speed unnecessary instruction decoder 13 receives 5 bits of bits D7 to D10. Are used for general purpose register (source 1) selection, 4 bits D0 to D3 are used for general purpose register (source 2 / destination) selection, and bit D13 is used for instruction selection.

図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 / decoder 14. Since the ECC / decoder 14 performs a processing operation in units of 7 bits as will be described later, the parity generation circuit 3 receives the output notification of the high-speed instruction code from the CPU 1 and converts the 12-bit data output by the CPU 1 to “ D4 to D3, D7 to D10, and D14 to D17 are divided in 4-bit units, and logical operations are performed on each 4-bit data bit to generate 3-bit parity bits “D4 to D6” and “D11 to D13”. “D18 to D20” are generated. As a result, the ECC / decoder 14 receives a 21-bit high-speed instruction code from the built-in memory 2 in a combination of “D0 to D6”, “D7 to D13”, and “D14 to D20”.

この場合、パリティ生成回路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 parity generation circuit 3 obtains each 3 bits of parity bits for a 12-bit high-speed instruction code as follows. In other words, if “^” is an exclusive OR symbol, “D4 to D6” performs an operation of D4 = D0 ^ D1 ^ D3, D5 = D0 ^ D2 ^ D3, and D6 = D1 ^ D2 ^ D3. To generate. “D11 to D13” are generated by performing an operation of D11 = D7 ^ D8 ^ D10, D12 = D7 ^ D9 ^ D10, and D6 = D8 ^ D9 ^ D10. “D18 to D20” are generated by performing an operation of D18 = D14 ^ D15 ^ D17, D19 = D14 ^ D16 ^ D17, and D20 = D15 ^ D16 ^ D17.

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 ECC decoder 14 uses 7 bits of bits D0 to D6 for selecting a general purpose register (source 2 / destination), 7 bits of bits D7 to D13 are used for selecting a general purpose register (source 1), and bits D14 to The 7 bits of D21 are used for instruction selection. Then, 1 bit out of 16 bits obtained by decoding 7 bits (bits D14 to D21) for instruction selection is output to the selector 15. When bits D17 to D14 are all “0”, bits D20 to D18 are all “0”. In this case, the output of the high-speed unnecessary instruction decoder 13 is selected and applied to the general-purpose register 11. In other cases, the output of the ECC decoder 14 is selected and applied to the general-purpose register 11.

図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 / decoder 14 shown in FIG. As can be understood from the bit configuration shown in FIG. 2 (2), the ECC decoder 14 is functionally composed of three 7 to 16 decoders 31, 32, and 33 that decode 7 bits of 4 bits of data + 3 bits of parity into 16 bits. It consists of a decoder.

7to16デコーダ31は、A〜G入力として、ビットD14〜D21がデータビットD0〜D3,パリティビットP0〜P2として入力し、Y00〜Y15の16ビットが命令選択信号として出力される。そのうちの15ビットがALU12に与えられ、1ビットがセレクタ15に与えられる。   In the 7to16 decoder 31, bits D14 to D21 are input as data bits D0 to D3 and parity bits P0 to P2 as A to G inputs, and 16 bits Y00 to Y15 are output as an instruction selection signal. Of these, 15 bits are provided to the ALU 12 and 1 bit is provided to the selector 15.

7to16デコーダ32は、A〜G入力として、ビットD7〜D13がデータビットD0〜D3,パリティビットP0〜P2として入力し、Y00〜Y15の16ビットが汎用レジスタ選択信号(ソース1)としてセレクタ15に出力される。   The 7 to 16 decoder 32 receives bits D7 to D13 as data bits D0 to D3 and parity bits P0 to P2 as A to G inputs, and 16 bits Y00 to Y15 to the selector 15 as a general-purpose register selection signal (source 1). Is output.

7to16デコーダ33は、A〜G入力として、ビットD0〜D6がデータビットD0〜D3,パリティビットP0〜P2として入力し、Y00〜Y15の16ビットが汎用レジスタ選択信号(ソース2/ディスティネーション)としてセレクタ15に出力される。   The 7to16 decoder 33 receives bits D0 to D6 as data bits D0 to D3 and parity bits P0 to P2 as A to G inputs, and 16 bits Y00 to Y15 as a general-purpose register selection signal (source 2 / destination). It is output to the selector 15.

図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 decoders 31, 32, and 33 shown in FIG. 3 are integrally configured, and the input stage is composed of seven 3to8 decoders 41a to 41g as shown in FIG. As shown in FIG. 4B, it is composed of 16 R decoders 42 00 to 42 15 .

図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 3to8 decoder 41a, and 8 bits of EFG0 to EFG7 decoded from the output terminals Y0 to Y7. A signal is output. The 3 bits of AFG are applied to the input terminals X1, X2, and X3 of the 3to8 decoder 41b, and decoded 8-bit signals of AFG0 to AFG7 are output from the output terminals Y0 to Y7. The 3 bits of ABG are applied to the input terminals X1, X2, and X3 of the 3to8 decoder 41c, and decoded 8-bit signals of ABG0 to ABG7 are output from the output terminals Y0 to Y7. The 3 bits of ABC are applied to the input terminals X1, X2, and X3 of the 3to8 decoder 41d, and decoded 8-bit signals of ABC0 to ABC7 are output from the output terminals Y0 to Y7. The 3 bits of BCD are applied to the input terminals X1, X2, and X3 of the 3to8 decoder 41e, and decoded 8-bit signals of BCD0 to BCD7 are output from the output terminals Y0 to Y7. The 3 bits of CDE are applied to the input terminals X1, X2, and X3 of the 3to8 decoder 41f, and decoded 8-bit signals of CDE0 to CDE7 are output from the output terminals Y0 to Y7. The 3 bits of DEF are applied to the input terminals X1, X2, and X3 of the 3to8 decoder 41g, and decoded 8-bit signals of DEF0 to DEF7 are output from the output terminals Y0 to Y7.

図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 R decoders 42 00 to 42 15 have 14 input terminals “A0, A1, B0, B1, C0, C1, D0, D1, E0, E1, F0, F1, G0, G1 ”and one output end Y. At the 14 input terminals, the output bits excluding the A bit signal among the output bits of the seven 3to8 decoders 41a to 41g are input to the input terminals “A0, A1”, and the output bits excluding the B bit signal. The bits are input to the input terminals “B0, B1”, the output bits excluding the C bit signal are input to the input terminals “C0, C1”, and the output bits excluding the D bit signal are input to the input terminals “D0, D1”. Input, output bits excluding the E bit signal are input to the input terminals “E0, E1”, output bits excluding the F bit signal are input to the input terminals “F0, F1”, and the output excluding the G bit signal Bits are input to the input terminals “G0, G1”.

次に、図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 3to8 decoders 41a to 41g shown in FIG. 4A are configured as shown in FIG. 5, for example. In FIG. 5, the data bit applied to the input terminal X1 is inverted by the inverter circuit 52 to become one input of the NAND circuits 57 and 59, and further inverted by the inverter circuit 55 to be one of the NAND circuits 56 and 58. Input. The data bit applied to the input terminal X2 is inverted by the inverter circuit 51 and becomes the other input of the NAND circuits 58 and 59, and further inverted by the inverter circuit 54 and becomes the other input of the NAND circuits 56 and 57. .

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 NAND circuit 59 is applied to one input terminal of AND circuits 63 and 67 with inverters operating as a NOR circuit. The output of the NAND circuit 58 is applied to one input terminal of AND circuits 62 and 66 with inverters that operate as a NOR circuit. The output of the NAND circuit 57 is applied to one input terminal of AND circuits 61 and 65 with inverters that operate as a NOR circuit. The output of the NAND circuit 56 is applied to one input terminal of AND circuits 60 and 64 with inverters that operate as a NOR circuit.

入力端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 inverter circuit 50 and applied to the other input terminal of the AND circuits 60, 61, 62, 63 with inverter, and further inverted by the inverter circuit 53 with the inverter. It is applied to the other input terminal of the AND circuits 64, 65, 66 and 67. As a result, 3-bit input decoding results (Y0 to Y7) are obtained at the outputs of the eight AND circuits 67 to 60 with inverters.

次に、図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 R decoders 42 00 to 42 15 shown in FIG. 4B are configured as shown in FIG. 6, for example. In FIG. 6, the 2-bit data applied to the input terminals A0 and A1 becomes one input of the NOR circuit 78 via the AND circuit 70, and the 2-bit data applied to the input terminals B0 and B1 is the AND circuit 71. And the other input of the NOR circuit 78. The 2-bit data applied to the input terminals C0 and C1 becomes one input of the NOR circuit 79 via the AND circuit 72, and the 2-bit data applied to the input terminals D0 and D1 is NORed via the AND circuit 73. This is the other input of the circuit 79. The outputs of the NOR circuits 78 and 79 become one input of the NOR 84 via an OR circuit 81 with an inverter that operates as a NAND circuit.

入力端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 circuit 80 via the AND circuit 74, and the 2-bit data applied to the input terminals F0 and F1 is NORed via the AND circuit 75. This is the other input of the circuit 80. The output of the NOR circuit 80 is input to the inverter terminal of the OR circuit 83. The bit data applied to the input terminal G0 is inverted by the inverter circuit 76 and becomes one input of an AND circuit 82 with an inverter that operates as a NOR circuit. The bit data applied to the input terminal G1 is inverted by the inverter circuit 77 and becomes the other input of the AND circuit 82 with the inverter. The output of the AND circuit 82 with the inverter is input to the non-inverter terminal of the OR circuit 83. The output of the OR circuit 83 becomes the other input of the NOR 84. As a result, one bit data Y selected from the 14 input bit data is obtained at the output of the NOR 84.

次に、動作について説明する。従来型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 unnecessary instruction decoder 13, and 16 bits of general data whose data bits D20 to D16 (parity 5 bits) are all other than "0" are general purpose registers 11. Given to.

高速不要命令デコーダ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 unnecessary instruction decoder 13 outputs “16 bits + 16 bits” in the selection of the general-purpose register 11 in FIG. 1, but the high-speed unnecessary instruction code is the data bit D15 = D14 = “0” in FIG. ”And the data bits D12, D11, D6 to D4 marked“ x ”are special data bits. Therefore, the high-speed unnecessary instruction decoder 13 actually decodes 4 bits of data bits D10 to D7 and outputs an 8-bit general-purpose register selection signal (source 1), and decodes 4 bits of data bits D3 to D0. Then, an 8-bit general-purpose register selection signal (source 2 / destination) is output. Then, a 2-bit instruction selection signal obtained by decoding the data bit D13 is output to the ALU 12.

一方、ECC・デコーダ14では、上記した構成によって、高速化が必要な命令コード12ビットについての誤り訂正と訂正後のデータ処理であるデコードとを並行して行えるようにし、遅延時間の短縮化を可能にしている。以下、具体的に説明する。   On the other hand, the ECC / decoder 14 enables the error correction for the 12-bit instruction code requiring high speed and the decoding, which is the data processing after the correction, to be performed in parallel by the above-described configuration, thereby reducing the delay time. It is possible. This will be specifically described below.

図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 decoders 31 to 33 shown in FIG. 3, the inputs E to G are arbitrary data bits A to D (D0 to D0). D3) are parity bits P0 to P2 generated by performing an operation of E = A ^ B ^ D, F = A ^ C ^ D, and G = B ^ C ^ D. Therefore, in this example, 2 4 = 16 types of instruction codes without error can be created in total. In this way, the 1-bit error instruction code does not match the other 15 types of error-free instruction codes and the 1-bit error instruction codes. The original error-free instruction code can be identified from a certain instruction code.

ECC・デコーダ14では、このようなデータ4ビット+パリティ3ビット構成の7ビットを単位にして、7to16のデコードを行う。一般に、例えば4to16のデコードでは、16個の4入力AND回路に、データ4ビットをそのまま入力する、または反転したデータ4ビットを入力し、それらの出力のORを取る構成が採用される。   The ECC / decoder 14 performs 7 to 16 decoding in units of 7 bits of such data 4 bits + parity 3 bits. In general, for example, in a 4to16 decoding, a configuration is adopted in which 4 bits of data are input as they are to 16 4-input AND circuits or 4 bits of inverted data are input and their outputs are ORed.

ECC・デコーダ14での7to16のデコードを同様の構成で行うと、入力A〜Gの1つに誤りがある場合に出力がイネーブルにならない。そこで、例えば、入力Aに誤りのある場合を想定して入力Aを無視した6入力(B〜G)をそのまま、または反転してAND回路に入力する構成を採用する。入力B〜Gについても同様である。   If 7 to 16 decoding by the ECC decoder 14 is performed with the same configuration, the output is not enabled when one of the inputs A to G has an error. Therefore, for example, assuming that there is an error in input A, a configuration is adopted in which 6 inputs (B to G) ignoring input A are input to the AND circuit as they are or after being inverted. The same applies to the inputs B to G.

要するに、ECC・デコーダ14での7to16のデコードでは、それらのどの場合にも対応できるように、入力A〜G(または反転したA〜G)の1入力を無視した7通りの6入力についてANDを取り、それによる7入力のORを取る構成を採る。そして、ゲート段数を減らした構成にしている。   In short, in the 7 to 16 decoding by the ECC decoder 14, an AND is applied to seven types of six inputs ignoring one input of the inputs A to G (or inverted A to G) so that any of these cases can be handled. It takes a configuration that takes a 7-input OR. In addition, the number of gate stages is reduced.

具体的には、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 R decoders 42 00 to 42 15 shown in FIG. Will be output.

従来型ECC回路4および高速不要命令デコーダ13では、内蔵メモリ2の読み出しデータが入力されてからデコード出力が得られるまでに、例えば特許文献1に示されているように、10段以上のゲートを通過する必要がある。   In the conventional ECC circuit 4 and the high-speed unnecessary instruction decoder 13, as shown in, for example, Patent Document 1, gates of 10 stages or more are provided from when the read data of the built-in memory 2 is input to when a decoded output is obtained. Need to pass.

これに対して、この実施の形態による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 / decoder 14 according to this embodiment, the read data of the built-in memory 2 is inputted and the decode output is obtained. Since it passes through NOR stages 60 to 67 and the R decoder (FIG. 5) passes through one composite gate stage of 70 and 78, one NAND stage of 81 and one NOR stage of 84, for convenience, only five gate stages are required, and delay. Time can be saved.

このように、この実施の形態によれば、内蔵メモリからの読み出し時に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. .

この発明の一実施の形態によるコンピュータ装置の構成を示すブロック図である。It is a block diagram which shows the structure of the computer apparatus by one embodiment of this invention. 図1に示す高速不要命令デコーダとECC・デコーダの各入力ビットの構成例を説明する図である。It is a figure explaining the structural example of each input bit of the high-speed unnecessary instruction decoder and ECC decoder shown in FIG. 図1に示すECC・デコーダの機能的な構成を説明する図である。It is a figure explaining the functional structure of the ECC decoder shown in FIG. 図3に示す7to16デコーダの入力段を構成する3to8デコーダを示す図である。It is a figure which shows the 3to8 decoder which comprises the input stage of the 7to16 decoder shown in FIG. 図3に示す7to16デコーダの出力段を構成するRデコーダを示す図である。It is a figure which shows R decoder which comprises the output stage of 7 to 16 decoder shown in FIG. 図4−1に示す3to8デコーダの回路構成を示す図である。FIG. 4 is a diagram showing a circuit configuration of a 3to8 decoder shown in FIG. 図4−2に示すRデコーダの回路構成を示す図である。FIG. 4 is a diagram showing a circuit configuration of an R decoder shown in FIG. 4-2.

符号の説明Explanation of symbols

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 memory 3 Parity generation circuit 4 Conventional ECC circuit 11 General-purpose register 12 ALU (arithmetic unit)
13 Fast unnecessary instruction decoder 14 ECC · decoder 14a fast type ECC circuit 14b fast main instruction decoder 15 selectors 31 to 33 7To16 decoder 41 a to 41 g 3-to-8 decoder 42 00 through 42 15 R decoder 50~55,76,77 inverter circuit 56-59 NAND circuit 60 to 67, 82 AND circuit with inverter (NOR circuit)
70 to 76 AND circuit 78 to 80, 84 NOR circuit 81 OR circuit with inverter (NAND circuit)
83 OR circuit with single-ended inverter

Claims (5)

第1のビット長を持つデータビット列の全体を対象とした第1のパリティビットを付加した第1のビット長+第1のパリティビットからなる第1のビット列と、前記第1のビット長よりも短い第2のビット長を持つ命令コードに第2のパリティビットを付加した第2のビット列であって、当該第2のビット長を複数個に分割した単位ビット長毎に前記第2のパリティビットを付加した単位ビット長+第2のパリティビットを一組とする所定数からなる第2のビット列とを格納する内蔵メモリと、
前記内蔵メモリから読み出した前記第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の命令コードに当該第1のビット長の全体を対象とした第1のパリティビットを付加した第1のビット長+第1のパリティビットからなる第1のビット列と、前記第1のビット長よりも短い第2のビット長を持つ第2の命令コードに第2のパリティビットを付加した第2のビット列であって、当該第2のビット長を複数個に分割した単位ビット長毎に前記第2のパリティビットを付加した単位ビット長+第2のパリティビットを一組とする所定数からなる第2のビット列とを格納する内蔵メモリと、
前記内蔵メモリから読み出した前記第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.
前記誤り訂正・デコーダは、前記第2のビット列における前記一組それぞれへの割り付けに従ってデコードした命令選択信号と汎用レジスタ選択信号とを出力することを特徴とする請求項3に記載のコンピュータ装置。   4. The computer apparatus according to claim 3, wherein the error correction / decoder outputs an instruction selection signal and a general-purpose register selection signal that are decoded in accordance with the assignment of the second bit string to each set. 前記セレクタは、前記誤り訂正・デコーダが出力する前記命令選択信号の一部を用いて選択動作を行うことを特徴とする請求項4に記載のコンピュータ装置。


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.


JP2005147254A 2005-05-19 2005-05-19 Computer device Pending JP2006323695A (en)

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)

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