[go: up one dir, main page]

KR20010075083A - Method and apparatus for accessing a complex vector located in a dsp memory - Google Patents

Method and apparatus for accessing a complex vector located in a dsp memory Download PDF

Info

Publication number
KR20010075083A
KR20010075083A KR1020017003242A KR20017003242A KR20010075083A KR 20010075083 A KR20010075083 A KR 20010075083A KR 1020017003242 A KR1020017003242 A KR 1020017003242A KR 20017003242 A KR20017003242 A KR 20017003242A KR 20010075083 A KR20010075083 A KR 20010075083A
Authority
KR
South Korea
Prior art keywords
fixed displacement
register
address
memory
processor
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020017003242A
Other languages
Korean (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 KR20010075083A publication Critical patent/KR20010075083A/en
Ceased legal-status Critical Current

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/35Indirect addressing
    • 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/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Abstract

디지털 신호 프로세서 메모리에서 복소 벡터 성분의 실수부와 허수부에 효율적으로 액세스하는 방법 및 장치는 새로운 프로세서 주소지정과 고정 변위 모드의 합체를 통해 구현된다. 부가적인 레지스터, 고정 변위 레지스터, 및 부가적인 제어 플래그, 고정 변위 구성 비트가 요구된다. 사용 방법은 단일 주소 레지스터만을 필요로 하며, 색인 주소지정에 사용되는 범용 오프셋 레지스터의 사용을 필요로 하지 않고, 오프셋 레지스터가 동시 사후 수정 및/또는 비트 반전에 사용되도록 한다. 공통 주소 공간을 공유하는 듀얼 메모리 공간은 요구되지 않으므로, 메모리 관리를 단순화하며, 본 방법 및 장치는 모든 주소지정과 호환될 수 있다.Methods and apparatus for efficiently accessing the real and imaginary parts of complex vector components in digital signal processor memory are realized through the combination of new processor addressing and fixed displacement modes. Additional registers, fixed displacement registers, and additional control flags, fixed displacement configuration bits are required. The usage requires only a single address register and does not require the use of a general purpose offset register used for index addressing, but allows the offset register to be used for simultaneous post-correction and / or bit inversion. Dual memory spaces that share a common address space are not required, which simplifies memory management, and the method and apparatus are compatible with all addressing.

Description

디에스피 메모리에 배치된 복소 벡터에 액세스하는 방법 및 장치{METHOD AND APPARATUS FOR ACCESSING A COMPLEX VECTOR LOCATED IN A DSP MEMORY}METHOD AND APPARATUS FOR ACCESSING A COMPLEX VECTOR LOCATED IN A DSP MEMORY}

도 1은 디지털 신호 프로세서와 같은 프로세서에 대한 전형적인 선행기술인 주소 발생 유닛(address generation unit; AGU, 102)을 나타낸다. 본원에서 용어 "프로세서"는 임의의 데이터 처리 장치를 나타내지만, 디지털 신호 프로세서에 국한되지 않는다. 일반적으로 AGU(102)는 메모리 데이터 액세스에 대한 레지스터 세트를 담고 있다. 전형적으로 각 레지스터 세트(110)는 3개의 레지스터를 포함한다:1 shows an address generation unit (AGU) 102 which is a typical prior art for a processor such as a digital signal processor. The term “processor” herein refers to any data processing device, but is not limited to digital signal processors. In general, AGU 102 contains a set of registers for memory data access. Typically each register set 110 includes three registers:

1. 주소 레지스터(포인터)(104), Rn으로 표시됨;1. an address register (pointer) 104, denoted by Rn;

2. 오프셋 레지스터(106), Nn으로 표시됨;2. Offset register 106, denoted by Nn;

3. 버퍼 길이 레지스터(108), Mn으로 표시됨3. Buffer Length Register 108, denoted by Mn

여기서, n=1...K는 세트 인덱스이고K는 프로세서 주소 발생 유닛 내의 존재하는 세트의 개수이다.Where n = 1 ... K is the set index and K is the number of sets present in the processor address generation unit.

본원에서의 용어 "어레이"는 프로세서 메모리 내의 임의의 복수 위치를 나타내므로 모든 개개의 위치는 고정 기반 주소(fixed base address)에 관련한 인덱스에 대하여 액세스될 수 있는데, 인덱스는 상수의 모든 배수이다. 본원에서의 용어 "벡터"는 이러한 어레이 내에 저장된 임의의 복수 데이터값을 나타내고, 용어 "성분(component)"은 이러한 벡터의 임의 데이터값을 나타낸다. 본원에서의 용어 "복소수"는 일반적인 수학적 의미로 "실수부"와 "허수부"로 이루어진 한쌍의 수를 포함하지만 이에 국한되지 않는 "제 1 부"와 제 2 부"로 표시되는 임의 쌍의 데이터값을 나타낸다. 본원에서의 용어 "복소 벡터"는 동일한 개수의 성분을 갖는 임의 쌍의 벡터를 나타낸다. 본원에서의 용어 "제 1 어레이"는 복소 벡터의 벡터 쌍의 제 1 부(또는 벡터)를 담고 있는 프로세서 메모리 내의 어레이를 나타내고, 용어 "제 2 어레이"는 복소 벡터의 벡터 쌍의 제 2 부(또는 벡터)를 담고 있는 프로세서 메모리 내의 어레이를 나타낸다. 복소 벡터는 일반적인 수학적 의미로 복소수의 벡터로 이루어질 수 있는데, 복소 벡터의 실수는 제 1 어레이에 저장되고 복소 벡터의 허수는 제 2 어레이에 저장된다. 변형적으로, 복소 벡터는 일반적인 수학적 의미로 복소수의 벡터로 이루어질 수 있는데, 복소 벡터의 실수는 제 2 어레이에 저장되고 복소 벡터의 허수는 제 1 어레이에 저장된다. 또 다른 변형으로서, 본 발명에 따른 복소 벡터는 일반적인 수학적 의미로 반드시 복소수를 나타내는 것은 아닌 임의 데이터값 중 2개 벡터로 이루어질 수 있다. 또한, 프로세서 메모리에 있어서의 "액세스"는 프로세서 메모리에서의 주소 발생을 나타내고, 프로세서 메모리로부터의 저장된 데이터값의 검색뿐만 아니라 프로세서 메모리에의 데이터값의저장에 관한 것이다.The term "array" herein refers to any of a plurality of locations in the processor memory so that every individual location can be accessed for an index relative to a fixed base address, where the index is all multiples of a constant. The term "vector" herein refers to any plurality of data values stored in such an array, and the term "component" refers to any data value of such a vector. The term "complex number" herein means any pair of data represented by "Part 1" and "Part 2" including, but not limited to, a pair of numbers consisting of "real part" and "imaginary part" in a general mathematical sense. The term “complex vector” herein refers to any pair of vectors having the same number of components The term “first array” herein refers to the first portion (or vector) of a vector pair of complex vectors. Refers to an array in the containing processor memory, and the term “second array” refers to an array in the processor memory containing the second portion (or vector) of a vector pair of complex vectors, the complex vector being a complex number in a general mathematical sense. Real numbers of complex vectors are stored in a first array and imaginary numbers of complex vectors are stored in a second array. It may consist of a vector of complex numbers, where the real number of the complex vector is stored in the second array and the imaginary number of the complex vector is stored in the first array In another variant, the complex vector according to the present invention inevitably represents a complex number in a general mathematical sense. It may consist of two vectors of arbitrary data values that are not represented, and " access " in processor memory indicates address generation in processor memory, and not only retrieves stored data values from processor memory, Storage of data values.

복소 벡터와 함께 작용하는 경우, 일반적으로 제 1 어레이 및 제 2 어레이는 프로세서 메모리 아키텍처에 따라 메모리 내의 서로 다른 주소에 또는 서로 다른 메모리 공간에 배치된다. 간접 주소지정 시에 복소 벡터에 액세스하기 위해 2개의 서로 다른 주소 레지스터, 즉 제 1 어레이용 주소 레지스터 및 제 2 어레이용 주소 레지스터가 요구된다. 이러한 방법의 한계는 주소 레지스터가 디지털 신호 프로세서 애플리케이션에서 매우 고가의 자원이라는 것이다. 제 1 어레이 및 제 2 어레이가 동일한 메모리에 배치되는 경우, 단일 주소 레지스터 및 오프셋 레지스터는 액세스에 사용될 수 있다. 이 방법은 주소 레지스터 자체가 제 1 어레이를 가리키고 오프세 레지스터가 제 1 어레이와 제 2 어레이 사이의 오프셋을 담고있는 경우에 사용될 수 있다. 이 경우에, 주소 레지스터(Rn)를 사용하여 간접 주소지정에 의해 제 1 어레이에 액세스하고, 주소 레지스터와 오프셋 레지스터(즉, Rn+Nn)를 사용하여 색인 간접 주소지정(indexed indirect addressing)에 의해 제 2 어레이에 액세스하는 것이 가능하다. 그렇지만, 비트-반전 및 순차-사후-수정(bit-reversal and post-modification-by-step) 주소지정 시에, 오프셋 레지스터가 사용되지만 색인 간접 주소지정에 사용될 수 없다. 따라서, 색인 간접 수소지정을 사용하는 경우, 2개의 주소 레지스터가 복소 벡터 액세스에 요구된다. 이러한 상황은 비트 반전 주소지정이 사용되는 FFT 알고리즘, 순차 사후 수정 주소지정이 사용되는 복소 신호의 십진화 등에서 발생한다. (기존 디지털 신호 프로세서 아키텍처의 분야 및 설명의 고찰은Buyer's Guide to DSP Processors, Berkeley Design TechnologyInc., 1995에서 찾을 수 있다).When working with complex vectors, the first and second arrays are typically placed at different addresses in memory or in different memory spaces, depending on the processor memory architecture. Two different address registers are required to access the complex vector in indirect addressing, namely the address register for the first array and the address register for the second array. The limitation of this approach is that the address register is a very expensive resource in digital signal processor applications. If the first array and the second array are placed in the same memory, a single address register and offset register can be used for access. This method can be used where the address register itself points to the first array and the offset register contains the offset between the first array and the second array. In this case, the first array is accessed by indirect addressing using an address register (Rn) and by indexed indirect addressing using an address register and an offset register (ie, Rn + Nn). It is possible to access the second array. However, in bit-reversal and post-modification-by-step addressing, an offset register is used but cannot be used for index indirect addressing. Thus, when using index indirect hydrogen specification, two address registers are required for complex vector access. This situation arises from the FFT algorithm using bit inversion addressing, the demultiplexing of complex signals using sequential post-correction addressing, and so on. (A review of the field and description of existing digital signal processor architectures can be found in Buyer's Guide to DSP Processors , Berkeley Design Technology Inc., 1995).

기존 디지털 신호 프로세서의 대부분은 이 메모리 액세스 문제를 해결하지 못하므로, 오프셋 레지스터가 사용되는 경우 복소 벡터에 액세스하는데 보통 2개의 서로 다른 주소 레지스터가 요구된다. Motorola DSP56xxx 프로세서 시리즈에 사용되는 한가지 기존 솔루션이 도 2에 도시되어 있다. 이 방법은 2개의 데이터 메모리, 즉 동일한 주소 공간(206)을 갖는 X 메모리(202)와 Y 메모리(204)를 사용한다. 또한 전용 어셈블리 언어 구문(도 2에 도시되지 않음) 및 주소 발생 유닛(도 1에 도시됨)이 요구된다. 이 아키텍처의 완전한 설명은DSP56000 24-Bit Digital Signal Processor Family Manual, Motorola, Inc.(텍사스주 오스틴시의 반도체 제품 부문, DSP Division)에 주어져 있는데, 이는 본원에서 완전히 설명되는 바와 같이 모든 목적을 위해 참고로 반영되어 있다. 이 선행기술의 솔루션에서, 주소 발생 아키텍처는 주소 레지스터(208)(R0)가 X 메모리(202) 및 Y 메모리(204)의 동일한 주소를 가리키는 정도의 것이다. 따라서, 메모리 공간은 다르지만 동일한 주소에서 복소 벡터용 제 1 어레이 및 제 2 어레이를 배치함으로써 주소 레지스터(208)(R0)의 사용을 가능하게 하여 제 1 어레이 및 제 2 어레이 모두를 동시에 액세스한다. 도 2에 도시된 바와 같이, 주소 레지스터(208)(R0)는 주소(0x0002)를 가리키지만 메모리 공간에 대한 특정한 관계는 없다. 특정 메모리 공간으로의 방향은 어셈블리 언어 연산 코드로 실행된다. 예를 들면 제 1 어레이가 X 메모리(202)에 배치되고 제 2 어레이가 Y 메모리(204)에 배치되는 경우, 그리고 제 1 어레이가 복소 벡터의 실수부를 저장하고 제 2 어레이가 복소 벡터의 허수부를 저장하는 경우, 주소(0x0002)의 실수부를 레지스터 A로 허수부를 레지스터 B로 이동시키는 것은 다음의 어셈블리 코드에 의해 실행된다:Most of the existing digital signal processors do not solve this memory access problem, so when the offset register is used, two different address registers are usually required to access the complex vector. One existing solution for the Motorola DSP56xxx processor series is shown in FIG. This method uses two data memories, namely X memory 202 and Y memory 204, having the same address space 206. Also required are dedicated assembly language syntax (not shown in FIG. 2) and an address generation unit (shown in FIG. 1). A complete description of this architecture is given in the DSP56000 24-Bit Digital Signal Processor Family Manual , Motorola, Inc. (DSP Division, Austin City, Texas), for all purposes as fully described herein. Is reflected. In this prior art solution, the address generation architecture is such that the address register 208 (R0) points to the same address of the X memory 202 and the Y memory 204. Thus, by placing the first and second arrays for complex vectors at the same address in different memory spaces, the use of address registers 208 (R0) is enabled to access both the first and second arrays simultaneously. As shown in FIG. 2, address register 208 (R0) points to address 0x0002 but has no specific relationship to memory space. Direction to a particular memory space is implemented by assembly language opcode. For example, if the first array is placed in X memory 202 and the second array is placed in Y memory 204, and the first array stores the real part of the complex vector and the second array is the imaginary part of the complex vector. When storing, moving the real part of address (0x0002) to register A and the imaginary part to register B are performed by the following assembly code:

move X: (R0), A;move X: (R0), A;

move Y: (R0), B;move Y: (R0), B;

이 솔루션은 2가지 단점이 있다: 첫째, (제 1 어레이와 제 2 어레이를 각각 가리키는)벡터의 2 부분은 메모리는 다르지만 동일한 주소에 배치되어야 한다. 이는 비효율적인 메모리 이용(메모리 내의 홀(hole))을 초래하고 필요한 경우 메모리 재배치를 이행하는 것을 어렵게 할 수 있다. 예를 들면, X 메모리(202) 내의 제 1 어레이를 재배치할 필요가 있는 경우, 동일한 주소에서 2개의 어레이를 유지하기 위해 Y 메모리(204) 내의 제 2 어레이를 또한 재배치할 필요가 있다.This solution has two drawbacks: First, two parts of the vector (indicating the first array and the second array respectively) must be located at the same address but with different memories. This can lead to inefficient memory usage (holes in the memory) and make it difficult to implement memory relocation if necessary. For example, if it is necessary to relocate the first array in X memory 202, it is also necessary to relocate the second array in Y memory 204 to maintain two arrays at the same address.

따라서, 단일 주소 레지스터만을 필요로 하고, 오프셋 레지스터의 사용을 필요로 하지 않으며, 단일 주소 공간을 공유하는 다중 메모리의 사용을 필요로 하지 않는 프로세서 메모리에서 복소 벡터에 액세스하는 효율적인 방법에 대한 필요성이 널리 인식되어 있으며, 또한 이러한 방법을 갖는 것이 매우 유리하다. 이러한 목표는 본 발명에 의해 충족된다.Thus, there is a widespread need for an efficient way to access complex vectors in processor memory that requires only a single address register, does not require the use of offset registers, and does not require the use of multiple memories that share a single address space. It is recognized and it is also very advantageous to have this method. This goal is met by the present invention.

본 발명은 프로세서 메모리 주소지정 및 메모리 주소 발생 방법에 관한 것으로, 보다 구체적으로 디지털 신호 프로세서(digital signal processor; DSP)에 저장된 복소 벡터에 액세스하는 방법에 관한 것이다.The present invention relates to a processor memory addressing method and a memory address generation method, and more particularly, to a method of accessing a complex vector stored in a digital signal processor (DSP).

본 발명은 첨부된 도면을 참조하여 일례를 통해서 설명된다.The invention is explained by way of example with reference to the accompanying drawings.

도 1은 선행 기술의 디지털 신호 프로세서용 대한 주소 발생 유닛을 나타내는 도면.1 illustrates an address generation unit for a prior art digital signal processor.

도 2는 선행기술의 디지털 프로세서의 메모리 구성을 나타내는 도면.2 is a diagram showing a memory configuration of a digital processor of the prior art.

도 3은 본 발명에 따른 디지털 신호 프로세서용 주소 발생 유닛의 새로운 특징을 나타내는 도면.3 shows a new feature of an address generation unit for a digital signal processor according to the invention;

도 4는 고정 변위 주소 발생에 대한 알고리즘의 플로차트.4 is a flowchart of the algorithm for fixed displacement address generation.

도 5는 메모리 상태의 일례를 나타내는 도면.5 shows an example of a memory state.

도 6은 2 데이터 메모리 공간 아키텍처를 나타내는 도면.6 illustrates a two data memory space architecture.

발명의 요약Summary of the Invention

본 발명은 임의의 주소지정시 단일 주소 레지스터(포인터)를 사용하여 프로세서 메모리에 배치된 복소 벡터에의 액세스 및 유효한 메모리 주소 발생을 위한 방법 및 장치에 관한 것이다. 이는 새로운 레지스터를 주소 발생 유닛에 합체하여이행되는데, 이 레지스터는 "고정 변위 레지스터"로 칭하고 Rf로 표시된다. 이 고정 변위 레지스터는 색인 간접 주소지정에만 사용되고, 이 주소지정시 메모리 오프셋을 제공한다. 이 방법에 의해 주소 발생 유닛을 재 프로그램하지 않고서 동일한 주소 레지스터로 2개의 서로 다른 어레이에의 액세스 및 순차적 사후 증가가 가능하다.The present invention relates to a method and apparatus for accessing a complex vector placed in processor memory and generating a valid memory address using a single address register (pointer) at any addressing. This is done by incorporating a new register into the address generating unit, which is referred to as a "fixed displacement register" and denoted by Rf. This fixed displacement register is used only for index indirect addressing and provides a memory offset at this addressing. This method allows access to two different arrays and sequential post-increment with the same address register without reprogramming the address generation unit.

따라서, 본 발명은 현재 알려진 구성 및 방법의 단점들을 성공적으로 해결한다. 첫째로, 본 발명은 임의 종류의 주소지정을 사용하여 하나의 주소 발생 유닛 레지스터 세트로 복소 벡터에 액세스하는 것을 가능하게 한다. 둘째로, 본 발명은 복소 벡터(예컨대, 제 1 어레이 및 제 2 어레이)의 실수부와 허부수의 메모리 할당, 메모리 공간, 및 주소에 대한 어떠한 제한도 두지 않는다.Thus, the present invention successfully addresses the shortcomings of the presently known configurations and methods. Firstly, the present invention makes it possible to access a complex vector with one addressing unit register set using any kind of addressing. Secondly, the present invention places no restrictions on the real and imaginary memory allocations, memory spaces, and addresses of complex vectors (e.g., the first array and the second array).

따라서, 본 발명에 따라, 프로세서에 의해 복소 벡터에 메모리 액세스하기 위한 주소를 계산하는 주소 발생 유닛으로서, (a) 주소 레지스터; (b) 오프셋 레지스터; (c) 색인 간접 주소지정 능력을 이행하는 수단; (d) 고정 변위 레지스터; (e) 이네이블 상태와 디스에이블 상태로 이루어진 그룹으로부터 선택 가능한 상태를 갖는 고정 변위 모드를 이행하는 수단; 및 (f) 고정 변위 모드의 상태를 나타내는 고정 변위 구성 비트를 포함하는 주소 발생 유닛이 제공된다.Thus, according to the present invention, an address generating unit for calculating an address for memory access to a complex vector by a processor, comprising: (a) an address register; (b) an offset register; (c) means for implementing the index indirect addressing capability; (d) fixed displacement resistors; (e) means for entering a fixed displacement mode having a selectable state from the group consisting of an enabled state and a disabled state; And (f) a fixed displacement configuration bit indicative of the state of the fixed displacement mode.

또한, 본 발명에 따라, 주소 레지스터, 고정 변위 레지스터 및 고정 변위 구성 비트를 갖는 프로세서에서 고정 변위 모드를 구현하는 방법으로서, 상기 프로세서는 색인 간접 주소지정을 포함하는 주소지정의 타입을 갖고, 현재 명령어를 실행하며, (a) 기반 주소를 주소 레지스터에 그리고 고정 변위를 고정 변위 레지스터에로딩하는 단계; (b) 색인 간접 주소지정을 위한 현재 명령어를 검사하는 단계; (c) 고정 변위 구성 비트를 검사하는 단계; 및 (d) 현재 명령어가 색인 간접 주소지정을 포함하고 고정 변위 비트가 설정되는 경우에만 상기 기반 주소와 고정 변위의 합과 동일한 메모리 주소를 발생하는 단계를 포함하는 고정 변위 모드 구현 방법이 또한 제공된다.Furthermore, in accordance with the present invention, a method of implementing a fixed displacement mode in a processor having an address register, a fixed displacement register, and a fixed displacement configuration bit, the processor having a type of addressing including index indirect addressing, and a current instruction (A) loading the base address into the address register and the fixed displacement into the fixed displacement register; (b) checking the current instruction for index indirect addressing; (c) checking the fixed displacement configuration bit; And (d) generating a memory address equal to the sum of the base address and the fixed displacement only if the current instruction includes index indirect addressing and the fixed displacement bit is set. .

본 발명에 따른 방법 및 장치의 원리와 동작은 첨부된 도면 및 설명을 참조하면 이해될 수 있다. 본 발명에 따른 장치의 주소 발생 유닛의 중요한 실시태양이 도 3에 도시되어 있다. 본 발명에 따른 디지털 신호 프로세서 또는 기타 다른 프로세서의 동작시에 실행되는 본 발명의 방법의 단계들이 도 4의 플로차트에 도시되어 있다. 이 단계들은 본 발명에 따른 새로운 프로세서 모드인 고정 변위 모드를 구현한다.The principle and operation of the method and apparatus according to the present invention can be understood with reference to the accompanying drawings and the description. An important embodiment of the address generation unit of the device according to the invention is shown in FIG. 3. The steps of the method of the present invention executed in operation of a digital signal processor or other processor according to the present invention are shown in the flowchart of FIG. These steps implement a fixed displacement mode, a new processor mode according to the present invention.

도 3에 도시된 바와 같이, 우선적으로 어떠한 부가적인 하드웨어 능력을 제공하는 것이 필수적이다. 특히, 프로세서는 주소 발생 유닛(302) 내에 Rf1로 표시된 고정 변위 레지스터(310)를 가져야 한다. 고정 변위 레지스터(310)는 주소 발생 유닛(302)의 기타 모든 레지스터와 같이 소프트웨어-프로그램 가능해야 한다. 또한 하나 이상의 고정 변위 레지스터를 사용하는 것이 가능하지만 필수적인 것은 아닌데, 여기서 부가적인 다중 고정 변위 레지스터(312, 314, 316)는 점선 윤곽으로 도시된 Rf2, Rf3, ..., R루으로 표시된다. 생략 부호(...)는 부가적인 변위 레지스터들이 합체될 수 있다는 것을 나타낸다. 레지스터 세트(322)는 Rn, Nn, Mn 및 Rf1을 포함한다. 본 발명은 프로세서가 색인 간접 주소지정 능력을 갖는 것을 필요로 하는데, 이 능력은 널리 공지된 임의의 수단을 통해서 구현될 수 있다. 고정 변위 레지스터(310)가 오프셋 레지스터(306)와 구별되는 것이 주목된다. 고정 변위 레지스터(310) 및 오프셋 레지스터(306)는 서로 다른 기능을 행하고 서로 독립적으로 사용된다.As shown in FIG. 3, it is essential to first provide some additional hardware capability. In particular, the processor should have a fixed displacement register 310, denoted Rf1, in the address generation unit 302. The fixed displacement register 310 must be software-programmable like all other registers of the address generation unit 302. It is also possible, but not necessary, to use one or more fixed displacement registers, where additional multiple fixed displacement registers 312, 314, 316 are represented by Rf2, Rf3, ..., Rru as shown by the dashed outline. Ellipses (...) indicate that additional displacement registers may be incorporated. Register set 322 includes Rn, Nn, Mn, and Rf1. The present invention requires the processor to have index indirect addressing capabilities, which can be implemented through any means well known. It is noted that the fixed displacement register 310 is distinguished from the offset register 306. The fixed displacement register 310 and the offset register 306 perform different functions and are used independently of each other.

또한, 프로세서가 본원에서 "고정 변위 모드"로 표현되는 새로운 모드를 갖는 것이 필수적이다. 고정 변위 모드는 이네이블 상태와 디스에이블 상태의 2가지 상태를 갖는데, 이는 고정 변위 구성 비트(320)를 제어 레지스터(318)에 합체하여 제어될 수 있다. 고정 변위 구성 비트는 제어 플래그(control flag)로 이용될 수 있다. 고정 변위 모드의 동작은 아래에 상술되는 바와 같이 본 발명에 따른 방법에서 설명된다. 제어 레지스터(318)는 수정 중에 있는 기존 프로세서 설계에서 기존 제어 레지스터일 수 있으며, 또는 새로운 제어 레지스터일 수 있다. 또한, 실행 중에 고정 변위 모드의 (아래의)단계들을 구현하는데 필수적인 하드웨어가 프로세서에 제공되는 것이 필수적이다. 아래의 단계들을 실행하기 위한 하드웨어 설비는 널리 공지된 다양한 기술을 통해 구현될 수 있다.It is also essential that the processor have a new mode, referred to herein as a "fixed displacement mode". The fixed displacement mode has two states, the enabled state and the disabled state, which can be controlled by incorporating the fixed displacement configuration bit 320 into the control register 318. The fixed displacement configuration bit may be used as a control flag. The operation of the fixed displacement mode is described in the method according to the invention as detailed below. Control register 318 may be an existing control register in an existing processor design being modified, or may be a new control register. It is also essential that the processor be provided with the hardware necessary to implement the steps of the fixed displacement mode (below) during execution. The hardware facility for performing the following steps can be implemented through a variety of well known techniques.

본 발명에 따른 메모리 주소 발생을 위한 고정 변위 모드를 구현하기 위해 프로세서에 의해 실행되는 방법의 단계들은 다음과 같고 도 4에 도시되어 있다.The steps of a method executed by a processor to implement a fixed displacement mode for memory address generation in accordance with the present invention are as follows and are shown in FIG.

1. 로딩 단계(402)에서 레지스터 세트(322)(도 3)를 주소 발생 유닛(302)(도 3)에 로딩한다. 이 단계는 기반 주소를 주소 레지스터(304)에, 주소 오프셋을 오프셋 레지스터(306)에, 버퍼 길이를 버퍼 길이 레지스터(308)에, 그리고 고정 변위를 고정 변위 레지스터(310)에 로딩한다.1. In the loading step 402, the register set 322 (FIG. 3) is loaded into the address generating unit 302 (FIG. 3). This step loads the base address into the address register 304, the address offset into the offset register 306, the buffer length into the buffer length register 308, and the fixed displacement into the fixed displacement register 310.

2. 현재 명령어가 결정 포인트(404)에서 색인 간접 주소지정을 사용하는지를 알기 위해 검사한다.2. Check to see if the current instruction uses index indirect addressing at decision point 404.

3. 색인 간접 주소지정이 사용도지 않는 경우, 널리 공지된 바와 같이 주소 발생 단계(408)에서 종래의 방식으로 주소를 발생한다.3. If index indirect addressing is not in use, then address generation step 408, as is well known, generates the address in a conventional manner.

4. 그렇지만, 색인 간접 주소지정이 사용되는 경우, 고정 변위 구성 비트(320)(도 3)가 결정 포인트(406)에서 설정되는지를 알기 위해 검사한다.4. However, if index indirect addressing is used, check to see if fixed displacement configuration bit 320 (FIG. 3) is set at decision point 406.

5. 고정 변위 구성 비트(320)가 설정되지 않는 경우, 고정 변위 모드는 디스에이블 상태에 있고, 주소 발생 유닛(302)은 메모리 주소 발생 단계(410)에서 종래의 방식으로 동작한다. 즉, 여기서 설명되는 새로운 특징들은 동작하지 않고 Rn레지스터(304)(도 3)의 값을 변경하지 않고서 주소(Rn+Nn)에의 액세스가 이루어진다. 고정 변위 구성 비트(320)가 소거되는 경우, 오프셋 레지스터 Nn(306)(도 3)는 모든 사후 수정 및 간접 색인 주소지정에 대한 소스이다.5. If the fixed displacement configuration bit 320 is not set, the fixed displacement mode is in the disabled state, and the address generating unit 302 operates in a conventional manner in the memory address generating step 410. That is, the new features described herein do not operate and access to the address Rn + Nn is made without changing the value of the Rn register 304 (FIG. 3). When the fixed displacement configuration bit 320 is cleared, the offset register Nn 306 (FIG. 3) is the source for all post modification and indirect indexing.

6. 그렇지만, 고정 변위 구성 비트(320)가 설정되면, 고정 변위 모드는 이네이블 상태에 있고, 모든 색인 간접 주소지정 메모리 주소 발생을 위한 오프셋 소스는 메모리 주소 발생 단계(412)에서 오프셋 레지스터 Nn(306)의 대신에 고정 변위 레지스터(310)(Rfn)이다. 발생된 주소는 고정 변위 레지스터(310)의 콘텐츠와 주소 레지스터(304)의 콘텐츠의 합이다. 주소(Rn+Rfn)에의 액섹스는 Rn 레지스터(304)(도 3)의 값을 변경하지 않고서 이루어진다.6. However, if the fixed displacement configuration bit 320 is set, the fixed displacement mode is enabled, and the offset source for all index indirect addressable memory address generation is generated by the offset register Nn (memory address generation step 412). In place of 306 is a fixed displacement register 310 (Rfn). The generated address is the sum of the contents of the fixed displacement register 310 and the contents of the address register 304. Access to the address Rn + Rfn is accomplished without changing the value of the Rn register 304 (FIG. 3).

본 발명에 따른 메모리 주소 발생 방법은 리턴 단계(414)에서 종료한다.The memory address generation method according to the present invention ends at return step 414.

고정 변위 구성 비트가 설정시 고정 변위 모드를 이네이블 상태에 놓고, 소거시 고정 변위 모드를 디스에이블 상태에 놓는 점에 있어서 고정 변위 구성 비트는 제어 플래그로 이용될 수 있다. 그렇지만, 고정 변위 모드는 현재 명령어가 색인 간접 주소지정을 사용하는 경우에만 활성된다. 현재 명령어가 색인 간접 주소지정이외의 다른 주소지정을 사용하는 경우, 고정 변위 모드는 이네이블 상태에 있는 경우에도 활성되지 않을 것이다. 널리 공지된 바와 같이, 직접 주소지정 및 사후 수정 주소지정을 포함하지만 이에 국한되지 않는 색인 간접 주소지정이외의 다른 주소지정 능력이 있다. 명령어 내에 다양한 타입의 어떠한 주소지정을 포함하는 것이 가능하다. 본원에서의 용어 "비색인 간접 주소지정(non-indexed indirect addressing)"은 색인 간접 주소지정을 수반하지 않는 이러한 임의의 주소지정을 나타낸다.The fixed displacement configuration bit may be used as a control flag at the point where the fixed displacement configuration bit sets the fixed displacement mode to the enabled state and the erase displacement configuration bit to the disabled state. However, fixed displacement mode is only active if the current instruction uses index indirect addressing. If the current instruction uses an address other than index indirect addressing, the fixed displacement mode will not be active even if it is in the enabled state. As is well known, there are other addressing capabilities other than index indirect addressing, including but not limited to direct addressing and post-modification addressing. It is possible to include any addressing of various types within a command. The term "non-indexed indirect addressing" herein refers to any such addressing that does not involve indexed indirect addressing.

어셈블리 구문이 메모리 주소 발생 명령어에서 고정 변위 레지스터(310)(Rf1)를 지원할 수 있지만 그럴 필요가 없다는 것이 주목된다. 본원에서 용어 "어셈블리 구문"은 결과적인 기계 명령어 구성뿐만 아니라 어셈블리어 구분을 나타낸다. 어셈블리 구문이 고정 변위 레지스터를 지원하는 경우, 어셈블리 구문은 이네이블 상태와 디스에이블 상태를 갖는 프로세서 모드로서보다는 오히려 개별 명령어에 대한 수식자로서 고정 변위를 활성화시킨다. 어셈블리 구문이 고정 변위 레지스터를 지원하지 않는 경우에, 오프셋 레지스터(306)(Nn)만으로 명령어를 한정하는 것이 충분한데, 이는 주소지정을 한정하기 때문이다. 하드웨어는 고정 변위 고정 변위 구성 비트(320)의 상태에 따른 메모리 주소 발생을 위해 자동적으로 오프셋 레지스터(306) 또는 고정 변위 레지스터(310)를 취한다. 서로 다른 메모리 어레이를 "제 1 어레이" 대 "제 2 어레이"로 칭하는 것은 임의적이고 이들 콘텐츠는 완전히 임의적이다.It is noted that the assembly syntax may support fixed displacement register 310 (Rf1) in the memory address generation instruction but need not be. The term "assembly syntax" herein refers to assembly language divisions as well as the resulting machine instruction constructs. If the assembly syntax supports fixed displacement registers, the assembly syntax activates the fixed displacement as a modifier for the individual instructions rather than as a processor mode with enable and disable states. If the assembly syntax does not support fixed displacement registers, it is sufficient to limit the instruction to only the offset register 306 (Nn), because it limits the addressing. The hardware automatically takes an offset register 306 or a fixed displacement register 310 for memory address generation depending on the state of the fixed displacement fixed displacement configuration bit 320. Calling different memory arrays “first array” versus “second array” is arbitrary and their contents are completely arbitrary.

본 발명에 따른 상기 방법이 프로세서가 복소 벡터의 두 부분 모두를 효율적으로 액세스할 수 있도록 하는 것이 쉽게 보여진다. 예를 들어, 주소 생성 유닛 및 메모리가 다음 상태라고 가정한다.It is readily seen that the method according to the invention allows the processor to efficiently access both parts of the complex vector. For example, assume that the address generation unit and the memory are in the following states.

R1 = 1000 (도 3에서의 주소 레지스터(304))R1 = 1000 (address register 304 in Figure 3)

N1 = 2 (도 3에서의 오프셋 레지스터(306))N1 = 2 (offset register 306 in Figure 3)

M1 = 선형 주소지정을 위해 프로그램됨(도 3에서의 버퍼 길이 레지스터(308) - 실제의 프로그래밍은 제조자에 따라 다름)M1 = programmed for linear addressing (buffer length register 308 in FIG. 3-actual programming depends on manufacturer)

Rf1 = 50 (도 3에서의 고정 변위 레지스터(310))Rf1 = 50 (fixed displacement register 310 in FIG. 3)

그리고 다음의 어셈블리(의사) 코드를 실행한다.Then execute the following assembly (pseudo) code:

Move (R1)+N1, A ;Move (R1) + N1, A;

Move (R1+N1), B ;Move (R1 + N1), B;

여기서 A와 B는 프로세서의 일반적인 레지스터들이다(주소 생성 유닛(302)의 레지스터가 아님). (R1)+N1은 사후 수정 주소지정으로, 메모리 액세스는 위치(R1)로, 그리고 메모리 액세스 후에 R1이 Ni만큼 증가된다는 것이 주목된다. 또한, (R1+N1)은 간접 색인된 주소지정으로, 메모리 액세스가 위치(R1+N1)로, 그리고 R1은 메모리 액세스 동안에 및 후에 변경되지 않는다는 것이 주목된다.Where A and B are the general registers of the processor (not the registers of address generation unit 302). Note that (R1) + N1 is post-modification addressing, memory access is at location R1, and R1 is increased by Ni after memory access. It is also noted that (R1 + N1) is indirectly indexed addressing, that the memory access is not changed to location R1 + N1, and R1 does not change during and after the memory access.

도 5는 고정 변위 구성 비트(320)의 두 개의 다른 값들에 대한 두 개의 시나리오들, 주소지정(504)을 갖는 메모리 영역(502)에 대한 상황을 설명한다. 도 5와 아래의 일례에서, 모든 데이터 값과 주소 위치들이 십진법으로 도시되어 있다. 두 개의 시나리오 모두 다음과 같은 상태에 있다.5 illustrates two scenarios for two different values of fixed displacement configuration bit 320, the situation for memory region 502 with addressing 504. In FIG. 5 and the example below, all data values and address locations are shown in decimal. Both scenarios are in the following states:

ㆍ주소 위치 1000부터 1049까지의 메모리에서의 영역이 제 1 어레이(508)로 지정되고, 주소 위치 1050부터의 메모리에서의 영역은 제 2 어레이(518)로 지정된다.The area in the memory from address positions 1000 to 1049 is designated as the first array 508, and the area in the memory from address position 1050 is designated as the second array 518.

ㆍ실행에 앞서, 1000과 같은, 주소 레지스터(R1)에 대한 초기값(506)이 있다. 다시 말하면, R1은 처음에 데이터 값 -348을 포함하는 주소 1000을 갖는 메모리에서 위치(512)를 가리킨다.Prior to execution, there is an initial value 506 for the address register R1, such as 1000. In other words, R1 initially points to location 512 in memory with address 1000 containing data value -348.

ㆍ첫번째 명령이 끝난 후에, 레지스터 A는 데이터 값 -348을 함유하고 주소레지스터 R1은 1002와 같다. 즉, R1은 데이터 값 4391을 포함하는 주소 1002를 갖는 메모리에서의 위치 514를 가리킨다.After the first instruction ends, register A contains the data value -348 and the address register R1 is equal to 1002. That is, R1 points to location 514 in memory with address 1002 containing data value 4391.

ㆍ실행이 완료되면, 1002와 같은, 주소 레지스터(R1)에 대한 최종값(510)이 있다. 이는 두 번째 명령이 색인 주소지정만을 포함하고, 그리고 색인 주소지정은 주소 레지스터의 값을 변화시키지 않기 때문이다.When execution is complete, there is a final value 510 for address register R1, such as 1002. This is because the second command contains only index addressing, and index addressing does not change the value of the address register.

두 번째 명령이 행해진 후의 레지스터 B의 내용은 상기 고정 변위 모드에 의존한다. 아래에, 고정 변위 모드의 설정과 소거의 두가지 경우가 기술된다:The content of register B after the second command is made depends on the fixed displacement mode. Below, two cases of setting and erasing the fixed displacement mode are described:

고정 변위 구성 비트가 설정되지 않은 경우Fixed displacement configuration bit is not set

이 시나리오에서는, 상기 고정 변위 구성 비트는 소거된다(설정되지 않는다). 결과적으로, 상기 고정 변위 모드는 사용 금지 상태에 있다. 메모리 주소 생성은 종래의 방법으로 행해지고, 상기 두 번째 명령이 실행된 후에는 레지스터 B가 제1어레이(518)내의 메모리 위치 514로부터 값 4391을 포함한다.In this scenario, the fixed displacement configuration bit is cleared (not set). As a result, the fixed displacement mode is in a disabled state. Memory address generation is done in a conventional manner, and after the second instruction is executed, register B includes the value 4391 from memory location 514 in the first array 518.

고정 변위 구성 비트가 설정된 경우Fixed displacement configuration bit is set

이 시나리오에서는, 상기 고정 변위 구성 비트가 설정된다. 결과적으로, 상기 고정 변위 모드는 활성 상태에 있다. 첫 번째 명령이 색인 간접 주소지정을 사용하지 않기 때문에, 첫 번째 명령에 대한 메모리 주소 생성이 종래의 방법으로 행해진다. 그러나, 두 번째 명령은 색인 간접 주소지정을 사용하고, 그리고 고정 변위 구성 비트가 설정되기 때문에(이리하여 상기 고정 변위 모드가 활성 상태가 된다), 메모리 주소 생성은 값 -819를 포함한 메모리 위치 516에 액세스하기 위해 메모리 탐색을 Rf1으로 오프셋한다. 그러므로, 이 시나리오에서 두 번째 명령이 행해진 후에는 레지스터 B가 제2어레이(520)내의 메모리 위치 516으로부터 데이터 값 -819를 포함한다.In this scenario, the fixed displacement configuration bit is set. As a result, the fixed displacement mode is in an active state. Since the first instruction does not use index indirect addressing, the memory address generation for the first instruction is done in a conventional manner. However, the second instruction uses index indirect addressing, and because the fixed displacement configuration bit is set (thus making the fixed displacement mode active), memory address generation is performed at memory location 516 containing the value -819. Offset memory search to Rf1 for access. Therefore, in this scenario, after the second command is issued, register B includes the data value -819 from memory location 516 in the second array 520.

따라서, 복소 벡터의 실수부 및 허수부 모두를 효율적으로 액세스하는 것이 가능하다. 예를 들면, 만약 실수부가 제 2 어레이(520)에 저장되어 있고 허수부가 제1어레이(518)에 저장되어 있다면, 처음에 고정 변위 구성 비트를 설정하고, 두 개의 상기 명령들을 실행한 후에는, 레지스터 A는 복소 벡터의 구성요소 중 하나인 허수부를 포함하고, 레지스터 B는 복소 벡터의 실수 부분을 포함한다.Therefore, it is possible to efficiently access both the real part and the imaginary part of the complex vector. For example, if the real part is stored in the second array 520 and the imaginary part is stored in the first array 518, after initially setting the fixed displacement configuration bit and executing the two above instructions, Register A contains an imaginary part, which is one of the components of the complex vector, and register B contains the real part of the complex vector.

상기 실시예에서, 본 발명에 따른 상기 방법은 단순한 메모리 아키텍처, 이름하여 단일 메모리 공간 아키텍처의 상황 하에서 제공되었다. 오늘날, 진보된 DSP 알고리즘은 더 복잡한 메모리 아키텍처들을 요구하고 따라서 현재의 디지털 신호 프로세서는 듀얼 메모리 공간 아키텍처를 가진다. 도 6은 제 1 및 제 2 어레이가 다른 메모리 공간에 위치한 복소 벡터에 대한 본 발명에 따른 방법의 일례를 설명한다. 주소들 606은 데이터 값의 내용들 608에 대응한다. 도 6과 아래의 일례에서, 모든 주소 위치들은 8진법으로 도시되어 있다.In this embodiment, the method according to the invention has been provided under the context of a simple memory architecture, namely a single memory space architecture. Today, advanced DSP algorithms require more complex memory architectures and thus current digital signal processors have a dual memory space architecture. Figure 6 illustrates an example of the method according to the invention for a complex vector where the first and second arrays are located in different memory spaces. Addresses 606 correspond to the contents 608 of the data value. In Figure 6 and the example below, all address locations are shown in octal.

본 발명에 따른 상기 방법을 듀얼 메모리 공간 아키텍처에 적용하기 위해, 메모리 배열이 연속적이어야 한다. 위치 0x0000에서 시작하는 제 1 어레이(610)에 대한 "X 메모리 주소 공간"으로 표시된 메모리 공간 602가 있고, 위치 0x8000에서 시작하는 제 2 어레이(612)에 대한 "Y 메모리 주소 공간"으로 표시된 메모리 공간(604)이 있다. 요구된 바와 같이, 이들 주소들은 도 6에 도시된 바와 같이 연속적이다. 이 일례에서 주소의 가장 중요한 비트(MSB)는 어느 메모리 공간이 사용중인지를 식별한다.In order to apply the method according to the invention to a dual memory space architecture, the memory arrangement must be contiguous. There is a memory space 602 marked as "X memory address space" for the first array 610 starting at position 0x0000 and a memory space marked as "Y memory address space" for the second array 612 starting at position 0x8000. There is 604. As required, these addresses are contiguous as shown in FIG. In this example, the most significant bit (MSB) of the address identifies which memory space is in use.

이 구성에서, 복소 벡터의 실수부의 기본 주소는, 예를 들면, X 공간(602)에 주소 0x0002에 위치할 수 있고, 허수부의 기본 주소는 Y 공간(604)에 주소 0x8008에 위치할 수 있다. 고정 변위 모드에서 작동하기 위해, 상기 고정 변위 레지스터(Rf)를 0x8006 (0x8008-0x0002)로 설정하고 제어 레지스터(318)(도 3)에 고정 변위 구성 비트(320)를 설정하는 것이 필요하다.In this configuration, the base address of the real part of the complex vector may be located, for example, at address 0x0002 in the X space 602 and the base address of the imaginary part may be located at the address 0x8008 in the Y space 604. In order to operate in the fixed displacement mode, it is necessary to set the fixed displacement register Rf to 0x8006 (0x8008-0x0002) and set the fixed displacement configuration bit 320 in the control register 318 (FIG. 3).

본 발명이 제한된 수의 실시예들에 대해 기술되었지만, 본 발명의 많은 변화, 변경 및 다른 응용이 행해질 수 있음이 이해될 것이다.Although the present invention has been described with respect to a limited number of embodiments, it will be understood that many variations, modifications and other applications of the invention may be made.

Claims (8)

프로세서에 의해 복소 벡터에 메모리 액세스하기 위한 주소를 계산하는 주소 발생 유닛으로서,An address generating unit for calculating an address for memory access to a complex vector by a processor, the address generating unit comprising: (a) 주소 레지스터;(a) an address register; (b) 색인 간접 주소지정 능력을 이행하는 수단;(b) means for implementing the index indirect addressing capability; (c) 이네이블 상태와 디스에이블 상태로 이루어진 그룹으로부터 선택 가능한 상태를 갖는 고정 변위 모드를 이행하는 수단; 및(c) means for entering a fixed displacement mode having a selectable state from the group consisting of an enable state and a disable state; And (d) 상기 고정 변위 모드의 상태를 나타내는 고정 변위 구성 비트(d) a fixed displacement configuration bit indicating the state of the fixed displacement mode 를 포함하는 주소 발생 유닛.Address generation unit comprising a. 제 1항에 있어서,The method of claim 1, 오프셋 레지스터를 더 포함하며, 상기 고정 변위 레지스터는 상기 오프셋 레지스터와 구별되는 주소 발생 유닛.And an offset register, wherein said fixed displacement register is distinct from said offset register. 고정 변위 수식자가 포함된 어셈블리 구문을 갖는 프로세서에 의해 복소 벡터에 메모리 액세스하기 위한 주소를 계산하는 주소 발생 유닛으로서,An address generation unit for computing an address for memory access to a complex vector by a processor having an assembly syntax that includes a fixed displacement modifier, (a) 주소 레지스터;(a) an address register; (b) 색인 간접 주소저정 능력을 이행하는 수단;(b) means for implementing the index indirect addressing capability; (c) 고정 변위 레지스터;(c) fixed displacement resistors; (d) 고정 변위를 이행하는 수단;(d) means for performing a fixed displacement; (e) 고정 변위 수식자를 검출하는 수단; 및(e) means for detecting a fixed displacement modifier; And (f) 상기 고정 변위 수식자의 검출시 상기 고정 변위를 활성화하는 수단(f) means for activating said fixed displacement upon detection of said fixed displacement modifier 을 포함하는 주소 발생 유닛.Address generation unit comprising a. 제 3항에 있어서,The method of claim 3, wherein 오프셋 레지스터를 더 포함하며, 상기 고정 변위 레지스터는 상기 오프셋 레지스터와 구별되는 주소 발생 유닛.And an offset register, wherein said fixed displacement register is distinct from said offset register. 프로세서에 의해 복소 벡터에 메모리 액세스하기 위한 주소를 계산하는 주소 발생 유닛의 개량 장치로서,An improved device for an address generating unit that calculates an address for memory accessing a complex vector by a processor, 상기 주소 발생 유닛은 주소 레지스터와 오프셋 레지스터를 포함하며,The address generating unit includes an address register and an offset register, (a) 이네이블 상태와 디스에이블 상태로 이루어진 그룹으로부터 선택 가능한 상태를 갖는 고정 변위 모드를 구현하는 수단;(a) means for implementing a fixed displacement mode having a selectable state from the group consisting of an enable state and a disable state; (b) 상기 고정 변위 모드를 이행하는 경우 주소 레지스터에 대한 오프셋이 담겨있는, 오프셋 레지스터와 구별되는 고정 변위 레지스터; 및(b) a fixed displacement register, distinct from an offset register, containing an offset to an address register when the fixed displacement mode is implemented; And (c) 상기 고정 변위 레지스터 모드의 상태를 나타내는 고정 변위 구성 비트(c) a fixed displacement configuration bit indicating the state of the fixed displacement register mode 를 포함하는 주소 발생 유닛의 개량 장치.Improved device of the address generation unit comprising a. 주소 레지스터, 고정 변위 레지스터 및 고정 변위 구성 비트를 갖는 프로세서에서 고정 변위 모드를 구현하는 방법으로서,A method of implementing a fixed displacement mode in a processor having an address register, a fixed displacement register, and a fixed displacement configuration bit, 상기 프로세서는 색인 간접 주소지정을 사용할 수 있는 명령어를 갖고, 현재 명령어를 실행하며,The processor has instructions that can use index indirect addressing, executes the current instructions, (a) 기반 주소를 주소 레지스터에 그리고 고정 변위를 고정 변위 레지스터에 로딩하는 단계;(a) loading the base address into the address register and the fixed displacement into the fixed displacement register; (b) 색인 간접 주소지정을 위한 현재 명령어를 검사하는 단계;(b) checking the current instruction for index indirect addressing; (c) 고정 변위 구성 비트를 검사하는 단계; 및(c) checking the fixed displacement configuration bit; And (d) 현재 명령어가 색인 간접 주소지정을 사용하고 고정 변위 비트가 설정되는 경우에만 상기 기반 주소와 고정 변위의 합과 동일한 메모리 주소를 발생하는 단계(d) generating a memory address equal to the sum of the base address and the fixed displacement only if the current instruction uses index indirect addressing and the fixed displacement bit is set. 를 포함하는 고정 변위 모드 구현 방법.Fixed displacement mode implementation method comprising a. 고정 변위 레지스터가 포함된 고정 변위 모드 및 주소 레지스터를 갖는 프로세서에 의해 복소 벡터의 성분에 액세스하는 방법으로서,A method of accessing a component of a complex vector by a processor having a fixed displacement mode and an address register with a fixed displacement register, the method comprising: 상기 성분은 기반 주소가 담긴 제 1 부를 갖고 또한 고정 변위에 의해 기반 주소로부터 오프셋된 제 2 부를 가지며, 상기 고정 변위 모드는 이네이블 상태와 디스에이블 상태로 이루어진 그룹으로부터 선택 가능한 상태를 갖고, 프로세서용 명령어는 색인 간접 주소지정 및 비색인 간접 주소지정으로 이루어진 그룹으로부터 선택 가능한 주소지정을 가지며,The component has a first part containing a base address and a second part offset from the base address by a fixed displacement, wherein the fixed displacement mode has a selectable state from a group consisting of an enable state and a disable state, and for a processor The instruction has a selectable addressing from the group consisting of index indirect addressing and non-index indirect addressing, (a) 기반 주소를 주소 레지스터에 로딩하는 단계;(a) loading the base address into an address register; (b) 고정 변위를 고정 변위 레지스터에 로딩하는 단계;(b) loading the fixed displacement into the fixed displacement register; (c) 고정 변위 모드에 대한 이네이블 상태를 선택하는 단계;(c) selecting an enable state for the fixed displacement mode; (d) 비색인 간접 주소지정을 갖는 명령어가 담긴 제 1부에 액세스하는 단계; 및(d) accessing a first portion containing instructions having non-indexed indirect addressing; And (e) 색인 간접 주소지정를 갖는 명령어가 담긴 제 2부에 액세스하는 단계(e) accessing part 2 containing instructions with index indirect addressing 를 포함하는 복소 벡터의 성분에의 액세스 방법.A method of accessing a component of a complex vector comprising a. 제 7항에 있어서,The method of claim 7, wherein 상기 프로세서는 설정 가능한 고정 변위 구성 비트 및 색인 간접 주소지정을 더 가지며, 상기 고정 변위 모드에 대한 이네이블 상태를 선택하는 단계는The processor further has a configurable fixed displacement configuration bit and index indirect addressing, and selecting an enabled state for the fixed displacement mode. i) 고정 변위 구성 비트를 설정하는 단계; 및i) setting a fixed displacement configuration bit; And ii) 색인 간접 주소지정을 사용하는 단계ii) using index indirect addressing 를 포함하는 복소 벡터의 성분에의 액세스 방법.A method of accessing a component of a complex vector comprising a.
KR1020017003242A 1998-09-14 1999-09-13 Method and apparatus for accessing a complex vector located in a dsp memory Ceased KR20010075083A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15210498A 1998-09-14 1998-09-14
US09/152,104 1998-09-14
PCT/EP1999/006764 WO2000016194A1 (en) 1998-09-14 1999-09-13 Method and apparatus for accessing a complex vector located in a dsp memory

Publications (1)

Publication Number Publication Date
KR20010075083A true KR20010075083A (en) 2001-08-09

Family

ID=22541518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017003242A Ceased KR20010075083A (en) 1998-09-14 1999-09-13 Method and apparatus for accessing a complex vector located in a dsp memory

Country Status (5)

Country Link
EP (1) EP1114367A1 (en)
JP (1) JP2002525708A (en)
KR (1) KR20010075083A (en)
CN (1) CN1126029C (en)
WO (1) WO2000016194A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800552B1 (en) * 2005-06-13 2008-02-04 재단법인서울대학교산학협력재단 Vector memory, processor having same and data processing method thereof

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011442A1 (en) * 2005-07-06 2007-01-11 Via Technologies, Inc. Systems and methods of providing indexed load and store operations in a dual-mode computer processing environment
US20070198815A1 (en) * 2005-08-11 2007-08-23 Coresonic Ab Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit
CN102629191B (en) * 2011-04-25 2014-07-30 中国电子科技集团公司第三十八研究所 Digital signal processor addressing method
GB2628590A (en) * 2023-03-29 2024-10-02 Advanced Risc Mach Ltd Technique for efficient multiplication of vectors of complex numbers

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4809156A (en) * 1984-03-19 1989-02-28 Trw Inc. Address generator circuit
US5357618A (en) * 1991-04-15 1994-10-18 International Business Machines Corporation Cache prefetch and bypass using stride registers
US5940876A (en) * 1997-04-02 1999-08-17 Advanced Micro Devices, Inc. Stride instruction for fetching data separated by a stride amount

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800552B1 (en) * 2005-06-13 2008-02-04 재단법인서울대학교산학협력재단 Vector memory, processor having same and data processing method thereof

Also Published As

Publication number Publication date
CN1126029C (en) 2003-10-29
EP1114367A1 (en) 2001-07-11
JP2002525708A (en) 2002-08-13
CN1318167A (en) 2001-10-17
WO2000016194A1 (en) 2000-03-23

Similar Documents

Publication Publication Date Title
US4777588A (en) General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
US5392408A (en) Address selective emulation routine pointer address mapping system
US6021476A (en) Data processing apparatus and method for controlling access to a memory having a plurality of memory locations for storing data values
US4384325A (en) Apparatus and method for searching a data base using variable search criteria
JP2776132B2 (en) Data processing system with static and dynamic masking of information in operands
US20040158691A1 (en) Loop handling for single instruction multiple datapath processor architectures
KR940009095B1 (en) Data processing system
EP0587587A1 (en) Storage protection utilizing public key control
US4241396A (en) Tagged pointer handling apparatus
US4491908A (en) Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
US3979725A (en) Multi-way program branching circuits
US6185673B1 (en) Apparatus and method for array bounds checking with a shadow register file
US3940744A (en) Self contained program loading apparatus
US5293591A (en) Processing system including memory selection of multiple memories and method in an interrupt environment
GB2302604A (en) Data memory allocation
CA2266259A1 (en) Variable length register device
KR20010075083A (en) Method and apparatus for accessing a complex vector located in a dsp memory
US5572700A (en) Cache access controller and method for permitting caching of information in selected cache lines
EP0227900B1 (en) Three address instruction data processing apparatus
US5664169A (en) Microprogrammable processor capable of accessing unused portions of control store as fast data memory
US5179681A (en) Method and apparatus for current window cache with switchable address and out cache registers
US6665770B2 (en) Device and method for updating a pointer value by switching between pointer values
US5450587A (en) Expanded memory addressing scheme
US6421825B2 (en) Register control apparatus and method thereof for allocating memory based on a count value
US6889306B1 (en) Microprocessor and program modification method in the microprocessor

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20010313

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20020205

Comment text: Request for Examination of Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20040426

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20040706

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20040426

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I