1 / 60

หลักการทำงานของคอมพิวเตอร์

หลักการทำงานของคอมพิวเตอร์. 3 พฤษภาคม 2547 8:00-12:00. ระบบคอมพิวเตอร์ (computer system). PEOPLEWARE HARDWARE SOFTWARE. PEOPLEWARE. User Data Entry Operator Computer Operator Programmer (Application Programmer, System Programmer) System Analyst

tadeo
Download Presentation

หลักการทำงานของคอมพิวเตอร์

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. หลักการทำงานของคอมพิวเตอร์หลักการทำงานของคอมพิวเตอร์ 3 พฤษภาคม 2547 8:00-12:00

  2. ระบบคอมพิวเตอร์ (computer system) PEOPLEWARE HARDWARE SOFTWARE

  3. PEOPLEWARE • User • Data Entry Operator • Computer Operator • Programmer (Application Programmer, System Programmer) • System Analyst • Administrator (System, Network, Database) • EDP Manager

  4. HARDWARE CPU Control Unit Arithmetic/logic Unit Input device Memory Output device

  5. CPU (Central Processing Unit) • หน่วยประมวลผลกลาง ประกอบด้วย หน่วยคำนวณและตรรกะ (arithmetic and logic unit) ทำหน้าที่คำนวณทางคณิตศาสตร์และทดสอบทางตรรกะ กับหน่วยควบคุม (control unit) ทำหน้าที่ควบคุณส่วนอื่น ๆ หน่วยประมวลผลกลางมีส่วนประกอบที่สำคัญซึ่งใช้ประมวลผล คือ เรจิสเตอร์ (registers) ใช้เพื่อเก็บข้อมูลต่าง ๆ แบ่งออกเป็น 2 ประเภท คือ • เรจิสเตอร์อเนกประสงค์ (general purpose registers) ผู้เขียนโปรแกรมสามารถอ้างถึงเรจิสเตอร์อเนกประสงค์ เพื่ออ่านหรือเขียนข้อมูลได้ • เรจิสเตอร์เฉพาะกิจ (special purpose registers) เป็นเรจิสเตอร์ที่นำมาใช้ทำงานเฉพาะกิจ เช่น PC (Program Counter) ทำหน้าที่เก็บตำแหน่งของคำสั่งถัดไปที่จะนำมาประมวลผล, IR (Instruction Register) บรรจุคำสั่งปัจจุบันที่จะประมวลผล, MAR (Memory Address Register) เก็บตำแหน่งของหน่วยความจำที่จะไปอ่านหรือเขียนข้อมูลในหน่วยความจำ, PSW (Program Status Word Register) เก็บสถานะต่าง ๆ ในขณะที่ประมวลผล เป็นต้น

  6. INPUT DEVICE ตัวอย่างkeyboard, mouse, disk drive, tape drive, microphone, joystick

  7. OUTPUT DEVICE ตัวอย่าง จอภาพ, printer, disk drive, tape drive, plotter, speaker

  8. MEMORY address bit = binary digit byte = 8 bits 1K = 210 bytes 1M = 220 bytes 1G = 230 bytes 0 1 2 หมายเหตุs = จำนวน bit ที่ใช้กำหนด address เช่น s = 3 จะมี address 0-7 เป็นต้น 2s -1 RAM (Random Access Memory) ROM (Read-Only Memory)

  9. SOFTWARE • System Software - System Management Programs: Operating Systems - System Development Programs: Compiler, Interpreter, Editor - System Support Programs: utility, performance monitor, security monitor • Application Software - General-purpose Programs: e.g. word processing, spreadsheet - Application-Specific Programs: e.g. airline reservation, banking

  10. COMPUTER LANGUAGE • Low-level Language - Machine language - Assembly Language • High-level Language e.g. C, Pascal, FORTRAN

  11. ASSEMBLER source program assembly language assembler object program machine language COMPILE TIME

  12. COMPILER source program high-level language compiler object program machine language COMPILE TIME

  13. RUN TIME machine language input data output

  14. INTERPRETER source program output interpreter input data COMPILE and RUN TIME

  15. ตัวอย่างโปรแกรมภาษา C #include <stdio.h> main() { int i,j; scanf(“%d”,&i); j=2*i+5/10-3; printf(“%d %d\n”,i,j); }

  16. ตัวอย่างโปรแกรมภาษา assembly .386 .data i dd ? j dd ? .code mov i,10 mov ax,i add ax,5 mov j,ax end

  17. MACHINE LANGUAGE • DATA • INSTRUCTION

  18. DATA REPRESENTATION • CHARACTER • INTEGER • FLOATING POINT • Binary Code Decimal (BCD)

  19. CHARACTER • ASCII (8 bits) เริ่มต้นใช้ 7 บิตเป็นรหัสของอักขระและ 1 บิตเป็น parity บิต • EBCDIC (8 bits) • UNICODE (16 bits)

  20. INTEGER • UNSIGNED INTEGER • SIGNED INTEGER

  21. UNSIGNED INTEGER ถ้าใช้จำนวนบิต n บิต จะแทนเลขจำนวนเต็มไม่มีเครื่องหมายได้ ตั้งแต่ 0 ถึง 2n-1 เช่น n = 16 จะแทนเลขจำนวนเต็มได้ตั้งแต่ 0 ถึง 65535 เป็นต้น

  22. n = 1 binary decimal 0 0 1 1

  23. n = 2 binary decimal 00 0 01 1 10 2 11 3

  24. n = 3 binary decimal 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7

  25. SIGNED INTEGER • SIGNED MAGNITUDE • ONE COMPLEMENT • TWO COMPLEMENT

  26. SIGNED MAGNITUDE ใช้บิตซ้ายสุดแทนเครื่องหมาย โดยใช้ 0 แทน บวก และ 1 แทนลบ บิตที่เหลือใช้แทนขนาดของตัวเลข เช่น สมมุติว่าใช้ จำนวนบิต 8 บิต แทนเลขจำนวน +5 และ –5 ได้เป็น 00000101 และ 10000101 เป็นต้น ถ้าใช้จำนวน n บิต จะแทนเลขจำนวนเต็มแบบมีเครื่องหมาย ได้ตั้งแต่ – (2n-1 – 1) ถึง +(2n-1- 1)

  27. n = 2 binary decimal 00 +0 01 +1 10 -0 11 -1

  28. n = 3 binary decimal 000 +0 001 +1 010 +2 011 +3 100 -0 101 -1 110 -2 111 -3

  29. ONE COMPLEMENT ใช้บิตซ้ายสุด แทนเครื่องหมาย โดยใช้ 0 แทน บวก และ 1 แทน ลบ การแทนเลขบวก จะเหมือนกับแบบ sign magnitude แต่การแทนตัวเลขลบ จะต่างกัน แบบ one complement จะแทนตัวเลขลบโดยการ ทำ complement (เปลี่ยนจากเลข 0 เป็น 1 และ เปลี่ยนจากเลข 1 เป็น 0) กับ magnitude เช่น สมมุติว่าใช้ จำนวนบิต 8 บิต แทนเลขจำนวน +5 และ –5 ได้เป็น 00000101 และ 11111010 เป็นต้น ถ้าใช้จำนวน n บิต จะแทนเลขจำนวนเต็มแบบมีเครื่องหมาย ได้ตั้งแต่ – (2n-1 – 1) ถึง +(2n-1- 1)

  30. n = 2 binary decimal 00 +0 01 +1 10 -1 11 -0

  31. n = 3 binary decimal 000 +0 001 +1 010 +2 011 +3 100 -3 101 -2 110 -1 111 -0

  32. TWO COMPLEMENT ใช้บิตซ้ายสุดแทนเครื่องหมาย โดยใช้ 0 แทน บวก และ 1 แทน ลบ การแทนเลขบวก จะเหมือนกับแบบ sign magnitude แต่การแทนตัวเลขลบ จะต่างกัน แบบ two complement จะแทนตัวเลขลบโดยการ ทำ complement (เปลี่ยนจากเลข 0 เป็น 1 และ เปลี่ยนจากเลข 1 เป็น 0) กับ magnitude แล้วบวกด้วยหนึ่ง เช่น สมมุติว่าใช้ จำนวนบิต 8 บิต แทนเลขจำนวน +5 และ –5 ได้เป็น 00000101 และ 11111011 เป็นต้น ถ้าใช้จำนวน n บิต จะแทนเลขจำนวนเต็มแบบมีเครื่องหมาย ได้ตั้งแต่ – (2n-1) ถึง +(2n-1- 1)

  33. n = 2 binary decimal 00 +0 01 +1 10 -2 11 -1

  34. n = 3 binary decimal 000 +0 001 +1 010 +2 011 +3 100 -4 101 -3 110 -2 111 -1

  35. FLOATING POINT สามารถแทนตัวเลขที่มีขนาดใหญ่ เช่น 1.234x1085 หรือขนาดเล็กเช่น 1.234x10 –85 ได้ ตัวเลขประกอบด้วย ส่วน mantissa หรือ fractional part กับ ส่วน exponent ในกรณีนี้ ฐานยกกำลัง (base exponent) คือ 10 เช่น 1.234X1035 มี 1.234 เป็นส่วน mantissa และ 35 เป็นส่วน exponent มีฐานยกกำลัง 10 ในการแทนสามารถเก็บเฉพาะ mantissa และ exponent โดยไม่จำเป็นต้องเก็บเลขฐานยกกำลัง เนื่องจากสามารถกำหนดตายตัวได้ว่าเลขฐานยกกำลังเป็นอะไร สำหรับคอมพิวเตอร์ซึ่งเก็บข้อมูลในรูปเลขฐานสอง ปรกติแล้ว จะใช้ฐานยกกำลัง เป็น 2, 4, 8, หรือ 16 จะไม่ใช้ฐานยกกำลังเป็น 10 และเพื่อให้มีความแม่ยำสูงสุด คอมพิวเตอร์ส่วนใหญ่จะเก็บ mantissa แบบ normalized คือ ให้จุดไปอยู่หน้า เลขนัยสำคัญตัวแรกของ mantissa (ในกรณีเลข 0 จะแทนในรูปแบบพิเศษ เช่น mantissa และ exponent เป็น 0 ทั้งคู่)

  36. ตัวอย่าง (0.00173)10 สามารถแทนได้เป็น 0.000173x101 , 0.001730x100, 0.017300x10-1, หรือ 0.173000x10-2 แบบหลังสุดจะเป็นแบบ normalized (103.5)10 เก็บแบบ normalized คือ 0.1035x103

  37. IEEE standard

  38. IEEE standard

  39. IEEE standard

  40. กรณีพิเศษ biased exponent mantissa special meaning all 0 all 0 floating point zero all 0 nonzero denormalized all 1 all 0 infinity all 1 nonzeroNaN (Not a Number)

  41. ตัวอย่าง decimal 10.0 เก็บเป็น binary แบบ IEEE standard, short real ดังนี้ 010000010010 0000 0000 0000 0000 0000

  42. Binary Code Decimal (BCD) • Packed BCD • Unpacked BCD

  43. BCD ใช้ binary 4 ตัว แทน decimal หนึ่งตัว ดังนี้ BCD decimal 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9

  44. Unpacked BCD ประกอบด้วยสี่บิตซ้ายซึ่งเป็น 0000 และสี่บิตขวาซึ่งเป็น BCD หนึ่งตัว เช่น decimal 1234 แทนแบบ Unpacked BCD ดังนี้ 0000 0001 0000 0010 0000 0011 0000 0100

  45. Packed BCD ประกอบด้วยสี่บิตซ้ายซึ่งเป็น BCD หนึ่งตัว และสี่บิตขวาซึ่งเป็น BCD อีกหนึ่งตัว เช่น decimal 1234 แทนแบบ Packed BCD ดังนี้ 0001 0010 0011 0100 กรณีที่ไม่ครบไบต์ จะเติมศูนย์ข้างหน้า เช่น decimal 234 แทนแบบ Packed BCD ดังนี้ 0000 0010 0011 0100

  46. สรุป data representation data character integer floating point BCD ASCII unsigned packed unpacked signed EBCDIC signed magnitude UNICODE one complement two complement

  47. INSTRUCTION รูปแบบคำสั่งภาษาเครื่อง CPU สามารถประมวลผลได้เฉพาะคำสั่งภาษาเครื่อง (machine language) เท่านั้น คำสั่งภาษาเครื่องมีรหัสเป็นเลขฐานสอง ประกอบด้วยส่วนที่สำคัญสองส่วน คือ รหัสดำเนินการ (operation code) ซึ่งต้องมี และ ตัวถูกดำเนินการ (operands) ซึ่งอาจจะไม่มี หรือมีหนึ่งถึงสามตัว

  48. INSTRUCTION รหัสดำเนินการ เช่น บวก, ลบ, คูณ, หรือ หาร เป็นต้น บอกให้รู้ว่า จะทำอะไร ส่วนตัวถูกดำเนินการ เป็นข้อมูลที่จะนำมาดำเนินการ ซึ่งอาจจะเป็นข้อมูลที่อยู่ในคำสั่ง เรียกว่า immediate operand เช่น ค่าคงที่ต่าง ๆ หรืออาจเป็นข้อมูลในเรจิสเตอร์ เรียกว่า register operand หรือ อาจเป็นการอ้างถึงตำแหน่งของหน่วยความจำหลักที่เก็บข้อมูล

  49. INSTRUCTION ข้อตกลง เพื่อความเข้าใจ จะเขียนคำสั่งภาษาเครื่องในรูปภาษาสัญลักษณ์แทน เช่น ภาษาเครื่อง ภาษาสัญลักษณ์ 011 100 101 ADD A,B

More Related