히타치 6309
Hitachi 6309![]() Hitachi 63C09E, 6309의 3MHz 외부 클럭 버전. | |
일반 정보 | |
---|---|
개시. | 전 ( |
공통 제조원 | |
성능 | |
최대 CPU 클럭 속도 | 1 MHz ~5 MHz |
데이터 폭 | 8비트 |
주소 폭 | 16비트 |
물리 사양 | |
패키지 |
|
역사 | |
전임자 | 모토로라 6809 |
6309는 1982년 말에 출시된 Hitachi의 Motorola 6809 마이크로프로세서 CMOS 버전입니다.처음에는 많은 내부 개선 사항을 고려하지 않고 6809의 저전력 버전으로 출시되었습니다.
「에뮬레이션 모드」에서는, 6809 와 완전하게 호환됩니다.6809 사양에는 더 높은 클럭 속도, 향상된 기능, 새로운 명령 및 추가 레지스터가 추가되어 있습니다.대부분의 새로운 명령어는 추가 레지스터와 최대 32비트 연산, 하드웨어 분할, 비트 조작 및 블록 전송을 지원하기 위해 추가되었습니다.통상 6309는 네이티브모드로 6809보다 30% 빠릅니다.
이 정보는 히타치에서 발행한 적이 없습니다.후지쯔 PC 유저 전용의 일본 잡지 「오! FM」1988년 4월호에는, 6309의 추가 기능에 대한 최초의 설명이 실렸다.그 후, 가쿠가와 히로츠구는 comp.sys.m6809에 6309의 신기능과 사용설명서를 게재했다.이를 통해 탠디 컬러 컴퓨터 3용 NitrOS-9가[1] 개발되었습니다.
프로그래밍 모델
Motorola 6809와의 차이점
6309는 몇 가지 주요 영역에서 6809와 다릅니다.
프로세스 테크놀로지
6309는 CMOS 테크놀로지로 제조되며 6809는 NMOS 디바이스입니다.따라서 6309는 6809보다 작동에 필요한 전력이 적습니다.
또한 저전력 사용으로 인해 내부 상태를 지속적으로 새로 고칠 필요가 없으므로 최대 15 사이클 동안 일시 중지할 수 있습니다.이 기능을 사용하면 외부 디바이스가 CPU를 일시 정지하고 메모리버스를 해제하거나 소량의 메모리를 읽거나 쓰거나 CPU를 다시 일시 정지 해제할 수 있기 때문에 직접 메모리에 액세스할 때 유용합니다.다른 논리는 필요 없습니다.
역동적인 디자인입니다.데이터 시트에는 최소 클로킹 주파수가 지정되어 있으며 클럭 속도가 너무 낮으면 상태가 손실됩니다.
클럭 속도
6309에는 6809와 마찬가지로 B(2MHz) 버전이 있습니다.단, "C" 속도 정격은 참조되는 데이터시트에 따라 3.0 또는 3.5MHz의 최대 클럭 속도로 생성되었습니다.(일본의 몇몇 컴퓨터에서는 63C09 CPU가 NTSC 컬러버스트 주파수인 3.58MHz로 기록되고 있기 때문에 3.5등급이 될 가능성이 높습니다).일화 및 개별 보고서에 따르면 63C09 변종은 부작용 없이 5MHz로 측정될 수 있습니다.6809와 마찬가지로 Hitachi CPU는 내부 클럭 버전과 외부 클럭 버전 모두(각각 HD63B/C09 및 HD63B/C09E)가 있습니다.
계산 효율
기본 6809 호환 모드가 아닌 6309 네이티브 모드로 전환하면 많은 주요 명령이 더 적은 클럭 사이클로 완료됩니다.이를 통해 실행 속도가 최대 30% 향상되는 경우가 많습니다.
추가 레지스터
- 2개의 8비트 어큐뮬레이터 'E'와 'F'이들은 16비트 어큐뮬레이터 'W'로 연결될 수 있습니다.기존 6809 16비트 어큐뮬레이터 D와 W를 연결하여 32비트 어큐뮬레이터 'Q'를 형성할 수 있다.D는 'Double'의 줄임말이고 Q는 보유 바이트 수인 'Quad'의 줄임말일 수 있습니다.
- 레지스터 간 지침에 대한 전송 레지스터 'V'이 값은 하드웨어 리셋의 영향을 받지 않기 때문에 일정한 값, 즉 'V'를 유지할 수 있습니다.
- 8/16비트 제로 레지스터 '0'을 사용하여 제로 상수를 사용하여 작업 속도를 높입니다.이 레지스터는 항상 0을 읽고 쓰기를 무시합니다.
- 모드 레지스터 'MD'는 작동 모드를 제어하는 보조 상황 코드 레지스터입니다.이 레지스터는 4비트만 정의됩니다.
추가 절차
새로운 명령의 대부분은 로드, 저장, 추가 등 추가 레지스터의 존재를 처리하기 위한 기존 명령의 수정입니다.정규 6309 추가에는 레지스터 간 연산, 블록 전송, 하드웨어 분할 및 비트레벨 조작이 포함됩니다.또한 16비트 레지스터 D, W는 16비트 연산과 16비트 시프트 및 회전 연산의 대상이 될 수 있다.6809 에서는, 이러한 조작은 8비트 오퍼랜드로 제한됩니다.
추가 명령어의 사용자 친화성에도 불구하고, 6809 프로그래밍[who?] 전문가가 분석한 바에 따르면 새로운 명령어 중 많은 수가 특히 엄격한 [citation needed]루프에서 동등한 6809 코드보다 실제로 느립니다.프로그래머가 특정 애플리케이션에 가장 효율적인 코드를 사용할 수 있도록 신중하게 분석해야 합니다.
대부분의 새로운 명령어는 프리픽스 opcode를 사용하기 때문에 유사한 6809 명령과 비교했을 때 1사이클 느려집니다.반면 6309 네이티브 모드에서는 여러 명령을 한 번 이상 더 빠르게 실행합니다.6809 및 6309에서 'A' 레지스터와 'E' 레지스터의 8비트 LD 명령 타이밍을 비교합니다.
설명 | 6809 | 6309 에뮬레이션모드 | 6309 네이티브모드 |
---|---|---|---|
LDA 즉시 실행 | 2 사이클 | 2 사이클 | 2 사이클 |
LDE 즉시 | 없음 | 3 사이클 | 3 사이클 |
LDA 다이렉트 | 4 사이클 | 4 사이클 | 3 사이클 |
LDE 다이렉트 | 없음 | 5 사이클 | 4 사이클 |
LDA 인덱스 | 4 사이클 이상 | 4 사이클 이상 | 4 사이클 이상 |
LDE 인덱스 | 없음 | 5 사이클 이상 | 5 사이클 이상 |
LDA 연장 | 5 사이클 | 5 사이클 | 4 사이클 |
LDE 확장 | 없음 | 6 사이클 | 5 사이클 |
또, 레지스터간 조작과 새로운 16비트 조작은 다소 혼재하고 있습니다.어드레싱 모드와 6309 모드에 따라서는, 동등한 6809 코드가 고속이 됩니다.예를 들면, 배타적 또는 지시의 타이밍을 살펴보자.
설명 | 6809 | 6309 에뮬레이션모드 | 6309 네이티브모드 |
---|---|---|---|
즉시 EORA | 2 사이클 | 2 사이클 | 2 사이클 |
EORD 즉시 | 없음 | 5 사이클 | 4 사이클 |
EORA 다이렉트 | 4 사이클 | 4 사이클 | 3 사이클 |
EORD 다이렉트 | 없음 | 7 사이클 | 5 사이클 |
EORA 인덱스 | 4 사이클 이상 | 4 사이클 이상 | 4 사이클 이상 |
EORD 인덱스 | 없음 | 7 사이클 이상 | 6 사이클 이상 |
EORA 확장 | 5 사이클 | 5 사이클 | 4 사이클 |
EORD 확장 | 없음 | 8 사이클 | 6 사이클 |
EORR 인터레지스터 | 없음 | 4 사이클 | 4 사이클 |
위의 표에서 알 수 있듯이, 즉시 파라미터를 가진 배타적 또는 16비트 레지스터 D는 2개의 8비트 명령 EORA imm, EORB imm으로 대체될 수 있으며 6309가 에뮬레이션 모드로 실행되면 더 빠르게 실행됩니다.EORB imm은 8비트 명령의 시퀀스 EORB imm임을 인식해야 하지만 첫 번째 경우 8비트 동작의 결과, 두 번째 경우 16비트 동작의 결과에 따라 조건 코드 CC 레지스터가 설정되므로 16비트 EORD imm 명령과 정확하게 동등하지 않다.
레지스터간 EORR 명령에서도 같은 문제가 발생합니다.8비트 오퍼랜드와 16비트 오퍼랜드를 모두 수신하여 항상 4사이클 이내에 실행됩니다.단, 8비트 오퍼랜드의 경우 적절한 경우 EORA imm 또는 EORB imm 명령을 사용하는 것이 더 빠릅니다.또, 6309가 네이티브 모드로 동작하고 있는 경우, 명령 EORA 다이렉트, EORB 다이렉트는 레지스터간 동작보다 1사이클 적은 3사이클 밖에 걸리지 않습니다.
기타 하드웨어 기능
FIRQ 인터럽트의 동작 모드를 변경할 수 있습니다.PC 및 CC 레지스터를 스택하는 대신(통상 6809 동작), IRQ 인터럽트와 같이 레지스터 세트 전체를 스택하도록 FIRQ 인터럽트를 설정할 수 있습니다.또, 6309는, 부정한 명령 페치를 위한 트랩 모드와 0을 통한 나눗셈을 위한 트랩 모드를 2개 갖추고 있다.불법 명령어 가져오기 기능은 마스킹할 수 없으며, 많은 TRS-80 컬러 컴퓨터 사용자들은 6309가 실제로는 확장되고 알려지지 않은 기능의 표시기일 때 "버그"였다고 보고했습니다.
레퍼런스
- ^ "The NitrOS-9 Project". SourceForge.
외부 링크
- 1988년 4월호 <오!FM> 기사 (일본어)
- 가쿠가와 히로쓰구의 오리지널 '시크릿 6309 특징 메모'와 구글 유즈넷 아카이브 스레드
- HD63B09EP 테크니컬 레퍼런스 가이드
- 6x09 마이크로프로세서 명령 집합 2016-10-23 웨이백 머신에 보관
- 6809/6309 어셈블리 및 니모닉 정보 (PDF) By Chris Lomont, 버전 1.2 2007년 5월]
- 6809와 6309 명령 목록 비교