FR3091375B1 - Instruction de chargement-stockage - Google Patents

Instruction de chargement-stockage Download PDF

Info

Publication number
FR3091375B1
FR3091375B1 FR1906123A FR1906123A FR3091375B1 FR 3091375 B1 FR3091375 B1 FR 3091375B1 FR 1906123 A FR1906123 A FR 1906123A FR 1906123 A FR1906123 A FR 1906123A FR 3091375 B1 FR3091375 B1 FR 3091375B1
Authority
FR
France
Prior art keywords
loading
specifying
registers
address
load
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.)
Active
Application number
FR1906123A
Other languages
English (en)
Other versions
FR3091375A1 (fr
Inventor
Alan Graham Alexander
Simon Christian Knowles
Mrudula Gore
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Graphcore Ltd
Original Assignee
Graphcore Ltd
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 Graphcore Ltd filed Critical Graphcore Ltd
Publication of FR3091375A1 publication Critical patent/FR3091375A1/fr
Application granted granted Critical
Publication of FR3091375B1 publication Critical patent/FR3091375B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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/30098Register arrangements
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • G06F9/3455Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
    • 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, look ahead
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • 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, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel

Abstract

INSTRUCTION DE CHARGEMENT-STOCKAGE Processeur ayant un jeu d’instructions comprenant une instruction de chargement-stockage ayant des opérandes spécifiant, parmi les registres se trouvant dans au moins un banc de registres, une destination respective de chacune de deux opérations de chargement, une source respective d’une opération de stockage, et une paire de registres d’adresses agencée pour contenir trois adresses mémoire, les trois adresses mémoire étant une adresse de chargement respective pour chacune des deux opérations de chargement et une adresse de stockage respective pour l’opération de stockage. L’instruction de chargement-stockage comprend en outre trois opérandes de pas immédiats spécifiant chacun une valeur de pas respective pour chacune des deux adresses de chargement et pour l’adresse de stockage, au moins certaines valeurs possibles de chaque opérande de pas immédiat spécifiant la valeur de pas respective en spécifiant l’un d’une pluralité de champs dans un registre de pas dans l’un desdits un ou plusieurs bancs de registres, chaque champ contenant une valeur de pas différente. Figure pour l'abrégé : Fig. 7
FR1906123A 2018-12-31 2019-06-07 Instruction de chargement-stockage Active FR3091375B1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1821300.9 2018-12-31
GB1821300.9A GB2584268B (en) 2018-12-31 2018-12-31 Load-Store Instruction

Publications (2)

Publication Number Publication Date
FR3091375A1 FR3091375A1 (fr) 2020-07-03
FR3091375B1 true FR3091375B1 (fr) 2024-04-12

Family

ID=65364673

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1906123A Active FR3091375B1 (fr) 2018-12-31 2019-06-07 Instruction de chargement-stockage

Country Status (8)

Country Link
US (1) US11467833B2 (fr)
JP (1) JP6944974B2 (fr)
KR (1) KR102201935B1 (fr)
CN (1) CN111381880B (fr)
CA (1) CA3040794C (fr)
DE (1) DE102019112353A1 (fr)
FR (1) FR3091375B1 (fr)
GB (1) GB2584268B (fr)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10671349B2 (en) * 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
GB2580664B (en) * 2019-01-22 2021-01-13 Graphcore Ltd Double load instruction
US20220197653A1 (en) * 2020-12-22 2022-06-23 Intel Corporation Processors, methods, systems, and instructions to select and store data elements from strided data element positions in a first dimension from three source two-dimensional arrays in a result two-dimensional array
GB202112803D0 (en) * 2021-09-08 2021-10-20 Graphcore Ltd Processing device using variable stride pattern
CN114090079B (zh) * 2021-11-16 2023-04-21 海光信息技术股份有限公司 串操作方法、串操作装置以及存储介质
CN116126252B (zh) * 2023-04-11 2023-08-08 南京砺算科技有限公司 数据加载方法及图形处理器、计算机可读存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3417375A (en) * 1966-03-25 1968-12-17 Burroughs Corp Circuitry for rotating fields of data in a digital computer
EP0442116A3 (en) * 1990-02-13 1993-03-03 Hewlett-Packard Company Pipeline method and apparatus
US6795908B1 (en) * 2000-02-16 2004-09-21 Freescale Semiconductor, Inc. Method and apparatus for instruction execution in a data processing system
JP5237722B2 (ja) * 2008-08-13 2013-07-17 ペンタックスリコーイメージング株式会社 撮像装置
EP2352082B1 (fr) * 2008-10-14 2018-11-28 National University Corporation Nara Institute of Science and Technology Dispositif de traitement de données pour réaliser plusieurs processus de calcul en parallèle
US10031888B2 (en) * 2011-02-17 2018-07-24 Hyperion Core, Inc. Parallel memory systems
US20120254591A1 (en) 2011-04-01 2012-10-04 Hughes Christopher J Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements
GB2508312B (en) 2011-09-26 2020-04-22 Intel Corp Instruction and logic to provide vector load-op/store-op with stride functionality
CN103729142B (zh) * 2012-10-10 2016-12-21 华为技术有限公司 内存数据的推送方法及装置
US10491000B2 (en) * 2015-02-12 2019-11-26 Open Access Technology International, Inc. Systems and methods for utilization of demand side assets for provision of grid services
CN106201913A (zh) * 2015-04-23 2016-12-07 上海芯豪微电子有限公司 一种基于指令推送的处理器系统和方法
CA2930557C (fr) * 2015-05-29 2023-08-29 Wastequip, Llc Systeme de treuil automatique pour vehicule
US9875214B2 (en) * 2015-07-31 2018-01-23 Arm Limited Apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers
CN105628377A (zh) * 2015-12-25 2016-06-01 鼎奇(天津)主轴科技有限公司 一种主轴轴向静刚度测试方法及控制系统
US20170249144A1 (en) * 2016-02-26 2017-08-31 Qualcomm Incorporated Combining loads or stores in computer processing
CN107515004B (zh) * 2017-07-27 2020-12-15 台州市吉吉知识产权运营有限公司 步长计算装置及方法

Also Published As

Publication number Publication date
JP6944974B2 (ja) 2021-10-06
US20200210187A1 (en) 2020-07-02
CN111381880A (zh) 2020-07-07
JP2020109604A (ja) 2020-07-16
GB2584268A (en) 2020-12-02
FR3091375A1 (fr) 2020-07-03
US11467833B2 (en) 2022-10-11
CA3040794C (fr) 2022-08-16
CN111381880B (zh) 2023-07-07
DE102019112353A1 (de) 2020-07-02
GB2584268B (en) 2021-06-30
GB201821300D0 (en) 2019-02-13
CA3040794A1 (fr) 2020-06-30
KR20200083123A (ko) 2020-07-08
KR102201935B1 (ko) 2021-01-12

Similar Documents

Publication Publication Date Title
FR3091375B1 (fr) Instruction de chargement-stockage
Hirohara et al. Convolutional neural network based on SMILES representation of compounds for detecting chemical motif
US11775296B2 (en) Mask patterns generated in memory from seed vectors
CN110689126B (zh) 一种用于执行神经网络运算的装置
Erlanson et al. Tethering: fragment-based drug discovery
Khoury et al. Do we need genomic research for the prevention of common diseases with environmental causes?
CN108713196A (zh) 使用位向量运算装置进行的数据传送
CN109427395A (zh) 用于存储器内操作的设备和方法
Raza et al. How does COVID-19 influence dynamic spillover connectedness between cryptocurrencies? Evidence from non-parametric causality-in-quantiles techniques
JP6242615B2 (ja) マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
US10678507B2 (en) Programmable multiply-add array hardware
Kiouptsi et al. Hypoxia impairs agonist-induced integrin αIIbβ3 activation and platelet aggregation
Das et al. Current and future drug and device therapies for pediatric heart failure patients: potential lessons from adult trials
Nanavaty et al. Impact of COVID-19 on Acute Myocardial Infarction: A National Inpatient Sample Analysis
Solid et al. Impact of renal disease on patients with hepatitis C: a retrospective analysis of disease burden, clinical outcomes, and health care utilization and cost
Otaki et al. Comorbid renal tubular damage and hypoalbuminemia exacerbate cardiac prognosis in patients with chronic heart failure
Başaranel Online Terrorist Financing
Spears et al. Diabetes prevention for African-Americans: A scoping review
Singh et al. Modeling of novel HIV-1 protease inhibitors incorporating N-Aryl-oxazolidinone-5-carboxamides as P2 ligands using quantum chemical and topological finger print descriptors
Zhou et al. Artificial Neural Network
Arunachala et al. mNUTRIC Score in ICU Mortality Prediction: An Emerging Frontier or Yet Another Transient Trend?
US8880856B1 (en) Efficient arithmetic logic units
Le Borgne et al. Drug candidates targeting multidrug resistance in cancer and infections
Khawaja et al. Surgical and transcatheter left atrial appendage closure in patients with atrial fibrillation and hypertrophic cardiomyopathy
Golchha et al. Molecular docking, dynamics and in vitro analysis of multi-target inhibitors for Clostridioides difficile

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLSC Publication of the preliminary search report

Effective date: 20230818