텍사스 인스트루먼트 TMS9900

Texas Instruments TMS9900
텍사스 인스트루먼트 TMS9900
디자이너텍사스 인스트루먼트
비트16비트
소개했다1976
설계.CISC
엔디안니스큰.
레지스터
PC, WP, ST
범용프로세서(WP, ST)에 내장되어 있는2 x 외부 RAM에 탑재되어 있는16 x 16 비트스택

1976년 6월에 도입된 TMS9900은 최초의 상용 싱글칩 16비트 마이크로프로세서 [a]중 하나입니다.Texas Instruments의 TI-990 미니 컴퓨터 아키텍처를 싱글 칩 형식으로 구현했으며, 처음에는 이 라인업의 보급형 모델에 사용되었습니다.

64핀 DIP 포맷으로 인해 더 일반적인 40핀 포맷보다 작은 머신에서 구현 비용이 더 많이 들었고 TI 자체 용도 외의 디자인 성공 사례도 상대적으로 적었습니다.TI의 TI-99/4 가정용 컴퓨터는 최종적으로 약 280만 대가 팔렸다.

1980년대 중반까지 마이크로컴퓨터 분야는 인텔 8088과 같은 16비트 시스템과 모토로라 68000과 같은 새로운 16/32비트 디자인으로 옮겨가고 있었습니다. 이 디자인은 9900을 쉽게 능가하고 일반적으로 더 저렴했습니다.칩에 대한 명확한 미래가 없기 때문에, TI는 1983년에 소개된 Texas Instruments TMS320과 같은 특수 목적 프로세서로 관심을 돌렸다.

역사

금도금 핀 포함 세라믹 패키지 TMS9900JL

TMS9900은 Intersil 6100이 싱글칩 PDP-8(12비트), Fairchild 9440Data General mN601이 모두 Data General's Nova의 원칩 버전인 것처럼 TI 990 미니컴퓨터 시리즈의 싱글칩 버전으로 설계되었습니다.National Semiconductor IMP-16 또는 DEC LSI-11과 같은 멀티칩 16비트 마이크로프로세서와 달리 9900은 싱글칩의 자급식 16비트 마이크로프로세서였습니다.

TMS9900의 미니컴퓨터의 뿌리는 백지에서 시작된 설계에서는 흔히 볼 수 없는 많은 아키텍처 기능을 제공합니다.그 중에서도 주목할 만한 것은 TMS9900이 메인 메모리에 매핑된 프로세서 레지스터를 사용한 것입니다.이를 통해 단일 레지스터(워크스페이스 포인터)를 변경하여 레지스터 값 목록의 첫 번째 엔트리를 가리키도록 함으로써 고속 컨텍스트 전환이 가능합니다.보다 전통적인 설계에서는 내부 레지스터의 전체 세트를 메모리 또는 스택에 저장해야 합니다.이 접근법의 단점은 이러한 레지스터에 액세스하는 데 시간이 더 많이 걸린다는 것입니다.고속 메모리를 탑재한 미니컴퓨터의 실장에서는 컨텍스트스위치가 일반적이기 때문에 효과는 비교적 작고 멀티태스킹 환경에서는 큰 이점이 있습니다.싱글 유저 마이크로 컴퓨터나 임베디드 시스템등의 다른 역할에서는, 이러한 트레이드 오프가 불필요할 가능성이 있습니다.

TI는 기업의 시너지 효과를 얻기 위해 여러 부문에 걸쳐 동일한 아키텍처를 사용했습니다.즉, "하나의 회사, 하나의 컴퓨터 아키텍처"입니다.1970년대 후반에 월든 C. Rhines는 개인용 컴퓨터를 개발하는 IBM 그룹에 TMS9900에 대한 프레젠테이션을 했습니다.IBM이 IBM PC용으로 Intel 8088을 선택했기 때문에 "1981년까지는 무엇을 잃었는지 알 수 없었습니다."라고 그는 회상했습니다.TI-99/4A와 같은 제품으로 PC 시장에 진입하려다 실패하자, 회사의 마이크로프로세서 부문은 결국 TMS320 특수목적 프로세서 [1]시리즈에 초점을 맞췄다.

아키텍처

TMS9900 레지스터
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 (비트 위치)
PC 0 프로그램 카운터
WP 0 작업영역 포인터
L> A> = C O P X 0 Int 마스크 상태 레지스터

TMS9900에는 프로그램 카운터(PC), 상태 레지스터(ST) 및 워크스페이스 포인터 레지스터(WP)[2]의 3개의 내부 16비트 레지스터가 있습니다.WP 레지스터는 프로세서의 16개의 범용 사용자 레지스터(각각 16비트 폭)가 보관되어 있는 외부 RAM의 기본 주소를 가리킵니다.이 아키텍처는 빠른 컨텍스트 전환을 가능하게 합니다.예를 들어 서브루틴을 입력하면 레지스터를 개별적으로 저장하는 대신 단일 워크스페이스 레지스터만 변경하면 됩니다.비트는 통상과는 달리 번호가 매겨지며 최상위 비트는 0입니다.

주소는 빅 엔디안 순서 규칙을 사용하는 바이트를 나타냅니다.TMS9900은 2바이트(65,536바이트 또는 32,768워드)의16 주소 공간을 가진 전형적인 16비트 머신입니다.

스택의 개념이나 스택 포인터 레지스터는 없습니다.대신 프로그램 카운터를 레지스터에 저장하고 레지스터 컨텍스트를 변경하는 분기 명령이 있습니다.16개의 하드웨어 인터럽트 벡터와 16개의 소프트웨어 인터럽트 벡터는 각각 PC와 WP 값의 쌍으로 구성되어 있기 때문에 레지스터 컨텍스트스위치도 인터럽트에 의해 자동으로 실행됩니다.

명령 집합 및 주소 지정

TMS9900에는 69개의 명령어가 있습니다.이 명령어는 1개, 2개 또는 3개이며 메모리에는 항상 워드가 정렬되어 있습니다.명령 집합은 거의 직교하며, 이는 거의 예외 없이 명령이 오퍼랜드(주소 지정 모드)에 액세스하는 모든 방법을 사용할 수 있음을 의미합니다.

주소 지정 모드에는 즉시(명령 내 연산자), 직접 또는 "심볼릭"(명령 내 연산자 주소), 레지스터(워크스페이스 레지스터 내 연산자 주소), 자동 증가 여부와 관계없이 레지스터 간접(워크스페이스 레지스터 내 연산자 주소), 인덱스(워크스페이스 레지스터 콘텐츠로 인덱싱된 명령 내 연산자 주소) 및 프로그램 카운터가 포함됩니다.관련있는.

가장 중요한 듀얼 오퍼랜드 명령(더하기, 빼기, 비교, 이동 등)에는 소스 오퍼랜드와 수신처 오퍼랜드 양쪽의 2비트어드레싱 모드와 4비트레지스터 셀렉터 필드가 포함됩니다.opcode에서 "심볼릭" 모드는 레지스터 필드가 0으로 설정된 인덱스 모드로 표시되므로 워크스페이스 레지스터 0(WR0)은 인덱스 모드에서 사용할 수 없습니다.XOR과 같이 자주 사용되지 않는 이중 연산자 명령에서 대상 연산자는 작업영역 레지스터(또는 곱하기 및 나누기 명령의 경우 작업영역 레지스터 쌍)여야 합니다.

흐름 제어는 1개의 무조건 점프 명령과 12개의 조건부 점프 명령으로 이루어진 그룹을 통해 용이해진다.점프 대상은 -128 ~ +127 워드 주소의 오프셋을 가진 PC에 상대적입니다.

서브루틴 콜의 경우 Branch and Load Workspace Pointer(BLWP) 명령은 새로운 WP 및 PC 값을 로드한 후 WP, PC 및 ST 값을 각각 (새로운) 레지스터 13, 14 및 15에 저장합니다.서브루틴의 마지막에 RTWP(Return Workspace Pointer)가 이러한 항목을 역순으로 복원합니다.BLWP/RTWP를 사용하면 스택이 없어도 서브루틴 호출을 네스트할 수 있지만 프로그래머는 적절한 레지스터 워크스페이스를 명시적으로 할당해야 합니다.

명령 세트에는 WP를 변경하지 않고 PC를 등록 11에만 저장하는 Branch and Link(BL; 분기 및 링크) opcode도 포함되어 있습니다.이 경우 WR11을 수신처 주소로 사용하는 분기 명령(B)은 리턴 opcode로 기능할 수 있지만 BL 타입의 서브루틴은 프로그래머가 리턴 주소를 저장하기 위한 액션을 취하지 않으면 네스트할 수 없습니다.

TMS9900은 실행 명령 "X"(eXecute)를 지원합니다.명령은 레지스터에서 명령을 실행합니다.디버깅(브레이크 포인트명령어) 및 바이트 코드인터프리터에서 사용되는 인덱스 opcode 테이블 작성에 사용할 수 있습니다.

TMS9900은 eXtended OP(XOP) 명령도 지원합니다.XOP 에는, 송신원주소와 함께, 0 ~15 의 범위의 번호가 지정됩니다.이 명령을 실행하면 메모리 내의 사전 정의된 위치에서 16개의 벡터 중 하나를 통해 컨텍스트스위치가 실행됩니다.이것은 인터럽트와 비슷하지만 XOP 명령은 소스 주소를 새 워크스페이스의 레지스터 11에 저장합니다.XOP는 전송 벡터가 고정된 위치에 있어야 하기 때문에 BLWP보다 덜 유연하지만, 벡터의 위치를 정의하지 않을 때 소스 주소를 대신 실행할 수 있기 때문에 메모리를 절약합니다.XOP는 990 미니컴퓨터 시리즈의 상위 버전에서는 이를 실행하기 위한 전용 하드웨어가 있을 수 있는 로우엔드 모델의 소프트웨어 명령을 구현하기 위해 사용됩니다.

인텔 8086과의 일반적인 비교에서는 TMS9900은 [citation needed]작은 프로그램을 탑재하고 있었습니다.유일한[citation needed] 단점은 주소 공간이 작다는 것과 빠른 RAM이 필요하다는 것이었습니다.

실행

TMS9900 핀 구성(64 핀 DIP)

TMS9900은 N채널 실리콘 게이트 MOS [2]프로세스로 구현되었습니다.이 프로세스에서는 +5V, -5V 및 +12V 전원장치와 최대 주파수가 3MHz(333ns 사이클)[3]인 4상(중복하지 않음) 클럭이 필요했습니다.일반적으로 TIM9904(342a)를 사용하여 48MHz 결정에서 생성됩니다.

가장 짧은 명령은 8개의 클럭 사이클 또는 2.7μs를 완료해야 합니다(외부 대기 사이클이 0인 경우). 다른 명령의 대부분은 10~14 사이클(3.3~4.7μs). 가장 긴 실행 명령(DIV)은 최대 124 사이클(41.3μs)[4]이 소요될 수 있습니다.

칩은 64핀, 0.9인치 와이드 DIP로 포장되어 있었습니다.15비트(워드) 어드레스 버스 및 16비트 데이터 버스를 전용 핀에 삽입할 수 있는 핀 수가 비교적 많기 때문에 (인텔 8086 CPU와 달리) 멀티플렉싱을 사용하지 않고 외부 메모리 접속을 심플하게 할 수 있습니다.다른 많은 제조업체가 사용하는 관례와는 달리, TI는 가장 중요한 주소와 데이터 라인에 각각 "A0"과 "D0"이라는 레이블을 붙였습니다.모든 내부 데이터 경로와 ALU의 폭은 16비트입니다.

외부 다이렉트 메모리 액세스(DMA)를 위해서 주소 버스를 트라이스테이트 해 CPU를 일시 정지할 수 있습니다.메모리 액세스의 폭은 항상 16비트이며, CPU는 바이트 전체 액세스에 대해 쓰기 전 읽기 작업을 자동으로 수행합니다.

하드웨어 인터럽트 시스템은 4비트 인터럽트 priority 입력을 지원합니다.이 입력은 인터럽트 요구를 처리하기 위해 상태 레지스터(비트 12-15)에 저장되어 있는 priority 레벨보다 높아야 합니다.또한 /LOAD 입력은 전용 [5]벡터를 가진 마스크 불가능한 인터럽트 기능을 제공합니다.

또한 TMS9900 CPU에는 외부 시프트 레지스터와 인터페이스하도록 설계된 16비트 시프트 레지스터("CRU")가 포함되어 있으며, 주소 지정 가능한 총 4096비트 중 1~16비트 폭의 필드에 대한 액세스를 지원하는 전용 명령이 있습니다.

병렬 주변기기를 일반 주소 및 데이터 버스에 메모리 매핑 방식으로 연결할 수 있습니다.

적용들

TMS9995 프로세서를 탑재한 1983년 가정용 컴퓨터 Tomy Tutor

TMS9900은 TI-99/4TI-99/4A 가정용 컴퓨터에서 사용되었습니다.안타깝게도 TI는 생산 비용을 절감하기 위해 TMS9900이 직접 액세스할 수 있는 고속 RAM의 16비트 워드 128개만 이 시스템에서 사용하기로 결정했습니다.나머지 메모리는 비디오 디스플레이 컨트롤러를 통해서만 간접적으로 접근할 수 있는 16KB의 8비트 D램이어서 TI-99/4의 성능이 저하됐다.

TI는 CPU, 메모리, I/O를 포함한 TM990 시리즈의 컴퓨터 모듈을 개발했습니다.이 모듈은 카드 프레임에 꽂으면 16비트 미니컴퓨터를 형성할 수 있습니다.이들은 일반적으로 프로세스 [6]제어에 사용되었습니다.마이크로프로세서 트레이너는 TM990/189의 [7]형태로 출시되었습니다.

TMS9900 패밀리 제품 개발

TMS9900 시리즈의 2세대 마이크로프로세서는 TMS9995로 "기존 9900 시리즈 프로세서보다 3배 빠른 속도에서 기능적 성능"[8]을 제공했는데, 이는 주로 명령 프리페치 기술이 포함되었기 때문입니다.가정용 컴퓨터 분야에서 TMS9995는 Tomy Tutor, Geneve 9640이라고 불리는 난해한 TI99-4/A 업그레이드, Electronics Today에 인쇄된 프로젝트인 Powertran [9]Cortex에서만 사용되었습니다.TI-99/2 및 TI-99/8 컴퓨터 시스템에서 사용할 예정이었지만, 어느 쪽도 프로토타입 단계를 지나치지 않았습니다.

플라스틱 DIP 패키지의 TMS9900NL

TI는 이후 비용 절감을 위해 990/10A 미니컴퓨터의 CPU로 사용된 보다 강력한 마이크로프로세서 TMS99000 시리즈를 개발했습니다.안타깝게도 990/10A가 시장에 나왔을 때는 미니 컴퓨터 시대의 종말이 눈앞에 펼쳐져 있었습니다.

TMS99000 패밀리에는 TMS99105A와 TMS99110A의 2개의 마이크로프로세서가 [10]포함되어 있으며, 온칩 매크로 스토어 ROM 메모리(매크로스토어 메모리에는 표준 머신 코드로 작성된 에뮬레이션 루틴을 통한 추가 기능 또는 명령이 포함되어 있습니다)를 제외하고 동일합니다.TMS99110A 마이크로프로세서의 온칩 ROM 매크로 스토어에는 기계어 명령어 세트의 일부로 사용할 수 있는 부동소수점 명령이 포함되어 있지만 TMS99105A에는 ROM 매크로 스토어가 포함되어 있지 않습니다.TMS99000 시리즈의 세 번째 멤버인 TMS99120이 발표되었지만 상업적으로[11] 생산되지는 않았을 수 있습니다.TMS99120의 온칩 ROM 매크로 스토어에는 PASCAL 고급 언어에 대한 런타임 지원 루틴이 포함되어 있습니다.

TMS99000 패밀리의 명령어세트는 TMS9995 및 TMS9900의 슈퍼셋으로 오브젝트코드 호환성이 있습니다.추가 명령에는 부호 있는 곱하기 및 나누기, 긴 단어 이동, 더하기 및 빼기, 로드 상태 레지스터, 로드 작업 공간 포인터, 스택 작업, 멀티 프로세서 지원, 비트 조작에 대한 명령이 포함됩니다.패밀리 구성원은 256KB의 메모리에 즉시 액세스할 수 있으며 TIM99610 메모리 매퍼를 사용하여 최대 16MB의 메모리를 처리할 수 있습니다.이 아키텍처에는 TMS9900 및 TMS995에 비해 많은 다른 진보가 포함되어 있습니다.

변종

모델 묘사
TI990/9 미니컴퓨터 시스템용 초기 멀티칩 CPU, 1974년
TI990/10 미니컴퓨터 시스템용 멀티칩 구현, 1975
TI990/12 990/10보다 빠른 멀티칩 구현
TMS9900 싱글 칩 실장, 1976년, TI-99/4(A) 컴퓨터에서 사용
TMS9940 2KB ROM, 128B RAM, 감쇠기, CRU 버스 탑재 마이크로 컨트롤러, 1979년
TMS9980
TMS9981
TMS9900의 8비트 데이터버스 버전
TMS9985 TMS9940 (8KB ROM, 256B RAM 및8비트 외부 버스 탑재, c.78 (출시되지 않음)
TMS9989 개량된 9980, 군사용 하드웨어에 사용
TMS9995 TMS9985와 같은 개량, ROM 없음.TI-99/2 및 TI-99/8 프로토타입, Tomy Tutor 및 Geneve 컴퓨터에 사용
TMS99105 TMS99000 마이크로프로세서 패밀리의 베이스라인 멤버
TMS99110 온칩 매크로 스토어 ROM 메모리에 부동소수점 명령이 사전 프로그래밍된 TMS99000 패밀리 마이크로프로세서
TMS99120 TMS99000 패밀리 마이크로프로세서(PASCAL 고급 언어에 대한 런타임 지원 루틴 포함)
온칩 매크로 스토어 ROM 메모리(마이크로 프로세서는 발표되었지만 상업적으로 생산되지 않았을 수 있음)

메모들

  1. ^ General Instrument CP1600만 출시 날짜가 마감되었습니다.

레퍼런스

  1. ^ Rhines, Walden C. (2017-06-22). "The Texas Instruments 99/4: World's First 16-Bit Home Computer". IEEE Spectrum. Retrieved 2017-07-08.
  2. ^ a b TMS9900 Microprocessor Data Manual (PDF). Texas Instruments Inc. 1976. p. 3.
  3. ^ TMS9900 Microprocessor Data Manual (PDF). Texas Instruments Inc. 1976. p. 31.
  4. ^ TMS9900 Microprocessor Data Manual (PDF). Texas Instruments Inc. 1976. p. 28.
  5. ^ TMS9900 Microprocessor Data Manual (PDF). Texas Instruments Inc. 1976. p. 6.
  6. ^ "Stuart's TM 990 Series 16-Bit Microcomputer Modules". Retrieved 2014-03-25.
  7. ^ "Programmable Calculators - Texas Instruments TM990/189". Retrieved 2014-03-25.
  8. ^ TMS9995 marketing brochure (PDF). Texas Instruments Inc. 1981. p. 2.
  9. ^ "Powertran Cortex.com". Retrieved 2014-03-27.
  10. ^ TMS99105A and TMS99110A 16-Bit Microprocessors Preliminary Data Manual (PDF). Texas Instruments Inc. 1982. p. 1.
  11. ^ Microsystems Designers Handbook, 2nd Edition. Texas Instruments Limited. 1981. pp. 3–25 onwards.

외부 링크