ISA(Instruction Set Architecture)
- CPU가 인식해서 기능을 이해하고 실행할 수 있는 기계어 명령어 집합
- 하드웨어와 시스템 소프트웨어 사이의 인터페이스를 정의한다.
- 칩을 만드는 회사마다 ISA의 종류가 다르다.
ISA 분류
- 가변길이(CISC(Complex Instuction Set Computer)) : 명령어의 길이가 일정하지 않음. ex) x86
- 고정길이(RISC(Reduced Instruction Set Computer)) : 명령어의 길이가 일정함. ex) ARM, MIPS, AVR
CISC는 마이크로 프로그래밍 방식을 채택했고, RISC는 Hard Wired 방식으로 설계됐다.
CISC 명령어는 복잡하며 RISC보다 느려지지만 명령어 수가 적을수록 사이클 수가 적다.
ISA 예시
- x86, x86-64
고성능 프로세서를 설계하기 위해 사용한다.
많은 전력이 필요하고 발열도 상대적으로 심하다. -> 냉각장치의 공간과 전력을 확보하기 위해 데스크탑이나 랩탑에 사용되고 있다.
- ARM
스마트폰 시장이 확대되면서 ARM의 인지도가 올라갔다.
ARM 사의 CPU는 고성능 지향이 아닌 저전력/고효율을 목표로 시장에 뛰어들었기 때문에 발열문제에 민감한 드론, 스마트폰 및 임베디드 장비에 사용되게 된다.
- MIPS
ARM와 같이 랩탑, 데스크탑에서 사용되지 않고 스마트폰 및 임베디드 장비에 사용된다.
현재 ARM이 MIPS보다 업계에서 더 인기가 있고, MIPS는 주로 임베디드 시스템에서 구현된다.
- AVR
ARM, MIPS와 동일하게 임베디드 장비에 사용되고, 아두이노가 AVR을 탑재하고 있다.
데스크탑, 랩탑, 서버 컴퓨터까지 전부 Intel, AMD 프로세서인 x86를 사용하고, 스마트폰에는 ARM 프로세서를 사용한다. x86과 ARM은 서로 다른 ISA이고, 하드웨어와 시스템 소프트웨어 사이의 인터페이스가 서로 다르기 때문에 데스크탑(x86 프로세서)에서 만든 소프트웨어를 곧 바로 스마트폰(ARM 프로세서)에서 돌릴 수 없다.
Microarchitecture란?
- ISA를 이해하고 명령어의 의도대로 실행되는 CPU 내부의 하드웨어 구조를 의미한다.
- 기능적인 동작, 최소 비용, 최소 전력, 최대 퍼포먼스 설계를 지향한다.
- 같은 ISA를 구현하더라도, 캐시 사이즈, 명령어 오더링, 파워 등등 다양한 요인에 차별을 두어서 다양한 프로세서를 만들 수 있다.
* Intel과 AMD는 똑같은 x86 아키텍처를 사용하지만, 내부적으로 구현하는게 다르기 때문에 성능 또한 달라지게 된다.
* ISA가 프로세서와의 인터페이스라면, Microarchitecture는 인터페이스의 구현이다.