Patents by Inventor Randal C. Swanberg
Randal C. Swanberg 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: 9092297Abstract: A firmware update process for a self-virtualizing IO resource such as an SRIOV adapter is incorporated into a platform firmware update process to systematically update the resource firmware in a manner that is for the most part transparent to the logical partitions sharing the adapter. In particular, resource firmware associated with a self-virtualizing IO resource is bundled with firmware for at least one adjunct partition associated with that self-virtualizing IO resource within a common firmware image so that, upon restart of the adjunct partition to use the updated firmware image, the resource firmware is also updated, with a logical partition that uses the self-virtualizing IO resource maintained in an active state during the restart, and without requiring the self-virtualizing IO resource to be deconfigured from the logical partition.Type: GrantFiled: March 12, 2013Date of Patent: July 28, 2015Assignee: International Business Machines CorporationInventors: William J. Armstrong, Charles S. Graham, Andrew T. Koch, Kyle A. Lucke, Naresh Nayer, Randal C. Swanberg
-
Publication number: 20150169440Abstract: A mechanism is provided for accessing data in a hybrid hardware managed cache in front of flash memory enabling load/store byte addressability to flash memory. A determination is made as to whether a real address associated with the effective address associated with a request resides in a page table. Responsive to the real address existing in the page table, responsive to the real address referring to a flash page, and, responsive to the flash page failing to reside in the hybrid hardware managed cache, a load-through fault is issued that allows the faulting processor executing the request to execute other work while the flash page is brought into the hybrid hardware managed cache. The operation is then issued to the new hybrid hardware managed cache real address.Type: ApplicationFiled: June 12, 2014Publication date: June 18, 2015Inventor: Randal C. Swanberg
-
Publication number: 20150169464Abstract: A mechanism is provided for accessing data in a hybrid hardware managed cache in front of flash memory enabling load/store byte addressability to flash memory. A determination is made as to whether a real address associated with the effective address associated with a request resides in a page table. Responsive to the real address existing in the page table, responsive to the real address referring to a flash page, and, responsive to the flash page failing to reside in the hybrid hardware managed cache, a load-through fault is issued that allows the faulting processor executing the request to execute other work while the flash page is brought into the hybrid hardware managed cache. The operation is then issued to the new hybrid hardware managed cache real address.Type: ApplicationFiled: December 12, 2013Publication date: June 18, 2015Applicant: International Business Machines CorporationInventor: Randal C. Swanberg
-
Patent number: 9027021Abstract: A mechanism is provided in a logically partitioned data processing system for controlling depth and latency of exit of a virtual processor's idle state. A virtualization layer generates a cede latency setting information (CLSI) data. Responsive to booting a logical partition, the virtualization layer communicates the CLSI data to an operating system (OS) of the logical partition. The OS determines, based on the CLSI data, a particular idle state of a virtual processor under a control of the OS. Responsive to the OS calling the virtualization layer, the OS communicates the particular idle state of the virtual processor to the virtualization layer for assigning the particular idle state and wake-up characteristics to the virtual processor.Type: GrantFiled: April 12, 2012Date of Patent: May 5, 2015Assignee: International Business Machines CorporationInventors: Richard L. Arndt, Naresh Nayar, Christopher Francois, Karthick Rajamani, Freeman L. Rawson, III, Randal C. Swanberg
-
Publication number: 20150020192Abstract: Embodiments relate an address translation/specification (ATS) field. An aspect includes receiving a work queue entry from a work queue in a main memory by a hardware accelerator, the work queue entry corresponding to an operation of the hardware accelerator that is requested by user-space software, the work queue entry comprising a first ATS field that describes a structure of the work queue entry. Another aspect includes, based on determining that the first ATS field is consistent with the operation corresponding to the work queue entry and the structure of the work queue entry, executing the operation corresponding to the work queue entry by the hardware accelerator. Another aspect includes, based on determining that the first ATS field is not consistent with the operation corresponding to the work queue entry and the structure of the work queue entry, rejecting the work queue entry by the hardware accelerator.Type: ApplicationFiled: September 30, 2014Publication date: January 15, 2015Inventors: Frank Haverkamp, Christian Jacobi, Scot H. Rider, Vikramjit Sethi, Randal C. Swanberg, Joerg-Stephan Vogt
-
Publication number: 20140380319Abstract: Embodiments relate an address translation/specification (ATS) field. An aspect includes receiving a work queue entry from a work queue in a main memory by a hardware accelerator, the work queue entry corresponding to an operation of the hardware accelerator that is requested by user-space software, the work queue entry comprising a first ATS field that describes a structure of the work queue entry. Another aspect includes, based on determining that the first ATS field is consistent with the operation corresponding to the work queue entry and the structure of the work queue entry, executing the operation corresponding to the work queue entry by the hardware accelerator. Another aspect includes, based on determining that the first ATS field is not consistent with the operation corresponding to the work queue entry and the structure of the work queue entry, rejecting the work queue entry by the hardware accelerator.Type: ApplicationFiled: June 20, 2013Publication date: December 25, 2014Inventors: Frank Haverkamp, Christian Jacobi, Scot H. Rider, Vikramjit Sethi, Randal C. Swanberg, Joerg-Stephan Vogt
-
Patent number: 8886919Abstract: A data processing system comprises at least one processing unit, a virtualization layer, and a remote update programming idiom accelerator. The remote update programming idiom accelerator is configured to receive a complex remote update programming idiom from a remote node. Responsive to a determination that the sequence of instructions in the complex remote update programming idiom is longer than a dedicated processor threshold, the remote update programming idiom accelerator is configured to request a processing unit from the virtualization layer in the data processing system, and receive an allocation of a processing unit from the virtualization layer. The allocated processing unit is configured to read the data from the storage location local to the data processing system, execute the sequence of instructions to perform the update operation on the data to form result data, and write the result data to the storage location local to the data processing system.Type: GrantFiled: April 16, 2009Date of Patent: November 11, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Patent number: 8880853Abstract: A wake-and-go mechanism is provided for a data processing system. The wake-and-go mechanism recognizes a programming idiom that indicates that a thread is spinning on a lock. The wake-and-go mechanism updates a wake-and-go array with a target address associated with the lock and sets a lock bit in the wake-and-go array. The thread then goes to sleep until the lock frees. The wake-and-go array may be a content addressable memory (CAM). When a transaction appears on the symmetric multiprocessing (SMP) fabric that modifies the value at a target address in the CAM, the CAM returns a list of storage addresses at which the target address is stored. The wake-and-go mechanism associates these storage addresses with the threads waiting for an event at the target addresses, and may wake the thread that is spinning on the lock.Type: GrantFiled: February 1, 2008Date of Patent: November 4, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Patent number: 8862859Abstract: An apparatus, system, and method are disclosed for improved support of MPS segments in a microprocessor. The virtual address is used to generate possible TLB index values for each of the supported page sizes of the MPS segment associated with the virtual address. The possible TLB index values may be a hash generated using the virtual address and one of the supported page sizes. The TLB is searched for actual TLB index values that match the possible TLB index values calculated using the different supported page sizes. TLB entries associated with those actual TLB index values are checked to determine whether any TLB entry is associated with the virtual address. If no match is found, the real address is retrieved from the PT. The actual page size in the PT is used to generate an actual TLB index value for the virtual address and the TLB entry is inserted into the TLB.Type: GrantFiled: May 7, 2010Date of Patent: October 14, 2014Assignee: International Business Machines CorporationInventors: Miles R. Dooley, Sundeep Chadha, Naresh Nayar, Randal C. Swanberg
-
Publication number: 20140244985Abstract: Intelligent context management for thread switching is achieved by determining that a register bank has not been used by a thread for a predetermined number of dispatches, and responsively disabling the register bank for use by that thread. A counter is incremented each time the thread is dispatched but the register bank goes unused. Usage or non-usage of the register bank is inferred by comparing a previous checksum for the register bank to a current checksum. If the previous and current checksums match, the system concludes that the register bank has not been used. If a thread attempts to access a disabled bank, the processor takes an interrupt, enables the bank, and resets the corresponding counter. For a system utilizing transactional memory, it is preferable to enable all of the register banks when thread processing begins to avoid aborted transactions from register banks disabled by lazy context management techniques.Type: ApplicationFiled: February 28, 2013Publication date: August 28, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Randal C. Swanberg
-
Patent number: 8788795Abstract: A wake-and-go mechanism may be a programming idiom accelerator. As a processor fetches instructions, the programming idiom accelerator may look ahead to determine whether a programming idiom is coming up in the instruction stream. If the programming idiom accelerator recognizes a programming idiom, the programming idiom accelerator may perform an action to accelerate execution of the programming idiom. In the case of a wake-and-go programming idiom, the programming idiom accelerator may record an entry in a wake-and-go array, for example.Type: GrantFiled: February 1, 2008Date of Patent: July 22, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Patent number: 8782646Abstract: In a NUMA-topology computer system that includes multiple nodes and multiple logical partitions, some of which may be dedicated and others of which are shared, NUMA optimizations are enabled in shared logical partitions. This is done by specifying a home node parameter in each virtual processor assigned to a logical partition. When a task is created by an operating system in a shared logical partition, a home node is assigned to the task, and the operating system attempts to assign the task to a virtual processor that has a home node that matches the home node for the task. The partition manager then attempts to assign virtual processors to their corresponding home nodes. If this can be done, NUMA optimizations may be performed without the risk of reducing the performance of the shared logical partition.Type: GrantFiled: November 21, 2012Date of Patent: July 15, 2014Assignee: International Business Machnies CorporationInventors: Vaijayanthimala K. Anand, Mark R. Funk, Steven R. Kunkel, Mysore S. Srinivas, Randal C. Swanberg, Ronald D. Young
-
Publication number: 20140149977Abstract: A method, system and computer-usable medium are disclosed for managing virtual processor operations. A dynamic loader receives a request to initiate the creation of a new process, followed by a virtual processor being assigned to an isolated execution environment. The dynamic loader then initiates the creation of the new process by mapping kernel data associated with the virtual processor into the address space of the process. The dynamic loader completes the creation of the new process, and its execution is initiated within the isolated execution environment.Type: ApplicationFiled: November 26, 2012Publication date: May 29, 2014Applicant: International Business Machines CorporationInventors: Frederic Barrat, Philippe Bergheaud, Luke M. Browning, Khalid Filali-Adib, Perinkulam I. Ganesh, Randal C. Swanberg
-
Patent number: 8732683Abstract: A wake-and-go mechanism may be a programming idiom accelerator. As a processor fetches instructions, the programming idiom accelerator may look ahead to determine whether a programming idiom is coming up in the instruction stream. If the programming idiom accelerator recognizes a programming idiom, the programming idiom accelerator may perform an action to accelerate execution of the programming idiom. A compiler may recognize programming idioms and expose the programming idioms to the programming idiom accelerator within the resulting machine language instructions.Type: GrantFiled: February 1, 2008Date of Patent: May 20, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Patent number: 8725992Abstract: A programming language may include hint instructions that may notify a programming idiom accelerator that a programming idiom is coming. An idiom begin hint exposes the programming idiom to the programming idiom accelerator. Thus, the programming idiom accelerator need not perform pattern matching or other forms of analysis to recognize a sequence of instructions. Rather, the programmer may insert idiom hint instructions, such as an idiom begin hint, to expose the idiom to the programming idiom accelerator. Similarly, an idiom end hint may mark the end of the programming idiom.Type: GrantFiled: February 1, 2008Date of Patent: May 13, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Publication number: 20140122844Abstract: Intelligent context management for thread switching is achieved by determining that a register bank has not been used by a thread for a predetermined number of dispatches, and responsively disabling the register bank for use by that thread. A counter is incremented each time the thread is dispatched but the register bank goes unused. Usage or non-usage of the register bank is inferred by comparing a previous checksum for the register bank to a current checksum. If the previous and current checksums match, the system concludes that the register bank has not been used. If a thread attempts to access a disabled bank, the processor takes an interrupt, enables the bank, and resets the corresponding counter. For a system utilizing transactional memory, it is preferable to enable all of the register banks when thread processing begins to avoid aborted transactions from register banks disabled by lazy context management techniques.Type: ApplicationFiled: November 1, 2012Publication date: May 1, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventor: Randal C. Swanberg
-
Patent number: 8645974Abstract: Multiple logical partitions are provided access to a self-virtualizing input/output device of a data processing system via multiple dedicated partition adjunct instances.Type: GrantFiled: April 28, 2008Date of Patent: February 4, 2014Assignee: International Business Machines CorporationInventors: William J. Armstrong, Charles S. Graham, Sandy K. Kao, Kyle A. Lucke, Naresh Nayar, Michal Ostrowski, Renato J. Recio, Randal C. Swanberg
-
Patent number: 8640141Abstract: A wake-and-go mechanism is provided for a data processing system. When a thread is waiting for an event, rather than performing a series of get-and-compare sequences, the thread updates a wake-and-go array with a target address associated with the event. The wake-and-go mechanism may save the state of the thread in a hardware private array. The hardware private array may comprise a plurality of memory cells embodied within the processor or pervasive logic associated with the bus, for example. Alternatively, the hardware private array may be embodied within logic associated with the wake-and-go storage array.Type: GrantFiled: February 1, 2008Date of Patent: January 28, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Patent number: 8640142Abstract: A wake-and-go mechanism is provided for a data processing system. When a thread first starts executing, a wake-and-go mechanism automatically allocates space for thread state in a hardware private array and space for a target address and other information, if any, in a wake-and-go array. If the hardware private array comprises a reserved portion of system memory, then the wake-and-go mechanism may request a sufficient portion of memory to store thread state for the thread. When a thread is waiting for an event, rather than performing a series of get-and-compare sequences, the thread updates a wake-and-go array with a target address associated with the event. The thread then goes to sleep until the event occurs. When a thread ends execution and is no longer in the run queue of the processor, the wake-and-go mechanism de-allocates the space for the thread state information for that thread.Type: GrantFiled: June 23, 2008Date of Patent: January 28, 2014Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg
-
Patent number: 8612977Abstract: A wake-and-go mechanism is provided for a data processing system. When a thread is waiting for an event, rather than performing a series of get-and-compare sequences, the thread updates a wake-and-go array with a target address associated with the event. Software may save the state of the thread. The thread is then put to sleep. When the wake-and-go array snoops a kill at a given target address, logic associated with wake-and-go array may generate an exception, which may result in a switch to kernel mode, wherein the operating system performs some action before returning control to the originating process. In this case, the trap results in other software, such as the operating system or background sleeper thread, for example, to reload thread from thread state storage and to continue processing of the active threads on the processor.Type: GrantFiled: February 1, 2008Date of Patent: December 17, 2013Assignee: International Business Machines CorporationInventors: Ravi K. Arimilli, Satya P. Sharma, Randal C. Swanberg