[컴퓨터 구조론] 마무리

#cs
Written by Sungbin2026년 2월 18일 · 2 min read

시리즈의 글 (11개)

  1. [컴퓨터 구조론] 컴퓨터 구조 개요
  2. [컴퓨터 구조론] 컴퓨터 구성 요소
  3. [컴퓨터 구조론] 불 대수
  4. [컴퓨터 구조론] 비트
  5. [컴퓨터 구조론] 컴퓨터의 기초가 되는 하드웨어 만들기
  6. [컴퓨터 구조론] CPU 만들기: 산술논리연산장치(ALU)
  7. [컴퓨터 구조론] 메모리 만들기
  8. [컴퓨터 구조론] 제어장치가 없는 컴퓨터
  9. [컴퓨터 구조론] CPU 만들기 - 제어장치
  10. [컴퓨터 구조론] 기계어와 어셈블리어
  11. [컴퓨터 구조론] 마무리

banner

본 포스팅은 인프런의 만들면서 쉽게 배우는 컴퓨터 구조를 참조하여 작성한 글입니다.

상용 컴퓨터

이번 포스팅에는 우리가 만든 컴퓨터와 상용 컴퓨터의 차이점에 대해 알아보겠다. 차이점을 알아보기 전에 먼저 명령어 구조에 따른 종류를 살펴보겠다.

명령어 구조는 CISC와 RISC가 있는데 CISC는 복잡한 명령어 세트를 사용한다. 대표적으로 데스크톱용 인텔 CPU가 CISC를 사용한다. CISC의 특징은 하나의 명령어로 여러 작업을 수행할 수 있다는 점이다. 이로 인해 RISC보다 명령어가 복잡하고 한 명령어의 실행에 여러 명령어의 사이클이 필요할 수 있다. CISC의 간단한 명령어는 1 사이클로 끝나기도 하지만 곱하기 같은 연산은 여러 명령어 사이클을 통해 하드웨어로 수행된다. 이런 이유로 하드웨어 구조가 복잡해져 가격이 비싸고 전력소모가 많으며 명령어의 길이가 가변적이다.

반면 RISC는 최소화된 명령어 세트를 사용한다. 주로 스마트폰, 테블릿, 임베디드 시스템에서 사용한다. RISC는 기본적인 연산만 수행하는 단순한 명령어로 구성되어 있다. 명령어의 길이가 고정되어 있고 한 명령어는 한 사이클에 실행된다. 명령어가 단순하므로 하드웨어도 단순해져 가격과 전력소모도 적다. 또한 명령어의 길이가 고정되어 있어서 최적화가 쉽다.

이렇게 CISC와 RISC의 특징을 알아보았다. 우리가 만든 CPU는 어떤 종류일까? 명령어가 모두 한 사이클에 도니까 RISC이다. 우리가 만든 CPU는 기본 연산만 수행하고 명령어의 길이가 고정된 RISC 방식을 따른다. 이런 이유로 곱하기와 나누기를 할 때 한 줄이 아닌 여러줄의 명령어를 작성했다.

이제 명령어 구조의 차이를 살펴보았으니 우리가 만든 컴퓨터와 상용 컴퓨터의 다른 차이점들을 알아보자. 가장 먼저 알아볼 차이점은 파이프라인이다. 우리가 만든 명령어의 사이클은 step0부터 step4까지 총 5단계였다. 명령어 1개는 1명령어 사이클로 총 5클럭이 소요되었다. 만약 1클럭당 1초가 소요된다면 LOADA 10과 ADD 11 이 2가지 명령을 풀어서 하면 총 10단계가 거쳐질 것이고 10초가 걸릴 것이다.

오늘날 사용하는 상용 컴퓨터에서 사용하는 파이프라인 기술은 명령어 처리 과정을 여러 단계로 나눠서 동시에 여러 명령어를 처리하는 기술이다. 우리의 명령어를 5단계로 세분화해보겠다. 먼저 명령어 인출의 첫번째 단계는 CO, MI으로 다음 실행할 주소를 MAR에 저장하는 단계이다. 명령어 인출의 두번째 단계는 MAR에 해당하는 RAM 주소에서 명령어를 가져와 IR에 저장하는 것이다. 명령어 인출 단계는 모든 명령어가 공통으로 실행하는 단계이다. 다음으로 명령어 해석 및 실행 단계를 세분화해보겠다. 명령어마다 명령어 해석 및 실행 단계가 다르고 동작도 다르다. 모든 명령어를 분석해서 명령어 해석 및 실행 단계를 잘 나누고 회로를 변경했다고 가정하겠다. 그러면 ADD 11 명령어는 LOAD 10 명령어가 끝난 클럭 5번 주기에서 실행되는 것이 아니라 LOAD 10의 명령어 인출 단계의 두번째 단계가 실행되는 시점에 ADD 11의 명령어 인출 단계가 시작된다. 이렇게 이후에 실행되는 명령어들도 이전 명령어의 인출 마지막 단계가 시작되는 시점에 명령어 인출 단계가 시작되기 때문에 병렬작업으로 처리 속도가 빨라진다. 파이프라인이 없었을 때는 10초정도 걸릴 것이 파이프라인이 있을 때는 6초정도면 되는 셈이다. 상용 컴퓨터는 이런 기술을 사용해 더 효율적인 컴퓨터가 되었다.

상용 컴퓨터와의 두번째 차이점은 캐시이다. 실제 컴퓨터에서는 CPU와 RAM 사이에 물리적인 거리가 존재한다. 이로 인해 CPU가 CPU 내부에 있는 레지스터에 접근하는 속도와 RAM에 접근하는 속도에 차이가 존재한다. CPU의 레지스터는 플립플롭으로 구성되어 있어 매우 빠르지만 RAM은 커패시터로 구성된 상대적으로 느린 DRAM이다. 또한 용량이 큰 RAM의 주소를 계산하는데도 추가 시간이 필요하다. 이러한 이유들로 인해 CPU 내부 레지스터에 접근하는 시간과 RAM에 접근하는 시간에는 상당한 차이가 발생한다. 이러한 속도 차이로 인한 병목현상을 줄이기 위해 CPU 내부나 외부에 캐시라는 메모리를 도입한다. 캐시는 L1, L2, L3로 나눠지는데 숫자가 커질수록 용량은 커지지만 속도는 느려진다. 캐시를 효율적으로 사용하려면 앞으로 필요할 데이터를 미리 캐시에 저장해두는 것이 중요하다.

RAM은 SRAM과 DRAM으로 나눠진다. SRAM은 속도가 빠르고 용량이 작으며 비용이 비싸서 캐시 메모리로 이용된다. SRAM이 빠른 이유는 트랜지스터와 Latch의 조합으로 만들어졌기 때문이다. 반면 DRAM은 SRAM보다 속도는 느리지만 용량이 크고 가격이 저렴하다. DRAM은 커패시터라는 것을 사용하기 때문에 SRAM보다 속도가 느리고 전력 소비가 많지만 저렴하고 용량이 문제로 메인 메모리로 사용된다. 우리가 만든 RAM은 SRAM이지만 이를 메인 메모리로 활용하였다.

다음으로 알아 볼 상용 컴퓨터와의 차이점은 인터럽트이다. 인터럽트는 CPU가 프로그램을 실행하는 도중에 특별한 예외가 발생했을 때 작업을 중지하고 다른 작업을 처리하는 메커니즘이다. 하드웨어 고장, 외부 신호, 프로그램 실행 오류, 또는 프로그램의 의도적인 요청에 의해 현재 작업이 중단되고 미리 정의된 작업이 수행된다. 이는 상용 컴퓨터 핵심 기능 중 하나이다.