Building 32bit ALU by cascading 74181 4bit ALU blocks

예고했던대로 ALU 설계에 대한 고난과 좌절의 시간들을 회고해 보고자 한다.


이게 바로 74181 4bit ALU 이다.

먼저 각 핀에 대한 구조 분석부터.

A[3..0], B[3..0] : 각 4bit 로 입력 라인이다.
F[3..0] : 역시 4bit 로서 S[3..0] 에 의해 지정된 A 와 B 의 연산 결과를 출력으로 가진다.
CN : cascading 을 위해 하위 블럭으로부터 carry 를 받는 입력 노드
CN4 : carry out 노드이다. 물론 CN + A[3..0] + B[3..0] 의 carry.
M : mode bit 이다. 0 일경우 Arithmatic, 1 일 경우 Logic 이다. 그래서 바로 ALU
S[3..0] : 중요하다고 할 수 있겠는데 일종의 함수라고 생각할 수 있겠다. S[3..0] = 1001 일때 F[3..0] <- A[3..0] + B[3..0]

GN : carry generator. 이 블럭(4bit) 에서 캐리를 생성하는지를 파악.
PN : carry propagator. 이 블럭(4bit) 에서 캐리를 전달하는지를 파악.
%% GN, PN 의 값에는 CN 이 영향을 미치지 않는다. 다시 말해서, GN, PN 의 값은 A[3..0], B[3..0] 의 함수이다.

------
가장 간단하게 생각할 수 있는 32bit ALU 를 만드는 방법은, 74181 을 serial 로 8개 연결하는 것이다. 가령 이런 식.
물론 하위 블럭에서의 carry 값이 전달되어야 함으로, CN4 를 CN 에 연결하는 것은 너무 당연한 아이디어 이다. 하지만 이 방식의 문제라면 역시 느리다는 것이다. 74181의 딜레이를 가령 10ns(나노초) 라고 할 때, 8번째 블럭의 F값이 안정되기 위해서는 70ns 의 딜레이가 필요하다. 물론 이건 최악의 경우이지만, 컴퓨터가 특정 값을 더할 때는 완전한 결과를 보장하지 않는 다는 점은 너무 비극적인 일이 될 것이다. 그래서 70ns 를 딜레이로 잡았을 경우 32bit ALU 의 최고 클럭을 계산 할 수 있다.

1ns = 1/1000us = 1/1000000ms = 1/1000000000s 이므로 ... 하하하 1GHz 이다.
10ns 일때는 당연히 100MHz. 70ns 라면 ... 계산 할 수 있을거라고 믿는다. -_- 아무튼 느리다.

그래서 필요한게 바로 GN, PN 이게 핵심이다.

첫번째 74181 블럭에서의 입력인 A[3..0], B[3..0] 에서 캐리가 생성될때 GN 이, 캐리가 전달될 수 있을때 PN 이 활성되므로, 첫번째 블럭에서의 CN4 는 이렇게 계산 할 수 있을 것이다.

CN4 = CN * PN + GN (* AND, + OR)

마찬가지로 두번째 블럭에서의 CN4 는 이렇게

CN4 = (CN1 * PN1 + GN1) * PN2 + GN2
       = GN2 + GN1 * PN2 + CN1 * PN1 * PN2

이게 중요한 이유는 GN PN 은 A 와 B 만의 함수이기 때문에 각 74181 블럭에서는 일정 시간이 흐른 후 각각 독립적으로 PN GN 의 값의 나오게 되고, 이미 존재하는 입력인 Carry In 과 각 74181 블럭들의 GN PN 값을 계산하면 각 74181 에 공급할 수 있는 CN 값을 생산할 수 있기 때문이다.

74181 에서 GN, PN 을 계산하는 데 필요한 지연이 7ns, GN PN 을 가지고 각각의 CN 을 계산하는데 5ns 가 필요하다고 한다면 12ns 후에는 모든 74181 블럭이 CN 값을 가지게 될 것이다. 그리고 각각 이 값을 가지고 계산을 한다면 최상위 블럭에서의 지연은 12ns + 10ns = 22ns 로서 최초의 아이디어인 70ns 보다 두배 이상 빨라진 것을 볼 수 있다.

이런식의 연결..

-----
이것으로 이번회를 마치고,
다음회에서는 74182 의 역활과 negative logic 임이 연산에 미치는 영향 등을 다루도록 노력해 보겠다.

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 나젤큐스 | 2007/04/28 14:59 | 시간과 관련 없는 생각 | 트랙백(4) | 덧글(0)

트랙백 주소 : http://nijelprim.egloos.com/tb/1140237
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from 니젤프림과 나젤큐스 at 2007/04/30 12:33

제목 : Building 32bit ALU by cascad..
Building 32bit ALU by cascading 74181 4bit ALU blocks저번에 마지막 부분에서 각 74181 블럭의 GN PN 신호를 이용해서 fast carry look ahead 연산을 할 수 있음을 보였는데, 아무래도 4번째 블럭에 가면 and or 게이트 연결의 압박이 느껴질 것이다. 이미 캐리 연산을 하는 블럭은 정의되어 있는데 그게 바로 74182 칩이다.GN[3..0], PN[3..0] 입력라인. 각 블럭에서......more

Tracked from Vicodin with.. at 2008/11/17 18:05

제목 : Vicodin.
Vicodin with no membership fees....more

Tracked from No prescript.. at 2008/11/24 09:05

제목 : Vicodin back pain.
Vicodin without prescription. How l ong does vicodin stay in your system....more

Tracked from Can greyhoun.. at 2009/01/07 06:46

제목 : Amoxicillin without a prescr..
Amoxicillin 875mg. Amoxicillin. Expiration date for amoxicillin....more

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