Method and apparatus for concurrent reading and calculation of mixed radix DFT/IDFT

10698973 ยท 2020-06-30

Assignee

Inventors

Cpc classification

International classification

Abstract

A method for concurrent reading of mixed radix DFT/IDFT data, a method for concurrent calculation of mixed radix DFT/IDFT method, an apparatus for concurrent reading of mixed radix DFT/IDFT data, and an apparatus for concurrent calculation of mixed radix DFT/IDFT. The method for concurrent reading includes: configuring dual circulation parameters according to the number of points corresponding to the number of series to be computed and the number of points corresponding to the number of series accomplished; then, determining the value size between the maximum number of concurrently read data and the product of the number of points corresponding to the number of series accomplished; and based on the result of determination, calculating the dual circulation parameters corresponding thereto according to the result of determination, and concurrently reading data based on the calculated dual circulation parameters.

Claims

1. A method for concurrent reading of mixed radix DFT/IDFT data, comprising: configuring dual circulation parameters according to a number of points corresponding to a number of series to be computed and a product of the number of points corresponding to the number of series accomplished; determining a value size between a maximum number of concurrently read data and said product of the number of points corresponding to the number of series accomplished; and calculating the dual circulation parameters corresponding thereto according to the result of determination, and concurrently reading data based on the calculated dual circulation parameters.

Description

BRIEF DESCRIPTION OF DRAWINGS

(1) The appendant drawings, as part of the present application, are used for providing a further comprehension for the application. The illustrative embodiments of the application and the explanation thereof are used for explicating the present application, but not for constructing an inappropriate limitation to the application. Apparently, the appendant drawings in the description below are merely some of the embodiments, and for one of the ordinary skill in the art, other drawings may be further obtained based on these drawings, without contributing inventive efforts. In the appendant drawings:

(2) FIG. 1 is a schematic flowchart of the method for concurrent reading of mixed radix DFT and IDFT data, according to one exemplary embodiment;

(3) FIG. 2 is a schematic flowchart of the method for concurrent calculation of mixed radix DFT and IDFT, according to another exemplary embodiment;

(4) FIG. 3 is a schematic flowchart of concurrently reading input twiddle factors and output twiddle factors, multiplying the corresponding items thereof, and using the result of multiplication along with the input twiddle factors as equivalent twiddle factors, according to one exemplary embodiment.

(5) FIG. 4 is a schematic structural diagram of an apparatus for concurrent reading of mixed radix DFT and IDFT data, according to one exemplary embodiment.

(6) FIG. 5 is a schematic structural diagram of an apparatus for concurrent calculation of mixed radix DFT and IDFT, according to one exemplary embodiment.

(7) The appendant drawings and the text description are not intended to limit the scope of protection of the present application by any means, instead, the conception of the application is explained for those skilled in the art by reference to particular embodiments.

DETAILED DESCRIPTION

(8) The addressed technical problems, the adopted technical solutions and the achieved technical effects by the embodiments of the application are described clearly and completely in conjunction with the appendant drawings and the particular embodiments. Apparently, the embodiments described are merely part of the embodiments of the application, rather than all of the embodiments. All the other equivalent and obviously variant embodiments obtained by one of ordinary skill in the art without making inventive efforts, fall within the scope of protection of the application. The embodiments of the application may be particularized in accordance with a plurality of different ways defined and encompassed in the appendant claims.

(9) It should be noted that, in the description below, a number of particular details are given in order to facilitate understanding. However, apparently, these specific details may not be necessary for the implementation of the application.

(10) It should also be noted that, in the circumstances of no explicit definition or no conflict, various embodiments of the application and the technical features therein may be combined with each other to form a technical solution.

(11) The environment in which the embodiments of the application apply is a LTE system in the field of mobile communication, wherein the transmission precoding module of the uplink sending end is a DFT process, and the corresponding receiving end is an IDFT (Inverse Discrete Fourier Transform) process.

(12) According to different number of resources allocated, the number of points N to execute a DFT/IDFT satisfies the following relationship:
N=2.sup.3.sup.5.sup.,12N1536,2,1,0

