新たな高信頼アーキテクチャに向けた研究

新たな高信頼アーキテクチャに向けた研究
A First Step Towards A Novel Dependable Architecture
MTL 坂井・五島研究室
修士1年 46424 豊島 隆志
MTL
坂井・五島研究室
Contents


Background
A Novel Architecture
– Overview
– Details

Code Translation
– History
– Consideration


Ideas for Dependability
Future Works
MTL
坂井・五島研究室
Background – Requirements and Adhoc supplies

Dependability Requirements
– Reliability, Availability ,Serviceability (RAS)

Studies of Architecture Level Support
– Academic studies

Architecture Support for Defending Against Buffer Overflow Attacks; Jun Xu
and Zbigniew Kalbarczyk and Sanjay Patel and Ravishankar K. Iyer; Proceedings
of 2nd Workshop on Evaluating and Architecting System dependabilitY (EASY),
2002

Enlisting Hardware Architecture to Thwart Malicious Code Injection; Ruby B.
Lee and David K. Karig and John P. McGregor and Zhijie Sh; Proceedings of 1st
International Conference on Security in Pervasive Computing (SPC), 2003

A Processor Architecture Defense against Buffer Overflow Attacks; John P.
McGregor and David K. Karig and Zhijie Shi and Ruby B. Lee; Proceedings of
IEEE International Conference on Information Technology: Research and
Education (ITRE), 2003
– Commercial products



ARM SecureCore
SmartMIPS ASE
IA-32 NXBit
Symptomati
c
and
Imperfect
MTL
坂井・五島研究室
Contents


Background
A Novel Architecture
– Overview
– Details

Code Translation
– History
– Consideration


Ideas for Dependability
Future Works
MTL
坂井・五島研究室
A Novel Architecture - Overview
Translated Instruction
Translation Cache
Translation Request
Invalidation
Instruction
Translation Unit
(TU)
Data
Control
Execution Unit
(EU)
Data & Tag
Tag
Data Cache
Tag Memory
Data
Main Bus
Main Memory
Instructions
for
Virtual Machine (VM)
MTL
坂井・五島研究室
A Novel Architecture – Details : Execution Unit
Translated Instruction

Execution Unit (EU)
Translation Cache
Translation Request
Invalidation
Instruction
Translation Unit
(TU)
– Access to Data


Data Cache
Main Memory and Tag Memory
Execution Unit
(EU)
Data & Tag
Tag
– Access to Instruction
Data Cache
Tag Memory
Data

Translation Cache
Main Memory
Instructions
for
Virtual Machine (VM)
MTL
坂井・五島研究室
A Novel Architecture – Details : Translation Unit
Translated Instruction

Translation Unit (TU)
– Binary Translation


From ISA for VM
To ISA for EU
– Organization


Translation Cache
Translation Request
Invalidation
Instruction
Translation Unit
(TU)
Execution Unit
(EU)
Data & Tag
Tag
Data Cache
Hardware Processor
Translation Software
– Rapid Translation
– Optimization of Translation Cache
Tag Memory
Data
Main Memory
Instructions
for
Virtual Machine (VM)
MTL
坂井・五島研究室
Contents


Background
A Novel Architecture
– Overview
– Details

Code Translation
– History
– Consideration


Ideas for Dependability
Future Works
MTL
坂井・五島研究室
Code Translation - History : microprogrammed control

IBM System/360
– At April 7, 1964
ROM
Op.Code
Instruction
Control Memory Address
Microprogram
for
Op.X
Microprogram
for
Op.Y

Sequencer
Motorola MC680x0
– nanoprogram
– nanoarchitecture
Microprogram
for
Op.Z
Micro architecture
Control Memory
(CM)
MTL
坂井・五島研究室
Code Translation - History : Pentium4 (NetBurst)
System Bus
Frequently used paths
Bus Unit
Less frequently used paths
3rd Level Cache (Optional)
2nd Level Cache (8-Way)
1st Level Cache
(4-Way)
Front End
Fetch/Decode
Trace Cache
Microcode ROM
BTBs/Branch Prediction
Execution
Out-Of-Order
Core
Branch History Update
Retirement
MTL
坂井・五島研究室
Code Translation - History : Crusoe/Efficeon
Memory System
Fetch
convert
IA-32 Inst. A
IA-32 Inst. B
IA-32 Inst. C
IA-32 Inst. D
Atom
VLIW Inst. Aa
VLIW Inst. Ab
VLIW Inst. Ba
VLIW Inst. Ca
VLIW Inst. Cb
VLIW Inst. Da
Molecule
Light
Optimization
Inst. Aa
Inst. Ab
Inst. Ba
Inst. Cb
Inst. Da
Inst. Aa Inst. Ab Inst. Ba Inst. Cb
pack
Inst. Da
・・・
Hot Spot
Core Morphing Software
Maximum Optimization
&
Cache
VLIW
Execution core
MTL
坂井・五島研究室
Code Translation - History : Itanium series
IA-32 Execution Layer (IA-32 EL)
IA-64
IA-32
IA-32
Application Application Application
IA-32 Application
Runtime Information
Cold Code Translation
IA-32 Decoder
Hot Code
Translation
Hot Spot
Runtime Information
Operation System
On Execution Time
Optimizer
IA-32
Execution Layer
Translated Code Block
IA-64 VLIW core
Cache Translation and Runtime Information
MTL
坂井・五島研究室
Code Translation - History : Parrot
Fetch Selector
Branch
Predict
I-Cache
Trace Predict
Trace
Cache
Trace
Fill
Cold
Exec
Hot
Filter
Trace Select
Synchronized Commit
Optimizer
Hot
Exec
Blazing
Filter
MTL
坂井・五島研究室
Code Translation - Considerations

Requirements
– ISA for Software (ISAS)


High Level Language oriented
More Information with Instructions
– For Dynamic Optimizations
• Performance & Reduced Power Supply
– For Dynamic Validations
• Dependability
– ISA for Hardware (ISAH)


Design Level Optimization
– Fixed ISA restricts Hardware Design
Impact
– Answer the Above Requirements
MTL
坂井・五島研究室
Contents


Background
A Novel Architecture
– Overview
– Details

Code Translation
– History
– Consideration


Ideas for Dependability
Future Works
MTL
坂井・五島研究室
Ideas for Dependability – Call Stack Protection

Return Address Stack is divided from Common Stack
– Permission to touch Return Address Stack is limited to …



Call instruction (tacit push)
Return instruction (tacit pop)
Specified Push/Pop instructions for Return Address Stack
– Only address value can be pushed into Return Address Stack
Local
Variables
of
Function
int a;
Local
Variables
of
Function
int b;
char buffer[1024];
Stack Frame
of
Function
int a;
Stack Frame
of
Function
int b;
return address
return address
char buffer[1024];
MTL
坂井・五島研究室
Ideas for Dependability – Boundary Check Acceleration

Register relative indexed addressing
– Load a1, r2
– Store r1, a2

; if (i2 > b2) raise exception else a1←(a2+i2)
; if (i1 > b1) raise exception else (a1+i1)←a2
Load Reference
– Load r1, r2
; a1←(a2+i2), b1←1(a2+i2)
memory
a1
b1
a1+i1
If (i1 > b1)
Index reg.
Boundary reg.
a1
i1
b1
a2
i2
b2
a3
i3
b3
a4
i4
b4
…
…
…
raise exception
Address reg.
MTL
坂井・五島研究室
Ideas for Dependability – Data Tagging

Every data is tagged based on data types
– Types





Instruction
Address
Value
Reference (A Pair of Address and Value)
NULL
– Tag value is updated by specified instructions
– ALU update tags automatically after calculation
– If PC points a data which is not tagged as instruction, the
execution of program is stopped
– When data is tagged as instruction, T$ is invalidated
MTL
坂井・五島研究室
Contents


Background
A Novel Architecture
– Overview
– Details

Code Translation
– History
– Consideration


Ideas for Dependability
Future Works
MTL
坂井・五島研究室
Feature Works

