문제

8 비트, 16 비트, 32 비트 및 64 비트 하드웨어 아키텍처 및 운영 체제가 있습니다. 그러나 42 비트 또는 69 비트는 아닙니다.

왜요? 2^N 비트를 더 나은 선택으로 만드는 것은 근본적인 것입니까, 아니면 기존 시스템과의 호환성에 관한 것입니까? (64 비트 레지스터가 2 개의 32 비트 포인터를 보유 할 수 있거나 32 비트 데이터 장치가 4 바이트를 보유 할 수있는 것이 편리합니다.)

도움이 되었습니까?

해결책

그것은 대부분 전통의 문제입니다. 항상 사실이 아닙니다. 예를 들어, 프로세서의 부동 소수점 유닛 (현대식 단위)에는 80 비트 레지스터가 있습니다. 그리고 13 비트 바이트 대신 8 비트 바이트를 갖도록 강요하는 것은 없습니다.

때때로 이것은 수학적 추론이 있습니다. 예를 들어, N 비트 바이트를 갖기로 결정하고 정수 곱하기를 원한다면 결과를 저장하려면 정확히 2n 비트가 필요합니다. 그런 다음 2N 비트 정수를 추가/빼기/곱하기를 원하며 이제 곱셈 결과를 저장하기위한 추가/뺄셈 결과 및 4N 비트 레지스터를 저장하기 위해 2N 비트 일반 목적 레지스터가 필요합니다.

다른 팁

http://en.wikipedia.org/wiki/word_%28computer_architecture%29#word_size_choice

다른 양의 메모리를 사용하여 데이터 값이 다른 정밀도로 저장됩니다. 일반적으로 사용되는 크기는 일반적으로 주소 해상도 단위의 2 배수 (바이트 또는 워드)입니다. 배열의 항목 색인을 항목의 주소로 변환하려면 곱셈이 아닌 시프트 작업 만 필요합니다. 경우에 따라이 관계는 또한 분할 작업의 사용을 피할 수 있습니다. 결과적으로 대부분의 최신 컴퓨터 디자인에는 바이트 크기의 2 배의 힘 인 워드 크기 (및 기타 오페라 크기)가 있습니다.

부분적으로, 그것은 해결의 문제입니다. 비트의 주소를 사용하면 최대 2^N 비트의 메모리를 해결할 수 있으며 하드웨어 설계자는이 기능의 대부분을 최대한 활용하는 것을 선호합니다. 따라서 3 비트를 사용하여 8 비트 버스 등을 해결할 수 있습니다 ...

존경 할 수 있습니다 PDP-10 36 비트였습니다.

많은 (대부분의?) 초기 미세 프로세서 CPU는 2의 힘이 아닌 단어 당 약간의 비트를 가지고 있습니다.

특히 Seymour Cray와 그의 팀은 두 가지 힘이없는 단어 크기와 주소 크기 (12 비트, 48 비트, 60 비트 등)를 가진 많은 영향력있는 기계를 구축했습니다.

놀랍게도 많은 초기 컴퓨터에는 36 비트 단어가 있었는데, 전적으로 인간이 손가락 10 개가 있다는 사실 때문입니다. Wikipedia "36 비트"기사에는 10 개의 손가락과 36 비트의 관계에 대한 자세한 내용이 있으며, 역사적으로 중요하지만 더 이상 인기있는 비트 크기에 대한 기사와의 링크는 대부분 2의 힘이 아닙니다.

나는 그것을 추측한다

(a) 7 비트 ASCII를 저장하는 데 약간 더 편리했기 때문에 8 비트 주소 지정된 메모리가 인기를 얻었습니다. 그리고 4 비트 BCD, 어색한 포장 또는 문자 당 여러 비트를 낭비하지 않고; 그리고 다른 메모리 너비는 큰 이점이 없었습니다.

(b) Stephen C. Steel이 지적한 바와 같이, 약간의 이점은 규모와 시장의 경제에 의해 곱해지고 있습니다. -새로운 디자인 등에 사용되는 분위기의 기억

(c) 이론적으로 더 넓은 버스 너비는 CPU를 더 빨리 만들었지 만, 전체 CPU를 단일 칩에 넣으면 버스 너비의 이전 멀티 파트 CPU 시스템보다 훨씬 저렴하고 약간 더 빠릅니다. 처음에는 4 비트 CPU를위한 충분한 트랜지스터가 거의 없었고 8 비트 CPU가있었습니다. 나중에 16 비트 CPU를위한 트랜지스터, 거대한 팡파르 및 "16 비트"마케팅 캠페인에 거의 충분한 트랜지스터가있었습니다. 24 비트 CPU를 기대할 때 바로 ...

(d) RISC 혁명이 강타했다. 처음 두 개의 RISC 칩은 32 비트였으며 어떤 이유로 든 사람들은 "더 많은 비트가 더 좋다"고 생각하도록 조절되어 있었다. 또한 IEEE 754-1985는 32 비트 및 64 비트 부동 소수점 번호로 표준화되었습니다. 24 비트 CPU가 있었지만 대부분의 사람들은 그 말을 들어 본 적이 없습니다.

(e) 소프트웨어 호환성 이유의 경우 제조업체는 64 비트 전면 버스 (예 : Intel Pentium 및 AMD K5 등)가있는 프로세서에서도 또는 4 비트 폭이있는 마더 보드에서도 32 비트 데이터베스의 환상을 유지했습니다. 버스 (LPC 버스).

메모리 시스템이 바이트 배수가되기를 원하므로 캐시가 바이트 배수가되기를 원합니다. 따라서 전체 시스템이 바이트 배수가되기를 원합니다.

HW 디자이너로 말하면, 일반적으로 CPU를 어떤 종류의 CPU 대 바이트 경계, 즉 8의 배수로 디자인하려고합니다. 그렇지 않으면 49 비트 시스템에 많은 어색한 회로를 추가하여 Mod-8 비트를 활용하도록해야합니다. 또는 여분의 비트를 무시하게됩니다.이 경우 16 비트 또는 더 넓은 시스템에서는 그렇지 않습니다.

다른 사람들이 지적했듯이, 초기에는 상황이 분명하지 않았습니다. 단어는 모든 종류의 홀수 크기로 나왔습니다.

그러나 8 비트 바이트를 표준화하려는 푸시는 메모리 칩 기술에 의해 주도되었습니다. 초기에는 많은 메모리 칩이 주소 당 1 비트로 구성되었습니다. N-bit 단어에 대한 메모리는 N 그룹에서 메모리 칩을 사용하여 구성되었습니다 (해당 주소 라인이 함께 묶여 있고 각 칩이 하나의 N- 비트 단어에 기여하는 단일 데이터 비트).

메모리 칩 밀도가 높아짐에 따라 제조업체는 여러 칩을 단일 패키지로 포장했습니다. 사용중인 가장 인기있는 단어 크기는 8 비트의 배수 였기 때문에 8 비트 메모리는 특히 인기가있었습니다. 이것은 또한 가장 저렴했습니다. 점점 더 많은 아키텍처가 8 비트 바이트 악 대차에 뛰어 들면서 8 비트 바이트를 사용하지 않은 메모리 칩의 가격 프리미엄이 점점 커졌습니다. 비슷한 인수는 8-> 16, 16-> 32, 32-> 64에서 움직임을 설명합니다.

여전히 24 비트 메모리가있는 시스템을 설계 할 수 있지만 메모리는 아마도 32 비트 메모리를 사용하는 비슷한 디자인보다 훨씬 비쌀 것입니다. 24 비트로 고착해야 할 이유가 없다면 대부분의 디자이너는 저렴하고 능력이있을 때 32 비트를 선택합니다.

한 번에 컴퓨터 단어 길이는 6 비트의 배수 인 경향이있었습니다. 컴퓨터는 일반적으로 소문자 문자를 지원하지 않고 6 비트 문자 세트를 사용했기 때문입니다.

IBM은 64 비트 단어가있는 로스 알라모스의 고성능 컴퓨터 인 The Stretch를 만들었습니다. 컴퓨터 메모리의 개별 비트를 직접 해결할 수있는 특이한 기능이 있었기 때문에 단어 길이가 2의 힘이되었습니다. 또한 더 확장 된 문자 세트가 있었으며, 이로 인해 수학적 기호 (소문자 외에)가 포함될 수있었습니다. 그들은 Colasl이라는 특별한 고급 언어로 사용되었습니다.

IBM이 매우 인기있는 시스템/360 메인 프레임과 함께 나왔을 때, 비트 주소 지정이 없었음에도 불구하고, 8 비트 바이트를 유지하여 주로 소수점 숫자에서 4 비트에서 포장 된 소수량을 효율적으로 저장할 수 있도록 유지했습니다. 그 기계는 매우 인기가 있었기 때문에 매우 영향력이 있었고 DEC의 PDP-11 컴퓨터는 16 비트 단어와 8 비트 문자로 설계되었습니다. PDP-11은 또한 최초의 진정한 리틀 엔디안 기계였으며 매우 인기 있고 영향력이있었습니다.

그러나 그것은 단지 패션을 따르는 것이 아닙니다. 8 비트 문자는 소문자 텍스트를 허용하고 컴퓨터가 저렴 해짐에 따라 워드 프로세싱에 쉽게 사용할 수 있다는 것이 가치가있었습니다. 그리고 스트레칭이 비트로 두 개의 크기의 힘을 가진 단어를 가질 수 있도록 비트를 쉽게 해결할 수있는 단어를 가지고있는 것처럼, 오늘날의 컴퓨터는 8의 두 배수로 된 단어를 가져야했습니다. 캐릭터를 쉽게 해결할 수 있도록 두 가지에서 세 번째 힘 자체).

여전히 6 개의 비트 문자를 사용한 경우 컴퓨터에는 24, 48 또는 96 비트 단어가있는 경향이 있습니다.

관련이 있지만 그 이유는 아니지만 바이트에 8 비트 IBM이 IBM 시스템/360 아키텍처를 조작 한 방식이기 때문입니다.

일반적인 이유는 바이너리로 비트를 숫자로 만들 수 있기 때문입니다. 이것은 꽤 많은 상황에서 유용합니다. 예를 들어, 비트 시프트 또는 회전 작업에서. 16 비트 값을 0 ~ 15 비트 이상으로 회전시킬 수 있습니다. 16 비트 이상 회전하려는 시도도 사소합니다. 이는 0 비트 이상 회전과 같습니다. 1027 비트 이상 회전은 3 비트 이상 회전과 같습니다. 일반적으로, 너비 w의 레지스터의 회전은 n 모듈로의 회전과 같으며, w가 2의 전력 일 때 "모듈로 W"조작은 사소한 일이다.

80286 이상의 80186, 8086, 8088 및 "실제 모드"및 이후 프로세서는 20 비트 세그먼트 메모리 주소 지정 시스템을 사용했습니다. 80286에는 24 개의 기본 주소 라인이 있었고 386과 나중에는 32 또는 64가있었습니다.

또 다른 카운터 예 : PIC16C8X 시리즈 마이크로 컨트롤러에는 14 비트 폭이 지침 세트가 있습니다.

바이트는 대부분 서양 세계의 인코딩과 관련이 있습니다. 단어는 주소 너비와 관련하여 인코딩하는 것과 관련이 없으므로 4에서 80까지의 등이 다릅니다.

나의 신뢰할 수있는 오래된 HP 32S 계산기는 12 비트였습니다.

주소를 위해 예약 된 공간은 항상 고정 된 수의 비트이기 때문입니다. 고정 된 주소 (또는 포인터) 크기를 정의한 후에는 최대한 활용하려면 저장할 수있는 가장 높은 숫자까지 모든 값을 사용해야합니다. 비트 (0 1)에서 얻을 수있는 가장 높은 숫자는 항상 2의 힘입니다.

여기에서 무언가를 찾을 수 있습니다. binary_numeral_system

ICL 1900은 모두 24 비트 (단어)였습니다. 많은 사람들이 이것을 기억하지 않습니다. 당신은 ??

우리는 PIC 마이크로 컨트롤러를보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top