429b2f674777e9fdc6b7aba0e3f91fe1.ppt
- Количество слайдов: 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 • Administrator (System, Network, Database) • EDP Manager
HARDWARE CPU Control Unit Arithmetic/logic Unit Input device Memory Output device
CPU (Central Processing Unit( • หนวยประมวลผลกลาง ประกอบดวย หนวยคำนวณและตรรกะ (arithmetic and logic unit) ทำหนาทคำนวณทางคณตศาสตรและทดสอบทางตรร กะ กบหนวยควบคม (control unit) ทำหนาทควบคณสวนอน ๆ หนวยประมวลผลกลางมสวนประกอบทสำคญซงใ ชประมวลผล คอ เรจสเตอร (registers) ใชเพอเกบขอมลตาง ๆ แบงออกเปน 2 ประเภท คอ • เรจสเตอรอเนกประสงค (general purpose registers) ผเขยนโปรแกรมสามารถอาง ถงเร จสเตอรอเนกประส งค เพออานหรอเขยนขอมลได • เรจสเตอรเฉพาะกจ (special purpose registers) เปนเร จสเตอรทนำมาใชทำงานเฉพาะกจ เชน
INPUT DEVICE ตวอยาง keyboard, mouse, disk drive, tape drive, microphone, joystick
OUTPUT DEVICE ตวอยาง จอภาพ , printer, disk drive, tape drive, plotter, speaker
address MEMORY 0 1 2 bit = binary digit byte = 8 bits 1 K = 210 bytes 1 M = 220 bytes 1 G = 230 bytes หมายเหต 2 s -1 RAM (Random Access Memory) ROM (Read-Only Memory) s= จำนวน bit ทใชกำหนด address เชน s = 3 จะม address 0 -
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
COMPUTER LANGUAGE • Low-level Language - Machine language - Assembly Language • High-level Language e. g. C, Pascal, FORTRAN
ASSEMBLER source program assembly language assembler object program machine language COMPILE TIME
COMPILER source program high-level language compiler object program machine language COMPILE TIME
RUN TIME input data machine language output
INTERPRETER source program input data interpreter COMPILE and RUN TIME output
ตวอยางโปรแกรมภาษา #include <stdio. h> main() { int i, j; scanf(“%d”, &i); j=2*i+5/10 -3; printf(“%d %dn”, i, j); } C
ตวอยางโปรแกรมภาษา assembly. 386. data i dd ? j dd ? . code mov i, 10 mov ax, i add ax, 5 mov j, ax end
MACHINE LANGUAGE • DATA • INSTRUCTION
DATA REPRESENTATION • • CHARACTER INTEGER FLOATING POINT Binary Code Decimal (BCD(
CHARACTER • ASCII (8 bits) เรมตนใช บตเปนรหสของอกขระและ parity บต • EBCDIC (8 bits( • UNICODE (16 bits( 7 1 บตเปน
INTEGER • UNSIGNED INTEGER • SIGNED INTEGER
UNSIGNED INTEGER ถาใชจำนวนบต n บต จะแทนเลขจำนวนเตมไมมเ ครองหมายได ตงแต 0 n-1 เชน ถง 2 n = 16 จะแทนเลขจำนวนเตมไดต งแต 0 ถง 65535 เปนตน
n=1 binary decimal 0 0 1 1
n=2 binary 00 01 10 11 decimal 0 1 2 3
n=3 binary 000 001 010 011 100 101 110 111 decimal 0 1 2 3 4 5 6 7
SIGNED INTEGER • SIGNED MAGNITUDE • ONE COMPLEMENT • TWO COMPLEMENT
SIGNED MAGNITUDE ใชบตซายสดแทนเครองหมาย โดยใช 0 แทน บวก และ 1 แทนลบ บตทเหลอใชแทนขนาดของตวเลข เชน สมมตวาใช จำนวนบต 8 บต แทนเลขจำนวน +5 และ – 5 ไดเปน 00000101 และ 10000101 เปนตน ถาใชจำนวน n บต จะแทนเลขจำนวนเตมแบบมเครองหม
n=2 binary 00 01 10 11 decimal +0 +1 -0 -1
n=3 binary 000 001 010 011 100 101 110 111 decimal +0 +1 +2 +3 -0 -1 -2 -3
ONE COMPLEMENT ใชบตซายสด แทนเครองหมาย โดยใช 0 แทน บวก และ 1 แทน ลบ การแทนเลขบวก จะเหมอนกบแบบ sign magnitude แตการแทนตวเลขลบ จะตางกน แบบ one complement จะแทนตวเลขลบโดยการทำ complement (เปลยนจากเลข 0 เปน 1 และ เปลยนจากเลข 1 เปน 0) กบ magnitude เชน สมมตวาใช จำนวนบต 8 บต แทนเลขจำนวน +5 และ – 5 ไดเปน
n=2 binary 00 01 10 11 decimal +0 +1 -1 -0
n=3 binary 000 001 010 011 100 101 110 111 decimal +0 +1 +2 +3 -3 -2 -1 -0
TWO COMPLEMENT ใชบตซายสดแทนเครองหมาย โดยใช 0 แทน บวก และ 1 แทน ลบ การแทนเลขบวก จะเหมอนกบแบบ sign magnitude แตการแทนตวเลขลบ จะตางกน แบบ two complement จะแทนตวเลขลบโดยการทำ complement (เปลยนจากเลข 0 เปน 1 และ เปลยนจากเลข 1 เปน 0) กบ magnitude แลวบวกดวยหนง เชน สมมตวาใช จำนวนบต 8 บต แทนเลขจำนวน +5 และ – 5 ไดเปน 00000101 และ 11111011
n=2 binary 00 01 10 11 decimal +0 +1 -2 -1
n=3 binary 000 001 010 011 100 101 110 111 decimal +0 +1 +2 +3 -4 -3 -2 -1
FLOATING POINT สามารถแทนตวเลขทมขนาดใหญ เชน 1. 234 x 1085 หรอขนาดเลกเชน 1. 234 x 10 – 85 ได ตวเลขประกอบดวย สวน mantissa หรอ fractional part กบ สวน exponent ในกรณน ฐานยกกำลง (base exponent) คอ 10 เชน 1. 234 X 1035 ม 1. 234 เปนสวน mantissa และ 35 เปนสวน exponent มฐานยกกำลง 10 ในการแทนสามารถเกบเฉพาะmantissa และ exponent โดยไมจำเปนตองเกบเลขฐานยกกำลง เนองจากสามารถกำหนดตายตวไดวาเลขฐานยก กำลงเปนอะไร สำหรบคอมพวเตอรซงเกบขอมลในรปเล
ตวอยาง 10(0. 00173)สามารถแทนไดเปน 0. 000173 x 101 , 0. 001730 x 100, 0. 017300 x 10 -1, หรอ 0. 173000 x 10 -2 แบบหลงสดจะเปนแบบ normalized 10(103. 5)เกบแบบ normalized คอ
IEEE standard
IEEE standard
IEEE standard
กรณพเศษ biased exponent mantissa all 0 nonzero all 1 all 0 all 1 nonzero special meaning floating point zero denormalized infinity Na. N (Not a Number)
ตวอยาง decimal 10. 0 เกบเปน binary แบบ IEEE standard, short real ดงน 0000 0100 0001 1000 0000
Binary Code Decimal (BCD( • Packed BCD • Unpacked BCD
BCD ใช binary 4 ตว แทน decimal หนงตว ดงน BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 decimal 0 1 2 3 4 5 6 7 8
Unpacked BCD ประกอบดวยสบตซายซงเ ปน 0000 และสบตขวาซงเปน BCD หนงตว เชน decimal 1234 แทนแบบ Unpacked BCD ดงน 0000 0001 0000 0010 0000 0011 0000 0100
Packed BCD ประกอบดวยสบตซายซงเ ปน BCD หนงตว และสบตขวาซงเปน BCD อกหนงตว เชน decimal 1234 แทนแบบ Packed BCD ดงน 0001 0010 0011 0100 กรณทไมครบไบต จะเตมศนยขางหนา เชน
สรป data representation data character integer floating point BCD ASCII unsigned packed EBCDIC signed unpacked signed magnitude UNICODE one complement two complement
INSTRUCTION รปแบบคำสงภาษาเครอง CPU สามารถประมวลผลไดเฉพาะคำสง ภาษาเครอง (machine language) เทานน คำสงภาษาเครองมรหสเปนเ ลขฐานสอง ประกอบดวยสวนทสำคญสองส
INSTRUCTION รหสดำเนนการ เชน บวก, ลบ, คณ , หรอ หาร เปนตน บอกใหรวา จะทำอะไร สวนตวถกดำเนนการ เปนขอมลทจะนำมาดำเน นการ ซงอาจจะเปนขอมลทอย ในคำสง เรยกวา
INSTRUCTION ขอตกลง เพอความเขาใจ จะเขยนคำสงภาษาเครองใน รปภาษาสญลกษณแทน เชน ภาษาเครอง ภาษาสญลกษณ
INSTRUCTION CPU สามารถคำนวณทางคณตศาสตร ทดสอบทางตรรกะ และทำงานขนพนฐานอน ๆ ดงนน การคำนวณมาก ๆ เชน คำสงของภาษาระดบสง X = (A*B)+(C/D) -10 ไมสามารถเขยนเปนคำสงภาษาเครองเ พยงคำสงเดยวได จำเปนตองแบงออกเปนคำสงพนฐา น หลายคำสง คอ T 1=A*B
INSTRUCTION คำสงภาษาเครองอาจแบงก ลมออกได ตามชนดของการดำเนนการ เชน คำสงเกยวกบการคำนวณทาง คณตศาสตร , คำสงเกยวกบการทดสอบทางต รรกะ
INSTRUCTION มตวถกดำเนนการสามตว เปนคำสงทมตวถกดำเน นการ 3 ตว เชน คำสง ความหมาย ADD X, Y, T SUB X, Y, T MUL X, Y, T DIV X, Y, T T=X+Y T=X-Y T=X*Y T=X/Y
ตวอยาง X = (A*B)+(C/D)-10 สามารถเขยนเปนคำสงภาษาเครองได ดงน MUL A, B, T 1 DIV C, D, T 2 ADD T 1, T 2, T 3 SUB T 3, 10, X
INSTRUCTION มตวดำเนนการสองตว เปนคำสงทมตวถกดำเนนการ 2 ตว เชน คำสง ความหมาย ADD X, Y X=X+Y SUB X, Y X=X-Y MUL X, Y X=X*Y DIV X, Y X=X/Y MOV X, Y X=Y CMP X, Y เปรยบเทยบ X กบ Y และกำหนดให FLAG เปน EQ, GT, หรอ
INSTRUCTION มตวถกดำเนนการหนงตว เปนคำสงทมตวถกดำเนนการ 1 ตว เชน JEQ X กระโดดไปทตำแหนง X ถา FLAG เปน EQ JLT X กระโดดไปทตำแหนง X ถา FLAG เปน LT JGT X กระโดดไปทตำแหนง X ถา FLAG เปน GT JMP X กระโดดไปทตำแหนง X โดยไมมเงอนไข ไมมตวถกดำเนนการ เปนคำสงทไมมตวถกดำเนนการ
ตวอยาง X = (A*B)+(C/D)-10 สามารถเขยนเปนคำสงภาษาเครองได ดงน MUL A, B DIV C, D ADD A, C SUB A, 10 MOV X, A
ตวอยาง if (A = = B) then A=A+1; else B=B-1 เขยนเปนคำสงภาษาเครองได CMPA, B JEQ L 1 SUB B, 1 JMP L 3 L 1: ADD A, 1 L 3: ดงน
ตวอยาง SUM=0; FOR I=1 TO 100 DO SUM=SUM+I; เขยนเปนภาษาเครองได ดงน MOV SUM, 0 MOV I, 1 L 1: CMP I, 100 JGT L 2 ADD SUM, I ADD I, 1 JMP L 1 L 2:
ขนตอนการประมวลผลดวย CPU fetch คำสงมาจาก memory ท address ซงเกบอยใน Program Counter บวก Program Counter ดวยความยาวของคำสง ห Program Counter เกบ address ของคำสงถดไป execute ตามคำสงนน โดยการ decode สวน operation code แลวทำตามคำสงนน
429b2f674777e9fdc6b7aba0e3f91fe1.ppt