IP Library Patent Application 11728198
Patent Application
App. No. 11/728,198

Method of optimising writing by a master block into a fifo type interfacing device between this master block and a slave block, and the corresponding computer program product

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 None
App. No.
11/728,198
Abstract

A method for optimising writing by a master block into an interfacing device between the master block and a slave block. The method includes a step for transformation of a code into assembler language, done before the code in machine language is obtained and including the following steps: transformation of all static unit writes comprising more than one word from the assembler language code into one-word static unit writes; search for each set of N successive static one-word unit writes; replace at least one set of N successive static one-word unit writes by one static unit N-word write of, in the assembler language code, where N is an integer greater than or equal to 2.

Claims (23)

1 . Method for optimising writing by a master block into an interfacing device between said master block and a slave block, said master block executing a code in machine language obtained from an assembler language code, including a sequence of unit writes used to write word groups that are instructions that will be read and executed by said slave block and each including an operation code word and k operand words where k≧0, said master block including a write bus with a size equal to N*T, where T is the size of a word and N is an integer greater than or equal to 2, wherein the method comprises

transforming said assembler language code, before said code in machine language is obtained, wherein transforming comprises:

transforming all static unit writes comprising more than one word from said assembler language code into static one-word unit writes;

searching for each set of N successive static one-word unit writes; and

replacing at least one set of N successive static unit one-word writes by one static N-word unit write, in the assembler language code.

2 . Method according to claim 1 , wherein said replacing step is such that each set of N successive static one-word unit writes is replaced by a static N-word unit write.

3 . Method according to claim 1 and further comprising the following step after the search step:

for each set of N successive static one-word unit writes, analyzing the portion of code in assembler language between the first and the last of said N successive static one-word unit writes, so as to detect at least one non-linearity in said portion of code in assembler language;

and wherein said replacing step is such that for each set of N successive static one-word unit writes:

if at least one non-linearity is detected, said code portion in assembler language is not modified; and

if no non-linearity is detected, said code portion in assembler language is modified by replacement of said set of successive one-word static unit writes by a static N-word unit write.

4 . Method according to claim 3 , wherein said at least one non-linearity in said portion code in assembler language belongs to the group including:

jump instructions reaching an arrival point located outside said code portion in assembler language;

jump arrival points made from outside said code portion in assembler language; and

dynamic writes.

5 . Method according to claim 1 , wherein N is equal to 2.

6 . Method according to claim 1 , wherein the master block is a microprocessor and the slave block is a coprocessor.

7 . A computer program product that can be downloaded from a communication network and/or recorded on a support that can be read by computer and/or executed by a processor, characterised in that it includes program code instructions that execute the following steps when said program is executed on a computer:

optimising writing by a master block into an interfacing device between said master block and a slave block, said master block executing a code in machine language obtained from an assembler language code, including a sequence of unit writes used to write word groups that are instructions that will be read and executed by said slave block and each including an operation code word and k operand words where k≧0, said master block including a write bus with a size equal to N*T, where T is the size of a word and N is an integer greater than or equal to 2, wherein optimising comprises:

transforming said assembler language code, before said code in machine language is obtained, wherein transforming comprises:

transforming all static unit writes comprising more than one word from said assembler language code into static one-word unit writes;

searching for each set of N successive static one-word unit writes; and

replacing at least one set of N successive static unit one-word writes by one static N-word unit write, in the assembler language code.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2011
From: ATMEL SWITZERLAND SARL
To: ATMEL CORPORATION
Reel/Frame 026320/0475 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2009
From: ATMEL NANTES SA
To: ATMEL SWITZERLAND SARL
Reel/Frame 023234/0513 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2007
From: GARNIER, SYLVAIN; DELALANDE, THIERRY; BIRSAN, LAURENTIU
To: ATMEL NANTES SA
Reel/Frame 019569/0821 →