RCA 1802

RCA 1802
코스맥
KL RCA 1802.jpg
RCA CDP 1802
일반 정보
개시.1974
물리 사양
패키지
RCA CDP1802 다이샷

COSMAC(Complementary Symmetric Monolithic Array Computer)는 RCA에 의해 도입된8비트 마이크로프로세서 패밀리입니다.역사적으로 최초의 CMOS [1]마이크로프로세서로 유명합니다.첫 번째 생산 모델은 2칩 CDP1801RCDP1801U로 나중에 싱글칩 CDP1802[2]통합되었습니다.1802는 COSMAC 생산의 대부분을 차지하고 있으며, 현재는 전체 라인이 RCA 1802로 알려져 있습니다.

프로세서 설계는 1970년대 초 Joseph Weisbecker가 TTL 컴포넌트를 사용하여 그의 집에서 만든 실험적인 가정용 컴퓨터로 그 역사를 추적합니다.RCA는 1973년에 CMOS 버전의 프로세서 설계를 개발하기 시작했으며 1974년에 샘플링을 실시하여 즉시 싱글 칩 구현으로 이행할 계획입니다.Jerry Herzog는 1975년에 샘플을 채취하여 [3][4]1976년에 생산에 들어간 싱글 칩 버전의 디자인을 주도했다.

NMOS 프로세스를 사용하여 제작된 당시의 대부분의 설계와는 달리 COSMAC는 CMOS 형식으로 구현되어 정적 로직을 사용했습니다.이를 통해 저전력 설정에서도 동작할 수 있고 완전히 정지할 수도 있습니다.또한 NMOS 칩만큼 발열이 적고 냉각도 잘 되지 않습니다.RCA는 CMOS 프로세스를 "상보적인 실리콘/금속 산화물 반도체"라고 불렀고, COS/[5]MAC라는 약자가 생겨났으며, 그 후 프로세서를 언급할 때 "상보적인 대칭의 모노리식 배열 컴퓨터"로 역명되었습니다.RCA는 또한 사파이어 공정에서 실리콘을 사용하여 방사선 경화 버전을 제작하여 항공우주 [citation needed]분야에서 사용되었습니다.이것들은 [when?]오늘날까지 사용되고 있으며, 2008년 현재도 Renesas( Intersil)[6][7]가 계속 생산하고 있다.

1802의 후계기종은 CDP1804, CDP1805, CDP1806으로 확장 명령 세트, 기타 확장 기능(온칩 RAM, ROM, 내장 타이머 등)을 갖추고 있으며 일부 버전은 더 빠른 클럭 속도로 실행되지만 큰 속도 차이는 없습니다.DMA 자동 부트 로더 기능과 같은 일부 기능도 손실됩니다.약간의 핀 기능 변경도 있습니다만, 라인은 원래의 40 핀 Dual In-Line Package([when?]DIP; 듀얼 인라인 패키지) 형식으로 계속 생산됩니다.

역사

프레드

Joseph Weisbecker는 1955년 초에 컴퓨터가 실제로 모든 기기에 내장될 것이라고 예상하면서 가정에서의 컴퓨터 가능성에 오랫동안 매료되어 왔다.그 시대의 기술은 소형 임베디드 컴퓨터를 불가능하게 만들었지만, 1960년대 집적회로(IC)의 도입으로 상황이 크게 달라졌다.1974년에는 IEEE Computer 기사에서 다음과 같은 가능성을 설명했습니다.

20년 동안 컴퓨터 하드웨어는 점점 더 복잡해지고, 언어는 더 교묘해지고, 운영체제는 덜 효율적이었습니다.이제 마이크로컴퓨터는 우리 중 일부는 더 단순한 시스템으로 돌아갈 수 있는 기회를 제공합니다.저렴한 마이크로컴퓨터는 광대한 새로운 시장을 [8]열 수 있습니다.

1970년부터 [a]Weisbecker는 프로세서를 만들기 위해 RCA 트랜지스터 트랜지스터 논리(TTL) IC를 사용하는 소형 기계의 설계를 시작했습니다.다른 부품들, 스위치들, 램프들 등, 그는 Radio Shack에서 구매해야 했고, 아무도 그에게 [9]왜 그렇게 많은 부품을 사는지 묻지 않도록 고의로 4개의 매장을 돌아다니며 구매해야 했다.이 설계는 1971년 10월에 실행되었으며, 100개의[1] 칩이 여러 회로 [1]기판에 분산되어 있습니다.

그가 FRED라고 부르는 결과물은 겉으로는 플렉시블 레크리에이션 교육용 디바이스(Flexible Receational Educational Device)로 몇 년 후 Altair 8800과 다르지 않은 상자에 포장되어 전면 패널에 입력용 토글 스위치, 출력용 램프, 그리고 나중에 육각 패드 [9]키보드를 추가했다.Weisbecker는 지속적으로 새로운 기능을 추가하였고 1972년에는 문자 생성기와 카세트 [1]테이프에 프로그램을 로드하고 저장할 수 있는 기능을 갖추었습니다.

바이스베커의 딸 조이스 바이스베커는 즉시 그 시스템에 끌려들어 그것을 위한 프로그램을 만들기 시작했다.여기에는 COSMAC 기반의 최신 머신으로 이식된 여러 게임이 포함되어 있습니다.1970년대 후반 RCA가 게임기 사업에 뛰어들었을 때, 이 게임들은 ROM 카트리지 형태로 불타버렸고, 조이스는 최초의 여성 상업 비디오 [9]게임 개발자가 되었다.

풀어주다

Weisbecker는 이 기간 내내 RCA 경영진에게 기계를 시연했지만 처음에는 거의 관심이 없었다.이것은 David Sarnoff가 은퇴하고 그의 아들인 Robert Sarnoff에게 CEO 역할을 물려준 직후였다.Robert는 레코딩 스타들과 사귀면서 회사의 미디어 측면을 구축하는 데 더 관심이 있었고, RCA Laboraties는 RCA Laboraties에서 많은 업계 선도적인 발전이 있었음에도 불구하고 무시했습니다.경영진이 보인 회의론 중 일부는 회사가 최근 자사의 메인프레임 컴퓨터 사업부를 [9]Sperry Rand에 매각한 것과 관련이 있을 수 있습니다.

결국 이 회사는 이 시스템에 관심을 갖게 되었고 새롭게 도입된 COS/MOS 제조 시스템에 적응하기 시작했습니다.1973년 연구실[b] 보고서에서는 1972년에 납품된 "프로토타입"을 언급하고 있지만, 이는 원래 TTL 구현을 언급하고 있을 가능성이 높습니다.또, 1974년에 프로세서를 2칩 실장(COS/MOS)으로 이행시키기 위한 대처에 주목하고 있습니다.이 프로세서가 COMPAC로 최초로 불리고 있는 것은, COMPARY-Symmetry-Monolithic-Array Computer입니다.그것은 또 다른 연구소가 8칩 실리콘 온 사파이어 형식으로 시스템을 생산할 것이라고 밝히고 있지만, 날짜는 단순히 CMOS 버전이 "곧"이고 싱글 칩 버전에 대한 계획은 이미 [10][c]계획되어 있었다.

COSMAC 디바이스

RCA는 1970년대 초에 COSMAC의 개발을 시작했지만, 그것을 기반으로 한 자사 제품을 내놓기까지 시간이 걸렸다.1975년, 교환 가능한 ROM을 갖춘 아케이드 게임기의 시제품이 코인 op 사업을 위해 실험되었지만, 결국 [9]포기되었다.

한편 Weisbecker는 RCA 내에서 System 00으로 알려진 오리지널 FRED를 새로운 칩셋을 사용하여 당시 COSMAC ELF로 알려진 매우 단순한 싱글 보드 시스템을 생산했습니다.건축 지침은 1976년 Popular Electronics 잡지의 기사에서 설명되었고, 1977년 두 번째 기사에서 다양한 업그레이드와 함께 확장된 버전이 설명되었습니다.ELF의 독특한 기능은 부팅 시 읽기 전용 메모리(ROM)가 필요 없다는 것입니다.대신 프로세서의 다이렉트 메모리 액세스(DMA) 시스템을 사용하여 전면 패널 스위치를 메모리에 [9]직접 읽어 들였습니다.

RCA는 미리 패키지화된 버전의 ELF를 시장에 선보일지에 대해 논의했다.그들이 논의하는 동안, 추가적인 개발은 게임 콘솔을 만들기 위해 ELF와 새로운 디스플레이 드라이버 칩인 CDP1861을 결합하는 단순화된 기계로 이어졌다.이 기간 동안, Joyce는 RCA에 고용되어 플랫폼을 위한 여러 비디오 게임을 만들었는데, 여기에는 RCA의 구매 [9]스프라이에 의해 채택된 많은 회사 중 하나인 랜덤 하우스와의 제휴로 퀴즈 형식의 교육 제품이 포함되어 있습니다.

1년간의 논의 끝에, 이 회사는 결국 이 플랫폼을 기반으로 한 두 개의 대중 시장 제품, 즉 COSMAC VIP로 알려진 키트 컴퓨터와 RCA Studio II로 알려진 게임기를 출시하기로 결정했다.1975년부터 사용 가능했지만, Fairchild Channel F가 최초의 카트리지 기반 기계가 된 지 몇 달 후인 1977년 1월에야 Studio II가 발표되었습니다.그 해 말 아타리 2600이 출시됨에 따라 둘 다 곧 희미해지고 대부분 잊혀질 것이다.RCA는 1978년 [9]2월에 스튜디오 II를 취소했다.

RCA는 또한 1802년 초기 출시부터 RCA 자체가 붕괴될 때까지 RCA 마이크로보드 폼팩터를 기반으로 한 모듈러 컴퓨터 시스템을 출시했습니다.이것들은 주로 산업용 어플리케이션과 시스템 개발을 목적으로 하고 있어 구성이 [12]용이했습니다.

임베디드 사용

COSMAC는 마이크로컴퓨터용으로 명시적으로 설계되었다는 점에서 초기 8비트 프로세서 중 독특했습니다.그 시대의 다른 디자인은 변함없이 임베디드 프로세서 공간을 목표로 하고 있었으며, 컴퓨터용으로 설계된 것은 일반적으로 보다 복잡한 시스템이며, 종종 16비트를 사용하기도 했습니다.COSMAC는 컴퓨터용으로 설계되었지만 RCA의 느린 시장 진입과 이 시장에서의 지원 부족 시도는 결국 실패했고 MOS 6502 Zilog Z80과 같은 다른 프로세서가 이 시장을 지배하게 되었습니다.아이러니컬하게도 COSMAC은 CMOS 설계로 저전력으로 작업할 수 있었기 때문에 결국 임베디드 시장에서 큰 성공을 거둘 수 있었습니다.1970년대 후반까지 그것은 많은 산업 환경, 특히 항공우주 분야에서 널리 사용되었다.1802호는 1989년에 목성에 갈릴레오 탐사선을 보냈고,[9] 오늘날에도 비슷한 역할을 하고 있다.

적용들

마이크로컴퓨터 시스템

초기 microcomputers은 1802년에, COSMAC는 게(1976년), Netronics 공용어로서의 영어 II, 퀘스트 SuperELF, COSMAC VIP, Comx-35, 핀란드 Telmac, 1800Telmac TMC-600과 Oscom 나노, 유고 슬라비아 Pecom 32,64, 그리고 Cybervision 시스템 몽고메리 워드를 통해 후반 1970s,[13]뿐만 아니라 RCA스튜디오 II게임기 콘솔에서 팔리는 등 근거를 두고 있다.(에비트맵된 그래픽스를 사용한 최초의 콘솔 중 하나)입니다.확장 COSMAC Elf와 유사한 Edukit 싱글보드 컴퓨터 트레이너 시스템은 1980년대 [14]초 영국의 Modus Systems Ltd.에 의해 제공되었습니다.Infinite Incorporated는 UC1800이라고 불리는 1802 기반의 S-100 버스 확장형 콘솔 컴퓨터 트레이너를 1970년대 후반에 생산했습니다.이 트레이너는 조립형 또는 키트 [15][16]형태로 이용 가능합니다.

1802년 레트로컴퓨팅 취미활동의 일환으로 Altoids[17] 주석과 Spare Time Gizmos Elf 2000(Elf 2K)[18]에 맞는 멤버십 카드 마이크로컴퓨터 키트 등 다른 컴퓨터들이 최근(2000년 이후)에 제작되었습니다.기타 시스템에 대해서는 § 에뮬레이터시뮬레이터를 참조하십시오.

제품 통합

1802는 또한 과학 기구와 상업용 [19]제품에도 사용되었다.[20]

1980년 이후 크라이슬러 및 관련 모델 차량은 최초의 자동 컴퓨터 기반 제어 시스템 [21][22]중 하나인 전자 스파크 제어 기능을 갖춘 2세대 전자 린번 시스템에 1802를 사용합니다.

1802는 스페인의 [23]많은 핀볼 기계와 비디오 아케이드 게임 제조에 사용되었다.

방사선 경화

1802는 '벌크 실리콘' C2L CMOS 테크놀로지 에 SOS(Silicon on Sapphire) 반도체 프로세스 테크놀로지로 제작되어 방사선과 정전기 방전(ESD)에 대한 어느 정도의 내성을 제공했습니다.이 칩은 극도의 저전력 기능과 더불어 우주 및 군사용 애플리케이션에 적합하다(또한 1802가 출시될 당시에는 다른 방사선 강화 마이크로프로세서가 시장에 [24][25]거의 없었다).방사성 경화 1802 버전은 [26]RCA와 합의하여 Sandia National Laboratories에서 제조되었습니다.

우주기술과 과학

1802는 갈릴레오 우주선,[27] 마젤란,[28] ESA의 율리시스 우주선의 플라즈마 파동 분석기, 다양한 지구 궤도 위성[29], 아마추어 [30]라디오를 운반하는 위성 등과 같은 많은 우주선과 우주 과학 프로그램, 실험, 프로젝트와 모듈에 사용되었다.

1802는 또한 허블 [31]우주 망원경에 사용된 것으로 NASA의 자료 자료에서 확인되었습니다.

프로그래밍 언어

1802에서 사용 가능한 최초의 고급 언어는 Forth, Inc.에서 제공한 Forth였으며, 1976년에 MicroFORS로 알려졌습니다(Forth Inc.의 아카이브 참조).인터프리터와 컴파일러 모두 사용 가능한 다른 프로그래밍 언어로는 CHIP-8(및 바리안트), 8th(Lee [32]Hart가 만든 Fort의 버전), Tom Pittman의 Tiny [33]BASIC, C, 다양한 어셈블러와 크로스 어셈블러 등이 있습니다.존슨 우주 센터, AMES, Goddard, Langley, Marshall 및 HAL/S 크로스 컴파일러,[34] STOIC, Fourth와 유사한 [35]언어 등을 포함한 JPL과 같은 연방 기관과 그 시설에서 다른 특수 언어가 사용되었습니다.

프로그래밍 언어 및 개발 환경인 IPS(Interpreter for Process Structures)는 AMSAT 위성의 실시간 제어를 위해 특별히 작성되어 사용되었습니다.

에뮬레이터 및 시뮬레이터

마이크로프로세서를 사용하는 1802 칩과 컴퓨터는 취미에 의해 하드웨어 및/또는 소프트웨어로 에뮬레이트 및 시뮬레이션되었습니다.FPGA[36][37][38]VHDL에는 3가지 설계가 있습니다.PIC 마이크로 [39]컨트롤러를 사용하여 CDP1802 마이크로프로세서 칩 또는 CDP1861 비디오 칩 없이 버스 정밀도의 풀 스피드 COSMAC Elf 클론이 생성되었습니다.JavaScript로 작성된 COSMAC Elf(확장)의 온라인 시뮬레이터는 다운로드 [40]없이 사용자의 브라우저에서 실행됩니다.

묘사

서론

RCA CDP1802 COSMAC 프로세서 DIP 칩 핀 배치

RCA 1802는 최소 클럭 주파수가 없는 정적 코어 CMOS 설계를 채택하고 있기 때문에 동작에 영향을 주지 않고 마이크로프로세서를 정지시키는 클럭 주파수가 제로인 등 매우 저속으로 저전력으로 동작할 수 있습니다.

8핀 버스는 8비트 양방향 데이터 버스와 타임 멀티플렉스 주소 버스의 2개로 16비트 주소의 상위 및 하위 8비트가 번갈아 클럭 사이클로 액세스 됩니다.이는 16비트 어드레스 버스를 사용한 MOS 6502인텔 8080 등 당시의 대부분의 디자인과 대조됩니다.

1802에는 단일 비트, 프로그래밍 및 테스트 가능한 출력 포트(Q) 및 분기 명령(EF1-EF4)에 의해 직접 테스트되는 4개의 입력 핀이 있습니다.이 핀을 사용하면 간단한 입출력(I/O) 작업을 직접 쉽게 프로그래밍할 수 있습니다.

명령이 완료되는 데 8~16클럭 사이클이 걸렸기 때문에 1802는 특별히 빠르지 않았습니다.비교를 위해 6502는 2~4클럭 사이클로 대부분의 명령을 완료하며 가장 긴 것은 [41]7사이클입니다.

부품 번호 접미사 지정

CDP1802 부품 번호의 다양한 접미사는 (A, B, C) 동작 속도(3.2MHz~6.4MHz), 온도(-40°C~+85°C), -55°C~+125°C, 전압 범위(4V~10)를 포함한 기술 사양을 나타냅니다.5V), 패키지 유형(D, E, Q) 및 번인(X)입니다.RCA, Intersil, Harris, Hughes Aircraft, Solid State Scientific(SSS) 등 다양한 소스 공급업체 간에 어느 정도 표준화되었습니다.Hughes는 HCMP 프레픽스를 사용하고 SSS는 CDP 대신 SCP(및 BCP) 프레픽스를 사용하여 아직 문서화되어 있지 않은 추가 서픽스를 가지고 있습니다(예: CDP1802A, CDP1802BCD, HAP2).

서픽스 패키지 타입
E PDIP = 플라스틱 이중 인라인 패키지
D SBDIP = 측면 브레이징 세라믹 듀얼 인라인 패키지
Q PLCC = 플라스틱 리드 칩 캐리어
X 번인

레지스터 및 I/O

모델 등록

1802는 2바이트 조작을 제외하고 16비트 조작을 최소한으로 지원하는 8비트 바이트 머신입니다.기본 어큐뮬레이터는 8비트 'D' 레지스터(데이터 레지스터)입니다.싱글 비트 반송 플래그는 DF(Data Flag)입니다.산술 및 논리 함수를 포함한 대부분의 연산에서는 D 레지스터와 로드 및 저장 명령을 참조하는 메모리를 사용합니다.대부분의 16비트 동작은 DF를 carry 및 borrown으로 사용하여 D를 경유하여 하위 바이트에서 동작한 후 상위 바이트에서 동작해야 합니다.

1802의 중요한 기능은 주로 어드레싱에 사용되는 16비트의 레지스터 세트입니다.SEP 명령을 사용하면 16개의 레지스터 중 하나를 프로그램카운터로 선택할 수 있습니다.SEX 명령을 사용하면 16비트 레지스터 중 하나를 인덱스 [43]레지스터로 선택할 수 있습니다.레지스터 R0은 내장 DMA 컨트롤러의 메모리주소를 유지하는 특별한 용도가 있습니다.레지스터 R1은 인터럽트 [44]핸들러의 프로그램카운터가 되는 특별한 용도가 있습니다.

이러한 레지스터의 값을 D를 통해 설정 및 읽을 수 있도록 하는 지침이 있으며, 한 번에 상위 및 하위 8비트를 개별적으로 작동합니다.또한 전체 16비트 값을 증가 및 감소시키는 명령도 있으며, LDA(로드 어드밴스) 및 STXD(X 및 감소를 통해 저장)와 같이 일부 명령은 자동 증가 및 감소를 수행합니다.또한 16비트 레지스터와 값의 비교는 D 레지스터를 중개자로 사용해야 하며, 여러 명령을 사용하여 작업을 수행해야 합니다.

CPU에는 5개의 특수한 I/O 라인이 있습니다.SEQ 명령으로 설정하고 REQ 명령으로 재설정할 수 있는 단일 Q 출력이 있습니다.외부 단일 비트 플래그 입력 EF1, EF2, EF3, EF4의 4개가 있으며 이러한 입력 라인의 상태에 따라 조건부로 분기하는 전용 분기 명령이 8개 있습니다.RX 레지스터와 D 어큐뮬레이터를 사용하는 7개의 입력 포트 명령과 7개의 출력 포트 명령이 있습니다.

EF 회선과 Q 회선은 일반적으로 1802 기반의 취미용 컴퓨터에서 여러 인터페이스에 사용되었습니다. 회선의 취급이 편리하고 쉽기 때문입니다.상태 LED, 카세트인터페이스, RS-232 인터페이스 및 스피커를 구동하는 것은 Q라인의 일반적인 동작이었습니다.즉, 볼륨 컨트롤이 구현되지 않은 경우 RS-232 및 카세트 데이터가 전송되는 소리를 실제로 들을 수 있었습니다.전통적으로 EF4 라인은 COSMAC Elf의 INPUT 순간 푸시 버튼에 부착됩니다.다른 시스템에서는 다른 회선 중 하나를 사용할 수 있습니다.

4비트 N, P, X, I, 8비트 T, 1비트 IE 등 특수한 용도의 레지스터와 플래그, 내장형 플래그와 프로그래밍 방식으로 사용할 수 있는 것도 있습니다.

분기

1802에서는 무조건 및 조건부 분기에는 Short and Long 및 Skips의 3가지 타입이 있습니다.

쇼트 브랜치는 2바이트 명령으로, 256바이트 범위, 1바이트 주소, 0~255(16진수 FF)의 페이지 절대 주소 지정을 사용합니다.상대적인 분기는 없습니다.쇼트 브랜치는 항상 주소 [45]바이트가 포함된 페이지 내에서 점프합니다.

긴 브랜치는 완전한 16비트 주소 지정을 사용하여 64K 메모리 주소 공간을 지원합니다.이 명령어는 3바이트뿐입니다.

건너뛰기 명령어는 무조건 쇼트스킵의 경우 PC를 1, 롱스킵의 경우 PC를 2씩 증가시킵니다.조건부 분기가 있는 것은 롱 스킵뿐입니다.

서브루틴 콜

프로세서에는 표준 서브루틴 CALL 주소와 RET 명령은 없지만 시뮬레이트할 수 있습니다.16-레지스터 설계에 의해, 몇개의 흥미로운 서브루틴 콜 및 리턴 메카니즘이 가능하게 됩니다.다만, 범용 코딩보다 작은 프로그램에 적합합니다.

일반적으로 사용되는 서브루틴은 16개의 레지스터 중 하나에 주소를 유지함으로써 신속하게 호출할 수 있습니다.다만, 「return」명령을 실행하려면 , 착신측 서브루틴이 발신측 PC 레지스터를 알고 있을 필요가 있습니다(하드 코드화 되어 있습니다.SEP 명령은 16비트 레지스터 중 하나와 다른 SEP가 가리키는 서브루틴을 호출하여 발신자에게 반환하기 위해 사용됩니다(SEP는 Set Program Counter(프로그램 카운터 설정)의 약자로, 그 시점부터 프로그램카운터로 사용할 16개의 레지스터 중 하나를 선택합니다).서브루틴이 반환되기 전에 서브루틴은 엔트리 포인트 바로 앞 위치로 점프하여 SEP "return" 명령이 발신자에게 제어를 반환한 후 레지스터가 다음 사용에 적합한 값을 가리키도록 합니다.(프로세서는 항상 참조와 사용 후에 PC를 증가시키기 때문에(다음 실행 명령을 취득할 때), 이 기술은 기술대로 동작합니다).

이 스킴의 흥미로운 변형은 1개의 링에 여러 서브루틴을 배치하여 라운드 로빈 순서로 호출하는 것입니다.초기 취미용 컴퓨터에서는 수평 리프레시 인터럽트에서 비디오 컨트롤러에 대해 각 스캔 라인을 4회 반복하도록 스캔 라인 주소를 재프로그래밍하는 요령과 기술이 일반적으로 사용되었습니다.

잘 알려져 자주 사용되는 루틴 중 하나는 SCRT(Standard CALL and RETURN Technology)로 알려져 있습니다.이것에 의해, 「라인」의 파라메타 전달을 포함한 범용 서브루틴 콜과 리턴, 스택을 사용한 네스트 서브루틴이 가능하게 됩니다.이 기법에 사용 가능한 레지스터를 모두 사용할 수 있지만, 프로그래머의 선호에 따라 많은 레지스터가 CDP1802 사용자 설명서에서 RCA가 제공하는 루틴을 사용합니다. 여기서 권장 레지스터 사용법은 R2 = 스택 포인터, R3 = 일반 프로그램 카운터(PC), R4 = 호출, R5 = 반환, R6입니다.이러한 지원 루틴은 작지만 이를 사용한 실행 속도 오버헤드가 있습니다.(실제 CALL 및 RET 명령이 마이크로프로세서 설계의 일부일 경우 발생하는 것과 달리)이 설정에서는, R0 를 DMA 에 사용하고, R1 을 인터럽트에 사용할 수 있습니다(필요에 따라서, R7 ~ RF(16 진수) 를 일반적인 프로그램용으로 사용할 수 있습니다).

어드레싱 모드

16비트 어드레스 버스와 8비트 데이터 버스 때문에 16개의 범용 레지스터의 폭은 16비트이지만 어큐뮬레이터 D 레지스터의 폭은 8비트밖에 되지 않습니다.따라서 어큐뮬레이터는 병목현상이 되는 경향이 있습니다.1개의 레지스터의 내용을 다른 레지스터로 전송하려면 4개의 명령(Get 명령과 Put 명령 중 하나는 레지스터의 HI 바이트에 대한 PHI R1, PHI R2, GLO R1, PLO R2)이 필요합니다.마찬가지로 새로운 상수를 레지스터에 로드하는 것(서브루틴 점프를 위한 새 주소나 데이터 변수의 주소 등)에도 4개의 명령(즉시 로드 2개, LDI, 명령 1개, 상수의 절반당 1개, 그 다음에 레지스터, PHI 및 PLO에 대한 Put 명령)이 필요합니다.

그러면 간접 레지스터와 자동 증분을 사용하는 간접 레지스터의 두 가지 주소 지정 모드가 상당히 효율적이며, 축전지 내의 데이터에 대해 8비트 연산을 수행합니다.단, 다른 어드레싱 모드는 없습니다.따라서 다이렉트 어드레싱 모드는 스페어 레지스터에 주소를 로드하기 위해 앞서 말한4개의 명령을 사용하여 에뮬레이트해야 합니다.그 후, 그 레지스터를 인덱스 레지스터로서 선택하도록 지시합니다.마지막으로, 그 주소에 의해서 포인트 되는 데이터 변수에 대한 의도된 조작을 실시합니다.

DMA 및 로드모드

CDP1802 에는, DMA 입력 및 출력용의 2 개의 DMA 요구 회선이 있는, 심플한 내장 DMA 컨트롤러가 있습니다.CPU는 8~16클럭 사이클이 필요한 멀티 스텝머신 사이클의 특정 사이클 동안만 메모리에 액세스합니다.외부 하드웨어는 이 기간 동안 프로세서를 중단하지 않고 데이터를 읽거나 쓸 수 있습니다.이것은 사이클 도용이라고 불리는 일반적인 개념입니다.

R0 은 DMA 주소 포인터로서 사용됩니다.DMA 데이터의 개시 주소는 R0 에 입력해, CPU 로의 적절한 읽기 핀 또는 쓰기 핀을 꺼냅니다.CPU는 R0 내의 값을 증가시킴으로써 DMA 요구에 응답하여 다음 요구가 메모리의 다음 위치에 자동으로 저장되도록 했습니다.따라서 단순히 DMA 핀을 반복적으로 트리거하는 것만으로 시스템은 메모리 전체를 통과합니다.

DMA 컨트롤러는 프로세서의 CLEAR 및 WAIT 입력이 활성화되어 있는 동안 메모리를 로드할 수 있는 특별한 "로드 모드"도 제공합니다.이것에 의해, ROM 베이스의 부트 스트랩 로더 없이 프로그램을 로드할 수 있습니다.이것은 COSMAC Elf 마이크로컴퓨터와 그 후계기들에 의해 필요한 소프트웨어와 최소한의 하드웨어가 없는 토글 스위치 또는 16진수 키패드에서 프로그램을 로드하기 위해 사용되었습니다.유저는, 스위치를 다음의 값으로 설정해, 판독치를 전환하고, 다음으로 넘어갈 수 있습니다.DMA 스텝에 의해 자동적으로 행해지는 주소의 변경은 불필요했습니다.

지시 타이밍

클럭 사이클 효율은 대부분의 8비트 마이크로프로세서에 비해 저조합니다.8개의 클럭 사이클이 하나의 기계 사이클을 구성합니다.대부분의 명령은 두 번의 기계 사이클(16 클럭 사이클)을 실행하고 나머지 명령은 세 번의 기계 사이클(24 클럭 사이클)을 수행합니다.이에 비해 MOS 테크놀로지 6502는 명령을 실행하는 데 2~7클럭 사이클이 소요되며 Intel 8080은 4~18클럭 사이클이 소요됩니다.

서포트 칩

그래픽스

1802년 초기 마이크로컴퓨터에서는 부속 그래픽스 비디오 디스플레이 컨트롤러 칩 RCA CDP1861(NTSC 비디오 포맷의 경우 CDP1864 바리안트)이 내장 DMA 컨트롤러를 사용하여 표준 TV 화면에 흑백 비트맵 그래픽을 표시했습니다.1861은 픽시 그래픽스 시스템으로도 알려져 있습니다.

1802의 더 빠른 버전은 4-5MHz(5V에서 더 빠름, 10V에서 더 빠름)로 동작할 수 있었지만 일반적으로 3.58MHz로 동작하여 1861 칩의 요건에 적합하도록 2(1.79MHz)로 나눕니다.이 칩은 1초에 100,000이 조금 넘는 속도로 동작했습니다.z of the Pecom.COSMAC VIP는 비디오 칩을 (취미리스트용 키트의 애드온이 아닌) 하나의 목적용 컴퓨터로서 프로세서에 통합했습니다.1802를 1861과 정확히 동기화하여 Pixie의 스펙 시트 [d]레퍼런스 설계에 권장된 비표준 1.76064MHz로 동작시켰습니다.

1861의 부속 칩인 CDP1862 Color Generator Circuit IC를 사용하여 컬러 그래픽스를 생성할 수 있습니다.Pecom 64와 같은 일부 컴퓨터 시스템은 1980년대의 다른 8비트 시스템과 비교할 수 있는 선명하게 고해상도 컬러 그래픽스에 CDP1869와 CDP1870의 부속 IC로 구성된 VIS(Video Interface System)를 사용했습니다.

코드 샘플

이 코드 조각 예는 ALU([46]산술 및 논리 장치) 연산을 테스트하는 진단 루틴입니다.

..테스트 ALU OPS 0000 90 GHI 0 ..R6 0001 B6 PHI 6 0002 F829 LDI DOIT 설정OPCODE 0004 A6 PLO 6 0005 E0 SEX 0 입력용..(X=0 이미) 0006 6400 출력 4,00 ..US READY 0008 E6 SEX 6 발표..NOW X=6 0009 3F09 BN4 * ..IT 000B 6C INP 4를 기다립니다.좋아, GET IT 000C 64 OUT 4..그리고 에코를 디스플레이 000D 370D B4에 연결합니다 *..릴리즈 000F F860 LDI #60을 기다립니다.이제 0011 A6 PLO 6을 준비하십시오.첫 번째 오퍼랜드 0012 E0 SEX 0..설명: 0013 6401 출력 4,01 0015 3F15 BN4 * 0017 E6 SEX 6IT를 넣고 에코 0018 6C INP 4 .. (0060으로) 0019 64 OUT 4 .. (또한 R6) 001A 371A B4 * 001C E0 SEX 0 ....DITO 두 번째 오퍼랜드 001D 6402 출력 4,02 001F E6 SEX 6 0020 3F20 루프: BN4 * ..IT 0022 6C INP 4 .. GET IT (참고: X=6) 0023 64 OUT 4 ..ECHO IT 0024 3724 B4 * ..Release 0026 26 Dec 6을 기다립니다.백업 R6 to 0060 0027 26 DEC 6 0028 46 LDA 6 ..첫 번째 오퍼랜드와 D 0029 C4 DOIT: NOP ..작업 002A C4 NOP .. (스페어) 002B 26 DEC 6 ....0060 002C 56 STR 6으로 돌아가기..출력 결과 002D 64 출력 4 .. (X=6 스틸) 002E 7A 기준 ..Q 002F CA0020 LBNZ 루프를 끕니다.0이면 0032 7B SEQ..0033 3020 BR 루프 전원을 다시 켜십시오. 어떤 경우에도 반복하십시오.

메모: 위의 절차에서는 CDP1802 마이크로프로세서가 초기 리셋 상태(또는 이 코드를 실행하기 전에 설정되어 있는 상태)라고 가정합니다.따라서 프로그램 카운터(PC)와 X간접 레지스터 '포인터'는 모두 16비트 레지스터 R0으로 설정된다.따라서 PC와 X는 모두 R0을 가리키고 있기 때문에 'OUT 4,00' 예시와 같이 즉시 값을 출력할 수 있습니다.opcode 명령 바이트가 메모리에서 검색된 후 PC가 증가하므로 OUT 4가 실행될 때 다음 주소를 가리킵니다.따라서 RX = R0이 가리키는 메모리의 값을 출력합니다. RX = R0은 바로 다음 바이트입니다.또한 OUT 명령은 PC이기도 한 R0인 X 레지스터를 증가시키므로 OUT 직후의 값을 출력하고 직후의 다음 명령 주소에서 프로그램 실행을 계속합니다.따라서 필요에 따라 R6 및 R0을 등록하기 위한 루틴 세트 X(SEX)가 표시됩니다.또한 OUT opcode는 RX 레지스터를 증가시키지만 메모리 섹션('버퍼')을 쉽게 출력하기 위해 INP는 증가시키지 않습니다.이 값은 RX가 가리키는 주소로 D 8비트 데이터 바이트어큐뮬레이터에 저장되지만 RX는 변경되지 않습니다.

또한 OUT 4는 CPU 시스템의 8비트 LED 또는 2자리 16진수 디스플레이에 값을 표시하고 IN 4는 8개의 토글 스위치(또는 16진수 키패드)에서 값을 얻는 것으로 가정합니다.BN4 opcode(루프; * = '이 주소'), "단일 비트 입력 EF4 라인이 lo인지 확인"은 순간적인 '입력' 푸시 버튼을 눌렀는지 테스트하는 데 사용됩니다.B4 opcode('if hi') 루프는 버튼이 해제되기를 기다립니다.SEQ와 REQ는 보통 LED에 연결되어 있는 단일 Q라인을 온/오프합니다.

1802는 "바이트 머신"이지만 16개의 16비트 레지스터인 R0-RF('R' 접두사 없이 0-F라고도 함)가 있습니다.16비트 레지스터 데이터를 처리하려면 프로그래머는 D 어큐뮬레이터를 매개로 레지스터의 Hi 또는 Lo 값을 가져오고 넣어야 합니다.레지스터의 이러한 상한 및 하한 바이트는 Rn.0(lo) 및 Rn.1(hi)이라고 불리기도 합니다.Short Branchs는 페이지 절대 주소 지정과 256바이트 주소 경계를 가진 2바이트 연산 코드입니다.Long Branches는 완전한 16비트 주소 분기를 가진 3바이트의 opcode입니다.

이 정보는 "의사 코드"를 읽을 수 있을 정도로 지식이 풍부하고 어셈블리 및 기계어 프로그래밍에 최소한의 지식이 있는 컴퓨터 프로그래머라면 루틴을 보다 이해하기 쉽게 만들어야 합니다.

메모들

  1. ^ 정확한 날짜는 COSMAC와 관련된 대부분의 날짜와 마찬가지로 참고 문헌에 따라 다릅니다. Edwards는 1969년으로 [9]표기하지만, 대부분의 경우 1970년으로 표기하고 있습니다.
  2. ^ 이것은 1974년에 출판된 1973년 운영의 [10]연례 리뷰였다.
  3. ^ 다양한 COSMAC 장치의 샘플링 및 일반 출시 날짜는 정확하지 않습니다.허브 존슨은 이 [11]기사의 날짜의 기초를 이루는 광범위한 RCA 보고서 목록을 작성했습니다.
  4. ^ 다만, 머신의 경과시간을 고려하면, 아직 개발되지 않은 고속의 등급에 의한 것일 가능성이 있습니다.즉, 프로세서의 정격은 최대 3.2MHz 또는 2.5MHz에 불과합니다.극단적인 경우이긴 하지만 타이밍 시스템의 비용과 복잡성을 줄이기 위해 CPU를 정격 속도보다 훨씬 낮게 실행하는 것은 머신뿐만이 아닙니다.단순히 3.52MHz로 실행하는 것은 위험한 10%, 심지어 지속 불가능한 오버클럭의 41%를 나타냅니다.

레퍼런스

인용문

  1. ^ a b c d 캐스 2018.
  2. ^ "RCA COSMAC 1802". The Antique Chip Collector's Page. AntiqueTech.com. 21 April 2009. Archived from the original on 2 January 2013. Retrieved 27 December 2010.
  3. ^ "Joseph Weisbecker". Vintage-Computer.com. 2010-02-08. Retrieved 2010-12-27.
  4. ^ "Joseph A. Weisbecker (1932 - 1990)". CosmacElf.com. Retrieved 2010-12-27.
  5. ^ "RCA Laboratories Research Report 1973" (PDF). RetroTechnology. RCA. Retrieved 24 May 2016.
  6. ^ CDP1802A[데드링크]
  7. ^ "CDP1802AC/3 High-Reliability CMOS 8-Bit Microprocessor". Intersil Americas LLC. 17 October 2008.
  8. ^ Weisbecker 1974, 페이지 41
  9. ^ a b c d e f g h i j Edwards 2017.
  10. ^ a b 1973년 연구실, 페이지 152
  11. ^ Johnson, Herb (11 December 2018). "COSMAC 1801, 1802 "dates"".
  12. ^ "RCA MCDS, Microboard Computer Development System". RetroTechnology.com. 2020-10-28. Retrieved 2022-05-08.
  13. ^ Ruske, Dave. "Cybervision 2001, 3001, and 4001". COSMAC Elf. COSMACELF.COM. Retrieved 30 June 2016.
  14. ^ "Wireless World magazine ad on page 22" (PDF). American Radio History. May 1981. Retrieved 21 Jan 2017.
  15. ^ "Equipment Report - Infinite UC1800 Microcomputer" (PDF). ClassicCmp.org - Classic Computing. Radio Electronics Magazine. Aug 1977. Retrieved 22 Jan 2017.
  16. ^ Haberhern, William (Feb 1977). "Kilobaud Magazine Article Pg 90". Archive.org. Wayne Green. Retrieved 22 Jan 2017.
  17. ^ Hart, Lee. "The 1802 Membership Card Computer". Lee Hart's Homepage. Lee Hart. Retrieved 22 May 2016.
  18. ^ "Spare Time Gizmos Elf 2000 (Elf 2K)".
  19. ^ "Five generations of Sinar Moisture Meters". Retrieved 22 May 2016.
  20. ^ "Inforcel". Retrieved 22 May 2016.
  21. ^ Johnson, Herbert R. (22 June 2016). "RCA/Weisbecker "System 00" aka "FRED"". Retrotechnology. Retrieved 23 June 2016.
  22. ^ "The Chrysler Lean Burn engine control system". All Mopar Chrysler Info. AllPar.com. Retrieved 23 June 2016.
  23. ^ Donnelly, William (7 July 2016). "MDCCCII (1802) Product Integration: Commercial & Scientific Applications". A COSMAC 1802 CPU RetroComputing Extravaganza. William Donnelly. Retrieved 7 July 2016.
  24. ^ Dingwall, A.; Stricker, R.; Sinniger, J. (October 1977). "A high speed bulk CMOS C2L microprocessor". IEEE Journal of Solid-State Circuits. IEEE. 12 (5): 457–462. doi:10.1109/ISSCC.1977.1155726.
  25. ^ "A Radiation-Hardened Bulk Si-Gate CMOS Microprocessor Family" (PDF). IAEA.org. IAEA.org. Retrieved 4 June 2016.
  26. ^ Gülzow, Peter. "No RISC, No Fun!". AmSat Germany.
  27. ^ Tomayko, James (April 1987). "Computers in Spaceflight: The NASA Experience". NASA. Retrieved February 6, 2010.
  28. ^ http://www2.jpl.nasa.gov/magellan/guide4.html#4.11 마젤란 비너스 탐험가 가이드, 제4장 - 마젤란 우주선 - 컴퓨팅과 소프트웨어
  29. ^ "RCA COSMAC VIP". Obsolete Technology Website. Retrieved January 31, 2010.
  30. ^ http://www.amsat.org/amsat-new/AboutAmsat/amsat_history.php AMSAT 이력
  31. ^ Afshari, A. (January 1993). "Hubble Space Telescope's Wide Field/Planetary Camera" (PDF). Shutterbug. Archived from the original (PDF) on October 6, 2016.
  32. ^ "Membership Card Software".
  33. ^ "Itty Bitty Computers & TinyBasic".
  34. ^ "Current Status of the HAL/S Compiler on the Modcomp Classic 7870 Computer" (PDF).
  35. ^ MASCOT (MIT Astronomical Spectrometer / Camera for Optical Telescopes). January 1980.
  36. ^ Baker, Scott (2016). "1802 CPU coded in VHDL". Scott L Baker Github. Scott Baker. Retrieved 24 July 2016.
  37. ^ Smith, Eric (2009). "cosmac - RCA COSMAC CDP1802 functional equivalent CPU core in VHDL". Eric Smith Github. Eric Smith. Retrieved 9 July 2019.
  38. ^ Teal, Steve (2016). "VHDL 1802 Core with TinyBASIC for the Lattice MachXO2 Pico board". Steve Teal Github. Steve Teal. Retrieved 9 July 2019.
  39. ^ Rossin, Ted (2011). "Elf Clone". Ted Rossin Homepage. Ted Rossin. Retrieved 24 July 2016.
  40. ^ Donnelly, William (2011). "COSMAC Elf-ish CDP1802 Simulator in JavaScript". Donnelly-House Homepage. William Donnelly. Retrieved 24 July 2016.
  41. ^ "6502 Instruction Set". mass:werk.
  42. ^ Shvets, Gennadiy (2 Oct 2016). "RCA 1802 (CDP1802) microprocessor family". CPU-World. Gennadiy Shvets. Retrieved 17 October 2016.
  43. ^ "What does SEX mean?". Retrieved December 26, 2013.
  44. ^ CDP1802 COSMAC 마이크로프로세서 사용자 매뉴얼
  45. ^ CDP1802 COSMAC 마이크로프로세서 사용자 매뉴얼
  46. ^ Pittman, Tom (1980). "A Short Course In Programming". cosmacelf.com. Retrieved 20 May 2017.

참고 문헌

외부 링크

이 문서의 작은 부분은 원래 GFDL 따라 라이선스가 부여된 무료 온라인 컴퓨팅 사전자료를 기반으로 합니다.