RU2008147911A - Итерационное арифметико-логическое устройство с контролируемой точностью - Google Patents

Итерационное арифметико-логическое устройство с контролируемой точностью Download PDF

Info

Publication number
RU2008147911A
RU2008147911A RU2008147911/09A RU2008147911A RU2008147911A RU 2008147911 A RU2008147911 A RU 2008147911A RU 2008147911/09 A RU2008147911/09 A RU 2008147911/09A RU 2008147911 A RU2008147911 A RU 2008147911A RU 2008147911 A RU2008147911 A RU 2008147911A
Authority
RU
Russia
Prior art keywords
result
precision
rounding
processor
lsb
Prior art date
Application number
RU2008147911/09A
Other languages
English (en)
Other versions
RU2413972C2 (ru
Inventor
Кеннет Алан ДОКСЕР (US)
Кеннет Алан ДОКСЕР
Original Assignee
Квэлкомм Инкорпорейтед (US)
Квэлкомм Инкорпорейтед
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 Квэлкомм Инкорпорейтед (US), Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед (US)
Publication of RU2008147911A publication Critical patent/RU2008147911A/ru
Application granted granted Critical
Publication of RU2413972C2 publication Critical patent/RU2413972C2/ru

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
    • 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
    • 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/49942Significance control
    • 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • 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/46Multiprogramming arrangements
    • 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/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/49942Significance control
    • G06F7/49947Rounding

Landscapes

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

Abstract

1. Способ выполнения итерационной арифметической операции в процессоре, содержащий этапы, на которых ! итерационно обрабатывают операнды первой точности для получения результата; и ! завершают итерационную обработку, когда результат достигает запрограммированной второй точности, меньшей, чем первая точность. ! 2. Способ по п.1, дополнительно содержащий этап, на котором заполняют результат так, что заполненный результат имеет битовую ширину, соответствующую первой точности. ! 3. Способ по п.2, в котором этап, на котором заполняют результат так, что заполненный результат имеет битовую ширину, соответствующую первой точности, содержит этап, на котором добавляют один или более битов логических нулей к результату. ! 4. Способ по п.1, дополнительно содержащий этап, на котором хранят результат в регистре, имеющем битовую ширину меньшую, чем первая точность. ! 5. Способ по п.1, дополнительно содержащий этап, на котором отбрасывают один или более наименее значащих бит (LSB) операндов перед началом итерационной обработки таким образом, что отброшенные операнды имеют точность меньшую, чем первая точность и больше или равную запрограммированной второй точности. ! 6. Способ по п.5, в котором этап, на котором отбрасывают один или более LSB операнда, содержит этап маскирования одного или более LSB операнда. ! 7. Способ по п.1, дополнительно содержащий этап, на котором округляют результат. ! 8. Способ по п.7, в котором этап, на котором округляют результат, содержит ! этап выравнивания округленного значения, с наименее значащим битом (LSB) результата; и ! этап условного добавления выровненного значения окружения результату. ! 9. Способ по п.8, в кото

Claims (33)

1. Способ выполнения итерационной арифметической операции в процессоре, содержащий этапы, на которых
итерационно обрабатывают операнды первой точности для получения результата; и
завершают итерационную обработку, когда результат достигает запрограммированной второй точности, меньшей, чем первая точность.
2. Способ по п.1, дополнительно содержащий этап, на котором заполняют результат так, что заполненный результат имеет битовую ширину, соответствующую первой точности.
3. Способ по п.2, в котором этап, на котором заполняют результат так, что заполненный результат имеет битовую ширину, соответствующую первой точности, содержит этап, на котором добавляют один или более битов логических нулей к результату.
4. Способ по п.1, дополнительно содержащий этап, на котором хранят результат в регистре, имеющем битовую ширину меньшую, чем первая точность.
5. Способ по п.1, дополнительно содержащий этап, на котором отбрасывают один или более наименее значащих бит (LSB) операндов перед началом итерационной обработки таким образом, что отброшенные операнды имеют точность меньшую, чем первая точность и больше или равную запрограммированной второй точности.
6. Способ по п.5, в котором этап, на котором отбрасывают один или более LSB операнда, содержит этап маскирования одного или более LSB операнда.
7. Способ по п.1, дополнительно содержащий этап, на котором округляют результат.
8. Способ по п.7, в котором этап, на котором округляют результат, содержит
этап выравнивания округленного значения, с наименее значащим битом (LSB) результата; и
этап условного добавления выровненного значения окружения результату.
9. Способ по п.8, в котором этап выравнивания значения округления с LSB результата содержит этап сдвига значения округления таким образом, что значение округления имеет одну логическую единицу, расположенную в позиции бита, соответствующей LSB результата.
10. Способ по п.8, в котором этап выравнивания значения округления LSB результата, содержит этап декодирования запрограммированной второй точности, чтобы получить округленный операнд.
11. Способ по п.1, дополнительно содержащий этап изменения запрограммированной второй точности, в ответ на изменение содержимого регистра, содержащегося в процессоре.
12. Способ по п.1, дополнительно содержащий этап изменения запрограммированной второй точности, в ответ на одну или более инструкций, полученных процессором.
13. Итерационное арифметико-логическое устройство для использования в процессоре, содержащее
арифметико-логическую схему, выполненную с возможностью итерационно обрабатывать операнды первой точности, для получения результата; и
схему контроля точности, выполненную с возможностью завершать итерационную обработку, когда результат достигает запрограммированной второй точности, меньшей, чем первая точность.
14. Итерационное арифметико-логическое устройство по п.13, в котором арифметико-логическая схема дополнительно выполнена с возможностью заполнения результата таким образом, что заполненный результат имеет битовую ширину, соответствующую первой точности.
15. Итерационное арифметико-логическое устройство по п.14, в котором арифметико-логическая схема выполнена с возможностью заполнения результата таким образом, что заполненный результат имеет битовую ширину соответствующую первой точности, путем добавления одного или более битов логических нулей к результату.
16. Итерационное арифметико-логическое устройство по п.13, в котором арифметико-логическая схема отбрасывает один или несколько наименее значащих битов (LSB) операндов таким образом, что отброшенные операнды имеют точность меньше, чем первая точность и больше или равную запрограммированной второй точности.
17. Итерационное арифметико-логическое устройство по п.16, в котором арифметико-логическая схема выполнена с возможностью отбрасывания одного или более LSB операнда путем маскирования одного или более LSB операнда.
18. Итерационное арифметико-логическое устройство по п.13, дополнительно содержащее логику округления, выполненную с возможностью округления результата.
19. Итерационное арифметико-логическое устройство по п.18, в котором логика округления выполнена с возможностью округления результата путем выравнивания значения округления с наименее значащими битами (LSB) результата условного добавления выровненного значения округления к результату.
20. Итерационное арифметико-логическое устройство по п.19, в котором логика округления выполнена с возможностью выравнивания значения округления LSB результата посредством сдвига значения округления таким образом, что значение округления имеет одну логическую единицу, расположенную в позиции бита, соответствующего LSB результата.
21. Итерационное арифметико-логическое устройство по п.19, в котором логика округления выполнена с возможностью выравнивания значения округления LSB результата путем декодирования запрограммированной второй точности, чтобы получить округленный операнд.
22. Итерационное арифметико-логическое устройство по п.13, в котором схема контроля точности выполнена с возможностью завершения итерационной обработки в ответ на индикатор, полученный схемой контроля точности.
23. Процессор, содержащий итерационное арифметико-логическое устройство, выполненное с возможностью итерационной обработки операндов первой точности для получения результата и завершения итерационной обработки, когда результат достигнет запрограммированной второй точности, меньшей чем первая точность.
24. Процессор по п.23, в котором итерационное арифметико-логическое устройство дополнительно выполнено с возможностью заполнения результата таким образом, что заполненный результат имеет битовую ширину соответствующую первой точности.
25. Процессор по п.23, дополнительно содержащий регистр для хранения результата, при этом регистр имеет битовую ширину меньше, чем первая точность.
26. Процессор по п.23, в котором итерационное арифметико-логическое устройство дополнительно выполнено с возможностью округления результата.
27. Процессор по п.26, в котором итерационное арифметико-логическое устройство выполнения возможности округления результата, посредством выравнивания округленного значения наименее значащим битом (LSB) результата и условного добавления выровненного значения округления к результату.
28. Процессор по п.27, в котором итерационное арифметико-логическое устройство выполнено с возможностью выравнивания значения округления с LSB результата путем сдвига значения округления таким образом, что значение округления имеет логическую единицу, расположенную в позиции бита, соответствующей LSB результата.
29. Процессор по п.27, в котором итерационное арифметико-логическое устройство выполнено с возможностью выравнивания значения округления с LSB результата, посредством декодирования запрограммированной второй точности для получения округляющего операнда.
30. Процессор по п.23, дополнительно содержащий элемент запоминающего устройства, выполненный с возможностью хранения запрограммированной второй точности как фиксированного значения или как динамически изменяемого значения.
31. Процессор по п.30, в котором сохраненное динамически изменяемое значение изменяется в ответ на одну или более инструкций, полученных процессором.
32. Процессор по п.23, в котором арифметико-логическое устройство завершает итерационную обработку в ответ на индикатор, полученный процессором.
33. Процессор по п.32, в котором индикатор содержит флаговый бит, сохраненный в регистре, содержащемся в процессоре.
RU2008147911/08A 2006-05-05 2007-04-20 Итерационное арифметико-логическое устройство с контролируемой точностью RU2413972C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/381,870 2006-05-05
US11/381,870 US9146706B2 (en) 2006-05-05 2006-05-05 Controlled-precision iterative arithmetic logic unit

Publications (2)

Publication Number Publication Date
RU2008147911A true RU2008147911A (ru) 2010-06-10
RU2413972C2 RU2413972C2 (ru) 2011-03-10

Family

ID=38662342

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2008147911/08A RU2413972C2 (ru) 2006-05-05 2007-04-20 Итерационное арифметико-логическое устройство с контролируемой точностью

Country Status (11)

Country Link
US (1) US9146706B2 (ru)
EP (1) EP2021916A2 (ru)
JP (2) JP5102288B2 (ru)
KR (1) KR20090007478A (ru)
CN (1) CN101432689B (ru)
BR (1) BRPI0711301A2 (ru)
CA (1) CA2649857C (ru)
MX (1) MX2008014047A (ru)
RU (1) RU2413972C2 (ru)
TW (1) TWI350990B (ru)
WO (1) WO2007130803A2 (ru)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100125621A1 (en) * 2008-11-20 2010-05-20 Advanced Micro Devices, Inc. Arithmetic processing device and methods thereof
US8495121B2 (en) * 2008-11-20 2013-07-23 Advanced Micro Devices, Inc. Arithmetic processing device and methods thereof
CN103069381B (zh) * 2010-07-01 2016-06-01 瑞典爱立信有限公司 循环浮点数生成器、循环浮点数加法器、生成循环浮点数方法及循环浮点数相加方法
CN104040482B (zh) 2011-12-28 2018-02-16 英特尔公司 用于在打包数据元素上执行增量解码的系统、装置和方法
CN104025025B (zh) 2011-12-28 2018-08-28 英特尔公司 用于对打包数据元素执行增量编码的系统、装置和方法
RU2610247C1 (ru) * 2015-10-19 2017-02-08 Олег Александрович Козелков Многофункциональное логическое устройство
US10296292B2 (en) * 2016-10-20 2019-05-21 Advanced Micro Devices, Inc. Dynamic variable precision computation
CN107038016B (zh) * 2017-03-29 2019-11-15 广州酷狗计算机科技有限公司 一种基于gpu的浮点数转换方法及装置
US10684824B2 (en) 2018-06-06 2020-06-16 Nvidia Corporation Stochastic rounding of numerical values

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3434114A (en) * 1966-09-23 1969-03-18 Ibm Variable floating point precision
US3626427A (en) * 1967-01-13 1971-12-07 Ibm Large-scale data processing system
JPS5378742A (en) * 1976-12-23 1978-07-12 Toshiba Corp Multiplication control system
US4276607A (en) * 1979-04-09 1981-06-30 Sperry Rand Corporation Multiplier circuit which detects and skips over trailing zeros
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
US4823260A (en) 1987-11-12 1989-04-18 Intel Corporation Mixed-precision floating point operations from a single instruction opcode
US5249149A (en) 1989-01-13 1993-09-28 International Business Machines Corporation Method and apparatus for performining floating point division
DE68926289T2 (de) 1989-01-13 1996-10-10 Ibm Gleitkommadivisions-Verfahren und -Anordnung
JPH03245226A (ja) 1990-02-22 1991-10-31 Matsushita Electric Ind Co Ltd 浮動小数点乗算装置
US5128889A (en) 1990-02-22 1992-07-07 Matsushita Electric Industrial Co., Ltd. Floating-point arithmetic apparatus with compensation for mantissa truncation
JP2943255B2 (ja) * 1990-06-25 1999-08-30 日本電気株式会社 逆数算出回路
JP3199371B2 (ja) * 1990-07-30 2001-08-20 松下電器産業株式会社 丸め装置
JPH0823812B2 (ja) 1990-08-24 1996-03-06 松下電器産業株式会社 浮動小数点データの演算方法および演算装置
EP0472148B1 (en) 1990-08-24 2001-05-09 Matsushita Electric Industrial Co., Ltd. Method and apparatus for computing floating point data
US5268855A (en) 1992-09-14 1993-12-07 Hewlett-Packard Company Common format for encoding both single and double precision floating point numbers
GB2287333B (en) * 1994-03-11 1998-02-11 Advanced Risc Mach Ltd Data processing multiplier
WO1995031767A1 (en) * 1994-05-11 1995-11-23 Vlsi Technology, Inc. Floating-point processor with apparent-precision based selection of execution-precision
US6108772A (en) * 1996-06-28 2000-08-22 Intel Corporation Method and apparatus for supporting multiple floating point processing models
US6029243A (en) * 1997-09-19 2000-02-22 Vlsi Technology, Inc. Floating-point processor with operand-format precision greater than execution precision
US6490607B1 (en) 1998-01-28 2002-12-03 Advanced Micro Devices, Inc. Shared FP and SIMD 3D multiplier
US6487575B1 (en) 1998-08-31 2002-11-26 Advanced Micro Devices, Inc. Early completion of iterative division
US6173303B1 (en) * 1998-11-06 2001-01-09 National Semiconductor Corp. Multiply circuit and method that detects portions of operands whose partial products are superfluous and modifies partial product manipulation accordingly
US7237097B2 (en) * 2001-02-21 2007-06-26 Mips Technologies, Inc. Partial bitwise permutations
RU2276805C2 (ru) 2001-07-13 2006-05-20 Интел Зао Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой
US6922714B2 (en) 2002-05-09 2005-07-26 International Business Machines Corporation Floating point unit power reduction scheme
NZ524378A (en) * 2003-02-24 2004-12-24 Tait Electronics Ltd Binary shift and subtract divider for phase lock loops
JP2004310432A (ja) 2003-04-07 2004-11-04 Casio Comput Co Ltd 演算装置及びプログラム

Also Published As

Publication number Publication date
US20070260662A1 (en) 2007-11-08
EP2021916A2 (en) 2009-02-11
RU2413972C2 (ru) 2011-03-10
US9146706B2 (en) 2015-09-29
KR20090007478A (ko) 2009-01-16
JP5102288B2 (ja) 2012-12-19
CA2649857C (en) 2016-01-05
CA2649857A1 (en) 2007-11-15
JP2012022691A (ja) 2012-02-02
JP5307202B2 (ja) 2013-10-02
CN101432689A (zh) 2009-05-13
BRPI0711301A2 (pt) 2011-11-22
WO2007130803A3 (en) 2008-06-26
CN101432689B (zh) 2014-04-02
WO2007130803A2 (en) 2007-11-15
TWI350990B (en) 2011-10-21
TW200821916A (en) 2008-05-16
JP2009536409A (ja) 2009-10-08
MX2008014047A (es) 2008-11-14

Similar Documents

Publication Publication Date Title
RU2008147911A (ru) Итерационное арифметико-логическое устройство с контролируемой точностью
KR101651911B1 (ko) 수축 압축을 위한 고속의 고도로 압축된 lz77 토큰화 및 허프만 인코딩을 위한 병렬 장치
CN108292222B (zh) 用于数据解压缩的硬件装置和方法
US8051226B2 (en) Circular buffer support in a single instruction multiple data (SIMD) data processor
CN104820580B (zh) 改进的返回堆栈缓存
CN111262588B (zh) 数据压缩和存储
US11868775B2 (en) Encoding and decoding variable length instructions
CN107925420B (zh) 用于经优化压缩比的异构压缩架构
US10664280B2 (en) Fetch ahead branch target buffer
US7895417B2 (en) Select-and-insert instruction within data processing systems
EP2130132B1 (en) Dsp including a compute unit with an internal bit fifo circuit
US10083034B1 (en) Method and apparatus for prefix decoding acceleration
CN108028665A (zh) 用于使用硬件和软件进行压缩的系统、方法和装置
US20200099958A1 (en) Efficient length limiting of compression codes
US11669305B2 (en) Trailing or leading digit anticipator
US9998149B2 (en) Constant hamming weight coding
US20040021591A1 (en) Processor, encoder, decoder, and electronic apparatus
US20140089361A1 (en) Arithmetic processing apparatus and an arithmetic processing method
ES2725800T3 (es) Sistema y procedimiento para determinar una dirección de un elemento dentro de una tabla
US11126663B2 (en) Method and apparatus for energy efficient decompression using ordered tokens
US8572147B2 (en) Method for implementing a bit-reversed increment in a data processing system
US20210182359A1 (en) Three-dimensional lane predication for matrix operations
JPWO2006030639A1 (ja) バレルシフト装置
US20190102199A1 (en) Methods and systems for executing vectorized pythagorean tuple instructions
US9747074B2 (en) Division circuit and microprocessor

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190421