RU2225995C2 - Рециркулирующий регистровый файл - Google Patents

Рециркулирующий регистровый файл Download PDF

Info

Publication number
RU2225995C2
RU2225995C2 RU2000132723/09A RU2000132723A RU2225995C2 RU 2225995 C2 RU2225995 C2 RU 2225995C2 RU 2000132723/09 A RU2000132723/09 A RU 2000132723/09A RU 2000132723 A RU2000132723 A RU 2000132723A RU 2225995 C2 RU2225995 C2 RU 2225995C2
Authority
RU
Russia
Prior art keywords
registers
register
data processing
sequence
subset
Prior art date
Application number
RU2000132723/09A
Other languages
English (en)
Other versions
RU2000132723A (ru
Inventor
Кристофер Нил ХИНДЗ (US)
Кристофер Нил ХИНДЗ
Дэвид Вивиан ДЖАГГАР (US)
Дэвид Вивиан ДЖАГГАР
Дэвид Терренс МЭТЕНИ (US)
Дэвид Терренс МЭТЕНИ
Дэвид Джеймс СИЛ (GB)
Дэвид Джеймс СИЛ
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 RU2000132723A publication Critical patent/RU2000132723A/ru
Application granted granted Critical
Publication of RU2225995C2 publication Critical patent/RU2225995C2/ru

Links

Images

Classifications

    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Abstract

Изобретение относится к системам обработки данных, имеющим регистровый банк и поддерживающим векторные операции. Технический результат заключается в повышении эффективности и быстродействия при обработки данных. Устройство для обработки данных содержит регистровый банк со множеством адресуемых регистров и командный декодер, реагирующий на, по меньшей мере, одну команду обработки данных, определяющую векторную операцию, которая многократно выполняет операцию обработки данных, используя значения данных из последовательности регистров в регистровом банке, начиная с исходного регистра, определенного в упомянутой команде обработки данных, при этом регистровый банк включает в себя, по меньшей мере, одно подмножество регистров, а командный декодер выполнен с возможностью управления последовательностью регистров для ее “закольцовывания” в пределах упомянутого подмножества регистров. Способ обработки данных описывает работу устройства. 2 с. и 13 з.п. ф-лы, 17 ил., 33 табл.

Description

Текст описания в факсимильном виде (см. графическую часть).

Claims (15)

1. Устройство для обработки данных, содержащее регистровый банк со множеством адресуемых регистров и командный декодер, реагирующий на, по меньшей мере, одну команду обработки данных, определяющую векторную операцию, которая многократно выполняет операцию обработки данных, используя значения данных из последовательности регистров в упомянутом регистровом банке, начиная с исходного регистра, определенного в упомянутой команде обработки данных, при этом упомянутый регистровый банк включает в себя, по меньшей мере, одно подмножество регистров, причем упомянутая последовательность регистров находится в упомянутом подмножестве и упомянутый командный декодер выполнен с возможностью управлять упомянутой последовательностью регистров для ее "закольцовывания" в пределах упомянутого подмножества регистров.
2. Устройство по п.1, в котором упомянутая векторная операция выполняет упомянутую операцию обработки данных, используя множество соответствующих значений данных из соответствующего множества последовательностей регистров; упомянутый регистровый банк содержит множество подмножеств регистров, причем упомянутое множество последовательностей регистров находится в соответствующих подмножествах; упомянутый командный декодер управляет упомянутыми последовательностями регистров для выполнения "закольцовывания" в пределах соответствующих подмножеств регистров.
3. Устройство по п.2, в котором упомянутое множество подмножеств не пересекается.
4. Устройство по любому из пп.1-3, в котором упомянутое подмножество содержит интервал выборки следующих друг за другом номеров регистров.
5. Устройство по п.2, в котором каждое из упомянутого множества подмножеств содержит интервал выборки следующих друг за другом номеров регистров.
6. Устройство по п.5, в котором упомянутое множество подмножеств содержит соответствующие смежные интервалы выборки следующих друг за другом номеров регистров.
7. Устройство по п.6, которое содержит 4 смежных интервала выборки.
8. Устройство по любому из предыдущих пунктов, которое содержит дополнительно память и контроллер передачи для управления передачами значений данных между упомянутой памятью и регистрами в упомянутом регистровом банке, причем упомянутый контроллер передачи выполнен с возможностью реагировать на множество команд передачи для передачи последовательности значений данных между упомянутой памятью и последовательностью регистров в упомянутом регистровом банке.
9. Устройство по п.6, в котором каждый интервал выборки адресуется через инкрементор, который "закольцовывается" между конечными точками этого интервала выборки.
10. Устройство по любому из предыдущих пунктов, в котором упомянутая последовательность является последовательностью следующих друг за другом регистров.
11. Устройство по любому из предыдущих пунктов, в котором упомянутый регистровый банк и упомянутый командный декодер являются частью блока с плавающей запятой.
12. Способ обработки данных, согласно которому сохраняют значения данных во множестве адресуемых регистров регистрового банка и в ответ на, по меньшей мере, одну команду обработки данных, определяющую векторную операцию, выполняют операцию обработки данных многократно, используя значения данных из последовательности регистров в упомянутом регистровом банке, начиная с исходного регистра, определенного в упомянутой команде обработки данных, при этом упомянутый регистровый банк включает в себя, по меньшей мере, одно подмножество регистров, причем упомянутая последовательность регистров находится в упомянутом подмножестве и во время упомянутого выполнения операции обработки данных упомянутую последовательность регистров "закольцовывают" в пределах упомянутого подмножества регистров.
13. Способ по п.12, в котором при выполнении упомянутой векторной операции для упомянутой операции обработки данных используют многократно соответствующие значения данных из соответствующего множества последовательностей регистров, причем упомянутый регистровый банк содержит множество подмножеств регистров, причем упомянутое множество последовательности регистров находится в соответствующих подмножествах и во время упомянутого выполнения операции обработки данных упомянутое множество последовательностей регистров "закольцовывают" в пределах соответствующих подмножеств регистров.
14. Способ по п.13, в котором значения данных в одной последовательности являются коэффициентами отводов фильтра, а значения данных в другой последовательности являются значениями сигналов для фильтрации упомянутым фильтром.
15. Способ по п.12, в котором множество векторных операций выполняют над значениями данных в упомянутом множестве последовательностей, при этом начальную точку, по меньшей мере, одной последовательности изменяют с каждой векторной операцией.
RU2000132723/09A 1998-05-27 1999-03-09 Рециркулирующий регистровый файл RU2225995C2 (ru)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/085,752 US6189094B1 (en) 1998-05-27 1998-05-27 Recirculating register file
US09/085,752 1998-05-27

Publications (2)

Publication Number Publication Date
RU2000132723A RU2000132723A (ru) 2003-06-27
RU2225995C2 true RU2225995C2 (ru) 2004-03-20

Family

ID=22193713

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2000132723/09A RU2225995C2 (ru) 1998-05-27 1999-03-09 Рециркулирующий регистровый файл

Country Status (6)

Country Link
US (1) US6189094B1 (ru)
KR (1) KR100563220B1 (ru)
CN (1) CN1154947C (ru)
MY (1) MY115481A (ru)
RU (1) RU2225995C2 (ru)
TW (1) TW495679B (ru)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519694B2 (en) * 1999-02-04 2003-02-11 Sun Microsystems, Inc. System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity
US7080183B1 (en) * 2000-08-16 2006-07-18 Koninklijke Philips Electronics N.V. Reprogrammable apparatus supporting the processing of a digital signal stream and method
US7016928B2 (en) * 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US7831652B2 (en) * 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US7444367B2 (en) * 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
US6970898B2 (en) * 2001-05-25 2005-11-29 Sun Microsystems, Inc. System and method for forcing floating point status information to selected values
US7395297B2 (en) * 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7366749B2 (en) * 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US7133890B2 (en) * 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US7430576B2 (en) * 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US7613762B2 (en) * 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US7191202B2 (en) 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US6976050B2 (en) * 2001-05-25 2005-12-13 Sun Microsystems, Inc. System and method for extracting the high part of a floating point operand
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US7228324B2 (en) * 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US6961744B2 (en) * 2001-05-25 2005-11-01 Sun Microsystems, Inc. System and method for generating an integer part of a logarithm of a floating point operand
US7069289B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7363337B2 (en) * 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US7085940B2 (en) * 2002-05-09 2006-08-01 International Business Machines Corporation Floating point unit power reduction via inhibiting register file write during tight loop execution
US7236999B2 (en) * 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US7219117B2 (en) * 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
JP2004302647A (ja) * 2003-03-28 2004-10-28 Seiko Epson Corp ベクトルプロセッサおよびレジスタのアドレス指定方法
US20060179273A1 (en) * 2005-02-09 2006-08-10 Advanced Micro Devices, Inc. Data processor adapted for efficient digital signal processing and method therefor
US8352241B2 (en) * 2009-02-26 2013-01-08 Microsoft Corporation Emulating legacy hardware using IEEE 754 compliant hardware
CN112463219A (zh) * 2011-04-01 2021-03-09 英特尔公司 向量友好指令格式及其执行
US10157061B2 (en) 2011-12-22 2018-12-18 Intel Corporation Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks
US9037835B1 (en) * 2013-10-24 2015-05-19 Arm Limited Data processing method and apparatus for prefetching
US9792118B2 (en) * 2013-11-15 2017-10-17 Qualcomm Incorporated Vector processing engines (VPEs) employing a tapped-delay line(s) for providing precision filter vector processing operations with reduced sample re-fetching and power consumption, and related vector processor systems and methods
US9898398B2 (en) 2013-12-30 2018-02-20 Microsoft Technology Licensing, Llc Re-use of invalidated data in buffers
US9430508B2 (en) 2013-12-30 2016-08-30 Microsoft Technology Licensing, Llc Disk optimized paging for column oriented databases
US9723054B2 (en) 2013-12-30 2017-08-01 Microsoft Technology Licensing, Llc Hierarchical organization for scale-out cluster
US9557995B2 (en) * 2014-02-07 2017-01-31 Arm Limited Data processing apparatus and method for performing segmented operations
US10255072B2 (en) 2016-07-01 2019-04-09 Intel Corporation Architectural register replacement for instructions that use multiple architectural registers
FR3083350B1 (fr) * 2018-06-29 2021-01-01 Vsora Acces memoire de processeurs
GB2576572B (en) * 2018-08-24 2020-12-30 Advanced Risc Mach Ltd Processing of temporary-register-using instruction
CN110750304B (zh) * 2019-09-30 2022-04-12 百富计算机技术(深圳)有限公司 提升任务切换效率的方法及终端设备
CN114298293A (zh) * 2021-12-29 2022-04-08 杭州万高科技股份有限公司 基于Cortex-M处理器的循环神经网络加速方法、系统和介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4926317A (en) * 1987-07-24 1990-05-15 Convex Computer Corporation Hierarchical memory system with logical cache, physical cache, and address translation unit for generating a sequence of physical addresses
GB2216307B (en) 1988-03-01 1992-08-26 Ardent Computer Corp Vector register file
US5179674A (en) * 1988-07-25 1993-01-12 Digital Equipment Corporation Method and apparatus for predicting valid performance of virtual-address to physical-address translations
US5617575A (en) * 1991-03-19 1997-04-01 Hitachi, Ltd. Interprocessor priority control system for multivector processor
US5357618A (en) * 1991-04-15 1994-10-18 International Business Machines Corporation Cache prefetch and bypass using stride registers
US5341485A (en) * 1991-05-07 1994-08-23 International Business Machines Corporation Multiple virtual address translation per computer cycle
US5437043A (en) * 1991-11-20 1995-07-25 Hitachi, Ltd. Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US5426754A (en) * 1992-05-26 1995-06-20 International Business Machines Corporation Cross-interrogate method and means for combined scaler and vector processing system
US5418973A (en) * 1992-06-22 1995-05-23 Digital Equipment Corporation Digital computer system with cache controller coordinating both vector and scalar operations
US5669013A (en) 1993-10-05 1997-09-16 Fujitsu Limited System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions
GB2289354B (en) * 1994-05-03 1997-08-27 Advanced Risc Mach Ltd Multiple instruction set mapping
US5649144A (en) * 1994-06-13 1997-07-15 Hewlett-Packard Co. Apparatus, systems and methods for improving data cache hit rates
US5513366A (en) 1994-09-28 1996-04-30 International Business Machines Corporation Method and system for dynamically reconfiguring a register file in a vector processor
US5537606A (en) * 1995-01-31 1996-07-16 International Business Machines Corporation Scalar pipeline replication for parallel vector element processing
US6081880A (en) * 1995-03-09 2000-06-27 Lsi Logic Corporation Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file
US5701493A (en) * 1995-08-03 1997-12-23 Advanced Risc Machines Limited Exception handling method and apparatus in data processing systems
GB2317465B (en) * 1996-09-23 2000-11-15 Advanced Risc Mach Ltd Data processing apparatus registers.
US6052766A (en) * 1998-07-07 2000-04-18 Lucent Technologies Inc. Pointer register indirectly addressing a second register in the processor core of a digital processor

Also Published As

Publication number Publication date
CN1303502A (zh) 2001-07-11
TW495679B (en) 2002-07-21
KR100563220B1 (ko) 2006-03-22
CN1154947C (zh) 2004-06-23
KR20010043773A (ko) 2001-05-25
US6189094B1 (en) 2001-02-13
MY115481A (en) 2003-06-30

Similar Documents

Publication Publication Date Title
RU2225995C2 (ru) Рециркулирующий регистровый файл
RU2000132723A (ru) Рециркулирующий регистровый файл
US4783738A (en) Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
US6237077B1 (en) Instruction template for efficient processing clustered branch instructions
DE69819849D1 (de) Anordnung zum willkürlichen Abtasten von Instruktionen in einer Prozessorpipeline
ATE185205T1 (de) Risc mikroprozessorarchitektur mit mehrere registersätze von unterschiedlichen typen
KR870010438A (ko) 정보 처리장치
US20080133880A1 (en) Instruction Controlled Data Processing Device
TW358313B (en) Single-instruction-multiple-data processing in a multimedia signal processor
KR880701914A (ko) 병렬처리 시스템 및 그 사용방법
KR930018378A (ko) 캐쉬 메모리 시스템의 성능최적화 방법 및 장치
CA2037708A1 (en) General purpose compound apparatus for instruction-level parallel processors
KR920001319A (ko) 처리기 및 처리기의 처리방법
JPS5916053A (ja) パイプライン演算装置
US6088782A (en) Method and apparatus for moving data in a parallel processor using source and destination vector registers
JP2004516548A5 (ru)
KR920018578A (ko) 데이타 처리 프로세서
RU99108433A (ru) Адресация регистров в устройстве обработки данных
US7107432B2 (en) VLIW processor with data spilling means
CA2333563C (en) Method and apparatus for distributing commands to a plurality of circuit blocks
WO2002044894A3 (en) Method and apparatus for processing variable length instructions
JPH09101889A (ja) パイプライン演算装置
JPH01277957A (ja) 端末機能のマクロ制御方式
JPH02230326A (ja) パイプライン情報処理装置
JPH0421126A (ja) データ処理装置

Legal Events

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

Effective date: 20070310