Transcript บัส

สถาปัตยกรรมคอมพิวเตอร์
บทที่ 3 การทางานพืน้ ฐานและระบบบัส
LOGO
การทางานพืน้ ฐานและระบบบัส
คอมพิวเตอร์ จะไม่ สามารถทางานได้ ถ้ าหาไม่ มีโปรแกรมสั่ งงานให้ กบั ตัวเครื่อง
โปรแกรม หมายถึง การนาคาสั่ งทีค่ อมพิวเตอร์ เข้ าใจมาเรียงต่ อกัน
จากนั้น หน่ วยประมวลผลจะตีความหมาว่ าต้ องการจะทาอะไร
และจะทางานตามคาสั่ งนั้น
การทางานภายในซีพยี ู
สั่ งให้ บวกเลข A กับ B
ข้ อมูลจะถูกเก็บไว้ ในรีจิสเตอร์
A + B
A
B
A
B
โปรแกรมจะสั่ งงานให้ บวกเลข
ALU
A
+
B
หน่ วยควบคุมจะทาหน้ าทีส่ ั่ งให้ บวก
โดยวงจรภายใน ALU
5
4
1
2
3
4
5
การทางานพืน้ ฐานและระบบบัส
รหัสคาสั่ ง
ตีความคาสั่ ง
ข้ อมูล
ตัวประมวลผลจะอ่านรหัส
คาสั่ งเข้ ามา แล้วตีความคาสั่ งว่ า
จะทาอะไร จากนั้นก็จะรับ
ข้ อมูลเข้ าสู่ ALU เพือ่ ทาการ
ประมวลผลคาสั่ งนั้น
ALU
(Arithmetic and Logic Function)
ผลลัพธ์
การทางานพืน้ ฐานและระบบบัส
เมือ่ คอมพิวเตอร์ จะต้ องทาโปรแกรม
โปรแกรมจะถูกโหลดมาเก็บไว้ ในหน่ วยความจาหลัก
โดยหน่ วยความจาจะถูกแบ่ งไว้ ว่าตาแหน่ งใดเก็บคาสั่ ง
ตาแหน่ งใดจะเก็บข้ อมูล
ส่ วนประกอบของคอมพิวเตอร์ แบบ Top-Level View
CPU
Memory
PC
MAR
IR
MBR
I/O AR
Instruction
Instruction
.
.
Data
I/O BR
I/O Module
Data
PC = Program Counter
IR
= Instruction Register
MAR = Memory Address Register
MBR = Memory Buffer Register
I/O AR = I/O Address Register
I/O BR = I/O Buffer Register
ฟังก์ชันการทางานพืน้ ฐาน
การทางานของคอมพิวเตอร์ จะเกิดจากการทาชุดคาสั่ง ที่เป็ นรหัสภาษาเครื่ อง และ
เก็บอยูใ่ นหน่วยความจา ประกอบไปด้วยประบวนการ 2 ขั้นตอน
1. อ่านรหัสคาสั่งจากหน่วยความจา
2. การปฎิบต
ั ิการ หรื อ กระทาตามคาสั่ง
Fetch Cycle
Start
Execute Cycle
Fetch Instruction
Execute
Instruction
ไซเคิลคาสั่ง (Instructure Cycle)
Halt
ลักษณะของคาสั่ งภาษาเครื่อง
รหัสคาสั่ง จะประกอบด้วย 2 ส่ วน คือ
1. ออปโค้ด (opcode) บอกว่าให้ซีพียท
ู าอะไร
่ ี่ใด
2. โอเปอร์ แรนด์ (operand) การทาคาสั่งจะทากับค่าข้อมูลที่อยูท
15
12 11
0
Opcode
Address
รูปแบบคาสั่ ง
15
S
14
0
Magnitude
รูปแบบเลขจานวนเต็ม
การขัดจังหวะ
 เมือ่ ซีพยี ูทางานตามโปรแกรม จะทาคาสั่งเรียงกันไปทีละ
คาสั่ง
 แต่ซีพยี ูสามารถถูกขัดจังหวะ หรือถูกอิ นเทอร์รัปต์ให้ไป
