The Dataplane Processor Company

Customizable Dataplane
Processors for System-on-Chip
テンシリカ株式会社
菅原 崇之
V10.3

Tensilica, Inc.

製品 – Customizable Processor IP
Dataplane Processor Units (DPUs) IP cores: 低消費電力、小面積、ハイパフォーマンスなCPU/DSPコ
アとソフトウェアデザインツールを合わせて提供• オーディオ、ビデオ、イメージング、ベースバンド向け、スタンダードDPUソリューション
• configurable processor technology について、40以上の特許•マーケット – Broad based success•

Consumer wireless, Home entertainment, Printing and digital imaging, Wireline network
access, Networking infrastructure, Graphics GPUs and PC components

ビジネスモデル – 半導体IPライセンス•••

130社以上にライセンス(半導体トップ10企業の5社を含む)
年間２億個以上の出荷
最も成長率の高いプロセッサ/DSP IP企業 (2007年は22%成長)

会社概要• 1997年設立、未上場• 本社: カリフォルニア、サンタクララ• 1999年日本法人設立(テンシリカ株式会社)2© 2008. Tensilica Inc.

Xtensa Processor Generator Evolution
Ver. 7Ver. 6
XTENSA LX Processor Series• FLIX (VLIW) Architecture• Designer-defined I/O Ports• 5 or 7-Stage Pipeline• Dual Load/Store

XtensaLX2

SOC DESIGN AUTOMATION• MP SW development tool chain• System Simulation, Analysis• Automated instruction extension
generation

XtensaAutomated
Xplorer
XTMP
SW ToolChain
Generation

XtensaLX

TurboXim
XTSC
Xenergy

XPRES
Compiler

Xtensa 7
Xtensa 6Xtensa
XtensaIV VXtensa
IIIXtensa IIXtensa
XTENSA Processor Series• Classic 5-Stage Pipeline processor• Hardware & Software Tool Co-Generation based on TIE

1999 thru 2005
32006

2007

time© 2008. Tensilica Inc.

RTL

Data
plane

Analogprocessing
Control & DSP

Video
Codec DSP

Dataplane
Audio pre/postAudio
processing Processing
codec
Units
Baseband DSP
PHYControl
planeMain
Applications
CPU

Protocolprocessing

Video pre/post-Embedded Controller
For
Dataplane Processing

Tensilica Focus: Dataplane

Baseband
MAC/control

Security

MemoryTensilica fit and success – Embedded Control and DSP4

© 2008. Tensilica Inc.

Complex SOCs: Risk & Reward

Complex SOCs
deliver many benefits• High performance• Low cost and low power

through integration

Complex SOC
design is risky

2M to 10M+ Gates
Application-SpecificLogic
Designed with RTL• Time to market – design

productivity gap• Verification of millions ofgates of custom logic

5© 2008. Tensilica Inc.

Fixed RTL Logic: The Risk Factor… increases risk, slows time to market– Verification of complex state machines– Costly silicon respins to make changes– Obsolescence as markets or standards change

RTL Logic…
INPUT

Application-Specific
Logic (RTL)

RTL

RTL

RTL

Memory mapped control & status registers

SharedSystemRAM

RTL
Accelerator

State Machine

10% of Gates,
90% of Risk

ComputationalElements(Datapath)

90% of Gates,
10% of Risk

RTL

Co-processor
Conventional
Rigid CPU Core
BridgeRAM

ROM
A

Illustration
6B

C

D

PERIPHERALS© 2008. Tensilica Inc.

Processor Solution for SOC Design
Optimized Processors as Building Blocks• Task-specific, optimized

processors
performance/power/cost;
similar to RTL performance• Hardware and Software

Design productivity

ApplicationSpecific
Logic (RTL)

XtensaEngine #1

Xtensa Control
CPUSystem
RAMLower Risk

• Verify Algorithm inSoftware within hours

RAMXtensa
Engine #2

RTL• Optimal

ROMBridge• Change in Software
Higher Productivity Design
ABCD

PERIPHERALSBus topology shown for illustration purposes only
Numerous topologies and configurations possible7© 2008. Tensilica Inc.

Tensilica’sProcessor Technology
8© 2008. Tensilica Inc.

Customizability

Configurability• 予め用意された機能を選択• チェックボックス、ドロップダウンメニューで設定

Extensibility• 実行ユニット、レジスタ、レジスタファイル、IOを追加し、命令の振る舞いを定義• TIE: Tensilica Instruction Extensionによる記述

CustomizabilityはConfigurabilityとExtensibilityの両方を含む概念
9© 2008. Tensilica Inc.

Xtensa LX2 Block Diagram:Complete ISA and I/O Flexibility
Instruction
Cache

Xtensa LX2IROM
IRAM1
IRAM0System Bus

Instruction Fetch and Decode

RTL orLookup
Table

TIE Lookup
Interface

Trace Port

MUL16/32, MAC16
FPU

Zero overhead loop
Vectra LX DSP
HiFi2 Audio

JTAG Tap
On-Chip Debug

Interrupt Control

Base ISA Feature
Configurable Function

MasterInterface

Inbound
PIF
Data
Mem LD/MMU ST1
ECC/ LD/
Parity ST2

Device A

PIF

Data
CacheSlave
Interface

Device B

DMA

XLMI

Timer0 - 15

External RTL & Peripherals
Memories & Caches

Designer Defined Extensions

ECC/Parity

SDRAM

NSA, MIN, MAX, etc

User-defined
Execution Units

Exception Support

10ALU

InstrMem
MMU

WriteBuffer....

Register FileConn Box

FIFOs
TIE Queues....

Execution Units, Register
Files and Interfaces

RTL, MEM,
CPU

Execution Units, Register
Files and Interfaces

RTL

.....

Base Execution
Pipeline

I-FetchBufferTIE
Ports

N-issue FLIX
parallel pipelines

SharedMemory
RTL orCOP

DRAM0
DRAM1DROM© 2008. Tensilica Inc.

Xtensa Architecture: 3 Layer

Core ISA• 32-bit RISC architecture

Configurable options• Execution Unit and ISA options• Interface options• Memory Subsystem options

Processor extension• Instruction• User Register, User Register File
• I/O11© 2008. Tensilica Inc.

Xtensa Core ISA

ハーバードアーキテクチャ
32ビットオペレーション
24ビット長命令• 16ビット長命令はオプション

レジスタウインドウ
条件分岐命令5段パイプライン• 7段パイプラインはオプション

12© 2008. Tensilica Inc.

Xtensa Configurable Options

レジスタファイル: 16/32/64エントリ
ゼロオーバーヘッドループ
MUL16/32, MAC16, DIV
DSP engine, FPU
PIF: Processor Interface, 32/64/128bit width
I-Cache, D-Cache, Local Memory
MMU
Exception, Interrupt
On-Chip Debug, Trace,…
13© 2008. Tensilica Inc.

Processor Extension: TIE

TIE言語による拡張記述• 命令の機能を記述• ユーザレジスタ• ユーザロードストア• ユーザIO(TIE port, TIE queue, TIE look-up)• ロードストアとは独立• パイプラインの追加 (3-issue VLIW)

機能レベルで記述• Verilogライクにビット幅を明示• パイプラインステージを考慮する必要はない• TIE compilerがRTLを自動生成
14© 2008. Tensilica Inc.

TIE
ユーザ独自の命令をTIE言語を使うことにより拡張可能
アプリケーションに特化した命令をもつことによる大幅な性能向上
作られた命令はユーザの独自ノウハウとなり、差別化が可能
親しみやすい記述仕様 Verilogのサブセット＜TIE 記述例＞

31

2

operation BYTESWAP {out AR outR, in AR inpR}{}{assign outR ={inpR[7:0],inpR[15:8],inpR[23:16],inpR[31:24]};}

inpRi3i2i1i0i0i1i2i3

The operation statement describes an entire new instruction,including:outR

1 Instruction name
2 Instruction format and arguments
153 Functional behavior [written in a Verilog subset]© 2008. Tensilica Inc.

TIE: Wider SIMD Operations
User Defined 64bit Vector Register Fileaa3a2

a1a0bb3b2b1b0z3z2z1z0z

4-way SIMD 16x16 Mul-Saturate

16regfile VR 64 16 vr
operation MUL_SAT_4x16 {out VR z, in VR a, in VR b} {}{wire [31:0] m3 = TIEmul(a[63:48],b[63:48],1);
wire [31:0] m2 = TIEmul(a[47:32],b[47:32],1);
wire [31:0] m1 = TIEmul(a[31:16],b[31:16],1);
wire [31:0] m0 = TIEmul(a[15:0], b[15:0], 1);
assign z ={m3[31] ? ((m3[31:23]==9'b1) ? m3[23:8] : 16'h8000): ((m3[31:23]==9'b0) ? m3[23:8] : 16'h7fff),
m2[31] ? ((m2[31:23]==9'b1) ? m2[23:8] : 16'h8000): ((m2[31:23]==9'b0) ? m2[23:8] : 16'h7fff),
m1[31] ? ((m1[31:23]==9'b1) ? m1[23:8] : 16'h8000): ((m1[31:23]==9'b0) ? m1[23:8] : 16'h7fff),
m0[31] ? ((m0[31:23]==9'b1) ? m0[23:8] : 16'h8000): ((m0[31:23]==9'b0) ? m0[23:8] : 16'h7fff) };}schedule ms {MUL_SAT_4x16} {def z 2;}

a3
a2
a1
a0b0b1b2 b3

MUL

SATz0z2 z3z1

Create up to 24
register files, with
1024 registers each ofwidth up to 1024 bits
A new C data type is
automatically created© 2008. Tensilica Inc.

TIE: ユーザ定義I/O
ローカル・メモリ（タイトに結合）命令
RAM
TIEポート& キュー
インターフェイス

他のロジック、ペリフェラルおよびプロセッサ

データ
RAM

データ
RAM
TIEルックアップ
インターフェイス

C-Box

Xtensa LX2
プロセッサ

可変長計算
エンジン
ルックアップテーブル

従来のSOCバス（32-64b）

ルックアップ・ポート 新しいTIE 機能

17

応用例

•

個別の命令/データ・メモリとは異なった、新しいメモリ ••へのリード/ライト・インターフェイスを作成•

プロセッサ・データパスから直接、ロード/ストア命令と •レイテンシを伴わずにリード/ライト

メディアDSP – 係数テーブル、VLCエンジン
ベースバンドDSP – プログラマブルなフィルタ係
数
ネットワーキング・アプリケーション– ルーティン
グ・テーブル・ルックアップ© 2008. Tensilica Inc.

TIE: ユーザ定義I/O
ローカル・メモリ（タイトに結合）命令
RAM
TIEポート& キュー
インターフェイス

他のロジック、ペリフェラルおよびプロセッサ

データ
RAM

ローカル・メモリ（タイトに結合）

データ
RAM

命令
RAM

データ
RAM

C-Box

C-BoxXtensa LX2プロセッサ

Xtensa LX2プロセッサ

データRAM

従来のSOCバス（32-64b）

データパスをRTLとデータプレーンプロセッサの組み合わせで構成

18© 2008. Tensilica Inc.

Design Support

Xplorer IDE• Processor Configuration Development• Software Development

Automatic Generation of Processor Extension• XPRES compiler

Automatic Generation of SW tools• Processor Extensionに完全対応したツール生成• Compiler, Assembler, Linker, ISSISS• C/C++ API (XTMP), SystemC Model (XTSC)

EDA scripts generation• Verification environment, Synthesis scripts
19© 2008. Tensilica Inc.

ツールチェーンの自動化
Complete Hardware DesignSource pre-verified RTL, EDA scripts, test suite

ANSI C/C++ CodeProcessor

Source code
int main(){
int i;short c[100];for (i=0;i<N/2;i++){

Extensions

Processor
Configuration

XPRES
Compiler

1. Select from menu
2. Explicit instruction
description (TIE)
3. Automatic instruction
discovery (XPRES)

XtensaProcessor
Generator *Customized
Software Tools
C/C++ compiler
Debuggers,Simulators
RTOSesUse standard
ASIC/COT
designtechniques
andlibraries for
any ICfabrication
process

Optional Step

Iterate in minutes!
20* US Patent: 6,477,697

You do not need to be a“processor expert”. You
only need to understandyour target application.
© 2008. Tensilica Inc.

Tensilica Product Portfolio
Comms DSP

HiFi Audio

Video/imaging

Fully
customizable
Cores

Xtensacontrollers

Xtensa withVectra DSPs

Xtensa with
HiFi audio

Xtensa forVideo

Configurable
Cores

Configurable
Controllers

Configurable
VectraComms DSP

Configurable
HiFi Audio
DSPs

Standard
Controllers

Standard
Comms DSPs

Standard
Audio DSPs

106Micro, 108Mini,
212GP, 232L, 570T

545CK

330HiFi

Standard
Cores

Other

Security
Storage
Data Comm

ControllerStandard
VDO
388VDOCore Xtensa Instruction Set and Base Processor
Processor
Foundation

Xtensa Processor Generator (XPG) Automatic Processor Creation in 1 Hour
Complete Software Toolchain, 3rd Party Ecosystem, EDA Flows, Models
Multiple Processor SOC Design infrastructure21© 2008. Tensilica Inc.

SoC platformとしての今後の課題

エコシステムの構築• ソフトウェア資産の集積が課題

Extensibilityと汎用性のトレードオフ• Extensibilityによる性能向上はSWの再利用性を妨げがち

マルチコアシステム構築の支援• シングルコアとしてのcustomizable processor環境• マルチコアシステムは各アプリケーションに合わせて、アドホックに構築される• ソフトウェア開発環境が未対応

22© 2008. Tensilica Inc.

様々なon-chip communications
Shared BusCPU
MasterCPU
MasterOn-chip Routing NetworkCPUMasterCPUMasterCPUMasterCPUMasterRouting
NodeCPUMasterbusRouting
NodeCPUMasterRouting
NodeInputDevice
Slave

OutputDeviceSlave

MemorySlave

MemorySlave

Cross-BarCPU
MasterCPU
MasterRouting
NodeCPU
MasterRouting
NodeCPU
MasterRouting
Node

Global I/O
Slave
Routing
NodeCPUMasterRouting
NodeDual-Port
MemoryData Crunching
CPUCPU
MasterGlobalMemory
Slave

bus
Queue

CPU
Master
Queue

CPU
MasterCPU
MasterI/O Processor

Input
DeviceSlave
23

Global I/O
Slave

Routing
Node

Application-specificCPU
MasterGlobalMemorySlave

OutputMemory Memory
Device
Slave
Slave
Slave

OutputDevice
Slave

Queue

CPUMaster
Input
DeviceSlave© 2008. Tensilica Inc.

ユーザ適用事例24© 2008. Tensilica Inc.

Intel Adopts Tensilica HiFi2 AudioPentium M + Dual HiFi2 Audio DSP cores on 1 chipIntel Media Processor CE3100

Dual Tensilica
HiFi audio DSPINTEL DEVELOPER FORUM August 20, 2008
“At the Intel Developer Forum, Intel Corporation introduced the Intel® Media Processor CE 3100 [codename:Canmore], the first in a new family of purpose-built System on Chips (SoCs) for Consumer Electronics devices
based on the company's popular Intel architecture (IA) blueprint […plus…] multi-channel dual audio DSPs.”“Dual 337 MHz Tensilica DSP cores with Tensilica Instruction Extensions (TIE), are used for advanced audiocodecs with up to 7.1 channel output, supporting Blu-ray requirements independent of the [Pentium M] processorcore.”
Source: Intel Press release25© 2008. Tensilica Inc.

Tensilica
Diamond 388VDO Video Engine Core26© 2008. Tensilica Inc.

AMP example:
Epson’s REALOID Printer SOCs

Heterogeneous, asymmetric, 7-CPU SOC design
Very little RTL-designed HW
90nm process technology
288 MHz clock> 7M gates< 2.5W
Used in Epson PM series printers

27ControllerCPU© 2008. Tensilica Inc.

AMP Printer Concept:
SOC block diagram

Each processing blockruns at whatever clock rateis needed for that block,which saves energy.

28© 2008. Tensilica Inc.

Embarrassingly Parallel Example:
Cisco’s Silicon Packet
Processor for IP Networking
192 Xtensa processor CPU cores 4 CPUs for yield management(redundant processors)
 18x18 mm chip 0.5 sq-mm per CPU core
 18M gates 0.13 micron All data moves via intelligent DMA
channels without a common bus
 Used in Cisco CRS-1 Carrier Routing
System (Terabit router)
Massively parallel data
29

16 PPE
Clusters of 12
PPEs each(IP packets are not embarrassing!)© 2008. Tensilica Inc.Another Networking MP Example

Cisco’s QuantumFlow Processor
40 Xtensa processor CPU cores Each CPU is 4-way multithreaded 1.2 GHz clock Used in Cisco ASR 1000 Aggregation
Services Router family


Massive data parallelism
30(IP packets are not embarrassing!)© 2008. Tensilica Inc.

Multicore Video Chips

NTT SuperEnc III

31

NTT VASA© 2008. Tensilica Inc.

NTT VASA Block Diagram
SDRAM Port Host Port

ICacheMaster RISC Controller

DCacheCPU Bus

MPEG-2 Encoder Core 2
MPEG-2 Encoder Core 1
MPEG-2 Encoder Core 0VideoRISC
VideoRISC
VideoRISC

VideoBitStream

CPU BusVideoInput
andOutput

VideoandDisplay
Interface

WatermarkVideoSearchEngineSIMD

DCT andIDCT

Variable-Length
CodingDecoder
Core

MUX/
DEMUX
SRISC

AudioBit
StreamSystem Bus
Data Interface

System Bus
Memory Interface

DDR SDRAM Port

32

Multi-Chip Data Transfer

To Other VASA Chips© 2008. Tensilica Inc.

まとめ

SOCプラットフォームへのcustomizable processorの適用• 仕様変更、検証などのリスクを低減• アプリケーション向けにカスタマイズされたプロセッサは必要十分なパフォーマンスと低消費電力を実現• 特にDataplane(データインテンシブな処理)に向く• RTLと組み合わせてのデータパス構成が容易

マルチコアへの課題• SOCは事実上マルチコア化• ソフトウェア開発環境の整備が必要

33© 2008. Tensilica Inc.