Google Analytics

Search This Blog

Tuesday, December 27, 2005

Why do we need MiBench

This is motivated by the white paper; MiBench: A free, commercially representative embedded benchmark suite. It is the hardwork of R & D by the Electrical Engineering and Computer Science, University of Michigan College of Engineering (EECS, UMICE)

Microprocessors are everywhere including those being employed in servers and high-end desktop systems and embedded system such as handphones and etc. The sales of microprocessor for embedded system exceeds the rest.

Short Summary:
1. Benchmarking is required for quality control. If one developed a chip (microprocessor), how you make sure that is it working fine ? This also applies to QC of embedded system tools such as compiler.
2. Many benchmarks have been proposed such as Dhrystone, LINPACK, Whetstone, CPU2, Mediabench and etc.
3. The most popular on is called the standard Peformance Evaluation Corporation (SPEC) CPU benchmarks. Currently, it is in third revision called SPEC2000.
4. A remarkable increase in the number of ISA (instruction Set Architecture)s for embedded applications and this number continues to grow.
5. EEMBC (EDN Embedded Microprocessor Benchmark Consortium) recognized the difficulty of using one application domain to charactirize a benchmark for this purpose. Thus, its benchmark is based on five embedded application domains.
6. MiBench concept is based on the EEMBC's model, which the application domain of six categories; Automotive and Industrial Control, Consumer Devices, Office Automation, Networking, Security, and Telecommunications. Each of these are known as a suite.

Thus, MiBench's scientist actually code from scratch 6 sets of source codes known as suite each, where they are expected to accomodate to the following changes in terms of each suite. Each suite is considered a benchmark for each application domain.

The following table summarizes benchmark "C" language program created for each suite.

Auto/IndustrialConsumerOfficeNetworkSecurityTelecomm
basicmathjpegghostscriptdijkstrablowfish enc.CRC32
bitcountlameispellPatriciaBlowfishdec.FFT
qsortmadrsynth(CRC32)Pgp signIFFT
susan(edges)tiff2bwsphinx(sha)Pgp verifyADPCM enc.
susan(corners)tiff2rgbastringsearch(blowfish)rijndael enc.dec
susan(smoothing)tiffditherrijndael dec.GSM enc.
tiffmedianShaGSM dec.
typeset

This white paper provides details explanation of each benchmark program.

In other words, this white paper and its source codes are a good source for research of how real things work. For instance, one may wonder, what is the like of a real world shortest path algorithm being employed in routers and switches ?

The answer is dijkstra algorithm, please find it under the network suite.

Also, you maybe thinking that how complex it is for JPEG to work ? Please obtain the documentations and source code from the consumer suite - courtesy of MiBench; open source contributor.

Thus, if you ever wanted to embedd an encription module to your system, you may also want to try out the industry standard SHA under the security suite.

1 comment:

Crazy Dan said...

Came across your blog by pure accident but thought whilst i was here i could tell you about this electrical engineering salary site i found.