# http://www.graphviz.org/content/cluster digraph Memory { node [shape=rectangle, fontname=Handlee, width=3]; edge [dir = back ]; subgraph cluster_computer { label = "Machine"; labeljust=r; subgraph cluster_cpu { label = "CPU"; subgraph cluster_core { label = "CPU Core"; reg[label = "L0: Registers (tiny, fast)"]; l1cache[label = "L1: CPU core cache"]; } l2cache[label = "L2: Shared cache"]; l3cache[label = "L3: Cache"]; } mem[label = "RAM"]; disk[label = "Local storage (SSD, HDD: Huge, slow)"]; } reg -> l1cache -> l2cache; l2cache -> l3cache [constrained = false]; l3cache -> mem -> disk; }