[Computer architecture] 1.3 Below Your Program

준치·2022년 1월 10일
0

[Computer architecture]

목록 보기
2/18

컴퓨터의 HW는 아주 low-level instructions만 수행이 가능하다.
따라서 high-level operation을 simple computer instructions로 해석/번역해서 HW가 수행 가능하게 만들어줘야 한다. 이는 abstraction(추상화)의 한 예시이다.

그림 1. A simplified view of HW & SW as hierarchical layers

HW & SW의 계층을 그림 1과같이 나타낼 수 있다.

system software는 많은 종류가 있지만 모든 컴퓨터 시스템의 중심이 되는 것은 operating systemcompiler이다.

Operating system : user's program과 HW를 연결해주고 다양한 서비스와 관리 기능을 제공한다. ex) Linux, iOS, Windows

Compiler : high-level language를 컴퓨터가 수행가능한 hardware instructions으로 번역하는 기능을 수행한다.

From a High-level Language to the Language of Hardware

computer는 on&off의 간단한 시그널만 이해한다. 이를 보통 0과 1이라는 two letters로 나타내고 이는 마치 2진수/binary number와 같다고 생각한다. 이때 각 letter를 binary digit/bit라고 하며, 우리가 컴퓨터에게 보내는 명령을 instructions이라고 한다.

assembler : instructions을 symbolic version으로 만든 첫 프로그램. 프로그래머가 symbolic verion의 instructions을 보내면 binary version으로 변환하여 컴퓨터가 실행한다. 이 것은 오늘날 assembly language라고 불리며 binary version은 machine language라고 불린다.

High-level language의 이점
1. 프로그래머들이 컴퓨터와 같이 생각하던 assembler와 다르게 자연스럽게 생각하여 프로그램을 만들 수 있게된다. 따라서 사용 목적에 맞게 언어를 설계할 수 있다.
2. 간결성(Conciseness)의 증가로 인해 프로그래머의 생산성이 향상된다.
3. 프로그램이 컴퓨터로부터 독립적으로 개발되어 어떤 컴퓨터든 간에 프로그램이 compiler를 통해 번역되어 수행 가능해진다.

Reference

[1] D. Patterson and J. Hennessy, ⌜Computer Organization and Design, 5th Edition⌟ , chapter 1
profile
설계 엔지니어 지망생

0개의 댓글