KR19990079979A - Frame Cache Approach to Reduce Processor Access Time in Multithreading - Google Patents

Frame Cache Approach to Reduce Processor Access Time in Multithreading Download PDF

Info

Publication number
KR19990079979A
KR19990079979A KR1019980012899A KR19980012899A KR19990079979A KR 19990079979 A KR19990079979 A KR 19990079979A KR 1019980012899 A KR1019980012899 A KR 1019980012899A KR 19980012899 A KR19980012899 A KR 19980012899A KR 19990079979 A KR19990079979 A KR 19990079979A
Authority
KR
South Korea
Prior art keywords
frame
processor
cache
frames
area
Prior art date
Application number
KR1019980012899A
Other languages
Korean (ko)
Inventor
최종필
Original Assignee
김영환
현대전자산업 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영환, 현대전자산업 주식회사 filed Critical 김영환
Priority to KR1019980012899A priority Critical patent/KR19990079979A/en
Publication of KR19990079979A publication Critical patent/KR19990079979A/en

Links

Abstract

본 발명은 시스템 (system)안에 여러개의 스레드(thread)를 운영하면서 프로세서(processor)의 이용률과 작업 처리율을 향상시키기 위해 캐쉬 메모리의 영역을 2개로 구분하여 순차적으로 처리하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 관한 것으로서, 프레임 스케쥴링(frame scheduling)에 기반한 선반입 방식을 이용한 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 있어서, 상기 프로세서(processor)가 프레임을 호출시 다수의 프레임 중에서 임의의 프레임들은 현재 프로세서에 의해서 엑세스(access)시 실행 가능한 상태에 있게 되며, 이러한 실행 가능한 상태에 있는 프레임의 집합은 프레임 내부의 준비된 우선 순위에 따라서 프레임의 연결 포인터(pointer)에 의해 수행 순서가 정해지게 되어 순차적으로 프로세서가 이들의 프레임을 순차적으로 수행함으로써, 프로세서와 선반입기가 캐쉬 메모리에 접근시 서로 충돌이 발생하지 않도록 하면서도 접근시간을 감소시킬 수 있는 발명이다.The present invention provides a processor access time in a multi-threading scheme in which multiple sections of cache memory are sequentially processed in order to improve processor utilization and throughput while operating multiple threads in a system. A method of accessing a frame cache for reducing a frame cache, the method of accessing a frame cache for reducing a processor access time in a multithreading method using a prefetching method based on frame scheduling, the processor When a frame is called, arbitrary frames among the plurality of frames are currently in an executable state when accessed by the processor, and the set of frames in such an executable state is connected to the frames according to the prepared priority in the frame. Ordered by pointer It is by allowing the processor to carry out these frames in sequence to the sequence set, the invention in which the processor and the shelf wear can reduce but not to interfere with each other when accessing the cache memory access time does not occur.

Description

다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법Frame Cache Approach to Reduce Processor Access Time in Multithreading

본 발명은 다중 스레딩(multithreading) 방식에 관한 것으로써, 특히 시스템 (system)안에 여러개의 스레드(thread)를 운영하면서 프로세서(processor)의 이용률과 작업 처리율을 향상시키기 위해 캐쉬 메모리의 영역을 2개로 구분하여 순차적으로 처리하기 위한 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 관한 것이다.The present invention relates to a multithreading scheme, and in particular, divides the cache memory into two areas to improve processor utilization and throughput while operating multiple threads in the system. The present invention relates to a frame cache access method for reducing processor access time in a multi-threading scheme for sequentially processing.

일반적으로 다중스레딩 방식은 소프트웨어(software)적인 방식과 하드웨어(hardware)적인 방식으로 구분된다. 먼저 소프트웨어적인 방식은 컴파일러(compiler)를 이용하여 사용자가 프로그램(program)을 다중 스레딩 수행방식에 적합한 형태의 스레드 수행 코드(code)로 만들어서 실행하는 것이다.In general, the multithreading method is divided into a software method and a hardware method. First, the software method is to use a compiler to execute a program in a form of thread execution code suitable for a multithreading execution method.

이러한 방식의 구조는 프레임(frame) 기반 수행 구조라고 할 정도로 프레임의 역할이 중요하며, 상기 프레임에는 프로세서가 가장 많이 사용하는 지역 변수(local variable) 값이 저장되어 있으며, 그리고 스레드들 간에 데이터를 공유하는 공간이기도 하며, 그리고 병렬 처리를 위한 작업의 단위로서의 역할도 하기 때문에 프로세서가 접근시 접근 지연시간을 감소시키지 못하는 문제점이 있었다.This type of structure is so important that the role of a frame is called a frame-based performance structure. The frame stores local variable values that are most used by the processor, and shares data among threads. It also serves as a unit of work for parallel processing, and because there is a problem that the processor does not reduce the access latency when accessing.

그러나 상기와 같이 프로세서가 프레임 데이터에 접근하는 시간을 감소시키기 위한 방법으로 캐쉬 메모리(cache memory)를 지역 메모리와 프로세서 사이에 연결할 수 있으나, 이런 경우 캐쉬 메모리에 접근하는 성공률을 높이기 위해서 프로세서가 수행될 프레임들의 수행 순서인 스케쥴링(scheduling) 정보가 프레임 구조안에 준비큐(queue)의 형태로 포함되어 있어서, 현재 프레임에 대한 작업이 수행중일 때 준비큐상에서 다음 프레임을 선반입하여 프레임 캐쉬에 미리 적재시키게 된다.However, as described above, the cache memory may be connected between the local memory and the processor as a method for reducing the time for the processor to access the frame data. In this case, the processor may be executed to increase the success rate of accessing the cache memory. Scheduling information, which is the order of execution of the frames, is included in the form of a ready queue in the frame structure so that when the current frame is being performed, the next frame is loaded on the ready queue and loaded into the frame cache in advance. do.

그러나 이때 상기 프로세서는 캐쉬 메모리에 저장된 데이터에 접근하고, 동시에 선반입기도 선반입을 위해 캐쉬 메모리에 접근할 경우 상기 캐쉬 메모리는 두가지를 동시에 처리할 수 없게되어 충돌이 발생하는 문제점이 있었으며, 그리고 현재 프레임과 선반입될 캐쉬 메모리의 영역이 중복될 경우에는 선반입 작업에 의해 현재 프레임의 유효한 데이터가 캐쉬 메모리에서 축출되는 문제점이 있었다.However, at this time, when the processor accesses data stored in the cache memory and at the same time accesses the cache memory for preloading, the cache memory cannot handle both simultaneously and there is a problem that a collision occurs, and the current frame When the area of the cache memory to be inserted and the data is overlapped, there is a problem that the valid data of the current frame is evicted from the cache memory by the preload operation.

상기와 같은 종래의 문제점을 해소하기 위한 것으로 본 발명의 목적은, 프로세서와 지역 메모리 사이에 연결되어 있는 캐쉬 메모리를 두 개의 메모리 영역으로 구분하여 서로 독립적으로 동작하도록 함으로써 프로세서와 선반입기가 접근시 서로 충돌이 발생하지 않도록 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법을 제공하는데 있다.An object of the present invention is to solve the above problems, the cache memory connected between the processor and the local memory divided into two memory areas to operate independently of each other by the processor and the preloader approach each other It is to provide a frame cache approach to reduce the processor access time in a multi-threading scheme to avoid collisions.

상기와 같은 목적을 달성하기 위한 본 발명의 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법은, 셋탑박스의 위성신호 제어장치는, 프레임 스케쥴링(frame scheduling)에 기반한 선반입 방식을 이용한 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 있어서, 상기 프로세서(processor)가 프레임을 호출시 다수의 프레임 중에서 임의의 프레임들은 현재 프로세서에 의해서 엑세스(access)시 실행 가능한 상태에 있게 되며, 이러한 실행 가능한 상태에 있는 프레임의 집합은 프레임 내부의 준비된 우선 순위에 따라서 프레임의 연결 포인터(pointer)에 의해 수행 순서가 정해지게 되어 순차적으로 프로세서가 이들의 프레임을 순차적으로 수행하는 것을 특징으로 한다.In the multi-threading method of the present invention for achieving the above object, an access method of the frame cache for reducing the processor access time, the satellite signal control apparatus of the set-top box, the pre-input method based on frame scheduling (frame scheduling) In the method of accessing a frame cache to reduce the processor access time in the multi-threading scheme used, when the processor calls a frame, arbitrary frames among a plurality of frames are currently executable upon access by the current processor. The set of frames in such an executable state is determined by the connection pointers of the frames according to the prepared priorities within the frames so that the processor sequentially executes the frames. It features.

도 1은 본 발명의 다중 스레딩 방식에서 프레임 캐쉬의 접근 방법에 대한 흐름도이며,1 is a flowchart illustrating a method of accessing a frame cache in a multi-threading scheme of the present invention.

도 2는 본 발명의 캐쉬 메모리가 교대로 동작하는 과정을 도시한 개략도이다.2 is a schematic diagram showing a process of alternately operating the cache memory of the present invention.

이하, 본 발명 "다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법"의 기술적 사상에 따른 실시예를 들어 그 구성 및 동작을 첨부된 도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, with reference to the accompanying drawings, the configuration and operation of the embodiment according to the spirit of the present invention "method of the method of accessing the frame cache for reducing the processor access time in the multi-threading method" as follows.

도 1에 도시된 바와 같이, 본 발명의 다중 스레딩 방식에서 프레임 캐쉬 메모리의 접근 방법에서, 엑티베이션 트리(activation tree) 구조는 프로세서(processor)가 프레임을 호출시 생성된 프레임들이 활성화된 나무 구조의 모양을 도시하고 있으며, 다수의 프레임의 노드(node) 중에서 진하게 표시된 부분은 현재 프로세서에 의해서 엑세스(access)시 실행 가능한 상태에 있는 프레임들의 집합을 도시하고 있다.As shown in FIG. 1, in the method of accessing a frame cache memory in the multi-threading scheme of the present invention, an activation tree structure is a tree structure in which frames generated when a processor calls a frame are activated. The figure shows a darkened portion of the nodes of a plurality of frames, showing a set of frames that are currently executable upon access by the processor.

그리고 이러한 실행 가능한 상태에 있는 프레임의 집합은 프레임 내부에 이미 준비된 우선 순위에 따라서 프레임의 연결 포인터(pointer)에 의해 수행 순서가 정해지게 되어 순차적으로 프로세서가 이들의 프레임을 수행한다.The set of frames in the executable state is determined by the connection pointers of the frames according to the priorities already prepared in the frames, and the processors sequentially execute the frames.

그리고 이러한 코드 블록(code block)의 수행을 위해 활성화된 하나의 프레임 내부는 코드 블록의 시작 주소를 나타내는 코드 블록 베이스(code block base)와, 활성화되어 실행 준비 상태인 프레임들을 연결하는 레디 프레임 링크(ready frame link)와, 프레임 지역변수들을 저장하기 위한 지역 변수(local variable) 저장부와, 스레드 동기화를 위해 카운터 변수를 저장하는 동기 카운터(sync counter)부와, 실행 준비된 스레드에 대한 정보를 알수 있는 컨티뉴에이션 벡터(continuation vector)부로 구성되어 있다.The inside of one frame activated for the execution of such a code block includes a code block base indicating a start address of the code block, and a ready frame link connecting frames that are activated and ready to be executed. ready frame link), local variable storage for storing frame local variables, sync counter for storing counter variables for thread synchronization, and information on threads ready to run. It consists of a continuation vector part.

그리고 하나의 프로그램은 코드 블록(code block) 들의 모임으로 이루어지며, 하나의 코드 블록은 예를 들면, 함수 foo에 대해 스레드 코드(thread code) 부분과 메시지(message) 처리부분으로 구성되어 있으며, 이는 하나의 함수 또는 하나의 루프 몸체를 표현하게 된다.And a program consists of a collection of code blocks, one of which consists of a thread code part and a message processing part for a function foo, for example. It will represent a function or a loop body.

프로그램이 수행중에 이러한 코드블록이 수행되기 위한 데이터 영역을 제공하기 위해서 코드 영역이 한 번 불려지면 하나의 프레임이라는 구조화된 메모리 공간이 생기게 된다. 이때 상기 프레임은 구조화된 메모리 영역으로서 코드 블록이 수행되기 위한 지역 변수들을 저장하는 데이터 저장 환경을 제공한다.When a code area is called once to provide a data area for such code blocks to be executed while the program is running, there is a structured memory space called a frame. The frame is a structured memory area that provides a data storage environment for storing local variables for the code block to be executed.

