본문 바로가기
느리게 변하는 지식

CPU 작동 원리

by oncerun 2022. 4. 8.
반응형

CPU는 트랜지스터라고 하는 반도체로 만들어졌다. 따라서 트랜지스터가 어떻게 작동되는지 알아야 한다.

반도체는 주로 실리콘(si)으로 만들어진다. 그외 저마늄(Ge), 비소화갈륨(GaAs) 등이 사용됩니다.

실리콘은 최 외각전자가 4개로 다른 실리콘 원자들과 전자를 공유하며 결합하고 있습니다. 

원자는 최 외각 전자가 8개 일 때 가장 안전한 구조를 이루는데 이렇게 단단하게 결합되어 있으면 전자가 이동할 수 없기 때문에 전류가 흐르지 않게 됩니다. 

 

이처럼 순수한 실리콘은 전류가 통하기 어려운데 실리콘보다 전자가 하나 많거나 하나 적은 원소를 첨가해 전류를 통하게 만들어 줍니다.

 

전자가 하나 부족한 원소를 넣으면 우리가 양공이라고 부르는 빈 구멍이 하나 생깁니다. 

양공을 채우기 위해 전자가 이동할 수 있는데 상대적으로 구멍은 기존의 전자가 위치한 자리로 이동한 것처럼 보입니다.

전자의 이동방향과 전류의 방향은 다릅니다. 즉 구멍이 상대적으로 이동하는 방향이 전류가 흐르는 방향이고 마치 양전하를 가진 입자처럼 행동하는데 양전하를 띈 구멍이라는 의미로 양공이라고 부르는 것입니다.

반대로 전자가 한 개 많은 원소를 첨가하면 남는 전자가 자유롭게 이동하면서 전류를 흐르게 해 줍니다.

 

전자가 한 개 적은 원소를 첨가한 반도체는 양성(Positive)의 P를 따서 P형 반도체라 부르고

전자가 한 개 많은 원소를 첨가한 반도체는 음성(Negative)의 N을 따서 N형 반도체라고 부릅니다.

 

 

1) N형 반도체와 P형 반도체를 붙이는 경우

P형 반도체에는 양전하를 띈 양공이 있고 N형 반도체에는 자유전자가 존재합니다.

이 경우 전자들은 양공에 이끌려 결합하게 됩니다.

중성 상태에 있던 원자가 전자를 하나 받게 되면 음전하를 띄게 됩니다. 반대로 중성상태에 있던 원자가 전자를 하나 빼앗기면 양전하를 띄게 됩니다.

 

P형 반도체의 접촉면의 원자들은 음전하를 띄게 되고 이 반발력으로 더 이상 전자들이 넘어오지 못하고 N형 반도체의 접촉면에는 양전하를 띈 원자의 영향으로 양공이 이동하지 못하게 됩니다. 

 

더 이상 이동 가능한 전하들이 없어지게 되는데 이곳을 공핍 영역이라고 합니다.

공핍 영역 가장자리에 서로 다른 전하를 가진 면이 생기게 되고 +에서 -쪽으로 전기장이 생성됩니다.

이상태에서 전압을 가하게 되면 양공은 같은 극에 대한 반발력 방향으로 이동하게 되고 전자들은 반대로 이동하게 됩니다.  이동을 하다가 공핍 영역의 전하 층을 만나게 되지만 인공적으로 걸어주는 전압이 세다면 이 힘을 무시하고 넘어갈 수 있게 되어 전류가 흐르게 됩니다. 

 

이렇게 전류를 흐르게 하려면 같은 전하를 가진 전압을 연결하면 되는데 이것을 순 방향으로 연결했다고 합니다.

반대로 전류가 흐르지 못하는 방향을 역방향이라고 합니다. 역방향일 경우 공핍 영역이 더욱 커지게 됩니다.

 

 

왼쪽 두 개의 반도체는 순 방향의 전압을 통해 전류가 흐르게 하고 다른 반도체는 역방향의 전압을 걸어 전류가 흐르지 않도록 합니다. 

 

순방향의 전압을 더 높이게 되면 양전하와의 반발력이 커지면서 N형 반도체를 뛰어넘는 양공들이 생기게 됩니다.  

넘어온 양공들은 음극 쪽으로 끌려갈 것입니다. 결국 순방향의 전압이 세지면서 전류가 흐르게 되었습니다.

 

이렇게 N형 반도체를 뛰어넘을 수 있을 만큼의 특정 전압을 걸어주면 전류를 흐르게 할 수도 있고 흐르지 않게 할 수 있습니다. 

 

역방향의 전압을 높여주면 흐르는 전류의 양도 많아지게 됩니다.

 

이런 방식으로 스위치 작용을 해주는 반도체를 트랜지스터라고 합니다.

 

트랜지스터는 다음과 같이 생겼으며 PNP 또는 NPN 반도체가 들어 있습니다. 

가운데 도선에 특정 전압을 걸어주면 전류가 흐르게 됩니다. 

 

이러한 트랜지스터를 이용하면 논리회로를 만들 수 있습니다. 

 

컴퓨터는 0과 1로 이우러 진 디지털 신호를 인식하고 전류가 흐르면 1 흐리지 않으면 0으로 인식합니다. 

우리는 1은 참 0은 거짓이라고 표현하기도 합니다. 

 

다양한 트랜지스터로 AND, OR, NOT 논리게이트를 만들어서 사용합니다.

 

 

논리 게이트로 이진법을 더하는 과정을 통해 트랜지스터로 논리게이트를 만들고 논리게이트로 덧셈 연산을 하는 것을 알아봅니다. 

 

우선 입출력 값을 논리 표로 만들어봅니다. 입력 값을 2개의 단자로 들어온다고 가정합니다.

A입력 값                     B입력 값 올림수
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1

이제 이렇게 만든 표를 회로로 구축해야 합니다.

 

합의 논리 표는 입력값 중 하나만 참이면 참입니다. 이는 XOR 논리게이트의 논리표와 동일합니다.

 

올림수 논리표는 둘 다 참이어야 참입니다. 이는 AND 논리게이트와 같습니다.

 

이렇게 회로를 구축하면 간단한 덧셈을 할 수 있는 더하기 게이트를 만들 수 있습니다.  이런 식으로 트랜지스터를 이용해서 논리회로를 구축해 갈 수 있습니다.

 

CPU에는 산술 논리 장치가 존재하는데 이 장치는 산수를 계산하고 논리를 연산하는 역할을 합니다.

앞에서 보았던 논리게이트를 이용하여 산술 논리 장치를 만들게 됩니다.

 

트랜지스터는 매우 작습니다. CPU에는 수십 억 개의 트랜지스터가 들어 있습니다. 모스펫이라는 트랜지스터가 CPU 내부에 구성되었고 이러한 모스펫들이 모여 많은 논리게이트를 이루고 연산을 수행하고 있습니다.

 

 

 

 우리의 프로그램은 하드디스크에 저장되어 있습니다.  하지만 CPU의 속도에 비해서 하드디스크는 너무 느리기 때문에 CPU는 하드 대신 램과 통로를 구성하고 있습니다.

 

하지만 램도 CPU에 비해선 속도가 많이 느리기 때문에 CPU 내부나 근처에 캐시 메모리를 만들어 그곳에 데이터를 저장합니다. 다만 용량이 매우 적기 때문에 중요하다고 생각되는 데이터만 저장합니다. 

 

캐시 메모리는 L1부터 L3까지 단계를 나누어 사용합니다 L1은 CPU가 가장 먼저 접근하는 메모리로 속도가 가장 빠르지만 용량은 적습니다. L3는 용량이 크지만 속도가 느립니다.

 

CPU의 데이터 요청 순서는 L1, L2, L3, 램 순서로 데이터를 찾게 됩니다. 우리는 램과 캐시 메모리를 통틀어 메모리라고 할 수 있습니다. 

 

컴퓨터의 기억장치는 하드, 램, 캐시, 레지스터가 존재합니다. 

레지스터는 cpu 내부에서 데이터를 일시적으로 저장하는 장치로 속도가 가장 빠른 메모리입니다. 

 

레지스터는 다양한 종류가 있지만 대표적인 레지스터를 알아야 합니다. 

PC라는 프로그램 카운터 레지스터는 다음 수행할 메모리 주소를 기억합니다. 

메모리 주소 레지스터(MAR)는 PC에서 수행할 주소를 넘겨받고 해당 주소에서 데이터를 가져옵니다. 

메모리 버퍼 레지스터(MBR)는 MAR이 가져온 데이터나 명령들을 일시적으로 저장합니다.  이 내용 중  명령은 명령어 레지스터로 전송되고 연산은 누산기 레지스터로 이동합니다. 

즉 명령어 레지스터에는 명령을 누산기에는 결과 값이나 중간 값을 일시적으로 저장합니다. 

최종 결과는 MBR을 통해 메모리로 전송됩니다.  

그리고 제어장치가 있는데 명령어 레지스터에 있는 명령어를 받아 해석하고 해석된 명령을 실행할 시스템에 전송합니다. 

ALU는  산술 논리 연산을 실행합니다.

 

우리가 사용하는 고급 언어를 통해 코딩한 프로그램은 컴파일러를 통해 어셈블리어로 변형되고  어셈블러를 통해 기계어로 변형됩니다. 

 

기계어를 메모리에 저장되고 메모리의 데이터를 CPU로 가져오는 과정을 인출 단계이라고 합니다.

그리고 명령어 레지스터에 저장된 명령어를 제어장치로 전달해 해석하는 과정을 해석 단계라고 합니다.

산술 논리 장치에서 계산되는 과정을 실행 단계라고 합니다. 제어장치를 통해 전부 컨트롤됩니다.

최종적인 데이터를 메모리에 저장하는 저장 단계를 거쳐 서서 완료됩니다. 

 

CPU는 이러한 단계를 세분화하여 사용합니다. 이렇게 분리된 각각의 프로세스를 스레드라고 합니다. 

 

코어 하나에 여러 개의 스레드가 실행되면 속도가 빨라지게 되고 코어가 많을수록 더 빠른 속도를 가지게 됩니다.  

이러한 프로세서의 구조는  회사마다 다르며 이러한 구조를 아키텍처라고 합니다.

 

 

 

출처 : [https://www.youtube.com/channel/UCgp715TVX9u6cab9XCsFtTw]

출처 : 교재

반응형

댓글