[go: up one dir, main page]

KR100307603B1 - 저전력데이타처리장치 - Google Patents

저전력데이타처리장치 Download PDF

Info

Publication number
KR100307603B1
KR100307603B1 KR1019940032490A KR19940032490A KR100307603B1 KR 100307603 B1 KR100307603 B1 KR 100307603B1 KR 1019940032490 A KR1019940032490 A KR 1019940032490A KR 19940032490 A KR19940032490 A KR 19940032490A KR 100307603 B1 KR100307603 B1 KR 100307603B1
Authority
KR
South Korea
Prior art keywords
instruction
command
repeat
group
buffer
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1019940032490A
Other languages
English (en)
Other versions
KR950020218A (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 가나이 쓰도무
Publication of KR950020218A publication Critical patent/KR950020218A/ko
Application granted granted Critical
Publication of KR100307603B1 publication Critical patent/KR100307603B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/20Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters
    • G09G3/34Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source
    • G09G3/36Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes for presentation of an assembly of a number of characters, e.g. a page, by composing the assembly by combination of individual elements arranged in a matrix no fixed position being assigned to or needed to be assigned to the individual characters or partial characters by control of light from an independent source using liquid crystals
    • G09G3/3611Control of matrices with row and column drivers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/343Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a character code-mapped display memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

내장한 프로그램ROM등의 명령메모리등에 저장한 프로그램에 따르는 순차처리를 실행하는 데이타처리장치에 관한 것으로써, 리피트대상명령의 액세스제어에 의한 저전력화를 실행하기 위해, 반복해서 실행하는 일련의 리피트대상명령군을 저장해서 명령메모리 대신에 액세스되는 소비전력이 적은 CMOS등으로 이루어지는 명령버퍼, 리피트대상명령군을 명령버퍼에 그 용량분만큼 선두의 리피트대상명령에서 저장시키는 리피트제어회로를 마련하는 구성으로 하고, 명령버퍼의 용량분만큼의 리피트대상명령에 대한 액세스분의 저전력화를 도모하고, 또 리피트대상명령군이 다중루프구조인 경우에도 선두의 리피트명령에서 명령버퍼에 유지해둠과 동시에 앞의 리피트명령의 명령버퍼내의 저장장소를 기억하는 스택에리어를 마련하는 구성으로 하여 다중루프구조의 리피트대상명령에 대처한다.

Description

저전력 데이타처리장치
제 1 도는 본 발명의 저전력 데이타처리장치의 본 발명에 관한 구성의 1실시예를 도시한 블럭도.
제 2 도는 제 1 도에 있어서의 리피트제어회로의 본 발명에 관한 구성의 1실시예를 도시한 블럭도.
제 3 도는 제 1 도에 있어서의 명령버퍼의 본 발명에 관한 구성의 1실시예를 도시한 블럭도.
<도면의 주요부분에 대한 부호의 설명>
100:데이타처리장치, 101:명령메모리, 102:셀렉터, 103:명령페치레지스터, 104:명령디코더, 105:연산회로, 106:프로그램카운터, 107:리피트제어회로, 108:명령버퍼, 110:명령메모리로 부터의 명령코드출력, 111:명령버퍼로 부터의 명령코드출력, 113:프로그램카운터의 제어신호, 114:명령코드셀렉터의 제어신호, 116:연산회로의 제어신호, 117:리피트제어회로용의 제어신호, 117a:리피트제어개시신호, 117b:리피트스텝수 오퍼랜드, 117c:리피트횟수 오퍼랜드, 118:명령버퍼의 제어신호, 118a:레지스터어드레스신호, 118b:명령버퍼라이트 인에이블신호, 118c:명령버퍼리드 인에이블신호, 119:프로그램어드레스신호, 121:명령코드 데이타신호, 122:명령메모리인에이블신호, 123:리피트동작용의 제어신호, 123a:리피트선두어드레스 입력제어신호, 123b:리피트선두어드레스, 200:리피트스텝레지스터, 201:리피트스텝제어회로, 202:라이트인에이블플래그, 203:리피트제어플래그, 204:스텝카운트레지스터, 205:업카운터, 205a:비교회로, 206:리피트횟수 제어회로, 207:리피트횟수 카운트레지스터, 208:다운카운터, 208a:비교회로, 211:입력데이타선택 제어신호, 212:입력데이타선택 제어신호, 213:리피트종료 제어신호, 214a:가장 바깥의 리피트선두 어드레스레지스터, 214b:리피트선두어드레스레지스터, 215:스택에리어, 216:명령버퍼용 어드레스생성회로, 217:비교회로, 218:명령버퍼 오버플로신호, 300:어드레스디코더, 301a:명령코드레지스터, 301b:명령코드레지스터, 301c:명령코드레지스터, 302a:어드레스디코드신호, 302b:어드레스디코드신호, 302c:어드레스디코드신호.
본 발명은 내장한 프로그램ROM등의 명령메모리등에 저장한 프로그램에 따르는 순차처리를 실행하는 데이타처리장치에 관한 것으로써, 특히 내장전원을 갖고, 저전력화가 필요한 휴대용의 각종 미디어단말등에 사용하는데 적합한 저전력데이타처리장치에 관한 것이다.
아날로그의 신호를 처리하는 기술을 사용한 휴대용의 단말은 종래부터 이동무선전화등으로 보급이 진행되고 있지만, 이용자수의 증대와 장래의 멀티미디어대응의 휴대용의 단말을 고려했을때, 취급하는 신호의 디지탈화는 필연적이며, 실제로 이미 디지탈신호를 취급하는 휴대용의 단말도 등장하고 있다. 그러나, 종래의 기술에 의해서 개발된 디지탈신호 처리장치를 사용한 단말에서는 소비전력의 문제로 내장전원의 수명이 반드시 만족하는 정도의 길이를 유지하는 것은 곤란하다.
내장전원의 수명의 연장을 도모하는 기술로써는 내장전원 그 자체의 유지전력용량을 증대시키는 것이 첫번째로 고려되지만, 반대로 동일한 처리를 보다 적은 전력소비량으로 실현할 수 있으면 마찬가지로 목적은 달성된다. 또, 내장전원의 용량을 증대시키는 경우와 달리 단말 자체의 용적이나 중량의 증대를 수반할 가능성도 없고, 오히려 소비전력량의 저하에 의해서 발열량이 저감하여 이용자의 쾌적도가 향상하는 이점이 있다.
이와 같은 처리에 걸리는 소비전력량을 저감하기 위해서는 처리알고리듬의 개량도 유효하지만 동일한 처리알고리듬에서도 그것을 실행하는 단계에서 보다 적은 전력소비량으로 실현할 수 있으면 그것도 매우 유효하다. 디지탈의 데이타처리는 신호처리용의 마이크로프로세서로 실행되지만, 그 처리는 기본적으로 우선 미리 프로그램된 일련의 명령을 메모리에서 리드하고, 다음에 그 명령코드를 디코드하며, 마지막에 그 명령을 실행하는 순서로 진행해 간다. 프로그램을 저장하고 있는 메모리는 일반적인 범용 마이크로프로세서에서는 외부의 범용 메모리에 마련하고, 거기에서 순차로 리드해서 프로세서로 페치하는 형식을 채용하고 있지만, 디지탈신호처리용의 프로세서, 특히 휴대용의 단말에 사용되는 경우에는 하드웨어 전체의 용적을 가능한한 작게할 필요가 있으므로, 프로그램메모리도 내장시키는 것이 보통이다. 이와 같은 프로그램메모리내장형의 마이크로프로세서가 소비하는 전력은 이 프로그램메모리로 부터의 명령의 리드가 상당한 비율을 차지하고 있고, 동일한 프로그램을 실행하고자 해도 그 사이의 프로그램메모리의 액세스빈도를 저감시킬 수 있으면 소비전력을 저감할 수 있다.
휴대전화에 있어서의 음성신호처리를 비롯한 각종 디지탈신호처리에서는 수스텝부터 많아도 수십스텝이내의 프로그램모듈을 몇번이라도 반복해서 실행하는 리피트처리가 빈번하게 실행되는 장점이 있다. 이 부분이 처리의 전체에 차지하는 비율은 적어도 20%에서 많은 경우는 50%를 넘는 경우도 있다. 일반적으로는 어떤 지정된 횟수만큼 이 반복실행할 일련의 명령의 선두명령의 번지로 분기하는 것에 의해서 실현되지만, 이 조건분기명령을 매번 실행하는 것은 낭비가 많다. 그 때문에 종래부터 디지탈신호처리용의 프로세서에서는 반복실행할 일련의 명령모듈의 최초에 미리 반복할 명령의 스텝수와 반복하는 횟수, 즉 리피트횟수를 지정하는 명령을 마련하고, 이 명령모듈의 최후미까지 오면 자동적으로 모듈의 선두번지로 되돌아가 분기명령의 실행에 의한 오버헤드를 없애는 제어가 채용되고 있다.
그러나, 어느쪽으로 해도 매회 동일한 내용의 모듈이 리드되게 되어 불필요한 전력을 소비하고 있었다.
리피트모듈등의 반복액세스되는 명령을 매회 프로그램메모리에서 리드하는 수고를 생략하는 기본적인 기술로써, 예를들면 일본국 특허공개공보 평성 4-293124호에 기재된 「데이타처리프로세서」가 알려져 있다. 이것은 프로그램을 저장하고 있는 메모리를 내장하고 있는 데이타처리장치에 있어서, 반복 실행되는 일련의 명령을 저장하기 위해 하나 또는 여러개의 명령레지스터를 마련하고, 통상은 매사이클 프로그램을 저장하고 있는 프로그램메모리 (이하, 명령메모리라 한다)에서 실행할 명령을 리드해서 특정의 명령레지스터에 입력하지만, 특정의 명령을 반복실행할 내부상태를 발생시키기 위한 리피트명령을 실행했을때에는 1회째의 루프에서 명령을 명령메모리에서 리드할때 그것을 반복할 일련의 명령에 따른 수의 명령레지스터에 기억해두고 2회째 이후의 루프는 명령메모리에서 리드하는 것은 아니고 각 명령레지스터가 유지하고 있는 명령코드를 그대로 출력해서 명령메모리의 액세스를 정지하도록 한 것이다. 이것에 의해서, 리피트모듈의 부분에서 소비되는 메모리액세스에 필요한 전력이 대폭적으로 저감되어 저소비전력화의 기본적인 목적은 달성된다.
그러나, 이 기술에는 몇가지의 제약조건이 존재한다. 우선, 리피트명령에 의해서 지정되는 반복실행할 명령스텝수는 명령레지스터의 수로 제한된다. 만약, 명령레지스터의 수를 초과하는 스텝수를 리피트명령으로 지정한 경우, 초과한만큼의 명령에 의해서 최초에 저장된 명령군내의 동일한 수의 명령정보가 시프트아웃되어 소실되어 버리므로, 목적을 달성할 수 없게 된다. 또, 리피트할 모듈은 항상 단순루프만으로 구성된다라고는 한정하지 않으며, 다중루프구조로 되는 경우도 있지만, 그와 같은 경우의 고려가 이루어져 있지 않으므로, 단순루프만으로 제한된다. 또, 반복실행할 일련의 리피트대상명령군의 판별을 리피트대상명령군의 직전에 리드되는 특별한 리피트명령의 해독에 따라 실행하고 있고, 리피트대상명령군후에 리드되는 리피트지시명령에 대한 고려가 이루어져 있지 않으므로, 「if then goto」등으로 리피트지시되는 명령에 대응할 수 없다.
해결하고자 하는 문제점은 종래의 기술에서는 명령레지스터의 수를 초과하는 스텝수를 리피트명령으로 지정한 경우, 초과만큼의 명령에 의해서 최초에 저장된 명령군내의 동일한 수의 명령정보가 시프트아웃되어 소실되므로, 리피트명령에 의해서 지정되는 반복실행할 명령스텝의 수는 명령레지스터의 수로 제한되어 있는 점, 리피트할 모듈이 다중루프구조로 되는 경우의 고려가 이루어져 있지 않으므로 단순루프에만 제한되어 있는 점 및 리피트대상명령군의 다음에 리드되는 리피트지시명령에 대응할 수 없는 점이다.
본 발명의 목적은 이들 종래기술의 과제를 해결하고, 리피트모듈의 메모리엑세스제어에 의한 저소비전력화의 고효율화를 가능하게 한 저전력데이타처리장치를 제공하는 것이다.
상기 목적을 달성하기 위해, 본 발명의 저전력데이타처리장치는 (1) 명령메모리에서 명령레지스터로 페치하는 명령이 반복실행할 리피트대상명령이면 이 리피트대상명령을 구비한 내부레지스터에 저장하고, 리피트대상명령을 반복실행할때 이 리피트대상명령을 내부레지스터에서 명령레지스터로 페치하는 것에 의해 저전력화를 도모하는 데이타처리장치에 있어서, 제1도에 도시한 바와 같이, 반복실행할 일련의 리피트대상명령군을 저장하는 명령버퍼(108)과 이 일련의 리피트대상명령군의 실행시에는 각 리피트대상명령을 명령버퍼(108)로 순차로 전송함과 동시에 리피트대상명령군의 수가 명령버퍼(108)의 저장용량을 초과하는 경우에는 나머지의 리피트대상명령군의 명령버퍼(108)로의 저장을 정지시키고, 이 명령버퍼(108)에 저장한 각 리피트대상명령군의 리드제어에 사용하는 정보를 기억하고, 일련의 리피트대상명령군의 다음의 실행시 이후는 기억한 리드제어용의 정보에 따라 명령버퍼(108)에 저장한 리피트대상명령군에만 대해서 명령버퍼(108)에서 명령레지스터(103)으로의 페치를 실행하는 리피드제어회로(107)을 마련한 것을 특징으로 한다.
또, (2) 상기 (1)에 기재한 저전력데이타처리장치에 있어서, 리피트제어회로 (107)은 일련의 리피트대상명령군이 다중루프구조를 갖고, 명령버퍼로의 저장중에 새로운 반복실행할 리피트대상명령군을 실행하는 경우에 앞의 리피트대상명령군에 대응하는 리드제어용의 정보를 세이브시키는 제2도에 도시한 스택에리어(215)를 구비하고, 새로운 리피트대상명령군을 앞의 저장중인 리피트대상명령군에 이어서 명령버퍼로 전송함과 전송함과 동시에 새로운 리피트대상명령군에 대한 실행후에 스택에리어(215)로 세이브한 리드제어용의 정보에 따라 앞의 리피트대상명령군에 대한 처리를 실행하는 것을 특징으로 한다.
또, (3) 상기 (1) 또는 (2)중 어느 하나에 기재한 저전력데이타처리장치에 있어서, 제1도에 도시한 명령버퍼(108)은 CMOS게이트로 이루어지는 것을 특징으로 한다.
또, (4) 상기 (1)~(3)중 어느 하나에 기재한 저전력데이타처리장치에 있어서, 일련의 리피트대상명령군의 바로 뒤에에 있고 이 일련의 리피트대상명령군의 선두어드레스로의 소정의 횟수분의 분기를 지정하는 조건분기명령의 해독을 실행하는 제1도에 도시한 디코더(104)를 마련하고, 이 디코더(104)가 조건분기명령을 해독한 경우, 리피트제어회로(107)은 일련의 리피트대상명령군의 다음의 실행시에 이 리피트대상명령군을 명령버퍼로 전송하는 것을 특징으로 한다.
본 발명에 있어서는 반복실행할 일련의 리피트대상명령군을 명령버퍼에 저장하고, 이 명령버퍼에서 리피트대상명령군을 명령레지스터로 페치해서 명령메모리로의 액세스를 불필요로 하는 것에 의해 이 명령메모리로의 액세스에 의한 소비전력의 저감을 도모함과 동시에 일련의 리피트대상명령군의 수가 명령버퍼의 기억용량을 초과하는 경우에는 그 이후의 리피트대상명령군의 명령버퍼로의 라이트를 정지하고 통상과 동일하게 명령메모리로 부터의 명령의 리드만을 실행한다. 그리고, 명령메모리로 부터의 1회째의 명령의 리드가 종료하면 즉시 명령메모리의 액세스를 정지하고 2회째이후는 명령버퍼에서 필요한 리피트대상명령을 인출하지만, 명령버퍼에 저장할 수 없었던 부분에 왔을때에는 재차 명령메모리의 액세스를 실행해서 통상과 동일한 명령리드동작을 실행한다. 이와 같이, 일련의 리피트대상명령군수가 명령버퍼의 용량을 초과하고 있는 경우에도 적어도 명령버퍼에 저장할 수 있는 부분만은 명령메모리로 부터의 리드를 정지할 수 있도록 제어한다. 이것에 의해, 리피트할 명령스텝수의 제한을 회피할 수 있다.
또, 일련의 리피트대상명령군의 실행 및 명령버퍼로의 저장시, 그 리피트대상명령군의 최후미에 오기전에 새로운 일련의 리피트대상명령군이 실행되는 경우는 이 새로운 리피트대상명령군을 실행하기 전에 앞의 리피트대상명령군의 반복실행제어를 위해 유지하고 있던 정보를 스택에리어로 세이브한후 새로운 리피트대상명령군의 실행제어를 위한 정보를 앞의 리피트대상명령군과 마찬가지로 페치하고 새로운 리피트대상명령군을 실행한다. 이때, 앞의 리피트대상명령군의 실행제어동작에 의해서 명령버퍼에 도중까지 라이트되어 있던 리피트대상명령군은 그대로 명령버퍼에 유지한다. 이것에 의해, 일련의 리피트대상명령군이 다중루프구조인 경우에도 명령버퍼를 유효하게 기능시킬 수 있다.
또, 명령버퍼는 반복실행할 일련의 리피트대상명령군의 전부 또는 일부를 저장하는 만큼의 용량을 구비하는 소용량의 버퍼로써 COMOS게이트등의 저소비전력의 소자로 이루어지며, 부여된 어드레스오퍼랜드로 지정된 레지스터마다 라이트와 리드를 할 수 있다.
또, 일련의 명령군의 바로 뒤에 이 명령군의 선두어드레스에 소정 횟수만큼 분기시키는 프로그램제어명령이 있으면 분기지의 선두어드레스에서 프로그램제어명령까지의 명령군을 일련의 리피트대상명령군으로하고 최초의 분기후의 명령메모리로 부터의 리드 및 실행시에 이 리피트대상명령군을 명령버퍼에 저장한다. 그리고, 프로그램제어명령을 저장한후에 즉시 명령메모리의 액세스를 정지하고, 그후는 일련의 리피트대상명령군을 명령버퍼에서 리드해서 실행한다. 이와 같이 해서 「if then goto」등 리피트대상명령군후에 리드되는 리피트지시명령에 대응할 수 있다.
이하, 본 발명의 실시예를 도면에 의해 상세하게 설명한다.
제1도는 본 발명의 저전력데이타처리장치의 본 발명에 관한 구성의 1실시예를 도시한 블럭도이다.
제1도에 있어서, 저전력데이타처리장치(100)은 리드할 명령의 어드레스를 발행하는 프로그램카운터(106), 실행할 프로그램을 저장하고 있는 온칩의 명령메모리(101), 명령메모리(101)에서 리드한 반복실행할 일련의 명령(리피트대상명령군)을 저장하는 CMOS게이트등의 소자로 이루어지는 본 발명에 관한 명령버퍼(108), 명령메모리(101)의 출력(110)과 명령버퍼(108)의 출력(111)중 어느 한쪽을 선택하는 셀렉터(102), 이 셀렉터(102)로 선택한 명령코드를 페치해서 유지하는 페치레지스터(103), 페치한 명령코드(121)을 해독해서 필요한 제어신호를 생성하는 명령디코더(104), 명령에 따라서 필요한 연산을 실행하는 연산회로(105), 반복실행할 일련의 리피트대상명령에 관한 정보를 나타내는 리피트명령을 실행했을때 본 발명에 관한 제어등을 실행하는 리피트제어회로(107)로 구성된다.
이와 같은 구성의 저전력데이타처리장치(100)에 있어서, 프로그램카운터 (106)에서 발행한 프로그램어드레스신호(119)에 의해서 명령메모리(101)에서 리드한 명령코드(110)을 셀렉터(102)를 거쳐서 페치레지스터(103)으로 페치한다. 이 페치레지스터(103)에서 출력한 명령코드(121)을 명령디코더(104)로 해독해서 제어신호(116)을 생성하고, 이 제어신호(116)에 따르는 소정의 처리를 연산회로(105)로 실행한다. 리피트제어회로(107) 및 명령버퍼(108)은 리피트명령을 실행하지 않으면 불활성상태이고, 제어신호(114)에 의해 셀렉터(102)는 항상 명령메모리(101)로 부터의 출력신호를 계속 선택한다. 또, 리피트명령은 반복실행할 일련의 리피트대상명령의 바로 전에 있고, 일련의 리피트대상명령군의 스텝수와 리피트횟수를 지정한다.
이 리피드명령을 명령디코더(104)로 디코드하면 명령디코더(104)는 리피트제어에 필요한 제어신호군(117)을 리피트제어회로(107)로 전달한다. 또, 프로그램카운터(106)으로도 제어신호(113)을 전송하고 리피트동작개시를 알린다. 본 실시예에 나타낸 시스템에서는 통상 파이프라인처리를 실행하고 있는 경우가 많고, 리피트명령을 실행했을때 프로그램카운터는 반복실행할 일련의 명령의 선두어드레스가 아닌 이미 훨씬 앞의 명령의 어드레스를 발행하고 있는 경우가 있으므로, 그와 같은 경우에는 명령버퍼(108)로의 페치를 위해 재차 리피트할 명령군의 선두어드레스에서 다시 발행할 필요가 있다. 제어신호(113)은 그를 위해 필요한 것이다. 시스템구조에 따라서는 그와 같은 제어가 불필요한 경우도 있으므로, 그 경우는 제어신호(113)도 불필요하다. 어느것으로 해도 이 부분은 본 발명과는 직접 관계가 없으며, 어떤 제어를 실행해도 그것에 의해서 본 발명을 제약하는 것은 아니다.
제어신호(113)에 의해서 리피트동작의 개시를 검지한 프로그램카운터(106)은 다시 반복실행할 일련의 명령의 선두어드레스를 (119)상으로 출력하고, 명령메모리(101)을 액세스함과 동시에 그 어드레스데이타를 리피트제어회로(107)로도 전송하고, 리피트제어회로(107)내에서 리피트제어에 필요한 정보로서 유지한다. 이 정보는 반복실행할 일련의 명령의 최후의 명령을 리드한후, 즉시 선두의 명령어드레스를 신호(123)으로써 프로그램카운터(106)에 부여하기 위해 사용하고, 동시에 명령버퍼(108)의 용량과 반복실행할 일련의 명령의 스텝수와의 대소비교를 위해서도 사용한다.
명령메모리 인에이블신호(122)는 통상 항상 인에이블상태이고, 명령코드의 셀렉터(102)의 제어신호(114)는 항상 명령메모리(101)의 출력신호(110)을 선택하는 상태를 나타내지만, 리피트명령을 실행했을때 1회째에는 반복실행할 일련의 명령을 명령메모리에서 리드하기 위해 동일한 상태를 유지하고, 2회째이후는 명령버퍼(108)에서 필요한 명령코드를 공급하므로 명령메모리인에이블신호(122)는 디스에이블상태로 되어 명령메모리(101)의 액세스를 정지하고 제어신호(114)는 셀렉터(102)가 명령버퍼(108)로 부터의 출력신호(111)을 선택하는 제어상태로 전환된다. 그후, 반복실행할 일련의 명령이 지정된 횟수만큼 반복실행하여 종료할때까지 이 상태를 유지하고, 종료후 통상의 상태로 되돌린다.
제2도는 제1도에 있어서의 리피트제어회로의 본 발명에 관한 구성의 1실시예를 도시한 블럭도이다.
본 실시예에 있어서, 제1도에 있어서의 명령디코더(104)에서 리피트제어회로 (107)로의 제어신호(117)은 리피트개시를 알리는 제어신호(117a)와 반복실행할 명령의 스텝수 오퍼랜드신호(117b) 및 반복실행할 횟수 오퍼랜드신호(117a)로 이루어진다. 리피트개시를 알리는 제어신호(117a)가 오면 리피트제어회로(107)은 리피트스텝 제어회로(201)에 있어서 제1도의 명령버퍼(108)의 제어에 사용하는 라이트인에이블플래그(202)와 리피트제어플래그(203)을 세트하고, 리피트제어회로(107) 전체 및 제1도의 명령버퍼(108)을 활성화하고, 라이트인에이블신호(118b)를 인에이블상태로 해서 제1도의 명령버퍼(108)로의 라이트를 개시한다.
우선, 리피트제어회로(107)은 제1도의 프로그램운터(106)에서 전송되어 온 프로그램어드레스신호(119)에 의해 반복실행할 명령의 선두어드레스를 레지스터 (214a) 및 (214b)에, 또 제1도의 명령으로 디코더(104)에서 전송되어온 리피트스텝수 오퍼랜드신호(117b)를 리피트스텝레지스터(200)에, 리피트횟수 오퍼랜드신호(117c)를 리피트횟수카운트레지스터(207)에 각각 세트한다. 또, 리피트제어회로(201)과 비교회로(205a)에 의해 스텝카운트레지스터(204)에는 초기값으로써 「1」을 세트하고, 그후 1스텝진행할때마다 「+1」씩 업카운터(205)에 의해서 인크리먼트한다.
리피트스텝제어회로(201)은 스텝카운트레지스터(204)의 내용과 리피트스텝레지스터(200)의 내용을 항상 비교한다. 양자가 일치했을때 1회째의 리피트가 종료한 것으로 해서 다운카운터(208) 및 비교회로(208a)에 의해서 리피트횟수 카운트레지스터(207)의 내용을 「-1」디크리먼트하고, 또 라이트인에이블플래그(202)를 클리어해서 라이트인에이블신호(118a)를 디스에이블상태로 하고, 또 반대로 리드인에이블신호(118c)를 인에이블상태로 해서 제1도의 명령버퍼(108)을 리드상태로 전환한다.
제2도에 있어서, (118a)는 제1도의 명령버퍼(108)에 공급하는 레지스터어드레스신호이고, 이 레지스터어드레스신호(118a)의 구체적인 생성방법은 여러가지 고려된다. 또, 제1도의 명령버퍼(108)이 2누승의 용량을 갖고 있으면 제1도의 프로그램카운터(106)이 발행하는 어드레스의 하위수비트를 그대로 공급하는 것에 의해 용이하게 실현할 수 있다. 예를들면 제1도의 명령버퍼(108)이 32워드의 용량인 경우 제1도의 프로그램카운터(106)이 발생하는 프로그램어드레스신호(119)의 하위5비트를 어드레스생성회로(216)에서 잘라내는 것에 의해 레지스터어드레스신호(118a)을 생성하고, 제1도의 명령버퍼(108)의 어드레스로 할 수 있다.
제3도는 제1도에 있어서의 명령버퍼의 본 발명에 관한 구성의 1실시예를 도시한 블럭도이다.
제2도에 도시한 리피트제어회로(108)에서 부여된 레지스터어드레스신호 (118a)를 어드레스디코더(300)으로 디코드하고, 어드레스디코드신호(302a)~(302c)중의 하나를 인에이블로 해서 대응하는 명령코드레지스터(301a)~(301c)중의 하나를 선택한다. 반복실행할 일련의 명령을 제1도에 있어서의 명령메모리(101)에서 처음에 리드할때는 상술한 바와 같이, 제1도에 있어서의 명령버퍼(108)의 라이트인에이블신호(118b)는 인에이블 상태이고, 어드레스디코더(300)에서 선택한 레지스터의 입력측의 게이트가 온해서 제1도의 명령메모리(101)로 부터의 명령코드(명령메모리로 부터의 명령코드출력(110))를 입력한다.
2회째이후의 리피트시에는 제2도에 도시한 리피트제어회로(107)로 부터의 라리트인에이블신호(118b)는 디스에이블상태이고, 레지스터어드레스신호(118a)에 의해서 선택한 명령코드레지스터(301a)~(301c)의 출력측의 게이트가 온해서 명령코드레지스터(301a)~(301c)의 내용을 명령코드출력신호(111)로써 제1도의 셀렉터(102)로 출력한다. 이때, 제1도에 있어서의 셀렉터(102)는 이 명령코드출력신호(111)을 선택해서 제1도의 페치레지스터(103)으로 송출한다.
이와 같이 해서, 1회에는 제1도의 명령메모리(101)에서 리드한 반복실행할 명령스텝을 제1도의 페치어드레스(103)으로 전송함과 동시에 명령버퍼(108)에 라이트하고, 2회째 이후는 제1도의 명령메모리(101) 대신에 제1도의 명령버퍼(108)에서 명령코드를 공급한다.
다음에 반복실행할 일련의 리피트대상명령군의 수가 준비된 제1도의 명령버퍼(108)의 용량보다도 큰 경우의 동작에 대해서 제2도를 사용해서 설명한다.
이와 같은 경우, 리피트제어회로(107)은 주로 리피트스텝제어회로(201)에 의해 처리를 실행한다. 즉, 일련의 리피트대상명령군의 수가 제1도의 명령버퍼(108)의 용량보다도 큰 경우에는 리피트스텝제어회로(201)에 있어서 라이트인에이블플래그(202)를 세트하고 있는 상태에서 리피트스텝레지스터(200)과 스텝카운트레지스터 (204)의 내용이 일치하기 전에 레지스터어드레스신호(118a)가 재차 반복실행할 일련의 명령의 선두의 명령이 저장된 제1도의 명령버퍼(108)의 레지스터어드레스를 나타내게 된다. 그리고, 비교회로(217)은 레지스터어드레스신호(118a)와 가장 밖의 리피트선두어드레스레지스터(214a)에 저장되어 있는 반복실행할 일련의 명령의 선두어드레스의 하위데이타를 항상 비교하고, 양자가 일치했을때 반복실행할 명령스텝수가 명령버퍼의 용량보다도 큰 것을 나타내는 명령버퍼오버플로신호(218)을 리피트스텝제어회로(201)로 출력한다.
이 명령버퍼오버플로신호(218)에 따라 리피트스텝제어회로(201)은 라이트인에이블플래그(202)를 클리어해서 제1도의 명령버퍼(108)로의 라이트를 정지하고, 그후는 리피트스텝레지스터(200)과 스텝카운트레지스터(204)의 내용이 일치할때까지 통상과 같이 스텝카운트레지스터(204)를 업카운트해간다. 이 동안 제1도의 명령버퍼(108)은 명령버퍼 라이트인에이블신호(118b)와 명령버퍼리드인에이블신호 (118b)의 양 인에이블신호가 모두 디스에이블상태로써 동작을 정지한다. 한편, 리피트스텝제어회로(201)은 명령메모리인에이블신호(122)를 인에이블상태로 유지해서 제1도의 명령메모리(101)로 부터의 리드동작을 속행시킨다. 이 결과, 반복실행할 명령스텝수가 제1도의 명령버퍼(108)의 용량보다도 큰 경우에도 적어도 선두의 명령에서 명령버퍼에 라이트된 부분까지는, 2회째 이후는 제1도의 명령버퍼(108)에서 명령코드를 공급할 수 있다. 또, 본 실시예에서는 가장 밖의 리피트선두어드레스레지스터(214a)에 유지하는 데이타를 반복실행할 일련의 명령의 선두어드레스로 했지만, 그 어드레스에 대응해서 명령버퍼용 어드레스생성회로(216)이 발행한 명령버퍼의 어드레스를 유지하고 있어도 동일한 제어가 가능한 것은 물론이다.
상술한 1회째의 리피트제어의 기간, 리피트제어회로(107)은 리피트횟수 제어회로(206)으로 부터의 명령코드셀렉터의 제어신호(114)에 의해 제1도의 셀렉터(102)에 제1도의 명령메모리(101)로 부터의 출력을 계속 선택시키며, 또한 명령메모리인에이블신호(122)에 의해 제1도의 명령메모리(101)을 인에이블상태로 유지한다.
그리고, 2회째의 리피트제어를 개시할때, 리피트제어회로(107)은 우선 리피트횟수 제어회로(206)에서 리피트선두어드레스 입력제어신호(123a)를 송출해서 프로그램카운터(106)에 리피트선두어드레스레지스터(214b)로 유지하고 있는 리피트선두어드레스(123b)를 세트한다.
상술한 바와 같이, 라이트인에이블플래그(202)는 클리어하고 있으므로, 라이트인에이블신호(118b)는 디스에이블로 되고, 반대로 리드인에이블신호(118c)는 인에이블로 되어 제1도의 명령버퍼(108)은 리드상태로 된다. 그 결과, 리피트횟수 제어회로(206)으로 부터의 명령코드셀렉터의 제어신호(114)에 의해 제1도의 셀렉터(102)는 제1도의 명령버퍼(108)로 부터의 출력(명령버퍼로 부터의 명령코드출력(111))을 선택해서 제1도의 명령페치레지스터(103)에 입력한다.
리피트제어플래그(203)은 2회째 이후도 세트상태를 유지한다.
또, 스텝카운트레지스터(204)을 클리어해서 재차 업카운터(205)에 의한 업카운트를 개시한다.
그리고, 리피트스텝제어회로(201)은 스텝카운트레지스터(204)의 내용과 리피트스텝레지스터(200)의 내용을 항상 비교하고, 양자가 일치했을때 2회째의 리피트가 종료한 것으로 해서 다운카운티(208)에 의해서 리피트횟수 카운트레지스터 (207)을 재차「-1」디크리먼트한다. 또, 리피트스텝제어회로(201)은 명령메모리인에이블신호(122)에 의해 제1도의 명령메모리(101)을 디스에이블상태로 하여 메모리액세스를 정지한다.
이와 같이, 반복실행할 명령스텝수가 제1도의 명령버퍼(108)의 기억용량보다도 큰 경우, 제1도의 명령버퍼(108)에 유지하고 있는 반복실행할 명령을 전부 출력한 직후에 명령버퍼용 어드레스생성회로(216)이 출력하는 레지스터어드레스신호 (118a)는 재차 반복실행할 일련의 명령의 선두의 명령이 저장된 제3도에 있어서의 명령버퍼(108)의 각 명령코드레지스터(301a)~(301c)의 레지스터어드레스를 나타내므로, 리피트스텝제어회로(301)은 명령메모리인에이블신호(122)를 인에이블상태로 되돌리고 제1도의 셀렉터(102)의 출력을 제1도의 명령메모리(101)의 출력신호(명령메모리로 부터의 명령코드출력(110)으로 전환한다. 이것에 의해, 상술한 명령버퍼로의 라이트의 경우와 마찬가지로 그후 스텝카운트레지스터(204)와 리피트스텝레지스터(200)의 내용이 일치할때까지 제1도의 셀렉터(102)는 재차 제1도의 명령메모리(101)에서 반복실행할 명령스텝의 나머지를 리드한다.
이와 같이, 반복실행할 일련의 명령중 제1도의 명령버퍼(108)에 저장할 수 없는 부분은 매회 제1도의 명령메모리(101)에서 리드하도록 제어하는 것에 의해, 사용자는 반복실행할 명령스텝수의 제약없이 명령버퍼의 소비전력저감의 효과를 나타낼 수 있다. 그후, 리피트횟수 카운트레지스터(207)이 「1」로 될때까지 동일한 처리를 실행하고, 스텝카운트레지스터(204)와 리피트스텝레지스터(200)의 내용이 일치했을때 리피트횟수 카운트레지스터(207)이 이미 「1」이면 지정된 일련의 명령의 반복동작이 모두 종료한 것으로 되고, 리피트스텝제어회로(201)은 리피트제어플래그(203)을 클리어하고, 리피트횟수 제어회로(206)으로 부터의 명령코드셀렉터의 제어신호(114)에 의해 제1도의 셀렉터(102)에 제1도의 명령메모리(101)의 출력 (명령메모리로 부터의 명령코드출력(110))을 선택시키고, 또 명령메모리인에이블신호 (122)에 의해 제1도의 명령메모리(101)을 인에이블상태로 해서 통상의 명령페치동작상태로 되돌린다.
다음에 반복실행할 일련의 명령(리피트대상명령)군이 다중리피트구조인 경우의 동작에 대해서 제2도를 사용해서 설명한다.
다중리피트구조인 경우에는 리피트스텝 제어회로(201)에 있어서의 리피트제어플래그(203)이 세트되어 있는 상태에서 새로운 리피트명령이 실행되게 된다. 그리고, 새로운 리피트명령이 실행되었을때 리피트제어회로(107)은 우선 리피트제어용의 각 레지스터(리피트스텝 레지스터(200), 스텝카운트레지스터(204), 리피트횟수 카운트레지스터(207), 리피트선두어드레스레지스터(214b))의 내용 및 라이트인에이블플래그(202)와 리피트제어플래그(203)의 상태를 스택에리어(215)로 세이브한다. 그후는 최초의 리피트명령실행시와 동일한 초기설정동작을 실행한다. 단, 가장 밖의 리피트선두 어드레스레지스터(214a)만은 새로운 리피트명령의 실행전의 상태를 유지한다.
새로운 리피트명령의 초기값어드레스는 리피트선두어드레스레지스터(214b)에 유지하고, 리피트스텝레지스터(200)과 스텝카운트레지스터(204)의 내용이 일치할때마다 프로그램카운터를 리피트스텝의 선두어드레스로 되돌리기 위해 사용하지만, 제1도의 명령버퍼(108)에는 이미 최초의 리피트를 위한 명령스텝을 몇개 유지하고 있고, 이들 유지장소를 최초의 리피트명령의 제어가 완료할때까지 유지해야만 한다.
만약, 이 부분을 유지하지 않고 새로운 리피트명령에 의한 리피트할 명령스텝을 저장하기 위해 리라이트하면 그 리피트동작이 종료해서 원래의 최초의 리피트동작으로 복귀했을때 최초의 리피트동작이 속행되지 않게 된다. 이 문제를 해결하기 위해 가장 밖의 리피트선두어드레스레지스터(214a)는 최초의 리피트명령실행시의 내용을 리피트동작중에 새로운 리피트명령이 실행되어도 항상 유지한다.
리피트스텝레지스터(200)과 스텝카운트레지스터(204)의 내용이 일치하기 전에 가장 밖의 리피트선두어드레스레지스터(214a)의 하위데이타와 레지스터어드레스신호(118a)가 일치한 경우, 비교회로(217)은 명령버퍼의 오버플로를 검출해서 리피트스텝제어회로(201)에 통지한다. 이 통지를 받은 리피트스텝제어회로(201)은 명령버퍼 제어용의 라이트인에이블플래그(202)를 클리어해서 제1도의 명령버퍼(108)로의 라이트를 정지한다. 그후는 상술한 반복실행할 명령의 스텝수가 제1도의 명령버퍼(108)의 용량을 초과한 경우의 동작과 마찬가지로 제어를 진행해간다.
3중이상의 다중리피트구조인 경우에도 2중째와 동일한 동작을 실행할 수 있으면 좋다. 왜냐하면 2중째의 명령스텝도 여전히 가장밖의 리피트선두어드레스레지스터(214a)의 값에 의해서 유지되기 때문이다. 최초의 리피트동작에서 보면 2중째 이후의 반복실행할 명령은 최초의 1회째에 전부 제1도의 명령버퍼(108)에 라이트되어 있으므로, 2회째 이후는 재차 2중째 이후의 리피트명령을 실행했을때에는 이미 명령버퍼로의 라이트동작은 필요없지만, 본 실시예의 경우 2중째 이후의 리피트명령을 실행할때마다 명령버퍼제어용의 라이트인에이블플래그(202)를 세트하므로, 매회 그 부분은 라이트동작이 실행되지만 용장인 동작일뿐으로 특히 문제는 없다. 만약, 이용장라이트동작도 생략해서 보다 저소비전력화의 효과를 향상시키는 경우에는 명령버퍼로의 라이트인에이블플래그(202)를 최초의 리피트용과 2중째이후의 리피트용을 2개 준비하고, 최초의 리피트용의 플래그는 항상 유지하고 있으면 최초의 리피트의 2회째이후의 2중째이후의 리피트명령실행시에는 용장인 명령버퍼로의 라이트동작을 회피할 수 있다.
이상의 설명에 있어서는 반복실행할 일련의 명령의 직전에 명령의 스텝수와 리피트횟수를 지정하는 리피트명령을 구비한 데이타처리장치를 전제로 해서 설명했지만, 반드시 이와 같은 리피트명령이 구비되어 있어야만 하는 것은 아니다. 예를들면 어느 지정된 횟수만큼 반복실행할 일련의 명령의 선두어드레스로 분기하는 조건분기명령이 구비되어 있는 경우 제1도의 명령디코더(104)는 리피트명령대신으로써 이 분기명령을 해독한다. 이 경우, 리피트처리를 검지하는 것은 반복실행할 일련의 명령의 직후로 되므로 이 분기명령이 실행되었을때 이미 1회째의 일련의 명령의 실행은 종료하고는 있지만 2회째에 명령버퍼로의 라이트동작을 실행하고, 3회째이후는 명령메모리의 리드동작을 정지할 수 있어 명령메모리의 소비전력을 저감할 수 있다.
이상, 제1도~제3도를 사용해서 설명한 바와 같이, 본 실시예의 저전력데이타처리장치에서 명령버퍼는 프로그램메모리와 달리 1개의 리피트모듈의 스텝수정도의 용량이 있으면 좋으므로, CMOS게이트에 의한 레지스터파일등의 소비전력이 매우 적은 회로로 구성할 수 있어 소비전력의 대폭적인 저감을 실현할 수 있음과 동시에 명령버퍼의 용량과 반복실행할 명령스텝수의 관리를 하는 것에 의해서 명령버퍼의 용량보다도 큰 스텝수의 리피트모듈에서도 명령버퍼의 용량에 상당하는 부분은 저소비전력의 효과를 충분히 얻을 수 있다. 또, 리피트대상의 명령군이 다중리피트구조라도 2중째 이후의 리피트명령실행시에 1중째의 리피트로 이미 명령버퍼에 라이트된 부분을 유지하도록 제어하는 것에 의해 다중리피트구조의 프로그램이라도 적용할 수 있다.
또, 본 발명은 제1도~제3도를 사용해서 설명한 실시예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러가지로 변경할 수 있다. 예를들면 제2도에 있어서 반복실행할 명령의 스텝수를 카운트하는 제어부는 업카운터(205)와 비교회로(205a)로 구성되어 있지만 부여된 리피트스텝수 어퍼랜드(117b)에서 다운카운트하고, 「1」로 된 시점에서 1회째의 리피트종료로 하고, 2회째이후는 매회 리피트스텝레지스터(200)에 유지하고 있는 스텝수 오퍼랜드를 스텝카운트레지스터 (204)로 전송해서 재차 다운카운트하는 것이라도 좋다.
또, 반대로 리피트횟수를 제어하는 회로부도 제2도에서는 다운카운터(208)을 사용하고 있지만, 업카운터와 비교회로로 구성할 수 있는 것은 명백하다. 또, 본 실시예에서는 반복실행할 명령의 스텝수 오퍼랜드(117b)를 사용해서 명령버퍼의 라이트/리드스텝수를 다운카운터(208)로 제어하고 있지만, 리피트명령실행시에 리피트선두어드레스레지스터(214b)로 페치되는 반복실행할 명령의 선두어드레스와 반복실행할 명령의 스텝수 오퍼랜드(117b)에서 반복실행할 명령의 최후미어드레스를 계산해서 유지하고, 이 유지한 어드레스와 제1도의 프로그램카운터(106)으로 부터의 프로그램어드레스출력(119)를 비교하고, 일치했을때를 그 회의 리피트동작종료로 하는 것이라도 좋다.
또, 제1도에 있어서 리피트제어회로(107)은 독립적인 회로블럭을 구성하고 있을 필요는 없고 프로그램어드레스의 생성과 강한 관련이 있으므로, 프로그램카운터(106)과 일체로 된 하나의 회로블럭을 구성하고 있어도 관계없고, 명령버퍼(108)도 명령페치레지스터(103)에서 독립하고 있을 필요는 없고, 통상은 명령버퍼(108)내의 특정한 하나의 레지스터에 명령페치레지스터의 기능을 갖게 할 수 있는 것은 물론이다. 또, 본 실시예에서는 제1도의 데이타처리장치(100)에 내장된 명령메모리를 사용한 동작을 설명했지만 내장한 명령메모리가 반드시 모든 프로그램을 저장할 필요는 없고, 일부는 외부메모리에 의존하고 있어도 관계없다.
본 발명에 의하면, 명령레지스터의 수를 초과하는 스텝수를 리피트명령으로 지정한 경우에도 초과한 만큼의 명령에 의해서 최초에 저장된 명령군내의 동일한 수의 명령정보가 시프트아웃되어 소실되어 버리는 일이 없고, 리피트명령에 의해서 지정된 반복실행할 명령스텝의 수가 명령레지스터의 수로 제한되지 않으며, 또 리피트할 모듈이 단순루프만으로 제한되는 일도 없어 다중루프구조인 경우에도 대응할 수 있으며, 또 리피트대상명령군의 다음에 리드되는 리피트지시명령에도 대응할 수 있으므로, 저전력데이타처리장치의 리피트모듈의 메모리 액세스제어에 의한 저소비전력화를 고효율화할 수 있다.

Claims (6)

  1. 반복실행되는 명령군을 갖는 명령이 저장된 명령메모리, 상기 명령메모리에서 리드된 명령이 페치되는 명령레지스터, 상기 반복실행되는 명령군의 명령을 저장하는 명령버퍼 및 상기 반복실행되는 명령군의 명령이 상기 명령메모리에서 상기 명령레지스터로 페치될 때, 상기 반복실행되는 명령군의 명령을 상기 명령버퍼로 전송하는 리피트 제어수단을 포함하고, 상기 리피트 제어수단은 상기 반복실행되는 명령군의 명령 수가 소정의 용량을 초과하는 경우, 상기 반복실행되는 명령군중의 상기 소정의 용량을 초과하는 부분의 명령을 상기 명령버퍼로 전송하는 것을 정지하고, 상기 명령버퍼에 저장된 명령의 리드제어에 사용하는 정보를 기억하고, 상기 반복실행되는 명령군의 명령을 실행할 때 상기 리드제어에 사용하는 정보에 따라서 상기 반복실행되는 명령군의 명령중의 상기 명령버퍼에 저장된 명령을 상기 명령버퍼에서 상기 명령레지스터로 페치하는 것을 특징으로 하는 데이타 처리장치.
  2. 반복실행되어 다중루프루조를 갖는 명령군을 구비하는 명령이 저장된 명령메모리.
    상기 명령메모리에서 리드된 명령이 페치되는 명령레지스터, 상기 반복실행되어 다중루프구조를 갖는 명령군의 명령을 저장하는 명령버퍼 및 반복실행되어 다중루프구조를 갖는 제1 명령군의 명령이 상기 명령메모리에서 상기 명령레지스터로 페치될 때, 상기 제1 명령군의 명령을 상기 명령버퍼로 전송하는 리피트 제어수단을 포함하고, 상기 리피트 제어수단은 상기 제1 명령군의 명령이 상기 명령버퍼에 저장되어 있을 때 반복실행되는 제2 명령군의 명령이 실행되는 경우에는 상기 제1 명령군의 명령의 리드제어에 사용하는 정보가 세이브되는 스택에리어를 갖고 상기 제2 명령군의 명령을 상기 명령버퍼로 전송하는 수단 및 상기 제2 명령군의 실행후에 상기 스택에리어에 세이브된 리드제어에 사용하는 정보에 따라서 제1 명령군의 명령에 대한 처리를 실행하는 수단을 구비하는 것을 것을 특징으로 하는 데이타 처리장치.
  3. 제1항에 있어서, 상기 명령버퍼는 CMOS게이트로 이루어지는 것을 것을 특징으로 하는 데이타 처리장치.
  4. 제1항 또는 제3항에 있어서, 일련의 리피트 대상 명령군의 바로 뒤에 있고 상기 일련의 리피트 대상 명령군의 선두 어드레스로의 소정 회수분의 분기를 지정하는 조건분기명령의 해독을 실행하는 디코더를 마련하고, 상기 디코더가 상기 조건분기명령을 해독한 경우, 상기 리피트제어수단은 상기 일련의 리피트 대상 명령군의 다음의 실행시에 상기 리피트 대상 명령군을 상기 명령버퍼로 전송하는 것을 것을 특징으로 하는 데이타 처리장치.
  5. 제2항에 있어서, 상기 명령버퍼는 CMOS게이트로 이루어지는 것을 것을 특징으로 하는 데이타 처리장치.
  6. 제2항 또는 제5항에 있어서, 일련의 리피트 대상 명령군의 바로 뒤에 있고 상기 일련의 리피트 대상 명령군의 선두 어드레스로의 소정 회수분의 분기를 지정하는 조건분기명령의 해독을 실행하는 디코더를 마련하고, 상기 디코더가 상기 조건분기명령을 해독한 경우, 상기 리피트제어수단은 상기 일련의 리피트 대상 명령군의 다음의 실행시에 상기 리피트 대상 명령군을 상기 명령버퍼로 전송하는 것을 것을 특징으로 하는 데이타 처리장치.
KR1019940032490A 1993-12-13 1994-12-02 저전력데이타처리장치 Expired - Fee Related KR100307603B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP93-339964 1993-12-07
JP93-311750 1993-12-13
JP5311750A JPH07160585A (ja) 1993-12-13 1993-12-13 低電力データ処理装置
JP94-095645 1994-04-07

Publications (2)

Publication Number Publication Date
KR950020218A KR950020218A (ko) 1995-07-24
KR100307603B1 true KR100307603B1 (ko) 2001-12-01

Family

ID=18021031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940032490A Expired - Fee Related KR100307603B1 (ko) 1993-12-13 1994-12-02 저전력데이타처리장치

Country Status (3)

Country Link
US (1) US5579493A (ko)
JP (1) JPH07160585A (ko)
KR (1) KR100307603B1 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3520611B2 (ja) * 1995-07-06 2004-04-19 株式会社日立製作所 プロセッサの制御方法
JP3618442B2 (ja) * 1996-02-08 2005-02-09 株式会社東芝 マイクロプロセッサのパワーエスティメータ装置
EP0805458B1 (en) * 1996-04-30 2001-06-27 Agilent Technologies, Inc. An electronic circuit or board tester with compressed data-sequences
US5887179A (en) * 1996-06-11 1999-03-23 Motorola, Inc. System power saving means and method
US5822602A (en) * 1996-07-23 1998-10-13 S3 Incorporated Pipelined processor for executing repeated string instructions by halting dispatch after comparision to pipeline capacity
US6173410B1 (en) * 1996-08-21 2001-01-09 Texas Instruments Incorporated Microprocessor circuits, systems and methods for conditioning information prefetching based on resource burden
JP3641327B2 (ja) * 1996-10-18 2005-04-20 株式会社ルネサステクノロジ データプロセッサ及びデータ処理システム
US6029006A (en) * 1996-12-23 2000-02-22 Motorola, Inc. Data processor with circuit for regulating instruction throughput while powered and method of operation
US6505295B1 (en) * 1997-02-17 2003-01-07 Hitachi, Ltd. Data processor
US5941995A (en) * 1997-05-20 1999-08-24 Hewlett-Packard Company Reloading state analyzer
US5828875A (en) * 1997-05-29 1998-10-27 Telefonaktiebolaget Lm Ericsson Unroll of instructions in a micro-controller
JPH10340128A (ja) * 1997-06-10 1998-12-22 Hitachi Ltd データ処理装置及び移動体通信端末装置
US6401212B1 (en) 1997-08-21 2002-06-04 Texas Instruments Incorporated Microprocessor circuits, systems, and methods for conditioning information prefetching based on resource burden
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
US6157398A (en) 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US5881260A (en) * 1998-02-09 1999-03-09 Hewlett-Packard Company Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction
US6125440A (en) * 1998-05-21 2000-09-26 Tellabs Operations, Inc. Storing executing instruction sequence for re-execution upon backward branch to reduce power consuming memory fetch
US6990570B2 (en) * 1998-10-06 2006-01-24 Texas Instruments Incorporated Processor with a computer repeat instruction
US6256683B1 (en) * 1998-12-23 2001-07-03 Bops, Inc. Methods and apparatus for providing direct memory access control
US6230242B1 (en) * 1999-08-05 2001-05-08 International Business Machines Corporation Store instruction having vertical memory hierarchy control bits
US6249911B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Optimizing compiler for generating store instructions having memory hierarchy control bits
US6249843B1 (en) * 1999-08-05 2001-06-19 International Business Machines Corporation Store instruction having horizontal memory hierarchy control bits
US6253286B1 (en) * 1999-08-05 2001-06-26 International Business Machines Corporation Apparatus for adjusting a store instruction having memory hierarchy control bits
US6598155B1 (en) * 2000-01-31 2003-07-22 Intel Corporation Method and apparatus for loop buffering digital signal processing instructions
KR100347865B1 (ko) * 1999-11-15 2002-08-09 삼성전자 주식회사 어드레스 트레이스를 이용한 분기 예측 방법
US6963965B1 (en) 1999-11-30 2005-11-08 Texas Instruments Incorporated Instruction-programmable processor with instruction loop cache
US7302557B1 (en) * 1999-12-27 2007-11-27 Impact Technologies, Inc. Method and apparatus for modulo scheduled loop execution in a processor architecture
ATE366958T1 (de) * 2000-01-14 2007-08-15 Texas Instruments France Mikroprozessor mit ermässigtem stromverbrauch
US6732203B2 (en) * 2000-01-31 2004-05-04 Intel Corporation Selectively multiplexing memory coupling global bus data bits to narrower functional unit coupling local bus
DE10009677A1 (de) * 2000-02-29 2001-09-06 Infineon Technologies Ag Programmgesteuerte Einheit
US7178013B1 (en) * 2000-06-30 2007-02-13 Cisco Technology, Inc. Repeat function for processing of repetitive instruction streams
JP2002073330A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
US6898693B1 (en) * 2000-11-02 2005-05-24 Intel Corporation Hardware loops
TW591378B (en) * 2001-02-22 2004-06-11 Hitachi Ltd Memory test method, information recording medium and semiconductor integrated circuit
US6950929B2 (en) * 2001-05-24 2005-09-27 Samsung Electronics Co., Ltd. Loop instruction processing using loop buffer in a data processing device having a coprocessor
DE10204345A1 (de) * 2002-02-01 2003-08-14 Systemonic Ag Verfahren zur Befehlsbearbeitung
KR100437425B1 (ko) * 2002-03-08 2004-06-25 주식회사 레인콤 구동 전류를 감소시키기 위한 데이터 처리 장치 및 방법
US6986028B2 (en) * 2002-04-22 2006-01-10 Texas Instruments Incorporated Repeat block with zero cycle overhead nesting
US7249248B2 (en) * 2002-11-25 2007-07-24 Intel Corporation Method, apparatus, and system for variable increment multi-index looping operations
US7081897B2 (en) * 2003-12-24 2006-07-25 Intel Corporation Unified memory organization for power savings
US7366885B1 (en) * 2004-06-02 2008-04-29 Advanced Micro Devices, Inc. Method for optimizing loop control of microcoded instructions
US7669042B2 (en) * 2005-02-17 2010-02-23 Samsung Electronics Co., Ltd. Pipeline controller for context-based operation reconfigurable instruction set processor
JP2006309337A (ja) * 2005-04-26 2006-11-09 Toshiba Corp プロセッサ及びプロセッサの命令バッファ動作方法
US9772851B2 (en) * 2007-10-25 2017-09-26 International Business Machines Corporation Retrieving instructions of a single branch, backwards short loop from a local loop buffer or virtual loop buffer
JP5159258B2 (ja) * 2007-11-06 2013-03-06 株式会社東芝 演算処理装置
WO2012160794A1 (ja) * 2011-05-20 2012-11-29 日本電気株式会社 演算処理装置、演算処理方法
JP5793061B2 (ja) * 2011-11-02 2015-10-14 ルネサスエレクトロニクス株式会社 キャッシュメモリ装置、キャッシュ制御方法、およびマイクロプロセッサシステム
US9280344B2 (en) * 2012-09-27 2016-03-08 Texas Instruments Incorporated Repeated execution of instruction with field indicating trigger event, additional instruction, or trigger signal destination
CN104391563B (zh) * 2014-10-23 2017-05-31 中国科学院声学研究所 一种寄存器堆的循环缓冲电路及其方法,处理器装置
JP6933263B2 (ja) 2017-11-13 2021-09-08 日本電気株式会社 データ処理装置、ループ制御装置、データ処理方法、ループ制御方法およびプログラム
US10916280B2 (en) * 2018-03-15 2021-02-09 Dell Products, L.P. Securely sharing a memory between an embedded controller (EC) and a platform controller hub (PCH)
GB2580316B (en) 2018-12-27 2021-02-24 Graphcore Ltd Instruction cache in a multi-threaded processor
CN112000370B (zh) 2020-08-27 2022-04-15 北京百度网讯科技有限公司 循环指令的处理方法、装置、设备和存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3593306A (en) * 1969-07-25 1971-07-13 Bell Telephone Labor Inc Apparatus for reducing memory fetches in program loops
US3928857A (en) * 1973-08-30 1975-12-23 Ibm Instruction fetch apparatus with combined look-ahead and look-behind capability
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
JP2690921B2 (ja) * 1987-12-25 1997-12-17 株式会社日立製作所 情報処理装置
US5155817A (en) * 1988-04-01 1992-10-13 Kabushiki Kaisha Toshiba Microprocessor
DE69132675T2 (de) * 1990-04-06 2002-06-13 Nec Corp., Tokio/Tokyo Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter
JPH05241827A (ja) * 1992-02-27 1993-09-21 Nec Ibaraki Ltd 命令バッファ制御装置
US5493667A (en) * 1993-02-09 1996-02-20 Intel Corporation Apparatus and method for an instruction cache locking scheme
JPH06243036A (ja) * 1993-02-12 1994-09-02 Hitachi Ltd キャッシュ制御システム
JP3499252B2 (ja) * 1993-03-19 2004-02-23 株式会社ルネサステクノロジ コンパイル装置及びデータ処理装置

Also Published As

Publication number Publication date
JPH07160585A (ja) 1995-06-23
US5579493A (en) 1996-11-26
KR950020218A (ko) 1995-07-24

Similar Documents

Publication Publication Date Title
KR100307603B1 (ko) 저전력데이타처리장치
US7814487B2 (en) System and method of executing program threads in a multi-threaded processor
US8868888B2 (en) System and method of executing instructions in a multi-stage data processing pipeline
US7035985B2 (en) Method and apparatus for accessing a memory core multiple times in a single clock cycle
JPH0991136A (ja) 信号処理装置
KR100266424B1 (ko) 롬(rom)용량을 저감한 데이타 프로세서
JP2003015868A (ja) ループバッファを利用したループ命令の処理方法を備えるデータ処理装置。
EP1468367A4 (en) MULTIFILIENT PROCESSOR WITH EFFICIENT PROCESSING FOR CONVERGENCE DEVICE APPLICATIONS
US7020788B2 (en) Reduced power option
JP2005527037A (ja) 構成可能なプロセッサ
JP3248691B2 (ja) データ処理装置
US7849466B2 (en) Controlling execution mode of program threads by applying a mask to a control register in a multi-threaded processor
US20030005269A1 (en) Multi-precision barrel shifting
JPH1020959A (ja) 低消費電力マイクロプロセッサ
US20020144087A1 (en) Architecture of method for fetching microprocessor&#39;s instructions
US7444488B2 (en) Method and programmable unit for bit field shifting
US20050102495A1 (en) Microcomputer apparatus for executing a given instruction a number of times
JP2003122628A (ja) デジタル信号処理装置、プログラム変換装置、及びデジタル信号処理装置を有する通信システム
JP2010055550A (ja) 情報処理装置および情報処理方法
JPH04305736A (ja) マイクロプロセッサ
JPH05189015A (ja) プログラマブルコントローラ
JP2000305778A (ja) 命令処理装置
JPH05189014A (ja) プログラマブルコントローラ
JP2001312404A (ja) データプロセッサ及びデータ処理システム
JP2001282530A (ja) プロセッサおよびパイプライン処理システム

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

A201 Request for examination
P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20040823

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20040823

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000