KR19990022068A - 데이터 요소 세트를 순차 프로세서로 처리하기 위한 방법 및컴퓨터 시스템 - Google Patents

데이터 요소 세트를 순차 프로세서로 처리하기 위한 방법 및컴퓨터 시스템

Info

Publication number
KR19990022068A
KR19990022068A KR1019970708547A KR19970708547A KR19990022068A KR 19990022068 A KR19990022068 A KR 19990022068A KR 1019970708547 A KR1019970708547 A KR 1019970708547A KR 19970708547 A KR19970708547 A KR 19970708547A KR 19990022068 A KR19990022068 A KR 19990022068A
Authority
KR
South Korea
Prior art keywords
data element
data
composite
block
composite data
Prior art date
Application number
KR1019970708547A
Other languages
English (en)
Other versions
KR100483212B1 (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 KR19990022068A publication Critical patent/KR19990022068A/ko
Application granted granted Critical
Publication of KR100483212B1 publication Critical patent/KR100483212B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Image Processing (AREA)

Abstract

본 발명의 방법 및 시스템은 종례의 순차 프로세서(30)에서 병렬 패턴 인식시에 이용된 벡터 성분과 같은 데이터 요소 세트를 처리하는데 이용된다. 일단의 데이터 요소는 복합 데이터 요소로서 프로세서(30)의 데이터 레지스터 내에 적재된다. 데이터 레지스터는 가, 감 및 승제와 같은 종례의 프로세서 명령어를 이용하여 동작한다. 복합 데이터 요소는 각각의 블록이 저차 비트 위치에 있는 데이터 요소 및 고차 비트 위치에 있는 하나의 분리 비트를 포함하는 최소한 2개의 블록으로 이루어진 배열을 포함한다. 분리 비트는 프로세서 동작 중에 요구된 병렬 결과가 형성되도록 선정된 비트치로 할당된다.

Description

데이터 요소 세트를 순차 프로세서로 처리하기 위한 방법 및 컴퓨터 시스템
이러한 방법 및 컴퓨터 시스템은, 예를 들어 패턴 인식에 일반적으로 이용된다. 언어 인식 또는 영상 인식과 같은 패턴 인식은 그 중요성이 증가하고 있다. 특히, 언어 인식은 전화 및 전기 통신(여러 가지 자동화 서비스 분야), 사무실 및 산업용 시스템(데이터 엔트리), 제조 분야(제조 공정의 핸즈 프리 제어), 의료 분야(의사록), 게임(음성 입력), 자동차 기능의 음성 제어 및 불구자가 이용하는 음성 제어 분야와 같은 분야 내지는 영역에 최근에 와서는 폭넓게 이용되었다. 계속되는 언어 인식에 대해서, 다음과 같은 신호 처리 단계는 도 1 내에 도시된 바와 같이 공통적으로 이용된다[L. Rabiner A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition, Proceeding of IEEE, 제 77권, 제 2호(1989년 2월)을 참고하시오].
- 특징 분석 : 언어 입력 신호는 특징에 관한 대표 벡터(관측 벡터 )를 계산하는데 스펙트럼으로나 임시로 분석된다. 전형적으로, 언어 신호는 문자화되고(예를 들어 6.67 ㎑의 속도로 표본화되고), 예를 들어 프리엠퍼시스를 적용함으로써 선처리된다. 연속 샘플들은, 예를 들어 언어 신호의 32msec에 대응하는 프레임으로 그룹화(블록화)된다. 연속하는 프레임은, 예를 들어 16msec로 부분 중첩된다. 때로는, 선형 예측 구문 코딩(Linear Predictive Coding : LPC) 스펙트럼 분석 방법이 각각의 프레임에 대해 특징에 관한 대표 벡터(관측 벡터 )를 계산하는데 이용된다. 예를 들어, 특징 벡터는 24, 32 또는 63개의 부품(특징 공간 차원: feature space dimension)을 가질 수 있다.
- 단위 정합 시스템(nuit matching system): 관측 벡터는 언어 인식 장치의 재고(inventory)에 대해 정합된다. 여러 가지 형태의 언어 인식 장치가 이용된다. 소정의 시스템은 페넨스(fenenes) 및 펜온스(fenones)와 같은 파생 단위뿐만 아니라, 음, 2중 음 또는 실러블(syllable)과 같은 언어학에 기초한 서브워드 단위를 이용한다. 단위 정합 시스템은 언어 인식 단위의 모든 순서에 대한 관측 벡터를 일치시킨다.
소위 말하는 히덴 마르코프 모델(Hidden Markov Model; HMM)은 확률론적인 모델 언어 신호에 폭넓게 이용된다. 이러한 모델을 이용하면, 각각의 언어 인식 단위는 HMM에 의해 전형적으로 특징지워 지는데, 파라메터는 언어 데이터의 트레이닝 세트로 설정된다. 예를 들어 10,000 내지 60,000 단어, 통상적으로는 예를 들어 40의 제한 세트를 포함하는 풍부한 어휘 언어 인식 시스템에 있어서, 대형 단위에 대한 HMM을 적절히 트레인하기 위해 많은 트레이닝 데이터를 필요로 하기 때문에 서브워드 단위가 이용된다. 언어에 있어서, 관측은 연속 신호를 나타낸다. 관측은, 예를 들어 32 내지 256개 벡터의 최종 알파벳에서 선택된 이산 기호(discrete symbol)로 양자화될 수 있다. 이러한 경우에, 이산 확률 밀도는 모델의 각각의 상태에 이용될 수 있다. 양자화에 관련하여 열화를 방지하기 위해, 다수의 언어 인식 시스템은 연속 관측 밀도를 이용한다. 일반적으로, 밀도는 가우스(정규 분포) 또는 라플라스 밀도와 같은 로그 요면(log-concave) 또는 타원 대칭 밀도로부터 유도된다. 트레이닝 중에, 트레이닝 데이터(트레이닝 관측 순서)는 상태로 분절되고, 각 상태에 대한 관측 벡터는 클러스터된다. 시스템의 복잡성 및 트레이닝 데이터의 양에 따라서 변하는 것은 각각의 상태에 대해 32 내지 120개의 클러스터 사이에 있을 수 있다. 각각의 클러스터는 가우스 밀도와 같은 자체 밀도를 갖고 있다. 밀도는 평균 벡터와 같은 기준 벡터에 의해 나타난다.
가능한 계산은 클러스터를 나타내는 각각의 기준 벡터에 대한 관측(특징 벡터) 거리를 각각의 상태로 계산하는 것을 포함한다. 특히, 연속 관측 밀도 HMM을 이용하여 풍부한 어휘 언어 인식 시스템에 있어서, 가능한 계산은 다수의 계산을 포함한다. 예를 들어 40개의 서브워드 단위, 서브워드 단위당 5개 상태 및 상태당 6개 클러스터를 이용하면, 가능한 계산은, 예를 들어 32개의 차원 벡터들 사이의 12800회의 거리 계산을 포함한다. 이러한 계산은 각각의 관측에 대해 반복된다. 따라서, 가능한 계산은 계산 자원의 50%-75%를 소모할 수 있다.
전형적으로, 패턴 인식은 순차 마이크로프로세서를 가지는 종례의 PC 또는 워크스테이션으로 실행된다. 최신 기술의 마이크로프로세서를 이용할지라도, 예를 들어 시스템에 이용된 클러스터의 총수에 의한 영향을 받는 패턴 인식의 품질(quality)은 실시간(real-time) 또는 근 실시간(near real-time) 패턴 인식을 달성하기 위해서 제한된다.
본 발명은 다수의 데이터 비트; 다수의 데이터 레지스터들 중 개별 레지스터 내에 저장된 오퍼랜드(operand)의 명령어 고유 수치에 따라 동작하는 프로세서; w 비트의 폭을 가지는 최소한 하나의 오퍼랜드를 각각 포함하는 데이터 요소 세트를 순차 프로세서를 포함하는 컴퓨터 시스템으로 처리하기 위한 방법에 관한 것으로, 이 방법은
a. 최소한 하나의 데이터 요소를 데이터 소자 세트로부터 선택하는 단계와,
b. 각각의 선택된 데이터 요소에 대해서 데이터 레지스터들 중 하나의 레지스터를 선택하여 선택된 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 단계와,
c. 선택된 데이터 레지스터를 동작하도록 프로세서에게 지시하는 단계, 및
d. 모든 데이터 요소 세트가 온 상태로 동작될 때까지 단계(a 내지 c)를 반복하는 단계를 포함한다.
또한, 본 발명은 다수의 데이터 비트; 메모리 수단 및 다수의 데이터 레지스터들 중 개별 레지스터 내에 저장된 오퍼랜드의 명령어 고유 수치에 따라서 동작하는 순차 프로세서; w 비트의 폭을 가지는 최소한 하나의 오퍼랜드; 메모리 수단 내에 저장된 프로그램의 제어 하에 하기의 단계들을 수행하도록 동작하는 프로세서를 각각 포함하는 데이터 요소 세트를 처리하기 위한 컴퓨터 시스템에 관한 것으로, 그 단계로는
a. 최소한 하나의 데이터 요소를 데이터 요소 세트로부터 선택하는 단계와,
b. 각각의 선택된 데이터 요소에 대해 데이터 레지스터들 중 하나의 레지스터를 선택하여 선택된 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 단계와,
c. 선택된 데이터 레지스터에 따라서 동작하는 단계, 및
d. 모든 데이터 요소 세트가 온 상태로 동작할 때까지 단계(a 내지 c)를 반복하는 단계가 있다.
도 1은 연속 언어 인식용으로 공통적으로 이용되는 처리 단계를 도시한 도면.
도 2는 본 발명에 따른 시스템의 실시예를 도시한 블록도.
도 3은 좌-우 이산 마르코프 처리예를 도시한 도면.
도 4는 4개의 블록을 가지는 복합 데이터 요소를 도시한 도면.
도 5는 분리 비트를 세팅시키는 것을 도시한 도면.
도 6은 병렬 감산을 도시한 도면.
도 7은 음의 데이터 요소를 인식하는 것을 도시한 도면.
도 8은 음의 데이터 요소를 대응하는 양의 값으로 변환하는 것을 도시한 도면.
도 9는 병렬 가산을 도시한 도면.
도 10은 보다 많은 분리 비트를 발생시키는 도면.
도 11은 복합 데이터 요소의 성분을 추가하는 것을 도시한 도면.
도 12는 기수 블록을 가지는 복합 데이터 요소를 처리하는 것을 도시한 도면.
도 13은 기수 블록을 가지는 복합 데이터 요소를 처리시의 선택적인 방법을 도시한 도면.
도 14는 병렬 승산을 도시한 도면.
본 발명의 목적은, 예를 들어 패턴 인식에 이용된 바와 같은 데이터 요소 세트를 최고속으로 처리하는 포텐셜을 가지는 공포된 종류의 방법 및 컴퓨터 시스템을 제공하기 위한 것이다.
이러한 목적을 달성하기 위해서, 본 발명에 따른 방법은
최소한 2개의 특정 데이터 요소의 최소한 하나의 그룹을 데이터 요소 세트로부터 선택하는 것을 포함하는 단계(a)와,
각각의 선택된 그룹에 대해 데이터 레지스터들 중 개별 레지스터를 선택하고, 복합 데이터 요소로서 그룹의 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 것을 포함하는 단계(b)를 포함하는데, 복합 데이터 요소는 그룹의 각각의 데이터 요소에 대해 최소한의 d+s 연속 비트의 대응 블록을 포함하고, 블록은 복합 데이터 요소 및 대응하는 데이터 요소의 데이터 비트를 포함하는 각각의 블록 d 저차(low order) 비트 위치 및 선정된 비트값을 각각 가지는 격리 비트를 최소한의 s 고차(high order) 비트 위치에 관한 연속 블록 위치에 배열되는데, (d+s)*2≤w인 것을 특징으로 한다.
종래에 있어서, 순차 프로세서는 분리된 데이터 레지스터 내에 적재된 오퍼랜드로 동작한다. 오퍼랜드는 하나의 데이터 요소로서 처리된다. 순차 프로세서의 성능은 계속해서 증가하고 있다. 일 예로서, 초당 실행된 명령의 횟수는 클럭 주파수의 증가로 인해 증가하고, RISC 또는 슈퍼스케일러(superscalar) 실시와 같은 명령어당 처리 사이클을 작게 요구하는 프로세서 아키텍처를 이용함으로써 증가한다. 부수적으로, 프로세서의 워드 크기(word-size)는, 예를 들어 32 또는 64 비트로 증가하고 있다. 데이터 요소의 크기가 이의 애플리케이션(application)에 의해 결정되기 때문에, 애플리케이션의 수가 증가하는 것은 워드 크기를 증가시켜 이로운 것이 못된다. 8 비트 데이터 요소를 이용하면, 가능한 계산은 2개의 프로세서가 초당 동일 수의 명령을 실행할 수 있는 경우에 32 비트 프로세서를 8 비트 프로세서로서 동일하면서 양호하게 수행할 수 있다. 프로세서의 아키텍처에 따라서 32 비트 프로세서는 이러한 프로세서가 8 비트 워드와 32 비트 워드 사이의 변환에 필요한 추가 시간을 필요로 하는 경우 한결같이 최저로 느려질 수 있다. 전형적으로, 초당 높은 수의 명령을 수행할 수 있는 프로세서는 대형 워드 크기를 갖는다. 본 발명은 워드 크기의 증가에도 이용하는 방식을 제공한다. 그러므로, 본 발명에 따르면, 일단의 데이터 요소를 나타내는 복합 데이터 요소는 데이터 레지스터 내에 적재된다. 하나의 데이터 요소를 동작시키는데 진부하게 이용되는 동일한 명령을 이용하면, 순차 프로세서는 데이터 요소 그룹을 병렬로 동작시키는데 이용된다. 동작 중에 데이터 요소는 서로가 부주의하게 간섭하지 않도록, 예를 들어 캐리어 비트 또는 언더플로우/오버플로우 상황에 의해 야기되도록 하기 위해서, 복합 데이터 요소는 개별적으로 포함하는 데이터 요소들 사이에 분리 비트로 형성된다. 패턴 인식에 있어서, 최대한 가능한 계산에 필요한 처리 시간의 비율이 감소되는 고속 처리가 실행된다. 이것은 실시간 패턴 인식을 달성하는데 기여하고, 패턴을 최저 패턴 에러율로 인식하기 위한 포텐셜을 제공한다.
데이터 요소가 유한 정수를 나타내는 본 발명에 따른 실시예는 본 발명의 방법이 2d-1을 각각의 데이터 요소 세트에 가산함으로써 데이터 요소 세트를 유한의 양의 정수(finite positive integer)로 변환하는 단계를 포함하는 것을 특징으로 한다. 유한 정수를 양의 유한 정수로 변환하는 것은 분리 비트의 처리로 간단하게 된다. 컴퓨터 시스템이 메모리 수단 및 이 메모리 수단 내에 저장된 데이터 요소를 포함하는 본 발명에 따른 실시예는 최소한 하나의 그룹에 대해 복합 데이터 요소가 메모리 수단 내에 저장되고, 복합 데이터 요소로서의 데이터 요소 그룹을 메모리 수단으로부터의 복합 데이터 요소를 선택된 데이터 레지스터 내에서 판독하는 것을 포함하는 선택된 데이터 레지스터 내에 적재하는 것을 특징으로 한다. 데이터 요소 그룹에 대한 복합 데이터 요소를 사전에 저장하면, 복합 데이터 요소가 신속하게 적재될 수 있다. 유리하게도, 데이터 요소는 복합 데이터 요소로서 이용하기에 적절한 형태로 저장된다. 양호하게도, 데이터 요소는 데이터 요소들 사이에서 분리 비트를 가지는 메모리 수단 내에 순차적으로 저장된다.
본 발명에 따른 다른 실시예는 본 발명의 방법이 각각의 데이터 요소 그룹에 대해서 데이터 요소를 제 1 데이터 레지스터 내에 적재하고, 제 1 데이터 레지스터내의 데이터 요소 또는 제 2 데이터 레지스터 내에 저장된 임시 복합 데이터 요소를 최소한 d+s 비트 위치에 걸쳐 재배치하며, 데이터 요소를 제 2 데이터 레지스터내의 임시 복합 데이터 요소와 조합함으로써 데이터 요소를 대응 그룹의 데이터 요소로 구성하고, 임시 복합 데이터 요소를 복합 데이터 요소로서 이용하는 것을 포함하는 것을 특징으로 한다.
본 발명의 실시예에 있어서, 복합 데이터 요소는 대응하는 데이터 요소로서 구성된다. 이러한 방법은 데이터 요소가 데이터 요소 또는 복합 데이터 요소에 대한 부수적인 메모리를 전혀 필요로 하지 않는 프로세서로 실시간으로 공급되는 시스템에 유리하게 이용될 수 있다.
데이터 요소 세트가 동일한 수의 데이터 요소를 포함하는 데이터 요소의 제 1 및 제 2 서브세트를 포함하는 본 발명에 따른 다른 실시예는 제 1 복합 데이터 요소가 2진수 '1'의 값으로 세트되는 제 1 의 복합 데이터 요소의 각 블록의 최소한 하나의 분리 비트만큼 각각의 데이터 요소에 가산되는 오프세트(offset)를 가지는 데이터 요소의 제 1 서브세트의 데이터 요소 그룹에 대응하고, 제 2 복합 데이터 요소가 2진수 '0'의 값으로 세트되는 제 2 복합 데이터의 각 블록의 분리 비트를 가지는 데이터 요소의 제 2 서브세트의 데이터 요소 그룹에 대응하며, 프로세서가 제 2 복합 데이터 요소로 적재된 데이터 레지스터를 제 1 복합 데이터 요소로 적재되는 데이터 레지스터에서 감산하여 제 1 및 제 2 복합 데이터 요소의 대응하는 블록보다 최소한 1 만큼 많은 데이터 비트 및 최소한 1 만큼 적은 분리 비트를 포함하는 감산된 복합 데이터 요소의 각각의 블록을 가지는 제 1 및 제 2 복합 데이터 요소의 블록 배열에 대응하는 블록 배열을 포함하는 감산된 복합 데이터 요소를 형성하도록 지시하는 것을 특징으로 한다.
이러한 방식에 있어서, 병렬 감산은 순차 프로세서로 달성된다. 제 1 복합 데이터 요소의 분리 비트를 '1'로 세트시킴으로써 음의 수는 감산 중에 형성되는데, 그렇지 않은 경우 서로가 영향을 끼치는 데이터 요소(비트를 고차 데이터 요소에서 빌려오는 저차 데이터 요소)에 근접시에 발생되는 것이 방지된다.
본 발명에 따른 또 다른 실시예는 복합 데이터 요소의 분리 비트를 세팅하는 것은 w 비트의 선정된 마스크를 가지는 복합 데이터 요소로 비트 방식으로(bit-wise) XOR 동작을 수행하도록 프로세서에 지시하는 것을 포함하는 것을 특징으로 한다. 이러한 방식에 있어서, 복합 데이터 요소의 모든 블록에 관한 분리 비트가 하나의 동작시에 세트된다.
본 발명에 따른 실시예는 본 발명의 방법이 감산된 복합 데이터 요소의 음의 데이터 요소를 대응하는 양의 데이터 요소로 선택적으로 변환하는 것을 포함하는 것을 특징으로 한다. 음의 데이터 요소를 변환함으로써, 복합 데이터 요소의 데이터 요소의 절대치는 병렬로 계산된다. 유리하게도, 이것은 벡터의 L1-표준 또는 벡터의 L1-거리를 계산하는데 이용될 수 있다.
음의 수가 2의 보수 표시로 나타나는 본 발명의 다른 실시예는 변환이
- 제 1 마스크의 각각의 블록에서 d+1 번째 비트가 2진수 '1'의 값으로 세트되고, 배열에 대응하는 블록의 배열을 포함하는 w 비트의 제 1 마스크로 감산된 복합 데이터 요소에 따른 비트 방식으로 AND 동작을 수행하도록 프로세서에 지시하고,
- 나머지 비트가 2진수 '0'의 값으로 세트되는 감산된 복합 데이터 요소 블록의 w 비트의 제 2 마스크를 형성하는 최종 복합 데이터 요소를 2d만큼 제산하도록 프로세서에 지시함으로써
- 감산된 복합 데이터 요소가 음으로 되는지를 식별하고,
- 제 2 마스크를 2d-1 만큼 승산되게 제 3 마스크를 계산하도록 프로세서에 지시하고,
- 제 2 마스크를 가산한 다음에 감산된 복합 데이터 요소 및 제 3 마스크에 따라 비트 방식으로 XOR 동작을 수행하도록 프로세서에 지시함으로써
- 감산된 복합 데이터 요소의 데이터 요소를 변환하는 것을 포함하는 것을 특징으로 한다.
이러한 방식에 있어서, 음의 데이터 요소의 2의 보수 변환은 병렬로 수행된다.
데이터 요소의 제 1 및 제 2 서브세트가 제 1 및 제 2 벡터를 각각 나타내고, 본 발명의 방법이 제 1 벡터와 제 2 벡터 사이의 Lr-거리를 계산하는 것을 포함하는 본 발명에 따른 또 다른 실시예는, 거리 계산이
- 각각의 데이터 요소를 감산된 복합 데이터 요소에서 추출하는 단계와,
- 추출된 데이터 요소를 멱급수(r) 만큼 상승시키는 단계, 및
- 상승된 데이터 요소를 가산함으로써 합을 형성하는 단계를 포함하는 것을 특징으로 한다.
벡터들 사이의 차를 병렬로 계산하고, 임의로 차 벡터의 성분에 관한 절대치를 계산한 후, 차 벡터의 성분을 벡터의 Lr-거리를 다시 결정하기 위해 개별적으로 처리된다.
컴퓨터 시스템이 메모리 수단을 포함하고, 데이터 요소의 제 1 및 제 2 서브세트가 제 1 및 제 2 벡터를 각각 나타내며, 본 발명의 방법이 제 1 벡터와 제 2 벡터 사이의 L1거리를 계산하는 것을 포함하는 본 발명에 따른 선택적인 실시예는, 계산이
- 다수의 연속 블록의 최소한의 데이터 비트를 포함하는 데이터 단위를 감산된 복합 데이터 요소를 추출하는 단계, 및
- 추출된 데이터 단위의 일부분인 데이터 비트에 대응하는 데이터 요소에 대한 Lr서브-표준(sub-norm)을 검색하기 위해 메모리 수단 내에 저장된 테이블을 액세스하는 단계를 포함하는 것을 특징으로 한다.
예를 들어 2개의 데이터 요소의 조합이 Lr-서브표준을 제공하는 테이블을 이용하는 경우, Lr-거리는 복합 데이터 요소를 이용하여 효과적으로 계산될 수 있다.
본 발명에 따른 또 다른 실시예는 본 발명의 방법이
- 다수의 상기 그룹을 세트로부터 선택하는 단계와,
각 그룹에 대해서
- 그룹 고유의 복합 데이터 요소의 각 블록의 분리 비트가 2진수 '0'의 값으로 세트되는 그룹 고유의 복합 데이터 요소로서 그룹의 데이터 요소를 선택된 데이터 레지스터 내에 적재하고,
- 감산된 복합 데이터 요소의 각각의 블록이 그룹 고유의 복합 데이터 요소의 대응하는 블록보다 최소한 1 만큼 많은 데이터 크기 및 이보다 최소한 1 만큼 작은 분리 비트를 포함하는 그룹 고유의 복합 데이터 요소내의 블록의 배열에 대응하는 블록의 배열을 포함하는 복합 데이터 요소인 임시 복합 합을 포함하는 데이터 레지스터에 선택된 데이터 레지스터를 추가하도록 프로세서에 지시함으로써
- 복합 합을 계산하도록 프로세서에 지시하는 단계, 및
- 임시 복합 합을 복합 합으로서 이용하는 단계를 포함하는 것을 특징으로 한다.
이러한 방식에 있어서, 병렬 추가는 순차 프로세서에서 달성된다.
본 발명에 따른 다른 실시예는, 본 발명의 방법이 복합 데이터 요소를 최소한 제 1 및 제 2 복합 데이터 요소로 분할함으로써 보다 많은 분리 비트를 발생시키는 것을 특징으로 한다. 분리 비트를 이용하면, 25복합 데이터 요소는 인접 데이터 요소의 방해가 없는 그러한 방식으로 가산될 수 있다. 복합 데이터 요소를 분할하는 경우 보다 많은 분리 비트가 발생될 수 있어서 보다 많은 복합 요소가 가산될 수 있다.
본 발명에 따른 다른 실시예는, 복합 데이터 요소를 제 1 및 제 2 복합 데이터 요소로 분할하는 것은
- 복합 데이터 요소를 제 2 복합 데이터 요소로 복사하는 단계와,
- 블록 위치를 교체하는 제 1 선택에서 복합 데이터 요소로부터 블록을 제거함으로써 제 1 복합 데이터 요소를 형성하는 단계와,
- 제 1 선택과 상보하여 블록 위치를 교체하는 제 2 선택에서 제 2 복합 데이터 요소로부터 블록을 제거하는 단계, 및
- 제 1 복합 데이터 요소 또는 제 2 복합 데이터 요소를 하나의 블록 위치로 쉬프트시키는 단계를 포함하는 것을 특징으로 한다.
이것은 d개의 보다 많은 분리 비트를 발생시키는 효과적인 방식이다.
본 발명에 따른 또 다른 실시예는, 본 발명의 방법이 복합 합의 블록을 추출하고, 추출된 블록을 가산함으로써 총합을 계산하는 것을 더 포함하는 것을 특징으로 한다. 총합은 복합 합의 성분을 가산함으로써 계산될 수 있다.
본 발명에 따른 선택적인 실시예는, 본 발명의 방법이 총합을 계산하는 것을 더 포함하는 것을 특징으로 하는데, 계산은
- 복합 합내의 블록의 수(n)를 결정하는 단계와,
- n의 거의 절반인 정수(m)를 결정하는 단계와,
- 복합 합을 제 2 복합 합으로 복사하는 단계와,
- 복합 합 또는 제 2 복합 합을 m개의 블록 위치로 제 1 방향으로 쉬프트시키는 단계, 및
- 보다 작은 데이터 요소를 가지는 새로운 복합 합을 형성하기 위해 복합 합과 제 2 복합 합을 합산하는 단계를 포함한다.
이러한 방식에 있어서, 복합 합의 다수의 데이터 요소들은 복합 합내의 데이터 요소의 수를 감소시킴과 동시에 병렬로 가산된다.
컴퓨터 시스템이 메모리 수단을 포함하는 본 발명에 따른 또 다른 실시예는, 본 발명의 방법이
- 다수의 연속 블록을 포함하는 데이터 단위를 복합 합으로부터 추출하고,
- 추출된 데이터 단위의 일부분인 데이터 요소의 합을 검색하기 위해 메모리 수단 내에 저장된 테이블을 액세스함으로써 총합을 계산하는 것을 더 포함하는 것을 특징으로 한다.
테이블을 이용하면, 총합이 효과적으로 계산될 수 있다.
데이터 요소 세트가 데이터 요소의 제 1 및 제 2 서브 세트, 동일한 수의 데이터 요소를 포함하고, 제 1 및 제 2 벡터를 각각 나타내는 제 1 및 제 2 서브세트를 포함하는 본 발명의 또 다른 실시예 및 제 1 벡터와 제 2 벡터 사이의 L2-거리를 계산하는 것을 포함하는 방법은
제 1 복합 데이터 요소가 연속 데이터 요소에 대응하는 제 1 복합 데이터 요소의 연속 블록, 및 최소한 d인 블록 내의 분리 비트 및 2진수 '0'의 값으로 세트되는 분리 비트의 수를 가지는 데이터 요소의 제 1 서브 세트의 일단의 k 연속 데이터 요소에 대응하고,
제 2 복합 데이터 요소가 연속 데이터 요소에 역순으로 대응하는 제 2 복합 데이터 요소의 연속 블록, 및 최소한 d인 블록내의 분리 비트 및 2진수 '0'의 값으로 세트되는 분리 비트의 수를 가지는 데이터 요소의 제 2 세트의 일단의 k 연속 데이터 요소에 대응하며,
상기 계산은
- 제 1 복합 데이터 요소로 적재된 데이터 레지스터를 제 2 복합 데이터 요소로 승산하여, 승산된 복합 데이터 요소를 형성하도록 프로세서에 명령하는 단계, 및
- k 번째 블록을 승산된 복합 데이터 요소로부터 추출하는 단계를 포함하는 것을 특징으로 한다.
이러한 방식으로 복합 데이터 요소를 형성하면, L2거리를 계산하는데 유리하게 이용될 수 있는 벡터적(cross-product)을 k 번째 블록 위치에 형성시 승산이 발생한다.
본 발명에 따른 또 다른 실시예는, 프로세서가 다수의 부동점(floating point) 데이터 레지스터를 포함하고, 제 1 및 제 2 복합 데이터 요소는 부동점 데이터 레지스터의 개별 레지스터의 가수(mantissa) 내에 적재되며, 프로세서가 제 1 및 제 2 복합 데이터 요소로 적재된 부동점 레지스터로 부동점 승산을 수행함으로써 승산된 복합 데이터 요소를 형성하도록 지시하는 것을 특징으로 한다. 정수 승산보다 빠른 부동점 승산 기능을 가지는 소정의 프로세서에 있어서, 유리하게도 부동점 단위는 승산을 수행하는데 이용된다.
본 발명에 따른 다른 실시예는 승산된 복합 데이터 요소의 k 번째 블록을 추출하는 것은
- 부동점 레지스터내의 제 1 또는 제 2 복합 데이터 요소를 적재하면서, n이 승산된 복합 데이터 요소의 k-1 저차 블록의 비트 수인 지수를 2-n으로 세트시키는 단계와,
- 승산된 복합 데이터 요소를 정수치로 변환하는 단계, 및
- 저차 블록을 정수치로부터 마스킹함으로써 추출하는 단계를 포함하는 것을 특징으로 한다.
복합 데이터 요소의 적재 중에 지수를 세팅하고, 승산중에 이 지수치를 유지하면, 요구된 수의 비트 위치에 걸쳐 일어나는 자동 쉬프트가 정수로의 변환중에 발생한다. 이것은 k 번째 블록을 추출하는 것을 간단하게 한다.
본 발명의 목적을 달성하기 위해서, 본 발명에 따른 컴퓨터 시스템은 단계(a)가 최소한 2개의 독특한 데이터 요소의 최소한 하나의 그룹을 데이터 요소 세트로부터 선택하는 것을 포함하고,
단계(b)가 각각의 선택된 그룹에 있어서 데이터 레지스터들 중 개별 레지스터를 선택하고, 복합 데이터 요소로서 그룹의 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 것을 포함하고; 상기 복합 데이터 요소는 각각의 데이터 요소 그룹에 있어서 최소한 d+s 연속 비트의 대응하는 블록을 포함하고, 블록이 복합 데이터 요소 및 각 블록 d 저차 비트 위치의 연속 블록 위치에 배열되는 블록이 대응하는 데이터 요소의 데이터 비트를 포함하고, 최소한의 s 고차 비트 위치가 (d+s)*2≤w인 선정된 비트치를 각각 가지는 분리 비트를 포함하는 것을 특징으로 한다.
본 발명의 이러한 특징 및 그 밖의 다른 특징은 첨부 도면에 도시된 실시예를 참조하면 명백 및 명료해질 것이다.
도 2는 본 발명에 따른 시스템(10)의 블록도를 도시한 것이다. 이 시스템은 메모리 수단(20) 및 프로세서(30)를 포함한다. 메모리 수단(20)은 본 발명에 따른 프로세서(30)를 제어하기 위한 프로그램을 저장한다. 프로그램의 제어하에서, 프로세서(30)는 데이터 요소 세트를 처리한다. 데이터 요소는 보다 상세하게 후술한 바와 같이 메모리 수단(20)내에 저장될 수 있거나, 선택적으로 실시간으로 공급될 수 있다. 데이터 요소는 d개의 데이터 비트를 포함한다. 전형적으로, 각각의 데이터 요소는 동일한 수의 데이터 비트를 포함한다. d의 값은 실제 애플리케이션에 의해 결정된다. 보다 상세하게 후술한 바와 같이, 언어 처리 시스템에서는 유리하게도, 예를 들어 7 내지 15 비트의 소형 데이터 요소가 이용될 수 있다. 메모리 수단(20)은 RAM을 이용하여 실시되는 것이 전형적이다. 필요한 경우, 프로그램 또는 데이터 요소는 메모리 수단(20)내의 하드디스크, CD-ROM 또는 ROM과 같은 백그라운드 메모리로부터 검색될 수 있다. 메모리 수단(20)에 있어서도 캐시 메모리가 이용될 수 있다는 것을 알 수 있다. 프로세서(30)는, 예를 들어 PC 및 워크스테이션에 이용되는 소정 형태의 순차 프로세서일 수 있다. 프로세서는 다수의 레지스터를 포함한다. 프로세서(30)는 ALU(32)(Arithmetic Logical Unit : 산술 논리 장치) 및 데이터 레지스터(34)를 포함한다. 프로세서는 제어 장치, 버스, 그 밖의 다른 레지스터, 프로그램 캐시 및 데이터 캐시와 같은 프로세서 내에서 통상적으로 발견되는 많은 수단을 포함한다. 이러한 수단이 표준화되어 있고 본 발명의 일부분을 형성하지 않기 때문에, 이러한 수단은 도면에 도시하지 않았다. ALU(32)는 데이터 레지스터의 개별 레지스터 내에 저장된 오퍼랜드로 동작한다. 포함된 오퍼랜드(즉, 데이터 레지스터)의 수는 명령어 특정수일 수 있다. 프로세서(30)는 w가 d+1의 최소한 2배만큼 큰 워드 크기(word-size)(w)를 갖고 있다. 오퍼랜드들 중 최소한 하나의 오퍼랜드는 w 비트의 폭을 갖고 있다. CISC 형태의 프로세서에 있어서, 워드 크기는 명령어에 따라서 변할 수 있으므로, RISC 형태의 프로세서에 있어서, 워드 크기는 모든 명령어에 대해 동일한 것이 전형적이다. 근대의 프로세서는 128 비트로 되어가고 있는 추세에 있는 32 또는 64 비트의 워드 크기를 갖고 있는 것이 일반적이다. 또한, 대형 워드 크기를 가지는 디지털 신호 프로세서(DSP)가 이용될 수 있다.
전형적으로, 시스템은 PC 또는 워크스테이션과 같은 종례의 컴퓨터 시스템을 이용하여 실시된다. 그 자체만으로, 시스템은 키보드 또는 마우스와 같은 사용자 입력 수단 및 디스플레이와 같은 이용자 출력 수단을 선호하는 컴퓨터 시스템 내에서 통상적으로 발견된다. 이러한 수단이 표준화되고, 본 발명의 일부분을 형성하지 않기 때문에, 이러한 수단들은 도 2에 도시하지는 않았다.
본 발명에 따른 시스템은 다수의 상이한 애플리케이션에 이용될 수 있다. 유리하게도, 본 발명은 동일한 명령어가 대형 데이터 요소 세트를 순차적으로 처리하도록 반복적으로 편리하게 이용되는 애플리케이션에 적용된다. 이러한 애플리케이션의 예는 표준에 따라서 벡터의 표준을 계산하고(벡터의 성분을 가산하고, 절대치를 계산하거나 벡터 성분을 멱급수로 상승시키는 것을 실시하는), 벡터의 거리를 계산하는(벡터의 성분을 감산하고, 최종 벡터의 표준을 계산하는 것을 실시하는) 2 개 행의 수치를 가산한다. 본 발명에 따르면, 데이터 요소는 포맷되어, 동일한 명령어를 이용하여, 프로세서가 데이터 요소의 수를 종전의 방식으로나 현재의 방식으로 동일한 동작을 병렬로 수행한다. 이러한 목적을 달성하기 위해서, 최소한 2개의 데이터 요소가 하나의 데이터 레지스터 내에 비중첩 방식으로 적재된다. 가, 감 및 승제와 같은 명령에 있어서 오버플로우/언더플로우 또는 캐리(carry)가 발생할 수 있기 때문에, 분리 비트라고 하는 부수적인 비트가 데이터 레지스터내의 데이터 요소를 분리하는데 이용된다. 8 또는 16 비트 정수와 같은 비교적 작은 정수가 데이터에 이용되는 오디오 및 비디오 처리와 같은 애플리케이션에 본 발명에 따른 시스템을 이용하는 것이 특히 유리하다. 특히, 이 시스템은 패턴 인식에 이용될 수 있다. 패턴 인식 시스템에 있어서, 시간 순서(time-sequential) 입력 패턴(40)은 언어 또는 영상과 같은 연속적인 물리량으로부터 유도된다. 이러한 목적을 달성하기 위해서, 입력 수단(50)은 물리량을 순환식으로 액세스시킨다. 언어에 있어서, 이것은 6.67 ㎑, 8 ㎑, 11 ㎑ 또는 16 ㎑와 같은 정규 간격으로 물리량을 표본화하여 샘플을 문자화하는 것을 포함한다. 입력 수단(50)은 특징의 대표 벡터(입력 관측 벡터 )를 제공하기 위해 언어 신호의, 예를 들어 32 msec에 대응하는 일단의 연속 벡터를 처리한다. 이러한 방식에 있어서, 입력 패턴을 나타내는 입력 관측 벡터의 시간 순서가 발생된다. 전형적으로, 벡터의 성분은 8 또는 16 비트 정수이다. 필요한 경우, 양호한 결과가 이용된 인식 모델에 따라서 7 비트 정수와 같은 최소 정수를 이용하여서도 달성될 수 있다.
전형적으로, 입력 수단(50)은 마이크로폰, A/D 컨버터 및 디지털 신호 처리기(DSP)와 같은 프로세서를 이용하여 실시될 수 있다. 또한, 프로세서(30)는 이러한 목적을 달성하는데 이용될 수 있다. 임의로, 입력 수단(50)은 언어가 효과적으로 수신될 때에만 표본화를 실행하기 위한 언어 검출기를 포함할 수 있다. 실시간 시스템에 있어서, 입력 수단(50)은 또 다른 처리를 위해 메모리 수단(20)을 경유하여 프로세서(20)로 직접적으로 임의로 표본화 및 문자화된 신호를 제공할 수 있다. 예를 들어 오프 라인 시스템에 대한 선택적인 예로서, 입력 신호는 메모리 수단(20) 내에 문자 형태로 저장되거나 통신망을 경유하여 문자로 공급될 수 있다. 패턴 인식에 있어서, 입력 패턴은 메모리 수단(20)내에 저장될 수 있는 기준 패턴과 비교된다. 이러한 목적을 달성하기 위해서, 기준 패턴 데이터베이스가 이용될 수 있다. 기준 패턴 데이터베이스는 일체형 데이터베이스로서 또는 선택적으로 분리 데이터 파일로서 메모리 수단(20)내에 저장될 수 있다. 상술한 바와 같이, 언어 인식 단위는 언어를 인식하기 위한 기준 패턴으로서 이용된다. 각각의 기준 패턴은 기준 단위의 순서를 포함한다. 전형적으로, 각각의 기준 단위는 최소한 하나의 기준 벡터( )에 의해 표준된다. 벡터 성분은 본 발명에 따른 데이터 요소를 형성한다. 기준 패턴 및 벡터 성분의 구조는 패턴 인식용으로 이용된 알고리즘에 의해 결정된다. 예로서, 벡터 성분은 선형 예측 코딩(LPC) 및 캡스트럴 분석(cepstral analysis)을 이용하여 입력 샘플로부터 유도될 수 있다. 단위 정합은 히덴 마르코프 모델과 같은 동적 프로그램 또는 정적 방법에 기초할 수 있다.
현재로, 언어 인식은 히덴 마르코프 모델을 공통적으로 이용한다. 히덴 마르코프 모델은 N개의 독특한 상태 세트들 중 하나의 세트 내에 항상 있는 시스템을 설명하는 이산 마르코프 처리에 기초를 둔다. 시스템은 상태와 관련된 확률 세트에 따라서 상태를 정규 횟수 변화시킨다. 특정 형태의 이산 마르코프 처리는 도 3에 도시되어 있다. 소위 말하는 이러한 좌-우 모델에 있어서, 상태는 좌측에서 우측으로 진행한다(또는 동일하게 머무른다). 이러한 모델은 언어를 모델링하는데 폭넓게 이용되는데, 신호의 특성은 시간이 지남에 따라 변한다. 모델 상태는 소리를 표현하는 것으로 보여질 수 있다. 서브 워드 단위에 대한 모델의 상태 수는, 예를 들어 5 또는 6개 일 수 있다. 이러한 경우에, 상태는 관측 간격에 평균적으로 대응한다. 도 3의 상태는 천천히 말하는 것에 관련될 수 있는 상태로 동일하게 머무를 수 있게 한다. 선택적으로, 상태는 빨리 말하는 것(도 3에서 평균 속도의 2배까지)에 관련하여 스킵될 수 있다. 이산 마르코프 처리에 따른 출력은 각 순간에 나타나는 상태 세트인데, 각각의 상태는 관측 사상(obserable event)에 대응한다. 언어 인식 시스템에 있어서, 이산 마르코프 처리에 관한 개념은 관측이 상태 확률 함수인 경우에 연장된다. 이것은 2중 추계 처리(stochastic process)를 발생시킨다. 상태 변화에 관한 이러한 받침 추계 처리(underlying stochastic process)는 히덴(히덴 마르코프 모델 : HMM)이고, 관측 순서를 발생시키는 추계 처리를 통해서만 관측될 수 있다. 패턴 인식에 있어서, 각각의 기준 패턴은 히덴 마르코프 모델에 의해 모델화되는데, 모델의 상태는 기준 단위에 대응한다. 워드 전이나 워드들 사이에서 발생하는 묵음(silence) 패턴과 같은 맑은(clear) 시간 순차 동작을 가지지 않은 특정 패턴을 모델링하기 위한 1 상태 히덴 마르코프 모델을 이용하는 것이 공지되어 있다는 것을 주지해야 한다. 본 발명의 목적을 달성하기 위해서, 이러한 패턴은 별도로 기술하지 않겠다. 가우스 또는 라플라스 밀도와 같은 연속 관측 밀도를 이용하면, 기준 벡터는 밀도의 평균 벡터에 대응한다.
도 2의 시스템(10)은 입력 패턴에 대응하는 기준 패턴을 메모리(20)내에 배치하기 위한 로컬라이저(localizer)를 더 포함한다. 로컬라이저는 프로세서(30)를 이용하여 실시될 수 있다. 배치된 기준 패턴은 인지된 기준 패턴이라 칭한다. 상술한 바와 같이, 히덴 마르코프 모델에 대해서, 이것은 관측 벡터의 가능성을 계산하는 것을 포함한다. 각각의 히덴 마르코프 모델 및 모델의 각각의 상태(S)에 대해, 관측 벡터( )의 가능성은
에 의해 제공되는데, 여기서 w(k)는 k 번째 관측 혼합 밀도(클러스터)의 가중치이고, N은 상태에 대한 클러스터의 수이다. 간단화하기 위해, 상태는 식으로 나타나 있지 않다. 통상적으로, 언어 인식 시스템은 클러스터의 확률 분포를 모델화하기 위한 라플라스 또는 가우스 확률 밀도를 이용한다. 이러한 밀도에 대한 확률은 Lr-표준을 이용하여 표현될 수 있다. Lr-표준은
로 정의되는데, L1-표준이 라플라스 밀도에 이용되고, L2-표준은 가우스 밀도에 이용된다. Lr-표준을 이용하면, 확률에 대한 가능한 식들 중 하나의 식은
인데, 기준 벡터 (k)는 k 번째 관측 혼합 밀도의 평균 벡터이다. 계수(a 및 b)는 관측 벡터( )가 모든 가능한 값에 이르는 경우 1까지 확률을 적분하도록 한다. 이러한 식의 여러 가지 형태 또는 확장은 널리 공지되어 있다. 예로서, 다음과 같은 3가지 가우스 밀도는
Full covariance matrix
Diagonal covariance matrix
scalar variance
로 제공된다. 그 밖의 다른 거리는 Lr-표준이 이용될 수 있다는 것도 의미하는 것을 알 수 있다.
유리하게도, 관측 벡터( ) 및 평균 벡터[ (k)]는 벡터를 대각선 매트릭스와 승산함으로써 환산된다. 환산은 이러한 항들이 프로세서의 정확한 범위 이하로 떨어지지 않게 하고, 밀도의 변화에 따라서 벡터를 정규화하는데 이용될 수 있다. 유리하게는, 기준 벡터가 먼저 환산되고, 관측 벡터만이 실제로 가능한 계산을 개시하기 전에 단 한번만 환산된다.
밀도의 특성으로 인해, 확률의 합은 최대치, 즉 최대 확률에 기여하는 밀도에 의해 접근될 수 있다. 이것은 입력 패턴에 대응하는 기준 패턴의 배치시의 주요 단계가 관측 벡터에 가장 가까운(최근접 가능 서치) 기준 벡터를 발견한다는 것을 함축한다.
대수를 취하면, 이것은 다음 식과 같이 된다.
일정한 로그는 무시될 수 있다. 항 log(w(k))를 별도로 감산하기 위한 대안으로서, 새로이 확장된 벡터( (k))가 도입되어, 다음 식과 같이 정의될 수 있다.
이러한 식에 있어서, -log(w(k))0이라는 것을 주지해야 한다. 확장된 벡터를 이용하면 다음 식이 제공된다.
(k)가 한가지 이상의 성분을 가지고 있기 때문에, 이들의 차원은 D+1인데, D는 특징 벡터 공간의 차원이다.
문서 기준(document reference)의 나머지는 벡터( )에 대해 행해지는데, = = 이다. 동일한 개념이 = = 를 판독함으로써 벡터( )에 적용될 수 있다는 것을 알 수 있다.
표준을 순차 컴퓨터에서 병렬로 계산하는 감산, 가산과 같은 동작을 수행하는데 따른 설명에 초점을 맞추고 설명하였다. 그 중에서도 이러한 동작은 패턴 인식의 주요 단계가 되는 벡터 거리를 결정하는데 이용되는 것이 일반적이다. 패턴 인식 분야에 있어서, 이러한 주요 요소는 연속적인 물리량으로부터 유도되는 시간 순차 패턴을 인식하는데 히덴 마르코프 모델과 같은 그 밖의 다른 기술과 조합하여 이용될 수 있는 방식을 이해해야 한다. 이러한 기술을 이용하면, 각각의 관측 벡터에 있어서 관측 벡터와 서브세트의 각 기준 벡터 사이의 가능성과 같은 벡터 상사 스코어(similarity score)가 계산된다. 각각의 기준 벡터에 대해서, 기준 패턴을 나타내는 기준 벡터의 벡터 상사 스코어는 패턴 상사 스코어를 형성하도록 조합된다. 이것은 연속 관측 벡터로 반복된다. 최대 가능성과 같은 최적 조건이 패턴 상사 스코어로 계산되는 기준 패턴을 인식된 패턴으로서 배치된다. 시스템의 출력 수단(70)은 인식된 패턴을 계산하는데 이용된다. 이것은 인식된 패턴을 스크린 상에 원문 형태로 디스플레이하고, 인식된 패턴을 메모리 내에 저장하거나 인식된 패턴을 명령과 같은 입력으로 이용하는 것은 여러 가지 형태를 다음 처리 동작용으로 취할 수 있다. 또한, 기준 방법과 같은 기술이 기준 패턴보다 큰 관측 벡터의 시퀀스를 포함하는 패턴을 인식하는데 패턴 인식 분야에 어떻게 이용될 수 있는 지를 이해할 수 있다. 예를 들어, 전체 워드 또는 센텐스를 인식하는데 기준 패턴으로서 서브 워드 단위를 어떻게 이용하는지를 알게 된다. 발음 어휘 또는 문법과 같은 부수적인 구속 조건이 패턴 인식에 어떻게 정해지는지를 양호하게 이해해야 한다. 발음 어휘와 같은 부수적인 정보는 기준 패턴 데이터베이스를 저장하는데 이용되는 것과 동일한 메모리를 이용하여 저장될 수 있다.
종래에는, 도 2의 프로세서(30)는 프로그램의 제어하에 다음 방식으로 데이터 요소 세트를 처리한다.
- 한가지 이상의 데이터 요소는 데이터 요소 세트로부터 선택된다.
전형적으로, 2개의 데이터 요소가 선택된다.
- 선택된 데이터 요소는 별도의 데이터 레지스터 내에 배치된다.
- 선택된 데이터 레지스터는 예를 들어, 감산, 가산 또는 승산을 수행함으로써 온(ON) 상태로 동작한다.
- 결과는 다음 단계에서 오퍼랜드들 중 하나의 오퍼랜드를 출력할 수 있거나 (예를 들어, 메모리 내에 저장되거나)이용될 수 있다.
이것은 모든 데이터 요소 세트가 처리될 때까지 반복된다.
본 발명에 따르면, 하나의 데이터 요소를 별도 데이터 레지스터 내에 적재하는 대신에 프로세서는 일단의 최소한 2개 데이터 요소를 데이터 요소 세트로부터 선택하고, 데이터 요소의 그룹을 데이터 레지스터 내에 복합 데이터 요소로서 적재한다. 도 4는 복합 데이터 요소(400)를 도시한 것이다. 복합 데이터 요소는 복합 데이터 요소의 연속 블록 위치에 배열된 블록의 수로 형성된다. 도 4는 4개의 블록(410, 420, 430 및 440)을 도시한 것이다. 제 1 블록(410)은 복합 데이터 요소(400)의 최저차 비트 위치에 배치되므로, 제 4 블록(440)은 복합 데이터 요소(400)의 최고차 비트 위치에 배치된다. 각각의 블록은 연속 비트 위치를 포함하고, 데이터 요소 그룹의 별도의 하나의 그룹에 대응한다. 각각의 블록은 데이터 서브블록 및 분리 서브 블록인 2개의 서브 블록을 포함한다. 도 4는 블록(430)에 대한 데이터 서브 블록(434) 및 분리 서브 블록(432)을 도시한 것이다. 각각의 데이터 서브 블록은 대응하는 데이터 요소의 데이터 비트를 포함한다. 마찬가지로, 데이터 서브블록이 최소한 d 비트를 포함하는데, d는 대응하는 데이터 요소의 데이터 비트의 수이다. 분리 서브 블록은 최소한 하나의 비트를 초기에 포함한다. 복합 데이터 요소에 따른 동작의 결과로, 블록내의 데이터 비트의 수는 분리 비트의 수가 마찬가지로 감소함에 따라 증가할 수 있다. 보다 상세하게 후술한 바와 같이, 소정의 동작에 대해서 1 이상의 분리 비트를 이용하는 것이 유리하거나 필요하다. 분리 서브 블록은 블록의 고차 위치에 배열되므로, 데이터 서브 블록은 블록의 저차 위치에 배열된다. 7 비트 데이터 요소 및 32 비트 프로세서를 이용하면, 가능한 배열은 7개의 데이터 비트 및 하나의 분리 비트를 각각 가지는 4개의 블록을 이용하기 위한 것이다. 64 비트 프로세서에 있어서, 이러한 블록들 중 8개의 블록이 이용된다. 32 비트 프로세서에 8 비트 데이터 요소를 이용하면, 3개의 블록 배열이 이용될 수 있다. 각각의 블록이 최소한 하나의 분리 비트를 갖고 있다. 나머지 비트는 2개의 분리 비트를 가지는 3개의 블록을 제공하는 블록에 걸쳐 양호하게 분포된다. 2개의 나머지 비트(32-3*(8+2)는 소정 블록의 분리 비트를 좌측에 이용되지 않게 하거나 할당될 수 있게 한다. 64 비트 프로세서에 있어서, 9 비트(8개의 데이터 비트 및 하나의 분리 비트)에 따른 7개 블록의 배열이 이용될 수 있어서, 이용되지 않는 1 비트를 남기게 된다. 11비트 데이터 요소에 있어서, 1 내지 5개의 분리 비트를 가지는 2개의 블록이 32 비트 프로세서에 이용된다. 64 비트 프로세서에 있어서, 하나의 분리 비트를 가지는 5개의 블록이 이용될 수 있다. 보다 많은 분리 비트가 요구되는 경우, 선택적으로 5개까지의 분리 비트를 가지는 4개의 블록이 이용될 수 있다. 당해 분야에 숙련된 기술자들은 이들의 애플리케이션에 대한 최적의 배열을 결정할 수 있다. 보다 상세하게 후술한 바와 같이, 분리 비트는 복합 데이터 요소에 따라 수행된 동작이 요구된 결과를 제공하도록 하기 위한 특정 비트값을 갖고 있다.
데이터 요소는 도 2의 메모리 수단(20)과 같은 메모리 내에 저장될 수 있다. 유리하게, 일단의 데이터 요소에 있어서 대응하는 복합 데이터 요소가 메모리 내에 저장된다. 이것은 데이터 요소 그룹이 복합 데이터 요소를 메모리로부터 판독함으로써 복합 데이터 요소로서 간단하게 적재될 수 있다는 것을 의미한다. 양호하게, 데이터 요소 그룹은 데이터 요소가 복합 데이터 요소를 이미 형성하여 복합 데이터 요소를 더 이상 추가로 저장할 것을 요구하지 않는 그러한 방식으로 메모리 내에 배열된다. 예로서, 7 비트 데이터 요소를 이용하면, 데이터 요소는 8 비트를 이용하여 저장되므로, 데이터 요소들 사이에 분리 비트를 발생시킨다. 양호하게, 분리 비트는 특정한 처리에 필요한 값으로 이미 세트되어 있다. 명백하게, 복합 데이터 요소는 데이터 요소로부터 분리되어 저장될 수도 있다. 이것은 개별 데이터 요소로의 고속 액세스가 필요한 상황에 필요할 수 있다.(예를 들어, 하나의 분리 비트를 가지는 복합 데이터 요소의 형태로 저장된 11 비트 데이터 요소로의 액세스가 메모리내의 정렬로 인해 매우 느려질 수 있다.)
복합 데이터 요소를 메모리 내에 저장하기 위한 대안으로서, 복합 데이터 요소는 대응하는 데이터 요소로 형성될 수 있다. 이러한 목적을 달성하기 위해서, 복합 데이터 요소는 제 2 데이터 레지스터라고 칭하는 데이터 레지스터로 구성된다. 양호하게, 이것은 복합 데이터 요소로 동작하도록 나중에 이용되는 동일한 레지스터이다.
각각의 데이터 요소 그룹에 대해, 다음과 같은 단계가 수행된다. 데이터 요소는 제 1 데이터 레지스터 내에 적재되어, 제 1 또는 제 2 데이터 레지스터의 쉬프프를 수행한 다음, 제 1 데이터 레지스터 내에 저장된 데이터 요소를 제 2 데이터 레지스터로 구성된 복합 데이터 요소와 조합함으로써 종료된다. 비트 방식으로 XOR 동작을 이용하는 조합이 수행될 수 있다. 결과는 제 2 데이터 레지스터 내에 형성된다. 데이터 요소가 적재되고, 레지스터가 쉬프트되는 순서로 쉬프트 위치의 수가 애플리케이션 또는 프로세서 형태에 따라서 최적하게 선택될 수 있다. 예로서, 소정의 프로세서에 있어서 가능한 한 작은 위치에 걸쳐 쉬프트시키는 것이 중요하다. 이러한 경우에, 복합 데이터 요소의 고차 블록 내에 배치되는 데이터 요소로 적재될 제 1 데이터 요소를 이용하는 것이 유리할 수 있다. 소정의 근대적 프로세서는 데이터 요소를 적재하는 순서를 덜 적절하게 하는 소정수의 비트 이상의 데이터의 한 사이클 동안[예를 들어, 배럴 쉬프터(barrel shifter)를 이용하여] 쉬프트시킬 수 있다. 적재시키거나 쉬프팅시키는 가능한 구조는 복합 데이터 요소의 고차 블록 위치에 배치될 데이터 요소를 먼저 적재시키기 위한 것이다. 또한 이러한 제 1 데이터 요소는 제 2 데이터 레지스터 내에 직접 적재될 수 있다. 그 다음, 다음의 최저 블록 위치에 적재되는 데이터 요소는 제 1 데이터 레지스터 내에 적재된다. 제 2 데이터 레지스터는 하나의 블록 위치에 걸쳐 고차 방향으로 쉬프트된다. 그 다음, 데이터 레지스터 조합되어, 제 1의 적재된 데이터 요소를 블록 위치(2)에 제공하고, 최종 적재된 데이터 요소를 블록 위치(1)에 제공한다. 이것은 모든 데이터 요소 그룹이 적재될 때까지 반복된다. 소정의 프로세서에서는 데이터 요소를 제 1 데이터 레지스터 내에 먼저 적재할 필요가 없지만, 대신에 데이터 요소를 제 2 데이터 레지스터와 조합하는 것이 가능할 수 있다는 것을 알 수 있다. 이러한 구조에 대한 대안으로서, 각각의 데이터 요소는 제 1 데이터 레지스터 내에 반복적으로 적재될 수 있고, 제 2 데이터 레지스터와 조합되기 전에 요구된 블록 위치를 향해 제 1 데이터 레지스터 내로 쉬프트될 수 있다.
양호하게, 데이터 요소는 양의 유한 정수를 나타낸다. 그렇지 않은 경우, 데이터 요소는, 예를 들어 2d+1을 각각의 데이터 요소 세트에 가산함으로써 양의 유한 정수로 유리하게 변환된다. 예로서, -64 내지 +63 범위의 7 비트 데이터 요소는 0 내지 +127 범위를 제공하는 64(26)를 가산함으로써 양의 7 비트 정수로 변환될 수 있다.
데이터 요소 세트는 동일한 수의 데이터 요소를 가지는 2개의 데이터 요소 서브세트를 포함할 수 있다. 예를 들어, 서브세트는 2개 벡터의 성분을 나타낼 수 있다. 제 1 복합 데이터 요소는 제 2 서브세트로부터의 일단의 데이터 요소에 대응한다. 제 2 복합 데이터 요소는 제 1 복합 데이터 요소에서 감산되어, 감산된 복합 데이터 요소를 형성한다. 적절한 '병렬' 감산에 있어서, 감산된 복합 데이터 요소의 각각의 블록은 제 2 복합 데이터 요소내의 동일한 블록 위치에 있는 데이터 요소 마이너스 제 1 복합 데이터 요소내의 동일한 블록 위치에 있는 데이터 요소와 동일한 값을 d+1 저차 비트 위치에 포함하는 것이 필요하다. 이것을 확실하게 하기 위해서, 특정 측정이 취해진다. 측정이 취해지지 않을 경우, 음의 결과는 프로세서가 오퍼랜드를 하나의 요소로서 고려하기 때문에 고차 블록 내에만 형성될 수 있다. 더욱이, 저차 블록 위치에서의 음의 결과가 형성될 필요가 있는 경우, 프로세서의 정규 동작은 최고차 블록으로부터 빌려옴으로써 음의 결과를 보상할 수 있어서, 이러한 고차 블록 내에서의 결과를 저해함으로써 보상할 수 있다. 2개의 요소를 감산하여 d 데이터 비트 대신에 데이터 요소를 나타내기 위한 감산된 복합 데이터 요소 내에 d+1 데이터를 필요로 하는 데이터 범위가 배가된다는 것을 주지해야 한다. 단 하나의 분리 비트만이 블록당 이용되는 경우, 감산된 복합 데이터 요소는 분리 비트를 더 이상 포함하지 않는다. 그렇지 않으면, 블록은 1이하의 분리 비트를 포함한다. 감산된 복합 데이터 요소의 블록은 최초 복합 데이터 요소의 블록과 동일한 비트 위치에 배열되지만, 블록은 최초 복합 데이터 요소의 블록보다 1 이상의 데이터 비트 및 1 이하의 분리 비트를 포함한다는 것을 알 수 있다.
취해진 제 1 측정은 마찬가지로 감산이 음의 데이터 요소를 발생시키지 않도록 한다. 이것은 오프세트를 제 1 복합 데이터 요소의 각각의 데이터 요소에 가산함으로써 달성된다. 유리하게, 이것은 제 1 복합 데이터 요소의 각 블록내의 최소한 하나의 분리 비트를 2진수 '1'의 값으로 세팅시킴으로써 행해진다. 예로서, 제 1 서브세트는 d 비트의 4개 데이터 요소(x1내지 x4)를 각각 포함하고, 제 2 서브세트는 d 비트의 4개 데이터 요소(y1내지 y4)를 각각 포함한다고 가정한다. 예를 들어, 각각의 복합 데이터 요소내의 데이터 요소는 블록당 2개의 분리 비트에 의해 분리된다고 가정하겠다. 각각의 블록 내에서 d+1 번째 비트를 2진수 '1'로 세팅시키는 것은 2d를 블록에 대응하는 데이터 요소에 가산하는 것을 의미한다. d+2 번째 비트를 세팅시키는 것은 2d+1을 가산하는 것을 의미한다. 또한, 필요한 경우, 양자의 분리 비트가 세트될 수 있다. 제 2 복합 데이터 요소의 분리 비트가 2진수 '0'의 값으로 세트되도록 하여, 감산만이 양의 데이터 요소를 발생시키므로, 다른 블록의 비트를 빌려오는 것을 방지한다는 것을 알 수 있다. 유리하게, 제 1 및 제 2 복합 데이터 요소는 분리 비트의 요구된 값으로 먼저 형성되었다. 선택적으로, 제 1 복합 데이터 요소의 분리 비트가 워드 폭의 마스크(word-wide mask)와 함께 비트 방식으로 XOR 동작을 이용하여 2진수 '1'로 세트될 수 있다. 각 블록내의 예에서 d+1 번째 비트가 2진수 '1'로 세트되는 경우, 마스크는 다음과 같은 식으로 제공된다.
도 5는기호가 비트 방식으로 XOR 동작을 나타내는 이러한 예에 대한 마스크의 용도를 도시한 것이다. 통상적으로, 제 2 복합 데이터 요소의 분리 비트는 2진수 '0'의 값을 이미 갖고 있다. 그렇지 않은 경우, 분리 비트는 워드 폭의 마스크를 가지는 비트 방식으로 AND 동작을 이용하여 소거될 수 있는데, 마스크는 복합 데이터 요소내의 데이터 비트에 대응하는 각각의 위치에 있는 2진수 '1' 및 복합 데이터 요소내의 분리 비트에 대응하는 각각의 위치에 있는 2진수 '0'을 포함한다.
제 1 복합 데이터 요소의 각각의 블록내의 예에서, d+1 번째 비트가 2진수 '1'로 세트된다. 감산 후에, 감산된 복합 데이터 요소의 각각의 블록에서 d+1 비트는 요구된 값을 갖도록 되어 있다. 예로서, x4≥y4인 경우, x4-y4≥0이다. 이러한 경우에, 2d의 오프세트는 제거되는데, 감산은 데이터 요소당 d+1 데이터 비트를 포함하고, d+1 번째 비트가 세트되기 때문에(오프세트 2d), 이것은 음의 값을 그렇지 않은 경우에 불합리하게 나타낼 수 있다. 오프세트는 d+1 번째 비트를 '1'의 값에서 '0'의 값으로 반전시킴으로써 제거될 수 있다. 그러나, x4≤y4인 경우, x4-y4≤0이다. 이러한 경우에, 감산 중에 d+1 번째 비트는 결과를 형성하기 위해 빌려와서, '0'으로 되는 감산된 복합 데이터의 d+1번째 비트를 발생시킨다. 결과가 음으로 되게 해석되도록 하기 위해, 감산된 복합 데이터 요소의 제 4 블록의 d+1 번째 비트가 '0'의 값에서 '1'의 값으로 반전된다. 본 발명의 예에서 2개의 확률을 조합하면, 감산된 복합 데이터 요소의 각 블록의 d+1 번째 비트가 반전되는데 필요하다. 이것은 분리 비트를 '1'로 세트시키는데 이용되는 것과 동일한 마스크(M)를 이용하여 감산된 복합 데이터 요소에서 비트 방식으로 XOR 동작을 수행함으로써 효과적으로 달성될 수 있다. 이것은 도 6에 도시되어 있는데, D는 i=1 내지 4에 대한 di=xi-yi를 가지는 모든 단계의 완료 후에 나타나는 최종 복합 데이터 요소를 나타낸다.
제 1 복합 데이터의 소거에 따른 각 블록내의 d+1 번째 비트를 세팅시키는 대안으로서 d+2 비트가 세트되는 경우, 다음과 같은 상황이 발생한다. 여기서, 감산된 복합 데이터 요소의 각 블록 내에서의 감산 후에 d+1 번째 비트는 요구된 값을 갖도록 한다. x4≥y4인 경우, 대응하는 d+2 번째 비트를 빌려오는 것은 감산 중에는 전혀 발생하지 않는다. 이것은 d+1 번째 비트가 '0'을 유지하고, d+2 번째 비트가 '1'을 유지한다는 것을 의미한다. d+1 번째 비트가 요구된 값을 갖고 있기 때문에, 더 이상의 액션을 필요로 하지 않는다. 최적하게, d+2 번째 비트가, 예를 들어 적절한 마스크를 가지는 비트 방식으로 AND 동작을 이용하여 리세트될 수 있다. 감산 중에 x4≤y4인 경우, d+2 번째 비트가 결과를 형성하기 위해 빌려오게 된다. 또한 이것은 '1'로 되는 감산된 복합 데이터 요소의 d+1 번째 비트를 발생시킨다. 또한, 여기에서 d+1 비트가 더 이상의 액션을 필요로 하지 않고서도 요구된 값을 자동적으로 얻는다.
블록의 양자의 분리 비트가 '1'로 세트되는 경우, 조합된 방법이 필요하다는 것을 알 수 있다. 이것은 블록이 2개 이상의 분리 비트를 포함하는 경우 '1'로 세트되는 것을 적용한다.
예를 들어, 벡터의 L1-표준 또는 2개 벡터의 L1-거리를 계산하는 것은 다음 식으로서 정해지는데,
벡터 성분의 절대치는 계산될 필요가 있다. 일반적으로, 데이터 요소 세트의 음의 데이터 요소는 대응하는 양의 데이터 요소로 변환될 필요가 있다. 다음의 절차에 따라서 각각의 데이터 요소는 h개의 데이터 비트를 포함한다고 가정한다. 예로서, 절차가 최초 데이터 요소에 대응하는 복합 데이터 요소로 직접 수행되는 경우, h는 d(최초 데이터 요소내의 데이터 비트의 수)이다. 최초 데이터 요소가 이미 처리된 경우, h는 d와는 다르다. 예를 들어 2개 벡터의 L1-거리를 계산하기 위해 2개의 벡터가 상술한 병렬 감산법을 이용하여 이미 감산된 경우, 감산된 복합 데이터 요소의 블록내의 각각의 데이터 요소는 d+1 데이터 비트를 포함하는데, 최초 벡터 성분은 d 비트를 포함한다.
변환에 있어서, 음의 수는 종례의 2의 보수 표시를 이용하여 표시된다고 가정하다. 간단한 데이터 요소에 있어서 2의 보수 변환은 데이터 요소의 모든 비트('1'비트를 가지는 마스크에 따른 비트 방식으로 XOR 동작)를 반전시킴으로써 수행되고, 1의 값이 가산될 필요가 있다. 여기에서, 2의 보수 표시를 이용하는 한가지 동작시에 1개 이상의 데이터 요소의 병렬 변환에 대한 설명이 제공된다. 당해 분야에 숙련된 기술자들은 본 명세서에 제공된 설명 부분에 기초를 두고 병렬 변환을 그 밖의 다른 표시로의 변환으로 용이하게 수행할 수 있을 것이다. 변환에 따른 제 1 단계로서, 복합 데이터 요소의 음의 데이터 요소가 식별된다.(양의 데이터 요소는 변환될 필요가 없다). 식별은 복합 데이터 요소내의 각각의 데이터 요소의 고차 비트를 검사함으로써 수행된다. 이러한 목적을 달성하기 위해서, 제 1 마스크(M1)는 각각의 데이터 요소의 고차 비트를 추출하는데 이용된다. 복합 데이터 요소의 고차 데이터가 비트 h라고 가정하면, 마스크(M1)는 복합 데이터 요소의 각각의 블록, 즉 값 2h-1이 블록 내에 저장되는[마스크(M1)의 각각의 블록에서 모든 비트가 '1'인 h번째 비트를 제외한 '0'인) 대응하는 블록을 포함한다. 비트 방식으로 AND 동작은 마스크(M1)를 갖는 복합 데이터 요소로 수행된다. 이러한 동작의 결과는 음의 데이터 요소에 대한 고차 데이터 비트의 위치내의 '1' 비트를 가지는 마스크이다. 이러한 마스크를 h-1 비트로 저차 방향을 향해(마스크를 2h-1만큼 분할하는 것과 동일하게) 쉬프팅시켜 마스크(M2)가 음의 데이터 요소에 대한 저차 데이터 비트의 위치 내에 '1' 비트로 형성된다. M2를 2k-1로 승산하여 마스크(M3)가 형성되는데, 음의 데이터 요소에 대응하는 블록내의 모든 데이터 비트가 '1'로 세트된다. 이것은 도 7에 도시되어 있다. 여기에서, 복합 데이터 요소는 4개의 블록으로 도시되어 있다. 블록은 값(d1d2, d3, d4)을 가지는 데이터 요소를 각각 포함한다. 간단화하기 위해 분리 비트는 도면에 도시하지 않았다. 상술한 바와 같이, D가 2개의 복합 데이터 요소를 블록당 하나의 분리 비트로 감산함으로써 형성되는 경우, D의 블록은 더 이상 분리 비트를 갖고 있지 않다. 명백하게 하기 위해, 데이터 요소의 고차 비트는 도 7에 별도로 도시되어 있다. 예에서, d2및 d4는 양이므로, d1및 d3은 음이다. 양 데이터 요소에 대해서, 고차 데이터 비트는 '0'이고, 저차 데이터 비트는 도면에 도시된 바와 같이 실제값을 포함한다. 음의 데이터 요소에 있어서, 고차 데이터 비트가 '1'이고, 저차 데이터 비트가 실제값 플러스 2h-1을 포함한다.
도 8은 실제 변환 상태를 도시한 것이다. 복합 데이터 요소(D)의 모든 데이터 비트가 비트 방식으로 XOR 동작을 마스크(M3)로 수행함으로써 반전된다. 그 다음, 값(1)이 마스크(M2)를 가산함으로써 각각의 데이터 요소에 가산된다. 이러한 방식에 있어서, 병렬 2의 보수 변환이 수행된다.
L1-표준 계산은 데이터 요소를 최종 복합 데이터 요소로부터 추출하고, 추출된 데이터 요소를 가산함으로써 완료될 수 있다. 보다 일반적으로, Lr-표준은 데이터 요소를 벡터 성분을 포함하는 복합 데이터 요소로부터 추출하고, 추출된 데이터 요소를 멱급수(r)로 상승시키며, 상승된 데이터 요소를 가산함으로써 계산될 수 있다. 모든 데이터 요소가 처리된 후, 최종 합은 멱급수 1/r로 필요한 경우 상승될 수 있다. 예를 들어, 추출은 h 저차 비트가 2진수 '1'로 세트되는 마스크를 가지는 복합 데이터 요소에 따른 비트 방식으로 AND 동작에 의해 수행될 수 있다. 그 다음, 복합 데이터 요소는 한 블록의 비트의 크기로 저차 방향으로 쉬프트될 수 있다.
각각의 데이터 요소를 추출 및 처리하는 것이 상당히 많은 처리 과정을 요하는 경우, 일단의 연속 데이터 요소를 가지는 데이터 단위를 복합 데이터 요소로부터 추출하여, 데이터 단위내의 데이터 요소에 대한 서브 표준을 결정하기 위한 테이블을 이용하는 것이 유리하다. 예로서, 복합 데이터 요소가 4개의 데이터 요소(d1∼d4)를 포함하는 경우, 2개의 데이터 단위를 추출하는 것이 유리한데, 2개의 데이터 단위중 제 1 단위는 d4및 d3을 포함하고, 제 2 단위는 d2및 d1을 포함한다. 복합 데이터 요소는 복합 데이터 요소를 7 비트 데이터 요소로 감산함으로써 형성되는 경우, 데이터 요소(d1∼d4)는 16 비트 데이터 단위를 형성하는 8개의 데이터 비트를 각각 포함한다. 이러한 경우에, 테이블에는 d2i+1및 d2i+2(i=0 내지 1)의 조합에 Lr-서브표준을 제공하는 216엔트리가 이용될 수 있다. 예로서, 테이블은 L1-서브 표준|d2i+1| + |d2i+2|를 저장할 수 있다. 데이터 요소(d1∼d4)가 양의 데이터 요소로 이미 변환된 경우, 테이블은 d2i+1+ d2i+2를 저장할 수 있다. 최종의 경우에, 테이블은 엔트리를 덜 가질 수도 있는데, 그 이유는 데이터 요소의 고차 비트가 이용되지 않기 때문이다. d4 및 d2의 고차 비트를 무시하고 데이터 단위에 대한 15 비트만을 추출하는 것이 유리하다. L2-서브표준에 있어서, 테이블은 d2i+2 2+ d2i+2 2을 저장할 수 있어서, L2-표준에 대한 처리 요건을 더욱 더 감소시킨다.
데이터 요소를 감산 또는 변환하는 대신 또는 이 외에, 데이터 요소를 가산하는 것이 필요할 수 있다. 예를 들어, 벡터의 L1-표준을 계산하기 위해, 정규화된 벡터 성분은 가산하는데 필요하다. 병렬 추가는 최소한 2개 그룹의 데이터 요소 내에 데이터 요소를 배열함으로써 달성된다. 2개 그룹의 데이터 요소를 가정하면, 양자의 그룹에 있어서 대응하는 복합 데이터 요소는 선택된 데이터 레지스터 내에 적재된다. 2개의 데이터 레지스터는 가산되어 복합 합을 형성한다. 가산으로 인해 데이터 범위가 배가되어 데이터 요소당 한 개 이상의 데이터 비트를 필요로 한다. 그러므로, 데이터 요소에서 가능한 최소차 데이터 요소로의 오버플로워를 방지하기 위해, 복합 데이터 요소의 각각의 블록은 2진수 '0'의 값으로 세트된 최소한 하나의 분리 비트를 포함한다. 단 하나의 분리 비트만이 블록당 이용된 경우, 2개의 복합 데이터 요소만이 이러한 방식으로 가산될 수 있다. 이와 마찬가지로, 분리 비트가 블록(25)마다 이용되는 경우, 복합 데이터 요소는 오버플로워를 야기시키지 않고서도 함께 가산될 수 있다. 이러한 방식에 있어서 2개 이상의 복합 데이터 요소가 가산될 경우, 임시 복합 합은 제 2 데이터 레지스터 내에 양호하게 형성된다. 모든 복합 데이터 요소는 제 1 데이터 레지스터 내에 순차적으로 적재되고, 제 2 데이터 레지스터에 가산된다. 모든 복합 데이터 요소가 이러한 방식으로 처리될 때, 임시 합은 복합 합으로서 이용된다. 복합 합의 블록은 최초 복합 데이터 요소의 블록과 동일한 비트 위치에 배열되지만, 블록은 최초 복합 데이터 요소의 블록보다 많은 데이터 비트 및 이보다 적은 분리 비트를 포함한다는 것은 명백한 것이다.
도 9는 16개의 복합 데이터 요소(x1내지 x16)를 포함하는 벡터의 일 예를 도시한 것이다. 예에서, 4개의 블록은 하나의 컴퓨터 워드와 조화하는데, 각각의 블록은 복합(데이터 요소) 및 2개의 분리 비트를 포함한다. 이러한 방식에 있어서, 4개의 복합 데이터 요소(X1내지 X4)는 전체 벡터를 나타낸다. 3가지 병렬 가산에 있어서, 4개의 블록을 가지는 복합 합(S)이 형성된다. 가산은 X1및 X2를 가산한 다음, X3을 합에 가산한 다음에, X4를 합에 가산함으로써 합을 먼저 형성함으로써 수행된다. 선택적으로, 제 1 합은 X1및 X2를 가산함으로써 형성되고, 제 2 합은 X3및 X4를 가산함으로써 형성되며, 최종 합은 양자의 합을 함께 가산함으로써 최종적으로 형성된다. 상술한 바와 마찬가지로, 최종 합(S)의 4개 블록은 추출되어 가산될 수 있어서, 3가지 이상의 가산을 발생시킨다. 이러한 방식에 있어서, 판에 박힌 둣한 15회 대신에 총 6회의 가산이 필요하다. 선택적으로, 테이블은 복합 합의 블록의 합을 결정하는데 이용될 수 있다. 데이터 요소의 총수는 복합 데이터 요소에 걸쳐 발생하는 분배에 이상적으로 적합하지 않을 수 있다는 것을 알 수 있다. 이러한 예에 있어서, 이러한 상황은, 예를 들어 벡터가 17 또는 15개의 복합 요소를 포함하는 경우에 발생할 수 있다. 이러한 상황을 이루는데 에는 여러 가지 방법이 가능하다는 것을 알 수 있다. 한가지 방법으로는 더미(dummy) 데이터 요소를 가지는 '공백(empty)' 블록을 가지는 최종 복합 데이터 요소로 보충하기 위한 것이다. 양호하게, 값 0을 가지는 데이터 요소가 이용된다. 제 1 처리 단계가 벡터를 감산하게 되는 경우, 명백하게도 소정의 더미값이 계속해서 이용되는 이상 이 값이 이용될 수 있다. 더미값에 대한 대안으로서, 최종 데이터 요소는 이용되지 않은 블록을 무시함으로써 별도로 처리될 수 있다.
특히, 비교적 큰 수의 데이터 요소가 함께 가산되는데 필요한 상황에, 정상적으로 다수의 분리 비트가 오버플로워를 방지하는데 필요할 수 있다. 이것은 적은 데이터 요소가 복합 데이터 요소와 일치하여 병렬 가산의 효과를 감소시킨다는 것을 의미한다. 이러한 상황에, 복합 데이터 요소의 블록당 소수의 분리 비트만으로 개시하는 것이 유리하다. 가산 처리 중에 소정의 순간에, 모든 분리 비트가 완전히 이용되는 경우(다음 가산이 오버플로워를 발생시키는 경우), 복합 데이터 요소는 많은 분리 비트를 발생시키기 위해서 최소한 2개의 복합 데이터 요소로 분할된다. 도 10은 복합 데이터 요소(X1및 X2)내의 8개 블록(x1내지 x8)으로 복합 데이터 요소(X)를 분할하는 예를 도시한 것이다. X1및 X2의 블록은 X 블록의 2배만큼 크다. 이상적으로, X1및 X2내의 여분 비트는 분리 비트로서 이용되고, 가산 중에 데이터 비트로서 얻어져 이용될 수 있다. 분할은 다음과 같이 수행될 수 있다. 먼저, X2에 기초를 두고 X2'를 형성하는 X의 복사가 행해진다. 그 다음, 블록은 X1을 형성하는 블록 위치를 변경시에 X로부터 제거된다. 이 예에서, 블록(x8, x6, x4및 x2)은 제거된다. 그 다음, 다른 블록(x7, x5, x3및 x1)은 X2'에서 제거된다. 양호하게, 이것은 X2를 형성하는 하나의 블록 위치 상에서 X2'를 저차 방향으로 쉬프팅시킴으로써 종용된다. 충분한 고차 비트가 아직까지 블록에 할당되지 않는 X에 이용될 경우, 이러한 비트들은 x8을 포함하는 X2내의 블록에 대한 분리 비트로서 이용될 수 있다. 이러한 경우에, X1을 하나의 블록 위치 상에서 고차 방향으로 쉬프트시키는 것이 가능하다.
상술한 바와 같이, 성분들을 추출하여 가산하거나 테이블을 이용함으로써 복합 합으로부터 총 합이 계산될 수 있다. 선택적으로, 8가지 성분(x1내지 x8)을 가지는 복합 데이터 요소(X1)에서 개시하는 도 11에 도시된 다음 방법이 이용될 수 있다. 이러한 방법에 있어서, 새로운 복합 데이터 요소는 최종 복합 데이터 요소가 이용되는 단 하나의 데이터 요소를 포함하고, 최종 합을 최종적으로 포함할 때까지 적은 데이터 요소가 이용되는 새로운 복합 데이터 요소가 반복적으로 형성된다. 복합 데이터 요소(X1)를 제 2 복합 데이터 요소(X2)에 복사하는 처리가 개시된다. 그 다음, X1또는 X2는 블록 수의 절반으로 양호하게 쉬프트된다. 양 방향으로의 쉬프팅은 처리 중에 동일한 방향이 이용되는 한 가능하다. 예에서 명백해진 바와 같이, 저차 방향으로 쉬프트시켜 저차 위치에 형성된 총합을 발생시키는 것이 유리하다. 도 11의 예에 있어서, X2는 저차 방향으로 4개의 블록 위치로 쉬프트된다. 그 다음, X3을 형성하는 X1및 X2는 함께 가산된다. X3에서 단 4개의 저차 블록 위치가 관련된다. X3에서 개시하는 처리를 반복하면, 복사 및 쉬프트(이 때, 2개의 블록 위치 상에서) X4를 제공한다. X3을 X4에 가산하는 것은 X5를 제공한다. X5에서 2개의 저차 블록 위치가 관련된다. X5에서 개시하는 처리를 반복하면, 복사 및 쉬프트(이 때, 하나의 블록 위치 상에서) X6을 제공한다. X5를 X6에 가산하는 것은 X7을 제공한다. X7의 저차 블록 위치는 비트 방식으로 AND 동작을 이용하여 추출될 수 있는 요구된 합을 포함한다. 이러한 처리는 개시 복합 데이터 요소내의 데이터 요소의 수가 2의 멱급수인 경우 최적하게 수행한다는 것을 알 수 있다. 그러한 이유가 아니라면, 여러 가지 선택적인 방법이 가능할 수 있다.
도 12는 개시 복합 데이터 요소(X1)가 7개의 데이터 요소를 포함하는 상황을 도시한 것이다. 7의 거의 절반인 수(M)가 결정된다. 3 또는 4가 적절하게 선택된다. 이러한 예에 있어서, 3이 선택된다. 복사가 행해져서 3개의 블록 위치로 쉬프트되어 X2를 형성한다. X1및 X2가 함께 가산되는 경우, 데이터 요소(x4)는 배가됨을 나타낸다. 이것은 X1또는 X2로부터 x4데이터 요소들 중 하나의 요소를 제거함으로써 방지될 수 있다. 양호하게, x4는 x7, x6및 x5와 함께 X1에서 제거되어, 모든 이용되지 않은 데이터 요소를 합에서 제거할 수 있다. 이러한 방법은 실제 데이터 요소의 수가 기수일 때는 언제든지 반복될 수 있다.
도 13에는 하나의 단계에서, 실제 데이터 요소의 수가 2의 멱급수로 감소되는 양호한 방법이 도시되어 있다. 이러한 목적을 달성하기 위해, 개시 복합 데이터 요소(X1)내의 데이터 요소의 수보다 계속해서 작은 2의 최대 멱급수가 결정된다. 도 13에 있어서, X1은 10개의 데이터 요소를 포함한다. 10보다 작은 2의 최대 멱급수는 8이다. X2를 형성하기 위해 X1은 복사되어 8개의 블록 위치 상에서 저차 방향으로 쉬프트된다. X3은 X1과 X2를 함께 가산함으로써 형성된다. X3의 8개의 저차 블록이 관련된다.
상술한 바와 같이, 2개 벡터( )의 L2-거리는 벡터를 감산하여 최종 감산된 벡터의 성분을 추출하거나 테이블을 이용함으로써 계산될 수 있다. 유리하게도, 다음의 병렬 방법은 L2-거리를 계산하는데 이용된다.
여기에서, = (x1, x2,...,xp)T, 및 = (y1, y2,..., yp)T
을 고려하고, 특히 패턴 인식에 있어서, 는 L2-표준이 먼저 계산될 수 있는 선정된 기준 벡터이고, 는 L2-표준이 각각의 새로운 관측에 대해 일회 계산될 수 있다는 것을 고려하면, 이것은 합을 가지는 항만이 기준 벡터를 가지는 관측 벡터의 각각의 조합으로 계산될 필요가 있다는 것을 의미한다. 이러한 합은 다음 방법을 이용하여 병렬로 계산될 수 있다. 제 1 복합 데이터 요소(C1)는 벡터들 중 하나의 벡터에 따른 데이터 요소에 대응한다. 예에서, C1 의 데이터 요소에 대응한다. C1의 연속 블록은 의 연속 데이터 요소에 대응한다. 도 14에 도시된 예에서, C1은 x1, x2, x3및 x4로 되는 의 제 1 의 4개 데이터 요소를 포함한다. 제 2 복합 데이터 요소(C2)는 예( )내에서 다른 벡터의 데이터 요소에 대응한다. C2의 연속 블록은 역방향으로의 의 연속 데이터 블록에 대응한다. 도 14에 도시된 예에서, C2는 y4, y3, y2및 y1을 제공하는 역 방향으로의 의 제 1 의 4개 데이터 요소를 포함한다. 도면에서, 복합 데이터 요소의 제 1 블록은 저차 위치를 나타내는 우측에 도시되어 있다는 것을 알 수 있다. 예에서, C1의 저차 블록은 x1을 포함하고, C2의 저차 블록은 y4를 포함한다고 가정한다. 명백해질 간단한 결과는 2개의 방향이 반전되는 경우에 달성될 수 있다. 복합 데이터 요소(C1및 C2)의 각각의 블록은 최소한의 d 분리 비트를 포함하는데, d는 벡터의 데이터 요소 비트의 크기이다. 예에서, 복합 데이터 요소당 4개의 블록이 이용되어, 보다 상세하게 후술한 바와 같이 블록당 d+2 분리 비트를 유리하게 이용하게 한다. 모든 분리 비트가 '0'으로 세트된다. 도 14는 C1및 C2를 승산함으로써 형성되는 복합 데이터 요소(C3)를 도시한 것이다. 예에서, C3의 저차 블록은 C1및 C4의 저차 블록의 승산 결과인 값 x1× y4를 포함한다. 최소한 d 분리 비트를 이용하면, 최고차 블록의 간섭이 전혀 발생하지 않는다. C2의 제 2차 블록은 벡터적 x2× y4플러스 x1× y3을 포함한다. 이와 마찬가지로, C3의 다른 블록은 벡터적을 포함한다. 역방향으로의 데이터 요소의 배열로 인해, 제 4 블록은 요구된 벡터적(x1·y1+ x2·y2+ x3·y3+ x4·y4)를 포함한다. 소정의 벡터적이 1개 이상의 항을 포함한다는 사실로 인해, 여분 분리 비트는 블록들 간의 간섭을 방지하는데 필요할 수 있다는 것을 알 수 있다. 예에서, 제 2 블록은 d+1 분리 비트, 제 3 및 제 4 블록 d+2 분리 비트의 최소치를 필요로 한다. 복합 데이터 요소의 후속 블록은 간섭을 방지하기 위해 블록당 최소로 필요한 상이한 비트수를 기본적으로 포함한다는 것을 알 수 있다. 요구된 벡터적을 얻기 위해서, C1및 C2의 대응 블록은 동일한 수의 비트를 가져야 한다. 유리하게, C1및 C2의 모든 블록은 크기가 동일하다. 예에서, 적절한 크기는 d 데이터 비트 플러스 d+2 분리 비트로 되는 2d+2 비트이다. 또한, 예로서 명백해진 바와 같이, 승산된 복합 데이터 요소(C3)는 C1및 C2보다 많은 블록을 포함한다. 일반적으로, C1및 C2가 k개의 데이터 블록을 포함하는 경우, C3은 2k-1 데이터 블록을 포함한다. C1, C2및 C3의 크기가 전형적으로 동일할 수 있기 때문에, 이것은 C1및 C2의 k-1 번째 고차 블록은 좌측에 사용되지 않은 상태로 있고, 2진수 '0'의 값으로 세트되는 것을 의미한다. 예로부터 명백해진 바와 같이, C3의 k 번째 블록은 요구된 벡터적을 포함한다. 벡터적은 k 번째 블록을 추출함으로써 C3으로부터 얻어질 수 있다. 추출은 C3를 k+1 번째 블록 상에서 저차 방향으로 쉬프트시키고, C3의 저차 블록의 위치 내에 '1' 비트를 가지는 마스크에 따른 비트 방식으로 AND 동작을 수행함으로써 수행될 수 있다.
또 다른 실시예에서, 도 2의 프로세서(30)는 부동점 데이터 레지스터(38)를 가지는 부동점 처리 장치(36)를 포함한다. 유리하게, 부동점 처리 장치(36)는 근대의 프로세서에 있어서 부동점 승산이 정수 승산보다 작은 사이클로 전형적으로 수행되기 때문에 승산을 수행하는데 이용된다. 정수(예를 들어, 32 이하의 비트)에 대해 상대적으로 작은 워드 크기를 가지는 프로세서에 있어서, 이것은 부동점의 수가 통상적으로 크다는 또 다른 장점을 가지고 있다(배가 확도 부동점의 수가 52 비트의 가수를 가질 수 있다). 이러한 목적을 달성하기 위해, 2개의 복합 데이터 요소(C1및 C2)는 개별 부동점 데이터 레지스터의 가수(분수)내에 적재된다. 이 때, 승산은 2개의 레지스터 내에 적재된 데이터에 대한 부동점 승산을 수행하도록 프로세서에 지시함으로써 수행된다.
프로세서(30)의 부동점 처리 장치(36)를 이용할 때, 부동점 데이터 레지스터(38)는 C3의 k 번째 블록을 추출하는 것이 간단화되는 그러한 방식으로 유리하게 이용된다. 이것은 C1또는 C2를 포함하는 부동점 데이터 레지스터들 중 하나의 레지스터에 관한 지수를 2의 적절한 멱급수로 세팅시킴으로써 달성된다. 가수의 오버플로워가 승산중에 전혀 발생하지 않기 때문에, 동일한 지수치가 C3으로 변경된다. C3을 정수로 변환하면, 무조건의 쉬프트가 수행된다. 유리하게, 지수는 2-1로 세트되는데, i는 C3의 k-1 번째 저차 블록에 의해 포함된 비트의 수이다. 이러한 방식에 있어서, 정수로의 변환은 k 번째 블록을 C3의 저차 위치(정소 형태로)로의 쉬프팅을 발생시킨다. 이 때, 추출은 C3의 저차 블록 위치내의 '1' 비트를 가지는 마스크에 따른 비트 방식으로 AND 동작을 수행함으로써 완료될 수 있다. 소정의 시스템에 있어서, C3을 메모리내의 부동점의 수로서 저장하고, C3을 정수로서 다시 판독함으로써 무조건 정수로의 변환을 수행하는 것이 고속화될 수 있다는 것을 알 수 있다.
본 발명은 양호한 실시예에 관련하여 도시하고 설명하였지만, 당해 분야에 숙련된 기술자들은 본 발명을 여러 가지 양상으로 변경, 생략 및 추가하는 것은 본 발명의 청구 범위 및 의의 내에서 만이 가능하다는 것을 이해하고 있을 것이다.
요약하면, 본 발명의 방법 및 시스템은 패턴 인식에 이용된 벡터 성분과 같은 데이터 요소 세트를 종례의 순차 프로세서(30)로 병렬로 처리하는데 이용된다. 일단의 데이터 요소는 프로세서(30)의 데이터 레지스터 내에 복합 데이터 요소로서 적재된다. 데이터 레지스터는 가, 감 또는 승산과 같은 종례의 프로세서 명령어를 이용하여 동작한다. 복합 데이터 요소는 저차 비트 위치에 데이터 요소를 포함하고, 고차 비트 위치에 최소한 하나의 분리 비트를 각각 포함하는 최소한 2개 블록의 배열을 포함한다. 분리 비트는 프로세서 동작 중에 요구된 병렬 결과가 형성되도록 선정된 비트치를 할당한다. 그 자체만으로, 본 발명은 단일 명령어 단일 데이터(Single Instruction, Single Data : SISD) 프로세서로서 통상적으로 특징지워지는 종례의 순차 프로세서를 이용할 수 있다. 최고 수준의 성능을 달성하기 위해, SISD 프로세서는, 예를 들어 슈퍼스케일러 프로세서용으로 이용되는 것과 같은 여러 가지 형태의 '병렬' 처리를 이용하여 실시될 수 있다. 이러한 실시예에 있어서, 프로세서는 순차 프로세서를 명령어 레벨로 계속해서 유지하게 한다. 본 발명에 SISD 프로세서를 적용하면 단일 명령어를 보다 많거나 보다 적게 모의할 수 있다. 또한, 본 발명은 본 발명에 따른 SIMD 프로세서의 하나의 오퍼랜드의 각각 데이터 요소를 구성함으로써 SIMD 프로세서에 적용될 수 있다는 것을 알 수 있다. 이것은 SIMD 프로세서에 따른 제 2 레벨의 병렬 동작을 달성한다. 또한, 본 발명은 VLIW(Very Large Instruction Word : 대규모 명령어) 프로세서와 같은 다중 명령 다중 데이터(Multiple Instruction, Multiple Data : MIMD) 프로세서라고 칭하는 프로세서의 제 3 카테고리에 적용될 수 있다. 전형적으로, MIMD 프로세서에 있어서, 각각의 다중 명령어는 하나의 단일 데이터 스트림에 관련된다. 본 발명은 이러한 데이터 스트림에 양호하게 적용될 수 있다는 것을 알 수 있다.

Claims (30)

  1. 다수의 데이터 레지스터들 중 개별 레지스터 내에 저장되고, w 비트의 폭을 가지는 최소한 하나의 오퍼랜드의 명령어 특정 수치에 따라서 동작하는 순차 프로세서를 포함하는 다수의 d 데이터 비트를 각각 포함하는 컴퓨터 시스템에서 데이터 요소 세트를 처리하기 위한 방법으로서,
    a 최소한 하나의 데이터 요소를 데이터 요소 세트로부터 선택하는 단계와,
    b 각각의 선택된 데이터 요소에 대해서 데이터 레지스터들 중 하나의 레지스터를 선택하고, 선택된 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 단계와,
    c. 선택된 데이터 레지스터로 동작하도록 프로세서에 지시하는 단계, 및
    d. 모든 데이터 요소 세트가 온 상태로 동작될 때까지 단계(a 내지 c)를 반복하는 단계를 포함하는 데이터 요소 세트 처리 방법에 있어서,
    단계(a)는 최소한 2개의 특정 데이터 요소의 최소한 하나의 그룹을 데이터 요소 세트로부터 선택하는 단계를 포함하고,
    단계(b)는 각각의 선택된 그룹에 대해 데이터 레지스터들 중 개별 레지스터를 선택하고, 복합 데이터 요소로서의 그룹의 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 단계를 포함하며, 상기 복합 데이터 요소는 각각의 데이터 요소 그룹에 대해 최소한 d+s 연속 비트의 대응하는 블록을 포함하고, 복합 데이터 요소 및 각각의 블록 d 저차 비트 위치의 연속 블록 위치에 배열되는 블록이 대응하는 데이터 요소의 데이터 비트를 포함하고, 최소한 s 고차 비트 위치가 (d+s)*2≤w인 선정된 비트치를 각각 가지는 분리 비트를 포함하는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서, 데이터 요소가 유한 양의 정수를 나타내고, 각각의 데이터 요소 세트에 2d-1을 가산함으로써 데이터 요소 세트를 유한 양의 정수로 변환하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 컴퓨터 시스템이 메모리 수단 및 메모리 수단 내에 저장된 데이터 요소를 포함하는, 제 1 항 또는 제 2 항에서 청구된 방법에 있어서, 적어도 하나의 그룹에 대해서 복합 데이터 요소가 메모리 수단 내에 저장되고, 복합 데이터 레지스터로서 데이터 요소 그룹을 선택된 데이터 레지스터 내에 적재하는 것은 메모리 수단으로부터의 복합 데이터 요소를 선택된 데이터 레지스터 내에서 판독하는 것을 포함하는 것을 특징으로 하는 방법.
  4. 제 1 항 또는 제 2 항에 있어서,
    상기 방법은 각각의 데이터 요소 그룹에 대해서
    - 데이터 요소를 제 1 데이터 레지스터 내에 적재하고,
    - 제 1 데이터 레지스터 내의 데이터 요소 또는 제 2 데이터 레지스터 내에 저장된 임시 복합 데이터 요소를 최소한 d+s 비트 위치에 걸쳐 재배치하며,
    - 데이터 요소를 제 2 데이터 레지스터 내의 임시 복합 데이터 요소와 조합하는 것에 의해
    복합 데이터 요소를 대응하는 데이터 요소 그룹으로 구성하는 단계, 및
    임시 복합 데이터 요소를 복합 데이터 요소로서 이용하는 단계를 포함하는 것을 특징으로 하는 방법.
  5. 데이터 요소 세트가 동일한 수의 데이터 요소를 포함하는 데이터 요소의 제 1 및 제 2 서브세트를 포함하는, 제 1 항 내지 제 4 항 중 어느 한 항에서 청구된 방법에 있어서,
    제 1 복합 데이터 요소는 제 1 복합 데이터 요소의 각각이 블록의 최소한 하나의 분리 비트에 의해 각각의 데이터 요소에 가산된 오프세트가 2진수 '1'의 값으로 세트되는 데이터 요소의 제 1 서브세트의 데이터 요소 그룹에 대응하고,
    제 2 복합 데이터 요소는 제 2 복합 데이터 요소의 각 블록의 분리 비트가 2진수 '0'의 값으로 세트되는 데이터 요소의 제 2 서브세트의 데이터 요소 그룹에 대응하며,
    프로세서는 제 2 복합 데이터 요소로 적재된 데이터를 제 1 복합 데이터 요소로 적재된 데이터 요소에서 감산함으로써 감산된 복합 데이터 요소를 형성하도록 지시되며, 감산된 복합 데이터 요소는 감산된 복합 데이터 요소의 각각의 블록이 제 1 및 제 2 복합 데이터 요소의 대응하는 요소 보다 최소한 1 이상의 데이터 비트 및 최소한 1 이하의 분리 비트를 포함하는 제 1 및 제 2 복합 데이터 요소의 블록 배열에 대응하는 블록 배열을 포함하는 것을 특징으로 하는 방법.
  6. 제 5 항에 있어서, 복합 데이터 요소의 분리 비트를 세팅시키는 단계가 복합 데이터 요소에 따른 비트 방식으로 XOR 동작을 w 비트의 선정된 마스크로 수행하도록 프로세서에 지시하는 단계를 포함하는 것을 특징으로 하는 방법.
  7. 제 5 항 또는 제 6 항에 있어서, 감산된 복합 데이터 요소의 음의 데이터 요소를 대응하는 양의 데이터 요소로 선택적으로 변환하는 단계를 포함하는 것을 특징으로 하는 방법.
  8. 음의 수치가 2의 보수 표시로 표시되는, 제 7 항에서 청구된 방법에 있어서, 상기 변환은
    - 프로세서로 하여금 감산된 복합 데이터 요소에 따른 비트 방식으로 AND 동작을 w 비트의 제 1 마스크로 수행하도록 지시하고(상기 제 1 마스크는 감산된 복합 데이터 요소의 블록 배열에 대응하는 블록 배열을 포함하고, 제 1 마스크의 각 블록으로 d+1 번째 비트가 2진수 '1'의 값으로 세트되고, 나머지 비트가 2진수 '0'의 값으로 세트된다),
    - 프로세서로 하여금 2d로 최종 복합 데이터 요소를 제산하도록 하여 w비트로 이루어진 제 2 마스크를 형성하도록 지시하는 것에 의해
    상기 감산된 복합 데이터 요소의 어느 데이터 요소가 음인지를 식별하는 단계, 및
    - 2d+1만큼 승산된 제 2 마스크인 제 3 마스크를 계산하도록 프로세서에 지시하고,
    - 제 2 마스크를 가산한 다음에 감산된 복합 데이터 요소 및 제 3 마스크에 따른 비트 방식으로 XOR 동작을 수행하도록 프로세서에 지시하는 것에 의해
    상기 감산된 복합 데이터 요소의 데이터 요소를 변환하는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 데이터 요소의 제 1 및 제 2 서브세트가 제 1 및 제 2 벡터를 각각 나타내고, 상기 방법이 제 1 벡터와 제 2 벡터 사이의 Lr-거리를 계산하는 단계를 포함하는, 제 5 항 내지 제 8 항중 어느 한 항에서 청구된 방법에 있어서,
    상기 거리 계산은
    - 각각의 데이터 요소를 감산된 복합 데이터 요소에서 추출하는 단계와,
    - 추출된 데이터 요소를 멱급수(r)까지 상승시키는 단계, 및
    - 상승된 데이터 요소를 가산함으로써 합을 형성하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 컴퓨터 시스템이 메모리 수단을 포함하고, 데이터 요소의 제 1 및 제 2 서브세트가 제 1 및 제 2 벡터를 각각 나타내고, 제 1 벡터와 제 2 벡터 사이의 Lr-거리를 계산하는 단계를 포함하는, 제 5 항 내지 제 8 항 중 어느 한 항에서 청구된 방법에 있어서,
    상기 계산은
    - 다수의 연속 블록의 최소한의 데이터 비트를 포함하는 데이터 비트를 감산된 복합 데이터 요소에서 추출하는 단계, 및
    - 추출된 데이터 단위의 일부분인 데이터 비트에 대응하는 데이터 요소에 대한 Lr-서브표준을 검색하기 위해 메모리 수단 내에 저장된 테이블을 액세스하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    - 다수의 상기 그룹을 데이터 요소 세트로부터 선택하는 단계와,
    각각의 그룹에 대해서
    - 그룹 고유의 복합 데이터 요소의 블록의 분리 비트가 2진수 '0'의 값으로 세트되는 그룹 고유의 복합 데이터 요소로서의 데이터 요소 그룹을 선택된 데이터 레지스터 내에 적재하고,
    - 선택된 데이터 레지스터를 임시 복합 합을 포함하는 데이터 레지스터에 가산하도록(상기 임시 복합 합은 그룹 고유의 복합 데이터 요소에서 블록의 배열에 대응하는 블록의 배열을 포함하며, 상기 감산된 복합 데이터 요소의 각각은 상기 그룹-고유의 복합 데이터 요소의 대응 블록보다 적어도 하나 많은 데이터 비트와 적어도 하나 적은 분리 비트를 포함한다) 프로세서에 지시하는 것에 의해
    - 상기 프로세서로 하여금 복합 합을 계산하도록 지시하는 단계, 및
    - 임시 복합 합을 복합 합으로서 이용하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서, 복합 데이터 요소를 최소한 제 1 및 제 2 복합 데이터 요소로 분할함으로써 보다 많은 분리 비트를 발생시키는 단계를 포함하는 것을 특징으로 하는 방법.
  13. 제 12 항에 있어서,
    복합 데이터 요소를 제 1 및 제 2 복합 데이터 요소로 분할하는 단계는
    - 복합 데이터 요소를 제 2 복합 데이터 요소로 복사하는 단계와,
    - 블록을 블록 위치를 변경하는 제 1 선택시에 복합 데이터 요소로부터 제거함으로써 제 1 복합 데이터 요소를 형성하는 단계와,
    - 블록을 블록 위치를 변경하고, 제 1 선택과 상보하는 제 2 선택시에 제 2 복합 데이터 요소에서 제거하는 단계, 및
    - 제 1 복합 데이터 요소 또는 제 2 복합 데이터 요소를 하나의 블록 위치 상에서 쉬프트시키는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 제 11 항 내지 제 13 항 중 어느 한 항에 있어서, 복합 합의 블록을 추출하고, 추출된 블록을 가산함으로써 총합을 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  15. 제 11항 내지 제 13 항 중 어느 한 항에 있어서,
    총합을 계산하는 단계를 더 포함하고,
    상기 계산 단계는
    - 복합 합 내의 블록의 수(n)를 결정하는 단계와,
    - n의 거의 절반인 정수(m)를 결정하는 단계와,
    - 복합 합을 제 2 복합 합으로 복사하는 단계와,
    - 복합 합 또는 제 2 복합 합을 m개의 블록 위치에 걸쳐 제 1 방향으로 쉬프팅시키는 단계, 및
    - 새로운 복합 합을 더 적은 데이터 요소로 형성하기 위해 복합 합과 제 2 복합 합을 합산하는 단계를 포함하는 것을 특징으로 하는 방법.
  16. 컴퓨터 시스템이 메모리 수단을 포함하는, 제 11 항 내지 제 13 항 중 어느 한 항에서 청구된 방법에 있어서,
    - 다수의 연속 블록을 포함하는 데이터 비트를 복합 합에서 추출하는 단계, 및
    - 추출된 데이터 단위의 일부분인 데이터 요소의 합을 검색하도록 메모리 수단 내에 저장된 테이블을 액세스하는 것에 의해 총합을 계산하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  17. 데이터 요소 세트가 데이터 요소의 제 1 및 제 2 서브세트를 포함하고, 제 1 및 제 2 서브세트가 동일한 수의 데이터 요소를 포함하고, 제 1 및 제 2 벡터를 각각 나타내고, 제 1 벡터와 제 2 벡터 사이의 L2-거리를 계산하는 단계를 포함하는, 제 1 항 내지 제 4 항 중 어느 한 항에서 청구된 방법에 있어서,
    제 1 복합 데이터 요소는 제 1 복합 데이터 요소의 연속 블록이 연속 데이터 요소에 대응하고, 블록 내의 분리 비트의 수가 최소한 d이고, 분리 비트가 2진수 '0'의 값으로 세트되는 데이터 요소의 제 1 서브세트의 일단의 k개의 연속 데이터 요소에 대응하고,
    제 2 복합 데이터 요소는 제 2 복합 데이터 요소의 연속 블록이 연속 데이터 블록에 역순으로 대응하고, 블록 내의 분리 비트의 수가 최소한 d이고, 분리 비트가 2진수 '0'의 값으로 세트되는 제 2 세트의 데이터 요소의 일단의 k개의 연속 데이터 요소에 대응하며,
    상기 계산은
    - 제 1 복합 데이터 요소로 적재된 데이터 레지스터를 제 2 복합 데이터 요소로 적재된 데이터 레지스터로 승산하도록 프로세서에 지시하여 승산된 복합 데이터 요소를 형성하는 단계, 및
    - k 번째 블록을 승산된 복합 데이터 요소에서 추출하는 단계를 포함하는 것을 특징으로 하는 방법.
  18. 제 17 항에 있어서,
    프로세서가 다수의 부동점 데이터 레지스터를 포함하고,
    제 1 및 제 2 복합 데이터 요소가 부동 데이터 레지스터의 개별 레지스터의 가수 내에 적재되며, 프로세서는 제 1 및 제 2 복합 데이터 요소로 적재된 부동점 레지스터에 따라 부동점 승산을 수행함으로써 승산된 복합 데이터 요소를 형성하도록 지시되는 것을 특징으로 하는 방법.
  19. 제 18 항에 있어서, 승산된 복합 데이터 요소의 k 번째 블록을 추출하는 단계는
    - 제 1 및 제 2 복합 데이터 요소를 부동점 레지스터 내에 적재하면서 지수를 n이 승산된 복합 데이터 요소의 k-1 번째의 저차 블록의 비트수인 2-n으로 세팅시키는 단계와,
    - 승산된 복합 데이터 요소를 정수치로 변환하는 단계, 및
    - 저차 블록을 정수치로부터 마스킹함으로써 추출하는 단계를 포함하는 것을 특징으로 하는 방법.
  20. 다수의 데이터 비트를 각각 포함하는 데이터 요소 세트를 처리하고, 다수의 데이터 레지스터들 중 개별 레지스터 내에 저장되고, w 비트의 폭을 가지는 최소한 하나의 오퍼랜드의 명령어 특정 수치에 따라서 동작하는 순차 프로세서 및 메모리 수단을 포함하고, 프로세서가 메모리 수단 내에 저장된 프로그램의 제어하에서
    a. 최소한 하나의 데이터 요소를 데이터 요소 세트로부터 선택하는 단계와,
    b. 각각의 선택된 데이터 요소에 대해서 데이터 레지스터들 중 하나의 레지스터를 선택하고, 선택된 데이터 요소를 선택된 데이터 레지스터 내에 적재하는 단계와,
    c. 선택된 데이터 레지스터에 따라서 동작하는 단계, 및
    d. 모든 데이터 요소 세트가 온 상태로 동작될 때까지 단계(a 내지 c)를 반복하는 단계를 수행하도록 동작하는 컴퓨터 시스템에 있어서,
    단계(a)는 최소한 2개의 특정 데이터 요소의 최소한 하나의 그룹을 데이터 요소 세트로부터 선택하는 단계를 포함하고,
    단계(b)는 각각의 선택된 그룹에 대해서 데이터 레지스터의 개별 레지스터를 선택하고, 복합 데이터 요소로서 데이터 요소 그룹을 선택된 데이터 레지스터 내에 적재하는 단계를 포함하며, 상기 복합 데이터 요소는 각각의 데이터 요소 그룹에 대해 최소한 d-s 연속 비트의 대응하는 블록을 포함하고, 복합 데이터 요소 및 각각의 블록 d 저차 비트 위치의 연속 블록 위치에 배열된 블록이 대응하는 데이터 요소의 데이터 비트를 포함하고, 최소한의 s 고차 비트 위치가 (d+s)*2≤w인 선정된 비트치를 각각 가지는 분리 비트를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  21. 데이터 요소가 메모리 수단 내에 저장되는, 제 20항에서 청구된 컴퓨터 시스템에 있어서,
    최소한 하나의 그룹에 대해, 복합 데이터 요소가 메모리 수단 내에 저장되고, 복합 데이터 요소로서 데이터 요소 그룹을 선택된 데이터 레지스터 내에 적재하는 것이 메모리 수단으로부터의 복합 데이터 요소를 선택된 데이터 레지스터 내에서 판독하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  22. 데이터 요소 세트가 동일한 수의 데이터 요소를 포함하는 데이터 요소의 제 1 및 제 2 서브세트를 포함하는, 제 20 항 또는 제 21 항에서 청구된 컴퓨터 시스템에 있어서,
    제 1 복합 데이터 요소는 데이터 요소의 제 1의 서브세트의 데이터 요소의 그룹에 대응하고, 상기 제 1 복합 데이터 요소의 각 블록의 적어도 하나의 분리 비트는 2 진수 '1'로 설정되고,
    제 2 복합 데이터 요소는 제 2 복합 데이터 요소의 각 블록의 분리 비트가 2진수 '0'의 값으로 세트되는 데이터 요소의 제 2 서브세트의 일단의 데이터 요소에 대응하고,
    프로세서는 제 2 복합 데이터로 적재된 데이터 레지스터를 제 1 복합 데이터 요소로 적재된 데이터 레지스터에서 감산함으로써 감산된 복합 데이터 요소를 형성하도록 동작하며, 감산된 복합 데이터 요소는 감산된 복합 데이터 요소의 각각의 블록이 제 1 및 제 2 복합 데이터 요소의 대응하는 블록 보다 최소한 1 이상의 데이터 비트 및 최소한 1 이하의 분리 비트를 포함하는 제 1 및 제 2 복합 데이터 요소의 블록 배열에 대응하는 블록 배열을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  23. 음의 수치가 2의 보수 표시로 나타나는, 제 22 항에서 청구된 컴퓨터 시스템에 있어서,
    상기 프로세서는 감산된 복합 데이터 요소의 음의 데이터 요소를 대응하는 양의 데이터 요소로 선택적으로 변환하도록 동작하고,
    상기 변환은
    - w 비트로 이루어지고 감산된 복합 데이터 요소의 블록의 배열에 대응하는 블록의 배열을 포함하는 제 1의 마스크로 감산된 복합 데이터 요소에 대해 비트 방식으로 AND 동작을 수행하고(상기 제 1 마스크의 각 블록의 d+1 번째 비트는 2진수 '1'로 설정되고 나머지 비트는 2진수 '0'으로 설정된다),
    - 값 2d-1이 블록의 d 저차 비트 위치 내에 저장되고, 블록의 s 분리 비트가 2진수 '0'의 값을 가지는 복합 데이터 요소의 각각의 블록에 대해서 대응하는 블록을 포함하는 w 비트의 제 1 마스크로 복합 데이터 요소에 대해 비트 방식으로 AND 동작을 수행하며,
    - 최종 복합 데이터 요소를 2d 만큼 제산하여, w 비트의 제 2 마스크를 형성하는 것에 의해
    - 감산된 복합 데이터 요소의 어느 데이터 요소가 음인지를 식별하는 단계, 및
    - 2d+1-1 만큼 승산된 제 2 마스크인 제 3 마스크를 계산하고,
    - 제 2 마스크를 가산한 다음 감산된 복합 데이터 요소 및 제 3 마스크에 따른 비트 방식으로 XOR 동작을 수행하는 것에 의해
    - 감산된 복합 데이터 요소의 데이터 요소를 변환하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  24. 데이터 요소의 제 1 및 제 2 서브세트가 제 1 및 제 2 벡터를 각각 나타내고, 프로세서가 제 1 벡터와 제 2 벡터 사이의 Lr-거리를 계산하도록 동작하는, 제 22 항 또는 제 23 항에서 청구된 컴퓨터 시스템에 있어서,
    메모리 수단이 선정된 수의 데이터 요소의 순서에 대한 Lr-서브표준을 가지는 테이블을 저장하고,
    상기 거리 계산은
    - 연속 블록의 선정된 수의 최소한의 데이터 비트를 가지는 데이터 단위를 감산된 복합 데이터 요소를 추출하고,
    - 추출된 데이터 단위의 일부분인 데이터 비트에 대응하는 데이터 요소에 대한 Lr-서브표준을 검색하도록 테이블을 액세스하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  25. 제 20 항 내지 제 24 항중 어느 한 항에 있어서,
    상기 프로세서는
    - 다수의 상기 그룹을 데이터 요소 세트로부터 선택하고,
    각각의 그룹에 대해
    - 그룹 고유의 복합 데이터 요소의 각 블록의 분리 비트가 2진수 '0'의 값으로 세트되는 그룹 고유의 복합 데이터 요소로서 그룹의 데이터 요소를 선택된 데이터 레지스터 내에 적재하고,
    - 감산된 복합 데이터 요소가 그룹 고유의 복합 데이터 요소의 대응하는 블록 보다 최소한 1 이상의 데이터 비트 및 최소한 1 이하의 분리 비트를 포함하는 그룹 고유의 복합 데이터 요소내의 블록 배열에 대응하는 블록 배열을 포함하는 복합 데이터 요소인 임시 복합 합을 포함하는 데이터 레지스터에 선택된 데이터 레지스터를 가산하는 것에 의해
    - 복합 합을 계산하고,
    - 임시 복합 합을 복합 합으로서 이용하도록 동작하는 것을 특징으로 하는 컴퓨터 시스템.
  26. 제 25 항에 있어서, 프로세서는 복합 데이터 요소를 제 1 및 제 2 복합 데이터 요소로 분할함으로써 보다 많은 분리 비트를 발생시키도록 동작하고, 상기 분할은
    - 복합 데이터 요소가 제 2 복합 데이터 요소로 복사하고,
    - 블록을 블록 위치를 변경하는 제 1 선택시에 복합 데이터 요소에서 제거함으로써 제 1 복합 데이터 요소를 형성하고,
    - 제 1 선택과 상보하는 블록 위치를 변경하는 제 2 선택시에 제 2 복합 데이터 요소로부터 블록을 제거하며,
    - 제 1 복합 데이터 요소 또는 제 2 복합 데이터 요소를 하나의 블록 위치 상에서 쉬프트하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  27. 제 25 항 또는 제 26 항에 있어서,
    상기 프로세스는
    - 복합 합 내의 블록의 수(n)를 결정하고,
    - n의 거의 절반인 정수(m)를 결정하고,
    - 복합 합을 제 2 복합 합으로 복사하고,
    - 제 2 복합 합을 m 개의 블록 위치 상에서 제 1 방향으로 쉬프트하며,
    - 새로운 복합 합을 더 작은 데이터 요소로 형성하기 위해 복합 합과 제 2 복합 합을 합산함으로써 총합을 계산하도록 동작하는 것을 특징으로 하는 컴퓨터 시스템.
  28. 데이터 요소 세트가 데이터 요소의 제 1 및 제 2 서브세트를 포함하고, 제 1 및 제 2 서브세트는 각각 제 1 및 제 2 벡터를 각각 나타내며, 동일한 수의 데이터 요소를 포함하며, 프로세서가 제 1 벡터와 제 2 벡터 사이의 L2-거리를 계산하도록 동작하는, 제 20 항 또는 제 21 항에서 청구된 컴퓨터 시스템에 있어서,
    제 1 복합 데이터 요소는 제 1 복합 데이터 요소의 연속 블록이 연속 데이터 요소에 대응하고 블록 내의 분리 비트의 수가 최소한 d이고, 분리 비트가 2진수 '0'의 값으로 세트되는 데이터 요소의 제 1 서브세트의 일단의 k개의 연속 데이터 요소에 대응하고,
    제 2 복합 데이터 요소는 제 2 복합 데이터 요소의 연속 블록이 연속 데이터 블록에 역순으로 대응하고, 블록 내의 분리 비트의 수가 최소한 d이고, 분리 비트가 2진수 '0'의 값으로 세트되는 데이터 요소의 제 2 세트의 일단의 k개의 연속 데이터 요소에 대응하며,
    상기 계산은
    - 제 1 복합 데이터 요소로 적재된 데이터 레지스터를 제 2 복합 데이터 요소로 적재된 데이터 레지스터로 승산하여, 승산된 복합 데이터 요소를 형성하고,
    - k번째 블록을 승산된 복합 데이터 요소에서 추출하는 것을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  29. 제 28 항에 있어서, 상기 프로세서는 부동점 동작을 수행하고, 다수의 부동점 데이터 레지스터를 포함하기에 적절한 형태이고, 제 1 및 제 2 복합 데이터 요소는 부동점 데이터 레지스터의 개별 레지스터의 가수 내에 적재되고, 상기 프로세서는 제 1 및 제 2 복합 데이터 요소로 적재된 부동점에 따라서 부동점 승산을 수행함으로써 승산된 복합 데이터 요소를 형성하도록 지시되는 것을 특징으로 하는 컴퓨터 시스템.
  30. 제 29 항에 있어서, 승산된 복합 데이터 요소의 k번째 블록을 추출하는 것은
    - 제 1 또는 제 2 복합 데이터 요소를 부동점 데이터 레지스터 내에 적재하면서 n이 승산된 복합 데이터 요소의 k-1번째 저차 블록의 비트수인 2n으로 지수를 세팅시키고,
    - 승산된 복합 데이터 요소를 정수치로 변환하고,
    - 마스킹에 의해 저차 블록을 정수치로부터 추출하는 것을 특징으로 하는 컴퓨터 시스템.
KR1019970708547A 1996-03-28 1997-03-13 순차프로세서상에서데이터요소들의세트를처리하기위한방법및컴퓨터시스템 KR100483212B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96200853.8 1996-03-28
EP96200853 1996-03-28

Publications (2)

Publication Number Publication Date
KR19990022068A true KR19990022068A (ko) 1999-03-25
KR100483212B1 KR100483212B1 (ko) 2005-10-19

Family

ID=8223827

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970708547A KR100483212B1 (ko) 1996-03-28 1997-03-13 순차프로세서상에서데이터요소들의세트를처리하기위한방법및컴퓨터시스템

Country Status (7)

Country Link
US (1) US5892960A (ko)
EP (1) EP0834114A2 (ko)
JP (1) JPH11506230A (ko)
KR (1) KR100483212B1 (ko)
CN (1) CN1160622C (ko)
TW (1) TW357316B (ko)
WO (1) WO1997036227A2 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2216224A1 (en) * 1997-09-19 1999-03-19 Peter R. Stubley Block algorithm for pattern recognition
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6212627B1 (en) * 1998-10-12 2001-04-03 Intel Corporation System for converting packed integer data into packed floating point data in reduced time
US6823103B2 (en) * 2000-12-15 2004-11-23 Lightwave Microsystems Corporation Optical devices for controlling insertion loss
US7711763B2 (en) * 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7181484B2 (en) * 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output
US7239324B2 (en) * 2001-03-23 2007-07-03 Microsoft Corporation Methods and systems for merging graphics for display on a computing device
US7038690B2 (en) * 2001-03-23 2006-05-02 Microsoft Corporation Methods and systems for displaying animated graphics on a computing device
US6728396B2 (en) * 2002-02-25 2004-04-27 Catholic University Of America Independent component imaging
US7003461B2 (en) * 2002-07-09 2006-02-21 Renesas Technology Corporation Method and apparatus for an adaptive codebook search in a speech processing system
US7275148B2 (en) * 2003-09-08 2007-09-25 Freescale Semiconductor, Inc. Data processing system using multiple addressing modes for SIMD operations and method thereof
EP1962182A1 (en) * 2007-02-23 2008-08-27 Ingenico Computer-implemented method and executable program for updating reference data
US7830283B2 (en) * 2009-02-27 2010-11-09 Red Hat, Inc. Compact encoding of small integers
US9659046B2 (en) 2013-07-31 2017-05-23 Oracle Inernational Corporation Probing a hash table using vectorized instructions
US9256631B2 (en) 2013-07-31 2016-02-09 Oracle International Corporation Building a hash table using vectorized instructions
US9965275B2 (en) * 2015-07-31 2018-05-08 Arm Limited Element size increasing instruction
CN108733347B (zh) * 2017-04-20 2021-01-29 杭州海康威视数字技术股份有限公司 一种数据处理方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4745547A (en) * 1985-06-17 1988-05-17 International Business Machines Corp. Vector processing
US4722049A (en) * 1985-10-11 1988-01-26 Unisys Corporation Apparatus for out-of-order program execution
US5063497A (en) * 1987-07-01 1991-11-05 Digital Equipment Corporation Apparatus and method for recovering from missing page faults in vector data processing operations
JP2531760B2 (ja) * 1988-10-11 1996-09-04 日本電気株式会社 ベクトル処理装置
US5295249A (en) * 1990-05-04 1994-03-15 International Business Machines Corporation Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel
DE69123629T2 (de) * 1990-05-04 1997-06-12 Ibm Maschinenarchitektur für skalaren Verbundbefehlssatz
US5303356A (en) * 1990-05-04 1994-04-12 International Business Machines Corporation System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5448746A (en) * 1990-05-04 1995-09-05 International Business Machines Corporation System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution
JP2795058B2 (ja) * 1992-06-03 1998-09-10 松下電器産業株式会社 時系列信号処理装置
US5423051A (en) * 1992-09-24 1995-06-06 International Business Machines Corporation Execution unit with an integrated vector operation capability
US5619709A (en) * 1993-09-20 1997-04-08 Hnc, Inc. System and method of context vector generation and retrieval
US5673407A (en) * 1994-03-08 1997-09-30 Texas Instruments Incorporated Data processor having capability to perform both floating point operations and memory access in response to a single instruction
JP2690027B2 (ja) * 1994-10-05 1997-12-10 株式会社エイ・ティ・アール音声翻訳通信研究所 パターン認識方法及び装置
US5675759A (en) * 1995-03-03 1997-10-07 Shebanow; Michael C. Method and apparatus for register management using issue sequence prior physical register and register association validity information

Also Published As

Publication number Publication date
JPH11506230A (ja) 1999-06-02
CN1194700A (zh) 1998-09-30
WO1997036227A3 (en) 1997-12-11
WO1997036227A2 (en) 1997-10-02
TW357316B (en) 1999-05-01
US5892960A (en) 1999-04-06
EP0834114A2 (en) 1998-04-08
CN1160622C (zh) 2004-08-04
KR100483212B1 (ko) 2005-10-19

Similar Documents

Publication Publication Date Title
KR100483212B1 (ko) 순차프로세서상에서데이터요소들의세트를처리하기위한방법및컴퓨터시스템
US5752001A (en) Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition
US4899385A (en) Code excited linear predictive vocoder
EP0847041B1 (en) Method and apparatus for speech recognition performing noise adaptation
EP0313975A2 (en) Design and construction of a binary-tree system for language modelling
Pawar et al. Convolution neural network based automatic speech emotion recognition using Mel-frequency Cepstrum coefficients
CN112699216A (zh) 端到端的语言模型预训练方法、系统、设备及存储介质
Zhou et al. A configurable multilingual model is all you need to recognize all languages
CN109829162A (zh) 一种文本分词方法及装置
CN110364186B (zh) 一种基于对抗学习的端到端的跨语言语音情感识别方法
EP0218421B1 (en) Pattern recognition and learning apparatus
TWI225640B (en) Voice recognition device, observation probability calculating device, complex fast fourier transform calculation device and method, cache device, and method of controlling the cache device
US5164990A (en) Method and apparatus for recognizing unknown spoken words and by feature extraction and comparison with reference words
Kumatani et al. Building a great multi-lingual teacher with sparsely-gated mixture of experts for speech recognition
CN112130805A (zh) 包括浮点加法器的芯片、设备及浮点运算的控制方法
CN111401043A (zh) 近义词挖掘方法、装置、设备及存储介质
US6209012B1 (en) System and method using mode bits to support multiple coding standards
KR102129575B1 (ko) 단어 교정 시스템
Janin Speech recognition on vector architectures
KR0147758B1 (ko) Mpeg-2 오디오 복호화기의 합성 필터
Vatolkin et al. Comparison of Audio Features for Recognition of Western and Ethnic Instruments in Polyphonic Mixtures.
Ackenhusen et al. Microprocessor implementation of an LPC-based isolated word recognizer
JP2004094434A (ja) 言語処理方法、プログラム及び装置
CN113780418A (zh) 一种数据的筛选方法、系统、设备和存储介质
JPS61148497A (ja) 標準パタン作成装置

Legal Events

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