' WDC 65816을 “ 외부에서 ” 16 비트 버전에서 사용할 수없는 이유는 무엇입니까?

실제로 WDC의 실제 디자인 노트가없는 한 제목 필드에 대한 질문은 실제로 너무 깁니다. “정확히 단점은 무엇입니까? 16 비트 데이터 버스 및 / 또는 비 다중화 주소 버스가있는 WDC 65816 버전을 사용하는 것이 이점과 비교했을 때 어떤 이점이 있습니까? “

WDC의 모든 (비 소프트 ¹) 버전 내가 알고있는 65816에는 8 비트 데이터 버스와 데이터 버스 핀에 다중화 된 주소 버스의 상위 8 비트가있는 외부 인터페이스가 있습니다. 따라서 16 비트 데이터 액세스에는 2 개의 사이클이 필요합니다 (예 : m 비트 세트가있는 div id = “c619c4cdcd”>

및 추가 타이밍 제약을 도입 할 수있는 주소 라인의 상위 8 비트를 래치하려면 외부 로직이 필요합니다. .

이렇게하면 칩을 40 핀 패키지에 넣을 수 있습니다. 이는 합리적인 옵션처럼 보이지만 더 큰 패키지에 버전이있는 것도 배제하지 않습니다. 4 년 전에 Motorola 68000은 별도의 24 비트 주소와 16 비트 데이터 버스가있는 64 핀 DIP 패키지로 처음 제공되었으므로 합리적인 비용으로이를 수행 할 수있는 기술이 오랫동안 사용 가능했습니다. 물론 그 이후로 많은 핀 수가 많은 패키징이 보편화되었지만 지금도 WDC는 44 핀 (PLCC 및 QFP) 패키지 만 제공합니다.

40 핀 패키지도 제공하지 않습니다. 16 비트 외부 데이터 버스가 20 비트 외부 주소 버스에 멀티플렉싱 된 Intel 8086처럼 완전한 16 비트 외부 데이터 버스를 사용하지 마십시오. 이는 별도의 8 비트 및 16 비트 데이터 버스 버전을 제조해야 함을 의미 할 필요도 없습니다. 1990 년 Motorola는 MC68008 (68000과 8 비트 외부 데이터 버스)을 MC68HC001로 교체하여 외부 데이터 버스를 선택할 수있었습니다. 재설정 할 때 너비.

그렇다면 다른 초기 16 비트 CPU 공급 업체에서 제공하는 “완전한 16 비트”외부 인터페이스가 오늘날까지도 부족한 이유는 무엇입니까? 풀 16 비트 외부 인터페이스의 다양한 형태에 대해 어떤 단점이 있습니까?


¹ 즉, FPGA 또는 ASIC 코어와 달리 기성품으로 구입할 수있는 칩 원하는 모든 패키지에 통합 할 수 있습니다.

댓글

답변

65816에는 물리적으로 8 비트 ALU가 있지만 많은 내부 레지스터는 이제 16 비트 너비입니다. 따라서 16 비트 모드에서 각 ALU 작업을 수행하는 데 추가주기가 필요하며 이는 데이터 버스를 통해 추가 데이터를 가져 오는 데 필요한 시간을 유용하게 제공합니다 (인터페이스가 매우 간단합니다).

거기 WDC가 여전히 임베디드 시스템 개발자에게 제공하는 65816 코어의 세미 커스텀 버전에서도 16 비트 데이터 버스를 노출 할 수있는 코어의 일부가 아닙니다.

물론 그렇습니다. 더 넓은 ALU 및 외부 데이터 버스로 새로운 코어를 설계 할 수 있으므로 16 비트 작업에서 더 높은 성능을 얻을 수 있습니다. 성능을 더욱 향상시키기 위해 파이프 라이닝과 캐싱을 도입하는 것도 가능할 것입니다. 그러나 결과는 65816 ISA 와만 호환됩니다. 65816이 아닙니다. 또한 더 크고 전력 소모가 많고 더 비싸고 (적어도 더 넓은 버스를 노출하는 데 필요한 더 복잡한 패키지로 인해) 애호가 친화적 인 훨씬 덜합니다.

댓글

  • 데이터 시트 ( datasheets.chipdb.org/Western%20Design/w65c816s .pdf ), W65C816에는 완전한 16 비트 ALU가 있습니다.
  • @StarCat 흥미로운 점입니다. 명령 타이밍을 살펴보면 왜 귀찮게할지 궁금합니다. 8 비트 ALU를 사용하면 실제로 제대로 처리 할 수있는 것처럼 보입니다. (INX와 같은 명령어조차도 여전히 두 개의주기입니다.) 아마도 그들은 프로그래머의 ‘ 관점이 16- 프로그래머가 Z80 ‘ s 4를 찾는 것처럼 비트 ALU (즉, 16 비트 추가 명령어 등) -비트 ALU 는 8085 ‘의 8 비트 ALU와 구별 할 수 없습니까?
  • 65816에는 16 비트 ALU가 있습니다. 이는 네이티브 모드와 에뮬레이션 모드 (8 비트 오프셋)에서 동일하게 작동하지만 네이티브 모드에서 페이지 교차에 대한 패널티를받지 않는 분기를 비교할 때 가장 잘 드러납니다. 이는 여전히 에뮬레이션 (및 65C02)에서 발생합니다. 모든 직접 페이지 작업에서 잘 볼 수 있으며 페널티없이 페이지 교차를 처리합니다.에뮬레이션 모드의 DP는 여기에서 DH가 iv id = “b99b3bb142와 같이 ALU가 단순히 ‘ 하향 ‘ 8 비트로 설정되었음을 보여줍니다. “>

0으로 설정하지 않아도됩니다. btu는 무시됩니다.

  • @StarCat 전체 인용은 다음과 같습니다. ” 전체 16 비트 ALU, 누산기, 스택 포인터 및 인덱스 레지스터 “-서투르게 작성 될 수 있지만 레지스터 만 너비가 16 비트임을 암시하는 것 같습니다. 그러나 16 비트 ALU의 성능 특성은이 CPU에서 쉽게 관찰되지 않습니다. 대부분의 피연산자 (메모리 주소 포함)는 한 번에 8 비트 메모리에서로드되어야하기 때문입니다. ALU의 전체 너비가 주소 지정 모드 계산에 사용 되더라도 DPR이 페이지 정렬되지 않은 경우 직접 모드 액세스는 8 비트 ALU와 일치하는 1주기 패널티를받습니다.
  • @Raffzahn 16 비트 인덱스를 사용하는 경우 기본 주소와 인덱스 오프셋 사이에 전체 16 비트 추가를 수행해야합니다. 내부 레지스터 부족으로 인해 기본 주소가 완전히로드 될 때까지 시작할 수 없습니다. 그런 다음 16 + 16 추가에 대해 두 번의 사이클이 필요하지만 16 + 8 추가에 대해 하나의 사이클 만 필요하다는 것은이 목적으로 사용되는 상위 바이트 캐리 전파가있는 8 비트 가산기가 있음을 보여줍니다.
  • 답변

    65816은 기존 6502 고객에 대한 업그레이드 경로를위한 것입니다. 8 비트를 유지하는 것은 사용자 관점에서 합리적인 결정이었습니다.

    • 기존 디자인의 손쉬운 업그레이드
    • 기존 소프트웨어와 완벽하게 호환
    • 표준 40 핀 패키지는 관통 구멍이 적고 취급 비용이 저렴합니다.
    • 확장 된 주소 범위를 사용하려면 단일 래치 만 필요합니다.
    • 표준 8 비트 외부 구성 요소 만 필요합니다.

    특히 후자는 비용 고려에 중요합니다. 구멍을 뚫는 데 시간이 걸리므로 비용이 많이 들기 때문에 모든 구멍을 제조하는 것이 중요합니다. 1983 년에는 16 비트 구성 요소 (RAM / ROM)가 다소 드물고 비쌌습니다. 8 비트 설계에서는 여러 표준 (EP) ROM 및 RAM 칩이 필요한 크기에 따라 정의되었지만 16 비트 데이터 버스에는 항상 각각 최소 2 개가 필요합니다. 결국, 프로토 타입 상태 이전의 디자인은 “비용에 민감하지 않습니다. 65xx 시리즈는 항상 저렴한 비용 / 내장형 응용 프로그램을 대상으로했습니다. 실제로 그 대상 시장은 인텔이 8086을위한 업그레이드 경로로 구상 한 것과 매우 유사했습니다. 85 명의 사용자.

    16 비트 CPU를 설계하고 8 비트 호환 (* 1)을 만든 Intel과 달리 WDC는 8 비트를 유지하여 개발이 간소화되어 CPU 설계에 적합했습니다.

    • 기본 내부 구조는 65C02에서 유지 가능
    • 기본 주소 생성 변경 없음
    • 단어의 바이트에 액세스하기 위해 8/16 비트 버스 프로토콜을 추가 할 필요 없음
    • 명령 대기열 관리가 필요 없음

    그 경로를 따라 가면서 전체 프로젝트는 WDC와 같은 소규모 회사가 제공 할 수있는 리소스로 처리 할 수있을만큼 작게 유지되었습니다. 미래에 위험에 처해 있습니다.

    비교적으로 쉽게 생성 할 수 있다는 점 외에도 16 비트 버스를 사용하는 것은 처음에 예상하는 것만 큼 이득을 얻지 못합니다. 결국 성능은 메모리 대역폭에 관한 것입니다. 그렇지 않습니까? 8088 대 8086은 모두 정확히 동일한 EU (실행 단위, * 1)를 사용하지만 BIU ( 버스 인터페이스 장치 (Bus Interface Unit)는 메모리에 액세스하는 데 사용됩니다. 이론적으로 8086은 동일한 클럭 속도에서 대역폭을 두 배로 늘려 성능을 약 두 배로 제공해야하지만 실제 성능 이득은 약 30-40 %에 불과합니다. 이는 BIU보다 훨씬 더 뛰어납니다. 설계는 100 %에 가깝게 버스를 활용하는 데 매우 효과적입니다 (* 2)

    따라서 버스 폭을 두 배로 늘리면 항상 속도가 두 배 미만으로 제공되지만 디자인의 클럭 주파수를 두 배로 늘리면됩니다. 1983 년까지 메모리는 4MHz 6500 스타일 설계를 달성하기 쉬웠으며 지터없이 4 배의 처리량을 제공했습니다.

    결론 : 8 비트를 유지하면 불필요한 노력과 비용을 피하면서 디자인과 사용자에게 많은 이점을 제공했습니다.

    마지막으로 중요한 것은 부작용으로 65802가 추가로 생성 될 수 있으며 기존 65C02 디자인에서 16 비트 기능을 사용할 수있는 대체 기능을 제공합니다.


    * 1-대부분의 경우 EU는 8086의 “실제”CPU 코어로 볼 수 있습니다.

    * 2-이 중 대부분은 단일 바이트 액세스로 인해 발생합니다. 정렬되지 않은 메모리 워드 및 점프 타겟에 의해 16 비트 버스가 8 비트 작동으로 느려집니다. 새로운 소프트웨어는이를 고려할 수 있지만 기존 소프트웨어는 그렇지 않습니다. 여기에서 최악의 사례는 Applesoft BASIC 일 수 있으며 거의 모든 Zero Page의 포인터 가 홀수 주소에 있습니다. 8 비트의 경우 아무도 신경 쓰지 않고 16 비트는 치명적입니다.

    답변

    8 비트 외부 데이터 버스의 장점과 주소 버스의 상위 8 비트 멀티플렉싱 65816의 첫 번째 릴리스는 분명해 보입니다. 실제로 두 가지 버전의 칩이있었습니다. 질문에 설명 된 W65C816S와 W65C802입니다. Wikipedia에 따르면

    [The] 65C802 … 65C816. 둘 다 동일한 제조 라인에서 생산되었으며 칩이 외부 핀에 연결되는 마지막 금속 화 단계에서만 분기되었습니다. 65C802에서 이러한 핀은 원래 6502와 동일한 레이아웃을 사용하여 드롭 인 교체로 사용할 수있는 동시에 CPU의 16 비트 처리를 계속 사용할 수 있습니다. 그러나 원래 핀아웃을 사용했기 때문에 주소 지정 핀이 16 개뿐이므로 64kB의 외부 메모리에만 액세스 할 수있었습니다. 일반적으로 하드웨어 제조업체가 처음부터 프로젝트를 설계 할 때 65C802가 아닌 65C816을 사용하여 후자가 생산에서 제외되었습니다.

    그러나 이것은 65802가 중단 된 후에도 65816의 모든 버전이 외부 8 비트 인터페이스를 계속 사용하는 이유를 설명하지 않습니다.

    답변

    대답은 간단하다고 생각합니다. 요즘에는 65C816 버전이 필요하지 않습니다. 65C816 제조업체 인 WDC (Western Design Center)는 IP와 IoT에 초점을 맞추고 있습니다. “새로운 65C816″생산품이라고 생각합니다. IMHO, 칩 및 패키지 개정에는 명확한 비즈니스 사례가 없습니다.

    또 다른 질문은 “왜 80 년대에 16 비트 데이터 버스 버전이 없었습니까?”입니다. 합리적인 설명은 다음과 같습니다. 일련의 외부 이벤트였습니다. 시장은 아마도 WDC가 예상했던 것보다 빠르게 움직였을 것입니다 .80 년대 상반기 65C816이 도입되었을 때 8 비트 데이터 버스가 이미 6502 칩용으로 설계된 시스템에 더 적합하며 시장은 16 비트 데이터 버스를 요구하지 않습니다. 나중에 16 비트 주변기기를 사용할 수있게되었을 때 65C816 제조업체는 “차세대”CPU를 제때에 제공하지 않았기 때문에 Apple (// GS) 또는 Nintendo (SNES)와 같은 가장 큰 고객은 더 나은, 더 빠른 등으로 이동했습니다. . 프로세서 (Motorola, NEC MIPS, …) 이로 인해 “16 비트 데이터 버스 65C816″이 자체 생성되기 전에 폐기되었습니다.

    댓글

    • Apple은 결코 ” 더 좋고 빠른 프로세서로 이동 “; IIgs는 Apple II 라인의 끝이었고 1992 년까지 ‘ 816을 계속 사용했습니다. (Apple은 Mac에서 68000을 사용했지만 그 결정은 1980 년 말, ‘ 816이 개발을 시작하기 훨씬 전입니다.) 그리고 Nintendo는 1988 년까지 SNES 개발을 시작하지 않았습니다. ‘ ‘ 816이 출시 된 지 5 년이 지났습니다.
    • 사실, Mac과 II는 서로 다른 개발입니다. 또한 125 만 대에 불과한 Apple IIgs의 성공에도 불구하고 Apple은 가장 큰 고객이되지 못했습니다. SNES 번호는 클론을 계산하지 않고 약 50M입니다. 그리고 그 지역에는 다른 임베디드 애플리케이션이 많이 있습니다. 일반적으로 데스크톱 컴퓨터는 우리에게 6502의 가장 눈에 띄는 용도 였을 수 있지만 전체적으로 가장 덜 중요합니다. Commodore, Apple, BBC 등을 모두 추가하더라도 지금까지 빌드 된 모든 65xxx 코어 중 1 % 미만 만 사용하게됩니다.

    Answer

    65816 기반 마이크로 컨트롤러 인 W65C265S 에는 별도의 8b 데이터 버스와 함께 24b 주소 버스 전체가 노출되어 있습니다.

    그리고 분명히 “265S는 65816이”아닙니다 “. 매우 가깝습니다. 그러나 온보드 주변 장치 및 디코딩 로직을 견디지 못하기 때문에 “265S 코드가 박스 스톡 65816과 호환되지 않도록 할 수있는 몇 가지 다른 인터럽트 벡터가 있습니다. 모든 실제 목적을 위해 이들은”소프트웨어 목적과 동일하지만 약간의 차이가 있습니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다