1 / 42

Wannachai Wannasawade Department of Computer Education Faculty of Technical Education, KMUTNB

CPU Architecture. Wannachai Wannasawade Department of Computer Education Faculty of Technical Education, KMUTNB. โครงสร้างหลักของ Microprocessor. ประกอบไปด้วยส่วนสำคัญดังนี้คือ Internal Data Bus A rithmetic L ogic U nit (ALU) Control Logic Register.

donal
Télécharger la présentation

Wannachai Wannasawade Department of Computer Education Faculty of Technical Education, KMUTNB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPU Architecture Wannachai Wannasawade Department of Computer Education Faculty of Technical Education, KMUTNB

  2. CPU Architecture

  3. CPU Architecture

  4. CPU Architecture

  5. CPU Architecture

  6. CPU Architecture

  7. โครงสร้างหลักของ Microprocessor ประกอบไปด้วยส่วนสำคัญดังนี้คือ • Internal Data Bus • Arithmetic Logic Unit (ALU) • Control Logic • Register CPU Architecture

  8. โครงสร้างหลักของ Microprocessor CPU Architecture

  9. โครงสร้างหลักของ Microprocessor CPU Architecture

  10. ALU เป็น MajorLogicfunction ของ Microprocessor ทุกตัวโดยทั่วไป ALU จะมี Input อยู่ 2 Input และ 1 Output และ Input ทั้ง 2 จะมี Buffer คือ TemporaryRegister เป็นตัวเก็บข้อมูลให้กับ ALU และยังต่ออยู่กับ InternalBus เพื่อรับหรือส่งข้อมูลให้กับ ALU โดยผ่าน TemporaryRegister ทั้ง 2 หน้าที่ที่ ALU จะกระทำมีดังนี้ AddComplement SubtractShiftright ANDShiftleft ORIncrement ExclusiveORDecrement จำไว้ว่า ALU เป็นส่วนที่ใช้ในการ ProcessData ไม่ใช่เก็บ Data CPU Architecture

  11. Registers เป็นส่วนที่ต้องใช้ใน Microprocessor ทุกตัวซึ่งเป็น Function หลักที่จะต้องมี ซึ่งอาจจะมีมากกว่า แต่ Register ที่ ไมโครโพรเซสเซอร์ทุกตัวจะต้องมี คือ 1. Accumulator Register 2. Program Counter Register 3. Stack Pointer Register 4. General-purpose Register 5. Memory address Register and logic 6. Instruction Register 7. Temporary data Register CPU Architecture

  12. Accumulator Register • เป็น Register หลักของไมโครโพรเซสเซอร์ • เก็บข้อมูล สำหรับข้อมูลทั่วไป • การเคลื่อนย้ายข้อมูลต่าง ๆ เช่น ข้อมูลในการคำนวณทางคณิตศาสตร์ และลอจิก ซึ่งใช้ทั้ง ALU และ Accumulator • การทำงานจะแบ่งออกเป็น 2 Word โดยที่ • Word แรกจะเก็บไว้ใน Accumulator Register • อีก Word หนึ่ง อาจจะเก็บที่ Register อื่นหรือในหน่วยความจำ • ผลลัพธ์ที่ได้จาก ALU จะนำไปเก็บไว้ใน Accumulator การทำงานหลักของ Accumulator คือ การเคลื่อนย้ายข้อมูล CPU Architecture

  13. Program Counter Register เป็น Register ที่มีความสำคัญต่อไมโครโพรเซสเซอร์ ซึ่งคำสั่งที่ใช้ในการประมวลผลจะเรียงลำดับคำสั่งตามโปรแกรมที่เขียน จัดเก็บไว้ในหน่วยความจำของ ไมโครโพรเซสเซอร์ โดยที่คำสั่งต่างๆ เหล่านี้เป็นตัวบอกให้ไมโครโพรเซสเซอร์ ทำงาน ซึ่งคำสั่งทุกคำสั่งจะต้องถูกต้องตามลำดับ งานของ Program Counter คือ เก็บข้อมูลว่าคำสั่งใดเป็นคำสั่งเริ่มต้นและคำสั่งใดเป็นคำสั่งต่อไปที่จะนำมาประมวลผล CPU Architecture

  14. Status Register เป็น Register ที่แสดงความแตกต่างระหว่างการคำนวณ การตรวจสอบผลของข้อมูลโดยที่ บิตแต่ละบิต หมายถึง Status แต่ละตัว โดยมีความหมายจาก Logic ระหว่าง "0" และ "1" โดยเมื่อเป็นlogic "1" จะหมายถึง Set ให้เป็นตามเงื่อนไขของแต่ละบิต ซึ่งมีดังนี้ คือ 1. Carry/Borrow bit 2. Zero bit 3. Negation bit 4. Intermediate Carry bit 5. Interrupt bit 6. Overflow bit 7. Parity bit CPU Architecture

  15. ตำแหน่งของบิตต่าง ๆ ของ Status Register CPU Architecture

  16. Stack Pointer Register เป็นตัวชี้ตำแหน่งของการเก็บข้อมูลโดยลักษณะการเก็บจะเป็นแบบ Last in first out หรือ เข้าทีหลังออกก่อนซึ่งลักษณะจะเหมือนกับ Program Counter แต่จะต่างกันที่ Program Counter จะเป็นการเพิ่มค่า แต่ Stack Pointer จะเป็นการลดค่าลงและจะทำการกำหนดค่าโดยอัตโนมัติ และใช้จำนวน Byte ในการทำงาน 2 byte ซึ่งหมายถึง Stack Pointer จะลดค่าของ Address ครั้งละ 2 byte หรือ ลดตำแหน่งลง 2 ตำแหน่ง เช่น Stack ครั้งแรกอยู่ที่ Address 0FF4H ตำแหน่ง Stack ครั้งต่อไปคือ 0FF4H CPU Architecture

  17. General -Purpose Register เป็น Register ที่ใช้สำหรับการเขียนโปรแกรมของ Programmer ใช้งานโดยทั่วไป สามารถเรียกใช้งานร่วมกันได้ เช่น BC AH AL หรือ CX ซึ่งการใช้งานจะเป็นการใช้งานขนาด 8 bit 16 bit หรือ 32 bit เช่นของ CPU เบอร์ 8086 จะแบ่ง AX เป็น AH กับ AL Pentium:EAXAXAH AL เป็นต้น CPU Architecture

  18. Memory Address Register and Logic เป็นตัวแสดงตำแหน่งหน่วยความจำของไมโครโพรเซสเซอร์ที่ต้องการใช้การเก็บตำแหน่งของหน่วยความจำจะเก็บไว้ในรูปของเลขฐานสอง ซึ่งจะมีขนาด 16 bit หรือมากกว่าขึ้นอยู่กับขนาดของ Address bus ซึ่งใช้เป็นตัวเลือกตำแหน่งหน่วยความจำหรือในกรณีของ input/output post ในการ fetch cycle จากคำสั่งต่าง ๆ ใน 16-bit Memory Address Register จะแบ่ง Register เป็น 2 ส่วน คือ High byte กับ Low byte และในบางคำสั่งที่มีการกำหนดค่าจากการคำนวณ โดยคำนวณจากค่าของ Program Counter บวกหรือลบกับค่าของ Memory Address Register ซึ่งในกลุ่มนี้เราจะเรียกว่าเป็น “Offset Addressing” CPU Architecture

  19. Instruction Register เป็น Register ที่เก็บคำสั่งที่กำลังทำการ Execute และจะ Load โดยการทำงานขึ้นอยู่กับการ fetch/Execute Cycle ซึ่งรวมเรียกว่า "Instruction Cycle" ในลำดับการทำงานเมื่อ fetch คำสั่ง Program Counter จะชี้คำสั่งต่อไปที่อยู่ในหน่วยความจำเมื่อ Instruction Register ทำการ fetch คำสั่งจะทำการนำคำสั่งนั้นไว้ที่ Internal Data bus และเมื่อคำสั่งถูก Execute ขณะกำลัง Execute อยู่นั้นในส่วนของ Instruction Decoder จะอ่านรายละเอียดของ Instruction Register โดยที่ Instruction Decoder จะทำการ Decoder คำสั่งในรายการเพื่อบอกให้ Microprocessor ทำงานและส่งคำสั่งออกมา และทำการส่งไปยังส่วนของ Microprocessor Control logic ต่อไป เพื่อส่งไปควบคุมการทำงานของส่วนต่าง ๆ ขึ้นอยู่กับคำสั่งต่าง ๆ ขนาดของ Instruction Register จะขึ้นอยู่กับ Microprocessor CPU Architecture

  20. Temporary Data Register เป็น Register ที่พอจะใช้เก็บข้อมูลได้เพียง 1 Word เท่านั้น ซึ่งเป็น Register ที่จำเป็นเพราะ ALU นั้นได้มีที่เก็บข้อมูล ALU มีโครงสร้างเป็นการรวม Logic ดังนั้นเมื่อมีข้อมูลเข้ามาและได้ทำตามเปลี่ยนแปลงข้อมูลทั้งนี้ขึ้นอยู่กับการกระทำด้วย จากนั้นจะส่งข้อมูลออกไปยัง Accumulator พื้นที่ ดังนั้นถ้าไม่มีTemporary Data RegisterALU จะไม่สามารถทำงานได้เลย เพราะเมื่อ ALU รับข้อมูลจาก Internal Data bus ทำการเปลี่ยนข้อมูลและส่งข้อมูลออก ดังนั้นTemporary Data Registerจึงเป็นส่วนสำคัญของ Microprocessor CPU Architecture

  21. Control Logic เป็นส่วนหลักอีกส่วนหนึ่งของ Microprocessor ในส่วนนี้จะเป็นการรวมงานต่าง ๆ เข้าด้วยกันและถูกต้องตามลำดับซึ่งส่วนของ Control logic นั้น เรียกอีกอย่างหนึ่งว่าเป็น "Micro program" ซึ่งจะมีการเรียนรู้คำสั่งการ Decode คำสั่งที่ส่งมาจาก Instruction Register และจะส่งสัญญาณควบคุมของคำสั่งออกไปยังส่วนต่าง ๆ ที่คำสั่งนั้นมีการเรียกใช้งาน และมีสัญญาณควบคุมหลัก คือ Memory , I/O และ Read-Write และสัญญาณภายนอกที่สำคัญ คือ Clock ซึ่งจะใช้เป็นพื้นฐานของสัญญาณต่าง ๆ และจะแปลงให้เป็นหลายสัญญาณ CPU Architecture

  22. Internal Data bus เป็นระบบ bus ที่ใช้ติดต่อภายใน Microprocessor จะมีขนาดเท่าใดขึ้นอยู่กับ Microprocessor ด้วยว่า มีขนาดของ Data bus เท่าใดเป็น 8 bit , 16 bit หรือ 32 bit เป็นต้น ซึ่งชนิดของ Internal bus จะเป็นแบบ 2 ทิศทาง (Bi-directional bus) CPU Architecture

  23. CPU Architecture

  24. CPU Architecture

  25. CPU Architecture

  26. Programming Model ในการเขียนโปรแกรมสิ่งสำคัญคือ โครงสร้างของ Registers ของ Microprocessor ซึ่งเป็นส่วนที่ใช้งานเป็นตำแหน่งที่เก็บข้อมูลต่าง ๆ ซึ่งที่นำมาเป็นของ Microprocessor ในตระกูล Intel ประกอบด้วย Registers กลุ่ม ต่าง ๆ ดังนี้ 1. General - Purpose Registers 2. Pointer and Index Registers 3. Flags Registers 4. Segment Registers CPU Architecture

  27. Programming Model CPU Architecture

  28. Programming Model • General - Purpose Registers • เป็น Register ที่ใช้งานโดยทั่วไป ซึ่งสามารถใช้งานได้ทั้ง 8 bit (AH,AL,BH,BL,CH,CL,DH,DL) 16 bit (AX,BX,CX,DX) หรือ 32 bit (EAX,EBX,ECX,EDX) Microprocessor ที่ใช้ 32 bit ได้แก่ 80386 และ 80486 • หน้าที่การใช้งานของ General - purpose Register • AX (Accumulator) ใช้ในการคำนวณหรือเก็บข้อมูลที่ได้จากการคำนวณ • BX (Base) ใช้ในการเก็บตำแหน่งของข้อมูลและใช้เก็บตำแหน่งตารางของข้อมูลที่ใช้คำสั่ง Translate (XLAT) • CX (Count) จะใช้เป็นตัวนับจำนวน ในการเลื่อนบิท การวนรอบ การเพิ่มค่า - ลดค่า • DX (Data) ใช้เก็บข้อมูลที่มีเครื่องหมายบวก - ลบ การคูณเลข 16 bit หรือ 32 bit การหาร และใช้กำหนดตำแหน่งของ input/output เมื่อใช้คำสั่ง IN/OUT CPU Architecture

  29. Programming Model Pointer and Index Registers • SP (Stack Pointer) ใช้เก็บตำแหน่งของข้อมูลในลักษณะ เข้าที่หลังออกก่อน (LIFO Last In First Out) ซึ่งเกิดขึ้นเมื่อใช้คำสั่ง PUSH และ POP หรือในการเรียกใช้โปรแกรมย่อย (Subroutine) โดยคำสั่ง CALL และ RET • BP (Base Pointer) ใช้เก็บตำแหน่งของกลุ่มข้อมูล (Array) ในหน่วยความจำ • SI (Source Index) ใช้อ้างตำแหน่งของข้อมูลโดยตรงซึ่งใช้กับคำสั่งที่เกี่ยวกับกลุ่มตัวอักษร (String Instruction) • DI ( Destination Index) ใช้อ้างตำแหน่งของข้อมูลโดยทางอ้อมซึ่งใช้กับคำสั่งที่เกี่ยวกับกลุ่มตัวอักษร (String Instruction) • IP (Instruction Pointer) ใช้ชี้ตำแหน่งของคำสั่งถัดไปให้กับ Microprocessor และทำหน้าที่หาตำแหน่งจริงของคำสั่งโดย IP = CS x 10H CPU Architecture

  30. Programming Model Flags Register Flags เป็นตัวแสดงเงื่อนไขการทำงานตามคำสั่งของ Microprocessor ซึ่งใช้ในการควบคุมการทำงาน โดย Flags จะเปลี่ยนสถานะหลังจากที่มีการประมวลผลคำสั่งทางคณิตศาสตร์และลอจิก มีดังนี้ C (Carry) ใช้แสดงค่าตัวทดเมื่อบวกเลข และเป็นตัวยืมเมื่อลบเลข CPU Architecture

  31. Programming Model Flags Register(Cont.) P (Parity) ใช้ในการตรวจสอบพาริตี้ของข้อมูล โดยจะมีค่าเป็น 1 เมื่อข้อมูลเป็นเลขคู่ และจะมีค่าเป็น 0 เมื่อข้อมูลเป็นเลขคี่ bit 2 bit 1 bit 0 Parity 1 0 1 1 1 1 1 0 A (AuxiliaryCarry) ใช้เก็บตัวทดหรือตัวยืมจากการบวก - ลบที่เกิดขึ้นระหว่างบิทที่ 3 และบิทที่ 4 หรือทดสอบค่าจากการบวก - ลบเลขรหัส BCD จากคำสั่ง DAA และ DAS โดยใช้การปรับค่าใน RegisterAL Z (Zero) ใช้แสดงผลที่ได้จากการใช้คำสั่งทางคณิตศาสตร์และลอจิก โดยตรวจสอบผลที่ได้ ถ้าผลที่ได้เป็น 0 บิทนี้จะเป็น 1 แต่ถ้าผลที่ได้ไม่เป็น 0 บิทนี้จะเป็น 0 CPU Architecture

  32. Programming Model Flags Register(Cont.) S (Sign) แสดงผลที่ได้จากการคำนวณทางคณิตศาสตร์ ถ้าบิทนี้เป็น 1 แสดงว่าค่าที่ได้เป็นค่าลบ แต่ถ้าบิทนี้เป็น 0 แสดงว่าค่าที่ได้เป็นบวก T (Trap) ใช้ควบคุมการทำงานทีละ Step เมื่อบิทนี้เป็น 1 I (Interrupt) ใช้ควบคุมการขอขัดจังหวะการทำงานของ Microprocessor ที่ขา INTR (Interrupt Request) โดยถ้าบิทนี้เป็น 1 แสดงว่ามีการขอขัดจังหวะการทำงานของ Microprocessor ซึ่งควบคุมด้วยคำสั่ง STI (Set Interrupt flags) และคำสั่ง CLI (Clear Interrupt flags) D (Direction) ใช้ควบคุมการเพิ่มหรือลดค่าของ Register DI/SI ในขณะที่ทำงานเกี่ยวกับกลุ่มตัวอักษร ถ้าบิทนี้เป็น 1 หมายถึงการลดค่าลงโดยอัตโนมัติ แต่ถ้าบิทนี้เป็น หมายถึงการเพิ่มค่าโดยอัตโนมัติ ซึ่งคำสั่งที่ใช้ควบคุมคือ STD (Set Direction) และ CLD (Clear Direction) CPU Architecture

  33. Programming Model Flags Register(Cont.) O (Overflow)บิทนี้เกิดขึ้นจากเงื่อนไขการบวกเลขหรือลบเลขที่มีเครื่องหมาย (Signed) ซึ่งผลที่ได้เกินความสามารถของเครื่องที่สามารถคำนวณได้เช่น การบากเลข 7FH (+127) กับ 01H (+1) ผลที่ได้คือ 80H (-128) ซึ่งผลที่ได้แสดงโดยใช้ OverflowFlag แต่ถ้าเป็นตัวเลขที่ไม่มีเครื่องหมาย (Unsigned) จะไม่สนใจบิทนี้ IOPL (Input/OutputPrivilegeLevel) ใช้ใน ProtectedMode เพื่อใช้เลือกระดับการทำงานอุปกรณ์ I/O ที่พิเศษ โดยเปรียบเทียบระดับความสำคัญกับอุปกรณ์ในปัจจุบันว่าตัวใดมีระดับความสำคัญสูงกว่าก็จะหยุดการทำงานในขณะนั้นก่อนเพื่อไปทำงานกับอุปกรณ์ที่สูงกว่า แต่ถ้าระดับความสำคัญของอุปกรณ์นั้นมีระดับความสำคัญต่ำกว่า จะไม่สนใจโดยที่ ระดับของ IOPL = 00 จะมีความสำคัญสูงสุด และ 11 จะมีระดับความสำคัญต่ำสุด CPU Architecture

  34. Programming Model Flags Register(Cont.) NT (NestedTask) แสดงการทำงานปัจจุบันโดยไม่เกี่ยวข้องกับงานอื่นที่ทำงานใน ProtectedMode เหมือนกัน ซึ่งบิทนี้จะใช้ Software เป็นตัวกำหนด RF (Resume) ใช้ในการควบคุมประมวลผลซ้ำต่อจากคำสั่งถัดไป VM (VirtualMode) ใช้เลือกการทำงานแบบเสมือนใน ProtectedMode ซึ่งการทำงานแบบนี้สามารถที่จะใช้งานหน่วยความจำของ DOS ได้หลาย ๆ ส่วนพร้อมกัน AC (AlignmentCheck) ใช้ตรวจสอบขอบเขตของข้อมูล โดยจะมีใช้กับ 80486SX VIF (VirtualInterruptFlag) ใช้กับ Pentium Processor ขึ้นไป VIP (Virtual Interrupt Pending)เป็นข้อมูลรายละเอียดของการทำงานใน Virtual Mode ของ Pentium Processor ที่ทำงานแบบ Multitasking ID (Identification)เป็นตัวบอกข้อมูลต่าง ๆ ของ Pentium Processor CPU Architecture

  35. Programming Model SegmentRegister เป็นการใช้งาน Register ร่วมกับ Register อื่นภายใน Microprocessor ซึ่งมีตั้งแต่ 4 - 6 Register ใน Microprocessor 8086 - 80486 ประกอบด้วย • CS (CodeSegment) เป็นส่วนที่ใช้เก็บโปรแกรมต่าง ๆ CodeSegment เป็นส่วนที่กำหนดตำแหน่งของหน่วยความจำที่เก็บโปรแกรม • DS (DataSegment) เป็นส่วนที่เก็บข้อมูลที่โปรแกรมต้องการใช้งาน ซึ่งการเข้าถึงข้อมูลโดยค่า OffsetAddress หรือ Register ที่เก็บค่า OffsetAddress • ES (ExtraSegment) ใช้งานร่วมกับ DataSegment เมื่อใช้คำสั่งเกี่ยวกับกลุ่มตัวอักษร • SS (StackSegment) ใช้กำหนดพื้นที่ของหน่วยความจำเพื่อใช้เก็บข้อมูล • FS และ GS มีใช้งานเฉพาะ Microprocessor ตั้งแต่ 80386 ขึ้นไป เพื่อใช้รวมหน่วยความจำสองส่วนในการเข้าถึงโดยโปรแกรม CPU Architecture

  36. Operating System CPU Architecture

  37. CPU Architecture

  38. CPU Architecture

  39. CPU Architecture

  40. CPU Architecture

  41. CPU Architecture

  42. CPU Architecture

More Related