본 발명의 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 사용되는 프레임 캐쉬 메모리의 접근방법은, 기존의 캐쉬 메모리에서 사용되던 접근 방법과는 달리 프레임 스케쥴링(frame scheduling)에 기반한 선반입 방식을 사용한다. 상기 프레임 캐쉬 메모리는 두 개의 독립적으로 접근되는 영역인 현재 영역과 다른 영역으로 구분한다. 여기서 말하는 현재 영역은 현재 활성화(activation)되어 수행중인 프레임을 위해서 사용되는 영역을 말하며, 다음 영역은 프레임 스케쥴링상에서 다음 프레임에 있는 데이터의 선반입을 위해서 사용되는 영역을 말한다.In the multi-threading scheme of the present invention, the frame cache memory approach used in the frame cache approach to reduce the processor access time is based on frame scheduling unlike the conventional approach used in the cache memory. Use the preload method. The frame cache memory is divided into two areas that are independently accessed, a current area and another area. Here, the current area refers to an area used for a frame currently being activated and performed, and the next area refers to an area used for prefetching data in a next frame on frame scheduling.

이와 같이, 캐쉬 메모리는 두 개의 영역으로 구분되어 있어서, 그 중 한 영역은 프로세서가 현재 수행중인 프레임의 데이터를 참조하기 위해 접근시 사용하는 영역이고, 다른 캐쉬 메모리 영역은 선반입기에 의하여 접근되어 프로세서가 다음에 수행할 데이터를 선반입하는 영역이다.As such, the cache memory is divided into two regions, one of which is an area used by the processor to refer to data of a frame currently being executed, and the other cache memory area is accessed by a preloader to process the processor. Is the area to insert the data to perform next.

또한 이러한 두 영역은 특정 프레임이 다시 활성화되는 경우에도 이전에 사용했던 캐쉬 영역의 데이터를 계속 사용할 수 있도록 하기 위해서 짝수 프레임과 홀수 프레임으로 구분하여 사용하며, 이때 상기 짝수 프레임과 홀수 프레임을 구분하는 기준은 프레임 시작 주소를 근거로 한다.In addition, these two areas are divided into even and odd frames in order to continue using the data of the cache area that was previously used even when a specific frame is reactivated. In this case, the criteria for distinguishing the even and odd frames are used. Is based on the frame start address.

이와 같이 선반입기에 의해 접근되는 영역을 그림자 캐쉬라고 부르며, 도 2는 그림자 프레임 캐쉬의 구조를 도시하고 있다.The area approached by the preload is called a shadow cache, and FIG. 2 shows the structure of the shadow frame cache.

상기와 같은 본 발명의 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 대한 작용, 효가를 기술하면 다음과 같다.In the multi-threading scheme of the present invention as described above, the operation and efficiency of the frame cache access method for reducing the processor access time will be described.

도 2에 도시된 바와 같이, 프로세서가 현재 프레임을 수행중에 프레임 캐쉬의 현재 영역에 접근하면(도 2의 굵은 실선부분), 선반입기는 준비큐상의 다음 프레임 데이터를 읽어서(도 2의 점선부분) 그림자 캐쉬의 영역인 다음 영역에 넣는다. 이와 같이, 두 영역에 대한 프로세서와 선반입기의 데이터 경로는 프로세서가 짝수 프레임에 접근하면 선반입기는 홀수 프레임에 접근함으로써 서로 독립적으로 존재하며, 문맥전환이 일어나면 두 개의 캐쉬 영역의 역할이 서로 바뀌게 되어 현재 영역에 있던 것은 다음 영역이 되어 선반입 동작을 하게 되고, 다음 영역에 있던 것은 현재 영역이 되어 캐쉬 요구에 대해 서비스를 하게 된다.As shown in Fig. 2, when the processor approaches the current area of the frame cache while executing the current frame (bold solid line in Fig. 2), the preloader reads the next frame data on the preparation queue (dotted line in Fig. 2). Put it in the next area of the shadow cache. As such, the data paths of the processor and the preloader for the two regions exist independently of each other by accessing the odd frames when the processor approaches even frames. What was in the current area becomes the next area to perform the prefetch operation, and what was in the next area becomes the current area to serve the cache request.

