KR20180011338A - 다중의 인터페이스들에 의한 메모리 공간으로의 동시 액세스 - Google Patents

다중의 인터페이스들에 의한 메모리 공간으로의 동시 액세스 Download PDF

Info

Publication number
KR20180011338A
KR20180011338A KR1020187001746A KR20187001746A KR20180011338A KR 20180011338 A KR20180011338 A KR 20180011338A KR 1020187001746 A KR1020187001746 A KR 1020187001746A KR 20187001746 A KR20187001746 A KR 20187001746A KR 20180011338 A KR20180011338 A KR 20180011338A
Authority
KR
South Korea
Prior art keywords
storage bank
interface
storage
application
domains
Prior art date
Application number
KR1020187001746A
Other languages
English (en)
Other versions
KR101871655B1 (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 퀄컴 인코포레이티드
Publication of KR20180011338A publication Critical patent/KR20180011338A/ko
Application granted granted Critical
Publication of KR101871655B1 publication Critical patent/KR101871655B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1016Performance improvement
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

메모리 디바이스로의 액세스를 용이하게 하는 시스템, 방법들 및 장치가 설명된다. 메모리 디바이스 내의 메모리 공간이 복수의 저장 뱅크 도메인들로 분할된다. 그 후, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들이 하나 이상의 어플리케이션 사용 요건들에 기초하여 복수의 인터페이스 그룹들로 분류된다. 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹은 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당된다. 그 후, 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스가 제공되고, 여기서, 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다.

Description

다중의 인터페이스들에 의한 메모리 공간으로의 동시 액세스{CONCURRENT ACCESS TO MEMORY SPACE BY MULTIPLE INTERFACES}
관련 출원에 대한 상호참조
본 출원은 2015년 7월 21일자로 미국 특허 상표청에 출원된 정규출원 제14/805,185호에 대한 우선권을 주장하고 그 이익을 주장하며, 그 출원의 전체 내용은 본 명세서에 참조로 통합된다.
본 개시는 일반적으로 정보 저장 디바이스들에 관한 것으로서, 더 상세하게는, 다중의 어플리케이션 인터페이스 회로들에 의한 정보 저장 디바이스들의 저장 도메인들로의 동시 액세스를 용이하게 하는 것에 관한 것이다.
셀룰러 및 무선 통신 기술들은 과거 수년에 걸쳐 폭발적인 성장을 보였다. 이제, 무선 서비스 제공자들은 다수의 특징들 및 서비스들을 제공하며, 그 사용자들에게 정보, 리소스들 및 통신에의 전례없는 레벨들의 액세스를 제공한다. 이들 서비스 향상들과 보조를 맞추기 위해, 모바일 전자 디바이스들 (예를 들어, 셀룰러 폰들, 태블릿들, 랩탑들 등) 은 이전보다 더 특징이 풍부해지고 더 복잡하게 되었다. 이제, 모바일 전자 디바이스들은, 모바일 디바이스 사용자들로 하여금 그 모바일 디바이스들 상에서 복잡하고 전력 집중적인 소프트웨어 어플리케이션들 (예를 들어, 비디오 스트리밍, 멀티미디어 프로세싱 등) 을 실행하게 하는 다중의 프로세서들, 시스템 온 칩들 (SoC들), 다중의 메모리들, 및 다른 리소스들 (예를 들어, 전력 레일들 등) 을 일반적으로 포함한다. 모바일 디바이스들 및 관련 기술들이 대중성 및 사용에 있어서 계속 성장함에 따라, 모바일 디바이스들의 수행 능력들 및 전력 소비 특성들을 개선시키는 것은 모바일 디바이스 설계자들에 대해 중요하고 도전적인 설계 기준들이 될 것으로 예상된다.
본 명세서에서 개시된 실시형태들은 메모리 디바이스에 액세스하기 위한 시스템들, 방법들 및 장치를 제공한다.
본 개시의 일 양태에 있어서, 메모리 디바이스에 액세스하기 위한 방법은 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하는 단계, 하나 이상의 어플리케이션 사용 요건들에 기초하여, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하는 단계, 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하는 단계, 및 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스를 제공하는 단계를 포함한다. 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다. 저장 뱅크 도메인들은 별도로 전력 제어될 수도 있다.
하나 이상의 어플리케이션 사용 요건들은 어플리케이션 저장 사이즈 요건, 어플리케이션 인터페이스 대역폭 요건, 또는 어플리케이션 인터페이스 레이턴시 요건 중 적어도 하나를 포함할 수도 있다. 액세스는 복수의 인터페이스 그룹들과 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들에 의해 제공될 수도 있다. 복수의 라우터들은 어플리케이션 인터페이스 회로들과 복수의 저장 뱅크 도메인들 사이에 위치될 수도 있다. 복수의 라우터들의 각각의 라우터는, 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함하는 저장 뱅크들의 대응하는 세트에 인접하게 위치될 수도 있다. 특정 양태들에 따르면, 메모리 디바이스에 액세스하기 위한 방법은 저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하는 단계를 더 포함할 수도 있다.
본 개시의 일 양태에 있어서, 메모리 디바이스에 액세스하기 위한 장치는 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하는 수단, 하나 이상의 어플리케이션 사용 요건들에 기초하여, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하는 수단, 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하는 수단, 및 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스를 제공하는 수단을 포함한다. 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다. 특정 양태들에 따르면, 메모리 디바이스에 액세스하기 위한 장치는 저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하는 수단, 및 저장 뱅크 도메인들을 별도로 전력 제어하는 수단을 더 포함할 수도 있다.
본 개시의 일 양태에 있어서, 메모리 디바이스에 액세스하기 위한 장치는 적어도 하나의 프로세서를 포함하고, 적어도 하나의 프로세서는 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하고, 하나 이상의 어플리케이션 사용 요건들에 기초하여, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하고, 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하고, 그리고 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스를 제공하도록 구성된다. 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다.
본 개시의 일 양태에 있어서, 프로세서 판독가능 저장 매체는 하나 이상의 명령들을 가지며, 하나 이상의 명령들은, 적어도 하나의 프로세싱 회로에 의해 실행될 경우, 적어도 하나의 프로세싱 회로로 하여금 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하게 하고, 하나 이상의 어플리케이션 사용 요건들에 기초하여, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하게 하고, 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하게 하고, 그리고 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스를 제공하게 한다. 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다.
도 1 은 장치의 동작을 제어하도록 구성되는 프로세싱 회로를 포함한 장치를 도시한다.
도 2 는 N상 극성 인코딩된 데이터 링크를 채용하는 장치에 대한 시스템 아키텍처를 도시한다.
도 3 은 장치의 특정 양태들을 도시한 블록 스키매틱이다.
도 4 는 디바이스 내의 모듈들/회로들/프로세서들의 기능적 구성을 도시한 다이어그램이다.
도 5 는 메모리 공간에서의 메모리 저장 뱅크들의 구성을 도시한 다이어그램이다.
도 6 은 본 개시에 따른 메모리를 구성하기 위한 예시적인 논리 토폴로지를 도시한 다이어그램이다.
도 7 은 본 개시에 따른 메모리를 구성하기 위한 예시적인 물리 토폴로지를 도시한 다이어그램이다.
도 8 은 메모리 공간의 구성을 도시한 다이어그램이다.
도 9 는 본 개시의 양태들에 따른 라우터를 도시한 다이어그램이다.
도 10 은 메모리를 구성하기 위한 물리 토폴로지를 도시한 다이어그램이다.
도 11 은 메모리 디바이스에 액세스하는 방법을 도시한 플로우차트이다.
도 12 는 본 개시의 하나 이상의 양태들에 따른 메모리 디바이스에 액세스하는 것에 관련된 동작들을 지원하도록 구성된 장치의 도면이다.
이제, 다양한 양태들이 도면들을 참조하여 설명된다. 다음의 설명에 있어서, 설명의 목적들로, 다수의 특정 상세들이 하나 이상의 양태들의 철저한 이해를 제공하기 위해 기술된다. 하지만, 그러한 양태(들)는 이들 특정 상세들없이도 실시될 수도 있음이 명백할 수도 있다.
본 출원에서 사용되는 바와 같이, 용어들 "컴포넌트", "모듈", "시스템" 등은, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어, 또는 실행 중인 소프트웨어와 같지만 이에 한정되지 않는 컴퓨터 관련 엔터티를 포함하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 구동하는 프로세스, 프로세서, 오브젝트, 실행 가능물 (executable), 실행 스레드 (thread of execution), 프로그램, 및/또는 컴퓨터일 수도 있지만, 이에 한정되지 않는다. 예시로서, 컴퓨팅 디바이스 상에서 구동하는 어플리케이션 및 컴퓨팅 디바이스 양자는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 하나의 컴퓨팅 디바이스에 국부화되고/되거나 2 이상의 컴퓨팅 디바이스들 사이에서 분산될 수도 있다. 부가적으로, 이들 컴포넌트들은 다양한 데이터 구조들이 저장된 다양한 컴퓨터 판독가능 매체들로부터 실행할 수 있다. 컴포넌트들은 로컬 및/또는 원격 프로세스들에 의해, 예컨데, 로컬 시스템에서, 분산 시스템에서 및/또는 신호에 의한 다른 시스템들과의 인터넷과 같은 네트워크에 걸쳐 다른 컴포넌트와 상호작용하는 하나의 컴포넌트로부터의 데이터와 같은 하나 이상의 데이터 패킷들을 갖는 신호에 따라 통신할 수도 있다.
더욱이, 용어 "또는" 은 배타적 "또는" 보다는 포괄적 "또는" 을 의미하도록 의도된다. 즉, 달리 명시되거나 문맥으로부터 분명하지 않으면, 어구 "X 는 A 또는 B 를 채용한다" 는 자연적인 포괄적 치환들 중 임의의 치환을 의미하도록 의도된다. 즉, 어구 "X 는 A 또는 B 를 채용한다" 는 다음의 예들 중 임의의 것에 의해 만족된다: X 는 A 를 채용한다; X 는 B 를 채용한다; 또는 X 는 A 및 B 양자를 채용한다. 부가적으로, 본 출원 및 첨부된 청구항들에서 사용되는 바와 같은 관사들 ("a" 및 "an") 은, 달리 명시되거나 문맥으로부터 단수 형태로 지향되는 것이 분명하지 않으면 일반적으로 "하나 이상" 을 의미하도록 해석되어야 한다.
용어들 "컴퓨팅 디바이스" 및 "모바일 디바이스" 는 서버들, 개인용 컴퓨터들, 스마트폰들, 셀룰러 전화기들, 태블릿 컴퓨터들, 랩탑 컴퓨터들, 넷북들, 울트라북들, 팜탑 컴퓨터들, 개인용 데이터 보조기들 (PDA들), 무선 전자 메일 수신기들, 멀티미디어 인터넷 가능식 셀룰러 전화기들, 글로벌 포지셔닝 시스템 (GPS) 수신기들, 무선 게이밍 제어기들, 및 프로그래밍가능 프로세서를 포함하는 유사한 개인용 전자 디바이스들 중 임의의 하나 또는 그 모두를 지칭하도록 본 명세서에서 상호 대체가능하게 사용된다. 다양한 양태들은 한정된 리소스들 (예를 들어, 프로세싱 전력, 배터리 등) 을 갖는 모바일 디바이스들 (예를 들어, 스마트폰들, 랩탑 컴퓨터들 등) 에서 특히 유용하지만, 그 양태들은, 개선된 프로세서 성능 및 감소된 에너지 소비로부터 이익을 얻을 수도 있는 임의의 컴퓨팅 디바이스에서 일반적으로 유용하다.
용어 "멀티코어 프로세서" 는, 프로그램 명령들을 판독 및 실행하도록 구성된 2 이상의 독립적인 프로세싱 유닛들 또는 코어들 (예를 들어, 중앙 프로세싱 유닛 (CPU) 코어들 등) 을 포함하는 단일의 집적회로 (IC) 칩 또는 칩 패키지를 지칭하도록 본 명세서에서 사용된다. 용어 "멀티프로세서" 는, 프로그램 명령들을 판독 및 실행하도록 구성된 2 이상의 프로세싱 유닛들을 포함하는 시스템 또는 디바이스를 지칭하도록 본 명세서에서 사용된다.
용어 "시스템 온 칩" (SOC) 은, 단일의 기판 상에 집적된 다중의 리소스들 및/또는 프로세서들을 포함하는 단일의 집적회로 (IC) 칩을 지칭하도록 본 명세서에서 사용된다. 단일의 SOC 는 디지털, 아날로그, 혼합된 신호, 및 무선 주파수 기능들을 위한 회로부를 포함할 수도 있다. 단일의 SOC 는 또한 임의의 수의 범용 및/또는 특수화 프로세서들 (디지털 신호 프로세서들, 모뎀 프로세서들, 비디오 프로세서들 등), 메모리 블록들 (예를 들어, ROM, RAM, 플래시 등) 및 리소스들 (예를 들어, 타이머들, 전압 조절기들, 오실레이터들 등) 을 포함할 수도 있으며, 이들 중 임의의 것 또는 그 모두는 하나 이상의 코어들에 포함될 수도 있다.
다수의 상이한 타입들의 메모리들 및 메모리 기술들이 장래에 이용가능하거나 고려되며, 이들 모두는 다양한 양태들로의 사용에 적합하다. 그러한 메모리 기술들/타입들은 상변화 랜덤 액세스 메모리 (PRAM), 동적 랜덤 액세스 메모리 (DRAM), 정적 랜덤 액세스 메모리 (SRAM), 비휘발성 랜덤 액세스 메모리 (NV RAM), 의사정적 랜덤 액세스 메모리 (PSRAM), 더블 데이터 레이트 (DDR) 동기식 동적 랜덤 액세스 메모리 (SDRAM), 및 당업계에 공지된 다른 랜덤 액세스 메모리 (RAM) 및 판독 전용 메모리 (ROM) 기술들을 포함한다. DDR SDRAM 메모리는 DDR 타입 1 SDRAM 메모리, DDR 타입 2 SDRAM 메모리, DDR 타입 3 SDRAM 메모리, 또는 DDR 타입 4 SDRAM 메모리일 수도 있다. 상기 서술된 메모리 기술들 각각은, 예를 들어, 컴퓨터 또는 다른 디지털 전자 디바이스에서 또는 그에 의한 사용을 위해 명령들, 프로그램들, 제어 신호들, 및/또는 데이터를 저장하기에 적합한 엘리먼트들을 포함한다. 개별 타입의 메모리, 인터페이스, 표준 또는 메모리 기술에 관련된 용어 및/또는 기술적 상세들에 대한 임의의 참조들은, 오직 예시적인 목적일 뿐, 청구항 언어로 명확하게 기재되지 않으면 청구항들의 범위를 특정 메모리 시스템 또는 기술로 한정하도록 의도되지 않는다.
최근, 모바일 컴퓨팅 디바이스 아키텍처들은 복잡도가 증가하였고, 이제, 일반적으로, 다중의 프로세서 코어들, 시스템 온 칩들 (SOC들), 코-프로세서들 (co-processors), 전용 프로세서들을 포함하는 기능 모듈들 (예를 들어, 통신 모뎀 칩들, GPS 수신기들 등), 복잡한 메모리 시스템들, 복잡한 전기 상호접속부들 (예를 들어, 버스들 및/또는 패브릭들), 및 복잡한 그리고 전력 집중적인 소프트웨어 어플리케이션들 (예를 들어, 비디오 스트리밍 어플리케이션들 등) 을 실행하는 다수의 다른 리소스들을 포함한다. 복잡도에 있어서의 이러한 증가로, 새로운 메모리 관리 솔루션들이, 모바일 디바이스들의 계산상의 및 전력 관리 성능을 개선하기 위해 요구된다.
현재의 디바이스들은 다수의 상이한 통신 프로토콜들 (머신 대 머신 및 머신 대 휴먼 프로토콜들을 포함) 을 활용하고, 따라서, 고도의 병렬성, 즉, 상이한 통신 프로토콜들이 다중의 진입로(avenue)들을 통해 메모리 공간에 동시에 액세스하기 위한 능력을 필요로 한다. 이는 수개의 통신 프로토콜들 사이의 차단되지 않은 상호작용 및/또는 데이터 전송을 요구한다. 다수의 데이터가 전용 저장 칩들 (예를 들어, DRAM, 플래시 등) 에 저장된다. 별도의 칩들의 본성으로 인해, 데이터는 수개의 기능 칩들 중에서 상호 동작하도록 설계된 인터페이스들을 통해 액세스된다. 고도의 동시 액세스 요건들로 인해, 인터페이스는 종종 병목되고, 계속 개정된다 (예를 들어, DDR, DDR2, DDR3, DDR4, LP DDR, eMMC, 직렬 플래시, 및 RAMBUS).
본 개시의 특정 양태들은, 멀티-프로토콜 통신 디바이스들의 인터페이싱 및 액세스 능률화를 위해 높은 자유도를 허용하는 저장 구성에 관한 것이다. 일 양태에 있어서, 인터페이싱 전략은 "구현 경계" 를 넘어 저장 기능에 고유한 내부의 다수의 자유도들을 노출하도록 조작된다. 이는 전력 및 집합된 플랫폼 구현의 관점에서 더 적은 비용들로 더 높은 동시성을 허용한다. 따라서, 더 많은 기능들이 더 적은 전체 주울들에 대해 수행될 수도 있다.
저장 구성은 통신 IC 의 필요성들을 서빙하기 위해 3차원에서 양자화될 수도 있다. 일 양태는 단위 대기 시간 당, 핀 당 인터페이스 액세스 병렬성을 포함할 수도 있다. 예를 들어, 다중의 인터페이스들이 메모리의 부분들 (액세스 도메인들) 에 병렬로 동시에 액세스할 수도 있다. 액세스는 메모리 사이즈 요건, 대역폭 요건, 및/또는 레이턴시 요건과 같은 인터페이스 사용 요건들에 기초할 수도 있다. 다른 양태는 전력 세그먼트화를 포함할 수도 있다. 예를 들어, 액세스 도메인들은, 디바이스 어플리케이션에 의해 지시된 순간에 사용되는 우세한 케이스에 대해 동적으로 최적화되는 다중의 서브-조절된 도메인들을 허용하도록 별도로 전력 제어될 수도 있다.
저장 구성은 공유된 전력 도메인들 및 인터페이스 번들들에서의 집합된 저장 뱅크들; 참조의 국부성과 레이턴시를 트레이드-오프하기 위해 저장 셀들의 임의의 워드로의 범위를 허용하기 위해 찾는 경로 및 동시 메모리 액세스를 지원하는데 필요한 격리를 허용하는 신속 스위칭 네트워크들인 라우터들 (마이크로-라우터들); 및 적당한 계산을 위한 동시 및 무경합 액세스를 허용하는 다중의 인터페이스 포트들을 갖는 공간적으로 매핑된 의사 캐시 구현들을 추가로 제공할 수도 있다.
본 발명의 특정 양태들은 전화기들, 모바일 컴퓨팅 디바이스들, 어플라이언스들, 자동차 전자기기들, 항공전자 시스템들 등과 같은 디바이스들의 서브컴포넌트들을 포함할 수도 있는 전자 컴포넌트들 사이에 배치된 통신 링크들에 적용가능할 수도 있다. 도 1 을 참조하면, 예를 들어, 장치 (100) 는 장치 (100) 의 동작을 제어하도록 구성되는 프로세싱 회로 (102) 를 포함할 수도 있다. 프로세싱 회로 (102) 는 소프트웨어 어플리케이션들 및 제어 로직 회로들 그리고 장치 (100) 내의 다른 디바이스들에 액세스하고 실행할 수도 있다. 일 예에 있어서, 장치 (100) 는 무선 액세스 네트워크 (RAN), 코어 액세스 네트워크, 인터넷 및/또는 다른 네트워크와 무선 주파수 (RF) 통신 트랜시버 (106) 를 통해 통신하는 무선 통신 디바이스를 포함할 수도 있다. RF 통신 트랜시버 (106) 는 프로세싱 회로 (102) 에 동작가능하게 커플링될 수도 있다. 프로세싱 회로 (102) 는 주문형 집적 회로 (ASIC) (108) 와 같은 하나 이상의 IC 디바이스들을 포함할 수도 있다. ASIC (108) 는 하나 이상의 프로세싱 디바이스들, 로직 회로들 등을 포함할 수도 있다. 프로세싱 회로 (102) 는, 프로세싱 회로 (102) 에 의해 실행될 수도 있는 명령들 및 데이터를 유지할 수도 있는 프로세서 판독가능 저장부 (112) 를 포함하고/하거나 그 프로세서 판독가능 저장부 (112) 에 커플링될 수도 있다. 프로세싱 회로 (102) 는, 무선 디바이스의 저장부 (112) 에 상주하는 소프트웨어 모듈들의 실행을 지원 및 가능케 하는 어플리케이션 프로그래밍 인터페이스 (API) (110) 계층 및 오퍼레이팅 시스템 중 하나 이상에 의해 제어될 수도 있다. 저장부 (112) 는 판독 전용 메모리 (ROM) 또는 랜덤 액세스 메모리 (RAM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 플래시 메모리 디바이스, 또는 프로세싱 시스템들 및 컴퓨팅 플랫폼들에서 사용될 수 있는 임의의 메모리 디바이스를 포함할 수도 있다. 프로세싱 회로 (102) 는, 장치 (100) 를 구성 및 동작시키기 위해 사용된 동작 파라미터들 및 다른 정보를 유지할 수 있는 로컬 데이터베이스 (114) 를 포함하고/하거나 로컬 데이터베이스 (114) 에 액세스할 수도 있다. 로컬 데이터베이스 (114) 는 데이터베이스 모듈/회로/프로세서 또는 서버, 플래시 메모리, 자기 매체들, EEPROM, 광학 매체들, 테이프, 소프트 또는 하드 디스크 등등 중 하나 이상을 사용하여 구현될 수도 있다. 프로세싱 회로는 또한, 다른 컴포넌트들 중, 안테나 (122), 디스플레이 (124), 버튼 (128) 및 키패드 (126) 와 같은 오퍼레이터 제어부들과 같은 외부 디바이스들에 동작가능하게 커플링될 수도 있다.
도 2 는 무선 모바일 디바이스, 모바일 전화기, 모바일 컴퓨팅 시스템, 무선 전화기, 노트북 컴퓨터, 태블릿 컴퓨팅 디바이스, 미디어 플레이어, 게이밍 디바이스 등과 같은 장치 (200) 의 특정 양태들을 도시한 블록 스키매틱이다. 장치 (200) 는, 통신 링크 (220) 를 통해 데이터 및 제어 정보를 교환하는 복수의 IC 디바이스들 (202 및 230) 을 포함할 수도 있다. 통신 링크 (220) 는, 서로 매우 근접하게 위치되거나 장치 (200) 의 상이한 부분들에서 물리적으로 위치될 수도 있는 IC 디바이스들 (202 및 230) 을 접속시키기 위해 사용될 수도 있다. 일 예에 있어서, 통신 링크 (220) 는, IC 디바이스들 (202 및 230) 을 반송하는 칩 캐리어, 기판 또는 회로 보드 상에 제공될 수도 있다. 다른 예에 있어서, 제 1 IC 디바이스 (202) 는 플립폰의 키패드 섹션에 위치될 수도 있는 한편, 제 2 IC 디바이스 (230) 는 플립폰의 디스플레이 섹션에 위치될 수도 있다. 통신 링크 (220) 의 일부는 케이블 또는 광학 커넥션을 포함할 수도 있다.
통신 링크 (220) 는 다중의 채널들 (222, 224 및 226) 을 포함할 수도 있다. 하나 이상의 채널 (226) 은 양방향성일 수도 있고, 하프-듀플렉스 모드 및/또는 풀-듀플렉스 모드에서 동작할 수도 있다. 하나 이상의 채널들 (222, 224) 은 단방향성일 수도 있다. 통신 링크 (220) 는 비대칭이어서, 일 방향에서 더 높은 대역폭을 제공할 수도 있다. 본 명세서에서 설명된 일 예에 있어서, 제 1 통신 채널 (222) 은 순방향 링크 (222) 로서 지칭될 수도 있는 한편, 제 2 통신 채널 (224) 은 역방향 링크 (224) 로서 지칭될 수도 있다. 제 1 IC 디바이스 (202) 는 호스트, 마스터 및/또는 송신기로서 지정될 수도 있는 한편, 제 2 IC 디바이스 (230) 는 클라이언트, 슬레이브 및/또는 수신기로서 지정될 수도 있더라도, 양자의 IC 디바이스들 (202 및 230) 은 통신 링크 (220) 상에서 송신 및 수신하도록 구성된다. 일 예에 있어서, 순방향 링크 (222) 는 제 1 IC 디바이스 (202) 로부터 제 2 IC 디바이스 (230) 로 데이터를 통신할 경우 더 높은 데이터 레이트에서 동작할 수도 있는 한편, 역방향 링크 (224) 는 제 2 IC 디바이스 (230) 로부터 제 1 IC 디바이스 (202) 로 데이터를 통신할 경우 더 낮은 데이터 레이트에서 동작할 수도 있다.
IC 디바이스들 (202 및 230) 은 각각, 프로세서 또는 다른 프로세싱 및/또는 컴퓨팅 회로 또는 디바이스 (206, 236) 를 포함할 수도 있다. 일 예에 있어서, 제 1 IC 디바이스 (202) 는 무선 트랜시버 (204) 및 안테나 (214) 를 통한 무선 통신을 유지하는 것을 포함하여 장치 (200) 의 코어 기능들을 수행할 수도 있는 한편, 제 2 IC 디바이스 (230) 는 디스플레이 제어기 (232) 를 관리 또는 동작시키는 사용자 인터페이스를 지원할 수도 있고, 카메라 제어기 (234) 를 사용하여 카메라 또는 비디오 입력 디바이스의 동작들을 제어할 수도 있다. IC 디바이스들 (202 및 230) 중 하나 이상에 의해 지원된 다른 특징부들은 키보드, 음성 인식 컴포넌트, 및 다른 입력 또는 출력 디바이스들을 포함할 수도 있다. 디스플레이 제어기 (232) 는, 액정 디스플레이 (LCD) 패널, 터치-스크린 디스플레이, 표시자 등과 같은 디스플레이를 지원하는 회로들 및 소프트웨어 구동기들을 포함할 수도 있다. 저장 매체들 (208 및 238) 은, 개별 프로세싱 회로들 (206 및 236), 및/또는 IC 디바이스들 (202 및 230) 의 다른 컴포넌트들에 의해 사용된 명령들 및 데이터를 유지하도록 적응된 일시적인 및/또는 비-일시적인 저장 디바이스들을 포함할 수도 있다. 각각의 프로세싱 회로 (206, 236) 및 그 대응하는 저장 매체들 (208 및 238) 과 다른 모듈들/프로세서들 및 회로들 간의 통신은 각각 하나 이상의 버스들 (212 및 242) 에 의해 용이하게 될 수도 있다.
역방향 링크 (224) 는 순방향 링크 (222) 와 동일한 방식으로 동작될 수도 있다. 순방향 링크 (222) 및 역방향 링크 (224) 는 비견할만한 속도들 또는 상이한 속도들로 송신 가능할 수도 있으며, 여기서, 속도는 데이터 전송 레이트 및/또는 클록킹 (clocking) 레이트로서 표현될 수도 있다. 순방향 및 역방향 데이터 레이트들은 실질적으로 동일할 수도 있거나, 또는 어플리케이션에 의존하여 크기의 차수들만큼 상이할 수도 있다. 일부 어플리케이션들에 있어서, 단일의 양방향 링크 (226) 가 제 1 IC 디바이스 (202) 와 제 2 IC 디바이스 (230) 간의 통신을 지원할 수도 있다. 순방향 링크 (222) 및/또는 역방향 링크 (224) 는, 예를 들어, 순방향 및 역방향 링크들 (222 및 224) 이 동일한 물리적 커넥션들을 공유하고 하프-듀플렉스 방식으로 동작할 경우에 양방향 모드에서 동작하도록 구성가능할 수도 있다.
특정 예들에 있어서, 역방향 링크 (224) 는 동기화 목적으로, 제어 목적으로, 전력 관리를 용이하게 하기 위해 및/또는 설계의 단순화를 위해 순방향 링크 (222) 로부터 클록킹 신호를 도출한다. 클록킹 신호는, 순방향 링크 (222) 상에서 신호들을 송신하는데 사용된 심볼 클록의 주파수를 분주함으로써 획득되는 주파수를 가질 수도 있다. 심볼 클록은 순방향 링크 (222) 상에서 송신된 심볼들에 중첩되거나 그렇지 않으면 인코딩될 수도 있다. 심볼 클록의 도출물인 클록킹 신호의 사용은 송신기들 및 수신기들 (트랜시버들 (210, 240)) 의 신속한 동기화를 허용하고, 트레이닝 및 동기화를 가능케 하기 위한 프레이밍에 대한 필요성없이도 데이터 신호들의 신속한 시작 및 중지를 가능케 한다.
특정 예들에 있어서, 단일의 양방향 링크 (226) 는 제 1 프로세싱 디바이스 (제 1 IC 디바이스) (202) 와 제 2 프로세싱 디바이스 (제 2 IC 디바이스) (230) 간의 통신을 지원할 수도 있다. 일부 경우들에 있어서, 제 1 프로세싱 디바이스 (202) 및 제 2 프로세싱 디바이스 (230) 는, 동적 랜덤 액세스 메모리 (DRAM) 와 같은 메모리 디바이스들과 프로세싱 디바이스 사이에서 송신된 데이터, 어드레스 및 제어 신호들의 인코딩 및 디코딩을 제공한다. 일 예에 있어서, 버스들 (212 및/또는 242) 중 하나 이상은 다양한 인코딩 기법들 중 하나를 사용한 DRAM 으로의 액세스를 제공할 수도 있다.
도 3 은 본 개시의 다양한 양태들을 구현하기에 적합한 시스템 온 칩 (SOC) (300) 에서의 예시적인 컴포넌트들 및 상호접속부들을 도시한다. SOC (300) 는 디지털 신호 프로세서 (DSP) (302), 모뎀 프로세서 (304), 그래픽스 프로세서 (306), 및 어플리케이션 프로세서 (308) 와 같은 다수의 이종 프로세서들을 포함할 수도 있다. 각각의 프로세서 (302, 304, 306, 308) 는 하나 이상의 코어들을 포함할 수도 있으며, 각각의 프로세서/코어는 다른 프로세서들/코어들에 독립적인 동작들을 수행할 수도 있다. 프로세서들 (302, 304, 306, 308) 은 (예를 들어, 단일의 기판, 다이, 집적된 칩 등 상에서) 서로 매우 근접하게 구성되어, 신호들이 오프-칩으로 이동하려면 가능한 것보다 훨씬 더 높은 주파수/클록 레이트에서 동작할 수도 있다. 코어들의 근접성은 또한 온-칩 메모리 및 리소스들 (예를 들어, 전압 레일) 의 공유뿐 아니라 코어들 간의 더 조정된 협력을 허용할 수도 있다.
SOC (300) 는 센서 데이터, 아날로그-디지털 변환물들, 무선 데이터 송신물들을 관리하기 위한 그리고 다른 특수화된 동작들 (예를 들어, 고화질 비디오를 디코딩하는 것, 비디오 프로세싱 등) 을 수행하기 위한 아날로그 회로부 및 커스텀 회로부 (314) 를 포함할 수도 있다. SOC (300) 는 전압 조절기들, 오실레이터들, 위상 록킹 루프들, 주변기기 브리지들, 데이터 제어기들, 시스템 제어기들, 액세스 포트들, 타이머들, 및 컴퓨팅 디바이스 상에서 구동하는 프로세서들 및 소프트웨어 클라이언트들을 지원하는데 사용되는 다른 유사한 컴포넌트들과 같은 다양한 시스템 컴포넌트들 및 리소스들 (316) 을 더 포함할 수도 있다. 시스템 컴포넌트들 및 리소스들 (316) 및 커스텀 회로부 (314) 는 또한, 카메라들, 전자 디스플레이들, 무선 통신 디바이스들, 외부 메모리 칩들 등과 같이 주변기기 디바이스들과 인터페이싱하기 위한 회로부를 포함할 수도 있다.
SOC (300) 는 유니버셜 직렬 버스 (USB) 제어기 (324), 및 하나 이상의 메모리 제어기들 (326) 을 더 포함할 수도 있다. SOC (300) 는 또한, 클록 (318) 및 전압 조절기 (320) 와 같이 SOC (300) 외부에서 리소스들과 통신하기 위한 입력/출력 모듈/회로/프로세서 (도시 안됨) 을 포함할 수도 있으며, 이들 각각은 내부 SOC 컴포넌트들 중 2 이상의 컴포넌트들에 의해 공유될 수도 있다.
프로세서들 (302, 304, 306, 308) 은 상호접속부/버스 모듈/회로/프로세서 (330) 를 통해 USB 제어기 (324), 메모리 제어기 (326), 시스템 컴포넌트들 및 리소스들 (316), 커스텀 회로부 (314), 및 다른 시스템 컴포넌트들에 상호접속될 수도 있으며, 이 상호접속부/버스 모듈/회로/프로세서 (330) 는 재구성가능 로직 게이트들의 어레이를 포함하고/하거나 버스 아키텍처를 구현할 수도 있다. 일 양태에 있어서, 상호접속부/버스 모듈/회로/프로세서 (330) 는 도 2 의 버스 (212) 및/또는 버스 (242) 와 등가일 수도 있다. 통신은 또한, 고성능 네트워크 온 칩 (NoC들) 과 같은 진보한 상호접속부들에 의해 제공될 수도 있다.
메모리 제어기 (326) 는 메모리 (328) 로의 및 그로부터의 데이터의 플로우를 관리하도록 구성된 특수화된 하드웨어 모듈/회로/프로세서일 수도 있다. 일 양태에 있어서, 메모리 제어기 (326) 는, 메모리 위치에 대응하는 로우 및 컬럼을 선택하는 것, 데이터를 판독하거나 메모리 위치에 데이터를 기입하는 것 등과 같이 메모리 (328) 와 인터페이싱하기 위한 로직을 포함할 수도 있다.
다른 양태에 있어서, 라우터들 (340) 은 메모리 (328) 내에 내장될 수도 있다. 커스텀 회로부 (314), 시스템 컴포넌트들 및 리소스들 (316), 및/또는 메모리 제어기 (326) 를 통해, 라우터들 (340) 은 어플리케이션 인터페이스 회로들과 메모리 (328) 의 메모리 위치들 (예를 들어, 저장 뱅크 도메인들) 간의 동시 액세스 (데이터 플로우) 를 관리할 수도 있다. 예를 들어, 라우터들 (340) 은 제 1 인터페이스 그룹의 하나의 어플리케이션 인터페이스 회로가 메모리 (328) 의 하나의 메모리 위치에 액세스하게 하는 한편, 제 2 인터페이스 그룹의 다른 어플리케이션 인터페이스 회로는 메모리 (328) 의 다른 메모리 위치에 액세스하게 한다. 일 양태에 있어서, 라우터들 (340) 의 각각은 메모리 위치들의 대응하는 세트에 인접하게 위치될 수도 있다. 이에 따라, 저 레이턴시 요건을 갖는 데이터는 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 메모리 위치로, 메모리 위치로의 최저 레이턴시 액세스를 제공하는 라우터 (340) 를 통해 전송될 수도 있다. 라우터들 (340) 의 각각은, 메모리 위치에 대응하는 로우 및 컬럼을 선택하는 것, 데이터를 판독하거나 메모리 위치에 데이터를 기입하는 것 등과 같이 메모리 (328) 와 인터페이싱하기 위한 로직을 포함할 수도 있다.
도 4 는 디바이스 (400) 내의 모듈들/회로들/프로세서들의 기능적 구성을 도시한 다이어그램이다. 디바이스 (400) 는 정보를 저장하도록 구성된 정보 저장 모듈/회로/프로세서 (402) 를 포함할 수도 있다. 정보 저장 모듈/회로/프로세서 (402) 는 예를 들어 플래시 메모리, DRAM, DDR 메모리 등일 수도 있다. 디바이스 (400) 는 또한, 정보 저장 모듈/회로/프로세서 (402) 와 디바이스 (400) 의 다른 모듈들/회로들/프로세서들 사이에서 정보를 아카이빙 및/또는 취출하도록 구성된 모듈/회로/프로세서 (404) 를 포함할 수도 있다. 디바이스 (400) 는 또한, 보충/조절 모듈/회로/프로세서 (406) 및 에너지 저장/구배 모듈/회로/프로세서 (408) 와 같이 전력 제어/소비에 전용된 모듈들/회로들/프로세서들을 포함할 수도 있다. 멀티미디어 서브시스템 모듈/회로/프로세서 (410) 는 디스플레이 모듈/회로/프로세서, 카메라 모듈/회로/프로세서, 스피커 모듈/회로/프로세서, 마이크로폰 모듈/회로/프로세서, 햅틱스 모듈/회로/프로세서, 및 센서들 모듈/회로/프로세서와 같은 다수의 상이한 기술 컴포넌트들과 동작할 수도 있다. 통신 서비스 서브시스템 모듈/회로/프로세서 (420) 는 또한, GPS 모듈/회로/프로세서, 근거리장 통신 (NFC) 모듈/회로/프로세서, 무선 광역 네트워크 (WWAN) 모듈/회로/프로세서, 무선 로컬 영역 네트워크 (WLAN) 모듈/회로/프로세서, FM 모듈/회로/프로세서, 및 블루투스 모듈/회로/프로세서와 같은 다수의 상이한 기술 컴포넌트들과 동작할 수도 있다. 멀티미디어 서브시스템 모듈/회로/프로세서 (410) 및 통신 서비스 서브시스템 모듈/회로/프로세서 (420) 아래에, 변환 모듈/회로/프로세서 (422) 및 상호작용 모듈/회로/프로세서 (424) 가 놓일 수도 있다. 멀티미디어 서브시스템 모듈/회로/프로세서 (410) 및 통신 서비스 서브시스템 모듈/회로/프로세서 (420) 위에, 이종 계산 모듈/회로/프로세서 (426) 및 보안 문제들 모듈/회로/프로세서 (428) 가 놓일 수도 있다.
도 4 에 도시된 바와 같이, 다중의 기술 컴포넌트들 (예를 들어, 디스플레이 모듈/회로/프로세서, 카메라 모듈/회로/프로세서, 스피커 모듈/회로/프로세서, 마이크로폰 모듈/회로/프로세서, GPS 모듈/회로/프로세서, NFC 모듈/회로/프로세서, WWAN 모듈/회로/프로세서, WLAN 모듈/회로/프로세서, 및/또는 FM 모듈/회로/프로세서) 은 데이터/코드를 저장 및/또는 취출하기 위하여 공통 정보 저장 모듈/회로/프로세서 (402) 에 액세스하는 것 (파선 화살표들에 의해 표기됨) 이 필요할 수도 있다. 하지만, 이전의 시스템들은 상이한 기술 컴포넌트들이 긴 지연과 함께 고비용으로 공통 정보 저장 모듈/회로/프로세서 (402) 에 액세스하게 한다. 이에 따라, 다중의 기술 컴포넌트들이 감소된 비용 및 더 짧은 지연으로 공통 정보 저장부에 동시에 액세스하게 하는 시스템이 필요하다.
도 5 는 메모리 공간 (500) 에서의 메모리 저장 뱅크들 (어레이들) 의 구성을 도시한 다이어그램이다. 저장 뱅크들은 공통 데이터 인터페이스 (502) 및 공통 어드레스 인터페이스 (504) 를 통해 상이한 기술 컴포넌트들에 의해 액세스될 수도 있다. 도 5 에 도시된 바와 같이, 공통 데이터 인터페이스 (502) 및 공통 어드레스 인터페이스 (504) 는 모든 저장 뱅크들에 액세스하도록 사용될 수도 있다.
다중의 어플리케이션들 (예를 들어, 다중의 기술 컴포넌트들) 이 메모리에 동시에 액세스하길 원할 수도 있는 병렬 시스템에 있어서, 다중의 어플리케이션들이 메모리에 액세스할 수 있는 유일한 가용 진입로 (도 5 에서 "단일 자유도" (506) 로서 지칭됨) 인 단일 인터페이스 (공통 데이터 인터페이스 (502)/어드레스 인터페이스 (504)) 로 인해 병목 (510) 이 발생한다. 따라서, 다른 어플리케이션이 단일 인터페이스를 통해 메모리에 이미 액세스하고 있으면, 어플리케이션은 메모리에 액세스하기 위해 대기해야 한다. 메모리 내에서는, 메모리의 상이한 저장 뱅크들이 별도로 액세스되는 것이 가능하다는 점에 있어서 "수개의 내부 자유도들" (508) 이 이용가능하다. 하지만, 비록 상이한 어플리케이션들이 각각 상이한 저장 뱅크들을 사용하길 원하더라도, 상이한 어플리케이션들은 단일 인터페이스를 통과하여 상이한 저장 뱅크들에 액세스하도록 강제된다. 따라서, 다중의 액세스 시도들을 핸들링하기 위한 단일 인터페이스의 능력에 의해 액세스가 제한된다. 단일 인터페이스 병목 (510) 을 극복하기 위하여, 이전의 솔루션은, 메모리에 액세스하길 원하는 다중의 어플리케이션들에 대해 수용하기 위한 단일 인터페이스의 프로세싱 속도를 증가하는 것이다. 하지만, 이전의 솔루션은, 프로세싱 속도의 증가는 단일 인터페이스가 더 많은 전력을 소모하는 비용을 가져오기 때문에 문제가 있다.
상기 서술된 문제들을 극복하기 위하여, 본 개시의 양태들은 메모리를 구성하기 위한 대안적인 방식을 제공한다. 도 6 은 본 개시에 따른 메모리를 구성하기 위한 예시적인 논리 토폴로지를 도시한 다이어그램 (600) 이다. 메모리는 DDR 뱅크0 (602(0)), DDR 뱅크1 (602(1)), 및 DDR 뱅크2 (602(3)) 내지 DDR 뱅크N (602(N)) 을 포함하는 DDR 메모리를 포함할 수도 있다. 메모리는 추가로, 플래시 뱅크0 (604(0)), 및 플래시 뱅크1 (604(1)) 내지 플래시 뱅크N (604(N)) 을 포함하는 플래시 메모리를 포함할 수도 있다. 메모리 뱅크들로의 그리고 메모리 뱅크들로부터의 통신은 메모리 NoC (606) 와 같은 진보된 상호접속부에 의해 제공될 수도 있다. 다수의 인터페이스들, 예컨대, 직렬화기/역직렬화기 (SERDES) 인터페이스들 (608a, 608b, 610a, 및 610b) 은 메모리 뱅크들 중 하나 이상에 액세스하기 위해 메모리 NoC (606) 와 동작할 수도 있다. 일 예에 있어서, 어플리케이션은 SERDES 인터페이스 (608a 또는 608b) 를 사용하여 장거리 채널을 통해 메모리 뱅크들 중 하나 이상에 액세스할 수도 있다. 다른 예에 있어서, 어플리케이션은 SERDES 인터페이스 (610a 또는 610b) 를 사용하여 단거리 채널을 통해 메모리 뱅크들 중 하나 이상에 액세스할 수도 있다. DDR 액세스 채널 (612) 이 또한 메모리 뱅크들 중 하나 이상에 액세스하기 위해 메모리 NoC (606) 와 동작하도록 제공될 수도 있다.
도 7 은 본 개시에 따른 메모리를 구성하기 위한 예시적인 물리 토폴로지를 도시한 다이어그램 (700) 이다. 도 7 에 도시된 바와 같이, 로직 다이 (702) 는 토폴로지의 하위 단부에 놓일 수도 있다. DRAM 다이 (704) 는 로직 다이 (702) 위에 위치될 수도 있다. 플래시 다이 (706) 는 DRAM 다이 (704) 위에 위치될 수도 있다. 마지막으로, 패키지 캡슐화물 (708) 이 플래시 다이 (706) 위에 놓일 수도 있다.
도 8 은 메모리 공간 (800) 의 구성을 도시한 다이어그램이다. 도 9 는 본 개시의 양태들에 따른 라우터 (900) 를 도시한 다이어그램이다. 라우터 (900) 는 다수의 트랜지스터들, 예를 들어, 제 1 트랜지스터 (902), 제 2 트랜지스터 (904), 제 3 트랜지스터 (906), 제 4 트랜지스터 (908), 제 5 트랜지스터 (910), 제 6 트랜지스터 (912), 제 7 트랜지스터 (914), 및 제 8 트랜지스터 (916) 를 포함할 수도 있다. 라우터 (900) 는 추가로, 라우터 구성 모듈/회로/프로세서 (920) 에 커플링된 라우터 제어 모듈/회로/프로세서 (918) 를 포함할 수도 있다. 라우터 제어 모듈/회로/프로세서 (918) 는 라우터 (900) 의 동작들을 제어하도록 구성될 수도 있다. 라우터 구성 모듈/회로/프로세서 (920) 는, 저장 뱅크/저장 뱅크 도메인과 어플리케이션 인터페이스 회로 간의 데이터의 라우팅에 관련된 구성 정보를 저장하도록 구성될 수도 있다. 라우터 (900) 는 또한, 제 1 전력 제어 모듈/회로/프로세서 (922) 및 제 2 전력 제어 모듈/회로/프로세서 (924) 를 포함할 수도 있다.
일 양태에 있어서, 트랜지스터들 (902 내지 916) 의 각각의 게이트는 라우터 제어 모듈/회로/프로세서 (918) 의 출력에 커플링된다. 제 1 트랜지스터 (902), 제 2 트랜지스터 (904), 제 3 트랜지스터 (906), 및 제 4 트랜지스터 (908) 의 각각의 드레인은 라우터 제어 모듈/회로/프로세서 (918) 의 입력 및 제 2 전력 제어 모듈/회로/프로세서 (924) 의 입력에 커플링된다. 제 2 전력 제어 모듈/회로/프로세서 (924) 의 출력은 업스트림 감지 모듈/회로/프로세서 (예를 들어, 도 8 에서의 감지 모듈/회로/프로세서 (804)) 에 커플링된다. 제 2 전력 제어 모듈/회로/프로세서 (924) 는 추가로, 전력 스위치 및 접지 노드에 커플링된다.
제 5 트랜지스터 (910), 제 6 트랜지스터 (912), 제 7 트랜지스터 (914), 및 제 8 트랜지스터 (916) 의 각각의 소스는 라우터 구성 모듈/회로/프로세서 (920) 의 출력 및 제 1 전력 제어 모듈/회로/프로세서 (922) 의 출력에 커플링된다. 제 1 전력 제어 모듈/회로/프로세서 (922) 의 입력은 업스트림 감지 모듈/회로/프로세서 (예를 들어, 감지 모듈/회로/프로세서 (804)) 에 커플링된다. 제 1 전력 제어 모듈/회로/프로세서 (922) 는 추가로, 전력 스위치 및 접지 노드에 커플링된다.
일 예로서, 라우터 (900) 는 다수의 어플리케이션 인터페이스 회로들 (예를 들어, 인터페이스 회로들 (812)) 과 4개의 저장 뱅크 도메인들 (예를 들어, 도 8 에서의 4개의 저장 뱅크 도메인들 (806)) 간의 동시 데이터 플로우를 관리하도록 구성될 수도 있다. 이에 따라, 트랜지스터들 (902 내지 916) 의 각각은 특정 저장 뱅크 도메인의 저장 뱅크들에 접속되어 그러한 저장 뱅크들과의 데이터 플로우 동작을 용이하게 할 수도 있다. 예를 들어, 제 1 트랜지스터 (902) 의 소스는 제 1 저장 뱅크 도메인 (뱅크 도메인 A) 의 저장 뱅크 출력들에 커플링되고 제 5 트랜지스터 (910) 의 드레인은 뱅크 도메인 A 의 저장 뱅크 입력들에 커플링되고; 제 2 트랜지스터 (904) 의 소스는 제 2 저장 뱅크 도메인 (뱅크 도메인 B) 의 저장 뱅크 출력들에 커플링되고 제 6 트랜지스터 (912) 의 드레인은 뱅크 도메인 B 의 저장 뱅크 입력들에 커플링되고; 제 3 트랜지스터 (906) 의 소스는 제 3 저장 뱅크 도메인 (뱅크 도메인 C) 의 저장 뱅크 출력들에 커플링되고 제 7 트랜지스터 (914) 의 드레인은 뱅크 도메인 C 의 저장 뱅크 입력들에 커플링되고; 그리고 제 4 트랜지스터 (908) 의 소스는 제 4 저장 뱅크 도메인 (뱅크 도메인 D) 의 저장 뱅크 출력들에 커플링되고 제 8 트랜지스터 (916) 의 드레인은 뱅크 도메인 D 의 저장 뱅크 입력들에 커플링된다.
도 10 은 메모리를 구성하기 위한 물리 토폴로지를 도시한 다이어그램 (1000) 이다. 도 10 에 도시된 바와 같이, 그 토폴로지는 저장 다이 (1002), 인터포저 (1004), 인터페이스 (IF)/로직 다이 (1006), 및 멀티-프로세서 모뎀 IC (1008) 를 포함한다. 저장 다이 (1002) 는 상호접속부들의 제 1 세트 (1012) 에 의해 인터포저 (1004) 에 커플링된다. 인터포저 (1004) 는 상호접속부들의 제 2 세트 (1014) 에 의해 IF/로직 다이 (1006) 및 멀티-프로세서 모뎀 IC (1008) 에 커플링된다. 상호접속부들의 제 3 세트 (1016) 는 IF/로직 다이 (1006) 및/또는 멀티-프로세서 모뎀 IC (1008) 를 다른 다이들 또는 인쇄 회로 보드 (PCB) (도시 안됨) 에 커플링시킬 수도 있다.
도 6 내지 도 10 을 참조하면, 본 개시는 상이한 어플리케이션들 (상이한 기술 컴포넌트들) 이 메모리에 액세스하기 위한 개별 인터페이스들을 갖도록 제공한다. 메모리에 액세스하는 상이한 어플리케이션들은 메모리가 상주하는 동일한 SOC 상에 (온-칩) 또는 메모리가 상주하는 SOC 와는 상이한 SOC들 상에 (오프-칩) 있을 수도 있다. 이에 따라, 어플리케이션들은, 어플리케이션이 상기 설명된 단일 인터페이스 방식에서와 같이 액세스 시도를 완료하길 대기해야 할 필요없이, 메모리 (저장 뱅크) 의 원하는 부분들에 그 개별 인터페이스들을 통해 액세스할 수도 있다.
도 8 을 참조하면, 메모리 공간 (800) 은 더 높은 자유도를 허용하는, 전력 제어 모듈들/회로들/프로세서들 (802), 감지 모듈들/회로들/프로세서들 (804), 메모리 저장 뱅크 도메인들 (806), 메모리 저장 뱅크들 (808), 및 라우터들 (810) 의 구성을 제공한다. 메모리 공간 (800) 을 둘러싸는 것은 메모리 저장 뱅크들 (808) 에 액세스하는 상이한 어플리케이션들을 나타내는 어플리케이션 인터페이스 회로들 (812) 이다.
도 8 에 도시된 바와 같이, 저장 뱅크들 (808) 은 저장 뱅크 도메인들 (액세스 도메인들) (806) 로 그룹화된다. 종래, 저장 뱅크들 (808) 의 각각은 로우 및 컬럼에 의해 식별/구성될 수도 있다. 이제, 본 개시는 저장 뱅크들 (808) 을 저장 뱅크 도메인들 (806) 로 그룹화함으로써 구성의 다른 계층을 구현한다. 저장 뱅크 도메인 (806) 은 상이한 어플리케이션 인터페이스 회로들 (812) 로의/로부터의 상이한 플로우들을 수용하기 위한 배타적 메모리 영역으로의 신속한 경로를 제공한다. 각각의 저장 뱅크 도메인 (806) 은, 배타적 메모리 영역으로의 신속한 액세스를 허용하는 라우터 (810) 에 연결된다. 라우터들 (810) 은 메모리 공간 (800) 에 내장되고, 상이한 어플리케이션 인터페이스 회로들 (812) 로의/로부터의 상이한 플로우들 모두에 대한 디-커플링된 동작을 허용한다. 라우터들 (810) 을 통해, 다중의 인터페이스 회로들 (812) 에는 높은 자유도가 제공되며, 즉, 인터페이스 회로들에는 원하는 메모리 저장 뱅크들 (808) 에 동시에/일제히 액세스하기 위한 다중의 진입로들이 제공된다. 따라서, 상기 설명된 단일 인터페이스 방식에서와 같은 부가적인 버퍼링이 방지된다.
일 양태에 있어서, 라우터들 (810) 은, 저장 뱅크 도메인들 (806) 의 각각을 주어진 어플리케이션 인터페이스 회로 (812) 에 동적으로 할당하기 위해 사용될 수 있는 구성가능 엘리먼트들이다. 어플리케이션 인터페이스 회로 (812) 의 저장 뱅크 도메인 (806) 으로의 근접성은 다수의 라우터 홉들에 의해 결정될 수도 있다. 어플리케이션 인터페이스 회로 (812) 로부터 저장 뱅크 도메인 (806) 까지의 거리는 총 레이턴시를 결정한다.
도 8 에 대하여 설명된 방식에 따르면, 상이한 어플리케이션 인터페이스 회로들 (812) 로부터의 작은 수의 트랜잭션들은 중첩하거나 공유된 메모리 액세스를 갖는다. 대체로, 메모리 저장 뱅크들 (808) 은 개별 어플리케이션 인터페이스 회로들 (812) 에 다소 배타적이다. 이에 따라, 스루풋이 증가될 수도 있고, 비용들이 저감될 수도 있으며, 총 전력 소비가 감소될 수도 있다.
본 개시의 일 양태에 따라, 도 8 을 다시 참조하면, 메모리 디바이스 내의 메모리 공간 (800) 은 다수의 저장 뱅크 도메인들 (액세스 도메인들) (806) 로 분할될 수도 있다. 더욱이, 메모리 공간 (800) 에 액세스하도록 의도하는 어플리케이션 인터페이스 회로들 (812) (상이한 어플리케이션들을 나타냄) 은 하나 이상의 어플리케이션 요건들에 기초하여 복수의 인터페이스 그룹들로 분류될 수도 있다. 하나 이상의 어플리케이션 요건들은 어플리케이션 저장 사이즈 요건, 어플리케이션 인터페이스 대역폭 요건, 및/또는 어플리케이션 인터페이스 레이턴시 요건을 포함할 수도 있다. 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹은 대응하는 저장 뱅크 도메인 (806) 에 할당될 수도 있다.
복수의 라우터들 (810) (예를 들어, 라우터들/마이크로-라우터들 (810a 내지 810f)) 은 복수의 인터페이스 그룹들과 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리한다. 그에 따라, 라우터들 (810) 은 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 (806) 간의 액세스를 제공한다. 특히, 라우터들 (810) 은, 다른 인터페이스 그룹의 다른 인터페이스 회로 (예를 들어, 인터페이스 회로 (812b)) 가 그 자신의 대응하는 저장 뱅크 도메인 (예를 들어, 저장 뱅크 도메인 (806b)) 에 액세스하는 것과 동일한 시간에 (동시에) 하나의 인터페이스 그룹의 하나의 인터페이스 회로 (예를 들어, 인터페이스 회로 (812a)) 가 그 대응하는 저장 뱅크 도메인 (예를 들어, 저장 뱅크 도메인 (806a)) 에 액세스하는 것을 허용한다.
복수의 라우터들 (810) 의 각각의 라우터는 저장 뱅크들의 대응하는 세트에 인접하게 위치된다. 저장 뱅크들의 대응하는 세트는 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함할 수도 있다. 예를 들어, 라우터 (810f) 는, 저장 뱅크 도메인 (806b) 및 저장 뱅크 도메인 (806c) 으로부터 저장 뱅크들 (808) 을 포함하는 저장 뱅크들의 세트에 인접하게 위치된다. 일 양태에 있어서, 저 레이턴시 요건을 갖는 데이터가 인터페이스 그룹의 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로 전송될 경우, 데이터는 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송될 수도 있다. 예를 들어, 저 레이턴시 요건을 갖는 인터페이스 회로 (812a) 로부터의 데이터가 저장 뱅크 도메인 (806c) 내의 저장 뱅크로 전송될 경우, 데이터는, 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터 (810) 를 통해 전송될 수도 있다.
추가의 양태에 있어서, 저장 뱅크 도메인들 (806) 은 전력 제어 모듈/회로/프로세서 (802) 를 통해 별도로 전력 제어된다. 이는, 특정 저장 뱅크 도메인에 대응하는 인터페이스 그룹의 사용 요건들에 따라 별도로 저장 뱅크 도메인들 (806) 의 각각을 동적으로 최적화하는 것을 허용한다.
일 양태에 있어서, 인터페이스 회로들 (812) 은 그룹화될 수도 있고, 할당된 저장 뱅크 도메인(들)을 결정할 수도 있고, 어느 라우터(들)가 시스템 구성 메시지를 통해 저장 뱅크 도메인(들)에 액세스할지를 학습할 수도 있다. 어플리케이션 인터페이스 회로 (812) 가 정보/데이터를 특정 저장 뱅크 (808) 에 저장하기 위해 라우터 (810) 로 전송할 경우, 어플리케이션 인터페이스 회로 (812) 는 어드레스 비트/토큰을 정보/데이터에 포함한다. 어드레스 비트/토큰은, 어플리케이션 인터페이스 회로 (812) 가 액세스하길 원하는 특정 저장 뱅크 도메인 (806) 및/또는 특정 저장 뱅크 (808) 를 식별할 수도 있다. 일단 정보/데이터가 라우터 (810) 에 의해 수신되면, 라우터 (810) 는 어드레스 비트/토큰을 통해 어느 저장 뱅크 (808) 에 정보/데이터를 저장할지를 결정할 수도 있다. 어드레스 비트/토큰이 라우터 (810) 에 의해 관리된 저장 뱅크 (808) 에 속하면, 라우터 (810) 는 정보/데이터를 적절한 저장 뱅크 (808) 에 저장할 것이다. 어드레스 비트/토큰이 라우터 (810) 에 의해 관리된 저장 뱅크에 속하지 않으면, 라우터 (810) 는 정보/데이터를 추가 핸들링을 위해 적절한 라우터에 포워딩할 것이다.
일 양태에 있어서, 어플리케이션 인터페이스 회로들 (812) 은, 어플리케이션 인터페이스 회로들에 의해 가장 자주 사용된 저장 뱅크 어드레스들이 일 라우터 홉을 사용하여 액세스될 수도 있도록 구성될 수도 있다. 어플리케이션 인터페이스 회로들에 의해 덜 자주 사용된 저장 뱅크 어드레스들은 다중의 라우터 홉들을 사용하여 액세스될 수도 있다.
도 11 은 메모리 디바이스 (예를 들어, 메모리 (328) 또는 메모리 공간 (800)) 에 액세스하는 방법을 도시한 플로우차트이다. 그 방법은 장치 (예를 들어, 장치 (100) 또는 SOC (300)) 에 의해 수행될 수도 있다.
1102 에서, 장치는 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할할 수도 있다. 일 양태에 있어서, 장치는 저장 뱅크 도메인들을 별도로 전력 제어할 수도 있다.
1104 에서, 장치는 하나 이상의 어플리케이션 사용 요건들에 기초하여, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들 (예를 들어, 인터페이스 회로들 (812)) 을 복수의 인터페이스 그룹들로 분류할 수도 있다. 하나 이상의 어플리케이션 사용 요건들은 어플리케이션 저장 사이즈 요건, 어플리케이션 인터페이스 대역폭 요건, 또는 어플리케이션 인터페이스 레이턴시 요건을 포함할 수도 있다.
1106 에서, 장치는 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당할 수도 있다.
1108 에서, 장치는 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스를 제공할 수도 있다. 일 양태에 있어서, 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다. 복수의 인터페이스 그룹들과 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들 (예를 들어, 라우터들 (340), 라우터들 (810), 또는 라우터 (900)) 에 의해 액세스가 제공될 수도 있다. 복수의 라우터들은 어플리케이션 인터페이스 회로들과 복수의 저장 뱅크 도메인들 사이에 위치될 수도 있다.
일 양태에 있어서, 복수의 라우터들의 각각의 라우터는 저장 뱅크들의 대응하는 세트에 인접하게 위치되며, 여기서, 저장 뱅크들의 대응하는 세트는 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함한다. 이에 따라, 1110 에서, 장치는 저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송할 수도 있다.
도 12 는 본 개시의 하나 이상의 양태들 (예를 들어, 상기 설명된 도 11 의 방법에 관련된 양태들) 에 따른 메모리 디바이스에 액세스하는 것에 관련된 동작들을 지원하도록 구성된 장치 (1200) 의 도면이다. 장치 (1200) 는 통신 인터페이스 (예를 들어, 적어도 하나의 트랜시버) (1202), 저장 매체 (1204), 사용자 인터페이스 (1206), 메모리 디바이스 (1208), 및 프로세싱 회로 (1210) 를 포함한다.
이들 컴포넌트들은, 도 12 에서 접속 라인들에 의해 일반적으로 표현된 시그널링 버스 또는 다른 적합한 컴포넌트를 통해 서로 커플링되고/되거나 서로 전기 통신하도록 배치될 수 있다. 시그널링 버스는 프로세싱 회로 (1210) 의 특정 어플리케이션 및 전체 설계 제약들에 의존하는 임의의 수의 상호접속 버스들 및 브리지들을 포함할 수도 있다. 시그널링 버스는, 통신 인터페이스 (1202), 저장 매체 (1204), 사용자 인터페이스 (1206), 및 메모리 디바이스 (1208) 의 각각이 프로세싱 회로 (1210) 에 커플링되고/되거나 전기 통신하도록 다양한 회로들을 함께 링크시킨다. 시그널링 버스는 또한, 당업계에 널리 공지되고 따라서 어떠한 추가로 설명되지 않을 타이밍 소스들, 주변기기들, 전압 조절기들, 및 전력 관리 회로들과 같은 다양한 다른 회로들 (도시 안됨) 을 링크시킬 수도 있다.
통신 인터페이스 (1202) 는 장치 (1200) 의 무선 통신을 용이하게 하도록 적응될 수도 있다. 예를 들어, 통신 인터페이스 (1202) 는, 네트워크에 있어서의 하나 이상의 통신 디바이스들에 대하여 양방향으로의 정보의 통신을 용이하게 하도록 적응된 회로부 및/또는 코드 (예를 들어, 명령들) 를 포함할 수도 있다. 통신 인터페이스 (1202) 는 무선 통신 시스템 내에서의 무선 통신을 위해 하나 이상의 안테나들 (1212) 에 커플링될 수도 있다. 통신 인터페이스 (1202) 는 하나 이상의 자립형 수신기들 및/또는 송신기들 뿐 아니라 하나 이상의 트랜시버들로 구성될 수 있다. 도시된 예에 있어서, 통신 인터페이스 (1202) 는 송신기 (1214) 및 수신기 (1216) 를 포함한다.
메모리 디바이스 (1208) 는 하나 이상의 메모리 디바이스들을 표현할 수도 있다. 나타낸 바와 같이, 메모리 디바이스 (1208) 는 장치 (1200) 에 의해 사용된 다른 정보와 함께 네트워크 관련 정보 (1218) 를 유지할 수도 있다. 일부 구현들에 있어서, 메모리 디바이스 (1208) 및 저장 매체 (1204) 는 공통 메모리 컴포넌트로서 구현된다. 메모리 디바이스 (1208) 는 또한, 장치 (1200) 의 프로세싱 회로 (1210) 또는 기타 다른 컴포넌트에 의해 조작되는 데이터를 저장하기 위해 사용될 수도 있다.
저장 매체 (1204) 는 프로세서 실행가능 코드 또는 명령들 (예를 들어, 소프트웨어, 펌웨어), 전자 데이터, 데이터베이스들, 또는 다른 디지털 정보와 같은 코드를 저장하는 하나 이상의 컴퓨터 판독가능, 머신 판독가능, 및/또는 프로세서 판독가능 디바이스들을 나타낼 수도 있다. 저장 매체 (1204) 는 또한, 코드를 실행할 경우 프로세싱 회로 (1210) 에 의해 조작되는 데이터를 저장하는데 사용될 수도 있다. 저장 매체 (1204) 는 휴대용 또는 고정식 저장 디바이스들, 광학 저장 디바이스들, 및 코드를 저장, 포함 및/또는 수록 가능한 다양한 다른 매체들을 포함하는 범용 또는 특수목적 프로세서에 의해 액세스될 수 있는 임의의 가용 매체들일 수도 있다.
한정이 아닌 예로서, 저장 매체 (1204) 는 자기 저장 디바이스 (예를 들어, 하드 디스크, 플로피 디스크, 자기 스트립), 광학 디스크 (예를 들어, 컴팩트 디스크 (CD) 또는 디지털 다기능 디스크 (DVD)), 스마트 카드, 플래시 메모리 디바이스 (예를 들어, 카드, 스틱, 또는 키 드라이브), 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 프로그래밍가능 ROM (PROM), 소거가능 PROM (EPROM), 전기적으로 소거가능 PROM (EEPROM), 레지스터, 착탈가능 디스크, 및 컴퓨터에 의해 액세스 및 판독될 수도 있는 코드를 저장하기 위한 임의의 다른 적합한 매체를 포함할 수도 있다. 저장 매체 (1104) 는 제조 물품 (예를 들어, 컴퓨터 프로그램 제품) 에 구현될 수도 있다. 예로서, 컴퓨터 프로그램 제품은 패키징 재료들에 컴퓨터 판독가능 매체를 포함할 수도 있다. 상기의 관점에서, 일부 구현들에 있어서, 저장 매체 (1204) 는 비-일시적인 (예를 들어, 유형의) 저장 매체일 수도 있다.
저장 매체 (1204) 는, 프로세싱 회로 (1210) 가 저장 매체 (1204) 로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있도록 프로세싱 회로 (1210) 에 커플링될 수도 있다. 즉, 저장 매체 (1204) 는, 적어도 하나의 저장 매체가 프로세싱 회로 (1210) 에 통합되는 예들 및/또는 적어도 하나의 저장 매체가 프로세싱 회로 (1210) 로부터 분리되는 (예를 들어, 장치 (1200) 에 상주하는, 장치 (1200) 외부에 있는, 다중의 엔터티들에 걸쳐 분포되는 등의) 예들을 포함하여 저장 매체 (1204) 가 프로세싱 회로 (1210) 에 의해 적어도 액세스가능하도록 프로세싱 회로 (1210) 에 커플링될 수 있다.
저장 매체 (1204) 에 의해 저장된 코드 및/또는 명령들은, 프로세싱 회로 (1210) 에 의해 실행될 경우, 프로세싱 회로 (1210) 로 하여금 본 명세서에서 설명된 다양한 기능들 및/또는 프로세스 동작들 중 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (1204) 는 프로세싱 회로 (1210) 의 하나 이상의 하드웨어 블록들에서의 동작들을 조절하기 위해 뿐만 아니라 그 개별 통신 프로토콜들을 활용하는 무선 통신용 통신 인터페이스 (1202) 를 활용하기 위해 구성된 동작들을 포함할 수도 있다.
프로세싱 회로 (1210) 는 일반적으로, 저장 매체 (1204) 상에 저장된 그러한 코드/명령들의 실행을 포함한 프로세싱을 위해 적응된다. 본 명세서에서 사용된 바와 같이, 용어 "코드" 또는 "명령들" 은 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어, 또는 기타 등등으로서 지칭되든 아니든, 프로그래밍, 명령들, 명령 세트들, 데이터, 코드, 코드 세그먼트들, 프로그램 코드, 프로그램들, 서브프로그램들, 소프트웨어 모듈들, 어플리케이션들, 소프트웨어 어플리케이션들, 소프트웨어 패키지들, 루틴들, 서브루틴들, 오브젝트들, 실행가능물들, 실행 스레드들, 절차들, 함수들 등을 한정없이 포함하도록 넓게 해석될 것이다.
프로세싱 회로 (1210) 는 데이터를 획득, 프로세싱 및/또는 전송하고, 데이터 액세스 및 저장을 제어하고, 커맨드들을 발행하며, 다른 원하는 동작들을 제어하도록 배열된다. 프로세싱 회로 (1210) 는, 적어도 하나의 예에서 적절한 매체들에 의해 제공된 원하는 코드를 구현하도록 구성된 회로부를 포함할 수도 있다. 예를 들어, 프로세싱 회로 (1210) 는 실행가능 코드를 실행하도록 구성된 하나 이상의 프로세서들, 하나 이상의 제어기들, 및/또는 다른 구조로서 구현될 수도 있다. 프로세싱 회로 (1210) 의 예들은 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 컴포넌트, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 조합을 포함할 수도 있다. 범용 프로세서는 마이크로프로세서뿐 아니라 임의의 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신을 포함할 수도 있다. 프로세싱 회로 (1210) 는 또한, DSP 와 마이크로프로세서의 조합, 다수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, ASIC 및 마이크로프로세서, 또는 임의의 다른 수의 가변 구성물들과 같은 컴퓨팅 컴포넌트들의 조합으로서 구현될 수도 있다. 프로세싱 회로 (1210) 의 이들 예들은 예시를 위한 것이며, 본 개시의 범위 내의 다른 적합한 구성들이 또한 고려된다.
본 개시의 하나 이상의 양태들에 따르면, 프로세싱 회로 (1210) 는 본 명세서에서 설명된 장치들 중 임의의 하나 또는 그 모두에 대한 특징들, 프로세스들, 함수들, 동작들 및/또는 루틴들 중 임의의 하나 또는 그 모두를 수행하도록 적응될 수도 있다. 본 명세서에서 사용된 바와 같이, 프로세싱 회로 (1210) 와 관련한 용어 "적응된" 은, 프로세싱 회로 (1210) 가 본 명세서에서 설명된 다양한 특징들에 따른 특정 프로세스, 함수, 동작 및/또는 루틴을 수행하기 위해 구성되는 것, 채용되는 것, 구현되는 것, 및/또는 프로그래밍되는 것 중 하나 이상을 지칭할 수도 있다.
장치 (1200) 의 적어도 하나의 예에 따르면, 프로세싱 회로 (1210) 는 메모리 공간 분할 회로/모듈 (1220), 어플리케이션 인터페이스/인터페이스 그룹 분류 회로/모듈 (1222), 인터페이스 그룹/저장 뱅크 도메인 할당 회로/모듈 (1224), 액세스 제공 회로/모듈 (1226), 데이터 전송 회로/모듈 (1228), 및 전력 제어 회로/모듈 (1230) 중 하나 이상을 포함할 수도 있다.
메모리 공간 분할 회로/모듈 (1220) 은, 예를 들어, 메모리 디바이스 (1208) 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하는 것에 관련한 수개의 기능들을 수행하도록 적응된 회로부 및/또는 명령들 (예를 들어, 저장 매체 (1204) 상에 저장된 메모리 공간 분할 명령들 (1232)) 을 포함할 수도 있다.
어플리케이션 인터페이스/인터페이스 그룹 분류 회로/모듈 (1222) 은, 예를 들어, 하나 이상의 어플리케이션 사용 요건들에 기초하여, 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하는 것에 관련한 수개의 기능들을 수행하도록 적응된 회로부 및/또는 명령들 (예를 들어, 저장 매체 (1204) 상에 저장된 어플리케이션 인터페이스/인터페이스 그룹 분류 명령들 (1234)) 을 포함할 수도 있다. 하나 이상의 어플리케이션 사용 요건들은 어플리케이션 저장 사이즈 요건, 어플리케이션 인터페이스 대역폭 요건, 및/또는 어플리케이션 인터페이스 레이턴시 요건을 포함할 수도 있다.
인터페이스 그룹/저장 뱅크 도메인 할당 회로/모듈 (1224) 은, 예를 들어, 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하는 것에 관련한 수개의 기능들을 수행하도록 적응된 회로부 및/또는 명령들 (예를 들어, 저장 매체 (1204) 상에 저장된 인터페이스 그룹/저장 뱅크 도메인 할당 명령들 (1236)) 을 포함할 수도 있다.
액세스 제공 회로/모듈 (1226) 은, 예를 들어, 각각의 인터페이스 그룹과 대응하는 저장 뱅크 도메인 간의 액세스를 제공하는 것에 관련한 수개의 기능들을 수행하도록 적응된 회로부 및/또는 명령들 (예를 들어, 저장 매체 (1204) 상에 저장된 액세스 제공 명령들 (1238)) 을 포함할 수도 있으며, 여기서, 제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스한다. 액세스 제공 회로/모듈 (1226) 은 복수의 인터페이스 그룹들과 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들을 통해 액세스를 제공할 수도 있으며, 여기서, 복수의 라우터들은 어플리케이션 인터페이스 회로들과 복수의 저장 뱅크들 사이에 위치된다.
데이터 전송 회로/모듈 (1228) 은, 예를 들어, 저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하는 것에 관련한 수개의 기능들을 수행하도록 적응된 회로부 및/또는 명령들 (예를 들어, 저장 매체 (1204) 상에 저장된 데이터 전송 명령들 (1240)) 을 포함할 수도 있다.
전력 제어 회로/모듈 (1230) 은, 예를 들어, 저장 뱅크 도메인들을 별도로 전력 제어하는 것에 관련한 수개의 기능들을 수행하도록 적응된 회로부 및/또는 명령들 (예를 들어, 저장 매체 (1204) 상에 저장된 전력 제어 명령들 (1242)) 을 포함할 수도 있다.
상기 언급된 바와 같이, 저장 매체 (1204) 에 의해 저장된 명령들은, 프로세싱 회로 (1210) 에 의해 실행될 경우, 프로세싱 회로 (1210) 로 하여금 본 명세서에서 설명된 다양한 기능들 및/또는 프로세스 동작들 중 하나 이상을 수행하게 한다. 예를 들어, 저장 매체 (1204) 는 메모리 공간 분할 명령들 (1232), 어플리케이션 인터페이스/인터페이스 그룹 분류 명령들 (1234), 인터페이스 그룹/저장 뱅크 도메인 할당 명령들 (1236), 액세스 제공 명령들 (1238), 데이터 전송 명령들 (1240), 및 전력 제어 명령들 (1242) 중 하나 이상을 포함할 수도 있다.
개시된 프로세스들에 있어서의 단계들의 특정 순서 또는 계위는 예시적인 접근법들의 예시임이 이해된다. 프로세스들에 있어서의 단계들의 특정 순서 또는 계위는 설계 선호도들에 기초하여 재배열될 수도 있다. 첨부한 방법 청구항들은 다양한 단계들의 엘리먼트들을 샘플 순서로 제시하며, 제시된 특정 순서 또는 계위로 한정되도록 의도되지 않는다.
상기 설명은 당업자로 하여금 본 명세서에서 설명된 다양한 양태들을 실시할 수 있도록 제공된다. 이들 양태들에 대한 다양한 수정들은 당업자에게 용이하게 자명할 것이며, 본 명세서에서 정의된 일반적인 원리들은 다른 양태들에 적용될 수도 있다. 따라서, 청구항들은 본 명세서에서 나타낸 양태들로 한정되도록 의도되지 않지만, 랭귀지 청구항들과 부합하는 충분한 범위를 부여받아야 하며, 여기서, 단수로의 엘리먼트들에 대한 언급은 명확하게 그렇게 서술되지 않으면 "하나 및 단지 하나만" 을 의미하도록 의도되지 않고 오히려 "하나 이상" 을 의미하도록 의도된다. 명확하게 달리 서술되지 않으면, 용어 "일부" 는 하나 이상을 지칭한다. 당업자에게 공지되어 있거나 나중에 공지되게 되는 본 개시 전반에 걸쳐 설명된 다양한 양태들의 엘리먼트들에 대한 모든 구조적 및 기능적 균등물들은 본 명세서에 참조로 명백히 통합되고 청구항들에 의해 포함되도록 의도된다. 더욱이, 본 명세서에 개시된 어떤 것도, 그러한 개시가 청구항들에 명시적으로 기재되는지 여부에 무관하게 공중에 전용되도록 의도되지 않는다. 어떠한 청구항 엘리먼트도, 그 엘리먼트가 어구 "~를 위한 수단" 을 이용하여 명백하게 기재되지 않는다면 수단 플러스 기능으로서 해석되지 않아야 한다.

Claims (24)

  1. 메모리 디바이스에 액세스하는 방법으로서,
    상기 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하는 단계;
    하나 이상의 어플리케이션 사용 요건들에 기초하여, 상기 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하는 단계;
    상기 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 상기 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하는 단계; 및
    각각의 인터페이스 그룹과 상기 대응하는 저장 뱅크 도메인 간의 액세스를 제공하는 단계를 포함하고,
    제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스하는, 메모리 디바이스에 액세스하는 방법.
  2. 제 1 항에 있어서,
    상기 하나 이상의 어플리케이션 사용 요건들은
    어플리케이션 저장 사이즈 요건;
    어플리케이션 인터페이스 대역폭 요건; 또는
    어플리케이션 인터페이스 레이턴시 요건
    중 적어도 하나를 포함하는, 메모리 디바이스에 액세스하는 방법.
  3. 제 1 항에 있어서,
    상기 액세스는 상기 복수의 인터페이스 그룹들과 상기 복수의 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들에 의해 제공되고, 상기 복수의 라우터들은 상기 어플리케이션 인터페이스 회로들과 상기 복수의 저장 뱅크 도메인들 사이에 위치되는, 메모리 디바이스에 액세스하는 방법.
  4. 제 3 항에 있어서,
    상기 복수의 라우터들의 각각의 라우터는 저장 뱅크들의 대응하는 세트에 인접하게 위치되고, 상기 저장 뱅크들의 대응하는 세트는 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함하는, 메모리 디바이스에 액세스하는 방법.
  5. 제 4 항에 있어서,
    저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 상기 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하는 단계를 더 포함하는, 메모리 디바이스에 액세스하는 방법.
  6. 제 1 항에 있어서,
    상기 복수의 저장 뱅크 도메인들을 별도로 전력 제어하는 단계를 더 포함하는, 메모리 디바이스에 액세스하는 방법.
  7. 메모리 디바이스에 액세스하기 위한 장치로서,
    상기 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하는 수단;
    하나 이상의 어플리케이션 사용 요건들에 기초하여, 상기 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하는 수단;
    상기 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 상기 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하는 수단; 및
    각각의 인터페이스 그룹과 상기 대응하는 저장 뱅크 도메인 간의 액세스를 제공하는 수단을 포함하고,
    제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스하는, 메모리 디바이스에 액세스하기 위한 장치.
  8. 제 7 항에 있어서,
    상기 하나 이상의 어플리케이션 사용 요건들은
    어플리케이션 저장 사이즈 요건;
    어플리케이션 인터페이스 대역폭 요건; 또는
    어플리케이션 인터페이스 레이턴시 요건
    중 적어도 하나를 포함하는, 메모리 디바이스에 액세스하기 위한 장치.
  9. 제 7 항에 있어서,
    상기 액세스를 제공하는 수단은 상기 복수의 인터페이스 그룹들과 상기 복수의 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들을 포함하고, 상기 복수의 라우터들은 상기 어플리케이션 인터페이스 회로들과 상기 복수의 저장 뱅크 도메인들 사이에 위치되는, 메모리 디바이스에 액세스하기 위한 장치.
  10. 제 9 항에 있어서,
    상기 복수의 라우터들의 각각의 라우터는 저장 뱅크들의 대응하는 세트에 인접하게 위치되고, 상기 저장 뱅크들의 대응하는 세트는 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함하는, 메모리 디바이스에 액세스하기 위한 장치.
  11. 제 10 항에 있어서,
    저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 상기 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하는 수단을 더 포함하는, 메모리 디바이스에 액세스하기 위한 장치.
  12. 제 7 항에 있어서,
    상기 복수의 저장 뱅크 도메인들을 별도로 전력 제어하는 수단을 더 포함하는, 메모리 디바이스에 액세스하기 위한 장치.
  13. 메모리 디바이스에 액세스하기 위한 장치로서,
    적어도 하나의 프로세싱 회로를 포함하고,
    상기 적어도 하나의 프로세싱 회로는,
    상기 메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하고;
    하나 이상의 어플리케이션 사용 요건들에 기초하여, 상기 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하고;
    상기 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 상기 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하고; 그리고
    각각의 인터페이스 그룹과 상기 대응하는 저장 뱅크 도메인 간의 액세스를 제공하도록
    구성되고,
    제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스하는, 메모리 디바이스에 액세스하기 위한 장치.
  14. 제 13 항에 있어서,
    상기 하나 이상의 어플리케이션 사용 요건들은
    어플리케이션 저장 사이즈 요건;
    어플리케이션 인터페이스 대역폭 요건; 또는
    어플리케이션 인터페이스 레이턴시 요건
    중 적어도 하나를 포함하는, 메모리 디바이스에 액세스하기 위한 장치.
  15. 제 13 항에 있어서,
    상기 적어도 하나의 프로세싱 회로는 상기 복수의 인터페이스 그룹들과 상기 복수의 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들을 통해 상기 액세스를 제공하도록 구성되고, 상기 복수의 라우터들은 상기 어플리케이션 인터페이스 회로들과 상기 복수의 저장 뱅크 도메인들 사이에 위치되는, 메모리 디바이스에 액세스하기 위한 장치.
  16. 제 15 항에 있어서,
    상기 복수의 라우터들의 각각의 라우터는 저장 뱅크들의 대응하는 세트에 인접하게 위치되고, 상기 저장 뱅크들의 대응하는 세트는 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함하는, 메모리 디바이스에 액세스하기 위한 장치.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 프로세싱 회로는 추가로, 저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 상기 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하도록 구성되는, 메모리 디바이스에 액세스하기 위한 장치.
  18. 제 13 항에 있어서,
    상기 적어도 하나의 프로세싱 회로는 추가로, 상기 복수의 저장 뱅크 도메인들을 별도로 전력 제어하도록 구성되는, 메모리 디바이스에 액세스하기 위한 장치.
  19. 하나 이상의 명령들을 갖는 프로세서 판독가능 저장 매체로서,
    상기 하나 이상의 명령들은, 적어도 하나의 프로세싱 회로에 의해 실행될 경우, 상기 적어도 하나의 프로세싱 회로로 하여금
    메모리 디바이스 내의 메모리 공간을 복수의 저장 뱅크 도메인들로 분할하게 하고;
    하나 이상의 어플리케이션 사용 요건들에 기초하여, 상기 메모리 공간에 액세스하도록 구성된 어플리케이션 인터페이스 회로들을 복수의 인터페이스 그룹들로 분류하게 하고;
    상기 복수의 인터페이스 그룹들의 각각의 인터페이스 그룹을 상기 복수의 저장 뱅크 도메인들로부터의 대응하는 저장 뱅크 도메인에 할당하게 하고; 그리고
    각각의 인터페이스 그룹과 상기 대응하는 저장 뱅크 도메인 간의 액세스를 제공하게 하며,
    제 1 인터페이스 그룹의 제 1 어플리케이션 인터페이스 회로는 제 1 대응하는 저장 뱅크 도메인에 액세스하는 한편, 제 2 인터페이스 그룹의 제 2 어플리케이션 인터페이스 회로는 제 2 대응하는 저장 뱅크 도메인에 액세스하는, 프로세서 판독가능 저장 매체.
  20. 제 19 항에 있어서,
    상기 하나 이상의 어플리케이션 사용 요건들은
    어플리케이션 저장 사이즈 요건;
    어플리케이션 인터페이스 대역폭 요건; 또는
    어플리케이션 인터페이스 레이턴시 요건
    중 적어도 하나를 포함하는, 프로세서 판독가능 저장 매체.
  21. 제 19 항에 있어서,
    상기 액세스는 상기 복수의 인터페이스 그룹들과 상기 복수의 저장 뱅크 도메인들 간의 동시 데이터 플로우를 관리하는 복수의 라우터들에 의해 제공되고, 상기 복수의 라우터들은 상기 어플리케이션 인터페이스 회로들과 상기 복수의 저장 뱅크 도메인들 사이에 위치되는, 프로세서 판독가능 저장 매체.
  22. 제 21 항에 있어서,
    상기 복수의 라우터들의 각각의 라우터는 저장 뱅크들의 대응하는 세트에 인접하게 위치되고, 상기 저장 뱅크들의 대응하는 세트는 상이한 저장 뱅크 도메인들의 저장 뱅크들을 포함하는, 프로세서 판독가능 저장 매체.
  23. 제 22 항에 있어서,
    상기 하나 이상의 명령들은, 상기 적어도 하나의 프로세싱 회로에 의해 실행될 경우, 추가로, 상기 적어도 하나의 프로세싱 회로로 하여금 저 레이턴시 요건을 갖는 데이터를 인터페이스 그룹의 어플리케이션 인터페이스 회로로부터 대응하는 저장 뱅크 도메인의 저장 뱅크로, 상기 저장 뱅크로의 최저 레이턴시 액세스를 제공하는 라우터를 통해 전송하게 하는, 프로세서 판독가능 저장 매체.
  24. 제 19 항에 있어서,
    상기 하나 이상의 명령들은, 상기 적어도 하나의 프로세싱 회로에 의해 실행될 경우, 추가로, 상기 적어도 하나의 프로세싱 회로로 하여금 상기 복수의 저장 뱅크 도메인들을 별도로 전력 제어하게 하는, 프로세서 판독가능 저장 매체.
KR1020187001746A 2015-07-21 2016-06-27 다중의 인터페이스들에 의한 메모리 공간으로의 동시 액세스 KR101871655B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/805,185 2015-07-21
US14/805,185 US9690494B2 (en) 2015-07-21 2015-07-21 Managing concurrent access to multiple storage bank domains by multiple interfaces
PCT/US2016/039665 WO2017014924A1 (en) 2015-07-21 2016-06-27 Concurrent access to memory space by multiple interfaces

Publications (2)

Publication Number Publication Date
KR20180011338A true KR20180011338A (ko) 2018-01-31
KR101871655B1 KR101871655B1 (ko) 2018-06-26

Family

ID=56409208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187001746A KR101871655B1 (ko) 2015-07-21 2016-06-27 다중의 인터페이스들에 의한 메모리 공간으로의 동시 액세스

Country Status (7)

Country Link
US (1) US9690494B2 (ko)
EP (1) EP3326071A1 (ko)
JP (1) JP6363316B1 (ko)
KR (1) KR101871655B1 (ko)
CN (1) CN107851074A (ko)
BR (1) BR112018001224A2 (ko)
WO (1) WO2017014924A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces
US9898483B2 (en) * 2015-08-10 2018-02-20 American Express Travel Related Services Company, Inc. Systems, methods, and apparatuses for creating a shared file system between a mainframe and distributed systems
CN110286854B (zh) * 2019-06-12 2021-10-29 北京达佳互联信息技术有限公司 群成员管理和群消息处理的方法、装置、设备及存储介质
CN111506519B (zh) * 2020-04-22 2021-04-27 上海安路信息科技股份有限公司 为fpga码点分配sram单元的方法及系统
US11675413B2 (en) * 2020-09-30 2023-06-13 Dell Products L.P. Reducing power consumption of memory devices at an information handling system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228949A1 (en) * 2007-05-31 2010-09-09 James Arthur Dean Wallace Anderson Processors
US20110173415A1 (en) * 2010-01-08 2011-07-14 Kabushiki Kaisha Toshiba Multi-core system and data transfer method
US20140047251A1 (en) * 2012-08-07 2014-02-13 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
US20140181428A1 (en) * 2012-12-23 2014-06-26 Advanced Micro Devices, Inc. Quality of service support using stacked memory device with logic die

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6853382B1 (en) 2000-10-13 2005-02-08 Nvidia Corporation Controller for a memory system having multiple partitions
JP2008544437A (ja) 2005-06-24 2008-12-04 メタラム インコーポレイテッド 一体化されたメモリコア及びメモリインターフェース回路
US7747833B2 (en) * 2005-09-30 2010-06-29 Mosaid Technologies Incorporated Independent link and bank selection
KR100735612B1 (ko) 2005-12-22 2007-07-04 삼성전자주식회사 멀티패쓰 억세스블 반도체 메모리 장치
WO2007099659A1 (ja) * 2006-03-01 2007-09-07 Matsushita Electric Industrial Co., Ltd. データ転送装置及びデータ転送方法
KR101323400B1 (ko) * 2006-03-30 2013-10-29 실리콘 이미지, 인크. 가변적인 포트 속도들을 갖는 다중-포트 메모리 디바이스
US7882327B2 (en) 2007-07-31 2011-02-01 Advanced Micro Devices, Inc. Communicating between partitions in a statically partitioned multiprocessing system
JP4497184B2 (ja) * 2007-09-13 2010-07-07 ソニー株式会社 集積装置およびそのレイアウト方法、並びにプログラム
EP2223219A4 (en) * 2007-11-09 2011-01-26 Plurality Ltd SHARED MEMORY SYSTEM FOR A CLOSELY COUPLED MULTIPROCESSOR
US8397195B2 (en) * 2010-01-22 2013-03-12 Synopsys, Inc. Method and system for packet switch based logic replication
CN102063274B (zh) * 2010-12-30 2013-10-09 华为技术有限公司 存储阵列和存储系统及数据访问方法
JP2012146201A (ja) * 2011-01-13 2012-08-02 Toshiba Corp オンチップルータ及びそれを用いたマルチコアシステム
US8644104B2 (en) 2011-01-14 2014-02-04 Rambus Inc. Memory system components that support error detection and correction
GB2496396B (en) * 2011-11-09 2014-07-30 Imagination Tech Ltd Memory access for digital signal processing
US8804394B2 (en) 2012-01-11 2014-08-12 Rambus Inc. Stacked memory with redundancy
CN103049408B (zh) * 2012-12-28 2015-06-17 苏州国芯科技有限公司 一种多接口sram读写控制电路及方法
US10572150B2 (en) * 2013-04-30 2020-02-25 Hewlett Packard Enterprise Development Lp Memory network with memory nodes controlling memory accesses in the memory network
US20150036416A1 (en) * 2013-08-05 2015-02-05 Samsung Electronics Co., Ltd. Multi-channel memory device with independent channel power supply structure and method of controlling power net
JP5943109B1 (ja) * 2015-03-10 2016-06-29 日本電気株式会社 半導体チップ、集積回路、及びデータ転送方法
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228949A1 (en) * 2007-05-31 2010-09-09 James Arthur Dean Wallace Anderson Processors
US20110173415A1 (en) * 2010-01-08 2011-07-14 Kabushiki Kaisha Toshiba Multi-core system and data transfer method
US20140047251A1 (en) * 2012-08-07 2014-02-13 Qualcomm Incorporated Methods, systems and devices for hybrid memory management
US20140181428A1 (en) * 2012-12-23 2014-06-26 Advanced Micro Devices, Inc. Quality of service support using stacked memory device with logic die

Also Published As

Publication number Publication date
US20170024143A1 (en) 2017-01-26
JP2018524739A (ja) 2018-08-30
KR101871655B1 (ko) 2018-06-26
JP6363316B1 (ja) 2018-07-25
WO2017014924A1 (en) 2017-01-26
BR112018001224A2 (pt) 2018-09-11
CN107851074A (zh) 2018-03-27
US9690494B2 (en) 2017-06-27
EP3326071A1 (en) 2018-05-30

Similar Documents

Publication Publication Date Title
KR101871655B1 (ko) 다중의 인터페이스들에 의한 메모리 공간으로의 동시 액세스
US9864707B2 (en) Time multiplexing at different rates to access different memory types
US10566075B2 (en) Electronic device performing training on memory device by rank unit and training method thereof
US11093425B2 (en) Systems and methods for arbitrating traffic in a bus
US20160182354A1 (en) Link delay based routing apparatus for a network-on-chip
JP6092971B2 (ja) ダイ上インターコネクトのためのアーキテクチャ
US11809343B2 (en) Transporting request types with different latencies
US10649922B2 (en) Systems and methods for scheduling different types of memory requests with varying data sizes
US10255218B1 (en) Systems and methods for maintaining specific ordering in bus traffic
US11797311B2 (en) Asynchronous pipeline merging using long vector arbitration
US10014040B2 (en) Semiconductor apparatus, semiconductor system, and system relating to dual clock transmission
KR20150083894A (ko) 인텔리전트 듀얼 데이터 레이트 (ddr) 메모리 제어기
US20220108135A1 (en) Methods and apparatus for performing a machine learning operation using storage element pointers
US20240086324A1 (en) High bandwidth gather cache
US9817759B2 (en) Multi-core CPU system for adjusting L2 cache character, method thereof, and devices having the same
US20220113914A1 (en) Storage class memory device including a network
KR20160092111A (ko) 선택적으로 동작하는 복수의 디램 장치를 포함하는 메모리 시스템
US11023403B2 (en) Chip to chip interface with scalable bandwidth
Clermidy et al. 3D stacking for multi-core architectures: From WIDEIO to distributed caches
WO2011064626A1 (en) Method for compensating a timing signal, an integrated circuit and electronic device
US11455262B2 (en) Reducing latency for memory operations in a memory controller
US11698853B2 (en) Saturating local cache in memory-compute systems
US20220113758A1 (en) Selectable clock sources
WO2022115167A2 (en) Multiple channel memory system
US20150095557A1 (en) Semiconductor apparatus and system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant