태그: ALU

A) 컴퓨터에도 실질적인 작업을 처리하는 H/W가 있는 것 같은데요... B) 컴퓨터의 두뇌는 CPU지. 그리고 CPU 내부에 ALU라는 산술 논리 유닛이 실질적인 처리를 담당한단다.프로그램 코드 동작 단계) 1. PC에 있는 코드를 얻어온다. 2. DC가 코드를 분석한다. 명령어는 IR로 보낸다. 데이터는 범용 레지스터로 보낸다. 3. ALU에서 명령을 수행한다. 4. 결과를 출력한다. 5. PC를 증가한다.

이번에는 CPU 내에서 어떻게 프로그램 코드가 동작하는지 간단히 알아볼게요.

프로그램을 실행하면 운영체제(O/S)는 프로그램 이미지를 메모리에 로딩하여 프로세스를 만들죠.
프로세스는 생성하면서 초기 작업을 수행하고 난 후에 개발자가 작성한 진입점 코드를 수행한답니다.

컴퓨터 CPU에는 수행할 코드 주소를 기억하는 PC(프로그램 카운터) 레지스터(CPU 내부의 데이터 기억 장치)가 있어요.
CPU에서는 PC 레지스터에 있는 코드를 디코딩하여 수행할 명령어와 데이터를 분리하는 작업을 선행하죠.
그리고 ALU에서 실제 작업을 처리해요.
ALU(Arithmetic Logic Unit, 산술 논리 처리 장치)는 산술 논리를 처리하는 장치예요.
그리고 ALU에서 처리한 결과를 범용 레지스터(데이터나 메모리 주소 등을 기억할 수 있는 레지스터)에 출력해요.
이러한 작업이 끝나면 PC 레지스터의 코드 주소를 다음 주소로 증가시켜 같은 작업을 반복 수행한답니다.

따라서 프로그램에 작성한 코드는 대부분의 구문은 작성한 순서로 수행해요.
하지만 선택문이나 함수 호출문은 수행할 코드 주소를 기억하는 PC 레지스터의 값을 직접 변경하는 작업을 수행해요.
이렇게 PC 레지스터 값을 직접 변경하는 구문을 분기문이라 불러요.
특히 함수 이름은 함수 정의문에 작성한 코드의 시작 메모리 주소를 의미하여 배열 이름처럼 포인터 상수로 취급한답니다.


[C언어 무료 동영상 강의] 53. 프로그램 생명 주기, 54. 프로세스 메모리 구조, 55. 프로그램 동작 원리