KR102307805B1 - 프로세서 회로에서 전력 소비 감소 - Google Patents

프로세서 회로에서 전력 소비 감소 Download PDF

Info

Publication number
KR102307805B1
KR102307805B1 KR1020217008486A KR20217008486A KR102307805B1 KR 102307805 B1 KR102307805 B1 KR 102307805B1 KR 1020217008486 A KR1020217008486 A KR 1020217008486A KR 20217008486 A KR20217008486 A KR 20217008486A KR 102307805 B1 KR102307805 B1 KR 102307805B1
Authority
KR
South Korea
Prior art keywords
bit
flip
flop circuits
power consumption
data storage
Prior art date
Application number
KR1020217008486A
Other languages
English (en)
Other versions
KR20210037726A (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 KR20210037726A publication Critical patent/KR20210037726A/ko
Application granted granted Critical
Publication of KR102307805B1 publication Critical patent/KR102307805B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/01Details
    • H03K3/012Modifications of generator to improve response time or to decrease power consumption
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0008Arrangements for reducing power consumption
    • H03K19/0016Arrangements for reducing power consumption by using a control or a clock signal, e.g. in order to apply power supply
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K3/00Circuits for generating electric pulses; Monostable, bistable or multistable circuits
    • H03K3/02Generators characterised by the type of circuit or by the means used for producing pulses
    • H03K3/027Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
    • H03K3/037Bistable circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

본 개시 내용의 실시예는 프로세서 회로에서의 전력 소비를 감소시키는 것에 관한 것이다. 일 실시예에서, 프로세서 회로는 복수의 데이터 저장 모듈을 포함한다. 복수의 데이터 저장 모듈은 각각 비트당 제1 전력 소비를 갖는 하나 이상의 제1 멀티비트 플립 플롭 회로 및 비트당 제2 전력 소비를 갖는 하나 이상의 제2 플립 플롭 회로를 포함한다. 제1 멀티비트 플립 플롭 회로는 제2 플립 플롭 회로보다 더 많은 비트를 가질 수 있다. 추가적으로, 비트당 제1 전력 소비는 비트당 제2 전력 소비보다 적을 수 있기 때문에 제1 멀티비트 플립 플롭 회로가 제2 플립 플롭 회로들에 저장된 비트들보다 더 높은 주파수로 변경되는 비트들을 저장하는데 사용될 때 전력 소비가 감소된다.

Description

프로세서 회로에서 전력 소비 감소
본 발명은 데이터 처리 회로에 관한 것으로, 특히 프로세서 회로의 전력을 감소시키는 것에 관한 것이다.
데이터 프로세서들의 기본 구성 요소는 플립 플롭(flip flop)이다. 플립 플롭은 이진수 0 또는 1에 해당하는 두가지 상태 중 하나 일 수 있는 전자회로이다. 따라서 이러한 회로는 이진 정보를 저장하기 위해 프로세서에서 광범위하게 사용된다. 도 1은 N개의 이진 데이터 값 D0-DN을 수신하고, 이진 값을 저장하고, 값 Q1-QN을 회로의 다른 부분에 출력하도록 구성된 숫자 플립 플롭(100-103)을 보여준다. 일반적으로 플립 플롭은 트리거 신호(예: 클럭)에 응답하여 새로운 데이터 값 D0-DN을 동시에 수신하는 경우가 많다.
데이터 처리 회로에서 데이터를 저장하기 위해 플립 플롭을 사용하는 것은 범용적(ubiquitous)이다. 현대의 프로세서 회로에는 수십만, 수백만 또는 수천만 개의 플립 플롭들이 포함될 수 있다. 그러나 플립 플롭이 상태를 변경할 때마다 출력이 낮음에서 높음으로 바뀌면 플립 플롭이 전력을 소비한다. 전체 프로세서에 걸쳐 확장되는 플립 플롭들은 많은 양의 에너지를 소비할 수 있다. 이는 인공 지능 프로세서와 같이 집약적인 데이터 계산을 수행하기 위해 플립 플롭들을 사용하는 프로세서에서 특히 그렇다.
본 개시는 감소된 전력 소비의 프로세서들을 위한 개선된 아키텍처들을 제공한다.
본 개시의 실시예들은 프로세서 회로에서 전력 소비를 줄이는 것과 관련된다. 일 실시예에서, 프로세서 회로는 복수의 데이터 저장 모듈들을 포함한다. 복수의 데이터 저장 모듈들(data storage modules)은 각각 비트당(per bit) 제1 전력 소비를 갖는 하나 이상의 제1 멀티비트 플립 플롭 회로들(multibit flip flop circuits) 및 비트당 제2 전력 소비를 갖는 하나 이상의 제2 플립 플롭 회로들을 포함한다. 제1 멀티비트 플립 플롭 회로들은 제2 플립 플롭 회로들 보다 더 많은 비트를 가질 수 있다. 또한 비트당 제1 전력 소비는 비트당 제2 전력 소비보다 적을 수 있으므로, 제1 멀티비트 플립 플롭 회로가 제2 플립 플롭 회로들에 저장된 비트보다 더 높은 주파수로 변경되는 비트를 저장하는 데 사용될 때 전력 소비가 감소된다.
다음의 상세한 설명 및 첨부 도면들은 본 개시 내용의 특성 및 이점들에 대한 더 나은 이해를 제공한다.
도 1은 전형적인 플립 플롭 회로를 도시한다.
도 2는 일 실시예에 따른 데이터 저장 모듈의 예를 도시한다.
도 3은 일 실시예에 따른 예시적인 데이터 저장 모듈을 도시한다.
도 4는 일 실시예에 따른 다른 예시적인 데이터 저장 모듈을 도시한다.
도 5는 일 실시예에 따른 다른 예시적인 데이터 저장 모듈을 도시한다.
도 6은 일 실시예에 따른 예시적인 21-비트 포맷 데이터 저장 모듈을 도시한다.
도 7은 일 실시예에 따른 예시적인 18-비트 포맷 데이터 저장 모듈을 도시한다.
도 8은 일 실시예에 따른 예시적인 138-비트 포맷 데이터 저장 모듈을 도시한다.
도 9는 일 실시예에 따른 예시적인 기계 학습 프로세서를 도시한다.
다음의 설명에서는 설명의 목적으로 본 개시 내용의 완전한 이해를 제공하기 위해 수많은 예들 및 특정 세부 사항들이 제시된다. 그러한 예들과 세부 사항들은 청구 범위의 요소들 또는 청구된 주제 전체를 부당하게 제한하는 것으로 해석되어서는 안 된다. 상이한 청구항들의 기재에 기초하여, 청구된 주제는 단독으로 또는 조합하여 이들 예들의 특징들의 일부 또는 전부를 포함할 수 있다는 것이 업계 통상의 기술자에게 명백할 것이며, 여기 설명된 특징들 및 기술들의 수정들 및 등가물들을 더 포함할 수 있다.
본 개시의 특징들 및 장점들은 전력 소비를 감소시키기 위해 프로세서 회로에서 사용될 수 있는 데이터 저장 모듈을 포함한다. 일 실시예에서, 데이터 저장 모듈은 상이한 플립 플롭 회로들에 상이한 유형의 데이터 비트들을 저장하도록 구성된다. 다른 플립 플롭 회로들은 토글(toggle)(예: 논리 0또는 접지에서 논리 1 또는 전원 공급 전압으로) 할 때 다른 전력을 소비할 수 있다. 유리하게는, 더 높은 주파수로 토글하는 데이터 비트들은 더 적은 전력을 소비하는(예를 들어, 더 느릴 수 있는) 플립 플롭 회로들에 저장될 수 있으며, 더 낮은 주파수로 토글 되는 데이터 비트는 더 많은 전력을 소비하는 플립 플롭 회로들에 저장될 수 있다(예를 들어, 더 빠를 수 있는). 더 많은 전력을 소비하는 플립 플롭들에 저장된 데이터 비트는 예를 들어 산술 연산 회로(arithmetic operation circuit)의 임계 신호 처리 경로(critical signal processing path)에 있을 수 있다. 이러한 플립 플롭 회로들 및 비트 할당들은 데이터 저장 모듈에서 구성할 수 있으며, 이러한 데이터 저장 모듈이, 트리거(Trigger) 중에 프로세서에서 소비하는 전력을 줄이기 위해 프로세서 회로에 배치될 수 있다.
도 2는 일 실시예에 따른 데이터 저장 모듈을 예시한다. 예를 들어 향상된 전력 성능을 달성하기 위해, 데이터 프로세서 회로(200)는 광범위한 적용을 위해 칩 전체에 구현된 수많은 데이터 저장 모듈들을 가질 수 있다. 예시 데이터 저장 모듈은 (250)에 설명되어 있다. 각 데이터 저장 모듈은 비트당 전력을 적게 사용하도록 설계된 멀티비트 플립 플롭 회로(MBFF)와 MBFF보다 빠를 수 있으나 MBFF보다 비트당 더 많은 전력을 소비하는 하나 이상의 단일 비트 플립 플롭 회로(single bit flip flop circuit)(SBFF)를 포함할 수 있다. 보다 구체적으로, 예시 SBFF들에는 스캔 회로 및 클럭 버퍼가 포함될 수 있다. MBFF 구조의 경우, 예를 들어 2-비트 및 4-비트 케이스에서 "플롭 요소들" 간에 스캔-회로를 공유할 수 있다. 또한 클럭 버퍼들은 MBFF에서 공유될 수도 있다. 따라서 MBFF 셀 면적 및 전력 소비는 SBFF보다 낮을 수 있다. 또한 MBFF 셀 영역은 2-비트 MBFF보다 4-비트 MBFF에 대해 더 낮을 수 있다.
데이터 모듈(250)은 전력 성능을 최적화하기 위해 다양한 실시예에 따라 결합될 수 있는 SBFF들 및 MBFF들의 다양한 조합들을 예시한다. 예를 들어, 데이터 모듈(250)은 SBFF(210), SBFF(211), M-bit MBFF(212) 및 N-bit MBFF(213)을 포함한다. MBFF(213) 다른 플립 플롭 회로에 저장된 비트보다 더 높은 주파수로 변경되는 비트들을 저장하는 데 사용될 수 있다. 예를 들어, 더 높은 주파수로 변경되는 비트가 전력을 덜 소비하는 MBFF에 저장되고, 더 낮은 주파수로 변경되는 비트가 더 많은 전력을 소비하는 SBFF에 저장되면 프로세서 회로 전체의 전력 소비가 감소한다. 2개의 SBFF(210)와 SBFF(211), 그리고 2개의 M-bit MBFF(212) 와 M-bit MBFF(213)은 예시 목적으로만 여기에 표시된다. 다른 수의 비트 및/또는 다른 유형의 비트를 저장하는 데이터 모듈에 대해 SBFF들 및 MBFF들의 다른 조합들이 사용될 수 있음을 이해해야 한다.
도 2는 전력 소비를 더욱 최적화하기 위해 상이한 비트길이(bit length) MBFF들이 사용될 수 있음을 추가로 예시한다. 예를 들어 SBFF는 MBFF보다 토글 될 때 비트당 더 많은 전력을 소비할 수 있다. 그러나 M-bit MBFF(212)는 N-bit MBFF(213) 보다 토글 될 때 비트당 더 많은 전력을 소비하도록 설계될 수 있다. 여기서 M과 N은 정수이고 N은 M보다 크다. 예를 들어, 4-비트 MBFF는 2-비트 MBFF보다 토글 될 때 전력을 덜 소비할 수 있다. 따라서 고차 MBFF들(예: N-bit MBFF)은 저차 플립 플롭들(예: M-bit MBFF 또는 SBFF)과 결합되어 다양한 데이터 저장 모듈 변형들에 걸쳐 전력 소비의 감소를 유연하게 달성할 수 있다. 예를 들어, 고차 MBFF들은 저차 MBFF들의 비트당 전력 소비량보다 적은 비트당 전력 소비량을 가지며, 저차 MBFF들은 SBFF들의 비트당 전력 소비량보다 적은 비트당 전력 소비량을 가지며, 여기서 고차 MBFF는 저차 MBFF에 저장된 비트보다 높은 주파수로 변경될 수 있는 비트를 저장하고, 예를 들어, 저차 MBFF들은 SBFF들에 저장된 비트보다 높은 주파수에 따라 변경될 수 있는 비트들을 저장한다.
도 3은 일 실시예에 따른 예시적인 데이터 저장 모듈을 도시한다. 이 예시에서 서로 다른 플립 플롭 회로들은 서로 다른 유형의 데이터 비트를 저장할 수 있다. 일 실시예에서, 데이터 저장 모듈(350)은 하나 이상의 피연산자(operands), 부호 비트(sign bit), 상태 비트(status bits) 및 제로 지시자 비트(zero indicator bits)(일명 제로 검출 비트(zero detection bits))에 대응하는 비트를 가질 수 있다. 예를 들어, 하나 이상의 MBFF(310 및 311)는 하나 이상의 피연산자들을 저장할 수 있다. SBFF(312)는 8-비트 또는 16-비트 피연산자에 대한 부호 비트를 저장할 수 있다. MBFF(313)는 복수의 상태 비트들을 저장할 수 있다. 또한, 일부 실시예들은 하나 이상의 제로 지시자 비트들을 포함할 수 있으며, 이 예에서는 SBFF(314 및 315)에 저장된다. 제로 지시자 비트는 대응하는 피연산자가 모두 제로 값들일 때 제1 상태(예를 들어, 로직 0)를 가질 수 있고, 대응하는 피연산자가 적어도 하나의 0이 아닌 값을 가질 때 제로 지시자 비트는 제2 상태(예를 들어, 로직 1)를 가질 수 있다. 이 예에서, 예를 들어 SBFF(314)의 제1 제로 지시자 비트는 데이터 저장 모듈에 저장된 하나의 피연산자에 대응할 수 있고, 예를 들어 SBFF(315)의 제2 제로 지시자 비트는 데이터의 제2 피연산자에 대응할 수 있다(예: 데이터 저장 모듈이 두개의 피연산자를 저장하는 경우). 대안적으로, 데이터 저장 모듈이 오직 하나의 피연산자를 저장할 때 하나의 제로 지시자 비트는 하나의 피연산자에 대응할 수 있고, 다른 제로 지시자 비트는 사용되지 않을 수 있다. 일부 적용 예 들에서 피연산자는 하나 이상의 부호 비트, 상태 비트 및/또는 제로 지시자 비트들보다 더 높은 주파수에서 변경될 수 있다. 따라서, 일부 실시예들은 피연산자들을 고차 MBFF들에 저장하고 부호비트, 상태 비트 및/또는 제로 지시자 비트를 예를 들어 작동 중 전력 소비 감소를 위해 저차 MBFF들 또는 저차 SBFF들에 저장할 수 있다. 최소 중요 비트들(LSBs)은 최고 중요 비트들(MSBs) 보다 더 높은 주파수로 변경될 수 있다. 따라서 최소 중요 비트들은 더 고차의 MBFF들에 저장될 수 있고, MSB들은 저차의 MBFF들 또는 SBFF들에 저장될 수 있다. 데이터 저장 모듈(350)에 저장된 특정 데이터 비트 유형은 단지 예들일 뿐이다. 예를 들어, 다른 데이터 비트 유형들을 저장하기 위해 MBFF들 및 SBFF들의 다른 배열이 할당될 수 있음을 이해해야 한다. 도 4는 예를 들어 MBFF(410)가 피연산자를 저장하고, SBFF(411)가 제로 지시자 비트를 저장하고, MBFF(412)가 피연산자를 저장하고, MBFF(413)가 상태, 부호 및 다른 제로 지시자 비트를 저장하는 변형을 예시한다.
도 5는 일 실시예에 따른 다른 예시적인 데이터 저장 모듈을 도시한다. 본 개시의 또 다른 측면은 상이한 길이의 피연산자를 대안적으로 저장하기 위한 다목적 모듈일 수 있는 데이터 저장 모듈을 포함한다. 예를 들어, 도 5는 모듈 (550A)에 2개의 8-비트 피연산자를 저장하거나 모듈 (550B)에 16-비트 피연산자 1개를 저장하도록 구성된 하나의 예시 적인 다목적 데이터 저장 모듈을 보여준다. 데이터 저장 모듈 구성 (550A)은 MBFF(510)(예를 들어, 2개의 4-비트 MBFF)에 제1 8-비트 피연산자를 저장할 수 있고 MBFF(511)에 제2 8-비트 피연산자를 저장할 수 있다(예를 들어, 또 다른 2개의 4-비트 MBFF). 데이터 저장 모듈 구성(550A)은 SBFF(512)에 부호비트, 2-비트 MBFF(513)에 상태 비트들, SBFF(514) 및 (515)에 2개의 제로 지시자 비트들을 추가로 저장할 수 있다. 대안적으로, 데이터 저장 모듈은 MBFF(510/511)에 하나의 16-비트 피연산자를 저장하도록 (550B)에 표시된 대로 구성될 수 있다(예: 4-비트 MBFF 4개). 데이터 저장 모듈 구성(550B)은 SBFF(512)에 부호 비트, 2-비트 MBFF(513)에 상태비트, SBFF(514)에 하나의 제로 지시자 비트를 추가로 저장할 수 있다. 여기서 SBFF(515)는 예를 들어 이 구성에 사용되지 않을 수 있다.
도 6은 일 실시예에 따른 예시적인 21-비트 포맷 데이터 저장 모듈을 도시한다. 이 예에서 4-비트 MBFF(610)은 비트 3:0을 저장하고, 4-비트 MBFF(611)은 비트 7:4를 저장하고, 1-비트 SBFF(612)는 제1 제로 검출 비트(비트8)를 저장하고, 4-비트 MBFF(613)은 비트 12:9를 저장하고, 4비-트 MBFF(614)는 비트 16:13을 저장하고, 4-비트 MBFF(615)는 비트 20:17을 저장한다. 이 예에서 비트(8)과 비트(20)은 제로 감지 비트(zero detection bits)이며 나머지보다 훨씬 낮은 주파수에서 변경된다. 비트 17-19는 자주 변경되지 않는 상태 비트이다. 그러나, 비트(20-17)은 하나의 4-비트 MBFF로 그룹화 될 수 있기 때문에, 본 예는 유리하게는 예를 들어, 회로를 구현하는 데 사용되는 영역을 줄인다. 이 예에서 비트 0:7은 함께 사용되고 비트 9:20은 다르게 사용되므로 현재 구성은 예를 들어 영역 및 전력 소비를 최적화할 수 있다.
도 7은 일 실시예에 따른 예시적인 18-비트 포맷 데이터 저장 모듈을 도시한 것이다. 이 예에서 4-비트 MBFF(710)은 비트 3:0을 저장하고, 4-비트 MBFF(711)은 비트 7:4를 저장하고, 1-비트 SBFF(712)는 제1 제로 감지 비트(비트8)을 저장하고, 4-비트 MBFF(713)은 12:9 비트를 저장한다. 4-비트 MBFF(714)는 비트 16:13을 저장하고, 1-비트 SBFF(715)는 제2 제로 검출 비트(비트 17)을 저장한다.
도 8은 일 실시예에 따른 예시 적인 138비트 포맷 데이터 저장 모듈을 예시한다. 이 예에서 4-비트 MBFF(810)은 비트 3:0을 저장하고, 4-비트 MBFF(811)은 비트 7:4를 저장하는 식으로 비트 135:132를 저장하는 4-비트 MBFF(813)및 비트 137:136을 저장한다. 이 예에서 비트 137:136은 통계적으로 덜 자주 토글 되는 최고 중요 비트들이다. 이 예제의 한가지 문제는 138은 4로 나뉠 수 없지만 136은 4로 나뉠 수 있다는 점이다. 마지막 2개의 남은 비트들은 2-비트 MBFF로 축소될 수 있다.
도 9는 일 실시예에 따른 예시 적인 기계 학습 프로세서를 도시한다. 기계 학습 프로세서(900)(일명 인공지능 (AI)프로세서)는 기계 학습 적용(예를 들어, 훈련 또는 추론)을 위한 가중치 세트(예를 들어, 훈련 또는 훈련되는)를 사용하여 입력 데이터를 곱하고 더하도록 최적화된 메모리 및 산술 단위를 포함할 수 있다. 예를 들어, 기계 학습 프로세서(900)는 벡터(즉, 값의 1차원 배열)에 대한 연산을 수행하기 위한 벡터 프로세서(V X M)(910)를 포함한다. 시스템의 다른 요소는 처리 속도를 최적화하기 위해 V X M(910)의 양쪽에 대칭으로 배치된다. 예를 들어, V X M(910)은 메모리(911) 및(912), 데이터 라우팅을 제어하는 스위치 매트릭스(SxM)(913 및 914), 데이터 형식 및 프레젠테이션 컨트롤러(NIM)(915 및 916), 매트릭스 곱셈 유닛(matrix multiplication unit)(MxM)(917 및 918)에 인접해 있다. 명령 제어 장치(Instruction Control Unit)(920)는 예를 들어 블록(910-918)에 걸친 데이터 흐름 및 작업 실행을 제어한다. 기계 학습 프로세서(900)는 C2C(chip-to-chip) 회로(923-924) 및 외부 통신 회로(예: PCIe)(921)와 같은 통신 회로를 포함한다. 프로세서(900)는 예를 들어 부팅 동작, 클럭 재설정 및 기타 저 수준 설정 동작을 제어하기 위한 칩 제어 유닛(CCU)(922)을 더 포함할 수 있다.
기계 학습 프로세서에서, 속도 및 전력 소비 절충은 기계 학습 프로세서가 벡터 및 매트릭스 곱셈과 같은 훨씬 더 많은 산술 연산을 수행할 수 있기 때문에 일반적인 마이크로 프로세서 아키텍처(architecture)에서와 동일하지 않을 수 있다. 따라서 위에서 설명한 개시 내용의 실시예는 일반적인 마이크로 프로세서에 비해 예상치 않게 전력 소비를 크게 감소시킬 수 있다. 일 실시예에서, 데이터 저장 모듈은 전력 소비를 줄이기 위해 기계 학습 프로세서(900)에 걸쳐 광범위한 적용예에서 구현될 수 있다. 예를 들어, 위에서 설명한 실시예에 따른 데이터 저장 모듈은 칩의 전력 소비를 줄이기 위해 M X M 및 V X M 유닛에서 광범위하게 사용될 수 있다. 유리한점은, 일단 구현되면 프로세서를 분석하여 비트가 더 자주 또는 덜 자주 전환되는 위치를 결정할 수 있다는 점이다. 예를 들어, 사용량 통계를 기반으로 데이터 저장 모듈은 더 높은 주파수에서 변경되는 비트를 MBFF와 연결하고 자주 변경되지 않거나 임계 처리 경로(critical processing path)에 있는 비트를 낮은 순서의 MBFF 또는 SBFF와 연결하여 전력 소비를 줄이도록 수정될 수 있다. 예를 들어, 데이터 저장 모듈 정의를 변경하면 전체 프로세서에서 데이터 저장 모듈의 모든 인스턴스가 변경되어 전력 소비량의 감소를 전파하고 곱할 수 있다.
상기 설명은 특정 실시예의 양태가 어떻게 구현될 수 있는 지의 예와 함께 본 개시의 다양한 실시예를 예시한다. 위의 예는 유일한 실시예로 간주되어서는 안 되며, 다음 청구 범위에 정의된 특정 실시예의 융통성 및 이점을 설명하기 위해 제시된다. 상기 개시 및 다음의 청구 범위에 기초하여, 청구 범위에 의해 정의된 바와 같이 본 개시 내용의 범위를 벗어나지 않고 다른 배열, 실시예, 구현 및 등가물이 선택될 수 있다.

Claims (16)

  1. 프로세서 회로에 있어서,
    복수의 데이터 저장 모듈들을 포함하고,
    상기 복수의 데이터 저장 모듈들은 각각:
    비트당 제1 전력 소비를 갖는 하나 이상의 제1 멀티비트 플립 플롭 회로들, 및
    비트당 제2 전력 소비를 갖는 하나 이상의 제2 플립 플롭 회로들
    을 포함하고,
    상기 제1 멀티비트 플립 플롭 회로들은 상기 제2 플립 플롭 회로들보다 더 많은 비트를 가지고,
    상기 비트당 제1 전력 소비는 상기 비트당 제2 전력 소비보다 적고,
    상기 제1 멀티비트 플립 플롭 회로들은, 상기 제2 플립 플롭 회로들에 저장된 비트들보다 더 높은 주파수로 변경되는 비트들을 저장하는데 사용되는,
    프로세서 회로.
  2. 제1항에 있어서,
    상기 제2 플립 플롭 회로들은 제2 멀티비트 플립 플롭 회로들이고,
    상기 데이터 저장 모듈들은 비트당 제3 전력 소비를 갖는 복수의 단일 비트 플립 플롭 회로들을 더 포함하고,
    상기 비트당 제2 전력 소비는 상기 비트당 제3 전력 소비보다 더 적고,
    상기 제2 멀티비트 플립 플롭 회로들은 상기 복수의 단일 비트 플립 플롭 회로들에 저장된 비트들보다 더 높은 주파수로 변경되는 비트들을 저장하는 데 사용되는,
    프로세서 회로.
  3. 제2항에 있어서,
    상기 데이터 저장 모듈들은,
    2 개의 8-비트 피연산자 또는 1 개의 16-비트 피연산자를 저장하기 위한 다목적 모듈들이고,
    상기 제1 멀티비트 플립 플롭 회로들은,
    상기 2 개의 8-비트 피연산자들 또는 하나의 16-비트 피연산자를 저장하기 위한 4 개의 4-비트 다중 비트 플립 플롭 회로들을 포함하고,
    각각의 데이터 저장 모듈은,
    제1 제로 지시자 비트 또는 제2 제로 지시자 비트 중 하나를 저장하기 위한 복수의 단일 비트 플립 플롭 회로 중 적어도 하나의 단일 비트 플립 플롭 회로를 포함하는,
    프로세서 회로.
  4. 제3항에 있어서,
    상기 데이터 저장 모듈들이 두 개의 8-비트 피연산자들을 저장할 때, 상기 제1 제로 지시자 비트는 제1 8-비트 피연산자에 대응하고, 상기 제2 제로 지시자 비트는 제2 8-비트 피연산자에 대응하고,
    상기 제1 제로 지시자 비트는, 상기 데이터 저장 모듈이 16-비트 피연산자를 저장할 때, 상기 16-비트 피연산자에 대응하며, 상기 제2 제로 지시자 비트가 사용되지 않고,
    상기 대응하는 피연산자가 모두 제로 값일 때 각 제로 지시자 비트는 제1 상태를 가지고, 상기 대응하는 피연산자가 적어도 하나의 제로가 아닌 값을 가질 때 각 제로 지시자 비트는 제2 상태를 갖는,
    프로세서 회로.
  5. 제1항에 있어서,
    상기 제2 플립 플롭 회로들은,
    벡터 및 매트릭스 곱셈 산술 연산들을 수행하는 프로세서의 적어도 하나의 처리 경로에서 사용되는,
    프로세서 회로.
  6. 제1항에 있어서,
    상기 프로세서는 기계 학습 프로세서인,
    프로세서 회로.
  7. 제6항에 있어서,
    상기 기계 학습 프로세서는,
    하나 이상의 매트릭스 곱셈 유닛을 포함하고,
    상기 하나 이상의 매트릭스 곱셈 유닛은,
    복수의 상기 데이터 저장 모듈들을 포함하는,
    프로세서 회로.
  8. 제6항에 있어서,
    상기 기계 학습 프로세서는,
    하나 이상의 벡터 곱셈 유닛(vector multiplication unit)을 포함하고,
    상기 하나 이상의 벡터 곱셈 유닛은,
    복수의 상기 데이터 저장 모듈들을 포함하는,
    프로세서 회로.
  9. 프로세서에 있어서,
    복수의 비트들을 저장하기 위한 복수의 멀티비트 플립 플롭 회로들 - 상기 복수의 멀티비트 플립 플롭 회로들은 비트당 제1 전력 소비를 가짐 -, 및
    하나 이상의 비트들을 저장하기 하나 이상의 플립 플롭 회로들 - 상기 하나 이상의 플립 플롭 회로들은 비트당 제2 전력 소비를 가짐 -
    을 포함하고,
    상기 비트당 제1 전력 소비는 상기 비트당 제2 전력 소비보다 작고,
    상기 복수의 멀티비트 플립 플롭 회로들은 상기 하나 이상의 플립 플롭 회로들에 저장된 비트들보다 더 높은 주파수로 변경되는 비트들을 저장하는,
    프로세서.
  10. 제9항에 있어서,
    상기 복수의 멀티비트 플립 플롭 회로들은,
    피연산자들을 저장하도록 구성되고,
    상기 하나 이상의 플립 플롭 회로들은,
    제로 지시자 비트를 저장하도록 구성된 하나 이상의 멀티비트 플립 플롭 회로들 또는 단일 비트 플립 플롭 회로들인,
    프로세서.
  11. 데이터 처리 방법에 있어서,
    프로세서 상의 복수의 데이터 저장 모듈들에 데이터를 저장하는 단계
    를 포함하고,
    상기 복수의 데이터 저장 모듈들의 각각에 데이터를 저장하는 단계는:
    비트당 제1 전력 소비를 갖는 하나 이상의 제1 멀티비트 플립 플롭 회로들에 데이터 저장하는 단계, 및
    비트당 제2 전력 소비를 갖는 하나 이상의 제2 플립 플롭 회로들에 데이터 저장하는 단계
    를 포함하고,
    상기 제1 멀티비트 플립 플롭 회로들은 상기 제2 플립 플롭 회로들보다 더 많은 비트를 저장하고,
    상기 비트당 제1 전력 소비는 상기 비트당 제2 전력 소비보다 적고,
    상기 제1 멀티비트 플립 플롭 회로들은, 상기 제2 플립 플롭 회로들에 저장된 비트들보다 더 높은 주파수로 변경되는 비트들을 저장하는데 사용되는,
    데이터 처리 방법.
  12. 제11항에 있어서,
    상기 프로세서는,
    매트릭스 곱셈 유닛 또는 벡터 곱셈 유닛 중 하나 이상을 포함하는 기계 학습 프로세서이고,
    상기 매트릭스 곱셈 유닛 또는 벡터 곱셈 유닛은,
    복수의 상기 데이터 저장 모듈들을 포함하는,
    데이터 처리 방법.
  13. 제11항에 있어서,
    상기 제2 플립 플롭 회로들은 제2 멀티비트 플립 플롭 회로들이고,
    상기 방법은,
    비트당 제3 전력 소비를 갖는 복수의 단일 비트 플립 플롭 회로들에 데이터를 저장하는 단계
    를 더 포함하고,
    상기 비트당 제2 전력 소비는 상기 비트당 제3 전력 소비보다 적고,
    상기 제2 멀티비트 플립 플롭 회로들은,
    상기 복수의 단일 비트 플립 플롭 회로들에 저장된 비트들보다 더 높은 주파수로 변경되는 비트를 저장하는데 사용되는,
    데이터 처리 방법.
  14. 제13항에 있어서,
    상기 데이터 저장 모듈들은,
    2개의 8-비트 피연산자들 또는 하나의 16-비트 피연산자를 저장하기 위한 다목적 모듈들이고,
    상기 제1 멀티비트 플립 플롭 회로들은,
    상기 2개의 8-비트 피연산자들 또는 하나의 16 -비트 피연산자를 저장하기 위한 4개의 4-비트 다중 비트 플립 플롭 회로들을 포함하고,
    각각의 데이터 저장 모듈은,
    제1 제로 지시자 비트 또는 제2 제로 지시자 비트 중 하나를 저장하기 위한 상기 복수의 단일 비트 플립 플롭 회로들 중 적어도 하나의 단일 비트 플립 플롭 회로를 포함하는,
    데이터 처리 방법.
  15. 제14항에 있어서,
    상기 데이터 저장 모듈들이 두 개의 8-비트 피연산자들을 저장할 때, 상기 제1 제로 지시자 비트는 제1 8-비트 피연산자에 대응하고, 상기 제2 제로 지시자 비트는 제2 8-비트 피연산자에 대응하고,
    상기 제1 제로 지시자 비트는, 상기 데이터 저장 모듈이 16-비트 피연산자를 저장할 때, 상기 16-비트 피연산자에 대응하며, 상기 제2 제로 지시자 비트가 사용되지 않고,
    상기 대응하는 피연산자가 모두 제로 값일 때 각 제로 지시자 비트는 제1 상태를 가지고, 상기 대응하는 피연산자가 적어도 하나의 제로가 아닌 값을 가질 때 각 제로 지시자 비트는 제2 상태를 갖는,
    데이터 처리 방법.
  16. 제11항에 있어서,
    상기 제2 플립 플롭 회로들은,
    벡터 및 매트릭스 곱셈 산술 연산들을 수행하는 프로세서의 적어도 하나의 처리 경로에서 사용되는,
    데이터 처리 방법.
KR1020217008486A 2018-08-24 2019-08-20 프로세서 회로에서 전력 소비 감소 KR102307805B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/112,564 2018-08-24
US16/112,564 US10516383B1 (en) 2018-08-24 2018-08-24 Reducing power consumption in a processor circuit
PCT/US2019/047332 WO2020041362A1 (en) 2018-08-24 2019-08-20 Reducing power consumption in a processor circuit

Publications (2)

Publication Number Publication Date
KR20210037726A KR20210037726A (ko) 2021-04-06
KR102307805B1 true KR102307805B1 (ko) 2021-10-01

Family

ID=67841229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217008486A KR102307805B1 (ko) 2018-08-24 2019-08-20 프로세서 회로에서 전력 소비 감소

Country Status (5)

Country Link
US (2) US10516383B1 (ko)
EP (1) EP3841670B1 (ko)
KR (1) KR102307805B1 (ko)
TW (1) TWI709910B (ko)
WO (1) WO2020041362A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10516383B1 (en) * 2018-08-24 2019-12-24 Groq, Inc. Reducing power consumption in a processor circuit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW359936B (en) * 1997-05-23 1999-06-01 Mitsubishi Electric Corp Clock generator
US6351808B1 (en) 1999-05-11 2002-02-26 Sun Microsystems, Inc. Vertically and horizontally threaded processor with multidimensional storage for storing thread data
KR101277975B1 (ko) * 2006-09-07 2013-06-27 엘지디스플레이 주식회사 쉬프트 레지스터 및 이를 구비한 데이터 드라이버,액정표시장치
JP5040427B2 (ja) * 2007-05-11 2012-10-03 ソニー株式会社 データ処理方法、データ処理装置、固体撮像装置、撮像装置、電子機器
US7884649B1 (en) * 2009-02-27 2011-02-08 Magma Design Automation, Inc. Selection of optimal clock gating elements
US9473113B1 (en) * 2015-09-24 2016-10-18 Qualcomm Incorporated Power management with flip-flops
US10516383B1 (en) * 2018-08-24 2019-12-24 Groq, Inc. Reducing power consumption in a processor circuit

Also Published As

Publication number Publication date
WO2020041362A1 (en) 2020-02-27
US20200127646A1 (en) 2020-04-23
EP3841670A1 (en) 2021-06-30
US10778196B2 (en) 2020-09-15
KR20210037726A (ko) 2021-04-06
TW202018502A (zh) 2020-05-16
US10516383B1 (en) 2019-12-24
TWI709910B (zh) 2020-11-11
EP3841670B1 (en) 2022-07-13

Similar Documents

Publication Publication Date Title
CN107077416B (zh) 用于以选择性舍入模式进行向量处理的装置和方法
US10846089B2 (en) Unified logic for aliased processor instructions
US8078833B2 (en) Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US20070074000A1 (en) VLIW Acceleration System Using Multi-state Logic
US10579338B2 (en) Apparatus and method for processing input operand values
KR100289513B1 (ko) 파풀레이션 카운트의 계산 장치와 계산 및 누적 장치
US9582281B2 (en) Data processing with variable operand size
KR102307805B1 (ko) 프로세서 회로에서 전력 소비 감소
Mrazek et al. Design of quality-configurable approximate multipliers suitable for dynamic environment
KR20210103552A (ko) 수들을 변환하기 위한 하드웨어 모듈
Shivapakash et al. A power efficiency enhancements of a multi-bit accelerator for memory prohibitive deep neural networks
KR20180105060A (ko) 메모리 로드 및 산술 로드 유닛 융합
US10459688B1 (en) Encoding special value in anchored-data element
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
KR20080067711A (ko) 인스트럭션 실행 방법, 프로세싱 시스템 및 데이터 프로세싱 시스템
KR101220423B1 (ko) 명령어의 즉시값 지정 방법
US20230367550A1 (en) Programmable device for executing multiply accumulate operations via look up tables
Wiegand et al. Definition of a configurable architecture for implementation of global cellular automaton
JP2008003663A (ja) データ処理装置、データ処理方法
Qiu et al. A Bit Level Acceleration of Mixed Precision Neural Network
US20120124341A1 (en) Methods and Apparatus for Performing Multiple Operand Logical Operations in a Single Instruction
CN113835677A (zh) 操作数处理系统、方法及处理器
Surendra et al. High Performance ALU Design using Energy Efficient Borrow Select Subtractor
Li et al. Accelerating Unstructured SpGEMM using Structured In-situ Computing
Moshnyaga Energy reduction in queues and stacks by adaptive bitwidth compression

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant