KR20100105765A - 정규화 카운트를 결정하는 프로세서 및 방법 - Google Patents

정규화 카운트를 결정하는 프로세서 및 방법 Download PDF

Info

Publication number
KR20100105765A
KR20100105765A KR1020107017660A KR20107017660A KR20100105765A KR 20100105765 A KR20100105765 A KR 20100105765A KR 1020107017660 A KR1020107017660 A KR 1020107017660A KR 20107017660 A KR20107017660 A KR 20107017660A KR 20100105765 A KR20100105765 A KR 20100105765A
Authority
KR
South Korea
Prior art keywords
bits
zero
value
operand
normalization
Prior art date
Application number
KR1020107017660A
Other languages
English (en)
Other versions
KR101252739B1 (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 KR20100105765A publication Critical patent/KR20100105765A/ko
Application granted granted Critical
Publication of KR101252739B1 publication Critical patent/KR101252739B1/ko

Links

Images

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
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • 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
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49936Normalisation mentioned as feature only

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Measuring Frequencies, Analyzing Spectra (AREA)

Abstract

특정 실시예에서, 정규화 논리 회로에서 정규화될 피연산자를 수신하는 단계를 포함하는 방법이 개시되며, 상기 피연산자는 복수의 비트들을 포함한다. 상기 방법은 피연산자의 값이 0과 같으면 0 출력을 생성하는 단계, 상기 값이 0과 같지 않으면 피연산자의 선행 비트들의 카운트보다 1 작은 수를 나타내는 출력 값을 생성하는 단계를 더 포함한다.

Description

정규화 카운트를 결정하는 프로세서 및 방법{PROCESSOR AND METHOD OF DETERMINING A NORMALIZATION COUNT}
본 개시물은 일반적으로 정규화 카운트를 결정하는 프로세서 및 방법에 관한 것이다.
컴퓨터 애플리케이션들에서, 수치 계산들은 광범위한 값들에 이르는 수(number)들을 발생시킬 수 있다. 이진수들 상에서 연산하는 프로세서 내에서, 광범위한 값들을 처리(encompass)하기 위해 값들을 스케일링하는데 정규화가 이용될 수 있다. 예를 들어, 통계 계산들에서, 제 1 범위의 값들(예를 들어, 0 내지 1/2)을 제 2 범위의 값들(예를 들어, 0 내지 1)로 스케일링하는 것이 바람직할 수 있다.
일반적으로, 정규화 프로세스 또는 명령은 입력 또는 출력 신호를 스케일링 또는 조정하기 위한 자동 이득 제어에 대해 이용될 수 있다. 예를 들어, 무선 전화에서, 정규화 명령은 스피커 출력의 볼륨 또는 마이크로폰 입력과 관련되는 볼륨을 조정하기 위해 이용될 수 있다. 다른 특정 예시에서, 정규화 연산은 로그 함수와 같은, 수학 함수를 추정하기 위해 이용될 수 있다. 특정 예시에서, 정규화 명령은 부호가 있는 값(signed value)의 연속하는 선행(leading) 비트들의 수를 카운트한다. 연속하는 선행 비트들의 카운팅되는 수만큼 좌측으로 값을 시프트함으로써 값을 정규화하기 위해 연속하는 선행 비트들의 수가 이용되면, 상기 값과 관련되는 부호 비트는 소실될 수 있다. 따라서, 결과적인 시프트되는 수가 틀릴 수 있다.
특정 실시예에서, 정규화될 피연산자를 수신하는 단계를 포함하는 방법이 개시되고, 여기서 상기 피연산자는 복수의 비트들을 포함한다. 상기 방법은 상기 피연산자의 값이 0과 같으면 0 출력을 생성하는 단계 및 상기 값이 0과 같지 않으면, 상기 피연산자의 선행 비트들의 카운트 빼기 1을 나타내는 출력 값을 생성하는 단계를 더 포함한다.
다른 특정 실시예에서, 정규화 명령을 실행하도록 구성되는 명령 실행 유닛을 포함하는 프로세서가 개시된다. 상기 명령 실행 유닛은 복수의 비트들을 포함하는 피연산자를 수신하기 위한 입력 및 상기 입력에 커플링되고 복수의 시프트되는 비트들을 생성하기 위해 상기 복수의 비트들을 좌측으로 1 비트만큼 시프트하도록 적응되는 시프터 회로를 포함한다. 상기 명령 실행 유닛은 상기 복수의 시프트되는 비트들을 수신하고 상기 복수의 시프트되는 비트들의 선행 비트들의 수를 카운팅하기 위한 선행 비트 카운팅 회로를 더 포함한다. 상기 선행 비트 카운팅 회로는 상기 선행 비트들의 수를 나타내는 카운트 빼기 1을 출력에 제공한다.
또 다른 특정 실시예에서, 명령은 입력 값을 정규화하기 위해 프로세서에 의해 실행가능하다. 상기 명령은 입력의 값을 결정하기 위해 실행 유닛에 의해 실행가능한 제 1 명령을 포함한다. 상기 명령은 상기 입력에서 상기 결정되는 값이 0이면 0 출력을 생성하기 위해 상기 실행 유닛에 의해 실행가능한 제 2 명령을 포함한다. 또한 상기 명령은 상기 결정되는 값이 0이 아니면 비트들의 선행 수의 카운트 빼기 1을 나타내는 정규화 양을 생성하기 위해 상기 실행 유닛에 의해 실행가능한 제 3 명령을 포함한다.
또 다른 특정 실시예에서, 복수의 비트들을 포함하는 피연산자를 수신하는 단계, 시프트되는 복수의 비트들을 생성하기 위해 상기 복수의 비트들을 좌측으로 1 비트만큼 시프트하는 단계 및 상기 시프트되는 복수의 비트들의 최하위 비트에 0 값을 삽입하는 단계를 포함하는 방법이 개시된다. 상기 방법은 상기 시프트되는 복수의 비트들에서 비트들의 선행 수를 카운팅하는 단계 및 상기 수신되는 복수의 비트들이 영이 아닌 값을 가지면 상기 비트들의 선행 수를 나타내는 카운트 빼기 1을 출력하는 단계를 더 포함한다.
다른 특정 실시예에서, 복수의 비트들을 포함하는 피연산자를 수신하기 위한 수단을 포함하고 상기 피연산자의 값이 0과 같으면 0 출력을 생성하기 위한 수단을 포함하는 프로세서가 개시된다. 상기 프로세서는 상기 피연산자의 상기 값이 0과 같지 않으면, 상기 피연산자의 선행 비트들의 카운트 빼기 1을 나타내는 출력 값을 생성하기 위한 수단을 더 포함한다.
제시되는 상기 회로 디바이스 및 상기 방법들의 실시예들에 의해 제공되는 한가지 특정 장점은 0 값이 수신되면(즉, 입력의 모든 비트들이 0과 같으면), 0 값은 상기 비트들을 시프트하지 않고 출력에 제공된다는 점이다. 본 예시에서, 상기 카운트 값은 신속하게 그리고 감소되는 전력을 소모하면서 출력될 수 있다.
정확한 값을 제공하기 위해 출력에서 선택되는 비트들을 마스킹함으로써 거짓 데이터(false data)가 제거된다는 다른 특정 장점이 제공된다.
프로세서로 하여금 동일한 회로를 이용하여 선행 1들 또는 선행 0들을 카운팅하게 하여, 선행 비트들이 카운트될 수 있다는 또 다른 특정 장점이 제공된다.
다음의 섹션들: 도면의 간단한 설명, 발명을 실시하기 위한 구체적인 내용 및 특허청구범위를 포함하는, 전체 명세서의 리뷰 후에 본 개시물의 다른 양상들, 장점들 및 특징들이 명백해질 것이다.
도 1은 정규화 양을 결정하도록 구성되는 정규화 논리 회로를 구비한 실행 유닛을 포함하는 프로세싱 시스템의 특정 예시적인 실시예의 블록도이다;
도 2는 정규화 카운트를 결정하도록 구성되는 정규화 논리 회로를 포함하는 회로 디바이스의 특정 예시적인 실시예의 다이어그램이다;
도 3은 정규화 카운트를 결정하도록 구성되는 정규화 논리 회로를 포함하는 회로 디바이스의 제 2 특정 예시적인 실시예의 다이어그램이다;
도 4는 정규화 카운트를 결정하는 방법의 특정 예시적인 실시예의 흐름도이다;
도 5는 정규화 카운트를 결정하는 방법의 제 2 특정 예시적인 실시예의 흐름도이다;
도 6는 정규화 카운트를 결정하는 방법의 제 3 특정 예시적인 실시예의 흐름도이다; 그리고
도 7은 정규화 양을 결정하도록 구성되는 정규화 회로를 구비한 실행 유닛을 포함하는 무선 통신 디바이스의 예시적인 실시예의 블록도이다.
도 1은 정규화 양(amount)을 결정하도록 구성되는 정규화 논리 회로를 구비한 실행 유닛(execution unit)을 포함하는 프로세싱 시스템(100)의 특정 예시적인 실시예의 블록도이다. 프로세싱 시스템(100)은 버스 인터페이스(104)를 통해 명령 캐시(106) 및 데이터 캐시(112)와 통신하도록 구성되는 메모리(102)를 포함한다. 명령 캐시(106)는 버스(110)에 의해 시퀀서(sequencer; 114)에 커플링된다. 명령 캐시(106)는 정규화 명령(116)을 저장할 수 있는데, 이는 버스(110)를 통해 시퀀서(114)에 제공될 수 있다. 또한 프로세싱 시스템(100)은 인터럽트들을 수용하고 명령들의 실행을 제어하는지 여부를 결정하기 위해 시퀀서(114) 내의 제어 논리에 의해 액세스될 수 있는 비트들을 저장하기 위한 슈퍼바이저(spervisor) 제어 레지스터들(132) 및 글로벌(global) 제어 레지스터들(134)을 포함할 수 있다.
특정 실시예에서, 명령 캐시(106)는 복수의 현재 명령 레지스터(current instruction register)들을 통해 시퀀서(114)에 커플링되는데, 이는 버스(110)에 커플링되고 프로세싱 시스템(100)의 특정 스레드(thread)들과 관련될 수 있다. 특정 실시예에서, 프로세싱 시스템(100)은 6 개의 스레드들을 포함하는 인터리빙(interleaving)되는 멀티-스레드 프로세서이다.
시퀀서(114)는 제 1 명령 실행 유닛(118), 제 2 명령 실행 유닛(120), 제 3 명령 실행 유닛(122) 및 제 4 명령 실행 유닛(124)에 커플링된다. 각각의 명령 실행 유닛(118, 120, 122 및 124)은 제 2 버스(128)를 통해 범용 레지스터 파일(general register file; 126)에 커플링될 수 있다. 범용 레지스터 파일(126)은 또한 제 3 버스(130)를 통해 시퀀서(114), 데이터 캐시(112) 및 메모리(102)에 커플링될 수 있다.
제 1 실행 유닛(118)은 정규화 논리 회로(136)를 포함하고, 제 2 실행 유닛(120)은 정규화 논리 회로(138)를 포함한다. 특정 실시예에서, 각각의 실행 유닛들(118, 120, 122 및 124)은 정규화 논리 회로를 포함할 수 있다. 상기 도시되는 실시예에서, 실행 유닛들(118 및 120)은 정규화 논리 회로들(136 및 138)을 이용하여 복수의 비트들과 관련되는 정규화 카운트(count)를 제공하도록 구성된다.
특정 예시적인 실시예에서, 시퀀서(114)는 정규화 명령(116)을 제 1 실행 유닛(118)에 제공한다. 정규화 명령(116)의 수신에 응답하여, 제 1 실행 유닛(118)은 피연산자를 리트리브(retrieve)하고 정규화 논리 회로(136)를 이용하여 피연산자의 비트들의 선행 수(leading number) 빼기 1(즉, 비트들의 선행 수의 카운트 빼기 1)을 카운팅(counting)한다. 정규화 논리 회로(136)는 피연산자의 모든 비트들이 0이면 선택적으로 0 값을 출력하고, 피연산자의 임의의 비트가 0이 아니면 비트들의 선행 수의 카운트 빼기 1을 나타내는 수를 선택적으로 출력하도록 구성된다. 비트들의 선행 수의 카운트는 최상위 비트와 함께 시작하고 최상위 비트를 포함하는, 동일한 값을 가지는 연속하는 비트들의 수를 식별할 수 있다. 상기 수는 피연산자의 데이터 값을 스케일링 또는 조정하기 위해 다른 명령을 실행하는데 이용될 수 있다. 예를 들어, 피연산자가 0 내지 1/2의 범위의 값을 나타내면, 수는 피연산자를 0 내지 1의 범위로 스케일링하기 위해 이용될 수 있다.
특히 예시적인 실시예에서, 정규화 논리 회로들(136 및 138)은 선행 1들(leading ones) 카운팅 회로들, 선행 0들(leading zeros) 카운팅 회로들 또는 이들의 임의의 조합(도시되지 않음)을 포함할 수 있다. 특정 실시예에서, 정규화 논리 회로들(136 및 138)은 (도 2에서 도시되는 선행 0들 카운터(counter)(220)와 같은) 선행 0들 카운팅 회로들을 포함할 수 있다. 본 예시에서, 선행 비트들이 1들이면, 정규화 논리 회로들(136 및 138)은 선행 0들을 카운팅하기 전에 피연산자를 보수화(complement)하기 위한 논리 회로를 포함할 수 있다. 다른 특정 실시예에서, 정규화 논리 회로들(136 및 138)은 선행 1들을 카운팅하고 선행 0들을 카운팅하며 더 큰 카운트를 선택하도록 구성될 수 있다. 2의 보수들의 경우, 음수들에 대해 선행 0들의 수는 0이며, 양수들에 대해 선행 1들의 수는 0이다. 그러므로, 선행 비트들의 수는 피연산자의 부호, 크기 또는 이 둘 모두를 판단하기 위해 이용될 수 있다.
특정 실시예에서, 정규화 명령(116)은 2 개의 조건들을 포함한다: 1) 입력 피연산자의 값이 0이면, 0을 출력한다; 그리고 2) 입력 피연산자의 값이 0이 아니면, 피연산자의 선행 비트들의 카운트 빼기 1을 출력한다. 정규화 명령(116)를 구현하기 위한 어셈블리 코드의 예시는 아래의 표 1에서 제시된다.
표 1 : 예시적인 정규화 명령
if(Rs==0){
Rd=0;
} else {
Rd=(max(count_leading_ones(Rs), count_leading_zeros(Rs))-1);
};
표 1에서, 소스 레지스터(Rs)의 값이 0과 같으면, 목적지 레지스터(Rd)는 0으로 설정된다. 그렇지 않으면, 소스 레지스터에서의 상기 값에서 선행 1들의 카운트 및 선행 0들의 카운트를 비교하여 어떠한 카운트가 더 큰지를 결정한다. 특히, 선행 1들의 카운트 또는 선행 0들의 카운트 중 하나가 0일 것이고, 다른 카운트는 양수일 것이다. 양수인 카운트는 1 만큼 감소되고 목적지 레지스터에 저장된다.
특정 실시예에서, 표 1에서 도시되는 정규화 명령은 입력의 값을 결정하도록 적응되는 제 1 연산(즉, if Rs==0)을 포함한다. 정규화 명령은 또한 상기 입력에서 결정되는 값이 0이면 0의 출력을 생성하도록 적응되는 제 2 연산(즉, Rd=0)을 포함한다. 정규화 명령은 결정되는 값이 0이 아니면 비트들의 선행 수의 카운트 빼기 1을 나타내는 정규화 양을 생성하도록 적응되는 제 3 연산(즉, Rd=(max(count_leading_ones(Rs), count_leading_zeros(Rs))-1))을 더 포함한다. 특정 예시에서, 상기 0 출력 또는 상기 카운트는 프로세서의 단일 명령 사이클에서 생성된다. 특정 예시에서, 단일 명령 사이클은 판독(read) 레지스터 파일 스테이지, 디코딩 스테이지, 하나 이상의 실행 스테이지들 및 라이트 백(write back) 스테이지를 포함하는, 실행 스레드의 다수의 스테이지들을 나타낼 수 있다. 특정 실시예에서, 정규화 명령은 부가적인 연산들, 마이크로명령들 또는 상기의 임의의 조합을 포함할 수 있다. 다른 특정 실시예에서, 정규화 명령은 부가적인 마이크로명령들 또는 연산들을 개시하거나 스폰(spawn)할 수 있다. 특정 예시에서, 정규화 명령은 정규화 양에 따라 좌측으로 값을 시프트(shift)하기 위해 정규화 양을 이용하는 마이크로명령의 실행을 개시할 수 있다.
도 2는 정규화 카운트를 결정하도록 구성되는 정규화 논리 회로(202)를 포함하는 회로 디바이스(200)의 특정 예시적인 실시예의 다이어그램이다. 정규화 논리 회로(202)는 최상위 비트(224) 및 다수의 다른 비트들(226)을 포함하는 피연산자와 같은, 입력(204)을 수신하도록 구성된다. 정규화 논리 회로(202)는 정규화 카운트(206)을 생성하기 위해 입력(204)을 프로세싱하도록 구성되는데, 상기 정규화 카운트(206)는 입력(204)에서의 값이 0이면 0 값을 나타내고 아니면 입력(204)의 비트들의 선행 수의 카운트 빼기 1을 나타낸다. 정규화 논리 회로(202)는 시프터(shifter) 회로(208)를 포함하는데, 이는 양-방향 시프터 회로일 수 있다. 특정 예시에서, 시프터 회로(208)는 복수의 시프트되는 비트들을 생성하기 위해 수신되는 비트들을 좌측으로 1 비트만큼 시프트하고 최하위 비트 위치에 0 값을 삽입하도록 구성된다.
정규화 논리 회로(202)는 입력(204)으로부터 최상위 비트(224)를 추출하도록 구성되는 최상위 비트(MSB) 추출 회로(236)를 포함한다. 정규화 논리 회로(202)는 또한 다수의 배타적 OR 게이트들(210, 212, 214, 216 및 218)을 포함한다. 다수의 배타적 OR 게이트들(210, 212, 214, 216 및 218) 각각은 최상위 비트(224)를 수신하기 위해 MSB 추출 회로(236)에 커플링되는 제 1 입력을 포함하고 복수의 시프트되는 비트들의 각 비트를 수신하기 위해 시프터 회로(208)에 커플링되는 제 2 입력을 포함한다. 특정 예시에서, 최상위 비트(224)가 1의 값을 가지면, 배타적 OR 게이트들(210, 212, 214, 216 및 218) 각각은 복수의 시프트되는 비트들의 각 비트를 보수화한다. 최상위 비트(224)가 0의 값을 가지면, 배타적 OR 게이트들(210, 212, 214, 216 및 218) 각각은 복수의 시프트되는 비트들의 각 비트를 패스(pass)한다.
정규화 논리 회로(202)는 선행 0들 카운터(220) 및 논리 AND 게이트(222)를 포함한다. 선행 0들 카운터(220)는 복수의 시프트되는 비트들 또는 복수의 시프트되는 비트들의 보수 버전으로 나타내는 피연산자를 수신하기 위해 배타적 OR 게이트들(210, 212, 214, 216 및 218) 각각에 커플링된다. 선행 0들 카운터(220)는 피연산자에서 연속하는 0들의 선행 수를 카운팅하고 리드(lead; 230 및 232)들을 통해 연속하는 0들의 선행 수를 나타내는 카운트를 출력한다. 논리 AND 게이트(222)는 리드(230)에서 상기 카운트의 최상위 비트를, 리드(230)에서의 상기 값과 0 값(228)(즉, 전기적 접지)과 논리곱함으로써 마스킹(masking)한다. 마스킹되는 출력(234)(즉, 0 값) 및 리드들(232)에서의 값들은 정규화 논리 회로(202)의 출력에서 정규화 카운트(206)로서 제공된다. 일반적으로, 선행 0들 카운터(220)가 연속하는 0의 선행 수를 카운팅하기 위해 적응되는 한편, 연속하는 1들의 선행 수를 카운팅하기 위한 선행 1들 카운터, 연속하는 비트들의 선행 수를 카운팅하기 위한 선행 비트 카운터 또는 이들의 임의의 조합과 같은, 다른 카운터들 또한 이용될 수 있다.
특정 예시에서, 정규화 논리 회로(202)는 도 1에서 도시되는 프로세서(100)의 실행 유닛(118)과 같은, 프로세서의 실행 유닛 내에 존재할 수 있다. 실시예에서, 정규화 논리 회로(202)는 정규화 카운트(206)를 제공하도록 구성되는데, 이는 특정 피연산자가 상기 피연산자를 정규화하기 위해 시프트될 수 있는 비트들의 수를 나타내는 카운트이다. 입력(204)이 0이 아닌 값이면, 시프트 회로(208)는 상기 비트들(226)을 좌측으로 1만큼 시프트하여, 최상위 비트를 제거한다. 0 값이 빈 자리(즉, 최하위 비트)에 삽입된다. 이러한 좌측 시프트 및 0의 삽입은 선행 비트들의 카운트 빼기 1을 제공한다. 입력이 모두 0들인 경우, 선행 0들 카운터(220)는 모든 0들을 카운팅할 수 있고, 예를 들어, 최상위 비트에 1을 제공할 수 있다. 특정 예시에서, 최상위 비트 위치의 1 값은 32의 시프트 값을 나타낼 수 있다. 32 개의 연속하는 값들을 가지는 입력 값만이 0의 입력이다. 그러므로, 요구되는 0 결과를 제공하기 위해 논리 AND 게이트(222)를 이용하여 230에서 최상위 비트는 마스킹(즉, 0으로 감소)된다
도 3은 정규화 카운트를 결정하도록 구성되는 정규화 논리 회로(302)를 포함하는 회로 디바이스(300)의 제 2 특정 예시적인 실시예의 다이어그램이다. 이러한 특정 예시에서, 정규화 논리 회로(302)는 도 2의 정규화 논리 회로(202)와 동일한 회로를 포함한다. 그러나, 정규화 논리 회로(302)는 시프터 회로(208) 및 MSB(224)에 커플링되고 0 값을 가지는 피연산자를 검출하도록 구성되는 제어 회로(304)를 포함한다. 또한 정규화 논리 회로(302)는 입력(204)에서 피연산자의 값이 0이면 정규화 논리 회로(302)의 출력에서 정규화 카운트(206)로서 0 값을 제공하기 위해 제어 회로(304)에 응답하는 0 회로(306)를 포함한다. 상기 값이 0이 아니면, 0 회로(306)는 선행 0들 카운터(220)의 출력이 정규화 카운트(306)로서 출력으로 패스되게 하는 패스 게이트(pass gate)로서 동작할 수 있다. 이러한 특정 예시에서, 제어 회로(304)는 0 회로(306)를 이용하여 출력에 0들을 제공하기 위해 시프터 회로(208), 다수의 배타적 OR 게이트들(210, 212, 214, 216 및 218) 및 선행 0 카운터(220)를 바이패스(bypass)할 수 있다.
도 4는 정규화 카운트를 결정하는 방법의 특정 예시적인 실시예의 흐름도이다. 402에서, 정규화될 피연산자가 정규화 논리 회로에서 수신된다. 404로 진행하여, 피연산자의 값이 0과 같으면, 상기 방법은 406으로 진행하고 0 값은 출력에서 제공된다. 예를 들어, 피연산자가 0과 같으면, 0 값은 스케일링되거나 정규화될 필요가 없고, 그러므로 피연산자의 시프트 양이 0이어야 한다. 특정 예시에서, 피연산자가 0의 값을 가질 때 피연산자의 값을 결정하고 출력을 제어하여 0 값을 제공하기 위해 정규화 논리 회로 내에 제어 회로가 제공될 수 있다. 414로 계속하여, 상기 방법은 종료한다.
404로 돌아가서, 피연산자의 값이 0과 같지 않으면, 상기 방법은 408로 진행하고 수를 결정하기 위해 피연산자의 선행 비트들이 카운팅된다. 특정 예시적인 실시예에서, 비트들의 선행 수는 선행 0들 카운터 회로를 이용하여 카운팅되는데, 이는 선행 0을 카운팅하도록 구성된다. 특정 예시에서, 피연산자의 최상위 비트가 1과 같으면, 최상위 비트는 다른 비트들을 보수화하기 위해 이용될 수 있고 선행 0 카운터 회로는 피연산자의 보수 버전에서 0의 수를 카운팅할 수 있다. 410으로 이동하여, 시프트 양을 결정하기 위해 상기 수에서 1이 감산된다(subtract). 특정 예시에서, 상기 1은 다른 비트들을 좌측으로 1만큼 시프트하고 최하위 비트 위치에 0을 삽입함으로써 감산된다. 412로 계속하여, 시프트 양은 출력에서 제공된다. 시프트 양은 선행 비트들의 수의 카운트 빼기 1을 나타낸다. 상기 방법은 414에서 종료한다.
특정 예시에서, 정규화될 피연산자를 수신하는 단계는 프로세서의 실행 유닛에 의해 실행가능한 정규화 명령을 수신한 후에 발생할 수 있다. 정규화 명령은 피연산자가 리트리브될 수 있는 소스 레지스터 어드레스를 포함할 수 있다. 정규화 명령은 단일 명령 사이클에서 프로세서에 의해 실행가능하다. 특정 예시에서, 408에서 수를 결정하기 위해 피연산자의 선행 비트들을 카운팅하는 단계 및 시프트 양을 결정하기 위해 상기 수로부터 1을 감산하는 단계는 피연산자의 최상위 비트를 추출하는 단계, 복수의 시프트되는 비트들을 생성하기 위해 피연산자의 잔여 비트들을 좌측으로 1 비트만큼 시프트하는 단계, 상기 복수의 시프트되는 비트들의 최하위 비트에 0 값을 삽입하는 단계, 시프트 양을 생성하기 위해 상기 복수의 시프트되는 비트들에서 0들의 선행 수를 카운팅하는 단계 및 출력에서 시프트 양을 제공하기 위해 시프트 양의 최상의 비트를 마스킹하는 단계를 포함할 수 있다. 특정 예시에서, 시프트 양의 최상위 비트를 마스킹하는 단계은 전기적 접지와 같은, 논리 0 값에 커플링되는 제 2 입력을 포함하는 논리 AND 게이트의 입력에 상기 최상위 비트를 제공하는 단계를 포함할 수 있다.
도 5는 정규화 카운트를 결정하는 방법의 제 2 특정 예시적인 실시예의 흐름도이다. 502에서, 정규화될 피연산자가 정규화 논리 회로에서 수신되는데, 상기 피연산자는 복수의 비트들을 포함한다. 504로 진행하여, 최상위 비트가 복수의 비트들로부터 추출된다. 506으로 계속하여, 복수의 비트들은 1 비트만큼 좌측으로 시프트된다. 508로 이동하여, 상기 복수의 시프트되는 비트들 또는 상기 복수의 시프트되는 비트들의 보수 버전 중 하나를 나타내는 값을 생성하기 위해 상기 추출되는 최상위 비트 및 상기 시프트되는 복수의 비트들 각각을 이용하여 배타적 OR 연산이 수행된다. 510으로 진행하여, 0들의 선행 수가 수를 생성하기 위해 상기 생성되는 값에서 카운팅된다. 512로 이동하여, 상기 수의 최상위 비트가 시프트 양을 생성하기 위해 마스킹된다. 514로 계속하여, 시프트 양은 출력에서 제공되는데, 여기서 피연산자가 0과 같으면 시프트 양은 0이고, 피연산자가 0이 아닌 값이면 시프트 양은 비트들의 선행 수의 카운트 빼기 1이다. 상기 방법은 516에서 종료한다.
도 6은 정규화 카운트를 결정하는 방법의 제 3 특정 예시적인 실시예의 흐름도이다. 602에서, 상기 방법은 정규화 논리 회로에서 정규화될 피연산자를 수신하는 단계를 포함하는데, 상기 피연산자는 복수의 비트들을 포함한다. 604로 진행하여, 복수의 비트들은 복수의 비트들의 최상위 비트를 제거하기 위해 좌측으로 1만큼 시프트된다. 606으로 이동하여, 제 2의 복수의 비트들을 형성하기 위해 상기 복수의 시프트되는 비트들의 최하위 비트 위치에 0 값이 삽입된다. 608에 계속하여, 복수의 XOR 출력 비트들을 생성하기 위해 피연산자의 최상위 비트를 이용하여 상기 제 2의 복수의 비트들 각각에 대해 배타적 OR 연산이 적용된다. 610으로 진행하여, 복수의 XOR 출력 비트들의 0들의 선행 수는 0의 수를 결정하기 위해 카운팅된다. 612로 진행하여, 상기 결정되는 0들의 수의 최상의 비트는 피연산자가 0이 아니면 카운팅되는 0들의 선행 수 빼기 1을 나타내는 시프트 양을 제공하고 피연산자가 0이면 0 값을 제공하기 위해 마스킹된다. 상기 방법은 614에서 종료한다.
도 7은 정규화 양을 결정하도록 구성되는 정규화 논리 회로(768)를 포함하는 실행 유닛(764)을 포함하는 무선 통신 디바이스(700)의 예시적인 실시예의 블록도이다. 정규화 논리 회로(768)는 도 1, 도 2 및 도 3에 관하여 설명되는 정규화 논리 회로들(136, 202 및 302)과 유사할 수 있다. 무선 통신 디바이스(700)는 정규화 논리 회로(768)를 구비한 실행 유닛(764)를 포함하는 디지털 신호 프로세서(DSP; 710)를 포함할 수 있다. 정규화 논리 회로(768)는 도 1 내지 도 6에 관하여 설명되는 바와 같이, 입력에서 비트들의 선행 수 빼기 1을 결정하도록 동작가능하다. 또한 무선 통신 디바이스(700)는 DSP(710)에 액세스가능한 메모리(732)를 포함한다. 특정 실시예에서, 정규화 논리 회로(768)는 실행 유닛(764)의 단일 명령(실행) 사이클 내에서 복수에 데이터 비트들에 관한 정규화 카운트를 제공하기 위해 실행 유닛(764)에 의해 이용될 수 있다.
또한 도 7은 디지털 신호 프로세서(710) 및 디스플레이(728)에 커플링되는 디스플레이 제어기(726)를 도시한다. 또한 코더/디코더(CODEC; 734)는 디지털 신호 프로세서(710)에 커플링될 수 있다. 스피커(736) 및 마이크로폰(738)이 CODEC(734)에 커플링될 수 있다.
또한 도 7은 무선 제어기(740)가 디지털 신호 프로세서(710) 및 무선 안테나(742)에 커플링될 수 있음을 나타낸다. 특정 실시예에서, 입력 디바이스(730) 및 전원장치(power supply; 744)는 온-칩 시스템(722)에 커플링된다. 게다가, 특정 실시예에서, 도 7에서 도시되는 바와 같이, 디스플레이(728), 입력 디바이스(730), 스피커(736), 마이크로폰(738), 무선 안테나(742) 및 전원 장치(744)는 온-칩 시스템(722)의 외부에 존재한다. 그러나, 각각은 온-칩 시스템(722)의 컴포넌트에 커플링된다.
당업자는 여기서 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리블록들, 구성들, 모듈들, 회로들 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어 또는 이들의 조합들로서 구현될 수 있음을 추가적으로 이해할 것이다. 하드웨어 및 소프트웨어의 상호 호환성을 명확히 하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 이들의 기능성의 관점에서 상기 설명되었다. 이러한 기능성이 하드웨어로 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션 및 전체 시스템에 대해 부가되는 설계 제한들에 의존한다. 당업자는 각각의 특정 애플리케이션에 대해 다양한 방식으로 이러한 기능성을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위로부터의 이탈을 야기하는 것으로 해석되어서는 아니된다.
게다가, 여기 개시되는 실시예들과 관련하여 설명되는 알고리즘 또는 방법의 단계들은 하드웨어에서, 프로세서에 의해 실행되는 소프트웨어 모듈에서 또는 이 둘의 조합에 의해 직접 구현될 수 있다. 소프트웨어 모듈들은 RAM 메모리, 플래시 메모리, ROM 메모리, PROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM 또는 당해 기술 분야에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 예시적인 저장 매체는 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서의 구성요소일 수 있다. 이러한 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 컴퓨팅 디바이스 또는 사용자 단말에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 컴퓨팅 디바이스 또는 사용자 단말에서 이산 컴포넌트들로서 상주할 수 있다.
개시되는 실시예들에 대한 상기 설명은 당업자가 개시되는 실시예들을 이용하거나 실시할 수 있도록 제공된다. 이러한 실시예들에 대한 다양한 변형들은 당업자에게 명백할 것이며, 여기에 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어남이 없이 다른 실시예들에 적용될 수 있다. 그리하여, 본 개시물은 여기에 제시되는 실시예들로 한정되는 것으로 의도되지 않으며, 다음의 청구 범위에 의해 정의되는 바와 같은 원리들 및 신규한 특징들과 일관되는 최광의의 범위에서 해석되어야 한다.

Claims (25)

  1. 정규화(normalization) 논리 회로에서 정규화될 피연산자를 수신하는 단계 ― 상기 피연산자는 복수의 비트들을 포함함 ― ;
    상기 피연산자의 값이 0과 같으면 0 출력을 생성하는 단계; 및
    상기 값이 0과 같지 않으면, 상기 피연산자의 선행 비트(leading bits)들의 카운트(count)보다 1 작은 수(number)를 나타내는 출력 값을 생성하는 단계
    를 포함하는, 방법.
  2. 제 1 항에 있어서,
    프로세서의 실행 유닛(execution unit)에 의해 실행가능한 정규화 명령을 수신하는 단계를 더 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 피연산자는 상기 정규화 명령을 수신한 후에 수신되는, 방법.
  4. 제 1 항에 있어서,
    상기 0 출력을 생성하는 단계는,
    상기 수신되는 피연산자가 0의 값을 가진다고 결정하는 단계; 및
    정규화 논리 회로의 출력에 0 값을 제공하기 위한 논리 신호를 생성하는 단계를 더 포함하는, 방법.
  5. 제 1 항에 있어서,
    상기 피연산자의 선행 비트들의 카운트보다 1 작은 수를 나타내는 출력 값을 생성하는 단계는,
    상기 피연산자로부터 최상위 비트를 추출(extract)하는 단계;
    복수의 시프트(shift)되는 비트들을 생성하기 위해 상기 피연산자의 상기 복수의 비트들의 잔여 비트들을 좌측으로 1만큼 시프트하는 단계;
    상기 복수의 시프트되는 비트들의 최하위 비트에 0 값을 삽입하는 단계;
    시프트 양(amount)을 생성하기 위해 상기 복수의 시프트되는 비트들에서 0들의 선행 수를 카운팅(counting)하는 단계; 및
    상기 출력 값을 생성하기 위해 상기 시프트 양의 최상위 비트를 마스킹(masking)하는 단계를 포함하는, 방법.
  6. 제 5 항에 있어서,
    상기 시프트 양의 최상위 비트를 마스킹하는 단계는 논리 0 값에 커플링되는 제 2 입력을 포함하는 논리 AND 게이트의 제 1 입력에 상기 최상위 비트를 제공하는 단계를 포함하는, 방법.
  7. 프로세서로서,
    정규화 명령을 실행하도록 구성되는 명령 실행 유닛을 포함하고,
    상기 명령 실행 유닛은,
    복수의 비트들을 포함하는 피연산자를 수산하도록 적응되는 입력;
    상기 입력에 커플링되고 복수의 시프트되는 비트들을 생성하기 위해 상기 복수의 비트들을 좌측으로 1만큼 시프트하도록 적응되는 시프터(shifter) 회로; 및
    상기 복수의 시프트되는 비트들을 수신하고 상기 복수의 시프트되는 비트들의 선행 비트들의 수를 카운팅하도록 적응되는 선행 비트 카운팅 회로를 포함하고,
    상기 선행 비트 카운팅 회로는 상기 선행 비트들의 수를 나타내는 카운트 빼기 1을 출력에 제공하는, 프로세서.
  8. 제 7 항에 있어서,
    상기 명령 실행 유닛은 논리 회로를 더 포함하고,
    상기 논리 회로는,
    상기 입력에 커플링되고 상기 피연산자로부터 최상위 비트를 추출하도록 적응되는 최상위 비트 추출 회로; 및
    복수의 배타적 OR 게이트들을 포함하고,
    상기 복수의 배타적 OR 게이트들 각각은,
    상기 최상위 비트를 수신하도록 적응되는 제 1 입력;
    상기 복수의 시프트되는 비트들의 각 비트를 수신하도록 적응되는 제 2 입력; 및
    상기 복수의 시프트되는 비트들의 상기 각 비트의 값 또는 상기 값의 보수(complement)를 제공하도록 적응되는 출력을 포함하는, 프로세서.
  9. 제 8 항에 있어서,
    상기 선행 비트 카운팅 회로는
    상기 복수의 배타적 OR 게이트들의 상기 출력들에 커플링되는 선행 0 카운팅 회로를 포함하고,
    상기 선행 0 카운팅 회로는 상기 복수의 배타적 OR 게이트들의 상기 출력들로부터 수신되는 0들의 선행 수를 카운팅하도록 구성되는, 프로세서.
  10. 제 9 항에 있어서,
    상기 선행 비트들의 수를 나타내는 상기 카운트 빼기 1의 최상위 비트를 마스킹하도록 적응되는 마스크 회로를 더 포함하는, 프로세서.
  11. 제 7 항에 있어서,
    상기 피연산자가 0의 값을 가질 때를 결정하도록 구성되고 상기 출력에 0 값을 제공하기 위해 제어 신호를 생성하도록 구성되는 논리 회로를 더 포함하는, 프로세서.
  12. 제 11 항에 있어서,
    상기 제어 회로에 응답적이고 상기 제어 회로로부터의 제어 신호에 응답하여 상기 출력에 0 값을 생성하도록 적응되는 0 회로를 더 포함하는, 프로세서.
  13. 제 7 항에 있어서,
    상기 시프터 회로는 양방향 시프터 회로를 포함하는, 프로세서.
  14. 입력 값을 정규화하기 위해 프로세서에 의해 실행가능한 명령으로서,
    상기 명령은,
    입력의 값을 결정하기 위해 실행 유닛에 의해 실행가능한 제 1 명령;
    상기 입력에서 상기 결정되는 값이 0이면 0 출력을 생성하기 위해 상기 실행 유닛에 의해 실행가능한 제 2 명령; 및
    상기 결정되는 값이 0이 아니면 비트들의 선행 수의 카운트 빼기 1을 나타내는 정규화 양을 생성하기 위해 상기 실행 유닛에 의해 실행가능한 제 3 명령
    을 포함하는, 입력 값을 정규화하기 위해 프로세서에 의해 실행가능한 명령.
  15. 제 14 항에 있어서,
    상기 0 출력 또는 상기 카운트는 프로세서의 단일 명령 사이클 내에 생성되는,
    입력 값을 정규화하기 위해 프로세서에 의해 실행가능한 명령.
  16. 제 14 항에 있어서,
    상기 실행 유닛은 상기 0 출력을 생성하고 상기 정규화 양을 생성하도록 적응되는 정규화 논리 회로를 포함하는,
    입력 값을 정규화하기 위해 프로세서에 의해 실행가능한 명령.
  17. 제 14 항에 있어서,
    상기 카운트는 상기 입력의 크기(magnitude)를 나타내는,
    입력 값을 정규화하기 위해 프로세서에 의해 실행가능한 명령.
  18. 정규화 논리 회로에서 복수의 비트들을 포함하는 피연산자를 수신하는 단계;
    시프트되는 복수의 비트들을 생성하기 위해 상기 복수의 비트들을 좌측으로 1 비트만큼 시프트하는 단계;
    상기 시프트되는 복수의 비트들의 최하위 비트에 0 값을 삽입하는 단계;
    상기 시프트되는 복수의 비트들에서 비트들의 선행 수를 카운팅하는 단계; 및
    상기 수신되는 복수의 비트들이 0이 아닌 값을 가지면 상기 비트들의 선행 수를 나타내는 카운트 빼기 1을 출력하는 단계
    를 포함하는, 방법.
  19. 제 18 항에 있어서,
    상기 비트들의 선행 수를 카운팅하는 단계는,
    상기 수신되는 복수의 비트들의 상기 최상위 비트를 추출하는 단계;
    상기 수신되는 복수의 비트들의 최상위 비트가 1 값을 가지면 보수화되는 복수의 비트들을 생성하기 위해 상기 시프트되는 복수의 비트들을 보수화하는 단계; 및
    상기 보수화되는 복수의 비트들에서 0들의 선행 수를 카운팅하는 단계를 포함하는, 방법.
  20. 제 18 항에 있어서,
    상기 비트들의 선행 수를 카운팅하는 단계는 상기 시프트되는 복수의 비트들에서 0들의 선행 수를 카운팅하는 단계를 포함하는, 방법
  21. 제 18 항에 있어서,
    상기 수신되는 피연산자가 0 값을 나타내면 출력에서 0 값을 제공하는 단계를 더 포함하는, 방법.
  22. 프로세서로서,
    복수의 비트들을 포함하는 피연산자를 수신하기 위한 수단;
    상기 피연산자의 값이 0과 같으면 0 출력을 생성하기 위한 수단; 및
    상기 피연산자의 상기 값이 0과 같지 않으면, 상기 피연산자의 선행 비트들의 카운트보다 1 작은 수를 나타내는 출력 값을 생성하기 위한 수단
    을 포함하는, 프로세서.
  23. 제 22 항에 있어서,
    단일 실행 사이클 내에서 프로세서의 실행 유닛에 의해 실행가능한 정규화 명령을 수신하기 위한 수단을 더 포함하는, 프로세서.
  24. 제 22 항에 있어서,
    상기 0 출력을 생성하는 것은,
    상기 수신되는 피연산자의 값을 결정하기 위한 수단; 및
    상기 결정되는 값이 0이면 실행 유닛의 출력에서 0 값을 제공하기 위한 논리 신호를 생성하기 위한 수단을 포함하는, 프로세서.
  25. 제 22 항에 있어서,
    상기 피연산자의 선행 비트들의 상기 카운트 빼기 1을 나타내는 출력 값을 생성하는 것은,
    상기 피연산자로부터 최상위 비트를 추출하기 위한 수단;
    복수의 시프트되는 비트들을 생성하기 위해 상기 피연산자의 잔여 비트들을 좌측으로 1 비트만큼 시프트하기 위한 수단;
    상기 복수의 시프트되는 비트들의 최하위 비트에 0 값을 삽입하기 위한 수단;
    시프트 양을 생성하기 위해 상기 복수의 시프트되는 비트들에서 0의 선행 수를 카운팅하기 위한 수단; 및
    상기 카운트를 생성하기 위해 상기 시프트 양의 최상위 비트를 마스크하기 위한 수단을 포함하는, 프로세서
KR1020107017660A 2008-01-09 2009-01-09 정규화 카운트를 결정하는 프로세서 및 방법 KR101252739B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/971,230 US8631056B2 (en) 2008-01-09 2008-01-09 Processor and method of determining a normalization count
US11/971,230 2008-01-09
PCT/US2009/030537 WO2009089410A2 (en) 2008-01-09 2009-01-09 Processor and method of determining a normalization count

Publications (2)

Publication Number Publication Date
KR20100105765A true KR20100105765A (ko) 2010-09-29
KR101252739B1 KR101252739B1 (ko) 2013-04-12

Family

ID=40749257

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107017660A KR101252739B1 (ko) 2008-01-09 2009-01-09 정규화 카운트를 결정하는 프로세서 및 방법

Country Status (6)

Country Link
US (1) US8631056B2 (ko)
EP (1) EP2243074B1 (ko)
JP (2) JP2011509491A (ko)
KR (1) KR101252739B1 (ko)
CN (1) CN101911008B (ko)
WO (1) WO2009089410A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102378960B (zh) * 2010-06-22 2014-07-30 日本电气株式会社 半导体集成电路和指数计算方法
US8788549B2 (en) * 2011-05-02 2014-07-22 Saankhya Labs Private Limited Zero overhead block floating point implementation in CPU's
US10592252B2 (en) 2015-12-31 2020-03-17 Microsoft Technology Licensing, Llc Efficient instruction processing for sparse data
US10459727B2 (en) 2015-12-31 2019-10-29 Microsoft Technology Licensing, Llc Loop code processor optimizations
US10915319B2 (en) 2017-05-15 2021-02-09 Google Llc Two dimensional masked shift instruction

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH073653B2 (ja) * 1987-06-30 1995-01-18 三菱電機株式会社 シフタ
JPH01185726A (ja) 1988-01-20 1989-07-25 Matsushita Electric Ind Co Ltd 除算装置
JP3304971B2 (ja) 1990-07-23 2002-07-22 沖電気工業株式会社 絶対値演算回路
US5241490A (en) * 1992-01-06 1993-08-31 Intel Corporation Fully decoded multistage leading zero detector and normalization apparatus
JPH07319671A (ja) 1994-05-26 1995-12-08 Fujitsu Ltd 除算または剰余の前処理方法および除算または剰余の前処理装置
US5844826A (en) * 1996-10-18 1998-12-01 Samsung Electronics Co., Ltd. Leading zero count circuit
US6260054B1 (en) 1998-10-29 2001-07-10 Neomagic Corp. Reciprocal generator using piece-wise-linear segments of varying width with floating-point format
US6795839B2 (en) 2000-11-30 2004-09-21 Stmicroelectronics, Inc. Method and device for computing the number of bits set to one in an arbitrary length word
US6788268B2 (en) * 2001-06-12 2004-09-07 Ipr Licensing, Inc. Method and apparatus for frequency selective beam forming
JP3640643B2 (ja) 2002-01-18 2005-04-20 沖電気工業株式会社 べき数エンコーダ回路及びマスク回路
US7062525B1 (en) 2002-08-30 2006-06-13 Lsi Logic Corporation Circuit and method for normalizing and rounding floating-point results and processor incorporating the circuit or the method
US7392273B2 (en) 2002-12-20 2008-06-24 International Business Machines Corporation High-sticky calculation in pipelined fused multiply/add circuitry
US7461117B2 (en) 2005-02-11 2008-12-02 International Business Machines Corporation Floating point unit with fused multiply add and method for calculating a result with a floating point unit
US7610472B2 (en) * 2005-06-05 2009-10-27 Apple Inc. Performing variable and/or bitwise shift operation for a shift instruction that does not provide a variable or bitwise shift option

Also Published As

Publication number Publication date
US8631056B2 (en) 2014-01-14
JP2014132485A (ja) 2014-07-17
EP2243074A2 (en) 2010-10-27
CN101911008A (zh) 2010-12-08
JP2011509491A (ja) 2011-03-24
JP5735150B2 (ja) 2015-06-17
KR101252739B1 (ko) 2013-04-12
WO2009089410A3 (en) 2009-09-03
CN101911008B (zh) 2016-08-10
US20090177724A1 (en) 2009-07-09
EP2243074B1 (en) 2018-12-19
WO2009089410A2 (en) 2009-07-16

Similar Documents

Publication Publication Date Title
JP6487097B2 (ja) 命令に応じた丸め処理の実行
US7725519B2 (en) Floating-point processor with selectable subprecision
AU2018388451B2 (en) System and method of floating point multiply operation processing
KR101252739B1 (ko) 정규화 카운트를 결정하는 프로세서 및 방법
CN107851007B (zh) 宽数据类型的比较的方法和装置
JP2006154979A (ja) 浮動小数点数演算回路
KR101283423B1 (ko) 표 내에 있는 엘리먼트의 주소를 결정하는 시스템과 방법
WO2013036950A1 (en) Instruction packet including multiple instructions having a common destination
CN106997284B (zh) 实现浮点运算操作的方法和装置
US9213524B2 (en) Method and device for generating floating-point values
JP2006072961A (ja) 演算処理装置のメモリ回路
CN112394904A (zh) 一种浮点数据处理方法、运算器及电子设备
US20180046459A1 (en) Data processing
US9747074B2 (en) Division circuit and microprocessor
KR20010091260A (ko) 데이터 프로세싱 시스템의 익스포넌트 유닛

Legal Events

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

Payment date: 20160330

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee