โปรดศึกษาและยอมรับนโยบายส่วนบุคคนก่อนเริ่มใช้งาน [นโยบายส่วนบุคคล]
ยอมรับ
อะไรคือ CPU 64-bit และ ทำไม! เห็นแรมไม่ครบ 4 GB
vchukkrit
#1
19-04-2011 - 19:39:09

#1 vchukkrit  [ 19-04-2011 - 19:39:09 ]








อะไรคือ CPU 64-bit


ใน Computer Architecture นั้น 64-bit เป็นการขยายของการใช้ integer, floating point, memory address หรือ ชนิดข้อมูลอื่นๆ ที่ต้องการใส่ข้อมูลที่มีขนาดความกว้างของข้อมูลมากถึง 64 bit (8 octets) โดยที่รายละเอียดของ CPU และ สถาปัตยกรรม ALU บน register, address buses, หรือ data buses ต้องมีขนาดเท่านั้นด้วย

โดยในปี 2004 ได้มี CPU 64-bit CPU เป็นพื้นฐานสำหรับตลาดระดับ Server และเตรียมพร้อมสำหรับการเข้าสู่สายการผลิตหลักของตลาด Personal Desktop โดยการเข้ามาของ AMD64 (AMD), EM64T (Intel) และ PowerPC 970 (G5 จาก IBM)


ความเหมือนที่แตกต่างของ CPU 32-bit และ 64-bit

นับแต่อดีตถึงปัจจุบันปริมาณข้อมูล ที่ใช้ในการประมวลผลต่อ 1 รอบสัญญาณนาฬิกามีจำนวนมากขึ้น อย่างไม่มีที่สิ้นสุด การเปลี่ยนแปลงจาก 16-bit ในอดีตเมื่อ 10 ปีก่อน มา 32-bit ในปัจจุบัน และกำลังก้าวเข้าสู่โลก 64-bit ได้สร้างปรากฎการณ์ใหม่ให้กับโลกคอมพิวเตอร์ได้อย่างมากมาย ทั้งในด้านจำนวนข้อมูลที่ส่งต่อในระบบภายในที่มีจำนวนมากขึ้น และความเหมือนจริงในการทำงานด้านมัลติมีเดียต่าง ๆ มากมาย ยังผลให้ ข้อมูลที่เข้าสู่กระบวนการประมวลผลนั้นมากตามไปด้วย ซึ่งไม่ได้เกี่ยวข้องในส่วนของความเร็วในการประมวลผลแต่ประการใด เป็นเพียงเพิ่มความหนาแน่นของข้อมูลต่อชุด ในการประมวลต่อครั้งเท่านั้น

จากที่ได้กล่าวไปแล้วนั้นว่าความแตกต่างในทั้งสอง ไม่ได้แตกต่างกันที่ความเร็ว ขยายความให้เข้าใจได้ง่ายคือ สัญญาณนาฬิกายังคงมีความเร็วเท่าเดิม แต่ความหนาแน่นของข้อมูลต่อชุดคำสั่งมีมากขึ้นนั้น เราอาศัยการเปรียบเทียบที่ memory addrees ระหว่าง 32-bit และ 64-bit โดยที่ 32-bit นั้นมี memory address ได้ 4Gbytes เท่านั้น แต่ใน 64-bit นั้น มี memory address ถึง 16 Ebytes (~17,179,869,184 Gbytes) ทำให้เกิดความได้เปรียบในด้านความเร็วในการทำงานใน software ที่ต้องการ การไหลของข้อมูลในปริมาณที่มาก ๆ เช่นการเล่นเกม, ระบบฐานข้อมูลใหญ่ ๆ , ระบบที่ต้องการความละเอียดต่อการประมวลผลมาก ๆ เช่นการ Simulate, Render, Retouch, Lenear Editing ฯลฯ แต่หากเป็น software โดยทั่วไปแล้ว แทบจะไม่เห็นความแตกต่าง แต่อย่างใด
"ปัญหาของระบบ 32-bit ที่ทำให้เกิด 64-bit ขึ้นมาในปัจจุบันคือ ขนาดของหน่วยความจำหลัก (RAM Memory) มีจำกัดเกินกว่าจะยอมรับได้แล้ว"

CPU 32-bit นั้นมีความต้องหน่วยความจำหลักได้มากสุดที่ 4Gbytes เท่านั้น แล้ว 4Gbytes มาจากไหนหล่ะ ?
คำตอบคือ 32-bit register นั้นมาจาก 2 ยกกำลัง 32 หรือมีขนาดที่ 4Gbytes ของหน่วยความจำหลัก (RAM memory) นั้นเอง

นั้นหมายความว่า CPU 64-bit นั้นมีความต้องหน่วยความจำหลักได้มากสุดที่ ….. 16 Ebytes * (~17,179,869,184 Gbytes) นั้นเอง ซึ่งมาจาก 2 ยกกำลัง 64 หรือมีขนาดที่ 16 Ebytes ของหน่วยความจำหลัก (RAM memory)
* Ebytes อ่านว่า เอ๊กซาไบต์ (Exabyte)

quote :

232 = 4,294,967,296 bytes
=~ 4 Gbytes
264 = 18,446,744,073,709,551,616 bytes
= ~ 16 Ebytes หรือ 17,179,869,184 Gbytes



แล้วมันแตกต่างกันตรงไหนในด้านการประมวลผล ?

การประมวลผลจริง ๆ แล้วไม่แตกต่างกันในเชิงความเร็วมากนัก ดังที่ได้กล่าวไแล้ว แต่จะแตกต่างนั้นอยู่ที่ ความหน่าแน่นของข้อมูลที่ประมวลผลต่อสัญญาณมาฬิกามีมากขึ้น ตัวอย่างเช่น

คุณชมภาพยนต์ในจอคอมพิวเตอร์จากแผ่น VCD (เทียบได้กับ 32-bit) และ DVD (เทียบได้กับ 64-bit) ถ้าคุณได้รับชมผ่าน VCD ในจอคอมพิวเตอร์คุณได้ภาพที่เล็ก และไม่ละเอียด เท่ากับ DVD ที่มีภาพที่ละเอียดกว่า และยังขยายขนาดของภาพให้ Full Srceen ได้โดยภาพไม่แตกเหมือน VCD
คุณเล่นเกม ภาพที่ได้จะมีมิติมากขึ้นกว่าเดิม แสงเงาต่าง ๆ จะสมจริงมากขึ้น แต่ไม่ได้ทำให้การประมวลเร็วขึ้นแต่อย่างใด
ฯลฯ

แต่ทั้งนี้ทั้งนั้น ต้องขึ้นอยู่กับ Software ที่นำมาทำงานร่วมกับ CPU 64-bit ด้วยว่าสนับสนุนการทำงานนี้หรือไม่ มิเช่นนั้นก็ไม่สามารถใช้งาน CPU 64-bit ได้อย่างมีประสิทธิภาพดังที่ตั้งใจไว้
สรุปให้เข้าใจง่าย ๆ ว่า 64-bit เป็นการทำให้การประมวลผลต่อครั้งมีความละเอียดมากขึ้น ไม่ใช่เร็วมากขึ้น อย่างที่ หลาย ๆ คนเข้าใจ แต่การเร่งความเร็วในการประมวลผล น่าจะเป็นในส่วนของ Dual Core CPU มากกว่า แต่การทำให้ Dual Core CPU สามารถใช้งานได้ดีและเต็มประสิทธิภาพนั้น จำเป็นอย่างมากที่ software ที่เราใช้ต้องสนับสนุนระบบ Multiprocessor ด้วยเช่นกัน


ข้อมูลจาก: http://www.thaicyberpoint.com/ford/blog/id/165/


แก้ไขล่าสุดเมื่อ 2012-10-01 16:49:09


vchukkrit
#2
19-04-2011 - 19:40:09

#2 vchukkrit  [ 19-04-2011 - 19:40:09 ]








พื้นที่ในฮาร์ดดิสค์หายไปไหน

quote :
"เพิ่งไปซื้อคอมมา เป็นฮาร์ดดิสค์ 80 GB พอเอากลับบ้านมาดู มันแจ้งว่ามีสองไดรฟ์ คือ C กับ D แต่รวมกันแล้วได้แค่ 75 GB งงจังว่ามันหายไปไหนอีก 5 GB เหรอคะ ผู้รู้ช่วยอธิบายให้ด้วยค่ะ"


ในโรงงานมันคือเป็น

80,000,000,000 Bytes ~ 80GB
80,000,000 KBytes ~ 80GB
80,000 MBytes ~ 80GB
80 GBytes ~ 80GB

จริงๆ โรงงานต้องการให้มันง่ายเลยใช้ 1,000 Bytes = 1Kbytes ครับ แต่จริงๆ มันคือ 1,024Bytes นะครับ

ตามหลักในคอมฯ มันคือคือ

1,024 Bytes = 1 KBytes
1,048,576 Bytes = 1 MBytes
1,073,741,824 Bytes = 1 GBytes
1,099,511,627,776 Bytes = 1TBytes

เพราะฉะนั้น มันก็คือ

(((80,000,000,000 Bytes / 1,024) / 1,024 ) / 1,024) = 74.50580596923828125 GBytes

มันเป็นไปตามฉะนี้แล …………


การแปลง byte เป็นหน่วยต่าง ๆ

ทำไมมันต้อง 1,024 Bytes ทำไม ไม่ 1,000 เพราะคอมพิวเตอร์ใช้หลักการเปิดปิด ของกระแสไฟฟ้า หรือ 0 และ 1 ซึ่งเป็นเลขฐาน 2 ในทางคณิตศาสตร์ ครับ

ดูจากตารางด้านล่างนี้ ถ้าเป็นหน่วยนับ SI นั้น ยกตัวอย่างจาก kB จะเป็น 10^3 ครับ แต่ ถ้าเราแปลงเลขฐานเป็น Binary หรือ 0 และ 1 ทางคอมพิวเตอร์แล้วเนี่ย จะเป็น 210 แทน ครับ

SI prefix Binary prefixes
Name Symbol Multiple
kilobyte kB 103 (or 210)
megabyte MB 106 (or 220)
gigabyte GB 109 (or 230)
terabyte TB 1012 (or 240)
petabyte PB 1015 (or 250)
exabyte EB 1018 (or 260)
zettabyte ZB 1021 (or 270)
yottabyte YB 1024 (or 280)

kibibyte KiB 210
mebibyte MiB 220
gibibyte GiB 230
tebibyte TiB 240
pebibyte PiB 250
exbibyte EiB 260

ตารางจาก http://en.wikipedia.org/wiki/Byte

ดังนั้น
210 = 1,024
220 = 1,048,576
230 = 1,073,741,824
240 = 1,099,511,627,776

หรือ

Log2 1,024 = 10
Log2 1,048,576 = 20
Log2 1,073,741,824 = 30
Log2 1,099,511,627,776 = 40

ข้อมูลจาก: http://www.thaicyberpoint.com/ford/blog/id/82/


แก้ไขล่าสุดเมื่อ 2012-10-01 16:23:41


vchukkrit
#3
19-04-2011 - 20:07:04

#3 vchukkrit  [ 19-04-2011 - 20:07:04 ]








ข้อจำกัด Memory และ Address Space

ประเภทหน่วยความจำ

- User-mode virtual address space for each 32-bit process

Limit on X86 @ 2 GB เพิ่มเป็น 3 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE และ 4GT
Limit on X64 @ 2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (default)
4 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE set

- User-mode virtual address space for each 64-bit process

Limit on X86 @ ไม่สามารถใช้งาน
Limit on X64 @ With IMAGE_FILE_LARGE_ADDRESS_AWARE set (default):
x64: 8 TB
Intel Itanium-based systems: 7 TB
2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared

- Kernel-mode virtual address space

Limit on X86 @ 2 GB จาก 1 GB อัพสูงสุดที่ 2 GB with 4GT
Limit on X64 @ 8 TB

- Paged pool

Limit on X86 @ ถูกจำกัดโดย kernel-mode virtual address space ที่ใช้ได้ หรือ ค่ารีจิสตรีคีย์ของ PagedPoolLimit
Windows Vista หรือสูงกว่า: ถูกจำกัดเฉพาะ kernel mode virtual address space เริ่มต้นด้วย Windows Vista ที่มี Service Pack 1 (SP1), the paged pool ยังถูกจำกัดโดยค่ารีจิสตรีคีย์ของ PagedPoolLimit
Windows Home Server and Windows Server 2003: 530 MB
Windows XP: 490 MB
Limit on X64 @ 128 GB
Windows Server 2003 and Windows XP: Up to 128 GB depending on configuration and RAM.

- Nonpaged pool

Limit on X86 @ ถูกจำกัดโดย kernel-mode virtual address space ที่ใช้ได้ หรือ ค่ารีจิสตรีคีย์ของ NonPagedPoolLimit หรือ physical memory
Windows Vista: ถูกจำกัดเฉพาะ kernel mode virtual address space และ physical memory เริ่มต้นด้วย Windows Vista ที่มี Service Pack 1 (SP1), the paged pool ยังถูกจำกัดโดยค่ารีจิสตรีคีย์ของ NonPagedPoolLimit
Windows Home Server, Windows Server 2003, and Windows XP: 256 MB, or 128 MB with 4GT.
Limit on X64 @ 75% ของ RAM อัพสูงสุดที่ 128 GB
Windows Vista: 40% of RAM up to a maximum of 128 GB.
Windows Server 2003 and Windows XP: อัพเป็น 128 GB ขึ้นอยู่กับการตั้งค่า และ RAM.

- System cache virtual address space (ขนาด physical ที่จำกัดโดย physical memory)

Limit on X86 @ ถูกจำกัดโดย kernel-mode virtual address space ที่ใช้ได้ หรือ ค่ารีจิสตรีคีย์ของ SystemCacheLimit
Windows Vista: ถูกจำกัดเฉพาะ kernel mode virtual address space เริ่มต้นด้วย Windows Vista ที่มี Service Pack 1 (SP1),
system cache virtual address space ยังถูกจำกัดโดยค่ารีจิสตรีคีย์ของ SystemCacheLimit
Windows Home Server, Windows Server 2003, and Windo
Limit on X64 @ Always 1 TB regardless of physical RAM
Windows Server 2003 and Windows XP: Up to 1 TB depending on configuration and RAM.

จากเอกสาร Memory Limits for Windows Releases (http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx)


ข้อจำกัด Physical Memory

Windows 7
Limit on X86 @ 4 GB / Limit on X64 @ 192 GB

Windows Vista
Limit on X86 @ 4 GB / Limit on X64 @ 128 GB

Windows XP
Limit on X86 @ 4 GB / Limit on X64 @ 128 GB

ซึ่ง Windows 32-bit นั้นจะมองเห็นและทำงานได้กับ Memory ทั้งหมด ไม่เกิน 4GB และนั้นหมายความว่า เมื่อคุณมี RAM อยู่ 4GB และคุณใช้ graphic card ที่มี RAM อยู่ 1GB นั้นหมายความว่าคุณมี Memory ทั้งหมดอยู่ 5GB ทำให้ต้องลด RAM ลงเหลือ 3GB เพื่อให้ครบ 4GB (เราไม่สามารถลดการใช้ VRAM ใน Graphic Card ได้ แต่เราลดที่ RAM แทนได้)

การเปิดการใช้ PAE (Physical Address Extension) นั้นไม่ช่วยอะไรเท่าไหร่นัก เพราะ Kernel-mode memory manager ใน 32-bit Windows นั้นตันอยู่ที่ 2GB ของ Memory เท่านั้น การทำ PAE ไม่ได้ทำให้ Kernel นั้นจัดการ Memory เพิ่มมากขึ้นได้อีก เป็นเพียงแค่ทริคในการบอกให้ Software ต่างๆ นั้นรู้ว่ายังมี Memory เหลืออยู่ แต่ถ้าต้องการ Memory เพิ่มให้ทำงานผ่าน Address Windowing Extensions (AWE) API อีกทีเพื่อให้สามารถยืดขนาดพื้นที่ออกไปได้ แต่การทำแบบนี้ก็เกิดปัญหาคอขวดที่ AWE API อยู่ดี

ทำไมผมถึงบอกว่า Kernel-mode memory manager ใน 32-bit Windows นั้นตันอยู่ที่ 2GB แต่จัดการ Memory เกินกว่า 4GB ไม่ได้ นั้นเพราะ ใน 32-bit (x86) architectures นั้นมี Memory constraints อยู่สองส่วน นั้นคือ Kernel และ User Data ซึ่ง Windows Kernel ถูก limit ไว้ที่ 2GB นั้นหมายความว่า User Data limit ก็จะโดน limit ไว้ที่ 2GB เช่นกัน

นั้นหมายความว่าถ้าต้องการใช้ RAM ให้ได้ครบตามที่ได้ติดตั้งไว้ (เช่น 4GB, 6GB หรือมากกว่านั้น) แนะนำให้ใช้ Windows 64-bit ไปเลยเพื่อไม่ให้เกิดคอขวดในอนาคตครับ

อ้างอิงข้อมูลบางส่วนจาก http://www.brianmadden.com/blogs/brianmadden/archive/2004/02/19/the-4gb-windows-memory-limit-what-does-it-really-mean.aspx


แก้ไขล่าสุดเมื่อ 2012-10-01 16:45:19


vchukkrit
#4
19-04-2011 - 21:01:20

#4 vchukkrit  [ 19-04-2011 - 21:01:20 ]








ทำไม! เห็นแรมไม่ครบ 4 GB


อีกหนึ่งปัญหายอดฮิต ที่คุณผู้ใช้คอมพิวเตอร์สงสัยกันหลายต่อหลายราย คงหนีไม่พ้นเรื่องของแรมหาย หรือการที่ใส่แรมลงไป 4 GB แล้วเห็นไม่ครบนั่นเอง โดยปกติแล้ว หากเป็น Windows XP จะเห็นราวๆ 3 GB ส่วนถ้าเป็น Windows 7 จะเห็นราวๆ 3.5 GB เท่านั้น ซึ่งสาเหตุของปัญหานี้ หากตอบง่ายๆ ก็คือ เป็นข้อจำกัดของ OS และ CPU ที่ทำงานแบบ 32 บิตนั่นเองครับ วิธีแก้เห็นจะมีเพียงเปลี่ยนไปใช้ OS และ CPU ที่รองรับการทำงานแบบ 64 บิตครับ

สำหรับ CPU รุ่นใหม่ๆ ที่ออกมาช่วงสองสามปีที่ผ่านมานี้ ส่วนใหญ่นั้นจะรองรับการทำงานแบบ 64 บิต เกือบทั้งหมดแล้ว แต่ปัญหานั้นอยู่ที่ระบบปฏิบัติการ หรือ OS เนื่องจาก OS ที่ใช้กันส่วนใหญ่เป็น OS แบบ 32 บิต ซึ่งจะมีข้อจำกัดในการมองเห็นและใช้งานแรมหรือหน่วยความจำหลักได้เพียงแค่ 4 GB เท่านั้น (ซึ่งในความเป็นจริงแล้วเห็นมองน้อยกว่า 4 GB) ถึงแม้ว่าในรุ่นหลังๆ อาจจะมีการแสดงให้เห็นว่ามีแรม 4 GB ก็ตาม แต่ถ้าเป็น OS 32 บิต ใช้งานจริงได้ไม่ถึงแน่นอน

ทั้งนี้ หากจะอธิบายให้ชัดเจน ก็คือ แรมหรือหน่วยความจำนั้น จะประกอบด้วยหน่วยเก็บข้อมูลย่อยๆ ซึ่งอาจสร้างจากเกทวงจรดิจิตอล หรือ ตัวเก็บประจุ (C) แต่ละหน่วยเก็บข้อมูลของมันจะถูกอ้างถึงได้โดยแอดเดรส ซึ่งเป็นเลขฐาน 2 แอดเดรสนี้จะร้องขอโดย CPU ไปยังหน่วยความจำ เพื่ออ่านค่าหน่วยความจำที่แอดเดรสนั้น โดย

- หาก CPU ทำงานแบบ 2 บิต จะอ้างหน่วยความจำได้เพียง 2 ^ 2 = 4 ช่อง (00,01,10,11) หรือ 2 bytes
- หาก CPU ทำงานแบบ 3 บิต จะอ้างหน่วยความจำได้ 2 ^ 3 = 8 ช่อง (000,001,010,011,100,101,110,111) หรือ 8 bytes

จากตัวอย่างข้างต้น จะพบว่า ไม่ว่าแรมจะมีขนาดใหญ่แค่ไหนก็ตาม เช่นอาจมีสัก 100 byte หาก CPU ทำงานแบบ 3 บิต ซึ่งอ้างถึงได้เพียง 8 byte (เหมือนนับเลขได้ไม่เกิน 8) อีก 92 byte ที่เหลือก็จะเปล่าประโยชน์ กลายเป็นพื้นที่ลึกลับที่ CPU ไม่สามารถอ้างถึงได้นั่นเอง ก็เหมือนในปัจจุบัน ซึ่งเราใช้ระบบแบบ 32 บิต การอ้างถึงหน่วยความจำหลักจะทำได้ 2 ^ 32 = 4,294,967,296 bytes หรือประมาณ 4 GB ไม่เกินจากนี้ ดังนั้น ต่อให้มีแรมมากแค่ไหน ก็ใช้จริงได้แค่ไม่เกิน 4 GB

แต่หากระบบที่ใช้เป็นการทำงานแบบ 64 บิต จะสามารถอ้างอิงหน่วยความจำหลักได้ถึง 2 ^ 64 = 18,446,744,073,709,551,616 bytes หรือประมาณ 16 EB (Exabytes) เลยทีเดียวในทางทฤษฎี แต่ในทางปฏิบัติจะถูกจำกัดไว้โดยผู้ผลิตระบบปฏิบัติการเพื่อเหตุผลทางการตลาดครับ




ข้อมูลจาก: http://guru.google.co.th/guru/thread?tid=78efac2b9c8b1801

ที่ต้องแยกเรปออก เพื่อป้องกันความสับสน ขออภัยด้วย


แก้ไขล่าสุดเมื่อ 2012-10-01 16:48:35


Pom_
#5
19-04-2011 - 21:22:48

#5 Pom_  [ 19-04-2011 - 21:22:48 ]







55+เราดูทุกอาทิตย์เลยย แต่บางตอน
ก็ยังไม่ได้ดู ขอบบคุณที่เอามาแบ่งปันนะค่ะ
ชอบมากเลยเรื่องนี้


vchukkrit
#6
20-04-2011 - 13:59:14

#6 vchukkrit  [ 20-04-2011 - 13:59:14 ]








ดันๆ


แก้ไขล่าสุดเมื่อ 2012-10-01 16:49:49


เกมส์sims
#7
20-04-2011 - 14:00:28

#7 เกมส์sims  [ 20-04-2011 - 14:00:28 ]







โหพิ่โอม คลั่งมาก 555+



Hi hi ลมอะไรพัดมา
Magentar
#8
20-04-2011 - 18:32:37

#8 Magentar  [ 20-04-2011 - 18:32:37 ]





ดีเหมือนกันค่ะ จะได้ดูอย่างเต็มที่
รายการนี้ดูแล้วฮามากๆ ชอบสุดๆ รวบรวม
ทุกตอนไว้เลยนะเนี่ย !! แจ๋ว + ยอดเยี่ยมมากๆค่ะ


  • 1

ลงข้อความได้เฉพาะสมาชิก
ต้องสมัครเป็นสมาชิกและ login เข้าสู่ระบบก่อนถึงจะสามารถลงความเห็นได้
เข้าสู่ระบบสมัครสมาชิก



โปรดศึกษาและยอมรับนโยบายส่วนบุคคนก่อนเริ่มใช้งาน [นโยบายส่วนบุคคล]
ยอมรับ
Loading...