본문 바로가기

cs

[CS] 32bit 버전, 64bit 버전, ARM 버전 개념 및 차이점 파악(feat. ISA)

# ISA란?

한글을 영국인한테는 영어로 일본인한테는 일본어로 번역하듯
프로그램코드도 CPU1에 맞게 번역하고 CPU2에 맞게 번역해야 코드가 돌아감

이런 CPU언어는 ISA라고부르는데 프로그래밍언어랑은 다른 개념이다. 인간이 이해하기난해함…

그래서 C, Java, Python같은 기계어같은게 컴파일되야 CPU에서 해당 프로그래밍 돌아가는것

특정 isa를 겨냥해서 만든 프로그램을 다른 CPU인 ISA2로번역하려면 정말 어렵다. 마치 영욱어로변역한걸 일본어로 번역하는 소모적인 정도와 같이…

 

# CPU 표준설계 방식을 아키텍쳐라 함

  • 32비트 시스템의 중 가장 대중적인 아키텍처가 X86이고
  • 64비트 시스템 중 가장 대중적인 아키텍처가 X64이다.
    컴퓨터에서 사용하는 가장 작은 단위 0과 1 이진법으로 동작함

# 그럼 32bit와 64bit가 의미하는 건 무엇인가 ?

비트 - CPU 레지스터의 크기를 의미하는데

CPU내부에는 제어장치, 레지스터, 산술/논리연산장치 크게 3가지로 나뉘어있음

  • 레지스터란
    CPU가 연산할 데이터들은 Ram에 쌓여있음
    이 테이터들은 CPU안에서 연산되어야하기때문에 CPU내부에 데이터를 저장해둘
    공간이 필요하게되는데 이 부분을 레지스터가 담당함
  • 레지스터의 역할
    레지스터는 계산해야하는 데이터를 빠르게 넣어주고 계산 중간에 필요한 결괏값이나 CPU내부공간에 내부 상태를 보관하는 공간으로 사용됨
  • 32bit, 64bit
    레지스터의 크기가 32비트라면 CPU가 한번에 처리할 수 있는 데이터의 크기가 최대 32비트이다

=> 그러면 64비트는 더 많다는 거고 연산속도가 높다는것

비유적  표현으로 차선이 있는데 차선이 넓을 수록 차들이 더 많이 다닐수 있기때문에 수용력이 좋은상황인데 이때 차가 데이터라고 보면됨

  • 32bit의 한계점
    그런데…
    기술이 발전하고 요구하는것들이 많아짐에 따라 32비트에 한계가 부딪힘
  • 사용가능한 RAM의 크기
    운영체제가 시스템에 장착된 메모리를 인식하고 접근하기 위해선 메모리공간에 주소정보가 필요함 하지만 32비트 CPU는 32비트 addressing이라는 주소지정방식을 사용하고 이에따라 할당할 수 있는 메모리 크기도 약 4GB가 되는것이다. (정확히는 2^32byte(429467296byte))

결론적으로 32비트 시스템은 램 용령을 4GB이상 사용하기 힘들다는게 문제였고
이를 해결해주는게 64비트이다.
이 중 가장 대중적으로 사용하는 아키텍처가 x64인데 시간이 지남에따라 32비트를 사용하는 아키텍처가 x86이라는 말로 자리를 잡았고 64비트를 사용하는 CPU설계 방식은 x64라고 하게됨

  • 결론
    • 32비트와 64비트 시스템에서 말하는 비트는 CPU레지스터의 크기를 말함
    • 이 레지스터의 크기가 클수록 한번에 더 커다란 데이터를 처리할 수 있음
    • 현재는 64비트 시스템을 갖춘게 일반적임
    • 32비트시스템을 x86, 64비트 시스템을 x64아키텍처라함

# ARM개념

PC에 사용되는 개념

  • CISC
    • 많은 명령어와 기능들을 넣어서 고성능을 목표로함
    • 명령어 길이가 제각각이어서 디코딩 속도가 느림
    • 데스크탑, 노트북 고성능이 필요한 기기

모바일에 사용되는개념

  • RISC
    • 자주 사용하는 명령어만 넣어 구조를 간단하게 만듬
    • 명령어 길이가 고정돼 있어 디코딩 속도가 빠름
    • 스마트폰, 태블릿 등 전력효율이 필요한 기기

x86, x64는 CISC아키텍쳐방식임

- ARM: Advanced RISC Machines
RISC 기반의 아키텍처

# ARM CPU를 데스크탑 컴퓨터에 넣지 않는 이유는 ?

CISC: 전역효율이 낮지만 성능이 좋음
- 가변길이, 많은 명령어
RISC: 전력효율이 좋지만 CISC급의 성능을 보장못함
- 고정길이, 적은 명령어

# 차이점 + 뇌피셜 )

32비트는 한번에 CPU가 처리할 수 있는 데이터연산의 값이 32비트이고 64비트는 64bit반큼 처리할 수 있다는 것이다. 그런데 ARM이라는 개념이 등장한이유가 32,62비트를 다른 말로 x64, x86라고도 표현하는데 이는 CISC아키텍처이다. 이는 많은 명령어와 기능을 넣고 고성능을 목표로하는 PC전용인데 시대가 스마트폰시대로 전환이되면서 그에맞는 아키텍처가 개발이된것이다. 그래서 이에맞는 핵심 CPU아키텍처가 ARM이며 이는 자주 사용하는 명령어만 넣어 구조를 간단하게만들고 명령어 길이가 고정돼있어 디 코딩속도가 빠르다.

 

reference