R800(CPU)

R800 (CPU)
R800

R800MSX Turbo-R 가정용 컴퓨터에서 사용되는 중앙 처리 장치입니다.R800은 일본의 ASCII Corporation이 설계하고 Mitsui & Co.가 구축했습니다.목표는 Z80과 호환성이 있는 최신 파이프라인 CPU 바이너리, 즉 MSX 소프트웨어와 호환되며 오래된 MSX Z80 기반 하드웨어와의 호환성도 유지하는 것이었습니다.

호환성.

MSX Turbo R을 개발하는 동안 ASCII Corporation은 Z80과 호환되거나 호환되지 않는 다양한 프로세서를 후보로 검토했습니다.당시 회사원 기시오카 카즈야( ( k)는 Z80의 [1]고속버전으로 MSX 아키텍처에 크게 맞춘 ASIC를 연구·개발하고 있었다.

오래된 MSX 소프트웨어와의 소프트웨어 호환성을 위해 R800은 Z80과 동일한 명령 세트를 사용하며 MULUB(8비트), MULUW(16비트)라고 불리는 8x8비트 및 16x16비트 곱셈 명령 등 작지만 유용한 명령만 추가합니다.또한 8비트 레지스터(IXH, IXL, IYH, IYL)로서 IX 및 IY를 취급하는 명령의 opcode를 포함한 문서화되어 있지 않은 Z80 명령의 대부분은 공식화되었습니다.

R800은 Z80을 직접 기반으로 하는 것이 아니라 Z800 패밀리에서 파생된 제품이기 때문에 문서화되어 있지 않은 다른 Z80 기능이 일부 없습니다.예를 들어 F레지스터의 비트3 및 5로 나타나는 문서화되어 있지 않은 플래그는 Z80과 같은 값(ZEXALL 테스트의 실패의 원인)을 상정하고 있지 않습니다.또한 문서화되어 있지 않은 opcode는 SLA 명령의 에일리어스일 뿐입니다.

하드웨어 변경

R800의 실장은 훨씬 새로운 설계로, 구 Z80과는 크게 다릅니다.변경 사항은 Z80 호환 프로세서Z800, Z280, Z380 및 eZ80 라인과 유사합니다.원래의 Z80은,[2] 통상의 4비트 ALU 하드웨어를 내부적으로 사용하고 있습니다.이는 완전한 유선 8비트 ALU 로직(인텔 8080[3] 등)을 사용하여 동일한 CPU와 경쟁할 수 있는 솔루션입니다.단, R800 설계자는 파이프라인의 실행에 대응하기 위해 풀 16비트 ALU를 실장했습니다.Z80에서 11클럭 사이클을 필요로 하는 ADD HL, BC 등의 명령어는 이 풀와이드 ALU에 의해 실현되는 파이프라이닝의 정도에 따라서는 R800에서1개의 버스사이클(1~2클럭)로 실행할 수 있습니다.이 새로운 MSX에서 사용된 최대 CPU 클럭 속도는 14.32MHz로 이전 MSX에서 사용된 원래 3.57MHz 속도보다 4배 빨랐으며 버스 클럭은 7.16MHz로 증가했습니다.데이터 버스는 이전 하드웨어와의 호환성을 유지하기 위해 8비트를 유지했습니다.

opcode를 가져오는 중

CPU가 opcode를 가져오는 방법이 변경되었습니다.원래 Z80은 OR A와 같은 간단한 명령을 가져오기 위해 2개의 사이클을 사용하고 새로 고침을 위해 2개의 사이클을 사용합니다.MSX 아키텍처에서는 추가 대기 상태가 발행됩니다.일반적인 MSX 환경에서의 페치 메커니즘을 확인하면 R800에 대해 설명하는 데 도움이 됩니다.

  • Z80, 사이클 1: 상위 8비트 주소 설정
  • Z80, 사이클 2: 주소의 하위 8비트 설정
  • Z80, 사이클 3: 대기 상태
  • Z80, 사이클 4: 리프레시, 파트 1
  • Z80, 사이클 5: 리프레시, 파트 2

MSX의 대부분의 구현에서는 256×256바이트 블록에 배치된 RAM을 사용하기 때문에 페치를 위한 주소를 설정하려면 2개의 사이클이 필요합니다.R800은 상위8비트의 마지막 기존 상태를 기억함으로써 이 문제를 회피합니다.다음 명령이 동일한 256바이트 경계에 있는 경우 상위 8비트는 설정되지 않고 사이클이 저장됩니다.단, Z80에서는 리프레시 사이클에 의해 상위 비트의 정보가 파기되므로 회피책이 [4]필요했습니다.

R800에서 사용한 솔루션은 발행된 명령마다 한 줄의 RAM을 새로 고치는 것이 아니라 RAM 블록 전체를 새로 고치는 것이었습니다.30μs마다 CPU를 4μs 정지시킨 후 RAM 블록을 리프레시한다.fetch 명령어 사이에 리프레쉬가 없고 RAM 칩이 고속화되어 대기 상태가 해제되므로 1 사이클만으로 간단한 명령을 발행할 수 있습니다.이 사이클은 위의 Z80 예에서 사이클 2가 됩니다.사이클 1은 옵션이 되며 프로그램이 256바이트 경계를 넘을 때만 발행됩니다.

외장 하드웨어

이 모든 것이 적용되는 것은 MSX Turbo-R에서 사용되는 고속 RAM뿐입니다.카트리지 슬롯을 통해 연결된 외장 하드웨어는 Z80과 유사한 타이밍을 사용합니다.Turbo-R의 내장 ROM도 이 페치 방식에 충분히 빠르지 않기 때문에 Turbo-R의 추가 칩은 ROM의 내용을 RAM에 미러링하여 보다 빠르게 실행할 수 있습니다.

레퍼런스

  1. ^ "MSXturboR開発秘話" [MSXturboR development story]. MSXマガジン (in Japanese). November 1990. p. 70.
  2. ^ "The Z-80 has a 4-bit ALU. Here's how it works".
  3. ^ 8080은 같은 디자이너(당시 인텔의 Faggin과 Shima)에 의해 설계되었으며 일반 8비트 ALU를 사용했습니다.Z80의 최신 4비트 ALU 실장은 Z80을 8080 설계와 충분히 다르게 만들어 인텔의 소송을 피하기 위한 것입니다.퍼포먼스는 크게 저하되지 않았습니다.8080의 경우 16비트 명령에는 11사이클이 소요되었습니다.실제로 8비트 명령에는 4사이클의 속도가 빨라졌습니다.8080의 경우 클럭 주파수는 대략 2배로 증가했기 때문에 Z80은 8080에 비해 크게 향상되었습니다.
  4. ^ "R800 - MSX Wiki".

추가 정보