KR100434502B1 - DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치 - Google Patents

DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치 Download PDF

Info

Publication number
KR100434502B1
KR100434502B1 KR10-2002-0025133A KR20020025133A KR100434502B1 KR 100434502 B1 KR100434502 B1 KR 100434502B1 KR 20020025133 A KR20020025133 A KR 20020025133A KR 100434502 B1 KR100434502 B1 KR 100434502B1
Authority
KR
South Korea
Prior art keywords
value
data
position value
modulo
flag signal
Prior art date
Application number
KR10-2002-0025133A
Other languages
English (en)
Other versions
KR20030087176A (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 삼성전자주식회사
Priority to KR10-2002-0025133A priority Critical patent/KR100434502B1/ko
Priority to US10/388,146 priority patent/US6950922B2/en
Priority to GB0307255A priority patent/GB2390187B/en
Priority to JP2003117662A priority patent/JP4154276B2/ja
Publication of KR20030087176A publication Critical patent/KR20030087176A/ko
Application granted granted Critical
Publication of KR100434502B1 publication Critical patent/KR100434502B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • G06F9/30043LOAD or STORE instructions; Clear instruction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 DSP(Digital Signal Processor)의 데이터 추출/삽입 방법 및 데이터 추출/삽입 장치에 관한 것이다. 상기 기술적 과제를 달성하기 위한 본 발명에 따른 데이터 추출 또는 삽입 방법은, 소스 레지스터 및 목적 레지스터를 구비하고, 데이터 추출의 기준 위치를 나타내는 포지션 값과 추출할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 추출하거나 삽입하기 위한 DSP(Digital Signal Processor)의 데이터 추출 또는 삽입 방법이다.
본 발명에 따른 데이터 추출/삽입 방법 및 데이터 추출 및 삽입 장치는 데이터 패킷의 크기가 바이트(byte)나 워드(word) 단위가 아니며 연속적으로 데이터 패킷을 추출하거나 삽입해야 하는 경우, 데이터 패킷(packet)의 연속적인 추출 및 삽입을 효율적으로 하여 메모리를 절약할 수 있는 장점이 있다.

Description

DSP(Digital Signal Processor)의 데이터 추출/삽입 방법 및 데이터 추출/삽입 장치{Data extraction/insertion method for digital signal processor and device thereof}
본 발명은 DSP(Digital Signal Processor)에 관한 것으로서, 특히 데이터 패킷의 추출 및 삽입 동작시, 크기가 바이트(byte)나 워드(word) 단위가 아닌 경우의 데이터 패킷(packet)의 연속적인 추출 및 삽입을 효율적으로 하여 메모리를 절약할 수 있는 데이터 추출/삽입 방법 및 장치에 관한 것이다.
일반적으로 패킷 단위의 통신 데이터 등의 처리를 위하여 최근의 DSP(Digital Signal Processor ; 이하 DSP라고 한다.)는 데이터의 추출(extraction), 삽입(insertion) 연산을 수행할 수 있다.
도 1은 DSP의 데이터 추출 및 삽입 동작의 개념을 설명하는 도면이다.
도 1 (a)는 데이터 추출을 설명하는 도면이다.
데이터 추출은 소스 레지스터(S_REG)로부터 일정한 크기의 데이터를 추출하여 목적 레지스터(D_REG)로 저장하는 것이다. 즉, 데이터 추출의 기준 위치를 나타내는 포지션 값(POS)과 추출할 데이터의 크기를 나타내는 오프셋 값(WTH)을 이용하여, 소스 레지스터(S_REG)로부터 일정한 크기의 데이터를 추출하여 목적 레지스터(D_REG)로 저장한다.
포지션 값(POS)에 의하여 소스 레지스터(S_REG)의 특정 위치에서부터 오프셋 값(WTH)에 해당하는 특정한 크기만큼의 데이터를 추출한다.
도 1 (b)는 데이터 삽입을 설명하는 도면이다.
데이터 삽입은 소스 레지스터(S_REG)의 일정한 크기의 데이터를 목적 레지스터(D_REG)의 일정한 위치에 삽입하는 것이다. 즉, 데이터 삽입의 기준 위치를 나타내는 포지션 값(WTH)에 의하여 목적 레지스터(D_REG)의 특정 위치가 지정된다.
그리고 삽입할 데이터의 크기를 나타내는 오프셋 값(WTH)을 이용하여 포지션 값(POS)에 의하여 지정된 목적 레지스터(D_REG)의 특정 위치로부터 오프셋 값(WTH)에 대응하는 일정한 크기만큼의 데이터를 목적 레지스터(D_REG)에 삽입한다.
그런데, 이와 같은 데이터의 추출이나 삽입은 데이터 패킷의 크기가 바이트나 워드 단위가 아니고, 연속하여 데이터를 추출하거나 삽입해야 하는 경우에는 데이터가 저장되는 메모리를 효율적으로 이용하지 못하고 낭비하게 되는 문제가 있다. 왜냐하면 데이터는 바이트 단위나 워드 단위로 메모리에 정렬되어야 하는데 데이터 패킷이 바이트 단위나 워드 단위가 아니므로 데이터를 메모리에 빈 공간이 존재하지 않도록 효율적으로 저장할 수 없기 때문이다.
본 발명이 이루고자하는 기술적 과제는, 크기가 바이트(byte)나 워드(word) 단위가 아닌 경우의 데이터 패킷(packet)의 연속적인 추출 및 삽입을 효율적으로 하여 메모리를 절약할 수 있는 데이터 추출/삽입 방법을 제공하는데 있다.
본 발명이 이루고자하는 다른 기술적 과제는, 크기가 바이트(byte)나 워드(word) 단위가 아닌 경우의 데이터 패킷(packet)의 연속적인 추출 및 삽입을 효율적으로 하여 메모리를 절약할 수 있는 데이터 추출/삽입 장치를 제공하는데 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 DSP의 데이터 추출 및 삽입 동작의 개념을 설명하는 도면이다.
도 2는 본 발명의 제 2 실시예에 따른 데이터 추출 방법을 나타내는 플로우 차트이다.
도 3은 도 2의 데이터 추출 방법의 개념을 설명하는 도면이다.
도 4는 본 발명의 제 2 실시예에 따른 데이터 삽입 방법을 나타내는 플로우 차트이다.
도 5는 도 4의 데이터 삽입 방법의 개념을 설명하는 도면이다.
도 6은 본 발명의 제 1 실시예에 따른 데이터 추출 및 삽입 장치를 나타내는 블록도이다.
상기 기술적 과제를 달성하기 위한 본 발명의 제 1 실시예에 따른 데이터 추출 방법은, 소스 레지스터 및 목적 레지스터를 구비하고, 데이터 추출의 기준 위치를 나타내는 포지션 값과 추출할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 추출하기 위한 DSP(Digital Signal Processor)의 데이터 추출 방법에 있어서, (a) N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장되어 있는 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하고 제 M+1 번째 메모리 블록에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프 (half) 비트에 저장하는 단계, (b)상기 소스 레지스터의 상기 포지션 값에 대응되는 위치로부터 상기 오프셋 값에 대응되는 크기의 데이터를 추출하여 상기 목적 레지스터에 저장하고, 상기 포지션 값과 상기 오프셋 값을 더하여 새로운 포지션 값으로 설정하는 단계, (c)상기 새로운 포지션 값이 소정의 모듈로 값보다 큰지 작은지를 판단하여 상기 포지션 값이 상기 모듈로 값보다 작으면 플래그 신호를 제 1 논리 레벨로, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생하는 단계, (d)상기 플래그 신호가 제 1 논리 레벨이면 상기 새로운 포지션 값을 이용하여 상기 (b) 단계 및 (C) 단계의 동작을 반복하고, 상기 플래그 신호가 제 2 논리 레벨이면 상기 소스 레지스터의 하위 해프(half) 비트의 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하는 단계, (e)제 2 논리 레벨을 가지는 상기 플래그 신호에 응답하여 상기 메모리의 제 M+2 번째 메모리 블럭에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프(half) 비트에 저장하고, 상기 새로운 포지션 값에서 상기 모듈로 값을 뺀 값을 다음 포지션 값으로 설정하고 상기 (b) 단계로 돌아가는 단계를 구비하는 것을 특징으로 한다.
상기 소스 레지스터 및 상기 목적 레지스터는 2N 비트의 사이즈를 가지며, 상기 모듈로 값은 N 인 것을 특징으로 한다.
상기 기술적 과제를 달성하기 위한 본 발명의 제 2 실시예에 따른 데이터 삽입 방법은, 소스 레지스터 및 목적 레지스터를 구비하고, 데이터가 삽입될 기준 위치를 나타내는 포지션 값과 삽입할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 삽입하기 위한 DSP(Digital Signal Processor)의 데이터 삽입 방법에 있어서, (a)상기 소스 레지스터의 데이터중 상기 오프셋 값의 크기를 가지는 데이터를 상기 목적 레지스터의 상기 포지션 값에 대응되는 위치에 삽입하여 상기 목적 레지스터에 저장하고, 상기 포지션 값과 상기 오프셋 값을 더하여 새로운 포지션 값으로 설정하는 단계, (b) 상기 새로운 포지션 값이 소정의 모듈로 값보다 큰지 작은지를 판단하여 상기 포지션 값이 상기 모듈로 값보다 작으면 플래그 신호를 제 1 논리 레벨로, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생하는 단계, (c)상기 플래그 신호가 제 1 논리 레벨이면 상기 새로운 포지션 값을 이용하여 상기 (a) 단계 및 (b) 단계의 동작을 반복하고, 상기 플래그 신호가 제 2 논리 레벨이면 상기 목적 레지스터의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장하는 단계, (d)제 2 논리 레벨을 가지는 상기 플래그 신호에 응답하여 상기 목적 레지스터의 하위 해프(half) 비트의 데이터를 상기 목적 레지스터의 상위 해프 (half) 비트에 저장하고 상기 새로운 포지션 값에서 상기 모듈로 값을 뺀 값을 다음 포지션 값으로 설정하고 상기 (a) 단계로 돌아가는 단계를 구비하는 것을 특징으로 한다. 상기 소스 레지스터 및 상기 목적 레지스터는 2N 비트의 사이즈를 가지며, 상기 모듈로 값은 N 인 것을 특징으로 한다.
상기 다른 기술적 과제를 달성하기 위한 본 발명의 제 1 실시예에 따른 데이터 추출 및 삽입 장치는, 디지털 시그널 프로세서(DSP :Digital Signal Processor)에 있어서, 데이터 추출 및 삽입부, 포지션 값 발생부 및 플래그 신호 발생부를 구비하는 것을 특징으로 한다.
데이터 추출 및 삽입부는 소정의 프리 포지션 값과 추출할 데이터의 크기를 나타내는 오프셋 값을 수신하고 소정의 플래그 신호의 제 1 논리 레벨에 응답하여 소스 레지스터로부터 목적 레지스터로 데이터를 추출하거나 데이터를 삽입하고, 상기 플래그 신호의 제 2 논리 레벨에 응답하여 상기 소스 레지스터나 상기 목적 레지스터에 메모리로부터 데이터를 수신하여 저장하거나 상기 메모리로 데이터를 저장한다.
포지션 값 발생부는 외부에서 입력되는 프리 포지션 값과 외부에서 입력되는 상기 오프셋 값을 더하여 상기 포지션 값을 발생한다.
플래그 신호 발생부는 상기 포지션 값을 수신하고 소정의 모듈로 값과 비교하여 상기 포지션 값이 상기 모듈로 값보다 작으면 상기 포지션 값을 상기 프리 포지션 값으로 발생하고, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 포지션 값에서 상기 모듈로 값을 뺀 값을 상기 프리 포지션 값으로 발생하며, 상기 포지션값과 상기 모듈로 값의 비교 결과에 따라 상기 플래그 신호를 발생한다.
상기 포지션 값 발생부는 상기 프리 포지션 값을 저장하는 프리 포지션 값 저장부, 외부에서 입력되는 오프셋 값을 저장하는 오프셋 값 저장부, 상기 프리 포지션 값 저장부의 출력과 상기 오프셋 값 저장부의 출력을 더하여 상기 포지션 값을 발생하는 가산부를 구비하는 것을 특징으로 한다.
상기 플래그 신호 발생부는 상기 모듈로 값을 저장하는 모듈로 값 저장부, 상기 포지션 값과 상기 모듈로 값 저장부에서 출력되는 상기 모듈로 값의 크기를 비교하여 상기 포지션 값이 상기 모듈로 값보다 작은 경우에는 상기 포지션 값을 소정의 선택부로 출력하고, 상기 포지션 값이 상기 모듈로 값보다 큰 경우에는 상기 포지션 값을 소정의 감산부로 출력하며, 상기 포지션 값과 상기 모듈로 값의 크기를 비교한 결과에 따라 상기 플래그 신호를 발생하는 비교부, 상기 포지션 값 및 상기 모듈로 값을 수신하고 상기 포지션 값에서 모듈로 값을 빼는 연산을 하는 상기 감산부, 상기 플래그 신호에 응답하여 상기 비교부에서 출력되는 상기 포지션 값과 상기 감산부의 출력중 하나를 선택하여 상기 프리 포지션 값으로 출력하는 선택부를 구비하는 것을 특징으로 한다.
상기 비교부는 상기 포지션 값이 상기 모듈로 값보다 작으면 상기 플래그 신호를 제 1 논리 레벨로 발생하고, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생한다.
상기 선택부는 상기 플래그 신호가 제 1 논리 레벨이면 상기 비교부에서 출력되는 상기 포지션 값을 선택하여 출력하고, 상기 플래그 신호가 제 2 논리 레벨이면 상기 감산부의 출력을 선택하여 출력하는 것을 특징으로 한다.
상기 데이터 추출 및 삽입부는, 데이터 추출 동작의 경우 상기 플래그 신호의 제 1 논리 레벨에 응답하여 상기 소스 레지스터의 데이터 중 상기 오프셋 값의 크기를 가지는 데이터를 상기 목적 레지스터의 상기 프리 포지션 값에 대응되는 위치에 삽입하여 상기 목적 레지스터에 저장하고, 상기 플래그 신호의 제 2 논리 레벨에 응답하여 상기 소스 레지스터의 하위 해프(half) 비트의 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하고, N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 M (M은 자연수)번째 메모리 블럭에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프(half) 비트에 저장하는 것을 특징으로 한다.
상기 데이터 추출 및 삽입부는, 데이터 삽입 동작의 경우 상기 플래그 신호의 제 1 논리 레벨에 응답하여 상기 목적 레지스터의 상기 프리 포지션 값에 대응되는 위치에 상기 오프셋 값에 대응되는 크기의 데이터를 삽입하고, 상기 플래그 신호의 제 2 논리 레벨에 응답하여 상기 목적 레지스터의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장하고, 상기 목적 레지스터의 하위 해프(half) 비트의 데이터를 상기 목적 레지스터의 상위 해프 (half) 비트에 저장하는 것을 특징으로 한다.
상기 소스 레지스터 및 상기 목적 레지스터는 2N 비트의 사이즈를 가지는 것을 특징으로 한다. 상기 모듈로 값은 N 인 것을 특징으로 한다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 제 2 실시예에 따른 데이터 추출 방법을 나타내는 플로우 차트이다.
도 3은 도 2의 데이터 추출 방법의 개념을 설명하는 도면이다.
도 2를 참조하면, 본 발명의 제 1 실시예에 따른 데이터 추출 방법은(200) 소스 레지스터 및 목적 레지스터를 구비하고, 데이터 추출의 기준 위치를 나타내는 포지션 값과 추출할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 추출하기 위한 DSP(Digital Signal Processor)의 데이터 추출 방법이다.
좀더 설명하면, 데이터 추출 방법(200)은 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장되어 있는 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하고 제 M+1 번째 메모리 블록에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프 (half) 비트에 저장한다(210 단계).
상기 소스 레지스터의 상기 포지션 값에 대응되는 위치로부터 상기 오프셋값에 대응되는 크기의 데이터를 추출하여 상기 목적 레지스터에 저장하고, 상기 포지션 값과 상기 오프셋 값을 더하여 새로운 포지션 값으로 설정한다(220 단계).
상기 새로운 포지션 값이 소정의 모듈로 값보다 큰지 작은지를 판단하여 상기 포지션 값이 상기 모듈로 값보다 작으면 플래그 신호를 제 1 논리 레벨로, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생한다(230 단계).
상기 플래그 신호가 제 1 논리 레벨이면 상기 새로운 포지션 값을 이용하여 상기 220 단계 및 230 단계의 동작을 반복하고(240 단계), 상기 플래그 신호가 제 2 논리 레벨이면 상기 소스 레지스터의 하위 해프(half) 비트의 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장한다(250, 260 단계).
제 2 논리 레벨을 가지는 상기 플래그 신호에 응답하여 상기 메모리의 제 M+2 번째 메모리 블럭에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프(half) 비트에 저장하고, 상기 새로운 포지션 값에서 상기 모듈로 값을 뺀 값을 다음 포지션 값으로 설정하고 상기 220 단계로 돌아간다(270 단계).
상기 소스 레지스터 및 상기 목적 레지스터는 2N 비트의 사이즈를 가지며, 상기 모듈로 값은 N 인 것을 특징으로 한다.
이하 도 2 및 도 3을 참조하여 본 발명의 제 1 실시예에 따른 데이터 추출 방법이 상세히 설명된다.
도 3에는 소스 레지스터(S_REG(1), S_REG(2))가 2개, 목적 레지스터(D_REG(1), D_REG(2))가 2개 나타나 있다. 소스 레지스터(S_REG(1))와 소스 레지스터(S_REG(2))는 동일한 레지스터이다. 즉, 후술되는 소스 레지스터(S_REG(1))의 하위 해프 비트의 데이터가 동일한 소스 레지스터(S_REG(1))의 상위 해프 비트로 카피되는 동작을 설명하기 위하여 2개로 나누어 표시한 것일 뿐이다. 목적 레지스터(D_REG(1))와 목적 레지스터(D_REG(2))도 마찬가지로 동일한 레지스터이다.
메모리는 보통 N 비트의 사이즈를 가진다. 여기서 N은 자연수이다. 일반적으로 메모리는 16 비트나 32 비트의 사이즈를 가진다. 보통 하나의 데이터 패킷의 사이즈는 바이트나 워드 단위이다. 따라서 바이트나 워드의 사이즈를 가지는 데이터 패킷은 메모리에서 레지스터로 이동될 경우 데이터 패킷이 분할되지 않고 이동될 수 있다.
그러나 데이터 패킷의 사이즈가 바이트나 워드 단위가 아니고 처리되어야 할 데이터 패킷이 연속적인 경우, 바이트나 워드 사이즈를 가지지 않는 데이터 패킷은 메모리에서 레지스터로 이동되는 경우 데이터 패킷이 분할되는 문제가 있다.
또한 레지스터에서 메모리로 데이터 패킷이 저장되는 경우에도 16 비트나 32 비트의 메모리 공간을 모두 채우지 못하고 다음 메모리에 저장되므로 메모리 공간을 효율적으로 사용할 수 없게된다. 본 발명의 제 1 실시예에 따른 데이터 추출 방법(200)은 이러한 문제를 해결하기 위한 것이다.
도 3의 메모리(300)는 데이터 패킷의 크기가 바이트나 워드 단위가 아닌 경우를 나타낸다. 도 3에서는 설명의 편의를 위하여 데이터 패킷들(P0, P1 ~,P13)은 각각 7비트의 사이즈를 가지는 것으로 한다.
메모리(300)는 설명의 편의를 위하여 16비트 사이즈를 가지고 복수개의 메모리 블록을 구비하는 것으로 한다. 제 1 메모리 블록(M1)에 7비트의 크기를 가지는 제 1 데이터 패킷(P0)과 제 2 데이터 패킷(P1)이 저장되어 있다.
제 3 데이터 패킷(P2)도 7 비트의 사이즈를 가지지만 제 1 메모리 블록(M1)에 모두 저장될 수 없으므로 제 1 메모리 블록(M1)에 2 비트, 제 2 메모리 블록(M2)에 5 비트가 저장된다. 제 4 데이터 패킷(P3)이 제 2 메모리 블록(M2)에 저장되어 있다.
제 5 데이터 패킷(P4)은 제 2 메모리 블록(M2)에 모두 저장될 수 없으므로 제 2 메모리 블록(M2)에 4비트, 제 3 메모리 블록(M3)에 3 비트가 저장된다. 이와 같은 방법으로 제 14 데이터 패킷(P13)의 일부가 제 6 메모리 블록(M6)에 저장되어 있다.
먼저, 제 M 메모리 블록에 저장되어 있는 데이터를 소스 레지스터(S_REG(1))의 상위 해프(half) 비트에 저장하고 제 M+1 번째 메모리 블록에 저장되어 있는 데이터를 소스 레지스터(S_REG(1))의 하위 해프 (half) 비트에 저장한다(210 단계).
여기서 M은 설명의 편의를 위하여 1 이라고 한다. 따라서 제 1 메모리 블록(M1)에 저장되어 있는 데이터를 소스 레지스터(S_REG(1))의 상위 해프(half) 비트에 저장하고 제 2 메모리 블록(M2)에 저장되어 있는 데이터를 소스 레지스터(S_REG(1))의 하위 해프 (half) 비트에 저장한다
따라서 제 1 데이터 패킷(P0) 내지 제 4 데이터 패킷(93)과 제 5 데이터 패킷(P4)의 일부가 소스 레지스터에 저장된다. 이러한 과정은 도 3에서 (1)과 (2)로표시되어 있다.
소스 레지스터(S_REG(1))는 메모리의 사이즈의 2배의 사이즈를 가진다. 즉 여기서는 32 비트의 사이즈를 가진다.
소스 레지스터(S_REG(1))의 포지션 값에 대응되는 위치로부터 오프셋 값에 대응되는 크기의 데이터를 추출하여 목적 레지스터(D_REG(1))에 저장하고, 포지션 값과 오프셋 값을 더하여 새로운 포지션 값으로 설정한다(220 단계).
포지션 값(PV)은 데이터 추출의 기준 위치를 나타내고 오프셋 값은 추출할 데이터의 크기를 나타낸다. 여기서 오프셋 값은 하나의 데이터 패킷을 추출하기 위하여 7비트로 한다.
처음 포지션 값(PV1)으로부터 오프셋 값에 대응되는 크기의 데이터를 추출한다. 오프셋 값이 하나의 데이터 패킷의 크기와 같으므로 결국 제 1 데이터 패킷(P0)이 추출되어 목적 레지스터(D_REG(1))에 저장된다. 그리고 이전의 포지션 값(PV1)에 오프셋 값을 더하여 새로운 포지션 값(PV2)으로 설정한다. 따라서 새로운 포지션 값(PV2)은 원래의 포지션 값(PV1)보다 7 비트만큼 커진다. 처음 포지션 값(PV1)이 소스 레지스터(S_REG(1))의 0번째 비트였다면 새로운 포지션 값(PV2)은 소스 레지스터(S_REG(1))의 7번째 비트가 된다.
새로운 포지션 값(PV2)이 소정의 모듈로 값(MV)보다 큰지 작은지를 판단하여 포지션 값(PV2)이 모듈로 값(MV)보다 작으면 플래그 신호를 제 1 논리 레벨로, 포지션 값(PV2)이 모듈로 값(MV)보다 크면 플래그 신호를 제 2 논리 레벨로 발생한다(230 단계).
플래그 신호가 제 1 논리 레벨이면 새로운 포지션 값을 이용하여 상기 220 단계 및 230 단계의 동작을 반복한다(240 단계).
좀더 설명하면, 포지션 값(PV2)이 소정의 모듈로 값(MV)보다 큰지 작은지를 비교한다. 여기서 모듈로 값(MV)은 소스 레지스터(S_REG(1)) 또는 목적 레지스터(D_REG(1))의 크기의 1/2 값이다. 따라서 도 3에서는 16 이 된다.
모듈로 값(MV)에 대하여 좀 더 설명한다. 모듈로 값(MV)은 포지션 값(PV)이 나타내는 소스 레지스터(S_REG(1))에서의 어드레스의 범위를 규정한 것이다. 포지션 값(PV)이 나타내는 어드레스가 정해진 모듈로 값(MV)을 넘는 경우 포지션 값(PV)은 정해진 모듈로 값(MV)의 범위 안으로 다시 되돌아온다.
예를 들면, 모듈로 값(MV)이 16 이고 포지션 값(PV)이 10 이고 오프셋 값이 3 인 경우, 포지션 값(PV)에 오프셋 값을 더한 결과인 13은 모듈로 값(MV)인 16보다 작다. 이 경우에는 그대로 13이 새로운 포지션 값(PV)이 된다.
그러나 만일 오프셋 값(PV)이 8이면 포지션 값(PV)과 오프셋 값을 더한 결과는 18이고 이것은 모듈로 값(MV)인 16보다 크므로 18에서 16을 뺀 결과인 2가 새로운 포지션 값(PV)이 된다. 즉 포지션 값(PV)은 모듈로 값(MV) 보다 항상 적은 값으로 결정된다. 이러한 개념을 DSP의 모듈로 어드레싱 개념이라고 한다.
포지션 값(PV2)은 소스 레지스터(S_REG(1))의 7번 째 비트이고 모듈로 값(MV)은 16 이다. 포지션 값(PV2)이 모듈로 값(MV)보다 작으므로 플래그 신호는 제 1 논리 레벨로 발생된다.
플래그 신호는 포지션 값(PV2)과 모듈로 값(MV)의 크기를 비교한 결과에 응답하여 제 1 논리 레벨 또는 제 2 논리 레벨로 발생되는 신호이다. 여기서 제 1 논리 레벨은 논리 하이 레벨이거나 또는 논리 로우 레벨 일 수 있다. 그러나 설명의 편의를 위하여 논리 로우 레벨로 한다.
플래그 신호가 논리 로우 레벨이므로 제 210 단계의 동작을 다시 반복한다. 즉, 소스 레지스터(S_REG(1))의 포지션 값(PV2)으로부터 오프셋 값에 대응되는 크기의 데이터를 추출한다. 오프셋 값이 하나의 데이터 패킷의 크기와 같으므로 결국 제 2 데이터 패킷(P1)이 추출되어 목적 레지스터(D_REG(1))에 저장된다. 목적 레지스터(D_REG(1))에 저장되어 있던 제 1 데이터 패킷(P0)은 외부로 출력된다.
그리고 이전의 포지션 값(PV2) 7과 오프셋 값이 더해져서 새로운 포지션 값(PV3)이 14로 설정된다.
포지션 값(PV3)과 모듈로 값(MV)을 비교한다. 포지션 값(PV3)이 모듈로 값(MV)보다 작으므로 플래그 신호는 논리 로우 레벨로 발생된다. 소스 레지스터(S_REG(1))의 새로운 포지션 값(PV3)으로부터 오프셋 값에 대응되는 크기의 데이터를 추출한다. 오프셋 값이 하나의 데이터 패킷의 크기와 같으므로 결국 제 3 데이터 패킷(P2)이 추출되어 목적 레지스터(D_REG(1))에 저장된다. 이때 목적 레지스터(D_REG(1))에 저장되어 있던 제 2 데이터 패킷(P1)은 외부로 출력된다.
이전의 포지션 값(PV3) 14와 오프셋 값을 더하여 새로운 포지션 값(PV4)을 21로 설정한다. 그리고 포지션 값(PV4)이 소정의 모듈로 값(MV)보다 큰지 작은지를 비교한다. 포지션 값(PV4)은 21이고 모듈로 값(MV)은 16이므로 포지션 값(PV4)이 모듈로 값(MV)보다 크다. 따라서 플래그 신호는 제 2 논리 레벨로 발생된다.
플래그 신호가 제 2 논리 레벨이면 소스 레지스터(S_REG(1))의 하위 해프(half) 비트의 데이터를 소스 레지스터(S_REG(2))의 상위 해프(half) 비트에 저장한다(260 단계).
제 2 논리 레벨을 가지는 플래그 신호에 응답하여 메모리(300)의 제 M+2 번째 메모리 블럭에 저장되어 있는 데이터를 소스 레지스터(S_REG(2))의 하위 해프(half) 비트에 저장하고, 새로운 포지션 값(PV4)에서 모듈로 값(MV)을 뺀 값을 다음 포지션 값(PV5)으로 설정하고 상기 220 단계로 돌아간다(270 단계).
즉, 도 3에서 제 3 데이터 패킷(P2)의 일부와 제 4 데이터 패킷(P3) 및 제 5 데이터 패킷(P4)의 일부가 소스 레지스터(S_REG(2))의 상위 해프 비트에 저장된다.
그리고, 메모리(300)의 제 3 메모리 블록(M3)에 저장되어 있는 데이터들, 즉, 제 5 데이터 패킷(P4)의 일부와 제 6 데이터 패킷(P5) 및 제 7 데이터 패킷(P6)의 일부를 소스 레지스터(S_REG(2))의 하위 해프 비트에 저장한다. 이러한 동작은 도 3에서 (3)으로 표시되어 있다.
그리고, 포지션 값(PV4)인 21과 모듈로 값(MV) 인 16과의 차이인 5를 새로운 포지션 값(PV5)으로 설정한다. 새로운 포지션 값(PV5)으로부터 오프셋 값에 대응되는 데이터를 추출하여 목적 레지스터(D_REG(2))에 저장하는 제 220 단계의 동작을 다시 반복한다. 이는 도 3에서 (4)로 표시되어 있다.
제 1 실시예에 따른 방법(200)을 이용하면, 데이터 패킷의 크기가 바이트 단위가 아니고 비트 단위인 경우에도 새로운 데이터 패킷을 메모리로부터 연속적으로 읽어올 수 있고 메모리를 효율적으로 사용할 수 있다.
제 1 실시예에 따른 방법(200)은 비트 어드레싱 개념이라고 할 수 있다. 소스 레지스터나 목적 레지스터에 바이트당 어드레스를 할당한 것이 아니라 비트당 어드레스를 할당함으로써, 임의의 사이즈의 연속적인 데이터 패킷의 처리도 메모리의 낭비 없이 가능하게 이루어 질 수 있다.
도 4는 본 발명의 제 2 실시예에 따른 데이터 삽입 방법을 나타내는 플로우 차트이다.
도 5는 도 4의 데이터 삽입 방법의 개념을 설명하는 도면이다.
도 4를 참조하면, 본 발명의 제 2 실시예에 따른 데이터 삽입 방법(400)은, 소스 레지스터 및 목적 레지스터를 구비하고, 데이터가 삽입될 기준 위치를 나타내는 포지션 값과 삽입할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 삽입하기 위한 DSP(Digital Signal Processor)의 데이터 삽입 방법에 관한 것이다.
먼저 상기 소스 레지스터의 데이터중 상기 오프셋 값의 크기를 가지는 데이터를 상기 목적 레지스터의 상기 포지션 값에 대응되는 위치에 삽입하여 상기 목적 레지스터에 저장하고, 상기 포지션 값과 상기 오프셋 값을 더하여 새로운 포지션 값으로 설정한다(410 단계).
상기 새로운 포지션 값이 소정의 모듈로 값보다 큰지 작은지를 판단하여 상기 포지션 값이 상기 모듈로 값보다 작으면 플래그 신호를 제 1 논리 레벨로, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생한다(420 내지 440 단계).
상기 플래그 신호가 제 1 논리 레벨이면 상기 새로운 포지션 값을 이용하여 상기 제 410 단계 및 420 단계의 동작을 반복한다. 상기 플래그 신호가 제 2 논리 레벨이면 상기 목적 레지스터의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장한다(450 단계),
제 2 논리 레벨을 가지는 상기 플래그 신호에 응답하여 상기 목적 레지스터의 하위 해프(half) 비트의 데이터를 상기 목적 레지스터의 상위 해프 (half) 비트에 저장하고 상기 새로운 포지션 값에서 상기 모듈로 값을 뺀 값을 다음 포지션 값으로 설정하고 상기 410 단계로 돌아간다(460 단계). 상기 소스 레지스터 및 상기 목적 레지스터는 2N 비트의 사이즈를 가지며, 상기 모듈로 값은 N 인 것을 특징으로 한다.
이하 도 4 및 도 5를 참조하여 본 발명의 제 2 실시예에 따른 데이터 삽입 방법이 상세히 설명된다.
도 5에는 목적 레지스터(D_REG(1), D_REG(2))가 2개 나타나 있다. 목적 레지스터(D_REG(1))와 목적 레지스터(D_REG(2))는 동일한 레지스터이다. 즉, 후술되는 목적 레지스터(D_REG(1))의 하위 해프 비트의 데이터가 동일한 목적 레지스터(D_REG(1))의 상위 해프 비트로 카피되는 동작을 설명하기 위하여 2개로 나누어 표시한 것일 뿐이다.
데이터 패킷의 사이즈가 바이트나 워드 단위가 아니고 처리되어야 할 데이터 패킷이 연속적인 경우, 바이트나 워드 사이즈를 가지지 않는 데이터 패킷은 레지스터에서 메모리로 저장되는 경우 데이터 패킷이 분할되는 문제가 있다. 본 발명의 제 2 실시예에 따른 데이터 추출 방법(400)은 이러한 문제를 해결하기 위한 것이다.
도 5에서는 설명의 편의를 위하여 데이터 패킷들(P0, P1 ~,P4)은 각각 7비트의 사이즈를 가지는 것으로 한다. 메모리(미도시)는 설명의 편의를 위하여 16비트 사이즈를 가지고 복수개의 메모리 블록을 구비하는 것으로 한다.
먼저 소스 레지스터(S_REG)의 데이터 중 오프셋 값의 크기를 가지는 데이터를 목적 레지스터(D_REG(1))의 포지션 값(PV1)에 대응되는 위치에 삽입하여 목적 레지스터(D_REG(1))에 저장하고, 포지션 값(PV1)과 오프셋 값을 더하여 새로운 포지션 값(PV2)으로 설정한다(410 단계).
소스 레지스터(S_REG)와 목적 레지스터(D_REG(1))는 메모리(미도시) 사이즈의 2배의 사이즈를 가진다. 즉 여기서는 32 비트의 사이즈를 가진다.
포지션 값(PV)은 데이터 삽입의 기준 위치를 나타내고 오프셋 값은 삽입할 데이터의 크기를 나타낸다. 여기서 오프셋 값은 하나의 데이터 패킷을 삽입하기 위하여 7비트로 한다.
포지션 값(PV1)을 0 이라고 하고 오프셋 값을 7로 하면, 소스 레지스터(S_REG)에 저장되어 있던 제 1 데이터 패킷(P0)은 목적 레지스터(D_REG(1))에 삽입된다. 그리고 새로운 포지션 값(PV2)은 이전의 포지션 값(PV1) 0에 오프셋 값 7을 더하여 7이 된다.
새로운 포지션 값(PV2)이 소정의 모듈로 값(MV)보다 큰지 작은지를판단한다(420 단계) 포지션 값(PV2)이 모듈로 값(MV)보다 작으면 플래그 신호를 제 1 논리 레벨로, 포지션 값(PV2)이 모듈로 값(MV)보다 크면 플래그 신호를 제 2 논리 레벨로 발생한다(430 및 440 단계).
플래그 신호가 제 1 논리 레벨이면 새로운 포지션 값을 이용하여 상기 410 단계 및 420 단계의 동작을 반복한다.
좀 더 설명하면, 포지션 값(PV2)이 소정의 모듈로 값(MV)보다 큰지 작은지를 비교한다. 여기서 모듈로 값(MV)은 소스 레지스터(S_REG(1)) 또는 목적 레지스터(D_REG(1))의 크기의 1/2 값이다. 따라서 도 5에서는 16 이 된다.
모듈로 값(MV)은 제 1 실시예에 따른 데이터 추출 방법(200)에서 설명한 것과 동일한 개념이므로 여기서는 설명을 생략한다.
포지션 값(PV2)은 목적 레지스터(D_REG(1))의 7번 째 비트이고 모듈로 값(MV)은 16 이다. 포지션 값(PV2)이 모듈로 값(MV)보다 작으므로 플래그 신호는 제 1 논리 레벨로 발생된다.
플래그 신호는 포지션 값(PV2)과 모듈로 값(MV)의 크기를 비교한 결과에 응답하여 제 1 논리 레벨 또는 제 2 논리 레벨로 발생되는 신호이다. 여기서 제 1 논리 레벨은 논리 하이 레벨이거나 또는 논리 로우 레벨 일 수 있다. 그러나 설명의 편의를 위하여 논리 로우 레벨로 한다.
플래그 신호가 논리 로우 레벨로 발생되면 제 410 단계 및 제 420 단계의 동작을 반복한다. 즉, 목적 레지스터(D_REG(1))의 새로운 포지션 값(PV2)에 오프셋 값에 대응되는 크기의 데이터를 삽입한다. 오프셋 값이 하나의 데이터 패킷의 크기와 같으므로 결국 제 2 데이터 패킷(P1)이 삽입되어 목적 레지스터(D_REG(1))에 저장된다.
그리고 새로운 포지션 값(PV3)은 원래의 포지션 값(PV2)에 오프셋 값을 더하여 14로 설정된다.
포지션 값(PV3)이 소정의 모듈로 값(MV)보다 큰지 작은지를 비교한다. 포지션 값(PV3)은 14이고 모듈로 값(MV)은 16이므로 포지션 값(PV3)이 모듈로 값(MV)보다 작다. 따라서 플래그 신호는 논리 로우 레벨로 발생된다.
플래그 신호가 논리 로우 레벨로 발생되면, 목적 레지스터(D_REG(1))의 새로운 포지션 값(PV3)에 오프셋 값에 대응되는 크기의 데이터를 삽입한다. 오프셋 값이 하나의 데이터 패킷의 크기와 같으므로 결국 제 3 데이터 패킷(P2)이 삽입되어 목적 레지스터(D_REG(1))에 저장된다.
그리고 새로운 포지션 값(PV4)은 원래의 포지션 값(PV3)에 오프셋 값을 더하여 21로 설정된다.
포지션 값(PV4)이 소정의 모듈로 값(MV)보다 큰지 작은지를 비교한다. 포지션 값(PV4)은 21이고 모듈로 값(MV)은 16이므로 포지션 값(PV4)이 모듈로 값(MV)보다 크다. 따라서 플래그 신호는 제 2 논리 레벨로 발생된다.
플래그 신호가 제 2 논리 레벨이면 목적 레지스터(D_REG(1))의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리(미도시)의 제 M(M은 자연수) 번째 메모리 블록에 저장한다(450 단계),
제 2 논리 레벨을 가지는 플래그 신호에 응답하여 목적 레지스터(D_REG(1))의 하위 해프(half) 비트의 데이터를 목적 레지스터(D_REG(2))의 상위 해프 (half) 비트에 저장하고 새로운 포지션 값(PV4)에서 모듈로 값(MV)을 뺀 값을 다음 포지션 값(PV5)으로 설정하고 410 단계로 돌아간다(460 단계).
즉, 도 5에서 제 1 데이터 패킷(P0), 제 2 데이터 패킷(P1) 및 제 3 데이터 패킷(P2)의 2비트가 메모리(미도시)의 M 번째 블록에 저장된다. 이러한 동작은 도 5에서 (1)로 표시되어 있다. 그리고, 목적 레지스터(D_REG(1))의 하위 해프 비트에 저장되어 있던 제 3 데이터 패킷(P2)의 5 비트가 목적 레지스터(D_REG(1))의 상위 해프 비트에 저장된다. 이는 도 5에서 (2)로 표시되어 있다.
목적 레지스터(D_REG(2))의 새로운 포지션 값(PV5)에 오프셋 값에 대응되는 데이터를 추출하여 저장하는 동작을 다시 반복한다. 즉, 제 4 데이터 패킷(P3)이 목적 레지스터(D_REG(2))에 삽입된다. 그리고 포지션 값(PV5)이 모듈로 값(MV)과 비교되는 동작이 계속하여 이루어진다.
제 2 실시예에 따른 방법(400)을 이용하면, 데이터 패킷의 크기가 바이트 단위가 아니고 비트 단위인 경우에도 새로운 데이터 패킷을 메모리로 연속적으로 저장할 수 있으므로 메모리를 효율적으로 사용할 수 있다.
제 2 실시예에 따른 데이터 삽입 방법(400)은 비트 어드레싱 개념이라고 할 수 있다. 소스 레지스터나 목적 레지스터에 바이트당 어드레스를 할당한 것이 아니라 비트당 어드레스를 할당함으로써, 임의의 사이즈의 연속적인 데이터 패킷의 처리도 메모리의 낭비 없이 가능하게 이루어 질 수 있다.
도 6은 본 발명의 제 1 실시예에 따른 데이터 추출 및 삽입 장치를 나타내는블록도이다.
도 6을 참조하면, 본 발명의 제 1 실시예에 따른 데이터 추출 및 삽입 장치(600)는, 디지털 시그널 프로세서(DSP :Digital Signal Processor)에 있어서, 데이터 추출 및 삽입부(610), 포지션 값 발생부(620) 및 플래그 신호 발생부(640)를 구비하는 것을 특징으로 한다.
데이터 추출 및 삽입부(610)는 소정의 포지션 값(PV)과 추출할 데이터의 크기를 나타내는 오프셋 값(OFFSET)을 수신하고 소정의 플래그 신호(FLAG)의 제 1 논리 레벨에 응답하여 소스 레지스터로부터 목적 레지스터로 데이터를 추출하거나 데이터를 삽입하고, 플래그 신호(FLAG)의 제 2 논리 레벨에 응답하여 소스 레지스터나 상기 목적 레지스터에 메모리(미도시)로부터 데이터를 수신하여 저장하거나 메모리로 데이터를 저장한다.
좀더 설명하면, 데이터 추출 및 삽입부(610)는 데이터 추출 동작의 경우 플래그 신호(FLAG)의 제 1 논리 레벨에 응답하여 소스 레지스터의 데이터 중 오프셋 값(OFFSET)의 크기를 가지는 데이터를 목적 레지스터의 프리 포지션 값(PREPV)에 대응되는 위치에 삽입하여 목적 레지스터에 저장한다.
또한 데이터 추출 및 삽입부(610)는 플래그 신호(FLAG)의 제 2 논리 레벨에 응답하여 소스 레지스터의 하위 해프(half) 비트의 데이터를 소스 레지스터의 상위 해프(half) 비트에 저장하고, N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리(미도시)의 M (M은 자연수)번째 메모리 블록에 저장되어 있는 데이터를 소스 레지스터의 하위 해프(half) 비트에 저장한다.
데이터 추출 및 삽입부(610)는 데이터 삽입 동작의 경우 플래그 신호(FLAG)의 제 1 논리 레벨에 응답하여 상기 목적 레지스터의 프리 포지션 값(PREPV)에 대응되는 위치에 오프셋 값(OFFSET)에 대응되는 크기의 데이터를 삽입한다. 또한 데이터 추출 및 삽입부(610)는 플래그 신호(FLAG)의 제 2 논리 레벨에 응답하여 상기 목적 레지스터의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수 개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장하고, 상기 목적 레지스터의 하위 해프(half) 비트의 데이터를 상기 목적 레지스터의 상위 해프 (half) 비트에 저장한다.
포지션 값 발생부(620)는 외부에서 입력되는 프리 포지션 값(PREPV)과 외부에서 입력되는 오프셋 값(OFFSET)을 더하여 포지션 값(PV)을 발생한다.
좀더 설명하면, 포지션 값 발생부(620)는 프리 포지션 값(PREPV)을 저장하는 프리 포지션 값 저장부(625), 외부에서 입력되는 오프셋 값(OFFSET)을 저장하는 오프셋 값 저장부(630), 프리 포지션 값 저장부(625)의 출력(OPREPV)과 오프셋 값 저장부(630)의 출력(OFFSET_1)을 더하여 포지션 값(PV)을 발생하는 가산부(635)를 구비한다.
플래그 신호 발생부(640)는 포지션 값(PV)을 수신하고 소정의 모듈로 값(MV)과 비교하여 포지션 값(PV)이 모듈로 값(MV)보다 작으면 포지션 값(PV)을 프리 포지션 값(PREPV)으로 발생하고, 포지션 값(PV)이 모듈로 값(MV)보다 크면 모듈로 값(MV)에서 포지션 값(PV)을 뺀 값을 프리 포지션 값(PREPV)으로 발생하며, 포지션 값(PV)과 모듈로 값(MV)의 비교 결과에 따라 플래그 신호(FLAG)를 발생한다.
좀더 설명하면, 플래그 신호 발생부(640)는 모듈로 값 저장부(650), 비교부(645), 감산부(635) 및 선택부(660)를 구비한다.
모듈로 값 저장부(650)는 모듈로 값(MV)을 저장한다. 비교부(645)는 포지션 값(PV)과 모듈로 값 저장부(650)에서 출력되는 모듈로 값(MV)의 크기를 비교하여 포지션 값(PV)이 모듈로 값(MV)보다 작은 경우에는 포지션 값(PV)을 소정의 선택부(660)로 출력하고, 포지션 값(PV)이 모듈로 값(MV)보다 큰 경우에는 포지션 값(PV)을 소정의 감산부(635)로 출력하며, 포지션 값(PV)과 모듈로 값(MV)의 크기를 비교한 결과에 따라 플래그 신호(FLAG)를 발생한다.
비교부(645)는 포지션 값(PV)이 모듈로 값(MV)보다 작으면 플래그 신호(FLAG)를 제 1 논리 레벨로 발생하고, 포지션 값(PV)이 모듈로 값(MV)보다 크면 플래그 신호(FLAG)를 제 2 논리 레벨로 발생한다.
감산부(635)는 포지션 값(PV) 및 모듈로 값(MV)을 수신하고 포지션 값(PV)에서 모듈로 값(MV)을 빼는 연산을 한다.
선택부(660)는 플래그 신호(FLAG)에 응답하여 비교부(645)에서 출력되는 포지션 값(PV)과 감산부(635)의 출력 중 하나를 선택하여 프리 포지션 값(PREPV)으로 출력한다.
선택부(660)는 플래그 신호(FLAG)가 제 1 논리 레벨이면 비교부(645)에서 출력되는 포지션 값(PV)을 선택하여 출력하고, 플래그 신호(FLAG)가 제 2 논리 레벨이면 감산부(635)의 출력을 선택하여 출력한다.
상기 소스 레지스터 및 상기 목적 레지스터는 2N 비트의 사이즈를 가지며,상기 모듈로 값은 N 이다.
이하 도 6을 참조하여 본 발명의 제 1 실시예에 따른 데이터 추출 및 삽입 장치의 동작이 상세히 설명된다.
데이터 추출 및 삽입 장치(600)는 데이터 추출 방법(200) 및 데이터 삽입 방법(400)을 장치로서 구현한 것이다.
포지션 값 발생부(620)는 외부에서 입력되는 프리 포지션 값(PREPV)과 외부에서 입력되는 오프셋 값(OFFSET)을 더하여 포지션 값(PV)을 발생한다.
프리 포지션 값(PREPV)은 후술하는 플래그 신호 발생부(640)의 선택부(660)에서 발생되며, 데이터 추출 동작의 경우 소스 레지스터에서 데이터를 추출하는 기준 위치를 나타내고 데이터 삽입 동작의 경우 목적 레지스터에서 데이터가 삽입되는 기준 위치를 나타낸다.
오프셋 값(OFFSET)은 추출하거나 삽입할 데이터의 크기를 나타낸다.
프리 포지션 값(PREPV)과 오프셋 값(OFFSET)은 데이터 추출 및 삽입부(610)로 인가된다. 데이터 추출 및 삽입부(610)에서는 입력되는 프리 포지션 값(PREPV)과 오프셋 값(OFFSET)에 응답하여 데이터의 추출 또는 삽입 동작이 이루어진다. 이에 대해서는 후술한다.
프리 포지션 값(PREPV)과 오프셋 값(OFFSET)은 데이터 추출 및 삽입부(610)로 인가되는 것과 동시에 포지션 값 발생부(620)로 입력된다.
프리 포지션 값 발생부(620)의 프리 포지션 값 저장부(625)는 프리 포지션 값(PREPV)을 수신하여 저장한다. 오프셋 값 저장부(630)는 입력되는 오프셋값(OFFSET)을 저장한다. 프리 포지션 값 발생부(620)와 오프셋 값 저장부(630)는 레지스터일 수 있다.
가산부(635)는 프리 포지션 값 저장부(625)의 출력(OPREPV)과 오프셋 값 저장부(630)의 출력(OFFSET_1)을 더하여 포지션 값(PV)을 발생한다. 프리 포지션 값 저장부(625)의 출력(OPREPV)은 프리 포지션 값(PREPV)과 동일하며 오프셋 값 저장부(630)의 출력(OFFSET_1)은 오프셋 값(OFFSET)과 같다.
예를 들어 프리 포지션 값(PREPV)을 0 이라고 하고 오프셋 값을 7이라고 하면, 포지션 값(PV)은 프리 포지션 값(PREPV) 0에 오프셋 값(OFFSET) 7을 더하여 7이 된다.
플래그 신호 발생부(640)는 포지션 값(PV)을 수신하고 소정의 모듈로 값(MV)과 비교하여 포지션 값(PV)이 모듈로 값(MV)보다 작으면 포지션 값(PV)을 프리 포지션 값(PREPV)으로 발생하고, 포지션 값(PV)이 모듈로 값(MV)보다 크면 모듈로 값(MV)에서 포지션 값(PV)을 뺀 값을 프리 포지션 값(PREPV)으로 발생하며, 포지션 값(PV)과 모듈로 값(MV)의 비교 결과에 따라 플래그 신호(FLAG)를 발생한다.
모듈로 값(MV)은 데이터 추출 방법(200) 및 데이터 삽입 방법(400)에서 설명된 것과 동일한 개념이다. 메모리(미도시)의 사이즈가 16이라면 모듈로 값(MV)도 16이다. 모듈로 값(MV)은 모듈로 값 저장부(650)에 저장되어 있다.
비교부(645)는 포지션 값(PV)과 모듈로 값 저장부(650)에서 출력되는 모듈로 값(MV)의 크기를 비교한다. 포지션 값(PV)이 모듈로 값(MV)보다 작은 경우에는 포지션 값(PV)을 소정의 선택부(660)로 출력한다. 포지션 값(PV)이 모듈로 값(MV)보다 큰 경우에는 포지션 값(PV)을 소정의 감산부(635)로 출력한다.
또한 비교부(645)는 포지션 값(PV)과 모듈로 값(MV)의 크기를 비교한 결과에 따라 플래그 신호(FLAG)를 발생한다. 플래그 신호(FLAG)는 포지션 값(PV)이 모듈로 값(MV)보다 작으면 제 1 논리 레벨로 발생되고, 포지션 값(PV)이 모듈로 값(MV)보다 크면 제 2 논리 레벨로 발생된다.
제 1 논리 레벨은 논리 하이 레벨이고 제 2 논리 레벨은 논리 로우 레벨일 수 있다. 반대로 제 1 논리 레벨은 논리 로우 레벨이고 제 2 논리 레벨은 논리 하이 레벨일 수 있다.
플래그 신호(FLAG)가 제 1 논리 레벨로 발생되면 데이터 추출 및 삽입부(610)는 프리 포지션 값(PREPV)과 오프셋 값(OFFSET)을 이용하여 데이터 추출 또는 삽입 동작을 수행한다.
플래그 신호(FLAG)가 제 2 논리 레벨로 발생되면 데이터 추출 및 삽입부(610)는 데이터 추출 동작의 경우, 소스 레지스터의 하위 해프 비트의 데이터를 상위 해프 비트에 저장하고 메모리에 저장되어 있는 16 비트 사이즈의 데이터를 소스 레지스터의 하위 해프 비트에 저장한다.
플래그 신호(FLAG)가 제 2 논리 레벨로 발생되면 데이터 추출 및 삽입부(610)는 데이터 삽입 동작의 경우, 목적 레지스터의 상위 해프 비트의 데이터를 메모리에 저장하고 목적 레지스터의 하위 해프 비트의 데이터를 목적 레지스터의 상위 해프 비트에 저장한다.
감산부(635)는 비교부(645)의 출력 신호(PVH)에서 모듈로 값(MV)을 빼는 연산을 한다. 비교부(645)의 출력 신호(PVH)는 포지션 값(PV)이 모듈로 값(MV)보다 큰 경우에 발생되므로 감산부(635)의 출력은 양의 값이다.
선택부(660)는 플래그 신호(FLAG)가 제 1 논리 레벨이면 비교부(645)의 출력 신호(PVL)를 선택하여 출력하고, 플래그 신호(FLAG)가 제 2 논리 레벨이면 감산부(635)의 출력을 선택하여 프리 포지션 값(PREPV)로서 출력한다.
정리하면, 포지션 값(PV)이 모듈로 값(MV)보다 작다면 비교부(645)는 포지션 값(PV)을 비교부(645)의 출력 신호(PVL)로서 선택부(660)로 인가하고 플래그 신호(FLAG)를 제 1 논리 레벨로 출력한다. 선택부(660)는 비교부(645)의 출력 신호(PVL)를 선택하여 프리 포지션 값(PREPV)로서 발생한다. 데이터 추출 및 삽입부(610)는 플래그 신호(FLAG)의 제 1 논리 레벨에 응답하여 프리 포지션 값(PREPV)과 오프셋 값(OFFSET)을 이용하여 데이터 추출 또는 삽입 동작을 수행한다.
포지션 값(PV)이 모듈로 값(MV)보다 크다면 비교부(645)는 포지션 값(PV)을 비교부(645)의 출력 신호(PVH)로서 감산부(635)로 인가하고 플래그 신호(FLAG)를 제 2 논리 레벨로 출력한다. 감산부(635)는 비교부(645)로부터 인가되는 신호(PVH)에서 모듈로 값(MV)을 빼고 그 결과를 선택부(660)로 인가한다.
선택부(660)는 감산부(635)의 출력 신호를 선택하여 프리 포지션 값(PREPV)로서 발생한다. 데이터 추출 및 삽입부(610)는 플래그 신호(FLAG)의 제 2 논리 레벨에 응답하여 데이터를 메모리로 저장하거나 메모리로부터 데이터를 읽어온다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 데이터 추출/삽입 방법 및 데이터 추출 및 삽입 장치는 데이터 패킷의 크기가 바이트(byte)나 워드(word) 단위가 아니며 연속적으로 데이터 패킷을 추출하거나 삽입해야 하는 경우, 데이터 패킷(packet)의 연속적인 추출 및 삽입을 효율적으로 하여 메모리를 절약할 수 있는 장점이 있다.

Claims (15)

  1. 소스 레지스터 및 목적 레지스터를 구비하고, 데이터 추출의 기준 위치를 나타내는 포지션 값과 추출할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 추출하기 위한 DSP(Digital Signal Processor)의 데이터 추출 방법에 있어서,
    (a) N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장되어 있는 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하고 제 M+1 번째 메모리 블록에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프 (half) 비트에 저장하는 단계 ;
    (b)상기 소스 레지스터의 상기 포지션 값에 대응되는 위치로부터 상기 오프셋 값에 대응되는 크기의 데이터를 추출하여 상기 목적 레지스터에 저장하고, 상기 포지션 값과 상기 오프셋 값을 더하여 새로운 포지션 값으로 설정하는 단계 ;
    (c)상기 새로운 포지션 값이 소정의 모듈로 값보다 큰지 작은지를 판단하여 상기 포지션 값이 상기 모듈로 값보다 작으면 플래그 신호를 제 1 논리 레벨로, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생하는 단계 ;
    (d)상기 플래그 신호가 제 1 논리 레벨이면 상기 새로운 포지션 값을 이용하여 상기 (b) 단계 및 (C) 단계의 동작을 반복하고, 상기 플래그 신호가 제 2 논리 레벨이면 상기 소스 레지스터의 하위 해프(half) 비트의 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하는 단계 ;
    (e)제 2 논리 레벨을 가지는 상기 플래그 신호에 응답하여 상기 메모리의 제 M+2 번째 메모리 블럭에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프(half) 비트에 저장하고, 상기 새로운 포지션 값에서 상기 모듈로 값을 뺀 값을 다음 포지션 값으로 설정하고 상기 (b) 단계로 돌아가는 단계를 구비하는 것을 특징으로 하는 DSP(Digital Signal Processor)의 데이터 추출 방법.
  2. 제 1항에 있어서, 상기 소스 레지스터 및 상기 목적 레지스터는,
    2N 비트의 사이즈를 가지는 것을 특징으로 하는 DSP(Digital Signal Processor) 의 데이터 추출 방법.
  3. 제 1항에 있어서, 상기 모듈로 값은,
    N 인 것을 특징으로 하는 DSP(Digital Signal Processor) 의 데이터 추출 방법.
  4. 소스 레지스터 및 목적 레지스터를 구비하고, 데이터가 삽입될 기준 위치를 나타내는 포지션 값과 삽입할 데이터의 크기를 나타내는 오프셋 값을 이용하여 상기 소스 레지스터로부터 상기 목적 레지스터로 데이터를 삽입하기 위한 DSP(Digital Signal Processor)의 데이터 삽입 방법에 있어서,
    (a)상기 소스 레지스터의 데이터중 상기 오프셋 값의 크기를 가지는 데이터를 상기 목적 레지스터의 상기 포지션 값에 대응되는 위치에 삽입하여 상기 목적 레지스터에 저장하고, 상기 포지션 값과 상기 오프셋 값을 더하여 새로운 포지션 값으로 설정하는 단계 ;
    (b)목적 레지스터의 상기 새로운 포지션 값에 대응되는 위치로부터 상기 오프셋 값에 대응되는 크기의 데이터를 삽입하여 상기 목적 레지스터에 저장하고, 상기 새로운 포지션 값이 소정의 모듈로 값보다 큰지 작은지를 판단하여 상기 포지션 값이 상기 모듈로 값보다 작으면 플래그 신호를 제 1 논리 레벨로, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생하는 단계 ;
    (c)상기 플래그 신호가 제 1 논리 레벨이면 상기 새로운 포지션 값을 이용하여 상기 (a) 단계 및 (b) 단계의 동작을 반복하고, 상기 플래그 신호가 제 2 논리 레벨이면 상기 목적 레지스터의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장하는 단계 ;
    (d)제 2 논리 레벨을 가지는 상기 플래그 신호에 응답하여 상기 목적 레지스터의 하위 해프(half) 비트의 데이터를 상기 목적 레지스터의 상위 해프 (half) 비트에 저장하고 상기 새로운 포지션 값에서 상기 모듈로 값을 뺀 값을 다음 포지션 값으로 설정하고 상기 (a) 단계로 돌아가는 단계를 구비하는 것을 특징으로 하는 DSP(Digital Signal Processor)의 데이터 삽입 방법.
  5. 제 4항에 있어서, 상기 소스 레지스터 및 상기 목적 레지스터는,
    2N 비트의 사이즈를 가지는 것을 특징으로 하는 DSP(Digital Signal Processor)의 데이터 삽입 방법.
  6. 제 4항에 있어서, 상기 모듈로 값은,
    N 인 것을 특징으로 하는 DSP(Digital Signal Processor)의 데이터 삽입 방법.
  7. 디지털 시그널 프로세서(DSP :Digital Signal Processor)에 있어서,
    소정의 프리 포지션 값과 추출할 데이터의 크기를 나타내는 오프셋 값을 수신하고 소정의 플래그 신호의 제 1 논리 레벨에 응답하여 소스 레지스터로부터 목적 레지스터로 데이터를 추출하거나 데이터를 삽입하고, 상기 플래그 신호의 제 2 논리 레벨에 응답하여 상기 소스 레지스터나 상기 목적 레지스터에 메모리로부터 데이터를 수신하여 저장하거나 상기 메모리로 데이터를 저장하는 데이터 추출 및 삽입부 ;
    외부에서 입력되는 프리 포지션 값과 외부에서 입력되는 상기 오프셋 값을 더하여 상기 포지션 값을 발생하는 포지션 값 발생부 ;
    상기 포지션 값을 수신하고 소정의 모듈로 값과 비교하여 상기 포지션 값이 상기 모듈로 값보다 작으면 상기 포지션 값을 상기 프리 포지션 값으로 발생하고, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 포지션 값에서 상기 모듈로 값을 뺀 값을 상기 프리 포지션 값으로 발생하며, 상기 포지션 값과 상기 모듈로 값의 비교 결과에 따라 상기 플래그 신호를 발생하는 플래그 신호 발생부를 구비하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  8. 제 7항에 있어서, 상기 포지션 값 발생부는,
    상기 프리 포지션 값을 저장하는 프리 포지션 값 저장부 ;
    외부에서 입력되는 오프셋 값을 저장하는 오프셋 값 저장부 ;
    상기 프리 포지션 값 저장부의 출력과 상기 오프셋 값 저장부의 출력을 더하여 상기 포지션 값을 발생하는 가산부를 구비하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  9. 제 7항에 있어서, 상기 플래그 신호 발생부는,
    상기 모듈로 값을 저장하는 모듈로 값 저장부 ;
    상기 포지션 값과 상기 모듈로 값 저장부에서 출력되는 상기 모듈로 값의 크기를 비교하여 상기 포지션 값이 상기 모듈로 값보다 작은 경우에는 상기 포지션 값을 소정의 선택부로 출력하고, 상기 포지션 값이 상기 모듈로 값보다 큰 경우에는 상기 포지션 값을 소정의 감산부로 출력하며, 상기 포지션 값과 상기 모듈로 값의 크기를 비교한 결과에 따라 상기 플래그 신호를 발생하는 비교부 ;
    상기 포지션 값 및 상기 모듈로 값을 수신하고 상기 포지션 값에서 상기 모듈로 값을 빼는 연산을 하는 상기 감산부 ;
    상기 플래그 신호에 응답하여 상기 비교부에서 출력되는 상기 포지션 값과 상기 감산부의 출력중 하나를 선택하여 상기 프리 포지션 값으로 출력하는 선택부를 구비하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  10. 제 9항에 있어서, 상기 비교부는,
    상기 포지션 값이 상기 모듈로 값보다 작으면 상기 플래그 신호를 제 1 논리 레벨로 발생하고, 상기 포지션 값이 상기 모듈로 값보다 크면 상기 플래그 신호를 제 2 논리 레벨로 발생하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  11. 제 9항에 있어서, 상기 선택부는,
    상기 플래그 신호가 제 1 논리 레벨이면 상기 비교부에서 출력되는 상기 포지션 값을 선택하여 출력하고, 상기 플래그 신호가 제 2 논리 레벨이면 상기 감산부의 출력을 선택하여 출력하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  12. 제 7항에 있어서, 상기 데이터 추출 및 삽입부는, 데이터 추출 동작의 경우,
    상기 플래그 신호의 제 1 논리 레벨에 응답하여 상기 소스 레지스터의 데이터중 상기 오프셋 값의 크기를 가지는 데이터를 상기 목적 레지스터의 상기 프리 포지션 값에 대응되는 위치에 삽입하여 상기 목적 레지스터에 저장하고,
    상기 플래그 신호의 제 2 논리 레벨에 응답하여 상기 소스 레지스터의 하위 해프(half) 비트의 데이터를 상기 소스 레지스터의 상위 해프(half) 비트에 저장하고, N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는 메모리의 M (M은 자연수)번째 메모리 블럭에 저장되어 있는 데이터를 상기 소스 레지스터의 하위 해프(half) 비트에 저장하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  13. 제 7항에 있어서, 상기 데이터 추출 및 삽입부는, 데이터 삽입 동작의 경우,
    상기 플래그 신호의 제 1 논리 레벨에 응답하여 상기 목적 레지스터의 상기 프리 포지션 값에 대응되는 위치에 상기 오프셋 값에 대응되는 크기의 데이터를 삽입하고,
    상기 플래그 신호의 제 2 논리 레벨에 응답하여 상기 목적 레지스터의 상위 해프(half) 비트의 데이터를 N(N은 자연수) 비트의 메모리 블록을 복수개 구비하는메모리의 제 M(M은 자연수) 번째 메모리 블록에 저장하고, 상기 목적 레지스터의 하위 해프(half) 비트의 데이터를 상기 목적 레지스터의 상위 해프 (half) 비트에 저장하는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  14. 제 7항에 있어서, 상기 소스 레지스터 및 상기 목적 레지스터는,
    2N 비트의 사이즈를 가지는 것을 특징으로 하는 데이터 추출 및 삽입 장치.
  15. 제 7항에 있어서, 상기 모듈로 값은,
    N 인 것을 특징으로 하는 데이터 추출 및 삽입 장치.
KR10-2002-0025133A 2002-05-07 2002-05-07 DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치 KR100434502B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR10-2002-0025133A KR100434502B1 (ko) 2002-05-07 2002-05-07 DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치
US10/388,146 US6950922B2 (en) 2002-05-07 2003-03-13 Data extraction/insertion method and device in digital signal processor
GB0307255A GB2390187B (en) 2002-05-07 2003-03-28 Data extraction/insertion method and device in digital signal processor
JP2003117662A JP4154276B2 (ja) 2002-05-07 2003-04-22 Dspのデータ抽出/挿入方法、データ抽出/挿入装置、およびdsp

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0025133A KR100434502B1 (ko) 2002-05-07 2002-05-07 DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치

Publications (2)

Publication Number Publication Date
KR20030087176A KR20030087176A (ko) 2003-11-13
KR100434502B1 true KR100434502B1 (ko) 2004-06-05

Family

ID=19720598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0025133A KR100434502B1 (ko) 2002-05-07 2002-05-07 DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치

Country Status (4)

Country Link
US (1) US6950922B2 (ko)
JP (1) JP4154276B2 (ko)
KR (1) KR100434502B1 (ko)
GB (1) GB2390187B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7610466B2 (en) * 2003-09-05 2009-10-27 Freescale Semiconductor, Inc. Data processing system using independent memory and register operand size specifiers and method thereof
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
US7315932B2 (en) 2003-09-08 2008-01-01 Moyer William C Data processing system having instruction specifiers for SIMD register operands and method thereof
US7493481B1 (en) * 2004-05-17 2009-02-17 Netxen, Inc. Direct hardware processing of internal data structure fields
US7529918B2 (en) * 2006-07-21 2009-05-05 Broadcom Corporation System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor
US9560630B2 (en) 2011-08-12 2017-01-31 Qualcomm Incorporated Devices for reduced overhead paging
US9560632B2 (en) 2011-08-12 2017-01-31 Qualcomm Incorporated Devices for title of invention reduced overhead paging
US9591612B2 (en) 2011-12-05 2017-03-07 Qualcomm Incorporated Systems and methods for low overhead paging
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US10180829B2 (en) * 2015-12-15 2019-01-15 Nxp Usa, Inc. System and method for modulo addressing vectorization with invariant code motion
CN107918708A (zh) * 2017-11-15 2018-04-17 成都海威华芯科技有限公司 一种GaN HEMT器件寄生参数的提取方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02306339A (ja) * 1989-02-09 1990-12-19 Nec Corp ビット・アドレシング方式
US5659700A (en) * 1995-02-14 1997-08-19 Winbond Electronis Corporation Apparatus and method for generating a modulo address
US5835793A (en) * 1997-05-02 1998-11-10 Texas Instruments Incorporated Device and method for extracting a bit field from a stream of data
KR19990021768A (ko) * 1997-08-30 1999-03-25 구자홍 디지탈신호처리기

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5119092A (en) * 1988-11-22 1992-06-02 Sharp Kabushiki Kaisha Apparatus for encoding, decoding, and storing waveforms
DE69416773T2 (de) * 1993-09-23 1999-10-21 Lg Electronics Inc., Seoul/Soul Variabler Längen-Kodieren und variabler Längen-Dekodierer
KR0183173B1 (ko) * 1995-12-13 1999-05-15 윤종용 버퍼 메모리 제어 장치
US6643760B2 (en) 2001-04-30 2003-11-04 Zilog, Inc. Architecture to relax memory performance requirements
US6745314B1 (en) * 2001-11-26 2004-06-01 Lsi Logic Corporation Circular buffer control circuit and method of operation thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02306339A (ja) * 1989-02-09 1990-12-19 Nec Corp ビット・アドレシング方式
US5659700A (en) * 1995-02-14 1997-08-19 Winbond Electronis Corporation Apparatus and method for generating a modulo address
US5835793A (en) * 1997-05-02 1998-11-10 Texas Instruments Incorporated Device and method for extracting a bit field from a stream of data
KR19990021768A (ko) * 1997-08-30 1999-03-25 구자홍 디지탈신호처리기

Also Published As

Publication number Publication date
US6950922B2 (en) 2005-09-27
JP4154276B2 (ja) 2008-09-24
KR20030087176A (ko) 2003-11-13
GB2390187A (en) 2003-12-31
JP2003330702A (ja) 2003-11-21
GB2390187B (en) 2004-12-29
GB0307255D0 (en) 2003-05-07
US20030212876A1 (en) 2003-11-13

Similar Documents

Publication Publication Date Title
US5659700A (en) Apparatus and method for generating a modulo address
KR100434502B1 (ko) DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치
US3984668A (en) Method for generating pseudo-random bit sequence words and a device for carrying out the method
US6337893B1 (en) Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry
US20150121035A1 (en) Systems and Methods for Implementing Low-Latency Lookup Circuits Using Sparse Hash Functions
US20080104364A1 (en) Vector indexed memory unit and method
EP0925587A2 (en) Ternary cam memory architecture and methodology
US5973707A (en) Scan converting method and apparatus for raster to block and block to raster using a shared block buffer and two input/output buffers, one being raster, the other scan
US6313767B1 (en) Decoding apparatus and method
JPH09330274A (ja) ダイナミックram内のパリティ検査論理回路用装置及び方法
JP2000148442A (ja) 提供媒体、並びにデータ処理装置およびデータ処理方法
EP1039370B1 (en) Modulo address generator and a method for implementing modulo addressing
JP3224050B2 (ja) 可変長符号復号器、プロセッサ、および可変長符号復号テーブル
US6502179B2 (en) Method and apparatus for compactly storing instruction codes
CN110875744B (zh) 编码方法及装置
US7065606B2 (en) Controller architecture for memory mapping
JPS6043742A (ja) 可変長デ−タ読出し回路
JP2538095B2 (ja) 同期保護回路
US5610727A (en) Apparatus for detecting coordinates of changing points in binary image signals
US7277906B2 (en) Method for determining an output value having a lowest error value from an input value
WO2003025900A1 (en) Digital line delay using a single port memory
KR20040026505A (ko) 터보코드를 사용하는 이동통신시스템의 터보 인터리버장치 및 방법
JPH05257458A (ja) メモリのアドレス発生回路
JPH11191077A (ja) メモリアドレス発生装置
JP2000020392A (ja) 巡回アドレス発生回路

Legal Events

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

Payment date: 20120430

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee