기본미션

 

공부한 내용

 

드뎌 끝~ 이제 리액트 강의를 봐야것네용

기본미션

 

공부한 내용

필기하는 맛이 좋네용 ~.~

기본미션

공부한 내용

 

손으로 공부하는게 더 좋아서 손필기로 정리를 해보았어용 -ㅅ-

기본미션

 

공부한 내용

ch 6. 메모리와 캐시 메모리

 <RAM의 특징과 종류>

1. RAM의 특징

  • RAM=휘발성 저장장치=전원을 끄면 저장된 내용이 사라짐->실행할 대상 저장
  • 하드디스크,SSD,USB=비휘발성 저장장치=전원을 꺼도 저장된 내용이 사라지지 않음->보관할 대상 저장

2. RAM의 용량과 성능

  • RAM용량이 커지면 많은 데이터를 가져오게 되므로, 많은 프로그램을 동시에 빠르게 실행가능
  • 하지만 필요이상으로 커졌을 때는 속도가 용량에 비례하여 증가하진 않음

3. RAM의 종류

  • DRAM(동적 램)
    • 저장된 데이터가 동적으로 사라져, 일정 주기로 데이터를 다시저장
    • 주기억장치 RAM으로 사용
    • 소비전력 낮고, 집적도 높고, 저렴
  • SRAM(정적 램)
    • 저장된 데이터가 변하지 않아, 주기적인 데이터 재활성화 필요X
    • 캐시메모리로 사용
    • 속도가 DRAM보다 빠름, 소비전력 높고, 집적도 낮고, 비쌈
  • SDRAM(클럭 신호와 동기화된, 발전된 DRAM)
    • 클럭 타이밍에 맞춰 CPU와 정보를 주고받을 수 있음
  • DDR SDRAM(대역폭이 2배인 SDRAM)
    • 가장 흔히 사용되는 RAM
    • 대역폭(데이터를 주고받는 길의 너비)가 SDRAM의 두배
    • 2DDR SDRAM(4)는 DDR SDRAM(2)보다 대역폭이 2배 넓음

 <메모리의 주소 공간>

1. 물리주소와 논리주소

  • CPU와 실행중인 프로그램은 메모리 몇 번지에 무엇이 저장되어 있는지 모름->메모리에 저장된 정보는 시시각각 변함
  • 물리주소
    • 메모리가 사용
    • 정보가 실제로 저장된 하드웨어상의 주소
  • 논리주소
    • CPU,실행중인 프로그램이 사용
    • 실행중인 프로그램 각각 자신에게 부여된 0번지부터 시작되는 주소
    • 프로그램마다 같은 논리주소가 있을 수 있음
  • 메모리 관리장치(MMU)
    • CPU와 메모리가 상호작용하기 위해 논리주소를 물리주소로 변환해주는 장치
    • 논리주소 + 베이스 레지스터 값 = 물리주소

2. 메모리 보호 기법

  • CPU는 논리주소 영역을 벗어나서는 안됨
  • 한계 레지스터 : 논리 주소의 최대 크기를 저장하여 논리주소 범위를 벗어나는 명령어 실행을 방지
  • 프로그램의 물리주소 범위는 베이스 레지스터 값 이상, 베이스 레지스터 값+한계 레지스터 값 미만
  • 만약 CPU가 한계 레지스터보다 높은 논리주소에 접근하려고 하면 인터럽트 발생 

<캐시 메모리>

1. 저장장치 계층구조

2. 캐시 메모리

  • CPU와 메모리 사이에 위치
  • CPU의 연산속도와 메모리 접근 속도 차이를 줄이기 위해 만든 장치
  • 메모리에서 CPU가 사용할 일부 데이터를 미리 캐시 메모리로 가져와 활용

3. 참조 지역성 원리

  • 캐시 히트 : 캐시메모리로 가져온 데이터의 예측이 맞아 CPU에서 사용할 경우
  • 캐시 미스 : 예측이 틀려 메모리에서 데이터를 직접 가져와야 할 경우
  • 캐시 메모리가 메모리로부터 데이터를 예측하여 가져오는 원리를 말함
    • 시간지역성 : CPU는 최근에 접근했던 메모리 공간에 다시 접근하려 함
    • 공간지역성 : CPU는 접근했던 메모리 공간 근처에 다시 접근하려 함

ch 7. 보조기억장치

<다양한 보조기억장치>

1. 하드디스크

  • 자기적인 방식으로 데이터를 저장하는 보조기억장치
  • 대용량 저장장치
  • 플래터 : 하드디스크에서 실질적으로 데이터가 저장되는 동그란 원판
    • 트랙 : 플래터 내부에 있는 동심원
    • 섹터 : 트랙의 조각 중 하나
    • 실린더 : 트랙끼리 연결한 원통 모양의 공간, 연결된 정보는 한 실린더에 저장됨
  • 스핀들 : 플래터를 회전시키는 구성요소
  • RPM : 스핀들이 플래터를 돌리는 속도, 분당 얼마나 돌리는지 표시
  • 헤드 : 플래터를 대상으로 데이터를 읽고 쓰는 구성요소, 바늘같이 생김
  • 디스크 암 : 헤드가 부착되어있는 부품
  • 하드 디스크가 저장된 데이터에 접근하는 시간
    • 탐색시간 : 접근하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간
    • 회전지연 : 헤드가 있는 곳으로 플래터를 회전시키는 시간
    • 전송시간 : 하드디스크와 컴퓨터 간에 데이터를 전송하는 시간

2. 플래시 메모리

  • 전기적으로 데이터를 읽고 쓸수 있는 반도체 기반의 저장 장치
  • 셀 : 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
  • SLC
    • 한 셀에 1비트를 저장하는 플래시 메모리
    • 한 셀로 2개의 정보 표현
    • 가장 빠른 비트의 입출력, 수명 가장 긺, 용량 대비 가격 비쌈
    • 기업에서 사용
  • MLC
    • 한 셀에 2비트를 저장하는 플래시 메모리
    • 한 셀에 4개의 정보 표현
    • SLC보다 대용화하기 유리하고 저렴
    • 시중에서 많이 사용
  • TLC
    • 한 셀에 3비트를 저장하는 플래시 메모리
    • 한 셀에 8개의 정보 표현
    • 가장 대용화하기 유리, 수명과 속도가 가장 떨어지지만 저렴
  • 셀 -> 페이지 -> 블록 -> 플레인 -> 다이
  • 읽기와 쓰기는 페이지 단위, 삭제는 블록 단위
  • 페이지 상태
    • Free : 아무 데이터도 저장하지 않은 상태
    • Valid : 유효한 데이터를 저장한 상태
    • Invalid : 쓰레기값을 저장한 상태
  • 가비지 컬랙션 : 쓰레기값 정리하는 기능, 유효한 페이지들만 복사하고 기존의 블록 삭제

<RAID 정의와 종류>

1. RAID 정의

  • 여러개의 물리적 보조기억장치를 하나의 논리적 보조기억장치처럼 사용
  • 1TB 하드디스크 4개로 RAID를 구성하면 4TB 하드디스크 1개의 성능과 안정성 능가

2. RAID 종류

  • RAID 0
    • 여러개의 보조기억장치에 데이터를 단순히 나누어 저장하는 구성방식 = 스트라이핑
    • 장점 : 저장된 데이터를 읽고 쓰는 속도가 빨라짐
    • 단점 : 하드 디스크중 하나에 문제가 생긴다면 모든 하드 디스크의 정보를 읽는데 문제생김
    • 총 4TB라 했을 때 1 1 1 1 이렇게 데이터를 줌
  • RAID 1
    • 원본과 복사본 두 군데에 데이터를 씀 = 미러링
    • 장점 : 복구 매우 간단
    • 단점 : 속도가 느려지고 사용가능한 용량이 적어짐
    • 1 1 데이터 1 1 복사본
  • RAID 4
    • 오류를 검출하고 복구하기 위한 정보인 패리티 비트를 두어 다른 장치들의 오류를 검출하고 오류가 있다면 복구 
    • 패리티를 저장하는 장치에 너무 바쁜 병목현상이 발생
    • 1 1 1 데이터 1 페리티 비트
  • RAID 5
    • 패리티 정보를 분산하여 저장
    • 1 데이터, 페리티 1 데이터, 페리티 1 데이터, 페리티 1 데이터, 페리티 
  • RAID 6
    • 1TB에 서로 다른 페리티 비트를 두는 것
    • 속도는 RAID 5보다 느려지지만 데이터를 더욱 안전하게 보관

ch 8. 입출력장치

<장치 컨트롤러와 장치 드라이버>

1. 장치 컨트롤러

  • 입출력 장치에는 종류가 너무 많고, CPU와 메모리의 데이터 전송률은 높지만 입출력 장치의 데이터 전송률은 낮음
  • 장치컨트롤러 = 입출력제어기 = 입출력 모듈
  • 입출력장치는 장치 컨트롤러라는 하드웨어를 통해 연결
  • 역할
    • CPU와 입출력장치간의 통신중계
    • 오류검출
    • 데이터버퍼링 : 전송률 차이가 나는 장치 사이에 주고받는 데이터를 버퍼라는 임시공간에 저장하여 전송률을 비슷하게 만드는 방법
  • 내부
    • 데이터 레지스터 : CPU와 입출력장치 사이에 주고받을 데이터가 담기는 레지스터 
    • 상태 레지스터 : 입출력장치가 입출력 작업을 할 준비가 됐는지, 작업이 완료됐는지 등의 상태정보 저장
    • 제어 레지스터 : 입출력장치가 수행할 내용에 대한 제어 정보와 명령

2. 장치 드라이버

  • 장치컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고받을 수 있게 하는 프로그램
  • 장치컨트롤러 -> 입출력장치 연결을 위한 하드웨어적인 통로, 장치 드라이버 -> 소프트웨어적인 통로

<다양한 입출력 방법>

1. 프로그램 입출력

  • 프로그램 속 명령어로 입출력장치를 제어
  • 반드시 CPU 거침
  • CPU가 장치 컨트롤러의 레지스터 값을 읽고 씀으로써 이루어짐
  • CPU가 여러 장치 컨트롤러 속 레지스터들을 아는 방법
    • 메모리 맵 입출력
      • 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소공간으로 간주
      • 1024개의 주소가 있다면, 512개는 메모리주소, 512개는 장치 컨트롤러 레지스터
      • CPU는 모두 똑같이 메모리 주소를 대하듯 하면 됨
    • 고립형 입출력
      • 메모리를 위한 주소 공간과 입출력 장치를 위한 주소 공간을 분리
      • 1024개의 주소가 있다면, 1024개는 메모리주소, 1024개는 장치 컨트롤러 레지스터(각각의 읽기 쓰기 선이 따로 있다면)
      • CPU는 메모리에 접근하는 명령어, 입출력장치에 접근하는 명령어 각각 다른 명령어를 사용

2. 인터럽트 기반 입출력

  • 인터럽트를 기반으로 하는 입출력
  • 반드시 CPU 거침
  • CPU는 우선순위가 높은 인터럽트 순으로 여러 인터럽트를 처리 -> PIC가 우선순위 판별 후 CPU에 알려줌 

3. DMA 입출력

  • 입출력장치와 메모리가 CPU를 거치지 않고 상호작용할 수 있는 입출력방식
  • DMA(Direct memory access) 컨트롤러 필요 = 직접 메모리에 접근할 수 있는 입출력 기능
  • DMA컨트롤러는 시스템버스로 메모리에 직접 접근 가능
  • 시스템버스는 공용자원이므로 동시 이용 불가 -> 입출력버스라는 별도의 버스에 연결하여 해결

기본미션

 

공부한 내용

기본미션

 

공부한 내용

ch 1. 컴퓨터 구조의 큰 그림

  • 컴퓨터 구조
    • 컴퓨터가 이해하는 정보
      • 데이터 : 컴퓨터가 이해하는 숫자,문자 등의 정적인 정보
      • 명령어 : 데이터를 움직이고 컴퓨터를 작동시키는 정보
    • 컴퓨터의 네 가지 핵심 부품->메인보드(마더보드)라는 판에 연결
      • 중앙처리장치(CPU) : 메모리에 저장된 명령어를 읽고, 해석하고, 실행
        • ALU : 계산기
        • 레지스터 : 임시저장장치
        • 제어장치 : 제어신호를 보내 명령어 해석
      • 주기억장치(메모리) : 현재 실행되는 프로그램의 명령어와 데이터를 저장, 저장된 값의 위치는 주소로 파악
      • 보조기억장치 : '보관할' 프로그램과 정보를 저장, 전원이 꺼져도 저장된 내용이 날아가지 않음
      • 입출력장치 : 마이크, 스피커 등 컴퓨터 외부에 연결되어 내부와 정보를 교환하는 장치
    • 시스템 버스 : 컴퓨터의 네 가지 핵심 부품을 연결하는 버스
      • 주소버스 : 주소를 주고받는 통로
      • 데이터버스 : 명령어와 데이터를 주고받는 통로
      • 제어버스 : 제어신호를 주고받는 통로

출처:https://post.naver.com/viewer/postView.naver?volumeNo=34538786&memberNo=25379965

ch 2. 데이터

  • 비트 : 0과 1을 나타내는 가장 작은 정보 단위
  • 이진법 : 0과 1로 모든 숫자를 표현
  • 2의 보수 : 이진수의 음수표현, 0과 1을 반전시킨 후 1을 더함
  • 십육진법 : A-10,B-11~F-15
  • 십육진수->이진수 또는 이진수->십육진수 : 4비트씩 끊어서
  • 문자집합 : 컴퓨터가 인식하고 표현할 수 있는 문자의 모음
  • 문자 인코딩 : 문자를 0과 1로
  • 문자 디코딩 : 0과 1을 문자로
  • 아스키코드 : 128개의 문자표현, 한글이나 다른 언어는 표현 한계
  • EUC-KR : 완성형 인코딩, 조합형 인코딩, 한글 단어에 2바이트 크기의 코드 부여
  • 유니코드 : 현대 문자를 표현할 때 가장 많이 사용되는 표준 문자집합, UTF-8, UTF-16등의 인코딩 방식

ch 3. 명령어

  • 고급언어 : 사람이 이해하는 언어
    • 컴파일 언어 : 컴파일러에 의해 소스코드 전체가 저급언어로 변환->목적코드로 변환됨->링킹 후 실행파일로
    • 인터프리터 언어 : 인터프리터에 의해 소스코드가 한줄씩 실행
    • 컴파일 언어가 인터프리터 언어보다 실행 속도 빠름
  • 저급언어 : 컴퓨터가 이해하는 언어, 0과 1로 이루어짐
    • 어셈블리어 : 기계어를 읽기 편한 형태로 만듦, 프로그램이 어떤 절차로 작동하는지 근본적인 단계에서부터 추적하고 관찰할 수 있음
    • 기계어 : 0과 1
  • 명령어의 구조
    • 연산코드 : 명령어가 수행할 연산
      • 데이터 전송
      • 산술/논리연산
      • 제어 흐름 변경
      • 입출력 제어
    • 오퍼랜드 : 연산에 사용될 데이터, 연산에 사용될 데이터의 위치
      • 대부분 위치나 주소가 많이 담겨, 주소필드라고 부름
      • 오퍼랜드는 0개 이상이 될 수 있음
    • 주소지정방식
      • 즉시 : 연산에 사용될 데이터, 데이터 크기는 작지만 속도 빠름
      • 직접 : 유효주소(메모리 주소), 즉시보다는 데이터의 크기가 커짐
      • 간접 : 유효주소의 주소, 범위 넓어짐, 메모리를 2번 접근하여 속도가 느림
      • 레지스터 : 유효주소(레지스터 이름), 직접보다는 빠름, 표현할 수 있는 레지스터 크기에 제한
      • 레지스터 간접 : 유효주소를 저장한 레지스터, 메모리에 접근하는 횟수 1번, 간접보다 속도 빠름

+ Recent posts