KR20070095891A - 프로그램 가능한 신호 및 처리 회로 및 디펑쳐링 방법 - Google Patents

프로그램 가능한 신호 및 처리 회로 및 디펑쳐링 방법 Download PDF

Info

Publication number
KR20070095891A
KR20070095891A KR1020077013189A KR20077013189A KR20070095891A KR 20070095891 A KR20070095891 A KR 20070095891A KR 1020077013189 A KR1020077013189 A KR 1020077013189A KR 20077013189 A KR20077013189 A KR 20077013189A KR 20070095891 A KR20070095891 A KR 20070095891A
Authority
KR
South Korea
Prior art keywords
operand
bit
depuncturing
instruction
result
Prior art date
Application number
KR1020077013189A
Other languages
English (en)
Other versions
KR101167225B1 (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 KR20070095891A publication Critical patent/KR20070095891A/ko
Application granted granted Critical
Publication of KR101167225B1 publication Critical patent/KR101167225B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0067Rate matching
    • H04L1/0068Rate matching by puncturing
    • H04L1/0069Puncturing patterns
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • 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
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6362Error control coding in combination with rate matching by puncturing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Error Detection And Correction (AREA)
  • Executing Machine-Instructions (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)

Abstract

프로그램 가능한 신호처리 회로로서, 상기 회로는 디펑쳐링 명령어를 포함하는 명령어 세트를 가지는 명령어 처리 회로(23,24,26)를 가진다. 상기 명령어 처리 회로(23,24,26)는 비트 메트릭 오퍼랜드로부터 비트 메트릭을 복사하고 비트 메트릭 오퍼랜드로부터의 비트 메트릭 사이에서 하나 이상의 미리 결정된 비트 메트릭 값을 디펑쳐링 결과에 삽입함으로써, 디펑쳐링 결과를 형성한다. 명령어 처리 회로(23,24,26)는 삽입된 미리 결정된 비트 메트릭 값(들)을 수용하기 위해 필요한 정도로, 비트 메트릭 오퍼랜드 내 서로에 대해 복사된 비트 메트릭의 상대적인 위치에 비교해서, 디펑쳐링 결과 내에서 서로에 대해 복사된 비트 메트릭의 상대적 위치를 변경시킨다.

Description

프로그램 가능한 신호 및 처리 회로 및 디펑쳐링 방법 {PROGRAMMABLE SIGNAL AND PROCESSING CIRCUIT AND METHOD OF DEPUNCTURING}
본 발명은 프로그램 가능한 신호 처리 회로 및 에러 정정 코드(Error Correcting code)를 디-펑쳐링(de-puncturing)하는 방법에 관한 것이다.
DVB(디지털 비디오 방송) 표준은 인코딩된 텔레비전 신호의 송신을 제공한다. 이들 신호를 디코딩하기 위해, 송신된 신호의 "디-펑쳐링(depuncturing)"에 의해 선행되는 에러 정정 디코딩을 포함하는, 많은 단계가 실행되어야 한다. 디펑쳐링은 펑쳐링의 상대 개념이며, 이는 에러 정정 코드(ECC)에서 인코딩 후 및 송신 전에 실행된다. 펑쳐링은 송신되어야 하는 많은 비트를 감소시키기 위해 선택된 위치로부터의 비트 제거를 포함한다. 이것은 ECC를 가지고 디코딩하는 동안 인코딩된 데이터의 복구를 여전히 허용하는 정도로 이루어진다. DVB 표준은 그러한 펑쳐링된 비트가 제거되어야 하는 위치를 정의한다.
디코딩 동안 미리 결정된 비트값은, 상기 ECC에 따라 데이터가 디코딩되기 전에, 즉, 통상적으로 비터비 디코딩(Viterbi decoding)이 데이터에 적용되기 전에 이들 위치에 재삽입된다(reinsert). 디-펑쳐링의 이러한 타입의 알려진 구현은 일반적으로 입력 비트의 스트림을 수신하는 전용 하드웨어 회로를 사용하고, 이 회로 는 그 입력 스트림의 비트를 출력하는 동안 그 입력 스트림이 펑쳐링 위치에 도달했을 때를 검출하고 그러한 위치에서 출력 스트림에 새로운 비트를 삽입한다. 디펑쳐링된 스트림은 이후 비터비 디코딩을 수행하기 위해 전용 하드웨어로 전달된다. 대안적으로, 디펑쳐링된 스트림은 덩어리(chunk)로 분할되는데, 이들 각각은 프로그램 가능한 프로세서의 레지스터에 함께 저장될 수 있는 미리 결정된 개수의 비트를 가지며, 그 프로세서는 이들 오퍼랜드를 사용하여 비터비 디코딩을 수행하도록 사용될 수 있다.
한 대안적인 구현 역시 디펑쳐링을 수행하기 위해 프로그램 가능한 신호 처리 회로의 사용을 포함한다. 그러나, 디펑쳐링의 비트-조작 속성으로 인해, 그러한 구현은 통상적으로 상당수의 명령어의 실행을 포함한다. 이것은 회로 속도가 더 높도록 요구하며 전력 소모를 증가시키는데, 이는 많은 명령어가 실행되어야 하기 때문이다. 이것은 VLIW(Very Large Instruction Word) 구현에 있어 특히 문제가 되는데, 아주 많은 명령어 워드의 로딩은 상대적으로 많은 양의 전력을 소모하기 때문이다.
특히, 본 발명의 목적은 프로그램 가능한 신호 처리 회로로 디펑쳐링을 수행하기 위해 요구되는 명령어 실행 사이클의 수를 감소시키는 것이다.
특히, 본 발명의 목적은 디펑쳐링의 방법을 제공하는 것이며, 미리 결정된 복수의 비트를 포함하는 레지스터 오퍼랜드를 가지는 프로그램 가능한 명령어는 디펑쳐링을 수행하는데 사용될 수 있다.
특히, 본 발명의 목적은 디펑쳐링의 방법을 제공하는 것으로서, 오퍼랜드 레지스터로부터 디펑쳐링된 결과 레지스터로의 복사되는 펑쳐링된 스트림으로부터 비트의 변화는 표준 폭(standard width)의 레지스터를 사용하는 프로그램 가능한 신호 처리기를 이용해서 작은 오버헤드를 가지고 처리될 수 있다.
특히, 본 발명의 목적은 DVB 송신 시스템에 있어서 프로그램 가능한 신호 처리 회로로 디펑쳐링을 수행하는데 필요한 명령어 실행 사이클의 수를 감소시키는 것이다.
특히, 본 발명의 목적은 디펑쳐링을 수행하는데 필요한 명령 실행 사이클의 수를 감소하는 것을 가능하게 하는 프로그램 가능한 신호 처리 회로를 제공하는 것이다.
특히, 본 발명의 목적은 디펑쳐링을 데이터 스트림에 적용하기 위해 프로그램 가능한 신호 처리 회로의 프로그램 루프에 로딩되어야 하는 명령의 개수를 최소화하는 것이다.
특히, 본 발명의 목적은 프로그램 가능한 신호 처리 회로를 사용하여 디펑쳐링의 효율적 방법을 제공하는 것이다.
본 발명은 청구항 제 1항에 따른 프로그램 가능한 신호 처리 회로를 제공한다. 이 프로그램 가능한 신호 처리 회로는 디펑쳐링 명령을 포함하는 명령어 세트를 가진다. 디펑쳐링 명령어에 대한 응답으로, 명령어 처리 회로는 비트 메트릭(metric) 오퍼랜드로부터 비트 메트릭을 복사하고 디펑쳐링 결과에서 비트 메트릭 오퍼랜드로부터의 비트 메트릭 간의 미리 결정된 비트 메트릭 값을 삽입하고, 삽입된 미리 결정된 비트 메트릭 값(들)을 수용하기 위해 비트 메트릭 오퍼랜드에서 서로에 대해 복사된 비트 메트릭의 상대적 위치와 비교하여, 디펑쳐링 결과에서 서로에 대해 복사된 비트 메트릭의 상대적 위치를 변경함으로써 디펑쳐링된 결과를 형성한다. 용어 "비트 메트릭(bit metric)"은 송신된 단일 비트에 관한 수신된 정보를 나타내는 하나 이상의 비트의 그룹에 대해 사용된다.
미리 결정된 비트 메트릭값이 펑쳐링 위치에서 수용될 수 있는 결과를 형성하는 특별한 명령어를 제공함으로써, 디펑쳐링은 프로그램 가능한 프로세서를 사용하여 고속에서 수행될 수 있다. 일 실시예에서, 디펑쳐링 명령어는 미리 결정된 비트 메트릭 값이 삽입되는 위치를 제어하는 추가 오퍼랜드를 가진다. 대안적으로, 상이한 디펑쳐링 명령어는 상이한 삽입 위치를 정의하기 위해 제공될 수 있다.
미리 결정된 비트 패턴값을 삽입하기 위한 다양한 실시예가 가능하다. 제 1 실시예에서 명령어 처리 회로는 이러한 목적을 위해 적어도 하나의 비트 메트릭 다중화 회로를 포함한다. 상기 다중화 회로는, 상기 비트 메트릭 오퍼랜드로부터 비트 메트릭 중 하나 또는 디펑쳐링 결과에서 미리 결정된 비트 메트릭 값을 비트 메트릭 필드로 제공하도록 선택하는데, 이는 상기 패턴 오퍼랜드가 하나의 비트 메트릭이 비트 메트릭 오퍼랜드로부터 디펑쳐링 결과의 상기 부분으로 복사되어야 함을 나타내는지의 여부 및 상기 패턴 오퍼랜드가 나타내는 복수의 비트 메트릭이 디펑쳐링 결과의 상기 부분을 앞서는 디펑쳐링 결과의 추가적인 부분에서 복사되어야 하는 비트 메트릭의 수에 의존한다. 이 실시예는 최소 지연량(minimum amountof latency)을 요구한다. 통상적으로, 복수의 그러한 다중화 회로가 사용될 것이며, 각각은 디펑쳐링 결과에서 개별적인 비트 메트릭 위치에 대한 것이다. 한 대안으로서, 제어 가능한 시프트 회로는 디펑쳐링 결과의 필드로 전달될 비트 메트릭을 선택하도록 사용될 수 있다. 이 경우, 미리 결정된 비트 메트릭 값은 시프트 후에 대체 회로에 의해 대체될 수 있거나, 또는 미리 결정된 비트 메트릭 값은 원하는 펑쳐링 패턴의 제어 하에 적절한 시프트 값을 사용함으로써 선택되는 시프트된 데이터의 일부분일 수 있다.
추가적인 실시예에서, 디펑쳐링 명령어 또는 추가적인 명령어는 디펑쳐링 명령어의 연이은 실행에 대한 비트 메트릭 오퍼랜드로서 사용된 결과일, 레지스터 내 큐(queue)를 형성하기 위해 제공된다. 이 큐 결과는 디펑쳐링 결과를 형성하기 위해 아직 사용되지 않은 비트 메트릭을 포함한다. 상기 큐 결과는 비트 메트릭 오퍼랜드로부터의 가변적인 펑쳐링 패턴 종속적인 수의 비트 메트릭이 디펑쳐링 결과로 복사되지 않는다는 사실을 받아들이기 위해 사용될 수 있다. 이들 나머지 비트 메트릭은 비트 메트릭 오퍼랜드로서 후에 사용되기 위해 큐 결과에 선택적으로 복사될 수 있다. 상기 큐 결과는, 단독으로 또는 추가적인 비트 메트릭 오퍼랜드와의 조합으로 디펑쳐링 결과를 형성하기 위한 충분한 비트 메트릭을 포함할 때까지, 비트 메트릭 오퍼랜드에서 비트 메트릭을 누적하기 위해 또한 사용될 수 있다. 바람직하게는, 프로그램 가능한 프로세서의 명령어 세트는 디펑쳐링 명령어를 제공하는데 이에 대한 응답으로 신호 프로세서가 큐 결과와 디펑쳐링 결과 둘 다를 형성한다. 이것은 레지스터 파일로의 액세스를 최소화하고, 명령어 세트에서 다른 명령어에 대한 보다 많은 공간을 남긴다. 대안적으로, 명령어를 형성하는 특별한 큐 결과가 제공될 수 있는데, 이는 큐 결과를 형성하기 위해 패턴 오퍼랜드와 비트 메트릭 오퍼랜드를 사용한다.
추가적인 실시예에서, 디펑쳐링 명령어 또는 추가적인 명령어는 추가적인 비트 메트릭 오퍼랜드를 수신하는데, 이는 미리 결정된 수의 비트 메트릭을 구비하는 비트 메트릭의 스트림으로부터의 덩어리(chunk)를 포함한다. 큐 길이 코드 오퍼랜드(queue length code operand)는 비트 메트릭 오퍼랜드에서 많은 비트 메트릭을 지정하는데 사용되고, 그 큐 결과는, 패턴 오퍼랜드에 따라, 디펑쳐링 명령어에 대한 응답으로 디펑쳐링 결과로 복사되지 않는 비트 메트릭을 포함함으로써 형성되어, 패턴 오퍼랜드 종속적인 수의 비트 메트릭은 큐 결과에서 추가적인 비트 메트릭 오퍼랜드로부터 비트 메트릭과 조합된다.
바람직하게는, 디펑쳐링 명령어 또는 추가적인 명령어는 디펑쳐링 명령어의 추가적인 실행에 의한 사용을 위해, 큐 결과에서 다수의 비트 메트릭을 나타내는 큐 길이 결과를 생성한다. 바람직하게는 큐 길이는, 디펑쳐링 결과에서 사용되지 않은 비트 메트릭 오퍼랜드로부터의 비트 메트릭에 추가하여, 추가적인 비트 메트릭 오퍼랜드로부터 큐 결과로 모든 비트 메트릭을 복사하기 위해 큐 결과상에 충분한 공간이 있는 경우에만, 추가적인 비트 메트릭 오퍼랜드로부터 비트 메트릭을 포함하기 위해 증가한다. 그렇지 않으면, 디펑쳐링 명령어 또는 추가적인 명령어의 실행은 동일한 추가적인 비트 메트릭 오퍼랜드로 반복된다. 이것은 입력 스트림과 출력 스트림 간 속도 차이를 더 받아들이기 쉽게 한다.
또다른 실시예에서, 길이값은 디펑쳐링 패턴에 추가하여, 패턴 오퍼랜드에서 제공된다. 이 길이값은 추가적인 비트 메트릭 오퍼랜드로부터 큐 결과로 복사되는 다수의 비트 메트릭값을 제어하기 위해 디펑쳐링 명령어 또는 추가적인 명령어에 대한 응답으로 사용될 수 있다. 이것은 큐 기간동안의 지연을 지연시킨다.
또다른 실시예에서, 디펑쳐링 명령어 또는 추가적인 명령어는 미리 결정된 수의 비트 메트릭을 구비한 비트 메트릭 스트림으로부터의 덩어리를 포함하는 추가적인 비트 메트릭 오퍼랜드를 필요로 한다. 그 디펑쳐링 결과는, 만약 비트 메트릭 오퍼랜드에서 상기 수의 비트 메트릭이 디펑쳐링 결과에서 사용되기 위한 충분한 복사본을 제공하기에 충분하다면, 비트 메트릭 오퍼랜드로부터 패턴 오퍼랜드 종속적인 수의 비트 메트릭을 디펑쳐링 결과에 위치시킴으로써 형성된다. 이것은 고속으로 미리 결정된 수의 비트 메트릭을 구비하는 유효한 디펑쳐링 결과를 생성하는 것을 가능하게 한다. 상기 비트 메트릭의 수가 불충분할 때, 플래그 결과(flag result)가 디펑쳐링 결과의 사용을 막기 위해 바람직하게 생성된다. 이 경우, 비트 메트릭 오퍼랜드로부터의 모든 비트 메트릭 및 추가적인 비트 메트릭 오퍼랜드로부터 실제적인만큼 많은 비트 메트릭이 바람직하게는 큐 결과로 복사되어, 나중에 유효한 디펑쳐링 결과를 생성하는 것이 가능할 것이다.
본 발명의 이들 및 다른 목적과 유리한 양상은 본 발명의 비제한적인 예를 도시하는 다음 도면들의 기술로부터 설명될 것이다.
도 1은 신호 수신기 장치를 도시하는 도면.
도 2는 프로그램 가능한 신호 처리 회로를 도시하는 도면.
도 3은 디펑쳐링 기능 유닛을 도시하는 도면.
도 4는 오퍼랜드 갱신 회로를 도시하는 도면.
도 5는 디펑쳐링 회로를 도시하는 도면.
도 6은 추가적인 디펑쳐링 기능 유닛을 도시하는 도면.
도 7은 추가적인 디펑쳐링 기능 유닛을 도시하는 도면.
도 8은 보조 결과 계산 회로를 도시하는 도면.
도 1은 DVB(디지털 비디오 방송) 수신기 장치와 같은, 신호 수신기 장치를 도시한다. 이 장치는 캐스캐이드(cascade)로 연결된 프론트 엔드(front end)(10), 디지털 신호 처리 회로(12) 및 백 엔드(back end)(14)를 포함한다. 프론트 엔드(10)는 비디오 방송 신호를 수신하기 위한 입력을 가진다. 동작시 프론트 엔드(10)는 비디오 방송 신호를 수신하고, 그 신호로부터 디지털 정보를 검색한다. 디지털 신호 처리 회로(12)는 디지털 정보를 수신하고, 비디오 데이터 신호를 형성하기 위해 디지털 정보를 처리한다. 디지털 신호 처리 회로는 그 비디오 데이터 신호를 백 엔드(14)에 인가하는데, 이는 예를 들어, 연결된 비디오 디스플레이 스크린(미도시)을 위한 디스플레이 데이터 또는 연결된 비디오 레코딩 디바이스(미도시)를 위한 저장 데이터를 생성할 수 있다. 백 엔드(14)는 이러한 목적을 위해 비디오 디스플레이 스크린 및/또는 레코딩 디바이스 자체를 포함할 수 있다.
디지털 신호 처리 회로(12)는 (샘플링된 신호를 변조하기 위해 사용된 데이터 항목을 복원하는 디지털 신호 샘플을 사용하는) 복조 및 에러 정정 코드(ECC)에 따른 복조된 데이터 항목의 디코딩과 같은 동작을 수행하는 프로그램을 구비해서 프로그래밍되는 프로그램 가능한 신호 처리 회로를 포함한다.
본 발명은 디지털 신호 처리 회로(12)에서 데이터의 디펑쳐링에 관한 것이다. 디코딩에 앞서, 디지털 신호 처리 회로(12)는 데이터를 디펑쳐링한다. 디펑쳐링은 펑쳐링의 역이며, 이는 송신기 측에서 수행된다. ECC 인코딩된 데이터의 선택된 비트는 송신되는 데이터의 데이터 속도를 감소시키기 위해 송신되지 않는다. 수신측에서, 디폴트 값(default value)은 ECC에 따라 에러 정정을 위해 수신된 신호를 사용하기 전에 송신되지 않은 비트를 대체한다.
도 2는 디지털 신호 처리 회로(12)로부터 프로그램 가능한 신호 처리 회로를 도시한다. 상기 프로그램 가능한 신호 처리 회로는 명령어 발행 유닛(20), 레지스터 파일(22), 복수의 기능 유닛(23,24,26) 및 데이터 메모리(28)를 포함한다. 명령어 발행 유닛(20)은 디지털 신호 처리 회로를 위한 프로그램을 저장하고, 프로그램 실행 동안 프로그램 흐름에 의해 결정된 것과 같은 명령어를 검색하도록 배열된다. 명령어 발행 유닛(20)은 명령어의 동작 코드에 의해 결정된 제어 신호를 제공하기 위해, 기능 유닛(24,26)에 결합된 동작 제어 출력을 가지며, 이 코드는 기능 유닛(23,24,26)에 의해 실행되어야만 하는 동작을 식별한다. 명령어 발행 유닛(20)은, 명령어의 오퍼랜드를 포함하는 레지스터와 명령어의 결과가 저장되어야 하는 레지스터를 나타내는 선택 신호를 제공하기 위해, 레지스터 선택 출력을 레지스터 파일(22)의 포트에 결합시킨다. 상기 명령어는 선택 신호를 제어하는 필드를 포함한다. 레지스터 파일(22)의 출력 포트는 선택된 레지스터로부터 오퍼랜드를 제공하 기 위해 기능 유닛(23,24,26)에 결합되며, 레지스터 파일(22)의 입력 포트는 명령어 실행의 결과를 수신하기 위해 기능 유닛(23,24,26)에 결합된다.
비록 제어 코드, 레지스터 선택 코드, 오퍼랜드 및 결과를 공급하기 위한 통신 연결을 나타내기 위해 단일선이 사용되었으나, 실제로 그러한 연결 구현시 많은 도선(conductor)이 동시에 사용될 것임이 이해될 것이다. 단일선은 복수의 레지스터 선택 코드를 공급하기 위한, 또는 복수의 오퍼랜드를 제공하기 위한, 또는 복수의 결과를 반환하기 위한 연결을 나타낼 것이다. 추가적으로, 비록 각각이 명령어 발행 유닛(20) 및 레지스터 파일(22)로의 고유한 연결을 가지는 3개의 기능 유닛(23,24,26)이 도시되었으나 만약 상이한 기능 유닛의 기능들이 레지스터 파일(22)로 공통 연결을 공유하는 기능 유닛으로 그룹핑된다면, 실제로 더 많은 또는 더 적은 기능 유닛이 제공될 수 있음이 이해될 것이다.
기능 유닛은 프로세서에 의해 실행될 수 있는 모든 타입의 명령어로 구성되는 "명령어 세트"를 한정한다. 여기서 사용되는 바와 같이, "명령어"는 개별적인 기능 유닛에 의해 실행될 동작을 선택하는 프로그램의 기본 단위이다. 명령어는 명령어로서의 역할을 할 수 있는 단위로 더 쪼개질 수 없는 프로그램의 "최소단위(atoms)"이다. 통상적으로, 각 명령어는 그 명령어를 식별할 수 있는 단일 op 코드(동작 코드)를 가진다. 잘 알려진 바와 같이, 프로그램 가능한 프로세서의 설계는 통상적으로 명령어 세트의 규정으로부터 시작하는데, 명령어 세트의 규정은 적어도 프로세서의 기본 구현을 선택하기에 충분한 정보를 당업자에게 제공한다.
제 1 기능 유닛(23)은 데이터 메모리(28)에 결합된 메모리 액세스 기능 유닛 이다. 이 메모리 액세스 기능 유닛(23)은 데이터 메모리(28)에서 위치 어드레스를 지정하는 오퍼랜드로 "LOAD" 및 "STORE" 명령을 실행하도록 설계된다. 데이터 메모리(28)는 신호 데이터를 수신하고 비디오 데이터를 송신하기 위해 프론트 엔드(10)(미도시) 및/또는 백 엔드(14)(미도시)에 또한 결합된다. (사실 한 그룹의 기능 유닛을 포함할 수 있는) 제 2 기능 유닛(24)은 ADD, SHIFT 등과 같은 ALU 명령어 같은 종래의 명령어를 실행하도록 설계된다. 도시되지 않았으나, 추가적인 기능 유닛이 제공될 것이므로, 예를 들어 몇 가지 명령어는 동시에 실행될 수 있거나, 다른 명령어들이 실행될 수 있다.(예를 들어, 프론트 엔드(10)(미도시)로부터의 신호 데이터의 입력 및/또는 백 엔드(14)(미도시)로의 비디오 데이터 출력(미도시))
수신된 데이터를 처리하는 동안 기능 유닛의 오퍼랜드는 수신된 비트값에 관한 확실성을 나타내기 위해, 수신된 비트 당 복수의 오퍼랜드 비트(예를 들어 4개의 오퍼랜드 비트)를 사용하여 수신된 신호로부터의 각 비트를 통상적으로 나타낸다. 그러한 복수의 오퍼랜드 비트는 " 비트 메트릭(bit metric)"으로서 참조될 것이다. 그러나, 본 발명에서 벗어남 없이, 단일 오퍼랜드 비트가 수신된 비트를 나타내기 위해 사용될 것이다. 이 경우, 그러한 "비트 메트릭"은 단일 비트로 참조한다.
프로그램 가능한 명령어 프로세서의 프로그램은 신호 데이터의 디펑쳐링을 제공한다. 특별한 제 3 기능 유닛(26)은 디펑쳐링의 목적으로 제공되는 명령어를 실행하기 위해 제공된다. 일 실시예에서 이 디펑쳐링 기능 유닛(26)에 의해 실행되 는 타입의 명령어는
DEFUNCTURE R1,R2,R3,R4,R5,R6
으로 표시될 수 있다.
이 기호에서 R1,R2 등은 오퍼랜드를 제공하기 위해 및 명령어의 결과를 기록하기 위해 사용되는 레지스터 파일(22)에서 레지스터를 식별하는 레지스터 선택 코드를 나타낸다. 그러나 명령어는 R1 등이 레지스터"이다"라고 말함으로써 여기에서 구어적으로 설명될 것이다. 이것은 R1 등이 레지스터 파일(22)에서 레지스터를 식별하는 선택 코드를 나타냄을 의미하는 것으로 이해되어야 한다. 좀 더 구어적으로는, R1 등이 "오퍼랜드이다"라고 말해질 것이다. 이것은 R1 등이 오퍼랜드를 포함하는 레지스터 파일(22)에서 레지스터를 식별하는 선택 코드를 나타냄을 의미하는 것으로 또한 이해되어야 한다.
이 표시에서 DEPUNCTURE는 명령어를 식별하는 op-코드를 나타내고, R1,R2가 수신된 비트에 대한 비트 메트릭을 포함하는 오퍼랜드 레지스터이다. R3는 길이 코드를 포함하는 오퍼랜드 레지스터이다. R4는 패턴 코드를 포함하는 오퍼랜드 레지스터이다. R5는 레지스터 R1 및 선택적으로 R2로부터의 비트 메트릭 더하기 삽입된 디폴트 비트 메트릭이 기록될 결과 레지스터이다. R6은 레지스터 R1 및 R2로부터의 추가적인 비트 메트릭이 기록될 결과 레지스터이다.
명령어가 실행될 때, 레지스터 R1 및 선택적으로 R2로부터의 비트 메트릭은 추가적으로 삽입된 디폴트 비트-메트릭을 가지고 레지스터 R5에 복사된다. 레지스터로부터 남아 있는 비트 메트릭의 오퍼랜드 부분에 의존하여, R1,R2는 레지스터 R6으로 출력된다. 레지스터 R6의 목적은 명령의 실행이 오퍼랜드 레지스터 R1로서 동작하는 레지스터 R6를 구비하여 반복될 수 있는 것이다.
도 3은 디펑쳐링 기능 유닛(26)의 실시예를 도시한다. 상기 디펑쳐링 기능 유닛은 오퍼랜드 조합 회로(30), 디펑쳐링 기능(32) 및 오퍼랜드 갱신 회로(34)를 포함한다. 상기 디펑쳐링 기능 유닛은, 레지스터 (R1,R2,R3,R4)로부터의 오퍼랜드 데이터를 수신하기 위한 4개의 오퍼랜드 입력(36a-d) 및 레지스터(R5,R6)으로 결과를 출력하기 위한 결과 출력(38,39)를 가진다.
오퍼랜드 조합 회로(30)는 N개의 연속적인 비트 메트릭을 포함하는 출력 신호를 형성하기 위해 배열되는데 이 비트 메트릭 중 L개의 비트 메트릭은 입력 36a에서 오퍼랜드 R1으로부터, N-L은 입력 36b에서 오퍼랜드 R2로부터 유도되며, L은 오퍼랜드 입력 36c로부터 길이 코드에 의해 제어된다.
도 4는 오퍼랜드 조합 회로(30)의 실시예의 예시를 도시한다. 이 실시예에서 시프트 회로(40) 및 OR 회로(42)가 사용된다. 제 1 오퍼랜드 입력(36a)은 OR 회로(42)의 제 1 입력에 결합되고 제 2 오퍼랜드 입력(36b)은 시프트 회로(40)의 입력에 연결되는데, 이 시프트 회로(40)는 OR 회로(42)의 제 2 입력에 결합된 출력을 갖는다. 제 3 오퍼랜드 입력(36c)은 시프트 회로(40)의 제어 입력에 연결된다. OR 회로(42)의 출력 및 시프트 회로(40)의 출력의 일부는 오퍼랜드 조합 회로의 출력을 형성한다.
시프트 회로(40)는 예를 들어 알려져 있는 배럴 시프트 회로(barrel shift circuit)로서 구현되며, 이는 병렬 입력을 갖는데, 이 입력 중에서 최상위 입력이 제 2 오퍼랜드 입력(36b)으로부터 M- 비트 오퍼랜드의 M 비트를 동시에(예를 들어 M=32) 수신하며, M 개의 하위 입력이 예를 들어 논리 0 값을 수신한다. 시프트 회로(40)는 2*M개의 병렬 출력을 가지며, 이 출력은 L 비트 메트릭 위치에 대해 시프트된 입력 신호의 복사를 하위 위치(less significant position)으로 출력한다(즉, 만약 비트 메트릭이 4비트로 나타난다면, 4*L 비트에 대한 시프트가 이용된다). 시프트 양은 제 3 오퍼랜드 입력(36c)에 의해 제어된다. 최상위 L 비트 메트릭 위치에서, 시프트 회로(40)는 논리 0을 출력한다. OR 회로(42)는 제 1 오퍼랜드 입력(36a)으로부터의 M개의 입력 비트와, 시프트 회로(40)의 최상위 M 출력 비트의 비트 단위 논리 OR를 생성하며, 시프트 회로(40)의 하위 M 출력 비트는 오퍼랜드 조합 회로(30)의 출력에 직접 인가된다.
동일한 기능을 실현하는 많은 대안 구현이 가능하다는 점이 이해되어야 한다. 간단한 예로서, 회로가 제 1 오퍼랜드(R1)에서 사용되지 않는 위치에서 논리 "1"값을 포함하도록 배열된다면, 비트 단위 AND 회로가 OR 회로(42) 대신 사용될 수 있다. 신호의 반전된 버전 등이 사용될 수 있다.
디펑쳐링 회로(32)는, 비트 메트릭이 오퍼랜드 조합 회로(30)으로부터 출력되는 시퀀스에서, 오퍼랜드 조합 회로(30)의 출력으로부터 디펑쳐링 회로(32)의 출력으로 비트 메트릭의 복사본을 출력하도록 배열된다. 출력 시퀀스에 있는 비트 메트릭 사이에서 디펑쳐링 회로(32)가 선택된 위치에서 디폴트 비트 메트릭을 삽입하며, 이 위치는 제 4 오퍼랜드 입력(36d)으로부터 오퍼랜드에 의해 제어된다.
도 5는 디펑쳐링 회로(32)의 실시예를 도시한다. 이 실시예는 복수의 다중화 회로(50) 및 일련의 가산기 회로(50)를 포함한다. 제 1 가산기 회로(52)를 제외한 각각의 체인으로부터의 가산기 회로(52)는 이전 가산기 회로(52)의 출력에 결합된 제 1 입력을 갖고, 가산기 회로의 제 2 입력은 제 4 오퍼랜드 입력(36d)로부터의 각 비트에 결합된다. 다중화 회로(50) 각각은 디폴트 비트 메트릭 소스에 결합된 제 1 입력(54) 및 오퍼랜드 조합 회로(30)의 각 비트 메트릭 출력에 결합된 하나 이상의 제 2 비트 메트릭 입력을 가진다 (비록 단일 선이 도시되었으나, 비트 메트릭의 각 비트를 제공하기 위해 각 선은 복수의 데이터 도선, 예를 들어 4개의 데이터 도선을 나타낼 수 있음이 이해되어야 한다). 다중화 회로(50) 각각은 제 4 오퍼랜드 입력(36d)로부터 각 비트에 결합된 제어 입력을 가진다. 가산기 회로(52)의 출력은 다중화 회로(50)의 각각의 추가적인 제어 입력에 결합된다.
동작시, 제 4 오퍼랜드 입력(36d)로부터의 오퍼랜드의 각 비트는 디펑쳐링 회로(32)의 출력에서 비트 메트릭을 출력하기 위해 하나 이상의 비트의 각 그룹에 대응한다. 제 4 오퍼랜드 입력(36d)으로부터의 각각의 개별적인 비트의 오퍼랜드는 대응하는 그룹이 디폴트 비트 메트릭을 포함해야 하는지 또는 오퍼랜드 조합 회로(30)으로부터의 비트 메트릭을 포함해야 하는지를 나타낸다. 다중화 회로(50)는 디폴트 비트 메트릭 또는 출력 조합 회로(30)으로부터의 비트 메트릭이 전달되는지를 제어하기 위해 제 4 오퍼랜드 입력(36d)으로부터 이들 비트를 사용한다. 게다가, 가산기 회로(52)로부터의 출력은 오퍼랜드 조합 회로(30)으로부터 어느 비트 메트릭스가 전달될지를 제어한다. 각 다중화 회로(50)는 결과 출력(39)에서 최상위 출력 비트에 연결되는 다중화 회로(50)의 어느 하나에 의해 전달되지 않는 최상위 비트로부터 비트 메트릭을 전달한다. 다중화 회로(50)는 중요도가 감소하는 출력에 연결되는 다중화 회로(50)에 대해 증가하는 숫자 "i"로 i=0,1,2,...로 넘버링될 수 있다. 유사하게, 제 4 오퍼랜드 입력(36d)로부터 비트(Bj)는 숫자 j로 넘버링될 수 있고, 오퍼랜드 조합 회로(30)으로부터 비트 메트릭(Mk)은 숫자 k로 넘버링될 수 있다. 이 표기에 따라, 가산기 회로(52)는 비트 메트릭 Bk를 전달하기 위해 숫자 i로 다중화 회로(50)를 제어하는데, j<i이므로 이 비트 메트릭의 숫자 k가 비트 Bj의 합과 동일하다.
도 5는 디펑쳐링 회로의 하나의 가능한 실시예를 단지 도시함이 이해되어야 한다. 대안의 예로서, 제어가능한 시프트 회로의 체인이 사용될 수 있으며, 각 시프트 회로는 패턴으로부터 각 비트에 의해 제어된다. 이 대안에서 오퍼랜드 조합 회로(30)로부터의 데이터는 체인의 출발에 적용된다. (처음 부분을 제외하고)디펑쳐링 출력(39)의 각 부분은 디폴트 비트 메트릭 값 또는 체인에서 각 시프트 레지스터로부터의 값을 제어적으로 수신한다. 그러한 해법은 지연이 쟁점이 아닌 경우 가능하나, 이해되는 바와 같이, 다중화 구현은 일반적으로 더 적은 지연을 가지는 이점을 가진다. 다중화 회로는 예를 들어 다중화 기능(선택된 입력에서 출력으로의 복사 데이터)에 해당하는 논리 기능을 가지는 논리 회로 또는 스위치 회로 등으로서, 알려진 어느 한 방법으로 구현될 수 있다.
오퍼랜드 갱신 회로(34)는 제 1 오퍼랜드 입력(36a)에서 후속적인 오퍼랜드로서 사용되기 위한 결과를 형성한다. 일 실시예에서 오퍼랜드 갱신 회로(34)는 시 프트 회로인데, 이는 상위 위치로 오퍼랜드 조합 회로(30)의 출력 신호를 시프트함으로써 결과를 형성한다. 시프트의 양은 디펑쳐링 회로(32)에 의해 출력되는 오퍼랜드 조합 회로(30)으로부터의 비트 메트릭의 수에 의해 제어되는데, 즉 시프트의 양은 제 4 오퍼랜드 입력(36d)으로부터 오퍼랜드의 콘텐츠에 해당한다. 그러므로 제 1 결과는 상기 명령어에 대한 응답으로 디펑쳐링 회로(32)로부터 출력되지 않는 최상위 비트 메트릭으로 시작한다. 바람직하게는 제 4 오퍼랜드 입력(36d)으로부터의 오퍼랜드는 디폴트 비트 메트릭이 삽입되어야하는 경우를 나타내는 비트에 추가하여, 펑쳐링 회로(32)가 입력 조합 회로(30)으로부터 사용하는 비트 메트릭의 수를 나타내는 수를 포함한다. 이것은 최소 가능한 명령어 사이클 길이를 감소시킨다. 대안적으로, 이 수는 예를 들어 가산기 회로(52)를 사용하여, 디폴트 비트 메트릭이 삽입되어야 하는 경우를 나타내는 비트로부터 계산될 수 있다.
비트 메트릭의 스트림에 디펑쳐링을 적용하기 위한 프로그램은, 도 3의 디펑쳐링 기능 유닛이 DEPUNCTURE 동작을 반복적으로 실행하도록 하기 위해, 바람직하게는 루프 내에 DEPUNCTURE 명령어를 포함한다. 그러한 루프 내에 명령어의 예는
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1
.... 다음 R3값을 계산하기 위한 명령어
.... 및 새로운 입력을 로딩하기 위한 가드값 R7
STORE A1++,R5
LOAD A2++,R4
IF R7 LOAD A3++,R2
이 루프 내에서 결과 출력(38)으로부터의 결과는 오퍼랜드를 제 1 오퍼랜드 입력(36a)으로 제공하기 위해 오퍼랜드 레지스터 R1로서 사용되는 레지스터 R1로 저장된다. 레지스터(R5)에서 디펑쳐링된 출력은 어드레스 레지스터(A1)으로부터 어드레스에서 메모리에 저장된다. 명령어는 어드레스 레지스터(A2)에 의해 결정되는 어드레스로부터 연속적인 펑쳐링 패턴을 레지스터 (R4)로 로딩하기 위해 루프 내에 포함된다. 추가적인 명령어는 새로운 제 2 오퍼랜드를 레지스터(R2)로 로딩하기 위해 포함된다. 가드된 로딩 명령어(guarded load instruction)는 이 목적을 위해 이용되며, 이는 이 명령어가 가드 레지스터(R7)에서 플래그가 설정되는 경우에만 완전하게 실행됨을 의미한다.
추가적으로, 명령어는 R3에서 길이값을 갱신하기 위해 및 레지스터(R7)에서 가드 값을 계산하기 위해 포함된다. 일 실시예에서, 새로운 길이 값(L')은 식
L'=L+I-M
으로 계산된다.
여기서 L은 {제 3 오퍼랜드 입력(36c)로부터 오퍼랜드에 의해 나타난 바와 같이} 제 1 오퍼랜드 입력(36a)으로부터 오퍼랜드에 제공된 비트 메트릭의 수를 나타내는 이전 길이 값이다. I는 제 2 오퍼랜드 입력(36b)로부터 오퍼랜드로부터의 비트 매트릭의 수(I)이다. M은 레지스터(R4)에서 패턴에 의존한다. M은 디펑쳐링 회로(32)로부터의 결과를 형성하기 위해 사용되는 입력 조합 회로(30)의 출력으로부터 비트 메트릭의 수(M)이다. 만약 L'가 레지스터(R1)에 저장될 수 있는 비트 메 트릭의 최대 수보다 크다면, 명령어 세트(R3)는
L'=L-M
에 따라 대신 설정된다. 이 경우 R7에서 플래그가 설정되어 제 2 오퍼랜드로서 사용하기 위해 새 값을 레지스터(R2)로 로딩하는 것 역시 억제된다.
길이 값을 계산하고 입력 오퍼랜드를 갱신하는 이러한 방법은 디펑쳐링 결과가 결과 레지스터(R5)에 기록되는 출력 속도가 새로운 레지스터값이 로딩될 입력 속도와 다를 수 있는 효과를 가진다.
추가적인 실시예에서, 디펑쳐링 기능 유닛은 DEPUNCTURE 명령에 대한 응답으로 레지스터 R7에 대한 플래그 및/또는 새로운 길이 값의 계산 또한 수행하도록 배열된다. 이것은 이 계산을 위해 요구되는 모든 정보가 이미 디펑쳐링 기능 유닛의 오퍼랜드 입력에서 이미 사용가능하기 때문에 오퍼랜드 오버헤드가 거의 필요하지 않으므로, 어떠한 추가적인 오퍼랜드도 요구되지 않는다. 이 목적을 위한 디펑쳐링 기능 유닛의 사용은 어떠한 추가적인 명령어도 로딩될 필요가 없거나, 이 계산을 위해 다른 기능 유닛이 사용될 필요가 없다는 이점을 가진다.
이들 계산은 예를 들어, 결과에 맞는 비트 메트릭의 최대 수와 L+I-M을 비교하기 위한 비교기 회로 및 계산 회로를 추가함으로써 지원될 수 있다. 비교기 회로는 레지스터(R7)에 대한 플래그를 출력하고 계산 회로는 그 플래그 값에 따라 L+I-M 또는 L-M을 계산하고 출력한다. 그러한 수정된 디펑쳐링 기능 유닛 및 대응적으로 수정된 DEPUNCTURE 명령어를 가지는, 프로그램 루프의 한 예는,
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1,R7,R3
STORE A1++,R5
LOAD A2++,R4
IF R7 LOAD A3++,R2
이다.
이 경우, DEPUNCTURE 명령어는 레지스터(R7,R3)에 각각 기록되는 두 개의 추가적인 결과를 생성한다. R7은 플래그를 수신하고, R3는 갱신된 길이를 수신한다.
대안으로서 복수의 상이한 명령어는 DEPUNCTURE 명령의 개별적인 부분을 수행하기 위해 정의될 수 있다는 점이 이해되어야 한다. 예를 들어, 단지 디펑쳐링 결과 R5를 형성하는 순수 DEPUNCTURE 명령어가 정의될 수 있고, 갱신된 오퍼랜드 R1을 형성하는 OPERAND_UPDATE 명령어가 정의될수 있고, 추가적인 결과를 형성하는 보조 명령어 AUX가 정의될 수 있다. 이 경우, 프로그램 루프는
repeat
DEPUNCTURE R1,R2,R3,R4,R5
UPDATE_OPERAND R1,R2,R3,R4,R1
AUX R3,R4,R3,R7
STORE A1++,R5
LOAD A2++,R4
IF R7 LOAD A3++,R2
로서 구현될 수 있다.
이들 세 개의 새로운 명령어의 쌍이 단일 명령어로 조합될 수 있는 다른 대안 예가 가능하다. 단일 기능 유닛은 이들 명령어 중 이들 세 개 각각 또는 두 개를 수행하기 위해 제공될 수 있다. 대안적으로, 세 개의 상이한 기능 유닛은 이들 명령어들 각각을 수행하도록 제공될 수 있다. 만약 VLIW 또는 수퍼스칼라 프로세서가 사용된다면, 이는 상기 명령어들의 실행이 동시에 수행될 수 있다는 이점을 가지므로, 루프에 대해 요구되는 명령어 사이클의 수는 감소될 수 있다.
본 발명에 따른 프로그램 가능한 처리 회로의 응용의 한 예는 DVB 디코딩이다. DVD 디코딩동안 상이한 펑쳐링 패턴이 사용될 수 있다. 예를 들어, 1/2, 2/3, 3/4, 5/6, 또는 7/8의 속도를 가지는 펑쳐링 패턴은 ECC 인코딩에 의해 두 배가 되는 스트림에 대해 사용될 수 있다. 다음 표는 인코딩동안 사용될 수 있는 펑쳐링 패턴을 도시한다.
속도 펑쳐링 패턴
1/2 11
2/3 1101
3/4 110110
5/6 1101100110
7/8 11010101100110
선택된 속도의 펑쳐링 패턴은 비트 스트림에 적용되며, 패턴 내 연속된 심볼은 비트 스트림 내 연속된 비트에 대응한다. 펑쳐링 패턴에서 "1"은 대응하는 비트가 스트림 내 남아 있음을 나타내고, 0은 대응하는 비트가 생략되어야 함을 나타낸다. 비트 스트림이 패턴의 길이보다 길 때, 패턴은 반복된다.
결과적인 스트림의 송신 후, 송신된 비트에 대응하는 비트 메트릭이 계산된다. 본 발명에 따른 프로그램은, 비트가 생략된 위치에서 디폴트 비트 메트릭을 삽 입하기 위해 및 각각이 (수신되거나 삽입될 때) 미리 결정된 수의 비트 메트릭을 포함하는 결과를 생성하기 위해 DEPUNCTURE 명령을 사용한다.
예시의 방법으로 그러한 경우가 논의될 것이며, 여기서 각 결과는 8 비트 메트릭을 포함한다. 다음의 표는 스트림을 디펑쳐링 하기 위해 프로그램의 레지스터 (R4)에서 사용될 수 있는 패턴을 도시한다.
속도 패턴1 패턴2 패턴3 패턴4 패턴5
1/2 11111111 11111111 11111111 11111111 11111111
2/3 11011101 11011101 11011101 11011101 11011101
3/4 11011011 01101101 10110110 11011011 01101101
5/6 11011001 10110110 01101101 10011011 01100110
7/8 11010101 10011011 01010110 01101101 10110101
연속된 열(column)은 DEPUNCTURE 명령어의 연속적인 호출동안 사용되는 연속적인 패턴을 도시한다. 알 수 있는 바와 같이, 동일한 패턴이 속도 1/2 및 속도 2/3 디코딩동안 반복적으로 사용되는데, 왜냐하면 결과에서 비트 메트릭의 수 N(예에서 N=8)가 기본 펑쳐링 패턴의 정수배와 동일하기 때문이다. 이것은 다른 속도에 대한 경우가 아니며, 따라서, 상이한 패턴이 이 속도에 대한 연속적인 명령어 호출을 위해 사용되며, 각 패턴은 대응하는 기본 패턴 반복의 N비트 덩어리를 포함한다. 속도 3/4 인코딩의 경우, 패턴은 세 개의 명령어 호출 후에 반복된다. 속도 5/6의 경우 패턴은 5개의 명령어 호출 후에 반복된다. 속도 7/8의 경우 패턴은 일곱 개의 명령어 호출 후에 반복된다(패턴의 사이클의 일부분은 표에 미도시). 바람직하게는, (예를 들어 메모리 액세스 유닛에서) 모듈로 어드레스 계산(modulo address computation)이 특정 속도에 적합한 어드레스 반복 사이클로 패턴을 로딩하기 위한 어드레스를 계산하도록 사용된다.
추가적인 실시예에서, 예측적인 플래그 값은, 루프의 다음 실행을 위해 L+I-M이 MAX(결과에 맞는 비트 메트릭의 최대 수) 이하일지의 여부를 결정하기 위해, 레지스터(R7)에 대해 계산될 것이다. 이 경우, 레지스터(R2)에서 오퍼랜드에 대한 로딩 명령의 실행은 이 오퍼랜드가 실제로 사용될 때까지 지연될 수 있다. 추가적으로, DEPUNCTURE 명령어의 정의 및 이 명령어를 실행하기 위한 디펑쳐링 기능 유닛의 정의가 더 수정될 수 있어서 이 플래그 값은 상기 명령어의 추가적인 오퍼랜드로서 적용된다. 이 경우, 디펑쳐링 기능 유닛은 플래그가 어떠한 새로운 오퍼랜드도 로딩되지 않음을 나타낼 때, 레지스터(R2)로부터 오퍼랜드에 대한 디폴트 값(예. 논리 0)을 대체하기 위해 적응될 수 있다. 이것은 레지스터(R2)의 값이 문제가 되지 않는 이점을 가져서, 만약 LOAD 명령어가 완전히 실행되지 않는다면 이 레지스터에서 정의되지 않은 값이 허용될 수 있다. 즉, 명령어의 호출은
DEPUNCTURE R1,R2,R3,R4,R7,R5,R1
의 형태를 취할 수 있다.
여기서, 플래그 레지스터(R7)는 디폴트 값이 R2의 콘텐츠에 대해 대체될 것인지의 여부를 제어하기 위한 입력으로서의 역할을 한다.
예측적인 플래그 값은 루프 내 추가적인 명령어에 의해 계산될 수 있으나, 바람직하게는 디펑쳐링 기능 유닛이 예측적인 플래그 값을 계산하기 위해 적응될 수 있다. 이 경우 DEPUNCTURE 명령어는
DEPUNCTURE R1,R2,R3,R4,R7,R5,R1,R7,R3
의 형태를 취할 수 있다.
예측 가능한 플래그 값을 계산하기 위해 레지스터(R4)에서 향후 패턴 값에 따라 입력 오퍼랜드(R1)으로부터 사용될 비트 메트릭의 수에 관한 정보가 요구된다. 바람직하게는, 이 정보가 레지스터(R4)에서 현재 패턴 값을 가지고 포함되나, 대안적으로는 이 목적을 위해 추가적인 오퍼랜드가 사용될 수 있다.
변조된 신호의 디코딩 동안, R5에 기록되는 결과에 포함될 수 있는 최대 비트 메트릭의 수보다 오퍼랜드(R2)에서 비트 메트릭의 더 작은 수를 사용하는 것이 바람직할 것이다. 결과적으로, 충분한 비트 메트릭이 R5에서 결과를 형성하기 위해 사용가능하기 전에 복수의 오퍼랜드의 로딩이 필요할 수 있다. 일 실시예에서, 이것은 디펑쳐링 기능 유닛에 의해 지원되어 상기 오퍼랜드는 레지스터(R2)를 거쳐 DEPUNCTURE 명령어의 반복 실행으로 제공될 수 있다. 이 목적을 위해 디펑쳐링 기능 유닛은 디펑쳐링된 결과가 유효한지의 여부를 나타내기 위해 추가적인 결과 출력에 제공된다. 그러한 디펑쳐링 기능 유닛에 의해 실행되는 DEPUNCTURE 명령어를 사용하는 프로그램 루프의 예는 다음 형태를 취할 것이다.
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1,R8
R3 및 R7에 대한 새로운 값을 계산하는 명령어
IF R8 STORE A1++,R5
IF R8 LOAD A2++,R4
IF R7 LOAD A3++,R2
이 루프에서 R5에 대한 STORE 명령어의 실행은 레지스터(R8)로부터의 플래그 에 의해 가드되어(guarded), 저장 명령은 상기 플래그가 적절한 값을 지닐 때만 완전하게 실행될 것이다. 유사하게, 패턴을 R4로 로딩하기 위한 LOAD 명령어의 실행은 R8로부터의 플래그에 의해 가드되어, 이 로딩 명령은 상기 플래그가 적절한 값을 지닐 때만 완전하게 실행될 것이다. 상기 플래그는 DEPUNCTURE 명령의 실행에 의해 설정된다.
도 6은 이러한 타입의 DEPUNCTURE 명령을 실행하기 위해 사용될 수 있는 디펑쳐링 기능 유닛의 실시예를 도시한다. 여기서 계산/비교기 회로(60)는 디펑쳐링 기능 유닛의 결과 출력(62)에 결합된 출력을 구비해서 추가되었다. 계산/비교기 회로(60)는 프로그램 예에서 R8에 기록될 플래그를 계산하도록 배열된다. 계산/비교기 회로(60)는
L+I<M
인지의 여부 즉, 제 1 오퍼랜드 입력(36a)에서 비트 메트릭의 수(L)와 제 2 오퍼랜드 입력(36b)에서 비트 메트릭의 수(I)의 합이 결과 출력(39)에서 출력되어야 할 비트 메트릭의 수(M)보다 작은지의 여부를 결정한다. 만약 그렇다면, 결과 출력(62)에서 출력 플래그는 R5에 대한 저장 명령이 완료되는 것을 방지할 값으로 설정된다. 이것은 프로그램 루프의 다수의 반복에 있어서, DEPUNCTURE 명령의 실행이, 충분한 수의 비트 메트릭이 레지스터(R5)에서 유효한 결과를 생성하는데 이용가능할 때까지 단순히 레지스터(R1) 내 비트 메트릭의 수를 확장하는 역할을 하는 효과가 있다.
물론, DEPUNCTURE 명령에 대한 응답으로 R8에 출력 결과를 제공하기 위한 디 펑쳐링 기능 유닛의 적응은 DEPUNCTURE 명령에 대한 응답으로 디펑쳐링 기능 유닛에서 계산하기 위한 R3 및/또는 R7의 적응과 조합될 수 있다. 이 경우 더 많은 오퍼랜드를 가지는 DEPUNCTURE 명령어의 다른 버전이 사용될 수 있다. 이 경우, 이 값들을 계산하기 위한 별도의 명령어가 루프에서 생략될 수 있다. 프로그램은 다음의 형태를 가질 수 있다.
repeat
DEPUNCTURE R1,R2,R3,R4,R5,R1,R3,R7,R8
IF R8 STORE A1++,R5
IF R8 LOAD A2++,R4
IF R7 LOAD A3++,R2
예를 들어 DVB 디코딩 동작에서, 속도 3/4 디펑쳐링을 위해 4 비트 메트릭을 제공하는 것이 바람직할 수 있다. 이 경우, 만약 N=8 비트 메트릭인 결과가 사용된다면, 두 개의 제 2 오퍼랜드는 유효한 디펑쳐링 결과가 생성되기 전에 로딩될 필요가 있다. 다음 표는 이 경우 다양한 오퍼랜드에 의해 가정된 수 및 명령어 호출의 결과의 예를 나타낸다.
call No R3(R1에서 비트 메트릭 수) R4(패턴 디펑쳐링) R7(새 오퍼랜드 로딩) R8 (유효성 출력)
1 0 11011011 거짓
2 4 =
3 2 01101101
4 1 10110110
5 0 11011011 거짓
6 4 =
7 2 01101101 거짓
etc.
다른 실시예에서 디펑쳐링 기능 유닛이 오퍼랜드 레지스터(R2)에서 비트 매 트릭의 프로그램 가능한 수(I)를 처리하기 위해 적응된다. 예를 들어 DVB 디코딩에 대해, 복조 동작은 다른 변조 구조에 대해 다른 수의 비트 메트릭을 생성한다. 따라서, 비트 메트릭의 수를 적응시키는 것이 바람직할 수 있다. 예를 들어, BPSK 변조된 신호의 복조에서 제 2 오퍼랜드에 대해 I=2 비트 메트릭이 사용될 수 있고, 16QAM 변조된 신호의 복조에서 오퍼랜드 당 I=4인 비트 메트릭이 사용될 수 있고, 64QAM 변조된 신호의 복조에서 오퍼랜드 당I=6인 비트 메트릭이 사용될 수 있고, 256QAM 변조된 신호의 복조에서오퍼랜드 당 I=8인 비트 메트릭이 사용될 수 있다. 다음 표는 I=6인 비트 메트릭이 속도=5/6 디펑쳐링 동작에 대해 각 제 2 오퍼랜드에서 사용된 예를 나타낸다.
call No R3(R1에서 비트 메트릭의 수) R4(패턴 디펑쳐링) R7(새 오퍼랜드 로딩) R8(유효성 출력)
1 0 11011001
2 1 10110110
3 2 01101101
4 3 10011011
5 4 01100110
6 6 11011001
7 7 10110110
8 8 01101101
9 4 10011011 거짓
10 5 01100110
11 7 11011001 t참
etc
제 1 실시예에서, 수(I)는 DEPUNCTURE 명령어의 동작 코드에 의해 나타난다. 이 제 1 실시예에서, 디펑쳐링 기능 유닛은, 예를 들어 DEPUNCTURE2, DEPUNCTURE4, DEPUNCTURE6, DEPUNCTURE8과 같이 부호적으로 나타날 수 있는 명령어인, 복수의 타입으로부터의 명령어를 상이한 동작 코드 값으로 실행시키도록 배열된다. 이 제 1 실시예에서, 디펑쳐링 기능 유닛은 동작 코드에 따라 값(I)를 선택하도록 설계되는 데, 이것의 기능는 위에서 논의되었다. 프로그램에서 이들 명령어들 중 선택된 것이 오퍼랜드(R2)에서 생성된 비트 메트릭의 수에 따라 사용된다.
제 2 실시예에서, 제 2 오퍼랜드(R2)에서 비트 메트릭의 수(I)는 DEPUNCTURE 명령어의 추가적인 오퍼랜드에서 데이터에 의해 나타날 수 있다. 이 제 2 실시예에서, 디펑쳐링 기능 유닛은 이 추가적인 오퍼랜드를 수신하기 위해 입력으로부터 값 I를 검색하도록 설계되며, 이것의 기능은 위에서 논의되었다. 프로그램에서 선택된 오퍼랜드 값은 오퍼랜드(R2)에서 생성된 비트 메트릭의 수에 따라 적용된다. 이 제 2 실시예에서 단일 루프는 오퍼랜드를 처리하도록 배열될 수 있으며, 예를 들어 송신 블록 내 대응하는 데이터의 위치에 따라, 루프동안 비트 메트릭의 수(I)는 변한다.
제 3 실시예에서, 제 2 오퍼랜드(R2)에서의 비트 메트릭의 수(I)는, 예를 들어 일련의 이용가능한 비트 메트릭 값의 끝을 나타내는 특정 비트 메트릭 값으로, 오퍼랜드(R2) 자체에서 인코딩될 수 있다. 이 제 3 실시예에서, 디펑쳐링 기능 유닛은 제 2 오퍼랜드(R2)의 콘텐츠로부터 값(I)를 결정하도록 설계되며, 이것의 기능는 위에서 논의되었다.
도 7은 오퍼랜드(R2)에서 비트 메트릭의 수를 지정하기 위해 추가 오퍼랜드를 사용하도록 적응하는 것을 R3,R7 및 R8의 계산을 적응시키는 것과 조합하는 디펑쳐링 기능 유닛의 실시예를 도시한다. 이 실시예의 디펑쳐링 기능 유닛에서, 추가적인 결과 출력(72,74) 및 추가적인 오퍼랜드 입력(76,78) 뿐만 아니라 보조적인 결과 계산 회로(70)가 추가되었다. 제 1 추가 오퍼랜드 입력(76)은 제 2 오퍼랜드 입력(36b)에서 비트 메트릭의 수(I)를 지정하는 오퍼랜드(R9)를 제공하도록 사용된다. 제 2 추가 오퍼랜드 입력(78)은 제 2 오퍼랜드 입력(36b)에서의 오퍼랜드가 유효한지의 여부를 나타내는 오퍼랜드(R7)를 제공하도록 사용된다. 제 1 추가적인 결과 출력(72)은 제 3 오퍼랜드 입력(36c)에서 입력으로서 이 길이 코드의 향후 사용을 위해, 결과 출력(38)에서 결과상 비트 메트릭의 수를 나타내는 길이 코드(R3)를 제공하기 위해 사용된다. 제 2 추가적인 결과 출력(74)은 새로운 제 2 오퍼랜드(R2)가 요구되는지의 여부를 나타내는 플래그(R7)를 제공하도록 사용된다.
도 8은 보조적인 결과 계산 회로(70)의 실시예를 도시한다. 이 실시예에서 보조적인 결과 계산 회로(70)는 가산기 회로(80), 감산기 회로(82), 비교기 회로(84), 다중화 회로(86), 제로 대치 회로(zero substitution circuit)(88) 및 추가 비교기 회로(89)를 포함한다.
가산기 회로(80)는 (제 1 오퍼랜드 입력(36a)에서 오퍼랜드상 비트 메트릭의 수(L)을 나타내는) 제 3 오퍼랜드 입력(36c)으로부터의 오퍼랜드 및 (제 2 오퍼랜드 (36b)에서 오퍼랜드 상 비트 메트릭의 수(I)를 나타내는) 제 1 추가 오퍼랜드 입력(76)으로부터의 오퍼랜드를 수신하며, 후자는 제로 대체 회로(88)를 거치며, 이 회로(88)는 제 2 추가 오퍼랜드 입력(78)에 의해 제어된다. 제 1 가산기 회로(80)는 제 3 오퍼랜드 입력(36c)으로부터 오퍼랜드(L)와 제 1 추가적인 오퍼랜드 입력(76)으로부터 오퍼랜드 I의 합(L+I)을 출력하고, 만약 제 2 추가적인 오퍼랜드 입력(78)이 제 2 오퍼랜드가 유효하지 않음을 나타내지 않는다면, 그 경우 제 1 가산기 회로(80)는 제 3 오퍼랜드 입력(36c)으로부터 오퍼랜드(L)를 출력한다.
감산기 회로(82)는 가산기 회로(80)로부터의 결과와 제 4 오퍼랜드 입력(36d)으로부터의 오퍼랜드를 수신한다. 감산기 회로(82)는 가산기 회로(80)로부터의 출력(I+L 또는 L)과 제 4 오퍼랜드 입력(36d)으로부터의 패턴에 따라 결과에 포함되어야 하는 비트 메트릭의 수(M)의 차를 형성한다(바람직하게는, 이 제 4 오퍼랜드는 별도로 이 수를 포함하여, 그 수가 즉시 사용될 수 있으나, 대안적으로, 이 수는 추가적인 가산 회로를 사용하여, 패턴으로부터 계산될 수 있다).
비교기(84)는 감산기 회로(82)로부터의 차가 음(negative)인지 아닌지 여부를 결정한다. 이 비교의 결과는 결과 출력(39)로부터의 출력이 사용될 수 있는지의 여부를 나타내기 위해, 플래그 출력(62)에서 출력된다.
다중화 회로(86)는 가산기 회로(80)로부터의 출력 및 입력으로서 감산기 회로로부터의 출력(L+I-M 및 L+I 또는 L-M 및 L) 및 제어 입력으로서 비교기(84)로부터의 출력을 수신하고, 그 출력이 음수를 나타내지 않는다면 감산기 회로(82)로부터의 출력 신호를, 그렇지 않은 경우 가산기 회로(80)으로부터의 출력을 전달한다. 다중화 회로(86)의 출력은 결과 출력(38)에서 비트 메트릭의 수(L')를 나타내기 위해 추가적인 결과 출력(72)에 제공된다.
추가적인 비교기 회로(89)는 다중화 회로(86)의 출력으로부터의 입력(L'), 제 4 오퍼랜드 입력(36d) 및 제 1 추가적인 오퍼랜드 입력(76)으로부터 I를 수신한다(후자는 제 2 오퍼랜드 입력(36b)에서 오퍼랜드 상 비트 메트릭의 수를 나타냄). 여기서 제 4 오퍼랜드 입력(36d)로부터의 오퍼랜드는 제 4 오퍼랜드 입력(36d)에서 다음 향후 값으로부터의 패턴에 따라 결과에 포함되어야 하는 비트 메트릭의 수(M')를 나타낸다고 가정한다. 유사하게, 제 1 추가적인 오퍼랜드 입력(76)에서 다음 향후 오퍼랜드 값에 따라 비트 메트릭의 수(I')는 현재 값(I)와 동일할 것으로 가정한다.
추가적인 비교기 회로(89)는 다음 향후 DEPUNCTURE 명령어 실행동안 제 2 오퍼랜드 입력(36b)에서 제 2 오퍼랜드 상의 I' 비트 메트릭을 결과 출력(39)에서의 출력에 포함하기 위한 충분한 공간이 있을지의 여부, 즉, L'+I'-M'가 결과 출력(38)에서 결과에 포함될 수 있는 비트 메트릭의 최대 수 MAX(예. MAX=8 비트 메트릭)를 초과하지 않는지의 여부를 검출하는 역할을 한다. 이 비교의 결과는 제 2 오퍼랜드의 새로운 값의 로딩을 제어하기 위해 사용된다.
추가적으로, 출력(62)으로 출력되는 플래그 값은 또한 오퍼랜드 갱신 회로(34)로 제공된다. 오퍼랜드 갱신 회로(34)는 조합된 제 1 및 제 2 오퍼랜드로부터 M 비트 메트릭을 시프트하는 시프트 동작을 수행하나, 만약 플래그 값이 L+I-M(또는 L-M)이 양이 아님을 나타내는 경우 이 시프트가 억제된다. 게다가 제 2 추가 오퍼랜드 입력(78)으로부터의 신호는 오퍼랜드 조합 회로(30)로 제공되는데, 이 회로(30)는 만약 제 2 추가 오퍼랜드 입력(78)로부터의 신호가 제 2 오퍼랜드가 유효하지 않음을 나타내는 경우, 제 1 오퍼랜드로부터의 비트 메트릭이 제 2 오퍼랜드에 의해 영향을 받지 않을 것임을 확실하게 하도록 배열된다.
물론, 본 발명이 도 8에 도시된 실시예에 제한되지 않음이 이해되어야 한다. 예를 들어, 등가적인 결과가 많은 대안 회로로 계산될 수 있다. 또한, 만약 어떠한 예측적인 플래그도 사용되지 않는다면, 제 2 추가적인 오퍼랜드 입력(78)과 제로 대체 회로(88)은 생략될 수 있다. 이러한 경우, 추가적인 비교기 회로(89)가 L+I-M이 비트 메트릭의 최대 수(MAX)를 초과하지 않는지의 여부를 검출하기 위해 적응될 수 있고, 다중화 회로(86)가 L+I-M, L+I 또는 L-M을 출력하기 위해 적응될 수 있다. 이러한 경우, L+I-M은 L+I가 적어도 M과 동일할 때의 출력이고, L+I-M은 최대 수 (MAX)보다 크지 않다. L+I는 L+I가 M 미만이고 L+I가 MAX보다 크지 않은 경우 출력이다. L-M은 L+I-M이 MAX보다 크고 L이 적어도 M과 같은 경우의 출력이다.
별도의 오퍼랜드 입력이 다른 오퍼랜드를 공급하는 역할을 하는 많은 실시예가 설명되었지만, 일부 오퍼팬드는 공유된 오퍼랜드 입력에서 조합으로 공급될 수 있고/있거나 일부 결과는 공유된 결과 출력에 조합하여 제공될 수 있음이 이해되어야 한다. 많은 오퍼랜드 입력의 감소는 요구되는 회로를 감소시키므로 유리하다. 예를 들어, 일 실시예에서 제 3 오퍼랜드 입력(36c)에 제공되는 길이 코드는 제 1 오퍼랜드 입력(36a)에서 제 1 오퍼랜드와 함께 제공될 수 있다. 이 경우, 이들 오퍼랜드를 제공하는 결과 출력(38 및 62)이 역시 바람직하게는 조합될 수 있다. 이것은 제 1 오퍼랜드에서 포함될 수 있는 비트 메트릭의 최대 수를 감소시키지만, 특정 응용예에서 이 최대 값이 결코 필요하지 않을 수도 있다.
또다른 예로서, 제 1 추가적인 오퍼랜드 입력(76)으로부터의 길이 코드는 제 2 오퍼랜드 입력(36b)에서 제 2 오퍼랜드와 제공될 수 있다. 다시 이것은 제 2 오퍼랜드에 포함될 수 있는 비트 메트릭의 최대 수를 감소시킬 수 있으나, 이는 예를 들어 최대값이 요구되지 않는 경우와 같은 일부 응용 예에서 불리한 점일 필요가 없다. 유사하게, 만약 이것이 사용에 영향을 미치지 않는다면, 플래그 값은 다른 결과와 조합될 수 있다. 예를 들어, 디펑쳐링된 출력이 유효한지의 여부를 나타내는 결과 플래그는, 만약 그 결과가 가드로서 사용될 때 및 그러한 길이 코드의 존재에 가드된 실행이 의존하지 않는 경우, 및 디펑쳐링된 기능 유닛이 오퍼랜드에 나타난 곳으로부터 적절하게 길이 코드를 추출하도록 배열될 때, 남은 비트 메트릭의 길이 코드와 조합될 수 있다.
또다른 예로서, 도시된 디펑쳐링 기능 유닛의 실시예중 어느 하나가, 도시된 바와 같이 각각이 DEPUNCTURE 명령의 동작의 각 부분을 실행하도록 사용되는 별도의 명령을 수행하기 위한 복수의 기능 유닛으로 나뉠 수 있다. 예를 들어, 별도의 기능 유닛은 도 7의 보조 결과 계산 회로(70)의 동작 및 디펑쳐링 기능 유닛의 나머지를 실행하기 위한 명령어를 수행하기 위해 제공될 수 있다. 또다른 예에서와 같이, 별도의 기능 유닛은 (출력 39에서) 디펑쳐링된 결과를 계산하는 명령어를 실행하고, (출력 38에서) 다음 제 1 오퍼랜드를 계산하기 위해 제공될 수 있다. VLIW 아키텍쳐에서 그러한 기능 유닛은 명령어를 동시에 실행할 수 있도록 만들어질 수 있는데, 이는 필수적으로 단일 명령어가 모든 동작을 개시하기 위해 사용될 때와 동일한 동작 속도를 가져오나, 루프내 다른 명령어를 조정하기 위해 더 큰 융통성을 가진다.
더욱이, 펑쳐링된 비트의 위치에서 디폴트 비트 메트릭 값이 삽입되는 예가 도시되었으나, 대안적으로 DEPUNCTURE 명령이, 예를 들어 모든 삽입에 이용되기 위해 DEPUNCTURE 명령의 오퍼랜드에서 단일 대체값의 형태로, 또는 개별적인 펑쳐링 위치에 사용되기 위해 복수의 대체값의 형태로, 삽입될 비트 메트릭 값 정의에 제 공될 수 있다는 점이 이해되어야 한다. 추가적인 오퍼랜드 입력은 대체 값(들)을 제공하기 위해 디펑쳐링 기능 유닛에 제공될 수 있거나, 디펑쳐링 기능 유닛은 예를 들어, 패턴 오퍼랜드(R4)에서 하나 이상의 설명된 오퍼랜드로부터 이 값(들)을 추출하도록 배열될 수 있다. 이 대체 비트 메트릭은 "미리 결정된" 비트 메트릭으로 칭할 것인데, 왜냐하면, 이들은 레지스터(R1,R2)에 공급되는 수신된 데이터 상이 아니라 단지 프로그램에만 의존하기 때문이다.
더욱이, 본 발명이 각각이 단일 비트를 나타내는 비트 매트릭 스트림의 디펑쳐링에 대해 설명되었으나, 본 발명은 또한 각 비트 메트릭이 예를 들어 2 비트 심볼인 다중비트 코드 심볼을 나타내는 디펑쳐링에 적용될 수 있다.
기능 유닛에 충분한 오퍼랜드를 공급하는 것을 가능하게 하고 충분한 결과를 기록하기 위해, 통상적으로 전용 발행 슬롯이 명령어 발행 회로에서 기능 유닛 및 바람직하게는 이 발행 슬롯에 대응하는 충분한 수의 판독 및 기록 포트로 DEPUNCTURE 명령어를 공급하기 위해 제공된다. 일 실시예에서, 추가적인 기능 유닛은 어떠한 명령어도 디펑쳐링 기능 유닛으로 발행되지 않을 때, 그러한 기능 유닛으로 명령어를 발행하기 위해, 이 발행 유닛과 결합될 수 있다. 복수의 그러한 추가적인기능 유닛은, 어떠한 명령어도 디펑쳐링 기능 유닛으로 발행되지 않을 때, 심지어 발행 유닛과 동시에 결합될 수 있고, 이들 포트를 보다 효율적으로 사용하도록 하기 위해 판독 및 기록 포트의 각 그룹과 연결될 수도 있다.
VLIW 구조가 사용될 때, DEPUNCTURE 명령어와 동시에 복수의 명령어가 발행되는 것이 가능하다. 그러므로, 프로그램 루프가 한 번 도는데 요구되는 명령어 사 이클의 수가 감소될 수 있다. DEPUNCTURE 명령어는 상호 데이터 종속성으로 명령어의 수를 감소시키며, 이는 루프의 더 많은 명령어가 동일한 VLIW 명령어와 조합되는 것을 가능하게 하여, 상기 루프에 필요한 명령어 사이클의 개수가 작게 유지될 수 있다. 이것은 루프의 명령어를 버퍼링하는 것을 더 용이하게 하는데, 이는 차례로 실행 속도를 올린다.

Claims (24)

  1. 프로그램 가능한 신호 처리 회로로서,
    - 오퍼랜드 저장 회로(22)
    - 오퍼랜드 저장 회로(22)에서 오퍼랜드 위치 및 결과 위치를 어드레스 지정하는 명령어를 실행하기 위한 명령어 처리 회로(23,24,26)로서, 상기 명령어 처리 회로(23,24,26)의 명령어 세트는 디펑쳐링 명령어를 포함하며, 상기 명령어 처리 회로(23,24,26)는 디펑쳐링 명령어에 의해 나타나는 비트 메트릭 오퍼랜드 위치로부터 비트 메트릭 오퍼랜드를 수신하기 위한 오퍼랜드 입력(36a)및 디펑쳐링 결과를 디펑쳐링 명령어에 의해 나타나는 결과 위치에 기록하기 위한 결과 출력(39)을 가지며, 상기 명령어 처리 회로(23,24,26)는 상기 비트 메트릭 오퍼랜드로부터 비트 메트릭을 복사하고 디펑쳐링 결과에서 비트 메트릭 오퍼랜드로부터의 비트 메트릭 사이에 하나 이상의 미리 결정된 비트 메트릭을 삽입함으로써 디펑쳐링 결과를 형성하도록 배열되며, 비트 메트릭 오퍼랜드에서 각각에 대해 복사된 비트 메트릭의 상대적인 위치와 비교해서 디펑쳐링 결과 내에서 서로에 대한 복사된 비트 메트릭의 상대적 위치를 삽입된 미리 결정된 비트 메트릭 값(들)을 수용하기 위해 요구되는 정도로 변경하는, 명령어 처리 회로를 포함하는, 프로그램 가능한 신호 처리 회로.
  2. 제 1항에 있어서, 적어도 하나의 비트 메트릭 다중화 회로(50)를 포함하되, 이 회로(50)는, 비트 메트릭 오퍼랜드에서 각 위치로부터 복수의 개별적인 비트 메트릭을 수신하기 위해 오퍼랜드 입력(36a)에 결합된 입력, 디펑쳐링 결과의 일부를 공급하기 위한 결과 출력(39)에 결합된 출력, 미리 결정된 비트 메트릭 값 또는 상기 비트 메트릭 오퍼랜드로부터의 비트 메트릭 중 하나를 출력하도록 선택하기 위해, 미리 결정된 비트 패턴 값이 삽입되어야 하는 위치를 제어하는 디펑쳐링 명령어에 의해 규정되는 정보로부터 유도되는 제어 신호를 수신하기 위해 결합되는 제어 입력(36d)을 포함하는데, 디펑쳐링 명령어에 의해 규정된 상기 정보가 비트 메트릭이 상기 비트 메트릭 오퍼랜드로부터 상기 디펑쳐링 결과의 일부로 복사되어야 함을 나타내는지의 여부 및 패턴 오퍼랜드가 나타내는 다수의 미리 결정된 비트 메트릭 값이 디펑쳐링 결과의 상기 일부를 논리적으로 선행하는 디펑쳐링 결과의 추가적인 부분들에 삽입되어야 하는지에 의존하여 출력을 선택하는, 프로그램 가능한 신호 처리 회로.
  3. 제 1항에 있어서, 디펑쳐링 결과의 일부를 공급하기 위해 오퍼랜드 입력(36a)과 결과 출력(39) 사이에 결합된 제어 가능한 시프트 회로를 포함하되, 상기 제어가능한 시프트 회로는 미리 결정된 비트 패턴 값이 삽입되어야만 하는 위치를 제어하는 디펑쳐링 명령어에 의해 규정된 정보로부터 유도된는 제어 신호를 수신하도록 결합된 제어 입력을 가져서, 디펑쳐링 명령어에 의해 규정된 상기 정보가 나타내는 다수의 미리 결정된 비트 메트릭 값이 디펑쳐링 결과의 상기 일부를 선행하는 디펑쳐링 결과의 추가적인 부분에 삽입되어야 하는지에 의존하여 상기 제어 가능한 시프트 회로의 시프트 양을 제어하는, 프로그램 가능한 신호 처리 회로.
  4. 제 1항에 있어서, 상기 명령어 처리 회로(23,24,26)는 디펑쳐링 명령어의 패턴 오퍼랜드를 수신하기 위한 추가적인 오퍼랜드 입력(26d)을 가지고, 상기 패턴 오퍼랜드는 프로그램가능한 디펑쳐링 패턴을 규정하며, 상기 명령어 처리 회로(23,24,26)는 상기 패턴 오퍼랜드에서 규정된 프로그래밍된 디펑쳐링 패턴에 따라 비트 메트릭 오퍼랜드로부터의 비트 메트릭 사이에서 디펑쳐링 결과에 미리 결정된 비트 메트릭 값을 삽입하는 위치를 제어하도록 배열되는, 프로그램 가능한 신호 처리 회로.
  5. 제 1항에 있어서, 상기 명령어 세트는 복수의 디펑쳐링 명령어를 포함ㅎ며, 각각은 미리 결정된 비트 메트릭 값이 비트 메트릭 오퍼랜드로부터의 상기 비트 메트릭 사이에서 디펑쳐링 결과에 삽입되어야만 하는 개별적인 상이한 위치 또는 위치들의 조합을 한정하는, 프로그램 가능한 신호 처리 회로.
  6. 제 1항에 있어서, 상기 디펑쳐링 명령어는 추가적인 비트 메트릭 오퍼랜드를 가지며, 상기 명령어 처리 회로(23,24,26)는 만약 비트 메트릭 오퍼랜드 내 다수의 비트 메트릭이 디펑쳐링 결과를 형성하기에 충분하지 않다면, 비트 메트릭 오퍼랜드 및 추가적인 비트 메트릭 오퍼랜드에 대한 입력(36a,b) 양쪽으로부터 비트 매트릭을 디펑쳐링 결과에 복사하도록 배열되는, 프로그램 가능한 신호 처리 회로.
  7. 제 6항에 있어서, 상기 명령어 처리 회로는, 디펑쳐링 결과에 포함되지 않는 비트 메트릭을 복수의 오퍼랜드로부터 큐 결과(queue result)에 복사하고 디펑쳐링 명령어의 향후 수행동안 비트 메트릭 오퍼랜드로서 사용하기 위해 큐 결과에 비트 매트릭을 배열함으로써, 디펑쳐링 명령어 또는 큐잉(queuing) 명령어에 대한 응답으로 큐 결과를 형성하도록 배열되는, 프로그램 가능한 신호 처리 회로.
  8. 제 6항에 있어서, 디펑쳐링 명령어는 비트 메트릭 오퍼랜드에서 나타나는 다수의 비트 메트릭을 가리키기 위한 길이 오퍼랜드를 가지며, 명령어 처리 회로(23,24,26)는 길이 오퍼랜드에 따라 비트 메트릭 오퍼랜드에서 디펑쳐링 결과로 복사될 최대 수의 비트 메트릭을 제어하도록 배열되는, 프로그램 가능한 신호 처리 회로.
  9. 제 6항에 있어서, 명령어 처리 회로(23,24,26)는 상기 디펑쳐링 결과를 형성하기 위해 요구되는 적어도 다수의 비트 메트릭이 비트 메트릭 오퍼랜드 및 추가적인 비트 메트릭 오퍼랜드에서 사용가능한지의 여부에 따라 출력 유효 결과를 형성하도록 배열되며, 상기 명령어 처리 회로(23,24,26)는 출력 유효 결과를 오퍼랜드 저장 회로(22)에 기록하는, 프로그램 가능한 신호 처리 회로.
  10. 제 6항에 있어서, 명령어 처리 회로(23,24,26)는 비트 메트릭 오퍼랜드 및 추가적인 비트 메트릭 오퍼랜드로부터의 디펑쳐링 결과에 복사되지 않은 비트 메트릭을 큐 결과에 복사함으로써, 디펑쳐링 명령어의 향후 실행동안 비트 메트릭 오퍼랜드로서 사용하기 위해, 디펑쳐링 명령어 또는 큐잉 명령어에 대한 응답으로 큐 결과를 형성하도록 배열되며, 상기 명령어 처리 회로(23,24,26)는 큐 결과를 오퍼랜드 저장 회로(22)에 기록하는, 프로그램 가능한 신호 처리 회로.
  11. 제 10항에 있어서, 상기 명령어 처리 회로(23,24,26)는 디펑쳐링 결과를 형성하도록 요구되는 다수의 비트 메트릭이 비트 메트릭 오퍼랜드 및 추가적인 비트 메트릭 오퍼랜드에서 사용가능한 비트 메트릭의 수의 합을 초과하지 않는지의 여부에 따라 표시를 생성하도록 배열되며, 상기 명령어 처리 회로(23,24,26)는 그 표시를 상기 오퍼랜드 저장 회로(22)에 기록하는, 프로그램 가능한 신호 처리 회로.
  12. 제 1 항에 있어서, 상기 명령어 처리 회로(23,24,26)는 디펑쳐링 결과를 형성하도록 요구되는 다수의 비트 메트릭이 비트 메트릭 오퍼랜드에서 사용가능한지의 여부에 대한 표시를 생성하도록 배열되고, 상기 명령어 처리 회로(23,24,26)는 그 표시를 오퍼랜드 저장 회로(22)에 기록하는, 프로그램 가능한 신호 처리 회로.
  13. 제 1항에 있어서, 상기 디펑쳐링 명령어는 추가적인 비트 메트릭 오퍼랜드를 가지며, 상기 명령어 처리 회로는 비트 메트릭 오퍼랜드로부터의 비트 메트릭 및 추가적인 비트 메트릭 오퍼랜드로부터의 적어도 하나의 추가적인비트 메트릭을 큐 결과로 복사함으로써, 디펑쳐링 명령어의 향후 실행 동안 비트 메트릭 오퍼랜드로서 사용하기 위해, 디펑쳐링 명령에 대한 응답으로 큐 결과를 생성하도록 배열되고, 상기 명령어 처리 회로(23,24,26)로 큐 결과를 오퍼랜드 저장회로(22)에 기록하는, 프로그램 가능한 신호 처리 회로.
  14. 제 13항에 있어서, 디펑쳐링 명령어는 추가적인 비트 메트릭 오퍼랜드에서 비트 메트릭의 비트 메트릭 카운트를 나타내도록 배열되며, 상기 명령어 처리 회로는 추가적인 비트 메트릭 오퍼랜드로부터의 모든 비트 메트릭이 큐 결과로 복사되었는지의 여부가 디펑쳐링 명령어에 대한 응답으로 결과에서 나타나도록 배열되는, 프로그램 가능한 신호 처리 회로.
  15. 제 1항에 있어서, 입력 메트릭의 스트림의 디펑쳐링을 수행하는 프로그램으로 프로그래밍되며, 상기 프로그램은,
    - 연속된 스트림의 덩어리를 오퍼랜드 저장 위치로 로딩하기 위한 하나 이상의 명령어;
    - 상기 오퍼랜드 저장 위치를 선택하는 비트 메트릭 오퍼랜드를 가지는 디펑쳐링 명령어
    를 포함하는, 프로그램 가능한 신호 처리 회로.
  16. 펑쳐링된 데이터 스트림을 정정하는 방법으로서, 상기 방법은
    - 데이터 스트림을 나타내는 신호를 수신하는 단계
    - 데이터 스트림으로부터 비트 메트릭 스트림을 유도하는 단계
    - 프로그램 가능한 명령어 프로세서가 디펑쳐링 명령어를 반복적으로 실행하게 하는 단계
    - 디펑쳐링 명령어의 실행을 위해 비트 메트릭 오퍼랜드를 제공하는 단계로서, 각 비트 메트릭 오퍼랜드는 비트 메트릭 스트림으로부터 복수의 개별적인 비트 메트릭을 포함하는, 비트 메트릭 오퍼랜드를 제공하는 단계
    - 비트 메트릭 오퍼랜드로부터 선택된 쌍의 비트 메트릭 사이에 디펑쳐링된 결과의 적어도 일부에 미리 결정된 비트 메트릭 값을 삽입하고, 삽입된 미리 결정된 비트 메트릭 값(들)을 수용하기 위해 필요한 정도로, 비트 메트릭 오퍼랜드에서 서로에 대해 복사된 비트 메트릭의 상대적인 위치와 비교해서, 디펑쳐링 결과에서 서로에 대해 복사된 비트 메트릭의 상대적인 위치를 바꿈으로써, 디펑쳐링 명령어의 실행에 대한 응답으로 디펑쳐링된 결과를 형성하는 단계
    - 프로그램 가능한 명령어 프로세서에 의해 디코딩된 명령어를 사용하여 디펑쳐링된 결과로부터 에러 정정된 데이터를 디코딩하는 단계
    를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
  17. 제 15항에 있어서, 상기 방법은
    - 디펑쳐링된 명령어의 개별적 실행을 위해 디펑쳐링된 명령어의 연속적으로 상이한 패턴 오퍼랜드를 프로그램 가능한 명령어 실행 유닛으로 공급하는 단계 및
    - 디펑쳐링 명령어의 패턴 오퍼랜드의 제어하에 각 디펑쳐링 명령어의 실행동안 미리 결정된 비트 메트릭 값의 삽입을 위해 상기 비트 메트릭 사이의 위치를 선택하는 단계
    를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
  18. 제 17항에 있어서, 상기 방법은
    디펑쳐링된 명령어 또는 추가적인 비트 메트릭 오퍼랜드를 수신하는 추가적인 명령어에 대한 응답으로 큐 결과(queue result)를 생성하는 단계로서, 이는 비트 메트릭 오퍼랜드, 패턴 오퍼랜드 및 큐 길이 코드에 추가하여 미리 정해진 수의 비트 메트릭을 구비하는 비트 메트릭의 스트림으로부터 덩어리를 포함하며, 상기 큐 길이 코드는 비트 메트릭 오퍼랜드에서 다수의 비트 메트릭을 규정하며, 상기 큐 결과는 큐 결과에 패턴 오퍼랜드 종속적인 수의 비트 메트릭을 배치함으로써, 디펑쳐링 명령어 또는 추가적인 명령어에 대한 응답으로 형성되는데, 이 비트 메트릭은, 패턴 오퍼랜드에 따라 디펑쳐링 명령어의 실행에서 비트 메트릭 오퍼랜드 내 상기 비트 메트릭의 수로부터 디펑쳐링 결과로 복사되지 않으며,패턴 오퍼랜드 종속적인 수의 비트 메트릭은 큐 결과에서 추가적인 비트 메트릭 오퍼랜드로부터의 비트 메트릭과 결합되는, 큐 결과를 생성하는 단계
    - 디펑쳐링 명령어의 후속적인 실행을 위해 비트 메트릭 오퍼랜드로서 큐 결과를 이용하는 단계
    를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
  19. 제 18항에 있어서,
    - 큐 결과내 다수의 비트 메트릭을 나타내는 큐 길이 결과를 계산하는 단계 및 디펑쳐링 결과에 이용되지 않은 비트 메트릭 오퍼랜드로부터의 비트 메트릭에 더하여 추가적인 비트 메트릭 오퍼랜드로부터의 모든 비트 메트릭을 큐 결과로 복사하기 위해 큐 결과 내에 충분한 공간이 있다고 가정한다면, 비트 메트릭 오퍼랜드 내 비트 메트릭의 수 빼기 비트 메트릭 오퍼랜드로부터 디펑쳐링 결과로 복사된 비트 메트릭의 수에 대한 큐 결과 내에 비트 메트릭의 수를 설정하는 단계
    - 추가적인 비트 메트릭 오퍼랜드로부터 큐 결과로 모든 비트 메트릭을 복사하기 위해 큐 결과에 충분한 공간이 있을 때까지 동일한 추가적인 비트 메트릭 오퍼랜드 및 개별적인 상이한 패턴 값 및 연속적인 큐 결과를 가지고 디펑쳐링 명령어 또는 추가적인 명령어의 실행을 반복하는 단계
    를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
  20. 제 18항에 있어서, 상기 방법은 패턴 오퍼랜드 내 디펑쳐링 패턴에 추가하여 길이 값을 제공하는 단계 및 추가적인 비트 메트릭 오퍼랜드로부터 큐 결과로 복사된 다수의 비트 메트릭 값을 제어하기 위해 디펑쳐링 명령어 또는 추가적인 명령어에 대한 응답으로 길이값을 사용하는 단계를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
  21. 제 17항에 있어서, 추가적인 비트 메트릭 오퍼랜드를 공급하는 단계를 포함하되, 이 오퍼랜드는 비트 메트릭 오퍼랜드, 패턴 오퍼랜드 및 큐 길이 코드에 더하여, 디펑쳐링 명령어의 수행을 위한 오퍼랜드로서, 미리 결정된 수의 비트 메트릭을 가지는 비트 메트릭의 스트림으로부터의 덩어리를 포함하고, 상기 큐 길이 코드는 비트 메트릭 오퍼랜드 내 다수의 비트 메트릭을 규정하고, 디펑쳐링 결과는, 비트 메트릭 오퍼랜드로부터의 패턴 오퍼랜드 종속적인 수의 비트 메트릭을 디펑쳐링 결과에 배치함으로써 형성되는데, 만약 비트 메트릭 오퍼랜드 내 비트 메트릭의 상기 수가 디펑쳐링 결과 내 사용을 위해 충분한 복사본을 제공할만큼 충분한 경우인, 펑쳐링된 데이터 스트림을 정정하는 방법.
  22. 제 21항에 있어서,
    - 디펑쳐링 명령어 또는 추가적인 명령어에 대한 응답으로 큐 결과를 형성하는 단계로서, 이는 비트 메트릭 오퍼랜드, 패턴 오퍼랜드 및 큐 길이 코드에 더하여, 추가적인 비트 메트릭 오퍼랜드를 수신하며, 상기 큐 결과는 큐 결과에 패턴 오퍼랜드 종속적인 수의 비트 메트릭을 위치시킴으로써 형성되는데 이 비트 메트릭은, 패턴 오퍼랜드에 따라 비트 메트릭 오퍼랜드 또는 추가적인 비트 메트릭 오퍼랜드 내 상기 수의 비트 매트릭으로부터 디펑쳐링 동작에 의해 사용되지 않으며, 비트 메트릭 오퍼랜드로부터의 패턴 오퍼랜드 종속적인 수의 비트 메트릭과 추가적인 비트 메트릭 오퍼랜드로부터의 비트 메트릭은 큐 결과에서 조합되는, 큐 결과를 형성하는 단계
    -디펑쳐링 명령어의 연이은 실행을 위해 비트 메트릭 오퍼랜드로서 큐 결과를 이용하는 단계
    를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
  23. 제 22항에 있어서, 디펑쳐링 명령어 또는 추가 명령어의 실행은 동일한 패턴 오퍼랜드 및 연속적인 추가 비트 메트릭 오퍼랜드로 반복되는데, 이는 비트 메트릭 오퍼랜드 및 추가 비트 메트릭 오퍼랜드가 디펑쳐링 명령어의 실행동안 상기 동일한 패턴 오퍼랜드에 대한 상기 디펑쳐링 결과를 형성하기 위해 충분한 비트 메트릭을 형성할 때까지인, 펑쳐링된 데이터 스트림을 정정하는 방법.
  24. 제 22항에 있어서, 각기 상이한 미리 결정된 수의 비트 메트릭의 덩어리를 이용하여 디펑쳐링 명령어를 실행하는 단계를 포함하는, 펑쳐링된 데이터 스트림을 정정하는 방법.
KR1020077013189A 2004-12-14 2005-12-13 프로그램 가능한 신호 및 처리 회로 및 디펑쳐링 방법 KR101167225B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP04106559 2004-12-14
EP04106559.0 2004-12-14
PCT/IB2005/054204 WO2006064463A2 (en) 2004-12-14 2005-12-13 Programmable signal and processing circuit and method of depuncturing

Publications (2)

Publication Number Publication Date
KR20070095891A true KR20070095891A (ko) 2007-10-01
KR101167225B1 KR101167225B1 (ko) 2012-07-24

Family

ID=36090861

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077013189A KR101167225B1 (ko) 2004-12-14 2005-12-13 프로그램 가능한 신호 및 처리 회로 및 디펑쳐링 방법

Country Status (8)

Country Link
US (1) US7853860B2 (ko)
EP (1) EP1839127B1 (ko)
JP (1) JP4949268B2 (ko)
KR (1) KR101167225B1 (ko)
CN (1) CN101076777A (ko)
AT (1) ATE395661T1 (ko)
DE (1) DE602005006854D1 (ko)
WO (1) WO2006064463A2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101076777A (zh) * 2004-12-14 2007-11-21 皇家飞利浦电子股份有限公司 可编程信号处理电路和收缩译码方法
CN104283572B (zh) * 2013-07-03 2017-04-26 展讯通信(上海)有限公司 卷积码译码器输入信息的控制方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151904A (en) * 1990-09-27 1992-09-29 The Titan Corporation Reconfigurable, multi-user viterbi decoder
JPH09261081A (ja) * 1996-03-22 1997-10-03 Kenwood Corp デパンクチャード回路
US6005897A (en) * 1997-12-16 1999-12-21 Mccallister; Ronald D. Data communication system and method therefor
JP2000004215A (ja) * 1998-06-16 2000-01-07 Matsushita Electric Ind Co Ltd 送受信システム
JP2000068862A (ja) * 1998-08-19 2000-03-03 Fujitsu Ltd 誤り訂正符号化装置
DE19935785A1 (de) * 1999-07-29 2001-02-08 Siemens Ag Verfahren und Einrichtung zur Erzeugung eines ratenkompatiblen Codes
US6684366B1 (en) * 2000-09-29 2004-01-27 Arraycomm, Inc. Multi-rate codec with puncture control
JP2002217744A (ja) * 2001-01-23 2002-08-02 Nec Corp データ復号装置
JP3629241B2 (ja) * 2002-01-30 2005-03-16 松下電器産業株式会社 レートマッチング装置及びレートマッチング方法
US7284185B2 (en) * 2004-10-08 2007-10-16 Telefonaktiebolaget Lm Ericsson (Publ) Puncturing/depuncturing using compressed differential puncturing pattern
CN101076777A (zh) * 2004-12-14 2007-11-21 皇家飞利浦电子股份有限公司 可编程信号处理电路和收缩译码方法

Also Published As

Publication number Publication date
JP2008523762A (ja) 2008-07-03
US20090287911A1 (en) 2009-11-19
CN101076777A (zh) 2007-11-21
EP1839127A2 (en) 2007-10-03
ATE395661T1 (de) 2008-05-15
DE602005006854D1 (de) 2008-06-26
WO2006064463A3 (en) 2006-12-21
EP1839127B1 (en) 2008-05-14
WO2006064463A2 (en) 2006-06-22
KR101167225B1 (ko) 2012-07-24
US7853860B2 (en) 2010-12-14
JP4949268B2 (ja) 2012-06-06

Similar Documents

Publication Publication Date Title
CN102096609B (zh) 可编程循环冗余校验(crc)计算的指令集架构
US7529918B2 (en) System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor
US5440504A (en) Arithmetic apparatus for digital signal processor
US20110296145A1 (en) Pipelined digital signal processor
KR19980042913A (ko) 정값화 처리 및 포화연산처리로 이루어진 라운딩 처리를 적합하게 행할 수 있는 프로세서
US5517439A (en) Arithmetic unit for executing division
EP2281358B1 (en) Efficient parallel sub-packet decoding using multiple decoders, controller and task instructions
US8255780B2 (en) Scalable VLIW processor for high-speed viterbi and trellis coded modulation decoding
CN114063973B (zh) 伽罗华域乘法器及纠删编解码系统
KR101235822B1 (ko) 프로그램 가능한 신호 처리 회로 및 인터리빙 방법
JPH08340263A (ja) イン・プレイス現状態/次状態レジスタ
JP4852061B2 (ja) 低密度パリティ検査(ldpc)デコーダに応用する演算回路
KR101167225B1 (ko) 프로그램 가능한 신호 및 처리 회로 및 디펑쳐링 방법
US20060250286A1 (en) Encoder and decoder using run-length-limited code
KR100336246B1 (ko) 디지탈프로세서및코-프로세서를구비한집적회로
EP1739843B1 (en) Power efficient Viterbi decoder
US6035434A (en) System and method for bit interleaving of half-rate speech data
US7613905B2 (en) Partial register forwarding for CPUs with unequal delay functional units
US8006066B2 (en) Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit
JP3250363B2 (ja) 演算装置
CN112181495B (zh) 一种断言寄存器操作数指令的实现方法和装置
JP4317589B2 (ja) 符号化装置、復号化装置、符号化プログラム及び復号化プログラム
KR20040065841A (ko) 비터비 복호기의 트레이스백 연산방법
JP2002366349A (ja) プログラム制御方法およびその装置
JPH10224234A (ja) ビタビ復号器

Legal Events

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

Payment date: 20150630

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170704

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180628

Year of fee payment: 7