KR20170037451A - 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산을 수행하는 방법 - Google Patents
컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산을 수행하는 방법 Download PDFInfo
- Publication number
- KR20170037451A KR20170037451A KR1020150137095A KR20150137095A KR20170037451A KR 20170037451 A KR20170037451 A KR 20170037451A KR 1020150137095 A KR1020150137095 A KR 1020150137095A KR 20150137095 A KR20150137095 A KR 20150137095A KR 20170037451 A KR20170037451 A KR 20170037451A
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- perform
- internal processor
- data
- processor
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
캐시의 효율을 나타내는 정보에 기초하여, 캐시의 데이터를 이용하여 연산을 수행하거나 내부 프로세서가 연산을 수행하도록 제어하는 방법 및 이를 위한 컴퓨팅 시스템을 제공한다.
Description
본 개시는 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 수행하는 방법에 관한 것이다.
컴퓨팅 환경에서 호스트 또는 프로세서의 역할은 점점 중요해지고 있다. 프로세서는, 점점 증가하는 해상도의 이미지 또는 동영상, 점점 복잡해지는 소프트웨어 알고리즘 등을 처리하는 주체로서, 듀얼-코어 프로세서, 쿼드-코어 프로세서, 멀티-스레딩 등의 다양한 프로세서 아키텍쳐 기술들의 발전은 이와 같은 주변 기술분야들, 예를 들어 이미지 처리 분야, 소프트웨어 엔지니어링 분야 등의 발전에 직결된다. 컴퓨팅 환경 내에서 호스트 또는 프로세서는 한정된 리소스 내에서 구동된다. 예를 들어, 호스트 또는 프로세서와 메모리 간의 통신 대역폭은 병목현상(performance bottleneck) 때문에 한정될 수 밖에 없고, 또한 호스트 또는 프로세서의 에너지 소모도 일정 레벨 이하로 제한될 수 밖에 없다. 따라서, 최근에는 컴퓨팅 환경의 한정된 리소스 내에서 어떠한 방식으로 프로세싱 성능을 증대시킬 수 있을 것인지에 대한 연구가 많이 진행되고 있다.
컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산들을 수행하는 방법을 제공하는데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따라, 컴퓨팅 시스템은 캐시(cache)의 데이터를 이용하여 연산을 수행하도록 구성된 연산부; 메모리 어레이(memory array) 및 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 구성된 내부 프로세서를 포함하는 메모리부; 및 캐시의 효율을 나타내는 정보에 기초하여, 연산부 또는 내부 프로세서 중 적어도 하나가 연산을 수행하도록 제어하는 호스트;를 포함할 수 있다.
또한, 호스트는, 정보를 획득하는 모니터링부; 정보가 소정의 기준을 만족하는지 여부에 따라, 연산부 또는 내부 프로세서 중 어느 하나가 연산을 수행하도록 제어하는 제어부; 및 연산부 또는 내부 프로세서 중 적어도 하나로부터 연산의 결과 데이터를 획득하고, 연산의 결과 데이터를 처리하는 처리부;를 포함할 수 있다.
또한, 정보가 소정 시간 동안의 캐시 히트율인 경우, 제어부는, 캐시 히트율 및 소정의 임계값과의 비교를 통해, 연산부 또는 내부 프로세서 중 어느 하나가 연산을 수행하도록 제어할 수 있다.
또한, 소정의 임계값은 연산으로 인해 감소되는 메모리 대역폭을 고려하여 결정될 수 있다.
또한, 정보는, 캐시 히트율 또는 호스트가 처리하는 사이클 당 명령어 수(IPC:Instruction Per Cycle)를 포함할 수 있다.
또한, 연산은 메모리 대역폭 감소를 위한 연산일 수 있다.
또한, 호스트는, 연산부 및 내부 프로세서가 연산을 수행하도록 제어할 수 있다.
또한, 컴퓨팅 시스템은, 연산부에 의한 연산의 결과 데이터 및 내부 프로세서에 의한 연산의 결과 데이터를 재배열하기 위한 재배열부;를 포함할 수 있다.
다른 측면에 따라, 컴퓨팅 시스템은, 메모리 어레이 및 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 구성된 내부 프로세서를 포함하는 메모리부; 및 캐시의 효율을 나타내는 정보에 기초하여, 캐시의 데이터를 이용하여 연산을 수행하거나 내부 프로세서가 연산을 수행하도록 제어하는 프로세서;를 포함할 수 있다.
또 다른 측면에 따라, 메모리 어레이(memory array) 및 내부 프로세서가 포함된 메모리부를 포함하는 컴퓨팅 시스템에서 연산을 수행하는 방법은, 캐시(cache)의 효율을 나타내는 정보를 획득하는 단계; 및 정보에 기초하여, 캐시의 데이터를 이용하여 연산을 수행하거나 내부 프로세서가 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 제어하는 단계;를 포함할 수 있다.
또 다른 측면에 따라, 컴퓨팅 시스템에서 연산을 수행하는 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체가 제공된다.
본 실시예들에 따르면, 캐시의 효율을 나타내는 정보에 따라, 캐시를 이용한 연산을 수행할지 여부 또는 메모리부 내에서 연산을 수행할지 여부를 결정할 수 있는 바, 메모리 대역폭을 효과적으로 줄일 수 있다.
도 1은 일 실시예에 따른, 컴퓨팅 시스템의 블록도이다.
도 2는 일 실시예에 따른, 컴퓨팅 시스템의 블록도이다.
도 3은 호스트에 의해 내부 프로세서가 연산을 수행하도록 제어하는 실시예를 나타낸다.
도 4는 호스트에 의해 연산부가 연산을 수행하도록 제어하는 실시예를 나타낸다.
도 5는 일 실시예에 따른 컴퓨팅 시스템을 나타낸다.
도 6은 다른 실시예에 따른 컴퓨팅 시스템을 나타낸다.
도 7은 일 실시예에 따라, 메모리 어레이 및 내부 프로세서가 포함된 메모리부를 포함하는 컴퓨팅 시스템이 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 8은 s720의 보다 구체적인 실시예를 나타낸다.
도 2는 일 실시예에 따른, 컴퓨팅 시스템의 블록도이다.
도 3은 호스트에 의해 내부 프로세서가 연산을 수행하도록 제어하는 실시예를 나타낸다.
도 4는 호스트에 의해 연산부가 연산을 수행하도록 제어하는 실시예를 나타낸다.
도 5는 일 실시예에 따른 컴퓨팅 시스템을 나타낸다.
도 6은 다른 실시예에 따른 컴퓨팅 시스템을 나타낸다.
도 7은 일 실시예에 따라, 메모리 어레이 및 내부 프로세서가 포함된 메모리부를 포함하는 컴퓨팅 시스템이 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 8은 s720의 보다 구체적인 실시예를 나타낸다.
본 실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 기술분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 임의로 선정된 용어도 있으며, 이 경우 해당 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 실시예들의 전반에 걸친 내용을 토대로 정의되어야 한다.
실시예들에 대한 설명들에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 구성요소를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 실시예들에 기재된 “...부”, “...모듈”의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 실시예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 도는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
하기 실시예들에 대한 설명은 권리범위를 제한하는 것으로 해석되지 말아야 하며, 해당 기술분야의 당업자가 용이하게 유추할 수 있는 것은 실시예들의 권리범위에 속하는 것으로 해석되어야 할 것이다. 이하 첨부된 도면들을 참조하면서 오로지 예시를 위한 실시예들을 상세히 설명하기로 한다.
도 1은 일 실시예에 따른, 컴퓨팅 시스템(10)의 블록도이다.
컴퓨팅 시스템(10)은 일 실시예에 따라, 메모리부(110), 연산부(120), 캐시(130), 및 호스트(140)를 포함할 수 있다. 한편, 도 1에 도시된 컴퓨팅 시스템(10)에는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
컴퓨팅 시스템(10)은 데스크탑 컴퓨터, 노트북 컴퓨터, 스마트폰, PDA (personal digital assistants), 휴대형 미디어 플레이어, 비디오 게임용 콘솔, 텔레비젼 셋탑 박스, 태블릿 디바이스, 이북 리더, 웨어러블 디바이스 등을 예로 들 수 있지만, 이에 제한되지 않는다. 즉, 컴퓨팅 시스템(10)의 범주에는 다양한 장치들이 포함될 수 있다.
메모리부(110)는 내부 프로세서(112) 및 메모리 어레이(114)를 포함할 수 있다.
내부 프로세서(112)는 소정의 연산 기능을 갖는 하드웨어로서, 메모리부(110)의 메모리 패키지(memory package)의 칩 내에서 메모리 어레이(114)와 패키징된 프로세서이다. 여기서, “내부”의 용어는 메모리부(110) 내에 존재한다는 것을 의미할 수 있다. 또한, 일 실시예에 따라, 내부 프로세서(112)는 소정의 기능을 수행하기 위한 주문형 반도체(ASIC: application specified integrated circuit)가 될 수 있다.
내부 프로세서(112)는 PIM(Processor in Memory)에 해당될 수 있다. PIM은 하드웨어 로직으로 구현된 프로세서를 전용 핀(dedicated pin)으로 메모리 어레이(114)와 연결시킴으로써 메모리 어레이(114)의 데이터를 지연(latency) 없이 처리하도록 만든 디바이스이다. PIM 아키텍처는 프로세서와 메모리가 온칩(On-chip)으로 구현되기 때문에, 낮은 레이턴시(low latency)의 빠른 메모리 액세스가 가능하다. PIM과 같은 내부 프로세서(112)를 갖는 메모리부(110)는 intelligent RAM(Random Access Memory), computational RAM, 또는 smart memory 등과 같은 용어로도 호칭될 수 있다.
메모리부(110)에 포함된 메모리 어레이(114)는, DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory)에 해당되거나, 또는 ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory) 등과 같은 디바이스에 해당될 수 있다. 또한, 메모리 어레이(114)는 호스트(140), 연산부(120) 또는 내부 프로세서(112)에서 처리될 데이터를 제공하는 디바이스에 해당될 수 있다.
일 실시예에 따라, 내부 프로세서(112)는 메모리 어레이(114)에 저장된 데이터를 이용하여 연산을 수행하도록 구성될 수 있다. 또한, 내부 프로세서(112)는, 메모리 대역폭 감소를 위한 연산을 수행하도록 구성될 수 있다. 즉, 내부 프로세서(112)는 연산의 대상이 되는 데이터량 보다 연산 후 결과 데이터량이 줄어드는 방식의 연산을 수행할 수 있다. 따라서, 내부 프로세서(112)는 메모리부(110) 내에서 연산을 수행함으로써 메모리 대역폭을 줄일 수 있다. 예를 들어, 내부 프로세서(112)는 소정의 데이터값들을 메모리 어레이(114)로부터 입력 받아, 최대값을 구하는 연산을 수행할 수 있다. 또한, 다른 예에 따라, 내부 프로세서(112)는 이미지 필터링에 대한 연산을 수행할 수 있다.
연산부(120)는 일 실시예에 따라, 캐시(130)의 데이터를 이용하여 내부 프로세서(112)에 의한 연산과 동일한 연산을 수행하도록 구성될 수 있다. 또한, 연산부(120)는 내부 프로세서(112)에 의한 연산과 동일한 연산을 수행하는 하드웨어 로직으로 구현된 프로세서가 될 수 있다. 또한, 일 실시예에 따라, 연산부(120)는 내부 프로세서(112)와 동일한 연산을 수행하기 위한 주문형 반도체(ASIC)가 될 수 있다. 또한, 연산부(120)는 캐시(130)에 저장된 데이터를 이용하여 연산을 수행할 수 있다.
캐시(130)는 연산부(120)가 고속으로 액세스하기 위한 메모리 디바이스이다. 연산부(120)가 필요로 하는 데이터가 캐시(130)에 존재하는 경우는 캐시 히트(cache hit)로서, 연산부(120)는 고속으로 필요로 하는 데이터에 액세스할 수 있다. 다만, 연산부(120)가 필요로 하는 데이터가 캐시(130)에 존재하지 않은 경우는 캐시 미스(cache miss)로서, 캐시(130)는 연산부(120)가 필요로 하는 데이터를 메모리 어레이(114)를 통해 획득할 수 있다.
호스트(140)는 각종 연산들을 처리할 수 있는 하드웨어에 해당될 수 있다.
호스트(140)는 캐시(130)의 효율을 나타내는 정보에 기초하여, 연산부(120) 또는 내부 프로세서(112) 중 적어도 하나가 연산을 수행하도록 제어할 수 있다. 일 실시예에 따라, 호스트(140)는 캐시의 효율을 나타내는 정보에 기초하여, 연산부(120) 또는 내부 프로세서(112) 중 어느 하나가 연산을 수행하도록 제어할 수 있다.
캐시의 효율을 나타내는 정보는 캐시 히트율(cache hit rate) 또는 IPC(Instruction Per Cycle)를 포함할 수 있다. 캐시 히트율은, 소정의 시간을 기준으로, 연산부(120)가 필요로 하는 데이터 중에 캐시(130)에 기 저장된 데이터의 비율을 의미할 수 있다. 또한, IPC는 호스트(140)가 처리하는 사이클 당 명령어 수가 될 수 있다.
일 실시예에 따라, 호스트(140)는 캐시의 효율을 나타내는 정보가 소정의 기준을 만족하는 지 여부에 따라, 연산부(120) 또는 내부 프로세서(112) 중 적어도 하나가 연산을 수행하도록 제어할 수 있다.
보다 구체적으로, 호스트(140)는 캐시 히트율과 소정의 임계값의 비교를 통해, 연산부(120) 또는 내부 프로세서(112) 중 어느 하나가 연산을 수행하도록 제어할 수 있다. 예를 들어, 캐시 히트율이 소정의 임계값보다 큰 경우, 호스트(140)는 연산부(120)가 연산을 수행하도록 제어할 수 있고, 연산부(120)로부터 연산의 결과 데이터를 획득할 수 있다. 또한, 캐시 히트율이 소정의 임계값보다 작은 경우, 호스트(140)는 내부 프로세서(112)가 연산을 수행하도록 제어할 수 있고, 내부 프로세서(112)로부터 연산의 결과 데이터를 획득할 수 있다. 또한, 호스트(140)는 내부 프로세서(112)가 수행하는 연산으로 줄어드는 메모리 대역폭에 기초하여, 소정의 임계값을 결정할 수 있다. 예를 들어, 연산의 대상이 되는 데이터량이 연산의 결과 데이터량의 10배인 경우, 호스트(140)는 소정의 임계값을 90%로 결정할 수 있다. 따라서, 캐시 히트율이 90프로가 넘는다면, 호스트(140)는 캐시(130)를 이용한 연산을 수행하도록 제어할 수 있고, 캐시 히트율이 90프로가 넘지 않는다면, 호스트(140)는 메모리부(110)를 이용한 연산을 수행하도록 제어할 수 있다.
또한, 일 실시예에 따라, 호스트(140)는 연산부(120) 및 내부 프로세서(112) 모두가 연산을 수행하도록 제어할 수 있다. 보다 구체적인 실시예는 도 5에서 살펴보기로 한다.
또한, 호스트(140)는 연산부(120) 또는 내부 프로세서(112) 중 적어도 어느 하나로부터 연산의 결과 데이터를 획득할 수 있고, 이어서, 호스트(140)는 연산의 결과 데이터를 처리할 수 있다. 예를 들어, 호스트(140)는 연산의 결과 데이터를 재정렬(reordering)하는 추가 연산을 수행할 수 있다.
또한, 도 1에서, 일 실시예에 따라 호스트(140)와 연산부(120)가 분리되어 도시되었지만, 다른 실시예에 따라 호스트(140)가 연산부(120)를 포함할 수 있다. 따라서, 다른 실시예에 따라, 호스트(140)는 캐시(130)의 데이터를 이용하여 연산을 수행하거나 내부 프로세서(112)가 연산을 수행하도록 제어할 수 있다.
도 2는 일 실시예에 따른, 컴퓨팅 시스템(10a)의 블록도이다.
컴퓨팅 시스템(10a)은 일 실시예에 따라, 메모리부(210), 연산부(220), 캐시(230), 및 호스트(240)를 포함할 수 있다. 한편, 도 2에 도시된 컴퓨팅 시스템(10a)에는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
호스트(240), 메모리부(210), 연산부(220) 및 캐시(230)은 도 1의 호스트(140), 메모리부(110), 연산부(120), 및 캐시(130)에 대한 내용을 포함하는 바, 중복되는 설명은 생략하기로 한다.
호스트(240)는 일 실시예에 따라, 모니터링부(244), 제어부(242), 및 처리부(246)를 포함할 수 있다.
모니터링부(244)는 캐시(230)의 효율을 나타내는 정보를 획득할 수 있다. 즉, 모니터링부(244)는 지속적으로 캐시 히트율을 모니터링 할 수 있고, 캐시(230)의 효율을 나타내는 정보로써 소정의 시간 동안의 캐시 히트율을 획득할 수 있다. 또한, 모니터링부(244)는 호스트(240)가 처리하는 사이클 당 명령어수(IPC)를 지속적으로 모니터링 할 수 있고, 캐시(230)의 효율을 나타내는 정보로써 IPC를 획득할 수 있다.
제어부(242)는 모니터링부(244)에 의해 획득된 정보에 기초하여, 연산부(220) 또는 내부 프로세서(212) 중 적어도 하나가 연산을 수행하도록 제어할 수 있다. 예를 들어, 제어부(242)는 모니터링부(244)에 의해 획득된 캐시 히트율과 소정의 임계값의 비교를 통해, 연산부(220) 또는 내부 프로세서(212) 중 어느 하나가 연산을 수행하도록 제어할 수 있다. 보다 구체적인 실시예는 이하 도 3 및 4에서 살펴보기로 한다.
처리부(246)는 연산부(220) 또는 내부 프로세서(212) 중 적어도 어느 하나로부터 연산의 결과 데이터를 획득할 수 있고, 연산의 결과 데이터를 처리할 수 있다.
도 3은 호스트(240)에 의해 내부 프로세서(212)가 연산을 수행하도록 제어하는 실시예를 나타낸다.
모니터링부(244)는 캐시(230)의 효율을 나타내는 정보로써, 소정 시간 동안의 캐시 히트율을 획득할 수 있다.
이어서, 제어부(242)는 기 설정된 임계값과 모니터링부(244)가 획득한 캐시 히트율을 비교할 수 있다. 제어부(242)는 내부 프로세서(212)에 의한 연산으로 인해 줄어드는 메모리 대역폭을 고려하여 임계값을 설정할 수 있다. 즉, 제어부(242)는 기 설정된 임계값과 캐시 히트율을 비교하여, 내부 프로세서(212)에 의해 줄어드는 메모리 대역폭과 캐시 히트로 인해 줄어드는 메모리 대역폭을 비교할 수 있다. 다른 실시예에 따라, 제어부(242)는 기 설정된 임계값과 모니터링부(244)가 획득한 IPC를 비교할 수 있다.
캐시 히트율이 기 설정된 임계값보다 작은 경우, 제어부(242)는 내부 프로세서(212)와 연산부(220) 중 내부 프로세서(212)가 연산을 수행하도록 제어할 수 있다. 즉, 제어부(242)는 내부 프로세서(212)를 활성화시켜, 내부 프로세서(212)가 메모리 어레이(214)에 저장된 데이터를 이용하여 연산을 수행하도록 제어할 수 있다. 또한, 제어부(242)는 내부 프로세서(212)를 활성화시킬 뿐만 아니라, 연산부(220)를 비활성화시켜, 연산부(220)가 연산을 수행하지 않도록 제어할 수 있다.
내부 프로세서(212)는 메모리 어레이(214)에 저장된 데이터를 이용하여 연산을 수행할 수 있고, 연산의 결과 데이터를 호스트(240)의 처리부(246)로 전달할 수 있다.
이어서, 처리부(246)는 내부 프로세서(212)에 의해 전달된 결과 데이터를 처리할 수 있다.
따라서, 캐시 히트율이 기 설정된 임계값보다 작은 경우에는, 캐시(230)를 활용하여 연산부(220)에 의한 연산을 수행하는 것보다, 메모리부(210)에 의해 내장된 내부 프로세서(212)에 의한 연산을 수행하는 것이 컴퓨팅 시스템(10a)의 메모리 대역폭을 더 효과적으로 줄일 수 있다. 또한, 내부 프로세서(212)에 의한 연산이 수행되는 경우에는, 연산부(220)를 비활성화 시킴으로써, 연산부(220) 및 캐시(230)로 인한 전력 소모를 효과적으로 줄일 수 있다.
도 4는 호스트(240)에 의해 연산부(220)가 연산을 수행하도록 제어하는 실시예를 나타낸다.
모니터링부(244)는 캐시(230)의 효율을 나타내는 정보로써, 소정 시간 동안의 캐시 히트율을 획득할 수 있다.
이어서, 제어부(242)는 기 설정된 임계값과 모니터링부(244)가 획득한 캐시 히트율을 비교할 수 있다. 다른 실시예에 따라, 제어부(242)는 기 설정된 임계값과 모니터링부(244)가 획득한 IPC를 비교할 수 있다.
캐시 히트율이 기 설정된 임계값보다 큰 경우, 제어부(242)는 내부 프로세서(212)와 연산부(220) 중 연산부(220)가 연산을 수행하도록 제어할 수 있다. 즉, 제어부(242)는 연산부(220)를 활성화시켜, 연산부(220)가 캐시(230)에 저장된 데이터를 이용하여 연산을 수행하도록 제어할 수 있다. 또한, 제어부(242)는 연산부(220)를 활성화시킬 뿐만 아니라, 내부 프로세서(212)를 비활성화시켜, 내부 프로세서(212)가 연산을 수행하지 않도록 제어할 수 있다.
연산부(220)는 캐시(230)에 저장된 데이터를 이용하여 연산을 수행할 수 있고, 연산의 결과 데이터를 호스트(240)의 처리부(246)로 전달할 수 있다. 한편, 캐시(230)는 캐시 미스가 난 경우, 메모리 어레이(214)로부터 데이터를 획득할 수 있다.
이어서, 처리부(246)는 연산부(220)에 의해 전달된 결과 데이터를 처리할 수 있다.
따라서, 캐시 히트율이 기 설정된 임계값보다 큰 경우에는, 내부 프로세서(212)를 활용하여 내부 프로세서(212)에 의한 연산을 수행하는 것보다, 캐시(230)에 저장된 데이터를 이용하는 연산부(220)에 의한 연산을 수행하는 것이 컴퓨팅 시스템(10a)의 메모리 대역폭을 더 효과적으로 줄일 수 있다. 또한, 연산부(220)에 의한 연산이 수행되는 경우에는, 내부 프로세서(212)를 비활성화 시킴으로써, 내부 프로세서(212) 및 메모리 어레이(214)로 인한 전력 소모를 효과적으로 줄일 수 있다.
도 5는 일 실시예에 따른 컴퓨팅 시스템(10b)를 나타낸다.
컴퓨팅 시스템(10b)은 일 실시예에 따라, 메모리부(510), 연산부(520), 캐시(530), 재배열부(550) 및 호스트(540)를 포함할 수 있다. 한편, 도 5에 도시된 컴퓨팅 시스템(10b)에는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 5에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
호스트(540), 메모리부(510), 연산부(520) 및 캐시(530)는 도 1 및 2의 호스트(140,240), 메모리부(110,210), 연산부(120,220), 및 캐시(130,230)에 대한 내용을 포함하는 바, 중복되는 설명은 생략하기로 한다.
호스트(540)는 일 실시예에 따라, 제어부(542) 및 처리부(544)를 포함할 수 있다.
제어부(542)는 연산부(520) 및 내부 프로세서(512)가 연산을 수행하도록 제어할 수 있다. 즉, 제어부(542)는 연산부(520) 및 내부 프로세서(512) 모두를 활성화 시켜 연산을 수행하도록 제어할 수 있다. 일 실시예에 따라, 제어부(542)는 컴퓨팅 시스템(10b)이 최대 퍼포먼스(performance)를 필요로 하는 경우, 연산부(520) 및 내부 프로세서(512) 모두가 연산을 수행하도록 제어할 수 있다. 예를 들어, 소정의 데이터값들 중에 최대값을 구하는 연산을 100회에 걸쳐 수행하여야 하는 경우, 제어부(542)는 50회의 연산은 내부 프로세서(512)가 수행하도록 제어할 수 있고, 나머지 50회의 연산은 연산부(520)가 수행하도록 제어할 수 있다.
내부 프로세서(512)는 메모리 어레이(514)에 저장된 데이터를 이용하여 연산을 수행할 수 있고, 연산부(520)는 캐시(530)에 저장된 데이터를 이용하여 연산을 수행할 수 있다. 내부 프로세서(512) 및 연산부(520)는 연산의 결과 데이터를 재배열부(550)로 전달할 수 있다.
재배열부(550)는 내부 프로세서(512)에 의한 연산의 결과 데이터 및 연산부(520)에 의한 연산의 결과 데이터를 재배열(reorder)할 수 있다. 즉, 내부 프로세서(512)에 의한 연산 속도와 연산부(520)에 의한 연산 속도가 다르기 때문에, 재배열부(550)는 기 설정된 순서로 내부 프로세서(512)에 의한 연산의 결과 데이터 및 연산부(520)에 의한 연산의 결과 데이터를 재배열할 수 있다. 일 실시예에 따라, 재배열부(550)는 버퍼(buffer)로 구성될 수 있다. 재배열부(550)는 재배열된 연산 결과 데이터를 처리부(544)로 전달할 수 있다.
처리부(544)는 재배열된 연산 결과 데이터를 처리할 수 있다.
도 6은 다른 실시예에 따른 컴퓨팅 시스템(20)을 나타낸다.
컴퓨팅 시스템은 일 실시예에 따라, 메모리부(610), 프로세서(630) 및 캐시(620)를 포함할 수 있다. 한편, 도 6에 도시된 컴퓨팅 시스템(20)에는 실시예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 도 6에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 당해 기술분야의 통상의 기술자라면 이해할 수 있다.
메모리부(610) 및 캐시(620)는 도 1 및 2의 메모리부(110,210) 및 캐시(130,230)에 대한 내용을 포함하는 바, 중복되는 설명은 생략하기로 한다.
프로세서(630)는 각종 연산들을 처리하는 하드웨어에 해당될 수 있으며, 각종 연산들을 수행할 수 있는 소프트웨어 코드(code)를 실행할 수 있다.
프로세서(630)는 CPU(Central Processing Unit)에 해당되거나, GPU(Graphic Processing Unit)에 해당되거나, 또는 AP(Application Processor)에 해당될 수 있다. 또는 프로세서(630)는 이들의 조합으로 구현될 수 있다. 즉, 프로세서(630)는 컴퓨팅 시스템(20) 내에서 프로세싱 기능들을 담당하는 어떠한 장치에도 해당될 수 있다.
프로세서(630)가 CPU에 해당되는 경우, 프로세서(630)는 컴퓨팅 시스템(20)의 전반적인 기능들을 제어하는 하드웨어로 동작할 수 있고, 다른 구성요소들인 캐시(620) 및 메모리부(610)를 제어할 수 있다.
프로세서(630)가 GPU에 해당되는 경우, 프로세서(630)는 컴퓨팅 시스템(20)의 그래픽 프로세싱 기능을 제어하는 하드웨어로 동작할 수 있다. 즉, 프로세서(630)는 OpenGL, DirectX 등의 다양한 종류들의 그래픽스 파이프라인을 수행할 수 있다.
일 실시예에 따라, 프로세서(630)는 캐시(620)의 효율을 나타내는 정보를 획득할 수 있다. 즉, 프로세서(630)는 지속적으로 캐시 히트율을 모니터링 할 수 있고, 소정의 시간 동안의 캐시 히트율을 캐시(620)의 효율을 나타내는 정보로써 획득할 수 있다. 또한, 프로세서(630)는 프로세서(630)가 처리하는 사이클 당 명령어수(IPC)를 지속적으로 모니터링 할 수 있고, IPC를 캐시(620)의 효율을 나타내는 정보로써 획득할 수 있다.
프로세서(630)는 캐시(620)의 효율을 나타내는 정보에 기초하여, 캐시(620)에 저장된 데이터를 이용하여 연산을 수행하거나, 내부 프로세서(612)가 연산을 수행하도록 제어할 수 있다. 일 실시예에 따라, 프로세서(630)는 캐시(620)의 효율을 나타내는 정보가 소정의 기준을 만족하는 지 여부를 판단하는 소프트웨어 코드를 실행할 수 있다. 또한, 프로세서(630)는 정보가 소정의 기준을 만족하는지 여부에 따라, 캐시(620)에 저장된 데이터를 이용하여 연산을 수행하는 소프트웨어 코드를 실행할 수 있다. 또한, 프로세서(630)는 지시 정보가 소정의 기준을 만족하는지 여부에 따라, 내부 프로세서(612)가 연산을 수행하도록 제어하는 소프트웨어 코드를 실행할 수 있다.
구체적으로, 프로세서(630)는 캐시(620)의 효율을 나타내는 정보인 캐시 히트율과 소정의 임계값을 비교하여, 캐시(620)에 저장된 데이터를 이용하여 연산을 수행하거나 내부 프로세서(612)가 연산을 수행하도록 제어할 수 있다. 예를 들어, 캐시 히트율이 소정의 임계값보다 큰 경우, 프로세서(630)는 캐시(620)에 저장된 데이터를 이용하여 연산을 수행할 수 있고, 연산의 결과 데이터를 획득할 수 있다. 또한, 캐시 히트율이 소정의 임계값보다 작은 경우, 프로세서(630)는, 내부 프로세서(612)를 활성화시켜, 내부 프로세서(612)가 연산을 수행하도록 제어할 수 있고, 내부 프로세서(612)로부터 연산의 결과 데이터를 획득할 수 있다. 또한, 프로세서(630)는 내부 프로세서(612)가 수행하는 연산으로 줄어드는 메모리 대역폭에 기초하여, 소정의 임계값을 결정할 수 있다. 예를 들어, 연산의 대상이 되는 데이터량이 연산의 결과 데이터량의 10배인 경우, 프로세서(630)는 소정의 임계값을 90%로 결정할 수 있다. 따라서, 캐시 히트율이 90프로가 넘는다면, 프로세서(630)는 캐시(620)를 이용한 연산을 수행할 수 있고, 캐시 히트율이 90프로가 넘지 않는다면, 프로세서(630)는 메모리부(610)를 이용한 연산을 수행하도록 제어할 수 있다.
또한, 일 실시예에 따라, 프로세서(630)는 캐시(620)에 저장된 데이터를 이용한 연산을 할 수 있고, 동시에 내부 프로세서(612)가 연산을 수행하도록 제어할 수 있다.
또한, 프로세서(630)는 연산의 결과 데이터를 처리할 수 있다. 예를 들어, 프로세서(630)는 연산의 결과 데이터를 재정렬(reordering)하는 추가 연산을 수행할 수 있다.
도 7은 일 실시예에 따라, 메모리 어레이 및 내부 프로세서가 포함된 메모리부를 포함하는 컴퓨팅 시스템(10,10a,10b,20)이 연산을 수행하는 방법을 설명하기 위한 도면이다.
도 7에 도시된 방법은, 도 1, 2, 5, 6의 컴퓨팅 시스템(10,10a,10b,20)의 각 구성요소에 의해 수행될 수 있고, 중복되는 설명에 대해서는 생략한다.
단계 s710에서, 컴퓨팅 시스템(10,10a,10b,20)은 캐시의 효율을 나타내는 정보를 획득할 수 있다. 캐시의 효율을 나타내는 정보는 캐시 히트율(cache hit rate) 또는 IPC(Instruction Per Cycle)를 포함할 수 있다. 캐시 히트율은, 소정의 시간을 기준으로, 컴퓨팅 시스템(10,10a,10b,20)이 필요로 하는 데이터 중에 캐시에 기 저장된 데이터의 비율을 의미할 수 있다. 또한, IPC는 컴퓨팅 시스템(10,10a,10b,20)이 처리하는 사이클 당 명령어 수가 될 수 있다.
보다 구체적으로, 컴퓨팅 시스템(10,10a,10b,20)는 지속적으로 캐시 히트율을 모니터링 할 수 있고, 캐시의 효율을 나타내는 정보로써 소정의 시간 동안의 캐시 히트율을 획득할 수 있다. 또한, 컴퓨팅 시스템(10,10a,10b,20)는 사이클 당 명령어수(IPC)를 지속적으로 모니터링 할 수 있고, 캐시의 효율을 나타내는 정보로써 IPC를 획득할 수 있다.
단계 s720에서, 컴퓨팅 시스템(10,10a,10b,20)은 획득된 정보에 기초하여, 캐시의 데이터를 이용하여 연산을 수행하거나, 내부 프로세서가 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 제어할 수 있다. 구체적으로, 컴퓨팅 시스템(10,10a,10b,20)은 캐시의 효율을 나타내는 정보가 소정의 기준을 만족하는 지 여부에 따라, 캐시의 데이터를 이용하여 연산을 수행하거나, 내부 프로세서가 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 제어할 수 있다. 보다 구체적인 실시예는 이하 도 8에서 살펴보기로 한다.
또한, 일 실시예에 따라, 컴퓨팅 시스템(10,10a,10b,20)은 캐시의 데이터를 이용하여 연산을 수행하고, 내부 프로세서가 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 제어할 수 있다.
또한, 컴퓨팅 시스템(10,10a,10b,20)은 캐시를 이용한 연산의 결과 데이터 또는 내부 프로세서에 의한 연산의 결과 데이터를 획득할 수 있고, 획득한 연산의 결과 데이터를 처리할 수 있다. 예를 들어, 컴퓨팅 시스템(10,10a,10b,20)는 연산의 결과 데이터를 재정렬(reordering)하는 추가 연산을 수행할 수 있다.
도 8은 s720의 보다 구체적인 실시예를 나타낸다.
단계 s810에서, 컴퓨팅 시스템(10,10a,10b,20)은 캐시의 효율을 나타내는 정보로써, 소정 시간 동안의 캐시 히트율을 획득할 수 있다.
단계 s820에서, 컴퓨팅 시스템(10,10a,10b,20)는 소정의 임계값과 s810에서 획득한 캐시 히트율을 비교할 수 있다. 컴퓨팅 시스템(10,10a,10b,20)는 내부 프로세서에 의한 연산으로 인해 줄어드는 메모리 대역폭을 고려하여 임계값을 설정할 수 있다. 즉, 컴퓨팅 시스템(10,10a,10b,20))는 소정의 임계값과 캐시 히트율을 비교하여, 내부 프로세서에 의해 줄어드는 메모리 대역폭과 캐시 히트로 인해 줄어드는 메모리 대역폭을 비교할 수 있다. 다른 실시예에 따라, 컴퓨팅 시스템(10,10a,10b,20)는 소정의 임계값과 IPC를 비교할 수 있다.
s820에 의한 비교 결과, 캐시 히트율이 소정의 임계값보다 작은 경우, 컴퓨팅 시스템(10,10a,10b,20)은 내부 프로세서가 메모리 어레이에 저장된 데이터를 이용하여 연산을 수행하도록 제어할 수 있다.(s830)
또한, s820에 의한 비교 결과, 캐시 히트율이 소정의 임계값보다 큰 경우, 컴퓨팅 시스템(10,10a,10b,20)은 캐시에 저장된 데이터를 이용하여 연산을 수행할 수 있다.(s840)
또한, 컴퓨팅 시스템(10,10a,10b,20)은 반복적으로 s810 내지 s840을 수행할 수 있다.
상기 살펴 본 실시 예들에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 실시 예에서 설명하는 특정 실행들은 예시들로서, 어떠한 방법으로도 기술적 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.
본 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 포함하는 것으로서(이에 반하는 기재가 없다면), 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 한정되는 것은 아니다. 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 기술적 사상을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
Claims (18)
- 캐시(cache)의 데이터를 이용하여 연산을 수행하도록 구성된 연산부;
메모리 어레이(memory array) 및 상기 메모리 어레이의 데이터를 이용하여 상기 연산을 수행하도록 구성된 내부 프로세서를 포함하는 메모리부; 및
상기 캐시의 효율을 나타내는 정보에 기초하여, 상기 연산부 또는 상기 내부 프로세서 중 적어도 하나가 상기 연산을 수행하도록 제어하는 호스트;를 포함하는, 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 호스트는,
상기 정보를 획득하는 모니터링부;
상기 정보가 소정의 기준을 만족하는지 여부에 따라, 상기 연산부 또는 상기 내부 프로세서 중 어느 하나가 상기 연산을 수행하도록 제어하는 제어부; 및
상기 연산부 또는 상기 내부 프로세서 중 적어도 하나로부터 상기 연산의 결과 데이터를 획득하고, 상기 연산의 결과 데이터를 처리하는 처리부;를 포함하는, 컴퓨팅 시스템. - 제 2 항에 있어서,
상기 정보가 소정 시간 동안의 캐시 히트율인 경우,
상기 제어부는,
상기 캐시 히트율 및 소정의 임계값과의 비교를 통해, 상기 연산부 또는 상기 내부 프로세서 중 어느 하나가 상기 연산을 수행하도록 제어하는, 컴퓨팅 시스템. - 제 3 항에 있어서,
상기 소정의 임계값은 상기 연산으로 인해 감소되는 메모리 대역폭을 고려하여 결정되는, 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 정보는,
캐시 히트율 또는 상기 호스트가 처리하는 사이클 당 명령어 수(IPC:Instruction Per Cycle)를 포함하는, 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 연산은 메모리 대역폭 감소를 위한 연산인, 컴퓨팅 시스템. - 제 1 항에 있어서,
상기 호스트는,
상기 연산부 및 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는, 컴퓨팅 시스템. - 제 7 항에 있어서,
상기 연산부에 의한 상기 연산의 결과 데이터 및 상기 내부 프로세서에 의한 상기 연산의 결과 데이터를 재배열하기 위한 재배열부;를 더 포함하는, 컴퓨팅 시스템. - 메모리 어레이(memory array) 및 상기 메모리 어레이의 데이터를 이용하여 연산을 수행하도록 구성된 내부 프로세서를 포함하는 메모리부; 및
캐시(cache)의 효율을 나타내는 정보에 기초하여, 상기 캐시의 데이터를 이용하여 상기 연산을 수행하거나, 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는 프로세서;를 포함하는, 컴퓨팅 시스템. - 제 9 항에 있어서,
상기 프로세서는,
상기 정보가 소정의 기준을 만족하는지 여부에 따라, 상기 캐시의 데이터를 이용하여 상기 연산을 수행하거나 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는, 컴퓨팅 시스템. - 제 10 항에 있어서,
상기 정보가 소정 시간 동안의 캐시 히트율인 경우,
상기 프로세서는,
상기 캐시 히트율 및 소정의 임계값과의 비교를 통해, 상기 캐시의 데이터를 이용하여 상기 연산을 수행하거나 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는, 컴퓨팅 시스템. - 제 9 항에 있어서,
상기 프로세서는,
상기 캐시의 데이터를 이용하여 상기 연산을 수행하고, 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는, 컴퓨팅 시스템. - 메모리 어레이(memory array) 및 내부 프로세서가 포함된 메모리부를 포함하는 컴퓨팅 시스템에서 연산을 수행하는 방법에 있어서,
캐시(cache)의 효율을 나타내는 정보를 획득하는 단계; 및
상기 정보에 기초하여, 상기 캐시의 데이터를 이용하여 상기 연산을 수행하거나, 상기 내부 프로세서가 상기 메모리 어레이의 데이터를 이용하여 상기 연산을 수행하도록 제어하는 단계;를 포함하는, 방법. - 제 13 항에 있어서,
상기 연산을 수행하거나 상기 내부 프로세서가 연산을 수행하도록 제어하는 단계는,
상기 정보가 소정의 기준을 만족하는지 여부에 따라, 상기 캐시의 데이터를 이용하여 상기 연산을 수행하거나 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는, 방법. - 제 14 항에 있어서,
상기 정보가 소정 시간 동안의 캐시 히트율인 경우,
상기 연산을 수행하거나 상기 내부 프로세서가 연산을 수행하도록 제어하는 단계는,
상기 캐시 히트율 및 소정의 임계값을 비교하는 단계; 및
상기 비교 결과, 상기 캐시 히트율이 상기 소정의 임계값보다 큰 경우, 상기 캐시의 데이터를 이용하여 상기 연산을 수행하고, 상기 캐시 히트율이 상기 소정의 임계값보다 작은 경우, 상기 내부 프로세서가 상기 연산을 수행하도록 제어하는 단계;를 포함하는, 방법. - 제 13 항에 있어서,
상기 연산의 결과 데이터를 획득하고, 처리하는 단계;를 더 포함하는, 방법. - 제 13 항에 있어서,
상기 캐시의 데이터를 이용하여 상기 연산을 수행하고, 상기 내부 프로세서가 상기 메모리 어레이의 데이터를 이용하여 상기 연산을 수행하도록 제어하는 단계;를 더 포함하는, 방법. - 제 13 항 내지 제 17 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150137095A KR20170037451A (ko) | 2015-09-25 | 2015-09-25 | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산을 수행하는 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150137095A KR20170037451A (ko) | 2015-09-25 | 2015-09-25 | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산을 수행하는 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170037451A true KR20170037451A (ko) | 2017-04-04 |
Family
ID=58588434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150137095A KR20170037451A (ko) | 2015-09-25 | 2015-09-25 | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산을 수행하는 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20170037451A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200057231A (ko) | 2018-11-16 | 2020-05-26 | 주식회사 하스퍼 | 다중 고속 연산장치와 고속연산장치 제어모듈을 포함하는 컴퓨팅 시스템 |
-
2015
- 2015-09-25 KR KR1020150137095A patent/KR20170037451A/ko unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200057231A (ko) | 2018-11-16 | 2020-05-26 | 주식회사 하스퍼 | 다중 고속 연산장치와 고속연산장치 제어모듈을 포함하는 컴퓨팅 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347994B2 (en) | Weight prefetch for in-memory neural network execution | |
KR20190017639A (ko) | 지능형 고 대역폭 메모리 장치 | |
JP5973590B2 (ja) | キャッシュのプレローディングにgpuコントローラを使用するための機構 | |
DE112020000231T5 (de) | Einstellung von Anzeige Auffrischung Raten basierend auf Benutzer Aktivität | |
US10146680B2 (en) | Data processing system and method of operating the same | |
US8522254B2 (en) | Programmable integrated processor blocks | |
US11107180B2 (en) | Asymmetric multi-core heterogeneous parallel processing system with content aware and display aware rendering logic | |
US20170091127A1 (en) | Techniques to Couple with a Storage Device via Multiple Communication Ports | |
US20190044699A1 (en) | Reconfigurable galois field sbox unit for camellia, aes, and sm4 hardware accelerator | |
EP3333697A1 (en) | Communicating signals between divided and undivided clock domains | |
US12112166B2 (en) | Data processing method and apparatus, and related product for increased efficiency of tensor processing | |
JP2022138116A (ja) | 管理バスのための通信プロトコルの選択 | |
Power et al. | Implications of emerging 3D GPU architecture on the scan primitive | |
KR20170037451A (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 연산을 수행하는 방법 | |
KR102063856B1 (ko) | 명령어 사전인출을 위한 방법 및 장치 | |
US20190319787A1 (en) | Hardware acceleration of bike for post-quantum public key cryptography | |
WO2023115529A1 (zh) | 芯片内的数据处理方法及芯片 | |
US9437172B2 (en) | High-speed low-power access to register files | |
US10909043B2 (en) | Direct memory access (DMA) controller, device and method using a write control module for reorganization of storage addresses in a shared local address space | |
US20200167646A1 (en) | Data transmission method and calculation apparatus for neural network, electronic apparatus, computer-raedable storage medium and computer program product | |
EP4109278B1 (en) | Technology for early abort of compression acceleration | |
US20230195511A1 (en) | Energy-efficient cryptocurrency mining hardware accelerator with spatially shared message scheduler | |
US11423600B2 (en) | Methods and apparatus for configuring a texture filter pipeline for deep learning operation | |
US20230195683A1 (en) | Fine-grained bitcoin engine deactivation for yield recovery, performance, and/or power management | |
US20240070801A1 (en) | Processing-in-memory system with deep learning accelerator for artificial intelligence |