The MorphoSys Parallel Reconfigurable System

Similar documents
The MorphoSys Dynamically Reconfigurable System-On-Chip

MorphoSys: a Reconfigurable Processor Targeted to High Performance Image Application

The link to the formal publication is via

MorphoSys: Case Study of A Reconfigurable Computing System Targeting Multimedia Applications

MorphoSys: An Integrated Reconfigurable System for Data-Parallel Computation-Intensive Applications

A Complete Data Scheduler for Multi-Context Reconfigurable Architectures

A Reconfigurable Multifunction Computing Cache Architecture

Massively Parallel Computing on Silicon: SIMD Implementations. V.M.. Brea Univ. of Santiago de Compostela Spain

Resource Sharing and Pipelining in Coarse-Grained Reconfigurable Architecture for Domain-Specific Optimization

Automatic Compilation to a Coarse-grained Reconfigurable System-on-Chip

Storage I/O Summary. Lecture 16: Multimedia and DSP Architectures

Design methodology for programmable video signal processors. Andrew Wolfe, Wayne Wolf, Santanu Dutta, Jason Fritts

Vector IRAM: A Microprocessor Architecture for Media Processing

The link to the formal publication is via

Automatic Compilation to a Coarse-Grained Reconfigurable System-opn-Chip

Reconfigurable Computing. Introduction

COPROCESSOR APPROACH TO ACCELERATING MULTIMEDIA APPLICATION [CLAUDIO BRUNELLI, JARI NURMI ] Processor Design

Novel Multimedia Instruction Capabilities in VLIW Media Processors. Contents

General Purpose Signal Processors

Performance Improvements of Microprocessor Platforms with a Coarse-Grained Reconfigurable Data-Path

Exploiting On-Chip Data Transfers for Improving Performance of Chip-Scale Multiprocessors

Software Pipelining for Coarse-Grained Reconfigurable Instruction Set Processors

Accelerating DSP Applications in Embedded Systems with a Coprocessor Data-Path

CCproc: A custom VLIW cryptography co-processor for symmetric-key ciphers

Novel Multimedia Instruction Capabilities in VLIW Media Processors

An Efficient Flexible Architecture for Error Tolerant Applications

PERFORMANCE ANALYSIS OF AN H.263 VIDEO ENCODER FOR VIRAM

Managing Dynamic Reconfiguration Overhead in Systems-on-a-Chip Design Using Reconfigurable Datapaths and Optimized Interconnection Networks

Integrating MRPSOC with multigrain parallelism for improvement of performance

Chapter 13 Reduced Instruction Set Computers

Introduction to reconfigurable systems

Pipelined Fast 2-D DCT Architecture for JPEG Image Compression

General-purpose Reconfigurable Functional Cache architecture. Rajesh Ramanujam. A thesis submitted to the graduate faculty

Unit 9 : Fundamentals of Parallel Processing

A Low Energy Clustered Instruction Memory Hierarchy for Long Instruction Word Processors

PIPELINE AND VECTOR PROCESSING

COARSE GRAINED RECONFIGURABLE ARCHITECTURES FOR MOTION ESTIMATION IN H.264/AVC

Media Instructions, Coprocessors, and Hardware Accelerators. Overview

Memory Partitioning Algorithm for Modulo Scheduling on Coarse-Grained Reconfigurable Architectures

Highly Scalable Dynamically Reconfigurable Systolic Ring-Architecture for DSP applications

Towards a Dynamically Reconfigurable System-on-Chip Platform for Video Signal Processing

AN EFFICIENT VLSI IMPLEMENTATION OF IMAGE ENCRYPTION WITH MINIMAL OPERATION

MPEG-2 Video Decompression on Simultaneous Multithreaded Multimedia Processors

A RISC ARCHITECTURE EXTENDED BY AN EFFICIENT TIGHTLY COUPLED RECONFIGURABLE UNIT

Parallel and Pipeline Processing for Block Cipher Algorithms on a Network-on-Chip

DCT/IDCT Constant Geometry Array Processor for Codec on Display Panel

A Compiler Framework for Mapping Applications to a Coarse-grained Reconfigurable Computer Architecture

Using Streaming SIMD Extensions in a Fast DCT Algorithm for MPEG Encoding

DUE to the high computational complexity and real-time

High Performance Computing. University questions with solution

A scalable, fixed-shuffling, parallel FFT butterfly processing architecture for SDR environment

Embedded Systems. 7. System Components

Design of an Efficient Architecture for Advanced Encryption Standard Algorithm Using Systolic Structures

REAL TIME DIGITAL SIGNAL PROCESSING

Using Intel Streaming SIMD Extensions for 3D Geometry Processing

FleXilicon: a New Coarse-grained Reconfigurable Architecture for Multimedia and Wireless Communications

High Speed Systolic Montgomery Modular Multipliers for RSA Cryptosystems

ManArray Processor Interconnection Network: An Introduction

CS6303 Computer Architecture Regulation 2013 BE-Computer Science and Engineering III semester 2 MARKS

The Nios II Family of Configurable Soft-core Processors

CS 426 Parallel Computing. Parallel Computing Platforms

Implementation of Full -Parallelism AES Encryption and Decryption

RUN-TIME RECONFIGURABLE IMPLEMENTATION OF DSP ALGORITHMS USING DISTRIBUTED ARITHMETIC. Zoltan Baruch

A full-pipelined 2-D IDCT/ IDST VLSI architecture with adaptive block-size for HEVC standard

Cache Justification for Digital Signal Processors

ISSCC 2001 / SESSION 9 / INTEGRATED MULTIMEDIA PROCESSORS / 9.2

In this tutorial, we will discuss the architecture, pin diagram and other key concepts of microprocessors.

Computer Architecture

A Configurable Multi-Ported Register File Architecture for Soft Processor Cores

INSTITUTO SUPERIOR TÉCNICO. Architectures for Embedded Computing

3.1 Description of Microprocessor. 3.2 History of Microprocessor

Design and Performance Analysis of Reconfigurable Hybridized Macro Pipeline Multiprocessor System (HMPM)

Chapter 2 Logic Gates and Introduction to Computer Architecture

A Low Power and High Speed MPSOC Architecture for Reconfigurable Application

A 50Mvertices/s Graphics Processor with Fixed-Point Programmable Vertex Shader for Mobile Applications

MARIE: An Introduction to a Simple Computer

The S6000 Family of Processors

Implementation of Pipelined Architecture Based on the DCT and Quantization For JPEG Image Compression

A Video Compression Case Study on a Reconfigurable VLIW Architecture

Computer Architecture 2/26/01 Lecture #

Vertex Shader Design I

Embedded Systems Ch 15 ARM Organization and Implementation

The Architecture of a Homogeneous Vector Supercomputer

Efficient Implementation of Low Power 2-D DCT Architecture

Parallel Computing: Parallel Architectures Jin, Hai

NISC Application and Advantages

Systolic Arrays for Reconfigurable DSP Systems

1. Microprocessor Architectures. 1.1 Intel 1.2 Motorola

Processor Architectures At A Glance: M.I.T. Raw vs. UC Davis AsAP

Interfacing a High Speed Crypto Accelerator to an Embedded CPU

Performance/Cost trade-off evaluation for the DCT implementation on the Dynamically Reconfigurable Processor

omputer Design Concept adao Nakamura

IMAGINE: Signal and Image Processing Using Streams

Chapter 4. The Processor

Compilation Approach for Coarse-Grained Reconfigurable Architectures

A Very Compact Hardware Implementation of the MISTY1 Block Cipher

Pipelining and Vector Processing

Fundamentals of Computer Design

EEL 4783: Hardware/Software Co-design with FPGAs

Abstract A SCALABLE, PARALLEL, AND RECONFIGURABLE DATAPATH ARCHITECTURE

Transcription:

The MorphoSys Parallel Reconfigurable System Guangming Lu 1, Hartej Singh 1,Ming-hauLee 1, Nader Bagherzadeh 1, Fadi Kurdahi 1, and Eliseu M.C. Filho 2 1 Department of Electrical and Computer Engineering University of California, Irvine Irvine, CA 92715 USA {glu, hsingh, mlee, nader, kurdahi}@ece.uci.edu 2 Department of Systems and Computer Engineering Federal University of Rio de Janeiro/COPPE P.O. Box 68511 21945-970 Rio de Janeiro, RJ Brazil eliseu@lam.ufrj.br Abstract. This paper introduces MorphoSys, a parallel system-on-chip which combines a RISC processor with an array of coarse-grain reconfigurable cells. MorphoSys integrates the flexibility of general-purpose systems and high performance levels typical of application-specific systems. Simulation results presented here show significant performance enhancements for different classes of applications, as compared to conventional architectures. 1 Introduction General-purpose computing systems provide a single computational substrate for applications with diverse characteristics. These systems are flexible but, due to their generality, they may not match the computational needs of many applications. On the other hand, systems built around Application-Specific Integrated Circuits (ASICs) exploit intrinsic characteristics of an algorithm that lead to a high performance. However, the direct architecture algorithm mapping restricts the range of applicability of ASIC-based systems. Reconfigurable computing systems represent a hybrid approach between the design paradigms of general-purpose systems and application-specific systems. They combine a software programmable processor and a reconfigurable hardware component which can be customized for different applications. This combination allows reconfigurable systems to achieve performance levels much higher than that obtained with general-purpose systems, with a wider flexibility than that offered by application-specific systems. This paper introduces the MorphoSys parallel reconfigurable system. MorphoSys (Morphoing System) is primarily targeted to applications with inherent parallelism, high regularity, word-level granularity and computation-intensive nature. Some examples of such applications are video compression, image processing, multimedia and data security. However, MorphoSys is flexible enough to support bit-level and irregular applications. P. Amestoy et al. (Eds.): Euro-Par 99, LNCS 1685, pp. 727 734, 1999. c Springer-Verlag Berlin Heidelberg 1999

728 Guangming Lu et al. The remainder of this paper is organized as follows. Section 2 presents the MorphoSys architecture and emphasizes its unique features. Section 3 discusses the status of the MorphoSys prototype currently under development. Section 4 shows performance figures for important applications mapped to MorphoSys. Finally, Section 5 presents the main conclusions. 2 The MorphoSys System 2.1 The Architecture The basic architecture of a parallel reconfigurable system [1] comprises a software programmable core processor and a reconfigurable hardware component. The core processor executes sequential tasks of the application and controls data transfers between the programmable hardware and data memory. In general, the reconfigurable hardware is dedicated to exploitation of parallelism available in the application. This hardware typically consists of a collection of interconnected reconfigurable elements. Both the functionality of the elements and their interconnection are determined through a special configuration program. Figure 1 shows the MorphoSys architecture. It comprises five components: the core processor, the Reconfigurable Cell Array (RC Array), the Context Memory, the Frame Buffer and a DMA Controller. TinyRISC Core Processor RC Array (8 x 8) Main Memory Frame Buffer (2 x 128 x 64) DMA Controller Context Memory (2 x 8 x 16) Fig. 1. Architecture of the MorphoSys reconfigurable system. The core processor, also known as TinyRISC, is a MIPS-like processor with a 4-stage scalar pipeline. It has sixteen 32-bit registers and three functional units: a 32-bit ALU, a 32-bit shift unit and a memory unit. An on-chip data cache memory minimizes accesses to external main memory. In addition to typical RISC instructions, TinyRISC s ISA is augmented with specific instructions for controlling other MorphoSys components. DMA instructions initiate data transfers between main memory and the Frame Buffer, and configuration loading from

The MorphoSys Parallel Reconfigurable System 729 main memory into the Context Memory. RC Array instructions specify one of the internally stored configuration programs and how it is broadcast to the RC Array. The TinyRISC processor is not intended to be used as a stand-alone, general-purpose processor. Although TinyRISC performs sequential tasks of the application, performance is mainly determined from data-parallel processing in the RC Array. The RC Array consists of an 8 8 matrix of Reconfigurable Cells (RCs). An important feature of the RC Array is its three-layer interconnection network. The first layer connects the RCs in a two-dimensional mesh, allowing nearest neighbor data interchange. The second layer provides complete row and column connectivity within an array quadrant. It allows each RC to access data from any other RC in its row/column in the same quadrant. The third layer supports inter-quadrant connectivity. It consists of buses called express lanes, that run along the entire length of rows and columns, crossing the quadrant borders. An express lane carries data from any one of the four RCs in a quadrant s row (column) to the RCs in the same row (column) of the adjacent quadrant. The Reconfigurable Cell (RC) is the basic programmable element in MorphoSys. As Figure 2 shows, each RC comprises: an ALU-Multiplier, a shift unit, input multiplexers, a register file with four 16-bit registers and the context register. operand bus 16 31 0 wr_exp reg rs_ls scnt mux_a mux_b alu_op imm MUX A MUX B 16 context register 12 16 16 ALU-Multiplier R0 R1 R2 R3 Register File 32 Shifter 32 16 32 output register to result bus, express lanes and other RCs Fig. 2. Architecture of the Reconfigurable Cell (RC). In addition to standard arithmetic and logical operations, the ALU-Multiplier can perform a multiply-accumulate operation in a single cycle. The input multiplexers select one of several inputs for the ALU-Multiplier. Multiplexer MUX A selects an input from: (1) one of the four nearest neighbors in the RC Array, or (2) other RCs in the same row/column within the same RC Array quadrant, or (3) the operand data bus, or (4) the internal register file. Multiplexer MUX

730 Guangming Lu et al. B selects one input from: (1) three of the nearest neighbors, or (2) the operand bus, or (3) the register file. The context register provides control signals for the RC components through the context word. The bits of the context word directly control the input multiplexers, the ALU/Multiplier and the shift unit. The context word determines the destination of a result, which can be a register in the register file and/or the express lane buses. The context word also has a field for an immediate operand value. The Context Memory stores the configuration program (the context) forthe RC Array. It is logically organized into two partitions, called Context Block 0 and Context Block 1. By its turn, each Context Block is logically subdivided into eight partitions, called Context Set 0 to Context Set 7. Finally, each Context Set has a depth of 16 context words. A context plane comprises the context words at the same depth across the Context Block. As the Context Sets are 16 words deep, this means that up to 16 context planes can be simultaneously resident in each of the two Context Blocks. A context plane is selected for execution by the TinyRISC core processor, using the RC Array instructions. Context words are broadcast to the RC Array on a row/column basis. Context words from Context Block 0 are broadcast along the rows, while context words from Context Block 1 are broadcast along the columns. Within Context Block 0 (1), Context Set n is associated with row (column) n, 0 n 7, of the RC Array. Context words from a Context Set are sent to all RCs in the corresponding row (column). All RCs in a row (column) receive the same context word and therefore perform the same operation. The Frame Buffer is an internal data memory logically organized into two sets, called Set 0 and Set 1. Each set is further subdivided into two banks, Bank A and Bank B. Each bank stores 64 rows of 8 bytes. Therefore, the entire Frame Buffer has 128 16 bytes. A 128-bit operand bus carries data operands from the Frame Buffer to the RC Array. This bus is connected to the RC Array columns, allowing eight 16-bit operands to be loaded into the eight cells of an RC Array column (i.e., one operand for each cell) in a single cycle. Therefore, the whole RC Array can be loaded in eight cycles. In the current MorphoSys prototype, the operand bus has a single configuration mode, called interleaved mode. In this mode the operand bus carries data from the Frame Buffer banks in the order A 0,B 0,A 1,B 1,...,A 7,B 7,where A n and B n denote the nth byte from Bank A and Bank B, respectively. Each cell in an RC Array column receives two bytes of data, one from Bank A and the other from Bank B. This operation mode is appropriate for image processing applications involving template matching, that compare two 8-bit operands. The next MorphoSys implementation will allow a second configuration mode, called contiguous mode. In this mode, the operand bus carries data in the order A 0,...,A 7,B 0,...,B 7,whereA n and B n denote the nth byte from Bank A and Bank B, respectively. Each cell in an RC Array column receives two consecutive bytes of data from either Frame Buffer Bank A or B. This additional mode satisfies application classes that require 16-bit data transfers.

The MorphoSys Parallel Reconfigurable System 731 Results from the RC Array are written back to the Frame Buffer through a separate 128-bit bus, called the result bus. Application mapping experience has indicated the need for flexibility in the result bus too. In the current MorphoSys prototype, the result bus operates in an 8-bit mode. In this mode, each cell of an RC Array column provides an 8-bit result, forming a 64-bit word which is written into Frame Buffer Bank A or B. But, in some applications, it is necessary to write back 16-bit data from each RC. To satisfy this requirement, the result bus in the next MorphoSys implementation will have an additional 16-bit mode. Here, 16-bit results from the first four cells of an RC Array column are written into Frame Buffer Bank A, while the 16-bit results from the remaining four cells are stored into Bank B. The DMA controller performs data transfers between the Frame Buffer and the main memory. It is also responsible for loading contexts into the Context Memory. The TinyRISC core processor uses DMA instructions to specify the necessary data/context transfer parameters for the DMA controller. 2.2 Execution Flow Model The execution model of MorphoSys is based on partitioning applications into sequential and data-parallel tasks. The former are handled by TinyRISC core processor whereas the latter are mapped to the RC Array. TinyRISC initiates all data and context transfers. RC Array execution is also enabled by TinyRISC, through the special context broadcast instructions. These instructions select one of the context planes and send the context words to the RC Array. While RC Array performs computations on data in one Frame Buffer set, fresh data may be loaded in the other set or Context Memory may receive new contexts. 2.3 Important Features of MorphoSys MorphoSys is a coarse-grain, multiple-context reconfigurable system with considerable depth of programmability (32 context planes) and two different context broadcast modes. Bus configurability supports applications with different data sizes and data flow patterns. The hierarchical RC Array interconnection network contributes for algorithm mapping flexibility. Structures like the express lanes enhance global connectivity. Even irregular communication patterns, that otherwise require extensive interconnections, can be handled efficiently. MorphoSys is a highly parallel system. First, MorphoSys is dynamically reconfigurable. While the RC Array is executing one of the sixteen contexts in row broadcast mode, the other sixteen contexts for column broadcast can be reloaded into the Context Memory (or vice-versa). Secondly, RC Array computations using data in one Frame Buffer set can proceed in parallel with data transfers from/to the other Frame Buffer set. The internal Frame Buffer and DMA controller, and the adoption of wide datapaths, allow high-bandwidth transfers for both data and configuration information.

732 Guangming Lu et al. 3 Implementation of MorphoSys MorphoSys is tightly-coupled reconfigurable system. The TinyRISC core processor, the RC Array and the remaining components are to be integrated into a single chip. The first implementation of MorphoSys is called the M1 chip. M1 is being designed for operation at 100 MHz clock frequency, using a 0.35 µm CMOS technology. The TinyRISC core processor and the DMA controller were synthesized from a VHDL model. The other components (RC Array, Context Memory and Frame Buffer) were completely custom designed. The final design will be obtained through the integration of both synthesized and custom parts. There is a SUIF-based C compiler for the TinyRISC core processor and a simple assembler-like parser for context generation. A GUI tool called mview supports interactive programming and simulation. Using mview, the programmer can specify the functions and interconnections corresponding to each context for the application. mview then automatically generates the appropriate context file. As a simulation tool, mview reads a context file and displays the RC outputs and interconnection patterns at each cycle of the application execution. 4 Algorithm Mapping and Performance Analysis 4.1 Image Processing Application: DCT/IDCT The Discrete Cosine Transform (DCT) and Inverse Discrete Cosine Transform (IDCT) are examples typifying the image processing area. Both transforms are part of the JPEG and MPEG standards. A two-dimensional DCT (2-D DCT) can be performed on an 8 8pixel matrix (the size in most image and video compressing standards) by applying one-dimensional DCT (1-D DCT) [2] to the rows of the pixel matrix, followed by 1-D DCT on the results along the columns. For high throughput, the eight row (column) 1-D DCTs can be computed in parallel. When mapping 2-DCT to MorphoSys, the operand and result buses are configured for interleaved and 8-bit modes, respectively. For an 8 8 pixel matrix, each pixel is mapped to a RC. To perform eight 1-D DCTs along the rows (columns) of the pixel matrix, context is broadcast along the columns (rows) of the RC Array. As MorphoSys has the ability to broadcast context along both rows and columns of the RC Array, the need of transposing the pixel matrix is eliminated, thus saving a considerable amount of cycles. The operand data bus allows the entire pixel matrix to be loaded in eight cycles. Once data is in the RC Array, two butterfly operations are performed to compute intermediate variables. Inter-quadrant connectivity provided by the express lanes enables one butterfly operation in three cycles. As the butterfly operations are also performed in parallel, only six cycles are necessary to accomplish the butterfly operations for the whole matrix. Row/column 1-D DCTs take 12 cycles. Two additional cycles are used for data re-arrangement. Finally, eight cycles are needed for result write back.

The MorphoSys Parallel Reconfigurable System 733 Table I. Performance comparison for DCT/IDCT application. System Performance MorphoSys 36 cycles sdct 240 cycles REMARC 54 cycles V830 201 cycles TMS 320 cycles Table I shows performance figures for 2-D DCT on MorphoSys and other systems. Performance is given in number of cycles, in order to isolate influences from the different integration technologies employed to implement the systems. sdct is a software implementation written in optimized Pentium assembly code using 64-bit special MMX instructions [3]. REMARC [4] is another reconfigurable system, targeting multimedia applications. V830R/AV [5] is a superscalar multimedia processor. TMS320C80 [6] is a commercial digital signal processor. Execution of DCT/IDCT on MorphoSys results in a speedup of 6X as compared to a Pentium MMX-based system. MorphoSys yields a throughput much better than that of the considered hardware designs. 4.2 Data Encryption/Decryption Application: IDEA Today, data security is a key application domain. The International Data Encryption Algorithm (IDEA) [7] is a typical example of this application class. IDEA involves processing of plaintext data (i.e., data to be encrypted) in 64-bit blocks with a 128-bit encryption/decryption key. The algorithm performs eight iterations of a core function. After the eighth iteration, a final transformation step produces a 64-bit ciphertext (i.e., encrypted data) block. IDEA employs three operations: bitwise exclusive-or, addition modulo 2 16 and multiplication modulo 2 16 + 1. Encryption/decryption keys are generated externally and then loaded once into the Frame Buffer. When mapping IDEA to MorphoSys, the operand bus and the result bus are configured for the contiguous and 16-bit modes, respectively. Some operations of IDEA s core function can be performed in parallel, while others must be performed sequentially due to data dependencies. The maximum number of operations that can be performed in parallel is four. In order to exploit this parallelism, clusters of four cells in the RC Array columns are allocated to operate on each plaintext block. Thus, the whole RC Array can operate on sixteen plaintext blocks in parallel. As two 64-bit plaintext blocks can be transferred simultaneously through the operand bus, it takes only eight clock cycles to load 16 plaintext blocks into the entire RC Array. Each of the eight iterations of the core function takes seven clock cycles to execute in a cell cluster. The final transformation step needs one additional cycle. Once the ciphertext blocks have been produced, eight cycles are necessary to write them back to the Frame Buffer before loading the next plaintext blocks. Therefore, it takes 73 cycles to produce 16 cyphertext blocks.

734 Guangming Lu et al. Table II compares the performance of MorphoSys for the IDEA algorithm. sidea is a software implementation on a Pentium II processor. Performance shown was measured by using the Intel VTune profiling tool. HiPCrypto [8] is a 7-stage pipelined ASIC chip that implements IDEA in hardware. A single HiPCrypto produces 7 cyphertext blocks every 56 cycles. Two HiPCrypto chips in a cascade produce 7 cyphertext blocks every 28 cycles. IDEA running on MorphoSys is much faster than running on an advanced superscalar processor. It is also faster that an IDEA ASIC processor in a single-chip configuration. Table II. Performance comparison for IDEA application. System Performance MorphoSys 16 blocks/73 cycles sidea 1 block/357 cycles HiPCrypto, single-chip 7 blocks/56 cycles HiPCrypto, two-chips 7 blocks/28 cycles 5 Concluding Remarks In this paper, we described the MorphoSys parallel reconfigurable system. We also presented results showing significant performance gains of MorphoSys for important applications in the imaging processing and data security domains. Overall, this paper demonstrates that the combination of general-purpose processors with reconfigurable hardware blocks represents a potential design paradigm to address the performance needs of future applications and for the microprocessors of the next decade. References [1] W. H. Mangione-Smith et al., Seeking Solutions in Configurable Computing, IEEE Computer, Dec. 1997, pp. 38 43. [2] W-HChen,C.H.Smith,S.C.Fralick,A Fast Computational Algorithm for the Discrete Cosine Transform, IEEE Trans. on Communications, Vol. 25, No. 9, Sept. 1997, pp. 1004 1009. [3] App. Notes for Pentium MMX, http://developer.intel.com/drg/mmx/appnotes. [4] T. Miyamori, K. Olukotun, A Quantitative Analysis of Reconfigurable Coprocessors for Multimedia Applications, Proc. of the IEEE Symposium on Field Programmable Custom Computing Machines, 1998. [5] T. Arai et al., V830R/AV: Embedded Multimedia Superscalar RISC Processor, IEEE Micro, Mar./Apr. 1998, pp. 36 47. [6] F. Bonimini et al., Implementing an MPEG2 Video Decoder Based on TMS320C80 MVP, SPRA 332, Texas Instruments, Sept. 1996. [7] B. Schneier, Applied Cryptography, John Wiley, New York, NY, 1996. [8] S. Salomao, V. Alves, E. C. Filho, HiPCrypto: A High Performance VLSI Cryptographic Chip, Proc. of the 1998 IEEE ASIC Conference, pp. 7 13.