Patents by Inventor Peter Franz Valentin Sollich
Peter Franz Valentin Sollich 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: 11954023Abstract: Garbage collection or other computational work accesses memory which is located outside processor registers. Some embodiments specify at least some of the memory accesses and separate them from other computations, and utilize a memory access state machine to control the execution of both kinds of computation. Code that employs memory access results is placed in a run routine which is divided between respective states of the state machine. The specified memory accesses are invoked from a state code, and overlap other computation. A prefetch buffer may be dynamically sized based on the availability of space in the prefetch buffer. Code for shared work, such as address relocation code, may be placed in its own state structure. Candidate code for possible separation into a specified memory access routine may be automatically recognized.Type: GrantFiled: July 20, 2022Date of Patent: April 9, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Maoni Zhang Stephens, Peter Franz Valentin Sollich
-
Publication number: 20240028509Abstract: Computational costs are reduced for garbage collection or other computational work that accesses memory which is located outside processor registers. Cost reduction is accomplished by specifying at least some of the memory accesses and separating them from other computations, and by utilizing a memory access cost management state machine to control the execution of both kinds of computation. Code that employs memory access results is placed in a run routine which is divided between respective states of the state machine. The specified memory accesses are invoked from a state code, and overlap other computation to reduce overall execution time. A prefetch buffer may be dynamically sized based on the availability of space in the prefetch buffer. Code for shared work, such as address relocation code, may be placed in its own state structure. Candidate code for possible separation into a specified memory access routine may be automatically recognized.Type: ApplicationFiled: July 20, 2022Publication date: January 25, 2024Inventors: Maoni Zhang STEPHENS, Peter Franz Valentin SOLLICH
-
Patent number: 11416392Abstract: An arena-based memory management system is disclosed. In response to a call to reclaim memory storing a group of objects allocated in an arena, an object not in use of the group of objects allocated in the arena is collected. A live object of the plurality of objects is copied from the arena to a heap.Type: GrantFiled: June 20, 2019Date of Patent: August 16, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Peter Franz Valentin Sollich, Robert Lovejoy Goodwin, Charles Ryan Salada
-
Publication number: 20200401517Abstract: An arena-based memory management system is disclosed. In response to a call to reclaim memory storing a group of objects allocated in an arena, an object not in use of the group of objects allocated in the arena is collected. A live object of the plurality of objects is copied from the arena to a heap.Type: ApplicationFiled: June 20, 2019Publication date: December 24, 2020Applicant: Microsoft Technology Licensing, LLCInventors: Peter Franz Valentin Sollich, Robert Lovejoy Goodwin, Charles Ryan Salada
-
Patent number: 10656926Abstract: A precompiled form of information derived from CIL metadata is created in a compact type layout (CTL) format. Information in CTL format for each data type in a program can be represented as a contiguous byte stream. Information that is irrelevant to decisions concerning layout of a data type in memory can be suppressed. Information that is irrelevant to creation of virtual machine data structures can be suppressed. The information in CTL format may reference types, methods, and fields by CIL metadata token. Virtual override information such as, for example, a logical virtual table layout, can be pre-computed. Interface implementation information can be pre-computed. A decoder can generate data structures used in generation of an executable from the CTL formatted data.Type: GrantFiled: February 23, 2016Date of Patent: May 19, 2020Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventor: Peter Franz Valentin Sollich
-
Patent number: 10572275Abstract: Compatibility can be maintained when program code and pre-computed data associated with the program code are distributed in separate modules by using a data structure of key/value pairs comprising a dictionary. The dictionary can include a fixed part, a floating part and a version number. The version number in the dictionary can be used to determine if a dictionary for the program is current or outdated by comparing the dictionary version number and the version number associated with a dictionary layout in the current shared library. The dictionary can be rebuilt dynamically if the version number of the dictionary does not match the version number of the dictionary layout in the current shared library. The version number of the dictionary can be updated to the version associated with the layout version and the version pointer in the dictionary can be updated to point to the updated version number.Type: GrantFiled: June 15, 2017Date of Patent: February 25, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Hongtao Yu, David Charles Wrighton, Ian Michael Bearman, Michal Strehovský, Peter Franz Valentin Sollich
-
Publication number: 20180365033Abstract: Compatibility can be maintained when program code and pre-computed data associated with the program code are distributed in separate modules by using a data structure of key/value pairs comprising a dictionary. The dictionary can include a fixed part, a floating part and a version number. The version number in the dictionary can be used to determine if a dictionary for the program is current or outdated by comparing the dictionary version number and the version number associated with a dictionary layout in the current shared library. The dictionary can be rebuilt dynamically if the version number of the dictionary does not match the version number of the dictionary layout in the current shared library. The version number of the dictionary can be updated to the version associated with the layout version and the version pointer in the dictionary can be updated to point to the updated version number.Type: ApplicationFiled: June 15, 2017Publication date: December 20, 2018Inventors: Hongtao YU, David Charles WRIGHTON, Ian Michael BEARMAN, Michal STREHOVSKÝ, Peter Franz Valentin SOLLICH
-
Publication number: 20160342400Abstract: A precompiled form of information derived from CIL metadata is created in a compact type layout (CTL) format. Information in CTL format for each data type in a program can be represented as a contiguous byte stream. Information that is irrelevant to decisions concerning layout of a data type in memory can be suppressed. Information that is irrelevant to creation of virtual machine data structures can be suppressed. The information in CTL format may reference types, methods, and fields by CIL metadata token. Virtual override information such as, for example, a logical virtual table layout, can be pre-computed. Interface implementation information can be pre-computed. A decoder can generate data structures used in generation of an executable from the CTL formatted data.Type: ApplicationFiled: February 23, 2016Publication date: November 24, 2016Inventor: Peter Franz Valentin Sollich
-
Patent number: 9274772Abstract: A precompiled form of information derived from CIL metadata is created in a compact type layout (CTL) format. Information in CTL format for each data type in a program can be represented as a contiguous byte stream. Information that is irrelevant to decisions concerning layout of a data type in memory can be suppressed. information that is irrelevant to creation of virtual machine data structures can be suppressed. The information in CTL format may reference types, methods, and fields by CIL metadata token. Virtual override information such as, for example, a logical virtual table layout, can be pre-computed. Interface implementation information can be pre-computed. A decoder can generate data structures used in generation of an executable from the CTL formatted data.Type: GrantFiled: August 13, 2012Date of Patent: March 1, 2016Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC.Inventor: Peter Franz Valentin Sollich
-
Publication number: 20140046984Abstract: A precompiled form of information derived from CIL metadata is created in a compact type layout (CTL) format. Information in CTL format for each data type in a program can be represented as a contiguous byte stream. Information that is irrelevant to decisions concerning layout of a data type in memory can be suppressed. Information that is irrelevant to creation of virtual machine data structures can be suppressed. The information in CTL format may reference types, methods, and fields by CIL metadata token. Virtual override information such as, for example, a logical virtual table layout, can be pre-computed. Interface implementation information can be pre-computed. A decoder can generate data structures used in generation of an executable from the CTL formatted data.Type: ApplicationFiled: August 13, 2012Publication date: February 13, 2014Applicant: MICROSOFT CORPORATIONInventor: Peter Franz Valentin Sollich
-
Patent number: 8375373Abstract: In a change-resilient intermediate language code, registers have been allocated but symbolic references and pseudo instructions still use unbound items. Pseudo instructions having a specific location within generated intermediate language code request insertion of machine instruction(s) at the location to perform specified operations. Specified operations may include, for example, operations to perform or facilitate garbage collection, memory allocation, exception handling, various kinds of method calls and execution engine service calls, managed object field access, heap management, generic code, static variable storage access, address mode modification, and/or symbolic reference to types. A binder may transform the intermediate language code into executable code. Little or no register allocation is needed during binding, but unbound items such as offsets, sizes, slots, and the like are determined and specified to produce executable code.Type: GrantFiled: April 19, 2010Date of Patent: February 12, 2013Assignee: Microsoft CorporationInventor: Peter Franz Valentin Sollich
-
Patent number: 8365156Abstract: Management of changes involving base classes is facilitated. An intermediate language code has execution-ready register allocation but unbound object field layout and/or virtual method slot assignment, thereby providing resilience. A symbolic reference rather than a direct offset can identify a field, and intermediate language code can be field order independent. Other symbolic references may also be used. Intermediate language code pseudo instructions can express items such as a field access, a method call, a virtual method call, part or all of a method prolog, part or all of a method epilog. A binder binds the intermediate language code to produce executable code. Thus, one may avoid recompilation otherwise required when a base class is revised by adding a field, removing a private field, rearranging field order, adding a virtual method, or rearranging virtual method order.Type: GrantFiled: April 17, 2010Date of Patent: January 29, 2013Assignee: Microsoft CorporationInventor: Peter Franz Valentin Sollich
-
Publication number: 20110258616Abstract: In a change-resilient intermediate language code, registers have been allocated but symbolic references and pseudo instructions still use unbound items. Pseudo instructions having a specific location within generated intermediate language code request insertion of machine instruction(s) at the location to perform specified operations. Specified operations may include, for example, operations to perform or facilitate garbage collection, memory allocation, exception handling, various kinds of method calls and execution engine service calls, managed object field access, heap management, generic code, static variable storage access, address mode modification, and/or symbolic reference to types. A binder may transform the intermediate language code into executable code. Little or no register allocation is needed during binding, but unbound items such as offsets, sizes, slots, and the like are determined and specified to produce executable code.Type: ApplicationFiled: April 19, 2010Publication date: October 20, 2011Applicant: Microsoft CorporationInventor: Peter Franz Valentin Sollich
-
Publication number: 20110258615Abstract: Management of changes involving base classes is facilitated. An intermediate language code has execution-ready register allocation but unbound object field layout and/or virtual method slot assignment, thereby providing resilience. A symbolic reference rather than a direct offset can identify a field, and intermediate language code can be field order independent. Other symbolic references may also be used. Intermediate language code pseudo instructions can express items such as a field access, a method call, a virtual method call, part or all of a method prolog, part or all of a method epilog. A binder binds the intermediate language code to produce executable code. Thus, one may avoid recompilation otherwise required when a base class is revised by adding a field, removing a private field, rearranging field order, adding a virtual method, or rearranging virtual method order.Type: ApplicationFiled: April 17, 2010Publication date: October 20, 2011Applicant: Microsoft CorporationInventor: Peter Franz Valentin Sollich
-
Publication number: 20020016953Abstract: A visual development system having an interface which assists a user with input of source code expressions and statements during creation of a computer program is described. The interface includes an Integrated Development Environment (IDE) interface having a code editor with “Code Completion” and “Code Parameter” features for displaying context sensitive pop-up windows within a source code file. Code Completion is implemented at the user interface level by displaying a Code Completion dialog box after the user enters a record or class name followed by a period. For a class, the dialog lists the properties, methods and events appropriate to the class. For a record or structure, the dialog lists the data members of the record. To complete entry of the expression, the user need only select an item from the dialog list, whereupon the system automatically enters the selected item in the code. Code completion also operates during input of assignment statements.Type: ApplicationFiled: August 22, 2001Publication date: February 7, 2002Applicant: Borland International, Inc.Inventor: Peter Franz Valentin Sollich
-
Patent number: 6314559Abstract: A visual development system having an interface which assists a user with input of source code expressions and statements during creation of a computer program is described. The interface includes an Integrated Development Environment (IDE) interface having a code editor with “Code Completion” and “Code Parameter” features for displaying context sensitive pop-up windows within a source code file. Code Completion is implemented at the user interface level by displaying a Code Completion dialog box after the user enters a record or class name followed by a period. For a class, the dialog lists the properties, methods and events appropriate to the class. For a record or structure, the dialog lists the data members of the record. To complete entry of the expression, the user need only select an item from the dialog list, whereupon the system automatically enters the selected item in the code. Code completion also operates during input of assignment statements.Type: GrantFiled: October 2, 1997Date of Patent: November 6, 2001Assignee: Barland Software CorporationInventor: Peter Franz Valentin Sollich