JP2007531072A - プログラム可能なプロセッサ及び拡張演算を伴う方法 - Google Patents
プログラム可能なプロセッサ及び拡張演算を伴う方法 Download PDFInfo
- Publication number
- JP2007531072A JP2007531072A JP2006518941A JP2006518941A JP2007531072A JP 2007531072 A JP2007531072 A JP 2007531072A JP 2006518941 A JP2006518941 A JP 2006518941A JP 2006518941 A JP2006518941 A JP 2006518941A JP 2007531072 A JP2007531072 A JP 2007531072A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- memory system
- concatenated
- operand
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 121
- 230000015654 memory Effects 0.000 claims abstract description 414
- 239000000284 extract Substances 0.000 claims description 98
- 238000004364 calculation method Methods 0.000 claims description 64
- 238000000605 extraction Methods 0.000 claims description 33
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 230000036961 partial effect Effects 0.000 claims description 8
- 230000008901 benefit Effects 0.000 abstract description 9
- 239000011159 matrix material Substances 0.000 description 78
- 239000013598 vector Substances 0.000 description 58
- 230000006870 function Effects 0.000 description 43
- 238000007667 floating Methods 0.000 description 36
- 238000005192 partition Methods 0.000 description 25
- 238000007792 addition Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 17
- 230000002829 reductive effect Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 230000006872 improvement Effects 0.000 description 9
- 230000001965 increasing effect Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 239000004121 copper complexes of chlorophylls and chlorophyllins Substances 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008707 rearrangement Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- ZAKOWWREFLAJOT-CEFNRUSXSA-N D-alpha-tocopherylacetate Chemical compound CC(=O)OC1=C(C)C(C)=C2O[C@@](CCC[C@H](C)CCC[C@H](C)CCCC(C)C)(C)CCC2=C1C ZAKOWWREFLAJOT-CEFNRUSXSA-N 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 1
- 239000001828 Gelatine Substances 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 238000013019 agitation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30109—Register structure having multiple operands in a single register
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/323—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4169—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03F—PHOTOMECHANICAL PRODUCTION OF TEXTURED OR PATTERNED SURFACES, e.g. FOR PRINTING, FOR PROCESSING OF SEMICONDUCTOR DEVICES; MATERIALS THEREFOR; ORIGINALS THEREFOR; APPARATUS SPECIALLY ADAPTED THEREFOR
- G03F1/00—Originals for photomechanical production of textured or patterned surfaces, e.g., masks, photo-masks, reticles; Mask blanks or pellicles therefor; Containers specially adapted therefor; Preparation thereof
- G03F1/36—Masks having proximity correction features; Preparation thereof, e.g. optical proximity correction [OPC] design processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/18—Manufacturability analysis or optimisation for manufacturability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Geometry (AREA)
- Evolutionary Computation (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Multimedia (AREA)
- Architecture (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
Description
オペランドを受け取る命令を、供給する。しかし、これらのメモリオペランドが一般にレジスタオペランドに指定され、メモリシステムのデータパスがプロセッサのデータパスよりも広くないように、1サイクル又はパイプラインフロー当たりの命令1つ当たりの汎用オペランドの幅とアクセス可能な数字は、高められることはない。
同時に起こるレジスタの値の読み込みと回避を許可するために、従来型の設計に、かなりの量の追加ロジックが加えられなければならないだろう。ソースオペランド又は結果の、数又はサイズを増やすために、専用レジスタがいくつかの従来技術の設計において使用されている間は、明示的な命令がこれらの専用レジスタの中へ値をロード又はストアし、また、プロセッサ状態の変化の上で、これらのレジスタをセーブしリストアするためには、追加の命令が必要とされる。
結果が大きな数字の汎用レジスタを指定することは、レジスタ値の書き込みとバイパスすることが同時に起こるのを許可するために、同様に多大な追加ロジックが一般的な設計に加えられることを必要とするだろう。
最近点への丸めと、切り捨てと、下向きの丸めと、上向きの丸めとを含む数種のタイプのどれであってもよい。桁あふれは、通常、出力結果において正確に表現することができる、最大値と最小値への結果に限定することによって操作される。
最初に、図1を参照すると、汎用プロセッサが、ブロック図で示されている。図1において、それぞれがアクセス命令フェッチキューA−Queue101〜104を備えるアクセスユニットが、4つ示されている。アクセス命令フェッチキューA−Queue101〜104はそれぞれ、アクセスレジスタファイルAR105〜108に接続され、アクセスレジスタファイルAR105〜108は、それぞれが2つのアクセス演算器A109〜116に接続されている。例示的な実施形態では、プロセッサのそれぞれのスレッドは、64個の汎用レジスタに似ていると言える(例:AR105〜108とER125〜128)。アクセスユニットは、同時に発生する4つの実行スレッドに対して、独立して動作する。それぞれのアクセスユニットは、算術命令及び分岐命令を実行することによってプログラム制御フローを処理し、ロード命令及びストア命令を実行することによってメモリにアクセスする。これらのアクセスユニットはまた、拡張(wide)オペランド命令に拡張オペランド指定子を提供する。これらの8つのアクセス演算器A109〜116は、アクセスレジスタファイルAR105〜108のための結果と、共有メモリシステム117〜120へのメモリアドレスを生成する。
本発明の拡張オペランドは、図2に示されているWide Multiply Matrix命令のような複雑な命令を実行する能力を提供する。また図2は、図3と同様に、二者択一の形式で理解することができる。図2と図3から理解することができるように、拡張オペランドは、例えば、データパス幅より大きい様々な大きさと形態の行列の乗算を許可する。図2の例は、128ビットのレジスタrdの中へ入れられる結果を生成するために、128ビットの大きさであるレジスタrbに含まれるベクトルによって乗算される、128×64ビットの大きさ(この例では512ビット)の、レジスタrcによって指定される行列を必然的に含む。
プロセッサのデータパス幅より大いに大きいオペランドは、メモリ指定子を指定するための汎用レジスタを使用することにより供給されるが、いくつかの実施形態では、2以上の数個のデータデータパス幅は、専用記憶部の中に読み込まれる。メモリ指定子は通常、演算が行われるデータの行列のサイズと形態とともに、メモリアドレスも一緒に含む。メモリ指定子又は拡張オペランド指定子は、図5からより良く理解することができる。図5の中で、指定子500はアドレスに見え、加えて、データのサイズ(size)/2を表現する領域と、さらに、データの幅(width)/2を表現する領域とがあり、サイズとは、データの深さ(depth)と幅の積である。アドレスは、例えば64バイトなど、指定されたサイズにアラインされ、よって、複数の下位のビット(例えば6ビット)はゼロである。指定子500はこのように、アドレス用の最初の領域505と、加えて、下位6ビット内でサイズと幅を表す2つの領域を含むことが分かる。
指定子500の復号化は、図6からより良く理解することができる。図6では、図に挙げられた指定子600は、複数の下位のビットを備えた領域610と一緒にアドレス領域605で作られている。ステップ615とステップ620に示されている一連の算術演算によると、幅/2を表現する領域610の一部が展開されている。625と630に示されている同様な一連のステップによると、tの値が復号化され、それらのステップでは、サイズとアドレスの両方を復号化し得る。アドレスがステップ645とステップ650において同様な方法で復号化される間に、サイズ/2を表現する領域610の一部は、ステップ635とステップ640で示されているように復号化される。
拡張演算器は、図7からより良く理解することができる。図7では、レジスタ数700は、オペランドチェッカー705に供給される。拡張オペランド指定子710は、オペランドチェッカー705と通信を行い、また、定義されたメモリ幅を有するメモリ715をアドレス指定する。メモリアドレスは、複数のレジスタオペランド720Anを有し、レジスタオペランド720Anは、データ演算器725の専用記憶部714の一部分に蓄積される。図7に示される例示的な実施形態では、専用記憶部714は、8個の拡張オペランド部730A〜Hが拡張オペランドを形成するために専用記憶部の中に連続的に読み込まれるように、8個のデータパス幅に等しい幅を有することが分かる。図7には8個の拡張オペランド部が示されているが、本発明は、8又はデータパス幅の他の特定の倍数に限られるものではない。一旦、拡張オペランド部730A〜Hが連続的に読み込まれると、それらは、演算機構740によって、単一の拡張オペランド735として使用されてもよい。また、演算機構740としては、図1のどの要素を接続しても良い。その後、拡張オペランドの結果は、結果レジスタ745に供給される。本発明の好ましい実施形態においては、拡張オペランド745は、メモリ幅と同一の幅を有する。
もし、レジスタが変更されている、又は異なったレジスタ数が使用されている場合は、レジスタの値は、読み出され、専用記憶部のために記録されたアドレスに対して比較される。この場合は、レジスタの内容をフェッチすることが必要なことと、レジスタの幅がレジスタ数自身の幅よりも大きいため、#1よりも多くのリソースを使用する。もしアドレスが一致すると、記憶部は有効である。新しいレジスタ数は、専用記憶部のために記録される。
次に図9を参照すると、拡張マイクロキャッシュ又は専用記憶部114のデータ構造の例示的な配置が評価され得る。拡張マイクロキャッシュの内容wmc.cは、例示されたものでは数が8個だが、複数のデータパス幅900a〜nを形成することが分かる。内容のサイズwmc.sizeは、例示的な実施形態では10ビットとして示されている領域にも提供される。1ビットの「正しい内容」を示すフラグwmc.cvも、直近に使用されたスレッド、wmc.thのための2ビットの領域とともに、データ構造の中に含まれている。加えて、直近に使用されたレジスタ、wmc.regのための6ビットの領域が、例示的な実施形態の中で提供されている。さらに、正しいレジスタとスレッド、wmc.rtvのための1ビットの領域が提供されてもよい。
マイクロキャッシュが拡張オペランドで最初に書き込まれ、その後、高速な次の演算にとって正しいことが確認されるプロセスが、図8から評価され得る。プロセスは、800で始まり、レジスタの内容のチェックが記憶値wmc.rcに対して行われるステップ805に進む。真なら、ステップ810で、スレッドを確認するためのチェックが行われる。真なら、プロセスはそれから、レジスタとスレッドが正しいかどうかを確認するステップ815に進む。ステップ815で真と報告されたら、内容が正しいかどうかを確認するために、ステップ820でチェックが行われる。ステップ805から820までの全てが真を返したら、ステップ825で示されているように、次の命令は、現在の拡張オペランドを利用することができる。ステップ825の後、プロセスは終了する。しかしながら、ステップ805から820までのいずれかが偽を返すと、プロセスはステップ830に分岐する。プロセス830では、内容と物理アドレスとサイズがセットされる。ステップ805から820までの全てがステップ825又は830のいずれかに導くため、ステップ805から820までは、プロセスを変えなければどんな順序でも、又は同時にでも、実行されてもよい。プロセスはそれから、サイズがチェックされるステップ835に進む。物理アドレスが直接、仮想アドレスの使用と置き換えることができるように、このチェックは基本的に、変換器のサイズが拡張オペランドのサイズより大きいか等しいことを保証する。懸案事項は、いくつかの実施形態においては、拡張命令が、仮想メモリシステムがマッピングできる、最小限の領域より大きくてもよいことである。結果として、単一の隣接する仮想アドレスレンジが、物理アドレスと比較するタスクを複雑にしながら、多様なばらばらの物理アドレスレンジにマッピングされることが起こり得るであろう。拡張オペランドのサイズを決定することと、参照される領域をマッピングする仮想アドレスのサイズに対してサイズを比較することにより、拡張オペランドがマッピング領域より大きい場合に、例外の通知の割り込みで命令が中止される。このことは、プロセッサの安全な演算を保証する。ソフトウェアはその後、望ましい場合は実行を続けるために、より大きなサイズのマップを使用して、領域を再度マッピングすることができる。このように、サイズが受け入れられないとステップ835で報告された場合は、ステップ840で例外の通知の割り込みが生成される。サイズが受け入れられると、プロセスは、物理アドレスがチェックされるステップ845に進む。チェックが合うと報告されると、プロセスはステップ850に進み、ステップ850では、正しい内容とのフラグのチェックが行われる。ステップ845又は850でのいずれかのチェックが偽と報告した場合は、プロセスは分岐して、新しい内容が、それに応じてセットされるフィールドとともに、専用記憶部114の中に書き込まれる。ステップ850でのチェックで真と報告された否かにかかわらず、もしくは、新しい内容がステップ855で書き込まれたか否かにかかわらず、プロセスはステップ860に進む。ステップ860では、データの正当性を示すために適したデータがセットされ、ステップ860の後は、要求された機能がステップ825で実行されることができる。その後、プロセスは終了する。
次に、ハードウェアの観点からのマイクロキャッシュ・コントローラーの演算を示している、図10と11を参照すると、マイクロキャッシュ・コントローラーの演算が、より理解されるかもしれない。ハードウェアの実装において、上記図8と9における連続的なステップに示される状態が、そのような拡張オペランドのチェックによる遅延を減らしながら、並行して実行されることができるのは明らかである。さらに、示されたハードウェアのコピーが、それぞれの拡張マイクロキャッシュに含まれていてもよい。またそれによって、命令によって代わりに参照されてもよいような全てのマイクロキャッシュは、並行して検査されることができる。上記図8と9の広範な考察を考慮すると、図10と11の更なる考察がもはや必要でないことがいえる。
本発明で定義される拡張命令の個々の例は、大きいレベルのスイッチングを実行するWide Switch命令を含む。Wide Switch命令としては、バイト(又は大きい)テーブル探索を実行するWide Translate命令、Wide Multiply Matrix、Wide Multiply Matrix ExtractとWide Multiply Matrix Extract Immediateと(前述の)、Wide Multiply Matrix Floating-pointとWide Multiply Matrix Galois(同様に前述の)が挙げられる。以下で、典型的な命令にとっての個々のサイズに焦点を当てて論じながら、本発明が個々の幅に制限されないことが評価されるであろう。
Wide Switch命令の例示的な実施形態は、図12A〜12Dに示されている。例示的な実施形態において、Wide Switchは、完全な幅(128ビット)のレジスタ結果を生成しながら、ビットレベルで2個までのレジスタ(256ビット)の内容を、再配置する。再配置を制御するために、ビット位置当たり8ビットから成る、単一のレジスタに指定された拡張オペランドが使用される。それぞれの結果のビット位置のために、それぞれのビット位置のための8個の拡張オペランドのビットは、結果の中に入れることができる256個のソースレジスタのビットのいずれかを選択する。128バイトより小さい拡張オペランドのサイズが指定された場合、メモリオペランドが、それぞれの符号で同じ演算を実行しながら、オペランドサイズの符号の中でビット選択を指定するために、メモリオペランドの上位ビットは、結果のビット位置に対応する値に置き換えられる。
Wide Translate命令の例示的な実施形態は、図13A〜13Dに示されている。例示的な実施形態において、Wide Translate命令は、256エントリーまでの深さのテーブルと、128ビットまでの幅とを指定するために、拡張オペランドを使用する。レジスタの内容は、1又は2又は4又は8バイトのオペランドに分割され、パーティションは、並行してテーブルから値を選択するために使用される。テーブルの深さと幅は、上記の通り、拡張オペランドのサイズと形態を指定することにより、選択される。
Wide Multiply Matrix命令の例示的な実施形態は、図14A〜14Eに示されている。例示的な実施形態において、Wide Multiply Matrix命令は、64ビットまでの(レジスタファイルとデータパス幅の2分の1)幅と符号のサイズ当たり128ビットまでの深さとの値の行列を指定するために、拡張オペランドを使用する。汎用レジスタ(128ビット)の内容は、ソースオペランド符号のサイズの2倍の符号の128ビットまでの幅のベクトルを生成しながら、ソースオペランドとして使用され、符号のベクトルの中へ分割され、行列と乗算される。行列の幅と深さは、上述の通り、拡張オペランドのサイズと形態を指定しながら、選択される。命令の範囲内での制御は、符号を付けられ又は混合符号を付けられ又は符号を付けられないで又は複素の又は多項式のオペランドの指定を、許可する。
Wide Multiply Matrix Extract命令の例示的な実施形態は、図15A〜15Fに示されている。例示的な実施形態において、Wide Multiply Matrix Extract命令は、128ビット(レジスタファイルとデータパスの全体幅)までの幅の値の行列と、符号サイズ当たり128ビットまでの深さとを指定するために、拡張オペランドを使用する。汎用レジスタ(128ビット)の内容は、ソースオペランド符号に桁あふれなしで積の合計を表すための追加ビットを加えて、その2倍のサイズの符号の256ビットまでの幅のベクトルを生成しながら、ソースオペランドとして使用され、符号のベクトルの中へ分割され、行列と乗算される。結果はそれから、命令により指定された汎用レジスタの内容によって制御されるように、以下に述べられた方法(Enhanced Multiply Bandwidth by Result Extraction)で抽出される。汎用レジスタはまた、符号を付けられ、かつ混合符号を付けられ、かつ符号を付けられないで、かつ、バイト(8ビット)又はダブレット(16ビット)又はクワドレット(32ビット)又はヘックスレット(64ビット)のオペランドのサイズと同様に複素の、オペランドのフォーマットを指定する。
Wide Multiply Matrix Extract Immediate命令の一実施形態を図16Aから図16Eに示す。一実施形態においては、Wide Multiply Matrix Extract Immediate命令は、抽出及びオペランドフォーマット、オペランドサイズがその命令のフィールドによって制御される以外は、上記と同様の演算を行う。この形式は、上記の命令の一般的な形式を符号化し、所要の制御情報でレジスタを初期化する必要はない。この命令内での制御により、符号付オペランド、混合符号付きオペランド、符号なしオペランド及び複素数オペランドの仕様が可能となる。
Wide Multiply Matrix Floating-point命令の一実施形態を図17A〜図17Eに示す。一実施形態において、Wide Multiply Matrix Floating-point命令は、乗算及び加算を浮動小数点演算で実行する以外は、上記と同様の形式で行列乗算を行う。サイズとしては、命令内で、ハーフ(16ビット)、シングル(32ビット)、ダブル(64ビット)、及び、ハーフ、シングル、ダブルの複素数サイズを指定することができる。
Wide Multiply Matrix Floating-point命令の疑似コード1780の一実施形態を図17Dに示す。図FL0AT−1は、前記及び他の浮動小数点命令によって使用される追加の疑似コード演算を示す。Wide Multiply Matrix Floating-point命令の例外1790の一実施形態を図17Eに示す。
Multiply Matrix Galois命令の一実施形態を図18Aから図18Dに示す。一実施形態において、Wide Multiply Matrix Galois命令は、乗算と加算がガロア体算術で実行される以外は、上記と同様の形式で行列乗算を行う。8ビットのサイズを命令内に指定することができる。汎用レジスタの内容は、ガロア体剰余演算の実行に用いる多項式を指定する。この行列乗算の本質は新しいものである。これを以下詳細に説明する。
Wide Multiply Matrix Galois命令の疑似コード1860の一実施形態を図18Cに示す。Wide Multiply Matrix Galois命令の例外1890の一実施形態を図18Dに示す。
本発明の他の側面において、通常のリトルエンディアン又はビッグエンディアンバイト順序のいずれのメモリオペランドも容易に実行される。その結果、全ての拡張オペランド命令は二つの形式に分けられる。一つはリトルエンディアン順序、もう一つはビッグエンディアン順序であり、これらは命令の一部によって指定される。バイト順序は、データパス幅(128ビット)のユニット内でバイトを配信する順序をメモリシステムに指定するとともに、さらに大きな拡張オペランド内に複数のメモリワード(128ビット)を配置する順序を指定する。
本発明の別の局面は、大きなマルチプライヤアレイを効率的に利用する方法として、乗数積または積の和の上位の部分の抽出を取り扱う。関連の米国特許第5,742,840号および第5,953,241号は、特定のクラスの命令を汎用プロセッサに追加することによりマルチプライヤアレイの利用を向上させるシステムおよび方法を記載している。これは、高精度の算術演算のためにフルに使用される大きなマルチプライヤアレイを最大限利用するという課題に取り組むものである。例えば、64×64ビットのマルチプライヤは64ビット×64ビットの乗算によってフルに使用されるが、(マルチプライヤデータ幅およびレジスタと比較して)低精度の演算である32ビット×32ビットの乗算には、1/4のみが使用される。特に、種々の方法で互いに結合(加算)された大量の低精度乗算を実行する演算が規定されている。1組の演算の選択において他に優先して考慮されることの1つは、結果オペランドのサイズを制限することである。例示的な実施形態において、例えば、このサイズは、128ビットのオーダーまたは単一のレジスタに制限されるが、特定のサイズの制限は必要ない。
本発明において、抽出がレジスタによって制御される場合、結果のサイズが指定され得、それにより、丸め処理および結果に適合し得るよりも少ない数のビットへの制限が可能になる。これにより、結果は、オーバーフローまたは丸め処理を考慮せずに後続の演算において使用されるようにサイズが変更され、パフォーマンスが向上する。
Ensemble Extract Inplace命令の例示的な実施形態を図19A〜図19Gに示す。例示的な実施形態において、これら命令のうちのいくつか(Ensemble Convolve Extract, Ensemble Multiply Add Extract)は、通常、抽出が命令の一部として指定される形態においてのみ利用可能である。別の実施形態では、オペランドのサイズ、シフト量、丸め処理が汎用レジスタの内容(Ensemble Multiply Extract命令に含まれる)により制御され得る演算の形態を含み得る。Ensemble Convolve ExtractおよびEnsemble Multiply Add Extractに対するこの種の命令の定義は4個のソースレジスタを要求し、このことで、さらなる汎用レジスタ読み出しポートの追加により複雑さが増す。
図19Cに示すように、アンサンブルダブレット抽出乗加算命令(E.MULADDX)の例示的な実施形態は、ベクトルrc[h g f e d c b a]をベクトルrb[p o n m l k j i]で乗算し、ベクトルrd[x w v u t s r q]を加算し、それにより結果ベクトルrd[hp+x go+w fn+v em+u dl+t ck+s bj+r ai+q]を得て、ra31..0によって指定された通りに丸められ且つ制限される。
図19Eに示すように、アンサンブルダブレット抽出畳込み命令(n=0のECON.X)の例示的な実施形態は、ベクトルrc||rd[x w v u t s r q p o n m l k j i]をベクトルrb[h g f e d c b a]で畳込み、以下の積ベクトルrd
[ax+bw+cv+du+et+fs+gr+hq...as+br+cq+dp+eo+fn+gm+hl
ar+bq+cp+do+en+fm+gl+hk aq+bp+co+dn+em+fl+gk+hj]
を得て、ra31..0によって指定された通りに丸められ且つ制限される。
[ax+bw+cv+du+et+fs+gr+hq...as−bt+cq−dr+eo−fp+gm−hn
ar+bq+cp+do+en+fm+gl+hk aq−br+co−dp+em−fn+gk+hl]
を得て、ra31..0によって指定された通りに丸められ且つ制限される。
Ensemble Extract命令の例示的な実施形態を図20A〜図20Jに示す。例示的な実施形態において、これらの演算は、3つのレジスタからオペランドを取得し、オペランド内のビットのパーティションに対して演算を実行し、連結された結果を第4のレジスタに配置する。Ensemble Extract命令のフォーマットおよびオペレーションコード2010の例示的な実施形態を図20Aに示す。
図20Cに示すように、アンサンブルダブレット抽出乗算命令(E.MULX)の例示的な実施形態は、ベクトルrd[h g f e d c b a]をベクトルrc[p o n m l k j i]で乗算し、結果ベクトルra[hp go fn em dl ck bj ai]を得て、rb31..0によって指定された通りに丸められ且つ制限される。
本発明の一局面は、Ensemble Scale Add Extract命令を規定する。Ensemble Scale Add Extract命令は、レジスタ内の抽出制御情報を、スカラ乗数として用いられる2つの値と共に、2つのベクトル被乗数の内容に組み合わせる。
図20Gに示すように、例示的な実施形態において、E.EXTRACT命令について、m=0且つx=0の場合、レジスタrbの内容によって指定されるパラメータが解釈されて、レジスタrdおよびrcの連結された内容のダブルサイズシンボルからフィールドが選択され、それにより連結され且つレジスタraに配置された値が抽出される。
別の実施形態は、オペランドのサイズ、シフトおよび丸め処理がレジスタによって制御される命令の実行に必要なレジスタ読み出しポートの数を減らすことが出来る。抽出制御レジスタの値は、初期実行の際に追加のサイクルを用いてフェッチされ、後続の実行のための演算器の内部または近傍に保持され得る。このことにより、追加の性能ペナルティ(performance penalty)が小さい場合の実行に必要なハードウェアの量が低減される。レジスタを修正する命令によって、保持された値は無効であるとマークされ得、それにより抽出制御レジスタの再フェッチが行われるか、あるいは、保持された値がそのような演算によって更新され得る。抽出制御レジスタの再フェッチは、後続の実行において異なるレジスタ数が指定される場合にも要求され得る。上記2つの異なる実施形態の特徴を組み合わせ得ることは明らかである。
本発明の別の局面はガロア体算術を含む。ガロア体算術では、乗算が、初期2進多項式乗算(桁上げ(carries)を抑制した符号なし2進乗算)によって実行され、その後、多項モジュロ/剰余演算(桁上げを抑制した符号なし2進除算)が行われる。剰余演算は面積および遅延について比較的コストが高い。ガロア体算術において、加算は、桁上げを抑制した2進加算、またはこれと均等な、ビット単位の排他的論理和演算によって実行される。本発明のこの局面において、行列乗算はガロア体算術を用いて実行される。この演算において、乗算および加算はガロア体乗算およびガロア体加算である。
本発明のさらに別の局面(図4に最もよく示す)において、本発明は、実行パイプラインからのデカップルドアクセスおよび同時マルチスレッド処理の両方を一意的な方法で用いる。従来技術では同時マルチスレッド処理されたパイプラインを用いて、複数ある実行スレッドのうちの一つから各演算器へ命令を発行させることによりデータパスユニットの利用を増大させる(例えば、Dean M. Tullsen、Susan J. EggersおよびHenry M. Levyの"Simultaneous Multithreading: Maximizing On Chip Parallelism," Proceedings of the 22nd Annual International Symposium on Computer Architecture, Santa Margherita Ligure, Italy, June, 1995)。
本発明のさらに別の局面において、並列性が高まりかつ性能が向上する相互特権ゲートウェイの改良について記載する。関連米国特許出願第08/541,416号には、制御された状態で低い特権レベルから高い特権レベルへ制御の受け渡し(分岐)ができる命令を実行するシステム及び方法が記載されている。本発明は、同じ目的を達成しかつ特有の利点をもつ変形された命令のための改良システム及び方法である。
システム及び特権ライブラリ呼び出しの実施形態の例を図21Aおよび図21Bに示している。システム及び特権ライブラリ呼び出しの略図2110の実施形態の例を図21Aに示している。実施形態の例において、上記の通常のプロシージャとできる限り同様にシステム機能及び特権ライブラリを呼び出すことを目的とする。例外としてシステムの呼び出しを実行することにより待ち時間がかなり長くなり且つ複雑になってしまわないように、プロセス特権レベルを必要なレベルまで穏やかに上昇させるプロシージャの呼び出しの変形が用いられる。この機構を安全に提供するために、仮想メモリシステムとの対話が必要とされる。
ブランチゲートウェイ命令の実施形態の例を図21Cないし図21Fに示す。実施形態の例では、この演算により、より高い特権レベルにおけるものを含むプロシージャを呼び出すためのセキュリティ保護された手段が得られる。ブランチゲートウェイ命令のフォーマット及び演算コード2160の実施形態の例を図21Cに示す。
本発明の一実施形態によれば、プロセッサは、多様な固定小数点または整数のグループ演算を処理する。例えば、図26Aには、バイト(8ビット)、ダブレット(16ビット)、クワドレット(32ビット)、オクトレット(64ビット)、へクスレット(128ビット)のような様々なオペランドサイズに対応するGroupAdd命令の様々な例を示している。図26Bおよび図26Cには、図26Aに示す様々なGroupAdd命令を実行するのに使用できるフォーマットおよび演算コードの実施形態の例を示している。図26Bおよび図26Cに示すように、この実施形態の例では、レジスタrcおよびrbの内容は、サイズが特定されたオペランドのグループに区分されるとともに加算され、それらの内容が指定されたり、オーバーフローがないかチェックされたり、制限されたりした場合、サイズが指定された結果のグループが得られる。該結果のグループは連結されるとともにレジスタrdに配置される。2つのオペランドレジスタと別の結果レジスタを使用していることがこのセクションや本明細書中の別の箇所に記載されているが、即値を使用するというような別の方法を行ってもよい。
同様に、図27Aには、様々なオペランドサイズに対応するGroup Set命令およびGroup Subtract命令の様々な例を示している。図27Bおよび図27Cには、前記の様々なGroup Set命令およびGroup Subtract命令を実行するのに使用できるフォーマットおよび演算コードの実施形態の例を示している。図27Bおよび図27Cに示すように、この実施形態の例では、レジスタrcおよびrbの内容は、サイズが特定されたオペランドのグループに区分されて、Group Set命令の場合、指定された演算条件について比較され、Group Subtract命令の場合、減算される。これらの内容が指定されたり、オーバーフローがないかチェックされたり、制限されたりした場合、サイズが特定された結果のグループが得られる。該結果のグループは連結されるとともにレジスタrdに配置される。
本実施形態では、その他の固定小数点グループ演算を利用することもできる。図28Aに各種オペランドサイズに対応するEnsemble Convolve命令、Ensemble Divide命令、Ensemble Multiply命令およびEnsemble Multiply Sum命令の種々の例を示す。図28Bおよび図28Cにフォーマットおよび種々のEnsemble Convolve命令、Ensemble Divide命令、Ensemble Multiply命令およびEnsemble Multiply Sum命令を実行するために使用できる演算コードの一実施形態を示す。図28Bおよび図28Cに示すように、本実施形態において、レジスタrcおよびrbの内容は指定されたサイズのオペランド群に区分され、畳込み、除算または乗算を経て結果群を生じるか、あるいは乗算および加算されて単一の結果を生じる。結果群は連結されてレジスタrdに入れられ、単一結果はそのままレジスタrdに入れられる。
本発明の一実施形態によれば、プロセッサは各種オペランドサイズに対応する多様な浮動小数点グループ演算を取り扱う。ここで、各種オペランドサイズとは、例えば半精度(16ビット)、単精度(32ビット)、倍精度(64ビット)および4倍精度(128ビット)等の様々な精度の浮動小数点オペランドを意味する。図29にその他のセクションおよび図面における詳細な命令の定義に用いるために定義された関数の例を示す。図29に示す関数では、内部フォーマットが、(1)s(サインビット):0が正、1が負、(2)t(タイプ):NORM、ZERO、SNAN、QNAN、INFINITY、(3)e(指数部)および(4)f:(小数部)で構成される四要素構造としての無限精度浮動小数点値を表す。通常値の数学的解釈では分数の単位に2進小数点を配置し、指数:(−1)^s*(2^e)*fによって調整される。関数FはパックドIEEE浮動小数点値を内部フォーマットに変換する。関数PackFは、丸めおよび例外制御を用いて内部フォーマットをIEEE浮動小数点値に再変換する。
新規の命令であるEnsemble-Scale-Addは、2組の並行乗算処理を行い、その積を対で合計することにより、プロセッサの性能を向上させる。これにより、2つのベクトルを2つの独立した値によってスケーリングし、次いで合計する必要のある演算に対するパフォーマンスが向上し、直近の従来技術によるfused-multiply-add演算と比較して2つの利点が得られる。この演算を従来技術による命令を用いて実行するためには、第1のベクトルおよび第1のスケーリング値に対するensemble-multiplyおよび第2のベクトルおよび第2のスケーリング値に対するensemble-multiply-addの2つの命令が要求される。これらの演算は明らかに従属的である。これに対し、本発明では、ベクトルの各対応要素に対する2つの乗算と加算が、単一演算として融合されている。ここで得られる第1の利点としては、性能の向上があげられる。すなわち、一実施形態において、組み合わされた演算によって多数の乗算が1回の演算で行われ、組込み乗算器の利用率が向上する。第2の利点は精度の向上である。すなわち、一実施形態において、融合された演算が十分な中間精度で計算されるため、積を中間で丸める必要がなくなる。
Ensemble Scale-Add Floating-point命令の擬似コード2230の一実施形態を図22Bに示す。一実施形態において、Ensemble Scale-Add Floating-point命令に対する例外は存在しない。
本発明のさらに別の観点において、単一命令で3入力ビット単位ブール演算を実行するためのシステムおよび方法が提供される。新規の方法はこのような演算の8つの可能な出力状態を7ビットにエンコードし、この7ビットを再び8つの状態にデコードするのに使用される。
一実施形態において、この再配列の格別の特徴は、8つの関数指定ビットをこの命令において7つの即値ビットに圧縮する方法の基本原理である。上記の表に見られるように、一般的な場合、f(d、c、b)からf(d、b、c)へのオペランド再配列(rcおよびrbの交換)には、値fおよびfの交換ならびに値fおよびfの交換が要求される。
本発明のさらに別の観点では、コードの単純反復ループ分岐予測を改良するシステムおよび方法が記載される。このような単純ループにおいては、ループの終端はループの始端への後方向の条件付き分岐で示される。このようなループの条件付き分岐は、それが設けられないときには最終繰り返しを除くループの各繰り返しに対して設けられる。従来技術による分岐予測システムは、このような条件付き分岐の大部分を適切に予測するために有限状態機械演算を使用しているが、ループの繰り返し回数についての特定の情報がない場合には、ループ終端時に予想誤差が生じる。
Branch Hint命令の一実施形態を図24A−図24Cに示す。一実施形態において、この演算はレジスタで指定される、先の分岐ロケーション(future branch location)を示す。
本発明のさらに別の観点において、プロセッサ命令に浮動小数点情報を組み込む技術が提供される。関連する米国特許第5812439号には、浮動小数点命令の丸めおよび例外の制御を命令そのものに組み込むシステムおよび方法が記載されている。本発明は上記発明の延長であり、浮動小数点命令の特定のクラスについて、丸めが指定されただけでなく、例外のデフォルト処理も指定された別個の命令を含むものである。
例示的な実施形態において、Ensemble Sink Floating-point命令(浮動小数点の値を整数値に変換する命令)は、3つの新たな組み合わせ(Z.D…ゼロ方向への丸め処理(round toward zero)とデフォルト例外処理(default exception handling),F.D…切り下げ丸め処理(floor rounding)とデフォルト例外処理,C.D…切り上げ丸め処理(celing rounding)とデフォルト例外処理)と同様に、あらかじめ指定された組み合わせのすべて(default…近似丸め処理(near rounding)とデフォルト例外(default exception),Z…ゼロ方向への丸め処理と例外の捕獲(trap on exceptions),N…最近接値への丸め処理(round to nearest)と例外の捕獲,F…切り下げ丸め処理(マイナス無限大へ向かう丸め)と例外の捕獲,C…切り上げ丸め処理(プラス無限大へ向かう丸め)と例外の捕獲,X…不正確(inexact)やその他の例外(other exceptions)の捕獲)を含む命令における制御で利用可能である。(その他の組み合わせ:N.Dはデフォルトと同等である。X.D…不正確の捕獲であるが、特に有用ではないがその他の例外に対するデフォルト処理が可能である。)
図25A〜図25Cは、Ensemble Sink Floating-point命令の例示的な実施形態を示す。例示的な実施形態において、これらの演算は、レジスタから1つの数値データ(value)を取得し、オペランドにおけるパーティション(partitions)に整数値への浮動小数点算術変換の集合を実行し、連結結果をレジスタに入れる。図25Aは、Ensemble Sink Floating-point命令の演算コード,選択(selection)およびフォーマット2510の例示的な実施形態を示す。
本発明の1つの実施形態において、クロスバースイッチユニット(例えば、ユニット142や148)は、前述のように、データ処理演算(data handling operations)を実行する。図32Aに示されたように、そのようなデータ処理演算は、Crossbar Compress演算,Crossbar Expand演算,Crossbar Rotate演算,およびCrossbar Shift演算についての様々な例を含むことも可能である。図32Bおよび図32Cは、様々なCrosbar Compress命令,Crossbar Rotate命令,Crossbar Expand命令,Crossbar Shift命令を実行するために使用可能であるフォーマットおよび演算コードの例示的な実施形態を示す。図32Bおよび図32Cに示されたように、この例示的な実施形態において、レジスタrcのコンテンツは、指定されたサイズを有するオペランドの集合に分割され、レジスタrbのコンテンツの一部によって指定された量(amount)に基づいて圧縮され,拡張され,回転され,または,シフトされて、結果の集合を生成(yielding)する。結果の集合は、連結されて、レジスタrdにセットされる。
本発明の1つの実施形態において、データ処理演算(data handling operations)は、Crossbar Extract命令を含むことも可能である。図33Aおよび図33Bは、Crossbar Extract命令を実行するために使用可能であるフォーマットおよび演算コードの例示的な実施形態を示す。図33Aおよび図33Bに示されたように、この例示的な実施形態において、レジスタrd,rc,およびrbのコンテンツは、取り出される(fetched)。指定された演算は、これらのオペランドで実行される。結果は、レジスタraにセットされる。
図34Aに示されたように、本発明の1つの実施形態によれば、データ処理演算は、様々なShuffle命令を含むことも可能である。Shuffle命令は、レジスタのコンテンツをオペランドの集合に分割して種々の方法で交互配置(interleaved)することを可能にする。図34Bおよび図34Cは、様々なShuffle命令を実行するために使用可能であるフォーマットおよび演算コードの例示的な実施形態を示す。図34Bおよび図34Cに示されたように、この例示的な実施形態において、rcおよびrbのフィールドが同等であるか否かに依存して、2つの演算のうち1つが実行される。図34Bと以下の記述は、rd,rc,rb,op,v,w,h,およびsizeのフィールドのフォーマットとrd,rc,rb,op,v,w,h,およびsizeのフィールドの関係とについて説明している。
Wide Solve Galois命令 の例示的な実施形態が、図35A〜35Bに示される。図35Aは、方程式を反復して解くための方法と装置をあげて本発明を説明する。説明される特定の動作は、S,L,およびWが次数がそれぞれ2T,T+1,およびTのGF(256)等のガロア体の多項式である場合の、ガロア多項式一致方程式L*S=W(mod z**2T)の種類向きの拡張ソルバーである。この問題の解決が、デジタル通信や記憶媒体をより信頼性のあるものにするために符号ブロックにおいて最大T個までのエラーを最適に訂正する、リード・ソロモン符号等のある種のエラー訂正コードにおける最も重要な計算ステップである。この実施を支持する数学的処理のさらに進んだ詳細は(Sarwate, Dilip V. and Shanbhag, Naresh R. "High-Speed Architectures for Reed-Solomon Decoders", 2000年6月7日改訂, IEEE Trans.VLSI Systems に提出。, http://icims.csl.uiuc.edu/-shanbhag/vips/publications/bma.pdf からアクセス可能であり、それらの全体を参照としてここに援用する。)から得られる。
Wide Transform Slice命令の例示的な実施形態が、図36A〜図36Bに示される。図36Aは、周波数領域での通信や画像解析等に必要とされるフーリエ変換等の変換における非常に速い計算のための方法と装置を説明する。この装置には、16の複素乗算器の4×4の配置が示され、それぞれ第1の拡張オペランドキャッシュに隣接している。第2の拡張オペランドキャッシュ、または組み込まれた係数メモリアレイが、拡張組み込みキャッシュによるデータアクセスで乗算器によって乗算されたオペランドを供給する。結果として生じる積は、不可分変換の片に供給される。片は、この好まれる実施形態において、基数4または基数2のバタフライユニットである。これらのユニットは、乗算器の列または行から積を受け取り、結果を、指定されたペース(stride)で桁反転させて第1の拡張オペランドキャッシュに再び置く。
Wide Convolve Extract命令の例示的な実施形態が、図37A〜図37Kに示される。同様の方法と装置が、1次元(1-D)または2次元(2-D)の畳み込み(convolution)の方法によるディジタルフィルタリングと1次元または2次元の相関(correlation)の方法による動き評価とのいずれにも応用されうる。相関は1次元または2次元のパターンの順序を逆にして畳み込みを行うことによって計算され得るので、同じ操作が相関に用いられてもよい。したがって、ここで説明される畳み込み命令は、相関に用いられてもよいし、または、係数オペランドブロックの順が1次元または2次元で逆にされることを除いては、ここで説明される畳み込み命令に類似するWide Convolve Extract命令が組み立てられてもよい。
Wide Convolve Floating-point命令は、オペランドの乗算と加算とが浮動小数点演算を用いて進むことを除いては、上で説明したWide Convolve Extract命令と同様に演算する。実質的に制約されない精度での丸め処理なしに、最終結果に対して結果オペランドの精度にするための1回の丸めを行い、例示的な実施形態の乗算積と中間和との表現がなされる。代わりの実施形態において、積と和は、拡大されているが制約された精度で計算される。別の代わりの実施形態において、積と和は、オペランドのサイズに制限された精度で計算される。
強化された拡張演算は、ビタビ(Viterbi)復号やターボ復号によるエラー訂正にも有用である。この場合、組み込みメモリ片は、状態メトリクスやプレトレースバック決定数字を収容するのに用いられる。Add-Compare-Swapまたは、log-MAPユニットは、例えば私たちの好ましい実施形態における外部レジスタからの128ビットといった、少数の分岐メトリクスを受け取る。アレイは、多くの実質的なコードにとって非常に大きい状態メトリックメモリのエントリを読み、再計算し、更新する。複数の決定数字は、典型的にはそれぞれ16を基数とするプレトレースバック方法の4ビットであり、2番目のトレースバックメモリに蓄積される。アレイ計算と状態メトリックの更新は、指定された数のサイクル繰り返し実行される。次に第2の繰り返し操作は、状態トレリスを通る最も見込みのあるパスを分析するために、トレースバックメモリをトラバースする。
強化された拡張演算は、近傍のマルチプレクサとラッチに相互に接続され、典型的には入力アドレスの3または4ビットでそれぞれ指定される8または16エントリを伴う小さいルックアップテーブル(LUTs)のアレイを要するWide Boolean演算でもある。LUTエントリ、マルチプレクサ選択、およびラッチクロックイネーブルの制御は、組み込み拡張メモリによって規定される。この構造は、一般的な用途のマイクロプロセッサのレジスタから供給されるオペランドに対する繰り返し演算を実行できるフィールドプログラマブルゲートアレイの片を供給する方法を提供する。これらの演算は、内部ラッチとメモリ片自体の両方を更新する任意に規定できる論理演算を実行しながら、多数サイクル繰り返し得る。
ここで説明する方法と装置は、特定用途向けIC(ASICs: application-specific integrated circuits)で実現されるものを見積もるマイクロプロセッサの演算器の実効的な帯域幅を増大させる問題に広く適用できる。拡張オペランドを処理することが可能な機能ユニットが同時に2つ以上存在する時、データを発生する一つの機能ユニットから組み込みメモリへデータを移し、さらにメモリシステムを介して、または迂回させて、拡張オペランドメモリにデータをロードした後に、データを消費する必要がある拡張オペランドを処理することが同様に可能な第2の機能ユニットにデータを転送する問題が起きる。データをあるメモリ位置から他にあからさまにコピーすることは、このような転送を達成するが、それに伴うオーバーヘッドがプロセッサ全体の効率を減らす。
本発明の好ましい実施形態と他の選択可能な方法を十分に説明したが、当業者は、ここでの教示を与えられると、本発明から離れない多数の選択可能な方法、および同等のものが存在することを認識するだろう。したがって、本発明は上記説明によって制限されず、請求項だけによって制限されることが意図されている。
Claims (30)
- 第1のデータパス幅を有する第1のメモリシステムと、それぞれが前記第1のデータパス幅より大きなデータパス幅を有する第2及び第3のメモリシステムとを備えるプログラム可能なプロセッサにおいて計算を実行する方法であって、
前記第1のデータパス幅を有する第1のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするステップと、
前記第1のデータパス幅を有し、前記第2のメモリシステムにおいて前記第1のメモリオペランド部と連結されて第1の連結データを生成する第2のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするステップと、
前記第1のデータパス幅を有する第3のメモリオペランド部を、前記第1のメモリシステムから前記第3のメモリシステムへコピーするステップと、
前記第1のデータパス幅を有し、前記第3のメモリシステムにおいて前記第3のメモリオペランド部と連結されて第2の連結データを生成する第4のメモリオペランド部を、前記第1のメモリシステムから前記第3のメモリシステムへコピーするステップと、
前記第1及び第2の連結データを使用して、単一命令の計算を実行するステップとを備える
計算実行方法。 - 請求項1に記載の方法において、
前記計算を実行するステップは、
それぞれ幅が前記第1のデータパス幅より大きい前記第1の連結データの一部と前記第2の連結データの一部とを読み出し、前記第1の連結データの一部と前記第2の連結データの一部とを用いて計算を実行するステップを更に備えるものである
計算実行方法。 - 請求項2に記載の方法において、
前記第1のメモリシステム内の前記第1及び第2の連結データのそれぞれのメモリアドレスを指定するステップを更に備える
計算実行方法。 - 請求項3に記載の方法において、
前記第1及び第2の連結データのそれぞれのメモリオペランドサイズとメモリオペランド形態を指定するステップを更に備える
計算実行方法。 - 請求項2に記載の方法において、
前記第2のメモリシステム内の前記第1の連結データと前記第3のメモリシステム内の前記第2の連結データとのそれぞれの有効性をチェックし、有効性が確認されれば、その次の命令に、前記第1及び第2の連結データを前記第1のメモリシステムからコピーすることなく使用することを許可するステップを更に備える
計算実行方法。 - 請求項2に記載の方法において、
前記計算を実行するステップは、
前記第1の連結データに含まれる区分要素と前記第2の連結データに含まれる区分要素との間の畳込みを実行して、畳込みデータを生成し、前記畳込みデータの指定された部分フィールドを抽出し、抽出データを連結して前記演算器のデータパス幅と同じサイズの連結結果を生成するステップを更に備えるものである
計算実行方法。 - 請求項2に記載の方法において、
前記計算を実行するステップは、
前記第2の連結データに含まれる係数を用いて前記第1の連結データに含まれる区分要素の変換を実行して変換データを生成し、前記変換データの指定された部分フィールドを抽出して抽出データを生成し、前記抽出データを連結するステップを更に備えるものである
計算実行方法。 - 第1のデータパス幅を有する第1のメモリシステムと、前記第1のデータパス幅よりも大きなデータパス幅を有する第2及び第3のメモリシステムとを備えるプログラム可能なプロセッサにおいて計算を実行する方法であって、
前記第1のデータパス幅を有する第1のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするステップと、
前記第1のデータパス幅を有し、前記第2のメモリシステムにおいて前記第1のメモリオペランド部と連結されて第1の連結データを生成する第2のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするステップと、
前記第1の連結データを使用して単一命令の計算を実行し、第2の連結データを生成するステップと、
前記第1のデータパス幅を有し、前記第2の連結データの一部を含む第3のメモリオペランド部を、前記第3のメモリシステムから前記第1のメモリシステムへコピーするステップと、
前記第1のデータパス幅を有し、前記第2の連結データの一部を含み、前記第3のメモリシステムにおいて前記第3のメモリオペランド部と連結される第4のメモリオペランド部を、前記第3のメモリシステムから前記第1のメモリシステムへコピーするステップとを備える
計算実行方法。 - 請求項8に記載の方法において、
前記計算を実行するステップは、
幅が前記第1のデータパス幅よりも大きい前記第1の連結データの一部を読み出し、前記第1の連結データの一部を用いて計算を実行するステップを更に備えるものである
計算実行方法。 - 請求項9に記載の方法において、
前記第1のメモリシステム内の前記第1及び第2の連結データのそれぞれのメモリアドレスを指定するステップを更に備える
計算実行方法。 - 請求項10に記載の方法において、
前記第1及び第2の連結データのそれぞれのメモリオペランドサイズとメモリオペランド形態を指定するステップを更に備える
計算実行方法。 - 請求項9に記載の方法において、
前記第2のメモリシステム内の前記第1の連結データの有効性をチェックし、有効性が確認されれば、その次の命令に、前記第1の連結データを前記第1のメモリシステムからコピーすることなく使用することを許可するステップを更に備える
計算実行方法。 - 請求項8に記載の方法において、
前記計算を実行するステップは、
前記第1の連結データに含まれる区分要素の変換を実行して変換データを生成し、前記変換データの指定された部分フィールドを抽出して抽出データを生成し、前記抽出データを連結して前記第2の連結データを生成するステップを更に備えるものである
計算実行方法。 - 請求項8に記載の方法において、
前記計算を実行するステップは、
ブール演算を用いて前記抽出データの一部を累積されたブールデータと結合し、ブール演算を用いて前記累積されたブールデータの区分要素を結合して、結合されたブールデータを生成し、前記結合されたブールデータから抽出されたデータの最上位ビットを確定して、前記最上位ビットの位置を含む結果をレジスタに返すステップを更に備えるものである
計算実行方法。 - 請求項8に記載の方法において、
前記第1及び第2の連結データに対応する第1及び第2の有効性情報を操作し、前記第1の連結データのメモリアドレスを指定する命令が完了した後で、前記第2の連結データの内容が、前記第1の連結データに代えて前記第1のメモリシステムへ供給されるステップを更に備える
計算実行方法。 - 第1のデータパス幅を有する第1のメモリシステムと、
それぞれが前記第1のデータパス幅より大きなデータパス幅を有する第2及び第3のメモリシステムと、
前記第1のデータパス幅を有する第1のメモリオペランド部を前記第1のメモリシステムから前記第2のメモリシステムへコピーするように、かつ、前記第1のデータパス幅を有し、前記第2のメモリシステムにおいて前記第1のメモリオペランド部と連結されて第1の連結データを生成する第2のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするように構成された第1のコピーモジュールと、
前記第1のデータパス幅を有する第3のメモリオペランド部を前記第1のメモリシステムから前記第3のメモリシステムへコピーするように、かつ、前記第1のデータパス幅を有し、前記第3のメモリシステムにおいて前記第3のメモリオペランド部と連結されて第2の連結データを生成する第4のメモリオペランド部を、前記第1のメモリシステムから前記第3のメモリシステムへコピーするように構成された第2のコピーモジュールと、
前記第1及び第2の連結データを用いて計算を実行するように構成された演算器とを備える
プログラム可能なプロセッサ。 - 請求項16に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
幅が前記第1のデータパス幅よりも大きい前記第1及び第2の連結データのそれぞれの一部を読み出し、前記第1及び第2の連結データのそれぞれの一部を用いて計算を実行するように構成されているものである
プログラム可能なプロセッサ。 - 請求項17に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第1のメモリシステム内の前記第1及び第2の連結データのそれぞれのメモリアドレスを指定するように構成されているものである
プログラム可能なプロセッサ。 - 請求項18に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第1及び第2の連結データのそれぞれのメモリオペランドサイズとメモリオペランド形態とを指定するように構成されているものである
プログラム可能なプロセッサ。 - 請求項17に記載のプログラム可能なプロセッサにおいて、
前記第2のメモリシステム内の前記第1の連結データと前記第3のメモリシステム内の前記第2の連結データとのそれぞれの有効性をチェックし、有効性が確認されれば、その次の命令に、前記第1及び第2の連結データのそれぞれを前記第1のメモリシステムからコピーすることなく使用することを許可する制御部を更に備える
プログラム可能なプロセッサ。 - 請求項16に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第1の連結データに含まれる区分要素と前記第2の連結データに含まれる区分要素との間でを畳込みを行って、畳込みデータを生成し、前記畳込みデータの指定された部分フィールドを抽出し、抽出データを連結して前記演算器のデータパス幅と同じサイズの連結結果を生成するように構成されているものである
プログラム可能なプロセッサ。 - 請求項16に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第2の連結データに含まれる係数を用いて前記第1の連結データに含まれる区分要素の変換を実行して変換データを生成し、前記変換データの指定された部分フィールドを抽出して抽出データを生成し、前記抽出データを連結するように構成されているものである
プログラム可能なプロセッサ。 - 第1のデータパス幅を有する第1のメモリシステムと、
それぞれが前記第1のデータパス幅より大きなデータパス幅を有する第2及び第3のメモリシステムと、
前記第1のデータパス幅を有する第1のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするように、かつ、前記第1のデータパス幅を有し、前記第2のメモリシステムにおいて前記第1のメモリオペランド部と連結されて第1の連結データを生成する第2のメモリオペランド部を、前記第1のメモリシステムから前記第2のメモリシステムへコピーするように構成された第1のコピーモジュールと、
前記第1のデータパス幅を有し第2の連結データの一部を含む第3のメモリオペランド部を、前記第3のメモリシステムから前記第1のメモリシステムへコピーするように、かつ、前記第1のデータパス幅を有し、第2の連結データの一部を含み、前記第3のメモリシステムにおいて前記第3のメモリオペランド部と連結される第4のメモリオペランド部を、前記第3のメモリシステムから前記第1のメモリシステムへコピーするように構成された第2のコピーモジュールと、
前記第1及び第2の連結データを用いて計算を実行するように構成された演算器とを備える
プログラム可能なプロセッサ。 - 請求項23に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
幅が前記第1のデータパス幅よりも大きい前記第1の連結データの一部を読み出し、前記第1の連結データの一部を用いて計算を実行するように構成されているものである
プログラム可能なプロセッサ。 - 請求項24に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第1のメモリシステム内の前記第1及び第2の連結データのそれぞれのメモリアドレスを指定するように構成されているものである
プログラム可能なプロセッサ。 - 請求項25に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第1及び第2の連結データのそれぞれのメモリオペランドサイズとメモリオペランド形態とを指定するように構成されているものである
プログラム可能なプロセッサ。 - 請求項24に記載のプログラム可能なプロセッサにおいて、
前記第2のメモリシステム内の前記第1の連結データの有効性をチェックし、有効性が確認されれば、その次の命令に、前記第1の連結データを前記第1のメモリシステムからコピーすることなく使用することを許可する制御部を更に備える
プログラム可能なプロセッサ。 - 請求項23に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
前記第1の連結データに含まれる区分要素の変換を実行して変換データを生成し、前記変換データの指定された部分フィールドを抽出して抽出データを生成し、前記抽出データを連結して前記第2の連結データを生成するように構成されているものである
プログラム可能なプロセッサ。 - 請求項23に記載のプログラム可能なプロセッサにおいて、
前記演算器は、
ブール演算を用いて前記抽出データの一部を累積されたブールデータと結合し、ブール演算を用いて前記累積されたブールデータの区分要素を結合して、結合されたブールデータを生成し、前記結合されたブールデータから抽出されたデータの最上位ビットを確定して、前記最上位ビットの位置を含む結果を供給するように構成されているものである
プログラム可能なプロセッサ。 - 請求項23に記載のプログラム可能なプロセッサにおいて、
前記第1及び第2の連結データに対応する第1及び第2の有効性情報を操作し、前記第1の連結データのメモリアドレスを指定する命令が完了した後で、前記第2の連結データの内容が、前記第1の連結データに代えて前記第1のメモリシステムへ供給されるように構成されている制御部を更に備える
プログラム可能なプロセッサ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/616,303 | 2003-07-10 | ||
US10/616,303 US7301541B2 (en) | 1995-08-16 | 2003-12-19 | Programmable processor and method with wide operations |
PCT/US2004/022126 WO2005008410A2 (en) | 2003-07-10 | 2004-07-12 | Programmable processor and method with wide operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007531072A true JP2007531072A (ja) | 2007-11-01 |
JP5005342B2 JP5005342B2 (ja) | 2012-08-22 |
Family
ID=34079658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006518941A Expired - Fee Related JP5005342B2 (ja) | 2003-07-10 | 2004-07-12 | ワイド・トランスフォーム・スライス・インストラクションを実行するプロセッサアーキテクチャ |
Country Status (6)
Country | Link |
---|---|
US (10) | US7301541B2 (ja) |
EP (5) | EP2226726A3 (ja) |
JP (1) | JP5005342B2 (ja) |
CA (2) | CA2573292C (ja) |
ES (1) | ES2527937T3 (ja) |
WO (1) | WO2005008410A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017520873A (ja) * | 2014-06-30 | 2017-07-27 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | 拡張可能Wideオペランド命令のためのシステムおよび方法 |
JP2020521192A (ja) * | 2017-05-17 | 2020-07-16 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
Families Citing this family (362)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
ATE557343T1 (de) * | 1998-08-24 | 2012-05-15 | Microunity Systems Eng | Prozessor und verfahren zur durchführung eines breitschaltungsbefehls mit breitem operand |
US7242414B1 (en) * | 1999-07-30 | 2007-07-10 | Mips Technologies, Inc. | Processor having a compare extension of an instruction set architecture |
US7346643B1 (en) | 1999-07-30 | 2008-03-18 | Mips Technologies, Inc. | Processor with improved accuracy for multiply-add operations |
US7500240B2 (en) * | 2002-01-15 | 2009-03-03 | Intel Corporation | Apparatus and method for scheduling threads in multi-threading processors |
US8094723B2 (en) * | 2003-12-31 | 2012-01-10 | Intel Corporation | Motion estimation sum of all differences (SAD) array having reduced semiconductor die area consumption |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
US8301788B2 (en) * | 2004-09-10 | 2012-10-30 | Cavium, Inc. | Deterministic finite automata (DFA) instruction |
US8560475B2 (en) | 2004-09-10 | 2013-10-15 | Cavium, Inc. | Content search mechanism that uses a deterministic finite automata (DFA) graph, a DFA state machine, and a walker process |
US8392590B2 (en) * | 2004-09-10 | 2013-03-05 | Cavium, Inc. | Deterministic finite automata (DFA) processing |
US7606309B2 (en) * | 2004-09-30 | 2009-10-20 | Intel Corporation | Motion estimation for video processing using 2-D (spatial) convolution |
US8225104B1 (en) * | 2005-10-06 | 2012-07-17 | Symantec Corporation | Data access security |
US7958436B2 (en) | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US7872657B1 (en) * | 2006-06-16 | 2011-01-18 | Nvidia Corporation | Memory addressing scheme using partition strides |
EP1870829B1 (en) * | 2006-06-23 | 2014-12-03 | Microsoft Corporation | Securing software by enforcing data flow integrity |
US20100306209A1 (en) * | 2006-07-22 | 2010-12-02 | Tien-Fu Chen | Pattern matcher and its matching method |
US7779016B2 (en) * | 2006-09-14 | 2010-08-17 | International Business Machines Corporation | Parallel execution of operations for a partitioned binary radix tree on a parallel computer |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US8656448B2 (en) * | 2006-10-26 | 2014-02-18 | International Business Machines Corporation | Providing policy-based application services to an application running on a computing system |
US8713582B2 (en) * | 2006-10-26 | 2014-04-29 | International Business Machines Corporation | Providing policy-based operating system services in an operating system on a computing system |
US8032899B2 (en) | 2006-10-26 | 2011-10-04 | International Business Machines Corporation | Providing policy-based operating system services in a hypervisor on a computing system |
US7721077B2 (en) * | 2006-12-11 | 2010-05-18 | Intel Corporation | Performing endian conversion |
US8078847B2 (en) * | 2007-05-14 | 2011-12-13 | Apple Inc. | Detecting memory-hazard conflicts during vector processing |
US8019977B2 (en) * | 2007-05-14 | 2011-09-13 | Apple Inc. | Generating predicate values during vector processing |
US8019976B2 (en) * | 2007-05-14 | 2011-09-13 | Apple, Inc. | Memory-hazard detection and avoidance instructions for vector processing |
US8060728B2 (en) * | 2007-05-14 | 2011-11-15 | Apple Inc. | Generating stop indicators during vector processing |
US8176355B2 (en) * | 2007-06-07 | 2012-05-08 | International Business Machines Corporation | Recovery from hardware access errors |
US7958274B2 (en) * | 2007-06-18 | 2011-06-07 | International Business Machines Corporation | Heuristic status polling |
US8296430B2 (en) | 2007-06-18 | 2012-10-23 | International Business Machines Corporation | Administering an epoch initiated for remote memory access |
US9065839B2 (en) | 2007-10-02 | 2015-06-23 | International Business Machines Corporation | Minimally buffered data transfers between nodes in a data communications network |
US8819217B2 (en) * | 2007-11-01 | 2014-08-26 | Cavium, Inc. | Intelligent graph walking |
US8180803B2 (en) * | 2007-11-27 | 2012-05-15 | Cavium, Inc. | Deterministic finite automata (DFA) graph compression |
US7949683B2 (en) * | 2007-11-27 | 2011-05-24 | Cavium Networks, Inc. | Method and apparatus for traversing a compressed deterministic finite automata (DFA) graph |
US7984450B2 (en) * | 2007-11-28 | 2011-07-19 | International Business Machines Corporation | Dispatching packets on a global combining network of a parallel computer |
US8515052B2 (en) * | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
US8146064B2 (en) * | 2008-04-04 | 2012-03-27 | International Business Machines Corporation | Dynamically controlling a prefetching range of a software controlled cache |
US8239841B2 (en) | 2008-04-04 | 2012-08-07 | International Business Machines Corporation | Prefetching irregular data references for software controlled caches |
US8285670B2 (en) * | 2008-07-22 | 2012-10-09 | International Business Machines Corporation | Dynamically maintaining coherency within live ranges of direct buffers |
US7895260B2 (en) * | 2008-07-28 | 2011-02-22 | International Business Machines Corporation | Processing data access requests among a plurality of compute nodes |
US8271832B2 (en) * | 2008-08-15 | 2012-09-18 | Apple Inc. | Non-faulting and first-faulting instructions for processing vectors |
US8464031B2 (en) | 2008-08-15 | 2013-06-11 | Apple Inc. | Running unary operation instructions for processing vectors |
US8447956B2 (en) | 2008-08-15 | 2013-05-21 | Apple Inc. | Running subtract and running divide instructions for processing vectors |
US20100325399A1 (en) * | 2008-08-15 | 2010-12-23 | Apple Inc. | Vector test instruction for processing vectors |
US8504806B2 (en) | 2008-08-15 | 2013-08-06 | Apple Inc. | Instruction for comparing active vector elements to preceding active elements to determine value differences |
US8862932B2 (en) | 2008-08-15 | 2014-10-14 | Apple Inc. | Read XF instruction for processing vectors |
US9110683B2 (en) | 2008-08-15 | 2015-08-18 | Apple Inc. | Predicting branches for vector partitioning loops when processing vector instructions |
US8938642B2 (en) | 2008-08-15 | 2015-01-20 | Apple Inc. | Confirm instruction for processing vectors |
US8484443B2 (en) | 2008-08-15 | 2013-07-09 | Apple Inc. | Running multiply-accumulate instructions for processing vectors |
US9009528B2 (en) | 2008-08-15 | 2015-04-14 | Apple Inc. | Scalar readXF instruction for processing vectors |
US8650383B2 (en) * | 2008-08-15 | 2014-02-11 | Apple Inc. | Vector processing with predicate vector for setting element values based on key element position by executing remaining instruction |
US9182959B2 (en) | 2008-08-15 | 2015-11-10 | Apple Inc. | Predicate count and segment count instructions for processing vectors |
US8959316B2 (en) * | 2008-08-15 | 2015-02-17 | Apple Inc. | Actual instruction and actual-fault instructions for processing vectors |
US8417921B2 (en) * | 2008-08-15 | 2013-04-09 | Apple Inc. | Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector |
US8984262B2 (en) * | 2008-08-15 | 2015-03-17 | Apple Inc. | Generate predicates instruction for processing vectors |
US8209525B2 (en) * | 2008-08-15 | 2012-06-26 | Apple Inc. | Method and apparatus for executing program code |
US8793472B2 (en) | 2008-08-15 | 2014-07-29 | Apple Inc. | Vector index instruction for generating a result vector with incremental values based on a start value and an increment value |
US9335980B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using wrapping propagate instructions in the macroscalar architecture |
US9342304B2 (en) | 2008-08-15 | 2016-05-17 | Apple Inc. | Processing vectors using wrapping increment and decrement instructions in the macroscalar architecture |
US9317283B2 (en) | 2008-08-15 | 2016-04-19 | Apple Inc. | Running shift for divide instructions for processing vectors |
US9335997B2 (en) | 2008-08-15 | 2016-05-10 | Apple Inc. | Processing vectors using a wrapping rotate previous instruction in the macroscalar architecture |
US20110035568A1 (en) * | 2008-08-15 | 2011-02-10 | Apple Inc. | Select first and select last instructions for processing vectors |
US8745360B2 (en) * | 2008-09-24 | 2014-06-03 | Apple Inc. | Generating predicate values based on conditional data dependency in vector processors |
US8181001B2 (en) * | 2008-09-24 | 2012-05-15 | Apple Inc. | Conditional data-dependency resolution in vector processors |
US8176299B2 (en) * | 2008-09-24 | 2012-05-08 | Apple Inc. | Generating stop indicators based on conditional data dependency in vector processors |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US8473523B2 (en) | 2008-10-31 | 2013-06-25 | Cavium, Inc. | Deterministic finite automata graph traversal with nodal bit mapping |
US8161090B2 (en) * | 2008-12-05 | 2012-04-17 | Crossfield Technology LLC | Floating-point fused add-subtract unit |
US20100199067A1 (en) * | 2009-02-02 | 2010-08-05 | International Business Machines Corporation | Split Vector Loads and Stores with Stride Separated Words |
US20100250850A1 (en) * | 2009-03-25 | 2010-09-30 | Faraday Technology Corp. | Processor and method for executing load operation and store operation thereof |
US8156264B2 (en) * | 2009-04-03 | 2012-04-10 | Analog Devices, Inc. | Digital output sensor FIFO buffer with single port memory |
US8650240B2 (en) * | 2009-08-17 | 2014-02-11 | International Business Machines Corporation | Complex matrix multiplication operations with data pre-conditioning in a high performance computing architecture |
US8577950B2 (en) * | 2009-08-17 | 2013-11-05 | International Business Machines Corporation | Matrix multiplication operations with data pre-conditioning in a high performance computing architecture |
US9003170B2 (en) * | 2009-12-22 | 2015-04-07 | Intel Corporation | Bit range isolation instructions, methods, and apparatus |
US8856759B2 (en) * | 2010-02-01 | 2014-10-07 | Bull Hn Information Systems Inc. | Method and apparatus providing COBOL decimal type arithmetic functions with improved performance |
US8365186B2 (en) | 2010-04-14 | 2013-01-29 | International Business Machines Corporation | Runtime optimization of an application executing on a parallel computer |
US9600281B2 (en) | 2010-07-12 | 2017-03-21 | International Business Machines Corporation | Matrix multiplication operations using pair-wise load and splat operations |
US8504730B2 (en) | 2010-07-30 | 2013-08-06 | International Business Machines Corporation | Administering connection identifiers for collective operations in a parallel computer |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8972821B2 (en) * | 2010-12-23 | 2015-03-03 | Texas Instruments Incorporated | Encode and multiplex, register, and decode and error correction circuitry |
US8565120B2 (en) | 2011-01-05 | 2013-10-22 | International Business Machines Corporation | Locality mapping in a distributed processing system |
US9317637B2 (en) | 2011-01-14 | 2016-04-19 | International Business Machines Corporation | Distributed hardware device simulation |
US8336017B2 (en) * | 2011-01-19 | 2012-12-18 | Algotochip Corporation | Architecture optimizer |
RU2458384C1 (ru) * | 2011-02-17 | 2012-08-10 | Федеральное государственное военное образовательное учреждение высшего профессионального образования "Военный авиационный инженерный университет" (г. Воронеж) Министерства обороны Российской Федерации | Устройство для контроля эвм |
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
US8689228B2 (en) | 2011-07-19 | 2014-04-01 | International Business Machines Corporation | Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system |
US20130027416A1 (en) * | 2011-07-25 | 2013-01-31 | Karthikeyan Vaithianathan | Gather method and apparatus for media processing accelerators |
US9250948B2 (en) | 2011-09-13 | 2016-02-02 | International Business Machines Corporation | Establishing a group of endpoints in a parallel computer |
US8966461B2 (en) * | 2011-09-29 | 2015-02-24 | Advanced Micro Devices, Inc. | Vector width-aware synchronization-elision for vector processors |
CN103959240B (zh) * | 2011-12-15 | 2017-05-17 | 英特尔公司 | 使用混洗表和掩码存储表经由矢量指令优化程序循环的方法 |
WO2013095493A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Instructions to perform groestl hashing |
CN103975302B (zh) * | 2011-12-22 | 2017-10-27 | 英特尔公司 | 矩阵乘法累加指令 |
CN104081337B (zh) * | 2011-12-23 | 2017-11-07 | 英特尔公司 | 用于响应于单个指令来执行横向部分求和的系统、装置和方法 |
US9389860B2 (en) | 2012-04-02 | 2016-07-12 | Apple Inc. | Prediction optimizations for Macroscalar vector partitioning loops |
US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
US10437602B2 (en) * | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
US9323532B2 (en) | 2012-07-18 | 2016-04-26 | International Business Machines Corporation | Predicting register pairs |
US9323529B2 (en) | 2012-07-18 | 2016-04-26 | International Business Machines Corporation | Reducing register read ports for register pairs |
US9298459B2 (en) * | 2012-07-18 | 2016-03-29 | International Business Machines Corporation | Managing register pairing |
JP6011194B2 (ja) * | 2012-09-21 | 2016-10-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US20140101412A1 (en) * | 2012-10-04 | 2014-04-10 | Ricardo Ramirez | Speculative privilege elevation |
US9411558B2 (en) | 2012-10-20 | 2016-08-09 | Luke Hutchison | Systems and methods for parallelization of program code, interactive data visualization, and graphically-augmented code editing |
US9646105B2 (en) * | 2012-11-08 | 2017-05-09 | Texas Instruments Incorporated | Reduced complexity hashing |
US8880829B2 (en) * | 2012-11-19 | 2014-11-04 | Qualcomm Innovation Center, Inc. | Method and apparatus for efficient, low-latency, streaming memory copies |
US9760966B2 (en) * | 2013-01-08 | 2017-09-12 | Nvidia Corporation | Parallel processor with integrated correlation and convolution engine |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
US9823924B2 (en) | 2013-01-23 | 2017-11-21 | International Business Machines Corporation | Vector element rotate and insert under mask instruction |
US9804840B2 (en) * | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
US9158667B2 (en) | 2013-03-04 | 2015-10-13 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9817663B2 (en) | 2013-03-19 | 2017-11-14 | Apple Inc. | Enhanced Macroscalar predicate operations |
US9348589B2 (en) | 2013-03-19 | 2016-05-24 | Apple Inc. | Enhanced predicate registers having predicates corresponding to element widths |
JP2014215914A (ja) * | 2013-04-26 | 2014-11-17 | 株式会社東芝 | 端末装置、情報処理方法及び情報処理プログラム |
GB2514611A (en) * | 2013-05-31 | 2014-12-03 | Ibm | Storage integrity validator |
US8964496B2 (en) | 2013-07-26 | 2015-02-24 | Micron Technology, Inc. | Apparatuses and methods for performing compare operations using sensing circuitry |
US8971124B1 (en) | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9459869B2 (en) * | 2013-08-20 | 2016-10-04 | Apple Inc. | Intelligent caching for an operand cache |
US9652233B2 (en) * | 2013-08-20 | 2017-05-16 | Apple Inc. | Hint values for use with an operand cache |
US9153305B2 (en) | 2013-08-30 | 2015-10-06 | Micron Technology, Inc. | Independently addressable memory array address spaces |
JP2015049832A (ja) * | 2013-09-04 | 2015-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 定数ロードのオーバーヘッドを削減する方法、装置及びプログラム |
US9501796B2 (en) | 2013-09-18 | 2016-11-22 | Chicago Mercantile Exchange Inc. | Dataset intersection determination |
US9019785B2 (en) | 2013-09-19 | 2015-04-28 | Micron Technology, Inc. | Data shifting via a number of isolation devices |
US9449675B2 (en) | 2013-10-31 | 2016-09-20 | Micron Technology, Inc. | Apparatuses and methods for identifying an extremum value stored in an array of memory cells |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
US9934856B2 (en) | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
WO2015183834A1 (en) | 2014-05-27 | 2015-12-03 | Rambus Inc. | Memory module with reduced read/write turnaround overhead |
US9449674B2 (en) | 2014-06-05 | 2016-09-20 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US9704540B2 (en) | 2014-06-05 | 2017-07-11 | Micron Technology, Inc. | Apparatuses and methods for parity determination using sensing circuitry |
US9496023B2 (en) | 2014-06-05 | 2016-11-15 | Micron Technology, Inc. | Comparison operations on logical representations of values in memory |
US9711206B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9455020B2 (en) | 2014-06-05 | 2016-09-27 | Micron Technology, Inc. | Apparatuses and methods for performing an exclusive or operation using sensing circuitry |
US10074407B2 (en) | 2014-06-05 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for performing invert operations using sensing circuitry |
US9786335B2 (en) | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9711207B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9910787B2 (en) | 2014-06-05 | 2018-03-06 | Micron Technology, Inc. | Virtual address table |
US9830999B2 (en) | 2014-06-05 | 2017-11-28 | Micron Technology, Inc. | Comparison operations in memory |
GB2522290B (en) * | 2014-07-14 | 2015-12-09 | Imagination Tech Ltd | Running a 32-bit operating system on a 64-bit machine |
US20160026484A1 (en) * | 2014-07-25 | 2016-01-28 | Soft Machines, Inc. | System converter that executes a just in time optimizer for executing code from a guest image |
US11281481B2 (en) | 2014-07-25 | 2022-03-22 | Intel Corporation | Using a plurality of conversion tables to implement an instruction set agnostic runtime architecture |
US10353680B2 (en) | 2014-07-25 | 2019-07-16 | Intel Corporation | System converter that implements a run ahead run time guest instruction conversion/decoding process and a prefetching process where guest code is pre-fetched from the target of guest branches in an instruction sequence |
EP3171277B1 (en) | 2014-08-12 | 2021-03-03 | Huawei Technologies Co. Ltd. | Method for managing files, distributed storage system and management node |
US9898252B2 (en) | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
US10068652B2 (en) | 2014-09-03 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for determining population count |
US9747961B2 (en) | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US9589602B2 (en) | 2014-09-03 | 2017-03-07 | Micron Technology, Inc. | Comparison operations in memory |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9847110B2 (en) | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
US9740607B2 (en) | 2014-09-03 | 2017-08-22 | Micron Technology, Inc. | Swap operations in memory |
US9715386B2 (en) | 2014-09-29 | 2017-07-25 | Apple Inc. | Conditional stop instruction with accurate dependency detection |
US9836218B2 (en) | 2014-10-03 | 2017-12-05 | Micron Technology, Inc. | Computing reduction and prefix sum operations in memory |
US9940026B2 (en) | 2014-10-03 | 2018-04-10 | Micron Technology, Inc. | Multidimensional contiguous memory allocation |
US10163467B2 (en) | 2014-10-16 | 2018-12-25 | Micron Technology, Inc. | Multiple endianness compatibility |
US10147480B2 (en) | 2014-10-24 | 2018-12-04 | Micron Technology, Inc. | Sort operation in memory |
US9779784B2 (en) | 2014-10-29 | 2017-10-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9292639B1 (en) * | 2014-10-30 | 2016-03-22 | Cadence Design Systems Inc. | Method and system for providing additional look-up tables |
US9292640B1 (en) * | 2014-10-30 | 2016-03-22 | Cadence Design Systems Inc. | Method and system for dynamic selection of a memory read port |
US9612841B1 (en) * | 2014-11-02 | 2017-04-04 | Netronome Systems, Inc. | Slice-based intelligent packet data register file |
US9519484B1 (en) * | 2014-11-02 | 2016-12-13 | Netronome Systems, Inc. | Picoengine instruction that controls an intelligent packet data register file prefetch function |
US10073635B2 (en) | 2014-12-01 | 2018-09-11 | Micron Technology, Inc. | Multiple endianness compatibility |
US9747960B2 (en) | 2014-12-01 | 2017-08-29 | Micron Technology, Inc. | Apparatuses and methods for converting a mask to an index |
US9696992B2 (en) * | 2014-12-23 | 2017-07-04 | Intel Corporation | Apparatus and method for performing a check to optimize instruction flow |
US10061590B2 (en) | 2015-01-07 | 2018-08-28 | Micron Technology, Inc. | Generating and executing a control flow |
US10032493B2 (en) | 2015-01-07 | 2018-07-24 | Micron Technology, Inc. | Longest element length determination in memory |
US9583163B2 (en) | 2015-02-03 | 2017-02-28 | Micron Technology, Inc. | Loop structure for operations in memory |
CN107408404B (zh) | 2015-02-06 | 2021-02-12 | 美光科技公司 | 用于存储器装置的设备及方法以作为程序指令的存储 |
CN107408405B (zh) | 2015-02-06 | 2021-03-05 | 美光科技公司 | 用于并行写入到多个存储器装置位置的设备及方法 |
WO2016126472A1 (en) | 2015-02-06 | 2016-08-11 | Micron Technology, Inc. | Apparatuses and methods for scatter and gather |
US10522212B2 (en) | 2015-03-10 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for shift decisions |
US9741399B2 (en) | 2015-03-11 | 2017-08-22 | Micron Technology, Inc. | Data shift by elements of a vector in memory |
US9898253B2 (en) | 2015-03-11 | 2018-02-20 | Micron Technology, Inc. | Division operations on variable length elements in memory |
US10365851B2 (en) | 2015-03-12 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10146537B2 (en) | 2015-03-13 | 2018-12-04 | Micron Technology, Inc. | Vector population count determination in memory |
US10049054B2 (en) | 2015-04-01 | 2018-08-14 | Micron Technology, Inc. | Virtual register file |
US10140104B2 (en) | 2015-04-14 | 2018-11-27 | Micron Technology, Inc. | Target architecture determination |
US9959923B2 (en) | 2015-04-16 | 2018-05-01 | Micron Technology, Inc. | Apparatuses and methods to reverse data stored in memory |
US10073786B2 (en) | 2015-05-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for compute enabled cache |
US9704541B2 (en) | 2015-06-12 | 2017-07-11 | Micron Technology, Inc. | Simulating access lines |
US9588952B2 (en) * | 2015-06-22 | 2017-03-07 | International Business Machines Corporation | Collaboratively reconstituting tables |
US9921777B2 (en) | 2015-06-22 | 2018-03-20 | Micron Technology, Inc. | Apparatuses and methods for data transfer from sensing circuitry to a controller |
US9710281B2 (en) * | 2015-07-30 | 2017-07-18 | International Business Machines Corporation | Register comparison for operand store compare (OSC) prediction |
US9996479B2 (en) | 2015-08-17 | 2018-06-12 | Micron Technology, Inc. | Encryption of executables in computational memory |
US9747189B2 (en) | 2015-11-12 | 2017-08-29 | International Business Machines Corporation | Breakpoint for predicted tuple processing time in a streaming environment |
US10936713B2 (en) * | 2015-12-17 | 2021-03-02 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
US10235176B2 (en) | 2015-12-17 | 2019-03-19 | The Charles Stark Draper Laboratory, Inc. | Techniques for metadata processing |
FR3045892B1 (fr) * | 2015-12-21 | 2018-06-22 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones. |
US9905276B2 (en) | 2015-12-21 | 2018-02-27 | Micron Technology, Inc. | Control of sensing components in association with performing operations |
US9952925B2 (en) | 2016-01-06 | 2018-04-24 | Micron Technology, Inc. | Error code calculation on sensing circuitry |
US10048888B2 (en) | 2016-02-10 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for partitioned parallel data movement |
US10146652B2 (en) * | 2016-02-11 | 2018-12-04 | International Business Machines Corporation | Resilient distributed storage system |
US10372334B2 (en) | 2016-02-11 | 2019-08-06 | International Business Machines Corporation | Reclaiming free space in a storage system |
US9892767B2 (en) | 2016-02-12 | 2018-02-13 | Micron Technology, Inc. | Data gathering in memory |
US9971541B2 (en) | 2016-02-17 | 2018-05-15 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US9899070B2 (en) | 2016-02-19 | 2018-02-20 | Micron Technology, Inc. | Modified decode for corner turn |
US10956439B2 (en) | 2016-02-19 | 2021-03-23 | Micron Technology, Inc. | Data transfer with a bit vector operation device |
US9697876B1 (en) | 2016-03-01 | 2017-07-04 | Micron Technology, Inc. | Vertical bit vector shift in memory |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10262721B2 (en) | 2016-03-10 | 2019-04-16 | Micron Technology, Inc. | Apparatuses and methods for cache invalidate |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10379772B2 (en) | 2016-03-16 | 2019-08-13 | Micron Technology, Inc. | Apparatuses and methods for operations using compressed and decompressed data |
US9910637B2 (en) | 2016-03-17 | 2018-03-06 | Micron Technology, Inc. | Signed division in memory |
US10388393B2 (en) | 2016-03-22 | 2019-08-20 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10120740B2 (en) | 2016-03-22 | 2018-11-06 | Micron Technology, Inc. | Apparatus and methods for debugging on a memory device |
US11074988B2 (en) | 2016-03-22 | 2021-07-27 | Micron Technology, Inc. | Apparatus and methods for debugging on a host and memory device |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10977033B2 (en) | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US10474581B2 (en) | 2016-03-25 | 2019-11-12 | Micron Technology, Inc. | Apparatuses and methods for cache operations |
US10074416B2 (en) | 2016-03-28 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for data movement |
US10430244B2 (en) | 2016-03-28 | 2019-10-01 | Micron Technology, Inc. | Apparatuses and methods to determine timing of operations |
US10453502B2 (en) | 2016-04-04 | 2019-10-22 | Micron Technology, Inc. | Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions |
US10607665B2 (en) | 2016-04-07 | 2020-03-31 | Micron Technology, Inc. | Span mask generation |
US10331601B2 (en) * | 2016-04-15 | 2019-06-25 | Infinera Corporation | Systems, apparatus, and methods for efficient space to time conversion of OTU multiplexed signal |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US9818459B2 (en) | 2016-04-19 | 2017-11-14 | Micron Technology, Inc. | Invert operations using sensing circuitry |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10153008B2 (en) | 2016-04-20 | 2018-12-11 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US10042608B2 (en) | 2016-05-11 | 2018-08-07 | Micron Technology, Inc. | Signed division in memory |
US9659610B1 (en) | 2016-05-18 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for shifting data |
US10049707B2 (en) | 2016-06-03 | 2018-08-14 | Micron Technology, Inc. | Shifting data |
US9934033B2 (en) * | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US10387046B2 (en) | 2016-06-22 | 2019-08-20 | Micron Technology, Inc. | Bank to bank data transfer |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10275243B2 (en) | 2016-07-02 | 2019-04-30 | Intel Corporation | Interruptible and restartable matrix multiplication instructions, processors, methods, and systems |
US10037785B2 (en) | 2016-07-08 | 2018-07-31 | Micron Technology, Inc. | Scan chain operation in sensing circuitry |
US10388360B2 (en) | 2016-07-19 | 2019-08-20 | Micron Technology, Inc. | Utilization of data stored in an edge section of an array |
US10387299B2 (en) | 2016-07-20 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods for transferring data |
US10733089B2 (en) | 2016-07-20 | 2020-08-04 | Micron Technology, Inc. | Apparatuses and methods for write address tracking |
US9972367B2 (en) | 2016-07-21 | 2018-05-15 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US9767864B1 (en) | 2016-07-21 | 2017-09-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in a sensing circuitry element |
US10303632B2 (en) | 2016-07-26 | 2019-05-28 | Micron Technology, Inc. | Accessing status information |
US10468087B2 (en) | 2016-07-28 | 2019-11-05 | Micron Technology, Inc. | Apparatuses and methods for operations in a self-refresh state |
US9990181B2 (en) | 2016-08-03 | 2018-06-05 | Micron Technology, Inc. | Apparatuses and methods for random number generation |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
US20190303743A1 (en) * | 2016-08-13 | 2019-10-03 | Intel Corporation | Apparatuses, methods, and systems for neural networks |
US11029951B2 (en) | 2016-08-15 | 2021-06-08 | Micron Technology, Inc. | Smallest or largest value element determination |
US10606587B2 (en) | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
US10466928B2 (en) | 2016-09-15 | 2019-11-05 | Micron Technology, Inc. | Updating a register in memory |
US10387058B2 (en) | 2016-09-29 | 2019-08-20 | Micron Technology, Inc. | Apparatuses and methods to change data category values |
US10014034B2 (en) | 2016-10-06 | 2018-07-03 | Micron Technology, Inc. | Shifting data in sensing circuitry |
US10529409B2 (en) | 2016-10-13 | 2020-01-07 | Micron Technology, Inc. | Apparatuses and methods to perform logical operations using sensing circuitry |
US9805772B1 (en) | 2016-10-20 | 2017-10-31 | Micron Technology, Inc. | Apparatuses and methods to selectively perform logical operations |
US10373666B2 (en) | 2016-11-08 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods for compute components formed over an array of memory cells |
US10423353B2 (en) | 2016-11-11 | 2019-09-24 | Micron Technology, Inc. | Apparatuses and methods for memory alignment |
US9761300B1 (en) | 2016-11-22 | 2017-09-12 | Micron Technology, Inc. | Data shift apparatuses and methods |
US10303612B2 (en) * | 2016-12-30 | 2019-05-28 | Intel Corporation | Power and performance-efficient cache design for a memory encryption engine |
US10275391B2 (en) | 2017-01-23 | 2019-04-30 | International Business Machines Corporation | Combining of several execution units to compute a single wide scalar result |
US10402340B2 (en) | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10403352B2 (en) | 2017-02-22 | 2019-09-03 | Micron Technology, Inc. | Apparatuses and methods for compute in data path |
US10268389B2 (en) | 2017-02-22 | 2019-04-23 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
TWI731044B (zh) * | 2017-03-10 | 2021-06-21 | 張錦本 | 應用256位元之雙碼錯誤檢測裝置及方法 |
WO2018174931A1 (en) | 2017-03-20 | 2018-09-27 | Intel Corporation | Systems, methods, and appartus for tile configuration |
US10838899B2 (en) | 2017-03-21 | 2020-11-17 | Micron Technology, Inc. | Apparatuses and methods for in-memory data switching networks |
US10185674B2 (en) | 2017-03-22 | 2019-01-22 | Micron Technology, Inc. | Apparatus and methods for in data path compute operations |
US11222260B2 (en) | 2017-03-22 | 2022-01-11 | Micron Technology, Inc. | Apparatuses and methods for operating neural networks |
US10049721B1 (en) | 2017-03-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations |
US10043570B1 (en) | 2017-04-17 | 2018-08-07 | Micron Technology, Inc. | Signed element compare in memory |
US10147467B2 (en) | 2017-04-17 | 2018-12-04 | Micron Technology, Inc. | Element value comparison in memory |
US9997212B1 (en) | 2017-04-24 | 2018-06-12 | Micron Technology, Inc. | Accessing data in memory |
US10942843B2 (en) | 2017-04-25 | 2021-03-09 | Micron Technology, Inc. | Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes |
US10236038B2 (en) | 2017-05-15 | 2019-03-19 | Micron Technology, Inc. | Bank to bank data transfer |
US10068664B1 (en) | 2017-05-19 | 2018-09-04 | Micron Technology, Inc. | Column repair in memory |
US10013197B1 (en) | 2017-06-01 | 2018-07-03 | Micron Technology, Inc. | Shift skip |
US10262701B2 (en) | 2017-06-07 | 2019-04-16 | Micron Technology, Inc. | Data transfer between subarrays in memory |
US10152271B1 (en) | 2017-06-07 | 2018-12-11 | Micron Technology, Inc. | Data replication |
US10318168B2 (en) | 2017-06-19 | 2019-06-11 | Micron Technology, Inc. | Apparatuses and methods for simultaneous in data path compute operations |
EP3418829B1 (en) * | 2017-06-21 | 2022-08-24 | Tetra Laval Holdings & Finance S.A. | Method of logging process data in a plc controlled equipment |
WO2019009870A1 (en) | 2017-07-01 | 2019-01-10 | Intel Corporation | SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE |
GB2564853B (en) * | 2017-07-20 | 2021-09-08 | Advanced Risc Mach Ltd | Vector interleaving in a data processing apparatus |
US10162005B1 (en) | 2017-08-09 | 2018-12-25 | Micron Technology, Inc. | Scan chain operations |
US10534553B2 (en) | 2017-08-30 | 2020-01-14 | Micron Technology, Inc. | Memory array accessibility |
US10741239B2 (en) | 2017-08-31 | 2020-08-11 | Micron Technology, Inc. | Processing in memory device including a row address strobe manager |
US10416927B2 (en) | 2017-08-31 | 2019-09-17 | Micron Technology, Inc. | Processing in memory |
US10346092B2 (en) | 2017-08-31 | 2019-07-09 | Micron Technology, Inc. | Apparatuses and methods for in-memory operations using timing circuitry |
CN111052742A (zh) * | 2017-09-30 | 2020-04-21 | 深圳市大疆创新科技有限公司 | 图像处理 |
US10409739B2 (en) | 2017-10-24 | 2019-09-10 | Micron Technology, Inc. | Command selection policy |
US10522210B2 (en) | 2017-12-14 | 2019-12-31 | Micron Technology, Inc. | Apparatuses and methods for subarray addressing |
US10332586B1 (en) | 2017-12-19 | 2019-06-25 | Micron Technology, Inc. | Apparatuses and methods for subrow addressing |
US10346133B1 (en) | 2017-12-21 | 2019-07-09 | Qualcomm Incorporated | System and method of floating point multiply operation processing |
US11809869B2 (en) | 2017-12-29 | 2023-11-07 | Intel Corporation | Systems and methods to store a tile register pair to memory |
US11023235B2 (en) | 2017-12-29 | 2021-06-01 | Intel Corporation | Systems and methods to zero a tile register pair |
US11669326B2 (en) | 2017-12-29 | 2023-06-06 | Intel Corporation | Systems, methods, and apparatuses for dot product operations |
US11093247B2 (en) | 2017-12-29 | 2021-08-17 | Intel Corporation | Systems and methods to load a tile register pair |
US11816483B2 (en) * | 2017-12-29 | 2023-11-14 | Intel Corporation | Systems, methods, and apparatuses for matrix operations |
US11789729B2 (en) | 2017-12-29 | 2023-10-17 | Intel Corporation | Systems and methods for computing dot products of nibbles in two tile operands |
US10614875B2 (en) | 2018-01-30 | 2020-04-07 | Micron Technology, Inc. | Logical operations using memory cells |
US10437557B2 (en) | 2018-01-31 | 2019-10-08 | Micron Technology, Inc. | Determination of a match between data values stored by several arrays |
US11194477B2 (en) | 2018-01-31 | 2021-12-07 | Micron Technology, Inc. | Determination of a match between data values stored by three or more arrays |
EP3746925B1 (en) | 2018-02-02 | 2024-09-11 | The Charles Stark Draper Laboratory Inc. | Systems and methods for policy execution processing |
WO2019152792A1 (en) | 2018-02-02 | 2019-08-08 | Dover Microsystems, Inc. | Systems and methods for policy linking and/or loading for secure initialization |
US10713021B2 (en) * | 2018-03-05 | 2020-07-14 | Apple Inc. | Geometric 64-bit capability pointer |
US10664287B2 (en) | 2018-03-30 | 2020-05-26 | Intel Corporation | Systems and methods for implementing chained tile operations |
US10725696B2 (en) | 2018-04-12 | 2020-07-28 | Micron Technology, Inc. | Command selection policy with read priority |
WO2019213061A1 (en) | 2018-04-30 | 2019-11-07 | Dover Microsystems, Inc. | Systems and methods for checking safety properties |
US10440341B1 (en) | 2018-06-07 | 2019-10-08 | Micron Technology, Inc. | Image processor formed in an array of memory cells |
US11171983B2 (en) * | 2018-06-29 | 2021-11-09 | Intel Corporation | Techniques to provide function-level isolation with capability-based security |
US10942768B2 (en) * | 2018-08-29 | 2021-03-09 | Red Hat, Inc. | Computing task scheduling in a computer system utilizing efficient attributed priority queues |
CN108809294B (zh) * | 2018-08-30 | 2023-11-14 | 北京神经元网络技术有限公司 | 一种动态单元匹配电路 |
US11093579B2 (en) | 2018-09-05 | 2021-08-17 | Intel Corporation | FP16-S7E8 mixed precision for deep learning and other algorithms |
US10970076B2 (en) | 2018-09-14 | 2021-04-06 | Intel Corporation | Systems and methods for performing instructions specifying ternary tile logic operations |
US11579883B2 (en) | 2018-09-14 | 2023-02-14 | Intel Corporation | Systems and methods for performing horizontal tile operations |
US10866786B2 (en) | 2018-09-27 | 2020-12-15 | Intel Corporation | Systems and methods for performing instructions to transpose rectangular tiles |
US10990396B2 (en) | 2018-09-27 | 2021-04-27 | Intel Corporation | Systems for performing instructions to quickly convert and use tiles as 1D vectors |
US10719323B2 (en) | 2018-09-27 | 2020-07-21 | Intel Corporation | Systems and methods for performing matrix compress and decompress instructions |
US10963256B2 (en) | 2018-09-28 | 2021-03-30 | Intel Corporation | Systems and methods for performing instructions to transform matrices into row-interleaved format |
US10929143B2 (en) | 2018-09-28 | 2021-02-23 | Intel Corporation | Method and apparatus for efficient matrix alignment in a systolic array |
US10896043B2 (en) | 2018-09-28 | 2021-01-19 | Intel Corporation | Systems for performing instructions for fast element unpacking into 2-dimensional registers |
US10769071B2 (en) | 2018-10-10 | 2020-09-08 | Micron Technology, Inc. | Coherent memory access |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10483978B1 (en) | 2018-10-16 | 2019-11-19 | Micron Technology, Inc. | Memory device processing |
TW202022679A (zh) | 2018-11-06 | 2020-06-16 | 美商多佛微系統公司 | 用於停滯主處理器的系統和方法 |
US10963246B2 (en) | 2018-11-09 | 2021-03-30 | Intel Corporation | Systems and methods for performing 16-bit floating-point matrix dot product instructions |
US11184446B2 (en) | 2018-12-05 | 2021-11-23 | Micron Technology, Inc. | Methods and apparatus for incentivizing participation in fog networks |
US10761822B1 (en) * | 2018-12-12 | 2020-09-01 | Amazon Technologies, Inc. | Synchronization of computation engines with non-blocking instructions |
US11841956B2 (en) | 2018-12-18 | 2023-12-12 | Dover Microsystems, Inc. | Systems and methods for data lifecycle protection |
US10877864B2 (en) | 2018-12-20 | 2020-12-29 | International Business Machines Corporation | Controlling segment layout in a stress test for a processor memory with a link stack |
US10929503B2 (en) | 2018-12-21 | 2021-02-23 | Intel Corporation | Apparatus and method for a masked multiply instruction to support neural network pruning operations |
US11886875B2 (en) | 2018-12-26 | 2024-01-30 | Intel Corporation | Systems and methods for performing nibble-sized operations on matrix elements |
US11294671B2 (en) | 2018-12-26 | 2022-04-05 | Intel Corporation | Systems and methods for performing duplicate detection instructions on 2D data |
US20200210517A1 (en) | 2018-12-27 | 2020-07-02 | Intel Corporation | Systems and methods to accelerate multiplication of sparse matrices |
US10942985B2 (en) | 2018-12-29 | 2021-03-09 | Intel Corporation | Apparatuses, methods, and systems for fast fourier transform configuration and computation instructions |
US10922077B2 (en) | 2018-12-29 | 2021-02-16 | Intel Corporation | Apparatuses, methods, and systems for stencil configuration and computation instructions |
US11036545B2 (en) * | 2019-03-15 | 2021-06-15 | Intel Corporation | Graphics systems and methods for accelerating synchronization using fine grain dependency check and scheduling optimizations based on available shared memory space |
US11016731B2 (en) | 2019-03-29 | 2021-05-25 | Intel Corporation | Using Fuzzy-Jbit location of floating-point multiply-accumulate results |
US11269630B2 (en) | 2019-03-29 | 2022-03-08 | Intel Corporation | Interleaved pipeline of floating-point adders |
US10990397B2 (en) | 2019-03-30 | 2021-04-27 | Intel Corporation | Apparatuses, methods, and systems for transpose instructions of a matrix operations accelerator |
US11175891B2 (en) | 2019-03-30 | 2021-11-16 | Intel Corporation | Systems and methods to perform floating-point addition with selected rounding |
US12118056B2 (en) | 2019-05-03 | 2024-10-15 | Micron Technology, Inc. | Methods and apparatus for performing matrix transformations within a memory array |
US11403097B2 (en) | 2019-06-26 | 2022-08-02 | Intel Corporation | Systems and methods to skip inconsequential matrix operations |
US11334647B2 (en) | 2019-06-29 | 2022-05-17 | Intel Corporation | Apparatuses, methods, and systems for enhanced matrix multiplier architecture |
US10867655B1 (en) | 2019-07-08 | 2020-12-15 | Micron Technology, Inc. | Methods and apparatus for dynamically adjusting performance of partitioned memory |
CN110365767B (zh) * | 2019-07-12 | 2021-08-20 | 成都安恒信息技术有限公司 | 一种运维审计系统的单次运维多tcp连接聚合方法 |
US11360768B2 (en) | 2019-08-14 | 2022-06-14 | Micron Technolgy, Inc. | Bit string operations in memory |
US11693657B2 (en) * | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Methods for performing fused-multiply-add operations on serially allocated data within a processing-in-memory capable memory device, and related memory devices and systems |
US11829729B2 (en) | 2019-09-05 | 2023-11-28 | Micron Technology, Inc. | Spatiotemporal fused-multiply-add, and related systems, methods and devices |
US11934824B2 (en) | 2019-09-05 | 2024-03-19 | Micron Technology, Inc. | Methods for performing processing-in-memory operations, and related memory devices and systems |
CN112559397A (zh) | 2019-09-26 | 2021-03-26 | 阿里巴巴集团控股有限公司 | 一种装置和方法 |
US12079197B2 (en) | 2019-10-18 | 2024-09-03 | Dover Microsystems, Inc. | Systems and methods for updating metadata |
US11194581B2 (en) * | 2019-10-21 | 2021-12-07 | Arm Limited | Controlling the operation of a decoupled access-execute processor |
US11449577B2 (en) | 2019-11-20 | 2022-09-20 | Micron Technology, Inc. | Methods and apparatus for performing video processing matrix operations within a memory array |
US11853385B2 (en) | 2019-12-05 | 2023-12-26 | Micron Technology, Inc. | Methods and apparatus for performing diversity matrix operations within a memory array |
US11714875B2 (en) | 2019-12-28 | 2023-08-01 | Intel Corporation | Apparatuses, methods, and systems for instructions of a matrix operations accelerator |
US11182159B2 (en) * | 2020-02-26 | 2021-11-23 | Google Llc | Vector reductions using shared scratchpad memory |
US11537861B2 (en) | 2020-06-23 | 2022-12-27 | Micron Technology, Inc. | Methods of performing processing-in-memory operations, and related devices and systems |
US11972230B2 (en) | 2020-06-27 | 2024-04-30 | Intel Corporation | Matrix transpose and multiply |
US12112167B2 (en) | 2020-06-27 | 2024-10-08 | Intel Corporation | Matrix data scatter and gather between rows and irregularly spaced memory locations |
US11069422B1 (en) | 2020-07-07 | 2021-07-20 | International Business Machines Corporation | Testing multi-port array in integrated circuits |
US11227641B1 (en) | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
US11941395B2 (en) | 2020-09-26 | 2024-03-26 | Intel Corporation | Apparatuses, methods, and systems for instructions for 16-bit floating-point matrix dot product instructions |
KR20220046308A (ko) * | 2020-10-07 | 2022-04-14 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US12001385B2 (en) | 2020-12-24 | 2024-06-04 | Intel Corporation | Apparatuses, methods, and systems for instructions for loading a tile of a matrix operations accelerator |
US12001887B2 (en) | 2020-12-24 | 2024-06-04 | Intel Corporation | Apparatuses, methods, and systems for instructions for aligning tiles of a matrix operations accelerator |
US12105589B2 (en) * | 2022-02-23 | 2024-10-01 | Micron Technology, Inc. | Parity-based error management for a processing system |
CN116319203B (zh) * | 2023-03-21 | 2023-11-28 | 哈尔滨工业大学 | 用于区分用户的有限域资源构建方法、多址接入系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0417707A2 (en) * | 1989-09-11 | 1991-03-20 | Hitachi, Ltd. | Microcomputer with address registers for dynamic bus control |
JPH04352518A (ja) * | 1991-05-30 | 1992-12-07 | Matsushita Electric Ind Co Ltd | 演算装置 |
EP0597441A1 (en) * | 1992-11-09 | 1994-05-18 | Kabushiki Kaisha Toshiba | Microprocessor having a bus-width change function |
JPH06292178A (ja) * | 1993-03-31 | 1994-10-18 | Sony Corp | 適応形ビデオ信号演算処理装置 |
JPH07114469A (ja) * | 1993-10-18 | 1995-05-02 | Mitsubishi Electric Corp | データ処理装置 |
JPH0830577A (ja) * | 1994-07-15 | 1996-02-02 | Mitsubishi Electric Corp | Simdプロセッサ |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
JPH10285052A (ja) * | 1997-04-02 | 1998-10-23 | Matsushita Electric Ind Co Ltd | ユークリッド復号法およびユークリッド復号回路 |
JP2001084229A (ja) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd型プロセッサ |
JP2001184338A (ja) * | 1999-12-22 | 2001-07-06 | Hitachi Ltd | Imdctの実行方法、圧縮信号の伸長方法、音声信号伸長装置、及び、imdct変換を実行する計算装置 |
JP2002528786A (ja) * | 1998-08-24 | 2002-09-03 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | ワイド・オペランド・アーキテクチャを含むシステムおよび方法 |
JP2003122736A (ja) * | 2001-10-11 | 2003-04-25 | Matsushita Electric Ind Co Ltd | 行列演算装置 |
Family Cites Families (223)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US533280A (en) * | 1895-01-29 | doug-las | ||
US641194A (en) * | 1899-03-28 | 1900-01-09 | William F Cooper | Acetylene-generator. |
US3581279A (en) | 1969-06-09 | 1971-05-25 | Computer Modem Corp | Signal transmission method and system |
US3833889A (en) * | 1973-03-08 | 1974-09-03 | Control Data Corp | Multi-mode data processing system |
US4025772A (en) | 1974-03-13 | 1977-05-24 | James Nickolas Constant | Digital convolver matched filter and correlator |
US4251875A (en) * | 1979-02-12 | 1981-02-17 | Sperry Corporation | Sequential Galois multiplication in GF(2n) with GF(2m) Galois multiplication gates |
US4353119A (en) * | 1980-06-13 | 1982-10-05 | Motorola Inc. | Adaptive antenna array including batch covariance relaxation apparatus and method |
JPS5717049A (en) | 1980-07-04 | 1982-01-28 | Hitachi Ltd | Direct memory access controlling circuit and data processing system |
US4393468A (en) | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
US4489393A (en) | 1981-12-02 | 1984-12-18 | Trw Inc. | Monolithic discrete-time digital convolution circuit |
US4509119A (en) | 1982-06-24 | 1985-04-02 | International Business Machines Corporation | Method for managing a buffer pool referenced by batch and interactive processes |
FI72025C (fi) * | 1982-11-04 | 1987-04-13 | Valmet Oy | Regleringssystem foer en traktor. |
JPS5987243A (ja) * | 1982-11-10 | 1984-05-19 | Fuji Heavy Ind Ltd | 内燃機関の空燃比制御装置 |
DE3485491D1 (de) | 1983-11-26 | 1992-03-12 | Toshiba Kawasaki Kk | Arithmetischer konvolutionskreis. |
US4727505A (en) | 1984-03-29 | 1988-02-23 | Kabushiki Kaisha Toshiba | Convolution arithmetic circuit for digital signal processing |
JPS60217435A (ja) | 1984-04-12 | 1985-10-31 | Toshiba Corp | 多重精度浮動小数点加算回路 |
US4823259A (en) | 1984-06-29 | 1989-04-18 | International Business Machines Corporation | High speed buffer store arrangement for quick wide transfer of data |
US4785393A (en) | 1984-07-09 | 1988-11-15 | Advanced Micro Devices, Inc. | 32-Bit extended function arithmetic-logic unit on a single chip |
US4875161A (en) | 1985-07-31 | 1989-10-17 | Unisys Corporation | Scientific processor vector file organization |
US4748579A (en) * | 1985-08-14 | 1988-05-31 | Gte Laboratories Incorporated | Method and circuit for performing discrete transforms |
US4953073A (en) | 1986-02-06 | 1990-08-28 | Mips Computer Systems, Inc. | Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories |
DE3687124T2 (de) | 1986-02-06 | 1993-03-18 | Mips Computer Systems Inc | Funktionseinheit fuer rechner. |
FR2605769B1 (fr) | 1986-10-22 | 1988-12-09 | Thomson Csf | Operateur polynomial dans les corps de galois et processeur de traitement de signal numerique comportant un tel operateur |
US4814976C1 (en) | 1986-12-23 | 2002-06-04 | Mips Tech Inc | Risc computer with unaligned reference handling and method for the same |
US4876660A (en) | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
US5132898A (en) | 1987-09-30 | 1992-07-21 | Mitsubishi Denki Kabushiki Kaisha | System for processing data having different formats |
FR2622713A1 (fr) | 1987-10-30 | 1989-05-05 | Thomson Csf | Circuit de calcul utilisant une arithmetique residuelle |
US5032865A (en) | 1987-12-14 | 1991-07-16 | General Dynamics Corporation Air Defense Systems Div. | Calculating the dot product of large dimensional vectors in two's complement representation |
US4930106A (en) | 1988-08-29 | 1990-05-29 | Unisys Corporation | Dual cache RAM for rapid invalidation |
US4943919A (en) | 1988-10-17 | 1990-07-24 | The Boeing Company | Central maintenance computer system and fault data handling method |
US4893267A (en) | 1988-11-01 | 1990-01-09 | Motorola, Inc. | Method and apparatus for a data processor to support multi-mode, multi-precision integer arithmetic |
US5179651A (en) | 1988-11-08 | 1993-01-12 | Massachusetts General Hospital | Apparatus for retrieval and processing of selected archived images for display at workstation terminals |
CA1311063C (en) | 1988-12-16 | 1992-12-01 | Tokumichi Murakami | Digital signal processor |
US4969118A (en) | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US5253342A (en) | 1989-01-18 | 1993-10-12 | International Business Machines Corporation | Intermachine communication services |
US5155816A (en) | 1989-02-10 | 1992-10-13 | Intel Corporation | Pipelined apparatus and method for controlled loading of floating point data in a microprocessor |
US5157388A (en) | 1989-02-14 | 1992-10-20 | Intel Corporation | Method and apparatus for graphics data interpolation |
US5081698A (en) | 1989-02-14 | 1992-01-14 | Intel Corporation | Method and apparatus for graphics display data manipulation |
US4975868A (en) | 1989-04-17 | 1990-12-04 | International Business Machines Corporation | Floating-point processor having pre-adjusted exponent bias for multiplication and division |
CA1323451C (en) | 1989-04-21 | 1993-10-19 | Victor Jacques Menasce | Cache-memory architecture |
US5031135A (en) | 1989-05-19 | 1991-07-09 | Hitachi Micro Systems, Inc. | Device for multi-precision and block arithmetic support in digital processors |
US5287484A (en) * | 1989-06-21 | 1994-02-15 | Hitachi, Ltd. | Multi-processor system for invalidating hierarchical cache |
US5233690A (en) | 1989-07-28 | 1993-08-03 | Texas Instruments Incorporated | Video graphics display memory swizzle logic and expansion circuit and method |
US5283886A (en) | 1989-08-11 | 1994-02-01 | Hitachi, Ltd. | Multiprocessor cache system having three states for generating invalidating signals upon write accesses |
US5170399A (en) * | 1989-08-30 | 1992-12-08 | Idaho Research Foundation, Inc. | Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack |
US4956801A (en) | 1989-09-15 | 1990-09-11 | Sun Microsystems, Inc. | Matrix arithmetic circuit for processing matrix transformation operations |
DE68928980T2 (de) | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
US5471593A (en) * | 1989-12-11 | 1995-11-28 | Branigin; Michael H. | Computer processor with an efficient means of executing many instructions simultaneously |
US5208914A (en) | 1989-12-29 | 1993-05-04 | Superconductor Systems Limited Partnership | Method and apparatus for non-sequential resource access |
US5241636A (en) | 1990-02-14 | 1993-08-31 | Intel Corporation | Method for parallel instruction execution in a computer |
KR930008050B1 (ko) | 1990-02-16 | 1993-08-25 | 가부시끼가이샤 히다찌세이사꾸쇼 | 원칩 마이크로프로세서 및 그 버스시스템 |
JPH04219859A (ja) | 1990-03-12 | 1992-08-10 | Hewlett Packard Co <Hp> | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ |
US5590365A (en) | 1990-03-30 | 1996-12-31 | Kabushiki Kaisha Toshiba | Pipeline information processing circuit for floating point operations |
US5333280A (en) * | 1990-04-06 | 1994-07-26 | Nec Corporation | Parallel pipelined instruction processing system for very long instruction word |
US5201056A (en) | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
CA2045705A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | In-register data manipulation in reduced instruction set processor |
JP2651267B2 (ja) | 1990-07-26 | 1997-09-10 | 富士通株式会社 | 演算処理装置及び演算処理方法 |
JPH0484253A (ja) | 1990-07-26 | 1992-03-17 | Mitsubishi Electric Corp | バス幅制御回路 |
US5249132A (en) | 1990-10-31 | 1993-09-28 | Tektronix, Inc. | Digital pulse generator |
JP3144794B2 (ja) * | 1990-11-09 | 2001-03-12 | 株式会社日立製作所 | マルチプロセッサシステム |
US5809292A (en) | 1990-11-13 | 1998-09-15 | International Business Machines Corporation | Floating point for simid array machine |
US5588152A (en) | 1990-11-13 | 1996-12-24 | International Business Machines Corporation | Advanced parallel processor including advanced support hardware |
JP3100622B2 (ja) | 1990-11-20 | 2000-10-16 | 沖電気工業株式会社 | 同期型ダイナミックram |
US5268995A (en) | 1990-11-21 | 1993-12-07 | Motorola, Inc. | Method for executing graphics Z-compare and pixel merge instructions in a data processor |
JP2678527B2 (ja) * | 1991-01-08 | 1997-11-17 | 三菱電機株式会社 | キャッシュメモリ装置 |
DE69233510T2 (de) | 1991-03-01 | 2006-02-02 | Advanced Micro Devices, Inc., Sunnyvale | Ausgangspuffer für Mikroprozessor |
US5408581A (en) | 1991-03-14 | 1995-04-18 | Technology Research Association Of Medical And Welfare Apparatus | Apparatus and method for speech signal processing |
JP2816624B2 (ja) | 1991-04-01 | 1998-10-27 | モトローラ・インコーポレイテッド | 2乗演算を実行する速度改良型データ処理システム及びその方法 |
FR2676845B1 (fr) | 1991-05-23 | 1993-09-24 | Sextant Avionique | Dispositif pour la gestion de plusieurs files d'attente independantes dans un espace memoire commun et banalise. |
FR2677200B1 (fr) | 1991-05-30 | 1993-09-17 | Besnard Christian | Dispositif de securisation de donnees numeriques. |
US5636363A (en) * | 1991-06-14 | 1997-06-03 | Integrated Device Technology, Inc. | Hardware control structure and method for off-chip monitoring entries of an on-chip cache |
US5325495A (en) | 1991-06-28 | 1994-06-28 | Digital Equipment Corporation | Reducing stall delay in pipelined computer system using queue between pipeline stages |
US5327570A (en) | 1991-07-22 | 1994-07-05 | International Business Machines Corporation | Multiprocessor system having local write cache within each data processor node |
US5185861A (en) * | 1991-08-19 | 1993-02-09 | Sequent Computer Systems, Inc. | Cache affinity scheduler |
WO1993011500A1 (en) | 1991-11-27 | 1993-06-10 | Seiko Epson Corporation | Pixel modification unit |
US5530960A (en) | 1991-12-17 | 1996-06-25 | Dell Usa, L.P. | Disk drive controller accepting first commands for accessing composite drives and second commands for individual diagnostic drive control wherein commands are transparent to each other |
US5231646A (en) | 1992-03-16 | 1993-07-27 | Kyros Corporation | Communications system |
US5669010A (en) | 1992-05-18 | 1997-09-16 | Silicon Engines | Cascaded two-stage computational SIMD engine having multi-port memory and multiple arithmetic units |
US5640543A (en) | 1992-06-19 | 1997-06-17 | Intel Corporation | Scalable multimedia platform architecture |
US5471628A (en) | 1992-06-30 | 1995-11-28 | International Business Machines Corporation | Multi-function permutation switch for rotating and manipulating an order of bits of an input data byte in either cyclic or non-cyclic mode |
US5282598A (en) * | 1992-07-21 | 1994-02-01 | Greene Barry N | Container holder |
JP3268024B2 (ja) | 1992-08-25 | 2002-03-25 | 日本化学産業株式会社 | 天井の換気構造 |
US5268855A (en) | 1992-09-14 | 1993-12-07 | Hewlett-Packard Company | Common format for encoding both single and double precision floating point numbers |
US5256994A (en) | 1992-09-21 | 1993-10-26 | Intel Corporation | Programmable secondary clock generator |
US5423051A (en) | 1992-09-24 | 1995-06-06 | International Business Machines Corporation | Execution unit with an integrated vector operation capability |
IE922813A1 (en) | 1992-11-12 | 1994-05-18 | Digital Equipment Internat Ltd | Digital data storage system |
JP3069455B2 (ja) * | 1992-12-22 | 2000-07-24 | 富士写真フイルム株式会社 | 画像データ圧縮伸張装置における量子化・逆量子化回路 |
US5519842A (en) * | 1993-02-26 | 1996-05-21 | Intel Corporation | Method and apparatus for performing unaligned little endian and big endian data accesses in a processing system |
US5327369A (en) | 1993-03-31 | 1994-07-05 | Intel Corporation | Digital adder and method for adding 64-bit, 16-bit and 8-bit words |
US5671170A (en) * | 1993-05-05 | 1997-09-23 | Hewlett-Packard Company | Method and apparatus for correctly rounding results of division and square root computations |
WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
JP3203401B2 (ja) * | 1993-05-21 | 2001-08-27 | 三菱電機株式会社 | データ処理装置 |
US5522054A (en) | 1993-09-13 | 1996-05-28 | Compaq Computer Corporation | Dynamic control of outstanding hard disk read requests for sequential and random operations |
US5395240A (en) * | 1993-09-14 | 1995-03-07 | Dentsply Research & Development Corp. | Sterilizable dental medical handpiece containing electric coil |
US5371772A (en) | 1993-09-14 | 1994-12-06 | Intel Corporation | Programmable divider exhibiting a 50/50 duty cycle |
US5426600A (en) | 1993-09-27 | 1995-06-20 | Hitachi America, Ltd. | Double precision division circuit and method for digital signal processor |
US5557724A (en) | 1993-10-12 | 1996-09-17 | Intel Corporation | User interface, method, and apparatus selecting and playing channels having video, audio, and/or text streams |
US5535225A (en) * | 1993-10-12 | 1996-07-09 | Hughes Aircraft Company | Time domain algebraic encoder/decoder |
EP0649085B1 (en) | 1993-10-18 | 1998-03-04 | Cyrix Corporation | Microprocessor pipe control and register translation |
JPH07114496A (ja) | 1993-10-20 | 1995-05-02 | Toshiba Corp | 共有メモリ制御回路 |
US5448185A (en) * | 1993-10-27 | 1995-09-05 | Actel Corporation | Programmable dedicated FPGA functional blocks for multiple wide-input functions |
DE69429061T2 (de) | 1993-10-29 | 2002-07-18 | Advanced Micro Devices, Inc. | Superskalarmikroprozessoren |
JP3487903B2 (ja) | 1993-11-12 | 2004-01-19 | 松下電器産業株式会社 | 演算装置及び演算方法 |
US6128721A (en) | 1993-11-17 | 2000-10-03 | Sun Microsystems, Inc. | Temporary pipeline register file for a superpipelined superscalar processor |
EP0654733B1 (en) | 1993-11-23 | 2000-05-24 | Hewlett-Packard Company | Parallel data processing in a single processor |
US5390135A (en) | 1993-11-29 | 1995-02-14 | Hewlett-Packard | Parallel shift and add circuit and method |
US5883824A (en) | 1993-11-29 | 1999-03-16 | Hewlett-Packard Company | Parallel adding and averaging circuit and method |
US5590350A (en) | 1993-11-30 | 1996-12-31 | Texas Instruments Incorporated | Three input arithmetic logic unit with mask generator |
US6016538A (en) | 1993-11-30 | 2000-01-18 | Texas Instruments Incorporated | Method, apparatus and system forming the sum of data in plural equal sections of a single data word |
US5448509A (en) | 1993-12-08 | 1995-09-05 | Hewlett-Packard Company | Efficient hardware handling of positive and negative overflow resulting from arithmetic operations |
US5467131A (en) | 1993-12-30 | 1995-11-14 | Hewlett-Packard Company | Method and apparatus for fast digital signal decoding |
US5541865A (en) | 1993-12-30 | 1996-07-30 | Intel Corporation | Method and apparatus for performing a population count operation |
JP2932963B2 (ja) | 1994-01-21 | 1999-08-09 | モトローラ・インコーポレイテッド | 効率的なビット移動能力を有するデータ・プロセッサとその方法 |
US5745778A (en) * | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
US5551005A (en) | 1994-02-25 | 1996-08-27 | Intel Corporation | Apparatus and method of handling race conditions in mesi-based multiprocessor system with private caches |
US5550988A (en) | 1994-03-01 | 1996-08-27 | Intel Corporation | Apparatus and method for performing error correction in a multi-processor system |
US6006299A (en) | 1994-03-01 | 1999-12-21 | Intel Corporation | Apparatus and method for caching lock conditions in a multi-processor system |
US5673407A (en) | 1994-03-08 | 1997-09-30 | Texas Instruments Incorporated | Data processor having capability to perform both floating point operations and memory access in response to a single instruction |
JPH07271764A (ja) | 1994-03-24 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | 計算機プロセッサ及びシステム |
US5734874A (en) | 1994-04-29 | 1998-03-31 | Sun Microsystems, Inc. | Central processing unit with integrated graphics functions |
WO1995031767A1 (en) | 1994-05-11 | 1995-11-23 | Vlsi Technology, Inc. | Floating-point processor with apparent-precision based selection of execution-precision |
JP2757777B2 (ja) | 1994-05-26 | 1998-05-25 | 住友金属工業株式会社 | メモリの不正アクセス検出方法及びシステム |
US5559975A (en) | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
US5642306A (en) | 1994-07-27 | 1997-06-24 | Intel Corporation | Method and apparatus for a single instruction multiple data early-out zero-skip multiplier |
US5426379A (en) | 1994-07-29 | 1995-06-20 | Xilinx, Inc. | Field programmable gate array with built-in bitstream data expansion |
US5579253A (en) * | 1994-09-02 | 1996-11-26 | Lee; Ruby B. | Computer multiply instruction with a subresult selection option |
US5758176A (en) | 1994-09-28 | 1998-05-26 | International Business Machines Corporation | Method and system for providing a single-instruction, multiple-data execution unit for performing single-instruction, multiple-data operations within a superscalar data processing system |
US5477181A (en) | 1994-10-13 | 1995-12-19 | National Semiconductor Corporation | Programmable multiphase clock divider |
US6275834B1 (en) | 1994-12-01 | 2001-08-14 | Intel Corporation | Apparatus for performing packed shift operations |
EP0795155B1 (en) | 1994-12-01 | 2003-03-19 | Intel Corporation | A microprocessor having a multiply operation |
ZA9510127B (en) | 1994-12-01 | 1996-06-06 | Intel Corp | Novel processor having shift operations |
US5819101A (en) | 1994-12-02 | 1998-10-06 | Intel Corporation | Method for packing a plurality of packed data elements in response to a pack instruction |
CN101211255B (zh) | 1994-12-02 | 2012-07-04 | 英特尔公司 | 对复合操作数进行压缩操作的处理器、设备和计算系统 |
US5598362A (en) * | 1994-12-22 | 1997-01-28 | Motorola Inc. | Apparatus and method for performing both 24 bit and 16 bit arithmetic |
US5887183A (en) | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
US5680338A (en) | 1995-01-04 | 1997-10-21 | International Business Machines Corporation | Method and system for vector processing utilizing selected vector elements |
US5500811A (en) | 1995-01-23 | 1996-03-19 | Microunity Systems Engineering, Inc. | Finite impulse response filter |
US5687350A (en) * | 1995-02-10 | 1997-11-11 | International Business Machines Corporation | Protocol and system for performing line-fill address during copy-back operation |
US5566329A (en) * | 1995-02-10 | 1996-10-15 | International Business Machines Corporation | System and method for mutation of selected assignment operations on large data objects |
US5745729A (en) | 1995-02-16 | 1998-04-28 | Sun Microsystems, Inc. | Methods and apparatuses for servicing load instructions |
US5752264A (en) * | 1995-03-31 | 1998-05-12 | International Business Machines Corporation | Computer architecture incorporating processor clusters and hierarchical cache memories |
US5826106A (en) | 1995-05-26 | 1998-10-20 | National Semiconductor Corporation | High performance multifunction direct memory access (DMA) controller |
US5752001A (en) * | 1995-06-01 | 1998-05-12 | Intel Corporation | Method and apparatus employing Viterbi scoring using SIMD instructions for data recognition |
US6105053A (en) * | 1995-06-23 | 2000-08-15 | Emc Corporation | Operating system for a non-uniform memory access multiprocessor system |
US6633897B1 (en) * | 1995-06-30 | 2003-10-14 | International Business Machines Corporation | Method and system for scheduling threads within a multiprocessor data processing system using an affinity scheduler |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
US5953241A (en) | 1995-08-16 | 1999-09-14 | Microunity Engeering Systems, Inc. | Multiplier array processing system with enhanced utilization at lower precision for group multiply and sum instruction |
US6295599B1 (en) | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US6643765B1 (en) | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
US6006318A (en) | 1995-08-16 | 1999-12-21 | Microunity Systems Engineering, Inc. | General purpose, dynamic partitioning, programmable media processor |
US5721892A (en) | 1995-08-31 | 1998-02-24 | Intel Corporation | Method and apparatus for performing multiply-subtract operations on packed data |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
AU6905496A (en) | 1995-09-01 | 1997-03-27 | Philips Electronics North America Corporation | Method and apparatus for custom operations of a processor |
US6470370B2 (en) | 1995-09-05 | 2002-10-22 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US6058408A (en) | 1995-09-05 | 2000-05-02 | Intel Corporation | Method and apparatus for multiplying and accumulating complex numbers in a digital filter |
US6237016B1 (en) | 1995-09-05 | 2001-05-22 | Intel Corporation | Method and apparatus for multiplying and accumulating data samples and complex coefficients |
JPH0997178A (ja) | 1995-09-29 | 1997-04-08 | Matsushita Electric Ind Co Ltd | 飽和演算処理装置および方法 |
US5778412A (en) * | 1995-09-29 | 1998-07-07 | Intel Corporation | Method and apparatus for interfacing a data bus to a plurality of memory devices |
US5799165A (en) * | 1996-01-26 | 1998-08-25 | Advanced Micro Devices, Inc. | Out-of-order processing that removes an issued operation from an execution pipeline upon determining that the operation would cause a lengthy pipeline delay |
US5812439A (en) | 1995-10-10 | 1998-09-22 | Microunity Systems Engineering, Inc. | Technique of incorporating floating point information into processor instructions |
JP3717212B2 (ja) | 1995-10-27 | 2005-11-16 | 株式会社日立製作所 | 情報処理装置及び情報処理ユニット |
US5835744A (en) * | 1995-11-20 | 1998-11-10 | Advanced Micro Devices, Inc. | Microprocessor configured to swap operands in order to minimize dependency checking logic |
US5886732A (en) | 1995-11-22 | 1999-03-23 | Samsung Information Systems America | Set-top electronics and network interface unit arrangement |
US5935240A (en) * | 1995-12-15 | 1999-08-10 | Intel Corporation | Computer implemented method for transferring packed data between register files and memory |
US5757432A (en) | 1995-12-18 | 1998-05-26 | Intel Corporation | Manipulating video and audio signals using a processor which supports SIMD instructions |
US5940859A (en) * | 1995-12-19 | 1999-08-17 | Intel Corporation | Emptying packed data state during execution of packed data instructions |
US5740093A (en) | 1995-12-20 | 1998-04-14 | Intel Corporation | 128-bit register file and 128-bit floating point load and store for quadruple precision compatibility |
KR0157924B1 (ko) | 1995-12-23 | 1998-12-15 | 문정환 | 데이타 전송 시스템 및 그 방법 |
US5983257A (en) | 1995-12-26 | 1999-11-09 | Intel Corporation | System for signal processing using multiply-add operations |
US5646626A (en) | 1996-01-30 | 1997-07-08 | Motorola, Inc. | Method and apparatus for digital correlation in pseudorandom noise coded systems |
US5835782A (en) | 1996-03-04 | 1998-11-10 | Intel Corporation | Packed/add and packed subtract operations |
US5802116A (en) * | 1996-04-04 | 1998-09-01 | Lucent Technologies Inc. | Soft decision Viterbi decoding with large constraint lengths |
US5835968A (en) * | 1996-04-17 | 1998-11-10 | Advanced Micro Devices, Inc. | Apparatus for providing memory and register operands concurrently to functional units |
US6092094A (en) | 1996-04-17 | 2000-07-18 | Advanced Micro Devices, Inc. | Execute unit configured to selectably interpret an operand as multiple operands or as a single operand |
US5826081A (en) * | 1996-05-06 | 1998-10-20 | Sun Microsystems, Inc. | Real time thread dispatcher for multiprocessor applications |
US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
US5872972A (en) * | 1996-07-05 | 1999-02-16 | Ncr Corporation | Method for load balancing a per processor affinity scheduler wherein processes are strictly affinitized to processors and the migration of a process from an affinitized processor to another available processor is limited |
US5826079A (en) * | 1996-07-05 | 1998-10-20 | Ncr Corporation | Method for improving the execution efficiency of frequently communicating processes utilizing affinity process scheduling by identifying and assigning the frequently communicating processes to the same processor |
US6058465A (en) | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
JPH10143365A (ja) * | 1996-11-15 | 1998-05-29 | Toshiba Corp | 並列処理装置及びその命令発行方式 |
US6269390B1 (en) * | 1996-12-17 | 2001-07-31 | Ncr Corporation | Affinity scheduling of data within multi-processor computer systems |
US5889983A (en) | 1997-01-21 | 1999-03-30 | Intel Corporation | Compare and exchange operation in a processing system |
US6061780A (en) | 1997-01-24 | 2000-05-09 | Texas Instruments Incorporated | Execution unit chaining for single cycle extract instruction having one serial shift left and one serial shift right execution units |
US6401194B1 (en) | 1997-01-28 | 2002-06-04 | Samsung Electronics Co., Ltd. | Execution unit for processing a data stream independently and in parallel |
US6141384A (en) | 1997-02-14 | 2000-10-31 | Philips Electronics North America Corporation | Decoder for trellis encoded interleaved data stream and HDTV receiver including such a decoder |
US6766515B1 (en) * | 1997-02-18 | 2004-07-20 | Silicon Graphics, Inc. | Distributed scheduling of parallel jobs with no kernel-to-kernel communication |
US5991531A (en) | 1997-02-24 | 1999-11-23 | Samsung Electronics Co., Ltd. | Scalable width vector processor architecture for efficient emulation |
US5922066A (en) | 1997-02-24 | 1999-07-13 | Samsung Electronics Co., Ltd. | Multifunction data aligner in wide data width processor |
GB2323187B (en) | 1997-03-14 | 2001-09-19 | Nokia Mobile Phones Ltd | Data processing circuit using both edges of a clock signal |
US6014684A (en) | 1997-03-24 | 2000-01-11 | Intel Corporation | Method and apparatus for performing N bit by 2*N-1 bit signed multiplication |
US5898849A (en) | 1997-04-04 | 1999-04-27 | Advanced Micro Devices, Inc. | Microprocessor employing local caches for functional units to store memory operands used by the functional units |
JP3602293B2 (ja) * | 1997-04-22 | 2004-12-15 | 株式会社ソニー・コンピュータエンタテインメント | データ転送方法及び装置 |
JP3570855B2 (ja) | 1997-05-29 | 2004-09-29 | 株式会社日立製作所 | 分岐予測装置 |
US6170051B1 (en) * | 1997-08-01 | 2001-01-02 | Micron Technology, Inc. | Apparatus and method for program level parallelism in a VLIW processor |
US5933650A (en) | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6804766B1 (en) | 1997-11-12 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method for managing pages of a designated memory object according to selected memory management policies |
US6438660B1 (en) | 1997-12-09 | 2002-08-20 | Intel Corporation | Method and apparatus for collapsing writebacks to a memory for resource efficiency |
US6134635A (en) | 1997-12-09 | 2000-10-17 | Intel Corporation | Method and apparatus of resolving a deadlock by collapsing writebacks to a memory |
US5999959A (en) | 1998-02-18 | 1999-12-07 | Quantum Corporation | Galois field multiplier |
US20010049780A1 (en) | 1998-03-27 | 2001-12-06 | Shreekant Thakkar | Method and apparatus for performing integer operations in response to a result of a floating point operation |
US6211892B1 (en) | 1998-03-31 | 2001-04-03 | Intel Corporation | System and method for performing an intra-add operation |
US6041404A (en) | 1998-03-31 | 2000-03-21 | Intel Corporation | Dual function system and method for shuffling packed data elements |
US6426746B2 (en) | 1998-03-31 | 2002-07-30 | Intel Corporation | Optimization for 3-D graphic transformation using SIMD computations |
US6243803B1 (en) | 1998-03-31 | 2001-06-05 | Intel Corporation | Method and apparatus for computing a packed absolute differences with plurality of sign bits using SIMD add circuitry |
US6418529B1 (en) | 1998-03-31 | 2002-07-09 | Intel Corporation | Apparatus and method for performing intra-add operation |
US6212618B1 (en) * | 1998-03-31 | 2001-04-03 | Intel Corporation | Apparatus and method for performing multi-dimensional computations based on intra-add operation |
US6230257B1 (en) | 1998-03-31 | 2001-05-08 | Intel Corporation | Method and apparatus for staggering execution of a single packed data instruction using the same circuit |
US6052769A (en) | 1998-03-31 | 2000-04-18 | Intel Corporation | Method and apparatus for moving select non-contiguous bytes of packed data in a single instruction |
US6173393B1 (en) | 1998-03-31 | 2001-01-09 | Intel Corporation | System for writing select non-contiguous bytes of data with single instruction having operand identifying byte mask corresponding to respective blocks of packed data |
US6377970B1 (en) | 1998-03-31 | 2002-04-23 | Intel Corporation | Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry |
US5996057A (en) | 1998-04-17 | 1999-11-30 | Apple | Data processing system and method of permutation with replication within a vector register file |
US6292815B1 (en) | 1998-04-30 | 2001-09-18 | Intel Corporation | Data conversion between floating point packed format and integer scalar format |
US6408325B1 (en) | 1998-05-06 | 2002-06-18 | Sun Microsystems, Inc. | Context switching technique for processors with large register files |
JP3803196B2 (ja) * | 1998-07-03 | 2006-08-02 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理方法および記録媒体 |
US6378060B1 (en) * | 1998-08-24 | 2002-04-23 | Microunity Systems Engineering, Inc. | System to implement a cross-bar switch of a broadband processor |
JP2000224054A (ja) * | 1999-01-27 | 2000-08-11 | Texas Instr Inc <Ti> | ビタビデコ―ディングの速度を増大させる方法と装置 |
US6463525B1 (en) * | 1999-08-16 | 2002-10-08 | Sun Microsystems, Inc. | Merging single precision floating point operands |
EP1102161A2 (en) * | 1999-11-15 | 2001-05-23 | Texas Instruments Incorporated | Data processor with flexible multiply unit |
US6539467B1 (en) | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
FR2804366B1 (fr) * | 2000-01-28 | 2002-04-26 | Joseph Sauron Materiel Ind | Dispositif d'electro-soudage a signal de sortie regule |
US6574724B1 (en) | 2000-02-18 | 2003-06-03 | Texas Instruments Incorporated | Microprocessor with non-aligned scaled and unscaled addressing |
US6566758B1 (en) * | 2001-11-27 | 2003-05-20 | Sun Microsystems, Inc. | Current crowding reduction technique for flip chip package technology |
US10866807B2 (en) * | 2011-12-22 | 2020-12-15 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
-
2003
- 2003-12-19 US US10/616,303 patent/US7301541B2/en not_active Expired - Fee Related
-
2004
- 2004-07-12 JP JP2006518941A patent/JP5005342B2/ja not_active Expired - Fee Related
- 2004-07-12 CA CA2573292A patent/CA2573292C/en not_active Expired - Fee Related
- 2004-07-12 EP EP20100167237 patent/EP2226726A3/en not_active Withdrawn
- 2004-07-12 WO PCT/US2004/022126 patent/WO2005008410A2/en active Application Filing
- 2004-07-12 EP EP04756853A patent/EP1652090A4/en not_active Withdrawn
- 2004-07-12 ES ES10191073.5T patent/ES2527937T3/es not_active Expired - Lifetime
- 2004-07-12 EP EP20100167233 patent/EP2226725A3/en not_active Withdrawn
- 2004-07-12 CA CA2735354A patent/CA2735354C/en not_active Expired - Fee Related
- 2004-07-12 EP EP20100167240 patent/EP2228727A3/en not_active Withdrawn
- 2004-07-12 EP EP20100191073 patent/EP2284709B1/en not_active Expired - Lifetime
-
2006
- 2006-02-03 US US11/346,213 patent/US8289335B2/en not_active Expired - Fee Related
-
2007
- 2007-08-20 US US11/894,584 patent/US7932910B2/en not_active Expired - Fee Related
- 2007-10-31 US US11/982,051 patent/US7948496B2/en not_active Expired - Fee Related
- 2007-10-31 US US11/982,230 patent/US7952587B2/en not_active Expired - Fee Related
- 2007-10-31 US US11/982,142 patent/US7843459B2/en not_active Expired - Fee Related
- 2007-10-31 US US11/981,996 patent/US8018464B2/en not_active Expired - Fee Related
-
2012
- 2012-08-22 US US13/591,492 patent/US9229713B2/en not_active Expired - Fee Related
-
2015
- 2015-08-17 US US14/828,131 patent/US9378018B2/en not_active Expired - Fee Related
-
2016
- 2016-05-05 US US15/147,811 patent/US10365926B2/en not_active Expired - Fee Related
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0417707A2 (en) * | 1989-09-11 | 1991-03-20 | Hitachi, Ltd. | Microcomputer with address registers for dynamic bus control |
JPH0398145A (ja) * | 1989-09-11 | 1991-04-23 | Hitachi Ltd | マイクロプロセッサ |
JPH04352518A (ja) * | 1991-05-30 | 1992-12-07 | Matsushita Electric Ind Co Ltd | 演算装置 |
EP0597441A1 (en) * | 1992-11-09 | 1994-05-18 | Kabushiki Kaisha Toshiba | Microprocessor having a bus-width change function |
JPH06149723A (ja) * | 1992-11-09 | 1994-05-31 | Toshiba Corp | プロセッサ |
JPH06292178A (ja) * | 1993-03-31 | 1994-10-18 | Sony Corp | 適応形ビデオ信号演算処理装置 |
JPH07114469A (ja) * | 1993-10-18 | 1995-05-02 | Mitsubishi Electric Corp | データ処理装置 |
US5717946A (en) * | 1993-10-18 | 1998-02-10 | Mitsubishi Denki Kabushiki Kaisha | Data processor |
JPH0830577A (ja) * | 1994-07-15 | 1996-02-02 | Mitsubishi Electric Corp | Simdプロセッサ |
US5742840A (en) * | 1995-08-16 | 1998-04-21 | Microunity Systems Engineering, Inc. | General purpose, multiple precision parallel operation, programmable media processor |
JPH10285052A (ja) * | 1997-04-02 | 1998-10-23 | Matsushita Electric Ind Co Ltd | ユークリッド復号法およびユークリッド復号回路 |
JP2002528786A (ja) * | 1998-08-24 | 2002-09-03 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | ワイド・オペランド・アーキテクチャを含むシステムおよび方法 |
JP2001084229A (ja) * | 1999-09-10 | 2001-03-30 | Ricoh Co Ltd | Simd型プロセッサ |
JP2001184338A (ja) * | 1999-12-22 | 2001-07-06 | Hitachi Ltd | Imdctの実行方法、圧縮信号の伸長方法、音声信号伸長装置、及び、imdct変換を実行する計算装置 |
JP2003122736A (ja) * | 2001-10-11 | 2003-04-25 | Matsushita Electric Ind Co Ltd | 行列演算装置 |
Non-Patent Citations (3)
Title |
---|
CRAIG HANSEN: "" Architecture of a Broadband Mediaprocessor "", COMPCON '96. 'TECHNOLOGIES FOR THE INFORMATION SUPERHIGHWAY' DIGEST OF PAPERS, JPN7009000732, 28 February 1996 (1996-02-28), US, pages 334 - 340, ISSN: 0002215652 * |
CRAIG HANSEN: ""MicroUnity's Media Processor Architecture"", MICRO,IEEE, JPN7010001326, August 1996 (1996-08-01), US, pages 34 - 41, XP000596511, ISSN: 0002215653, DOI: 10.1109/40.526923 * |
ミラー マイケル・J: "パーソナル・コンピュータ 広がるIBMパーソナル・コンピュータ互換機", 日経コンピュータ 第70号 NIKKEI COMPUTER, JPN6010023613, JP, ISSN: 0002215654 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017520873A (ja) * | 2014-06-30 | 2017-07-27 | マイクロユニティ システムズ エンジニアリング インコーポレイテッド | 拡張可能Wideオペランド命令のためのシステムおよび方法 |
JP2020521192A (ja) * | 2017-05-17 | 2020-07-16 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
JP2022106737A (ja) * | 2017-05-17 | 2022-07-20 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
JP7114622B2 (ja) | 2017-05-17 | 2022-08-08 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
JP7312879B2 (ja) | 2017-05-17 | 2023-07-21 | グーグル エルエルシー | ハードウェアにおける行列乗算の実行 |
US11989258B2 (en) | 2017-05-17 | 2024-05-21 | Google Llc | Performing matrix multiplication in hardware |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5005342B2 (ja) | ワイド・トランスフォーム・スライス・インストラクションを実行するプロセッサアーキテクチャ | |
US6643765B1 (en) | Programmable processor with group floating point operations | |
US7216217B2 (en) | Programmable processor with group floating-point operations | |
EP2241968B1 (en) | System with wide operand architecture, and method | |
TWI608410B (zh) | 標準格式中間結果 | |
KR100267100B1 (ko) | 스케일러블 폭의 벡터 프로세서 아키텍쳐 | |
JP4933693B2 (ja) | ワイド・オペランド・アーキテクチャを含むシステムおよび方法 | |
US9015452B2 (en) | Vector math instruction execution by DSP processor approximating division and complex number magnitude | |
JPH11154114A (ja) | 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法 | |
CN117112028A (zh) | 编码和解码可变长度指令 | |
US20080046682A1 (en) | Data processing unit and method for parallel vector data processing | |
US10846056B2 (en) | Configurable SIMD multiplication circuit | |
Slingerland et al. | Multimedia instruction sets for general purpose microprocessors: a survey | |
JP2001501001A (ja) | データ処理システムにおける入力オペランド制御 | |
US8938485B1 (en) | Integer division using floating-point reciprocal | |
JP2001504956A (ja) | データ処理システム・レジスタ制御 | |
US20240202160A1 (en) | Processor, computer-readable recording medium storing instruction execution program, and information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100427 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100716 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100726 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100827 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110531 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110810 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110817 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110930 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120508 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120523 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150601 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |