728x90
-
- 2강. 프로그램의 실행과정/하드웨어 구성의 재접근
- 2강은 1장 섹션 4~5
- < 프로그램 실행과정 >
- 전처리기 -> 컴파일러 -> 어셈블러 - > 링커
- 전처리기에 의한 치환작업
- #으로 시작하는 지시자
- ex ) #include #define 등등
- 컴파일러에 의한 번역
- CPU의 명령어로 번역
- C++을 어셈블리언어 (ADD, MIN, MUL, DIV )등의 명령어로 해석한다.
- 어셈블러에 의한 바이너리 코드 생성
- CPU의 명령어(어셈블리언어)를 바이너리 코드로 번역
- 링커에 의한 연결과 결합
- 라이브러리와의 결합
- 링커는 실행파일을 만드는것
- 어셈블러를 통해서 만들어지는 바이너리코드와 라이브러리가 묶여서 하나의 실행파일을 만든다.
- 명령어
- CPU 만드는 사람들은 명령어도 함께 디자인한다
- 어셈블러 : ADD-> 0011 처럼어셈블리 명령어를 바이너리코드로 바꿔주는걸 어셈블러라고한다. 어셈블리언어를 다른언어로 바꿔서 어셈블러
- < Stored Program Concept >
- 짧게 설명 : 프로그램은 메모리에 저장이되어야한다. //폰노이만 아키텍처라고도한다
- Fetch
- CPU 내부로 명령어 이동
- // 하드웨어에서 버스 인터페이스를 통해서 cpu로 명령어 이동
- Decode
- 명령어 해석
- 컨트롤 유닛에 의해서 해석된다.
- Execution
- 해석된결과에 의해서 실행
- 연산을 진행
- 보통은 ALU를 생각
- ALU가 중심이 되어서 cpu 요소들이 협력해서 실행된다.
- Stored Program concept
- 프로그램 -> 전처리기 -> 어셈블리 - > 링커 ==> 실행파일 생성
- 실행파일 --> 로드(load ) -> 단계1 . fetch -> 단계2 . Decode -> 단계 3 .Excution
- stored program concept + 컴퓨터 구조
- 데이터 이동의 기반 버스 시스템
- cpu와 메모리 관계에서의 버스만 설명한다.
- 하나의 버스는 보통 3가지로 이뤄진다.. 데이터 , 어드레스 , 컨트롤
- 데이터 버스
- 데이터이동
- cpu입장에서 메모리에서 데이터를 가지고가고싶을때 몇번지에있는 데이터를 줘 하면 어드레스 버스를 통해서 주소를 전달하면 데이터 버스로 데이터를 가져갈수있다.
- 어드레스 버스
- 주소 이동
- 컨트롤 버스
- 컨트롤 신호 이동
- cpu는 메모리로부터 데이터를 가져가기만 하는게 아니다. 메모리에서 cpu데이터를 가지고 가기도한다. 그래서 1. cpuㅏ 메모리에서 데이터 가져가기 . 2 메모리에서 cpu의 필요한 데이터 가져가기 이런 누가 먼저 데이터를 보낼지 순서를 전달하는게 컨트롤 버스
- 컨트롤 버스를 통해서 내가 지금 어드레스 버스로 어드레스데이터 보낼거다하고 cpu에서 메모리로 컨트롤데이터를 보낼수도있다.
728x90
'기타 공부 기록 > 뇌를자극하는윈도우즈시스템프로그래밍' 카테고리의 다른 글
5강 WIN32 vs WIN64 (0) | 2022.04.10 |
---|---|
4강 : MBCS와 WBCS의 동시지원 (0) | 2022.04.08 |
3강 : Windows에서의 유니코드(UNICODE) (0) | 2022.03.22 |
- 1강 . 컴퓨터 구조에 대한 첫 번째 이야기 (0) | 2022.03.07 |
뇌를 자극하는 윈도우 시스템프로그래밍 (0) | 2022.01.26 |