-
[뇌자극 시스템 프로그래밍] 01. 컴퓨터 구조에 대한 간략한 이해Study/컴퓨터 구조 & 운영체제 2022. 9. 17. 19:41
01. 시스템 프로그래밍이란?
- 좁게는 하드웨어를 사용할 수 있게 도와주는 프로그램을 만드는 것 (Operating System)
- 넓게는 운영체제에서 제공하는 라이브러리를 사용해 해당 운영체제의 컴퓨터에 일을 시키기 위한 프로그램을 만드는 것
02. 컴퓨터 하드웨어 구성
ALU, Register, Control Unit, Bus Interface는 CPU의 구성요소이다. 1. CPU의 구성 요소
- ALU (Arithmetic Logic Unit) : 실제 연산 (산술, 논리)를 수행하는 장치이다.
- Control Unit : 명령어를 해석하고, 해석 결과에 따른 신호를 CPU의 다른 장치에 전송한다.
- Register Set : CPU내의 작은 메모리, 명령어 등을 임시 저장하고 ALU와 Control Unit이 가져다 쓰도록 한다.
- Bus Interface : I/O Bus의 통신방식과 프로토콜을 이해하고 있는 장치. I/O Bus와의 매개체이다.
Clock Pluse?
- CPU는 클럭 신호에 맞춰서 일을 한다.
- 굳이 최대 성능을 발휘하지 않고 신호에 맞춰 일을 하는 이유는? 동기화 때문이다.2. 실행 파일 생성과 프로그램 실행 과정
먼저, 실행 파일이 생성되는 과정은 크게 네 과정.
전처리 -> 컴파일 -> 어셈블러 -> 링킹
전처리기를 통해 코드파일을 적절하게 수정한 뒤, 컴파일러가 어셈블리어로 변환, 어셈블러가 기계어로 변환, 링킹을 통해 프로그램 내에서 참조하는 라이브브러리나 함수 등을 하나로 묶고, 실행파일을 생성한다.
프로그램 실행은 3가지 단계를 통해 이루어진다.
- Fetch : 메모리에 존재하는 명령어를 CPU로 가져오는 단계
- Decode : 가져온 명령어를 해석하는 단계
- Execution : 해석한 명령어로 연산을 하는 단계
위 세가지 과정을 거쳐 프로그램이 실행된다.
질문
Q1. 어떠한 이동 경로를 거쳐 Fetch가 진행되는가?
A : HDD -> RAM -> I/O Bus -> Register
Q2. 명령어가 CPU 어디에 저장되는가?
A : Register. 정확히는 IR(Instruction Register)에 저장된다.
Q3. Decode는 어디서 하는가?
A : Control Unit이 수행한다.
Q4. Execution은 어디서 하는가?
A : ALU가 수행한다.
03. Bus System
버스 시스템이란 데이터를 이동하는 데 있어서 사용되는 전송 경로를 말한다.
버스 시스템은 이동하는 데이터의 종류에 따라 3가지 경로로 구분된다.
- Data Bus
- Address Bus
- Control Bus
먼저, Data Bus의 경우 피연산자, 명령어 등 말 그대로 데이터가 이동하는 버스이다.
Address 버스와 Control Bus의 경우 예를 들어 설명해보겠다.
CPU가 Main Memeory의 0x1234라는 주소에 값을 쓴다고 해보자.
CPU는 메모리에게 "0x1234 번지에" 값을 "쓰겠다" 라고 신호를 보내야 한다.
여기서 0x1234라는 데이터는 주소값이므로 Address Bus를 통해 이동하고, "쓰겠다"라는 신호는 Control Bus를 통해 이동한다.
즉, Address Bus는 주소값이 이동하는 통로, Control Bus는 CPU와 RAM사이의 특정한 사인이 이동하는 통로라고 할 수 있다.
'Study > 컴퓨터 구조 & 운영체제' 카테고리의 다른 글
[운영체제] 가상 메모리(Virtual Memory)와 페이징, 세그멘테이션 (0) 2022.10.11 ASCII와 Unicode, UTF-8 (0) 2022.09.21 프로그램이 실행되는 과정 (CPU와 Register, RAM의 작동방식) (0) 2022.09.12