IP Library Granted Patent US 10,042,804
Granted Patent B2
US 10,042,804 · App. 14/531,993 · Granted Aug 7, 2018

Multiple protocol engine transaction processing

Inventors: Charles Edward Watson, Jr. (Austin, TX); Rajesh Kota (Austin, TX); David Brian Glasco (Austin, TX)
Assignee: Sanmina Corporation
G06F13/4022G06F12/0815G06F15/17337G06F15/80H04L69/12H04L69/18G06F2212/621
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,042,804
App. No.
14/531,993
Granted
Aug 7, 2018
Kind
B2
Abstract

A multi-processor computer system is described in which transaction processing is distributed among multiple protocol engines. The system includes a plurality of local nodes and an interconnection controller interconnected by a local point-to-point architecture. The interconnection controller comprises a plurality of protocol engines for processing transactions. Transactions are distributed among the protocol engines using destination information associated with the transactions.

Claims (19)

1. A method for processing memory transactions in a cluster having a plurality of processing nodes and an interconnection controller coupled to the plurality of processing nodes, the interconnection controller including a plurality of protocol engines, each engine configured to process multiple memory transactions wherein each of said plurality of protocol engines is configured to be assigned a disjoint subset of a global memory space, the method comprising:

receiving a first memory transaction with the interconnection controller;

identifying one of the disjoint subsets using destination information associated with the first memory transaction, the one of the identified subsets corresponding to one of remote and local memory;

selecting a first protocol engine of the plurality corresponding to the identified disjoint subset;

processing the memory transaction with the first selected protocol engine in accordance with a cache coherence protocol;

receiving a second memory transaction with the interconnection controller;

identifying another of the disjoint subsets using destination information associated with the second memory transaction, the other of the identified subsets corresponding to one of remote and local memory;

selecting a second protocol engine of the plurality corresponding to the other of the identified disjoint subsets; and

processing the second memory transaction with the second selected protocol engine in accordance with the cache coherence protocol.

2. The method of claim 1 , wherein destination information for each memory transaction comprises a target address contained in a packet associated with the memory transaction.

3. The method of claim 2 , wherein each selected protocol engine is selected with reference to at least one bit in the target address, said at least one bit corresponding to one of a memory line boundary and a memory page boundary.

4. The method of claim 1 , wherein the memory transactions have corresponding target addresses associated therewith, the method further comprising distributing the memory transactions for processing among the protocol engines by interleaving the target addresses.

5. A computer system, comprising:

(a) a plurality of processing nodes;

(b) an interconnection controller coupled to the plurality of processing nodes, the interconnection controller comprising a plurality of protocol engines, each configured to process multiple memory transactions therein in accordance with a cache coherence protocol, wherein each protocol engine of said plurality of protocol engines is configured to be assigned a substantially mutually-exclusive subset of a global memory space,

(c) means for distributing a first memory transaction& for processing by a first protocol engine of the plurality of protocol engines by identifying a subset of the global memory space using destination information associated with the first memory transaction, the subset corresponding to a remote memory or a local memory; and

(d) means for distributing a second memory transaction for processing by a second protocol engine of the plurality of protocol engines by identifying another subset of the global memory space using destination information associated with the second memory transaction, the other subset corresponding to a remote memory or a local memory.

6. The computer system of claim 5 wherein the interconnection controller further comprises a protocol engine configured to process interrupts, I/O accesses, and configuration accesses.

7. The computer system of claim 5 wherein the processing nodes and interconnection controller are interconnected in a point-to-point architecture having a topology selected from the group consisting of a ring topology, a mesh topology, and a switch topology.

Assignments (5)
SECURITY INTEREST Recorded Oct 28, 2025
From: SANMINA CORPORATION
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 073363/0212 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2019
From: U.S. BANK NATIONAL ASSOCIATION, SOLELY AS NOTES COLLATERAL AGENT
To: SANMINA CORPORATION; HADCO CORPORATION; HADCO SANTA CLARA; SCI TECHNOLOGY; SENSORWISE, INC.
Reel/Frame 049378/0927 →
SECURITY INTEREST Recorded Oct 22, 2018
From: SANMINA CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, NOT IN ITS INDIVIDUAL CAPACITY BUT SOLELY AS NOTES COLLATERAL AGENT
Reel/Frame 047261/0572 →
SECURITY INTEREST Recorded Aug 3, 2018
From: SANMINA CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, NOT IN ITS INDIVIDUAL CAPACITY BUT SOLELY AS NOTES COLLATERAL AGENT
Reel/Frame 046797/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2018
From: MEMORY INTEGRITY, LLC
To: SANMINA CORPORATION
Reel/Frame 046249/0843 →
Continuity (2)
Continuation 14021984 · Sep 9, 2013
Related Publication 20150074325A1 · Mar 12, 2015