KR20190029270A - 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법 - Google Patents

다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법 Download PDF

Info

Publication number
KR20190029270A
KR20190029270A KR1020170116646A KR20170116646A KR20190029270A KR 20190029270 A KR20190029270 A KR 20190029270A KR 1020170116646 A KR1020170116646 A KR 1020170116646A KR 20170116646 A KR20170116646 A KR 20170116646A KR 20190029270 A KR20190029270 A KR 20190029270A
Authority
KR
South Korea
Prior art keywords
memory
cache
cache memories
multiple cache
computing device
Prior art date
Application number
KR1020170116646A
Other languages
English (en)
Other versions
KR101967857B1 (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 전자부품연구원
Priority to KR1020170116646A priority Critical patent/KR101967857B1/ko
Publication of KR20190029270A publication Critical patent/KR20190029270A/ko
Application granted granted Critical
Publication of KR101967857B1 publication Critical patent/KR101967857B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels

Landscapes

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

Abstract

지능형 반도체 장치가 개시된다. 이 장치는 연산 작업을 수행하는 연산 장치; 메모리 계층 구조에서 상위 계층을 형성하는 다중 캐시 메모리 및 상기 메모리 계층 구조에서 하위 계층을 형성하는 메모리 뱅크를 포함하고, 상기 연산 장치는 다수의 독립된 채널을 통해 상기 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근한다.

Description

다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법{PROCESSING IN MEMORY DEVICE WITH MULTIPLE CACHE AND MEMORY ACCESSING METHOD THEREOF}
본 발명은 지능형 반도체 장치에 관한 것으로, 더욱 상세하게는 지능형 반도체 장치 내부에서 연산 장치의 메모리 접근 기술과 관련된 것이다.
일반적으로 지능형 반도체(Processing In Memory; PIM)는 디램(DRAM)에 연산이 가능한 프로세서 기능을 추가한 미래형 반도체이다. 기존에는 프로세서와 메모리 기능이 완전히 분리되어 둘 사이에 정보가 오가는 과정에서 병목 현상이 빈번하게 일어났다. PIM을 활용하면 메인 프로세서에 연산 작업이 몰려 과부하가 생기는 일이 없어지고, 프로세서와 메모리 간 정보 병목현상이 사라져 처리 속도도 빨라진다
지능형 반도체가 처리하는 명령어들은 한 번 이상의 메모리 접근 및 연산이 포함된 원자적 명령어(atomic operation)이며, 큰 크기의 단일 메모리를 사용하기 보다는 작은 크기의 메모리를 여러 개 사용하는 것이 시스템의 성능 측면에서 이득이 크다.
이에 따라 최근 지능형 반도체는 대부분 단일 명령 다중 데이터 처리(Single Instruction Multiple Data, SIMD) 기반의 멀티프로세서 구조로 발전하고 있으며, SIMD 구조의 지능형 반도체들이 네트워크로 연결되는 계층적인 메모리 구조의 시스템으로 발전하고 있다.
지능형 반도체들은 디램과 연산장치 간의 속도 차이를 줄이기 위해 내부 혹은 외부의 캐시(cache) 메모리를 사용하고 있다. 하지만 기존 컴퓨터 시스템의 캐시메모리 관리 정책들은 데이터의 지역성(locality)을 이용한 적중률 향상에 주력하여 발전되어 왔으며, 이러한 관리 정책 및 구조를 가진 캐시들은 지능형 반도체의 성능 및 전력 소모를 극대화하는 데 한계가 있다.
상술한 문제를 해결하기 위한 본 발명의 목적은 새로운 캐시메모리의 관리 정책 및 하드웨어 구조에 따라 성능 및 전력 소모를 극대화할 수 있는 지능형 반도체를 제공하는 데 있다.
본 발명에서 해결하고자 하는 과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당해 기술분야에 있어서의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일면에 따른 지능형 반도체 장치는,
연산 작업이 가능한 프로세서 기능과 데이터 저장이 가능한 메모리 기능을 동시에 구비한 지능형 반도체 장치로서, 상기 연산 작업을 수행하는 연산 장치; 메모리 계층 구조에서 상위 계층을 형성하는 다중 캐시 메모리; 및 상기 메모리 계층 구조에서 하위 계층을 형성하는 메모리 뱅크를 포함하고, 상기 연산 장치는, 다수의 독립된 채널을 통해 상기 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근한다.
본 발명의 다른 일면에 따른 지능형 반도체 장치에서의 메모리 접근방법은, 연산 장치가 명령어 패킷을 수신하는 단계; 및 상기 연산 장치가 상기 명령어 패킷 내에서 어드레스 값의 하위 필드를 기반으로 상기 메모리 계층 구조에서 상위 계층을 형성하는 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근하는 단계를 포함한다.
본 발명에 따르면, 지능형 반도체 내의 캐시 메모리를 다중 캐시 메모리 구조로 변경함으로써, 지능형 반도체의 성능을 향상시키고, 동시에 전력 소비를 줄일 수 있다. 또한, 하나의 명령어 처리를 위해서 순차적으로 메모리에 접근해야 하는 문제점을 해결한다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당해 기술분야에 있어서의 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시 예에 따른 지능형 반도체 장치의 내부 구성을 개략적으로 도시한 블록도이다.
도 2는 도 1에 도시한 지능형 반도체 장치에 입력되는 명령어 패킷의 데이터 구조를 도시한 일 예이다.
도 3은 도 1에 도시한 지능형 반도체 모듈의 내부 구성을 개략적으로 도시한 블록도이다.
도 4는 도 3에 도시한 연산 장치가 멀티플렉서를 이용하여 다중 캐시 메모리에 접근하는 방식을 도식적으로 나타내는 도면이다.
도 5는 종래의 지능형 반도체 장치와 본 발명의 지능형 반도체 장치 간의 성능 및 소비 전력을 각각 비교한 실험 결과 그래프이다.
도 6은 본 발명의 일 실시 예에 따른 지능형 반도체 장치에서의 메모리 접근 방법을 나타내는 흐름도이다.
본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 목적, 구성 및 효과를 용이하게 알려주기 위해 제공되는 것일 뿐으로서, 본 발명의 권리범위는 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가됨을 배제하지 않는다.
도 1은 본 발명의 일 실시 예에 따른 지능형 반도체 장치의 내부 구성을 개략적으로 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 지능형 반도체 장치(100)는, 성능 및 소비전력을 극대화하기 위해, 그 내부에 구비된 연산 장치와 메모리 뱅크 사이에 설계된 다중 캐시 메모리(multiple cache)를 포함하도록 구성된다.
이를 위해, 본 발명의 일 실시 예에 따른 지능형 반도체 장치(100)는 라우터(110) 및 다수의 지능형 반도체 모듈(120~150)을 포함하도록 구성될 수 있다.
라우터(Router, 110)는 외부 유닛(도시하지 않음.)로부터 입력되는 메모리 명령어 패킷(10, 이하, 명령어 패킷)을 다수의 지능형 반도체 모듈(120~150)로 전달하는 일종의 통신 인터페이스일 수 있다. 또한, 라우터(110)는 외부 유닛과 다수의 지능형 반도체 모듈(120~150) 간의 글로벌 데이터를 교환하도록 중재 역할로 기능할 수 있다.
다수의 지능형 반도체 모듈(120~150) 각각은 그 내부에 구비된 연산 장치와 메모리 뱅크 간의 속도 차이를 줄이기 위해 기존의 단일 데이터 버퍼 대신에 다중 캐시 메모리(multiple cache)를 포함하도록 구성된다.
아래에서 상세히 설명하겠지만, 본 발명은 지능형 반도체 장치(100) 내의 다수의 지능형 반도체 모듈들(120~150) 각각이 다중 캐시 메모리를 포함하도록 구성된 하드웨어 구조를 제안한 것이다.
일반적인 컴퓨터 시스템의 캐시 메모리는 데이터의 지역성(locality)을 이용하여 캐시의 적중률을 향상시키기 위한 방향으로 발전하였다. 하지만 지능형 반도체 장치(100)가 처리하는 명령어 패킷(10)은 대부분 메모리 접근 동작이 포함된 원자적 명령어(atomic operation)로 이루어지며, 이러한 지능형 반도체 장치(100)가 하나의 명령어를 처리하기 위해서는, 도 2에 도시된 바와 같은 명령어 패킷(10)의 처리에 필요한 데이터를 획득하기 위해 반복적인 메모리 접근이 불가피하다.
따라서 기존 컴퓨터 시스템의 메모리 계층구조에서 사용되는 단일 데이터 버퍼 구조보다는 본 발명에서 개시하는 다중 캐시 메모리 구조를 사용하는 것이 시스템 성능 및 소비 전력 측면에서 이득이 매우 크다.
참고로, 본 발명의 실시 예에서 사용하는 명령어 패킷(10)의 데이터 구조는, 도 2에 도시된 바와 같이, 4개의 필드들(F1, F2, F3 및 F4)로 구성될 수 있으며, 제1 필드(F1)에는 연산(OPeration: OP)의 종류를 나타내는 opcode 값이 기록되고, 제2 필드(F2)에는 세컨 소스 어드레스(second source address) 값이 기록되고, 제3 필드(F3)에는 퍼스트 소스 어드레스(first source address) 값이 기록되고, 제4 필드(F4)에는 데스티네이션 어드레스(destination address) 값이 기록된다. 이하, 제2 내지 제4 필드들은 주소 필드로 칭한다.
주소 필드들(F2, F3 및 F4) 각각은, 도 2에 도시된 바와 같이, 다시 4개의 필드들(F5, F6, F7 및 F8)로 구성될 수 있다.
최상위 비트(Most Significant Bit: MSB)를 포함하는 최상위 필드(F5)에는 태그(Tag) 값이 기록되며, 최하위 비트(Least Significant Bit: LSB)를 포함하는 최하위 필드(F8)에는 오프셋(Offset) 값이 기록된다.
상기 최상위 필드(F6)에 인접한 상위 필드(F2)에는 인덱스(Index) 값이 기록되며, 상기 최하위 필드(F8)에 인접한 하위 필드(F7)에는 이하에서 설명하는 다중 캐시 메모리 구조로 분리된 각 캐시 메모리를 식별하는 캐시 넘버(Cache Number) 값이 기록된다.
상기 태그 값과 상기 인덱스 값의 결합은 상응하는 주기억장치, 즉, 메모리 뱅크의 주소 값으로 사용된다.
상기 오프셋 값은 주 메모리(메모리 뱅크)와 캐시 메모리 사이의 데이터 이동 단위인 캐시 블록(block)의 크기에 의해 결정되며, 상기 인덱스는 캐시 블록이 저장되는 캐시 슬롯(slot)의 번호를 나타내며, 상기 태그는 캐시 슬롯에 저장된 캐시 블록이 유효한지 판단하기 위해 캐시 슬롯에 저장되어 있는 태그 값과 비교하는데 사용된다. 참고로, 상기 태그(Tag) 값, 오프셋(Offset) 값 및 인덱스(Index) 값은 "메모리 계층 구조에서 캐시"를 다루는 컴퓨터 공학에서 빈번히 접할 수 있는 기술용어이므로, 이에 대한 더 이상의 상세한 설명은 생략하기로 한다.
다만, 상기 하위 필드(F7)에 기록되는 캐시 넘버(Cache Number) 값은 아래에서 설명하는 연산 장치(도 3의 122)가 다중 캐시 메모리에 선택 또는 동시 접근이 가능하도록 상기 연산 장치(도 3의 122)의 내부에 구비되는 멀티플렉서(도 3의 122-1)의 선택 신호로 사용됨을 주목할 필요가 있다.
도 3은 도 1에 도시한 하나의 지능형 반도체 모듈의 내부 구성을 개략적으로 도시한 블록도이다.
도 3을 참조하면, 상기 지능형 반도체 모듈(120)은 다중 캐시 메모리 구조를 포함하도록 구성된다. 구체적으로, 상기 지능형 반도체 모듈(120)은 연산 장치(122)와 메모리 뱅크(126)를 포함하며, 상기 연산 장치(122)와 상기 메모리 뱅크(126) 사이에 설계되는 다중 캐시 메모리(124)를 더 포함한다.
다중 캐시 메모리(124)는 물리적으로 분리된(또는, 물리적으로 독립된) n(n은 2 이상의 자연수)개의 캐시 메모리(#0, #1, … #n-1)들을 포함하도록 구성될 수 있다.
이러한 다중 캐시 메모리(124)는 메모리 계층 구조에서 상기 연산 장치(122)를 기준으로 상위 계층을 형성하고, 상기 메모리 뱅크(126)는 상기 메모리 계층 구조에서 하위 계층을 형성한다.
상기 연산 장치(122)는 외부 유닛으로부터 입력되는 명령어 패킷(10)을 처리하기 위한 연산 작업을 수행하는 장치로서, 넓은 의미에서는 '프로세서(processor)'로 불릴 수 있으며, 좁은 의미에서는 특정 연산 작업을 수행하는 '연산 유닛(arithmetic unit)'으로 불릴 수 있다.
이러한 연산 장치(122)는 도면에 도시하지는 않았으나 특정 연산 작업을 수행하도록 누산기, 가산기, 데이터 레지스터, 비교기, 상태 레지스터 등을 포함하도록 구성될 수 있다.
추가로, 상기 연산 장치(122)는 상기 다중 캐시 메모리(124)에 선택적 혹은 동시 접근이 가능하도록 멀티플렉서(122-1)를 포함하도록 구성될 수 있다.
상기 연산 장치(122)는 독립된 n개의 채널(123, 물리적으로 분리된 n개의 채널)을 이용하여 상기 다중 캐시 메모리(124)에 선택적으로 또는 동시적으로 접근(access)할 수 있도록 구성될 수 있다.
상기 연산 장치(122)가 다중 캐시 메모리(124)에 선택 또는 동시 접근이 가능한 것은 상기 연산 장치(122) 내에 구비된 상기 멀티플렉서(122-1)에 의해 가능하다. 예를 들면, 상기 멀티플렉서(122-1)를 상기 연산 장치(122) 내의 출력단으로 구성하고, 상기 멀티플렉서(122-1)의 출력을 n개 출력들로 디자인한 후, 상기 멀티플렉서(122-1)의 n개 출력들과 상기 독립된 n개의 채널들(123)을 각각 연결함으로써, 상기 연산 장치(122)와 다중 캐시 메모리(124)를 구성하는 다수의 캐시 메모리(#0, #1, … #n-1)는 독립된 n개의 채널(123)에 의해 연결될 수 있다.
도면에서는 하나의 멀티플렉서(122-1)를 도시하고 있으나, 2개 이상의 멀티플렉서들로 구현될 수 있다. 또한, 도면에서는 연산 장치(122)에 내부에 구비된 멀티플렉서(122-1)를 예시하고 있으나, 설계에 따라 외부에 구비될 수 있다. 멀티플렉서가 외부에 구비된 경우, 상기 멀티플렉서의 입력은 상기 연산 장치의 출력단과 연결된다.
이와 같이, 상기 연산 장치(122)는 내부에 구비된 상기 멀티플렉서(122-1)에 연결된 n개의 독립된 채널들(123)을 이용하여 와 상기 다수의 캐시 메모리(#0, #1, … #n-1)에 접근하기 때문에, 상기 연산 장치(122)는 상기 멀티플렉서(122-1)의 동작에 따라 상기 다수의 캐시 메모리(#0, #1, … #n-1)에 선택적 혹은 동시 접근이 가능하다.
구체적으로, 상기 연산 장치(122)는 현재 실행하는 명령어의 데이터들이 다수의 캐시 메모리(#0, #1, … #n-1)에 분산 적재되어 있는 경우, 선택적 또는 동시에 읽기/쓰기 동작(또는 접근)을 수행할 수 있다. 이것은 상기 연산 장치(122)가 상기 다수의 캐시 메모리(#0, #1, … #n-1) 중에서 일부 캐시 메모리들 또는 전체 캐시 메모리들을 인터리빙(interleaving)할 수 있음을 의미한다.
한편, 상기 연산 장치(122)는 현재 실행하는 명령어의 데이터들이 다수의 캐시 메모리(#0, #1, … #n-1)에 분산 적재되어 있지 않은 경우에는 순차적으로 읽기/쓰기 동작(접근)을 수행할 수 있다.
상기 다수의 캐시 메모리(#0, #1, … #n-1)와 상기 메모리 뱅크(126)는 하나의 메모리 버스(125)를 공유한다. 여기서, 상기 메모리 뱅크(126)는, 예를 들면, 디램 뱅크(D-RAM bank)일 수 있다.
도 4는 도 3에 도시한 연산 장치가 멀티플렉서를 이용하여 다중 캐시 메모리에 접근하는 방식을 도식적으로 나타내는 도면이다.
도 4를 참조하면, 캐시 메모리가 4개로 분할된 경우를 가정한 것이다. 각 캐시 메모리(#0, #1, #2 및 #3)는 적용되는 시스템의 특성에 따라 연관사상캐시(n-way set associative cache)로 사용가능하며, 분할되는 캐시 메모리의 개수 및 각 캐시 메모리의 way 개수에 따라 주소 매칭 방법(address mapping scheme)은 달라질 수 있다.
도 4의 메모리 접근 방식에서는 도 2에 도시된 명령어 패킷(10)의 각 어드레스 값(F2, F3 및 F4에 기록되는 값) 내에서 하위 필드(F7)를 구성하는 캐시 넘버(Cache Number) 값이 연산 장치(도 3의 122)가 4개의 캐시 메모리들(#0, #1, #2 및 #3)을 선택하기 위한 상기 멀티플렉서(122-1)의 선택 신호(40)로 사용되고, 명령어 패킷(10)의 각 어드레스 값(F2, F3 및 F4에 기록되는 값) 내에서 최상위 필드(F5)와 상위 필드(F6)를 각각 구성하는 태그(Tag) 값과 인덱스(Index) 값이 상기 멀티플렉서(122-1)의 입력으로 사용된다.
명령어 패킷(10)의 각 어드레스 값(F2, F3 및 F4에 기록되는 값) 내에서 하위 필드(F7)를 구성하는 캐시 넘버(Cache Number) 값을 상기 멀티플렉서의 선택 신호로 사용하는 것은, 데이터들을 여러 캐시 메모리들(#0, #1, #2 및 #3)에 분산 적재하기 위해, 최상위 필드(F5) 또는 상위 필드(F6) 보다 값의 변화가 빈번한 하위 필드(F7)를 선택 신호로 사용하는 것이 바람직하기 때문이다. 하지만, 이 또한 시스템의 특성에 따라 다양한 선택이 가능할 수 있다.
이와 같이, 본 발명의 지능형 반도체(100) 내에 설계된 다중 캐시 메모리는 하나의 명령어 처리에 필요한 데이터들을 동시에 읽을 수 있으며, 다수로 분할된 캐시 메모리를 채용함으로써, 분할 된 각 캐시 메모리의 크기를 작게 설계할 수 있으며, 이로 인해 데이터 접근 당 소비 전력이 크게 감소한다.
또한, 본 발명의 지능형 반도체 장치(100) 내에 설계된 다중 캐시 메모리 구조는 이상 설명한 바와 같이, 간단한 하드웨어 구조로 설계하였음도 시스템 성능 향상 및 에너지 절감 측면에서 매우 효과적이다.
도 5는 기존의 하나의 데이터 버퍼를 사용한 지능형 반도체(Existing PIM)와 본 발명에 따라 다중 캐시 메모리를 사용한 지능형 반도체(Proposed PIM)에 대해 데이터 버퍼 접근 시간 및 소비전력을 각각 비교한 시뮬레이션 결과를 나타내는 막대그래프이다. 메모리에 대한 파라미터들은 CACTI 5.3을 통해 계산된 값들을 사용하였고, 실험에 사용된 workloads는 SPEC CPU2006 및 SPEC OMP2012를 사용하였다.
도 5에 도시된 바와 같이, 다중 캐시 메모리로 설계된 지능형 반도체는 기존의 성능을 그대로 유지할 뿐 아니라 그 이상의 성능을 제공하고 있음을 시뮬레이션 결과로부터 확인할 수 있다.
도 6은 본 발명의 일 실시 예에 따른 지능형 반도체 장치에서의 메모리 접근 방법을 나타내는 흐름도로서, 이하에서는 도 1 내지 도 5를 참조한 설명과 중복된 설명은 생략하거나 간략히 기재한다.
도 6을 참조하면, 먼저, 단계 S610에서, 지능형 반도체 장치(100)의 내부에 구비된 연산 장치(122)가 외부로부터 메모리 명령어 패킷(10, 이하, 명령어 패킷)을 수신하는 과정이 수행된다. 여기서, 명령어 패킷(10)은 도 2에 도시된 바와 같이, 크게 오피코드값이 기록되는 필드(F1)와 어드레스 값이 기록되는 필드들(F2, F3, F4)로 나뉘며, 상기 필드들(F2, F3, F4) 각각은 다시 태그 값이 기록되는 필드(F5), 인덱스 값이 기록되는 필드(F6), 캐시 넘버 값이 기록되는 필드(F7) 및 오프셋 값이 기록되는 필드(F8)로 구분될 수 있다.
이어, 단계 S620에서, 상기 연산 장치(122)가 상기 명령어 패킷 내에서 어드레스 값의 하위 필드(어드레스 값이 기록되는 필드 내에서의 하위 필드)를 기반으로 메모리 계층 구조에서 상위 계층을 형성하는 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근하는 과정이 수행된다. 즉, 상기 연산 장치(122)가 어드레스 값의 하위 필드를 기반으로 다중 캐시 메모리를 구성하는 다수의 캐시 메모리 중에서 일부 또는 전체를 인터리빙하는 과정이 수행된다.
이상에서 본 발명에 대하여 실시 예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 본 발명의 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (12)

  1. 연산 작업이 가능한 프로세서 기능과 데이터 저장이 가능한 메모리 기능을 동시에 구비한 지능형 반도체 장치에서,
    상기 연산 작업을 수행하는 연산 장치;
    메모리 계층 구조에서 상위 계층을 형성하는 다중 캐시 메모리; 및
    상기 메모리 계층 구조에서 하위 계층을 형성하는 메모리 뱅크를 포함하고,
    상기 연산 장치는,
    다수의 독립된 채널을 통해 상기 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근하는 것인 지능형 반도체 장치..
  2. 제1항에서, 상기 다중 캐시 메모리는,
    물리적으로 분리된 다수의 캐시 메모리를 포함하는 것인 지능형 반도체 장치.
  3. 제1항에서, 상기 연산 장치는,
    다수의 독립된 채널에 각각 연결되는 다수의 출력을 갖도록 구성된 멀티플렉서를 포함하는 것인 지능형 반도체 장치..
  4. 제3항에서, 상기 멀티플렉서는,
    상기 연산 장치가 상기 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근하기 위해, 외부로부터 상기 연산 장치에 입력되는 명령어 패킷 내에서 어드레스(address) 값의 하위 필드를 선택 신호로 사용하는 것인 지능형 반도체 장치.
  5. 제4항에서, 상기 어드레스 값의 하위 필드는,
    상기 다중 캐시 메모리를 식별하는 캐시 넘버(Cache Number) 값인 것인 지능형 반도체 장치.
  6. 제4항에서, 상기 어드레스 값의 하위 필드는,
    상기 어드레스 값의 최하위 필드에 인접한 필드인 것인 지능형 반도체 장치.
  7. 제1항에서, 상기 다중 캐시 메모리와 상기 메모리 뱅크는,
    공통 버스로 연결된 것인 지능형 반도체 장치..
  8. 제1항에서, 상기 연산 장치는,
    다수의 독립된 채널을 통해 상기 다중 캐시 메모리를 인터리빙(interleaving)하는 것인 지능형 반도체 장치.
  9. 연산 작업이 가능한 연산 장치와 메모리 계층 구조에서 하위 계층을 형성하는 메모리를 동시에 구비한 지능형 반도체 장치에서의 메모리 접근 방법에서,
    상기 연산 장치가 명령어 패킷을 수신하는 단계; 및
    상기 연산 장치가 상기 명령어 패킷 내에서 어드레스 값의 하위 필드를 기반으로 상기 메모리 계층 구조에서 상위 계층을 형성하는 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근하는 단계
    를 포함하는 것인 지능형 반도체 장치에서의 메모리 접근 방법..
  10. 제9항에서, 상기 접근하는 단계는,
    상기 연산 장치가 다수의 독립된 채널을 통해 상기 다중 캐시 메모리에 선택적으로 또는 동시적으로 접근하는 단계인 것인 지능형 반도체 장치에서의 메모리 접근 방법.
  11. 제9항에서, 상기 어드레스 값의 하위 필드는,
    상기 다중 캐시 메모리에 포함된 다수의 캐시 메모리를 식별하는 캐시 넘버(Cache Number) 값인 것인 지능형 반도체 장치에서의 메모리 접근 방법.
  12. 제9항에서, 상기 어드레스 값의 하위 필드는,
    상기 어드레스 값의 최하위 필드에 인접한 필드인 것인 지능형 반도체 장치에서의 메모리 접근 방법.
KR1020170116646A 2017-09-12 2017-09-12 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법 KR101967857B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170116646A KR101967857B1 (ko) 2017-09-12 2017-09-12 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170116646A KR101967857B1 (ko) 2017-09-12 2017-09-12 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법

Publications (2)

Publication Number Publication Date
KR20190029270A true KR20190029270A (ko) 2019-03-20
KR101967857B1 KR101967857B1 (ko) 2019-08-19

Family

ID=66036274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170116646A KR101967857B1 (ko) 2017-09-12 2017-09-12 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법

Country Status (1)

Country Link
KR (1) KR101967857B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022010016A1 (ko) * 2020-07-10 2022-01-13 전자부품연구원 프로세싱인메모리의 읽고-쓰기-연산 명령어 처리 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050116811A (ko) * 2003-03-06 2005-12-13 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 처리 시스템, 반도체 장치 및 캐시 메모리 인덱싱방법
KR20090096721A (ko) * 2006-12-15 2009-09-14 마이크로칩 테크놀로지 인코포레이티드 마이크로프로세서용 구성가능한 캐시
KR20120097878A (ko) * 2011-02-25 2012-09-05 삼성전자주식회사 다중 포트 캐시 메모리 장치 및 그 구동 방법
KR20150037367A (ko) * 2013-09-30 2015-04-08 삼성전자주식회사 캐시 메모리 시스템 및 그 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050116811A (ko) * 2003-03-06 2005-12-13 코닌클리즈케 필립스 일렉트로닉스 엔.브이. 데이터 처리 시스템, 반도체 장치 및 캐시 메모리 인덱싱방법
KR20090096721A (ko) * 2006-12-15 2009-09-14 마이크로칩 테크놀로지 인코포레이티드 마이크로프로세서용 구성가능한 캐시
KR20120097878A (ko) * 2011-02-25 2012-09-05 삼성전자주식회사 다중 포트 캐시 메모리 장치 및 그 구동 방법
KR20150037367A (ko) * 2013-09-30 2015-04-08 삼성전자주식회사 캐시 메모리 시스템 및 그 동작방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JUNWHAN AHN 외 3인. PIM-Enabled Instructions: A Low-Overhead, Locality-Aware Processing-in-Memory Architecture. ISCA’15, 2015,06.13. 1부.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022010016A1 (ko) * 2020-07-10 2022-01-13 전자부품연구원 프로세싱인메모리의 읽고-쓰기-연산 명령어 처리 방법 및 장치

Also Published As

Publication number Publication date
KR101967857B1 (ko) 2019-08-19

Similar Documents

Publication Publication Date Title
US7360024B2 (en) Multi-port integrated cache
US20210406170A1 (en) Flash-Based Coprocessor
US9384134B2 (en) Persistent memory for processor main memory
US6427188B1 (en) Method and system for early tag accesses for lower-level caches in parallel with first-level cache
EP2808783B1 (en) Smart cache and smart terminal
JP2014517387A (ja) 大型データキャッシュのための効率的なタグストレージ
KR20060049710A (ko) 칩 멀티-프로세서의 공유 캐시를 분할하기 위한 장치 및방법
US8495286B2 (en) Write buffer for improved DRAM write access patterns
US9251048B2 (en) Memory page management
US9087561B2 (en) Hybrid cache
Quan et al. Prediction table based management policy for STT-RAM and SRAM hybrid cache
Zhang et al. Fuse: Fusing stt-mram into gpus to alleviate off-chip memory access overheads
JP2002055879A (ja) マルチポートキャッシュメモリ
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
KR101967857B1 (ko) 다중 캐시 메모리를 구비한 지능형 반도체 장치 및 지능형 반도체 장치에서의 메모리 접근 방법
US20080276046A1 (en) Architecture for a Multi-Port Cache Memory
US8533396B2 (en) Memory elements for performing an allocation operation and related methods
KR101645003B1 (ko) 메모리 제어기 및 그 메모리 제어기가 탑재된 컴퓨팅 장치
WO2013184855A1 (en) Memory with bank-conflict-resolution (bcr) module including cache
EP4012569A1 (en) Ai accelerator, cache memory and method of operating cache memory using the same
US20230205705A1 (en) Approach for providing indirect addressing in memory modules
US20070294504A1 (en) Virtual Address Cache And Method For Sharing Data Using A Unique Task Identifier
Khajekarimi et al. Energy minimization in the STT-RAM-based high-capacity last-level caches
US20240220409A1 (en) Unified flexible cache
US10942859B2 (en) Computing system and method using bit counter

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right