언어 종류
1. 저급언어
- 기계 중심의 언어
- 실행 속도가 빠름
- 상이한 기계마다 다른 코드를 가진다
기계어
- 컴퓨터가 직접 이해할 수 있는 언어, 0과 1의 2진수 형태로 표현되며 수행시간이 빠름. 전문적인 지식이 없으면 프로그램 작성 및 이해가 어렵다, 기종마다 기계어가 다르므로 언어의 호환성이 없음. 프로그램 유지보수가 어렵다.
어셈블리어
- 기계어와 1:1로 대응되는 기호로 이루어진 언어, 기호 코드(Mnemonic Code)라고도 함. 기계어와 가장 유사하며, 기계어로 번역하기 위해서는 어셈블러(Assembler)가 필요함
2. 고급언어
- 사람 중심의 언어
- 실행을 위해서는 번역하는 과정이 필요함
- 상이한 기계에서 소스 수정 없이 실행이 가능함
현실에서
ARM VS Intel x86
ISA (Instruction Set Architecture)
- Intel x86, x86-64, etc.
- AMD x86-64, etc.
- ARM arm v8, etc.
X86
- 인텔 CPU에서 사용하는 컴퓨터 언어로 CISC 복합 명령어 세트를 사용한다.
CISC
Complex Instruction Set Computer의 약자로 복잡한 명령어 집합을 갖는 CPU아키틱처. 명령어가 복잡하기 때문에 명령어를 해석하는 데 시간이 오래 걸리며, 명령어 해석에 필요한 회로도 복잡하다.
ARM
- 영국의 컴퓨터 회사 Acorn Computer는 새 컴퓨터에 쓸만한 기성품 CPU를 찾을 수 없자 직접 RISC 기반 CPU 아키텍처를 개발하기로 하는데, 이것이 Acorn RISC Machine, 오늘날의 ARM 이다.
RISC
Reduced Instruction Set Computer의 약자로 CPU명령어의 개수를 줄여 하드웨어 구조를 간단하게 만드는 방식. RISC는 CISC보다 적은 수의 명령어만으로 명령어 집합을 구성하였으르모 보다 더 단순하다.
CISC vs RICS
CISC
- 복잡한 구조
- 많은 명령어
- 다양한 명령어 길이
- 명령어가 S/W적인 방식
- 레지스터 적음
- 느린 속도
RISC
- 단순한 구조
- 간단 명령어
- 고정된 명령어 길이
- 명령어가 H/W적인 방식
- 레지스터 많음
- 빠른 속도
참고 영상
https://youtu.be/G-fJJ-OHLDw