Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
test
Search
a1933b51019
February 14, 2024
Design
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
test
for test
a1933b51019
February 14, 2024
More Decks by a1933b51019
See All by a1933b51019
myread
chungvlong
0
41
Other Decks in Design
See All in Design
デザインワークフローの最前線。 ログラスでのAI活用の現在地
ukaoli
1
3.5k
ポートフォリオ_あやの
ngyenmazt1412
0
2k
Bet AI Day 2026丨デザインハーネス:専門職の判断基準をコードのように運用する
layerx
PRO
6
7.4k
「おすすめ」はなぜ信用されないのか - 信頼を築くUI/UX設計
ryu1013
0
320
少人数チームで_使われるプロダクトにたどり着くための_デザインハーネス.pdf
nishame
1
1.6k
作品が生まれ続けるコミュニティデザイン ― 研究室でも会社でもないサードプレイス ― / designship26-iwaken
iwaken71
0
170
染み出し好きの、 染み出しコントロール論
mukai_takeru
0
500
【CEDEC2026】アートとゲームデザインをつなぐVFX設計『GRANBLUE FANTASY: Relink - Endless Ragnarok』における表現と可読性の両立
cygames
PRO
2
1.6k
MUUUUU.ORG 協賛バナーのご案内
quoitworks999
0
430
Jun Wei Portfolio 2026
wjw100788
PRO
1
360
デザインレビューを「他者へのおすそわけ」に再定義し、たのしい場にする試み
webnaut
0
110
Edmonton River Slidedeck
edmontonriver
0
440
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
The Cult of Friendly URLs
andyhume
79
7k
RailsConf 2023
tenderlove
30
1.6k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
Transcript
File read PHSIM
Case •12KB file •Read 2K ~ 10K file data to
a 8K user buf Virt user buffer physical user buffer Virt data block physical user buffer Page table Share buffer dpu cpu 共享
Virt_buf Virt_data_block Virt_buf 為傳入的參數, 在此read operation中user buffer 的目的地vaddr Virt_data_block 為要讀data的起始virt
addr Filesystem (CPU)
Virt_buf Virt_data_block 使用get user page觸發page fault,使virt user buffer產生對應的physical user buffer
page Filesystem (CPU)
Virt_buf Virt_data_block Pim driver(CPU) Virt_bufxxx Pgd 取得包含virt_buf的pgd指針位置(取得最上層的表的位置) pgd,並填入shared buf
Virt_buf Virt_data_block Pim driver(CPU) Virt_bufxxx Pgd 取得包含virt_buf的pgd指針位置(取得最上層的表的位置) pgd,並填入shared buf pgd
Virt_buf Virt_data_block Pim driver(CPU) 通過計算取得phys_data_block,並填入shared buffer pgd phys_data_block=Virt_data_block- offset
Virt_buf Virt_data_block Pim driver(CPU) 通過計算取得phys_data_block,並填入shared buffer pgd (src)phys_data_block phys_data_block phys_data_block=Virt_data_block-
offset
Virt_buf Virt_data_block Pim driver(CPU) 填入dst (virt_buf)和size和command type pgd (src)phys_data_block Size(8K)
(dst) virt_buf read phys_data_block
Virt_buf Virt_data_block Pim kernel(DPU) 通過pgd和virt_buf找到對應的phys_buf pgd (src)phys_data_block Size(8K) (dst) virt_buf
read phys_data_block Virt_buf phys_buf Pgd
Virt_buf Virt_data_block Pim kernel(DPU) DPU通過pgd和virt_buf找到對應的phys_buf pgd (src)phys_data_block Size(8K) (dst) virt_buf
read phys_data_block Virt_buf phys_buf Pgd phys_buf
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_buf,
2K); memcpy_v(phys_buf, phys_data_block, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_buf,
2K); memcpy_v(phys_buf, phys_data_block, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU
Virt_buf Virt_data_block Pim kernel(DPU) pgd (src)phys_data_block Size(8K) (dst) virt_buf read
phys_data_block phys_buf Virt_buf+2K phys_buf+2K Pgd 通過pgd和(virt_buf+2K)查表找到對應的phys_buf+2K(此處似乎不必要) phys_buf+2K Virt_buf+2K
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_buf+2K,
2K); memcpy_v(phys_buf+2K, phys_data_block+2K, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU phys_buf+2K Virt_buf+2K
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_buf+2K,
2K); memcpy_v(phys_buf+2K, phys_data_block+2K, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU phys_buf+2K Virt_buf+2K
Virt_buf Virt_data_block Pim kernel(DPU) pgd (src)phys_data_block Size(8K) (dst) virt_buf read
phys_data_block phys_buf Virt_buf+4K phys_bufA Pgd 通過pgd和(virt_buf+4K)查表找到對應的值phys_bufA Virt_buf+4K
Virt_buf Virt_data_block Pim kernel(DPU) pgd (src)phys_data_block Size(8K) (dst) virt_buf read
phys_data_block phys_buf Virt_buf+4K phys_bufA Pgd 通過pgd和(virt_buf+4K)查表找到對應的值phys_bufA Virt_buf+4K phys_bufA
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_bufA,
2K); memcpy_v(phys_bufA, phys_data_block+4K, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU Virt_buf+4K phys_bufA
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_bufA,
2K); memcpy_v(phys_bufA, phys_data_block+4K, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU Virt_buf+4K phys_bufA
Virt_buf Virt_data_block Pim kernel(DPU) pgd (src)phys_data_block Size(8K) (dst) virt_buf read
phys_data_block phys_buf Virt_buf+4K phys_bufA Virt_buf+6K phys_bufA+2K Pgd 通過pgd和(virt_buf+6K)查表找到對應的phys_bufA+2K(此處似乎不必要)
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_bufA+2K,
2K); memcpy_v(phys_bufA, phys_data_block+6K, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU Virt_buf+4K phys_bufA
Virt_buf Virt_data_block Pim kernel(DPU) Copy data (到page boundary ) clflush(phys_bufA+2K,
2K); memcpy_v(phys_bufA, phys_data_block+6K, 2K); pgd (src)phys_data_block Size(8K) (dst) virt_buf read phys_data_block phys_buf DPU Virt_buf+4K phys_bufA