KR20220064899A - 메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치 및 전자 장치의 동작 방법 - Google Patents

메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치 및 전자 장치의 동작 방법 Download PDF

Info

Publication number
KR20220064899A
KR20220064899A KR1020210149469A KR20210149469A KR20220064899A KR 20220064899 A KR20220064899 A KR 20220064899A KR 1020210149469 A KR1020210149469 A KR 1020210149469A KR 20210149469 A KR20210149469 A KR 20210149469A KR 20220064899 A KR20220064899 A KR 20220064899A
Authority
KR
South Korea
Prior art keywords
processing elements
region
systolic array
switching
array processor
Prior art date
Application number
KR1020210149469A
Other languages
English (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 US17/525,146 priority Critical patent/US11709795B2/en
Publication of KR20220064899A publication Critical patent/KR20220064899A/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 기재의 실시 에에 따른 전자 장치는 메인 프로세서, 그리고 시스톨릭 어레이 프로세서를 포함한다. 시스톨릭 어레이 프로세서는 프로세싱 소자들, 프로세싱 소자들에 커널 데이터 세트를 제공하는 커널 데이터 메모리, 프로세싱 소자들에 입력 데이터 세트를 제공하는 데이터 메모리, 그리고 프로세싱 소자들에 커맨드들을 제공하는 제어기를 포함한다. 메인 프로세서는 시스톨릭 어레이 프로세서와 연관된 소스 코드들을 시스톨릭 어레이 프로세서의 명령들로 변환하고, 명령들을 실행하며 스위칭 액티비티 값을 계산하고, 그리고 변환된 명령들 및 스위칭 액티비티 값을 시스톨릭 어레이 프로세서에 기반한 기계 학습 모듈로 저장한다.

Description

메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치 및 전자 장치의 동작 방법{ELECTRONIC DEVICE INCLUDING MAIN PROCESSOR AND SYSTOLIC ARRAY PROCESSOR AND OPERATING METHOD OF ELECTRONIC DEVICE}
본 기재는 전자 장치에 관한 것으로, 더 상세하게는 시스톨릭 어레이 프로세서의 발열을 효과적으로 관리하는 전자 장치 및 전자 장치의 동작 방법에 관한 것이다.
기계 학습은 단순하고 반복적인 연산들을 필요로 한다. 단순하고 반복적인 연산을 위하여, GPU(Graphic Processing Unit)이 사용될 수 있다. 그러나 GPU는 기계 학습을 위해 설계된 장치가 아닌 그래픽 처리를 위해 설계된 장치이므로, 기계 학습과 연관된 연산을 수행하는데 한계를 가질 수 있다.
GPU의 한계를 극복하기 위하여, 기계 학습에 최적화된 새로운 프로세서들이 연구되고 있다. 하드웨어로 기계학습을 수행하도록 구현된 프로세서는 기계 학습과 연관된 연산을 빠르게 수행할 수 있는 장점을 갖는다. 그러나 하드웨어로 기계학습을 수행하도록 구현된 프로세서에서, 많은 연산 유닛들이 다수의 연산들을 동시에 수행하므로, 높은 전력소모가 발생하게 되고, 이는 발열 이슈를 야기할 수 있다.
본 기재의 목적은 시스톨릭 어레이 프로세서의 발열을 효과적으로 관리하는 전자 장치 및 전자 장치의 동작 방법을 제공하는 데에 있다.
본 기재의 실시 에에 따른 전자 장치는 메인 프로세서; 그리고 시스톨릭 어레이 프로세서를 포함하고, 상기 시스톨릭 어레이 프로세서는: 프로세싱 소자들; 상기 프로세싱 소자들에 커널 데이터 세트를 제공하는 커널 데이터 메모리; 상기 프로세싱 소자들에 입력 데이터 세트를 제공하는 데이터 메모리; 그리고 상기 프로세싱 소자들에 커맨드들을 제공하는 제어기를 포함하고, 상기 메인 프로세서는: 상기 시스톨릭 어레이 프로세서와 연관된 소스 코드들을 상기 시스톨릭 어레이 프로세서의 명령들로 변환하고, 상기 명령들을 실행하며 스위칭 액티비티 값을 계산하고, 그리고 상기 변환된 명령들 및 상기 스위칭 액티비티 값을 상기 시스톨릭 어레이 프로세서에 기반한 기계 학습 모듈로 저장한다.
실시 예로서, 상기 기계 학습 모듈은 복수의 레이어들을 포함하고, 그리고 상기 메인 프로세서는 상기 복수의 레이어들의 각각에 대해 상기 스위칭 액티비티 값을 계산하는 전자 장치.
실시 예로서, 상기 시스톨릭 어레이 프로세서에서 상기 기계 학습 모듈을 실행할 때, 상기 메인 프로세서는 상기 스위칭 액티비티 값에 기반하여 상기 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택한다.
실시 예로서, 상기 기계 학습 모듈은 복수의 레이어들을 포함하고, 그리고 상기 시스톨릭 어레이 프로세서에서 상기 기계 학습 모듈을 실행할 때, 상기 메인 프로세서는 상기 스위칭 액티비티 값에 기반하여 상기 복수의 레이어들의 각각에 대해 상기 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택한다.
실시 예로서, 상기 기계 학습 모듈을 실행할 때, 상기 프로세싱 소자들 중 제1 영역이 프로세싱 소자들은 활성화되고, 나머지 영역의 프로세싱 소자들은 비활성화 되고, 그리고 상기 메인 프로세서는 상기 제1 영역의 프로세싱 소자들의 스위칭 특색 및 상기 나머지 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산한다.
실시 예로서, 상기 나머지 영역은 상기 제1 영역과 행들을 공유하는 프로세싱 소자들을 포함하는 제2 영역, 상기 제1 영역과 열들을 공유하는 프로세싱 소자들을 포함하는 제3 영역, 그리고 상기 제1 영역과 상기 행들 및 상기 열들을 공유하지 않는 프로세싱 소자들을 포함하는 제4 영역을 포함하고, 그리고 상기 메인 프로세서는 상기 제2 영역의 프로세싱 소자들의 스위칭 특색, 상기 제3 영역의 프로세싱 소자들의 스위칭 특색, 그리고 상기 제4 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산한다.
실시 예로서, 상기 스위칭 액티비티 값은 단위 클럭 사이클에서 신호의 스위칭이 발생하는 횟수를 나타낸다
메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 본 기재의 실시 예에 따른 전자 장치의 동작 방법은: 상기 메인 프로세서가 상기 시스톨릭 어레이 프로세서의 스위칭 액티비티 값을 읽는 단계; 그리고 상기 메인 프로세서가 상기 스위칭 액티비티 값에 기반하여 상기 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택하는 단계를 포함하고, 상기 스위칭 액티비티 값은 단위 클럭 사이클에서 신호의 스위칭이 발생하는 횟수를 나타낸다.
실시 예로서, 상기 스위칭 액티비티 값은 고정된 값으로서 상기 시스톨릭 어레이 프로세서에 의해 실행되는 기계 학습 모듈에 포함된다.
실시 예로서, 상기 클럭 신호의 주파수를 선택하는 단계는: 상기 스위칭 액티비티 값에 기반하여 상기 시스톨릭 어레이 프로세서의 한계 주파수를 계산하는 단계; 그리고 상기 시스톨릭 어레이 프로세서에 공급되는 상기 클럭 신호의 주파수들 중에서 상기 한계 주파수보다 작으면서 가장 높은 주파수를 선택하는 단계를 포함한다.
실시 예로서, 상기 시스톨릭 어레이 프로세서에 의해 실행되는 기계 학습 모듈은 복수의 레이어들을 포함하고, 그리고 상기 복수의 레이어들은 서로 다른 스위칭 액티비티 값들을 갖고, 상기 클럭 신호의 주파수를 선택하는 단계는: 상기 서로 다른 스위칭 액티비티 값들에 기반하여, 상기 복수의 레이어들의 각각에 대해 상기 클럭 신호의 주파수를 선택하는 단계를 포함한다.
실시 예로서, 상기 메인 프로세서가 상기 시스톨릭 어레이 프로세서에서 실행되는 기계 학습 모듈의 소스 코드들을 상기 기계 학습 모듈에서 실행되는 명령들로 변환하는 단계; 그리고 상기 메인 프로세서가 상기 명령들을 실행하며 상기 스위칭 액티비티 값을 계산하는 단계를 더 포함한다.
실시 예로서, 상기 기계 학습 모듈은 복수의 레이어들을 포함하고, 상기 스위칭 액티비티 값을 계산하는 단계는: 상기 복수의 레이어들의 각각에 대해 상기 스위칭 액티비티 값을 계산하는 단계를 포함한다.
실시 예로서, 상기 기계 학습 모듈이 실행될 때, 상기 시스톨릭 어레이 프로세서의 프로세싱 소자들 중 제1 영역이 프로세싱 소자들은 활성화되고, 그리고 나머지 영역의 프로세싱 소자들은 비활성화 되고, 상기 스위칭 액티비티 값을 계산하는 단계는: 상기 제1 영역의 프로세싱 소자들의 스위칭 특색 및 상기 나머지 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 단계를 포함한다.
실시 예로서, 상기 나머지 영역은 상기 제1 영역과 행들을 공유하는 프로세싱 소자들을 포함하는 제2 영역, 상기 제1 영역과 열들을 공유하는 프로세싱 소자들을 포함하는 제3 영역, 그리고 상기 제1 영역과 상기 행들 및 상기 열들을 공유하지 않는 프로세싱 소자들을 포함하는 제4 영역을 포함하고, 상기 제1 영역의 프로세싱 소자들의 스위칭 특색 및 상기 나머지 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 단계는: 상기 제2 영역의 프로세싱 소자들의 스위칭 특색, 상기 제3 영역의 프로세싱 소자들의 스위칭 특색, 그리고 상기 제4 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 단계를 포함한다.
본 기재에 따르면, 전자 장치는 미리 계산된 스위칭 액티비티(switching activity) 값에 기반하여 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택한다. 사후적이 아닌 사전적으로 시스톨릭 어레이 프로세서의 발열이 관리되므로, 더 효과적으로 시스톨릭 어레이 프로세서의 발열을 관리하는 전자 장치 및 전자 장치의 동작 방법이 제공된다.
도 1은 본 기재의 실시 예에 따른 전자 장치를 보여준다.
도 2는 본 기재의 실시 예에 따른 시스톨릭 어레이 프로세서를 보여준다.
도 3은 본 기재의 실시 예에 따른 제1 프로세싱 소자를 보여준다.
도 4는 전자 장치의 동작 방법의 예를 보여준다.
도 5는 기계 학습 모듈을 실행할 때에 시스톨릭 어레이 프로세서의 프로세싱 소자들이 동작하는 예를 보여준다.
도 6은 전자 장치가 스위칭 액티비티 값에 기반하여 시스톨릭 어레이 프로세서의 클럭 신호의 주파수를 선택하는 예를 보여준다.
도 7은 전자 장치가 기계 학습 모듈의 복수의 레이어들의 동작 주파수들을 결정하는 예를 보여준다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다. 아래에서, '그리고/또는'은 해당 용어와 연관되어 나열된 항목들의 어느 하나, 그리고 연관되어 나열된 항목들 중 일부 또는 전부의 조합을 포함하는 것으로 해석된다.
도 1은 본 기재의 실시 예에 따른 전자 장치(10)를 보여준다. 도 1을 참조하면, 전자 장치(10)는 메인 프로세서(11), 시스톨릭 어레이 프로세서(12), 메모리(13), 동적 전압 및 주파수 스케일링 장치(14), 스토리지 장치(15), 그리고 인터페이스 장치(16)를 포함할 수 있다.
메인 프로세서(11)는 중앙 처리 장치(CPU) 또는 응용 프로세서(AP)를 포함할 수 있다. 메인 프로세서(11)는 운영 체제를 구동하여 전자 장치(10)를 제어할 수 있다. 메인 프로세서(11)는 다양한 응용들을 실행할 수 있다. 메인 프로세서(11)는 기계 학습 모듈을 실행하도록 시스톨릭 어레이 프로세서(12)를 제어할 수 있다. 예를 들어, 메인 프로세서(11)는 스토리지 장치(15)에 저장된 기계 학습 모듈을 시스톨릭 어레이 프로세서(12)에 로드할 수 있다.
메인 프로세서(11)는 운영 체제 및 응용들을 스토리지 장치(15)로부터 메모리(13)에 로드하여 실행할 수 있다. 메인 프로세서(11)는 DVFS(Dynamic Voltage Frequency Scaling)을 수행하도록 동적 전압 및 주파수 스케일링 장치(14)를 제어할 수 있다. 메인 프로세서(11)는 전자 장치(10)에 설치되는 다양한 운영 체제들, 응용들, 그리고/또는 모듈들의 소스 코드들을 스토리지 장치(15)에 저장할 수 있다. 메인 프로세서(11)는 인터페이스 장치(16)를 통해 외부의 다른 장치 또는 사용자와 정보를 교환할 수 있다.
시스톨릭 어레이 프로세서(12)는 기계 학습 모듈을 실행할 수 있다. 기계 학습 모듈은 기계 학습에 기반한 추론, 분류 등과 같은 다양한 연산들을 수행할 수 있다. 시스톨릭 어레이 프로세서(12)는 기계 학습 모듈에 의해 생성된 결과 데이터를 메모리(13)에 저장하거나 메인 프로세서(11)로 제공할 수 있다.
메모리(13)는 전자 장치(10)의 시스템 메모리로 사용될 수 있다. 메모리(13)는 동적 랜덤 액세스 메모리(DRAM) 또는 불휘발성 메모리를 포함하는 스토리지 클래스 메모리(SCM)를 포함할 수 있다.
동적 전압 및 주파수 스케일링 장치(14)는 메인 프로세서(11)의 제어에 응답하여, 메인 프로세서(11) 그리고/또는 시스톨릭 어레이 프로세서(12)로 공급되는 전압의 레벨 또는 클럭 신호의 주파수를 조절할 수 있다.
스토리지 장치(15)는 메인 프로세서(11) 또는 시스톨릭 어레이 프로세서(12)에서 실행되는 운영 체제, 응용들, 그리고/또는 모듈들의 코드들 그리고/또는 명령들의 원본 데이터를 저장할 수 있다. 스토리지 장치(15)는 메인 프로세서(11) 또는 시스톨릭 어레이 프로세서(12)에 의해 생성되는 사용자 데이터를 저장할 수 있다. 스토리지 장치(15)는 하드 디스크 드라이브, 솔리드 스테이트 드라이브 등과 같은 다양한 불휘발성 저장 매체들을 포함할 수 있다.
인터페이스 장치(16)는 외부의 장치와 통신하도록 구성되는 유선 그리고/또는 무선 기기들을 포함할 수 있다. 인터페이스 장치(16)는 사용자에게 정보를 전달하는 사용자 출력 인터페이스 장치들 그리고/또는 사용자로부터 정보를 획득하는 사용자 입력 인터페이스 장치들을 포함할 수 있다.
도 2는 본 기재의 실시 예에 따른 시스톨릭 어레이 프로세서(100)를 보여준다. 도 2를 참조하면, 시스톨릭 어레이 프로세서(100)는 커널 데이터 메모리(110), 데이터 메모리(120), 제어기(130), 제1 프로세싱 소자들(PE1), 제2 프로세싱 소자들(PE2), 그리고 제3 프로세싱 소자들(PE3)을 포함할 수 있다.
커널 데이터 메모리(110)는 커널로 사용되는 커널 데이터(예를 들어, 가중치 데이터)를 저장할 수 있다. 제어기(130)로부터 제1 주소(ADD1)가 수신되는 것에 응답하여, 커널 데이터 메모리(110)는 제1 프로세싱 소자들(PE1) 중 제1행의 제1 프로세싱 소자(PE1), 제2 프로세싱 소자들(PE2) 중 제1행의 제2 프로세싱 소자들(PE2), 그리고 제3 프로세싱 소자들(PE3) 중 제1행의 제3 프로세싱 소자(PE3)에 커널 데이터(KD)를 제공할 수 있다. 예를 들어, 커널 데이터 메모리(110)는 제1 주소(ADD1)가 가리키는 저장 공간의 커널 데이터를 제공할 수 있다.
데이터 메모리(120)는 입력 데이터 및 출력 데이터를 저장할 수 있다. 제어기(130)로부터 제2 주소(ADD2)가 수신되는 것에 응답하여, 데이터 메모리(120)는 제1 프로세싱 소자들(PE1)에 입력 데이터(ID)를 제공할 수 있다. 예를 들어, 데이터 메모리(120)는 제2 주소(ADD2)가 가리키는 저장 공간의 입력 데이터를 제공할 수 있다. 제어기(130)로부터 제3 주소(ADD3)가 수신되는 것에 응답하여, 데이터 메모리(120)는 제1 프로세싱 소자들(PE1)로부터 전달되는 출력 데이터(OD)를 저장할 수 있다. 예를 들어, 데이터 메모리(120)는 출력 데이터(OD)를 제3 주소(ADD3)가 가리키는 저장 공간에 저장할 수 있다.
예를 들어, 데이터 메모리(120)는 제1 프로세싱 소자들(PE1)의 행들의 순서에 따라 입력 데이터(ID)를 제공할 수 있다. 데이터 메모리(120)는 제1행의 제1 프로세싱 소자(PE1)에 입력 데이터(ID)를 제공하고, 그리고 하나의 동작 사이클(예를 들어, 클럭 신호의 하나의 클럭 사이클이 경과한 후에 제2행의 제1 프로세싱 소자(PE1)에 입력 데이터(ID)를 제공할 수 있다.
데이터 메모리(120)는 제2행의 제1 프로세싱 소자(PE1)에 입력 데이터(ID)를 제공하고, 그리고 하나의 동작 사이클이 경과한 후에 제3행의 제1 프로세싱 소자(PE31에 입력 데이터(ID)를 제공할 수 있다. 마찬가지로, 데이터 메모리(120)는 제m-1행(m은 양의 정수이며, 프로세싱 소자들(PE1, PE2, PE3)의 행들의 수)의 제1 프로세싱 소자(PE1)에 입력 데이터(ID)를 제공하고, 그리고 하나의 동작 사이클이 경과한 후에 제m행의 제1 프로세싱 소자(PE1)에 입력 데이터(ID)를 제공할 수 있다.
제어기(130)는 커널 데이터 메모리(110)에 제1 주소(ADD1)를 제공할 수 있다. 제어기(130)는 데이터 메모리(120)에 제2 주소(ADD2) 및 제3 주소(ADD3)를 제공할 수 있다. 제어기(130)는 제1행 및 제1열의 제1 프로세싱 소자(PE1)에 커맨드(CMD)를 제공할 수 있다.
제1 프로세싱 소자들(PE1)은 제1열에 배치될 수 있다. 제1행 및 제1열의 제1 프로세싱 소자(PE1)는 제어기(130)로부터 커맨드(CMD)를 수신하고, 커널 데이터 메모리(110)로부터 커널 데이터(KD)를 수신하고, 그리고 데이터 메모리(120)로부터 입력 데이터를 수신할 수 있다. 제1행 및 제1열의 제1 프로세싱 소자(PE1)는 커널 데이터(KD)와 입력 데이터(ID)에 대해 커맨드(CMD)에 따른 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다.
제1행 및 제1열의 제1 프로세싱 소자(PE1)는 출력 데이터(OD)를 데이터 메모리(120)로 전달할 수 있다. 또한, 제1행 및 제1열의 제1 프로세싱 소자(PE1)는 제1행 및 제2열의 제2 프로세싱 소자(PE2)로부터 전달되는 출력 데이터(OD)를 데이터 메모리(120)로 전달할 수 있다. 제1행 및 제1열의 제1 프로세싱 소자(PE1)는 커맨드(CMD) 및 커널 데이터(KD)를 제2행의 제1 프로세싱 소자(PE1)로 전달할 수 있다.
제1열의 제2행 내지 제m행의 제1 프로세싱 소자들(PE1)의 각각은 이전 행의 제1 프로세싱 소자(PE1)로부터 커맨드(CMD) 및 커널 데이터(KD)를 수신할 수 있다. 제1열의 제2행 내지 제m행의 제1 프로세싱 소자들(PE1)의 각각은 데이터 메모리(120)로부터 입력 데이터를 수신할 수 있다. 제1열의 제2행 내지 제m행의 제1 프로세싱 소자들(PE1)의 각각은 커널 데이터(KD)와 입력 데이터(ID)에 대해 커맨드(CMD)에 따른 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다.
제1열의 제2행 내지 제m행의 제1 프로세싱 소자들(PE1)의 각각은 출력 데이터(OD)를 데이터 메모리(120)로 전달할 수 있다. 또한, 제1열의 제2행 내지 제m행의 제1 프로세싱 소자들(PE1)의 각각은 제2열의 제1행 내지 제m행의 제2 프로세싱 소자(PE2)로부터 전달되는 출력 데이터(OD)를 데이터 메모리(120)로 전달할 수 있다. 제1열의 제2행 내지 제m-1행의 제1 프로세싱 소자들(PE1)의 각각은 커맨드(CMD) 및 커널 데이터(KD)를 다음 행의 제1 프로세싱 소자(PE1)로 전달할 수 있다.
제1행의 제2 프로세싱 소자들(PE2)의 각각은 이전 열의 프로세싱 소자(PE1 또는 PE2)로부터 커맨드(CMD) 및 입력 데이터(ID)를 수신할 수 있다. 제1행의 제2 프로세싱 소자들(PE2)의 각각은 커널 데이터 메모리(110)로부터 커널 데이터(KD)를 수신할 수 있다.
제1행의 제2 프로세싱 소자들(PE2)의 각각은 입력 데이터(ID) 및 커널 데이터(KD)에 대해 커맨드(CMD)에 따른 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다. 제1행의 제2 프로세싱 소자들(PE2)의 각각은 출력 데이터(OD)를 이전 열의 프로세싱 소자(PE1 또는 PE2)로 전달할 수 있다. 제1행의 제2 프로세싱 소자들(PE2)의 각각은 커맨드(CMD) 및 커널 데이터(KD)를 다음 행의 제2 프로세싱 소자(PE2)로 전달할 수 있다.
제2행 내지 제m행의 제2 프로세싱 소자들(PE2)의 각각은 이전 열의 프로세싱 소자(PE1 또는 PE2)로부터 커맨드(CMD) 및 입력 데이터(ID)를 수신할 수 있다. 제2행 내지 제m행의 제2 프로세싱 소자들(PE2)의 각각은 이전 행의 제2 프로세싱 소자(PE2)로부터 커널 데이터(KD)를 수신할 수 있다.
제2행 내지 제m행의 제2 프로세싱 소자들(PE2)의 각각은 입력 데이터(ID) 및 커널 데이터(KD)에 대해 커맨드(CMD)에 따른 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다. 제2행 내지 제m행의 제2 프로세싱 소자들(PE2)의 각각은 출력 데이터(OD)를 이전 열의 프로세싱 소자(PE1 또는 PE2)로 전달할 수 있다. 제2행 내지 제m-1행의 제2 프로세싱 소자들(PE2)의 각각은 커맨드(CMD) 및 커널 데이터(KD)를 다음 행의 제2 프로세싱 소자(PE2)로 전달할 수 있다.
제1행의 제3 프로세싱 소자(PE3)는 이전 열의 제2 프로세싱 소자(PE2)로부터 커맨드(CMD) 및 입력 데이터(ID)를 수신할 수 있다. 제1행의 제3 프로세싱 소자(PE3)는 커널 데이터 메모리(110)로부터 커널 데이터(KD)를 수신할 수 있다.
제1행의 제3 프로세싱 소자(PE3)는 입력 데이터(ID) 및 커널 데이터(KD)에 대해 커맨드(CMD)에 따른 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다. 제1행의 제3 프로세싱 소자(PE3)는 출력 데이터(OD)를 이전 열의 제2 프로세싱 소자(PE2)로 전달할 수 있다. 제1행의 제3 프로세싱 소자(PE3)는 커맨드(CMD) 및 커널 데이터(KD)를 다음 행의 제3 프로세싱 소자(PE3)로 전달할 수 있다.
제2행 내지 제m행의 제3 프로세싱 소자들(PE3)의 각각은 이전 열의 제2 프로세싱 소자(PE2)로부터 커맨드(CMD) 및 입력 데이터(ID)를 수신할 수 있다. 제2행 내지 제m행의 제3 프로세싱 소자들(PE3)의 각각은 이전 행의 제3 프로세싱 소자(PE3)로부터 커널 데이터(KD)를 수신할 수 있다.
제2행 내지 제m행의 제3 프로세싱 소자들(PE3)의 각각은 입력 데이터(ID) 및 커널 데이터(KD)에 대해 커맨드(CMD)에 따른 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다. 제2행 내지 제m행의 제3 프로세싱 소자들(PE3)의 각각은 출력 데이터(OD)를 이전 열의 제2 프로세싱 소자(PE2)로 전달할 수 있다. 제2행 내지 제m-1행의 제3 프로세싱 소자들(PE3)의 각각은 커맨드(CMD) 및 커널 데이터(KD)를 다음 행의 제3 프로세싱 소자(PE3)로 전달할 수 있다.
도 3은 본 기재의 실시 예에 따른 제1 프로세싱 소자(PE1)를 보여준다. 도 2 및 도 3을 참조하면, 제1 프로세싱 소자(PE1)는 커맨드 레지스터(210), 입력 데이터 레지스터(220), 커널 데이터 레지스터(230), 연산기(240), 그리고 출력 데이터 레지스터(250)를 포함할 수 있다.
커맨드 레지스터(210)는 제어기(130) 또는 이전 행의 제1 프로세싱 소자(PE1)로부터 전달되는 커맨드(CMD)를 저장할 수 있다. 커맨드 레지스터(210)는 다음 열의 제2 프로세싱 소자(PE2)로 전달할 수 있다. 제1행 내지 제m-1행의 제1 프로세싱 소자들(PE1)의 커맨드 레지스터(210)는 커맨드(CMD)를 다음 행의 제1 프로세싱 소자(PE1)로 전달할 수 있다.
입력 데이터 레지스터(220)는 데이터 메모리(120)로부터 전달되는 입력 데이터(ID)를 저장할 수 있다. 입력 데이터 레지스터(220)는 저장된 입력 데이터(ID)를 연산기(240) 및 다음 열의 제2 프로세싱 소자(PE2)로 전달할 수 있다.
커널 데이터 레지스터(230)는 커널 데이터 메모리(110) 또는 이전 행의 제1 프로세싱 소자(PE1)로부터 전달되는 커널 데이터(KD)를 저장할 수 있다. 커널 데이터 레지스터(230)는 저장된 커널 데이터(KD)를 연산기(240)로 전달할 수 있다. 제1행 내지 제m-1행의 제1 프로세싱 소자들(PE1)의 커널 데이터 레지스터(230)는 저장된 커널 데이터(KD)를 다음 행의 제1 프로세싱 소자(PE1)로 전달할 수 있다.
연산기(240)는 입력 데이터 레지스터(220)로부터 입력 데이터(ID)를 수신하고, 그리고 커널 데이터 레지스터(230)로부터 커널 데이터(KD)를 수신할 수 있다. 연산기(240)는 입력 데이터(ID) 및 커널 데이터(KD)에 대해 커맨드(CMD)에 의해 지시된 연산을 수행하여 출력 데이터(OD)를 생성할 수 있다. 연산기(240)는 출력 데이터(OD)를 출력 데이터 레지스터(250)로 전달할 수 있다.
출력 데이터 레지스터(250)는 연산기(240)로부터 전달되는 출력 데이터(OD) 또는 다음 열의 제2 프로세싱 소자(PE2)로부터 전달되는 출력 데이터(OD)를 저장할 수 있다. 출력 데이터 레지스터(250)는 저장된 출력 데이터(OD)를 데이터 메모리(120)로 전달할 수 있다.
제m 행의 제1 프로세싱 소자(PE1)에서, 커맨드(CMD)를 다음 행의 프로세싱 소자로 전달하는 경로가 생략될 수 있다. 제2 프로세싱 소자들(PE2) 및 제3 프로세싱 소자들(PE3)에서, 커맨드(CMD)는 이전 열의 프로세싱 소자(PE1 또는 PE2)로부터 수신되도록 수정될 수 있다. 제2 프로세싱 소자들(PE2) 및 제3 프로세싱 소자들(PE3)에서, 커맨드(CMD)를 다음 행의 프로세싱 소자로 전달하는 경로는 생략될 수 있다. 제3 프로세싱 소자들(PE3)에서, 커맨드(CMD)를 다른 프로세싱 소자로 전달하는 경로는 생략될 수 있다.
도 4는 전자 장치(10)의 동작 방법의 예를 보여준다. 도 1 및 도 4를 참조하면, 전자 장치(10)의 메인 프로세서(11)는 시스톨릭 어레이 프로세서(12)에서 실행될 기계 학습 모듈의 컴파일을 수행할 수 있다. 예를 들어, S110 단계에서, 메인 프로세서(11)는 기계 학습 모듈의 소스 코드들을 시스톨릭 어레이 프로세서(12)에서 실행되는 명령들로 변환할 수 있다.
명령들의 변환이 완료되면, S120 단계에서, 메인 프로세서(11)는 변환된 명령들에 기반하여 기계 학습 모듈의 스위칭 액티비티(switching activity) 값을 계산할 수 있다. 예를 들어, 메인 프로세서(11)는 시스톨릭 어레이 프로세서(12)가 명령들을 실행하는 때에 시스톨릭 어레이 프로세서(12)에서 클럭 신호의 단위 사이클 당 신호의 레벨이 변경(예를 들어, 반전)되는 평균 횟수를 스위칭 액티비티 값으로 계산할 수 있다. 예를 들어, 메인 프로세서(11)는 시뮬레이션에 기반하여 스위칭 액티비티 값을 계산할 수 있다. 또는, 메인 프로세서(11)는 함수에 기반하여 스위칭 액티비티 값을 계산하거나 검색표로부터 스위칭 액티비티 값을 획득할 수 있다.
S130 단계에서, 메인 프로세서(11)는 변환된 명령들 및 스위칭 액티비티 값을 시스톨릭 어레이 프로세서(12)를 위한 컴파일된 기계 학습 모듈로 저장할 수 있다.
예시적으로, 기계 학습 모듈은 복수의 레이어들을 포함할 수 있다. 시스톨릭 어레이 프로세서(12)는 복수의 레이어들을 순차적으로 실행함으로써 기계 학습 모듈을 실행할 수 있다. 메인 프로세서(11)는 복수의 레이어들의 각각에 대해 스위칭 액티비티 값을 계산할 수 있다.
도 5는 기계 학습 모듈을 실행할 때에 시스톨릭 어레이 프로세서(12)의 프로세싱 소자들이 동작하는 예를 보여준다. 도 2 및 도 5를 참조하면, 제1 영역(R1)의 프로세싱 소자들은 활성화될 수 있다. 제1 영역(R1)의 프로세싱 소자들은 커널 데이터 메모리(110)로부터 유효한 커널 데이터(KD)를 수신하고, 데이터 메모리(120)로부터 유효한 입력 데이터(ID)를 수신하고, 그리고 제어기(130)로부터 유효한 커맨드(CMD)를 수신할 수 있다.
나머지 영역, 예를 들어 제2 영역(R2), 제3 영역(R3) 및 제4 영역(R4)의 프로세싱 소자들은 비활성화될 수 있다. 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)은 활성화된 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)과 행들을 공유할 수 있다. 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)은 커널 데이터 메모리(110)로부터 무효한 커널 데이터(KD)(예를 들어, '0' 또는 '1'로 고정된 값들)를 수신하고, 그리고 무효한 커널 데이터(KD)를 다음 행의 프로세싱 소자들(PE2, PE3)로 전달할 수 있다.
제2 영역(R2)의 프로세싱 소자들(PE2, PE3)은 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)로부터 유효한 입력 데이터(ID)(예를 들어, '0' 및 '1'의 사이를 스위칭하는 값들) 및 유효한 커맨드(CMD)를 수신할 수 있다. 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)은 유효한 커맨드(CMD)에 응답하여, 유효한 입력 데이터(ID) 및 무효한 커널 데이터(KD)에 대해 연산을 수행할 수 있다. 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)은 유효한 입력 데이터(ID) 및 유효한 커맨드(CMD)를 다음 열의 프로세싱 소자들(PE2, PE3)로 전달할 수 있다.
제3 영역(R3)의 프로세싱 소자들(PE1, PE2)은 활성화된 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)과 열들을 공유할 수 있다. 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)은 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)로부터 유효한 커널 데이터(KD)(예를 들어, '0' 및 '1'의 사이를 스위칭하는 값들)를 수신하고, 그리고 유효한 커널 데이터(KD)를 다음 행의 프로세싱 소자들(PE1, PE2)로 전달할 수 있다.
제3 영역(R3)의 프로세싱 소자들(PE1, PE2)은 데이터 메모리(120)로부터 무효한 입력 데이터(ID)를 수신할 수 있다. 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)은 제1 영역(R1)의 제1 프로세싱 소자들(PE1)로부터 유효한 커맨드(CMD)를 수신할 수 있다. 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)은 유효한 커맨드(CMD)에 응답하여, 무효한 입력 데이터(ID) 및 유효한 커널 데이터(KD)에 대해 연산을 수행할 수 있다. 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)은 무효한 입력 데이터(ID) 및 유효한 커맨드(CMD)를 다음 열의 프로세싱 소자들(PE1, PE2)로 전달할 수 있다.
제4 영역(R4)의 프로세싱 소자들(PE2, PE3)은 활성화된 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)과 행들 및 열들을 공유하지 않을 수 있다. 제4 영역(R4)의 프로세싱 소자들(PE2, PE3)은 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)로부터 무효한 커널 데이터(KD)를 수신하고, 그리고 무효한 커널 데이터(KD)를 다음 행의 프로세싱 소자들(PE2, PE3)로 전달할 수 있다.
제4 영역(R4)의 프로세싱 소자들(PE2, PE3)은 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)로부터 무효한 입력 데이터(ID)를 수신할 수 있다. 제4 영역(R4)의 프로세싱 소자들(PE2, PE3)은 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)로부터 유효한 커맨드(CMD)를 수신할 수 있다. 제4 영역(R4)의 프로세싱 소자들(PE2, PE3)은 유효한 커맨드(CMD)에 응답하여, 무효한 입력 데이터(ID) 및 무효한 커널 데이터(KD)에 대해 연산을 수행할 수 있다. 제4 영역(R4)의 프로세싱 소자들(PE2, PE3)은 무효한 입력 데이터(ID) 및 유효한 커맨드(CMD)를 다음 열의 프로세싱 소자들(PE2, PE3)로 전달할 수 있다.
상술된 바와 같이, 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)의 동작 특색, 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)의 동작 특색, 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)의 동작 특색, 그리고 제4 영역(R4)의 프로세싱 소자들(PE2, PE3)의 동작 특색은 서로 다를 수 있다.
본 기재의 실시 예에 따른 전자 장치(10)는 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)의 스위칭 특색, 제2 영역(R2)의 프로세싱 소자들(PE2, PE3)의 스위칭 특색, 제3 영역(R3)의 프로세싱 소자들(PE1, PE2)의 스위칭 특색, 그리고 제4 영역(R4)의 프로세싱 소자들(PE2, PE3)의 스위칭 특색을 서로 다르게 반영할 수 있다. 예를 들어, 전자 장치(10)는 수학식 1에 기반하여 스위칭 액티비티 값을 계산할 수 있다.
Figure pat00001
수학식 1에서, α는 스위칭 액티비티 값일 수 있다. R은 활성화된 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)의 행들의 수일 수 있다. C는 활성화된 제1 영역(R1)의 프로세싱 소자들(PE1, PE2)의 열들의 수일 수 있다. L은 시스톨릭 어레이 프로세서(12)에서 명령들이 수행된 총 클럭 사이클들의 수일 수 있다.
S1, S2, S3 및 S4는 각각 제1 영역(R1)의 스위칭 특색, 제2 영역(R2)의 스위칭 특색, 제3 영역(R3)의 스위칭 특색, 그리고 제4 영역(R4)의 스위칭 특색일 수 있다 각 영역의 스위칭 특색은 수학식 2로 정의될 수 있다.
Figure pat00002
Wk는 제k 연산 동작에서 스위칭이 발생하는 빈도를 나타내며, 0 내지 1 사이의 값으로 정규화된 값일 수 있다. k는 시스톨릭 어레이 프로세서(12)의 프로세싱 소자에 의해 실행 가능한 연산 동작들의 인덱스를 나타낼 수 있다. Xk는 제k 연산 동작이 수행된 횟수를 나타낼 수 있다.
예시적으로, Wk는 시스톨릭 어레이 프로세서(12)가 명령들을 실행하는 동안 메인 프로세서(11)에 의해 측정될 수 있다. 다른 예로서, Wk는 메인 프로세서(11)에 의해 시뮬레이션에 기반하여 계산될 수 있다. 또는, Wk는 메인 프로세서(11)에 의해 함수에 기반하여 계산되거나 검색표로부터 획득될 수 있다.
도 6은 전자 장치(10)가 스위칭 액티비티 값에 기반하여 시스톨릭 어레이 프로세서(12)의 클럭 신호의 주파수를 선택하는 예를 보여준다. 도 1 및 도 6을 참조하면, S210 단계에서, 전자 장치(10)의 메인 프로세서(11)는 시스톨릭 어레이 프로세서(12)의 한계 전력 값 및 정적 전력 값을 읽을 수 있다. 예를 들어, 한계 전력 값 및 정적 전력 값은 컴파일된 기계 학습 모듈에 포함될 수 있다.
한계 전력 값은 시스톨릭 어레이 프로세서(12)의 온도가 한계 온도를 초과하지 않도록 정해질 수 있다. 한계 온도는 시스톨릭 어레이 프로세서(12)에서 오동작이 발생하는 온도일 수 있으며, 시스톨릭 어레이 프로세서(12)의 물리적 특색에 따라 정해질 수 있다.
S220 단계에서, 전자 장치(10)의 메인 프로세서(11)는 시스톨릭 어레이 프로세서(12)의 스위칭 액티비티 값을 읽을 수 있다. 예를 들어, 스위칭 액티비티 값은 컴파일된 기계 학습 모듈에 포함될 수 있다.
S230 단계에서, 메인 프로세서(11)는 한계 주파수를 계산할 수 있다. 한계 주파수는 시스톨릭 어레이 프로세서(12)의 소비 전력이 정규화된 한계 전력 값을 초과하지 않는 주파수일 수 있다.
이하에서, 전자 장치(10)의 메인 프로세서(11)가 한계 주파수를 계산하는 과정이 수학식들을 참조하여 설명된다. 시스톨릭 어레이 프로세서(12)의 소비 전력은 수학식 3으로 계산될 수 있다.
Figure pat00003
수학식 3에서, Ptotal은 시스톨릭 어레이 프로세서(12)의 총 소비 전력(예를 들어, 정규화된 값)일 수 있다. Pstatic은 시스톨릭 어레이 프로세서(12)의 정정 소비 전력(예를 들어, 정규화된 값)일 수 있다. Pdynamic은 시스톨릭 어레이 프로세서(12)의 동정 소비 전력(예를 들어, 정규화된 값)일 수 있다. 총 소비 전력(Ptotal)이 한계 전력 값보다 작게 제어되면, 시스톨릭 어레이 프로세서(12)의 발열이 효과적으로 관리될 수 있다.
정적 소비 전력(Pstatic)은 수학식 4로 계산될 수 있다.
Figure pat00004
수학식 4에서, V는 전압이고, T는 온도이고, C1 및 C2는 하드웨어 기반 상수이고, 그리고 Igate는 게이트 누설 전류일 수 있다. 수학식 4에 나타난 바와 같이, 정적 소비 전력(Pstatic)은 주파수에 의존하지 않는다. 따라서, 주파수를 계산하는 과정에서, 정적 소비 전력(Pstatic)은 상수로 여겨질 수 있다.
동적 소비 전력은 수학식 5로 계산될 수 있다.
Figure pat00005
Pclock_switching은 프로세싱 소자들(PE1, PE2, PE3)에 공급되는 클럭 신호의 스위칭에 의한 소비 전력일 수 있다. β는 클럭 신호의 스위칭 액티비티(예를 들어, 정규화된 값)를 나타낼 수 있다. 클럭 신호는 매 클럭 사이클마다 토글하므로, 클럭 신호의 스위칭 액티비티(β)는 최대값인 '1'일 수 있다. Plogic_switching은 프로세싱 소자들(PE1, PE2, PE3) 내에서 데이터 비트들의 스위칭에 의한 소비 전력일 수 있다. α는 수학식 1에 기반하여 계산된 스위칭 액티비티일 수 있다. F는 시스톨릭 어레이 프로세서(12)에 공급되는 클럭 신호의 주파수일 수 있다
수학식 4 및 수학식 5에 기반하여, 수학식 3은 수학식 6으로 정리될 수 있다.
Figure pat00006
γ는 정적 소비 전력(Pstatic)을 상수로 표현한 값일 수 있다. 수학식 6의 값이 한계 전력 값보다 적게 관리되면, 시스톨릭 어레이 프로세서(12)의 발열이 효과적으로 관리될 수 있다. 수학식 6으로부터, 주파수(F)는 수학식 7에 기반하여 정해질 수 있다.
Figure pat00007
한계 전력 값(M), 정적 전력 값(γ) 및 스위칭 액티비티 값(α)은 사전에 결정 또는 측정되어 컴파일된 기계 학습 모듈에 포함된다. 따라서, 메인 프로세서(11)는 한계 주파수를 계산할 수 있다.
동적 전압 및 주파수 스케일링 장치(14)는 정해진 개수의 서로 다른 주파수들을 갖는 클럭 신호를 시스톨릭 어레이 프로세서(12)에 공급할 수 있다. 메인 프로세서(11)는 동적 전압 및 주파수 스케일링 장치(14)로부터 주파수들의 목록을 읽을 수 있다. S240 단계에서, 메인 프로세서(11)는 주파수 목록으로부터 동작 주파수를 선택할 수 있다. 예를 들어, 메인 프로세서(11)는 목록의 주파수들 중에서 한계 주파수(F)보다 낮으면서 가장 높은 주파수를 동작 주파수로 선택할 수 있다.
도 7은 전자 장치(10)가 기계 학습 모듈의 복수의 레이어들의 동작 주파수들을 결정하는 예를 보여준다. 도 1 및 도 7을 참조하면, S310 단계에서, 전자 장치(10)의 메인 프로세서(11)는 기계 학습 모듈의 복수의 레이어들 중에서 첫 번째 레이어를 선택할 수 있다.
S320 단계에서, 메인 프로세서(11)는 선택된 레이어에 대응하는 시스톨릭 어레이 프로세서(12)의 동작 주파수를 계산할 수 있다. 예를 들어, 메인 프로세서(11)는 도 6을 참조하여 설명된 방법에 따라, 선택된 레이어의 동작 주파수를 계산할 수 있다.
S330 단계에서, 메인 프로세서(11)는 선택된 레이어가 기계 학습 모듈의 마지막 레이어인지 판단할 수 있다. 선택된 레이어가 기계 학습 모듈의 마지막 레이어가 아니면, S340 단계에서, 메인 프로세서(11)는 기계 학습 모듈의 복수의 레이어들 중 다음 레이어를 선택할 수 있다. 이후에, 메인 프로세서는 S320 단계를 다시 수행할 수 있다. 선택된 레이어가 기계 학습 모듈의 마지막 레이어이면, S350 단계에서, 메인 프로세서(11)는 계산된 동작 주파수들에 기반하여 기계 학습 모듈을 실행하도록 시스톨릭 어레이 프로세서(12)를 제어할 수 있다.
시스톨릭 어레이 프로세서(12)는 짧은 시간 동안에 복수의 프로세싱 소자들을 이용하여 병렬 연산을 수행할 수 있다. 일 예로서, 전자 장치(10)는 시스톨릭 어레이 프로세서(12)의 온도를 감지하고 그리고 온도에 기반하여 시스톨릭 어레이 프로세서(12)에 공급되는 클럭 신호의 주파수를 제어하도록 구현될 수 있다. 그러나 짧은 시간 동안에 병렬 연산이 집중적으로 수행되면, 주파수를 제어하기 전에 시스톨릭 어레이 프로세서(12)의 온도가 한계 온도를 초과할 수 있다.
본 기재의 실시 예에 다른 전자 장치(10)는 사후적으로 시스톨릭 어레이 프로세서(12)의 발열을 관리하지 않고, 스위칭 액티비티에 기반하여 사전적으로 시스톨릭 어레이 프로세서(12)의 발열을 관리한다. 따라서, 시스톨릭 어레이 프로세서(12)의 발열이 효과적으로 관리될 수 있다.
10: 전자 장치
11: 메인 프로세서
12: 시스톨릭 어레이 프로세서
13: 메모리
14: 동적 전압 및 주파수 스케일링 장치
15: 스토리지 장치
16: 인터페이스 장치
110: 커널 데이터 메모리
120: 데이터 메모리
130: 제어기
PE1, PE2, PE3: 프로세싱 소자들
210: 커맨드 레지스터
220: 입력 데이터 레지스터
230: 커널 데이터 레지스터
240: 연산기
250: 출력 데이터 레지스터

