728x90
반응형

Chapter08. 입출력장치

장치컨트롤러

  • 입출력 장치는 앞서 말한 CPU, 메모리보다 다루기가 더 어려움
  • 첫째, 입출력장비에는 종류가 너무 많다
  • 둘째, CPU와 메모리의 데이터 전송률은 높지만 입출력장치의 데이터 전송률은 낮다 → 컴퓨터에 직접 연결되지 않고 ‘장치 컨트롤러’라는 하드웨어를 통해 연결 됨
  • 장치 컨트롤러의 역활
    • CPU와 입출력장치 간의 통신중개
    • 오류 검출
    • 데이터 버퍼링 (CPU의 높은 전송률과 입출력장치의 낮은 전송률 차이를 완화)
  • 장치드라이버: 장치 컨트롤러의 동작을 감지하고 제어함으로써 장치 컨트롤러가 컴퓨터 내부와 정보를 주고 받을 수 있게 하는 프로그램
  • 프로그램 입출력: 프로그램 속 명령어로 입출력 작업을 하는 방식
  • 메모리 맵 입출력: 메모리에 접근하기 위한 주소 공간과 입출력장치에 접근하기 위한 주소 공간을 하나의 주소 공간으로 간주하는 입출력 방식
  • 고립형 입출력: 메모리에 접근하기 위한 주소 공간과 입출력 장치에 접근하기 위한 주소 공간을 별도로 분리하는 입출력 방식
  • 입출력 버스는 입출력 장치와 컴퓨터 내부를 연결 짓는 통로
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter07. 보조기억장치  (0) 2024.10.24
Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
728x90
반응형

Chapter07. 보조기억장치

  • 하드디스크: 자기적인 방식으로 데이터를 저장하는 보조기억장치
  • 플래시메모리: 전기적으로 데이터를 읽고 쓸 수 있는 저장 장치
  • RAID: 하드디스크와 SSD를 사용하는 기술로 데이터의 안정성 또는 높은 성능을 위해 여러 개의 보조기억장치를 마치 하나의 논리적 보조기억장치처럼 사용하는 기술

RAID 0:

  • 방식: 데이터 스트라이핑 (Striping)
  • 장점: 빠른 속도
  • 단점: 데이터 보호 없음

RAID 1:

  • 방식: 데이터 미러링 (Mirroring)
  • 장점: 높은 데이터 보호
  • 단점: 스토리지 용량 비효율

RAID 4:

  • 방식: 전용 패리티 디스크 (Dedicated Parity Disk)
  • 장점: 읽기 속도 빠름, 일부 보호
  • 단점: 패리티 디스크가 병목

RAID 5:

  • 방식: 분산 패리티 (Distributed Parity)
  • 장점: 균형 잡힌 속도와 보호
  • 단점: 쓰기 성능 저하

RAID 6:

  • 방식: 이중 패리티 (Double Parity)
  • 장점: 높은 데이터 보호
  • 단점: 쓰기 속도 저하
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter08. 입출력장치  (0) 2024.10.24
Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
728x90
반응형

Chapter06. 메모리와 캐시 메모리

RAM의 특징

  • RAM에는 실행할 프로그램의 명령어와 데이터가 저장됩니다. 그러나 전원을 끄면 RAM의 저장된 명령어와 데이터가 모두 날아갑니다.
  • 이렇게 전원을 끄면 모두 날아가는 저장 장치를 **‘휘발성 저장 장치’**라고 합니다.
  • 반대로 ‘비휘발성 저장 장치’로 하드디스크, SSD, CD-ROM, USB메모리
  • CPU가 프로그램을 요청할때 RAM에 없다면 보조기억 장치에서 가져와야 함
  • 그러나 RAM용량이 커서 미리 저장하고 있다면 실행 속도가 빠름

RAM의 종류

  • DRAM
    • Dynamic RAM은 시간이 지나면 점차 사라지는 RAM
    • 데이터 소멸을 막기 위해 일정주기로 데이터를 재활성화(다시 저장)해야 함
    • 단점이 크지만 소비전력 낮음, 저렴, 집적도 높아서 대용량 설치하기 좋아서 주로 사용
    • 용도: 주기억 장치
  • SRAM
    • Static RAM은 저장된 데이터가 변하지 않는 RAM
    • 일반적으로 DRAM보다 속도가 빠름
    • 용도: 캐시 메모리
  • SDRAM
    • 클럭 신호와 동기화(Synchronous)된 형태의 DRAM
  • DDR SDRAM
    • 최근 가장 흔히 사용되는 RAM
    • 대역폭을 넓혀 속도를 빠르게 만든 SDRAM
    • 대역폭이란 데이터를 주고 받는 길의 너비
    • SDRAM에 비해 대역폭이 두 배 넓음 (자동차 도로 1개와 2개의 차이)
    • DDR2 SDRAM은 4개의 차이(2배의 넓이의 도로가 2개와 1개 도로의 차이)

메모리의 주소 공간

  • 물리 주소: 메모리 하드웨어가 사용하는 주소
  • 논리 주소: CPU와 실행 중인 프로그램이 사용하는 주소
  • 메모리 관리 장치: CPU와 주소 버스 사이에 위치함. 논리 주소와 물리 주소 간의 변환을 수행.
  • 베이스 레지스터: 프로그램의 첫 물리 주소를 저장
  • 한계 레지스터: 실행 중인 프로그램의 논리 주소의 최대 크기를 저장

캐시 메모리

  • 저장 장치 계층 구조: CPU에 얼마나 가까운가(= 속도를 결정함)
  • 캐시 메모리는 CPU와 메모리 사이에 위치하고, 레지스터보다 용량이 크고, 메모리보다 빠른 SRAM 기반의 저장 장치
  • CPU 입장에서 메모리는 거리가 먼 대형 마트, 캐시 메모리는 가까운 편의점
  • 자주 사용할만한 데이터를 저장하고 맞췄다면 캐시히트, 틀리면 캐시미스, 종합하여 캐시 적중률
  • 캐시 메모리는 참조 지역성의 원리에 따라 데이터를 예측하여 캐시 적중률을 높임
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter08. 입출력장치  (0) 2024.10.24
Chapter07. 보조기억장치  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
728x90
반응형

Chapter05. CPU 성능 향상 기법

  • 클럭
    • 클럭 속도가 높은 CPU는 빠르게 작동합니다
    • 클럭 신호가 빠르게 반복되면 CPU를 비롯한 컴퓨터 부품들은 그만큼 빨라짐
    • 클럭 속도는 헤르츠(Hz) 단위로 측정
  • 코어와 멀티코어
    • 코어란 CPU 내에서 명령어를 실행하는 부품
    • 원칙적으로 CPU만 ‘명령어를 실행하는 부품’이었지만 최근에는 ‘코어’도 가능
  • 스레드
    • 하드웨어적 스레드: 하나의 코어로 여러 명령어를 동시에 처리하는 CPU
    • 소프트적 스레드: 하나의 프로그램에서 독립적으로 실행되는 단위
    • 멀티스레드 프로세서란 하나의 코어로 여러 개의 명령어를 동시에 실행할 수 있는 CPU를 뜻
  • 명령어 병렬처리 기법
    • 명령어를 동시에 처리하여 CPU를 한시도 쉬지 않고 작동시키는 기법
    • 명령어 파이프 라이닝: 동시에 여러 개의 명령어를 겹쳐 실행하는 기법
    • 슈퍼스칼라: 여러 개의 명령어 파이프라인을 두는 기법
    • 비순차적 명령어 처리: 파이프라인의 중단을 방지하기 위해 명령어를 순차적으로 처리하지 않는 기법
  • 명령어 집합
    • ISA는 CPU의 언어이자 하드웨어가 소프트웨어를 어떻게 이해할지에 대한 약속
    • CISC는 복잡하고 다양한 종류의 가변 길이 명령어 집합을 활용
    • RISC는 단순하고 적은 종류의 고정 길이 명령어 집합을 할용
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter07. 보조기억장치  (0) 2024.10.24
Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
Chapter02. 데이터  (1) 2024.10.23
728x90
반응형

Chapter04. CPU의 작동 원리

  • ALU는 계산하는 부품으로 레지스터를 통해 피연산자를 받아들이고,
  • 제어장치로부터 수행할 연산을 알려주는 제어신호를 받아들입니다.
  • 오버플로우: 연산 결과가 연산 결과를 담을 레지스터보다 큰 상황
  • 플래그: 연산 결과에 대한 추가적인 상태 정보
  • 제어장치
    • 첫째, 제어장치는 클럭 신호를 받아들입니다 (클럭: 시간단위)
    • 둘째, 제어장치는 ‘해석해야 할 명령어’를 받아들입니다
    • 셋째, 제어장치는 플래그 레지스터 속 플래그 값을 받아들입니다
    • 넷째, 제어장치는 시스템 버스, 그중에서 제어 버스로 전달된 제어 신호를 받아들입니다
    → 제어장치는 클럭신호, 명령어, 플래그, 제어신호를 받아들입니다
    • 제어장치는 CPU 내부와 외부로 제어 신호를 보냅니다
  • 레지스터
    • 프로그램 카운터: 메모리에서 가져올 명령어의 주소(=명령어 포인트)
    • 명령어 레지스터: 해석할 명령어, 이를 받아 들이고 해석한 뒤 제어신호 보냄
    • 메모리 주소 레지스터: 메모리 주소를 저장하는 레지스터
    • 메모리 버퍼 레지스터: 메모리와 주고받을 값을 저장하는 레지스터
    • 범용 레지스터: 일반적인 상황에서 자유롭게 사용
    • 플래그 레지스터: 연산 결과 또는 CPU 상태에 대한 부가적인 정보를 저장
  • 특정 레지스터를 이용한 주소 지정 방식
    • 스택 주소 지정 방식: 스택과 스택 포인터(스택의 최상단의 위치)를 이용한 주소 지정 방식
    • 변위 주소 지정 방식: 오퍼랜드 필드의 값과 특정 레지스터의 값을 더하여 유효 주소를 얻어내는 주소 지정 방식 (상대 주소 지정 방식, 베이스 레지스터 주소 지정 방식)
  • 명령어 사이클: 하나의 명령어를 처리하는 정형화 된 흐름
    • 인출 사이클, 실행 사이클, 간접 사이클
  • 인터럽트: 흐름에 따라 처리하다 간혹 흐름이 끊어지는 상황
    • 동기 인터럽트: CPU에 의해 발생(예외적인 상황, 프로그래밍 오류 등)
    • 비동기 인터럽트: 입출력장치에서 발생(하드웨어 인터럽트)
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
Chapter02. 데이터  (1) 2024.10.23
Chapter01. 컴퓨터 구조 시작하기  (1) 2024.10.23
728x90
반응형

Chapter03. 명령어

고급언어는 결국 저급언어로 변환되어 실행되는데 방법은 컴파일 방식과 인터프리터 방식이 존재함.

  • 컴파일 언어
    • 컴파일러에 의해 소드 코드 전체가 저급 언어로 변환되는 고급 언어 (예: C)
    • 코드 전체가 저급 언어로 변환되는 과정을 컴파일
    • 컴파일을 도와주는 도구를 컴파일러
    • 컴파일러를 통해 저급 언어로 변환 된 코드를 목적 코드
  • 인터프리터 언어
    • 인터프리터에 의해 1줄씩 실행되는 고급 언어 (예: 파이썬)
    • 한 줄씩 저급 언어로 변환하여 실행을 도와주는 도구를 인터프리터
    • 일반적으로 컴파일 언어가 더 빠름

목적파일과 실행파일은 같지 않음. 목적파일에 다른 파일을 연결짓는 링킹이라는 작업이 필요함.

  • 명령어: 연산코드 + 오퍼랜드
  • 연산코드: 명령어가수행할 연산 (연산자)
    • 데이터 전송
    • 산술/논리 연산
    • 제어 흐름 변경
    • 입출력 제어
  • 오퍼랜드: 연산에 사용할 데이터 (피연산자=주소필드)
  • 즉시 주소 지정 방식: 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방법
    • 표현할 수 있는 데이터의 크기는 작아지지만
    • 연산에 사용할 데이터를 메모리나 레지스터로부터 찾는 과정이 없기에 속도가 빠름
  • 직접 주소 지정 방식: 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식
    • 표현할 수 있는 데이터의 크기는 커졌지만, 연산 코드의 비트 수 만큼 줄어듬
  • 간접 주소 지정 방식: 유효 주소의 주소
  • 레지스터 주소 지정 방식: 유효 주소 (레지스터 이름)
  • 레지스터 간접 주소 지정 방식: 유효 주소를 저장한 레지스터
  • 스택: 후입선출, LIFO(Last In First Out) 자료구조
  • 큐: 선입선출, FIFO (First In First Out) 자료구조
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter02. 데이터  (1) 2024.10.23
Chapter01. 컴퓨터 구조 시작하기  (1) 2024.10.23
728x90
반응형

Chapter02. 데이터

컴퓨터는 0과 1밖에 이해하지 못하며 0과 1을 나타내는 가장 작은 단위를 비트(Bit)라고 함

바이트(Byte)는 8개의 비트를 묶은 단위

데이터는 이진수, 10진수, 16진수로 표현하는데,

이진수는 0b를 앞에 붙여서 이진수임을 표현할 수 있음 (0b1000)

16진수는 0x를 앞에 붙여 16진수임을 표현할 수 있음(0x15)

우리가 이해하기 편한 10진수 대신 16진수는 쓰는 이유는 “16진수와 2진수 변환하기 쉽기 때문”

16진수 : 1A2B

2진수 : 0001 1010 0010 1011

이진수를 십진수로 변환하는 것은 복잡하기에 이진수를 16진수로 표현함.

0과 1을 문자로 표현하는 방법

  • 문자 집합: 컴퓨터가 인식하고 표현할 수 있는 문자의모음
    • 예를 들어{a,b,c,d,e}인 경우 이해가능, 그외 불가능
  • 문자 인코딩: 문자를 0과 1로 변환하는 과정
  • 문자 디코딩: 0과 1로 이루어진 문자 코드를 사람이 이해하는 문자로 변환하는 과정
  • 아스키 코드: 초창기 문자 집합 중 하나로, 영어 알파벳과 아라비아 숫자, 일부 특수문자 포함
    • 총 128개의 문자를 표현(0~127)
728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
Chapter01. 컴퓨터 구조 시작하기  (1) 2024.10.23
728x90
반응형

Chapter01. 컴퓨터 구조 시작하기

명령어는 컴퓨터를 작동시키는 정보이고, 데이터는 명령어를 위해 존재하는 일종의 재료.

컴퓨터의 핵심부품은 중앙처리장치(CPU), 주기억장치(메모리), 보조기억장치, 입출력장치

  • 메모리: 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품
    • 프로그램이 실행되기 위해서는 반드시 메모리에 저장되어야 한다
    • 메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장한다
    • 메모리에 저장된 값의 위치로 주소를 알 수 있다
  • CPU: 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고 실행하는 부품
    • 산술논리연산장치(ALU) - 계산기
    • 레지스터 - CPU 내부의 작은 임시 저장 장치
    • 제어장치 - 제어신호라는 전기신호를 보내고 명령어를 해석하는 장치
    • CPU는 메모리에 저장된 값을 읽어들이고, 해석하고, 실행하는 장치다
    • CPU 내부에는 ALU, 레지스터, 제어장치가 있다
    • ALU는 계산기, 레지스터는 임시 저장 장치, 제어장치는 제어신호 발생 및 명령어 해석
  • 보조기억장치: 메모리는 가격이 비싸고, 용량이 적고, 전원이 꺼지면 정보를 잃음 → 메모리보다 저렴하고, 용량이 크고, 전원이 꺼져도 정보를 보관하는 장치
  • 입출력장치: 모니터, 키보드, 마우스, 스피커, 마이크처럼 컴퓨터 외부에 연결되어 컴퓨터 내부와 정보를 교환하는 장치
  • 메인보드: 메인보드에 다양한 부품을 연결하여 서로 정보를 주고 받을 수 있고, 이는 메인보드 내부에 버스라는 통로를 통해 가능함.
  • 시스템 버스
    • 주소 버스
    • 데이터 버스
    • 제어 버스

출처: [서적] 혼자공부하는 컴퓨터구조와 운영체제

728x90
반응형

'코딩공부 > 컴퓨터구조' 카테고리의 다른 글

Chapter06. 메모리와 캐시 메모리  (0) 2024.10.24
Chapter05. CPU 성능 향상 기법  (0) 2024.10.24
Chapter04. CPU의 작동 원리  (0) 2024.10.24
Chapter03. 명령어  (2) 2024.10.24
Chapter02. 데이터  (1) 2024.10.23

+ Recent posts