Patents by Inventor Brett Olsson

Brett Olsson 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: 20170139709
    Abstract: A method is disclosed for loading a vector with a processor. The method includes obtaining, by the processor, a variable-length vector load instruction. The method also includes determining that the vector load instruction specifies a vector register for a target, a memory address, and a length, wherein the memory address and the length are each specified in at least a general purpose register. The method also includes determining whether data should be loaded into the vector register using big endian byte-ordering or little endian byte-ordering. The method further includes loading data from memory into the vector register, wherein if the length is less than a length of the vector register, setting one or more residue bytes in the vector register to a pad value, wherein the residue bytes are determined based on the determined byte-ordering.
    Type: Application
    Filed: November 13, 2015
    Publication date: May 18, 2017
    Inventors: Michael Karl GSCHWIND, Brett OLSSON
  • Publication number: 20170139713
    Abstract: A method is disclosed for storing vector data into memory with a processor. The method includes obtaining, by the processor, a variable-length vector store instruction. The method also includes determining that the vector store instruction specifies a vector register for a source, a memory address, and a length, where the memory address and the length are each specified in at least a general purpose register. The method also includes determining whether data should be stored into memory at the memory address using big endian byte-ordering or little endian byte-ordering. The method further includes storing data from the vector register into memory, where if the length is less than a length of the vector register, storing only the data from the vector register specified by the length.
    Type: Application
    Filed: November 13, 2015
    Publication date: May 18, 2017
    Inventors: Michael Karl GSCHWIND, Brett OLSSON
  • Publication number: 20170123816
    Abstract: Status indicators are provided. An operation is performed in a current operating mode of the processor, in which the current operating mode is dynamically selectable from a plurality of supported operating modes. A first set of status indicators is set, based on performing the operation in the current operating mode. A second set of status indicators is set, based on performing the operation in the current operating mode, but the setting is to reflect at least one status condition for another operating mode supported by the processor. At least one of the first set of status indicators or the second set of status indicators is used in further processing.
    Type: Application
    Filed: June 28, 2016
    Publication date: May 4, 2017
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20170123826
    Abstract: Status indicators are provided. An operation is performed in a current operating mode of the processor, in which the current operating mode is dynamically selectable from a plurality of supported operating modes. A first set of status indicators is set, based on performing the operation in the current operating mode. A second set of status indicators is set, based on performing the operation in the current operating mode, but the setting is to reflect at least one status condition for another operating mode supported by the processor. At least one of the first set of status indicators or the second set of status indicators is used in further processing.
    Type: Application
    Filed: October 30, 2015
    Publication date: May 4, 2017
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20170091124
    Abstract: A parallel processing method, system, and/or computer program product for performing data parallel wide accesses on an unstructured text is provided. The parallel processing includes creating a pointer that points to a beginning of the unstructured text and loading into a vector register a string segment of the unstructured text based on the pointer. Then, access permissions of a first byte of the string segment are automatically tested. In turn, a determination is made as to whether the string segment includes an end indication, and a remaining portion of the unstructured text is validated by accessing and loading a last character identified by the end indication into the vector register when the string segment is determined to include the end indication.
    Type: Application
    Filed: September 29, 2015
    Publication date: March 30, 2017
    Inventors: MICHAEL K. GSCHWIND, BRETT OLSSON
  • Patent number: 9600282
    Abstract: Embodiments relate to vector processors. An aspect includes endian-mode-sensitive memory instructions for a vector processor. One embodiment includes a computer-implemented method for copying data between a vector register that includes byte elements 0 to S and a memory that is byte addressable. The computer-implemented method includes obtaining a vector instruction by a processor in a computer. The processor determines that the vector instruction is a memory access instruction specifying the vector register and a memory address. In response to the determination that is instruction is a memory access instruction and independent of a current global endian mode setting that is selectable in the processor, the processor executes the memory access instruction by copying the byte data between the memory and the vector register so that the byte element n of the vector register corresponds to the memory address+n for n=0 to S.
    Type: Grant
    Filed: May 29, 2015
    Date of Patent: March 21, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael K. Gschwind, Brett Olsson
  • Patent number: 9569127
    Abstract: Embodiments are directed to a method of accessing a data frame. The method includes, based at least in part on a determination that the data frame spans first and second memory blocks, and further based at least in part on a determination that the processor has access to the first and second memory blocks, accessing the data frame. The method includes, based at least in part on a determination that the data frame spans the first and second memory blocks, and based at least in part on a determination that the processor has access to the first memory block but does not have access to the second memory block, accessing a first portion of the data frame that is in the first memory block, and accessing at least one default character as a replacement for accessing a second portion of the data frame that is in the second memory block.
    Type: Grant
    Filed: December 29, 2014
    Date of Patent: February 14, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael Gschwind, Brett Olsson, Raul E. Silvera
  • Publication number: 20170004088
    Abstract: A compute instruction to be executed is to use a memory operand in a computation. An address associated with the memory operand is to be used to locate a portion of memory from which data is to be obtained and placed in the memory operand. A determination is made as to whether the portion of memory extends across a specified memory boundary. Based on the portion of memory extending across the specified memory boundary, the portion of memory includes a plurality of memory units and a check is made as to whether at least one specified memory unit is accessible and whether at least one specified memory unit is inaccessible.
    Type: Application
    Filed: June 30, 2015
    Publication date: January 5, 2017
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20170003961
    Abstract: A compute instruction to be executed is to use a memory operand in a computation. An address associated with the memory operand is to be used to locate a portion of memory from which data is to be obtained and placed in the memory operand. A determination is made as to whether the portion of memory extends across a specified memory boundary. Based on the portion of memory extending across the specified memory boundary, the portion of memory includes a plurality of memory units and a check is made as to whether at least one specified memory unit is accessible and whether at least one specified memory unit is inaccessible.
    Type: Application
    Filed: November 14, 2015
    Publication date: January 5, 2017
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20170003914
    Abstract: Processing within a computing environment is facilitated by use of an inaccessibility status indicator. A processor determines whether a unit of memory to be accessed is inaccessible in that default data is to be used for the unit of memory. The determining is based on an inaccessibility status indicator in a selected location accessible to the processor. Based on the determining indicating the unit of memory is inaccessible, default data is provided to be used for a request associated with the unit of memory.
    Type: Application
    Filed: November 14, 2015
    Publication date: January 5, 2017
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20170003913
    Abstract: Processing within a computing environment is facilitated by use of an inaccessibility status indicator. A processor determines whether a unit of memory to be accessed is inaccessible in that default data is to be used for the unit of memory. The determining is based on an inaccessibility status indicator in a selected location accessible to the processor. Based on the determining indicating the unit of memory is inaccessible, default data is provided to be used for a request associated with the unit of memory.
    Type: Application
    Filed: June 30, 2015
    Publication date: January 5, 2017
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378474
    Abstract: A Set Boolean machine instruction is provided that has associated therewith a result location to be used for a set Boolean operation and a mask. The mask is configured to test a plurality of types of conditions, including simple conditions and composite conditions. The machine instruction is executed, and the executing includes performing a first logical operation between the mask and contents of a selected field to obtain an output. The mask indicates a condition to be tested, and the condition is one type of condition of the plurality of types of conditions. The executing further includes performing a second logical operation on the output to obtain a first value represented as one data type, and placing a result in the result location based on the first value. The result including a second a value of another data type, the other data type being different from the one data type.
    Type: Application
    Filed: September 30, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378475
    Abstract: A machine instruction is provided that has associated therewith a result location to be used for a set operation, a first source, a second source, and an operation select field configured to specify a plurality of selectable operations. The machine instruction is executed, which includes obtaining the first source, the second source, and a selected operation, and performing the selected operation on the first source and the second source to obtain a result in one data type. That result is quantized to a value in a different data type, and the value is placed in the result location.
    Type: Application
    Filed: November 14, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378482
    Abstract: A set machine instruction is provided that has associated therewith a result location to be used with a set operation. The set machine instruction is executed, which includes checking contents of a selected field, and determining, based on the checking, whether the contents of the selected field indicate a first condition, a second condition or a third condition represented in one data type. The result location is set to a value based on the determining, wherein the value, based on the setting, is of a data type different from the one data type and represents a result of a previously executed instruction. The result of the previously executed instruction being one of the first condition, the second condition or the third condition.
    Type: Application
    Filed: June 24, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378469
    Abstract: A machine instruction is provided that has associated therewith a result location to be used for a set operation, a first source, a second source, and an operation select field configured to specify a plurality of selectable operations. The machine instruction is executed, which includes obtaining the first source, the second source, and a selected operation, and performing the selected operation on the first source and the second source to obtain a result in one data type. That result is quantized to a value in a different data type, and the value is placed in the result location.
    Type: Application
    Filed: June 24, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378485
    Abstract: A set machine instruction is provided that has associated therewith a result location to be used with a set operation. The set machine instruction is executed, which includes checking contents of a selected field, and determining, based on the checking, whether the contents of the selected field indicate a first condition, a second condition or a third condition represented in one data type. The result location is set to a value based on the determining, wherein the value, based on the setting, is of a data type different from the one data type and represents a result of a previously executed instruction. The result of the previously executed instruction being one of the first condition, the second condition or the third condition.
    Type: Application
    Filed: September 29, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378478
    Abstract: A machine instruction to find a condition location within registers, such as vector registers. The machine instruction has associated therewith a register to be examined and a result location. The register includes a plurality of elements. In execution, the machine instruction counts a number of contiguous elements of the plurality of elements of the register having a particular value in a selected location within the contiguous elements. Other locations within the contiguous elements are ignored for the counting. The counting provides a count placed in the result location.
    Type: Application
    Filed: September 29, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Markus Kaltenbach, Jentje Leenstra, Brett Olsson
  • Publication number: 20160378468
    Abstract: A Set Boolean machine instruction is provided that has associated therewith a result location to be used for a set Boolean operation and a mask. The mask is configured to test a plurality of types of conditions, including simple conditions and composite conditions. The machine instruction is executed, and the executing includes performing a first logical operation between the mask and contents of a selected field to obtain an output. The mask indicates a condition to be tested, and the condition is one type of condition of the plurality of types of conditions. The executing further includes performing a second logical operation on the output to obtain a first value represented as one data type, and placing a result in the result location based on the first value. The result including a second a value of another data type, the other data type being different from the one data type.
    Type: Application
    Filed: June 24, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Brett Olsson
  • Publication number: 20160378477
    Abstract: A machine instruction to find a condition location within registers, such as vector registers. The machine instruction has associated therewith a register to be examined and a result location. The register includes a plurality of elements. In execution, the machine instruction counts a number of contiguous elements of the plurality of elements of the register having a particular value in a selected location within the contiguous elements. Other locations within the contiguous elements are ignored for the counting. The counting provides a count placed in the result location.
    Type: Application
    Filed: June 24, 2015
    Publication date: December 29, 2016
    Inventors: Michael K. Gschwind, Markus Kaltenbach, Jentje Leenstra, Brett Olsson
  • Patent number: 9507595
    Abstract: An aspect includes implementing endian-mode-sensitive memory instructions for a vector processor. One such system includes a byte addressable memory and a processor. The processor includes a register that includes a plurality of byte elements 0 to S. The system is configured to perform a method that includes obtaining an instruction by the processor and determining that the instruction is a memory access instruction specifying the register and a memory address. In response to the determination that the instruction is a memory access instruction and independent of a current global endian mode setting that is selectable in the processor, the memory access instruction is executed by copying the byte data between the memory and the register so that the byte element n of the register corresponds to the memory address+n for n=0 to S.
    Type: Grant
    Filed: February 28, 2014
    Date of Patent: November 29, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael K. Gschwind, Brett Olsson