WO2007083377A1 - パリティ生成回路、計数回路および計数方法 - Google Patents
パリティ生成回路、計数回路および計数方法 Download PDFInfo
- Publication number
- WO2007083377A1 WO2007083377A1 PCT/JP2006/300749 JP2006300749W WO2007083377A1 WO 2007083377 A1 WO2007083377 A1 WO 2007083377A1 JP 2006300749 W JP2006300749 W JP 2006300749W WO 2007083377 A1 WO2007083377 A1 WO 2007083377A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- parity
- circuit
- expressed
- bits
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/607—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers number-of-ones counters, i.e. devices for counting the number of input lines set to ONE among a plurality of input lines, also called bit counters or parallel counters
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6575—Implementations based on combinatorial logic, e.g. Boolean circuits
Definitions
- the present invention relates to a parity generation circuit, a counting circuit, and a counting method for counting the number of “1” s included in binary data, and in particular, a population that does not affect population count calculation processing.
- the present invention relates to a note generation circuit, a counting circuit, and a counting method capable of obtaining a parity of a count operation result at high speed.
- POPC instructions have been used infrequently, and are not implemented as instruction sets and may have been realized by software emulation. This is often used for calculations such as (number), and is often switched to hardware implementation for high-speed instruction processing.
- a circuit for executing the POPC instruction can be realized by using the technique disclosed in Patent Document 1, for example.
- Patent Document 1 JP 2005-165793 A
- the present invention has been made in view of the above, and can generate a parity of a calculation result of a population count that does not affect the calculation processing of the population count at high speed. It is an object to provide a circuit, a counting circuit, and a counting method.
- the present invention provides a case where data and a notation of the data are input, and the data is expressed by an n-ary number (n is a natural number of 2 or more).
- a parity generation circuit for outputting the parity of the counting information of the specific information in the determination means for determining that the number of the specific information when the data is expressed in n-ary is a specific number
- inverting means for outputting either the parity value of the data or a value obtained by inverting the parity as the parity of the counting information in accordance with the determination result by the determining means.
- the determination means of the present invention decodes that the number of the specific information is any one of 0, 1, 6, and 7 when 8-bit data is expressed by an n-ary number. It is a feature.
- the determination means of the present invention whether the number of the specific information in the case where 8-bit data is represented by an n-ary number, is 0, 1, 6, or 7 Judgment is based on the combination of the number of the specific information when the upper 4 bits are expressed in n-ary numbers and the number of the specific information when the lower 4 bits of the data are expressed in n-ary numbers. It is characterized by that.
- the parity of the count information together with the count information of 1 when the data and the data notation are input and the data is expressed by an n-ary number (n is a natural number of 2 or more) is used.
- a parity generation circuit having an inverting means for outputting a shift value of a parity value of data or a value obtained by inverting the parity as a parity of the counting information.
- the determination means of the present invention decodes that the number of the specific information is any one of 0, 1, 6, and 7 when 8-bit data is represented by an n-ary number. It is a feature.
- the determination means of the present invention whether the number of the specific information when expressing 8-bit data in n-ary number is 0, 1, 6, or 7 The determination is based on a combination of the number of the specific information when the upper 4 bits are expressed by an n-ary number and the number of the specific information when the lower 4 bits of the data are expressed by an n-ary number. To do.
- the parity of the count information as well as the count information of 1 when the data and the data notation are input and the data is expressed by an n-ary number (n is a natural number of 2 or more) is used.
- a counting method for outputting wherein a determination step for determining that the number of specific information in a case where the data is expressed in an n-ary number is a specific number, and a determination result by the determination means, And an inversion step of outputting either the parity value of the data or a value obtained by inverting the parity as a notation of the count information.
- the determination step of the present invention decodes that the number of the specific information is any one of 0, 1, 6, and 7 when 8-bit data is expressed by an n-ary number. It is characterized by this.
- the determination step of the present invention it is determined whether the number of the specific information is 0, 1, 6, or 7 when 8-bit data is expressed by an n-ary number.
- Top 4 data The number of the specific information when the network is expressed by an n-ary number, and the number of the specific information when the lower 4 bits of the data are expressed by an n-ary number, To do.
- the present invention is a method in which N (N is a natural number where N ⁇ 2) bits and the parity of the data are input, and the data is represented by an n-ary number (n is a natural number of 2 or more).
- the power of the specific information when the data is expressed in n-ary numbers The determination step for determining that the specific information is a specific number, and the value of the n-bit data or the n bits according to the determination result by the determination means
- An inversion step for outputting one of the values obtained by inverting the data NORMAL as the parity of the count information, and a count information addition step for adding the count information for each of the divided n-bit data. And-up, and having a parity adding step for adding the parity of the count information of the divided every n-bit data, respectively.
- the present invention since it is configured to predict the population count calculation result by determining that the input data has a specific bit pattern, the population count calculation process is performed. It is possible to predict the population count calculation result at high speed without affecting the value.
- the determination unit determines whether the 8-bit data is any one of 0, 1, 6, and 7 when the 8-bit data is expressed in binary. The determination is based on a combination of the number of 1 when the upper 4 bits of the data is expressed in binary number and the number of 1 when the lower 4 bits of the data are expressed in binary number
- the circuit is compared with the case where the bit pattern is determined without dividing all the bits.
- the scale can be reduced.
- the N-bit data and its parity are input, and the number of 1 and the parity are output when the data is expressed in binary number.
- a count circuit comprising a plurality of the population count circuits according to claim 1, wherein output data is obtained by adding the output results of the population count circuit according to claim 1.
- the parity of the calculation result of the population count is predicted by determining that the input data is a specific bit pattern. There is an effect that the parity of the calculation result of the population count can be predicted at high speed without affecting the calculation processing.
- FIG. 11 is a diagram showing the correspondence between 8-bit input data and POP.
- Fig. 1-2 shows the correspondence between 8-bit input data and POP.
- Fig. 1-3 shows the correspondence between 8-bit input data and POP.
- FIG. 2 is a diagram showing data in which the input data norm matches the POP norm.
- Figure 3-1 shows the upper 4 bits POP and the lower 4 bits when the 8-bit input data POP is “0”, “1”, “6”, or “7”. It is a figure which shows the combination of POP of [ Figure 3-2] Figure 3-2 shows the top 4 when the 8-bit input data has a POP of “2”, “3”, “4”, “5”, or “8”. It is a diagram showing a combination of a bit POP and a lower 4 bits POP.
- FIG. 4 is a block diagram showing a configuration of a population count circuit corresponding to 8-bit input data.
- Fig. 5-1 is a block diagram showing the configuration of the NORITY prediction unit.
- FIG. 5-2 is a block diagram showing a configuration of a parity prediction unit.
- Fig. 5-3 is a block diagram showing the configuration of the NORITY prediction unit.
- FIG. 6 is a block diagram showing a configuration of a population count circuit corresponding to 64-bit input data.
- FIG. 7 is a block diagram showing a configuration of a population count circuit corresponding to N-bit input data. Explanation of symbols
- Fig. 1-1 to 1-3 show the correspondence between 8-bit input data and the number of "1" (hereinafter referred to as "POP") when the data is expressed in binary.
- POP 8-bit input data
- the figure shows 8-bit input data (X ⁇ 7: 0>) force S, which can be taken from 256 possible values from "00000000" force to "1111111 1".
- P> POP
- POP parity Z>P>
- Figure 1 shows the data extracted from the data shown in 1 to 13 that matches the input data and POP norities (data with "*" at the beginning of the line). Shown in 2. As can be seen from the figure, if the input data and the POP have the same norm, the POP is “0000 (0 in decimal notation)” or “0001 (1 in decimal notation). ",” 0110 (6 in decimal notation) ",” 0111 (7 in decimal notation) " RU
- the parity can be predicted by decomposing the input data into 8 bits and processing them. Specifically, the POP parity of the input data can be predicted by predicting the POP parity of each data divided into 8 bits according to the above regularity and adding the prediction results.
- the NORITY prediction method according to the present embodiment is a CPU POPC. It is assumed that the instruction is executed in parallel with the POP counting process, and the issue is not to increase the execution time of the POPC instruction. For this reason, the cycle time related to the parity prediction process by the parity prediction method according to the present embodiment is required to be equal to or less than the cycle time related to the POP counting process. If the cycle time for the note prediction process is less than the cycle time for the POP counting process, the parity prediction process is masked by the POP counting process, which may affect the execution time of the POP instruction. Because there is no.
- the upper 4 bits of the POP Figure 3-2 shows all combinations of values that the lower 4 bits POP can take. As shown in the figure, there are 15 combinations in this case.
- the POP of the 8-bit input data is expressed in decimal notation as "2", “3", "4", "5" Rather than deciding which of the 16 combinations including ⁇ 8 '', it is possible to use one of 8 combinations including ⁇ 0 '', ⁇ 1 '', ⁇ 6 '', and ⁇ 7 '' from the decimal representation. It can be seen that the circuit amount for realizing the parity prediction can be reduced by determining whether or not the power is greater.
- FIG. 4 is a block diagram showing a configuration of a population count circuit corresponding to 8-bit input data.
- the population count circuit 100 receives 8-bit input data (X ⁇ 7: 0>) and its parity (X ⁇ P>) as input, and calculates the population count result (Z 3: 0>) and its parity (ZZP>).
- the population count circuit 100 includes a population count calculation unit 1000, a parity prediction unit 2000, and a parity inversion circuit 3000.
- Population count calculation section 1000 receives 8-bit input data (X 7: 0>) as input, performs POP calculation processing of this data, and outputs the calculation result (Z 3: 0>).
- This is an output processing unit, and is composed of a combination of CSA (Carry Save Adder), which is a carry save adder, and HA (Half Adder), which is a half adder.
- CSA Carry Save Adder
- HA Healf Adder
- the parity prediction unit 2000 and the parity inversion circuit 3000 are processing units that predict the parity of the operation result using the parity prediction method according to the present embodiment.
- the parity predicting unit 2000 decodes 8-bit input data (X 7: 0>) as an input, so that the POP of this data is expressed in decimal notation as “0”, “1”, “6”, “ If it is “7”, 0 is output as the INV—P signal, otherwise 1 is output.
- the NOR circuit 3000 outputs the parity (X>P>) of the input data as it is as the parity (Z>P>) of the operation result, and INV— In the case of P signal power S1, the parity of the input data (inverted X ⁇ P »is used to calculate the result (Z ⁇ P>).
- FIGS. 5-1 to 5-3 are block diagrams showing the configuration of the parity prediction unit 2000.
- Figure 5-1 shows
- the circuit configuration for determining the upper 4 bits (X ⁇ 7: 4>) of the input data by decoding the POP is shown.
- NOT circuits 2111 to 2114 are circuits that invert the input bits X ⁇ 7> to X ⁇ 4>, respectively.
- AND circuits 2121, 2131 to 2134, 2141 to 2146, 2151 to 2154, and 2161 are input bits X ⁇ 7> to X ⁇ 4>, or a part or all of them are inverted by NOT circuits 2111 to 2114 By decoding the received signal as input, only one circuit outputs 1 and the other circuits output 0 according to the bit pattern of input bits X ⁇ 7> to X ⁇ 4>. Are configured as a decoding circuit.
- the AND circuit 2121 outputs 1 when the POP force of the upper 4 bits is 0, that is, when all the bits are 0. This output is the POPC_74_0 signal.
- the AND circuits 2131 to 2134 each output 1 when the POP of the upper 4 bits is 1, that is, when there is one bit having a value of 1. These outputs are ORed by an OR circuit 2135 to become a POPC-74-1 signal.
- the AND circuits 2141 to 2146 each output 1 when the POP of the upper 4 bits is 2, that is, when there are two bits having a value of 1. These outputs are ORed by an OR circuit 2147 to become a POPC-74-2 signal.
- the AND circuits 2151 to 2154 each output 1 when the POP of the upper 4 bits is 3, that is, when there are 3 bits having the value of 1. These outputs are ORed by an OR circuit 2155 to become a POPC-74-3 signal.
- the AND circuit 2161 outputs 1 in the case of the upper 4 bits of POP power, that is, when all bits are 1. This output is the POPC_74_4 signal.
- FIG. 5-2 shows a circuit configuration for discriminating the lower 4 bits (X> 3: 0>) POP of the input data. Since the circuit configuration is the same as the configuration shown in Figure 5-1, only the output signals are described here.
- the POPC 30 0 signal becomes 1 when the POP force of the lower 4 bits is 0, and POPC 30 1
- the signal is 1 when the lower 4 bits of POP is 1.
- the POPC-30-2 signal is 1 when the lower 4 bits POP is 2, and the POPC-30-3 signal is 1 when the lower 4 bits POP is 3.
- the POPC-30-4 signal becomes 1 when the lower 4 bits of POP is “4” in decimal notation.
- Figure 5-3 shows that the POP of 8-bit input data (X 7: 0>) is “0” and “1” in decimal notation.
- AND circuits 2311, 2321 to 2322, 2331 to 2333, and 2341 to 2342 are the upper 4 bits (X ⁇ 7: 4>) POP judgment result and lower 4 bits (X ⁇ 3: 0>)
- the POP value of the 8-bit input data (X 7: 0>) is determined based on the combination of the POP determination results.
- the AND circuit 2311 has a POP force of 0 in the upper 4 bits and a POP force of 0 in the lower 4 bits.
- the AND circuit 2321 has a POP power of upper 4 bits of 0, and when the lower 4 bits of POP is "1" in decimal notation, that is, the POPC-74-0 signal is 1, POPC-30 — 1 Outputs 1 when the signal is 1.
- An OR operation is performed by the OR circuit 2323 to generate a POPC-70-1 signal.
- the AND circuit 2331 is the upper 4 bits of POP power, and when the lower 4 bits of POP is “2” in decimal notation, that is, the POPC—74—4 signal is 1, and the POPC—30— 2 Outputs 1 when the signal is 1.
- the POPC-74-4 signal when the upper 4 bits of the POP is “4” in decimal notation and the lower 4 bits of the POP is “3” in decimal notation, the POPC-74-4 signal is When 1 and POPC-30-3 signal is 1, 1 is output.
- the POPC-74-3 signal is When 1 and POPC-30 — 4 signal is 1, 1 is output.
- the outputs of the AND circuit 2341 and the AND circuit 2342 are logically ORed by an OR circuit 2343 to become a POPC-70-7 signal.
- the NOR circuit 2351 performs a logical OR operation on the POPC-70-0 signal, POPC-70-1 signal, POPC-70-6 signal, and POPC-70-7 signal, and inverts the result. Output the signal as INV_P signal.
- the INV-P signal which is the output of the NORITY predictor 2000, has a POP of 10 bits of 8-bit input data (X 7: 0>). If it is one of “0”, “1”, “6”, or “7” in decimal notation, 0 is output, and if it is any other value, 1 is output.
- FIG. 6 is a block diagram showing a configuration of a population count circuit corresponding to 64-bit input data.
- the population count circuit 10 receives 64-bit input data (X ⁇ 63: 00>) and its 8-bit parity (X ⁇ P7: P0>) as inputs, and performs population count.
- This is a circuit that outputs the operation result (Z ⁇ 6: 0>) and its parity (Z ⁇ P>).
- the population count circuit 10 includes population count circuits 101a to 101h and addition circuits 201a to 2001g.
- the population count circuits 101a to 101h are circuits similar to the population count circuit 100, and receive 8-bit input data and its norm, and output POP and its parity.
- the population count circuit 101a receives the least significant 8 bits (X ⁇ 07:00>) and its parity (X ⁇ PO>) as input data.
- the population count circuit 101b receives the upper 8 bits (X ⁇ 15:08>) and the NORITY (X ⁇ Pl>).
- the population count circuit 101c receives the upper 8 bits (X ⁇ 23:16>) and its parity (X ⁇ P2>).
- the population count circuit lOld receives the upper 8 bits (X ⁇ 31: 2 4>) and its parity (X ⁇ P3>).
- the population count circuit 101e receives the upper 8 bits (X> 39:32>) and its parity (X> P4>) as inputs.
- the population count circuit 101f receives the upper 8 bits (X 47 47:40>) and its norm (X P P5>).
- the population count circuit 101g receives the upper 8 bits (X 55 55:48 »and its parity (X P P6>) as input, and the population count circuit 101h is the most significant 8 bits of the input data. (X 63:56 »and its parity (X P7>) are input.
- the calo arithmetic circuits 201a to 201g are circuits for adding the POP and the parity, and output the POP calo arithmetic result and the parity addition result.
- Addition circuit 201a calculates the addition result and parity result of population count circuit 101a and the addition result and parity result of population count circuit 101b, respectively, and addition circuit 201b adds the result of population count circuit 101c.
- the result and parity result are added to the addition result and parity result of the population counter circuit 101d, respectively.
- the addition circuit 201c adds the addition result and parity result of the population count circuit 101e, and the addition result and parity result of the population count circuit 101f.
- the addition circuit 201d adds the addition result and parity of the population count circuit 101g.
- the result and the addition result of the population count circuit 101h and the parity result are added.
- the adder circuit 201e adds the addition result and parity result of the adder circuit 201a to the addition result and parity result of the adder circuit 20 lb, respectively, and the adder circuit 20 If adds the adder result and parity of the adder circuit 201c.
- the addition result and the parity result of the addition circuit 201d are added to each other, and the addition circuit 201g adds the addition result and the parity result of the addition circuit 201e, the addition result of the addition circuit 20 If, and the parity result, respectively.
- the output result power of the adder circuit 201g obtained in this way is the population count calculation result (Z 6 6> 0) and its norm (Z 0 P>).
- the parity generation circuit, the counting circuit, and the counting method according to the present invention are useful for counting the number of “1” included in the binary data, and are particularly useful for the cycle time of arithmetic processing. It is suitable for cases where it is necessary to obtain the normality of the calculation result of the population count without affecting it at high speed.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
8ビットの入力データ(X<7:0>)がとりうる0から255までの256通りの値に対して、入力データのパリティ(X<P>)と、POP(Z<3:0>)と、POPのパリティ(Z<P>)とがどのような値をとるかを調べると、POPが「0」、「1」、「6」、「7」のいずれかの場合は、X<P>とZ<P>が一致し、POPが「2」、「3」、「4」、「5」、「8」のいずれかの場合は、X<P>とZ<P>が反転することがわかる。この規則性を利用してパリティの予測を実現する。
Description
明 細 書
ノヽ。リティ生成回路、計数回路および計数方法
技術分野
[0001] 本発明は、 2進数データに含まれる「1」の数を計数するパリティ生成回路、計数回 路および計数方法に関し、特に、ポピュレーションカウントの演算処理に影響を与え ることなぐポピュレーションカウントの演算結果のパリティを高速に求めることができる ノ^ティ生成回路、計数回路および計数方法に関する。
背景技術
[0002] 2進数データに含まれる「1」の数を計数する演算をポピュレーションカウント(Popula tion Count)といい、一部の CPU (Central Processing Unit)は、この演算を実行す るための命令である POPC (POPulation Count)命令を備える。
[0003] POPC命令は、かっては使用頻度が低力つたため、命令セットとして実装されずソ フトウェアによるエミユレーシヨンによって実現される場合もあった力 近年、ノ、ミング 距離 (2つのビット列において相違するビット数)等の計算に利用されることが多くなり 、命令処理の高速ィ匕のため、ハードウェアによる実現へと切り替えられることが多くな つている。 POPC命令を実行するための回路は、例えば、特許文献 1にて開示されて いる技術を利用することで実現することができる。
[0004] 特許文献 1 :特開 2005— 165793号公報
発明の開示
発明が解決しょうとする課題
[0005] ところで、信頼性を向上させるため、演算処理の入出力データにパリティを付加し、 このノ リティを用いてデータの正当性を保障する CPUが存在する。かかる CPUにお V、て POPC命令をノヽードウエアで実現する場合、 POPC命令の演算結果のノ リティ をいかにして求めるかが問題となる。
[0006] 例えば、特許文献 1にて開示されている技術を利用してポピュレーションカウントの 演算をおこない、その後に別の回路を用いて演算結果のパリティを演算することとす ると、ノ リティの演算をおこなう処理の分だけ命令の処理時間が長くなる。このような
方式では、命令処理の高速ィ匕のために POPC命令をノヽードウエアによって実装する 意義が弱くなる。従って、演算処理に力かるサイクルタイムに影響を与えないようにす るため、演算処理と同等またはそれ以下のサイクルタイムでパリティの演算処理を行 う必要が有り、そのためには入力データ力 POPC命令処理の結果に対するノ^ティ を予測する必要がある。
[0007] POPC命令の処理時間を増大させることなく演算結果のパリティを求めるには、ポ ピユレーシヨンカウントの計数処理と平行して、別の回路においてパリティの予測をお こなう必要がある。このパリティの予測は、 POPC命令の入力データとそのパリティか ら演算結果のパリティを予測するものでなければならない。
[0008] 本発明は、上記に鑑みてなされたものであって、ポピュレーションカウントの演算処 理に影響を与えることなぐポピュレーションカウントの演算結果のパリティを高速に求 めることができるパリティ生成回路、計数回路および計数方法を提供することを目的と する。
課題を解決するための手段
[0009] 上述した課題を解決し、目的を達成するために、本発明は、データと前記データの ノ^ティを入力とし、前記データを n進数 (nは 2以上の自然数)により表現した場合に おける特定情報の計数情報のパリティを出力するパリティ生成回路であって、前記デ ータを n進数で表現した場合における前記特定情報の数が、特定の数であることを 判定する判定手段と、前記判定手段による判定結果に応じて、前記データのパリティ の値又は前記パリティを反転させた値のいずれかを前記計数情報のパリティとして出 力する反転手段とを有することを特徴とする。
[0010] また、本発明の前記判定手段は、 8ビットのデータを n進数で表現した場合における 前記特定情報の数が、 0、 1、 6、 7のいずれかであることをデコードすることを特徴と する。
[0011] また、本発明の前記判定手段は、 8ビットのデータを n進数で表現した場合における 前記特定情報の数が、 0、 1、 6、 7のいずれかであるかを、前記データの上位 4ビット を n進数により表現した場合における前記特定情報の数と、該データの下位 4ビットを n進数により表現した場合における前記特定情報の数との組合せに基づいて判定す
ることを特徴とする。
[0012] また、本発明は、データと前記データのノ^ティを入力とし、前記データを n進数 (n は 2以上の自然数)により表現した場合における 1の計数情報とともに前記計数情報 のパリティを出力する計数回路であって、前記データを n進数で表現した場合におけ る特定情報の数が、特定の数であることを判定する判定手段と、前記判定手段による 判定結果に応じて、前記データのパリティの値又は前記パリティを反転させた値の ヽ ずれ力を前記計数情報のパリティとして出力する反転手段とを有するパリティ生成回 路を備えることを特徴とする。
[0013] また、本発明の前記判定手段は、 8ビットのデータを n進数で表現した場合における 前記特定情報の数が、 0、 1、 6、 7のいずれかであることをデコードすることを特徴と する。
[0014] また、本発明の前記判定手段は、 8ビットのデータを n進数で表現した場合における 前記特定情報の数が、 0、 1、 6、 7のいずれかであるかを、前記データの上位 4ビット を n進数により表現した場合における前記特定情報の数と、該データの下位 4ビットを n進数により表現した場合における前記特定情報の数との組合せに基づいて判定す ることを特徴とする。
[0015] また、本発明は、データと前記データのノ^ティを入力とし、前記データを n進数 (n は 2以上の自然数)により表現した場合における 1の計数情報とともに前記計数情報 のパリティを出力する計数方法であって、前記データを n進数で表現した場合におけ る特定情報の数が、特定の数であることを判定する判定ステップと、前記判定手段に よる判定結果に応じて、前記データのパリティの値又は前記パリティを反転させた値 のいずれかを前記計数情報のノ^ティとして出力する反転ステップとを有することを 特徴とする。
[0016] また、本発明の前記判定ステップは、 8ビットのデータを n進数で表現した場合にお ける前記特定情報の数が、 0、 1、 6、 7のいずれかであることをデコードすることを特 徴とする。
[0017] また、本発明の前記判定ステップは、 8ビットのデータを n進数で表現した場合にお ける前記特定情報の数が、 0、 1、 6、 7のいずれかであるかを、前記データの上位 4ビ
ットを n進数により表現した場合における前記特定情報の数と、該データの下位 4ビッ トを n進数により表現した場合における前記特定情報の数との組合せに基づいて判 定することを特徴とする。
[0018] また、本発明は、 N (N≥ 2である自然数)ビットのデータと前記データのパリティを入 力とし、前記データを n進数 (nは 2以上の自然数)により表現した場合における 1の計 数情報とともに前記計数情報のパリティを出力する計数方法であって、前記 Nビット のデータを n (N>n≥ 1である自然数)ビットデータ毎に分割する分割ステップと、前 記 nビットデータを n進数で表現した場合における特定情報の数力 特定の数である ことを判定する判定ステップと、前記判定手段による判定結果に応じて、前記 nビット データのノ リティの値又は前記 nビットデータのノ リティを反転させた値のいずれかを 前記計数情報のパリティとして出力する反転ステップと、前記分割された nビットデー タ毎の前記計数情報をそれぞれ加算する計数情報加算ステップと、前記分割された nビットデータ毎の前記計数情報のパリティをそれぞれ加算するパリティ加算ステップ とを有することを特徴とする。
[0019] この発明によれば、入力データが特定のビットパターンであることを判定することに より、ポピュレーションカウントの演算結果のノ リティを予測するように構成したので、 ポピュレーションカウントの演算処理に影響を与えることなく、ポピュレーションカウント の演算結果のノ^ティを高速に予測することができる。
[0020] また、本発明は、上記の発明において、前記判定手段は、前記 8ビットのデータを 2 進数で表現した場合における 1の数力 0、 1、 6、 7のいずれかであるかを、該データ の上位 4ビットを 2進数で表現した場合における 1の数と、該データの下位 4ビットを 2 進数で表現した場合における 1の数との組合せに基づいて判定することを特徴とする
[0021] この発明によれば、入力データを 4ビットに分割してビットパターンを判定するように 構成したので、全ビットを分割せずにビットパターンの判定を行う場合と比較して、回 路規模を小さくすることができる。
[0022] また、本発明は、上記の発明において、 Nビットのデータとそのパリティを入力とし、 該データを 2進数で表現した場合における 1の数とそのパリティを出力するポピユレ一
シヨンカウント回路であって、請求項 1に記載のポピュレーションカウント回路を複数 備え、これらの請求項 1に記載のポピュレーションカウント回路の出力結果を加算す ることによって出力するデータを求めることを特徴とする。
[0023] この発明によれば、 8ビットのポピュレーションカウント回路を糸且み合わせることによ つて Nビットのポピュレーションカウントの演算をおこなうことができるように構成したの で、どのようなビット幅のデータにも対応したポピュレーションカウント回路も実現する ことができる。
発明の効果
[0024] 本発明によれば、入力データが特定のビットパターンであることを判定することによ り、ポピュレーションカウントの演算結果のパリティを予測するように構成したので、ポ ピユレーシヨンカウントの演算処理に影響を与えることなく、ポピュレーションカウントの 演算結果のパリティを高速に予測することができるという効果を奏する。
[0025] また、本発明によれば、入力データを 4ビットに分割してビットパターンを判定するよ うに構成したので、全ビットを分割せずにビットパターンの判定を行う場合と比較して 、回路規模を小さくすることができるという効果を奏する。
[0026] また、本発明によれば、 8ビットのポピュレーションカウント回路を組み合わせること によって Nビットのポピュレーションカウントの演算をおこなうことができるように構成し たので、どのようなビット幅のデータにも対応したポピュレーションカウント回路も実現 することができると!/、う効果を奏する。
図面の簡単な説明
[0027] [図 1-1]図 1 1は、 8ビットの入力データと POPとの対応を示す図である。
[図 1-2]図 1—2は、 8ビットの入力データと POPとの対応を示す図である。
[図 1-3]図 1—3は、 8ビットの入力データと POPとの対応を示す図である。
[図 2]図 2は、入力データのノ リティと POPのノ リティが一致するデータを示す図であ る。
[図 3-1]図 3—1は、 8ビットの入力データの POPが「0」、「1」、「6」、「7」のいずれかと なる場合における上位 4ビットの POPと下位 4ビットの POPの組合せを示す図である
[図 3-2]図 3— 2は、 8ビットの入力データの POPが「2」、 「3」、 「4」、 「5」、 「8」のいず れカとなる場合における上位 4ビットの POPと下位 4ビットの POPの組合せを示す図 である。
[図 4]図 4は、 8ビットの入力データに対応するポピュレーションカウント回路の構成を 示すブロック図である。
[図 5-1]図 5— 1は、ノ リティ予測部の構成を示すブロック図である。
[図 5-2]図 5— 2は、パリティ予測部の構成を示すブロック図である。
[図 5-3]図 5— 3は、ノ リティ予測部の構成を示すブロック図である。
[図 6]図 6は、 64ビットの入力データに対応するポピュレーションカウント回路の構成 を示すブロック図である。
[図 7]図 7は、 Nビットの入力データに対応するポピュレーションカウント回路の構成を 示すブロック図である。 符号の説明
10、 20 ポピュレーションカウント回路
100 ポピュレーションカウント回路
101a〜101h ポピュレーションカウント回路
102a〜102n ポピュレーションカウント回路
201a〜201g 加算回路
202a〜202x カロ算回路
1000 ポピュレーションカウント演算部
2000 パリティ予測部
2111〜2114 NOT回路
2121 AND回路
2131〜2134 AND回路
2135 OR回路
2141〜2146 AND回路
2147 OR回路
2151〜2154 AND回路
2155 OR回路
2161 AND回路
2211〜2214 NOT回路
2221 AND回路
2231〜2234 AND回路
2235 OR回路
2241〜2246 AND回路
2247 OR回路
2251〜2254 AND回路
2255 OR回路
2261 AND回路
2311 AND回路
2321、 2322 AND回路
2323 OR回路
2331〜2333 AND回路
2334 OR回路
2341、 2342 AND回路
2343 OR回路
2351 NOR回路
3000 ノ リティ反転回路
発明を実施するための最良の形態
[0029] 以下に、本発明にかかるパリティ生成回路、計数回路および計数方法の実施例を 図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるもの ではない。
実施例
[0030] まず、本実施例に係るパリティ予測方式の原理について説明する。図 1— 1〜1— 3 は、 8ビットの入力データと、そのデータを 2進数で表現した場合における「1」の数( 以下、「POP」という)との対応を示す図である。
[0031] 同図は、 8ビットの入力データ(X< 7 : 0>)力 Sとりうる「00000000」力ら「1111111 1」までの 256通りの値に対して、入力データのパリティ(Xく P>)と、 POP (Z< 3 : 0 >)と、 POPのパリティ(Zく P>)とがどのような値をとるかを示している。
[0032] 入力データが 8ビットであるため、 POPがとりうる値は、「0000 (10進数表現では 0) 」から「1000 (10進数表現では 8)」までである。また、同図においては奇数パリティが 採用されており、「00000000」という 8ビットの入力データに対しては、「1」がパリティ として設定されている。そして、この入力データの POPである「0000」に対しては、「1
」がパリティとして設定されて!、る。
[0033] 図 1 1〜1 3に示したデータのうち、入力データのノ リティと POPのノ リティが一 致するデータ (行の先頭に「 *」を付与したデータ)を抜粋したものを図 2に示す。同 図を見ればわ力るように、入力データのノ リティと POPのノ リティが一致する場合、 P OPは、「0000 (10進数表現では 0)」、「0001 (10進数表現では 1)」、「0110 (10進 数表現では 6)」、「0111 (10進数表現では 7)」
、る。
[0034] 一方、図 1 1〜1 3に示したデータのうち、入力データのノ リティと POPのノリテ ィがー致しな 、データ (行の先頭に「 *」を付与して!/ヽな 、データ)を見ると、 POPは、 「0010 (10進数表現では 2)」、「0011 (10進数表現では 3)」、「0100 (10進数表現 では 4)」、「0101 (10進数表現では 5)」、「1000 (10進数表現では 8)」のいずれか の値になっている。
[0035] この規則性を利用することにより、 POPのノ^ティを以下のようにして予測することが できる。すなわち、 8ビットの入力データに対して POPを求める場合、 POPが「0」、「1 」、「6」、「7」のいずれかであれば、入力データのパリティと同一の値が POPのパリテ ィであると予測される。そして、 POPがその他の値であれば、入力データのパ ティを 反転させた値が POPのパリティであると予測される。
[0036] 8ビット以上の幅をもった入力データの POPを求める場合は、入力データを 8ビット ずつに分解して処理することによってパリティを予測することができる。具体的には、 8ビットに分解した各データの POPのパリティを上記の規則性に従って予測し、その 予測結果を加算することにより入力データの POPのノ^ティを予測することができる。
[0037] ところで、既に述べたように、本実施例に係るノ リティ予測方式は、 CPUの POPC
命令において、 POPの計数処理と平行して実行することが想定されており、 POPC 命令の実行時間を増大させないことを課題としている。このため、本実施例に係るパ リティ予測方式によるパリティ予測処理に係るサイクルタイムは、 POPの計数処理に 係るサイクルタイム以下であることが必要とされる。ノ^ティ予測処理に係るサイクルタ ィムが、 POPの計数処理に係るサイクルタイム以下であれば、かかるパリティ予測処 理が POPの計数処理によってマスクされ、 POP命令の実行時間に影響を与えること がないからである。
[0038] 本実施例に係るパリティ予測方式においては、入力データの POPを判定する必要 がある力 この判定は、 POPが 10進数表現により「0」、「1」、「6」、「7」のいずれかで ある力 もしくは、 10進数表現により「2」、「3」、「4」、「5」、「8」のいずれかであるかが 分かれば十分である。したがって、特許文献 1で開示されているように加算器の組合 せによって POPを演算する必要はなぐデコーダをもちいた判定回路として実現する ことにより、実行速度を高速ィ匕することができる。
[0039] しかしながら、 8ビットの幅をもった入力データの POPの判定をデコーダによって実 装すると、回路規模が大きくなつてしまうという問題がある。そこで、 8ビットの入力デ ータを 4ビットずつの上位ビット、下位ビットに分けて処理する方式をとる。
[0040] 8ビットの入力データの POPが 10進数表現により「0」、「1」、「6」、「7」のいずれかと なる場合に、上位 4ビット(く 7 :4>)の POPと下位 4ビット(く 3 : 0>)の POPがとりう る値の全組合せを図 3—1に示す。同図に示すように、この場合の組合せは 8通り存 在する。
[0041] 一方、 8ビットの入力データの POPが 10進数表現により「2」、「3」、「4」、「5」、「8」 のいずれ力となる場合に、上位 4ビットの POPと下位 4ビットの POPがとりうる値の全 組合せを図 3— 2に示す。同図に示すように、この場合の組合せは 15通り存在する。
[0042] このことから、上位ビットと下位ビットに分けて処理することとした場合、 8ビットの入 力データの POPが 10進数表現により「2」、「3」、「4」、「5」、「8」を含む 16通りの組み 合わせのいずれかとなるかを判定するよりも、 10進数表現より「0」、「1」、「6」、「7」を 含む 8通りの組み合わせのいずれかとなる力否かを判定した方が、パリティ予測を実 現するための回路量を小さくできることがわかる。
[0043] 以下の実装例の説明では、 8ビットの入力データの POPが 10進数表現により「0」、 「1」、「6」、「7」のいずれかとなる力否かを上位ビットと下位ビットに分けて判定する場 合について説明する。なお、回路規模が問題とならない場合は、 8ビットの入力デー タの POPが 10進数表現により「2」、「3」、「4」、「5」、「8」のいずれかとなるか否かを 上位ビットと下位ビットに分けて判定することとしてもよいし、また、 8ビットの入力デー タを 4ビットずつ上位ビット、下位ビットに分けずに判定してもよ!/、。
[0044] 次に、本実施例に係るパリティ予測方式を実装したポピュレーションカウント回路に ついて説明する。図 4は、 8ビットの入力データに対応するポピュレーションカウント回 路の構成を示すブロック図である。同図に示すように、ポピュレーションカウント回路 1 00は、 8ビットの入力データ(Xく 7 : 0>)とそのパリティ (Xく P>)を入力とし、ポピュ レーシヨンカウントの演算結果 (Zく 3 : 0>)とそのパリティ (Zく P>)を出力する回路 である。
[0045] ポピュレーションカウント回路 100は、ポピュレーションカウント演算部 1000と、パリ ティ予測部 2000と、パリティ反転回路 3000とを有する。
[0046] ポピュレーションカウント演算部 1000は、 8ビットの入力データ(Xく 7 : 0>)を入力 とし、このデータの POPの演算処理を実行し、演算結果 (Zく 3 : 0>)を出力する処 理部であり、キャリー保存加算器である CSA (Carry Save Adder)と半加算器である HA (Half Adder)の組合せ等によって構成される。なお、ポピュレーションカウント演 算部 1000の構成は、図 4に示した通りである必要はなぐ例えば、特許文献 1におい て示されて!/ヽる構成とすることもできる。
[0047] パリティ予測部 2000とパリティ反転回路 3000は、本実施例に係るパリティ予測方 式を用いて演算結果のパリティを予測する処理部である。パリティ予測部 2000は、 8 ビットの入力データ(Xく 7 : 0>)を入力としてデコードを行うことにより、このデータの POPが 10進数表現により「0」、「1」、「6」、「7」のいずれかである場合は INV— P信 号として 0を出力し、さもなければ 1を出力する。
[0048] そして、ノ リティ反転回路 3000は、 INV— P信号力 の場合は、入力データのパリ ティ (Xく P>)をそのまま演算結果のパリティ (Zく P>)として出力し、 INV— P信号 力 S 1の場合は、入力データのパリティ (X< P»を反転させたものを演算結果のノ^テ
ィ (Zく P>)として出力する。
[0049] 図 5— 1〜5— 3は、パリティ予測部 2000の構成を示すブロック図である。図 5—1は
、入力データの上位 4ビット(Xく 7 :4>)の POPのデコードを行うことにより判定する ための回路構成を示している。
[0050] NOT回路 2111〜2114は、それぞれ、入力ビット Xく 7>〜X<4>を反転させる 回路である。
[0051] AND回路 2121、 2131〜2134、 2141〜2146、 2151〜2154および 2161は、 入力ビット Xく 7>〜X<4>、もしくは、この一部ないし全部が NOT回路 2111〜21 14によって反転させられた信号を入力としてデコードを行うことにより、入力ビット Xく 7>〜X<4>のビットのパターンに応じて一つの回路のみが 1を出力し、他の回路 は 0を出力するようにデコード回路として構成されている。
[0052] AND回路 2121は、上位 4ビットの POP力 0の場合、すなわち、全てのビットが 0の 場合に 1を出力する。この出力は、 POPC_74_0信号となる。
[0053] AND回路 2131〜2134は、上位 4ビットの POPが 1の場合、すなわち、 1の値をも つビットが 1つ存在する場合にいずれか一つが 1を出力する。これらの出力は、 OR回 路 2135によって論理和演算され、 POPC— 74— 1信号となる。
[0054] AND回路 2141〜2146は、上位 4ビットの POPが 2の場合、すなわち、 1の値をも つビットが 2つ存在する場合にいずれか一つが 1を出力する。これらの出力は、 OR回 路 2147によって論理和演算され、 POPC— 74— 2信号となる。
[0055] AND回路 2151〜2154は、上位 4ビットの POPが 3の場合、すなわち、 1の値をも つビットが 3つ存在する場合にいずれか一つが 1を出力する。これらの出力は、 OR回 路 2155によって論理和演算され、 POPC— 74— 3信号となる。
[0056] AND回路 2161は、上位 4ビットの POP力 の場合、すなわち、全てのビットが 1の 場合に 1を出力する。この出力は、 POPC_74_4信号となる。
[0057] 図 5— 2は、入力データの下位 4ビット(Xく 3 : 0>)の POPを判別するための回路 構成を示している。回路の構成は、図 5—1に示した構成と同様であるため、ここでは 出力する信号にっ 、てのみ説明する。
[0058] POPC 30 0信号は、下位 4ビットの POP力 0の場合に 1となり、 POPC 30 1
信号は、下位 4ビットの POPが 1の場合に 1となる。 POPC— 30— 2信号は、下位 4ビ ットの POPが 2の場合に 1となり、 POPC— 30— 3信号は、下位 4ビットの POPが 3の 場合に 1となる。そして、 POPC— 30— 4信号は、下位 4ビットの POPが 10進数表現 により「4」の場合に 1となる。
[0059] 図 5— 3は、 8ビットの入力データ(Xく 7 : 0>)の POPが 10進数表現により「0」、「1
」、「6」、「7」のいずれかとなるか否かを判定するための回路構成を示している。
[0060] AND回路 2311、 2321〜2322、 2331〜2333および 2341〜2342は、上位 4ビ ット(Xく 7 :4>)の POPの判定結果と下位 4ビット(Xく 3 : 0>)の POPの判定結果の 組合せに基づ 、て、 8ビットの入力データ(Xく 7: 0 >)の POPの値を判定する。
[0061] AND回路 2311は、上位 4ビットの POP力 0であり、下位 4ビットの POP力 0の場合
、すなわち、 POPC— 74— 0信号が 1であり、 POPC— 30— 0信号が 1の場合に 1を 出力する。この出力は、 POPC_70_0信号となる。
[0062] AND回路 2321は、上位 4ビットの POP力0であり、下位 4ビットの POPが 10進数 表現により「1」の場合、すなわち、 POPC— 74— 0信号が 1であり、 POPC— 30— 1 信号が 1の場合に 1を出力する。
[0063] AND回路 2322は、上位 4ビットの POPが 1であり、下位 4ビットの POPが 10進数 表現により「0」の場合、すなわち、 POPC— 74— 1信号が 1であり、 POPC— 30— 0 信号が 1の場合に 1を出力する。 AND回路 2321および AND回路 2322の出力は、
OR回路 2323によって論理和演算され、 POPC— 70— 1信号となる。
[0064] AND回路 2331は、上位 4ビットの POP力 であり、下位 4ビットの POPが 10進数 表現により「2」の場合、すなわち、 POPC— 74— 4信号が 1であり、 POPC— 30— 2 信号が 1の場合に 1を出力する。
[0065] AND回路 2332は、上位 4ビットの POPが 3であり、下位 4ビットの POPが 10進数 表現により「3」の場合、すなわち、 POPC— 74— 3信号が 1であり、 POPC— 30— 3 信号が 1の場合に 1を出力する。
[0066] AND回路 2333は、上位 4ビットの POPが 2であり、下位 4ビットの POPが 10進数 表現により「4」の場合、すなわち、 POPC— 74— 2信号が 1であり、 POPC— 30— 4 信号が 1の場合に 1を出力する。 AND回路 2331、 AND回路 2332および AND回
路 2333の出力は、 OR回路 2334によって論理和演算され、 POPC— 70— 6信号と なる。
[0067] AND回路 2341は、上位 4ビットの POPが 10進数表現により「4」であり、下位 4ビッ トの POPが 10進数表現により「3」の場合、すなわち、 POPC— 74— 4信号が 1であり 、 POPC— 30— 3信号が 1の場合に 1を出力する。
[0068] AND回路 2342は、上位 4ビットの POPが 10進数表現により「3」であり、下位 4ビッ トの POPが 10進数表現により「4」の場合、すなわち、 POPC— 74— 3信号が 1であり 、 POPC— 30— 4信号が 1の場合に 1を出力する。 AND回路 2341および AND回 路 2342の出力は、 OR回路 2343によって論理和演算され、 POPC— 70— 7信号と なる。
[0069] NOR回路 2351は、 POPC— 70— 0信号、 POPC— 70— 1信号、 POPC— 70— 6 信号および POPC— 70— 7信号の論理和演算をおこな 、、その結果を反転させたも のを INV_P信号として出力する。
[0070] 図 5— 1〜5— 3に示した構成により、ノ リティ予測部 2000の出力である INV—P信 号は、 8ビットの入力データ(Xく 7 : 0>)の POPが 10進数表現により「0」、「1」、「6」 、「7」のいずれかである場合は 0を出力し、その他の値である場合は 1を出力すること となる。
[0071] 次に、本実施例に係るパリティ予測方式を 64ビットの入力データに対応するポピュ レーシヨンカウント回路に適用した例について説明する。図 6は、 64ビットの入力デー タに対応するポピュレーションカウント回路の構成を示すブロック図である。同図に示 すように、ポピュレーションカウント回路 10は、 64ビットの入力データ(Xく 63 : 00>) とその 8ビット毎のパリティ(Xく P7 : P0>)を入力とし、ポピュレーションカウントの演 算結果 (Zく 6 : 0>)とそのパリティ (Zく P>)を出力する回路である。
[0072] ポピュレーションカウント回路 10は、ポピュレーションカウント回路 101a〜101hと、 加算回路 201a〜2001gとを有する。
[0073] ポピュレーションカウント回路 101a〜101hは、ポピュレーションカウント回路 100と 同様の回路であり、 8ビットの入力データとそのノ リティを入力とし、 POPとそのパリテ ィを出力する。
[0074] ポピュレーションカウント回路 101aは、入力データの最下位の 8ビット(Xく 07 : 00 >)とそのパリティ (Xく PO >)を入力とする。ポピュレーションカウント回路 101bは、 その上位 8ビット(Xく 15 : 08 >)とそのノ リティ(Xく Pl >)を入力とする。ポピユレ一 シヨンカウント回路 101cは、その上位 8ビット(Xく 23: 16 >)とそのパリティ(Xく P2 >)を入力とする。ポピュレーションカウント回路 lOldは、その上位 8ビット(Xく 31 : 2 4 > )とそのパリティ (Xく P3 > )を入力とする。
[0075] ポピュレーションカウント回路 101eは、その上位 8ビット(Xく 39: 32>)とそのパリ ティ(Xく P4 >)を入力とする。ポピュレーションカウント回路 101fは、その上位 8ビッ ト(Xく 47 :40>)とそのノ リティ(Xく P5 >)を入力とする。ポピュレーションカウント回 路 101gは、その上位 8ビット(Xく 55 :48 »とそのパリティ(Xく P6 >)を入力とする 。そして、ポピュレーションカウント回路 101hは、入力データの最上位の 8ビット(Xく 63 : 56 »とそのパリティ(Xく P7>)を入力とする。
[0076] カロ算回路 201a〜201gは、 POPとパリティの加算をおこなう回路であり、 POPのカロ 算結果とパリティの加算結果を出力する。
[0077] 加算回路 201aは、ポピュレーションカウント回路 101aの加算結果およびパリティ結 果とポピュレーションカウント回路 101bの加算結果およびパリティ結果をそれぞれカロ 算し、加算回路 201bは、ポピュレーションカウント回路 101cの加算結果およびパリ ティ結果とポピュレーションカウント回路 101dの加算結果およびパリティ結果をそれ ぞれ加算する。加算回路 201cは、ポピュレーションカウント回路 101eの加算結果お よびパリティ結果とポピュレーションカウント回路 101fの加算結果およびパリティ結果 をそれぞれ加算し、加算回路 201dは、ポピュレーションカウント回路 101gの加算結 果およびパリティ結果とポピュレーションカウント回路 101hの加算結果およびパリティ 結果をそれぞれ加算する。
[0078] そして、加算回路 201eは、加算回路 201aの加算結果およびパリティ結果と加算回 路 20 lbの加算結果およびパリティ結果をそれぞれ加算し、加算回路 20 Ifは、加算 回路 201cの加算結果およびパリティ結果と加算回路 201dの加算結果およびパリテ ィ結果をそれぞれ加算し、加算回路 201gは、加算回路 201eの加算結果およびパリ ティ結果と加算回路 20 Ifの加算結果およびパリティ結果をそれぞれ加算する。こうし
て得られた加算回路 201gの出力結果力 ポピュレーションカウントの演算結果 (Zく 6 : 0 >)とそのノ リティ (Zく P>)となる。
[0079] このように、 8ビットよりも大きなビット幅の入力データに対しても、 8ビットの入力デー タに対応したポピュレーションカウント回路を並列に並べ、その出力結果を加算する 加算回路を配置することで POPの演算とそのノ リティの予測をおこなうことができる。 この手法にを用いれば、図 7に示すように、 64ビットよりも大きなビット幅に対応したポ ピユレーシヨンカウント回路を実現することもできる。
産業上の利用可能性
[0080] 以上のように、本発明にかかるパリティ生成回路、計数回路および計数方法は、 2 進数データに含まれる「1」の数の計数に有用であり、特に、演算処理のサイクルタイ ムに影響を与えることなぐポピュレーションカウントの演算結果のノ リティを高速に求 めることが必要な場合に適して 、る。
Claims
[1] データと前記データのパリティを入力とし、前記データを n進数 (nは 2以上の自然数 )により表現した場合における特定情報の計数情報のパリティを出力するパリティ生 成回路であって、
前記データを n進数で表現した場合における前記特定情報の数が、特定の数であ ることを判定する判定手段と、
前記判定手段による判定結果に応じて、前記データのパリティの値又は前記パリテ ィを反転させた値のいずれかを前記計数情報のパリティとして出力する反転手段と を有することを特徴とするパリティ生成回路。
[2] 前記判定手段は、 8ビットのデータを n進数で表現した場合における前記特定情報 の数が、 0、 1、 6、 7のいずれかであることをデコードすることを特徴とする請求項 1に 記載のパリティ生成回路。
[3] 前記判定手段は、 8ビットのデータを n進数で表現した場合における前記特定情報 の数が、 0、 1、 6、 7のいずれかであるかを、前記データの上位 4ビットを n進数により 表現した場合における前記特定情報の数と、該データの下位 4ビットを n進数により 表現した場合における前記特定情報の数との組合せに基づいて判定することを特徴 とする請求項 1に記載のパリティ生成回路。
[4] データと前記データのパリティを入力とし、前記データを n進数 (nは 2以上の自然数 )により表現した場合における 1の計数情報とともに前記計数情報のパリティを出力す る計数回路であって、
前記データを n進数で表現した場合における特定情報の数が、特定の数であること を判定する判定手段と、
前記判定手段による判定結果に応じて、前記データのパリティの値又は前記パリテ ィを反転させた値のいずれかを前記計数情報のパリティとして出力する反転手段と を有するパリティ生成回路を備えることを特徴とする計数回路。
[5] 前記判定手段は、 8ビットのデータを n進数で表現した場合における前記特定情報 の数が、 0、 1、 6、 7のいずれかであることをデコードすることを特徴とする請求項 4に 記載の計数回路。
[6] 前記判定手段は、 8ビットのデータを n進数で表現した場合における前記特定情報 の数が、 0、 1、
6、 7のいずれかであるかを、前記データの上位 4ビットを n進数により 表現した場合における前記特定情報の数と、該データの下位 4ビットを n進数により 表現した場合における前記特定情報の数との組合せに基づいて判定することを特徴 とする請求項 4に記載の計数回路。
[7] データと前記データのパリティを入力とし、前記データを n進数 (nは 2以上の自然数 )により表現した場合における 1の計数情報とともに前記計数情報のパリティを出力す る計数方法であって、
前記データを n進数で表現した場合における特定情報の数が、特定の数であること を判定する判定ステップと、
前記判定手段による判定結果に応じて、前記データのパリティの値又は前記パリテ ィを反転させた値のいずれかを前記計数情報のパリティとして出力する反転ステップ と
を有することを特徴とする計数方法。
[8] 前記判定ステップは、 8ビットのデータを n進数で表現した場合における前記特定 情報の数が、 0、 1、 6、 7のいずれかであることをデコードすることを特徴とする請求項 7に記載の計数方法。
[9] 前記判定ステップは、 8ビットのデータを n進数で表現した場合における前記特定 情報の数が、 0、 1、 6、 7のいずれかであるかを、前記データの上位 4ビットを n進数に より表現した場合における前記特定情報の数と、該データの下位 4ビットを n進数によ り表現した場合における前記特定情報の数との組合せに基づいて判定することを特 徴とする請求項 7に記載の計数方法。
[10] N (N≥ 2である自然数)ビットのデータと前記データのノ リティを入力とし、前記デ ータを n進数 (nは 2以上の自然数)により表現した場合における 1の計数情報とともに 前記計数情報のパリティを出力する計数方法であって、
前記 Nビットのデータを n (N >n≥ 1である自然数)ビットデータ毎に分割する分割 ステップと、
前記 nビットデータを n進数で表現した場合における特定情報の数が、特定の数で
あることを判定する判定ステップと、
前記判定手段による判定結果に応じて、前記 nビットデータのパリティの値又は前 記 nビットデータのノ リティを反転させた値のいずれかを前記計数情報のパリティとし て出力する反転ステップと、
前記分割された nビットデータ毎の前記計数情報をそれぞれ加算する計数情報カロ 算ステップと、
前記分割された nビットデータ毎の前記計数情報のノ^ティをそれぞれ加算するパ リティ加算ステップと
を有することを特徴とする計数方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/300749 WO2007083377A1 (ja) | 2006-01-19 | 2006-01-19 | パリティ生成回路、計数回路および計数方法 |
KR1020087017169A KR101007259B1 (ko) | 2006-01-19 | 2006-01-19 | 패리티 생성 회로, 계수 회로 및 계수 방법 |
JP2007554774A JP4567753B2 (ja) | 2006-01-19 | 2006-01-19 | パリティ生成回路、計数回路および計数方法 |
EP06711995A EP1978643A4 (en) | 2006-01-19 | 2006-01-19 | GENERATING CIRCUIT FOR PARITY, COUNTER AND COUNTING METHOD |
CN2006800514174A CN101361278B (zh) | 2006-01-19 | 2006-01-19 | 奇偶校验位生成电路、计数电路以及计数方法 |
US12/219,313 US8296641B2 (en) | 2006-01-19 | 2008-07-18 | Parity generation circuit, counter circuit, and counting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/300749 WO2007083377A1 (ja) | 2006-01-19 | 2006-01-19 | パリティ生成回路、計数回路および計数方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/219,313 Continuation US8296641B2 (en) | 2006-01-19 | 2008-07-18 | Parity generation circuit, counter circuit, and counting method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007083377A1 true WO2007083377A1 (ja) | 2007-07-26 |
Family
ID=38287339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/300749 WO2007083377A1 (ja) | 2006-01-19 | 2006-01-19 | パリティ生成回路、計数回路および計数方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8296641B2 (ja) |
EP (1) | EP1978643A4 (ja) |
JP (1) | JP4567753B2 (ja) |
KR (1) | KR101007259B1 (ja) |
CN (1) | CN101361278B (ja) |
WO (1) | WO2007083377A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4372822B2 (ja) * | 2005-03-31 | 2009-11-25 | 富士通株式会社 | パリティ予測回路及びこれを使用した論理演算回路 |
US10146537B2 (en) | 2015-03-13 | 2018-12-04 | Micron Technology, Inc. | Vector population count determination in memory |
TWI671750B (zh) * | 2018-11-28 | 2019-09-11 | 華邦電子股份有限公司 | 記憶體的控制方法及非暫態電腦可讀媒體 |
CN116974514B (zh) * | 2023-07-21 | 2024-02-02 | 北京市合芯数字科技有限公司 | 位值计数电路装置、处理器芯片及位值计数方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS647830A (en) * | 1987-06-30 | 1989-01-11 | Nec Corp | Transmission line code error monitoring system |
JPH03105670A (ja) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | ポピュレーション・カウント機能をもつ乗加算装置 |
JPH06250823A (ja) * | 1993-02-19 | 1994-09-09 | Hewlett Packard Co <Hp> | ポピュレーション・カウントの計算装置 |
JP2005165793A (ja) | 2003-12-04 | 2005-06-23 | Fujitsu Ltd | ポピュレーションカウント回路 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5967729A (ja) | 1982-10-12 | 1984-04-17 | Nec Corp | デクリメント・カウンタ論理回路 |
US4710934A (en) * | 1985-11-08 | 1987-12-01 | Texas Instruments Incorporated | Random access memory with error correction capability |
JP2595277B2 (ja) * | 1988-01-12 | 1997-04-02 | 株式会社日立製作所 | メモリ管理装置 |
JP3158215B2 (ja) * | 1991-10-04 | 2001-04-23 | 富士通株式会社 | パリティ反転試験方式 |
JP3105670B2 (ja) * | 1992-11-26 | 2000-11-06 | 富士通株式会社 | 荷電粒子ビーム露光装置及びその制御方法 |
US5522032A (en) * | 1994-05-05 | 1996-05-28 | International Business Machines Corporation | Raid level 5 with free blocks parity cache |
JPH10333991A (ja) | 1997-06-02 | 1998-12-18 | Matsushita Electric Ind Co Ltd | データ書込及び読出の誤り検出方法並びに半導体装置の自己検査方法 |
US5936972A (en) * | 1997-06-18 | 1999-08-10 | Motorola, Inc. | Syndrome-based channel quality or message structure determiner |
JPH1117556A (ja) | 1997-06-27 | 1999-01-22 | Sony Corp | ディジタル信号処理装置および方法 |
CN1119884C (zh) * | 2000-02-23 | 2003-08-27 | 华为技术有限公司 | 高速数据传输中的差错检测方法 |
KR100913467B1 (ko) * | 2002-11-19 | 2009-08-25 | 엘지전자 주식회사 | 병렬 순환 중복 검사 코드 발생 시스템 및 방법 |
US7475301B2 (en) * | 2003-05-09 | 2009-01-06 | Hewlett-Packard Development Company, L.P. | Increment/decrement circuit for performance counter |
-
2006
- 2006-01-19 JP JP2007554774A patent/JP4567753B2/ja not_active Expired - Fee Related
- 2006-01-19 KR KR1020087017169A patent/KR101007259B1/ko not_active IP Right Cessation
- 2006-01-19 WO PCT/JP2006/300749 patent/WO2007083377A1/ja active Application Filing
- 2006-01-19 EP EP06711995A patent/EP1978643A4/en not_active Withdrawn
- 2006-01-19 CN CN2006800514174A patent/CN101361278B/zh not_active Expired - Fee Related
-
2008
- 2008-07-18 US US12/219,313 patent/US8296641B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS647830A (en) * | 1987-06-30 | 1989-01-11 | Nec Corp | Transmission line code error monitoring system |
JPH03105670A (ja) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | ポピュレーション・カウント機能をもつ乗加算装置 |
JPH06250823A (ja) * | 1993-02-19 | 1994-09-09 | Hewlett Packard Co <Hp> | ポピュレーション・カウントの計算装置 |
JP2005165793A (ja) | 2003-12-04 | 2005-06-23 | Fujitsu Ltd | ポピュレーションカウント回路 |
Non-Patent Citations (1)
Title |
---|
See also references of EP1978643A4 |
Also Published As
Publication number | Publication date |
---|---|
JP4567753B2 (ja) | 2010-10-20 |
EP1978643A4 (en) | 2010-06-09 |
KR20080083321A (ko) | 2008-09-17 |
US8296641B2 (en) | 2012-10-23 |
JPWO2007083377A1 (ja) | 2009-06-11 |
EP1978643A1 (en) | 2008-10-08 |
CN101361278B (zh) | 2012-02-01 |
KR101007259B1 (ko) | 2011-01-13 |
US20080282136A1 (en) | 2008-11-13 |
CN101361278A (zh) | 2009-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115344237B (zh) | 结合Karatsuba和蒙哥马利模乘的数据处理方法 | |
US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
JPH07210369A (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
WO2007050361A2 (en) | Improved pipelined digital signal processor | |
JP2010044398A (ja) | 多倍長演算装置 | |
CN112099761B (zh) | 基于改进的二进制左移模逆算法的装置及其控制方法 | |
US20080148011A1 (en) | Carry/Borrow Handling | |
CN112650471A (zh) | 用于处理掩蔽数据的处理器和方法 | |
WO2007083377A1 (ja) | パリティ生成回路、計数回路および計数方法 | |
US6101621A (en) | Logic circuit and method for designing the same | |
CN112099763A (zh) | 用于sm2的快速安全硬件乘法器及其应用 | |
US20070198811A1 (en) | Data-driven information processor performing operations between data sets included in data packet | |
JPH09222991A (ja) | 加算方法および加算器 | |
JP2000207387A (ja) | 演算装置及び暗号処理装置 | |
CN109977701B (zh) | 一种定浮点运算装置 | |
US7475104B2 (en) | System and method for providing a double adder for decimal floating point operations | |
US9262123B2 (en) | Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation | |
JP4317738B2 (ja) | 平均値算出装置および平均値算出方法 | |
JP3912958B2 (ja) | データ駆動型処理装置およびデータ駆動型処理装置におけるデータ処理方法 | |
KR100858559B1 (ko) | 잉여 이진수의 덧셈 방법, 잉여 이진수의 곱셈 방법, 잉여이진수 덧셈기 및 잉여 이진수 곱셈기 | |
JP7099197B2 (ja) | 演算処理装置、演算器および演算処理装置の制御方法 | |
US20080307032A1 (en) | Divider Circuit | |
JP2009301265A (ja) | 倍数判定方法、倍数判定装置および倍数判定プログラム | |
Lórencz et al. | Subtraction-free almost Montgomery inverse algorithm | |
JP3482102B2 (ja) | 絶対値距離演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 2007554774 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2006711995 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020087017169 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 200680051417.4 Country of ref document: CN |
|
NENP | Non-entry into the national phase |
Ref country code: DE |