JP2011509491A - 正規化カウントを判定するプロセッサ及び方法 - Google Patents
正規化カウントを判定するプロセッサ及び方法 Download PDFInfo
- Publication number
- JP2011509491A JP2011509491A JP2010542362A JP2010542362A JP2011509491A JP 2011509491 A JP2011509491 A JP 2011509491A JP 2010542362 A JP2010542362 A JP 2010542362A JP 2010542362 A JP2010542362 A JP 2010542362A JP 2011509491 A JP2011509491 A JP 2011509491A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- value
- zero
- operand
- count
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000010606 normalization Methods 0.000 claims abstract description 85
- 230000000295 complement effect Effects 0.000 claims description 10
- 230000000873 masking effect Effects 0.000 claims description 6
- 238000000605 extraction Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000002457 bidirectional effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation 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)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Measuring Frequencies, Analyzing Spectra (AREA)
Abstract
Description
表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を減じられて、デスティネーション・レジスタに記憶される。
Claims (25)
- 正規化ロジック回路において正規化されるべきオペランド(該オペランドは複数のビットを含む)を受信することと、
前記オペランドの値が0に等しい場合に、0出力を生成することと、
前記値が0に等しくない場合に、前記オペランドの先行ビットのカウントより1少ない数を表す出力値を生成することを含む方法。 - プロセッサの実行ユニットにより実行可能である正規化命令を受信することを更に含む請求項1の方法。
- 前記オペランドは、前記正規化命令の受信後に、受信される請求項2の方法。
- 前記0出力を生成することは、
前記受信されたオペランドが0の値を持つことを判定することと、
正規化ロジック回路の出力において0値を与えるための論理信号を生成することを更に含む請求項1の方法。 - 前記オペランドの先行ビットの前記カウントより1少ない前記数を表す出力値を生成することは、
前記オペランドから最上位ビットを抽出することと、
複数のシフトされたビットを生成するために、前記オペランドの前記複数のビットのうちの残りのビットを左側へ1ビットシフトすることと、
前記複数のシフトされたビットの最下位ビットに0値を挿入することと、
シフト量を生成するために、前記複数のシフトされたビットにおける0の先行数をカウントすることと、
出力値を生成するために、前記シフト量の最上位ビットをマスクすることを含む請求項1の方法。 - 前記シフト量の前記最上位ビットをマスクすることは、論理0値に結合される第2の入力を含む論理ANDゲートの入力に対して前記最上位ビットを供給することを含む請求項5の方法。
- 正規化命令を実行するように構成された命令実行ユニットを含むプロセッサにおいて、
前記命令実行ユニットは、
複数のビットを含むオペランドを受信するように構成された入力と、
複数のシフトされたビットを生成するために、前記入力に接続され且つ前記複数のビットを左側に1ビットシフトするように構成されたシフター回路と、
前記複数のシフトされたビットを受信し且つ前記複数のシフトされたビットの先行ビットの数をカウントするように構成された先行ビット・カウント回路(該先行ビット・カウント回路は、先行ビットの数から1を減じた値を表すカウントを出力へ供給する)とを含むプロセッサ。 - 前記命令実行ユニットは、
前記入力に接続され且つ前記オペランドから最上位ビットを抽出するように構成された最上位ビット抽出回路と、
複数の排他的ORゲート(前記複数の排他的ORゲートの各々は、前記最上位ビットを受信するように構成された第1の入力、前記複数のシフトされたビットのそれぞれの一つを受信するように構成された第2の入力、及び、前記複数のシフトされたビットのそれぞれの一つの値又は前記値の補数を供給するように構成された出力を含む)とを含むロジック回路を更に含む請求項7のプロセッサ。 - 前記先行ビット・カウント回路は、前記複数の排他的ORゲートの前記出力に接続された先行0カウント回路を含み、該先行0カウント回路は、前記複数の排他的ORゲートの前記出力から受信される0の先行数をカウントするように構成されるの請求項8のプロセッサ。
- 前記先行ビットの数から1を減じた値を表す前記カウントの最上位ビットをマスクするように構成されたマスク回路を更に含む請求項9のプロセッサ。
- 前記オペランドが0の値を持つかどうか判定するように構成され且つ前記出力において0値を供給するための制御信号を生成するように構成された制御回路を更に含む請求項7のプロセッサ。
- 前記制御回路に応答し且つ前記制御回路からの制御信号に応答して前記出力において0値を供給するように構成されたゼロ回路を更に含む請求項11のプロセッサ。
- 前記シフター回路は、双方向シフター回路である請求項7の回路デバイス。
- 入力値を正規化するプロセッサにより実行可能な命令において、前記命令は、
入力の値を判定する実行ユニットにより実行可能な第1の命令と、
前記入力における前記判定された値が0である場合に0出力を生成する実行ユニットにより実行可能な第2の命令と、
前記判定された値が非0である場合にビットの先行数のカウントから1を減じた値を表する正規化量を生成する実行ユニットにより実行可能な第3の命令とを含む命令。 - 前記0出力又は前記カウントは、プロセッサの単一の命令サイクルにおいて生成される請求項14の命令。
- 前記実行ユニットは、前記0出力を生成するように且つ前記正規化量を生成するように構成された正規化ロジック回路を含む請求項14の命令。
- 前記カウントは、入力の大きさを表す請求項14の正規化量命令。
- 正規化ロジック回路において複数のビットを含むオペランドを受信することと、
シフトされた複数のビットを生成するために、前記複数のビットを左側に1ビットシフトすることと、
前記シフトされた複数のビットの最下位ビットに0値を挿入することと、
前記シフトされた複数のビットにおけるビットの先行数をカウントすることと、
前記受信された複数のビットが非0の値を持つ場合に前記ビットの先行数から1を減じた値を表すカウントを出力することを含む方法。 - 前記ビットの先行数を数えることは、
前記受信された複数のビットの前記最上位ビットを抽出することと、
前記受信された複数のビットの最上位ビットが1値を持つ場合に、相補の複数のビットを生成するために、前記シフトされた複数のビットの補数演算をすることと、
前記相補の複数のビットにおける0の先行数をカウントすることを含む請求項18の方法。 - 前記ビットの先行数をカウントすることは、前記シフトされた複数のビットにおける0の先行数をカウントすることを含む請求項18の方法。
- 前記受信されたオペランドが0値を表す場合に、出力において0値を供給することを更に含む請求項18の方法。
- 複数のビットを含むオペランドを受信するための手段と、
前記オペランドの値が0に等しい場合に、0出力を生成するための手段と、
前記オペランドの値が0に等しくない場合に、前記オペランドの先行ビットのカウントより1少ない数を表す出力値を生成するための手段とを含むプロセッサ。 - 単一の実行サイクルにおいてプロセッサの実行ユニットにより実行可能である正規化命令を受信するための手段を更に含む請求項22のプロセッサ。
- 前記0出力を生成することは、
前記受信されたオペランドの値を判定するための手段と、
前記判定された値が0である場合に、実行ユニットの出力において0値を供給するための論理信号を生成するための手段とを更に含む請求項22のプロセッサ。 - 前記オペランドの先行ビットの前記カウントから1を減じた値を表す出力値を生成することは、
前記オペランドから最上位ビットを抽出するための手段と、
複数のシフトされたビットを生成するために、前記オペランドの残りのビットを左側に1ビットシフトするための手段と、
前記複数のシフトされたビットの最下位ビットに0値を挿入するための手段と、
シフト量を生成するために、前記複数のシフトされたビットにおける0の先行数をカウントするための手段と、
前記カウントを生成するために、前記シフト量の最上位ビットをマスクするための手段とを含む請求項22のプロセッサ。
Applications Claiming Priority (2)
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 |
PCT/US2009/030537 WO2009089410A2 (en) | 2008-01-09 | 2009-01-09 | Processor and method of determining a normalization count |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014036985A Division JP5735150B2 (ja) | 2008-01-09 | 2014-02-27 | 正規化カウントを判定するプロセッサ及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011509491A true JP2011509491A (ja) | 2011-03-24 |
Family
ID=40749257
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010542362A Withdrawn JP2011509491A (ja) | 2008-01-09 | 2009-01-09 | 正規化カウントを判定するプロセッサ及び方法 |
JP2014036985A Expired - Fee Related JP5735150B2 (ja) | 2008-01-09 | 2014-02-27 | 正規化カウントを判定するプロセッサ及び方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014036985A Expired - Fee Related JP5735150B2 (ja) | 2008-01-09 | 2014-02-27 | 正規化カウントを判定するプロセッサ及び方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8631056B2 (ja) |
EP (1) | EP2243074B1 (ja) |
JP (2) | JP2011509491A (ja) |
KR (1) | KR101252739B1 (ja) |
CN (1) | CN101911008B (ja) |
WO (1) | WO2009089410A2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8862647B2 (en) * | 2010-06-22 | 2014-10-14 | Nec Corporation | Semiconductor integrated circuit and exponent calculation method |
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 |
KR102688577B1 (ko) * | 2016-09-19 | 2024-07-26 | 삼성전자주식회사 | 전자 장치, vliw 프로세서 및 그 제어 방법들 |
US10915319B2 (en) | 2017-05-15 | 2021-02-09 | Google Llc | Two dimensional masked shift instruction |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01185726A (ja) * | 1988-01-20 | 1989-07-25 | Matsushita Electric Ind Co Ltd | 除算装置 |
JPH0480815A (ja) * | 1990-07-23 | 1992-03-13 | Oki Electric Ind Co Ltd | 絶対値演算回路 |
JPH06236252A (ja) * | 1992-01-06 | 1994-08-23 | Intel Corp | 浮動小数点数の仮数部の先行ゼロの数を検出する先行ゼロ2段及び多段検出ユニット、浮動小数点左シフト仮数正規化ユニット及び先行ゼロの数を検出する方法 |
JPH07319671A (ja) * | 1994-05-26 | 1995-12-08 | Fujitsu Ltd | 除算または剰余の前処理方法および除算または剰余の前処理装置 |
JP2003216410A (ja) * | 2002-01-18 | 2003-07-31 | Oki Electric Ind Co Ltd | べき数エンコーダ回路及びマスク回路 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH073653B2 (ja) * | 1987-06-30 | 1995-01-18 | 三菱電機株式会社 | シフタ |
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 |
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 |
-
2008
- 2008-01-09 US US11/971,230 patent/US8631056B2/en not_active Expired - Fee Related
-
2009
- 2009-01-09 CN CN200980101921.4A patent/CN101911008B/zh not_active Expired - Fee Related
- 2009-01-09 EP EP09700938.5A patent/EP2243074B1/en not_active Not-in-force
- 2009-01-09 KR KR1020107017660A patent/KR101252739B1/ko not_active IP Right Cessation
- 2009-01-09 WO PCT/US2009/030537 patent/WO2009089410A2/en active Application Filing
- 2009-01-09 JP JP2010542362A patent/JP2011509491A/ja not_active Withdrawn
-
2014
- 2014-02-27 JP JP2014036985A patent/JP5735150B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01185726A (ja) * | 1988-01-20 | 1989-07-25 | Matsushita Electric Ind Co Ltd | 除算装置 |
JPH0480815A (ja) * | 1990-07-23 | 1992-03-13 | Oki Electric Ind Co Ltd | 絶対値演算回路 |
JPH06236252A (ja) * | 1992-01-06 | 1994-08-23 | Intel Corp | 浮動小数点数の仮数部の先行ゼロの数を検出する先行ゼロ2段及び多段検出ユニット、浮動小数点左シフト仮数正規化ユニット及び先行ゼロの数を検出する方法 |
JPH07319671A (ja) * | 1994-05-26 | 1995-12-08 | Fujitsu Ltd | 除算または剰余の前処理方法および除算または剰余の前処理装置 |
JP2003216410A (ja) * | 2002-01-18 | 2003-07-31 | Oki Electric Ind Co Ltd | べき数エンコーダ回路及びマスク回路 |
Also Published As
Publication number | Publication date |
---|---|
EP2243074B1 (en) | 2018-12-19 |
WO2009089410A3 (en) | 2009-09-03 |
KR20100105765A (ko) | 2010-09-29 |
JP5735150B2 (ja) | 2015-06-17 |
WO2009089410A2 (en) | 2009-07-16 |
CN101911008A (zh) | 2010-12-08 |
EP2243074A2 (en) | 2010-10-27 |
US20090177724A1 (en) | 2009-07-09 |
CN101911008B (zh) | 2016-08-10 |
JP2014132485A (ja) | 2014-07-17 |
US8631056B2 (en) | 2014-01-14 |
KR101252739B1 (ko) | 2013-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6487097B2 (ja) | 命令に応じた丸め処理の実行 | |
JP5735150B2 (ja) | 正規化カウントを判定するプロセッサ及び方法 | |
US7725519B2 (en) | Floating-point processor with selectable subprecision | |
CN107851007B (zh) | 宽数据类型的比较的方法和装置 | |
JP5490711B2 (ja) | テーブル内のエレメントのアドレスを決定するシステムおよび方法 | |
US10628126B2 (en) | Architecture and instruction set to support integer division | |
US9213524B2 (en) | Method and device for generating floating-point values |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111122 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120222 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120229 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120322 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120329 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120423 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120501 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120522 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130123 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130130 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20130322 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20130329 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130423 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131029 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140227 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20140303 |