IP Library Granted Patent US 9,489,316
Granted Patent B2
US 9,489,316 · App. 13/842,006 · Granted Nov 8, 2016

Method and device implementing execute-only memory protection

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,489,316
App. No.
13/842,006
Granted
Nov 8, 2016
Kind
B2
Abstract

Access requests to access data operands from memory space designated as a type of execute-only memory are allowed to precede in response to determining that the operand access request was generated using a particular type of addressing mode.

Claims (39)

1. A method comprising:

receiving a first read request for a first instruction stored at a first address of un-protected memory space, wherein accesses to unprotected memory are not selectively allow or prevent read requests based upon whether the read requests are operand requests;

receiving, at a memory controller, a second read request for a first operand stored at a second address of protected memory space, wherein protected memory space does selectively allow or prevent read requests based upon whether the read requests are operand requests; and

allowing, by the memory controller, the second read request in response to meeting at least one criteria selected from the group of criteria consisting of:

comparing the first address to the second address, and determining based upon the comparison that the second read request being within a predefined distance of the first address; and

receiving an indicator at the memory controller from a source of the second read request that a specific addressing mode was used to calculate the second address;

otherwise preventing the second read request, by the memory controller, in response to not meeting at least one of the criteria.

2. The method of claim 1 , wherein the at least one criteria is the second read request being within the predefined distance of the first address.

3. The method of claim 1 , wherein the at least one criteria is the receiving an indicator, and the source is a first data processor and the indicator is generated by the first data processor in response to executing an instruction needing an operand a within the predefined distance of a program counter of the first instruction, wherein a location of the operand relative the program counter is specified at an index field of the instruction.

4. The method of claim 2 , wherein the predefined distance is based upon a maximum PC-relative addressing offset supported by the first instruction.

5. The method of claim 2 , wherein the predefined distance is a fixed value.

6. The method of claim 2 , wherein the predefined distance is a programmable value.

7. The method of claim 2 further comprising:

providing the first instruction to the source in response to the first read request; and

wherein the first operand is an operand of the first instruction.

8. The method of claim 2 further comprising:

providing the first instruction to the source in response to the first read request; and

wherein the first operand is not an operand of the first instruction.

9. The method of claim 2 , wherein the first instruction is the instruction most recently fetched prior to receiving the second read request.

10. The method of claim 1 , wherein selectively allowing the second read request is in response to receiving the indicator from the source.

11. The method of claim 10 , wherein the specific operand addressing mode is program counter relative addressing mode.

12. A device comprising:

a first data processor;

a memory; and

a validation circuit coupled to the first data processor and to the memory,

in response to receiving an operand read requests from the first data processor at the validation circuit to access a first type of memory space, the validation circuit to selectively allow an operand read request to the first type of memory space in response to meeting at least one criteria selected from the group of criteria consisting of:

determining, in response to comparing an address of the operand read request to an address of a previously fetched instruction, that the operand read request is within a first predefined address distance of a previously fetched instruction; and

an indicator with the operand read request received at the validation circuit indicating that a specific addressing mode was used to calculate an address of the operand read request;

otherwise the validation circuit prevents the operand read request in response to at least one of the criteria not being met.

13. The device of claim 12 , wherein the at least one criteria is the operand read request being within the first predefined address distance of a previously fetched instruction.

14. The device of claim 12 , wherein the at least one criteria is in response to the indicator with the operand read request indicating that the specific addressing mode was used to calculate the address of the operand read request.

15. The device of claim 14 , wherein the specific addressing mode is PC-relative addressing mode.

16. A device comprising:

a first data processor, the first data processor comprising an output to generate an attribute indicator for operand read requests that indicates whether or not target addresses of the operand read requests were calculated using a specific type of addressing mode;

a memory; and

a validation circuit coupled to the first data processor and to the memory,

in response to receiving at the validation circuity a first read request and the attribute indicator from the first data processor to access a first type of memory space, the validation circuit to determine whether the first read request is an operand request or an instruction request, and

in response to the first read request being an operand request, the validation circuit to selectively allow the first read request in response to the attribute indicator indicating that a target address of the first read request was calculated using the specific type of addressing mode, and

in response to the first read request being an instruction request, the validation circuit to allow the first read to proceed without regards to an addressing mode used to calculate the target address of the first read request.

Assignments (16)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
MERGER Recorded Jan 3, 2017
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 041144/0363 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0725 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0744 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0704 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →