ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6장. 메모리와 캐시메모리
    CS/컴퓨터구조 2023. 8. 31. 23:36

    *책에서 메모리가 일컫는 것은 전부 주기억장치로 사용되는 RAM, 즉 DRAM을 의미한다고 보면 된다.

    CPU는 보조기억장치에 직접 접근할 수 없다. 보조기억장치에 저장된 정보(or 프로그램)에 접근하려면 해당 값을 주기억장치로 가져와야 한다. 이 때 주기억장치으로 사용되는 RAM의 용량이 클수록 한 번에 가져올 수 있는 정보의 크기가 커지므로 컴퓨터의 전체 성능이 좋아진다고 볼 수 있다.

     

    6-1. RAM의 특징과 종류

    DRAM VS. SRAM

    (각 특징은 DRAM과 SRAM 간 서로 상대적인 개념임.)

      DRAM(Dynamic RAM) SRAM(Static RAM)
    설명 저장한 정보가 동적으로(Dynamic) 지워지는 RAM
    → 데이터 소멸을 막으려면 일정 주기로
    데이터 재활성화 필요
    저장한 정보가 지워지지 않는(Static) RAM
    속도 느림 빠름
    집적도 높음 낮음
    가격 낮음 높음
    소비 전력 낮음 높음
    주 용도 주기억장치(상대적으로 DRAM이 SRAM보다
    대용량으로 만들기에 더 적합함.)
    캐시 메모리

     

    SDRAM (Synchronous Dynamic RAM)

    클럭과 동기화된 DRAM = 클럭 타이밍마다 CPU와 정보 전달 수행 → 클럭이 높을수록 CPU와 메모리 사이에서 데이터를 읽고 쓰는 속도가 빨라짐.

     

    DDR SDRAM (Double Data Rate SDRAM)

    SDR SDRAM: Single Data Rate SDRAM 으로 대역폭이 하나인 SDRAM

    DDR SDRAM대역폭이 SDR SDRAM에 비해 두 배로 증가한 SDRAM이다. (대역폭 증가 = CPU와 메모리 간 입출력 속도 증가)

    DDR2 SDRAM은 DDR SDRAM보다 대역폭이 2배, SDR SDRAM 보다는 4배(2^2)

    DDR3 SDRAM은 DDR2 SDRAM보다 대역폭 2배, SDR SDRAM 보다는 8배(2^3)

    현대에서 주기억장치로 가장 많이 쓰이는 형태 (DDR4 SDRAM)

     

     

    6-2. 메모리의 주소 공간

    데이터나 프로그램이 메모리에 올라갈 때마다 위치하게 되는 메모리 주소가 바뀜. → CPU는 매 번 바뀌는 데이터나 프로그램의 주소를 다 알 수 없음. 따라서 메모리 주소를 메모리가 이해할 수 있는 물리 주소와 CPU나 프로그램이 이해할 수 있는 논리 주소로 나누어 관리한다.

     

    물리 주소 와 논리 주소

    물리 주소: 메모리 입장에서의 주소 = 하드웨어 주소. 절대적인 메모리 상의 주소

    논리 주소: CPU와 프로그램 입장에서의 주소. - CPU가 명령어를 수행할 프로그램의 메모리 주소를 지칭할 때 사용하는 주소. 모든 논리 주소는 0번지부터 시작.

     

    MMU (Memory Management Unit)

    CPU → 메모리 접근 시 CPU가 알고 있는 논리 주소를 물리 주소로 변환하는 장치 (현대에서는 CPU 안에 존재)

    계산 방법: 베이스 레지스터의 값 + 논리 주소

    베이스 레지스터에는 명령어를 수행할 프로그램의 물리 주소 시작 번지가 저장되어 있다.

    즉, 논리 주소는 프로그램의 물리 주소 시작 번지로부터 떨어진 거리를 의미.

     

    메모리 보호

    CPU가 특정 프로그램 실행할 때 그 프로그램의 메모리 영역 밖에 접근하려고 하는 것을 막는 기법.

    방법: CPU가 명령어를 실행할 논리 주소의 값이 한계 레지스터의 값보다 작은지 비교. 만약 논리 주소가 한계 레지스터보다 크면 인터럽트를 발생하여 명령어 실행을 중단한다.

    한계 레지스터: 어떤 프로그램의 논리 주소 최댓값.

    베이스 레지스터 < 어떤 프로그램의 물리 주소 < 베이스 레지스터 + 한계 레지스터의 값

     

     

    6-3. 캐시 메모리

    저장 장치 계층 구조 memory hierarchy

    출처:&nbsp; https://www.codingninjas.com/studio/library/memory-hierarchy

    +모든 저장장치는 CPU와 가까울수록 빠르다.

    +계층 하위에 위치할수록 비용은 저렴

     

    캐시 메모리 필요 이유

    CPU 연산 속도가 CPU의 메모리(주기억장치) 접근 속도보다 월등히 빠름. → CPU가 아무리 발전해봤자 CPU가 메모리에 접근하는 속도가 향상되지 못하면 컴퓨터의 전체 성능은 의미가 없음.

    캐시 메모리 SRAM 기반이므로 DRAM 기반인 메모리보다 속도가 빠름.

    ⇒ RAM 대신 캐시 메모리에 접근하게 하여 컴퓨터 성능을 높이자! → CPU와 메모리 사이에 캐시 메모리를 배치함.(캐시 메모리는 메모리보다 CPU와 가까이 있으므로 CPU의 접근 속도도 더 빠르므로)

     

    캐시 메모리 종류

    L(Level)1 캐시 메모리

    일반적으로 CPU 내부에 위치함.

    L1 캐시 메모리는 다음과 같이 분리되기도 함.(분리형 캐시 split cache)

    L1I: 명령어Instruction만 저장하는 L1 캐시 메모리

    L1D: Data만 저장하는 L1 캐시 메모리

    L2 캐시 메모리

    일반적으로 CPU 내부에 위치함.

    —> L1/L2 는 CPU 내부에 존재하는 경우가 많으므로 CPU가 여러 개인 컴퓨터는 L1/L2 간 동기화도 중요함.

    L3 캐시 메모리

    일반적으로 CPU 외부에 존재

    ⇒ 속도는 L1 > L2 > L3

    ⇒ CPU가 데이터를 찾기 위해 접근하는 순서도 L1 → L2 → L3 순

    ⇒ L1/L2 캐시 메모리는 멀티 코어 구성에서는 코어마다 L1/L2가 있고 각 캐시 메모리 간 동기화도 중요함. L3는 공유하는 형태인 경우가 많음

    출처:&nbsp;https://www.alibabacloud.com/blog/understanding-memory-performance_594708

     

    참조 지역성의 원리

    캐시 히트: CPU가 캐시 메모리에 저장된 데이터를 사용(=접근)하는 경우

    캐시 미스: CPU가 캐시 메모리에 저장되지 않은 데이터를 사용하기 위해 메모리에서 가져오는 경우

    캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

    ⇒ 캐시 적중률을 높이기 위한 방법 중 하나가 참조 지역성의 원리에 기반하여 메모리의 데이터를 캐시 메모리로 가져오는 것이다. (=CPU가 자주 사용하는 데이터를 예특하여 캐시 메모리에 저장)

    원리

    1) CPU는 최근에 접근한 메모리에 다시 접근하려는 경향이 있다.

    2) CPU는 최근에 접근한 메모리와 인접한 메모리에도 접근하는 경향이 있다.

     

    * 본 글의 일부 설명과 그림의 출처는 '혼자-공부하는-컴퓨터구조-운영체제' 입니다.

    https://www.yes24.com/Product/Goods/111378840

     

    혼자 공부하는 컴퓨터 구조+운영체제 - 예스24

    혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서이 책은 독학으로 컴퓨터 구조와 운영체제를 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했다. 뭘 모르는지

    www.yes24.com

    'CS > 컴퓨터구조' 카테고리의 다른 글

    8장. 입출력장치  (0) 2023.09.05
    7장. 보조기억장치  (1) 2023.09.03
    5장. CPU 성능 향상 기법  (0) 2023.08.26
    4장. CPU  (0) 2023.08.26
    3장. 명령어  (0) 2023.08.24

    댓글

Designed by Tistory.