profile image

L o a d i n g . . .

메모리와 캐시 메모리

RAM의 특징과 종류

RAM의 특징

RAM은 전원을 끄면 저장된 내용이 모두 사라지는 휘발설 저장 장치. '실행할 대상'을 저장.

보조기억장치는 전원이 꺼져도 저장된 내용이 유지되는 비휘발성 저장 장치. '보관할 대상'을 저장.

 

RAM의 용량과 성능

RAM 용량이 크면 많은 프로그램들을 동시에 빠르게 실행하는 데 유리하다.

개발자가 알아야 할 컴퓨터 구조 지식

 

개발자가 알아야 할 컴퓨터 구조 지식

다만 많은 프로그램을 동시에 실행할 일이 없다면, 성능에는 큰 차이가 없을 것이다.

 

RAM 의 종류

  • DRAM은 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이고, SRAM은 시간이 지나도 저장된 데이터가 사라지지 않은 RAM이다.
  • SRAM은 빠르다는 장점도 있지만, 집적도가 낮고 소비전력도 크며 가격도 더 비싸다. DRAM은 소비전력이 비교적 낮고, 저렴하고, 집적도가 높아 대용량으로 설계하기 용이하다.
    그래서, 일반적인 메모리로써 사용하는 RAM은 DRAM이고, SRAM은 캐시 메모리에서 사용된다.
  • SDRAM은 클럭과 동기화된 DRAM이다.
  • DDR SDRAM은 SDRAM에 비해 대역폭이 두 배 넓다.

 

메모리의 주소 공간

물리 주소와 논리 주소

CPU와 실행 중인 프로그램은 현재 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있을까?

그렇지 않다. 그 이유는 메모리에 저장된 정보는 시시각각 변하기 떄문이다. 메모리에는 새롭게 실행되는 프로그램이 시시때때로 적재되고, 실행이 끝난 프로그램은 삭제된다. 게다가 같은 프로그램을 실행하더라도 적재되는 주소가 달라진다.

그렇다면 CPU와 실행 중인 프로그램이 이해하는 주소는 무엇일까?

주소에는 메모리가 사용하는 물리 주소가 있고, CPU와 실행중인 프로그램이 사용하는 논리 주소가 있다.

물리 주소(Physical address) 는 메모리 하드웨어상의 주소이다.
논리 주소(Logical address) 는 CPU와 실행 중인 프로그램이 사용하는 주소이다. 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소이다.

실행 중인 프로그램은 모두 물리 주소가 아닌 0번지부터 시작하는 자신만을 위한 논리주소를 가지고 있다.

개발자가 알아야 할 컴퓨터 구조 지식

CPU가 메모리와 상호작용 하려면 논리 주소와 물리 주소 간의 변환이 이루어져야 한다.

논리 주소와 물리 주소 간의 변환은 CPU와 주소 버스 사이에 위치한 메모리 관리 장치 MMU(Memory Management Unit)라는 하드웨어에 의해 수행된다.

개발자가 알아야 할 컴퓨터 구조 지식개발자가 알아야 할 컴퓨터 구조 지식

MMU는 CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환한다.

베이스 레지스터는 프로그램의 가장 작은 물리 주소,
논리 주소는 프로그램의 시작점으로부터 떨어진 거리인 셈이다.

 

캐시 메모리

CPU는 프로그램을 실행하는 과정에서 메모리에 저장된 데이터를 빈번하게 사용한다. 하지만 대부분 CPU가 메모리에 접근하는 시간은 CPU의 연산 시간보다 느리다.

CPU가 연산을 빨리 한다 해도 메모리에 접근하닌 시간이 느리다면…. CPU의 빠른 연산 속도는 쓸모가 없을 것이다.

이 떄문에 저장 장치 계층 구조가 생기게 된다.

개발자가 알아야 할 컴퓨터 구조 지식



캐시 메모리

캐시 메모리는 CPU의 연산 속도와 메모리 접근 속도를 줄이기 위해 탄생했다.

개발자가 알아야 할 컴퓨터 구조 지식개발자가 알아야 할 컴퓨터 구조 지식

컴퓨터 내부에 여러 개의 캐시 메모리가 있다.
L1(Level 1), L2(Level 2), L3(Level 3) 캐시.

짐작할 수 있다시피, 코어와 가깝고 빠른 속도는 L1, L2, L3 순이고
캐시 메모리 용량은 L3, L2, L1 순이다.

 

참조 지역성의 원리

캐시 적중률은 캐시 메모리에 저장된 내용이 실제로 사용된 비율이다.
캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.

캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다.

참조 지역성의 원리

  1. 시간 지역성 temperal locality
    최근에 접근했던 메모리 공간에 다시 접근하려는 경향.
  2. 공간 지역성 spatial locality
    접근한 메모리 근처를 접근하려는 경향.

 

보조기억장치

다양한 보조기억장치

하드디스크

하드 디스크 작동 영상을 한 번 보자.
https://www.youtube.com/watch?v=p-JJp-oLx58

개발자가 알아야 할 컴퓨터 구조 지식개발자가 알아야 할 컴퓨터 구조 지식

플래터 platter
하드디스크(HDD)에서 실질적으로 데이터가 저장되는 동그란 원판. 하드디스크는 자기적인 방식으로 데이터를 저장한다. 플래터는 자기 물질로 덮여 있어 수많은 N극과 S극을 저장하는데, N극과 S극은 0과 1의 역할을 수행한다.

스핀들 spindle
플래터를 회전시키는 구성 요소. 스핀들이 플래터를 돌리는 속도는 분당 회전수 RPM(Revolution Per Miniute)이라는 단위로 표현된다.

개발자가 알아야 할 컴퓨터 구조 지식

헤드 head
플래터를 대상으로 데이터를 읽고 쓰는 구성 요소

디스크 암 disk arm
원하는 위치로 헤드를 이동시킨다. 끝에 헤드가 부착되어 있다.

개발자가 알아야 할 컴퓨터 구조 지식

섹터 sector
하드 디스크의 가장 작은 전송 단위이다.

트랙 track
플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원을 트랙이라고 한다.

실린더 sylinder

여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위.
연속된 정보를 하나의 실린더에 기록하는 이유는 디스크 암을 움직이지 않고 바로 데이터에 접근할 수 있기 때문이다.

탐색 시간 seek time
접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간.

개발자가 알아야 할 컴퓨터 구조 지식

회전 지연 rotational time
헤드가 있는 곳으로 플래터를 회전시키는 시간.

개발자가 알아야 할 컴퓨터 구조 지식

전송 시간 transfer time
하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간.

개발자가 알아야 할 컴퓨터 구조 지식

 

플래시 메모리

USB 메모리, SD 카드, SSD 모두 플래시 메모리 기반의 보조기억장치이다.

플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다.

우리가 일상적으로 접하는 거의 모든 전자 제품 안에 플래시 메모리가 내장되어 있다고 봐도 무방할 정도로 널리 사용된다고 한다.

플레시 메모리에는 cell 이라는 단위가 있다. 셀이란 플래시 메모리에서 데이터를 저장하는 가장 작은 단위이다.

하나의 셀이 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉜다.

개발자가 알아야 할 컴퓨터 구조 지식

SLC (Single Level Cell)
한 셀에 1비트를 저장할 수 있는 플래시 메모리

MLC (Multiple Level Cell)
한 셀에 2비트를 저장할 수 있는 플래시 메모리

TLC (Triple Level Cell)
한 셀에 3비트를 저장할 수 있는 플래시 메모리

개발자가 알아야 할 컴퓨터 구조 지식

페이지 page
셀들이 모여 만들어진 단위

블록 block
페이지가 무여 만ㄷ르어진 단위

플레인 plane
블록이 모여 만들어진 단위

다이 die
플레인이 모여 만들어진 단위.

플래시 메모의 읽기와 쓰기는 페이지 단위로, 삭제는 블록 단위로 이루어진다.

 

하드 디스크, 플래시 메모리의 수명

하드 디스크, 플래시 메모리 모두 수명이 있다.
USB, SSD, SD 카드 모두 수명이 다하면 사용이 불가하다.

종이에 연필로 쓰고 지우개로 지우고를 반복하다 보면 결국 종이가 찢어지는 것처럼
한 셀에 일정 횟수 이상 데이터를 쓰고 지우면 그 셀은 더 이상 데이터를 저장할 수 없다.

 

RAID의 정의와 종류

RAID 정의

글로벌 기업의 서버를 생각해보자. 절대로 일어버려선 안 될 개인정보, 결제 정보와 같은 민감한 정보는 어떻게 안전하게 관리할까?

단순히 보조기억장치에 저장하는 안전하지 않다.
앞에서 '보조기억장치에도 수명이 있다'는 사실을 알았기 때문이다.

이럴 떄 사용할 수 있는 방법 중 하나가 RAID(Redundant Array of Independent Disks) 이다.
주로 하드 디스크와 SSD를 사용하는 기술로, 데이터의 안정성 혹은 높은 성능을 위해 여러 개의 물리적 보조 장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

개발자가 알아야 할 컴퓨터 구조 지식


위 그림처럼 1TB 하드디스크 4개로 RAID를 구성하면 4TB 하드 디스크 한 개의 성능과 안정성을 능가할 수 있다.

 

RAID 종류

여러 개의 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 RAID를 구성하는 방법은 여러 가지가 있다. RAID 구성 방법을 RAID 레벨이라고 하는데, 대표적으로 RAID 0, RAID 1, RAID 2, RAID 3, RAID 4, RAID 5, RAID 6 이 있다.

RAID 0
데이터를 단순히 병렬로 분산해서 저장.

개발자가 알아야 할 컴퓨터 구조 지식

RAID 1
완전한 복사본을 만듦.

개발자가 알아야 할 컴퓨터 구조 지식

RAID 4
패리티를 저장한 장치를 따로 두는 방식.
패리티는 오류를 검출하고 북구하기 위한 정보이다. 패리티를 이용해 오류를 검출하고, 오류가 있다면 복구할 수 있다.

개발자가 알아야 할 컴퓨터 구조 지식

RAID 5
패리티를 분산하여 저장하는 방식

개발자가 알아야 할 컴퓨터 구조 지식

RAID 6
서로 다른 두 개의 패리티를 두는 방식

개발자가 알아야 할 컴퓨터 구조 지식

 

확인 문제

p.185
3번 다음 설명을 읽고 SRAM에 대한 설명인지 DRAM에 대한 설명인지 쓰세요.

  • 주로 캐시 메모리로 활용됩니다.(SRAM)
  • 주로 주기억장치로 활용됩니다.(DRAM)
  • 대용량화하기 유리합니다.(DRAM)
  • 집적도가 상대저으로 낮습니다.(SRAM)

 

p.205
1번 보기에 있는 저장 장치들로 저장장치 계층 구조 도식도를 채우시요.

레지스터 - 캐시메모리 - 메모리 - 보조기억장치

 

#혼공학습단 #혼공 #혼공컴운

복사했습니다!