IP Library Granted Patent US 9,600,422
Granted Patent B2
US 9,600,422 · App. 13/691,630 · Granted Mar 21, 2017

Monitoring accesses to memory in a multiprocessor system

Inventors: Paul Tindall (Bedford, GB); Erkut Uygun (Cambridge, GB)
Assignee: u-blox AG
G06F12/1458G06F8/4442G06F9/30185G06F11/3409G06F11/3636G06F9/45504G06F11/3471
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,600,422
App. No.
13/691,630
Granted
Mar 21, 2017
Kind
B2
Abstract

Embodiments of the present invention provide methods and apparatus in a multiprocessor system, whereby a set of rules relating to memory access are created and implemented in a hardware element. The rules can be updated dynamically, for example by the sequence processor (or sequencer) used to control the multiple processing elements.

Claims (33)

1. A method in a multiprocessor system, the method comprising:

receiving a plurality of signals during execution of a sequence of code, the plurality of signals indicating a plurality of memory access rules to be applied at instances during further execution of the sequence of code, wherein the multiprocessor system includes a plurality of processing elements, a sequencer, and memory to which each of the processing elements and the sequencer has access, wherein the sequencer is a sequence processor adapted to generate the sequence of code to be executed by the plurality of processing elements, wherein the sequencer is distinct from the plurality of processing elements, and wherein the generated sequence of code includes actions to be performed by the plurality of processing elements under control of the sequence processor;

at the instances, applying the memory access rules for memory accesses by the plurality of processing elements, wherein the plurality of signals update the memory access rules dynamically as execution of the sequence of code progresses; and

in the event of a memory access by a processing element violating one or more of the memory access rules, generating a warning signal.

2. The method according to claim 1 , wherein the plurality of signals includes one or more signals indicating one or more memory addresses and the expected data contents at those one or more memory addresses.

3. The method according to claim 1 , wherein the plurality of signals includes one or more signals indicating a particular memory address and a processing element which is expected to access the particular memory address.

4. The method according to claim 1 , further comprising:

on generation of the warning signal, taking action to handle the consequences of the one or more rule violations.

5. The method according to claim 4 , wherein the action comprises one or more of:

halting execution of part or all of the sequence of code;

outputting trace data of memory accesses prior to the violation; and

triggering an exception handling routine.

6. The method according to claim 1 , wherein a violation is deemed to occur if a memory access by a processing element specifies a memory address to which access by the processing element is restricted.

7. The method according to claim 1 , wherein a violation is deemed to occur if a memory access specifies a write action to a memory address which is read only.

8. The method according to claim 1 , wherein a violation is deemed to occur if a memory access specifies a data value which differs from a value specified in one of the memory access rules.

9. The method according to claim 1 , further comprising:

detecting memory accesses on one or more buses connected to the memory.

10. The method according to claim 1 , wherein the plurality of signals indicating the plurality of memory access rules are generated by and received from the sequencer.

11. The method according to claim 1 , carried out on trace data acquisition circuitry, provided for the purpose of debugging.

12. A hardware element for use in a multiprocessor system, the hardware element being adapted to perform a method in the multiprocessor system, wherein the method comprises:

receiving a plurality of signals during execution of a sequence of code, the plurality of signals indicating a plurality of memory access rules to be applied at instances during further execution of the sequence of code, wherein the multiprocessor system includes a plurality of processing elements, a sequencer, and memory to which each of the processing elements and the sequencer has access, wherein the sequencer is a sequence processor adapted to generate the sequence of code to be executed by the plurality of processing elements, wherein the sequencer is distinct from the plurality of processing elements, and wherein the generated sequence of code includes actions to be performed by the plurality of processing elements under control of the sequence processor;

at the instances, applying the memory access rules for memory accesses by the plurality of processing elements, wherein the plurality of signals update the memory access rules dynamically as execution of the sequence of code progresses; and

in the event of a memory access by a processing element violating one or more of the memory access rules, generating a warning signal.

13. The hardware element according to claim 12 , wherein the plurality of signals indicating the plurality of memory access rules are generated by and received from the sequencer.

14. A multiprocessor system, comprising:

a plurality of processing elements;

a sequencer adapted to generate a sequence of code to be executed by the plurality of processing elements, wherein the sequencer is a sequence processor, wherein the sequencer is distinct from the plurality of processing elements, and wherein the generated sequence of code includes actions to be performed by the plurality of processing elements under control of the sequence processor;

memory to which each of the processing elements and the sequencer has access; and

a hardware element, wherein the hardware element is adapted to perform a method in the multiprocessor system and wherein the method comprises:

receiving a plurality of signals during execution of the sequence of code, the signals indicating a plurality of memory access rules to be applied at instances during further execution of the sequence of code;

at the instances, applying the memory access rules for memory accesses by the plurality of processing elements, wherein the plurality of signals update the memory access rules dynamically as execution of the sequence of code progresses; and

in the event of a memory access by a processing element violating one or more of the memory access rules, generating a warning signal.

15. The multiprocessor system according to claim 14 , wherein the plurality of signals indicating the plurality of memory access rules are generated by and received from the sequencer.

Assignments (2)
CHANGE OF NAME Recorded Nov 12, 2015
From: U-BLOX MELBOURN LTD
To: U-BLOX AG
Reel/Frame 037029/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2012
From: TINDALL, PAUL; UYGUN, ERKUT
To: U-BLOX MELBOURN LTD.
Reel/Frame 029430/0913 →
Priority Claims (1)
GB 1205737.8 · Mar 30, 2012 · national
Continuity (1)
Related Publication 20130262806A1 · Oct 3, 2013