Abstract:
본 발명은 하나의 명령으로 메모리에 저장되어 있는 복수 개의 데이터들을 전달하는 방안을 제안한다. 이를 위해 각 영역별로 어드레스가 할당된 적어도 2개의 영역들로 구성된 메모리에서, 데이터들을 각 어드레스에 순차적으로 할당하고, 상기 어드레스 할당된 데이터들을 하나의 명령으로 전달하게 된다. 즉, 하나의 명령으로 구성하고 있는 데이터들을 전달하는 적어도 하나의 블록을 생성하고, 데이터를 상기 블록들 중 적어도 하나의 블록에 구성되도록 지시한다. 상기 블록을 구성하고 있는 데이터들을 상호 연결하고, 상기 블록들에 대해 동일한 데이터들을 상호 연결한 경로의 합들을 산출하고, 상기 연결한 경로의 합을 고려하여 상기 데이터들을 최소 경로로 연결한다. 상기 최소 경로를 이용하여 상기 데이터들을 어드레스별로 순차적으로 할당한다. 메모리, 레지스터, 어드레스, MLS
Abstract:
본 발명은 소프트웨어에 의해 제어되는 캐시 메모리의 데이터 레이아웃을 편성하는 방법에 관한 것으로서, 특히 불규칙한 데이터 접근 패턴을 갖는 애플리케이션이 실행되는 경우에도 실시간으로 효율적인 데이터 할당을 수행할 수 있는 스크래치 패드 메모리의 데이터 할당 방법에 관한 것이다. 본 발명의 일 실시 예에 따른 스크래치 패드 메모리의 데이터 할당 방법은, 불규칙한 메모리 접근 패턴을 갖는 애플리케이션에 대한 소프트웨어에 의해 제어되는 캐시 메모리의 동적 데이터 할당 방법에 있어서, 프로파일링을 통해 상기 애플리케이션을 구성하는 배열 요소들에 대한 접근 자취를 획득하고, 상기 획득된 접근 자취를 통해 접근 패턴을 분석하는 단계, 상기 배열 요소들의 접근 빈도를 바탕으로 재사용 인자를 산출하고, 상기 산출된 재사용 인자가 일정한 값 이상인 후보 배열 요소들을 선택하는 단계, 및 상기 후보 배열 요소들을 수명 유사성을 바탕으로 복수 개의 클러스터들로 분류하고, 상기 분류된 클러스터들을 상기 캐시 메모리에 할당하는 단계를 포함하는 것을 특징으로 한다. 스크래치 패드 메모리, 클러스터, 프로파일링, 메모리 할당
Abstract:
A compiling method for optimal placement of scaling shifts and a system thereof are provided to efficiently generate codes by removing the reverse effect due to the insertion of scaling shift operation. A compiler(108) is divided into a generation means(210) and back-end(220). The generation means produces intermediate codes which are internal representation by analyzing inputted source codes(109), and the back-end produces an object code(110) from the intermediate code. The generation means comprises a lexical analysis means(211), a parsing means(212), a semantic analysis means(213), an intermediate code generation means(214). The lexical analysis means separates necessary tokens from the source code. The parsing means composes the tokens according to a given grammar. The meaning analyzing mean gives meaning to the grammar found out by the parsing means. The intermediate code generation means generates an intermediate code from the source code produced through the meaning analyzing mean. The back-end part includes a transforming means(221) and a translating means(222). The transforming means transforms the intermediate code according to a correction-writing rule, and the translating means generates an object code by selecting a proper command for the object code and assigning a register to the selected command.
Abstract:
A dynamic data allocation method of a cache memory controlled by software about an application having an irregular arrangement access pattern is provided to efficiently allocate a data array having an irregular access pattern of all kinds shown in an application used in a code field or a communication field to a scratch pad memory. An access track about array elements configuring an application is obtained through profiling. An access pattern is analyzed through the obtained access track(410). A reuse factor is calculated based on an access frequency of the array elements(420). Array elements having a reuse factor which is larger than a predetermined value are selected as a candidate array element. The candidate array elements are classified into clusters based on life similarity(450). The classified clusters are allocated to a cache memory(460).
Abstract:
본 발명은 하나의 명령으로 메모리에 저장되어 있는 복수 개의 데이터들을 전달하는 방안을 제안한다. 이를 위해 각 영역별로 어드레스가 할당된 적어도 2개의 영역들로 구성된 메모리에서, 데이터들을 각 어드레스에 순차적으로 할당하고, 상기 어드레스 할당된 데이터들을 하나의 명령으로 전달하게 된다. 즉, 하나의 명령으로 구성하고 있는 데이터들을 전달하는 적어도 하나의 블록을 생성하고, 데이터를 상기 블록들 중 적어도 하나의 블록에 구성되도록 지시한다. 상기 블록을 구성하고 있는 데이터들을 상호 연결하고, 상기 블록들에 대해 동일한 데이터들을 상호 연결한 경로의 합들을 산출하고, 상기 연결한 경로의 합을 고려하여 상기 데이터들을 최소 경로로 연결한다. 상기 최소 경로를 이용하여 상기 데이터들을 어드레스별로 순차적으로 할당한다. 메모리, 레지스터, 어드레스, MLS
Abstract:
A method for reducing data dependence in software pipelining is provided to improve the performance of a pipelining loop of a DSP(Digital Signal Processor) and utilize resources of the DSP fully by reducing the data dependence in iterated pipelining. All routes is searched from a data dependence graph made for machine language of a target loop code and a priority route forming the longest route, which determines an execution time of the loop, is found from the searched routes(S200). An instruction having the shortest priority route is found as an instruction to reduce dependence by forming a replaceable instruction table for the priority routes and searching the priority route in reference to the replaceable instruction table(S204). Dependence relation is changed by replacing the found instruction to reduce the dependence with a replaceable instruction(S206). The dependence graph is reformed for the changed loop code and a routine is returned to a first stage(S208). The routine is terminated when the instruction to reduce the dependence is not found in the priority route.