Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

Operand (자료부) 본문

Electronic Calculator Architecture

Operand (자료부)

d5ngs 2020. 7. 1. 05:20

3주소 명령어

  • 정의
    - Operand부가 세 개로 구성되는 명령어 형식

     OP Code

     Operand 1

     Operand 2

     Operand 3


  • 특징
    - 여러 개의 범용레지스터를 가진 컴퓨터에서 사용
    - 연산의 결과는 주로 Operand 1에 기록

  • 장점
    - 연산 시 원래의 자료를 파괴하지 않음
    - 다른 형식의 명령어 보다 프로그램 전체의 길이를 짧게 가능
    - 명령 인출을 위하여 주기억장치를 접근하는 횟수가 줄어듬

  • 단점
    - 명령어 한 개의 길이가 너무 김
    - 하나의 명령을 수행하기 위해 최소 4번의 기억장치 접근이 필요함



2주소 명령어

  • 정의
    - Operand부가 두 개로 구성되는 명령어 형식
    - 가장 일반적으로 사용되는 형식

     OP Code

     Operand 1

     Operand 2


  • 특징
    - 여러 개의 범용레지스터를 가진 컴퓨터에서 사용
    - 연산의 결과는 주로 Operand 1에 기록

  • 장점
    - 속도가 빠르고 기억 장소를 많이 차지하지 않음
    - 3주소 명령어에 비해 명령어 길이가 짧음
    - 계산 결과가 기억장치에 기억되고 중앙처리장치에도 남아 있어서 계산 결과를 시험할 필요가 있을 때 시간이 절약

  • 단점
    - 명령어 한 개의 길이가 너무 김
    - 하나의 명령을 수행하기 위해 최소 4번의 기억장치 접근이 필요함
    - 연산의 결과는 주로 Operand 1에 기록되므로 원래의 자료가 파괴된다.
    - 전체 프로그램의 길이가 길어짐



1주소 명령어

  • 정의
    - Operand부가 한 개로 구성되는 명령어 형식

     OP Code

     Operand 1


  • 특징
    - 누산기(AC)를 이용하여 명령어를 처리하므로 결과도 AC에 저장

  • 예시
    LDA A;            (메모리의 A값을 누산기에 저장)
    ADD B;            (메모리의 B값을 누산기에 더함 = A+B)
    MUL C;            (메모리의 C값을 누산기의 값과 곱하여 누산기에 저장 = (A+B)*C)
    STA D;            (누산기의 값을 메모리의 D에 저장)



0주소 명령어

  • 정의
    - Operand부 없이 OP Code부만으로 구성

     OP Code


  • 특징
    - 모든 연산은 Stack 메모리의 Stack Pointer가 가리키는 Operand를 이용하여 수행
    - 0주소 명령어의 모든 연산은 스택에 있는 자료를 이용하여 수행하기 때문에 Stack Machine이라고도 함
    - 스택에 기억된 데이터만을 이용하여 연산하므로 명령 수행시간이 짧음
    - 기억공간의 이용이 효율적
    - 스택에 연산자와 피연산자를 넣었다 꺼냈다 하기 때문에 원래의 자료가 남지 않음

  • 예시
    PUSH A            (메모리의 A값을 스택에 저장)
    PUSH B            (메모리의 B값을 스택에 저장)
    ADD                (스택의 최상위에서 차례대로 2개의 피연산자를 꺼내 덧셈을 수행하고 최상위에 저장)

    PUSH C            (메모리의 C값을 스택에 저장)
    MUL                (스택의 최상위에서 차례대로 2개의 피연산자를 꺼내 곱셈을 수행하고 최상위에 저장)

    POP D            (스택의 최상위에서 (A+B)*C를 꺼내 메모리의 D에 저장)



주소 설계 시 고려사항

  • 표현의 효율성
    - 빠르게 접근하고 주소 지정에 적은 비트수를 사용할 수 있도록 다양한 주소 모드를 사용

  • 사용의 편리성
    - 포인터, 프로그램 리로케이션 등의 편의를 제공

  • 주소공간과 기억공간의 독립성
    - 프로그램 상에서 사용한 주소를 변경 없이 실제 기억공간 내의 주소로 재배치할 수 있도록 서로 독립적이어야 함
    - 주소 공간
    "프로그램에서 사용하는 주소, 보조기억장치 내의 기억공간"
    - 기억 공간
    "주기억장치 내의 실제 기억공간"


주소지정방식의 종류

  • 암시적 주소지정방식 (Impiled Mode)
    - 명령 실행에 필요한 데이터의 위치를 지정하지 않고 누산기나 스택의 데이터를 묵시적으로 지정하여 사용
    Operand가 없는 명령이나 'PUSH R1'처럼 Operand가 1개인 명령어 형식에 사용

  • 즉시적 주소지정방식 (Immediate Mode)
    - 명령어 자체에 Operand를 내포하고 있는 방식
    - 별도의 기억장소를 액세스하지 않고 CPU에서 곧바로 자료를 이용할 수 있도록 실행 속도가 빠름
    - 명령어의 길이에 영향을 받으므로 표현할 수 있는 데이터 값의 범위가 제한적

  • 직접 주소지정방식 (Direct Mode)
    - Operand가 사용할 자료의 번지를 표현하고 있는 방식
    - 자료의 번지를 이용하여 실제 데이터가 기억된 기억장소에 직접 사상시킬 수 있음
    - 기억 공간이 2^n개인 Word인 메모리 시스템에서 주소를 표현하려면 n비트의 Operand부가 필요

  • 간접 주소지정방식 (Indirect Mode)
    - 명령어에 나타낼 주소가 명령어 내에서 데이터를 지정하기 위해 할당된 비트수로 나타낼 수 없을 때 사용
    - 명령의 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능
    - 명령어 내의 주소부에 실제 데이터가 저장된 장소의 번지를 가진 기억장소의 번지를 표현하므로, 최소한 주기억장치를 2번 이상 접근하여 데이터가 있는 기억장소에 도달

  • 계산에 의한 주소지정방식
    - Operand부와 특정 레지스터의 값이 더해져서 유효주소를 계산하는 방식
    - 전체 기억장치의 주소를 사용해야 하는 일반적인 주소지정방식에 비해 적은 수의 비트를 사용
    - 상대 주소지정방식 (명령어의 주소부분 + PC)
    - Base Register Mode (명령어의 주소부분 + Base Register)
    - Index Register Mode (명령어의 주소부분 + Index Register)


'Electronic Calculator Architecture' 카테고리의 다른 글

CPU 상태  (0) 2020.07.12
Micro Operation (마이크로 오퍼레이션)  (0) 2020.07.12
OP Code (연산자부)  (0) 2020.07.01
CPU 구성 요소  (0) 2020.06.21
자료 표현 코드  (0) 2020.06.21