시작하기 앞서, 아래 모든 글은 책 시나공(2021)이 출처임을 밝힙니다.

 

 

1. 중앙처리 장치의 정의와 구성

  - 중앙처리장치란 ( cpu : Central Processing Unit ) 컴퓨터 시스템에 부착된 모든 장치 제어 & 명령

  - 제어장치 + 연산장치 + 레지스터


 

2. 제어장치 (Control Unit : Control Login Unit : 제어논리장치)

  - 컴퓨터에 있는 모든 장치 동작을 지시, 제어

  - 제어장치가 제어하는 과정 : 

 

  1. 주기억                                                 
  2. 명령레지스터(IR)에 명령 저장
  3. 해독기(Decoder)
  4. 번지해독기(간접주소를 직접주소로)
  5. 부호기(Encoder : 명령신호 생성)

1,2,3 => 인출단계 (Fetch)

4 => 간접단계 (Indirect)

5 => 실행단계 (Execute)

인터럽트단계 (Interrupt)

 

  - 제어장치가 명령하는 과정 : 

  1. 인출단계 (Fetch) : 주기억장치의 명령을 읽고 해석
  2. 간접단계 (Indirect) : 명령수행을 위해 간접주소의 경우 다시 주기억장치가서 명령어 찾아옴 (포인터 처럼 값이 아닌 주소를 담음 => 2번 참조한다는 특징)
  3. 실행단계 (Execute) : 해석한 명령의 실행
  4. 인터럽트단계 (Interrupt) : 복귀주소 저장, 제어순서를 인터럽트 프로그램의 첫번째 명령어로 옮기는 단계 => 아마, 프로그램 중간에 언제든 끼어들 수 있도록 준비하는 단계 같음 (뇌피셜)

  - 구성 : 프로그램카운터 (PC : 다음명령어 번지[주소] 기억), 명령레지스터(IR : 현재실행중인명령어기억), 부호기(제어신호 발생기), 명령어 해독기 (Decoder), 번지해독기 등으로 구성 


3. 연산장치 (Arithmetic & Logic Unit : ALU)

  - 제어창치 명령에 따라 실제로 연상 수행

  - 논리회로와 레지스터로 구성

  - 가산기 (덧셈 회로 : Adder), 보수기 (보충수[보수] 만들어주는 회로 : 뺄셈을 위함), 오버플로 검출기, 데이터레지스터, 시프트레지스터, 누산기 (Accumulator : AC : 논리, 산술 결과를 일시 저장)

  - 수행하는 연산에는 산술, 논리, 관계, 이동(Shift)


 

4. 레지스터

  - 메모리중 가장 빠름

  - 새로 저장된 내용만 기억 (기존 기억은 삭제)

  - 연산 속도 향상이 목적

  - 내용

 

  1. 프로그램 카운터(PC), 프로그램 계수기 : 다음 실행할 명령어 번지 기억 R (R은 레지스터 약자)
  2. 명령 레지스터(IR) : 현재 실행중인 명령 기억 R    => 여기까지 제어장치를 구성하는 R
  3. 누산기(AC) : 연산 결과 일시 저장(논리, 산술)
  4. 상태레지스터 (Status R), PSWR(Program Status Word R),  플래그 레지스터(Fleg R) : 시스템 내부의 순간순간 상태 정보를 PSW라고 함. 오버플로(기억용량초과상태), 언더플로(연산결과가 컴퓨터가 표현하기에 값이 너무 작은 상태), 인터럽트, 자리올림 등 PSW를 저장하고 있는 것을 PSWR이라고 하는데 이것들의 사용 목적은 ** 제어장치와 연산장치의 실행 순서를 제어하기 위함 
  5. 메모리 주소 레지스터 : 기억장치 번지 기억 R
  6. 메모리 버퍼 R : 기억장치 번지 정보들이 저장되는 R => 버퍼 R이라고도 부름. (속도차이 극복을 위한 것이 버퍼임을 기억)
  7. 인덱스 레지스터 : 반복연산 횟수를 세는 R
  8. 데이터 레지스터 : 연산에 사용*될* 데이터 기억 R
  9. 클릭펄스 (전기 신호 발생 주기 : Hz)에 이해 기억된 내용을 왼쪽 or 오른쪽으로 1Bit 씩 자리이동 시킴 (2배 길이 R이라고도 부름)

5. 마이크로프로세서

  - 제어 + 연산 + R 이 대규모집적회로칩(IC)에 내장된 것. 개인용 PC에서는 cpu로 활용되는 중

  - 설계방식에 따라 RISC(Reduced : 줄이다), CISC (Complex : 복잡하다)

 

* RISC 는 명령어 줄임(길이는 고정) -> 빠르고 전력 적게 필요, 레지스터는 많이 필요 -> 구성하기 복잡 => 빠른 이점을 살려 서버나 워크스테이션에 사용

* CISC 는 명령어를 많이 사용 (길이 또한 가변) -> 명령어가 많아 전력 많이 필요, 레지스터는 적게 필요 -> 구성하기 간편 => 프로그래밍이 쉽고 조금 느려도 괜찮은 가정용 PC에 사용

 

 

* 마이크로프로세서의 성능은 클럭 주파수(클럭펄스) + 내부 버스 (레스터간 통로의 크기[Bit단위])


기억하기

 

 

1. 논리회로, 오버플로검출기 같은 회로는 연산에 필요한 장치 => 연산장치와 관련이 있는 부품들 ( + 가산기, 누산기, 감산기)

2. 입*출력 장치 동작속도와 전자계산기 내부 동작속도를 맞추기 위해서 버퍼레지스터 (버퍼 메모리 레지스터)사용

3. PSW 는 Program Status Word의 약자로 시스템 상태를 나타내기 위함이다

4. 명령어 인출 절차는 명령어를 읽어 오기 위해 명령어 주소를 가져오는 것 부터 시작(프로그램카운터읽음), 주기억장치에서 읽어들임(이후 프로그램카운터 증가), 명령 레지스터에 옮김