KR970008186B1 - 신호프로세서용 어드레스 프로세서 - Google Patents

신호프로세서용 어드레스 프로세서 Download PDF

Info

Publication number
KR970008186B1
KR970008186B1 KR1019920701667A KR920701667A KR970008186B1 KR 970008186 B1 KR970008186 B1 KR 970008186B1 KR 1019920701667 A KR1019920701667 A KR 1019920701667A KR 920701667 A KR920701667 A KR 920701667A KR 970008186 B1 KR970008186 B1 KR 970008186B1
Authority
KR
South Korea
Prior art keywords
address
buffer
mod
filter
processor
Prior art date
Application number
KR1019920701667A
Other languages
English (en)
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 테레포오낙티이에보라겟 엘 엠 엘리크썬
Application granted granted Critical
Publication of KR970008186B1 publication Critical patent/KR970008186B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing
    • G06F9/3552Indexed addressing using wraparound, e.g. modulo or circular addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/066User-programmable number or size of buffers, i.e. number of separate buffers or their size can be allocated freely

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Debugging And Monitoring (AREA)

Abstract

없음.

Description

신호프로세서용 어드레스 프로세서
도1은 본 발명에 관련하는 데이터·메모리의 분할을 표시한 도면.
도2는 본 발명에 관련하는 버퍼의 분할을 표시한 도면.
도3은 도 2의 버퍼에 관련하는 버퍼의 분할을 표시하는 도면.
도4는 연속적인 계산단계중에서의 필터의 위치 및 버퍼의 폴딩 어드레스의 도면.
도5는 본 발명에 의한 어드레스 프로세서의 바람직한 실시예의 도면.
도6은 도 5에 의한 어드레스 프로세서용의 계산 타이밍 도면.
도7은 N을 임의의 정(正)의 정수로 할 때에 각각 2, 1 및 N탭을 지니고 있는 3개의 어드레스 A, B 및 C용의 도 5의 어드레스 프로세서에 대한 신호 타이밍 도면.
본 발명은 디지털·필터용 상태변수를 포함하는 판독/기록 메모리의 어드레스를 계산하기 위한 신호 프로세서용 어드레스 프로세서에 관한 것이다.
발명의 배경
어떤 형태의 어드레스 프로세서는 신호 프로세서에 있어서의 디지털 필터의 실시에 관련하여, 또한 상기 디지털 필터의 입력 샘플·데이타를 판독/기록 메모리에 격납하는 경우에, 상기 디지털 필터의 상태변수를 기록하고, 또는 판독이 요구된다. 이들의 디지털·필터는 동시에 재귀적(再歸的)(IIR) 및 비재귀적(FIR)으로 얻어질 수 있다. 필터는 메모리로부터 상태변수를 판독하고, 또한 출력 데이터를 계산하므로 계산된다. 다음에, 이들의 출력 데이터는 다음 필터의 입력 데이터 또는 상태변수가 된 다음 상기 메모리에 재기록된다. 일반적으로, 필터 시스템은 몇 개의 필터를 지닐 수 있고 또한, 이들의 필터와 다른 샘플링 주파수를 얻을 수 있다.
필터값의 계산후, 필터에 있어서의 모든 상태변수는 메모리내에서 1위치만큼 시프트된다. 가장 오래된 상태변수는 다음에 오래된 것에 의하여 중복기록되고 새로운 표본값이 시프트 작동에 의하여 개방된 메모리위치에 격납된다.
종래 알려진 이와 같은 방법의 결점은 상태변수가 판독되고, 또한 새로운 메모리 위치에 기록되어져야 하기 때문에 상기 메모리와 시프트가 시간이 걸리는 처리라는 것이다.
또 다른 결점은 그 시프트 동작도 전력을 소비한다는 것이다. 이들은 예를 들면, 이용가능한 에너지가 한정되어 있는 밧데리 구동의 전화에 있어서 신호의 프로세서와의 관련에 있어서 중요하다.
선행기술의 설명
신호 프로세서 및 판독/기록 메모리에 의하여 실시되어 있는 디지털 필터용의 상태변수를 어드레스 지정하여, 시프트하는 통상의 방법은 크기가 2n순환버퍼를 이용하는 것이다. 단, n은 0보다 큰 정수이다. 가장 오래된 상태변수의 메모리 위치, 순환버퍼의 폴딩 어드레스(folding address)를 포인터(pointer)가 가르킨다. 가장 오래된 상태변수를 판독한후에, 지정된 메모리 위치에 새로운 표본값을 기록하고, 상기 가장 오래된 상태변수는 중복기록된다. 여기에서, 포인터가 변경되어서 다음에 가장 오래된 상태변수를 지시하면, 이 포인터는 새로운 폴딩 어드레스를 지시한다. 그때까지 다음으로 오래된 상태변수는 다음에 가장 오래되고, 이 처리절차의 결과는 순환버퍼에 있어서 모두의 상태변수를 물리적으로 이동시키지 않고, 그들은 1 메모리 위치 시프트하는 것과 등가가 된다. 포인터 만이 갱신되어서 새로운 폴딩 어드레스를 지시하는 것으로 된다. 따라서, 이 방법을 가상 시프트라고 한다. 상기 포인터는 순환버퍼의 제1의 메모리 위치에 접근하면, 다음 시프트후에 최후의 메모리 위치를 표시한다. 다음에 순환버퍼의 어드레스 지정을 「모듐로 2n의 어드레스 지정」이라고 할 수 있다.
그러나, 종래의 공지된 방법의 큰 결점은 크기가 2n의 순환버퍼만이 허영되어 있기 때문에 디지털·필터의 크기가 2n의 것이 아니면 안된다고 하는 것이다. 그것은 이 방법을 어떤 특정의 필터용에만 적당하게 한다.
종래의 공지되어 있는 다른 방법은 임의의 길이의 버퍼를 이용하고, 또한 필터계산중에 버퍼의 종단으로 부터 선두까지 시프트시키는 포인터를 사용하는 것이다. 포인터가 순환버퍼의 선두에 도달하면, 상기 포인터에는 재차 순환버퍼의 종단의 어드레스가 로드(load)되기 때문에 상기 처리절차를 반복할 수가 있다.
종래의 공지된 방법의 결점은 임의의 시간에 임의의 필터에 있어서의 임의의 상태변수를 어드레스를 지정할 수 없다는 것이다. 이 방법은 필터가 위에서의 설명에 따라 시퀸스에 의해 계산될 수 있을 때만 가능하다. 이 방법을 일반적인 어드레스 프로세서용의 개시점으로 사용할 수 없는 것으로 한다.
발명의 목적
본 발명의 목적은 위에서 설명한 형식의 어드레스·프로세서를 제공하는 것으로서, 상기 어드레스 프로세서는 순환버퍼에 순차적으로 격납된 적어도 두 개의 디지털 필터용의 적어도 한 개의 상기 순환버퍼의 상태변수를 어드레스 지정함과 동시에 가상적으로 시프트 할 수 있다. 상기 디지털 필터는 임의 수 또는 임의길이의 지연요소, 동일의 샘플링 주파수를 지닌다.
발명의 개요
본 발명의 의하면, 상기 목적은 청구항 1의 특징을 가진 어드레스 프로세서에 의하여 달성된다.
바람직한 실시예의 설명
도 1은 상이한 필터용의 상태변수를 포함하는 RAM이 해당부분에 대한 메모리의 구성을 표시한다. 이 경우에, 메모리(8)는 채널(CH0~CH7)용의 필터를 구비하고 있는 것으로 한다. 각 채널은 버퍼(BUFF0~BUFF2)를 지닌다. 버퍼의 수는 임의이다. 그러나, 각 채널은 대응하는 길이를 가지는 동일수의 버퍼를 구비하고 있다. 또한, 버퍼는 필터(FILTER1~FILTER 2)를 지닌다. 버퍼는 통상적인 길이를 지니지만, 각 버퍼에 있어서의 필터는 동일의 샘플링 주파수에 대응한다. 본 발명에 있어서, 적어도 한 개의 버퍼는 2개 이상의 필터를 지닌다. 버퍼의 길이는 필터길이의 총합에 의존한다. 실제로, 버퍼의 길이는 포함하고 있는 필터 +1의 지연요소 수의 총합으로 된다.
도 1은 채널(CH0~CH7)로 분할된 데이터·메모리를 표시한다. 본 발명은 8개의 채널에 한정되지 않고 임의 수의 채널이 가능하다. 또한, 도 1은 512메모리·셀을 포함한 데이터·메모리를 표시한다. 그러나, 이 수도 변경할 수 있다. 도 2는 버퍼의 내용을 상세히 표시한다. 실시예에 있어서, 버퍼는 필터개시 어드레스 [filter-addr(0), filter-addr(1), filter-addr(2)]를 지니는 3개의 필터를 구비하고 있다. 절대개시 어드레스는 mod_start로 표시된다. 제1의 필터의 상태변수는 X(n), X(n-1), X(n-2), X(n-3)로 표시된다. 여기서, X(n)은 최신의 표본값을 표시하고, X(n-1)은 그 다음으로 최신의 표본값을 표시하고, 이하 동일하게 계속된다.
다음 설명을 용이하게 하기 위하여, 최초에는 도 2의 버퍼에 있어서의 3개의 필터가 비재귀적(非再歸的)이라고 가정한다.
이 경우에, 상태변수는 가장 오래된 상태변수 X(n-3)로부터 개시하는 FILTER 0의 계산중에 메모리로 부터 한 개씩 페치(fetch)되고, RAM 또는 ROM으로부터 페치되어 대응하는 필터계수에 의해 승산된다. 이 필터가 이들의 승산된 상태변수를 가산하므로서 가산된다. 이 필터가 계산될때는 얻어진 값 Y(n)은 가장 오래된 상태변수 X(n-3)용의 메모리셀에 기록된다. 이들은 도 2에서 상태변수 또는 표본값 X(n-3)이 필터출력신호 Y(n)와 메모리셀을 공유하므로서 표시되어 있다. 이와 같이 계산된 필터값 Y(n), Y(n-1)...은 FILTER 1에 대한 입력신호를 형성하고 있다. FILTER 1은 대응하는 방법에 따라 계산되고, 이 값은 계산된 후에 FILTER 2에 대한 입력신호를 가장 오래된 상태변수 Y(n-2)용의 메모리셀에 기록된다. 한 개의 필터로부터의 출력신호가 다음에 필터에 대한 입력신호를 형성하는 것과 같은 처리절차는 버퍼에 있어서의 필터가 동일의 샘플링 주파수에 대응하기 때문에 가능하다.
도 3 및 도 4는 또한 계산처리, 특히 재귀필터에 관련하여 발생하는 복잡성을 도시한다.
도 3은 도 2의 버퍼에 있어서의 필터에 대해서 특히, 개요적인 필터도를 표시한다. 위에서 설명했듯이, 제1의 필터(FILTER 0)는 트랜스버설 부분(transversal part)만을 포함하는 비재귀적 필터이다. 그러나, 제2 필터(FILTER 1)는 재귀적인 좌부분 및 트랜스버설 우부분을 포함한다. 제3의 필터(FILTER 2)는 재귀적부분만을 지니고 트랜서버설 부분을 지니지 않는다.
도 3에 있어서, 지연요소는 T로 표시되어 있다. 도 2에서 이해할 수 있듯이, FILTER 0은 3개의 지연요소 T 및 4개의 계수 a0...a3을 지닌다. FILTER 1은 2개의 지연요소 T 및 재귀부분에 2개의 계수 b1, b2를 지닌다. FILTER 2는 2개의 지연요소 T 및 2개의 계수 d1, d2를 지닌다. 이상의 계산규칙에 따르면, 버퍼의 길이는 3+2+2+1, 즉 8이다.
도 4는 도 3에 있어서 3개의 필터에 대한 일련의 계산을 나타낸다.
도4에 있어서 2개의 것에 주목하는 것은 본질적인 것이다.
먼저, 상태변수 X(n)..., Y(n)..., W(n)의 값은 일단 할당된 메모리셀에 통상적으로 존재한다. 새로운 각 도면 (a)~(h)에 있어서 n은 1만큼 증가시킨다.
즉, X(n)은 X(n-1)로 표시되고, 이하 동일하게 된다. 그러나, 가장 오래된 상태변수는 여전히 원래의 셀에 남아있다. 다음에, 가장 오래된 상태변수는 필요로 하지 않았을 때의 새로운 상태변수에 의해 중복기록된다. 따라서, 상태변수를 이동시킬 필요가 없다.
도 2에서, 버퍼의 폴딩 어드레스, 모드 포인터(mod pointer)는 연속적으로 갱신된다. 이 포인터는 이 경우에, 순환버퍼가 FILTER 2와 FILTER 0사이의 경계를 폴딩 메모리 어드레스를 보통 가르킨다. 포인터 모두 포인터는 「제로기준」을 형성하고, 이것에 따라 아래에서 상세히 설명하는 현재의 상태변수용의 정(正)의 절대 어드레스를 얻을 수 있다.
어떤 상태변수에 대한 어드레스의 계산을 위해, 아래의 변수를 이용한다.
mod start=버퍼의 절대개시 어드레스
data addr=버퍼개시 어드레스 mod start에 대한 선택 상태변수의 변위
write addr=버퍼개시 어드레스 mod start에 상대하여 선택된 선택된 기록 어드레스
mod numb=버퍼의 길이, 임의로 선택기능
mod pointer=버퍼의 현재의 폴딩 어드레스
rel addr=버퍼의 개시 어드레스 mod start에 대한 계산 어드레스
dmaddr=최종절대 메모리 어드레스
상태변수에 대한 어드레스의 계산중에 총합 data addr+mod pointer이 우선 계산된다. 이후 이 총합은 mod numb 보다 작은지 여부가 검사된다. 이들이 YES이면, rel-addr은 얻어진 총합과 같게 되어 세트된다. 즉, rel-addr=data addr+mod pointer
그러나, 이 조건이 만족되지 않을 때, 즉 총합이 이들보다 크고 또는 mod numb와 같게 될 때, rel-addr은 rel addr=data addr+mod pointer-mod numb 에 세트된다.
어느 경우에도 버퍼개시 어드레스 mod start에 대한 목적의 메모리 위치가 얻어진다. 최후에, 얻어진 결과에 mod·start를 가산하므로서 절대 데이터·메모리·어드레스 dmader가 얻어진다. 즉, dmaddr-rel addr+mod start 최초에, mod pointer는 mod pointer-mod numb-1에 세트되기 때문에 rel addr=data addr-1
기록된 어드레스는 data addr를 writer addr에 의하여 치환된 것을 제거하고, 같은 방식으로 계산된다.
FILTER 0, FILTER 1 및 FILTER 2의 계산은 다음과 같이 실행된다.
1) 입력신호 위치 X(n)에 기록된다.
2) FILTER 0은 다음과 같이 계산된다. 제1의 data addr은 filter-addr(0)+indrx에 세트된다. 단, index=3. X(n-3)에 대한 어드레스는 data addr용의 이 값을 이용하고 상기와 같이 계산된다. X(n-3)은 계수 a2에 의해 지시되고, 또한 승산되는 메모리셀로부터 페치(fetch)된다. 이후 인덱스, 이에 따른 data addr도 1에 의하여 감소한다. X(n-2)는 페치되고, 또는 a2에 의하여 승산된다. 이의 적(積)은 전에 얻어진 적에 가산된다. 대응하는 방법에 있어서, 인덱스는 0까지 감소되고, 따라서 FILTER 0에 있어서의 모든 변수는 한개씩 페치되어 가산된다. 그후 FILTER 0이 계산된다.
3) FILTER 1은 다음과 같이 계산된다. 첫째로, 재귀적인 좌부분이 data addr를 filter-addr(1)+index에 세트하므로서 계산된다. 단, index=2이다. 이것에 따라서, Y(n-2)는 b2를 지시하고 또한, 계산된다. 이후에, index, data addr도 1만이 감소된다. 얻어진 적은 FILTER 0에 의하여 얻어진 결과에 가산된다. 대응한 방법에 의하여 계수 b1에 의해 승산된 Y(n-1)은 또한 전에 얻어진 결과에 가산된다. 다음의 인덱스의 감산에 의하여 위치 X(n-3)/Y(n)의 어드레스가 얻어진다. 다음의 인덱스의 감산에 의하여 위치 X(n-3)/Y(n)의 어드레스가 얻어진다. 여기서, 얻어진 결과 Y(n)은 이 메모리 위치에 있어서의 전의 상태변수 X(n-3)에 중복기록된다. 이상, FILTER 1의 트랜스버설 기록부분을 계산하기 때문에 필요한 모든 상태변수 Y(n), Y(n-1) 및 Y(n-2)가 이용가능하게 된다. 이 계산은 FILTER 0의 계산과 같은 방법으로 행해진다. 상위한 것은 제1의 단계에 있어서 data addr를 계산하기 위한 filter-addr(1) 및 index=2를 이용하는 것이다.
4) FILTER 2는 FILTER 1의 재귀부분과 동일방법에 의하여 계산된다. 상위한 것은 filter-addr(2)를 data addr의 계산 때문에 이용되고, d1, d2를 계수로서 이용하는 것이다. 초기단계에 있어서 인덱스는 2와 같게 세트된다. 인덱스가 0에 도달할때는 결과 W(n)가 값 Y(n-2)에 중복기록된다.
이들 전체의 계산은 도 4(a)에 표시한 단계로 실행된다. 도 4(b)에서의 천이에 있어서, mod pointer을 1에 의하여 감소시키고, 또한 n을 1에 의하여 증가시키므로 X(n)은 X(n-1)이라고 하면, 아래와 같이 된다. 다음의 입력신호값은 X(n)에 의하여 표시되어 있는 위치에 기록된다. 그후, 상기 계산 사이클이 반복된다.
이와 같이 하여 도 4(a)~(h)의 각각에 대하여 mod pointer가 1단위만을 감소시킨다. 도 4(h)에 있어서 필터를 계산하고, mod-pointer을 갱신할때는 도 4(a)에 표시하는 위치에 대하여 되풀이 실행하고, 그후에 모든 처리절차가 반복된다.
이상에서 버퍼의 메모리 영역을 대단히 효과적으로 이용할 수 있다는 것이 명백하다. 특히, 버퍼를 모듈로(modulo) n에 의하여 어드레스 지정을 할 수 있다. 다만, n은 임의의 정의 정수이다. 이 방법은 많은 짧은 필터를 실행할 때에 특히 효과적이라는 것이 증명되었다.
이하, 도 5~도 7을 참조하여 어드레스·프로세서의 바람직한 실시예를 설명한다.
도 5에 의하면, 어드레스 프로세서를 논리적으로 상이한 3개의 부분으로 분할 할수 있다. 제1의 상부분에서는 버퍼정수를 격납한다. 제2의 중앙부분에서는 어드레스 계산을 실행한다. 최후의 제3의 하부분에서는 적당한 시점에서 메모리를 액세스하는 어드레스를 격납한다.
각 샘플링 주파수에 대하여, sample rate, 포인터, mod pointer를 격납한다. 바람직한 실시예에 있어서, 어드레스·프로세서는 레지스터·세트(S)를 구비하고, 이들에는 각 샘플링 주파수에 한 개씩, 각 버퍼용으로 mod pointer의 다른 4개의 값을 격납하는 4개의 레지스터를 포함한다. 바람직한 실시예에 있어서, 이들의 레지스터는 5비트 길이를 갖는다. 예를 들면, 반감산기를 지닌 감산회로(DEC)는 선택된 포인터를 감소시켜서 이들을 상기 설명에 따라 사용한 후에 대응하는 레지스터에 격납한다. 포인터가 값 0에 도달하면, 즉 버퍼의 폴딩(folding)이 적당할때는 이 레지스터에 정수가 로드(load)된다. 이 정수는 레지스터의 입력에 하드·와이어(hard·wire)에 의하여 결선되는 것도 좋다. 정수값은 mod numb-1이다. 단, mod numb-1은 버퍼의 길이다. mod pointer의 감산은, 신호 dec mod count가 하이(high)일 때 실행된다. 선택된 포인터는 감산하기 전에 또는 계산섹션에 로드되기전에 레지스터 mod reg에 로드된다. 메모리에 있어서, 버퍼의 크기의 정수 및 버퍼의 위치로 레지스터의 입력 하드·와이어에 의하여 결선된다. 신호 sample rete는 일정의 샘플링 주파수에 대응하는 정수를 선택하여 상이한 레지스터에 격납한다. 바람직한 실시예에 있어서, 각 레지스터는 각 샘플링 주파수에 한 개씩 4개의 입력(D1~D4)을 지닌다. 버퍼의 크기 정수 mod numb는 2의 보수값(補數値)으로, 즉 mod numb로 로드된다. 이 정수는 5비트 길이로 레지스터(mod numb reg)에 로드된다. 메모리에 있어서, 버퍼위치의 정수는 mod start로 6비트의 워드길이를 가진 레지스터(mod-stareg)에 로드된다.
계산섹션은 6비트 길이를 가진 A-reg 및 5비트 길이를 가진 B-reg의 2개의 레지스터와 6비트의 가산기, 예를 들면, 소위 캐리·부스트 가산기를 구비하고 있다. 단, 가산기의 최상위 비트는 반가산기의 셀이다.
어드레스 부분의 계산은 판독처리를 실행하는 것 또는 기록처리를 실행하는 것에 따라, data addr 또는 write addr를 B-reg에 로드하므로써 개시한다. A-reg는 입력(D2)에서 mod teg로부터의 mod pointer를 로드한다. 또는 입력(D1)에 0을 로드하고 있다. 레지스터 A-reg의 로드는 선택된 어드레스 지정 모드, 즉 모듈로 어드레스 지정 또는 절대 어드레스 지정에 따라 모듈로 불활성화 신호에 의하여 제어된다.
절대 어드레스 모드[mod dis는 하이(high)이다]에서는 0이 레지스터 A-reg로 로드되기 때문에 입력 어드레스, 데이터·어드레스 또는 기록 어드레스가 0에 가산된다. 이것은 계산단위를 절대 어드레스 지정에 관하여 트랜스퍼렌트(transparent)등으로 한다.
모듈로·모드에서는 A-reg에 로드된 모드·포인터가 B-reg에 로드된 어드레스, 즉 data addr 또는 write addr에 가산된다. 이 결과는 레지스터 B-reg의 입력 D3에 피드백된다.
레지스터 mod numb reg에 격납되어 있는 2의 보수값 즉, mod numb는 레지스터 A-reg에 전송되고 B-reg의 내용도 가산된다. 그 결과 부(負)가 아닐 때 그 결과가 B-reg에 격납된다. 그 결과가 부이면, 오래된 값이 다음처리에 따라서 레지스터 B-reg에 격납된다. 레지스터 mod numb reg에서는 mod numb의 2의 보수(補數), 즉 mod numb가 로드되어 있으며, 편집결과의 부호를 상기 결과의 최상위 비트로부터 판독할 수 있기 때문에 이 시험처리절차를 용이하게 한다. 선 +/-상의 해당 비트는 신호 CHSST 및 도 7의 IXZ와 동시에 레지스터 B-reg의 로드를 제어하고 있다.
다음의 단계에 있어서 레지스터(mod-sta reg)로부터 레지스터 A-reg에 전송된 정수 mod start는 레지스터 B-reg의 내용에 가산되고, 그 결과는 판독처리용으로 레지스터(REG) 또는 기록처리용으로 레지스터(WREG)에 격납된다. 이 결과는 판독 또는 기록용의 최종메모리·어드레스이다.
절대 어드레스를 지정을 사용하는 계수를 판독하기 때문에 계수 어드레스 coe addr는 레지스터(CAREG)에 직접 공급된다.
어드레스의 격납 및 메모리의 액세스 때문에 구비되어 있는 어드레스·프로세서의 저부는 5개의 6비트·레지스터를 구비하고 있다. 레지스터 RREG 및 WREG는 이미 설명했지만 입력 D1만을 갖는다. 레지스터(DAREG) 및 (CAREG)는 데이터·메모리·버스(DMADDRSST) 및 계수 메모리·데이터·버스 CHADDRSST에 각각 접속되어 있다. 제5레지스터(FBREG)는 사이클럭 형식(cyclic way)으로 판독어드레스 및 기록 어드레스를 격납한다. 이들의 어드레스 출력버스 CMADDRST 및 DMADDRSST로부터 대응하는 입력 D1 및 D2에 각각 피드백된다. 이 피드백 작동은 도 7에 PDMWSST 및 PCMWSST에 의해 제어된다.
피드백·어드레스 지정기구는 어드레스·프로세서가 교호로 기록 어드레스 및 판독 어드레스를 제공할때만 이용된다. 이것은 필터계산을 완료하고, 이 결과가 다음의 필터용으로 새로운 필터계산을 개시함과 동시에 메모리셀에 기록된다. 이 계산을 위하여 메모리로부터 데이타가 판독될때에 발생한다. 판독은 CHSST가 홀수일때에 실행된다. 도 6을 참조해야 한다(도 6 및 도 7에 있어서 R은 판독을 표시하고, W는 기록을 표시한다).
본 발명의 바람직한 실시예에 있어서, 8개의 채널은 사이클적인 판독/기록처리에 의하여 처리한다. 2개의 채널은 동시에 처리되기 때문에 최후의 판독/기록처리는 사이클(6) 및 (7)에 의하여 실행된다.
본 발명에 의한 어드레스·프로세서의 바람직한 실시예와 동작을 상세히 설명하기 위해서 어드레스·프로세서에 관한 아래의 신호정수와 텍사스 인스트루먼트(Texas Instruments)로부터의 시뮬레이션 언어 RTL에 따른 어드레스·프로세서의 이하의 시뮬레이션을 참조해야 할 것이다.
어드레스·프로세서의 신호정의
어드레스·프로세서에 대한 입력신호
"sst"로 끝난 신호 및 변수는 값이 「슬레이브」클럭위상에 「안정」하고, 「트루(True)」라는 것을 표시한다.
본 발명은 상세히 설명된 실시예에 한정되지 않고, 또한 해당 기술분야의 기술자에 의해 많은 변형이 실시가능하다는 것을 이해하여야 한다. 예를 들면, 최종의 샘플 X(n)을 부가적으로 한 레지스터에 격납하는 것이라면, 버퍼의 길이가 버퍼에 수용되어 있는 필터에 있어서의 지연요소의 총합이되도록 버퍼의 길이를 1만 감소시킬 수 있다. 또한, 채널의 번호, 각 채널에 있어서의 버퍼의 수, 상이한 레지스터용의 워드길이, 및 상이한 레지스터에 정수를 로드하는 방법은 아래의 청구범위에 기재된 본 발명의 구성으로부터 벗어나지 않고 변경될 수 있다.

Claims (9)

  1. 신호 프로세서용의 어드레스 프로세서에 있어서, 디지털 필터의 상태변수(X(n), X(n-1),...; Y(n),...; Y(n),...; W(n), W(n-1),...)를 격납하는 하나 이상의 순환버퍼를 포함하는 판독/기록 메모리에 있어서의 어드레스 계산을 위한 수단에 의해 특징되고, 하나 이상의 버퍼는 두 개 이상의 디지털·필터용의 상태변수를 포함하고, 상기 버퍼에 있어서의 상기 각 디지털 필터는 동일 샘플링 주파수(sample rate)에 대응하고, 상기 버퍼의 길이(mod numb)는 그 버퍼에 대응하는 상기 디지털 필터에 있어서의 지연요소의 총합이 의존하는 것에 있어서, 상기 수단은 (a) 상기 버퍼의 절대개시 어드레스(mod start)에 대응하는 각 순환버퍼용의 현재의 폴딩 어드레스(mod pointer)를 격납하는 일조(S)의 레지스터와, (b) (1) 현재의 폴딩 어드레스를 대응하는 버퍼의 개시 어드레스(mod start)에 상대하여 선택된 상태변수(X(n), X(n-1),...; Y(n),...; W(n), W(n-1),...)의 변위(data addr, write addr)에 가산하는 단계와, (2) 상기 총합이 해당버퍼의 길이를 초과하거나 같을때에는 단계(1)에 의해 얻어진 총합(data addr+mod pointer, writer addr+ mod pointer)을 상기 대응하는 버퍼의 길이(mod numb)에 의하여 가산하는 단계, 및 (3) 상기 버퍼개시 어드레스(mod start)를 단계(2)에 있어서 얻어진 결과에 가산하여 상기 선택된 상태변수의 절대 어드레스를 얻는 단계를 실행하는 계산유닛(+)을 구비한 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  2. 청구항 1에 있어서, 상기 버퍼의 길이(mod numb)는 각각의 버퍼 +1에 대응하는 상기 디지털 필터에 있어서의 지연요소의 총합에 의하여 형성된 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  3. 청구항 1 또는 청구항 2에 있어서, 상기 계산유닛(+)은 가산기에 의해 형성되고, 단계(2)에 있어서 가능한 감소는 상기 버퍼의 길이(-mod numb)에 2의 보수를 상기 단계(1)에 있어서의 상기 총합에 가산하므로써 실행되는 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  4. 청구항 3에 있어서, 상기 현재의 폴딩 어드레스(mod pointer), 상기 버퍼의 길이의 2의 보스(-mod numb) 및 버퍼개시 어드레스(mod start)를 서로 순차적으로 격납하는 제1의 레지스터(A reg)에 의하여 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  5. 청구항 4에 있어서, 대응하는 버퍼개시(mod start), 단계(1)에 있어서 얻어진 상기 총합 및 단계(2)에 있어서 얻어진 상기 결과에 상대하여, 서로 순차적으로 상기 선택된 상태변수(X(n), X(n-1),...; Y(n),...; W(n), W(n-1),...)의 변위(data addr, write addr)를 격납하는 제2의 레지스터(B, reg)를 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  6. 청구항 5에 있어서, 단계(2) 다음에, 상기 가산기(+)에 있어서의 최상위 비트를 부호비트로 이용하고, 단계(2)의 결과가 부일때에는 상기 2의 레지스터(Breg)에서 단계(1)에 있어서의 결과를 유지하고, 상기 결과가 부가 아닐때는 단계(1)에 있어서 얻어진 상기 제2의 레지스터에 있어서의 결과를 단계(2)의 결과에 따라 치환하는 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  7. 청구항 6에 있어서, 각 필터는 그의 필터의 상태변수(X(n), X(n-1),...; Y(n),...; W(n), W(n-1),...) 및 상기 대응하는 계수를 상기 필터에 있어서의 지연요소의 수와 같은 인덱스를 이용하므로써, 서로 순차적으로 페치(fetche)하여서 계산된 인덱스는 상기 개시위치에 가산되어 가장 오래된 상태변수 및 대응하는 계수를 얻음과 동시에 보다 새로운 상태변수를 얻기 위해 0까지 감산하는 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  8. 청구항 7에 있어서, 계산된 필터의 값을 전(前)의 필터에 있어서 가장 오래된 상태변수의 메모리 위치에 기록하므로써 해당 메모리 위치를 재사용하는 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
  9. 청구항 7에 있어서, 상기 일조(S)의 레지스터는 4개의 레지스터를 포함하는 것을 특징으로 하는 신호 프로세서용 어드레스 프로세서.
