Semiconductor device using multi-level signaling and coding method thereof
Disclosed is a semiconductor device transmitting a multi-level signal including: an encoder encoding user data into encoded data; and a transmission driver converting the encoded data into a multi-level signal. The encoder includes: a bit adder generating a codeword by adding at least one shaping parity bit to the user data; an encoding operator generating candidate encoded data by performing an encoding operation on the codeword; a metric operator calculating metric values by using a metric operation equation for the candidate encoded data; and a metric searcher searching for the metric values to select the encoded data from the candidate encoded data and provide the selected encoded data to the transmission driver.
1 . A semiconductor device comprising:
an encoder configured to encode user data into encoded data; and
a transmission driver configured to convert the encoded data into a multi-level signal,
wherein the encoder is configured to:
generate a plurality of codewords by adding a corresponding plurality of different sets of at least one shaping parity bit to the user data;
generate a plurality of candidate encoded data by performing an encoding operation on the plurality of codewords;
calculate metric values based on the plurality of candidate encoded data using a metric operation equation; and
select the encoded data from the plurality of candidate encoded data based on the metric values, and provide the encoded data to the transmission driver.
2 . The semiconductor device of claim 1 , wherein the encoder is configured to:
determine at least one location of the user data at which the plurality of different sets of at least one shaping parity bit are to be added; and
add the plurality of different sets of at least one shaping parity bit to the user data at the at least one location.
3 . The semiconductor device of claim 2 , wherein the encoder is configured to determine the at least one location based on channel information.
4 . The semiconductor device of claim 3 , wherein determining the at least one location comprises:
calculating, as the channel information, a channel probability value for each channel using a Bhattacharyya parameter, and
selecting, as the at least one location at which the plurality of different sets of at least one shaping parity bit are to be added, a channel having a maximum or minimum value of the channel probability value.
5 . The semiconductor device of claim 4 , wherein adding the plurality of different sets of at least one shaping parity bit to the user data comprises adding p bits of shaping parity bits to the user data to generate 2 p codewords as the plurality of codewords.
6 . The semiconductor device of claim 5 , wherein performing the encoding operation comprises performing the encoding operation on the 2 p codewords to generate 2 p candidate encoded data as the plurality of candidate encoded data.
7 . The semiconductor device of claim 6 , wherein the encoding operation includes an operation using a polar code generator matrix, and
the polar code generator matrix is generated by repeating a Kronecker product operation of a kernel matrix.
8 . The semiconductor device of claim 1 , wherein the encoder is configured to select the metric operation equation from a plurality of operation equations based on controlling a number of occurrences of a specific level, a specific transition, or a specific pattern.
9 . The semiconductor device of claim 8 , wherein the plurality of operation equations comprise:
a first operation equation configured to generate fewer level transition 0s;
a second operation equation configured to generate fewer maximum level transitions; and
a third operation equation based on a combination of the first operation equation and the second operation equation.
10 . The semiconductor device of claim 1 , wherein selecting the encoded data from the plurality of candidate encoded data comprises selecting, as the encoded data, a candidate encoded data whose metric value is a maximum or minimum value.
11 . A semiconductor device comprising:
a transmitter configured to transmit a multi-level signal; and
a receiver configured to receive the multi-level signal,
wherein the transmitter is configured to:
generate a plurality of codewords by adding a corresponding plurality of different sets of at least one shaping parity bit to user data,
generate a plurality of candidate encoded data by performing an encoding operation on the plurality of codewords,
calculate metric values based on the plurality of candidate encoded data using a metric operation equation,
select encoded data from the plurality of candidate encoded data based on the metric values, and
convert the encoded data into the multi-level signal, and
wherein the receiver is configured to restore the multi-level signal to the encoded data, decode a codeword corresponding to the encoded data from the encoded data, and restore the user data from the codeword.
12 . The semiconductor device of claim 11 , wherein the receiver comprises:
a decoding operator configured to decode the codeword by performing a decoding operation on the encoded data; and
a bit remover configured to restore the user data by removing the at least one shaping parity bit added to the codeword from a specified position of the codeword.
13 . The semiconductor device of claim 12 , wherein the decoding operation comprises a multiplication operation using a polar code generator matrix.
14 . The semiconductor device of claim 11 , wherein adding the plurality of different sets of at least one shaping parity bit to the user data comprises adding p bits of shaping parity bits to the user data to generate 2 p codewords as the plurality of codewords.
15 . The semiconductor device of claim 11 , wherein the multi-level signal is modulated with 4-level pulse amplitude modulation (PAM-4).
16 . A coding method for a semiconductor device supporting a multi-level signaling system, the method comprising:
generating a plurality of codewords by adding a plurality of different sets of at least one shaping parity bit to user data;
generating a plurality of candidate encoded data by performing an encoding operation on the plurality of codewords;
calculating metric values based on the plurality of candidate encoded data using a metric operation equation; and
selecting encoded data from the plurality of candidate encoded data based on the metric values.
17 . The method of claim 16 , wherein adding the plurality of different sets of at least one shaping parity bit comprises:
determining at least one location of the user data at which the plurality of different sets of at least one shaping parity bit are to be added; and
adding the plurality of different sets of at least one shaping parity bit to the user data at the at least one location.
18 . The method of claim 17 , wherein generating the plurality of codewords comprises generating, as the plurality of codewords, 2 p codewords by adding p bits of shaping parity bits.
19 . The method of claim 18 , wherein performing the encoding operation comprises performing the encoding operation on the 2 p codewords to generate, as the plurality of candidate encoded data, 2 p candidate encoded data.
20 . The method of claim 19 , wherein calculating the metric values comprises calculating 2 p metric values corresponding to the 2 p candidate encoded data.