US5682342A - High-speed counter - Google Patents
High-speed counter Download PDFInfo
- Publication number
- US5682342A US5682342A US08/428,542 US42854295A US5682342A US 5682342 A US5682342 A US 5682342A US 42854295 A US42854295 A US 42854295A US 5682342 A US5682342 A US 5682342A
- Authority
- US
- United States
- Prior art keywords
- bit
- component
- signal
- summed
- adder
- 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.)
- Expired - Lifetime
Links
- 230000004044 response Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Classifications
-
- 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/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/5055—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination in which one operand is a constant, i.e. incrementers or decrementers
Definitions
- the present invention relates generally to binary counters, and more specifically to a high-speed counter particularly suitable for use in a microprocessors to serve as a program counter.
- Japanese Provisional Patent Publication Hei-2-309423 discloses a pipelined microprocessor in which the effective address calculation stage is divided into a higher-bit module and a lower-bit module.
- each module two registers are provided for respectively storing an instruction code and an incremental code.
- the stored codes are summed by an adder in each module and combined with the output of the other module to produce an effective address.
- an interlock request is generated to suspend the pipeline operation. Since the carry occurs at intervals, the interlocking operation lowers the operating performance of a microprocessor.
- the stated object is achieved by storing an n-bit input signal into a register in response to a clock pulse, dumping the stored signal out of the register in response to a subsequent clock pulse and dividing the n-bit input signal into a lower m-bit component and a higher (n-m)-bit component.
- the lower m-bit component is summed with a 1 to produce a summed m-bit component and a carry if the lower m-bit component is all 1's.
- the higher (n-m)-bit component is summed with a 1 to produce a summed (n-m)-bit component.
- the divided (n-m)-bit component is selected and in the presence of the carry the summed (n-m)-bit component is selected. Either of the selected (n-m)-bit components is combined with the summed m-bit component to produce a summed n-bit signal which is then stored back into the register.
- FIG. 1 is a block diagram of a microprocessor incorporating a counter of the present invention as a program counter;
- FIG. 2 Is a block diagram of the program counter of FIG. 1;
- FIG. 3 is a table illustrating binary status of the various elements of FIG. 2;
- FIG. 4 is a block diagram of a modified embodiment of the invention.
- FIG. 5 is a block diagram of a further modification of the invention.
- the program counter 10 receives a clock pulse from a counter controller 11 and supplies a carry output and a binary count output to the address input of an instruction memory 12.
- the output of instruction memory 12 is supplied to an instruction decoder 13 where it is analyzed to provide instruction data to a data memory 14, an arithmetic/logic unit 15 and a register file 16.
- the instruction decoder 13 supplies a select signal to the program counter 10 and counter controller 11 when decoder 13 generates a branch instruction.
- Register file 16 provides operands to data memory 14 and ALU 15 simultaneously or a single operand to the ALU.
- the outputs of data memory 14 and ALU 15 are coupled to register file 16.
- An initial value is supplied from the ALU 15 to the program counter 10.
- the system operates in a well known manner to provide instruction fetch from memory 12, instruction decoding by decoder 13, operand fetch from data memory 14 and register file 16, execution by ALU 15, and saving executed operands into register file 16.
- the general clock signal is coupled to the program counter 10 as indicated by broken lines.
- the program counter 10 includes a selector 20 to which the initial value of n bits is supplied from the ALU 15 as one of its input signals and the select signal from the instruction decoder 13 is applied as a command signal.
- the n-bit output of selector 20 is applied to a register 21 which is clocked by clock pulses supplied from the counter controller 11.
- the n-bit output of register 21, which is supplied to the instruction memory 12 as a signal for specifying an address, is divided into a lower "m"-bit component and a higher "n-m"-bit component.
- the lower-bit component of the n-bit register output is supplied to an m-bit adder 22 and the higher-bit component is supplied to a pipeline adder 23 as well as to a selector 27.
- a "1" is always added to the LSB position of each m-bit input from register 21 to provide an m-bit output of plus-one sum, which is combined with an (n-m)-bit output from the selector 27 and supplied as a second input signal to the selector 20.
- the adder 22 supplies a carry output as a select signal to the selector 27 as well as to the counter controller 11.
- the pipeline adder 23 is a two-stage pipeline adder formed by a cascade of an (n-m)-bit first half-stage adder 24, an (n-m)-stage register 25 and an (n-m)-bit second half-stage adder 26 which forms a full (n-m)-bit adder with the first-stage adder 24.
- the first half-stage adder 24 always adds a "1" to the LSB position of the (n-m)-bit input from register 21 and produces an intermediate result of the adding process of the full adder. This intermediate result is latched in the register 25 in response to a clock pulse from the counter controller 11 and then dumped into the second half-stage adder 26.
- the pipeline register 25 is clocked by the general clock source, not shown.
- the pipeline register 25 is clocked at all times without interruptions.
- the second half stage adder 26 produces an (n-m)-bit output at each clock pulse, but for a given higher (n-m)-bit input, a two-clock interval is required to appear its output of plus-one sum.
- the use of pipeline structure for the higher-bit adder 23 allows it to operate with the high-speed clock of the microprocessor. Therefore, the m-bit adder 22 produces a carry output at periodic intervals at which it reaches the value 2 m . Whenever a carry output is produced by adder 22 for a given lower-bit input, the arithmetic operation on the corresponding higher-bit input has already been completed in the pipeline adder 23.
- the selector 27 selects the output of pipeline adder 23 and in the absence of the carry output it selects the higher-bit output of register 21.
- the lower-bit output from adder 22 is successively incremented and a carry output is again produced during the fifth clock cycle to select the higher-bit value "01" from pipeline adder 23 to be combined with the lower-bit value "00".
- the combined n-bit value which is stored back into register 21 via selector 20, is incremented by one in response to each clock pulse.
- the operation of register 21 is stopped for a clock interval in response to the simultaneous detection by the counter controller 11 of a carry output from the adder 22 and a select signal from the instruction decoder 13 by allowing the pipeline adder 23 to continue operating on the higher-bit value.
- the carry signal is generated when all input bits of adder 22 are all 1's, it can also be generated by the use of an m-input AND gate 30 as shown in FIG. 4.
- a carry output from AND gate 30 is obtained in parallel with the arithmetic operation proceeding in the m-bit adder 22.
- the output of AND gate 30 is applied as a select signal to the selector 27.
- the use of the AND gate 30 has the benefit of speeding up the selection control by selector 27, allowing an increase in processing speed.
- the pipeline adder 23 Since the result of the pipeline adder 23 is used (2 m -1) clock intervals after the entry of each m-bit input to the adder 22, the pipeline adder 23 can be implemented with up to (2 m -1) pipeline stages. Otherwise, if the adder 23 produces indefinite values for a few clock cycles immediately following the entry of an input value, no situations exist at all for using such indefinite values.
- a simple (n-m)-bit adder 40 can be used, as illustrated in FIG. 5, for summing a 1 to the higher (n-m)-bit input from the register 21 to produce an (n-m)-bit output as one input of the selector 27.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Microcomputers (AREA)
- Advance Control (AREA)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8858094 | 1994-04-26 | ||
JP6-088580 | 1994-04-26 | ||
JP6263762A JPH0816364A (ja) | 1994-04-26 | 1994-10-27 | カウンタ回路とそれを用いたマイクロプロセッサ |
JP6-263762 | 1994-10-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
US5682342A true US5682342A (en) | 1997-10-28 |
Family
ID=26429941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/428,542 Expired - Lifetime US5682342A (en) | 1994-04-26 | 1995-04-25 | High-speed counter |
Country Status (2)
Country | Link |
---|---|
US (1) | US5682342A (ja) |
JP (1) | JPH0816364A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889693A (en) * | 1997-05-05 | 1999-03-30 | Intel Corporation | CMOS sum select incrementor |
US5956502A (en) * | 1997-03-05 | 1999-09-21 | Micron Technology, Inc. | Method and circuit for producing high-speed counts |
US6272608B1 (en) | 1997-07-10 | 2001-08-07 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with lookahead logic for detecting latency intervals |
US6405280B1 (en) | 1998-06-05 | 2002-06-11 | Micron Technology, Inc. | Packet-oriented synchronous DRAM interface supporting a plurality of orderings for data block transfers within a burst sequence |
US6434588B1 (en) * | 1998-09-29 | 2002-08-13 | Samsung Electronics Co., Ltd. | Binary counter with low power consumption |
US6519719B1 (en) | 1997-06-13 | 2003-02-11 | Micron Technology, Inc. | Method and apparatus for transferring test data from a memory array |
US20030081466A1 (en) * | 2001-09-07 | 2003-05-01 | Frank Boeh | Binary counter |
US20080219400A1 (en) * | 2005-10-05 | 2008-09-11 | Proton World International N.V. | Event Counter |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4245327A (en) * | 1978-03-06 | 1981-01-13 | Tokyo Shibaura Denki Kabushiki Kaisha | Data processor having two types of carry flags |
US4644490A (en) * | 1983-04-11 | 1987-02-17 | Hitachi, Ltd. | Floating point data adder |
US4831570A (en) * | 1985-12-23 | 1989-05-16 | Texas Instruments Incorporated | Method of and circuit for generating bit-order modified binary signals |
US4953115A (en) * | 1988-02-09 | 1990-08-28 | Nec Corporation | Absolute value calculating circuit having a single adder |
JPH02309423A (ja) * | 1989-05-24 | 1990-12-25 | Fujitsu Ltd | パイプラインプロセッサにおける実効アドレス計算制御方式 |
US4994996A (en) * | 1989-02-03 | 1991-02-19 | Digital Equipment Corporation | Pipelined floating point adder for digital computer |
US5053987A (en) * | 1989-11-02 | 1991-10-01 | Zoran Corporation | Arithmetic unit in a vector signal processor using pipelined computational blocks |
US5146479A (en) * | 1990-06-05 | 1992-09-08 | Mitsubishi Denki Kabushiki Kaisha | Up/down counter for counting binary data stored in flip flops |
US5222111A (en) * | 1990-10-29 | 1993-06-22 | Mitsubishi Denki Kabushiki Kaisha | Pulse generator circuit employing arithmetic function counter |
US5375079A (en) * | 1992-02-03 | 1994-12-20 | Mitsubishi Denki Kabushiki Kaisha | Arithmetical unit including accumulating operation |
US5410721A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for incrementing a program counter |
US5504698A (en) * | 1994-05-17 | 1996-04-02 | Silicon Graphics, Inc. | Compact dual function adder |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4002926A (en) * | 1975-10-02 | 1977-01-11 | Hughes Aircraft Company | High speed divide-by-N circuit |
-
1994
- 1994-10-27 JP JP6263762A patent/JPH0816364A/ja active Pending
-
1995
- 1995-04-25 US US08/428,542 patent/US5682342A/en not_active Expired - Lifetime
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4245327A (en) * | 1978-03-06 | 1981-01-13 | Tokyo Shibaura Denki Kabushiki Kaisha | Data processor having two types of carry flags |
US4644490A (en) * | 1983-04-11 | 1987-02-17 | Hitachi, Ltd. | Floating point data adder |
US4831570A (en) * | 1985-12-23 | 1989-05-16 | Texas Instruments Incorporated | Method of and circuit for generating bit-order modified binary signals |
US4953115A (en) * | 1988-02-09 | 1990-08-28 | Nec Corporation | Absolute value calculating circuit having a single adder |
US4994996A (en) * | 1989-02-03 | 1991-02-19 | Digital Equipment Corporation | Pipelined floating point adder for digital computer |
JPH02309423A (ja) * | 1989-05-24 | 1990-12-25 | Fujitsu Ltd | パイプラインプロセッサにおける実効アドレス計算制御方式 |
US5053987A (en) * | 1989-11-02 | 1991-10-01 | Zoran Corporation | Arithmetic unit in a vector signal processor using pipelined computational blocks |
US5146479A (en) * | 1990-06-05 | 1992-09-08 | Mitsubishi Denki Kabushiki Kaisha | Up/down counter for counting binary data stored in flip flops |
US5222111A (en) * | 1990-10-29 | 1993-06-22 | Mitsubishi Denki Kabushiki Kaisha | Pulse generator circuit employing arithmetic function counter |
US5375079A (en) * | 1992-02-03 | 1994-12-20 | Mitsubishi Denki Kabushiki Kaisha | Arithmetical unit including accumulating operation |
US5410721A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for incrementing a program counter |
US5504698A (en) * | 1994-05-17 | 1996-04-02 | Silicon Graphics, Inc. | Compact dual function adder |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956502A (en) * | 1997-03-05 | 1999-09-21 | Micron Technology, Inc. | Method and circuit for producing high-speed counts |
US5889693A (en) * | 1997-05-05 | 1999-03-30 | Intel Corporation | CMOS sum select incrementor |
US6519719B1 (en) | 1997-06-13 | 2003-02-11 | Micron Technology, Inc. | Method and apparatus for transferring test data from a memory array |
US6789175B2 (en) | 1997-07-10 | 2004-09-07 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with selectable data or address paths |
US6415340B1 (en) | 1997-07-10 | 2002-07-02 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with selectable data or address paths |
US6556483B2 (en) | 1997-07-10 | 2003-04-29 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with selectable data or address paths |
US6560668B2 (en) | 1997-07-10 | 2003-05-06 | Micron Technology, Inc. | Method and apparatus for reading write-modified read data in memory device providing synchronous data transfers |
US6611885B2 (en) | 1997-07-10 | 2003-08-26 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with selectable data or address paths |
US6614698B2 (en) | 1997-07-10 | 2003-09-02 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with selectable data or address paths |
US6272608B1 (en) | 1997-07-10 | 2001-08-07 | Micron Technology, Inc. | Method and apparatus for synchronous data transfers in a memory device with lookahead logic for detecting latency intervals |
US6405280B1 (en) | 1998-06-05 | 2002-06-11 | Micron Technology, Inc. | Packet-oriented synchronous DRAM interface supporting a plurality of orderings for data block transfers within a burst sequence |
US6434588B1 (en) * | 1998-09-29 | 2002-08-13 | Samsung Electronics Co., Ltd. | Binary counter with low power consumption |
US20030081466A1 (en) * | 2001-09-07 | 2003-05-01 | Frank Boeh | Binary counter |
US7072930B2 (en) * | 2001-09-07 | 2006-07-04 | Koninklijke Philips Electronics N.V. | Binary counter |
US20080219400A1 (en) * | 2005-10-05 | 2008-09-11 | Proton World International N.V. | Event Counter |
US8122079B2 (en) * | 2005-10-05 | 2012-02-21 | Proton World International N.V. | Event counter |
Also Published As
Publication number | Publication date |
---|---|
JPH0816364A (ja) | 1996-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100309566B1 (ko) | 파이프라인프로세서에서다중명령어를무리짓고,그룹화된명령어를동시에발행하고,그룹화된명령어를실행시키는방법및장치 | |
US6209017B1 (en) | High speed digital signal processor | |
US5699279A (en) | Optimized binary adders and comparators for inputs having different widths | |
EP0142912B1 (en) | Code determination using half-adder based operand comparator | |
US6061780A (en) | Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units | |
JPH0542011B2 (ja) | ||
JPS6351287B2 (ja) | ||
US7827226B2 (en) | Hybrid arithmetic logic unit | |
JP2003005958A (ja) | データ処理装置およびその制御方法 | |
US5682342A (en) | High-speed counter | |
JP2653037B2 (ja) | データ処理システム | |
US5590351A (en) | Superscalar execution unit for sequential instruction pointer updates and segment limit checks | |
JP2001034472A (ja) | データ処理装置および除算、剰余算アルゴリズム | |
JP3212213B2 (ja) | データ処理装置 | |
US5390306A (en) | Pipeline processing system and microprocessor using the system | |
US6629118B1 (en) | Zero result prediction | |
EP0936537B1 (en) | Cyclic redundancy check in a computer system | |
JP2006072961A (ja) | 演算処理装置のメモリ回路 | |
US5065353A (en) | Adder control method and adder control circuit | |
KR950015181B1 (ko) | 곱셈-합 연산장치 | |
JP2924736B2 (ja) | パイプライン演算装置 | |
KR100385233B1 (ko) | 데이터 프로세싱 시스템의 익스포넌트 유닛 | |
EP0356940B1 (en) | Finite state machine | |
US6460129B1 (en) | Pipeline operation method and pipeline operation device to interlock the translation of instructions based on the operation of a non-pipeline operation unit | |
JP3211750B2 (ja) | 情報処理装置及びパイプライン処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: NEC CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SUZUKI, KAZUMASA;REEL/FRAME:007512/0381 Effective date: 19950417 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |