운영체제를 세세하게 배우기 이전에 전체적인 시점으로 확인해보며 기본적인 용어를 알아보자.
기본적으로 disk에 저장되어 있는 실행가능한 파일은 더블클릭(윈도우) 또는 명령어(리눅스)을 통해 실행했을 때, 메모리에 로드된다. 메모리에 로드된 정보들은 Instuction과 Data의 set이다.
메모리에 저장된 데이터와 인스트럭션을 수행하기 위해 CPU로 이들을 옮겨야햔다. 그 이전에 CPU에서 인스트럭션이 진행되기 이전에 순차적으로 메모리에서 레지스터에 저장한다. 이를 fetch라 부른다.
레지스터의 일반화된 이름은 다음과 같다.
PC: Program Counter로, 다음에 실행할 명령어의 주소를 레지스터를 저장한다.
IR: Instruction Register로, PC에 저장되어 있는 명령어(주소)의 종류가 저장된다.
CPU는 위와 같이 분류된다. CPU의 클럭속도도 중요하지만 클럭속도가 높다고 다 좋은게 아니다.
전력에 따라 쓰임새가 다르기 때문이다. ARM 기준으로 위쪽은 저전력 아래쪽은 고전력이므로 ARM은 스마트폰 위쪽은 세탁기와 같은 기계에 쓰이는 CPU이다.
GPU란 Graphical Processing Units의 약자로 더하기, 곱하기 등 단순연산들을 수행하기 위한 프로세서이다. 게임도 기본적으로 벡터 계산과 같은 단순 반복연산이 많기 때문에 엔비디아에서 그래픽카드에 GPU를 넣어 제작했다. AI 학습을 위한 행렬 연산에 최적화되게 발전하였다.
SoC(System on a Chip)이란 칩 하나에 여러 개의 CPU가 존재한다.(멀티 프로세서) 그러나 크기는 다르다. 이러한 이유는 모바일의 경우 전력(배터리 소모 최적화)이 중요하기 때문이다. 수행의 코스트에 따라 더 효율적인 CPU가 명령을 수행한다. 또한 GPU도 존재한다.
아직 상용화가 되지 않았지만 곧 상용화될 예정이다. 일단 이 하드웨어의 철학은 현재 컴퓨터 아키텍쳐는 CPU-메모리에서 상호작용하며 프로세스가 실행된다. 이것을 폰 노이만 아키텍쳐라 한다. 이것이 인간의 뇌, 즉 인간의 신경 세포망에 비해 훨씬 비효율적이라는 것이다. 이를 모사한 아키텍쳐이고 현재 칩셋 형태로 발전하고 있다.
위는 폰 노이만 아키텍쳐의 원리를 이미지, 그리고 단점을 표로 표현한 것이다.