본문 바로가기

1:1 개발 공부

C 언어에 대한 기초 - C를 배우기 전에 알아야할 것들(2)

1) 컴퓨터는 CPU(Central Processing Unit), 메모리, 입력장치, 출력장치, 보조기억장치로 구성되어 있습니다. 

2) CPU에는 제어 장치, 연산 장치, 제지스터, 캐시메모리가 있습니다. 

3) 메모리는 프로그램과 데이터를 기억하는 장치로, 컴퓨터의 전원을 끄면 사라지기 때문에 나중에 계속해서 사용할 정

   보는 보조기억장치에 저장해야합니다.

4) 보조기억장치는 프로그램 및 데이터를 저장하는 장치로, 전원을 꺼도 데이터가 사라지지 않습니다. 

    장치와 장치 사이에는 정보를 전송하는 신호선이 연결되어 있고, 복수의 제어 장치를 연결하는 공통 신호선을 버스라

    고 합니다. 특히, CPU와 메모리를 연결하는 버스를 메모리 버스라고 합니다. 

    1) 데이터 버스 : 읽기 및 쓰기를 할 값을 주고받는 신호선, (양방향 통신) 1개의 신호선이 1비트의 데이터 전송

    2) 주소 버스 : 읽기 및 쓰기를 할 주소를 지정하는 신호선, 버스의 개수가 표현할 수 있는 주소의 범위가 됨

                      주소 버스가 8비트라면 8비트 만큼의 주소를 이용할 수 있고, 주소 버스가 16비트라면 16 비트 만큼의                        주소를 이용할 수 있음.

    3) 컨트롤 버스 : 데이터의 쓰기 또는 읽기를 지정하는 신호선 

 

5) 컴퓨터의 기억 영역은 8비트 단위로 구별되며 이를 메모리 셀이라고 합니다. 

6) 입출력 장치도 메모리와 마찬가지로 버스로 연결되어 있어 메모리와 동일하게 주소가 부여되는데, 이러한 방식을

   메모리 맵트(I/O Memory_mapped I/O)라고 합니다.

7) CPU를 구성하는 3가지 장치

   (1) 제어 장치 : CPU의 처리 내용을 결정하는 장치입니다. 

                      제어 장치와 연결하는 제어 신호가 들어있으며, 제어 신호는 연산의 종류를 선택하는 신호선입니다. 

                       제어 장치에서 버스를 열고 닫는 셀렉터라는 장치까지 많은 신호선이 연결되어 있습니다.

   (2) 연산 장치(ALU) : 덧셈 및 뺄셈 등의 연산을 하는 장치입니다. 연산은 반드시 레지스터에 기억되어 있는 값을 이용

                              합니다.

   (3) 레지스터 : 명령 및 데이터를 일시적으로 기억하는 장치입니다. 메모리에 저장되어 있는 명령 및 데이터를 레지스

                     터에 복사한 후 그 값을 이용해서 해석 및 연산을 합니다. 

                     레지스터의 다양한 종류 중 알아야할 가장 중요한 부분은 '범용 레지스터'입니다. 범용 레지스터는 여러

                     개 존재하며, 일시적으로 값을 기억하기 위한 레지스터 버퍼라는 것도 존재합니다.

 

8) CPU가 처리하는 것 3가지

   (1) 메모리의 특정 번지의 값을 특정 레지스터에서 기억하게 한다

   (2) 특정 레지스터의 값을 메모리의 특정 번지에서 기억하게 한다

   (3) 특정 레지스터와 특정 레지스터간의 연산을 한 후 그 결과를 특정 레지스터에서 기억하게 한다

  => 모든 명령은 제어장치!!! (1), (2) 처리는 메모리와 레지스터 사이에서 이루어지며, (3)은 레지스터와 연산 장치 사이

       에서 이루진다는 것을 알아야합니다.

 

9) 로드 : 프로그램을 실행할 때 하드웨어 디스크에 저장되어 있는 프로그램을 메모리 상에 배치하는 것을 의미합니다.

            가끔 데이터 통신이 느려 loading 중이라는 표현을 본 적 있을 겁니다. ROM에 저장되어 있는 프로그램이나 데

            이터를 메모리로 읽어오는 작업을 하고 있는 것입니다

10) 런, 엑시트 : 메모리로 읽어 온 프로그램을 실행하는 것을 의미합니다.

 

11) 기계어로 된 명령이 실행되는 과정