CISC & RISC

개념
CISC(Complex Instruction Set Computer)의 정의. 연산에 처리되는 복잡한 명령어들을 수백 개 이상 탑재하고 있는 프로세서. 마이크로 프로그래밍을 통해 사용자가 작성하는 고급언어에 각각 하나씩 기계어를 대응시킨 회로로 구성된, 중앙처리장치의 한 종류. RISC(Reduced Instruction Set Computer)의 정의. 복잡한 80%명령어를 제거하여 사용빈도가 높은 명령어 위주로 20%의 명령어를 H/W화하여 처리속도를 향상시킨 프로세서. 컴퓨터의 실행속도를 높이기 위해 복잡한 처리는 소프트웨어에게 맡기는 방법을 채택하여, 명령세트를 축소 설계한 컴퓨터

I. . Instruction Set의 개요
    가.  정의

  • Computer Hardware가 직접 해독∙실행이 가능한 명령어 집합

 

    나.  Instruction Set의 설계 목표

  • 효율적인 Implementation을 통해 속도 최적화
  • Instruction Field의 효율적 사용

 

    다.  Instruction Set 적용 분류 - Microprocessor

분류

내용

CISC

 Complex Instruction Set Computer

 전통적 Von Neumann 방식의 명령어 내장 방식

 컴퓨터가 지원하는 명령어가 많을수록 프로그램내의 Instruction count는 줄어듬

 명령어의 길이가 상이 함

 Micro programming control

RISC

 Reduced Instruction Set Computer

 자주 사용하지 않는 명령어 제거 및 단순화

 모든 명령어의 길이를 일정하게 만듬

 하나의 Cycle에 여러 명령어 수행

 Hardwired control

 

 

II. CPU의 명령어 처리 및 구성 방식, CISC & RISC의 개요.
    가. CISC(Complex Instruction Set Computer)의 정의.

  • 연산에 처리되는 복잡한 명령어들을 수백 개 이상 탑재하고 있는 프로세서
  • 마이크로 프로그래밍을 통해 사용자가 작성하는 고급언어에 각각 하나씩 기계어를 대응시킨 회로로 구성된, 중앙처리장치의 한 종류

 

    나. RISC(Reduced Instruction Set Computer)의 정의.

  • 복잡한 80%명령어를 제거하여 사용빈도가 높은 명령어 위주로 20%의 명령어를 H/W화하여 처리속도를 향상시킨 프로세서
  • 컴퓨터의 실행속도를 높이기 위해 복잡한 처리는 소프트웨어에게 맡기는 방법을 채택하여, 명령세트를 축소 설계한 컴퓨터

 

III. CISC와 RISC의 구성도 및 구성요소.
    가. RISC 및 CISC의 구조 및 명령처리 순서.

구분

RISC

CISC

 구성

 명령 처리 순서

 

    나. RISC 및 CISC의 구성요소

구분

상세 설명

 메모리

 주 기억장치

일반적으로 RAM을 말하며 프로그램의 실행 시 보조기억장치로부터 데이터를 읽어오는 역할을 한다.

 보조 기억장치

주기억장치를 보조하기 위한 역할로 데이터의 영구적인 저장이 주목적이며, 주로 사용되는 제품으로는 HDD, TAPE, ODD가 있다

 가상 기억장치

대부분 보조 기억장치로 주기억장치처럼 동작 할 수 있도록 하는, 가상 기억장치로

 Cache

 (CISC)

 L1 Cache

 (CISC)

CPU 내의 캐쉬 메모리로 고속의 속도와 높은 가격이 특징이며 주목적은 메모리와 CPU간의 병목현상의 해결

 L2 Cache(RISC)

CPU와 주기억장치 사이에 위치하는 캐쉬로 일반적으로 메인보드에 위치 하고 있으며 L1 캐쉬와 비교 시 낮은 성능(속도)와 낮은 가격을 형성하고 있으나 주기억장치와 비교 시 월등하게 높은 가격과 높은 성능을 가지고 있다.

 Cache

 (RISC)

 Data Cache

CPU의 데이터 처리를 위한 전용 캐쉬 메모리로 RISC의 경우 CISC와 비교하여 캐쉬의 용량과 성능이 더욱 뛰어 나며 이것은 CPU의 가격상승으로 연결된다.

 명령 Cache

CPU의 명령어 처리를 위한 전용 캐쉬 메모리로 RISC의 경우 파이프 라인 구조로 처리시 CISC와 비교 시 높은 성능의 향상 을 가져오게 된다.

데이터

경로

(BUS)

 내부, 외부, 데이터, 주소, 제어 BUS

데이터가 전송되는 경로를 뜻하며 쉬운 개념으로 회로의 전선으로 표현될 수 있다. 프로세스 내부의 처리는 내부 BUS가 처리하며 프로세서 밖의 처리는 외부 BUS가 처리하게 된다. 그 외에 데이터 BUS, 주소 BUS, 제어 BUS로 나눌 수 있다.

 

    다. CISC & RISC 비교

구분

CISC

RISC

 아키텍쳐

 히스토리

 대용량 컴퓨터를 중심으로 1960년대 중반부터 개발됨

 -32비트 아키텍쳐로 1950년대부터 개발됨

 -Load/store 구조

 -1995:코드압축 RISC 개발됨

 명령어구조

 복잡

 단순

 프로그램 코드

 사이즈

 소규모(130~140)

 큼(160~180

 성능

 낮음

 높음

 임베디드

 가능

 불가능

 약점

 -명령어구조와 하드웨어 복잡

 -64비트 아키텍쳐 개발 어려움

 -16비트 아키텍쳐 개발 어려움

 -낮은 효율성으로 64비트로 Migration 어려움

 

IV. 프로세서의 종류 구분.
    가. 데이터 버스 크기에 따른 분류

  • 데이터 버스의 크기에 따라 분류되며 대부분 아래와 같이 분류가 가능.

8비트

16비트

32비트

64비트

초소형의 시스템에 사용되며 소형의 Embedded 시스템에 많음

SBC(Single Board Computer)에서 많이 사용되며 중형/대형의 Embedded 시스템에서 사용

현재 많이 사용되는 PC용 CPU들이 주를 이루고 있음

서버용으로 제공되는 CPU들이 64bit BUS를 많이 사용함

 

    나. Byte ordering에 따른 분류

  • 메모리에 저장될 때 바이트의 순서에 따른 분류를 말하며 아래의 두 가지로 분류할 수 있다

항 목

Little Endian

Big Endian

분류 방법

하위 바이트의 값이 메모리에 먼저 표시되는 방식이며 메모리의 가장 높은 주소부터 데이터를 채워가는 방식

상위 바이트의 값이 메모리에 먼저 표시되는 방식이며 메모리의 가장 낮은 주소부터 데이터를 채워가는 방식

장점

산술 연산이 빠르다

가 독성이 뛰어나고 대소비교가 빠르다

제품

Intel X86계열

Sun, 모토로라 계열

 

    다. ISA(Instruction Set Architecture)의 복잡도에 따른 분류

  • 명령어 Set 구조에 따른 분류를 나타내며 CISC, RISC로 나눌 수 있다.

항 목

CISC

RISC

명령어

명령어 개수가 많고 그 길이가 다양 하며 실행사이클도 각각 다름

명령어 수가 적고 길이가 고정적, 워드와 데이터버스 크기가 동일,

실행사이클도 모두 동일

레지스터

소수레지스터

다중레지스터 사용 및 최적화

메모리

많은 명령어가 메모리를 참조

메모리는 Load, Store명령만 처리

파이프

라이닝

파이프라이닝 기법을 사용하기 어려움

파이프라이닝을 사용하기 쉽고 많이 사용, 슈퍼 스칼라

제어방식

마이크로 프로그래싱 제어

Hardwired control

컴파일러

컴파일러가 복잡함

컴파일작업 실행 시 RISC와 비교하여 Binary 코드의 길이가 짧다

단순한 컴파일러 구현 가능

컴파일작업 실행 시 CISC와 비교하여 Binary 코드의 길이가 길다

회로구성

복잡함

단순함

프로그램

비교적 적게 명령어를 사용하여 결과를 얻을 수 있음

명령어가 적고 단순하므로 많은 수의 명령어가 조합되어 사용

사용환경

호환성이 중요한 환경

단순한 명령이 반복적으로 많이 사용되고 빠르게 처리되는 환경

 

V. CISC와 RISC의 장점을 절충한 EISC
    가. EISC(Extendable Instruction Set Computer)의 정의

  • Embedded 프로세서용으로 개발된 RISC기반의 명령어 집합으로 RISC의 결성과 CISC의 확장 성을 동시에 가짐으로 장점을 절충한 형태의 프로세서

    나. EISC의 명령어 특징

항 목

내용 및 특징

명령어 필드 지정

RISC 프로세서는 명령어 지정에 있어서 고정필드 형태의 명령어를 사용하며 명령어 해독이 간편하지만 EISC프로세서는 그 명령어의 필드 지정이 매우 복잡하다. 복잡한 명령의 사용은 각각의 명령어에 따라 필요한 필드를 더 효율적으로 배정한 것이기 때문에 코드밀도가 높다

고정길이

명령어

가변길이 명령어인 CISC와 달리 EISC는 고정길이 명령어를 사용하고 있고 그에 따라 명령어 해석기의 구조가 간단하다.

즉시 데이터와 오프셋의 확장 EISC는 ISA수준에서 즉시 데이터의 확장을 지원하며, RISC와 달리 즉시 데이터의 값을 직접적으로 사용할 수 있게 하는 특수목적 레지스터와 명령어가 있다.
 

    다. 프로세서의 종류

  • EISC 프로세서의 종류는 ISA구성에 따라 SE(Simple EISC)와 AE(Advanced EISC)로 나뉜다

항 목

Simple EISC

Advanced EISC

코어

SE1608 / SE3208

AE32000C-Tiny/-Lucida/-Empress

프로세서

16Bit CPU / 32Bit CPU

32Bit CPU

파이프 라인

3Stage

3 Stage / 5 Stage / 9 Stage

 

VI. 병렬 명령처리가 가능한 병렬처리 컴퓨터, EPIC의 개요
    가. EPIC(Explicitly Parallel Instruction Computing)의 정의

  • 사용장의 컴파일러가 소스 코드로부터 병렬 성을 찾아내고 병렬처리용 기계어 코드를 생성하여 수행하는 방식
  • VLIW(Very Long Instruction Word) 방식에 기반을 둔 명령 처리 방식

 

    나. EPIC의 특징

  • 기계어 수준에서의 향상된 병렬화, 메모리 사용 시 줄어든 대기 시간
  • 최적화 된 리소스 사용으로 인한 프로그램 내 분기 문의 효율적인 처리
  • 향상된 실수 연산, 함수 처리 시 줄어 든 오버헤드
  • 장점: 다중운영체제지원, 인스트럭션 구조 간단, 작은 프로그램 사이즈, 성능우수, 저전력 소모, Embedded 시스템에 적합
  • 단점: 컴파일러에서 동시에 실행해야 할 2개 이상의 명령어를 명시적으로 표현해야 하므로 컴파일러 성능이 좋아야 함

 
    다. EPIC의 구성 및 비교

  •  EPIC의 구성

 

  • 명시적인 병렬화는 명령어를 다른 동작에 관계없이 처리 할 수 있는 경우에 컴파일러가 알려줌
  • EPIC과 타 방식의 비교

구분

CISC

RISC

EPIC

처리속도

1/3명령어/clock

1명령어/clock

2명령어이상/clock

등장시기

1980년대

1980년 후반

1990년대 초반

개요

최소명령어 길이

긴 명령어 길이

명령어 병렬처리

특징

CPU 구조 복잡

신뢰성 향상

명령어 수행

제품

X86계열

RS/6000 Alpha칩

HP IA-64

 

 

댓글