일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 큐
- 브라우저
- APOLLO
- 프로세스
- 컨테이너
- 포인터
- 코딩테스트
- alexnet
- 이진탐색
- RxJS
- 스택
- Machine Learning
- 알고리즘
- RT scheduling
- 프로그래머스
- 자료구조
- 해시테이블
- 자바스크립트
- vue3
- 웹팩
- 타입스크립트
- 프론트엔드
- cors
- 배열
- pytorch
- GraphQL
- 릿코드
- 연결리스트
- C
- 연결 리스트
- Today
- Total
프린세스 다이어리
On-Chip Memory: 레지스터, 캐시 메모리, 스크래치패드 본문
on-chip memory는 일반적으로 레지스터, 캐시 메모리, 스크래치 패드 등 다양한 형태로 구현됨. 레지스터, 캐시 메모리, 스크래치패드 이 세 가지 메모리는 모두 프로세서 내부에 위치하여 메모리 접근 속도가 매우 빠르고, 전력 소모도 적으나 다음과 같은 차이점이 있음
특징 | 용도 | |
레지스터 | CPU 내부에 위치한 메모리 | CPU 연산에 사용되는 값 저장 |
캐시 메모리 | CPU 내부에 위치한 메모리, 메인 메모리의 일부를 저장하는 작은 용량의 메모리 | CPU나 GPU에서 데이터를 빠르게 처리하기 위해 사용됨, 데이터의 지역성을 이용하여 데이터를 캐싱함 |
스크래치 패드 | 프로세서 내부에 위치한 소규모 메모리 | 메모리 대역폭을 줄이고, 실행 속도를 높이기 위해 사용됨 |
레지스터: CPU 내부에 위치한 메모리로 용량이 매우 작고, CPU에서 처리하는 값들의 중간 저장용으로 사용됨, CPU에서 수행하는 명령어의 피연산자, 연산 중간 결과나 변수 등의 값을 저장. 레지스터는 메모리 접근 속도가 가장 빠르고, 전력 소모도 적어서, CPU 연산에 빈번하게 사용됨, 그러나 용량이 작아서 큰 데이터나 배열을 저장할 수 없음
캐시 메모리: CPU 내부에 위치한 메모리로, 메인 메모리의 일부를 저장하는 작은 용량의 메모리. CPU나 GPU에서 메인 메모리에 접근하지 않고도 빠르게 데이터를 처리할 수 있음, CPU나 GPU에서 처리하는 데이터의 지역성(locality)을 이용하여 데이터를 캐싱, 캐시 메모리는 메모리 접근 속도가 매우 빠르고, 전력 소모도 적지만, 용량이 작음
스크래치 패드: 프로세서 내부에 위치한 소규모 메모리로, 메모리 대역폭을 줄이고, 실행 속도를 높이기 위해 사용. 스크래치 패드는 CPU나 GPU에서 데이터를 저장하고 처리할 수 있으므로, 메모리 접근 시간이 매우 빠르고, 전력 소모도 적음. 따라서, 스크래치 패드를 사용하여 메모리 대역폭 병목 현상을 해결하고, 실행 속도를 높일 수 있음
딥러닝에서는 모델이 복잡해질수록 처리해야 할 데이터의 크기가 커지기 때문에, 메모리 대역폭 문제가 발생할 수 있음. 이를 해결하기 위해, GPU에서는 Scratch pad를 사용하여 메모리 대역폭을 줄이고, 실행 속도를 높이는 방법이 제안되었음
Scratch pad를 사용하면, 데이터를 메인 메모리에서 복사하여 CPU와 GPU 사이에 전송하는 시간이 줄어들고, CPU와 GPU가 데이터를 공유하는 데 필요한 복잡한 동기화 절차를 생략 가능함. Scratch pad를 사용하면 메인 메모리의 부하를 줄이고, 전력 소모를 줄일 수 있음
'운영체제, 컴퓨터 구조' 카테고리의 다른 글
Graph computing에서의 atomic operation에 대한 개념 정리 (0) | 2023.04.12 |
---|---|
[OS] inode 구조와 파일 데이터를 연결하는 방법 (0) | 2022.02.07 |
[OS] inode 방식과 가상 파일 시스템 (0) | 2022.02.06 |
[OS] 파일 시스템이란? 파일을 저장하는 방법과 파일 시스템의 종류 (0) | 2022.02.05 |
[OS] 작은 C언어 코드가 실행될 때 어떻게 메모리를 사용하는지 설명 (0) | 2022.02.04 |