[기본원리] 프로그래밍 에서의 CPU .

반응형



읽기전에 손가락 한번 클릭~ >_<

고마워요 ~ Chu ~ ♥


프로그래밍 입장에서 본 CPU 에 관한 기본적인 내용 입니다.




프로그래밍 에서의 CPU 란 무엇일까요?
프로그래밍 입장에서 본 CPU 가 맞겠군요.

최근들어 기본원리에 많은 관심이 갑니다.
마치 콩크리트 정글 같은 현대시대에 농촌이 그리워지는 향수 라고나 할까요?

CPU란?

우선 CPU ( Central Processing Unit ) 은 On / Off 소자를 가진 트랜지스터로 구성되어 있습니다.
CPU의 역할은 최종적으로 기계어로 된 프로그램의 내용을 해석 후 실행하는 것이지요.

하드웨어 적으로는 수많은 IC ( Intergrated Circuit : 직접회로 ) 칩으로 구성되어 있습니다.

직접 만든 그림 ^^;;


그림을 자세히 보세요.
우선 개발자가 고급언어로 프로그래밍을 합니다 ( C 나 Java 등 )
그 다음 컴파일을 하면 기계어로 변환이 되지요.
그리고 프로그램을 메모리로 복사를 하구요.
마지막으로 CPU 가 프로그램 내용을 해석하고 프로그램을 실행합니다.
이 일련의 과정이 프로그램이 실행되는 과정입니다.


CPU 내부

CPU 의 내부에는 뭐가 있을가요?
뭐가 있길래 저렇게 프로그램을 실행하는지 천천히 알아보지요.

우선 CPU의 내부에는 다수의 레지스터와 제어장치, 연산장치, 클럭으로 이루어져 있습니다.

직접 그린 그림 ^^;;

그림에서와 같이 다수의 레지스터, 제어장치, 연산장치, 클럭입니다.

각각이 무엇인지 그럼 알아보죠. 

 ■ 레지스터란?
처리하려는 명령어와 데이터를 보관하는 영역입니다. CPU 에서는 수 많은 레지스터가 존재하지요.


 ■ 제어장치란?
메모리의 명령어와 데이터를 읽어온 후 레지스터에 넣어 실행결과에 따라 제어해 주는 역할을 합니다.


 ■ 클럭이란?
컴퓨터가 작동하는 시간이 계산되는 신호를 발생시키는 ( 클럭 신호라고 합니다 ) 역할을 합니다.



메모리

위에서 말한 메모리는 주로 메인 메모리를 말합니다.
메인 메모리는 명령어와 데이터를 보관하는 역할을 하지요.
보통 DRAM(Dynamic Random Access Memory) 를 많이 쓰며 모든 데이터에 읽고 쓰기가 가능하지만,
전원 공급이 끊기면 데이터를 잃게 되는 휘발성 메모리 입니다.

메모리는 1바이트씩 구분되어 있어서 여기에 " 어드레스(번지주소) " 가 붙어 있게 되는데요,
결국 CPU는 이 어드레스를 이용하여 메모리에 저장된 데이터를 처리하는 것이지요 ^^


프로그램이 CPU 내부에서 실행되는 순서

CPU 와 CPU 내부, 그리고 메모리 까지 살펴봤습니다 간단하지요?
그렇다면 이제 세부적으로 CPU 내부에서 어떻게 프로그램이 실행되는지 보시지요!


가장 처음으로 프로그램이 실행되는 제어장치가 클럭신호에 맞추어 메모리에서 데이터를 읽습니다.

그런 다음 제어장치가 명령어를 해석하고 실행하지요.


그런 다음 연산장치는 데이터를 연산 하고요.

마지막으로 제어장치가 실행결과를 만들고 컴퓨터를 제어하게 됩니다.




이제 프로그램이 어떻게 돌아가는지 감이 오시나요?

다음엔 프로그래밍의 CPU 에서 가장 중요한 레지스터에 대해 포스팅 해볼까 합니다..
으.. 잘 되려나....




반응형

댓글(16)

  • 정혁
    2010.07.02 18:58

    잘 보고갑니다.
    좋은 게시글이군요.

  • 2010.07.03 00:01 신고

    64비트, 멀티코어 CPU들이 대중화되면서,
    프로그래머가 고려해 줘야하는 사항이 늘어난 것 같아, 부담감이 들어요.
    웬지 64비트나 멀티코어를 활용해 주지 않으면 아까운 느낌이 들어서요.

    • 2010.07.03 18:17 신고

      그렇군요!
      요즘엔 워낙에 사양이 뛰어난지라,
      뭐 메모리관리 측면을 신경 안써도 된다는 이점도 있겠지만 역시 골치 아픈건 사실 ㅠㅠㅠ

  • 2010.07.03 09:07 신고

    앞으로 티몰스님 블로그에 자주 방문할 듯 합니다. ㅎㅎ
    멋진 글 잘 보고 갑니다.

  • 2010.08.17 03:11

    좋은 글 감사합니다^^

  • 알 수 없는 사용자
    2010.10.24 23:58

    안녕하세요.
    저도 프로그래밍같은 것에 관심이 많아져서 공부를 좀 해보려하는데,
    좋은 정보들을 많이 블로깅 해 놓으셨네요. ㅎㅎ
    앞으로 자주자주 뵙겠습니다. 하하.

    • 2010.10.25 10:29 신고

      안녕하세요 ^^ 반갑습니다~
      자주 뵈면 좋겠네요 ㅎㅎㅎ

      감사합니다 관심주세요!

  • 2012.02.17 19:54 신고

    티몰스님의 프로그래밍 과정들.
    이제부터 하나씩 읽어가렵니다 ㅎㅎ

  • 김민
    2012.05.08 13:18

    이렇게 쉽게 이해할 수 있다니 감사합니다. 수업자료로 많은 참조가 되었습니다.

  • 2012.11.23 02:38

    좋은포스팅 잘보았습니다.
    처음 입문하는데 자격증따려고 빌린 책보다 더 유용하네요

Designed by JB FACTORY