Z80

덤프버전 :

명령어 집합
CISC
AMD64x86 · M68K · 68xx · Z80 · 8080 · MOS 65xx · VAX
RISC
AArch64 ARM · RISC-V · MIPS · DEC Alpha · POWER PowerPC · CELL-BE
LoongArch · OpenRISC · PA-RISC · SPARC · Blackfin · SuperH · AVR32 AVR
VLIW
EPIC
E2K · IA-64 · Crusoe


파일:external/cdn.cpu-world.com/S_Zilog-Z80%20CPU%20(wgg).jpg
2.5MHz 자일로그 Z80 마이크로프로세서 (40핀 규격)[1]
Zilog Z80
1. 개요
2. 상세
3. 인텔 8080에 비해 추가된 기능
3.1. 레지스터
3.2. 명령어 세트
4. Z80 이후의 자일로그
5. Z80을 탑재한 시스템
5.1. 컴퓨터
5.2. 게임기와 아케이드 기판
5.2.1. 사운드, 기판 간 통신 등의 보조 프로세서
5.3. 기타
6. 여담



1. 개요[편집]


1970년 페어차일드 반도체에서 인텔로 이직해 인텔 4004, 인텔 8008인텔 8080 설계에 관여한 페데리코 파진(Federico Faggin)과 비지콤에서 인텔 4004를 개발한 이후 1972년 인텔로 이직해 인텔 8080과 그 주변칩들을 설계한 시마 마사토시(嶋正利) 등 11명의 인텔 직원이 1974년 인텔을 떠나 자일로그를 설립해 만든 CPU이다. 1976년에 출시했다.

1980년대에 만든 8비트 기기들에 들어간 CPU들 중 가장 널리 사용되었다. 1980년대까지만 하더라도 수많은 PC게임기 등에도 쓰였다. 지금도 임베디드 시스템 등에는 여전히 잘 쓰이고 있다. 공정 미세화된 제품들은 주로 마이크로컨트롤러 등에 원칩 형태로 내장되는 경우가 많다. 자일로그 자체 생산품도 있지만, 도시바, 샤프, 금성반도체 등에서 만든 클론도 널리 퍼졌다. 게다가 동독소련에서도 Z80 클론을 찍어냈을 정도다.

파일:20200314_222402_1.jpg
사진에서 각각 자일로그사, 샤프사, 금성반도체의 세라믹(좌하단), 플라스틱(우하단) 버전 Z80칩.


2. 상세[편집]


Z80 유저 매뉴얼[2]

이걸 사용한 하드웨어의 제작/개작이 쉽기 때문에 홈브루 컴퓨터에 주력으로도 쓰이고 있다. 운영 체제의 제작도 간단해 자신의 운영 체제를 만들고 싶거나 배우고 싶어하는 사람들도 많이 쓰고, 나아가 개발 잘 하라고 PC의 USB 포트에 꽂아 쓰는 하드웨어 에뮬레이터도 있다. 이런 홈브루 컴퓨터의 제작을 주로 다루는 사이트.

8255A와 비슷한 역할을 하는 Z80의 I/O 컨트롤러인 Z80 PIO, Z80용 타이머인 Z80 CTC 등등 Z80 기반 하드웨어의 제작에 도움이 되는 주변 장치들도 있지만 이 문서에서는 Z80 CPU에 대해 설명한다.

  • 아키텍처: 인텔 8080 기반에 고유 명령어 세트를 추가
  • 메모리 주소 버스폭: 16비트
  • 클럭: 2.5MHz부터 33MHz까지 다양
  • 공정: 5µm(5000nm) ~ 40nm(!)

아키텍처는 인텔 8080을 기반으로 한 상위 호환 CPU이다.[3] 인텔 8080에 비해 레지스터, 명령어 추가, 높은 클럭 지원 등의 성능 향상이 있었다. 지원 클럭 범위는 2.5MHz부터 33MHz까지로 8080과 8086 프로세서보다 클럭이 월등히 높다. 클럭에 따라 'Z80', 'Z80A', 'Z80B' 등의 이름을 붙였는데, 1980년 대 8비트 PC에 가장 많이 사용된 프로세서는 Z80A로 클럭이 3.54MHz이다. 같은 시대의 8비트 프로세서 사이에서는 제법 고성능인 축에 끼는 편이었다. 메모리 주소 버스폭이 16비트인지라 메모리는 64KB까지 지원할 수 있다. 개량품인 Z180은 주소 버스폭을 20비트로 확장해 1MB까지 지원할 수 있다.


3. 인텔 8080에 비해 추가된 기능[편집]



파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는
문서의 r39 판{{{#!wiki style="display: inline; display: 2;"
, 2번 문단}}}에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문단의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r39 판{{{#!wiki style="display: inline; display: 2;"
, 2번 문단}}} (이전 역사)
문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)





3.1. 레지스터[편집]


  • 8비트 레지스터
    • B', C', D', E', H', L', F', A':
      EX
      EXX
      명령어로 마치 이면지를 뒤집듯 레지스터를 토글할 수 있다. 당연하지만 동시 사용은 불가능.
    • I(Interrupt Vector) : 인터럽트 벡터값이 저장되어 있다.
    • R(Memory Refresh) : DRAM의 리프레시 주기를 카운트한다. 다만 8비트가 아닌 7비트 레지스터다.
  • 16비트 레지스터
    • IX, IY(Index Register)


3.2. 명령어 세트[편집]


  • 인덱스 레지스터를 이용한 연산의 추가. 인텔 8080은 인덱스 레지스터가 없기 때문에 HL 레지스터를 이용해서 주소 지정을 한다. 그래서 베이스 포인터 개념을 사용하기가 힘들다.
LD r, (IX+d)

ADD A, (IY+d)

등으로 사용할 수 있다.
  • 메모리 리프레시 기능 추가: DRAM을 사용할 경우 리프레시 신호를 자동으로 보내준다.
  • 인터럽트 제어의 강화
  • 레지스터를 토글해 사용할 수 있음. ex) A ↔ A'
  • 입출력 장치간 블록 전송 기능 추가


4. Z80 이후의 자일로그[편집]


홈페이지

지금도 자일로그 회사 자체는 살아있지만 이후 Z80 만큼 성공적인 제품을 내놓지 못했다. 3년 후인 1979년에 내놓은 16비트 마이크로프로세서인 Z8000는 기대 성능을 달성하지 못해 상업적으로 실패했다. 이후 Z80을 개선한 Z180이나 Z8000을 개선한 Z280, Z80을 임베디드용으로 만든 eZ80, 32비트 마이크로프로세서인 Z80000도 내놓았으나, 16비트 PC CPU 시장은 x86을 내세운 인텔과 68000 시리즈의 모토로라 등이 주도하게 되었다. 결국 자일로그는 마이크로컨트롤러를 비롯한 주로 컨트롤러 제품 회사로 전환했다.

한때 컴퓨터 기술에 관심을 갖고 있었고 자일로그의 유망함을 본 석유 회사, 엑슨[4]이 1980년에 인수해 자회사가 된 적도 있었다. 그러나 1989년에 주식을 되사들여(MBO, Management Buyout) 엑슨에게서 독립했으며, 1991년에 나스닥에 상장된 적도 있었다. 결국 1998년 사모 펀드 운영 회사에게 넘어갔으며, 2001년 닷컴 버블 붕괴 여파로 연방 파산 법원에 파산 보호 챕터 11을 신청하기도 했다. 2009년에 아익시스 코퍼레이션(IXYS Corporation)이 인수했고, 회로 보호 제품을 만드는 회사 리틀퓨즈(Littelfuse)가 2017년 아익시스 코퍼레이션을 인수해 오늘날 리틀퓨즈의 자회사에 이르고 있다.


5. Z80을 탑재한 시스템[편집]



5.1. 컴퓨터[편집]


  • 1970/1980년 대에 인기 있던 CP/M 운영 체제를 넣은 컴퓨터. 본래는 인텔 8080용으로 만들어진 운영 체제이나 결국 시장을 지배한 것은 상위 호환 버전인 Z80.
  • 싱클레어 ZX80/ZX81/ZX 스펙트럼
  • 암스트래드 CPC
  • 탠디 TRS-80
  • 코모도어 128
  • MSX. 사양 규격이 'Z80A 상당품'으로 느슨했다. 주로 Z80A 3.579MHz를 썼으나 H64180 같은 호환품을 달기도 했고, 후기에는 'MSX-Engine'이라는 이름으로 주요 부품을 원칩화해서 내장하게 되었는데, 여기에 포함되어 있다. 일부 파나소닉 기종에는 최대 6MHz (실제 속도는 그보다 낮은 약 5.37MHz)의 Z80B가 달려 나오기도 했다. 최후기 버전인 TurboR에는 Z80을 고속화한 16비트 CPU인 R800이 들어갔다.
  • NEC PC-8001, PC-8801, 샤프 MZ-80을 비롯한 1980년 대 제작된 거의 대부분의 8비트 일본제 컴퓨터. 일본 메이저 컴퓨터 생산 기업들 중에서는 거의 유일한 예외가 모토로라 6809를 채용한 후지쯔 FM7 시리즈 정도.
  • 삼성 SPC-1000, SPC-1500 금성 FC-100을 비롯한 1980년 대 초반에 제작된 거의 대부분 8비트 국내 제작 PC. 대부분이 일본 기종을 죄다 베낀 것이기 때문이다. 다만 세운상가제 애플 II 클론 PC는 'MOS 테크놀로지 6502'라는 다른 CPU를 사용했다.


5.2. 게임기와 아케이드 기판[편집]




5.2.1. 사운드, 기판 간 통신 등의 보조 프로세서[편집]


  • CPS1
  • CPS2(캡콤 "가부키" DL-030P[5] 또는 Z80)
  • MODEL1
  • MODEL2
  • MODEL3
  • PolyGame Master
  • 네오지오
  • 네오지오 포켓
  • 메가 드라이브
  • 타이토 F2 시스템


5.3. 기타[편집]


  • 1990년 대 초중반 노래방 기기. 주로 오디오 칩이나 주변 장치들을 관리하는 용도로 많이 사용되었다.
  • TI-83, TI-84텍사스 인스트루먼트공학용 계산기. 2015년에 TI-84의 업그레이드 모델이 나옴과 동시에 명령어가 추가되고 성능이 강화된 eZ80을 쓰기 시작했다. TI-89와 그 위의 등급의 모델들은 모토로라 68000이나 ARM을 쓴다. 이 계산기가 아직도 생산된다는 말은 현재도 자일로그에서 Z80을 찍어내고 있다는 말이다! TI 그래핑 계산기 비교. 실제로 자일로그 Z80은 현재도 임베디드 기기들의 마이크로컨트롤러에 많이 쓰인다. 성능이 제한되어 있는 임베디드 기기에 고성능 프로세서를 달아 봐야 비용만 비싸지기 때문이다.
  • 마이크로 마우스. 1980년 대 초중반에 시작된 마이크로 마우스 경진 대회에 사용된 가장 흔한 조합이 Z80 프로세서에 스테핑 모터를 장착한 형태였다. Z80 어셈블리 소스 코드도 비교적 쉽게 구할 수 있었다.


6. 여담[편집]


  • 1970년대나 1980년대 초반에 출간된 전자/디지털/컴퓨터 서적들은 'Z80'을 '제트팔십'으로 읽었다. 가령 월간 라디오와 모형 1982년 9월호에도 이렇게 소개되었다. 1980년대 중반에 출간된 서적에는 '지팔공'으로 되어 있다. 어떻게 읽느냐에 따라서 전자기기 입문시기를 확인할 수 있을 정도. 같은 시기 매일유업에서 G-80이라는 유아용 분유가 대대적으로 TV광고를 하던 때가 있었는데, 때문에 '제트팔십'이 익숙한 세대(대다수가 당시 28~32세 신생아 아빠)들은 '지팔공'이라는 말을 들으면 이 분유가 먼저 생각날 정도라고 한다. 지금은 제네시스 G80


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

[1] 이 밖에 Quad Flat Package 형태도 있다.[2] PDF 파일이다. 자동 다운로드 주의[3] 상위 호환이지만 확장을 위해 8080 에서 일부 중복된 opcode를 다른 용도로 사용하기 때문에, 8080 용으로 만든 코드 중에서 이런 중복된 opcode를 사용한 코드는 제대로 실행할 수 없다. 물론 당시 대부분의 어셈블러가 중복된 opcode 가 있는 경우에 동일한 것을 선택해서 사용했었는데 Z80은 이 어셈블러들이 쓰지 않는 쪽의 코드를 써서 확장을 했기 때문에 실제로 문제가 되는 경우는 극히 드물었다.[4]엑슨모빌의 일부이다.[5] Z80에 암호화 기능을 넣은 프로세서