ARM 아키텍처는 x86과 어떻게 다릅니 까? [닫은]


192

x86 아키텍처는 특별히 키보드와 함께 작동하도록 설계 되었습니까? 이 둘의 주요 차이점은 무엇입니까?


37
x86에 내가 모르는 ps / 2 포트가 없다면, 더티 팬츠보다 키보드 용으로 더 이상 내장되어 있지 않다 :-)
paxdiablo

6
키보드 는 실제 장치가 아닌 일반적인 PC 역할을 의미 한다고 생각 합니다.
artless noise

24
x86은 설계되지 않았습니다. 그것은 섬에서기도하려고 시도하는 모든 것을 먹은 이상한 새와 함께 진화했습니다. 오리 청구 오리너구리보다 낯선 것처럼 보이며 새로운 동물이 가득한 배가 나왔을 때는 잘하지 않을 것입니다.
ctrl-alt-delor

5
@richard-슬프게도, 이것은 내가 본 x86에 대한 가장 역사적으로 정확한 설명입니다. 업계에 대해 많은 것을 말해줍니다.
Leeor

6
@Leeor 죄송합니다. 저는 제 의견에 작은 실수를 저질렀는데, 새가 x86의 포식자를 먹었을 때 포식자를 먹었다 고 말했습니다. 조류의 부드러운 깃털이 매우 매우 깔끔하다는 점도 주목할 가치가 있습니다.
ctrl-alt-delor

답변:


306

ARMA는 RISC 동안 (축소 명령어 세트 컴퓨팅) 아키텍처 x86A는 CISC (복합 명령 집합 컴퓨팅) 하나.

이러한 측면에서 핵심 차이점은 ARM 명령어는 레지스터에서 데이터를로드 및 저장하기위한 명령어가 몇 개있는 레지스터에서만 작동하고 x86은 메모리에서 직접 작동 할 수 있다는 것입니다. v8 ARM까지는 기본 32 비트 아키텍처로 다른 바이트보다 4 바이트 작업을 선호했습니다.

따라서 ARM은 더 간단한 아키텍처로, 작은 실리콘 영역과 많은 절전 기능을 제공하는 동시에 x86은 전력 소비와 생산 측면에서 전력 소모자가됩니다.

" x86 아키텍처는 특별히 키보드와 함께 작동하도록 설계 되었습니까? ARM은 이동성을 기대합니까? " 모바일 용 x86키보드와 함께 작동하도록 특별히 설계되지 않았습니다 ARM. 그러나 핵심 아키텍처 선택으로 인해 실제로 x86에는 IOARM과는 달리 직접 작업하기위한 지침이 있습니다 . 그러나 USB와 같은 특수 IO 버스에서는 이러한 기능에 대한 요구도 사라지고 있습니다.

인용 할 문서가 필요한 경우 Cortex-A 시리즈 프로그래머 안내서 (4.0) 에서 RISC와 CISC 아키텍처의 차이점에 대해 설명합니다.

ARM 프로세서는 RISC (Reduced Instruction Set Computer) 프로세서입니다.

x86과 같은 CISC (복합 명령 세트 컴퓨터) 프로세서에는 단일 명령으로 복잡한 작업을 수행 할 수있는 풍부한 명령 세트가 있습니다. 이러한 프로세서는 종종 기계 명령을 내부 작업 시퀀스 (마이크로 코드)로 디코딩하는 상당한 양의 내부 로직을 가지고 있습니다.

반대로 RISC 아키텍처는 더 적은 수의 더 많은 범용 명령을 가지고 있으며,이 명령은 훨씬 적은 수의 트랜지스터로 실행될 수있어 실리콘을보다 저렴하고 전력 효율적으로 만듭니다. 다른 RISC 아키텍처와 마찬가지로 ARM 코어에는 많은 수의 범용 레지스터가 있으며 많은 명령이 단일 주기로 실행됩니다. 간단한 주소 지정 모드가있어 레지스터 내용과 명령어 필드에서 모든로드 / 저장 주소를 확인할 수 있습니다.

ARM 회사는 또한 이러한 용어가 비즈니스에 적용되는 방법을 설명하는 아키텍처, 프로세서 및 장치 개발 문서 라는 제목의 문서를 제공합니다 .

명령어 세트 아키텍처를 비교하는 예제 :

예를 들어 응용 프로그램에서 일종의 바이트 단위 메모리 비교 블록 (컴파일러에서 생성, 세부 정보 건너 뛰기)이 필요한 경우 다음과 같이 보일 수 있습니다. x86

repe cmpsb         /* repeat while equal compare string bytewise */

에있는 동안 ARM가장 짧은 형태처럼 보일 수 있습니다 (등 오류 검사없이)

top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2    /* subtract r2 from r3 and put result into r2      */
beq  top           /* branch(/jump) if result is zero                 */

RISC 및 CISC 명령어 세트의 복잡성이 어떻게 다른지에 대한 힌트를 제공해야합니다.


9
ARMv8-A에는 AArch64라는 64 비트 아키텍처가 있습니다.
kyrias

9
x86에는 매우 강력한 명령이 있지만 팔은 여전히 ​​똑같이 싸울 수 있습니다 (둘 다 시계 속도가 같은 경우). 이것은 x86이 제한된 레지스터 세트 내외부로 데이터를 이동하는 데 1/2의 시간을 소비하기 때문에 암에 우수한 레지스터 세트가 있기 때문입니다 (x86-64의 경우는 더 적음) ). 또한 Arm의 단순성으로 인해 더 큰 캐시를위한 공간이 생겨나 고 모든 명령에 조건부 (캐시 누락이 적어짐)가 있습니다. 또한 arm 's multiple instruction (RISC가 아닌 유일한 명령)으로 데이터를 빠르게 이동할 수 있습니다.
ctrl-alt-delor

4
더 많은 레지스터를 사용하면 ARM 코드를 더 빨리 작성할 수 있습니다. 이 구현을 보면 x86은 5 + 9 × N 클럭을 취하고 ARM은 4 × N 클럭을 취합니다 (두 그림 모두 캐시 누락이 없음). 이 예에서 x86은 명령어 바이트에 대해 더 나은 점수를줍니다 : x86 = 2 바이트, arm = 16 바이트. 보다 현실적인 테스트에서이 메트릭에서 ARM 점수가 훨씬 더 우수합니다. 예를 들어, 종료 루프 r2에서 문자열이 같은지 / 큰지에 대한 정보를 가지므로 조건 코드도 있습니다. 암은 조건 코드를 확인하기 전에 다른 명령을 실행할 수 있습니다. 조건 코드를 확인할 때 팔을 분기하지 않아도됩니다.
ctrl-alt-delor

2
@JeremyFelix이 stackoverflow.com/questions/13106297 / ... 모양이 다릅니다. 다른 유형의 명령어에는 다른 파이프가 있으며 중복 된 명령어도 있습니다. CPU는 명령어를 마이크로 명령어로 나누고 파이프 라인간에 병렬로 실행할 수 있습니다.
auselen

2
“x86은 직접 메모리에서도 작동 할 수 있습니다.” 그러나 x86 (x86-64 이전)의 경우 레지스터가 너무 적기 때문에 "잘"없었으므로 모든 것을 메모리에 저장해야했습니다. 단지 물건을 움직일 수있는 프로그램의 약 ½ 명령. ARM에서는 데이터를 이동하는 데 필요한 명령이 거의 없습니다.
ctrl-alt-delor

94

몇 년 동안 ARM이 전력 소비 측면에서 상당히 실질적인 이점을 가지고있어 모든 종류의 배터리 작동 장치에 매력적이라는 사실을 제외하고는 키보드 또는 모바일에만 특정한 것은 없습니다.

실제 차이점에 비해 ARM에는 레지스터가 더 많고 인텔이 추가하기 훨씬 전에 대부분의 명령어에 대한 예측이 지원되며 거의 모든 곳에서 전력을 절약하기 위해 모든 종류의 기술 (원하는 경우 "트릭"이라고 함)을 오랫동안 통합했습니다.

두 인코딩 명령어의 방식에도 상당한 차이가 있습니다. 인텔은 매우 복잡한 가변 길이 인코딩을 사용하여 명령이 1에서 최대 15 바이트까지 차지할 수 있습니다. 이렇게하면 프로그램이 매우 작을 수 있지만 명령어 디코딩이 비교적 어려워집니다 (명령을 빠르게 병렬로 디코딩하는 것은 완전한 악몽과 같습니다).

