[OS] CPU

귀찮Lee·2023년 3월 31일
0

Operating System

목록 보기
4/14

◎ CPU의 구성

  • 산술논리 연산장치 : 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산과 AND, OR 같은 논리 연산을 수행
  • 제어장치 : CPU에서 작업을 지시
  • 레지스터 : CPU 내에 데이터를 임시로 보관

◎ 명령어 실행 5단계

  1. IF (Instruction Fetch) : 명령어 인출
  2. ID (Instruction Decode) : 명령어 해독
  3. EXE (Execution) : 실행
  4. MEM (Memory) : 메모리로 이동
  5. WB (Write Back) : 쓰기 및 저장

◎ CPU의 동작

CPU의 명령어 처리 과정 (덧셈 처리 과정)

LOAD mem(100), register 2
LOAD mem(120), register 3
ADD register 5, register 2, register 3
MOVE register 5, mem(160)

  1. 메모리 100번지 내용을 register 2로 이동
  2. 메모리 120번지 내용을 register 3로 이동
    • R2, R3는 덧셈을 하기 전에 데이터를 임시로 보관하는 곳을 의미
  3. register 2, register 3 값을 더하라. 그리고 더한 값은 register 5에 임시 저장함
  4. register 5에 저장된 값을 메모리 160번지로 옮긴다.

LOAD 과정

LOAD mem(100), register 2
 ...

  1. 명령어 실행
    • 프로그램 카운터(PC)에는 실행해야 하는 코드의 행 번호가 저장되어 있다.
    • 1이 제어 장치에 전손되면 1행이 실행됨
    • 명령어 레지스터(IR)에는 LOAD가 탑재된다.
  2. 제어 신호 전송
    • 제어 장치가 명령어 레지스터(IR)에 있는 명령 LOAD를 해석
    • 메모리 100번지에 있는 데이터를 가져오라는 제어 신호를 보냄
  3. CPU로 데이터를 옮기기
    • 메모리 주소 레지스터에 100이 저장
    • "메모리 관리자"가 메모리 주소에 있는 100을 읽음
    • "메모리 관리자"가 메모리 주소 100번지에 저장된 값 2를 메모리 버퍼 레지스터(MER)로 보냄
      • 레지스터는 CPU가 관리하는 영역이기 때문에 메모리 관리자가 직접 숫자 2를 레지스터로 직접 옮길 수는 없다.
  4. 레지스터로 데이터 옮기기
    • "제어장치"가 메모리 버퍼 레지스터(MBR)에 있는 값을 레지스터로 올긺

분기문 처리가 있는 경우

if (D2 - D3 > 0)
    goto 100;
else
    goto 200;
  • 프로그램 상태 레지스터(PSR)에 D2 - D3의 결과를 임시로 저장했다가 해당 결돠를 제어장치에 알려주어 몇번 행으로 이동할지 결정
  • 프로그램 상태 레지스터(PSR)는 산술논리 연산장치(ALU)와 연결되어 연산 결과를 저장

◎ 주요 레지스터의 종류와 특징

  • 일반 레지스터

    일반 레지스터특징
    데이터 리제스터(DR)CPU가 명령을 처리하는데 필요한 데이터를 임시 저장
    주소 레지스터(AR)데이터 또는 명령어가 저장된 메모리의 주소를 저장
  • 특수 레지스터

    특수 레지스터특징
    프로그램 카운터(PC)다음에 실행할 명령어의 위치 (코드의 행 번호)를 저장
    명령어 레지스터(IR)현재 실행중인 명령어를 저장
    메모리 주소 레지스터(MAR)메모리 주소 관리자가 접근해야할 메모리의 주소를 저장
    메모리 버퍼 레지스터(MBR)메모리 관리자가 메모리에서 가져온 데이터를 임시로 저장
    프로그램 상태 레지스터(PSR)연산 결과(양수, 음수 등)을 저장한다

◎ 버스

버스의 종류

  • 제어 버스
    • CPU가 메모리와 주변 장치에 제어 신호를 보내기 위해 사용
    • 메모리와 주변장치에서도 작업이 완료되거나 오류를 발생하면 제어 신호를 보냄 (양방향)
  • 주소 버스
    • 메모리 주소 레지스터와 연결됨
    • 메모리나 주변장치에 데이터를 읽거나 쓸 때 위치 정보를 보내기 위해 사용 (단방향)
  • 데이터 버스
    • 메모리 버퍼 레지스터와 연결
    • 데이터의 이동이 양방향으로 이루어짐

버스의 대역폭

  • 워드(word) : 한 번에 전달할 수 있는 데이터의 최대 크기
    = CPU가 한번에 처리할 수 있는 데이터의 크기
  • 버스의 대역폭, 레지스터의 크기, 메모리에 한 번에 저장할 수 있는 데이터의 크기는 항상 같음
  • 예시
    • 32bit memory : 데이터를 읽거나 쓸 때 한번에 최대 32bit,
      레지스터의 크기 32bit, 버스의 대역폭도 32bit
profile
장비를 정지합니다.

0개의 댓글