1 |
1
기설정된 시스템 버스에 접속된 중앙 처리 장치; 상기 시스템 버스에 접속되어 모듈러 곱셈 연산에 필요한 데이터를 입출력하는 메모리; 각기 2단으로 구성되어 상기 시스템 버스로부터 입력되는 승수 A, 피승수 B, 모듈러스 N을 각각 저장하는 2단 입력레지스터 A, B, N; 상기 2단 입력 레지스터 A, B, N에 각기 저장된 데이터를 각각 받아 모듈러 연산을 수행하여 그 결과값을 캐리 아웃(Carry_out)과 섬 아웃(Sum_out)으로 나누어 출력하고 연산 과정 중 발생한 시프트 데이터(shift_data) 및 몽고메리 보정 인자 m을 저장하는 연산 핵심부; 상기 시스템 버스에 접속되어 모듈러 곱셈 동작 상태를 저장했다가 외부에 알리기 위한 상태 레지스터; 상기 중앙 처리 장치의 제어신호를 상기 시스템 버스를 통해 받아 저장하는 제어 레지스터; 상기 시스템 버스에 접속되어 각 중간 결과 값들을 각기 저장하는 다수의 레지스터로 이루어져 모듈러 곱셈 수행 중의 부분 곱을 저장하며 최종 결과 값을 저장 및 출력하는 레지스터 그룹; 상기 연산 핵심부로부터 출력된 캐리 아웃, 섬 아웃, 시프트 데이터, 및 상기 레지스터 그룹의 출력을 받아 선택적으로 2번의 덧셈을 수행하는 가산기; 및 상기 시스템 버스에 접속되어 상기 제어 레지스터로부터 상기 중앙 처리 장치의 제어신호를 제공받아 모듈러 곱셈 연산의 최종 결과값을 출력할 때 까지 상기 연산 핵심부의 입출력 및 상기 가산기의 입출력을 제어하고 상기 레지스터 그룹에 새로운 값을 저장하기 위한 신호를 발생시키는 제어부를 포함하는 모듈러 곱셈 장치
|
2 |
2
제 1 항에 있어서, 상기 승수 A, 피승수 B, 모듈러스 N은 상기 시스템 버스로부터 워드 단위로 입력되는 것을 특징으로 하는 모듈러 곱셈 장치
|
3 |
3
제 1 항에 있어서, 상기 연산 핵심부는 상기 2단 입력 레지스터 A, B, N에 각기 저장된 데이터를 각각 받아 워드 단위의 모듈러 연산을 수행하는 것을 특징으로 하는 모듈러 곱셈 장치
|
4 |
4
제 1 항에 있어서, 상기 각 중간 결과 값들은 워드 단위의 중간 결과 값들인 것을 특징으로 하는 모듈러 곱셈 장치
|
5 |
5
제 1 항에 있어서, 상기 2번의 덧셈은 워드 단위로 수행되는 것을 특징으로 하는 모듈러 곱셈 장치
|
6 |
6
제 1 항에 있어서, 상기 2단 입력레지스터 A, B, N은 워드단위의 입력과 동일한 비트 크기를 가지는 2개의 레지스터로 구성되는 것을 특징으로 하는 모듈러 곱셈 장치
|
7 |
7
제 1 항에 있어서, 상기 2단 입력레지스터 A, B, N은 상기 제어부로부터 제공되는 제 1 입력 제어 신호(Input_ctrl1)에 따라 상기 시스템 버스로부터 제공되는 데이터를 저장하는 레지스터1; 클록과 상기 제어부로부터 제공되는 제 2 입력 제어 신호(Input_ctrl2)를 논리곱 연산하는 논리곱 게이트; 및 상기 레지스터1로부터 제공되는 데이터를 상기 논리곱 게이트의 출력에 따라 저장하는 레지스터2로 구성되는 것을 특징으로 하는 모듈러 곱셈 장치
|
8 |
8
제 1 항에 있어서, 상기 연산 핵심부는 상기 2단 입력 레지스터 A, B로부터 제공되는 데이터에 대해서 상기 제어부로부터 제공되는 b 계수 값, 워드 카운트 및 토탈 카운트에 따라 A의 비트와 B의 워드를 곱하는 연산 모듈; 상기 워드 레지스터와 0 에 대해서 상기 제어부로부터 제공되는 토탈 카운트에 따라 다중화기2의 입력을 결정하는 다중화기 0; 외부 입력과 캐리저장 가산기2로부터 출력되는 캐리 아웃에 대해서 b 계수 값에 따라 캐리 레지스터의 입력을 결정하는 다중화기1; 다중화기0의 출력과 캐리저장 가산기2로부터 출력되는 섬 아웃에 대해서 b 계수 값에 따라 섬 레지스터의 입력을 결정하는 다중화기2; 캐리저장 가산기1의 캐리 입력 값을 저장하는 캐리 레지스터; 캐리저장 가산기1의 섬 입력 값을 저장하는 섬 레지스터; 상기 캐리 레지스터, 상기 섬 레지스터 및 상기 A의 비트와 B 워드를 곱하는 연산 모듈의 출력을 입력으로 하여 캐리와 섬의 형태로 결과 값을 출력하는 캐리저장 가산기1; 상기 캐리저장 가산기1의 섬 출력의 최하위 비트를 워드 카운트에 따라 저장하는 m 레지스터; m 레지스터 내 b 계수 값과 일치하는 순서의 비트와 상기 2단 입력 레지스터 N에 대해서 상기 제어부로부터 제공되는 워드 카운트에 따른 N의 워드 값을 곱하는 연산 모듈; 상기 캐리저장 가산기1의 두 출력 및 상기 m의 비트와 N의 워드를 곱하는 연산 모듈의 출력을 입력으로 하여 그 결과 값으로 캐리 아웃과 섬 아웃을 출력하는 캐리저장 가산기2; 및 상기 캐리저장 가산기2의 출력인 섬 아웃의 최하위 비트를 저장하는 시프트 데이터 레지스터로 구성되는 것을 특징으로 하는 모듈러 곱셈 장치
|
9 |
9
제 1 항에 있어서, 상기 가산기는 상기 핵심 연산부의 출력인 캐리 아웃, 시프트 데이터 및 섬 아웃 및 시프트 데이터를 상기 제어부로부터 제공되는 애드 스타트에 따라 저장하는 캐리 아웃 레지스터, 시프트 데이터 레지스터 및 섬 아웃 레지스터; 캐리 아웃 레지스터의 출력과 시프트 레지스터의 출력에 대해 상기 제어부로부터 제공되는 애드 카운트 신호에 따라 W-비트 가산기의 입력을 결정하는 다중화기1; 섬 아웃 레지스터의 출력과 워드 레지스터의 출력에 대해 상기 제어부로부터 제공되는 애드 카운트 신호에 따라 W-비트 가산기의 입력을 결정하는 다중화기2; 상기 다중화기1의 출력과 상기 다중화기2의 출력을 입력받아 W-비트 덧셈을 수행하여 그 출력을 1비트 캐리와 워드 크기의 결과 값으로 두 번 출력하는 W-비트 가산기; 상기 W-비트 가산기의 첫 번째 1비트 캐리 출력인 Pre_c를 저장하는 레지스터 및 두 번째 1비트 캐리 출력인 Next_c를 저장하는 레지스터; 및 상기 Pre_c 레지스터의 출력과 Next_c 레지스터의 출력에 대해 애드 카운트에 따라 W-비트 가산기의 1비트 캐리 입력을 결정하는 다중화기3으로 구성되는 것을 특징으로 하는 모듈러 곱셈 장치
|
10 |
9
제 1 항에 있어서, 상기 가산기는 상기 핵심 연산부의 출력인 캐리 아웃, 시프트 데이터 및 섬 아웃 및 시프트 데이터를 상기 제어부로부터 제공되는 애드 스타트에 따라 저장하는 캐리 아웃 레지스터, 시프트 데이터 레지스터 및 섬 아웃 레지스터; 캐리 아웃 레지스터의 출력과 시프트 레지스터의 출력에 대해 상기 제어부로부터 제공되는 애드 카운트 신호에 따라 W-비트 가산기의 입력을 결정하는 다중화기1; 섬 아웃 레지스터의 출력과 워드 레지스터의 출력에 대해 상기 제어부로부터 제공되는 애드 카운트 신호에 따라 W-비트 가산기의 입력을 결정하는 다중화기2; 상기 다중화기1의 출력과 상기 다중화기2의 출력을 입력받아 W-비트 덧셈을 수행하여 그 출력을 1비트 캐리와 워드 크기의 결과 값으로 두 번 출력하는 W-비트 가산기; 상기 W-비트 가산기의 첫 번째 1비트 캐리 출력인 Pre_c를 저장하는 레지스터 및 두 번째 1비트 캐리 출력인 Next_c를 저장하는 레지스터; 및 상기 Pre_c 레지스터의 출력과 Next_c 레지스터의 출력에 대해 애드 카운트에 따라 W-비트 가산기의 1비트 캐리 입력을 결정하는 다중화기3으로 구성되는 것을 특징으로 하는 모듈러 곱셈 장치
|