✔️메모리와 캐시 메모리
RAM의 특징과 종류
- 주기억장치의 종류에는 RAM과 ROM이 존재하고 '메모리'는 주로 RAM을 지칭한다.
- RAM은 실행할 프로그램의 명령어와 데이터가 저장되는 휘발성 저장 장치이고, 보조기억장치는 비휘발성 저장 장치이다.
- RAM의 용량이 클시 보조기억장치에서 프로그램을 여러 횟수에 걸쳐 가져올 필요가 없으므로, 일반적으로 프로그램 실행 속도가 증가한다.
- RAM의 종류는 DRAM,SRAM,SDRAM,DDR SDRAM으로 크게 나뉜다.
- DRAM: 시간이 지나면 저장된 데이터가 점차 사라지는 RAM/ 소비 전력이 비교적 낮음/ 저렴함/ 집적도가 높음/대용량 설계가 용이
- SRAM: 저장된 데이터가 변하지 않는 RAM/ 소비 전력 높음/ 비쌈/ 집적도가 낮음/캐시 메모리로 주로 사용됨
- SDRAM: 클럭과 동기화된 DRAM
- DDR SDRAM: 대역폭이 두 배 넓은 SDRAM
메모리의 주소 공간
- 메모리의 주소 공간에는 물리 주소와 논리 주소가 존재하며 물리 주소는 메모리 하드웨어가 사용하는 주소이고, 논리 주소는 CPU와 실행중인 프로그램이 사용하는 주소이다.
- CPU가 메모리와 상호작용하기 위해서는 논리 주소와 물리 주소 간의 변환이 필요한데 이때 MMU(메모리 관리 장치)라는 하드웨어가 변환을 수행한다.
- MMU는 CPU가 발생시킨 논리 주소+ 베이스 레지스터 값을 통해 논리 주소를 물리 주소로 변환한다.
- 베이스 레지스터: 프로그램의 가장 작은 첫 무리 주소
- 논리 주소: 프로그램의 시작점으로부터 떨어진 거리
- 한계 레지스터는 논리 주소 범위를 벗어나는 명령어 실행을 방지하고 실행 중인 프로그램이 다른 프로그램에 영향을 받지 않도록 하는 메모리 보호 레지스터이다.
- 한계 레지스터는 논리 주소의 최대 크기를 저장한다.
- 즉 프로그램의 물리 주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값+한계 레지스터 값 미만으로 이루어지게 된다.
캐시 메모리
- 캐시 메모리: CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치
- 컴퓨터가 사용하는 저장 장치들은 'CPU에 얼마나 가까운가'를 기준으로 표현하고 이를 저장 장치 계층 구조라고 한다.
- 캐시 히트: 캐시 메모리가 CPU가 사용할 대상 데이터를 예측하여 실제로 들어맞아 캐시 메모리 내 데이터가 CPU에서 활용될 경우
- 캐시 적중률이 높으면 CPU의 메모리 접근 횟수를 줄일 수 있다.
- 캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높인다.
- 시간 지역성: 최근에 접근했던 메모리 공간에 다시 접근하려는 경향
- 공간 지역성: 접근한 메모리 공간 근처를 접근하려는 경향
✔️보조기억장치
다양한 보조기억장치
- 하드디스크: 자기적인 방식으로 데이터를 저장하는 보조기억장치
- 하드디스크의 구성 요소에는 플래터, 스핀들, 헤드, 디스크암이 있다.
- 플래터: 하드 디스크가 저장되는 장소
- 스핀들: 하드 디스크의 플래터를 돌리는 구성 요소
- 헤드: 하드 디스크에 저장된 데이터를 읽고 쓰는 구성 요소
- 디스크암: 원하는 위치로 헤드를 이동시키는 구성 요소
- 하드 디스크가 저장된 데이터에 접근하는 시간은 탐색 시간, 회전 지연, 전송 지연으로 나뉜다.
- 탐색 시간: 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
- 회전 지연: 헤드가 있는 곳으로 플래터를 회전시키는 시간
- 전송 시간: 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간
- 플래시 메모리: 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치로, 보조기억 장치로 활용된다.
- SLC 타입: 한 셀에 1비트를 저장할 수 있는 플래시 메모리
- MLC 타입: 한 셀에 2비트를 저장할 수 있는 플래시 메모리
- TLC 타입: 한 셀에 3비트를 저장할 수 있는 플래시 메모리
- 셀: 플래시 메모리 내 가장 작은 단위
- 페이지: 셀들이 모여 만들어진 단위
- 블록: 페이지가 모여 만들어진 단위
- 플레인: 블록이 모여 만들어진 단위
- 다이: 플레인이 모여 만들어진 단위
- 플래시 메모리에서 읽기와 쓰기는 페이지 단위로 이루어지고 페이지는 Free, Valid, Invalid의 상태를 가질 수 있다.
- Free: 어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid: 이미 유효한 데이터를 저장하고 있는 상태
- Invalid: 쓰레기값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태
- 플래시 메모리는 덮어쓰기가 불가능하여 Valid 상태의 페이지에 새 데이터를 저장할 수 없다.
- 가비지 컬렉션: 유효한 페이지들만 새로운 블록으로 복사한 후 기존 블록을 삭제하여 공간을 정리
RAID
- RAID: 데이터의 안전성 혹은 높은 성능을 위해 여러 하드 디스크나 SSD를 마치 하나의 장치처럼 사용하는 기술
- RAID의 종류
- RAID 0: 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
저장되는 데이터가 하드 디스크 개수만큼 나뉘어 저장되고 이렇게 분산하여 저장하는 것을 스트라이핑이라고 칭한다. RAID 0은 저장된 정보가 안전하지 않다는 단점이 있다. - RAID 1: 복사본을 만드는 방식으로 미러링이라고 칭한다.
복구가 매우 간단하다는 장점이 있으나, 하드 디스크 개수가 한정되었을 때 사용 가능한 용량이 적어진다는 단점이 있다. - RAID 4: 오류를 검출하고 복구하기 위한 정보인 패리티 비트를 두는 구성 방식
새로운 데이터가 저장될 때마다 패리티를 저장하는 디스크에도 데이터를 쓰게 되어 병목 현상이 발생한다는 단점이 있다. - RAID 5: 패리티를 분산하여 저장하는 구성 방식
- RAID 6: 서로 다른 두 개의 패리티를 두는 구성 방식
RAID 5보다는 속도가 느리나, 더 안전하게 데이터를 보관하고 싶을 때 사용된다.\
- RAID 0: 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식
✔️입출력장치
장치 컨트롤러와 장치 드라이버
- 입출력장치는 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고받는다.
- 장치 컨트롤러를 사용하는 이유
- 입출력장치의 종류가 너무 많아, 다양한 입출력장치와 정보를 주고받는 방식 규격화가 어렵다.
- CPU 와 메모리의 전송률과 입출력장치의 전송률이 비슷하지 않다.
- 장치 컨트롤러의 기능
- CPU와 입출력장치 간의 통신 중개
- 오류 검출
- 데이터 버퍼링
- 장치 컨트롤러의 구조
- 데이터 레지스터: CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터
- 상태 레지스터: 입출력장치의 상태 정보가 저장되는 레지스터
- 제어 레지스터: 입출력장치가 수행할 내용에 대한 제어 정보와 명령을 저장하는 레지스터
- 장치 드라이버: 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
다양한 입출력 방법
- 프로그램 입출력: 프로그램 속 명령어로 입출력 작업을 하는 방식
- 메모리 맵 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 입출력 방식
- 고립형 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 별도로 분리하는 입출력 방식
- 인터럽트 기반 입출력: 인터럽트로써 입출력을 수행하는 방법
- DMA 입출력: CPU를 거치지 않고 메모리와 입출력장치 간의 데이터를 주고받는 입출력 방식
- 입출력 버스: 입출력장치와 컴퓨터 내부를 연결 짓는 통로로, 입출력 작업 과정에서 시스템 버스 사용 횟수를 줄여준다.
숙제
'공부' 카테고리의 다른 글
[혼공컴운]4주차_운영체제/프로세스와 스레드/CPU 스케줄링 (0) | 2025.02.09 |
---|---|
[혼공컴운]2주차_CPU의 작동 원리/CPU 성능 향상 기법 (0) | 2025.01.19 |
[혼공컴운] 1주차_컴퓨터 구조/데이터/명령어 (0) | 2025.01.12 |
xgboost 모델 (0) | 2024.12.26 |
가설검정 (0) | 2024.11.30 |