# US 11,442,708 B2 · Compiler-generated alternate memory-mapped data access operations

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,442,708 B2
- Document ID: US11442708B2
- Status: Granted
- Kind: B2
- Application number: 17/024,521
- Filed: 2020-09-17
- Published: 2022-03-17
- Granted: 2022-09-13
- Earliest claimed: 2020-09-17
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Zhijian Zhang; Avaneesh Anandrao Kadam; Pratap Pereira
- Web page: https://patentgrep.com/patent/US11442708B2

## CPC

- G06F 8/41: Compilation
- G06F 8/52: Binary to binary
- G06F 8/447: {Target code generation}
- G06F 12/0223: {User address space allocation, e.g. contiguous or non contiguous base addressing}
- G06F 2212/163: Server or database system
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques for compiling source code include generating object code by processing source code corresponding to a portion of a software program. The source code includes an instruction, native to a program language, for a memory location access. Based at least in part on processing the source code, the compiler generates second object code that, when executed by one or more processors, configures the one or more processors to determine to implement the memory location access using first database access transaction operations or to implement the memory location access using second database access transaction operations. The compiler may generate third object code that configures the one or more processors to implement the memory location access using the first database access transaction operations or to implement the memory location access using the second database access transaction operations, based at least in part based on the determining.

## Claims

### Claim 1

A method of compiling source code, comprising:
generating first object code by processing the source code corresponding to a portion of a software program, the source code including an instruction, native to a program language, for a memory location access;
based at least in part on processing the source code, generating second object code, the second object code comprising single code logic of an application programming interface associated with database access; and
wherein the second object code, when executed by one or more processors, configures the one or more processors to determine to implement,
the memory location access using first database access transaction operations or to implement the memory location access using second database access transaction operations based at least in part on a memory location associated with the memory location access being mapped to a first database or a second database;
wherein generating the second object code includes processing an annotation associated with the instruction, wherein the annotation at least indicates the compiling is to generate the second object code.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
generating third object code that, when executed by the one or more processors, configures the one or more processors to implement the memory location access using the first database access transaction operations or to implement the memory location access using the second database access transaction operations, based at least in part based on the determining.

### Claim 3 (depends on 1)

The method of claim 1, wherein the second object code, when executed by the one or more processors, configures the one or more processors to process a mapping of memory regions to respective data access characteristics.

### Claim 4 (depends on 3)

The method of claim 3, wherein the second object code, when executed by the one or more processors, configures the one or more processors to process an indication of the memory location for the memory location access.

### Claim 5 (depends on 1)

The method of claim 1, wherein the second object code, when executed by the one more processors, determines to implement the memory location access using the first database access transaction operations based at least in part on the memory location being in a first memory region that maps to the first database or to implement the memory location access using second database access transaction operations based at least in part on the memory location being in a second memory region that maps to the second database.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first database access transaction operations include generating an undo log and the second database access transaction operations include operations to govern concurrent access to the second database.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first object code includes at least object code instructions that do not include the memory location access.

### Claim 8

A method performed by one or more processors executing a program that includes an access to a memory location, the method comprising:
determining a database type corresponding to the memory location; and
based at least in part on the determining, deciding to implement the access to the memory location using first database access transaction operations or to implement the access to the memory location using second database access transaction operations, based at least in part on the access to the memory location being mapped to a first database or a second database;
wherein generating the second object code includes processing an annotation associated with the instruction, wherein the annotation at least indicates the compiling is to generate the second object code.

### Claim 9 (depends on 8)

The method of claim 8, wherein:
determining the database type includes processing a handle of the memory location.

### Claim 10 (depends on 8)

The method of claim 8, further comprising:
based at least in part on the deciding, accessing the memory location using the first database access transaction operations or using the second database access transaction operations.

### Claim 11 (depends on 10)

The method of claim 10, wherein:
the first database access transaction operations include generating an undo log and the second database access transaction operations include operations to govern concurrent access to the second database.

### Claim 12

One or more non-transitory computer-readable storage media storing computer-readable instructions that, when executed, instruct one or more processors to perform operations for compiling source code, comprising:
generating first object code by processing source code corresponding to a portion of a software program, the source code including an instruction, native to a program language, for a memory location access;
based at least in part on processing the source code, generating second object code; and
wherein the second object code, when executed by one or more processors of a target computing system, configures the one or more processors of the target computing system to determine to implement,
the memory location access using first database access transaction operations or to implement the memory location access using second database access transaction operations based at least in part on a memory location associated with the memory location access being mapped to a first database or a second database;
wherein generating the second object code includes processing an annotation associated with the instruction, wherein the annotation at least indicates the compiling is to generate the second object code.

### Claim 13 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, the operations further comprising:
generating third object code that, when executed by the one or more processors, configures the one or more processors of the target computing system to implement the memory location access using the first database access transaction operations or to implement the memory location access using the second database access transaction operations, based at least in part based on the determining.

### Claim 14 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, wherein the second object code, when executed by the one or more processors of the target computing system, configures the one or more processors of the target computing system to process a mapping of memory regions to respective data access characteristics.

### Claim 15 (depends on 14)

The one or more non-transitory computer-readable storage media of claim 14, wherein the second obj ect code, when executed by the one or more processors of the target computing system, configures the one or more processors of the target computing system to process an indication of the memory location for the memory location access.

### Claim 16 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, wherein the second object code, when executed by the one more processors of the target computing system, determines to implement the memory location access using the first database access transaction operations based at least in part on the memory location being in a first memory region that maps to the first database or to implement the memory location access using second database access transaction operations based at least in part on the memory location being in a second memory region that maps to the second database.

### Claim 17 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, wherein the first database access transaction operations include generating an undo log and the second database access transaction operations include operations to govern concurrent access to the second database.

### Claim 18 (depends on 12)

The one or more non-transitory computer-readable storage media of claim 12, wherein the first object code includes at least object code instructions that do not include the memory location access.
