[컴퓨터 구조] Accumulator란?

MyungHwan Kim·2022년 8월 11일
1

컴퓨터구조

목록 보기
7/12
post-thumbnail

01. Accumulator(가산기)

  • 덧셈을 하는 기기
  • 플립플롭(flip-flop) 구조에서 clear 라는 버튼 추가
  • data가 1이면 output이 1
  • 하지만, 만약 clear가 1이면 output은 무조건 0

    = 즉, clear가 1이면 data가 삭제

  • 8-bit adder와 8-bit latch 로 구성
  • 전체 흐름
    • 최종적으로 X + Y를 만들어야 함
    • 먼저 data-in에 X값을 넣어주면 반대편 data-in은 0이므로 8-bit adder를 통해 X + 0을 통해 data-out이 X가 된다.
    • data-out된 X는 다시 8-bit latch의 data-in으로 들어가 여기서 add가 눌러져 저장되었다가 data-out으로 X가 됨
    • 그리고 다시 8-bit adder로 들어간다.
    • 여기서 8-bit adder에 Y를 넣어주면 X + Y가 되어 data-out이 된다.
    • X + Y가 8-bit latch에 data-in이 되어 add를 통해 데이터가 저장되고 data-out으로 출력되며 다시 8-bit adder로 들어간다.
    • 만약 현재 X + Y 상태에서 I + J를 하고 싶다면 8-bit latch에서 add가 아닌 clear를 통해 data-out이 0이 된다.
    • 그리고 다시 8-bit adder에 0이 들어간다.

  • 전체 흐름을 통해 X + Y를 만들 때 X와 Y를 한 번에 넣는 것이 아니라 X를 먼저 넣고 Y를 넣어서 더하는 구조이다.
  • 흐름을 보면 축척되는 느낌이 있기 때문에 Accumulator라고 할 수 있음
  • 계산을 하다가 다른 계산을 하기 위해서는 clear라는 switch가 필요
  • Accumulator은 CPU 안에 들어가 있음
  • 위 흐름을 통해 X + Y를 할 때 X를 저장해둘 임시적인 공간 필요
  • 그래서 CPU 안에 여러가지 data 처리를 위한 임시적인 data 공간이 있음
  • 이 공간을 바로 Register

02. Register(레지스터)

  • CPU가 요청을 처리하는 데 필요한 데이터를 일시적으로 저장하는 기억장치
  • 하나의 데이터 32 bit data 또는 64 bit data 딱 하나의 data를 저장하는 공간으로 register가 여러 개가 있는 것
  • 처리 시간으로 1cycle

03. 참고

  • CPU 와 컴퓨터 안에는 Data를 저장할 수 있는 여러 공간들이 있다.
  • 최근 CPU에는 Register 외에도 Cache를 저장할 수 있는 공간들이 있다.
  • 이런 cache를 만든 이유
    • CPU가 RAM(메모리)에 접근했다가 돌아오는데 (예)200 cycle이라는 시간이 걸리기 때문
  • 처음에는 RAM에 저장함과 동시에 cache에 넣는다.
  • 그 후에는 RAM에 동일한 주소에 있는 Data를 가지고 올 때에는 CPU가 직접 RAM 에 직접 방문하지 않고 Register나 Cache에 먼저 확인
  • Memory 크기
    • Register, Cache < RAM
  • L1 Cache, L2 Cache, L3 Cache로 순서대로 2 cycle, 10 cycle, 40cycle 정도의 시간이 걸린다.
  • 위 L1, L2, L3 Cache에 Data가 없다면 RAM까지 접근했다 돌아온다.
  • CPU가 SSD나 HDD에서 Data를 가져오는 것은 굉장히 많은 시간이 걸린다.
    • 이유 : SSD나 HDD는 처리 시간이 cycle이라는 단위를 넘어서기 때문에

(예)

profile
Back-end 개발자가 되기 위한 개발 노트(Java)

0개의 댓글