KR102464801B1 - 반도체 장치의 동작 방법 및 반도체 시스템 - Google Patents

반도체 장치의 동작 방법 및 반도체 시스템 Download PDF

Info

Publication number
KR102464801B1
KR102464801B1 KR1020150052281A KR20150052281A KR102464801B1 KR 102464801 B1 KR102464801 B1 KR 102464801B1 KR 1020150052281 A KR1020150052281 A KR 1020150052281A KR 20150052281 A KR20150052281 A KR 20150052281A KR 102464801 B1 KR102464801 B1 KR 102464801B1
Authority
KR
South Korea
Prior art keywords
memory
ranks
path
channels
rank
Prior art date
Application number
KR1020150052281A
Other languages
English (en)
Other versions
KR20160122440A (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 KR1020150052281A priority Critical patent/KR102464801B1/ko
Priority to US15/042,887 priority patent/US10241687B2/en
Priority to CN201610184958.XA priority patent/CN106055495B/zh
Publication of KR20160122440A publication Critical patent/KR20160122440A/ko
Application granted granted Critical
Publication of KR102464801B1 publication Critical patent/KR102464801B1/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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Abstract

반도체 장치의 동작 방법 및 반도체 시스템이 제공된다. 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청(memory request)을 수신하고, 상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고, 상기 메모리의 계층(hierarchy) 구조를 이용하여 상기 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하되, 상기 메모리 경로에 대응되는 메모리 영역은 상기 메모리 대역폭을 지원하도록 할당된 메모리 영역이고, 상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함한다.

Description

반도체 장치의 동작 방법 및 반도체 시스템{METHOD FOR OPERATING SEMICONDUCTOR DEVICE AND SEMICONDUCTOR SYSTEM}
본 발명은 반도체 장치의 동작 방법 및 반도체 시스템에 관한 것이다.
메모리 대역폭을 확장시키기 위해 인접한 메모리 위치를 서로 다른 채널, 랭크 또는 뱅크에 두어, 서로 다른 채널, 랭크 또는 뱅크에 있는 메모리를 동시에 액세스할 수 있게 하는 인터리빙 기법이 사용될 수 있다. 그런데 복수의 메모리 모듈을 사용하는 메모리 인터리빙 시스템에서는 메모리 액세스 속도가 증가되는 한편, 전력 소비량 역시 증가하게 될 수 있다. 따라서, 메모리를 액세스하는 구체적인 상황에 따라 메모리 인터리빙 기법을 효율적으로 개선하는 것이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는, 메모리 인터리빙 기법을 이용하는 반도체 장치에서, 메모리를 액세스하는 시나리오에 따라 메모리 대역폭을 유동적으로 사용할 수 있는 반도체 장치의 동작 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 메모리 인터리빙 기법을 이용하는 반도체 시스템에서, 메모리를 액세스하는 시나리오에 따라 메모리 대역폭을 유동적으로 사용할 수 있는 반도체 시스템을 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청(memory request)을 수신하고, 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고, 메모리의 계층(hierarchy) 구조를 이용하여 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하되, 메모리 경로에 대응되는 메모리 영역은 메모리 대역폭을 지원하도록 할당된 메모리 영역이고, 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산하는 것은, 상기 메모리 요청에 사용된 파라미터 정보, 상기 메모리 요청을 한 다른 장치의 대역폭 정보, 상기 반도체 장치의 동작 시나리오에 따라 미리 정해진 대역폭 정보 및 상기 메모리 요청을 하는 프로세스 또는 스레드에 미리 정해진 대역폭 정보 중 적어도 하나를 이용하여, 상기 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산하는 것은, 상기 반도체 장치의 동작 시나리오가 변경되는 경우 상기 메모리 대역폭을 재연산하는 것을 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리는 메모리 셀을 포함하는 복수의 서브 어레이(sub-array), 복수의 상기 서브 어레이를 포함하는 뱅크(bank), 복수의 상기 뱅크를 포함하는 랭크(rank) 및 복수의 상기 랭크(rank)를 포함하는 복수의 채널(channel)을 포함하고, 상기 서브 어레이, 상기 뱅크, 상기 랭크 및 상기 채널은 상기 메모리의 계층 구조를 형성할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리를 액세스하기 위한 메모리 경로는, 상기 복수의 채널 중 적어도 하나, 상기 복수의 랭크 중 적어도 하나, 상기 복수의 뱅크 중 적어도 하나 및 상기 복수의 서브 어레이 중 적어도 하나를 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 경로에 대응되는 메모리 영역의 물리 어드레스(physical address)는 가상 어드레스 공간(virtual address space)에 매핑되고, 상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙을 수행하는 것은, 상기 물리 어드레스 공간에 대해 메모리 인터리빙을 수행하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙을 수행하는 것은, 상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고, 상기 메모리 경로에 대응되지 않는 메모리 영역을 저 전력 모드로 동작시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙을 수행하는 것은, 상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고, 상기 메모리 경로에 대응되지 않는 메모리 영역을 셀프 리프레시(self-refresh) 모드로 동작시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리에 대한 메모리 환원 요청(memory reclaim request)를 수신하고, 상기 메모리 환원 요청에 따라 상기 메모리 경로에 대응되는 메모리 영역의 적어도 일부를 환원하는 것을 더 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청(memory request)을 수신하고, 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)를 연산하고, 메모리의 복수의 랭크(rank) 및 복수의 랭크를 포함하는 복수의 채널(channel) 중에서 메모리 대역폭을 지원하는 랭크 및 채널을 선정하고, 선정된 랭크 및 채널에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 메모리의 복수의 랭크 및 상기 복수의 랭크를 포함하는 복수의 채널 중에서 상기 메모리 대역폭을 지원하는 랭크 및 채널을 선정하는 것은, 상기 메모리의 레이턴시(latency) 정보에 기초하여 상기 메모리 대역폭을 지원하는 랭크 및 채널을 선정하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리의 레이턴시 정보는 랭크간 스위치 레이턴시(rank-to-rank switch latency) 정보 또는 FAW 레이턴시(Four-bank Activation Window) 정보를 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 선정된 랭크 및 채널에 대응되는 메모리 영역의 물리 어드레스(physical address)는 가상 어드레스 공간(virtual address space)에 매핑되고, 상기 선정된 랭크 및 채널에 대해 메모리 인터리빙을 수행하는 것은, 상기 물리 어드레스 공간에 대해 메모리 인터리빙을 수행하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 선정된 랭크 및 채널에 대해 메모리 인터리빙을 수행하는 것은, 상기 메모리의 상기 복수의 랭크 및 상기 복수의 채널 중에서 비선정된 랭크 및 채널에 대응되는 메모리 영역을 저 전력 모드로 동작시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 선정된 랭크 및 채널에 대해 메모리 인터리빙을 수행하는 것은, 상기 메모리의 상기 복수의 랭크 및 상기 복수의 채널 중에서 비선정된 랭크 및 채널에 대응되는 메모리 영역을 셀프 리프레시(self-refresh) 모드로 동작시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리의 복수의 랭크 및 상기 복수의 랭크를 포함하는 복수의 채널 중에서 상기 메모리 대역폭을 지원하는 랭크 및 채널을 선정하는 것은, 복수의 서브 어레이(sub-array), 복수의 상기 서브 어레이를 포함하는 복수의 뱅크(bank), 복수의 상기 뱅크를 포함하는 복수의 랭크 및 복수의 상기 랭크를 포함하는 복수의 채널 중에서 상기 메모리 대역폭을 지원하는 서브 어레이, 뱅크, 랭크 및 채널을 선정하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 선정된 랭크 및 채널에 대해 메모리 인터리빙을 수행하는 것은, 상기 메모리의 상기 복수의 서브 어레이, 상기 복수의 뱅크, 상기 복수의 랭크 및 상기 복수의 채널 중에서 비선정된 서브 어레이, 뱅크, 랭크 및 채널에 대응되는 메모리 영역을 셀프 리프레시(self-refresh) 모드로 동작시키는 것을 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 또 다른 실시예에 따른 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청(memory request)을 수신하고, 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고, 메모리의 제1 영역을 비지(busy) 영역으로 지정하고, 비지 영역은 메모리 대역폭을 지원하는 최소의 메모리 리소스(memory resource)를 포함하고, 메모리 중 제2 영역을 아이들(idle) 영역으로 지정하고, 비지 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 메모리의 제1 영역의 물리 어드레스(physical address)는 가상 어드레스 공간(virtual address space)에 매핑되고, 상기 비지 영역에 대해 메모리 인터리빙을 수행하는 것은, 상기 물리 어드레스 공간에 대해 메모리 인터리빙을 수행하는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 비지 영역에 대해 메모리 인터리빙을 수행하는 것은, 상기 비지 영역에 대해 메모리 인터리빙을 수행하는 동안 상기 아이들 영역을 저 전력 모드로 동작시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 비지 영역에 대해 메모리 인터리빙을 수행하는 것은, 상기 비지 영역에 대해 메모리 인터리빙을 수행하는 동안 상기 아이들 영역을 셀프 리프레시(self-refresh) 모드로 동작시키는 것을 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 리소스는 서브 어레이(sub-array), 상기 서브 어레이를 포함하는 뱅크(bank), 상기 뱅크를 포함하는 랭크(rank) 및 상기 랭크(rank)를 포함하는 채널(channel)을 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 컴퓨터로 판독 가능한 기록매체는, 메모리에 대한 메모리 요청(memory request)을 수신하고, 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고, 메모리의 계층(hierarchy) 구조를 이용하여 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하되, 메모리 경로에 대응되는 메모리 영역은 메모리 대역폭을 지원하도록 할당된 메모리 영역이고, 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하기 위한 프로그램을 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 일 실시예에 따른 반도체 시스템은, 메모리에 대한 메모리 요청(memory request)에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하는 메모리 대역폭 연산부; 메모리의 계층(hierarchy) 구조를 이용하여 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하는 는 메모리 경로 생성부; 및 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 메모리 컨트롤러를 포함하고, 메모리 경로에 대응되는 메모리 영역은 메모리 대역폭을 지원하도록 할당된 메모리 영역이다.
본 발명의 몇몇의 실시예에서, 상기 반도체 시스템은, 상기 메모리 경로에 대응되는 메모리 영역의 물리 어드레스(physical address)를 가상 어드레스 공간(virtual address space)에 매핑하는 메모리 어드레스 매핑부를 더 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리는 메모리 셀을 포함하는 복수의 서브 어레이(sub-array), 복수의 상기 서브 어레이를 포함하는 뱅크(bank), 복수의 상기 뱅크를 포함하는 랭크(rank) 및 복수의 상기 랭크(rank)를 포함하는 복수의 채널(channel)을 포함하고, 상기 서브 어레이, 상기 뱅크, 상기 랭크 및 상기 채널은 상기 메모리의 계층 구조를 형성할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리를 액세스하기 위한 메모리 경로는, 상기 복수의 채널 중 적어도 하나, 상기 복수의 랭크 중 적어도 하나, 상기 복수의 뱅크 중 적어도 하나 및 상기 복수의 서브 어레이 중 적어도 하나를 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 컨트롤러는, 상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고, 상기 메모리 경로에 대응되지 않는 메모리 영역을 저 전력 모드로 동작시킬 수 있다.
본 발명의 몇몇의 실시예에서, 상기 메모리 컨트롤러는, 상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고, 상기 메모리 경로에 대응되지 않는 메모리 영역을 셀프 리프레시(self-refresh) 모드로 동작시킬 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 로드 언밸런싱 유닛을 설명하기 위한 개략도이다.
도 2는 본 발명의 일 실시예에 따른 반도체 시스템을 설명하기 위한 개략도이다.
도 3은 본 발명의 일 실시예에 따른 반도체 시스템의 메모리 인터리빙 기법을 설명하기 위한 개략도이다.
도 4는 본 발명의 반도체 시스템의 동작의 일 실시예를 설명하기 위한 개략도이다.
도 5는 본 발명의 반도체 시스템의 동작의 다른 실시예를 설명하기 위한 개략도이다.
도 6은 본 발명의 반도체 시스템의 동작의 다른 실시예를 설명하기 위한 개략도이다.
도 7은 도 6의 반도체 시스템의 동작에 따른 어드레스 매핑을 설명하기 위한 개략도이다.
도 8은 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 순서도이다.
도 9는 본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 순서도이다.
도 10은 본 발명의 또 다른 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 순서도이다.
도 11 내지 도 13은 본 발명의 실시예들에 따른 반도체 장치를 적용할 수 있는 예시적인 반도체 시스템들이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 층 및 영역들의 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 로드 언밸런싱 유닛을 설명하기 위한 개략도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 로드 언밸런싱 유닛(10)은 메모리 대역폭 연산부(100), 메모리 경로 생성부(110) 및 메모리 어드레스 매핑부(120)를 포함한다.
메모리 대역폭 연산부(100)는 메모리에 대한 메모리 요청(memory request)을 수신하고, 수신된 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산한다. 여기서 메모리 대역폭은 메모리를 사용하는 특정 어플리케이션 또는 특정 장치가 상기 메모리와 데이터를 송수신하기 위해 필요한 단위 시간당 데이터 레이트를 말한다.
메모리를 사용하는 특정 어플리케이션 또는 특정 디바이스는 메모리 요청을 하면서, 상기 메모리 요청과 관련된 메모리 요청 정보(memory request information)를 함께 제공할 수 있다. 메모리 대역폭 연산부(100)는 상기 메모리 요청 정보를 이용하여 메모리 대역폭을 연산할 수 있다.
한편, 본 발명의 몇몇의 실시예에서, 메모리 대역폭은 하나 이상의 트리거(trigger) 조건이 충족되었을 때 연산될 수 있다. 여기서 트리거 조건은, 예를 들어, 메모리 할당자에 대한 함수 호출(function call for memory allocator)이 있는 경우, 앱(app)이 실행된 경우, 스레드 또는 프로세스가 생성되거나 실행된 경우, 메모리 폴트(memory fault)가 발생한 경우 등을 포함할 수 있다. 즉, 메모리 대역폭 연산부는 메모리 할당자에 대한 함수 호출에 수반된 메모리 요청 정보, 앱이 실행될 때 수반되는 메모리 요청 정보, 스레드 또는 프로세스가 생성되거나 실행될 때 수반되는 메모리 요청 정보, 메모리 폴트가 발생했을 때 수반되는 메모리 요청 정보에 기초하여, 메모리 대역폭을 연산할 수 있다.
일례로, 메모리 대역폭 연산부(100)는 메모리 요청에 사용된 파라미터 정보를 이용하여 메모리 대역폭을 연산할 수 있다. 여기서 메모리 요청에 사용된 파라미터 정보는 메모리 할당을 요청하는 함수 호출(function call)에 있어서 요청 메모리의 사이즈(size)를 지정하는 파라미터 값를 포함할 수 있다. 메모리 대역폭 연산부(100)는 상기 요청 메모리의 사이즈를 지정하는 파라미터 값으로부터 메모리 대역폭을 연산할 수 있다.
다른 예로, 메모리 대역폭 연산부(100)는 메모리 요청을 한 다른 장치의 대역폭 정보를 이용하여 메모리 대역폭을 연산할 수 있다. 여기서 메모리 요청을 한 다른 장치는 로드 언밸런싱 유닛(10)과 전기적으로 연결되고, 로드 언밸런싱 유닛(10)을 통해 메모리를 접근하는 장치, 예컨대, 도 2에 도시된 MODEM(16)을 포함하지만, 본 발명의 범위가 이에 제한되는 것은 아니다. 예를 들어, 도 2에 도시된 MODEM(16)이 메모리 요청을 하는 경우, 로드 언밸런싱 유닛(10)의 메모리 대역폭 연산부(100)는 MODEM(16)의 데이터 전송 프로토콜에 따른 단위 시간당 데이터 레이트를 이용하여 메모리 대역폭을 연산할 수 있다.
또 다른 예로, 메모리 대역폭 연산부(100)는 반도체 장치의 동작 시나리오에 따라 미리 정해진 대역폭 정보를 이용하여 메모리 대역폭을 연산할 수 있다. 여기서 동작 시나리오는 로드 언밸런싱 유닛(10)을 포함하는 반도체 장치의 사용 환경에 따라 상기 반도체 장치의 동작을 제어하기 위해 미리 정해놓은 일종의 동작 모드를 의미한다. 상기 동작 시나리오는, 예를 들어, 디스플레이를 오프(off)한 채로 미디어 데이터를 재생하는 시나리오, 셀룰러 통신 기능만 온(on)하고 나머지 다른 기능은 오프하는 시나리오, 배터리를 절약하기 위해 저 전력 모드로 동작하는 시나리오 등을 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다. 메모리 대역폭 연산부(100)는 상기 동작 시나리오에 따라 미리 정해진 대역폭 정보를 이용하여 메모리 대역폭을 연산할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 동작 시나리오는 상기 반도체 장치의 동작 중 변경될 수 있다. 즉, 상기 반도체 장치의 동작 시나리오가 제1 동작 시나리오에서 제2 동작 시나리오로 변경되는 경우, 제1 동작 시나리오에 따라 메모리 대역폭 연산부(100)에 의해 이전에 연산된 메모리 대역폭은 제2 동작 시나리오에 따라 재연산될 수 있다.
또 다른 예로, 메모리 대역폭 연산부(100)는 메모리 요청을 하는 프로세스 또는 스레드에 미리 정해진 대역폭 정보를 이용하여 메모리 대역폭을 연산할 수 있다. 여기서 메모리 요청을 하는 프로세스 또는 스레드에 미리 정해진 대역폭 정보는, 예컨대, 도 2에 도시된 CPU(12) 상에서 실행되는 프로세스 또는 스레드의 데이터 입출력 동작에 따른 데이터 레이트 정보를 포함한다. 메모리 대역폭 연산부(100)는 이러한 프로세스 또는 스레드로부터 정해지는 데이터 레이트 정보로부터 메모리 대역폭을 연산할 수 있다.
지금까지 메모리 대역폭 연산부(100)가 메모리 대역폭을 연산하기 위해 이용하는 메모리 요청 정보에 관한 예를 설명하였으나, 본 발명의 범위는 이에 제한되지 않고, 상기 메모리 요청 정보는 상기 메모리 요청과 연관되어 메모리 대역폭 연산부(100)가 메모리 대역폭을 연산하기 위해 이용할 수 있는 임의의 정보를 포함할 수 있다.
메모리 경로 생성부(110)는 메모리의 계층 구조를 이용하여 메모리를 액세스하기 위한 메모리 경로를 생성한다. 여기서, 메모리 경로에 대응되는 메모리 영역은 메모리 대역폭 연산부(100)에 의해 연산된 메모리 대역폭을 지원하도록 할당된다.
본 발명의 몇몇의 실시예에서, 메모리는 메모리 셀을 포함하는 복수의 서브 어레이(sub-array), 복수의 상기 서브 어레이를 포함하는 뱅크(bank), 복수의 상기 뱅크를 포함하는 랭크(rank) 및 복수의 상기 랭크(rank)를 포함하는 복수의 채널(channel)을 포함할 수 있다. 여기서, 서브 어레이, 뱅크, 랭크 및 채널은 메모리의 계층 구조를 형성한다. 예를 들어, 메모리는 2 개의 채널을 포함하고, 상기 채널은 각각 2 개의 랭크를 포함하고, 상기 랭크는 각각 6 개의 뱅크를 포함하고, 상기 뱅크는 각각 4 개의 서브 어레이를 포함할 수 있다. 여기서 채널은 상기 메모리의 계층 구조에서 최상위 레벨에 해당되고, 서브 어레이는 상기 메모리의 계층 구조에서 최하위 레벨에 해당된다.
메모리 경로 생성부(110)에 의해 생성되는 메모리 경로는 복수의 채널 중 적어도 하나, 복수의 랭크 중 적어도 하나, 복수의 뱅크 중 적어도 하나 및 복수의 서브 어레이 중 적어도 하나를 포함할 수 있다. 예를 들어, 메모리 경로 생성부(110)에 의해 생성되는 메모리 경로는 1 개의 채널 및 상기 채널에 포함되는 2 개의 랭크를 포함할 수 있다. 다른 예로, 메모리 경로 생성부(110)에 의해 생성되는 메모리 경로는 2 개의 채널 및 상기 각각의 채널에 포함되는 랭크 중 첫번째 랭크를 포함할 수 있다. 이에 대한 구체적인 예들은 도 3 내지 도 6를 참조하여 후술하도록 한다.
이와 같이 생성된 메모리 경로에 대응되는 메모리 영역은 메모리 대역폭 연산부(100)에 의해 연산된 메모리 대역폭을 지원하도록 할당된다. 한편, 상기 생성된 메모리 경로에 대응되는 메모리 영역에 데이터가 라이트 또는 리드되는 동안, 생성된 메모리 경로에 대응되지 않는 메모리 영역에는 데이터가 라이트 또는 리드되지 않는다. 즉, 본 발명의 따른 로드 언밸런싱 유닛(10)은 메모리 대역폭 연산부(100)에 의해 연산된 메모리 대역폭을 지원할 수 있는 만큼의 메모리 영역만을 사용하고, 나머지 메모리 영역을 사용하지 않음으로써 메모리 대역폭을 제한할 수 있고, 불필요하게 발생되는 전력 소비를 감소시킬 수 있다.
메모리 어드레스 매핑부(120)는 메모리 경로에 대응되는 메모리 영역의 물리 어드레스를 가상 어드레스 공간에 매핑한다.
앞서 설명한 바와 같이, 메모리 대역폭 연산부(100)에 의해 연산된 메모리 대역폭에 기초하여 메모리 경로 생성부(110)에 의해 생성된 메모리 경로는 메모리의 일부 영역만을 사용하도록 함으로써 메모리 대역폭을 제한할 수 있다. 그런데 본 발명의 다양한 실시예에 따른 반도체 장치는 메모리 인터리빙 기법을 사용하므로, 상기 메모리 인터리빙 기법을 유지하면서 메모리 영역을 사용 영역과 비사용 영역으로 구분하는 것이 필요하다.
본 실시예에서, 메모리의 전 영역에 대응되는 물리 어드레스 중 메모리 경로 생성부(110)에 의해 생성된 메모리 경로에 대응되는 메모리 영역의 물리 어드레스는 가상 어드레스 공간에 매핑된다. 상기 매핑은 메모리 인터리빙이 수행되기 전에 완료되어 있을 수 있다. 메모리 인터리빙 기법을 유지하면서 메모리 영역을 사용 영역과 비사용 영역으로 구분하기 위해, 메모리 어드레스 매핑부(120)는 상기 물리 어드레스 공간에 대해 메모리 인터리빙을 수행함으로써, 메모리 인터리빙 기법을 유지하면서 메모리 영역을 사용 영역과 비사용 영역으로 구분할 수 있다. 이에 대한 구체적인 예는 도 7을 참조하여 후술하도록 한다.
본 발명의 몇몇의 실시예에서, 메모리 경로 생성부(110)에 의해 생성된 메모리 경로에 대응되는 메모리 영역, 즉 사용 영역은 일반 전력 모드로 동작되고, 상기 메모리 경로에 대응되지 않는 메모리 영역, 즉, 비사용 영역은 저 전력 모드로 동작할 수 있다. 특히, 본 발명의 몇몇의 실시예에서, 상기 비사용 영역은 셀프 리프레시(self-refresh) 모드로 동작할 수 있다.
본 발명의 로드 언밸런싱 유닛(10)에 의해, 메모리를 액세스하는 구체적인 상황에 따라, 메모리 대역폭을 유동적으로 사용함으로써 불필요한 대역폭을 운용함에 따른 불필요한 전력 소모를 감소시켜 메모리 인터리빙 기법을 효율적으로 개선할 수 있다. 특히, 본 발명의 다양한 실시예들은, 메모리 인터리빙 기법을 유지하면서 메모리 대역폭을 유동적으로 사용할 수 있다.
도 2는 본 발명의 일 실시예에 따른 반도체 시스템을 설명하기 위한 개략도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 반도체 시스템(1)은 로드 언밸런싱 유닛(10), CPU(12), GPU(14), MODEM(16) 및 메모리 모듈(22, 32)을 각각 제어하는 메모리 컨트롤러(20, 30)를 포함할 수 있다. 로드 언밸런싱 유닛(10), CPU(12), GPU(14), MODEM(16) 및 메모리 컨트롤러(20, 30)는 버스(16, 18)를 통해 서로 전기적으로 연결되어 데이터를 주고 받을 수 있다. 본 발명의 반도체 시스템(1)은 도 2에 도시된 것에 한정되지 않고, DSP(Digital Signal Processor), CP(Cellular Processor) 등 기타 하드웨어 장치들을 포함할 수도 있음은 자명하다.
본 발명의 몇몇의 실시예에서, 메모리 모듈(22, 32)은 반도체 메모리, 예를 들면, DDR SDRAM(Double Data Rate Static DRAM), SDR SDRAM(Single Data Rate SDRAM), LPDDR SDRAM(Low Power DDR SDRAM), LPSDR SDRAM(Low Power SDR SDRAM), Direct RDRAM(Rambus DRAM) 등과 같은 DRAM을 비롯한 임의의 휘발성 메모리 장치를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 특히, 본 발명의 다양한 실시예에서의 메모리 컨트롤러(20, 30) 및 메모리 모듈(22, 32)은 다채널 메모리에 해당될 수 있다.
도 3은 본 발명의 일 실시예에 따른 반도체 시스템의 메모리 인터리빙 기법을 설명하기 위한 개략도이다.
도 3을 참조하면, 로드 언밸런싱 유닛(10), 메모리 컨트롤러(20, 30) 및 메모리 모듈(22, 32)을 포함하는 본 발명의 일 실시예에 따른 반도체 시스템에서, 채널(CH0, CH1), 랭크(24a, 24b, 34a, 34b), 뱅크(B0~B5), 및 각각의 뱅크(B0~B5)에 포함된 서브 어레이는 논리적인 계층 구조를 형성할 수 있다.
구체적으로, 채널(CH0)은 로드 언밸런싱 유닛(10)과 메모리 컨트롤러(20) 사이에 형성되며, 2 개의 랭크(24a, 24b)를 포함할 수 있다. 이와 마찬가지로, 채널(CH1)은 로드 언밸런싱 유닛(10)과 메모리 컨트롤러(22) 사이에 형성되며, 2 개의 랭크(34a, 34b)를 포함할 수 있다. 한편, 랭크(24a)는 6 개의 뱅크(B0~B5)를 포함할 수 있고, 랭크(24b, 34a, 34b) 역시 각각 6 개의 뱅크(B0~B5)를 포함할 수 있다. 각각의 뱅크(B0~B5)는 데이터가 실제적으로 기록되는 메모리 셀로 이루어진 복수의 서브 어레이들을 포함할 수 있다.
설명의 편의를 위해 도 3에서는 2 개의 채널(CH0, CH1) 각각이 4 개의 랭크(24a, 24b, 34a, 34b)를 포함하고, 4 개의 랭크(24a, 24b, 34a, 34b) 각각이 6 개의 뱅크(B0~B5)를 포함하는 것으로 도시되어 있지만, 본 발명의 범위는 이에 제한되지 않고, 채널, 랭크, 뱅크 및 서브 어레이의 개수는 임의의 개수가 될 수 있다.
도 4는 본 발명의 반도체 시스템의 동작의 일 실시예를 설명하기 위한 개략도이다.
일반적인 메모리 인터리빙 기법에 따르면, 데이터를 메모리에 라이트 또는 리드하기 위해 도 3에 도시된 채널(CH0, CH1), 랭크(24a, 24b, 34a, 34b), 뱅크(B0~B5), 및 각각의 뱅크(B0~B5)에 포함된 서브 어레이 모두가 사용된다. 반면, 도 4에서는 2 개의 채널 중 1 개의 채널(CH0) 및 채널(CH0)에 포함되는 랭크(24a, 24b)만이 사용되고, 채널(CH1) 및 채널(CH1)에 포함되는 랭크(34a, 34b)는 비사용된다.
예를 들어, 메모리 대역폭 연산부(100)가 연산한 메모리 대역폭이 메모리 인터리빙 기법에 의해 최대로 확보될 수 있는 메모리 대역폭의 50 % 이하인 경우, 메모리 경로 생성부(110)는 채널(CH0), 랭크(24a, 24b) 및 뱅크(B0~B5)를 포함하는 메모리 경로를 생성할 수 있다. 즉, 로드 언밸런싱 유닛(10)은 채널(CH0), 랭크(24a, 24b) 및 뱅크(B0~B5)를 포함하는 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고, 나머지 메모리 영역을 셀프 리프레시(self-refresh) 모드로 동작시킬 수 있다. 이에 따라, 셀프 리프레시 모드로 동작하는 메모리 영역에서 소모하는 전력은 최소 전력이 된다.
본 실시예에서 알 수 있는 바와 같이, 메모리를 액세스하는 구체적인 상황에 따라 메모리 대역폭을 유동적으로 사용함으로써 불필요한 대역폭을 운용함에 따른 불필요한 전력 소모를 감소시켜 메모리 인터리빙 기법을 효율적으로 개선할 수 있다.
한편, 본 발명의 몇몇의 실시예에서, 로드 언밸런싱 유닛(10)은 메모리에 대한 메모리 환원 요청(memory reclaim request)를 수신할 수 있다. 이 경우, 로드 언밸런싱 유닛(10)은 상기 메모리 경로에 대응되는 메모리 영역의 적어도 일부, 즉, 이미 사용된 영역를 환원할 수 있다. 특히, 로드 언밸런싱 유닛(10)은 상기 메모리 경로에 대응되는 메모리 영역의 적어도 일부 영역을 다른 영역보다 우선하여 환원할 수 있다. 이와 같이, 셀프 리프레시 모드로 동작하는 메모리 영역에서 일부를 환원하는 것보다 이미 활성화 상태인 메모리 영역에서 일부를 환원하면, 메모리에서의 셀프 리프레시 영역을 더 확보하는 것이 되어 전력 소모를 최소화할 수 있다.
도 5는 본 발명의 반도체 시스템의 동작의 다른 실시예를 설명하기 위한 개략도이다.
도 5를 참조하면, 2 개의 채널(CH0, CH1)이 모두 사용되지만, 채널(CH0)에서는 2 개의 랭크(24a, 24b) 중 1 개의 랭크(24a)만이 사용되고, 채널(CH1)에서는 2 개의 랭크(34a, 34b) 중 1 개의 랭크(34a)만이 사용된다. 그리고 랭크(24b, 34b)는 비사용된다.
본 발명의 몇몇의 실시예에서, 메모리 대역폭 연산부(100)는 도 1과 관련하여 설명한 메모리 요청 정보의 일종인 메모리 레이턴시(latency) 정보에 기초하여 메모리 대역폭을 연산할 수 있다. 예를 들어, 메모리 레이턴시 정보는 랭크간 스위치 레이턴시(rank-to-rank switch latency) 정보 또는 FAW 레이턴시(Four-bank Activation Window) 정보를 포함할 수 있다.
도 5에서는, 예를 들어, 랭크간 스위치 레이턴시(rank-to-rank switch latency)를 방지하기 위해 2 개의 채널에서 1 개의 랭크만을 사용하는 시나리오를 도시한 것이다. 이 경우, 메모리 경로 생성부(110)는 채널(CH0), 랭크(24a) 및 뱅크(B0~B5)를 포함하는 메모리 경로와 채널(CH1), 랭크(34a) 및 뱅크(B0~B5)를 포함하는 메모리 경로를 생성할 수 있다. 즉, 로드 언밸런싱 유닛(10)은 채널(CH0), 랭크(24a) 및 뱅크(B0~B5)를 포함하는 메모리 경로와 채널(CH1), 랭크(34a) 및 뱅크(B0~B5)를 포함하는 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고, 나머지 메모리 영역을 셀프 리프레시 모드로 동작시킬 수 있다. 이에 따라, 셀프 리프레시 모드로 동작하는 메모리 영역에서 소모하는 전력은 최소 전력이 된다.
본 실시예에서 알 수 있는 바와 같이, 메모리를 액세스하는 구체적인 상황에 따라 메모리 대역폭을 유동적으로 사용함으로써 불필요한 대역폭을 운용함에 따른 불필요한 전력 소모를 감소시켜 메모리 인터리빙 기법을 효율적으로 개선할 수 있다.
도 6은 본 발명의 반도체 시스템의 동작의 다른 실시예를 설명하기 위한 개략도이고, 도 7은 도 6의 반도체 시스템의 동작에 따른 어드레스 매핑을 설명하기 위한 개략도이다.
도 6 및 도 7을 참조하면, 2 개의 채널 중 1 개의 채널(CH0) 및 채널(CH0)에 포함되는 랭크(24a)만이 사용되고, 채널(CH0)의 랭크(24b), 채널(CH1) 및 채널(CH1)에 포함되는 랭크(34a, 34b)는 비사용된다. 여기서, 랭크(24a)에 대응되는 물리 어드레스는 '1', '2', '9', '10', '17', '18'이고, 랭크(24b)에 대응되는 물리 어드레스는 '5', '6', '13', '14'이고, 랭크(34a)에 대응되는 물리 어드레스는 '3', '4', '11', '12'이고, 랭크(34b)에 대응되는 물리 어드레스는 '7', '8', '15', '16'이다.
이러한 경우, 메모리 인터리빙 기법을 유지하면서 메모리 대역폭을 유동적으로 사용하기 위해 가상 어드레스 공간을 형성한다. 가상 어드레스 공간은 복수의 물리 어드레스 중 사용 영역에 해당하는 물리 어드레스만을 매핑한 어드레스들을 포함한다. 예를 들어, 도 7의 가상 어드레스 공간은 물리 어드레스 '1', '2', '9', '10', '17', '18'에 대응되는 어드레스만을 포함한다.
이와 같이 형성된 가상 어드레스 공간과 매핑되는 물리 어드레스 공간에 대해 메모리 인터리빙을 수행하면, 결국 채널(CH0)에 포함되는 랭크(24a)만이 사용되고, 채널(CH0)의 랭크(24b), 채널(CH1) 및 채널(CH1)에 포함되는 랭크(34a, 34b)는 비사용되는 결과가 된다. 예를 들어, 데이터를 가상 어드레스 영역의 어드레스 '2', '10', '18'에 라이트하는 경우, '2', '10', '18'은 모두 채널(CH0)에 포함되는 랭크(24a)에 대응되므로, 결국 채널(CH0)에 포함되는 랭크(24a)만을 사용하여 상기 데이터를 라이트하게 된다.
도 8은 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 순서도이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청을 수신(S801)하고, 상기 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산(S803)하고, 메모리의 계층 구조를 이용하여 메모리를 액세스하기 위한 메모리 경로를 생성(S805)하는 것을 포함한다. 또한 상기 방법은 메모리 경로에 대응되는 메모리 영역의 물리 어드레스를 가상 어드레스에 매핑(S807)하고, 상기 가상 어드레스 영역에 대해 메모리 인터리빙을 수행(S809)하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 메모리에 대한 메모리 요청을 수신(S801)하는 것은, 메모리 대역폭을 연산하기 위한 하나 이상의 트리거(trigger) 조건이 충족되었는지 판단(S802)하는 것을 포함할 수 있다. 여기서 트리거 조건은, 도 1과 관련하여 앞서 설명한 바와 같이, 예를 들어, 메모리 할당자에 대한 함수 호출(function call for memory allocator)이 있는 경우, 앱(app)이 실행된 경우, 스레드 또는 프로세스가 생성되거나 실행된 경우, 메모리 폴트(memory fault)가 발생한 경우 등을 포함할 수 있다.도 9는 본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 본 발명의 다른 실시예에 따른 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청을 수신(S901)하고, 상기 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산(S903)하고, 메모리의 복수의 랭크 및 상기 복수의 랭크를 포함하는 복수의 채널 중에서 메모리 대역폭을 지원하는 랭크 및 채널을 선정(S905)하는 것을 포함한다. 또한 상기 방법은 선정된 랭크 및 채널에 대해 메모리 인터리빙을 수행(S907)하고, 비선정된 채널 및 랭크를 저 전력 모드로 설정(S909)하는 것을 포함한다.
도 10은 본 발명의 또 다른 실시예에 따른 반도체 장치의 동작 방법을 설명하기 위한 순서도이다.
도 10을 참조하면, 본 발명의 또 다른 실시예에 따른 반도체 장치의 동작 방법은, 메모리에 대한 메모리 요청을 수신(S1001)하고, 상기 메모리 요청에 따라 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산(S1003)하는 것을 포함한다. 또한 상기 방법은, 메모리의 제1 영역을 비지(busy) 영역으로 지정(S1005)하고, 상기 비지 영역은 상기 메모리 대역폭을 지원하는 최소의 메모리 리소스(memory resource)를 포함하고, 상기 메모리 중 제2 영역을 아이들(idle) 영역으로 지정(S1007)하고, 비지 영역에 대해 메모리 인터리빙을 수행(S1009)하는 것을 포함한다.
여기서 비지 영역은 데이터가 라이트 또는 리드되는 메모리의 사용 영역에 해당하고, 아이들 영역은 메모리의 비사용 영역에 해당한다. 그리고 메모리 리소스는 서브 어레이, 상기 서브 어레이를 포함하는 뱅크, 상기 뱅크를 포함하는 랭크 및 상기 랭크를 포함하는 채널을 포함할 수 있다.
도 11 내지 도 13은 본 발명의 실시예들에 따른 반도체 장치를 적용할 수 있는 예시적인 반도체 시스템들이다.
도 11은 태블릿 PC(1200)을 도시한 도면이고, 도 12는 노트북(1300)을 도시한 도면이며, 도 13은 스마트폰(1400)을 도시한 것이다. 본 발명의 실시예들에 따른 반도체 시스템은 이러한 태블릿 PC(1200), 노트북(1300), 스마트폰(1400) 등에 사용될 수 있다.
또한, 본 발명의 몇몇 실시예들에 따른 반도체 시스템은 예시하지 않은 다른 집적 회로 장치에도 적용될 수 있음은 통상의 기술자에게 자명하다. 즉, 이상에서는 본 실시예에 따른 반도체 시스템의 예로, 태블릿 PC(1200), 노트북(1300), 및 스마트폰(1400)만을 들었으나, 이에 제한되는 것은 아니다. 본 발명의 몇몇 실시예에서, 반도체 시스템은, 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 무선 전화기(wireless phone), 모바일 폰(mobile phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player) 등으로 구현될 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 반도체 시스템 10: 로드 언밸런싱 유닛
12: CPU 14: GPU
16: MODEM 18: 버스
20, 30: 메모리 컨트롤러 22, 32: 메모리 모듈
24a, 24b, 34a, 34b: 랭크 100: 메모리 대역폭 연산부
110: 메모리 경로 생성부 120: 메모리 어드레스 매핑부

Claims (20)

  1. 휘발성 반도체 메모리 장치의 메모리에 대한 메모리 요청(memory request)을 수신하고,
    상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고,
    상기 메모리의 계층(hierarchy) 구조를 이용하여 상기 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하되, 상기 메모리 경로에 대응되는 메모리 영역은 상기 메모리 대역폭을 지원하도록 할당된 메모리 영역이고,
    상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함하되,
    상기 메모리 경로를 생성하는 것은,
    상기 메모리의 복수의 채널(channel) 중 어느 하나를 선정하고, 상기 복수의 채널 중 상기 선정된 채널에 포함된 복수의 랭크(rank) 중 적어도 어느 하나를 선정하는 것을 포함하고,
    상기 메모리 영역은 상기 복수의 채널 중 상기 선정된 채널과 상기 복수의 랭크 중 상기 선정된 적어도 어느 하나의 랭크를 포함하고,
    상기 메모리 인터리빙을 수행하는 것은,
    상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고,
    상기 메모리 경로에 대응되지 않는 메모리 영역을 상기 일반 전력 모드보다 적은 전력을 사용하는 저 전력 모드로 동작시키는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산하는 것은,
    상기 메모리 요청에 사용된 파라미터 정보, 상기 메모리 요청을 한 다른 장치의 대역폭 정보, 상기 휘발성 반도체 메모리 장치의 동작 시나리오에 따라 미리 정해진 대역폭 정보 및 상기 메모리 요청을 하는 프로세스 또는 스레드에 미리 정해진 대역폭 정보 중 적어도 하나를 이용하여, 상기 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산하는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  3. 제2항에 있어서,
    상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭을 연산하는 것은,
    상기 휘발성 반도체 메모리 장치의 동작 시나리오가 변경되는 경우 상기 메모리 대역폭을 재연산하는 것을 더 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  4. 제1항에 있어서,
    상기 메모리는 메모리 셀을 포함하는 복수의 서브 어레이(sub-array), 복수의 상기 서브 어레이를 포함하는 뱅크(bank), 복수의 상기 뱅크를 포함하는 상기 랭크 및 복수의 상기 랭크(rank)를 포함하는 복수의 상기 채널을 포함하고,
    상기 서브 어레이, 상기 뱅크, 상기 랭크 및 상기 채널은 상기 메모리의 계층 구조를 형성하는 휘발성 반도체 메모리 장치의 동작 방법.
  5. 제4항에 있어서,
    상기 메모리를 액세스하기 위한 메모리 경로는, 상기 복수의 채널 중 적어도 하나, 상기 복수의 랭크 중 적어도 하나, 상기 복수의 뱅크 중 적어도 하나 및 상기 복수의 서브 어레이 중 적어도 하나를 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  6. 제1항에 있어서,
    상기 메모리 경로에 대응되는 메모리 영역의 물리 어드레스(physical address)는 가상 어드레스 공간(virtual address space)에 매핑되고,
    상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙을 수행하는 것은,
    상기 가상 어드레스 공간에 대해 메모리 인터리빙을 수행하는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  7. 제1항에 있어서,
    상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙을 수행하는 것은,
    상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고,
    상기 메모리 경로에 대응되지 않는 메모리 영역을 셀프 리프레시(self-refresh) 모드로 동작시키는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  8. 제1항에 있어서,
    상기 메모리에 대한 메모리 환원 요청(memory reclaim request)를 수신하고,
    상기 메모리 환원 요청에 따라 상기 메모리 경로에 대응되는 메모리 영역의 적어도 일부를 환원하는 것을 더 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  9. 휘발성 반도체 메모리 장치의 메모리에 대한 메모리 요청(memory request)을 수신하고,
    상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)를 연산하고,
    상기 메모리의 복수의 랭크(rank) 및 상기 복수의 랭크를 포함하는 복수의 채널(channel) 중에서 상기 메모리 대역폭을 지원하는 상기 복수의 랭크 중 어느 하나의 랭크 및 상기 복수의 채널 중 적어도 어느 하나의 채널을 선정하고,
    상기 복수의 랭크 중 상기 선정된 랭크 및 상기 복수의 채널 중 상기 선정된 적어도 어느 하나의 채널에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함하되,
    상기 복수의 랭크 중 상기 선정된 랭크 및 상기 복수의 채널 중 상기 선정된 적어도 어느 하나의 채널에 대해 메모리 인터리빙을 수행하는 것은,
    상기 복수의 랭크 및 상기 복수의 채널 중 선정되지 않은 랭크 및 채널에 대응되는 메모리 영역을, 상기 복수의 랭크 중 상기 선정된 랭크 및 상기 복수의 채널 중 상기 선정된 적어도 어느 하나의 채널에 대응되는 메모리 영역을 동작시키는 전력 모드보다 적은 전력을 사용하는 저 전력 모드로 동작시키는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  10. 제9항에 있어서,
    상기 메모리의 상기 복수의 랭크 및 상기 복수의 랭크를 포함하는 상기 복수의 채널 중에서 상기 메모리 대역폭을 지원하는 상기 복수의 랭크 중 어느 하나의 랭크 및 상기 복수의 채널 중 적어도 어느 하나의 채널을 선정하는 것은,
    복수의 서브 어레이(sub-array), 복수의 상기 서브 어레이를 포함하는 복수의 뱅크(bank), 복수의 상기 뱅크를 포함하는 복수의 랭크 및 복수의 상기 랭크를 포함하는 복수의 채널 중에서 상기 메모리 대역폭을 지원하는 서브 어레이, 뱅크, 랭크 및 채널을 선정하는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  11. 제9항에 있어서,
    상기 메모리의 복수의 랭크 및 상기 복수의 랭크를 포함하는 복수의 채널 중에서 상기 메모리 대역폭을 지원하는 상기 복수의 랭크 중 어느 하나의 랭크 및 상기 복수의 채널 중 적어도 어느 하나의 채널을 선정하는 것은,
    상기 메모리의 레이턴시(latency) 정보에 기초하여 상기 메모리 대역폭을 지원하는 랭크 및 채널을 선정하는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  12. 제11항에 있어서,
    상기 메모리의 레이턴시 정보는 랭크간 스위치 레이턴시(rank-to-rank switch latency) 정보 또는 FAW 레이턴시(Four-bank Activation Window) 정보를 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  13. 제9항에 있어서,
    상기 선정된 랭크 및 상기 선정된 적어도 어느 하나의 채널에 대응되는 메모리 영역의 물리 어드레스(physical address)는 가상 어드레스 공간(virtual address space)에 매핑되고,
    상기 선정된 랭크 및 상기 선정된 적어도 어느 하나의 채널에 대해 메모리 인터리빙을 수행하는 것은,
    상기 가상 어드레스 공간에 대해 메모리 인터리빙을 수행하는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  14. 휘발성 반도체 메모리 장치의 메모리에 대한 메모리 요청(memory request)을 수신하고,
    상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고,
    상기 메모리의 제1 영역을 비지(busy) 영역으로 지정하고, 상기 비지 영역은 상기 메모리 대역폭을 지원하는 최소의 메모리 리소스(memory resource)를 포함하고,
    상기 메모리 중 제2 영역을 아이들(idle) 영역으로 지정하고,
    상기 비지 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 것을 포함하되,
    상기 제1 영역을 비지 영역으로 지정하는 것은,
    상기 메모리의 복수의 채널(channel) 중 어느 하나를 선정하고, 상기 복수의 채널 중 상기 선정된 채널에 포함된 복수의 랭크(rank) 중 적어도 어느 하나를 선정하는 것을 포함하고,
    상기 제1 영역은 상기 복수의 채널 중 상기 선정된 채널과 상기 복수의 랭크 중 상기 선정된 적어도 어느 하나의 랭크를 포함하고,
    상기 비지 영역에 대해 메모리 인터리빙을 수행하는 것은,
    상기 비지 영역에 대해 메모리 인터리빙을 수행하는 동안 상기 아이들 영역을 상기 비지 영역을 동작시키는 전력 모드보다 적은 전력을 사용하는 저 전력 모드로 동작시키는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  15. 제14항에 있어서,
    상기 메모리의 제1 영역의 물리 어드레스(physical address)는 가상 어드레스 공간(virtual address space)에 매핑되고,
    상기 비지 영역에 대해 메모리 인터리빙을 수행하는 것은,
    상기 가상 어드레스 공간에 대해 메모리 인터리빙을 수행하는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  16. 제14항에 있어서,
    상기 비지 영역에 대해 메모리 인터리빙을 수행하는 것은,
    상기 비지 영역에 대해 메모리 인터리빙을 수행하는 동안 상기 아이들 영역을 셀프 리프레시(self-refresh) 모드로 동작시키는 것을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  17. 제14항에 있어서,
    상기 메모리 리소스는 서브 어레이(sub-array), 상기 서브 어레이를 포함하는 뱅크(bank), 상기 뱅크를 포함하는 랭크(rank) 및 상기 랭크(rank)를 포함하는 채널(channel)을 포함하는 휘발성 반도체 메모리 장치의 동작 방법.
  18. 휘발성 반도체 메모리 장치의 메모리에 대한 메모리 요청(memory request)을 수신하고,
    상기 메모리 요청에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하고,
    상기 메모리의 계층(hierarchy) 구조를 이용하여 상기 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하되, 상기 메모리 경로에 대응되는 메모리 영역은 상기 메모리 대역폭을 지원하도록 할당된 메모리 영역이고,
    상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하기 위한 프로그램을 포함하되,
    상기 메모리 경로를 생성하는 것은,
    상기 메모리의 복수의 채널(channel) 중 어느 하나를 선정하고, 상기 복수의 채널 중 상기 선정된 채널에 포함된 복수의 랭크(rank) 중 적어도 어느 하나를 선정하는 것을 포함하고,
    상기 메모리 영역은 상기 복수의 채널 중 상기 선정된 채널과 상기 복수의 랭크 중 상기 선정된 적어도 어느 하나의 랭크를 포함하고,
    상기 메모리 인터리빙을 수행하는 것은,
    상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고,
    상기 메모리 경로에 대응되지 않는 메모리 영역을 상기 일반 전력모드보다 적은 전력을 사용하는 저 전력 모드로 동작시키는 것을 포함하는 컴퓨터로 판독 가능한 기록매체.
  19. 휘발성 반도체 메모리 장치의 메모리에 대한 메모리 요청(memory request)에 따라 상기 메모리를 할당하기 위해 필요한 메모리 대역폭(memory bandwidth)을 연산하는 메모리 대역폭 연산부;
    상기 메모리의 계층(hierarchy) 구조를 이용하여 상기 메모리를 액세스하기 위한 메모리 경로(memory path)를 생성하는 메모리 경로 생성부; 및
    상기 메모리 경로에 대응되는 메모리 영역에 대해 메모리 인터리빙(memory interleaving)을 수행하는 메모리 컨트롤러를 포함하고,
    상기 메모리 경로 생성부는 상기 메모리의 복수의 채널(channel) 중 어느 하나를 선정하고, 상기 복수의 채널 중 상기 선정된 채널에 포함된 복수의 랭크(rank) 중 적어도 어느 하나를 선정하고,
    상기 메모리 경로에 대응되는 메모리 영역은 상기 메모리 대역폭을 지원하도록 할당된 메모리 영역이고,
    상기 메모리 영역은 상기 복수의 채널 중 상기 선정된 채널과 상기 복수의 랭크 중 상기 선정된 적어도 어느 하나의 랭크를 포함하고,
    상기 메모리 컨트롤러는,
    상기 메모리 경로에 대응되는 메모리 영역을 일반 전력 모드로 동작시키고,
    상기 메모리 경로에 대응되지 않는 메모리 영역을 상기 일반 전력 모드보다 적은 전력을 사용하는 저 전력 모드로 동작시키는 휘발성 반도체 메모리 시스템.
  20. 제19항에 있어서,
    상기 메모리 경로에 대응되는 메모리 영역의 물리 어드레스(physical address)를 가상 어드레스 공간(virtual address space)에 매핑하는 메모리 어드레스 매핑부를 더 포함하는 휘발성 반도체 메모리 시스템.
KR1020150052281A 2015-04-14 2015-04-14 반도체 장치의 동작 방법 및 반도체 시스템 KR102464801B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150052281A KR102464801B1 (ko) 2015-04-14 2015-04-14 반도체 장치의 동작 방법 및 반도체 시스템
US15/042,887 US10241687B2 (en) 2015-04-14 2016-02-12 Method for operating semiconductor device and semiconductor system
CN201610184958.XA CN106055495B (zh) 2015-04-14 2016-03-29 用于控制半导体装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150052281A KR102464801B1 (ko) 2015-04-14 2015-04-14 반도체 장치의 동작 방법 및 반도체 시스템

Publications (2)

Publication Number Publication Date
KR20160122440A KR20160122440A (ko) 2016-10-24
KR102464801B1 true KR102464801B1 (ko) 2022-11-07

Family

ID=57128378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150052281A KR102464801B1 (ko) 2015-04-14 2015-04-14 반도체 장치의 동작 방법 및 반도체 시스템

Country Status (3)

Country Link
US (1) US10241687B2 (ko)
KR (1) KR102464801B1 (ko)
CN (1) CN106055495B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016144362A1 (en) * 2015-03-12 2016-09-15 Hewlett Packard Enterprise Development Lp Memory device write based on mapping
US9971541B2 (en) * 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US10268405B2 (en) 2016-03-17 2019-04-23 Mediatek, Inc. Dynamic rank switching for low power volatile memory
WO2018094620A1 (zh) * 2016-11-23 2018-05-31 华为技术有限公司 一种内存分配方法和设备
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US11429523B2 (en) * 2020-05-15 2022-08-30 Microsoft Technology Licensing, Llc Two-way interleaving in a three-rank environment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060088054A1 (en) * 2004-10-12 2006-04-27 Aware, Inc. Resource sharing in a telecommunications environment
US20120179883A1 (en) * 2011-01-12 2012-07-12 Broadcom Corpotation System and method for dynamically adjusting memory performance
US20140164720A1 (en) * 2012-12-10 2014-06-12 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04293135A (ja) 1991-03-20 1992-10-16 Yokogawa Hewlett Packard Ltd メモリアクセス方式
WO1994008295A1 (en) 1992-10-01 1994-04-14 Flavors Technology Inc. Method and apparatus for memory interleave reduction
US5559953A (en) 1994-07-01 1996-09-24 Digital Equipment Corporation Method for increasing the performance of lines drawn into a framebuffer memory
JPH0844624A (ja) 1994-07-29 1996-02-16 Toshiba Corp インタリーブ方式を適用する記憶装置
US5794256A (en) * 1996-12-12 1998-08-11 Microsoft Corporation Pointer swizzling facility using three-state references to manage access to referenced objects
US7317957B1 (en) 1997-09-24 2008-01-08 Sony Corporation Memory allocation for real-time audio processing
US6272594B1 (en) 1998-07-31 2001-08-07 Hewlett-Packard Company Method and apparatus for determining interleaving schemes in a computer system that supports multiple interleaving schemes
US7237123B2 (en) 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US7233335B2 (en) 2003-04-21 2007-06-19 Nividia Corporation System and method for reserving and managing memory spaces in a memory resource
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
JP3950831B2 (ja) 2003-09-16 2007-08-01 エヌイーシーコンピュータテクノ株式会社 メモリインタリーブ方式
KR100532471B1 (ko) 2003-09-26 2005-12-01 삼성전자주식회사 입출력 데이터 위스 조절이 가능한 메모리 장치 및 그위스 조절 방법
US7213084B2 (en) 2003-10-10 2007-05-01 International Business Machines Corporation System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US7213099B2 (en) 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7426622B2 (en) 2004-03-10 2008-09-16 Hewlett-Packard Development Company, L.P. Rapid locality selection for efficient memory allocation
US7484065B2 (en) 2004-04-20 2009-01-27 Hewlett-Packard Development Company, L.P. Selective memory allocation
TWI257790B (en) * 2004-10-29 2006-07-01 Ind Tech Res Inst System for protocol processing engine
US7480781B2 (en) 2004-12-30 2009-01-20 Intel Corporation Apparatus and method to merge and align data from distributed memory controllers
US7209405B2 (en) * 2005-02-23 2007-04-24 Micron Technology, Inc. Memory device and method having multiple internal data buses and memory bank interleaving
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
JP4623592B2 (ja) 2006-06-12 2011-02-02 富士通株式会社 データ処理システムの試験方法、試験プログラム及び試験装置
US7872657B1 (en) * 2006-06-16 2011-01-18 Nvidia Corporation Memory addressing scheme using partition strides
US7490217B2 (en) 2006-08-15 2009-02-10 International Business Machines Corporation Design structure for selecting memory busses according to physical memory organization information stored in virtual address translation tables
US7539842B2 (en) 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US7865796B2 (en) 2006-09-25 2011-01-04 Broadcom Corporation Method and system for memory partitioning
WO2008106562A2 (en) 2007-02-27 2008-09-04 Slacker, Inc. Methods & apparatus for memory allocation interleaving & deinterleaving
US9495290B2 (en) 2007-06-25 2016-11-15 Sonics, Inc. Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering
KR20090011573A (ko) 2007-07-26 2009-02-02 엘지전자 주식회사 멀티 뱅크 메모리 컨트롤러, 이를 포함한 컴퓨터 시스템 및멀티 뱅크 메모리 제어방법
US7782982B2 (en) 2007-10-25 2010-08-24 Newport Media, Inc. Adaptive deinterleaver memory allocation
US8095725B2 (en) 2007-12-31 2012-01-10 Intel Corporation Device, system, and method of memory allocation
JPWO2009096180A1 (ja) 2008-01-30 2011-05-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US8464009B2 (en) 2008-06-04 2013-06-11 Oracle America, Inc. Method for memory interleave support with a ceiling mask
US8190848B2 (en) 2008-07-28 2012-05-29 Lantiq Deutschland Gmbh Interleaver memory allocation method and apparatus
US8375173B2 (en) 2009-10-09 2013-02-12 Qualcomm Incorporated Accessing a multi-channel memory system having non-uniform page sizes
US9026767B2 (en) 2009-12-23 2015-05-05 Intel Corporation Adaptive address mapping with dynamic runtime memory mapping selection
US20110213949A1 (en) 2010-03-01 2011-09-01 Sonics, Inc. Methods and apparatus for optimizing concurrency in multiple core systems
US8285892B2 (en) * 2010-05-05 2012-10-09 Lsi Corporation Quantum burst arbiter and memory controller
US20110320751A1 (en) 2010-06-25 2011-12-29 Qualcomm Incorporated Dynamic Interleaving Of Multi-Channel Memory
WO2012014475A1 (ja) 2010-07-29 2012-02-02 パナソニック株式会社 メモリ管理ユニット、画像処理装置および集積回路
US20120054455A1 (en) 2010-08-31 2012-03-01 Qualcomm Incorporated Non-Uniform Interleaving Scheme In Multiple Channel DRAM System
US9268720B2 (en) 2010-08-31 2016-02-23 Qualcomm Incorporated Load balancing scheme in multiple channel DRAM systems
US20120137090A1 (en) 2010-11-29 2012-05-31 Sukalpa Biswas Programmable Interleave Select in Memory Controller
CN102693195A (zh) * 2011-03-24 2012-09-26 凌阳科技股份有限公司 用以最优化同步存储器的频宽的存储器存取系统及方法
EP2568637A1 (en) 2011-09-09 2013-03-13 Lantiq Deutschland GmbH Dynamic interleaver and deinterleaver buffer partitioning
US9208002B2 (en) * 2012-01-06 2015-12-08 International Business Machines Corporation Equalizing bandwidth for multiple requesters using a shared memory system
US9058208B2 (en) * 2012-11-12 2015-06-16 Skymedi Corporation Method of scheduling tasks for memories and memory system thereof
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US9495291B2 (en) * 2013-09-27 2016-11-15 Qualcomm Incorporated Configurable spreading function for memory interleaving

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060088054A1 (en) * 2004-10-12 2006-04-27 Aware, Inc. Resource sharing in a telecommunications environment
US20120179883A1 (en) * 2011-01-12 2012-07-12 Broadcom Corpotation System and method for dynamically adjusting memory performance
US20140164720A1 (en) * 2012-12-10 2014-06-12 Qualcomm Incorporated System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components

Also Published As

Publication number Publication date
CN106055495A (zh) 2016-10-26
US10241687B2 (en) 2019-03-26
CN106055495B (zh) 2021-06-22
US20160306567A1 (en) 2016-10-20
KR20160122440A (ko) 2016-10-24

Similar Documents

Publication Publication Date Title
KR102464801B1 (ko) 반도체 장치의 동작 방법 및 반도체 시스템
US20190114105A1 (en) Memory system and soc including linear address remapping logic
US10067865B2 (en) System and method for allocating memory to dissimilar memory devices using quality of service
US8996844B1 (en) Apparatus and method for accessing non-overlapping portions of memory according to respective orders of dimensions
US20170162235A1 (en) System and method for memory management using dynamic partial channel interleaving
CA2949282C (en) Method for refreshing dynamic random access memory and a computer system
US20140164720A1 (en) System and method for dynamically allocating memory in a memory subsystem having asymmetric memory components
US10878880B2 (en) Selective volatile memory refresh via memory-side data valid indication
CN108845958B (zh) 一种交织器映射和动态内存管理系统及方法
US9886992B2 (en) Memory device and system including the same
US20170108914A1 (en) System and method for memory channel interleaving using a sliding threshold address
TW201717026A (zh) 用於逐頁記憶體通道交錯之系統及方法
US10185501B2 (en) Method and apparatus for pinning memory pages in a multi-level system memory
US20170108911A1 (en) System and method for page-by-page memory channel interleaving
CN116795735B (zh) 固态硬盘空间分配方法、装置、介质及系统
US10901883B2 (en) Embedded memory management scheme for real-time applications
US20160034392A1 (en) Shared memory system
WO2014108321A1 (en) Data storage in a mobile device with embedded mass storage device
EP3427153A1 (en) Multi-rank collision reduction in a hybrid parallel-serial memory system
EP3506112A1 (en) Multi-level system memory configurations to operate higher priority users out of a faster memory level
US20140351546A1 (en) Method and apparatus for mapping a physical memory having a plurality of memory regions
JP2016206951A (ja) 電子装置及び電子装置の制御方法
US20130185486A1 (en) Storage device, storage system, and input/output control method performed in storage device
US20150006935A1 (en) Method for controlling cache memory and apparatus for the same
CN115756327A (zh) 一种固态硬盘及其数据写方法、装置、主机和存储介质

Legal Events

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