Group Blog
 
<<
พฤศจิกายน 2549
 1234
567891011
12131415161718
19202122232425
2627282930 
 
18 พฤศจิกายน 2549
 
All Blogs
 
Register Accumulator

8:14 18/11/2549
ACcumulator ...




อันว่าคอมพิวเตอร์ ... ความสามารถที่แท้จริงของมันคือ ... จำและบวกเลข ... เท่านั้น

ไม่น่าเชื่อว่ามันจะรังสรรค์อะไรออกมาได้ขนาดนี้ ...

เอาหละมาดูกัน



การเขียนโปรแกรม ... นั่นก็คือการสั่งให้ CPU ทำงาน
การสั่ง CPU ทำงาน นั้น เราต้องสั่งผ่านสิ่งที่เรียกว่า register

Register ก็คือ หน่วยความจำอย่างนึงเท่านั้น ที่ทำงานได้เร็วมาก ...

เราลองมาดู ว่าหน่วยความจำในระบบคอมพิวเตอร์ มีอะไรกันบ้าง

Register , ROM , RAM , Harddisk , CD-ROM , DVD-ROM


Register ก็คือ หนว่ยความจำของ CPU
ที่จำได้ขนาด 16 บิท หรือ 32 บิท ปัจจุบัน 64 บิทแล้ว

RAM ถ้าแรม ขนาด 512 MB จะมีหน่วยความจำหน่วยเป็น bit เท่ากับ

RAM ( 512 MB) จะมีหน่วยความจำเท่ากับ 4,194,304 Bit
Harddisk (40 GB ) จะมีหน่วยความจำเท่ากับ 335,544,320 Bit
ในขณะที่ Register หนึ่งตัว (ที่ใช้ๆกันอยู่ตอนนี้) จะมีหน่วยความจำเท่ากับ 32 Bit เท่านั้น


อันว่าเมมโมรี่ ... ยิ่งมีมากก็ยิ่งดี (จะเก็บภาพได้เยอะขึ้น เก็บหนังได้เยอะขึ้น)
CPU เองก็เช่นกัน ... แล้วงั้นทำไม ไม่เอา แรม หรือ ฮาร์ดดิสก์ ไปทำ CPU เลยหละ

ตอบ ไม่ได้หรอก การประมวลผลของ CPU ต้องอาศัยหน่วยความจำที่มีความเร็วสูงมาก
ความเร็วระดับแรม หรือฮาร์ดดิสก์ ไม่เพียงพอ


( มาถึงตรงจุดนี้ ผมก็เกิดคำถามกับตัวเองอีกแล้ว ... ตอบไม่ได้หรอก ไม่ต้องรอคำตอบ เพราะผมตั้งคำถามเอง)

นั่นแสดงว่า ... register ต้องทำงาน ได้เร็วกว่า เมมโมรี่ชนิดอื่นๆเยอะมากๆ โคตรๆ
เพราะ ถ้าสร้างความสัมพันธ์ว่า ...


CPU มีเมมโมรี่ (จำนวนบิท) ยิ่งเยอะมาก ยิ่งดี จากอดิต ถึงปัจจุบัน
8088 8086 (หรือพวก 486 อะไรนั่นแหละ) ก็ register ขนาด 8 บิท
ต่อมาก็เป็น 16 บิท
ต่อมา 32 บิท
ล่าสุดนี่เห็น ก็มีถึง 64 บิทไปแล้ว

ก็เลยตั้งคำถามว่า ... ทำไม ปริมาณความจุมากๆ อย่างแรมหรือรอม ทำไมไม่เอาไปทำหน่วยความจำของซีพียูซะเลย
ปริมาณขนาดนี้ มันไม่ได้ลบล้างโอเวอร์เฮด ก็เลยหรือไง

น่านนะสิ แสดงว่า มันลบล้างไม่ได้จริง ...

แต่อีกข้อนึง ก็เพราะว่า register เป็นเมมโมรี่ทำทำงานเร็วสุด และแพงเอามากๆ

ลองคิดดู ว่าเราเสียตังค์ซื้อ CPU ที่มี register ไม่ถึง 30 ตัวด้วยซ้ำ ในราคาหลักหมื่นบาท
( 30*32 = 960 บิท เท่านั้น)

แต่เราเสียตังค์ สองพันบาท ในการซื้อฮาร์ดดิสที่มีหน่วยความจำ 335,544,320 Bit



นั่นแสดงว่าความเร็ว(และความแพง) คงเทียบกันไม่ได้เลย



register จึงเป็นผู้ช่วยในการทำงานของ CPU โดยเราไม่สามารถส่ง CPU โดยตรง

การเขียนโปรแกรมนั้น คือการสั่ง CPU ทำงานบวกเลขเท่านั้น


พูดแล้วก็ขำ ซื้อ CPU ที่มี หน่วยความจำ ไม่ถึง พันบิทเท่านั้น แถมมันทำงานเป็นอย่างเดียวก็คือ "บวกเลข"เท่านั้น


หมวดของ register ต่างที่ทำงานให้กับ CPU จึงมีดังนี้

1. General Purpose Register
2. Pointer and Index Register
3. Segment Register
4. Flag Register



เอาคอนเซปรวมไป

General Purpose Register ชื่อก็บอกแล้ว ทั่วไปๆ บวกเลข เก็บค่าข้อมูล
Pointer and Index Register ชี้อย่างเดียวเลย จะเอาอะไรที่ไหน ชี้ไปที่ Stack
Segment Register เก็บจุดเริ่มต้นๆต่างๆ ของหน่วยความจำ (ที่ในรูป)
Flag Register เก็บสถานะ ค่าต่างๆ



จะมาพูดถึง General Purpose Register กัน มีอยู่ด้วยกันสี่ตัว
AX BX CX DX (ถ้าเป็น ของ 32 บิทก็จะเป็น EAX EBX ECX EDX)

ก็จำทำงานในหน้าที่ต่างๆกันไป ...

แต่ที่จะพูดถึงนี่ก็ คือ AX หรือ Accumulator ที่ใช้เก็บข้อมูลผลลัพธ์เกี่ยวกับการคำณวนทางคณิตศาสตร์
หรือรับส่งข้อมูลผ่านพอร์ตต่างๆ

ตัวอื่นก็ทำหน้าที่ทั่วไป BX CX DX


ทั้งหมดนี้จึงเป็นที่มาของล๊อกอินผม ...


Register_AC ( Register Accumurator : AX)


วันนั้นนั่งอบรมเขียนเว็บอยู่ กับเพื่อนสองคน ...

ง่วงโคตร เลยเข้าไปสมัครพันทิป

(เมื่อก่อนเด็กๆมาก เลยค่อนข้างกลัวเรื่องการเปิดเผยชื่อจริง)

ก็เลยเอาชื่อ ไอ้เพื่อนข้างๆ ไปสมัคร (ตอนนี้เปลี่ยนแล้ว)


นึกอะไรไม่ออก ... เรียนเขียนเว็บ ... ไหงไปออก เรื่องregister ได้ฟะ ... เอิ่กๆๆๆ





Create Date : 18 พฤศจิกายน 2549
Last Update : 18 พฤศจิกายน 2549 12:47:31 น. 0 comments
Counter : 1080 Pageviews.

Register_AC
Location :
กรุงเทพ Thailand

[ดู Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed
Smember
ผู้ติดตามบล็อก : 1 คน [?]




 หยาบหน่อยนะ แต่จริงใจ
Friends' blogs
[Add Register_AC's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.