패밀리컴퓨터의 세가지 演算裝置인 CPU·PPU·APU에 對해 다룹니다.
이것들은 다 무슨 소리인가
CPU는 專攻者나 熟練된 한글화 作業者가 아니라도 적어도 이름쯤은 들어봤을 것이라 봅니다. 하지만 PPU와 APU라는 말은 처음 들어보는 분이 많을 것입니다.
이 세가지 裝置가 뭘 하는 것들인지 알고 있으시다면 이 부분은 簡單히 훑고 지나가거나 스킵하셔도 괜찮습니다. 或是 여기에 적혀있지 않거나 잘못된 部分을 發見하신다면 寄與를 付託드립니다
패미컴에서는 이 세가지 處理裝置가 各各 獨立的으로 作動합니다.
CPU
中央處理裝置(Central Processing Unit), 컴퓨터(或은 게임機)가 하는 演算을 擔當하는 部品입니다.
PPU
畵像處理裝置(Picture Processing Unit), 컴퓨터의 GPU에 該當합니다.
現代의 컴퓨터에서 GPU가 하는 일은 3D 렌더링을 爲한 浮動小數點 演算을 竝列로 빠르게 處理하는 것이라면, 8비트 게임機에서는 大蓋 固定된 타일들로만 構成된 2D 타일맵을 畵面에 그려주거나, 스프라이트(움직이는 이미지)를 하드웨어端에서 빠르게 處理하는 일을 擔當합니다. 스프라이트가 一定 數 以上 가로로 늘어서게 되면 스프라이트가 次例로 깜빡이면서 느려지는 現象 亦是 PPU의 處理能力을 超過한 作業을 强制한 結果라고 할 수 있습니다.
APU
音聲處理裝置(Audio Processing Unit)이긴 한데, 해봤자 簡單한 波形 程度만 具現이 可能한 8비트 게임機에서는 地域化와 거리가 멀기 때문에 깊이 있게 다루지는 않아도 되겠다 봅니다. 하지만 寄與는 언제나 歡迎입니다
接近方法
가장 基本的이면서 重要한 것은 各其 따로 作動하는 이 세 裝置는 메모리(RAM)조차도 各自의 것을 갖고 있다는 點입니다. 그러니까 各自의 메모리에 있는 데이터만 取扱한다는 것입니다.
하지만 게임팩 안의 ROM에 들어있는 프로그램은 CPU의 메모리 領域에 割當되고, CPU 命令語로는 CPU 領域의 資料에만 接近할 수 있습니다. 畵像이나 音聲을 入力/出力하기 爲해서는 CPU에서 各 裝置의 메모리에 接近할 必要가 있는데요, CPU 메모리 領域의 一部에는 이를 爲한 特殊한 레지스터가 配當되어 있습니다.
이 레지스터들은 더 簡單히 말하면 '포트'와 비슷한 槪念으로 이미지할 수 있습니다. 例를 들어, 畵面에 그리고 싶은 타일 데이터를 VRAM(PPU 메모리)에 로드하려면, PPUADDR이라는 레지스터에 타일을 쓰고자 하는 住所를 1바이트씩 두番 쓴 後, PPUDATA라는 레지스터에 實際 타일 데이터를 1바이트씩 써야 합니다. CPU와 PPU가 메모리 住所 體系를 共有하는 게임보이와는 相異한 部分입니다.