인텔 4040

덤프버전 :


펜티엄 이전의 인텔 CPU
아키텍처 분류
제품
x86 이전 (4비트)
4004 ('71)
4040 ('74)
x86 이전 (8비트)
8008 ('72)
8080 ('74)
8085 ('77)
x86 (16비트)
8086/8088 ('78/'79)
80186/80188 ('82)
80286 ('82)
x86(IA32) (32비트)
80386 ('85)
80486 ('89)
기타
iAPX432(8800)
i860
i960
관련 문서
인텔 펜티엄 시리즈
인텔 코어 시리즈
인텔 코어2 시리즈
인텔 코어i 시리즈



1. 개요
2. 상세
3. 제원
4. 아키텍처
4.1. 레지스터
4.2. 명령어
5. 핀아웃
6. 지원 칩
7. 여담



1. 개요[편집]


1974년에 출시된 인텔의 4비트 마이크로프로세서. 인텔 4004의 후속작이다.


2. 상세[편집]


주로 전자제품용을 목적으로 사용되었으며 인텔 4004보다 너비가 2배 이상 더 넓었고 24핀[1] 방식으로 제작되었다.

기존 4004의 명령어에 14개의 명령어가 추가해 총 60개의 명령어를 지원하고, 인터럽트 지원 및 디버깅 관련 기능이 추가되었다. 2개의 뱅크를 선택하는 방식으로 지원 롬 용량이 기존의 4KB(4096B)에서 8KB(8192B)로 증가하였으며 인덱스 레지스터 8개 및 스택 4칸이 추가되어 총 24개의 인덱스 레지스터 및 7단계의 스택을 제공한다. 새로 추가된 인덱스 레지스터는 확장된 ROM과 유사하게 뱅크를 전환하는 방식으로 사용할 수 있다.


3. 제원[편집]


클럭
500~740KHz
데이터 폭
4비트
어드레스 폭
12비트
지원 명령어
60개
트랜지스터
3,000개
공정
10μm


4. 아키텍처[편집]


파일:1052px-4040_arch.svg.png


4.1. 레지스터[편집]


  • 4비트 인덱스 레지스터 24개: 0~7, 0*~7*, 8~15
    • 0~7, 총 8개의 레지스터는 Z80의 레지스터 토글과 유사하게 Bank 0, 1을 지정해 사용할 수 있다.
  • 12비트 주소 레지스터 8개: PC 및 7단계 호출 스택


4.2. 명령어[편집]


명령어는 1 word(8-bit) 또는 2 word(16-bit) 이진수로 인코딩된다.
  • RRRR: 인덱스 레지스터 1개
  • RRRX: 인덱스 레지스터 쌍
  • DDDD: 데이터
  • AAAA: 주소
  • CCCC: 조건
16진수 코드
Mnemonic
OPR(M1)
OPA(M2)
설명
D3
D2
D1
D1
D3
D2
D1
D1
4004 명령어
머신 명령어
00

NOP
0
0
0
0
0
0
0
0
No operation
1- --

JCN[*]
0
0
0
1
C1
C2
C3
C4
if C1...C4[2]: PC2:1 ← ROM[RRR*]
; 조건 C1...C4 만족시 JCN 명령어와 동일한 ROM의 A2...A1로 점프
A2
A2
A2
A2
A1
A1
A1
A1
2- --

FIM[*]
0
0
1
0
R
R
R
0
RRR* ← ROM[D,,2,,...D,,1,,]
; Fetch immediate (direct) from ROM to index register pair RRR
D2
D2
D2
D2
D1
D1
D1
D1
3-

FIN
0
0
1
1
R
R
R
0
R*0 ← ROM[RRR*]
3-

JIN
0
0
1
1
R
R
R
1
PC2:1 ← ROM[RRR*]
4- --

JUN[*]
0
1
0
0
A3
A3
A3
A3
PC ← A3...A1
; ROM의 A3...A1로 점프
A2
A2
A2
A2
A1
A1
A1
A1
5- --

JMS[*]
0
1
0
1
A3
A3
A3
A3
Stack ← PC, PC ← A3...A1
; ROM의 A3...A1로 점프 및 이전 주소를 스택에 저장
A2
A2
A2
A2
A1
A1
A1
A1
6-

INC
0
1
1
0
R
R
R
R
RRRR ← RRRR+1
7- --

ISZ[*]
0
1
1
1
R
R
R
R
RRRR ← RRRR+1, PC2:1 ← ROM[RRR*]
A2
A2
A2
A2
A1
A1
A1
A1
8-

ADD
1
0
0
0
R
R
R
R
A ← A + RRRR + C
9-

SUB
1
0
0
1
R
R
R
R
A ← A - RRRR - C
A-

LD
1
0
1
0
R
R
R
R
A ← RRRR
B-

XCH
1
0
1
1
R
R
R
R
A ↔ RRRR
C-

BBL
1
1
0
0
D
D
D
D
PC ← Stack, A ← DDDD
D-

LDM
1
1
0
1
D
D
D
D
A ← DDDD
누산기 명령어
F0

CLB
1
1
1
1
0
0
0
0
A ← 0, C ← 0; Clear both.
F1

CLC
1
1
1
1
0
0
0
0
C ← 0; Clear carry.
F2

IAC
1
1
1
1
0
0
1
0
A ← A+1; Increment accumulator.
F3

CMC
1
1
1
1
0
0
1
1
C ← ~C; Complement carry.
F4

CMA
1
1
1
1
0
1
0
0
A ← ~A; Complement accumulator.
F5

RAL
1
1
1
1
0
1
0
1
; Rotate left. (Accumulator and carry)
F6

RAR
1
1
1
1
0
1
1
0
; Rotate right. (Accumulator and carry)
F7

TCC
1
1
1
1
0
1
1
1
A ← C, C ← 0; Transmit carry to accumulator and clear carry.
F8

DAC
1
1
1
1
1
0
0
0
A ← A-1;Decrement accumulator.
F9

TCS
1
1
1
1
1
0
0
1
; Transfer carry subtract and clear carry.
FA

STC
1
1
1
1
1
0
1
0
Set carry.
FB

DAA
1
1
1
1
1
0
1
1
Decimal adjust accumulator
FC

KBP
1
1
1
1
1
1
0
0
Keyboard process.
FD

DCL
1
1
1
1
1
1
0
1
Designate command line.
입출력 명령어
2-

SRC
0
0
1
0
R
R
R
1

E0

WRM
0
0
1
0
0
0
0
0

E1

WMP
0
0
1
0
0
0
0
1

E2

WRR
0
0
1
0
0
0
1
0

E3

WPM
0
0
1
0
0
0
1
1

E4

WR0
0
0
1
0
0
1
0
0

E5

WR1
0
0
1
0
0
1
0
1

E6

WR2
0
0
1
0
0
1
1
0

E7

WR3
0
0
1
0
0
1
1
1

E8

SBM
0
0
1
0
1
0
0
0

E9

RDM
0
0
1
0
1
0
0
1

EA

RDR
0
0
1
0
1
0
1
0

EB

ADM
0
0
1
0
1
0
1
1

EC

RD0
0
0
1
0
1
1
0
0

ED

RD1
0
0
1
0
1
1
0
1

EE

RD2
0
0
1
0
1
1
1
0

EF

RD3
0
0
1
0
1
1
1
1

4040 추가 명령어
01

HLT
0
0
1
0
0
0
0
1
Halt
02

BBS
0
0
1
0
0
0
1
0

03

LCR
0
0
1
0
0
0
1
1

04

OR4
0
0
1
0
0
1
0
0
A ← A | R[4]
05

OR5
0
0
1
0
0
1
0
1
A ← A | R[5]
06

AN6
0
0
1
0
0
1
1
0
A ← A & R[6]
07

AN7
0
0
1
0
0
1
1
1
A ← A & R[7]
08

DB0
0
0
1
0
1
0
0
0
Designate ROM bank 0. CM-ROM0 becomes enabled.
09

DB1
0
0
1
0
1
0
0
1
Designate ROM bank 1. CM-ROM1 becomes enabled.
0A

SB0
0
0
1
0
1
0
1
0
Select index register bank 0.
0B

SB1
0
0
1
0
1
0
1
1
Select index register bank 1.
0C

EIN
0
0
1
0
1
1
0
0
Enable interrupt.
0D

DIN
0
0
1
0
1
1
0
1
Disable interrupt.
0E

RPM
0
0
1
0
1
1
1
0
Read program memory.


5. 핀아웃[편집]


파일:Intel_4040_processor_pinout.png


6. 지원 칩[편집]




7. 여담[편집]


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-15 00:11:26에 나무위키 인텔 4040 문서에서 가져왔습니다.

[1] 전작인 4004는 16핀을 적용했다.[*] A B C D E 2바이트 명령어[2] C1: 점프 조건을 반전, C2: A = 0, C3: C = 1, C4: Test 핀 = 0; 1 = JNT, 2 = JC, 4 = JZ, 9 = JT, 10 = JNC, 12 = JNZ