머리모양첨가기
Carry-lookahead adder| 다음에 대한 시리즈 일부 |
| 산술 논리 회로 |
|---|
| 빠른 항법 |
휴대형 머리형(CLA) 또는 고속형 부속기는 디지털 로직에서 사용되는 전자제품의 일종이다. 캐리어룩 애드더는 캐리어 비트를 결정하는 데 필요한 시간을 줄여 속도를 향상시킨다. 그것은 더 단순하지만 일반적으로 느리게 전달 비트를 총 비트와 함께 계산하는 리플 캐리 애더(RCA)와 대조될 수 있으며, 각 단계는 이전의 전달 비트가 계산될 때까지 기다려야 자체 총 비트 및 운반 비트를 계산할 수 있다. 반송파 애더(carrier-lookahead adder)는 합계 전에 하나 이상의 반송 비트를 계산하므로, 더 큰 값 비트의 결과를 계산하는 대기 시간이 단축된다.
이미 1800년대 중반에 찰스 배비지는 그의 차이 엔진에 사용된 리플 캐리에 의해 부과된 성능 저하를 인식하고, 그 후에 그의 (비건조한) 분석 엔진의 운송을 예상하기 위한 메커니즘을 설계했다.[1][2] 콘래드 주세는 1930년대 바이너리 기계식 컴퓨터인 주즈 Z1에서 최초의 캐리어룩 애드더를 구현한 것으로 생각된다.[3] 제럴드 B. IBM의 로젠버거는 1957년에 현대적인 바이너리 휴대형 머리모양 애더에 대한 특허를 출원했다.[4]
이 개념의 널리 사용되는 두 가지 구현은 Kogge-Stone Adder (KSA)와 Brent-Kung Adder (BKA)이다.
운영이론
리플 덧셈
2진 리플-캐리 애더는 연필-종이 추가 방법과 같은 방식으로 작동한다. 가장 오른쪽(최소 유의) 자릿수 위치에서 시작하여 해당하는 두 자릿수를 더하고 결과를 얻는다. 또한 "9 + 5 = 4, 운반 1"과 같은 이 숫자 위치에서 수행될 수도 있다. 이진 산술은 같은 방식으로 작동하며 숫자가 적다. 이 경우 가능한 연산은 0+0, 0+1, 1+0, 1+1 등 4개뿐이다. 이 사건들 중 마지막은 운반선을 생성한다. 따라서 가장 오른쪽을 제외한 모든 자릿수 위치는 한 자릿수에서 오른쪽으로 한 자릿수 이동에서 1을 더 추가해야 할 가능성을 고려할 필요가 있다.
오른쪽에서 캐리어가 들어오는지 여부가 정립되기 전까지는 어떤 자리도 절대적으로 최종 값을 가질 수 없다는 뜻이다. 더구나 캐리어가 없는 합이 9(필지법으로)나 1(이항산술로)일 경우, 주어진 자릿수 위치가 캐리어를 왼쪽의 위치로 전달할 것인지도 알 수 없다. 최악의 경우, 전체 순서의 합계가 …99999999 …(소수) 또는 …111111…(이진수)가 되면, 오른쪽에서 들어오는 운반의 값이 알려질 때까지 아무것도 추론할 수 없으며, 그 운반은 각 숫자 위치가 "9 + 1 = 0", "1 + 1 = 0, 운반 1"을 평가했을 때 한 번에 한 단계씩 왼쪽으로 전파된다. 리플리크리에 이름을 붙이는 것은 오른쪽에서 왼쪽으로 나르는 캐리어의 '리플링'과 그 느림이다. 예를 들어 32비트 정수를 추가할 때 캐리가 32개 1비트 추가자 모두를 통해 파급될 수 있는 가능성에 대해 허용해야 한다.
앞을 내다보다, 장래 일을 생각하다, 장래에 대비하다
휴대품은 다음 두 가지에 따라 달라진다.
- 오른쪽에서 들어올 경우 해당 위치가 캐리어를 전파할 것인지 여부를 각 자리 위치에 대해 계산한다.
- 계산된 값을 조합하여 각 자릿수 그룹에 대해 해당 그룹이 오른쪽에서 들어오는 캐리어를 전파할 것인지 여부를 신속하게 추론할 수 있다.
4자리 그룹을 선택한다고 가정하면 다음과 같은 일이 일어난다.
- 모든 1비트 추가자가 결과를 계산한다. 동시에 룩어헤드 유닛은 계산을 수행한다.
- 특정 그룹에서 캐리어가 발생한다고 가정할 경우, 해당 캐리어는 최대 5개의 게이트 지연 내에서 그룹 왼쪽 끝에 나타나 그룹을 통해 왼쪽으로 전파되기 시작한다.
- 만약 그 캐리어가 다음 그룹을 통해 전파된다면, 룩어헤드 유닛은 이미 이것을 추론했을 것이다. 따라서, 다음 그룹에서 캐리어가 등장하기 전에 룩어헤드 유닛은 캐리어를 받을 것임을 좌측으로 즉시(한 게이트 지연 내에서) 다음 그룹에게 알려줄 수 있으며, 동시에, 다음 룩어헤드 유닛에게 캐리어가 오고 있음을 좌측으로 알려줄 수 있다.
순효과는 리플 캐리 시스템처럼 각 4비트 그룹을 통해 천천히 전파하는 것으로 시작하지만, 한 외형 캐리 유닛에서 다음 외형 캐리 유닛으로 도약하면서 4배 빠르게 이동하는 것이다. 마지막으로, 캐리어를 받는 각 그룹 내에서 캐리어는 해당 그룹의 숫자 내에서 천천히 전파된다.
그룹 내 비트가 많을수록 룩어헤드가 운반하는 논리가 복잡해지고, 그룹 간(룩어헤드 운반 논리 제공)의 '빠른 길'보다는 각 그룹의 '느린 길'에 더 많은 시간이 소요된다. 한편, 그룹 내 비트가 적을수록, 한 숫자의 한쪽 끝에서 다른 쪽 끝으로 가기 위해 더 많은 그룹을 횡단해야 하고, 결과적으로 가속도가 더 낮아진다.
룩어어헤드 캐리어 논리에 의해 지배될 그룹 크기를 결정하려면 사용 중인 특정 기술에 대한 게이트 및 전파 지연에 대한 상세한 분석이 필요하다.
두 가지 이상의 외모 지상주의 논리를 가질 수 있으며, 이것은 사실 보통 행해진다. 각 룩어헤드 캐리 유닛은 이미 "오른쪽에서 캐리어가 들어오면 왼쪽으로 전파하겠다"는 신호를 생산하고, 그 신호를 결합하여 예를 들어 룩어헤드 캐리 유닛 4개 그룹이 총 16비트의 숫자를 지배하는 "슈퍼 그룹"의 일부가 될 수 있다. '슈퍼그룹' 룩어헤드캐리 논리는 슈퍼그룹에 들어가는 캐리어가 이를 통해 전파를 타는지 여부를 말할 수 있을 것이며, 이 정보를 이용하면 순진한 리플캐리보다 16배 빠른 오른쪽에서 왼쪽으로 캐리어를 전파할 수 있다. 이와 같은 2단계 구현으로, 캐리어는 먼저 개별 추가자의 "느린 도로"를 통해 전파된 다음, 그룹의 왼쪽 끝에 도달한 다음, 4비트 룩어헤드 캐리 논리의 "빠른 도로"를 통해 전파된 다음, 슈퍼그룹의 왼쪽 끝에 도달한 다음, 16비트 룩어헤드-c의 "초고속 도로"를 통해 전파될 수 있다.신랄한 논법
다시, 선택할 그룹 크기는 논리 게이트 내에서 그리고 논리 게이트에서 다른 로직 게이트로 얼마나 빠른 신호가 전파되는지에 대한 정확한 세부사항에 따라 결정된다.
매우 큰 수(수백 비트 또는 수천 비트)의 경우, 필요에 따라 더 많은 슈퍼그룹과 슈퍼수퍼그룹 층이 추가될 수 있기 때문에 룩어커리 논리는 더 이상 복잡해지지 않는다. 모든 집단의 크기가 4개라면 결국 애더더의 3분의 1을 차지하게 될 것이라는 관문 수가 늘어난 것도 보통이다. 그러나, 더 빠른 단계로 가는 길에 있는 "느린 도로"는 전체 시스템을 끌기 시작하고(예를 들어, 256비트 애더더의 운반 처리에서 최대 24개의 게이트 지연이 있을 수 있다), 단지 긴 수의 한쪽 끝에서 다른 쪽 끝으로 신호를 물리적으로 전송하는 것만이 문제가 되기 시작한다. 이러한 크기에서는 운반 전파에 전혀 시간을 소비하지 않기 때문에 운반 보조 장치가 더 바람직하다.
캐리어 룩어헤드 방식
캐리 룩어헤드 로직은 캐리어를 생성하고 전파하는 개념을 사용한다. 캐리어룩 애드더의 맥락에서, 바이너리 덧셈의 맥락에서 생성과 전파를 생각하는 것이 가장 자연스럽지만, 개념은 이것보다 더 일반적으로 사용될 수 있다. 아래 설명에서 숫자라는 단어는 2의 2진수 덧셈을 참조할 때 비트로 대체될 수 있다.
두 개의 1자리 입력 추가 A 그리고 B 투입변수(합계수 이동에 유의미한 숫자가 더 적은지 여부에 관계 없이) 추가가 항상 수행되는지 여부를 발생시킨다고 한다. 예를 들어, 소수점 덧셈 52 + 67에서, 한 자리 숫자가 포함되는지 여부에 관계없이 결과가 수백 자리까지 전달되기 때문에, 10 자리 5와 6의 덧셈이 생성된다. 예를 들어, 한 자리 숫자는 포함하지 않는다(2 + 7 = 9). 예를 들어, 54와 69의 숫자라고 해도, 4와 9가 캐리어를 만들었음에도 불구하고 다시 한번 결과가 수백 자리까지 이어지기 때문에, 10자리 5와 6의 추가는 여전히 생성될 것이다.
덧셈의 경우,A + B {\A+은(는) 다음 두 가지 모두에 해당하는 경우에만 생성된다 A 그리고 B 1. A+ 이(가) 생성되는 에만 참인 이진 술어를 나타내기 위해 G(를 쓰면
여기서 은(는) 논리적 결합(즉, a 및)이다.
두 개의 1자리 입력 추가 A 그리고 B 입력 캐리가 있을 때마다 추가가 전달될 경우(주로, 합계에서 다음 숫자가 덜 중요한 경우) 전파된다고 한다. 예를 들어, 소수점 덧셈 37 + 62에서, 10자리 3과 6의 덧셈은 그 결과가 수백자리까지 전달되기 때문에 전파된다(이 예에서는 그렇지 않다). 전파 및 생성은 한 자릿수의 추가에 대해 정의되며, 합계의 다른 숫자에 의존하지 않는다는 점에 유의하십시오.
덧셈의 경우 A + A이(가) 다음 중 하나 이상일 경우에만 전파된다. A 또는 B 1. ( , B) 이(가) + B 이(가) 전파되는 경우에만 참인 이진 술어를 나타내기 위해 작성된 경우
여기서 방정식의 오른쪽에 A+ 은(는) 논리적 분리(즉, a 또는)이다.
때로는 조금 다른 전파의 정의가 사용된다. 이 정의에 의해 A + B 입력 운반이 있을 때마다 추가가 운반될 경우 전파되지만 입력 운반이 없을 경우 운반되지 않는다고 한다. 비트를 생성하고 전파하는 방법 때문에, 어떤 정의를 사용하는지는 중요하지 않다. 이항 추가의 경우, 이 정의는 다음과 같이 표현된다.
서 A 은(즉, xor) 전용이다.
| 캐리 종류 | ||||
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 없음 |
| 0 | 0 | 1 | 0 | 없음 |
| 0 | 1 | 0 | 0 | 없음 |
| 0 | 1 | 1 | 1 | 전파하다 |
| 1 | 0 | 0 | 0 | 없음 |
| 1 | 0 | 1 | 1 | 전파하다 |
| 1 | 1 | 0 | 1 | 생성하다 |
| 1 | 1 | 1 | 1 | 생성/제안 |
운반이 전파되거나 생성되는 시기를 보여주는 표.
이진 산술의 경우 또는 xor보다 빠르고 구현하는 데 더 적은 트랜지스터가 필요하다. 단, 다중 레벨 휴대형 머리 받침대의 경우, ( 를 사용하는 것이 더 간단하다
생성과 전파에 대한 이러한 개념을 고려할 때, 추가가 생성되거나 다음으로 덜 중요한 비트가 전달되고 추가가 전파될 때 자릿수는 정확하게 전달된다. i 와 함께 부울 대수로 작성됨 i, 및 및 이(가) 전파되어 자릿수 비트를 생성함 i 각각,
이행내역
2진수 순서로 추가될 각 비트에 대해 반송파 논리는 해당 비트 쌍이 반송파를 생성할지 또는 반송파를 발생시킬지를 결정한다. 이를 통해 회로는 추가되는 두 숫자를 "사전 처리"하여 사전에 운반 여부를 결정할 수 있다. 그런 다음 실제 추가가 수행될 때, 리플-캐리 효과(또는 첫 번째 전체 부속물에서 마지막 전체 부속물까지 운반에 걸리는 시간)를 기다리는 데 지체하지 않는다. 아래는 위에서 사용한 4비트 리플 캐리어 애더더와 약간의 조정으로 결합한 단순한 4비트 일반 캐리어헤드 회로다.
제공된 예제의 경우, 생성( 및 전파( 값에 대한 논리가 아래에 제시되어 있다. 숫자 값은 오른쪽 끝의 0에서 왼쪽 끝의 3까지 위의 회로에서 나오는 신호를 결정한다.
}를 2 에 대체하면 다음과 같은 확장 방정식이 나온다.
비트 쌍이 캐리어를 생성할지 여부를 결정하려면 다음 논리가 작동한다.
비트 쌍이 캐리어를 전파할지 여부를 확인하려면 다음 논리 문장 중 하나가 작동한다.
이것이 작용하는 이유는 1= + 의 평가에 근거한다 ( B와 (+ B 사이의 유일한 진리표 차이는 A과 B이(가) 모두 1일 때뿐입니다. However, if both and are 1, then the term is 1 (since its equation is ), and the term becomes irrelevant. XOR는 일반적으로 기본 완전 추가 회로 내에서 사용된다. OR은 트랜지스터 카운트 측면에서 훨씬 간단한 대안 옵션이다.
또한 캐리어 룩어헤드 4비트 추가기는 각 CLA 논리 회로가 더 높은 레벨의 CLA 논리 회로에 전파 및 신호를 생성하도록 하여 더 높은 레벨 회로에서도 사용할 수 있다. 4비트 CLA에 대해 전파되는 그룹( G 과 그룹 생성( G )은 다음과 같다.
그런 다음, 특정 4비트 그룹에 대한 실행 파일을 만드는 데 사용할 수 있다.
이는 이전 방정식에서 에 해당한다고 볼 수 있다.
4비트 CLA 4개를 함께 넣으면 4개의 그룹이 전파되고 4개의 그룹이 생성된다. LCU(Lookahead-carry Unit)는 이 8개의 값을 취하며 동일한 논리를 사용하여 CLA에서 를 계산한다. 그런 다음 LCU는 C {\과 동일한 5번째 CLA 각각에 대해 이송 입력을 생성한다
16비트 애더(CLA 4개, LCU 1개 사용)의 게이트 지연 계산은 리플 캐리어 애더보다 직진하지 않다.
0시 시작:
- 와 의 계산은 1시에 수행한다.
- 의 계산은 3시에 수행한다.
- 의 계산은 2시에 수행한다.
- 의 계산은 3시에 수행한다.
- LCU에서 CLA 입력의 계산은 다음과 같다.
- 첫 번째 CLA의 시간 0,
- 두 번째, 세 번째, 네 번째의 CLA를 위한 시간 5를,
- 의 계산은 다음에서 수행한다.
- 첫 번째 CLA를 위한 4시간,
- 두 번째, 세 번째, 네 번째 CLA에 대한 시간 8,
- 최종 운반 비트의 계산( 은 5시에 수행한다.
최대 시간은 8 게이트 지연이다([ 8-
표준 16비트 리플 캐리 애더는 16 x 3 - 1 = 47 게이트 지연이 필요하다.
맨체스터 항공 체인
맨체스터 캐리 체인은 트랜지스터 수를 낮추기 위해 공유 논리를 사용하는 캐리룩헤드 애더더의[5] 변형이다. 위의 구현 섹션에서 볼 수 있듯이, 각 캐리어를 생성하는 논리에는 이전 캐리어를 생성하는 데 사용된 모든 논리가 포함되어 있다. 맨체스터 캐리 체인은 가장 중요한 캐리 값을 계산하는 게이트의 노드를 두드려 중간 캐리어를 생성한다. 그러나 모든 논리 계열이 이러한 내부 노드를 가지고 있는 것은 아니며, CMOS가 대표적인 예다. 동적 논리는 송신 게이트 논리처럼 공유 논리를 지원할 수 있다. 맨체스터 캐리어 체인의 주요 단점 중 하나는 트랜지스터의 저항과 함께 이러한 모든 출력의 용량성 부하가 일반 캐리어 룩어헤드보다 훨씬 빠르게 전파 지연을 일으킨다는 것이다. 맨체스터 캐리 체인 부분은 일반적으로 4비트를 넘지 않는다.
참고 항목
참조
- ^ "Analytical Engine – History of Charles Babbage Analytical Engine". history-computer.com. Retrieved 2021-06-19.
- ^ Babbage, Charles (1864). Passages from the Life of a Philosopher. London: Longman, Green, Longmand Roberts & Green. pp. 59–63, 114–116.
- ^ Rojas, Raul (2014-06-07). "The Z1: Architecture and Algorithms of Konrad Zuse's First Computer". arXiv:1406.1886 [cs.AR].
- ^ Rosenberger, Gerald B. (1960-12-27). "Simultaneous Carry Adder". U.S. Patent 2,966,305.
- ^ "Manchester carry-chain adder - WikiChip". en.wikichip.org. Retrieved 2017-04-24.
추가 읽기
- 산술 모듈의 하드웨어 알고리즘, ARITS 연구 그룹, 아오키 연구실, 도호쿠 대학
- Katz, Randy (1994). Contemporary Logic Design. Microelectronics Journal. 26. The Benjamin/Cummings Publishing Company. pp. 249–256. doi:10.1016/0026-2692(95)90052-7. ISBN 0-8053-2703-7.
- Savard, John J. G. (2018) [2006]. "Advanced Arithmetic Techniques". quadibloc. Archived from the original on 2018-07-03. Retrieved 2018-07-16.