KR20000054275A - 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기 - Google Patents

입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기 Download PDF

Info

Publication number
KR20000054275A
KR20000054275A KR1020000029417A KR20000029417A KR20000054275A KR 20000054275 A KR20000054275 A KR 20000054275A KR 1020000029417 A KR1020000029417 A KR 1020000029417A KR 20000029417 A KR20000029417 A KR 20000029417A KR 20000054275 A KR20000054275 A KR 20000054275A
Authority
KR
South Korea
Prior art keywords
carry
place
result
route
input
Prior art date
Application number
KR1020000029417A
Other languages
English (en)
Inventor
장주욱
Original Assignee
장주욱
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 장주욱 filed Critical 장주욱
Priority to KR1020000029417A priority Critical patent/KR20000054275A/ko
Publication of KR20000054275A publication Critical patent/KR20000054275A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/5052Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination using carry completion detection, either over all stages or at sample stages only

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)
  • Multi Processors (AREA)

Abstract

본 발명은 연산 처리 장치의 덧셈기능에 관한 것으로, 더욱 상세하게는 k(k는 자연수)개의 이진수로 이루어진 숫자 N개를 더할 때 각 자릿수에서 발생하는 캐리를 병렬로 발생시키는 방법에 관한 것이다.
이를 위하여 본 발명은, 각 자릿수에서의 캐리를 0 또는 1로 이루어진 숫자열에서의 연속된 0의 개수로 나타내는 방법, 또 각 자릿수에 있는 N 개의 이진수를 이용하여 회로를 재구성하는 단계, 재구성된 회로에 아래 자릿수에서 전해져오는 캐리를 통과시켜 윗자리수에 전하는 단계, 각 자릿수에서의 덧셈 결과를 구하는 단계로 이루어진다.
본 발명의 특징은 더하고자 하는 입력 숫자들에 의해 회로내에 신호가 지나가는 경로를 재구성하고 여기에 0 또는 1 (전압으로는 0 볼트와 5볼트)으로 이루어진 신호열을 통과 시키고 각 블록의 경계에서 신호열을 검출하여 해당 자릿수에서의 캐리를 알아내는 데 있다. 이런 방법으로 재구성된 경로에 신호열이 지나가는 즉시 모든 자릿수에서의 캐리를 알수 있어 병렬로 각 자릿수의 덧셈 결과를 알아낼 수 있다.

Description

