Patents by Inventor Perry S. CHENG
Perry S. CHENG 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: 10216626Abstract: Embodiments of the invention provide a method and system for dynamic memory management implemented in hardware. In an embodiment, the method comprises storing objects in a plurality of heaps, and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heaps and marks selected objects, uses the marks to identify a plurality of the objects, and frees the identified objects. In an embodiment, the method comprises storing objects in a heap, each of at least some of the objects including a multitude of pointers; and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heap, using the pointers of some of the objects to identify others of the objects; processes the objects to mark selected objects; and uses the marks to identify a group of the objects, and frees the identified objects.Type: GrantFiled: March 2, 2017Date of Patent: February 26, 2019Assignee: International Business Machines CorporationInventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla
-
Patent number: 10191735Abstract: An action sequence including a plurality of actions and a corresponding input dictionary are obtained. A first container, running an image for a first one of the actions implemented in a first programming language, is instantiated, and the image is executed on the input dictionary to obtain a first action result; the input dictionary is then updated with the first action result to obtain an updated input dictionary. A second container, running an image for a second one of the actions implemented in a second programming language, different than the first programming language, is instantiated, and the image is executed on the updated input dictionary to obtain a second action result; the updated input dictionary is further updated with the second action result to obtain a further updated input dictionary. The input dictionaries are independent of the programming languages.Type: GrantFiled: February 21, 2017Date of Patent: January 29, 2019Inventors: Perry S. Cheng, Stephen Fink, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski
-
Patent number: 10185558Abstract: An action sequence including a plurality of actions and a corresponding input dictionary are obtained. A first container, running an image for a first one of the actions implemented in a first programming language, is instantiated, and the image is executed on the input dictionary to obtain a first action result; the input dictionary is then updated with the first action result to obtain an updated input dictionary. A second container, running an image for a second one of the actions implemented in a second programming language, different than the first programming language, is instantiated, and the image is executed on the updated input dictionary to obtain a second action result; the updated input dictionary is further updated with the second action result to obtain a further updated input dictionary. The input dictionaries are independent of the programming languages.Type: GrantFiled: December 31, 2017Date of Patent: January 22, 2019Assignee: International Business Machines CorporationInventors: Perry S. Cheng, Stephen Fink, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski
-
Publication number: 20180121195Abstract: An action sequence including a plurality of actions and a corresponding input dictionary are obtained. A first container, running an image for a first one of the actions implemented in a first programming language, is instantiated, and the image is executed on the input dictionary to obtain a first action result; the input dictionary is then updated with the first action result to obtain an updated input dictionary. A second container, running an image for a second one of the actions implemented in a second programming language, different than the first programming language, is instantiated, and the image is executed on the updated input dictionary to obtain a second action result; the updated input dictionary is further updated with the second action result to obtain a further updated input dictionary. The input dictionaries are independent of the programming languages.Type: ApplicationFiled: December 31, 2017Publication date: May 3, 2018Inventors: Perry S. Cheng, Stephen Fink, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski
-
Publication number: 20170242689Abstract: An action sequence including a plurality of actions and a corresponding input dictionary are obtained. A first container, running an image for a first one of the actions implemented in a first programming language, is instantiated, and the image is executed on the input dictionary to obtain a first action result; the input dictionary is then updated with the first action result to obtain an updated input dictionary. A second container, running an image for a second one of the actions implemented in a second programming language, different than the first programming language, is instantiated, and the image is executed on the updated input dictionary to obtain a second action result; the updated input dictionary is further updated with the second action result to obtain a further updated input dictionary. The input dictionaries are independent of the programming languages.Type: ApplicationFiled: February 21, 2017Publication date: August 24, 2017Inventors: Perry S. Cheng, Stephen Fink, Vinod Muthusamy, Rodric Rabbah, Aleksander Slominski
-
Publication number: 20170177474Abstract: Embodiments of the invention provide a method and system for dynamic memory management implemented in hardware. In an embodiment, the method comprises storing objects in a plurality of heaps, and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heaps and marks selected objects, uses the marks to identify a plurality of the objects, and frees the identified objects. In an embodiment, the method comprises storing objects in a heap, each of at least some of the objects including a multitude of pointers; and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heap, using the pointers of some of the objects to identify others of the objects; processes the objects to mark selected objects; and uses the marks to identify a group of the objects, and frees the identified objects.Type: ApplicationFiled: March 2, 2017Publication date: June 22, 2017Inventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla
-
Patent number: 9632928Abstract: Embodiments of the invention provide a method and system for dynamic memory management implemented in hardware. In an embodiment, the method comprises storing objects in a plurality of heaps, and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heaps and marks selected objects, uses the marks to identify a plurality of the objects, and frees the identified objects. In an embodiment, the method comprises storing objects in a heap, each of at least some of the objects including a multitude of pointers; and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heap, using the pointers of some of the objects to identify others of the objects; processes the objects to mark selected objects; and uses the marks to identify a group of the objects, and frees the identified objects.Type: GrantFiled: April 28, 2016Date of Patent: April 25, 2017Assignee: International Business Machines CorporationInventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla
-
Patent number: 9424010Abstract: Extraction of functional semantics and isolated dataflow from imperative object oriented languages, in one aspect, may include identifying one or more methods and/or classes associated with one or more of a plurality of property labels in a computer code written in object oriented language to extract functional and isolation characteristics in the computer code. The plurality of property labels supported by one or more checking rules, are used to verify that the one or more methods and/or classes identified with the plurality of property labels have isolation characteristics. An object oriented language compiler is provided for supplying the plurality of property labels and checking rules. The object oriented language compiler further may include capability to transform methods into compute tasks and connect the compute tasks so as to create a dataflow graph.Type: GrantFiled: August 30, 2010Date of Patent: August 23, 2016Assignee: International Business Machines CorporationInventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Rodric Rabbah
-
Publication number: 20160239414Abstract: Embodiments of the invention provide a method and system for dynamic memory management implemented in hardware. In an embodiment, the method comprises storing objects in a plurality of heaps, and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heaps and marks selected objects, uses the marks to identify a plurality of the objects, and frees the identified objects. In an embodiment, the method comprises storing objects in a heap, each of at least some of the objects including a multitude of pointers; and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heap, using the pointers of some of the objects to identify others of the objects; processes the objects to mark selected objects; and uses the marks to identify a group of the objects, and frees the identified objects.Type: ApplicationFiled: April 28, 2016Publication date: August 18, 2016Inventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla
-
Patent number: 9411564Abstract: Extraction of functional semantics and isolated dataflow from imperative object oriented languages, in one aspect, may include identifying one or more methods and/or classes associated with one or more of a plurality of property labels in a computer code written in object oriented language to extract functional and isolation characteristics in the computer code. The plurality of property labels supported by one or more checking rules, are used to verify that the one or more methods and/or classes identified with the plurality of property labels have isolation characteristics. An object oriented language compiler is provided for supplying the plurality of property labels and checking rules. The object oriented language compiler further may include capability to transform methods into compute tasks and connect the compute tasks so as to create a dataflow graph.Type: GrantFiled: September 6, 2012Date of Patent: August 9, 2016Assignee: International Business Machines CorporationInventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Rodric Rabbah
-
Patent number: 9355030Abstract: Embodiments of the invention provide a method and system for dynamic memory management implemented in hardware. In an embodiment, the method comprises storing objects in a plurality of heaps, and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heaps and marks selected objects, uses the marks to identify a plurality of the objects, and frees the identified objects. In an embodiment, the method comprises storing objects in a heap, each of at least some of the objects including a multitude of pointers; and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heap, using the pointers of some of the objects to identify others of the objects; processes the objects to mark selected objects; and uses the marks to identify a group of the objects, and frees the identified objects.Type: GrantFiled: June 6, 2014Date of Patent: May 31, 2016Assignee: International Business Machines CorporationInventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla
-
Patent number: 9329843Abstract: A communication stack for software-hardware co-execution on heterogeneous computing systems with processors and reconfigurable logic, in one aspect, may comprise a crossbar operable to connect hardware user code and functioning as a platform independent communication layer. A physical interface interfaces to the reconfigurable logic. A physical interface bridge is connected to the cross and the physical interface. The physical interface bridge connects the crossbar and the physical interface via a platform specific translation layer specific to the reconfigurable logic. The crossbar, the physical interface, and the physical interface bridge may be instantiated in response to the hardware user code being generated, the crossbar instantiated with associated parameters comprising one or more routes and associated data widths. The hardware user code is assigned a unique virtual route in the crossbar.Type: GrantFiled: June 10, 2013Date of Patent: May 3, 2016Assignee: International Business Machines CorporationInventors: Perry S. Cheng, Rodric Rabbah, Sunil K. Shukla
-
Patent number: 9323506Abstract: A communication stack for software-hardware co-execution on heterogeneous computing systems with processors and reconfigurable logic, in one aspect, may comprise a crossbar operable to connect hardware user code and functioning as a platform independent communication layer. A physical interface interfaces to the reconfigurable logic. A physical interface bridge is connected to the cross and the physical interface. The physical interface bridge connects the crossbar and the physical interface via a platform specific translation layer specific to the reconfigurable logic. The crossbar, the physical interface, and the physical interface bridge may be instantiated in response to the hardware user code being generated, the crossbar instantiated with associated parameters comprising one or more routes and associated data widths. The hardware user code is assigned a unique virtual route in the crossbar.Type: GrantFiled: August 5, 2013Date of Patent: April 26, 2016Assignee: International Business Machines CorporationInventors: Perry S. Cheng, Rodric Rabbah, Sunil K. Shukla
-
Publication number: 20150356007Abstract: Embodiments of the invention provide a method and system for dynamic memory management implemented in hardware. In an embodiment, the method comprises storing objects in a plurality of heaps, and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heaps and marks selected objects, uses the marks to identify a plurality of the objects, and frees the identified objects. In an embodiment, the method comprises storing objects in a heap, each of at least some of the objects including a multitude of pointers; and operating a hardware garbage collector to free heap space. The hardware garbage collector traverses the heap, using the pointers of some of the objects to identify others of the objects; processes the objects to mark selected objects; and uses the marks to identify a group of the objects, and frees the identified objects.Type: ApplicationFiled: June 6, 2014Publication date: December 10, 2015Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla
-
Patent number: 9152399Abstract: Compile-time recognition of graph structure where graph has arbitrary connectivity and is constructed using recursive computations is provided. In one aspect, the graph structure recognized at compile time may be duplicated at runtime and can then operate on runtime values not known at compile time.Type: GrantFiled: August 19, 2013Date of Patent: October 6, 2015Assignee: International Business Machines CorporationInventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Stephen Fink, Rodric Rabbah
-
Patent number: 9104432Abstract: Compile-time recognition of graph structure where graph has arbitrary connectivity and is constructed using recursive computations is provided. In one aspect, the graph structure recognized at compile time may be duplicated at runtime and can then operate on runtime values not known at compile time.Type: GrantFiled: June 24, 2013Date of Patent: August 11, 2015Assignee: International Business Machines CorporationInventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Stephen Fink, Rodric Rabbah
-
Patent number: 8938725Abstract: A technique for compiling and running high-level program on heterogeneous computers may include partitioning a program code into two or more logical units, and compiling each of the logical units into one or more executable entities. At least some of the logical units are compiled into two or more executable entities, the two or more executable entities being different compilations of the same logical unit. The two or more executable entities are compatible to run on respective two or more platforms that have different architecture.Type: GrantFiled: September 14, 2012Date of Patent: January 20, 2015Assignee: International Business Machines CorporationInventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Rodric Rabbah
-
Publication number: 20140380291Abstract: Compile-time recognition of graph structure where graph has arbitrary connectivity and is constructed using recursive computations is provided. In one aspect, the graph structure recognized at compile time may be duplicated at runtime and can then operate on runtime values not known at compile time.Type: ApplicationFiled: August 19, 2013Publication date: December 25, 2014Applicant: International Business Machines CorporationInventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Stephen Fink, Rodric Rabbah
-
Publication number: 20140380290Abstract: Compile-time recognition of graph structure where graph has arbitrary connectivity and is constructed using recursive computations is provided. In one aspect, the graph structure recognized at compile time may be duplicated at runtime and can then operate on runtime values not known at compile time.Type: ApplicationFiled: June 24, 2013Publication date: December 25, 2014Inventors: Joshua S. Auerbach, David F. Bacon, Perry S. Cheng, Stephen Fink, Rodric Rabbah
-
Patent number: 8856491Abstract: A computing device is provided and includes a memory module, a sweep engine, a root snapshot module, and a trace engine. The memory module has a memory implemented as at least one hardware circuit. The memory module uses a dual-ported memory configuration. The sweep engine includes a stack pointer. The sweep engine is configured to send a garbage collection signal if the stack pointer falls below a specified level. The sweep engine is in communication with the memory module to reclaim memory. The root snapshot engine is configured to take a snapshot of roots from at least one mutator if the garbage collection signal is received from the sweep engine. The trace engine receives roots from the root snapshot engine and is in communication with the memory module to receive data.Type: GrantFiled: May 23, 2012Date of Patent: October 7, 2014Assignee: International Business Machines CorporationInventors: David F. Bacon, Perry S. Cheng, Sunil K. Shukla