# US 7,412,631 B2 · Methods and structure for verifying domain functionality

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,412,631 B2
- Document ID: US7412631B2
- Status: Granted
- Kind: B2
- Application number: 11/224,850
- Filed: 2005-09-13
- Published: 2007-03-15
- Granted: 2008-08-12
- Earliest claimed: 2005-09-13
- Assignees: LSI Corporation
- Inventors: David T. Uddenberg; Mark Slutz; Brian J. Varney
- Web page: https://patentgrep.com/patent/US7412631B2

## CPC

- G06F 11/221: {to test buses, lines or interfaces, e.g. stuck-at or open line faults}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and structures within a SAS expander for testing SAS devices and other SAS expanders in the SAS domain. Testing devices and expanders in the domain by operations performed within a SAS expander in the domain relieves the burden of such processing in attached host systems and adds flexibility for scheduling processing for test operation of devices and expanders in the domain. In one aspect hereof, the testing may be performed by a master SAS expander configured in the domain. The SAS expander may initiate testing of devices following completion of the SAS discovery process. Testing may also be initiated in response to events in the SAS domain not typically detected by attached host systems.

## Claims

### Claim 1

A method for testing SAS components in a SAS domain having a SAS expander, the method comprising:
sensing within the SAS expander a change in the SAS domain; and
testing operation of a SAS component in the SAS domain in response to the sensed change to determine operational status of the SAS component.

### Claim 2 (depends on 1)

The method of claim 1
wherein the step of sensing further comprises sensing each new SAS component discovered by completion of a SAS discovery process performed within the SAS domain, and
wherein the step of testing further comprises testing operation of each new SAS component.

### Claim 3 (depends on 1)

The method of claim 1
wherein the step of testing further comprises receiving self-test information from the SAS component.

### Claim 4 (depends on 1)

The method of claim 1
wherein the step of sensing further comprises sensing a reset of the SAS expander.

### Claim 5 (depends on 1)

The method of claim 1
wherein the step of sensing further comprises sensing receipt within the SAS expander of a BROADCAST-CHANGE primitive.

### Claim 6 (depends on 1)

The method of claim 1
wherein the step of sensing further comprises sensing restoration of a SAS PHY to an operable status.

### Claim 7 (depends on 1)

The method of claim 1 wherein the step of testing further comprises:
issuing a command to the SAS component; and
determining a result of the issued command within the SAS component,
wherein the command is non-destructive with respect to data stored in the SAS component.

### Claim 8 (depends on 7)

The method of claim 7 wherein the SAS component is a SCSI device and wherein the non-destructive command is selected from the group of SCSI commands consisting of: Test Unit Ready, Inquiry, Read Capacity, Write Buffer, Read Buffer, and Read.

### Claim 9 (depends on 7)

The method of claim 7 wherein the SAS component is a SATA device and wherein the non-destructive command is selected from the group of SATA commands consisting of: Execute Drive Diagnostics, Set Features, Read FPDMA Queued, Write Buffer, Read Buffer, and Read DMA Ext.

### Claim 10

Apparatus within a SAS expander of a SAS domain for testing SAS components in the SAS domain, the apparatus comprising:
sensing means for sensing a change in the SAS domain; and
testing means for testing operation of a SAS component in the SAS domain in response to sensing of the change to determine operational status of the SAS component.

### Claim 11 (depends on 10)

The apparatus of claim 10 further comprising:
discovery means for performing a SAS discovery process in the SAS domain,
wherein the sensing means is responsive to the discovery means to sense the change when a new SAS component is discovered by the SAS discovery process, and
wherein the testing means are operable to test operation of each new SAS component.

### Claim 12 (depends on 10)

The apparatus of claim 10
wherein the testing means further comprises means for receiving self-test information from the SAS component.

### Claim 13 (depends on 10)

The apparatus of claim 10
wherein the sensing means further comprises means for sensing a reset of the SAS expander.

### Claim 14 (depends on 10)

The apparatus of claim 10
wherein the sensing means further comprises means for sensing receipt within the SAS expander of a BROADCAST-CHANGE primitive.

### Claim 15 (depends on 10)

The apparatus of claim 10
wherein the sensing means further comprises means for sensing restoration of a SAS PHY to an operable status.

### Claim 16 (depends on 10)

The apparatus of claim 10 wherein the testing means further comprises:
means for issuing a command to the SAS component; and
means for determining a result of the issued command within the SAS component,
wherein the command is non-destructive with respect to data stored in the SAS component.

### Claim 17 (depends on 16)

The apparatus of claim 16 wherein the SAS component is a SCSI device and wherein the non-destructive command is selected from the group of SCSI commands consisting of: Test Unit Ready, Inquiry, Read Capacity, Write Buffer, Read Buffer, and Read.

### Claim 18 (depends on 16)

The apparatus of claim 16 wherein the SAS component is a SATA device and wherein the non-destructive command is selected from the group of SATA commands consisting of: Execute Drive Diagnostics, Set Features, Read FPDMA Queued, Write Buffer, Read Buffer, and Read DMA Ext.

### Claim 19

A SAS domain system comprising:
a SAS initiator device; and
a SAS expander communicatively coupled to the SAS initiator device wherein the SAS expander further comprises:
a monitoring component to sense changes in SAS components in the SAS domain; and
a testing component to test functionality of SAS components in the SAS domain in response to sensing a change in the SAS domain,
wherein the monitoring component and the testing component are operable within the SAS expander without interaction with the SAS initiator device.

### Claim 20 (depends on 19)

The SAS domain system of claim 19 further comprising:
a notification component for notifying the SAS initiator device of the functionality of one or more SAS components of the SAS domain.

### Claim 21 (depends on 19)

The SAS domain system of claim 19
wherein the testing component is operable to issue a non-destructive command to the SAS component and to determine functionality of the SAS component based on the response of the SAS component to the issued command.

### Claim 22 (depends on 21)

The SAS domain system of claim 21
wherein the SAS component is a SCSI device and wherein the non-destructive command is selected from the group of SCSI commands consisting of: Test Unit Ready, Inquiry, Read Capacity, Write Buffer, Read Buffer, and Read.

### Claim 23 (depends on 21)

The SAS domain system of claim 21
wherein the SAS component is a SATA device and wherein the non-destructive command is selected from the group of SATA commands consisting of: Execute Drive Diagnostics, Set Features, Read FPDMA Queued, Write Buffer, Read Buffer, and Read DMA Ext.