Claims (15)

  1. 메인 프로세서; 그리고
    시스톨릭 어레이 프로세서를 포함하고,
    상기 시스톨릭 어레이 프로세서는:
    프로세싱 소자들;
    상기 프로세싱 소자들에 커널 데이터 세트를 제공하는 커널 데이터 메모리;
    상기 프로세싱 소자들에 입력 데이터 세트를 제공하는 데이터 메모리; 그리고
    상기 프로세싱 소자들에 커맨드들을 제공하는 제어기를 포함하고,
    상기 메인 프로세서는:
    상기 시스톨릭 어레이 프로세서와 연관된 소스 코드들을 상기 시스톨릭 어레이 프로세서의 명령들로 변환하고,
    상기 명령들에 기반하여 스위칭 액티비티 값을 계산하고, 그리고
    상기 변환된 명령들 및 상기 스위칭 액티비티 값을 상기 시스톨릭 어레이 프로세서에 기반한 기계 학습 모듈로 저장하는 전자 장치.
  2. 제1항에 있어서,
    상기 기계 학습 모듈은 복수의 레이어들을 포함하고, 그리고
    상기 메인 프로세서는 상기 복수의 레이어들의 각각에 대해 상기 스위칭 액티비티 값을 계산하는 전자 장치.
  3. 제1항에 있어서,
    상기 시스톨릭 어레이 프로세서에서 상기 기계 학습 모듈을 실행할 때, 상기 메인 프로세서는 상기 스위칭 액티비티 값에 기반하여 상기 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택하는 전자 장치.
  4. 제1항에 있어서,
    상기 기계 학습 모듈은 복수의 레이어들을 포함하고, 그리고
    상기 시스톨릭 어레이 프로세서에서 상기 기계 학습 모듈을 실행할 때, 상기 메인 프로세서는 상기 스위칭 액티비티 값에 기반하여 상기 복수의 레이어들의 각각에 대해 상기 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택하는 전자 장치.
  5. 제1항에 있어서,
    상기 기계 학습 모듈을 실행할 때, 상기 프로세싱 소자들 중 제1 영역이 프로세싱 소자들은 활성화되고, 나머지 영역의 프로세싱 소자들은 비활성화 되고, 그리고
    상기 메인 프로세서는 상기 제1 영역의 프로세싱 소자들의 스위칭 특색 및 상기 나머지 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 전자 장치.
  6. 제5항에 있어서,
    상기 나머지 영역은 상기 제1 영역과 행들을 공유하는 프로세싱 소자들을 포함하는 제2 영역, 상기 제1 영역과 열들을 공유하는 프로세싱 소자들을 포함하는 제3 영역, 그리고 상기 제1 영역과 상기 행들 및 상기 열들을 공유하지 않는 프로세싱 소자들을 포함하는 제4 영역을 포함하고, 그리고
    상기 메인 프로세서는 상기 제2 영역의 프로세싱 소자들의 스위칭 특색, 상기 제3 영역의 프로세싱 소자들의 스위칭 특색, 그리고 상기 제4 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 전자 장치.
  7. 제1항에 있어서,
    상기 스위칭 액티비티 값은 단위 클럭 사이클에서 신호의 스위칭이 발생하는 횟수를 나타내는 전자 장치.
  8. 메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치의 동작 방법에 있어서:
    상기 메인 프로세서가 상기 시스톨릭 어레이 프로세서의 스위칭 액티비티 값을 읽는 단계; 그리고
    상기 메인 프로세서가 상기 스위칭 액티비티 값에 기반하여 상기 시스톨릭 어레이 프로세서에 공급되는 클럭 신호의 주파수를 선택하는 단계를 포함하고,
    상기 스위칭 액티비티 값은 단위 클럭 사이클에서 신호의 스위칭이 발생하는 횟수를 나타내는 동작 방법.
  9. 제8항에 있어서,
    상기 스위칭 액티비티 값은 고정된 값으로서 상기 시스톨릭 어레이 프로세서에 의해 실행되는 기계 학습 모듈에 포함된 동작 방법.
  10. 제8항에 있어서,
    상기 클럭 신호의 주파수를 선택하는 단계는:
    상기 스위칭 액티비티 값에 기반하여 상기 시스톨릭 어레이 프로세서의 한계 주파수를 계산하는 단계; 그리고
    상기 시스톨릭 어레이 프로세서에 공급되는 상기 클럭 신호의 주파수들 중에서 상기 한계 주파수보다 작으면서 가장 높은 주파수를 선택하는 단계를 포함하는 동작 방법.
  11. 제8항에 있어서,
    상기 시스톨릭 어레이 프로세서에 의해 실행되는 기계 학습 모듈은 복수의 레이어들을 포함하고, 그리고
    상기 복수의 레이어들은 서로 다른 스위칭 액티비티 값들을 갖고,
    상기 클럭 신호의 주파수를 선택하는 단계는:
    상기 서로 다른 스위칭 액티비티 값들에 기반하여, 상기 복수의 레이어들의 각각에 대해 상기 클럭 신호의 주파수를 선택하는 단계를 포함하는 동작 방법.
  12. 제8항에 있어서,
    상기 메인 프로세서가 상기 시스톨릭 어레이 프로세서에서 실행되는 기계 학습 모듈의 소스 코드들을 상기 기계 학습 모듈에서 실행되는 명령들로 변환하는 단계; 그리고
    상기 메인 프로세서가 상기 명령들에 기반하여 상기 스위칭 액티비티 값을 계산하는 단계를 더 포함하는 동작 방법.
  13. 제12항에 있어서,
    상기 기계 학습 모듈은 복수의 레이어들을 포함하고,
    상기 스위칭 액티비티 값을 계산하는 단계는:
    상기 복수의 레이어들의 각각에 대해 상기 스위칭 액티비티 값을 계산하는 단계를 포함하는 동작 방법.
  14. 제12항에 있어서,
    상기 기계 학습 모듈이 실행될 때, 상기 시스톨릭 어레이 프로세서의 프로세싱 소자들 중 제1 영역이 프로세싱 소자들은 활성화되고, 그리고 나머지 영역의 프로세싱 소자들은 비활성화 되고,
    상기 스위칭 액티비티 값을 계산하는 단계는:
    상기 제1 영역의 프로세싱 소자들의 스위칭 특색 및 상기 나머지 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 단계를 포함하는 동작 방법.
  15. 제14항에 있어서,
    상기 나머지 영역은 상기 제1 영역과 행들을 공유하는 프로세싱 소자들을 포함하는 제2 영역, 상기 제1 영역과 열들을 공유하는 프로세싱 소자들을 포함하는 제3 영역, 그리고 상기 제1 영역과 상기 행들 및 상기 열들을 공유하지 않는 프로세싱 소자들을 포함하는 제4 영역을 포함하고,
    상기 제1 영역의 프로세싱 소자들의 스위칭 특색 및 상기 나머지 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 단계는:
    상기 제2 영역의 프로세싱 소자들의 스위칭 특색, 상기 제3 영역의 프로세싱 소자들의 스위칭 특색, 그리고 상기 제4 영역의 프로세싱 소자들의 스위칭 특색을 서로 다르게 반영하여 상기 스위칭 액티비티 값을 계산하는 단계를 포함하는 동작 방법.
KR1020210149469A 2020-11-12 2021-11-03 메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치 및 전자 장치의 동작 방법 KR20220064899A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/525,146 US11709795B2 (en) 2020-11-12 2021-11-12 Electronic device including main processor and systolic array processor and operating method of electronic device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200151331 2020-11-12
KR1020200151331 2020-11-12

Publications (1)

Publication Number Publication Date
KR20220064899A true KR20220064899A (ko) 2022-05-19

Family

ID=81801042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210149469A KR20220064899A (ko) 2020-11-12 2021-11-03 메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치 및 전자 장치의 동작 방법

Country Status (1)

Country Link
KR (1) KR20220064899A (ko)

Similar Documents

Publication Publication Date Title
US10529406B2 (en) Memory device and refresh method thereof
US20050122797A1 (en) Memory device and method having low-power, high write latency mode and high-power, low write latency mode and/or independently selectable write latency
US6751159B2 (en) Memory device operable in either a high-power, full-page size mode or a low-power, reduced-page size mode
KR20130136343A (ko) 반도체 장치 및 그 동작 방법
KR102508132B1 (ko) 자기 저항 메모리 모듈 및 이를 포함하는 컴퓨팅 디바이스
KR20220036752A (ko) 로우 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이의 동작 방법
KR20080111733A (ko) 복수의 동작 특성에 따라 동작할 수 있는 반도체 메모리장치 및 그 제어 방법
US10847204B2 (en) Control of refresh operation for first memory region at first frequency and for second memory region at second frequency
Kandemir et al. Banked scratch-pad memory management for reducing leakage energy consumption
KR20220064899A (ko) 메인 프로세서 및 시스톨릭 어레이 프로세서를 포함하는 전자 장치 및 전자 장치의 동작 방법
JP4964091B2 (ja) メモリアクセス方法およびメモリ制御装置
US11709795B2 (en) Electronic device including main processor and systolic array processor and operating method of electronic device
JP2002352579A (ja) 情報記憶装置及び方法、メモリユニット、記録媒体、並びにプログラム
US7457185B2 (en) Semiconductor memory device with advanced refresh control
KR102357100B1 (ko) 메모리장치에 제공되는 명령의 총 제한개수를 가변하는 메모리 컨트롤러 및 이를 이용한 메모리 열 쓰로틀링 방법
US11656765B2 (en) DBI circuit and memory device including the same
JP2546161B2 (ja) ダイナミック型メモリ装置
US20210224038A1 (en) Processing-in-memory (pim) devices
KR100798772B1 (ko) 반도체 메모리 장치
KR20080090665A (ko) 독립적으로 뱅크의 모드를 선택하는 반도체 메모리 장치,메모리 컨트롤러 및 그 제어 방법
KR20060084071A (ko) 반도체 메모리에서의 리프레쉬 제어회로 및 그에 따른제어방법
CN112711548B (zh) 内存装置、图像处理芯片以及内存控制方法
US20230267984A1 (en) Memory and operation method of the same
KR100904481B1 (ko) 고 집적 반도체 메모리 장치 내 내부 전원 생성 회로
CN117334234A (zh) 一种存内计算电路、方法以及半导体存储器

Legal Events

Date Code Title Description
E902 Notification of reason for refusal