내용 정리
Chapter 6
메모리=RAM
- RAM(메모리)는 전원을 끄면 저장된 내용이 사라진다는 점에서 휘발성 저장 장치다
- 전원이 꺼져도 내용이 유지되는건 비휘발성 저장 장치
- RAM의 기능: CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 가져온다
- RAM의 용량이 크다면 데이터를 보조기억장치에서 미리 가져와서 RAM에 저장해놓을 수 있다
RAM의 종류
DRAM
Dynamic RAM: 저장된 데이터가 동적으로 변하는/사라지는 RAM
- 데이터가 동적으로 사라지니, 데이터의 소멸을 막기 위해 일정 주기로 재활성화(다시 저장) 해야 함
- 일반적으로 사용되는 RAM
- 소비 전력이 비교적 낮다
- 저렴하다
- 집적도가 높아서(=더 작고 빽빽하게 만들 수 있다) 대용량 설계 용이
SRAM
Static RAM: 저장된 데이터가 변하지 않는 RAM
- 시간이 지나면 저장된 내용이 소실되는 DRAM과 달리 시간이 지나도 저장된 데이터 유지
- DRAM 보다 속도가 빠르다
- 일반적으로 사용되지 않음
- DRAM보다 집적도가 낮다
- 소비 전력이 비교적 높다
- 가격이 비싸다
- 대용량으로 만들 필요는 없으나 속도가 빨라야하는 저장장치에 쓰인다
SDRAM
Synchronus Dynamic RAM: 클럭 신호와 동기화되어 발전된 형태의 DRAM
- 클럭 타이밍에 맞춰 CPU와 정보를 주고 받는 DRAM
- SDR SDRAM(Single Data Rate SDRAM)이라고 부르기도 함
DDR SDRAM
Double Data Rate SDRAM: 대역 폭을 넓혀 속도를 빠르게 만든 SDRAM
- 대역폭: 데이터를 주고 받는 길의 너비
- 최근 가장 흔히 사용됨
- DDR2 SDRAM, DDR3 SDRAM 등등 대역폭이 더 넓은 SDRAM이 있다
메모리 주소
"메모리에 저장된 정보의 위치는 주소로 나타낼 수 있다"
물리 주소 vs 논리 주소
물리 주소
: 정보가 실제로 저장된 하드웨어상의 실제 주소
- 메모리가 사용하는 주소는 물리 주소임
- 실행되는 프로그램들은 다른 프로그램의 물리 주소를 알지 않음
논리 주소
: 실행 중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소
- CPU와 실행 중인 프로그램이 사용하는 주소는 각각 프로그램에 부여된 논리 주소임
- 프로그램마다 같은 논리 주소가 얼마든지 있을 수 있다
- CPU가 논리 주소를 받아들이고 해석하고 연산함
메모리 관리 장치 (MMU)
Memory Management Unit
- CPU와 메모리가 상호작용하기 위한 논리 주소와 물리 주소 간의 변환을 수행
- CPU와 주소 버스 사이에 위치
- CPU가 발생시킨 논리 주소에 베이스 레지스터 값을 더하여 논리 주소를 물리 주소로 변환
- 물리 주소 [베이스 레지스터 값]번지부터 적재된 프로그램의 논리 주소 n번지에는 MMU에서 [베이스 레지스터 값]+n을 하여 접근함
베이스 레지스터: 프로그램의 가장 작은 물리 주소인 첫 물리 주소를 저장
논리 주소: 프로그램의 시작점으로부터 떨어진 거리
...라고 볼 수 있다
메모리 보호 기법
다른 프로그램의 영역을 침범할 수 있는 명령어는 위험하기 때문에 논리 주소 범위를 벗어나는 명령어 실행 방지 및 실행 중이 프로그램이 다른 프로그램에 영향 받지 않도록 보호 필요
한계 레지스터 (Limit Register)
- 논리 주소의 최대 크기를 저장
- 프로그램 논리 주소는 한계 레지스터에 저장된 값보다 커질 수 없다
- 베이스 레지스터 값 <= 프로그램 물리 주소 < 베이스 레지스터 값 + 한계 레지스터 값
if) CPU가 한계 레지스터보다 높은 논리 주소에 접근: 인터럽트(트랩)을 발생시켜 실행 중단
- 프로그램의 독립적인 실행 공간 확보 및 하나의 프로그램이 다른 프로그램을 침범하지 못하게 보호 가능
저장 장치 계층 구조
: CPU에 얼마나 가까운가
저장 장치 특성
- CPU와 가까운 저장 장치는 빠르고, 멀리 있는 저장 장치는 느리다
- 속도가 빠른 저장 장치는 저장 용량이 작고, 가격이 비싸다
예시)
- CPU와 가장 가까운 레지스터는 일반적으로 RAM보다 용량이 작지만 접근 시간이 압도적으로 빠름
- 같은 용량의 USB와 RAM을 비교하면, CPU와 더 가까운 RAM이 접근 시간이 훨씬 빠르며 더욱 비쌈
저장 장치 계층 구조:
- 레지스터
- >> 캐시 메모리 <<
- 메모리
- 보조 기억 장치
캐시 메모리
- CPU와 메모리 사이에 위치
- 레지스터보다 용량이 큼
- 메모리보다 빠름
- SRAM기반의 저장 창지
- 목적: CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위함
- 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져와서 활용
- CPU(코어)와 가까운 순서대로 계층을 구성
- 가장 가까운 캐시 메모리: L1 캐시
- 메모리 내에 데이터가 필요할 시 CPU가 가장 먼저 해당 데이터 유무를 찾는 곳
- 코어마다 고유한 캐시 메모리로 할당됨
- 명령어만 저장하는 L1I 캐시와 데이터만을 저장하는 L1D 캐시로 분리하기도 함 (분리형 캐시)
- 두번째로 가까운 캐시 메모리: L2 캐시
- 그 다음 가까운 캐시 메모리: L3 캐시
- L3캐시는 코어의 외부에 위치
- 여러코어가 공유하는 형태로 사용
캐시 적중률
캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장해야 함
- 캐시 히트: 자주 사용할 것을 예측 & 실제로 자주 사용되는 경우
- 캐시 미스: 자주 사용할 것을 예측 but 예측이 틀려서 메모리에서 필요한 데이터를 직접 가져와야하는 경우
캐시 적중률 = 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)
참조 지역성의 원리
: 캐시 메모리가 메모리로부터 가져올 데이터를 결정하는 한 가지 원칙
- CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향이 있다
- CPU는 변수가 저장된 메모리 공간을 언제든 다시 참조할 수 있다는 말
- 시간 지역성이라고도 부름
- CPU는 접근한 메모리 공간 근처를 접근하려는 경향이 있다
- 메모리 내 프로그램들은 관련 데이터끼리 모여서 저장
- 하나의 프로그램 내에도 각 기능과 관련한 데이터 끼리 모여서 저장
- 따라서 CPU가 프로그램 실행 시 프로그램이 모여 있는 공간 근처를 집중적으로 접근
- 공간 지역성이라고도 부름
Chapter 7
하드 디스크
- 자기적인 방식으로 데이터를 저장하는 보조기억장치
- 대용량 저장 장치가 필요한 작업에 사용
<구성요소>
플래터
: 하드 디스크에서 실질적으로 데이터가 저장되는 곳
- 동그란 원판 모양
- 자기 물질로 덮여 있어 수많은 N극과 S극 저장
- 트랙과 섹터라는 단위로 데이터를 저장
- 섹터는 하드 디스크의 가장 작은 전송 단위
- 섹터는 일반적으로 512바이트 정도의 크기를 갖는다 (하드 디스크에 따라 다름)
- 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위를 실린더라고 부름
스핀들
: 플래터를 회전시키는 구성 요소
- 스핀들이 플래터를 돌리는 속도는 RPM이라는 단위로 표현
헤드
: 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소
- 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓴다
- 바늘같이 생김
디스크암
: 헤드를 원하는 위치로 이동시키는 구성 요소
<데이터 접근 시간>
탐색 시간
회전 시간
전송 시간
Chapter 8
혼공학습단 미션
기본 미션
p. 185의 확인 문제 3번
- 주로 캐시 메모리로 활용됩니다: SRAM
- 주로 주기억장치로 활용됩니다: DRAM
- 대용량화하기 유리합니다: DRAM
- 집적도가 상대적으로 낮습니다: SRAM
문제와 <보기>에 SDRAM이 써있어서 혼란스러웠으나 교재 뒤의 답안지를 확인하고 안도했다...
p. 205의 확인 문제 1번
선택 미션
Ch07(07-1) RAID의 정의와 종류를 간단히 정리해 보기
(지난 학기에 <서버운영과 보안> 강의를 들었을 때 RAID 공부를 간략히 하긴 했으나 깊이 있게 들어가진 않아서 RAID라는 분은 이름만 낯 익은 분이다...)
- RAID: 주로 하드디스크와 SSD를 사용하는 기술로, 데이터의 안전성 혹은 높은 성능을 위해 여러 개의 물리적 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술
RAID는 "Redundant Array of Independent Disks" 또는 "Redundant Array of Inexpensive Disks"의 약자로, 여러 개의 하드 디스크 드라이브를 결합하여 데이터를 저장하고 보호하는 기술입니다. RAID 시스템은 다양한 수준 및 구성 옵션을 제공하여 성능 향상, 데이터 안전성, 또는 둘 다를 목표로 할 수 있습니다.
RAID는 데이터 중복성과 안전성을 향상시키면서도 성능을 개선하는 등 다양한 용도에 맞게 구성할 수 있어 많은 서버 및 저장 시스템에서 널리 사용됩니다.
-ChatGPT
지피티는 RAID레벌 0, 1, 5, 6, 10에 대해 설명했기 때문에 교재의 4번까지 포함하여 총 6개의 레벨의 기능을 간단히 정리해보겠다.
- RAID 0
- RAID 1
- RAID 4
- RAID 5
- RAID 6
- RAID 10