Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberCN100472475 C
Publication typeGrant
Application numberCN 200480017317
PCT numberPCT/US2004/015843
Publication date25 Mar 2009
Filing date19 May 2004
Priority date20 Jun 2003
Also published asCN1809818A, EP1639472A1, EP1639472A4, US7089270, US20040260734, WO2005001696A1
Publication number200480017317.0, CN 100472475 C, CN 100472475C, CN 200480017317, CN-C-100472475, CN100472475 C, CN100472475C, CN200480017317, CN200480017317.0, PCT/2004/15843, PCT/US/2004/015843, PCT/US/2004/15843, PCT/US/4/015843, PCT/US/4/15843, PCT/US2004/015843, PCT/US2004/15843, PCT/US2004015843, PCT/US200415843, PCT/US4/015843, PCT/US4/15843, PCT/US4015843, PCT/US415843
Inventors任力伟, 顾金生
Applicant创道软件有限公司
Export CitationBiBTeX, EndNote, RefMan
External Links: SIPO, Espacenet
System for updating electronic document and method thereof
CN 100472475 C
Abstract  translated from Chinese
为例如字节级文件差分提供了系统和方法。 For example, byte-level file differential provides a system and method. 文件版本之间的软件/可执行的改变包括限定为源代码改变的主要改变/逻辑改变以及次要改变。 Software file versions / executable changes include changing the source code is limited to major changes / logical changes and minor change. 次要改变一般由主要改变引起并由软件编译器/链接器应用产生。 Minor changes in general caused by a major change by the software compiler / linker to generate applications. 次要改变包括地址改变、指针目标地址改变以及地址偏移改变。 Minor changes include address changes, pointer target address changes and address offset change. 所提供的预处理系统和方法在文件版本间使用近似规则来去除/减少次要改变,并把有关去除这些改变的信息编码在对应差别文件的信息中。 Pretreatment system and method is provided between the version of the file using an approximate rule to remove / reduce minor change, and these changes are the removal of the relevant information is encoded in the information corresponding to the difference file.
Claims(40)  translated from Chinese
1. 一种用于更新电子文件的系统,包括: 第一设备,用于产生包括电子文件的原始版本和新版本之间的经编码差别的差别文件,其中所述第一设备包括: 用于对应于由代码行删除、代码行添加以及代码行修改中的至少一种所引起的地址偏移,来识别所述原始版本和新版本之间的差别的组件; 用于通过使用所述原始版本的文本段的地址与所述新版本的对应文本段的地址之间的至少一种关系而修改所述原始版本的指令目标地址,来去除所述原始版本和新版本所共有的文本段中的所识别差别的组件; 用于产生包括具有所述经修改目标地址的指令的所述原始版本的修改版本的组件; 用于利用所述新版本和所述原始版本的所述修改版本来产生所述差别文件的组件;以及第二设备,接收所述差别文件并用所述差别文件在所述第二设备中产生所述新版本。 1. A method for updating electronic document, comprising: a first device for generating electronic files encoded differences include the original and new versions of the differences between files, wherein the first device comprising: Delete the line of code corresponding to the added line of code, and address at least one line of code modification caused by the shift to identify differences in the components of the original version and the new versions of; for by using the original version The relationship between the address and the address of at least one new version of the corresponding text segment between the text paragraph by modifying the original version of the instruction target address, to remove the original version and the new version of the common text segment the difference between the identified components; for generating includes the original version has the modified target address of the instruction of the modified version of the assembly; for the use of a modified version of the new version and the original version to produce the difference component of said document; and a second device, receiving the difference file and generate a new version of the file with the difference in the second device.
2.权利要求I的系统,其中用于去除所述原始版本和新版本所共有的文本段中的所识别差别的组件进一步包括: 用于识别所述原始版本和新版本间所共有的第一和第二文本段的组件,其中所述原始版本中的第一文本段包括第一可计算指令,而所述新版本中的第二文本段包括第二可计算指令; 用于识别所述原始和新版本间所共有的第三和第四文本段的组件,其中所述原始版本中的第三文本段包括对应所述第一可计算指令的第一目标地址,其中所述新版本中的第四文本段包括对应所述第二可计算指令的第二目标地址; 用于通过用第三和第四函数单元的开始地址之间的第一差别及用第一和第二函数单元的开始地址之间的第二差别而修改第一指令值,来从所述第二可计算指令产生第二指令值的组件;以及用于用所述第二指令值替换所述第一可计算指令的第一指令值的组件。 I The system of claim 1, wherein the means for removing the original version and the new version of the common text segments identified differences assembly further comprising: means for identifying between the original and new versions of the shared first and components of the second text segment, wherein the first section of the original version of the text includes a first calculate the instruction, and the new version includes a second section of the second text computable; instructions for identifying the original The third and fourth paragraphs of text between components and new versions have in common, in which a third of the original version of the text segment includes a corresponding first calculate the first target instruction address, wherein the new version The fourth segment includes text corresponding to said calculated second target address of the second instruction; for the first difference by starting with the start address of the third and fourth function unit and between the first and second functions by means of The second difference between the address of the first instruction to modify the value, to generate a second component command value calculated from the second instruction; and means for replacing the first value calculated by the second instruction instruction assembly of the first command value.
3.权利要求I的系统,进一步包括用于通过修改所述原始版本中的数据指针值来去除包括指向所述原始版本和新版本所共有的数据段的数据指针的指令中的所识别差别的组件,其中使用由当前数据指针指向的所述原始版本中的数据段的开始地址与所述新版本中的对应数据段的开始地址之间的差别来修改数据指针值。 3. The system of claim I, further comprising a data pointer value by modifying the original version to remove the identified difference data pointer points to include the original and new versions of the shared data segment of instruction assembly in which the difference between the start address start address using the original version of the current data pointer in the data segment with the new version of the corresponding data segment to modify the data between the pointer value.
4.权利要求3的系统,其中用于去除包括数据指针的指令中的所识别差别的组件进一步包括: 用于识别所述原始版本和新版本之间所共有的第一和第二代码段的组件,其中所述原始版本中的第一代码段包括第一数据指针而所述新版本中的第二代码段包括第二数据指针; 用于识别所述原始版本和新版本之间所共有的第一和第二数据单元的组件,其中所述原始版本中的第一数据单元包括对应所述第一数据指针的第一目标地址,其中所述新版本中的第二数据单元包括对应所述第二数据指针的第二目标地址; 用于通过用所述第一和第二数据单元的开始地址间的差别而修改第一指针值,来从所述第二数据指针产生第二数据指针值的组件;以及用于用所述第二数据指针值替换所述第一数据指针的第一数据指针值的组件。 4. The system of claim 3, wherein the assembly for removing the identified data comprises the difference between the instruction pointer in further comprising: means for identifying between the original and new versions of the first and second common code segment assembly, wherein the original version of the first code segment includes a first data pointer and the new version of the second code segment includes a second data pointer; for identifying shared between the original and new versions of a first component and a second data unit, wherein the original version of the first data unit includes data corresponding to the first pointer of the first destination address, wherein the new version of the second data unit includes a corresponding second target address of the second data pointer; for the start address by using the difference between the first and second data units between a first modified pointer value to generate a second data pointer value from the second data pointer and a component for the second data using the first pointer value replaces a first data pointer data pointer value; the component.
5.权利要求I的系统,其中所述第二设备包括从个人计算机、便携式计算设备、蜂窝电话、便携式通信设备以及个人数字助理当中选择的至少一种基于处理器的设备。 5. The system of claim I, wherein the apparatus comprises a second from a personal computer, a portable computing device, a cellular phone, a portable communication device and personal digital assistants chosen among at least one processor-based device.
6.权利要求I的系统,其中所述第一设备用至少一种耦合来传送差别文件到所述第二设备,其中所述至少一种耦合为无线耦合、有线耦合以及混合无线/有线耦合当中的至少一种。 6. The system of claim I, wherein the first device is coupled with at least one difference to transmit the file to the second device, wherein the at least one coupling wireless coupling, wired coupling, and hybrid wireless / wired coupling which at least one.
7. 一种用于产生差别文件的设备,包括: 用于接收电子文件的原始版本和新版本的装置; 用于识别所述原始版本和新版本所共有的代码单元的装置; 用于识别所述代码单元所共有的指令的装置,其中所述指令包括指示处理所述电子文件的对应版本的另一部分的指令值; 用于从所述原始版本的第一指令产生第一指令值的装置; 用于从所述新版本的第二指令产生第二指令值的装置,其中所述第二指令对应于所述第一指令; 用于以所述第二指令值替换所述第一指令的第一指令值的装置;用于产生包括具有所述第二指令值的第一指令的所述原始版本的修改版本的装置;以及用于利用所述新版本和所述原始版本的所述修改版本来产生所述差别文件的装置。 7. An apparatus for generating difference files, including: the original version and the new version of apparatus for receiving electronic documents; means for identifying the original and new versions of common code units; means for identifying means common to said instruction code units, wherein the instruction includes another portion of the instruction corresponding to the electronic version of the document indicating the processing; generating a first command value from a first instruction for the original version of the apparatus; means for generating a second command value from the new version of the second instruction, wherein the second instruction corresponding to said first instruction; value for the second instruction to the first instruction to replace the first It means a command value; means for generating a first instruction includes a command having a value of the second version of a modified version of the original; and means for utilizing the modified version of the new version and the original version of the difference generating means to said file.
8. 一种用于减小包括电子文件的原始版本和新版本之间的经编码差别的差别文件的大小的方法,包括: 对应于由代码行删除、代码行添加以及代码行修改中的至少一种所引起的地址偏移,来识别所述原始和新版本之间的差别; 通过使用所述原始版本的文本段与所述新版本的对应文本段的地址之间的至少一种关系而修改所述原始版本的指令的目标地址,来去除所述原始和新版本所共有的文本段中的所识别差别; 产生包括具有经修改目标地址的指令的所述原始版本的修改版本;以及利用所述新版本和所述原始版本的所述修改版本来产生所述差别文件。 8. A method for reducing the difference between the encoded original electronic documents and new versions of the difference between the size of the file, including: corresponds to the delete the lines of code, lines and lines of code to modify the code to add at least address caused a shift to recognize the difference between the original and the new version; at least one relationship address by using the original version of the text segment with the new version of the corresponding text segment between the modifying the original version of the instruction target address, to remove the identified differences between the original and the new version of the common text segments; generating include instructions with the revised target address of the modified version of the original version; and the use of the new version and the modified version of the original version to generate the difference file.
9.权利要求8的方法,其中去除进一步包括: 识别所述原始版本和新版本间所共有的第一和第二文本段,其中所述原始版本中的第一文本段包括第一可计算指令,而所述新版本中的第二文本段包括第二可计算指令; 识别所述原始版本和新版本间所共有的第三和第四文本段,其中所述原始版本中的第三文本段包括对应所述第一可计算指令的第一目标地址,其中所述新版本中的第四文本段包括对应所述第二可计算指令的第二目标地址; 通过用第三和第四函数单元的开始地址之间的第一差别及用第一和第二函数单元的开始地址之间的第二差别而修改第一指令值,来从所述第二可计算指令产生第二指令值;以及用所述第二指令值替换所述第一可计算指令的第一指令值。 The method of claim 8, wherein removing further comprises: identifying first and second paragraphs of text between the original and new versions have in common, in which the original version of the first text segment includes a first computable instruction while the new version includes a second section of the second text computable instruction; between identifying the original and new versions of the third and fourth common text segments, wherein a third of the original version of the text segment calculated corresponding to said first instruction comprises a first destination address, wherein the new version of the fourth segment includes text corresponding to said calculated second target address of the second instruction; by the third and fourth function unit The start address of the first difference and a second difference between the start address of the first and the second function unit between a first modified command value, to generate a second instruction from said second instruction calculated value; value is replaced with the second instruction of the first instruction of the first instruction value calculated.
10.权利要求8的方法,进一步包括通过修改所述原始版本中的数据指针值来去除包括指向所述原始版本和新版本所共有的数据段的数据指针的指令中的所识别差别,其中使用由当前数据指针指向的所述原始版本中的数据段的开始地址与所述新版本的对应数据段的开始地址之间的差别来修改数据指针值。 10. The method of claim 8, further comprising data pointer value by modifying the original version to remove the identified difference data pointer points to include the original and new versions of the data segment common instruction, wherein the difference between the current start address pointer to the start address of the data of the original version of the data segment corresponding to the new version of the data segment to modify the data between the pointer value.
11.权利要求10的方法,其中去除包括数据指针的指令中的所识别差别进一步包括: 识别所述原始版本和新版本之间所共有的第一和第二代码段,其中所述原始版本中的第一代码段包括第一数据指针,而所述新版本中的第二代码段包括第二数据指针; 识别所述原始版本和新版本之间所共有的第一和第二数据单元,其中所述原始版本中的第一数据单元包括对应所述第一数据指针的第一目标地址,其中所述新版本中的第二数据单元包括对应所述第二数据指针的第二目标地址; 从所述第二数据指针产生第二数据指针值;以及用所述第二数据指针值替换所述第一数据指针的第一数据指针值。 11. The method of claim 10, wherein the removal of the difference data including the identification of the instruction pointer further comprises: identifying between the original and new versions of the first and second common code segment, wherein the original version The first code segment includes a first data pointer, and the new version of the second code segment includes a second data pointer; between identifying the original and new versions have in common the first and second data unit, wherein The original version of the first data unit includes data corresponding to said first address pointer of the first object, wherein the new version of the second data corresponding to said second means comprises a second target data address pointer; from said second data pointer for generating a second data pointer value; and a second data pointer is replaced with the value of the first pointer to a first data pointer data values.
12.权利要求11的方法,其中产生所述第二数据指针值包括用所述第一和第二数据单元的开始地址间的差别来修改第一数据指针值。 12. The method of claim 11, wherein said generating a second data pointer value comprises the difference between the start address of the first unit and a second data between a first data pointer value to modify.
13.权利要求10的方法,进一步包括产生所述原始版本的修改版本,所述修改版本包括具有经修改数据指针的指令。 13. The method of claim 10, further comprising generating a modified version of the original version, the modified version includes instructions have modified data pointer.
14.权利要求10的方法,进一步包括合并共有数据单元以形成共有数据块。 14. The method of claim 10, further comprising a data unit to form a combined total of a total of a data block.
15.权利要求14的方法,其中合并共有数据单元包括: 当所述原始版本的第一数据单元与所述新版本的第一数据单元大小相等、所述原始版本的第一数据单元的结束地址等于所述原始版本的第二数据单元的开始地址以及所述新版本的第一数据单元的结束地址等于所述新版本的第二数据单元的开始地址时,组合所述原始版本的第一和第二数据单元并组合所述新版本的对应第一和第二数据单元以形成共有数据块;以及对另外的可合并数据单元重复该组合操作。 15. The method of claim 14, wherein the combined total of the data unit comprises: when the original version of the first data unit with the new version of the first data unit size equal to the original version of the first data unit end address At the end of the address of the start address is equal to the original version of the second data unit and the new version of the first data unit is equal to the start address of the new version of the second data unit, a combination of the original version of the first and and combining said second data unit corresponding to the new version of the first and second data units to form a total data blocks; and repeating the combining operation on the other data units may be combined.
16.权利要求15的方法,进一步包括合并共有文本段以形成共有函数块。 16. The method of claim 15, further comprising the combined total of the text segment to form a total of function blocks.
17.权利要求16的方法,其中合并共有文本段包括: 当所述原始版本的第一文本段与所述新版本的第一文本段大小相等、所述原始版本的第一文本段的结束地址等于所述原始版本的第二文本段的开始地址以及所述新版本的第一文本段的结束地址等于所述新版本的第二文本段的开始地址时,组合所述原始版本的第一和第二文本段并组合所述新版本的对应第一和第二文本段以形成共有函数块;以及对另外的可合并文本段重复该组合操作。 17. The method of claim 16, wherein the combined total of the text segment comprising: when the original version of the first text segment with the new version of the first text segment size equal to the end of the address of the original version of the first text segment When the start address is equal to the original version of the second paragraph of the text and the end address of the new version of the first text segment is equal to the starting address of the new version of the second paragraph of text, a combination of the original version of the first and The second section of the text and the text corresponding to the combination of the first and second paragraphs of the new version to form a total of function blocks; and repeating the combined operation can be combined for additional text segment.
18. 一种用于执行文件差分的方法,包括: 接收电子文件的原始版本和新版本; 识别所述原始版本和新版本所共有的代码单元; 识别所述代码单元所共有的指令,其中所述指令包括有关所述电子文件的对应版本的另一部分的指令值; 从所述原始版本的第一指令解码第一指令值;从所述新版本的第二指令产生第二指令值,其中所述第二指令对应于所述第一指令; 用所述第二指令值替换所述第一指令的第一指令值; 产生包括具有所述第二指令值的第一指令的所述原始版本的修改版本,ˇ以及在所述新版本和所述原始版本的所述修改版本之间执行文件差分并产生差别文件。 18. A method for performing file differential, comprising: receiving an electronic file of the original version and the new version; identifying the original and new versions of the shared code means; identifying a common instruction code units, wherein said instruction includes information about the other part of the corresponding version of the electronic document command value; decoding the first instruction value from the first instruction of the original version; generating a second command value from the new version of the second instruction, wherein said second instruction corresponding to said first instruction; value is replaced with the second instruction of said first instruction a first command value; generating a first instruction includes a command value having the second version of the original modified versions, * as well as the new version is performed between the modified version and the original version of the file and generate the difference file difference.
19.权利要求18的方法,进一步包括从相关的映射文件中提取共有代码单元,其中所述共有代码单元包括共有函数单元和共有数据单元。 19. The method of claim 18, further comprising extracting a total of code units from the relevant map file, where the total of the code unit includes a total of function units and common data units.
20.权利要求18的方法,进一步包括合并所述代码单元的共有函数单元以形成共有函数块。 20. The method of claim 18, further comprising code means the combined total of the function unit to form a total of function blocks.
21.权利要求20的方法,其中合并所述代码单元的共有函数单元包括: 当所述原始版本的第一函数单元与所述新版本的第一函数单元大小相等、所述原始版本的第一函数单元的结束地址等于所述原始版本的第二函数单元的开始地址以及所述新版本的第一函数单元的结束地址等于所述新版本的第二函数单元的开始地址时,组合所述原始版本的第一和第二函数单元并组合所述新版本的对应第一和第二函数单元以形成共有函数块;以及对另外的可合并函数单元重复该组合操作。 21. The method of claim 20, wherein the combined total of the function code unit means comprising: when the original version of the first function unit and the new version of the first function unit of equal size, the original version of the first At the end of the address start address end address of the function units is equal to the original version of the second function unit and the new version of the first function unit is equal to the new version of the start address of the second function unit, a combination of the original The first and second versions of the combination of said function unit and the new version of the function corresponding to the first and second units to form a total of function blocks; and repeating the combining operation may be combined to additional function unit.
22.权利要求20的方法,进一步包括编码所述共有函数块。 22. The method of claim 20, further comprising encoding said common function blocks.
23.权利要求18的方法,进一步包括合并所述代码单元的共有数据单元以形成共有数据块。 23. The method of claim 18, further comprising code means for combining said data unit to form a total of a total of a data block.
24.权利要求23的方法,其中合并所述代码单元的共有数据单元包括: 当所述原始版本的第一数据单元与所述新版本的第一数据单元大小相等、所述原始版本的第一数据单元的结束地址等于所述原始版本的第二数据单元的开始地址以及所述新版本的第一数据单元的结束地址等于所述新版本的第二数据单元的开始地址时,组合所述原始版本的第一和第二数据单元并组合所述新版本的对应第一和第二数据单元以形成共有数据块;以及对另外的可合并数据单元重复该组合操作。 24. The method of claim 23, wherein the combined total of the data code unit means comprising: when the original version of the first data unit with the new version of the first data unit size equal to the original version of the first When the start address of the data unit is equal to the end address of the original version of the second data unit and a new version of a first data unit of said end address equal to the address of the start of a new version of the second data unit, a combination of the original The first and second versions of the combination of the data unit and a new version of the corresponding first and second data units to form a total data blocks; and repeating the combining operation on the other data units may be combined.
25.权利要求23的方法,进一步包括编码所述共有数据块。 25. The method of claim 23, further comprising the total of encoded data blocks.
26.权利要求18的方法,其中所述原始版本和新版本所共有的代码单元是共有函数单元,其中所述第一指令包括第一可计算指令而所述第二指令包括第二可计算指令,其中产生所述第二指令值包括用包括目标地址的所述原始和新版本的共有函数单元的开始地址之间的第一差别以及用包括所述第一和第二可计算指令的所述原始版本和新版本的共有函数单元的开始地址之间的第二差别来修改所述第一指令值。 26. The method of claim 18, wherein the original and new versions of the code unit is a common total function unit, wherein the first instruction includes a first instruction and said second instruction is calculated includes a second instruction computable wherein said second command generating a first difference value includes the start address comprises the destination address of the original and the new version of the total function unit and between the first and second use comprises the computable instructions The second difference between the start address of the original and new versions of Total function unit between the first instruction to modify the value.
27.权利要求18的方法,其中所述代码单元包括函数单元。 27. The method of claim 18, wherein said code means includes a function unit.
28.权利要求27的方法,其中产生所述第一指令值包括产生第一可计算指令的当前指令地址与第一可计算指令的目标地址之间的差别。 28. The method of claim 27, wherein said first command value generating comprises generating a first difference between the calculated current instruction of the first instruction address calculated target instruction addresses.
29.权利要求27的方法,其中产生所述第二指令值包括: 产生第一可计算指令的当前指令地址与第一可计算指令的目标地址之间的差别; 产生新版本的第一共有函数单元的开始地址与原始版本的对应第一共有函数单元的开始地址之间的差别;以及产生所述新版本的第二共有函数单元的开始地址与所述原始版本的对应第二共有函数单元的开始地址之间的差别。 29. The method of claim 27, wherein said second command value generating comprises: generating a first difference between the calculated current instruction of the first instruction address calculated between the target address of the instruction; generating a new version of the first total the difference between the start address of the start address of the function with the original version of the unit corresponding to the first function unit between total; the start address and a new version of the second generation of the total function unit with the original version of the function corresponds to the second total the difference between the start address of the cell.
30.权利要求18的方法,其中所述代码单元包括数据单元而所述指令包括数据指针。 30. The method of claim 18, wherein said code means comprises data units and said instruction comprises data pointers.
31.权利要求18的方法,其中所述原始版本和新版本所共有的代码单元是共有数据单元,其中所述第一指令包括第一数据指针而所述第二指令包括第二数据指针,其中所述第一指令值包括所述第一数据指针值而所述第二指令值包括所述第二数据指针值,其中产生所述第二指令值包括通过用第一和第二数据单元的开始地址之间的差别修改所述第一数据指计值来产生第二数据指针值。 31. The method of claim 18, wherein the original and new versions of the code unit is a common total data unit, wherein the first instruction includes a first data pointer and said second instruction includes a second data pointer, wherein The first command value comprises the first data and the second instruction pointer value of the second data value comprises a pointer value, wherein said second command value generating including the start by the first and second data units the difference between the address of the first data modification means to generate a second count value data pointer value.
32.权利要求18的方法,进一步包括: 将所述差别文件传送到便携式处理系统;以及用所述差别文件在所述便携式处理系统中产生所述新版本。 32. The method of claim 18, further comprising: transferring the file to a portable processing system differences; and generating a new version of the file with the difference in the portable processing system.
33.权利要求32的方法,进一步包括: 合并所述代码单元的共有函数单元以形成共有函数块; 合并所述代码单元的共有数据单元以形成共有数据块;以及编码所述共有函数块和所述共有数据块以便用于在便携式处理系统中产生所述新版本。 33. The method of claim 32, further comprising: merging the code unit total function unit to form a total of function blocks; merge the code units of total data unit to form a total data blocks; and coding the function block and the total A total of said data blocks so as to generate the new version in the portable processing system.
34. 一种用于判定电子文件之间的差别的方法,包括: 接收电子文件的原始版本和新版本; 识别所述原始和新版本之间所共有的第一和第二函数单元,其中所述原始版本中的第一函数单元包括第一可计算指令而所述新版本中的第二函数单元包括第二可计算指令; 识别所述原始和新版本之间所共有的第三和第四函数单元,其中所述原始版本中的第三函数单元包括对应所述第一可计算指令的第一目标地址,其中所述新版本中的第四函数单元包括对应所述第二可计算指令的第二目标地址; 从所述第二可计算指令产生第二指令值; 用该第二指令值替换所述第一可计算指令的第一指令值;以及产生包括具有所述第二指令值的第一指令的原始版本的修改版本;以及利用所述新版本和所述原始版本的所述修改版本来产生差别文件,所述差别文件包括所述差别。 34. A method for determining the difference between the electronic document, comprising: receiving an electronic file of the original and new versions; between the first and the second function unit identifying the original and new versions of common, wherein It said the original version of the first function unit includes a first instruction to calculate the new version of the second function unit includes a second calculate instruction; identifying between the original and the new version of the third and fourth common function unit, wherein the original version of the third function unit includes a corresponding first calculate the first target instruction address, wherein the new version of the fourth function unit comprises a command corresponding to said second calculated a second destination address; generating a second instruction from said second instruction value calculated; value replaces the first instruction of the first instruction value calculated by the second instruction; and generating said second instruction comprises a value The original version of the first instruction of a modified version; and the use of the new version and the original version of the modified version to generate the difference file, the difference file includes the difference.
35.权利要求34的方法,其中产生所述第二指令值包括用所述第三和第四函数单元的开始地址之间的第一差别以及用所述第一和第二函数单元的开始地址之间的第二差别来修改所述第一指令值。 35. The method of claim 34, wherein said second command value comprising generating a start address with the start address of the first difference between said third and fourth function unit and between said first and second functions by means of modifying the second difference between the first command value.
36.权利要求34的方法,进一步包括: 识别所述原始版本和新版本之间所共有的第一和第二代码段,其中所述原始版本中的第一代码段包括第一数据指针,而所述新版本中的第二代码段包括第二数据指针; 识别所述原始版本和新版本之间所共有的第一和第二数据单元,其中所述原始版本中的第一数据单元包括对应所述第一数据指针的第一目标地址,其中所述新版本中的第二数据单元包括对应所述第二数据指针的第二目标地址; 从所述第二数据指针产生第二数据指针值; 用该第二数据指针值替换所述第一数据指针的第一数据指针值;以及产生包括具有所述第二数据指针值的第一数据指针的原始版本的修改版本。 36. The method of claim 34, further comprising: identifying between the original and new versions have in common the first and second code segment, where the original version of the first code segment includes a first data pointer, The new version of the second code segment includes a second data pointer; between identifying the original and new versions have in common the first and second data unit, wherein the original version of the first data unit includes a corresponding The first destination address of the first data pointer, wherein the new version of the second data unit includes a second data corresponding to said second target address pointer; generating a second data pointer value from the second data pointer ; and generating a first data includes a pointer having a pointer value of the second data of a modified version of the original version; second data using the first pointer value replaces the first data pointer data pointer value. ,
37.权利要求36的方法,其中产生所述第二数据指针值包括产生由当前数据指针所指向的原始版本中的数据段的开始地址与所述新版本中的对应数据段的开始地址之间的差别。 37. The method of claim 36, wherein generating the second data between the start address pointer value comprises a start address by the current data pointer is the original version of the data segment with the new version of the corresponding data segment generated difference.
38.权利要求34的方法,进一步包括合并共有函数单元以形成共有函数块。 38. The method of claim 34, further comprising the combined total of the function unit to form a total of function blocks.
39.权利要求34的方法,进一步包括合并共有数据单元以形成共有数据块。 39. The method of claim 34, further comprising a data unit to form a combined total of a total of a data block.
40.权利要求34的方法,进一步包括: 将所述差别文件传送到便携式处理系统;以及用所述差别文件在所述便携式处理系统中产生所述新版本。 40. The method of claim 34, further comprising: transferring the file to a portable processing system differences; and generating a new version of the file with the difference in the portable processing system.
Description  translated from Chinese

