KR101294629B1 - Brench predictor replacement method for 3D muticore processors and 3D muticore processors thereof - Google Patents
Brench predictor replacement method for 3D muticore processors and 3D muticore processors thereof Download PDFInfo
- Publication number
- KR101294629B1 KR101294629B1 KR1020110087625A KR20110087625A KR101294629B1 KR 101294629 B1 KR101294629 B1 KR 101294629B1 KR 1020110087625 A KR1020110087625 A KR 1020110087625A KR 20110087625 A KR20110087625 A KR 20110087625A KR 101294629 B1 KR101294629 B1 KR 101294629B1
- Authority
- KR
- South Korea
- Prior art keywords
- branch predictor
- level
- processor
- core
- temperature
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000002902 bimodal effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000020169 heat generation Effects 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Abstract
본 발명은 3차원 멀티코어 프로세서의 분기예측기 배치방법 및 3차원 멀티코어 프로세서에 관한 것으로, 보다 구체적으로는 분기예측기를 복잡도 별로 구분하여 높은 동작온도를 갖는 프로세서 코어에는 복잡도가 낮은 분기예측기를 배치하고, 낮은 동작온도를 갖는 프로세서 코어에는 복잡도가 높은 분기예측기를 배치함으로써 분기 예측기의 정확도 하락은 최소화하면서도 저 온도로 분기예측기를 동작하게 할 수 있는 3차원 멀티코어 프로세서의 분기예측기 배치방법 및 3차원 멀티코어 프로세서에 관한 것이다.The present invention relates to a branch predictor arrangement method and a three-dimensional multicore processor of the three-dimensional multi-core processor, and more specifically, the branch predictor is classified by complexity and the branch predictor having a low complexity is arranged in a processor core having a high operating temperature. The branch predictor placement method of the three-dimensional multicore processor and the three-dimensional multi-processor which can operate the branch predictor at a low temperature while minimizing the drop in accuracy of the branch predictor by placing a highly complex branch predictor in a processor core having a low operating temperature Relates to a core processor.
Description
본 발명은 3차원 멀티코어 프로세서의 분기예측기 배치방법 및 3차원 멀티코어 프로세서에 관한 것으로, 보다 구체적으로는 분기예측기를 복잡도 별로 구분하여 높은 동작온도를 갖는 프로세서 코어에는 복잡도가 낮은 분기예측기를 배치하고, 낮은 동작온도를 갖는 프로세서 코어에는 복잡도가 높은 분기예측기를 배치함으로써 분기 예측기의 정확도 하락은 최소화하면서도 저 온도로 분기예측기를 동작하게 할 수 있는 3차원 멀티코어 프로세서의 분기예측기 배치방법 및 3차원 멀티코어 프로세서에 관한 것이다.
The present invention relates to a branch predictor arrangement method and a three-dimensional multicore processor of the three-dimensional multi-core processor, and more specifically, the branch predictor is classified by complexity and the branch predictor having a low complexity is arranged in a processor core having a high operating temperature. The branch predictor placement method of the three-dimensional multicore processor and the three-dimensional multi-processor which can operate the branch predictor at a low temperature while minimizing the drop in accuracy of the branch predictor by placing a highly complex branch predictor in a processor core having a low operating temperature Relates to a core processor.
최근 고성능의 프로세서들은 명령어 수준의 병렬성을 최대한 높이기 위해 분기예측을 통한 추론적 수행(Speculative execution) 기법으로 명령어를 인출한다.Recently, high-performance processors fetch instructions using speculative execution through branch prediction to maximize instruction-level parallelism.
여기서 추론적 수행 기법의 효율성을 결정하는 가장 중요한 핵심 요소 중 하나는 분기 예측기의 정확도이다.One of the most important key factors in determining the efficiency of inferential performance is the accuracy of the branch predictor.
분기 예측기의 정확도가 높을수록 최소한의 분기예측 실패를 통해 높은 명령어 병렬성을 유지할 수 있으므로 프로세서의 성능 향상을 보장할 수 있고, 추가적인 전력 낭비를 방지할 수 있으므로 효율적인 제어를 수행할 수 있다.The higher the accuracy of the branch predictor, the higher the instruction parallelism with minimal branch prediction failures, which ensures better processor performance and prevents additional power dissipation, resulting in efficient control.
한편, 분기예측기의 구조는 복잡해 질수록 높은 정확도의 분기예측을 수행하여 프로세서의 성능을 향상시킬 수 있으나 온도 관리 측면에 있어서는 문제점을 발생시킬 수 있다.On the other hand, as the structure of the branch predictor becomes more complex, the performance of the processor may be improved by performing the branch prediction with high accuracy, but may cause problems in terms of temperature management.
도 1은 일반적인 3차원 멀티코어 프로세서의 구조를 보여주는 도면이다.1 is a view showing the structure of a typical three-dimensional multicore processor.
도 1을 참조하면 일반적인 3차원 멀티코어 프로세서(10)는 복수 개의 프로세서 코어(11,12,13,14)가 수직으로 다이(die)로 적층되어 구성된다.Referring to FIG. 1, a general three-dimensional
또한, 도 2는 각 프로세서 코어(11,12,13,14)의 프로세서 유닛 배치를 보여주는 것으로 분기 예측기는 'Bpred' 유닛(11a)에 탑재된다.FIG. 2 also shows the processor unit arrangement of each
즉, 3차원 멀티코어 프로세서(10)의 분기 예측기들은 수직선상에 배치되므로 전력밀도가 매우 증가하여 복잡도가 높은 고성능의 분기 예측기가 탑재될 경우 심각한 온도 상승으로 오히려 분기예측의 정확도가 낮아질 수 있는 문제점이 있다.
That is, since the branch predictors of the 3D
본 발명자들은 3차원 멀티코어 프로세서의 온도를 낮춰 성능을 크게 향상시킬 수 있는 3차원 멀티코어 프로세서의 분기 예측기 배치방법 및 3차원 프로세서 코어를 연구 노력한 결과, 분기 예측기를 복잡도 별로 각 프로세서 코어에 차등배치 함으로써 저 온도로 분기 예측을 수행할 수 있는 기술적 구성을 개발하게 되어 본 발명을 완성하게 되었다.The present inventors have studied the method of arranging the branch predictor of the three-dimensional multicore processor and the three-dimensional processor core that can greatly improve the performance by lowering the temperature of the three-dimensional multicore processor. As a result, the branch predictor is differentially assigned to each processor core by complexity. As a result, a technical configuration capable of performing branch prediction at low temperature has been completed.
따라서, 본 발명의 목적은 저 온도로 분기 예측을 수행하여 프로세서의 성능을 매우 향상시킬 수 있는 3차원 프로세서 코어의 분기 예측기 배치방법 및 3차원 프로세서 코어를 제공하는 것이다.
Accordingly, an object of the present invention is to provide a branch predictor arrangement method and a three-dimensional processor core of a three-dimensional processor core that can perform the branch prediction at a low temperature to significantly improve the performance of the processor.
본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.
상기의 목적을 달성하기 위하여 본 발명은 적어도 두 개의 프로세서 코어가 적층되어 구성되는 3차원 멀티코어 프로세서의 분기 예측기 배치방법으로써, 배치할 분기 예측기를 복잡도 별로 구분하여, 복수 개의 분기 예측기 교체레벨을 생성하는 단계; 상기 프로세서 코어들의 분기 예측기 온도를 구간별로 구분하고, 각 구간 온도와 일정한 분기 예측기 교체레벨을 서로 대응시킨 분기 예측기 교체테이블을 생성하는 단계; 상기 각 프로세서 코어에 구비된 분기 예측기의 동작온도를 측정하는 단계; 및 동작온도가 임계온도 이상인 대상 프로세서 코어가 있을 경우, 상기 동작온도에 해당하는 분기 예측기 교체레벨을 검색하고, 검색된 분기 예측기 교체레벨의 복잡도가 상기 대상 프로세서 코어의 분기 예측기 레벨의 복잡도보다 낮을 경우, 상기 대상 프로세서 코어의 분기 예측기를 확인된 분기 예측기 교체레벨의 분기 예측기로 교체하여 배치하는 단계;를 포함하는 것을 특징으로 하는 3차원 멀티코어 프로세서의 분기 예측기 배치방법을 제공한다.In order to achieve the above object, the present invention provides a method of arranging branch predictors of a three-dimensional multicore processor in which at least two processor cores are stacked to generate a plurality of branch predictor replacement levels by dividing branch predictors to be arranged by complexity. Making; Dividing the branch predictor temperatures of the processor cores by the section, and generating a branch predictor replacement table corresponding to each section temperature and a constant branch predictor replacement level; Measuring an operating temperature of a branch predictor provided in each of the processor cores; And searching for a branch predictor replacement level corresponding to the operating temperature when there is a target processor core whose operating temperature is greater than or equal to a threshold temperature, and when the complexity of the found branch predictor replacement level is lower than that of the branch predictor level of the target processor core, And replacing the branch predictor of the target processor core with a branch predictor of the identified branch predictor replacement level, and arranging the branch predictor for the three-dimensional multicore processor.
바람직한 실시예에 있어서, 상기 복잡도는 분기 예측기의 용량으로 구분된다.In a preferred embodiment, the complexity is divided by the capacity of the branch predictor.
바람직한 실시예에 있어서, 상기 분기 예측기 교체테이블은 온도가 가장 높은 구간 온도에 용량이 가장 적은 분기 예측기 교체레벨을 서로 대응시키고, 온도가 낮은 구간 온도 순으로 용량이 큰 순의 분기 예측기 교체레벨을 대응시켜 생성한다.In a preferred embodiment, the branch predictor replacement table corresponds to a branch predictor replacement level having the lowest capacity at a section temperature having the highest temperature, and corresponds to a branch predictor replacement level in order of a section having the lowest temperature. To create it.
바람직한 실시예에 있어서, 상기 배치할 분기 예측기는 컴바인드 분기 예측기(Combined Branch Predictor)이고, 상기 분기 예측기 교체레벨은 아래의 표1과 같이 제1 레벨에서 제5 레벨까지의 다섯 개의 분기 예측기 교체레벨로 생성된다.In a preferred embodiment, the branch predictor to be deployed is a combined branch predictor, and the branch predictor replacement level is five branch predictor replacement levels from the first level to the fifth level as shown in Table 1 below. Is generated.
바람직한 실시예에 있어서, 상기 임계 온도는 '90℃'이며, 상기 구간 온도들은 '100℃'이상인 제1 구간 온도, '95℃'이상 '100℃' 미만인 제2 구간 온도 및 '90℃'이상 '95℃' 미만인 제3 구간 온도로 구분되고, 상기 분기 예측기 배치 테이블은 상기 제1 구간 온도와 상기 제5 레벨, 상기 제2 구간 온도와 상기 제4 레벨, 상기 제3 구간 온도와 상기 제3 레벨이 각각 대응되어 생성된다.In a preferred embodiment, the critical temperature is '90 ℃ ', the interval temperatures are the first interval temperature of more than' 100 ℃ ', the second interval temperature of more than '95 ℃' and less than '100 ℃' and '90 ℃ ' Divided into a third interval temperature less than '95 ° C., and the branch predictor placement table includes the first interval temperature and the fifth level, the second interval temperature and the fourth level, the third interval temperature, and the third interval temperature. Levels are created corresponding to each other.
또한, 본 발명은 상기 3차원 프로세서 코어의 분기 예측기 배치 방법으로 제작되고, 네 개의 프로세서 코어가 적층된 3차원 쿼드코어 프로세서로써, 상기 프로세서 코어들 중 제0 레이어(Layer)와 제1 레이어의 프로세서 코어에는 상기 제5 레벨의 분기 예측기가 배치되고, 제2 레이어의 프로세서 코어에는 상기 제4 레벨의 분기 예측기가 배치되고, 제3 레이어의 프로세서 코어에는 상기 제1 레벨의 분기 예측기가 배치된 것을 특징으로 하는 3차원 쿼드코어 프로세서를 더 제공한다.In addition, the present invention is a three-dimensional quad-core processor fabricated by the method of arranging the branch predictor of the three-dimensional processor core, four processor cores stacked, the processor of the first layer (Layer) and the first layer of the processor cores A branch predictor of the fifth level is disposed in the core, the branch predictor of the fourth level is disposed in the processor core of the second layer, and the branch predictor of the first level is disposed in the processor core of the third layer. It further provides a three-dimensional quad-core processor.
또한, 본 발명은 상기 3차원 프로세서 코어의 분기 예측기 배치 방법으로 제작되고, 네 개의 프로세서 코어가 적층된 3차원 쿼드코어 프로세서로써, 상기 프로세서 코어들 중 제0 레이어와 제1 레이어의 프로세서 코어에는 상기 제5 레벨의 분기 예측기가 배치되고, 제2 레이어의 프로세서 코어에는 상기 제3 레벨의 분기 예측기가 배치되고, 제3 레이어의 프로세서 코어에는 상기 제1 레벨의 분기 예측기가 배치된 것을 특징으로 하는 3차원 쿼드코어 프로세서를 더 제공한다.In addition, the present invention is a three-dimensional quad-core processor fabricated by the branch predictor placement method of the three-dimensional processor core, four processor cores are stacked, the processor cores of the 0th layer and the first layer of the processor core A branch predictor of a fifth level is disposed, a branch predictor of the third level is disposed in a processor core of a second layer, and a branch predictor of the first level is disposed in a processor core of a third layer It also provides more dimensional quad-core processors.
또한, 본 발명은 상기 3차원 프로세서 코어의 분기 예측기 배치 방법으로 제작되고, 네 개의 프로세서 코어가 적층된 3차원 쿼드코어 프로세서로써, 상기 프로세서 코어들 중 제0 레이어의 프로세서 코어에는 상기 제5 레벨의 분기 예측기가 배치되고, 제1 레이어의 프로세서 코어에는 상기 제4 레벨의 분기 예측기가 배치되고, 제2 레이어의 프로세서 코어에는 상기 제3 레벨의 분기 예측기가 배치되고, 제3 레이어의 프로세서 코어에는 상기 제1 레벨의 분기 예측기가 배치되는 것을 특징으로 하는 3차원 쿼드코어 프로세서를 더 제공한다.In addition, the present invention is a three-dimensional quad-core processor fabricated by the branch predictor placement method of the three-dimensional processor core, four processor cores are stacked, the processor core of the 0th layer of the processor cores of the fifth level A branch predictor is disposed, a branch predictor of the fourth level is disposed in the processor core of the first layer, a branch predictor of the third level is disposed in the processor core of the second layer, and the processor core of the third layer is It further provides a three-dimensional quad-core processor, characterized in that the first level branch predictor is arranged.
또한, 본 발명은 상기 3차원 멀티코어 프로세서의 분기 예측기 배치 방법으로 제작된 3차원 멀티코어 프로세서를 더 제공한다.
The present invention also provides a three-dimensional multi-core processor manufactured by the branch predictor placement method of the three-dimensional multi-core processor.
본 발명은 다음과 같은 우수한 효과를 가진다.The present invention has the following excellent effects.
먼저, 본 발명의 3차원 멀티코어 프로세서의 분기예측기 배치방법 및 3차원 멀티코어 프로세서에 의하면 높은 동작온도를 갖는 프로세서 코어에는 발열량이 적은 복잡도가 낮은 분기예측기를 배치하고 낮은 동작온도를 갖는 프로세서 코어에는 발열량이 큰 복잡도가 높은 분기예측기를 배치하여 저온도로 동작하게 함으로써 분기예측의 정확도를 향상시키고 프로세서의 성능을 높일 수 있다.
First, according to the method of arranging the branch predictor of the three-dimensional multicore processor and the three-dimensional multicore processor of the present invention, a low complexity low branch predictor is arranged in a processor core having a high operating temperature and a processor core having a low operating temperature. By arranging a highly complex branch predictor with high heat generation to operate at low temperatures, the accuracy of branch prediction can be improved and the performance of the processor can be improved.
도 1은 일반적인 3차원 멀티코어 프로세서의 구조를 보여주는 도면,
도 2는 일반적인 프로세서 코어의 프로세서 유닛의 배치를 보여주는 도면,
도 3은 일반적인 3차원 멀티코어 프로세서의 분기 예측기 배치를 보여주는 도면,
도 4는 본 발명의 일 실시예에 따른 3차원 멀티코어 프로세서의 배치방법의 흐름도,
도 5는 본 발명의 일 실시예에 따른 3차원 멀티코어 프로세서의 배치방법으로 제작된 3차원 쿼드코어 프로세서를 보여주는 도면이다.1 is a view showing the structure of a typical three-dimensional multicore processor,
2 is a diagram illustrating an arrangement of processor units of a general processor core;
3 illustrates a branch predictor arrangement of a typical three-dimensional multicore processor;
4 is a flowchart of a method of arranging a 3D multicore processor according to an embodiment of the present invention;
5 is a diagram illustrating a three-dimensional quad-core processor manufactured by a method of arranging a three-dimensional multicore processor according to an embodiment of the present invention.
본 발명에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 특정한 경우는 출원인이 임의로 선정한 용어도 있는데 이 경우에는 단순한 용어의 명칭이 아닌 발명의 상세한 설명 부분에 기재되거나 사용된 의미를 고려하여 그 의미가 파악되어야 할 것이다.Although the terms used in the present invention have been selected as general terms that are widely used at present, there are some terms selected arbitrarily by the applicant in a specific case. In this case, the meaning described or used in the detailed description part of the invention The meaning must be grasped.
이하, 첨부한 도면에 도시된 바람직한 실시예들을 참조하여 본 발명의 기술적 구성을 상세하게 설명한다.Hereinafter, the technical structure of the present invention will be described in detail with reference to preferred embodiments shown in the accompanying drawings.
그러나, 본 발명은 여기서 설명되는 실시예에 한정되지 않고 다른 형태로 구체화 될 수도 있다. 명세서 전체에 걸쳐 동일한 참조번호는 동일한 구성요소를 나타낸다.
However, the present invention is not limited to the embodiments described herein but may be embodied in other forms. Like reference numerals designate like elements throughout the specification.
도 3을 참조하면, 일반적인 3차원 멀티 코어 프로세서(10,3차원 쿼드코어 프로세서)의 각 프로세서 코어에 배치되는 분기 예측기들(11a,11b,11c,11d)은 서로 동일한 수직선상에 배치되고, 다섯 가지의 분기 예측기 배치조합으로 이루어진다. Referring to FIG. 3,
또한, 상기 분기 예측기 배치조합은 첫 번째, 제1 레벨의 복잡도를 갖는 동일한 분기 예측기들이 각 프로세서 코어에 탑재되는 제1 배치조합(a), 두 번째, 제0 레이어의 프로세서 코어(11)의 분기 예측기(11a)는 제2 레벨의 복잡도를 갖는 분기 예측기를 배치하고, 제1 내지 제3 레이어의 프로세서 코어들(12,13,14)의 분기 예측기들(11b,11c,11d)은 제1 레벨의 복잡도를 갖는 분기 예측기를 배치한 제2 배치조합(b), 세 번째, 제0 및 제1 레이어의 프로세서 코어(11,12)에는 제2 레벨의 복잡도를 갖는 분기 예측기를 배치하고, 제2 및 제3 레이어의 프로세서 코어(13,14)에는 제1 레벨의 복잡도를 갖는 분기 예측기를 배치한 제3 배치조합(c), 네 번째, 제0 내지 제2 레이어의 프로세서 코어(11,12,13)에는 제2 레벨의 복잡도를 갖는 분기 예측기를 배치하고, 제3 레이어의 프로세서 코어(14)에는 제1 레벨의 복잡도를 갖는 분기 예측기를 배치한 제4 배치조합(d), 다섯 번째, 모든 레이어의 프로세서 코어(11,12,13,14)에 제2 레벨의 분기 예측기를 배치한 제5 배치조합(e)으로 이루어진다.In addition, the branch predictor batch combination includes a first batch combination (a) in which the same branch predictors having a first and first level of complexity are mounted on each processor core, and a branch of the
즉, 일반적인 분기 예측기 배치조합은 온도에 따라 분기 예측기를 차등배치하는 것이 아니므로 온도가 매우 상승하는 문제점이 있는 것이다.That is, the general branch predictor batch combination does not differentially arrange the branch predictors according to the temperature, so the temperature is very high.
또한, 제2 내지 제4의 배치조합(b,c,d)가 제1 및 제2 레벨의 복잡도를 갖는 분기 예측기가 차등배치되어 있기는 하나 이러한 배치로 온도 상승을 막을 수 없으며 온도관리를 위한 차등배치라기보다 처리 성능을 위한 배치로 볼 수 있다.In addition, although the second to fourth batch combinations (b, c, d) have branched predictors having the first and second levels of complexity, such arrangements do not prevent the temperature rise, and It can be seen as a batch for processing performance rather than a differential batch.
또한, 종래의 분기 예측기 배치조합들에 의한 프로세서 코어의 최고 온도는 아래의 표 2와 같다.In addition, the maximum temperature of the processor core by the conventional branch predictor batch combinations is shown in Table 2 below.
(a)First batch association
(a)
(b)Second batch association
(b)
(c)3rd batch association
(c)
(d)4th batch association
(d)
(e)5th batch association
(e)
상기 표 2에서도 알 수 있듯이 종래의 분기 예측기 배치조합들에서는 90도 이상의 고온이 발생하여 프로세서 코어의 성능을 하락시킬 수 있는 가능성이 있는 것이다.
As can be seen in Table 2, the conventional branch predictor batch combinations may have a high temperature of 90 degrees or more, thereby degrading the performance of the processor core.
이하에서는 본 발명의 일 실시예에 따른 3차원 멀티코어 프로세서의 분기 예측기 배치방법에 대해 상세히 설명하기로 한다.Hereinafter, a branch predictor arrangement method of a 3D multicore processor according to an embodiment of the present invention will be described in detail.
또한, 본 발명의 일 실시예에 따른 3차원 멀티코어 프로세서의 분기 예측기 배치방법은 프로그램이 컴퓨터를 수단으로 기능시켜 각 단계를 수행함으로써 자동으로 분기 예측기의 배치를 교체할 수 있다.In addition, the method of arranging branch predictors of a three-dimensional multicore processor according to an embodiment of the present invention may automatically replace the position of branch predictors by executing a function of a computer using a computer as a means.
그러나 사용자가 각 단계를 수작업으로 수행하여 분기 예측기의 배치를 교체할 수 있음은 물론이다.But of course, the user can manually perform each step to replace the placement of the branch predictor.
도 4를 참조하면, 본 발명의 일 실시예에 따른 3차원 멀티코어 프로세서의 분기 예측기 배치방법은 먼저, 배치할 분기 예측기를 복잡도 별로 구분하여, 교체할 분기 예측기인 복수 개의 분기 예측기 교체레벨을 생성한다(S1000).Referring to FIG. 4, the method of arranging branch predictors of a three-dimensional multicore processor according to an embodiment of the present invention first generates a plurality of branch predictor replacement levels, which are branch predictors to be replaced by classifying the branch predictors to be arranged by complexity. (S1000).
여기서 복잡도는 분기 예측기의 용량을 의미하며, 배치할 분기 예측기가 컴바인드 분기 예측기(Combined Branch Predictor)일 경우 아래의 표 3와 같이 제1 레벨에서 제5 레벨까지의 다섯 개의 레벨의 분기 예측기 교체레벨을 생성할 수 있다.Here, the complexity refers to the capacity of the branch predictor, and when the branch predictor to be deployed is a combined branch predictor, the branch predictor replacement levels of five levels from the first level to the fifth level are as shown in Table 3 below. Can be generated.
즉, 제1 레벨의 분기 예측기의 복잡도가 가장 크고, 제5 레벨의 분기 예측기 순으로 복잡도가 적다.That is, the complexity of the branch predictor of the first level is the largest, and the complexity is the lowest in the order of the branch predictor of the fifth level.
다음, 분기 예측기 교체테이블을 생성한다(S2000).Next, a branch predictor replacement table is generated (S2000).
상기 분기 예측기 교체테이블은 프로세서 코어의 동작온도를 일정한 온도 구간으로 구분하고 각 구간 온도에 교체하고자하는 분기 예측기 교체레벨을 서로 대응시킨 테이블이다.The branch predictor replacement table is a table in which the operating temperature of the processor core is divided into constant temperature sections and the branch predictor replacement levels to be replaced in each section temperature correspond to each other.
그러나, 상기 동작온도는 프로세서 코어의 최고 온도일 수 있다.However, the operating temperature may be the highest temperature of the processor core.
본 발명의 실시예에서는 상기 구간 온도를 '100℃'이상인 제1 구간 온도, '95℃'이상 '100℃' 미만인 제2 구간 온도 및 '90℃'이상 '95℃' 미만인 제3 구간 온도로 구분하였고, 상기 분기 예측기 교체테이블은 상기 제1 구간 온도에 복잡도가 가장 낮은 제5 레벨의 분기 예측기 교체레벨을 대응시키고, 상기 제2 구간 온도에는 한 단계 낮은 제4 레벨의 분기 예측기 교체 레벨을 대응시키고, 상기 제3 구간 온도에는 제4 레벨보다 한 단계 낮은 제3 레벨의 분기 예측기 교체 레벨을 대응시켜 생성하였다.In an embodiment of the present invention, the section temperature is set to a first section temperature of '100 ° C.' or more, a second section temperature of '95 ° C. 'or more and less than' 100 ° C. 'and a third section temperature of '90 ° C. or more' or less than '95 ° C. '. The branch predictor replacement table corresponds to the branch predictor replacement level of the fifth level having the lowest complexity and corresponds to the first interval temperature, and the branch predictor replacement level of the fourth level lower by one step to the second interval temperature. The third interval temperature is generated by matching the branch predictor replacement level of the third level one step lower than the fourth level.
즉, 온도가 낮은 구간 온도일수록 용량이 큰 분기 예측기 교체레벨을 대응시키고 온도가 높은 구간 온도일수록 용량이 적은 분기 예측기 교체레벨을 대응시키는 것이다.That is, the lower section temperature corresponds to the branch predictor replacement level with higher capacity, and the higher section temperature corresponds to the branch predictor replacement level with lower capacity.
다음, 상기 각 프로세서 코어(11,12,13,14)의 동작온도가 임계온도 이상인지 판단한다(S4000).Next, it is determined whether an operating temperature of each of the
본 발명에서는 임계온도를 '90℃'로 설정하였으며 구간 온도는 앞서 설명하였듯이 세 개의 구간 온도로 구분하였다.In the present invention, the critical temperature is set to '90 ° C 'and the section temperature is divided into three section temperatures as described above.
다음, 상기 프로세서 코어들(11,12,13,14) 중 동작온도가 임계온도 이상인 대상 프로세서 코어가 존재할 경우, 대상 프로세서 코어의 분기 예측기 복잡도가 동작온도에 대응하는 분기 예측기 교체 레벨의 복잡도보다 큰지 확인한다(S5000).Next, if there is a target processor core whose operating temperature is greater than or equal to a threshold temperature among the
예를 들어, 상기 표 2에서 제1배치조합(a)의 제0 레이어는 최고온도가 '107.36℃'이고, 제1 레벨의 복잡도를 갖는 분기 예측기가 탑재되어 있으므로 '107.36℃'에 해당하는 구간 온도인 제1 구간온도에 대응된 제5 레벨과 비교하여 제1 레벨의 분기 예측기는 교체 레벨의 분기 예측기보다 복잡도가 큰 것으로 판단한다.For example, in Table 2, the 0th layer of the first batch combination a has a maximum temperature of '107.36 ° C' and a branch predictor having a first level of complexity so that the section corresponds to '107.36 ° C'. Compared with the fifth level corresponding to the first interval temperature, which is the temperature, the branch predictor of the first level determines that the complexity is greater than that of the replacement level.
다음, 상기 대상 프로세서 코어의 분기 예측기 복잡도가 동작온도에 대응하는 분기 예측기 교체 레벨의 복잡도보다 큰 경우 분기 예측기를 교체 레벨의 분기 예측기로 교체한다(S6000).
Next, when the branch predictor complexity of the target processor core is greater than the complexity of the branch predictor replacement level corresponding to the operating temperature, the branch predictor is replaced with the branch predictor of the replacement level (S6000).
도 5는 본 발명의 일 실시예에 따른 분기 예측기 배치 방법을 이용하여 도 3에서 보인 3차원 멀티코어 프로세서의 분기 예측기(11a,11b,11c,11d)를 교체함으로써 새로운 배치조합(aa,bb,cc,dd,ee)의 분기 예측기(111,121,131,141,)를 갖는 3차원 멀티코어 프로세서(100)의 분기 예측기 배치조합을 보여주는 것이다.FIG. 5 illustrates a new batch combination (aa, bb, by replacing the
상기 제1 배치조합(a)은 제0 레이어의 분기 예측기와 제1 레이어의 분기 예측기는 각각 제5 레벨의 분기예측기로 교체하고, 제2 레이어의 분기 예측기는 제4 레벨의 분기 예측기로 교체하여 변경된다.The first batch combination a replaces the branch predictor of the 0th layer and the branch predictor of the first layer with a branch predictor of the fifth level, and the branch predictor of the second layer with a branch predictor of the fourth level. Is changed.
또한, 상기 제2 배치조합(b)은 상기 제1 배치조합(b)과 동일하게 제0 레이어의 분기 예측기와 제1 레이어의 분기 예측기는 각각 제5 레벨의 분기예측기로 교체하고, 제2 레이어의 분기 예측기는 제4 레벨의 분기 예측기로 교체하여 변경된다.In addition, the second batch combination (b) is the same as the first batch combination (b), the branch predictor of the 0 layer and the branch predictor of the first layer are each replaced with a branch predictor of the fifth level, the second layer The branch predictor of is changed to replace the branch predictor of the fourth level.
즉, 상기 제1 배치조합(a)과 상기 제2 배치조합(b)은 실질적으로 동일한 분기 예측기 배치조합으로 변경된다.That is, the first batch combination a and the second batch combination b are changed to substantially the same branch predictor batch combination.
또한, 상기 제3 배치조합(c)은 제0 레이어의 분기 예측기와 제1 레이어의 분기 예측기는 각각 제5 레벨의 분기예측기로 교체하고, 제2 레이어의 분기 예측기는 제3 레벨의 분기 예측기로 교체하여 변경된다.Further, the third batch combination c replaces the branch predictor of the 0th layer and the branch predictor of the first layer with a branch predictor of a fifth level, respectively, and the branch predictor of the second layer uses a branch predictor of a third level. It is changed by replacement.
또한, 상기 제4 배치조합(d)은 제0 레이어의 분기 예측기는 제5 레벨의 분기예측기로 교체되고, 제1 레이어의 분기 예측기는 제4 레벨의 분기 예측기로 교체되며, 제2 레이어의 분기예측기는 제3 레벨의 분기 예측기로 교체하여 변경된다.Further, in the fourth batch combination d, the branch predictor of the 0th layer is replaced with the branch predictor of the fifth level, the branch predictor of the first layer is replaced with the branch predictor of the fourth level, and the branch of the second layer The predictor is changed to replace the branch predictor of the third level.
또한, 상기 제5 배치조합(e)은 상기 제4 배치조합(d)과 동일하게 제0 레이어의 분기 예측기는 제5 레벨의 분기예측기로 교체되고, 제1 레이어의 분기 예측기는 제4 레벨의 분기 예측기로 교체되며, 제2 레이어의 분기예측기는 제3 레벨의 분기 예측기로 교체하여 변경된다.In addition, the fifth batch combination (e) is replaced with the fourth predictor (d) by the branch predictor of the 0 th layer, and the branch predictor of the fifth layer is replaced by the branch predictor of the fifth layer. The branch predictor is replaced with the branch predictor, and the branch predictor of the second layer is changed by replacing the branch predictor with the third level.
그러나 상기 제3 배치조합(d)과 상기 제5 배치조합(e)은 교체되지 않은 제3 레이어의 분기 예측기 레벨이 서로 상이하므로 서로 다른 배치조합을 갖는다.However, the third batch combination (d) and the fifth batch combination (e) have different batch combinations because the branch predictor levels of the third layer that are not replaced are different from each other.
따라서, 발열이 심한 레이어의 분기예측기를 복잡도 즉, 용량이 적은 분기 예측기로 교체함으로써 온도관리를 효과적으로 수행할 수 있어 3차원 멀티코어 프로세서의 성능을 매우 향상시킬 수 있다.
Therefore, the temperature management can be effectively performed by replacing the branch predictor of the layer with high heat generation with the branch predictor of low complexity, that is, the capacity of the 3D multicore processor can be greatly improved.
이상에서 살펴본 바와 같이 본 발명은 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation in the present invention. Various changes and modifications will be possible.
100:3차원 멀티코어 프로세서(3차원 쿼드코어 프로세서)
110,120,130,140:프로세서 코어
111,121,131,141:분기 예측기100: 3-D multicore processor (3-D quad-core processor)
110,120,130,140: processor core
111,121,131,141: Quarter Predictor
Claims (9)
배치할 분기 예측기를 복잡도 별로 구분하여, 복수 개의 분기 예측기 교체레벨을 생성하는 단계;
상기 프로세서 코어들의 분기 예측기 온도를 구간별로 구분하고, 각 구간 온도와 일정한 분기 예측기 교체레벨을 서로 대응시킨 분기 예측기 교체테이블을 생성하는 단계;
상기 각 프로세서 코어에 구비된 분기 예측기의 동작온도를 측정하는 단계; 및
동작온도가 임계온도 이상인 대상 프로세서 코어가 있을 경우, 상기 동작온도에 해당하는 분기 예측기 교체레벨을 검색하고,
검색된 분기 예측기 교체레벨의 복잡도가 상기 대상 프로세서 코어의 분기 예측기 레벨의 복잡도보다 낮을 경우,
상기 대상 프로세서 코어의 분기 예측기를 확인된 분기 예측기 교체레벨의 분기 예측기로 교체하여 배치하는 단계;를 포함하는 것을 특징으로 하는 3차원 멀티코어 프로세서의 분기 예측기 배치방법.
A branch predictor placement method of a three-dimensional multicore processor having at least two processor cores stacked on each other,
Generating a plurality of branch predictor replacement levels by dividing the branch predictors to be arranged by complexity;
Dividing the branch predictor temperatures of the processor cores by the section, and generating a branch predictor replacement table corresponding to each section temperature and a constant branch predictor replacement level;
Measuring an operating temperature of a branch predictor provided in each of the processor cores; And
If there is a target processor core whose operating temperature is greater than or equal to the threshold temperature, the branch predictor replacement level corresponding to the operating temperature is searched for;
If the complexity of the found branch predictor replacement level is lower than the complexity of the branch predictor level of the target processor core,
And replacing the branch predictor of the target processor core with a branch predictor of the identified branch predictor replacement level, and arranging the branch predictor of the target processor core.
상기 복잡도는 분기 예측기의 용량인 것을 특징으로 하는 3차원 멀티코어 프로세서의 분기 예측기 배치방법.
The method of claim 1,
The complexity is a branch predictor placement method of a three-dimensional multi-core processor, characterized in that the capacity of the branch predictor.
상기 분기 예측기 교체테이블은 온도가 가장 높은 구간 온도에 용량이 가장 적은 분기 예측기 교체레벨을 서로 대응시키고, 온도가 높은 구간 온도에서 낮은 구간 온도 순으로 용량이 큰 순의 분기 예측기 교체레벨을 대응시켜 생성하는 것을 특징으로 하는 3차원 멀티코어 프로세서의 분기 예측기 배치방법.
3. The method of claim 2,
The branch predictor replacement table is generated by matching the branch predictor replacement level with the lowest capacity to the section temperature with the highest temperature, and by matching the branch predictor replacement level with the largest capacity in order from the section temperature with the lowest temperature. A branch predictor placement method of a three-dimensional multicore processor, characterized in that the.
상기 배치할 분기 예측기는 바이모달(Bimodal) 예측기, 지쉐어(Gshare) 예측기 및 선택기(Selector)로 구성되는 컴바인드 분기 예측기(Combined Branch Predictor)이고,
상기 분기 예측기 교체레벨은 상기 컴바인드 분기 예측기의 각 구성요소가 4096[Byte]의 용량을 갖는 제1레벨, 2048[Byte]의 용량을 갖는 제2 레벨, 1024[Byte]의 용량을 갖는 제3 레벨, 512[Byte]의 용량을 갖는 제4 레벨, 256[Byte]의 용량을 갖는 제5 레벨의 다섯 개의 분기 예측기 교체레벨로 생성되는 것을 특징으로 하는 3차원 멀티코어 프로세서의 분기 예측기 배치방법.
The method according to any one of claims 1 to 3,
The branch predictor to be deployed is a combined branch predictor consisting of a bimodal predictor, a Gshare predictor, and a selector,
The branch predictor replacement level is a first level in which each component of the combined branch predictor has a capacity of 4096 [Byte], a second level having a capacity of 2048 [Byte], and a third having a capacity of 1024 [Byte]. The branch predictor placement method of the three-dimensional multi-core processor, characterized in that it is generated by the five branch predictor replacement level of the fourth level having a capacity of 512 [Byte], the fifth level having a capacity of 256 [Byte].
상기 임계 온도는 '90℃'이며, 상기 구간 온도들은 '100℃'이상인 제1 구간 온도, '95℃'이상 '100℃' 미만인 제2 구간 온도 및 '90℃'이상 '95℃' 미만인 제3 구간 온도로 구분되고,
상기 분기 예측기 교체테이블은 상기 제1 구간 온도와 상기 제5 레벨, 상기 제2 구간 온도와 상기 제4 레벨, 상기 제3 구간 온도와 상기 제3 레벨이 각각 대응되어 생성되는 것을 특징으로 하는 3차원 멀티코어 프로세서의 분기 예측기 배치방법.
The method of claim 4, wherein
The critical temperature is '90 ℃ ', the interval temperature is the first interval temperature of more than' 100 ℃ ', the second interval temperature of more than '95 ℃' less than '100 ℃' and the second temperature of '90 ℃ 'or less than '95 ℃' Divided into 3 sections temperature,
The branch predictor replacement table is generated in correspondence with the first interval temperature and the fifth level, the second interval temperature and the fourth level, and the third interval temperature and the third level, respectively. A branch predictor placement method for multicore processors.
상기 프로세서 코어들 중 제0 레이어와 제1 레이어의 프로세서 코어에는 상기 제5 레벨의 분기 예측기가 배치되고, 제2 레이어의 프로세서 코어에는 상기 제4 레벨의 분기 예측기가 배치되고, 제3 레이어의 프로세서 코어에는 상기 제1 레벨의 분기 예측기가 배치된 것을 특징으로 하는 3차원 쿼드코어 프로세서.
A three-dimensional quad-core processor manufactured by the branch predictor placement method of claim 3, wherein four processor cores are stacked.
A branch predictor of the fifth level is disposed in a processor core of a first layer and a first layer of the processor cores, and a branch predictor of the fourth level is disposed in a processor core of a second layer, and a processor of a third layer And a branch predictor of the first level is arranged in the core.
상기 프로세서 코어들 중 제0 레이어와 제1 레이어의 프로세서 코어에는 상기 제5 레벨의 분기 예측기가 배치되고, 제2 레이어의 프로세서 코어에는 상기 제3 레벨의 분기 예측기가 배치되고, 제3 레이어의 프로세서 코어에는 상기 제1 레벨의 분기 예측기가 배치된 것을 특징으로 하는 3차원 쿼드코어 프로세서.
A three-dimensional quad-core processor manufactured by the branch predictor placement method of claim 3, wherein four processor cores are stacked.
A branch predictor of the fifth level is disposed in a processor core of a first layer and a first layer of the processor cores, and a branch predictor of the third level is disposed in a processor core of a second layer, and a processor of a third layer And a branch predictor of the first level is arranged in the core.
상기 프로세서 코어들 중 제0 레이어의 프로세서 코어에는 상기 제5 레벨의 분기 예측기가 배치되고, 제1 레이어의 프로세서 코어에는 상기 제4 레벨의 분기 예측기가 배치되고, 제2 레이어의 프로세서 코어에는 상기 제3 레벨의 분기 예측기가 배치되고, 제3 레이어의 프로세서 코어에는 상기 제1 레벨의 분기 예측기가 배치되는 것을 특징으로 하는 3차원 쿼드코어 프로세서.
A three-dimensional quad-core processor manufactured by the branch predictor placement method of claim 3, wherein four processor cores are stacked.
A branch predictor of the fifth level is disposed in a processor core of a 0th layer among the processor cores, a branch predictor of the fourth level is disposed in a processor core of a first layer, and a branch predictor of the fourth layer is disposed in a processor core of a second layer. A branch predictor of three levels is arranged, and the branch predictor of the first level is arranged in a processor core of the third layer.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110087625A KR101294629B1 (en) | 2011-08-31 | 2011-08-31 | Brench predictor replacement method for 3D muticore processors and 3D muticore processors thereof |
PCT/KR2012/006693 WO2013032169A2 (en) | 2011-08-31 | 2012-08-23 | Method for arranging branch predictors of 3-dimensional multi-core processors, and the 3-dimensional multi-core processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110087625A KR101294629B1 (en) | 2011-08-31 | 2011-08-31 | Brench predictor replacement method for 3D muticore processors and 3D muticore processors thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130024279A KR20130024279A (en) | 2013-03-08 |
KR101294629B1 true KR101294629B1 (en) | 2013-08-08 |
Family
ID=47757021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110087625A KR101294629B1 (en) | 2011-08-31 | 2011-08-31 | Brench predictor replacement method for 3D muticore processors and 3D muticore processors thereof |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101294629B1 (en) |
WO (1) | WO2013032169A2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080054409A (en) * | 2005-10-26 | 2008-06-17 | 인텔 코오퍼레이션 | Cluster architecture which detects variations |
US20100146249A1 (en) | 2008-12-05 | 2010-06-10 | Intellectual Ventures Management, Llc | Control-Flow Prediction Using Multiple Independent Predictors |
KR20110075638A (en) * | 2009-12-28 | 2011-07-06 | 전남대학교산학협력단 | Processor system having low power trace cache and upcoming instruction set predictor |
-
2011
- 2011-08-31 KR KR1020110087625A patent/KR101294629B1/en active IP Right Grant
-
2012
- 2012-08-23 WO PCT/KR2012/006693 patent/WO2013032169A2/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080054409A (en) * | 2005-10-26 | 2008-06-17 | 인텔 코오퍼레이션 | Cluster architecture which detects variations |
US20100146249A1 (en) | 2008-12-05 | 2010-06-10 | Intellectual Ventures Management, Llc | Control-Flow Prediction Using Multiple Independent Predictors |
KR20110075638A (en) * | 2009-12-28 | 2011-07-06 | 전남대학교산학협력단 | Processor system having low power trace cache and upcoming instruction set predictor |
Also Published As
Publication number | Publication date |
---|---|
WO2013032169A3 (en) | 2013-04-25 |
WO2013032169A2 (en) | 2013-03-07 |
KR20130024279A (en) | 2013-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | CUGR: Detailed-routability-driven 3D global routing with probabilistic resource model | |
CN106021480B (en) | A kind of parallel spatial division methods and its system based on grid dividing | |
Xie et al. | IA-SpGEMM: An input-aware auto-tuning framework for parallel sparse matrix-matrix multiplication | |
Han et al. | Temperature aware floorplanning | |
Maruyama et al. | Optimizing stencil computations for NVIDIA Kepler GPUs | |
US10380183B2 (en) | Building and querying hash tables on processors | |
Basu et al. | Compiler generation and autotuning of communication-avoiding operators for geometric multigrid | |
US8479137B2 (en) | Apparatus and method for preventing congestive placement | |
US20230297338A1 (en) | Float Division by Constant Integer | |
KR20130083369A (en) | Word line and power conductor layout within a metal layer of a memory cell | |
KR101294629B1 (en) | Brench predictor replacement method for 3D muticore processors and 3D muticore processors thereof | |
US20150379185A1 (en) | Mask data generation method, mask data generation system, and recording medium | |
JP2010224682A (en) | Method, apparatus, and program, for arithmetic operation by simultaneous linear equations of sparse symmetric positive definite matrix | |
Liu et al. | A fast 25/6-approximation for the minimum unit disk cover problem | |
Yan et al. | Optimal slack-driven block shaping algorithm in fixed-outline floorplanning | |
CN207249584U (en) | A kind of easy-to-dismount computer heat-dissipating casing | |
CN1662911A (en) | Method for modifying design data for the production of a component and corresponding units | |
KR20090084243A (en) | Nearest neighborhood octree cell address search method for same resolution octree structure | |
CN104182407A (en) | Data processing system for narrowing data search range | |
CN103455434A (en) | Method and system for establishing cache directory | |
CN107247543A (en) | A kind of control layout method and device | |
CN114938199A (en) | Photovoltaic module serial line arrangement determining method and device, electronic equipment and storage medium | |
KR20120063340A (en) | Temperature controlling method of three-dimensional multi-core architecture and three-dimensional multi-core architecture using the method | |
CN115794663A (en) | Flash memory block processing method, flash memory data processing device and related equipment | |
Meng et al. | Irregularly shaped voltage islands generation with hazard and heal strategy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160722 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20190723 Year of fee payment: 7 |