명령어 집합과 마이크로아키텍처

명령어 집합 아키텍처(Instruction Set Architecture, ISA)는 소프트웨어가 보는 CPU의 약속이다. 명령어, 레지스터, 데이터 형식, 예외, 메모리 모델과 권한 수준을 정의한다. x86-64, Arm A-profile, RISC-V는 서로 다른 ISA 계열이다.

마이크로아키텍처는 그 약속을 실제 회로로 구현하는 방식이다. 프런트엔드 폭, 실행 유닛, 파이프라인, 캐시와 분기 예측기는 ISA가 같아도 제품 세대마다 달라진다. 같은 x86-64 프로그램을 실행하는 두 CPU가 같은 클럭에서 다른 성능과 전력을 보이는 이유다.

CISC와 RISC라는 구분

x86은 복잡하고 가변 길이인 명령을 포함하고, Arm과 RISC-V는 비교적 규칙적인 명령 형식을 사용한다. 그러나 현대 고성능 CPU는 외부 명령을 내부 동작으로 변환하고 비순차 실행하므로 “CISC는 복잡해서 느리고 RISC는 단순해서 빠르다”는 식의 결론은 실제 구현을 설명하지 못한다.

ISA 호환성도 하나의 이름으로 끝나지 않는다. SIMD·암호·가상화 확장 명령의 지원, 32/64비트 실행 모드, 운영체제와 컴파일러가 사용하는 최소 기능을 확인해야 한다. 프로그램이 특정 확장 명령을 요구하면 같은 ISA 계열의 구형 CPU에서 실행되지 않을 수 있다.

모바일 SoC와 서버 CPU는 ISA뿐 아니라 메모리 일관성, 인터커넥트, 가속기와 I/O 통합 방식이 중요하다. 성능 비교는 명령어 이름보다 해당 제품의 마이크로아키텍처와 시스템 구성을 기준으로 한다.

출처