마농의 개발 일지

컴퓨터 구조 입문 - CPU 본문

CS

컴퓨터 구조 입문 - CPU

마농.. 2022. 7. 8. 18:00

 컴퓨터 구조

 

   디스플레이 (모니터)

 

CPU  - MEMORY - DISK

 

      입력 (키보드)

 

=> 폰 노이만 구조

 

컴퓨터 구조 공부: 이들의 동작원리를 물리적 수준에서 배우기

이 하드웨어들과 맞물려 돌아가는 운영체제 공부로 확장. 

 

CPU - MEMORY - DISK 사이 데이터 흐름을 어떻게 제어하는가? => 운영체제

 

CPU : 프로세서

MEMORY : (휘발성) 파일을 프로세스하기 위해 데이터를 잠깐 저장하는 곳

DISK : 파일을 반영구적으로 저장하는 곳. 컴퓨터 껐다가 켜도 유지됨.

 

DISK는 MEMORY에 비해 상대적으로 가격이 쌈.

DISK에 있는 파일이 실행되기 위해서는 파일의 일부만이 MEMORY로 올라감.

MEMORY에는 한계가 있기 때문. 

 

이때 올라간 파일은 CPU 내 Cache Memory로 또 이동

(캐시 메모리 단가는 메인 메모리 단가보다 더 비쌈.)

 

여기서 운영체제 ?!

1) 데이터 CPU-MEMORY-DISK 사이 이동

2) 어느 데이터 먼저 이동시킬 것인지 (빠른 속도 유지 위함)

 

CPU 스케줄링

CPU는 여러 프로그램 동시에 동작시키는 중.

일종의 우선순위를 두어서 중요 프로그램을 끊기지 않게 하며 동작시키기 위함 

 


CPU 작동 원리

 

CPU는 수십 억 개'트랜지스터'라는 반도체로 만들어짐.

 

반도체 : 주로 실리콘으로 만들어짐.

실리콘은 최 외각전자가 4개.

실리콘 원자들끼리 전자를 공유하며 단단히 결합된 구조.

 

원자는 최 외각 전자가 8개일 때 가장 안정한 구조를 이룸.

위의 그림처럼 결합되어 있으면 전자 이동하지 않음 => 전류 흐르지 않음.

 

이상이 순수한 실리콘의 설명.

BUT 실리콘 전자가 하나 더 많거나, 한 개 적은 원소를 첨가한다면 ? => 전류 흐르게 됨.

 

1) 실리콘에 전자 하나가 부족한 원소 첨가 : 양공 이동

(전자 이동 방향과 전류 이동 방향은 반대) 

* 양공 (양전하를 가진 입자처럼 행동하는 구멍, 양전하를 띈 구멍)

=> POSITIVE 의 P를 따서, P형 반도체

 

2) 실리콘에 전자가 한 개 많은 원소 첨가 : 남는 전자가 자유롭게 이동하며 전류 흐름.

=> NEGATIVE의 N을 따서, N형 반도체

 

이 P형 반도체와 N형 반도체를 붙인다면?

연결된 경계면을 보면, N형 반도체의 전자들이 양공에 이끌려 결합함.

 

더 이상 이동 가능한 전하들이 없어지면 이곳을 공핍영역이라고 부름.

이 상태에서 전압을 가해보자.

 

1) 순방향 연결(전류 흐름) : 같은 전하를 가진 전압 연결

 

2) 역방향 연결(전류 흐르지 않음) : 반대 전하를 가진 전압 연결


PNP형 반도체, NPN형 반도체

 

PNP형 반도체

이렇게 N형 반도체를 뛰어 넘을 수 있을 만큼의 특정 전압을 걸어주면 전류를 흐르게 할 수도 있고, 흐르지 않게 할 수도 있음. 이런 방식으로 스위치 작용을 해주는 반도체를 '트랜지스터'라고 함.

 

트랜지스터의 표현

 


논리회로(Logic Gate)

 

1. AND 게이트

 

 

2. OR 게이트

 

 

3. NOT 게이트

 

 

4. XOR GATE

 

 

이런 식으로 트랜지스터를 이용하여 논리회로를 구축해 산술 및 논리 연산 작업 수행함.

 

CPU 내 ALU(Arithmetic Logic Unit, 산술논리장치)


캐시 메모리

CPU는 Level 1 - Level 2 - Level 3 순으로 접근

 

 

컴퓨터 기억 장치

하드(SSD), RAM, CACHE, REGISTER

 

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

 

그런데 레지스터의 종류가 매우 많다. 그 중에 몇 가지는 다음과 같다.

 

1. 프로그램 카운터: 다음에 수행할 메모리의 주소가 들어있음.

 

2. 메모리 주소 레지스터:  프로그램 카운터에서 다음 수행할 메모리 주소를 넘겨받아, 그 주소를 찾아가 데이터를 가져오는 역할

 

3. 메모리 버퍼 레지스터: 메모리 주소 레지스터가 가져온 데이터나 명령들을 일시적으로 저장

4. 명령어 레지스터: 이 중 명령은 명령어 레지스터로 이동하고,

5. 누산기 레지스터: 연산에 사용될 데이터들은 이곳으로 이동. 연산의 결과값이나 중간값을 일시적으로 저장.

 

최종 결과는 메모리 버퍼 레지스터를 통해 메모리로 전송.


고급 프로그래밍 언어로 작성된 코드  --- (컴파일러) ---> 어셈블리어(CPU용 언어) --- (어셈블러) ---> 기계어(0,1)  


CPU의 프로세싱 : 인출 -> 해석(제어장치) -> 실행(누산기) -> 저장

 

 

프로세서 구조 = 아키텍처는 회사마다 다름. 

 

 

출처 : bRd 3D 유튜브

 

 

'CS' 카테고리의 다른 글

32bit 컴퓨터의 메모리가 4GB가 되는 이유  (2) 2022.07.06
CS50강 6강 자료구조  (0) 2022.07.06
CS50 5강 메모리  (0) 2022.07.05