KR100809783B1 - 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기 - Google Patents

고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기 Download PDF

Info

Publication number
KR100809783B1
KR100809783B1 KR1020010031354A KR20010031354A KR100809783B1 KR 100809783 B1 KR100809783 B1 KR 100809783B1 KR 1020010031354 A KR1020010031354 A KR 1020010031354A KR 20010031354 A KR20010031354 A KR 20010031354A KR 100809783 B1 KR100809783 B1 KR 100809783B1
Authority
KR
South Korea
Prior art keywords
value
memory
binary
data points
stage
Prior art date
Application number
KR1020010031354A
Other languages
English (en)
Other versions
KR20010110204A (ko
Inventor
길비니트즈키
Original Assignee
디에스피 그룹 리미티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디에스피 그룹 리미티드 filed Critical 디에스피 그룹 리미티드
Publication of KR20010110204A publication Critical patent/KR20010110204A/ko
Application granted granted Critical
Publication of KR100809783B1 publication Critical patent/KR100809783B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Complex Calculations (AREA)
  • Computer And Data Communications (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은, N개의 데이터 포인트가 N/2개의 A 데이터 포인트와 N/2개의 B 데이터 포인트를 구비하고, 상기 N개의 데이터 포인트가 A 데이터 포인트의 2M 그룹의 메모리에 저장되며, 상기 각 그룹은
Figure 112007061683421-pat00006
데이터 포인트를 갖고, 상기 각 그룹에는
Figure 112007061683421-pat00007
B 데이터 포인트의 그룹이 계속되는, 제1스테이지가 스테이지 0인 FFT의 스테이지 M의 N개의 데이터 포인트의 시퀀스를 구비하는 메모리의 포인터를 진행시키기 위한 방법에 있어서, a) Ap 포인터 인덱스를 상기 메모리의 상기 A 데이터 포인트의 첫 번째에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일하게 설정하는 단계와; b) Bp 포인터 인덱스를 상기 메모리의 상기 B 데이터 포인트의 첫 번째에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일하게 설정하는 단계; c) 제1 2진 비트 마스크 값(R1)을
Figure 112007061683421-pat00008
+ 1과 동일하게 설정하는 단계; d) 제2 2진 비트 마스크 값(R2)을
Figure 112007061683421-pat00009
과 동일하게 설정하는 단계; e) 상기 Bp 포인터 인덱스를, e1) 상기 Ap 포인터 인덱스 값을 제1 2진 비트 마스크 값(R1)에 부가하는 단계와, e2) 제2 2진 비트 마스크 값(R2)에 따라 단계 e1)의 결과를 OR하는 단계 및, e3) 단계 e2)의 결과와 동일하게 상기 Bp 포인터 인덱스 값을 설정하는 단계,에 의해 상기 메모리의 다음 B 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행시키는 단계 및; f) 상기 Ap 포인터 인덱스를, f1) 제2 2진 비트 마스크 값(R2)의 비트-인버티드 값에 따라 단계 e1)의 결과를 AND하는 단계와, f2) 단계 f1)의 결과와 동일하게 상기 Ap 포인터 인덱스 값을 설정하는 단계,에 의해 상기 메모리의 다음 A 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행시키는 단계를 구비하여 이루어진 것을 특징으로 하는 메모리의 포인터를 진행시키기 위한 방법을 제공한다.

Description

고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기{IN-PLACE MEMORY MANAGEMENT FOR FFT AND A DIGITAL SIGNAL PROCESSOR}
도 1은 FFT(Fast Fourier Transform) 버터플라이 연산을 간단히 나타낸 도면,
도 2는 본 발명의 실시예에 따라 동작되는 FFT 연산을 위한 개선된 인-플레이스 메모리 포인터 관리를 위한 간단한 플로우차트,
도 3은 본 발명의 실시예에 따라 구성되고 동작되는 FFT 입력 데이터 메모리의 간단한 표를 나타낸 도면,
도 4는 본 발명의 실시예에 따라 구성되고 동작되는 도 2의 방법을 이해하는데 유용한 간단한 논리도를 나타낸 도면,
도 5는 본 발명의 다른 실시예에 따라 구성되고 동작되는 2개의 분리 메모리 공간이 이용되는 곳에서 FFT 입력 데이터 메모리의 간단한 표를 나타낸 도면이다.
본 발명은 일반적으로 DSP(Digital Signal Process)에 관한 것으로, 특히 FFT(고속 푸리에변환) 계산을 위한 개선된 "인-플레이스(in-place)" 메모리 관리 방법 및 장치에 관한 것이다.
DSP는 FFT와, 디지털 필터링, 이미지 처리 및, 음성인식과 같은 디지털 신호처리 작업을 최적화하기 위해 설계되는 특수 목적 컴퓨터이다 DSP 응용은 전형적으로 실시간 연산과, 높은 인터럽트율 및, 집중적 수치계산에 의해 특징화된다. 더욱이, DSP 응용은 메모리 억세스 연산에서 집약적인 경향이 있어, 큰 양의 데이터의 입력 및 출력을 요구한다.
FFT 데이터는 N개의 데이터 포인트의 연속으로 만들어지는데, 여기서 하나의 데이터 포인트는 하나의 실수와 하나의 허수인 2개의 데이터 값을 구비한다. 데이터 포인트는 N/2개의 "A" 데이터 포인트와 N/2개의 "B" 데이터 포인트로 그룹지워지고, 여기서 도 1에 도시된 바와 같은 각 FFT 버터플라이 연산은 FFT 연산의 다음 스테이지를 위한 A 및 B 데이터 포인트를 제공하는 (XR,XI) 및 (YR,YI)를 산출하기 위해 다양한 계수(WR,WI)와 함께 하나의 A 데이터 포인트(AR,AI) 및 하나의 B 데이터 포인트(BR,BI)상에서 연산된다. 각 FFT 버터플라이 연산을 위한 A 및 B 데이터 포인트로서의 데이터 포인트의 선택은 FFT의 각 스테이지에 따라 변한다.
다음의 표 1 - FFT(A,B) 그룹은 0∼16으로 번호가 매겨진 16 데이터 포인트의 시퀀스를 갖춘 FFT의 각 스테이지를 위해 요구되는 (A,B) 데이터 포인트 그룹을 설명한다.
표 1 - FFT(A,B) 그룹
스테이지 0 스테이지 1 스테이지 2 스테이지 3
0.8 0.4 0,2 0,1
1,9 1,5 1,3 2,3
2,10 2,6 4,6 4,5
3,11 3,7 5,7 6,7
4,12 8,12 8,10 8,9
5,13 9,13 9,11 10,11
6,14 10,14 12,14 12,13
7,15 11,15 13,15 14,15
다음의 표 2 - FFT A/B 배치는 각 16-데이터 포인트 FFT에서의 각 FFT 데이터 포인트의 A/B 배치를 설명한다.
표 2 - FFT A/B 배치
데이터 포인트 스테이지 0 스테이지 1 스테이지 2 스테이지 3
0 A A A A
1 A A A B
2 A A B A
3 A A B B
4 A B A A
5 A B A B
6 A B B A
7 A B B B
8 B A A A
9 B A A B
10 B A B A
11 B A B B
12 B B A A
13 B B A B
14 B B B A
15 B B B B
FFT 계산을 수행하는 DSP 구조에 있어서 데이터는 여러 스테이지에서 메모리에 대해 독출 및 기록된다. 몇몇 DSP 구조는 입력 데이터와 출력 데이터에 대해 분리 메모리 공간을 채용한다. 이러한 메모리 구성에 있어서, 하나의 FFT 스테이지의 결과는 다음 스테이지의 A 및 B 데이터 포인트 선택의 순서로 기록되어질 수 있고, A 및 B 데이터 포인트 메모리 어드레스에 대한 포인터의 증가적 진행을 위해 허용된다. 다음의 표 3 - A/B 정렬 순서는 16-데이터 포인트 FFT의 각 스테이지를 위한 포인터-최적화인 이론적 FFT 데이터 포인트 순서를 설명한다.
표 3 - A/B 정렬 순서
A/B 스테이지 0 스테이지 1 스테이지 2 스테이지 3
A 0 0 0 0
A 1 1 1 2
A 2 2 4 4
A 3 3 5 6
A 4 8 8 8
A 5 9 9 10
A 6 10 12 12
A 7 11 13 14
B 8 4 2 1
B 9 5 3 3
B 10 6 6 5
B 11 7 7 7
B 12 12 10 9
B 13 13 11 11
B 14 14 14 13
B 15 15 15 15
FFT를 위해 요구된 메모리의 양을 감소시키기 위해, "인-플레이스(in-place)" 메모리 구조가 개발됨에 따라 FFT 입력 데이터 메모리 공간이 FFT 계산의 결과와 겹쳐 기록되고, 그에 따라 FFT의 각 스테이지에서의 결과를 저장하기 위한 부가적 메모리 공간의 필요를 제거한다. 불행하게도, 이러한 메모리 구성은 데이터 포인트가 스테이지 0에 이어지는 스테이지를 위한 표 3에 도시된 바와 같은 A/B 정렬 순서 보다는 표 2에 도시된 바와 같은 데이터 포인트 정렬 순서로 저장되고, 따라서 A 및 B 데이터 포인트 어드레스에 대해 포인터의 증가적 진행을 방해하게 된다. 메모리 어드레스 룩-업 테이블 또는 하드-코드화(hard-corded) 메모리 어드레스가 사용되어질 수 있는 반면, 이러한 접근은 "인-플레이스" FFT의 메모리 계수를 부정하게 된다.
본 발명은 상기한 점을 감안하여 발명된 것으로, FFT 계산을 지지하는 개선된 "인-플레이스" 메모리 포인터 관리방법 및 장치를 제공함에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명은, N개의 데이터 포인트가 N/2개의 A 데이터 포인트와 N/2개의 B 데이터 포인트를 구비하고, 상기 N개의 데이터 포인트가 A 데이터 포인트의 2M 그룹의 메모리에 저장되며, 상기 각 그룹은
Figure 112007061683421-pat00010
데이터 포인트를 갖고, 상기 각 그룹에는
Figure 112007061683421-pat00011
B 데이터 포인트의 그룹이 계속되는, 제1스테이지가 스테이지 0인 FFT의 스테이지 M의 N개의 데이터 포인트의 시퀀스를 구비하는 메모리의 포인터를 진행시키기 위한 방법에 있어서, a) Ap 포인터 인덱스를 상기 메모리의 상기 A 데이터 포인트의 첫 번째에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일하게 설정하는 단계와; b) Bp 포인터 인덱스를 상기 메모리의 상기 B 데이터 포인트의 첫 번째에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일하게 설정하는 단계; c) 제1 2진 비트 마스크 값(R1)을
Figure 112007061683421-pat00012
+ 1과 동일하게 설정하는 단계; d) 제2 2진 비트 마스크 값(R2)을
Figure 112007061683421-pat00013
과 동일하게 설정하는 단계; e) 상기 Bp 포인터 인덱스를, e1) 상기 Ap 포인터 인덱스 값을 제1 2진 비트 마스크 값(R1)에 부가하는 단계와, e2) 제2 2진 비트 마스크 값(R2)에 따라 단계 e1)의 결과를 OR하는 단계 및, e3) 단계 e2)의 결과와 동일하게 상기 Bp 포인터 인덱스 값을 설정하는 단계,에 의해 상기 메모리의 다음 B 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행시키는 단계 및; f) 상기 Ap 포인터 인덱스를, f1) 제2 2진 비트 마스크 값(R2)의 비트-인버티드 값에 따라 단계 e1)의 결과를 AND하는 단계와, f2) 단계 f1)의 결과와 동일하게 상기 Ap 포인터 인덱스 값을 설정하는 단계,에 의해 상기 메모리의 다음 A 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행시키는 단계를 구비하여 이루어진 것을 특징으로 하는 메모리의 포인터를 진행시키기 위한 방법을 본 발명의 실시예에 따라 제공한다.
더욱이, 본 발명의 실시예에 따르면, 단계 e) 및 f)를 1회 이상 반복하는 단계를 더 구비하여 이루어진 것을 특징으로 한다.
더욱이, 본 발명의 실시예에 따르면, 상기 Ap 포인터 인덱스가 상기 메모리의 상기 A 데이터 포인트의 마지막에 대응하는 데이터 포인트 메모리 인덱스와 동일하고, 상기 Bp 포인터 인덱스가 상기 메모리의 상기 B 데이터 포인트의 마지막에 대응하는 데이터 포인트 메모리 인덱스와 동일할 때 까지 단계 e) 및 f)를 반복하는 단계를 더 구비하여 이루어진 것을 특징으로 한다.
여기서, 상세한 설명 및 청구항에 기재된 용어 "데이터 포인트"는 실수 값 및 허수 값의 2개의 데이터 값의 쌍으로서 언급된다.
또한, 상세한 설명 및 청구항에 기재된 용어 "데이터 포인트 메모리 인덱스"는 단일 메모리 공간내의 다른 데이터 포인트로부터 하나의 데이터 포인트를 뚜렷이 식별하는데 필요로 되는 어드레싱 비트의 최대 수로서 언급된다.
(실시예)
이하, 예시도면을 참조하여 본 발명에 따른 실시예를 상세히 설명한다.
본 발명의 실시예에 따라 동작되는 FFT 연산을 위한 개선된 인-플레이스 메모리 포인터 관리를 위한 간단한 플로우차트인 도 2와, 본 발명의 실시예에 따라 구성되고 동작되는 도 2의 방법을 이해하는데 유용한 간단한 표인 도 3을 참조한다. 도 2의 방법에 있어서, 0∼N-1로 번호가 매겨진 N개의 데이터 포인트의 시퀀스는 DSP의 메모리에 저장된다(단계 100). 메모리내의 데이터 포인트의 구성은 도 3을 참조하여 알 수 있다. 도 3에 있어서, 메모리(10)의 논리적 표현은 0∼15로 번호가 매겨진 16개의 FFT 데이터 포인트를 저장하는 것을 나타낸다. 16개의 데이터 포인트가 도시됨에도 불구하고, 메모리(10)는 데이터 포인트(N)의 소정 수를 저장하는데 이용될 수 있다.
데이터 포인트 인덱스(12)는 단일 메모리 공간내의 다른 데이터 포인트로부터 하나의 데이터 포인트를 뚜렷하게 식별하는데 필요로 되는 어드레싱 비트의 최소 수로서 각 데이터 포인트에 대해 정의될 수 있다(단계 110). 따라서, FFT가 단일 메모리에 인접되게 저장된 16개의 데이터를 구비하는 곳에서 4개의 비트가 요구된다. 전형적으로 실수 및 허수 데이터 값 양쪽을 구비하는 각 데이터 포인트가 2개의 인접하는 메모리 어드레스에 저장됨에 따라, 소정 데이터 포인트의 개시 어드레스는 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스에 2를 곱하고, FFT 데이터 포인트 저장 개시시에 베이스 메모리 어드레스(14)에 적(product)을 가산함으로써 결정될 수 있다. 따라서, 예컨대 도 3에 있어서, 데이터 포인트 메모리 인덱스가 0101인 데이터 포인트(5)의 개시 메모리 어드레스는 FB902834+0A = FB90283E를 부여하는 FB902834의 베이스 메모리 어드레스에 1010을 가산함으로써 추출될 수 있다.
상기한 표 2에 나타낸 바와 같이, 인-플레이스 FFT 메모리 관리의 특징은 제1스테이지가 스테이지 0인 FFT의 소정 스테이지(M)의 N개의 데이터 포인트의 소정 시퀀스에 대한 것으로, N개의 데이터 포인트를 구비하여 이루어지는 N/2개의 A 데이터 포인트와 N/2개의 B 데이터 포인트가 메모리에 배열되어, A 데이터 포인트가 2M 그룹의 상기 메모리에 저장되고, 여기서 각 그룹은
Figure 112007061683421-pat00014
데이터 포인트를 갖고, 여기서 각 그룹에는
Figure 112007061683421-pat00015
B 데이터 포인트의 그룹이 계속된다. 따라서, 예컨대 16-데이터 포인트 FFT의 스테이지 2에 있어서, 각각이 2개의 데이터 포인트 (
Figure 112007061683421-pat00016
)인 4개 A 데이터 포인트 그룹(2M)이 존재하고, 여기서 각각의 A 데이터 포인트 그룹에는 각 2개의 데이터 포인트의 B 데이터 포인트 그룹이 계속된다.
도 2의 방법은 포인터의 초기화 및 FFT 스테이지의 개시에서의 비트 마스크에 따라 계속된다. Ap 포인터 인덱스는 메모리(10)의 제1 A 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일한 값으로 설정된다. Bp 포인터 인덱스는 마찬가지로 메모리(10)의 제1 B 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일한 값으로 설정된다(단계 120). 2진 비트 마스크 값(R1)이
Figure 112007061683421-pat00017
+ 1과 동일하게 설정되고, 2진 비트 마스크 값(R2)이
Figure 112007061683421-pat00018
과 동일하게 설정된다(단계 130). 비트 마스크(R1, R2)는 바람직하게 데이터 포인트 메모리 인덱스로서 동일한 비트 수를 갖는다. 스테이지 M의 제1데이터 포인트 그룹(A,B)은 메모리(10)에 데이터 포인트(1)의 메모리 어드레스에 각 Ap,Bp 포인터 인덱스를 부가함으로써 결정될 수 있다.
Bp 포인터 인덱스는 다음과 같이 메모리(10)의 다음 B 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행할 수 있다.
1a) R1에 Ap 포인터 인덱스 값을 부가(단계140);
2a) R2에 따라 단계 1a)의 결과를 OR(단계 150);
3a) 단계 2a)의 결과와 동일하게 Bp 포인터 인덱스를 설정(단계 160).
Ap 포인터 인덱스는 다음과 같이 다음 A 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행할 수 있다.
1b) R1에 Ap 포인터 인덱스 값을 부가(단계 170);
2b) R2의 비트-인버티드 값에 따라 단계 1b)의 결과를 AND(단계 180);
3b) 단계 2b)의 결과와 동일하게 Ap 포인터 인덱스 값을 설정(단계 190).
이 때, Ap,Bp 포인터 인덱스는 각각 메모리(10)의 각 이어지는 A, B 데이터 포인트의 데이터 포인트 메모리 인덱스로 진행한다.
도 2에 따른 상기한 논리연산은 본 발명의 실시예에 따라 구성되고 동작되는 도 2의 방법을 이해하는데 유용한 간단한 논리도인 도 4를 참조하여 알 수 있다.
도 2의 방법의 전형적인 연산은 다음의 예를 통해 설명한다. 상기한 표 1에 있어서, FFT 스테이지 2의 제1(A,B) 데이터 포인트 그룹은 데이터 포인트 0 및 2를 구비한다. 따라서, 도 3의 데이터 포인트 0 및 2에 대해 나타낸 데이터 포인트 메모리 인덱스 값에 따라, Ap 포인터 인덱스는 데이터 포인트 메모리 인덱스 0000으로 설정되는 한편, 포인터 인덱스(Bp)는 0010으로 설정된다. 2진 비트 마스크 값(R1)은
Figure 112007061683421-pat00019
+ 1(=24-1-2+1 = 21+1 = 0011)과 동일하게 설정되고, 2진 비트 마스크 값(R2)은
Figure 112007061683421-pat00020
(=0010)과 동일하게 설정된다.
FFT 스테이지 2의 다음 (A,B) 데이터 포인트 그룹은 각각 도 3에 나타낸 바와 같이 0001 및 0011의 데이터 포인트 메모리 인덱스를 갖춘 데이터 포인트 1 및 3을 구비한다. Bp 포인터 인덱스는 다음과 같이 0010으로부터 0011로 진행한다:
1a) R1에 Ap 포인터 인덱스 값을 부가(= 0000+0011 = 0011);
2a) R2에 따라 단계 1a)의 결과를 OR(= 0011 OR 0010 = 0011);
3a) Bp 포인터 인덱스 값을 단계 2a)의 결과와 동일하게 설정(= 0011).
Ap 포인터 인덱스는 다음과 같이 0000으로부터 0001로 진행한다.
1b) R1에 Ap 포인터 인덱스 값을 부가(= 0000+0011 = 0011);
2b) R2의 비트-인버티드 값에 따라 단계 1b)의 결과를 AND(= 0011 AND 1101 = 0001);
3b) Ap 포인터 인덱스 값을 단계 2b)의 결과와 동일하게 설정(= 0001).
FFT 스테이지 2의 다음 (A,B) 데이터 포인트 그룹은 각각 도 3에 도시된 바와 같이 0100 및 0110의 데이터 포인트 메모리 인덱스를 갖춘 데이터 포인트 4 및 6을 구비한다. Bp 포인터 인덱스는 다음과 같이 0011로부터 0110으로 진행한다.
1a) R1에 Ap 포인터 인덱스 값을 부가(= 0001+0011 = 0100);
2a) R2에 따라 단계 1a)의 결과를 OR(= 0100 OR 0010 = 0110);
3a) Bp 포인터 인덱스 값을 단계 2a)의 결과와 동일하게 설정(= 0110).
Ap 포인터 인덱스는 다음과 같이 0001로부터 0100으로 진행한다.
1b) R1에 Ap 포인터 인덱스 값을 부가(= 0001+0011 = 0100);
2b) R2의 비트-인버티드 값에 따라 단계 1b)의 결과를 AND(= 0100 AND 1101 = 0100);
3b) Ap 포인터 인덱스 값을 단계 2b)의 결과와 동일하게 설정(= 0100).
따라서, 도 2의 방법은 상기한 표 2에 도시한 바와 같은 FFT의 각 스테이지에서 A 및 B 데이터 포인트의 위치에 특별히 채용하는 방법으로 Ap,Bp 포인터 인덱스를 각각 메모리(10)의 각 A 및 B의 데이터 포인트 메모리 인덱스로 진행시키는데 이용할 수 있다.
본 발명의 다른 실시예에 따라 구성되고 동작되는 2개의 분리 메모리 공간이 이용되는 곳에서 FFT 입력 데이터 메모리의 간단한 표를 나타낸 도 5를 참조한다. 도 5에 있어서, 제1메모리 공간(16)과 제2메모리 공간(18)의 논리적 표현은 0∼15로 번호가 매겨진 16개의 FFT 데이터 포인트의 저장을 나타낸다. 16개의 데이터 포인트가 도시됨에도 불구하고, 메모리(16, 18)는 소정 수 N의 데이터 포인트를 집합적으로 저장하는데 이용될 수 있음을 알 수 있다. 2개의 분리 메모리 공간이 각각 8 데이터 포인트를 저장하는데 이용되므로, 단지 3비트의 데이터 포인트 메모리 인덱스(20)가 각 메모리 공간내의 다른 데이터 포인트로부터 하나의 데이터 포인트를 뚜렷이 식별하는데 필요로 된다. 양 메모리(16, 18)의 제1데이터 포인트의 메모리 어드레스에 각 Ap,Bp 포인터 인덱스를 부가함으로써 단지 약간의 변형에 따라 이용될 수 있는 도 2의 방법은 Ap,Bp 포인터 인덱스의 소정의 주어진 값을 위해 결정되는 2개의 데이터 포인트 그룹(A,B)에 대해 허용하게 된다. 따라서, 상기한 표 1을 참조하면, FFT 스테이지 2의 데이터 포인트 그룹(0,2) 및 (8,10)은 도 5의 데이터 포인트(0,2,8,10)에 대해 도시된 데이터 포인트 메모리 인덱스에 따라, 포인터 인덱스 Ap = 000 및 포인터 인덱스 Bp = 010에 따라 결정되어진다.
본 방법 및 장치는 특정 하드웨어 및 소프트웨어를 참조하는 것은 아니고, 당업자라면 상업적인 하드웨어 및 소프트웨어에 용이하게 적용할 수 있다.
한편, 본 발명은 상기한 실시예에 한정되는 것은 아니고, 본 발명의 요지를 이탈하지 않는 범위내에서 다양하게 변형하여 실시할 수 있음은 물론이다.
이상 설명한 바와 같이 본 발명에 의하면, FFT 계산을 지지하는 개선된 "인-플레이스" 메모리 포인터 관리방법을 제공할 수 있게 된다.

Claims (6)

  1. N개의 데이터 포인트가 N/2개의 A 데이터 포인트와 N/2개의 B 데이터 포인트를 구비하고, 상기 N개의 데이터 포인트가 A 데이터 포인트의 2M 그룹의 메모리에 저장되며, 상기 각 그룹은
    Figure 112007061683421-pat00021
    데이터 포인트를 갖고, 상기 각 그룹에는
    Figure 112007061683421-pat00022
    B 데이터 포인트의 그룹이 계속되는, 제1스테이지가 스테이지 0인 FFT의 스테이지 M의 N개의 데이터 포인트의 시퀀스를 구비하는 메모리의 포인터를 진행시키기 위한 방법에 있어서,
    a) Ap 포인터 인덱스를 상기 메모리의 상기 A 데이터 포인트의 첫 번째에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일하게 설정하는 단계와;
    b) Bp 포인터 인덱스를 상기 메모리의 상기 B 데이터 포인트의 첫 번째에 대응하는 데이터 포인트 메모리 인덱스의 2진값과 동일하게 설정하는 단계;
    c) 제1 2진 비트 마스크 값(R1)을
    Figure 112007061683421-pat00023
    + 1과 동일하게 설정하는 단계;
    d) 제2 2진 비트 마스크 값(R2)을
    Figure 112007061683421-pat00024
    과 동일하게 설정하는 단계;
    e) 상기 Bp 포인터 인덱스를,
    e1) 상기 Ap 포인터 인덱스 값을 제1 2진 비트 마스크 값(R1)에 부가하는 단계와,
    e2) 제2 2진 비트 마스크 값(R2)에 따라 단계 e1)의 결과를 OR하는 단계 및,
    e3) 단계 e2)의 결과와 동일하게 상기 Bp 포인터 인덱스 값을 설정하는 단계,
    에 의해 상기 메모리의 다음 B 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행시키는 단계 및;
    f) 상기 Ap 포인터 인덱스를,
    f1) 제2 2진 비트 마스크 값(R2)의 비트-인버티드 값에 따라 단계 e1)의 결과를 AND하는 단계와,
    f2) 단계 f1)의 결과와 동일하게 상기 Ap 포인터 인덱스 값을 설정하는 단계,
    에 의해 상기 메모리의 다음 A 데이터 포인트에 대응하는 데이터 포인트 메모리 인덱스로 진행시키는 단계를 구비하여 이루어진 것을 특징으로 하는 메모리의 포인터를 진행시키기 위한 방법.
  2. 제1항에 있어서, 단계 e) 및 f)를 1회 이상 반복하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 메모리의 포인터를 진행시키기 위한 방법.
  3. 제1항에 있어서, 상기 Ap 포인터 인덱스가 상기 메모리의 상기 A 데이터 포인트의 마지막에 대응하는 데이터 포인트 메모리 인덱스와 동일하고, 상기 Bp 포인터 인덱스가 상기 메모리의 상기 B 데이터 포인트의 마지막에 대응하는 데이터 포인트 메모리 인덱스와 동일할 때 까지 단계 e) 및 f)를 반복하는 단계를 더 구비하 여 이루어진 것을 특징으로 하는 메모리의 포인터를 진행시키기 위한 방법.
  4. FFT 계산의 이전 스테이지의 입력 데이터 포인트를 겹쳐 기록하기 위해 하나 또는 그 이상의 메모리에 연속적으로 저장된 FFT 계산의 현재 스테이지의 입력 데이터 포인트의 연속적인 쌍을 억세스하도록 동적으로 계산된 어드레스를 이용하는 단계와;
    제1포인터 인덱스 값을 상기 현재 스테이지를 위한 입력 데이터 포인트의 쌍의 첫 번째에 대해 설정하는 단계와,
    제2포인터 인덱스 값을 상기 쌍의 두 번째에 대해 설정하는 단계,
    상기 제1포인터 인덱스 값을 상기 현재 스테이지를 위한 입력 데이터 포인트의 다음 쌍의 첫 번째로 진행시키는 단계 및,
    상기 제2포인터 인덱스 값을 상기 다음 쌍의 두 번째로 진행시키는 단계,
    에 의해 상기 어드레스를 계산하는 단계를 갖추어 이루어지고;
    상기 제1포인터 인덱스 값을 진행시키고 상기 제2포인터 인덱스 값을 진행시키는 단계가,
    합을 산출하도록 상기 제1 2진 포인터 인덱스 값을 제1 2진 스테이지-종속 값에 부가하는 단계와;
    상기 제2 2진 포인터 인덱스 값을 상기 합과 제2 2진 스테이지-종속 값에 대한 논리적 OR 동작의 결과로 설정하는 단계 및;
    상기 제1 2진 포인터 인덱스 값을 상기 합과 상기 제2 2진 스테이지-종속 값의 비트-인버티드 버전에 대한 논리적 AND 동작의 결과로 설정하는 단계;
    를 갖추어 이루어진 것을 특징으로 하는 방법.
  5. 제1포인터 인덱스 값과 제2포인터 인덱스 값을 FFT 계산의 현재 스테이지의 입력 데이터 포인트의 연속적인 쌍에 대해 동적으로 계산하는 -- 상기 입력 데이터 포인트가 상기 FFT 계산의 이전 스테이지의 입력 데이터 포인트를 겹쳐 기록하기 위해 데이터 포인트 정렬 순서로 메모리에 저장되는 -- 단계와;
    상기 제1포인터 인덱스 값을 특정 쌍의 제1입력 데이터 포인트를 어드레스하도록 베이스 메모리 어드레스에 부가하는 단계 및;
    상기 제2포인터 인덱스 값을 상기 특정 쌍의 제2입력 데이터 포인트를 어드레스하도록 상기 베이스 메모리 어드레스에 부가하는 단계를 갖추어 이루지고;
    상기 베이스 메모리 어드레스가 상기 현재 스테이지의 제1쌍을 위한 제1입력 데이터 포인트의 어드레스이고,
    상기 제1포인터 인덱스 값과 상기 제2포인터 인덱스 값을 동적으로 계산하는 단계가,
    합을 산출하도록 상기 제1 2진 포인터 인덱스 값을 제1 2진 스테이지-종속 값에 부가하는 단계와;
    상기 제2 2진 포인터 인덱스 값을 상기 합과 제2 2진 스테이지-종속 값에 대한 논리적 OR 동작의 결과로 설정하는 단계 및;
    상기 제1 2진 포인터 인덱스 값을 상기 합과 상기 제2 2진 스테이지-종속 값의 비트-인버티드 버전에 대한 논리적 AND 동작의 결과로 설정하는 단계;
    를 갖추어 이루어진 것을 특징으로 하는 방법.
  6. FFT 계산의 스테이지의 입력 데이터 포인트를 연속적으로 저장하되, 상기 입력 데이터 포인트가 2진 포인터 인덱스들에 의해 억세스되고, 상기 입력 데이터 포인트가 상기 FFT 계산의 다른 스테이지의 입력 데이터 포인트가 저장되는 동일한 장소에 저장되는, 메모리와;
    합을 산출하도록 제1 2진 포인터 인덱스의 현재 값을 제1 2진 스테이지-종속 값에 부가하는 산술 논리 유니트;
    제2 2진 포인터 인덱스의 다음 값을 산출하도록 상기 합과 제2 2진 스테이지-종속 값에 대해 논리적 OR 동작을 수행하는 논리적 OR 게이트 및;
    상기 제1 2진 포인터 인덱스의 다음 값을 산출하도록 상기 합과 상기 제2 2진 스테이지-종속 값의 비트-인버티드 버전에 대한 논리적 AND 동작을 수행하는 논리적 AND게이트를 갖추어 이루어진 것을 특징으로 하는 디지털 신호 처리기.
KR1020010031354A 2000-06-05 2001-06-05 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기 KR100809783B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/586,774 2000-06-05
US09/586,774 US6760741B1 (en) 2000-06-05 2000-06-05 FFT pointer mechanism for FFT memory management

Publications (2)

Publication Number Publication Date
KR20010110204A KR20010110204A (ko) 2001-12-12
KR100809783B1 true KR100809783B1 (ko) 2008-03-07

Family

ID=24347060

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010031354A KR100809783B1 (ko) 2000-06-05 2001-06-05 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기

Country Status (6)

Country Link
US (1) US6760741B1 (ko)
EP (1) EP1162546B1 (ko)
JP (1) JP4159761B2 (ko)
KR (1) KR100809783B1 (ko)
AT (1) ATE324632T1 (ko)
DE (1) DE60119030D1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004032568A (ja) 2002-06-28 2004-01-29 Hitachi Kokusai Electric Inc 相関検出装置およびフーリエ変換装置
KR100518797B1 (ko) * 2004-01-07 2005-10-05 삼성전자주식회사 처리속도가 향상된 고속 퓨리에 변환 장치 및 그의 처리방법
US7555511B2 (en) * 2004-07-02 2009-06-30 Ceva D.S.P. Ltd. Methods for addressing input data values of a Fast Fourier Transform (FFT) calculation
EP2009555B1 (en) * 2007-06-28 2009-09-23 Telefonaktiebolaget LM Ericsson (publ) Method and device for transform computation
KR101452022B1 (ko) 2010-11-09 2014-10-23 한국전자통신연구원 변조방식에 따라 고속퓨리에 변환기의 입력비트를 제공하는 수신장치 및 방법
CN115001894B (zh) * 2022-05-25 2023-06-30 北京经纬恒润科技股份有限公司 一种车载总线信号的存取方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3673399A (en) * 1970-05-28 1972-06-27 Ibm Fft processor with unique addressing
US3871577A (en) * 1973-12-13 1975-03-18 Westinghouse Electric Corp Method and apparatus for addressing FFT processor
US4899301A (en) * 1986-01-30 1990-02-06 Nec Corporation Signal processor for rapidly calculating a predetermined calculation a plurality of times to typically carrying out FFT or inverse FFT
US5430667A (en) * 1992-05-22 1995-07-04 Nec Corporation Hardware arrangement for fast fourier transform having improved addressing techniques
US5491652A (en) * 1994-10-21 1996-02-13 United Microelectronics Corporation Fast Fourier transform address generator
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3617720A (en) * 1967-09-12 1971-11-02 Bell Telephone Labor Inc Fast fourier transform using hierarchical store
US3662161A (en) * 1969-11-03 1972-05-09 Bell Telephone Labor Inc Global highly parallel fast fourier transform processor
BE757750A (fr) * 1969-12-31 1971-04-01 Thomson Csf Perfectionnements aux dispositifs de traitement en temps reel de signaux electriques
US3767905A (en) * 1971-05-12 1973-10-23 Solartron Electronic Group Addressable memory fft processor with exponential term generation
US3965342A (en) * 1974-11-04 1976-06-22 James Nickolas Constant Digital FFT processor using random access memory
US5091875A (en) * 1990-03-23 1992-02-25 Texas Instruments Incorporated Fast fourier transform (FFT) addressing apparatus and method
SE507529C2 (sv) * 1996-10-21 1998-06-15 Ericsson Telefon Ab L M Anordning och förfarande vid beräkning av FFT
US5838377A (en) * 1996-12-20 1998-11-17 Analog Devices, Inc. Video compressed circuit using recursive wavelet filtering
US6490672B1 (en) * 1998-05-18 2002-12-03 Globespanvirata, Inc. Method for computing a fast fourier transform and associated circuit for addressing a data memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3673399A (en) * 1970-05-28 1972-06-27 Ibm Fft processor with unique addressing
US3871577A (en) * 1973-12-13 1975-03-18 Westinghouse Electric Corp Method and apparatus for addressing FFT processor
US4899301A (en) * 1986-01-30 1990-02-06 Nec Corporation Signal processor for rapidly calculating a predetermined calculation a plurality of times to typically carrying out FFT or inverse FFT
US5623621A (en) * 1990-11-02 1997-04-22 Analog Devices, Inc. Apparatus for generating target addresses within a circular buffer including a register for storing position and size of the circular buffer
US5430667A (en) * 1992-05-22 1995-07-04 Nec Corporation Hardware arrangement for fast fourier transform having improved addressing techniques
US5491652A (en) * 1994-10-21 1996-02-13 United Microelectronics Corporation Fast Fourier transform address generator

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A hardware efficient control of memory addressing for high-performance FFT processors(IEEE)
Area-efficient Architecture for Fast Fourier Transform(IEEE)
Conflict Free Memory Addressing for Dedicated FFT Hardware (IEEE)
Generation of Digit Reversed Address Sequences for Fast Fourier Transforms(IEEE)
Organization of Large Scale Fourier processors(Journal of the association for computing machinery)

Also Published As

Publication number Publication date
DE60119030D1 (de) 2006-06-01
EP1162546B1 (en) 2006-04-26
US6760741B1 (en) 2004-07-06
KR20010110204A (ko) 2001-12-12
ATE324632T1 (de) 2006-05-15
EP1162546A2 (en) 2001-12-12
JP2002032359A (ja) 2002-01-31
EP1162546A3 (en) 2005-01-26
JP4159761B2 (ja) 2008-10-01

Similar Documents

Publication Publication Date Title
JP4717154B2 (ja) オフセット表を使用する完全ハッシュの生成
US5199073A (en) Key hashing in data processors
US4785400A (en) Method for processing a data base
Faloutsos Multiattribute hashing using gray codes
KR100809783B1 (ko) 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법 및 디지털 신호 처리기
US4916649A (en) Method and apparatus for transforming a bit-reversed order vector into a natural order vector
JP2002351858A (ja) 処理装置
US4974188A (en) Address sequence generation by means of reverse carry addition
CN1953049B (zh) 调频合成的波形生成
KR20010110203A (ko) 고속 푸리에 변환을 위한 인-플레이스 메모리 관리방법
US7096462B2 (en) System and method for using data address sequences of a program in a software development tool
US5479657A (en) System and method for sorting count information by summing frequencies of usage and using the sums to determine write addresses
US6311188B1 (en) Method and apparatus for element selection exhausting an entire array
JP3062119B2 (ja) 文字列探索用テーブル、その作成方法及び文字列探索方法
JPS6143338A (ja) 連想技術を使用して稀薄なデータベースをサーチする方法
JP2989962B2 (ja) ベクトル処理装置
JPS6168636A (ja) デ−タ処理装置
CN115080453A (zh) 地址计算阵列管理方法及系统
SU1444784A1 (ru) Буферное запоминающее устройство с произвольной выборкой двумерного фрагмента
CN117725054A (zh) 基于列存储格式的数据库排序方法、计算机设备及存储介质
JP3506742B2 (ja) W/nおよびn/wマッピング法
JP2811916B2 (ja) データフアイルアクセス方式
JPS62187930A (ja) 検索方法及び装置
JPH0437316A (ja) 可変長符号復号化装置
Maus IPS, sorting by transforming an array into its own sorting permutation with almost no space overhead

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130215

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140214

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150217

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160222

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170217

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 11