IT 따라잡기 시리즈

1. CPU에 대한 이해 본문

보안 따라잡기/리버스 엔지니어링 따라잡기

1. CPU에 대한 이해

Ggiant 2022. 9. 30. 22:58

CPU는 수학적인 계산을 할 수 있는 회로를 가지고 있습니다.

또 작은 정보를 저장할 수 있는 저장공간을 가지고 있습니다.

---

CPU가 덧셈을 하는 과정을 상상해보겠습니다.

 

CPU는 R0라는 이름을 가진 저장공간에 1이라는 숫자를 가지고 있습니다.

또 R1이라는 이름을 가진 저장공간에 2라는 숫자를 가지고 있습니다.

 

CPU는 R0와 R1을 더하라는 '명령'을 받습니다.

 

명령대로 CPU는 덧셈을 하는 회로를 통해 R0와 R1을 더하고 R0에 다시 그 값을 저장했습니다.

---

 

CPU는 레지스터라는 여러 용도로 사용할 수 있는 저장공간을 가지고 있습니다.

이 저장공간 안에 있는 값을 이용하여 계산을 하거나 다른 저장공간의 위치 정보를 불러올 수 있습니다.

 

 동일한 CPU라고 가정할때 물리적으로 레지스터 한 칸(칸이란 표현은 잘 안쓰지만 이해를 돕기위해 썼습니다.)은 크기가 고정되어있습니다. CPU는 구조상 한번에 처리할 수 있는 최소 데이터의 용량이 정해져 있는데, 이것이 레지스터 크기와 동일합니다. 만약 한번에 처리 가능한 용량이 32bit면 레지스터도 32bit(4byte)만큼의 공간을 가지며, 64bit도 64bit(8byte)만큼의 용량을 가집니다. 이는 32bit CPU와 64bit CPU의 차이기도 합니다.

 

CPU를 동작시키기 위해서는 특정 명령이 있습니다. 덧셈, 뺄셈, 레지스터에 값을 넣는 명령, 가져오는 명령 등 많은 명령이 있는데 이 명령의 집합을 ISA(Instruction Set Arcitecture)라고 합니다.

 

CPU는 여러 회사에서 만들고, 가전제품, 데스크톱, 휴대폰 등 사용하고자 하는 목적이 다르기 때문에 ISA는 어떤 CPU인지에 따라서 달라질 수 있습니다. (모든 CPU가 같으면 하나의 ISA만 배우면 되겠지만, 그게 아닙니다..

 

위에서 CPU가 처리 가능한 최소 데이터 크기를 말했는데, 이 크기 또한 ISA가 여러 종류 존재하는 이유이기도 합니다. 정리하면 ISA는 CPU를 만드는 회사, 한번에 처리 가능한 데이터 크기, 또 사용자에 편의에 따라 여러 종류가 될 수 있는 것입니다.

 

예를 들어서 덧셈이라는 명령을 어떤 ISA에서 add라고 한다면 다른 ISA에서는 plus라고(아직 못봤지만) 할 수도 있습니다.

 

대표적인 ISA로는 x86, x86-64, arm 등이 있습니다.(이 강의 시리즈에서는 x86만을 다루고자 하니 다른 ISA에 관해서는 다음 기회에 다루겠습니다.)

 

ISA마다 명령 뿐만이 아니라 숫자 표현 방식, 저장공간의 양식 등이 조금씩 다릅니다.

 

다음에는 x86에 대해 알아보겠습니다.

'보안 따라잡기 > 리버스 엔지니어링 따라잡기' 카테고리의 다른 글

2. 기계어와 디컴파일러  (0) 2022.10.02
0. 프롤로그  (1) 2022.09.30
Comments