RELIABLE NON-VOLATILE MEMORY PROGRAMMING INTERFACE AND METHOD THEREFOR

    公开(公告)号:US20190095133A1

    公开(公告)日:2019-03-28

    申请号:US15714487

    申请日:2017-09-25

    Inventor: Marius Grannaes

    Abstract: In one form, a non-volatile memory driver includes a function library defining a plurality of native function calls, and a hardware abstraction layer having an input coupled to and output of the function library for receiving the at least one instruction, and an output for providing a plurality of signals to cause a non-volatile memory to execute the at least one instruction. The non-volatile memory driver maintains the flash memory as a circular buffer using a bottom sector pointer and a next location pointer. In response to receiving a housekeeping command generated from corresponding command from an application layer as the selected native function call, the function library causes the hardware abstraction layer to selectively repack valid data of a bottom sector indicated by said bottom sector pointer using the next location pointer, and to selectively erase the bottom sector.

    Method for patching code located in one time programmable memory

    公开(公告)号:US12204891B2

    公开(公告)日:2025-01-21

    申请号:US18106766

    申请日:2023-02-07

    Inventor: Marius Grannaes

    Abstract: Methods of performing updates to a software image that is disposed in a one time programmable (OTP) memory device are disclosed. The method includes writing an invalid opcode at the beginning of a function that has been modified. This invalid opcode causes an exception. The exception handler determines the address where the invalid opcode was located and searches a random access memory (RAM) dictionary. This RAM dictionary contains entries that each have an original address in the OTP Memory and the patch address in a volatile memory. The exception handler then causes the processing unit to jump to the patch address, where a modified function is located.

    System and Method for Securing Nonvolatile Memory for Execute-in-Place

    公开(公告)号:US20230418603A1

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

    申请号:US17846587

    申请日:2022-06-22

    CPC classification number: G06F9/30036 G06F9/3816 G06F9/3004 G06F9/30112

    Abstract: A system for securing the contents of an external nonvolatile memory associated with a main processing device is disclosed. The system stores additional information associated with each cache line in the nonvolatile memory. In some embodiments, this additional information comprises a NONCE (number used once) and a MAC (Message Authentication Code). When the main processing device reads a cache line from the nonvolatile memory, the NONCE, address and data from the cache line are used to generate a MAC, which is then compared to the MAC stored in the nonvolatile memory. If the MACs match, the cache line is stored in the on-board cache of the main processing device. If the MACs do not match, a countermeasure may be implemented. The use of a NONCE addresses an information leakage issue that is present when stream ciphers, such as AES-CTR or AES-GCM, are used in data storage applications.

    MEMORY ALLOCATION BASED ON LIFESPAN
    4.
    发明公开

    公开(公告)号:US20240111437A1

    公开(公告)日:2024-04-04

    申请号:US17957406

    申请日:2022-09-30

    CPC classification number: G06F3/0625 G06F3/0616 G06F3/064 G06F3/0679

    Abstract: Memory is allocated according to lifespan. The memory manager allocates requests for short-term memory to one portion of memory and allocates requests for long-term memory to another portion of the memory. The memory manager looks for free space for requests for long-term memory starting at a first location in the memory and the memory manager looks for free space beginning at a second location in the memory for requests for short-term memory. In that way, more memory banks are likely to be free and can be powered down to save power consumption, particularly during sleep states.

    Reliable non-volatile memory programming interface and method therefor

    公开(公告)号:US11016708B2

    公开(公告)日:2021-05-25

    申请号:US16662575

    申请日:2019-10-24

    Inventor: Marius Grannaes

    Abstract: A non-volatile memory (NVM) driver includes a function library with native function calls and a hardware abstraction layer for receiving at least one instruction from the function library and providing signals to cause an NVM to execute the at least one instruction. The NVM includes a plurality of sectors, and the NVM driver uses a first portion as an application visible memory, and a second portion for another purpose. The NVM driver maintains the NVM as a circular buffer within the application visible memory. When a native function call is a resizing command, the function library adjusts the circular buffer selectively according to whether the resizing command increases or decreases the application visible memory. When a native function call is a write counter command, the NVM driver selectively creates a new counter object including a counter base and a plurality of increment locations using a next location pointer.

    METHOD FOR PATCHING CODE LOCATED IN ONE TIME PROGRAMMABLE MEMORY

    公开(公告)号:US20240264825A1

    公开(公告)日:2024-08-08

    申请号:US18106766

    申请日:2023-02-07

    Inventor: Marius Grannaes

    CPC classification number: G06F8/66

    Abstract: Methods of performing updates to a software image that is disposed in a one time programmable memory device are disclosed. The method includes writing an invalid opcode at the beginning of a function that has been modified. This invalid opcode causes an exception. The exception handler determines the address where the invalid opcode was located and searches a RAM dictionary. This RAM dictionary contains entries that each have an original address in the OTP Memory and the patch address in a volatile memory. The exception handler then causes the processing unit to jump to the patch address, where a modified function is located.

    Reliable non-volatile memory programming interface and method therefor

    公开(公告)号:US10754579B2

    公开(公告)日:2020-08-25

    申请号:US15714487

    申请日:2017-09-25

    Inventor: Marius Grannaes

    Abstract: In one form, a non-volatile memory driver includes a function library defining a plurality of native function calls, and a hardware abstraction layer having an input coupled to and output of the function library for receiving the at least one instruction, and an output for providing a plurality of signals to cause a non-volatile memory to execute the at least one instruction. The non-volatile memory driver maintains the flash memory as a circular buffer using a bottom sector pointer and a next location pointer. In response to receiving a housekeeping command generated from corresponding command from an application layer as the selected native function call, the function library causes the hardware abstraction layer to selectively repack valid data of a bottom sector indicated by said bottom sector pointer using the next location pointer, and to selectively erase the bottom sector.

    RELIABLE NON-VOLATILE MEMORY PROGRAMMING INTERFACE AND METHOD THEREFOR

    公开(公告)号:US20200057585A1

    公开(公告)日:2020-02-20

    申请号:US16662575

    申请日:2019-10-24

    Inventor: Marius Grannaes

    Abstract: A non-volatile memory (NVM) driver includes a function library with native function calls and a hardware abstraction layer for receiving at least one instruction from the function library and providing signals to cause an NVM to execute the at least one instruction. The NVM includes a plurality of sectors, and the NVM driver uses a first portion as an application visible memory, and a second portion for another purpose. The NVM driver maintains the NVM as a circular buffer within the application visible memory. When a native function call is a resizing command, the function library adjusts the circular buffer selectively according to whether the resizing command increases or decreases the application visible memory. When a native function call is a write counter command, the NVM driver selectively creates a new counter object including a counter base and a plurality of increment locations using a next location pointer.

    Dynamic containerized system memory protection for low-energy MCUs

    公开(公告)号:US09984009B2

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

    申请号:US15008650

    申请日:2016-01-28

    CPC classification number: G06F12/1491 G06F13/28 G06F13/4282 G06F2212/1052

    Abstract: A processor, such as a low-cost microcontroller unit, uses a DMA controller to facilitate direct memory transactions between hardware subsystems independently of the CPU. To enable those transactions to be carried out security, gateways are provided to the DMA controller and peripheral bridge. The gateways, which have access to multiple access policies, switch between those policies depending on a hardware context and/or subcontext, such as the bus master originating the transaction and/or the DMA channel associated with the transaction. The gateways are operable to administer those policies independently of the CPU. In various implementations, gateways are provided for the DMA controller, the peripheral bridge, and/or individual peripherals. The processor is able to support secure, fully containerized operations involving its peripherals without constant CPU intervention.

Patent Agency Ranking