입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기{A high speed parallel adder which reconfigures itself for fast processing of input}
본 발명은 k 개의 이진수로 이루어진 숫자 N 개를 더하여 k + log N 개의 이진수로 된 결과를 얻는 덧셈에 관한 것으로 여기서 k와 N은 각각 1이상의 자연수이다. 더욱 상세하게는 N 개의 이진수를 더하는 방법중 입력에 의해 각 처리기의 내부의 입출력 단자의 연결을 재구성하여 캐리를 계산하는 방법에 관한 것이다.
종래 기술로는 Wang, Chen, Li[1]가 N(k + log N) x N(k + log N)/2개의 처리기를 사용하여 구현한 경우와 Ben-Asher, Peleg, Ramaswami[2]가 N 개의 이진수로 이루어진 숫자 N 개를 N x N x N 개의 3차원으로 연결된 처리기를 사용하여 구현한 경우가 있다. Wang, Chen, Li[1]의 방법은 j 번째 캐리를 얻기 위하여 N x jN 개의 처리기를 사용하는 방법으로 소요되는 처리기의 개수가 많이 소요된다는 단점이 있다. 그 이유는 j+1 번째 캐리를 생성하는 회로가 j 번째 캐리를 생성하는 회로를 포함하고 있는데도 불구하고 j+1 번째 캐리가 나타나는 순간 j 번째 캐리가 지워지게 되어 j 번째 캐리를 생성하는 회로를 별도로 구성해야 하기 때문이다. 즉 j = 1, 2, 3, ..., k, k + 1, k + 2, ..., k + log N 일때의 캐리를 각각 다른 회로로 구성해야 한다는 단점이 있다.
Ben-Asher, Peleg, Ramaswami[2]의 방법은 N x N x N 개의 처리기를 3차원으로 연결하여 N 개의 이진수로 이루어진 N 개의 숫자를 재귀적으로 더하는 방법으로 처리기의 갯수를 Wang, Chen, Li[1]의 방법에 비해 줄일 수 있지만 연산 단계가 log*N 배로 늘어난다는 단점이 있다. 또 N x N x N 개의 3차원으로 연결된 처리기는 N3개이지만 이를 집적회로로 구현할 때는 2차원으로 바꿔야 하므로 집적회로의 면적에 있어서는 Wang, Chen, Li[1]의 경우와 마찬가지로 많은 면적을 차지하는 단점이 있다.
본 발명은 위와 같이 처리기의 개수나 차지하는 면적이 늘어나는 것을 막기 위해 j = 1, 2, 3, ..., k, k + 1, k + 2, ..., k + log N 일때의 캐리 모두를 하나의 회로를 써서 구하고자 한다. 이를 위해 본 발명에서는 j + 1 번째 캐리가 나타나는 순간 j 번째 캐리가 지워지지 않도록 캐리의 표시 방법과 캐리가 버스를 통해 전달되는 방법을 새롭게 한데 특징이 있다.
도 1은 본 발명에 사용된 캐리 발생기(N = 3인 경우에 아랫자리의 캐리 Cj를 써서 Cj+1을 계산하는 부분만 표시)
도 2는 도 1의 캐리 생성기를 구성하는 각 연산 소자의 제어입력 C에 따른 연결 방법으로 C = 1일 때 (가)와 같이, C = 0 일 때 (나)와 같이 연결함
도 3 내지 도 4는 본 발명에 따른 캐리 생성 및 덧셈 방법을 예시함
이하 첨부된 도면에 의해 상세히 설명하면 다음과 같다.
도 3은 6 개의 이진수로 이루어진 3 개의 숫자를 더하는 문제를 예시한 것으로 본 발명이 해결하고자 하는 k 개의 이진수로 이루어진 N개의 숫자를 더하는 문제에서 k = 6, N = 3 인 경우라고 할 수 있다. 예시한 문제에서 i 번째 숫자의 값은 수학식 1 과 같다.
[수학식1]
이때 3 개의 숫자 (즉 i = 0, 1, 2 )를 더한 결과는 수학식 2와 같이 나타낼 수 있다.
[수학식2]
일반적으로 k개의 이진수로 이루어진 N 개의 숫자를 더할때는 i 번째 숫자의 값이 수학식 3과 같고 더한 결과는 수학식 4와 같다.
[수학식3]
[수학식4]
수학식 2에서의 zj는 덧셈의 결과의 j 번째 자리수로서 j-1 번째 자리에서 넘어오는 캐리가 Cj라고 할때 수학식 5와 같이 구할 수 있다. 여기서 x mod 2 는 x를 2로 나눈 나머지를 나타낸다. 도 3의 예시에서 z2가 됨을 확인할 수 있다.
[수학식5]
수학식 5에서 Cj만이 j-1 번째 자리에서 올라오고 나머지는 j 번째 자리에(도 3참조) 있으므로 Cj를 모든 j 에 대해 병렬적으로 구하면 모든 j 에 대해 병렬적으로 zj를 구할 수 있어 덧셈의 결과를 얻을 수 있다. 그런데 Cj+1는 수학식 6과 같이 나타낼 수 있다.여기서 x div 2 는 x를 2로 나눈 몫을 나타낸다.
[수학식6]
도 3의 예시에서 C3이 2가 됨을 확인할 수 있다. 본 발명에서 Cj+1과 Zj를 구하는 방법을 j=2 인 경우를 통해 예시한다. 도 1에 14개의 처리기(네모로 표시)로 구성된 캐리생성기를 보인다. 이 캐리생성기는 Cj, b0j, b1j, b2j를 입력으로 받아들여 수학식 6에 의해 Cj+1을 출력한다. 캐리의 값은 위에서부터 아래로 연속한 0의 개수로서 나타낸다. 즉 하나이면 0, 둘이면 1, 셋이면 2이다. 본 예시에서는 3개의 이진수만을 더하기 때문에 발생하는 캐리가 2이하이다. 일반적으로 N개의 이진수를 더할 때 캐리는 N-1이하이다. 도 1의 예시에서는 입력 Cj가 3개의 연속한 0으로 나타나므로 Cj= 2이다.
각 처리기의 내부는 도 2에 보인다. 각 처리기는 N, E, S, W의 4개의 입출력 단자를 갖는데 이들 입출력 단자 사이의 전기적 연결이 제어입력 C에 의해 이루어진다. 즉 C = 1일때는 도 2 (가)와 같이, C = 0일때는 도 2 (나)와 같이 연결이 이루어진다. 출력 Cj+1를 생성하는 과정을 살펴보면 다음과 같다. 먼저 b2j, b1j, b0j를 입력한다. 여기서 b2j의 경우 왼쪽에서 첫번째 열에 있는 모든 처리기의 제어입력 C와 맨위에 있는 처리기의 N 입력에 인가됨을 알 수 있다. b2j가 0이므로 C가 0이 되고 이 열에 속한 모든 처리기는 도 2 (나)의 연결을 가지게 된다. 한편 b2j의 보수인 1이 맨위에 있는 처리기의 N 입력에 인가된다. 두 번째, 세 번째 열에 있는 처리기들이 모두 도 2 (가) 와 같이 연결되고 맨위에 있는 처리기들의 N 입력에는 0이 인가된다. 도 1에 0의 신호가 지나가는 경로를 굵게 표시하였다. x 표한 곳의 신호를 읽으면 Cj+1의 값을 알 수 있다. zj의 값은 O 표시한곳을 읽어 나타난 0의 개수를 세고 그 수가 짝수이면 zj= 1, 홀수면 zj= 0으로 하면 된다. 도 1의 예시에서는 5개의 0이 검출되므로 zj= 0 임을 알 수 있다. 예시한 j = 2인 경우 b22= O, b12= 1, b2= 1, C2= 2 이므로 수학식 5, 6에 각각 대입하면 수학식 7, 8과 같이 되어 도 1에 나타나는 결과와 일치하게 된다.
[수학식7]
[수학식8]
도 1은 각 자릿수에서의 캐리와 결과를 구하는 방법을 보이는 것이고 이들을 연결하여 모든 자릿수의 캐리와 결과를 구하는 회로는 도 4에 보인다. 도 1에 k = 6, N = 3 인 경우만 예시했지만 같은 방법으로 모든 자연수 k, N에 대해 캐리와 결과를 구할 수 있음을 알 수 있다. j = 0, 1, 2, ..., k - 1 에 대해 도 1 과 같은 블록 (도 4에 ADDDIV2로 표시)들을 연결하고 C0= 0을 입력하고(즉 맨 왼쪽 블록의 맨 왼쪽열 상단의 처리기의 W입력단자에만 0 신호를 인가하면) 각 블록에 해당되는 bij들을 입력하면 0 신호가 bij들에 의해 정해진 경로를 따라 전기적으로 흐르면서 C1, C2, ..., Ck를 구할 수 있다. j가 k이상일 때는 bij= 0이므로 도 1의 ADDDIV2블록에서 처리기들을 모두 제거하고 이를 DIV2블록이라고 하여 도 4와 같이 연결하면 j가 k이상 일때의 Cj, zj를 구할 수 있다. 이상과 같이 하여 모든 j에 대해 zj를 구하면 수학식 4를 이용하여 덧셈의 결과를 구할 수 있다.
이상에서 상술한 바와 같이 본 발명은, 2진수 입력에 의해 신호가 지나가는 경로를 바꾸어 주고 출력단에서 신호가 검출되는 모양을 보고 캐리를 알아내는 방법을 사용함으로써 경로에 전기적 신호가 흐르는 매우 짧은 시간에 모든 자릿수에서의 캐리를 알아낼 수 있게 한다. 그 결과 모든 자릿수에서의 덧셈 결과를 AND, OR등의 논리회로를 전혀 거치지 않고 매우 짧은 시간에 알 수 있게 되어 전체의 덧셈 결과를 매우 짧은 시간에 구할 수 있다. 즉, k개의 이진수로 이루어진 N개의 숫자를 더하는 일이 N, k의 크기에 관계없이 처리기들을 연결하는 경로에서 전기신호가 지나가는 시간에 이루어질 수 있다(물론 k, N이 커짐에 따라 경로가 길어지고 이에 따라 C0입력 후부터 맨 우측에서 신호를 검출하기까지 시간이 늘어나지만 논리회로들을 통과하는 시간 보다는 크게 작다고 하겠다).

Claims (1)

  1. 각 자릿수에서의 캐리 입출력을 도 1과 같이 특정 신호 (예: 0 신호)의 연속으로 나타내는 단계와 도 2와 같이 이진수 입력 bij를 제어입력 C에 인가하여 도 2 (가) 또는 도 2 (나)와 같이 경로를 바꾸는 단계와 bij를 도 1에 예시한바와 같이 맨 위쪽 처리기의 N 입력에 인가하는 단계와 Cj+1를 도 1에 예시한바 x 표시한 곳에서 읽는 단계와 zj를 도 1에 예시한 바와 같이 o 표시한 곳에서 읽어 검출된 0의 개수를 세어 zj를 알아내는 단계와 도 4와 같이 연결하여 모든 j에 대한 Cj를 구하는 단계로 이루어진 것을 특징으로 하는 덧셈 방법.
KR1020000029417A 2000-05-30 2000-05-30 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기 KR20000054275A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000029417A KR20000054275A (ko) 2000-05-30 2000-05-30 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000029417A KR20000054275A (ko) 2000-05-30 2000-05-30 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기

Publications (1)

Publication Number Publication Date
KR20000054275A true KR20000054275A (ko) 2000-09-05

Family

ID=19670850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000029417A KR20000054275A (ko) 2000-05-30 2000-05-30 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기

Country Status (1)

Country Link
KR (1) KR20000054275A (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173762A (ja) * 1991-12-20 1993-07-13 Nissan Motor Co Ltd 2進数並列2乗算器
JPH06236255A (ja) * 1992-01-06 1994-08-23 Intel Corp 並列桁上げ発生ネットワーク、並列加算器ネットワーク、桁上げ発生モジュール、マルチビット加算器ネットワークおよびモジュラー桁上げ伝ぱんユニット
KR19980034254A (ko) * 1996-11-06 1998-08-05 김영환 병렬 데이타 비트 카운터
US5951630A (en) * 1996-10-02 1999-09-14 Arm Limited Digital adder circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173762A (ja) * 1991-12-20 1993-07-13 Nissan Motor Co Ltd 2進数並列2乗算器
JPH06236255A (ja) * 1992-01-06 1994-08-23 Intel Corp 並列桁上げ発生ネットワーク、並列加算器ネットワーク、桁上げ発生モジュール、マルチビット加算器ネットワークおよびモジュラー桁上げ伝ぱんユニット
US5951630A (en) * 1996-10-02 1999-09-14 Arm Limited Digital adder circuit
KR19980034254A (ko) * 1996-11-06 1998-08-05 김영환 병렬 데이타 비트 카운터

Similar Documents

Publication Publication Date Title
CN106610813B (zh) 用于在乘法器累加器块中执行乘积级数运算的方法和装置
Maley et al. The logic design of transistor digital computers
Karnaugh The map method for synthesis of combinational logic circuits
US4139899A (en) Shift network having a mask generator and a rotator
US3371320A (en) Multipurpose matrix
US7814136B1 (en) Programmable logic systems and methods employing configurable floating point units
US4967388A (en) Truncated product partial canonical signed digit multiplier
US20120007633A1 (en) Reconfigurable logical circuit
US4417315A (en) Method and apparatus for incrementing a digital word
JP4883251B1 (ja) 半導体集積回路及び指数算出方法
GB2401962A (en) A sum bit generation circuit
KR20000054275A (ko) 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기
US3075093A (en) Exclusive or circuit using nor logic
US2848166A (en) Counter
CN109196465A (zh) 双精度浮点运算
JP3558119B2 (ja) 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法
EP1461866B1 (en) Analog-to-digital converter and method of generating an intermediate code for an analog-to-digital converter
US3032266A (en) Decimal to binary conversion of numbers less than unity
US3026035A (en) Decimal to binary conversion
CN107045434B (zh) 一种fpga中多功能硬件专用乘法器及fpga芯片
US3125676A (en) jeeves
US3769499A (en) Threshold logic three-input adder
Srinivas et al. A C-testable carry-free divider
KR970005175A (ko) 파이프라인 구조에 근거한 곱셈/나눗셈 공유 처리기 구조
US3594561A (en) Decimal data-handling equipment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
E601 Decision to refuse application
E601 Decision to refuse application