Dog foot print

[C-Architecture] cpu의 내부구성 요소 본문

컴퓨터 구조

[C-Architecture] cpu의 내부구성 요소

개 발자국 2019. 9. 23. 01:04

 

 

cpu는 프로그램에 필요한 연산을 수행하고 필요한 연산에 따라 다른 장치들에게 명령을 내리는 장치이다. 이 cpu는 명령어 인출명령어 실행 작업을 반복하며 명령어를 해독하고 , 명령어에 맞게 메모리에서 데이터를 가져온 다음 데이터를 가공하여 저장한다. 

 

CPU의 내부구조

위에 있는 작은 cpu의 뚜껑을 열어보면 다음과 같이 생겼다. 

 

cpu 내부 중간에 있는 것이 cpu 코어이다. 

 

저 작은 cpu안에 산술을 하는 장치와 레지스터, 제어유니트가 있는데, 정말 작은 모듈들이라 사진은 없다. 

 

산술논리연산장치(Arithmetic and Logical Unit)

 

줄여서 ALU라고 불리는 이것은 각종 산술(+ - * /)과 논리연산(and, or, nor, xor등)을 수행하는 모듈이다. 

 

이 ALU는 여러 레지스터와 내부장치들로 이루어져있는데, 다음 링크된 블로그에서 자세히 설명하고 있다. 

 

레지스터(register)

 

임시적인 데이터 저장장치로써 액세스(접근) 속도가 가장 빠르다. 일반적으로 현재 수행중인 연산의 값을 저장하는 용도로 사용된다. 

 

그러나 레지스터는 비교적 큰 물리적 공간을 차지하기 때문에 많은 수의 레지스터들을 cpu 내부에 포함시킬 수 없고 제한적이다. 

 

레지스터에 대한 자세한 설명 링크

 

제어 유니트(control unit)

 

제어 유닛은 프로그램 코드를 해석하고 그것을 실행하는 제어 신호를 순차적을 발생하는 하드웨어 모듈이다. 

 

이 제어 유닛은 명령어에 실행에 필요한 각종 정보들의 전송 통로 방향을 지정해주고 cpu내부 요소들의 동작시간도 지정해준다. 

 

명령어 실행

 

명령어 사이클은 cpu가 한개의 명령어를 실행하는데 필요한 전체의 과정으로써 cpu에 전원이 공급되는 한 계속 반복된다. 

 

명령어 사이클은 인출 사이클(cpu가 기억장치로부터 명령어를 읽는 단계), 실행 사이클(명령어를 실행하는 단계)로 나뉜다.

 

이 명령어들을 읽기 위해서는 기억장치에 접근하여 명령어와 해당 데이터가 들어있는 주소를 알아야하기에 다향한 레지스터들이 쓰인다. 

 

프로그램카운터(program counter)

 

다음에 실행될 명령어의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정한다. 

 

누산기(Acumulator)

 

데이터를 일시적으로 저장하는 레지스터 . 중간 산술 논리 장치 결과가 저장도니다. 레지스터의 길이는 word(cpu가 한번에 처리할 수 있는 비트)와 같다. 

 

명령어 레지스터(instruction Register)

 

가장 최근에 인출된 op code가 저장되어 있는 레지스터

 

기억장치 레지스터(Memory address Register) 

 

일시적인 주소 저장 레지스터

 

기억장치 버퍼 레지스터(Memory buffer register)

 

기억장치에 쓰여질 데이터 혹은 메모리로부터 읽혀진 데이터를 저장하는 레지스터. 반드시 거쳐간다.

 

인출사이클

 

명령어를 기억장치로부터 가져오는 행위

 

 

실행 사이클

 

가져온 명령어를 바탕으로 명령어를 해독하고, 연산(산술 및 데이터 이동, 프로그램 제어 , 데이터 이동)들을 수행하는 과정

 

명령어는 op code와 offerland로 이루어져있다. 명령어를 자세히 알고 싶다면 이 링크를 따라가자

 

반응형
Comments