IP Library Granted Patent US 7,661,100
Granted Patent B2
US 7,661,100 · App. 10/500,708 · Granted Feb 9, 2010

Method and system for determining total code execution time in a data processor

Assignee: Xelerated AB
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 7,661,100
App. No.
10/500,708
Granted
Feb 9, 2010
Kind
B2
Abstract

A method and a processing system for a communications network, including receiving a program code including multiple instructions for the communications network dividing the program into multiple sequences, defining multiple relocation objects, each corresponding to a dependency relationship between two or more of the sequences, and allocating the sequences to a processor instruction memory.

Claims (27)

1. A method for linking program code in a processor instruction memory comprising rows and columns, the program code comprising a plurality of instructions for processing data packets in a communications network, the method comprising:

dividing the program code into a plurality of sequences, each sequence comprising a number of instructions steps and being configured to perform a certain task on a data packet passing through the communications network;

defining, based on the program code, a plurality of relocation objects, each relocation object of the plurality of relocation objects corresponding to a dependency relationship between two or more of the sequences;

allocating each sequence to at least one row and at least one column of the processor instruction memory such that the instruction steps of the sequence are consecutively allocated in the processor instruction memory;

linking a first sequence to a second sequence by using a defined relocation object corresponding to a dependency relationship between the first sequence and the second sequence to define a branch from the first sequence to the second sequence;

forming at least one directed graph, based on at least some of the sequences and at least some of the relocation objects, and determining a longest execution path through the directed graph; and

entering in the processor instruction memory in a shorter of the at least two execution paths a null instruction, so as to make the at least two execution paths equally long,

wherein the length of the at least two execution paths correspond at least to the length of the longest execution path.

2. The method according to claim 1 , comprising the step of moving at least one sequence in the instruction memory.

3. The method according to claim 1 , comprising the step of determining the existence of any circle reference by any of the relocation objects between any of the sequences.

4. The method according to claim 1 , comprising the step of linking at least one sequence, obtained by the step of dividing the program code, to a sequence, obtained by dividing another program code.

5. A processing system for linking program code in a processor instruction memory comprising rows and columns, the processing system comprising:

an assembler comprising program code, comprising a plurality of instructions for processing data packets in a communication network wherein the assembler being adapted to:

divide the program code into a plurality of sequences, each sequence comprising a number of instruction steps and being configured to perform a certain task on a data packet passing through the communications network, and

define, based on the program code, a plurality of relocation objects, each relocation object of the plurality of relocation objects corresponding to a dependency relationship between two or more of the sequences,

a processor comprising:

a linker being adapted to:

allocate each sequence to at least one row and at least one column of the processor instruction memory, such that the instruction steps of the sequence is consecutively allocated in the processor instruction memory; and

linking a first sequence to a second sequence by using a defined relocation object, corresponding to a dependency relationship between the first sequence and the second sequence to define a branch from the first sequence to the second sequence,

wherein, the assembler is adapted to form at least one directed graph, based on at least some of the sequences and at least some of the relocation objects, and the linker is adapted to determine a longest execution path through the directed graph,

the linker is adapted to enter in the processor instruction memory in a shorter of the at least two execution paths a null instruction, so as to make the at least two execution paths equally long, and

the length of the at least two execution paths correspond at least to the length of the longest execution path.

6. The processing system according to claim 5 , wherein the linker is adapted to move at least one sequence in the instruction memory.

7. The processing system according to claim 5 , wherein the linker is adapted to determine the existence of any circle reference by any of the relocation objects between any of the sequences.

8. The processing system according to claim 5 , wherein the linker is adapted to link at least one sequence, obtained by dividing the program code, to a sequence, obtained by dividing another program code.

9. The method according to claim 1 , wherein the allocating each sequence to at least one row and at least one column of the processor instruction memory such that the instruction steps of the sequence are consecutively allocated in the processor instruction memory is performed by allocating each instruction step of the sequence to the same row but in different columns of the processor instruction memory.

10. The processing system according to claim 5 , wherein the allocating each sequence to at least one row and at least one column of the processor instruction memory is performed by allocating to the same row but in different columns.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2019
From: XELERATED NEWCO AB
To: MARVELL TECHNOLOGY SWEDEN AB
Reel/Frame 051247/0312 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 11, 2019
From: MARVELL TECHNOLOGY SWEDEN AB
To: MARVELL INTERNATIONAL LTD.
Reel/Frame 051247/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2011
From: XELERATED AB
To: XELERATED NEWCO AB
Reel/Frame 027387/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2007
From: XELERATED AB
To: XELERATED OPERATIONS AB
Reel/Frame 019215/0602 →
CHANGE OF NAME Recorded Apr 26, 2007
From: XELERATED OPERATIONS AB
To: XELERATED AB
Reel/Frame 019215/0651 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2005
From: AKTIEBOLAGET DARON AB
To: XELERATED AB
Reel/Frame 015741/0651 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2005
From: STROMQVIST, THOMAS; GERELL, PETER
To: AKTIEBOLAGET DARON
Reel/Frame 015624/0154 →
Priority Claims (1)
SE 0200383 · Feb 8, 2002 · national
Continuity (1)
Related Publication 20050166202A1 · Jul 28, 2005