ทางานอื่ นก่อนได้ และเมือ่ ทางานนั้นจบแล้วจึงกลับมา
ทางานที่โปรแกรมหลักที่มนั ทาอยู่ก่อนหน้า
การขัดจังหวะ
 Program เกิดจากการทาคาสั่งแต่ละคาสั่งได้ไม่สมบูรณ์
หือเกิดโอเวอร์โฟวล์ หรือ เกิดการหารด้วยศูนย์
 Timer เมื่อมีการจับเวลาและเวลาเดินมาถึงค่าที่กาหนด จะ
เกิดการอิ นเทอร์รัปต์โปรแกรม
 I/O อุปกรณ์อินพุ ต เอาท์พุต ส่งสัญญาณมาบอกซีพยี ู
Hardware เกิดจากแหล่งจ่ายไฟหรือหน่วยความจา
ผิดพลาด
ลาดับการทาคาสั่ งเมื่อโปรแกรมถูกอินเทอร์ รัปต์
ชุ ดคาสั่ ง
ชุ ดคาสั่ ง
โปรแกรมย่ อย
C
C
G
D
A
A
B
B
E
F
H
การขัดจังหวะ 1 ชั้น
การขัดจังหวะหลายชั้น
การดาเนินการของคาสั่ ง CALL และ Return
305
306
307
308
โปรแกรม
……..
……..
Instruction
Instruction
CALL 425
Instruction
………..
………..
ก่อนคาสั่ ง CALL
หลังคาสั่ ง CALL
กระโดดไปแอดเดรส 425
กลับตาแหน่ ง
308
โปรแกรมย่ อย
425 Instruction
426 Instruction
…………….
435 Return
เก็บค่ าโปรแกรมเคาน์ เตอร์ (PC)
ลงสู่ หน่ วยความจาสแตก
308
คืนค่าจากสแตกให้ กบั PC (308)
ฟังก์ ชันอินพุตเอาต์ พตุ
ซีพยี ู สามารถอ่านเขียนข้ อมูลกับต่าแหน่ งหน่ วยความจาได้
และสามารถอ่านเขียนข้ อมูลกับตาแหน่ งพอร์ ตได้
ระบบคอมพิวเตอร์ ที่ออกแบบให้ บสั ของหน่ วยความจา (program memory)
และบัสของหน่ วยความจาข้ อมูล (data memory) แยกออกจากกัน
PROGRAM
Memory
Precessor
Data
Memory
von Neumann and Harvard Architectures
Instruction
memory
von Neumann
CPU
Instruction
Address,
Data and
Status
Busses
Memory
Harvard
CPU
Instructions
von Neumann
“bottleneck”
Data
Data
Memory
Address,
Data and
Status
Busses
17
Data space
Address,
Data and
Status
Busses
การวัดสมรรถนะของคอมพิวเตอร์
ความเร็วของซีพยี ู
วัดจากจานวนขั้นตอนการทางานพืน้ ฐานภายใน 1 หน่ วยเวลา
เวลาของการทางาน
วัดเป็ นจานวนลูกของสั ญญาณนาฬิ กา
เวลาทีใ่ ช้ ในการปฏิบัตกิ าร
เวลาที่ใช้ หนึ่งขั้นตอนพืน้ ฐาน เรียกว่ า Clock Period หรือ Clock Cycle Time
คาสั่ งบางคาสั่ งใช้ จานวนสั ญญาณนาฬิ กาไม่ เท่ ากัน ขั้นตอนโดยทั่วไปมีดงั นี้
1. อ่ านรหัสคาสั่ ง (Fetch)
4. ปฎิบัติการตามคาสั่ ง
2. ถอดรหัส
5. เก็บผลลัพธ์ จากการประมวลผล
3. อ่ านข้ อมูลที่มากระทากับคาสั่ งนั้น
ส่ วนประกอบของระบบบัสและการเชื่อมต่ อ
คอมพิวเตอร์มีอุปกรณ์ 3 ส่ วนหลัก ที่เชื่อมต่อ
กัน
หน่วยประมวลผลกลาง
หน่วยความจา
พอร์ตอินพุตและเอาต์พตุ
ส่ วนประกอบของบัสและการเชื่อมต่ อ
บัสของหน่วยประมวลผลกลาง ประกอบด้วยแอดเดรสบัสสาหรับติดต่อ
กับหน่วยความจาและพอร์ต
บัสของหน่วยความจา เช่น ถ้าหน่วยความจาสามารถเก็ฐข้อมูลได้ N
เวิร์ด (1 เวิร์ด เท่ากับ 2 ไบต์ หรื อ 16 บิต) แต่ละเวิร์ดจะอยูท่ ี่
ตาแหน่ง 0,1,… N-1 มีบสั ข้อมูลสาหรับส่ งข้อมูลเข้าออก
หน่วยความจา และมีบสั ควบคุมซึ่งประกอบด้วยสัญญาณอ่านเขียน
หน่วยความจา
บัสของพอร์ตอินพุตเอาต์พตุ เป็ นบัสสาหรับรับส่ งข้อมูลระหว่างระบบ
คอมพิวเตอร์กบั อุปกรณ์ภายนอก
บัส (Bus)
หน้ าทีข่ องระบบ Bus
• ระบบบัสจะเชื่อมอุปกรณ์ต่าง ๆ บนเมนบอร์ดเข้าด้วยกัน
บัส (Bus)
หน้ าทีข่ องระบบ Bus (ต่ อ)
• บัสเป็ นทางเชื่อมต่อระหว่างอุปกรณ์ต่างๆ ทั้งที่อยูบ่ นเมนบอร์ด และที่ติดตั้ง
เพิ่มเข้ามาตั้งแต่ซีพีย,ู หน่วยความจา, แคช, ฮาร์ดดิสก์, สล็อตต่างๆ และ
จอภาพ เป็ นต้น
ดังนั้น ความเร็ วและประสิ ทธิภาพในการทางานของบัสจึงมีผลอย่างมากกับ
ประสิ ทธิภาพโดยรวมของเครื่ องคอมพิวเตอร์
บัส (Bus)
หน้ าทีข่ องระบบ Bus
(ต่ อ)
• ระบบบัสที่เหมาะสมจะต้องมีความเร็ วเพียงพอที่จะให้อุปกรณ์ต่างๆ รับส่ ง
ข้อมูลระหว่างกันได้อย่างเต็มศักยภาพความเร็ วของอุปกรณ์น้ นั ๆ เพื่อไม่ให้
เป็ นตัวถ่วงอุปกรณ์อื่นๆ อันจะทาให้ความเร็ วโดยรวมของทั้งเครื่ องลดลง
ระบบบัสและสล็อตต่ างๆ มีความสาคัญและเกีย่ วข้ องกัน
บัสที่สาคัญที่สุด คือ บัสที่ใช้เชื่อมต่อกับซีพียู เรี ยกว่า Front Side
Bus (FSB)
เป็ นบัสที่ตอ้ งทางานด้วยความถี่สูงสุ ดภายนอกของซีพียเู ช่น 100, 133, 166,
200 , 266 และ 800 MHz เป็ นต้น
เนื่องจากเป็ นเส้นทางเชื่อมต่อระหว่างซีพียู (ซึ่งติดตั้งอยูก่ บั ซ็อคเก็ตของซีพีย)ู
กับชิปเซ็ตตัวหลัก
ส่ วนต่ าง ๆ บนเมนบอร์ ด
บัสทีเ่ ชื่อมต่ อไปยังส่ วนต่ าง ๆ
ส่ วนประกอบของบัสและการเชื่อมต่ อ
Read
Memory
Write
N Word
Data
Address
Data
N-1
Instructions
Address
CPU
Data
Read
I/O Module
Write
M Ports
Address
Internal Data
External Data
Interrupt Signals
Internal Data
External Data
Interrupt signals
Control Signals
Data
ตัวอย่ างระบบบัสของคอมพิวเตอร์
หน่วยประมวลผลกลาง
หน่วยความจา
บัส
พอร์ต I/O ตัวที่ n
พอร์ต I/O ตัวที่ 1
บัสแอดเดรส
บัสข้ อมูล
บัสควบคุม
ถอดรหัส
แอดเดรส
วงจรควบคุม
รี จีสเตอร์ขอ้ มูลและสถานะ
อุปกรณ์อินพุต
I/O
Interface
การติดต่ อระหว่ างคอมพิวเตอร์ กบั อุปกรณ์ ภายนอก
การติดต่ อระหว่ างคอมพิวเตอร์ กบั อุปกรณ์ภายนอกหรือพอร์ ตอินพุต
จะมี 2 วิธี
อ่านค่ าจากพอร์ ตอยู่ตลอดเวลา ว่ าต้ องการติดต่ อกับซีพยี ู หรือไม่
วิธีนีซ้ ีพยี ูจะต้ องเสี ยเวลาไปบางส่ วนเพราะต้ องคอยตรวจสอบพอร์ ตอยู่
ตลอดเวลา
ใช้ วธิ ีการอินเทอร์ รัปต์ เมื่อพอร์ ตอินพุตเอาท์ พุตต้ องการติดต่ อกับซีพยี ู
จะส่ งสั ญญาณอินเทอร์ รัปต์ ไปบอกซีพยี ู
การจัดสั ญญาณอินเทอร์ รัปต์
เมื่อมีสัญญาณอินเทอร์ รัปต์ เข้ ามา ซีพยี ูจะตรวจสอบว่ าสัญญานั้นมาจาก
พอร์ ตใด และจะให้ บริการกับพอร์ ตนั้น
CPU
I / O ตัว
ที่ 1
I / O ตัว
ที่ 2
I / O ตัวที่
n
การจัดสั ญญาณอินเทอร์ รัปต์
ทุกพอร์ ตส่ งสั ญญาณมา ผานวงจรจัดลาดับความสาคัญ โดยการพิจารณา
จะให้ ซีพยี ูทาโปรแกรมตอบสนองการอินเทอร์ รัปกับพอร์ ตตัวใดก่อน
วงจรจัดลาดับความสาคัญ
CPU
I/O ตัวที่
1
I/O ตัว
ที่ 2
I/O ตัว
ที่ 3
I/O ตัว
ที่ 4
การขยายระบบบัสบนเมนบอร์ ด
Local Bus
Processor
Cache
Local I/O
Controller
Main
Memory
System Bus
Network
SCSI
Expansion
Bus Interface
Expansion Bus
Serial
Modem
ISA Bus
ISA (Industry Standard Architecture) เป็ นระบบบัสที่เริ่ ม
มาใช้ต้ งั แต่คอมพิวเตอร์ IBM PC/XT โดยมีการส่ งข้อมูลขนาด 8 บิต และ
16 บิต ทางานได้ที่ความเร็ ว 8 MHz
เป็ นระบบบัสที่ใช้กบั คอมพิวเตอร์ รุ่นเก่า ที่มีความเร็ วไม่สูงมาก เช่น
8086,80286, 80386 และ 8086
Local Bus
เป็ นระบบบัสที่ถกู สร้างแยกออกมาจากระบบบัส ISA เพื่อให้อุปกรณ์บาง
ประเภทที่ตอ้ งการควาเร็ วสู งนาไปใช้งาน เช่น อุปกรณ์ที่ใช้ในการวาดภาพ การ์ด
เสี ยง ระบบบัสแบบนี้จะมีความเร็ วเข้าใกล้ซีพียมู ากขึ้น
PCI Bus
พัฒนาโดย Intel เมื่อปี 1990 ย่อมาจาก Peripheral
Component Interconnect ซึ่ งเป็ นระบบบัสที่ยงั นิยมใช้กนั อยูใ่ น
ปั จจุบนั ถูกออกแบบมาให้ใช้กบั ซี พียคู วามเร็ วสู ง ๆ เช่น Pentium
ระบบบัสแบบ PCI มีท้ งั แบบ 32 บิต และแบบ 64 บิต
เช่น ถ้าบัส 32 บิต ทางานที่ความเร็ ว 33 MHz จะมีความเร็ วในการส่ งข้อมูล
เท่ากับ 32 x 33 = 1056 เมกะบิต่อวินาที
PCI Bus
Processor
Cache
Bridge/Memory
Controller
DRAM
Audio
Motion Video
PCI Bus
LAN
SCSI
Expansion
Bus Bridge
Expansion Bus
Graphics
Base I/O
Device
ตัวอย่ างการใช้ ระบบบัสของ Server
Processor /
Cache
Processor /
Cache
Memory
Controller
DRAM
System Bus
Host Bridge
Host Bridge
PCI Bus
PCI Bus
Expansion
Bus Bridge
Expansion
Bus Bridge
SCSI
SCSI
LAN
LAN
PCI to PCI
Bridge
AGP
AGP (Accelerated Graphic Port) เป็ นระบบบัสที่พฒั นามา
จากระบบบัสแบบ PCI เพื่อใช้กบั การ์ ดแสดงผลจอภาพ มีความเร็ วสู งถึง 266
เมกะไบต์ต่อวินาที และพัฒนามาต่อเนื่องจนปั จจุบนั มีความเร็ วถึง 1066 เมกะ
ไบต์ต่อวินาที
AGP
สล๊อตบนเมนบอร์ ด
PCI Express
PCI Express นั้นเป็ นบัสที่ทางานแบบ Serial สามารถเลือกใช้
ความเร็ วมากน้อยตามต้องการได้ โดยแบ่งออกเป็ นช่องสัญญาณ (channel) หรื อ
lane บัสของ PCI มีความเร็ วในการรับส่ งข้อมูลแต่ละทิศทาง 250 MB/sec
และรวมสองทาง (Full-Duplex) สูงถึง 500 MB/sec ซึ่ งเป็ นความเร็ วขั้น
ต่าสุ ดเรี ยกว่า PCI Express x1 ถูกออกแบบให้มาแทนที่ PCI Bus
แบบเดิม ประกอบด้วย 1 lane สล็อตก็จะสั้น ส่ วนขั้นถัดไปจะมีความเร็ วเพิ่มขึ้นเป็ น 2,
4, 8 และ 16 เท่าตามลาดับ ก็จะประกอบด้วย 2, 4, 8 และ 16 lane ที่รับส่ งข้อมูลพร้อม
กัน สล็อตก็จะยาวขึ้น (มีข้ วั ต่อมากขึ้น) เรี ยกว่าเป็ น PCI Express x2, x4,
x8 และสูงสุ ดคือ PCI Express x16 ที่เร็ วถึง 8 GB/sec ซึ่ งจะมา
แทนที่สล็อตแบบ AGP 8x ที่ใช้กนั อยูใ่ นปั จจุบนั
•
ปัญหาหลักที่สาคัญของคอมพิวเตอร์
แม้วา่ คอมพิวเตอร์ จะมีแนวโน้มเร็ วขึ้นทุกวัน แต่มนั เร็ วไม่สมส่ วนเพราะส่ วนที่มี
ความเร็ วเพิ่มขึ้นมาก คือ CPU แต่ในขณะ ที่อุปกรณ์ อย่างอื่นก็เร็ ว แต่เร็ วไม่ทนั
CPU ซึ่ งปั ญหาที่เราจะพูดถึงนั้นก็คือ ปั ญหาคอขวด (button neck)
ปั ญหาคอขวด คือ ปั ญหาที่ความเร็ วของแต่ละอุปกรณ์ไม่เท่ากัน จึงทาให้เกิดความ
เลื่อมล้ ากัน ทาให้เกิดข้อจากัด คือ ในขณะที่ CPU มีความเร็ วสู งมากขึ้นเรื่ อย ๆ แต่
การส่ งข้อมูลจาก HARD DISK เพื่อเข้าไปประมวลผล ใน CPU ทาได้ชา้ มาก ทา
ให้ CPU ต้องหยุดรอโดยเปล่าประโยชน์
ดังนั้น เครื่ องคอมพิวเตอร์ มี่ความเร็ วของซี พียู เป็ น 2 เท่าของเครื่ องอื่น ไม่ใช่วา่
จะต้องทางานได้เร็ วเป็ นสองเท่า
แบบฝึ กหัด
1.
2.
3.
4.
การอินเทอร์ รับปต์คืออะไร สามารถเกิดได้จากสาเหตุใดได้บา้ ง
เพราะเหตุใดความกว้างของบัส จึงมีผลต่อความเร็ วของคอมพิวเตอร์
ระบบบัสแบบ PCI และ AGP ควรนามาใช้กบั อุปกรณ์ชนิ ดใด
จงอธิ บายถึงปั ญหาหลัก ของคอมพิวเตอร์ ในด้านของความเร็ วที่ไม่สมส่ วน และ
จงยกตัวอย่างอุปกรณ์ที่ทาให้เกิดปั ญหาเหล่านั้น