CS/컴퓨터구조

01. 컴퓨터 시스템 구조

nolzaheo 2021. 9. 16. 02:19
728x90

Intro

컴퓨터는 크게 CPU, 메인메모리(주기억장치), 보조기억장치, I/O 장치로 구성된다. (+ System Bus)

전반적인 컴퓨터 시스템 구조

각 구성의 기능을 간략히 얘기하면 다음과 같다.

1) CPU(중앙처리장치)

역할 : 산술연산, 논리연산, 제어 담당

ALU, Register Set, Control Unit으로 구성됨

 

-ALU: 산술논리연산 처리

-Register Set: 메인메모리에서 가져온 값을 임시로 저장. 즉, CPU 내의 기억장치

-Control Unit: 메인메모리의 데이터를 읽어오기 위한 제어신호를 보냄

 

2) 메인메모리(RAM)

역할 : 데이터 저장

 

3) 보조기억장치

역할 : 데이터저장(but, 메인메모리와 메모리 계층이 다름)

ex. SSD, HDD

 

4) I/O 장치

Input : 키보드, 마우스

Output : 모니터, 프린터

 

5) System bus

역할 : 각각의 장치들(CPU, 메인메모리, 보조기억장치, I/O장치)을 연결

CPU 구성

<ALU>

  앞서 언급했듯 CPU는 ALU, Regitster Set, Control Unit으로 구성된다. 메인메모리에서 가져온 값이 Register Set에 임시로 저장되면 ALU가 이 값을 불러와 산술 또는 논리 연산을 수행한 후 결과값을 다시 Register Set에 돌려놓는다.

 

<Register Set>

  그렇다면 Register Set은 메인메모리에서 값을 어떤 과정을 통해 가져올까? Register Set은 일반목적, 특수목적 두 가지로 나뉜다.

 

일반목적: Shift Register, Status Register

특수목적: ACC, SP, PC, MAR, MBR, IR

(ACC SP PC MAR → Address Bus → 메인메모리 Data Bus MBR IR)

 

  Shift Register는 데이터를 저장하거나 옆으로 이동할 때 사용한다. Status Register는 산술연산 결과의 상태를 알려준다.

ACC는 Accumulator의 약자로, 연산 결과 데이터를 일시적으로 저장하는 레지스터이다. SP는 Status Pointer의 약자로 현재 CPU의 상태 값을 가지고있는 레지스터이다. PC는 Program Counter의 약자로, 현재 수행되어야할 프로그램이 저장되어있는 메모리의 주소가 저장되어있다. MAR은 Memory Address Register의 약자로 PC에 저장된 명령어 주소가 사용되기 전에 일시적으로 저장되는 주소 레지스터이다. 이 MAR에 저장된 주소를 따라 Address Bus를 타고 메모리에 접근하여 해당 주소의 데이터를 가져와 Data Bus를 타고 다시 CPU에게 전달해주는데, 이 때 이 값이 CBR에 일시적으로 저장된다. CBR은 Memory Buffer Register이다. MAR과 달리 주소가 아닌 데이터를 저장하므로 버퍼 레지스터이다. 마지막으로 IR은 Intruction Register의 약자로 현재 실행 중인 명령어 또는 가장 최근에 인출된 명령어가 저장되는 레지스터이다. 이 명령어는 명령어 처리를 담당하는 Control Unit으로 전달된다.

 

<Control Unit>

  Control Unit은 ID, CAR, CM, CBR로 구성된다. ID(Instruction Decoder)는 IR로부터 읽어온 명령어를 컴퓨터가 이해할 수 있도록 해독한다. CAR(Control Address Register)은 외부로 보내져야할 제어신호들이 저장되어있는 주소를 지정하여 그 주소값을 저장하고있다. CM(Control Memory)은 외부로 보내져야할 제어신호들이 주소가 정해진 채로 저장되는 곳이다. CBR(Control Buffer Register)은 CM으로부터 읽혀진 명령어 데이터를 저장하는 곳이다. CBR에 저장된 명령어 데이터는 Control Bus를 통해 다른 장치로 전달된다.

 

Address Bus : CPU → 메모리 방향으로 주소를 전달(단방향)

Data Bus : 연산 전=메모리 → CPU / 연산 후=CPU → 메모리 방향으로 데이터 전달(양방향)

Control Bus : 명령어=CPU → 메모리 / 인터럽트=메모리 → CPU 방향으로 명령어 전달(양방향)

메인메모리, 보조기억장치, I/O 장치 구성

  메인 메모리와 System bus 사이에는 Cache가, SSD,I/O와 System bus 사이에는 각각 SSD Controller, I/O Controller가 존재한다. Cache는 메인메모리에 저장된 값 중에서 빠른 시일 내에 CPU가 읽어갈 것으로 예상하는 값을 저장한다. 찾는 값이 Cache 메모리에 있으면 바로 그 값을 리턴하고 없는 경우 메인메모리에 접근하여 데이터를 찾는다. 메인메모리는 System Bus와 직접적으로 연결되어있으나 SSD 와 I/O 장치는 사이에 Contoller를 두고있다. 그 이유는 표준화 문제 때문인데, Mainmemory는 표준이 정해져있지만 SSD, I/O는 형식이 정해져있지 않아 그 사이에서 통제하는 별도의 Contoller가 필요하다. 

728x90

'CS > 컴퓨터구조' 카테고리의 다른 글

02. 컴퓨터 구성품의 연결  (0) 2021.09.16