CSG 65CE02

CSG 65CE02
CSG 65CE02
일반 정보
시작됨1988
중단됨1988
일반 제조업체
퍼포먼스
최대 CPU 클럭 속도2MHz ~ 10MHz
건축과 분류
명령 집합6502
물리적 사양
패키지

CSG 65CE02는 1988년 코모도어 반도체 그룹이 개발한 8/16비트 마이크로프로세서다.[1]1983년 웨스턴디자인센터가 발표한 CMOS WDC 65C02에서 개발한 MOS테크놀로지 6502 계열이다.

65C02와 마찬가지로 65CE02는 원래의 6502의 8µm NMOS 기술 대신 2µm CMOS 공정으로 제작되어 칩을 더 작게(따라서 더 저렴하게) 만들 뿐 아니라 훨씬 적은 전력을 사용하게 되었다.65CE02는 65C02의 변경사항 외에도 프로세서 파이프라인의 개선을 포함하여 6502(및 대부분의 변형)의 최소 2 사이클이 아닌 1바이트 명령이 1 사이클에 완료될 수 있도록 하였다.또한 페이지 경계를 넘을 때 1주기 지연을 없앴다.이러한 변화는 동일한 클럭 속도에서 성능이 25% 향상되었다.

다른 변경사항으로는 이 레지스터를 사용하기 위한 여러 지침의 추가 및 수정과 함께 세 번째 인덱스 레지스터인 Z가 추가되었다.사이비 레지스터로 사용되었던 최초의 256바이트 메모리인 제로 페이지는 이제 B(ase 페이지) 레지스터를 사용하여 메인 메모리의 어떤 페이지로 이동될 수 있었다.스택 레지스터는 유사한 페이지 레지스터인 SPH(스택 포인터 높이)를 사용하여 8비트에서 16비트까지 확장되어 스택을 1페이지에서 벗어나 더 큰 크기로 확장할 수 있었다.

65CE02는 공개되지 않은 65 Commodore 65를 위해 개발된 칩 CSG 4510의 시스템 기반이었다.65CE02는 나중에 아미가 컴퓨터의 A2232 직렬 포트 카드에 사용되었다.다른 용도는 본 적이 없는 것 같다.

설명

CSG 65CE02 레지스터
15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (비트 위치)
메인 레지스터
A 축전기
색인 레지스터
X X지수
Y Y지수
Z Z지수
SPH SPL 스택 포인터
B 기본 페이지
프로그램 카운터
PC 프로그램 카운터
상태 레지스터
N V E B D I Z C 프로세서 플래그
CSG 65CE02 핀아웃

배경

1970년대 후반, 6502를 설계했던 최초의 MOS 테크놀로지 팀은 해체되었다.빌 멘쉬는 애리조나로 옮겨 웨스턴 디자인 센터(WDC)를 세워 6502년 기반 디자인 서비스를 제공했다.1981년경, 6502 설계의 주 면허인인 록웰 반도체, GTE, 시그니틱스WDC 65C02로 이어지는 멘쉬와 함께 재설계 작업을 시작했다.이것은 주로 10배에서 20배 낮은 전력을 사용하는 원래의 NMOS 6502의 CMOS 구현이었지만, 특정 애플리케이션의 코드 밀도를 향상시키는 데 도움이 되는 새로운 지침도 다수 포함되었다.새 지침 포함INA/DEA축열조를 증가시키거나 감소시킨다.STZ기억장소에 0을 쓰려면BRA지점 스타일의 1바이트 상대 주소를 가진 점프였습니다.65C02는 또한 원래의 6502 설계에서 다수의 작은 버그를 수정했다.

원래의 6502는 마이크로컴퓨터가 존재하기 이전의 시대에 설계되었는데, 이때 마이크로프로세서가 스마트 단말, 데스크탑 계산기, 그리고 많은 다른 산업 컨트롤러 시스템과 같은 단순한 시스템의 기초로 사용되었다.이 또한 메모리 소자는 일반적으로 매우 비싸고 메모리 밀도가 낮은 정적 램을 기반으로 하는 시대였다.이러한 두 가지 이유 때문에, "대규모"의 메모리를 처리할 수 있는 능력이 필요하지 않았고, 많은 프로세서는 더 높은 성능을 제공하기 위해 더 큰 주소 공간의 작은 부분과 함께 작동하는 작동 모드를 가지고 있었다.첫 번째 메모리 페이지, 즉 "제로 페이지"를 사용하여 더 빠른 액세스를 제공하고, 두 번째 페이지인 "1페이지"를 256바이트 스택을 보유하는 6502의 경우 그랬다.

1980년대까지, 이러한 가정들은 더 이상 유효하지 않았고, 이러한 프로세서에 기반한 많은 기계들은 6502가 처리할 수 있는 최대 64 kB와 함께 공급되었으며, 훨씬 덜 비싸고 밀도가 높은 동적 RAM을 사용했다.제로 페이지 어드레싱 모드의 속도 이점은 여전했지만, 지금은 엄청나게 큰 메모리 공간 내에 존재한다.마찬가지로, 한 페이지짜리 통화 스택은 이제 전체 메모리 내의 피트가 되었고, 스택 공간을 엄청나게 사용하는 고급 언어는 6502에서 쉽게 실행될 수 없었다.

새 기능

65CE02는 메인 메모리가 많은 시스템에 더 적합하도록 메모리 모델을 확장하는 65C02의 한층 개선된 버전이다.이를 위해 다음과 같은 새로운 기능을 추가한다.

  • 65CE02는 8비트 B 레지스터를 기본 페이지에 추가하며, 0 페이지를 메모리의 모든 위치로 오프셋한다.전원을 켜거나 재설정할 때 B가 0으로 설정되어 있으므로, 65CE02는 처음에 6502와 정확하게 작동한다.값을 B 레지스터에 넣는 경우TAB(A를 B로 전송) 그러면 제로 페이지가 새로운 위치로 이동한다.이 기능의 중요한 용도는 페이지의 256바이트 내에 들어갈 수 있는 작은 루틴이 제로 페이지 주소 지정(현재 기본 페이지 주소 지정)을 사용할 수 있도록 하는 것이다. 이 루틴은 주소가 더 이상 두 번째 바이트를 가지고 있지 않기 때문에 코드를 더 작게 만들고, 두 번째 바이트를 메모리에서 가져올 필요가 없기 때문에 코드가 더 빨리 실행되도록 한다.[1]
  • 65CE02는 또한 이론적으로 1페이지의 원래 256바이트에서 전체 주소 공간까지 스택을 확장한다.스택 포인터 하이(Stack Pointer High)에 대해 다른 8비트 레지스터인 SPH를 추가함으로써 이 작업을 수행한다.일반적으로 이것은 B와 같이 작동하며, 1페이지에서 선택된 페이지로 스택의 기본 주소를 상쇄한다.그렇지 않으면 이전과 같이 계속 작동하며, 한 페이지, 256바이트의 최대 크기를 가진다.B와 마찬가지로 시동 또는 재설정 시 SPH는 01로 설정되어 65C02와 정확하게 작동한다.[1]
상태 레지스터에 새 "스택 확장" 비트가 설정된 경우 새 비트를 사용하십시오.CLE/SEE지시사항, 스택 포인터는 진정한 16비트 값이 된다.SPH의 값은 스택 포인터 로우 SPL로 알려진 원래 SP의 값에 추가되어 스택 하단에 16비트 포인터를 생성한다.이것은 상위 언어에 비해 너무 작았던 원래의 256바이트보다 훨씬 더 큰 스택을 만들 수 있게 한다.[1]
이것은 어디에나 있을 수 있는 256바이트의 스택과 16비트 스패닝 메모리의 두 가지 유형이 있다는 것을 의미한다.후자가 더 유연하지만, 스택으로의 액세스는 두 레지스터에서 16비트 주소를 생성하여 추가 사이클을 수행하여 전체 성능을 둔화시켜야 한다는 것을 의미한다.가능한 한 작은 스택을 사용하면 성능이 향상된다.[1]
  • 65CE02에는 새로운 인덱스 레지스터인 Z도 추가된다.시작 또는 재설정 시 이 값은 0으로 설정되며, 이는 스토어-Z-to-메모리 명령,STZ는 65C02에서와 마찬가지로 작동하며, 여기서 동일한 명령이 메모리 저장소를 의미한다.이를 통해 65CE02에서 수정되지 않은 65C02 코드를 실행할 수 있다.Z 레지스터에 접근할 수 있도록 많은 다른 지침이 추가되거나 수정된다.이것들 중엔LDZ메모리로부터 값을 로드한다.TZA/TAZ값을 축전지로 전송하거나 축전지에서 전송한다.PHZ/PLZZ를 스택에 밀어넣고 당기는 것,INZ/DEZ증가 및 감소의 경우CPZZ 값을 메모리의 값과 비교한다.[1]
  • 65C02가 추가되었다.BRA, Branch Always, 이것은 본질적으로 a였다.JMP절대 16비트 주소 대신 분기 유형 8비트 상대 주소를 사용한 경우.알 수 없는 이유로 65CE02는 니모닉을BRU. 그들은 또한 더했다.BSR명령, Branch to SubRoutine(지점 - SubRoutine), 이 모드에서는JSR서브루틴으로 이동하십시오.[1]
  • 또한 CE는 기존의 모든 분기 지침에 16비트 주소 지정 또는 "상대 단어"를 추가했다.이전에, 지점들은 서명된 8비트 값인 "상대 주소"에 기초하여 128개소만 뒤로 이동하거나 127개소를 전진시킬 수 있었다.65CE02에서는 16비트 값을 가진 분기를 따라가면 -32768 또는 +32767 위치가 될 수 있다."긴 분기"를 수행하기 전에 보통은JMP16비트 대상에 연결한 다음, 원하지 않을 때 3바이트에 걸쳐 분기한다.예를 들어, 축전지가 0일 경우 1234달러를 지불하기 위해 분기를 원하면 다음과 같이 처리한다.CMP #$00/BNE +3/JMP $1234, 3바이트를 건너뛰고 싶다는 뜻JMP addr축전지가 0이 아닌 경우.65CE02에서 이것은 다음과 같은 것으로 축소될 수 있다.CMP #$00/BEQ $0123따라서 코드를 보다 명확하게 하고, 2바이트의 지시사항을 삭제하며, 분기를 가져오고 실행할 수 있는 손실 사이클의 필요성을 제거한다.단, 여전히 상대 주소 지정을 사용하기 때문에, 상대 주소는 기계 코드로 변환할 때 프로그래머나 조립자에 의해 라벨로부터 계산되어야 한다.[1]
  • 이 시스템에 추가된 또 다른 것은 16비트 데이터에 대해 작업을 수행한 여러 "단어" 지침이었다.여기에 포함INW/DEW메모리에서 값을 증가시키거나 감소시킨다.ASW/ROW산술 시프트(왼쪽) Word 또는 ROtate(왼쪽) Word를 실행하십시오.[1]
  • 보다 사소한 변경사항에는 다음이 포함된다.ASR산술적(서명된) 오른쪽 시프트(논리적 또는 서명되지 않은 오른쪽 시프트만 6502에 포함),NEG A축전지에서 두 개의 보완 부정을 수행하는 명령RTN, 에 대한 변화.RTS(Subroutine에서 되돌리기) 명시적으로 필요하지 않도록 상단 대신 스택에 있는 주소 오프셋으로 돌아가는 기능POP루틴이 더해진 모든 것들을 없애버렸어시스템은 또한 간접 주소 지정의 기준으로 스택의 기본 주소를 사용하는 새로운 주소 지정 모드를 추가했다.[1]
  • 마지막으로, 새로운 4바이트AUG향후 확장을 위한 지침이 추가되었다.데이터 시트는 궁극적인 용도에 대해서는 명확하지 않지만, 메모리 관리 장치와 같은 공동 프로세서 장치에 지시사항을 전달하기 위한 자리 표시자로 보인다.[1]

파이프라인 개선

원래의 6502의 주요한 이상한 점은 다음과 같은 1바이트의 지시였다.INX여전히 완료하는데 2 사이클이 걸렸다.이것은 파이프라인 시스템의 단순화를 허용했다; 연산 디코딩 중에 메모리에서 다음 바이트를 가져왔기 때문에, 무슨 일이 있어도 다음 바이트를 가져왔음을 의미한다.대부분의 지시사항에서 이 바이트는 피연산자의 일부(또는 전체)가 될 것이며, 그 후 현재 소멸된 지시사항에 즉시 공급될 수 있다.[2]

명령이 단 하나의 바이트만 필요한 경우 프로세서는 첫 번째 바이트를 디코딩할 때 다음 바이트를 여전히 읽는다.이 경우 다음 바이트는 다음과 같은 지시였지만, 그것을 해독하기 위해 파이프라인의 첫 번째 단계로 다시 공급할 방법이 없었다.가져온 명령은 대신 폐기하고 다시 읽어 디코더에 주입했다.이것은 순환을 낭비한다.비록 이것이 파이프라인의 단순성을 유지하기 위한 것인지 아니면 사용 가능한 소스에서는 설명되지 않지만, 이 "기능"은 65C02년에 유지되었다.[2]

주기 호환성을 유지하는 것은 65CE02의 요구사항이 아니었으며, 새로운 제작 공정으로 인해 파이프라인 내 여분의 회로가 문제가 되지 않게 되었으므로, 파이프라인은 단일 사이클에서 1바이트의 지시사항을 올바르게 처리하도록 재조정되었다.[2]이러한 개선을 통해 65CE02는 이전 65xx 모델보다 최대 25% 빠르게 코드를 실행할 수 있다.[1]

추가 개선사항은 최종 주소를 작성하기 위해 값을 추가하는 지시사항을 다루는 문제를 다룬다.를 들어 인덱스 레지스터 중 하나의 값이 기본 주소에 추가된 다음 명령을 결과 주소에 적용하는 "인덱스된 간접"이 있다.원래의 6502에서는, 만약 두 값의 추가가 페이지 경계, 256개소 마다, 최종 주소 값을 산출하기 위해 추가 사이클이 필요했다.65CE02는 이러한 한계를 제거하여, 일반적으로 사용되는 모드의 성능을 향상시켰다.[1]

신체상세내역

2µm CMOS 기술을 사용하여 제작되어 65xx 제품군의 이전 NMOSHMOS 버전에 비해 낮은 전력 작동이 가능하다.6502와 핀이 호환되는 40핀 DIP에 내장되어 있다.[3]

CSG 4510

CSG 4510

4510은 65CE02의 패키지(SiP) 변형으로, 6526 CIA I/O 포트 컨트롤러 2개와 주소 공간을 20비트(1메가바이트)로 확장하기 위한 사용자 정의 MMU를 포함하고 있다.84핀 PLCC에 보관되어 있다.[4]

4510은 미공개 가정용 컴퓨터 65대와 미공개 CDTV의 비용 절감형 개정판에 사용되었다.[5][6]

적용들

65CE02는 아미가 컴퓨터의 Commodore A2232 직렬 포트 카드에 사용되었다.[7][8]

참고 항목

참조

  1. ^ a b c d e f g h i j k l m "MOS 65CE02 Microprocessor Data Sheet" (PDF).
  2. ^ a b c "US patent 5088035: System for accelerating execution of program instructions by a microprocessor".
  3. ^ "Commodore Semiconductor Group CSG65CE02 Technical Reference". zimmers.net. 2009-08-18. Retrieved 2013-06-21.
  4. ^ "Amiga Stuff: 4510 Hardware Info".
  5. ^ a b "Commodore Knowledge Base: The Commodore 65".
  6. ^ "Amiga Hardware Database: CDTV II".
  7. ^ "Amiga Stuff: 65CE02 Hardware Info".
  8. ^ "Big Book of Amiga Hardware: Commodore A2232".

추가 읽기

외부 링크