KR1019920701667A 1990-01-16 1990-12-05 신호프로세서용 어드레스 프로세서 KR970008186B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
SE9000155-3 1990-01-16
SE9000155A SE465393B (sv) 1990-01-16 1990-01-16 Adressprocessor foer en signalprocessor
PCT/SE1990/000805 WO1991010955A1 (en) 1990-01-16 1990-12-05 Address processor for a signal processor

Publications (1)

Publication Number Publication Date
KR970008186B1 true KR970008186B1 (ko) 1997-05-21

Family

ID=20378264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920701667A KR970008186B1 (ko) 1990-01-16 1990-12-05 신호프로세서용 어드레스 프로세서

Country Status (20)

Country Link
US (1) US5282275A (ko)
EP (1) EP0438991B1 (ko)
JP (1) JPH05506735A (ko)
KR (1) KR970008186B1 (ko)
CN (1) CN1022591C (ko)
AU (1) AU644848B2 (ko)
BR (1) BR9007978A (ko)
CA (1) CA2070668C (ko)
DE (1) DE69029796T2 (ko)
DK (1) DK0438991T3 (ko)
DZ (1) DZ1478A1 (ko)
ES (1) ES2096583T3 (ko)
FI (1) FI98326C (ko)
GR (1) GR3022380T3 (ko)
IE (1) IE77511B1 (ko)
NO (1) NO301951B1 (ko)
PT (1) PT96482B (ko)
SE (1) SE465393B (ko)
TN (1) TNSN91002A1 (ko)
WO (1) WO1991010955A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448706A (en) * 1992-05-13 1995-09-05 Sharp Microelectronics Technology, Inc. Address generator for multi-channel circular-buffer style processing
DE69325207T2 (de) * 1992-06-15 1999-12-09 Koninkl Philips Electronics Nv Prozessor zur Verarbeitung zeitdiskreter Signale
US5463749A (en) * 1993-01-13 1995-10-31 Dsp Semiconductors Ltd Simplified cyclical buffer
JPH07244649A (ja) * 1994-03-08 1995-09-19 Fujitsu Ltd 割込処理分散方式
FR2718262B1 (fr) * 1994-03-31 1996-05-24 Sgs Thomson Microelectronics Mémoire tampon à adressage modulo.
JP2820048B2 (ja) * 1995-01-18 1998-11-05 日本電気株式会社 画像処理システムとその記憶装置およびそのアクセス方法
US5764939A (en) * 1995-10-06 1998-06-09 Lsi Logic Corporation RISC processor having coprocessor for executing circular mask instruction
JPH11109911A (ja) * 1997-09-30 1999-04-23 Fuurie Kk 表示装置
GB2386485B (en) * 2002-03-12 2004-06-23 Toshiba Res Europ Ltd Modulo addressing apparatus and methods
US8117248B2 (en) 2005-02-28 2012-02-14 Hitachi Global Storage Technologies Netherlands B.V. Digital filter instruction and filter implementing the filter instruction
US8051090B2 (en) * 2007-12-28 2011-11-01 Realtek Semiconductor Corp. File management method of a ring buffer and related file management apparatus
US8219782B2 (en) * 2008-09-18 2012-07-10 Xilinx, Inc. Address generation
KR102244613B1 (ko) 2013-10-28 2021-04-26 삼성전자주식회사 Qmf 필터링 방법 및 이를 수행하는 장치
CN109408276A (zh) * 2018-10-25 2019-03-01 江苏华存电子科技有限公司 一种纠正码中规律交错器低延迟平行化架构位址绕线机制

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0042452B1 (en) * 1980-06-24 1984-03-14 International Business Machines Corporation Signal processor computing arrangement and method of operating said arrangement
SU1223346A1 (ru) * 1984-08-25 1986-04-07 Предприятие П/Я А-1811 Нерекурсивный цифровой фильтр
US4722067A (en) * 1985-03-25 1988-01-26 Motorola, Inc. Method and apparatus for implementing modulo arithmetic calculations
US4800524A (en) * 1985-12-20 1989-01-24 Analog Devices, Inc. Modulo address generator
US4908748A (en) * 1987-07-28 1990-03-13 Texas Instruments Incorporated Data processing device with parallel circular addressing hardware

Also Published As

Publication number Publication date
CN1022591C (zh) 1993-10-27
EP0438991B1 (en) 1997-01-22
EP0438991A1 (en) 1991-07-31
AU7188291A (en) 1991-08-05
CA2070668A1 (en) 1991-07-17
FI98326B (fi) 1997-02-14
DE69029796D1 (de) 1997-03-06
NO922568L (no) 1992-06-29
GR3022380T3 (en) 1997-04-30
JPH05506735A (ja) 1993-09-30
PT96482B (pt) 1998-07-31
FI923253A (fi) 1992-07-15
SE9000155D0 (sv) 1990-01-16
NO301951B1 (no) 1997-12-29
SE9000155L (sv) 1991-07-17
TNSN91002A1 (fr) 1992-10-25
BR9007978A (pt) 1992-12-01
AU644848B2 (en) 1993-12-23
ES2096583T3 (es) 1997-03-16
DE69029796T2 (de) 1997-05-07
CN1053693A (zh) 1991-08-07
DZ1478A1 (fr) 2004-09-13
FI98326C (fi) 1997-05-26
IE77511B1 (en) 1997-12-17
US5282275A (en) 1994-01-25
FI923253A0 (fi) 1992-07-15
CA2070668C (en) 1996-06-18
NO922568D0 (no) 1992-06-29
WO1991010955A1 (en) 1991-07-25
SE465393B (sv) 1991-09-02
IE910023A1 (en) 1991-07-17
PT96482A (pt) 1991-10-31
DK0438991T3 (da) 1997-02-10

