1. 메모리 공간
+ BSS영역과 Data영역 차이
BSS 영역 | 선언 되었지만, 초기화 되지 않은 변수 저장 |
Data 영역 | 선언과 초기화 모두 된 변수 저장 |
+ data : 실행 -> 할당, 종료 -> 해지
+ stack : 함수 호출 -> 할당, 완료 -> 소멸
2. 메모리 계층
- 레지스터 : CPU 내부 고속 기억 장치, 처리중인 데이터 저장
- 캐시 : CPU와 메인 메모리 사이 존재, 자주 사용하는 프로그램 저장-> 속도차이 완화 시켜줌
- 주기억장치(메인 메모리) : 현재 CPU가 처리중인 프로그램 저장
- 보조기억장치 : 전원 꺼져도 데이터 영구저장
3. 캐시메모리
속도가 빠르거나 느린 장치 사이에서 속도 차이로 인한 병목현상 줄이기 위한 메모리
ex) CPU의 코어(속도 빠름)와 메인 메모리(속도 느림) 사이에서 병목 현상을 줄이는 역할
* 효과 : 자주 사용하는 데이터의 접근 속도를 향상시킴.
* 종류 : L1, L2, L3 캐시
( L1 : 자주 사용되는 명령어, 데이터 저장 / 가장 빠르고 작은 캐시
L2 : L1 캐시보다 크지만, 약간 더 느림
L3 : L2 캐시보다 큼, 속도는 셋 중 가장 느리지만, 메인 메모리보다는 빠름)
* 작동 원리 : 캐시 적중률 높임
자주 사용되는 데이터를 저장하여, 다음에 그 데이터가 필요할 때 메인 메모리 대신 캐시에서 더 빠르게 읽을 수 있도록 함.
캐시 적중률이 높을수록 성능이 향상
시간 지역성 | 특정 데이터가 한 번 참조되면, 가까운 미래에 그 데이터가 다시 참조될 가능성이 높음 ex) 최근에 접근한 변수를 다시 접근하는 경우 |
공간 지역성 | 특정 데이터가 한 번 참조되면, 그 데이터의 근처 주소에 있는 데이터가 다시 참조될 가능성이 높음 ex) 배열의 요소를 순차적으로 접근 |
4. 캐시 메모리의 데이터 저장 방식
캐시 메모리와 메인 메모리 간의 데이터 매핑 방법
1) 다대일 방식
: 메인 메모리를 일정 크기 블록으로 나누어 각각의 블록을 캐시의 정해진 위치에 저장
매우 간단, 탐색 용이, 구현 쉬움
but, 적중률 낮고 Conflict Miss 위험
(* Conflict Miss : A와 B가 같은 캐시 메모리 주소에 할당되어서 나는 캐시 미스
1,2,3,4를 한 캐시에 저장하는 예시를 생각, 1,2는 같은 블록에 저장되니까 동시에 원하는 경우 conflict)
2) 연관 매핑
순서 무관, 캐시 빈 공간에 마음대로 주소 저장
매우 간단
but, 원하는 데이터 찾기 위해서는 모든 태그를 병렬 검사 해야함
-> 복잡, 비용이 많이 들기 때문에 실제 사용 거의 x
3) 세트 연관 매핑
다대일 방식 + 연관 매핑을 합한 방식
미리 행을 정해주고, 그 안의 빈 공간에 마음대로 저장
다대일보다는 검색 속도 느리지만, 저장이 빠르다.
연관보다는 검색 속도 빠르지만, 저장이 느리다.
--> 현재 많이 사용하는 방식
'스터디 > CS 스터디 (24.06-24.11)' 카테고리의 다른 글
OS : 시스템 콜 (1) | 2024.07.01 |
---|---|
OS : CPU 스케쥴링 (1) | 2024.07.01 |
컴퓨터 구조 : CPU 설계 방식(RISC/CISC), 파이프라이닝 (0) | 2024.06.28 |
알고리즘 : 시간/공간 복잡도 (0) | 2024.06.28 |
알고리즘 : 그래프 탐색, DFS/BFS, DP (0) | 2024.06.28 |