AMD-GFX Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Yann Dirson <ydirson@free.fr>
To: Alex Deucher <alexdeucher@gmail.com>,
	 amd-gfx list <amd-gfx@lists.freedesktop.org>
Cc: Rodrigo Siqueira <rodrigo.siqueira@amd.com>
Subject: gpu block diagram
Date: Tue, 7 Dec 2021 23:07:33 +0100 (CET)	[thread overview]
Message-ID: <662096311.37428400.1638914853388.JavaMail.root@zimbra39-e7> (raw)
In-Reply-To: <CADnq5_MQnX6dRJ4-YHjWaSS5PYb1f6BQ4FXNkw9wzDmwQarkrA@mail.gmail.com>

Thanks for the details Alex!

Here is an attempt to formalize the decomposition of a
(mostly Renoir) APU, using plantuml.  That's highly preliminary,
focusing on blocks/sub-blocks/firmware, based on my current
partial (and surely incorrect at places) understanding.
I focused on getting contents quickly, so the formalism itself
is shaky.

Can you spot any error ?  Fill those holes (usually marked with
"?") ?  What additional blocks would make sense (caches at least,
I guess) ?  What additional information would help understand how
they work together (control/data flows, busses...) ?

Indentation is shaky too, better format it to read (e.g. by
pasting in http://www.plantuml.com/plantuml/uml/)

------ >8 -------
@startuml
package "APU" {
 package CPU {
 }
 package GPU {
  package common? [[{"GPU Family"?}]] {
  }
  package GFX [[{Graphics and Compute Engine}]] {
   package CP [[{Command Processor}]] {
    package PFP [[{MicroEngine Compute}]] {
      package "pfp fw" #cccccc {
      }
    }
    package ME [[{MicroEngine ?}]] {
      package "me fw" #cccccc {
      }
    }
    package CE [[{?}]] {
      package "ce fw" #cccccc {
      }
    }
    package MEC [[{MicroEngine Compute}]] {
      package "mec fw" #cccccc {
      }
      package "mec2 fw?" #cccccc {
      }
    }
   }
   package RLC [[{RunList Controller (pm)}]] {
      package "rlc fw" #cccccc {
      }
   }
  }

  package '"management"'<<Cloud>>  {
  package MES [[{Micro-Engine Scheduler}]] {
  }
  package SMU [[{System Mamagement Unit}]] {
  }
  package PSP [[{Platform Security Processor}]] {
    package "asd fw" #cccccc {
    }
    package "ta fw" #cccccc {
    }
  }

  package IH [[{Interrupt Handler}]] {
  }
  package GMC [[{Graphics Memory Controller}]] {
  }
  package SDMA [[{System DMA}]] {
    package "sdma fw" #cccccc {
    }
  }
  }

  package DM [[{Display Manager, link to...}]] {
   package "DMUB? DMU?" [[{Display Micro-Controller Unit}]] {
    package "dmcub fw" #cccccc {
    }
   }
   package ... {
   }
  }

  package multimedia <<Cloud>> {
   package .... {
   }
   package VCN {
    package "vcn fw" #cccccc {
    }
   }
   package JPEG {
   }
  }
 }
}
@enduml
------ >8 -------

  reply	other threads:[~2021-12-07 22:07 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1473700406.26541073.1638716639650.JavaMail.root@zimbra39-e7>
2021-12-05 20:18 ` Looking for clarifications around gfx/kcq/kiq Yann Dirson
2021-12-06 20:01   ` Alex Deucher
2021-12-07 22:07     ` Yann Dirson [this message]
2021-12-09  4:49       ` gpu block diagram Alex Deucher
2021-12-10 20:36     ` Looking for clarifications around gfx/kcq/kiq Yann Dirson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=662096311.37428400.1638914853388.JavaMail.root@zimbra39-e7 \
    --to=ydirson@free.fr \
    --cc=alexdeucher@gmail.com \
    --cc=amd-gfx@lists.freedesktop.org \
    --cc=rodrigo.siqueira@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox