강의05 - kyagrd/introCS2018spring GitHub Wiki
명령어의 복잡도에 따른 CPU 아키텍처 분류
- CISC (예: x86 프로세서)
- RISC에 없는 명령어 지원. 예를 레지스터의 값과 주기억장치 메모리에 저장된 값을 더하는 연산이 x86과 같은 CISC에서는 하나의 명령어로 표현 가능하다. 이런 식의 레지스터와 메모리를 함께 대상으로 하는 연산을 지원하는 명령어가 있는 아키텍처를 "레지스터 메모리 아키텍처"(register memory architecture)라고도 부른다.
- RISC (예: arm 프로세서)
- CISC와 달리 모든 연산 명령은 레지스터에 있는 값들만을 대상으로 한다. 주기억장치 메모리에 저장된 내용으로 연산을 해야 할 때는 별도의 주기억장치 메모리에서 레지스터로 값을 불러오는 명령어를 먼저 사용해야 한다. 즉 레지스터의 값고 주기억장치 메모리에 저장된 값을 더하는 연산은 RISC에서는 하나의 명령어로 표현할 수 없다. 이런 식으로 레지스터에 대한 명렁어와 메모리에 대한 명령어를 구분해 놓은 아키텍처를 "로드/스토어 아키텍처"(load/store architecture)라고도 부른다.
스택 머신과 레지스터 머신 명령어 형태 비교
(예전에 다른학교 강의에서 만들어놓은 슬라이드 페이지 활용) http://slides.com/kyagrd/ca2016spring0310#/2/1
5장에 나오는 컴파일러와 인터프리터의 개념에 대해 CPU 명령어 등과 연관지어 설명한다.
JVM 바이트코드 예를 들어 설명하는 것도 좋겠다. 그 외에 링커, JIT 등도 설명.