명령어 집합 비교

**명령어 집합**(instruction set architectures, **ISA**)은 **컴퓨터 구조**라고도 불리는 컴퓨터의 추상적인 모델이다. ISA의 구현을 구현체라고 한다. ISA는 성능, 물리적 크기, 비용 등에서 다양할 수 있는 여러 구현을 허용한다. ISA는 소프트웨어와 하드웨어 간의 인터페이스 역할을 하므로, ISA를 위해 작성되거나 컴파일된 소프트웨어는 동일한 ISA의 다른 구현체에서 실행될 수 있다. 이는 다양한 세대의 컴퓨터 간에 이진 호환성을 쉽게 달성하고 컴퓨터 제품군을 개발할 수 있도록 했다. 이 두 가지 발전은 컴퓨터 비용을 낮추고 적용 가능성을 높이는 데 도움이 되었다. 이러한 이유로 ISA는 오늘날 컴퓨팅에서 가장 중요한 추상화 중 하나이다. ISA는 기계어 프로그래머가 컴퓨터를 프로그래밍하기 위해 알아야 할 모든 것을 정의한다. ISA가 정의하는 내용은 ISA마다 다르다. 일반적으로 ISA는 지원되는 자료형, 존재하는 상태(예: 주기억장치 및 레지스터) 및 그 의미(예: 메모리 일관성 및 주소 지정 모드), 명령어 집합(컴퓨터의 기계어를 구성하는 기계어 명령어 집합), 그리고 입출력 모델을 정의한다.
# 데이터 표현
컴퓨팅 초창기에는 이진, 십진access-date=May 8, 2024, 심지어 삼진법을 사용하는 컴퓨터도 있었다.title=Russian Virtual Computer Museum _ Hall of Fame _ Nikolay Petrovich Brusentsovyear=2001. 현대 컴퓨터는 거의 전적으로 이진법을 사용한다. 문자는 다양한 문자 집합을 사용하여 비트 또는 숫자의 문자열로 인코딩된다. 단일 제조업체 내에서도 문자 집합 차이가 존재했다. 정수는 부호-크기, 1의 보수, 2의 보수, 오프셋 이진, 9의 보수 및 10의 보수를 포함한 다양한 표현으로 인코딩된다. 유사하게, 부동소수점 숫자는 부호, 지수 및 가수에 대해 다양한 표현으로 인코딩된다. 현대 기계에서는 IBM 16진 부동소수점과 IEEE 754 부동소수점이 이전 형식을 크게 대체했다. 주소는 일반적으로 명령어의 필드, 레지스터의 데이터 및 저장소의 데이터 조합으로 생성된 부호 없는 정수이며, 세부 사항은 아키텍처에 따라 다르다.
## 비트
컴퓨터 구조는 종종 n-비트 아키텍처로 설명된다. 20세기 첫 3/4분기에는 n이 종종 12, 18, 24, 30, 36, 48 또는 60이었다. 20세기 마지막 1/3분기에는 n이 종종 8, 16, 또는 32였고, 21세기에는 n이 종종 16, 32 또는 64이지만 다른 크기(6, 39, 128 포함)도 사용되었다. 이는 컴퓨터 아키텍처가 명령어 집합에 몇 가지 "자연스러운" 데이터 크기를 더하거나 덜 가지고 있지만, 이들의 하드웨어 구현은 매우 다를 수 있으므로 실제로는 단순화된 것이다. 많은 명령어 집합 아키텍처는 프로세서의 주요 내부 데이터 경로 크기의 절반 및 두 배로 작동하는 명령어를 가지고 있다. 이의 예로는 Z80, MC68000, IBM 시스템/360이 있다. 이러한 유형의 구현에서는 두 배 넓은 작업이 일반적으로 클럭 사이클의 약 두 배를 필요로 한다(고성능 구현에서는 그렇지 않다). 예를 들어 68000에서는 4클럭 틱 대신 8클럭 틱을 의미하며, 이 특정 칩은 32비트 아키텍처와 16비트 구현으로 설명될 수 있다. IBM 시스템/360 명령어 집합 아키텍처는 32비트이지만, IBM 시스템/360 모델 30과 같은 시스템/360 시리즈의 여러 모델은 더 작은 내부 데이터 경로를 가지고 있으며, 360/195와 같은 다른 모델은 더 큰 내부 데이터 경로를 가지고 있다. 외부 데이터 버스 폭은 아키텍처의 폭을 결정하는 데 사용되지 않는다. NS32008, NS32016 및 NS32032는 기본적으로 동일한 32비트 칩으로 서로 다른 외부 데이터 버스를 가지고 있었다. IBM의 PowerPC 604는 64비트 버스를 가지고 있지만 32비트 레지스터만 있다. 시스템/360 프로세서와 모토로라 68000과 같은 일부 초기 32비트 마이크로프로세서는 24비트 주소를 가지고 있다. 아키텍처에서 명령어의 비트 폭은 반드시 아키텍처의 비트 폭과 같을 필요는 없다. 예를 들어, 시스템/360, PDP-11 아키텍처, VAX, x86 아키텍처의 명령어는 가변 길이이다. 슈퍼H의 초기 버전은 32비트 아키텍처임에도 불구하고 고정 길이 16비트 명령어를 가졌고, 이후 버전은 16비트 및 32비트 명령어를 모두 가졌다.
## 자릿수
20세기 첫 3/4분기에는 워드 지향 십진법 컴퓨터가 일반적으로 별도의 부호를 가진 10자릿수access-date = May 8, 2024 access-date = May 8, 2024 access-date = May 8, 2024 워드를 가졌고,일반적으로 부호는 양수 또는 음수만 가능했지만, IBM 7070/72/74에서는 3상태 부호가 있었다. 정수에는 10자릿수 모두를 사용하고 부동소수점 숫자에는 지수에 두 자릿수를 사용했다.access-date = May 8, 2024
## 엔디언
아키텍처는 "빅" 또는 "리틀" 엔디언을 사용하거나 둘 다 사용하거나 둘 중 하나를 사용하도록 구성할 수 있다. 리틀 엔디언 프로세서는 다중 바이트 값의 최하위 바이트를 가장 낮은 메모리 위치에 저장한다. 빅 엔디언 아키텍처는 대신 최상위 바이트를 가장 낮은 주소에 저장한다. x86 아키텍처와 여러 8비트 아키텍처는 리틀 엔디언이다. 대부분의 RISC 아키텍처(SPARC, Power, PowerPC, MIPS)는 원래 빅 엔디언(ARM은 리틀 엔디언)이었지만, 많은 아키텍처(ARM 포함)는 이제 둘 중 하나로 구성할 수 있다. 엔디언은 일부 데이터 형식보다 작은 데이터 단위(예: 바이트)의 개별 주소 지정을 허용하는 프로세서에만 적용된다.
# 명령어 형식

## 명령 코드
명령 코드 일부 아키텍처에서는 명령어가 단일 명령 코드를 갖는다. 다른 아키텍처에서는 일부 명령어가 명령 코드와 하나 이상의 수정자를 갖는다. 예를 들어, IBM 시스템/370에서는 바이트 0이 명령 코드이지만 바이트 0이 16인 경우 바이트 1이 특정 명령어를 선택한다. 예를 들어, 16은 스토어 클럭(STCK)이다. 일부 명령어 집합 아키텍처에서는 하나 이상의 명령 코드 접두사가 후속 명령 코드를 변경하거나 명령 코드 수를 확장하는 데 사용된다.
## 피연산자

### 주소 지정 방식
주소 지정 방식 아키텍처는 일반적으로 명령어가 다음과 같은 피연산자 주소 지정 모드의 조합을 포함하도록 허용한다. ;직접 :명령어가 완전한 주소를 지정한다. ;즉치 :명령어가 주소 대신 값을 지정한다. ;인덱싱 :명령어가 인덱스로 사용할 레지스터를 지정한다. 일부 아키텍처에서는 인덱스가 피연산자 길이로 스케일링된다. ;간접 :명령어가 피연산자를 설명하는 포인터 워드의 위치를 지정하며, 여러 수준의 인덱싱 및 간접 지정을 포함할 수 있다. ;잘림 :명령어가 하위 비트를 지정하고 레지스터가 상위 비트를 제공한다. ;기저-변위 :명령어가 레지스터에 있는 주소로부터의 변위를 지정한다. ;자동증가/자동감소 :인덱싱에 사용되는 레지스터 또는 간접 주소 지정에 사용되는 포인터 워드는 1, 피연산자 크기 또는 명시적 델타만큼 증가 또는 감소한다. 벡터 프로세서는 요소 기반 작업에 고유한 추가 모드를 제공한다.
### 피연산자 수
명령어 집합#피연산자 수 피연산자 수는 명령어 집합의 성능을 나타내는 요소 중 하나이다. 3-피연산자 아키텍처(2-입력, 1-출력)는 다음을 허용한다. A := B + C 하나의 명령어로 계산된다. ADD B, C, A 2-피연산자 아키텍처(1-입력, 1-입력-및-출력)는 다음을 허용한다. A := A + B 하나의 명령어로 계산되지만, 다음이 필요하다. A := B + C 두 개의 명령어로 수행된다. MOVE B, A ADD C, A
## 인코딩 길이
아래 표에서 볼 수 있듯이 일부 명령어 집합은 매우 간단한 고정 인코딩 길이를 유지하고 다른 명령어 집합은 가변 길이를 갖는다. 일반적으로 RISC 아키텍처는 고정 인코딩 길이를 가지며 CISC 아키텍처는 가변 길이를 갖지만 항상 그런 것은 아니다.
# 명령어 집합
아래 표는 명령어 집합 아키텍처에 대한 기본 정보를 비교한다. 참고: * 일반적으로 레지스터 수는 2의 거듭제곱이며, 예를 들어 8, 16, 32이다. 경우에 따라서는 하드와이어드-제로 의사 레지스터가 아키텍처의 레지스터 파일의 "일부"로 포함되는데, 주로 인덱싱 모드를 단순화하기 위함이다. "레지스터" 열은 특정 시점에 일반 명령어에 의해 사용될 수 있는 정수 "레지스터"만 계산한다. 아키텍처는 항상 프로그램 카운터(PC)와 같은 특수 목적 레지스터를 포함한다. 언급되지 않는 한 이들은 계산되지 않는다. SPARC와 같은 일부 아키텍처에는 레지스터 윈도우가 있다는 점에 유의한다. 이러한 아키텍처의 경우, 개수는 레지스터 윈도우 내에서 사용 가능한 레지스터 수를 나타낸다. 또한 레지스터 이름 변경을 위한 비아키텍처 레지스터는 계산되지 않는다. * "유형" 열에서 "레지스터-레지스터"는 일반적인 아키텍처 유형인 "로드-스토어"의 동의어이며, 이는 일부 특수 명령어(예: 레지스터로 로드하거나 레지스터에서 저장하는 명령어)를 제외하고는 어떤 명령어도 메모리에 직접 액세스할 수 없음을 의미한다. 원자적 작업을 위한 메모리 잠금 명령어가 예외일 수 있다. * "엔디언" 열에서 "Bi"는 엔디언이 구성 가능하다는 의미이다. 상단 고정 Sort under Row hover highlight {| class="wikitable sticky-header sortable sort-under mw-datatable" border="1"
피연산자 ! 유형 ! 설계 ! 레지스터
(FP/벡터 제외) ! 명령어 인코딩 ! 브랜치 평가 ! 엔디언 ! 확장 ! 오픈 ! 로열티
프리 |- | 6502 | 8 | | 1975 | 1 | 레지스터–메모리 | CISC | 3 | 가변
(8- ~ 24-비트) | 조건 레지스터 | 리틀 | | | |- | 6800 | 8 | | 1974 | 1 | 레지스터–메모리 | CISC | 3 | 가변
(8- ~ 24-비트) | 조건 레지스터 | 빅 | | | |- | 6809 | 8 | | 1978 | 1 | 레지스터–메모리 | CISC | 4 | 가변
(8- ~ 32-비트) | 조건 레지스터 | 빅 | | | |- | 680x0 | 32 | | 1979 | 2 | 레지스터–메모리 | CISC | 8 데이터 및 8 주소 | 가변 | 조건 레지스터 | 빅 | | | |- | 8080 | 8 | | 1974 | 2 | 레지스터–메모리 | CISC | 7 | 가변
(8 ~ 24 비트) | 조건 레지스터 | 리틀 | | | |- | 8051 | 32
(8→32) | | 1977? | 1 | 레지스터–레지스터 | CISC | 32-비트에서 4개 | 가변
(8 ~ 24 비트) | 비교 및 분기 | 리틀 | | | |- | X86 | 16, 32, 64
(16→32→64) | v4 (x86-64) | 1978 | 2 (정수)
3 (AVX)LEA (모든 프로세서) 및 IMUL-immediate (80186 이상) 명령어는 3개의 피연산자를 허용한다. 기본 정수 ISA의 대부분의 다른 명령어는 2개 이하의 피연산자를 허용한다.
4 (FMA4 및 `VPBLENDVPx`)
publisher=AMD
| 레지스터–메모리 | CISC | AVX-512 및 고급 성능 확장(apx)이 있는 32개 | 가변
(8086 ~ 80386: 1에서 6 바이트 사이 가변 /w MMU + intel SDK, 80486: 2에서 5 바이트 (접두사 포함), pentium 이후: 2에서 4 바이트 (접두사 포함), x64: 4 바이트 접두사, 타사 x86 에뮬레이션: 1에서 15 바이트 (접두사 및 MMU 없음) . SSE/MMX: 4 바이트 /w 접두사 AVX: 8 바이트 /w 접두사) | 조건 코드 | 리틀 | X87, IA-32, MMX, 3DNow!, SSE,
SSE2, PAE, X86-64, SSE3, SSSE3, SSE4,
BMI, AVX, AES, FMA, XOP, F16C, AMX | 아니요 | 아니요 |- | 알파 | 64 | | 1992 | 3 | 레지스터–레지스터 | RISC | 32 (포함 "제로") | 고정
(32-비트) | 조건 레지스터 | Bi | MVI, BWX, FIX, CIX | 아니요 | |- | ARC | 16/32/64 (32→64) | ARCv3
title = 시놉시스, 하이엔드 임베디드 애플리케이션을 위한 최대 3배 성능 향상된 새로운 64비트 ARC 프로세서 IP 출시 | 1996 | 3 | 레지스터–레지스터 | RISC | 16 또는 32 (SP 포함)
사용자가 60개까지 늘릴 수 있음 | 가변
(16- 또는 32-비트) | 비교 및 분기 | Bi | APEX 사용자 정의 명령어 | | |- | ARM/A32 | 32 | ARMv1–v9 | 1983 | 3 | 레지스터–레지스터 | RISC | 15 | 고정
(32-비트) | 조건 코드 | Bi | NEON, Jazelle, VFP,
TrustZone, 대형 물리 주소 확장 | | 아니요 |- | Thumb/T32 | 32 | ARMv4T-ARMv8 | 1994 | 3 | 레지스터–레지스터 | RISC | 32비트 Thumb-2 명령어 사용 시 15개 | Thumb: 고정
(16-비트), Thumb-2:
가변
(16- 또는 32-비트) | 조건 코드 | Bi | NEON, Jazelle, VFP,
TrustZone, 대형 물리 주소 확장 | | 아니요 |- | Arm64/A64 | 64 | v8.9-A/v9.4-A,
language=en Armv8-R
website=아난드테크 | 2011
access-date= 8 May 2024 | 3 | 레지스터–레지스터 | RISC | 32 (스택 포인터/"제로" 레지스터 포함) | 고정
(32-비트), 가변
(FMA4의 경우 32-비트 또는 64-비트 (32-비트 접두사 포함)publisher=후지쯔) | 조건 코드 | Bi | SVE 및 SVE2 | | 아니요 |- | AVR | 8 | | 1997 | 2 | 레지스터–레지스터 | RISC | 32
"축소 아키텍처"에서는 16개 | 가변 (주로 16-비트, 4개 명령어는 32-비트) | 조건 레지스터,
I/O 또는
범용 레지스터 비트에
조건부 건너뛰기,
비교 및 건너뛰기 | 리틀 | | | |- | AVR32 | 32 | Rev 2 | 2006 | 2–3 | | RISC | 15 | 가변
access-date= 2024-05-08 | | 빅 | 자바 가상 머신 | | |- | Blackfin | 32 | | 2000 |3
website=analog.com | 레지스터–레지스터 | RISC
access-date= 2024-05-08 | 2 누산기 8 데이터 레지스터 8 포인터 레지스터 4 인덱스 레지스터 4 버퍼 레지스터 | 가변 (16- 또는 32-비트) | 조건 코드 | 리틀
url-status= dead | | | |- | CDC 상위 3000 시리즈 | 48 | | 1963 | 3 | 레지스터–메모리 | CISC | 48비트 A 레지스터, 48비트 Q 레지스터, 6개 15비트 B 레지스터, 기타 | 가변
(24- 또는 48-비트) | 여러 유형의 점프 및 스킵 | 빅 | | | |- | CDC 6000
중앙 프로세서 (CP) | 60 | | 1964 | 3 | 레지스터–레지스터 | 해당 없음부분적으로 RISC: 로드/스토어 아키텍처 및 단순 주소 지정 모드, 부분적으로 CISC: 세 가지 명령어 길이와 단일 명령어 타이밍 없음 | 24 (8개 18비트 주소 레지스터,
8개 18비트 인덱스 레지스터,
8개 60비트 피연산자 레지스터) | 가변
(15-, 30-, 또는 60-비트) | 비교 및 분기 | 해당 없음메모리가 하위 단위를 액세스할 수 있는 수단이 없는 60비트 워드 배열이므로, 빅 엔디언 대 리틀 엔디언은 의미가 없다. 선택적 CMU 장치는 빅 엔디언 의미 체계를 사용한다. | 추가 주변 처리 장치 | 아니요 | 아니요 |- | CDC 6000
주변 프로세서 (PP) | 12 | | 1964 | 1 또는 2 | 레지스터–메모리 | CISC | 1개 18비트 A 레지스터, 위치 1~63은 일부 명령어에 대한 인덱스 레지스터 역할을 한다. | 가변
(12- 또는 24-비트) | A 레지스터 테스트, 채널 테스트 | 해당 없음메모리가 하위 단위를 액세스할 수 있는 수단이 없는 12비트 워드 배열이므로, 빅 엔디언 대 리틀 엔디언은 의미가 없다. | 추가 주변 처리 장치 | 아니요 | 아니요 |- | 크루소
(네이티브 VLIW) | 32publisher=Real World Technologies | | 2000 | 1 | 레지스터–레지스터 | VLIW
access-date=2013년 12월 6일 | 네이티브 VLIW에서 12개 정수 + 48개 섀도우 +
4개 디버그 모드 | 가변
(네이티브 모드에서 64- 또는 128-비트, x86 에뮬레이션에서 15 바이트) | 조건 코드 | 리틀 | | | |- | 엘브루스 2000
(네이티브 VLIW) | 64 | v6 | 2007 | 1 | 레지스터–레지스터 | VLIW | 8–64 | 64 | 조건 코드 | 리틀 | Just-in-time 동적 번역: X87, IA-32, MMX, SSE,
SSE2, X86-64, SSE3, AVX | 아니요 | 아니요 |- | DLX | 32 | Dunno | 1990 | 3 | 레지스터–레지스터 | RISC | 32 | 고정
(32-비트) | 조건 레지스터 | 빅 | Dunno | Yes | Dunno |- | eSi-RISC | 16/32 | | 2009 | 3 | 레지스터–레지스터 | RISC | 8–72 | 가변 (16- 또는 32-비트) | 비교 및 분기
및 조건 레지스터 | Bi | 사용자 정의 명령어 | 아니요 | 아니요 |- | iAPX 432url=http://bitsavers.org/components/intel/iAPX_432/171821-001_Introduction_to_the_iAPX_432_Architecture_Aug81.pdf | 32 | | 1981 | 3 | 스택 머신 | CISC | 0 | 가변 (6 ~ 321 비트) | | | | 아니요 | 아니요 |- | Itanium
(IA-64) | 64 | | 2001 | | 레지스터–레지스터 | EPIC | 128 | 고정
(5비트 템플릿 태그와 3개의 명령어(각각 41비트 길이)를 포함하는 128비트 번들) | 조건 레지스터 | Bi
(선택 가능) | 인텔 가상화 기술 | 아니요 | 아니요 |- | 룽아키텍처 | 32, 64 | | 2021 | 4 | 레지스터–레지스터 | RISC | 32 (포함 "제로") | 고정 (32-비트) | | 리틀 | | 아니요 | 아니요 |- | M32R | 32 | | 1997 |3 | 레지스터–레지스터 | RISC | 16 | 가변
(16- 또는 32-비트) |조건 레지스터 | Bi | | | |- | m88k | 32 | | 1988 | 3 | 레지스터–레지스터 | RISC | 32 | 고정
(32-비트) | 비교 및 분기 | 빅 | | | |- | 미코32 | 32 | Dunno | 2006 | 3 | 레지스터–레지스터 | RISC | 32
archive-date = 2010년 6월 23일 | 고정
(32-비트) | 비교 및 분기 | 빅 | 사용자 정의 명령어 | Yes
archive-date = 2010년 6월 20일 | Yes |- | MIPS | 64
(32→64) | 6
프로그래머를 위한 MIPS64 아키텍처: 릴리스 6
프로그래머를 위한 MIPS32 아키텍처: 릴리스 6 | 1981 | 1–3 | 레지스터–레지스터 | RISC | 4–32 (포함 "제로") | 고정
(32-비트) | 조건 레지스터 | Bi | MDMX, MIPS-3D | 아니요 | 아니요
MIPS 오픈
title = 웨이브 컴퓨팅, MIPS 오픈 이니셔티브를 즉시, 아무 경고 없이 종료 |- | MMIX | 64 | Dunno | 1999 | 3 | 레지스터–레지스터 | RISC | 256 | 고정
(32-비트) | 조건 레지스터 | 빅 | Dunno | Yes | Yes |- | Nios II | 32 | Dunno | 2000 | 3 | 레지스터–레지스터 | RISC | 32 | 고정 (32-비트) | 조건 레지스터 | 리틀 | 알테라 FPGA 장치에 인스턴스화할 수 있는 소프트 프로세서 | 아니요 | 알테라/인텔 FPGA에서만 |- | 노바 | 16 | | 1969 | 2 | 레지스터–레지스터 | CISC | 4 | 고정
(16-비트) | 스킵 | 없음 | | | |- | NS320xx | 32 | | 1982 | 5 | 메모리–메모리 | CISC | 8 | 가변 허프먼 코딩, 최대 23 바이트 길이 | 조건 코드 | 리틀 | BitBlt 명령어 | | |- | OpenRISC | 32, 64 | 1.4
OpenRISC 아키텍처 개정판 | 2000 | 3 | 레지스터–레지스터 | RISC | 16 또는 32 | 고정 | 조건 코드 | Bi | Dunno | Yes | Yes |- | PA-RISC
(HP/PA) | 64
(32→64) | 2.0 | 1986 | 3 | 레지스터–레지스터 | RISC | 32 | 고정
(32-비트) | 비교 및 분기 | 빅 → Bi | MAX | 아니요 | |- |PDP-5
publisher=디지털 이큅먼트 코퍼레이션
PDP-8
publisher=디지털 이큅먼트 코퍼레이션 | 12 | | 1963 | | 레지스터–메모리 | CISC | 1 누산기 1 곱셈기 몫 레지스터 | 고정
(12-비트) | 조건 레지스터 테스트 및 분기 | | EAE (확장 산술 요소) | | |- | PDP-11 | 16 | | 1970 | 2 | 메모리–메모리 | CISC | 8 (프로그램 카운터 및 스택 포인터 포함, 어떤 레지스터도 스택 포인터 역할을 할 수 있음) | 가변
(16-, 32-, 또는 48-비트) | 조건 코드 | 리틀 | 확장 명령어 세트, 부동 명령어 세트, 부동소수점 프로세서, 상업용 명령어 세트 | 아니요 | 아니요 |- | POWER, PowerPC, Power ISA | 32/64
(32→64) | 3.1access-date=2021-10-20 | 1990 | 3 (대부분). FMA, LD/ST-업데이트 | 레지스터–레지스터 | RISC | 32 GPR, 8개 4비트 조건 필드, 링크 레지스터, 카운터 레지스터 | 고정
(32-비트), 가변
(32- 또는 64-비트 (32-비트 접두사 포함)) | 조건 코드, 분기-카운터 자동 감소 | Bi | AltiVec, APU, VSX, Cell, 부동소수점, 매트릭스 곱셈 보조 | OPF 라이선스 | 라이선스가 있는 경우에만OpenPOWER EULA |- | RISC-V | 32, 64, 128 | 20250508
access-date=2025년 10월 18일 | 2010 | 3 | 레지스터–레지스터 | RISC | 32 (포함 "제로") | 가변 |비교 및 분기 | 리틀 | Dunno | Yes | Yes |- | RX | 64/32/16 | | 2000 | 3 | 메모리–메모리 | CISC | 4 정수 + 4 주소 | 가변 | 비교 및 분기 | 리틀 | | | 아니요 |- | S+core | 16/32 | | 2005 | | | RISC | | | | 리틀 | | | |- | SPARC | 64
(32→64) | OSA2017
오라클 SPARC 프로세서 문서 | 1985 | 3 | 레지스터–레지스터 | RISC | 32 (포함 "제로") | 고정
(32-비트) | 조건 코드 | 빅 → Bi | VIS | Yes | Yes
SPARC 아키텍처 라이선스 |- | SuperH (SH) | 32 | Dunno | 1994 | 2 | 레지스터–레지스터
레지스터–메모리 | RISC | 16 | 고정
(16- 또는 32-비트), 가변 | 조건 코드
(단일 비트) | Bi | Dunno | Yes | Yes |- | System/360
System/370
System/390
z/Architecture | 64
(32→64) | | 1964 | 2 (대부분)
3 (FMA, 개별
피연산자 기능)
4 (일부 벡터 명령어) | 레지스터–메모리
메모리–메모리
레지스터–레지스터 | CISC | 16 일반
16 제어 (S/370 이상)
16 액세스 (ESA/370 이상)
32 벡터 레지스터 (z13 이상) | 가변
(16-, 32-, 또는 48-비트) | 조건 코드, 비교 및 분기 자동 증가, 분기-카운터 자동 감소 | 빅 | | 아니요 | 아니요 |- | TMS320 C6000 시리즈 | 32 | | 1983 | 3 | 레지스터-레지스터 | VLIW | C67x에서 32개
C67x+에서 64개 | 고정
(32비트 명령어 8개로 구성된 256비트 번들) | 조건 레지스터 | Bi | |아니요 |아니요 |- | Transputer | 32
(4→64) | | 1987 | 1 | 스택 머신 | MISC | 3 (스택으로) | 고정
(8-비트) | 비교 및 분기 | 리틀 | | | |- | VAX | 32 | | 1977 | 6 | 메모리–메모리 | CISC | 16 | 가변 | 조건 코드, 비교 및 분기 | 리틀 | | 아니요 | |- | Z80 | 8 | | 1976 | 2 | 레지스터–메모리 | CISC | 17 | 가변
(8 ~ 32 비트) | 조건 레지스터 | 리틀 | | | |}
# 내용주
Notelist