워드 (컴퓨팅)
| 컴퓨터 아키텍처 비트 너비 |
|---|
| 비트 |
| 응용 프로그램 |
| 이진 부동소수점 정밀도 |
| 십진 부동소수점 정밀도 |
워드(word)는 프로세서의 명령어 집합이나 하드웨어에 의해 자연스러운 혹은 역사적인 데이터 단위로 취급되는 고정 크기의 데이터를 의미한다. 워드의 비트 수 또는 숫자(워드 크기, 워드 너비, 또는 워드 길이)[a]는 특정 프로세서 설계나 컴퓨터 구조의 중요한 특성이다.
워드 크기는 컴퓨터 구조와 동작의 여러 측면에 반영된다. 프로세서 내의 레지스터 대부분은 일반적으로 워드 크기이며, 많은(전부는 아닌) 아키텍처에서 한 번의 작업으로 주기억장치와 주고받을 수 있는 가장 큰 데이터 단위가 워드이다. 메모리 내의 위치를 지정하는 데 사용되는 가장 큰 가능한 주소 크기는 일반적으로 하드웨어 워드이다(여기서 "하드웨어 워드"란 다른 정의와 대비되는, 해당 프로세서의 전체 크기를 가진 자연스러운 워드를 의미한다).
초기 컴퓨터들 중 몇몇(그리고 일부 현대 컴퓨터)은 단순한 이진 대신 이진화 십진법을 사용하며, 일반적으로 10 또는 12 십진 자릿수의 워드 크기를 갖는다. 일부 초기 십진법 컴퓨터는 고정된 워드 길이가 아예 없기도 했다. 초기 이진 시스템은 6비트의 배수를 워드 길이로 사용하는 경향이 있었으며, 36비트 워드는 메인프레임 컴퓨터에서 특히 흔했다. ASCII의 도입으로 8비트의 배수를 워드 길이로 사용하는 시스템으로 이동하게 되었고, 1970년대에는 32비트나 64비트 프로세서로 넘어가기 전까지 16비트 머신이 대중적이었다.[1] 디지털 신호 처리 장치와 같은 특수 목적 설계는 4에서 80비트 사이의 어떠한 워드 길이를 가질 수도 있다.[1]
워드 크기는 이전 컴퓨터와의 하위 호환성으로 인해 예상과 다를 수 있다. 호환되는 여러 변종이나 프로세서 제품군이 공통적인 아키텍처와 명령어 집합을 공유하면서 워드 크기가 다른 경우, 해당 차이를 수용하기 위해 문서나 소프트웨어가 표기법상 복잡해질 수 있다(아래 크기 제품군 참조).
워드의 용도
[편집]컴퓨터의 구성 방식에 따라, 워드 크기 단위는 다음과 같은 용도로 사용될 수 있다.
- 고정 소수점 숫자
- 고정 소수점 연산, 일반적으로 정수 수치값을 담는 용도로, 하나 또는 여러 가지 크기로 제공될 수 있으나, 제공되는 크기 중 하나는 거의 항상 워드이다. 다른 크기가 존재한다면, 이는 워드 크기의 배수이거나 약수일 가능성이 높다. 작은 크기는 일반적으로 메모리를 효율적으로 사용하기 위해서만 사용되며, 프로세서로 로드될 때는 일반적으로 최소 워드 크기인 더 큰 저장소로 이동한다.
- 부동 소수점 숫자
- 부동 소수점 수치값을 담는 용도는 일반적으로 워드이거나 워드의 배수이다.
- 주소
- 메모리 주소를 담는 용도는 필요한 범위의 값을 표현할 수 있는 크기여야 하지만 과도하게 커서는 안 되므로, 종종 워드 크기가 사용되지만 워드 크기의 배수나 약수일 수도 있다.
- 레지스터
- 프로세서 레지스터는 정수, 부동 소수점 숫자, 주소 등 자신이 담는 데이터 유형에 적합한 크기로 설계된다. 많은 컴퓨터 아키텍처는 여러 표현의 데이터를 저장할 수 있는 범용 레지스터를 사용한다.
- 메모리-프로세서 전송
- 프로세서가 메모리 서브시스템에서 레지스터로 읽어오거나 레지스터의 값을 메모리에 쓸 때, 전송되는 데이터 양은 종종 워드 단위이다. 역사적으로 한 사이클에 전송할 수 있는 이 비트 양을 일부 환경(예: 불 감마 60)에서는 카테나(catena)라고 부르기도 했다.[2][3] 단순한 메모리 서브시스템에서는 워드가 메모리 데이터 버스를 통해 전송되며, 이 버스는 일반적으로 워드 또는 반(half) 워드의 너비를 가진다. CPU 캐시를 사용하는 메모리 서브시스템에서는 워드 단위 전송이 프로세서와 1차 캐시 사이에서 이루어지며, 더 낮은 메모리 계층 구조 수준에서는 일반적으로 더 큰 단위(워드 크기의 배수)의 전송이 사용된다.
- 주소 해석 단위
- 주어진 아키텍처에서 연속적인 주소 값은 거의[b] 항상 연속적인 메모리 단위를 지정하며, 이 단위를 주소 해석 단위라고 한다. 대부분의 컴퓨터에서 이 단위는 문자(예: 바이트) 또는 워드이다. (일부 컴퓨터는 비트 해상도를 사용하기도 했다.) 단위가 워드인 경우, 개별 문자에 접근하는 복잡성이 추가되는 대신 주어진 크기의 주소를 사용하여 더 많은 양의 메모리에 접근할 수 있다. 반면 단위가 바이트인 경우, 개별 문자를 주소 지정(즉, 메모리 작업 중에 선택)할 수 있다.
- 명령어
- 기계어 명령어는 일반적으로 아키텍처의 워드 크기이거나, RISC 아키텍처에서처럼 그 약수이거나, 혹은 약수인 "문자(char)" 크기의 배수이다. 명령어와 데이터는 일반적으로 동일한 메모리 서브시스템을 공유하기 때문에 이는 자연스러운 선택이다. 하버드 아키텍처에서는 명령어와 데이터가 서로 다른 메모리에 저장되므로 명령어와 데이터의 워드 크기가 관련될 필요가 없다. 예를 들어, 1ESS 전자 전화 교환기의 프로세서는 37비트 명령어와 23비트 데이터 워드를 가진다.
워드 크기 선택
[편집]컴퓨터 아키텍처를 설계할 때, 워드 크기를 선택하는 것은 상당히 중요하다. 특정 용도(예: 주소 지정)를 위해 특정 비트 그룹 크기를 권장하는 설계 고려 사항이 있으며, 이러한 고려 사항은 용도에 따라 다른 크기를 가리킨다. 그러나 설계의 경제성 측면에서는 하나의 크기, 혹은 주 크기의 배수나 약수(submultiples)로 이루어진 소수의 크기를 강하게 권장한다. 그 선호되는 크기가 아키텍처의 워드 크기가 된다.
문자 크기는 과거(가변 크기 문자 인코딩 이전)에 주소 해석 단위와 워드 크기 선택에 영향을 미치는 요소 중 하나였다. 1960년대 중반 이전에는 문자가 주로 6비트로 저장되었는데, 이는 최대 64개의 문자만 허용했기 때문에 알파벳이 대문자로 제한되었다. 워드 크기를 문자 크기의 배수로 하는 것이 시간과 공간 면에서 효율적이기 때문에, 이 시기의 워드 크기는 (이진법 컴퓨터에서) 대개 6비트의 배수였다. 당시 흔한 선택은 36비트 워드였으며, 이는 부동 소수점 형식의 수치적 특성에도 적합한 크기이다.
8비트 문자를 사용하고 소문자를 지원하는 IBM 시스템/360 설계가 도입된 이후, 문자(혹은 더 정확히 말하면 바이트)의 표준 크기는 8비트가 되었다. 그 이후의 워드 크기는 자연스럽게 8비트의 배수가 되었으며, 16비트, 32비트, 64비트가 흔히 사용된다.
가변 워드 길이 아키텍처
[편집]초기 기계 설계에는 가변 워드 길이라고 불리는 방식을 사용하는 것들이 포함되었다. 이러한 유형의 구성에서는 피연산자가 고정된 길이를 가지지 않는다. 기계와 명령어에 따라 길이는 카운트 필드, 구분 문자, 또는 예를 들어 플래그나 워드 마크라고 불리는 추가 비트에 의해 표시될 수 있다. 이러한 기계들은 종종 숫자를 표현하기 위해 4비트 자릿수의 이진화 십진법이나 6비트 문자를 사용한다. 이러한 부류의 기계에는 IBM 702, IBM 705, IBM 7080, IBM 7010, IBM 1400 시리즈, IBM 1620, RCA 301, RCA 3301, UNIVAC 1050 등이 포함된다.
이 기계들 대부분은 한 번에 하나의 메모리 단위로 작업하며, 각 명령어 또는 데이터가 여러 단위 길이이므로 각 명령어는 메모리에 접근하는 데만 여러 사이클이 소요된다. 이러한 기계들은 종종 이 때문에 매우 느리다. 예를 들어, IBM 1620 모델 I에서의 명령어 인출은 명령어의 12자리 숫자를 읽는 데만 8 사이클(160 μs)이 소요된다(IBM 1620 모델 II는 이를 6 사이클로, 혹은 명령어가 두 주소 필드를 모두 필요로 하지 않는 경우 4 사이클로 줄였다). 명령어 실행은 피연산자의 크기에 따라 가변적인 사이클 수를 소요한다.
워드, 비트 및 바이트 주소 지정
[편집]아키텍처의 메모리 모델은 워드 크기에 크게 영향을 받는다. 특히, 메모리 주소의 해상도, 즉 주소로 지정할 수 있는 가장 작은 단위는 종종 워드로 선택되었다. 이 접근 방식인 워드 주소 지정 가능 기계 방식에서는 1씩 차이 나는 주소 값이 인접한 메모리 워드를 가리킨다. 이는 거의 항상 워드(또는 다중 워드) 단위로 처리하는 기계에서는 자연스러우며, 명령어가 주소를 포함하기 위해 최소 크기의 필드를 사용할 수 있게 하여 더 작은 명령어 크기나 더 다양한 명령어를 허용할 수 있는 장점이 있다.
바이트 처리가 작업 부하의 중요한 부분을 차지할 때는, 주소 해석 단위로 워드보다는 바이트를 사용하는 것이 대개 더 유리하다. 1씩 차이 나는 주소 값이 메모리의 인접한 바이트를 가리킨다. 이는 문자열 내의 임의의 문자를 직접적으로 주소 지정할 수 있게 해준다. 워드를 여전히 주소 지정할 수 있지만, 사용되는 주소는 워드 해석 방식보다 몇 비트 더 필요하다. 이러한 구성에서 워드 크기는 문자 크기의 정수 배수여야 한다. 이 주소 지정 방식은 IBM 360에서 사용되었으며, 그 이후 설계된 기계들에서 가장 일반적인 접근 방식이 되었다.
작업 부하가 다양한 크기의 필드 처리를 포함할 때, 비트 단위로 주소 지정하는 것이 유리할 수 있다. 비트 주소 지정을 가진 기계는 프로그래머가 정의한 바이트 크기를 사용하는 명령어와 고정된 데이터 크기로 동작하는 명령어를 가질 수 있다. 예를 들어 IBM 7030 스트레치[4]에서는 부동 소수점 명령어가 워드만 주소 지정할 수 있는 반면, 정수 연산 명령어는 1~64비트의 필드 길이, 1~8비트의 바이트 크기, 0~127비트의 누산기 오프셋을 지정할 수 있다.
스토리지-투-스토리지(SS) 명령어가 있는 바이트 주소 지정 가능 기계에는 일반적으로 하나 이상의 바이트를 임의의 위치에서 다른 위치로 복사하는 이동 명령어가 있다. SS 명령어가 없는 바이트 지향(바이트 주소 지정 가능) 기계에서, 단일 바이트를 임의의 위치에서 다른 곳으로 이동하는 것은 일반적으로 다음과 같다.
- 소스 바이트를 로드(LOAD)
- 결과를 대상 바이트에 저장(STORE)
개별 바이트는 워드 지향 기계에서 두 가지 방법으로 접근할 수 있다. 바이트는 레지스터 내의 시프트 및 마스크 연산 조합으로 조작될 수 있다. 단일 바이트를 임의의 위치에서 다른 곳으로 이동하는 것은 다음과 같은 작업에 해당할 수 있다.
- 소스 바이트를 포함하는 워드를 로드(LOAD)
- 소스 워드를 시프트하여 원하는 바이트를 대상 워드의 올바른 위치에 정렬
- 소스 워드와 마스크를 AND 연산하여 원하는 비트를 제외한 모두를 0으로 만듦
- 대상 바이트를 포함하는 워드를 로드(LOAD)
- 대상 워드와 마스크를 AND 연산하여 대상 바이트를 0으로 만듦
- 소스 워드와 대상 워드가 포함된 레지스터를 OR 연산하여 소스 바이트를 삽입
- 결과를 다시 대상 위치에 저장(STORE)
또는 많은 워드 지향 기계가 레지스터나 메모리에 특수 바이트 포인터를 사용하는 명령어로 바이트 연산을 구현한다. 예를 들어, PDP-10 바이트 포인터는 비트 단위의 바이트 크기(다른 크기의 바이트에 접근 허용), 워드 내 바이트의 비트 위치, 데이터의 워드 주소를 포함했다. 명령어는 예를 들어 로드 및 입금(저장) 작업 시 포인터를 다음 바이트로 자동 조정할 수 있었다.
2의 거듭제곱
[편집]서로 다른 정밀도를 가진 데이터 값을 저장하기 위해 다양한 양의 메모리가 사용된다. 일반적으로 사용되는 크기는 대개 주소 해석 단위(바이트 또는 워드)의 2의 거듭제곱 배수이다. 배열 내 항목의 인덱스를 해당 항목의 메모리 주소 오프셋으로 변환하는 데 곱셈 대신 시프트 연산만 필요하게 된다. 경우에 따라 이러한 관계는 나눗셈 연산의 사용을 피할 수도 있다. 결과적으로, 대부분의 현대 컴퓨터 설계는 바이트 크기의 2의 거듭제곱 배수인 워드 크기(및 기타 피연산자 크기)를 가진다.
고정 워드 크기를 가진 구형 컴퓨터에 대한 문서들은 종종 메모리 크기를 바이트나 문자가 아닌 워드 단위로 표기한다. 문서는 때때로 SI 접두어를 올바르게 사용하기도 하고, 때로는 반올림하여 사용하기도 한다. 예를 들어 65536 워드를 의미하는 65 킬로워드(kW)가 있다. 또한 1024 워드(210)를 의미하는 킬로워드(kW)와 1,048,576 워드(220)를 의미하는 메가워드(MW)와 같이 잘못 사용하기도 한다. 8비트 바이트와 바이트 주소 지정 가능성이 표준화되면서, IEC 이진 접두어를 사용하는 경우가 일부 있기는 하지만, 메모리 크기를 1000이 아닌 1024의 거듭제곱으로 계산하여 바이트, 킬로바이트, 메가바이트 단위로 표기하는 것이 표준이 되었다.
크기 제품군
[편집]컴퓨터 설계가 더욱 복잡해짐에 따라, 아키텍처에 있어 단일 워드 크기의 중심적인 중요성은 감소했다. 더 뛰어난 하드웨어는 더 다양한 데이터 크기를 사용할 수 있지만, 시장의 힘은 프로세서 기능을 확장하면서도 하위 호환성을 유지하도록 압력을 가한다. 그 결과, 새로운 설계에서 중심 워드 크기였던 것이 하위 호환 설계에서는 원래 워드 크기에 대한 대체 크기로 공존해야 한다. 원래 워드 크기는 미래의 설계에서도 계속 사용 가능하며, 크기 제품군의 기초를 형성한다.
1970년대 중반, DEC은 VAX를 PDP-11의 16비트 후속 32비트 기계로 설계했다. 그들은 16비트 수량을 워드로, 32비트 수량을 롱워드(longword)로 불렀으며, 이 용어는 PDP-11에 사용된 것과 동일하다. 이는 메모리 주소 지정의 자연스러운 단위를 워드라고 부르고 워드의 절반인 수량을 하프워드(halfword)라고 부르던 초기 기계들과 대조적이다. 이 체계에 맞춰 VAX 쿼드워드(quadword)는 64비트이다. 그들은 64비트 DEC 알파에서도 이 16비트 워드/32비트 롱워드/64비트 쿼드워드 용어를 이어갔다.
다른 예로는 X86 제품군이 있는데, 세 가지 다른 워드 길이(16비트, 이후 32비트 및 64비트)의 프로세서가 출시되었으나 워드는 계속해서 16비트 수량을 지칭한다. 소프트웨어가 일상적으로 한 워드 길이에서 다음으로 이식됨에 따라, 일부 API 및 문서는 해당 소프트웨어가 컴파일되는 CPU의 전체 워드 길이보다 이전(따라서 더 짧은) 워드 길이를 정의하거나 참조한다. 또한 많은 프로그램에서 작은 숫자에 바이트가 사용되는 것과 유사하게, 더 큰 워드의 범위가 필요하지 않은 문맥(특히 스택 공간이나 캐시 메모리 공간을 상당히 절약할 수 있는 경우)에서는 더 짧은 워드(16 또는 32비트)가 사용될 수 있다. 예를 들어, 마이크로소프트의 윈도우 API는 API가 표준 워드 크기가 각각 32비트 또는 64비트인 32비트 또는 64비트 X86 프로세서에서 사용될 수 있음에도 불구하고, WORD를 16비트로 정의한다. 이러한 다른 크기의 워드를 포함하는 데이터 구조는 다음과 같이 지칭된다.
- WORD (16비트/2바이트)
- DWORD (32비트/4바이트)
- QWORD (64비트/8바이트)
이와 유사한 현상이 인텔의 X86 어셈블리어에서도 발생했다. 명령어 집합에서 다양한 크기(및 하위 호환성)를 지원하기 때문에, 일부 명령어 니모닉은 아키텍처의 원래 16비트 워드 크기를 기준으로 "더블-", "쿼드-" 또는 "더블-쿼드-"를 의미하는 "d" 또는 "q" 식별자를 가진다.
다른 워드 크기를 가진 예로 IBM IBM 시스템/360 제품군이 있다. IBM 시스템/360 아키텍처, IBM 시스템/370 아키텍처 및 IBM 시스템/390 아키텍처에는 8비트 바이트, 16비트 하프워드, 32비트 워드 및 64비트 더블워드가 있다. 해당 아키텍처 제품군의 64비트 구성원인 Z/아키텍처는 16비트 하프워드, 32비트 워드 및 64비트 더블워드를 계속 참조하며, 추가로 128비트 쿼드워드를 특징으로 한다.
일반적으로, 새 프로세서는 이전 프로세서와 이진 코드 호환성을 가지기 위해 이전 프로세서와 동일한 데이터 워드 길이와 가상 주소 너비를 사용해야 한다.
종종 소스 코드 호환성 및 소프트웨어 이식성을 염두에 두고 신중하게 작성된 소스 코드는 데이터 워드 길이나 주소 너비가 다른 프로세서 등 다양한 프로세서에서 실행되도록 재컴파일될 수 있다.
워드 크기 표
[편집]| 범례: bit: 비트, c: 문자, d: 십진 자릿수, w: 아키텍처의 워드 크기, n: 가변 크기, wm: 워드 마크[5][6] | |||||||
|---|---|---|---|---|---|---|---|
| 연도 | 컴퓨터 아키텍처 | 워드 크기 w | 정수 크기 | 부동 소수점 크기 | 명령어 크기 | 주소 해석 단위 | 문자 크기 |
| 1837 | 배비지 해석기관 |
50 d | w | — | 서로 다른 기능을 위해 5개의 다른 카드가 사용되었으며, 카드의 정확한 크기는 알려지지 않음. | w | — |
| 1941 | 주제 Z3 | 22 bit | — | w | 8 bit | w | — |
| 1942 | ABC | 50 bit | w | — | — | — | — |
| 1944 | 하버드 마크 I | 23 d | w | — | 24 bit | — | — |
| 1946 (1948) {1953} |
에니악 (패널 #16 포함[7]) {패널 #26 포함[8]} |
10 d | w, 2w (w) {w} |
— | — (2 d, 4 d, 6 d, 8 d) {2 d, 4 d, 6 d, 8 d} |
— — {w} |
— |
| 1948 | 맨체스터 베이비 | 32 bit | w | — | w | w | — |
| 1951 | 유니박 I | 12 d | w | — | 1⁄2w | w | 1 d |
| 1952 | IAS 머신 | 40 bit | w | — | 1⁄2w | w | 5 bit |
| 1952 | Fast Universal Digital Computer M-2 | 34 bit | w? | w | 34 bit = 4비트 연산 코드 + 3×10 비트 주소 | 10 bit | — |
| 1952 | IBM 701 | 36 bit | 1⁄2w, w | — | 1⁄2w | 1⁄2w, w | 6 bit |
| 1952 | UNIVAC 60 | n d | 1 d, ... 10 d | — | — | — | 2 d, 3 d |
| 1952 | ARRA I | 30 bit | w | — | w | w | 5 bit |
| 1953 | IBM 702 | n c | 0 c, ... 511 c | — | 5 c | c | 6 bit |
| 1953 | UNIVAC 120 | n d | 1 d, ... 10 d | — | — | — | 2 d, 3 d |
| 1953 | ARRA II | 30 bit | w | 2w | 1⁄2w | w | 5 bit |
| 1954 (1955) |
IBM 650 (w/IBM 653) |
10 d | w | — (w) |
w | w | 2 d |
| 1954 | IBM 704/IBM 709/IBM 7090 | 36 bit | w | w | w | w | 6 bit |
| 1954 | IBM 705 | n c | 0 c, ... 255 c | — | 5 c | c | 6 bit |
| 1954 | IBM NORC | 16 d | w | w, 2w | w | w | — |
| 1956 | IBM 305 | n d | 1 d, ... 100 d | — | 10 d | d | 1 d |
| 1956 | ARMAC | 34 bit | w | w | 1⁄2w | w | 5 bit, 6 bit |
| 1956 | LGP-30 | 31 bit | w | — | 16 bit | w | 6 bit |
| 1958 | UNIVAC II | 12 d | w | — | 1⁄2w | w | 1 d |
| 1958 | SAGE | 32 bit | 1⁄2w | — | w | w | 6 bit |
| 1958 | Autonetics Recomp II | 40 bit | w, 79 bit, 8 d, 15 d | 2w | 1⁄2w | 1⁄2w, w | 5 bit |
| 1958 | ZEBRA | 33 bit | w, 65 bit | 2w | w | w | 5 bit |
| 1958 | 세툰 | 6 트리트 (~9.5 비트)[c] | 최대 6 트라이트 | 최대 3 트라이트 | 4 트리트? | ||
| 1958 | Electrologica X1 | 27 bit | w | 2w | w | w | 5 bit, 6 bit |
| 1959 | IBM 1401 | n c | 1 c, ... | — | 1 c, 2 c, 4 c, 5 c, 7 c, 8 c | c | 6 bit + wm |
| 1959 (TBD) |
IBM 1620 | n d | 2 d, ... | — (4 d, ... 102 d) |
12 d | d | 2 d |
| 1960 | LARC | 12 d | w, 2w | w, 2w | w | w | 2 d |
| 1960 | CDC 1604 | 48 bit | w | w | 1⁄2w | w | 6 bit |
| 1960 | IBM 1410 | n c | 1 c, ... | — | 1 c, 2 c, 6 c, 7 c, 11 c, 12 c | c | 6 bit + wm |
| 1960 | IBM 7070 | 10 d[d] | w, 1-9 d | w | w | w, d | 2 d |
| 1960 | PDP-1 | 18 bit | w | — | w | w | 6 bit |
| 1960 | Elliott 803 | 39 bit | |||||
| 1961 | IBM 7030 (Stretch) |
64 bit | 1 bit, ... 64 bit, 1 d, ... 16 d |
w | 1⁄2w, w | 비트 (정수), 1⁄2w (분기), w (부동 소수점) |
1 bit, ... 8 bit |
| 1961 | IBM 7080 | n c | 0 c, ... 255 c | — | 5 c | c | 6 bit |
| 1962 | GE-6xx | 36 bit | w, 2 w | w, 2 w, 80 bit | w | w | 6 bit, 9 bit |
| 1962 | UNIVAC III | 25 bit | w, 2w, 3w, 4w, 6 d, 12 d | — | w | w | 6 bit |
| 1962 | Autonetics D-17B 미닛맨 I 가이던스 컴퓨터 |
27 bit | 11 bit, 24 bit | — | 24 bit | w | — |
| 1962 | UNIVAC 1107 | 36 bit | 1⁄6w, 1⁄3w, 1⁄2w, w | w | w | w | 6 bit |
| 1962 | IBM 7010 | n c | 1 c, ... | — | 1 c, 2 c, 6 c, 7 c, 11 c, 12 c | c | 6 b + wm |
| 1962 | IBM 7094/IBM 7040/IBM 7044 | 36 bit | w | w, 2w | w | w | 6 bit |
| 1962 | SDS 9 시리즈 | 24 bit | w | 2w | w | w | |
| 1963 (1966) |
아폴로 가이던스 컴퓨터 | 15 bit | w | — | w, 2w | w | — |
| 1963 | Saturn Launch Vehicle Digital Computer | 26 bit | w | — | 13 bit | w | — |
| 1964/ 1966 |
PDP-6/PDP-10 | 36 bit | w | w, 2 w | w | w | 6 bit 7 bit (일반적) 9 bit |
| 1964 | Titan | 48 bit | w | w | w | w | w |
| 1964 | CDC 6600 | 60 bit | w | w | 1⁄4w, 1⁄2w | w | 6 bit |
| 1964 | Autonetics D-37C 미닛맨 II 가이던스 컴퓨터 |
27 bit | 11 bit, 24 bit | — | 24 bit | w | 4 bit, 5 bit |
| 1965 | Gemini Guidance Computer | 39 bit | 26 bit | — | 13 bit | 13 bit, 26 | —비트 |
| 1965 | IBM 1130 | 16 bit | w, 2w | 2w, 3w | w, 2w | w | 8 bit |
| 1965 | IBM 시스템/360 | 32 bit | 1⁄2w, w, 1 d, ... 16 d |
w, 2w | 1⁄2w, w, 11⁄2w | 8 bit | 8 bit |
| 1965 | UNIVAC 1108 및 후속작 | 36 bit | 1⁄6w, 1⁄4w, 1⁄3w, 1⁄2w, w, 2w | w, 2w | w | w | 6 bit, 9 bit |
| 1965 | PDP-8 | 12 bit | w | — | w | w | 8 bit |
| 1965 | Electrologica X8 | 27 bit | w | 2w | w | w | 6 bit, 7 bit |
| 1966 | SDS 시그마 7 | 32 bit | 1⁄2w, w | w, 2w | w | 8 bit | 8 bit |
| 1969 | Data General NOVA | 16 bit | w | 2w, 4w | w | w | w |
| 1969 | Four-Phase Systems AL1 | 8 bit | w | — | 6비트 | 주소 없음 | ? |
| 1970 | MP944 | 20 bit | w | — | ? | ? | ? |
| 1970 | PDP-11 | 16 bit | w | 2w, 4w | w, 2w, 3w | 8 bit | 8 bit |
| 1971 | Four-Phase System IV/70 (AL1 후속 사용) |
24 bit | w | 2w | w | w | 8 bit |
| 1971 | CDC STAR-100 | 64 bit | 1⁄2w, w | 1⁄2w, w | 1⁄2w, w | 비트 | 8 bit |
| 1971 | TMS1802NC | 4 bit | w | — | ? | ? | — |
| 1971 | 인텔 4004 | 4 bit | w, d | — | 2w, 4w | w | — |
| 1972 | 인텔 8008 | 8 bit | w | — | w, 2w, 3w | w | 8 bit |
| 1972 | Calcomp 900 | 9 bit | w | — | w, 2w | w | 8 bit |
| 1973 | IMP-16 | 16 bit | w | — | w, 2w[e] | w | 8 bit[f] |
| 1974 | 인텔 8080 | 8 bit | w, 2w, 2 d | — | w, 2w, 3w | w | 8 bit |
| 1975 | ILLIAC IV | 64 bit | w | w, 1⁄2w | w | w | — |
| 1975 | 모토로라 6800 | 8 bit | w, 2 d | — | w, 2w, 3w | w | 8 bit |
| 1975 | MOS 6501/6502 | 8 bit | w, 2 d | — | w, 2w, 3w | w | 8 bit |
| 1976 | Cray-1 | 64 bit | 24 bit, w | w | 1⁄4w, 1⁄2w | w | 8 bit |
| 1976 | 자일로그 Z80 | 8 bit | w, 2w, 2 d | — | w, 2w, 3w, 4w | w | 8 bit |
| 1976 | Signetics 8X300 | 8 bit | w | — | 16비트 | w | 1-8비트 |
| 1978 (1980) |
16비트 X86 (인텔 8086) (부동 소수점 포함: 인텔 8087) |
16 bit | 1⁄2w, w, 2 d | — (2w, 4w, 5w, 17 d) |
1⁄2w, w, ... 7w | 8 bit | 8 bit |
| 1978 | VAX | 32 bit | 1⁄4w, 1⁄2w, w, 1 d, ... 31 d, 1 bit, ... 32 bit | w, 2w | 1⁄4w, ... 141⁄4w | 8 bit | 8 bit |
| 1979 (1984) |
모토로라 68000 시리즈 (부동 소수점 포함) |
32 bit | 1⁄4w, 1⁄2w, w, 2 d | — (w, 2w, 21⁄2w) |
1⁄2w, w, ... 71⁄2w | 8 bit | 8 bit |
| 1981 | 인텔 iAPX 432 | 32 bit | 1⁄4w, 1⁄2w, w | w, 2w, 21⁄2w | 6-321비트 | 8 bit | 8 bit |
| 1985 | IA-32 (인텔 80386) (부동 소수점 포함) | 32 bit | 1⁄4w, 1⁄2w, w | — (w, 2w, 80 bit) |
8 bit, ... 120 bit 1⁄4w ... 33⁄4w |
8 bit | 8 bit |
| 1985 | ARM 아키텍처|ARMv1]] | 32 bit | 1⁄4w, w | — | w | 8 bit | 8 bit |
| 1985 | MIPS 아키텍처|MIPS I]] | 32 bit | 1⁄4w, 1⁄2w, w | w, 2w | w | 8 bit | 8 bit |
| 1991 | Cray C90 | 64 bit | 32 bit, w | w | 1⁄4w, 1⁄2w, 48 bit | w | 8 bit |
| 1992 | Alpha | 64 bit | 8 bit, 1⁄4w, 1⁄2w, w | 1⁄2w, w | 1⁄2w | 8 bit | 8 bit |
| 1992 | 파워PC | 32 bit | 1⁄4w, 1⁄2w, w | w, 2w | w | 8 bit | 8 bit |
| 1996 | ARMv4 (w/섬네일) |
32 bit | 1⁄4w, 1⁄2w, w | — | w (1⁄2w, w) |
8 bit | 8 bit |
| 2000 | IBM Z/아키텍처 | 64 bit[g] | 8 bit, 1⁄4w, 1⁄2w, w 1 d, ... 31 d |
1⁄2w, w, 2w | 1⁄4w, 1⁄2w, 3⁄4w | 8 bit | 8 bit, UTF-16, UTF-32 |
| 2001 | IA-64 | 64 bit | 8 bit, 1⁄4w, 1⁄2w, w | 1⁄2w, w | 41 bit (128비트 번들로)[9] | 8 bit | 8 bit |
| 2001 | ARMv6 (VFP 포함) |
32 bit | 8 bit, 1⁄2w, w | — (w, 2w) |
1⁄2w, w | 8 bit | 8 bit |
| 2003 | X86-64 | 64 bit | 8 bit, 1⁄4w, 1⁄2w, w | 1⁄2w, w, 80 bit | 8 bit, ... 120 bit | 8 bit | 8 bit |
| 2013 | AArch64 | 64 bit | 8 bit, 1⁄4w, 1⁄2w, w | 1⁄2w, w | 1⁄2w | 8 bit | 8 bit |
| 연도 | 컴퓨터 아키텍처 | 워드 크기 w | 정수 크기 | 부동 소수점 크기 | 명령어 크기 | 주소 해석 단위 | 문자 크기 |
| 범례: bit: 비트, c: 문자, d: 십진 자릿수, w: 아키텍처의 워드 크기, n: 가변 크기, wm: 워드 마크 | |||||||
같이 보기
[편집]각주
[편집]- 1 2 Beebe, Nelson H. F. (2017년 8월 22일). 〈Chapter I. Integer arithmetic〉 1판. 《The Mathematical-Function Computation Handbook - Programming Using the MathCW Portable Software Library》. Salt Lake City, UT, US: Springer International Publishing AG. 970쪽. doi:10.1007/978-3-319-64110-2. ISBN 978-3-319-64109-6. LCCN 2017947446. S2CID 30244721.
- ↑ Dreyfus, Phillippe (1958년 5월 8일) [1958-05-06]. Los Angeles, California, US에서 작성. 《System design of the Gamma 60》 (PDF). Western Joint Computer Conference: Contrasts in Computers. ACM, New York, NY, US. 130–133쪽. IRE-ACM-AIEE '58 (Western). 2017년 4월 3일에 원본 문서 (PDF)에서 보존된 문서. 2017년 4월 3일에 확인함.
[...] Internal data code is used: Quantitative (numerical) data are coded in a 4-bit decimal code; qualitative (alpha-numerical) data are coded in a 6-bit alphanumerical code. The internal instruction code means that the instructions are coded in straight binary code.
As to the internal information length, the information quantum is called a "catena," and it is composed of 24 bits representing either 6 decimal digits, or 4 alphanumerical characters. This quantum must contain a multiple of 4 and 6 bits to represent a whole number of decimal or alphanumeric characters. Twenty-four bits was found to be a good compromise between the minimum 12 bits, which would lead to a too-low transfer flow from a parallel readout core memory, and 36 bits or more, which was judged as too large an information quantum. The catena is to be considered as the equivalent of a character in variable word length machines, but it cannot be called so, as it may contain several characters. It is transferred in series to and from the main memory.
Not wanting to call a "quantum" a word, or a set of characters a letter, (a word is a word, and a quantum is something else), a new word was made, and it was called a "catena." It is an English word and exists in Webster's although it does not in French. Webster's definition of the word catena is, "a connected series;" therefore, a 24-bit information item. The word catena will be used hereafter.
The internal code, therefore, has been defined. Now what are the external data codes? These depend primarily upon the information handling device involved. The Gamma 60 is designed to handle information relevant to any binary coded structure. Thus an 80-column punched card is considered as a 960-bit information item; 12 rows multiplied by 80 columns equals 960 possible punches; is stored as an exact image in 960 magnetic cores of the main memory with 2 card columns occupying one catena. [...] - ↑ Blaauw, Gerrit Anne; Brooks, Jr., Frederick Phillips; Buchholz, Werner (1962). 〈4: Natural Data Units〉 (PDF). Buchholz, Werner (편집). 《Planning a Computer System – Project Stretch》. McGraw-Hill Book Company, Inc. / The Maple Press Company, York, PA. 39–40쪽. LCCN 61-10466. 2017년 4월 3일에 원본 문서 (PDF)에서 보존된 문서. 2017년 4월 3일에 확인함.
[...] Terms used here to describe the structure imposed by the machine design, in addition to bit, are listed below.
Byte denotes a group of bits used to encode a character, or the number of bits transmitted in parallel to and from input-output units. A term other than character is used here because a given character may be represented in different applications by more than one code, and different codes may use different numbers of bits (i.e., different byte sizes). In input-output transmission the grouping of bits may be completely arbitrary and have no relation to actual characters. (The term is coined from bite, but respelled to avoid accidental mutation to bit.)
A word consists of the number of data bits transmitted in parallel from or to memory in one memory cycle. Word size is thus defined as a structural property of the memory. (The term catena was coined for this purpose by the designers of the Bull GAMMA 60 computer.)
Block refers to the number of words transmitted to or from an input-output unit in response to a single input-output instruction. Block size is a structural property of an input-output unit; it may have been fixed by the design or left to be varied by the program. [...] - ↑ 〈Format〉 (PDF). 《Reference Manual 7030 Data Processing System》 (PDF). IBM. August 1961. 50–57쪽. 2021년 12월 15일에 확인함.
- ↑ 인용 오류: "dd"(이)라는 이름을 가진
태그에 텍스트가 없습니다. (도움말 참고) - ↑ 인용 오류: "ddd"(이)라는 이름을 가진
태그에 텍스트가 없습니다. (도움말 참고) - ↑ 인용 오류: "Eniac_coding"(이)라는 이름을 가진
태그에 텍스트가 없습니다. (도움말 참고) - ↑ Clippinger, Richard F. (1948년 9월 29일). “A Logical Coding System Applied to the ENIAC”. Aberdeen Proving Ground, Maryland, US: Ballistic Research Laboratories. Section VIII: Modified ENIAC. 2017년 4월 5일에 확인함.
- ↑ 〈4. Instruction Formats〉 (PDF). 《Intel Itanium Architecture Software Developer's Manual》. 3: Intel Itanium Instruction Set Reference. 3:293쪽. 2022년 4월 25일에 확인함.
Three instructions are grouped together into 128-bit sized and aligned containers called bundles. Each bundle contains three 41-bit instruction slots and a 5-bit template field.
- 내용주
- ↑ 초기 컴퓨터들 중 상당수는 십진 컴퓨터였으며, 일부는 3진 컴퓨터였다.
- ↑ UNIVAC 1005는 행과 열에 5비트 그레이 부호를 사용하여 코어를 주소 지정한다.
- ↑ 비트 등가값은 트리트가 제공하는 정보 엔트로피 양()을 계산하여 구한다. 이는 6트리트에 대해 약 9.51 비트에 해당한다.
- ↑ 3상 부호
- ↑ IMP-16은 Extended Instruction Set CROM II가 설치된 경우에만 2워드 명령어를 지원한다.
- ↑ 바이트는 IMP-16 기본 명령어 집합에서 지원되지 않음. Extended Instruction Set CROM II가 설치된 경우에만 지원됨. CROM II가 있더라도 바이트 단위의 메모리 쓰기는 지원되지 않음.
- ↑ Z/아키텍처는 본질적으로 64비트 아키텍처이지만, 워드라는 용어는 여전히 32비트 수량을 지칭한다. 그러나 이 표에서 크기는 워드가 64 비트인 것처럼 처리된다.