상세 컨텐츠

본문 제목

컴퓨터 구조 : cpu 동작원리

구조, 시스템/컴퓨터구조

by 초띠 2023. 5. 15. 00:46

본문

트랜지스터 : N형 반도체와 P형 반도체에 대해 스위치 작용을 해주는 반도체 (npn or pnp)

 

Logic Gate (논리 회로) : 트랜지스터를 연결했을 때 전류가 흐르는지에 따라 종류가 다르다.

- AND : 모두 참일 때 결과도 참

- OR : 모두 거짓일 때 결과도 거짓

- NOT : 입출력의 값을 서로 바꿔줌

- XOR : OR과 같지만 모두 참일 때 결과가 거짓이라는 차이가 있다.

 

XOR, AND를 활용하여 회로를 구축하면 더하기게이트를 만들 수 있다.

 

ALU (산술 논리장치) : 산술 - 덧뺄셈과 같은 산수를 계산 / 논리장치 - AND나 OR처럼 논리를 연산

 

Mosfet : cpu에 들어있는 트랜지스터

크기가 매우 작음 (0.1 나노미터)

몸체는 n형과 p형 반도체, 위는 전류가 흐를 수 있는 금속

 

CPU는 모스펫들이 모여 많은 논리게이트를 이루고 연산을 수행

 


 

하드디스크 : 프로그램이 설치되어 있다. cpu에 비해 너무 느려 cpu와 소통하지 않는다.

: cpu와 소통한다. 실행한 프로그램의 데이터가 램으로 이동하고 cpu가 그 데이터를 가져온다.

 but ! 램도 느리기 때문에 cpu내부나 근처의 캐시메모리에 데이터를 저장

 

용량 : " 램 > 캐시메모리 " -> 캐시메모리에는 중요한 데이터만 저장

 

캐시메모리 : 3개의 레벨로 구성. 1 ~ 3 순서로 cpu가 접근, 용량은 커지고 속도는 느려진다. 마지막에 램에 접근

 

램 + 캐시메모리 => 메모리

 

기억장치 종류

- SSD하드, RAM램, CACHE캐시, REGISTER레지스터

----->  속도는 빨라지고 용량은 작아지고 가격은 비싸진다.

 

 

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

- program counter : 다음에 수행할 메모리의 주소 저장

- MAR(메모리 주소 레지스터) : 프로그램 카운터에서 수행할 주소를 받고 그 주소에서 데이터를 가져옴

- MBR(메모리 버퍼 레지스터) : MAR에서 가져온 데이터나 명령을 일시적으로 저장

   저장된 내용 중 명령은 명령어 레지스터로, 연산 데이터는 누산기 레지스터로 이동

- 명령어 레지스터 : 명령에 관한 데이터 저장

- 누산기 레지스터 : 연산의 결과나 중간 값을 일시적으로 저장. 최종 결과는 MBR을 통해 메모리로 전송

 

제어장치 : 명령어 레지스터에 있는 명령어를 받아 해석하고 해석된 명령을 실행할 시스템에 지시를 보냄

ALU : 산술 논리 연산 실행

 


 

고급 언어로 코딩 -> 어셈블리어 -> 기계어

 

우리가 사용하는 소프트웨어는 명령어와 데이터의 집합체

명령어 - 6비트 / 데이터 - 10비트    ==> 프로세서가 한 번에 처리 가능한 값 - 16비트

램은 8비트씩 저장되므로 두줄로 저장됨.

 


CPU 처리과정

C = A + B 실행해보기

 

1. 프로그램카운터 레지스터에 가져와야 할 메모리 주소

 

2. 그 주소를 메모리 주소 레지스터로 전달

 

3. 메모리 주소 레지스터는 해당 번지의 데이터를 가져와 메모리 버퍼 레지스터에 저장

(이처럼 메모리의 데이터를 cpu로 가져오는 과정 = 인출)

 

4. 메모리 버퍼 레지스터에 저장된 데이터가 명령이면 명령어 레지스터로 이동

 

5. 다음에 수행할 메모리에 따라 프로그램카운터 값 변경

 

6. 명령어 레지스터에 저장된 명령이 제어장치로 이동되어 해석 (해석 단계)

 

7. 명령에 따라 메모리 주소 레지스터에 해당 번지 값 입력

 

8. 해당 번지의 데이터를 읽어와 메모리 버퍼 레지스터에 저장

 

9. 메모리 버퍼 레지스터에 저장된 값이 명령이 아닌 데이터라면 누산기 레지스터에 저장

 

10. 다음 프로세스 실행 (위 순서 반복)

 

11. 더하기 명령을 실행하기 위해 누산기 레지스터에 저장된 데이터를 ALU로 전달

 

12. 새로 메모리 버퍼 레지스터에 저장된 데이터를 누산기 레지스터에 저장 후 ALU로 전달

 

13. ALU에서 처리된 결과를 누산기 레지스터에 저장 (11~13 실행 단계) 

(위 모든 과정은 제어장치에 의해 컨트롤됨)

 

14. 다음 프로세스(저장 명령) 실행 명령어 메모리 버퍼 레지스터에 저장

 

15. 제어장치에서 명령어 해석

 

16. 메모리 주소 레지스터에 저장할 번지 값 저장

 

17. 누산기 레지스터에 저장된 값을 메모리 버퍼 레지스터를 통해 해당 번지에 저장

 

18. 프로그램 완료

 


정리

 

CPU는 데이터를 인출하고, 해석하고, 실행한 다음 저장하는 과정을 거친다.

실제로는 위 단계들도 세분화 해서 사용한다. -> 분리된 각각의 프로세스 = 스레드

 

프로세서의 구조 = 아키텍처 (계속해서 다양한 형태로 진화중)