로그인 해주세요.

미니기기 / 음향 게시판 *스마트폰과 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 117369 13
핫글 음향 버즈3 당근에 18만원에 게또다제 (+ 간단후기) [12] flair 24.07.12 1163 14
핫글 미니 폴드6 구경했는데 진짜 대단하네요. [7] qwerty 01:11 1406 14
핫글 미니 국내 앱 사용 순위 보면 신기하네요 [21] file MrGom™ 24.07.12 1235 11
88144 미니 맥세이프 듀오 리뷰 [2] 빼꼼 20.11.12 416 0
88143 미니 암맥에어로 넘어갈지 심하게 고민되네요. [8] 한우갈비 20.11.12 467 0
88142 미니 말리가 환골탈태 하는 방법은 쉽지않나요? [2] AGRS 20.11.12 351 0
88141 미니 미코 2등 신고드립니다. [4] file 후루꾸루 20.11.12 403 13
88140 미니 오잉... 티다이렉트 10만원 쿠폰 받았네요 [2] Stellist 20.11.12 304 0
88139 미니 폴드2 스킨 왔네요 [6] file 화이트갤럭시 20.11.12 389 5
88138 미니 삼성하고 대만은 진짜 원쑤관계인 듯 [4] Eidio 20.11.12 731 0
88137 미니 아.. 워치3 브론즈 미개봉 구매했는데 꽝.. [4] file GalaxyZFold2 20.11.12 308 0
88136 미니 에어팟프로 잠수함 패치 [3] 개구리 20.11.12 1046 0
88135 미니 광고 없애기 시작하네요 ㅋㅋ [8] file 크루원 20.11.12 806 1
88134 미니 이미 발표했으니 이시점에선 괘아늘거라 생각해서 주저리하자면 [3] 흡혈귀왕 20.11.12 2294 7
88133 미니 옆동네에 올라온 아난드텍 A14 분석 1N9 20.11.12 464 2
88132 미니 폴드2 미니5 두개다 쓰면 오버일까요? [6] 가시멜로관 20.11.12 288 0
88131 미니 RAID5 4BAY 나스 자작기... [4] ARMCC 20.11.12 231 0
88130 미니 하 플스5 이거 소리를 들을 방법이 없네요ㅡㅡ [3] 폴드투를쓰는겁니다 20.11.12 1333 0
88129 미니 lg sk.... lte 품질 차이가 좀 크군요 ; [4] file 데세랄 20.11.12 317 0
88128 미니 노트10+ 3.0베타 순정카메라 vs 구글카메라(11/09 업데이트 ver) [8] file 씨샾 20.11.12 443 1
88127 미니 1080과 2100 차이가 [2] 액티브r 20.11.12 521 0
88126 미니 Google. Stadia에 AV1 코덱 적용예정 스퀴니 20.11.12 321 1
88125 미니 LG가 1080을 선택지에서 제외할 이유가 없죠. [6] Aimer 20.11.12 542 3
88124 미니 어쨌든 이번 엑시노스는 배터리도 기대되네요 [1] 블릭더 20.11.12 317 2
88123 미니 찌라시)구글 픽셀북용으로 삼성 엑시노스 커스텀 사용 예정?  [20] 존버합니다 20.11.12 761 2
88122 미니 PUBG, 인도 모바일 시장 재진출. PUBG Mobile India 앱 [6] 스퀴니 20.11.12 280 0
88121 미니 PC케이스 쌈마이는 한계가 있군요ㅋㅋ [9] file 갤러리별 20.11.12 552 0
88120 미니 윙 스위블 속도 개선 체감.gif [16] file MysticCat 20.11.12 784 4

추천 IT 소식 [1/]

스킨 기본정보

colorize02 board
2017-03-02
colorize02 게시판

사용자 정의

1. 게시판 기본 설정

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

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

2. 글 목록

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

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

3. 갤러리 설정

4. 글 읽기 화면

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

5. 댓글 설정

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

6. 글 쓰기 화면 설정

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

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