국내 컴퓨터 아키텍처 수업들은 대부분 헤네시 패터슨 형제의 영향을 받아 RISC 킹왕짱이라고 가르치는데,
우리 학교 전자과 명물 수업 중에 고급 디지털회로 설계 라고 있는데
거기서 마이크로프로그래밍을 (CISC 아키텍처 해심 아이디어) 가르침
개인적으로는 굉장히 독특한 경험이었다고 보는데
배워보면 왜 미개한지 알 수 있다
컴퓨터 아키텍처 보여주고 instruction decoder 보여주는데
decoder 가 또 하나의 컴퓨터 아키텍처임;
머하는 짓이지 라는 생각이 자동으로 든다
근데 x86 은 CISC 네..???
; return 0;
학부에서 CISC 가르치는거는 첨들어봤넹. 근디 x86도 내부적으로는 RISC로 처리하지 않나요. - dc App
내부적으로 RISC 로 처리한다는게 말장난임. 결국 인스트럭션은 CISC 인스트럭션인데 - return 0;
님이 고대였나? 명문대는 커리큘럼도 남다르네 ㄷㄷ 이게 대세다가 아니라 왜 대세인지 니들이 느껴보렴이라니
서망대 - return 0;
공부 고3때만큼 개빡세게 시킨다고 들었는데 강의 알차네 ㄷㄷ
요즘은 그 정도는 아님 - return 0;
x86은 디코더가 2스테이지여서 CISC를 RISC명령어로 쪼갠다음(그걸 마이크로코드라 하고) 그걸로 뒤에 파이프라인을 진행하는거임
글고 CISC도 장점 많음 명령어 길이 가변에 하나의 명령어가 복잡한 의미를 내포하고있으니깐 프로그램 당 명령어 수, 명령어 당 평균 바이트 수 자체도 작고 따라서 인스트럭션 캐쉬를 효율적으로 쓸수있음 인스트럭션/데이터 캐쉬 공유하는 L2 이상 캐쉬에서도 효율적이고
RISC로 쪼개는 이유는 CISC 명령어로 다이나믹 스케쥴링 하는거보다 효율적이고 딥 파이프라이닝에서 개별 회로 타이밍 맞추기 쉬워져서 클럭 높이기 더 쉬워지니깐 그렇고
마지막으로 RISC 방식 프로세서들도 마이크로코드는 씀 그냥 디코더 룩업 타임도 최적화 시킬수 있고 명령어에 문제있을경우 펌웨어패치하듯이 할수도있어서..
그냥 2스테이지 디코더(단순히 타이밍때문에 쪼개는거말고 마이크로코드 구현한) 회로를 짜보면 감이올거임
나도 OoO 정도는 알아... 요즘은 다 OoO 써서 RISC 나 CISC 나 별 차이 없고 - return 0;