8086 마이크로 프로세서의 세분화 이점은 무엇입니까? 세분화의 중요성을 느끼지 못합니다. 더 많은 메모리를 관리합니까?8086 마이크로 프로세서의 세분화 이점
답변
8086에서 사용되는 명령어 세트는 16 비트 명령어 세트입니다. 이것은 레지스터가 0x0000에서 0xFFFF 범위의 값만 저장할 수 있고 명령은 대부분 16 비트 연산 (16 비트 덧셈, 16 비트 빼기 등)을 수행했음을 의미합니다. 레지스터에 주소/포인터가 포함되어 있으면 최대 64KB의 주소 공간 (일부는 ROM 용, 일부는 RAM 용)으로 작업했을 것이며 당시 시장에 충분하지 않았습니다.
세그먼트 화는 16 비트 CPU가 더 큰 주소 공간을 지원할 수있게하는 방법이었습니다. 기본적으로 두 개의 16 비트 레지스터를 함께 사용하면 주소/포인터가 훨씬 커질 수 있습니다. 불행하게도 (아마도 "불필요한"CPU 버스에서 더 많은 주소 라인을 사용하는 데 드는 비용을 피하기 위해), 2 개의 16 비트 레지스터를 32 비트 주소로 사용하는 대신 Intel은 "address = segment * 16 + offset "20 비트 주소로 끝나면 8086에 1 MiB 주소 공간이 생깁니다.
나중에 (1980 년대 초반) "객체"(객체 지향 프로그래밍에서)가 하드웨어로 시행/제한되는 액세스 제어 및 제한을 제공 할 수있는 "보호 된 객체"쪽으로 밀어 넣었습니다. "가상 메모리"아이디어가 떠 다니고 있습니다. 이러한 아이디어는 불운 한 iAPX 432 CPU로 이어졌습니다. 8086이 이미 가지고 있던 세그먼트에 보호 (속성 및 제한)를 연결하여 80286과 함께 도입 된 "보호 모드"(및 80386에서 확장)를 가져 오는 아이디어에 이르게했습니다.
기본적으로; 세그먼트 (장점)의 원래 이유는 주소 공간을 늘리는 것이 었습니다 (32 비트 명령어 세트의 비용 등 없음). 보호 및 메모리 관리와 같은 작업은 이후에 다시 설치되었습니다 (그리고 페이징을 위해 버려지기 전에 소프트웨어에 의해 간신히 사용되었습니다).