5-2

BakJeonghyun·2022년 9월 28일
0

전공컴퓨터구조

목록 보기
7/13

명령어의 피연산자 수에 따라 0-주소,1-주소,2-주소,3-주소 명령어로 구분한다.

  • 0-주소 명령어는 명시적 피연산자가 없다.
    : 스택 컴퓨터에서 사용

  • 1-주소 명령어
    : 누산기 컴퓨터

  • 2,3-주소 명령어
    : 범용 레지스터 컴퓨터


  • 폰노이만 병목 - 트레픽 발생에 튀어나왔는지 설명하시려고 한다.

    • 병목 : 가는 병의 목에 비유. 특정한 요소에 의해 전체가 제한받는 상황.
    • CPU와 메모리 : 속도가 달라서 지연이 발생. 전체 시스템의 성능 저하가 생김.
    • 완화 방법 : 기억장치/ 스택 등
      -> 트래픽 발생량을 비교해볼 거임.
    • 가정
      • 메모리 주소 : 2바이트
        • 데이터 크기 : 4바이트
        • 연산부호 : 1바이트

  • 누산기 컴퓨터

    • 메모리-메모리 컴퓨터에 데이터 저장을 위해 추가한 레지스터가 누산기
    • 누산기는 묵시적 피연산자. CPU 내부에 데이터를 저장할 수 있는 유일한 레지스터(명시 필요 x)
    • 예) 전화기 재발신 버튼. 다시 번호를 누를 필요가 없다.
    • 명령어(연산부호) 1바이트, 8비트, 2^8
    • 데이터(메모리 주소) 2바이트, 16비트, 2^16
    • 메모리 용량 2^16 * 4
  • 누산기 컴퓨터
    : 1-주소 명령어 컴퓨터/ 명시적 피연산자 하나

    • LDA a : 메모리에 있는 데이터를 누산기로 가져와
    • MUL x : x를 가져와서 누산기에 있는 값과 곱해서 누산기에 저장
    • MUL x : x를 가져와서 누산기에 있는 값과 곱해서 누산기에 저장
    • STA y : 누산기에 있는 값을 메모리 y에 저장
    • MUL x : x를 가져와서 누산기에 있는 값과 곱해서 누산기에 저장
    • ADD c : 누산기에 있는 값과 c에서 가져온 값을 더해서 누산기에 저장
    • ADD y :누산기에 있는 값과 y에서 가져온 값을 더해서 누산기에 저장
    • STA y : 누산기에 있는 값을 메모리 y에 저장
    • 명령어 트래픽
      :
    • 데이터 트래픽
      :
    • 총 메모리 트래픽 : 63트래픽
      63 : X = 111 : 100
      -> X가 기존 대비 메모리 트래픽의 비율

  • 스택 컴퓨터

    • 스택을 사용하는 컴퓨터
    • 최상위 혹은 차상위 데이터를 사용. 이를 묵시적 피연산자로 사용.
    • PUSH : 메모리에서 스택으로 이동(넣기)
    • POP : 스택에서 메모리로 이통(빼기)
  • 스택 컴퓨터

    • 0-주소 명령어 컴퓨터
    • PUSH, POP할 때 빼고는 피연산자를 사용하지 않는다.
    • 아래에서부터 위로 쌓임.
    • 얘도 CPU에 있는 메모리 공간인가본데?????
  • PUSH, POP의 크기 : 3바이트

  • 기타 명령어 크기 : 1바이트(ONLY 연산부호, 피연산자 없음)

    • 명령어 트래픽 : 3x7 + 1x5
    • 데이터 트래픽 : 4x7(PUSH와 POP의 경우) + 0x4
    • 총 메모리 트래픽 : 54 바이트

  • 범용 레지스터
    : 레지스터를 여러 개 사용하겠다.
    : CPU 내부에 다수의 데이터를 임시로 저장하기 위함. 모든 레지스터의 접근 시간이 동일하다(스택은 안그렇다)
    : 누산기, 스택과 달리 레지스터가 명시적 피연산자로 사용한다. 데이터가 다수의 레지스터 중 하나에 저장되기 때문에 구분을 지어주기 위해서 레지스터 주소를 명시하는 것이다.
    : 피연산자의 수에 따라 2, 3-주소 명령어가 될 수 있다.
    • 2-주소 명령어 : 근원지 명령어중 하나를 목적지 명령어와 겸용.
    • 3-주소 명령어
    • 적재 저장 명령어 컴퓨터 : 적재와 저장을 할 때만 메모리에 접근할 수 있다.
    • 메모리-메모리 컴퓨터보다 명령어 길이가 짧다.
    • 추가 가정
      : 최대 2개의 피연산자를 사용한다.
      : 16개의 레지스터를 사용한다;
      : 적재 저장 명령어만 사용한다.
profile
I just got started a blog.

0개의 댓글