Tags:

เรื่องหลักการคิด ผมพอเข้าใจอยู่บ้างนะครับ ว่า

1 GB = 1,000,000,000 ไบต์ (หนึ่งพันล้านไบต์) ใช้ในหน่วยความจำของคอมพิวเตอร์ และในวิศวกรรมสื่อสาร
1 GB = 1,073,741,824 ไบต์ ซึ่งเท่ากับ 10243 หรือ 230 ไบต์ มีใช้ในระบบปฏิบัติการ วิศวกรรมคอมพิวเตอร์ และวิทยาการคอมพิวเตอร์

แล้วหากผมซื้อ Micro SD 128 GB มาใส่โทรศัพท์ ที่ถูกต้องควรจะมองเห็นเป็นเท่าไหร่ครับ
หากเอาหลักการข้างต้น มา หาร แล้ว จะได้ 119.2092895507813 เท่ากับ ประมาณ 119 GB ใช่มั้ยครับ

แต่ทำไมโทรศัพท์ มันบอกว่า 117 GiB (125,619,404,800 bytes) เองอ่ะ
นี่คือ Capacity ทั้งหมดนะครับ ไม่ได้ตัดการฟอร์แมต หรือไฟล์ระบบซ่อนอะไรเลย

*** คือ ผมไม่ได้ท้วง หรือ ออกมากล่าวว่าอะไรหรอกนะครับ

แค่ งงๆ สับสนว่า ตกลงเค้ามีวิธีคิดยังไงกันแน่

Get latest news from Blognone
By: McKay
ContributorAndroidWindowsIn Love
on 1 July 2017 - 19:48 #996094
McKay's picture

ต้องบอกก่อนว่า SDCard นั้นจริงๆใช้ NAND Flash นั่นแหละครับ ซึ่งพื้นที่จริงๆบน NAND Flash ก็คิดแบบ 1024 byte ครับ (จริงๆ SSD ต่างๆก็ใช้แบบนี้ ที่ส่วนมากเอาไปคิดแบบ 1000 byte นั่นก็เพื่อการทำ over-provisioning 7%)

ทีนี้ SD ที่ชื่อเต็มว่า Secure Digital นั้นจะมีพื้นที่ที่เรียกว่า Protected Area ซึ่งพื้นที่ตรงนี้จะกันไว้เพื่อให้ใช้งานฟีเจอร์ CPRM และพื้นที่บางส่วน'อาจ'กันไว้ทำ over-provisioning(เหมือน SSD เช่นของ Dell) ส่วนพื้นที่ที่เหลือที่เป็น userspace นั้นจะถูกรายงานกับ host controller เป็น C_SIZE ครับ

ซึ่งการคำนวนพื้นที่ในกรณีนี้(128GB) จะใช้สูตร
Capacity=(C_SIZE+1) x 512KiB ครับ (ขนาดอื่นๆน่าจะดูได้จาก wiki)

จากตัวเลขที่คุณให้มา ตัวเลขนั้นก็เป็นค่าที่หารด้วย 524288 ได้ลงตัว ดังนั้นจึงเป็นค่าปกติครับ


In Soviet Warcraft, Argus comes to you.

By: Jose
Windows PhoneAndroidSymbianUbuntu
on 1 July 2017 - 19:58 #996095 Reply to:996094
Jose's picture

ขอบคุณครับ แม้จะลองคำนวณตามแล้ว งงๆ ออกมาไม่ตรงเท่าไหร่ แฮ่ะๆ

แต่ก็ขอบคุณที่ช่วยให้ผมรู้ว่า มันไม่ใช่แค่ เอาความจุ มาหาร ตรงๆ ฮ่าๆๆ ^_^