로그인 해주세요.

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

ARMCC

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

  • ARMCC
  • 조회 수 928
  • 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]님의 댓글을 신고합니다. 취소 신고
취소
번호 분류 제목 글쓴이 날짜 조회 수
공지 공지 사이트 이용 수칙 240809 수정 file admin 18.08.04 119970 13
핫글 미니 밖에서의 평가와 내부에서의 평가는 다른 경우가 많아요 [10] 바보중 24.09.27 1086 19
핫글 미니 S25 Ultra 16GB [11] iceuniverse 24.09.27 1220 18
핫글 미니 삼성D 지원하자는 미국 국회 [7] 갠냑시 24.09.27 1020 11
220799 미니 비보에서 새로운 기술의 BOE 디스플레이를 탑재한다네요 newfile choijm0715 13:49 80 0
220798 미니 삼브 베타 27.0.0.63 newfile [성공]함께크는성장 13:37 70 0
220797 미니 애플워치 보증기간 관련 질문드립니다 [3] newfile 쿼드쿼드 13:30 58 0
220796 미니 아이폰+갤워치 조합 의외로 좋네요 new 시엠 13:25 125 1
220795 미니 갤워치 쓰면 쓸수록 진동이 너무 아쉽습니다 [3] update HQteam 12:57 210 3
220794 미니 워치 울트라로 바꾸고 나니 샤오미가 웨어OS 4를 주는군요.. [6] updatefile 웽웽 11:50 408 2
220793 미니 파운드리적자 주력사업 메모리부진..? [1] S27울트라존버 11:21 425 3
220792 미니 소식: 드디어 스냅드래곤 X 엘리트 다이샷이 나왔습니다. file Section31 11:15 350 5
220791 미니 미친척 16프맥을 질렀는데 픽업을 할지말지 고민입니다 [13] file IRIVER 09:55 612 4
220790 미니 아이폰16의 Wifi7도 반쪽짜리...군요... [9] Stellist 09:47 760 7
220789 미니 애플워치 10주년 모델은 없는겁니까 [7] 북극곰플 09:13 375 1
220788 미니 대부도 길에서 바라본 송도 file pietoro 06:18 338 3
220787 미니 갤럭시핏3에 유니버셜 제스처 있나요? [2] 엣지 05:02 250 0
220786 미니 라이카 Q3 43 국내 출시 [4] file BarryWhite 02:59 429 3
220785 미니 레노버가 리전 고 시리즈를 확장할 것으로 보입니다. BarryWhite 02:56 294 0
220784 미니 ???: 꼬우면 플스 사든가 [7] BarryWhite 02:54 742 2
220783 미니 애플, 새로운 홈 허브 제품 개발 중 외 소식 BarryWhite 02:51 219 0
220782 미니 웨어OS 5 업데이트 배포가 중단됐습니다. BarryWhite 02:48 342 1
220781 미니 닌텐도 스위치2 예상 가격 60만원대 [3] BarryWhite 02:48 543 1
220780 미니 아이폰 이번에 맘에 드는 새로운 기능 [5] file 나르시시스트민희진 02:07 846 5
220779 미니 Too Slow Manufacturing Company [6] file 십사프로씁니다 01:09 762 5
220778 미니 아이폰15 일반부터 2층 적층형센서라는데.. [1] dlwlrma 00:56 386 0
220777 미니 D9400 안투투 점수 file 좌지우건 00:53 319 1
220776 미니 삼성 파운드리 평택라인 일부 셧다운? [4] 좌지우건 24.09.27 985 9
220775 미니 아이폰 16, 워치10 환불하고 왔습니다. [8] KIKIRAKA 24.09.27 962 7

추천 IT 소식 [1/]

스킨 기본정보

colorize02 board
2017-03-02
colorize02 게시판

확장 변수

1. 게시판 기본 설정

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

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

2. 글 목록

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

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

썸네일 게시판만 해당

3. 갤러리 설정

4. 글 읽기 화면

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

5. 댓글 설정

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

6. 글 쓰기 화면 설정

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