ส่งงาน 20/07/2555
1 .Von Nemann
สถาปัตยกรรมคอมพิวเตอร์
โดยนิยามแล้วคอมพิวเตอร์จะประกอบไปด้วยส่วนที่สำคัญอยู่ 2 ส่วน ด้วยกัน คือ
สถาปัตยกรรม( Computer Architecture) และออร์กาไรเซชั่นคอมพิวเตอร์ ( computer organization)ซึ่งแต่ละส่วนก็จะให้ความหมายอย่างชัดเจนอยู่แล้วแต่ว่าเราก็สามารถให้ความหมายได้อย่างกว้างๆ กับคำสองคำนี้ซึ้งเป็นที่ยอมรับกันโดยทั่วไปคือ • สถาปัตยกรรมคอมพิวเตอร์ ( Computer Architecture) คือ ลักษณะต่างๆของระบบคอมพิวเตอร์ที่ผู้ใช้ๆทั่วไปสามารถ มองเห็นได้และจะมีผลต่อกระบวนการทำงานของคอมพิวเตอร์ • ออร์กาไนเซชั่นคอมพิวเตอร์( computer organization) คือ กระบวนการการเชื่อมต่อคอมพิวเตอร์ที่ต้องมีการคำนึงถึง สถาปัตยกรรมตัวอย่างทางสถาปัตยกรรมได้แก่ ขั้นตอนการประมวลผลของชุดคำสั่ง (Instruction Set) Zจากความสัมพันธ์ของทั้งสองตัวนี้ในการที่คอมพิวเตอร์จะทำการประมวลเช่นทำการบวก ลบ คูณ หรือการหารนั้นถือว่าเป็นการทำงานตามขั้นตอนของสถาปัตยกรรม
Zส่วนขั้นตอนการทำงานทางด้านออร์กาไนเซชั่นนั้นจะหมายถึงการสร้างฮาร์ดแวสำหรับใช้ในการทำงานขึ้นมาโดยตรง ในการสร้างระบบคอมพิวเตอร์ตั้งแต่ยุคแรกเริ่มมาจนถึงยุคประจุบันนี้ จะให้ความสำคัญกับสถาปัตยกรรมและออร์กาไนเซชั่นเป็นอย่างมากซึ้งทั่งสองตัวนี้มีความแตกต่างกันอย่างชัดเจน ในการสร้างคอมพิวเตอร์เครื่องหนึ่งๆ ของสองบริษัทอาจจะมีสถาปัตยกรรมที่เหมือนๆ กัน แต่ว่า มีออร์กาไนเซชั่นที่แตกต่างกันอย่างสิ้นเซิง ซึ้งจะเป็นผลที่ทำให้ราคาของเครื่องคอมพิวเตอร์มี ราคาที่แตกต่างกัน และประสิทธิภาพในการใช้งานไม่เท่ากัน ยิ่งกว่านี้สถาปัตยกรรมอาจมีการ ใช้งานได้หลายๆปี แต่ออร์กาไนเซชั่นมีการเปลี่ยนแปลงตามยุคตามเทคโนโลยีที่ผลิต ตัวอย่าง ที่เห็นๆกันโดยทั่วไป เช่น เครื่องคอมพิวเตอร์ของ IBM System/370 คอมพิวเตอร์รุ่นนี้มีการ ใช้สถาปัตยกรรมที่ออกแบบเมื่อปี พ.ศ. 2513 และได้มีการใช้สถาปัตยกรรมแบบเดียวกันนี้กับ เครื่องคอมพิวเตอร์หลายๆรุ่นสำหรับส่งให้กับลูกค้า ลูกค่าที่ต้องการเครื่องที่มีความเร็วไม่สูงมาก อาจจะจ่ายในราคาที่ต่ำ แต่ต่อมาถ้าลูกค้าต้องการเครื่องที่มีความเร็วสูงขึ้นก็สามารถใช้ซอฟต์แว ตัวเดิมได้โดยที่ไม่จำเป็นต้องมีการออกแบบซอฟแวต์ไหม่ ซึ้งจะมองเห็นว่าเครื่องคอมพิวเตอร์ ของ IBM ได้มีการพัฒนาขึ้นมาจากเดิมเป็นอย่างมากทั่งในเรื่องของความเร็วที่สูงขึ้นในราคาที่ ถูกลง แต่ว่าคอมพิวเตอร์ก็ยังมีการใช้สถาปัตยกรรมเดิม ถึงแม้ว่าจะมีการออกแบบออส์กาไนเซชั่น ไหม่ก็ตาม ทำให้ลูกค้ายังสามารถใช้ซอฟแวต์ตัวเดิมได้เสมอซึ้งสรุปแล้วคอมพิวเตอร์ของ IBM ใน ยุคปัจจุบันยังคงใช้สถาปัตยกรรมในยุคแรก ส่วนคอมพิวเตอร์อีกประเภทหนึ่งที่เรียกว่า Microcomputer นั้นเป็นคอมพิวเตอร์ขนาดเล็ก ความสัมพันธ์ระหว่างสถาปัตยกรรมกับออส์กาไนเซชันนั้นมีความใกล้เคียงกันเป็นอย่าง มากการใช้เทคโนโลยีในการออกแบบออส์กาไนเซชั่นจะมีผลต่อสถาปัตกรรมของเครื่อง คอมพิวเตอร์โดยทั่วไปแล้วความต้องการในการที่จะใช้สถาปัตยกรรมของเครื่องคอมพิวเตอร ์แบบเก่ากับเครื่องแบบไหม่นั้นมีน้อยมากดังนั้นจึงส่งผลให้บทบาทของสถาปัตยกรรมและ ออส์กาไนเซชั่นได้มีการเปลียนแปลงไปพร้อมๆกัน เครื่องคอมพิวเตอร์เป็นระบบที่มีความซับซ้อนมาก ซึ่งดังจะเห็นได้จากการที่เครื่องคอมพิวเตอร์เครื่องหนึ่งจะประกอบไปด้วยชิ้นส่วนๆต่างๆหลาย ล้านชิ้นในการที่จะเรียนรู้หลัการทำงานของเครื่องคอมพิวเตอร์จำเป็นจะต้องมีการเรียนรู้ลักษณะ โครงสร้างลำดับขั้นโดยธรรมชาติของคอมพิวเตอร์ โครงสร้างลำดับชั้นคือ กลุ่มย่อยของระบบที่ถูก นำมาประกอบเข้าด้วยกัน ซึ้งในระบบย่อยแต่ละระบบนั้นก็จะมีโครงสร้างลำดับชั้นของอุปกรณ์ที่ แตกต่างกันออกไป กระบวนการการทำงานแต่ระบบย่อยที่เกิดขึ้นผู้ออแบบสามารถกำหนดได้สอง เรื่องคือโครงสร้าง และหน้าที่คอมพิวเตอร์ • โครงสร้าง คือวิธีที่อุปกรณ์ต่างๆ เชื่อมต่อเข้าด้วยกัน• หน้าที่คือ การทำงานของส่วนประกอบแต่ละส่วนซึ้งถือว่าเป็นส่วนหนึ่งของโครงสร้าง หน้าที่การทำงาน โดยพื้นฐานของคอมพิวเตอร์แล้วจะประกอบไปด้วยส่วนประกอบหลักๆอยู่ 4 ส่วนด้วยกันคือ1 การประมวลผลข้อมูล (Data processing Facility)2.ส่วนเก็บข้อมูล (Data Storage Facility)3.ส่วนเคลื่อนย้ายข้อมูล (Data movement Apparatus)4.ส่วนการควบคุม (Control mechanism) เครื่องคอมพิวเตอร์จะต้องมีความสามารถในการประมวลผลข้อมูลต่างๆ ซึ้งข้อมูลจะมีอยู่ในหลายๆ รูปแบบเช่น เป็นตัวเลข เป็นแรงดันไฟฟ้าเป็นต้น ทำให้ขอบเขตในการประมวลผลข้อมูลนั้นกว้างแต่ลำดับขั้นตอนในการประมวลผลข้อมูลนั่นมีขั้นตอนไม่กี่ขั้นตอนเท่านั้นเครื่องคอมพิวเตอร์จะ ต้องมีความสามารถในการจัดเก็บข้อมูลถึงแม้ว่าคอมพิวเตอร์จะต้องทำการประมวลผลข้อมูลทันที่แต่คอมพิวเตอร์ต้องมีการเก็บบันทึกข้อมูลไว้เป็นการชั่วคราว โดยเฉพาะ ข้อมูลที่กำลังทำการประมวลผลอยู่นั้นซึ้งจะเป็นการเก็บข้อมูลระยะสั้นๆ แต่ว่าการเก็บข้อมูลระยะ ยาวก็มีความสำคัญไม่แพ้กันเครื่องคอมพิวเตอร์จะต้องสามารถทำการเคลื่อนย้ายข้อมูลได้ อาจจะ เป็นการเคลื่อนย้ายข้อมูลจากเครื่องคอมพิวเตอร์ไปยังอุปกรณ์ต่างๆซึ้งสิ่งแวดล้อมของเครื่องคอม พิวเตอร์จะต้องมีการติดต่อกับอุปกรณ์ภายนอกในทางคอมพิวเตอร์เรียกว่า IO หรือส่วนของอุปกรณ์ ต่อพ่วงคอมพิวเตอร์จะต้องมีความสามารถใจการควบคุม การทำงานของระบบต่างๆให้เป็นไป ตามขั้นตอนที่มีการออกแบบไว้การควบคุมต่างๆจะถูกกระทำโดยผู้ใช้งาน ซึ้งจะเป็นลักษณะ ของชุดคำสั่งเฉพาะที่มีการออกแบบมาเพื่อสำหรับควบคุมการทำงานของคอมพิวเตอร์
สถาปัตยกรรมคอมพิวเตอร์ เป็นทฤษฎีที่อยู่ฉากหลังของการออกแบบคอมพิวเตอร์ โดยทั่วไปหมายถึง การออกแบบโครงสร้างของหน่วยประมวลผลกลาง โดยทั่วไปหมายถึง การออกแบบ
โครงสร้างของหน่วยประมวลผลกลาง
(ซึ่งก็คือ การออกแบบจำนวนรีจิสเตอร์ที่จำเป็น และหน้าที่ที่จำเป็นของ หน่วยควบคุมกับหน่วยประมวลผลตัวเลข)
ชุดของคำสั่งเครื่อง และการอ้างหน่วยความจำ
เทคนิคอื่นๆ เช่น การประมวลผลแบบไปป์ไลน์
วิวัฒนาการของระบบสถาปัตยกรรม
อินเทลพัฒนาซิปซีพียู 8086 ในปี พ.ศ. 2521 หลังจากนั้นในปี พ.ศ. 2524 ไอบีเอ็ม พัฒนาไมโครคอมพิวเตอร์ ออกสู่ตลาดโดยเลือกชิป 8088 เป็นซีพียูของเครื่อง ซึ่งเป็นการเริ่มต้นของซีพียูตระกูล 8086 และมีพัฒนาการ ที่ต่อเนื่องตลอดมาช่วงแรกในการพัฒนาสถาปัตยกรรมแบบ CISC อินเทลออกแบบสถาปัตยกรรมที่เป็นการ ทำงานโดยมีชุดคำสิ่งต่างๆ คู่แข่งของอินเทลอยู่ที่ซีพียูในอีกตระกูลหนึ่ง คือ 68000 ของปริษัทโมโตโรลา ซึ่งได้เร่งขยายขีดความสามารถของบซีพียู โดยการพัฒนา 68010, 68020, 68030 และ 68040 ขณะเดียว กันอินเทลก็พัฒนา 80286, 80386, 80486 ซึ่งพัฒนาการของทั้งสองค่ายต่างก็แข่งขันกัน มาโดยตลอดช่วงเวลาที่อินเทลทิ้งช่วงระหว่าง 80486 กับเพนเทียม (p5) อินเทลได้สร้างโครงการ p5 ซึ่งเป็นการพัฒนาโดย ใช้สถาปัตยกรรมรุ่นใหม่ที่จัดเป็นลำดับที่ 5 ในตระกูล 80xxx อินเทลให้ข่าวอย่างไม่เป็นทางการตลอดมา อินเทล ได้เสนอโมเดลขั้นต้นไว้ว่าจะต้องทำให้คอมแพติเบิลกับของเดิม
อินเทลกับปัญหาที่ต้องแก้ไข
เมื่ออินเทลพัฒนาซีพียู 8086 การจัดการหน่วยความจำของอินเทลมีข้อยุ่งยากมาก มีการกำหนด เซกเมนต์โดย แต่ละเซกเมนค์มีขนาด 64 กิโลไบต์ในซีพียูมีรีจิสเตอร์ที่ใช้สำหรับการจัดการเซกเมนต์เรียกว่า"เซกเมนค์รีจิสเตอร์"
ประเภทของสถาปัตยกรรมการประมวลผลแบบขนาน ของโปรเซสเซอร์
1. SISD(Single Instruction Single Data stream) คือ โปรเซสเซอร์ ที่ใช้การประมวลผลด้วยชุดข้อมูลเพียงชุดเดียว และ ทำงานด้วยคำสั่งเดียว ภายใน 1 สัญญาณนาฬิกา
2. MISD(Multiple Instruction Single Data stream) คือ โปรเซสเซอร์ ที่ใช้การประมวลผลด้วยชุดข้อมูลเพียงชุดเดียว แต่ทำงานด้วยได้หลายคำสั่ง ภายใน 1 สัญญาณนาฬิกา มักจะไม่ค่อยมีใครพัฒนาโปรเซสเซอร์แบบนี้
3. SIMD(Single Instruction Multiple Data stream)คือ โปรเซสเซอร์ที่ใช้การประมวลผลด้วยชุดข้อมูลหลายชุด แต่ทำงานด้วยคำสั่งเดียว ภายใน 1 สัญญาณนาฬิกา และได้ผลลัพธ์หลายชุด ใช้ในโปรเซสเซอร์แบบPentium MMX
4. MIMD(Multiple Instruction Multiple Data stream)คือ โปรเซสเซอร์ที่ใช้การประมวลผลด้วยชุดข้อมูลหลายชุด และทำงานด้วยได้หลายคำสั่ง ภายใน 1 สัญญาณนาฬิกา
RISC ( Reduced Instruction- Set Computing หรือชิปที่มีการลดทอนคำสั่ง ) คือ โปรเซสเซอร์ที่มีชุดคำสั่งที่มีรูปแบบและขนาดที่แน่นอน สามารถประมวลผลได้ภายใน 1 สัญญาณนาฬิกา การอ้างอิงหน่วยความจำจะใช้คำสั่ง Load และStore ที่สามารถอ้างอิงหน่วยความจำได้โดยตรงเท่านั้น ใช้การอ้างตำแหน่งแบบตรงๆ ง่ายโดยมีรูปแบบจำกัดอยู่ 2 แบบ คือ 1.แบบอ้างผ่าน Register ( Register Indirect ) Register จะเก็บค่าตำแหน่งไว้ แล้ว ทำการอ้างตำแหน่งนั้นๆผ่านRegister 2.ในแบบ Index จะเป็นการอ้างตำแหน่งจากค่าคงที่ที่มาในคำสั่งนั้นๆเลย
CISC ( Complex Instruction- Set Computing ) คือสถาปัตยกรรมของโปรเซสเซอร์ ที่ใช้คำสั่งซับซ้อนที่มีความยาวเปลี่ยนไปตามชนิดของคำสั่ง มีคำสั่งให้ใช้งานมากมาย ทำให้เขียนโปรแกรมง่าย และโปรแกรมมีขนาดเล็ก การทำงานของคำสั่งจะใช้ Microcode โดยคงความเข้ากันได้กับโปรเซสเซอร์รุ่นเก่า ทำให้ไม่ต้องเขียนโปรแกรมใหม่
SMP(Symmetric MultiProcessing) คือสถาปัตยกรรมของการใช้โปรเซสเซอร์ หลายตัว ที่ใช้ทรัพยากรของระบบเช่น บัส หน่วยความจำ I/O ร่วมกัน ไม่สามารถแบ่งเป็น partition ย่อยๆได้ และสมรรถนะของระบบจะลดลงเมื่อใช้โปรเซสเซอร์ มากกว่า 8 ตัว ความสามารถในการขยายสเกลยังจำกัด แต่สามารถใช้โปรแกรมแบบเดิมได้ไม่ต้องเขียนขึ้นใหม่
ระบบคอมพิวเตอร์ คือ องค์ประกอบที่จะทำให้คอมพิวเตอร์สามารถทำงานได้อย่างสมบูรณ์ถ้าขาดองค์ประกอบส่วนใดส่วนหนึ่งแล้ว เครื่องคอมพิวเตอร์ก็ไม่สามารถทำงานได้ระบบของคอมพิวเตอร์จะประกอบไปด้วย 5 ประการคือ
1.Hardware
2.Software
3.Peopleware
4.Data
5. Procedure
ประเภทของคอมพิวเตอร์
1. คอมพิวเตอร์ระดับใหญ่(Mainframe Computer)
2. คอมพิวเตอร์ระดับเล็ก(Mini Computer)
3. คอมพิวเตอร์ระดับยิ่งใหญ่ (Supper Computer)
4. คอมพิวเตอร์ส่วนบุคคล(PC:Personal Computer)
5. คอมพิวเตอร์ขนาดสมุดบันทึก(Note Book)
6. คอมพิวเตอร์ที่ทำหน้าที่เลขาส่วนตัว หรือ พีดีเอ(PDA:Personal Digital Assistant)
7. คอมพิวเตอร์เครือข่าย(Net)
ฮาร์ดแวร์(Hardware)
หน่วยรับข้อมูลหรือ (Input Unit)
หน่วยประมูลผลกลางหรือซีพียู(CPU:Central Processing Unit)
หน่วยเก็บข้อมูล(Storage) / หน่วยเก็บข้อมูลหรือความจำหลัก(Primany Storage หรือ Main Memory) และหน่วยความจำสำรอง (Secondary Storage)
หน่วยแสดงผล (Output Unit)
รายชื่อต่อไปนี้เป็นส่วนหนึ่งของชิปเซตที่ใช้กับสถาปัตยกรรมหน่วยประมวลผลกลางแบบ x86
Intel produces chipsets for its own line of processors:
i845E/GV Bus 533 MHz AGP4 2Go DDR PC2700 max
i850e i855G (855GME for the Pentium M)
i865G/P ( 4 GiB DDR2, 533 MHz FSB, AGP8, serial ATA )
i875p = optimized i865
E7205 (for Pentium 4 servers), E7500/E7501/E7505 (for Xeon servers)), E7520/E7525/E7530 (for dual Xeon servers)
910GML/GMZ, 915GM/PM, 945PM/GM
945PM/GM + Intel PRO/Wireless 3945ABG + Intel Core Solo = Centrino (third generation)
945PM/GM + Intel PRO/Wireless 3945ABG + Intel Core Duo = Centrino Duo
910GL, 915P/PL/G/GL/GV, 925X/XE, 945P/PL/G/GZ, 955X (for Pentium D/XE)
963Q, 965P/G/Q, 975X (for Intel Core 2 Duo)
P35 (for Intel [Core 2 Duo], [Core 2 Quad], and [Core 2 Extreme])
VIA Technologies produces chipsets for Intel and AMD processors:
VIA KT133 KT133A
VIA KT266A FSB 200/266 MHz AGP4
VIA KT333
VIA Apollo KT400A ( Serial ATA )
VIA P4X400
K8T400M
Silicon Integrated Systems produces chipsets for Intel and AMD processors (and formerly for Cyrix processors):
SiS 645 648
SiS 650 651 655
SiS 735 740
NVIDIA produces chipsets for AMD and Intel processors, as well as graphics processors:
·
Chipsets :
nForce 1 :
nForce 2 : Ultra 400Gb , Ultra 400R , Ultra 400.
nForce 3 : Go , Professional.
nForce 4 : SLI Intel , Series AMD , SLI/XE Ultra Intel , Intel x16.
nForce 5 : 520 , SLI/570/550 AMD , 590SLI AMD , 570 SLI Intel , 590 SLI Intel.
nForce 6 : 650i , SLI/650i Ultra , 680a SLI , 680 SLI/680i LT SLI.
Graphics cards:
TNT : TNT2 Pro , TNT2 Ultra , TNT2 Model 64 (M64) , TNT Model 64 (M64) Pro
Vanta , Vanta LT
GeForce 1 : 256 , DDR
GeForce 2 : GTS , Pro , TI , Ultra , MX , MX100 , MX200 , MX400 , MX Integrated graphics
GeForce 3 : TI200 , TI500
GeForce 4 : MX 420 , MX440 , MX440-SE , MX460 , MX Integrated graphics , MX 4000 , TI 4200 , TI4400 , TI4600 , TI4800 , TI4800SE
GeForce 5 : FX5100 , FX5200 , FX 5200LE , FX 5200 Ultra , FX5500 , FX5600 , FX5600 Ultra , FX5600 SE , FX5600 XT , FX5700 , FX5700 VE , FX5700 Ultra , FX5700 LE , FX5800 , FX5800 Ultra , FX5900 , FX5900 Ultra , FX5900 XT , FX5900 ZT , FX5950 Ultra , PCX 5300 , PCX 5750 , PCX 5900
GeForce 6 : 6100 , 6150 LE , 6150 , 6200 , 6200 LE , 6200 TC , 6200 SE TC , 6500 , 6600 , 6600 LE , 6600 VE , 6600 GT , 6610 XL , 6700 XL , 6800 , 6800 LE , 6800 XE , 6800 XT , 6800 GS , 6800 GT , 6800 Ultra
GeForce 7 : 7100 GS , 7300 LE , 7300 SE , 7300 GS , 7300 GT , 7500 LE , 7600 GS , 7600 GT , 7800 GS , 7800 GT , 7800GTX , 7900 GS , 7900 GTO , 7900 GT , 7900 GTX , 7950 GX2
GeForce 8 : 8300 GS , 8400 GS , 8500 GT , 8600 GT , 8600 GTS , 8800 GTS , 8800 GTX , 8800 Ultra
Quadro 2 : MXR , DCC , PRO , EX
Quadro 4 : 200 , 400 NVS , 380 , 500 , 550 , 580 , 700 , 750 , 780 , 900 , 980 XGL
Quadro FX : 330 , 350 , 500 , 540 , 550 , 560 , 600 , 700 , 1000 , 1100 , 1300 , 1400 , 1500 , 2000 , 3000 , 3000G , 3400 , 3450 , 3500 , 4000 SDI , 4400 , 4400G , 4500 , 4500SDI , 4500X2 , 5500 , 5500SDI
Quadro NVS : 200 , 210s , 280 , 280SD , 400 , 440 , 280PCI , 285
ATI (acquired by AMD in 2006) produced chipsets for Intel and AMD processors, as well as graphics processors:
Chipsets for AMD processors:
AMD 690, AMD M690 (mobile)
AMD 580X CrossFire
AMD 480X CrossFire
ATI Radeon Xpress 1100 (with integrated graphics)
ATI Radeon Xpress 200, 200M (mobile) (with integrated graphics)
ATI SB600 (southbridge)
Chipsets for Intel processors:
ATI CrossFire Xpress 3200 (for Intel Core 2 Duo)
ATI Radeon Xpress 1250 (with integrated graphics)
ATI Radeon Xpress 1100 (with integrated graphics)
ATI Radeon Xpress 200
ATI SB600 Series (southbridge)
Graphics processors:
ATI Radeon 9200 Pro
ATI Radeon 9500 Pro
ATI Radeon 9700 Pro 128DDR AGP8x
ATI Radeon 9800 Pro (128 MiB)
องค์ประกอบระบบคอมพิวเตอร์
Computer Systems
ระบบคอมพิวเตอร์
ระบบคอมพิวเตอร์ที่จะขอกล่าวเป็นตัวอย่างแรกนี้ เป็นสถาปัตยกรรมแรกเริ่มที่เรียกว่า ฟอนนอยมันน์ (von Neumann Architecture) คิดค้นโดยจอหน์ ฟอน นอยมันน์ (John von Neumann) ที่ครั้งแรกออกแบบตามแนวความคิดให้เป็นเครื่องจัดเก็บโปรแกรม (Stored-program Concept) มาตั้งแต่ปี พ.ศ. 2488 เรียกชื่อเครื่องนี้ว่า IAS ถึงแม้ว่าต่อมาอีกหลายปีจึงสร้างจริงได้สำเร็จ แต่ก็นับได้ว่าเป็นเครื่องคอมพิวเตอร์ที่มีสถาปัตยกรรมต้นแบบที่ควรเริ่มต้นศึกษา
โครงสร้างหลักทั่วไปของเครื่อง IAS ประกอบด้วย
· หน่วยความจำหลัก (Main Memory) ทำหน้าที่จัดเก็บข้อมูลและโปรแกรม
· หน่วยคำนวณและตรรกะ (ALU : Arithmetic and Logic Unit) ทำหน้าที่ดำเนินการกับข้อมูลเลขฐานสอง
· หน่วยควบคุม (Control Unit) ทำหน้าที่แปลคำสั่งภาษาเครื่อง (Instructions) ที่จัดเก็บในหน่วยความจำหลักเพื่อให้สั่งกระทำการ (Execute) ต่อไป
· หน่วยข้อมูลรับเข้า-ส่งออก (Input/Output Unit) ทำหน้าที่แปลงสัญญาณและการแทนค่าข้อมูลที่รับเข้า-ส่งออกตามที่หน่วยควบคุมสั่งการ
2 .Instruction set
สถาปัตยกรรม Computer แบบ RISC (Reduced Instruction Set Computer) คือการพยายามที่จะออกแบบ CPU ใหมีความาสามารถมากขึ้น โดยการใช ชุดคําสั่งนอยๆ และเปนชุดคําสั่งงายๆไมยุงยากซับซอนการออกแบบสถาปตยกรรม Processor แบบ RISC นั้นจะเนนการลดจํานวนและลดความซับซอนของชุดคําสั่งภายใน (Instruction Set) ซึ่งในความเปนจริงแลว ก็ยังมีอีกหลายอยางที่เปนการออกแบบสถาปตยกรรมแบบRISC อันไดแก การจัดการเกี่ยวกับ Cache, หารทํา Pipeline, SuperScalar และอื่นๆ ในการที่จะปรับปรุงประสิทธิภาพของการพัฒนา Softwareใหดีขึ้นนั้น ทําใหมีการพัฒนา High-Level programming Languages ใหมีความสมารถและความซับซอน มากขึ้น ซึ่งมันชวยให programmer สามารถสราง algorithm ที่มีความสั้นกระทัดรัด สามารถจัดการกับงานที่มีความละเอียดและซับซอนไดงายขึ้น และชวยสนับสนุนในการเขียนโปรแกรมใหมีโครงสรางที่เปนธรรมชาติมากขึ้น
อยางไรก็ตามการที่ High-Level programming Languages นั้นมีการพัฒนาขึ้นมาเรื่อยๆนั้นมันก็มีขอเสียที่เกิดขึ้นเหมือนกัน ซึ่งเราเรียกปญหานี้วา Semantic Gap จากความแตกตางกันในการดําเนินงานที่ถูกจัดหาโดย High-Level programming Languages (HLL) กับการดําเนินงานที่ถูกจัดหาโดย Machine Language ชองวางที่เกิดจากความแตกตางในการดําเนินงานนี้จะหมายถึง การปฏิบัติงานที่ไมมีประสิทธิภาพ ขนาดของ Machine program ที่ใหญเกินไป และ Complier ที่มีความยุงยากซับซอนมาก
The Semantic Gap.
การแกปญหาที่เกิดขึ้นนี้ คือการพยายามลด Gap ที่เกิดขึ้น ซึ่งมี 2 แนวทางดวยกันคือ
1. CICS (Complex Instruction Set Computer) การออกแบบ Computer โดยใชสถาปตยกรรมแบบ CISC คือการออกแบบโดยใหมีชุดคําสั่ง (Machine program) เปนเปนจํานวนมาก มีความซับซอน และใกลเคียงกับ คําสั่งใน High-Level programming Languages (HLL) รวมถึงการใหมีวิธีที่ใชในการระบุตําแหนง Address หลายวิธีการ (Addressing Mode)
2. RISC (Reduced Instruction Set Computer) การออกแบบ Computer โดยใชสถาปตยกรรมแบบ RISC คือการออกแบบโดยการพยายามลดความซับซอนและจํานวนของชุดคําสั่ง (Machine program) ใหนอยลง
และดัดแปลงใหเหมาะสมกับความตองการที่แทจริงของผูใชงานจากการศึกษาในหลายๆดานไดนําไปสูการหาคุณสมบัติในการดําเนินงานของภาษาเครื่อง (Machine Language) ซึ่งถูกสรางขึ้นอยางเปนลําดับขั้นตอนโดย High-Level programming Languages (HLL) ซึ่งเปนเหตุผลที่มาสนับสนุนการออกแบบ Computer โดยใช้ สถาปตยกรรมแบบ RISC สิ่งที่มีความนาสนใจที่จะมาพิจารณากันมีดังนี้
- ความถี่ของชนิดของงาน (functions) ที่มีการดําเนินงาน
- ชนิดของตัวถูกดําเนินการ (operands) และความถี่ที่มันถูกใชงาน
- การดําเนินงานอยางเปนลําดับขั้นตอน (execution sequencing)
Operations
จากการศึกษาวิเคราะหคุณลักษณะการทํางานของ High-Level programming Languages (HLL) นั้นพบวาคําสั่งที่ใชในการกําหนดคานั้นมีมากกวาอยางอื่น ซึ่งเปนสิ่งที่ชี้ใหเห็นวาการเคลื่อนยายขอมูลแบบงายๆนั้นมีความสําคัญสูง เชนเดียวกัน คําสั่งที่เกี่ยวกับการทําเงื่อนไขก็มีน้ำหนักมากเหมือนกัน ซึ่งแสดงใหเห็นวาการควบคุมการทํางานของชุดคําสั่งใหมีการทํางานอยางมีลําดับขั้นตอนนั้นมีความสําคัญมากเพื่อแสดงใหเห็นถึงคุณลักษณะการทํางานของ High-Level programming Languages (HLL) ใหชัดเจนยิ่งขึ้น เราไดใช VAX, PDP-11, และ Motorola 68000 มาแปลโปรแกรม Patterson programs [PATT82a] เพื่อแสดงใหเห็นถึงจํานวนเฉลี่ยของคําสั่งพื้นฐาน (machine instructions) และ การอางอิงถึงหนวยความจําตอชนิดของคําสั่งใน HLL program ในโปรแกรมหลายๆหลายๆแบบ
จากตารางนี้เราจะเห็นวา การทํางานที่เกี่ยวกับ การเรียก และการสงคืน (call / return) นั้นเปนการดําเนินงานที่มีการใชเวลามากที่สุดในHLL programs ทั่วๆไป
Addressing Mode โดยสวนมากของคําสั่งในการดําเนินงานจะมีวิธีการที่ใชใน การระบุตําแหนงของหนวยความจําแบบงายๆ (simple addressing mode), ที่ซึ่งตําแหนงของหนวยความจําสามารถคํานวณหาออกมาไดโดยใชแค 1 รอบการทํางาน (register, register indirect, displacement) ซึ่งในขณะที่การระบุตําแหนงของหนวยความจําแบบซับซอน (complex addressing mode เชน memory indirect, indexed + indirect, displacement
+ indexed, stack) นั้น จะมีการใชงานอยูเพียงแค 18% ของคําสั่งตางๆเทานั้น
Operands
จากการศึกษาและทดสอบพบวา 74% ถึง 80% ของตัวถูกดําเนินการ (operands) ที่ถูกอางอิงถึง เปน ตัวแปรที่ใชระบุในเชิงของขนาด(Scalar such as integers, reals, characters, etc.) และสวนมากจะเปนการถูกใชในการอางอิงไวใชงานภายใน (localized) ซึ่งสามารถเก็บในregister ได สวนที่เหลือ (20–26%) นั้นเปนลักษณะ ขอมูลแบบ array/structures ซึ่งก็ตองการใชตัวแปรที่มีความหมายในเชิงปริมาณที่เปนlocalized เพื่ออางอิงถึงตําแหนงและขนาดของมันเชนเดียวกัน ซึ่งเราจะสามารถสรุปไดวา operands ที่ถูกอางอิงถึงนั้นสวนใหญจะเปนแบบ scalarโดยมีการใชงานเปนแบบ localized และ 80% ของตัวแปรเหลานี้นั้นถูกเกบอยูใน registers
Procedure Calls
จากการศึกษาเราพบวา ฟงกชั่นงานที่เปนการ Calls และ Returns นั้นมีความสําคัญอยางมากใน HLL
programs เนื่องเวลาโดยมากจะถูกใชไปในการดําเนินงานฟงกชั่นทั้ง 2 นี้ ถึงแมวาจะมีแค 15% ของคําสั่งใน HLL
programs ที่เปนคําสั่งของการ Calls และ Returns แตวามันเปนสวนที่ใชเวลาในการดําเนินการมากที่สุดเนื่องจาก
ความซับซอนของมัน (nesting)
ฟงกชั่น Calls และ Returns จะถูกแปรไปเปนลักษณะของคําสั่งพื้นฐานหลายๆคําสั่ง (machine instructions) ที่มีความสัมพันธเปนลําดับขั้นตอนตอเนื่องกันอยางยืดยาว และมีการอางอิงถึงหนวยความจําเป็นจํานวนมาก
สิ่งสําคัญที่เกี่ยวของกับการดําเนินงานของฟงกชั่น Calls และ Returns คือ จํานวนคาตัวแปร (parameters
& variables) ที่มีการสงผานในฟงกชั่นของการ Calls และ Returns และ ระดับความลึกของการซอนทับ (depth of
nesting) ของฟงกชั่น Calls และ Returns อีกอยางคือ ตัวแปรสวนมากที่ถูกใชงานใน ฟงกชั่น Calls และ Returns จะเปนแบบ local
จากสิ่งที่กลาวมาขางตนเราสามารถสรุปไดวา
- การดําเนินงานพื้นฐาน (simple operations, ALU และ move) นั้นมีการดําเนินงานมากกวาการดําเนินงานที่มีความซับซอน (complex operations) มาก
- การมีการใชงานอยางมากของ การใช การระบุตําแหนงของหนวยความจําแบบงายๆ (Simple Addressing mode) ในคําสั่งตางๆ
- การใชงานตัวถูกดําเนินการที่มีความบอยครั้งมาก เฉลี่ยแลวแตละคําสั่งจะมีการใชตัวถูกดําเนินการประมาณ 1.9 ตัวถูกดําเนินการ
- ตัวถูกดําเนินการสวนใหญที่ถูกอางอิงถึงจะเปนในลักษณะของคาในเชิงปริมาณ (Scalar) ซึ่งหมายความวามันสามารถถูกเก็บอยูในregister ได และตัวถูกดําเนินการเหลานั้นเปนตัวแปรหรือพารามิเตอรที่ถูกกําหนดใหเปนแบบภายใน (local) ดวย
- การเพิ่มประสิทธิภาพของการทํางานของฟงกชั่น Call / Return จะทําใหไดความเร็วที่เพิ่มขึ้นอยางมากจากขอสรุปที่กลาวมาเหลานี้ จะเปนจุดเริ่มตนที่จะนําเขาไปสู Reduced Instruction Set Computer (RISC)
คุณลักษณะหลั กของสถาปตยกรรมแบบ RISC
- ชุดคําสั่ง ในสถาปตยกรรมแบบ RISC นั้นจะถูกจํากัดและจะมีเพียงแคคําสั่งที่เปนคําสั่งพื้นฐาน งายๆเทานั้น
- จุดประสงคก็เพื่อใหมีการสรางชุดคําสั่งที่รวบรวมเอาคำสั่งที่สามารถทํางานใหเสร็จสิ้นไดอยางรวดเร็วไวดวยกัน คําสั่งสวนมากในสถาปตยกรรมแบบ RISC นั้นสามารถทําใหเสร็จสิ้นได 1 คําสั่งใน 1 รอบสัญญาณนาฬิกา (one instruction per single machine cycle) (หลังจากคําสั่งถูกทําการ fetched และถูก decoded)
- มีการทํางานแบบ Pipeline (โดยปราศจากการอางอิงหนวยความจํา[without memory reference])
คําสั่งในสถาปตยกรรมแบบ RISC จะมีจํานวนนอยๆและไมซับซอน ในขณะที่คําสั่งในสถาปตยกรรมแบบ CISC นั้นตองมีการใชmicroprogramming เพื่อที่จะทําการสรางคําสั่งที่มีความซับซอนขึ้นมาเพื่อใชในการดําเนินงาน และมีคําสั่งเปนจํานวนมาก
- การที่มีเพียงแตคําสั่งที่งายๆไมซับซอนนั้นจะชวยลดควมซับซอนของ Control Unit และ เสนทางลําเลียงขอมูล (data path) ลงได ซึ่งสงผลใหหนวยประมวลผล (processor) นั้นสามารถทํางานที่สัญญาณนาฬิกาที่มีความถี่สูงขึ้นได
- การทํางานแบบ pipeline นั้นจะถูกใชงานไดอยางมีประสิทธิภาพถาคําสั่งเหลานั้นเปนคําสั่งที่งายๆไมซับซอนและการใชเวลาในการปฎิบัติงานในคําสั่งเหลานั้นคลายๆกัน
ในการดําเนินงานที่ซับซอนในสถาปตยกรรมแบบ RISC นั้นจะถูกดําเนินงานโดยการใชคําสั่งที่เปน
คําสั่งที่งายๆไมซับซอนหลายๆคําสั่งมาทํางานเรียงตอกันอยางเปนลําดับขั้นตอน เพื่อใหไดผลลัพธ
ออกมา สวนในกรณีของ CISC นั้น จะทําการดําเนินงานที่ซับซอนนั้นดวยคําสั่งที่มีความซับซอนเพียง
แคคําสั่งเดียวหรือแคไมกี่คําสั่งเทานั้น
ตัวอยางงายๆสําหรับการเปรียบเทียบการทํางานใน CISC & RISC
สมมุติวา เรามี program ที่ 80% ของการดําเนินงานทั้งหมดนั้นสามารถทําใหเสร็จสิ้นไดดวยคําสั่งแบบงาย ๆ สวนอีก 20% ที่เหลือนั้นเปนการดําเนินงานที่ตองใชคําสั่งที่มีความซับซอน บน เครื่องที่ใชสถาปตยกรรมแบบ CISC นั้นการปฏิบัติคําสั่งงายๆจะใชเวลาในการทํางานตอ 1 คําสั่งเทากับ 4 รอบสัญญาณนาฬิกา สวนการปฏิบัติคําสั่งที่มีความซับซอนนั้นจะใชเวลาในการทํางานตอ 1 คําสั่งเทากับ 8 รอบสัญญาณนาฬิกา โดยที่ 1รอบสัญญาณนาฬิกาจะคิดเปนเวลาเทากับ 100 ns ( 10-7 s) บน เครื่องที่ใชสถาปตยกรรมแบบ RISC นั้นการปฏิบัติคําสั่งงายๆจะใชเวลาในการทํางานตอ 1 คําสั่งเทากับ 1 รอบสัญญาณนาฬิกา สวนการปฏิบัติคําสั่งที่มีความซับซอนนั้นจะใชการนําเอาคําสั่งที่เปนคําสั่งที่งายๆไมซับซอนหลายๆคําสั่งมาทํางานเรียงตอกันอยางเปนลําดับขั้นตอน เราคิดเปนคาเฉลี่ยวา 1 การดําเนินงานที่มีความซับซอนนั้นจะตองใชคําสั่งงายๆทั้งหมด14 คําสั่ง ก็คือตองใชเวลาทั้งหมดเทากับ 14 รอบสัญญาณนาฬิกา โดยที่ 1 รอบสัญญาณนาฬิกาจะคิดเปนเวลาเทากับ 75 ns ( 0.75 * 10-7 s)หากเรามีโปรแกรมที่มีจํานวนคําสั่งทั้งหมดเทากับ 1 ลานคําสั่ง เราจะใชเวลาทั้งหมดเทาไหรในการทํางาน จนเสร็จทุกคําสั่งของโปรแกรมนี้โดยใชสมมุติฐานขางตนมาคํานวณเปรียบเทียบ
CISC: (106 * 0.80 * 4 + 106 * 0.20 * 8) * 10-7 = 0.48 s
RISC: (106 * 0.80 * 1 + 106 * 0.20 * 14) * 0.75 * 10-7 = 0.27 s
จากผลลัพธขางตนเราจะเห็นวา
- ในการดําเนินงานที่มีความซับซอนนั้น การทํางานโดยใช สถาปตยกรรมแบบ RISC นั้นจะใชเวลา มากกวาแบบ CISC แตวาจํานวนของการดําเนินงานที่มีความซับซอนนั้นมีไมมากเมื่อเทียบการดําเนินงานแบบงายๆที่ไมซับซอน
- เนื่องจากความที่สถาปตยกรรมแบบ RISC นั้นงายไมซับซอน ทําใหมันสามารถทํางานไดที่สัญญาณนาฬิกาที่มีความถี่สูงกวา 1 รอบสัญญาณนาฬิกานั้นจะเล็กกวา ในกรสถาปตยกรรมแบบ CISC นั้นการทํางานที่เปนคําสั่งงายๆนั้นจะใชเวลามากกวาเนื่องจากการที่ความยาวของ data path นั้นถูกเพิ่มมากขึ้นและจากการที่ในสวนของตัวควบคุมนั้นมีความซับซอนเพิ่มมากขึ้นดวย
สถาปตยกรรมในการดึงขอมูล (load) และ การเก็บขอมูล (store)
เฉพาะคําสั่งในการดึงขอมูล (load) และการเก็บขอมูล (store) เทานั้นที่จะมีการอางอิงถึงขอมูลในหนวยความจํา สวนคําสั่งอื่นๆจะมีการทํางานรวมกับกับ register เทานั้น (คือเปนลักษณะคําสั่งแบบ register-to-register) ดังนั้นจะมีเพียงแคไมกี่คําสั่งเทานั้นที่มีการเขาถึงหนวยความจําที่ทําใหตองใช เวลาในการทํางานมากกวา 1 รอบสัญญาณนาฬิกา (หลังจากคําสั่งถูกทําการ fetched และถูก decoded)
การทํางานแบบ Pipeline ที่มีการอางอิงถึงหนว
สถาปตยกรรมแบบ RISC นั้น เมื่อจะทําการจัดการกับคําสั่งตางๆ ก็จําเปนจะตองนํา Operand มาเก็บ
ไวใน Register กอน และ ในแตละคําสั่งนั้น ก็ถูกจํากัดไวที่ 1 Word ซึ่งก็ไมเพียงพอตอการเก็บคาของ
Operand ตางๆ ดังนั้นจึงใชการอางตําแหนงในหนวยความจําแทน แต การเขาถึงหนวยความจํานั้นตอง
เสียเวลาอยูพอสมควร จึงมีการกําหนดใหใชเพียงแค 2 คําสั่งเทานั้น คือการ load และ การ store เพื่อลด
traffic ระหวาง หนวยประมวลผล และ หนวยความจํา สวนเวลาในการ load หรือ store นั้น ก็ขึ้นอยูกั บ
ขนาดของ Operand
คําสั่งตางๆจะใชวิธีการในการระบุตําแหนงของหนวยความจํา (addressing mode) เพียงไมกี่แบบเทานั้น
- Addressing Mode โดยสวนมากของคําสั่งในการดําเนินงานจะมีวิธีการที่ใชใน การระบุตําแหนงของหนวยความจําแบบงายๆ (simple addressing mode), ที่ซึ่งตําแหนงของหนวยความจําสามารถคํานวณหาออกมาไดโดยใชแค 1 รอบการทํางาน โดยทั่วไป Addressing Mode ที่ใชงานจะเปนพวก register, direct, register indirect, displacement ซึ่งในขณะที่การระบุตําแหนงของหน วยความจําแบบซับซอน (complex addressing mode เชน memory indirect, indexed + indirect, displacement+ indexed, stack) นั้น จะมีการใชงานอยูเพียงแค 18% ของคําสั่งตางๆเทานั้น
- การใช Addressing Mode แบบงายเปนหลักจะไดประโยชนในเรื่องของความเร็วที่เพิ่มขึ้นเมื่อเปรียบเทียบกับการใช Addressing Modeที่มีความซับซอน เนื่องจากไมตองเสียเวลาในการคํานวณหาตําแหนงของหนวยความจําที่มีการทํางานดวย
- กําหนดขนาดของคําสั่ง (Instructions) ใหมีขนาดที่แนนอน (Fixed Instruction Length) และมีรูปแบบเดียวกัน (Uniform Format)
- การทําอยางนี้จะมีผลทําใหการ load และการ decode คําสั่งนั้นทําไดงายไมยุงยากซับซอน และทําไดอยางรวดเร็ว มันไมมีความจําเปนที่จะตองรอจนกวาจะรูวาความยาวของคําสั่งนั้นๆมีความยาวเทาไหร่ กอนที่จะเริ่มทําการ decode คําสั่งนั้นๆ เนื่องจากทุกๆคําสั่งนั้นมีความยาวที่แนนอนอยูแลว (Fixed Instruction Length)
- การ decode คําสั่งนั้นทําไดงาย เนื่องจากสวน (field) ที่แบงเอาไวสําหรับตัวดําเนินการ (Opcode) และสวนที่เปนคาตําแหนงของหนวนความจํา (address) ที่บรรจุอยูใน code ของคําสั่ง นั้นจะมีการแบง ตําแหนงเอาไวอยางเปนรูปแบบที่แนนอนอยูแลว ซึ่งทุกๆคําสั่งจะมีการแบงตําแหนงเหมือนๆกันทุกคําสั่ง (Uniform Format)
- ถาหากวาจะทําใหมีการทํางานแตละคําสั่งใหเสร็จสิ้นภายใน 1 รอบสัญญาณนาฬิกาไดนั้น ก็จําเปนที่จะตองมีการจํากัดขนาดของคําสั่งเพื่อ ไมใหมีขนาดที่ยาวเกินไป ซึ่งโดยปกติแลวจะใชขนาด 1 Word ( จะมีขนาดไมแนนอน แลวแตเครื่อง แตโดยทั่วๆไป CPU แบบ RISCจะมีขนาดของ Word = 32 Bits ) โดยใน 1 Word นั้น ก็จะกําหนดทุกๆอยางทั้ง Opcode ที่จะใชในคําสั่งนั้น, จะดึง Operand จากที่ไหน ,จะใหเก็บผลลัพธ ( Result ) ที่ไหน และ คําสั่งถัดไปอยูที่ไหน
- มีการใช Register เปนจํานวนมาก ( Large number of registers)
- ทั้งคาของตัวแปรและผลลัพธระหวางการดําเนินงาน สามารถถูกเก็บไวใน registers ที่มีอยูเป็นจํานวนมากได ซึ่งทําใหไมมีความจําเปนที่จะตองทําการ load และ store ขอมูลกับ memory บอยซึ่งชวยใหการทํางานมีความเริ่มเพิ่มมากขึ้น
- ตัวแปรที่ถูกกําหนดเปนตัวแปรภายใน (local variables) ทั้งหมดของ procedures ตางๆ และparameters ตางๆที่มีการสงถูกคาผานเขาและออกนั้น สามารถถูกเก็บไวใน registers ไดจะเกิดอะไรขึ้นเมื่อมีการเรียกเอา Procedure ใหมเขามาทํางาน
- ตามปรกติแลว registers จะตองทําการเก็บคาตางๆที่อยูในตัวมันลงไปยัง memory (ในขณะนั้นคาตางๆที่เก็บอยูใน registers จะเปนคาของตัวแปรและคาของ parameters ตางๆที่ใชสําหรับการเรียกเอาprocedure อันใหมเขามาทํางาน) และหากในระหวางนั้นมีการทํางานที่จะตองทําการเรียก procedureเขามาอีกครั้งนั้น ก็จะตองทําการ load เอาคาของตัวแปร และคาของ parameters ตางๆออกมาจากmemory มาใสใน registers อีกครั้ง ซึ่งจะทําใหเกิดการเสียเวลาอยางมาก
- แตถาหากวาเรามี registers เปนจํานวนมากแลว เราสามารถกําหนดใหกลุมของ registers กลุมใหมทําการเก็บคาที่ใชในการเรียกprocedure ใหมอีก procedure เขามาทํางานไดโดยที่เราไมจําเปนตองเอาคาใน
วิธีการนี้สามารถทําใหเปนจริงไดเนื่องจากวา จํานวนของตัวแปรภายใน (local variables) ใน procedures ตางๆนั้นไมไดมีเปนจํานวนมาก และถาหากไมเปนกรณีพิเศษที่ผิดธรรมดาแลว procedure calls จะไมมีการทํางานเชื่อมโยงซอนๆกัน (chains of nested procedure calls)มากกวา 6
ถาหากเกิดมีกรณีที่ procedure calls มีการทํางานเชื่อมโยงซอนๆกันมากๆขึ้นมา และทําใหจํานวน registers ไมเพียงพอที่กําหนดใหเปนregisters กลุมใหมที่จะทําการเก็บคาที่ใชในการเรียก procedure เขามาทํางานอีกไดนั้น registers จะก็จะทําการเก็บคาตัวแปรภายใน (local variables) และคาของ parameters ตางๆที่อยูในตัวมันลงไปยัง memory กอนแลวคอยทําการ load คาใหมเขามาใน registers
อีกสิ่งหนึ่งที่นาจะพิจารณาคือทําไมสามารถทําใหมีจํานวน Register เปนจํานวนมากไดในสถาปตยกรรมแบบ RISC มันสามารถทําไดเนื่องจากการที่ในสถาปตยกรรมแบบ RISC นั้นมีการลดความซับซอนของตัว processor ลงซึ่งนั่นก็เปนการเพียงพอที่จะทําใหมีพื้นที่บน chip ที่จะเอาไวใชสําหรับการเพิ่มจํานวน registers ใหมีจํานวนมากขึ้น ซึ่งโดยปรกติแลวกรณีทําแบบนี้จะไมเกิดขึ้นบนสถาปตยกรรมแบบ CISC
3.platform
platform คืออะไรแพลตฟอร์ม คือสภาวะแวดล้อมที่ประกอบด้วยฮาร์ดแวร์และซอฟต์แวร์ของระบบคอมพิวเตอร์ระบบหนึ่ง เช่น แพลตฟอร์มเอ็มเแสดอสบนเครื่องคอมพิวเตอร์ที่ใช้ซีพียู 80486, ยูนิกส์ บนเครื่องซัน SPARC station, System 7 บนเครื่องแมคอินทอช Powerbook 180 เป็นต้น จะเห็นได้ว่าในคอมพิวเตอร์ที่ใช้ระบบปฏิบัติการต่างกัน ก็จะมี Platform ที่ต่างกันไปด้วย
Platform จะประกอบด้วย ระบบปฏิบัติการ ,โปรแกรมประสานงานระบบคอมพิวเตอร์ และ ไมโครโพรเซสเซอร์ ซึ่ง Microchip ของคอมพิวเตอร์ใช้ในการทำงานด้ายตรรกะ และจัดการการเคลื่อนย้ายข้อมูล ระบบปฏิบัติการต้องได้รับการออกแบบให้ทำงานกับคำสั่งของ ไมโครโพรเซสเซอร์ เช่น Microsoft Windows 95 ได้รับการสร้างให้ทำงานกับชุดคำสั่งของ ไมโครโพรเซสเซอร์ของ Intel เพื่อการใช้คำสั่งร่วมกัน นอกจากนี้ ยังหมายถึงส่วนอื่น ๆ เช่น เมนบอร์ด และ บัสของข้อมูล แต่ส่วนเหล่านี้กำลังเพิ่มลักษณะที่เป็นโมดูล และมาตรฐานมากขึ้น ในอดีตโปรแกรมประยุกต์แต่ละโปรแกรมยังจะเขียนใหม่ให้ทำงานเฉพาะ platform เนื่องจากแต่ละ Platform มีโปรแกรมอินเตอร์เฟซที่ต่างกัน ดังนั้น โปรแกรมของคอมพิวเตอร์ส่วนบุคคลต้องมีการเขียนให้ทำงานกับ Windows ชุดหนึ่ง และทำงานกับ Macintosh อีกชุดหนึ่ง แต่ระบบเปิดหรือมาตรฐานด้านอินเตอร์เฟซยินยอมให้บางโปรแกรมทำงานกับ Platform ที่ต่างกันโดยผ่านโปรแกรมตัวกลาง หรือ broker Programs
4.ระบบบัสคอมพิวเตอร์
บัส (bus)
บัส (bus) จากที่เคยได้กล่าวว่า คอมพิวเตอร์ทำการประมวลผลและเก็บข้อมูลเป็นชุดของบิท (มีค่า 0 กับ 1) นั้น ชุดของบิทจะถูกส่งไปในวงจรไฟฟ้าตามช่องทางต่างๆ ซึ่งแต่ละช่องทางนั้น เราเรียกว่า บัส ซึ่งเป็นเส้นทางที่ทำให้อุปกรณ์ต่างๆ ทั้งภายนอก ภายใน สามารถติดต่อสื่อสารข้อมูลกันได้ คล้ายกับเป็นถนนให้รถวิ่งจากจุดหนึ่งไปยังเป้าหมายได้ นั่นก็คือ บิทวิ่งไปตามบัสนั่นเอง บัสจะส่งข้อมูลจากอุปกรณ์รับเข้าไปยังหน่วยความจำ จากห่วยความจำไปยังหน่วยประมวลผล จากหย่วนประมวลผลไปยังหน่วยความจำ และจากหน่วยความจำไปยังอุปกรณ์ส่งออก หรือ หน่วยความจำสำรอง เช่น ฮาร์ดดิสก์
บัสประกอบด้วย 2 ส่วน คือ บัสข้อมูลและบัสที่อยู่ บัสข้อมูลจะส่งข้อมูลจริงๆ ส่วนบัสที่อยู่จะส่งข้อมูลเกี่ยวกับตำแหน่งที่ข้อมูลควรจะอยู่ในหน่วยความจำ
ขนาดของบัส สามารถวัดได้เป็นความกว้างบัส ซึ่งเป็นตัวระบุจำนวนบิทที่คอมพิวเตอร์สามารถส่งได้ในแต่ละครั้ง เช่น บัสที่มีขนาด 32 บิท (32-bit bus) จะสามารถส่งข้อมูลได้ 32 บิท หรือ 4 ไบท์ในแต่ละครั้ง ถ้าเราต้องการส่งข้อมูล 8 บิท โดยใช้บัสขนาดนี้ ก็จะต้องแบ่งส่ง 2 ครั้งด้วยกัน แต่ถ้าเราใช้บัสที่มีขนาด 64 บิท ก็จะสามารถส่งข้อมูลได้ทั้งหมดภายในครั้งเดียว
ผู้เชี่ยวชาญทางคอมพิวเตอร์หลายคนอาจเรียกความกว้างของบัสว่า ขนาดของคำ (word size) ซึ่งเป็นจำนวนบิทที่หน่วยประมวลผลสามารถตีความและทำงานได้ในแต่ละครั้ง นั่นคือ ถ้าตัวประมวลผล 64 บิท ก็จะสามารถจัดการได้ครั้งละ 64 บิท คอมพิวเตอร์ที่มีขนาดของคำมากๆ ก็สามารถทำงานได้มากกว่า ในเวลาเท่ากัน ขนาดของคำที่ได้จากการทำงานของหน่วยประมวลผลจำเป็นจะต้องสอดคล้องกับขนาดช่องทางในการส่งข้อมูล เพื่อป้องกันไม่ให้เกิดการคั่งของข้อมูล หรือการสิ้นเปลืองทรัพยากร ดังนั้นคอมพิวเตอร์ส่วนใหญ่จึงมีขนาดของคำเท่ากับความกว้างของบัส
บัสจะมีสัญญาณนาฬิกาเช่นเดียวกับหน่วยประมวลผล ซึ่งผู้ผลิตกำหนดให้ีสัญญาณนาฬิกามีความถี่เป็นเฮิร์ต (hertz หรือ Hz) คำว่าเมกะเฮิร์ต (MHz) คือสัญญาณนาฬิกา (ติ๊ก) 1 ล้านครั้งใน 1 วินาที ในปัจจุบันส่วนใหญ่ หน่วยประมวลจะมีสัญญาณนาฬิกา ประมาณ 400, 533, 800 MHz ยิ่งค่าสัญญาณนาฬิกาสูงเท่าไหร่ ความเร็วในการส่งข็อมูลก็มากเท่านั้น
คอมพิวเตอร์มีบัสอยู่ 2 ชนิดคือ บัสระบบ (system bus) และ บัสเสริม (expansion bus)
บัสระบบ (system bus) เป็นส่วนหนึ่งเมนบอร์ด หรือแผงวงจรหลัก บัสระบบทำหน้าที่เป็นเส้นทางต่อระหว่างหน่วยประมวลผลกับหน่วยความจำ ส่วนบัสเสริมเป็นบัสที่ทำให้หน่วยประมวลสามารถติดต่อสื่อสารกับอุปกรณ์ต่อพ่วงอื่นๆ ได้ ส่วนใหญ่ที่มีการอ้างถึง บัส เฉยๆ จะหมายถึง บัสระบบ
บัสเสริม (expansion bus) จะทำให้อุปกรณ์ภายนอกระบบสามารถติดต่อกับหน่วยประมวลผลได้ อุปกรณ์ต่อพ่วงจะต่อเข้ากับพอร์ต ซึ่งพอร์ตจะต่ออยู่บน ช่องเสริม (expansion slot) ซึ่งช่องเสริมนี้จะต่อกับ บัสเสริมเพื่อส่งข้อมูลไปยังหน่วยประมวลผล รูปข้างล่างนี้เป็นรูปของการส่งข้อมูลระหว่างหน่วยประมวลผล หน่วยความจำ อุปกรณ์ต่อพ่วงต่างๆ ผ่านทางบัสระบบ และบัสเสริม บัสเสริมบนเมนบอร์ดมีหลายชนิด แต่ละชนิดบ่งบอกถึงชนิดของการ์ดที่ต่างๆ ที่ต่ออย่บนคอมพิวเตอร์ ได้แก่ บัส ISA, บัส PCI, บัส AGP, บัส USB และบัสไฟร์ไวร์
โดยทั่วไปบัสที่มีการส่งข้อมูลช้าที่สุด คือ ISA bus ย่อมาจาก (Industry Standard Architecture bus) ตัวอย่างอุปกรณ์ ได้แก่ เมาส์, โมเด็ม, การ์ดเสียง และการ์ดเครือข่ายที่มีความเร็วต่ำ
บัสท้องถิ่น (local bus) เป็นบัสเสริมที่มีความเร็วสูง จะต่อกับอุปกรณ์ที่มีการทำงานเร็วๆ เช่น ฮาร์ดดิสก์ บัสท้องถิ่นที่ควรรู้จักได้แก่ VESA local bus (Video Electronics Standards Association local bus) ซึ่งส่วนใหญ่ใช้กับการ์ดวิดีโอเท่านั้น และบัส PCI เป็นบัสที่ใช้กับอุปกรณ์ต่างๆ ได้หลากหลายกว่า VESA lacal bus มาก และมีความเร็วในการส่งข้อมูลเป็น 4 เท่าของบัส ISA
AGP (Accelelrated Graphics Port) เป็นบัสที่ออกแบบโดยบริษัทอินเทล (Intel) เพื่อเพิ่มประสิทธิภาพในการแสดงผลภาพ 3 มิติ หรือ ภาพวิดีโอ
USB (Universal Serial Bus) และ FireWire เป็นบัสที่ไม่ต้องมีการติดตั้งการ์ดลงบนเมนบอร์ด นั่นคือ อุปกรณ์ จะต่อกับพอร์ต USB ที่ต่อกับ บัส USB ซึ่งต่อกับ บัส PCI อีกที บัส FireWire ก็ทำงานคล้ายๆ กัน
ปัจจุบันเป็นที่เห็นพ้องต้องกันว่า PCI BUS เป็นระบบบัสที่มีประสิทธิภาพสำหรับการประมวลผลของคอมพิวเตอร์ ในอดีตมี ISA BUS มี MCA BUS ปัจจุบัน ISA BUS ก็ยังคงมีใช้อยู่ในคอมพิวเตอร์ เนื่องจากมีอุปกรณ์ต่อพ่วงจำพวกการ์ดอีกหลายยี่ห้อยังต้องการใช้งานอยู่ แต่เท่าที่ดูมีแนวโน้มว่าความต้องการ ISA BUS ในเมนบอร์ดจะลดน้อยลงเรื่อยๆ สังเกตได้จากเมนบอร์ดรุ่นใหม่ อาจจะมีสล๊อตสำหรับ PCI 5 ช่อง สำหรับ ISA เพียง 2 ช่อง และล่าสุด เมนบอร์ดหลายๆรุ่น ไม่มี ISA Slot สำหรับใช้งานอีกต่อไป
สำหรับระบบการควบคุมการแสดงผลของจอภาพ สมัยที่คอมพิวเตอร์ 80486 อาจจะเคยได้ยิน VL-BUS หรือ VESA Local BUS ซึ่งกำหนดให้ซีพียูและการแสดงผลของคอมพิวเตอร์มีบัสเฉพาะที่มีความกว้าง 32 บิต ต่อมาอินเทลเห็นว่า VL BUS ไม่สามารถสนับสนุนการทำงานของเพนเทียมได้อย่างมีประสิทธิภาพ จึงได้ออกแบบบัสแบบใหม่ที่ชื่อว่า PCI BUS ซึ่งไม่ได้ใช้เฉพาะการควบคุมการแสดงผลของจอภาพหรือสำหรับการ์ดวีจีเอเท่านั้น แต่ออกแบบให้ใช้กับอุปกรณ์ทั่วๆ ไปได้ด้วย และในตอนปลายของปี 2540 AGP BUS (Accelerator Graphic Port) ซึ่งออกแบบโดยอินเทลเช่นเดียวกัน ออกมาในลักษณะเดียวกับ VLBUS คือ เพื่อใช้งานกับการ์ดควบคุมการแสดงผลของคอมพิวเตอร์โดยเฉพาะ
5.หน้าที่แต่ละส่วนประกอบของสถาปัตกรรม คอมพิวเตอร์ตามโมเดลของ Von Neumannองค์ประกอบระบบคอมพิวเตอร์
:ฮาร์ดแวร์ (Hardware)
:ซอฟต์แวร์ (Software)
:บุคลากร (Pepleware)
:ข้อมูล (Data)
:กระบวนการทำงาน (Procedure)
พื้นฐานสถาปัตยกรรมคอมพิวเตอร์
คอมพิวเตอร์ คือ “อุปกรณ์ที่ประกอบด้วยชิ้นส่วนทางอิเล็กทรอนิกส์ที่สามารถรับข้อมูลและชุดคำสั่ง (Program) ในรูปแบบที่เครื่องรับได้ แล้วนำมาประมวลผล(Process) ข้อมูลตามชุดคำสั่งเพื่อแก้ปัญหา หรือทำการคำนวณที่ สลับซับซ้อนจนได้ผลลัพธ์ตามต้องการ และยังสามารถบันทึก หรือแสดงผลลัพธ์เหล่านั้นได้”
ฮาร์ดแวร์ (Hardware)
:หน่วยรับข้อมูลหรืออินพุต (Input Unit)
:หน่วยประมวลผลกลางหรือซีพียู (CPU : Central Processing Unit)
:หน่วยเก็บข้อมูล (Storage)
8หน่วยเก็บข้อมูลหรือความจำหลัก (Primary Storage หรือ Main Memory)
8หน่วยเก็บข้อมูลสำรอง (Secondary Storage)
:หน่วยแสดงข้อมูลหรือเอาต์พุต (Output Unit) ซอฟต์แวร์ (Software)
:ซอฟต์แวร์ระบบ (System Software)
8โปรแกรมระบบปฏิบัติการ (OS : Operating System)
8โปรแกรมแปลภาษาคอมพิวเตอร์ (Translator Program)
8ยูทิลิตี้หรือโปรแกรมอรรถประโยชน์ (Utility Program):ซอฟต์แวร์ประยุกต์ (Application Software)
:ซอฟต์แวร์สำเร็จรูป (Package)
บุคลากร (Peopleware)
:ผู้ออกแบบและวิเคราะห์ระบบ (System Analysis and Design)
:โปรแกรมเมอร์ (Programming)
:ผู้บริหารฐานข้อมูล (Database Administrator : DBA)
:ผู้ปฏิบัติการ (Operator)
:ผู้ใช้ (User)
:ผู้บริหาร (Manager)
สถาปัตยกรรมคอมพิวเตอร์คืออะไร ?
:ผู้ออกแบบระบบ IBM System/360 “สถาปัตยกรรมคอมพิวเตอร์ หมายถึงโครงสร้างของคอมพิวเตอร์ที่โปรแกรมเมอร์ของระบบจะต้องเข้าใจในภาษาเครื่องเพื่อเขียนโปรแกรมให้เครื่องทำงานได้อย่างถูกต้อง”
:Bell และ Newell ให้แนวคิดของสถาปัตยกรรมคอมพิวเตอร์ในรูปแบบระดับชั้นที่เรียกว่า hierarchical, multilevel descriptionระดับทั้ง 4 ประกอบด้วยระดับวงจรอิเล็กทรอนิกส์ (Electronics Circuit Level), ระดับการออกแบบลิจิก (Logic Design Level), ระดับการโปรแกรม (Programming Level) และระดับการสวิตช์โปรเซสเซอร์และหน่วยความจำ (Processor-Memory-Switch Level)
พื้นฐานสถาปัตยกรรมคอมพิวเตอร์
:โปรเซสเซอร์เป็นส่วนทำงานของระบบ ซึ่งจะเอ็กซิคิวต์โปรแกรมโดยการประมวลผลทางคณิตศาสตร์และลอจิกข้อมูลต่าง ๆ โปรเซสเซอร์เป็นเพียงส่วนเดียวที่สร้างข้อมูลใหม่โดยการรวมหรือแก้ไขข้อมูลเดิม
:หน่วยความจำทำหน้าที่เก็บข้อมูลจนกว่าจะมีการร้องขอจากส่วนอื่น ๆ ของระบบ ในขณะที่ทำงานปกติ หน่วยความจำจะส่งคำสั่งและข้อมูลให้กับโปรเซสเซอร์
:อุปกรณ์อินพุต/เอาต์พุตทำหน้าที่ถ่ายโอนข้อมูลระหว่างองค์ประกอบภายนอกและภายใน
:ช่องการสื่อสารข้อมูลที่เชื่อมระบบเข้าด้วยกันอาจจะเป็นการเชื่อมต่อระหว่างอุปกรณ์ 2 อุปกรณ์ หรือเป็นสวิตช์ที่ซับซ้อนที่เชื่อมต่อหลาย ๆ องค์ประกอบเข้าด้วยกัน
:แผนภาพ PMS แทนส่วนประกอบหลักของเครื่องคอมพิวเตอร์ส่วนบุคคลแอปเปิลแมคอินทอช (Apple Macintosh) ในตอนต้นจะใช้ช่องสื่อสารข้อมูลเดี่ยวที่เรียกว่า “บัส” (bus) ซึ่งจะเชื่อมต่อส่วนประกอบหลักทั้งหมด จนเมื่อบัสเป็นสวิตช์จะมีส่วนประกอบเพียงสองส่วนที่สามารถติดต่อซึ่งกันและกันในเวลาหนึ่ง ๆ เมื่อสวิตช์ถูกสร้างขึ้นเพื่อการถ่านโอนข้อมูลของอุปกรณ์อินพุต/เอาต์พุต
โมเดลของ von Neumann ของคอมพิวเตอร์แบบดิจิตอลhttp://musicstation.kapook.com/%E0%B8%98%E0%B8%B4%E0%B8%94%E0%B8%B2%E0%B8%9B%E0%B8%A3%E0%B8%B0%E0%B8%88%E0%B9%8D%E0%B8%B2%E0%B8%AD%E0%B9%8D%E0%B8%B2%E0%B9%80%E0%B8%A0%E0%B8%AD.html?ac=favorite
ความคิดเห็น
แสดงความคิดเห็น