리눅스 커널의 이해 책에서 CPU의 cr0 상태 레지스터 PE 비트를 설정하여 CPU를 리얼 모드에서 보호 모드로 전환한다.
라는 내용을 보고 CPU의 레지스터를 검색해 보았습니다.
CPU의 레지스터들은 Control Registers, Segment Registers, STATUS AND INSTRUCTION REGISTERS 이렇게 구성된다는 것을 알게 되었습니다.
CPU는 Control Registers, Segment Registers, STATUS AND INSTRUCTION REGISTERS 들을 어떻게 구분하여 CPU 레지스터에 저장하는 지 궁금합니다. 또 이 레지스터들은 어디에 위치하고 있나요?
또 이 레지스터들을 ARM의 범용 레지스터(r0~ r12, r13 sp, r14 lr, r15 pc, cpsr)와 매칭하여 생각해 보았는데 이해가 되질 않습니다.
ARM의 범용 레지스터(r0~ r12, r13 sp, r14 lr, r15 pc, cpsr)로 CPU의 레지스터들 Control Registers, Segment Registers, STATUS AND INSTRUCTION REGISTERS 을 어떻게 설명 할 수 있는지 알고 싶습니다.
참고 자료나 참고 홈페이지 알려주시면 감사하겠습니다.
.
CPU의 레지스터들은 Control Registers, Segment Registers, STATUS AND INSTRUCTION REGISTERS 이렇게 구성된다는 것을 알게 되었습니다.
- 정해진게 아니라 special registers, general registers로 나누기도 하고, data registers, control registers, status registers로 나누기도 하는등과 같이 나누기 나름입니다.
CPU는 Control Registers, Segment Registers, STATUS AND INSTRUCTION REGISTERS 들을 어떻게 구분하여 CPU 레지스터에 저장하는 지 궁금합니다. 또 이 레지스터들은 어디에 위치하고 있나요?
- logic상 물리적 혹은 논리적으로 구분되어 있고, ISA상 구분은 instruction registers라고 하는건 index로, status와 control registers는 주로 ISA상에 따로 지정하지 않고 특정 instruction이 access하는 구조로, segment registers는 index 또는 특정 instruction이 access하는 구조로 되어 있습니다. 일반적으록 그렇고 각 아키텍쳐마다 상이합니다.
데이터 저장하는 방식은 직전 설명이 어느정도 참고가 될겁니다.
마지막으로 위치하는 곳은 당연히 CPU 내부이겠죠. 이 질문의 의도가 무언지 잘 모르겠네요.
또 이 레지스터들을 ARM의 범용 레지스터(r0~ r12, r13 sp, r14 lr, r15 pc, cpsr)와 매칭하여 생각해 보았는데 이해가 되질 않습니다.
ARM의 범용 레지스터(r0~ r12, r13 sp, r14 lr, r15 pc, cpsr)로 CPU의 레지스터들 Control Registers, Segment Registers, STATUS AND INSTRUCTION REGISTERS 을 어떻게 설명 할 수 있는지 알고 싶습니다.
control : cp15 c0-c15
segment : n/a
status : cpsr
instruction : r0-r15
아키텍쳐 관련 책을 사서 보세요.