2017-10-12 2 views

답변

4

아니요, 아니요. (그러나 "정상적인"CPU, 일종의 및 예.)

x86-64는 64 비트 정수 레지스터를 가진 64 비트 아키텍처이지만, only has 48-bit virtual address space (나중에 필요할 경우 64로 확장 가능). 포인터는 64 비트 정수이지만 상위 16 비트는 하위 48 비트의 부호 확장이어야합니다. 초기 구현 (AMD K8)은 40 비트 물리 주소 만 지원했습니다. page-table format allows up to 52-bit physical addresses, but current implementations only support 48-bit (256TiB of RAM).

32 비트 x86은 세그멘테이션과 페이징을 가지고 있으므로 cs, ss, ds, es, fs 및 gs 각각에서 4GiB를 처리 할 수 ​​있습니다. (이것은 매우 불편하여, 모든 주요 OS는 평평한 4GiB 메모리 공간을 사용합니다.)

대부분의 8 비트 CPU는 한 쌍의 8 비트 레지스터를 16 비트 포인터로 사용할 수 있습니다. AVR (32 비트 8 비트 레지스터를 갖춘 8 비트 RISC 마이크로 컨트롤러)은 여전히 ​​그렇습니다.

32 비트 또는 64 비트 아키텍처라는 용어는 꽤 흐릿합니다.. 레지스터 크기, 데이터 버스 너비, 포인터 너비를 의미합니까? 사람들 (때로는 마케팅 부서 포함)은 원하는대로 사물을 호출합니다. Skylake-avx512는 실행 유닛과 L1D 캐시 (벡터로드/저장) 사이에 512 비트 경로를 가지고 있습니다. 512 비트 SIMD 아키텍처입니까? 예, 그렇게 생각합니다. 또한 64 비트 아키텍처이기도합니다. AMD Ryzen은 256b AVX 명령어를 두 개의 128b 반으로 나눕니다. 256 비트 SIMD 아키텍처입니까? 물론, 왜. 구조적으로 레지스터 크기는 256b입니다. 또한 128b SIMD 아키텍처입니까? 예.


대부분의 최신 아키텍처는 가 바이트 주소 (어쩌면 DSP는? 등) 있지만, 일부는 워드 주소되어 있습니다. 각 주소는 전체 기계어 (예 : 일부 이상한 CPU에서는 36 비트) 일 수 있습니다. 이 경우 32 비트 주소는 단어 당 4GiB * 바이트의 주소 공간을 갖지만 많은 별도의 바이트로 사용하려면 + shift & 마스크를로드해야합니다.

관련 문제