Model of Undependability
– Human error leading mechanisms
– Essential Realization of Dependable Mechanisms

On ISAH or ISAS?
– Which should we implement dependable mechanisms on

More Specification
– Details of Execution Unit
– Outline of Translation Unit

How Evaluate
– SPEC, IPC, …
MTL
坂井・五島研究室
COMING SOON
MTL
坂井・五島研究室
Background (1) – Moore's Law

Moore's Law
– Cramming more components onto integrated circuits;
Gordon E. Moore; Electronics, Volume 38, Number 8, April 19, 1965

The Limits of Moore's Law
– No Exponential Is Forever: But “Forever” Can Be Delayed!; Gordon E. Moore; IEEE
International Solid-State Circuits Conference 2003
– Limits to binary logic switch scaling – a gedanken model; V.V.Cavin, R.K. Cavin III,
J.A.Hutchby, G.I.Bourianoff; Proceedings of The IEEE Volume 91, Issue 11, Nov 2003,
p1934-1939 … 16nm
– No end in sight for Moore's Law; Craig Barrett(Intel CEO) ; Intel Developer Fortum
Spring 2005 Keynote Speech … 5nm
MTL
坂井・五島研究室
Translated Instruction
Translation Cache
Translation Request
Invalidation
Instruction
Translation Unit
(TU)
Execution Unit
(EU)
Data & Tag
Tag
Data Cache
Tag Memory
Data
Main Bus
Main Memory
Instructions
for
Virtual Machine (VM)
MTL
坂井・五島研究室
ROM
Instruction
Op.Code
Control Memory Address
Microprogram
for
Op.X
Microprogram
for
Op.Y
Microprogram
for
Op.Z
Micro architecture
Control Memory
(CM)
MTL
坂井・五島研究室
System Bus
Frequently used paths
Bus Unit
Less frequently used paths
3rd Level Cache (Optional)
2nd Level Cache (8-Way)
1st Level Cache
(4-Way)
Front End
Fetch/Decode
Trace Cache
Microcode ROM
BTBs/Branch Prediction
Execution
Out-Of-Order
Core
Branch History Update
Retirement
MTL
坂井・五島研究室
Memory System
Fetch
convert
IA-32 Inst. A
IA-32 Inst. B
IA-32 Inst. C
IA-32 Inst. D
Atom
VLIW Inst. Aa
VLIW Inst. Ab
VLIW Inst. Ba
VLIW Inst. Ca
VLIW Inst. Cb
VLIW Inst. Da
Molecule
Light
Optimization
Inst. Aa
Inst. Ab
Inst. Ba
Inst. Cb
Inst. Da
Inst. Aa Inst. Ab Inst. Ba Inst. Cb
pack
Inst. Da
・・・
Hot Spot
Core Morphing Software
Maximum Optimization
&
Cache
VLIW
Execution core
MTL
坂井・五島研究室
IA-64
IA-32
IA-32
Application Application Application
IA-32
Execution Layer
Operation System
IA-32 Decoder
IA-64 VLIW core
MTL
坂井・五島研究室
IA-32 Application
Cold Code Translation
Runtime Information
Hot Code
Translation
Runtime Information
Hot Spot
On Execution Time
Optimizer
Translated Code Block
Cache Translation and Runtime Information
MTL
坂井・五島研究室
Fetch Selector
Branch
Predict
I-Cache
Trace Predict
Trace
Cache
Trace
Fill
Cold
Exec
Hot
Filter
Trace Select
Synchronized Commit
Optimizer
Hot
Exec
Blazing
Filter
MTL
坂井・五島研究室
Address reg.
Index reg.
Boundary reg.
a1
i1
b1
a2
i2
b2
a3
i3
b3
a4
i4
b4
…
…
…
memory
a1
b1
a1+i1
If (i1 > b1)
raise exception
MTL
坂井・五島研究室
Translated Instruction
Translation Cache
Translation Request
Invalidation
Instruction
Translation Unit
(TU)
Execution Unit
(EU)
Data & Tag
Tag
Data Cache
Tag Memory
Data
Main Memory
Instructions
for
Virtual Machine (VM)