Computer Science/Computer Architecture

[컴퓨터 구조] 컴퓨터 시스템 개요 1

kyxxn 2023. 9. 21. 00:53
728x90

컴퓨터 시스템 개요 1

  1. 컴퓨터 기본구조

하드웨어

컴퓨터 하드웨어의 주요 요소들

: 컴퓨터에서 각종 정보의 전송 통로를 제공해 주고, 정보에 대한 처리가 실제 일어나게 해주는 물리적인 실체

소프트웨어

: 정보들이 이동하는 방향과 정보 처리의 종류를 지정해주고, 그러한 동작들이 일어나는 시간을 지정해주는 명령(Command)들의 집합

CPU

: 컴퓨터의 특성을 결정하며, 컴퓨터의 핵심 기능인 프로그램 실행과 데이터 처리를 담당함

특징

  1. ‘프로세서’ 또는 ‘마이크로 프로세서’라고도 부름
  2. 산술 논리 연산 장치(ALU) : 산술, 논리, 보수, 시프트 연산을 수행하는 공간
  3. 제어장치(CU) : 명령어를 해독하여 명령어 실행에 필요한 제어 신호를 발생 시키고, 컴퓨터의 모든 장치를 제어
  4. 레지스터(register) : CPU 내부의 임시기억장치로, 중간값 or 결과값 or 상태 등을 기억함. (제일 빠름)

주 기억장치(MM)

  1. 장점 : 반도체 칩으로 구성되어 고속 접근이 가능
  2. 단점 : 비싸고 면적을 많이 차지하여 저장 용량에 한계가 있음
  3. 프로그램 실행 중에 일시적으로만 사용되는 휘발성(volatility) 메모리 → 전원 꺼지면 지워짐
  4. CPU ←→ 시스템 버스 ←→ 주기억장치 : CPU 내부의 레지스터들과 시스템 버스가 직접 연결됨 그러나 주기억장치와는 속도 차이가 있어 MAR, MBR 등의 버퍼를 통해 왔다갔다 함
  5. CPU <-> CPU 내부 버스 <-> MAR, MBR <-> 시스템 버스 <-> 주기억장치

보조기억장치 : 2차 기억 장치

  1. 하드 디스크(자기 디스크), SSD(플래시 메모리), 플래시 메모리(USB || MP3, 전기적으로 데이터 지우고 기록 가능)와 같은 비휘발성 메모리 + 저장밀도 높음 + 저가
  2. 그러나 속도가 느림.
  3. CPU에 당장 필요하지 않은 많은 양의 데이터나 프로그램을 저장한다.
  4. CPU가 직접 접근(읽기/쓰기)하지 못하고, 별도의 제어기를 통해 접근한다.
    CPU ←→ 시스템 버스 ←→ 보조기억장치의 제어기 ←→ 보조기억장치

입출력 장치

  1. 사용자 - 컴퓨터 간의 상호작용(interaction)을 위한 장치
  2. CPU가 직접 데이터를 교환하지 못 하고 별도의 제어기를 통해 접근
  3. 입력 장치 : 데이터를 전자적인 2진 형태로 변환하여 컴퓨터 내부로 전달 ex)키보드, 마우스, 마이크 등
  4. 출력 장치 : 중앙 처리 장치가 처리한 전자적인 형태의 데이터를 사람이 이해할 수 있는 데이터로 변환하여 출력 ex)모니터, 스피커, 프린터 등

소프트웨어

: 컴퓨터를 구성하고 있는 하드웨어를 잘 동작시킬 수 있도록 제어하고, 지시하는 모든 종류의 프로그램

프로그램 : 어떤 일을 처리하기 위해 순차적으로 구성된 명령들의 집합

소프트웨어는 ‘시스템 소프트웨어’와 ‘응용 소프트웨어’로 구분

  • 시스템 소프트웨어

: 하드웨어를 관리하고 응용 소프트웨어를 실행하는데 필요한 프로그램

ex) 운영체제(OS), 컴파일러, 인터프리터, 유틸리티 프로그램 등

  • 유틸리티 프로그램

: 각종 주변 장치(보조기억장치, 입출력 장치)들을 구동하는데 필요한 드라이버 프로그램, 백신 프로그램, 압축 프로그램, 디스크 조각 모음 등

  • 응용 소프트웨어

: 앱, 애플리케이션 등으로 불림

컴퓨터 시스템을 일반 사용자들이 특정한 용도에 활용하기 위해 만든 프로그램

 

 

2. 시스템의 구성

시스템 버스

: CPU와 기억장치 및 입출력 장치 사이에 정보를 교환하는 통로

  1. 주소 버스
  2. 데이터 버스
  3. 제어 버스

위 3가지가 기본 구성이고, 이들은 수십 개의 신호 선들로 구성됨.

주소 버스

  1. CPU가 기억장치나 입출력 장치를 지정하는 주소 정보를 전송하는 신호 선들의 집합
  2. 단방향 전송 : 주소는 CPU로부터 기억장치 혹은 IO장치로 보내지는 정보, CPU는 저장할 필요가 없음.
  3. 주소 선의 수는 CPU와 접속될 수 있는 최대 기억장치 용량을 결정

ex) 주소 버스의 비트 수 = 12비트라면, 최대 2^12 = 4K개의 기억 장소들의 주소를 지정가능  

 

