CA2045756A1 - Combined queue for invalidates and return data in multiprocessor system - Google Patents

Combined queue for invalidates and return data in multiprocessor system

Info

Publication number
CA2045756A1
CA2045756A1 CA2045756A CA2045756A CA2045756A1 CA 2045756 A1 CA2045756 A1 CA 2045756A1 CA 2045756 A CA2045756 A CA 2045756A CA 2045756 A CA2045756 A CA 2045756A CA 2045756 A1 CA2045756 A1 CA 2045756A1
Authority
CA
Canada
Prior art keywords
cache
memory
bus
branch
data
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
Application number
CA2045756A
Other languages
French (fr)
Other versions
CA2045756C (en
Inventor
Gregg Bouchard
Lawrence Chisvin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of CA2045756A1 publication Critical patent/CA2045756A1/en
Application granted granted Critical
Publication of CA2045756C publication Critical patent/CA2045756C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02BINTERNAL-COMBUSTION PISTON ENGINES; COMBUSTION ENGINES IN GENERAL
    • F02B75/00Other engines
    • F02B75/02Engines characterised by their cycles, e.g. six-stroke
    • F02B2075/022Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle
    • F02B2075/025Engines characterised by their cycles, e.g. six-stroke having less than six strokes per cycle two
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49942Significance control
    • G06F7/49947Rounding

Abstract

A pipelined CPU executing instructions of variable length, and referencing memory using various data widths.
Macroinstruction pipelining is employed (instead of microinstruction pipelining), with queueing between units of the CPU to allow flexibility in instruction execution times. A wide bandwidth is available for memory access;
fetching 64-bit data blocks on each cycle. A
hierarchical cache arrangement has an improved method of cache set selection, increasing the likelihood of a cache hit. A writeback cache is used (instead of writethrough) and writeback is allowed to proceed even though other accesses are suppressed due to queues being full. A
branch prediction method employs a branch history table which records the taken vs. not-taken history of branch opcodes recently used, and uses an empirical algorithm to predict which way the next occurrence of this branch will go, based upon the history table. A floating point processor function is integrated on-chip, with enhanced speed due to a bypass technique; a trial mini-rounding is done on low-order bits of the result, and if correct, the last stage of the floating point processor can be bypassed, saving one cycle of latency. For CAL type instructions, a method for determining which registers need to be saved is executed in a minimum number of cycles, examining groups of register mask bits at one time. Internal processor registers are accessed with short (byte width) addresses instead of full physical addresses as used for memory and I/O references, but off-chip processor registers are memory-mapped and accessed by the same busses using the same controls as the memory and I/O. If a non-recoverable error detected by ECC
circuits in the cache, an error transition mode is entered wherein the cache operates under limited access rules, allowing a maximum of access by the system for data blocks owned by the cache, but yet minimizing changes to the cache data so that diagnostics may be run.
Separate queues are provided for the return data from memory and cache invalidates, yet the order or bus transactions is maintained by a pointer arrangement. The bus protocol used by the CPU to communicate with the system bus is of the pended type, with transactions on the bus identified by an ID field specifying the originator, and arbitration for bus grant goes one simultaneously with address/data transactions on the bus.
CA002045756A 1990-06-29 1991-06-26 Combined queue for invalidates and return data in multiprocessor system Expired - Fee Related CA2045756C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US54785090A 1990-06-29 1990-06-29
US07/547,850 1990-06-29

Publications (2)

Publication Number Publication Date
CA2045756A1 true CA2045756A1 (en) 1991-12-30
CA2045756C CA2045756C (en) 1996-08-20

Family

ID=24186407

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002045756A Expired - Fee Related CA2045756C (en) 1990-06-29 1991-06-26 Combined queue for invalidates and return data in multiprocessor system

Country Status (5)

Country Link
US (1) US5333296A (en)
EP (1) EP0465320B1 (en)
JP (1) JPH06103167A (en)
CA (1) CA2045756C (en)
DE (1) DE69127726T2 (en)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619759B2 (en) * 1990-05-21 1994-03-16 富士ゼロックス株式会社 Mutual communication method in multiprocessor system
JP3095229B2 (en) * 1990-08-31 2000-10-03 株式会社日立製作所 Microprocessors and complex logic circuits
US5627987A (en) * 1991-11-29 1997-05-06 Kabushiki Kaisha Toshiba Memory management and protection system for virtual memory in computer system
US5813030A (en) * 1991-12-31 1998-09-22 Compaq Computer Corp. Cache memory system with simultaneous access of cache and main memories
JPH0667980A (en) * 1992-05-12 1994-03-11 Unisys Corp Cache logic system for optimizing access to four- block cache memory and method for preventing double mistakes in access to high-speed cache memory of main frame computer
US5634041A (en) * 1992-08-12 1997-05-27 Massachusetts Institute Of Technology Rationally clocked communication interface
US5450547A (en) * 1992-10-01 1995-09-12 Xerox Corporation Bus interface using pending channel information stored in single circular queue for controlling channels of data transfer within multiple FIFO devices
US5437017A (en) * 1992-10-09 1995-07-25 International Business Machines Corporation Method and system for maintaining translation lookaside buffer coherency in a multiprocessor data processing system
US5448708A (en) * 1992-10-30 1995-09-05 Ward; James P. System for asynchronously delivering enqueue and dequeue information in a pipe interface having distributed, shared memory
EP0619547A1 (en) * 1993-04-05 1994-10-12 Motorola, Inc. A method of requesting data and apparatus therefor
US5598551A (en) * 1993-07-16 1997-01-28 Unisys Corporation Cache invalidation sequence system utilizing odd and even invalidation queues with shorter invalidation cycles
US5553270A (en) * 1993-09-01 1996-09-03 Digital Equipment Corporation Apparatus for providing improved memory access in page mode access systems with pipelined cache access and main memory address replay
US6101597A (en) * 1993-12-30 2000-08-08 Intel Corporation Method and apparatus for maximum throughput scheduling of dependent operations in a pipelined processor
US6393550B1 (en) * 1993-12-30 2002-05-21 Intel Corporation Method and apparatus for pipeline streamlining where resources are immediate or certainly retired
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
US5546599A (en) * 1994-03-31 1996-08-13 International Business Machines Corporation Processing system and method of operation for processing dispatched instructions with detected exceptions
US5535345A (en) * 1994-05-12 1996-07-09 Intel Corporation Method and apparatus for sequencing misaligned external bus transactions in which the order of completion of corresponding split transaction requests is guaranteed
US5621896A (en) * 1994-06-01 1997-04-15 Motorola, Inc. Data processor with unified store queue permitting hit under miss memory accesses
US5581713A (en) * 1994-10-25 1996-12-03 Pyramid Technology Corporation Multiprocessor computer backplane bus in which bus transactions are classified into different classes for arbitration
US5640526A (en) * 1994-12-21 1997-06-17 International Business Machines Corporation Superscaler instruction pipeline having boundary indentification logic for variable length instructions
US5737756A (en) * 1995-04-28 1998-04-07 Unisys Corporation Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue
US5943494A (en) * 1995-06-07 1999-08-24 International Business Machines Corporation Method and system for processing multiple branch instructions that write to count and link registers
US5983025A (en) * 1995-06-07 1999-11-09 International Business Machines Corporation Computer system buffers for providing concurrency and avoid deadlock conditions between CPU accesses, local bus accesses, and memory accesses
US5778437A (en) * 1995-09-25 1998-07-07 International Business Machines Corporation Invalidation bus optimization for multiprocessors using directory-based cache coherence protocols in which an address of a line to be modified is placed on the invalidation bus simultaneously with sending a modify request to the directory
US5933651A (en) * 1995-09-29 1999-08-03 Matsushita Electric Works, Ltd. Programmable controller
JP3123413B2 (en) 1995-11-07 2001-01-09 株式会社日立製作所 Computer system
US5701422A (en) * 1995-12-13 1997-12-23 Ncr Corporation Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
US5745728A (en) * 1995-12-13 1998-04-28 International Business Machines Corporation Process or renders repeat operation instructions non-cacheable
US5881303A (en) * 1996-07-01 1999-03-09 Sun Microsystems, Inc. Multiprocessing system configured to perform prefetch coherency activity with separate reissue queue for each processing subnode
US6141692A (en) * 1996-07-01 2000-10-31 Sun Microsystems, Inc. Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol
US5895486A (en) * 1996-12-20 1999-04-20 International Business Machines Corporation Method and system for selectively invalidating cache lines during multiple word store operations for memory coherence
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system
US5878242A (en) * 1997-04-21 1999-03-02 International Business Machines Corporation Method and system for forwarding instructions in a processor with increased forwarding probability
US6000016A (en) * 1997-05-02 1999-12-07 Intel Corporation Multiported bypass cache in a bypass network
US6378047B1 (en) 1997-07-07 2002-04-23 Micron Technology, Inc. System and method for invalidating set-associative cache memory with simultaneous set validity determination
US6079002A (en) * 1997-09-23 2000-06-20 International Business Machines Corporation Dynamic expansion of execution pipeline stages
DE19742378A1 (en) * 1997-09-25 1999-04-22 Siemens Ag Ring memory for a TDMA data transmission station and corresponding data transmission station
US6065114A (en) * 1998-04-21 2000-05-16 Idea Corporation Cover instruction and asynchronous backing store switch
US6145038A (en) * 1997-10-31 2000-11-07 International Business Machines Corporation Method and system for early slave forwarding of strictly ordered bus operations
US6112270A (en) * 1997-10-31 2000-08-29 International Business Machines Corporation Method and system for high speed transferring of strictly ordered bus operations by reissuing bus operations in a multiprocessor system
US6272594B1 (en) * 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
US6332215B1 (en) 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6826749B2 (en) 1998-12-08 2004-11-30 Nazomi Communications, Inc. Java hardware accelerator using thread manager
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6321303B1 (en) * 1999-03-18 2001-11-20 International Business Machines Corporation Dynamically modifying queued transactions in a cache memory system
US6473834B1 (en) * 1999-12-22 2002-10-29 Unisys Method and apparatus for prevent stalling of cache reads during return of multiple data words
US6415357B1 (en) 1999-12-23 2002-07-02 Unisys Corporation Caching method and apparatus
US6711671B1 (en) * 2000-02-18 2004-03-23 Hewlett-Packard Development Company, L.P. Non-speculative instruction fetch in speculative processing
US6581138B2 (en) * 2000-02-29 2003-06-17 Stmicroelectronics, Inc. Branch-prediction driven instruction prefetch
JP3498673B2 (en) 2000-04-05 2004-02-16 日本電気株式会社 Storage device
US6725341B1 (en) * 2000-06-28 2004-04-20 Intel Corporation Cache line pre-load and pre-own based on cache coherence speculation
US6434673B1 (en) * 2000-06-30 2002-08-13 Intel Corporation Optimized configurable scheme for demand based resource sharing of request queues in a cache controller
KR20020028814A (en) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 Java hardware accelerator using microcode engine
US6732236B2 (en) * 2000-12-18 2004-05-04 Redback Networks Inc. Cache retry request queue
US6895520B1 (en) 2001-03-02 2005-05-17 Advanced Micro Devices, Inc. Performance and power optimization via block oriented performance measurement and control
US7221381B2 (en) * 2001-05-09 2007-05-22 Clairvoyante, Inc Methods and systems for sub-pixel rendering with gamma adjustment
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7313658B2 (en) * 2001-10-23 2007-12-25 Via Technologies, Inc. Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests
US6985999B2 (en) * 2001-10-23 2006-01-10 Ip-First, Llc Microprocessor and method for utilizing disparity between bus clock and core clock frequencies to prioritize cache line fill bus access requests
US6842822B2 (en) 2002-04-05 2005-01-11 Freescale Semiconductor, Inc. System and method for cache external writing
US6850999B1 (en) * 2002-11-27 2005-02-01 Cisco Technology, Inc. Coherency coverage of data across multiple packets varying in sizes
US7124318B2 (en) * 2003-09-18 2006-10-17 International Business Machines Corporation Multiple parallel pipeline processor having self-repairing capability
US7290253B1 (en) 2003-09-30 2007-10-30 Vmware, Inc. Prediction mechanism for subroutine returns in binary translation sub-systems of computers
EP1685495B1 (en) 2003-11-13 2008-12-10 Koninklijke Philips Electronics N.V. Electronic data processing circuit that transmits packed words via a bus
WO2007031912A1 (en) 2005-09-14 2007-03-22 Koninklijke Philips Electronics N.V. Method and system for bus arbitration
US20070180156A1 (en) * 2006-02-01 2007-08-02 International Business Machines Corporation Method for completing IO commands after an IO translation miss
US7533237B1 (en) * 2006-05-11 2009-05-12 Nvidia Corporation Off-chip memory allocation for a unified shader
US7533236B1 (en) 2006-05-11 2009-05-12 Nvidia Corporation Off-chip out of order memory allocation for a unified shader
US8151084B2 (en) * 2008-01-23 2012-04-03 Oracle America, Inc. Using address and non-address information for improved index generation for cache memories
WO2011088526A1 (en) * 2010-01-25 2011-07-28 Idatamap Pty Ltd Improved content addressable memory (cam)
DE112013004094B4 (en) * 2012-10-22 2018-03-29 Intel Corporation High performance interconnect physical layer
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging
US10001993B2 (en) 2013-08-08 2018-06-19 Linear Algebra Technologies Limited Variable-length instruction buffer management
US11157287B2 (en) * 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system with variable latency memory access
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11106466B2 (en) * 2018-06-18 2021-08-31 International Business Machines Corporation Decoupling of conditional branches
JP2021157604A (en) * 2020-03-27 2021-10-07 株式会社村田製作所 Data communication device and data communication module

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4322795A (en) * 1980-01-24 1982-03-30 Honeywell Information Systems Inc. Cache memory utilizing selective clearing and least recently used updating
FR2475330A1 (en) * 1980-01-31 1981-08-07 Thomson Csf Mat Tel DEVICE FOR DIGITIGING DIGITAL DATA
US4543626A (en) * 1982-12-06 1985-09-24 Digital Equipment Corporation Apparatus and method for controlling digital data processing system employing multiple processors
US4600986A (en) * 1984-04-02 1986-07-15 Sperry Corporation Pipelined split stack with high performance interleaved decode
US4674032A (en) * 1984-04-02 1987-06-16 Unisys Corporation High-performance pipelined stack with over-write protection
US5133062A (en) * 1986-03-06 1992-07-21 Advanced Micro Devices, Inc. RAM buffer controller for providing simulated first-in-first-out (FIFO) buffers in a random access memory
US4949301A (en) * 1986-03-06 1990-08-14 Advanced Micro Devices, Inc. Improved pointer FIFO controller for converting a standard RAM into a simulated dual FIFO by controlling the RAM's address inputs
US4855904A (en) * 1986-08-27 1989-08-08 Amdahl Corporation Cache storage queue
US4959777A (en) * 1987-07-27 1990-09-25 Motorola Computer X Write-shared cache circuit for multiprocessor system
US4995401A (en) * 1988-02-26 1991-02-26 Board Of Regents, The University Of Texas System Device for measuring anterior fontanelle pressure
JPH01255035A (en) * 1988-04-05 1989-10-11 Matsushita Electric Ind Co Ltd Processor
EP0343567A3 (en) * 1988-05-25 1991-01-09 Hitachi, Ltd. Multi-processing system and cache apparatus for use in the same
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
US5023828A (en) * 1988-07-20 1991-06-11 Digital Equipment Corporation Microinstruction addressing in high-speed CPU
US5019965A (en) * 1989-02-03 1991-05-28 Digital Equipment Corporation Method and apparatus for increasing the data storage rate of a computer system having a predefined data path width
US5109495A (en) * 1989-02-03 1992-04-28 Digital Equipment Corp. Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor
US5107457A (en) * 1989-04-03 1992-04-21 The Johns Hopkins University Stack data cache having a stack management hardware with internal and external stack pointers and buffers for handling underflow and overflow stack

Also Published As

Publication number Publication date
DE69127726D1 (en) 1997-10-30
DE69127726T2 (en) 1998-04-02
US5333296A (en) 1994-07-26
CA2045756C (en) 1996-08-20
EP0465320A3 (en) 1995-03-22
JPH06103167A (en) 1994-04-15
EP0465320B1 (en) 1997-09-24
EP0465320A2 (en) 1992-01-08

Similar Documents

Publication Publication Date Title
CA2045756A1 (en) Combined queue for invalidates and return data in multiprocessor system
EP0463966A3 (en) High-performance multi-processor having floating point unit
EP0466550A3 (en) Conversion of internal processor register commands to i/o space address
US6240508B1 (en) Decode and execution synchronized pipeline processing using decode generated memory read queue with stop entry to allow execution generated memory read
US4701844A (en) Dual cache for independent prefetch and execution units
US5542058A (en) Pipelined computer with operand context queue to simplify context-dependent execution flow
US5471591A (en) Combined write-operand queue and read-after-write dependency scoreboard
US5249286A (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5226130A (en) Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5860107A (en) Processor and method for store gathering through merged store operations
US5438670A (en) Method of prechecking the validity of a write access request
US5488730A (en) Register conflict scoreboard in pipelined computer using pipelined reference counts
JP3672634B2 (en) Data processing device
Kane PA-RiSC 2.0 Architecture
US7603527B2 (en) Resolving false dependencies of speculative load instructions
US5450555A (en) Register logging in pipelined computer using register log queue of register content changes and base queue of register log queue pointers for respective instructions
JPH0695964A (en) Error transition mode for multiprocessor system
US5469551A (en) Method and apparatus for eliminating branches using conditional move instructions
KR100335744B1 (en) Load/load detection and reorder method
EP0459233A2 (en) Selectively locking memory locations within a microprocessor's on-chip cache
US5911151A (en) Optimizing block-sized operand movement utilizing standard instructions
Intel
WO2018057135A1 (en) Interrupt-vector translation lookaside buffer
US5758141A (en) Method and system for selective support of non-architected instructions within a superscaler processor system utilizing a special access bit within a machine state register
EP0156307A2 (en) Pipelined processor having dual cache memories

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed