Specification and Design of Quasi- Delay-Insensitive Java Card Microprocessor Fu-Chiung Cheng & Chuin-Ren Wang Dept. of Computer Science and Engineering.

Slides:



Advertisements
Similar presentations
The CPU The Central Presentation Unit What is the CPU?
Advertisements

Computer Architecture
Microprocessors and Interfacing
Chapter 1. Basic Structure of Computers
Control path Recall that the control path is the physical entity in a processor which: fetches instructions, fetches operands, decodes instructions, schedules.
Chapter 2 Data Manipulation Dr. Farzana Rahman Assistant Professor Department of Computer Science James Madison University 1 Some sldes are adapted from.
TITAC: Design of a QDI microprocessor TITAC: Tokyo Institute of Technology TITAC-1: IEEE Design & Test (Summer 94) 1. main goal: explore the design methodology.
Processor System Architecture
DH2T 34 Computer Architecture 1 LO2 Lesson Two CPU and Buses.
Computer Organization. This module surveys the physical resources of a computer system. –Basic components CPUMemoryBus I/O devices –CPU structure Registers.
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
Chapter 0 Introduction to Computing
Introduction to Microprocessors Number Systems and Conversions No /6/00 Chapter 1: Introduction to 68HC11 The 68HC11 Microcontroller.
The CPU - Outline. Components of CPU Englander p
5/6/99 Ashish Sabharwal1 JVM Architecture n Local storage area –Randomly accessible –Just like standard RAM –Stores variables (eg. an array) –Have to specify.
Basic Computer Organization CH-4 Richard Gomez 6/14/01 Computer Science Quote: John Von Neumann If people do not believe that mathematics is simple, it.
Processor Types And Instruction Sets Barak Perelman CS147 Prof. Lee.
Microcontroller based system design
6. The CPU and Memory Chapt. 7.
INTRODUCTION TO MICROCONTROLLER. What is a Microcontroller A microcontroller is a complete microprocessor system, consisting of microprocessor, limited.
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 18: 0xCAFEBABE (Java Byte Codes)
Computer Organization
Micro-operations Are the functional, or atomic, operations of a processor. A single micro-operation generally involves a transfer between registers, transfer.
Computer Organization Computer Organization & Assembly Language: Module 2.
Internal hardware and external components of a computer Three-box Model  Processor The brain of the system Executes programs A big finite state machine.
Introduction to Computing: Lecture 4
D75P 34R HNC Computer Architecture 1 Week 9 The Processor, Busses and Peripherals © C Nyssen/Aberdeen College 2003 All images © C Nyssen /Aberdeen College.
CPU Computer Hardware Organization (How does the computer look from inside?) Register file ALU PC System bus Memory bus Main memory Bus interface I/O bridge.
CHAPTER 3 TOP LEVEL VIEW OF COMPUTER FUNCTION AND INTERCONNECTION
Chapter 5: Computer Systems Organization Invitation to Computer Science, Java Version, Third Edition.
Computer Science 210 Computer Organization The von Neumann Architecture.
Computers organization & Assembly Language Chapter 0 INTRODUCTION TO COMPUTING Basic Concepts.
Roopa.T PESIT, Bangalore. Source and Credits Dalvik VM, Dan Bornstein Google IO 2008 The Dalvik virtual machine Architecture by David Ehringer.
Introduction to Computing Systems from bits & gates to C & beyond The Von Neumann Model Basic components Instruction processing.
CPU Design. Introduction – The CPU must perform three main tasks: Communication with memory – Fetching Instructions – Fetching and storing data Interpretation.
CPU How It Works. 2 Generic Block Diagram CPU MemoryInputOutput Address Bus Data Bus.
REGISTER TRANSFER & MICROOPERATIONS By Sohaib. Digital System Overview  Each module is built from digital components  Registers  Decoders  Arithmetic.
Computer Organization - 1. INPUT PROCESS OUTPUT List different input devices Compare the use of voice recognition as opposed to the entry of data via.
General Concepts of Computer Organization Overview of Microcomputer.
Computer Architecture And Organization UNIT-II General System Architecture.
Computer Science 101 Computer Systems Organization.
Computer Systems - Registers. Starter… Discuss in pairs the definition of the following Control Unit Arithmetic and Logic Unit Registers Internal clock.
INTRODUCTION.  Upon completing this topic, you should be able to: Illustrate a basic elements of digital computer system and their functions, Depicts.
Computer Structure & Architecture 7b - CPU & Buses.
Electronic Analog Computer Dr. Amin Danial Asham by.
Computer Organization CDA 3103 Dr. Hassan Foroosh Dept. of Computer Science UCF © Copyright Hassan Foroosh 2002.
Programmable Logic Controllers LO1: Understand the design and operational characteristics of a PLC system.
THE MICROPROCESSOR A microprocessor is a single chip of silicon that performs all of the essential functions of a computer central processor unit (CPU)
Overview von Neumann Architecture Computer component Computer function
Computer operation is of how the different parts of a computer system work together to perform a task.
Question What technology differentiates the different stages a computer had gone through from generation 1 to present?
1 Basic Processor Architecture. 2 Building Blocks of Processor Systems CPU.
Capability of processor determine the capability of the computer system. Therefore, processor is the key element or heart of a computer system. Other.
REGISTER TRANSFER & MICROOPERATIONS By Sohaib. Digital System Overview  Each module is built from digital components  Registers  Decoders  Arithmetic.
Chapter 20 Computer Operations Computer Studies Today Chapter 20.
BASIC COMPUTER ARCHITECTURE HOW COMPUTER SYSTEMS WORK.
1 Chapter 1 Basic Structures Of Computers. Computer : Introduction A computer is an electronic machine,devised for performing calculations and controlling.
Types of Micro-operation  Transfer data between registers  Transfer data from register to external  Transfer data from external to register  Perform.
Riyadh Philanthropic Society For Science Prince Sultan College For Woman Dept. of Computer & Information Sciences CS 251 Introduction to Computer Organization.
CPU Lesson 2.
Computer Science 210 Computer Organization
Introduction of microprocessor
Introduction to Microprocessors and Microcontrollers
Number Representations and Basic Processor Architecture
University of Gujrat Department of Computer Science
Functional Units.
COMS 161 Introduction to Computing
MARIE: An Introduction to a Simple Computer
Computer Systems An Introducton.
Presentation transcript:

Specification and Design of Quasi- Delay-Insensitive Java Card Microprocessor Fu-Chiung Cheng & Chuin-Ren Wang Dept. of Computer Science and Engineering Tatung University Taipei 104, Taiwan R.O.C.

Outline 1. Motivation 2. Smart Card Architecture 3. Introduction of Java Card 4. Java Card Processor Organization 5. Specification : Data Dependency Graph 6. Implementation and Optimizations 7. Conclusion

1. Motivation ID card, driver license, credit cards, bank Cards, library card, p ay-phone card,... => Smart Card Other applications : [Henry97] –fraud control for credit and debit cards –access control for buildings or computer systems –ticketless travel on airlines, subways, buses or trains. Java Card is a smart card using Java technology.

1. Motivation Why Asynchronous circuit for Java Card Microprocessor? [Hauck95,Cheng97] –low power consumption –average-case performance –robust –Modularity, Composability, Reusability

2. Smart Card Architecture Smart card architecture consists of – CPU – memory – communication interface The front and back of Smart card:

2. Smart Card Architecture Smart Card CPU: –8-bit, single-tasking devices with 1KB of RAM or less. On-Card Memory –ROM (Read-Only Memory) –RAM (Random Access Memory) –EEPROM (Electrically Erasable Programmable Read Only Memory)

2. Smart Card Architecture Communication Interface – A smart card does not contain its own power supply, display, or keyboard. Card Acceptance Device (CAD) – A smart card interacts with a Card Acceptance Device (CAD) through the communication interface

3. Java Card Java Card is a smart card using Java technology. Java programs run on Java Virtual Machine (JVM). JVM is an interpreter to execute bytecodes (Java instructions). JVM is a stack-based machine. Java Card instruction set is a subset of Full Java’s.

3.1 Data type in Java Card Two kinds of types: primitive types and reference types. Primitive types –byte : 8-bit signed two’s-complement integer. –short :16-bit signed two’s-complement integers. –int : 32-bit signed two’s-complement integers. –Boolean : 8-bit, TRUE or FALSE. Reference types –class types, interface types, and array types.

3.2 Java Card Instruction Set Java Card 2.0 has 104 instructions. 1. Load/ Store Instructions: iload, istore, Arithmetic Instructions: iadd, isub, ior, Type Conversion Instructions: i2b, i2s. 4. Control Transfer Instructions: ifnull, if 5. Operand Stack Management: pop, dup, Object Creation and Manipulation: new, getfield 7. Method Invocation and Return Instructions: invokespecial, invokestatic, return, Throwing and Handling Exceptions: athrow.

4. JAVA Card Processor Organization PC: program counter SP: stack pointer IR: instruction register MAR: memory address register MI: memory interface A, B: two general-purposed registers FB: Frame-based register : Control line : Bus line

5. Specification: Data Dependency Graph Given an instruction set + a processor organization, micro-operations of instructions may be specified by data dependency graphs [Nanya94]. The micro-operations can be directly mapped into quasi-delay-insensitive components. Five basic components: fork, join,select, merge and oval (micro-operation).

5.1 DDG: Five Basic Elements

5.2 DDG: Java Card Processor Fetch Instruction Decode Execution

5.3 DDG: iadd instruction

6. Implementation: Goal: four-phase handshaking QDI circuits [Nanya94,Cheng97]. Mapping DDGs to QDI Components TITAC: point-to-point data transfer Our Java Card Processor: shared bus architecture.

6.1 Shared Bus Architecture

6.2 QDI Library

6.3 Deriving Control Path from DDGs

6.3 C-element and Q-element

Control Path: iadd

6.3 Deriving Datapath from DDGs: For each micro-operation, M, and its Q- element with the start (Ms) and finish (Mf) of this micro-operation: –If M read a register R then connect Ms to the read signal of R. –If M write to a register R then connect Ms to the write signal of R and add a demultiplexer to send out the write acknowledge to Mf. –If there are multiple signals connecting to a read/write signal, add an OR gate.

Datapath Control Path

6.4 Optimization: Goal: better performance, less power consumption and/or less logic. Three optimization schemes: –Redundancy Elimination –Parallel Execution –Common Modularity

6.4 Optimization: Example 1

6.4 Optimization: Example 2 Sharing Common modules:

6.4 Optimization: Results Redundancy Elimination –Micro-operations: 12  9 –Cost and power consumption: save one addition and three data transmission operations. Parallel Execution: –Micro-operations: 9  8 Common Modularity: –Cost: save (n-1)*getTwoOperands. (n is number of instructions in Arithmetic).

A new asynchronous Java Card microprocessor architecture is presented. Data dependent graph is used to specify the micro-operations of Java card microprocessor. Three optimization schemes are applied for better performance, less power consumption and/or logic. New Java Card 2.1 (Mar. 1999) spec contains 186 instructions. We are developing CAD tool. 7. Conclusions