-
2015.01.13 프로세스, IPCLegacy/뇌자극 - WinSysProg 2015. 1. 13. 15:12728x90
Part 02. 프로세스와 IPC
16비트 짜리 8개의 레지스터로 디자인
1. 레지스터 디자인
r0
r1
r2
r3
r4
r5 ir(instruction registr)
r6 sp(stack pointer)
r7 lr(link register)
r8 pc(program counter)
2. 명령어 (구조 및 종류) 디자인
CPU구성형태(레지스터 구성형태)에 따라서 명령어 구조가 달리짐.
=> CPU가 달라지면 이에 따른 명령어 구조가 달라진다. (즉, 어셈블리 언어로 구현된 프로그램은 구조가 다른 CPU로 이식이 불가능하다.)
"레지스터 r1에 있는 값을 숫자 7을 더해서 레지스터 r2에 저장하라."
=> 덧셈, r1, r2, 7
1.어셈블리구성
2.메모리 로드(Load)
3.Fetch
4.Decode
5.Execution
"첫 번째 피연산자 위치에는 레지스터 이름이 와야 한다."
Q. 왜 연산결과를 레지스터에만 저장하도록 제한가는가! 메인 메모리에 직접 그 결과를 저장할 수 있도록, 피연산자로 메모리 주소가 오게끔 디자인할 수도 있는 것 아닌가?
A. 물론 메모리 주소가 오게끔 디자인할 수도 있다. 그러나 명령어 구조가 복잡해지고, 이에 따라 하드웨어 구성도 더불어 복잡해진다. 또한 명령어를 처리하는 데 걸리는 시간도 명령어 종류에 따라 다양해질 수 있다.(명령어 종류에 따라 처리되는 시간이 다양해지는 것은 단점)
RISC vs CISC(책에 있는 여기서 잠깐을 발췌하여 요약)
RISC(Reduced Instruction Set Computer)
CISC(Complex Instruction Set Computer)
인텔 16비트 CPU까지는 CISC 구조였음. CISC 방식은 명령어의 개수가 매우 다양함. 때문에 수십 줄에 걸쳐서 구현해야 하는 기능을 단 한 줄로 완성시킬 수 있으며, 필요에 따라 명령어 길이도 유동적이기 때문에 메모리를 효율적으로 사용할 수 있다는 장점도 지님.
하지만, 명령어 수가 많고, 그 크기가 일정하지 않기 때문에 CPU는 복잡해질 수밖에 없음. 이러한 복잡한 구조는 CPU의 성능 향상에 제한이 따름. 보다 높은 성능의 CPU를 디자인하기 위해서는 보다 단순한 CPU 구조가 필요.
이러한 요구사항을 충족시키는 것이 RISC 구조. CISC 구조가 CPU가 지니는 전체 명령어 중에 10% 정도밖에 사용하지 않는 데서 착안된 구조. 명령어 수를 대폭 줄이고, 명령어 길이를 일정하게 디자인해서 RISC 구조를 탄생시킴. 인텔 32비스, 64비트 CPU 등등 근래에는 임베디드 환경에서 사용되는 대부분의 CPU가 RISC 구조.
RISC가 높은 성능을 내는데 유리한 이유는, 클럭당 처리할 수 있는 명령어의 개수 때문이다. RISC는 명령어 길이가 동일하고 명령어를 처리하는 과정이 일정하기 때문에 클럭당 둘 이상의 명령어 처리가 가능하다(Pipelining이라는 기법을 사용) 이것이 성능 향상에 있어서 RISC 구조가 지니는 가장 큰 장점.
'Legacy > 뇌자극 - WinSysProg' 카테고리의 다른 글
2015.01.22 커널 오브젝트 Usage Count (0) 2015.01.21 2015.01.20 커널 오브젝트 (0) 2015.01.20 CommandPrmpt_Two.cpp (0) 2015.01.19 CommandPrmpt_One.cpp (0) 2015.01.19 2015.01.19 CreateProcess를 이용한 프로세스 생성 (0) 2015.01.19 2015.01.18 프로세스의 상태 변화 (0) 2015.01.18 2015.01.17 프로세스의 생성과 소멸 (0) 2015.01.17 2015.01.16 LOAD&STORE DIRECT INDIRECT 모드 (0) 2015.01.16 2014.12.23 Polymorphic 자료형 (0) 2014.12.23 2014.12.21 LPCTSTR LPTSTR (0) 2014.12.21