그리고 프로세서의 캐쉬 접근 영역도 전환되어 변경되기 전에는 현재 영역에 대한 데이터 경로를 사용하던 것이, 프레임 전환 이후에는 다음 영역에 이르는 데이터 경로를 사용하게 된다.In addition, the cache access area of the processor is also switched to use the data path for the current area before the change, after the frame switch to use the data path to the next area.

또한 상기와 같이, 선반입기의 데이터 경로도 문맥 전환시에 변경되어 하나의 프레임 데이터는 하나의 영역에만 적재되고 다음 영역에는 적재되지 않게 되므로, 두 영역에 대한 캐쉬의 일관성이 유지된다.In addition, as described above, the data path of the preloader is also changed at the time of context switching so that one frame data is loaded only in one area and not in the next area, thereby maintaining cache consistency for both areas.

그리고 만약 특정 프레임이 다시 활성화되는 경우에도 모든 프레임이 짝수 프레임과 홀수 프레임으로 구분되어 있어서, 이전에 사용했던 캐쉬 영역의 유효한 데이터를 계속 사용할 수 있게 된다.And even if a specific frame is activated again, all frames are divided into even and odd frames, so that valid data of the previously used cache area can continue to be used.

이와 같은 시작 주소를 이용하여 프레임을 홀수와 짝수로 구분하고, 캐쉬 여역도 홀수 프레임을 위한 영역과 짝수 프레임을 위한 영역으로 고정시켜서 홀수 프레임을 위한 캐쉬 영역으로 지정된 영역에는 홀수 프레임들만이 적재될 수 있도록 하고 짝수 프레임을 위한 캐쉬 영역으로 지정된 영역에는 짝수 프레임들만이 적재될 수 있도록 한다.Using this starting address, frames are divided into odd and even numbers, and the cache area is fixed to an area for odd frames and even frames, so that only odd frames can be loaded in an area designated as a cache area for odd frames. Only the even frames can be loaded in the area designated as the cache area for the even frames.

이때 만일 현재 수행중인 프레임이 작업하는 캐쉬 메모리의 영역이 홀수 프레임만을 위한 영역이라면 선반입을 위한 캐쉬 메모리 영역의 다음 영역은 짝수 프레임들만을 적재하는 영역이 된다. 따라서 이와 같이 프레임 전환때마다 갱신된 데이터를 메모리에 갱신해주지 않아도 되며 전에 사용하던 캐쉬 영역에 수정된 데이터가 남아 있는 경우에도 전과 다른 새로운 영역에서 작업을 함으로써, 캐쉬 일관성을 유지한다.At this time, if the area of the cache memory in which the currently executing frame is working is an area for odd frames only, the next area of the cache memory area for preloading is an area for loading even frames only. Therefore, the updated data does not need to be updated in the memory every frame switching, and even if the modified data remains in the previously used cache area, the cache consistency is maintained by working in a new area different from the previous one.

이러한 방법은 홀수 프레임이 수행중일 때는 이와는 반대로 짝수 프레임만이 선반입의 대상이 됨을 의미하는 것이며, 준비큐 상에는 반드시 홀수와 짝수 프레임이 번갈아 가면서 대기 상태에 있는 것이 아니므로 홀수 프레임 수행중에 다음번 프레임도 또한 홀수인 경우에는 선반입이 이루어지지 않거나, 또는 준비큐에 따라서 짝수 프레임이 나올 때까지 탐색을 해야하게 되며, 이러한 경우 프레임의 준비큐를 홀수와 짝수용으로 각각 별도로 운영하는 방법을 사용하게 되면, 홀수 프레임을 수행중일 때 짝수 준비큐에서 바로 선반입을 위한 다음 프레임을 선택할 수 있기 때문에, 준비큐가 비어있지 않는한 선반입이 수행된다.This method, on the contrary, means that only odd frames are subject to preload when an odd frame is being executed. On the preparation queue, the next frame is also performed during the odd frame since the odd and even frames are not always in standby. In addition, if the odd number is not pre-filled or the search is performed until an even frame is generated according to the preparation queue, in this case, if the preparation queue of the frame is operated separately for odd and even numbers, Since the next frame for prefetching can be selected directly from the even preparation queue when an odd frame is being performed, prefetching is performed unless the preparation queue is empty.

따라서 현재 프레임에 대한 작업이 완료되면, 도 2에 도시된 바와 같이 프레임의 전환은 캐쉬 메모리의 두 영역도 프레임의 전환과 함께 바뀌게 된다.Accordingly, when the work on the current frame is completed, as shown in FIG. 2, the switching of the frame is also changed with the switching of the two regions of the cache memory.

그리고 소프트웨어 방식에서 다중 스레딩은 스레드의 생성과 수행 구조의 제어를 위해서 컴파일러가 많은 역할을 하는데, 이때 상기 컴파일러는 상위 단계의 언어로 작성된 프로그램을 분석하여 원격 메모리 접근을 알아내고 코드를 간섭없이 순차적으로 수행할 수 있는 묶음으로 만들어서 다중스레드 수행 구조에 적합한 형태로 목적 코드 블록을 생성한다.In the software method, multithreading plays a role of a compiler for controlling the creation of threads and the execution structure. The compiler analyzes a program written in a higher level language to find a remote memory access and sequentially accesses code without interference. Creates a set of object codes in a form suitable for multithreaded execution constructs by making them into bundles that can be executed.

상기 프레임 구조안에 있는 데이터들은 한 코드블록에서 사용하는 지역변수들이고 이 데이터들은 스레드 코드(thread code)들 사이에 공유해서 사용하게 된다.The data in the frame structure are local variables used in one code block, and these data are shared among thread codes.

그리고 코드 블록은 하나의 함수 또는 반복수행되는 코드 블록을 나타내므로프레임 데이터들 간에는 일반 프로그램과 같이 지역성이 잘 나타나게 된다.In addition, since a code block represents a function or a block of code that is repeatedly executed, locality is well represented between frame data as in a general program.

또한 프로세서 수행에 기본적인 환경을 제공하는 프레임 메모리의 접근 시간을 단축시키고 변수들 간에 존재하는 지역성을 잘 이용하기 위해서는 프레임 데이터에 대한 캐쉬 메모리를 사용하는 것이 바람직하다.In addition, it is desirable to use cache memory for frame data in order to shorten the access time of frame memory that provides a basic environment for processor execution and to make good use of locality existing between variables.

상기와 같이 구성된 본 발명의 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법은, 프로세서와 지역 메모리 사이에 연결되어 있는 캐쉬 메모리를 두 개의 메모리 영역으로 구분하여 서로 독립적으로 동작하도록 함으로써 다중 스레딩 방식의 프로세서 노드(node)구조에서 캐쉬 메모리를 사용하여 프로세서와 선반입기가 캐쉬 메모리에 접근시 서로 충돌이 발생하지 않도록 하면서도 접근 시간을 단축시킴으로서, 접근 성능을 향상시킬 수 있는 발명이다.In the multi-threading scheme of the present invention configured as described above, the frame cache access method for reducing the processor access time may be performed by separating the cache memory connected between the processor and the local memory into two memory regions and operating independently of each other. In the multi-threaded processor node structure, the cache memory is used to reduce the access time while preventing the processor and the preloader from accessing the cache memory, thereby improving access performance.

Claims (13)

프레임 스케쥴링(frame scheduling)에 기반한 선반입 방식을 이용한 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법에 있어서, 상기 프로세서(processor)가 프레임을 호출시 다수의 프레임 중에서 임의의 프레임들은 현재 프로세서에 의해서 엑세스(access)시 실행 가능한 상태에 있게 되며, 이러한 실행 가능한 상태에 있는 프레임의 집합은 프레임 내부의 준비된 우선 순위에 따라서 프레임의 연결 포인터(pointer)에 의해 수행 순서가 정해지게 되어 프로세서가 이들의 프레임을 순차적으로 수행하는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.In the frame cache approach to reduce the processor access time in the multi-threading method using a frame scheduling based on frame scheduling, when the processor calls a frame, arbitrary frames among a plurality of frames are selected. The processor is in an executable state when accessed by the current processor, and the set of frames in the executable state is determined by the connection pointer of the frame according to the prepared priority in the frame. Approach to the frame cache to reduce the processor access time in the multi-threading method characterized in that to perform their frames sequentially. 제 1항에 있어서, 상기 활성화된 하나의 프레임 내부는 코드 블록의 시작 주소를 나타내는 코드 블록 베이스(code block base)와, 활성화되어 실행 준비 상태인 프레임들을 연결하는 레디 프레임 링크(ready frame link)와, 프레임 지역변수들을 저장하기 지역 변수(local variable) 저장부와, 스레드 동기화를 위해 카운터 변수를 저장하는 동기 카운터(sync counter)부와, 실행 준비된 스레드에 대한 정보를 알수 있는 컨티뉴에이션 벡터(continuation vector)부로 이루어져 있는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.The method of claim 1, wherein the inside of the active frame includes a code block base indicating a start address of a code block, a ready frame link connecting frames that are activated and ready to be executed. A local variable storage for storing frame local variables, a sync counter for storing counter variables for thread synchronization, and a continuation vector for information about threads ready to run. Approach to the frame cache for reducing the processor access time in the multi-threading method characterized in that consisting of. 제 1항에 있어서, 상기 코드 블록은 하나의 프로그램을 형성하기 위해 다수개로 이루어진 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.2. The method of claim 1, wherein the code block comprises a plurality of code blocks to form one program. 제 3항에 있어서, 상기 하나의 코드 블록 베이스는 하나의 함수에 대해 스레드 코드(thread code) 부분과 메시지(message) 처리부분으로 구성되어 있는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.4. The method of claim 3, wherein the one code block base is composed of a thread code portion and a message processing portion for one function. Frame cache approach. 제 4항에 있어서, 상기 프레임 캐쉬 메모리는 두 개의 독립적으로 접근되는 영역인 현재 영역과 다음 영역으로 구분되는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.5. The method of claim 4, wherein the frame cache memory is divided into two independently accessed regions, a current region and a next region. 6. 제 5항에 있어서, 상기 현재 영역은 현재 활성화(activation)되어 수행중인 프레임을 위해서 사용되는 영역인 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.6. The method of claim 5, wherein the current area is an area used for a frame currently being activated and executed. 제 5항에 있어서, 상기 다음 영역은 프레임 스케쥴링상에서 다음 프레임에 있는 데이터의 선반입을 위해서 사용되는 영역인 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.6. The method of claim 5, wherein the next area is an area used for prefetching data in a next frame on frame scheduling. 제 항에 있어서, 상기 현재 영역과 다음 영역은 특정 프레임이 다시 활성화되는 경우에도 이전에 사용했던 캐쉬 영역의 데이터를 계속 사용할 수 있도록 하기 위해서 짝수 프레임과 홀수 프레임으로 구분하여 사용하는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.The method of claim 2, wherein the current area and the next area are divided into even and odd frames in order to continue using data of a previously used cache area even when a specific frame is activated again. Frame cache approach to reduce processor access time in threading. 제 8항에 있어서, 상기 짝수 프레임과 홀수 프레임은 프레임 시작 주소(base address)를 기준으로 시작하는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.10. The method of claim 8, wherein the even and odd frames start based on a base address of a frame. 제 8항에 있어서, 상기 프로세서가 현재 프레임을 수행중에 프레임 캐쉬의 현재 영역에 접근하면(굵은 실선부분), 선반입기는 준비큐상의 다음 프레임 데이터를 읽어서(점선부분) 그림자 캐쉬의 영역인 다음 영역에 넣고, 이와는 반대로 프로세서가 짝수 프레임에 접근하면 선반입기는 홀수 프레임에 접근함으로써 서로 독립적으로 존재하는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.10. The next region of claim 8, wherein if the processor approaches the current region of the frame cache while executing the current frame (bold solid line), the prefetcher reads the next frame data on the preparation queue (dashed line) and is the region of the shadow cache. In contrast, when the processor approaches even frames, the preloader is independent of each other by accessing odd frames. The method of claiming a frame cache for reducing processor access time in a multithreading scheme. 제 10항에 있어서, 상기 선반입기의 데이터 경로는 문맥 전환시에 변경되어 하나의 프레임 데이터는 하나의 영역에만 적재되고 다른 영역에는 적재되지 않게 되므로, 두 영역에 대한 캐쉬의 일관성이 유지되는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.11. The method according to claim 10, wherein the data path of the preloader is changed at the time of context switching so that one frame data is loaded only in one area and not in another area, thereby maintaining cache consistency for both areas. Frame cache approach to reduce processor access time in multithreading scheme. 제 11항에 있어서, 상기 캐쉬의 일관성은 한 프레임이 중단되어 준비큐에서 삭제된 경우 나중에 스레드가 다시 활성화되어 준비큐에 들어가게 되며, 이때 프레임이 준비큐의 맨 앞에 이르게 되면 프레임은 다시 스케쥴에 따라 프로세서의 접근에 의해 명령을 수행하게 되는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.12. The cache consistency of claim 11 is that if one frame is interrupted and deleted from the ready queue, later the thread is reactivated and enters the ready queue. The method of the frame cache for reducing the processor access time in the multi-threading method characterized in that the instruction is executed by the access of the processor. 제 1항에 있어서, 상기 다중 스레딩은 스레드의 생성과 수행 구조의 제어를 위해서 컴파일러(compiler)가 사용되는 것을 특징으로 하는 다중 스레딩 방식에서 프로세서 접근시간을 감소시키기 위한 프레임 캐쉬의 접근 방법.The method of claim 1, wherein a compiler is used to control a thread creation and a performance structure of the multithreading. 3.
KR1019980012899A 1998-04-10 1998-04-10 Frame Cache Approach to Reduce Processor Access Time in Multithreading KR19990079979A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980012899A KR19990079979A (en) 1998-04-10 1998-04-10 Frame Cache Approach to Reduce Processor Access Time in Multithreading

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980012899A KR19990079979A (en) 1998-04-10 1998-04-10 Frame Cache Approach to Reduce Processor Access Time in Multithreading

Publications (1)

Publication Number Publication Date
KR19990079979A true KR19990079979A (en) 1999-11-05

Family

ID=65860841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980012899A KR19990079979A (en) 1998-04-10 1998-04-10 Frame Cache Approach to Reduce Processor Access Time in Multithreading

Country Status (1)

Country Link
KR (1) KR19990079979A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100391513B1 (en) * 2001-05-15 2003-07-12 주식회사 넷마블 method for decreasing network bottleneck through Multi-thread
KR100466726B1 (en) * 2000-06-20 2005-01-24 인터내셔널 비지네스 머신즈 코포레이션 Method of using a distinct flow of computational control as a reusable abstract data object

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100466726B1 (en) * 2000-06-20 2005-01-24 인터내셔널 비지네스 머신즈 코포레이션 Method of using a distinct flow of computational control as a reusable abstract data object
KR100391513B1 (en) * 2001-05-15 2003-07-12 주식회사 넷마블 method for decreasing network bottleneck through Multi-thread

Similar Documents

Publication Publication Date Title
US4530049A (en) Stack cache with fixed size stack frames
US7058636B2 (en) Method for prefetching recursive data structure traversals
JP4566737B2 (en) Memory region based prefetching
JP3231571B2 (en) Ordered multi-thread execution method and its execution device
EP1208425A2 (en) Computer system, computer-readable storage medium and method of operating same, and method of operating that system
US5838945A (en) Tunable software control of harvard architecture cache memories using prefetch instructions
US20030105927A1 (en) Method for use of stack
US5408658A (en) Self-scheduling parallel computer system and method
Hum et al. Building multithreaded architectures with off-the-shelf microprocessors
JPS62152043A (en) Control system for instruction code access
JPH06348595A (en) Cache device
US20050066302A1 (en) Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads
US7089557B2 (en) Data processing system and method for high-efficiency multitasking
Nikhil A multithreaded implementation of Id using P-RISC graphs
JP6400296B2 (en) Multi-mode support processor and processing method for supporting multi-mode
JPH05282266A (en) Self-organizing parallel computer system and its method
KR920003474B1 (en) Data processing apparatus
US8769547B2 (en) Reduced data transfer during processor context switching
US6260191B1 (en) User controlled relaxation of optimization constraints related to volatile memory references
KR19990079979A (en) Frame Cache Approach to Reduce Processor Access Time in Multithreading
US6092153A (en) Subsettable top level cache
US5197131A (en) Instruction buffer system for switching execution of current instruction to a branch or to a return from subroutine
KR100594256B1 (en) Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
JPH0830562A (en) Multiprocessor system
KR19990079982A (en) Frame Cache Scheduling Device

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination