4. 메모리
- RAM (Random Access Memory) : 임의 접근이란 저장된 요소에 순차적으로 접근할 필요 없이 임의의 위치에 접근 가능한 방식을 의미 ( = 직접 접근)
Ex. 100번지에 있는 데이터에 접근할 때 1, 2, 3번지를 거치지않고 곧장 100번지에 접근 - DRAM : 시간이 지나면 저장된 데이터가 점차 사라지는 RAM이다. 저장된 내용을 유지하기 위해 일정 간격으로 반드시 Refresh가 필요하다.
- SRAM : 시간이 지나도 저장된 데이터가 사라지지 않는 RAM이다. 비휘발성 저장장치라는 의미는 아니다. 전원 공급이 되지않으면 데이터 소실은 마찬가지이고 Refresh는 필요없다.
SRAM은 DRAM보다 빠르지만 소비 전력이 크고 집적도가 낮다. DRAM은 전력소모가 적고 집적도가 높으며 용량이 커서 일반적인 PC 메모리로 사용된다. SRAM은 CPU의 캐시 메모리로 주로 사용
Refresh : 데이터를 축전기(캐패시터)에 전하의 형태로 저장하기 때문에 자연스럽게 방전이 되는데 이 때 전하를 재충전하여 데이터를 유지하는 작업
직접도 ? - 물리적 설계에서 얼마나 공간을 차지하는가를 의미. DRAM의 경우 작은 용량의 셀을 촘촘히 배치할 수 있고 이는 직접도가 높다는 것이다. SRAM의 경우 더 복잡한 구조가 필요하여 동일 면적에 대해 직접도가 낮다.
- SRAM은 왜 Refresh가 필요없는가?
- SRAM은 플립플롭(flip-flop)이라는 트랜지스터 기반 회로를 사용해 데이터를 저장한다. 플립플롭은 두 가지 상태(0과 1)를 안정적으로 유지할 수 있는 회로라서, 전원이 공급되는 동안에는 별도의 리프레시가 필요 없다.
- 빅 엔디안 : 최상위바이트(MSB)가 가장 낮은 주소에 저장되는 방식 (RISC CPU)

- 리틀 엔디안 : 최상위바이트(MSB)가 가장 높은 주소에 저장되는 방식 (Intel CPU)

- 캐시 메모리 : CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위해 탄생한 SRAM 기반의 저장장치
CPU가 매번 메모리에 접근하면 시간이 오래 걸리므로 메모리의 일부 데이터를 캐시 메모리로 가져와 활용 (요리를 할 때 냉장고의 재료를 도마에 미리 꺼내놓는 것과 같다.)

- CPU가 메모리 내에 데이터를 필요로 함
- L1 캐시 메모리에 해당 데이터가 있는지 확인
- L2, L3 캐시 메모리 순으로 데이터를 검색
- 캐시 히트 & 캐시 미스 : 캐시 메모리가 예측하여 저장한 데이터가 CPU에 의해 실제로 사용되는 경우를 캐시 히트, 틀린 예측으로 CPU가 메모리로 부터 필요한 데이터를 직접 가져와야 하는 경우 캐시 미스라고 한다.
- 캐시 메모리는 CPU가 사용할법한 데이터를 예측하여 저장한다고 했는데, 어떻게 가능할까? ⇒ 참조 지역성의 원리라는 원칙에 따라 결정됨.
- 시간 지역성: 최근에 사용된 데이터는 가까운 시일 내에 다시 사용될 가능성이 높다.
- 공간 지역성: 특정 데이터가 사용되면, 그와 가까운 주소의 데이터가 곧 사용될 가능성이 높다.
5. 보조기억장치와 입출력장치
- 하드 디스크 드라이브 & 플래시 메모리 기반 저장장치 : 오늘날 대중적으로 활용되고 있는 보조기억장치이다.
- 장치 드라이버 : 장치 컨트롤러의 동작을 알고, 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있도록 하는 프로그램
입출력 장치가 CPU와 정보를 주고 받는 방법 세 가지
- 프로그램 입출력
- 인터럽트 기반 입출력
- DMA 입출력
- 프로그램 입출력 : 프로그램 속 명령어로 입출력 작업을 수행하는 방법. (CPU가 장치와 직접 상호작용하면서 입출력 작업을 수행)
- 인터럽트 기반 입출력 : 일반적으로 사용되는 입출력장치가 많기 때문에 동시다발적인 인터럽트가 발생됨.
인터럽트 중에서도 우선순위가 존재하여 모든 인터럽트가 순차적으로 처리되지는 않는다. 만약 무시할 수 없는 인터럽트인 NMI(Non Maskable Interrupt)가 발생하면 이런 우선순위가 높은 인터럽트부터 처리하게됨
다중 인터럽트를 처리하는 PIC를 사용하여 여러 장치 컨트롤러에서 발생하는 하드웨어 인터럽트의 우선순위를 판단하고 CPU에게 전달한다. (NMI의 경우 PIC를 거치지않고 바로 CPU로 전달됨)

- DMA 입출력 : 위에서 설명한 2가지 방법은 CPU가 입출력장치와 메모리간의 데이터 이동을 주도해야 하며 데이터 또한 CPU를 거치게 됨. 따라서 CPU가 많은 시간을 뺏기는 단점이 생김. 따라서 DMA 컨트롤러를 추가하여 CPU를 거치지 않고 직접 메모리에 접근하기 시작한 것이 DMA이다.

- CPU가 DMA 컨트롤러에게 입출력 장치의 주소, 수행할 연산, 연산할 메모리 주소 등의 정보와 함께 입출력 작업을 명령
- DMA 컨트롤러가 CPU 대신 장치 컨트롤러와 상호작용하며 입출력 작업 수행
- DMA 컨트롤러는 입출력 작업이 끝나면 CPU에게 인터럽트를 걸어 작업이 끝났음을 알림.
⇒ CPU는 DMA 컨트롤러에게 입출력 작업 명령을 내리고, 인터럽트만 받으면 되기 때문에 입출력 관련 부담을 줄일 수 있음.
'Computer Science' 카테고리의 다른 글
| [CHAPTER - 04] 자료구조 - 1 (0) | 2025.12.07 |
|---|---|
| [CHAPTER - 03] 운영체제 - 2 (0) | 2025.11.15 |
| [CHAPTER - 03] 운영체제 - 1 (0) | 2025.11.13 |
| [CHAPTER - 02] 컴퓨터 구조 - 1 (0) | 2025.11.10 |