KR101853210B1 - 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 - Google Patents
하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 Download PDFInfo
- Publication number
- KR101853210B1 KR101853210B1 KR1020160176277A KR20160176277A KR101853210B1 KR 101853210 B1 KR101853210 B1 KR 101853210B1 KR 1020160176277 A KR1020160176277 A KR 1020160176277A KR 20160176277 A KR20160176277 A KR 20160176277A KR 101853210 B1 KR101853210 B1 KR 101853210B1
- Authority
- KR
- South Korea
- Prior art keywords
- link
- storage space
- buffer
- packet
- remaining storage
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
하이브리드 메모리 큐브와 호스트 사이에서 빠른 속도로 패킷의 송수신이 이루어질 수 있도록 하기 위한 링크 선택 방법 및 장치가 개시된다. 개시된 하이브리드 메모리 큐브를 위한 링크 선택 방법은, 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 단계; 상기 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택하는 단계; 및 상기 선택된 링크의 버퍼에 상기 메모리 요청 패킷을 저장하는 단계를 포함하며, 상기 메모리 요청 패킷은 상기 선택된 링크를 통해 하이브리드 메모리 큐브로 전송된다.
Description
본 발명은 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치에 관한 것으로서, 더욱 상세하게는 보다 빠른 속도로 패킷을 송수신하기 위한 링크 선택 방법 및 장치에 관한 것이다.
하이브리드 메모리 큐브(HMC, Hybrid Memory Cube)는 2011년에 의해 발표되었으며, 주요 반도체 기업들이 컨소시엄을 이루어 HMC를 위한 기술 발전에 힘쓰고 있다.
HMC는 높은 속도의 로직 프로세스 기술에 HBM(High Bandwidth Memory)과 같이 TSV 연결을 이용해 DRAM 다이를 적층한다. HMC와 HBM의 구조는 매우 유사하지만 HMC에서 눈 여겨 보아야 할 것은 HMC를 다루는 방법이다.
기존의 메모리와 HBM은 수동적으로 동작하는 반면, HMC는 호스트(host)에서 볼 때 하나의 블랙박스처럼 동작한다. 즉, 전통적으로 호스트는 메모리 컨트롤러를 통해 DDR3/4, HBM과 같은 메모리를 사용하기 위해 관련 메모리 명령어들을 직접 관리하는데 반해, HMC을 사용하기 위해 호스트 프로세서는 메모리 주소, 메모리 요청 종류 등을 패킷에 담아 HMC에 보내기만 하면 된다. HMC가 패킷을 해석해 데이터를 얻어내고, 그에 대한 응답을 다시 패킷으로 만들어 호스트 프로세서에 알려준다.
도 1은 HMC의 적층 구조를 도시한 도면이며, 도 2는 HMC의 로직 레이어 구조를 도시한 도면이다.
HMC는 로직 레이어 상에 DRAM 렝어가 적층된 구조이다. 그리고 HMC는 크게 외부와 패킷을 주고 받는 링크(Link), 패킷을 처리하는 볼트(Vault) 및 링크와 볼트를 유기적으로 연결하는 크로스바 스위치(Corssbar Switch)로 이루어져 있다.
HMC는 호스트 프로세스와 링크를 통해 연결되어 패킷을 주고 받는다. HMC의 링크는 패킷을 받아 스위치를 통해 적절한 볼트(볼트 컨트롤러)로 전달한다. 볼트는 수신된 패킷을 해석하여 DRAM에 접근하는 일련의 과정을 거친 후 요청 패킷에 대한 응답 패킷을 생성하고, 응답 패킷은 다시 스위치를 통해 링크를 거쳐 호스트 프로세서로 전달된다.
HMC는 기존의 메모리와는 달리 패킷만 수신하면 스스로 메모리 요청을 처리할 수 있다. 따라서, HMC의 개수를 확장하는 것이 매우 편리하다. 전통적인 컴퓨터에서 메모리를 늘리기 위해서는 늘어난 메모리를 조작하기 위한 제어 신호 선들과 데이터를 주고받을 데이터 버스를 연결해 주어야 하지만 HMC의 경우는 단순히 HMC끼리 연결하면 된다.
호스트는 어떤 HMC에 패킷을 전해 주어야 하는지 고민할 필요 없이 자신과 연결된 HMC에 패킷을 전송한다. HMC는 이 패킷을 해석하여 패킷을 자신이 처리할지 아니면 다른 HMC로 보내줄지 판단한다. 이러한 방법으로 HMC를 확장할 수 있다. 또한 여러 개의 HMC간의 연결 토폴로지를 사용하고자 하는 목적에 맞게 연결할 수 있고, HMC의 연결에 어디든 호스트 프로세서를 연결할 수도 있다.
관련 선행문헌으로 대한민국 공개특허 제2014-0098783호가 있다.
본 발명은 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치를 제공하기 위한 것으로서, 특히, 하이브리드 메모리 큐브와 호스트 사이에서 빠른 속도로 패킷의 송수신이 이루어질 수 있도록 하기 위한 링크 선택 방법 및 장치를 제공하기 위한 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따르면, 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 단계; 상기 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택하는 단계; 및 상기 선택된 링크의 버퍼에 상기 메모리 요청 패킷을 저장하는 단계를 포함하며, 상기 메모리 요청 패킷은 상기 선택된 링크를 통해 하이브리드 메모리 큐브로 전송되는 하이브리드 메모리 큐브를 위한 링크 선택 방법이 제공된다.
또한 상기한 목적을 달성하기 위한 본 발명의 다른 실시예에 따르면, 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 단계; 상기 잔여 저장 공간에 따라, 호스트의 메모리 요청에 대한 응답 패킷을 전송할 링크를 선택하는 단계; 및 상기 선택된 링크의 버퍼에 상기 응답 패킷을 저장하는 단계를 포함하며, 상기 응답 패킷은 상기 선택된 링크를 통해 상기 호스트로 전송되는 하이브리드 메모리 큐브를 위한 링크 선택 방법이 제공된다.
또한 상기한 목적을 달성하기 위한 본 발명의 또 다른 실시예에 따르면, 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 저장 공간 확인부; 상기 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택하는 링크 선택부; 및 상기 선택된 링크의 버퍼로 상기 메모리 요청 패킷을 전송하는 패킷 전송부를 포함하며, 상기 메모리 요청 패킷은 상기 선택된 링크를 통해 하이브리드 메모리 큐브로 전송되는 하이브리드 메모리 큐브를 위한 링크 선택 장치가 제공된다.
본 발명에 따르면, 링크별로 할당된 버퍼의 잔여 저장 공간에 따라 패킷을 전송할 링크를 선택함으로써, 호스트와 하이브리드 메모리 큐브 사이의 전송 레이턴시가 감소하고 전송 속도가 빨라질 수 있다.
도 1은 HMC의 적층 구조를 도시한 도면이다.
도 2는 HMC의 로직 레이어 구조를 도시한 도면이다.
도 3은 하이브리드 메모리 큐브를 위한 일반적인 링크 선택 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브를 위한 일반적인 링크 선택 방법의 개념을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브 시스템을 도시하는 도면이다.
도 6은 본 발명의 일실시예에 따른 메모리 컨트롤러의 블록도를 도시하는 도면이다.
도 7은 본 발명의 일실시예에 따른 메모리 요청 패킷의 구조를 설명하기 위한 도면이다.
도 8은 본 발명의 구체적 실시예에 따른 하이브리드 메모리 큐브 시스템을 도시하는 도면이다.
도 9는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브를 위한 링크 선택 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 하이브리드 메모리 큐브를 위한 링크 선택 방법을 설명하기 위한 도면이다.
도 2는 HMC의 로직 레이어 구조를 도시한 도면이다.
도 3은 하이브리드 메모리 큐브를 위한 일반적인 링크 선택 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브를 위한 일반적인 링크 선택 방법의 개념을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브 시스템을 도시하는 도면이다.
도 6은 본 발명의 일실시예에 따른 메모리 컨트롤러의 블록도를 도시하는 도면이다.
도 7은 본 발명의 일실시예에 따른 메모리 요청 패킷의 구조를 설명하기 위한 도면이다.
도 8은 본 발명의 구체적 실시예에 따른 하이브리드 메모리 큐브 시스템을 도시하는 도면이다.
도 9는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브를 위한 링크 선택 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 다른 실시예에 따른 하이브리드 메모리 큐브를 위한 링크 선택 방법을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 3은 하이브리드 메모리 큐브를 위한 일반적인 링크 선택 방법을 설명하기 위한 도면으로서, 도 3에서는 호스트에서 메모리 요청 패킷을 하이브리드 메모리 큐브로 전송하기 위한 링크 선택 방법이 설명된다.
도 3에서 R은 메모리 요청 패킷을 나타내며, R에 부가되는 숫자는 메모리 요청 패킷의 발생 순서를 나타낸다. 그리고 사각형은 단위 용량으로서, 패킷 또는 버퍼의 크기를 표현하기 위해 사용된다. 일예로서, R5는 R1보다 6배크다. 사각형의 개수는 패킷의 크기 및 버퍼의 용량을 나타낸다. 그리고 버퍼는 링크별로 할당되며, 메모리 요청 패킷은 버퍼에 저장된 후 링크를 통해 HMC로 전송된다.
HMC의 일반적인 링크 선택 방법은 라운드 로빈(round robin) 방식이다. 즉, 메모리 요청 패킷의 발생 순서에 따라 순차적으로 링크에 할당된다.
예를 들어, 도 3과 같이 4개의 링크가 이용되는 경우, R1은 제1링크에 할당되고 R2는 제2링크에 할당된다. R3는 제3링크에 할당되고 R4는 제4링크에 할당된다. 그리고 R5는 다시 제1링크에 할당되고, R6는 제2링크에 할당된다. 링크에 할당된 메모리 요청 패킷은 링크별 버퍼에 저장된 후 HMC로 전송된다. 각 링크의 버퍼에서 메모리 요청 패킷이 저장되지 않은 사각형의 개수는 버퍼의 잔여 저장 공간을 나타낸다.
이 때, 도 3과 같이, 메모리 요청 패킷의 크기는 서로 다를 수 있다. 예를 들어, R1은 읽기 요청 패킷이며, HMC에 저장할 데이터를 포함할 필요가 없으므로 R1은 크기가 작다. 하지만 R2는 쓰기 요청 패킷이며, HMC에 저장할 데이터를 포함하므로 R2는 크기가 크다. 그리고 R3는 쓰기 요청 패킷이지만, R2보다 적은 용량의 데이터를 포함하므로 R2보다 크기가 작다.
이와 같이, 메모리 요청 패킷 별로 크기가 다르기 때문에, 라운드 로빈 방식에 따라 링크를 선택할 경우, 링크 사용이 비효율적일 수 있다. 도 3에 도시된 바와 같이 라운드 로빈 방식에 따라 링크가 선택될 경우, R6이 제2링크의 버퍼에 저장되는데, R2의 크기가 크므로 R6가 전송되기까지 상당한 레이턴시가 발생한다. 즉, 링크별로 할당된 버퍼의 저장 용량이 동일하기 때문에, R6가 R2보다 크기가 작은 메모리 요청 패킷이 저장된 버퍼의 링크로 할당되었다면, 보다 빨리 HMC로 전송될 수 있었음에도 불구하고, 제2링크의 버퍼 저장됨으로써 불필요한 레이턴시가 발행하는 것이다.
이에 본 발명은 R6가 제2링크가 아닌 다른 링크에 할당되도록하는 링크 선택 방법을 제안하며, 결국 본 발명에 따르면 메모리 요청 패킷의 전송 속도가 빨라질 수 있다.
한편, 도 3에서는 호스트의 링크 선택 방법이 설명되었지만, HMC 역시 동일한 방식으로 링크를 선택하여 메모리 요청 패킷에 대한 응답 패킷을 호스트로 전송한다. 응답 패킷 역시 크기가 서로 다르므로, 메모리 요청 패킷을 전송하는 경우와 동일하게 비효율적으로 링크가 선택되는 문제가 발생할 수 있다.
이하 도면에서는 본 발명에 따른 링크 선택 방법 및 장치를 보다 상세히 설명하기로 한다.
도 4는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브를 위한 일반적인 링크 선택 방법의 개념을 설명하기 위한 도면으로서, 도 4에서는 호스트에서 메모리 요청 패킷을 하이브리드 메모리 큐브로 전송하기 위한 링크 선택 방법이 설명된다.
본 발명에 따른 링크 선택 방법은, 버퍼의 잔여 저장 공간을 이용하는 buffer-aware 방식이다.
버퍼의 잔여 공간이 많다는 것은 크기가 작은 패킷이 버퍼에 저장되어 있거나 또는 저장된 패킷의 개수가 적음을 나타내며, 따라서 후속으로 버퍼에 저장되는 패킷의 전송 레이턴시가 작을 수 있다. 반면, 버퍼의 잔여 공간이 적다는 것은 크기가 큰 패킷이 버퍼에 저장되어 있거나 또는 저장된 패킷의 개수가 많음을 나타내며, 따라서 후속으로 버퍼에 저장되는 패킷의 전송 레이턴시가 커질 수 있다.
따라서, 본 발명과 같이, 버퍼의 잔여 저장 공간에 따라 패킷을 전송할 링크를 선택할 경우, 전송 레이턴시가 감소하고 전송 속도가 빨라질 수 있다.
도 4는 일실시예로서, 잔여 저장 공간이 가장 큰 버퍼에 대한 링크를, 패킷을 전송하기 위한 링크로 선택하는 방법을 설명하고 있다.
도 3에서 도시된 바와 같이 메모리 요청 패킷이 생성되는 경우, 도 3과 달리 도 4에서는 R6를 전송하기 위한 링크로서, 제1링크가 선택되고, 제1링크의 버퍼에 R6가 저장된다. 링크별 버퍼의 저장 용량이 동일하고, 제1링크의 버퍼의 잔여 저장 공간이 가장 크므로, R6가 제2 내지 제4링크의 버퍼에 저장되는 경우보다 R6가 보다 빠르게 HMC로 전송될 수 있다. R6가 제1링크의 버퍼에 저장된 이후 R7이 추가적으로 생성되는 경우, 제3링크의 버퍼의 잔여 저장 공간이 가장 크므로, R7은 제3링크의 버퍼에 저장될 수 있다.
한편, 도 4에서는 호스트의 링크 선택 방법이 설명되었지만, HMC 역시 링크별로 할당된 버퍼의 잔여 저장 공간에 따라 링크를 선택하여 메모리 요청 패킷에 대한 응답 패킷을 호스트로 전송할 수 있다.
도 5는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브 시스템을 도시하는 도면이며, 도 6은 본 발명의 일실시예에 따른 메모리 컨트롤러의 블록도를 도시하는 도면이다. 도 7은 본 발명의 일실시예에 따른 메모리 요청 패킷의 구조를 설명하기 위한 도면이다.
도 5 및 도 6을 참조하면, 본 발명에 따른 하이브리드 메모리 큐브 시스템은 호스트(510) 및 HMC(520)를 포함한다. 호스트(510)와 HMC(520)는 복수의 링크(L1, L2, Ln)로 연결된다. 링크는 시리얼 링크로서, high speed serial link(SerDes)일 수 있으며, 링크의 개수는 실시예에 따라서 달라질 수 있다. 호스트(510)는 CPU(511) 및 메모리 컨트롤러(512)를 포함한다. 실시예에 따라서 메모리 컨트롤러(512)는 CPU(511)와 함께 패키징되거나 또는 CPU(511)와 분리되어 보드 상에 위치할 수 있다. 메모리 컨트롤러(512)는 링크 선택 장치로서, 저장 공간 확인부(610), 링크 선택부(620) 및 패킷 전송부(630)를 포함한다.
CPU(511)에서 생성된 메모리 요청 패킷은 메모리 컨트롤러(512)를 거쳐 링크 별로 할당된 버퍼에 저장된 후 HMC(520)로 전송된다. HMC(520)는 메모리 요청 패킷에 대한 응답 패킷을 생성하고, 응답 패킷은 링크 별로 할당된 버퍼에 저장된 후 호스트(510)로 전송된다.
본 발명에 따른 메모리 요청 패킷 전송을 위한 링크 선택 방법은 응답 패킷 전송 방법과 동일하므로 이하에서는 메모리 요청 패킷 전송을 위한 링크 선택 방법 중심으로 설명하기로 한다.
저장 공간 확인부(610)는 복수의 링크별로 할당된 버퍼의 잔여 저장공간을 확인한다. 링크 선택부(620)는 버퍼의 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택한다. 패킷 전송부(630)는 선택된 링크의 버퍼에 메모리 요청 패킷을 저장한다. 버퍼에 저장된 메모리 요청 패킷은 선택된 링크를 통해 HMC(520)로 전송된다.
저장 공간 확인부(610)는 버퍼에 기 저장된 메모리 요청 패킷의 헤더에 저장된 크기 정보를 확인하여 잔여 저장 공간을 계산할 수 있다. 메모리 요청 패킷 및 응답 패킷은 도 7에 도시된 바와 같이, 헤더(header), 페이로드 및 테일(tail)로 이루어지며, 페이로드에 데이터가 포함된다. 도 7에서, 헤더와 테일 사이에 256비트로 이루어진 부분이 페이로드이다. 헤더에 메모리 요청 패킷의 크기 정보를 위한 랭쓰 필드(LNG filed)가 포함될 수 있다. 메모리 요청 패킷의 크기는 플릿(FLIT) 단위로 랭쓰 필드에 기록될 수 있으며, 1플릿은 128bit로 정의된다.
예를 들어, 링크별로 할당된 버퍼들의 저장 용량이 4플릿이고, 3플릿의 메모리 요청 패킷이 버퍼에 저장된 경우, 저장 공간 확인부(610)는 3플릿이라는 크기 정보를 확인한 후, 버퍼의 잔여 저장 공간이 1플릿임을 확인할 수 있다.
그리고 메모리 요청의 종류에 따라서, 메모리 요청 패킷 및 응답 패킷에 페이로드가 선택적으로 포함되거나 페이로드의 크기가 달라질 수 있다. 예를 들어, 메모리 요청이 쓰기 요청일 경우, HMC에 저장될 데이터가 메모리 요청 패킷의 페이로드에 포함될 수 있다. 그리고 메모리 요청이 읽기 요청일 경우, HMC에 저장된 데이터가 응답 패킷의 페이로드에 포함될 수 있다.
다시 도 6으로 돌아가, 링크 선택부(620)는 일실시예로서, 전술된 바와 같이, 잔여 저장 공간이 가장 큰 버퍼에 대한 링크를, 메모리 요청 패킷을 전송할 링크로 선택할 수 있다.
또는 링크 선택부(620)는 실시예에 따라서 버퍼들의 잔여 저장 공간의 차이 및 메모리 요청 패킷의 크기에 기반하여, 메모리 요청 패킷을 전송할 링크를 선택할 수 있다. 일예로서, 잔여 저장 공간의 차이가 제1임계값 이하인 경우에는, 어느 링크를 선택하더라도 전송 레이턴시 차이가 크지 않으며, 메모리 요청 패킷의 크기가 제2임계값 이하로 작은 경우, 후속으로 전송될 메모리 요청 패킷에 대한 영향이 적으므로, 링크 선택부(620)는 이러한 경우 메모리 요청 패킷의 생성 순서에 따라 기 설정된 링크를 메모리 요청 패킷을 전송할 링크로 선택할 수 있다. 즉, 링크 선택부(620)는 이러한 경우 종래 라운드 로빈 방식에 따라 링크를 선택할 수 있다. 제1 및 제2임계값은 시스템 환경에 따라 결정될 수 있다.
한편, HMC(520) 역시 호스트(510)와 같은 방식으로 응답 패킷을 호스트로 전송할 수 있으며, 이 때, HMC(520)의 크로스바 스위치가 메모리 컨트롤러와 같은 역할을 수행할 수 있다.
도 8은 본 발명의 구체적 실시예에 따른 하이브리드 메모리 큐브 시스템을 도시하는 도면이다.
도 8을 참조하면, 본 발명에 따른 하이브리드 메모리 큐브 시스템은 메모리 컨트롤러(810) 및 HMC(820)를 포함한다.
메모리 컨트롤러(810)는 도 7의 메모리 컨트롤러와 같이 저장공간 확인부, 링크 선택부 및 패킷 전송부를 포함한다. 그리고 다운 링크(830)로 패킷을 전송하는 링크 마스터 및 업링크(840)로 패킷을 수신하는 링크 슬레이브를 포함한다.
실시예에 따라서, 호스트와 HMC를 연결하는 링크 각각은 다운링크와 업링크로 이루어질 수 있으며, 따라서 더욱 빠른 속도로 패킷이 송수신될 수 있다. 예를 들어, 도 7의 제1링크(L1)은 다운 링크(830) 및 업 링크(840)로 이루어질 수 있다. 그리고 버퍼는 다운링크 및 업링크 별로 할당될 수 있다. 따라서, 메모리 컨트롤러(810)의 저장 공간 확인부는 복수의 다운링크별로 할당된 버퍼의 잔여 저장 공간을 확인하고, 링크 선택부는 다운링크에 할당된 버퍼들의 잔여 저장 공간에 따라 링크를 선택할 수 있다.
호스트 입장에서 다운링크는, 호스트에서 HMC로 패킷을 전송하는 링크이며, 업링크는 HMC에서 호스트로 패킷을 전송하는 링크이다. HMC 역시 링크 마스터 및 링크 슬레이브를 포함하는데, HMC 입장에서 다운링크는 HMC에서 호스트로 패킷을 전송하는 링크이며, 업링크는 호스트에서 HMC로 패킷을 전송하는 링크이다. 따라서 메모리 컨트롤러의 링크 마스터와 HMC의 링크 슬레이브가 연결되며, 메모리 컨트롤러의 링크 슬레이브와 HMC의 링크 마스터가 서로 연결된다.
HMC(820)는 링크 마스터 및 링크 슬레이브 외에 크로스바 스위치 및 볼트 컨트롤러를 포함하며, 도면에 도시되지는 않았지만 메모리를 포함한다. 크로스바 스위치는 메모리 컨트롤러(810)에 대응될 수 있다.
즉, 크로스바 스위치는 업링크(840), 즉 HMC 입장에서 다운링크에 할당된 버퍼들의 잔여 저장 공간을 확인하고, 잔여 저장 공간에 따라, 응답 패킷을 전송할 링크를 선택할 수 있다.
도 9는 본 발명의 일실시예에 따른 하이브리드 메모리 큐브를 위한 링크 선택 방법을 설명하기 위한 도면으로서, 도 9에서는 메모리 컨트롤러의 링크 선택 방법이 일실시예로서 설명된다.
본 발명에 따른 메모리 컨트롤러는 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인(S910)하고, 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택(S920)한다. 그리고 선택된 링크의 버퍼에 메모리 요청 패킷을 저장(S930)하며, 저장된 메모리 요청 패킷은 선택된 링크를 통해 하이브리드 메모리 큐브로 전송된다.
메모리 요청 패킷은 메모리 요청 패킷의 크기 정보를 포함하는 헤더, 데이터 및 테일을 포함하고 있으며, 따라서 단계 S910에서 메모리 컨트롤러는 버퍼에 기 저장된 메모리 요청 패킷의 헤더로부터 크기 정보를 확인함으로써, 모든 버퍼의 잔여 저장 공간을 계산할 수 있다. 모든 버퍼의 저장 용량은 동일하며, 저장 용량에 대한 정보는 메모리 컨트롤러에 미리 저장될 수 있다.
단계 S920에서 메모리 컨트롤러는 잔여 저장 공간이 가장 큰 버퍼에 대한 링크를, 메모리 요청 패킷을 전송할 링크로 선택하거나, 또는 버퍼의 잔여 저장 공간의 차이 및 전송할 메모리 요청 패킷의 크기에 기반하여, 메모리 요청 패킷을 전송할 링크를 선택할 수 있다. 이 때, 메모리 컨트롤러는 잔여 저장 공간의 차이가 제1임계값 이하이고, 전송할 메모리 요청 패킷의 크기가 제2임계값 이하인 경우, 메모리 요청 패킷의 생성 순서에 따라 기 설정된 링크를 메모리 요청 패킷을 전송할 링크로 선택할 수 있다.
도 10은 본 발명의 다른 실시예에 따른 하이브리드 메모리 큐브를 위한 링크 선택 방법을 설명하기 위한 도면으로서, 도 10에서는 HMC의 링크 선택 방법이 일실시예로서 설명된다.
본 발명에 따른 HMC는 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인(S1010)하고, 잔여 저장 공간에 따라, 호스트의 메모리 요청에 대한 응답 패킷을 전송할 링크를 선택(S1020)한다. 그리고, 선택된 링크의 버퍼에 응답 패킷을 저장(S1030)하며, 응답 패킷은 선택된 링크를 통해 호스트로 전송된다.
응답 패킷은 응답 패킷의 크기 정보를 포함하는 헤더, 데이터 및 테일을 포함하고 있으며, 따라서 단계 S1010에서 HMC는 버퍼에 기 저장된 응답 패킷의 헤더로부터 크기 정보를 확인함으로써, 모든 버퍼의 잔여 저장 공간을 계산할 수 있다. 모든 버퍼의 저장 용량은 동일하며, 저장 용량에 대한 정보는 HMD에 미리 저장될 수 있다.
단계 S1020에서 HMC는 잔여 저장 공간이 가장 큰 버퍼에 대한 링크를, 응답 패킷을 전송할 링크로 선택하거나, 또는 버퍼의 잔여 저장 공간의 차이 및 전송할 응답 패킷의 크기에 기반하여, 응답 패킷을 전송할 링크를 선택할 수 있다. 이 때, HMC는 잔여 저장 공간의 차이가 제1임계값 이하이고, 전송할 응답 패킷의 크기가 제2임계값 이하인 경우, 응답의 생성 순서에 따라 기 설정된 링크를 응답 패킷을 전송할 링크로 선택할 수 있다.
앞서 설명한 기술적 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
Claims (15)
- 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 단계;
상기 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택하는 단계; 및
상기 선택된 링크의 버퍼에 상기 메모리 요청 패킷을 저장하는 단계를 포함하며,
상기 메모리 요청 패킷은 상기 선택된 링크를 통해 하이브리드 메모리 큐브로 전송되며,
상기 링크를 선택하는 단계는
상기 잔여 저장 공간이 가장 큰 버퍼에 대한 링크를, 상기 메모리 요청 패킷을 전송할 링크로 선택하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 삭제
- 제 1항에 있어서,
상기 메모리 요청 패킷은
상기 메모리 요청 패킷의 크기 정보를 포함하는 헤더, 데이터 및 테일
을 포함하는 하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 제 3항에 있어서,
상기 링크를 선택하는 단계는
상기 버퍼의 잔여 저장 공간의 차이 및 상기 메모리 요청 패킷의 크기에 기반하여, 상기 메모리 요청 패킷을 전송할 링크를 선택하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 제 4항에 있어서,
상기 링크를 선택하는 단계는
상기 잔여 저장 공간의 차이가 제1임계값 이하이고, 상기 메모리 요청 패킷의 크기가 제2임계값 이하인 경우, 상기 메모리 요청 패킷의 생성 순서에 따라 기 설정된 링크를 상기 메모리 요청 패킷을 전송할 링크로 선택하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 제 3항에 있어서,
상기 잔여 저장 공간을 확인하는 단계는
상기 버퍼에 기 저장된 메모리 요청 패킷의 헤더에서 상기 크기 정보를 확인하여, 상기 잔여 저장 공간을 계산하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 단계;
상기 잔여 저장 공간에 따라, 호스트의 메모리 요청에 대한 응답 패킷을 전송할 링크를 선택하는 단계; 및
상기 선택된 링크의 버퍼에 상기 응답 패킷을 저장하는 단계를 포함하며,
상기 응답 패킷은 상기 선택된 링크를 통해 상기 호스트로 전송되며,
상기 링크를 선택하는 단계는
상기 잔여 저장 공간이 가장 큰 버퍼에 대한 링크를, 상기 응답 패킷을 전송할 링크로 선택하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 삭제
- 제 7항에 있어서,
상기 응답 패킷은
상기 응답 패킷의 크기 정보를 포함하는 헤더, 데이터 및 테일
을 포함하는 하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 제 9항에 있어서,
상기 링크를 선택하는 단계는
상기 버퍼의 잔여 저장 공간의 차이 및 상기 응답 패킷의 크기에 기반하여, 상기 응답 패킷을 전송할 링크를 선택하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 제 10항에 있어서,
상기 링크를 선택하는 단계는
상기 잔여 저장 공간의 차이가 제1임계값 이하이고, 상기 응답 패킷의 크기가 제2임계값 이하인 경우, 상기 응답 패킷의 생성 순서에 따라 기 설정된 링크를 상기 응답 패킷을 전송할 링크로 선택하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 제 9항에 있어서,
상기 잔여 저장 공간을 확인하는 단계는
상기 버퍼에 기 저장된 응답 패킷의 헤더에서 상기 크기 정보를 확인하여, 상기 잔여 저장 공간을 계산하는
하이브리드 메모리 큐브를 위한 링크 선택 방법.
- 복수의 링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는 저장 공간 확인부;
상기 잔여 저장 공간에 따라, 메모리 요청 패킷을 전송할 링크를 선택하는 링크 선택부; 및
상기 선택된 링크의 버퍼로 상기 메모리 요청 패킷을 전송하는 패킷 전송부를 포함하며,
상기 메모리 요청 패킷은 상기 선택된 링크를 통해 하이브리드 메모리 큐브로 전송되며,
상기 링크 각각은 링크 마스터에 의해 상기 하이브리드 메모리 큐브로 패킷을 전송하는 다운링크 및 링크 슬레이브에 의해 상기 하이브리드 메모리 큐브로부터 패킷을 전송받는 업링크를 포함하는
하이브리드 메모리 큐브를 위한 링크 선택 장치.
- 삭제
- 제 13항에 있어서,
상기 버퍼는
상기 다운링크 및 상기 업링크 별로 할당되며,
상기 저장 공간 확인부는
복수의 다운링크별로 할당된 버퍼의 잔여 저장 공간을 확인하는
하이브리드 메모리 큐브를 위한 링크 선택 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160176277A KR101853210B1 (ko) | 2016-12-22 | 2016-12-22 | 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160176277A KR101853210B1 (ko) | 2016-12-22 | 2016-12-22 | 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101853210B1 true KR101853210B1 (ko) | 2018-04-27 |
Family
ID=62081624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160176277A KR101853210B1 (ko) | 2016-12-22 | 2016-12-22 | 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101853210B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110219197A1 (en) * | 2007-04-12 | 2011-09-08 | Rambus Inc. | Memory Controllers, Systems, and Methods Supporting Multiple Request Modes |
US20150324290A1 (en) | 2014-05-08 | 2015-11-12 | John Leidel | Hybrid memory cube system interconnect directory-based cache coherence methodology |
-
2016
- 2016-12-22 KR KR1020160176277A patent/KR101853210B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110219197A1 (en) * | 2007-04-12 | 2011-09-08 | Rambus Inc. | Memory Controllers, Systems, and Methods Supporting Multiple Request Modes |
US20150324290A1 (en) | 2014-05-08 | 2015-11-12 | John Leidel | Hybrid memory cube system interconnect directory-based cache coherence methodology |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10732879B2 (en) | Technologies for processing network packets by an intelligent network interface controller | |
USRE49151E1 (en) | Memory system and electronic device | |
JP5280135B2 (ja) | データ転送装置 | |
US10802995B2 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
US10805392B2 (en) | Distributed gather/scatter operations across a network of memory nodes | |
US10956347B2 (en) | Data transfer device, arithmetic processing device, and data transfer method | |
US20130322459A1 (en) | Router and many-core system | |
KR20160018987A (ko) | 인터페이스 회로 및 그것의 패킷 전송 방법 | |
TWI717373B (zh) | 用於通用序列匯流排2.0頻寬保留之方法及系統 | |
CN108337116A (zh) | 消息保序方法及装置 | |
US20170024146A1 (en) | Memory controller, information processing device, and control method | |
JP6331944B2 (ja) | 情報処理装置、メモリ制御装置及び情報処理装置の制御方法 | |
KR101853210B1 (ko) | 하이브리드 메모리 큐브를 위한 링크 선택 방법 및 장치 | |
JP4104939B2 (ja) | マルチプロセッサシステム | |
US10684965B2 (en) | Method to reduce write responses to improve bandwidth and efficiency | |
JP5728043B2 (ja) | ゲートウェイ装置 | |
US8429240B2 (en) | Data transfer device and data transfer system | |
KR102516584B1 (ko) | 메모리 시스템 | |
US10084725B2 (en) | Extracting features from a NoC for machine learning construction | |
WO2024012015A1 (zh) | 一种存储系统、主控芯片、数据存储方法及数据读取方法 | |
US20170295237A1 (en) | Parallel processing apparatus and communication control method | |
KR102721940B1 (ko) | 메모리 액세스를 위한 직렬 통신 방법 및 시스템 | |
US20240320167A1 (en) | Combining read requests having spatial locality | |
US12056505B2 (en) | Distributed configuration of programmable devices | |
US20230176787A1 (en) | Information processing system and memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |