brunch

You can make anything
by writing

C.S.Lewis

by 이경종 Mar 06. 2020

Ch2-1. 컴퓨터 시스템 개론

우리가 지금까지 하드웨어 기초에서 배운 것들은 말그대로 소프트웨어와는 아무 관계가 없어보이는 하드웨어에 대한 기본지식들이였다. 이제 우리가 다룰 내용은 이 하드웨어의 개념들이 소프트웨어로 실행되기 위해 거쳐야 하는 컴퓨터 시스템에 대한 것이다.


아직도 컴퓨터(Computer)라고 하면, 집에 있는 PC나 랩탑만을 떠올리는 인문학적 사고방식을 버리자.

컴퓨터는 말 그대로 전기적 연산장치다. 스마트폰도 컴퓨터 시스템이고 냉장고도 컴퓨터 시스템이다.

모든 임베디드 디바이스는 컴퓨터 시스템이거나 컴퓨터 시스템에 기반하고 있다.


더 정확히 컴퓨터 시스템이 어떻게 이루어지는지 알아보기로 하자.

다음과 같은 계산을 해야 한다고 치자.


1 + 2


컴퓨터 시스템을 사용해서 이 값을 구하려면 상위 프로그래밍 언어로 코딩을 해야 한다. 물론 1+2의 결과를 알기 위해 프로그래밍을 하는 인간은 없을 것이다. 여하튼 코드로 표현하면 다음과 같을 것이다.


X= 1 + 2 ;


이 코드를 컴파일(Compile), 즉 컴퓨터 프로세서가 실행할 수 있는 기계어(Assembler)로 바꾸면 다음과 같은 식이다.


load r1, #1

add r0, r1, #2


마지막으로 이 코드를 입력받은 컴퓨터 프로세서는 내부 레지스터를 사용해 연산작업을 수행하게 된다.

프로세서의 내부에서 실행되는 연산작업은 전기적인 신호들이 왔다갔다하는 것으로 이를 위해 수많은 논리회로(Logical circuit)들이 프로세서 내부에 구성되어 있다. 하드웨어 레벨로 내려가면 논리회로는 트랜지스터(Transistor)로 만들어지며, 트랜지스터는 반도체로 만들어진다.


컴퓨터 시스템은 기계어를 트랜지스터레벨의 전기적 동작을 거쳐 결과를 뽑아내는 시스템인 셈이다.

정리하면 소프트웨어가 실행되는 아키텍처는 아래와 같다.

위 그림은 임베디드 시스템을 하드웨어와 소프트웨어로 나누어서 상위 소프트웨어부터 하위 하드웨어까지 수행되는 순서로 나타낸 블록 다이어그램이다. 방금 언급했던 컴퓨터 시스템의 범위는 하드웨어 시스템에서 마이크로프로세서와 ISA(Instruction Set Architecture)의 두부분이다. ISA는 어셈블러보다 더 큰 개념으로 '컴퓨터 시스템 명령어 체계'라고 볼 수 있다. x86, x64, ARM 등 각가의 프로세서 계열에서 사용하는 독자적인 명령어 집합을 말한다.


컴퓨터 시스템을 위 그림의 하드웨어 전체로 보거나 소프트웨어의 특정부분까지 포함하는 것으로 보기도 한다. 이는 기준에 따라 달라지는 분류일뿐이다. 



       YES24 링크 교보문고 링크

작가의 이전글 Ch1-6. 회로도 - 2
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari