검수요청.png검수요청.png

인스트럭션

위키원
이동: 둘러보기, 검색

인스트럭션(instruction)은 컴퓨터에게 일을 시키는 단위로서, 컴퓨터가 알아들을 수 있는 기계어로 이루어져 있는 명령이다. 지시 또는 명령이라고 한다.

컴퓨터는 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 프로그램을 받아들인 후, 그 지시에 따라 움직인다. 이 기계어 프로그램에서 사용하는 동작 지시가 인스트럭션이다. 인스트럭션은 컴퓨터 프로그램의 기본으로서 컴퓨터의 동작을 지시하는 부호 단위인 셈이다.

개요[편집]

인스트럭션(instruction) 또는 명령어는 컴퓨터가 직접 실행할 수 있는 가장 기본적인 단위의 명령을 의미한다. 이는 중앙처리장치(CPU)가 수행할 수 있는 연산, 데이터 이동, 분기(조건에 따라 흐름을 바꾸는 작업) 등을 지시한다. 대부분의 인스트럭션은 기계어(machine code) 형태로 인코딩되어 있으며, 이를 사람이 읽기 쉬운 형태로 바꾼 것이 어셈블리어(assembly language)이다.

구성[편집]

인스트럭션은 명령부와 처리부로 나누어진다.

  • 명령부(OP) : 실제 컴퓨터가 수행해야 할 동작을 나타내는 동사에 해당한다. 명령부의 내용은 주로 산술 및 논리연산, 데이터 이동, 분기, 입출력, 그외의 제어 명령이다.
  • 처리부(operand) : 동작의 대상이 되는 데이터를 지정하므로 목적어에 해당한다. 처리부는 피연산자를 직접 나타내거나 피연산자가 기억된 레지스터 또는 기억장치의 주소이다.

대부분 컴퓨터에서 사용되는 공통적인 명령 부류는 자료 이동 명령, 산술 및 논리연산, 비교 및 검사, 분기, 서브루틴 호출과 복귀, 입출력, CPU 상태 조절 등이 있다.

기본 구조[편집]

하나의 인스트럭션은 보통 다음과 같은 구조를 가진다:

css

[연산 코드(opcode)] + [피연산자(operand)]들
구성 요소
  • Opcode: 어떤 작업을 할 것인지 지정 (예: 더하기, 이동, 비교 등)
  • Operand: 작업 대상 (예: 레지스터, 메모리 주소, 상수 등)
예시 (x86 어셈블리어 기준)
asm

MOV AX, BX    ; BX 레지스터의 값을 AX로 복사
ADD AX, 1     ; AX 값에 1을 더함
JMP 0x0040    ; 0x0040 주소로 점프 (무조건 분기)

인스트럭션 실행 단계[편집]

CPU는 아래 단계(명령어 사이클)로 인스트럭션을 처리한다.

  1. 페치(Fetch): 메모리에서 인스트럭션 읽기
  2. 디코드(Decode): OPCODE 해석
  3. 실행(Execute): ALU(산술논리장치) 연산 수행
  4. 메모리 접근(Memory Access): 데이터 로드/저장
  5. 쓰기 백(Write Back): 결과 저장

⚙️ 파이프라이닝: 현대 CPU는 여러 인스트럭션을 병렬 처리하여 성능 향상.

인스트럭션의 종류[편집]

데이터 처리 인스트럭션
  • 산술 연산: ADD, SUB, MUL, DIV
  • 논리 연산: AND, OR, XOR, NOT
  • 시프트 연산: SHL(왼쪽 시프트), SHR(오른쪽 시프트)
데이터 이동 인스트럭션
  • MOV: 레지스터/메모리 간 데이터 복사
  • PUSH/POP: 스택 연산
제어 흐름 인스트럭션
  • JMP: 무조건 분기
  • CALL/RET: 서브루틴 호출 및 반환
  • CMP + JE/JNE: 조건부 분기
시스템 인스트럭션
  • INT: 인터럽트 발생
  • HALT: CPU 정지

인스트럭션 세트 (Instruction Set)[편집]

인스트럭션 세트(instruction set)**는 특정 CPU 아키텍처에서 사용되는 모든 인스트럭션의 집합이다.

대표적인 인스트럭션 세트 아키텍처(ISA):

아키텍처 설명
x86 인텔/AMD 계열, 복잡하고 다양한 인스트럭션을 지원
ARM 모바일, 임베디드에 최적화된 간결한 인스트럭션
RISC-V 오픈소스, 교육 및 차세대 CPU 설계에 사용
MIPS 고전적인 RISC 구조, 임베디드 시스템에서 사용됨

인스트럭션 저장과 실행[편집]

  1. 프로그램은 기계어(0과 1) 형태로 저장
  2. CPU는 명령어 포인터(Program Counter)로 다음 인스트럭션을 읽음
  3. 디코더(Decoder)가 인스트럭션 해석
  4. 해석된 연산을 ALU(산술논리장치) 등이 수행

최신 인스트럭션 기술 동향[편집]

SIMD(Single Instruction Multiple Data)
  • 한 인스트럭션으로 다수 데이터 병렬 처리 (예: Intel AVX, ARM NEON)
assembly

; AVX-512를 이용한 16개 부동소수점 연산
VMULPS ZMM1, ZMM2, ZMM3
확장 ISA
  • AI 가속: NPU 전용 인스트럭션 (예: ARM SVE, x86 AMX)
  • 보안: Intel SGX(메모리 암호화), RISC-V PMP(권한 제어)

인스트럭션 최적화 기법[편집]

인스트럭션 레벨 병렬성(ILP)
  • 슈퍼스칼라: 다수 실행 유닛으로 동시 인스트럭션 처리
  • 분기 예측: if문 성능 향상을 위한 하드웨어 최적화
코드 크기 감소
  • Thumb 모드(ARM): 16비트 축약 인스트럭션 사용
  • RISC-V 압축 확장(C): 32비트 → 16비트 인스트럭션 압축

같이 보기[편집]


  검수요청.png검수요청.png 이 인스트럭션 문서는 프로그래밍에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.