#1. 프로그램(Program) vs. 프로세스(Process) vs. 스레드(Thread) 이 세 가지 개념은 컴퓨터가 작업을 수행하는 방식을 이해하는 데 필수적입니다. 프로그램(Program): 정의: 특정 작업을 수행하기 위해 작성된 명령어들의 집합을 포함하는 실행 가능한 파일입니다. 위치: 디스크에 저장되어 있습니다. 특징...
메모리 계층 설계를 위한 네 가지 핵심 질문에 대한 해답을 확인해보겠습니다. #1. 블록은 어디에 놓일 수 있는가? (Where Can a Block Be Placed?) 직접 매핑 (Direct Mapped): 주 메모리 블록이 캐시 내의 정확히 한 위치에만 매핑됩니다. 가장 간단한 방식입니다.(Set의 수 = 블록 수) 세트 연관 (...
가상 메모리(Virtual Memory)란? 가상 메모리는 컴퓨터의 주 메모리(RAM) 용량을 넘어서는 프로그램을 실행할 수 있도록 하는 기술입니다. 주 메모리를 보조 저장 장치(예: 하드 디스크)의 '캐시'처럼 사용하는 기법이라고 할 수 있습니다. 이는 CPU 하드웨어와 운영체제(OS)가 함께 관리합니다. 목표 및 목적: 가상 메모리의 주된 목적은 ...
캐시 블록의 배치 방식 (Block Placement) 메인 메모리의 특정 블록이 캐시 내의 어느 위치에 저장될 수 있는지에 따라 캐시의 구조가 결정됩니다. 직접 매핑 캐시 (Direct-Mapped Cache): 메인 메모리의 각 블록은 캐시 내의 정해진 단 하나의 위치에만 매핑될 수 있습니다. 매핑 위치는 (블록 주소) modulo ...
캐시 메모리 (Cache Memory) 캐시 메모리는 컴퓨터 시스템의 성능을 향상시키기 위해 CPU와 주 기억 장치(메인 메모리) 사이에 위치하는 작고 빠른 버퍼 메모리입니다. 프로세서가 메인 메모리에서 데이터를 가져오는 속도와 프로세서가 데이터를 처리하는 속도 간의 차이가 크기 때문에, 이 병목 현상을 완화하고 프로세서가 필요한 데이터에 더 빠르게 접근...
메모리 계층 구조는 컴퓨터 시스템의 성능을 최적화하기 위해 속도, 용량, 비용이 다른 다양한 종류의 메모리를 계층적으로 조직화한 것을 말합니다. 프로세서(CPU)는 매우 빠르지만, 주 기억 장치(메인 메모리)는 프로세서보다 훨씬 느립니다. 이 속도 차이로 인해 발생하는 병목 현상을 줄이고, 프로세서가 필요한 데이터에 더 빠르게 접근할 수 있도록 하는 것이 ...
ROM (Read-Only Memory): 읽기 전용 메모리 ROM은 이름 그대로 주로 읽기(Read) 작업만 가능하도록 설계된 비휘발성(Non-volatile) 메모리입니다. 즉, 전원 공급이 중단되어도 저장된 내용이 사라지지 않습니다. #1. ROM의 목적 및 주요 사용처 ROM의 주된 목적은 컴퓨터가 부팅되거나 특정 하드웨어가 작동하는 데 필요한...
컴퓨터 구조(Computer Architecture)는 컴퓨터 시스템의 구성 요소들이 어떻게 설계되고 서로 어떻게 상호작용하는지를 다루는 학문 분야입니다. 이는 단순히 하드웨어의 물리적인 배열을 넘어, 컴퓨터 시스템이 어떻게 명령어를 이해하고 처리하며, 데이터를 저장하고 통신하는지에 대한 개념적 설계 및 기능적 동작 방식을 포괄합니다. 좀 더 구체적으로는...
MIPS 아키텍처: 심층 분석 MIPS(Microprocessor without Interlocked Pipeline Stages)는 1980년대 초 스탠포드 대학교에서 존 헤네시(John Hennessy) 교수가 이끄는 팀에 의해 개발되었으며, 이후 MIPS Technologies에 의해 상용화되었습니다. MIPS는 RISC 철학의 대표적인 예시로, 단...
MIPS 아키텍처에서의 예외(Exception) 이해 MIPS 프로세서에서 예외(Exception)란, 프로그램의 정상적인 실행 흐름을 방해하고 특별한 처리를 요구하는 예상치 못한 이벤트를 의미합니다. 이는 프로세서의 내부적인 원인(예: 잘못된 명령어 실행) 또는 외부적인 원인(예: I/O 장치 요청)에 의해 발생할 수 있습니다. 예외는 시스템의 안정성과...
위 이미지는 MIPS 파이프라인에서 제어 해저드(Control Hazard)를 줄이기 위해 beq 명령어의 분기 결정 로직을 ID 단계로 앞당긴(early branch resolution) 파이프라인 구조를 보여줍니다. 1. (1) Target Address Adder: 분기 목표 주소를 계산하는 덧셈기 2. (2) Register Comparato...
MIPS의 데이터 해저드 조건 이 조건들은 현재 ID 또는 EX 단계에 있는 명령어가 값을 읽으려고 하는데, 그 값이 아직 레지스터 파일에 기록되지 않고 이전 명령어의 파이프라인 레지스터에 중간 결과로 존재하는 경우를 감지합니다. 이 조건들이 현재 instruction이 읽는 (Rs 또는 Rt) register 번호와 이전 instruction...
Pipeline Hazards 파이프라인 해저드(Pipeline Hazards)는 명령어 파이프라인의 성능을 저해하고, 올바르지 않은 결과를 초래할 수 있는 상황들을 일컫습니다. 파이프라인은 여러 명령어를 동시에 처리함으로써 CPU의 처리량(throughput)을 높이는 강력한 기술이지만, 특정 상황에서는 의존성(dependency) 문제로 인해 명령어가...
MIPS 아키텍처 CPU가 가지고 있는 레지스터의 개수는 목적에 따라 여러 종류로 나눌 수 있으며, 각 종류별로 개수가 다릅니다. 주요 레지스터들을 정리하면 다음과 같습니다: 1. 범용 레지스터 (General Purpose Registers, GPRs): 개수: 32개 특징: 대부분의 MIPS 명령어에서 피연산자로 사용되...
파이프라인 레지스터(Pipeline Register)는 컴퓨터 아키텍처에서 명령어 파이프라인의 각 단계(stage) 사이에 위치하여, 이전 단계의 결과를 저장하고 다음 단계로 전달하는 역할을 하는 특별한 레지스터입니다. 이를 통해 여러 명령어가 동시에 파이프라인의 다른 단계에 걸쳐 실행될 수 있도록 하여 CPU의 처리량(throughput)을 크게 향상시킵...
파이프라인의 동작 원리: 조립 라인 비유 파이프라인의 동작은 자동차 공장의 조립 라인에 비유하면 가장 이해하기 쉽습니다. 단일 작업자 방식 (단일 사이클 프로세서): 작업자 한 명이 자동차 한 대를 처음부터 끝까지 (부품 조립, 도색, 검사 등 모든 공정) 혼자서 다 완성합니다. 한 대가 완전히 끝나야 다음 대를 시작할 수 있습니다. 단점:...
주어진 파이프라인 각 단계의 속도(시간)를 바탕으로 단일 사이클 프로세서(Single-Cycle Processor)와 파이프라인 프로세서(Pipelined Processor)의 성능을 비교해 보겠습니다. 1. 단일 사이클 프로세서 (Single-Cycle Processor) 성능 분석 단일 사이클 프로세서는 하나의 명령어를 실행하는 데 필요한...
Instruction class에 따른 속도 차이 주어진 표를 보면 Load word (lw) 명령어가 다른 명령어들보다 Total time이 가장 길게 나와있습니다. 그 이유는 lw 명령어가 5단계 파이프라인의 모든 단계를 거쳐야 하기 때문입니다. 각 명령어가 거치는 단계와 해당 단계의 시간을 자세히 살펴보겠습니다. 1. Load word (lw...
ALU 컨트롤 신호(ALU Control Signal)는 컴퓨터의 중앙처리장치(CPU) 내부에 있는 ALU(Arithmetic Logic Unit, 산술 논리 장치)가 어떤 특정 연산을 수행할지 지시하는 신호입니다. ALU는 여러 가지 연산(덧셈, 뺄셈, 논리 AND, OR 등)을 수행할 수 있도록 설계되어 있으며, 이 중에서 어떤 연산을 실제로 수행할지를...
MIPS 메모리 표현 방식(Addressing Mode)에 따른 파이프라인 동작 과정 MIPS의 명령어 형식과 주소 지정 기법은 파이프라인의 각 단계에 명확하고 예측 가능한 영향을 미치도록 설계되었습니다. 각 주소 지정 모드가 파이프라인의 어느 단계에서 활성화되고 어떤 작업을 유발하는지 자세히 살펴보겠습니다. 1. 레지스터 주소 지정 (Registe...