ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터의 이해
    학습 관련 기록 2022. 5. 8. 20:08

     

     

    * 이 글은 메가테라 웹 개발자 과정에서 학습한 내용을 정리한 글입니다. 글의 내용은 수시로 수정될 수 있습니다.

     

     

    프로그래밍을 하기 위해 컴퓨터를 잘 이해해야 하는 이유는 무엇인가? 간단히 생각해보면, 우리는 컴퓨터를 이용하여 프로그래밍을 하고 있고, 프로그래밍의 목적은 컴퓨터에서 작동하는 프로그램을 만드는 것이다. 그렇기에 컴퓨터의 작동 원리를 이해하고 있어야 프로그램이 돌아가게 될 컴퓨터에 최적화된 형태로 프로그래밍을 할 수 있을 것이다.

     

    컴퓨터의 하드웨어와 아키텍처에 대한 전반적인 내용을 포괄적으로 이해하기 위해서는 전공 강의 수준의 접근이 필요할 것이나, 여기서는 도입부 수준의 간단한 접근을 해보고자 한다. 우선 디지털 개념을 간단히 짚어보고 디지털 방식이 갖는 강점을 살펴보고자 한다. 그리고 컴퓨터를 구성하는 주요 장치들을 넓은 맥락 수준에서 짚어보고자 한다.

     

     

     

    • 디지털(Digital)이란?

     

    컴퓨터는 일반적으로 ‘디지털 기기’라고 불리운다. 그렇기에 디지털이란 무엇인지 생각해볼 필요가 있다. ‘디지털(Digital)’이란 무엇인가? Digital의 어원을 구성하고 있는 ‘digit’는 각각의 손가락, 그리고 손가락으로 수를 세는 것에서 파생된 ‘아라비아 숫자’라는 의미를 갖는다. 그렇다면 디지털 방식은 손가락으로 셀 수 있는 것처럼 구분되는 숫자의 개념을 이용하는 방식일 것이라고 생각해볼 수 있겠다. 구체적으로는 디지털 방식에서는 숫자 0과 1로 구분되는 신호 체계의 조합을 이용한다.

     

    명확하게 서로 다르게 구분되는 것을 통해 정보를 구성한다는 디지털 방식의 개념은, 우리의 인식 속에 일반적으로 박혀있는 ‘전기적인’ 것이 아닌 대상에서도 예시를 찾아볼 수 있다. 조선시대의 통신 수단으로 널리 이용되었던 ‘봉수’를 살펴보자. 조선시대에는 일정 구간마다 봉수를 설치하고 각 봉수마다 5개의 화로를 두어 국경에 적이 출현한 정도에 따라 불을 올리는 화로의 수를 조절해 다음 봉수에 신호를 전달했다고 한다. 이때 한반도 최북단에 위치한 함경도 경흥의 봉수에서 한양까지 신호가 전달되는 데 약 12시간이 소요되었다고 하는데, 부산에서 한양까지 역마를 이용하여 소식을 전하는 데 보통 사흘 이상이 걸렸다고 하는 기록과 비교했을 때 봉수가 가졌던 정보 전달 속도의 효율성을 짐작해볼 수 있을 것이다.

     

     

     

    • 디지털 방식의 강점

     

    봉수는 어떻게 정보를 (당시 기준으로) 효율적으로 전달하는 것이 가능했을까? 봉수가 전달하는 정보는 화로의 불이 켜진 것과 꺼진 것으로 구분된다. 정보를 전달받는 봉수에서는 전달되는 정보를 명확하게 구분하여 인지할 수 있다. 이제 봉수의 화로를 컴퓨터의 장치가 데이터를 전달하는 통로인 칩셋의 각각의 전기가닥으로, 불이 꺼진 것은 0으로, 켜진 것은 1로 대응해보자. 컴퓨터의 각 장치 간 전기신호의 전달은 사람이 멀리 있는 봉수의 화로에 불이 켜져 있는지, 꺼져 있는지 확인하는 것보다 비교할 수 없을 정도로 빠르게 이루어진다. 이처럼 디지털 방식은 신호 체계를 단순화하기 때문에 전달받는 정보를 손쉬우면서도 명확하게 구분할 수 있으며, 현대의 전기적 방식을 통한 디지털 방식은 정보의 손쉬운 전달도 가능하다.

     

    그리고 이러한 디지털 방식의 장점은 디지털 방식으로 생성하고 전달하는 정보를 확장하고 복제하는 것이 매우 용이하다는 점으로 연결된다. 만약 디지털 방식으로 ‘많은 양의' 정보를 한번에 처리할 수 있다면, 이는 디지털 방식으로 다룰 수 있는 정보의 양이 폭발적으로 늘어날 수 있음을 의미한다고 볼 수 있을 것이다. 그리고 이는 컴퓨터의 각각의 장치를 구성하는 칩셋의 개수가 시간이 지날수록 증가하고 있다는 것으로 현실화되고 있다.

     

     

     

    • 컴퓨터를 구성하는 주요 장치

     

    디지털 방식을 간단히 살펴봤으니 이제 컴퓨터를 구성하는 주요 장치들은 무엇이고 어떤 일을 하는지 ‘간략히’ 살펴보고자 한다. 추후 각각의 장치들에 대해 더욱 상세히 기술할 수 있는 기회가 있다면 좋을 것이다.

     

     

    직관적인 접근을 위해 다시 한번 예시를 들어본다. 우리는 어떤 주어진 과제를 수행하는 데 필요한 책들을 찾아 읽어보기 위해 도서관에 왔다. 우선 도서관 열람실에 가서 자리를 잡아 앉는다. 그리고 서가에 가서 과제를 하는 데 필요한 책을 가져와 열람실 자리에 책을 놓고, 가져온 책을 펼쳐 읽으면서 과제를 수행한다. 이번 과제는 서로 다른 수십 권의 책들의 내용을 살펴봐야 하는 꽤나 복잡한 과제이다. 하지만 내가 자리잡은 열람실 책상은 서가에서 모든 책들을 한번에 가져다놓기에는 다소 좁다. 그래서 일단 먼저 살펴봐야 하는 책들만 몇 개 가져와서 보고, 다 읽은 책들은 서가에 갖다놓은 다음에 다른 필요한 책들을 가져와 열람실 책상에 갖다놓고 읽는 방식으로 과제를 수행하기로 한다. 

     

    예시는 실제와 1대1로 완전하게 일치시키기에는 일부 맞지 않는 부분이 있을 수 있으니 이해를 돕는 수준에서만 보면 좋을 것이다.

     

     

    • CPU: CPU(Central Processing Unit)는 중앙 처리 장치로, 위의 예시에서 ‘책을 읽는 우리들 자신’에 해당한다. 우리가 책을 읽고 생각하여 과제를 수행하기 위한 결과물을 만들어내는 것처럼, CPU는 0과 1의 조합으로 전달되는 신호들을 주기억 장치로부터 전달받아 더하거나 빼는 등의 ‘계산’을 수행하고, 그 결과를 다시 주기억 장치에 전달한다. 컴퓨터의 모든 처리들, 즉 컴퓨터가 수행하는 모든 것들은 CPU의 계산을 통해 이루어지게 된다.

     

    • RAM: RAM(Random Access Memory)은 주기억 장치로, 위의 예시에서 ‘열람실 책상’에 해당한다. ‘책’은 프로그램에 비유될 수 있는데, 우리가 읽고자 하는 책을 책상 위에 올려놓고 볼 준비를 하는 것처럼 프로그램이 사용자에 의해 실행되면 RAM에 프로그램의 정보가 올라간다. RAM에 입력된 정보들은 사용자가 특정 프로그램을 종료하면 해당되는 정보가 RAM에서 지워지고, 컴퓨터의 전원을 차단하면 RAM에 있던 모든 정보가 지워지는데, 우리가 다 읽은 책을 서가에 다시 갖다놓는 것이나, 책들을 책상 위에 남겨둔 채로 도서관을 떠나면 도서관 관리자가 책들을 다시 서가에 갖다놓는 것에 비유해볼 수 있다.

     

    • 보조기억 장치: 보조기억 장치는 위의 예시에서 ‘서가’에 해당한다. 보조기억 장치의 종류는 HDD(Hard Disk Drive)와 SSD(Solid State Drive)의 두 종류가 있는데, 먼저 HDD에 대해 살펴보기로 한다. 도서관 자체가 없어지지 않는 이상 서가에는 항상 책이 꽂혀 있는 것처럼, HDD는 다른 장치들과는 달리 기계적인 방식으로 정보를 보관하기 때문에 물리적으로 손상되지 않는 한 전원이 차단되어도 정보를 보존할 수 있다.

      잠시 주기억 장치와 보조기억 장치를 비교해보자. 같은 저장장치인데 왜 주기억 장치와 보조기억 장치로 구분하는 걸까? 보조기억 장치의 정보를 바로 CPU에 전달하여 계산할 수는 없는 걸까 싶다. HDD는 침 같은 기계 부속을 작은 CD 형태의 원판에 접촉시켜 정보에 접근하고 그 정보를 전기 신호로 RAM에 전달한다. RAM과 CPU는 정보를 저장하고 주고받는 데 전기적인 방식을 이용한다. 기계적인 방식은 전기적인 방식에 비해서는 많이 느리다는 특징이 있다. 우리가 서가 이곳저곳을 왔다갔다하면서 책들을 찾아 정보를 확인하는 것과, 필요한 책들을 책상에 가져다놓고 가져온 책들의 정보를 한 자리에서 바로바로 확인하는 것의 차이를 들어 비교해보자. 책상은 서가에 비하면 공간은 많이 작지만, 가져온 책들을 한 자리에서 빠르게 펼쳐보고 비교할 수 있다. 반면 서가는 수많은 책들을 보관할 수 있지만, 우리가 서가에서 필요한 책의 위치를 찾고 그 위치까지 가는 데에는 다소 시간이 걸릴 것이다. 해당 예시로부터 생각해볼 수 있는 둘의 또다른 차이는, 서가에 수많은 책들을 보관할 수 있는 것과 같이 HDD에는 많은 양의 정보를 저장할 수 있는 반면에, 책상의 크기가 한정되어 있다는 것처럼 RAM에는 한정된 양의 정보만을 올려놓을 수 있다는 점이다. 이러한 점들로부터 주기억 장치와 보조기억 장치를 구분하는 이유를 정리한 내용은 다음과 같다.
    • 보조기억 장치는 주기억 장치보다 많은 양의 정보를 영구히 저장할 수 있다.
    • 그러나 보조기억 장치는 기계적이라 정보에 접근하는 속도가 느리기 때문에, CPU처럼 전기적 방식을 이용하는 주기억 장치에 필요한 정보를 옮겨 CPU가 원하는 정보에 빠르게 접근할 수 있도록 한다.

     

    • SSD: SSD(Solid State Drive)는 HDD보다 진보한 형태의 보조기억 장치로, 반도체에 정보를 저장한다. 반도체는 전기적이면서도 ‘비휘발성’인 특성을 갖기 때문에 SSD는 정보를 영구히 저장할 수 있으면서도 RAM과 정보를 주고받는 속도가 HDD보다 훨씬 빠르다는 장점을 갖는다. HDD와 SSD를 모두 이용해 본 사용자라면 SSD가 장착된 컴퓨터의 부팅 속도가 HDD였을 때보다 현저히 빨랐던 경험을 해본 적이 있을 것이다. 이는 컴퓨터를 부팅하면 보조기억 장치에 저장되어 있는 운영체제(OS) 프로그램이 RAM에 올라가게 되는데, SSD가 RAM과 통신하는 속도가 HDD보다 훨씬 빠르므로 부팅 속도도 빨라지는 것이다. 따라서 현재는 운영체제를 탑재한 보조기억 장치로 SSD가 많이 사용되는 추세이다. SSD는 모든 책의 내용이 온라인에 기록되어 있는 전자도서관 시스템에 비유해볼 수 있을 것이다. 전자도서관 시스템으로 책을 검색하고 내용을 찾는 것은 서가를 돌아다니며 책을 찾는 것보다 훨씬 빠를 것이다.

     

    • 메인보드: 메인보드(Motherboard)는 컴퓨터의 각 장치들이 장착되어 서로 연결될 수 있도록 하는 허브의 역할을 하는 장치이다. 장착된 각 장치들의 이상 여부를 확인하여 사용자에게 알려주고, 장치가 필요로 하는 전력을 파워 서플라이로부터 공급해주는 역할을 한다. 종종 컴퓨터를 부팅할 때, OS 화면이 아닌 어떤 다른 프로그램 같은 화면이 나타나 특정 장치가 연결되어 있지 않거나 문제가 있다는 등의 메세지를 보여주는 화면을 본 적이 있을 것이다.

      메인보드의 영문 명칭은 Motherboard로, 메인보드의 역할이 가족관계에서 전통적인 어머니의 역할과 비슷하다는 인식에 바탕하였을 것으로 추측해볼 수 있다.

     

    • 파워 서플라이: 파워 서플라이(Power Supply Unit)는 컴퓨터의 장치들에 전기를 공급하는 장치이다. 전기는 메인보드를 통해 각 장치에 공급되며, 각 장치의 사용량에 따라 필요한 전기의 양이 달라지므로 그에 맞게끔 공급하는 전기의 양을 조절하는 역할을 한다.

     

    • 그래픽카드: 그래픽카드(Graphic Card)는 ‘많은 양의 단순한 반복 계산’을 처리하는 데 특화된 처리 장치이다. ‘많은 양의 단순한 반복 계산’이란 무엇일까? 컴퓨터 화면에 3D 물체가 출력되는 경우를 생각해 보자. 우리가 일반적으로 접하는 화면과 같은 평면은 x축과 y축이라는 두 개의 축으로 이루어진 2D인데, 여기에 하나의 축이 더해진 것이 우리가 입체라고 알고 있는 3D이다. 3D를 계산하기 위해서는 2D 계산을 새로 추가된 축의 길이만큼 반복해서 해야 하므로 같은 방식의 계산이 대단히 많이 이루어져야 한다. 이렇게 많아진 계산량을 CPU만으로 처리하려 할 경우 CPU에 부하가 발생하여 CPU가 처리해야 하는 (제어 처리 같은) 다른 계산이 수행되지 못하는 문제가 발생할 수 있다. 따라서 이러한 많은 양의 단순한 반복 계산을 처리하는 장치가 그래픽카드이다.

      그래픽카드에서의 계산은 그래픽카드에 장착된 GPU(Graphics Processing Unit)에서 이루어진다. GPU는 그래픽카드의 CPU라고 볼 수 있으며, 하나의 CPU가 최대 수십 개의 코어로 구성된 것과 비교하여 GPU는 일반적으로 수천 개의 코어로 구성되어 병렬적으로 계산을 수행한다. 코어, 병렬 처리 등의 개념은 추후에 다루기로 한다.

      단순 반복 계산 속도가 같은 가격의 CPU가 수행하는 계산 속도와 비교했을 때 매우 빠르다는 GPU의 특성을 이용하여, GPU를 3D 계산뿐만 아니라 우리가 익히 들어 알고 있는 비트코인 채굴이나, 머신러닝과 같은 인공지능 분야의 계산 등 일반적으로 CPU가 수행할 법한 종류의 계산을 수행하는 데에 이용되기도 한다. 이런 방식으로 그래픽카드를 사용하는 개념을 GPGPU(General-Purpose computing on Graphics Processing Units)라고 한다.

     

    • 케이스: 케이스는 내부에 메인보드를 장착하여 외부 충격으로부터 장치들을 보호하고, 송풍 팬이나 수냉 기기와 같은 장비들을 이용하여 장치들의 발열을 잡아주는 역할을 한다.

     

     

     

    의문점

    - 메인보드를 정리하면서 '종종 컴퓨터를 부팅할 때, OS 화면이 아닌 어떤 다른 프로그램 같은 화면이 나타나 특정 장치가 연결되어 있지 않거나 문제가 있다는 등의 메세지를 보여주는 화면을 본 적이 있을 것이다.' 와 같은 문구를 적었었는데, 검색을 통해 해당 역할을 하는 프로그램의 명칭은 BIOS(Basic Input/Output System)이고, 메인보드 상의 EPROM이나 플래시 메모리에 저장되어 컴퓨터가 부팅되는 즉시 실행되는 것으로 확인하였음. 그렇다면 메인보드에 BIOS를 실행시키기 위한 CPU와 같은 처리 장치가 별도로 존재하여 BIOS를 실행시킬 수 있는 것인가? 메인보드 그 자체도 하나의 독립된 컴퓨터라고 볼 수 있는 것인가?

     

     

     

     

    댓글

Designed by Tistory.