Patents by Inventor David Kravitz
David Kravitz 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: 12554504Abstract: Apparatus and methods for dependency tracking, chaining, and/or fusing for vector instructions. A system, processor, or integrated circuit includes a renamer to generate a valid bit mask for each micro-operation decoded from a first vector instruction, where the valid bit mask indicates what portion of a mask register to write and generate a dependency bit mask for each micro-operation decoded from a second vector instruction, where the dependency bit mask is based on a relationship between the first vector instruction and the second vector instruction, and an issue queue configured to issue for execution each micro-operation from the second vector instruction when an associated dependency bit mask is cleared based on execution of appropriate micro-operations from the first vector instruction.Type: GrantFiled: April 26, 2023Date of Patent: February 17, 2026Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz
-
Patent number: 12530197Abstract: Apparatus and methods for cracking and processing vector instructions in a vector pipeline after decoding of a single or a first micro-operation in a main or primary pipeline are described. An integrated circuit includes a primary pipeline to decode a micro-operation from an instruction, create a reorder buffer entry in a reorder buffer for the micro-operation, responsive to a determination that the instruction is a vector instruction, send the micro-operation to a vector pipeline, and responsive to a determination that the instruction is a multiple register vector instruction, signal a vector pipeline to decode a remaining micro-operations from the instruction, and the vector pipeline to process the micro-operation, and process the remaining micro-operations when the instruction is the multiple register vector instruction.Type: GrantFiled: March 8, 2023Date of Patent: January 20, 2026Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz
-
Patent number: 12493465Abstract: Systems and methods are disclosed for transferring data between a memory system and a vector register file. For example, a system may include a vector pipeline including a vector physical register file; a load store unit; one or more pipeline stages configured to decode a vector memory instruction to obtain a macro-operation and dispatch the macro-operation to both the load store unit and the vector pipeline, and a baler circuitry, including a buffer with entries. The vector pipeline is configured to crack the macro-operation into multiple micro-operations. The baler circuitry is configured to implement the multiple micro-operations to transfer data between one or more selected entries of the buffer and respective registers of the vector physical register file. The load store unit is configured to implement the macro-operation to transfer data between one or more addresses in a memory system and the one or more selected entries of the buffer.Type: GrantFiled: November 30, 2023Date of Patent: December 9, 2025Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz, Alexandre Solomatnikov
-
Publication number: 20250278271Abstract: Systems and methods are disclosed for transferring an operand between a vector pipeline and a scalar pipeline. For example, some methods may include transferring an operand from a scalar pipeline to a scalar-to-vector buffer responsive to the scalar pipeline executing a first micro-op, wherein the scalar-to-vector buffer includes an entry having a width equal to a width of a scalar register of the scalar pipeline and a data store configured to store an indication mapping the entry to the first micro-op; updating the data store to include the indication mapping the entry to the first micro-op; identifying, by the vector pipeline in response to execution of a second micro-op and in dependence on the indication mapping the entry to the first micro-op, the entry storing the operand; and transferring the operand from the entry in the scalar-to-vector buffer to the vector pipeline responsive to the vector pipeline executing the second micro-op.Type: ApplicationFiled: May 23, 2025Publication date: September 4, 2025Applicant: SiFive, Inc.Inventors: David Kravitz, Andrew Hanselman, Bradley Gene Burgess
-
Publication number: 20250251939Abstract: Apparatus and methods which bundle micro-operations with respect to a vector instruction, dynamically allocate register blocks for a vector instruction, and track the registers using valid bits. A method includes decoding, by a decoder, a vector instruction having a length multiplier of at least two into a number of micro-operations less than the length multiplier, allocating, by an issue queue, an issue queue entry to each of the number of micro-operations and executing, by the issue queue with execution units, each of the number of micro-operations a number of times from the issue queue entry to collectively match the length multiplier.Type: ApplicationFiled: February 3, 2025Publication date: August 7, 2025Applicant: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz, Alexandre Solomatnikov
-
Patent number: 12373210Abstract: Systems and methods are disclosed for transferring an operand between a vector pipeline and a scalar pipeline. For example, some methods may include transferring an operand from a scalar pipeline to a scalar-to-vector buffer responsive to the scalar pipeline executing a first micro-op, wherein the scalar-to-vector buffer includes an entry having a width equal to a width of a scalar register of the scalar pipeline and a data store configured to store an indication mapping the entry to the first micro-op; updating the data store to include the indication mapping the entry to the first micro-op; identifying, by the vector pipeline in response to execution of a second micro-op and in dependence on the indication mapping the entry to the first micro-op, the entry storing the operand; and transferring the operand from the entry in the scalar-to-vector buffer to the vector pipeline responsive to the vector pipeline executing the second micro-op.Type: GrantFiled: November 30, 2023Date of Patent: July 29, 2025Assignee: SiFive, Inc.Inventors: David Kravitz, Andrew Hanselman, Bradley Gene Burgess
-
Publication number: 20250181355Abstract: Apparatus and methods for dependency tracking, chaining, and/or fusing for vector instructions. A system, processor, or integrated circuit includes a renamer to generate a valid bit mask for each micro-operation decoded from a first vector instruction, where the valid bit mask indicates what portion of a mask register to write and generate a dependency bit mask for each micro-operation decoded from a second vector instruction, where the dependency bit mask is based on a relationship between the first vector instruction and the second vector instruction, and an issue queue configured to issue for execution each micro-operation from the second vector instruction when an associated dependency bit mask is cleared based on execution of appropriate micro-operations from the first vector instruction.Type: ApplicationFiled: January 31, 2025Publication date: June 5, 2025Applicant: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz
-
Patent number: 12310356Abstract: An organ container, which is for storing an organ or tissue and is able to be inserted into an apparatus for at least one of perfusion and transport of the organ or tissue, includes a basin configured to hold the organ or tissue and a perfusate bath. The organ container also includes tubing that (i) is connectable to a source of oxygen, (ii) includes a plurality of holes by which the oxygen may exit the tubing, and (iii) is located within the basin so as to be submerged within the perfusate bath present during the perfusion or transport of the organ or tissue.Type: GrantFiled: September 9, 2020Date of Patent: May 27, 2025Assignee: LIFELINE SCIENTIFIC, INC.Inventors: Peter De Muylder, David Kravitz, Christopher P Steinman, David Pettinato, Bernard Theunis
-
Patent number: 12293192Abstract: Apparatus and methods which bundle micro-operations with respect to a vector instruction, dynamically allocate register blocks for a vector instruction, and track the registers using valid bits. A method includes decoding, by a decoder, a vector instruction having a length multiplier of at least two into a number of micro-operations less than the length multiplier, allocating, by an issue queue, an issue queue entry to each of the number of micro-operations and executing, by the issue queue with execution units, each of the number of micro-operations a number of times from the issue queue entry to collectively match the length multiplier.Type: GrantFiled: April 28, 2023Date of Patent: May 6, 2025Assignee: SiFive, Inc.Inventors: Bradley Gene Burgess, David Kravitz, Alexandre Solomatnikov
-
Patent number: 12271737Abstract: An instruction execution circuit operable to reduce two or more micro-operations into one by producing multiple permutation and merge results in one execution cycle. The execution circuit includes a permutation and merge switching fabric and a bank of multiplexers. For a fetched instruction, a decoder decodes an opcode to generate a set of control indications used to control the multiplexers to select bytes from the respective inputs that are destined for each of the multiple results. In this manner, multiple permutation results can be output from the execution circuits in one micro-operation.Type: GrantFiled: January 31, 2019Date of Patent: April 8, 2025Assignee: Marvell Asia Pte, Ltd.Inventors: David Kravitz, David A. Carlson
-
Publication number: 20240362025Abstract: Apparatus and methods which bundle micro-operations with respect to a vector instruction, dynamically allocate register blocks for a vector instruction, and track the registers using valid bits. A method includes decoding, by a decoder, a vector instruction having a length multiplier of at least two into a number of micro-operations less than the length multiplier, allocating, by an issue queue, an issue queue entry to each of the number of micro-operations and executing, by the issue queue with execution units, each of the number of micro-operations a number of times from the issue queue entry to collectively match the length multiplier.Type: ApplicationFiled: April 28, 2023Publication date: October 31, 2024Inventors: Bradley Gene Burgess, David Kravitz, Alexandre Solomatnikov
-
Publication number: 20240362026Abstract: Apparatus and methods for dependency tracking, chaining, and/or fusing for vector instructions. A system, processor, or integrated circuit includes a renamer to generate a valid bit mask for each micro-operation decoded from a first vector instruction, where the valid bit mask indicates what portion of a mask register to write and generate a dependency bit mask for each micro-operation decoded from a second vector instruction, where the dependency bit mask is based on a relationship between the first vector instruction and the second vector instruction, and an issue queue configured to issue for execution each micro-operation from the second vector instruction when an associated dependency bit mask is cleared based on execution of appropriate micro-operations from the first vector instruction.Type: ApplicationFiled: April 26, 2023Publication date: October 31, 2024Inventors: Bradley Gene Burgess, David Kravitz
-
Publication number: 20240303082Abstract: Apparatus and methods for cracking and processing vector instructions in a vector pipeline after decoding of a single or a first micro-operation in a main or primary pipeline are described. An integrated circuit includes a primary pipeline to decode a micro-operation from an instruction, create a reorder buffer entry in a reorder buffer for the micro-operation, responsive to a determination that the instruction is a vector instruction, send the micro-operation to a vector pipeline, and responsive to a determination that the instruction is a multiple register vector instruction, signal a vector pipeline to decode a remaining micro-operations from the instruction, and the vector pipeline to process the micro-operation, and process the remaining micro-operations when the instruction is the multiple register vector instruction.Type: ApplicationFiled: March 8, 2023Publication date: September 12, 2024Inventors: Bradley Gene Burgess, David Kravitz
-
Patent number: 12070028Abstract: An apparatus for perfusing an organ or tissue includes a perfusion circuit for perfusing the organ or tissue; a controller configured to control the apparatus; and a detector configured to detect an optional component of the apparatus, and provide a signal to the controller indicative of the presence of the optional component, wherein the controller is configured to control the perfusion circuit in a first mode when the optional component is detected and to control the perfusion circuit in a second mode when the optional component is not detected.Type: GrantFiled: February 21, 2020Date of Patent: August 27, 2024Assignee: LIFELINE SCIENTIFIC, INC.Inventors: David Kravitz, Christopher P. Steinman, Jeffrey S. Louis, Matthew Copithorne, Brian Otts, Peter Demuylder
-
Publication number: 20240184576Abstract: Systems and methods are disclosed for transferring data between a memory system and a vector register file. For example, a system may include a vector pipeline including a vector physical register file; a load store unit; one or more pipeline stages configured to decode a vector memory instruction to obtain a macro-operation and dispatch the macro-operation to both the load store unit and the vector pipeline, and a baler circuitry, including a buffer with entries. The vector pipeline is configured to crack the macro-operation into multiple micro-operations. The baler circuitry is configured to implement the multiple micro-operations to transfer data between one or more selected entries of the buffer and respective registers of the vector physical register file. The load store unit is configured to implement the macro-operation to transfer data between one or more addresses in a memory system and the one or more selected entries of the buffer.Type: ApplicationFiled: November 30, 2023Publication date: June 6, 2024Inventors: Bradley Gene Burgess, David Kravitz, Alexandre Solomatnikov
-
Publication number: 20240184575Abstract: Systems and methods are disclosed for transferring an operand between a vector pipeline and a scalar pipeline. For example, some methods may include transferring an operand from a scalar pipeline to a scalar-to-vector buffer responsive to the scalar pipeline executing a first micro-op, wherein the scalar-to-vector buffer includes an entry having a width equal to a width of a scalar register of the scalar pipeline and a data store configured to store an indication mapping the entry to the first micro-op; updating the data store to include the indication mapping the entry to the first micro-op; identifying, by the vector pipeline in response to execution of a second micro-op and in dependence on the indication mapping the entry to the first micro-op, the entry storing the operand; and transferring the operand from the entry in the scalar-to-vector buffer to the vector pipeline responsive to the vector pipeline executing the second micro-op.Type: ApplicationFiled: November 30, 2023Publication date: June 6, 2024Inventors: David Kravitz, Andrew Hanselman, Bradley Gene Burgess
-
Patent number: 11947964Abstract: Examples of a carry chain for performing an operation on operands each including elements of a selectable size is provided. Advantageously, the carry chain adapts to elements of different sizes. The carry chain determines a mask based on a selected size of an element. The carry chain selects, based on the mask, whether to carry a partial result of an operation performed on corresponding first portions of a first operand and a second operand into a next operation. The next operation is performed on corresponding second portions of the first operand and the second operand, and, based on the selection, the partial result of the operation. The carry chain stores, in a memory, a result formed from outputs of the operation and the next operation.Type: GrantFiled: October 25, 2022Date of Patent: April 2, 2024Assignee: Marvell Asia Pte, Ltd.Inventor: David Kravitz
-
Patent number: 11766038Abstract: An apparatus for perfusing an organ or tissue includes a perfusion circuit for perfusing the organ or tissue; an oxygenator for oxygenating perfusate that circulates through the perfusion circuit; and an oxygen supply device such as an oxygen concentrator or an oxygen generator configured to supply oxygen to the oxygenator. A method of perfusing an organ or tissue includes producing oxygen from a device such as an oxygen concentrator and an oxygen generator; supplying the produced oxygen, preferably as the oxygen is produced, to a perfusate to oxygenate the perfusate; and perfusing the organ or tissue with the oxygenated perfusate. The produced oxygen preferably has a concentration greater than the oxygen concentration in air.Type: GrantFiled: December 10, 2015Date of Patent: September 26, 2023Assignee: LIFELINE SCIENTIFIC, INC.Inventors: Christopher P. Steinman, David Kravitz, Aaron R. Ferber, Ross Lockwood, Rodney H. Monson, Evan D. Shapiro
-
Patent number: 11709674Abstract: A method of implementing a processor architecture and corresponding system includes operands of a first size and a datapath of a second size. The second size is different from the first size. Given a first array of registers and a second array of registers, each register of the first and second arrays being of the second size, selecting a first register and corresponding second register from the first array and the second array, respectively, to perform operations of the first size. This allows a user, who is interfacing with the hardware processor through software, to provide data of the datapath bit-width instead of the register bit-width. Advantageously, the user is agnostic to the size of the registers.Type: GrantFiled: October 16, 2020Date of Patent: July 25, 2023Assignee: Marvell Asia Pte, Ltd.Inventors: David Kravitz, Manan Salvi, David A. Carlson
-
Publication number: 20230047935Abstract: Examples of a carry chain for performing an operation on operands each including elements of a selectable size is provided. Advantageously, the carry chain adapts to elements of different sizes. The carry chain determines a mask based on a selected size of an element. The carry chain selects, based on the mask, whether to carry a partial result of an operation performed on corresponding first portions of a first operand and a second operand into a next operation. The next operation is performed on corresponding second portions of the first operand and the second operand, and, based on the selection, the partial result of the operation. The carry chain stores, in a memory, a result formed from outputs of the operation and the next operation.Type: ApplicationFiled: October 25, 2022Publication date: February 16, 2023Inventor: David KRAVITZ