|
ABSTRACT
Shrinking time-to-market and high demand for productivity has driven traditional hardware designers to use design methodologies that start from high-level languages. However, meeting timing constraints of automatically generated IPs is often a challenging and time-consuming task that must be repeated every time the specification is modified. To address this issue, a new generation of IP-design technologies that is capable of generating custom datapaths as well as programming an existing one is developed. These technologies are often based on Horizontal Microcoded Architectures. Large code size is a well-know problem in HMAs, and is referred to as "code bloating" problem.In this paper, we study the code size of one of the new HMA-based technologies called NISC. We show that NISC code size can be several times larger than a typical RISC processor, and we propose several low-overhead dictionary-based code compression techniques to reduce the code size. Our compression algorithm leverages the knowledge of "don't care" values in the control words to better compress the content of dictionary memories. Our experiments show that by selecting proper memory architectures the code size of NISC can be reduced by 70% (i.e. 3.3 times) at cost of only 9% performance degradation. We also show that some code compression techniques may increase number of utilized block RAMs in FPGA-based implementations. To address this issue, we propose combining dictionaries and implementing them using embedded dual-port memories.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
M. Byatt, "Data plane processing with configurable architectures", ARM white paper, 2003.
|
| |
2
|
N. Clark, H. Zhong, K. Fan, S. Mahlke, K. Flautner, K. Van Nieuwenhove, "OptimoDE: Programmable Accelerator Engines Through Retargetable Customization", Hot Chips, 2004.
|
| |
3
|
S. Bashford, U. Bieker, B. Harking, R. Leupers, P. Marwedel, A. Neumann, D. Voggenauer, "The MIMOLA Language - Version 4.1. Technical Report." Computer Science Dept., University of Dortmund, 1994.
|
| |
4
|
|
 |
5
|
|
| |
6
|
|
 |
7
|
|
| |
8
|
A. Agrawala, T. Rauscher, Foundations of Microprogramming: Architecture, Software, and Applications, Academic Press, ISBN: 0120451506, 1976.
|
| |
9
|
|
| |
10
|
MiBench benchmark: http://www.eecs.umich.edu/mibench/
|
| |
11
|
MAD: MPEG Audio Decoder: http://www.underbit.com/products/mad/
|
 |
12
|
|
| |
13
|
Darko Kirovski , Johnson Kin , William H. Mangione-Smith, Procedure based program compression, Proceedings of the 30th annual ACM/IEEE international symposium on Microarchitecture, p.204-213, December 01-03, 1997, Research Triangle Park, North Carolina, United States
|
 |
14
|
|
| |
15
|
A. Halambi , A. Shrivastava , P. Biswas , N. Dutt , A. Nicolau, An Efficient Compiler Technique for Code Size Reduction Using Reduced Bit-Width ISAs, Proceedings of the conference on Design, automation and test in Europe, p.402, March 04-08, 2002
|
| |
16
|
|
| |
17
|
|
| |
18
|
R. Grehan, "16-bit: The good, the bad, your options," Embedded Systems Programming, 1997 {Online}. Available: http://www.embedded.com/1999/9908/9908sr.htm
|
 |
19
|
|
| |
20
|
IBM, CodePack PowerPC code Compression Utility User's Manual Version 3.0, IBM, 1998.
|
| |
21
|
|
| |
22
|
|
| |
23
|
G. Pechanek, S. Larin, T. Conte, "Any-size instruction abbreviation technique for embedded DSPs", ASIC/SoC Conference, 2002.
|
 |
24
|
|
| |
25
|
C. Fraser. "An instruction for direct interpretation of LZ77-compressed programs." Technical Report MSR-TR-2002-90, Microsoft Research, Microsoft Corporation, 2002.
|
| |
26
|
|
| |
27
|
T. Jensen, B. Toft, Graph coloring problems. Wiley-Interscience, New York, 1995, ISBN 0-471-02865-7.
|
| |
28
|
Xilinx Product Specification, "Block memory generator", version 1.1, 2006.
|
 |
29
|
|
|