GoWoong의 개발 블로그
close
프로필 배경
프로필 로고

GoWoong의 개발 블로그

  • 분류 전체보기 (189)
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (29)
      • CS (15)
      • OS (13)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
  • 홈
  • 자소서
  • 포트폴리오
  • 이력서
[CS] DMA(Direct Memory Access)

[CS] DMA(Direct Memory Access)

DMA란?DMA(Direct Memory Access)는 CPU를 거치지 않고 장치(디스크, 네트워크 카드, 사운드 카드 등)가 직접 메모리(RAM)와 데이터를 주고받는 방식을 말한다.기존: 사장님이 직접 배달 → 시간이 오래 걸리고 가게 일에 집중 못함DMA: 라이더에게 맡기고 → 사장님은 요리에 집중, 배달 완료되면 알림을 받는다.동작 과정① CPU가 설정한다CPU는 DMA 컨트롤러에게 세 가지를 알려준다:어디서부터 복사할지 (source 주소)어디로 복사할지 (destination 주소)얼마나 복사할지 (전송할 데이터 크기)② DMA가 전송한다CPU는 이제 손을 뗀다.DMA 컨트롤러가 메모리와 장치 간에 직접 데이터를 주고받는다.③ 전송 완료 후 알림데이터 복사가 끝나면, DMA 컨트롤러가 Inte..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 28.
  • textsms
[CS] Demand-Zero Memory

[CS] Demand-Zero Memory

Demand-Zero Memory란?Demand-Zero Memory란 "처음 접근할 때 0으로 초기화된 메모리"를 말한다.정의Demand-zero memory는 프로그램이 요청하지만 아직 실제로 물리 메모리가 할당되지 않은 페이지이다.이 메모리 페이지에 처음 접근하는 순간 운영체제가 실제 물리 메모리를 할당해 주며, 그 메모리의 모든 내용은 0으로 초기화된다.즉, 프로그램이 메모리를 요청할 때 미리 0을 써놓지 않고, 실제로 쓸 때 0으로 된 메모리를 제공하는 것이다.왜 'Demand' + 'Zero'인가?Demand: "필요할 때" (접근할 때) 물리 메모리를 할당함Zero: "초기값은 모두 0" 으로 채워진 메모리를 줌예시 1.int *arr = calloc(100, sizeof(int)); ca..

  • format_list_bulleted 크래프톤 정글
  • · 2025. 4. 28.
  • textsms
컴퓨터 시스템 : CSAPP 6장 정리 - 종합: 프로그램 성능에 대한 캐시의 영향

컴퓨터 시스템 : CSAPP 6장 정리 - 종합: 프로그램 성능에 대한 캐시의 영향

6.6 캐시가 프로그램 성능에 미치는 영향 (Putting It Together: The Impact of Caches on Program Performance)지금까지 메모리 계층 구조를 살펴봤다. 이번 절에서는 캐시가 실제 머신에서 프로그램 성능에 어떤 영향을 미치는지를 살펴본다​.메모리 계층 구조는 프로그램 성능에 지대한 영향을 미친다.특히, 프로그램이 메모리 시스템에서 데이터를 읽어 들이는 속도(읽기 처리량, read throughput)가 중요한 성능 지표가 된다.지역성(locality)을 잘 활용하면 프로그램이 훨씬 빠르게 동작할 수 있다.6.6.1 메모리 마운틴 (The Memory Mountain)개념프로그램이 메모리 시스템으로부터 데이터를 읽어들이는 속도를 읽기 처리량(read throu..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/6장 메모리 계층구조
  • · 2025. 4. 28.
  • textsms

컴퓨터 시스템 : CSAPP 6장 정리 - 6.5 캐시 친화적 코드 작성

6.5 캐시 친화적인 코드 작성 (Writing Cache-Friendly Code)6.2절에서는 지역성(locality)이라는 개념을 소개했다. 이제 캐시 메모리의 구조를 이해했으므로, 좋은 지역성을 갖춘 프로그램이 무엇인지 더 명확히 설명할 수 있다​.핵심은 다음과 같다:좋은 지역성을 가진 프로그램은 낮은 미스율(miss rate)을 가진다.낮은 미스율을 가진 프로그램은 높은 미스율을 가진 프로그램보다 일반적으로 빠르게 실행된다.따라서, 좋은 프로그래머는 항상 캐시 친화적인(cache-friendly) 코드를 작성해야 한다.기본 접근 방법:일반적인 경우를 빠르게 만든다대부분의 프로그램은 몇몇 핵심 함수(core functions) 안에서 대부분의 시간을 보낸다.그 안에서도 주로 **내부 루프(inne..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/6장 메모리 계층구조
  • · 2025. 4. 28.
  • textsms
컴퓨터 시스템 : CSAPP 6장 정리 - 6.4 캐시 메모리

컴퓨터 시스템 : CSAPP 6장 정리 - 6.4 캐시 메모리

6.4 Cache Memories초기 컴퓨터 시스템의 메모리 계층은 단순했다:CPU 레지스터메인 메모리디스크 저장장치하지만 CPU와 메인 메모리 사이의 성능 격차가 점점 커지면서, 시스템 설계자들은 CPU 레지스터 파일과 메인 메모리 사이에 작은 고속 L1 캐시를 추가하게 되었다​.L1 캐시: 대개 4 클럭 사이클 안에 접근할 수 있으며, 레지스터에 접근하는 속도와 거의 비슷하다.이후 성능 격차가 더 커지면서 L2 캐시를 L1과 메인 메모리 사이에 추가했고, 이 캐시는 약 10 클럭 사이클 정도로 접근할 수 있다.더 현대 시스템에서는 L3 캐시까지 추가하여, 메인 메모리 접근 전 마지막 캐시 단계로 삼고 있다(약 50 클럭 사이클).이 장에서는 간단히 CPU와 메인 메모리 사이에 단일 L1 캐시가 있는 ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/6장 메모리 계층구조
  • · 2025. 4. 28.
  • textsms
컴퓨터 시스템 : CSAPP 6장 정리 - 6.3 메모리 계층 구조

컴퓨터 시스템 : CSAPP 6장 정리 - 6.3 메모리 계층 구조

6.3 메모리 계층 구조 (The Memory Hierarchy)6.1절과 6.2절에서 저장 기술과 프로그램의 지역성에 대해 살펴봤다. 중요한 사실은 다음과 같다:저장 기술: 다양한 저장장치는 접근 시간, 비용, 용량이 매우 다르다. 빠른 저장장치는 느리고 싼 저장장치보다 비싸고 용량이 작다. CPU와 메인 메모리 간 속도 차이는 점점 벌어지고 있다.컴퓨터 소프트웨어: 잘 작성된 프로그램은 좋은 지역성을 보인다​.이 두 특성이 서로 보완적으로 작용하여, 현대 시스템은 메모리 계층구조(memory hierarchy)라는 방식을 통해 메모리를 구성한다. 메모리 계층 구조는 빠르고 작은 저장장치가 느리고 큰 저장장치를 캐시(cache)하는 구조로 되어 있다​.계층 구조를 따라 내려갈수록 저장장치는 더 크고, ..

  • format_list_bulleted 크래프톤 정글 (컴퓨터 시스템: CSAPP)/6장 메모리 계층구조
  • · 2025. 4. 28.
  • textsms
  • navigate_before
  • 1
  • ···
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • ···
  • 32
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (189)
    • 크래프톤 정글 (83)
    • 크래프톤 정글 (컴퓨터 시스템: CSAPP) (57)
      • 3장 프로그램의 기계수준 표현 (16)
      • 6장 메모리 계층구조 (6)
      • 7장 링커 (6)
      • 8장 예외적 제어 흐름 (7)
      • 9장 가상 메모리 (16)
      • 11장 네트워크 프로그래밍 (6)
    • 클라우드 (4)
      • [AWS] AWS IoT Core (4)
      • DevOps (0)
    • Deep Dive (29)
      • CS (15)
      • OS (13)
    • 백엔드 개발 (0)
      • 파이썬 (0)
      • 자바 스프링 (0)
    • 자격증 공부 (5)
      • AWS Cloud Practitioner (2)
      • 정보처리기사 (1)
      • AWS SAA-C03 (2)
    • 앱 개발 (5)
      • Flutter (5)
    • AI & LLM (1)
    • 문제 기록 (0)
    • 커뮤니티 참석 후기 (2)
    • 일상 기록 (1)
최근 글
인기 글
최근 댓글
태그
  • #AWS
  • #serverless
  • #AWS Community Day
  • #aws #iot
  • #saa-c03
  • #CLF-C01
  • #IOT
  • #AWSKRUG
  • #AWS 자격증
  • #Cloud Practitioner
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바