IP Library Granted Patent US 7,062,501
Granted Patent B1
US 7,062,501 · App. 09/925,135 · Granted Jun 13, 2006

Structure and method for linking scatter/gather list segments for host adapters

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 7,062,501
App. No.
09/925,135
Granted
Jun 13, 2006
Kind
B1
Abstract

A host adapter uses a scatter/gather list that includes a plurality of sections. Each section of the scatter/gather list can have any desired size. A link element in one section of the scatter/gather list is used to link to another section in the list. The link element has a format that is the same as the data elements that represent data segments in the list. Each element in the scatter/gather list includes an end-of-list flag and an end-of-section flag. When the end-of-list flag is set, the host adapter knows that the end-of-the scatter/gather list has been reached. When the end-of-section flag is set, the host adapter knows that an address to another section of the scatter/gather list is available.

Claims (91)

1. A memory having stored therein a structure readable by a host adapter comprising:

a scatter/gather list comprising a plurality of scatter/gather list sections wherein each of said sections is stored in a different set of contiguous memory locations in said memory and said set of contiguous memory locations can be of any size, wherein at least one scatter/gather list section in said plurality of scatter/gather list sections comprises:

a plurality of data elements, wherein each data element comprises:

an end-of-list flag; and

an end-of-section flag,

wherein said plurality of data elements includes (j) data elements where j is an integer;

said end of list flag has a first state in a first (j−1) of said data elements;

said end of list flag in data element j has said first state if said data element j is not a last data element in said scatter/gather list, and has a second state different from said first state if said data element j is said last data element in said scatter/gather list; and

each data element in said plurality of data elements includes:

a segment address;

 wherein said segment address is associated with a location in a first memory having information stored therein and said information is to be transferred from said first memory to a second memory.

2. The scatter/gather list of claim 1 wherein said end-of-list flag has said first state in said each data element.

3. The scatter/gather list of claim 1 wherein said end-of-section flag has a same state in said each data element.

4. The scatter/gather list of claim 1 wherein said end-of-section flag has a first state in a last data element in said plurality of data elements, and a second state in all other data elements in said plurality of data elements.

5. The scatter/gather list of claim 4 wherein said end-of-list flag has said first state in said each data element.

6. The scatter/gather list of claim 4 wherein said end-of-list flag has said second state in said last data element in said plurality of data elements, and said first state in all other data elements in said plurality of data elements.

7. The scatter/gather list of claim 1 wherein said end-of-list flag has a size of one bit.

8. The scatter/gather list of claim 1 wherein said end-of-section flag has a size of one bit.

9. The scatter/gather list of claim 1 wherein said each data element further comprises:

an address field including said segment address.

10. The scatter/gather list of claim 9 wherein said end-of-list flag, and said end-of-section flag are included within said address field.

11. The scatter/gather list of claim 1 wherein said each data element further comprises:

a length field.

12. The scatter/gather list of claim 9 wherein said each data element further comprises:

a length field.

13. The scatter/gather list of claim 1 said at least one scatter/gather list section further comprises:

a link element comprising:

an end-of-list flag; and

an end-of-section flag.

14. A memory having stored therein a structure, readable by a host adapter, comprising:

a scatter gather list comprising a plurality of scatter/gather list sections wherein each of said sections is stored in a different set of contiguous memory locations and said set of contiguous memory locations can be of any size, and further wherein at least one scatter/gather list section in said plurality of scatter/gather list sections comprises:

a plurality of data elements, wherein each data element comprises:

an end-of-list flag wherein said end-of-list flag has a first state;

an end-of-section flag;

an address field having a data segment address; and

a length field having a data segment length wherein said data segment address and said data segment length are used in determining an area in a first memory having information stored therein and said information is to be transferred from said first memory to a second memory; and

a link element comprising:

an end-of-list flag;

an end-of-section flag; and

an address field having a next list section address to another scatter/gather list section in said plurality of scatter/gather list sections.

15. A memory having stored therein a structure readable by a host adapter comprising:

a scatter/gather list comprising a plurality of scatter/gather list sections wherein each of said sections is stored in a different set of contiguous memory locations and said set of contiguous memory locations can be of any size, and further wherein at least one scatter/gather list section in said plurality of scatter/gather list sections comprises:

a plurality of data elements, wherein each data element consists of:

an address field comprising:

a data segment address;

an end-of-list flag; and

an end-of-section flag

wherein said plurality of data elements includes j data elements where j is an integer;

said end of list flag has a first state in a first (j−1) of said data elements;

said end of list flag in data element j has said first state if said data element j is not a last data element in said scatter/gather list, and has a second state different from said first state if said data element j is said last data element in said scatter/gather list; and

said data segment address is associated with a location in a first memory having information stored therein and said information is to be transferred from said first memory to a second memory; and

a link element consisting of:

an address field comprising:

a next list section address;

an end-of-list flag; and

an end-of-section flag.

16. A computer system comprising:

a memory comprising a scatter/gather list, readable by a host adapter, comprising a plurality of scatter/gather list sections wherein each of said sections is stored in a different set of contiguous memory locations and said set of contiguous memory locations can be of any size, and further wherein at least one scatter/gather list section in said plurality of scatter/gather list sections comprises:

a plurality of data elements wherein each data element comprises:

an end-of-list flag; and

an end-of-section flag,

wherein said plurality of data elements includes (j) data elements where j is an integer;

said end of list flag has a first state in a first (j−1) of said data elements;

said end of list flag in data element j has said first state if said data element j is not a last data element in said scatter/gather list, and has a second state different from said first state if said data element j is said last data element in said scatter/gather list; and

each data element in said plurality of data elements includes:

a segment address;

 wherein said segment address is associated with a location in a first memory having information stored therein and said information is to be transferred from said first memory to a second memory.

17. The computer system of claim 16 wherein said at least one scatter/gather list section further comprises:

a link element comprising:

an end-of-list flag; and

an end-of-section flag.

18. A computer system comprising:

a memory comprising a scatter/gather list, readable by a host adapter, comprising a plurality of scatter/gather list sections wherein each of said sections is stored in a different set of contiguous memory locations and said set of contiguous memory locations can be of any size, and further wherein at least one scatter/gather list section in said plurality of scatter/gather list sections comprises:

a plurality of data elements, wherein each data element comprises:

an end-of-list flag;

an end-of-section flag;

an address field having a data segment address; and

a length field having a data segment length wherein said data segment address and said data segment length are used in determining an area in a first memory having information stored therein and said information is to be transferred from said first memory to a second memory by said host adapter; and

a link element comprising:

an end-of-list flag;

an end-of-section flag; and

an address field having a next list section address.

19. A method comprising:

storing a scatter/gather list, readable by a host adapter, as a plurality of sections in a memory, wherein each of said sections is stored in a different set of contiguous memory locations and said set of contiguous memory locations can be of any size, and further wherein each section includes a plurality of elements wherein each element comprises:

an address wherein said address is associated with a location in a first memory having information stored therein and said information is to be transferred from said first memory to a second memory;

an end-of-list flag; and

an end-of-section flag;

setting an end-of-list flag in a last element of a last section in said plurality of sections; and

setting an end-of-section flag in at least one of said plurality of sections other than said last section.

20. The method of claim 19 wherein said setting an end-of-section flag is performed on a last element in said at least one of said plurality of sections other than said last section.

21. The method of claim 19 wherein said setting an end-of-section flag is performed on a link element.

Assignments (10)
RELEASE OF SECURITY INTEREST Recorded Mar 9, 2022
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059358/0001 →
RELEASE OF SECURITY INTEREST Recorded Feb 25, 2022
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
Reel/Frame 059333/0222 →
SECURITY INTEREST Recorded Sep 18, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 047103/0206 →
SECURITY INTEREST Recorded Jun 25, 2018
From: MICROCHIP TECHNOLOGY INCORPORATED; SILICON STORAGE TECHNOLOGY, INC.; ATMEL CORPORATION; MICROSEMI CORPORATION; MICROSEMI STORAGE SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 046426/0001 →
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2013
From: ADAPTEC, INC.
To: PMC-SIERRA, INC.
Reel/Frame 030899/0567 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2001
From: YOUNG, B. ARLEN
To: ADAPTEC, INC., A CORPORATION OF DELAWARE
Reel/Frame 012073/0605 →