데이터 버스

  1. CPU가 기억장치나 입출력 장치 사이에 데이터 전송을 위한 신호선들의 집합
  2. 양방향 전송 : 읽기와 쓰기 동작 모두 지원
  3. CPU에 ALU나 레지스터 등 데이터가 임시저장될 수도 있으니까
  4. 데이터 선의 수는 CPU가 한 번에 전송할 수 있는 데이터 비트의 수를 결정
  5. ex) 데이터 버스 폭 = 32비트라면, CPU와 기억장치 간의 데이터 전송은 한 번에 32bit씩 가능

제어 버스

: CPU가 시스템 내의 기억 장치 및 IO 등 각종 요소의 동작을 제어하는 데 필요한 신호선들의 집합

  1. 기억장치 읽기 쓰기 신호 → 인출, 실행 때
  2. IO 읽기 쓰기
  3. 인터럽트 신호
  4. 버스 제어 신호 → 교통 제어 역할

++ 설계는 양방향이지만, 주로 단방향 사용

CPU와 기억 장치의 접속

액세스(access) : CPU가 데이터를 기억 장치의 특정 장소에 저장(쓰기)하거나, 이미 저장된 내용을 읽는 동작(읽기)

기억장치 액세스에 필요한 버스 및 제어신호

주소 및 데이터 버스 + 제어 신호(기억장치 읽기 or 쓰기 신호)

기억장치 저장(쓰기) 동작

: CPU가 주소와 데이터를 보낸 순간부터 저장이 완료될 때까지의 시간

  1. 데이터를 저장할 기억장소 주소
  2. 저장할 데이터의 주소 버스와 데이터 버스
  3. 위 과정 동시에 쓰기 신호 활성화

기억장치 읽기(가져오기) 동작

: 주소를 발생한 시간부터 기억장치의 데이터가 CPU에 도착할 때 까지의 시간

  1. CPU가 기억장치 주소를 주소 버스를 통해 주소를 MM에 보내는 동시에 읽기 신호 활성화
  2. 일정 지연시간 경과 후(기억장치가 주소로 들어가서 데이터를 가져오는 시간 후), 데이터가 데이터 버스에 실리고 전달

CPU와 I/O 장치의 접속

필요한 버스 및 신호 : 주소 및 데이터 버스 + 제어 신호(I/O 읽기 or 쓰기 신호)

접속 경로 : CPU ↔ 시스템 버스 ↔ I/O 장치 제어기(속도차이 보완) ↔ I/O 장치

I/O 장치 제어기

: CPU로부터 I/O 명령을 받아, 장치를 제어하고 데이터를 이동함으로써 명령 수행

상태 + 데이터 레지스터는 주소를 가짐.

  • 상태 레지스터준비상태(IN_RDY) 비트, 데이터 전송 확인(ACK, 잘 받으면 ACK가 1이 됨) 비트 등
  • : I/O 장치의 현재 상태를 나타내는 비트들을 저장한 레지스터
  • 데이터 레지스터 (데이터 버퍼)
  • : CPU와 I/O 장치 간에 이동되는 데이터를 일시적으로 저장하는 레지스터

키보드의 데이터 입력 과정

키보드 제어기 동작

: 어떤 키(key)를 누르면, 그 키에 대응되는 ASCII 코드가 키보드 제어기의 데이터 레지스터에 저장

동시에 상태 레지스터의 IN_RDY 비트가 1로 세트

CPU의 동작

  1. 키보드 제어기로부터 상태 레지스터의 내용을 읽어서 IN_RDY가 1인지 검사
  2. IN_RDY가 1이면, 데이터 레지스터의 내용을 읽음

2-1. IN_RDY가 0이면, 반복하며 대기

프린터의 데이터 출력 과정

CPU 동작

  1. CPU는 프린터 제어기의 상태 레지스터를 읽어 Out_RDY 비트를 검사함
  2. Out_RDY 비트가 1이면, 프린터할 데이터를 프린터 제어기의 데이터 레지스터(혹은 데이터 버퍼)에 쓰고, 프린트 시작 제어 신호를 전송

2-1. Out_RDY 비트가 0이면, 반복하며 대기

프린터 제어기 동작

  1. 프린터 시작 제어 신호가 활성화 되면, 데이터 레지스터(혹은 데이터 버퍼)의 내용을 프린터로 보냄
  2. 프린터의 하드웨어를 제어하면서 인쇄 동작을 수행

CPU와 보조기억장치의 접속

: 보조기억장치(HDD, SSD, 플래시메모리 등)도 각 장치를 위한 제어기를 통해 I/O와 유사하게 접속

CPU는 보조기억장치의 제어기를 통해 접속

I/O와 보조기억장치 접속의 다른 점

키보드 : 바이트 단위 전송

보조기억장치 : 블록(512byte) || 페이지(2K, 4K 바이트) 단위로 전송

  • 제어기 내에 한 블록 이상을 임시 저장할 수 있는 데이터 기억 장치(버퍼) 필요

컴퓨터 기능

프로그램 코드를 정해진 순서대로 수행

⇒ 데이터를 읽고(Read), 처리(Processing)하고, 저장(STORE) 함

프로그램 실행 : CPU가 주기억장치(MM)으로부터 프로그램 코드를 읽어서 실행

데이터 저장 : 프로그램 실행 결과를 주기억장치에 저장

데이터 이동 : HDD || SSD에 저장된 명령어와 데이터 블록을 주기억장치로 이동

데이터 입출력 : 사용자가 키보드 || 마우스를 통해 입력하는 명령어나 데이터를 읽거나 CPU가 처리한 결과를 모니터 || 프린터로 출력

제어 : 프로그램에 정해진 순서에 따라 실행되도록 각종 제어신호 발생 (if, for, 함수 등 필요에 따라 실행순서 변경)