CS 3

명령어(Instruction)에 대해 알아보자

1. 명령어(Instruction)란 무엇인가?1.1 명령어의 정의명령어(Instruction)는 프로그래머가 작성한 소프트웨어의 특정 동작이나 작업들을 CPU(중앙처리장치)가 직접 이해하고 실행할 수 있도록 지시하기 위해 약속된 기계어 또는 프로그래밍언어를 뜻한다. 기계적으로 명령어는 오직 0과 1로만 이루어진 이진 코드(기계어, Machine Code)의 비트 패킷 형태를 띠며, 인간이 식별하기 위해 ADD, SUB, JMP 같은 어셈블리어 기호(Mnemonic)로 일대일 매핑하여 표현한다. 1.2 명령어의 구조명령어는 CPU에게 "어떤 행동을 하라"고 내리는 한 줄의 비트 패킷이다. 이 패킷은 논리적으로 크게 두 가지 구역으로 쪼개질 수 있다. 옵코드 (Opcode - Operation Code)뜻..

CS 2026.06.01

ISA(Instruction Set Architecture, 명령어 집합 구조)란 무엇일까?

ISA(명령어 집합 구조)는 소프트웨어 개발 영역(컴파일러, 어셈블러)과 하드웨어 설계 영역(마이크로아키텍처, 물리 회로 등)이 만나는 인터페이스이자 명세서(Specification)라 할 수 있다. 쉽게 말해 하드웨어(CPU)와 소프트웨어(프로그램) 사이의 약속 체계이자 번역기이다. ISA는 다음과 같은 것을 보장하도록 명시되어 있다.아키텍처 레지스터 값=> 소프트웨어가 직접 읽고 쓸 수 있도록 ISA가 정의한 레지스터들(x86의 rax, rbx, rsp 등 - 명령어 비트 패킷 안에 rax = 000, rbx = 011, 이런 방식으로 인코딩 후 소프트웨어가 CPU에게 어떤 레지스터인지 전달하는 수단이다. )의 값( 해당 레지스터에 실제로 들어있는 데이터). ISA 아키텍처에서 몇번 슬롯의 레지스터..

CS 2026.06.01

SIMD (Single Instruction Multiple Data) 란?

SIMD는 영어의 의미로 유추할 수 있듯이 하나의 명령어로 여러 개의 데이터를 동시에 처리하는 병렬 컴퓨팅 기술을 의미한다.일반적인 CPU연산을 할 때 하나의 명령어로 하나의 연산 처리만 할 수 있다고 했을 때, SIMD를 이용해서 하나의 명령어로 여러 데이터를 한 번에 처리하여 효율성을 높일 수 있다. 전통적인 방식인 SISD(Single Instruction, Single Data)와 비교했을 때 아래와 같다.SISD (일반 연산): $1 + 1$, $2 + 2$, $3 + 3$을 계산할 때, 더하기 명령을 세 번 내려서 순차적으로 처리한다.SIMD (병렬 연산): $[1, 2, 3]$이라는 데이터 묶음과 $[1, 2, 3]$이라는 데이터 묶음을 준비한 뒤, "한 번의 더하기 명령"으로 $[2, 4,..

CS 2026.04.30