로그인 해주세요.

미니기기 / 음향 게시판 *스마트폰과 PC, 카메라, 스피커 등 IT 미니기기와 음향기기에 관해 교류하는 게시판입니다.

ARMCC

미니 ARM64쪽 IPC가 미칠듯이 높게 나오는 이유에 대한 추정.

  • ARMCC
  • 조회 수 924
  • 2020.11.08. 13:10

대충 추정컨데 두가지 입니다.

 

그리고 두 가지가 결국은 명령어셋의 우열로 귀결됩니다.

 

우선 ARM64는 범용 레지스터가 31개로 15개인 x86의 두배에요.  거기에 3오퍼랜드 연산, 즉 c=a+b가 기본지원됩니다.  x86은 2오퍼랜드 연산만 되죠. 즉 b=a+b만 할 수 있고 c=a+b는 할 수 없습니다...  아직도요....

 

ARM64의 컴파일러는 소스코드에서 바이너리를 생성하는 과정에서 병렬실행 가능한 부분들을 충분한 시간을 들여(CPU 관점에서는 사실상 거의 무한정의 시간입니다) 찾아내서 한 번에 31개의 레지스터에 끌어올려서 단 1클럭에 ALU에서 실행할 수 있는 실행 바이너리를 만들어 내는 게 가능합니다. 병렬실행 가능한 코드를 명시적으로 컴파일러가 생성하기 매우 쉽죠.

 

반면 x86은 레지스터 숫자가 절반에 불과하다 보니 컴파일러가 병렬실행이 가능한 부분을 소스코드에서 찾아내도 레지스터에 모두 배치하지를 못합니다. 레지스터로 배치 못하는 명령어들은 메모리(주로 L1캐시)상에서 로드 된 후에 나중에  ALU로 가야 하니 결국 1클럭당 병렬실행을 할 수 있도록 바이너리 생성을 제대로 못해내는 거죠.

물론 그런 문제점들을 완화하기 위해 CPU에는 내부 히든레지스터가 있어서(아키텍처 설명에서 주로 나오는 레지스터 파일 100여개 등등이 그겁니다.) CPU 스스로도 런타임에 병렬성을 찾아내도록 되어 있습니다만...

컴파일러가 충분한 시간을 들여서 찾아낸 바이너리의 병렬성과 CPU가 런타임에 불과 몇클럭 사이에 바이너리에서 추가로 찾을 수 있는 병렬성의 숫자는 격차가 날 수 밖에 없습니다.  게다가 히든레지스터 설계는 ARM이든 x86이든 현대 CPU설계들은 기본적으로 들어가 있는 거라서 x86만 이득을 보는 것도 아닙니다.

즉 IPC 관점에서는 명령어셋의 우열에 의해  말 그대로 격차가 발생할 수 밖이 없는 조건입니다. 

 

두번째는 x86특유의 지저분한 폐기물급 명령어 구조입니다.  예를 들어 버거킹에서 햄버거용 재료가 본사에서 들어오는걸 생각해 보면 되는데 재료박스 사이즈는 제각각인데다가 거기 들어있는 빵, 패티, 야채, 소스 등등이 정리되지 않고 마구 섞여 들어오는 식입니다. 그러니 뒤섞인 식자재를 수령하는 것도 박스사이즈가 제각각이라 힘들고 정리해서 분리하는  것도 안의 내용물이 개판으로 섞여 있어서 힘들고...  뭘 해도 힘드니까 결국 결과물인 uOP를 한 번에 뽑아내는 숫자를 늘리기 어렵죠.   AMD의 언급도 딱 그거고요. 디코더 성능을 올리려고 했더니 설계가 복잡해지면서 오히려 전반적인 성능이 떨어질 정도라고.   

반면 ARM64는 재료박스 사이즈가 정확히 규격화 되어 있어서 실어나르기도 편하고 박스 내의 파티션도 고정되어 있어서 디코딩부가 일하기 훨씬 쉽습니다.  그러니 필요하면 한 번에 뽑아내는 uOP의 숫자를 확 늘릴 수도 있는 것이고...  

 

물론 x86도 그 문제를 완화하기 위해서 uOP캐시 등의 구조를 일찌감치 도입 했지만...  그래봤자 캐시라는 존재는 미스 나면 결국 디코더가 다시 출동해야만 하는 물건이고  그 uOP캐시는 요즘은 ARM64에도 달려나오는 거에요...   x86이 uOP공급 대역폭을 uOP캐시만 철썩같이 믿고 가야하는 동안  ARM64는 디코더와 uOP캐시 둘 다를 원활하게 활용할 수 있으니  그 유연성은 상대가 안되는 겁니다. 

한놈은 칼이 형편없고 방패가 좋은데 상대놈은 칼도 방패도 다 좋으면 상대놈이 훨씬 유리할 수 밖에 없죠.

 

세줄요약.

1. x86은 명령어셋의 한계로 인해 레지스터가 절반에 불과해서 컴파일러가 못찾는 병렬성을 CPU가 감당해야 한다.  반면 ARM64는 컴파일러도 충분한 시간을 들여 병렬성을 찾아내고 CPU도 또한번 병렬성을 찾아서 실행한다.

2. x86 디코더는 개판인 명령어셋을 한땀한땀 풀어내서 uOP로 변환하는 빡센 작업을 수행해야 한다. ARM64는 그런 거 없다. 하도 빡세서 x86이 uOP캐시를 도입했더니 정작 ARM64도 그걸 도입했다.

3. 뭘 해도 x86은 나쁜칼과 좋은방패를 싸우는 상황인데 ARM64는 좋은칼과 좋은방패로 싸우는 상황이다. IPC싸움에서 근본적으로 밀릴 수 밖에 없다.  

댓글
10
딸기따알기
1등 딸기따알기
2020.11.08. 13:33

와.. 도대체 이런 지식은 어디서...

[딸기따알기]님의 댓글을 신고합니다. 취소 신고
딸기맛치킨
딸기맛치킨 딸기따알기 님께
2020.11.08. 13:53

본문 내용 자체는 대학 컴공만 가도 다 가르쳐 주는 내용입니다.
물론 본문 내용처럼 해석하는건 배우는것과는 다른 이야기지만요
본문 내용이 참 설명 잘 해두셨습니다.

[딸기맛치킨]님의 댓글을 신고합니다. 취소 신고
2등 액티브r
2020.11.08. 13:44

인텔 아톰이 ARM과 잘 싸울 줄 알았지만 떡발린 이유가 있었군요.오히려 호환성만 해결하면 ARM이 PC 시장도 잡아먹을 상황...

[액티브r]님의 댓글을 신고합니다. 취소 신고
ARMCC
글쓴이
ARMCC 액티브r 님께
2020.11.08. 16:23

요즈음 A72나 A73급 아키텍처에 Ubuntu리눅스가 아예 정식으로 포팅되서 나오는 상황이라 드디어 A72/A73급과 아톰급의 1:1비교가 수월해 졌는데 역시나 성능적으로도 A72/73이 당시 아톰급에 비해 밀리는 요소가 없더군요.  

[ARMCC]님의 댓글을 신고합니다. 취소 신고
RuBisCO
3등 RuBisCO
2020.11.08. 13:46

디코더의 단순화부분은 사실 Aarch32와 Aarch64를 분리한게 정말 유효한거 같습니다.

[RuBisCO]님의 댓글을 신고합니다. 취소 신고
ARMCC
글쓴이
ARMCC RuBisCO 님께
2020.11.08. 16:24

그러면서 RISC 치고는 비교적 지저분했던 ARM32쪽 레거시를 싹 걷어낸 게 주효했죠. 

[ARMCC]님의 댓글을 신고합니다. 취소 신고
전설의고양이
전설의고양이
2020.11.08. 15:36

계속 발전이 된다면 데탑에서 ARM 소켓형이 나올지도요 ㄷㄷ 인텔이랑 암드는 ARM에 대해선 어케 생각하는지 궁금하네요

[전설의고양이]님의 댓글을 신고합니다. 취소 신고
ARMCC
글쓴이
ARMCC 전설의고양이 님께
2020.11.08. 17:04

인텔은 애초에 생각이고 뭐고 없고요...  암드는 ARM하고 정면경쟁 한다고 언급한 상황입니다. 

[ARMCC]님의 댓글을 신고합니다. 취소 신고
콘칩
콘칩
2020.11.09. 10:07

그 당시에는 예상하지 못한 태생적인 비효율을 어떻게든 보완하고 땜빵하면서 진화해온 레거시 설계와, 그 과정에서 누적된 경험과 지식으로 아예 처음부터 싹 재설계해서 결함을 제거한 새로운 설계의 경쟁이니 당연히 후자가 뭘 해도 유리하다는 거군요

[콘칩]님의 댓글을 신고합니다. 취소 신고
ARMCC
글쓴이
ARMCC 콘칩 님께
2020.11.09. 12:54

바로 그렇습니다.  번외로 SIMD 명령어셋 조차도 ARM의 새로운 SVE는 인텔 SSE계열의 삽질과 자사 NEON의 삽질 등을 거쳐서 벡터 넓이를 유연하게 가져갈 수 있도록 했으니까요.  

[ARMCC]님의 댓글을 신고합니다. 취소 신고
취소
번호 분류 제목 글쓴이 날짜 조회 수
공지 공지 사이트 이용 수칙 230228 수정 file admin 18.08.04 117768 13
핫글 미니 갤탭은 이미 슬림화가 적용이 되었다고 봐도 무방하죠 [12] [성공]함께크는성장 24.08.07 1144 22
핫글 미니 잘 모를 수도 있는 갤럭시 전화 팁 [12] file 여가어딥미코 24.08.07 1461 17
핫글 미니 근데 폰 슬림화 경쟁은 '새로운 시도'가 아니지 않나요? [11] file Stellist 24.08.07 666 16
89544 미니 OnLeaks 노트10 렌더링 [12] file 다잊어야해욥 19.06.06 600 0
89543 미니 그래도 LG 개발자 분들 고군분투 하시는군요 [3] file 다잊어야해욥 19.06.15 600 0
89542 미니 이게 또 폴드랑 연결되네요 ㅋㅋㅋ [5] 특이점 19.06.30 600 0
89541 미니 화웨이 Mate 30은 노치 디스플레이 [2] file 플래그쉽GU 19.07.05 600 0
89540 미니 갤럭시 버즈 서드파티 케이스 간단 후기 [2] file 노랑통닭 19.07.16 600 0
89539 미니 삼성이 성인용VIVE 회사에게 사과한거 아세요? [9] 하렌쿠우 19.08.30 600 0
89538 미니 소니 워크맨 레트로 40주년 한정판 공개.jpg [7] file LG알바 19.09.05 600 0
89537 미니 디자인 하던사람으로써 보는 아이폰 [12] file 소나기 19.09.11 600 1
89536 미니 지금보면 1세대 패드프로 산사람이 승리자 같네요 [14] asS9 19.09.13 600 0
89535 미니 이번 아이폰11프로 하단 [3] 소나기 19.09.14 600 0
89534 미니 CCSWE 앱 이거 먹튀안하겟죠? [5] 배붕이 19.09.27 600 0
89533 미니 애플, 10.2인치 아이패드의 국내 가격 발표 [16] 스퀴니 19.09.29 600 0
89532 미니 쥐들이 많아요 [4] file Pepsi베어 19.10.07 600 0
89531 미니 째드래곤의 눈물 [13] file 두목원장 19.10.25 600 1
89530 미니 메종 키츠네 워치 페이스 누아르(블랙) 몇 가지 수정해봤습니다. [13] file Havokrush 19.11.07 600 2
89529 미니 A30 업데이트 후기 [3] file aleji 19.11.12 600 0
89528 미니 카더라] 일본측이 불산, 감광액 등 원활하게 승인하고 정상화되는 국면 [12] 갤러리별 19.11.16 600 0
89527 미니 SKY브랜드 달고 나오는건 그냥 걸러야겠네요 [10] Aimer 19.11.23 600 0
89526 미니 갤럭시북s 꽤 쓸만할거 같은데요? [9] file 달콩이 19.12.06 600 0
89525 미니 안드로이드폰에 에어팟프로 사용중이신분 있읍니까? [11] 돋을볕 19.12.11 600 0
89524 미니 갤럭시북 이온 소개 올라왔습니다 [9] 존버합니다 19.12.11 600 1
89523 미니 끝없이 무거워지는 카카오톡? [11] 스퀴니 19.12.20 600 0
89522 미니 [5] 정치닉네임23949591 19.12.29 600 0
89521 미니 아이폰9, 맥북프로 13인치 업데이트, 애플워치 프로덕트레드? [3] 팝카드있으세요 20.01.26 600 0
89520 미니 Z 플립이 855+ + 4G인 이유는 [6] 판다다판다 20.02.10 600 1

추천 IT 소식 [1/]

스킨 기본정보

colorize02 board
2017-03-02
colorize02 게시판

사용자 정의

1. 게시판 기본 설정

게시판 타이틀 하단에 출력 됩니다.

일반 게시판, 리스트 게시판, 갤러리 게시판에만 해당

2. 글 목록

기본 게시판, 일반 게시판, 썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

3. 갤러리 설정

4. 글 읽기 화면

기본 10명 (11명 일 경우, XXXXX 외 1명으로 표시)

5. 댓글 설정

일정 수 이상의 추천을 받은 댓글에 표시를 합니다.

6. 글 쓰기 화면 설정

글 쓰기 폼에 미리 입력해 놓을 문구를 설정합니다.

서버에 요청 중입니다. 잠시만 기다려 주십시오...