ARM에는 ARM과 THUMB의 두 가지 명령어 인코딩 모드가 있습니다. ARM 모드에서는 모든 명령어에 액세스 할 수 있으며 인코딩은 매우 간단하고 빠르게 디코딩 할 수 있습니다. 불행히도 ARM 모드 코드는 상당히 큰 경향이 있으므로 프로그램이 인텔 코드보다 약 두 배의 메모리를 차지하는 것이 일반적입니다. Thumb 모드는이를 완화하려고합니다. 여전히 규칙적인 명령어 인코딩을 사용하지만 레지스터 수를 줄이거 나 대부분의 명령어에서 예측을 제거하고 분기 범위를 줄이는 등 대부분의 명령어를 32 비트에서 16 비트로 줄입니다. 내 경험에 적어도, 이것은 여전히 일반적으로 제공하지 않습니다 매우x86 코드가 얻을 수있는 밀도가 높은 코딩이지만 상당히 가깝고 디코딩은 여전히 ​​간단하고 간단합니다. 코드 밀도가 낮다는 것은 일반적으로 동등한 성능을 얻기 위해 최소한 더 많은 메모리와 일반적으로 더 큰 캐시가 필요하다는 것을 의미합니다.

한 번에 인텔은 전력 소비보다 속도에 더 중점을 두었습니다. 그들은 주로 노트북의 맥락에서 전력 소비를 강조하기 시작했습니다. 랩톱의 경우 일반적인 전력 목표는 상당히 작은 랩톱의 경우 6 와트 정도였습니다. 가장 최근에 ( 훨씬 더 최근에) 휴대 기기 (휴대 전화, 태블릿 등)를 타겟팅하기 시작했습니다.이 시장에서 그들은 몇 와트 정도를보고 있습니다. ARM의 접근 방식은 ARM과 상당히 다르지만 ARM이 주로 마이크로 아키텍처를 강조한 제조 기술을 강조하면서 (ARM이 디자인을 판매하고 다른 사람들에게 제조를 떠난다는 것을 고려하면 놀라운 것은 아닙니다) 상당히 잘 해내 고있는 것 같습니다.

상황에 따라 CPU의 에너지 소비가 종종 전력 소비보다 더 중요합니다. 적어도 용어를 사용하면서 전력 소비는 (거의) 순간적으로 전력 사용량을 말합니다. 그러나 에너지 소비는 속도를 위해 정규화되므로 (예를 들어) CPU A가 작업을 수행하기 위해 2 초 동안 1 와트를 소비하고 CPU B가 동일한 작업을 수행하기 위해 1 초 동안 2 와트를 소비하는 경우 두 CPU 모두 동일한 총량을 소비합니다 CPU B를 사용하면 두 배 빠른 결과를 얻을 수 있습니다.

ARM 프로세서는 전력 소비 측면에서 매우 잘 작동합니다. 따라서 프로세서의 "존재"가 거의 지속적으로 필요하지만 실제로 많은 작업을 수행하지 않는 것이 필요한 경우 잘 작동 할 수 있습니다. 예를 들어 화상 회의를하는 경우 몇 밀리 초의 데이터를 수집하고 압축하여 전송하고 다른 사람으로부터 데이터를 수신하고 압축을 풀고 재생하고 반복합니다. 정말 빠른 프로세서조차도 많은 시간을 할애 할 수 없으므로 이와 같은 작업에서는 ARM이 실제로 잘 작동합니다.

인텔 프로세서 (특히 저전력 응용 제품을위한 Atom 프로세서)는 에너지 소비 측면에서 매우 경쟁력이 있습니다. 최대 속도에 가깝게 작동하는 동안 대부분의 ARM 프로세서보다 더 많은 전력을 소비하지만 빠르게 작업을 완료하므로 더 빨리 절전 모드로 돌아갈 수 있습니다. 결과적으로 우수한 배터리 수명과 우수한 성능을 결합 할 수 있습니다.

따라서이 두 가지를 비교할 때는 측정 대상에주의를 기울여야하며 정직한 관심 대상을 반영해야합니다. ARM은 전력 소비가 매우 우수하지만 상황에 따라 순간 전력 소비보다 에너지 소비에 대해 더 많은 관심을 가질 수 있습니다.


