Multiprocessor programming toolkit for design reuse

US10592233B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10592233-B2
Application numberUS-201815872421-A
CountryUS
Kind codeB2
Filing dateJan 16, 2018
Priority dateNov 6, 2012
Publication dateMar 17, 2020
Grant dateMar 17, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques for specifying and implementing a software application targeted for execution on a multiprocessor array (MPA). The MPA may include a plurality of processing elements, supporting memory, and a high bandwidth interconnection network (IN), communicatively coupling the plurality of processing elements and supporting memory. In some embodiments, software code may include first program instructions executable to perform a function. In some embodiments, the software code may also include one or more language constructs that are configurable to specify one or more parameter inputs. In some embodiments, the one or more parameter inputs are configurable to specify a set of hardware resources usable to execute the software code. In some embodiments, the hardware resources include multiple processors and may include multiple supporting memories.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory computer-readable medium that stores software code deployable on a multiprocessor array (MPA), wherein the software code comprises: a cell definition that includes: first program instructions executable to perform a first function; and one or more first language constructs which are user configurable to specify one or more parameter inputs; wherein the one or more parameter inputs are user configurable to specify properties of a set of hardware resources usable to execute the software code, wherein the hardware resources include a plurality of processors and a plurality of memories; and wherein multiple instances of the first program instructions specified by the cell definition are deployable, based on user input selecting the cell and specifying one or more different parameter inputs for ones of the instances, in different hardware portions of at least one MPA to perform the first function for one or more software applications, such that amounts of hardware resources in the respective hardware portion on which one or more respective instances of the cell are deployed are different and are based on the user-specified one or more parameter inputs. 2. The non-transitory computer-readable medium of claim 1 , where respective first and second instantiations of the cell are deployable on at least one MPA for different respective software applications. 3. The non-transitory computer-readable medium of claim 1 , wherein the respective instances of the cell utilizes different numbers of processors of the MPA based on configuration of the one or more parameter inputs. 4. The non-transitory computer-readable medium of claim 1 , wherein the one or more first language constructs are further user configurable to specify one or more communication ports, wherein the one or more communication ports are user configurable to specify communication with other software code in a software application; wherein instances of the cell comprise respective configurations of the one or more communication ports specifying connectivity of the one or more communication ports with other software code deployed on the MPA. 5. The non-transitory computer-readable medium of claim 4 , wherein the one or more communication ports include one or more fabric ports and one or more shared memory ports. 6. The non-transitory computer-readable medium of claim 1 , wherein the one or more parameter inputs further modify an operation of the first function. 7. The non-transitory computer-readable medium of claim 1 , wherein the respective instantiations of the cell utilize different amounts of memory to store temporary state when performing the first function based on configuration of the one or more parameter inputs. 8. The non-transitory computer-readable medium of claim 1 , wherein the respective instantiations of the cell utilize different amounts of communications resources when performing the first function based on configuration of the one or more parameter inputs. 9. The non-transitory computer-readable medium of claim 1 , wherein a first instance of the cell is deployed using a portion of hardware resources assigned to a larger cell in which the first instance of the cell is nested. 10. The non-transitory computer-readable medium of claim 1 , wherein the one or more parameter inputs are configurable during execution of the software code to dynamically adjust the set of hardware resources on which at least one instance of the cell is deployed. 11. A method for configuring a multiprocessor array (MPA), wherein the MPA comprises hardware resources including a plurality of processors and a plurality of memories, the method comprising: accessing a library of software code in a memory medium, wherein the software code includes a cell definition that includes first program instructions executable to perform a first function, wherein the cell definition comprises one or more language constructs which specify properties of a set of hardware resources for deployment of the cell; receiving user input creating multiple instances of the first program instructions specified by the cell definition for use in one or more applications, wherein the user input includes input to the one or more language constructs specifying different amounts of hardware resources for respective ones of the multiple instances; and wherein the multiple instances of the cell are deployable such that amounts of hardware resources in respective hardware portions on which the respective instances are deployed are different based on the user input to the one or more language constructs. 12. The method of claim 11 , further comprising: deploying the multiple instances of the cell on one or more MPAs. 13. The method of claim 11 , where respective first and second instantiations of the cell are deployable on at least one MPA within the same software application. 14. The method of claim 11 , wherein the respective instances of the cell utilizes different numbers of processors of the MPA based on configuration of the one or more language constructs. 15. The method of claim 11 , wherein the one or more language constructs are further user configurable to specify one or more communication ports, wherein the one or more communication ports are user configurable to specify communication with other software code in a software application; wherein instances of the cell comprise respective configurations of the one or more communication ports specifying connectivity of the one or more communication ports with other software code deployed on the MPA. 16. A system, comprising: one or more processors; and one or more memories having program instructions stored thereon that are executable by the one or more processors to cause operations comprising: deploying software code on a multiprocessor array (MPA), wherein the software code comprises: a cell definition that includes: first program instructions executable to perform a first function; and one or more first language constructs which are user configurable to specify one or more parameter inputs; wherein the one or more parameter inputs are user configurable to specify properties of a set of hardware resources usable to execute the software code, wherein the hardware resources include a plurality of processors and a plurality of memories; and wherein multiple instances of the first program instructions specified by the cell definition are deployable, based on user input selecting the cell and specifying one or more different parameter inputs for ones of the instances, in different hardware portions of at least one MPA to perform the first function in one or more software applications; and wherein amounts of hardware resources in the respective hardware portion on which one or more respective instances of the cell are deployed are different and are based on the user-specified one or more parameter inputs. 17. The system of claim 16 , further comprising: the MPA. 18. The system of claim 16 , wherein the one or more parameter inputs further modify an operation of the first function. 19. The system of claim 16 , wherein the respective instantiations of the cell utilize different amounts of memory to store temporary state when performing the first function based on configuration of the one or more parameter inputs. 20. The system of claim 16 , wherein the respective instantiations of the cell utilize different amounts of communications resources when performing the first function based on configuration of t

Assignees

Inventors

Classifications

  • Software deployment · CPC title

  • Optimisation · CPC title

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • Configuring for program initiating, e.g. using registry, configuration files · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10592233B2 cover?
Techniques for specifying and implementing a software application targeted for execution on a multiprocessor array (MPA). The MPA may include a plurality of processing elements, supporting memory, and a high bandwidth interconnection network (IN), communicatively coupling the plurality of processing elements and supporting memory. In some embodiments, software code may include first program ins…
Who is the assignee on this patent?
Coherent Logix Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 17 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).