(13) In a particular implementation, FFT may be employed to accomplish the DFT of 2.sup. points, the rest DFT process of radix 3, radix 5 requires to be accomplished using a mixed radix DFT, wherein the mixed radix DFT is required to execute times of radix 3 computation and times of radix 5 computation, and in an order of first doing radix 3 then doing radix 5.

(14) FIG. 1 exemplarily shows a method for concurrent reading of mixed radix DFT/IDFT data. As shown in FIG. 1, said method may comprise:

(15) S100: Configuring dual circulation parameters according to the number of points corresponding to the number of series to be computed and a product of the number of points corresponding to the number of series accomplished.

(16) S110: Determining the size between a maximum number of concurrently read data and the product of the number of points corresponding to the number of series accomplished.

(17) S120: Calculating the dual circulation parameters corresponding thereto according to the result of determination, and concurrently reading data based on the calculated dual circulation parameters.

(18) The embodiments of the application configure the dual circulation parameters by calculating the information related to the number of points, the data are read with maximum degree of concurrency when the bit width of the processor is certain, and therefore the degree of concurrency is improved.

(19) As an optional implementation of this embodiment, configuring a dual circulation parameters according to the number of points corresponding to the number of series to be computed and the product of a number of points corresponding to the number of series accomplished, may particularly comprise: configuring the following dual circulation parameters according to the number of points corresponding to the number of series to be computed and a product of the number of points corresponding to the number of series accomplished: N.sub.1 is a step size of a first circulation, N.sub.0 is a cycle times of the first circulation, N.sub.2 is a step size of a second circulation,

(20) N N 2
is a cycle times of the second circulation, wherein N.sub.0 represents the number of points corresponding to the number of series to be computed, N.sub.1 represents the product of the number of points corresponding to the number of series accomplished, N.sub.2 is the product of N.sub.1 and N.sub.0.

(21) As an optional implementation of this embodiment, based on the result of determination, calculating the dual circulation parameters corresponding thereto according to the result of determination, and concurrently reading data based on the calculated dual circulation parameters, may particularly comprise:

(22) In the case of M being smaller than or equal to N.sub.1, the read twiddle factors are not processed, and the following dual circulation parameters are calculated:

(23) M is the step size of said first circulation, [N.sub.1/M]N.sub.0 is the cycle times of said first circulation, N.sub.2 is the step size of said second circulation,

(24) N N 2
is the cycle times of said second circulation, wherein said M represents the maximum number of concurrently read data supported by a processor, said N.sub.0 represents the number of points corresponding to the number of series to be computed, said N.sub.1 represents the product of the number of points corresponding to the number of series accomplished, said N.sub.2 is the product of N.sub.1 and N.sub.0;

(25) Said data are concurrently read according to the dual circulation parameters above, and said M data are read each time, until all of said N.sub.1 data are read.

(26) The embodiments of the application configure the dual circulation parameters by calculating the information related to the number of points, the data are read with maximum degree of concurrency when the bit width of the processor is certain, and there is no relevance between data, and no process of lateral operation is required, therefore the degree of concurrency of processing is improved.

(27) As an optional implementation of this embodiment, based on the result of determination, calculating the dual circulation parameters corresponding thereto according to the result of determination, and concurrently reading data based on the calculated dual circulation parameters, may particularly further comprise:

(28) In the case of M being larger than N.sub.1, calculating the value of [M/N.sub.1], making [M/N.sub.1] copies of the read twiddle factors, and concurrently reading the preceding [M/N.sub.1] groups of data by the step size of N.sub.2 according to the following circulation parameters: [M/N.sub.1] is the step size of the first circulation, N.sub.0 is the cycle times of the second circulation, [M/N.sub.1]N.sub.2 is the step size of the second circulation,

(29) N N 2 [ M / N 1 ]
is the cycle times of the second circulation, wherein M represents the maximum number of concurrently reading data supported by the processor, N.sub.0 represents the number of points corresponding to the number of series to be computed, N.sub.1 represents the product of the number of points corresponding to the number of series accomplished, N.sub.2 is the product of N.sub.1 and N.sub.0.