用于更新电子文件的系统及其中的方法相关申请该申请涉及2002年5月13日提出的美国专利申请号10/146,545。 For updating the electronic document system and method RELATED APPLICATIONS This application is related to U.S. Patent Application No. 13 May 2002 submitted 10 / 146,545.

技术领域 Technical Field

所公开的实施例涉及用差别文件更新电子文件。 The disclosed embodiments relate to an electronic file with the update difference file.

背景技术 Background

运行在处理器、微处理器和/或处理单元上以提供某种功能的软件随时间经常改变。 Running on a processor, microprocessor, and / or processing units to provide some functions of the software often change over time. 此改变可以是由例如纠正软件文件中的bug或错误、适应技术发展或添加新特征的需要而引起的。 This change can be made, for example to correct software file bug or error, adapt to technological developments or to add new features caused. 特别的,掌控在移动处理设备例如移动无线设备上的嵌入式软件组件常常包括很多需要纠正的软件bug。 In particular, process control in mobile devices such as mobile embedded software components of the wireless devices often include a lot needs to be corrected software bug. 软件包括以人类可读的美国信息交换标准码(ASCII)普通文本文件或二进制代码形式的一个或多个文件。 The software includes the United States to exchange information on human-readable plain text file or a binary code in the form of standard codes (ASCII) or multiple files. 软件文件可以分成通常称为模块或组件的较小单元。 Software files can be divided into smaller units commonly referred to as modules or components.

基于便携式处理器的设备如移动处理设备典型地包括实时操作系统(RTOS),在所述实时操作系统中设备的所有软件组件链接为一个单独的大文件。 Processor-based portable devices such as mobile processing devices typically include a real-time operating system (RTOS), all software components linking device in the real-time operating system as a single large file. 此外,在这些移动无线设备中,通常没有提供文件系统支持。 Moreover, in these mobile wireless devices, typically do not provide support for the file system. 而且,该单独的大文件需要使用慢速通信链路如无线电、红外线或串行链接来预加载或嵌入到所述设备中。 Moreover, the single large files require a slow communications link, such as radio, infrared or serial links to or embedded in the preload device.

通过慢速通信链接来更新移动处理设备的大文件的障碍包括有关将更新的文件递送到设备的时间、带宽以及成本。 Updating mobile processing device over a slow communications link obstacles documents to include information about the updated files delivered to time, bandwidth and equipment costs. 对递送大文件到移动处理设备的问题的一个现有解决方案包括使用压缩。 To deliver large files to issue mobile processing device of an existing solution involves the use of compression. 尽管通常使用若干现有的压缩算法,但是,经常是即使压缩过的文件对于通过慢速、昂贵、窄带的通信链路下载到设备也太大。 Although generally use several existing compression algorithms, however, often even a compressed file for a slow, expensive, narrow-band communications link to the device is too big.

更新文件的另一典型解决方案使用差别程序来产生修正的文件如何区别于原始文件的说明。 Another typical solution update files using the program to generate the difference file amended explained how different the original file. 有生成这种差别数据的可得到的差别程序。 This difference has generated difference program data is available. 但是,即使压缩过,对于通过有关的通信协议传送,使用这些差别程序生成的差别文件有时也太大。 However, even compressed, through the relevant communication protocols for transmission, use these differences are sometimes generated by the difference file is too big.

附图说明 Brief Description

图I是示出一个实施例中文件差分和更新的框图。 Figure I shows a block diagram of the differential case files and updates in one embodiment.

图2是在图I的实施例下产生增量(delta)文件的流程图。 Figure 2 is a flow chart to produce incremental (delta) file in the embodiment of FIG. I lower.

图3是可执行文件的原始和新版本的框图。 Figure 3 is a block diagram of the original and the new version of the executable file.

图4是图I和图2的实施例中预处理电子文件的不同版本的流程图。 Figure 4 is a flow chart showing the pretreatment of different versions of electronic documents embodiment of Figure I and Figure 2.

图5是在图4的实施例中的预处理电子文件的不同版本的代码(文本)段的流程图。 Figure 5 is a flowchart of the embodiment of FIG. 4 different versions of the code (text) preprocessing electronic document segment.

图6是在图5的实施例中的为电子文件的原始版本的代码(文本)段产生新目标地址值的流程图。 Figure 6 is an electronic file of the original version of the code (text) section in the embodiment of FIG. 5 in the flowchart of generating a new target address value.

图7是在一个实施例中的文件的原始版本和新版本的框图,示出关于为电子文件的原始版本的代码(文本)段产生新目标地址值而描述的不同地址(和相应记号)。 Figure 7 is a block diagram of the original and new versions of case files in one embodiment, showing a different address (and corresponding mark) on the target address value to generate new versions of the original electronic document code (text) section and described.

图8是在图4的实施例中的预处理电子文件的原始和新版本的数据段的流程图。 8 is a flowchart of the original and new versions of the data segment in the embodiment of FIG. 4 preprocessing electronic documents.

图9是在图8的实施例中的为电子文件的原始版本的数据段产生新的数据指计值的流程图。 9 is the embodiment of FIG. 8 in the flowchart of generating new data refers denominated version of the original electronic document data segment.

图10是在一个实施例中的文件的原始版本和新版本的框图,示出为电子文件的原始版本产生新数据指针值所使用的不同地址(和相应记号)。 FIG. 10 is in the original version and the new version of a block diagram of one embodiment of the document implementation, showing the original version of electronic documents have different address for the new data pointer values used (and corresponding mark).

图11是在图4的实施例中的共有函数单元的提示合并的流程图。 11 is a flowchart prompt consolidation in the embodiment of FIG. 4, a total of function units.

图12是在图4的实施例中的共有数据单元的提示合并的流程图。 12 is a flowchart prompt consolidation in the embodiment of FIG. 4 of the total data unit.

在所述图中,相同的参考号识别相同或基本相似的元素或行为。 In the drawings, the same reference number to identify the same or substantially similar elements or acts. 为了易于识别对任何特殊元件或行为的讨论,参考号中最重要的位指的是该元素第一次被介绍的图号(如,元件124关于图I被第一次介绍和讨论)。 For easy identification the discussion of any particular element or act, the reference number of the most significant bit refers to the figure number of the element was first introduced (eg, element 124 with respect to FIG. I was first introduced and discussed).

具体实施方式 DETAILED DESCRIPTION

提供了系统和方法,用于预处理文件的原始和新版本作为原始和新版本之间的差别文件产生的一部分。 It provides a system and method for pre-processing document original and new versions of a file as part of the difference between the original and the new version produced. 该预处理支持进一步减小差别文件的大小。 The pretreated support further reduce the difference file size. 软件/文件版本间的可执行改变包括限定为源代码改变的主要改变/逻辑改变以及次要改变。 Executable source code changes include defining change of major changes / logical changes and minor changes in software / document versions. 次要改变一般是由主要改变引起的并由软件编译器/链接器应用来产生。 Minor change is generally caused by a major change by the software compiler / linker to generate applications. 次要改变包括由主要改变引起的并由软件编译器/链接器应用所产生的地址改变、指针目标地址改变以及地址偏移改变。 Minor changes include the major changes caused by the software compiler / linker generated application address changes, pointer target address changes and address offset change. 所提供的预处理系统和方法在文件版本间使用近似规则来去除/减少次要改变,并把有关去除这些改变的信息编码到对应的差别文件的信息中。 Pretreatment system and method is provided between the version of the file using an approximate rule to remove / reduce minor change, and these changes are the removal of the relevant information is encoded into information corresponding to the difference between the files.

在此详细描述用于在电子文件的两个版本之间产生差别文件的系统和方法,其在这里称为文件差分。 In this detailed description of the system and method for generating difference files between the two versions of electronic documents, which referred to herein as a file difference. 图I是示出在一个实施例中的文件差分和更新的框图。 Figure I shows the difference in the case file and block diagram of one embodiment of the update. 所述文件差分和更新包括差分组件和更新组件。 The file update includes differential and differential components and update components. 差分组件,此处称为文件差别生成器,根据电子文件的原始版本和新版本在第一基于处理器的或计算机系统中产生差别文件。 Differential assembly, referred to herein as the file difference generator generate the difference file or first processor-based computer systems based on the original version and the new version of the electronic document. 更新组件,此处称为更新生成器,使用差别文件和原始文件的掌控拷贝在第二基于处理器的或计算机系统上产生新文件的拷贝。 Update component, referred to herein as updated generator, control the use of the difference between the original file and copy the file to copy the second processor-based computer systems or create new files.

在以下说明中,介绍了若干具体细节以提供对本发明的实施例的完全理解和实现说明。 In the following description, it describes a number of specific details in order to provide an embodiment of the present invention is fully understood and explained. 但是,本领域的技术人员将认识到本发明可以不需具体细节的一个或多个而实现,或利用其他组件、系统等等来实现。 However, those skilled in the art will recognize that the invention may be without one or more of the specific details achieved, or using other components, systems and the like to achieve. 在其他例子中,不显示或不详细说明公知的结构或操作,以避免模糊本发明的方面。 In other instances, no display or detailed descriptions of well-known structures or operations, to avoid obscuring aspects of the invention.

参考图1,第一计算机系统102和第二计算机系统104通过通信路径106通信。 Referring to Figure 1, a first computer system 102 and computer system 104 to communicate via a second communication path 106. 如在本领域公知的,计算机102和104包括一起工作的计算组件和设备的任何集合。 As known in the art, the computer 102 and 104 include any collection of computing components and devices work together. 计算机系统102和104也可以是较大的计算机系统或网络中的组件或子系统。 Computer system 102 and 104 may be larger computer system or network components or subsystems.

通信路径106包括任何介质,文件通过所述介质在计算机102和104之间交换和传送。 Communication path 106 includes any medium, through the media files between your computer and transfer 102 and 104 exchange. 因此,路径106包括无线连接、有线连接和混合无线/有线连接。 Therefore, the path 106 includes wireless connections, wired connections and hybrid wireless / wired connections. 通信路径106还包括到包括本地局域网(LAN)、城域网(MAN)、广域网(WAN)、专用网、局间或后端网络以及Internet的网络的耦合或连接。 The communication path 106 also includes a local area network to include local (LAN), metropolitan area network (MAN), wide area network (WAN), private networks, local networks, and sometimes coupling the rear end of a network or Internet connection. 此外,通信路径106包括可移动的固定介质如软盘、硬盘驱动器和CD-ROM盘,以及电话线、总线和电子邮件消息。 Furthermore, the communication path 106 includes removable fixed media such as floppy disks, hard disk drives and CD-ROM discs, as well as telephone lines, buses and e-mail messages.

第一通信系统102接收电子文件的原始的、或旧的版本110和新版本112。 First communication system 102 receives the original electronic document, or an old version and the new version 110 112. 新文件112通常是原始文件110的更新或修正的版本,但并不限制于此。 The new or updated file 112 is typically modified version of the original file 110, but is not limited thereto. 电子文件110和112包括:软件文件,包括动态链接库文件、共享对象文件、嵌入式软件组件(EBSC)、固件文件、可执行文件;数据文件,包括十六进制数据文件、系统配置文件;以及包括个人使用数据的文件,但并不限制于此。 Electronic documents 110 and 112 include: software files, including dynamic link library files, shared object files, embedded software components (EBSC), firmware files, executable files; data files including hex data files, system configuration files; and including personal use data files, but is not limited thereto. 因为任何类型的文件都可以看作字节流,以下依据上下文而可将文件描述为字节流。 Because any type of file can be viewed as a stream of bytes, or less depending on the context and the file can be described as a stream of bytes.

如下所述,文件差别生成器114的组件接收新文件112,把它与原始文件110比较,并计算被比较文件间的差别。 Component, as described below, file difference generator 114 receives a new file 112, 110 compares it with the original file, and calculates the difference between the Compare files by. 这些差别包括被比较文件间的字节级差别,但并不限制于此。 These differences include byte-level difference between the compared files, but is not limited thereto. 文件差别生成器114在比较期间产生差别文件116,这里称作增量文件116。 File difference generator 114 generates differences between files in the comparative period 116 116 referred to herein as delta files.

一个实施例的文件差别生成器114耦合于主机系统102的组件之间,其中所述组件包括至少一个处理器、至少一个控制器、至少一个存储器设备以及至少一个总线,但并不限制于此。 Generating a difference file to an embodiment of assembly 114 is coupled between the host system 102, wherein the assembly includes at least one processor, at least one controller, the at least one memory device and at least one bus, but is not limited thereto. 一个实施例的文件差别生成器114的组件包括至少一个预处理子系统124和至少一个差分子系统134。 A component file difference generator 114 of the embodiment comprises at least one pretreatment subsystem 124 and at least one differential subsystem 134. 预处理子系统124也称为预处理器124,包括在预处理算法、程序或例程的至少一个的控制下运行的至少一个处理器。 Pretreatment subsystem 124 is also called pre-processor 124, including at least one processor under the control of preprocessing algorithms, programs or routines running at least one. 同样,差分子系统134包括在差分算法、程序或例程的至少一个的控制下运行的至少一个处理器。 Similarly, the differential subsystem 134 includes at least one processor under the control of the differential algorithm, program, or at least one routine operation.

增量文件116的内容提供了对新文件112和原始文件110之间差别的有效表示。 The contents of the delta file 116 provides an effective representation of the difference between 112 and 110 new files in the original file. 增量文件116包括表现有关文件的新的或当前版本与该文件的以前版本之间差别的元数据以及代替和/或插入操作的真实数据,如2002年5 月13 日提出的标题为“Byte-Level File Differencing and UpdatingAlgorithms”、申请专利号10/146,545的美国专利申请所述。 Delta file 116 new or current version includes performance-related files and metadata difference between the previous version of the file and the substitution and / or insertion of real data, such as the title May 13, 2002 submitted to "Byte -Level File Differencing and UpdatingAlgorithms ", patent No. US Patent 10 / 146,545 application said. 文件差别生成器114用最少量的字节和预定义的格式或协议在增量文件116中提供原始110和新112文件之间的任何差别,从而提供在空间上优化的增量文件。 File difference generator 114 with a minimum amount of bytes and the predefined formats or protocols provide any original difference between 110 and the new 112 files in delta file 116, thus providing the space-optimized delta file.

增量文件116通过通信路径106传送或传输到另一处理系统104。 Delta file 116 transmits a communication path 106 or transmitted to another processing system 104. 传送之前,增量文件116可用本领域公知的压缩技术来压缩,但并不限制于此。 Prior to transfer, the delta file 116 known in the art can be used compression techniques to compress, but is not limited thereto. 掌控在接收系统104上的更新生成器118用增量文件116与掌控的原始文件IlOH —起产生或创建新文件的拷贝112C。 Control on the receiving system 104 generates 118 an incremental update file 116 and control of the original file IlOH - from 112C to produce or create a new copy of the file. 新文件的拷贝112C随后用于更新掌控在目的为修正或更新的客户设备上的原始文件110H。 112C copy of the new file is then used to update the control of the original file in the purpose of correcting or updating client device 110H. 当该更新过程完成时,现在存储在第二计算机系统上的新文件与第一计算机系统102中接收的新文件112 —致。 When the update process is complete, the new files are now stored in a new file on the second computer system and the first computer system 102 received 112-- cause.

原始文件和新文件之间的差别通常比新文件小,如果是差别而不是整个新文件被传输和存储,则显著节省了存储和传输。 The difference between the original and new files are usually smaller than the new file, and if the difference rather than the entire new file is transferred and stored, the significant savings in storage and transport. 这对掌控着通过可通常是慢速和昂贵的连接如无线或蜂窝状连接而更新的程序的移动电子设备(客户设备)特别重要。 This is particularly important in control via usually slow and expensive connections such as wireless or cellular connection and the updated program of mobile electronic devices (client devices). 增量文件减小的大小提供了很多改进,其中之一包括将增量文件传输到客户设备所需的带宽减小;较小的文件意味着传送需要较小的带宽。 Reduce the size of the incremental file it offers many improvements, one of which includes the incremental file transfer client device to the desired bandwidth reduction; mean transferring small files require less bandwidth. 而且,较小的文件需要较少的传输时间,并且因此降低了文件传送被中断的可能性且同时减少了接收文件中的传输错误。 Moreover, smaller file requires less transmission time, and thus reduces the likelihood that a file transfer is interrupted and simultaneously reducing the transmission error in the received file. 另夕卜,通过非安全连接传输增量文件比传输新软件映像更安全。 Another evening Bu, through a non-secure connection to transfer incremental file transfer more secure than the new software image. 所有这些改进提髙了用户满意度。 All of these improvements to the user satisfaction Gao.

图2是在图I的实施例中的产生增量文件的流程图。 Figure 2 is a flowchart delta file generated in the embodiment of FIG. I in. 在块204,当新文件和原始文件在第一处理或计算机系统中被接收时,操作开始。 At block 204, when a new file and the original file is received in the first processing or computer system, operation starts. 对应于新和原始文件的映射文件也被接收。 Corresponding to the new map file and the original file has been received. 映射文件是包括软件映像的每个符号的开始地址和大小的高级文本文件,其中符号实例包括函数和全局变量。 Map file is a text file for each symbol includes advanced software image start address and size of the symbol instances which include functions and global variables. 映射文件由编译器/链接器应用来输出,并且也称为日志文件、符号文件和/或列表文件。 Map file by the compiler / linker to output applications, and is also known as log files, symbol files and / or a list of files.

在块206,在新文件和原始文件的内容之间执行预处理操作以便识别两文件内容的共有段和简单模式。 At block 206, a preprocessing operation between the contents of the new file and the original file in order to identify a total of two sections and a simple pattern file content. 通常,预处理使用所识别共有段和模式来减少/去除新和原始文件间的次要改变。 Typically, pretreatment using the identified segments and patterns to reduce total / removing minor change between the new and the original file. 一个实施例的预处理包括减少和/或去除由与逻辑改变相关联的地址偏移所引起的原始和新文件之间的改变,如下所述,但并不限制于此。 Pretreatment one embodiment includes the reduction and / or removal by a change in the logic of the original and the new change associated with the file offset arising between, as described below, but is not limited thereto. 于是,该预处理减少了文件共有段之间的差别,包括次要改变,因此提高了差别计算的效率。 Thus, the pre-treatment reduces the difference between the segments, Total, including minor change, thereby increasing the efficiency of the difference calculation.

预处理之后,在块208,计算新文件和经修改原始文件之间的字节级差别。 After pretreatment, in block 208, compute new files and modified the original file byte-level difference between. 在块210,编码和合并经计算的差别并通过遵循预定义的编码格式而产生增量文件。 At block 210, the difference between the calculated encoding and consolidation, and by following a predefined encoding format to generate incremental file. 如果可能,在块212,然后如本领域公知的优化增量文件以进一步减小文件大小,并且在块214,提供优化的增量文件作为输出。 If possible, at block 212, then as it is known in the art to optimize the delta file further reduce the file size, and at block 214, to provide an optimized delta file as output.

如上所述,在新文件和原始文件的内容之间执行预处理操作以便识别两文件内容中的共有段和简单模式。 As described above, the preprocessing operation between contents of the new file and the original file in order to identify the contents of a total of two file segments and simple patterns. 共有段和简单模式的知识用于减少/去除次要改变,因此造成整体性能增强。 There are segments and simple mode of knowledge for reducing / removing minor change, resulting in overall performance enhancements.

如上所述,电子文件或软件更新在系统和客户设备之间的传输会花大量时间,尤其是通过低带宽通道传输时。 As mentioned above, electronic files or software updates between the system and the client device transfers will spend a lot of time, especially over low-bandwidth transmission channel. 一个实例是蜂窝电话软件升级。 An example of a cellular phone software upgrades. 典型的实现是通过蜂窝无线耦合发送新和原始软件版本之间的字节级文件差别或改变。 A typical implementation is to send byte level file differences between the new and original software version or altered by a cellular wireless coupling. 出现相当大的传递时间是因为可执行文件的新和原始版本之间的差别比其对应的源文件之间的差别更复杂。 Where significant new delivery time is because the difference between the original version of the executable file is more complex than the difference between the corresponding source files.

出现这些新和原始文件版本之间的复杂差别一部分是因为源文件中小的改变经常引入贯穿可执行文件的较大改变。 Complex differences between the new and original versions of these files appear in part because small changes to the source files are often introduced through major changes of the executable file. 例如,可执行文件中引入的改变包括两种主要类型的改变.ˇ主要改变和次要改变。 For example, the executable file changes include the introduction of two main types of changes. * Major changes and minor changes. 主要改变,也称为逻辑改变,是由从原始文件中删除源代码行、添加源代码行到新文件以及修改源代码行所引起的源代码改变。 Major changes, also called logical change, by removing the source lines of code from the original file, adding the source lines of code to source code changes the new file and modify the source code line caused. 次要改变限定为包括但不局限于由主要改变引起并由编译器/链接器应用产生的地址改变、指针目标地址改变以及地址偏移改变。 Minor change is defined as including, but not limited to address the major changes caused by the compiler / linker generated by the application change, change pointer target address and the address offset change. 下面所述的预处理例程减少/去除了次要改变并把有关去除这些改变的信息编码到对应增量文件的信息中。 The following routine pretreatment reduced / removed to minor changes and these changes are related to the removal of information corresponding to the information encoded in the delta file.

对可执行文件中引入的次要改变的分析从假设可执行文件包括代码(文本)段和数据段开始。 Analysis of minor changes were introduced to the executable file from the assumption that the executable file including code (text) and data segments start. 图3是框图300,示出可执行文件的原始版本Vl和新版本V2。 Figure 3 is a block diagram 300 showing the original version of the executable file and the new version Vl V2. 原始版本Vl和新版本V2都包括代码(文本)段310和320及数据段312和322。 The original version of Vl and V2 includes new versions of the code (text) sections 310 and 320 and data segments 312 and 322. 新版本V2和原始版本Vl差别在于新版本V2包括了大小为0x500的附加的新代码块302。 The original version of the new version V2 and Vl difference is that the new version V2 including the size of 0x500 additional 302 new code blocks. 新代码块302的存在引入了两种次要改变。 There is a new code block 302 introduces two minor change.

第一种次要改变发生在新版本V2的代码(文本)段320并导致分支指令BRANCH具有不同的分支位移,也称为相对地址或分支偏移,由在分支指令地址BRANCH和目标指令地址TARGET之间添加新代码块302引起。 The first minor change in the new version V2 of the code (text) section 320 and the branch instruction BRANCH lead to a different branch displacement, also known as the relative addresses or branch offset by the branch instruction address and destination address of the instruction BRANCH TARGET Add a new block of code between 302 cause. 在此实例中,目标指令地址是0x1000,而分支指令地址是0x3000,导致原始版本中0x2000 (0x3000—0x1000)的分支位移。 In this instance, the target instruction address is 0x1000, and the branch instruction address is 0x3000, resulting in the original version of 0x2000 (0x3000-0x1000) branch displacement. 在分支指令地址和目标指令地址之间的新代码块(大小为0x500)的添加把分支指令地址改变为0x3500 (0x3000+0x500)。 In the new code block branch instruction address and target instruction addresses (size of 0x500) is added to the branch instruction address is changed to 0x3500 (0x3000 + 0x500). 所以,新版本V2中的分支位移改变为0x2500 (0x3500-0x1000)ο Therefore, the new version V2 of the branch displacement is changed to 0x2500 (0x3500-0x1000) ο

第二种次要改变发生在新版本V2的数据段322中并导致数据指针POINTER中存储的值改变或存储对应数据区的绝对地址的数据指计值改ˇ变。 The second minor changes in the new version of the data segment 322 and leads V2 of the absolute address of the data stored in the data pointer POINTER value is changed or the data storage area corresponding to the count value changes ˇ varying means. 数据指针值的改变由在代码(文本)段中添加新代码302引起。 Change the data pointer value by adding new code in the code (text) section 302 cause. 新代码302插入在数据段322之前的原始文件中的一个点。 New code section 302 is inserted in the original data file 322 of a previous point. 因此,在原始版本中为0x8000的数据指针值在新版本中改变为0x8500 (0x8000+0x500)。 Thus, in the original version of the data pointer value 0x8000 changes in the new version of 0x8500 (0x8000 + 0x500).

由于软件幵发变得越来越复杂,次要改变遍布在可执行文件中,以至当考虑字节级文件差分的上下文时次要改变的数量超过了主要改变。 As the software becomes more complex with concurrency, minor change throughout the executable file, even when considering the context of byte-level file differential exceeds the number of major changes minor changes. 下述的预处理例程使用文件的原始和新版本之间的关系来减少编码在增量文件中的有关次要改变的差别的信息数量。 Relationship between the original and new versions of the following files between preprocessing routines to reduce the amount of information encoded in the delta files related to minor differences in the change. 利用最少的信息,当进行字节级差分和重构时可以达到级联计算的效果,从而减小了增量文件的大小。 With a minimum of information, when the byte differential points and reconstruction can achieve the effect of the cascade calculation, thereby reducing the incremental file size.

通常,一个实施例的预处理例程包括用于最小化增量文件大小的至少一个近似例程和至少一个合并例程。 Typically, a pre-processing routine of the embodiment comprises means for minimizing the size of the at least one delta file and at least one merge routine approximation routine. 近似例程作用是根据文本(代码)和数据模型假设来减少/去除次要改变。 Approximate routine action is based on the text (code) and data modeling assumptions used to reduce / removing minor change. 合并例程,也称为提示合并例程,以用于传送到接收新版本的设备的最低成本水平来编码模型信息。 The combined routines, also called routine prompts combined, for transmission to a receiving device of a new version to the lowest cost level coding model information. 如上所述,模型信息用于设备中的新版本的恢复,但并不限制于此。 As described above, the device model information for the new version of recovery, but is not limited thereto.

图4是图I和图2的实施例中预处理电子文件的不同版本的流程图206。 Figure 4 is a flow diagram of the electronic document preprocessing different versions of Figure I and Figure 2 206. 在块402,当接收到文件的新和原始版本时,从相关的映射文件中提取共有函数单元和共有数据单元。 At block 402, when receiving new and original version of the file, extracting a total function unit and common data units from the associated mapping files. 在块404,合并共有函数单元以形成共有函数块,其在以下及参考图11详细描述。 At block 404, the function unit to form a combined total of a total of function blocks, in the following detailed description and with reference to FIG. 11. 同样,合并共有数据单元以形成共有数据块,其在以下参考图12详细说明。 Similarly, the combined total of the data unit to form a total data blocks, which 12 described in detail below with reference to FIG. 然后,在块408,预处理系统的预处理例程预处理新和原始文件的代码(文本)段,其在以下参考图5、6、7描述。 Then, in block 408, the code (text) pretreatment system pretreatment routine pretreatment new and original documents section, which is described below with reference to FIG. 6 and 7. 在块410,预处理例程随后或同时预处理新和原始文件的数据段,其在以下参考图8、9、10描述。 At block 410, the preprocessing routine subsequently or simultaneously and data preprocessing new segment of the original file, which is described below with reference to FIG. 9, 10. 在块412,编码共有函数块和共有数据块,并输出原始文件的经修改版本以用于执行字节级文件差分。 At block 412, a total coding function block and a total data block, and outputs a modified version of the original file to be used to perform byte-level file differential.

图5是在图4的实施例中的预处理电子文件的不同版本的代码(文本)段的流程图408。 Figure 5 is the embodiment of FIG. 4 different versions of the code preprocessing electronic document flow chart (text) section 408. 通常,文件的代码(文本)段由一个或多个函数单元或块组成。 Typically, code files (text) segment consists of one or more function units or blocks. 在块502,一个实施例的代码(文本)段的预处理从识别原始和新文件的每个函数单元的开始和结束地址开始,其中原始文件的函数单元在这里称为“原始函数单元”而新文件的函数单元称为“新函数单元”。 At block 502, the pre-code (text) of an embodiment of the starting and ending addresses of each function unit identifies the original and new file start function unit where the original file is referred to herein as "primitive function unit" and function unit of the new file called "new function unit." 函数单元的开始和结束地址使用映射文件识别,但并不限制于此。 Start and end address of a function unit using a mapping file identification, but not limited thereto. 在块504,预处理器接下来给每个唯一的函数单元分配唯一的索引或索引值。 At block 504, a preprocessor next to each unique function unit is assigned a unique index or index value. 给唯一函数单元分配索引值支持对原始和新文件版本都是共有的函数单元的识别。 The only function unit assigned to the index function unit capable of recognizing the original and new file versions are a total of. 随后,当在文件的原始和新版本中都发现相同的函数单元时,该函数被分配一个共有索引值,但该实施例并不限制于此。 Then, when the original and new versions of a file are found in the same function it means that the function is assigned a common index value, but the embodiment is not limited thereto.

例如,考虑包括原始函数单元FI、F2、F3和F4的原始文件版本,以及包括新函数单元FI、F2、F3和F5的新文件版本。 For example, consider including the original function unit FI, F2, F3 and F4 version of the original file, as well as including a new function unit FI, F2, F3 and F5's new version of the file. 如果预处理器分别用索引值I、2、3、4和5来索引函数单元FI、F2、F3、F4和F5,则下表是针对原始文件版本组合的: If the pre-processor, respectively, using an index value I, 2,3,4 and 5 to the index function unit FI, F2, F3, F4 and F5, the following table is for a combination of the original version of the file:

Indroc startAddressVl eq4Ad<fressVl Indroc startAddressVl eq4Ad <fressVl

1 0x8040 0x8062 1 0x8040 0x8062

2 0xS062 0x8080 2 0xS062 0x8080

3 0x8086 0x809e 3 0x8086 0x809e

4 0x9056 0x90a8 4 0x9056 0x90a8

同样,下表是针对新文件版本组合的: Similarly, the following table is for the new file version combinations:

在这两个表中,startAddress通常限定为对应函数单元的开始地址;因此“ startAddressV I”是原始文件的函数单元的startAddress,而“ startAddressV2 ”是新文件的函数单元的startAddress。 In both tables, startAddress generally defined as the start address corresponding to a function unit; therefore "startAddressV I" is a function of the original file startAddress unit, and "startAddressV2" is a function of the new file startAddress unit. 进一步地,endAddress通过把函数单元大小与函数单元开始地址相加而产生,即endAddress=startAddress + 函数单元大小但是该实施例并不限制于此。 Further, endAddress function by function unit cell size and adding the start address generation, i.e. endAddress = startAddress + function unit size but the embodiment is not limited thereto. 于是,endAddressVl限定为原始文件的函数单元的endAddress ,而endAddressV2限定为新文件的函数单元的endAddress.对结束地址的该限定这里也适用于数据单元,但并不限制于此。 Thus, endAddressVl limited endAddress function unit for the original file and the new file endAddressV2 endAddress defined as a function of the unit. Towards the end of the address of the limited data unit here also applies to, but is not limited thereto.

接下来,在块506,预处理器使用来自于上表的索引值、开始地址和结束地址的信息产生共有函数单元的HintTable。 Next, in block 506, the pre-processor from the table index value, starting and ending addresses information generated HintTable total function unit. 该HintTable包括组合在一个表中的共有函数单元的信息,包括索引值、原始文件版本(Vl)的原始函数单元的开始和结束地址以及新文件版本(V2)的新函数单元的开始和结束地址。 The HintTable includes information combined in a table function unit total, including the start and end addresses index value, the start and end address of the original file version (Vl) of the original function unit and the new file version (V2) of the new function unit . HintTable的信息使用任何数量的本领域公知的技术来设置。 HintTable information using any number of techniques known in the art to set.

使用以上信息,一个实施例的HintTable如下产生: Using the above information, an embodiment of HintTable generated as follows:

在块508,预处理器继续为包括目标地址的原始函数单元的指令产生新目标地址值。 At block 508, the pre-processor includes an instruction to continue to the destination address of the original function unit generates the new target address value. 图6是在图5的实施例下为电子文件的原始版本的代码(文本)段产生新目标地址值的流程图508。 6 is a flowchart to generate new target address value in the embodiment of FIG. 5, the next version of the original electronic document code (text) section 508.

在描述新目标地址值的产生时,与函数单元相关联的各种地址用特殊记号说明如下。 In describing the new target address value generated, the address and function of the various elements associated with the special symbols are described below. 指令地址在此通常用记号“addr”表示;因此,“addrVl”表示原始函数单元中的指令地址,而“addrV2”表示新函数单元中的指令地址。 Instruction address here usually mark "addr"; thus, "addrVl" means instruction address of the original function unit, and "addrV2" means instruction address new function unit. 目标地址在此通常用记号“targetAddr”表示;因此,“targetAddrVl”表示原始函数单元中的目标地址,而“targetaddrV2”表示新函数单元中的对应目标地址。 This destination address is usually represented by the symbol "targetAddr"; therefore, "targetAddrVl" represents the original objective function unit address, and "targetaddrV2" indicates the new function unit corresponding to the destination address. 此外,包括targetAddrVl的原始函数单元的开始地址在此用记号“targetStartAddrVl ”表不,是包括targetAddrVl的原始函数单元的开始地址,而包括targetAddrV2的新函数单元的开始地址在此用记号“ targetStartAddrV2 ” 表示。 In addition, the start address including targetAddrVl original function unit represented by the mark in this "targetStartAddrVl" table does not, is the start address include targetAddrVl original function unit and start address of the new unit include targetAddrV2 function in this by a mark "targetStartAddrV2" .

图7是一个实施例中的文件的原始版本Vl和新版本V2的框图,示出关于为电子文件原始版本的代码(文本)段产生新目标地址值而描述的不同地址(和相应记号)。 Figure 7 is a block diagram of the original version and the new version V2 Vl an example of the implementation of the document showing a different address (and corresponding mark) relates to the creation of new value for the target address of the original version of the Code of electronic documents (text) segment and described. 第一共有函数单元CFUA和第二共有函数单元CFU B对原始版本Vl和新版本V2都是共有的。 There are function unit CFUA first and second total function unit CFU B of the original version and the new version Vl V2 are shared. 原始版本Vl的共有函数单元CFUB具有开始地址StartAddrVl,并包括位于指令地址addrVl的可计算指令cal_insA。 The original version Vl CFUB total function unit has a start address StartAddrVl, and includes a command address addrVl computable instruction cal_insA. 该可计算指令在以下描述。 The instruction can be calculated in the following description. 原始版本Vl的共有函数单元CFU A具有开始地址targetStartAddrVl,并包括可计算指令cal-insA 的目标地址targetAddrVI。 The original version Vl total function unit CFU A has a start address targetStartAddrVl, and includes instruction cal-insA calculate the target address targetAddrVI.

同样地,新版本V2的共有函数单元CFU B具有开始地址startAddrV2,并包括位于指令地址addrV2的可计算指令cal_insB。 Likewise, the new version V2 of total function unit CFU B has a start address startAddrV2, and includes a command address addrV2 computable instruction cal_insB. 新版本V2的共有函数单元CFU A具有开始地址targetStartAddrV2,并包括可计算指令cal-insB的目标地址targetAddrV2。 The new version V2 of total function unit CFU A has a start address targetStartAddrV2, and includes instruction cal-insB calculate the target address targetAddrV2.

回到图6,在块602,通过从原始文件版本的原始函数单元j读取未预处理的可计算指令开始产生新目标地址值,其中j是计数器值,值初始化为I并且接下来每次增加I直到j=n,其中η代表原始版本和新版本间的共有函数单元的总数。 Returning to Figure 6, at block 602, the start address to generate new target value by reading the file from the original version of the original function unit j is not pretreated calculated instruction value wherein j is a counter, initialized to the value of each I and subsequently I increased until j = n, where η were total function between the original and new versions of the unit represented.

然后在块604产生或计算可计算指令的当前目标地址,如下所述。 Or calculation instruction is then generated in block 604 may calculate the current destination address, as described below. 对包括目标地址的任何指令,例如象程序计数器相关的跳转指令和加载/存储指令,目标地址用当前指令地址和对应指令解码来计算。 Including any instruction target address, for example, as the program counter relative branch instructions and load / store instruction, the target address is calculated using the current instruction address and the corresponding instruction decoding. 使用以上提及的记号,当前目标地址计算变成 The notation mentioned above, the current target address calculation becomes

targetAddrVl= addrVl+解码(指令),或可替换地,解码(指令)=targetAddrV I—addrVl。 targetAddrVl = addrVl + decoding (instruction), or alternatively, the decoder (instruction) = targetAddrV I-addrVl.

如果值[targetAddrVI — addrVl]已知,该指令也可基于对应的编码方案来计曾舁: If the value of [targetAddrVI - addrVl] is known, the directive can also be based on the corresponding coding scheme counted once lift:

指令二编码(targetAddrV I — addrV I) Instruction second encoding (targetAddrV I - addrV I)

这一类指令称为可计算指令,在此用“cal-ins”表示,而值(targetAddrVl-addrVl)称为可计算指令的值或“指令值”。 This type of instruction is called computable instructions in this with "cal-ins" indicates, and the value (targetAddrVl-addrVl) called computable instruction value or "command value."

对共有函数单元中的可计算指令,一个实施例的预处理器使用原始版本中的指令值连同原始函数单元开始地址及新函数单元开始地址一起产生共有函数单元的新版本中的指令值。 There are functions to calculate the instruction unit, an embodiment example of the original pre-processor version of the command along with the value of the original function unit start address and the start address of the new function unit to produce new versions of the function units in total command values together. 利用以上提及的记号,于是,使用原始版本中的指令值(targetAddrVl — addrVl )、StartAddrVl、targetStartAddrVl、startAddrV2 和targetStartAddrV2 来产生或计算新版本中的指令值(targetAddrV2—addrV2)。 Use notation mentioned above, then, the original version of the command value (targetAddrVl - addrVl), StartAddrVl, targetStartAddrVl, startAddrV2 and targetStartAddrV2 to produce or calculate a new version of the command value (targetAddrV2-addrV2).

因此,在块606,—旦产生原始文件的目标地址(targetAddrVl),预处理器访问HintTabie以识别k,即包括目标地址targetAddrVl的原始文件版本的函数单元。 Thus, at block 606, - Dan generate the target address of the original file (targetAddrVl), the pre-processor to access HintTabie to identify k, which includes the destination address of the original file version targetAddrVl function unit. 在块608,利用原始函数单元j及其目标函数单元k的识别,预处理器从HintTabie 中读取StartAddrVl、startAddrV2 >targetStartAddrVl 和targetStartAddrVl。 At block 608, using the identification of the original function unit j and k of the objective function unit, preprocessor reads StartAddrVl, startAddrV2> targetStartAddrVl and targetStartAddrVl from HintTabie in.

接下来,在块610,预处理器现在为cal„insB产生指令值(targetAddrV2-addrV2)以替换caljiisA的指令值,如下所述。一个实施例的预处理器在至少两个假设之下操作,但并不限制于此。第一假设假定在原始版本和新版本中具有相同大小的共有函数单元具有在原始和新版本上的相同指令结构,这里所述指令结构包括指令类型和指令顺序。第二假设假定对于满足第一假设的共有函数单元中的任何可计算指令,当所述可计算指令是函数调用或可计算指令的目标地址落入也满足第一假设的共有函数单元中时,两个不变量通常在原始和新版本上保持如下.ˇ Next, at block 610, the pre-processor now cal "insB generation command value (targetAddrV2-addrV2) to replace caljiisA command value, as described below. A preprocessor embodiment under the assumption of at least two operations, but is not limited to this. The first hypothesis assumes total function unit of the same size in the original version and the new version has the same command structure on the original and the new version, where the command structure includes an instruction type and sequence of instructions first two meet for the first hypothesis posits that a total computable function unit in any instruction, when the instruction is a function call or computable computable instruction target address falls also satisfies the first assumption there are function units, the two not a variable is usually on the original and new versions of holding as follows. ˇ

addrVl 一StartAddrVl = addrV2 一startAddrV2 addrVl a StartAddrVl = addrV2 a startAddrV2

And

于是,根据这两个假设,在块610,预处理器为cal—insA产生新指令值 Thus, according to these two assumptions, in block 610, a preprocessor directive to produce new value for the cal-insA

在此称为公式I。 It referred to herein as formula I.

在块612,使用cal_insA的新指令值,预处理器将cal_insA修改为指令=编码(targetAddrV2—addrV2 )。 At block 612, the use of new instructions cal_insA value preprocessor cal_insA modify instruction = encode (targetAddrV2-addrV2).

在原始版本的地址addrVl的原始指令cal_insA就以新指令替换。 In the original version of the original instruction address addrVl cal_insA replace it with a new directive.

在块614,预处理器随后判定是否有原始函数单元j的任何可计算指令仍然是未预处理。 At block 614, the pre-processor then determines whether there is any computable instruction original function unit j is still not pretreated. 当可计算指令仍然是未预处理,预处理器返回去在块602从原始函数单元j读取另一个或可替换地下一个未预处理的可计算指令,并且继续如上所述进行预处理。 When the command is also not pretreated calculate preprocessor returns in block 602 to read from the original function unit j to another or alternatively a non-pretreated underground calculate instruction, and continue as described above pretreatment.

如在块614所判定的,当原始函数单元j的所有可计算指令都预处理后,在块616,预处理器判定计数器中的值j是否大于值η。 As the determination block 614, when all the computable instruction original function unit j are pretreated, at block 616, the pre-processor determines the counter value is greater than the value of j η. 判定j不大于η表明有共有函数单元未被预处理,所以在块618,计数器中的值j增加1,并继续如上所述进行预处理。 J is determined not greater than η indicates a total function unit is not pretreated, so at block 618, the counter value j is incremented by one, and continue as described above pretreatment.

判定j大于η表明原始文件版本的所有函数单元都己被预处理。 J η is determined that the original version of the file is larger than all the units have already been pre-processing functions. 随后,在块620,预处理器输出包括新文件的近似版本的原始文件的修改版本。 Subsequently, at block 620, the output of the preprocessor comprises Approximate version of the new file a modified version of the original file.

如以上参考图4所述的,在块410,除了根据文本(代码)模型假设以去除次要改变,预处理器和近似例程还起到根据数据模型假设以去除次要改变的作用。 As described above with reference to FIG. 4, at block 410, except in accordance with text (code) to remove minor change model assumptions, approximate pre-processor and routines also function to remove minor role change according to the data model assumptions. 图8是在图4的实施例下的用来预处理电子文件的原始和新版本的数据段的流程图410。 Figure 8 is the embodiment of FIG. 4 under a flowchart for preprocessing the original and new versions of the data segment of electronic document 410. 通常,文件的数据段由一个或多个全局变量单元或块组成,所述单元或块此处称为“数据单元”。 Typically, the file data segment by one or more global variables units or blocks, or blocks of the unit referred to herein as "data units."

在块802,一个实施例的数据段的预处理开始于对原始和新文件的每个数据单元的开始和结束地址的识别,这里原始文件的数据单元表示为“原始数据单元”,而新文件的数据单元表示为“新数据单元”。 At block 802, a preprocessing segment embodiment begins by identifying the original and new file for each data unit of the start and end addresses, where the original file data units expressed as "original data unit", and the new file The data unit expressed as "the new data unit." 数据单元的开始和结束地址用映射文件识别,但并不限制于此。 Data units start and end addresses mapping file identification, but is not limited thereto.

在块804,预处理接下来给每个唯一的数据单元分配唯一的索引或索引值。 At block 804, preprocessing next to each unique data unit is assigned a unique index or index value. 给每个唯一的数据单元分配索弓I值支持对原始和新文件版本都是共有的数据单元的识别。 To the identification of the original and new file versions are common data elements for each unique data value unit allocation index bow I support. 随后,当在文件的原始和新版本中发现相同的数据单元时,给该数据单元分配一共有索引值,但该实施例并不限制于此。 Subsequently, when the same data elements found in the original and the new version of the file, and to the data distribution unit, a total index value, but the embodiment is not limited thereto. 给唯一的数据单元的索引值的分配与上述给唯一的函数单元的索引值的分配相同,但并不限制于此。 The only data units assigned to the index value assigned to a unique index value above function unit of the same, but is not limited thereto. 同样,根据索引值所组织的并包括每个数据单元的开始和结束地址的表的产生与用于原始和新文件版本的函数单元的上述表的产生相同。 Similarly, the index values for each tissue and generating a data unit including the start and end address of the table for generating the above-mentioned table file version of the original and the new unit of the same function. 但是,可替换的实施例可使用任何数量的本领域公知的技术来分配索引值和产生表。 However, alternative embodiments may use any number of techniques known in the art to generate table index value and distribution.

接下来,在块806,预处理器用来自上表的索引值、开始地址和结束地址的信息来产生共有数据单元的HintTable。 Next, block 806, preprocessing Used index values from the table above, information about the start and end addresses to generate HintTable in total data unit. 该HintTable包括组合在一张表中的共有数据单元信息,包括索引值、原始文件版本(Vl)的原始数据单元的开始和结束地址以及新文件版本(V2)的新数据单元的开始和结束地址。 The total includes a combination of data elements HintTable information in a table, including the index value, starting the beginning of the original file version (Vl) of the original data unit and the end address and the new file version (V2) of new data elements and end address. 该HintTable的产生与参考共有函数单元的HintTable在以上所描述的相同,但是在可替换实施例中可使用任何数量的本领域公知的技术来产生该HintTable。 There are function units with reference HintTable the same as described in the above HintTable generation, but in alternative embodiments may use any number of known in the art to implement the technology to produce the HintTable.

在块808,预处理器继续为原始版本的数据指针产生新数据指针值。 At block 808, a preprocessor for the original version of the data continues to generate new data pointer pointer value. 图9是在图8的实施例下的用于为电子文件原始版本中的数据指针产生新数据指针值的流程图808。 9 is a flowchart 808 to generate new data pointer value of electronic documents in the original version of the data pointer in the embodiment of FIG. 8 under for.

数据指针是指向数据单元中的一些数据的指令。 Data is a pointer to some data in the data unit of instruction. 接着描述此处用于描述新数据指针值的产生的记号。 Next described herein NDI value notation for describing generated. 包括数据指针的指令的地址在此通常用记号“dataPointer”表示;因此,“dataPointerVl”表不原始版本中的dataPointer,而“dataPointerV2”表示新版本中的dataPointer。 Address includes the instruction data pointer is usually expressed in this notation "dataPointer"; therefore, "dataPointerVl" table is not the original version dataPointer, and "dataPointerV2" said the new version dataPointer. 包括由数据指针所指向的数据的数据单元的开始地址在此用“dataStartAddr”表示;因此“dataStartAddrVl ”表示原始版本中的dataStartAddr,而“dataStartAddrV2”表示新版本中的dataStartAddr。 Including the data pointer points to the start address of the data in this data unit is represented by "dataStartAddr"; therefore "dataStartAddrVl" represents the original version dataStartAddr, and "dataStartAddrV2" said the new version dataStartAddr. 图10是一个实施例中的原始版本Vl和新版本V2的框图,示出用于为电子文件原始版本产生新数据指针值的不同地址(和对应记号)。 FIG. 10 is the original version Vl and block diagram of one embodiment of the new version V2, illustrating a method for generating new data pointer values for the different versions of the original electronic document addresses (and corresponding to the mark). 原始版本Vl和新版本V2都包括代码(文本)段和数据段。 The original version of Vl and V2 includes new versions of the code (text) and data segments. 数据段包括对原始文件版本Vl和新文件版本V2都是共有的共有数据单元CDU A。 Total data unit data segment includes the original version of the file and the new file version Vl V2 are shared CDU A. 原始版本Vl包括指向原始版本的共有数据单元CDU A中的一些数据的代码(文本)段中的数据指针dataPointerVl,这里原始版本Vl的CDUA的开始地址是dataStartAddrVl。 The original version Vl including the segment to the original version of the data unit CDU A total of some data in the code (text) data pointer dataPointerVl, starting address where the original version of CDUA Vl is dataStartAddrVl. 同样,新版本V2包括指向新版本V2的共有数据单元CDU A中的一些数据的代码(文本)段中的数据指针dataPointerV2,这里新版本V2的CDUA的开始地址是dataStartAddrV2。 Similarly, the new version to the new version V2 V2 includes data unit CDU A total of some data in the code (text) data segment pointer dataPointerV2, began to address this new version V2 of CDUA is dataStartAddrV2. dataStartAddr地址来自与文件的原始版本Vl和新版本V2的软件映像相关联的映射文件。 The original version of the map file Vl dataStartAddr address from the file and the new version of the V2 software image associated with it.

回到图9,在块902,新数据指针值的产生通过识别原始版本中的未预处理的数据指针开始。 Returning to Figure 9, resulting in block 902, the new data pointer value by identifying the original version did not pre-processed data pointer to start. 一个实施例的预处理器用原始版本中的指针值(dataPointerVl)连同包括dataPointerVl所指向数据的数据单元的开始地址(dataStartAddrVl)及它在新版本中的对应数据单元的开始地址(dataStartAddrV2) 一起产生新版本中的数据指针值(dataPointerV2),如下所述。 Pretreatment Used original version of one embodiment of the pointer value (dataPointerVl) together with the start address data including the start address data units (dataStartAddrVl) and it is in the new version of the corresponding data unit (dataStartAddrV2) dataPointerVl points together to produce new release data pointer value (dataPointerV2), as described below. 这是通过在块904通过访问HintTable以识别k、即原始版本中的一数据单元来完成的,所述数据单元包括由dataPointerVl指向的数据。 This is accomplished by identifying by visiting HintTable k, that is, the original version of a data unit to complete, the data unit block 904 includes the data pointed to by the dataPointerVl. 在块906,利用对数据单元k的识别,预处理器从HintTable中读取dataStartAddrVl 和dataStartAddrVl。 At block 906, using the identification of the data unit k, preprocessor reads dataStartAddrVl and dataStartAddrVl from HintTable in.

在块908,预处理器随后产生数据指针值(dataPointerV2)以替换dataPointerVl,如下所述。 At block 908, the pre-processor then generates data pointer value (dataPointerV2) to replace dataPointerVl, as described below. 一个实施例的预处理器在有关数据单元的至少两个附加假设下操作,这里称为第三和第四假设,但并不限制于此。 Preprocessor in one embodiment at least two additional assumptions about the operation of the data unit, referred to herein as the third and fourth assumption, but is not limited thereto. 第三假设假定在原始版本和新版本中具有相同大小的共有数据单元在原始和新版本上具有相同数据结构,这里所述数据结构包括数据变量的类型、大小和顺序。 The third hypothesis assumes that there are data units of the same size in the original version and the new version with the same data structure on the original and the new version, where the data structure of data variables including the type, size and order. 第四假设假定对满足第三假设的共有数据单元中的任何数据指针,不变式在原始和新版本上通常保持如下:dataPointerVl - dataStartAddrVl = dataPointerV2 - dataStartAddrV2 0 The fourth hypothesis is assumed to meet the third hypothesis of total data unit any data pointers invariant on the original and the new version is usually maintained as follows: dataPointerVl - dataStartAddrVl = dataPointerV2 - dataStartAddrV2 0

因此,根据第三和第四假设,在块908,预处理器为新数据单元产生新数据指针值(dataPointerV2),如 Thus, according to the third and fourth assumption, at block 908, a new data pre-processor unit generates the new data pointer value (dataPointerV2), e.g.

dataPointerV2 = dataPointerVl + (dataStartAddrV2 - dataStartAddrVl), dataPointerV2 = dataPointerVl + (dataStartAddrV2 - dataStartAddrVl),

在此称为公式2。 It referred to herein as Equation 2.

在块910,利用数据指针值dataPointerV2,预处理器在原始版本中的对应地址处用dataPointerV2替换dataPointerVl。 At block 910, using the data pointer value dataPointerV2, the preprocessor in the original version of the correspondence address of the replacement dataPointerVl with dataPointerV2. 在块912,预处理器随后判定是否有原始数据单元的任何数据指针仍然是未预处理。 At block 912, the pre-processor then determines whether there is any data of the original data pointer remains non-pretreated cells.

在块912,当原始数据单元的数据指针仍然是未预处理,预处理器返回以从原始数据单元读取另一个或可替换地下一个未预处理的数据指针,且如上所述继续进行预处理。 At block 912, when the original data unit is still not preprocessed data pointer, return to the pre-processor unit reads another, or alternatively a non-pretreated underground data pointer from the original data, and as described above continue preprocessing . 如在块912所判定的,当原始数据单元的所有数据指针都预处理了,在块914,预处理器输出包括新文件的近似版本的原始文件的修改版本。 As the determination of block 912, when the original data elements all data pointers pretreatment, the modified version of the block 914, a preprocessor output includes an approximate version of the new files in the original file.

如以上在HintTable中所用的共有函数单元及共有数据单元的开始和结束地址共同称为“算法提示”或“提示”,因为它们用于判定不同文件版本间的共有单元的相对位置。 There are function units such as the above in HintTable used and the total data units start and end addresses are collectively called "algorithm tips" or "prompt" because they are used to determine the relative position of total units of the different file versions. 如此,所述提示被传送给接收差别或增量文件以用于从增量文件和原始文件恢复新文件版本的客户设备,如上所述。 Thus, the reminder is sent to the receiving difference or incremental file to a new file is used to recover files from an incremental version of the original file on the client device, as described above. 由于传送提示通过与用于传送增量文件和其他信息到客户设备相同的低带宽通道来执行,一个实施例的预处理器执行提示合并以合并HintTable的共有函数单元和共有数据单元而不影响预处理算法或例程的性能。 Since the transmission prompted by incremental file transfer, and other information to customers for the same device to perform low-bandwidth channel, a pre-processor to perform an embodiment of the merger prompted to merge HintTable total function units and common data units without affecting the pre- processing performance algorithms or routines. 该合并减小了包括提示的文件大小并因此减小了传送给客户设备的信息量。 The merger reduces the file size and includes tips thus reducing the amount of information transmitted to the client device.

利用由上述预处理代码(文本)段所得到的共有函数单元,并返回到图4,在块404,在提示合并例程或算法的控制下的预处理器合并共有函数单元以形成共有函数块。 Use of shared function unit by the preprocessor code (text) section got, and return to Figure 4, at block 404, at the prompt merger control routines or algorithms preprocessor merge to form a total of a total function unit function block . 图11是在图4的实施例下的共有函数单元的提示合并404的流程图。 11 is a flowchart that the merge function unit in the total embodiment of FIG. 4 under 404.

同样,在块406,预处理器使用由上述数据段的预处理所产生的共有数据单元来合并共有数据单元以形成共有数据块。 Similarly, at block 406, the pre-processor uses the above-described pre-processing unit consists of a total of the data generated by the data segment to the data unit to form a combined total of a total of a data block. 图12是在图4的实施例下的共有数据单元的提示合并406的流程图。 Figure 12 is a total data in the embodiment of FIG. 4 flowchart 406 units under the prompt consolidation. 下面依次描述共有函数单元和共有数据单元的提示合并。 The combined total of the following described in turn prompt function units and common data units.

尽管为了清楚在此分开描述了共有函数单元和共有数据单元的提示合并,所述实施例可以按任意顺序和任意组合来执行与合并相关联的操作。 Although described separately for clarity in this merger tips total function unit and common data elements, the embodiment can be any combination of any order to perform the operations associated with the merger. 有关记号,函数或数据单元的开始地址在此通常用如上所述的记号“startAddress”表示;因此,“startAddressVl”表示原始函数或数据单元的开始地址,而“StartAddreSSV2”表示在新函数或数据单元中的对应开始地址。 For the start address mark, a function or a data unit as described above in this usually mark "startAddress"; thus, "startAddressVl" indicates the start address of the original function or data unit, and "StartAddreSSV2" represents a new function or data unit corresponding start address. 同样,函数或数据单元的结束地址在此通常用记号“endAddress”表示;因此,“endAddressVr表示原始函数或数据单元的结束地址,而“endAddressV2”表示在新函数或数据单元中的对应结束地址。 Similarly, the function or data unit end address this is usually represented by the mark "endAddress"; therefore, "endAddressVr represents the original function or data unit end address, and" endAddressV2 "indicates that the corresponding function or data in a new unit in the end address.

如以上参考图5所述的,产生共有函数单元的HintTable,其包括组合在一张表中的共有函数单元的信息,所述信息包括索引值、原始文件版本Vl的原始函数单元的开始和结束地址以及新文件版本V2的新函数单元的开始和结束地址。 As described above with reference to FIG. 5, resulting in a total function HintTable unit, which includes information in a table of total function unit combination, said information including start and end address index value, the original file version Vl of the original function unit and start and end address of the new file version V2 of the new function unit. 上面提供的HintTable用作描述共有函数单元的提示合并的例子,但所述实施例并不限制于此: HintTable used as described above provides an example of the combined total of prompt function unit, but the embodiment is not limited thereto:

参考图4和图11以及该HintTable,在块1102,共有函数单元的提示合并404的操作开始于预处理器将HintTable的所有η个记录标记为可用、设置计数器j = l以及从关联的HintTable读取函数单元j和单元(j+Ι)的原始和新版本。 4 and 11 and the HintTable, at block 1102, suggesting that the combined total of the operation of the function unit 404 begins at preprocessor HintTable all η records marked as available, setting the counter j = l and the associated read from HintTable Take function unit j and unit (j + Ι) of the original and the new version. 在此例中,单元j和单元(j+Ι)的值对应于提示表的索引值,这里j=l,2,...(nl),但并不限制于此。 In this example, the value and the unit cell j (j + Ι) corresponding to the tips of the index table, where j = l, 2, ... (nl), but is not limited thereto. 此外,j的值初始地设置为等于I且随后在进行提示合并404和处理了共有单元时用本领域公知的方法来增加。 Further, the value j is initially set equal to I and then carrying out the presented methods known in the art to increased merger and processed a total of 404 units. 所以,在块1102,读取与索引值I和I (j+l=l+l=2)关联的共有函数单元的信息。 Therefore, at block 1102, a total function reads the index value I and I (j + l = l + l = 2) associated with the unit of information.

在块1104,预处理器判定共有函数单元j的原始版本Vl和新版本V2的大小是否相等。 At block 1104, the pre-processor determines a total function unit j of the original version and the new version V2 Vl size are equal. 该判定通过在原始版本Vl和新版本V2的开始和结束地址之间求差来完成,如 This determination by between the original version and the new version Vl V2 start and end address differencing to complete, such as

endAddrVl(j) - startAddrVl(j) = endAddrV2(j) - startAddrV2(j), endAddrVl (j) - startAddrVl (j) = endAddrV2 (j) - startAddrV2 (j),

但并不限制于此。 But is not limited thereto. 当原始版本Vl和新版本V2具有不同大小的文件时,在块Π12,操作进行为判定j的值是否小于量(n-1)。 When the original version and the new version Vl V2 files of different sizes, in block Π12, the operation proceeds to determine whether the value of j is less than the quantity (n-1).

当原始版本Vl和新版本V2具有相同大小时,在块1116,预处理器判定共有函数单元j的原始版本Vl的结束地址是否与共有函数单元(j+1)的原始版本Vl的开始地址相同,如 When the original version and the new version Vl V2 has the same size, at the beginning of the address block 1116, the end of the address of the pre-processor determines a total function unit j original version Vl whether the total function unit (j + 1) is the same as the original version Vl such as

endAddrVl(j) = startAddrVl(j + I), 但并不限制于此。 endAddrVl (j) = startAddrVl (j + I), but is not limited thereto. 当共有函数单元j的原始版本Vl的结束地址与共有函数单元(j+Ι)的原始版本Vl的开始地址不同时,在块1112,操作进行为判定j的值是否小于量(n-1)。 When starting address ending address consists of the original version of the function unit j Vl and total function unit (j + Ι) of the original version Vl is not the same, at block 1112, the operation to determine the value of j is less than the amount of (n-1) .

当共有函数单元j的原始版本Vl的结束地址与共有函数单元(j+1)的原始版本Vl的开始地址相同时,在块1108,预处理器判定共有函数单元j的新版本V2的结束地址是否与共有函数单元(j+Ι)的新版本V2的开始地址相同,如 When starting address consists of a function unit j original version Vl end address and total function unit (j + 1) of the original version Vl of the same, at block 1108, the pre-processor determines the end of the address consists of the function unit j new version V2 of Start address is the same as the total function unit (j + Ι) of a new version V2, e.g.

endAddrV2(j) = startAddrV2(j +1), endAddrV2 (j) = startAddrV2 (j +1),

但并不限制于此。 But is not limited thereto. 当共有函数单元j的新版本V2的结束地址与共有函数单元(j+Ι)的新版本V2的开始地址不同时,在块1112,操作进行为判定j的值是否小于量(n-1)。 When a new version of the new version of the total function unit j and the end address a total function unit (j + Ι) V2 V2 of the start address is not the same, at block 1112, the operation proceeds to the determination value j is smaller than the amount of (n-1) .

当共有函数单元j的新版本V2的结束地址与共有函数单元(j+Ι)的新版本V2的开始地址相同时,在块1110,预处理器合并共有函数单元j和共有单元(j+l)的信息以形成共有函数块来替换单元(j+D的记录,然后把单元j的记录标记为不可用。在块1112,操作然后进行为判定j的值是否小于量(n-1)。 When the total of the end address of the start address of the function unit j and the total of the new version V2 function unit (j + Ι) V2 of the new version of the same, at block 1110, the pre-processor and the combined total of total cell function unit j (j + l ) The information to form a total function block replacement unit (j + D record, then the record unit j is marked as unavailable at block 1112, operating then as a judgment value j is smaller than the amount of (n-1).

在块1112,预处理器判定j的值是否小于量(η-i)。 At block 1112, the pre-processor determines the value of j is smaller than the amount of (η-i). 当j的值等于量(η-i),表明所有函数单元都已预处理,在块1116,操作进行为输出所有可用的记录作为共有函数块,并且操作返回。 When the value of j is equal to the amount (η-i), indicating that all functions are pre-treatment unit, at block 1116, the operation of the output of all available records as a total function blocks, and the operation returns. 当j的值小于量(n-1),表明函数单元仍然是未预处理,在块1114,j的值增加,并且在块1102,操作进行为读取对应于j的新值的共有函数单元的信息。 When the value of j is less than the quantity (n-1), that the function unit is still not pretreated increase in block 1114, the value of j, and at block 1102, the operation proceeds to read the new value of j corresponding to a total function unit information. 如上所述继续进行预处理。 Continue as described above pretreatment.

下面参考图11和HintTable说明包括共有函数单元的提示合并的例子。 The following description with reference to FIG. 11 and HintTable including tips merge function unit Total examples. 操作开始于预处理器把所有三个记录标记为可用并从HintTable中读取函数单元I和2的原始和新版本。 Operation starts in the pre-processor to all three records marked as available and read function unit I and 2 of the original and new versions from HintTable in. 然后预处理器判定共有函数单元I的原始版本Vl和新版本V2是否大小相等。 Then there are the pre-processor determines function unit I Vl original version and the new version V2 is equal in size. 该判定通过在原始版本Vl和新版本V2的开始和结束地址之间求差来完成,如 This determination by between the original version and the new version Vl V2 start and end address differencing to complete, such as

endAddrVl(l) - StartAddrVl(I) = endAddrV2(l) - startAddrV2(l)。 endAddrVl (l) - StartAddrVl (I) = endAddrV2 (l) - startAddrV2 (l).

用来自HintTable的真实值代替产生 With real values from HintTable instead produce

(0x8062) - (0x8040) = (0x8082) - (0x8060)。 (0x8062) - (0x8040) = (0x8082) - (0x8060).

由于原始版本Vl和新版本V2大小相等,预处理器接下来判定共有函数单元I的原始版本Vl的结束地址是否与共有函数单元2的原始版本Vl的开始地址相同,如 Since the original version and the new version Vl V2 are equal and the same pre-processor determines the start address of the next end address consists of the original version of the function unit I Vl whether the original version Vl total function unit 2, such as

endAddrVl(l) = StartAddrV I (2)。 endAddrVl (l) = StartAddrV I (2).

用来自HintTable的真实值代替产生共有函数单元I的原始版本Vl的结束地址与共有函数单元2的原始版本Vl的开始地址相同的判定,如 The same judgment start address end address generating function unit I with a total real value instead of the original version from HintTable Vl with a total original version Vl function unit 2, such as

(0x8062) = (0x8062)。 (0x8062) = (0x8062).

因为共有函数单元I的原始版本Vl的结束地址与共有函数单元2的原始版本Vl的开始地址相同,接下来判定共有函数单元I的新版本V2 Because the same starting address ending address consists of function units I Vl with the original version of the original version Vl total function unit 2, followed by a new version of a total of determination function unit I V2

的结束地址是否与共有函数单元2的新版本V2的开始地址相同,如 The same start address and end address whether there are new version V2 function unit 2, e.g.

endAddrV2(l) = startAddrV2(2) 0 endAddrV2 (l) = startAddrV2 (2) 0

用来自HintTable的真实值代替产生共有函数单元I的新版本V2的结束地址与共有函数单元2的新版本V2的开始地址相同的判定,如 The same start address end address is determined with the real values instead of generating a total of from HintTable function unit I and the new version V2 of total new version V2 function unit 2, e.g.

(0x8082) = (0x8082)。 (0x8082) = (0x8082).

响应于共有函数单元I的新版本V2的结束地址与共有函数单元2的新版本V2的开始地址相同的判定,预处理器合并共有函数单元I和共有函数单元2的信息以形成共有函数块如下: Identical start address is determined in response to the end address of I total function unit with a new version V2 of total new version V2 function unit 2, the combined total of the information preprocessor function unit I and total function unit 2 to form function blocks as total :

继续该例子,预处理器接下来从HintTable读取函数单元2和3的原始和新版本。 Continuing the example, the pre-processor then reads the original and new versions of the function units 2 and 3 from HintTable. 预处理器判定共有函数单元I的原始版本Vl和新版本V2是否大小相等。 Total pre-processor determines function unit I Vl original version and the new version V2 are equal in size. 该判定通过在原始版本Vl和新版本V2的开始和结束地址之间求差来完成,如 This determination by between the original version and the new version Vl V2 start and end address differencing to complete, such as

endAddrVl (2) — startAddrVl (2) - endAddrV2(2) — startAddrV2(2)。 endAddrVl (2) - startAddrVl (2) - endAddrV2 (2) - startAddrV2 (2).

用来自HintTable的真实值代替产生 With real values from HintTable instead produce

(0x8080) - (0x8040) = (0x80a0) - (0x8060), (0x8080) - (0x8040) = (0x80a0) - (0x8060),

表示原始版本Vl和新版本V2大小相等。 Vl represents the original version and the new version V2 of equal size.

预处理器接下来判定共有函数单元2的原始版本Vl的结束地址是否与共有函数单元3的原始版本Vl的开始地址相同,如 Next, the same pre-processor determines the start address End address consists of function units of 2 original version Vl whether the original version Vl total function unit 3, such as

endAddrV I (2) = startAddrVl (3)。 endAddrV I (2) = startAddrVl (3).

用来自HintTable的真实值代替产生判定共有函数单元2的原始版本Vl的结束地址与共有函数单元3的原始版本Vl的幵始地址不同的判定,如 Different from the true value judgment HintTable end address instead of generating a total of determination function unit 2 of the original version Vl function unit with a total original version Vl 3 of 幵 start address, such as

(0x8080)不等于(0x8086)。 (0x8080) is not equal to (0x8086).

因为共有函数单元2的原始版本Vl的结束地址与共有函数单元3的原始版本Vl的开始地址不同,操作返回并且共有函数单元2和3不合并以形成共有函数块。 Since the end of the address of the start address of the original version Vl total function unit 2 and a total function unit 3 of the original version Vl different operating returns and total function units 2 and 3 are not combined to form a total of function blocks.

合并共有函数单元之后,上面例子的HintTable的可用记录如下输出: The combined total of the function unit after recording HintTable available examples of the above the following output:

Mte startAddrVl endAddrVl stgutAddrV2 cndAddrV2 Mte startAddrVl endAddrVl stgutAddrV2 cndAddrV2

2 0x8040 0x8080 0x8060 0x80a0 2 0x8040 0x8080 0x8060 0x80a0

3 0x8086 0x809c 0x80a6 OxSObe 3 0x8086 0x809c 0x80a6 OxSObe

一个实施例的预处理器使用与上述关于共有函数单元的类似的方式来执行共有数据单元的提示合并。 Preprocessor an embodiment similar manner to that described above with respect to total function unit to perform a total data unit that the merge. 参考图4和图12,共有数据单元的提示合并406的操作开始于预处理器标记HintTable的所有η个记录、设置计数器j二I以及在块1202从关联的HintTable读取数据单元j和(j+Ι)的原始和新版本。 4 and 12, suggesting that the combined total of the data unit operation 406 mark at the start of the pre-processor HintTable all η records, I set up two counters j and in block 1202 to read data from HintTable associated unit j and (j + Ι) of the original and the new version. 单元j和单元(j+Ι)的值对应于提示表的索引值,这里j=l,2,...(nl),但并不限制于此。 Value unit j and unit (j + Ι) corresponds to the index value of the cue sheet, where j = l, 2, ... (nl), but is not limited thereto.

在块U04,预处理器判定共有数据单元j的原始版本Vl和新版本V2的大小是否相等。 At block U04, pre-processor determines the original version Vl total data unit j and the size of the new version V2 are equal. 该判定通过在原始版本Vl和新版本V2的开始和结束地址之间求差来完成,如 This determination by between the original version and the new version Vl V2 start and end address differencing to complete, such as

endAddrV I (j) - startAddrVl O) = endAddrV20) — startAddrV2(j)f endAddrV I (j) - startAddrVl O) = endAddrV20) - startAddrV2 (j) f

但并不限制于此。 But is not limited thereto. 当原始版本Vl和新版本V2具有不同大小的文件时, 在块1212,操作进行为判定j的值是否小于量(n-1)。 When the original version and the new version Vl V2 has a different size documents, at block 1212, the operation to determine whether the value of j is less than the quantity (n-1).

当原始版本Vl和新版本V2大小相等时,在块1206,预处理器判定共有数据单元j的原始版本Vl的结束地址是否与共有数据单元(j+Ι)的原始版本Vl的开始地址相同,如 When the original version and the new version Vl V2 equal size, at block 1206, the pre-processor determines the start address of the end address consists of the same data unit j original version Vl whether the total data unit (j + Ι) Vl of the original version, as

endAddrVl (j) =5 StartAddrVlO + I), endAddrVl (j) = 5 StartAddrVlO + I),

但并不限制于此。 But is not limited thereto. 当共有数据单元j的原始版本Vl的结束地址与共有数据单元(j+l)的原始版本Vl的开始地址不同时,在块1212,操作进行为判定j的值是否小于量(n-1)。 When starting address ending address consists of the original version of the data unit j Vl with a total data unit (j + l) of the original version Vl is not the same, at block 1212, the operation to determine the value of j is less than the amount of (n-1) .

当共有数据单元j的原始版本Vl的结束地址与共有数据单元(j+l)的原始版本Vl的开始地址相同时,在块1208,预处理器判定共有数据单元j的新版本V2的结束地址是否与共有数据单元(j+l)的新版本V2的开始地址相同,如 When the start address of the data unit j of the total original version Vl end address of the data unit a total of (j + l) Vl original version of the same, at block 1208, the pre-processor determines the end address of the data unit j total new version V2 of Start address is the same as the total of the data unit (j + l) of the new version V2, e.g.

endAddrV20) = startAddrV2(j +1), endAddrV20) = startAddrV2 (j +1),

但并不限制于此。 But is not limited thereto. 当共有数据单元j的新版本V2的结束地址与共有数据单元(j+l)的新版本V2的开始地址不同时,在块1212,操作进行为判定j的值是否小于量(n-1)。 When a new version of the new version of total data unit j and the total of the end address of the data unit V2 (j + l) of the start address of V2 is not the same, at block 1212, the operation proceeds to the determination value j is smaller than the amount of (n-1) .

当共有数据单元j的新版本V2的结束地址与共有数据单元(j+l)的新版本V2的开始地址相同时,在块1210,预处理器合并共有数据单元j和共有数据单元(j+l)的信息以形成共有数据块来替换单元(j+l)的记录,然后把单元j的记录标记为不可用。 When the start address end address of the data unit j total new version V2 of the total data unit (j + l) of the new version V2 are the same, at block 1210, the pre-processor data unit j and the combined total of a total data unit (j + l) the information to form a total replacement recording unit block of data (j + l), and the recording unit j is marked as unavailable. 在块1212,操作进行为判定j的值是否小于量(n-1)。 At block 1212, the operation determines whether the value of j is less than the amount of (n-1).

在块1212,预处理器判定j的值是否小于量(η-i)。 At block 1212, the pre-processor determines the value of j is smaller than the amount of (η-i). 当j的值等于量(η-i),表明所有数据单元都已预处理,在块1216,操作进行为输出HintTabk中的可用记录作为共有数据块,并且操作返回。 When the value of j is equal to the amount (η-i), indicating that all data units have been pre-processing, at block 1216, the operation of output HintTabk available records as a total block, and the operation returns. 当j的值小于量(η-i),表明数据单元未被预处理,在块1214,j的值增加,并且在块1202,操作进行为读取对应于j的新值的共有数据单元的信息。 When the amount is less than the value of j (η-i), indicates that the data unit has not been pretreated, increased at block 1214, the value j, and at block 1202, the operation proceeds to read the new value of j corresponding to the total data units information. 如上所述继续进行预处理。 Continue as described above pretreatment.

所述用于预处理电子文件的不同版本的系统和方法可应用于使用任意数量的指令架构的任意数量的处理和/或基于处理器的系统的软件和可执行文件。 System and method for pre-processing of the electronic document can be applied to different versions of any number of processing any number of instruction architecture and / or processor-based systems software and executable files. 例如,此处的系统和方法可用于ARMŽ架构,如由D.Jagger 和D.Seal的“ARM架构参考手册”第二版所述。 For example, the systems and methods described herein can be used for ARMŽ architecture, as described by the D.Jagger and D.Seal the "ARM Architecture Reference Manual" Second Edition. ARM架构是基于16/32位嵌入式精简指令集计算机(RISC)核心的微处理器架构,并引入Thumb16位指令集。 ARM architecture is based on 16/32 bit embedded reduced instruction set computer (RISC) microprocessor core architecture, and introduces Thumb16-bit instruction set. 当用在ARMŽ架构中时,例如,以上提及的可计算指令将包括ARM/Thumb指令集的“利用链接分支(BL),,和“利用链接分支以及将模式改变为ARMZThumb(BLX)"指令。此外,以上提及的数据指针包括ARM/Thumb指令集的DCD指令。 When used in ARMŽ architecture, for example, calculate the instructions mentioned above will include ARM / Thumb instruction set "Use link branch (BL) ,, and" the use of the link branch and change the mode to ARMZThumb (BLX) " instruction. In addition, the data pointer mentioned above include DCD instruction ARM / Thumb instruction set.

作为使用上述预处理的设备和/或系统的例子,接收和使用增量文件的计算设备可以是掌控更新所需的对应软件应用的客户设备,例如蜂窝电话、移动电子设备、移动通信设备、个人数字助理以及其他基于处理器的设备。 As an example of using the pre-treatment equipment and / or systems, reception and computing devices use delta file may be required to update the corresponding control software application client devices such as cellular phones, mobile electronic devices, mobile communication devices, personal digital assistants and other processor-based devices. 通过使运营商和设备制造商能够经由他们的无线基础设施有效地发布电子文件内容和应用,对范围从固件到嵌入式应用的所有移动设备软件提供这种支持。 By allowing operators and equipment manufacturers to efficiently publish content and applications through electronic document their wireless infrastructure, all mobile device software for a range of embedded applications from firmware to provide such support.

得益于上述预处理的系统的另一例子包括使用有线串行连接将增量文件从掌控文件差别生成器的设备传送到掌控文件更新生成器的设备的系统。 Another example of the above-mentioned pretreatment benefit system involves the use of a serial cable connection to transfer files from the incremental difference in control file generator device to control file update generator equipment systems. 这些系统典型地具有低的传送速率,并且因为传送速率低,减小增量文件大小是一种实现较快传送时间的途径。 These systems typically have a low transmission rate, and because the transfer rate is low, to reduce the file size of the increment is a faster way to achieve transmission time.

得益于使用预处理的系统的又一例子包括使用无线电通信将增量文件从掌控文件差别生成器的设备传送到运行文件更新生成器的设备的系统。 Thanks to the use of the system is another example of the pretreatment include the use of radio communications will generate the delta file from the control file differencing device to run a file update generator equipment systems. 在经受与无线连接相关的低可靠性的同时,这些系统也具有低的传送速率。 At the same time subjected to a low reliability of the connection associated with the wireless, these systems also have a low transmission rate. 在这些系统中使用较小的增量文件提供了几个优点。 Use a smaller delta file in these systems provides several advantages. 例如,较小的文件大小导致较快的增量文件传送时间。 For example, smaller file sizes result in faster file transfer time increment. 较快的传送时间在为设备用户节约时间的同时也减少了将错误引入增量文件中的机会,从而提高了系统可靠性。 Faster delivery time for equipment users to save time and also reduces the chance of introducing errors into the delta file, thus improving system reliability. 而且,利用蜂窝通信,减少的传送时间造成为典型地按分钟为服务付费的消费者节约了成本。 Moreover, the use of cellular communications, reducing the transfer time is typically caused by the minute for the service to paying customers cost savings.

作为另一优点,较小的增量文件减小了传送增量文件到客户设备所需的带宽。 As another advantage, the smaller delta file transfer reduces the incremental file to the desired bandwidth of the client device. 减小的带宽使得通过分配的通道支持更多客户设备。 Reduced bandwidth enables devices to support more customers through the distribution channel. 如同减少的传送时间,这也导致为无线服务提供商减少了运营成本。 As reduced transmission time, which also led to wireless service providers to reduce operating costs.

用于预处理文件的原始和新版本作为在原始和新文件之间产生的差别文件的一部分的上述系统包括用于产生差别文件的第一设备,以及接收差别文件并用差别文件在第二设备中产生新文件版本的第二设备。 The first device of the original and new versions for the preprocessed file as part of the above systems between the original and new file created differences file for generating difference files, and receive the difference between the file and the file with the difference in the second device generate a new version of the file a second device. 第一设备包括减小差别文件大小的至少一个组件,所述减小通过以下进行:对应于由代码行删除、代码行添加以及代码行修改的至少一种所引起的地址偏移来识别原始和新版本之间的差别;通过使用原始版本的文本段的地址与新版本的对应文本段的地址之间的至少一种关系来修改原始版本的指令的目标地址,来去除原始和新版本之间所共有的文本段中的所识别差别;以及产生原始文件的修改版本,所述修改版本包括具有经修改目标地址的指令。 The first device includes reducing the difference in file size of at least one component, which were reduced by the following: corresponds to the address offset from the line delete, line of code as well as at least one line of code modification caused to recognize the original and the difference between the new version; and by at least one relationship address corresponding to the address with the new version of the original version of the text segment between text segments to modify the original version of the instruction target address, to remove between the original and new versions There are differences in the identified text segments; and generating a modified version of the original file, the modified version includes an instruction has revised the target address.

在一个实施例中,去除原始和新版本之间所共有的文本段中的所识别差别进一步包括:识别原始和新版本间所共有的第一和第二文本段,其中原始版本中的第一文本段包括第一可计算指令而新版本中第二文本段包括第二可计算指令;识别原始和新版本间所共有的第三和第四文本段,其中原始版本中的第三文本段包括对应第一可计算指令的第一目标地址,其中新版本中的第四文本段包括对应第二可计算指令的第二目标地址;通过用第三和第四函数单元的开始地址之间的第一差别及用第一和第二函数单元的开始地址之间的第二差别修改第一指令值,来从第二可计算指令产生第二指令值;以及用第二指令值替换第一可计算指令的第一指令值。 In one embodiment, the removal between the original and the new version of the common text segments identified differences further comprising: first and second paragraphs of text between the recognition of the original and new versions have in common, including the original version of the first text segment includes a first instruction to calculate a new version of the text in the second segment includes a second computable instruction; identifying between the original and the new version of the common text of the third and fourth paragraphs, where the original version of the text of the third segment comprises calculate a first instruction corresponding to the first destination address, wherein the new version of the fourth text segment includes a corresponding second calculated second target instruction address; start address with the first through the third and fourth function unit between A difference with the second difference and modify the start address of the first and the second function unit between the first command value to generate a second command value calculated from a second instruction; and a first value calculated is replaced with a second instruction The first command instruction value.

文件预处理作为一个实施例的差别文件产生的部分进一步包括通过修改原始版本中的数据指针值来去除包括指向原始和新版本所共有的数据段的数据指针的指令中的所识别差别,其中使用由当前数据指针指向的原始版本中的数据段的开始地址与新版本中的对应数据段的开始地址之间的差别来修改数据指针值。 As part of the difference between the pre-processing files generated by one embodiment further includes data pointer value by modifying the original version to remove the identified differences include pointers to the data shared by the original and new versions of the data segment of the directive, in which the difference between the start address and the start address of the current data pointer to the new version of the original version of the data segment in the segment between the corresponding data to modify the data pointer value. 去除包括数据指针的指令中的所识别差别进一步包括:识别原始和新版本之间所共有的第一和第二代码段,其中原始版本中的第一代码段包括第一数据指针,而新版本中的第二代码段包括第二数据指针;识别原始和新版本之间所共有的第一和第二数据单元,其中原始版本中的第一数据单元包括对应第一数据指针的第一目标地址,其中新版本中的第二数据单元包括对应第二数据指针的第二目标地址;通过用第一和第二数据单元的开始地址间的差别修改第一指针值,来从第二数据指针产生第二数据指针值;以及用第二数据指针值替换第一数据指针的第一数据指针值。 Removal instruction includes data pointers of the identified differences further comprising: identifying between the original and the new version of the first and second common code segment, where the original version of the first code section comprises a first data pointer, and the new version The second code segment includes a second data pointer; between the original and the new version to identify common first and second data unit, where the original version of the first data unit includes data corresponding to the first pointer to a first destination address wherein the new version of the second data unit includes a second data pointer corresponding to a second destination address; a first pointer value by modifying a start address with the first and second difference data between the units to generate a second data pointer from a second data pointer value; and a second data pointer is replaced with a first value of a first data pointer data pointer value.

一个实施例的系统中的第一设备用至少一种耦合来传送差别文件到第二设备,其中至少一种耦合是无线耦合、有线耦合以及混合无线/有线耦合中的至少一种。 A system according to the first embodiment with the at least one device coupled to the difference between the file transfer to the second device, wherein the at least one coupler is coupled to at least one wireless, wired coupling and hybrid wireless / wired Coupling.

一个实施例的系统中的第二设备包括至少一个基于处理器的设备,如个人计算机、便携式计算设备、蜂窝电话、便携式通信设备以及个人数字助理。 A system according to the second device includes at least one processor-based device, such as a personal computer, a portable computing device, a cellular telephone, a portable communication device and a personal digital assistant embodiment.

上述用于预处理文件的原始和新版本作为在原始和新版本之间的差别文件产生的部分的系统包括用于产生差别文件的设备。 Part of the system above the original and new versions for pre-processing document as between the original and new versions of the difference file generated by the device for generating difference files. 该设备包括:用于接收电子文件原始版本和新版本的装置;用于识别原始和新版本所共有的代码单元的装置;用于识别代码单元所共有的指令的装置,其中所述指令包括指示对相应文件的另一部分处理的指令值;用于从原始版本的第一指令产生第一指令值的装置;用于从新版本的第二指令产生第二指令值的装置,其中第二指令对应于第一指令;用于用第二指令值替换第一指令的第一指令值的装置;以及用于产生包括具有第二指令值的第一指令的原始文件的修改版本的装置。 The apparatus comprising: an electronic file of the original version and the new version means for receiving; means for identifying the original and new versions for a total of code units; common unit identification code means for instruction, wherein the instruction includes instruction the corresponding portion of the other document processing instruction value; generating a first command value from the first means for the original version of the instruction; means for a second instruction value generated from the new version of the second instruction, wherein the second instruction corresponding to The first instruction; value is replaced with the second instruction of the first instruction means for the first command value; and means for generating include the original file with the first instruction of the second instruction value a modified version of the device.

上述用于预处理文件的原始和新版本作为原始和新版本之间的差别文件产生的部分的系统包括相关的方法。 Part of the system above the original and new versions for pre-processing document file as the difference between the original and the new version includes related methods produce. 这些方法当中有一种方法用于减小包括电子文件的原始版本和新版本之间的经编码差别的差别文件的大小。 Among these methods there is a method for reducing the difference between the original version of an encoded electronic documents and new versions of the difference between the size of the file. 一个实施例的方法包括:对应于由代码行删除、代码行添加以及代码行修改中的至少一种引起的地址偏移,来识别原始和新版本之间的差别;通过使用原始版本的文本段的地址与新版本的对应文本段的地址之间的至少一种关系修改原始版本的指令目标地址,来去除原始和新版本所共有ˇ的文本段中的所识别差别;以及产生包括具有经修改目标地址的指令的原始文件的修改版本。 A method embodiment comprises: Remove the line of code corresponding to the line of code to add and modify the address line of code in at least one shift due to identify the differences between the original and new versions; by using the original version of the text segment at least one relationship between an address and the address corresponding to the text segment between the new modified version of the original version of the instruction target address, to remove the original and new versions of the identified common difference ˇ text segments; and generating comprises a modified a modified version of the original file instruction target addresses.

去除共有文本段中的所识别差别的方法,进一步包括:识别原始和新版本间所共有的第一和第二文本段,其中原始版本中第一文本段包括第一可计算指令,而新版本中第二文本段包括第二可计算指令;识别原始和新版本间所共有的第三和第四文本段,其中原始版本中的第三文本段包括对应第一可计算指令的第一目标地址,其中新版本中的第四文本段包括对应第二可计算指令的第二目标地址;通过用第三和第四函数单元的开始地址之间的第一差别以及用第一和第二函数单元的开始地址之间的第二差别修改第一指令值,来从第二可计算指令产生第二指令值;以及用第二指令值替换第一可计算指令的第一指令值。 There are differences in the removal of the identified text segments method further comprising: first and second paragraphs of text between the recognition of the original and new versions have in common, including the original version of the first text segment includes a first calculate the instruction, and the new version In the second paragraph the text includes a second computable instruction; identifying between the original and the new version of the common text of the third and fourth paragraphs, where the original version of the text of the third segment includes a corresponding first calculate the first target instruction address wherein the new version of the fourth text segment includes a corresponding second calculated second target instruction address; start address by a first difference between the third and fourth function unit and between the first and second function unit with The second difference between the start address of the first instruction to modify the value, to generate a second command value can be calculated from the second instruction; and the value is replaced with the second instruction of the first instruction of the first instruction to calculate the value.

一个实施例的方法进一步包括通过修改原始版本中的数据指针值来去除包括指向原始和新版本所共有的数据段的数据指针的指令中的所识别差别,其中使用由当前数据指针所指向的原始版本中的数据段的开始地址与新版本中的对应数据段的开始地址之间的差别来修改数据指针值。 The method of an embodiment further includes a pointer value by modifying the data in the original version to remove the identified differences include data pointer pointing to the original and new versions of the shared data segment of the instruction, which is used by the current data pointer is original the difference between the start address start address and a new version of the corresponding data segment in the versions of the data segment to modify the data between the pointer value.

去除包括数据指针的指令中的所识别差别进一步包括:识别原始和新版本之间所共有的第一和第二代码段,其中原始版本中的第一代码段包括第一数据指针,而新版本中的第二代码段包括第二数据指针;识别原始和新版本之间所共有的第一和第二数据单元,其中原始版本中的第一数据单元包括对应第一数据指针的第一目标地址,其中新版本中的第二数据单元包括对应第二数据指针的第二目标地址;从第二数据指针产生第二数据指针值;以及用第二数据指针值替换第一数据指针的第一数据指针值。 Removal instruction includes data pointers of the identified differences further comprising: identifying between the original and the new version of the first and second common code segment, where the original version of the first code section comprises a first data pointer, and the new version The second code segment includes a second data pointer; between the original and the new version to identify common first and second data unit, where the original version of the first data unit includes data corresponding to the first pointer to a first destination address wherein the new version of the second data unit includes a second data pointer corresponding to a second destination address; generating a second data pointer value from the second data pointer; data pointer with a first and a second replacement data of a first data pointer value pointer value. 一个实施例的第二数据指针值的产生包括用第一和第二数据单元的开始地址之间的差别来修改第一数据指针值。 Generating a second data pointer value to one embodiment comprises the difference between the start address of the first and second data units between a first modifying the data pointer value.

一个实施例的方法进一步包括产生包括具有经修改数据指针的指令的原始文件的修改版本。 A method of an embodiment further includes generating a modified version includes instructions have modified the data pointer of the original file. 一个实施例的方法进一步包括合并共有数据单元以形成共有数据块。 A method of an embodiment further comprises a data unit to form a combined total of a total of a data block. 一个实施例的合并包括:当原始版本的第一数据单元与新版本的第一数据单元大小相等、原始版本的第一数据单元的结束地址等于原始版本的第二数据单元的开始地址以及新版本的第一数据单元的结束地址等于新版本的第二数据单元的开始地址时,组合原始版本的第一和第二数据单元并组合新版本的对应第一和第二数据单元以形成共有数据块;以及对另外的可合并数据单元重复该组合操作。 Merge an embodiment comprises: When the original version of the first data unit and a new version of the first data unit size equal to the end of the address of the original version of the first data unit is equal to the starting address of the original version of the second data unit and a new version at the end of the address of the start address of the first data unit is equal to the new version of the second data unit, a combination of the original version of the first and second data units and combining the new version of the corresponding first and second data unit to form a total data block ; and repeating the combined operation of additional data elements can be combined. 所述合并进一步包括合并共有文本段以形成共有函数块。 The merger further comprise the consolidated total text segment to form a total of function blocks. 所述合并还可包括:当原始版本的第一文本段与新版本的第一文本段大小相等、原始版本的第一文本段的结束地址等于原始版本的第二文本段的开始地址以及新版本的第一文本段的结束地址等于新版本的第二文本段的开始地址时,组合原始版本的第一和第二文本段并组合相应新版本的对应第一和第二文本段以形成共有函数块;以及对另外的可合并文本段重复该组合操作。 The merger may also include: When the first paragraph of the original version of the text with the new version of the first text segment size equal to the end of the address of the original version of the first text segment is equal to the start address and a new version of the original version of the second paragraph of the text At the end of the address of the first text segment equal to the starting address of the new version of the second paragraph of text, a combination of the original version of the first and second paragraphs of text and text corresponding to the combination of the first and second sections corresponding to the formation of a new version of a total function block; and repeating the combined operation can be combined for additional text segment.

上述用于预处理文件的原始和新版本作为在原始和新版本之间的差别文件产生的部分的系统包括相关的方法。 Part of the system above the original and new versions for pre-processing document as between the original and new versions of the difference file generated including related methods. 这些方法当中有一种方法用于执行文件差分,包括:接收电子文件的原始版本和新版本;识别原始和新版本所共有的代码单元;识别代码单元所共有的指令,其中所述指令包括有关对应文件的另一部分的指令值;从原始版本的第一指令解码第一指令值;从新版本的第二指令产生第二指令值,其中第二指令对应于第一指令;用第二指令值替换第一指令的第一指令值;以及产生包括具有第二指令值的第一指令的原始文件的修改版本。 Among these methods there is a method for performing a differential file, comprising: receiving the original version and the new version of the electronic document; identifying the original and the new version of the shared code units; common unit identification code instructions, wherein said instruction includes information corresponding to Another part of the file command value; a first instruction from a first instruction decoded version of the original value; generating a second instruction from the new version of the second command value, wherein the second instruction corresponding to a first instruction; replace the first value with the second instruction The first instruction is an instruction value; and generating a first instruction including the original file with the command value of the second modified version.

一个实施例的方法进一步包括从相关的映射文件中提取共有代码单元,其中所述共有代码单元包括共有函数单元和共有数据单元。 A method of an embodiment further comprises extracting a total of code units from the relevant map file, where the total of the code unit includes a total function unit and common data elements.

