WO2017091958A1 - 一种数据加扰方法和加扰装置 - Google Patents

一种数据加扰方法和加扰装置 Download PDF

Info

Publication number
WO2017091958A1
WO2017091958A1 PCT/CN2015/096032 CN2015096032W WO2017091958A1 WO 2017091958 A1 WO2017091958 A1 WO 2017091958A1 CN 2015096032 W CN2015096032 W CN 2015096032W WO 2017091958 A1 WO2017091958 A1 WO 2017091958A1
Authority
WO
WIPO (PCT)
Prior art keywords
scrambling
data
circuit
calculation
data block
Prior art date
Application number
PCT/CN2015/096032
Other languages
English (en)
French (fr)
Inventor
李长松
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP15909475.4A priority Critical patent/EP3376725B1/en
Priority to PCT/CN2015/096032 priority patent/WO2017091958A1/zh
Priority to CN201580002380.5A priority patent/CN107431672B/zh
Publication of WO2017091958A1 publication Critical patent/WO2017091958A1/zh
Priority to US15/991,477 priority patent/US10715360B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • H04L25/03828Arrangements for spectral shaping; Arrangements for providing signals with specified spectral properties
    • H04L25/03866Arrangements for spectral shaping; Arrangements for providing signals with specified spectral properties using scrambling
    • H04L25/03872Parallel scrambling or descrambling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/03Shaping networks in transmitter or receiver, e.g. adaptive shaping networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0337Selecting between two or more discretely delayed clocks or selecting between two or more discretely delayed received code signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/913Television signal processing therefor for scrambling ; for copy protection

Definitions

  • the embodiments of the present invention relate to the field of communications, and in particular, to a data scrambling method and a scrambling device.
  • Ethernet interface bandwidth has also increased from 10 Gigabit per second (Gpbs) to 100 Gbps and evolved to 400 Gbps and 1 terabit per second (Tbps).
  • Gpbs Gigabit per second
  • Tbps 1 terabit per second
  • the optical layer of the Ethernet interface dynamically adjusts the transmission rate of the data according to the transmission distance of the data to be transmitted and the quality of the channel used to transmit the data.
  • the interface standard for network devices can be 10 Gbps, 40 Gbps, or 100 Gbps.
  • the interfaces of both communication parties need to adopt matching interface standards.
  • a variable bandwidth interface is required in the above scenario.
  • Variable bandwidth optical layer technology also requires that the electrical layer contain a variable bandwidth interface.
  • a scrambling algorithm is usually employed to reduce the probability that consecutive 0s or consecutive 1s appear in the transmitted serial data.
  • a scrambling device can only scramble a data stream of a certain specification, and cannot scramble a data stream of another specification.
  • the usage scenario of the scrambling device is limited. For example, the requirements of a flexible Ethernet scenario cannot be better met.
  • the scrambling device can only have a data stream composed of two sub-data streams. Scrambling cannot be used to scramble a data stream consisting of 3 sub-streams, nor can it scramble a data stream containing only 1 sub-stream.
  • the embodiment of the invention provides a data scrambling method and a scrambling device, which can scramble the data streams of different specifications, and helps to expand the application scenario of the scrambling device.
  • an embodiment of the present invention provides a data scrambling method, where the method is performed by a scrambling device.
  • the scrambling device includes a plurality of scrambling circuits, the plurality of scrambling circuits including a first scrambling circuit and a second scrambling circuit, the method comprising:
  • the first scrambling circuit performs data calculation on the first data block according to the first scrambling factor to obtain a data calculation result generated by the first scrambling circuit, where the first scrambling factor is determined by a scrambling polynomial a scrambling factor, the first data block belongs to a first sub data stream, and the first sub data stream belongs to a data stream transmitted to the scrambling device;
  • the second scrambling circuit performs data calculation on the second data block and the first parameter in the data stream according to the first scrambling factor to obtain a data calculation result generated by the second scrambling circuit, where
  • the second data block is a data block located in the data stream after the first data block and adjacent to the first data block, and the second data block belongs to the second sub a data stream, the second sub-data stream belongs to the data stream, and when the second sub-data stream and the first sub-data stream are the same sub-data stream, the first parameter is the first a data calculation result generated by the scrambling circuit, when the second sub data stream and the first sub data stream are two different sub data streams, the first parameter is zero;
  • the second scrambling circuit performs feedback calculation on the feedback data provided by the third scrambling circuit according to the second scrambling factor to obtain a feedback calculation result generated by the second scrambling circuit
  • the third scrambling circuit is Decoding a scrambling circuit of the plurality of scrambling circuits, wherein the plurality of data blocks in the second sub-stream are acquired by the plurality of scrambling circuits in one clock cycle, and the plurality of second sub-streams
  • the last data block of the data blocks is acquired by the third scrambling circuit, and the last data block is the last data block to be transmitted when the plurality of data blocks are to be serially transmitted, the second plus
  • the scrambling factor is a scrambling factor determined by the scrambling polynomial and a position of the second data block in the second sub-stream
  • the feedback data including scrambling generated by the third scrambling circuit Data is data obtained after registration of one clock cycle, or the feedback data includes a first result obtained by feedback calculation of feedback data provided by the third scrambling
  • the second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambling generated by the second scrambling circuit Data, the second scrambling circuit outputs the scrambled data generated by the second scramble circuit.
  • the second scrambling circuit performs the second data block and the first parameter in the data stream according to the first scrambling factor Data Calculating to obtain the data calculation result generated by the second scrambling circuit, comprising:
  • the second scrambling circuit multiplies the first scrambling parameter of the first scrambling factor by the first parameter to obtain a first multiplication result generated by the second scrambling circuit;
  • the second scrambling circuit multiplies the second scrambling parameter of the first scrambling factor and the second data block to obtain a second multiplication result generated by the second scrambling circuit;
  • the second scrambling circuit performs an exclusive-OR calculation on the first multiplication result and the second multiplication result to obtain a data calculation result generated by the second scramble circuit.
  • the second scrambling circuit is configured to the third scramble circuit according to the second scrambling factor
  • the feedback data is provided for feedback calculation to obtain a feedback calculation result generated by the second scrambling circuit, including:
  • the second scrambling circuit performs an exclusive-OR calculation on the feedback data provided by the third scrambling circuit according to a constant matrix in the second scrambling factor and a power exponent of the constant matrix to obtain the second plus An XOR result generated by the scrambling circuit, the power exponent being determined according to a position of the second data block in the second sub data stream;
  • the second scrambling circuit performs a shift operation on the XOR result according to a position of the second data block in the second sub data stream, to obtain a feedback calculation result generated by the second scrambling circuit.
  • the second scrambling circuit is configured according to the first scrambling The factor performs data calculation on the second data block and the first parameter in the data stream to obtain a data calculation result generated by the second scrambling circuit, including:
  • each data block in the data stream is n bits
  • the second data block is a jth data block in the data stream
  • D′ n,j is a data calculation result generated by the second scrambling circuit
  • D n,j is the second data block
  • N j ⁇ 1 is the first parameter
  • M is the first a first scrambled parameter of the scrambling factor
  • F being a second scrambled parameter of the first scrambling factor
  • the P next is a value of a state of a next clock cycle of the status register in the scrambling device
  • the P curr is a value of a state of a current clock cycle of the status register
  • the second scrambling circuit performs feedback calculation on the feedback data provided by the third scrambling circuit according to the second scrambling factor to obtain a feedback calculation result generated by the second scrambling circuit, including:
  • D′′ n,j is a feedback calculation result generated by the second scrambling circuit, a scrambling data generated for the third scrambling circuit, M j being a third scrambled parameter of the second scrambling factor;
  • the second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambling generated by the second scrambling circuit Data, including:
  • the second is a scrambling data generated by the scramble circuit
  • D 'n, j is the calculation result data generated by the second scramble circuit
  • D "n, j is the generated second scrambling feedback computation circuit result.
  • the second scrambling circuit is configured according to the first scrambling The factor performs data calculation on the second data block and the first parameter in the data stream to obtain a data calculation result generated by the second scrambling circuit, including:
  • each data block in the data stream is n bits
  • the second data block is a jth data block in the data stream
  • the first data block is a j-th in the data stream 1 data block
  • D n, i is in the second sub data stream a data block
  • G T -1 ⁇ F
  • F is the second scrambled parameter of the first scrambling factor
  • P next A ⁇ P curr +B ⁇ d i ;
  • P next is the value of the state of the next clock cycle of the status register in the scrambling device
  • P curr is the state of the current clock cycle of the status register.
  • a n T -1 ⁇ M ⁇ T;
  • the second scrambling circuit performs feedback calculation on the feedback data provided by the third scrambling circuit according to the second scrambling factor to obtain a feedback calculation result generated by the second scrambling circuit, including:
  • V" n, j T -1 ⁇ D" n, j , D" n, j is a feedback calculation result generated by the second scrambling circuit, Scrambling data generated for the third scrambling circuit, Is a fourth scrambled parameter of the second scrambling factor;
  • the second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambling generated by the second scrambling circuit Data, including:
  • D 'n, j the calculation result data generated by the second scramble circuit
  • D "n, j the generated second scrambling feedback computation circuit result.
  • an embodiment of the present invention provides a scrambling device, where the scrambling device includes a plurality of scrambling circuits, where the plurality of scrambling circuits include a first scrambling circuit and a second scrambling circuit, where
  • the first scrambling circuit is configured to perform the following steps:
  • the second scrambling circuit is configured to perform the following steps:
  • the second data block is a data block located in the data stream before the first data block and adjacent to the first data block when serially transmitted
  • the second data block belongs to a second sub data stream
  • the second The sub data stream belongs to the data stream
  • the first parameter is a data calculation result generated by the first scrambling circuit
  • the third scrambling circuit is in the multiple scrambling circuits a scrambling circuit, wherein a plurality of data blocks in the second sub-stream are acquired by the plurality of scrambling circuits in one clock cycle, and a last one of the plurality of data blocks in the second sub-stream
  • the data block is acquired by the third scrambling circuit
  • the last data block is a data block that is last transmitted when the plurality of data blocks are to be serially transmitted
  • the second scrambling factor is determined by the adding a scrambling factor and a scrambling factor determined by the position of the second data block in the second sub-stream, the feedback data including one clock cycle registration of the scrambled data generated by the third scrambling circuit
  • the feedback data includes a first result obtained by feedback calculation of feedback data provided by the third scramble circuit that is registered for one clock cycle
  • the scrambled data generated by the second scramble circuit is output.
  • the second scrambling circuit is specifically configured to perform the following steps:
  • the second scrambling circuit is specifically configured to perform the steps:
  • the second scrambling circuit is specifically configured to perform the following steps :
  • each data block in the data stream is n bits
  • the second data block is a jth data block in the data stream
  • the first data block is a j-th in the data stream 1 data block
  • D′ n,j is a data calculation result generated by the second scrambling circuit
  • D n,j is the second data block
  • N j ⁇ 1 is the first parameter
  • M is the first a first scrambled parameter of the scrambling factor
  • F being a second scrambled parameter of the first scrambling factor
  • the P next is a value of a state of a next clock cycle of the status register in the scrambling device
  • the P curr is a value of a state of a current clock cycle of the status register
  • D′′ n,j is a feedback calculation result generated by the second scrambling circuit, a scrambling data generated for the third scrambling circuit, M j being a third scrambled parameter of the second scrambling factor;
  • Feedback calculation is performed on the feedback data generated by the third scrambling circuit by:
  • D "n, j is the calculated result of the second feedback circuit generates the scramble, a scrambling data generated for the third scrambling circuit, M j being a third scrambled parameter of the second scrambling factor;
  • the XOR calculation is performed on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit by:
  • the second is a scrambling data generated by the scramble circuit
  • D 'n, j is the calculation result data generated by the second scramble circuit
  • D "n, j is the generated second scrambling feedback computation circuit result.
  • the second scrambling circuit is specifically configured to perform the following steps :
  • each data block in the data stream is n bits
  • the second data block is in the data stream a jth data block, the first data block being a j-1th data block in the data stream
  • V′ n,j T ⁇ 1 ⁇ D′ n,j , D′ n,j is a data calculation result generated by the second scrambling circuit, and D n,i is a second data block to which the second data block belongs.
  • G T -1 ⁇ F, where F is the second scrambled parameter of the first scrambling factor,
  • P next A ⁇ P curr +B ⁇ d i ;
  • P next is the state of the next clock cycle of the status register
  • P curr is the state of the current clock cycle of the status register.
  • a n T -1 ⁇ M ⁇ T;
  • V" n, j T -1 ⁇ D" n, j , D" n, j is a feedback calculation result generated by the second scrambling circuit, Scrambling data generated for the third scrambling circuit, Is a fourth scrambled parameter of the second scrambling factor;
  • the feedback calculation result generated by the scrambling circuit is subjected to exclusive-OR calculation to obtain the scrambled data generated by the second scrambling circuit, including:
  • D 'n, j the calculation result data generated by the second scramble circuit
  • D "n, j the generated second scrambling feedback computation circuit result.
  • the first aspect, the first possible to the fourth possible implementation manner of the first aspect, the second aspect, and the first possible to the fourth possible implementation manner of the second aspect in the data stream
  • Different sub-data streams can be sent to different destination devices for differentiation. All data blocks included in the same substream are destined for the same destination device.
  • a substream can contain one or more blocks of data.
  • the first aspect, the first possible to the fourth possible implementation manner of the first aspect, the second aspect, and the first possible to the fourth possible implementation manner of the second aspect the first
  • the first scrambling factor determined by the scrambling polynomial may refer to one or more scrambling parameters that need to be used in data calculation.
  • the data calculation performed by the first scrambling circuit refers to the calculation method for the data block to be scrambled (for example, the first data block), and the data block to be scrambled needs to be used in the data calculation without using the feedback data and Feedback calculation results.
  • the first scrambling factor determined by the scrambling polynomial may refer to one or more scrambling parameters that need to be used in data calculation.
  • the data calculation performed by the second scrambling circuit refers to the calculation method for the data block to be scrambled (for example, the second data block), and the data block to be scrambled needs to be used in the data calculation without using the feedback data and Feedback calculation results.
  • the first aspect, the first possible to the fourth possible implementation manner of the first aspect, the second aspect, and the first possible to the fourth possible implementation manner of the second aspect in the data stream
  • the adjacent first data block and the second data block included may belong to different sub data streams.
  • the first data block and the second data block may also belong to the same sub data stream.
  • Whether the first data block and the second data block belong to the same sub-data stream may be determined according to whether the first data block and the second data block are sent to the same destination device.
  • a substream can contain one or more blocks of data.
  • the scrambling circuit for processing the last one of the plurality of data blocks included in the second sub-data stream is defined as Three scrambling circuits.
  • the third scrambling circuit and the second scrambling circuit refer to the same scrambling circuit.
  • the feedback data provided by the third scrambling circuit can be implemented in two ways.
  • One implementation manner is that the feedback data includes data obtained by registering the scrambled data generated by the third scrambling circuit for one clock cycle.
  • the feedback data includes a first result obtained by feedback calculation of the feedback data provided by the third scrambling circuit that is registered for one clock cycle, and a data calculation result generated by the third scrambling circuit. The result of the XOR calculation.
  • the first possible to the fourth possible implementation manner of the first aspect, the second aspect, and the first possible to the fourth possible implementation manner of the second aspect in the feedback calculation
  • the specific representation of the second scrambling factor determined by the scrambling polynomial may be a constant matrix sum and a power exponent of the constant matrix.
  • the feedback calculation can be performed by performing an exclusive-OR calculation on the feedback data provided by the third scrambling circuit by using the feedback data provided by the third scrambling circuit and the power exponent of a constant matrix.
  • the scrambling device may scramble the data stream including the first data block and the second data block.
  • the first data block and the second data block may belong to the same sub data stream, or may belong to different sub data streams.
  • the specification of the data stream is different when the first data block and the second data block belong to the same sub data stream, when the first data block and the second data block belong to different sub data streams.
  • the specification of the data stream Therefore, the scrambling device can scramble the data streams of different specifications.
  • FIG. 1 is a schematic flowchart of a data scrambling method according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of a scrambling apparatus according to an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a location of a scrambling process in an Ethernet interface according to an embodiment of the present invention
  • FIG. 4 is a schematic circuit diagram of performing scrambling processing on a data block according to an embodiment of the present invention
  • FIG. 4-b is a schematic structural diagram of a scrambling apparatus for performing parallel scrambling processing on one data block
  • FIG. 5-a is a schematic diagram of another circuit for performing scrambling processing on a data block according to an embodiment of the present invention.
  • FIG. 5-b is a schematic structural diagram of another scrambling apparatus for performing parallel scrambling processing on one data block
  • FIG. 6 is a schematic diagram of an exclusive OR calculation circuit in a power multiplication calculation according to an embodiment of the present invention.
  • 7-a is a circuit diagram of another method for scrambling a data block according to an embodiment of the present invention.
  • 7-b is a schematic structural diagram of another scrambling device for performing parallel scrambling processing on one data block
  • FIG. 8 is a schematic structural diagram of a scrambling apparatus according to an embodiment of the present invention.
  • the embodiment of the invention provides a data scrambling method and a scrambling device, which can scramble a plurality of data streams of different specifications, and helps to expand the application scenario of the scrambling device.
  • a data scrambling method being performed by a scrambling device, the method being applicable to a scrambling process of a scrambling device for a plurality of data blocks in a data stream.
  • the scrambling device includes a plurality of scrambling circuits.
  • the plurality of scrambling circuits include a first scramble circuit and a second scramble circuit.
  • a data scrambling method provided by an embodiment of the present invention may include the following steps:
  • the first scrambling circuit performs data calculation on the first data block according to the first scrambling factor to obtain a data calculation result generated by the first scrambling circuit.
  • the first scrambling factor is a scrambling factor determined by a scrambling polynomial, and the first data stream belongs to the first sub data stream, and the first sub data stream belongs to the data stream transmitted to the scrambling device.
  • Embodiments of the present invention can be used in the scenario of a CDR circuit.
  • the CDR circuit receives
  • the data needs to be random.
  • the CDR circuit's need for data is that the 0 and 1 in the data are equalized, minimizing the likelihood of a continuous zero and a continuous one.
  • the data can be scrambled to achieve randomness of the data.
  • data needs to be scrambled after 64b/66b encoding.
  • the data may be encoded by other coding methods, which is not limited in the embodiment of the present invention.
  • scrambling is performed on the encoded data stream.
  • the scrambling device obtains the encoded data stream.
  • the data stream includes at least one sub-data stream, and different sub-data streams in the data stream can be sent to different destination devices for distinguishing according to requirements. All data blocks included in the same substream are destined for the same destination device.
  • a substream can contain one or more blocks of data.
  • the sub-data stream and the data block containment relationship are flexible and configurable, and the number of sub-data streams included in one data stream is also flexible and configurable. When the number of data blocks included in the substream in the data stream 1 is different from the number of data blocks included in the substream in the stream 2, the stream 1 and the stream 2 are streams of different specifications.
  • the data stream 1 and the data stream 2 are data streams of different specifications.
  • the data streams all include a plurality of data blocks, and then the scrambling processing of any two adjacent data blocks (referred to as a first data block and a second data block, respectively) in the data stream is described.
  • the first sub-data stream in which the first data block is located and the second sub-data stream in which the second data block is located may be the same sub-data stream, where the first sub-data stream in which the first data block is located and the second sub-data stream in which the second data block is located
  • a substream can also be two different substreams.
  • the first data block and the second data block are two adjacent data blocks, which means that the positions of the first data block and the second data block in the data stream are adjacent when the data stream is serially transmitted, And the second data block is located in the data stream after the location where the first data block is located. The second data block is transmitted later than the time at which the first data block was transmitted.
  • the scrambling process of the second data block is used for detailed description.
  • the scrambling process of other data blocks included in the data stream transmitted to the scrambling device may also refer to the second data in the embodiment of the present invention.
  • the scrambling process of the block is implemented, and the scrambling process of other data blocks is similar to the scrambling process of the second data block, and the scrambling process for other data blocks is not described in detail one by one.
  • the first scrambling circuit in the scrambling device acquires the first data block to be scrambled
  • the first scrambling circuit acquires the first scrambling factor determined by the scrambling polynomial.
  • the scrambling polynomial can be determined by a scrambling algorithm implemented by the scrambling device.
  • the 100Gbps Ethernet interface standard uses self-synchronizing scrambling.
  • the first scrambling factor determined by the scrambling polynomial may refer to one or more scrambling parameters that need to be used in data calculation.
  • the first scrambling factor determined by the scrambling polynomial There are various implementation forms of the first scrambling factor determined by the scrambling polynomial, and different representations may exist in the case of different scrambling polynomials.
  • the specific form of the scrambling parameter included in the first scrambling factor and the result of the value need to be implemented in combination with a specific scenario.
  • the data calculation by the first scrambling circuit refers to the calculation method for the data block to be scrambled (for example, the first data block), and the data block to be scrambled needs to be used in the data calculation without using the subsequent embodiment.
  • the specific process of the data calculation and the specific value of the first scrambling factor have different implementations in different application scenarios, and are not limited herein.
  • the result of performing the data calculation by the first scrambling circuit in step 101 is defined as the data calculation result generated by the first scrambling circuit.
  • the data calculation performed by the first scrambling circuit in step 101 is performed for the first data block input to the first scrambling circuit in the data stream.
  • the data calculations described herein require the use of a first scrambling factor. If the first data block is the first data block in the first sub data stream (here, the position ordering in the sub data stream is the first one), the first scrambling circuit can use the first scrambling factor. The data calculation result generated by the first scrambling circuit can be obtained. If the second data block is not the first data block in the first sub data stream, the first scrambling circuit further needs to use the previous data block of the first data block to perform the data calculation result after the data calculation.
  • the first scrambling circuit After the first scrambling circuit performs data calculation on the first data block, the first scrambling circuit further needs to scramble the data calculation result generated by the first scrambling circuit to the next data block for processing the first data block. Circuit transfer. After the first scrambling circuit obtains the data calculation result, the data calculation result is further required to be transmitted to the scrambling circuit for processing the next data block of the first data block, thereby participating in the first data block. The data calculation of the scrambling circuit for processing the next data block. Pipeline operations are implemented between multiple scrambling circuits in the scrambling device. Through the transfer of data calculation results between the scrambling circuits, the purpose of fast calculation can be achieved, thereby saving logical computing resources.
  • the first data block and the next data block of the first data block are adjacent data blocks.
  • the first scrambling factor determined by the scrambling polynomial is used when the first scrambling circuit performs data calculation, and the use of the first scrambling factor by the first scrambling circuit may refer to directly using the first scrambling factor, or
  • the use of the first scrambling factor by the first scrambling circuit is a scrambling factor obtained by formally transforming according to the first scrambling factor after determining the first scrambling factor.
  • the specific parameter content of the first scrambling factor in the embodiment of the present invention needs to be combined with the specific protocol followed by the data transmission, the scrambling algorithm, and the specific bandwidth standard involved in the transmission network, and is exemplified in the following embodiments.
  • the second scrambling circuit performs data calculation on the second data block and the first parameter in the data stream according to the first scrambling factor to obtain a data calculation result generated by the second scrambling circuit.
  • the second data block is a data block that is located after the first data block in the data stream and is adjacent to the first data block, and the second data block belongs to the second sub data stream, and the second data stream belongs to the second sub data stream.
  • the first scrambling circuit and the second scrambling circuit perform scrambling processing in parallel in the same clock cycle.
  • the second scrambling circuit is a scrambling circuit for scrambling the second data block. It can be seen from the relationship between the foregoing first data block and the second data block that in the data stream, the first data block and the second data block are two adjacent data blocks, then the first scrambling circuit and the second scrambling circuit are
  • the scrambling device is also two adjacent scrambling circuits.
  • the two scrambling circuits can be connected by a switch.
  • the switch When the second sub-data stream and the first sub-data stream are the same sub-data stream, that is, the first data block and the second data block are from the same sub-data stream, the switch is closed.
  • the data calculation result generated by the first scrambling circuit can be transmitted to the second scramble circuit through the switch.
  • the first parameter used by the second scrambling circuit in performing data calculation on the second data block is the data calculation result generated by the first scrambling circuit.
  • the switch is turned on when the second substream and the first substream are two different substreams.
  • the second scrambling circuit does not need to use the data calculation result transmitted by the first scrambling circuit. At this time, the first parameter used by the second scrambling circuit in performing data calculation on the second data block is zero.
  • the second scrambling circuit in the scrambling device acquires the second data block to be scrambled
  • the second scrambling circuit acquires the first scrambling factor determined by the scrambling polynomial.
  • the first scrambling factor determined by the scrambling polynomial may refer to one or more scrambling parameters that need to be used in data calculation.
  • the first scrambling factor determined by the scrambling polynomial there are various implementation forms of the first scrambling factor determined by the scrambling polynomial, and different representations may exist in the case of different scrambling polynomials.
  • the specific form of the scrambling parameter included in the first scrambling factor and the result of the value need to be implemented in combination with a specific scenario.
  • the data calculation performed by the second scrambling circuit refers to the calculation method for the data block to be scrambled (for example, the second data block), and the data block to be scrambled needs to be used in the data calculation without using the subsequent embodiment.
  • the feedback data and the feedback calculation result described in the following, the specific process of the data calculation and the specific value of the first scrambling factor have different implementations in different application scenarios, which are not limited herein.
  • the result of performing the data calculation by the second scrambling circuit in step 102 is defined as the data calculation result generated by the second scrambling circuit.
  • the adjacent first data block and the second data block included in the data stream may be divided into different sub data streams.
  • the first data block and the second data block may also belong to the same sub data stream. Whether the first data block and the second data block belong to the same sub-data stream may be determined according to whether the first data block and the second data block are sent to the same destination device.
  • a substream can contain one or more blocks of data. The inclusion relationship of sub-streams and data blocks is flexible and configurable.
  • the data calculation performed by the second scrambling circuit on the second data block specifically includes: if the first data block and the second data block belong to the same sub data stream, the second scrambling circuit needs to use the data calculation result generated by the first scrambling circuit .
  • the second data block belongs to the first data block in the second sub-data stream.
  • the value of the first parameter is zero.
  • the fact that the first parameter takes a value of zero in the embodiment of the present invention means that the second scrambling circuit can complete the data calculation on the second data block without using the first parameter.
  • the second scrambling circuit of step 102 performs data calculation on the second data block and the first parameter in the data stream according to the first scrambling factor to obtain a data calculation result generated by the second scrambling circuit. , can include the following steps:
  • the second scrambling circuit multiplies the first scrambling parameter of the first scrambling factor by the first parameter to obtain a first multiplication result generated by the second scrambling circuit;
  • the second scrambling circuit multiplies the second scrambling parameter of the first scrambling factor by the second data block to obtain a second multiplication result generated by the second scrambling circuit.
  • the second scrambling circuit performs an exclusive-OR calculation on the first multiplication result and the second multiplication result to obtain a data calculation result generated by the second scrambling circuit.
  • the first scrambling factor determined by the scrambling polynomial may include the first scrambled parameter and the second plus Disturbance parameter.
  • the specific implementation of the first scrambling parameter and the second scrambling parameter is related to the protocol followed by the data transmission, the scrambling algorithm, and the specific bandwidth involved in the transmission network, and may be determined according to a specific application scenario.
  • the second scrambling circuit performs data calculation on the second data block by calculating the first multiplication result and the second multiplication result, and then performing differentiating the first multiplication result and the second multiplication result by using the first multiplication result and the second multiplication result. Or calculate the data calculation result generated by the second scrambling circuit.
  • the values of the scrambling factors corresponding to different polynomials are different.
  • the first scrambling factor determined by the scrambling polynomial used in the data calculation of the second data block by the second scrambling circuit in step 102 is related to the protocol followed by the data transmission, the scrambling algorithm, and the specific bandwidth involved in the transmission network.
  • the specific value or the specific deformation of the first scrambling factor may be determined in combination with a specific application scenario.
  • the second scrambling circuit performs feedback calculation on the feedback data provided by the third scrambling circuit according to the second scrambling factor to obtain a feedback calculation result generated by the second scrambling circuit.
  • the third scrambling circuit is one of the plurality of scrambling circuits.
  • a plurality of data blocks in the second sub-stream are acquired by a plurality of scrambling circuits in one clock cycle.
  • the last one of the plurality of data blocks in the second sub-stream is acquired by the third scrambling circuit, and the last block is the last block of data when the plurality of data blocks are to be serially transmitted.
  • the second scrambling factor is a scrambling factor determined by the scrambling polynomial and the position of the second data block in the second sub-stream.
  • the feedback data includes data obtained by registering the scrambled data generated by the third scramble circuit for one clock cycle.
  • the feedback data includes a first result obtained by feedback calculation of the feedback data provided by the third scrambling circuit, which is registered for one clock cycle, and an exclusive-OR calculation of the data calculation result generated by the third scrambling circuit. result.
  • the second sub-data stream in which the second data block is located may include multiple data blocks.
  • the plurality of data blocks included in the second sub-data stream may be scrambled by a plurality of scrambling circuits in the scrambling device, respectively.
  • a plurality of scrambling circuits can respectively generate a plurality of scrambled data.
  • the scrambled circuit that has completed the scrambling can output the scrambled data.
  • Step 102 describes data calculation performed by the second scrambling circuit on the second data block, and obtains a data calculation result generated by the second scrambling circuit, and then the second scrambling circuit further needs to perform step 103.
  • the second scrambling circuit is configured according to the The second scrambling factor performs feedback calculation on the feedback data provided by the third scrambling circuit to obtain a feedback calculation result generated by the second scrambling circuit.
  • the second sub-data stream may further include a plurality of data blocks. All included in the second substream The data block is simultaneously scrambled by a plurality of scrambling circuits in the scrambling device. Each scrambling circuit scrambles one of the data blocks in the second substream. Each scrambling circuit outputs scrambled data after performing scrambling processing.
  • a scrambling circuit for processing the last one of the plurality of data blocks included in the second sub-data stream is defined as a third scrambling circuit.
  • the third scrambling circuit and the second scrambling circuit refer to the same scrambling circuit.
  • the feedback data provided by the third scrambling circuit can be implemented in two ways. One implementation manner is that the feedback data includes data obtained by registering the scrambled data generated by the third scrambling circuit for one clock cycle. In another implementation manner, the feedback data includes a first result obtained by feedback calculation of the feedback data provided by the third scrambling circuit that is registered for one clock cycle, and a data calculation result generated by the third scrambling circuit. The result of the XOR calculation.
  • performing feedback calculation on the feedback data provided by the third scrambling circuit in step 103 requires using a second scrambling factor determined by the scrambling polynomial.
  • the second scrambling circuit performs a feedback calculation using a second scrambling factor, which is exemplified as follows.
  • the second scrambling circuit directly uses the second scrambling factor or the scrambling factor obtained by the formal conversion according to the second scrambling factor.
  • the specific parameters of the second scrambling factor determined using the scrambling polynomial can be determined in conjunction with the protocol followed by the data transmission, the scrambling polynomial, and the specific bandwidth involved in the transmission network.
  • the second scrambling factor will be exemplified in the subsequent embodiments.
  • the first scrambling factor determined by the scrambling polynomial and the second scrambling factor determined by the scrambling polynomial used in the data calculation in step 102 and the feedback calculation in step 103 need to be combined with specific data calculation and feedback calculation. It is necessary to set the implementation method and specific value of the respective scrambling factors separately. Specifically, the specific value or the specific deformation of the first scrambling factor and the second scrambling factor may be determined in combination with the application scenario.
  • the feedback calculation in step 103 requires feedback calculation of the feedback data provided by the third scrambling circuit using a second scrambling factor determined by the scrambling polynomial. It can be seen from the foregoing description that the feedback data in this embodiment can be provided by the third scrambling circuit.
  • Step 103: The second scrambling circuit performs feedback calculation on the feedback data provided by the third scrambling circuit according to the second scrambling factor to obtain a feedback calculation result generated by the second scrambling circuit, including:
  • the second scrambling circuit performs an exclusive-OR calculation on the feedback data provided by the third scrambling circuit according to the constant matrix in the second scrambling factor and the power exponent of the constant matrix to obtain an XOR result generated by the second scrambling circuit.
  • the power exponent is determined according to a position of the second data block in the second sub data stream;
  • the second scrambling circuit performs an exclusive OR result according to the position of the second data block in the second sub data stream. A shift operation is performed to obtain a feedback calculation result generated by the second scramble circuit.
  • the specific representation of the second scrambling factor determined by the scrambling polynomial used in the feedback calculation may be a certain constant matrix and a power exponent of the constant matrix.
  • the feedback calculation can be performed by performing an exclusive-OR calculation on the feedback data provided by the third scrambling circuit by using the feedback data provided by the third scrambling circuit and the power exponent of a constant matrix.
  • the constant matrix is a scrambling parameter included in the second scrambling factor determined according to a scrambling algorithm (ie, a scrambling polynomial).
  • the power exponent is determined based on the position of the second data block in the second sub-data stream. In order to reduce the amount of calculation of the feedback calculation in the scrambling device, the feedback calculation is converted into a shift calculation.
  • a shift circuit can be provided in the scrambling device, and the second scrambling factor determined by the scrambling polynomial is implemented by the shift circuit to perform feedback calculation on the feedback data provided from the third scramble circuit.
  • a shift circuit needs to be set in combination with a specific application scenario.
  • the second scrambling factor determined by the scrambling polynomial used in the feedback calculation also needs to select a specific parameter or deform the selected parameter according to a specific application scenario.
  • the second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambled data generated by the second scrambling circuit; the second scrambling The circuit outputs the scrambled data generated by the second scrambling circuit.
  • the scrambling device may respectively acquire the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit. Acquiring the scrambled data generated by the second scrambling circuit according to the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit. Thereby, the scrambling process on the second data block is completed. After the scrambling is completed, the scrambled data generated by the second scrambling circuit is output for selection of feedback calculations.
  • the scrambled data generated by the second scramble circuit can also be used for multi-channel distribution (Muiti Lane Distribution, MLD).
  • the scrambling process of the second data block in the embodiment of the present invention includes the data calculation described in step 102 and the feedback calculation described in step 103.
  • the scrambling process of the second data block further includes performing an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit on the basis of the data calculation and the feedback calculation.
  • the XOR calculation refers to the GF2 domain addition.
  • the second scrambling circuit performs data calculation on the second data block and the first parameter in the data stream according to the first scrambling factor to obtain the data calculation generated by the second scrambling circuit.
  • the results can include:
  • each data block in the data stream is n bits
  • the second data block is the jth data block in the data stream
  • the first data block is the j-1th data block in the data stream
  • D' n,j M ⁇ N j-1 +F ⁇ D n,j ;
  • D' n,j is the data calculation result generated by the second scrambling circuit
  • D n,j is the second data block
  • N j-1 is the first parameter
  • M is the first addition of the first scrambling factor
  • the disturbance parameter, F is the second disturbance parameter of the first scrambling factor
  • P next is the state of the next clock cycle of the status register in the scrambling device
  • P curr is the state of the current clock cycle of the status register.
  • Step 103 The second scrambling circuit performs feedback calculation on the feedback data provided by the third scrambling circuit according to the second scrambling factor to obtain a feedback calculation result generated by the second scrambling circuit, including:
  • D′′ n,j is the feedback calculation result generated by the second scrambling circuit, a scrambling data generated for the third scrambling circuit, M j being a third scrambled parameter of the second scrambling factor;
  • the second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambled data generated by the second scrambling circuit, including:
  • the scrambling data generated for the second scrambling circuit D' n,j is the data calculation result generated by the second scrambling circuit, and D" n,j is the feedback calculation result generated by the second scrambling circuit.
  • the second scrambling circuit of step 102 performs data calculation on the second data block and the first parameter in the data stream according to the first scrambling factor to obtain data calculation generated by the second scrambling circuit.
  • the results include:
  • each data block in the data stream is n bits
  • the second data block is the jth data block in the data stream
  • the first data block is the j-1th data block in the data stream.
  • D n,i is a data block in the second sub data stream
  • G T -1 ⁇ F
  • F is the second scrambled parameter of the first scrambling factor
  • P next A ⁇ P curr +B ⁇ d i ;
  • P next is the state of the next clock cycle of the status register in the scrambling device
  • P curr is the state of the current clock cycle of the status register.
  • a n T -1 ⁇ M ⁇ T;
  • the second scrambling circuit reverses the feedback data provided by the third scrambling circuit according to the second scrambling factor
  • the feed calculation calculates the feedback calculation result generated by the second scrambling circuit, including:
  • V′′ n, j T ⁇ 1 ⁇ D′′ n, j , D′′ n, j is a feedback calculation result generated by the second scrambling circuit, Scrambling data generated for the third scrambling circuit, Is a fourth scrambled parameter of the second scrambling factor;
  • Step 103 The second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambled data generated by the second scrambling circuit, including:
  • the scrambling data generated for the second scrambling circuit, D' n,j is the data calculation result generated by the second scrambling circuit, and D" n,j is the feedback calculation result generated by the second scrambling circuit.
  • the scrambling device can scramble the data stream including the first data block and the second data block.
  • the first data block and the second data block may belong to the same sub data stream, or may belong to different sub data streams.
  • the specification of the data stream is different when the first data block and the second data block belong to the same sub data stream, when the first data block and the second data block belong to different sub data streams.
  • the specification of the data stream Therefore, the scrambling device can scramble the data streams of different specifications. Therefore, the above technical solution expands the application scenario of the scrambling device.
  • the 100Gbps Ethernet interface standard uses self-synchronizing scrambling.
  • the scrambling polynomial defined in the IEEE802.3 standard is as follows:
  • LFSR Linear Feedback Shift Register
  • S0 to S57 are status registers, and the serial data to be scrambled is added to the data stored in S57 and S38 to obtain scrambled data. The scrambled data is then stored in S0. S0 to S57 are shifted to the right.
  • the above operation can achieve scrambling of one bit.
  • the addition here is the addition of modulo 2, which is equivalent to performing an exclusive OR operation.
  • FIG. 3 is a schematic diagram of a location of a scrambling process in an Ethernet interface according to an embodiment of the present invention.
  • Figure 3 can be a schematic diagram of the structure of a 100 Gbps Ethernet interface.
  • the scrambling process can be performed by a Physical Coding Sublayer (PCS). Specifically, the scrambling process is performed by a scrambling circuit. Scrambling is a step in data processing. Data processing can include the following steps.
  • the Reconciliation Sublayer (RS) transmits data to the PCS through a 400 Gigabit per second Media Independent Interface (CDGMII). Among them, the CD corresponds to the Roman numeral 400.
  • RS Reconciliation Sublayer
  • CDGMII Gigabit per second Media Independent Interface
  • the scrambling process occurs after the data is 64b/66b encoded and before the data is processed by Multi-Lane Distribution (MLD).
  • MLD Multi-Lane Distribution
  • VL virtual lane
  • PL physical lane
  • VL can be divided into different sub-data streams (ie, one or more VLs can correspond to one sub-data stream), and data of different sub-streams (corresponding to different VLs) need to be separately scrambled.
  • MLD processing can be performed by the MLD circuit.
  • the physical coding sublayer transmits data through n channels to a Physical Medium Attachment (PMA) circuit and a Physical Media Dependent (PMD) circuit.
  • the PMD circuit transmits the processed data to the physical medium through m channels.
  • the physical medium transfers the processed data to the destination device.
  • the physical medium can be implemented by an optical module or an optical fiber.
  • the PMD circuit can be coupled to the physical medium via a Medium Dependent Interface (MDI).
  • MDI Medium Dependent Interface
  • n and m described herein are non-zero natural numbers, and specific values of n and m can be determined in combination with application scenarios.
  • the scrambling process is to perform an exclusive OR operation on the 39th bit and the 58th bit of the status register, and then perform an exclusive OR operation with the current bit to generate and output the scrambled data.
  • Written into mathematical expressions can be the following formulas (2) and (3):
  • P curr state register d i is the non-scrambled data
  • the subscript i is the label of the data.
  • P curr may specifically take the value of a state register in the status register (S0 to S57) in FIG. 2 .
  • A, B, and C are constants. Taking the state register and the scrambling polynomial shown in Fig. 2 as an example, A, B, and C can be specifically The following matrix:
  • the matrix C is identified in the order that the left side is high and the right side is low.
  • the 57th (most significant) and 38th digits are 1, and the other digits are 0.
  • the last row of matrix A in equation (6) is the same as matrix C, and the upper right corner of matrix A is a unit matrix.
  • "'" in the matrix B indicates transposition, the last bit of the matrix B is 1, and the other bits of the matrix B are 0.
  • the status register can hold any of the m states. At some point, the status register can only hold one state.
  • the state matrix p composed of these m states satisfies the following relationship:
  • p 0 , p 1 , and p m-1 are the first, second, ..., m states in the status register, respectively, and m can be 58 under the 802.3 standard.
  • unscrambled data matrix D n is the encoded data of n of data.
  • D n is an unscrambled data matrix composed of n data in the encoded data
  • p is a state matrix composed of m states in the status register.
  • W, H, F may specifically be the following matrix:
  • formula (8) represents the state value stored in the state register P after the iterative processing of n bits.
  • formula (9) Represents n-bit scrambled data. It can be seen from the above formula (8) and formula (9) that the state value stored in the status register is constantly shifted, and the state value of the lower bit in the status register is filled by the scrambled data. Therefore, formula (8) can be further written as the following formula:
  • n data in the scrambled data constitutes a scrambled data matrix
  • the output matrix P (n) in the status register can be obtained by the calculation in equation (14).
  • the matrix A, the matrix B, and the matrix C are substituted into the matrix W, the matrix H, and the matrix F, respectively, to obtain the matrix E and the matrix J.
  • the element of the sub-diagonal of the matrix E is 1, and the other elements are all 0.
  • the n-th power of the matrix E is multiplied by the matrix P, indicating that the matrix P is shifted by n bits.
  • the matrix J is a matrix of m ⁇ n order, and if m ⁇ n, the matrix J is represented by the formula (16), otherwise the matrix J is represented by the formula (17).
  • 64b/66b encoding is used in 100Gbps Ethernet, so 64bits is the smallest data block.
  • the parallel calculation formula can be simplified to the following formula (18):
  • j in formula (18) is 1 ⁇ l.
  • the jth scrambled data matrix D n,j is the jth unscrambled data matrix D n .
  • the formula (18) is iteratively expanded to obtain the following formula:
  • the jth scrambled data matrix A scrambled data matrix obtained by performing scrambling calculation on the previous clock cycle before the scrambling calculation of the current clock cycle for one data block.
  • N j+1 M ⁇ N j +F ⁇ D n,j+1 (22)
  • Equation (20) can be transformed into the following formula (23) by the formula (21) and the formula (22):
  • the scrambling calculation of the unscrambled data may include two parts of data calculation and feedback calculation. (23) found by the equation, to the present level j, j-1 as to the level calculation data into data on a calculated (i.e., M ⁇ N j-1) and the calculated data of the present stage (i.e. F ⁇ D n,j ), feedback calculation can be passed get.
  • FIG. 4 is a schematic circuit diagram of performing scrambling processing on a data block according to an embodiment of the present invention. For example, taking the scrambling process of the second data block by using the second scrambling circuit in FIG.
  • the data calculation performed by the second scrambling circuit may include: performing data calculation by M ⁇ N j-1 +F ⁇ D n,i , and obtaining a data calculation result generated by the second scrambling circuit, and performing the second scrambling circuit
  • Feedback calculations can include: After the feedback calculation is completed, the feedback calculation result generated by the second scrambling circuit can be obtained, j represents the number of the data block, k represents the number of the data block D n,j in the sub data stream, and Z -1 represents a unit delay, corresponding to Equation (23), in the unscrambled data, n data is a data block, the jth data block is D n,j , and the data output through Z -1 is the data calculation result of the current level.
  • the gate device selects the scrambled data generated by the plurality of scrambling circuits from the plurality of scrambling circuits included in the scrambling device, and selects the selected data as the third scrambling data.
  • Feedback data provided by the circuit After the feedback data provided by the third scrambling circuit is multiplied by the k-th power of M, the feedback calculation result of the current level is obtained, and the data calculation result of the current level and the feedback calculation result of the current level are XORed, and then the level is obtained.
  • the second scrambling circuit can perform the scrambling process shown in FIG. 4-a.
  • the data D n,j and the matrix F are matrix multiplied (ie, calculated under GF(2)), and the data of the previous clock cycle.
  • the calculation result N j-1 is multiplied by the matrix M, and then the results of the two are XORed (that is, the addition in the GF(2) domain), and the data calculation result N j of the current level is obtained, and the data calculation result is obtained.
  • N j is transmitted to a next use, passing rearwardly N j continue to participate in the present stage scrambling calculated.
  • the feedback calculation is to multiply the feedback data provided by the third scrambling circuit and the k-th power of the matrix M, and then perform an exclusive-OR calculation with the data calculation result N j of the current level, so that the final scrambled data can be obtained.
  • the second scrambling circuit for scrambling D n,j is illustrated in Figure 4-a.
  • Figure 4-b one parallel scrambling process is performed for one data block.
  • Schematic diagram of the scrambling device the encoded data blocks D n,1 , D n,2 , . . . , D n,j are scrambled in parallel according to the clock cycle, starting from the data block D n,1 until The data calculation result of the data block D n,j-1 is transmitted to the next stage, and the feedback calculation selects a certain level of scrambled data from the gate, so that the feedback calculation result can be obtained, and the data calculation result and feedback of each level are obtained. After the calculation result is XORed, the scrambling data of each level can be obtained.
  • the circuit structure of each scrambling circuit included in the above scrambling device can be kept substantially unchanged, and the following three aspects of configuration can be applied to other data streams.
  • the switch used in multiplication calculation with the matrix M If the data block processed by the scrambling circuit of the previous stage and the data block processed by the scrambling circuit of the current level belong to the same sub-data stream, the switch needs to be closed, that is, the data calculation result of the upper level is allowed to be transmitted to the present level, and the participation is performed.
  • the data calculation result of the level is 0), that is, the data calculation result of the previous level does not participate in the data calculation of the current level, and the level is the first level of the sub-data stream to which it belongs.
  • the value of the power exponent k of the matrix M is the number of levels of the sub-data stream to which the class belongs.
  • the source of the third feedback data which is the feedback calculation result of the last stage of the same sub-data stream. If the current level is the last level of the sub-data stream to which the sub-data stream belongs, the feedback data comes from the scrambling data of the current level, that is, the strobe selects the scrambling data of the current level, and if the level is not the last level of the sub-data stream, the feedback is The data comes from the scrambling data of the last stage below.
  • the gate has at most one source, that is, the scrambling data of this level and the scrambling data of each level below this level.
  • FIG. 4-b is the overall structure of the scrambling device.
  • the scrambling device is composed of multiple scrambling The circuit is connected.
  • the data calculation in the aforementioned scrambling process can be implemented by a pipeline structure, that is, multiple clock cycles can be registered, depending on the specific timing conditions.
  • the feedback calculation of the scrambling process needs to be completed in one clock cycle.
  • the scrambling device provided by the embodiment of the present invention is described by taking another application scenario as an example.
  • the critical path in the feedback calculation can be optimized.
  • the rank of the matrix M is 58.
  • the matrix M and the matrix A in the formula (6) have the same characteristic polynomial. Therefore, the matrix T can be constructed to satisfy the following formula (24):
  • the matrix A n is the order of 58 to extend into the matrix A matrix of order 64, with respect to the matrix A, and the extended row of elements equal to the column 0.
  • the matrix M can represent a block form, as in equation (26).
  • the matrix T can also be represented by a block, such as equation (27):
  • the matrix I b is a unit matrix of the bth order.
  • the matrix T can be obtained by the formula (28) to the formula (32) of the above formula, and the matrix T -1 can be obtained by calculating the adjoint matrix of the matrix T. Substituting the formula (24) into the formula (20), the following formula (33) can be obtained:
  • FIG. 5-a is a schematic diagram of another circuit for performing scrambling processing on a data block according to an embodiment of the present invention. For example, taking the scrambling process of the second data block by the second scrambling circuit as an example in FIG.
  • the data calculation performed by the second scrambling circuit may include: After the data calculation is completed, the data calculation result generated by the second scrambling circuit can be obtained, and the feedback calculation performed by the second scrambling circuit can include: After the feedback calculation is completed, the feedback calculation result generated by the second scrambling circuit can be obtained, j denotes the number of the data block, k denotes the number of the data block D n,j in the sub data stream, and Z -1 denotes a unit delay.
  • the gate device selects the scrambled data generated by the plurality of scrambling circuits from the plurality of scrambling circuits included in the scrambling device, and selects the selected data as the feedback data provided by the third scrambling circuit.
  • the second scrambling circuit can perform the scrambling process shown in Figure 5-a. After the data of this level is calculated, the data calculation result of the current level is output, For the scrambling data of this level, the scrambled data generated by the strobe from multiple scrambling circuits (ie The feedback data provided by the third scrambling circuit is multiplied by the k-th power of A, and the feedback calculation result of the current level is obtained, and the XOR calculation result of the data calculation result of the current level and the feedback calculation result of the current level is calculated. Level of scrambling data. Next, please refer to the structure diagram of another scrambling device for performing parallel scrambling processing on one data block as shown in FIG. 5-b.
  • the encoded data blocks D n,1 , D n,2 ,... , D n,j according to the clock cycle parallel scrambling process, from the data block D n,1 until the data block D n,j-1 data calculation results are passed to the next level, the feedback calculation selects one from the gate The level of scrambling data, so that the feedback calculation results can be obtained.
  • the data calculation results and feedback calculation results of each level can obtain the scrambled intermediate results of each level. Then the intermediate results of scrambling for each level Multiply the matrix T to get the scrambled data
  • FIG. 6 is a schematic diagram of an exclusive OR calculation circuit in a power multiplication calculation according to an embodiment of the present invention.
  • the data flow f can be constructed.
  • the exclusive OR calculation circuit shown in FIG. 6 is used, and the first 58 bits of the output data f are
  • the input data V represents the highest bit of f as f(57), followed by a decrement rule.
  • f(-1) can be expressed as V(57) ⁇ V(38)
  • f(-2) can be expressed as V(56) ⁇ V(37), and so on until f(-39).
  • V multiplied by the k-th power of the matrix A can be expressed as a shift of the f-sequence.
  • the power multiplication calculation of the matrix is realized by the exclusive OR calculation circuit shown in FIG. 6 plus the shift circuit.
  • the strobe circuit may be used to select the scrambled intermediate calculation result V, the exclusive OR calculation circuit is used to generate f, and finally the shift circuit is used to complete the power multiplication calculation, and the feedback calculation result may be obtained, according to the feedback.
  • the calculation result and the data calculation result are XORed, and the scrambling process can be completed.
  • FIG. 7-a may be used to add another D n,j according to an embodiment of the present invention.
  • Schematic diagram of the circuit of the disturbance processing Where Z -1 represents a unit delay, n data is a data block in the unscrambled data, and the jth data block is D n,j .
  • the scrambling process of the second data block by the second scrambling circuit is taken as an example, and the second scrambling circuit first obtains the data calculation result generated by the second scrambling circuit by using the data calculation, and The data calculation result generated by the second scrambling circuit is transmitted to the scrambling circuit of the subsequent stage, and the feedback data generated by the second scrambling circuit of the previous clock cycle is multiplied by the k-th power of the matrix A to obtain the second addition.
  • the first result generated by the disturbance circuit, the first result generated by the second scrambling circuit and the data calculation result generated by the second scrambling circuit are XORed, and the feedback data generated by the second scrambling circuit can be obtained, and the second addition is performed.
  • the feedback data generated by the scrambling circuit is input to the gate, and the gate device can receive the feedback data generated by the plurality of scrambling circuits from the scrambling device, and the gate device outputs the feedback data provided by the third scrambling circuit, and then the The feedback data provided by the three scrambling circuit is multiplied by the power of the matrix A, and the feedback calculation result generated by the second scrambling circuit can be obtained, and the feedback calculation result generated by the second scrambling circuit and the second scrambling result are obtained.
  • Road data generated XOR result of calculation, intermediate results may be generated scramble Will scramble intermediate results Multiply the calculation with the matrix T to obtain the scrambled data.
  • the encoded data blocks D n,1 , D n,2 ,... And D n,j perform scrambling processing in parallel according to the clock cycle, starting from the data block D n,1 until the data calculation result of the data block D n,j-1 is transmitted to the next stage, and the feedback calculation selects a certain one from the gate
  • the scrambling data of each level is calculated to obtain the feedback calculation result, and the scrambling data can be obtained from the data calculation result of each level and the feedback calculation result.
  • the feedback calculation can be decomposed into the gating operation of the feedback data and the multiplication of the feedback data with the power of the matrix A, so the gating operation and feedback data of the feedback data Computation with the k-th power of the matrix A, the two parts can be stored in the pipeline structure, the gate operation of the feedback data and the multiplication of the feedback data with the power of the matrix A can also be registered with a register, so that Solve timing problems.
  • the scrambling device of Figures 7-a and 7-b can achieve simplification of the feedback calculation with respect to the implementation of Figures 5-a and 5-b.
  • the multiplication operation is performed after receiving the data block and between the matrix G, and multiplication by the matrix T before outputting the scrambled data.
  • the calculation in which the multiplication calculation between the matrices can be used for the multiply accumulator implementation.
  • X is a resource for multiplication of an m bits matrix
  • Y is a resource for the power of the matrix A and the feedback poly multiplication.
  • X is a 0.1K lookup table (Look-Up-Table, LUT)
  • Y is a maximum of 1.5K LUT
  • X is 0.1K when the number of channels is not greater than 16.
  • n 16
  • the total resource required is ⁇ 10K LUT. If it is fixed bandwidth scrambling, Y and X resources are similar, and the total resource is K5K LUT.
  • the data scrambling method can be applied to scrambling of each data block in a plurality of data streams, and multiple sub-stream streams can be simultaneously scrambled.
  • the scrambling method relative to the prior art requires less resources and can operate at higher clock frequencies.
  • FIG. 8 is a schematic structural diagram of a scrambling device 800 according to an embodiment of the present invention, which can be used to perform the method shown in FIG. 1 .
  • the scrambling device 800 may include: a plurality of scrambling circuits, the plurality of scrambling circuits including a first scrambling circuit 801 and a second scrambling circuit 802, wherein
  • the first scrambling circuit 801 is configured to perform the following steps:
  • the second scrambling circuit 802 is configured to perform the following steps:
  • the second data block is a data block located in the data stream before the first data block and adjacent to the first data block when serially transmitted
  • the second data block belongs to a second sub data stream
  • the second The sub data stream belongs to the data stream
  • the first parameter is a data calculation result generated by the first scrambling circuit
  • the third scrambling circuit is in the multiple scrambling circuits a scrambling circuit, wherein a plurality of data blocks in the second sub-stream are acquired by the plurality of scrambling circuits in one clock cycle, and a last one of the plurality of data blocks in the second sub-stream
  • the data block is acquired by the third scrambling circuit
  • the last data block is a data block that is last transmitted when the plurality of data blocks are to be serially transmitted
  • the second scrambling factor is determined by the adding a scrambling polynomial and a scrambling factor determined by a position of the second data block in the second sub-data stream
  • the feedback data comprising Data obtained by registering the scrambled data generated by the third scramble circuit for one clock cycle, or the feedback data includes a third scramble circuit provided for registration of one clock cycle being performed
  • the feedback data is subjecte
  • the scrambled data generated by the second scramble circuit is output.
  • the second scrambling circuit 802 is specifically configured to perform the following steps:
  • the second scrambling circuit is specifically configured to perform the steps:
  • the second scrambling circuit is specifically configured to perform the following steps:
  • each data block in the data stream is n bits
  • the second data block is a jth data block in the data stream
  • the first data block is a j-th in the data stream 1 data block
  • D′ n,j is a data calculation result generated by the second scrambling circuit
  • D n,j is the second data block
  • N j ⁇ 1 is the first parameter
  • M is the first a first scrambled parameter of the scrambling factor
  • F being a second scrambled parameter of the first scrambling factor
  • P next A ⁇ P curr +B ⁇ d i ;
  • the P next is a value of a state of a next clock cycle of the status register in the scrambling device
  • the P curr is a value of a state of a current clock cycle of the status register
  • D "n, j is the calculated result of the second feedback circuit generates the scramble, a scrambling data generated for the third scrambling circuit, M j being a third scrambled parameter of the second scrambling factor;
  • Feedback calculation is performed on the feedback data generated by the third scrambling circuit by:
  • D "n, j is the calculated result of the second feedback circuit generates the scramble, a scrambling data generated for the third scrambling circuit, M j being a third scrambled parameter of the second scrambling factor;
  • the XOR calculation is performed on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit by:
  • the second is a scrambling data generated by the scramble circuit
  • D 'n, j is the calculation result data generated by the second scramble circuit
  • D "n, j is the generated second scrambling feedback computation circuit result.
  • the second scrambling circuit is specifically configured to perform the following steps:
  • each data block in the data stream is n bits
  • the second data block is a jth data block in the data stream
  • the first data block is a j-th in the data stream 1 data block
  • V′ n,j T ⁇ 1 ⁇ D′ n,j , D′ n,j is a data calculation result generated by the second scrambling circuit, and D n,i is a second data block to which the second data block belongs.
  • G T -1 ⁇ F, where F is the second scrambled parameter of the first scrambling factor,
  • P next A ⁇ P curr +B ⁇ d i ;
  • P next is the state of the next clock cycle of the status register
  • P curr is the state of the current clock cycle of the status register.
  • a n T -1 ⁇ M ⁇ T;
  • V" n, j T -1 ⁇ D" n, j , D" n, j is a feedback calculation result generated by the second scrambling circuit, Scrambling data generated for the third scrambling circuit, Is a fourth scrambled parameter of the second scrambling factor;
  • the second scrambling circuit performs an exclusive-OR calculation on the data calculation result generated by the second scrambling circuit and the feedback calculation result generated by the second scrambling circuit to obtain the scrambling generated by the second scrambling circuit Data, including:
  • D 'n, j the calculation result data generated by the second scramble circuit
  • D "n, j the generated second scrambling feedback computation circuit result.
  • the scrambling device can scramble the data stream including the first data block and the second data block.
  • the first data block and the second data block may belong to the same sub data stream, or may belong to different sub data streams.
  • the specification of the data stream is different when the first data block and the second data block belong to the same sub data stream, when the first data block and the second data block belong to different sub data streams.
  • the specification of the data stream Therefore, the scrambling device can scramble the data streams of different specifications. Therefore, the above technical solution expands the application scenario of the scrambling device.
  • the device embodiments described above are merely illustrative, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be Physical units can be located in one place or distributed to multiple network elements. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • the connection relationship between the modules indicates that there is a communication connection between them, and specifically, one or more communication buses or signal lines can be realized.
  • the present invention can be implemented by means of hardware, or software plus necessary general hardware, and of course, dedicated hardware, dedicated CPU, dedicated CPU, Dedicated memory, dedicated components, etc. are implemented.
  • functions performed by computer programs can be easily implemented with the corresponding hardware, and the specific hardware structure used to implement the same function can be various, such as analog circuits, digital circuits, or dedicated circuits. Circuits, etc.
  • digital circuit implementation is a more preferred embodiment for the present invention.
  • the technical solution of the present invention may contribute to the prior art in hardware, such as an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA, Field).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • the Programmable Gate Array is implemented in a related fashion, including a number of hardware architecture modules to enable a computer device (which may be a personal computer, server, or network device, etc.) to perform the methods described in various embodiments of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Operations Research (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一种数据加扰方法和加扰装置。在数据加扰方法中,加扰装置可以对包含第一数据块和第二数据块的数据流进行加扰。第一数据块和第二数据块可以属于相同的子数据流,也可以属于不同的子数据流。当第一数据块和第二数据块属于相同的子数据流时数据流的规格不同于当第一数据块和第二数据块属于不同的子数据流时数据流的规格。因此,加扰装置可以对不同规格的数据流进行加扰。

Description

一种数据加扰方法和加扰装置 技术领域
本发明实施例涉及通信领域,尤其涉及一种数据加扰方法和加扰装置。
背景技术
随着互联网的发展,对以太网的接口带宽的需求增长。以太网的接口带宽也从10吉比特每秒(Gigabit per second,Gpbs)增长到100Gbps,并向400Gbps和1兆兆比特每秒(terabit per second,Tbps)演进。为了提高信道的利用率,出现了灵活网格光传送网(Flexible Grid Optical Transmission Network)技术。以太网接口的光层可根据待传输的数据的传输距离以及用于传输数据的信道的质量动态地调整数据的发送速率。网络设备的接口标准可以是10Gbps、40Gbps或者100Gbps。为了实现互联,通信双方的接口需要采用相匹配的接口标准。为了降低硬件成本,存在一个发送器或者接收器中包含具有不同的接口标准的以太网接口的设计需求。上述场景中需要使用可变带宽接口。可变带宽的光层技术也要求电层包含可变带宽接口。
在以太网通信协议中,为了保证时钟数据恢复(Clock Data Recover,CDR)电路工作正常,通常采用加扰算法以减少被传输的串行数据中出现连续的0或者出现连续的1的概率。
现有技术中,一个加扰装置只能对某一规格的数据流进行加扰,不能对另一规格的数据流进行加扰。加扰装置的使用场景受到了限制。例如,不能较好的满足灵活以太网的场景的需求。举例来说,现有技术中,某个加扰装置若配置为用于对2个子数据流组成的数据流进行加扰,则该加扰装置就只能对由2个子数据流组成的数据流进行加扰,不能用于对由3个子数据流组成的数据流进行加扰,也不能对仅包含1个子数据流的数据流进行加扰。
发明内容
本发明实施例提供了一种数据加扰方法和加扰装置,能够对不同规格的数据流加扰,有助于扩展加扰装置的应用场景。
第一方面,本发明实施例提供一种数据加扰方法,所述方法由加扰装置执 行,所述加扰装置包括多个加扰电路,所述多个加扰电路包括第一加扰电路以及第二加扰电路,所述方法包括:
所述第一加扰电路根据第一加扰因子对第一数据块进行数据计算从而得到所述第一加扰电路生成的数据计算结果,所述第一加扰因子是由加扰多项式确定的加扰因子,所述第一数据块属于第一子数据流,所述第一子数据流属于传输到所述加扰装置的数据流;
所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,其中,所述第二数据块是被串行传输时在所述数据流中位于所述第一数据块之后且与所述第一数据块相邻的数据块,所述第二数据块属于第二子数据流,所述第二子数据流属于所述数据流,当所述第二子数据流和所述第一子数据流是同一个子数据流时,所述第一参数为所述第一加扰电路生成的数据计算结果,当所述第二子数据流和所述第一子数据流为两个不同的子数据流时,所述第一参数为零;
所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,所述第三加扰电路为所述多个加扰电路中的一个加扰电路,所述第二子数据流中的多个数据块被所述多个加扰电路在一个时钟周期获取,所述第二子数据流中的多个数据块中的最后一个数据块被所述第三加扰电路获取,所述最后一个数据块是所述多个数据块将被串行传输时最后被传输的数据块,所述第二加扰因子是由所述加扰多项式以及所述第二数据块在所述第二子数据流中的位置确定的加扰因子,所述反馈数据包括对所述第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据,或者,所述反馈数据包括对被执行了一个时钟周期的寄存的由所述第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及所述第三加扰电路生成的数据计算结果进行异或计算得到的结果;
所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,所述第二加扰电路将所述第二加扰电路生成的加扰数据输出。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据 计算从而得到所述第二加扰电路生成的数据计算结果,包括:
所述第二加扰电路使用所述第一加扰因子中的第一加扰参量和所述第一参数进行相乘,得到所述第二加扰电路生成的第一相乘结果;
所述第二加扰电路使用所述第一加扰因子中的第二加扰参量和所述第二数据块进行相乘,得到所述第二加扰电路生成的第二相乘结果;
所述第二加扰电路将所述第一相乘结果和所述第二相乘结果进行异或计算从而得到所述第二加扰电路生成的数据计算结果。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,包括:
所述第二加扰电路根据所述第二加扰因子中的常数矩阵以及所述常数矩阵的幂指数对所述第三加扰电路提供的反馈数据进行异或计算从而得到所述第二加扰电路生成的异或结果,所述幂指数根据所述第二数据块在所述第二子数据流中的位置确定;
所述第二加扰电路根据所述第二数据块在所述第二子数据流中的位置对所述异或结果进行移位操作,得到所述第二加扰电路生成的反馈计算结果。
结合第一方面或第一方面的第一种可能或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,包括:
若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,D′n,j=M×Nj-1+F×Dn,j
其中,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,j为所述第二数据块,Nj-1为所述第一参数,M为所述第一加扰因子中的第一加扰参量,F为所述第一加扰因子中的第二加扰参量,
Figure PCTCN2015096032-appb-000001
Figure PCTCN2015096032-appb-000002
其中,所述Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,所述Pcurr为所述状态寄存器的当前时钟周期的状态取值,所述
Figure PCTCN2015096032-appb-000003
为所述数据流中di对应的加扰数据,所述di为所述数据流中的第i个比特;
Figure PCTCN2015096032-appb-000004
Figure PCTCN2015096032-appb-000005
M=H×J;
其中,J为逆序计算参量,
所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,包括:
Figure PCTCN2015096032-appb-000006
其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000007
为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,包括:
Figure PCTCN2015096032-appb-000008
其中,
Figure PCTCN2015096032-appb-000009
为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
结合第一方面或第一方面的第一种可能或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,包括:
若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
Figure PCTCN2015096032-appb-000010
其中,V′n,j=T-1×D′n,j,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,i为所述第二子数据流中的一个数据块,G=T-1×F,F为所述第一加扰因子中的第二加扰参量,
Pnext=A×Pcurr+B×di
Figure PCTCN2015096032-appb-000011
其中,Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,Pcurr为所述状态寄存器的当前时钟周期的状态取值,
Figure PCTCN2015096032-appb-000012
为所述数据流中di对应的加扰数据,di为所述数据流中的第i个比特;
An=T-1×M×T;
Figure PCTCN2015096032-appb-000013
t满足如下关系:t=n-m,m为A的阶数,
Figure PCTCN2015096032-appb-000014
b=[1 0 ... 0]T
Figure PCTCN2015096032-appb-000015
Figure PCTCN2015096032-appb-000016
Ta=Om×b,Ib为b阶单位阵,
Figure PCTCN2015096032-appb-000017
Figure PCTCN2015096032-appb-000018
M=H×J;
其中,J为逆序计算参量,
所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,包括:
Figure PCTCN2015096032-appb-000019
其中,V″n,j=T-1×D″n,j,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000020
Figure PCTCN2015096032-appb-000021
为所述第三加扰电路生成的加扰数据,
Figure PCTCN2015096032-appb-000022
为所述第二加扰因子中的第四加扰参量;
所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,包括:
Figure PCTCN2015096032-appb-000023
其中,
Figure PCTCN2015096032-appb-000024
V′n,j=T-1×D′n,j,V″n,j=T-1×D″n,j
Figure PCTCN2015096032-appb-000025
为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
第二方面,本发明实施例提供一种加扰装置,所述加扰装置包括多个加扰电路,所述多个加扰电路包括第一加扰电路以及第二加扰电路,其中,
所述第一加扰电路,用于执行如下步骤:
根据第一加扰因子对第一数据块进行数据计算从而得到所述第一加扰电路生成的数据计算结果,所述第一加扰因子是由加扰多项式确定的加扰因子,所述第一数据块属于第一子数据流,所述第一子数据流属于传输到所述加扰装置的数据流;
所述第二加扰电路,用于执行如下步骤:
根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,其中,所述第二数据块是被串行传输时在所述数据流中位于所述第一数据块之前且与所述第一数据块相邻的数据块,所述第二数据块属于第二子数据流,所述第二子数据流属于所述数据流,当所述第二子数据流和所述第一子数据流是同一个子数据流时,所述第一参数为所述第一加扰电路生成的数据计算结果,当所述第二子数据流和所述第一子数据流为两个不同的子数据流时,所述第一参数为零;
根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,所述第三加扰电路为所述多个加扰电路中的一个加扰电路,所述第二子数据流中的多个数据块被所述多个加扰电路在一个时钟周期获取,所述第二子数据流中的多个数据块中的最后一个数据块被所述第三加扰电路获取,所述最后一个数据块是所述多个数据块将被串行传输时最后被传输的数据块,所述第二加扰因子是由所述加扰多项式以及所述第二数据块在所述第二子数据流中的位置确定的加扰因子,所述反馈数据包括对所述第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据, 或者,所述反馈数据包括对被执行了一个时钟周期的寄存的由所述第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及所述第三加扰电路生成的数据计算结果进行异或计算得到的结果;
对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据;
将所述第二加扰电路生成的加扰数据输出。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第二加扰电路,具体用于执行如下步骤:
使用所述第一加扰因子中的第一加扰参量和所述第一参数进行相乘,得到所述第二加扰电路生成的第一相乘结果;
使用所述第一加扰因子中的第二加扰参量和所述第二数据块进行相乘,得到所述第二加扰电路生成的第二相乘结果;
将所述第一相乘结果和所述第二相乘结果进行异或计算从而得到所述第二加扰电路生成的数据计算结果。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第二加扰电路,具体用于执行步骤:
根据所述第二加扰因子中的常数矩阵以及所述常数矩阵的幂指数对所述第三加扰电路提供的反馈数据进行异或计算从而得到所述第二加扰电路生成的异或结果,所述幂指数根据所述第二数据块在所述第二子数据流中的位置确定;
根据所述第二数据块在第二子数据流中的位置对所述异或结果进行移位操作,得到所述第二加扰电路生成的反馈计算结果。
结合第二方面或第二方面的第一种可能或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第二加扰电路,具体用于执行如下步骤:
若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
D′n,j=M×Nj-1+F×Dn,j
其中,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,j为所述第二数据块,Nj-1为所述第一参数,M为所述第一加扰因子中的第一加扰参量,F为所述第一加扰因子中的第二加扰参量,
Figure PCTCN2015096032-appb-000026
Figure PCTCN2015096032-appb-000027
其中,所述Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,所述Pcurr为所述状态寄存器的当前时钟周期的状态取值,所述
Figure PCTCN2015096032-appb-000028
为所述数据流中di对应的加扰数据,所述di为所述数据流中的第i个比特;
Figure PCTCN2015096032-appb-000029
Figure PCTCN2015096032-appb-000030
M=H×J;
其中,J为逆序计算参量,
Figure PCTCN2015096032-appb-000031
其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000032
为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
通过如下方式对第三加扰电路生成的反馈数据进行反馈计算:
Figure PCTCN2015096032-appb-000033
其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000034
为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
通过如下方式对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算:
Figure PCTCN2015096032-appb-000035
其中,
Figure PCTCN2015096032-appb-000036
为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
结合第二方面或第二方面的第一种可能或第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第二加扰电路,具体用于执行如下步骤:
若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中 的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
Figure PCTCN2015096032-appb-000037
其中,V′n,j=T-1×D′n,j,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,i为所述第二数据块所属的子数据流中的一个数据块,G=T-1×F,F为所述第一加扰因子中的第二加扰参量,
Pnext=A×Pcurr+B×di
Figure PCTCN2015096032-appb-000038
其中,Pnext为状态寄存器的下一个时钟周期的状态取值,Pcurr为所述状态寄存器的当前时钟周期的状态取值,
Figure PCTCN2015096032-appb-000039
为所述数据流中di对应的加扰数据,di为所述数据流中的第i个比特;
An=T-1×M×T;
Figure PCTCN2015096032-appb-000040
t满足如下关系:t=n-m,m为A的阶数,
Figure PCTCN2015096032-appb-000041
b=[1 0 ... 0]T
Figure PCTCN2015096032-appb-000042
Figure PCTCN2015096032-appb-000043
Ta=Om×b,Ib为b阶单位阵,
Figure PCTCN2015096032-appb-000044
Figure PCTCN2015096032-appb-000045
M=H×J;
其中,J为逆序计算参量,
Figure PCTCN2015096032-appb-000046
其中,V″n,j=T-1×D″n,j,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000047
Figure PCTCN2015096032-appb-000048
为所述第三加扰电路生成的加扰数据,
Figure PCTCN2015096032-appb-000049
为所述第二加扰因子中的第四加扰参量;
所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二 加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,包括:
Figure PCTCN2015096032-appb-000050
其中,
Figure PCTCN2015096032-appb-000051
V′n,j=T-1×D′n,j,V″n,j=T-1×D″n,j
Figure PCTCN2015096032-appb-000052
为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
可选地,第一方面、第一方面的第一种可能至第四种可能的实现方式、第二方面以及第二方面的第一种可能至第四种可能的实现方式中,数据流中不同的子数据流可以根据需要发往不同的目的设备进行区分。同一个子数据流中包括的所有数据块都是需要发往相同的目的设备。一个子数据流可以包含一个或多个数据块。
可选地,第一方面、第一方面的第一种可能至第四种可能的实现方式、第二方面以及第二方面的第一种可能至第四种可能的实现方式中,第一加扰电路对第一数据块执行数据计算时,由加扰多项式确定的第一加扰因子可以指数据计算时需要使用的一个或多个加扰参量。第一加扰电路进行的数据计算指的是针对待加扰的数据块(例如第一数据块)进行的计算方式,数据计算中需要使用待加扰的数据块,而不需要使用反馈数据和反馈计算结果。
可选地,第一方面、第一方面的第一种可能至第四种可能的实现方式、第二方面以及第二方面的第一种可能至第四种可能的实现方式中,第二加扰电路对第二数据块执行数据计算时,由加扰多项式确定的第一加扰因子可以指数据计算时需要使用的一个或多个加扰参量。第二加扰电路进行的数据计算指的是针对待加扰的数据块(例如第二数据块)进行的计算方式,数据计算中需要使用待加扰的数据块,而不需要使用反馈数据和反馈计算结果。
可选地,第一方面、第一方面的第一种可能至第四种可能的实现方式、第二方面以及第二方面的第一种可能至第四种可能的实现方式中,数据流中包括的相邻的第一数据块和第二数据块可以分属于不同的子数据流。第一数据块和第二数据块也可以分属于同一个子数据流。第一数据块和第二数据块是否属于同一个子数据流具体可以根据第一数据块和第二数据块是否发往相同的目的设备来确定。一个子数据流可以包含一个或多个的数据块。
可选地,第一方面、第一方面的第一种可能至第四种可能的实现方式、第 二方面以及第二方面的第一种可能至第四种可能的实现方式中,将用于处理第二子数据流中包括的多个数据块中的最后一个数据块的加扰电路定义为第三加扰电路。在第二子数据流中只包括第二数据块时,第三加扰电路和第二加扰电路指的是同一个加扰电路。该第三加扰电路提供的反馈数据可以有两种实现方式:一种实现方式是,反馈数据包括对第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据。另一种实现方式是,反馈数据包括对被执行了一个时钟周期的寄存的由第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及第三加扰电路生成的数据计算结果进行异或计算得到的结果。
可选地,第一方面、第一方面的第一种可能至第四种可能的实现方式、第二方面以及第二方面的第一种可能至第四种可能的实现方式中,反馈计算中使用的由加扰多项式确定的第二加扰因子具体表现形式可以是某个常数矩阵和以及该常数矩阵的幂指数。在这种情况下,反馈计算就可以通过使用第三加扰电路提供的反馈数据和一个常数矩阵的幂指数对第三加扰电路提供的反馈数据进行异或计算实现。
从以上技术方案可以看出,本发明实施例具有以下优点:
上述技术方案中,加扰装置可以对包含第一数据块和第二数据块的数据流进行加扰。所述第一数据块和所述第二数据块可以属于相同的子数据流,也可以属于不同的子数据流。当所述第一数据块和所述第二数据块属于相同的子数据流时所述数据流的规格不同于当所述第一数据块和所述第二数据块属于不同的子数据流时所述数据流的规格。因此,所述加扰装置可以对不同规格的数据流进行加扰。本发明实施例提供的上述技术方案扩展了加扰装置的应用场景。
附图说明
图1为本发明实施例提供的一种数据加扰方法的流程示意图;
图2为本发明实施例提供的一种加扰装置的结构示意图;
图3为本发明实施例提供的加扰处理在以太网接口中的位置示意图;
图4-a为本发明实施例提供的一种对一个数据块进行加扰处理的电路示意图;
图4-b为对l个数据块进行并行的加扰处理的一种加扰装置的结构示意图;
图5-a为本发明实施例提供的另一种对一个数据块进行加扰处理的电路示意图;
图5-b为对l个数据块进行并行加扰处理的另一种加扰装置的结构示意图;
图6为本发明实施例提供的幂乘计算中的异或计算电路示意图;
图7-a为本发明实施例提供的另一种对一个数据块进行加扰处理的电路示意图;
图7-b为对l个数据块进行并行加扰处理的另一种加扰装置的结构示意图;
图8为本发明实施例提供的一种加扰装置的结构示意图。
具体实施方式
本发明实施例提供了一种数据加扰方法和加扰装置,能够对多种不同规格的数据流进行加扰,有助于扩展加扰装置的应用场景。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本申请提供的实施例,本领域的技术人员可以获得其他实施例。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。
以下分别进行详细说明。
本发明数据加扰方法的一个实施例,该数据加扰方法由加扰装置执行,该方法可应用于加扰装置对数据流中的多个数据块的加扰处理中。该加扰装置包括多个加扰电路。多个加扰电路包括第一加扰电路以及第二加扰电路。请参阅图1,本发明一个实施例提供的数据加扰方法,可以包括如下步骤:
101、第一加扰电路根据第一加扰因子对第一数据块进行数据计算从而得到所述第一加扰电路生成的数据计算结果。
其中,该第一加扰因子是由加扰多项式确定的加扰因子,第一数据块属于第一子数据流,第一子数据流属于传输到所述加扰装置的数据流。
本发明实施例可以用于CDR电路的场景中。具体来说,CDR电路接收 的数据需要具备随机性。CDR电路对数据的需求是,数据中的0和1均衡,尽可能减少出现连续的0以及出现连续的1的可能性。对数据进行编码后可对数据进行加扰,以实现数据的随机性。例如,在100Gbps以太网标准中,对数据进行64b/66b编码之后需要对数据进行加扰。当然也可以采用其它的编码方式对数据进行编码,本发明实施例中不做限定。
在本发明实施例中,对于执行编码后的数据流进行加扰。加扰装置获取到上述编码后的数据流。该数据流中包括至少一个子数据流,数据流中不同的子数据流可以根据需要发往不同的目的设备进行区分。同一个子数据流中包括的所有数据块都是需要发往相同的目的设备。一个子数据流可以包含一个或多个数据块。子数据流和数据块的包含关系是灵活可配的,一个数据流中包括的子数据流的个数也是灵活可配的。当数据流1中的子数据流包括的数据块个数不同于数据流2中的子数据流包括的数据块个数时,数据流1与数据流2是不同规格的数据流。或者,当数据流1中包括的子数据流的个数不同于数据流2中包括的子数据流的个数时,数据流1与数据流2是不同规格的数据流。本发明实施例中数据流都包括多个数据块,接下来对该数据流中相邻的任意两个数据块(分别称为第一数据块和第二数据块)的加扰处理进行说明。
将第一数据块所在的子数据流定义为第一子数据流,该第一子数据流属于传输到加扰装置的数据流,其中,第一子数据流中包括的所有数据块是发往同一个目的设备。将第二数据块所在的子数据流定义为第二子数据流,该第二子数据流属于传输到加扰装置的数据流,其中,第二子数据流中包括的所有数据块是发往同一个目的设备。第一数据块所在的第一子数据流和第二数据块所在的第二子数据流可能是同一个子数据流,第一数据块所在的第一子数据流和第二数据块所在的第二子数据流也可能是两个不同的子数据流。另外,第一数据块和第二数据块是相邻的两个数据块指的是数据流在被串行传输时第一数据块和第二数据块在数据流中的位置是相邻的,并且第二数据块在数据流中位于第一数据块所在的位置之后。第二数据块被传输的时间晚于第一数据块被传输的时间。本发明后续实施例中均以第二数据块的加扰处理进行详细说明,传输到加扰装置的数据流中包括的其它数据块的加扰处理也可以参照本发明实施例中对第二数据块的加扰处理来实现,其它数据块的加扰处理过程与第二数据块的加扰处理过程都类似,对其它数据块的加扰处理不再逐一进行详细说明。
在本发明实施例中,加扰装置中的第一加扰电路获取到待加扰的第一数据块之后,第一加扰电路获取由加扰多项式确定的第一加扰因子。其中加扰多项式可以由加扰装置实现的加扰算法来确定。以100Gbps以太网接口标准为例进行说明。100Gbps以太网接口标准采用自同步加扰。电气和电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.3标准中定义的加扰多项式为:G(x)=1+x39+x58。在步骤101中第一加扰电路对第一数据块执行数据计算时,由加扰多项式确定的第一加扰因子可以指数据计算时需要使用的一个或多个加扰参量。由加扰多项式确定的第一加扰因子的具体实现形式有多种,在不同的加扰多项式的取值情况下可以存在不同的表现形式。另外该第一加扰因子包括的加扰参量的具体形式以及取值结果均需要结合具体的场景来实现。第一加扰电路进行的数据计算指的是针对待加扰的数据块(例如第一数据块)进行的计算方式,数据计算中需要使用待加扰的数据块,而不需要使用后续实施例中描述的反馈数据和反馈计算结果。数据计算的具体过程以及第一加扰因子的具体取值在不同的应用场景下有不同的实现,此处不做限定。为便于后续实施例中描述,将步骤101中第一加扰电路执行数据计算得到的结果定义为第一加扰电路生成的数据计算结果。
需要说明的是,步骤101中第一加扰电路执行的数据计算是针对数据流中输入到第一加扰电路的第一数据块进行的。此处描述的数据计算需要使用到第一加扰因子。若第一数据块在第一子数据流中是第一个数据块(这里指的是在子数据流中的位置排序是第一个),则第一加扰电路可以使用第一加扰因子就可以得到第一加扰电路生成的数据计算结果。若第二数据块在第一子数据流中不是第一个数据块,则第一加扰电路还需要使用该第一数据块的上一个数据块进行数据计算之后生的的数据计算结果。当第一加扰电路对第一数据块执行数据计算后,第一加扰电路还需要将第一加扰电路生成的数据计算结果向用于处理第一数据块的下一个数据块的加扰电路传递。在第一加扰电路得到数据计算结果之后还需要将该数据计算结果传递到用于对第一数据块的下一个数据块进行处理的加扰电路,从而参与到用于对第一数据块的下一个数据块进行处理的加扰电路的数据计算。加扰装置中的多个加扰电路之间实现流水线操作。通过加扰电路之间的数据计算结果的传递,可以达到快速计算的目的,从而节省逻辑计算资源。第一数据块和第一数据块的下一个数据块是相邻的数据块。
在第一加扰电路执行数据计算时使用由加扰多项式确定的第一加扰因子,第一加扰电路对第一加扰因子的使用可以指的是直接使用上述第一加扰因子,或者,第一加扰电路对第一加扰因子的使用是在确定出第一加扰因子之后根据第一加扰因子进行形式变换得到的加扰因子。本发明实施例中第一加扰因子的具体参数内容需要结合数据传输遵循的具体协议、加扰算法以及传输网络涉及的具体带宽标准,在后续实施例中进行举例说明。
102、第二加扰电路根据第一加扰因子对数据流中的第二数据块和第一参数进行数据计算从而得到第二加扰电路生成的数据计算结果。
其中,第二数据块是被串行传输时在数据流中位于第一数据块之后且与第一数据块相邻的数据块,第二数据块属于第二子数据流,第二子数据流属于数据流,当第二子数据流和第一子数据流是同一个子数据流时,第一参数为第一加扰电路生成的数据计算结果,当第二子数据流和第一子数据流为两个不同的子数据流时,第一参数为零。
在本发明实施例中,加扰装置包括的多个加扰电路中,第一加扰电路和第二加扰电路是在同一个时钟周期内并行进行加扰处理的。第二加扰电路是用于对第二数据块进行加扰处理的加扰电路。由前述第一数据块和第二数据块的关系可知,在数据流中第一数据块和第二数据块是相邻的两个数据块,那么第一加扰电路和第二加扰电路在加扰装置中也是相邻的两个加扰电路。这两个加扰电路之间可以通过一个开关连接。当第二子数据流和第一子数据流是同一个子数据流时,即第一数据块和第二数据块来自同一个子数据流,该开关闭合。第一加扰电路生成的数据计算结果可以通过该开关传递给第二加扰电路。第二加扰电路在对第二数据块进行数据计算时使用的第一参数就是该第一加扰电路生成的数据计算结果。当第二子数据流和第一子数据流为两个不同的子数据流时,该开关打开。第二加扰电路不需要使用第一加扰电路传递的数据计算结果。此时第二加扰电路在对第二数据块进行数据计算时使用的第一参数为零。
在本发明实施例中,加扰装置中的第二加扰电路获取到待加扰的第二数据块之后,第二加扰获电路获取由加扰多项式确定的第一加扰因子。其中加扰多项式可以由加扰装置实现的加扰算法来确定例如,加扰多项式可以是G(x)=1+x39+x58。在步骤102中第二加扰电路对第二数据块执行数据计算时,由加扰多项式确定的第一加扰因子可以指数据计算时需要使用的一个或多个加 扰参量。由加扰多项式确定的第一加扰因子的具体实现形式有多种,在不同的加扰多项式的取值情况下可以存在不同的表现形式。另外该第一加扰因子包括的加扰参量的具体形式以及取值结果均需要结合具体的场景来实现。第二加扰电路进行的数据计算指的是针对待加扰的数据块(例如第二数据块)进行的计算方式,数据计算中需要使用待加扰的数据块,而不需要使用后续实施例中描述的反馈数据和反馈计算结果,数据计算的具体过程以及第一加扰因子的具体取值在不同的应用场景下有不同的具体实现,此处不做限定。为便于后续实施例中描述,将步骤102中第二加扰电路执行数据计算得到的结果定义为第二加扰电路生成的数据计算结果。
在本发明实施例中,数据流中包括的相邻的第一数据块和第二数据块可以分属于不同的子数据流。第一数据块和第二数据块也可以分属于同一个子数据流。第一数据块和第二数据块是否属于同一个子数据流具体可以根据第一数据块和第二数据块是否发往相同的目的设备来确定。一个子数据流可以包含一个或多个的数据块。子数据流和数据块的包含关系是灵活可配的。第二加扰电路对第二数据块执行的数据计算具体包括:若第一数据块和第二数据块属于同一个子数据流,第二加扰电路需要使用第一加扰电路生成的数据计算结果。若第一数据块和第二数据块属于不同的两个子数据流,则在第二数据块在第二子数据流中属于第一个数据块。第一参数的取值为零。本发明实施例中第一参数取值为零的意思是第二加扰电路不需要使用第一参数也可以完成对第二数据块的数据计算。
在本发明的一些实施例中,步骤102第二加扰电路根据第一加扰因子对数据流中的第二数据块和第一参数进行数据计算从而得到第二加扰电路生成的数据计算结果,可包括如下步骤:
A1、第二加扰电路使用第一加扰因子中的第一加扰参量和第一参数进行相乘,得到第二加扰电路生成的第一相乘结果;
A2、第二加扰电路使用第一加扰因子中的第二加扰参量和第二数据块进行相乘,得到第二加扰电路生成的第二相乘结果;
A3、第二加扰电路将第一相乘结果和第二相乘结果进行异或计算从而得到第二加扰电路生成的数据计算结果。
其中,由加扰多项式确定的第一加扰因子可以包括第一加扰参量和第二加 扰参量。第一加扰参量和第二加扰参量的具体实现与数据传输遵循的协议、加扰算法以及传输网络涉及的具体带宽有关,可以根据具体的应用场景确定。第二加扰电路对第二数据块进行数据计算可以通过如下方式实现:先计算出第一相乘结果和第二相乘结果,再通过对第一相乘结果和第二相乘结果进行异或计算得到第二加扰电路生成的数据计算结果。
需要说明的是,本发明实施例中数据计算可以指基于加扰多项式的G(x)=1+x39+x58的GF域计算,当然也可以其他加扰多项式。不同的多项式对应的加扰因子的值不同。另外在步骤102中第二加扰电路对第二数据块进行数据计算时使用的由加扰多项式确定的第一加扰因子与数据传输遵循的协议、加扰算法以及传输网络涉及的具体带宽有关,可以结合具体的应用场景来确定第一加扰因子的具体取值或者具体变形。
103、第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到第二加扰电路生成的反馈计算结果。
其中,第三加扰电路为多个加扰电路中的一个加扰电路。第二子数据流中的多个数据块被多个加扰电路在一个时钟周期获取。第二子数据流中的多个数据块中的最后一个数据块被第三加扰电路获取,最后一个数据块是多个数据块将被串行传输时最后被传输的数据块。第二加扰因子是由加扰多项式以及第二数据块在第二子数据流中的位置确定的加扰因子。反馈数据包括对第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据。或者,反馈数据包括对被执行了一个时钟周期的寄存的由第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及第三加扰电路生成的数据计算结果进行异或计算得到的结果。
在本发明实施例中,第二数据块所在的第二子数据流中可以包括多个数据块。第二子数据流中包括的多个数据块可以分别被加扰装置中的多个加扰电路进行加扰处理。多个加扰电路可以分别生成多个加扰数据。已经完成加扰的加扰电路可以输出加扰数据。步骤102中描述了第二加扰电路对第二数据块进行的数据计算,得到第二加扰电路生成的数据计算结果,然后第二加扰电路还需要执行步骤103第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到第二加扰电路生成的反馈计算结果。第二子数据流中除了包括第二数据块,还可以包括多个数据块。第二子数据流中包括的所有 数据块同时被加扰装置中的多个加扰电路进行加扰处理。每个加扰电路对第二子数据流中的一个数据块进行加扰处理。每个加扰电路在执行加扰处理后会输出加扰数据。其中,将用于处理第二子数据流中包括的多个数据块中的最后一个数据块的加扰电路定义为第三加扰电路。在第二子数据流中只包括第二数据块时,第三加扰电路和第二加扰电路指的是同一个加扰电路。该第三加扰电路提供的反馈数据可以有两种实现方式:一种实现方式是,反馈数据包括对第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据。另一种实现方式是,反馈数据包括对被执行了一个时钟周期的寄存的由第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及第三加扰电路生成的数据计算结果进行异或计算得到的结果。
需要说明的是,本发明实施例中,步骤103中对第三加扰电路提供的反馈数据进行反馈计算需要使用由加扰多项式确定的第二加扰因子。第二加扰电路进行反馈计算时使用第二加扰因子,举例说明如下,第二加扰电路直接使用第二加扰因子,或者根据第二加扰因子进行形式变换得到的加扰因子。使用由加扰多项式确定的第二加扰因子的具体参数可以结合数据传输遵循的协议、加扰多项式以及传输网络涉及的具体带宽确定。在后续实施例中将对第二加扰因子的具体参数进行举例说明。并且步骤102中的数据计算和步骤103中的反馈计算时用到的由加扰多项式确定的第一加扰因子和由加扰多项式确定的第二加扰因子需要结合具体的数据计算和反馈计算的需要来分别设置各自加扰因子的实现方式和具体取值。具体可结合应用场景来确定第一加扰因子和第二加扰因子的具体取值或者具体变形。
在本发明的一些实施例中,步骤103中的反馈计算需要使用由加扰多项式确定的第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算。通过前述内容的说明可知,本实施例中反馈数据可以由第三加扰电路提供。步骤103第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到第二加扰电路生成的反馈计算结果,包括:
B1、第二加扰电路根据第二加扰因子中的常数矩阵以及常数矩阵的幂指数对第三加扰电路提供的反馈数据进行异或计算从而得到第二加扰电路生成的异或结果,幂指数根据第二数据块在第二子数据流中的位置确定;
B2、第二加扰电路根据第二数据块在第二子数据流中的位置对异或结果 进行移位操作,得到第二加扰电路生成的反馈计算结果。
其中,反馈计算中使用的由加扰多项式确定的第二加扰因子具体表现形式可以是某个常数矩阵和以及该常数矩阵的幂指数。在这种情况下,反馈计算就可以通过使用第三加扰电路提供的反馈数据和一个常数矩阵的幂指数对第三加扰电路提供的反馈数据进行异或计算实现。常数矩阵是根据加扰算法(即加扰多项式)确定的第二加扰因子中包括的加扰参量。幂指数是根据第二数据块在第二子数据流中的位置确定。为了减少加扰装置中反馈计算的计算量,将反馈计算转换为移位计算。即可以在加扰装置中设置移位电路,通过移位电路实现由加扰多项式确定的第二加扰因子对从第三加扰电路提供的反馈数据进行反馈计算。在具体应用中,需要结合具体的应用场景来设置移位电路。另外反馈计算时使用到的由加扰多项式确定的第二加扰因子也需要根据具体的应用场景来选择其具体的参数或者对选择出的参数进行变形等。
104、第二加扰电路对第二加扰电路生成的数据计算结果和第二加扰电路生成的反馈计算结果进行异或计算从而得到第二加扰电路生成的加扰数据;第二加扰电路将第二加扰电路生成的加扰数据输出。
在本发明实施例中,通过前述步骤101至103的执行,加扰装置可分别获取到第二加扰电路生成的数据计算结果和第二加扰电路生成的反馈计算结果。根据第二加扰电路生成的数据计算结果和第二加扰电路生成的反馈计算结果获取第二加扰电路生成的加扰数据。从而完成对第二数据块的加扰处理。完成加扰之后,将第二加扰电路生成的加扰数据输出以供反馈计算的选择。另外,得到第二加扰电路生成的加扰数据还可以进行多通道分发(Muiti Lane Distribution,MLD)。
需要说明的是,在本发明实施例中第二数据块的加扰处理包括步骤102中描述的数据计算和步骤103中描述的反馈计算。第二数据块的加扰处理还包括,在数据计算和反馈计算的基础上对第二加扰电路生成的数据计算结果和第二加扰电路生成的反馈计算结果进行异或计算。其中,异或计算指的是进行GF2域加法。
在本发明的一些实施例中,前述步骤102第二加扰电路根据第一加扰因子对数据流中的第二数据块和第一参数进行数据计算从而得到第二加扰电路生成的数据计算结果,可以包括:
若数据流中每个数据块为n个比特,第二数据块为数据流中的第j个数据块,第一数据块为数据流中的第j-1个数据块,D′n,j=M×Nj-1+F×Dn,j
其中,D′n,j为第二加扰电路生成的数据计算结果,Dn,j为第二数据块,Nj-1为第一参数,M为第一加扰因子中的第一加扰参量,F为第一加扰因子中的第二加扰参量,
Figure PCTCN2015096032-appb-000053
Figure PCTCN2015096032-appb-000054
其中,Pnext为加扰装置中的状态寄存器的下一个时钟周期的状态取值,Pcurr为状态寄存器的当前时钟周期的状态取值,
Figure PCTCN2015096032-appb-000055
为数据流中di对应的加扰数据,di为数据流中的第i个比特;
Figure PCTCN2015096032-appb-000056
Figure PCTCN2015096032-appb-000057
M=H×J;
其中,J为逆序计算参量,
步骤103第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到第二加扰电路生成的反馈计算结果,包括:
Figure PCTCN2015096032-appb-000058
其中,D″n,j为第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000059
为第三加扰电路生成的加扰数据,Mj为第二加扰因子中的第三加扰参量;
第二加扰电路对第二加扰电路生成的数据计算结果和第二加扰电路生成的反馈计算结果进行异或计算从而得到第二加扰电路生成的加扰数据,包括:
Figure PCTCN2015096032-appb-000060
其中,
Figure PCTCN2015096032-appb-000061
为第二加扰电路生成的加扰数据,D′n,j为第二加扰电路生成的数据计算结果,D″n,j为第二加扰电路生成的反馈计算结果。
在本发明的另一些实施例中,步骤102第二加扰电路根据第一加扰因子对数据流中的第二数据块和第一参数进行数据计算从而得到第二加扰电路生成的数据计算结果,包括:
若数据流中每个数据块为n个比特,第二数据块为数据流中的第j个数据块,第一数据块为数据流中的第j-1个数据块,
Figure PCTCN2015096032-appb-000062
其中,V′n,j=T-1×D′n,j,D′n,j为第二加扰电路生成的数据计算结果,Dn,i为第二子数据流中的一个数据块,G=T-1×F,F为第一加扰因子中的第二加扰参量,
Pnext=A×Pcurr+B×di
Figure PCTCN2015096032-appb-000063
其中,Pnext为加扰装置中的状态寄存器的下一个时钟周期的状态取值,Pcurr为状态寄存器的当前时钟周期的状态取值,
Figure PCTCN2015096032-appb-000064
为数据流中di对应的加扰数据,di为数据流中的第i个比特;
An=T-1×M×T;
Figure PCTCN2015096032-appb-000065
t满足如下关系:t=n-m,m为A的阶数,
Figure PCTCN2015096032-appb-000066
b=[1 0 ... 0]T
Figure PCTCN2015096032-appb-000067
Figure PCTCN2015096032-appb-000068
Ta=Om×b,Ib为b阶单位阵,
Figure PCTCN2015096032-appb-000069
Figure PCTCN2015096032-appb-000070
M=H×J;
其中,J为逆序计算参量,
第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反 馈计算从而得到第二加扰电路生成的反馈计算结果,包括:
Figure PCTCN2015096032-appb-000071
其中,V″n,j=T-1×D″n,j,D″n,j为第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000072
Figure PCTCN2015096032-appb-000073
为第三加扰电路生成的加扰数据,
Figure PCTCN2015096032-appb-000074
为第二加扰因子中的第四加扰参量;
步骤103第二加扰电路对第二加扰电路生成的数据计算结果和第二加扰电路生成的反馈计算结果进行异或计算从而得到第二加扰电路生成的加扰数据,包括:
Figure PCTCN2015096032-appb-000075
其中,
Figure PCTCN2015096032-appb-000076
V′n,j=T-1×D′n,j,V″n,j=T-1×D″n,j
Figure PCTCN2015096032-appb-000077
为第二加扰电路生成的加扰数据,D′n,j为第二加扰电路生成的数据计算结果,D″n,j为第二加扰电路生成的反馈计算结果。
通过对本发明实施例的描述可知,加扰装置可以对包含第一数据块和第二数据块的数据流进行加扰。所述第一数据块和所述第二数据块可以属于相同的子数据流,也可以属于不同的子数据流。当所述第一数据块和所述第二数据块属于相同的子数据流时所述数据流的规格不同于当所述第一数据块和所述第二数据块属于不同的子数据流时所述数据流的规格。因此,所述加扰装置可以对不同规格的数据流进行加扰。因此,上述技术方案扩展了加扰装置的应用场景。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。接下来以100Gbps以太网接口标准为例进行说明。100Gbps以太网接口标准采用自同步加扰。IEEE802.3标准中定义的加扰多项式如下:
G(x)=1+x39+x58                     (1)
其中,加扰可采用线性反馈移位寄存器(Linear Feedback Shift Register,LFSR)实现。图2为本发明实施例提供的一种加扰装置的结构示意图。S0~S57为状态寄存器,将待加扰的串行数据与S57、S38中存储的数据相加,得到加扰数据。然后将加扰数据存入S0。S0~S57向右移位。上述操作可以实现对一个比特的加扰。此处中的加法是模2相加,相当于执行异或操作。
图3为本发明实施例提供的加扰处理在以太网接口中的位置示意图。图3可以是100Gbps以太网接口的结构示意图。加扰处理可以由物理编码子层(Physical Coding Sublayer,PCS)执行。具体来说,加扰处理由加扰电路执行。加扰处理是数据处理的一个步骤。数据处理可以包括如下步骤。适配子层(Reconciliation Sublayer,RS)通过400Gb媒介无关接口(400 Gigabit per second Media Independent Interface,CDGMII)向PCS传输数据。其中,CD对应罗马数字400。根据图3可以看出,加扰处理发生在对数据进行64b/66b编码之后,以及对数据进行多通道分发(Multi-Lane Distribution,MLD)处理之前。在对同一数据流中的数据块加扰时,首先按虚拟通道(Virtual lane,VL)进行编码处理和加扰操作,然后分发到物理通道(Physical Lane,PL)上。如果是灵活以太网,VL可以分属不同的子数据流(即一条或多条VL可以对应一条子数据流),不同子数据流的数据(对应不同VL)需要分开加扰。MLD处理可以由MLD电路执行。完成MLD处理之后,物理编码子层将数据通过n个通道传送到物理媒介附加(Physical Medium Attachment,PMA)电路和物理媒介相关(Physical Media Dependent,PMD)电路。PMD电路通过m个通道向物理媒介发送处理后的数据。物理媒介将处理后的数据传输至目的设备。物理媒介可以通过光模块或者光纤实现。PMD电路可以通过媒介依赖接口(Medium Dependent Interface,MDI)与物理媒介耦合。另外,此处所述的n和m为非零自然数,n和m的具体取值可以结合应用场景来确定。
在前述的加扰处理中,加扰的过程就是将状态寄存器的第39比特(bit)和第58bit进行异或操作,然后再和当前bit进行异或操作,从而生成并输出已加扰数据。写成数学表达式可以为如下的公式(2)和(3):
Pnext=A×Pcurr+B×di#                            (2)
其中,Pnext为状态寄存器的下一个时钟周期状态,Pcurr为状态寄存器的当前时钟周期的状态,di为未加扰数据,
Figure PCTCN2015096032-appb-000079
为未加扰数据di对应的加扰数据,下标i是数据的标号。例如,Pcurr具体可以为图2中的状态寄存器(S0~S57)中某个状态寄存器的状态取值。
在上述公式(2)和公式(3)中,A、B、C为常数,以图2所示的状态寄存器和加扰多项式为公式(1)为例,则A、B、C具体可以为如下矩阵:
Figure PCTCN2015096032-appb-000080
B=[0 ... 0 1]′                          (5)
Figure PCTCN2015096032-appb-000081
其中,公式(4)中,矩阵C如果按左侧为高,右侧为低的顺序标识。第57(最高位)和第38位为1,其他位为0。公式(6)中矩阵A的最后一行和矩阵C相同,矩阵A的右上角为一个单位阵。公式(5)中,矩阵B中的“′”表示转置,矩阵B的最后一位为1,矩阵B的其他位为0。
如果需要执行n bits数据并行计算,假设状态寄存器能够保存m个状态中的任意一个状态。在某个时间,所述状态寄存器只能保存一个状态。这m个状态组成的状态矩阵p满足如下关系:
Figure PCTCN2015096032-appb-000082
其中,p0、p1、pm-1分别为状态寄存器中第1、2、…、m个状态,在802.3标准下,m可以为58。
将上述公式(2)迭代n次,可以得到如下公式:
P(n)=An×P+W×Dn                       (8)
其中,状态矩阵p中每个状态分别对应的下一个时钟周期的状态组成输出矩阵P(n),Dn为编码后的数据中n个数据组成的未加扰数据矩阵。
将上述公式(3)迭代n次,可以得到如下公式:
Figure PCTCN2015096032-appb-000083
其中,
Figure PCTCN2015096032-appb-000084
为已加扰数据中n个数据组成的已加扰数据矩阵,Dn为编码后的数据中n个数据组成的未加扰数据矩阵,p为状态寄存器中m个状态组成的状 态矩阵。
其中,在上述公式(8)和公式(9)中,W、H、F具体可以为如下矩阵:
W=[B AB ... An-1×B]                 (10)
Figure PCTCN2015096032-appb-000085
Figure PCTCN2015096032-appb-000086
其中,公式(8)和(9)中的Dn可以表示为如下的公式(13):
Figure PCTCN2015096032-appb-000087
公式(8)中的P(n)表示经过n比特的迭代处理之后状态寄存器P里存储的状态值。公式(9)中
Figure PCTCN2015096032-appb-000088
表示n比特的加扰数据。根据上述公式(8)和公式(9)可以看出,状态寄存器中存储的状态值是不断移位的,状态寄存器中低位的状态值由加扰数据填充。因此公式(8)可以进一步写成如下的公式:
Figure PCTCN2015096032-appb-000089
其中,加扰数据中n个数据组成加扰数据矩阵
Figure PCTCN2015096032-appb-000090
状态寄存器中的输出矩阵P(n)可以通过公式(14)中的计算方式来得到。
以图2所示的状态寄存器和加扰多项式为公式(1)为例,将矩阵A、矩阵B、矩阵C分别代入到矩阵W、矩阵H、矩阵F中,可得到矩阵E、矩阵J的如下公式:
Figure PCTCN2015096032-appb-000091
Figure PCTCN2015096032-appb-000092
或,
Figure PCTCN2015096032-appb-000093
公式(15)中,矩阵E的次对角线的元素为1,其他元素都是为0。公式(14)中,矩阵E的n次幂左乘矩阵P,表示对矩阵P移n位。矩阵J是m×n阶的矩阵,如果m<n,则矩阵J由公式(16)表示,否则矩阵J由公式(17)表示。
在100Gbps的以太网中采用64b/66b编码,因此64bits为最小的数据块。本发明实施例接下来以m<n为例进行说明,特别是n=64的情况为例。其他情况可以依本发明提供的数据加扰方法类推。此时并行计算公式可以简化为如下的公式(18):
Figure PCTCN2015096032-appb-000094
其中,M满足如下的公式(19):
M=H×J                    (19)
如果以太网中的某个子数据流包括有l个数据块,若以n个数据为一个数据块,对l个数据块并行的进行加扰计算,那么公式(18)中的j的取值为1~l。
Figure PCTCN2015096032-appb-000095
为第j个加扰数据矩阵
Figure PCTCN2015096032-appb-000096
Dn,j为第j个未加扰数据矩阵Dn。当j=1时,
Figure PCTCN2015096032-appb-000097
表示上一个时钟周期最后一个数据块的计算结果,即可以表示为
Figure PCTCN2015096032-appb-000098
l个数 据块并行的进行加扰计算,对j>0的情况,将公式(18)进行迭代展开,可以得到如下公式:
Figure PCTCN2015096032-appb-000099
其中,
Figure PCTCN2015096032-appb-000100
为第j个加扰数据矩阵
Figure PCTCN2015096032-appb-000101
为对l个数据块进行本时钟周期的加扰计算之前的上一个时钟周期进行加扰计算得到的加扰数据矩阵。
将公式(20)中的
Figure PCTCN2015096032-appb-000102
定义为数据计算中间量Nj,则存在如下公式(21)和公式(22):
Figure PCTCN2015096032-appb-000103
Nj+1=M×Nj+F×Dn,j+1                  (22)
通过公式(21)和公式(22),公式(20)可变换为如下的公式(23):
Figure PCTCN2015096032-appb-000104
通过公式(23)可知,对未加扰数据进行加扰计算(即前述的加扰处理)可以包括数据计算和反馈计算两个部分。通过公式(23)可知,以j作为本级,以j-1作为上一级,数据计算分为上一级的数据计算(即M×Nj-1)和本级的数据计算(即F×Dn,j),反馈计算可通过
Figure PCTCN2015096032-appb-000105
得到。图4-a为本发明实施例提供的一种对一个数据块进行加扰处理的电路示意图,例如,以图4-a为第二加扰电路对第二数据块的加扰处理为例,第二加扰电路执行的数据计算可以包括:通过M×Nj-1+F×Dn,i完成数据计算,可以得到第二加扰电路生成的数据计算结果,第二加扰电路执行的反馈计算可以包括:通过
Figure PCTCN2015096032-appb-000106
完成反馈计算,可以得到第二加扰电路生成的反馈计算结果,j表示数据块的编号,k表示数据块Dn,j在子数据流中的编号,Z-1表示一个单位延迟,对应于公式(23),未加扰数据中以n个数据为一个数据块,第j个数据块为Dn,j,经过Z-1输出的数据为本级的数据计算结果,
Figure PCTCN2015096032-appb-000107
为本级的加扰数据,选通器从加扰装置包括的多个加扰电路中,获取到多个加扰电路生成的加扰数据中进行选择,将选择的数据定义为第三加扰电路提供的反馈数据。第三加扰电路提供的反馈数据和M的k次方相乘后,得到本级的反馈计算结果,本级的数据计算结果和本级的反馈计算结果进行异或计算后,得到本级的加扰数据
Figure PCTCN2015096032-appb-000108
第二加扰电路可以执行图4-a中所示的加扰处理,首先数据Dn,j和矩阵F做矩阵相乘计算(即GF(2)下计算),同时上一个时钟周期的数据计算结果Nj-1与 矩阵M做相乘计算,然后将二者结果做异或计算(即GF(2)域下的加法),得出本级的数据计算结果Nj,该数据计算结果Nj传递给下一级使用,同时在本级向后传递Nj继续参与加扰计算。反馈计算是将第三加扰电路提供的反馈数据和矩阵M的k次幂相乘,然后和本级的数据计算结果Nj进行异或计算,从而可以得到最终的加扰数据。
图4-a中对Dn,j进行加扰处理的第二加扰电路进行了说明,接下来请参阅如图4-b所示,为对l个数据块进行并行的加扰处理的一种加扰装置的结构示意图,编码后的数据块Dn,1、Dn,2、...、Dn,j按照时钟周期并行的进行加扰处理,从数据块Dn,1开始直至数据块Dn,j-1的数据计算结果向下一级传递,反馈计算从选通器中选择某个级的加扰数据,从而可以得到反馈计算结果,由各个级的数据计算结果和反馈计算结果进行异或计算后,可得到各个级的加扰数据
Figure PCTCN2015096032-appb-000109
Figure PCTCN2015096032-appb-000110
如果是带宽可变的加扰计算,上述的加扰装置包括的各个加扰电路的电路结构可以保持基本不变,只需要做如下的三方面的配置即可适用于其它规格的数据流。第一、与矩阵M进行相乘计算时使用的开关。如果上一级的加扰电路处理的数据块和本级的加扰电路处理的数据块属于同一个子数据流,则开关需要闭合,即允许上一级的数据计算结果传递到本级来,参与本级进行的数据计算,若上一级的加扰电路处理的数据块和本级的加扰电路处理的数据块属于两个不同的子数据流,则开关需要断开(即可以置上一级的数据计算结果为0),即上一级的数据计算结果不参与本级的数据计算,本级作为所属子数据流的第一级。第二,矩阵M的幂指数k的取值。k的取值是本级作为所属子数据流的级数。例如,如果是子数据流的第一级,那么k取1,第二级取2,依此类推,k是相对于子数据流内数据块的位置来确定的。第三反馈数据的来源,反馈数据是同一子数据流的最后一级的反馈计算结果。如果本级为所属子数据流的最后一级,则反馈数据来自本级的加扰数据,即选通器选取本级的加扰数据,如果本级不是子数据流的最后一级,则反馈数据来自下面的最后一级的加扰数据,选通器最多有l个来源,即本级的加扰数据和本级以下的各级加扰数据。通过前述的三个配置可以使加扰装置适用于多种规格的数据流加扰,扩展加扰装置的应用场景。
需要说明的是,图4-b为加扰装置的整体结构。所述加扰装置由多个加扰 电路连接而成。前述加扰处理中的数据计算可以用流水线结构实现,即可以寄存多个时钟周期,根据具体的时序情况而定。加扰处理的反馈计算需要在一个时钟周期内完成。
接下来以另一个应用场景为例进行说明本发明实施例提供的加扰装置。
为了对上述图4-a和图4-b所示的加扰装置进行优化,可对处在反馈计算的关键路径进行优化。矩阵M的秩为58。且矩阵M和公式(6)中的矩阵A具有相同的特征多项式。因此可以构造出矩阵T,使其满足如下的公式(24):
An=T-1×M×T                         (24)
矩阵T的求解可以按照如下的计算方式实现:
首先将矩阵AnA和矩阵M进行分块处理,得到如下的公式(25)和(26):
Figure PCTCN2015096032-appb-000111
Figure PCTCN2015096032-appb-000112
其中,上述公式(26)中的t满足如下的关系:t=n-m。
以图2所示的状态寄存器和加扰多项式为公式(1)为例,矩阵An是将58阶的矩阵A扩展成64阶的矩阵,相对于矩阵A,扩展的行以及列的元素等于0。矩阵M可以表示成分块形式,如公式(26)。矩阵T也可以用分块表示,例如公式(27):
Figure PCTCN2015096032-appb-000113
其中,b、Tm、Wm、Tb、Ta分别满足如下的关系:
b=[1 0 ... 0]T                           (28)
Figure PCTCN2015096032-appb-000114
Figure PCTCN2015096032-appb-000115
Figure PCTCN2015096032-appb-000116
Ta=Om×b                            (32)
矩阵Ib为b阶的单位阵。由此,可以用上述公式的公式(28)至公式(32)得出矩阵T,矩阵T-1可以通过计算矩阵T的伴随矩阵的方式来得到。将公式 (24)代入公式(20),可以得到如下的公式(33):
Figure PCTCN2015096032-appb-000117
对公式(33)的两端中每一个变量都左乘一个矩阵T-1,可以得到如下的公式(34):
Figure PCTCN2015096032-appb-000118
其中,
Figure PCTCN2015096032-appb-000119
G分别满足如下关系:
Figure PCTCN2015096032-appb-000120
Figure PCTCN2015096032-appb-000121
G=T-1×F                         (37)
通过公式(34)可知,对未加扰数据进行加扰计算(即前述的加扰处理)可以分为数据计算和反馈计算两个部分,数据计算通过
Figure PCTCN2015096032-appb-000122
得到,反馈计算可通过
Figure PCTCN2015096032-appb-000123
得到。图5-a为本发明实施例提供的另一种对数据块进行加扰处理的电路示意图。例如,以图5-a为第二加扰电路对第二数据块的加扰处理为例,第二加扰电路执行的数据计算可以包括:通过
Figure PCTCN2015096032-appb-000124
完成数据计算,可以得到第二加扰电路生成的数据计算结果,第二加扰电路执行的反馈计算可以包括:通过
Figure PCTCN2015096032-appb-000125
完成反馈计算,可以得到第二加扰电路生成的反馈计算结果,j表示数据块的编号,k表示数据块Dn,j在子数据流中的编号,Z-1表示一个单位延迟。选通器从加扰装置包括的多个加扰电路中,获取到多个加扰电路生成的加扰数据中进行选择,将选择的数据定义为第三加扰电路提供的反馈数据。第三加扰电路提供的反馈数据和矩阵A的k次方相乘后,得到本级的反馈计算结果,本级的数据计算结果和本级的反馈计算结果进行异或计算后,得到本级的加扰数据
Figure PCTCN2015096032-appb-000126
第二加扰电路可以执行图5-a中所示的加扰处理。经过本级的数据计算后输出本级的数据计算结果,
Figure PCTCN2015096032-appb-000127
为本级的加扰数据,选通器从多个加扰电路生成的加扰数据(即
Figure PCTCN2015096032-appb-000128
)中选择出第三加扰电路提供的反馈数据和A的k次方相乘后,得到本级的反馈计算结果,本级的数据计算结果和本级的反馈计算结果的异或计算得到本级的加扰数据。接下来请参阅如图5-b所示,为对l个数据块进行并行加扰处理的另一种加扰装置的结构示意图,编码后的数据块Dn,1、Dn,2、…、Dn,j按照时钟周期并行的加扰处理,从数据块Dn,1开始直至数据块Dn,j-1 数据计算结果向下一级传递,反馈计算从选通器中选择某个级的加扰数据,从而可以得到反馈计算结果,由各个级的数据计算结果和反馈计算结果可得到各个级的加扰中间结果
Figure PCTCN2015096032-appb-000129
然后对各个级的加扰中间结果
Figure PCTCN2015096032-appb-000130
Figure PCTCN2015096032-appb-000131
分别乘以矩阵T,得到加扰数据
Figure PCTCN2015096032-appb-000132
进一步的,由于矩阵A是稀疏矩阵,所以矩阵A的k次幂可以简化。加扰中间结果V和矩阵A的相乘计算得到的结果为加扰中间结果V的移位。请参阅如图6所示,为本发明实施例提供的幂乘计算中的异或计算电路示意图,可构造数据流f,采用图6所示的异或计算电路,输出数据f的前58bits是输入的数据V,把f的最高位表示成f(57),后面沿用递减规则。则f(-1)可以表示成V(57)^V(38),f(-2)可以表示成V(56)^V(37),依此类推直到f(-39)。计算加扰中间计算结果V乘以矩阵A的k次幂,就可以表示成f序列的移位。当k=0时,结果为f(57:0),k=1时,结果为f(56:-1),依此类推。通过图6所示的异或计算电路加上移位电路实现矩阵的幂乘计算。
需要说明的是,前述实施例中可以用选通电路选取加扰中间计算结果V,使用异或计算电路生成f,最后再使用移位电路来完成幂乘计算,可以得到反馈计算结果,根据反馈计算结果和数据计算结果进行异或计算,可以完成加扰处理。
接下来以另一个应用场景为例进行说明:
图5-a的加扰电路和图5-b的加扰装置中,都利用矩阵An和矩阵M构成相似矩阵,相对于图4-a和图4-b简化了反馈计算。当带宽比较大时,还可以采用如下的方式进一步简化反馈计算。由于只有处理子数据流中的最后一级的数据块的加扰电路才会生成有效的反馈数据,因此可以采用图7-a为本发明实施例提供的另一种对Dn,j进行加扰处理的电路示意图。其中,Z-1表示一个单位延迟,未加扰数据中以n个数据为一个数据块,第j个数据块为Dn,j
如图7-a所示,以第二加扰电路对第二数据块的加扰处理为例,第二加扰电路首先通过数据计算,得到第二加扰电路生成的数据计算结果,并将第二加扰电路生成的数据计算结果向后一级的加扰电路传递,前一时钟周期的第二加扰电路生成的反馈数据与矩阵A的k次幂进行相乘计算,得到第二加扰电路生成的第一结果,第二加扰电路生成的第一结果和第二加扰电路生成的数据计算结果进行异或计算,可以得到第二加扰电路生成的反馈数据,将第二加扰电路 生成的反馈数据输入到选通器,则选通器可以收到来自加扰装置的多个加扰电路生成的反馈数据,选通器输出第三加扰电路提供的反馈数据,然后第三加扰电路提供的反馈数据和矩阵A的k次幂进行相乘计算,可以得到第二加扰电路生成的反馈计算结果,再将第二加扰电路生成的反馈计算结果和第二加扰电路生成的数据计算结果进行异或计算,可以生成加扰中间结果
Figure PCTCN2015096032-appb-000133
将加扰中间结果
Figure PCTCN2015096032-appb-000134
和矩阵T进行相乘计算,可以得到加扰数据
Figure PCTCN2015096032-appb-000135
接下来请参阅如图7-b所示,为对l个数据块进行并行加扰处理的另一种加扰装置的结构示意图,编码后的数据块Dn,1、Dn,2、…、Dn,j按照时钟周期并行的进行加扰处理,从数据块Dn,1开始直至数据块Dn,j-1的数据计算结果向下一级传递,反馈计算从选通器选择某个级的加扰数据计算得到反馈计算结果,由各个级的数据计算结果和反馈计算结果可得到加扰数据
Figure PCTCN2015096032-appb-000136
图7-a和图7-b的实现方式中,反馈计算可以分解为反馈数据的选通操作和反馈数据与矩阵A的k次幂的相乘计算,因此反馈数据的选通操作和反馈数据与矩阵A的k次幂的相乘计算,这两部分可以用流水线结构,反馈数据的选通操作和反馈数据与矩阵A的k次幂的相乘计算之间还可以用寄存器寄存,从而可以解决时序问题。相对于图5-a和图5-b的实现方式,图7-a和图7-b中加扰装置可以实现对反馈计算的简化。
如图5-a和图5-b、图7-a和图7-b的举例说明可知,接收到数据块后和矩阵G间相乘操作,以及输出加扰数据之前和矩阵T进行相乘计算,其中,矩阵之间的相乘计算可以用于乘累加器实现。矩阵A为稀疏矩阵,和矩阵A相乘后的累加计算所占资源很少。假若一条通道需要2个矩阵相乘计算,一个和矩阵A的k次幂相乘计算,共需要2X+Y个资源,总共n条通道,总资源为R=2*n*X+n*Y。X为一个m bits矩阵相乘计算的资源,Y为矩阵A的幂与反馈poly乘计算的资源。在Xilinx V7下X为0.1K查找表(Look-Up-Table,LUT),Y最大为1.5K LUT,当通道数不大于16时X为0.1K。n为16时,所需要的总资源≈10K LUT。如果是固定带宽加扰,Y和X资源差不多,总资源≈5K LUT。
通过以上实施例对本发明的举例说明可知,数据加扰方法可适用于多种规格的数据流中各个数据块的加扰,可以对多条子数据流流进行同时加扰。相对于现有技术的加扰方法需要更少的资源,且能运行在较高的时钟频率下。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述 为一系列的动作组合。但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。因为某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图8所示,本发明实施例提供的一种加扰装置800的结构示意图,可以用于执行图1所示的方法。关于加扰装置800的具体实现,可以参考图1对应的实施例。加扰装置800可以包括:多个加扰电路,所述多个加扰电路包括第一加扰电路801以及第二加扰电路802,其中,
所述第一加扰电路801,用于执行如下步骤:
根据第一加扰因子对第一数据块进行数据计算从而得到所述第一加扰电路生成的数据计算结果,所述第一加扰因子是由加扰多项式确定的加扰因子,所述第一数据块属于第一子数据流,所述第一子数据流属于传输到所述加扰装置的数据流;
所述第二加扰电路802,用于执行如下步骤:
根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,其中,所述第二数据块是被串行传输时在所述数据流中位于所述第一数据块之前且与所述第一数据块相邻的数据块,所述第二数据块属于第二子数据流,所述第二子数据流属于所述数据流,当所述第二子数据流和所述第一子数据流是同一个子数据流时,所述第一参数为所述第一加扰电路生成的数据计算结果,当所述第二子数据流和所述第一子数据流为两个不同的子数据流时,所述第一参数为零;
根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,所述第三加扰电路为所述多个加扰电路中的一个加扰电路,所述第二子数据流中的多个数据块被所述多个加扰电路在一个时钟周期获取,所述第二子数据流中的多个数据块中的最后一个数据块被所述第三加扰电路获取,所述最后一个数据块是所述多个数据块将被串行传输时最后被传输的数据块,所述第二加扰因子是由所述加扰多项式以及所述第二数据块在所述第二子数据流中的位置确定的加扰因子,所述反馈数据包括 对所述第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据,或者,所述反馈数据包括对被执行了一个时钟周期的寄存的由所述第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及所述第三加扰电路生成的数据计算结果进行异或计算得到的结果;
对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据;
将所述第二加扰电路生成的加扰数据输出。
在本发明的一些实施例中,所述第二加扰电路802,具体用于执行如下步骤:
使用所述第一加扰因子中的第一加扰参量和所述第一参数进行相乘,得到所述第二加扰电路生成的第一相乘结果;
使用所述第一加扰因子中的第二加扰参量和所述第二数据块进行相乘,得到所述第二加扰电路生成的第二相乘结果;
将所述第一相乘结果和所述第二相乘结果进行异或计算从而得到所述第二加扰电路生成的数据计算结果。
在本发明的一些实施例中,所述第二加扰电路,具体用于执行步骤:
根据所述第二加扰因子中的常数矩阵以及所述常数矩阵的幂指数对所述第三加扰电路提供的反馈数据进行异或计算从而得到所述第二加扰电路生成的异或结果,所述幂指数根据所述第二数据块在所述第二子数据流中的位置确定;
根据所述第二数据块在第二子数据流中的位置对所述异或结果进行移位操作,得到所述第二加扰电路生成的反馈计算结果。
在本发明的一些实施例中,所述第二加扰电路,具体用于执行如下步骤:
若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
D′n,j=M×Nj-1+F×Dn,j
其中,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,j为所述第二数据块,Nj-1为所述第一参数,M为所述第一加扰因子中的第一加扰参量,F为所述第一加扰因子中的第二加扰参量,
其中,
Figure PCTCN2015096032-appb-000137
Pnext=A×Pcurr+B×di
Figure PCTCN2015096032-appb-000138
其中,所述Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,所述Pcurr为所述状态寄存器的当前时钟周期的状态取值,所述
Figure PCTCN2015096032-appb-000139
为所述数据流中di对应的加扰数据,所述di为所述数据流中的第i个比特;
Figure PCTCN2015096032-appb-000140
Figure PCTCN2015096032-appb-000141
M=H×J;
其中,J为逆序计算参量,
Figure PCTCN2015096032-appb-000142
其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000143
为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
通过如下方式对第三加扰电路生成的反馈数据进行反馈计算:
Figure PCTCN2015096032-appb-000144
其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000145
为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
通过如下方式对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算:
Figure PCTCN2015096032-appb-000146
其中,
Figure PCTCN2015096032-appb-000147
为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
在本发明的一些实施例中,所述第二加扰电路,具体用于执行如下步骤:
若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
Figure PCTCN2015096032-appb-000148
其中,V′n,j=T-1×D′n,j,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,i为所述第二数据块所属的子数据流中的一个数据块,G=T-1×F,F为所述第一加扰因子中的第二加扰参量,
Pnext=A×Pcurr+B×di
Figure PCTCN2015096032-appb-000149
其中,Pnext为状态寄存器的下一个时钟周期的状态取值,Pcurr为所述状态寄存器的当前时钟周期的状态取值,
Figure PCTCN2015096032-appb-000150
为所述数据流中di对应的加扰数据,di为所述数据流中的第i个比特;
An=T-1×M×T;
Figure PCTCN2015096032-appb-000151
t满足如下关系:t=n-m,m为A的阶数,
Figure PCTCN2015096032-appb-000152
b=[1 0 ... 0]T
Figure PCTCN2015096032-appb-000153
Figure PCTCN2015096032-appb-000154
Ta=Om×b,Ib为b阶单位阵,
Figure PCTCN2015096032-appb-000155
Figure PCTCN2015096032-appb-000156
M=H×J;
其中,J为逆序计算参量,
Figure PCTCN2015096032-appb-000157
其中,V″n,j=T-1×D″n,j,D″n,j为所述第二加扰电路生成的反馈计算结果,
Figure PCTCN2015096032-appb-000158
Figure PCTCN2015096032-appb-000159
为所述第三加扰电路生成的加扰数据,
Figure PCTCN2015096032-appb-000160
为所述第二加扰因子中的第四加扰参量;
所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,包括:
Figure PCTCN2015096032-appb-000161
其中,
Figure PCTCN2015096032-appb-000162
V′n,j=T-1×D′n,j,V″n,j=T-1×D″n,j
Figure PCTCN2015096032-appb-000163
为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
通过对本发明实施例的描述可知,加扰装置可以对包含第一数据块和第二数据块的数据流进行加扰。所述第一数据块和所述第二数据块可以属于相同的子数据流,也可以属于不同的子数据流。当所述第一数据块和所述第二数据块属于相同的子数据流时所述数据流的规格不同于当所述第一数据块和所述第二数据块属于不同的子数据流时所述数据流的规格。因此,所述加扰装置可以对不同规格的数据流进行加扰。因此,上述技术方案扩展了加扰装置的应用场景。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助硬件,或者软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下数字电路实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以硬件,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或现场可编程门阵列(FPGA,Field Programmable Gate Array)相关的形态来实现,包括若干硬件结构模块以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改。

Claims (10)

  1. 一种数据加扰方法,其特征在于,所述方法由加扰装置执行,所述加扰装置包括多个加扰电路,所述多个加扰电路包括第一加扰电路以及第二加扰电路,所述方法包括:
    所述第一加扰电路根据第一加扰因子对第一数据块进行数据计算从而得到所述第一加扰电路生成的数据计算结果,所述第一加扰因子是由加扰多项式确定的加扰因子,所述第一数据块属于第一子数据流,所述第一子数据流属于传输到所述加扰装置的数据流;
    所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,其中,所述第二数据块是被串行传输时在所述数据流中位于所述第一数据块之后且与所述第一数据块相邻的数据块,所述第二数据块属于第二子数据流,所述第二子数据流属于所述数据流,当所述第二子数据流和所述第一子数据流是同一个子数据流时,所述第一参数为所述第一加扰电路生成的数据计算结果,当所述第二子数据流和所述第一子数据流为两个不同的子数据流时,所述第一参数为零;
    所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,所述第三加扰电路为所述多个加扰电路中的一个加扰电路,所述第二子数据流中的多个数据块被所述多个加扰电路在一个时钟周期获取,所述第二子数据流中的多个数据块中的最后一个数据块被所述第三加扰电路获取,所述最后一个数据块是所述多个数据块将被串行传输时最后被传输的数据块,所述第二加扰因子是由所述加扰多项式以及所述第二数据块在所述第二子数据流中的位置确定的加扰因子,所述反馈数据包括对所述第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据,或者,所述反馈数据包括对被执行了一个时钟周期的寄存的由所述第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及所述第三加扰电路生成的数据计算结果进行异或计算得到的结果;
    所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,所述第二加扰电路将所述第二加扰电路生成的加扰数据输出。
  2. 根据权利要求1所述的方法,其特征在于,所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,包括:
    所述第二加扰电路使用所述第一加扰因子中的第一加扰参量和所述第一参数进行相乘,得到所述第二加扰电路生成的第一相乘结果;
    所述第二加扰电路使用所述第一加扰因子中的第二加扰参量和所述第二数据块进行相乘,得到所述第二加扰电路生成的第二相乘结果;
    所述第二加扰电路将所述第一相乘结果和所述第二相乘结果进行异或计算从而得到所述第二加扰电路生成的数据计算结果。
  3. 根据权利要求1或2所述的方法,其特征在于,所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,包括:
    所述第二加扰电路根据所述第二加扰因子中的常数矩阵以及所述常数矩阵的幂指数对所述第三加扰电路提供的反馈数据进行异或计算从而得到所述第二加扰电路生成的异或结果,所述幂指数根据所述第二数据块在所述第二子数据流中的位置确定;
    所述第二加扰电路根据所述第二数据块在所述第二子数据流中的位置对所述异或结果进行移位操作,得到所述第二加扰电路生成的反馈计算结果。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,包括:
    若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,D′n,j=M×Nj-1+F×Dn,j
    其中,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,j为所述第二数据块,Nj-1为所述第一参数,M为所述第一加扰因子中的第一加扰参量,F为所述第一加扰因子中的第二加扰参量,
    Figure PCTCN2015096032-appb-100001
    Figure PCTCN2015096032-appb-100002
    其中,所述Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,所述Pcurr为所述状态寄存器的当前时钟周期的状态取值,所述
    Figure PCTCN2015096032-appb-100003
    为所述数据流中di对应的加扰数据,所述di为所述数据流中的第i个比特;
    Figure PCTCN2015096032-appb-100004
    Figure PCTCN2015096032-appb-100005
    M=H×J;
    其中,J为逆序计算参量,
    所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,包括:
    Figure PCTCN2015096032-appb-100006
    其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
    Figure PCTCN2015096032-appb-100007
    为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
    所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据,包括:
    Figure PCTCN2015096032-appb-100008
    其中,
    Figure PCTCN2015096032-appb-100009
    为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
  5. 根据权利要求1至3中任一项所述的方法,其特征在于,所述第二加扰电路根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,包括:
    若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
    Figure PCTCN2015096032-appb-100010
    其中,V′n,j=T-1×D′n,j,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,i为所述第二子数据流中的一个数据块,G=T-1×F,F为所述第一加扰因子中的第二加扰参量,
    Pnext=A×Pcurr+B×di
    Figure PCTCN2015096032-appb-100011
    其中,Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,Pcurr为所述状态寄存器的当前时钟周期的状态取值,
    Figure PCTCN2015096032-appb-100012
    为所述数据流中di对应的加扰数据,di为所述数据流中的第i个比特;
    An=T-1×M×T;
    Figure PCTCN2015096032-appb-100013
    t满足如下关系:t=n-m,m为A的阶数,
    Figure PCTCN2015096032-appb-100014
    b=[1 0 … 0]T
    Figure PCTCN2015096032-appb-100015
    Figure PCTCN2015096032-appb-100016
    Ta=Om×b,Ib为b阶单位阵,
    Figure PCTCN2015096032-appb-100017
    M=H×J;
    其中,J为逆序计算参量,
    所述第二加扰电路根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,包括:
    Figure PCTCN2015096032-appb-100019
    其中,V″n,j=T-1×D″n,j,D″n,j为所述第二加扰电路生成的反馈计算结果,
    Figure PCTCN2015096032-appb-100020
    Figure PCTCN2015096032-appb-100021
    为所述第三加扰电路生成的加扰数据,
    Figure PCTCN2015096032-appb-100022
    为所述第二加扰因子中的第四加扰参量;
    所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成 的加扰数据,包括:
    Figure PCTCN2015096032-appb-100023
    其中,
    Figure PCTCN2015096032-appb-100024
    V′n,j=T-1×D′n,j,V″n,j=T-1×D″n,j
    Figure PCTCN2015096032-appb-100025
    为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
  6. 一种加扰装置,其特征在于,所述加扰装置包括多个加扰电路,所述多个加扰电路包括第一加扰电路以及第二加扰电路,其中,
    所述第一加扰电路,用于执行如下步骤:
    根据第一加扰因子对第一数据块进行数据计算从而得到所述第一加扰电路生成的数据计算结果,所述第一加扰因子是由加扰多项式确定的加扰因子,所述第一数据块属于第一子数据流,所述第一子数据流属于传输到所述加扰装置的数据流;
    所述第二加扰电路,用于执行如下步骤:
    根据所述第一加扰因子对所述数据流中的第二数据块和第一参数进行数据计算从而得到所述第二加扰电路生成的数据计算结果,其中,所述第二数据块是被串行传输时在所述数据流中位于所述第一数据块之前且与所述第一数据块相邻的数据块,所述第二数据块属于第二子数据流,所述第二子数据流属于所述数据流,当所述第二子数据流和所述第一子数据流是同一个子数据流时,所述第一参数为所述第一加扰电路生成的数据计算结果,当所述第二子数据流和所述第一子数据流为两个不同的子数据流时,所述第一参数为零;
    根据第二加扰因子对第三加扰电路提供的反馈数据进行反馈计算从而得到所述第二加扰电路生成的反馈计算结果,所述第三加扰电路为所述多个加扰电路中的一个加扰电路,所述第二子数据流中的多个数据块被所述多个加扰电路在一个时钟周期获取,所述第二子数据流中的多个数据块中的最后一个数据块被所述第三加扰电路获取,所述最后一个数据块是所述多个数据块将被串行传输时最后被传输的数据块,所述第二加扰因子是由所述加扰多项式以及所述第二数据块在所述第二子数据流中的位置确定的加扰因子,所述反馈数据包括对所述第三加扰电路生成的加扰数据进行一个时钟周期的寄存后得到的数据,或者,所述反馈数据包括对被执行了一个时钟周期的寄存的由所述第三加扰电路提供的反馈数据进行反馈计算得到的第一结果以及所述第三加扰电路生成 的数据计算结果进行异或计算得到的结果;
    对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成的加扰数据;
    将所述第二加扰电路生成的加扰数据输出。
  7. 根据权利要求6所述的加扰装置,其特征在于,所述第二加扰电路,具体用于执行如下步骤:
    使用所述第一加扰因子中的第一加扰参量和所述第一参数进行相乘,得到所述第二加扰电路生成的第一相乘结果;
    使用所述第一加扰因子中的第二加扰参量和所述第二数据块进行相乘,得到所述第二加扰电路生成的第二相乘结果;
    将所述第一相乘结果和所述第二相乘结果进行异或计算从而得到所述第二加扰电路生成的数据计算结果。
  8. 根据权利要求6所述的加扰装置,其特征在于,所述第二加扰电路,具体用于执行步骤:
    根据所述第二加扰因子中的常数矩阵以及所述常数矩阵的幂指数对所述第三加扰电路提供的反馈数据进行异或计算从而得到所述第二加扰电路生成的异或结果,所述幂指数根据所述第二数据块在所述第二子数据流中的位置确定;
    根据所述第二数据块在第二子数据流中的位置对所述异或结果进行移位操作,得到所述第二加扰电路生成的反馈计算结果。
  9. 根据权利要求6至8中任一项所述的加扰装置,其特征在于,所述第二加扰电路,具体用于执行如下步骤:
    若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
    D′n,j=M×Nj-1+F×Dn,j
    其中,D′n,j为所述第二加扰电路生成的数据计算结果,Dn,j为所述第二数据块,Nj-1为所述第一参数,M为所述第一加扰因子中的第一加扰参量,F为所述第一加扰因子中的第二加扰参量,
    Figure PCTCN2015096032-appb-100026
    Figure PCTCN2015096032-appb-100027
    其中,所述Pnext为所述加扰装置中的状态寄存器的下一个时钟周期的状态取值,所述Pcurr为所述状态寄存器的当前时钟周期的状态取值,所述
    Figure PCTCN2015096032-appb-100028
    为所述数据流中di对应的加扰数据,所述di为所述数据流中的第i个比特;
    Figure PCTCN2015096032-appb-100029
    Figure PCTCN2015096032-appb-100030
    M=H×J;
    其中,J为逆序计算参量,
    Figure PCTCN2015096032-appb-100031
    其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
    Figure PCTCN2015096032-appb-100032
    为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
    通过如下方式对第三加扰电路生成的反馈数据进行反馈计算:
    Figure PCTCN2015096032-appb-100033
    其中,D″n,j为所述第二加扰电路生成的反馈计算结果,
    Figure PCTCN2015096032-appb-100034
    为所述第三加扰电路生成的加扰数据,Mj为所述第二加扰因子中的第三加扰参量;
    通过如下方式对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算:
    Figure PCTCN2015096032-appb-100035
    其中,
    Figure PCTCN2015096032-appb-100036
    为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
  10. 根据权利要求6至8中任一项所述的加扰装置,其特征在于,所述第二加扰电路,具体用于执行如下步骤:
    若所述数据流中每个数据块为n个比特,所述第二数据块为所述数据流中的第j个数据块,所述第一数据块为所述数据流中的第j-1个数据块,
    Figure PCTCN2015096032-appb-100037
    其中,
    Figure PCTCN2015096032-appb-100038
    D′n,j为所述第二加扰电路生成的数据计算结果,Dn,i为所述第二数据块所属的子数据流中的一个数据块,G=T-1×F,F为所述第一加扰因子中的第二加扰参量,
    Pnext=A×Pcurr+B×di
    Figure PCTCN2015096032-appb-100039
    其中,Pnext为状态寄存器的下一个时钟周期的状态取值,Pcurr为所述状态寄存器的当前时钟周期的状态取值,
    Figure PCTCN2015096032-appb-100040
    为所述数据流中di对应的加扰数据,di为所述数据流中的第i个比特;
    An=T-1×M×T;
    Figure PCTCN2015096032-appb-100041
    t满足如下关系:t=n-m,m为A的阶数,
    Figure PCTCN2015096032-appb-100042
    b=[1 0 … 0]T
    Figure PCTCN2015096032-appb-100043
    Figure PCTCN2015096032-appb-100044
    Ta=Om×b,Ib为b阶单位阵,
    Figure PCTCN2015096032-appb-100045
    Figure PCTCN2015096032-appb-100046
    M=H×J;
    其中,J为逆序计算参量,
    Figure PCTCN2015096032-appb-100047
    其中,V″n,j=T-1×D″n,j,D″n,j为所述第二加扰电路生成的反馈计算结果,
    Figure PCTCN2015096032-appb-100048
    Figure PCTCN2015096032-appb-100049
    为所述第三加扰电路生成的加扰数据,
    Figure PCTCN2015096032-appb-100050
    为所述第二加扰因子中的第四加扰参量;
    所述第二加扰电路对所述第二加扰电路生成的数据计算结果和所述第二加扰电路生成的反馈计算结果进行异或计算从而得到所述第二加扰电路生成 的加扰数据,包括:
    Figure PCTCN2015096032-appb-100051
    其中,
    Figure PCTCN2015096032-appb-100052
    V′n,j=T-1×D′n,j,V″n,j=T-1×D″n,j
    Figure PCTCN2015096032-appb-100053
    为所述第二加扰电路生成的加扰数据,D′n,j为所述第二加扰电路生成的数据计算结果,D″n,j为所述第二加扰电路生成的反馈计算结果。
PCT/CN2015/096032 2015-11-30 2015-11-30 一种数据加扰方法和加扰装置 WO2017091958A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP15909475.4A EP3376725B1 (en) 2015-11-30 2015-11-30 Data scrambling method and scrambling apparatus
PCT/CN2015/096032 WO2017091958A1 (zh) 2015-11-30 2015-11-30 一种数据加扰方法和加扰装置
CN201580002380.5A CN107431672B (zh) 2015-11-30 2015-11-30 一种数据加扰方法和加扰装置
US15/991,477 US10715360B2 (en) 2015-11-30 2018-05-29 Data scrambling method and scrambling apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/096032 WO2017091958A1 (zh) 2015-11-30 2015-11-30 一种数据加扰方法和加扰装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/991,477 Continuation US10715360B2 (en) 2015-11-30 2018-05-29 Data scrambling method and scrambling apparatus

Publications (1)

Publication Number Publication Date
WO2017091958A1 true WO2017091958A1 (zh) 2017-06-08

Family

ID=58796046

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/096032 WO2017091958A1 (zh) 2015-11-30 2015-11-30 一种数据加扰方法和加扰装置

Country Status (4)

Country Link
US (1) US10715360B2 (zh)
EP (1) EP3376725B1 (zh)
CN (1) CN107431672B (zh)
WO (1) WO2017091958A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017091958A1 (zh) * 2015-11-30 2017-06-08 华为技术有限公司 一种数据加扰方法和加扰装置
CN110661622A (zh) * 2019-10-10 2020-01-07 北京淳中科技股份有限公司 数据包加密方法及解密方法、数据包发送端及接收端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095218A1 (en) * 2006-10-20 2008-04-24 Brian Murray Methods And Apparatus For Interfacing A Plurality Of Encoded Serial Data Streams To A Serializer/Deserializer Circuit
CN103745746A (zh) * 2013-12-31 2014-04-23 华为技术有限公司 数据处理方法、加扰器和存储控制器
CN104185094A (zh) * 2013-05-24 2014-12-03 华为技术有限公司 传输数据的方法、装置和系统
CN105009540A (zh) * 2013-12-31 2015-10-28 华为技术有限公司 一种加扰方法及加扰装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02184970A (ja) * 1989-01-11 1990-07-19 Ricoh Co Ltd 3次式演算装置
US6519738B1 (en) * 2000-03-07 2003-02-11 International Business Machines Corporation Method and apparatus for high-speed CRC computation based on state-variable transformation
US6628725B1 (en) * 2001-03-28 2003-09-30 Ciena Corporation Method and system for encoding data for transmission over a serial link
CN101022283A (zh) * 2007-03-15 2007-08-22 中兴通讯股份有限公司 一种比特加扰并行处理方法和装置
US20090103727A1 (en) * 2007-10-17 2009-04-23 Heywood Gareth M Sync-bit Insertion for Timing Reference Signals to Prevent Long Runs of Static Data in Serial Digital Interfaces
CN101599811B (zh) * 2008-06-02 2011-04-06 华为技术有限公司 一种数据处理装置,通信设备以及数据处理方法
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US8588426B2 (en) * 2011-02-21 2013-11-19 Blackberry Limited Methods and apparatus to secure communications in a mobile network
US9165677B2 (en) * 2011-05-17 2015-10-20 Maxlinear, Inc. Method and apparatus for memory fault tolerance
CN102869097B (zh) 2011-07-07 2015-07-08 华为技术有限公司 一种上行控制信令的发送、接收方法和相关设备
US10390333B2 (en) * 2013-05-02 2019-08-20 Huawei Technologies Co., Ltd. System and method for transmission source identification
CN103475452B (zh) * 2013-09-10 2017-04-05 电子科技大学 一种针对信道码与扰码复合的扰码抵消方法
CN103931146B (zh) * 2014-01-03 2016-11-16 华为技术有限公司 数据处理的方法和装置
WO2017091958A1 (zh) * 2015-11-30 2017-06-08 华为技术有限公司 一种数据加扰方法和加扰装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080095218A1 (en) * 2006-10-20 2008-04-24 Brian Murray Methods And Apparatus For Interfacing A Plurality Of Encoded Serial Data Streams To A Serializer/Deserializer Circuit
CN104185094A (zh) * 2013-05-24 2014-12-03 华为技术有限公司 传输数据的方法、装置和系统
CN103745746A (zh) * 2013-12-31 2014-04-23 华为技术有限公司 数据处理方法、加扰器和存储控制器
CN105009540A (zh) * 2013-12-31 2015-10-28 华为技术有限公司 一种加扰方法及加扰装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3376725A4 *

Also Published As

Publication number Publication date
EP3376725A4 (en) 2018-12-05
EP3376725B1 (en) 2020-06-10
US10715360B2 (en) 2020-07-14
EP3376725A1 (en) 2018-09-19
CN107431672B (zh) 2020-02-14
US20180278443A1 (en) 2018-09-27
CN107431672A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
US9942064B2 (en) Data processing method and apparatus
US9071479B2 (en) High-speed parallel decision feedback equalizer
CN101366181B (zh) 高速传输系统
CN105264778B (zh) 一种crc计算方法及装置
US20160315788A1 (en) Data processing method and apparatus
JP6826545B2 (ja) シリアルデータストリームを処理するための装置
US10237782B2 (en) Hardware acceleration for batched sparse codes
EP3079324B1 (en) Scrambling method and scrambling apparatus
Cui et al. A real-time design based on FPGA for expeditious error reconciliation in QKD system
CN107124251A (zh) 一种基于任意内核的极化码编码方法
JP2018160907A (ja) トランシーバのためのフレキシブルprbsアーキテクチャ
WO2017091958A1 (zh) 一种数据加扰方法和加扰装置
CN107992283B (zh) 一种基于降维实现有限域乘法的方法和装置
WO2015180545A1 (zh) 加扰装置及加扰配置方法
CN110519004B (zh) 一种编码方法及相关设备
JP6665984B2 (ja) 制御コードのためのポインタの生成を含む、受信されたシンボルを集約およびエンコーディングするための方法および装置
CN104508983A (zh) 用于对带反馈的并行输入数据执行流水操作的方法和设备
US10680856B1 (en) Thermometer-encoded unrolled DFE selection element
Rakesh et al. Linear-code multicast on parallel architectures
WO2014066773A1 (en) Flexible scrambler/descrambler architecture for a transceiver
Savalam et al. Implementation and design of AES S-box on FPGA
Salvador et al. 100 Gbit/s scrambler architectures for OTN protocol: FPGA implementation and result comparison
US9106460B1 (en) Running disparity computation predictor
US11347476B2 (en) Digital filtering using combined approximate summation of partial products
Maragkoudaki et al. Energy-efficient encoding for high-speed serial interfaces

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15909475

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2015909475

Country of ref document: EP