| Preface |
|
ix | |
|
|
|
1 | (8) |
|
|
|
1 | (2) |
|
1.2 Mobile Devices and Design Challenges |
|
|
3 | (3) |
|
1.2.1 Mobile Computing Power |
|
|
3 | (2) |
|
1.2.2 Mobile Display Devices |
|
|
5 | (1) |
|
|
|
5 | (1) |
|
1.3 Introduction to SoC Design |
|
|
6 | (1) |
|
|
|
7 | (2) |
|
|
|
9 | (58) |
|
|
|
9 | (9) |
|
2.1.1 Platform and Set-based Design |
|
|
9 | (5) |
|
2.1.2 Modeling: Memory and Operations |
|
|
14 | (4) |
|
|
|
18 | (9) |
|
2.2.1 Reference Machine and API |
|
|
18 | (4) |
|
2.2.2 Communication Architecture Design |
|
|
22 | (3) |
|
|
|
25 | (2) |
|
|
|
27 | (1) |
|
2.3.1 CMOS Circuit-level Low-power Design |
|
|
27 | (1) |
|
2.3.2 Architecture-level Low-power Design |
|
|
27 | (1) |
|
2.3.3 System-level Low-power Design |
|
|
28 | (1) |
|
2.4 Network-on-Chip based SoC |
|
|
28 | (39) |
|
2.4.1 Network-on-Chip Basics |
|
|
29 | (12) |
|
2.4.2 NoC Design Considerations |
|
|
41 | (7) |
|
2.4.3 Case Studies of Chip Implementation |
|
|
48 | (19) |
|
3 Introduction to 3D Graphics |
|
|
67 | (18) |
|
3.1 The 3D Graphics Pipeline |
|
|
68 | (10) |
|
3.1.1 The Application Stage |
|
|
68 | (1) |
|
|
|
68 | (6) |
|
3.1.3 The Rendering Stage |
|
|
74 | (4) |
|
3.2 Programmable 3D Graphics |
|
|
78 | (7) |
|
3.2.1 Programmable Graphics Pipeline |
|
|
78 | (3) |
|
|
|
81 | (4) |
|
|
|
85 | (14) |
|
4.1 Principles of Mobile 3D Graphics |
|
|
85 | (6) |
|
4.1.1 Application Challenges |
|
|
86 | (1) |
|
|
|
87 | (4) |
|
4.2 Mobile 3D Graphics APIs |
|
|
91 | (5) |
|
|
|
91 | (2) |
|
|
|
93 | (2) |
|
4.2.3 Microsoft's Direct3D-Mobile |
|
|
95 | (1) |
|
4.3 Summary and Future Directions |
|
|
96 | (3) |
|
|
|
99 | (20) |
|
5.1 Low-power Rendering Processor |
|
|
100 | (10) |
|
|
|
101 | (1) |
|
5.1.2 Logarithmic Datapaths |
|
|
102 | (2) |
|
5.1.3 Low-power Texture Unit |
|
|
104 | (2) |
|
5.1.4 Tile-based Rendering |
|
|
106 | (1) |
|
5.1.5 Texture Compression |
|
|
107 | (2) |
|
5.1.6 Texture Filtering and Anti-aliasing |
|
|
109 | (1) |
|
|
|
110 | (9) |
|
|
|
110 | (1) |
|
5.2.2 Low-power Register File |
|
|
111 | (2) |
|
5.2.3 Mobile Unified Shader |
|
|
113 | (6) |
|
6 Real Chip Implementations |
|
|
119 | (30) |
|
6.1 KAIST RAMP Architecture |
|
|
119 | (20) |
|
|
|
120 | (3) |
|
|
|
123 | (4) |
|
|
|
127 | (5) |
|
|
|
132 | (7) |
|
6.2 Industry Architecture |
|
|
139 | (10) |
|
6.2.1 nVidia Mobile GPU - SC10 and Tegra |
|
|
139 | (4) |
|
|
|
143 | (1) |
|
6.2.3 Imagination technology MBX/SGX |
|
|
144 | (5) |
|
7 Low-power Rasterizer Design |
|
|
149 | (146) |
|
7.1 Target System Architecture |
|
|
149 | (1) |
|
7.2 Summary of Performance and Features |
|
|
150 | (1) |
|
7.3 Block Diagram of the Rasterizer |
|
|
150 | (1) |
|
7.4 Instruction Set Architecture (ISA) |
|
|
151 | (3) |
|
7.5 Detailed Design with Register Transfer Level Code |
|
|
154 | (141) |
|
7.5.1 Rasterization Top Block |
|
|
154 | (2) |
|
7.5.2 Pipeline Architecture |
|
|
156 | (1) |
|
7.5.3 Main Controller Design |
|
|
156 | (2) |
|
7.5.4 Rasterization Core Unit |
|
|
158 | (137) |
|
8 The Future of Mobile 3D Graphics |
|
|
295 | (4) |
|
8.1 Game and Mapping Applications Involving Networking |
|
|
295 | (1) |
|
8.2 Moves Towards More User-centered Applications |
|
|
296 | (1) |
|
|
|
297 | (2) |
|
Appendix Verilog HDL Design |
|
|
299 | (24) |
|
A.1 Introduction to Verilog Design |
|
|
299 | (1) |
|
|
|
300 | (1) |
|
|
|
300 | (1) |
|
A.2.2 Register Transfer Level |
|
|
300 | (1) |
|
|
|
300 | (1) |
|
|
|
301 | (4) |
|
|
|
302 | (1) |
|
|
|
302 | (1) |
|
|
|
303 | (1) |
|
|
|
303 | (1) |
|
|
|
304 | (1) |
|
|
|
304 | (1) |
|
A.3.7 Placement and Routing |
|
|
305 | (1) |
|
|
|
305 | (13) |
|
|
|
306 | (1) |
|
A.4.2 Logic Values and Numbers |
|
|
307 | (1) |
|
|
|
308 | (1) |
|
|
|
309 | (2) |
|
|
|
311 | (1) |
|
A.4.6 Ports and Connections |
|
|
312 | (1) |
|
|
|
312 | (2) |
|
|
|
314 | (2) |
|
|
|
316 | (2) |
|
A.5 Example of Four-bit Adder with Zero Detection |
|
|
318 | (2) |
|
|
|
320 | (3) |
| Glossaries |
|
323 | (2) |
| Index |
|
325 | |