[컴퓨터 구조] 메모리, 보조기억장치, 입출력장치에 대해서

Yong·2023년 7월 23일
0

홍공컴운

목록 보기
3/6

메모리와 캐시 메모리

1. RAM의 특징과 종류

RAM의 특징

RAM에는 실행할 프로그램의 명령어와 데이터가 저장된다.
RAM은 휘발성 저장 장치이기 때문에 전원이 차단되면 저장된 내용이 사라진다.

RAM은 용량이 크면 프로그램을 동시에 실행하는데 유리하다. 여러 프로그램을 실행할 때, RAM 용량이 작다면 보조기억장치로 부터 프로그램 데이터를 가져오는 과정을 반복해야하지만 RAM 용량이 크면 RAM에 충분한 데이터를 저장할 수 있기 때문에 실행 속도가 빨라진다.

RAM의 종류

  • DRAM:Dynamic RAM의 준말이다. 일정 주기로 데이터를 재활성화 해야한다. 높은 용량으로 설계가 가능하고 비용도 적게 든다.
  • SRAM:Static RAM의 준말이다. 저장된 데이터가 변하지 않는다. 소비 전력이 낮고 속도는 빠르지만 높은 용량으로 만들 수 없다. DRAM에 비해서 비용이 높다. 주로 캐시 메모리로 활용된다.
  • SDRAM: 클럭 신호에 맞춰 CPU와 정보를 주고 받을 수 있는 램이다.
  • DDR SDRAM: 대역폭이 두배 큰 SDRAM이다. DDR2는 네 배 크고, DDR4는 열여섯 배 큰 대역폭을 가진다.

2. 메모리의 주소 공간

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

물리 주소와 논리 주소

물리 주소는 실제 메모리의 하드웨어상의 주소를 의미한다.
반면 CPU와 실행 중인 프로그램이 0번지 부터 사용하게 되는 주소를 논리 주소라고 한다.
예를 들어 게임과 브라우저가 실행되고 있다고 가정했을 때 게임의 논리 주소는 0번지부터 N번지까지 이고 브라우저는 0번지부터 M번지까지 사용한다. 둘의 주소가 겹치는 주소가 있지만 실제 물리 주소는 다른 주소를 가지게 된다.

CPU가 메모리와 데이터를 주고 받기 위해서 논리 주소는 물리 주소로 변환이 이루어져야한다. CPU와 주소 버스 사이에 위치한 메모리 관리 장치(MMU)에 의해서 수행된다.

메모리 보호 기법

만약 하나의 프로그램의 명령어가 다른 프로그램의 메모리 주소에 접근을 하려고 한다면 그 명령어는 실행되어서는 안된다. 프로그램의 논리 주소 영역을 벗어났기 때문이다. 서로 다른 프로그램의 명령어로부터 각 메모리를 보호를 담당하는 한계 레지스터가 있다.

베이스 레지스터는 프로그램의 물리 주소 시작 번지를 저장하고 한계 레지스터는 논리 주소의 최대 크기를 저장한다.

예를 들어 A프로그램은 베이스 레지스터에 100, 한계 레지스터에 150이 저장 되어 있다면
물리 주소 100번지~250번지까지 메모리를 사용하고 있다. 만약 A프로그램의 명령어가 200번지를 삭제하라고 명령한다면 물리 주소 300번지(100+200)를 삭제하라고 명령하는 것이기 때문에 실행되어서는 안된다.

만약 명령어가 논리 주소를 벗어난 접근을 명령했을 때 인터럽트를 발생시켜 중단시킨다.

3. 캐시 메모리

CPU와 메모리 사이에는 캐시 메모리가 존재한다. CPU가 메모리에 접근하는 시간은 CPU의 연산 속도 보다 느리기 때문에 이를 극복하기 위한 장치가 캐시 메모리다.

CPU가 데이터를 메모리에서 직접 가지고 오는 것이 아닌, 캐시 메모리에 저장된 데이터를 가져오기 때문에 접근 속도를 줄일 수 있다.

컴퓨터에는 여러 개의 캐시 메모리가 있다. L1, L2 캐시는 CPU(코어) 내부에 있고, L3 캐시는 코어 외부에 위치하고 있다.

  • 용량은 L1, L2, L3 순으로 커진다.
  • 속도는 L3, L2, L1 순으로 빨라진다.

보조기억장치

1. 다양한 보조기억장치

하드 디스크

하드 디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치이다. 대용량 데이터를 저장하기 위해서 사용하는 장치이다.

하드 디스크 내부에는 플래터라는 원판 장치가 있고 0과 1의 역할을 수행하는 수많은 N극과 S극을 저장한다. 플래터는 스핀들이라는 장치가 회전시키게 된다.

데이터 접근 시간

하드 디스크가 저장된 데이터에 접근 하느 시간은 크게 탐색 시간, 회전 지연, 전송 시간으로 나뉜다.

  • 탐색 시간: 데이터가 저장된 트랙까지 헤드(데이터를 읽고 쓰는 바늘 같이 생긴 부품)를 이동시키는 시간
  • 회전 지연: 헤드가 있는 곳으로 플래터를 회전 시키는 시간
  • 전송 시간: 디스크와 컴퓨터 간에 데이터를 전송하는 시간.

플래시 메모리

플래시 메모리는 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치이다. 플래시 메모리 기반의 보조 기억 장치는 USB 메모리, SD카드, SSD 등이 있다.

플래시 메모리에는 (cell)이라는 단위가 있다. 플래시 메모리에 데이터를 저장하는 가장 작은 단위이다.
하나의 셀에 몇 비트를 저장할 수 있는지에 따라 플래시 메모리 종류가 나뉜다.

  • SLC: 한 셀에 1비트를 저장한다. 입출력이 빠르고 수명도 길지만 비싸다. 고성능 장치에 SLC 타입을 사용함.
  • MLC: 셀에 2비트씩 저장할 수 있다. SLC와 TLC 중간 정도의 성능이고 시중에서 가장 많이 사용하는 타입이다.
  • TLC: 셀에 3비트씩 저장할 수 있다. 다른 타입에 비해서 느리지만 용량 대비 가장 저렴하다.

플래시 메모리는 읽기/쓰기의 단위와 삭제의 단위가 다르다.
읽기/쓰기는 페이지 단위로 이루어지고 삭제는 블록 단위로 이우렁진다. (셀이 모여 만들어지는 단위가 페이지, 페이지가 모여 만들어지는 단위가 블록)

2. RAID의 정의와 종류

RAID는 보조기억 장치의 데이터 안정성과 높은 성능을 위해 여러 개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용하는 기술이다.

  • RAID 0: 단순하게 병렬로 데이터를 분산하여 저장하는 방식이다. 데이터가 손실되면 문제가 생긴다.
  • RAID 1: 복사본(백업)을 만들어 저장하는 방식이다. 동일한 데이터를 동시에 저장하기 때문에 RAID 0에 비해 저장 속도가 느리다. 많은 양의 하드 디스크 용량을 필요로 하게 된다.
  • RAID 4: 오류를 검출하고 복구하기 위한 패리티 비트를 저장한다. 저장한 데이터의 오류를 검출하고 복구한다.
  • RAID 5: RAID 4는 패리티를 저장하는 장치를 따로 두기 때문에 병목현상이 생긴다. 이를 해결하기 위해 패리티를 분산하여 저장하는 방식이다.
  • RAID 6: 서로 다른 패리티를 저장하는 방식. RAID 4나 RAID 5보다 안전하지만 쓰기 속도는 느리다.

입출력장치

1. 장치 컨트롤러와 장치 드라이버

장치 컨트롤러

입출력장치는 종류가 다양하고 장치마다 전송률도 다르다. CPU와 메모리, 입출력장치 간의 통신을 어렵게 한다.

이런 이유로 장치 컨트롤러를 사용한다. 입출력 제어기, 입출력 모듈 등으로 다양하게 불린다.

장치 컨트롤러는 CPU와 입출력장치 간의 통신을 중개하고 오류 검출, 데이터 버퍼링 등을 수행한다.

데이터 버퍼링은 전송률이 높은 장치와 낮은 장치 사이에 주고 받는 데이터를 버퍼 라는 임시 공간에 저장하여 한꺼번에 처리하여 전송률을 맞추는 방법이다.

장치 드라이버

장치 드라이버는 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 해주는 프로그램이다.

2. 다양한 입출력 방법

CPU는 어떻게 장치 컨트롤러와 정보를 주고 받을까

프로그램 입출력

프로그램 속 명령어로 입출력장치를 제어하는 방법이다. CPU가 장치 레지스터들과 정보를 주고 받는 방식은 두가지다.

  • 메모리 맵 입출력은 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 입출력 방식이다.
  • 고립형 입출력은 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 별도로 분리하는 입출력 방식이다.

3주차 미션



이 글은 한빛미디어의 혼공학습단 활동을 하며 적는 글입니다. 혼자 공부하는 컴퓨터 구조+운영체제 책을 참고하여 작성되었습니다.
혼공시리즈: https://hongong.hanbit.co.kr/

profile
If I can do it, you can do it.

0개의 댓글