익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
RISC
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
* 상위 문서: [[중앙처리장치]] '''Reduced Instruction Set Computer; 축소 명령어 집합 컴퓨터; 단순 명령어 집합 컴퓨터''' CPU 명령어를 짧게 구성하여 속도 개선을 향상시키는 프로세서 설계 방식 == 개요 == [[정보처리기사]] 수준에선 아래 개요 내용만 암기해도 충분하므로, 더 자세하게 알고 싶은 경우 아래 내용 참고 *간단한 명령어의 집합으로 구성 *명령어들의 동작이 단순 *프로그램을 작성하는데 많은 명령어 사용 *모든 CISC명령은 RISC 명령 조합으로 만들어 낼 수 있다. *CISC명령어 하나 수행할 시간에 몇배의 명령을 실행 할 수 있다. *호환성 부족 *명령어 하나당 하나의 연산만을 수행 *'''대표적으로 ARM Architecture''' == 역사 == * IBM에서 1980년에 발표하고 MIPS를 창시한 컴퓨터과학자 데이비드 패터슨 교수등이 개념을 설계하고 RISC라고 명명 * 다만 명령어 수를 줄이는 방식의 프로세서 설계는 기존에도 있어 왔으며<ref>Fisher, Joseph A.; Faraboschi, Paolo; Young, Cliff (2005). 《Embedded Computing: A VLIW Approach to Architecture, Compilers and Tools》. 55쪽. ISBN <bdi>1558607668</bdi>.</ref>, 데이비드 패터슨 교수가 이를 체계적으로 정리했다고 볼 수 있음 == CISC의 문제와 RISC의 해결 방안 == === CISC의 문제 === 1980년대 지적된 CISC의 주요 문제 * '''명령어 길이가 가변 길이고 편차가 큼''' ** 각 명령어들의 실행 사이클이 다음(ex. A 명령어는 1사이클, B 명령어는 3사이클) ** 명령어를 인출할 때 언제가 명령어 종료 시점인지 알 수 없으며 다중 사이클이 소요되는 명령어를 그대로 파이프라인 처리를 할 경우 파이프라인 버블이 발생하여 처리효율 하락 * '''명령어 포맷 다양하고 복잡함''' ** 명령어 해석기에서 특정 내용을 액세스하려고 할 경우 그 명령어에 대한 인출과 해석이 완전이 끝나야 가능 * '''명령어에 레지스터 대상 연산과 메모리를 대상 연산이 혼재''' ** 메모리를 대상으로 한 연산의 경우 메모리 액세스 사이클의 손실이 정확히 얼마일지 알 수 없기 때문에 파이프라인의 정확한 운용이 어려워짐 * '''명령어의 구조가 어큐물레이터 구조를 유지''' ** 명령어가 2개의 레지스터·메모리만을 액세스 ** ex) a+b의 연산을 c에 따로 저장하지 못하고 b의 내용에 덮어쓰면서 b의 내용을 재활용하지 못하는 한계 * '''레지스터의 기능이 일정하지 못하고 특수기능이 포함된 경우가 많아 컴파일러의 복잡성을 증대''' * '''프로그램 코드와 데이터가 단일 캐시메모리 공간에 위치(폰노이만 구조)''' ** 메모리 동작 특성과 데이터의 메모리 동작 특성이 크게 다르다는 사실을 반영하지 못하여 효율 저하 * '''[[ROM]] 기반 마이크로코드 해석기의 매리트 저하''' ** ROM 기반 마이크로코드 해석기는 유연성이 떨어지지만 속도가 상대적으로 빠르다는 장점 ** 그러나 RAM 기술이 비약적으로 발달하면서 ROM의 속도차가 줄어들고 ROM의 장점 퇴색 === RISC 방식의 개선 === * '''명령어 길이를 16bit 혹은 32bit로 일정하게 정리''' ** 각 명령어들의 실행 사이클을 1사이클로 조정 ** 명령어 해석기는 무슨 명령어인지 별도로 판단할 필요 없이 16bit 혹은 32bit만큼 인출동작을 기계적으로 수행하면 되므로 명령어 해석기가 크게 단순화 ** 또한 1사이클에 1명령어가 정확하게 들어오는 것이 보장되면서 파이프라인 버블 발생 가능성이 감소 ** 마이크로프로세서보다 회로 디자인 비용이 크게 감소 * '''명령어 포맷을 규격화하여 명령어 해석기와 내부 컨트롤의 효율 증가''' ** ex) 소스 레지스터와 타겟 레지스터를 나타내는 플래그를 명령어 상의 특정 비트에 위치시킴으로서 명령어 해석기에서 명령 해석이 완전히 끝나기도 전에 소스 레지스터와 타겟 레지스터를 찾아서 선제적으로 동작시키는 것이 가능 * '''메모리 대상 연산과 레지스터 대상 연산을 분리''' ** 메모리를 대상으로 하는 load/store 연산과 레지스터를 대상으로 하는 mov 연산을 분리 ** 메모리 액세스 타이밍의 불확실성을 제거하고 파이프라인 효율 향상 ** ex) 필요한 값에 대한 load 동작을 메모리 레이턴시를 고려하여 몇 사이클 앞에서 선제적으로 실행하고 load 동작이 완료되자마자 연산을 수행하는 식으로 레이턴시를 감추는 방식을 사용 가능 * '''마이크로코드의 복잡한 연산기능은 컴파일러로 역할 이전''' ** 마이크로코드가 제외되면서 명령어 해석기가 hard-wired 회로로 구성되어 동작속도 증가 * '''어큐뮬레이터 구조를 폐지''' ** 한 개의 명령어는 2개의 소스 레지스터와 1개의 타겟 레지스터를 대상으로 동작 ** 예시) b=a+b에 종속된 구조에서 탈피하여 c=a+b 동작이 가능해짐 * '''레지스터는 기본적으로 일반목적레지스터(GPR)로 설계''' * '''발전된 폰노이만 구조인 하버드 구조 채용''' == RISC의 단점 == * '''단순화를 위해 코드밀도가 감소하여 같은 내용을 처리하는 데 더 많은 코드 용량이 필요''' ** 항상 16bit 혹은 32bit를 차지하는 고정 길이 명령어는 상황에 따라 8~32bit를 오가는 CISC의 가변 길이 명령어에 비해 코드 밀도 면에서 원천적으로 불리 ** 메모리를 대상으로 하는 연산 명령어의 경우 CISC에서는 1개 명령어로 표현 가능하지만 반면 RISC에서는 load-execute-store로 3개의 명령어가 필요 ** 마이크로코드로 한 줄로 구현된 CISC 명령어를 여러개의 RISC 명령어로 변환 필요 ** 평균적으로 같은 역할을 수행하는 RISC의 코드 길이가CISC에 비해 2배로 길어짐 * '''메모리를 소스 혹은 타겟으로 쓸 수 없게 되면서 그 역할을 대체해야 하는 더 많은 레지스터가 필요하게 됨''' * '''명령어 길이가 제약되면서 분기 명령의 점프 범위가 제약''' ** CISC에서는 분기 명령의 점프 범위를 단순히 코드 길이를 늘리는 것으로 해결 가능 ** RISC의 고정길이 명령어에선 불가 * '''호환성 부족''' ** 당시 CISC방식이던 x86이 대세이던 시절로, 기존 시스템과 호환되지 않는 새로운 프로세서는 치명적인 단점으로 작용 ** 당시 가장 인기있던 Microsoft Windows 구동 불가 == RISC 프로세서 == * '''MIPS 계열''' - 대부분의 SGI 컴퓨터, 플레이스테이션, 플레이스테이션 2, 닌텐도 64 등에 쓰임. * '''IBM 파워 계열''' - 대부분의 IBM 슈퍼컴퓨터, 메인프레임에 쓰임. * '''모토롤라와 IBM의 PowerPC 시리즈''' - 이전의 애플 매킨토시 컴퓨터, 엑스박스 360, 닌텐도 Wii, 플레이스테이션 3 등에 쓰임. * 썬 사의 SPARC와 UltraSPARC의 후기 기종. * '''휴렛 팩커드 사의 PA-RISC''' * '''DEC 알파''' * '''ARM 계열''' - 최신 팜 파일럿 PDA 시리즈. 게임보이 어드밴스, 닌텐도DS과 같은 닌텐도사의 소형 게임기 하드웨어. 한국 게임파크사의 GP32 하드웨어, 스마트폰, 태블릿 PC. == 참고 문헌 == * [https://q.fran.kr/문제/8127 국가공무원 9급 컴퓨터일반 1704 기출문제] * [https://q.fran.kr/문제/8488 정보처리기사 2018년 3회 기출문제] * [https://q.fran.kr/문제/8711 국가공무원 9급 컴퓨터일반 1904 기출문제] * [https://q.fran.kr/문제/10907 정보처리기사 2019년 2회 기출문제] * [https://q.fran.kr/문제/16657 워드프로세서 2020년 1회 기출문제] == 각주 == [[분류:컴퓨터 구조]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록