2.1 ISA (Instruction Set Architecture)

dev_bbie ·2022년 10월 12일
1

컴퓨터구조

목록 보기
4/9

ppt를 봐도 잘 뭔 소린가 싶어서 이 블로그 참고
-> 참고1 , 참고2 , 참고3, 참고3

1. ISA

Instruction set architecture 의 약자, 명령어 집합 구조

소프트웨어(프로그램)와 하드웨어(CPU) 사이의 인터페이스
-> Software 에서 Hardware 로 넘어가는 단계에서 중재자 역할을 해줌

  • 작성된 프로그램이 ISA의 규칙에 맞게 적절히 기계어로 번역이 되면 그것을 CPU가 읽고 해석해서 지시된 동작을 수행

    개발자들은 보통 high-level language로 코드를 짜면,
    컴파일러(high-level language → assembly language)와 어셈블러(assembly language → machine language)를 거쳐 low-level lanaguage로 번역되어야 한다. 
    이렇게 low-level language로 번역된 후에는 hw에게 명령을 내려줘야 하는데, 이 때 sw와 hw 사이를 연결해주는 것이 ISA이다.
  • ISA는 소프트웨어와 하드웨어가 서로 통신할 수 있게 해주는 "명령어들의 집합"

  • 하나의 CPU는 반드시 하나의 ISA를 사용

  • 프로그램이 동작 시 -> 컴파일러나 어셈블러도 해당 CPU가 사용하는 ISA에 맞춰 설계

  • ISA는 최하위 레벨의 프로그래밍 인터페이스로, 프로세서가 실행할 수 있는 모든 명령어들을 포함

2. Microarchitecture

ISA를 구현하는 방법을 Microarchitecture라고 한다.
-> 컴퓨터 아키텍쳐랑 구분하셈

ISA 아래에 있는 micro architecture는 micro processor가 사용하는 명령어 처리 방식이다. micro processor는 우리가 아는 CPU라고 생각하면 된다.(과거와 비교했을 때 상대적으로 사이즈가 작아져서 micro가 붙었다고 한다.) 따라서 micro architecture 역시 CPU architecture의 맥락으로 이해하면 된다.

CPU architecture의 종류로는 CISC와 RISC가 있다.

3. ISA 더 자세히

1) ISA as an ADT

ADT, 즉 추상 자료형이란 자료와 그 자료를 이용한 연산들의 집합을 의미한다.
스택을 예로 들면,

  • 자료 : 스택의 원소
  • 연산 : push()와 pop()등의 연산은 자료를 이용한 연산들에 해당함.

ISA는 하나의 추상 자료형으로 바라볼 수도 있다.
아래 그림은 ISA를 ADT로 나타낸 것이다.

  • 자료란 Registers & Memory 를 의미
  • 연산이란 Instruction을 의미한다. Instruction이 수행되고 나면 레지스터의 값과 메모리 상태가 변하는 것을 떠올리면 이해가 수월할 거 같다.

교재에는 없는 ppt(p8 ~ 12) 해당 ISA가 정의하는 연산(명령어)에 의해 상태(레지스터, 메모리)가 변화하는 그림이 있는데... 이건 음 직접 다 지워보고 한번 이해해보기~~!

2) RISC 와 CISC

개념설명 잘되어있음
장단점 잘써있음

CPU(중앙처리장치) 를 설계하는 방식이다.
CPU가 작동하려면 프로그램이 있어야 하고 명령어를 주입해서 설계를 한다.

-명령어가 H/W 적인 방식을 RISC라고 한다.
-명령어가 S/W 적인 방식을 CISC라고 한다.

▶ CISC

  • 가변 길이 명령어 형식
  • 인텔 대부분이 CISC
  • 왜 인텔은 명령어 구조도 복잡하고 길이도 제각각인 CISC를 계속 사용했을까? (-> 호환성이 좋다!)
  • 명령어 길이가 길어진다 = 싸이클도 많이 걸린다.
  • backward compatibility
CISC 내부에 갖추어진 모든 명령어들 중 불과 20%에 해당하는 명령어들만이 전체 80% 이상의 일을 처리한다. 따라서 CISC와 같이 필요한 모든 명령어 셋을 갖고 있는 것은 비효율적 -> 이를 극복하기 위해 등장한 것이 RISC

▶ RISC

  • 고정 길이 명령어 형식
  • Easier to design CPU
  • ARM, MIPS, RISC-V
  • Smaller instruction set -> higher clock speed
  • 하드웨어가 간단한 대신 소프트웨어가 크고 복잡해졌으며, 하위 호환성이 부족하다.

이 둘의 차이점 표(p16) 여기서 무조건 한문제 낸다고 했음
(특히, required memory, instruction, power comsumption 부분 잘 보기)

주말에 너가 할것 ->CISC 랑 RISC 완벽히 이해하기(질문 대답할 수 있을 만큼)


3. ISA Classification

(1) Storing Operand

  • Stack Architecture
  • Accumulator Architecture
  • Register-Memory Architectures
  • #of Registers
  • #of Operands

(2) # of Operhands

(3) Addressing Mode

  • Unit of Data
  • "Byte"
  • "Word"
  • Byte Order (Endianness)
  • Type of Addressing Mode

(4) Type & Size of Operhands

(5) Type of Opherations

와... 이 많은 걸... 내일 정리합세.. 오늘으느으느은... 여기까지.. 깨꼬닥..

profile
필요한 개발공부

0개의 댓글