(30) The embodiment of the application configures the dual circulation parameters by calculating the information related to the number of points, the data are read with maximum degree of concurrency when the bit width of the processor is certain, and there is no relevance between data, and no process of lateral operation is required, therefore the degree of concurrency of processing is improved.

(31) The embodiment of the application may be based on any process of mixed radix, considering that the theory of mixed radix may take any number and is unlikely to be exhaustively illustrated, hence, the present application is elaborated using radix 3 as an example in a preferred way.

(32) Assume that: N.sub.0 represents the number of points corresponding to the number of series to be computed; N.sub.1 represents the product of the number of points corresponding to the number of series accomplished; M represents the maximum number of concurrently read data supported by the processor (may be valued at 16); N represents the number of points of a DFT (may be valued at 1200 points).

(33) S200: Calculating N.sub.0 and N.sub.1, N.sub.0=3, N.sub.1=16, and determining the circulation parameters according to N.sub.0 and N.sub.1, wherein the circulation parameters comprise a step size and a cycle times of a first circulation, a step size and a cycle times of a second circulation.

(34) In this step, N.sub.2 is the product of N.sub.0 and N.sub.1, N.sub.1 is the step size of the first circulation, N.sub.0 is the cycle times of the first circulation, N.sub.2 is the step size of the second circulation,

(35) 0 N N 2
is the cycle times of the second circulation, thereby, the following may be derived by calculation: N.sub.2=48, the step size of the first circulation is 16, the cycle times of the first circulation is 3; the step size of the second circulation is 48, and the cycle times of the second circulation is 25.

(36) Step one: Determining the relationship of value size between M and N.sub.1. If M is smaller than N.sub.1, then execute step two; otherwise, execute step three.

(37) Step two: concurrently reading the data according to the following circulation parameters without processing the read twiddle factors, and reading M data each time, until all of the N.sub.1 data are read:

(38) M is the step size of the first circulation, [N.sub.1/M]N.sub.0 is the cycle times of the first circulation, N.sub.2 is the step size of the second circulation,

(39) N N 2
is the cycle times of the second circulation.

(40) At this point, the degree of concurrency is 16, the bandwidth utilization ratio is 1. In this step, the second circulation parameters are constant. In practical applications, the first circulation parameters and the second circulation parameters may be adjusted according to the bit width of the processor.

(41) Step three: Calculating the value of [M/N.sub.1], making [M/N.sub.1] copies of the read twiddle factors, and concurrently reading the preceding [M/N.sub.1] groups of data by the step size of N.sub.2 according to the following circulation parameters: [M/N.sub.1] is the step size of the first circulation, N.sub.0 is the cycle times of the first circulation, [M/N.sub.1]N.sub.2 is the step size of the second circulation,

(42) N N 2 [ M / N 1 ]
is the cycle times of the second circulation.

(43) At this point, the degree of concurrency is [M/N.sub.1]N.sub.1.

(44) Based on the above embodiment, an embodiment of the application further provides a method for concurrent calculation of mixed radix DFT/IDFT. As shown in FIG. 2, said method may be implemented through step S300 to step S320.

(45) S300: Concurrently reading the input twiddle factors and the output twiddle factors, multiplying the corresponding items thereof, and using the result of multiplication along with the input twiddle factors as equivalent twiddle factors.

(46) Particularly, as shown in FIG. 3, this step may comprise: step S301 and step S302.

(47) S301: Concurrently reading the input twiddle factors and the output twiddle factors.

(48) S302: Multiplying the corresponding items of the input twiddle factors and the output twiddle factors, deriving a first and a second group of equivalent twiddle factors, and storing the first and the second group of equivalent twiddle factors along with the input twiddle factors which serve as a third group of equivalent twiddle factors into a cache.

(49) The process of deriving the equivalent twiddle factors are elaborated below using radix 3 as an example in a preferred way.

(50) Step one: Concurrently reading the input twiddle factors (W.sub.N/3.sup.k, W.sub.N/3.sup.2k) and the output twiddle factors (W.sub.N.sup.N/3, W.sub.N.sup.2N/3) and (W.sub.N.sup.2N/3, W.sub.N.sup.4N/3), wherein W is a label of a twiddle factor; and k is the size of data for executing a radix N operation, which is valued at 0,1, . . . N1.

(51) Step two: Multiplying the corresponding items of the input twiddle factors and the output twiddle factors, deriving a first and a second group of equivalent twiddle factors: (W.sub.N/3.sup.kW.sub.N.sup.N/3, W.sub.N/3.sup.2kW.sub.N.sup.2N/3), (W.sub.N/3.sup.kW.sub.N.sup.N/3, W.sub.N/3.sup.2kW.sub.N.sup.2N/3), and storing the first and the second group of equivalent twiddle factors along with the input twiddle factors which serve as a third group of equivalent twiddle factors into a cache.

(52) Wherein, caching may be executed by the following means: the factors of which the input twiddle factors and the output twiddle factors are of a constant value 1. The input twiddle factors are required to store (N.sub.01)N.sub.1 different data according to different data, and the output twiddle factors only have (N.sub.01)(N.sub.01) different data, therefore, the result by multiplying corresponding items thereof has (N.sub.01)(N.sub.01)N.sub.1 different data.

(53) S310: multiplying the equivalent twiddle factors and the input data, and caching the result of multiplication.

(54) Particularly, with radix 3 as an example, this step uses the two groups of equivalent twiddle factors (W.sub.N/3.sup.kW.sub.N.sup.N/3, W.sub.N/3.sup.2kW.sub.N.sup.2N/3) and (W.sub.N/3.sup.kW.sub.N.sup.2N/3, W.sub.N/3.sup.2kW.sub.N.sup.4N/3) obtained from step S302 and the input twiddle factors (W.sub.N/3.sup.k, W.sub.N/3.sup.2k) as three groups of equivalent twiddle factors and multiplies them with the input data.

(55) Wherein, the result of multiplication is W.sub.N/3.sup.kB, W.sub.N/3.sup.2kC, W.sub.N.sup.N/3W.sub.N/3.sup.kB, W.sub.N.sup.2N/3W.sub.N/3.sup.2kC, W.sub.N.sup.2N/3W.sub.N/3.sup.kB, W.sub.N.sup.4N/3W.sub.N/3.sup.2kC, wherein B and C represent the input data.

(56) In an optional embodiment, if there is no complex number computation unit in the processor, then this step caches the result of multiplication of the equivalent twiddle factors, and the real part and imaginary part of the input data.

(57) When this step is being calculated, since the twiddle factors use equivalent twiddle factors in the cache in a computation process for each group, the computation process for each group only comprises a multiplication and an addition computation of the input data and the twiddle factors, there is no prior and posterior relevance of data between the computation process for each group, and this process only needs to be executed once during the 25 computations in the second circulation.

(58) S320: reading the result cached in step S310, and executing corresponding addition or subtraction operation in the second circulation, when the multiplication computation in S310 is executed.

(59) Wherein, as one of the preferred embodiments, using radix 3 as an example, in the case that a complex number computation unit is disposed in the processor, the addition operation may be A+W.sub.N/3.sup.kB+W.sub.N/3.sup.2kC, A+W.sub.N.sup.N/3W.sub.N/3.sup.kB+W.sub.N.sup.2N/3W.sub.N/3.sup.2kC, A+W.sub.N.sup.2N/3W.sub.N/3.sup.kB+W.sub.N.sup.4N/3W.sub.N/3.sup.2kC, wherein A, B, and C represent input data, respectively.

(60) The embodiments of the application multiply the input and the output twiddle factors, and then separate the multiplication and the addition operation completely by caching the result of multiplication of the calculation process, reducing the relevance in the entire computation process, improving the utilization rate of the streamline, and further increasing the computation speed.

(61) In an optional embodiment, if no complex number computation unit is disposed in the processor, then this step comprises a subtraction operation of the product between the equivalent twiddle factors and the real part of the input data and the product between the equivalent twiddle factors and the imaginary part of the input data.

(62) The embodiment of the application separates the multiplication and the subtraction operation completely, so as to improve the utilization rate of the streamline of each component, and further increase the computation speed.

(63) In conclusion, when the embodiment of the application calculates, a multiplication operation between the equivalent twiddle factors and the input data is first executed during each group of computation process, and then the results of multiplications are stored in the cache. The result data of multiplications in the cache are read to perform an addition operation and a subtraction operation when the multiplication operation for the next group of computation is being executed, so as to avoid the idle slot of the arithmetic unit caused by the relevance among data.

(64) Although the various steps are described in accordance with the above sequential order in the above embodiment, one of ordinary skill in the art may understand, in order to implement the effects of this embodiment, various steps are not required to be executed in accordance with such an order, instead, they may be executed simultaneously (concurrently) or in a converse order, all of these simple variations fall within the scope of protection of the application.

(65) Based on the same technical conception as the above embodiment of the method for concurrent reading, the embodiment of the application further provides an apparatus for concurrent reading of mixed radix DFT/IDFT data. As shown in FIG. 4, this apparatus 40 may comprise a point number calculating unit 42, a group number determining unit 44, and a reading unit 46, wherein the point number calculating unit 42 is used for configuring dual circulation parameters according to the number of points corresponding to the number of series to be computed and the product of the number of points corresponding to the number of series accomplished, and concurrently reading the data based on the calculated dual circulation parameters.

(66) This embodiment of the apparatus for concurrent reading of mixed radix DFT/IDFT data configures the dual circulation parameters by calculating the information related to the number of points, when the bit width of the processor is certain, the data are read in a maximum concurrency according to the number of points and the number of computation series, and there is no relevance among data, hence the concurrency of processing is improved and the cycle of computation is reduced.

(67) On the basis of the above embodiment, the point number calculating unit 42 above may further comprise a configuration module. Said configuration module is used for configuring the following dual circulation parameters according to the number of points corresponding to the number of series to be computed and the product of the number of points corresponding to the number of series accomplished: N.sub.1 is the step size of the first circulation, N.sub.0 is the cycle times of the first circulation, N.sub.2 is the step size of the second circulation,

(68) N N 2
is the cycle times of the second circulation, wherein N.sub.0 represents the number of points corresponding to the number of series to be computed, N.sub.1 represents the product of the number of points corresponding to the number of series accomplished, and N.sub.2 is the product of N.sub.1 and N.sub.0.

(69) On the basis of the embodiment shown in FIG. 4, the reading unit 46 may further comprise a first calculation module and a first reading module, wherein the first calculation module is used for calculating the following dual circulation parameters without processing the read twiddle factors in the case of M being smaller or equal to N.sub.1:

(70) M is the step size of the first circulation, [N.sub.1/M]N.sub.0 is the cycle times of the first circulation, N.sub.2 is the step size of the second circulation,

(71) N N 2
is the cycle times of the second circulation; wherein M represents the maximum number of concurrently read data supported by the processor, N.sub.0 represents the number of points corresponding to the number of series to be computed, N.sub.1 represents the product of the number of points corresponding to the number of series accomplished, and N.sub.2 is the product of N.sub.1 and N.sub.0. The first reading module is used for concurrently reading the data according to the dual circulation parameters above, and reading M data each time, until all of N.sub.1 data are read.

(72) On the basis of the embodiments shown in FIG. 4, the reading unit 46 may further comprise a second calculation module, a copying module and a second reading module, wherein the second calculation module is used for calculating the value of [M/N.sub.1], in the case of M being larger than N.sub.1, the copying module is used for making [M/N.sub.1] copies of the read twiddle factors, and the second reading module is used for concurrently reading the preceding [M/N.sub.1] groups of data with a step size of N.sub.2 according to the following dual circulation parameters: M/N.sub.1 is the step size of the first circulation, N.sub.0 is the cycle times of the first circulation, [M/N.sub.1]N.sub.2 is the step size of the second circulation, and

(73) N N 2 [ M / N 1 ]
is the cycle times of the second circulation, wherein M represents the maximum number of concurrently read data supported by the processor, N.sub.0 represents the number of points corresponding to the number of series to be computed, N.sub.1 represents the product of the number of points corresponding to the number of series accomplished, and N.sub.2 is the product of N.sub.1 and N.sub.0.

