KR20020067169A - Apparatus for processing instruction - Google Patents

Apparatus for processing instruction Download PDF

Info

Publication number
KR20020067169A
KR20020067169A KR1020010007578A KR20010007578A KR20020067169A KR 20020067169 A KR20020067169 A KR 20020067169A KR 1020010007578 A KR1020010007578 A KR 1020010007578A KR 20010007578 A KR20010007578 A KR 20010007578A KR 20020067169 A KR20020067169 A KR 20020067169A
Authority
KR
South Korea
Prior art keywords
cache
instruction
command
address
register
Prior art date
Application number
KR1020010007578A
Other languages
Korean (ko)
Other versions
KR100416858B1 (en
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 KR10-2001-0007578A priority Critical patent/KR100416858B1/en
Publication of KR20020067169A publication Critical patent/KR20020067169A/en
Application granted granted Critical
Publication of KR100416858B1 publication Critical patent/KR100416858B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PURPOSE: A device for processing a command is provided to add an effective second cache to the first cache horizontally in an electric power satisfied with almost command demand at a microprocessor. CONSTITUTION: The first program counter(100) supplies a command address to be performed in a microprocessor to a cache access control unit(120), the first cache(130), and the second cache(140). The second program counter(110) supplies a command address to be performed in the next cycle of the command address supplied in the first program counter(100) to the cache access control unit(120) based on a branch address calculated in the microprocessor. A command searched in the first cache(130) and the second cache(140) is transmitted to a register(150) and stored temporarily. A command selection unit(160) selects one out of commands stored in the register(150). A multiplex unit(170) receives a command selection signal output by the command selection unit(160) out of commands of the first cache(130) and the second cache(140) received from the register(150) and transmits a corresponding command to a control unit(180). The control unit(180) decodes the command output in the multiplex unit(170) and supplies a sleeping control signal of the first cache(130). A flip-flop(190) supplies an input value to a logic unit(200) by a control signal output by the control unit(180), and an output value of the flip-flop(190) decides an operation or not of the cache access control unit(120).

Description

명령어 처리 장치{APPARATUS FOR PROCESSING INSTRUCTION}Command Processing Unit {APPARATUS FOR PROCESSING INSTRUCTION}

본 발명은 명령어 처리 장치에 관한 것으로서, 특히 제 1 캐쉬에 마이크로 프로세서의 명령어를 처리하는 캐쉬를 부가적으로 추가한 명령어 처리 장치에 관한것이다.The present invention relates to an instruction processing apparatus, and more particularly, to an instruction processing apparatus in which a cache for processing instructions of a microprocessor is additionally added to the first cache.

정보 통신 기술이 발달함에 따라 휴대 전화나 개인용 휴대 단말기(PDA), 그리고 동영상 휴대 전화와 같은 이동용 시스템(mobile system)의 중요성은 날로 증가하고 있다. 한번 충전된 배터리를 얼마나 오랫동안 사용할 수 있는지를 나타내는 연속 동작 가능 시간은 상업적인 이동용 시스템에 있어서 가장 중요한 성능 척도의 하나이며, 이동용 시스템의 전력 소모를 줄이는 것은 시스템 설계에서 중요한 요소로 부각되고 있다.With the development of information and communication technology, the importance of mobile systems such as mobile phones, personal digital assistants (PDAs), and video mobile phones is increasing day by day. Continuous operating time, which indicates how long a battery can be charged once, is one of the most important performance metrics for commercial mobile systems, and reducing the power consumption of mobile systems is an important factor in system design.

비 이동용 시스템에 있어서도 전력 소모는 중요한 설계 목표의 하나가 된다. 높은 전력 소모는 시스템 내부에서 많은 열을 발생시켜 반도체의 성능 저하 또는 기능 이상, 심지어는 고장을 일으키기도 하기 때문이다. 이러한 문제점들 때문에 최근 들어 소프트웨어 및 하드웨어 측면에서 다양한 저 전력 기법이 요구되고 있다.Even in non-mobile systems, power consumption is an important design goal. This is because high power dissipation generates a lot of heat inside the system, causing the semiconductor to degrade, malfunction, or even fail. Due to these problems, various low power techniques are recently required in terms of software and hardware.

특히, 고성능 내장형 프로세서에 있어서, 빠른 명령어 접근을 위하여 대용량의 칩 내장 (on-chip) 명령어 캐쉬를 필요로 한다. 이 경우, 성능 측면에서 효과적이지만, 전력 측면에서 평가하면, 비효율적이게 된다.In particular, high performance embedded processors require large on-chip instruction caches for fast instruction access. In this case, it is effective in terms of performance, but inefficient in terms of power.

실제, 전력 측면에서의 효율성을 위한 연구들은 이미 여러 해 전부터 논의되고 있었다. 하지만, 기존의 방법은 성능 측면에서의 효율성과 전력 측면에서의 효율성이라는 두 가지 목표를 모두 만족시키지는 못했다. 성능 측면에서의 효율성을 위해서는 전력을 희생하였고, 전력 측면에서의 효율성을 위해서는 성능 측면의 저하를 초래하였다.In fact, studies on power efficiency have been discussed for many years. However, existing methods did not meet both goals of efficiency and power efficiency. Power was sacrificed for efficiency in terms of performance, and performance was reduced for efficiency in terms of power.

기존의 연구 중에서 저 전력 캐쉬에 초점을 맞추어 기존 관련 연구들을 정리해 보면, 크게 캐쉬 내부의 구조를 바꾸는 방법과 캐쉬 내부의 구조 변화 없이 전력 측면에서 보다 효율적인 캐쉬를 추가하는 방법의 두 가지 정도로 구분될 수 있다,In summary, previous studies focusing on low-power caches can be divided into two types: changing the structure of the cache and adding more efficient cache in terms of power without changing the structure of the cache. have,

캐쉬 내부의 구조를 바꾸는 방법은 캐쉬 내부를 나누어 필요한 부분만을 활동(active) 상태로 지정하고, 불필요한 부분은 휴지(inactive) 상태로 지정하여 전력을 줄이려는 것이다.The way to change the internal structure of the cache is to divide the cache and specify only the necessary parts as the active state and the unnecessary parts as the inactive state to save power.

첫 번째는, 선택적인 캐쉬 웨이(way) 방법으로서, 캐쉬 내의 하나의 세트(set)에 존재하는 여러 개의 웨이(way) 중의 일부만을 활동(active)상태로 지정하고, 나머지 웨이(way)는 휴지(inactive) 상태로 지정하여 전력 측면에서 불필요한 소모를 제거하는 방법이다. 비슷한 접근 방법으로 캐쉬 내에 존재하는 여러 뱅크(bank) 중 일부만을 활동(active) 상태로 지정하여 전력 측면에서 효율성을 취하는 방법이다.The first is an optional cache way method, in which only some of the multiple ways in a set of caches are designated as active, and the remaining ways are idle. It is a method of eliminating unnecessary consumption in terms of power by specifying an inactive state. In a similar approach, only some of the banks in the cache are designated as active to take power efficiency.

두 번째로, 전력 측면에서 효율적인 캐쉬를 추가하는 방법은 기존에 존재하는 메모리 계층 구조에 전력 측면에서 효율적인 또 다른 캐쉬를 추가함으로써, 전력 소모를 줄이는 방법이다. 명령어 요구의 대부분에 대해 이러한 소 용량의 - 따라서, 전력 측면에서 효율적인- 캐쉬가 이용됨으로써, 전체적인 메모리 구조에서 소모되는 전력을 줄이는 접근법이다. 이 또한, 추가적인 캐쉬를 메모리 계층 구조에 구성하는 방법에 따라 종적으로 추가하는 방법과 횡적으로 추가하는 방법의 두 가지로 구분된다.Secondly, the method of adding a power-efficient cache is to reduce power consumption by adding another power-efficient cache to an existing memory hierarchy. By using this small capacity-and thus power efficiency-for most of the instruction demands-an approach that reduces the power consumed in the overall memory structure. In addition, depending on how the additional cache is configured in the memory hierarchy, it is divided into two methods, vertically and horizontally.

먼저, 종적으로 추가하는 방법은 프로세서와 제 1 캐쉬 사이에 제 2 캐쉬를 추가하는 방법이다. 이 방법은 전력 측면에서 효율적인 제 2 캐쉬가 명령어 요구의 대부분을 만족시킴으로써, 다른 메모리 계층에서의 전력 소모를 최소화하게 되고, 이를 통해 전체적인 메모리 구조에서의 전력 소모를 줄일 수 있게 된다.First, a method of adding in a long way is to add a second cache between the processor and the first cache. This method allows a second power efficient cache to satisfy most of the instruction requirements, thereby minimizing power consumption in other memory layers, thereby reducing power consumption in the overall memory structure.

그러나, 제 2 캐쉬가 명령어 요구를 만족시키지 못할 경우에는 기존의 시스템에서는 발생하지 않는 불필요한 사이클(cycle) 소모로 인해 성능 저하라는 큰 문제점을 야기하게 된다. 이것은 고성능의 프로세서를 요구하는 현대의 응용 프로그램에 있어서 치명적인 문제점이 아닐 수 없다. 이러한 성능 저하 측면에서의 문제점을 해결하고자 제안된 루프 캐쉬(loop cache) 방법은 하드웨어 및 소프트웨어적으로 기존 방법을 개선하여 성능 측면에서의 저하 문제점을 다소 해결하였지만, 그 적용 범위가 한정되어 있다는 점에서 그 사용이 제한되는 문제점이 있다.However, if the second cache does not satisfy the instruction request, it causes a big problem of performance degradation due to unnecessary cycle consumption which does not occur in the existing system. This is a fatal problem for modern applications that require high performance processors. The loop cache method proposed to solve this problem in terms of performance degradation solves the problem in terms of performance by improving the existing methods in hardware and software, but the scope of application is limited. There is a problem that its use is limited.

횡적으로 추가하는 방법은 제 1 캐쉬와 같은 계층에 또 다른 캐쉬를 추가하는 방법이다. 작은 버퍼를 추가하여 (예를 들어 빅팀(victim) 캐쉬) 특정 목적에서만 전력 측면에서 효율적인 캐쉬를 사용하는 방법이 여기에 속한다.The horizontally adding method is a method of adding another cache in the same layer as the first cache. This includes adding small buffers (e.g., victim caches) to use power efficient caches only for specific purposes.

그러나, 횡적으로 추가하는 방법은 추가된 하드웨어의 사용 빈도가 한정되어 있어 그 적용 범위가 제한되는 문제점이 있다.However, the method of adding horizontally has a problem in that the application frequency of the added hardware is limited and its application range is limited.

본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위한 것으로서, 마이크로 프로세서의 대부분의 명령어 요구에 만족하는 전력 측면에서 효율적인 제 2 캐쉬를 제 1 캐쉬에 횡적으로 부가한 명령어 처리 장치를 제공하고자 한다.An object of the present invention is to solve the problems of the prior art, and to provide an instruction processing apparatus which adds a second cache to the first cache in terms of power that satisfies most instruction requirements of the microprocessor. .

이러한 목적을 달성하기 위하여 본 발명은 마이크로 프로세서에서 수행될 명령어 어드레스와 상기 명령어 어드레스에 해당되는 명령어가 저장되어 있는 제 1 캐쉬를 구비하는 명령어 처리 장치에 있어서, 상기 명령어 어드레스의 다음 사이클에 수행되는 명령어의 어드레스를 제공하는 어드레스 제공 수단과, 상기 제 1 캐쉬에 저장된 명령어를 포함하고, 상기 제 1 캐쉬에 종속되고, 횡적으로 부가되어 상기 마이크로 프로세서의 명령어 요구를 수행하고, 상기 명령어 어드레스에 해당되는 명령어의 유무를 판단하여 히트 정보를 제공하는 제 2 캐쉬와, 상기 히트 정보와 상기 제 1 캐쉬 및 제 2 캐쉬에 저장된 명령어가 임시로 저장된 저장 수단과, 상기 저장 수단의 저장된 히트 정보에 의해서 상기 저장된 명령어들 중하나를 선택하는 명령어 선택 수단과, 상기 명령어 어드레스와 상기 다음 사이클에 수행되는 명령어 어드레스에 해당되는 명령어가 동일 세트 여부에 따라서 제어 신호를 생성하는 제 1 제어수단과, 상기 명령어 선택 수단에 의해 선택된 명령어를 해독하여 제어 신호를 제공하는 제 2 제어수단과, 상기 제 1 제어수단 및 제 2 제어수단에서 출력된 제어 신호를 논리 연산하여 상기 제 1 캐쉬의 휴면화 여부를 결정하는 제어 신호를 출력하는 논리 수단을 포함하는 것을 특징으로 하는 명령어 처리 장치이다.In order to achieve the above object, the present invention provides an instruction processing apparatus including an instruction address to be executed in a microprocessor and a first cache in which instructions corresponding to the instruction address are stored. An address providing means for providing an address of the first cache; and instructions stored in the first cache, dependent on the first cache, and horizontally added to perform an instruction request of the microprocessor, and an instruction corresponding to the instruction address. A second cache for providing hit information by determining the presence or absence of the second cache; a storage means for temporarily storing the hit information and the instructions stored in the first cache and the second cache; and the stored instruction by the stored hit information of the storage means. Command selection means for selecting one of the First control means for generating a control signal according to whether or not the instruction address and the instruction address performed in the next cycle are the same set; and decoding the instruction selected by the instruction selecting means to provide a control signal. And second logic means and logic means for outputting a control signal for determining whether the first cache is dormant by performing a logic operation on the control signals output from the first control means and the second control means. Command processing device.

도 1은 본 발명에 일 실시예에 따른 명령어 처리 장치인 저 전력 명령어 캐쉬 장치를 나타내는 블록도,1 is a block diagram illustrating a low power instruction cache apparatus which is an instruction processing apparatus according to an embodiment of the present invention;

도 2는 본 발명에 일 실시예에 따른 저 전력 명령어 캐쉬 장치의 동작 과정을 나타내는 흐름도 이다.2 is a flowchart illustrating an operation of a low power command cache apparatus according to an embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the code | symbol about the principal part of drawing>

100 : 제 1 프로그램 카운터 110 : 제 2 프로그램 카운터100: first program counter 110: second program counter

120 : 캐쉬 접근 제어부 130 : 제 1 캐쉬120: cache access control unit 130: first cache

140 : 제 2 캐쉬 150 : 레지스터140: second cache 150: register

160 : 명령어 선택부 170 : 멀티플렉스부160: command selection unit 170: multiplex unit

180 : 제어부 190 : 플립플럽180 control unit 190 flip-flop

200 : 논리수단200: logic means

본 발명의 실시 예로는 다수개가 존재할 수 있으며, 이하에서는 첨부한 도면을 참조하여 바람직한 실시 예에 대하여 상세히 설명하기로 한다. 이 실시 예를 통해 본 발명의 목적, 특징 및 이점들을 보다 잘 이해할 수 있게 된다.There may be a plurality of embodiments of the present invention, hereinafter with reference to the accompanying drawings will be described in detail a preferred embodiment. Through this embodiment, it is possible to better understand the objects, features and advantages of the present invention.

도 1은 본 발명에 일 실시예에 따른 저 전력 명령어 캐쉬 장치의 구성도 이다.1 is a block diagram of a low power instruction cache device according to an embodiment of the present invention.

저 전력 명령어 캐쉬 장치의 구성은, 도 1에 도시된 바와 같이, 제 1 프로그램 카운터(100), 제 2 프로그램 카운터(110), 캐쉬 접근 제어부(120), 제 1 캐쉬(130), 제 2 캐쉬(140), 레지스터(150), 명령어 선택부(160), 멀티플렉스부(170), 제어부(180), 플립플롭(190) 및 논리 수단(200)으로 이루어진다.As shown in FIG. 1, the low power command cache device includes a first program counter 100, a second program counter 110, a cache access control unit 120, a first cache 130, and a second cache. 140, a register 150, an instruction selector 160, a multiplexer 170, a controller 180, a flip-flop 190, and a logic means 200.

제 1 프로그램 카운터(100)는 현재 마이크로 프로세서의 내부에서 수행할 명령어 어드레스를 캐쉬 접근 제어부(120), 제 1 캐쉬(130) 및 제 2 캐쉬(140)에 제공하고, 제 2 프로그램 카운터(110)는 마이크로 프로세서에서 계산된 분기 주소를 토대로 제 1 프로그램 카운터(100)에서 제공한 명령어 어드레스의 다음 사이클에 수행할 명령어 어드레스를 캐쉬 접근 제어부(120)에 제공한다.The first program counter 100 provides an instruction address to be executed in the current microprocessor to the cache access controller 120, the first cache 130, and the second cache 140, and the second program counter 110. The cache provides the cache access control unit 120 with an instruction address to be executed in the next cycle of the instruction address provided by the first program counter 100 based on the branch address calculated by the microprocessor.

캐쉬 접근 제어부(120)는, 제 1 캐쉬(130)를 휴면화 시키는 제어 신호를 논리 수단(200)에 제공하는 제 1 제어 수단으로써, 제 1 프로그램 카운터(100) 및 제 2 프로그램 카운터(110)에 의해서 제공된 명령어 어드레스를 비교하여 같은 세트(Set) 여부를 판단하고, 판단 결과 같은 세트인 경우에는 제 1 캐쉬(130) 동적 휴면 상태화 제어선인 제어선(1)을 “1”로 설정하여 플립플럽(190)의 출력 값에 상관없이 제 1 캐쉬(130)를 동적 휴면화(다시 말해서, 하드웨어적인 제어 방법에 의해 제 1 캐쉬(130)를 휴면화) 시킨다. 또한 판단 결과 같은 세트가 아닌 경우에, 캐쉬 접근 제어부(120)는 제어선(1)의 값을 “0”으로 설정하고, 플립플롭(190)의 출력 값에 의해서 제 1 캐쉬(130)의 휴면화 여부가 결정된다.The cache access controller 120 is a first control means for providing the logic means 200 with a control signal for dominating the first cache 130. The first program counter 100 and the second program counter 110 may be used. It is determined whether or not the same set is compared by comparing the instruction addresses provided by &lt; RTI ID = 0.0 &gt; and &lt; / RTI &gt; Regardless of the output value of the flop 190, the first cache 130 is dynamically dormant (that is, the first cache 130 is dormant by a hardware control method). In addition, when the determination result is not the same set, the cache access control unit 120 sets the value of the control line 1 to "0", and the dormant of the first cache 130 is dormant by the output value of the flip-flop 190. It is decided whether or not to

제 1 캐쉬(130) 및 제 2 캐쉬(140)는 제 1 프로그램 카운터(100)로부터 전송 받은 명령어 어드레스를 대응되는 제 1 캐쉬(130) 및 제 2 캐쉬(140) 내에 저장되어 있는 명령어를 검색한다.The first cache 130 and the second cache 140 retrieve the instructions stored in the first cache 130 and the second cache 140 corresponding to the instruction address received from the first program counter 100. .

제 1 캐쉬(130) 및 제 2 캐쉬(140)에서 검색된 명령어는 레지스터(150)의 레지스터1(151) 및 레지스터2(152)에 전송되어 임시로 저장된다.Instructions retrieved from the first cache 130 and the second cache 140 are transferred to register 1 151 and register 2 152 of the register 150 and temporarily stored.

이때, 제 1 캐쉬(130)는 논리 수단(200)의 출력에 의해서 휴면화 여부가 결정되고, 제 2 캐쉬(140)는 제 1 캐쉬(130)에 횡적으로 추가된 캐쉬로써, 제 1 캐쉬(130)의 휴면화 여부에 의해서 제 1 프로그램 카운터(100)에 의해서 입력된 어드레스에 해당되는 명령어를 수행한다.In this case, whether the first cache 130 is dormant is determined by the output of the logic means 200, and the second cache 140 is a cache horizontally added to the first cache 130, the first cache ( The command corresponding to the address input by the first program counter 100 is executed according to whether or not 130 is dormant.

또한, 제 2 캐쉬(140)는 제 1 캐쉬(130)에 저장된 명령어 중 일부가 저장되어 마이크로 프로세서에서 요구한 명령어를 수행하는 전력 측면에서 효율적으로 부가된 캐쉬이고, 제 1 캐쉬(130)의 휴면화 상태에 들어가면 마이크로 프로세서의 명령어 요구를 수행 할 수 있다.In addition, the second cache 140 is a cache in which some of the instructions stored in the first cache 130 are stored and efficiently added in terms of power for executing the instructions requested by the microprocessor, and the dormant of the first cache 130 is dormant. Once in the busy state, the microprocessor's instruction request can be fulfilled.

레지스터(150)는, 제 1 캐쉬(130) 및 제 2 캐쉬(140)에서 검색된 명령어를 임시로 저장하는 저장 수단으로써, 제 1 캐쉬(130)로부터 전송 받은 명령어를 일시적으로 저장하는 레지스터1(151)과, 제 2 캐쉬(140)로부터 전송 받은 명령어를 일시적으로 저장하는 레지스터2(152)와, 제 1 프로그램 카운터(100)에 의해서 제공된 어드레스에 대응되는 명령어가 제 2 캐쉬(140)에 있을 경우에 제 2 캐쉬(140)의 히트 정보를 제 2 캐쉬(140)로부터 제공받아 저장된 레지스터3(153)과, 제 1 캐쉬(130)의 휴면화 유무가 저장되어 있는 레지스터4(154)로 구성된다.The register 150 is a storage means for temporarily storing instructions retrieved from the first cache 130 and the second cache 140. The register 150 temporarily stores instructions received from the first cache 130. ), A register 2 152 for temporarily storing instructions received from the second cache 140, and a command corresponding to an address provided by the first program counter 100 in the second cache 140. Register 3 (153), which receives the hit information of the second cache 140 from the second cache 140, and register 4 (154) that stores the presence or absence of the first cache 130 dormant. .

명령어 선택부(160)는, 레지스터(150)에 저장된 명령어들 중 하나를 선택하는 수단으로써, 레지스터3(153)과 레지스터4(154)에 저장된 정보를 토대로 레지스터1(151)에 저장된 제 1 캐쉬(130)에서 제공된 명령어 및 제 2 캐쉬(140)에 의해서 제공된 명령어 중에서 수행할 명령어를 선택하고, 그 선택된 명령어는 멀티플렉스부(170)에 제공할 것이다.The instruction selector 160 is a means for selecting one of the instructions stored in the register 150. The instruction selector 160 stores the first cache stored in the register 1 151 based on the information stored in the register 3 153 and the register 4 154. An instruction to be performed is selected from the instructions provided at 130 and those provided by the second cache 140, and the selected instructions are provided to the multiplex unit 170.

다시 말해서, 명령어 선택부(160)는 레지스터3(153)에 저장되어 있는 제 1 캐쉬(130)의 휴면화와 레지스터4(154)에 저장된 제 2 캐쉬(140)의 히트 정보를 입력받을 경우에, 제 2 캐쉬(140)에 제공되는 명령어를 수행하도록 하는 신호를 멀티플렉스부(170)에 제공한다.In other words, when the command selector 160 receives the sleep information of the first cache 130 stored in the register 3 153 and the hit information of the second cache 140 stored in the register 4 154. , To provide the signal to the multiplexer 170 to perform the instructions provided to the second cache 140.

멀티플렉스부(170)는 레지스터1(151)과 레지스터2(152)로부터 전송 받은 제 1 캐쉬(130) 및 제 2 캐쉬(140)의 명령어들 중에서 명령어 선택부(160)에 의해 출력된 명령어 선택 신호를 전송 받아 해당되는 명령어를 제어부(180)에 전송한다.The multiplex unit 170 selects an instruction output by the instruction selector 160 from among instructions of the first cache 130 and the second cache 140 received from the register 1 151 and the register 2 152. The signal is transmitted and the corresponding command is transmitted to the controller 180.

이때, 멀티플렉스부(170)에 제공되는 레지스터(150)에 저장된 명령어는 컴파일러에 의해서 특수 명령어인 “제 1 캐쉬 휴면화 명령어” 또는 “캐쉬 접근 제어부 동작 명령어”가 삽입되어 있다.At this time, the instruction stored in the register 150 provided to the multiplex unit 170 has a special instruction "first cache dormancy instruction" or "cache access control operation instruction" inserted by the compiler.

컴파일러에 의해서 삽입된 특수 명령어는 캐쉬 트레이스 정보를 이용하여 삽입되는데 그 과정은 아래와 같다.Special instructions inserted by the compiler are inserted using cache trace information.

먼저, 컴파일러는 하드웨어적 제어가 필요한 기본 블록의 집합과 소프트웨어적 제어가 필요한 기본 블록의 집합으로 분류한다.First, the compiler classifies a set of basic blocks requiring hardware control and a set of basic blocks requiring software control.

컴파일러는 기본 블록에 대해서 캐쉬 트레이스 정보를 분석하고, 분석 결과기본 블록을 소프트웨어적으로 제어하는 것이 하드웨어적으로 제어하는 것보다 에너지 지연 곱의 값이 작게 되면, 기본 블록은 소프트웨어적으로 제어할 기본 블록으로 분류되고, 반대의 경우에는 하드웨어적으로 제어할 기본 블록으로 분류된다.The compiler analyzes the cache trace information for the base block, and if the analysis results indicate that the software control of the base block is less than the hardware control, the value of the energy delay product is lower than that of the base block. Are classified as basic blocks to be controlled in hardware.

분류 결과, 소프트웨어적으로 제어할 기본 블록은 컴파일러에 의해서 기본 블록 시작 시점에 “제 1 캐쉬 휴면화 명령어”가 삽입되고, 하드웨어적으로 제어할 기본 블록은 컴파일러에 의해서 기본 블록의 시작 시점에 “캐쉬 접근 제어부 동작 명령어”가 삽입된다.As a result of classification, the basic block to be controlled by software is inserted by the compiler at the beginning of the basic block, and the "first cache dormancy instruction" is inserted by the compiler. Access control operation instruction ”is inserted.

제어부(180)는, 멀티플렉스부(170)에서 출력된 명령어를 해독하여 제 1 캐쉬(130)의 휴면화 제어 신호를 제공하는 제 2 제어수단으로써, 멀티플렉스부(170)에 의해서 전송된 명령어에 포함된 프로세서 내부의 컴파일러에 의해서 삽입된 명령어를 해독하여 제어선인 (2) 또는 (3)을 통하여 플립플롭(190)에 전송한다.The controller 180 is a second control means for decoding a command output from the multiplex unit 170 and providing a dormancy control signal of the first cache 130, and the command transmitted by the multiplex unit 170. Decoded instructions inserted by the compiler in the processor included in the and transmitted to the flip-flop 190 through the control line (2) or (3).

제어부(180)에 의해서 해독된 명령어가 “제 1 캐쉬 휴면화 명령어”인 경우에는 제어선(3)을 “1”로 설정하여 플립플롭(190)으로 전송하고, “캐쉬 접근 제어부 동작 명령어”가 해독된 경우에는 제어선(3)을 “1”로 설정하여 플립플롭(190)에 전송한다.When the command decoded by the controller 180 is the “first cache sleep instruction”, the control line 3 is set to “1” to be transmitted to the flip-flop 190, and the “cache access control operation command” is In the case of decryption, the control line 3 is set to "1" and transmitted to the flip-flop 190.

플립플럽(190)은 제어부(180)에 의해서 출력된 제어 신호에 의해서 논리 수단(200)에 입력 값을 제공하고, 플립플럽(190)의 출력 값은 캐쉬 접근 제어부(120)의 동작 여부를 결정한다.The flip flop 190 provides an input value to the logic means 200 by a control signal output by the controller 180, and the output value of the flip flop 190 determines whether the cache access controller 120 operates. do.

이때, 플립플럽(190)의 출력 값이 “1”인 경우에, 제 1 캐쉬(120)는 소프트웨어적인 제어 방법에 의해서 캐쉬 접근 제어부(120)의 출력 값과 상관없이 논리 수단(200)의 출력 값이 “1”이 되어 제 1 캐쉬(130)는 휴면화됨과 더불어 캐쉬 접근 제어부(120)는 제어부(180)의 기본 블록 해독 결과“캐쉬 접근 제어부 동작 명령어”의 해독을 통해 플립플럽(190)의 출력 값이 “0”이 될 때까지 동작하지 않는다.In this case, when the output value of the flip flop 190 is "1", the first cache 120 outputs the logic means 200 regardless of the output value of the cache access control unit 120 by a software control method. When the value becomes "1", the first cache 130 is dormant and the cache access controller 120 flips the flip flop 190 by decrypting the "cache access control operation command" as a result of the basic block decryption of the controller 180. It does not operate until the output value of "0" is reached.

반대로, 플립플럽(190)의 출력 값이 “0”인 경우에 캐쉬 접근 제어부(120)의 출력 값에 의해서 제 1 캐쉬(130)의 휴면화 여부가 결정된다.In contrast, when the output value of the flip flop 190 is "0", it is determined whether the first cache 130 is dormant by the output value of the cache access control unit 120.

논리 수단(200)은, 논리합 게이트로써, 플립플럽(200) 및 캐쉬 접근 제어부(120)에서 출력되는 제어 신호에 따라서 제 1 캐쉬(130)의 휴면화 여부를 결정하는 제어 신호를 출력한다.The logic unit 200 outputs a control signal for determining whether to sleep the first cache 130 according to a control signal output from the flip flop 200 and the cache access control unit 120 as a logic sum gate.

논리 수단(200)의 출력 값이 “1”인 경우에, 제 1 캐쉬(130)는 휴면화 상태에 돌입하고, 제 1 캐쉬(130)의 휴면화 신호는 레지스터(150)의 레지스터3(153)에 저장된다.When the output value of the logic means 200 is "1", the first cache 130 enters a sleep state, and the sleep signal of the first cache 130 is registered in register 3 (153) of the register 150. )

논리 수단(200)의 출력 값이 “0”인 경우에 제 1 캐쉬(130)는 휴면화 되지 않는다.When the output value of the logic means 200 is "0", the first cache 130 is not dormant.

상기와 같은 구성을 갖는 저 전력 명령어 캐쉬 장치의 동작 과정은 도 2를 참조하여 설명한다.An operation of the low power command cache device having the above configuration will be described with reference to FIG. 2.

도 2는 본 발명에 일 실시예에 따른 명령어 처리 장치인 저 전력 명령어 캐쉬 장치 동작 과정을 나타내는 흐름도이다.2 is a flowchart illustrating a process of operating a low power instruction cache apparatus which is an instruction processing apparatus according to an embodiment of the present invention.

제 1 캐쉬(140)의 제어는 하드웨어적인 방법과 소프트웨어적인 방법으로 이루어진다.Control of the first cache 140 is performed by a hardware method and a software method.

먼저, 하드웨어적인 방법은 전적으로 캐쉬 접근 제어부(120)에 의해서 이루지는 것으로써, 캐쉬 접근 제어부(120)는 마이크로 프로세서에서 수행되는 명령어와 다음 사이클에서 수행되는 명령어가 같은 캐쉬 세트에 포함되어 있는지의 여부를 제 1 프로그램 카운터(100)와 제 2 프로그램 카운터(110)에 의해서 입력된 어드레스를 토대로 판단한다(S201, S202).First, the hardware method is entirely performed by the cache access controller 120. The cache access controller 120 determines whether the instruction executed in the microprocessor and the instruction executed in the next cycle are included in the same cache set. Is determined based on the addresses input by the first program counter 100 and the second program counter 110 (S201 and S202).

단계 202의 판단 결과 같은 세트인 경우에, 캐쉬 접근 제어부(120)는 제어선(1)을 “1”로 설정하여 플립플럽(190)의 출력 값에 상관없이 논리 수단(200)을 통하여 제 1 캐쉬(130)를 휴면화 시킨다. 수행될 명령어는 제 2 캐쉬(140)에 저장된 명령어에 의해서 수행된다(S203, S204).In the case of the same set as the result of the determination in step 202, the cache access control unit 120 sets the control line 1 to "1" so that the first through the logic means 200 regardless of the output value of the flip-flop 190. The cache 130 is dormant. Instructions to be performed are performed by instructions stored in the second cache 140 (S203 and S204).

다음으로, 소프트웨어적 제어 방법은 상기 단계 202의 판단 결과, 제 1 프로그램 카운터(100) 및 제 2 프로그램 카운터(110)에서 입력된 어드레스에 해당되는 명령어가 같은 세트가 아닌 경우에, 캐쉬 접근 제어부(120)는 제어선(1)을 “0”으로 설정하여 논리 수단(200)에 제공한다(S205).Next, in the software control method, when the command corresponding to the address input by the first program counter 100 and the second program counter 110 is not the same set, the cache access control unit ( 120 sets the control line 1 to "0" and provides it to the logic means 200 (S205).

제어선(1)을 통하여 캐쉬 접근 제어부(120)로부터 제어 값 “0”을 입력받은 논리 수단(200)은 플럽플럽(190)으로부터 출력되는 제어 값을 토대로 제 1 캐쉬(130)를 제어한다.The logic means 200 that receives the control value “0” from the cache access controller 120 through the control line 1 controls the first cache 130 based on the control value output from the flop flop 190.

논리 수단(200)에 제공되는 플립플럽(190)에서 출력 값은 아래와 같이 동작에 의해서 설명된다.The output value in the flip flop 190 provided to the logic means 200 is described by the operation as follows.

제 1 캐쉬(130) 및 제 2 캐쉬(140)에 저장된 제 1 프로그램 카운터(100)에입력되는 어드레스에 대응되는 명령어는 레지스터1(151) 및 레지스터2(152)에 임시적으로 저장됨과 동시에 제 2 캐쉬(140)에서 제공되는 캐쉬 히트 정보가 레지스터4(154)에 저장되고, 논리 수단(200)에서 출력되는 값에 따른 제 1 캐쉬(130)의 동작 여부에 관한 정보가 레지스터3(153)에 저장된다.Instructions corresponding to the addresses input to the first program counter 100 stored in the first cache 130 and the second cache 140 are temporarily stored in the register 1 151 and the register 2 152 and at the same time. Cache hit information provided from the cache 140 is stored in the register 4 154, and information about whether the first cache 130 is operated according to a value output from the logic means 200 is stored in the register 3 153. Stored.

레지스터4(154)에 저장된 제 2 캐쉬(140)의 히트 정보와 제 1 캐쉬(130)의 동작 여부 정보는 명령 선택부(160)에 제공된다.The hit information of the second cache 140 and the operation information of the first cache 130 stored in the register 4 154 are provided to the command selector 160.

명령어 선택부(160)는 제 2 캐쉬(140)의 히트 정보가 저장된 레지스터4(154) 및 제 1 캐쉬(130)의 동작 여부 정보가 저장된 레지스터3(153)으로부터 값을 입력받아 제 2 캐쉬(140)의 히트 정보를 읽어들어 레지스터1(151) 및 레지스터2(152)에 저장된 명령어들 중에서 하나를 선택하도록 하는 신호를 멀티플렉스부(170)로 전송한다(S206).The command selector 160 receives a value from the register 4 154 in which the hit information of the second cache 140 is stored and the register 3 153 in which the operation information of the first cache 130 is stored. The signal reads the hit information of the 140 and selects one of the instructions stored in the register 1 151 and the register 2 152 to the multiplex unit 170 (S206).

멀티플렉부(170)는 전송된 명령어 선택 신호를 토대로 레지스터1(151) 또는 레지스터2(152)에 저장된 명령어들 중에서 하나를 선택하여 제어부(180)에 전송하고, 제어부(180)는 멀티플렉스부(170)로부터 전송된 명령어에 포함된 정보를 해독한다(S207, S208).The multiplexer 170 selects one of the instructions stored in the register 1 151 or the register 2 152 and transmits it to the controller 180 based on the transmitted command selection signal, and the controller 180 is a multiplexer ( Information contained in the command transmitted from 170 is decoded (S207 and S208).

단계 208의 해독 결과, 제어부(180)에 의해서 제 1 캐쉬(130) 휴면 상태화 명령어가 해독되면, 제어부(180)는 제어선(3)을 “1”로 설정함과 동시에 제어선(2)을 “0”으로 설정하고, 설정된 제어선(2) 및 제어선(3)에 의해서 플립플럽(190)은 논리 수단(200)으로 “1”의 값을 전송한다(S209).As a result of the decoding in step 208, when the first cache 130 dormancy command is decoded by the controller 180, the controller 180 sets the control line 3 to "1" and at the same time controls the control line 2. Is set to "0", and the flip-flop 190 transmits the value of "1" to the logic means 200 by the set control line 2 and the control line 3 (S209).

플립플럽(190)의 출력 값 “1”에 의해서 캐쉬 접근 제어부(120)는 동작하지않고, 논리 수단(200)의 출력 값이 “1”이 되어 제 1 캐쉬(130)가 휴면화 상태로 전이된다(S204).The cache access control unit 120 does not operate due to the output value “1” of the flip flop 190, and the output value of the logic unit 200 becomes “1” so that the first cache 130 transitions to the dormant state. (S204).

제 1 캐쉬(130)의 휴면화에 의해서 현재 수행될 명령어는 제 2 캐쉬(140)에 의해서 수행된다.Instructions to be currently performed by the first cache 130 dormancy are performed by the second cache 140.

상기 단계 208의 해독 결과, 제어부(180)에 의해서 캐쉬 접근 제어부(120)의 동작 명령어가 해독되면, 제어부(180)는 제어선(3)을 “0”으로 설정함과 동시에 제어선(2)을 “1”로 설정하고, 설정된 제어선(2) 및 제어선(3)에 의해서 플립플럽(190)은 논리 수단(200)으로 “0”의 값을 전송한다(S210).As a result of the decryption of step 208, when the operation command of the cache access control unit 120 is decoded by the control unit 180, the control unit 180 sets the control line 3 to “0” and simultaneously controls the control line 2. Is set to "1" and the flip-flop 190 transmits the value of "0" to the logic means 200 by the set control line 2 and the control line 3 (S210).

플립플럽(190)의 출력 값 “0”에 의해서 논리 수단(200)의 출력 값이 “0”이 되어 제 1 캐쉬(130)는 휴면화 되지 않고 현재의 명령어를 수행함과 더불어 캐쉬 접근 제어부(120)는 동작을 다시 하게되어, 단계 202로 돌아가 하드웨어적인 방법으로 캐쉬를 제어하게 된다(S211).The output value of the logic means 200 becomes “0” by the output value “0” of the flip flop 190 so that the first cache 130 does not sleep and executes the current command, and the cache access control unit 120. In step S202, the process returns to step 202 to control the cache in a hardware manner (S211).

이상 설명한 바와 같이, 본 발명은 마이크로 프로세서와 제 1 캐쉬 사이에 제 1 캐쉬에 종속된 저 용량의 제 2 캐쉬를 횡적으로 부가하여 대부분의 마이크로 프로세서의 명령어 요구를 수행하고, 제 1 캐쉬를 휴면화 시킴으로써 고성능의 내장형 프로세서에서 요구되는 저 전력 측면을 요구 사항뿐만 아니라 성능 측면에서 효율성을 만족시키는 효과가 있다.As described above, the present invention transversely adds a low-capacity second cache dependent on the first cache between the microprocessor and the first cache to perform instruction requests of most microprocessors and dormate the first cache. By doing so, it is possible to meet the efficiency requirements in terms of performance as well as the low power requirements of high performance embedded processors.

한편, 본 발명은 상술한 실시예에 국한되는 것이 아니라 후술되는 청구범위에 기재된 본 발명의 기술적 사상과 범주내에서 당업자에 의해 여러 가지 변형이가능하다.On the other hand, the present invention is not limited to the above-described embodiment, but various modifications are possible by those skilled in the art within the spirit and scope of the present invention described in the claims below.

Claims (4)

마이크로 프로세서에서 수행될 명령어 어드레스와 상기 명령어 어드레스에 해당되는 명령어가 저장되어 있는 제 1 캐쉬를 구비하는 명령어 처리 장치에 있어서,An instruction processing apparatus having an instruction address to be executed in a microprocessor and a first cache storing an instruction corresponding to the instruction address, 상기 명령어 어드레스의 다음 사이클에 수행되는 명령어의 어드레스를 제공하는 어드레스 제공 수단과,Address providing means for providing an address of an instruction to be performed in a next cycle of the instruction address; 상기 제 1 캐쉬에 종속되고, 횡적으로 부가되어 상기 마이크로 프로세서의 명령어 요구를 수행하고, 상기 명령어 어드레스에 해당되는 명령어의 유무를 판단하여 히트 정보를 제공하는 제 2 캐쉬와,A second cache that is dependent on the first cache and is laterally added to perform an instruction request of the microprocessor, determine whether there is an instruction corresponding to the instruction address, and provide hit information; 상기 히트 정보와 상기 제 1 캐쉬 및 제 2 캐쉬에 저장된 명령어가 임시로 저장된 저장 수단과,Storage means for temporarily storing the hit information and instructions stored in the first cache and the second cache; 상기 저장 수단의 저장된 히트 정보에 의해서 상기 저장된 명령어들 중 하나를 선택하는 명령어 선택 수단과,Instruction selecting means for selecting one of the stored instructions by the stored hit information of the storage means; 상기 명령어 어드레스와 상기 다음 사이클에 수행되는 명령어 어드레스에 해당되는 명령어가 동일 세트 여부에 따라서 제어 신호를 생성하는 제 1 제어수단과,First control means for generating a control signal according to whether the instruction address and the instruction corresponding to the instruction address executed in the next cycle are the same set; 상기 명령어 선택 수단에 의해 선택된 명령어를 해독하여 제어 신호를 제공하는 제 2 제어수단과,Second control means for decoding a command selected by the command selecting means and providing a control signal; 상기 제 1 제어수단 및 제 2 제어수단에서 출력된 제어 신호를 논리 연산하여 상기 제 1 캐쉬의 휴면화 여부를 결정하는 제어 신호를 출력하는 논리 수단을포함하는 것을 특징으로 하는 명령어 처리 장치.And logic means for performing a logic operation on the control signals output from the first control means and the second control means to output a control signal for determining whether the first cache is to be dormant. 제 1 항에 있어서,The method of claim 1, 상기 어드레스 제공 수단은,The address providing means, 상기 다음 사이클에 수행되는 명령어 어드레스 신호를 제공하는 프로그램 카운터인 것을 특징으로 하는 명령어 처리 장치.And a program counter for providing an instruction address signal to be executed in the next cycle. 제 1 항에 있어서,The method of claim 1, 상기 논리 수단의 제어 신호는,The control signal of the logic means, 상기 제 1 캐쉬에 저장된 명령어를 휴면화 시키는 것을 특징으로 하는 저 명령어 처리 장치.And a command stored in the first cache is dormant. 제 1 항에 있어서,The method of claim 1, 상기 제 1 제어 수단의 제어 신호는,The control signal of the first control means, 상기 제공 수단에 의해서 제공되는 다음 사이클에서 수행되는 명령어 어드레스와 상기 명령어 어드레스가 같은 세트인 경우에 상기 제 2 제어 수단에 제어 신호에 관계없이 상기 제 1 캐쉬를 휴면화 시키는 것을 특징으로 하는 명령어 처리 장치.And instructing the first cache to sleep the first cache irrespective of the control signal when the instruction address performed in the next cycle provided by the providing means and the instruction address are the same set. .
KR10-2001-0007578A 2001-02-15 2001-02-15 Apparatus for processing instruction KR100416858B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2001-0007578A KR100416858B1 (en) 2001-02-15 2001-02-15 Apparatus for processing instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0007578A KR100416858B1 (en) 2001-02-15 2001-02-15 Apparatus for processing instruction

Publications (2)

Publication Number Publication Date
KR20020067169A true KR20020067169A (en) 2002-08-22
KR100416858B1 KR100416858B1 (en) 2004-02-05

Family

ID=27694501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0007578A KR100416858B1 (en) 2001-02-15 2001-02-15 Apparatus for processing instruction

Country Status (1)

Country Link
KR (1) KR100416858B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2194350B (en) * 1986-08-21 1990-08-22 Famous Instr Ltd Shutter mechanism for a camera
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
KR100486240B1 (en) * 1998-09-21 2005-06-08 삼성전자주식회사 Microprocessor with separate cache memory and memory access method
KR100351504B1 (en) * 2000-06-05 2002-09-05 삼성전자 주식회사 Method and Apparatus For Reducing Power In Cache Memories, And A Data Prcoessing System having Cache memories

Also Published As

Publication number Publication date
KR100416858B1 (en) 2004-02-05

Similar Documents

Publication Publication Date Title
US10564699B2 (en) Dynamically controlling cache size to maximize energy efficiency
US6631474B1 (en) System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
KR101056322B1 (en) Convergence Devices Using Power Indicator-Based Dynamic Program Throttling
US6901521B2 (en) Dynamic hardware control for energy management systems using task attributes
CN106155265B (en) Power efficient processor architecture
US7185171B2 (en) Semiconductor integrated circuit
US20050132239A1 (en) Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
WO2006019973A1 (en) Power management coordination in multi-core processors
Tang et al. Power savings in embedded processors through decode filter cache
KR20100090703A (en) Configurable translation lookaside buffer
US8806181B1 (en) Dynamic pipeline reconfiguration including changing a number of stages
JPH0969063A (en) Low-electric-power memory system
CN112230992B (en) Instruction processing device, processor and processing method thereof comprising branch prediction loop
US9329666B2 (en) Power throttling queue
JP2015122094A (en) Low-complexity instruction prefetch system
JP2001022582A (en) Microprocessor of low power consumption and microprocessor system
US9772678B2 (en) Utilization of processor capacity at low operating frequencies
US7114089B2 (en) System for controlling operation of a processor based on information contained within instruction word
US7263621B2 (en) System for reducing power consumption in a microprocessor having multiple instruction decoders that are coupled to selectors receiving their own output as feedback
KR100416858B1 (en) Apparatus for processing instruction
JP2001195302A (en) Instruction loop buffer
JP2007521538A (en) Processor using demand driven clock throttling power reduction
US7290153B2 (en) System, method, and apparatus for reducing power consumption in a microprocessor
JP4404373B2 (en) Semiconductor integrated circuit
Yang et al. Dynamically resizable instruction cache: An energy-efficient and high-performance deep-submicron instruction cache

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: 20120120

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee