KR20150038630A - 비터비 패킹 명령 - Google Patents

비터비 패킹 명령 Download PDF

Info

Publication number
KR20150038630A
KR20150038630A KR20157006068A KR20157006068A KR20150038630A KR 20150038630 A KR20150038630 A KR 20150038630A KR 20157006068 A KR20157006068 A KR 20157006068A KR 20157006068 A KR20157006068 A KR 20157006068A KR 20150038630 A KR20150038630 A KR 20150038630A
Authority
KR
South Korea
Prior art keywords
viterbi
bits
register
packing
memory
Prior art date
Application number
KR20157006068A
Other languages
English (en)
Inventor
마오 쳉
루시안 코드레스쿠
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20150038630A publication Critical patent/KR20150038630A/ko

Links

Images

Classifications

    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Abstract

본 발명은 제 1 마스킹 값을 사용하여 제 1 술어 레지스터의 콘텐츠들을 마스킹하고 제 2 마스킹 값을 사용하여 제 2 술어 레지스터의 콘텐츠들을 마스킹하는 비터비(Viterbi) 패킹 명령을 개시한다. 결과적인 마스킹된 데이터는 목적지 레지스터에 기록된다. 상기 비터비 패킹 명령은 하드웨어, 펌웨어, 소프트웨어, 혹은 이들의 임의의 조합으로 구현될 수 있다.

Description

비터비 패킹 명령{VITERBI PACK INSTRUCTION}
본 발명은 일반적으로 비터비 패킹(Viterbi pack) 명령에 관한 것이다. 보다 구체적으로, 본 발명은 복수의 술어 레지스터들로부터 단일 목적지 레지스터로 비트들을 패킹하기 위한 비터비 패킹 명령에 관한 것이다.
비터비 알고리즘은 통신들에 있어서 유용한 알고리즘이다. 이는 무선 통신 시스템들에 사용되는 컨볼루션 코드들을 디코딩하는데 사용될 수 있다. 이러한 코드들은 많은 무선 통신들의 형태들로 사용되는데, 예를 들면, 코드 분할 다중 접속(CDMA), CDMA2000, 광역 코드 분할 다중 접속(WCDMA), 시분할 동기식 코드 분할 다중 접속(TD-SCDMA), 및 이동 통신용 글로벌 시스템(GSM)이다. 비터비 알고리즘은 또한, 스피치 인식 및 많은 다른 용도들로 802.11 무선 로컬 액세스 네트워크(WLAN)들에서, 에러 정정 방식으로서 사용될 수 있다.
비터비 알고리즘을 사용하여, 각 상태를 초래하는 복수의 경로들을 가지는 복수의 상태들이 존재하는 상태들의 트렐리스(trellis)에 있어서, 숨은 상태들의 가장 유력한 시퀀스(종종 비터비 경로라고 호칭됨)가 검색된다. 상태들 사이에서 어느 천이(transition)가 가장 유력한지를 결정하기 위해(종종 서바이버(survivor) 경로라고 호칭됨), 상이한 천이들의 확률(likelihood)이 비교될 수 있다. 서바이버 경로는 상기 트렐리스를 통해 각각의 관련 상태 천이 주기동안 결정될 수 있다. 비터비 디코더에서, 예를 들면, 역추적(traceback)은 출력 비트들을 생성하기 위해 상기 서바이버 경로들을 따라 추후 수행된다.
비터비 알고리즘을 실행할 때, 상이한 천이들의 확률을 나타내는 경로 메트릭(metric)들을 생성하여 비교하는 것이 일반적이다. 플래그(flag) 비트는 이러한 비교의 출력을 나타낼 수 있다. 이러한 출력은, 예를 들어, 상기 역추적을 수행할 때 추후 사용될, 메모리에 저장될 수 있다. 별도의 레지스터들로부터 메모리로 기록된 몇몇 비교들의 결과들을 가지는 것은 더 많은 메모리를 차지한다.
예를 들어, WCDMA 및 CDMA2000과 같은 3G 무선 통신 시스템에 있어서, 만약 두 개의 경로 메트릭들의 비교의 출력을 나타내는 각 플래그가 메모리의 별도의 바이트로 저장된다면, 이는 메모리 중 268x256 바이트 = 68 킬로바이트가 소요된다. 그러나, 이들 비트들이 바이트가 아닌 비트로 저장될 수 있다면, 메모리 중 단지 286x256/8 = 8 킬로바이트만 소요된다.
요구되는 더 많은 저장 동작들에 의해 속도가 영향을 받는다. 이는 더 많은 가능한 캐시 미스(miss)를 초래할 수 있다. 추가적으로, 만약 상기 플래그들이 자연적 순서로 저장되지 않는다면, 역추적을 수행하기 위해 더 많은 사이클들이 소요될 수 있다.
예를 들면 많은 무선 통신 시스템들에 사용되는 컨볼루션 코드들을 디코딩하는데 비터비 알고리즘이 중요하기 때문에, 상기 알고리즘의 실행 속도는, 예를 들어, 무선 통신 시스템의 성능에 직접적으로 영향을 미친다.
따라서, 처리 시간 속도를 높이고, 메모리 공간을 절약하기 위해 둘 이상의 술어 레지스터들 내에 있는 비트들을 단일 목적지 레지스터로 패킹하는 비터비 패킹 명령을 제공하는 것이 유리하다.
비터비 패킹 명령이 개시되며, 이는 하나의 술어 레지스터의 선택된 비트들 및 또다른 술어 레지스터의 선택된 비트들을 단일 목적지 레지스터로 패킹하는 것을 포함한다.
특정 실시예에서, 상기 비터비 패킹 명령은 제 1 마스킹 값을 사용하여 제 1 술어 레지스터의 콘텐츠들을 마스킹하고, 제 2 마스킹 값을 사용하여 제 2 술어 레지스터의 콘텐츠들을 마스킹한다. 결과적인 마스킹된 데이터는 목적지 레지스터에 기록된다. 또다른 실시예에서, 상기 제 1 마스킹 값은 16진수 55이며, 제 2 마스킹 값은 16진수 AA이다. 추가적인 특정 실시예에서, 상기 결과적인 마스킹된 데이터들은 상기 목적지 레지스터에 기록되기 이전에 함께 논리합(OR)된다.
특정 실시예에서, 상기 비터비 패킹 명령은 비터비 패킹 회로를 포함한다. 상기 비터비 패킹 회로는 제 1 및 제 2 술어 레지스터, 목적지 레지스터, 메모리, 제 1 및 제 2 AND 게이트 및 OR 게이트를 포함한다.
또다른 특정 실시예에서, 상기 비터비 패킹 명령을 수행하는 디지털 신호 처리기가 개시된다. 또다른 실시예에서, 상기 비터비 패킹 명령을 포함하는 무선 통신 디바이스가 개시된다.
본 명세서에서 개시된 상기 실시예들 중 하나 이상의 실시예들의 이점은 비터비 알고리즘을 실행하는 시간을 감소시키는 것을 포함할 수 있다.
본 명세서에서 개시된 상기 실시예들 중 하나 이상의 실시예들의 이점은 메모리 공간을 절약하는 것을 포함할 수 있다.
또다른 이점은, 무선 통신 시스템에서, 셀룰러 폰과 같은 무선 통신 디바이스에 대한 더 빠른 획득(acquisition) 시간을 포함할 수 있다.
본 발명의 다른 양상들, 이점들 및 특징들은 후속하는 섹션들, 즉, 도면의 상세한 설명, 실시예, 청구의 범위를 포함하는 전체 명세서의 검토 후 명백해질 것이다.
본 명세서에서 설명된 실시예들의 양상들 및 수반되는 이점들은 첨부되는 도면들에 관해 취해진 후속하는 상세한 설명들을 참조로 더 명백해질 것이다.
도 1은 비터비 알고리즘과 연관된 상태들과 같은 예시적인 상태도.
도 2는 도 1의 상태도에 기반하는 벡터 다이어그램.
도 3은 벡터 비교 명령을 도시하는 기능 다이어그램.
도 4는 비터비 패킹 명령을 도시하는 기능 다이어그램.
도 5는 비터비 패킹 명령의 방법을 도시하는 흐름도.
도 6은 비터비 패킹 명령 회로를 도시하는 논리도.
도 7은 도 4 내지 6 중 임의의 도의 비터비 패킹 명령을 포함하는 무선 통신 디바이스의 다이어그램.
도 1은 비터비 알고리즘과 연관된 상태들과 같은 상태들의 트렐리스의 일예를 예시한다. 이 예에서, 16개의 가능한 상태들(0-15)이 도시된다. 도시된 바와 같이, 우측 0-7에 있는 각 상태는 좌측에 있는 두 개의 상이한 상태들로부터 도달될 수 있다. 예를 들어, 상태 0은 상태 0 혹은 상태 8로부터 도달될 수 있다.
도 2는 도 1에 도시된 상태들 사이의 가능한 천이들을 도시하는 벡터 다이어그램을 예시한다. 이 예에서, 4개의 벡터들이 A-D로 도시된다. 벡터 A는 상태 0,1,2,3으로부터 상태 0,2,4,6으로의 천이들을 나타낸다. 벡터 B는 상태 8,9,10,11로부터 상태 0,2,4,6으로의 천이들을 나타낸다. 벡터 C는 상태 0,1,2,3으로부터 상태 1,3,5,7로의 천이들을 나타낸다. 벡터 D는 상태 8,9,10,11로부터 상태 1,3,5,7로의 천이들을 나타낸다.
*이전에 언급된 바와 같이, 비터비 알고리즘에서, 가장 유력한 경로가 결정된다. 어느 경로가 가장 유력한지를 결정하기 위해, 상이한 천이 벡터들의 확률을 비교하는 벡터 비교가 사용될 수 있다.
레지스터들의 컴포넌트들을 비교할 수 있는 비교 명령을 가지는 것이 바람직할 수 있다. 다용도(versatile) 비교 명령은, 상기 알고리즘이 다양한 상황들에 사용될 수 있도록, 바이트 비교, 16 비트 하프-워드(half-word) 비교, 워드 비교 및 롱 워드(long word) 비교를 수행할 수 있는 명령일 수 있다. 이러한 비교 명령을 사용하여, 롱 워드와 또다른 롱 워드의 비교는, 예를 들어, 어느 롱 워드가 더 큰지를 표시하는 단일 비트의 출력을 생성할 수 있다. 두 개의 워드들을 두 개의 다른 워드들과 비교하는 것은 두 비트의 출력을 생성할 수 있으며, 각 비트는 상기 워드 비교들 중 하나의 결과를 나타낸다. 유사하게, 4개의 하프-워드 비교들은 4비트를 생성할 수 있고, 8개의 바이트 비교는 8비트를 생성할 수 있다. 상기 결과들의 저장을 간소화하기 위해, 상기 비교 결과들 각각은 목적지 레지스터 내의 데이터의 바이트로 기록될 수 있으며, 롱 워드 비교시 그 결과 비트는 단지 1비트가 아닌 목적지 레지스터 내의 바이트의 모든 비트들로 기록될 수 있다. 워드 비교를 위해, 제 1 결과 비트는 상기 바이트 중 처음 4 비트들로 기록될 수 있고, 제 2 결과 비트는 나머지 4비트들로 기록될 수 있다. 하프-워드 비교를 위해, 상기 제 1 결과 비트는 처음 2 비트들로 기록될 수 있고, 상기 제 2 결과 비트는 나머지 2 비트들로 기록될 수 있는 등의 식이다.
도 3은, 예컨대 비터비 디코딩 동안과 같이, 비터비 알고리즘에 유용할 수 있는 다용도(versatile) 벡터 비교 명령(100)의 기능을 예시한다.
비터비 디코딩에 사용되기 위한 벡터 비교 명령(100)에 있어서, 예를 들어, 레지스터(101)에 저장된 A 벡터는 레지스터(102)에 저장된 B 벡터와 비교되며, 그 결과들은 술어 레지스터(110)에 저장된다. 상기 벡터들 및 레지스터들은 임의의 적절한 사이즈일 수 있다. 예를 들어, 상기 A 벡터 및 상기 B 벡터는 4개의 16-비트 하프-워드들(101w-101z 및 102w-102z)로 이루어질 수 있으며, 각 하프-워드는 도 1 및 도 2에 도시된 상태 천이들 중 하나, 예를 들면 상태 0에서 상태 0으로의 메트릭을 나타낸다. A 벡터는 64 비트 레지스터(101)에 저장될 수 있고, B 벡터는 64 비트 레지스터(102)에 저장될 수 있다. 레지스터(101) 및 레지스터(102)는 대안적으로 복수의 레지스터들로서 구현될 수 있다. 예를 들어, 하나 혹은 양쪽 모두 두 개의 별도의 레지스터들로 구성될 수 있다.
비교(103-106) 각각은, 도시된 바와 같이, 개별적인 하프 워드(101w-101z)와 개별적인 하프-워드(102w-102z)를 비교한다. 상기 논의된 바와 같이, 다용도 벡터 비교 명령은 각 비교(103-106)에 대한 결과 비트를 술어 레지스터(110) 내의 두 개의 인접한 비트들에 단순히 저장할 수 있다. 따라서, 비교(103)의 결과인 비트 d는 술어 레지스터(110)의 양 비트(7 및 6)들로 기록될 수 있다. 유사하게, 비트들(c,b,a) 각각은 술어 레지스터(110)의 두 비트로 기록될 수 있다.
도 4는 예시적인 비터비 패킹 명령(150)의 기능을 예시한다. 이러한 비-제한적인 예에서, 술어 레지스터(110)는 벡터 비교 명령(100)의 결과들을 포함하고, 술어 레지스터(120)는, 예를 들면 다른 벡터들(C 및 D)을 비교하였을 수 있는 벡터 비교 명령의 결과를 포함한다. 두 개의 레지스터들 내에 상기 두 개의 벡터 비교 명령들의 결과들을 남겨두기보다는, 비터비 패킹 명령(150)에서 이러한 결과들은 목적지 레지스터(130)로 패킹된다. 목적지 레지스터(130)는 임의의 적합한 사이즈일 수 있는데, 예를 들면 8비트 혹은 더 클 수 있다. 비터비 패킹 명령(150)은 소프트웨어, 펌웨어, 하드웨어 혹은 이들의 임의의 조합을 통해 구현될 수 있다.
비-제한적인 실시예에서, 비터비 패킹 명령(150)은 다음과 같이 나타날 수 있다:
RD=(P0&0x55)|(P1&0xAA)
여기서, RD는 목적지 레지스터(130)이고, P0는 제 1 술어 레지스터(110)이고 P1은 제 2 술어 레지스터(120)이다.
비터비 패킹 명령(150)의 이러한 비-제한적인 실시예의 실행 동안, 상기 술어 레지스터(110)의 짝수 비트들(d,c,b,및 a)은 상기 목적지 레지스터(130)의 짝수 비트들(비트 6,4,2,및 0)로 기록된다. 부가적으로, 상기 술어 레지스터(120)의 홀수 비트들(h,g,f,e)은 상기 목적지 레지스터(130)의 홀수 비트들(비트 7,5,3,1)로 기록된다. 따라서, 목적지 레지스터(130)에 있는 상기 비트들은 상기 두 개의 술어 레지스터들(110 및 120) 내에 저장된 비트들 사이에서 교번(alternate)할 것이다. 이러한 방식으로, 상기 목적지 레지스터(130) 내 비트들은 처리 속도를 높이기 위해 더 자연스러운 순서로 위치된다.
롱 워드들 또는 워드들을 비교하는 벡터 비교들에 대해, 8 혹은 4개의 술어 레지스터들이 각 레지스터로부터의 상기 비트들을 교번시킴으로써 목적지 레지스터에 있는 단일 바이트로 패킹될 수 있다는 점이 주목되어야 한다.
*도 5는 비터비 패킹 방법을 예시한다. 상기 방법의 비-제한적인 실시예(300)에 따라, 제 1 마스킹 값이 상기 제 1 술어 레지스터(110)의 콘텐츠들에 적용될 수 있으며, 제 2 마스킹 값이 상기 제 2 술어 레지스터(120)의 콘텐츠들에 적용될 수 있다(단계 310). 예를 들어, 상기 제 1 마스킹 값은 16진수 55이고 상기 제 2 마스킹 값은 16진수 AA이다. 둘보다 많은 레지스터들을 패킹하기 위해서는, 예를 들어, 롱 워드 혹은 워드 비교들이 수행되는 경우, 다른 상이한 16진수 마스킹 값이 사용될 것이다.
상기 두 개의 마스킹들로부터 초래된 마스킹된 데이터는 함께 논리합(OR)된다(단계 320). 이후, 상기 OR된 데이터는 목적지 레지스터(130)에 기록된다(단계 330). 이들 단계들은, 원한다면, 상이한 비트들을 위해 동시에 발생하는 단계들과 함께 비트 방식 기반(bitwise basis)으로 발생할 수 있다.
도 6은 비터비 패킹 회로(400)의 비-제한적인 실시예를 예시한다. 상기 제 1 술어 레지스터(110)의 콘텐츠들이 AND 게이트(401)로 인가되고, 예를 들어 메모리(405)에 저장될 수 있는 16진수 55와 논리곱(AND)된다. 제 2 술어 레지스터(120)의 콘텐츠들이 AND 게이트(402)로 인가되고, 예를 들어 메모리(406)에 저장될 수 있는 16진수 AA와 논리곱(AND)된다. 둘보다 많은 레지스터들을 패킹하기 위해, 다른 적절한 16진 값들이 사용될 것이다. 메모리(405) 및 메모리(406)은 단일 메모리 엘리먼트이거나 혹은 임의의 적절한 타입의 별도의 메모리 엘리먼트들일 수 있다. AND 게이트들(401 및 402)는 OR 게이트(410)의 입력에 연결된다. OR 게이트(410)이 출력은 목적지 레지스터(130)에 인가된다.
도 7은 전체적으로 520으로 참조되는 무선 통신 디바이스의 예시적이고, 비제한적인 실시예를 예시한다. 상기 무선 통신 디바이스는 디지털 신호 처리기(524)를 포함하는 시스템(522)을 포함한다. 디스플레이 제어기(526)는 상기 디지털 신호 처리기(524) 및 디스플레이(528)에 연결된다. 또한, 입력 디바이스(530)는 상기 디지털 신호 처리기(524)에 연결된다. 도시된 바와 같이, 메모리(532)는 상기 디지털 신호 처리기(524)에 연결된다. 부가적으로, 코더/디코더(코덱:CODEC)(534)가 상기 디지털 신호 처리기(524)에 연결될 수 있다. 스피커(536) 및 마이크로폰(538)이 상기 코덱(530)에 연결될 수 있다. 디지털 신호 처리기(524)는 하드웨어 혹은 펌웨어를 포함할 수 있으며, 그리고/또는 도 4-6에서 제공된 예들 중 임의의 예의 타입일 수 있는 비터비 패킹(Viterbi Pack) 명령(550)을 수행할 수 있는 소프트웨어를 실행할 수 있다. 만약 상기 비터비 패킹 명령(550)이 소프트웨어의 형태라면, 상기 소프트웨어는 대안적으로 메모리(532)에 저장될 수 있고, 단지 디지털 신호 처리기(524)에서 실행될 수 있다.
도 7은 또한 무선 제어기(540)가 디지털 신호 처리기(524) 및 무선 안테나(542)에 연결될 수 있음을 나타낸다. 특정 실시예에서, 전원(544)이 시스템(522)에 연결된다. 디스플레이(528), 입력 디바이스(530), 스피커(536), 마이크로폰(538), 무선 안테나(542), 및 전원(544)은 상기 시스템(522)에 대해 외부에 있을 수 있다. 그러나, 각각은 시스템(522)의 컴포넌트에 연결된다.
본 발명이 속한 기술분야에서 통상의 지식을 가진 자라면, 다양한 예시적인 논리 블록들, 구성들, 모듈들, 회로들, 및 본 명세서에서 개시된 실시예들과 연관하여 설명된 알고리즘 단계들이 하드웨어, 펌웨어, 소프트웨어, 혹은 이들의 임의의 조합으로서 구현될 수 있다는 점을 더 이해할 것이다. 본 발명이 속한 기술분야에서 통상의 지식을 가진 자는 각각의 특정 어플리케이션을 위한 다양한 방식으로 상기 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위로부터 벗어나는 것으로 해석되지 않아야 한다.
본 명세서에 설명된 실시예들과 연관하여 설명된 방법 혹은 알고리즘의 단계들은 하드웨어로, 펌웨어로, 프로세서에 의해 실행될 소프트웨어 모듈로, 혹은 이들의 임의의 조합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, PROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 이동식 디스크, 혹은 당해 분야에 알려진 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 상기 저장 매체로부터 정보를 판독하고 상기 저장 매체로 정보를 기록할 수 있도록 상기 프로세서에 결합된다. 대안적으로, 상기 저장 매체는 상기 프로세서에 일체화될 수 있다. 상기 프로세서 및 상기 저장 매체는 ASIC에 상주할 수 있다. 상기 ASIC은 계산 디바이스혹은 사용자 단말기에 상주할 수 있다. 대안적으로, 상기 프로세서 및 상기 저장 매체는 계산 디바이스 혹은 사용자 단말기 내의 이산 컴포넌트들로서 상주할 수 있다.
상기 개시된 실시예들의 이전 설명은 본 발명이 속한 기술분야에서 통상의 지식을 가진 자가 본 발명을 제작하거나 사용할 수 있도록 제공된다. 이들 실시예에 대한 다양한 수정들이 본 발명이 속한 기술분야에서 통상의 지식을 가진 자에게 자명할 것이며, 본 명세서에서 정의된 포괄적인 원리들은 본 발명의 범위 혹은 사상에서 벗어남이 없이 다른 실시예들에 적용될 수 있다. 따라서, 본 발명은 본 명세서에서 제시된 실시예들에 한정되는 것으로 의도되는 것이 아니라, 후속하는 청구항들에 의해 한정된 원리들 및 신규한 특징들에 일치하는 가장 넓은 범위에 따른다.

Claims (1)

  1. 비터비(Viterbi) 패킹 방법으로서,
    제 1 마스킹된 데이터를 생성하기 위해 제 1 마스킹 값을 사용하여 제 1 술어(predicate) 레지스터의 콘텐츠들을 마스킹하는 단계 및 제 2 마스킹된 데이터를 생성하기 위해 제 2 마스킹 값을 사용하여 제 2 술어 레지스터의 콘텐츠들을 마스킹하는 단계; 및
    상기 제 1 마스킹된 데이터 및 상기 제 2 마스킹된 데이터를 단일 목적지 레지스터에 기록하는 단계를 포함하는,
    비터비 패킹 방법.
KR20157006068A 2006-03-23 2007-03-23 비터비 패킹 명령 KR20150038630A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/389,443 US8290095B2 (en) 2006-03-23 2006-03-23 Viterbi pack instruction
US11/389,443 2006-03-23
PCT/US2007/064816 WO2007109793A2 (en) 2006-03-23 2007-03-23 Viterbi pack instruction

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020127022669A Division KR101585492B1 (ko) 2006-03-23 2007-03-23 비터비 패킹 명령

Publications (1)

Publication Number Publication Date
KR20150038630A true KR20150038630A (ko) 2015-04-08

Family

ID=38523331

Family Applications (3)

Application Number Title Priority Date Filing Date
KR20157006068A KR20150038630A (ko) 2006-03-23 2007-03-23 비터비 패킹 명령
KR1020127022669A KR101585492B1 (ko) 2006-03-23 2007-03-23 비터비 패킹 명령
KR1020087025411A KR20080112311A (ko) 2006-03-23 2007-03-23 비터비 패킹 명령

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020127022669A KR101585492B1 (ko) 2006-03-23 2007-03-23 비터비 패킹 명령
KR1020087025411A KR20080112311A (ko) 2006-03-23 2007-03-23 비터비 패킹 명령

Country Status (11)

Country Link
US (1) US8290095B2 (ko)
EP (1) EP1997229A2 (ko)
JP (1) JP5180186B2 (ko)
KR (3) KR20150038630A (ko)
CN (1) CN101405945B (ko)
BR (1) BRPI0708809A2 (ko)
CA (1) CA2643940A1 (ko)
IN (1) IN266883B (ko)
MX (1) MX2008011985A (ko)
RU (1) RU2008141908A (ko)
WO (1) WO2007109793A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025020B (zh) * 2011-12-23 2017-06-13 英特尔公司 用于执行掩码位压缩的系统、装置以及方法
US9390058B2 (en) * 2013-09-24 2016-07-12 Apple Inc. Dynamic attribute inference
US9367309B2 (en) 2013-09-24 2016-06-14 Apple Inc. Predicate attribute tracker
US9552205B2 (en) * 2013-09-27 2017-01-24 Intel Corporation Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions
US10061584B2 (en) 2015-09-19 2018-08-28 Microsoft Technology Licensing, Llc Store nullification in the target field
US10180840B2 (en) * 2015-09-19 2019-01-15 Microsoft Technology Licensing, Llc Dynamic generation of null instructions
US10031756B2 (en) 2015-09-19 2018-07-24 Microsoft Technology Licensing, Llc Multi-nullification
US10198263B2 (en) 2015-09-19 2019-02-05 Microsoft Technology Licensing, Llc Write nullification
US11681531B2 (en) 2015-09-19 2023-06-20 Microsoft Technology Licensing, Llc Generation and use of memory access instruction order encodings

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4012722A (en) * 1975-09-20 1977-03-15 Burroughs Corporation High speed modular mask generator
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US5752001A (en) * 1995-06-01 1998-05-12 Intel Corporation Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition
US5621674A (en) 1996-02-15 1997-04-15 Intel Corporation Computer implemented method for compressing 24 bit pixels to 16 bit pixels
WO1998047246A1 (fr) 1997-04-17 1998-10-22 Ntt Mobile Communications Network Inc. Station de base de systeme de communications mobiles
US6334202B1 (en) 1998-07-22 2001-12-25 Telefonaktiebolaget Lm Ericsson (Publ) Fast metric calculation for Viterbi decoder implementation
US6798736B1 (en) 1998-09-22 2004-09-28 Qualcomm Incorporated Method and apparatus for transmitting and receiving variable rate data
US20020002666A1 (en) * 1998-10-12 2002-01-03 Carole Dulong Conditional operand selection using mask operations
US6115808A (en) * 1998-12-30 2000-09-05 Intel Corporation Method and apparatus for performing predicate hazard detection
US6333954B1 (en) * 1999-10-21 2001-12-25 Qualcomm Incorporated High-speed ACS for Viterbi decoder implementations
US6654878B1 (en) 2000-09-07 2003-11-25 International Business Machines Corporation Register bit scanning
GB2367650B (en) 2000-10-04 2004-10-27 Advanced Risc Mach Ltd Single instruction multiple data processing
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
KR20040085545A (ko) 2003-03-31 2004-10-08 삼성전자주식회사 통신 시스템에서 오류 정정 부호의 복호 장치 및 방법
US20050149701A1 (en) * 2003-12-24 2005-07-07 Inching Chen Method, apparatus and system for pair-wise minimum and minimum mask instructions

Also Published As

Publication number Publication date
CN101405945B (zh) 2013-03-27
KR20120116500A (ko) 2012-10-22
KR101585492B1 (ko) 2016-01-22
BRPI0708809A2 (pt) 2011-06-14
WO2007109793A2 (en) 2007-09-27
WO2007109793A3 (en) 2007-12-27
KR20080112311A (ko) 2008-12-24
US20070223629A1 (en) 2007-09-27
US8290095B2 (en) 2012-10-16
IN266883B (ko) 2015-06-11
JP5180186B2 (ja) 2013-04-10
RU2008141908A (ru) 2010-04-27
EP1997229A2 (en) 2008-12-03
MX2008011985A (es) 2008-10-03
CA2643940A1 (en) 2007-09-27
CN101405945A (zh) 2009-04-08
JP2009531987A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
KR101585492B1 (ko) 비터비 패킹 명령
US6848074B2 (en) Method and apparatus for implementing a single cycle operation in a data processing system
EP0923197B1 (en) Processor and processing method
US20050157823A1 (en) Technique for improving viterbi decoder performance
US6333954B1 (en) High-speed ACS for Viterbi decoder implementations
US5742621A (en) Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
KR100336246B1 (ko) 디지탈프로세서및코-프로세서를구비한집적회로
US20070205921A1 (en) Four-Symbol Parallel Viterbi Decoder
US20060143554A1 (en) Scalable traceback technique for channel decoder
US8401126B2 (en) Viterbi decoding apparatus
KR101746681B1 (ko) 가산-비교-선택 명령
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
CN105005465A (zh) 基于比特或字节并行加速的处理器
JP2010130271A (ja) 復号器および復号方法
US7171609B2 (en) Processor and method for convolutional decoding
EP1058392A1 (en) Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system
US20140129908A1 (en) Viterbi butterfly operations
Zhou et al. A flexible viterbi decoder for software defined radio
JP3231647B2 (ja) ビタビ復号器
KR20040065841A (ko) 비터비 복호기의 트레이스백 연산방법
KR20030039843A (ko) 역추적 예견을 사용한 효율적인 메모리 구조를 갖는파이프라인 비터비 복호기 구조 설계
JP2003234656A (ja) 演算処理装置
WO2007000708A1 (en) Viterbi decoder and decoding method thereof

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application