KR20000054275A - 입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기 - Google Patents
입력에 따라 능동적으로 재구성 가능한 고속 병렬 덧셈기 Download PDFInfo
- 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
Links
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/5052—Adding; 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
본 발명은 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과 같이 특정 신호 (예: 0 신호)의 연속으로 나타내는 단계와 도 2와 같이 이진수 입력 bij를 제어입력 C에 인가하여 도 2 (가) 또는 도 2 (나)와 같이 경로를 바꾸는 단계와 bij를 도 1에 예시한바와 같이 맨 위쪽 처리기의 N 입력에 인가하는 단계와 Cj+1를 도 1에 예시한바 x 표시한 곳에서 읽는 단계와 zj를 도 1에 예시한 바와 같이 o 표시한 곳에서 읽어 검출된 0의 개수를 세어 zj를 알아내는 단계와 도 4와 같이 연결하여 모든 j에 대한 Cj를 구하는 단계로 이루어진 것을 특징으로 하는 덧셈 방법.
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)
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 |
-
2000
- 2000-05-30 KR KR1020000029417A patent/KR20000054275A/ko not_active Application Discontinuation
Patent Citations (4)
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 |