วันอังคารที่ 9 สิงหาคม พ.ศ. 2554


โครงสร้างของคอมพิวเตอร์
โครงสร้างคอมพิวเตอร์


การประมวลผลคำสั่งของ CPUหลังจากคำสั่งและข้อมูลอยู่ในหน่วยความจำแล้ว CPU ก็จะทำการประมวลผลที่ละคำสั่ง ใน 4 ขั้นตอนดังนี้ 


ขั้นตอนการทำงานของ CPU 
จากโปรแกรมที่ประกอบด้วยกลุ่มของคำสั่งที่ต้องการให้คอมพิวเตอร์ทำการประมวลผล แต่ละคำสั่งประกอบด้วย รหัสให้ทำงาน ( OperationCode)หรือ ออปโค้ด (Opcode) เช่น ADD (การบวก) SUB (การลบ)MUL (การคูณ) DIV (การหาร) และสิ่งที่เรียกว่า โอเปอแรนต์ (Operand)ซึ่งจะบอกตำแหน่งของที่เก็บข้อมูลในหน่วยความจำ เช่น สัญลักษณ์ Aหรือ B

ตัวอย่างของคำสั่งหนึ่งๆ ที่มีอยู่ในโปรแกรมภาษาแอสแซมบลี เช่น ADD A,B หมายถึงให้มีการนำข้อมูลที่เก็บอยู่ในหน่วยความจำที่ตำแหน่ง A และข้อมูลที่เก็บอยู่ในหน่วยความจำที่ตำแหน่ง B มาทำการบวกกัน ซึ่งคำสั่งนี้จะต้องถูกแปลให้เป็นภาษาเครื่อง (MachineLanguage) ก่อนการปฏิบัติงานของซีพียูเสมอ


ภาพแสดงขั้นตอนการทำงานของ CPU

ขั้นตอนการทำงานของ CPU และความสัมพันธ์ในการใช้ Resistor 

ขั้นตอนการประมวลผลของ CPU
การเฟตช์ (Fetch) เป็นกระบวนการที่หน่วยควบคุม (CU) ไปนำคำสั่งที่ต้องการใช้จากหน่วยความจำมาเพื่อการประมวลผลมาเก็บไว้ที่ Register
การแปลความหมาย ( Decode ) เป็นกระบวนการถอดรหัสหรือแปลความหมายคำสั่งต่างๆ เพื่อส่งไปยังหน่วยคำนวณและตรรกะเพื่อดำเนินการต่อไป
การเอ็กซ์คิวต์ ( Execute ) เป็นกระบวนประมวลผลคำสั่งโดยหน่วยคำนวณและตรรกะ ซึ่งการประมวลผลจะประมวลผลทีละคำสั่ง
การจัดเก็บ ( Store ) เป็นกระบวนการจัดเก็บผลลัพธ์ที่ได้จากการประมวลผลและจัดเก็บไว้ในหน่วยความจำหรือรีจิสเตอร์ 

วัฏจักรการทำงานของซีพียู หรือวัฏจักรเครื่อง (Machine Cycle)


Machine Cycle & การประมวลผลคำสั่งโปรแกรม
วัฏจักรคำสั่ง Instruction Cycle (I-cycle) l fetch instruction - control unit รับคำสั่งจากแรม l decode instruction - control unit แปลความหมายคำสั่งโปรแกรม และเก็บส่วนที่เป็น คำสั่ง ของคำสั่งโปรแกรมไว้ใน Instruction Register & เก็บส่วนที่เป็นแอดเดรส ของคำสั่งโปรแกรมไว้ใน Address Register

เวลาที่ใช้ในการแปลคำสั่ง (Instruction Time)

เวลาทั้งหมดในการประมวลผลแต่ละคำสั่ง ประกอบด้วย 2 ส่วนคือ
การแปลคำสั่ง (fetch and decode) และการประมวลผลคำสั่ง(execute and store)
เวลาที่ใช้แปลคำสั่งเรียกว่า instruction time. 

วัฏจักรการประมวลผล Execut ed Cycle (E-cycle) execute instruction - ย้ายข้อมูลที่จะประมวลผลจาก RAM ไปเก็บไว้ใน Storage Register แล้ว ALU ปฏิบัติตามคำสั่งโปรแกรม store results - ALU เก็บผลลัพธ์ในรีจีสเตอร์/แรม

เวลาที่ใช้ในการประมวลผล เรียกว่า E xecution time


เวลาที่ใช้ประมวลผลแต่ละคำสั่ง (Machine Cycle) The combination of I-time and E-time is called the machine cycle


หน่วยวัดความเร็วของซีพียู

เมกะเฮิรตซ์ ( Megahertz: MHz ) เป็นหน่วยวัดความเร็วของซีพียูในไมโครคอมพิวเตอร์ หรือ Clock Speed ที่มีความเร็วหนึ่งล้านวัฏจักรเครื่องต่อวินาที ( Millions machine cycle per second )
มิปส์ ( Million of Instructions Per Second: MIPS ) เป็นหน่วยวัดความเร็วของซีพียูของคอมพิวเตอร์ขนาดกลางขึ้นไปโดย 1 MIPS จะสามารถประมวลผลได้หนึ่งล้านคำสั่งต่อวินาที ( Million of Instructions Per Second: MIPS )
ฟลอปส์ ( Floating Point Operations Per Second: FLOPS ) เป็นหน่วยวัดความเร็วของซีพียูในซูเปอร์คอมพิวเตอร์ ซึ่งมักวัดความสามารถในการปฏิบัติการคำนวณทางคณิตศาสตร์แบบทศนิยมหรือ Floating Point

รูปแบบการประมวลผลของซีพียู
1. การประมวลผลแบบเดี่ยว ( Single processing) หรือ Sequential Processing เป็นการประมวลผลข้อมูลตามลำดับ เนื่องจากมีซีพียูทำงานเพียงตัวเดียว ปัญหาที่เกิดขึ้นคือ การประมวลผลข้อมูลล่าช้า
2. การประมวลผลแบบขนาน ( Parallel processing) เป็นการใช้ซีพียูมากกว่า 1 ตัว ( Multiple Processors ) ในการประมวลผลงานๆ หนึ่งพร้อมกัน โดยซีพียูจะแตก (break down) ปัญหาออกเป็นส่วนย่อยๆ เพื่อแบ่งให้ซีพียูแต่ละตัวประมวลผล ซึ่งสามารถเปรียบเทียบได้กับการประมวลผลแบบซีพียูเดียวและ หลายซีพียูได้
ดังภาพ 

รูปแบบในการส่งข้อมูล (transmission mode)
การส่งข้อมูลในระบบเครือข่าย สามารถทำได้ 2 ลักษณะ คือ การส่งแบบขนาน และการส่งแบบอนุกรม
การส่งแบบขนาน (parallel transmission) คือการส่งข้อมูลพร้อมกันทีละหลาย ๆ บิตในหนึ่งรอบสัญญาณนาฬิกา โดยการส่งจะรวมบิต 0 และ 1 หลาย ๆ บิตเข้าเป็นกลุ่มจำนวน n บิต ผู้ส่งส่งครั้งละ n บิต ผู้รับจะรับครั้งละ n บิตเช่นกัน ซึ่งจะคล้ายกับเวลาที่เราพูดคุยเราจะพูดเป็นคำ ๆ ไม่พูดทีละตัวอักษร
กลไกการส่งข้อมูลแบบขนานใช้หลักการง่าย ๆ เมื่อส่งครั้งละ n บิต ต้องใช้สาย n เส้น แต่ละบิตมีสายของตนเอง ในการส่งแต่ละครั้งทุกเส้นต้องใช้สัญญาณนาฬิกาอันเดียวกัน ทำให้สามารถส่งออกไปยังอุปกรณ์อื่นพร้อมกันได้

รูปแสดงการส่งข้อมูลแบบขนาน โดยให้ n=8 โดยทั่วไปแล้วปลายของสายทั้ง 2 ข้างจะถูกต่อด้วยคอนเน็กเตอร์ด้านละ 1 ตัว ข้อดีของการส่งข้อมูลแบบขนานคือ ความเร็ว เพราะส่งข้อมูลได้ครั้งละ n บิต ดังนั้น ความเร็วจึงเป็น n เท่าของการส่งแบบอนุกรม แต่ข้อเสียที่สำคัญคือ ค่าใช้จ่าย ทั้งนี้เพราะต้องใช้สายจำนวน n เส้น

การส่งข้อมูลแบบอนุกรม (serial transmission) จะใช้วิธีการส่งทีละ 1 บิตในหนึ่งรอบสัญญาณนาฬิกา ทำให้ดูเหมือนว่าบิตต่าง ๆ เรียงต่อเนื่องกันไป จากอุปกรณ์หนึ่งไปยังอีกอุปกรณ์หนึ่ง ดังรูป

ข้อดีของการส่งข้อมูลแบบอนุกรม คือการใช้ช่องทางการสื่อสารเพียง 1 ช่อง ทำให้ลดค่าใช้จ่ายลง แต่ข้อเสียคือ ความเร็วของการส่งที่ต่ำ ตัวอย่างของการส่งข้อมูลแบบ
 
การส่งข้อมูลแบบอนุกรม แบ่งได้เป็น 2 แบบ ดังนี้
1. การส่งข้อมูลแบบอะซิงโครนัส (asynchronous transmission) เป็นการส่งข้อมูลที่ผู้รับและผู้ส่งไม่ต้องใช้สัญญาณนาฬิกาเดียวกัน แต่ข้อมูลที่รับต้องถูกแปลตามรูปแบบที่ได้ตกลงกันไว้ก่อน เนื่องจากไม่ต้องใช้สัญญาณนาฬิกาเดียวกันทำให้ผู้รับไม่สามารถคาดการณ์ได้ว่าเมื่อใดจะมีข้อมูลส่งมาให้ ดังนั้นผู้ส่งจึงจำเป็นต้องแจ้งผู้รับให้ทราบว่าจะมีการส่งข้อมูลมาให้โดยการเพิ่มบิตพิเศษเข้ามาอีกหนึ่งบิต เอาไว้ก่อนหน้าบิตข้อมูล เรียกว่า บิตเริ่ม (start bit) โดยทั่วไปมักใช้บิต 0 และเพื่อให้ผู้รับทราบจุดสิ้นสุดของข้อมูลจึงต้องมีการเพิ่มบิตพิเศษอีกหนึ่งบิตเรียกว่าบิตจบ (stop bit) มักใช้บิต 1 นอกจากนี้แล้วการส่งข้อมูลแต่ละกลุ่มต้องมีช่องว่างระหว่างกลุ่ม โดยช่องว่างระหว่างไบต์อาจใช้วิธีปล่อยให้ช่องสัญญาณว่าง หรืออาจใช้กลุ่มของบิตพิเศษที่มีบิตจบก็ได้ รูปต่อไปนี้แสดงการส่งข้อมูลแบบอะซิงโครนัส ให้บิตเริ่มเป็นบิต 0 บิตจบเป็นบิต 1 และให้ช่องว่างแทนไม่มีการส่งข้อมูล (สายว่าง) 

ข้อดีของการส่งข้อมูลแบบอะซิงโครนัส มี 2 ประการ คือ ค่าใช้จ่ายถูกและมีประสิทธิภาพ การส่งข้อมูลแบบนี้จะนำไปใช้ในการสื่อสารที่ต้องการใช้ความเร็วไม่สูงนัก ตัวอย่างเช่น การติดต่อระหว่างเครื่องคอมพิวเตอร์กับเครื่องปลายทาง (terminal) ที่โดยธรรมชาติแล้วเป็นการสื่อสารแบบอะซิงโครนัส เพราะผู้ใช้จะพิมพ์ทีละ 1 ตัวอักษรจากเครื่องปลายทางไปยังเครื่องคอมพิวเตอร์จึงไม่ต้องใช้ความเร็วสูงในการติดต่อสื่อสาร
2. การส่งข้อมูลแบบซิงโครนัส (synchronous transmission) เป็นการส่งบิต 0 และ 1 ที่ต่อเนื่องกันไปโดยไม่มีการแบ่งแยก ผู้รับต้องแยกบิตเหล่านี้ออกมาเป็นไบต์ หรือเป็นตัวอักษรเอง 

จากภาพแสดงการส่งข้อมูลแบบซิงโครนัส ผู้ส่งทำการส่งบิตติดต่อกันยาว ๆ ถ้าผู้ส่งต้องการแบ่งช่วงกลุ่มข้อมูลก็ส่งกลุ่มบิต 0 หรือ 1 เพื่อแสดงสถานะว่าง เมื่อแต่บิตมาถึงผู้รับ ผู้รับจะนับจำนวนบิตแล้วจับกลุ่มของบิตให้เป็นไบต์ที่มี 8 บิต
การส่งข้อมูลแบบซิงโครนัสมีประสิทธิภาพสูงกว่าแบบอะซิงโครนัสมาก และทำให้มีการใช้ความสามารถของสายสื่อสารได้เกือบทั้งหมด ข้อดีของการส่งข้อมูลแบบซิงโครนัส คือความเร็วในการส่งข้อมูล ทั้งนี้เพราะไม่มีบิตพิเศษหรือช่องว่างที่ไม่ได้ถูกนำไปใช้เมื่อถึงผู้รับ จึงทำให้ความเร็วของการส่งข้อมูลแบบซิงโครนัสเร็วกว่าแบบอะซิงโครนัส ด้วยเหตุนี้จึงมีการนำไปใช้งานที่ต้องการความเร็วสูง เช่น การส่งข้อมูลระหว่างเครื่องคอมพิวเตอร์