一个实施例的方法进一步包括合并代码单元的共有函数单元以形成共有函数块。 A method of an embodiment further includes a merge code unit total function unit to form a total of function blocks. 一个实施例的合并包括:当原始版本的第一函数单元与新版本的第一函数单元大小相等、原始版本的第一函数单元的结束地址等于原始版本的第二函数单元的开始地址以及新版本的第一函数单元的结束地址等于新版本的第二函数单元的开始地址时,组合原始版本的第一和第二函数单元并组合新版本的对应第一和第二函数单元以形成共有函数块;以及对另外的可合并函数单元重复该组合操作。 Merge an embodiment comprises: a first function when the original version and the new version of the first unit cell size equal to the function, the end address of the original version of the first function unit is equal to the start address of the second version of the original and the new version of the function unit At the end of the address of the first function unit is equal to the new version of the start address of the second function unit, a combination of the original version of the first composition and the second function unit and the new version of the function unit corresponding to the first and second blocks to form a total function ; and repeating the combined operation of the additional function unit can be combined. 一个实施例的方法进一步包括编码所述共有函数块。 The method of an embodiment further comprises encoding the function blocks total.

一个实施例的方法进一步包括合并代码单元的共有数据单元以形成共有数据块。 A method of an embodiment further comprises code means for merging data units to form a total of a total of a data block. 一个实施例的合并包括:当原始版本的第一数据单元与新版本的第一数据单元大小相等、原始版本的第一数据单元的结束地址等于原始版本的第二数据单元的开始地址以及新版本的第一数据单元的结束地址等于新版本的第二数据单元的开始地址时,组合原始版本的第一和第二数据单元并组合新版本的对应第一和第二数据单元以形成共有数据块;以及对另外的可合并数据单元重复该组合操作。 Merge an embodiment comprises: When the original version of the first data unit and a new version of the first data unit size equal to the end of the address of the original version of the first data unit is equal to the starting address of the original version of the second data unit and a new version at the end of the address of the start address of the first data unit is equal to the new version of the second data unit, a combination of the original version of the first and second data units and combining the new version of the corresponding first and second data unit to form a total data block ; and repeating the combined operation of additional data elements can be combined. 所述方法可以进一步包括编码共有数据块。 The method may further comprise a total coded data block.

在一个实施例的方法中,原始和新版本所共有的代码单元是共有函数单元,其中第一指令包括第一可计算指令,而第二指令包括第二可计算指令,其中产生第二指令值包括用包括目标地址的原始和新版本的共有函数单元的开始地址之间的第一差别以及用包括第一和第二可计算指令的共有函数单元的开始地址之间的第二差别来修改第一指令值。 In one embodiment of the method, the original and new versions of the code unit is a total of a total function unit, wherein the first instruction includes a first instruction is calculated, and the calculated second instruction includes a second instruction, wherein the second command value generating includes a first start address differences include the original and new versions of Total target address of the function unit and a second difference between the start address comprises first and second instruction of a total computable function unit between the modified first a command value.

一个实施例的方法的代码单元包括函数单元。 The method of an embodiment includes a function unit of code units. 在这些方法中,产生第一指令值包括产生第一可计算指令的当前指令地址与第一可计算指令的目标地址之间的差别。 In these methods, the difference between a first command value generating comprises generating a first instruction of the current instruction address calculated first calculated target instruction addresses. 产生第二指令值包括:产生第一可计算指令的当前指令地址与第一可计算指令的目标地址之间的差别;产生新版本的第一共有函数单元的开始地址与原始版本的对应第一共有函数单元的开始地址之间的差别;以及产生新版本的第二共有函数单元的开始地址与原始版本的对应第二共有函数单元的开始地址之间的差别。 Generating a second command value comprising: generating a first calculate the difference between the current instruction address and instruction first calculate the instruction target addresses; generating a start address of the new version of the first total function unit with the original version of the corresponding article and the difference between the start address start address generating total new version of the second function unit corresponds with the original version of the second unit between total function; the difference between the start address of a function units total between.

在一个实施例的一些方法中,代码单元包括数据单元而指令包括数据指针。 In some embodiments of the method, the code unit includes a data unit and the instruction includes data pointers.

在一个实施例的方法中,原始和新版本所共有的代码单元是共有数据单元,其中第一指令包括第一数据指针而第二指令包括第二数据指针,其中第一指令值包括第一数据指针值而第二指令值包括第二数据指针值,其中产生第二指令值包括通过用第一和第二数据单元的开始地址之间的差别修改第一数据指针值来产生第二数据指针值。 In one embodiment of the method, the original and new versions of the code unit is a total of a total of a data unit, wherein the first instruction comprises a first and a second data pointer instructions comprises a second data pointer, wherein the first instruction includes a first data value the pointer value and the second command value includes a second data pointer value, wherein the second command value generating comprises generating a second data pointer value by modifying the first data start address pointer value by the difference of the first and second data units between .

一个实施例的方法进一步包括在原始文件的修改版本与新文件之间执行文件差分并产生差别文件。 A method of an embodiment further comprises performing a differential file between the modified version of the original file and the difference file and generates a new file. 该方法还进一步包括:传送差别文件到便携式处理系统;以及用差别文件在便携式处理系统中产生新文件版本。 The method further comprises: transferring the difference file to a portable processing system; and generating a new file in the portable version of the file with the difference processing system. 一个实施例的方法还进一步包括:合并代码单元的共有函数单元以形成共有函数块;合并代码单元的共有数据单元以形成共有数据块;以及编码共有函数块和共有数据块以用于在便携式处理系统中产生新文件版本。 A method of an embodiment further includes: Consolidated code means total function unit to form a total of function blocks; merge code means total data unit to form a total data blocks; and a coding function block and a total of a total of data blocks for portable processing generate a new version of the file system.

上述用于预处理文件的原始和新版本作为原始和新版本之间的差别文件产生的部分的系统还包括附加的相关的方法。 Part of the system above the original and new versions for pre-processing document file as the difference between the original and the new version also includes the generation of additional related methods. 这些方法当中有一种方法用于判定电子文件之间的差别,包括:接收电子文件的原始版本和新版本;识别原始和新版本之间所共有的第一和第二函数单元,其中原始版本中的第一函数单元包括第一可计算指令而新版本中的第二函数单元包括第二可计算指令;识别原始和新版本之间所共有的第三和第四函数单元,其中原始版本中的第三函数单元包括对应第一可计算指令的第一目标地址,其中新版本中的第四函数单元包括对应第二可计算指令的第二目标地址;从第二可计算指令产生第二指令值;用第二指令值替换第一可计算指令的第一指令值;以及产生包括具有第二指令值的第一指令的原始文件的修改版本。 Among these methods there is a method for determining the difference between an electronic document, comprising: receiving an electronic file of the original and new versions; identifying the first and the second function unit between the original and new versions of common, where the original version a first function unit comprises a first instruction to calculate a new version of the second unit includes a second computable function instruction; the third and fourth function unit identification between the original and new versions of common, where the original version The third function unit comprises a first instruction corresponding to first calculate the target address, wherein the new version of the fourth function unit includes a corresponding calculated second target address of the second instruction; generating a second command values calculated from the second instruction ; value is replaced with the second instruction of the first instruction of the first instruction to calculate value; and generating include the original file with the first instruction of the second instruction value modified version.

在所述方法下产生第二指令值包括用第三和第四函数单元的开始地址之间的第一差别以及用第一和第二函数单元的开始地址之间的第二差别来修改第一指令值。 Generating a second instruction in said method comprises a first difference value of the start address of the third and fourth function unit and a second difference between the first and the start address of the second function unit between a first modified command value.

一个实施例的方法进一步包括:识别原始和新版本之间所共有的第一和第二代码段,其中原始版本中的第一代码段包括第一数据指针而新版本中的第二代码段包括第二数据指针;识别原始和新版本之间所共有的第一和第二数据单元,其中原始版本中的第一数据单元包括对应第一数据指针的第一目标地址,其中新版本中的第二数据单元包括对应第二数据指针的第二目标地址;从第二数据指针产生第二数据指针值;用第二数据指针值替换第一数据指针的第一数据指针值;以及产生包括具有第二数据指针值的第一数据指针的原始文件的修改版本。 A method of an embodiment further comprises: identifying between the original and the new version of the common first and second code segment, where the original version of the first code segment includes a first data pointer and the new version includes a second code segment recognition between the original and new versions have in common the first and second data unit, where the original version of the first data unit includes data corresponding to the first pointer to a first destination address, in which the new version of the first; a second data pointer second data unit includes a second data pointer corresponding to a second destination address; generating a second data pointer value from the second data pointer; replace the value of the first pointer with a second data a first data pointer data pointer value; and generating a first comprising Two modified versions of a first data pointer value of the pointer to the original data file. 在一个实施例中产生第二数据指针值包括产生由当前数据指针指向的原始版本中的数据段的开始地址与新版本中的对应数据段的开始地址之间的差别。 Generating a second data pointer value comprises generating a difference in the start address start address with the new version by the current data pointer to the original version of the data segment of the corresponding data segment between one embodiment.

一个实施例的方法进一步包括合并共有函数单元以形成共有函数块。 A method of an embodiment further comprises a function unit to form a combined total of a total of the function block.

一个实施例的方法进一步包括合并共有数据单元以形成共有数据块。 A method of an embodiment further comprises a data unit to form a combined total of a total of a data block.

一个实施例的方法进一步包括使用原始文件的经修改版本和新文件来产生差别文件。 A method of an embodiment further includes the use of a modified version of the original file and the new file to generate the difference file. 所述方法还进一步包括:传送差别文件到便携式处理系统;以及用差别文件在便携式处理系统中产生新文件版本。 The method further comprising: transferring the difference file to a portable processing system; and generating a new file in the portable version of the file with the difference processing system. 上述用于预处理文件的原始和新版本作为原始和新版本之间的差别文件产生的部分的系统包括计算机可读介质。 Part of the system above the original and new versions for pre-processing document file as the difference between the original and the new version includes a computer-readable medium produced. 一个实施例的计算机可读介质包括可执行指令,当所述指令在处理系统中执行时,通过以下减小了包括电子文件的原始版本和新版本之间的代码差别的差别文件大小:对应于由代码行删除、代码行添加以及代码行修改中的至少一种所引起的地址偏移,来识别原始和新版本之间的差别;通过使用原始版本的文本段的地址与新版本的对应文本段的地址之间的至少一种关系修改原始版本的指令目标地址,来去除原始和新版本所共有的文本段中的所识别差别;以及产生包括具有经修改目标地址的指令的原始文件的修改版本。 A computer-readable medium embodiment includes executable instructions, the instructions when executed in a processing system, by reducing the code differences include the electronic files of the original version and the new version of the difference between file size: corresponds to the Delete the line of code, line of code and address at least one line of code modification caused by the shift to recognize the difference between the original and the new version; through the address with the new version using the original version of the text segment corresponding to text addresses at least one relationship between the modification of the original version of the instruction target address, to remove the identified differences between the original and the new version of the common text segments; and generating include instructions have revised the target address of the original file changes version.

本发明的各方面可以实现为编程到多种电路中的功能性,所述电路包括可编程逻辑器件(PLD)如现场可编程门阵列(FPGA)、可编程阵列逻辑(PAL)器件、电可编程逻辑和存储器器件及标准的基于蜂窝的器件,以及专用集成电路(ASIC)。 Aspects of the invention may be implemented as a programmed into a variety of functional circuit, said circuit comprising a programmable logic device (PLD) such as a field programmable gate array (FPGA), programmable array logic (PAL) devices, electrically programming logic and memory devices and standard cell-based devices, as well as application specific integrated circuits (ASIC). 实现本发明的各方面的一些其他可能性包括:带存储器的微控制器(如电子可擦除可编程只读存储器(EEPROM))、嵌入式微处理器、固件、软件等等。 The present invention is to achieve a number of other aspects of the possibilities include: microcontrollers with memory (such as electronically erasable programmable read only memory (EEPROM)), embedded microprocessors, firmware, software, and so on. 此外,本发明的各方面可以在具有基于软件的电路仿真、离散逻辑(顺序的和组合的)、定制器件、模糊(神经系统的)逻辑、量子器件以及任意以上器件类型的混合的微处理器中实施。 In addition, various aspects of the present invention may have a software-based circuit emulation, discrete logic (and the combination of the order), custom devices, fuzzy (nervous system) hybrid microprocessor logic, quantum devices, and any of the above types of devices implemented. ˇ当然基础的器件技术可以多种组成类型提供,例如象互补金属氧化物半导体(CMOS)的金属氧化物半导体场效应晶体管(MOSFET)技术、象发射极耦合逻辑(ECL)的双极技术、聚合物技术(例如硅共轭聚合物和金属共轭聚合物金属结构)、混合模拟和数字等等。 * Of course, the basis of the type of device technology can provide a variety of composition, e.g., as complementary metal oxide semiconductor (CMOS) metal oxide semiconductor field effect transistor (MOSFET) technologies like emitter-coupled logic (ECL) bipolar technology, the polymerization biotechnology (for example, silicon-conjugated polymer and metal-conjugated polymer metal structures), mixed analog and digital, and so on.

除非上下文清楚地需要,否则在整个说明和权利要求中,词“包括”应解释为与排除或穷尽的意思相对的内含的意义;即,是“包括但不限于”的意思。 Unless the context clearly requires otherwise, throughout the description and claims, the word "including" should be interpreted as meaning an exclusive or exhaustive sense inherent in opposite; namely, that "includes but is not limited to" means. 使用单数或复数的词也分别包括复数和单数。 Singular or plural words also include the plural and singular. 另外,当用于本申请中时,词“在此”、“在下面”、“以上”、“以下”以及类似词应指整个该申请而非该申请的任何特殊部分。 In addition, when used in this application, the word "here", "below", "above", "below", and similar words should refer to any particular part of the application rather than the entire application. 当关于两个或更多条目的列表来使用词“或”时,该词覆盖所有以下对该词的理解:列表中的任何条目、列表中的所有条目以及列表中的条目的任意组合。 When on two or more items to the list using the word "or", the term covering all of the following understanding of the word: any of the entries, as well as any combination of all of the entries in the list of entries in the list.

以上对本发明实施例的说明不是要穷尽或把本分明限制为所公开的精确形式。 The above described embodiments of the present invention is not intended to be exhaustive or to limit the present clearly the precise form disclosed. 尽管为了说明的目的在此描述了本发明的特定实施例和例子,如本领域的技术人员将认识到的,在本发明的范围内进行各种等效的修改是可能的。 Although for purposes of illustration in this description of the particular embodiment of the present invention and examples, as those skilled in the art will recognize various equivalent modifications are possible within the scope of the present invention. 这里提供的本发明的讲授可应用于其他处理系统和通信系统,而不仅用于上述的文件差分系统。 Teachings of the present invention, there is provided can be applied to other processing systems and communication systems, and not only for the above file differential system.

上述各种实施例的元素和行为可以组合以提供进一步的实施例。 Elements and acts of the various embodiments described above can be combined to provide further embodiments. 可以根据上述详细说明而对本发明进行这些和其他的改变。 The present invention may be carried out in accordance with these and other changes in the foregoing detailed description.

所有以上引用和美国专利及专利申请通过引用结合于此。 All the above-cited U.S. patents and patent applications and incorporated herein by reference. 如果需要,可以修改本发明的各方面,采用上述各种专利和申请的系统、功能和概念以提供本发明进一步的实施例。 If desired, you can modify aspects of the present invention, the use of the above patents and applications systems, functions and concepts of the present invention to provide further embodiments.

总之,在以下权利要求中,所使用的术语不应理解为把本发明限制于说明书和权利要求中所公开的特定实施例,而应理解为包括工作在权利要求下以提供文件差分的所有处理系统。 In short, in the following claims, the terms used should not be construed to limit the invention to the specification and the claims to the specific embodiments disclosed, but should be understood to include work in a differential file claims to provide all the processing system. 相应地,本发明不受公开内容所限制,而本发明的范围应完全由权利要求来确定。 Accordingly, the present invention is not limited by the disclosure, and the scope of the invention should be determined entirely by the following claims. 尽管本发明的某些方面在下面以某种权利要求的形式出现,发明人以多种权利要求形式设想了本发明的各个方面。 Although some aspects of the present invention appear below a certain claim forms, the inventors contemplate the various aspects of the invention in a variety of claims forms. 例如,仅仅本发明的一个方面描述为在计算机可读介质中实施,但其他方面同样也可以在计算机可读介质中实施。 For example, only one aspect of the present invention is described as embodied in a computer-readable medium, other aspects may also be practiced in a computer-readable medium. 相应地,发明人保留在提出申请之后添加附加权利要求的权利,以便为本发明的其他方面追加这样的附加权利要求形式。 Accordingly, the inventors have the right to submit an application after the claim to add additional reserves, other aspects of the present invention is added to such additional claim forms.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
CN1310388A *21 Feb 200029 Aug 2001英业达股份有限公司Increment mode method for upgrading data file
CN1326135A *24 May 200112 Dec 2001国际商业机器公司Method for using collections of programs and data files by update of versions
CN1409239A *14 Sep 20019 Apr 2003北京瑞星科技股份有限公司Method for upgrading software
US6401239 *22 Mar 19994 Jun 2002B.I.S. Advanced Software Systems Ltd.System and method for quick downloading of electronic files
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
CN101916194A *1 Jun 201015 Dec 2010浙江大学Method for deploying node procedure of wireless sensing network
Classifications
International ClassificationG06F9/445, G06F17/30, G06F12/00
Cooperative ClassificationY10S707/99942, Y10S707/99954, Y10S707/99943, G06F8/68
European ClassificationG06F8/68
Legal Events
DateCodeEventDescription
26 Jul 2006C06Publication
20 Sep 2006C10Entry into substantive examination
25 Mar 2009C14Grant of patent or utility model
21 Dec 2016C41Transfer of patent application or patent right or utility model