ALU(Arithmetic Logic Unit)

CPU는 덧셈이나 뺄셈과 같은 연산의 주체다 이건 누구나 다 아는 사실 하지만 좀 더 깊게 들어가면 ALU라는 녀석이 실제 연산을 담당한다. ALU 연산은 크게 두가지로 나뉜다 하나는 덧셈이나 뺄셈 같은 산술연산, 하나는 AND와 OR 같은 논리 연산이다.

 

 

Control Unit

프로그램을 컴파일하면 실행파일이 되고 이 실행파일에는 CPU에게 일을 시키는 명령어가 저장되어 있다.

이 명령어가 CPU 내부의 ALU로 전송되었다고 가정하자. 명령어는 다 0과 1로 구성되어있다(당연하다 컴퓨터는 0과 1밖에 모르니) 32비트 명령어라면 "00001111 00001111 00001111 00001111"와 같이 구성되어 있을 것이다.

과연 ALU가 0과 1로 구성되어있는 명령어를 이해할 수 있나? 못한다 ALU는 연산만 하니깐 이명령어를 해석해주는 놈이 바로 컨트롤 유닛이다.

 

 

레지스터(Register)

명령어가 CPU로 들어왔다고 가정하자. 덧셈 명령어 그리고 덧셈에 필요한 피연산자. 명령어는 컨트롤 유닛으로 피연산자는 ALU로 보내면된다. 하지만 ALU나 컨트롤 유닛이 지금 다른 명령어를 해석하고 있다면?? CPU 내부에 데이터를 저장해두고 CPU가 필요할 때 직접 가져다 쓰면 좋을 것 같다. 그렇다 CPU 내부의 조그마한 메모리 공간을 레지스터라고 한다.(연산할때 일일이 메모리에서 가져다가 연산하면 속도가 개판된다)

 

 

버스 인터페이스(Bus Interface)

명령어와 데이터가 CPU로 어떻게 들어 왔을까? 바로 버스 인터페이스 때문이다. 서로 데이터를 주고 받기 위해서 어떤 매개체가 필요하다 그것이 바로 버스 인터페이스다.

'컴퓨터 기본' 카테고리의 다른 글

퀵소트 자바  (0) 2021.05.26
Thread 란?  (0) 2020.05.07
클래스 관계 HAS-A 상속(합성, 통합)  (0) 2019.11.08
class의 static이란?(실무에서 바로 통하는 자바)  (0) 2019.10.28
유니코드 vs 아스키코드  (0) 2019.06.14

+ Recent posts