1P by GN⁺ | ★ favorite | 댓글 1개
  • PSVita는 전통 휴대용 게임기와 빠르게 성장한 모바일 SoC 흐름이 만난 기기이며, Sony는 익숙한 회로를 쓰면서도 스마트폰과는 다른 제품 정체성을 유지하려 함
  • 제품군은 원래 PSVita, OLED를 LCD로 바꾼 Slim, 거치형에 가까운 PlayStation TV로 나뉘며, 세 변형에는 대체로 같은 아키텍처 분석이 적용됨
  • 중심 칩 Kermit은 Toshiba의 Stacked Chip SoC 방식으로 CPU, GPU, 약 640MB RAM, 가속기, PSP 호환 회로를 한 패키지에 쌓아 대역폭과 면적을 개선했지만 방열 설계는 더 어려워짐
  • 메인 CPU는 최대 500MHz의 쿼드코어 ARM Cortex-A9 MPCore로, ARMv7-A, 2MB 공유 L2 캐시, Thumb-2 중심 컴파일, NEON/VFPv3, TrustZone, 비순차 실행을 포함함
  • 멀티미디어 작업은 Toshiba의 Venezia 가속기가 맡고, PSP/PS1 하위 호환은 Kermit 안의 MIPS32 4k와 예약된 CDRAM·Scratchpad·RPC 구조로 처리됨

PSVita가 놓인 시장과 분석 범위

  • PSVita는 비디오게임 업계와 빠르게 변화한 모바일 부문이 교차하는 제품임
  • Sony는 전화 통화를 넘어 다양한 기능을 제공하는 저렴한 기기들과 경쟁해야 했음
  • Sony의 새 휴대용 콘솔에는 당시의 현대적 기술이 들어갔고, 회로 구성은 익숙해 보이지만 스마트폰 시장과 닮지 않으려는 설계도 함께 보임
  • 8세대 콘솔 분석은 복잡도가 커져 전체를 한 번에 공개하지 않고 섹션별 공개 방식으로 진행됨

세 가지 PSVita 모델

  • Sony는 PSVita 수명주기 동안 제품 전략을 여러 번 바꾸며 세 가지 변형을 출시함
    • Original PSVita는 시리즈의 첫 모델이며, 때로 ‘Fat’ 모델로 불림
    • Slim은 같은 아키텍처를 유지하면서 OLED 화면을 LCD로 바꿔 비용을 낮췄고, 3G 지원 변형은 제공하지 않음
    • Slim은 eMMC 칩이 더 커졌지만 증가량은 52MB에 그쳤고, 그럼에도 내부 1GB 메모리 카드 제공이 가능해짐
    • PlayStation TV는 비휴대용 환경에 맞게 Fat 메인보드를 조정한 형태이며, 다른 I/O 구성을 노출함
  • 세 모델에는 대체로 같은 아키텍처 설명이 적용되며, Slim과 PlayStation TV의 eMMC 변화는 별도 설명 대상임

Kermit: PSVita의 중심 SoC

  • Sony는 원래 PlayStation 이후 MIPS 기술을 적극 채택했지만, 모바일 시장에서 ARM이 강해지고 MIPS 채택이 줄어들면서 PSVita에는 ARM CPU를 선택함
  • Toshiba는 Sony의 가까운 제조 파트너로서 ARM 라이선스 사용자의 역할을 맡음
  • 메인 칩 Kermit은 ‘The Muppets’에서 이름을 빌렸고, PSVita 메인 CPU가 들어 있는 가장 큰 회로 블록임
  • Kermit은 System-on-Chip이지만, Toshiba의 Stacked Chip SoC(SCS) 제조 모델 덕분에 많은 메모리와 프로세서를 같은 패키지 안에 결합함
    • SCS는 회로를 옆으로 외부 연결하는 대신 위아래로 쌓는 방식임
    • 직접적인 효과는 대역폭 증가와 면적 감소임
    • 대신 방열 설계가 더 복잡해짐
  • Kermit의 주요 구성은 다음과 같음
    • 쿼드코어 ARM Cortex-A9 MPCore 메인 CPU
    • Imagination Technologies의 PowerVR SGX543MP4+ 메인 GPU
    • 대형 DSP, DMA 컨트롤러, 보안 블록 같은 여러 가속기
    • 여러 종류로 나뉜 약 640MB RAM
    • PlayStation Portable 호환용 MIPS CPU와 Graphics Engine 회로

ARM Cortex-A9 MPCore

  • PSVita의 메인 CPU는 ARM Cortex-A9 MPCore이며, 네 개의 Cortex-A9 코어로 구성된 클러스터임
  • 동작 속도는 최대 500MHz로, 같은 시기 쿼드코어 A9를 쓴 Samsung Galaxy S III의 1.4GHz보다 낮음
  • Cortex-A9은 Cortex-A8의 후속 CPU이며, PSVita는 Nintendo 3DS와 몇 달 차이로 등장함
  • 공통 기반 기능은 다음과 같음
    • ARMv7-A 명령어 세트
    • 64KB L1 캐시
      • 32KB 데이터 캐시와 32KB 명령어 캐시로 나뉨
      • 코어 간 데이터 캐시 일관성은 Snoop Control Unit이 처리함
    • 2-issue superscalar 구조
      • 위험 요소가 없으면 두 파이프라인으로 두 명령어를 실행해 클럭당 실행 명령어 수를 늘림
    • 동적 분기 예측
      • 명령어 가져오기 단계에서 전용 버퍼 두 개를 사용해 분기 여부와 분기 채택 여부를 예측함
      • 이 유닛은 분기 명령만 예측하며, 조건부 실행이나 IT 명령 같은 최적화는 포함하지 않음
    • TLB를 갖춘 MMU
    • TrustZone
      • 하드웨어 수준에서는 구성 요소를 secure와 non-secure 그룹으로 나눔
      • 소프트웨어 수준에서는 기밀 데이터를 처리하는 격리된 보조 운영체제인 Trusted Execution Environment를 실행함
      • 데이터 전송에는 secure 또는 insecure 트랜잭션 여부를 나타내는 태그가 붙음
    • NEON Media Processing Engine
      • 벡터 및 부동소수점 연산을 수행하는 보조 프로세서임
  • Cortex-A9에서 강화된 부분은 다음과 같음
    • 멀티코어 지원
      • Sony의 쿼드코어 패키지 선택에서 가장 분명히 드러남
      • iPad 2와 iPhone 4s가 듀얼코어 CPU로 등장할 수 있었던 배경이기도 함
    • 레지스터 리네이밍을 통한 비순차 실행
      • ARM의 명령어 수준 병렬성을 확장한 큰 변화임
    • 작업에 따라 8~11단계로 달라지는 가변 길이 파이프라인
      • 멀티미디어 보조 프로세서로 실행이 이어지면 단계 수가 더 늘어날 수 있음
  • Sony는 ARM의 Primelink Level 2 Cache Controller와 2MB 공유 L2 캐시를 추가함
    • Primelink는 직접 매핑부터 16-way까지 다양한 캐시 연관 방식을 설정할 수 있는 캐시 서브시스템임
    • ARM은 나중에 Primelink 브랜드를 CoreLink로 변경함

ARMv7, Thumb-2, NEON/VFPv3

  • Cortex-A9의 ARMv7은 ARMv6 ISA의 상위 집합이며, 주요 추가 영역은 VFPv3, NEON, Security Extension, 멀티프로세싱임
  • Thumb ISA는 Thumb-2로 크게 개정됨
    • Thumb-2는 32비트 명령을 추가해 기존 16비트 Thumb의 빈틈을 채움
    • ARM ISA와 비교하면 코드 밀도가 높고, 조건부 실행이 빠졌지만 전용 IT 명령으로 일부 기능을 보완함
  • Kermit의 Cortex-A9은 ThumbEE와 Jazelle도 구현하지만, 애플리케이션이 이를 활용한다고 보기는 어려움
    • Android의 Java 인터프리터인 Dalvik도 Jazelle/Thumb-2EE를 사용하지 않았음
  • ARM은 ISA 혼란을 줄이기 위해 Unified Assembler Language(UAL) 를 만들었음
    • UAL은 ARM과 Thumb-2 양쪽을 대상으로 할 수 있는 단일 코드베이스를 목표로 함
    • 실제로는 ARM과 Thumb-2 opcode의 합집합이며, 어셈블러가 대상 CPU에 따라 opcode를 건너뜀
  • C, Objective-C, C++ 같은 언어에서는 컴파일러가 주로 Thumb-2를 기본 어셈블리 출력으로 사용함
    • 이유는 효율적인 코드 밀도와 드문 성능 페널티임
    • 스마트폰 앱과 PSVita 애플리케이션은 주로 ARM이 아니라 Thumb-2로 컴파일됨

미디어 연산을 위한 MPE, VFPv3, NEON

  • Cortex-A9에서 PSVita에 특히 중요한 구성 요소는 Media Processing Engine(MPE)
  • MPE는 서로 관련된 두 명령어 세트를 실행함
    • Vector Floating-Point v3(VFPv3)
      • 부동소수점 기능을 위한 VFPv2의 후속임
      • IEEE-754를 준수함
      • VCVT, VMOV 같은 명령을 제공함
      • Cortex-A9의 정확한 변형은 VFPv3-D32이며, 64비트 레지스터 32개를 포함함
      • ARMv7은 벡터 명령 사용을 폐기했고 Cortex-A9에는 해당 벡터 명령이 없음
    • NEONv1
      • ‘ARMv7 Advanced SIMD’로도 불리는 실제 벡터 명령어 세트임
      • 128비트 레지스터 16개를 제공하며, 이를 64비트 또는 32비트 가상 레지스터 32개로 나눌 수 있음
      • 정수는 최대 64비트까지 다룰 수 있고, 부동소수점 타입은 32비트를 넘을 수 없음
  • NEON과 VFPv3은 같은 레지스터 파일을 공유하지만 별도 ISA로 취급됨
  • 두 ISA가 분리된 이유는 둘 중 어느 쪽도 기능적으로 완전하지 않기 때문임
    • VFPv3은 고정소수점을 지원하지 않음
    • NEON은 IEEE 754 표준을 준수하지 않음
  • NEON은 Intel XScale의 독점 SIMD 확장인 Wireless MMX에 대응하기 위해 빠르게 나온 것으로 해석됨
    • Dell Axim X51v 같은 고급 PDA는 ARMv5 ISA와 호환되는 Intel XScale PXA270 CPU를 썼고, Intel CPU 라인에서만 가능한 독점 SIMD 확장을 포함했음
    • 이 장치는 PSVita 그래픽 칩과 관련 있는 PowerVR MBX GPU도 탑재함

버스 구조

  • ARM의 AMBA 명세는 Cortex-A9에서도 구성 요소 연결에 사용됨
  • AMBA 3번째 개정의 AXI 프로토콜이 MPCore 클러스터 내부 코어 인터페이스에 선택됨
  • 같은 AXI 선택은 ARM11과 Nintendo 3DS에서도 볼 수 있음
  • PSVita는 MPCore 밖의 모든 통신에 Open Core Protocol(OCP) 도 사용함
    • Nintendo 3DS가 PICA GPU와 통신할 때 사용한 프로토콜과 같은 계열임

Cortex-A 이후 ARM의 흐름

  • Cortex-A9 이후 Cortex-A 계열은 상위 성능부터 에너지 효율 중심까지 네 가지 추가 범주로 나뉘며 계승 구조가 더 복잡해짐
  • 각 CPU의 모델 번호는 따라가기 어려워졌지만, 이 CPU들이 일반 최종 사용자에게 별도 판매되는 제품은 아니었기 때문에 큰 문제가 되지 않았음
  • ARM의 다음 큰 이정표는 2011년에 등장한 ARMv8이며, Nintendo Switch 분석에서 더 다룰 예정임

Venezia: Sony의 멀티미디어 가속기

  • Sony는 ARM 클러스터 옆에 게임 관련 작업을 지원하는 대형 가속기를 넣음
  • 이 가속기는 이전 PSP의 Media Engine 그룹처럼 완전한 독점 블랙박스이며, 프로그래머가 직접 다루는 대신 공식 SDK를 통해 접근함
  • 가속기의 이름은 Venezia
    • Sony의 가까운 파트너인 Toshiba가 설계한 별도 CPU 패키지임
    • 이미지와 사운드 처리를 위해 만들어짐
    • 기능은 Digital Signal Processor(DSP)에 가까움
    • DVD 플레이어 같은 멀티미디어 기기용 합성 가능 칩으로도 판매됨
  • Venezia는 PSP의 Media Engine을 계승하는 성격을 가짐

Venezia의 내부 구조

  • Venezia는 MPCore처럼 클러스터 구조이며, 8개의 Media Processing Engine(MPE) 코어로 구성됨
  • 동작 속도는 266.7MHz
  • Toshiba의 MPE라는 이름은 ARM의 벡터 가속기 명칭과 겹치지만, 서로 다른 실리콘임
  • 각 MPE는 다음 요소를 포함함
    • 독점 Media-embedded Processor(MeP) CPU
      • 다섯 번째 개정인 MeP-c5
      • 32비트 RISC 기반 아키텍처
    • 32KB L1 캐시
      • 명령어 16KB, 데이터 16KB로 분리됨
    • 64KB 범용 메모리
      • MeP CPU가 주 프로그램을 실행하는 공간임
    • 내부·외부 메모리 전송용 DMA 컨트롤러
    • IVC2 이미지 처리 보조 프로세서
      • 64비트 SIMD 명령을 실행함
      • 8비트 정수 8개부터 32비트 정수 2개까지 다양한 데이터 묶음을 처리할 수 있음
      • 256비트 누산기 레지스터 2개를 제공하며, 다른 기능과 결합해 두 연산을 동시에 계산할 수 있음
  • 클러스터에는 256KB L2 캐시도 있음
  • 핵심 특징은 Very Long Instruction Word(VLIW) 기반 명령어 세트임
    • 한 줄에 여러 명령을 동시에 인코딩할 수 있음
    • Venezia는 이미지 보조 프로세서용 2개와 CPU용 1개, 총 3개 명령을 한 줄에 넣을 수 있음
    • 효율적으로 명령을 패킹하려면 뛰어난 컴파일러가 필요함
  • VLIW는 1990년대에 Broadcom Firepath, Transmeta Crusoe, Intel Itanium 같은 구현으로 주목받았지만, 주류 CPU에서는 벤치마크 결과가 실망스러워 널리 자리 잡지 못함
  • Venezia는 Codec Engine이라는 추상 API로만 접근 가능함
    • 이미지·오디오 인코딩과 디코딩 작업을 구현함
    • 예를 들어 AVC 디코딩 명령은 Advanced Video Coding으로 인코딩된 비디오 데이터를 압축 해제해 GPU가 이해할 수 있는 비압축 스트림을 출력함

PSVita의 메모리 구성

  • Kermit의 스택 맨 위에는 512MB LPDDR2 SDRAM이 있으며, 메인 작업 공간으로 사용됨
  • SDRAM은 Synchronous Dynamic RAM을 뜻함
    • DRAM은 SRAM보다 생산 비용이 낮지만 지연 시간이 더 큼
    • 그래서 CPU 캐시는 SRAM으로 만들고, 외부 범용 메모리는 DRAM으로 만듦
    • SDRAM은 전송을 CPU 클럭과 동기화해 처리량을 개선함
  • LPDDR2는 Low Power Double Data Rate 2를 뜻함
    • DDR은 사이클당 두 배의 정보를 인코딩해 전송함
    • LP는 저전력 변형을 뜻하며, 휴대폰과 노트북이 주요 채택 대상임
    • LPDDR2 사양은 2009년에 공개됐고, DDR3의 1.35V보다 낮은 1.2V로 동작함
  • 별도로 128MB Custom DRAM(CDRAM) 이 있으며, 주로 GPU에 연결됨
    • CDRAM은 내부 명칭이며 전통적인 SDR SDRAM을 가리킴
    • DDR과 달리 Single Data Rate 메모리임
    • GPU 가까이에 있는 전용 공간이라 고강도 그래픽 작업에 적합함
    • 이 블록은 두 개의 512비트 버스로 연결된 것으로 보임
  • SoC에는 약 2.18MB SRAM도 여러 블록으로 나뉘어 들어 있음
    • 2MB Camera SRAM
    • 32KB SPAD32K
    • 128KB SPAD128K
    • 4KB SceCompatSharedSram
    • 16KB Scratchpad
  • 이 SRAM 블록들은 운영체제용으로 예약되어 있음
  • 16KB Scratchpad는 PSP에도 있던 SRAM 용량과 일치함

MIPS32 4k와 하위 호환

  • Kermit 안에는 오래된 MIPS32 4k CPU가 추가로 들어 있음
    • PlayStation Portable에 탑재됐던 것과 같은 CPU임
  • 이 CPU의 목적은 PlayStation PortablePlayStation 1 게임과의 하위 호환임
  • MIPS CPU는 공식적으로 이 용도에만 쓰이며, 보조 프로세서 기능은 없음
  • Kermit에는 PSP의 Media Engine이 들어 있지 않음
    • Media Engine은 블랙박스였기 때문에 소프트웨어는 내부 구현을 신경 쓰지 않음
    • 해당 공동 CPU의 기능은 Venezia가 대신 복제함
  • 나머지 I/O와 관련해 MIPS는 하드웨어 나머지 부분에 물리적으로 연결되어 있지 않고, Cortex-A9만 연결되어 있음
  • MIPS CPU에서 실행되는 PSP 에뮬레이션 소프트웨어는 ARM CPU에 RPC(Remote Procedure Call) 모델로 서비스를 요청함
  • 이 하위 호환 서비스에는 64MB CDRAM도 예약됨
  • 앞서 언급된 16KB Scratchpad는 실제로 MIPS CPU 안에 있으며, PSP 에뮬레이터에 할당됨
    • 원래 PSP 게임이 기대하는 메모리 구성을 맞추기 위한 요소임

다음 범위

  • 다음 파트는 VideoLogic이 모바일 시장의 주요 GPU로 발전해 PowerVR MBX GPU에 이르는 과정을 다룰 예정임

댓글과 토론

Hacker News 의견들
  • 원래 PSP와 거기서 나온 홈브루·탈옥 장면을 정말 좋아함. 최근 PS Vita를 구해서 네이티브 게임과 홈브루를 즐기고 있는데, 아직도 홈브루 생태계가 꽤 활발해서 놀라움
    Android 게임 포팅 가능성도 어느 정도 있는 듯함. Sony가 PS Vita를 망하게 두지 않았으면 좋았을 텐데, 당시엔 잠재력이 정말 컸던 기기처럼 느껴짐

    • 예전에 Vita를 예약 구매했고, 받자마자 바로 반했음. 주머니에 들어가고 PSP의 형편없는 아날로그 스틱보다 훨씬 나았음
      지금도 Steam Deck은 주머니에 안 들어가서 Vita를 계속 씀. 잠재력이 낭비됐다는 데 동의함. Shadow of the Colossus나 Demon's Souls가 Vita에 있었다면 어땠을지 상상하게 됨
    • 비용, Nintendo와의 경쟁, 까다롭고 비싼 독자 메모리 카드 등 여러 문제가 있었지만, 그냥 죽게 둔 건 당시 널리 퍼져 있던 “휴대용 게임기, 어쩌면 전용 콘솔 전체가 스마트폰에 밀려 사라질 것”이라는 믿음의 결과였다고 봄
      그래서 부진이 자신들의 피할 수 있었던 실수 때문이 아니라 시장 변화의 필연적 결과라고 믿어버린 듯함
    • PSP 탈옥 장면이 그립다. 고등학생 때 사람들 PSP 배터리의 PCB 패턴을 잘라주면서 꽤 용돈을 벌었음
      생각해보면 그 일이 전자공학에 관심을 갖게 된 계기였던 것 같음
    • 하드웨어만 보면 훌륭한 콘솔이었고, 몇 년 전에 OLED 버전을 샀음. 늘 문제였던 건 게임 부족이었음
      괜찮은 타이틀은 몇 개 있었지만 크게 놀라게 한 건 없었고, 아마 Risk of Rain을 가장 오래 했던 듯함
    • Vita 홈브루 장면은 따라가 보지 않았지만, 싱글 보드 컴퓨터 에뮬레이션 쪽을 보며 읽은 바로는 Vita 홈브루가 속도를 내기까지 시간이 좀 걸렸다고 함
      지금은 현재 생산되는 여러 소형 SBC와 견줄 만한 휴대용 에뮬레이션 기기로 충분히 인정받는 수준임
      https://docs.libretro.com/guides/install-psv/
  • 몇 년 전 이 글에서 언급된 Toshiba의 Media Embedded Processor(MeP) 작업을 함께 했음. Red Hat 쪽에서 당시로서는 신기했던 프로세서의 설정 가능 구조를 지원하기 위해 툴체인 작업을 했음
    MeP가 세상을 장악하진 못했지만, PS Vita에 들어갔다는 걸 알게 되어 반가웠음

  • 이 글은 오래 이어져 온 글 모음 중 하나일 뿐임
    https://www.copetti.org/writings/consoles/

  • Sony가 휴대폰 라인까지 갖고 있었던 독특한 위치였는데도 휴대용 게임기 시장을 버린 게 아직도 이해가 안 됨
    Xperia Play는 너무 일렀지만, 지금처럼 사람들이 휴대폰이나 Steam Deck에 큰돈 쓰는 데 익숙해진 상황이라면 Sony가 Android 기기에 Sony 게임 스토어를 묶어서 Vita와 Xperia Play의 훌륭한 후속작을 만들 수 있었을 것 같음

    • Sony는 음반사와 영화 스튜디오, 휴대폰 사업을 갖고 있었고 PS3를 통해 2006년부터 클라우드 배포망도 있었는데, 음악·영상 스트리밍 흐름을 완전히 놓쳤음
      조직들이 서로 너무 사일로화되어 있었음. 제품을 꽤 좋아했던 입장에서, 지금 아는 걸 기준으로 보면 일이 그렇게 나쁘게 흘러간 게 웃길 수밖에 없음
    • Xperia Play를 정말 좋아했음. 휴대폰에서 조작 버튼으로 PSX 게임을 하는 건 정말 좋았고, 내가 가졌던 최고의 휴대폰이었음
      여러 면에서 시대를 앞섰지만, 당시의 게임 시장은 지금처럼 휴대용 기기에 잘 맞거나 준비된 상태는 아니었던 것 같음
  • 정말 멋지고 우연치고는 운명처럼 느껴짐
    지난주에 서랍에서 Vita를 꺼내서 PS3를 연결할 수 없어 못 하고 있던 몇몇 PS3 게임의 휴대용 포트를 플레이 중임. Ratchet & Clank, Sly Cooper, God of War 1·2, 몇몇 인디 게임들임
    스토어가 아직 작동하는 걸 보고 놀랐고, PS1 Armored Core 게임들을 샀음. 이 기기를 정말 좋아함. 시장에서도 Sony 지원에서도 부당한 취급을 받았음
    탈옥해서 홈브루도 만들어볼까 끌림

    • Vita 홈브루 장면은 매우 성숙했고 놀랄 만큼 활발함. “3DS 해킹은 의외로 쉽다”가 괜히 밈이 된 게 아니지만, Vita에는 그 말이 더 잘 맞음
  • PS Vita를 두 대 거쳤고, 조작 버튼 같은 것도 여러 번 교체했음
    PixelJunk Monsters 같은 캐주얼 게임부터 휴대용 기기에서 콘솔 수준의 1인칭 슈터였던 Killzone Mercenary까지, Vita의 캐주얼·“진지한” 게임 조합을 좋아했음. Akiba's Trip: Undead and Undressed, Danganronpa, Fate/Extella 같은 일본 콘텐츠도 엄청 많았음
    PS Network에서 끊기고, 좋아하던 일본 게임들이 Steam으로 나오기 시작해서 Vita 장비를 정리했지만, PixelJunk Shooter는 솔직히 그립다

    • 언제 끊겼다는 건지 모르겠음. 내가 알기로는 아직 작동하고, 우회하면 PSN 계정에 잔액이 있을 때 게임 구매도 가능함
      최근에도 예전 구매 항목을 다운로드했음. 완전히 내려가기 전에 전부 백업해둬야 하긴 함
  • Vita에 PSP 하드웨어가 들어 있는 줄 몰랐음. 하위 호환은 소프트웨어 기반이라고 생각했는데, Sony가 콘솔에 하위 호환 하드웨어를 넣어 출하한 역사가 길긴 했음
    다만 그때쯤에는 PS2 Slim과 이후 PS3용 소프트웨어 PS1 에뮬레이터도 이미 있었음

    • PS2의 PS1 하위 호환은 항상 소프트웨어와 하드웨어의 혼합이었고, PS2 Slim도 포함됨
      https://israpps.github.io/PPC-Monitor/docs/Architecture%20Ov...

      SCPH-75xxx 및 그 이후 PS2 모델에 있는 PPC-IOP ASIC은 PS1과 70K 또는 그 이전 PS2 모델에 들어 있던 MIPS R3000A 프로세서를 에뮬레이션하기 위해 하드웨어와 소프트웨어를 결합한 방식을 사용함. 이 에뮬레이션의 하드웨어 부분은 440MHz로 동작하는 PPC 440 코어에 붙은 Auxiliary Processing Unit, 즉 APU 형태임. 소프트웨어 부분은 “DECKARD” 에뮬레이션 소프트웨어임
      PS3는 PS1에 대해 항상 순수 소프트웨어 에뮬레이션을 사용했음.
      †정확히는 SCPH-7500x 및 이후 Slim 모델만 PPC-IOP와 Deckard를 탑재함. SCPH-7000x는 두꺼운 콘솔과 동일하게 동작해서, PS1 게임의 CPU 쪽은 베어메탈에서 네이티브로 실행됨

  • 이런 책은 “요청한 적도 없고 예상도 못 했지만, 일단 나왔으니 해 뜰 때부터 해 질 때까지 읽게 되는” 부류에 들어감
    저자는 프로세서와 임베디드 아키텍처에 대한 다른 책도 여러 권 썼고, 솔직히 정말 필요한 작업임
    임베디드 세계는 소프트웨어 세계보다 훨씬 더 분해, 해부, 설명, 추론 쪽으로 기울어 있음. 이유는 모르겠지만, 이쪽 사람들은 회로도까지 탐침하고 재구성하며 거의 모든 걸 파고듦. 최근 Nintendo 모딩 장면은 그 극단을 보여줌
    소프트웨어 역공학자들은 IDA 라이선스와 플러그인을 유행 끝물처럼 붙잡고 있음. Copetti 같은 사람이 더 많아져야 함

    • PS1 쪽에서는 Splat, m2c, decomp.me와 많은 커스텀 도구가 쓰임
    • IDA라기보다는 Ghidra와 여러 자유·오픈소스 도구에 가까움
  • 이 글 시리즈와 Vita 둘 다 정말 좋아함
    한동안 궁금했던 건 Vita가 하위 호환을 위해 PSP의 CPU와 GPU를 둘 다 포함하는지, 아니면 CPU만 있고 GPU는 Vita 쪽에 매핑되는지였음
    이 글은 전자라고 주장하지만, 다음 편에서 근거와 함께 더 알 수 있으면 좋겠음

  • Vita는 시대를 앞서갔음