KR20200121301A - 시스템-온-칩에 대한 메모리 서브시스템 - Google Patents

시스템-온-칩에 대한 메모리 서브시스템 Download PDF

Info

Publication number
KR20200121301A
KR20200121301A KR1020207022976A KR20207022976A KR20200121301A KR 20200121301 A KR20200121301 A KR 20200121301A KR 1020207022976 A KR1020207022976 A KR 1020207022976A KR 20207022976 A KR20207022976 A KR 20207022976A KR 20200121301 A KR20200121301 A KR 20200121301A
Authority
KR
South Korea
Prior art keywords
memory controller
master
memory
power domain
power
Prior art date
Application number
KR1020207022976A
Other languages
English (en)
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 KR20200121301A publication Critical patent/KR20200121301A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Memory System (AREA)

Abstract

본 개시의 예들은 일반적으로 메모리 서브시스템을 포함하는 시스템-온-칩(system-on-chip; SoC)과 같은 집적 회로들에 관한 것이다. 일부 예들에서, 집적 회로(100)는 칩 상의 제1 전력 도메인(202) 내의 제1 마스터 회로(102); 칩 상의 제2 전력 도메인(204) 내의 제2 마스터 회로(104); 및 칩 상의 제3 전력 도메인(206) 내의 제1 메모리 제어기(110)를 포함한다. 제1 마스터 회로(102) 및 제2 마스터 회로(104) 각각은 제1 메모리 제어기(110)를 통해 메모리(124)에 액세스하도록 구성된다. 제1 전력 도메인(202) 및 제2 전력 도메인(204) 각각은 제3 전력 도메인(206)과 별개이고 독립적이다.

Description

시스템-온-칩에 대한 메모리 서브시스템
본 개시의 예들은 일반적으로 시스템-온-칩(system-on-chip; SoC)에 관한 것이고, 상세하게는, 하나 이상의 메모리 제어기들을 포함하는 메모리 서브시스템을 포함하는 SoC에 관한 것이다.
집적 회로 기술에서의 발전으로 예를 들어, 프로세서 코어, 메모리 제어기 및 버스를 포함하는 전체 시스템을 단일 반도체 칩에 임베딩할 수 있게 되었다. 이러한 유형의 칩은 통상적으로 시스템-온-칩(SoC)으로 지칭된다. 다른 SoC들은 상이한 애플리케이션들에 대한 상이한 컴포넌트들을 임베딩할 수 있다. SoC는 종래의 프로세서-기반 설계들에 비해 많은 이점들을 제공한다. 이는 멀티-칩 설계들에 대한 매력적인 대안인데, 이는, 컴포넌트들을 단일 디바이스 내에 통합하는 것이 크기를 감소시키면서 전체 속도를 증가시키기 때문이다. SoC는 또한 ASIC(application specific integrated circuit)와 같은 완전 주문형 칩들에 대한 매력적인 대안인데, 이는 ASIC 설계들이 상당히 더 긴 개발 시간 및 더 큰 개발 비용을 갖는 경향이 있기 때문이다. 프로그래밍가능 로직 및 SoC 둘 모두의 이점들을 획득할 수 있는 프로그래밍가능 반도체 칩을 구현하기 위해 프로그래밍가능 로직을 포함하는 구성가능 SoC(CSoC)가 개발되었다.
본 개시의 예들은 일반적으로 메모리 서브시스템을 포함하는 시스템-온-칩(system-on-chip; SoC)과 같은 집적 회로들에 관한 것이다. 다양한 예들은 집적 회로의 마스터 회로들과 독립적으로 메모리 제어기를 동작시키는 것을 허용할 수 있고, 확장가능한 통합형 메모리 서브시스템을 허용할 수 있다.
본 개시의 예는 집적 회로이다. 집적 회로는 칩 상의 제1 전력 도메인 내의 제1 마스터 회로; 칩 상의 제2 전력 도메인 내의 제2 마스터 회로; 및 칩 상의 제3 전력 도메인 내의 제1 메모리 제어기를 포함한다. 제1 마스터 회로 및 제2 마스터 회로 각각은 제1 메모리 제어기를 통해 메모리에 액세스하도록 구성된다. 제1 전력 도메인 및 제2 전력 도메인 각각은 제3 전력 도메인과 별개이고 독립적이다.
본 개시의 다른 예는 집적 회로를 동작시키는 방법이다. 집적 회로의 복수의 마스터 회로들 각각은 복수의 전력 모드들 중 하나에 선택적으로 진입된다. 메모리는, 복수의 마스터 회로들 중 다른 것들 각각의 복수의 전력 모드들 중 선택된 전력 모드와 무관하게 집적 회로의 제1 메모리 제어기를 통해 복수의 마스터 회로들 중 적어도 하나에 의해 액세스된다. 제1 메모리 제어기는 복수의 마스터 회로들의 각각의 개별적인 전력 도메인과 별개인 전력 도메인 내에 있다.
본 개시의 또 다른 예는 집적 회로이다. 집적 회로는 칩 상의 프로세싱 시스템; 칩 상의 프로그래밍가능 로직; 칩 상의 구성가능한 상호접속 네트워크; 칩 상의 제1 메모리 제어기; 및 칩 상의 관리 유닛을 포함한다. 프로세싱 시스템 및 프로그래밍가능 로직 각각은 구성가능한 상호접속 네트워크를 통해 제1 메모리 제어기에 통신가능하게 커플링된다. 프로세싱 시스템 및 프로그래밍가능 로직 각각은 제1 메모리 제어기 및 구성가능한 상호접속 네트워크를 통해 메모리에 액세스하도록 구성된다. 관리 유닛은 제1 메모리 제어기의 동작과 독립적으로 프로세싱 시스템 및 프로그래밍가능 로직의 개별적인 전력 모드들을 제어할 수 있다.
이러한 양상들 및 다른 양상들은 하기 상세한 설명을 참조하여 이해될 수 있다.
상기 언급된 특징들이 상세하게 이해될 수 있는 방식으로, 위에서 간략하게 요약된 보다 특정한 설명은 예시적인 구현들을 참조하여 이루어질 수 있고, 이들 중 일부는 첨부된 도면들에서 예시된다. 그러나, 첨부된 도면들은 오직 예시적인 구현들을 예시하며 따라서 다른 구현들의 범위에 대한 제한으로 고려되지 않아야 함에 유의해야 한다.
도 1은 본 개시의 일부 예들에 따른 집적 회로(IC)의 블록도이다.
도 2는 본 개시의 일부 예들에 따른, IC에서 전력 관리 및 메모리 액세스에 대한 흐름도이다.
도 3은 본 개시의 일부 예들에 따른, 네트워크 온 어 칩(network on a chip; NoC)을 도시하는 블록도이다.
도 4는 본 개시의 일부 예들에 따른, NoC를 통한 종점 회로들 사이의 접속들을 도시하는 블록도이다.
도 5는 본 개시의 일부 예들에 따른, NoC에 접속된 4개의 포트들을 갖는 메모리 제어기들을 포함하는 IC의 일부분의 블록도이다.
이해를 용이하게 하기 위해, 가능한 경우, 도면들에 공통인 동일한 요소들을 지정하기 위해 동일한 참조 부호들이 사용된다. 일례의 요소들이 다른 예들에서 유리하게 통합될 수 있다는 것이 고려된다.
본 개시의 예들은 메모리 서브시스템을 포함하는 시스템-온-칩(system-on-chip; SoC)과 같은 집적 회로들을 제공한다. 일반적으로, 일부 예들에서, 메모리 서브시스템은 마스터 모듈들의 전력 도메인들과는 별개이고 독립적인 전력 도메인 내에 있는 하나 이상의 메모리 제어기들을 포함한다. 따라서, 각각의 마스터 모듈은 다른 마스터 모듈들의 전력 모드들과 무관하게 메모리 제어기를 통해 메모리에 액세스할 수 있는데, 이는 메모리 제어기의 동작이 마스터 모듈들 각각의 전력 모드들과는 독립적이고 별개이기 때문이다. 추가로, 메모리 제어기들은 IC에서 프로그래밍가능 네트워크-온-칩(NoC)과 같은 상호접속 구조를 갖는 IC에서 구현될 수 있다. 메모리 제어기 및 상호접속 구조는 메모리에 대한 마스터 모듈 액세스를 허용하는 확장가능하고 통합된 방식을 제공할 수 있다.
이하 도면들을 참조하여 다양한 특징부들이 설명된다. 도면들은 축척에 맞게 도시되거나 그렇지 않을 수 있고, 유사한 구조들 또는 기능들의 요소들은 도면들 전반에 걸쳐 유사한 참조 부호들에 의해 표현됨에 유의해야 한다. 도면들은 오직 특징들의 설명을 용이하게 하도록 의도됨에 유의해야 한다. 도면들은 상이한 실시예들의 포괄적인 설명으로서 또는 청구항들의 범위에 대한 제한으로서 의도되지 않는다. 또한, 예시된 예는 도시된 모든 양상들 또는 이점들을 가질 필요가 없다. 특정 예와 관련하여 설명되는 양상 또는 이점은 반드시 그 예로 제한되지 않으며, 그렇게 예시되지 않거나 또는 그렇게 명시적으로 설명되지 않은 경우에도 임의의 다른 예들에서 실시될 수 있다.
도 1은 본 개시의 일부 예들에 따른 집적 회로(IC)(100)의 블록도이다. 일부 예들에서, IC(100)는 필드 프로그래밍가능 게이트 어레이(field programmable gate array; FPGA), 프로그래밍가능 로직 디바이스(programmable logic device; PLD) 등과 같은 프로그래밍가능 IC일 수 있다. 다른 예들에서, IC(100)는 주문형 IC(application specific IC; ASIC) 또는 다른 IC일 수 있다. IC(100)는 시스템-온-칩(SoC)일 수 있고 단일 다이 상에 구현될 수 있다. IC(100)는 프로세싱 시스템(PS)(102), 프로그래밍가능 로직(PL)(104), 마스터 및/또는 슬레이브(M/S) 블록 1(106), M/S 블록 2(108), 메모리 제어기(MC) 1(110), MC 2(112), 입/출력(I/O) 인터페이스(114), 관리 유닛(MU)(116) 및 시스템 상호접속부(120)를 포함한다. 시스템 상호접속부(120)는 네트워크-온-칩(NoC)(122)을 더 포함한다. 이러한 블록들 및 서브시스템들은 예들이다. IC(100)는 이러한 추가적인 및/또는 상이한 블록들 및 서브시스템들의 임의의 조합을 포함할 수 있다.
PS(102)는 하나 이상의 프로세서 코어들이거나 이를 포함할 수 있다. 예를 들어, PS(102)는 다수의 ARM-기반 임베디드 프로세서 코어들을 포함할 수 있다. PL(104)은, PS(102)를 사용하여 프로그래밍 또는 구성될 수 있는 임의의 수의 구성가능한 로직 블록(configurable logic block; CLB)들을 포함할 수 있다. M/S 블록 1(106) 및 M/S 블록 2(108)은 다수의 블록들 및 서브시스템들 중 임의의 것일 수 있다. 예를 들어, M/S 블록 1(106) 및 M/S 블록 2(108) 각각은 프로그래밍가능 로직, 프로세싱 시스템(예를 들어, 디지털 신호 프로세서(digital signal processor; DSP), 그래픽 프로세서 유닛(graphical processor unit; GPU) 등), 비디오 압축 유닛(video compression unit; VCU), 가속기, 메모리 또는 다른 블록들 및/또는 서브시스템들일 수 있다.
MC 1(110) 및 MC 2(112)는 PS(102), PL(104) 또는 다른 모듈과 같은 마스터 모듈에 의해 메모리에 대한 액세스를 제어하도록 구성되는 메모리 제어기들이다. 일부 예들에서, MC 1(110) 및 MC 2(112) 각각은 더블 데이터 레이트 4세대(double data rate fourth-generation; DDR4) MC, 고 대역폭 메모리 2세대(high bandwidth memory second-generation; HBM2) MC 또는 다른 MC일 수 있다. 다른 예들에서, MC 1(110) 및 MC 2(112)는 임의의 세대의 기술 및/또는 임의의 표준 또는 비-표준 MC일 수 있다. 특정 예에서, MC 1(110) 및 MC 2(112) 각각은 DDR4 MC이다. MC 1(110) 및 MC 2(112) 각각은 단대단 데이터 보호, 예를 들어, 패리티 비트들 및/또는 에러 정정 코드들의 생성 및 체크, 상관불가능한 에러들을 표시하기 위한 데이터 포이즈닝(poisoning) 지원 및/또는 에러 로깅 및 보고를 가질 수 있다.
I/O 인터페이스(114)는 IC(100)와 다른 컴포넌트 오프-칩 사이의 통신을 허용하도록 구성될 수 있다. I/O 인터페이스(114)는 임의의 표준 및/또는 사설 통신을 위해 구성될 수 있다. I/O 인터페이스(114)는 IC(100) 상의 임의의 모듈들에 통신가능하게 커플링될 수 있다. 일부 모듈들은 I/O 인터페이스(114)에 직접 통신가능하게 커플링될 수 있지만, 다른 모듈들은 예를 들어, NoC(122)와 같은 다른 모듈을 통해 I/O 인터페이스(114)에 간접적으로 통신가능하게 커플링될 수 있다. 예시된 바와 같이, PS(102), PL(104), MC 1(110), 및 MC 2(112)는 I/O 인터페이스(114)에 직접 통신가능하게 (예를 들어, 시스템 상호접속부(120) 개입 없이) 커플링되고, 추가로, 시스템 상호접속부(120)는 I/O 인터페이스(114)에 통신가능하게 커플링된다. 추가로, 예시된 바와 같이, I/O 인터페이스(114)는 오프-칩 메모리(124)에 통신가능하게 커플링된다. 오프-칩 메모리(124)는 예를 들어, 동적 랜덤 액세스 메모리(dynamic random access memory; DRAM), 플래시 메모리 또는 다른 메모리일 수 있거나 이를 포함할 수 있다. 오프-칩 메모리(124)는 IC(100)와 동일한 인터포저(interposer) 및/또는 패키지 기판에 부착될 수 있고, 이러한 인터포저 및/또는 패키지 기판은 예를 들어, 오프-칩 메모리(124)를 또는 IC(100)에 통신가능하게 커플링할 수 있다. 추가적인 및/또는 상이한 컴포넌트들이 I/O 인터페이스(114)를 사용하여 IC(100)에 커플링될 수 있다. IC(100) 상의 다양한 모듈들은 I/O 인터페이스(114)를 통해 그리고 추가로 가능하게는 시스템 상호접속부(120)를 통해 IC(100)로부터 오프-칩된 다양한 컴포넌트들에 통신가능하게 커플링될 수 있다.
MU(116)는 IC(100)의 다양한 양상들을 제어하도록 구성된다. MU(116)는 단독으로 또는 하나 이상의 다른 컴포넌트들과 협력하여, IC(100)를 개시 및 구성하고, IC(100)의 동작들을 디버깅하고, IC(100)의 파워 온을 제어하고, IC(100) 내의 전력 관리를 제어할 수 있다. MU(116)에 의한 전력 관리의 추가적인 세부사항이 아래에서 설명된다.
시스템 상호접속부(120)는 IC(100)의 모듈들 중 다양한 것들을 통신가능하게 접속시킬 수 있다. 이전에 언급된 바와 같이, 시스템 상호접속부(120)는 NoC(122)를 포함한다. NoC(122)는 구성가능한 스위치들에 의해 상호접속된 통신 경로들을 포함한다. 구성가능한 스위치들은 IC(100)의 통신 경로들이 상이한 모듈들을 통신가능하게 커플링하도록 선택적으로 프로그래밍되거나 구성되게 허용한다. 스위치들이 구성되거나 프로그래밍되게 허용함으로써, NoC(122)는 상호접속부들에 대해 PL(104)에서의 자원들에 반드시 전용일 필요 없이 및/또는 모듈들 사이에서 비-구성가능한 상호접속부들에 반드시 전용일 필요 없이, 예를 들어, PL(104)의 구성에 기초하여 자원들의 효율적 사용을 허용할 수 있다. NoC(122)는 NoC(122)의 스위치들을 구성하기 위해 구현되는 상호접속부를 더 포함할 수 있고, 이는 NoC 주변 상호접속부(NoC peripheral interconnect; NPI)로서 지칭될 수 있다. 시스템 상호접속부(120)는 부팅 시퀀스들 및/또는 전력 관리 동안 통신을 가능하게 할 수 있는 비-구성가능한 상호접속부들을 더 포함할 수 있다.
IC(100)의 다양한 모듈들은 상이한 전력 도메인들에 있다. 예를 들어, PS(102)는 제1 전력 도메인(202)에 있다. PL(104)은 제2 전력 도메인(204)에 있다. MC 1(110) 및 MC 2(112)는 하나 이상의 제3 전력 도메인(206)에 있다. I/O 인터페이스(114)는 제4 전력 도메인(208)에 있을 수 있고 MU(116)는 제5 전력 도메인(210)에 있을 수 있다. 시스템 상호접속부(120)는 제6 전력 도메인(212)에 있을 수 있다. M/S 블록 1(106) 및 M/S 블록 2(108)는 하나 이상의 추가적인 전력 도메인들에 있거나 또는 제1, 제2, 제3, 제4 또는 제5 전력 도메인(202, 204, 206, 208 또는 210)에 있을 수 있다. 예시된 바와 같이, M/S 블록 1(106) 및 M/S 블록 2(108)는 제1 전력 도메인(202)에 있다. 도 1의 예는 일부 블록들 또는 모듈들이 전력 도메인을 공유하는 것으로 예시하지만(예를 들어, PS(102), M/S 블록 1(106) 및 M/S 블록 2(108)가 제1 전력 도메인(202)을 공유하고, MC 1(110) 및 MC 2(112)가 제3 전력 도메인(206)을 공유함), 각각의 블록 또는 모듈은 별개의 물리적 블록일 수 있고, 다른 블록들 또는 모듈들의 전력 상태와는 독립적으로 별개의 전력 도메인에서, 예를 들어, 동작될 수 있다. 예를 들어, MC 1(110) 및 MC 2(112) 각각은 MC 1(110) 및 MC 2(112)에 각각 전용인 물리적 블록 내에 있을 수 있다. 각각의 전력 도메인은 하나 이상의 동작 전압들(또는 동작 전압들의 범위)을 가질 수 있고 다른 전력 도메인들과는 독립적이고 별개이다.
전원(200)은 IC(100)에 전기적으로 커플링된다. 전원(200)은 IC(100) 상의 각각의 전력 도메인에 대한 동작 전압을 제공한다. 전원(200)은 IC(100)와 동일한 기판 및/또는 보드에 부착될 수 있고, 예를 들어, 기판 및/또는 보드를 통해 IC(100)에 전기적으로 커플링될 수 있다. 전원(200)은 제1 전력 도메인(202)에 대한 제1 전압 V0, 제2 전력 도메인(204)에 대한 제2 전압 V1, 제3 전력 도메인(206)에 대한 제3 전압 V2, 제4 전력 도메인(208)에 대한 제4 전압 V3, 제5 전력 도메인(210)에 대한 제5 전압 V4, 제6 전력 도메인(212)에 대한 제6 전압 V5를 제공한다. 동작 전압들 V0, V1, V2, V3, V4, 및 V5 중 임의의 것은 다른 동작 전압들 V0, V1, V2, V3, V4, 및 V5 중 임의의 것 동일하거나 상이할 수 있다.
MU(116)는 IC(100)의 마스터 모듈들과 함께 표준 규격 또는 사설 구현에 기초하여 전력 관리 프레임워크를 구현할 수 있다. 일부 예들에서, MU(116) 및 마스터 모듈들은 임베디드 에너지 관리 API 규격(UG1200)에 기초하여 전력 관리 프레임워크를 구현한다.
마스터 모듈들 내의 컴포넌트들, 예를 들어, PS(102) 내의 하나 이상의 프로세싱 유닛(PU)들과 같은 PS(102)의 컴포넌트들은 전력 모듈들을 자체 개시할 수 있고 그리고/또는 전력 모드들 중 주어진 모드에 있도록 MU(116)에 의해 제어될 수 있다. 예를 들어, PS(102) 내의 PU가 미리 결정된 시간 기간 동안 비활성이면, PU는 파워 다운 또는 보류 모드로의 진입을 요청하는 메시지를 MU(116)에 전송할 수 있다. MU(116)가 메시지를 확인응답하면, PU는 파워 다운 또는 보류 모드로 진입한다. 이어서 MU(116)는 PU를 웨이크 업할 수 있다.
슬레이브 모듈들, 예를 들어, MC 1(110) 및 MC 2(112)는 단독으로 및/또는 마스터 모듈들과 협력하여 전력 모드들에 있도록 MU(116)에 의해 제어될 수 있다. 예를 들어, MU(116)는 마스터 모듈이 슬레이브 모듈의 자원들을 요청할 때까지 파워 오프 모드에서 슬레이브 모듈을 유지할 수 있다. 이어서 MU(116)는 마스터 모듈이 슬레이브 모듈의 자원들에 액세스하도록 허용하기 위해 슬레이브 모듈을 파워 온할 수 있다. 마스터 모듈이 슬레이브 모듈의 자원들에 액세스하는 것을 완료하면, MU(116)는 슬레이브 모듈이 파워 오프되게 할 수 있다.
MU(116)는 또한 다양한 전력 도메인들 내에서 컴포넌트들의 전력 게이팅(gating)을 제어할 수 있다. 예를 들어, MU(116)는 로직을, 예를 들어, 소프트웨어 및/또는 하드웨어로 구현할 수 있고, 이는 PS(102)의 PU들, M/S 블록 1(106) 및/또는 M/S 블록 2(108); PU들과 연관된 메모리 블록들; PL(104)의 구성가능한 로직 블록들 등에 대한 전력 게이트들을, 이러한 컴포넌트들의 사용 또는 인스턴스화에 따라 제어하기 위한 신호들을 생성할 수 있다. 예를 들어, PL(104)의 일부 구성가능한 로직 블록들이 인스턴스화되지 않으면, 그러한 로직 블록들에 대한 전력을 제거하기 위해 그러한 로직 블록들에 대한 전력 게이트가 개방되어, 누설을 감소시키고 따라서 전력 소비를 감소시킬 수 있다.
MC 1(110) 및 MC 2(112) 각각이 IC(100)의 별개의 물리적 블록이고(예를 들어, 각각은 마스터 모듈에 또는 그 일부에 포함되거나 배치되지 않음) IC(100)의 각각의 마스터 모듈의 전력 도메인들과 별개이고 독립적인 전력 도메인 내에 있으면, MC 1(110) 및 MC 2(112)는 각각의 마스터 모듈과는 독립적으로 전력 모드들에서 동작될 수 있고, MC 1(110) 또는 MC 2(112)를 사용하기 위한 마스터 모듈들 사이의 의존성들이 제거될 수 있다. 예를 들어, PL(104)기 메모리로부터 판독 또는 기록하기 위해 MC 1(110)을 사용하고 PS(102)가 전력 절감 모드에 있으면(예를 들어, 파워 다운 또는 오프됨), PL(104)은 PS(102)가 파워 업됨이 없이 메모리로부터 판독 또는 기록하기 위해 MC 1(110)을 사용할 수 있다. IC(100)의 각각의 마스터 블록 또는 모듈(예를 들어, PS(102), PL(104), M/S 블록 1(106) 및 M/S 블록 2(108))은 마스터 블록들 또는 모듈들 사이의 의존성 없이 MC 1(110) 및 MC 2(112) 중 하나 또는 둘 모두를 공유할 수 있다. 본 명세서에 설명된 바와 같이 프로그래밍가능 NoC(122)를 구현하는 예들에서, NoC(122)는 또한 파워 업될 수 있고, 이를 통해 예를 들어, 마스터 모듈과 MC 사이 및 MC와 메모리(오프-칩일 수 있음) 사이에서 통신들이 송신되도록 활성일 수 있다.
도 1은 예를 들어, 프로그래밍가능 로직 및/또는 프로그래밍가능 상호접속부들을 포함하는 프로그래밍가능 IC의 상황에서의 예시적인 구현이다. 다른 구현들은 비-프로그래밍가능 ASIC와 같은 비-프로그래밍가능 IC의 상황일 수 있다. 일부 실시예들은, 예를 들어, 마스터 모듈들의 다른 전력 도메인들과는 별개이거나 독립적인 전력 도메인에서 메모리 제어기를 포함하는 임의의 IC, 예를 들어, SoC로 확장된다.
도 2는 본 개시의 일부 예들에 따른, IC에서 전력 관리 및 메모리 액세스에 대한 흐름도이다. IC는 다수의 마스터 모듈들, 예를 들어, 프로세서 시스템, 프로그래밍가능 로직, 가속기 또는 다른 모듈을 갖는다. IC는 추가로, 메모리에 액세스하기 위해 마스터 모듈들이 사용할 수 있는 메모리 제어기를 갖고, 이러한 메모리는 온-칩이거나 별개의 IC 상에 있을 수 있다. 마스터 모듈들은 IC 상의 하나 이상의 전력 도메인들에 있고(그리고 일부 경우들에서, 각각의 마스터 모듈은 다른 마스터 모듈들의 다른 도메인들과는 별개인 전용 전력 도메인 내에 있고), 메모리 제어기는, 마스터 모듈들이 배치된 하나 이상의 전력 도메인들과는 별개이고 독립적인 IC 상의 전력 도메인 내에 있다. 메모리 제어기는 마스터 모듈에 포함되거나 배치되지 않는다. 예를 들어, 메모리 제어기는 메모리 제어기에 전용인 물리적 블록 내에 있을 수 있다. 마스터 모듈들의 전력 모드들은 예를 들어, 마스터 모듈들과 협력하는 관리 유닛에 의해 제어될 수 있다. 각각의 마스터 모듈은 상이한 전력 모드들, 예를 들어, 보류 모드, 파워 다운 모드, 활성 모드, 파워 업 등을 가질 수 있고, 각각의 마스터 모듈은 마스터 모듈의 제어에 기초하여 선택적으로 이러한 상이한 전력 모드들에 진입될 수 있다.
블록(302)에서, IC의 각각의 마스터 모듈은 전력 모드에 선택적으로 진입된다. 블록(304)에서, 메모리는, 메모리에 액세스하는 적어도 하나의 마스터 모듈들의 전력 도메인과 별개인 전력 도메인(들)에서 다른 마스터 모듈들 각각의 전력 모드와 무관하게, IC의 메모리 제어기를 통해 마스터 모듈들 중 적어도 하나에 의해 액세스된다. 예를 들어, 메모리 제어기는 마스터 모듈들의 전력 도메인들과는 별개이고 독립적인 전력 도메인 내에 있기 때문에, 마스터 모듈은, 다른 마스터 모듈이 비활성 또는 파워 다운 모드에 있으면, 그 다른 마스터 모듈(즉, 메모리에 액세스하는 마스터 모듈의 전력 도메인과는 상이한 전력 도메인 내에 있음)을 활성 또는 파워 업 모드로 진입시키지 않고 메모리 제어기를 통해 메모리에 액세스할 수 있다. 메모리 제어기의 전력 도메인 내에 있지 않고 메모리에 액세스하는 마스터 모듈의 전력 도메인 내에 있지 않은 마스터 모듈들 각각은 메모리 액세스와 무관하게 자신의 각각의 전력 모드를 유지할 수 있다.
도 2의 흐름도를 구현하기 위한 예시적인 IC는 도 1에 예시되고 앞서 설명된다. 다른 IC들은 또한 도 2의 흐름도를 구현할 수 있고, 도 1에 대해 또는 도 2에 대해 앞서 설명된 것보다 적은, 많은 및/또는 상이한 모듈들 및/또는 전력 도메인들을 가질 수 있다.
도 3은 본 개시의 일부 예들에 따른 NoC(122)를 도시하는 블록도이다. NoC(122)는 NoC 마스터 유닛들(NMUs)(402), NoC 슬레이브 유닛들(NUSs)(404), 네트워크(414), NoC 주변 상호접속부(NPI)(410) 및 레지스터들(Regs)(412)을 포함한다. 각각의 NMU(402)는 마스터 종점(endpoint) 회로를 NoC(122)에 접속시키는 입구 회로이다. 각각의 마스터 종점 회로는 마스터 모듈에 있다. 각각의 NSU(404)는 NoC(122)를 슬레이브 종점 회로에 접속시키는 출구 회로이다. 각각의 슬레이브 종점 회로는 슬레이브 모듈 또는 마스터 모듈에 있을 수 있다. 마스터 모듈은 슬레이브 모듈과 같은 다른 모듈의 동작을 지시 또는 제어할 수 있거나 이를 위해 구성된다. 일부 환경들 하에서, 마스터 모듈은 자신의 동작을 다른 마스터 모듈에 의해 지시 또는 제어받을 수 있고(예를 들어, 슬레이브일 수 있음), 따라서 마스터 모듈은 단지 마스터 종점 회로들만을 또는 마스터 종점 회로들과 슬레이브 종점 회로들의 조합을 포함할 수 있다. 슬레이브 모듈은 슬레이브 종점 회로들을 갖는다.
NMU들(402)은 네트워크(414)를 통해 NSU들(404)에 접속된다. 일례에서, 네트워크(414)는 NoC 패킷 스위치들(406) 및 NoC 패킷 스위치들(406) 사이의 라우팅(408)을 포함한다. 각각의 NoC 패킷 스위치(406)는 NoC 패킷들의 스위칭을 수행한다. NoC 패킷 스위치들(406)은 복수의 물리적 채널들을 구현하기 위해 라우팅(408)을 통해 NMU들(402) 및 NSU들(404)에 그리고 서로 접속된다. NoC 패킷 스위치들(406)은 또한 물리적 채널 당 다수의 가상 채널들을 지원한다.
NPI(410)는 NMU들(402), NSU들(404), 및 NoC 패킷 스위치들(406)을 프로그래밍하기 위한 회로부를 포함한다. 예를 들어, NMU들(402), NSU들(404) 및 NoC 패킷 스위치들(406)은 그 기능성을 결정하는 레지스터들(412)을 포함할 수 있다. 예를 들어, 레지스터들(412)은 NoC 패킷 스위치들(406)의 스위칭 기능성을 지시하기 위한 하나 이상의 라우팅 표들을 구현할 수 있다. NPI(410)는 기능성을 설정하기 위해 이를 프로그래밍하기 위한 레지스터들(412)에 커플링된 상호접속부를 포함한다. NoC(122)에 대한 구성 데이터는 메모리(예를 들어, 로컬 메모리 및/또는 오프-칩 메모리)에 저장되고 NoC(122)를 프로그래밍하기 위한 NPI(410)에 제공될 수 있다.
NoC(122)는 그 안의 데이터-흐름들을 제어하기 위한 단대단 서비스 품질(QoS) 특징들을 포함한다. 예들에서, NoC(122)는 먼저 데이터-흐름들을 지정된 트래픽 분류들로 분리한다. 동일한 트래픽 분류의 데이터-흐름들은 독립적인 가상 또는 물리적 송신 경로들을 공유하거나 가질 수 있다. QoS 방식은 트래픽 분류들에 걸쳐 2 레벨의 우선순위를 적용한다. 트래픽 분류들 내에서 및 그에 걸쳐, NoC(122)는 트래픽 흐름들을 형성화하고 사용자 요건들을 충족하는 대역폭 및 레이턴시를 제공하기 위해 가중된 중재 방식을 적용한다.
도 4는 본 개시의 일부 예들에 따른, NoC(122)를 통한 종점 회로들 사이의 접속들을 도시하는 블록도이다. 이 예에서, 종점 회로들(502)은 NoC(122)를 통해 종점 회로들(504)에 접속된다. 종점 회로들(502)은 NoC(122)의 NMU들(402)에 커플링되는 마스터 회로들이다. 종점 회로들(504)은 NoC(122)의 NSU들(404)에 커플링되는 슬레이브 회로들이다. 각각의 종점 회로(502 및 504)는 예를 들어, PS(102) 내의 회로 또는 PL(104) 내의 회로일 수 있고, PS(102) 및 PL(104) 중 하나는 적절한 환경들 하에서, 슬레이브일 다른 것에 대한 마스터일 수 있다. PL(104) 내의 각각의 종점 회로는 전용 회로(예를 들어, 경화 회로(hardened circuit)) 또는 프로그래밍가능 로직에서 구성된 회로일 수 있다.
네트워크(414)는 복수의 물리적 채널들(506)을 포함한다. 물리적 채널들(506)은 NoC(122)를 프로그래밍함으로써 구현된다. 각각의 물리적 채널(506)은 하나 이상의 NoC 패킷 스위치들(406) 및 연관된 라우팅(408)을 포함한다. NMU(402)는 적어도 하나의 물리적 채널(506)을 통해 NSU(404)와 접속된다. 물리적 채널(506)은 또한 하나 이상의 가상 채널들(508)을 가질 수 있다.
일부 예들에서, MC 1(110) 및 MC 2(112) 각각은 다수의 종점 회로들, 예를 들어, 포트들, 이를테면 4개의 포트들을 포함한다. MC 1(110) 및 MC 2(112)의 종점 회로들 각각은 각각의 NSU(404)와 접속되고, 따라서 MC 1(110) 및 MC 2(112) 각각은 다수의, 예를 들어, 4개의 NSU들(404)에 접속된다. 도 5는 4개의 포트들을 구현하기 위해 각각의 MC 1(110) 및 MC 2(112)가 4개의 NSU들(404)에 접속된 종점 회로들을 포함하는 예를 예시한다. 각각의 NSU(404)는 NoC(122)의 라우팅(408)에 접속되고, 이어서, 이는 다양한 NSU들(404)을 마스터 모듈들에 통신가능하게 커플링하기 위해 다양한 NoC 패킷 스위치들(406)에 접속된다. 다수의 NSU들(404)을 통해 NoC(122)에 접속됨으로써, 소스-대-목적지 라우팅 및 로드 밸런싱에서의 유연성이 제공되고 달성될 수 있다.
추가로, 일부 예들에서, MC 1(110) 및 MC 2(112) 각각은 NoC(122)에 대해 앞서 설명된 바와 같이 별개의 가상 채널들에서 2개의 트래픽 분류들을 지원한다. 이는 상이한 트래픽 분류들이 간섭 없이 MC 1(110) 또는 MC 2(112)의 물리적 NoC 채널 및 포트를 공유하도록 허용한다. 추가로, MC 1(110) 및 MC 2(112)의 다수의 종점 회로들, 예를 들어, 포트들은 개선된 QoS에 대한 상이한 트래픽 분류들의 물리적 분리를 허용한다.
일부 구현들에서, 하나 이상의 메모리 제어기들이 IC 상에 존재할 수 있다(예를 들어, SoC). 각각의 메모리 제어기는 별개의 메모리 채널을 구현할 수 있다. 일부 예들에서, 각각의 메모리 제어기에 대한 액세스는, 마스터 모듈을 각각의 메모리 제어기에 통신가능하게 커플링하도록 NoC(122)를 구성함으로써 마스터 모듈들에 투명할 수 있다. 이는 대역폭 및 저장 양에서 확장가능성을 허용할 수 있다. 마스터 모듈들에 투명한 메모리 제어기들을 추가함으로써, 다수의 메모리 채널들이 대역폭 및 레이턴시와 같은 호환가능한 성능으로 구현될 수 있다.
다수의 메모리 채널들 각각은 별개의 인접한 어드레스 범위를 점유할 수 있거나, 또는 다수의 메모리 채널들이 인터리빙되어 단일의 인접한 어드레스 공간을 제공할 수 있다. 일부 예들에서, 혼합된 방식이 구현될 수 있어서, 예를 들어, 2개의 쌍들을 갖는 4개의 메모리 채널들이 구현되고, 각각의 쌍은 별개의 어드레스 범위를 점유하지만 어드레스들은 각각의 쌍 내에서 인터리빙된다. 구현된 방식은 NoC 라우팅 표들을 통해 프로그래밍가능할 수 있고 마스터 모듈들에 투명할 수 있다. MC 1(110) 및 MC 2(112)는 채널 선택 비트들로서 사용될 수 있는 어드레스 비트들을 무시함으로써 채널 인터리빙을 지원할 수 있다.
채널 인터리빙은 예를 들어, 주어진 애플리케이션에 대한 대역폭 또는 저장 양이 단일 채널의 용량을 초과하고, 사용자가 다수의 채널들에 걸쳐 자원들의 할당을 직접 관리하기를 원하지 않을 때 유용할 수 있다. 채널 인터리빙은 사용자 개입 없이 다수의 채널들에 걸쳐 자동 로드 밸런싱을 제공할 수 있다.
별개의 메모리 채널들 상에 별개의 인접한 어드레스 범위들을 갖는 것은, 사용자가 작업들 사이에 명시적 분리를 원할 때 유용할 수 있다. 예를 들어, 하나의 채널은 비디오 데이터와 같은 시간-민감 또는 실시간 데이터 흐름에 사용될 수 있는 반면, 다른 채널은 범용 프로세싱에 사용될 수 있다.
본 개시의 예들은 일반적으로 메모리 서브시스템을 포함하는 시스템-온-칩(SoC)과 같은 집적 회로들에 관한 것이다. 다양한 예들은 집적 회로의 마스터 회로들과 독립적으로 메모리 제어기를 동작시키는 것을 허용할 수 있고, 확장가능한 통합형 메모리 서브시스템을 허용할 수 있다.
일례에서, 집적 회로는 칩 상의 제1 전력 도메인 내의 제1 마스터 회로; 칩 상의 제2 전력 도메인 내의 제2 마스터 회로; 및 칩 상의 제3 전력 도메인 내의 제1 메모리 제어기를 포함할 수 있고, 제1 마스터 회로 및 제2 마스터 회로 각각은 제1 메모리 제어기를 통해 메모리에 액세스하도록 구성되고, 제1 전력 도메인 및 제2 전력 도메인 각각은 제3 전력 도메인과 별개이고 독립적이다.
일부 이러한 집적 회로에서, 제1 전력 도메인은 제2 전력 도메인과는 별개이고 독립적일 수 있다.
일부 이러한 집적 회로에서, 제1 메모리 제어기는 마스터 회로에 포함되지 않을 수 있다.
일부 이러한 집적 회로에서, 제1 메모리 제어기는 제1 메모리 제어기에 전용인 물리적 블록 내에 있을 수 있다.
이러한 집적 회로는 칩 상에 구성가능한 상호접속 네트워크를 더 포함할 수 있고, 제1 마스터 회로 및 제2 마스터 회로 각각은 제1 메모리 제어기 및 구성가능한 상호접속 네트워크를 통해 메모리에 액세스하도록 구성된다.
일부 이러한 집적 회로는 칩 상의 제4 전력 도메인 내의 제2 메모리 제어기를 더 포함할 수 있고, 제1 마스터 회로 및 제2 마스터 회로 각각은 제2 메모리 제어기 및 구성가능한 상호접속 네트워크를 통해 메모리에 액세스하도록 구성되고, 제1 전력 도메인 및 제2 전력 도메인 각각은 제4 전력 도메인과 별개이고 독립적이다
일부 이러한 집적 회로에서, 제1 메모리 제어기는 제1 어드레스 범위의 메모리에 액세스할 수 있고; 제2 메모리 제어기는 제2 어드레스 범위의 메모리에 액세스하고; 제1 어드레스 범위는 제2 어드레스 범위와 구별될 수 있다.
일부 이러한 집적 회로에서, 제1 메모리 제어기 및 제2 메모리 제어기는 메모리에 대한 액세스를 인터리빙하도록 구성될 수 있다.
일부 이러한 집적 회로에서, 제1 메모리 제어기는 구성가능한 상호접속 네트워크에 접속된 다수의 포트들을 포함할 수 있다.
일부 이러한 집적 회로에서, 제1 메모리 제어기는 구성가능한 상호접속 네트워크의 물리적 채널의 개별적인 가상 채널들을 통해 다수의 트래픽 클래스들의 처리를 가능하게 하도록 구성될 수 있다.
본 개시의 다른 예는 집적 회로를 동작시키는 방법이다. 이러한 방법은 집적 회로의 복수의 마스터 회로들 각각을 복수의 전력 모드들 중 하나에 선택적으로 진입시키는 단계; 및 복수의 마스터 회로들 중 다른 것들 각각의 복수의 전력 모드들 중 선택된 전력 모드와 무관하게 집적 회로의 제1 메모리 제어기를 통해 복수의 마스터 회로들 중 적어도 하나에 의해 메모리에 액세스하는 단계를 포함할 수 있고, 제1 메모리 제어기는 복수의 마스터 회로들의 각각의 개별적인 전력 도메인과 별개인 전력 도메인 내에 있을 수 있다.
일부 이러한 방법에서, 제1 메모리 제어기는 마스터 회로에 포함되지 않을 수 있다.
일부 이러한 방법에서, 제1 메모리 제어기를 통해 복수의 마스터 회로들 중 적어도 하나에 의해 메모리에 액세스하는 단계는, 집적 회로의 구성가능한 상호접속 네트워크를 통해 복수의 마스터 회로들 중 적어도 하나와 제1 메모리 제어기 사이에서 통신하는 단계를 포함한다.
일부 이러한 방법은 집적 회로의 제2 메모리 제어기 및 구성가능한 상호접속 네트워크를 통해 복수의 마스터 회로들 중 적어도 하나에 의해 메모리에 액세스하는 단계를 더 포함할 수 있고, 제2 메모리 제어기는 복수의 마스터 회로들의 각각의 개별적인 전력 도메인과 별개인 전력 도메인 내에 있을 수 있다.
이러한 방법에서, 구성가능한 상호접속 네트워크를 통해 복수의 마스터 회로들 중 적어도 하나와 제1 메모리 제어기 사이에서 통신하는 단계는, 구성가능한 상호접속 네트워크의 물리적 채널의 복수의 가상 채널들 중 적어도 하나를 통해 복수의 마스터 회로들 중 적어도 하나와 제1 메모리 제어기 사이에서 통신하는 단계를 포함한다.
본 개시의 또 다른 예는 집적 회로이다. 이러한 집적 회로는, 칩 상의 프로세싱 시스템; 칩 상의 프로그래밍가능 로직; 칩 상의 구성가능한 상호접속 네트워크; 칩 상의 제1 메모리 제어기 - 프로세싱 시스템 및 프로그래밍가능 로직 각각은 구성가능한 상호접속 네트워크를 통해 제1 메모리 제어기에 통신가능하게 커플링되고, 프로세싱 시스템 및 프로그래밍가능 로직 각각은 제1 메모리 제어기 및 구성가능한 상호접속 네트워크를 통해 메모리에 액세스하도록 구성됨 -; 및 칩 상의 관리 유닛을 포함할 수 있고, 관리 유닛은 제1 메모리 제어기의 동작과 독립적으로 프로세싱 시스템 및 프로그래밍가능 로직의 개별적인 전력 모드들을 제어할 수 있다.
이러한 집적 회로에서, 프로세싱 시스템은 제1 전력 도메인 내에 있을 수 있고; 프로그래밍가능 로직은 제1 전력 도메인과는 별개이고 독립적인 제2 전력 도메인 내에 있을 수 있고; 제1 메모리 제어기는 제1 전력 도메인 및 제2 전력 도메인 각각과는 별개이고 독립적인 제3 전력 도메인 내에 있을 수 있다.
이러한 집적 회로는 칩 상의 제2 메모리 제어기를 더 포함할 수 있고, 프로세싱 시스템 및 프로그래밍가능 로직 각각은 구성가능한 상호접속 네트워크를 통해 제2 메모리 제어기에 통신가능하게 커플링되고, 프로세싱 시스템 및 프로그래밍가능 로직 각각은 제2 메모리 제어기 및 구성가능한 상호접속 네트워크를 통해 메모리에 액세스하도록 구성되고, 관리 유닛은 제2 메모리 제어기의 동작과 독립적으로 프로세싱 시스템 및 프로그래밍가능 로직의 개별적인 전력 모드들을 제어할 수 있다.
일부 이러한 집적 회로에서, 제1 메모리 제어기는 구성가능한 상호접속 네트워크에 접속된 다수의 포트들을 포함할 수 있다.
일부 이러한 집적 회로에서, 구성가능한 상호접속 네트워크는 물리적 채널 상에서 복수의 가상 채널들을 구현하도록 동작가능할 수 있고; 제1 메모리 제어기는 복수의 가상 채널들 중 각각의 가상 채널들을 통해 다수의 트래픽 분류들을 처리하는 것을 가능하게 하도록 구성될 수 있다.
전술한 것은 특정 예들에 관한 것이지만, 다른 예들 및 추가적 예들은 본 개시의 기본 범위를 벗어나지 않고 고안될 수 있으며 본 개시의 범위는 하기 청구항들에 의해 결정된다.

Claims (15)

  1. 집적 회로로서,
    칩 상의 제1 전력 도메인 내의 제1 마스터 회로;
    칩 상의 제2 전력 도메인 내의 제2 마스터 회로; 및
    상기 칩 상의 제3 전력 도메인 내의 제1 메모리 제어기
    를 포함하고,
    상기 제1 마스터 회로 및 상기 제2 마스터 회로 각각은 상기 제1 메모리 제어기를 통해 메모리에 액세스하도록 구성되고, 상기 제1 전력 도메인 및 상기 제2 전력 도메인 각각은 상기 제3 전력 도메인과 별개이고 독립적인 것인, 집적 회로.
  2. 제1항에 있어서,
    상기 제1 전력 도메인은 상기 제2 전력 도메인과 별개이고 독립적인 것인, 집적 회로.
  3. 제1항 또는 제2항에 있어서,
    상기 제1 메모리 제어기는 마스터 회로에 포함되지 않는 것인, 집적 회로.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 메모리 제어기는 상기 제1 메모리 제어기에 전용인 물리적 블록 내에 있는 것인, 집적 회로.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 칩 상에 구성가능한 상호접속 네트워크
    를 더 포함하고,
    상기 제1 마스터 회로 및 상기 제2 마스터 회로 각각은 상기 제1 메모리 제어기 및 상기 구성가능한 상호접속 네트워크를 통해 상기 메모리에 액세스하도록 구성되는 것인, 집적 회로.
  6. 제5항에 있어서,
    상기 칩 상의 제4 전력 도메인 내의 제2 메모리 제어기
    를 더 포함하고,
    상기 제1 마스터 회로 및 상기 제2 마스터 회로 각각은 상기 제2 메모리 제어기 및 상기 구성가능한 상호접속 네트워크를 통해 상기 메모리에 액세스하도록 구성되고, 상기 제1 전력 도메인 및 상기 제2 전력 도메인 각각은 상기 제4 전력 도메인과 별개이고 독립적인 것인, 집적 회로.
  7. 제6항에 있어서,
    상기 제1 메모리 제어기는 제1 어드레스 범위의 메모리에 액세스하고,
    상기 제2 메모리 제어기는 제2 어드레스 범위의 메모리에 액세스하고,
    상기 제1 어드레스 범위는 상기 제2 어드레스 범위와 구별되는 것인, 집적 회로.
  8. 제6항 또는 제7항에 있어서,
    상기 제1 메모리 제어기 및 상기 제2 메모리 제어기는 상기 메모리에 대한 액세스를 인터리브(interleave)하도록 구성되는 것인, 집적 회로.
  9. 제5항 내지 제8항 중 어느 한 항에 있어서,
    상기 제1 메모리 제어기는 상기 구성가능한 상호접속 네트워크에 접속된 다수의 포트들을 포함하는 것인, 집적 회로.
  10. 제5항 내지 제9항 중 어느 한 항에 있어서,
    상기 제1 메모리 제어기는 상기 구성가능한 상호접속 네트워크의 물리적 채널의 개별적인 가상 채널들을 통해 다수의 트래픽 클래스들의 처리를 가능하게 하도록 구성되는 것인, 집적 회로.
  11. 집적 회로를 동작시키는 방법으로서,
    상기 집적 회로의 복수의 마스터 회로들 각각을 복수의 전력 모드들 중 하나에 선택적으로 진입시키는 단계; 및
    상기 복수의 마스터 회로들 중 다른 것들 각각의 상기 복수의 전력 모드들 중 선택된 전력 모드와 무관하게 상기 집적 회로의 제1 메모리 제어기를 통해 상기 복수의 마스터 회로들 중 적어도 하나에 의해 메모리에 액세스하는 단계
    를 포함하고,
    상기 제1 메모리 제어기는 상기 복수의 마스터 회로들의 각각의 개별적인 전력 도메인과 별개인 전력 도메인 내에 있는 것인, 집적 회로를 동작시키는 방법.
  12. 제11항에 있어서,
    상기 제1 메모리 제어기는 마스터 회로에 포함되지 않는 것인, 집적 회로를 동작시키는 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 제1 메모리 제어기를 통해 상기 복수의 마스터 회로들 중 상기 적어도 하나에 의해 상기 메모리에 액세스하는 단계는, 상기 집적 회로의 구성가능한 상호접속 네트워크를 통해 상기 복수의 마스터 회로들 중 상기 적어도 하나와 상기 제1 메모리 제어기 사이에서 통신하는 단계를 포함하는 것인, 집적 회로를 동작시키는 방법.
  14. 제13항에 있어서,
    상기 집적 회로의 제2 메모리 제어기 및 상기 구성가능한 상호접속 네트워크를 통해 상기 복수의 마스터 회로들 중 적어도 하나에 의해 메모리에 액세스하는 단계
    를 더 포함하고,
    상기 제2 메모리 제어기는 상기 복수의 마스터 회로들의 각각의 개별적인 전력 도메인과 별개인 전력 도메인 내에 있는 것인, 집적 회로를 동작시키는 방법.
  15. 제13항에 있어서,
    상기 구성가능한 상호접속 네트워크를 통해 상기 복수의 마스터 회로들 중 상기 적어도 하나와 상기 제1 메모리 제어기 사이에서 통신하는 단계는, 상기 구성가능한 상호접속 네트워크의 물리적 채널의 복수의 가상 채널들 중 적어도 하나를 통해 상기 복수의 마스터 회로들 중 상기 적어도 하나와 상기 제1 메모리 제어기 사이에서 통신하는 단계를 포함하는 것인, 집적 회로를 동작시키는 방법.
KR1020207022976A 2018-02-15 2019-02-13 시스템-온-칩에 대한 메모리 서브시스템 KR20200121301A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/898,183 2018-02-15
US15/898,183 US11709624B2 (en) 2018-02-15 2018-02-15 System-on-chip having multiple circuits and memory controller in separate and independent power domains
PCT/US2019/017896 WO2019160988A1 (en) 2018-02-15 2019-02-13 Memory subsystem for system-on-chip

Publications (1)

Publication Number Publication Date
KR20200121301A true KR20200121301A (ko) 2020-10-23

Family

ID=65529872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207022976A KR20200121301A (ko) 2018-02-15 2019-02-13 시스템-온-칩에 대한 메모리 서브시스템

Country Status (6)

Country Link
US (2) US11709624B2 (ko)
EP (1) EP3752895A1 (ko)
JP (1) JP7344885B2 (ko)
KR (1) KR20200121301A (ko)
CN (2) CN118034482A (ko)
WO (1) WO2019160988A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102671340B1 (ko) * 2023-01-02 2024-05-31 주식회사 잇다반도체 시스템 온 칩 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10955905B2 (en) * 2018-04-11 2021-03-23 North Sea Investment Company Ltd. Apparatus for true power shedding via switchable electrical connections
US11561597B2 (en) 2020-12-02 2023-01-24 Micron Technology, Inc. Memory device power management
US11429292B2 (en) 2020-12-02 2022-08-30 Micron Technology, Inc. Power management for a memory device
US12001288B2 (en) 2021-09-24 2024-06-04 Qualcomm Incorporated Devices and methods for safe mode of operation in event of memory channel misbehavior

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8020163B2 (en) 2003-06-02 2011-09-13 Interuniversitair Microelektronica Centrum (Imec) Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
US7185309B1 (en) 2004-01-30 2007-02-27 Xilinx, Inc. Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip
US7650248B1 (en) 2006-02-10 2010-01-19 Xilinx, Inc. Integrated circuit for in-system signal monitoring
US7831801B1 (en) 2006-08-30 2010-11-09 Xilinx, Inc. Direct memory access-based multi-processor array
US20080320255A1 (en) * 2007-06-25 2008-12-25 Sonics, Inc. Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US20090204837A1 (en) 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
US8171323B2 (en) * 2008-07-01 2012-05-01 Broadcom Corporation Integrated circuit with modular dynamic power optimization architecture
MX2013002773A (es) 2010-09-16 2013-04-05 Apple Inc Controlador de memoria con multiples puertos con puertos asociados con las clases de trafico.
US8612789B2 (en) 2011-01-13 2013-12-17 Xilinx, Inc. Power management within an integrated circuit
US8667192B2 (en) 2011-02-28 2014-03-04 Xilinx, Inc. Integrated circuit with programmable circuitry and an embedded processor system
US8868941B2 (en) * 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
US9423858B2 (en) * 2012-09-27 2016-08-23 Intel Corporation Sharing power between domains in a processor package using encoded power consumption information from a second domain to calculate an available power budget for a first domain
US9105112B2 (en) 2013-02-21 2015-08-11 Apple Inc. Power management for image scaling circuitry
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9330433B2 (en) 2014-06-30 2016-05-03 Intel Corporation Data distribution fabric in scalable GPUs
US9495302B2 (en) * 2014-08-18 2016-11-15 Xilinx, Inc. Virtualization of memory for programmable logic
US10016199B2 (en) * 2014-09-05 2018-07-10 Ethicon Llc Polarity of hall magnet to identify cartridge type
US9846583B2 (en) 2015-12-15 2017-12-19 Xilinx, Inc. Hardware power-on initialization of an SoC through a dedicated processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102671340B1 (ko) * 2023-01-02 2024-05-31 주식회사 잇다반도체 시스템 온 칩 장치

Also Published As

Publication number Publication date
CN111684392B (zh) 2024-04-02
JP2021514079A (ja) 2021-06-03
CN111684392A (zh) 2020-09-18
EP3752895A1 (en) 2020-12-23
WO2019160988A1 (en) 2019-08-22
US20230376248A1 (en) 2023-11-23
CN118034482A (zh) 2024-05-14
US11709624B2 (en) 2023-07-25
JP7344885B2 (ja) 2023-09-14
US20190250853A1 (en) 2019-08-15

Similar Documents

Publication Publication Date Title
CN111684392B (zh) 用于片上系统的存储器子系统
RU2566330C2 (ru) Гетерогенная сеть межсоединений с учетом производительности и трафика
US6772230B2 (en) Field programmable gate array (FPGA) bit stream format
US8356138B1 (en) Methods for implementing programmable memory controller for distributed DRAM system-in-package (SiP)
US6980024B1 (en) I/O circuitry shared between processor and programmable logic portions of an integrated circuit
US20210303509A1 (en) Configurable network-on-chip for a programmable device
CN103210589B (zh) 在芯片上系统中结合独立逻辑块
US20190238453A1 (en) End-to-end quality-of-service in a network-on-chip
US8467218B1 (en) System and apparatus with IC resource interconnect
KR20200062244A (ko) 집적 회로 패키지에 프로그램 가능 디바이스 및 처리 시스템의 통합
US11182110B1 (en) On-chip memory block circuit
US20110268137A1 (en) Communication within an integrated circuit including an array of interconnected programmable logic elements
US11960734B2 (en) Logic fabric based on microsector infrastructure with data register having scan registers
CN110765066B (zh) 一种片上系统
US10872291B2 (en) On-chip communication system for neural network processors
JP2022054412A (ja) マイクロセクタインフラストラクチャに基づくロジックファブリック
US10929331B1 (en) Layered boundary interconnect
US10936486B1 (en) Address interleave support in a programmable device
US20240241650A1 (en) Logic fabric based on microsector infrastructure with data register having scan registers
Francis et al. A network of time-division multiplexed wiring for FPGAs
US20240211138A1 (en) Localized and relocatable software placement and noc-based access to memory controllers
Shermi et al. A novel architecture of bidirectional NoC router using flexible buffer
SHERMI et al. A Novel Architecture of Bidirectional NoC Router with Flexible Buffer
US9077341B1 (en) Programmable matrix for the allocation of communication resources

Legal Events

Date Code Title Description
E902 Notification of reason for refusal