그 이유는 무엇입니까? RISC는 더 많은 RAM이 필요하지만 CISC는 더 작은 코드 크기를 강조하고 RISC보다 전체적으로 더 적은 RAM을 사용합니다
Waqar Naeem

Thumb 모드 (짧은 인코딩을 허용하는 가변 길이)는 차이 가 없습니다 . 그것이 x86이 항상 작동하는 방식입니다 (그러나 명령 길이가 1에서 15 바이트로 다양하며 Thumb2보다 디코딩하기가 훨씬 더 어렵습니다). ARM 모드 (3 연산 및 비파괴 명령어로 고정 너비 인코딩)는 x86과의 차이점입니다!
Peter Cordes

프로세서 속도가 훨씬 빠르다는 것은 큰 도움이되지 않습니다. 화상 회의는 더 좋은 예일 수 있습니다. 지연 시간이 짧다는 것은 적절한 크기의 버퍼로 디코딩을 버스트하고 깊이 또는 중간 수준의 절전 상태로 돌아갈 수 없다는 것을 의미합니다 . 최신 CPU가 완전히 유휴 상태 (클럭 중지 또는 코어의 일부 전원을 끌 때) 또는 상당한 수면 상태에서 캐시를 사용하면 상당한 전력을 절약 할 수 있다는 점을 감안할 때, "Race to Sleep"은 고정 된 양의 계산을위한 에너지 소비의 핵심 개념입니다. 다시 쓰기 후.) ... 그리고 그것은 당신이 다음 단락에서 만드는 요점입니다.
Peter Cordes

@PeterCordes : Thumb Mode 인코딩은 x86 인코딩과 비슷하지 않습니다. 그렇지 않은 있지만 아주 ARM 인코딩과 같은 정기적으로, 여전히 꽤 많은 고정 format.Density의 증가는 단순히 거의 ARM 인코딩에 사용되지 않는 비트를 제거에서 크게이다입니다. 예를 들어, 사실상 모든 ARM 명령어는 조건부이지만 조건은 시간의 상당히 적은 비율로만 사용되므로 대부분의 비 분기 THUMB 명령어는 무조건적입니다.
Jerry Coffin

@PeterCordes : 네 말이 맞아. 화상 회의가 더 좋은 예입니다. 편집했습니다. 감사합니다.
Jerry Coffin

39

Jerry Coffin의 첫 번째 단락에 추가됩니다 . 즉, ARM 설계는 낮은 전력 소비를 제공합니다.

회사 ARM는 CPU 기술 만 라이센스합니다. 그들은 물리적 칩을 만들지 않습니다. 이를 통해 다른 회사는 일반적으로 SOC 또는 시스템 온 칩 이라고하는 다양한 주변 기술을 추가 할 수 있습니다 . 기기가 태블릿, 휴대 전화 또는 차량 내 엔터테인먼트 시스템인지 여부 이를 통해 칩 공급 업체는 나머지 칩을 특정 응용 프로그램에 맞출 수 있습니다. 추가 혜택이 있습니다.

  1. 저렴한 보드 비용
  2. 저전력 (주 1)
  3. 보다 쉬운 제조
  4. 작은 폼 팩터

ARMAMBA 를 통해 SOC 공급 업체를 지원 하여 SOC 구현자가 선반 타사 모듈을 구매할 수 있도록합니다. 이더넷, 메모리 및 인터럽트 컨트롤러와 같은 MIPS 와 같은 일부 다른 CPU 플랫폼은 이것을 지원 하지만 MIPS는 전력을 의식하지 않습니다.

이들 모두는 휴대용 / 배터리 작동 설계에 유리하다. 일부는 모든 곳에서 훌륭합니다. 또한 ARM배터리 작동 장치의 역사가 있습니다. 애플 뉴턴 , Psion Organizers . PDA 소프트웨어 인프라 구조를 만들기 위해 일부 기업에 의해 활용 한 스마트 폰 입력 장치. 그러나 스마트 폰 과 함께 사용하기 위해 GUI를 다시 발명 한 사람들은 더 많은 성공을 거두었습니다 .

Open source툴 세트 의 등장으로 operating systems다양한 SOC칩이 사용되었습니다. 폐쇄 된 조직은 ARM에 사용 가능한 모든 다양한 장치를 지원하려는 데 문제가 있습니다. 가장 인기있는 두 가지 셀룰러 플랫폼 인 Andriod 및 OSx / IOS는 LinuxFreeBSD, Mach 및 NetBSD OS를 기반으로합니다 . 공급 업체가 칩셋에 대한 소프트웨어 지원을 제공 할 수 Open Source있도록 도와줍니다 SOC.

x86키보드에 사용되는 이유 는 자명합니다. 여기에는 소프트웨어가 있으며 더 중요하게는 해당 소프트웨어를 사용하도록 훈련 된 사람들이 있습니다. NetwinderARM원래 키보드 용으로 설계된 시스템 중 하나 입니다. 또한 제조업체는 현재 서버 시장에서 ARM64를보고 있습니다. 연중 무휴 데이터 센터의 전력 / 열 문제입니다.

따라서이 칩을 중심으로 성장 하는 생태계 는 저전력 소비와 같은 기능만큼 중요합니다. ARM1980 년대 중반에서 후반까지 저전력 고성능 컴퓨팅을 위해 노력해 왔으며 많은 사람들이 탑승하고 있습니다.

참고 1 : 알려진 전압에서 서로 통신하고 구동하려면 여러 칩에 버스 드라이버가 필요합니다. 또한 일반적으로 별도의 칩은 SOC 시스템 에서 공유 할 수있는 커패시터 및 기타 전원 구성 요소를 지원해야 합니다.


22

ARM은 이탈리아 스포츠카와 같습니다.

  • 균형이 잘 잡히고 튜닝 된 엔진입니다. 좋은 가속과 최고 속도를 제공합니다.
  • 탁월한 체이스, 브레이크 및 서스펜션. 속도를 늦추지 않고 빨리 멈출 수 있습니다.

x86은 미국의 근육 자동차와 같습니다.

  • 큰 엔진, 큰 연료 펌프. 최고의 최고 속도와 가속도를 제공하지만 많은 연료를 사용합니다.
  • 끔찍한 브레이크, 당신은 속도를 늦추려면 일기에 약속을 넣어야합니다.
  • 끔찍한 조향, 당신은 구석으로 천천히해야합니다.

요약하자면, x86은 1974 년의 디자인을 기반으로 한 직선형이지만 많은 연료를 사용합니다. 팔은 연료를 거의 사용하지 않으며 모서리 (지점)의 속도가 느려지지 않습니다.


은유, 여기에 몇 가지 실제 차이점이 있습니다.

  • 팔에는 더 많은 레지스터가 있습니다.
  • Arm에는 특수 레지스터가 거의 없으며 x86은 모든 특수 레지스터입니다 (이동이 적습니다).
  • Arm에는 메모리 액세스 명령이 거의 없으며로드 / 저장 레지스터 만 있습니다.
  • 팔은 내 디자인으로 내부적으로 하버드 아키텍처입니다.
  • 팔은 간단하고 빠릅니다.
  • Arm 명령어는 아키텍처 상 단일주기입니다 (로드 / 저장 다중 제외).
  • Arm 명령어는 종종 (한 번의 주기로) 둘 이상의 작업을 수행합니다.
  • x86의 루핑 저장 및 자동 증가와 같이 하나 이상의 Arm 명령이 필요한 경우에도 Arm은 여전히 ​​적은 클록 사이클로 명령을 수행합니다.
  • 팔에는 더 많은 조건부 지침이 있습니다.
  • Arm의 브랜치 예측 변수는 간단하지만 (무조건적이거나 역방향 인 경우 브랜치를 가정하고 그렇지 않으면 브랜치를 가정하지 않음) x86의 매우 복잡한 것보다 더 나은 성능을 발휘합니다 (여기에 설명 할 공간이 충분하지 않습니다. ).
  • Arm에는 간단한 일관된 명령어 세트가 있습니다 (수동으로 컴파일하여 명령어 세트를 빠르게 배울 수 있음).

7
이 비유는 이탈리아 CPU가 ARM CPU가없는 동안 얻을 수있는 모든 순간에 고장이 나고, 쉽게 수행 할 수는 있지만 실제로 데스크탑 CPU 속도를 수행 할 수있는 단일 ARM CPU를 구입할 수 없다는 사실에서 비롯 됩니다. 소켓과 메인 보드를 넣을 수는 없습니다. :)
Evi1M4chine

1
성능면에서 가장 크고 빠른 Xeon 프로세서 (예 : E5-2690 v3)와 직접 경쟁하지만 더 낮은 전력과 비용으로 경쟁합니다. quora.com/…
ctrl-alt-delor

1
데이터베이스 및 I / O 서버와 같은 대규모 병렬 워크로드의 경우 반드시 있어야합니다. 단일 스레드 성능을 위해 아무도 x86만큼 큰 ARM 코어를 설계하지 않았습니다. 그들이 할 수 없었던 이유는 아무도 없었습니다. 전력 및 다이 영역에 대한 "x86 세금"은 고전력 CPU 코어에서 고장난 기계에 사용되는 실리콘의 양에 비해 그리 크지 않습니다. x86에는 확실히 사마귀가 있지만 RISC에는 코드 밀도 단점이 있습니다 (일반적으로별로 중요하지 않지만 여전히 중요합니다). 이는 realworldtech.com 포럼에서 반복적으로 논의 됩니다.
Peter Cordes

1
@richard : "필요하지 않은"것들이 많이 있지만 코드 밀도가 높아집니다. 트릭은 코드 크기 / 명령 수와 디코딩 복잡성의 균형을 맞추는 것입니다. 비 순차적 코어의 너비를 늘리면 전력 소비가 매우 비싸므로 각 명령에 더 많은 작업을 포장하는 것이 중요합니다. 디코드 복잡성의 작은 증가는 훨씬 저렴합니다. 최신 x86 CPU는 이미 x86을 빠르게 디코딩합니다. (Uop- 캐시 또는 루프 버퍼 대신 디코더에서 4 와이드 OOO 코어를 공급하기에 충분히 빠르지는 않으며 물론 높은 전력 비용이 든다.)
Peter Cordes

3
@ Evi1M4chine, 그것은 또한 이탈리아 스포츠카가 엄청나게 비싼 반면 미국 근육 차는 상대적으로 저렴하다는 사실을 깨뜨립니다. 그리고 근육 차는 단순하기 때문에 페라리와 같은 것은 매우 복잡하기 때문입니다. CISC와 RISC의 반대
Lorenzo Dematté

15

ARM 아키텍처는 원래 x86 기반 IBM PC 모델만큼 키보드 기반 개인용 컴퓨터 인 Acorn 개인용 컴퓨터 ( 1987 년경 Acorn ArchimedesRiscPC 참조)를 위해 설계되었습니다 . 이후 ARM 구현은 주로 모바일 및 임베디드 시장 부문을 대상으로했습니다.

원래 인텔에서 x86 개발을 수행하는 팀보다 훨씬 작은 엔지니어링 팀 ( Berkeley RISC 참조 )이 거의 동등한 성능의 단순한 RISC CPU를 설계 할 수있었습니다 .

그러나 현재 가장 빠른 ARM 칩은 대규모 엔지니어링 팀이 설계 한 매우 복잡한 다중 문제의 비 순차적 명령어 디스패치 단위를 가지고 있으며 x86 코어에는 명령어 변환 단위에서 제공하는 RISC 코어와 같은 것이있을 수 있습니다.

따라서 두 아키텍처 간의 현재 차이점은 개발 팀이 목표로하는 제품 틈새 시장의 특정 시장 요구와 더 관련이 있습니다. (임의의 견해 : ARM은 아마도 훨씬 더 강력한 전력 및 비용 제약이있는 임베디드 응용 프로그램으로 인해 라이센스 비용이 더 많이들 것입니다. 인텔은 PC 및 서버에서 수익 마진을 위해 성능 우위를 유지해야합니다. 따라서 구현 최적화가 다릅니다.)


여전히 큰 구조적 차이가 있습니다. 그러나 인텔은 훌륭한 작업을 수행하고 돈을 많이 투자하여 제대로 구성된 CPU 실행을 매우 잘 수행했습니다 (이 모든 노력이 잘 설계된 CPU에 투입된 경우 수행 할 수있는 일이 궁금합니다).
ctrl-alt-delor
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.