(74) The explanation related to said embodiment of the apparatus for concurrent reading may refer to the explanation of the embodiment of the method for concurrent reading related thereto, and will not be described repeatedly herein.

(75) It should be noted that, the apparatus for concurrent reading of mixed radix DFT/IDFT data provided by the above embodiment, is merely illustrated with the division of various function modules above, and in the practical application, the above functions may be assigned to be accomplished by various function modules as needed, i.e., the internal structure of the apparatus is divided into various function modules to accomplish all or part of the functions described above.

(76) Furthermore, the embodiment of the application further provides an apparatus for concurrent calculation of mixed radix DFT/IDFT based on the above embodiment of the apparatus for concurrent reading. As shown in FIG. 5, said apparatus 50 may comprise an equivalent twiddle factors calculating unit 52, a caching unit 54 and a data processing unit 56, wherein the equivalent twiddle factors calculating unit 52 is used for concurrently reading the input twiddle factors and the output twiddle factors, multiplying the corresponding items thereof, and using the result of multiplication along with the input twiddle factors as equivalent twiddle factors; the caching unit 54 is used for multiplying the equivalent twiddle factors obtained from the equivalent twiddle factors calculating unit 52 and the input data, and caching the result of multiplication; and the data processing unit 56 is used for reading the result cached in the caching unit 54 and proceeding corresponding addition and subtraction operation when the caching unit 54 executes a multiplication computation in the second circulation.

(77) When the embodiment of the apparatus for concurrent calculation of mixed radix DFT/IDFT performs the computation, the twiddle factors are processed by preference, and the multiplication computation and the addition/subtraction computation are separated, hence the relevance among data is reduced, so as to reduce the idle slot of the entire computation, improve the utilization rate of the streamline, and effectively increase the computation speed of mixed radix DFT and IDFT.

(78) On the basis of the above embodiment, the above equivalent twiddle factors calculating unit 52 may further comprise a concurrent reading module and a caching module, wherein the concurrent reading module is used for concurrently reading the input twiddle factors and the output twiddle factors, and the caching module is used for multiplying the corresponding items of the input twiddle factors and the output twiddle factors, deriving a first and a second group of equivalent twiddle factors, and storing the first and the second group of equivalent twiddle factors along with the input twiddle factors which serve as a third group of equivalent twiddle factors into the cache.

(79) On the basis of the embodiment shown in FIG. 5, the data processing unit may further comprise a complex number computation unit, wherein the complex number computation unit is used for reading the result cached in the caching unit, and proceeding the corresponding addition operation.

(80) The explanation related to said embodiment of apparatus for concurrent calculation may refer to the explanation related to the embodiment of the method for concurrent calculation related thereto, and will not be described repeatedly herein.

(81) It should be noted that, when the apparatus for concurrent calculation of mixed radix DFT/IDFT provided by the above embodiment executes the concurrent calculation, it is only illustrated with the division of the various function modules above, and in the practical application, the above functions may be assigned to different function modules to be accomplished as needed, i.e., the internal structure of the apparatus is divided into various function modules, to accomplish all or part of the functions described above.

(82) It may be understood by one of ordinary skill in the art, that the above apparatus for concurrent reading of mixed radix DFT/IDFT data and the apparatus for concurrent calculation of mixed radix DFT/IDFT may further comprise some other well-known structures, such as a processors, controllers, memories, etc., wherein the memories include but not limit to random access memories, flashes, read only memories, programmable read only memories, volatile memories, non-volatile memories, serial memories, parallel memories, or registers, etc., the processors include but not limit to CPLDs/FPGAs, DSPs, ARM processors, MIPS processors, etc., where these well-known structures are not shown in FIGS. 4-5, to avoid unnecessarily obscuring the embodiments of the disclosure.

(83) It should be understood that the numbers of each module in FIGS. 4-5 are merely illustrative. Each module may be of any numbers.

(84) The embodiment of the apparatus above may be used for executing the embodiment of the corresponding method above, the technical principle, the addressed technical problems and the generated technical effects thereof are similar, one of ordinary skill in the art may clearly learn that the particular operating process and the related explanation of the apparatus described above may refer to the corresponding process in the preceding embodiments of method, and will not be described repeatedly herein. It should be noted that, the embodiment of the apparatus and the embodiment of the method of the application are described respectively, however, the details described for one embodiment may also be applied to the other embodiment. The name of the modules and steps referred to in the embodiments of the application are merely used for distinguishing various modules or steps, and should not be construed as an inappropriate limitation of the application. It should be understood by those skilled in the art that: the modules or steps in the embodiments of the application may be further divided or combined. For example, the modules of the above embodiment may be combined into one module, and may be further divided into a plurality of sub-modules as well.

(85) The above technical solutions provided by the embodiments of the application are introduced in details. The principle and the embodiments of the application are set forth with particular examples herein, however, the explanation of the embodiments above are merely appropriate for facilitating the understanding of the principle of the embodiments of the application; moreover, for those skilled in the art, changes may be made both within the scope of particular embodiments and applications, in accordance with the embodiments of the application.

(86) It should be noted that, the flowchart or block diagram referred to herein are not only limited to the form shown herein, but may also be divided and/or combined in other ways.

(87) It should also be noted that: the labels and characters in the appendant drawings are merely for explaining the present application more clearly, and should not be construed as an inappropriate limitation of the scope of protection of the application.

(88) It should be yet further noted that, the terms first, second, etc. in the description and claims of the application and the appendant drawings described above are used for distinguishing similar objects, rather than for describing or representing a particular order or sequential order. It should understood that the data used this way may be interchanged under suitable circumstances, so that the embodiments of the application described herein may be implemented in an order other than those illustrated or described herein.

(89) The terms comprise, include or any other similar phrases intend to contain all non-exclusive inclusions, so that the processes, methods, articles or devices/apparatuses comprising a series of factors may not only comprise those factors, but also comprise other factors that are not listed explicitly, or also comprise the inherent factors of these processes, methods, articles or devices/apparatuses.

(90) As used herein, the terms module and unit may refer to the software objects or routines executed on the computing system. Various modules described herein may be implemented as an object or a process executed on the computing system (e.g., as an independent thread). Although the systems and methods described herein are preferably implemented with software, implementing with hardware or a combination of software and hardware may also be possible and may be thought of.

(91) Various steps of the application may be implemented with a general purpose computing apparatus, for example, they may be integrated on a single computing apparatus, such as: a personal computer, a server computer, a handheld device or portable device, a tablet device or multi-processor device, and may also be distributed on a network consisted of a plurality of computing apparatuses, which may execute the shown or described steps in an order other than the order herein, or may be implemented by making them into various integrated circuit modules, or by making a plurality of modules or steps thereof into a single integrated circuit module. Therefore, the present application is not limited to any particular hardware or software of the combination thereof.

(92) The method provided by the application may be implemented using a programmable logic, or may be implemented as a computer program software or program module (which comprises a routine, a program, an object, a component, or a data structure, etc., for executing particular tasks or implementing particular abstract data types), for example, it may be a computer program product according to the embodiments of the application, said computer program product is operated to enable the computer to execute the method for demonstration. Said computer program product comprises a computer readable storage medium, which comprises the logic or code part of the computer program, for implementing said method. Said computer readable storage medium may be an internal medium installed in the computer, or may be a movable medium detachable from the main body of the computer (e.g., a storage device utilizing hot plug). Said internal medium includes but not limit to a rewritable non-volatile memory, such as: a RAM, a ROM, a flash or a hard disk. Said movable media includes but not limit to: an optical storage media (e.g. a CD-ROM and a DVD), a magnetic storage medium (e.g. a magnetic tape or a portable hard drive), a medium with an internal rewritable non-volatile memory (e.g., a memory card), and a medium with an internal ROM (e.g., a ROM case).

(93) The present application are not limited to the above embodiments, any variations, modifications, or alternations that one of ordinary skill in the art may think of will fall within the scope of protection of the application, without departing the substantial content of the application.