이곳은 개발을 위한 베타 사이트 입니다.
기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.

인텔 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)i860i960
관련 문서인텔 펜티엄 시리즈인텔 코어 시리즈인텔 코어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진수 코드MnemonicOPR(M1)OPA(M2)설명
D3D2D1D1D3D2D1D1
4004 명령어
머신 명령어
00NOP00000000No operation
1- --JCN[*]0001C1C2C3C4if C1...C4[2]: PC2:1 ← ROM[RRR*]
; 조건 C1...C4 만족시 JCN 명령어와 동일한 ROM의 A2...A1로 점프
A2A2A2A2A1A1A1A1
2- --FIM[*]0010RRR0RRR* ← ROM[D,,2,,...D,,1,,]
; Fetch immediate (direct) from ROM to index register pair RRR
D2D2D2D2D1D1D1D1
3-FIN0011RRR0R*0 ← ROM[RRR*]
3-JIN0011RRR1PC2:1 ← ROM[RRR*]
4- --JUN[*]0100A3A3A3A3PC ← A3...A1
; ROM의 A3...A1로 점프
A2A2A2A2A1A1A1A1
5- --JMS[*]0101A3A3A3A3Stack ← PC, PC ← A3...A1
; ROM의 A3...A1로 점프 및 이전 주소를 스택에 저장
A2A2A2A2A1A1A1A1
6-INC0110RRRRRRRR ← RRRR+1
7- --ISZ[*]0111RRRRRRRR ← RRRR+1, PC2:1 ← ROM[RRR*]
A2A2A2A2A1A1A1A1
8-ADD1000RRRRA ← A + RRRR + C
9-SUB1001RRRRA ← A - RRRR - C
A-LD1010RRRRA ← RRRR
B-XCH1011RRRRA ↔ RRRR
C-BBL1100DDDDPC ← Stack, A ← DDDD
D-LDM1101DDDDA ← DDDD
누산기 명령어
F0CLB11110000A ← 0, C ← 0; Clear both.
F1CLC11110000C ← 0; Clear carry.
F2IAC11110010A ← A+1; Increment accumulator.
F3CMC11110011C ← ~C; Complement carry.
F4CMA11110100A ← ~A; Complement accumulator.
F5RAL11110101; Rotate left. (Accumulator and carry)
F6RAR11110110; Rotate right. (Accumulator and carry)
F7TCC11110111A ← C, C ← 0; Transmit carry to accumulator and clear carry.
F8DAC11111000A ← A-1;Decrement accumulator.
F9TCS11111001; Transfer carry subtract and clear carry.
FASTC11111010Set carry.
FBDAA11111011Decimal adjust accumulator
FCKBP11111100Keyboard process.
FDDCL11111101Designate command line.
입출력 명령어
2-SRC0010RRR1
E0WRM00100000
E1WMP00100001
E2WRR00100010
E3WPM00100011
E4WR000100100
E5WR100100101
E6WR200100110
E7WR300100111
E8SBM00101000
E9RDM00101001
EARDR00101010
EBADM00101011
ECRD000101100
EDRD100101101
EERD200101110
EFRD300101111
4040 추가 명령어
01HLT00100001Halt
02BBS00100010
03LCR00100011
04OR400100100A ← A | R[4]
05OR500100101A ← A | R[5]
06AN600100110A ← A & R[6]
07AN700100111A ← A & R[7]
08DB000101000Designate ROM bank 0. CM-ROM0 becomes enabled.
09DB100101001Designate ROM bank 1. CM-ROM1 becomes enabled.
0ASB000101010Select index register bank 0.
0BSB100101011Select index register bank 1.
0CEIN00101100Enable interrupt.
0DDIN00101101Disable interrupt.
0ERPM00101110Read program memory.


5. 핀아웃[편집]


파일:Intel_4040_processor_pinout.png


6. 지원 칩[편집]




7. 여담[편집]


파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 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