Abstract:
본 발명은 하나의 명령으로 메모리에 저장되어 있는 복수 개의 데이터들을 전달하는 방안을 제안한다. 이를 위해 각 영역별로 어드레스가 할당된 적어도 2개의 영역들로 구성된 메모리에서, 데이터들을 각 어드레스에 순차적으로 할당하고, 상기 어드레스 할당된 데이터들을 하나의 명령으로 전달하게 된다. 즉, 하나의 명령으로 구성하고 있는 데이터들을 전달하는 적어도 하나의 블록을 생성하고, 데이터를 상기 블록들 중 적어도 하나의 블록에 구성되도록 지시한다. 상기 블록을 구성하고 있는 데이터들을 상호 연결하고, 상기 블록들에 대해 동일한 데이터들을 상호 연결한 경로의 합들을 산출하고, 상기 연결한 경로의 합을 고려하여 상기 데이터들을 최소 경로로 연결한다. 상기 최소 경로를 이용하여 상기 데이터들을 어드레스별로 순차적으로 할당한다. 메모리, 레지스터, 어드레스, MLS
Abstract:
A configuration cache with low power consumption and a reconfigurable processing system including the configuration cache are provided to apply context reuse to a configuration cache and a processing element array and drive a temporal cache and a spatial cache selectively according to context pipelining configuration and an environment in which the processing system is used to reduce power consumption without deteriorating performance. A reconfigurable processing system includes a register(174), a multiplexer(175), and a cache controller. The register outputs a context signal to a processing element(172). The multiplexer outputs one of the context signal fed back from the register and a context signal output from a cache element(155). The cache controller generates a signal for controlling output of the multiplexer. A reading operation of the cache element is not performed when the context signal fed back from the register is output.
Abstract:
A register allocation method for heterogeneous register architecture is provided to effectively reduce the size of a code for executing an application program in an embedded processor. A register class relation table about correlation of register classes is generated. The register class indicates a group of registers capable of being allocated to each node existing in an interference graph. According to the register class correlation shown in register class relation table, it is determined whether to merge copy-related nodes existing in the interference graph.
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.
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:
본 발명은 우선순위 기반 실행을 이용한 캐시미스 대기시간 활용 방법 및 장치에 관한 것으로서, 그 우선순위 기반 실행을 이용한 캐시미스 대기시간 활용 방법은 프로그램을 컴파일하는 단계; 그 컴파일된 프로그램에서 우선순위가 높은 명령어와 우선순위가 낮은 명령어로 분류하는 단계; 우선순위가 높은 순서대로 명령어를 실행하는 단계; 및 캐시 미스가 발생되면, 캐시미스가 해결될 때 까지 그 우선순위가 낮은 명령어를 실행하는 단계를 포함함을 특징으로 한다. 본 발명에 의하면, 임베디드 프로세스에서 최소의 전력과 최소의 면적비용(area cost)으로 메모리 대기시간을 효율적으로 활용하여 시스템 성능을 향상시킬 수 있다.
Abstract:
PURPOSE: A method for utilizing cache miss waiting time using priority-based execution and an apparatus thereof are provide to efficiently utilize memory waiting time in an embedded process using minimum electricity and minimum area cost. CONSTITUTION: A method for utilizing cache miss waiting time using priority-based execution comprises the following steps: processing(S300) a program compilation; classifying(S310) an instruction with high priority and the instruction with low priority in the compiled program; processing(S320) the instruction with high priority; processing(S330,S340) the instruction with low priority until cache miss solves when cache miss is generated; resuming(S350) execution of the instruction with high priority when the cache miss solves; completing(S360) instruction execution when there is no instruction.
Abstract:
본 발명은 소프트웨어에 의해 제어되는 캐시 메모리의 데이터 레이아웃을 편성하는 방법에 관한 것으로서, 특히 불규칙한 데이터 접근 패턴을 갖는 애플리케이션이 실행되는 경우에도 실시간으로 효율적인 데이터 할당을 수행할 수 있는 스크래치 패드 메모리의 데이터 할당 방법에 관한 것이다. 본 발명의 일 실시 예에 따른 스크래치 패드 메모리의 데이터 할당 방법은, 불규칙한 메모리 접근 패턴을 갖는 애플리케이션에 대한 소프트웨어에 의해 제어되는 캐시 메모리의 동적 데이터 할당 방법에 있어서, 프로파일링을 통해 상기 애플리케이션을 구성하는 배열 요소들에 대한 접근 자취를 획득하고, 상기 획득된 접근 자취를 통해 접근 패턴을 분석하는 단계, 상기 배열 요소들의 접근 빈도를 바탕으로 재사용 인자를 산출하고, 상기 산출된 재사용 인자가 일정한 값 이상인 후보 배열 요소들을 선택하는 단계, 및 상기 후보 배열 요소들을 수명 유사성을 바탕으로 복수 개의 클러스터들로 분류하고, 상기 분류된 클러스터들을 상기 캐시 메모리에 할당하는 단계를 포함하는 것을 특징으로 한다. 스크래치 패드 메모리, 클러스터, 프로파일링, 메모리 할당
Abstract:
본 발명은 프로세서에서 소스 코드를 입력받아 목적 코드를 생성하는 방법에 관한 것으로서, 특히 이종 레지스터 아키텍처를 갖는 프로세서에서 목적 코드를 생성함에 있어서, 상기 아키텍처의 특성을 고려하여 명령어의 오퍼랜드가 저장될 위치를 명령어의 용도에 따라 분류되는 레지스터 클래스로 지정함으로써 불필요하게 생성되는 메모리 스필을 방지할 수 있는 코드 생성 방법에 관한 것이다. 본 발명에 따른 코드 생성 방법은, [n,∞] 모델 형태의 이종 레지스터 아키텍처를 갖는 프로세서에서 소스 코드를 입력받아 목적 코드를 생성하는 방법에 있어서, 추상적 구조 트리에서 노드의 계산 결과를 명령어의 용도에 따라 논리적으로 분류되는 레지스터 클래스에 저장하기 위해 필요한 비용을 나타내는 복수 개의 필드들을 포함하는 비용 리스트를 노드 전체에 대해 산출하는 단계, 및 상기 산출된 비용 리스트에 나타난 필드 비용을 바탕으로 상기 추상적 구조 트리를 구성하는 각각의 노드에 대응하는 명령어의 오퍼랜드가 저장될 레지스터 클래스를 상기 노드 전체에 대해 결정하는 단계를 포함하는 것을 특징으로 한다. 이종 레지스터 아키텍처, 추상적 구조 트리, 레지스터 클래스