Chapter2-1

윤강훈·2024년 10월 22일

Computer Architecture

목록 보기
3/11

Instruction Set Architecture(ISA)

  • Instruction Set Architecture(ISA), 즉 명령어 집합 구조는 다음과 같은 정의를 따릅니다.

    1. 주어진 하드웨어(프로세서)에서 실행할 수 있는 명령어의 집합
    2. 컴퓨터가 이해할 수 있는 언어
    3. 하드웨어와 소프트웨어 간의 인터페이스
    4. 프로그래머에게 보이는 시스템의 속성
  • 명령어 집합은 서로 다른 프로세서 간에 유사합니다.

    • 유사한 하드웨어 기술
    • 유사한 기본 원칙
    • 모든 컴퓨터가 제공해야하는 공통 기능 집합
    • 설계자의 공통 목표: 성능 극대화, 비용 및 에너지 최소화, 하드웨어와 컴파일러를 쉽게 구축할 수 있도록 함
  • 컴퓨터에 어떠한 존재하지만 명령어에 존재하지 않으면 사용자는 그 기능이 있더라도 사용할 수 없다.

Microarchitecture

  • 특정 설계 제약 및 목표에 따라 ISA를 구현
  • 구현은 사양을 만족하는 한 여러 가지가 가능
  • 소프트웨어에 노출되지 않고 수행되는 모든 것
    • Pipelining, Speculative execution, Memory access scheduling ...

CISC vs RISC

  • 두 수를 곱하는 명령어를 실행하고 싶습니다.

    • CISC
      1. MULT 2:3, 5:2 (메모리[2][3] 와 메모리[5][2]를 곱해서 메모리[2][3]에 저장)
    • RISC
      1. LOAD A, 2:3 (레지스터 A에 메모리[2][3]의 값 불러오기)
      2. LOAD B, 5:2 (레지스터 A에 메모리[5][2]의 값 불러오기)
      3. PROD A, B (레지스터 A, B 값을 곱해서 A에 저장)
      4. STORE 2:3, A (레지스터 A의 값을 메모리[2][3]에 저장)
  • 위에서 보듯이 CISC는 상대적으로 실행할 명령어의 수가 적기 때문에 IC에 강점을 가지고, RISC는 하나의 명령어가 가지는 사이클의 수가 적어 CPI에 강점을 가집니다.

CISC(Complex Instruction Set Computer)

  • 오래된 설계 아이디어
  • 복잡하고 가변 길이의 명령어
  • ISA 내에서 많은 명령어를 지원한다
  • 요구사항/필요를 충족하기 위해 새로운 명령어 추가(하위 호환성과도 연관)

장점

  • 어셈블리 프로그래밍을 훨씬 쉽게 만듦.
  • 컴파일러도 간단해짐.
  • 명령어 메모리 사용량도 감소

단점

  • CPU 설계가 어렵다.
  • 1000개 이상의 명령어, 각 명령어 길이 1~15바이트

RISC(Reduced Instruction Set Computer)

  • 간단하고 표준화된 명령어
  • 작은 명령어 집합 (약 200개의 명령어)로 각 명령어는 32bit(=4byte) 고정 길이
  • CISC 작업은 RISC 작업의 연쇄

장점

  • CPU 설계가 쉬움 -> power가 덜 들기 때문에 모바일에서 주로 사용
  • 작은 명령어 집합 -> 더 높은 클럭 속도

단점

  • 어셈블리어가 일반적으로 더 길어짐
  • 메모리 사용이 많음

Comparison Table

항목RISCCISC
Cycle per instruction싱글 사이클여러 사이클
Instructions per program작음
Emphasize for performanceCPI에서 강점IC에서 강점
Code size작음
Design소프트웨어 중심하드웨어 중심
Required memory사용량이 많다사용량이 적다
(CPU)Implementation complexity낮음->저렴함높음->비쌈
# of registers많음(빈 공간이 더 많기 때문)적음
Instruction적고 단순한 고정 길이의 명령어(~200개, 32bit)길고 복잡한 가변 길이의 명령어(1000개 이상, 1~15byte)
Pipelining쉬움(싱글 사이클)어려움
Addressing mode
Decoding
Code expansion어려움(최적화 문제가 발생 가능)쉬움
Power consumption낮음(임베디드에서 사용)높음(데스크탑 또는 서버에서 사용)
ExampleMIPS, ARM-family...Intel x86 CPUs, AMD CPUs

Questions

  1. Q: Why RISC have more registers than CISC?
    A: 간단한 명령어들 -> 구현하는 데에 있어서 복잡성이 낮음 -> CPU에 register를 넣을 물리적인 공간이 더 많음

  2. Q: Why CISC had tried to reduce the number of instructions?
    A: 명령어를 넣을 메모리의 공간이 적고, 메모리의 값이 비쌌기 때문

  3. Q: Which is more adequate for embedded systems? Why?
    A: RISC가 더 적절하다. 구현 복잡성이 더 낮기 때문에 값이 싸고, 저전력으로 만들 수 있다.

  4. Q: Which is easier to expand or add new operation?
    A: CISC가 더 쉽다. 새로운 명령어를 설계하고, 하드웨어 설계만 수정하면 되기 때문이다.

  5. Q: Which is faster? Why?
    A: RISC는 CPI를 중심으로, CISC는 IC를 중심으로 하기 성능 향상을 하기 때문에 어느 한 쪽이 더 빠르다고 할 수는 없다.

Encoding Byte Values

  • Byte = 8bits
    • Binary = 00000000(2) to 11111111(2)
    • Decimal = 0(10) to 255(10)
    • Hexadecimal = 00(16) to FF(16)
  • Three major number encodings
    • Unsigned: 양의 정수
    • Two's complement: 정수(signed)
    • Floating-point: 실수

What is word?

word는 프로세서의 명령어 집합이나 하드웨어에 의해 단위로 처리되는 고정 크기의 데이터 조각이다. -wikipedia

  • 워드는 단일 작업에서 실행되거나 작업 메모리로 전송될 수 있는 가장 큰 데이터 조각임.
  • 워드의 크기는 시스템에 따라 다르다.
  • 오늘날에는 32bit 또는 64bit의 워드가 일반적으로 사용되고 있다.
  • RISC-V에서는 word가 4bytes

Memory

  • 메모리는 바이트 주소 지정 배열이며 byte(8bit), half word(16bit), word(32bit), double word(64bit) 단위로 접근을 제공함

  • 메모리는 주소당 1byte(8bit)을 저장 -> 16진수로 나타내는 것이 유용함

  • word의 메모리 주소는 반드시 4의 배수여야함(word가 4byte이기 때문)

Endianness

  • Big Endian
    • MSB(Most Significant Byte)를 메모리의 가장 앞쪽 주소에 지정하는 방식

    • 인터넷 프로토콜과 같은 네트워크에서 사용

    • 0x12345678을 저장한다고 하면 아래의 표를 따름

      주소
      100012
      100134
      100256
      100378
  • Little Endian
    • LSB(Least Significant Byte)를 메모리의 가장 앞쪽 주소에 지정하는 방식

    • 더 작은 바이트 단위로 데이터를 처리할 때 사용

    • Intel, ARM, RISC-V에서 사용 (프로세서 아키텍쳐)

    • 0x12345678을 저장한다고 하면 아래의 표를 따름

      주소
      100078
      100156
      100234
      100312
    • 장점

      1. 단순하며 효율적: 작은 크기의 데이터 (8bit, 16bit)가 필요할 때 앞에서부터 빠르게 읽어올 수 있음
      2. 쉽게 확장 가능: 32bit에서 64bit으로 전환할 때 원래의 값은 유지하면서 상위 바이트만 추가하면 됨
      3. 레지스터간 변환이 불필요: Little Endian 방식은 메모리에서 레지스터로 데이터를 가져올 때 메모리 주소 순서와 레지스터 안의 바이트 순서가 자연스럽게 맞음

Type and Size of operands

profile
Just do it.

0개의 댓글