개발/Assembly

RISC vs CISC 차이 - Processor

ensuta 2022. 2. 3. 20:25
728x90
반응형

RISC vs CISC 가 무엇일까?

기술의 발전으로 다양한 프로세서가 등장했다.

구분을 위해 연산 방식에 따라 분류할 때 주로

RISC 와 CISC 로 나눌 수 있다.

구조가 다르기 때문에 컴파일러도 다르다.

RISC 에는 ARM 이 대표격이며, CISC 에서는 AMD64 가 대표적이다.

CISC vs RISC
요약:

C(omplex)ISC 는 코드 단순/계산 복잡,단순처리

R(educed)ISC 는 코드 복잡/계산 단순,병렬처리

  CISC (복잡 명령어셋 컴퓨터) RISC (단순 명령어셋 컴퓨터)
1 하드웨어에서 주로 처리(Memory-to-Memory) 소프트웨어에서 주로 처리 (Register-to-Register)
2 멀티 클럭 동작 싱글 클럭 동작만
3 코드 용량 작음 코드 용량 큼
4 주소 지정 명령 종류 많음 주소 지정 명령 종류 적음
5 컴파일러 구조 단순 컴파일러 구조 복잡
6 슈퍼스칼라 불가능 슈퍼스칼라 가능
7 AMD64 등 ARM 등
  주로 데스크톱,랩탑 제품군에 사용 주로 임베디드 시스템, 개발 보드에 커스텀 되어 사용

 

코드로 보는 차이

어셈블리어(Assembly Language)는 기계어에 가까운 저급언어이다.

어셈블리로 CISC 와 RISC 프로세서 구조의 차이를 유추할 수 있다.

물론 여기에 쓰인 코드는 실제 사용되는 CPU 개발에 쓰이는 어셈블리 코드와는 다르게

매우 단순하고 고수준 추상화가 이루어진 것으로,

그저 CPU 연산과정을 이해하기 쉽게 하기 위해 만든 예시이다.

 

CISC

두 값을 별도의 레지스터에 로드하고
실행 단위에 피연산자를 입력 -> 제품을 실행 단위에 저장

MUTI 로 한줄 처리가 가능하다.

MULT 2:3, 5:2

RISC

반면 RISC는 간단한 명령어만 사용한다.

한 클럭 사이클 내에서 실행한다. 
따라서 "MULT" 명령 데이터를 이동하는 "LOAD"의 3가지 개별 명령으로 나눌 수 있다. 

메모리 뱅크에서 2의 곱을 찾는 레지스터 "PROD"로 

레지스터 내에 위치한 피연산자와 "STORE"는 

데이터를 이동 

메모리 뱅크에 등록

LOAD A, 2:3
LOAD B, 5:2
PROD A, B
STORE 2:3, A

또 차이점

CISC는 intel, AMD의 폭넓은 제품군 선택폭 제공과 통합된 아키텍쳐로 쉽게 프로그램 개발 환경이 통합되었다. 역사가 깊고 안정적인 유지 보수 지원이 좋다. 대부분의 대형 서버는 여전히 CISC 설계인 AMD64에서 작동 중이다.

많은 사람들이 하나의 아키텍쳐를 위해 수 많은 최적화 과정을 거치고 되었고 하드웨어와 소프트웨어 모두 수요/공급이 안정적이다.

 

RISC는 저전력/고효율의 설계를 할 수 있어 스마트폰, 임베디드 시스템에 매우 적극적으로 사용된 결과, 스마트폰을 비롯한 모바일 기기 시장의 점유율을 대부분 차지하였다. 하지만 고성능 제품군에서는 개발기간이 10년이 넘도록 큰 성과를 내지 못했지만 Apple 사에서 M1 코어를 출시하면서 저전력/고효율 중심의  CPU 설계에서 벗어나 고성능 CPU 설계에 본격적인 돌입을 하였다. RISC 연산 방식이 좀 더 성능면에서는 이득이므로 추후에는 AI 최적화 등의 과정을 거쳐 고성능 프로그래밍을 할 수 있을 것으로 기대되므로 전망이 좋다.

 

슈퍼 컴퓨터에서는 극한의 연산효율을 위해서 RISC 와 CISC에서 소프트웨어 단으로 처리하는 벡터연산을 직접하는 벡터 프로세서를 차용하여 RISC/CISC 같은 스칼라 프로세서를 조합하여 사용하고 있다. 주로 날씨 예측, CG를 이용한 유체 디자인, 각종 물리 실험 시뮬레이션에 사용된다.

반응형

'개발 > Assembly' 카테고리의 다른 글

UNIX 운영체제 System Call  (0) 2022.02.20
Hello World! 어셈블리 분석 - AMD64 어셈블리 기초  (3) 2022.02.09