2025-09-23 22:57

Tags: 컴퓨터 하드웨어

기계어

  • CPU가 직접 이해하고 실행할 수 있는 유일한 언어로, 0과 1의 이진 코드로 구성된다.

  • 모든 프로그램은 컴파일러인터프리터를 통해 궁극적으로 특정 CPU 아키텍처에 맞는 기계어로 번역되어야 실행

  • 폰 노이만 구조 에선 메모리 에 데이터 + 명령어(프로그램) 저장 이 ‘명령어’를 기계가 알아들을 수 있는 형태로 표현한 것이 바로 기계어의 시작

  • CPU 제조사는 자신들의 프로세서가 이해할 수 있는 명령어들의 집합과 그 형식을 정의하는데,

    • 이를 명령어 집합 구조(Instruction Set Architecture, ISA)
  • 0과 1로 코딩하는건 사실상 불가능 1대1 대응 시켜서 어셈블리어 등장

  • 기계어 명령어는 보통 두 부분으로 구성

    • 연산 부호 (Opcode, Operation Code):
      • CPU가 수행해야 할 작업의 종류를 나타낸다.
      • ‘무엇을 할 것인가?‘에 해당하며, 덧셈(ADD), 데이터 이동(MOVE), 비교(COMPARE) 등과 같은 기본적인 동작을 지정한다.
    • 피연산자 (Operand):
      • 연산에 사용될 데이터나 데이터의 위치를 나타낸다.
      • ‘무엇을 가지고 할 것인가?‘에 해당, 특정 메모리 주소, CPU 내부의 임시 저장 공간인 레지스터(Register), 숫자 값 자체가 될 수 있다.

명령어 집합의 두 가지 접근법: CISC와 RISC

ISA는 크게 두 가지 철학으로 나뉜다.

구분CISC (Complex Instruction Set Computer)RISC (Reduced Instruction Set Computer)
철학하나의 명령어가 복잡하고 강력한 기능을 수행하나의 명령어는 단순하고 한 가지 작업만 수행
명령어 수많음 (수백 ~ 수천 개)적음 (수십 ~ 수백 개)
명령어 길이가변 길이고정 길이
실행 속도명령어마다 다름대부분의 명령어가 1클럭에 실행
컴파일러상대적으로 단순복잡함 (최적화가 중요)
대표 아키텍처Intel x86, AMD x86-64ARM, MIPS, RISC-V
비유”점심 세트 주문” (한 번에 여러 요리)“밥, 국, 반찬 따로 주문” (단순 작업 조합)