본문 바로가기
Program

[Programming] (윈도우 시스템 프로그래밍) 프로그램 컴파일과정/Stored Program Concept/System Bus

by snwo 2020. 8. 4.

프로그램 실행과정

프로그램 컴파일 과정

  • 전처리기에 의한 치환
    : # 으로 시작하는 지시자를 처리한다 (#include, #define)

  • 컴파일러에 의한 번역
    : CPU 의 명령어로 번역한다.

  • 어셈블러에 의한 바이너리 코드 생성
    : CPU 의 명령어를 바이너리 코드로 번역한다.
    CPU 아키텍쳐마다 다르다 (x86,ARM,MIPS .. )
     example  : ADD -> 0011, MIN -> 0010, MUL -> 0100

  • 링커에 의한 연결과 결합
    : 라이브러리와 결합

Stored Program Concept

폰 노이만 : 컴퓨터 구조가 프로그램의 메모리에 저장되어야하는 컨셉으로 디자인되어야한다.
(폰노이만 아키텍쳐라고도 불린다)

  • Fetch (cpu 내부로 명령어 이동)
  • Decode (컨트롤 유닛 -> 명령어 해석)
  • Execution (연산을 실행, 보통 ALU)

"프로그램의 명령어들이 메모리에 저장되어 위 3과지 과정을 거쳐 실행되어야 한다" 까지가 SPC 의 개념이다.

저번시간에 포스팅했던 컴퓨터 아키텍쳐와 연관된 사진이다. 

Memory 에 프로그램이 Load 된 후, 명령어I/O 버스를 통해 CPU 의 BUS interface 에 도착해 (Fetch)

Register 로 이동해, Control unit 에 의해 Decode 되고, ALU 에 의해 Execution 된다.


버스

버스는 키보드, 메모리, CPU 와 같은 컴포넌트들과 통신을 하게 해주는 시스템이다.

 

CPU-메모리 사이의 BUS = System bus

메모리-다른 컴포넌트 I/O bus 

System bus

  • 데이터 버스
  • 어드레스 버스
  • 컨트롤 버스

시스템 버스는 위 3가지 타입의 정보를 주고받을 수 있다. (양방향 통신)

버스마다 프로토콜(통신규약) 이 다르지만

 

데이터 버스 로 데이터를 주고받기위해,
어드레스 버스 로 메모리상 데이터의 주소를 주고받는다.


그리고 컨트롤 버스데이터버스어드레스 버스 를 제어해, 일의 순서, 즉 데이터의 흐름을 관리한다.

 

#윤성우 윈도우 시스템 프로그래밍을 BASE로 제작되었습니다.