01. 컴퓨터 구조
Programming/Windows system 2016. 1. 18. 20:17System Programming
: 컴퓨터 시스템을 동작시키는 프로그램...
컴퓨터 시스템의 주요 구성요소
CPU - 컴퓨터 구조
Cache - 컴퓨터 구조
Main Memory - 운영체제
Hard Disk - 운영체제
CPU (Central Processing Unit)
- 중앙처리장치..
Main Memory
- RAM이라는 저장장치로 구성되는 메인 메모리는 "컴파일이 완료된 프로그램 코드가 올라가서 실행되는 영역"이라고 정의할 수 있다.
Input/Output Bus
- 입출력 버스는 컴퓨터를 구성하는 구성요소 사이에서 테이터를 주고 받기 위해 사용되는 경로이다.
- 버스의 종류는 Address Bus, Data Bus, Control Bus 3가지로 구분된다.
CPU의 구성 요소
ALU (Arithmetic Logic Unit)
- CPU 내부에는 실제로 연산을 담당하는 ALU라는 블록이 있다.
- ALU는 산술연산이나 논리연산을 처리한다.
- 시프트 레지스터 : 비트들을 왼쪽 또는 오른쪽으로 이동시키는 기능을 수행하는 레지스터
- 보수기 : 이진 데이터의 보수를 취하는 회로
- 상태 레지스터 : 연산 결과의 상태를 나타내는 플래그들을 저장
Control Unit
- 컴파일을 하면 실행파일이 만들어진다. 이 실행파일에는 CPU에게 일을 시키기 위한 명령어들이 저장되어 있다.
- 어떤 경로를 거치던 간에 이 명령어가 CPU 내부로 흘러 들어가야 CPU에게 일을 시킬 수 있다.
- ALU를 대신해서 누군가가 명령어를 해석해야 하는데 그 역할을 하는 것이 Control Unit이다.
- 명령어를 해석하고 그 결과에 따라 적절한 신호를 CPU의 다른 블록에 보내는 일을 한다.
Register Set
- CPU에는 임시적으로 데이터를 저장할 수 있는 공간이 필요하다. 그것이 바로 Registe이다.
- 레지스터는 CPU 내부에 존재하는 Birnary Data 저장을 위한 저장장치이다.
- CPU에 따라서 크기가 구성된다.
Bus Interface
- 컴퓨터에는 CPU, Hard Disk, RAM등이 있다. 이들은 서로 독립적으로 동작하는 것이 아니라, 서로 데이터를 주고 받으면서 동작한다
- CPU에는 I/O 버스의 통신방식을 알고 있는 Bus Interface가 있다.
- Bus Interface를 알지 못한다면 데이터를 전송, 입력 받을 수 없다.
Clock Pulse
- 클럭 신호는 타이밍을 제공하기 위해서 필요하다.'
- CPU에 1.5Mhz 라고 써있는데 이것의 클럭발생기는 1초에 1500000번의 클럭을 발생시키게 설정된다. 또한 CPU는 그 신호에 맞춰서 일을 하게 된다.
프로그램 실행과정
전처리기 -> 컴파일러 -> 어셈블러 -> 링커
1. 전처리기
2. 컴파일러
- 소스코드가 컴파일에 의해서 어셈블러로 번역된다.
3. 어셈블러
- 컴파일러에 의해서 번역된 어셈블리 코드는 컴퓨터에 실행되기 앞서 바이너리 코드로 번역되어야 한다.
4. 링커
- 프로그램 내의 참조하는 함수나 라이브러리들을 하나로 묶는과정
링커의 역할
1. Loader : 로드모듈을 수행하기 위해서 메모리에 적재시켜주는 기능을 수행
2. Debugger : 번역된 프로그램의 실행오류를 찾기 위한 프로그램
3. Interpreter : 목적프로그램을 생성하지 않고 필요할 때마다 기계어로 번역해 주는 번역기
4. Preprocessor : 컴파일러가 시작하기 전에 컴파일러에 의해 호출되는 별개의 프로그램
프로그램의 기본 실행 단계
1단계 : Fetch : 메모리상에 존재하는 명령어를 가져오는 작업 (Bus System)
2단계 : Decode : 가져다 놓은 명령어를 CPU가 해석하는 단계 (Control Unit)
3단계 : Execution : 해석된 명령어의 명령대로 CPU가 실행하는 단계이다. (ALU)
Data Bus : 데이터를 이동하기 위해 필요한 Bus
Adress Bus : 주소값을 이동하기 위해 필요한 Bus
Control Bus : CPU가 원하는 바를 메모리에 전달할 때 사용됨