Patentable/Patents/US-6038397
US-6038397

System for allocating the memory area of second data which value need not be preserved to another data of some of the processes

PublishedMarch 14, 2000
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Patent Claims
6 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A compiling method for converting the source code of a program to an object code, comprising: a lexical analysis step of analyzing the characters and phrases in said source code; a syntactic analysis step of analyzing the syntax of said program based on the result of analysis in said lexical analysis step; a semantic analysis step of analyzing the meaning of said program based on the result of analysis in said syntactic analysis step; a program division step of dividing said program into a plurality of processes based on the result of analysis in said semantic analysis step; a data reference analysis step of analyzing the data reference relations among the individual processes obtained through the division of the program in said program division step; a memory area allocation step of allocating memory areas to different data based on the data reference relations among the individual processes analyzed in said data reference analysis step; and a code generation step of generating the object code of said program based on the allocation of the memory areas in said memory area allocation step, wherein said data reference analysis step has the step of extracting first data used only in one of the plurality of processes obtained through the division of the program and second data the value of which need not be preserved in some of the plurality of processes obtained through the division of the program and said memory area allocation step has the step of allocating the memory area, which has been allocated to said first data, to another data in any of the processes in which said first data is not used and allocating the memory area, which has been allocated to said second data, to another data in some of the processes in which the value of said second data need not be preserved.

2

2. A compiling method for converting, to an object code, the source code of a program to be executed on a parallel computer comprising a plurality of arithmetic elements each having a memory, comprising: a lexical analysis step of analyzing the characters and phrases in said source code; a syntactic analysis step of analyzing the syntax of said program based on the result of analysis in said lexical analysis step; a semantic analysis step of analyzing the meaning of said program based on the result of analysis in said syntactic analysis step; a program division step of dividing, based on the result of analysis in said semantic analysis step, said program into a plurality of processes to be executed by said plurality of arithmetic elements in synchronization; a data reference analysis step of analyzing the data reference relations among the individual processes obtained through the division of the program in said program division step and among the individual arithmetic elements; a memory area allocation step of allocating the memory areas of the individual arithmetic elements to different data based on the data reference relations among the individual processes and among the individual arithmetic elements analyzed in said data reference analysis step; and a code generation step of generating the object code of said program based on the allocation of the memory areas in said memory area allocation step, wherein said data reference analysis step has the step of extracting first data used only in one of the plurality of processes obtained through the division of the program and only for one of the arithmetic elements and second data the value of which need not be preserved for any of the arithmetic elements in some of the plurality of processes obtained through the division of the program and said memory area allocation step has the step of allocating, for each of the arithmetic elements, the memory area, which has been allocated to said first data, to another data in any of the processes in which said first data is not used and allocating, for each of the arithmetic elements, the memory area, which has been allocated to said second data, to another data in some of the processes in which the value of said second data need not be preserved for any of the arithmetic elements.

3

3. A compiling method for converting, to an object code, the source code of a program to be executed on a parallel computer comprising a plurality of arithmetic elements each having a memory and the functions of a plurality of virtual arithmetic elements, comprising: a lexical analysis step of analyzing the characters and phrases in said source code; a syntactic analysis step of analyzing the syntax of said program based on the result of analysis in said lexical analysis step; a semantic analysis step of analyzing the meaning of said program based on the result of analysis in said syntactic analysis step; a program division step of dividing, based on the result of analysis in said semantic analysis step, said program into a plurality of processes to be executed by said plurality of virtual arithmetic elements in synchronization; a data reference analysis step of analyzing the data reference relations among the individual processes obtained through the division of the program in said program division step and among the individual virtual arithmetic elements; a memory area allocation step of allocating the memory areas of the individual arithmetic elements to different data based on the data reference relations among the individual processes and among the individual virtual arithmetic elements analyzed in said data reference analysis step; and a code generation step of generating the object code of said program based on the allocation of the memory areas in said memory area allocation step, wherein said data reference analysis step has the step of extracting first data used only in one of the plurality of processes obtained through the division of the program and only for one of the virtual arithmetic elements and second data the value of which need not be preserved for any of the virtual arithmetic elements in some of the plurality of processes obtained through the division of the program and said memory area allocation step has the step of allocating, for each of the virtual arithmetic elements, the memory area, which has been allocated to said first data, to another data in any of the processes in which said first data is not used and allocating, for each of the virtual arithmetic elements, the memory area, which has been allocated to said second data, to another data in some of the processes in which the value of said second data need not be preserved for any of the virtual arithmetic elements.

4

4. A compiling apparatus for converting the source code of a program to an object code, comprising: a lexical analysis means for analyzing the characters and phrases in the inputted source code; a syntactic analysis means for analyzing the syntax of said program based on the result of analysis by said lexical analysis means; a semantic analysis means for analyzing the meaning of said program based on the result of analysis by said syntactic analysis means; a program dividing means for dividing said program into a plurality of processes based on the result of analysis by said semantic analysis means; a data reference analysis means for analyzing the data reference relations among the individual processes obtained through the division of the program by said program dividing means; a memory area allocating means for allocating memory areas to different data based on the data reference relations among the individual processes analyzed by said data reference analysis means; and a code generating means for generating the object code of said program based on the allocation of the memory areas by said memory area allocating means, wherein said data reference analysis means has the function of extracting first data used only in one of the plurality of processes obtained through the division of the program and second data the value of which need not be preserved in some of the plurality of processes obtained through the division of the program and said memory area allocating means has the function of allocating the memory area, which has been allocated to said first data, to another data in any of the processes in which said first data is not used and allocating the memory area, which has been allocated to said second data, to another data in some of the processes in which the value of said second data need not be preserved.

5

5. A compiling apparatus for converting, to an object code, the source code of a program to be executed on a parallel computer comprising a plurality of arithmetic elements each having a memory, comprising: a lexical analysis means for analyzing the characters and phrases in the inputted source code; a syntactic analysis means for analyzing the syntax of said program based on the result of analysis by said lexical analysis means; a semantic analysis means for analyzing the meaning of said program based on the result of analysis by said syntactic analysis means; a program dividing means for dividing, based on the result of analysis by said semantic analysis means, said program into a plurality of processes to be executed by said plurality of arithmetic elements in synchronization; a data reference analysis means for analyzing the data reference relations among the individual processes obtained through the division of the program by said program dividing means and among the individual arithmetic elements; a memory area allocating means for allocating the memory areas of the individual arithmetic elements to different data based on the data reference relations among the individual processes and among the individual arithmetic elements analyzed by said data reference analysis means; and a code generating means for generating the object code of said program based on the allocation of the memory areas by said memory area allocating means, wherein said data reference analysis means has the function of extracting first data used only in one of the plurality of processes obtained through the division of the program and only for one of the arithmetic elements and second data the value of which need not be preserved for any of the arithmetic elements in some of the plurality of processes obtained through the division of the program and said memory area allocating means has the function of allocating, for each of the arithmetic elements, the memory area, which has been allocated to said first data, to another data in any of the processes in which said first data is not used and allocating, for each of the arithmetic elements, the memory area, which has been allocated to said second data, to another data in some of the processes in which the value of said second data need not be preserved for any of the arithmetic elements.

6

6. A compiling apparatus for converting, to an object code, the source code of a program to be executed on a parallel computer comprising a plurality of arithmetic elements each having a memory and the functions of a plurality of virtual arithmetic elements, comprising: a lexical analysis means for analyzing the characters and phrases in the inputted source code; a syntactic analysis means for analyzing the syntax of said program based on the result of analysis by said lexical analysis means; a semantic analysis means for analyzing the meaning of said program based on the result of analysis by said syntactic analysis means; a program dividing means for dividing, based on the result of analysis by said semantic analysis means, said program into a plurality of processes to be executed by said plurality of virtual arithmetic elements in synchronization; a data reference analysis means for analyzing the data reference relations among the individual processes obtained through the division of the program by said program dividing means and among the individual virtual arithmetic elements; a memory area allocating means for allocating the memory areas of the individual arithmetic elements to different data based on the data reference relations among the individual processes and among the individual virtual arithmetic elements analyzed by said data reference analysis means; and a code generating means for generating the object code of said program based on the allocation of the memory areas by said memory area allocating means, wherein said data reference analysis means has the function of extracting first data used only in one of the plurality of processes obtained through the division of the program and only for one of the virtual arithmetic elements and second data the value of which need not be preserved for any of the virtual arithmetic elements in some of the plurality of processes obtained through the division of the program and said memory region allocating means has the function of allocating, for each of the virtual arithmetic elements, the memory area, which has been allocated to said first data, to another data in any of the processes in which said first data is not used and allocating, for each of the virtual arithmetic elements, the memory area, which has been allocated to said second data, to another data in some of the processes in which the value of said second data need not be preserved for any of the virtual arithmetic elements.

Detailed Description

Complete technical specification and implementation details from the patent document.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

Unknown

Publication Date

March 14, 2000

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System for allocating the memory area of second data which value need not be preserved to another data of some of the processes” (US-6038397). https://patentable.app/patents/US-6038397

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.