Similar Documents

Publication Publication Date Title
KR970008186B1 (ko) 신호프로세서용 어드레스 프로세서
US4754421A (en) Multiple precision multiplication device
US5636150A (en) Data driven type digital filter unit and data driven type information processor including the same
US6714956B1 (en) Hardware accelerator for normal least-mean-square algorithm-based coefficient adaptation
EP0245922A2 (en) Memory management unit for digital signal processor
US4323980A (en) Digital filter for shared-time processing on several channels
JPH0412503B2 (ko)
US4802113A (en) Pipeline control system
JPH0476884A (ja) スタックメモリ
JPS6364100B2 (ko)
JPH082014B2 (ja) 多段デジタル・フィルタ
WO1986002181A1 (en) A digital signal processor for single cycle multiply/accumulation
US6658440B1 (en) Multi channel filtering device and method
JPS6211736B2 (ko)
JP3540179B2 (ja) フィルタ中の係数用の多重ポート・レジスタ・ファイル
KR100551458B1 (ko) 디지탈신호처리동작실행방법및디지탈신호처리기
JPS6361706B2 (ko)
JPH02264509A (ja) デジタルフィルタ
JPH0113764B2 (ko)
JPS63136710A (ja) デイジタル信号処理回路
JP3288074B2 (ja) アドレス生成回路
US5081606A (en) Cube root calculation apparatus
JPH0756805A (ja) メモリアクセス方法
JP2518387B2 (ja) シリアルデ―タ伝送回路
JP3033334B2 (ja) データ記憶装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee