[혼공파] 3주차

exe·2025년 2월 14일
0
  • 휘발성 저장 장치 ; 전원 끄면 저장된 내용이 사라지는 저장 장치 (RAM)
  • 비휘발성 저장 장치 ; 전원 꺼도 저장된 내용 유지되는 저장 장치 (SSD, USB, 하드디스크)

CPU - 보조기억 장치에 직접 접근 불가
=> 보조기억장치(비휘발성)에 보관할 대상을 저장 -> RAM(휘발성)에 실행할 대상을 저장 -> CPU가 실행하고 싶은 프로그램이 보조기억장치에 있다면 이를 RAM으로 복사하여 저장 후 실행

RAM

  • DRAM : 저장된 데이터가 동적으로 변하는 RAM (시간 지나면 사라짐 -> 일정 주기로 데이터 재활성화 필요)
    저렴하고 집적도가 높아(더 작고 빽빽하게 만들 수 있음), 대용량 설계 가능
  • SRAM : 저장된 데이터가 변하지 않는 RAM , DRAM보다 속도 빠름
    시간이 지나도 저장된 데이터 사라지지 않음 (비휘발성 메모리인 건 아님)
    캐시 메모리에서 사용됨 (대용량은 필요 없고 속도는 빨라야 하는)
  • SDRAM : 클럭 신호와 동기화된 형태의 DRAM
  • DDR SDRAM : 최근 가장 흔히 사용, 대역폭 넓혀 속도 빠르게 만든 SDRAM
    (대역폭 ; 데이터를 주고 받는 길의 너비)
    DDR SDRAM은 대역폭이 두 배 넓은 SDRAM

물리 주소 : 메모리 하드웨어가 사용하는 주소 (실제 저장되노 하드웨어상의 주소)
논리 주소 : CPU와 실행 중인 프로그램이 사용하는 주소 (실행중인 프로그램 각각에게 부여된 0번지부터 시작되는 주소)

=> 논리 주소와 물리 주소 간의 변환이 이루어져야 함 (CPU가 메모리와 상호작용하려면)

MMU ; 메모리 관리 장치 ( CPU와 주소 버스 사이에 위치)
=> CPU가 발생시킨 논리 주소에 베이스 레지스터 값 더함 -> 논리 주소 - - - > 물리 주소 변환

베이스 레지스터 : 프로그램의 가장 작은 물리 주소 ( == 프로그램의 첫 물리 주소 저장)
한계 레지스터 : 논리 주소의 최대 크기 저장


  1. CPU와 가까운 저장 장치는 빠르다
  2. 속도가 빠른 저장 장치는 저장 용량이 작고 비싸다

저장 장치 계층 구조
=> CPU에 얼마나 가까운가를 기준으로 계층적으로 나타냄
(가까움) 레지스터 < 메모리 < 보조 기억 장치 (멂)

캐시 메모리 ; CPU와 메모리 사이에 위치, 레지스터보다 용량 크고 메모리보다 빠른 SRAM 기반 저장장치

캐시 메모리 -> CPU의 연산 속도와 메모리 접근 속도의 차이를 줄이기 위한 저장 장치
-> 코어 (CPU)와 가까운 순서대로 계층 구성

  • 코어와 가장 가까운 캐시 메모리 = L1 캐시 , ... L2 ...

참조 지역성 원리 ; 메모리는 CPU가 사용할 법한 대상을 예측하여 저장

  • CPU는 최근에 접근했던 메모리 공간에 다시 접근하는 경향 있음 (시간 지역성)
  • CPU는 접근한 메모리 공간 근처를 접근하는 경향 있음 (공간 지역성)

하드 디스크 구성 요소

  • 플래터
  • 헤드
  • 디스크 암
  • 스핀들

플래터 = 트랙 + 섹터 / 실린더 : 여러 플래터의 동일한 트랙의 모임
하드 디스크의 데이터 접근 시간 = 탐색 시간 , 회전 지연, 전송 시간
플래시 메모리 => SLC, MLC, TLC (한 셀에 몇 비트 저장하냐에 따른)
-> 플래시 메모리의 읽기와 쓰기는 페이지 단위, 삭제는 블록 단위

RAID

데이터의 안전성, 높은 성능을 위해 여러 보조기억장치를 마치 하나의 장치처럼 사용하는 기술

RAID 0 ) 단순히 병렬 분산하여 저장
RAID 1) 완전한 복사본 저장
RAID 4) 패리티 저장한 장치 따로 두는 방식
RAID 5) 패리티 분산 저장
RAID 6) 서로 다른 두 개의 패리티


전송률 : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표
장치 컨트롤러(하드웨어) == 입출력 제어기, 입출력 모듈

장치 컨트롤러

모든 입출력 장치는 각자의 장치 컨트롤러를 통해 컴퓨터 내부와 정보를 주고 받음

장치 컨트롤러 역할
1. CPU와 입출력 장치 간의 통신 중개
2. 오류 검출
3. 데이터 버퍼링

버퍼링이란?
전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼(임시저장공간)에 저장하여 전송률을 비슷하게 맞추는 방법

장치 컨트롤러 내부 = 데이터 레지스터 + 상태 레지스터 + 제어 레지스터 ...

데이터 레지스터 ) CPU 와 입출력장치 사이에 주고 받을 데이터가 담기는 레지스터 - 버퍼 역할
상태 레지스터 ) 입출력 작업 관련, 오류는 없는지 상태 정보 저장
제어 레지스터 ) 입출력 장치가 수행할 내용에 대한 제어 정보 저장

장치 드라이버

장치 컨트롤러가 컴퓨터 내부와 정보 주고받을 수 있게 하는 프로그램
(장치 컨트롤러가 입출력 장치 연결 위한 하드웨어적 통로라면, 장치 드라이버는 소프트웨어적 통로)


입출력 방법

  • 프로그램 입출력 ; 프로그램 속 명령어로

  • 메모리 맵 입출력 ; 메모리 접근 + 입출력장치 접근 위한 주소공간 => 하나의 주소공간으로 간주

  • 고립형 입출력 ; 메모리 접근 / 입출력 장치 접근 위한 주소공간 => 주소공간 분리

  • 인터럽트 기반 입출력 ; 우선순위 따라 인터럽트

  • DMA 입출력 ; CPU 거치지 않고 메모리와 입출력 장치 간의 데이터 주고받음 (입출력 버스)

(입출력 버스 : 입출력 장치 - 컴퓨터 내부 연결 통로)


과제
185p 03.
주로 캐시 메모리로 활용 - SRAM
주로 주기억장치로 활용 - DRAM
대용량화하기 유리 - DRAM
집적도가 상대적으로 낮음 - SRAM (집적도가 높다 = 더 작고 빽빽하게 만들 수 있다)

205p 01.
1. 레지스터
2. 캐시메모리
3. 메모리
4. 보조기억장치

0개의 댓글

관련 채용 정보