Skip to main content

Command Palette

Search for a command to run...

[혼공컴운] 3주차_컴퓨터 구조 끝(Ch 06 ~ 08)

Updated
8 min read
[혼공컴운] 3주차_컴퓨터 구조 끝(Ch 06 ~ 08)

06-1) RAM의 특징과 종류

  • RAM

    • 휘발성 저장 장치

    • 실행할 대상 저장

  • 보조기억장치

    • 비휘발성 저장 장치

    • 보관할 대상 저장

  • CPU는 보조기억장치에 직접 접근하지 못하고 RAM으로 복사하여 저장한 뒤 실행.

  • RAM 용량이 적으면 보조기억장치에서 실행할 프로그램을 가져오는 일이 잦아 실행 시간이 길어지기 때문에 RAM용량이 충분히 크면 많은 데이터를 가져와 미리 RAM에 저장하여 프로그램들을 동시에 빠르게 실행하는데 유리하다.

    • 하지만 용량이 필요 이상으로 커졌을 때 속도가 그에 비례하여 증가하지는 않는다.

RAM의 종류

  • DRAM(Dynamic RAM) : 시간이 지나면 저장된 데이터가 점차 사라지는 RAM

    • 데이터의 소멸을 막기 위해 일정 주기로 데이터를 재활성화(다시 저장)해야 함.

    • 일반적 메모리로써 사용

    • 소비 전력 낮음.

    • 저렴함.

    • 집적도가 높아 → 대용량 설계 용이

  • SRAM(Static RAM) : 시간이 지나도 저장된 데이터가 사라지지 않는 RAM

    • DRAM보다 속도 빠름.

    • 집적도 낮음

    • 소비 전력 큼.

    • 비쌈.

    • 캐시 메모리에서 사용

  • SDRAM(Synchronous Dynamic Ram) : 클럭 신호와 동기화된, 발전된 형태의 RAM

    • 클럭 타이밍에 맞춰 CPU와 정보를 주고 받을 수 있다.

    • \= SDR SDRAM

  • DDR SDRAM(Double Data Rate SDRAM) : 대역폭을 넓혀 속도를 빠르게 만든 SDRAM

    • 대역폭 : 데이터를 주고받는 길의 너비

06-2) 메모리의 주소 공간

  1. 메모리에는 새롭게 실행되는프로그램이 시시때때로 적재되고

  2. 실행이 끝난 프로그램은 삭제되고

  3. 같은 프로그램을 실행해도 실행할 때마다 적재되는 주소가 달라질 수 있다.

⇒ 그래서 CPU와 실행 중인 프로그램은 무슨 주소를 사용하는거야?


  • 물리 주소 : 정보가 실제로 저장된 하드웨어상의 주소

    • 메모리가 사용
  • 논리 주소 : 실행 중인 프로그램 각각에서 부여된 0번지부터 시작되는 주소

    • CPU와 실행 중인 프로그램이 사용

⇒ CPU와 실행 중인 프로그램은 논리 주소를 사용한다. 그럼 메모리와 상호작용은 어떻게 이루어질까?


  • 메모리 관리 장치(MMU) : 논리 주소와 물리 주소 간의 변환

    • CPU와 주소 버스 사이에 위치

    • 논리 주소 + 베이스 레지스터 값 → 논리주소를 물리 주소로 변환

      • 베이스 레지스터 : 프로그램의 첫 물리 주소

      • 논리 주소 : 프로그램의 시작점으로부터 떨어진 거리

  • 메모리 보호 기법

    • 한계 레지스터 : 논리 주소의 최대 크기를 저장

      • CPU가 접근하려는 논리 주소는 한계 레지스터가 저장한 값보다 커서는 안 된다.
    • CPU는 메모리에 접근하기 전에

      • 논리 주소가 한계 레지스터보다 작은가? 항상 검사하고

      • 한계 레지스터보다 높은 논리 주소에 접근하려고 할 때 : 인터럽트(트랩) 발생 → 실행 중단

06-3) 캐시 메모리

  • 저장 장치 계층 구조 : CPU에 얼마나 가까운가 를 기준으로 계층적으로 나타낸 구조.

  • 캐시 메모리 : CPU의 연산 속도와 메모리 접근 속도의 차이를 조금이나마 줄이기 위해 탄생

    • CPU와 메모리 사이에 위치

    • 레지스터보다 용량이 크고 메모리보다 빠른 SRAM 기반의 저장 장치

  • 캐시 메모리는 컴퓨터 내부에 여러 개, CPU(코어)와 가까운 순서대로 계층을 구성.

    • L1 > L2 > L3 순으로 코어와 가깝다.

    • 용량 : L3 > L2 > L1

    • 속도, 가격 : L1 > L2 > L3

  • 멀티 코어 프로세서에서는 코어마다 L1 캐시와 L2 캐시가 고유한 캐시 메모리 할당, L3는 여러 코어가 공유하는 형태


  • 캐시 메모리는 CPU가 사용할 법한 대상을 예측하여 저장

    • 캐시 히트 : 자주 사용될 것으로 예측한 캐시 메모리 데이터가 CPU에서 활용될 경우

    • 캐시 미스 : 예측이 틀려 메모리에서 필요한 데이터를 직접 가져와야 하는 경우

    • 캐시 적중률 : 캐시 히트 횟수 / (캐시 히트 횟수 + 캐시 미스 횟수)

  • 참조 지역성 원리 : 캐시 메모리는 한 가지 원칙에 따라 메모리로부터 가져올 데이터를 결정

    • CPU가 메모리에 접근할 때의 주된 경향을 바탕으로 만들어진 원리

    • 시간 지역성 : CPU는 최근에 접근했던 메모리 공간에 다시 접근하려는 경향

    • 공간 지역성 : CPU는 접근한 메모리 공간 근처를 접근하려는 경향

      • CPU가 실행하려는 프로그램은 보통 관련 데이터들끼리 모여 있음.

07-1) 다양한 보조기억장치

  • 하드 디스크 : 자기적인 방식으로 데이터를 저장하는 보조기억 장치 = 자기 디스크

    • 플래터 : 실질적으로 데이터가 저장되는 곳, N극과 S극 저장(0과 1의 역할)

      • 트랙 : 플래터를 여러 동심원으로 나누었을 때 그중 하나의 원

      • 섹터 : 피자처럼 여러 조각 그중 한 조각, 하드 디스크의 가장 작은 전송 단위(512 ~ 4,096바이트)

    • 스핀들 : 플래터를 회전시키는 구성 요소

      • RPM : 스핀들이 플래터를 돌리는 분당 회전수
    • 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성 요소

    • 디스크 암 : 원하는 위치로 헤드를 이동

    • 실린더 : 여러 겹의 플래터 상에서 같은 트랙이 위치한 곳을 모아 연결한 논리적 단위

      • 연속된 정보는 보통 한 실린더에 기록
  • 하드 디스크가 저장된 데이터에 접근하는 시간

    • 탐색 시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간

    • 회전 지연 : 헤드가 있는 곳으로 플래터를 회전시키는 시간

    • 전송 시간 : 하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간


  • 플래시 메모리 : 전기적으로 데이터를 읽고 쓸 수 있는 반도체 기반의 저장 장치

    • 범용성 넓은 저장 장치

    • 셀 : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위, (셀이 모여 MB,GB TB)

      • SLC : 한 셀에 1비트, 한 셀로 두 개의 정보

      • MLC : 한 셀에 2비트, 한 셀로 네 개의 정보

      • TLC : 한 셀에 3비트, 한 셀로 여덟 개의 정보

구분SLCMLCTLC
셀당 bit1 bit2 bit3 bit
수명길다보통짧다
읽기 / 쓰기 속도빠르다보통느리다
용량 대비 가격높다보통낮다
  • 페이지 : 셀들이 모여 만들어진 단위, 읽기와 쓰기 단위

  • 블록 : 페이지가 모여 만들어진 단위, 삭제 단위

  • 플레인 : 블록이 모여 만들어진 단위

  • 다이 : 플레인이 모여 만들어진 단위

  • 다이 > 플레인 > 블록 > 페이지 > 셀


  • Free 상태 : 새로운 데이터를 저장할 수 있는 상태

  • Valid 상태 : 이미 유효한 데이터를 저장하고 있는 상태

    • 플래시 메모리는 덮어쓰기 안됨.
  • Invalid 상태 : 유효하지 않은(쓰레기 값) 데이터를 저장하고 있는 상태

⇒ 플래시 메모리는 이런 쓰레기 값을 정리하기 위해 가비지 컬렉션 기능 제공

  • 유효한 페이지들만 새로운 블록으로 복사 → 기존 블록 삭제

07-2) RAID의 정의와 종류

  • RAID

    • 하드 디스크와 SSD를 사용하는 기술

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

    • RAID 레벨 : RAID 구성 방법

  • RAID 0

    • 여러 개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성 방식

    • 번갈아 가며 데이터 저장

    • 스트라입(stripe) : 줄무늬처럼 분산되어 저장된 데이터

    • 스트라이핑(striping) 분산하여 저장하는 것.

    • 저장된 데이터를 읽고 쓰는 속도가 빨라짐.

    • 저장된 정보가 안전하지 않음 : 디스크 중 하나에 문제 생기면 해당 디스크의 모든 정보 문제

  • RAID 1

    • 미러링(mirroring) : 그럼 복사본을 만들자.

    • 데이터 스트라이핑이 사용되었지만 용량 반은 복사본, 사용 가능한 용량이 적어짐.

    • 데이터를 쓸 때 원본, 복사본 두 군에 써서 RAID 0 보다 느림

    • 복사본이 있기 때문에 복구는 매우 간단.

  • RAID 4

    • 복사본 대신 패리티 비트를 저장한 장치를 두자.

    • 패리티 비트(parity bit) : 오류를 검출하고 복구하기 위한 정보

      • 원래는 오류 검출만 가능한데 RAID에서는 오류 수정도 가능함.
    • RAID 1보다 적은 하드 디스크로도 데이터 안전하게 보관

    • 패리티 디스크의 병목 현상이 발생하는 문제

  • RAID 5

    • 그럼 패리티 정보를 분산하자
  • RAID 6

    • RAID 5 와 같은 구성이지만 서로 다른 두 개의 패리티를 두는 방식이 다른점.

      • 오류를 검출하고 복구할 수 있는 수단이 두 개
    • 쓰기 속도는 RAID 5보다 느림.

    • 하지만 저장 속도를 희생하더라도 데이터를 안전하게 보관하고 싶을 때 사용하는 방식

08-1) 장치 컨트롤러와 장치 드라이버

  1. 입출력 장치는 종류가 너무 많아 정보를 주고 받는 방식을 규격화 하기 어려움.

  2. CPU와 메모리의 데이터는 전송률 ↑, 입출력장치의 데이터 전송률 ↓

    • 전송률 : 데이터를 얼마나 빨리 교환할 수 있는지를 나타내는 지표

⇒ 그럼 다양한 외부 장치가 컴퓨터 내부와 어떻게 소통해?


  • 장치 컨트롤러 = 입출력 제어기 = 입출력 모듈

    • 입출력 장치는 장치 컨트롤러라는 하드웨어를 통해 컴퓨터에 연결

    • CPU와 입출력장치 간의 통신 중개

    • 오류 검출

    • 데이터 버퍼링

      • 버퍼링 : 전송률이 높은 장치와 낮은 장치 사이에 주고받는 데이터를 버퍼라는 임시 저장 공간에 저장하여 전송률을 비슷하게 맞추는 방법
    • 데이터 레지스터 : CPU와 입출력장치 사이에 주고받을 데이터 저장 (버퍼 역할)

    • 상태 레지스터 : 입출력 작업 할 준비, 입출력 작업이 완료, 오류는 없는지의 상태 정보 저장

    • 제어 레지스터 : 입출력장치가 수행할 내용에 대한 제어 정보와 명령 저장

  • 장치 드라이버 : 입출력 장치를 연결하기 위한 소프트웨어적인 통로

    • 장치 컨트롤러 동작 감지 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고 받을 수 있게 하는 프로그램

08-2) 다양한 입출력 방법

  • 프로그램 입출력 : 프로그램 속 명령어로 입출력장치를 제어하는 방법

    • 메모리 맵 입출력: 메모리에 접근하기 위한 주소 공간입출력장치에 접근하기 위한 주소 공간하나의 주소 공간으로 간주하는 방법

      • 메모리 접근 명령어 == 입출력장치 접근 명령어
    • 고립형 입출력 : 메모리를 위한 주소 공간과 입출력장치를 위한 주소 공간을 분리

      • 메모리 주소 공간이 축소되지 않음

      • 메모리에 접근하는 명령어와는 다른 입출력 명령어를 사용한다.

  • 인터럽트 기반 입출력

    • 장치 컨트롤러에 의해 발생.

    • 순서대로 인터럽트 처리

      • CPU가 플래그 레지스터속 인터럽트 비트를 비활성화한 채 인터럽트를 처리하는 경우
    • 우선순위를 반영하여 다중 인터럽트 처리

      • 프로그래머블 인터럽트 컨트롤러 (PIC) 하드웨어 사용

        • 하드웨어 인터럽트 요청들의 우선순위 판별 → CPU에게 지금 처리해야 할 일 알려줌.
    • NMI는 인터럽트 비트가 활성화되어 있는 경우, 혹은 비활성해도 우선 순위가 가장 높아서 가장 먼저 처리 그래서 PIC가 NMI까지 우선순위 판별하지 않음. 불필요. 우선순위 가장 높으니까.

  • DMA 입출력

    • 입출력장치와 메모리가 CPU를 거치지 않고도 상호작용할 수 있는 입출력 방식

    • 시스템 버스에 연결된 DMA 컨트롤러 하드웨어가 필요

    • CPU는 오로지 입출력의 시작과 끝에만 관여

    • 근데 시스템 버스는 공용 자원이라 동시 사용이 불가능하다.

      • 메모리에서 DMA로 한 번, DMA에서 장치 컨트롤러로 두 번

      • 사이클 스틸링: CPU 입장에서는 흠…버스에 왜 자꾸 접근하지? 이러한 DMA의 버스 이용

    • 그래서 입출력 버스라는 별도의 버스에 연결하여 해결.

      • 입출력장치(장치 컨트롤러)는 시스템 버스가 아닌 입출력 버스와 연결

      • PCI버스

      • PCI Express(PCIe) 버스

숙제!

  • p 185의 3번

    • SRAM

    • DRAM

    • DRAM

    • SRAM

  • p 205의 1번

    • 레지스터

    • 캐시 메모리

    • 메모리

    • 보조기억장치

More from this blog

[혼공후기] 재밌으면서도 알찼던 6주! 14기 활동 회고

매번 혼공 학습단을 신청해 봐야겠다고 했지만 기간 놓쳐버리기…또는 너무 바쁜 나머지 완주 못할 것 같아서 포기하다가 때마침 공부가 필요한 시기에 시간이 나서 신청하게 되었다. 공부할 새 책도 배송이 오고 완주할 생각에 기대감 상승. (+중간에 간식 먹을 생각) 참고할 수 있는 강의 영상이 있기 때문에 영상강의 보면서 책 필기 및 정리 이해한 내용을 바탕으로 블로그 정리 이런 방식으로 공부를 했다. 사실 하루에 조금씩 공부했으면 적당한 ...

Aug 23, 20252 min read

[혼공컴운] 6주차_책 한 권을 끝내다니(Ch 14~ 15)

14-1) 연속 메모리 할당 연속 메모리 할당 : 프로세스에 연속적인 메모리 공간을 할당하는 방식 스와핑 : 메모리상의 빈 공간에 또 다른 프로세스를 적재하여 실행하는 방식 스왑 영역 : 프로세스들이 쫓겨나는 보조기억장치의 일부 영역 스왑 아웃 : 현재 실행되지 않는 프로세스가 메모리에서 스왑 영역으로 옮겨지는 것 스왑 인 : 스왑 영역에 있던 프로세스가 다시 메모리로 옮겨오는 것 → 스와핑을 이용하면 프로세스들이 요구하는 메모...

Aug 16, 20259 min read
[혼공컴운] 6주차_책 한 권을 끝내다니(Ch 14~ 15)

[혼공컴운] 5주차_끝이 보인다(Ch 12 ~ 13)

12-1) 동기화란 동시다발적으로 실행되는 많은 프로세스는 서로 데이터를 주고받으며 협력하며 실행된다. ⇒ 협력하여 실행되는 프로세스들은 실행 순서와 자원의 일관성을 보장해야 하기에 반드시 동기화가 필수 프로세스 동기화 : 프로세스들 사이의 수행 시기를 맞추는 것 실행 순서 제어 : 프로세스를 올바른 순서대로 실행하기 상호 배제 : 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 하기 공유가 불가능한 자원의 동시 사용을 피하...

Aug 9, 20255 min read
[혼공컴운] 5주차_끝이 보인다(Ch 12 ~ 13)

[혼공컴운] 4주차_운영체제 시작(Ch 09 ~ 11)

09-1) 운영체제를 알아야 하는 이유 운영체제 : 실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 특별한 프로그램 (시스템) 자원 : 프로그램 실행에 마땅히 필요한 요소 컴퓨터가 부팅될 때 메모리 내 커널 영역에 적재 사용자 영역 : 사용자가 이용하는 응용 프로그램이 적재되는 영역 ⇒ 메모리 공간에 주소가 겹치지 않게 프로그램 적재해 준 건? 운영체제 실행할 프로그램 메모리에 적재 실행되지 않...

Jul 26, 20257 min read
[혼공컴운] 4주차_운영체제 시작(Ch 09 ~ 11)
W

WOW's dev archive

42 posts

언젠가 나에게 힘이 될 차곡차곡 쌓은 기록🥰