이하, 본 발명의 바람직한 실시예로서 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 곱셈 알고리즘이고, 도 2는 본 발명의 바람직한 실시예에 따른 나눗셈 알고리즘으로서, 각각의 알고리즘을 실행할 수 있는 각각의 곱셈기 및 나눗셈기를 설계하여 그 구조를 분석한 결과 하드웨어의 공유가 가능하다는 사실을 인지하였으며, 본 발명은 이 결과를 종합한 것으로서 한 개의 동일한 하드웨어를 이용하여 GF(2m)상의 곱셈 및 나눗셈 모두를 수행할 수 있는 기능을 가진 산술연산기를 설계한 것이다.
도 3은 본 발명은 바람직한 실시예에 따른 곱셈 및 나눗셈을 동시에 수행하는 연산기의 블록도로 컨트롤 로직부(1), RS-블록부(2), SR-블록부(3), UV-블록부(4)로 구성되어 있으며 상기 컨트롤 로직부(1), RS-블록부(2), SR-블록부(3), UV-블록부(4)는 하기 도 4 내지 도 7에서 상세히 설명한다. 본 발명은 알고리즘의 R과 S의 값을 계산하고 출력값 r
0 값을 컨트롤 로직(1)에 전송하기 위하여 다수개의 레지스터인 State (s
1),(s
2)....(s
m), 다수개의 MUX 논리회로 (M
0),(M
1)....(M
m-1), 다수개의 XOR- Gate (E
0),(E
1),(E
m-1) 및 AND Gate 회로 (A
0),(A1),(A
m-1)의 출력이 레지스터 (r
o),(r
1)...(r
m-1)로 출력되는 알에스-블록(2)과, 상기 알에스-블록 (2)의 출력을 상태신호 (State) 값에 따라 양방향 레지스터 값이 오른쪽 및 왼쪽으로 이동시키기 위하여 MUX논리 회로 (MU
0),(MU
1),...(MU
m-1)에 입력값 상태신호 (state신호) , 카운터 플래그신호 ( c-flag신호)가 입력되어 출력값을 생성하고 이렇게 생성된 출력값인 출력신호(cnt
1),(cnt
2),...(cnt
m)가 상기 MUX논리회로 (MU
0),(MU
1),...(MU
m-1)의 입력값으로 인가되며, 상기 MUX논리회로(MU
0),(MU
1),...(MU
m-1)의 출력값이 레지스터(b
n-1/sr
0),(b
n-2/sr
1),...(b
0/sr
m-1)를 통하여 다음의 출력신호(cnt
1),(cnt
2),...(cnt
m)로서 MUX논리회로(MU
0),(MU
1),...(MU
m-1)의 입력값으로 입력되는 에스알-블록(3)과, 알고리즘의 U와 V값을 계산하고 u
i 및 v
i 값을 컨트롤 로직(1)으로 전송하기 위하여 다수개의 MUX논리회로 (MU
0),(MU
1),... (M
Um-1) 및 다수개의 레지스터 (a
0/v
0),(a
m-2/v
1),(a
1/v
m-1)로 구성되어 제1, 제 2AND Gate 및 제1, 제 2 XOR Gate로 구성되는 논리부 (B
1),...(B
m-2),(B
m-1)를 통하여 레지스터 (P
m-1/u
0),(P
m-2/u
1),...(P
0/u
m-1)로 a
0/u
0 값, P
m-1/v
0값을 출력하는 유브이-블록(4)과, 나눗셈을 수행하도록 상기 알에스-블록 (2), 에스알-블록(3), 유브이-블록(4)에 필요한 제어신호를 생성하도록 다수개의 ANDGate, ORGate, XOR Gater가 레지스터 (S10),(F10)와 연결된 컨트롤 로직(1)으로 구성된 나눗셈기와; 상기 나눗셈기에서 나눗셈 또는 곱셈을 연산하기 위하여 상기 에스알-블록 (3)내 제어신호 (mult/div) 및 상태신호 (satae)에 의하여 멀티플렉서 (Mu
0)를 제어하도록 전단에 구성되는 멀티플렉서 (Mu)와; 상기 나눗셈기에서 나눗셈 또는 곱셈을 연산하기 위하여 상기 유브이-블록 (4)내 콘트롤 신호 (Ctrl1),(Ctrl2),(Ctrl3), 제어신호 (mult/div) 및 플래그신호 (b1/z-flag)에 의하여 후단회로를 제어하는 멀티플렉서 (MUX1),(MUX2),(MUX3)로 구성된ek. 본 발명은 상술한 바와같이 나눗셈기와 그 나눗셈기에 연결된 다수개의 멀티플렉서로 구성되어 나눗셈 또는 곱셈을 과정을 선택하는 것으로 이 다수개의 멀티플렉서는 여러가지 제어신호에 의하여 구동된다. 그리고 곱셈기능의 선택시에도 나눗셈기의 내부 회로을 그대로 사용하여 곱셈기능을 수행하는 것으로 먼저, 나눗셈기를 기본으로 하여 설명한다. 도 4은 상기 도 3의 컨트롤 로직(1)의 내부 회로도로 입력값 (R
0)와, 입력값 state (S10)가 인버터(Inverter)를 통해 상기 입력값 (R
0)와 같이 AND Gate (A12)의 출력값1을 출력하고, 입력값 state (S10)와, 입력값 (z-flag)가 인버터(Inverter)를 통해 상기 입력값 state (S10) 와 같이 AND Gate (A11)의 출력값2를 출력하여 상기 출력값1과 함께 OR Gate (OR10)에 입력되어 출력값 state (S10)를 만드는 회로와; 입력값 (z-flag)값과, state 값이 AND Gate (A13)를 통해 c-flag (F10)의 출력값을 만드는 회로와; 입력값 (R
0), (V
0)가 AND Gate (A14)를 통해 출력값을 만들고 입력값 (U
0)와 함께 XOR Gate (EO10)의 입력값이 되어 출력 (Ctrl2)를 만드는 회로와; 입력값 (R
0)와, 입력값 state가 인버터 회로를 통해 상기 입력값 (R
0)와 함께 AND Gate (A15)회로를 통해 출력값 (Ctrl3)를 만드는 회로로 구성되어 있는 컨트롤 로직 회로이다. 상기 컨트롤 로직 회로는 알에스-블록(2), 에스알-블록(3), 유에스-블록(4)에 필요한 제어신호를 생성하는 작용을 한다. 도 5는 상기 도 2의 알에스-블록(2)의 회로도로 상기 도 4에 도시된 컨트롤 로직(1) 회로에서 출력값 Ctrl1, Crrl3는 알에스-블록(2) 회로도의 입력값으로 들어가 출력값 (r
0)를 출력한다. 상기 알에스-블록(2)의 세부 회로를 살펴보면 입력값 (r
1)은 XOR Gate (E
0)의 입력값과, MUX 논리회로 (M
0)의 입력값으로 되고 상기 MUX는 입력값 (r
1), 콘트롤 로직회로 (1)의 Ctrl3, State (S
1)가 입력값이 되어 출력값을 생성하고, 이 출력값은 다시 State (S
1) 입력값이 되어 AND Gate 회로 (A
0)의 입력값으로 들어간다. 그리고 상기 AND Gate 회로 (A
0)는 State (S
1)의 출력값이 다시 입력값이 되어 Ctrl1의 입력값과 함께 AND Gate(A
0)에 들어가 출력값을 생성한다. 이렇게 생성된 출력값은 상기 레지스터 (r
1)의 입력값과 함께 XOR- Gate (E
0)의 입력값이 되어 레지스터 (r
0)의
출력값을 생성한다. 상기 r과 s는 1-bit 레지스터를 나타내고 있으며 상기 MUX 논리회로 (M
0)는 2-input 멀티플렉서(multiplexer)를 나타내고 있다. 또한 레지스터를 나타내는 State (S
2),(S
m-2),....(S
m)은 멀티플렉서인 MUX논리회로 (M1),...(Mm-2),(Mm-2)와 연결되고, AND Gate (A
0),(A
1),...(A
m-1),(A
m-2), XOR-Gate(E
1),...(E
m-1),(E
m)를 통하여 각각의 레지스터 (r
1),...(r
m-2),(rm-1)와 연결되어 상기 레지스터 (r
0)와 동일하게 각각의 레지스터 (r
1),...(r
m-2),(rm-1)에서 출력되게 구성한 것이다. 상기 알에스-블록(2)은 도 1 및 도 2에 도시된 종래의 알고리즘에서 R 및 S 값을 계산하는 기능을 가지고 또한 R
0 값을 컨트롤 로직부(1)로 전송하는 작용을 한다. 도6은 상기 도3의 에스알-블록(3)의 회로도로 MUX논리 회로 (MU
0),(MU
1),...(MU
m-1)에 입력값 상태산호 (state신호) , 카운터 플래그신호 (c-flag신호)가 입력되어 출력값을 생성하고 이렇게 생성된 출력값인 출력신호(cnt
1),(cnt
2),...(cnt
m)가 상기 MUX논리회로 (MU
0),(MU
1),...(MU
m-1)의 입력값으로 인가되며, 상기 MUX논리회로(MU
0),(MU
1),...(MU
m-1)의 출력값이 레지스터(b
n-1/sr
0),(b
n-2/sr
1),...(b
0/sr
m-1)이 다음의 출력신호(cnt
1),(cnt
2),...(cnt
m)로서 MUX논리회로(MU
0),(MU
1),...(MU
m-1)의 입력값으로 입력된다. 상기와 같은 회로동작을 반복하는 에스알-블록(3) 회로인 것이다. 그리고 b
i/sr
i는 1-bit 레지스터를 나타내고 있으며 MUX는 2-input 멀티플렉서 (multiplexer)를 나타내고 있으며, 여기서 나눗셈 연산을 수행하기 위해서 레지스터인 state 값에 따라 레지스터의 값이 왼쪽 또는 오른쪽 방향으로 이동한다. 도 7은 상기 도 3의 유브이-블록(4)의 회로도로 두 개의 AND Gate 회로에 입력되는 입력값은 g
1에 의한 값과 입력값 Ctrl2가 입력되어 제 1 AND Gate의 출력값이 되고, v
1에 의한 값과 입력값 Ctrl1가 입력되어 제 2 AND Gate의 출력된 값이 된다. 그리고, 두 개의 XOR Gate 중에서 제 1 XOR Gate는 상기 제 1 AND Gate의 출력값이 입력값이 되고 제 2 XOR Gate는 입력값 u
1과, 상기 제 2 AND Gate의 출력값이 입력값이 되어 출력하고 이렇게 출력된 출력값은 상기 제 1 AND Gate의 출력값과 같이 제 1 XOR Gate의 입력값이 되어 u
0의 출력값을 출력하게 논리부 (B
0)가 구성되어 있다. 나머지 논리부 (B
1),...(B
m-2),(B
m-1)도 동일하게 제1, 제 2AND Gate 및 제1, 제 2 XOR Gate로 구성되어 있다. 상기 출력신호u
0는 다시 MUX논리회로 (MU
0),(MU
1),... (M
Um-1)의 입력값이 되고 MUX논리회로 (MU
0),(MU
1),... (M
Um-1)의 입력값은 입력값 Ctrl3, 0이 MUX에 들어가 출력된 값과, 상기 P
m-1/u
0 값, a
0/v
0가 입력되어 출력값을 생성한다. 상기 P
i/u
i 및 a
i/v
i는 1-bit 레지스터를 나타내고 있으며 MUX는 2-input 멀티플렉서(multiplexer)를 나타낸다. 상기 유브이블록(4)은 기본적으로 도 1및 도 2에 도시된 알고리즘에서 U 및 V 값을 계산하는 기능을 가진다. 또한 P
i/u
i 값 및 a
i/v
i 값을 상기 도 3의 컨트롤 로직(1)으로 전송해주는 작용을 한다. 이와같이 구성된 본 발명에서
A(
x)와
B(
x)는 GF(2
m )상의 두 원소이고,
G(
x)는 GF(2
m )을 정의하는, 즉 GF(2
m )은 대략GF(2)[
x]/
G(
x), 차수
m의 기약 다항식이고,
P(
x)는
A(
x)/
B(
x) mod
G(
x)의 결과라고 하면, 각각의 다항식은 다음과 같이 표현되며 계수들은 이진수 0 혹은 1이다.
A(
x) =
am -1 xm -1 +
am -2 xm -2 + … +
a 1 x +
a 0 (1)
B(
x) =
bm -1 xm -1 +
bm -2 xm -2 + … +
b 1 x +
b 0 (2)
G(
x) =
xm +
gm -1 xm -1 + … +
g 1 x +
g 0 (3)
P(
x) =
pm -1 xm -1 +
pm -2 xm -2 + … +
p 1 x +
p 0 (4)도 2의 알고니즘을 분석해보면, 알고리즘의 마지막 반복을 시작할 때
count와
state는 항상 1이 된다는 사실을 알 수 있다. 따라서
V값에는 아무런 영향을 미치지 못하기 때문에 실제로 2
m-1의 반복 후 우리는 정확한 나눗셈결과
V를 얻을 수 있다. 표 1에 [알고리즘 2]를 수행하는 한 예를 보인다. 표 1 나타나듯이 7(2
m-1)번 반복 후
V는 정확한 나눗셈 결과인
x + 1을 가진다. 이를 기반으로한 GF(2
4)상의 나눗셈의 계산예를 살펴보면 다음의 테이블과 같다. 테이블표 (G(x)=X
4+x+1, A(x)=X
3+x
2+x, B(x)=X
3+x+1)
i | state | count | R | S | U | V |
Init | 0 | 0 | x3+x+1 | x4+x+1 | x3+x2+x | 0 |
1 | 1 | 1 | X3+x2 | X3+x+1 | x2+x+1 | X3+x2+x |
2 | 0 | 0 | x2+x | X3+x+1 | X3+x | X3+x2+x |
3 | 0 | 1 | x+1 | X3+x+1 | x2+1 | X3+x2+x |
4 | 1 | 2 | x2 | x+1 | x3+x2 | x2+1 |
5 | 1 | 1 | x | x+1 | x2+x | x2+1 |
6 | 0 | 0 | 1 | x+1 | x+1 | x2+1 |
7 | 1 | 1 | 1 | 1 | x+1 | x+1 |
8 | 0 | 0 | 0 | 1 | 0 | x+1 |
이와같이 도 3의 나눗셈기는 컨트롤 블록 (1), 알에스-블록 (2), 에스알-블록 (3) 그리고 유브이-블록 (4)으로 구성되어있다. 각각에 해당하는 상기 블록들에서 레지스터인 State의 출력은
s 0 항상 1이고, 레지스터의 값인
rm 은 항상 0 이기 때문에 도 4에서 이 계수들을 위한 연산 회로가 필요없게 된다.도 5에 나타나듯이 도 2의 알고리즘의
count 값을 위해서 log
2(
m+1)-비트 카운터 대신
m-비트 양방향 쉬프트 레지스터를 사용하였다. 이렇게 함으로서 약간의 하드웨어 비용은 증가하나 높은 클락 주파수를 얻을 수 있다. 컨트롤 로직 (1)은 현재의 반복을 위해 각각의 콘트롤 신호 Ctrl1, Ctrl2, Ctrl3 그리고
c-flag의 신호를 생성하고 다음 반복을 위해
state 및
c-flag값을 갱신한다. 1-비트
c-flag 레지스터는 에스알-블록 (2)과 함께 동작하며 나눗셈을 시작할 때 1로서 초기화된다. 도 4의 알에스-블록은 도 2의 알고리즘의
R 과
S에 관한 연산을 수행하고 컨트롤 로직 (1)에
r 0신호를 출력한다. 도 5에 나타나듯이 양방향 쉬프트 레지스터는
state에 따라 왼쪽 혹은 오른쪽으로 쉬프트 되며,
cntm 이 1일 때
count 값은
m이 된다. 또한
count가 0으로 감소하게되면,
z-flag는 1이 되고 모든
cntm 은 0이 되고,
c-flag는 1이 되고
state는 0이 된다. 결국 이것은 나눗셈의 첫 번째 연산 조건과 동일하게 된다. 예를 들어 도 2의 알고니즘으로 부터 나눗셈 연산을 7번 반복후 도 7의 P/U 레지스터는 정확한 나눗셈의 결과를 가지게 되며 아래의 각 단계별 회로의 동작에 의하여 충분히 이해될것이다. 표 1 GF(2
4)상의 나눗셈 연산 예제 (나눗셈의 경우
mult/div 신호는 1로 설정된다.)
루프(i) | Control도4 | RS-block도5 | SR-block도6 | UV-block도7 |
state | c-flag | R 레지스터 | S 레지스터 | SR 레지스터 | cnt (c) | U 레지스터 | V 레지스터 |
r 0 | r 1 | r 2 | r 3 | s 1 | s 2 | s 3 | s 4 | sr 0 | sr 1 | sr 2 | sr 3 | c 1 | c 2 | c 3 | c 4 | u 0 | u 1 | u 2 | u 3 | v 0 | v 1 | v 2 | v 3 |
초기값 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
2 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 |
3 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
4 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 |
5 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
6 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
7 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
여기서, 1) 나눗셈의 경우, 그림 6의
B/SR 레지스터는
SR로, 그림 6의
P/U 레지스터는
U로,
A/V레지스터는
V로 각각 표기하였다. 2) S
레지스터의 s
0 비트는 항상 1이기 때문에 생략 되었다. 따라서 인덱스가 1부터 시작된다. 표 1에 기술된 바와 같이 7번의 반복 후 U레지스터는 정확한 나눗셈 결과
x + 1을 가지는 것을 확인할 수 있다. 상기와 같이 나눗셈기가 작동되며, 곱셈기도 상기와 같은 하드웨어를 그대로 이용하고 있으며, 이때 곱셈 및 나눗셈의 선택은 하기의 회로에 의하여 결정된다. 즉 본 발명은 상기와 같이 구성된 나눗셈기와, 상기 나눗셈기에서 나눗셈 또는 곱셈을 연산하기 위하여 도 6의 에스알-블록 (3)내 제어신호 (mult/div) 및 상태신호 (satae)에 의하여 멀티플렉서 (Mu
0)를 제어하도록 전단에 구성되는 멀티플렉서 (Mu)와, 상기 나눗셈기에서 나눗셈 또는 곱셈을 연산하기 위하여 도 7의 유브이-블록 (4)내 콘트롤 신호 (Ctrl1),(Ctrl2),(Ctrl3), 제어신호 (mult/div) 및 플래그신호 (b1/z-flag)에 의하여 후단회로를 제어하는 멀티플렉서 (MUX1),(MUX2),(MUX3)로 구성된 것을 특징으로 한다. 즉, 도 1의 곱셈 알고니즘을 수행하기 위하여 곱셈을 위한 입력 다항식은 나눗셈과 동일한 입력 값을 사용한다고 가정하면, 정확한 곱셈 결과
P(
x) =
x 3이다. 도 1의 곱셈 알고리즘으로부터, 4번 반복 후 우리는 곱셈결과를 얻을 수 있다. 곱셈을 수행할 경우 제어신호 (
mult/div 신호), RS블록의
R 및
S 레지스터, 컨트롤로직의 상태신호 (
state)는 각각 0으로 초기화 된다. 따라서 SR-block의 양방향 쉬프트 레지스터들은 항상 왼쪽으로 쉬프트 된다. 또한 제어신호 (
mult/div 신호)가 0이기 때문에 UV-block에서는 항상
pm -1/
u 0 와
zi /
z-flag(SR-block 으로부터 신호가 전달됨) 신호가 선택된다. 따라서 우리는 위의 곱셈 알고리즘을 SR-block과 UV-block을 사용하여 구현 할 수 있다. 아래의 표 2는 GF(2
4)상의 곱셈 연산을 수행하는 과정을 기술하였다. 표 2 GF(2
4)상의 곱셈 연산 예제
루프(i) | Control도4 | SR-block도6 | UV-block도7 |
state | B 레지스터 | P 레지스터 | A 레지스터 |
b 0 | b 1 | b 2 | b 3 | p 0 | p 1 | p 2 | p 3 | a 0 | a 1 | a 2 | a 3 |
초기값 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
2 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
3 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
여기서 곱셈의 경우그림 6의
B/SR 레지스터는
B 로, 그림 7의
P/U 레지스터는
P 로,
A/V레지스터는
A로 각각 표기하였다. 이와같이 곱셈 또는 나눗셈의 연산시 여러가지 상태신호 및 제어신호에 의하여 레지스트의 시프트를 선택하여 연산시킬수가 있는 것으로 원하는 연산을 수행하게된다. 이때 사용되는 여러 신호들을 살펴보면, 도 6의 카운터 플래그( c-flag; count-flag)는 나눗셈 알고리즘시 카운터 (count)를 행하기 때문에 반드시 구현되어 있어 (도 2참조), 카운터 (count )의 값은 cont
i와 같다 (1≤ i ≤ m). 그리고 도 6에서 나눗셈을 수행할시 제어신호 (mult/div 신호)는 "1"로 설정되기 때문에 상태신호 (state)의 값에 따라 MUX(MUX의 선택신호가 0이면 0의 신호를 선택하고 1이면 1의 신호를 선택하는 회로)는 "0" 혹은 "1" 신호가 선택된다. 즉 상태신호 (state)의 값에 따라 나눗셈기에서는 왼쪽 혹은 오른쪽으로 쉬프트되므로 나눗셈 회로의 원래의 SR-block과 동일한 기능을 수행한다. 이에 반하여 곱셈의 연산의 경우는 제어신호 (mult/div) 신호가 항상 "0"이고 상태신호 (state) 역시 항상 "0"의 상태가 된다. 따라서 멀티플렉서 (Mu)는 항상 "1" 의 신호를 출력하기 때문에 B/SR 레지스터 (b
n-1/sr
0),(b
n-2/sr
1),...(b
0/sr
m-1)는 항상 왼쪽으로만 쉬프트 되기 때문에 곱셈 회로의 상기 표2에 나타낸 B레지스터와 동일한 기능을 수행한다. 또한 도 7에서 나눗셈 연산을 수행시 제어신호 (mult/div)가 "1"이기 때문에 나눗셈 회로의 원래의 UV-block (4)과 동일한 기능을 수행하며, 곱셈 연산을 수행시 제어신호 (mult/div 신호)는 "0"이기 때문에 멀티플렉서 (MUX1),(MUX2)는 두개의 입력 신호중 "0"의 신호를 항상 선택하게 되므로 멀티플렉서 (MUX1)는 항상 신호 (pm-1/u0 신호)를 출력하고, 아래쪽 멀티플렉서 (MUX2)는 항상 신호 (bi/z-flag 신호)를 출력하게 된다. 여기서 bi/z-flag 신호는 SR-block으로부터 입력되고, Ctrl3 신호와 mult/div 신호를 입력으로 받는 멀티플렉서 (MUX3)는 제어신호 (mult/div 신호)가 항상 "0"이기 때문에 "0"을 출력하므로 도 7의 멀티플렉서 (MM
0),(MM
1)...(MM
m-1)는 상기 표와같이 항상 P/U레지스터의 값을 출력하기 때문에 곱셈 연산 기능을 수행한다.
이상 설명한 바와 같이 표 3은 본 발명과 종래의 곱셈 및 나눗셈 장치를 비교 한 것이다.