DOI QR코드

DOI QR Code

Run-time Memory Optimization Algorithm for the DDMB Architecture

DDMB 구조에서의 런타임 메모리 최적화 알고리즘

  • 조정훈 (경북대학교 전자전기컴퓨터학부) ;
  • 백윤흥 (서울대학교 전기컴퓨터공학부) ;
  • 권수현 (경북대학교 전자공학과)
  • Published : 2006.10.30

Abstract

Most vendors of digital signal processors (DSPs) support a Harvard architecture, which has two or more memory buses, one for program and one or more for data and allow the processor to access multiple words of data from memory in a single instruction cycle. We already addressed how to efficiently assign data to multi-memory banks in our previous work. This paper reports on our recent attempt to optimize run-time memory. The run-time environment for dual data memory banks (DBMBs) requires two run-time stacks to control activation records located in two memory banks corresponding to calling procedures. However, activation records of two memory banks for a procedure are able to have different size. As a consequence, dual run-time stacks can be unbalanced whenever a procedure is called. This unbalance between two memory banks causes that usage of one memory bank can exceed the extent of on-chip memory area although there is free area in the other memory bank. We attempt balancing dual run-time slacks to enhance efficiently utilization of on-chip memory in this paper. The experimental results have revealed that although our algorithm is relatively quite simple, it still can utilize run-time memories efficiently; thus enabling our compiler to run extremely fast, yet minimizing the usage of un-time memory in the target code.

대부분의 디지털 신호 처리기 (Digital Signal Processor)는 두 개 이상의 메모리 뱅크를 가지는 하버드 아키텍처 (Harvard architecture)를 지원한다. 다중 메모리 뱅크 중에서 하나는 프로그램용으로 나머지는 데이터용으로 사용하여 프로세서가 한 명령어 사이클에 메모리의 여러 데이터에 동시 접근을 가능하게 한다. 이전 연구에서 우리는 다중 메모리 뱅크에 효율적으로 데이터를 할당하는 방법에 대하여 논하였다. 본 논문에서는 이전 연구의 확장으로 런타임 메모리의 최적화에 대한 우리의 최근 연구에 대하여 소개한다. 듀얼 데이터 메모리 뱅3(Dual Data Memory Bank)를 효율적으로 이용하기 위해 각 메모리 뱅크에 할당된 변수를 관리하기 위한 독립적인 두 개의 런타임 스택이 필요하다. 프로시저에 대한 두 메모리 뱅크의 활성화 레코드(Activation Record)의 크기는 각 메모리 뱅크에 할당된 변수의 개수가 일정하지 않기 때문에 다를 수 있다. 따라서 여러 개의 프로시저가 연속으로 호출될 때 두 개의 런타임 스택의 크기가 크게 달라질 수 있다. 이러한 두 메모리 뱅크 사이의 불균형은 하나의 메모리에 여유 공간이 있음에도 불구하고 다른 하나의 메모리 뱅크의 사용량이 온칩 메모리(on-chip memory)범위를 초과하는 원인이 될 수 있다. 본 논문에서는 온칩 메모리를 효율적으로 사용하기 위해 두 런타임 스택의 균형 맞추기를 시도했다. 본 논문에서 제안하는 알고리즘은 상대적으로 단순하지만 효율적으로 런타임 메모리를 사용할 수 있다는 것을 실험결과를 통해 보여주고 있다.

Keywords

References

  1. Aho, A. V., Sethi, R., and Ullman, J. D. 1986. Compilers-Principles, Techniques, and Tools. Addison-Wesley Publishing Company
  2. Cho, J., Paek, Y., AND Whalley, D. 2004. Fast Memory Bank Assignment for Fixed-Point Digital Processors. and Transactions on Design Automation of Electronic Systems, Vol.9, No.1, pp.52 - 74, Jan https://doi.org/10.1145/966137.966140
  3. Motorola Inc. 1999. http//www.motorola-dsp.com. DSP56301 User's Manual
  4. Lee, C., Potkonjak, M., and Mangione-Smith, W. 1997. MediaBench: A Tool for Evaluating and Synthesizing Multimedia and Communications Systems. In Proceedings of the 30th Annaul IEEE/ ACM Internation Symposium on Microarchitecture, pp.330 - 335, Nov https://doi.org/10.1109/MICRO.1997.645830
  5. Leupers, R. and Kotte, D. 2001. Variable partitioning for dual memory bank DSPs. In Proceedings of the IEEE International Conference on Acoustics Speech and Signal Processing. 1121-1124 https://doi.org/10.1109/ICASSP.2001.941118
  6. Liem, C. 1997. Retargetable Compilers for Embedded Core Processors. Kluwer Academic Publishers
  7. Saghir, M. A. R., Chow, P., and Lee, C. G. 1996. Exploiting Dual Data-Memory Banks in Digital Signal Processors. ACM SIGOPS Operating Systems, pp.234 - 243 https://doi.org/10.1145/248208.237193
  8. Sudarsanam, A. and Malik, S. 2000. Simultaneous Reference Allocation in Code Generation for Dual Data Memory Bank ASIPs. ACM Transactions on Design Automation of Electronic Systems, Vol.5, No.2, pp.242 - 264, April https://doi.org/10.1145/335043.335047