หน่วยความจำ
คือ หน่วยความจำที่ต่อกับหน่วยประมวลผลกลาง และหน่วยประมวลผลกลางสามารถใช้งานได้โดยตรง หน่วยความจำ ชนิดนี้จะเก็บข้อมูล และชุดคำสั่งในระหว่างประมวลผล และมีกระแสไฟฟ้า เมื่อปิดเครื่องคอมพิวเตอร์ข้อมูลในหน่วย ความจำนี้จะหายไปด้วย หน่วยความจำหลักที่ใช้ในระบบคอมพิวเตอร์ปัจจุบัน เป็นชนิดที่ทำมาจากสารกึ่งตัวนำ หน่วยความจำชนิดนี้มีขนาดเล็ก ราคาถูก แต่เก็บข้อมูลได้มาก และสามารถให้หน่วยประมวลผลกลาง นำข้อมูลมาเก็บ และเรียกค้นได้อย่างรวดเร็ว

แบ่งตามลักษณะการเก็บข้อมูล 
1.หน่วยความจำแบบลบเลือนได้ (volatile memory)
คือถ้าเป็นหน่วยความจำที่เก็บข้อมูลไว้แล้ว หากไฟฟ้าดับ คือไม่มีไฟฟ้าจ่ายให้ กับวงจรหน่วยความจำ ข้อมูลที่เก็บไว้จะหายไปหมด
2. หน่วยความจำไม่ลบเลือน (nonvolatile memory)
คือ หน่วยความจำเก็บข้อมูลได้ โดยไม่ขึ้นกับไฟฟ้าที่เลี้ยงวงจร

แบ่งตามสภาพการใช้งาน 
1. หน่วยความจำที่ซีพียูอ่านได้อย่างเดียว
ไม่สามารถเขียนลงไปได้ เรียกว่า รอม (Read Only Memory : ROM)
2. หน่วยความจำที่เขียนหรืออ่านข้อมูลได้
การเขียนหรืออ่านจะเลือกที่ตำแหน่งใดก็ได้ เราเรียกหน่วยความจำประเภทนี้ว่า แรม (Random Access Memory: RAM)
หน่วยความจำเป็บแรมที่ใช้อยู่สามารถแบ่งได้ 2 ประเภท คือ
1. ไดนามิกแรมหรือดีแรม (Dynamic RAM : DRAM)
DRAM จะทำการเก็บข้อมูลในตัวเก็บประจุ ( Capacitor ) ซึ่งจำเป็นจะต้องมีการ refresh เพื่อ เก็บข้อมูลให้คงอยู่ โดยการ refresh นี้ ทำให้เกิดการหน่วงเวลาขึ้นในการเข้าถึงข้อมูล และก็เนื่อง จากที่มันต้อง refresh ตัวเองอยู่ตลอดเวลานี้

2. Static Random Access Memory (SRAM)
จะต่างจาก DRAM ตรงที่ว่า DRAM จะต้องทำการ refresh ข้อมูลอยู่ตลอดเวลา แต่ในขณะที่ SRAM จะเก็บข้อมูลนั้นๆ ไว้ และจะไม่ทำการ refresh โดยอัตโนมัติ ซึ่งมันจะทำการ refresh ก็ต่อเมื่อ สั่งให้มัน refresh เท่านั้น ซึ่งข้อดีของมัน ก็คือความเร็ว ซึ่งเร็วกว่า DRAM ปกติมาก แต่ก็ด้วยราคาที่สูงกว่ามาก จึงเป็นข้อด้อยของมันเช่นกัน

3.น่วยความจำความเร็วสูง (Cache Memory)
หน่วยความจำแคช เป็นหน่วยความจำขนาดเล็กที่มีความเร็วสูง ทำหน้าที่เหมือนที่พักคำสั่ง และข้อมูลระหว่าง การทำงาน เพื่อให้การทำงานโดยรวมเร็วขึ้น แบ่งเป็นสองประเภท คือ แคชภายใน (Internal Cache) และแคชภายนอก (External Cache) โดยแคชภายใน หรือ L1 หรือ Primary Cache เป็นแคชที่อยู่ในซีพียู ส่วนแคชภายนอก เป็นชิปแบบ SRAM ติดอยู่บนเมนบอร์ด ทำงานได้ช้ากว่าแบบแรก แต่มีขนาดใหญ่กว่า เรียกอีกชื่อได้ว่า L2 หรือ Secondary Cache

ที่มา
http://202.28.94.55/web/322161/2551/001/g129/K2.htm
http://www3.ipst.ac.th/research/assets/web/mahidol/computer(10)/network/net_datacom3.htm
http://www.chakkham.ac.th/technology/computer1/storage.htm

ไม่มีความคิดเห็น:

แสดงความคิดเห็น