องค์ประกอบฮาร์ดแวร์พื้นฐาน
หน่วยประมวลผล: การควบคุมการทำงานของเครื่องคอมพิวเตอร์และดำเนินการ
ฟังก์ชั่นการประมวลผลข้อมูล
;
IR = memory[PC];
haltFlag = CLEAR;
while (haltFlag not SET during execution)
{
PC = PC+1;
decode(IR)
execute(IR);
IR = memory[PC];
}
ฟังก์ชั่นการประมวลผลข้อมูล
- มักจะหมายถึง CPU (Central Processing Unit) เมื่อมีเพียงหนึ่งหน่วยประมวลผล
- หน่วยความจำ: ข้อมูลร้านค้าและโปรแกรมโดยทั่วไปแล้วจะมีความผันผวน
- มักจะหมายถึงหน่วยความจำจริงหรือหลัก
- I / O ตัวควบคุม (หรือโมดูล I / O): ย้ายข้อมูลระหว่างคอมพิวเตอร์และสภาพแวดล้อมภายนอก (เช่นดิสก์แป้นพิมพ์จอแสดงผลระบบเครือข่าย)
- รถบัสระบบ: ให้การติดต่อสื่อสารระหว่างโปรเซสเซอร์
- หน่วยความจำและ I / O ควบคุม
Processor
- โมเดลพื้นฐาน
- ดึงการเรียนการสอนการถอดรหัส การดำเนินการ
- โปรแกรมที่จะดำเนินการโดยหน่วยประมวลผลประกอบด้วยชุดของคำสั่งที่เก็บไว้ในหน่วยความจำ
- ซีพียูแตกต่างกันมีการเรียนการสอนที่แตกต่างกันชุด
- โหมดการทำงาน
- โหมดเคอร์เนล: ทั้งหมด (ขั้นพื้นฐานและสิทธิพิเศษ) ที่มีคำแนะนำ
- ตัวอย่างของคำสั่งที่ได้รับการยกเว้น: I / O คำแนะนำการป้องกันหน่วยความจำการเรียนการสอนหยุด
- โหมดผู้ใช้: เซต (ขั้นพื้นฐานเท่านั้น) ที่มีอยู่ของคำแนะนำ
- ลงทะเบียน: หน่วยความจำความเร็วสูงที่ตั้งอยู่บนการประมวลผล
- โปรแกรมเคาน์เตอร์ (PC): มีอยู่หน่วยความจำการเรียนการสอนต่อไปที่จะเรียก
- สมัครสมาชิกการเรียนการสอน (IR): เก็บการเรียนการสอนในปัจจุบันมีการดำเนินการหรือการถอดรหัส
- Stack Pointer (SP): คะแนนไปด้านบนของสแต็คในปัจจุบันในหน่วยความจำ
- สถานะโปรแกรมโปรแกรม Word (PSW): มีรหัสบิตสภาพ
- ตั้งโดยการเรียนการสอนการเปรียบเทียบความสำคัญ CPU, โหมด (ผู้ใช้หรือเคอร์เนล) และบิตควบคุมอื่น ๆ อีกมากมาย
- ลงทะเบียนที่เกี่ยวข้องกับการจัดการหน่วยความจำ
- ลงทะเบียนทั่วไปที่ใช้ในการถือตัวแปรและผลชั่วคราว
The Fetch-Decode-Execute Algorithm
PC =IR = memory[PC];
haltFlag = CLEAR;
while (haltFlag not SET during execution)
{
PC = PC+1;
decode(IR)
execute(IR);
IR = memory[PC];
}
I/O Controller
- ทะเบียนควบคุม
- CPU เขียนคำสั่งในการควบคุมลงทะเบียน
- ทะเบียนสถานะ
- CPU สามารถตรวจสอบสถานะของการดำเนินการโดยการตรวจสอบ (อ่าน) ลงทะเบียนสถานะซึ่งถือสถานะปัจจุบันข้อมูล:
- หากทั้งสองไม่ว่างและทำจะถูกตั้งค่าเป็น 0 คนขับสามารถวางคำสั่งในการลงทะเบียนการควบคุม
- การปรากฏตัวของใหม่ I / O ที่ทำให้เกิดคำสั่งควบคุมการตั้งค่าสถานะไม่ว่างที่จะที่ 1 และที่จะเริ่มต้น
- การดำเนินงาน
- เมื่อการดำเนินการได้เสร็จสิ้นการควบคุมล้างธงยุ่งและตั้งธงทำ
- ข้อมูลการลงทะเบียน
- ข้อมูล / จากระบบบัสเป็น buffered ในทะเบียนเหล่านี้
- วิธีสื่อสารกับ CPU ลงทะเบียนเหล่านี้หรือไม่
- I / O หมายเลขพอร์ต
- ฉันหน่วยความจำแมป / O
- ไฮบริด
I/O Port Number
- ทะเบียนควบคุมที่ได้รับมอบหมายในแต่ละที่ไม่ซ้ำกันของ I / O หมายเลขพอร์ต (8/16 จำนวนเต็มบิต)
- พิเศษ I / O คำแนะนำ (เช่นในและนอก) จะต้อง
- ใน REG, PORT
- OUT PORT, REG
- ช่องว่างที่อยู่แยกออกจากกัน
- ใน R0, 4 และ MOV R0 4 จะแตกต่างกันอย่างสิ้นเชิง
Memory-Mapped I/O
- แผนที่ทั้งหมดลงทะเบียนเข้าควบคุมพื้นที่หน่วยความจำ
- ปกติจะอยู่ที่ด้านบนของพื้นที่ที่อยู่
- ลงทะเบียนแต่ละครั้งจะถูกกำหนดที่อยู่หน่วยความจำที่ไม่ซ้ำกันเช่น 0xFF10
- การเรียนการสอนทุกคนว่าหน่วยความจำ canreference ยังสามารถอ้างอิงการลงทะเบียนการควบคุม
Hybrid
- โครงการไฮบริด
- แมปหน่วยความจำบัฟเฟอร์ข้อมูล I / O
- เฉพาะกิจพอร์ต I / O สำหรับการลงทะเบียนการควบคุม
- ตัวอย่าง: Pentium
- สำรองอยู่ที่ 640K 1 ล้านสำหรับบัฟเฟอร์ข้อมูลอุปกรณ์ที่นอกเหนือไปจากพอร์ต I / O 0 ถึง 64K
I/O Communication Techniques
Programmed I/O
- ไดร์เวอร์บอกควบคุมสิ่งที่ต้องทำโดยการเขียนลงทะเบียนของอุปกรณ์ควบคุมจากนั้นก็เริ่มอุปกรณ์
- หลังจากนั้นคนขับนั่งอยู่ในห่วงคับเลือกตั้งอย่างต่อเนื่องอุปกรณ์เพื่อดูว่ามันจะทำ
- เมื่อ I / O ได้เสร็จสิ้นการขับทำให้ข้อมูลที่พวกเขามีความจำเป็น (ถ้ามี) และผลตอบแทน
• CPU ต้องรอ I / O ที่จะเสร็จสมบูรณ์
•การถ่ายโอนข้อมูลที่จำเป็นต้องทำผ่านซีพียู
Interrupt-Driven I/O
- ในกรณีนี้คอมพิวเตอร์อนุญาตให้โมดูล I / O เพื่อขัดจังหวะซีพียู
- ไดร์เวอร์บอกควบคุมสิ่งที่ต้องทำโดยการเขียนของอุปกรณ์ควบคุม registers.The จากนั้นก็เริ่มอุปกรณ์
- เสร็จสิ้นการควบคุมการอ่าน / เขียนแล้วส่งสัญญาณควบคุมการขัดจังหวะ
- หากควบคุมการขัดจังหวะสามารถยอมรับขัดจังหวะมันบอก CPU
- ควบคุมขัดจังหวะทำให้จำนวนของอุปกรณ์บนรถบัสของ CPU อ่านมัน
- การตรวจสอบ CPU สัญญาณขัดจังหวะในตอนท้ายของการเรียนการสอนที่วงรอบ
- หลังจากที่การเรียนการสอนในปัจจุบันได้รับการประมวลผล แต่ก่อนการเรียนการสอนต่อไปคือ "ความจริง" จากหน่วยความจำ
- หากไม่มีการขัดจังหวะเรียกคำสั่งถัดไปสำหรับโปรแกรมในปัจจุบัน
- หากขัดจังหวะอยู่ระหว่างการพิจารณาระงับการดำเนินการของปัจจุบันโปรแกรมและดำเนินการจัดการขัดจังหวะ
- จัดการขัดจังหวะเป็นโปรแกรมที่กำหนดลักษณะของการที่ขัดขวางการดำเนินการและการกระทำสิ่งที่มีความจำเป็น
- ทำให้ข้อมูลที่พวกเขามีความจำเป็น (ถ้ามี)
- หลังจากที่ให้บริการการขัดจังหวะการดำเนินการดำเนินการต่อที่บันทึกไว้จุดของโปรแกรมขัดจังหวะ
•อีกครั้ง CPU จัดการการถ่ายโอนข้อมูล
Interrupt Handler
ควบคุมการถ่ายโอนขัดจังหวะรถยกขัดจังหวะโดยทั่วไปผ่านการ interrupt vector ,ซึ่งมีอยู่ทั้งหมด
ขั้นตอนการให้บริการ
สถาปัตยกรรมขัดจังหวะต้องบันทึกอยู่ของขัดจังหวะที่คำแนะนำ.
มันจะต้องบันทึกเนื้อหาลงทะเบียนของโปรแกรมเพื่อขัดจังหวะว่าโปรแกรมขัดจังหวะสามารถกลับมาจากจุดของการหยุดชะงัก
การขัดจังหวะที่เข้ามาใช้งานไม่ได้ในขณะที่การขัดจังหวะอีกจะถูกการประมวลผลเพื่อป้องกันไม่ให้สูญเสียการขัดจังหวะ
Hardware
ควบคุมอุปกรณ์หรือฮาร์ดแวร์ของระบบอื่น ๆปัญหาinterrupt(issues an interrupt)
|
V
เสร็จสิ้นการประมวลผลการดำเนินการ(finishesexecution)ของปัจจุบันคำแนะนำ
|
V
ประมวลผลสัญญาณการรับทราบ(acknowledgment)การขัดขวาง
|
V
ประมวลผลผลักดันให้ PSWและเครื่องพีซีเข้ามาในระบบสแต็ค(PSW and PC onto system stack)
|
Vโหลดประมวลผลใหม่ค่าเครื่องคอมพิวเตอร์บนพื้นฐานของขัดขวาง(loads new PC)
|
V
|
V
บันทึกที่เหลือลงทะเบียน(Save the remainder registers)
|
V
ขัดจังหวะกระบวนการ (Process interrupt)
|
V
การคืนค่าลงทะเบียน(Restore the registers)
|
V
V
Restore PSW เก่าและเครื่องคอมพิวเตอร์(Restore old PSW and PC)
Atomic Mode Transfer (อะตอมโหมดการถ่ายโอน)
ประหยัดโปรแกรมเคาน์เตอร์ปัจจุบัน
ประหยัดคำประมวลผลสถานะปัจจุบัน (รหัสเงื่อนไข)
เปลี่ยนไปเป็นสแตกเคอร์เนล; ใส่ SP, PC, PSW ในกอง
สลับไปโหมดเคอร์เนล
เวกเตอร์ผ่านโต๊ะขัดจังหวะ
จัดการขัดจังหวะบันทึกลงทะเบียนมันอาจบังคับ
- ในการขัดจังหวะ (x86)
ประหยัดโปรแกรมเคาน์เตอร์ปัจจุบัน
ประหยัดคำประมวลผลสถานะปัจจุบัน (รหัสเงื่อนไข)
เปลี่ยนไปเป็นสแตกเคอร์เนล; ใส่ SP, PC, PSW ในกอง
สลับไปโหมดเคอร์เนล
เวกเตอร์ผ่านโต๊ะขัดจังหวะ
จัดการขัดจังหวะบันทึกลงทะเบียนมันอาจบังคับ
At End of Handler(ในตอนท้ายของตัวจัดการ)
- จัดการคืนค่าลงทะเบียนที่บันทึกไว้
- อะตอมกลับไปขัดจังหวะกระบวนการ /thread
การคืนค่าโปรแกรมเคาน์เตอร์
การคืนค่าสแต็คโปรแกรม
การคืนค่าสถานะคำประมวลผล / รหัสสภาพ
สลับไปที่โหมดผู้ใช้
Direct Memory Access (DMA)
- CPU ตั้งค่าตัวควบคุม DMA (ตัวควบคุมที่แยกต่างหากหรือรวมอยู่ในคอนโทรลเลอร์ I / O) และช่วยให้มันไป
จำนวนไบต์ในการถ่ายโอน
อุปกรณ์และที่อยู่ที่เกี่ยวข้องและทิศทาง
- ควบคุม DMA โอนบล็อกของข้อมูลโดยตรงไปยังหรือจากหน่วยความจำ (โดยไม่ต้องผ่าน CPU)
- ขัดจังหวะจะถูกส่งเมื่อบล็อกทั้งหมดได้รับการถ่ายโอน
- ซีพียูที่มีส่วนเกี่ยวข้องเท่านั้นที่จุดเริ่มต้นและจุดสิ้นสุดของโอน
- ซีพียูเป็นอิสระในการดำเนินการอื่น ๆ ในระหว่างการถ่ายโอนข้อมูล
DMA Transfer Modes(โหมดการถ่ายโอน DMA )
- คำที่เวลา (รอบขโมย)
ควบคุม DMA ได้มารถบัสรับส่งคำหนึ่งและ
ออกรถบัส
CPU รอรถบัสหากข้อมูลที่ถ่ายโอน
วงจรขโมย: ขโมยรอบรถเป็นครั้งคราวจาก CPU ครั้งใน
ในขณะที่
- Burst mode
DMA ถือรถบัสจนชุดของการถ่ายโอนที่สมบูรณ์
มีประสิทธิภาพมากขึ้นนับตั้งแต่การซื้อรถต้องใช้เวลา
บล็อก CPU จากการใช้รถบัสเป็นเวลาที่สำคัญ
สรุป:เทคนิคการสื่อสาร I / O
ไม่มี Interrupts ใช้ Interrupts
I / O ไปยังหน่วยความจำ
โอนผ่าน Programmed I/O Interrupt-driven I/O
หน่วยประมวลผล
โดยตรง
I / O
- เพื่อ -
การถ่ายโอนหน่วยความจำ
DMA
Multiprogramming
- Interrupts มีประสิทธิภาพส่วนใหญ่
เมื่อโปรแกรมต้องรอ I / O การทำงานให้เสร็จสมบูรณ์และ
เมื่อ CPU เดียวจะใช้ร่วมกันระหว่างหลายโปรแกรม (เช่น CPU มีมากกว่าหนึ่งโปรแกรมที่จะดำเนินการ)
- เพราะ CPU สามารถสลับไปรันโปรแกรมอีกเมื่อโปรแกรมรอผลมาจากการดำเนินการ I / O
Multiple Interrupts
สองวิธีสามารถนำไปจัดการกับหลาย ๆ ขัดจังหวะ
- วิธีที่ 1: การสั่งซื้อต่อเนื่อง
ปิดการใช้งานขัดจังหวะในขณะที่การขัดจังหวะจะถูกประมวลผล
- วิธีที่ 2: ความคาดหวัง
ลำดับความสำคัญของการใช้งานที่แตกต่างระหว่างการขัดจังหวะ
Sequential Order
- ประมวลผลสัญญาณไม่สนใจคำขอขัดจังหวะใหม่ ๆ
- Interrupts ยังคงอยู่ระหว่างการพิจารณาจนกว่าหน่วยประมวลผลจะช่วยให้การขัดจังหวะ
- ประจำหลังจากจัดการขัดจังหวะเสร็จสิ้นการตรวจสอบประมวลผลสำหรับการขัดจังหวะเพิ่มเติม
Priorities
- ขัดจังหวะความสำคัญที่สูงขึ้นทำให้เกิดการลดความสำคัญขัดจังหวะที่จะรอ
- สาเหตุลำดับความสำคัญต่ำกว่าจัดการขัดจังหวะที่จะถูกขัดจังหวะ
- ตัวอย่าง: เมื่อมาถึงการป้อนข้อมูลจากสายการสื่อสารจะต้องมีการดูดซึมได้อย่างรวดเร็วเพื่อให้มีที่ว่างสำหรับการป้อนข้อมูลเพิ่มเติม
ลำดับหน่วยความจำ
- ต้องการ: ขนาดใหญ่มากอย่างรวดเร็วหน่วยความจำราคาถูกมาก
- ปัญหา: หน่วยความจำได้อย่างรวดเร็วมีราคาแพง
- Solution: สร้างลำดับชั้นของหน่วยความจำและย้ายข้อมูลระหว่างระดับที่จะสร้างภาพลวงตาของหน่วยความจำขนาดใหญ่และรวดเร็ว
ลำดับชั้นของหน่วยความจำที่ปิรามิดของระดับหน่วยความจำที่แตกต่างกันซึ่งแต่ละระดับที่ต่ำกว่ามี:
-ลดต้นทุนต่อบิต
-ความจุขนาดใหญ่
-เวลาในการเข้าถึงช้าลง
วิธีการทำงานลำดับหน่วยความจำ?
- เมื่อเข้าถึงหน่วยความจำเป็นสิ่งจำเป็นที่มองหามันอยู่ในระดับที่เร็วที่สุดของหน่วยความจำ
- ถ้าเป็นที่นั่น - ตีเราจะทำ
- ถ้ามันไม่ได้มี - พลาดเกิดขึ้น
มองหารายการในระดับที่ต่ำกว่าต่อไป; ทำซ้ำจนกว่าตีเกิดขึ้น
- นำบล็อกจากระดับที่ตีเกิดขึ้นและการปรับปรุงทุกระดับเหนือ (เปลี่ยนบล็อกในกรณีที่จำเป็นอื่น)
- ตัวอย่าง: เวลาในการเข้าถึงในระดับ 1 (หน่วยความจำได้อย่างรวดเร็ว) เป็น 1; เวลาในการเข้าถึงในระดับ 2 (หน่วยความจำช้า) เป็น 100; อัตราส่วนตี (ความถี่ที่คุณหารายการในหน่วยความจำได้อย่างรวดเร็ว) เป็น 98%
- T1 = เวลาในการเข้าถึงอย่างรวดเร็วหน่วยความจำ
- T2 เวลาในการเข้าถึง = ช้าหน่วยความจำ
- T2 T1 >>
- เมื่ออัตราการตีอยู่ใกล้กับ 1เวลาการเข้าถึงโดยเฉลี่ยอยู่ที่ใกล้กับ T1
- ลองดูที่ตัวอย่าง -หน่วยความจำแคช
Cache Memory
- ความเร็วของ CPU เร็วกว่าหน่วยความจำความเร็ว
- เพื่อเพิ่มความเร็วของหน่วยความจำแคชขนาดเล็กของหน่วยความจำที่มีราคาแพง แต่อย่างรวดเร็วถูกนำมาใช้
- มันจะมองไม่เห็นระบบปฏิบัติการและโปรแกรมของผู้ใช้ แต่มีปฏิสัมพันธ์กับฮาร์ดแวร์จัดการหน่วยความจำอื่น ๆ
- การตรวจสอบครั้งแรกของ CPU ถ้าอ้าง word ที่อยู่ในแคช
- ถ้าไม่ได้พบในแคช block ของหน่วยความจำที่มีคำว่าจะถูกย้ายไปยังแคช
- ถิ่นของการอ้างอิงใช้ที่นี่: ยกตัวอย่างเช่นครั้งหนึ่งเคยเป็นวงที่มีการป้อนมีการเข้าถึงบ่อยชุดเล็ก ๆ ของคำแนะนำก็มีแนวโน้มว่าคำพูดที่ใกล้เคียงจะได้รับการอ้างถึงบ่อยครั้งในอนาคตอันใกล้
- ดังนั้นอัตราการตีจะใกล้เคียงกับ 1 แม้สำหรับแคชขนาดเล็ก
ทำไมผลงานลำดับหน่วยความจำ?
- อ้างอิงถึงหน่วยความจำที่ไม่สุ่ม: พวกเขามีแนวโน้มเป็น:
ภาษาท้องถิ่นตำแหน่ง (ถ้าคุณเข้าเยี่ยมชมสถานที่ที่มีแนวโน้มที่จะเยี่ยมชม
เพื่อนบ้าน)
ภาษาท้องถิ่นชั่วคราว (ถ้าคุณเข้าเยี่ยมชมสถานที่ที่มีแนวโน้มที่จะเยี่ยมชม
อีกครั้ง)
- ลำดับชั้นของการทำงานเพราะถิ่นที่อยู่ของอ้างอิงนี้
การพัฒนาโปรแกรม
Address Translation
ในครั้งเก่าโหลดแทนที่ญาติที่อยู่กับคนทางกายภาพที่เวลาในการโหลด