로그인 해주세요.

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

ARMCC

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

  • ARMCC
  • 조회 수 922
  • 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 114170 13
핫글 미니 직구 제한 정리 [7] 룬룬 17:24 632 9
핫글 미니 n3e공정이 궤도에 올랐나보네요.. [7] xclear 13:50 700 5
핫글 미니 란즈크) 플립6 UTG두꺼워지는건 애플 대비때문? [2] update 달에서사탕만드는토끼 18:31 399 4
207987 미니 'S21 phantom gray OWNER' [8] file 으르렁자몽이 21.04.03 710 14
207986 미니 화웨이의 삼성 광고 카피 [7] file 하이프라이즈 21.04.02 1000 14
207985 미니 Lg의 혁신 [8] file 땅콩항공호갱 21.03.27 1000 14
207984 미니 벨벳이 공짜로 풀려서 질렀습니다. [12] file 땅콩항공호갱 21.03.25 1311 14
207983 미니 아이패드 에어 4샀슈 (왔슈) [16] file Ginza 21.03.23 513 14
207982 미니 S21U 일주일정도 썼습니다 [3] file 시공 21.03.20 873 14
207981 미니 S21일반 야간모드 배제하고 찍은 주말출타 사진 [27] file 만삭이 21.03.14 703 14
207980 미니 정말 진지하게 폰 후면 만큼은... [21] file 블릭더 21.03.12 851 14
207979 미니 결국 폰 교체했습니다 [20] file 라니안 21.03.12 1015 14
207978 미니 A32 이쁘네요 ㄷㄷ [18] file Thomasp5675 21.03.11 1515 14
207977 미니 루머, 찌라시) 현재 까지 나온 소문들 [22] 흡혈귀왕 21.03.09 1528 14
207976 미니 [루머] 갤럭시폴드3 모델 두께와 무게 감소 확인 [3] 프로입털러 21.03.09 993 14
207975 미니 고화소는 풍경을 담을때 좋읍니다 [5] file 개구리 21.03.08 515 14
207974 미니 아이패드에서 갤럭시탭으로 이주했습니다. [6] file 후루꾸루 21.03.05 889 14
207973 미니 샀슈 . [8] file 메소쿤 21.03.02 333 14
207972 미니 화룡 S21U 별사진 [11] file Badger 21.03.02 446 14
207971 미니 DXOMARK의 문제점과 제 생각을 정리해봤어요. [8] 감자해커 21.03.02 1699 14
207970 미니 DXO S21U 리뷰 할 말 없네요. [27] file 선라이즈 21.03.01 1176 14
207969 미니 여기가 제일 중립적인거 같아요 [5] A11바이오닉 21.02.28 807 14
207968 미니 s5e 탈모 아이폰의 망령 file 심플리 21.02.27 571 14
207967 미니 후면이 너무 이뻤던 폰들 [19] file 크나앙 21.02.25 1119 14
207966 미니 21U로 찍은 부산 [10] file Hoshizora 21.02.17 563 14
207965 미니 화룡 울트라 도착했네요 [16] file Badger 21.02.16 877 14
207964 미니 카메라에서 센서가 전부는 아닙니다. [35] 감자해커 21.02.13 1069 14
207963 미니 아이폰이 성능이 좋네 감성이 어쩌구 저쩌구 해도 [36] Havokrush 21.02.09 1279 14

추천 IT 소식 [1/]

스킨 기본정보

colorize02 board
2017-03-02
colorize02 게시판

사용자 정의

1. 게시판 기본 설정

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

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

2. 글 목록

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

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

3. 갤러리 설정

4. 글 읽기 화면

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

5. 댓글 설정

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

6. 글 쓰기 화면 설정

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

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