본문 바로가기
학교강의/컴퓨터구조

컴퓨터구조 6주차

by Fel.Forest 2024. 4. 25.

중앙처리장치

  • 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고, 명령을 실행하는 장치
  • 메모리에 저장된 값을 읽어 들이고, 해석하고, 실행하는 장치
  • 구성
    • 제어장치
    • 연산장치
    • 레지스터
  • 중앙처리장치의 성능을 나타내는 단위
    • MPS : 1초당 명형 실행 수 / 1백만
    • FLOPS : 1초당 부동소수점 연산 횟수
    • 클럭 속도(HZ) : CPU 동작 클럭 주파

연산장치(ALU)

  • 제어장치의 명려에 따라 실제로 연산을 수행하는 장치
  • 수행 연산
    • 산술
    • 논리
    • 관계
    • 이동(Shift) 
  • 연산 장치가 받아들이는 정보
    • ALU는 계산하는 부품
    • 계산에 필요한 재료 :
      • 피연산자 : 레지스터에서 받아드림
      • 수행할 연산 : 제어장치로 부터 수행할 연산을 알려주는 제어신호를 받아들임

  • 연산 장치가 내보내는 정보
    • 연산을 수행한 결과 : 특정 숫자나 문자, 메모리 주소
    • 바로 메모리에 저장되지 않고 일시적으로 레지스터에 저장 됨
    • 연산 결과에 대한 추가적인 상태 정보 : 플래그
  • 연산 장치의 구성 요소
    • 가산기
      • 2진수의 덧셈을 수행하는 회로
    • 보수기
      • 뺄셈의 수셈을 위해 입력된 값을 보수로 변화하는 회로
    • 누산기
      • 연산되 결과를 일시적으로 저장하는 레지스터
    • 데이터 레지스터
      • 연산에 사용될 데이터를 기억하는 레지스터
    • 상태 레지스터
      • 연산 중에 발생하는 여러 가지 상태 값을 기억하는 레지스터
      • 부호값, 오버플로, 언더플로 ,자리올림, 인터럽트 등
    • 인덱스 레지스터
      • 주소 변경을 위해 사용되는 레지스터

제어장치

  • 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치
  • 주기억장치에서 읽어 들인 명령어를 해독하여 해당하는 장치에게 제어신호를 보내 정확하게 수행하도록 지시

  • 제어장치가 받아들이는정보
    • 제어장치는 클럭 신호를 받아들임
      • 클럭 : 컴퓨터의 모든 부품을 일사불란하게 움직일 수 있게 하는 시간 단위
      • 클럭의 주기에 맞춰 한 레지스터에서 다른 레지스터로 데이터가 이동 되거나 AUL에서 연산이수행되거나, CPU가 메모리에 저장된 명령어를 읽어들인다.
    • 제어장치는 '해석해야 할 명령어'를 받아들입니다
      • CPU가 해석해야 할 명령어는 명령어 레지스터라는 특별한 레지스터에 저장된다.
      • 해석할 명령여를 받아들이고 해석한 뒤, 제어 신호를 발생시켜 컴퓨터 부품들에 수행해야 할 내용을 알려줌
    • 제어장치는 상태 레지스터 속 플래그 값을 받아들임
      • 플래그는 ALU 연산에 대한 추가적인 상태 정보
      • 제어장치는 플래그 값을 받아들이고 이를 참고하여 제어 신호를 발생시킴
    • 제어장치는 시스템 버스, 그 중에서 제어 버스로 전달된 제어 신로를 받아들임
      • 제어신호는 CPU뿐만 아니라 입출력장치를 비롯한 CPU외부 장치도 발생시킬수 있음
      • 제어장치는 제어 버스를 통해 외부로 부터 전달된 제어 신호를 받아들이기도 함
  • 제어장치가 내보내는 정보
    • CPU 외부에 전달하는 제어신호 
      • 제어 버스로 제어신호를 보냄
        • 메모리에 전달하는 제어신호 : 메모리에 저장된 값을 읽거나 메모리에 새로운 값을 쓰고싶을때
        • 입출력 장치에 전달하는 제어신호 : 입출력장치의 값을 읽거나 입출력 장치에 새로운 값을 쓰고 싶을때
    • CPU 내부에 절달하는 제어신호 : 
      • ALU에 전달하는 제어 신호
      • 레지스터에 전달하는 제어신호
      • ALU에 수행할 연산을 지시하기 위해, 레지스터에는 레지스타 간에 데이터를 이동시키거나 레지스터에 저장된 명령어를 해석하기 위해

