Deterministic memory allocation for real-time applications

    公开(公告)号:US11755298B2

    公开(公告)日:2023-09-12

    申请号:US17516393

    申请日:2021-11-01

    Applicant: APEX.AI, INC.

    Inventor: Misha Shalem

    Abstract: Deterministic memory allocation for real-time applications. In an embodiment, bitcode is scanned to detect calls by a memory allocation function to a dummy function. Each call uses parameters comprising an identifier of a memory pool and a size of a data type to be stored in the memory pool. For each detected call, an allocation record, comprising the parameters, is generated. Then, a header file is generated based on the allocation records. The header file may comprise a definition of bucket(s) and a definition of memory pools. Each definition of a memory pool may identify at least one bucket.

    Method and Apparatus for Compiler Driven Bank Conflict Avoidance

    公开(公告)号:US20190187964A1

    公开(公告)日:2019-06-20

    申请号:US15848476

    申请日:2017-12-20

    CPC classification number: G06F8/4434 G06F8/433

    Abstract: Systems, apparatuses, and methods for converting computer program source code from a first high level language to a functionally equivalent executable program code. Source code in a first high level language is analyzed by a code compilation tool. In response to identifying a potential bank conflict in a multi-bank register file, operands of one or more instructions are remapped such that they map to different physical banks of the multi-bank register file. Identifying a potential bank conflict comprises one or more of identifying an intra-instruction bank conflict, an inter-instruction bank conflict, and identifying a multi-word operand with a potential bank conflict.

    FEEDBACK DIRECTED PROGRAM STACK OPTIMIZATION

    公开(公告)号:US20180107465A1

    公开(公告)日:2018-04-19

    申请号:US15297606

    申请日:2016-10-19

    CPC classification number: G06F8/4434 G06F8/443 G06F8/447

    Abstract: A processing device includes an instruction memory to store executable applications that are executable by a target processor, and a compiler. The compiler includes a builder module and a call graph generator. The builder module to build executable applications for the target processor based on a set of instructions. The call graph generator to create a first call graph that indicates a stack usage for each call path of the executable applications. If a first executable application built by the builder module includes a call path that exceeds a stack size constraint of the target processor, the builder module to optimize only functions within the call path that exceeds the stack size constraint in response to the request from the evaluation monitor, and to build a second executable application based on the set of instructions. The second executable application is optimized for stack memory usage of the target processor.

    DYNAMIC ALIAS CHECKING WITH TRANSACTIONAL MEMORY

    公开(公告)号:US20180095736A1

    公开(公告)日:2018-04-05

    申请号:US15850668

    申请日:2017-12-21

    Abstract: An approach to dynamic run-time alias checking comprising creating a main thread and a helper thread, computing an optimized first region of code in a rollback-only transactional memory associated with the main thread checking for one or more alias dependencies in an un-optimized first region of code, responsive to a determination in a predetermined amount of time that no alias dependencies are present in the un-optimized first region of code, committing a transaction and responsive to at least one of a failure to determine results of the check for one or more alias dependencies in the predetermined amount of time and a determination in the predetermined amount of time that alias dependencies are present in the un-optimized first region of code, performing a rollback of the transaction and executing the un-optimized first region of code.

    GENERATION OF APPLICATION CODES FROM A FORMAL SPECIFICATION

    公开(公告)号:US20180088913A1

    公开(公告)日:2018-03-29

    申请号:US15710561

    申请日:2017-09-20

    Abstract: System and method to generate automatically a compact application code suitable for taking advantage of the intrinsic power of processors. The system can generate the application code executable by a processor from a formal specification associated with an application, the formal specification including operators, and the system including an analyzer to code each operator of the formal specification by a corresponding operation code followed by a minimum number of input code(s) and output code identifying input and output parameters associated with the operator, thus automatically generating a compact application code suitable for being stored in a memory associated with the processor and for being executed by an interpreter of the processor.

    Automatic reference counting
    10.
    发明授权

    公开(公告)号:US09747088B2

    公开(公告)日:2017-08-29

    申请号:US14082005

    申请日:2013-11-15

    Inventor: Allen Bauer

    CPC classification number: G06F8/4434 G06F12/0261

    Abstract: Methods for enabling automatic reference counting are disclosed. A source code is searched for a particular pattern via a compiler associated with a computer system, wherein the source code is written in an existing language and wherein the particular pattern is for a reference associating an object with a portion of memory. The particular pattern is recognized at the computer system. The particular pattern is replaced with an automatic reference counting implementation at the computer system. The source code is executed with the automatic reference counting implementation.

Patent Agency Ranking