Chapter 1 Introduction
Chapter 1 วัตถุประสงค์ รู้ถึงการวิวัฒนาการของคอมพิวเตอร์ เข้าใจถึงชั้นองค์ประกอบของระบบคอมพิวเตอร์ สามารถอธิบายถึง von Neumann architecture และหน้าที่พื้นฐานขององค์ประกอบต่างๆของcomputer
1.1 เนื้อหาโดยสังเขป (Overview) สาเหตุที่ต้องเรียนรู้ computer organization และ architectureเพราะว่า สามารถออกแบบโปรแกรมให้ดีขึ้น, รวมทั้ง system software เช่น compilers, operating systems, และ device drivers. ปรับปรุงโปรแกรมให้มีประสิทธิภาพสูงสุด(Optimize program behavior) ประเมินขีดความสามารถของระบบคอมพิวเตอร์ได้. เข้าใจถึงการชั่งน้ำหนักระหว่าง time, space, และ price
1.1 เนื้อหาโดยสังเขป (Overview) Computer organization จะรวมเอาสิ่งที่มองเห็นทางกายภาพทั้งหมดของ computer systems. เช่น circuit design, control signals, memory types. จะเน้นถึงแนวคิดว่า “เครื่องคอมพิวเตอร์ทำงานอย่างไร?” Computer architecture เป็นมุมมองของการสร้างระบบของนักเขียนโปรแกรม เช่น instruction sets, instruction formats, data types, addressing modes. จะเน้นถึงแนวคิดว่า “จะออกแบบเครื่องคอมพิวเตอร์อย่างไร?”
1.2 องค์ประกอบต่างๆของคอมพิวเตอร์(Computer Components) ที่จริงแล้วยังไม่สามารถแยกความแตกต่างระหว่างcomputer organization และ computer architecture ได้อย่างแท้จริง มีเพียงหลักการเท่ากันของHardware และ Softwareที่ว่า อะไรก็ตามที่สามารถทำโดยsoftwareก็สามารถทำได้โดยhardware และ อะไรก็ตามที่สามารถทำโดยsoftwareก็สามารถทำได้โดยhardware * * สมมุติว่าไม่พิจารณาประเด็นความเร็ว
1.2 Computer Components โดยหลักทั่วๆไป computer จะประกอบด้วย 3 ส่วนคือ: หน่วยประมวลผล(processor) ทำหน้าที่แปลความหมายและดำเนินงานตามคำสั่งในโปรแกรม หน่วยความจำ(memory) เพื่อที่จะเก็บข้อมูลและโปรแกรม กลไกในการรับขนถ่ายข้อมูลภายในระบบหรือจากภายนอกระบบ
ทั้งหมดมีความหมายอย่างไร?? 1.3 An Example System MHz?? USB?? L1 Cache?? PCI?? MB?? ทั้งหมดมีความหมายอย่างไร??
1.3 An Example System หน่วยวัดความจุและความเร็ว (Measures of capacity and speed) Kilo- (K) = 1 thousand = 103 and 210 Mega- (M) = 1 million = 106 and 220 Giga- (G) = 1 billion = 109 and 230 Tera- (T) = 1 trillion = 1012 and 240 Peta- (P) = 1 quadrillion = 1015 and 250
1.3 An Example System Hertz = clock cycles per second (frequency) 1MHz = 1,000,000Hz Processor speeds จะถูกวัดในหน่วยของ MHz หรือ GHz. Byte = a unit of storage 1KB = 210 = 1024 Bytes 1MB = 220 = 1,048,576 Bytes Main memory (RAM) จะถูกวัดในหน่วย MB Disk storage จะถูกวัดในหน่วย GB สำหรับขนาดใหญ่ปานกลาง, TB สำหรับขนาดใหญ่มาก
1.3 An Example System หน่วยวัดเวลาและห้วงอวกาศ Milli- (m) = 1 thousandth = 10 -3 Micro- () = 1 millionth = 10 -6 Nano- (n) = 1 billionth = 10 -9 Pico- (p) = 1 trillionth = 10 -12 Femto- (f) = 1 quadrillionth = 10 -15
1.3 An Example System Millisecond = 1 thousandth of a second Hard disk จะมีเวลาการเข้าถึง ( access times )จะอยู่ในช่วง 10 to 20 milliseconds. Nanosecond = 1 billionth of a second เวลาการเข้าถึงหน่วยความจำ(Main memory access times) จะอยู่ในช่วง 50 to 70 nanoseconds. Micron (micrometer) = 1 millionth of a meter ขนาดของวงจรบนแผ่นชิป(Circuits on computer chips) มีหน่วยวัดเป็น microns.
Computers ที่มีหน่วยความจำมากสามารถดำเนินงานกับโปรแกรมที่มีขนาดใหญ่เร็วกว่า computers น้อย. RAM เป็นคำย่อ(acronym)จาก”random access memory” ซึ่งหมายถึงค่าของ memory จะถูกเข้าถึงได้โดยตรงถ้ารู้ตำแหน่งที่อยู่ Cache เป็นหน่วยความจำชั่วคราวที่สามารถเข้าถึงได้เร็วกว่า RAM.
1.4 Standards Organizations มีorganizations จำนวนมากที่ตั้งมาตรฐานcomputer hardware standards-- ซึ่งได้ร่วมการทำงานของ ตลอดหนังสือเล่มนี้, and in your career, you will encounter many of them. บางครั้ง standards-setting groups are . . .
1.4 Standards Organizations The Institute of Electrical and Electronic Engineers (IEEE) ส่งเสริมกิจกรรมความสนใจของของ engineering communityทั่งโลก จัดตั้งมาตรฐานสำหรับอุปกรณ์(computer components), data representation และ signaling protocols
1.4 Standards Organizations The International Telecommunications Union (ITU) เกี่ยวข้องและพัฒนาเกี่ยวกับ telecommunications systems, รวมทั้ง data communications และ telephony. มาตรฐานนานาชาติมีดังนี้ American National Standards Institute (ANSI) British Standards Institution (BSI)
1.4 Standards Organizations International Organization for Standardization (ISO) จัดตั้งมาตรฐานสำหรับทุกๆสิ่งตั้งแต่ไม้จิ้มฟันถึงเรือรบ. ส่งผลให้computer hardware และ software ต้องมีมาตรฐานและวิธีผลิตให้ได้มาตรฐาน หมายเหตุ: ISO ไม่ใช่คำย่อนะ แต่มาจากภาษา Greek ซึ่งมีความหมายว่า “เท่ากับ(equal.)”
1.5 ประวัติการพัฒนาของ computer การที่เราจะทราบถึงการทำงานของcomputerในวันนี้ เราสมควรที่จะรู้ถึงเส้นทางการพัฒนาของcomputer เพื่อเป็นประโยชน์ว่าทำไมว่าcomputeจึงเป็นอย่างทุกวันนี้ การพัฒนาของเครื่องคำนวณ(computing machinery)ได้มีมามากกว่าหนึ่งศตวรรษแล้ว การพัฒนาของ computerสมัยใหม่จะนิยมแยกออกเป็น 4 ยุคตามเทคโนโลยีที่โดดเด่นที่เกี่ยวข้อง ซึ่งพอจะสรุปถึงการพัฒนาแต่ละช่วงได้ดังนี้.
1.5 ประวัติการพัฒนาของ computer Generation Zero: Mechanical Calculating Machines (1642 - 1945) Calculating Clock - Wilhelm Schickard (1592 - 1635). Pascaline - Blaise Pascal (1623 - 1662). Difference Engine - Charles Babbage (1791 - 1871), also designed but never built the Analytical Engine. Punched card tabulating machines - Herman Hollerith (1860 - 1929). Hollerith cards were commonly used for computer input well into the 1970s.
1.5 ประวัติการพัฒนาของ computer The First Generation: Vacuum Tube Computers (1945 - 1953) Atanasoff Berry Computer (1937 - 1938) solved systems of linear equations. John Atanasoff and Clifford Berry of Iowa State University.
1.5 ประวัติการพัฒนาของ computer The First Generation: Vacuum Tube Computers (1945 - 1953) Electronic Numerical Integrator and Computer (ENIAC) John Mauchly and J. Presper Eckert University of Pennsylvania, 1946 The first general-purpose computer.
1.5 ประวัติการพัฒนาของ computer The First Generation: Vacuum Tube Computers (1945 - 1953) IBM 650 (1955) Phased out in 1969. The first mass-produced computer.
1.5 ประวัติการพัฒนาของ computer The Second Generation: Transistorized Computers (1954 - 1965) IBM 7094 (scientific) and 1401 (business) Digital Equipment Corporation (DEC) PDP-1 Univac 1100 . . . and many others. DEC PDP-1
1.5 ประวัติการพัฒนาของ computer The Third Generation: Integrated Circuit Computers (1965 - 1980) IBM 360 DEC PDP-8 and PDP-11 Cray-1 supercomputer . . . and many others. IBM 360 Cray-1
1.5 ประวัติการพัฒนาของ computer The Fourth Generation: VLSI Computers (1980 - ????) Very large scale integrated circuits (VLSI) มีtransistor มากว่า 10,000 หน่วยต่อ chip. ทำให้เกิดการสร้าง microprocessors. ตัวแรกได้แก่ 4-bit Intel 4004. Intel 4004 รุ่นต่อมาได้แก่ 8080, 8086 และ 8088 ซึ่งเป็นจุดกำเนิดของการทำ “personal computing.”
1.5 ประวัติการพัฒนาของ computer Moore’s Law (1965) Gordon Moore, Intel founder “จำนวน transistors ใน chip จะเพิ่ม 2เท่าตัวทุกๆปี” Contemporary version: “ความจุของchipจะเพิ่ม 2เท่าตัวทุกๆ 18 เดือน.” But this “law” cannot hold forever ...
1.5 Historical Development Rock’s Law Arthur Rock, Intel financier “ต้นทุนการผลิตsemiconductors จะเพิ่มสองเท่าทุกๆ 4 ปี” In 1968, a new chip plant cost about $12,000.
1.5 Historical Development Rock’s Law In 2003, a chip plants under construction will cost over $2.5 billion. For Moore’s Law to hold, Rock’s Law must fall, or vice versa. But no one can say which will give out first. $2.5 billion is more than the gross domestic product of some small countries, including Belize, Bhutan, and the Republic of Sierra Leone.
1.6 ระดับชั้นโครงสร้างของcomputer (Computer Level Hierarchy) Computer ประกอบด้วยหลายๆสิ่งที่นอกเหนือจาก chips. Computer จะทำให้คุณค่าของผลลัพธ์มีคุณค่าโดยอาศัย software. การเขียนprogramที่ซับซ้อนต้องอาศัยวิธี “divide and conquer” ซึ่งแต่ละ program module จะใช้แก้ปัญหาย่อยๆ. ระบบ computer ที่ซับซ้อน จะอาศัยเทคนิคที่เรียกว่า “virtual machine Layers”
1.6 ระดับชั้นโครงสร้างของcomputer แต่ละvirtual machine layer จะเป็นชั้นการทำงานในมุมมองที่ง่ายกว่าชั้นที่ต่ำกว่าลงไปจากตัวมัน machines แต่ละ level จะดำเนินการทำงานตามแบบฉบับคำสั่งของชั้นตัวเอง โดยการเรียกใช้ machines ในระดับที่ต่ำกว่าให้ทำงานที่ต้องการอีกต่อหนึ่ง ซึ่งในที่สุดการทำงานจริงก็ตกอยู่ที่Computer circuits
1.6 ระดับชั้นโครงสร้างของcomputer Level 6: The User Level Program execution และ user interface level. level นี้เราจะคุ้นเคยที่สุด. Level 5: High-Level Language Level level นี้จะเกี่ยวข้องกับการเขียน programs โดยใช้ภาษาเช่น C, Pascal, Lisp, และ Java.
1.6 ระดับชั้นโครงสร้างของcomputer Level 4: Assembly Language Level มีหน้าที่การสร้างเกี่ยวกับสร้าง assembly language จาก Level 5 รวมทั้งการเขียนคำสั่งภาษาเครื่องโดยตรงกับ level นี้ Level 3: System Software Level ควบคุมการทำงานของขบวนการในระบบ(Controls executing processes on the system) ป้องกันทรัพยากรที่จำเป็นของระบบ คำสั่งของภาษาแอสเซมบลี(Assembly language) มักจะผ่าน Level 3 นี้ไปโดยไม่มีการแก้ไข
1.6 ระดับชั้นโครงสร้างของcomputer Level 2: Machine Level หรือเรียกว่า “Instruction Set Architecture (ISA) Level” ประกอบด้วยคำสั่งต่างๆเป็นรูปแบบที่เฉพาะกับสถาปัตยกรรมของระบบคอมฯเครื่องนั้น Programs ที่เขียนด้วย machine language ไม่ต้องการ compilers, interpreters หรือ assemblers.
1.6 ระดับชั้นโครงสร้างของcomputer Level 1: Control Level control unit จะถอดรหัส(decodes) และปฏิบัติคำสั่ง(executes instructions) และเคลื่อนย้ายข้อมูลไปมาผ่านระบบ Control units จะอยู่ในรูปของ microprogrammed หรือhardwired. microprogram คือ program ที่เขียนในรูปของ low-level language แล้วสร้างขึ้นเป็น hardware. Hardwired control units ประกอบด้วย hardware ซึ่งปฏิบัติคำสั่งเครื่อง(machine instructions)โดยตรง
1.6 ระดับชั้นโครงสร้างของcomputer Level 0: Digital Logic Level Level นี้เป็นที่ซึ่งพบ digital circuits (the chips). Digital circuits ประกอบด้วย gates และ wires. components เหล่านี้จะบริการทำงานทางตรรกะคณิตศาสตร์ให้กับทุกๆ level
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) บนเครื่อง ENIAC การเขียนโปรแกรมจะทำที่ digital logic level. การเขียนโปรแกรม จะเกี่ยวข้องกับการเคลื่อนย้ายและการสลับสาย
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) ผู้ประดิษฐ์ ENIAC คือ John Mauchley และ J. Presper Eckert ได้ริเริ่มความคิดที่ควรเก็บคำสั่งในหน่วยความจำ ผลบันดาลจากแนวคิดของ John Mauchley และ J. Presper Eckert ก็มาประสบความสำเร็จโดยนักคณิตสาสตร์รุ่นเดียวกันชื่อ John von Neumann หลังจากนั้น Stored-program computers ก็กลายมาเป็นรูปแบบการสร้างคอมฯในยุคต่อมาที่ขนานนามว่า “von Neumann Architecture systems”
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) ปัจจุบันนี้ stored-program computers มีลักษณะดังนี้: Three hardware systems: A central processing unit (CPU) A main memory system An I/O system มีความสามารถในการประมวลผลอย่างมีขั้นตอน มีเส้นทางการลำเลียงข้อมูลหนึ่งเส้นทางระหว่าง CPU กับ main memory. มีเส้นทางการลำเลียงข้อมูลหนึ่งเส้นทางนี้เรียกว่า ”von Neumann bottleneck “
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) รูปภาพแสดงระบบทั่วไปของ von Neumann system: Computer จะใช้การ fetch-decode-execute cycle ในการปฏิบัติคำสั่งโปรแกรม
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) control unitจะ fetches คำสั่งต่อไปจาก memory โดยใช้ program counter ช่วยกำหนดที่อยู่ของคำสั่ง
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) instruction จะถูกถอดรหัสให้อยู่ในรูปแบบภาษาหรืคำสั่งเพื่อให้ ALU เข้าใจ
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) การทำงานใดๆกับ data ต้องปฏิบัติคำสั่งตามที่ได้ fetch จาก memory และเก็บไว้ใน registers ภายใน CPU.
1.7 คอมพิวเตอร์ตามรูปแบบของวอน นิวแมน (von Neumann Model) ALU ปฏิบัติคำสั่ง (execute)และเก็บผลลัพธ์ไว้ที่ registers หรือ memory.
1.8 Non-von Neumann Models stored-program computers ได้รับการยอมรับและพัฒนาเพิ่มเติมมาตลอด การพัฒนาเพิ่มเช่น specialized buses, floating-point units และcache memories แต่การพัฒนาจุดที่สำคัญยิ่งคือการเพิ่มประสิทธิภาพในการคำนวณทำให้ computer architectureในระยะหลังนี้แตกต่างจากvon Neumann architecture ดั้งเดิมไปบ้าง โดยเฉพาะการพัฒนาของตัวประมวลผล (processors)
1.8 Non-von Neumann Models ในตอนท้ายศตวรรษ 1960s คอมฯประสิทธิภาพสูง (high-performance computer systems) สร้างโดยใช้dual processors เพื่อเพิ่มประสิธิภาพการคำนวณ ในศตวรรษ 1970s supercomputer systems ทำจาก 32 processors Supercomputers ทำจาก 1,000 processors สร้างใน ศตวรรษ 1980s. ในปี 1999, IBM ได้ประกาศว่า Blue Gene system บรรจุ 1 million processors.
1.8 Non-von Neumann Models Parallel processing เป็นเพียงทางเดียวที่จะเพิ่ม computational power. มีการเปลี่ยนแปลง คิดค้น ระบบคอมฯที่ต่างจาก von neumann เดิมมากมาย ระบบที่ก้าวหน้าขึ้นมาได้แก่ genetic computers, quantum computers และ dataflow systems ณ จุดนี้ไม่แน่ชัดว่าระบบที่ก้าวหน้านี้จะสามารถเป็นบรรทัดฐานของคอมฯรุ่นต่อไปหรือไม่
สรุป (Conclusion) บทนี้ได้กล่าวถึงภาพรวมของ computer architecture. คุ้นเคยกับ general system structure เพื่อการศึกษาบทต่อไป บทต่อฯไปจะเป็นรายละเอียดของบทนี้ยิ่งๆขึ้นไป