레지스터

  • CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 소량의 임시 기억장소
  • 플립플롭 이나 래치들의 연결하여 구성
    • 플립플롭 : 기억장치를 구성하는 전자회로 : 1비트의 정보를 기억함
    • 래치 : 1비트 이상의 입력된 값을 다음 입력이 있기 전까지 그래도 유지하는 전자 회로
  • 레지스터는 메모리 중에서 속도가 가장 빠름 -> 비쌈
  • 종류
    • 프로그램 카운터 (PC)
      • 메모리에서 가져올 명령어의 주소, 즉 메모리에서 읽어 들일 명령어의 주소를 저장
    • 명령어 레지스터(IR)
      • 해석할 명령어 , 즉 방금 메모리에서 읽어 들인 명령어를 저장하는 레지스터
    • 메모리 주소 레지스터(MAR) 
      • 메모리의 주소를 저장하는 레지스터
      • CPU가 읽어 들이고자 하는 주소 값을 주소 버스로 보낼 때 메모리 주소 레지스터를 거침
    • 메모리 버퍼 레지스터
      • 메모리와 주고받을 값(데이터,명령어)을 저장하는 레지스터
    • 범용 레지스터
      • 다양하고 일반적인 상황에서 자유롭게 사용할 수 있는 레지스터
    • 플래그 레지스터 : 연산 결과 또는 CPU상태에 대한 부가적인 정보를 저장하는 레지스터

CPU내의 명령 실행 순서

CPU로 실행할 프로그램이 1000번지부터 1500번지 까지 저장되어 있다고 가정

  • CPU로실행할프로그램이1000번지부터1500번지까지저장되어있다고가정

프로그램을 처음부터 실행하기 위해 프로그램 카운터에는 1000이 저장, 이는 메모리에서 가져올 명령어가 1000 번지에 있다는 걸 의미

 

 

 

 

 

 

 

  • 프로그램을처음부터실행하기위해프로그램카운터에는1000이 저장
  • 이는메모리에서가져올명령어가1000번지에있다는의미

 

 

 

 

 

  • 1000번지를 읽어들이기 위해 버스로 1000번지를 내보내야함
  • 이를 위해 메로리 주소 레지스터에는 1000이 저장

 

 

 

 

 

 

  • '메모리 읽기' 제어 신호 -> 제어버스
  • 메모리 주소 레지스터 값 -> 데이터 버스
  • 두개의 값이 메모리로 보내짐

 

 

 

 

 

 

  • 메모리 1000번지에 저장된 값은 데이터 버스를 통해 메모리 버퍼 레지스터로 전달
  • 프로그램 카운터는 증가 되어 다음 명령어를 읽어들이 준비

 

 

 

 

 

 

  • 메모리 버퍼 레지스터에 저장된 값은 명령어 레지스터로 이동
  • 제어장치는 명령어 레지스터의 명령어를 해석하고 제어 신호를 발생

 

 

 

 

'학교강의 > 컴퓨터구조' 카테고리의 다른 글

컴퓨터구조 8주차  (0) 2024.05.03
컴퓨터구조 5주차  (1) 2024.04.25
7주차 컴퓨터구조  (0) 2024.04.25
컴퓨터구조 4주차  (1) 2024.03.29
3주차 컴구  (3) 2024.03.22