컴퓨터 구조_1

김현우·2025년 1월 17일
0

02. Computer architecture

Instruction Execution Cycle

Step-by-Step Process

  1. Read a Line:
    • 명령어를 한 줄 읽어옴.
  2. Check Grammar:
    • OPcode: 연산자를 확인.
      • 지원 연산자: +, -, *, /, M (Move).
    • Operands: 두 개의 피연산자를 확인.
      • 형식:
        • operand1, operand2
        • Prefix: R (Register), 0X (Hexadecimal).
  3. Evaluate Operands:
    • 피연산자를 처리하여 실행 가능한 값으로 변환.
      • String → Number: 문자열 데이터를 숫자로 변환.
      • Register → Number: 레지스터에 저장된 값을 숫자로 변환.
  4. Do Calculation:
    • 계산을 수행하고 결과를 저장.
      • Result: 계산 결과를 R0 레지스터에 저장.
  5. Read the Next Line:
    • 다음 명령어를 읽어와 반복 수행.

Von Neumann Computer Architecture

components

  • 연산장치 (ALU):
    • 논리 연산 및 수리 연산을 수행하며, 명령어(OPCODE)와 데이터(OPRAND)로 구성된 명령어 세트를 처리.
  • 제어장치 (CU):
    • 프로그램 명령어를 해독, 처리 순서를 제어, 결과 저장 및 출력 관리.
    • 노스브리지: CPU, 메모리, 그래픽카드 등 제어.
    • 사우스브리지: 입출력 장치(마우스, 키보드 등) 제어.
  • 저장장치 (Memory):
    • 데이터를 저장하며 CPU 내 레지스터, RAM, 외부 메모리(하드디스크, SSD 등)로 구성.
  • 입력장치 (Input):
    • 사용자 명령을 입력하는 장치 (예: 키보드, 마우스).
  • 출력장치 (Output):
    • 처리 결과를 출력하는 장치 (예: 모니터, 프린터).

Key Features

  1. Concrete Realization of Turing Machine
    • 튜링 머신의 구체적인 구현으로, 범용 계산을 가능하게 함.
  2. Stored Program
    • 프로그램이 메모리에 저장됨.
    • 장점: 저장된 프로그램을 변경하면 컴퓨터의 동작을 바꿀 수 있음.
    • 새로운 알고리즘과 프로그램을 추가할 수 있어 이전에는 풀지 못했던 문제도 해결 가능.
  3. Sequential Execution
    • 명령어는 Instruction Pointer (IP) 또는 Program Counter (PC)를 이용해 순차적으로 실행됨.
    • Control Flow는 특정 명령어(branch, return)에 의해 변경될 수 있음.

Control Flow와 Basic Block

  • Sequential Control Flow:
    • 대부분의 명령어는 순차적으로 실행됨.
  • Change in Control Flow:
    • branch, return 등의 명령어로 제어 흐름이 변경될 수 있음.
  • Basic Block:
    • 분기 없이 순차적으로 실행되는 제어 흐름의 최소 단위.

Foundation of Instruction Execution Cycle

명령어 실행 과정은 다음과 같은 사이클로 이루어짐:

  1. Fetch: 메모리에서 다음 명령어를 가져옴.
  2. Decode: 명령어와 피연산자를 해석함.
  3. Evaluate Operands: 실행에 필요한 데이터를 준비함.
  4. Access Memory: 메모리에서 데이터를 읽거나 씀.
  5. Update Result: 계산을 수행하고 결과를 저장함.
  6. Update PC: 다음 명령어를 실행하기 위해 프로그램 카운터를 업데이트함.

Main Memory in ISA Computers

현대 ISA 컴퓨터는 DRAM (Dynamic Random Access Memory)를 주 메모리로 사용함.
Purpose: 프로그램과 데이터를 저장해 실행 가능하게 하며, 효율적이고 유연한 계산을 지원함.

Linux Computers와 Program Loading

  • 프로그램 실행 전, 운영체제(OS)는 프로그램 로딩을 수행함:
    • 하드 디스크나 SSD 같은 저장소에서 프로그램 코드와 데이터를 RAM으로 전송함.
    • 프로그램이 실행될 준비를 할 수 있도록 특정 메모리 주소에 배치함.

Implications of Von Neumann Architecture

  1. 컴퓨팅 유연성:

    • 메모리에 저장된 프로그램은 동적으로 업데이트되거나 교체될 수 있음.
    • 이 유연성을 통해 새로운 문제 해결이 가능해짐.
  2. 범용성:

    • 동일한 하드웨어로 다양한 작업을 수행할 수 있음.
  3. 한계점:

    • Von Neumann Bottleneck: CPU와 메모리 간 데이터 전송 속도가 제한되어 성능 저하가 발생할 수 있음.

Stack Machine (1980s)

  • Operation Based on Stack:

    • 모든 데이터와 프로그램이 스택에 푸쉬되고, 스택 기반으로 작동.
    • 스택 머신은 Postfix 표현(후위 표기법)으로 데이터를 정렬하여 간단한 명령어를 실행함.

Data-Flow Machine

  • Key Features
  1. Execution Based on Data Flow:
    • 명령어는 데이터의 의존성에 따라 실행됨.
    • 데이터 간 의존성이 없을 경우 병렬 처리 가능, 동시에 여러 작업 수행.
  2. Parallel Execution:
    • 데이터 의존성을 기반으로 하는 구조로, 효율적인 비순차적 실행을 지원.
  3. Hardware Complexity:
    • 명령어 스케줄링을 위한 복잡한 하드웨어 구성이 필요함.

profile
학생

0개의 댓글