로그인 해주세요.

미니기기 / 음향 게시판 *스마트폰과 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 117769 13
핫글 미니 근데 폰 슬림화 경쟁은 '새로운 시도'가 아니지 않나요? [13] file Stellist 24.08.07 1008 20
핫글 미니 삼페가 국내 NFC 보급이 미진한 거에 영향을 주긴 했다고 생각하는데 [7] Niflheimr 11:21 370 14
핫글 미니 유튜브 16:9 화면 비율 계산기 입니다 (업데이트) [2] file RASBI 24.08.07 664 9
89560 미니 익스트림스포츠 컬러 뭐할까요 [1] file 일.칠칠이사오삼팔오 21.08.28 232 1
89559 미니 퍼스널 컬러를 진단해보십슈 [13] file 개구리 21.08.28 626 1
89558 미니 세계 유일무이한 e-commerce [2] 👍👍👍 21.08.28 626 1
89557 미니 애플 워치 시리즈7 복제품 중국에서 판매중 [15] file ProjectZer0 21.08.28 787 1
89556 미니 폴드3 기본 필름이 좋은 이유 [4] sourire 21.08.28 1211 1
89555 미니 플립 3 단점발견.. [5] 라노 21.08.29 1048 1
89554 미니 전설의 "그게임"이 갤스토어에서 광고하네요 [3] file 여가어딥미코 21.08.29 934 1
89553 미니 아직도 5g가 안터지는 지역이 있다? [6] file 닉포토 21.08.29 575 1
89552 미니 확실히 플립 안예뻐요 [2] 아재건달_보노뭘보노 21.08.29 788 1
89551 미니 쌈무야~~ [1] file 릅갈통 21.08.29 326 1
89550 미니 갤럭시북S 마지막 재고떨이 느낌입니다 [3] 달콩이 21.08.29 714 1
89549 미니 삼닷은 택배 일요일도 보내는군요. [2] 어리아리 21.08.29 317 1
89548 미니 내비용 폰으로 샤오미 고민중입니다 [23] 숨겨진오징어 21.08.29 892 1
89547 미니 플립은 아이콘 크기가 기기랑 잘 맞네요 Kanata 21.08.29 296 1
89546 미니 버즈 플립케이스는 웃돈 받고 거래되네요 ㄷㄷ [4] Aimer 21.08.29 434 1
89545 미니 플립 제조국이 바뀌었다는 얘기가 있네요 [3] 여가어딥미코 21.08.29 1027 1
89544 미니 와 1테라 외장메모리도 팔고있네요 [6] 긴닉네임2002250504 21.08.29 770 1
89543 미니 폴드3 아라리 케이스 별로네요 [13] 후웨이 21.08.29 937 1
89542 미니 플립3 쓰시는 분들 화면 어떤거 같으신가여 Kanata 21.08.29 201 1
89541 미니 다음 플립은 아마 전면 액정이 좀 커지지 않을까... [3] znrznr 21.08.29 623 1
89540 미니 엑시노스 2200 12월 출시 [11] 으냥 21.08.29 1108 1
89539 미니 서브폰 고민이네요 [5] Kanata 21.08.29 460 1
89538 미니 정든 버즈프로를 뒤로하고.. [4] 일탈백서 21.08.29 607 1
89537 미니 폴드3 전면 디스플레이 카톡 타이핑시 렉.. [8] 도깨비 21.08.29 770 1
89536 미니 S21 베타 빌드업 [2] 감비아도나츠 21.08.30 544 1

추천 IT 소식 [1/]

스킨 기본정보

colorize02 board
2017-03-02
colorize02 게시판

사용자 정의

1. 게시판 기본 설정

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

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

2. 글 목록

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

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

3. 갤러리 설정

4. 글 읽기 화면

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

5. 댓글 설정

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

6. 글 쓰기 화면 설정

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

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