Basic components: memory, CPU, I/O

Download Report

Transcript Basic components: memory, CPU, I/O

The von Neumann model of
computer architecture
ธนวัฒน์ แซ่เอียบ
Main Topics
• Recall
– Computer architecture
– Store program computer
• Measure of performance
• Von Neumann Model
– Memory, Prosessing Unit, Control Unit, Input, Output
• Clock
Computer Architecture
• Computer Architecture
– คือการออบแบบเครื่ องคอมพิวเตอร์เช่น instruction set
ส่ วนประกอบของฮาร์ดแวร์ และออร์แกนไนเซชันของระบบ
• Architecture
– เป็ นพฤติกรรมหรื อหน้าที่ของระบบคอมพิวเตอร์ที่โปรแกรมเมอร์
สามารถมองเห็นได้
• เป็ นส่ วนสาคัญยิง่ ของ computer architecture
– Instruction Set Architecture (ISA)
• โปรแกรมเมอร์ระดับภาษาเครื่ องใช้ ISA เป็ นตัวเชื่อมระหว่าง
ซอฟต์แวร์และฮาร์ดแวร์ เช่น
Computer Architecture
– The instruction set
– The instruction formats
– The available addressing modes
– The format of the available data types
– The register set and usage
• Organization
– Computer organization เกี่ยวข้องกับโครงสร้างหรื อฮาร์ดแวร์ส่วน
ต่างๆ ที่โปรแกรมเมอร์ไม่สามารถมองเห็นได้ เช่น
Computer Architecture
•
•
•
•
•
•
•
The Central Processing Unit (CPU)
The storage system
The input output system
Clock Frequency
Technology used for implementing the memory
The number and type of buses
Whether pipelining or caches are used etc.
Computer Architecture
Computer Architecture
• Computer Families
– ตระกูลเครื่ องคอมพิวเตอร์คือเซ็ตของเครื่ องคอมพิวเตอร์ซ่ ึ งใช้ ISA
เหมือนกันหรื อคล้ายกัน (architecture) เช่น IBM 360 family, VAX
family
– สมาชิกในตระกูลเดียวกันสามารถโปรแกรมร่ วมกันได้ท้ งั หมด
ถึงแม้วา่ ในอนาคตมีแนวโน้นที่คอมพิวเตอร์สามารถทางานได้เร็ ว
ขึ้นและเทคโนโลยีดีข้ ึน (organization)
– ความสามารถที่สมาชิกในตระกูลเดียวกันที่มีประสิ ทธิภาพสูง
สามารถปฏิบตั ิโปรแกรมเดียวกันกับสมาชิกที่มีประสิ ทธิภาพต่ากว่า
เรี ยกว่า upward compatibility.
Computer Architecture
• คาสัง่ การคูณ
– Computer architecture
• mul R1,R2
– Computer organization
Measures of Performance
• วิธีการวัดประสิ ทธิภาพของระบบคอมพิวเตอร์มีหลายวิธี ขึ้นอยูก่ บั
แอปปลิเคชันที่สนในของระบบ เช่น
– Workstation
• จานวนของเวลาที่ใช้เพื่อทางานแต่ละงานให้เสร็ จสมบูรณ์
(ความเร็ วของ CPU + ความเร็ วของหน่วยความจาและ I/O)
– Main Frame Computer
• Throughput (จานวนของงานที่สามารถทาให้สมบูรณ์ต่อหนึ่ง
หน่วยเวลา)
Measures of Performance
• มีเครื่ อง X และเครื่ อง Y ถ้าประสิ ทธิภาพของ X มากกว่า Y จะได้
Measures of Performance
• ถ้า X เร็ วกว่า Y อยู่ n เท่า
• สมมติวา่ เครื่ อง A ทางานโปรแกรมใน 10 วินาที ในขณะที่เครื่ อง B
ทางานกับโปรแกรมเดียวกันใช้เวลา 15 นาที
• ดังนั้นเครื่ อง A เร็ วกว่าเครื่ อง B เท่ากับ 1.5 เท่า
Measures of Performance
• System clock คือเวลาที่ใช้โหลดข้อมูลก่อนจัดการกับข้อมูลนั้น เช่น
เวลาที่ใช้ส่งข้อมูลไปสู่อุปกรณ์ I/O
• Clock cycle คือเวลาที่นบั ตั้งแต่เริ่ มจังหวะหนึ่งไปจนถึงเริ่ มจังหวะถัดไป
• ความหมายของ clock cycle คือ clock period หรื อ time period ของ
clock เช่น 2 nanoseconds (2ns) (2x10-9 secs )
• Clock frequency = 1/clock period เช่น 500 MHz
• เช่น clock มี clock period เท่ากับ 100ns (100X10-9s) จะมี clock
frequency เท่ากับ 10 MHz (10X106Hz)
Measures of Performance
• เวลาเท่าไรที่ใช้ปฏิบตั ิงานโปรแกรม
CPU execution time for a program =
CPU clock cycles for a program x Clock cycle time
• หรื อ
CPU execution time for a program =
CPU clock cycles for a program / Clock rate
• CPU clock cycles
– Execution time ขึ้นกับจานวนของ instruction ที่โปรแกรมต้องการ
– CPU clock cycles = instruction count of a program x Average clock
cycles per instruction (CPI)
Measures of Performance
• Example
– สมมติวา่ มีเครื่ อง 2 เครื่ องซึ่งมี ISA เหมือนกัน เครื่ อง A มีเวลา clock
cycle เท่ากับ 1ns และ CPI เท่ากับ 2.0 สาหรับโปรแกรมหนึ่ง และ
เครื่ อง B มีเวลา clock cycle เท่ากับ 2ns และ CPI เท่ากับ 1.2 กับ
โปรแกรมเดียวกัน
– เครื่ องไหนที่เร็ วกว่าและเร็ วกว่าเท่าไร สมมติให้แต่ละเครื่ องปฏิบตั ิ
จานวนคาสัง่ เท่ากับ I คาสัง่
Measures of Performance
•
•
•
•
•
CPU clock cycles A = Ix2.0
CPU clock cycles B = Ix1.2
CPU time A = I x 2.0 x 1ns = 2 x I ns
CPU time B = I x 1.2 x 2ns = 2.4 x I ns
ดังนั้นเครื่ อง A เร็ วกว่าเครื่ อง B
Exec-timeB/Exec-timeA = 2.4/2 = 1.2
สาหรับโปรแกรมนี้ เครื่ อง A ทางานเร็ วกว่าเครื่ อง B 1.2 เท่า
Recall
• The Stored Program Computer
– 1943: ENIAC
• Presper Eckert and John Mauchly สร้าง general electronic
computer
• โปรแกรมเป็ นแบบ Hard-wired (กาหนดคาสัง่ ด้วย switch และ
cable)
– 1944: Beginnings of EDVAC
• มีการพัฒนาในด้านต่างๆดีข้ ึน รวมทั้งนาโปรแกรมเข้าสู่
หน่วยความจา
Recall
– 1945: John von Neumann
• เขียนรายงานเรื่ องแนวคิดของ stored program ซึ่งรู ้จกั ในนาม
First Draft of a Report on EDVAC
• ข้อเสนอเกี่ยวกับโครงสร้างของเครื่ องคอมพิวเตอร์ในรายงานนี้
ภายหลังเรี ยกว่า “von Neumann machine”
– a memory จัดเก็บทั้งคาสัง่ และข้อมูล
– a processing unit สาหรับประมวลผลทางคณิ ตศาสตร์
(arithmetric) และตรรกศาสตร์ (logical)
– a control unit สาหรับแปลความคาสัง่
For more history, see http://www.maxmon.com/history.htm
Historical Perspective
• ENIAC สร้างในระหว่างสงครามโลกครั้งที่สองเป็ น general purpose
computer เครื่ องแรกของโลก
– ใช้สาหรับคานวณการยิงลูกกระสุ นปื นใหญ่
– มีความยาว 80 ฟุตความสูง 8.5 ฟุตและกว้างหลายฟุต
– มี register แบบตัวเลขฐานสิ บจานวน 20 ตัวและแต่ละตัวมีความยาว
2 ฟุต
– หลอดสุ ญญากาศ 18,000 หลอด
– ปฏิบตั ิการบวกต่อวินาทีได้ 1900 ครั้ง
Historical Perspective
ENIAC
Harvard Mark I
Historical Perspective
John von neumann & EDVAC
Von Neumann Model
• แนวคิดที่สาคัญของ von Neumann model ในการประมวลผลทาง
คอมพิวเตอร์คือ
– โปรแกรม(program)และข้อมูล(data)ถูกจัดเก็บเป็ นลาดับของบิตอยู่
ในหน่วยความจาของคอมพิวเตอร์ท้ งั คู่ และ
– โปรแกรมถูกปฏิบตั ิงานเพียงหนึ่งคาสัง่ ในแต่ละครั้ง และอยูภ่ ายใต้
การควบคุมของ control unit
Von Neumann Model
Von Neumann Model
Von Neumann Model
•
•
•
•
•
Memory เก็บทั้งข้อมูล(data)และคาสัง่ (instruction)
Processing Unit ทาให้คาสัง่ บรรลุผล
Control Unit สร้างลาดับของคาสัง่ และแปลความคาสัง่ ต่างๆ
Input นาข้อมูลจากภายนอกเข้าสู่หน่วยความจา
Output สร้างผลลัพธ์ให้กบั ผูใ้ ช้
Von Neuman Model: Memory
• แต่ละ location มี address และ contents
– Address เป็ นรู ปแบบของบิตที่ไม่ซ้ าเพื่อใช้ระบุ location ใน
หน่วยความจา
– Content เป็ นรู ปแบบของบิตที่จดั เก็บอยูต่ ามที่กาหนดไว้ใน address
– Analogy เป็ นกล่องที่มีขนาดคงที่ ตาแหน่งแน่นอนแต่สามารถ
เปลี่ยนแปลง contents ได้
Von Neuman Model: Memory
• มีอาเรย์ท้ งั หมด 2k ตาแหน่งที่สามารถจัดเก็บบิตได้ แต่
ละอาเรย์มีขนาด m บิต
• Address
– เป็ น location ที่สามารถระบุที่ต้ งั เฉพาะได้มีขนาด
k-bit
• Contents
– คือค่าที่จดั เก็บอยูบ่ นแต่ละ location มีขนาด m-bit
Von Neuman Model: Memory
• Address Space:
– คือจานวนทั้งหมดของ memory location (boxes) ที่ปรากฏให้
สามารถใช้งานได้
– เช่น ถ้า address มีขนาด 28 บิตจะสามารถมี address space ได้ 228
locations
– เครื่ อง LC-3 มี address space จานวน 216 locations ดังนั้นจะใช้
address ขนาด 16 บิต.
Von Neuman Model: Memory
• Addressability (Byte vs. Word):
– Word คือหน่วยของข้อมูลที่ processing unit ใช้งาน ส่ วนมากจะ
ประกอบด้วยหลายๆไบต์ คาสัง่ (instruction) ต้องถูกจัดเก็บหรื ออ่าน
ขึ้นมาแล้วต้องสามารถอยูภ่ ายใน word ทั้งหมดได้และเข้าถึง
หน่วยความจาเพียงหนึ่งครั้ง
– Addressability คือจานวนไบต์ในหน่วยความจา ที่ใช้ในแต่ละครั้ง
ตาม address ที่กาหนดให้
Von Neuman Model: Memory
• ตัวอย่างเช่น ISA ที่มีขนาด word เท่ากับ 2 ไบต์
– ดังนั้นกล่องจาเป็ นต้องยืดขยายออกจากเดิม
• ถ้าเราส่ งซองจดหมายที่มีความกว้างมากกว่าปกติ เราอาจจะนา
กล่องจดหมายเดิมมารวมกับกล่องจดหมายอีกกล่อง เพื่อให้
สามารถรองรับซองจดหมายนี้ได้
• ดังนั้นตอนนี้เราจะอยูส่ องทางเลือกคือ
– 1. หมายเลขของกล่องยังคงเดิมแต่ทุกครั้งที่ได้รับหมายเลข จะได้รับ
หมายเลขกล่องมาเป็ นคู่เสมอ (byte addressability)
– 2. หรื อเราเปลี่ยนหมายเลขกล่องใหม่ท้ งั หมด ให้หมายเลขใหม่กบั แต่
Von Neuman Model: Memory
• Accessing memory via the MAR & MDR
– การอ่าน
• Content ของ address ที่กาหนดไว้ใน Memory Address Register
จะถูกเขียนเข้าสู่ Memory Data Register
– การเขียน
• อันดับแรกค่านั้นจะนาไปเก็บที่ Memory Data Register อันดับที่
สองสิ ทธิในการเขียนจะมีข้ ึน อันดับสุ ดท้าย content ของ MDR
จะถูกนาไปเขียนลง address ที่ได้กาหนดไว้ใน Memory Address
Register
Interface to Memory
• Processing unit มีวิธีในการส่ งข้อมูลไปสู่หน่วยความจาหรื อดึงข้อมูล
จากหน่วยความจาอย่างไร
– MAR: Memory Address Register
– MDR: Memory Data Register
• Also called MBR: Memory Buffer Register
Von Neuman Model: Memory
• Operation พื้นฐานคือ
– LOAD
• อ่านค่าจาก location ในหน่วยความจา
– STORE
• เขียนค่าลง location ในหน่วยความจา
Interface to Memory
• To LOAD a location (A):
– 1. Write the address (A) into the MAR.
– 2. Send a “read” signal to the memory.
– 3. Read the data from MDR.
• To STORE a value (X) to a location (A):
– 1. Write the data (X) to the MDR.
– 2. Write the address (A) into the MAR.
– 3. Send a “write” signal to the memory.
Von Neumann Model
Processing Unit
• Processing Unit จะสามารถทางานได้ตอ้ งประกอบด้วยอะไรบ้าง
– ต้องประกอบไปด้วย unit หลายส่ วน แต่ละ unit มีฟังก์ชนั ที่ทางาน
ซับซ้อนโดยเฉพาะไม่ซ้ ากับ unit อื่น
– อย่างน้อยที่สุดต้องประกอบไปด้วย Arithmetric & Logic Unit
(ALU) และ general purpose register (GPRs)
– ขนาดของบิตที่ operation ของ Processing Unit สามารถรองรับได้
และอาจใช้เรี ยกเป็ นขนาด word ของเครื่ องก็ได้
Von Neumann Model
Processing Unit
• ALU หน่วยประมวลผลทางคณิ ตศาสตร์และตรรกศาสตร์
– ปฏิบตั ิ operation ขั้นพื้นฐานเช่น add subtract and not เป็ นต้น
– โดยทัว่ ไป แต่ละครั้งที่ทางานจะใช้ขอ้ มูลทั้งหมดของ word
– แต่ในบางครั้งอาจจะใช้ขอ้ มูลเพียงบางส่ วนของ word เช่น หนึ่งบิต
• Registers:
– พื้นที่จดั เก็บ word เพียงเล็กน้อยที่เร็ วที่สุด on-board
– ในระหว่างประมวลผลข้อมูลจะมาพักที่ register ก่อนนาข้อมูลไป
จัดเก็บ
– อยูใ่ กล้กบั ALU จึงมีความเร็ วในการเข้าถึงมากกว่า RAM
Von Neumann Model
Processing Unit
• Control unit รับผิดชอบ action ทั้งหมดที่มีในคาสัง่ ให้สามารถ
ปฏิบตั ิงานได้อย่างเรี ยบร้อย
– จะมีการดึง (fetch) และถอดรหัส (decode) และจัดการ input ตามการ
ร้องขอจาก memory unit, processing unit และ I/O unit อย่าง
เหมาะสม
– Control unit ติดต่อกับ memory ผ่านทาง Program Counter (PC)
และ Instruction Register (IR)
Von Neumann Model
Control Unit
•
•
•
•
ควบคุมการปฏิบตั ิงานของโปรแกรม
Instruction Register (IR) จัดเก็บคาสั่งปั จจุบนั
Program Counter (PC) จัดเก็บ address ของคาสั่งถัดไปที่จะถูกปฏิบตั ิงาน
Control unit ทาหน้าที่
– อ่านคาสัง่ จากหน่วยความจา
• Address ของคาสั่งอยูใ่ น PC เรี ยบร้อยแล้ว
– แปลความหมายของคาสั่ง แล้วสร้างสัญญาณ (signal) ที่จะบอกให้
ส่ วนประกอบต้องทาอะไรบ้าง
Von Neumann Model
Input and Output
• อุปกรณ์สาหรับส่ งข้อมูลหรื อดึงข้อมูลจากหน่วยความจาคอมพิวเตอร์
(peripherals) และอยูห่ ่างจาก CPU มาก
• แต่ละอุปกรณ์จะมี interface ของตัวเอง
– มีกลุ่มของ register เช่นเดียวกับ MAR และ MDR ของ memory
– Keyboard มี data register (KBDR) and status register (KBSR)
– Monitor มี data register (DDR) and status register (DSR)
• บางอุปกรณ์เป็ นได้ท้ งั input และ output
– เช่น disk network
• มีโปรแกรมซึ่งควบคุมการเข้าถึงอุปกรณ์ มีชื่อว่า driver
The LC-3
as a von
Neumann
machine
ที่มาของ slide
• Walid A Najjar & Brian J. Linard, University of California, Riverside.
• Prof. Bhagi Narahari, George Washington University, Washington
D.C.