8b/10b 인코딩은 8비트 데이터를 10비트 심볼로 변환하여 클럭 정보를 내장하고, 데이터와 클럭을 동일한 배선으로 전송하는 직렬 통신 방식이다. 이 방식은 Low/High 상태의 장기간 지속을 방지하고, DC 균형을 유지하며, 런닝 디스패리티를 통해 오류를 검출한다. 8b/10b 인코딩은 5b/6b와 3b/4b 인코딩 단계를 거치며, 데이터 심볼 외에 제어 심볼(K 코드)을 사용하여 프레임 시작/종료 등을 제어한다. IBM의 특허 만료 후 널리 사용되어 기가비트 이더넷, 파이버 채널, PCI Express 등 다양한 통신 기술에 적용되었으며, 8b/10b에서 발생하는 노이즈 문제를 해결하기 위해 스크램블링이 사용되기도 한다. 64b/66b, 128b/130b, 128b/132b 인코딩은 8b/10b의 대안으로 개발되었다.
더 읽어볼만한 페이지
통신 표준 - CAN 버스 CAN 버스는 1983년 로버트 보쉬 유한회사에서 개발된 차량 내 통신 네트워크 프로토콜로, 자동차, 농업 장비 등 다양한 분야에서 전자 제어 장치 간의 통신을 가능하게 한다.
통신 표준 - 고급 데이터 연결 제어 고급 데이터 연결 제어(HDLC)는 IBM의 SDLC 프로토콜을 기반으로 개발되어 ITU, ANSI 등에서 표준화된 동기식/비동기식 데이터 링크 제어 프로토콜로서, 프레임 구조 정의, 투명성 확보 기법, 다양한 프레임 종류를 통해 통신 요구를 지원한다.
8b/10b 인코딩은 8비트 데이터를 10비트 ''심볼'' (또는 ''문자'')로 변환하여 전송한다. 하위 5비트는 6비트 그룹(5b/6b)으로, 상위 3비트는 4비트 그룹(3b/4b)으로 인코딩되어 10비트 심볼을 형성한다. 데이터 심볼은 D.x.y (x: 0-31, y: 0-7), 제어 문자는 K.x.y로 표시된다.
8b/10b 인코딩은 1024개 심볼 중 일부를 제외하여 연속된 동일 비트 런 길이를 5개로 제한하고, 0과 1의 개수 차이를 2 이하로 보장한다. 256개 8비트 워드 중 일부는 두 가지 방식으로 인코딩 가능하며, 이를 통해 직렬 데이터 스트림에서 장기적인 DC 균형을 달성한다. 따라서 변압기 결합 비차폐 연선 쌍 (이더넷)이나 자동 게인 제어를 사용하는 광 수신기 등 하이패스 특성 채널을 통해 데이터 스트림을 전송할 수 있다.[1]
2. 1. 클럭 복구
8b/10b 방식은 시리얼 데이터 안에 클럭을 내장하여 데이터와 클럭의 전송을 동일한 배선으로 수행하는 것이 특징이다.[1]
데이터와 클럭을 동시에 통신할 때, Low 또는 High 상태가 장기간 지속되면 클럭을 추출할 수 없게 될 수 있다. 8b/10b는 어떤 데이터에 대해서도 Low/High 상태가 4 클럭 이하가 되도록 변환한다. 이를 통해 대역폭의 20%를 손실(=데이터 비율이 8/10이 됨)하는 대신 데이터와 클럭을 동일한 배선으로 동시에 송수신하는 것이 가능해진다.[1]
2. 2. DC 균형
8b/10b 방식은 시리얼 데이터 안에 클럭을 내장하여 데이터와 클럭 전송을 같은 배선으로 수행하는 것이 특징이다.
데이터와 클럭을 동시에 통신할 때, Low 또는 High 상태가 장기간 지속되면 클럭을 추출할 수 없게 될 수 있다. 8b/10b는 어떤 데이터에 대해서도 Low/High 상태가 4 클럭 이하가 되도록 변환한다.
2. 3. 런닝 디스패리티 (RD)
8b/10b 코딩은 DC-free 방식으로, 장기적으로 전송되는 1과 0의 비율이 정확히 50%가 되도록 한다. 이를 위해 전송된 1의 개수와 0의 개수의 차이는 항상 ±2로 제한되며, 각 심볼의 끝에서 이 차이는 +1 또는 -1이다. 이 차이를 러닝 디스패리티(RD, Running disparity)라고 한다.[6]
이 방식은 러닝 디스패리티에 대해 +1과 -1의 두 가지 상태만 필요로 하며, 시작은 -1이다.[6]
1과 0의 개수가 같지 않은 각 5b/6b 및 3b/4b 코드에 대해, 전송에 사용될 수 있는 두 가지 비트 패턴이 있다. 하나는 "1" 비트가 2개 더 많은 패턴이고, 다른 하나는 모든 비트가 반전되어 0이 2개 더 많은 패턴이다. 신호의 현재 러닝 디스패리티에 따라, 인코딩 엔진은 주어진 데이터에 대해 두 가지 가능한 6비트 또는 4비트 시퀀스 중 하나를 선택하여 전송한다.
6비트 또는 4비트 코드에 1과 0의 개수가 동일하다면, D.07 (00111) 및 D.x.3 (011)의 서브 블록을 제외하고는 디스패리티가 변경되지 않으므로 선택의 여지가 없다. 두 경우 모두 디스패리티는 여전히 변경되지 않지만, D.07을 만났을 때 RD가 양수이면 000111이 사용되고 음수이면 111000이 사용된다. 마찬가지로, D.x.3을 만났을 때 RD가 양수이면 0011이 사용되고 음수이면 1100이 사용된다.
러닝 디스패리티 규칙
이전 RD
코드워드의 디스패리티
선택된 디스패리티
다음 RD
-1
0
0
-1
-1
±2
+2
+1
+1
0
0
+1
+1
±2
-2
-1
3. 변환 방식
8b/10b 인코딩은 8비트 데이터를 10비트 심볼로 변환하는 방식이다. 이 과정은 5b/6b 인코딩과 3b/4b 인코딩의 두 단계로 이루어진다[19]。
8비트 원본 데이터는 `HGF EDCBA`와 같이 표현되며, 상위 3비트(HGF)와 하위 5비트(EDCBA)로 나뉜다. 하위 5비트는 5b/6b 인코딩을 통해 6비트 `abcdei`로, 상위 3비트는 3b/4b 인코딩을 통해 4비트 `fghj`로 변환된다. 이렇게 생성된 6비트와 4비트는 결합되어 10비트 심볼 `abcdei fghj`를 형성하며, 최하위 비트(LSB)부터 전송된다.
5b/6b 인코딩과 3b/4b 인코딩은 각각 짝 불균형 코드로, 각 6비트 또는 4비트 코드 워드는 0과 1의 수가 같거나(불균형 0), 0이 1보다 2개 더 많거나 적은 두 가지 형태를 가진다. 0이 아닌 불균형을 가진 코드를 사용할 때는 실행 불균형(RD)을 토글해야 한다. 즉, 0이 아닌 불균형 코드는 교대로 나타난다.
8b/10b 인코딩은 데이터 심볼(D 코드) 외에 프레임 시작/종료, 링크 유휴 상태 등을 나타내는 데 사용되는 12개의 제어 심볼(K 코드)을 정의한다[20]。
5b/6b 인코딩: 입력 데이터의 하위 5비트 (EDCBA)를 6비트 (abcdei)로 변환한다.
3b/4b 인코딩: 입력 데이터의 상위 3비트 (HGF)를 4비트 (fghj)로 변환한다.
3. 1. 5b/6b 인코딩
5b/6b 코드는 입력 데이터의 하위 5비트(EDCBA)를 6비트(abcdei)로 변환하는 방식이다. 8비트 원본 데이터를 `HGF EDCBA` 형태로 표현했을 때 하위 5비트에 해당한다. 5b/6b 테이블은 각 입력값에 대해 '정 심볼'과 '부 심볼' 두 가지 가능한 출력값을 제공하며, 런닝 디스패리티 (RD)에 따라 선택된다. RD는 지금까지 보낸 심볼의 `0`과 `1`의 개수 차이를 의미하며, RD 값에 따라 정/부 심볼 중 하나가 선택된다.
직전 RD가 정(1이 많음)이면, 부 심볼을 보낸다.
직전 RD가 부(0이 많음)이면, 정 심볼을 보낸다.
보낼 심볼의 `1`의 수와 `0`의 수가 같으면, RD의 정/부는 유지된다.
RD의 초기값은 부[19]이다.
5b/6b 변환은 심볼 `D.xx.x`와 같이 표기하며, 8비트 원본 데이터 `0x00~0xFF`는 `D.00.0`, `D.01.0`, ... , `D.31.6`, `D.31.7`와 같이 256종의 심볼로 표현된다.
다음은 IBM에서 구현한 5b/6b 변환 테이블의 예시이다. 이 비트 변환은 정해진 규칙 없이 테이블 변환으로 수행된다.
5b/6b 변환 (하위 데이터)
심볼명
5비트 값 EDCBA
6비트 값 abcdei
정 심볼
부 심볼
D.00
00000
100111
011000
D.01
00001
011101
100010
D.02
00010
101101
010010
D.03
00011
110001
D.04
00100
110101
001010
D.05
00101
101001
D.06
00110
011001
D.07
00111
111000
000111
D.08
01000
111001
000110
D.09
01001
100101
D.10
01010
010101
D.11
01011
110100
D.12
01100
001101
D.13
01101
101100
D.14
01110
011100
D.15
01111
010111
101000
D.16
10000
011011
100100
D.17
10001
100011
D.18
10010
010011
D.19
10011
110010
D.20
10100
001011
D.21
10101
101010
D.22
10110
011010
D.23
10111
111010
000101
D.24
11000
110011
001100
D.25
11001
100110
D.26
11010
010110
D.27
11011
110110
001001
D.28
11100
001110
D.29
11101
101110
010001
D.30
11110
011110
100001
D.31
11111
101011
010100
K 코드(제어용 심볼) 중 K.28.x, K.23.7, K.27.7, K.29.7, K.30.7은 5b/6b 인코딩 방식을 사용한다.[20]
3. 2. 3b/4b 인코딩
HGF
4비트 값 fghj
정 심볼
부 심볼
D.xx.0
000
1011
0100
D.xx.1
001
1001
D.xx.2
010
0101
D.xx.3
011
1100
0011
D.xx.4
100
1101
0010
D.xx.5
101
1010
D.xx.6
110
0110
D.xx.7
111
1110
0001
0111
1000
심볼 중에는 정과 부 두 종류가 준비되어 있는 것이 있는데, 대부분 0과 1의 개수가 다르며, 이를 반전시킨 조로 되어 있다. 지금까지 보낸 심볼의 0과 1의 개수 차이를 런닝 디스패리티 (RD)라고 하며, 이 RD에 따라 정/부 심볼 중 어느 것을 사용할지가 결정된다.[19]
직전 RD가 정(=1이 많음)이면, 다음은 부 심볼을 보낸다.
직전 RD가 부(=0이 많음)이면, 다음은 정 심볼을 보낸다.
보낼 심볼의 1의 수와 0의 수가 같으면, RD의 정/부는 유지한다.
3. 3. 제어 심볼 (K 코드)
8b/10b 인코딩은 데이터 심볼(D 코드) 외에 12개의 제어 심볼(K 코드)을 정의한다. K 코드는 프레임 시작/종료, 링크 유휴 상태 등을 나타내는 데 사용되며, 하위 레벨 제어 기능에 사용되는 특수한 심볼이다. 예를 들어, 파이버 채널에서 K28.5는 루프 중재, 채우기 단어, 링크 재설정 등과 같은 기능을 수행하는 4바이트 시퀀스(정렬된 집합)의 시작 부분에 사용된다.
5b/6b 및 3b/4b 테이블을 통해 전송 가능한 12개의 제어 기호는 다음과 같다.
제어 기호
입력
RD = −1
RD = +1
기호
DEC
HEX
HGF EDCBA
abcdei fghj
abcdei fghj
K.28.0
28
1C
000 11100
001111 0100
110000 1011
K.28.1 †
60
3C
001 11100
001111 1001
110000 0110
K.28.2
92
5C
010 11100
001111 0101
110000 1010
K.28.3
124
7C
011 11100
001111 0011
110000 1100
K.28.4
156
9C
100 11100
001111 0010
110000 1101
K.28.5 †
188
BC
101 11100
001111 1010
110000 0101
K.28.6
220
DC
110 11100
001111 0110
110000 1001
K.28.7 ‡
252
FC
111 11100
001111 1000
110000 0111
K.23.7
247
F7
111 10111
111010 1000
000101 0111
K.27.7
251
FB
111 11011
110110 1000
001001 0111
K.29.7
253
FD
111 11101
101110 1000
010001 0111
K.30.7
254
FE
111 11110
011110 1000
100001 0111
K.28.1, K.28.5, K.28.7은 콤마 심볼로, 수신기에서 심볼 정렬을 찾는 데 사용된다. 콤마 심볼은 비트 스트림 내에서 8b/10b 코드의 정렬을 찾는 동기화에 사용된다. K.28.7을 사용하지 않으면 고유한 콤마 시퀀스 00'''11111'''0 또는 11'''00000'''1은 일반 코드의 어떠한 조합 내에서도 해당 비트 위치에서 의도치 않게 나타날 수 없다.
K.28.7을 허용하는 실제 코딩에서는 동기화 패턴에 대해 더 복잡한 정의를 사용해야 한다. K.28.7과 여러 다른 코드의 조합이 두 코드를 중첩하는 잘못 정렬된 콤마 기호를 형성하기 때문이다. 여러 K.28.7 코드 시퀀스는 감지할 수 없는 잘못 정렬된 콤마 기호를 발생시키므로 허용되지 않는다.
K.28.7은 데이터 스트림에서 단일 비트 오류로 인해 발생할 수 없는 유일한 콤마 심볼이다.
4. IBM 구현
8b/10b 인코딩은 원래 IBM에서 개발되었으며, 1983년에 관련 특허가 출원되었다.[19] IBM 구현은 5b/6b 및 3b/4b 변환 테이블을 사용하여 8비트 데이터를 10비트 심볼로 매핑한다.
8비트 원본 데이터 `HGF EDCBA`는 상위 3비트(HGF)와 하위 5비트(EDCBA)로 나뉘어 각각 1비트씩 추가되어 `abcdei fghj`와 같이 하위 6비트와 상위 4비트로 변환된다. 이 변환은 LSB가 먼저 오도록 수행된다. 심볼은 D.xx.x와 같이 표기되며, 8비트 원본 데이터 0x00~0xFF는 256종의 심볼 (D.00.0, D.01.0, ... , D.31.6, D.31.7)로 표현된다.
이 비트 변환은 정해진 규칙이 없으며, 다음의 완전한 테이블 변환으로 수행된다.
5b/6b 변환 (하위 데이터)
심볼명
5비트 값 EDCBA
6비트 값 abcdei
정 심볼
부 심볼
D.00
00000
100111
011000
D.01
00001
011101
100010
D.02
00010
101101
010010
D.03
00011
110001
D.04
00100
110101
001010
D.05
00101
101001
D.06
00110
011001
D.07
00111
111000
000111
D.08
01000
111001
000110
D.09
01001
100101
D.10
01010
010101
D.11
01011
110100
D.12
01100
001101
D.13
01101
101100
D.14
01110
011100
D.15
01111
010111
101000
D.16
10000
011011
100100
D.17
10001
100011
D.18
10010
010011
D.19
10011
110010
D.20
10100
001011
D.21
10101
101010
D.22
10110
011010
D.23
10111
111010
000101
D.24
11000
110011
001100
D.25
11001
100110
D.26
11010
010110
D.27
11011
110110
001001
D.28
11100
001110
D.29
11101
101110
010001
D.30
11110
011110
100001
D.31
11111
101011
010100
3b/4b 변환 (상위 데이터)
심볼명
3비트 값 HGF
4비트 값 fghj
정 심볼
부 심볼
D.xx.0
000
1011
0100
D.xx.1
001
1001
D.xx.2
010
0101
D.xx.3
011
1100
0011
D.xx.4
100
1101
0010
D.xx.5
101
1010
D.xx.6
110
0110
D.xx.7
111
1110
0001
0111
1000
심볼 중에는 정과 부 두 종류가 준비되어 있는 것이 있는데, 대부분 0과 1의 개수가 다르며, 이를 반전시킨 조로 되어 있다. 지금까지 보낸 심볼의 0과 1의 개수 차이를 런닝 디스패리티 (RD)라고 하며, 이 RD에 따라 정/부 심볼 중 어느 것을 사용할지가 결정된다.
직전 RD가 정(=1이 많음)이면, 다음은 부 심볼을 보낸다.
직전 RD가 부(=0이 많음)이면, 다음은 정 심볼을 보낸다.
보낼 심볼의 1의 수와 0의 수가 같으면, RD의 정/부는 유지한다.
RD의 초기값은 부이다.[19]
데이터를 표현하는 D 코드 외에, 제어용으로 K 코드라고 불리는 12개의 심볼이 있다.[20]
K 코드(제어용 심볼)
심볼명
10비트 값 abcdei fghj
구조
정 심볼
부 심볼
K.28.0
001111 0100
110000 1011
하위 6비트는 K.28이라고 불리는 특수 심볼 001111을 사용한다. 상위 4비트는 D 코드와 거의 같지만 항상 정/부 반전시킨다. 예외적으로 동일 비트가 5개 연속되는 것이 있다.
K.28.1
001111 1001
110000 0110
K.28.2
001111 0101
110000 1010
K.28.3
001111 0011
110000 1100
K.28.4
001111 0010
110000 1101
K.28.5
001111 1010
110000 0101
K.28.6
001111 0110
110000 1001
K.28.7
001111 1000
110000 0111
K.23.7
111010 1000
000101 0111
D.23과 D.xx.7 하단의 조합
K.27.7
110110 1000
001001 0111
D.27과 D.xx.7 하단의 조합
K.29.7
101110 1000
010001 0111
D.28과 D.xx.7 하단의 조합
K.30.7
011110 1000
100001 0111
D.30과 D.xx.7 하단의 조합
5. 8b/10b를 사용하는 기술
IBM 특허 만료 이후, 8b/10b 인코딩은 다양한 통신 기술에 널리 채택되었다. 8b/10b 인코딩이 적용되는 분야는 다음과 같다.
파이버 채널 FC-0 표준은 8b/10b 또는 64b/66b 인코딩 방식을 정의한다.[8] 4GFC 및 8GFC 변형에는 8b/10b 인코딩이 사용되고, 10GFC 및 16GFC 변형에는 64b/66b가 사용된다.[9] 파이버 채널 ''FC1'' 데이터 링크 계층은 신호의 8b/10b 인코딩 및 디코딩을 구현한다.
파이버 채널 8b/10b 코딩 방식은 기가비트 이더넷(1000BASE-X)[13], 파이버 채널(1GFC~8GFC)[14] 등 다른 통신 시스템에서도 사용된다. 8b/10b에서 동일한 심볼을 장시간 연속 전송하면 전기적 변동이 주기적이 되어 기판상에서 노이즈 발생의 원인이 될 수 있다. 10기가비트 이더넷(10GBASE-R)이나 파이버 채널(10GFC・16GFC)에서는 64b/66b가 채택되었다.
8b/10b 인코딩은 특정 코드가 아닌 인코딩 방식이라는 점에 유의해야 한다. 많은 응용 분야에서 동일한 코드를 사용하지만, 전송 최소화 차동 신호처럼 호환되지 않는 구현도 존재한다.
8b/10b 인코딩은 10비트당 2비트의 오버헤드(25%)를 갖는다는 단점이 있다.
6. 1. 64b/66b 인코딩
10기가비트 이더넷의 10GBASE-R 물리 매체 종속 (PMD) 인터페이스를 위해 도입된 64b/66b 인코딩은 8b/10b 인코딩보다 오버헤드가 낮아, 인코딩된 데이터 64비트당 2비트의 오버헤드를 갖는다. 이 방식은 8b/10b 인코딩과 설계가 상당히 다르며, DC 균형, 짧은 런 길이 및 전이 밀도를 명시적으로 보장하지 않고 스크램블링을 통해 통계적으로 보장한다.[10] 64b/66b 인코딩은 PCI Express 3.0 및 USB 3.1에서 128b/130b 및 128b/132b 인코딩 변형으로 확장되어, 이전 버전의 8b/10b 인코딩을 대체했다.[10]
10기가비트 이더넷(10GBASE-R)이나 파이버 채널(10GFC・16GFC)에서는 64b/66b가 채택되었고, PCI Express 3.0이나 USB 3.1 Gen2에서는 128b/130b가 채택되었다.
6. 2. 128b/130b 및 128b/132b 인코딩
PCI Express 3.0 및 USB 3.1은 각각 128b/130b 및 128b/132b 인코딩을 사용하여 8b/10b 인코딩을 대체하고 더 낮은 오버헤드를 제공한다. 더욱 고속 통신에서는 스크램블 처리를 사용하는 방식이 많아지며, 10기가비트 이더넷(10GBASE-R)이나 파이버 채널(10GFC・16GFC)에서는 64b/66b가 채택되었다.[13]
7. 노이즈 대책 (스크램블링)
8b/10b에서 동일한 심볼이 장시간 연속으로 전송되면, 전기적 변동이 주기적이 되므로 기판상에서 노이즈 발생의 원인이 될 수 있다.[13][14][15][16][17][18]
이러한 문제에 대한 대책으로, PCI Express에서는 8비트 데이터에 의사 난수를 이용한 스크램블 처리를 한 후 8b/10b 변환하는 방식을 채택하여, 전송로가 항상 임의의 비트 패턴으로 동작하여 주기적인 변동을 방지하고 있다. 10기가비트 이더넷(10GBASE-R)이나 파이버 채널(10GFC・16GFC)에서는 64b/66b, PCI Express 3.0이나 USB 3.1 Gen2에서는 128b/130b와 같이 더욱 고속 통신에서도 스크램블 처리를 사용하는 방식이 많다.
참조
[1]
간행물
Performance Assessment of DC-Free Multimode Codes
1997-03
[2]
특허
Method and apparatus for encoding binary data
1984-06-26
[3]
특허
Method of transmitting information, encoding device for use in the method, and decoding device for use in the method
1986-10-28
[4]
간행물
A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code
http://domino.resear[...]
2005-04-05
[5]
특허
Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
1984-12-04
[6]
웹사이트
Thoughts on Gigabit Ethernet Physical
https://grouper.ieee[...]
1996-04-01
[7]
웹사이트
Physical Layer Specifications
http://www.mipi.org/[...]
MIPI Alliance
2014-04-20
[8]
문서
Fibre Channel
http://www.t11.org/i[...]
T11
[9]
문서
FIBRE CHANNEL
http://www.t11.org/i[...]
T11
[10]
웹사이트
PCIe 3.0 Encoding & PHY Logical
https://www.pcisig.c[...]
2011-08-06
[11]
특허
Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
1984-12-04
[12]
특허
Method and apparatus for encoding binary data
1984-06-26
[13]
서적
IEEE 802.3z-1998: Media Access Control Parameters, Physical Layers, Repeater and Management Parameters for 1,000 Mb/s Operation
1998-10-01
[14]
웹사이트
特集:IP技術者のためのSAN入門
https://atmarkit.itm[...]
2002-08-22
[15]
웹사이트
IEEE 1394(FireWire)のこれから
https://www.itmedia.[...]
2007-08-16
[16]
서적
PCI Express Base Specification Revision 2.0
https://pcisig.com/s[...]
PCI-SIG
2006-12-20
[17]
웹사이트
大原雄介の最新インターフェイス動向 - Serial ATA 3.0編 (その3)
https://pc.watch.imp[...]
2010-07-12
[18]
서적
Universal Serial Bus Revision 3.2 Specification
https://www.usb.org/[...]
2022-06-03
[19]
문서
IEEE 802.3-2022, Section 36.2.4.4 Running disparity rules
[20]
문서
IEEE 802.3-2022, Table 36–2—Valid special code-groups
[21]
간행물
Performance Assessment of DC-Free Multimode Codes
1997-03
[22]
특허
Method and apparatus for encoding binary data
1984-10
[23]
특허
Method of transmitting information, encoding device for use in the method, and decoding device for use in the method
1986-06
[24]
간행물
A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code
http://domino.resear[...]
2019-12-20
[25]
특허
Byte oriented DC balanced (0,4) 8B/10B partitioned block transmission code
1984-12
[26]
웹인용
Physical Layer Specifications
http://www.mipi.org/[...]
MIPI Alliance
2014-04-20
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.