CICS구조를 비교 모델로 삼아 RISC구조에 대해서 알아보자.
RISC(Reduced Instruction Set Computer) - 명령어가 축약된 컴퓨터
- 명령어 set이 매우 짧고 심플하다
- CISC에 비해서 레지스터의 수가 매우 많다 (CISC : 8~16, RISC : 32~520)
- 소프트웨어적인 기술의 중요성이 크다 (컴파일러의 역할 증가(레지스터 최적화))
- 명령어의 개수 : 60~100 (CISC : 200~300)
- 명령어의 크기 : 4 (CISC : 1 ~ 60)
- addressing mode : 1 (레지스터를 사용) (CISC : 4 ~ 22)
CISC(Complex Instruction Set Computer)가 나오게 된 이유, 장점
과거에는 소프트웨어보다 하드웨어 기술이 상대적으로 더 발달했었기 때문에 부족한 소프트웨어 기술을 하드웨어로 보완하고, 하드웨어를 제어하는 별도의 Instruction Set을 추가로 만들면서 CISC가 나오게 되었다.
- 컴파일러 작성이 쉬워짐
- 실행의 효율성 증가
- 상위 레벨 언어(HLL)를 보조해주는 기능도 많아짐
- 메모리를 적게 사용함
CISC를 보완한 RISC의 등장
- HLL을 보완하기 위해서 복잡한 하드웨어를 만드는 것은 비효율적임을 알아냄
- assignment, procedure call처럼 많이 사용되고 시간이 오래 걸리는 부분을 최적화시킬 수 있다면 효율적임을 알아냄
RISC의 특성, 장점
- Cycle당 하나의 명령을 가진다
- 매우 많아진 레지스터의 수 (메모리 접근이 줄어들어 속도가 빨라짐), 레지스터간의 동작이 많다
- 파이프라인 기법 사용
- addressing모드와 명령어가 매우 단순함
하지만 컴파일러는 복잡해진다
RISC의 중요한 부분인 레지스터에 대해서 더 알아보자
매개변수(%rsi, %rdi), 지역변수(%rcx, %rdx), return 값(%rax), 함수 스택의 위치(%rsp)를 레지스터에 할당
Window A는 함수의 Call/Return을 통해서 return 레지스터를 Window B의 Parameter로 넘겨주고 있다.
위 과정은 주로 원을 이루고 있고, 이를 Circular Buffer라고 한다.
A -> B -> C -> D까지 window가 이동했고, 다음 window인 E의 Parameter Register에 D의 return을 넘겨주려고 할 때, 만약 E의 pointer가 A window가 저장된 공간인 Saved window pointer 를 침범하게 된다면 interrupt가 발생하여 A window를 메모리로 save 하고 Buffer에서 내보낸다. 그리고 Saved window pointer는 B window의 시작점을 가리키게 될 것이고 E window를 Buffer에 안전하게 넣을 수 있을 것이다.
'CS > Computer Architecture' 카테고리의 다른 글
[컴퓨터 구조] 컴퓨터 시스템 개요 (2) | 2021.11.24 |
---|---|
[컴퓨터 구조] Addressing Mode (0) | 2021.06.12 |
[컴퓨터 구조] Instruction Set (0) | 2021.06.12 |
[컴퓨터 구조] Control Unit (0) | 2021.06.06 |
[컴퓨터 구조] ILP & Superscalar (0) | 2021.06.04 |