Patents by Inventor Adrian C. Gerhard

Adrian C. Gerhard 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).

  • Publication number: 20180004673
    Abstract: A first cache of a first IOA is detected storing an amount of data that satisfies a memory shortage threshold. A request for extra memory for the first IOA is transmitted. The request is sent in response to detecting that the first cache stores the amount of data that satisfies the memory shortage threshold. The request is transmitted to a plurality of IOAs of a computer system. A second cache of a second IOA is detected storing an amount of data that satisfies a memory dissemination threshold. Memory of the second cache is allocated to the first cache. The memory is allocated in response to the request and the amount of data in the second cache satisfying the memory dissemination threshold.
    Type: Application
    Filed: June 30, 2016
    Publication date: January 4, 2018
    Inventors: Clark A. Anderson, Adrian C. Gerhard, William J. Maitland, JR.
  • Patent number: 9858443
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization model processing in Coherent Accelerator Processor Interface (CAPI) adapters. The CAPI adapter includes an authorization table and a file system authorization function to authenticate data access for a client at an extent granularity and to prevent an application from accessing unauthorized data in the CAPI adapter. Each authorization table entry provides for the CAPI client, a CAPI client identification (ID), a CAPI server register space assigning resource ownership to the CAPI client with a CAPI set of allowed functions.
    Type: Grant
    Filed: December 30, 2014
    Date of Patent: January 2, 2018
    Assignee: International Business Machines Corporation
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170351426
    Abstract: A storage subsystem records a copy of a data object on a plurality of storage devices. The storage subsystem receives a read request to read a data object. Under certain utilization conditions of the storage subsystem, a resource utilization condition satisfies a split-read criterion. In response to the resource utilization condition satisfying the split-read criterion, the storage subsystem reads at least a portion of the data object from each of the storage devices having a copy of the data object.
    Type: Application
    Filed: June 1, 2016
    Publication date: December 7, 2017
    Inventors: Clark A. Anderson, Adrian C. Gerhard, Daniel F. Moertl, Rick A. Weckwerth
  • Publication number: 20170293771
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization model processing in Coherent Accelerator Processor Interface (CAPI) adapters. The CAPI adapter includes an authorization table and a file system authorization function to authenticate data access for a client at an extent granularity and to prevent an application from accessing unauthorized data in the CAPI adapter. Each authorization table entry provides for the CAPI client, a CAPI client identification (ID), a CAPI server register space assigning resource ownership to the CAPI client with a CAPI set of allowed functions.
    Type: Application
    Filed: June 25, 2017
    Publication date: October 12, 2017
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170286220
    Abstract: A method for operating a RAID storage system includes configuring the RAID storage devices to receive in a read or write command a byte count, receiving a first data block to write to the storage system, compressing the received first data block to generate a first compressed data block, and then storing the first compressed data block memory. The method additionally includes executing a set of RAID operations to perform a partial stripe update, including: retrieving a second compressed data block from memory; determining a physical size of the second compressed data block; generating, based on the second compressed data block and the physical size, redundant data corresponding with the second compressed data block; and writing the second compressed data block and the redundant data by transmitting a write command including the second compressed data block, the redundant data, and the physical size to the set of RAID storage devices.
    Type: Application
    Filed: March 29, 2016
    Publication date: October 5, 2017
    Inventors: Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170286215
    Abstract: A method for operating a storage system RAID storage devices includes receiving a first data block to write to the storage system. The method further includes compressing the first data block to generate a second data block, the second data block including the first data block in compressed form and a data value indicating that the second data block is compressed. The method further includes storing the second data block in memory. The method additionally includes retrieving the second data block from memory and executing RAID operations to write the data block to the RAID storage devices, the set of operations including: generating, based on the second data block, redundant data for performing at least one of an error detection and an error correction operation on the second data block; writing the second data block to the RAID storage devices; writing the redundant data block to the RAID storage devices.
    Type: Application
    Filed: March 29, 2016
    Publication date: October 5, 2017
    Inventors: Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9772773
    Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.
    Type: Grant
    Filed: July 30, 2015
    Date of Patent: September 26, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Robert Galbraith, Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9767261
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization initialization processing in Coherent Accelerator Processor Interface (CAPI) adapters. A master owning client and CAPI Server Register space assigned to the Master Owning Client are identified. Address mapping is created for the Master Owning Client to access the assigned CAPI Server Register space. The Master Owning Client is enabled to send commands to the CAPI adapter, other CAPI clients are prevented from sending commands to the CAPI adapter via the CAPI Server Register space assigned to the Master Owning Client.
    Type: Grant
    Filed: February 23, 2015
    Date of Patent: September 19, 2017
    Assignee: International Business Machines Corporation
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9766809
    Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.
    Type: Grant
    Filed: August 24, 2015
    Date of Patent: September 19, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Robert Galbraith, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170249255
    Abstract: Disclosed are embodiments for supporting dynamic tier remapping of data stored in a hybrid storage system. One embodiment includes a storage controller and firmware, where the firmware maintains a plurality of mapping elements, where each mapping element includes a plurality of group identifiers, where each group identifier is configured to indicate a mapping of a logical block addresses, and where the storage controller performs: receiving a read command including a logical block address; parsing the logical block address to determine a mapping element and a group identifier; determining, for a particular mapping element of the plurality of elements, whether the particular mapping element is locked, wherein the particular mapping element corresponds to the mapping element of the logical block address; and dependent upon the particular mapping element, queuing the read command for firmware processing or remapping the logical block address.
    Type: Application
    Filed: February 29, 2016
    Publication date: August 31, 2017
    Inventors: JOSEPH R. EDWARDS, ROBERT GALBRAITH, ADRIAN C. GERHARD, DANIEL F. MOERTL, GOWRISANKAR RADHAKRISHNAN, RICK A. WECKWERTH
  • Patent number: 9720841
    Abstract: A computing element, system, and method for implementing control structures for a compressed cache in hardware. Embodiments provide a first engine configured to allocate and deallocate virtual memory pages and physical memory pages from pools of available pages to store received data to the compressed cache, a second engine configured to compress received data and store the compressed data. Embodiments also provide for embedding data within the virtual and physical memory pages to indicate page size, type, and data compression.
    Type: Grant
    Filed: December 12, 2014
    Date of Patent: August 1, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Robert Galbraith, Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9710624
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization initialization processing in Coherent Accelerator Processor Interface (CAPI) adapters. A master owning client and CAPI Server Register space assigned to the Master Owning Client are identified. Address mapping is created for the Master Owning Client to access the assigned CAPI Server Register space. The Master Owning Client is enabled to send commands to the CAPI adapter, other CAPI clients are prevented from sending commands to the CAPI adapter via the CAPI Server Register space assigned to the Master Owning Client.
    Type: Grant
    Filed: November 20, 2014
    Date of Patent: July 18, 2017
    Assignee: International Business Machines Corporation
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9703972
    Abstract: A method, system and computer program product are provided for implementing and processing a block extent granularity authorization mechanism for a Coherent Accelerator Processor Interface (CAPI) adapter. The CAPI adapter generates an authorization table with multiple authorization entries, each authorization entry including an Authorization Handle with CAPI server registers identification (ID) including a start Logical Block Address of the extent and range of Logical Block Addresses for each extent. When a command is received an authentication process uses the Authorization Handle contained in the received command and an Authorization Entry in the Authorization Table indexed by the Authorization Handle to authenticate the received command to prevent unauthorized data access.
    Type: Grant
    Filed: February 23, 2015
    Date of Patent: July 11, 2017
    Assignee: International Business Machines Corporation
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9697370
    Abstract: A method, system and computer program product are provided for implementing and processing a block extent granularity authorization mechanism for a Coherent Accelerator Processor Interface (CAPI) adapter. The CAPI adapter generates an authorization table with multiple authorization entries, each authorization entry including an Authorization Handle with CAPI server registers identification (ID) including a start Logical Block Address of the extent and range of Logical Block Addresses for each extent. When a command is received an authentication process uses the Authorization Handle contained in the received command and an Authorization Entry in the Authorization Table indexed by the Authorization Handle to authenticate the received command to prevent unauthorized data access.
    Type: Grant
    Filed: November 20, 2014
    Date of Patent: July 4, 2017
    Assignee: International Business Machines Corporation
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170185795
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization command flow processing for a Coherent Accelerator Processor Interface (CAPI) adapter. An Application Client builds a command including start LBA and number of LBAs and Child Authorization Handle. The Application Client sends the command directly to the CAPI Adapter via the Application Clients CAPI Server Registers assigned to the specific Application Client. The CAPI adapter validate that the requesting Client is authorized to perform the command using the Authorization Handle and the receiving CAPI Server Register address. The CAPI Adapter executes the validated command and sends completion back to the Application Client.
    Type: Application
    Filed: March 13, 2017
    Publication date: June 29, 2017
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170185300
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization command flow processing for a Coherent Accelerator Processor Interface (CAPI) adapter. An Application Client builds a command including start LBA and number of LBAs and Child Authorization Handle. The Application Client sends the command directly to the CAPI Adapter via the Application Clients CAPI Server Registers assigned to the specific Application Client. The CAPI adapter validate that the requesting Client is authorized to perform the command using the Authorization Handle and the receiving CAPI Server Register address. The CAPI Adapter executes the validated command and sends completion back to the Application Client.
    Type: Application
    Filed: March 15, 2017
    Publication date: June 29, 2017
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170185796
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization processing for a Coherent Accelerator Processor Interface (CAPI) adapter. An Application Client requests authorization to a File from a system processor file system. The file system validates the request, determines the location of each Extent that comprises the File, and requests authorization to each Extent from a System CAPI Authorization manager. The System CAPI Authorization manager requests the CAPI Client manager to assign a Child Client ID and CAPI Server Register range to the requesting Application Client and requests a previously authorized CAPI Parent Client to authorize the Child ID to the list of Extents. The CAPI Parent Client sends a Create Authorizations command to the CAPI Adapter via the Parent's CAPI Server Registers.
    Type: Application
    Filed: March 15, 2017
    Publication date: June 29, 2017
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Patent number: 9690516
    Abstract: Embodiments described herein include a PSL engine that includes various memory elements that permit the engine to grant locks on particular portions of data in a stripe in a RAID storage system. The PSL engine can assign (or lock) different blocks of the stripe for different operations. The PSL engine can grant locks to multiple operations for the same stripe if the operations access mutually exclusive blocks of the stripe. Each time a new operation is requested, the PSL engine determines whether the operation would affect a stripe data block that is currently assigned to another operation. If the new operation corresponds to a block of data in the stripe that includes data locked by another operation, the PSL engine assigns the new operation to a wait list. In one embodiment, the PSL engine maintains a wait list for each of the stripes in the RAID system.
    Type: Grant
    Filed: July 30, 2015
    Date of Patent: June 27, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Robert Galbraith, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170169209
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization processing for a Coherent Accelerator Processor Interface (CAPI) adapter. An Application Client requests authorization to a File from a system processor file system. The file system validates the request, determines the location of each Extent that comprises the File, and requests authorization to each Extent from a System CAPI Authorization manager. The System CAPI Authorization manager requests the CAPI Client manager to assign a Child Client ID and CAPI Server Register range to the requesting Application Client and requests a previously authorized CAPI Parent Client to authorize the Child ID to the list of Extents. The CAPI Parent Client sends a Create Authorizations command to the CAPI Adapter via the Parent's CAPI Server Registers.
    Type: Application
    Filed: February 26, 2017
    Publication date: June 15, 2017
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl
  • Publication number: 20170161491
    Abstract: A method, system and computer program product are provided for implementing block extent granularity authorization and deauthorization processing for a Coherent Accelerator Processor Interface (CAPI) adapter. The Application Client, such as an Application Child Client sends a Delete Authorizations command to the CAPI Adapter via the Client CAPI Server Registers assigned to the specific Application Client. The CAPI Adapter deletes the Authorizations in all Lists in the Delete Authorizations command.
    Type: Application
    Filed: February 24, 2017
    Publication date: June 8, 2017
    Inventors: Brian E. Bakke, Adrian C. Gerhard, Daniel F. Moertl