스터디/CS 스터디 (24.06-24.11)

컴퓨터 구조 : 메모리 공간, 메모리 계층, 캐시 메모리, 데이터 저장 방식

minseokiim 2024. 6. 28. 12:11

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) 세트 연관 매핑

다대일 방식 + 연관 매핑을 합한 방식

미리 행을 정해주고, 그 안의 빈 공간에 마음대로 저장

 

다대일보다는 검색 속도 느리지만, 저장이 빠르다.

연관보다는 검색 속도 빠르지만, 저장이 느리다.

 

--> 현재 많이 사용하는 방식