TMS320

텍사스 인스트루먼트 TMS32020

TMS320은 텍사스 인스트루먼트에서 생산하는 디지털 신호 처리 장치(DSP) 시리즈를 통칭하는 이름이다. 1983년 4월 8일 TMS32010 프로세서를 통해 처음 도입되었으며, 당시 시장에서 가장 빠른 DSP였다.

이 프로세서는 다양한 변종으로 제공되며, 일부는 고정 소수점 연산을, 일부는 부동 소수점 연산을 지원한다. TMS320 프로세서는 NMOS와 CMOS 변종을 포함하여 반도체 제조 공정을 통해 생산되었다. 지연 분기 논리(delayed branch logic)를 활용하는 부동 소수점 DSP인 TMS320C3x는 최대 3개의 분기 지연 슬롯을 가진다.

이 프로세서 시리즈는 디지털 신호 처리 보조 프로세서로 사용되거나, 일부 응용 분야에서는 메인 CPU로 사용된다. 최신 구현 제품들은 경계 주사(boundary scan) 및 인서킷 디버깅을 위한 표준 IEEE JTAG 제어를 지원한다.

초기 TMS32010과 그 후속 변종들은 수정 하버드 구조(modified Harvard architecture)를 가진 CPU의 예로, 명령어 메모리와 데이터 메모리에 대한 별도의 주소 공간을 가지면서도 명령어 메모리로부터 데이터 값을 읽어올 수 있는 능력을 갖추고 있다. TMS32010은 DSP 응용 분야와 컴퓨터 그래픽스 변환 작업에 유용한 고속 곱셈-누산(multiply-and-accumulate) 연산 기능을 갖추고 있었다. 1985년에 출시된 아폴로 컴퓨터 DN570 워크스테이션용 그래픽 컨트롤러 카드는 TMS32010을 기반으로 했으며, 초당 20,000개의 2D 벡터를 변환할 수 있었다.

변종

TMS320 아키텍처는 오랜 기간 사용되어 왔기에 수많은 제품 변종이 개발되었다. 첫 번째 TMS32010 프로세서 이후 텍사스 인스트루먼트가 사용한 제품 코드는 "TMS320Cabcd" 형태의 프로세서 이름을 포함하는데, 여기서 a는 메인 시리즈, b는 세대, cd는 하위 변종을 나타내는 특정 숫자이다.

이러한 이유로 DSP 관련 종사자들은 실제 이름이 TMS320C5510인 경우에도 종종 "C5x"와 같이 약칭으로 부르는데, 이는 모든 제품이 "TMS320"이라는 이름을 공유하고 이름에 "C5"가 포함된 모든 프로세서는 코드 호환이 가능하며 동일한 기본 기능을 공유하기 때문이다. 마찬가지로, 같은 시리즈 및 세대의 프로세서들은 더욱 유사하므로 "C55x"와 같이 하위 그룹으로 지칭될 수 있다.

TMS320 프로세서는 NMOS와 CMOS 변종을 포함하여 반도체 제조 공정을 통해 생산된다.

명칭 체계

TMS 접두사는 해당 프로세서가 완전한 사양을 갖춘 양산형 장치임을 나타낸다. 프로토타입 변종에는 TMX 또는 TMP 접두사가 사용된다. 320 뒤의 숫자는 단순히 장치 제품군을 의미하며, 이를 합쳐 TMS320 MCU 제품군을 구성한다.

구형 시리즈

  • TMS320C1x, 1세대 16비트 고정 소수점 DSP. 이 시리즈의 모든 프로세서는 TMS32010과 코드 호환됨.
    • TMS32010, 1983년에 도입된 첫 번째 시리즈의 최초 프로세서, 외부 메모리 사용
    • TMS320M10, 동일한 프로세서이나 3 KB 내부 ROM 포함
    • TMS320C10, TMS320C25 등
  • TMS320C2x, 2세대 16비트 고정 소수점 DSP. 이 시리즈의 모든 프로세서는 TMS32020과 오브젝트 코드 호환되며 TMS32010과 소스 코드 호환됨.
    • TMS32020, 두 번째 시리즈의 최초 프로세서
    • TMS320C25, 40 MHz CMOS 버전, 기능 세트가 대폭 향상됨
    • TMS320C25-50, TMS320C25의 50 MHz 버전
    • TMS320C26, 4K-워드 ROM을 제외한 TMS320C25와 동일
    • TMS320E25, 4K-워드 온칩 프로그램 저장소에 ROM 대신 EPROM을 사용하는 것을 제외하면 TMS320C25와 동일
  • TMS320C3x, 32비트 부동 소수점
    • TMS320C30, 27~50 MHz, 8 KB 내부 SRAM, 5볼트
    • TMS320C31, 27~60 MHz, 8 KB 내부 SRAM, 5볼트, 두 번째 직렬 포트 및 두 번째 메모리 버스 제거, 사용자 ROM을 공장 출고 시 ROM 부트로더로 대체하여 TMS320C30의 기능을 일부 제한함
    • TMS320LC31, 33~40 MHz, TMS320C31의 3.3볼트 버전
    • TMS320C32, 40~60 MHz, 2 KB 내부 SRAM, 5볼트, 두 번째 DMA 보조 프로세서 추가, 외부 메모리 버스를 변경하여 다른 C3x 제품들이 32비트 전용인 것과 달리 8/16/32비트 넓이의 메모리 접근 가능
    • TMS320VC33, 60~75 MHz, 136 KB 내부 SRAM, 1.8볼트 코어에 3.3볼트 I/O, 128KB 내부 SRAM을 추가하여 TMS320C31의 기능을 확장함
  • TMS320C4x, 32비트 부동 소수점
    • TMS320C40, 40/50/60/80 MHz, 사이클 타임 50/40/33/25 ns, CMOS, 3개의 분기 지연 슬롯이 장착되어 있으며 지연 분기 명령어와 비지연 분기 명령어를 모두 지원함.
    • TMS320C44, TMS320C40의 기능을 일부 제한한 모델
  • TMS320C8x, 멀티프로세서 칩
    • TMS320C80 MVP(멀티미디어 비디오 프로세서)는 32비트 부동 소수점 "마스터 프로세서"와 4개의 32비트 고정 소수점 "슬레이브 프로세서"로 구성됨.

C2000 시리즈

테슬라 모델 3 드라이브 인버터 내부의 TMS320F28377DPTPQ (C28x).

C2000 마이크로컨트롤러 제품군(C28x)은 실시간 제어 응용 분야를 위해 설계된 32비트 마이크로컨트롤러 그룹이다.

이 마이크로컨트롤러들은 PWM, ADC, 구적 인코더 모듈과 같이 제어 시스템에 흔히 사용되는 주변 장치들을 통합하고 있다. 이들은 I²C, SPI, 직렬, CAN과 같은 통신 인터페이스를 지원한다.

PWM 및 고해상도 PWM(HRPWM)과 같은 기능은 C2000 제품군을 모터 제어 및 구동 장치, 산업 자동화, 전력 시스템을 포함한 제어 작업에 적합하게 만든다.

C5000 시리즈

  • TMS320C54x 16비트 고정 소수점 DSP, 순차 실행(in-order-execution) 방식의 6단계 파이프라인, 산술 연산 시 병렬 로드/스토어, 곱셈 누산 및 기타 DSP 기능 강화. 다중 포트 내부 메모리. 캐시 유닛 없음.
    • 1990년대 후반 많은 노키아 및 에릭슨 휴대전화가 C54x를 사용하던 시기에 2G 소프트웨어 정의 휴대전화 무선 장치를 위한 대중적인 선택지였다.
    • 당시 휴대전화의 사용자 인터페이스를 개선하려는 요구로 인해 사용자 인터페이스 및 제어를 위한 범용 프로세서로 ARM7이 채택되었고, 이 기능은 DSP에서 분리되었다. 이는 궁극적으로 듀얼 코어 ARM7+C54x DSP의 탄생으로 이어졌으며, 이후 OMAP 제품군으로 발전했다.
  • TMS320C55x 세대 – 고정 소수점, C54x 코드를 실행하지만 더 많은 내부 병렬성(추가 ALU, 듀얼 MAC, 더 넓은 메모리 대역폭)과 레지스터를 추가하는 동시에 훨씬 낮은 전력으로 작동을 지원함.
    • 오늘날 대부분의 C55x DSP는 개별 칩으로 판매됨.
    • OMAP1 칩은 ARM9 (ARMv5TEJ)과 C55x 시리즈 DSP를 결합함.
    • OMAP2420 칩은 ARM11 (ARMv6)과 C55x 시리즈 DSP를 결합함.

C6000 시리즈

텍사스 인스트루먼트 TMS320C6726BRFP
  • TMS320 C6000 시리즈, 또는 TMS320C6x: VLIW 기반 DSP
    • TMS320C62x 고정 소수점 – 2000 MIPS/1.9 W
    • TMS320C67x 부동 소수점 – TMS320C62x와 코드 호환
    • TMS320C64x 고정 소수점 – TMS320C62x와 코드 호환
    • TMS320C67x+ 부동 소수점 – TMS320C67x의 아키텍처 업데이트
    • TMS320C64x+ 고정 소수점 – TMS320C64x의 주요 아키텍처 업데이트
    • TMS320C674x 고정 및 부동 소수점 – C64x+와 C67x+의 통합
    • TMS320C66x 고정 및 부동 소수점 – C674x와 역호환됨
  • C6000 시리즈 DSP를 포함하는 기타 부품
    • 다빈치 칩은 ARM9 및 C64x+ 또는 C674x DSP 중 하나 또는 둘 다를 포함함.
    • OMAP-L13x 칩은 ARM9 (ARMv5TEJ)과 C674x 고정 및 부동 소수점 DSP를 포함함.
    • OMAP243x 칩은 ARM11 (ARMv6)과 C64x 시리즈 DSP를 결합함.
    • OMAP3 칩은 ARM Cortex-A8 (ARMv7)과 C64x+ DSP를 포함함.
    • OMAP4 및 OMAP5 칩은 ARM Cortex-A9 또는 A15 (ARMv7)와 Tesla(또는 C64T)로 알려진 커스텀 C64x+ 파생형을 포함함.

C7000 시리즈

C7000 시리즈는 2020년 초에 출시되었으나 코어는 개별적으로 판매되지 않는다. 2023년 8월 기준으로 이들은 C71x DSP를 탑재한 TDA4VM과 같은 다른 SOC 내부에 번들로만 제공된다.

다빈치 시리즈

  • 다빈치 시리즈는 내장된 C6000 시리즈(C64x+) DSP, ARM9 애플리케이션 프로세서, 디지털 미디어 주변 장치를 사용하는 시스템 온 칩으로 시작되었다. ARM이 포함되지 않거나 DSP가 포함되지 않은 변종들도 존재한다. 이들의 마케팅은 비디오 처리 능력에 초점을 맞추고 있다. 초기 칩들은 NTSC와 PAL을 지원했으며, 최신 칩들은 HDTV를 지원한다.

OMAP 변종

  • OMAP 변종들은 같은 칩 내부에 ARM 프로세서를 포함하고 있다; 텍사스 인스트루먼트 OMAP에 관한 메인 문서를 참조하라. (다른 보조 프로세서를 가진 OMAP 프로세서들도 있으므로, 이들이 반드시 DSP인 것은 아니다.)

DA 변종

  • DA 변종 (대상: "디지털 오디오")
    • DA25x는 ARM 프로세서와 C55x 코어이다. USB 슬레이브 컨트롤러 및 보안 기능과 같은 일부 온칩 주변 장치를 가지고 있다. 이 칩에 대한 문서는 텍사스 인스트루먼트의 NDA에 서명한 후에만 제공된다. 이 변종들은 크리에이티브 ZEN 및 델 디지털 주크박스 MP3 플레이어에서 MP3 데이터 스트림의 모든 처리를 위한 메인 CPU 및 신호 프로세서로 독점 사용된다.
    • TMS320DA7xx Aureus 칩은 C67x+ DSP를 기반으로 구축됨.
    • DA830/DA828 Aureus 칩은 OMAP-L137을 기반으로 하며, 300 MHz C674x DSP와 300 MHz ARM926ES-J 코어를 포함함. DA828 변종은 I/O가 줄어들었으며 256-볼 PBGA 대신 176-핀 TQFP 패키지로 제공됨.
    • DA610/601은 C67x 코어를 탑재한 프로세서이다. 5.1 또는 7.1 시스템용 오디오 코덱에 연결하는 데 필요한 온칩 주변 장치를 가지고 있다. 이 칩은 YAMAHA 하이엔드 리시버인 RX-V1400, RX-V2400, RX-V1600, RX-V2600, RX-V2500에 사용된다.

DM 변종

기타 공급업체

제너럴 인스트루먼트 DSP32010 다이

제너럴 인스트루먼트는 2차 공급원으로서 TMS32010을 제조했다.

ZMD U320C20FC

1991년경, TMS32020의 CMOS 버전이 U320C20FC라는 명칭으로 ZMD에 의해 제조되었다.

NIIET 1867VC10T

TMS320 시리즈의 여러 장치들이 보로네시의 NIIET에서 1867 시리즈로 생산되고 있다. 여기에는 내방사선 버전의 TMS320C25가 1867VM7T (러시아어: 1867ВМ7Т)라는 명칭으로 포함된다. TMS320C546의 클론은 2009년 PKK Milandr 모스크바에서 1967VC1T (러시아어: 1967ВЦ1Т)라는 명칭으로, 2016년에는 MVC 니즈니노브고로드에서 1910VM1T (러시아어: 1910ВМ1Т)라는 명칭으로 생산에 들어갔다. PKK Milandr는 또한 ARM 코어를 추가한 TMS320C54x를 1901VC1T (러시아어: 1901ВЦ1Т)라는 명칭으로 제조한다.

소프트웨어 지원

TMS320 시리즈는 C, C++, 및 어셈블리어를 사용하여 프로그래밍할 수 있다. TMS320 프로세서 작업의 대부분은 텍사스 인스트루먼트의 독점 툴체인과 통합 개발 환경인 코드 컴포저 스튜디오(Code Composer Studio)를 사용하여 수행되며, 여기에는 DSP/BIOS라는 미니 운영체제가 포함되어 있다. 추가로, 켐니츠 공과대학교의 한 학과에서 GNU 컴파일러 모음 내 TMS320C6x 시리즈를 위한 예비 지원을 개발하였다.

2007년 11월, TI는 비상업적 사용자를 위해 툴체인의 일부를 프리웨어로 공개했으며, 컴파일러, 어셈블러, 최적화 도구 및 링커를 독점 라이선스 하에 제공하였다. 하지만 IDE나 디버거는 포함되지 않았기에, DSP 디버깅 및 JTAG 접근을 위해서는 사용자가 여전히 전체 툴체인을 구매해야 한다.

2010년, 텍사스 인스트루먼트는 리눅스 커널을 C6x로 포팅하려는 노력의 일환으로 GCC에서 C6x 시리즈에 대한 깊은 통합과 지원을 제공하도록 코드서서리 (인수 후 멘토 그래픽스로 이관됨)와 계약을 맺었다. 이는 2012년 3월 22일 GCC 4.7 릴리스에서 C6x가 지원되는 아키텍처가 되는 결실을 맺었다.

같이 보기

각주

  1. ↑ “The TMS320C30 Floating-Point Digital Signal Processor” (PDF). ti.com. 14쪽. 2023년 11월 4일에 확인함.
  2. ↑ “TMS320C25”. 《텍사스 인스트루먼트》. 2019년 12월 10일에 확인함.
  3. ↑ “Silicon Errata” (PDF). 2017년 11월 24일에 원본 문서 (PDF)에서 보존된 문서.
  4. ↑ “TMS320 SECOND GENERATION DIGITAL SIGNAL PROCESSORS” (PDF). 《텍사스 인스트루먼트》. 2023년 12월 7일에 확인함.
  5. ↑ “TMS320C40”. 《텍사스 인스트루먼트》. 2019년 12월 10일에 확인함.
  6. ↑ “TMS320C4x User's Guide” (PDF). 171(7-9)쪽. 2023년 12월 23일에 확인함.
  7. ↑ Guttag, Karl; (USA), Texas Instruments Inc. (1996년 6월 7일). Picone, Joseph (편집). “TMS320C8x family architecture and future roadmap”. 《Digital Signal Processing Technology》 2750: 2–11. Bibcode:1996SPIE.2750....2G. doi:10.1117/12.241977. S2CID 60536785. 2017년 1월 7일에 확인함.
  8. ↑ “TMS320C54x DSP Reference Set - Volume 1: CPU and Peripherals” (PDF). 《www.ti.com》. 2024년 8월 6일에 확인함.
  9. ↑ 이 “LinuxDevices article”.는 이 플랫폼에 대한 추가 정보를 포함함
  10. ↑ 이 “IC Database”. 2009년 12월 28일에 원본 문서에서 보존된 문서. 2009년 9월 22일에 확인함. 사이트는 추가 정보를 포함함
  11. ↑ Heuer, Gert (1991). 《Digitaler Signalprozessor U320C20》 [디지털 신호 처리 장치 U320C20] (독일어). Berlin: Verlag Technik. ISBN 978-3341009987.
  12. ↑ “DSP-процессоры” [DSP 프로세서] (러시아어). 《niiet.ru》. Voronezh: OAO "NIIET". 2018년 6월 26일에 원본 문서에서 보존된 문서. 2019년 12월 2일에 확인함.
  13. ↑ “1967ВЦ1Т (аналог TMS320C546)” [1967VC1T (TMS320C546 대응품)] (러시아어). Moscow: PKK Milandr. 2009년 5월 20일. 2017년 1월 9일에 확인함.
  14. ↑ “Микропроцессоры и микроконтроллеры” [마이크로프로세서 및 마이크로컨트롤러] (러시아어). Nizhny Novgorod: MVC. 2014. 2017년 5월 10일에 원본 문서에서 보존된 문서. 2018년 4월 18일에 확인함.
  15. ↑ “Двухъядерный микроконтроллер компании "Миландр" для высоконадёжных применений” [고신뢰성 응용 분야를 위한 "Milandr" 사의 듀얼 코어 마이크로컨트롤러] (PDF) (러시아어). Moscow: PKK Milandr. 2016년 4월 27일에 원본 문서 (PDF)에서 보존된 문서. 2018년 4월 18일에 확인함.
  16. ↑ Jan Parthey and Robert Baumgartl, Porting GCC to the TMS320-C6000 DSP Architecture, Appeared in the Proceedings of GSPx’04, Santa Clara, September 2004,
  17. ↑ “TI frees its DSP toolchain”.
  18. ↑ Free DSP Compiler Available
  19. ↑ GCC 4.7 Release Series – Changes, New Features, and Fixes

외부 링크