1 |
1
(a) r개의 각 레지스터값을 저장하기 위한 배열 변수, 1개의 메모리값을 저장하기 위한 메모리 변수, 정수합의 부분값을 저장하기 위한 제1, 2, 3 변수를 워드형으로 선언하고, 상기 배열 변수와 상기 메모리 변수에 초기 레지스터값과 초기 메모리값을 각각 할당하는 단계;
(b) 캐리가 발생하지 않도록 정수합을 제1, 2, 3 부분 정수합으로 나누어 계산하여 상기 제1, 2, 3 변수에 각각 저장하는 단계;
(c) 상기 제1, 2 부분 정수합에 따라 새로운 메모리값을 계산하는 단계;
(d) 상기 배열 변수에 저장된 레지스터값을 하나씩 이동시켜 제1 출력값을 얻고, 상기 제2, 3 부분 정수합에 따라 상기 배열 변수의 새로운 레지스터값을 계산하는 단계; 및
(e) 원하는 비트의 출력을 얻을 때까지 상기 레지스터값을 갱신하는 단계를 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
2 |
2
제 1항에 있어서,
쉬프트 레지스터부, 연결 정수부, 메모리부 및 합산부로 이루어진 캐리를 갖는 피드백 쉬프트 레지스터가 소정의 전제 조건을 만족하는 경우, 상기 (a) 단계 내지 상기 (e) 단계를 수행하며,
상기 소정의 전제 조건은, 상기 합산부에서 계산되는 정수합의 크기가 워드 크기를 초과하지 않는 제1 전제 조건과, 상기 메모리부에 저장되는 메모리값의 최대값이 워드 크기를 초과하지 않는 제2 전제 조건과, 상기 메모리부에 저장되는 메모리값의 크기가 일정하게 유지되는 제3 전제 조건을 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
3 |
3
제 2항에 있어서, 상기 (b) 단계에서,
정수합을 제1, 2, 3 부분 정수합으로 나누어 계산할 때,
003c#식 1003e#
Σn = (2t1 * as1 + 2t2 * as2 + … + 2tw * asw) + mn-1
(여기에서, Σn은 정수합, 2ti(1≤i≤w)는 상기 연결 정수부의 연결수 성분 qi을 이진 전개하였을 때 나타나는 2의 거듭제곱, asi는 상기 쉬프트 레지스터부에 저장된 각 레지스터값, mn-1은 상기 쉬프트 레지스터부에 저장된 메모리값, w는 상기 연결 정수부의 연결수 성분 qi를 이진 전개하였을 때 나타나는 해밍 웨이트의 총합을 각각 의미함)
에 의해 상기 제1, 2, 3 부분 정수합을 계산하여 상기 제1, 2, 3 변수에 각각 저장하는 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
4 |
4
제 3항에 있어서, 상기 (b) 단계에서,
상기 003c#식 1003e#에 의해 모든 1≤ i ≤ w에 대하여 상기 2ti * asi값 중에서 232 보다 크거나 같은 부분의 합을 계산하여 상기 제1 변수에 저장하는 제1 단계;
상기 003c#식 1003e#에서 2의 지수 중에서 최소값을 t라 할 때, 상기 003c#식 1003e#에 의해 모든 1≤ i ≤ w에 대하여 2ti-t * asi값의 합과 상기 메모리 변수에서 상기 t비트 보다 상위에 있는 메모리값을 합하여 상기 제2 변수에 저장하는 제2 단계; 및
상기 메모리 변수에서 상기 t비트 보다 하위에 있는 메모리값을 합하여 상기 제3 변수에 저장하는 제3 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
5 |
5
제 4항에 있어서, 상기 (c) 단계에서,
상기 제1 부분 정수합에 상기 제2 부분 정수합을 32-t 비트 만큼 이동시킨 값을 더하여 새로운 메모리값으로서 상기 메모리 변수에 저장하는 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
6 |
6
제 1항에 있어서, 상기 (d) 단계에서,
상기 배열 변수의 새로운 레지스터값을 계산할 때, 상기 제2 부분 정수합을 t비트 만큼 이동시킨 후 상기 제3 부분 정수합과 더하여 상기 배열 변수의 r번째 레지스터값에 저장하는 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
7 |
7
(a) 각 레지스터값을 저장하기 위한 배열 변수, 메모리값을 저장하기 위한 메모리 변수, 정수합의 부분값을 저장하기 위한 제1, 2 변수를 워드형으로 선언하는 단계;
(b) 캐리가 발생하지 않도록 각 초기 레지스터값을 두개로 각각 나누어서 상기 배열 변수에 할당하고 초기 메모리값을 상기 메모리 변수에 할당하는 단계;
(c) 정수합을 제1, 2 부분 정수합으로 나누어 계산하여 상기 제1, 2 변수에 각각 저장하고, 상기 제1, 2 부분 정수합에 따라 새로운 메모리값을 계산하는 단계;
(d) 상기 배열 변수에 저장된 레지스터값을 두개씩 이동시켜 제1 출력값을 얻고, 상기 제1, 2 부분 정수합에 따라 상기 배열 변수의 새로운 레지스터값을 계산하는 단계; 및
(e) 원하는 비트의 출력을 얻을 때까지 상기 레지스터값을 갱신하는 단계를 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
8 |
8
제 7항에 있어서,
쉬프트 레지스터부, 연결 정수부, 메모리부 및 합산부로 이루어진 캐리를 갖는 피드백 쉬프트 레지스터가 소정의 전제 조건을 만족하는 경우, 상기 (a) 단계 내지 상기 (e) 단계를 수행하며,
상기 소정의 전제 조건은, 상기 메모리부에 저장되는 메모리값의 최대값이 워드 크기를 초과하지 않는 제1 전제 조건과, 상기 메모리부에 저장되는 메모리값의 크기가 일정하게 유지되는 제2 전제 조건을 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
9 |
9
제 7항에 있어서, 상기 (a) 단계에서,
상기 각 레지스터값의 개수가 r개인 경우, 2r개의 원소를 갖도록 상기 배열 변수를 선언하는 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
10 |
10
제 9항에 있어서, 상기 (b) 단계에서,
상기 각 초기 레지스터값을 16비트씩 각각 두개로 나누어서 상기 배열 변수에 각각 16비트씩 나누어 할당하는 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
11 |
11
제 7항에 있어서, 상기 (c) 단계에서,
상기 제1 부분 정수합을 계산하여 상기 제1 변수의 16비트에 저장하는 제1 단계;
상기 제2 부분 정수합을 계산하여 상기 제2 변수의 16비트에 저장하는 제2 단계;
상기 제1 변수에 저장된 제1 부분 정수합을 16비트 이동시켜 상기 메모리 변수의 16비트에 저장하는 제3 단계; 및
상기 제2 변수에 저장된 제2 부분 정수합을 16비트 이동시켜 상기 메모리 변수의 나머지 16비트에 저장하는 제4 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|
12 |
12
제 9항에 있어서, 상기 (d) 단계에서,
상기 배열 변수 중에서 두번째 레지스터값을 16비트 이동시킨 후 첫번째 레지스터값과 더하여 상기 제1 출력값을 얻는 단계를 더 포함하는 것을 특징으로 하는 캐리를 갖는 피드백 쉬프트 레지스터의 소프트웨어 구현 방법
|