오늘은 기초적인 컴퓨터 구조에 대해 정리를 해볼까 한다 .

( 윤성우 저자의 뇌를 자극하는 윈도우즈 시스템 프로그래밍을 참고하였다 . )


먼저 시스템이 갖춰지기 위한 주요 구성요소로는 


CPU, 캐쉬, 메인 메모리, 하드 디스크로 볼 수 있겠다 .



그럼 하드웨어의 구성은 이러한 형태로 이뤄지게 된다 .



각각의 구성요소에 대해 간략히 살펴보자면

 CPU : 중앙 처리 장치이다. 

( 굳이 따로 말하지 않아도 다들 알고 있을거라 생각한다. 모른다면 구글링..! )


메인 메모리 : 램 ( RAM ) 이란 저장장치로 주기억장치 라고 불린다.

컴파일된 프로그램 코드가 올라가 실행되는 영역이다.


입출력버스 : 각각의 구성요소 사이에 데이터를 주고 받기 위해선 

이 입출력 버스( I/O BUS ) 를 통해 이동하게 된다.

( 데이터의 종류에 따라 어드레스 버스, 데이터 버스, 컨트롤 버스로 나뉘게 된다 . )





흔히 프로그램이 실행되는곳은 어디인가요?

CPU 라고 대답했다면 정확히 알고있는 것이다.



자 그럼 CPU 에 대해 조금 더 이해를 해보자.



CPU 내부는 CU, ALU, Registers 그리고 버스 인터페이스로 나뉘게 된다.


ALU 에 대해 먼저 알아보자 .

ALU 가 처리하는 연산은 크게 두 가지로 나뉜다.

1. 덧셈, 뺄셈과 같은 연산

2. AND,OR 같은 논리연산

두가지 형태의 연산으로 이루어 진다.



Control Unit 에 대해 알아보자 .

프로그램의 실행파일은 CPU가 일을 해야하는 명령어들이 저장된다.

이 프로그램이 실행되면 램으로 복사가 되고 ( 흔히 알고있는 로딩 과정이다. )

램에서 CPU 에게 명령을 넘겨주게 되는데 ALU 라는넘은 간단한 산술연산과 논리연산만 가능하기 때문에

CPU 의 연산을 담당하는 ALU 가 명령어를 해석할 수 있게 도와주는넘이 이 CU 라는넘이다.

CU라는 넘이 명령어를 해석하여 ALU 에게 연산을 시키는 넘인것이다 !

CPU 의 오더라 보면 되려나 ..



레지스터라는건 임시 기억장치로 보면 되는데

ALU 가 연산중이라면 데이터 손실이 일어 날 수 있기 때문에

이 데이터를 임시적으로 데이터를 저장하기 위한 작은 메모리이다.

CPU 내부에 존재하며 2진 데이터 저장을 위한 저장장치이고,

크기가 큰 주기억장치나 보조기억장치와는 달리 16비트, 32비트, 64비트 정도의 데이터를

저장할 수 있는 크기로 나뉘게 된다.




버스인터페이스 ( 입출력 버스 )

I/O 버스의 통신 프로토콜을 알고 있는 녀석이다.

I/O 버스를 통해 전송된 데이터를 수신 혹은 전송을 할 수 있게 해준다 .

( I/O 버스와 각각의 구성요소들은 모두 연결을 위해선 인터페이스가 필요한데 연결되는 장비에 따라 어댑터 혹은 컨트롤러라 불리기도 한다.)




클럭 신호는 CPU 내부의 동기화를 위해 사용하게 된다.

논리회로를 공부해봤다면 알것이다.

각각의 게이트마다 흘러가는 속도가 다르다면 연산 과정은 엉망이 될것이다.

이 속도의 동기화를 위해 클럭신호를 발생시키는 것이다.


클럭속도가 높을 수록 초당 연산이 많아지기 때문에 성능이 향상된다.

( 요샌 클럭 발생기는 메인보드에 포함된다 . )





잘못된 내용은 거침없이 지적해주세요

'Programing > Basic' 카테고리의 다른 글

[Git] Git, GitHub, GitLab 은 뭐?, 또 버전관리란 무엇인가 ?  (0) 2017.01.20
문자 인코딩  (0) 2016.01.15
네트워크의 정의  (0) 2015.09.24

+ Recent posts