PTM Parallel Task Machine¶
소개¶
PTM은 Parallel Task Machine의 약자로, SF32LB57x용으로 문서화된 프로그래머블 주변 장치 태스크 엔진입니다. 일반 펌웨어 루프로 제때 처리하기 어려울 만큼 타이밍에 민감하고, 고정 기능 주변 장치로 처리하기에는 너무 특수하며, 메인 Cortex-M33을 계속 투입하기에는 규모가 너무 작은 작업을 위한 것입니다.
실제 제품 관점에서 PTM을 사용하면 펌웨어가 결정적(deterministic) 주변 장치 동작을 오프로드할 수 있습니다. 대상은 사이클 단위로 민감한 IO 시퀀싱, 커스텀 프로토콜 처리, 센서 수집, PWM과 유사한 파형, 빠른 트리거 응답, 외부 이벤트에 연동된 소규모 레지스터 또는 메모리 워크플로입니다.
유용한 개념 모델은 단순합니다. CPU는 태스크를 구성하고 감독하며, PTM은 IO, FIFO/DMA, 이벤트, AHB 버스 패브릭 근처에서 반복적이고 타이밍이 중요한 부분을 실행합니다. 따라서 PTM은 단순한 GPIO 파형 보조 장치가 아니라, 주변 장치 자동화를 위한 소형 프로그래머블 태스크 머신입니다.
표준 주변 장치로는 필요한 타이밍이나 프로토콜을 표현할 수 없지만, 메인 CPU를 폴링 루프에 전담시키면 지연 시간, 전력, 펌웨어 복잡도가 늘어나는 경우에 이 페이지를 참고하십시오. 이 페이지는 하드웨어/펌웨어 경계를 설계하는 엔지니어를 위한 것이며, 일반적인 GPIO나 타이머 사용을 위한 것이 아닙니다.
PTM이 필요한 이유¶
마이크로컨트롤러는 애플리케이션 처리와 주변 장치 타이밍이 맞지 않는 상황을 자주 겪습니다. 메인 CPU의 성능은 제품에 충분하더라도, 일부 저수준 동작은 펌웨어를 불필요하게 복잡하게 만들 수 있습니다.
- 비트 단위 또는 사이클 단위로 민감한 IO 시퀀싱
- UART, SPI, I2C, CAN에 깔끔하게 대응되지 않는 커스텀 시리얼 방식 프로토콜
- 빠른 트리거 응답이 필요한 센서 폴링 또는 샘플링 흐름
- 표준 타이머 출력 모드를 넘어서는 PWM과 유사한 제어 패턴
- 주변 장치 이벤트에 연동된 소규모 데이터 이동 또는 레지스터 제어 워크플로
- 매 단계마다 메인 애플리케이션 경로를 깨우지 않고 수행하는 여러 주변 장치 간 조율
이러한 작업을 인터럽트에서 처리하면 지연 시간 위험과 인터럽트 부하가 생길 수 있습니다. 바쁜 대기(busy-wait) 루프에서 처리하면 CPU 시간과 전력이 낭비됩니다. 외부 로직을 추가하면 보드가 복잡해집니다. PTM은 이 선택지들 사이의 공백, 즉 펌웨어가 제어하는 간결하고 결정적인 주변 장치 실행을 담당하기 위해 존재합니다.
SF32LB57x 아키텍처에서의 PTM¶
PTM은 SF32LB57x SoC의 IO, 이벤트, FIFO/DMA, AHB 버스 인프라에 연결된 소형 프로그래머블 엔진으로 볼 수 있습니다. PTM은 SF32LB57x용으로 문서화된 기능으로 취급하십시오. PTM 기반 설계 가정을 다른 SF32 제품군으로 가져가기 전에 선택한 디바이스의 문서를 확인하십시오.
Application / firmware
│
▼
CPU configures PTM task
│
▼
PTM executes deterministic peripheral sequences
│
├── IO read/write
├── FIFO / DMA data movement
├── AHB memory or register access
├── Event wait / fixed delay
└── CPU interrupt or internal event notification
핵심적인 아키텍처상의 특징은 PTM이 간결한 커스텀 명령 스트림을 실행할 수 있으며 핀 이외의 대상과도 상호작용할 수 있다는 점입니다. PTM은 IO를 읽고 쓰고, 이벤트를 기다리고, FIFO/DMA 경로를 사용하고, AHB 메모리와 주변 장치 레지스터에 접근하며, 상위 수준의 펌웨어 처리가 필요할 때만 CPU에 알립니다.
이를 통해 시스템은 표준 작업에는 표준 주변 장치를 그대로 사용하면서, 실제 하드웨어 설계에서 나타나는 커스텀 타이밍 사례에는 결정적인 구현 경로를 확보할 수 있습니다.
핵심 기능¶
SF32LB57x 하드웨어 설계 가이드에는 16개 채널을 갖춘 PTM 블록 1개가 나와 있으며, 핀 멀티플렉싱 표에는 PTM1_CH0부터 PTM1_CH15까지가 명시되어 있습니다. SDK 정의와 함께 보면, 문서화된 기능은 다음과 같습니다.
- 독립적으로 제어되는 PTM 실행 리소스
- 간결한 커스텀 명령어 세트
- 내부 TCM 또는 시스템 버스에서의 명령 실행
- 버스 주소 읽기 및 쓰기
- 데이터 연산
- 조건 분기와 루프
- IO 읽기 및 쓰기
- 트리거 대기 동작
- 고정 지연 동작
- PTM TCM에서 실행할 때의 사이클 단위 타이밍 제어
- PTM 블록의 16개 IO 채널
- DMA 인터페이스를 갖춘 FIFO 지원
- 메모리 및 주변 장치 레지스터 연산을 위한 AHB 버스 접근
- CPU 인터럽트 생성
- 태스크 흐름 조율을 위한 내부 이벤트
- 인덱스로 지정된 PTM 리소스에 대해 SDK가 정의한 리셋, 시작, 일시 정지, 단일 단계 실행 제어
종합하면 이러한 기능 덕분에 PTM은 단순한 핀 시퀀서가 아니라 결정적인 주변 장치 자동화 블록이 됩니다.
리소스 구성: SDK v2.5.1 레지스터 정의는 0~7번 인덱스의 제어/레지스터 그룹을 제공하며, 명령 정의는 TCM 리소스에 대해 대응하는 인덱스를 사용합니다. 확보된 자료만으로는 SDK 인덱스가 물리적 처리 코어에 어떻게 대응되는지 확정할 수 없으므로, 인덱스 범위로 코어 수를 추정하지 마십시오. 리소스 사용 가능 여부는 대상 디바이스 문서와 SDK 구현에서 확인하십시오.
실행 모델¶
PTM은 커스텀 형식의 명령을 실행합니다. 명령어 세트는 의도적으로 간결하지만, 주변 장치 태스크 시퀀스를 구성하는 데 필요한 연산을 모두 포함합니다.
- 제어 흐름: 조건 검사, 점프, 루프, 대기, 지연
- IO 제어: 매핑된 IO 채널 읽기 및 쓰기
- 데이터 처리: 단순한 산술 및 비트 연산
- 버스 접근: AHB 버스를 통한 메모리 및 주변 장치 레지스터 읽기 또는 쓰기
- 동기화: 트리거 대기, 인터럽트 생성, 내부 이벤트를 통한 조율
태스크를 PTM TCM에서 실행하면 사이클 단위 정밀도로 타이밍을 제어할 수 있습니다. 이 특성은 커스텀 프로토콜과 IO 시퀀스에서 중요합니다. CPU가 모든 에지, 타이밍 슬롯, 짧은 주변 장치 단계마다 반응할 필요가 없기 때문입니다.
PTM에 가장 적합한 태스크는 대체로 작고, 명시적이며, 결정적입니다. 로직이 상위 수준이거나, 분기가 많거나, 애플리케이션 정책에 좌우된다면 CPU로 돌려보내는 것이 맞습니다.
IO, FIFO, DMA¶
SF32LB57x PTM 블록은 16개의 IO 채널을 제공합니다. 이 채널로 커스텀 인터페이스 타이밍을 구현하거나, 여러 핀을 모니터링하거나, 조율된 다중 신호 시퀀스를 생성할 수 있습니다.
PTM은 DMA 인터페이스를 갖춘 FIFO도 지원합니다. 쓸모 있는 커스텀 프로토콜은 핀을 토글하는 것만으로 끝나는 경우가 드물기 때문에 이 점이 중요합니다. 대개 바이트나 워드마다 CPU가 개입하지 않고도 메모리와 IO 지향 로직 사이에서 데이터를 옮겨야 합니다.
실제로 PTM은 다음과 같은 워크플로를 구성하는 데 도움이 됩니다.
- 커스텀 인터페이스를 통한 데이터 시프트
- 반복되는 IO 패턴의 캡처 또는 생성
- 주변 장치 이벤트와 데이터 이동의 조율
- 소규모 프로토콜 트랜잭션 버퍼링
- CPU가 핫 패스에 관여하지 않는 상태에서 DMA가 태스크 데이터를 공급하거나 비우도록 하기
이벤트와 인터럽트¶
PTM은 이벤트 지향적입니다. 이벤트 또는 고정 지연을 기다릴 수 있으며, 내부 이벤트로 태스크 흐름을 연결할 수 있습니다. 확보된 디바이스 문서로는 물리적 PTM 코어 수나 SDK 리소스 인덱스와 하드웨어 코어 간의 대응 관계를 확정할 수 없습니다. 일부 이벤트 경로는 인터럽트를 통해 CPU에 알릴 수 있으므로, 결정적 단계가 의미 있는 경계에 도달했을 때만 펌웨어가 깨어나거나 응답할 수 있습니다.
이것이 시스템 수준의 핵심 이점입니다. PTM이 저수준 타이밍 작업을 흡수하고 펌웨어에는 더 깔끔한 이벤트 경계를 제공할 수 있습니다. 계속 폴링하거나 모든 타이밍 슬롯을 인터럽트로 처리하는 대신, CPU는 PTM 태스크를 구성하고 실행시킨 뒤 결과만 처리하면 됩니다.
대표적인 PTM 활용 사례¶
SF32LB57x 설계에서 PTM은 주변 장치 동작이 고정 기능 블록으로 처리하기에는 너무 특수하고 일반 펌웨어 루프로 제때 처리하기 어려울 만큼 타이밍에 민감할 때 가장 유용합니다.
대표적인 활용 사례는 다음과 같습니다.
- 커스텀 인터페이스 프로토콜
- 커스텀 PWM 또는 펄스 생성 동작
- 자동 센서 수집
- 빠른 트리거 응답 흐름
- 다중 모듈 스케줄링
- 일괄 메모리 또는 레지스터 연산
- 외부 디바이스를 둘러싼 소규모 결정적 제어 루프
- 센서, 디스플레이, 액추에이터 또는 동반 IC와 메인 애플리케이션 펌웨어 사이의 프로토콜 타이밍 차이를 메워 주는 역할
사용 범위¶
표준 주변 장치가 이미 해당 작업에 맞는다면 PTM으로 대체해서는 안 됩니다. UART, SPI, I2C, CAN, SDIO, I2S, PDM, 타이머, DMA는 표준 기능을 위한 첫 번째 선택으로 유지됩니다. PTM은 제품에 이러한 고정 블록 바로 바깥의 동작이 필요할 때 가장 가치가 있습니다.
PTM과 CPU 전력¶
PTM은 짧고 결정적인 주변 장치 작업에서 CPU 웨이크업을 줄일 수 있습니다. CPU는 PTM 태스크를 구성하고, 태스크가 실행되는 동안 관여를 줄이며, PTM이 펌웨어 수준의 처리가 필요한 경계에 도달하면 응답합니다.
이는 시스템이 다음과 같은 작업을 해야 하는 웨어러블 및 AIoT 제품에서 특히 의미가 있습니다.
- 센서 또는 GPIO 패턴 감시
- 짧은 버스트 데이터 수집
- 커스텀 외부 부품 서비스
- 애플리케이션 코어가 완전히 활성 상태가 아닌 동안의 타이밍 유지
- 반복적인 주변 장치 작업 중 인터럽트 빈도 감소
실제 에너지 절감량은 클럭 구성, 웨이크 정책, 코드와 데이터 배치, 주변 장치 상태, 펌웨어 아키텍처에 따라 달라집니다. PTM은 매 단계마다 CPU를 깨우지 않고도 소규모 주변 장치 태스크를 실행할 수 있습니다.
PTM, RP2040 PIO, Nordic PPI/DPPI¶
PTM, RP2040 PIO, Nordic PPI/DPPI는 모두 타이밍에 민감한 작업에서 CPU 관여를 줄일 수 있지만, 서로 다른 아키텍처 계층에서 동작하며 서로 대체할 수 없습니다.
- PTM은 프로그래머블 주변 장치 태스크 머신입니다. 태스크 명령을 실행하며 IO, 이벤트, FIFO/DMA, AHB 메모리 및 레지스터 접근과 함께 동작할 수 있습니다.
- PIO는 프로그래머블 IO 스테이트 머신입니다. 커스텀 GPIO 타이밍과 시리얼 방식 프로토콜에 초점을 맞춘 소규모 명령 프로그램을 실행합니다.
- PPI/DPPI는 프로그래머블 주변 장치 인터커넥트 메커니즘입니다. 주변 장치 이벤트를 기존 주변 장치 태스크로 라우팅하며, 명령을 실행하거나 데이터를 처리하지는 않습니다.
| 영역 | SF32LB57x PTM | RP2040 PIO | Nordic PPI/DPPI |
|---|---|---|---|
| 핵심 개념 | 결정적 IO, 커스텀 프로토콜, 센서 수집, 이벤트 기반 주변 장치 워크플로를 위한 프로그래머블 주변 장치 태스크 머신. | 결정적 GPIO와 커스텀 시리얼 방식 프로토콜을 위한 프로그래머블 IO 스테이트 머신. | 필요한 엔드포인트를 사용할 수 있는 경우 CPU와 무관하게 조율하기 위해 주변 장치 이벤트와 태스크를 연결하는 하드웨어 인터커넥트. |
| 실행 단위 | 인덱스로 지정된 PTM 실행 리소스. 선택한 디바이스에서 사용 가능한지 확인해야 합니다. | PIO 블록 2개, 블록마다 스테이트 머신 4개, 총 8개의 스테이트 머신. | 트리거를 전달하는 이벤트 채널. 프로그램을 실행하지 않습니다. |
| 내부 동작 모델 | PTM이 커스텀 태스크 명령을 실행합니다. | 스테이트 머신이 PIO 명령을 사이클 단위로 실행합니다. | PPI는 이벤트 엔드포인트와 태스크 엔드포인트를 연결하며, DPPI는 공유 채널에서 publisher 주변 장치와 subscriber 주변 장치를 사용합니다. |
| 타이밍 모델 | PTM TCM에서 실행할 때 사이클 단위 타이밍 제어. 대기와 고정 지연을 지원합니다. | 지연 슬롯(delay slot)과 대기 명령을 갖춘 사이클 정확도의 스테이트 머신 실행. | 이벤트가 기존 주변 장치 태스크를 트리거합니다. 타이밍은 연결된 주변 장치와 인터커넥트 구현에 따라 달라집니다. |
| IO 모델 | SF32LB57x PTM 블록은 16개의 IO 채널을 제공합니다. | 스테이트 머신이 핀 제어 구성을 통해 선택된 GPIO 핀에 명령을 매핑합니다. | GPIO 파형을 직접 생성하지 않으며, GPIOTE와 타이머 같은 주변 장치가 제공하는 태스크를 사용할 수 있습니다. |
| 명령과 로직 | IO, 버스 읽기/쓰기, 데이터 연산, 조건 분기, 대기, 지연을 위한 커스텀 명령어 세트. | 핀 IO, 시프트, 대기, 점프, FIFO push/pull, IRQ, 이동에 초점을 맞춘 소규모 명령어 세트. | 명령 실행, 루프, 분기, 데이터 연산이 없습니다. |
| 메모리/레지스터 접근 | AHB 메모리와 주변 장치 레지스터에 접근할 수 있습니다. | 주로 GPIO/FIFO/시프트 레지스터 중심이며, 데이터와 구성은 보통 CPU 또는 DMA가 공급합니다. | 메모리나 일반 주변 장치 레지스터에 접근하지 않으며, 사용 가능한 이벤트 및 태스크 엔드포인트만 연결합니다. |
| FIFO/DMA | DMA 인터페이스를 갖춘 FIFO 지원. | 일반적으로 DMA와 함께 사용하는 TX/RX FIFO. | 인터커넥트 자체에는 데이터 경로가 없으며, DMA를 지원하는 주변 장치의 태스크를 트리거할 수 있습니다. |
| CPU 상호작용 | CPU 인터럽트를 생성하고 내부 이벤트로 태스크 흐름을 연결할 수 있습니다. | IRQ 플래그, FIFO, CPU/DMA 상호작용을 사용합니다. | CPU가 채널을 구성하고, 주변 장치는 런타임에 이벤트-태스크 트리거링을 자율적으로 수행할 수 있습니다. |
| 대표 활용 사례 | 커스텀 인터페이스 프로토콜, 커스텀 PWM, 자동 센서 수집, 일괄 메모리/레지스터 연산, 다중 모듈 스케줄링. | UART/SPI/I2S 방식의 커스텀 인터페이스, WS2812 방식 파형, 핀 수준 시리얼 프로토콜, 정밀한 GPIO 타이밍. | ADC 변환, 카운팅 또는 기타 제공되는 표준 주변 장치 태스크를 시작하는 RTC 또는 타이머 이벤트. |
내부 동작 모델¶
이러한 메커니즘은 다음 실행 경로로 나타낼 수 있습니다.
PPI: Event endpoint ──> PPI channel ──> Task endpoint
DPPI: Publisher peripheral ──> DPPI channel ──> Subscriber peripheral task
PIO: CPU/DMA ──> PIO state-machine instructions ──> GPIO timing and FIFOs
PTM: CPU configuration ──> PTM task instructions ──> IO + events + FIFO/DMA + AHB access
PPI와 DPPI는 명령 스트림을 실행하지 않고 이벤트를 라우팅하지만, 기존 이벤트와 태스크만 연결할 수 있으며 새로운 프로토콜 로직을 정의할 수는 없습니다. PIO는 스테이트 머신으로 새로운 핀 동작을 정의하지만, 범위는 주로 GPIO와 FIFO입니다. PTM은 태스크 범위가 더 넓어서, IO 타이밍, 이벤트 대기, 데이터 이동, 레지스터 접근, 소규모 태스크 간 조율을 하나의 실행 가능한 흐름으로 구성할 수 있습니다.
PIO 타이밍은 대기 조건이나 FIFO가 가득 찼거나 비었을 때 정지(stall)할 수 있으며, 시스템 DMA 전달이 명령 타이밍을 보장하는 것은 아닙니다. 이벤트 라우팅 지연 시간도 구현에 따라 다릅니다. 이러한 아키텍처 차이만으로 전력 우열이 일률적으로 정해지지는 않습니다. 도메인 간 DPPI 전송에는 선택한 디바이스가 구현한 브리지가 필요하며, 모든 DPPI 시스템의 기능은 아닙니다.
Nordic PPI와 DPPI¶
PPI는 nRF52 제품군 같은 디바이스에서 볼 수 있는 Nordic의 레거시 모델입니다. 소프트웨어가 채널마다 이벤트 엔드포인트와 태스크 엔드포인트를 구성합니다. 채널은 fork 태스크 엔드포인트를 추가로 제공할 수도 있지만, 관계는 여전히 명시적인 엔드포인트 연결입니다.
DPPI는 Nordic의 더 새로운 모델입니다. 주변 장치가 채널에 이벤트를 publish하고, 하나 이상의 주변 장치 태스크가 그 채널을 subscribe합니다. 이렇게 하면 publisher와 subscriber가 분리되어 더 새로운 다중 도메인 Nordic 아키텍처에 적합하며, 신호가 전원 도메인을 넘어야 하는 경우에는 PPI 브리지가 지원되는 DPPI 채널을 도메인 간에 전달할 수 있습니다.
| 영역 | PPI | DPPI |
|---|---|---|
| 구성 모델 | 소프트웨어가 채널에 이벤트 엔드포인트 하나와 태스크 엔드포인트 하나 이상을 할당합니다. | 주변 장치 이벤트 publisher와 태스크 subscriber가 공통 채널을 선택합니다. |
| 연결 방식 | 명시적인 이벤트-태스크 엔드포인트 라우팅. | Publish/subscribe 라우팅. |
| 이벤트 하나에 태스크 여러 개 | 여러 채널을 사용하거나 채널의 fork 태스크 엔드포인트를 사용합니다. | 여러 subscriber 태스크가 publish된 같은 채널을 subscribe할 수 있습니다. |
| 대표적인 플랫폼 환경 | 많은 nRF52 디바이스를 포함해 PPI를 지원하는 레거시 Nordic 디바이스. | 분산 이벤트 시스템을 구현한 더 새로운 Nordic 디바이스. |
| 실행 능력 | 명령 실행이나 데이터 처리가 없습니다. | 명령 실행이나 데이터 처리가 없습니다. |
스마트워치 센서 허브 활용 사례¶
일반적인 스마트워치 센서 허브라면 표준 I2C/SPI 주변 장치, DMA, 타이머, 저전력 웨이크 동작부터 시작하십시오. 그런 다음 필요를 분류합니다.
- 일상적인 샘플링 체인: 예를 들어 RTC 또는 타이머가 만료되어 지원되는 표준 주변 장치 태스크를 시작한 뒤, 완료 또는 임계값 감지 시 CPU에 알립니다. Nordic 플랫폼에서는 이러한 이벤트-기존 태스크 패턴이 레거시 디바이스의 PPI 또는 더 새로운 디바이스의 DPPI에 잘 맞으며, PIO나 PTM 프로그램이 필요하지 않습니다.
- 커스텀 전기적 프로토콜: 센서가 표준 I2C/SPI로는 지원할 수 없는 비표준 파형, 비트 폭, 타이밍을 요구한다면 핀 수준 프로토콜 구현에는 PIO가 더 적합합니다.
- 커스텀 센서 워크플로: 트랜잭션이 여러 트리거를 기다리고, 여러 IO를 제어하고, 짧은 데이터를 옮기고, 레지스터에 접근하고, 여러 단계를 조율해야 한다면 SF32LB57x에서는 PTM이 더 적합합니다. PTM은 정해진 이정표 시점에 CPU에 알릴 수 있습니다.
따라서 PPI/DPPI, PIO, PTM은 "더 낫다, 더 못하다"로 경쟁하는 선택지가 아닙니다. 이들은 서로 다른 계층에서 각각 이벤트 연결, 핀 수준 프로토콜, 주변 장치 태스크 자동화를 담당합니다. SF32LB57x에서는 표준 주변 장치로 시작하고, 필요한 타이밍이나 워크플로가 그 능력을 넘어설 때만 PTM을 사용하십시오.
참고 자료: SiFli PTM 명령어 정의, RP2040 데이터시트, Nordic PPI 사양, Nordic DPPI 이벤트 시스템
설계 지침¶
타이밍과 전력 한계: 사이클 단위 명령 타이밍이 트랜잭션 전체를 한정하지는 않습니다. AHB 접근, DMA 완료, 외부 이벤트 대기가 가변적인 지연을 더할 수 있습니다. 필요한 PTM, 메모리, 주변 장치 클럭과 전원 도메인을 활성 상태로 유지하십시오. CPU가 동작하지 않는다고 해서 PTM이 모든 SoC 슬립 모드에서 실행될 수 있는 것은 아닙니다. 유지되는 클럭과 웨이크업 오버헤드를 포함한 전체 에너지를 표준 주변 장치 구현과 비교하여 측정하십시오.
리소스 소유권: SDK v2.5.1에서 SF32LB57x RAMless DPI 디스플레이 드라이버는 SDK에서 "PTM core 0"으로 식별되는 실행 리소스와 그 TCM, 이벤트 0, 관련 인터럽트, 할당된 DMA 채널을 사용합니다. 이 SDK 식별자로는 물리적 PTM 코어 수를 확정할 수 없습니다. 이 드라이버는 버스 접근과 DMA 조율의 구체적인 예이며, 자유롭게 재사용할 수 있는 리소스 할당이 아닙니다. 활성 드라이버가 소유한 리소스를 덮어쓰지 마십시오. CPU와 DMA 간 버퍼 소유권을 정의하고, 필요한 경우 캐시 관리를 수행하십시오.
먼저 대상이 설계 의도에 맞게 PTM이 문서화된 SF32LB57x 디바이스인지 확인하십시오. 그런 다음 워크플로가 다음 특성 중 여러 가지를 가질 때 PTM을 고려하십시오.
- CPU가 처리하면 전력이나 타이밍 마진이 낭비될 만큼 자주 반복됩니다.
- IO 에지 또는 트리거 응답 주변에서 결정적 타이밍이 필요합니다.
- 표준 주변 장치로 깔끔하게 처리되지 않는 커스텀 인터페이스를 사용합니다.
- FIFO/DMA를 활용한 데이터 이동의 이점이 있습니다.
- 간결한 스테이트 머신 또는 태스크 시퀀스로 표현할 수 있습니다.
- 의미 있는 경계에서만 펌웨어에 알려야 합니다.
다음과 같은 경우에는 PTM을 피하십시오.
- 표준 주변 장치가 이미 프로토콜을 깔끔하게 구현합니다.
- 태스크가 상위 수준이며 분기가 많은 애플리케이션 로직입니다.
- 타이밍이 느슨해서 일반 인터럽트나 RTOS 태스크가 더 단순합니다.
- 소프트웨어 팀에 필요한 PTM 프로그램을 위한 SDK 지원, 예제, 툴링이 아직 없습니다.
좋은 PTM 설계는 결정적 작업과 정책 작업의 경계를 긋는 것에서 시작합니다. 타이밍, 짧은 데이터 이동, 이벤트 반응은 PTM에 맡기십시오. 제품 의사결정, 오류 처리 정책, 대용량 버퍼, 복잡한 상태 소유권은 펌웨어에 두십시오.
핵심 요약¶
- SF32LB57x 하드웨어 설계 가이드에는 16개 채널을 갖춘 PTM 블록 1개가 나와 있습니다. 다른 제품군은 각 대상 디바이스의 문서를 참고하십시오.
- 선택한 디바이스와 SDK에서 구현된 PTM 리소스를 확인하십시오.
- PTM TCM 또는 시스템 버스에서 간결한 커스텀 명령을 실행할 수 있습니다.
- IO 제어, 버스/레지스터 접근, 데이터 연산, 대기, 지연, FIFO/DMA, 인터럽트, 내부 이벤트를 지원합니다.
- 고정 기능 하드웨어와 일반 펌웨어 사이에 위치하는 결정적 커스텀 주변 장치 동작에 유용합니다.
- PTM은 개념적으로 RP2040 PIO와 가깝지만, 시스템 통합과 태스크 범위가 더 넓습니다.
- SF32LB57x 설계에서 선택한 디바이스가 필요한 PTM 리소스를 문서화하고 있다면, PTM은 특히 커스텀 센서, 디스플레이, 액추에이터, 프로토콜 글루, 저오버헤드 주변 장치 자동화에서 아키텍처상의 차별점이 될 수 있습니다.
최종 업데이트: