RECONFIGURABLE FPGA BASED SOFT-CORE PROCESSOR FOR SIMD APPLICATIONS

<jats:p>Objective: The prospective need of SIMD (Single Instruction and Multiple Data) applications like video and image processing in single system requires greater flexibility in computation to deliver high quality real time data. This paper performs an analysis of FPGA (Field Programmable Gate Array) based high performance Reconfigurable OpenRISC1200 (ROR) soft-core processor for SIMD.Methods: The ROR1200 ensures performance improvement by data level parallelism executing SIMD instruction simultaneously in HPRC (High Performance Reconfigurable Computing) at reduced resource utilization through RRF (Reconfigurable Register File) with multiple core functionalities. This work aims at analyzing the functionality of the reconfigurable architecture, by illustrating the implementation of two different image processing operations such as image convolution and image quality improvement. The MAC (Multiply-Accumulate) unit of ROR1200 used to perform image convolution and execution unit with HPRC is used for image quality improvement.Result: With parallel execution in multi-core, the proposed processor improves image quality by doubling the frame rate up-to 60 fps (frames per second) with peak power consumption of 400mWatt. Thus the processor gives a significant computational cost of 12ms with a refresh rate of 60Hz and 1.29ns of MAC critical path delay.Conclusion:This FPGA based processor becomes a feasible solution for portable embedded SIMD based applications which need high performance at reduced power consumptions</jats:p>

section_content: In embedded systems, high performance is achieved by extending the reduced instruction set computer (RISC) based processor with digital signal processors (DSP) instruction set with the reconfigurable feature. The reconfigurable architecture implemented in field programmable gate array (FPGA) devices hold functional blocks with programmable interconnect. This integration ensures there is a performance improvement from 30% to 500% with a wider range of embedded applications. Media processing is majorly focused on single instruction and multiple data (SIMD) architectures where the processor executes one instruction over multiple streams of data [1]. SIMD instructions always exploit parallelism in the data stream rather than instruction stream.
section_name: INTRODUCTION

section_content: The FPGA has materialized as a platform of alternative for the hardware design of DSP systems with high computation. With a maximum degree of parallelism and software flexibility, it ensures high performance in the implemented system which makes the evolution of embedded devices on FPGA. Thus, FPGA becomes a trade-off to application specific integrated circuit with reconfigurable feature [2]. Merging hardware and software design components to work as a single embedded system is challenging. The advancement in FPGA technology allows the designer to create programmable system on-chip. It is an integrated environment interconnecting the logic blocks of FPGA with intellectual property (IP) cores, DSP unit, microprocessor units, and memory units along with peripheral units [3, 5]. 

The processor-based design can be integrated together using IP Integrator tools available in the Xilinx Vivado integrated design environment (IDE). Along with Xilinx Software Development Kit, this Vivado IDE tool also supports design and debug of integrated environment (embedded application + microprocessor).
section_name: FPGA and integrated environment

section_content: Many researches have been conducted on reconfiguration and concluded that reconfigurable computing in FPGA is used to hasten many embedded applications [6]. Most of the image processing machines exploit reconfiguration due to its parallelism feature. Horta et al. incorporate dynamic reconfiguration with plugins [7] and Kalte implements on-chip system programable with structured interconnection for dynamic reconfiguration [8]. The performance of image and video processing was evaluated by Ranganathan et al. using general purpose processor and ISA extension. They also made analysis with ISA extension in both in-order and out-of-order processors resulting in significant reduction in overall execution time. The mixture of multiple issue and out-of-order issue increases the overall performance by more than 3 times [9]. To work on extremely long data streams such as SIMD, the reconfigurable computing for a soft-core processor with out-of-order execution implemented in FPGA hardware is proposed.
section_name: Related works

section_content: OR1200 is a 5 stage pipeline. Implements 32-bit instruction set with a processor conforming to the Harvard micro -architecture (separate memory unit for Instruction and Data). Reconfigurable computing affords high flexibility which permits designers to implement any new operation to the existing structure. The ROR1200 (Reconfigurable OpenRISC1200) is soft-core with dynamic reconfigurable units such as high-performance reconfigurable computing (HPRC) and reconfigurable register file (RRF) as shown in Fig. 1. 

The register utilization is reduced in the ROR1200 by identifying the number of registers required for a specific application. ROR1200 reconfiguration explores compiler techniques to identify the number of registers essential for an application. The ROR1200 development interface is used to transfer the number of registers via commands
section_name: RECONFIGURABLE OR1200

section_content: using the special purpose register (SPR). The commands and value assigned to SPR are given in Table 1. 

The number of registers actually required for an application can be identified when assembling the code (during intermediate code generation phase of compiler). The compiler of ROR1200 processor estimates the number of registers required. This count is then placed in the executable code or ROM image through SPR. Thus, before activating the application through run signal, this count will direct the reconfiguration controller to reconfigure the register file. Universal asynchronous receiver transmitter (UART) is used to transfer executable images into instruction unit and the number of registers required will be communicated to the PC. Through batch files, RRF bit streams are burned in FPGA using Xilinx iMPACT. At the end of application execution, through UART the outputs are transferred to PC as shown in Fig. 2. ROR1200 contains 32 registers each with 32-bit segregated into four blocks such as RRF1:RRF4. It also supports read and write operations through development interface. The register file is mapped through address ranging from 1024 to 1055. 

The internal design flow of ROR1200 is shown in Fig. 3. In this model, two zones are available like static and dynamic. Dynamic zones are reconfigurable region, whose partial reconfigurable bit streams were generated and placed in FPGA. Through internal configuration access port the internal HPRC (execution unit) is reconfigured in soft-core processor.
section_name: Maheswari et al.

section_content: With registers the core functionality can be multiplied through C-slow retiming concepts [10]. Thus, the number of registers preserved during reconfiguration of the register file is used to multiply the core functionality of the processor in a single die. For given input, depending on the requirement of registers from SPR, the core count register (CCR) value will be increased. When the value of SPR is eight, then CCR is set with value 4 (32/8=4) which let four cores to configure in the die extracting parallelism as shown in Fig. 4. 

Each processing element (PE) contains the multiply-accumulate (MAC), integer execution unit with HPRC unit. Image convolution happens concurrently in a MAC unit of each PE and frame rate increased by parallel execution at integer execution and HPRC unit.
section_name: Multiplying core functionality

section_content: The image and video processing in the embedded devices has to focus all its operations very effectively considering their dependencies of data and flow of the program. The hardware component of those systems must be more flexible to handle different computational techniques efficiently without wasting the available hardware resources [11]. 

The two boarder ways to handle SIMD based system such as image and video processing systems are spatial level parallelism and data level parallelism [12]. For video processing applications, required performance level is achieved in processor architecture exploiting data-level parallelism [13]. In this work, data level parallelism is incorporated by creating a reconfigurable unit in integer execution units of the processor and resource utilization is handled through RRF. The instruction sets for arithmetic and logic unit (ALU) of ROR1200 handles almost all DSP based general signal processing operations (add-multiply, abs, so on) and common logic operations and also Boolean (bitwise and shift) operations. As ROR1200 focused for SIMD fixed point instruction set, to reduce utilization of hardware resources, the ROR1200 ALU designed to support only fixed-point data representation (signed/unsigned). 

To do hardware loops with the MAC`s, the 32-bit data have to be taken from the shared memories. The computed results can also be written to memory or to register RRF. The inputs of the data paths are 32-bit, but internally they are sign or zero extended (depending on the operation). 

Internally, all computations are 48-bit to provide a high precision of the result. The 48-bit results can be rounded, saturated, and truncated to get the 32-bit native length of the output [13]. 

The processor supports repeat instruction and a loop instruction. 

The repeat instruction takes two arguments as input, the number of instructions that should be repeated and the number of loops that should be performed. These results in only one repeat instruction that is as easy to use for repeating one instruction as it is to repeat multiple instructions and provide a hardware loop [13]. The data flow of the MAC is given in Fig. 5. 

An image of 1024 px width is taken, in which each row of the image is split into 4 blocks of each holding 128 words. Each pixel is represented by 32-bit word. While executing each execution unit (Generic +HPRC) gets 4 px per row, which are stored consecutively in its data cache retrieved via register file. Each unit can retrieve its neighboring pixels in both directions (vertical and horizontal) directly without any network latency [15]. 

The integer execution unit along with HPRC unit executes the same instruction simultaneously performing required row shift (left or right directions). Based, the MAC operations are needed to be performed as many times as blocks the image is split, in this case 4, to process completely a single image row. The MAC units are interfaced with a multiplexed bus macro for data transmission via bus macro controller. 

Based on the number of CCR, the MAC controller samples the input.
section_name: Image and video processing

section_content: The data representation of 3×3 convolution of 1024 px image is shown in Fig. 7 with mapping the registers for processing. This allows the processor to complete eight sets of 32-bit data operations per cycle when the SIMD pipeline is full. 

MAC unit in each core performs an image convolution simultaneously to increase the performance of the processor. 

The resultant output image after performing convolution images is given in Fig. 8a. It is the original image and Fig. 8b is smoothen image and Fig. 8c is sharpen image.
section_name: Data representation in memory

section_content: In general, to display video without blurriness/jerkiness of the image frames, higher frame rate is required. For video applications, the frame rate can be increased by customizing the architecture with parallel execution of the input data set [14, 16]. To perceive motion in the video, refreshing of the frames should take place very quickly. With 30 fps (frames per second), the monitor requires one 30 th of frames, such as 33. 3 m to display one frame as latency. This delay latency is halved when the frame rate doubles to 60 fps such as one sixtieth leading 16. 6 m to display frames in monitor. The instruction fetch unit and instruction decode unit of the CPU are customized to process parallel executions of image data to increase the frame rate. Thus, data level parallelism through HPRC and integer unit with multiple core functionalities doubles the frame rate from 30 fps to 60 fps ensuring improved image quality of SIMD by increasing the processor performance by 50%. Fig. 9 describes the reconfigurable system design with HPRC unit executing parallel instruction with RRF in out-of-order execution.
section_name: Image quality enhancement

section_content: The design flow of the processor implementation is given in Fig. 10, where the Xilinx tool is used to generate design checkpoint for static and reconfigurable modules. Then, the generated reconfigurable modules are loaded into its each partition. After defining the reconfigurable properties and partitions, run the design rule checker. Create and implement all the configurations to generate bit files and test the system design implemented on the board.
section_name: Processor implementation design flow

section_content: To evaluate the performance, the framework of reconfigurable OR1200 is implemented in FPGA and its usability is tested with the real-time dataset. The performance result of implementation is given in Table 2.
section_name: PERFORMANCE EVALUATION

section_name: Special Issue (April)

section_name: Maheswari et al.

section_content: The reconfigurable core is implemented in Xilinx Zynq FPGA to test the performance of the system. Using hardwired bus macros, the dynamic reconfigurable modules will be communicated with the static modules of the core [17]. The obtained results were compared with existing OR1200 with the proposed OR1200. The total number of slices available in targeted FPGA is 18796. The analysis result in an SIMD dataset is given in Table 3. 

Look-up table (LUT) is used to provide synchronization with input data received from video camera to the output stream of the display monitor. The characteristics of implementation are given in Table 4.
section_name: Board implementation

section_content: For 3×3 convolution, the MAC operation requires 9 cycles, whereas for 15×15 convolution it takes 12 clock cycles with frame size considered here is 1024 × 1024 px. Fig. 11 shows the cost analysis. Fig. 12 shows the processing time analysis and Fig. 13 shows the throughput analysis. 

Clock cycle: The first instruction takes five clock cycles for execution, to perform the execution of N instructions it needs [5 + (N-1)] clock cycles, if there are no branch instructions in the stream.
section_name: Performance evaluation of SIMD

section_content: Due to HPRC and RRF in soft-core processor, data-level parallelism is ensured using FPGA to support video processing applications at reduced power consumption. The multiple functional cores synthesized in 28 nm programmable logic Xilinx Zynq in a single die. The ROR1200 is a scalable and easily adaptable soft-core processor, providing increased throughput and performance with reduced resource utilization and power. Thus, the performance analysis of processor ensures doubled frame rate from 30 fps to 60 fps with a significant computational cost of 12 m with a refresh rate of 60 Hz and 1. 29 ns of MAC critical path delay. This FPGA-based processor becomes a feasible solution for portable embedded SIMD based applications which need high performance at reduced power consumptions.
section_name: CONCLUSION