IP Library Granted Patent US 12,737,296
Granted Patent B2
US 12,737,296 · App. 18/607,128 · Granted Sep 15, 2026

Scalable system on a chip

Inventors: Per H. Hammarlund (Sunnyvale, CA); Lior Zimet (Kerem Maharal, IL); James Vash (San Ramon, CA); Gaurav Garg (Santa Clara, CA); Sergio Kolor (Haifa, IL); Harshavardhan Kaushikkar (Santa Clara, CA); Ramesh B. Gunna (San Jose, CA); Steven R. Hutsell (San Jose, CA)
Assignee: Apple Inc.
G06F12/0831G06F12/0811G06F12/0815G06F12/109G06F12/128G06F13/161G06F13/1668G06F13/28G06F13/4068G06F15/17368G06F15/7807G06F2212/305G06F2212/657
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,737,296
App. No.
18/607,128
Granted
Sep 15, 2026
Kind
B2
Abstract

A system including a plurality of processor cores, a plurality of graphics processing units, a plurality of peripheral circuits, and a plurality of memory controllers is configured to support scaling of the system using a unified memory architecture.

Claims (38)

1 . A system, comprising:

a plurality of processor cores;

a plurality of graphics processing units;

a plurality of peripheral devices distinct from the processor cores and the graphics processing units;

a plurality of memory controller circuits configured to interface with a system memory; and

an interconnect fabric configured to provide communication between the memory controller circuits and the processor cores, the graphics processing units, and the peripheral devices;

wherein the processor cores, the graphics processing units, the peripheral devices and the memory controller circuits are configured to communicate via a unified memory architecture in which adjacent blocks of a given page within a unified address space defined by the unified memory architecture are distributed among the plurality of memory controller circuits; and

wherein the processor cores, the graphics processing units, the peripheral devices, the memory controller circuits, and the interconnect fabric are included in a system on a chip (SOC) integrated onto one or more co-packaged semiconductor dies.

2 . The system of claim 1 , wherein the processor cores, the graphics processing units, and the peripheral devices are configured to access any address within the unified address space defined by the unified memory architecture.

3 . The system of claim 2 , wherein the unified address space is a virtual address space distinct from a physical address space provided by the system memory.

4 . The system of claim 1 , wherein the unified memory architecture provides a common set of semantics for memory access by the processor cores, the graphics processing units, and the peripheral devices.

5 . The system of claim 4 , wherein the semantics include memory ordering properties.

6 . The system of claim 4 , wherein the semantics include quality of service attributes.

7 . The system of claim 4 , wherein the semantics include cache coherency.

8 . The system of claim 1 , wherein the memory controller circuits include respective interfaces to one or more memory devices that are mappable to random access memory.

9 . The system of claim 8 , wherein the one or more memory devices comprise dynamic random access memory (DRAM).

10 . The system of claim 1 , further comprising:

one or more levels of cache between the processor cores, the graphics processing units, the peripheral devices, and the system memory.

11 . The system of claim 10 , wherein the memory controller circuits include respective memory caches interposed between the interconnect fabric and the system memory, wherein the respective memory caches are one of the one or more levels of cache.

12 . The system of claim 1 , further comprising:

a plurality of directories configured to track a coherency state of subsets of the unified address space, wherein the plurality of directories are distributed in the system.

13 . The system of claim 12 , wherein the plurality of directories are distributed to the memory controller circuits.

14 . The system of claim 1 , wherein a given memory controller circuit of the memory controller circuits comprises a directory configured to track a plurality of cache blocks that correspond to data in a portion of the system memory to which the given memory controller circuit interfaces;

wherein the directory is configured to track which of a plurality of caches in the system are caching a given cache block of the plurality of cache blocks; and

wherein the directory is precise with respect to memory requests that have been ordered and processed at the directory even in an event that the memory requests have not yet completed in the system.

15 . The system of claim 14 , wherein the given memory controller circuit is configured to issue one or more coherency maintenance commands for the given cache block based on a memory request for the given cache block;

wherein the one or more coherency maintenance commands include a cache state for the given cache block in a corresponding cache of the plurality of caches; and

wherein the corresponding cache is configured to delay processing of a given coherency maintenance command based on the cache state in the corresponding cache not matching the cache state in the given coherency maintenance command.

16 . The system of claim 14 , wherein a first cache is configured to store the given cache block in a primary shared state and a second cache is configured to store the given cache block in a secondary shared state; and

wherein the given memory controller circuit is configured to cause the first cache to transfer the given cache block to a requestor based on a memory request and the primary shared state in the first cache.

17 . The system of claim 14 , wherein the given memory controller circuit is configured to issue one of a first coherency maintenance command and a second coherency maintenance command to a first cache of the plurality of caches based on a type of a first memory request;

wherein the first cache is configured to forward a first cache block to a requestor that issued the first memory request based on the first coherency maintenance command; and

wherein the first cache is configured to return the first cache block to the given memory controller circuit based on the second coherency maintenance command.

18 . A method, comprising:

communicating, via a unified memory architecture, among a plurality of processor cores, a plurality of graphics processing units, a plurality of peripheral devices distinct from the plurality of processor cores and the plurality of graphics processing units, and a plurality of memory controller circuits over an interconnect fabric in a system, wherein the processor cores, the graphics processing units, the peripheral devices, the memory controller circuits, and the interconnect fabric are included in a system on a chip (SOC) integrated onto one or more co-packaged semiconductor dies; and

distributing, in the SOC, adjacent blocks of a given page within a unified address space defined by the unified memory architecture among the plurality of memory controller circuits for storage in memory.

19 . The method of claim 18 , wherein the processor cores, the graphics processing units, and the peripheral devices are configured to access any address within the unified address space defined by the unified memory architecture.

20 . The method of claim 18 , wherein the unified memory architecture provides a common set of semantics for memory access by the processor cores, the graphics processing units, and the peripheral devices.

Continuity (3)
Continuation 17821296 · Aug 22, 2022
Provisional Application 63235979 · Aug 23, 2021
Related Publication 20240370371A1 · Nov 7, 2024
References Cited (133)
US 5893160A · Loewenstein et al. · 1999 [cited by applicant]
US 5897657A · Hagersten et al. · 1999 [cited by applicant]
US 6049847A · Vogt et al. · 2000 [cited by applicant]
US 6111582A · Jenkins · 2000 [cited by applicant]
US 6263409B1 · Haupt · 2001 [cited by applicant]
US 6976115B2 · Creta et al. · 2005 [cited by applicant]
US 7098541B2 · Adelmann · 2006 [cited by applicant]
US 7171534B2 · Hargis et al. · 2007 [cited by applicant]
US 7340548B2 · Love · 2008 [cited by applicant]
US 7373449B2 · Radulescu et al. · 2008 [cited by applicant]
US 7480770B2 · Zeffer et al. · 2009 [cited by applicant]
US 7580309B2 · Yang et al. · 2009 [cited by applicant]
US 7702875B1 · Ekman · 2010 [cited by examiner]
US 7721035B2 · Utsumi · 2010 [cited by applicant]
US 8190820B2 · Thantry et al. · 2012 [cited by applicant]
US 8190855B1 · Ramey et al. · 2012 [cited by applicant]
US 8260996B2 · Wolfe · 2012 [cited by applicant]
US 8291245B2 · Nguyen et al. · 2012 [cited by applicant]
US 8321650B2 · Steinmetz et al. · 2012 [cited by applicant]
US 8327187B1 · Metcalf · 2012 [cited by applicant]
US 8458386B2 · Smith · 2013 [cited by applicant]
US 8670261B2 · Crisp et al. · 2014 [cited by applicant]
US 8732496B2 · Wyatt · 2014 [cited by applicant]
US 8751864B2 · Swanson et al. · 2014 [cited by applicant]
US 8786069B1 · Haba et al. · 2014 [cited by applicant]
US 8874855B2 · Conte · 2014 [cited by applicant]
US 8959270B2 · de Cesare · 2015 [cited by applicant]
US 9009368B2 · White · 2015 [cited by applicant]
US 9029234B2 · Safran et al. · 2015 [cited by applicant]
US 9170946B2 · Hum et al. · 2015 [cited by applicant]
US 9201608B2 · Hendry et al. · 2015 [cited by applicant]
US 9244874B2 · Hearn et al. · 2016 [cited by applicant]
US 9348762B2 · Fahs et al. · 2016 [cited by applicant]
US 9355034B2 · Lepak et al. · 2016 [cited by applicant]
US 9405303B2 · Zikes et al. · 2016 [cited by applicant]
US 9424191B2 · Cherukuri et al. · 2016 [cited by applicant]
US 9442869B2 · Easwaran · 2016 [cited by applicant]
US 9620181B2 · Li · 2017 [cited by applicant]
US 9678564B2 · Fatemi · 2017 [cited by applicant]
US 9747225B2 · Roth · 2017 [cited by applicant]
US 10153006B2 · Hamada · 2018 [cited by applicant]
US 10230476B1 · Akhter · 2019 [cited by examiner]
US 10403333B2 · Brandl et al. · 2019 [cited by applicant]
US 10523585B2 · Davis et al. · 2019 [cited by applicant]
US 10534719B2 · Beard et al. · 2020 [cited by applicant]
US 10585826B2 · Jayasena · 2020 [cited by applicant]
US 10673439B1 · Ahmad · 2020 [cited by applicant]
US 10733350B1 · Prasad · 2020 [cited by applicant]
US 11016810B1 · Parikh · 2021 [cited by applicant]
US 11061850B2 · Safranek et al. · 2021 [cited by applicant]
US 11327786B2 · Hay · 2022 [cited by applicant]
US 11544193B2 · Vash et al. · 2023 [cited by applicant]
US 20040261078A1 · Abou-Emara · 2004 [cited by examiner]
US 20050138260A1 · Love · 2005 [cited by applicant]
US 20050195835A1 · Savage · 2005 [cited by applicant]
US 20070233932A1 · Collier et al. · 2007 [cited by applicant]
US 20080082751A1 · Okin et al. · 2008 [cited by applicant]
US 20080162869A1 · Kim et al. · 2008 [cited by applicant]
US 20090083488A1 · Madriles Gimeno · 2009 [cited by applicant]
US 20090305463A1 · Bartley et al. · 2009 [cited by applicant]
US 20100037024A1 · Brewer et al. · 2010 [cited by applicant]
US 20100042759A1 · Srinivasan et al. · 2010 [cited by applicant]
US 20100095039A1 · Marietta · 2010 [cited by applicant]
US 20100169581A1 · Sheaffer et al. · 2010 [cited by applicant]
US 20100274941A1 · Wolfe · 2010 [cited by applicant]
US 20110252180A1 · Hendry et al. · 2011 [cited by applicant]
US 20120069034A1 · Biswas et al. · 2012 [cited by applicant]
US 20120089761A1 · Ryu · 2012 [cited by applicant]
US 20120096295A1 · Krick · 2012 [cited by applicant]
US 20120144104A1 · Gibney · 2012 [cited by examiner]
US 20130318308A1 · Jayasimha et al. · 2013 [cited by applicant]
US 20140022263A1 · Hartog et al. · 2014 [cited by applicant]
US 20140149686A1 · Blaner et al. · 2014 [cited by applicant]
US 20140201500A1 · Niell et al. · 2014 [cited by applicant]
US 20140289435A1 · Lakshmanamurthy et al. · 2014 [cited by applicant]
US 20140325129A1 · Ahlquist · 2014 [cited by examiner]
US 20140365796A1 · Han et al. · 2014 [cited by applicant]
US 20150113193A1 · De Cesare · 2015 [cited by applicant]
US 20150331826A1 · Ghosh et al. · 2015 [cited by applicant]
US 20160182398A1 · Davis et al. · 2016 [cited by applicant]
US 20160378701A1 · Niell · 2016 [cited by applicant]
US 20170220499A1 · Gray · 2017 [cited by applicant]
US 20170269666A1 · Patil · 2017 [cited by examiner]
US 20190018815A1 · Fleming et al. · 2019 [cited by applicant]
US 20190079877A1 · Gaur · 2019 [cited by applicant]
US 20190103148A1 · Hasbun · 2019 [cited by examiner]
US 20190340313A1 · Adler et al. · 2019 [cited by applicant]
US 20190340314A1 · Boesch et al. · 2019 [cited by applicant]
US 20190361770A1 · Geng et al. · 2019 [cited by applicant]
US 20190378238A1 · Ramadoss et al. · 2019 [cited by applicant]
US 20200074713A1 · Schluessler et al. · 2020 [cited by applicant]
US 20200081850A1 · Singh et al. · 2020 [cited by applicant]
US 20200151005A1 · Park et al. · 2020 [cited by applicant]
US 20200183854A1 · Johns et al. · 2020 [cited by applicant]
US 20200341536A1 · Waugh · 2020 [cited by applicant]
US 20210097013A1 · Saleh et al. · 2021 [cited by applicant]
US 20230069310A1 · Myronenko · 2023 [cited by examiner]
CN 100349147 · 2007 [cited by applicant]
CN 101477512A · 2009 [cited by applicant]
CN 103914405A · 2014 [cited by applicant]
CN 104008084A · 2014 [cited by applicant]
EP 1008047A1 · 2000 [cited by applicant]
EP 2463781A2 · 2011 [cited by applicant]
EP 2490100A1 · 2012 [cited by applicant]
EP 3198460A1 · 2017 [cited by applicant]
EP 3314445B1 · 2019 [cited by applicant]
EP 3764270A1 · 2021 [cited by applicant]
KR 101598746B1 · 2016 [cited by applicant]
TW I720926B · 2021 [cited by applicant]
WO 2014185917A1 · 2014 [cited by applicant]
WO 2017112198A1 · 2017 [cited by applicant]
Office Action in Japanese Patent Application No. 2024-510654 mailed Mar. 3, 2025, 11 pages. [cited by applicant]
Extended European Search Report in Appl. No. 22861975.5 mailed Jun. 3, 2025, 9 pages. [cited by applicant]
Lenoski et al., The Directory-Based Cache Coherence Protocol for the DASH Multiprocessor, Computer Sustems Laboratory, Stanford University, CA 94305, 1990 IEEE12 pages. [cited by applicant]
Raghavan et al., Token Tenure: PATCHing Token Counting Using Directory-Based Cache Coherence, University of Pennsylvania, ScholarlyCommons, Technical Reports CIS, http://repository.upenn.edu/cis_reports/903, http://repo… [cited by applicant]
SRWO, PCT/US2021049777, mailed Dec. 22, 2021, 12 pages. [cited by applicant]
SRWO, PCT/US2021/049780, mailed Dec. 20, 2021, 18 pages. [cited by applicant]
U.S. Appl. No. 17/868,495, filed Jul. 20, 2022. [cited by applicant]
U.S. Appl. No. 17/337,805, filed Jun. 3, 2021, 55 pages. [cited by applicant]
Notice of Allowance in U.S. Appl. No. 17/315,725 mailed Aug. 23, 2022, 11 pages. [cited by applicant]
U.S. Appl. No. 17/821,305, filed Aug. 22, 2022. [cited by applicant]
U.S. Appl. No. 17/821,312, filed Aug. 22, 2022. [cited by applicant]
Office Action in U.S. Appl. No. 17/246,311 mailed Aug. 29, 2022, 13 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/337,805 mailed Sep. 6, 2022, 8 pages. [cited by applicant]
Office Action in U.S. Appl. No. 17/353,349 mailed Sep. 12, 2022, 6 pages. [cited by applicant]
Cabarcas et al., Interleaving Granularity on High Bandwidth Memory Architecture for CMPs, 2010, IEEE, 8 pages (Year: 2010). [cited by applicant]
Hansson et al., “An On-Chip Interconnect and Protocol Stack for Multiple Communication Paradigms and Programming Models”, Harware/Software Codesign and System Synthesis Conference, Grenoble, France, Oct. 11-16, 2009, 10… [cited by applicant]
Office Action in U.S. Appl. No. 17/821,312 mailed Jan. 18, 2023, 9 pages. [cited by applicant]
International Search Report and Written Opinion in PCT Appl. No. PCT/US2022/041189 mailed Dec. 6, 2022, 17 pages. [cited by applicant]
Office Action in ROC (Taiwan) Pat. Appln. No. 111131730 mailed Jul. 6, 2023, 12 pages. [cited by applicant]
Extended European Search Report in Appl. No. 24165580.2 mailed Dec. 4, 2024, 8 pages. [cited by applicant]
Bharadwaj Srikant et al., “Kite: A Family of Heterogeneous Interposer Topologies Enabled via Accurate Interconnect Modeling,” Aug. 24, 2020 (Aug. 24, 2020), pp. 1-6, XP093319286. [cited by applicant]
Nikolic, Stefan et al., “Global Is the New Local: FPGA Architecture at 5nm and Beyond”, THE 2021 ACM/SIGDA International Symposium on Field Programmable Gate Arrays, ACMPUB27, Feb. 17, 2021, pp. 34-44, XP058563361. [cited by applicant]