시차 프로펠러
Parallax PropellerParallax P8X32A 프로펠러는 8개의 32비트 RISC(Reduced Instruction Set Computer) 중앙처리장치(CPU) [1][2]코어를 갖춘 멀티코어 프로세서 병렬 컴퓨터 아키텍처 마이크로컨트롤러 칩입니다.2006년에 도입되어 Parallax, Inc.에 의해 설계 및 판매되고 있습니다.
프로펠러 마이크로컨트롤러, 프로펠러 어셈블리 언어 및 스핀 인터프리터는 Parallax의 공동 설립자이자 사장 Chip Gracey가 설계했습니다.스핀 프로그래밍 언어와 프로펠러 도구 통합 개발 환경(IDE)은 Chip Gracey와 Parallax의 소프트웨어 엔지니어 Jeff Martin이 설계했습니다.
2014년 8월 6일, Parallax Inc.는 GNU General Public License(GPL) 3.0에 따라 모든 Profler 1 P8X32A 하드웨어 및 도구를 오픈 소스 하드웨어 및 소프트웨어로 출시했습니다.여기에는 Verilog 코드, 최상위 하드웨어 기술 언어(HDL) 파일, 스핀 인터프리터, 프로펠러 등이 포함됩니다.IDE 및 심플IDE 프로그래밍 도구 및 컴파일러.[3]
멀티코어 아키텍처
8개의 32비트 코어(톱니바퀴라고 함)는 각각 512개의 32비트 긴 워드(2KB)의 명령 및 데이터에 액세스할 수 있는 중앙처리장치(CPU)를 갖추고 있습니다.자체 수정 코드가 가능하며 부트로더가 스핀 인터프리터로 자신을 덮어쓸 때처럼 내부적으로 사용됩니다.Spin(개체 기반의 고급 코드) 서브루틴은 콜스택을 사용해야 하는 콜 리턴 메커니즘을 사용합니다.어셈블리(PASM, 로우 레벨) 코드는 콜스택이 필요 없습니다.공유 메모리(32KB 랜덤 액세스 메모리(RAM), 32KB 읽기 전용 메모리(ROM))에 대한 액세스는 허브라고 불리는 내부 컴퓨터 버스 컨트롤러에 의해 라운드 로빈 스케줄링을 통해 제어됩니다.또한 각 톱니바퀴는 PAL, NTSC, VGA, 서보메카니즘 제어 [4]등의 타이밍 신호를 생성하기 위해 2개의 전용 하드웨어 카운터 및 특별한 비디오 제너레이터에 액세스할 수 있습니다.
속도와 전원 관리
프로펠러는 내부 온칩 발진기(전체 부품 수는 더 적지만 정확도와 열 안정성은 일부 희생) 또는 외부 결정 발진기 또는 세라믹 공진기(높은 총 비용으로 더 높은 정확도로 더 높은 속도를 제공)를 사용하여 클럭을 측정할 수 있습니다.외부 오실레이터만 On-Chip Phase-Locked Loop(PLL; 온칩 위상 잠금 루프) 클럭 승수를 통해 실행할 수 있으며, 1x, 2x, 4x, 8x 또는 16x로 설정할 수 있습니다.
온보드 오실레이터 주파수(사용되는 경우)와 PLL 승수 값은 런타임에 모두 변경될 수 있습니다.올바르게 사용하면 전력 효율을 향상시킬 수 있습니다.예를 들어 타이밍을 위해 장시간 동작 대기할 필요가 없어지기 전에 PLL 멀티플라이어를 줄이고 그 후에 증가시켜 프로세서의 소비 전력을 줄일 수 있습니다.단, 유효 클럭환율은 모든 톱니바퀴에 공통이기 때문에 이 기술의 효용성은 다른 톱니바퀴가 타이밍 의존 코드를 실행하고 있지 않은(또는 변경에 대처하도록 신중하게 설계되어 있는) 상황으로 제한됩니다.
유효 클럭환율은 32kHz ~80MHz입니다(위에서 설명한 바와 같이 사용되는 설정에 따라 다이내믹 제어에 사용할 수 있는 정확한 값이 있습니다).80MHz에서 실행 중일 때, 독점적으로 해석된 Spin 프로그래밍 언어는 각 코어에 대해 초당 약 80,000개의 명령-토큰을 실행하며, 초당 640,000개의 고급 명령에 대해 8배의 80,000배를 제공합니다.대부분의 기계어 명령은 4클럭 사이클이 소요되므로 톱니바퀴당 2,000만 명령/초(MIPS) 또는 8 톱니바퀴 프로펠러의 경우 총 160 MIPS가 발생합니다.
클럭 레이트를 필요한 수준으로 낮추거나 불필요한 톱니바퀴를 끄고(그 후 전력을 거의 사용하지 않음), 불필요하거나 고임피던스 상태(트라이스트 완료)를 입력으로 안전하게 배치할 수 있는 I/O 핀을 재설정함으로써 전력 소비를 줄일 수 있습니다.핀은 동적으로 재설정할 수 있지만 변경은 모든 톱니바퀴에 적용되므로 특정 설계에서는 동기화가 중요합니다.한 코어가 핀을 출력으로 사용하려고 하고 다른 코어가 핀을 입력으로 사용하려고 할 때 일부 보호 기능을 사용할 수 있습니다. 이는 Parallax의 기술 참조 매뉴얼에 설명되어 있습니다.
온보드 주변기기
각 톱니바퀴에는 전용 카운터 타이머 하드웨어와 컴포지트 PAL 또는 NTSC 디스플레이(브로드캐스트용 변조 포함), 비디오 그래픽스 어레이(VGA) 모니터 등 비디오 출력 스테이지 설계를 간소화하는 특별한 타이밍 신호 발생기가 있습니다.따라서 Parallax는 프로펠러, 수정 발진기 및 몇 개의 저항기로 구성된 최소 부품 수를 사용하여 비디오 신호(텍스트 및 다소 저해상도 그래픽스)를 생성할 수 있는 샘플 코드를 사용할 수 있습니다.비디오 타이밍 하드웨어의 보정 기능은 클럭 속도로 제한되므로 발진기의 주파수는 중요합니다.여러 개의 톱니바퀴를 병렬로 사용하여 단일 비디오 신호를 생성할 수 있습니다.보다 일반적으로 타이밍 하드웨어를 사용하여 다양한 Pulse-Width Modulation(PWM; 펄스 폭 변조) 타이밍 신호를 구현할 수 있습니다.
ROM 확장
Spin 인터프리터와 부트 로더에 더해, 내장 ROM 는, 특정의 사운드, 비디오, 또는 수학 애플리케이션에 도움이 되는 몇개의 데이터를 제공합니다.
- 일반적인 문자 생성 애플리케이션에 적합한 비트맵 글꼴이 제공됩니다(단, 커스터마이즈할 수 없음).
- 로그 표(베이스 2, 2048 항목);
- 안티로그 테이블(베이스 2, 2048 엔트리) 및
- 사인 테이블(16비트, 첫 번째 사분면을 나타내는 2049개의 엔트리, 0 ~ µ/2의 각도, 기타 3개의 사분면은 동일한 테이블에서 생성됩니다).
산술 확장자는 부동소수점 단위의 부족과 곱셈 및 나눗셈과 같은 보다 원시적인 결측 연산을 보완하기 위한 것입니다(이는 스핀에서 마스킹되지만 어셈블리 언어 루틴의 한계임).그러나 프로펠러는 32비트 프로세서이기 때문에 정밀도가 높은 사용을 위해서는 정확도가 부족할 수 있습니다.
스핀 바이트 코드 인터프리터 내장
Spin은 Parallax의 Chip Gracey에 의해 개발된 고급 컴퓨터 프로그래밍 언어입니다.그는 Profler 마이크로컨트롤러 [5]제품군을 위해 Profler 마이크로컨트롤러를 설계하기도 했습니다.
스핀 코드는 Windows [6]XP용으로 작성된 GUI 지향 소프트웨어 개발 플랫폼인 Profler Tool에 기재되어 있습니다.이 컴파일러는 스핀 코드를 바이트 코드로 변환하여 (같은 도구를 사용하여) 메인 32KB RAM에 로드할 수 있으며 옵션으로 프로펠러 칩의 I²C 부트 EEPROM(전기적으로 소거 가능한 프로그램 가능 읽기 전용 메모리)에 로드할 수 있습니다.프로펠러를 부팅한 후 바이트 코드 인터프리터가 내장 ROM에서 프라이머리 COG의 2KB RAM으로 복사됩니다.이 COG는 메인 32KB RAM의 바이트 코드 해석을 시작합니다.바이트 코드 인터프리터의 두 개 이상의 복사본을 다른 COG에서 실행할 수 있으므로 여러 스핀 코드 스레드를 동시에 실행할 수 있습니다.스핀 코드 프로그램 내에 어셈블리 코드 프로그램을 인라인으로 삽입할 수 있습니다.그런 다음 이러한 어셈블러 프로그램은 자체 COG에서 실행됩니다.
Python과 마찬가지로 Spin은 블록을 구분하기 위해 물결 괄호나 키워드 대신 들여쓰기 공백을 사용합니다.
프로펠러의 독자적인 멀티 스레드 스핀 컴퓨터 언어용 인터프리터는 바이트 코드 인터프리터입니다.이 인터프리터는 특정 목적별 통합 개발 환경(IDE) 내에서 편집, 컴파일 및 프로펠러에 로드된 사용자 코드에서 바이트당 1개의 명령 문자열을 해독합니다.이 IDE는 Parallax가 The Proplemer 툴이라고 명명하고 있으며 Microsoft Windows 운영체제에서 사용하기 위한 것입니다.
스핀 언어는 고급 프로그래밍 언어입니다.소프트웨어에서 해석되기 때문에 순수한 프로펠러 어셈블리보다 느리게 실행되지만 공간 효율이 향상될 수 있습니다. 프로펠러 어셈블리의 opcode는 32비트 길이, 스핀 디렉티브는 8비트 길이, 스핀 디렉티브는 8비트 바이트가 이어져서 디렉티브가 어떻게 동작하는지 지정할 수 있습니다.또한 스핀을 사용하면 어셈블리 코드에 대해 고려해야 하는 중요한 메모리 분할 문제를 방지할 수 있습니다.
기동시에 바이트 코드 인터프리터의 카피(2KB 미만)가 톱니바퀴의 전용 RAM에 카피되어 메인 32KB RAM의 바이트 코드 해석을 개시합니다.이 시점에서 추가 톱니바퀴를 시작하여 새로운 톱니바퀴 전용 RAM에 인터프리터의 개별 복사본을 로드할 수 있습니다(따라서 총 8개의 인터프리터 스레드를 동시에 실행할 수 있습니다.이는 모든 프로펠러 애플리케이션에 대해 최소의 시동 코드가 스핀 코드여야 함을 의미합니다.
구문
스핀의 구문은 다음과 같은 블록으로 나눌 수 있습니다.
- VAR – 글로벌 변수
- 단점 – 프로그램 상수
- PUB – 퍼블릭서브루틴 코드
- PRI: 프라이빗서브루틴 코드
- OBJ – 객체 코드
- DAT – 사전 정의된 데이터, 메모리 예약 및 어셈블리 코드
키워드 예시
- reboot: 마이크로컨트롤러가 reboot됩니다.
- waitcnt: 시스템 카운터가 지정된 값과 같거나 초과할 때까지 기다립니다.
- waitvid: (비디오) 데이터를 I/O 핀에 출력하기 전에 (비디오) 타이밍 이벤트를 기다립니다.
- coginit: 새로운 태스크로 프로세서를 기동합니다.
프로그램 예시
3,000,000 사이클마다 현재 시스템 카운터를 방출한 다음 40,000,000 사이클 후에 다른 톱니바퀴에 의해 정지되는 예제 프로그램(프로펠러 도구 편집기에 표시됨):
Parallax Professor는 Parallax의 이전 BASIC 스탬프 제품과 유사한 기능을 제공하는 소프트웨어 라이브러리를 점차 축적하고 있지만, 현재 스핀과 동등한 PBASIC 설비를 갖춘 통일된 목록은 없습니다.
"포트란과 베이직이라는 두 언어가 바에서 만난다면 9개월 후에 스핀을 찾을 수 있을 것"이라는 우스갯소리가 나왔다.이것은 FORTRAN의 공백 형식과 BASIC의 키워드 기반 동작을 나타냅니다.
패키지 및 I/O
칩의 초기 버전(P8X32A)은 40핀 0.6에 32비트포트를 1개 탑재하여 Dual In-Line Package(DIP; 듀얼인라인 패키지), 44핀 LQFP 또는 Quad Flat No-leads Package(QFN; 쿼드 플랫 리드 없음) 서페이스 마운트테크놀로지 패키지를 제공합니다.사용 가능한 핀 40개 중 32개는 I/O, 4개는 전원 및 접지 핀, 2개는 외부 크리스탈(사용되는 경우), 1개는 정전 및 정전 검출을 가능하게 하는 핀, 1개는 리셋용으로 사용됩니다.
8개의 코어 모두 32비트 포트('A'로 지정되어 있으며, 현재는 'B'가 없습니다)에 동시에 액세스 할 수 있습니다.한 코어가 I/O 핀을 출력으로 사용하고 다른 코어가 I/O 핀을 입력으로 사용하려고 할 경우 I/O 경합을 피하기 위해 특수 제어 메커니즘이 사용됩니다.이러한 핀은 위에서 설명한 타이밍 또는 펄스 폭 변조 출력 기법에 사용할 수 있습니다.
Parallax는 프로펠러의 최신 버전이 더 많은 I/O 핀 및/[7]또는 더 많은 메모리를 제공할 것으로 기대한다고 밝혔습니다.
가상 I/O 디바이스
프로펠러의 설계자는 "가상 I/O 장치"라는 개념을 중심으로 설계했습니다.예를 들어 HYDRA Game Development Kit(취미자를 위해 설계된 컴퓨터 시스템)는 내장된 캐릭터 생성기와 비디오 지원 로직을 사용하여 VGA 컬러 사진, PAL/NTSC 호환 컬러 사진 또는 브로드캐스트 RF 비디오+오디오 i를 출력하는 가상 그래픽 처리 장치 생성기를 생성합니다.n [8]소프트웨어
여기에 표시되는 화면 캡처는 픽셀 데이터를 시리얼 링크를 통해 [9]PC로 전송하는 소프트웨어 가상 디스플레이 드라이버를 사용하여 작성되었습니다.
소프트웨어 라이브러리는 심플한 UART 및 시리얼 I/O 인터페이스(SPI, I²C 및 PS/2 호환 시리얼 마우스 및 키보드 인터페이스, 로보틱 시스템용 모터 드라이버, MIDI 인터페이스 및 LCD 컨트롤러 [10]등)에서 다양한 I/O 디바이스를 구현할 수 있습니다.
인터럽트가 아닌 전용 코어
프로펠러의 설계 철학은 하드 실시간 멀티코어 아키텍처가 전용 인터럽트 하드웨어와 어셈블리 지원의 필요성을 배제한다는 것입니다.기존 CPU 아키텍처에서 외부 인터럽트 라인은 온칩 인터럽트 컨트롤러에 공급되며 하나 이상의 인터럽트 서비스 루틴에 의해 처리됩니다.인터럽트가 발생하면 인터럽트 컨트롤러는 정상적인 CPU 처리를 중단하고 내부 상태(일반적으로 스택)를 저장한 후 지정된 인터럽트 서비스 루틴으로 이동합니다.인터럽트 처리 후 서비스 루틴은 내부 상태를 복원하고 CPU 처리를 재개하는 인터럽트로부터의 복귀 명령을 실행한다.
프로펠러에서 외부 신호를 신속하게 처리하기 위해 32개의 I/O 라인 중 하나가 입력으로 구성됩니다.다음으로 톱니바퀴는 각 톱니바퀴에서 사용 가능한2개의 카운터 회선 중 하나를 사용하여 그 입력의 천이(양 또는 음의 에지)를 대기하도록 설정됩니다.신호를 기다리는 동안 톱니바퀴는 저전력 모드로 동작하며 기본적으로 sleep 모드로 동작합니다.이 기술을 확장하면 8개의 독립된 인터럽트 라인에 기본적으로 핸들링 지연 없이 응답하도록 프로펠러를 설정할 수 있습니다.또는 인터럽트에 신호를 보내는 데 1개의 행을 사용하고, 그 후 추가 입력 행을 읽어 이벤트의 성질을 판별할 수 있습니다.다른 코어로 실행되고 있는 코드는 인터럽트 처리 톱니바퀴의 영향을 받지 않습니다.기존의 멀티태스킹싱글프로세서 인터럽트 아키텍처와는 달리 신호 응답 타이밍은 예측 [11]가능한 상태로 유지되며, 이 컨텍스트에서 인터럽트라는 용어를 사용하면 이 함수는 루프 시간이 0인 폴링으로 보다 적절하게 생각할 수 있기 때문에 혼동을 일으킬 수 있습니다.
부트 메커니즘
전원 투입, Brownout 검출, 소프트웨어 리셋 또는 외부 하드웨어 리셋 시 프로펠러는 기계 코드 부팅 루틴을 내부 ROM에서 첫 번째 (프라이머리) 톱니바퀴의 RAM으로 로드하여 실행합니다.이 코드는 소프트웨어의 I²C 인터페이스를 에뮬레이트하여 필요한 시리얼 클럭 및 데이터 신호에 대해 일시적으로 2개의 I/O 핀을 사용하여 외부2 IC EEPROM에서 사용자 코드를 로드합니다.
동시에 RAM(및 옵션으로 외부 EEPROM)에 소프트웨어를 직접 업로드하기 위해 사용할 수 있는 다른 2개의 I/O 핀을 사용하여 시리얼 포트를 에뮬레이트합니다.프로펠러에서 시리얼 포트에서 명령이 검출되지 않으면 사용자 프로그램(상기와 같이 스핀으로 입력 코드를 입력해야 함)을 시리얼 EEPROM에서 메인 EEPROM으로 로드합니다.32KB RAM. 그 후 Spin Interpreter를 내장 ROM에서 첫 번째 톱니바퀴의 전용 RAM으로 로드하여 대부분의 부트로더를 덮어씁니다.
사용자 프로그램의 로드 방법에 관계없이 실행은 기본 톱니바퀴에서 실행 중인 스핀 인터프리터로 초기 사용자 바이트 코드를 해석하는 것으로 시작합니다.이 초기 스핀 코드가 실행된 후 응용 프로그램은 사용되지 않는 톱니바퀴를 켜고 새 스레드를 시작하거나 어셈블리 언어 루틴을 시작할 수 있습니다.
외부 고정 메모리
프로펠러는 외부 시리얼 EEPROM에서 기동합니다.부팅 시퀀스가 완료되면 외부 주변기기로서 [12]이 디바이스에 액세스 할 수 있습니다.
기타 언어 구현
스핀과 프로펠러의 저레벨 조립기 외에도 많은 다른 언어들이 포팅되어 있습니다.
C 컴파일러
Parallax는 프로펠러용[13] 프로그래밍 언어 C 및 C++용 GNU 컴파일러 컬렉션(GCC) 포트인 Profler-GCC를 지원합니다(브랜치 릴리스_1_0).C 컴파일러와 C 라이브러리는 ANSI C에 준거하고 있습니다.C++ 컴파일러는 ANSI-C99에 준거하고 있습니다.풀 C++는 외장 메모리에서 지원됩니다.심플한IDE[14] 프로그램은 사용자에게 makefile 없이 프로그램을 쉽게 작성할 수 있는 방법을 제공합니다.2013년에 Parallax는 Profler-GCC 및 Simple Libraries를 Profler-C Learn 시리즈 [15]튜토리얼에 통합했습니다.프로펠러-GCC가 능동적으로 유지되고 있다.프로펠러-GCC 및 심플IDE는 공식적으로 지원되는 Parallax 소프트웨어 제품입니다.
ImageCraft ICCV7 for Professor C 컴파일러는 종료 [16]상태로 표시되어 있습니다.
Catalina라는 이름의 무료 ANSI C 컴파일러를 사용할 [17]수 있습니다.LCC를 기반으로 합니다.카탈리나는 활발하게 유지되고 있다.
베이직 컴파일러
PropBASIC은 시차 프로펠러 마이크로컨트롤러용 [18]기본 프로그래밍 언어입니다.PropBASIC에는 시차 프로펠러를 사용하여 개발하기 위한 크로스 플랫폼 도구 세트인 Brad's Spin Tool(BST)이 필요합니다.2015년 8월 현재 BST는 i386-linux-gtk2, PowerPC-darwin(Mac OS X 10.4~10.6), i386-darwin(Mac OS X 10.4~10.6) 및 i386-Win32(Windows 95~Windows 7)에서 실행됩니다.
프로펠러의 4번째
프로펠러에 사용할 수 있는 상용 및 오픈 소스 소프트웨어 모두 최소 6가지 버전의 Fources가 있습니다.
프로포스
광범위한 개발과 커뮤니티 지원을 받는 무료 버전은 PropForth입니다.[19]이는 프로펠러 아키텍처에 맞게 조정되며, 포스의 개념과 일관되게 아키텍처의 고유성에 관한 일반적인 표준에서 반드시 벗어납니다.
Fourth 인터프리터 외에도 Proporth는 칩의 기능을 이용하는 많은 기능을 제공합니다.Linked I/O는 스트림을 프로세스와 관련짓는 방법을 의미하며, 이를 통해 한 프로세스가 애플리케이션에 투명하게 다음 프로세스로 바로 연결될 수 있습니다.이를 통해 대부분의 경우 하드웨어 디버깅 또는 공동 테스트액션 그룹(JTAG) 인터페이스의 필요성을 줄이거나 없앨 수 있습니다.MCS(Multi-Channel Synchronous Serial)는 프로펠러 간의 동기 시리얼 통신을 말합니다.96비트 패킷은 2개의 톱니바퀴 사이에서 연속적으로 송신됩니다.그 결과 어플리케이션은 적절하게 구성된 어플리케이션의 throughput에 거의 영향을 주지 않고 추가된 각 프로펠러 칩에 대해 추가 자원(+6 톱니바퀴)을 인식합니다.
Logic Analyzer는 소프트웨어 로직아나라이저를 구현하는 확장 패키지를 말합니다.EEPROM 파일 시스템과 SD 파일 시스템은 EEPROM과 SD 플래시를 사용하여 기본적인 스토리지를 구현하는 확장 기능입니다.
Paged Assemblyler는 어셈블러 루틴을 즉시 스왑인(덮어쓰기)할 수 있는 최적화 패키지를 말합니다.이것에 의해, 애플리케이션 사이즈는 거의 무제한이 됩니다.스크립트 실행을 통해 확장을 즉시 로드할 수 있으므로 프로그램 소스가 스토리지 미디어 크기까지 가능합니다.
프로펠러 및 자바
Java Virtual Machine(JVM; Java 가상 머신)을 Profor로 실행하기 위한 노력이 진행 중입니다.컴파일러, 디버거 및 에뮬레이터를 [20]개발 중입니다.
Pascal 컴파일러 및 런타임
파스칼의 큰 서브셋은 p코드 머신 P4 [21]시스템에 기초한 컴파일러 및 인터프리터에 의해 구현된다.
그래픽 프로그래밍
PICo Programmable Logic Controller(PLC, PICoPLC)는 프로펠러 프로세서에 대한 출력을 지원합니다.프로그램은 GUI 래더 로직 에디터에서 생성되며 결과 코드는 스핀 소스로 출력됩니다.PICoPLC는 Create-Simulate-Run 기능을 갖춘 P8X32도 지원합니다.발진기 주파수와 IO 핀은 래더 편집기에서 자유롭게 구성할 수 있으므로 대상 하드웨어에 대한 제한은 없습니다.PICoPLC 개발자 웹사이트([1]).
향후 버전
2014년 현재[update] Parallax는 톱니바퀴를 가진 새로운[22] 프로펠러를 제작하고 있으며, 각각의 톱니바퀴는 약 200MIPS로 작동하지만, 현재의 프로펠러는 각각 약 20MIPS로 작동합니다.퍼포먼스가 향상되는 것은 최대 클럭 속도가 200MHz(80MHz에서)로 향상되고 명령을 파이프라인하는 아키텍처가 클럭 사이클당 평균 1개의 명령(약 10배 증가)[7]을 실행했기 때문입니다.
레퍼런스
- ^ makezine.com Wayback Machine에서 2008-06-25 아카이브 완료
- ^ makezine.com
- ^ Gracey, Ken (2014). "Propeller 1 Open Source". Parallax Inc. Parallax Inc. Retrieved 23 January 2021.
The Propeller 1 (P8X32A) is now a 100% open multicore microcontroller, including all of the hardware and tools ... The Propeller 1 may be the most open chip in its class.
- ^ "electronicdesign.com". Archived from the original on 2007-10-14. Retrieved 2008-10-10.
- ^ 데이비드 A.스캔런, 마틴 AHebel. "8코어 프로펠러 칩 프로그래밍" 대학 컴퓨터 과학 저널, 제23권, 2007년 10월 1호.
- ^ 프로펠러wikispaces.com
- ^ a b Wayback Machine에서 2010-09-24로 아카이브된 Parallax 포럼
- ^ selmaware.com Wayback Machine에서 2008-12-21 아카이브 완료, 프로펠러가 달린 전용 비디오 제너레이터 보드
- ^ 화면 캡처 소프트웨어
- ^ parallax.com; 프로펠러 객체 교환 소프트웨어 라이브러리
- ^ 프로펠러 wikispaces.com Wayback Machine에서 2010-09-21 아카이브 완료
- ^ circuitcellar.com Wayback Machine에서 2008-07-06 아카이브 완료
- ^ PropGCC on Google 코드
- ^ 심플화
- ^ 프로펠러 C 학습 시스템
- ^ parallax.com
- ^ Catalina - 웨이백 머신에 아카이브된 2010-09-24 프로펠러용 C 컴파일러
- ^ "Download PropBASIC here... 00.01.14 LAST VERSION FOR BST — Parallax Forums".
- ^ google.com; 프로포스
- ^ Java 프로그래밍 프로펠러
- ^ "Propeller » Programming in Pascal". Archived from the original on 2008-10-04.
- ^ parallax.com