Skip to content

Latest commit

 

History

History
97 lines (84 loc) · 6.29 KB

4. 컴퓨터 시스템의 동작 원리.md

File metadata and controls

97 lines (84 loc) · 6.29 KB

컴퓨터 시스템의 동작 원리

이 문서는 2022년 11월 04일에 @sumin-dev에 의해서 작성되었습니다.

1. 컴퓨터 시스템 구성요소
    1.1. 프로세서(CPU)
    1.2. 버스
    1.3. 레지스터
    1.4. 메모리
    1.5. 주변 장치
2. 컴퓨터 시스템의 동작
    2.1. 컴퓨터 시스템의 동작 과정
    2.2. 명령어의 구성
    2.3. 명령어 실행

1. 컴퓨터 시스템 구성요소

  • 컴퓨터 시스템은 데이터를 처리하는 물리적인 기계장치인 하드웨어 + 특별한 작업을 지시하려고 명령어로 작성한 프로그램인 소프트웨어로 구성
  • 운영체제는 컴퓨터 하드웨어와 사용자 사이에 위치해 하드웨어와 소프트웨어 자원을 관리하는 프로그램
▶ 컴퓨터 하드웨어 장치가 세부적으로 어떻게 구성되고 동작하는지 알아보자!

image

1.1. 프로세서(CPU, 중앙처리장치)

  • 컴퓨터의 두뇌
  • 초당 수십억 회 연산을 하고 데이터를 여기저기 옮기며 다른 구성 요소의 작업을 제어
  • 레지스터, 산술 논리 연산장치, 제어장치 등으로 구성
  • 컴퓨터는 주기억장치를 제외한 레지스터, 산술 논리 연산장치, 제어장치를 칩 하나로 구성한 마이크로프로세서를 이용 image

1.2. 버스

  • 프로세서를 비롯한 각 장치 또는 서브 시스템을 서로 연결하여 정보(데이터)를 주고 받을 수 있게 해주는 통로
  • 컴퓨터 내부의 다양한 신호(ex. 데이터 입출력 신호, 프로세서 상태 신호, 인터럽트 요구와 허가 신호 등)는 버스를 통해 전달

1.3. 레지스터

  • 프로세서에 위치한 고속 메모리
  • 프로세서가 바로 사용할 수 있는 데이터를 담는다

1.4. 메모리

  • 메인 메모리
    • 고유 주소를 가진 워드나 바이트로 구성된 대규모 배열로 주소를 읽거나 기록함으로써 상호 작용
    • 프로세서나 입출력 장치가 데이터를 저장하고 받아오는 작업장 image
  • 가상 메모리
    • 메인 메모리의 유효 크기를 늘리는 기법
    • 디스크 같은 보조기억장치에 프로그램이나 데이터를 저장했다가 필요할 때 다시 메인 메로리로 이동시키는 기술
  • 캐시
    • 처리 속도가 빠른 프로세서와 상대적으로 느린 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼(둘의 속도차 보완)
    • 메모리 가격과 성능을 절충해 느린 메모리 때문에 발생하는 성능 저하를 줄여줌
    • 캐시는 보통 크기가 8~64바이트 정도인 블록 여러 개로 구성
    • 프로세서는 메인 메모리 접근이 필요하면 먼저 캐시를 조사하고 캐시 태그와 메모리 주소의 태그 영역을 비교해 원하는 블럭을 찾게 되는데, 이 때 원하는 주소의 블록이 캐시에 없다면 메인 메모리에서 해당 블록을 읽어 캐시에 넣고 프로세서에 전송 image

1.5. 주변 장치

  • 컴퓨터의 기능을 향상하기 위한 추가 장비
  • 입출력 장치, 보조기억장치, 스캐너 등

2. 컴퓨터 시스템의 동작

2.1. 컴퓨터 시스템의 동작 과정

  • 컴퓨터 시스템은 정보를 디지털 형태로 입력받아 메모리에 저장된 명령어 목록(프로그램)에 따라 처리하고, 결과를 출력하는 일종의 고속 전자계산기
  • 다음과 같은 순서로 동작하고 모든 동작은 제어장치가 제어
1. 입력장치를 통해 정보를 입력받아 메모리에 저장
2. 메모리에 저장한 정보를 프로그램의 제어에 따라 인출해 산술 장치나 논리 장치에서 처리
3. 처리한 정보를 출력장치에 표시하거나 디스크(보조기억장치)에 저장
  • 여기서 정보는 명령어와 데이터로 구분
    • 명령어는 실행할 산술 논리 연산 동작을 명시하는 문장
    • 프로그램은 어떤 작업 하나를 수행하기 위한 명령어의 집합
    • 프로그램은 실행 시 메모리에 저장되고, 프로세서는 프로그램을 구성하는 명령어를 메모리에서 한 번에 하나씩 꺼내 원하는 동작을 수행

2.2. 명령어의 구성

  • 명령어(Instruction) : 연산 코드 + 오퍼랜드
    • 연산 코드(Operation Code) : 프로세서가 실행할 연산을 나타냄
    • 오퍼랜드(Operand) : 명령어가 처리할 데이터나 데이터가 저장된 주소(레지스터, 메모리)에 관한 정보를 기술
    • 명령어는 0과 1의 이진 코드화 되어 있음
    • 연산코드가 n비트라면 최대 2^n가지의 연산이 가능
    Y = x + b
    # Y : 목적 오퍼랜드
    # x, b: 원시 오퍼랜드
    # + : 연산 종류(오퍼레이터)
    image

2.3. 명령어 실행

image