Patents by Inventor Steven T. McClure
Steven T. McClure has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 8533696Abstract: Methods and systems are disclosed that relate to running a plurality of software instances on an embedded computer system without requiring substantial modifications to each software instance. An exemplary method includes storing context information relating to a first instance. An instance includes a set of independent threads of execution each with its own code context, interrupt service routines, drivers, and operating system services. Both a second instance and a thread associated with the second instance are chosen to run. Context information relating to the second instance is restored and the second instance is run on the operating system.Type: GrantFiled: September 29, 2006Date of Patent: September 10, 2013Assignee: EMC CorporationInventors: Steven R. Chalmer, Steven T. McClure, David L. Reese
-
Patent number: 8424013Abstract: Methods and systems are disclosed that relate to handling interrupts across multiple software instances. An exemplary method includes receiving an interrupt at a current CPU. An instance includes a set of independent threads of execution each with its own code context, interrupt service routines, drivers, and operating system services. The method further includes storing context information relating to the first instance, identifying the second instance associated with the interrupt, running at least one interrupt service routine, and restoring the context information relating to the first instance.Type: GrantFiled: September 29, 2006Date of Patent: April 16, 2013Assignee: EMC CorporationInventors: Steven R. Chalmer, Steven T. McClure, David L. Reese
-
Patent number: 8090789Abstract: A data storage system having protocol controller for converting packets between PCIE format used by a storage processor and Rapid IO format used by a packet switching network. The controller includes a PCIE end point for transferring atomic operation (DSA) requests, a data pipe section having a plurality of data pipes for passing user data; and a message engine section for passing messages among the plurality of storage processors. An acceleration path controller bypasses a DSA buffer in the absence of congestion on the network. Packets fed to the PCIE end point include an address portion having code indicating an atomic operation. An encoder converts the code from a PCIE format into the same atomic operation in SRIO format. Each one of a plurality of CPUs is adapted to perform a second DSA request during execution of a first DSA request.Type: GrantFiled: June 28, 2007Date of Patent: January 3, 2012Assignee: EMC CorporationInventors: John O'Shea, Jeffrey Kinne, Michael Sgrosso, Steven T. McClure
-
Patent number: 8051260Abstract: A method for safeguarding data stored in a memory of a data storage system includes monitoring values of a subset of environmental variables associated with the data-storage system and updating a portion of a table containing values of environmental variables associated with the data-storage system. The table includes values for environmental variables that are not in the subset of environmental variables monitored. The values of the environmental variables are then inspected. On the basis of the inspection, a condition in which there exists a high-risk of data loss is determined.Type: GrantFiled: June 30, 2004Date of Patent: November 1, 2011Assignee: EMC CorporationInventors: Steven T. McClure, Scott B. Gordon, Robert Decrescenzo, Timothy M. Johnson, Zhi-Gang Liu
-
Patent number: 7996848Abstract: In a methods and systems of controlling a process's access to a device driver, a lock may be used to establish a process wait state or to wake up one or more processes. A spinlock may be used to acquire a lock associated with a device driver. The lock includes a lock value representing the availability of the lock. If the lock value is a first value, the process acquires the lock and sets the lock value to a second value. Otherwise, the process returns to the step of using the spinlock to acquire the lock associated with the device driver. If the lock is acquired, the process accesses the device driver. If the device is not ready, the process is set to wait for the lock. Waiting for the lock comprises setting a field of the process to a pointer to the lock and setting a state of the process to waiting. After the device has been successfully accessed or the process has been set to wait for the lock, the lock is released typically by setting the lock value to the first value.Type: GrantFiled: January 3, 2006Date of Patent: August 9, 2011Assignee: EMC CorporationInventors: Steven T. McClure, Steven R. Chalmer, Brett D. Niver
-
Patent number: 7818447Abstract: Described is an end-to-end broadcast-based messaging technique used in controlling message flow in a data storage system. Each node stores flow control state information about all the nodes which is used in determining whether to send a data transmission to a receiving node. The flow control state information includes an indicator as to whether each node is receiving incoming data transmissions. If a node is not receiving incoming data transmissions, the flow control state information also includes an associated expiration time. Data transmissions are resumed to a receiving node based on the earlier of a sending node determining that the expiration time has lapsed, or receiving a control message from the receiving node explicitly turning on data transmissions. Each node maintains and updates its local copy of the flow control state information in accordance with control messages sent by each node to turn on and off data transmissions.Type: GrantFiled: March 28, 2003Date of Patent: October 19, 2010Assignee: EMC CorporationInventors: Brett D. Niver, Steven R. Chalmer, Steven T. McClure, Stephen D. MacArthur, Avinash Kallat
-
Patent number: 7810094Abstract: A process scheduling method includes executing a plurality of symmetric schedulers on respective processors of a multiprocessing system. Each scheduler periodically accesses a shared lock to obtain exclusive access to a shared scheduling data structure including (a) process information identifying the processes, and (b) scheduling information reflecting the executability and priorities of the processes. After obtaining the lock, each scheduler performs a scheduling routine including (a) utilizing the scheduling information and a scheduling algorithm to identify a next executable process, and (b) (1) activating the identified process to begin executing on the processor on which the scheduler is executing, and (2) updating the scheduling information to reflect the activation of the identified process. The scheduler then accesses the lock to relinquish exclusive access to the scheduling data structure.Type: GrantFiled: September 30, 2005Date of Patent: October 5, 2010Assignee: EMC CorporationInventors: Steven T. McClure, Steven R. Chalmer, Brett D. Niver
-
Patent number: 7793160Abstract: Methods and systems consistent with the present invention may facilitate error tracing in computer software. Such methods and systems may maintain context information of a target process, swap from a context of the target process to a context of an error-tracing process, and trace an error from the target process using the error-tracing process and the context information of the target process.Type: GrantFiled: March 29, 2005Date of Patent: September 7, 2010Assignee: EMC CorporationInventors: Steven T. McClure, Steven R. Chalmer, Brett D. Niver
-
Patent number: 7673100Abstract: Methods and systems are disclosed that relate to locating cached data corresponding to data in persistent memory within a data storage facility. An exemplary method includes receiving a request for data in persistent memory, applying a function to a persistent memory address of the requested data to determine an address of one of a plurality of cache tag controllers, each of which controls nonduplicative cache tags, and looking up, at the addressed cache tag controller, a cache memory address for data corresponding to the requested data.Type: GrantFiled: July 10, 2006Date of Patent: March 2, 2010Assignee: EMC CorporationInventors: Brett D. Niver, Steven R. Chalmer, Steven T. McClure
-
Patent number: 7631143Abstract: A data storage system employs a virtual disk enclosure that utilizes a number of physical disk drives to create a set of virtual disk drives that are visible to the remainder of the storage system. The virtual disk drives exhibit a set of characteristics such as respective storage capacities, access times, and reliability measures that are user-selectable within respective limits determined by the set of corresponding physical disk drive characteristics. For example, a RAID protection scheme can be used such that the overall storage capacity of the virtual disk drives is less than that of the physical disk drives, but has greater overall reliability/availability. The system may utilize a recursive protection scheme in which the virtual disk drives are utilized according to a second RAID configuration to provide a set of highly available logical storage volumes to host computer systems connected to the data storage system.Type: GrantFiled: January 3, 2006Date of Patent: December 8, 2009Assignee: EMC CorporationInventors: Brett Niver, Steven T. McClure, Steven R. Chalmer, David L. Scheffey, Kevin E. Granlund
-
Patent number: 7552282Abstract: Described are techniques for selective data replication. Cached data is replicated if it is characterized as critical. Critical data may include data associated with a write I/O operation. Cache locations are selected for replicated data so that a first location is mapped to a first memory board and a second location is mapped to a second memory board. Data for a read operation is not replicated in cache. Other non-cache data that is critical and thus replicated includes metadata. Cache locations for data of read and write I/O operations are selected dynamically at the time the I/O operation is made from the same pool of cache locations.Type: GrantFiled: August 4, 2004Date of Patent: June 23, 2009Assignee: EMC CorporationInventors: Michael Bermingham, Kendell A. Chilton, Robert DeCrescenzo, Mark J. Halstead, Haim Kopylovitz, Steven T. McClure, James M. McGillis, Ofer E. Michael, Brett D. Niver, John K. Walton
-
Patent number: 7478202Abstract: Described is a technique for maintaining local cache coherency between endpoints using the connecting message fabric. Processors in a data storage system communicate using the message fabric. Each processor is an endpoint having its own local cache storage in which portions of global memory may be locally cached. A write through caching technique is described. Each local cache line of data of each processor is either in an invalid or a shared state. When a write to global memory is performed by a processor (write miss or a write hit), the following are performed atomically: the global memory is updated, other processor's local cache lines of the data are invalidated, verification of invalidation is received by the processor, and the processor's local copy is updated. Other processors' cache lines are invalidated by transmission of an invalidate command by the processor. A processor updates its local cache lines upon the next read miss or write miss of the updated cacheable global memory.Type: GrantFiled: October 4, 2006Date of Patent: January 13, 2009Assignee: EMC CorporationInventors: Brett D. Niver, Steven R. Chalmer, Steven T. McClure
-
Patent number: 7472221Abstract: Accessing data memory includes writing data to a first memory location and to a second memory location in response to a request to write data to a memory address that corresponds to both locations, where the first and second memory locations are mirrored, in response to a request to read data from the memory address, reading data from the first memory location or the second memory location based on load balancing, and accessing data from the second memory location in response to a request to access data at the memory address when memory hardware corresponding to the first memory location has failed. Accessing the data memory may include requesting access to a specific one of the first and second memory locations. The memory address may contain a portion that is common to both the first memory location and the second memory location. Hardware coupled to the memory may cause data written using the memory address to be automatically written to the first memory location and the second memory location.Type: GrantFiled: March 29, 2004Date of Patent: December 30, 2008Assignee: EMC CorporationInventors: Jerome J. Cartmell, Qun Fan, Steven T. McClure, Robert DeCrescenzo, Haim Kopylovitz, Eli Shagam
-
Publication number: 20080162863Abstract: Managing memory includes subdividing the memory into a first set of blocks corresponding to a first size and a second set of blocks corresponding to a second size that is greater than said first size, in response to a request for an amount of memory that is less than or equal to the first size, providing one of the first set of blocks, and, in response to a request for an amount of memory that is greater than the first size and less than or equal to the second size, providing one of the second set of blocks. Subdividing the memory may also include subdividing the memory into a plurality of sets of blocks, where each particular set contains blocks corresponding to one size that is different from that of blocks not in the particular set. Each set of blocks may correspond to a size that is a multiple of a predetermined value. Managing memory may also include providing a table containing an entry for each set of blocks. The entry for each set of blocks may be a pointer to one of: an unused block and null.Type: ApplicationFiled: December 13, 2007Publication date: July 3, 2008Inventors: Steven T. McClure, Steven R. Chalmer, Brett D. Niver
-
Generic reallocation function for heap reconstitution in a multi-processor shared memory environment
Patent number: 7392361Abstract: Managing memory includes receiving a request for a memory allocation, determining whether the memory allocation is to be maintained when subsequently initializing memory and saving information about the memory allocation to maintain the memory allocation during subsequently initializing memory. Initializing may be performed as part of special reset mode processing. Special reset mode processing may be performed in response to receiving a reset command. The memory may be shared by a plurality of processing units and the reset command may be issued to reset a first processing unit causing reset of the memory and a second processing unit may use a first allocated memory portion that is maintained when initializing the memory as part of processing for the reset command. Saving may include adding an entry to an allocation list associated with the memory, the entry including a location associated with the memory allocation.Type: GrantFiled: February 3, 2005Date of Patent: June 24, 2008Assignee: EMC CorporationInventors: David L. Reese, Steven R. Chalmer, Steven T. McClure, Brett D. Niver -
Patent number: 7363431Abstract: Described is a synchronization technique that may be used to coordinate processing between endpoints using the connecting message fabric. Processors in a data storage system communicate using the message switch of the message fabric. Each processor is an endpoint within a data storage system. A first endpoint may mark the beginning of the synchronization period by specifying a processing point at which other processors and the first endpoint are to coordinate from the perspective of the first endpoint. Synchronization is performed using local state information about the processing state of each endpoint as reported by each endpoint. The first endpoint waits for successful synchronization within a timeout period in accordance with the first endpoint's local state information. If successful synchronization does not occur prior to the timeout period, the first endpoint broadcasts a message with a new synchronization point to other endpoints.Type: GrantFiled: September 19, 2003Date of Patent: April 22, 2008Assignee: EMC CorporationInventors: Brett D. Niver, Steven R. Chalmer, Steven T. McClure
-
Patent number: 7343432Abstract: Described is a distributed lock processing technique that may be used to coordinate access to globally accessed resource between endpoints using the connecting message fabric. Processors in a data storage system communicate using the message switch of the message fabric. Each processor is an endpoint within a data storage system. Each endpoint, prior to requesting a lock, dynamically determines a current lock owner of the lock to be requested in accordance with a determination of which endpoints are available as lock owners at the current time. The lock request is issued to the current lock owner with a requested time period used by the lock owner to determine an expiration time. The lock expires automatically at the expiration time even if the lock holder becomes unavailable. If the current lock owner becomes unavailable, a new lock owner is determined prior to the next request for that lock.Type: GrantFiled: September 19, 2003Date of Patent: March 11, 2008Assignee: EMC CorporationInventors: Brett D. Niver, Steven R. Chalmer, Steven T. McClure
-
Patent number: 7330956Abstract: Managing memory includes subdividing the memory into a first set of blocks corresponding to a first size and a second set of blocks corresponding to a second size that is greater than said first size, in response to a request for an amount of memory that is less than or equal to the first size, providing one of the first set of blocks, and, in response to a request for an amount of memory that is greater than the first size and less than or equal to the second size, providing one of the second set of blocks. Subdividing the memory may also include subdividing the memory into a plurality of sets of blocks, where each particular set contains blocks corresponding to one size that is different from that of blocks not in the particular set. Each set of blocks may correspond to a size that is a multiple of a predetermined value. Managing memory may also include providing a table containing an entry for each set of blocks. The entry for each set of blocks may be a pointer to one of: an unused block and null.Type: GrantFiled: April 16, 2002Date of Patent: February 12, 2008Assignee: EMC CorporationInventors: Steven T. McClure, Steven R. Chalmer, Brett D. Niver
-
Patent number: 7302526Abstract: Handling a faulting memory of a pair of mirrored memories includes initially causing a non-faulting memory of the pair of mirrored memories to service all read and write operations for the pair of mirrored memories, determining that hardware corresponding to the faulting memory of the pair of mirrored memories has been successfully replaced to provide a new memory, in response to the new memory being provided, causing data to be copied from the non-faulting memory to the new memory while data is being read to and written from the non-faulting memory, and, in response to successful copying to the new memory, causing writes to be performed to both memories of the pair of mirrored memories and selecting one of the pair of mirrored memories for read operations when one or more read operations are performed.Type: GrantFiled: March 29, 2004Date of Patent: November 27, 2007Assignee: EMC CorporationInventors: Jerome J. Cartmell, Qun Fan, Steven T. McClure, Robert DeCrescenzo, Haim Kopylovitz, Eli Shagam
-
Patent number: 7296271Abstract: Disclosed is providing one of a plurality of schedulers for a multitasking system for a processor that includes choosing a particular one of the schedulers, setting a program counter to an address corresponding to code of the particular one of the schedulers, and the processor executing code at an address corresponding to the program counter. Also included may be setting a stack pointer to an address corresponding to stack space for the particular one of the schedulers and the processor using the stack space at the stack pointer after executing code at the address corresponding to the program counter. The system described herein provides a small kernel that can run on a variety of hardware platforms, such as a PowerPC based Symmetrix adapter board used in a Symmetrix data storage device provided by EMC Corporation of Hopkinton, Ma. The core kernel code may be written for the general target platform, such as the PowerPC architecture.Type: GrantFiled: June 28, 2000Date of Patent: November 13, 2007Assignee: EMC CorporationInventors: Steven R. Chalmer, Steven T. McClure