Chapter 12 Microprocessor without Interlocked Pipeline Stages (MIPS)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
กระบวนการ (Process).
Advertisements

สถาปัตยกรรมแบบ SIMD ในรูปแบบอื่นๆ
Central Processing Unit
หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
ขั้นตอนการแปลงไฟล์.
Computer Programming I
Functional components of a computer
Introduction to Cache Memory Systems
Page: 1 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ ผศ. บุรินทร์ รุจจน พันธุ์.. ปรับปรุง 19 ตุลาคม 2555 Introduction to Batch.
Computer Components โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้
โครงสร้างระบบคอมพิวเตอร์
หน่วยประมวลผลกลางและหน่วยความจำ Central Processing Unit and Memory
Microprocessor and Interfacing Introduction
Microprocessor and Interfacing
Introduction to Microprocessors II
Computer Components CPU: Intel Core i5-3210M (2.50 GHz, up to 3.10 GHz , 3MB cache) Display: 15.6 inch (1366x768) High Definition (1080p) LED Display Graphic:
Microprocessor and Interfacing
AMD ตระกูล K6. ซีพียู K6 ได้รับการออกแบบมา เพื่อใช้งานกับแอพพลิเคชัน 16 บิตและ 32 บิต เมื่อใช้กับ Windows 95 หรือ Windows NT แล้ว จะได้ ประสิทธิภาพความเร็ว.
Chapter 2 Computer Evolution and Performance
Microprocessor and Interfacing Introduction to Microprocessors
สถาปัตยกรรม AMD K10.
เทคโนโลยี CPU วินัย ปุริเกษม นักวิชาการคอมพิวเตอร์ หัวหน้าฝ่ายเทคโนโลยีสารสนเทศ.
Microprocessor and Interfacing Introduction to Microprocessors
คุณลักษณะของคำสั่งภาษาเครื่อง ชนิดของตัวถูกดำเนินการ
Introduction to Computer Organization and Architecture Instruction Formats ภาษาเครื่อง รูปแบบคำสั่งเครื่อง.
รายละเอียดของการทำ Control และ Forwarding สำหรับ MIPS Pipeline
จัดสเปคคอมพิวเตอร์เพื่องานด้านMultimedia และเล่นเกม+ใช้งานทั่วไป
Introduction to Microprocessors II
เนื้อหาที่จะเรียน คอมพิวเตอร์คืออะไร ระบบคอมพิวเตอร์ ส่วนประกอบของเครื่องคอมพิวเตอร์ ระบบปฏิบัติการ อินเตอร์เน็ต Microsoft Office.
Latency เวลาทำงานโดยนับจากเริ่มขอข้อมูล จนถึงได้รับข้อมูล bit แรก.
Lecture 04: Understanding Performance
วิชา ฮาร์ดแวร์ และการซ่อมบำรุงคอมพิวเตอร์ ง33222
ฮาร์ดแวร์และซอฟต์แวร์คอมพิวเตอร์
หน่วยที่ 3 องค์ประกอบของคอมพิวเตอร์
เทคโนโลยีสารสนเทศเพื่อชีวิต
CPU.
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์
Microprocessor and Interfacing
Intel Quick Path (QPI).
การทดสอบซอฟต์แวร์ Software Testing
ฮาร์ดแวร์และยูทิลิตี้เบื้องต้น
คอมพิวเตอร์คืออะไร      คอมพิวเตอร์เป็นองค์ประกอบหนึ่งของเทคโนโลยีสารสนเทศที่เอื้อประโยชน์ต่อการแสวงหาสารสนเทศ เป็นอุปกรณ์อิเล็กทรอนิกส์ ที่สามารถรับโปรแกรมและข้อมูล.
บทที่ 2 ระบบคอมพิวเตอร์
CPE 332 Computer Engineering Mathematics II
เทคโนโลยีสารสนเทศเพื่อการเรียนรู้ (Information Technology for Life)
คอมพิวเตอร์เบื้องต้น
องค์ประกอบของระบบคอมพิวเตอร์
Floppy Disk Floppy Disk หรือ Diskkette เป็นอุปกรณ์
Introduction to Microprocessors
Computer Systems ผู้สอน ชัชวิทย์ อาภรณ์เทวัญ
ความรู้เบื้องต้นเกี่ยวกับคอมพิวเตอร์และเทคโนโลยีสารสนเทศ
การสร้างบุคลิกภาพในงานบริการอาหารและเครื่องดื่ม
บทที่ 3 การจัดการหน่วยความจำ (Memory Management)
Bios & Chipset.
Object-Oriented Analysis and Design
โครงสร้างระบบคอมพิวเตอร์
ระบบตัวเลข, Machine code, และ Register
TOT e-Conference Bridge to Talk : Simple & Clear.
บทที่ 2 เทคโนโลยีคอมพิวเตอร์
ส่วนประกอบของคอมพิวเตอร์ (Personal Computer : PC)
องค์ประกอบของคอมพิวเตอร์ และภาษาซี
ความรู้พื้นฐานเกี่ยวกับคอมพิวเตอร์และการประมวลผลข้อมูล (Introduction to Computer and Data Processing) บทที่ Business Computer & Information.
บทที่ 2 ระบบคอมพิวเตอร์สำหรับงานกราฟิก
Thread outline What is thread?
Introduction to GNU/Linux
CPU and I/O bursts.
Memory Management Ex. C = A + B A typical instruction-execution cycle
Virtual Memory Why? The need of memory more than the available physical memory. Process 3 Physical Memory Process 2 Process 1 Process 4.
ใบสำเนางานนำเสนอ:

Chapter 12 Microprocessor without Interlocked Pipeline Stages (MIPS) Not to be confused with Millions of instructions per second

Computer Architecture

เปิดเผยแค่ instruction set ให้บริษัทอื่นทำแข่งได้ ไม่เปิดเผย architecture ข้างใน

Instruction set ของ MIPS ดูผ่านๆ ก็พอ

Ford Assembly Line https://www.youtube.com/watch?v=cTZ3rJHHSik

อาจจะมี hardware มากกว่า 1 ชิ้นก็ได้ ก็จะรับผ้าได้ทีละหลายๆ ถัง ทำ pipeline ได้

A1 B1 C1 D1 E1 A2 B2 C2 D2 E2 A3 B3 C3 D3 E3

(A1 + B1) * (C1+D1) / E1 (A1 + B1) * (C1+D1) E1 (LATCH) (A2 + B2) * (C2+D2) E2 (A2 + B2) (C2 + D2) (LATCH) A3 B3 C3 D3 E3

เริ่มอ่าน register ในเวลาครึ่งหลัง Data ที่จะเขียนมาในครึ่งแรก (แต่เขียนเมื่อจบ cycle)

IM / IF = instruction memory / fetch Reg = register (read) ALU = arithmetic logic unit DM = data memory Reg = register (writer)

LATCH Data Dependency OK

อันนี้ก็ต้อง forward ด้วย !!! Forwarding

Forwarding

ต้อง forward จาก Reg ไม่ใช่ LATCH ทำไม่ได้

ไม่มีรายละเอียดเหมือนในรูปก่อนหน้า ว่า forward จากไหน

Stall เพราะไม่รู้ว่าจะ taken หรือไม่

Execution Out of Order Instructions ใน pipeline ไม่วิ่งแซงกัน วิ่งแซงกันไม่ได้ ทำหลายๆ instruction ไปพร้อมๆ กันได้ใน processor (core) เดียว เรียกว่า “Superscalar” ต้องมีฮาร์ดแวร์สำหรับทำ IF, ID, EX, MEM, WB หลายชุด Scoreboard Tomasulo’s algorithm ใช้ hardware หาคำสั่งที่ไม่ dependent กัน คำสั่งไหน execute ได้ก็ทำไปเลย วิ่งแซงได้ แบบนี้ออกแบบ hardware ยากมาก ในความเป็นจริง instruction จะรอ cache และ I/O นานมาก instruction ที่มาทีหลังอาจจะแซงไปได้

Very Long Instruction Word (VLIW) ใช้ compiler หาคำสั่งที่ไม่ dependent กัน ให้ execute ไปพร้อมกัน แบบนี้ compiler ต้องฉลาดมากๆ hardware ไม่ซับซ้อน ใช้ OS ที่คอมไพล์มาสำหรับ ITANIUM

Clock rate สูง ไม่ใช่ perf ดี Intel Itanium i7 X86 (32 บิต), X64 (64 บิต) Itanium Benchmark สำหรับการคำนวณ integer และ floating point number น่าจะใช้แค่ 1 core แอพ + เกม คณิต + วิทย์ Clock rate สูง ไม่ใช่ perf ดี 8.73 10.42 ต้อง normalize ด้วย clock rate 10.76 11.64 Itanium เกิดคอขวด (bottleneck) ที่ memory ต้องใช้ cache ใหญ่มาก หา instructions มา execute พร้อมกันทีละมากๆ ไม่ได้ compiler ทำดีที่สุดแล้ว สมรรถนะสู้ i7 ไม่ได้ ดังนั้นไม่พัฒนา Itanium ต่อ ไปทำ multicore ดีกว่า

สาเหตุที่ VLIW ใช้ cache ใหญ่มาก (อ คิดเองนะ ไม่ยืนยันว่าถูก) VLIW ไม่สามารถ tradeoff ขนาด cache ได้ เนื่องจาก compiler กำหนดมาแล้ว ว่าต้อง execute คำสั่งอะไรบ้าง ถ้า cache ไม่พอ performance จะตกลงอย่างรวดเร็ว จึงต้องให้ cache มาก Superscalar ยืดหยุ่นกว่าเพราะ execute เมื่อมี hardware resource ว่าง (ไม่ได้กำหนดไว้ล่วงหน้าว่าจะต้อง execute คำสั่งไหนพร้อมกัน) เมื่อใช้ cache มากขึ้น ก็จะ stall และ execute ให้ช้าลงอัตโนมัติ (ไม่ fetch คำสั่งใหม่เข้าไป) หรือพูดอีกอย่างคือ compiler มันไม่ได้คิดถึงเรื่อง cache effect VLIW เลยได้ performance เท่ากับ Superscalar (ต้อง normalize clock rate) แต่ VLIW ใช้ cache มากกว่าถึง 4 เท่า !!!

16 cores ที่จริงแสดง #multi-threads หรือ logical processor

สำหรับเครื่องพิมพ์แบบ dot matrix Grey Scale Image B&W Image 0 Black 255 White 1 – 254 Grey 0 Black 1 White สำหรับเครื่องพิมพ์แบบ dot matrix

Thread n + 1 ต้องไม่วิ่งแซง Thread n (มีเครื่องมือให้ใช้ lock) อธิบายย่อๆ 1 thread คือ มีฟังก์ชัน main 1 อัน 2 thread คือ มีฟังก์ชัน main 2 อัน … แต่ละ thread execute พร้อมกัน

เวลารวมทั้งหมดทุกๆ อย่างที่ใช้รันโปรแกรม (บางทีจะวัดเฉพาะ CPU time) จะได้ประโยชน์จาก multi-core โปรแกรมเกอร์ต้องออกแรงเขียนโปรแกรม CPU ไม่ทำให้อัตโนมัติ Applications ที่ใช้ต้องเขียนมาสำหรับ multi-core ถึงจะได้สมรรถนะที่ดีขึ้น ปัจจุบัน OS และ Apps เขียนมาสำหรับ multi-core แล้ว ใช้ notebook ที่มี 2 cores

Billion Transistors on a Chip 2010

The Knights Ferry die, Aubrey Isle The Knights Ferry die, Aubrey Isle. Die size on KNF, at 45nm, was rumored to be roughly 700mm sq. 32 cores.

Multi-threading (in one page) 1 physical processor (core) Registers 1 ชุด PC 1 ตัว PC 1 ตัว 1 logical processor (core) 1 logical processor (core) รอ I/O รอ I/O HW ที่ช่วย switch ระหว่างโปรแกรม หรือ thread ใน 1 clock cycle รอ I/O 2 cores (no multi-thread) ได้สมรรถนะดีกว่า เร็วขึ้น 2 เท่า เทียบกับ 1 core 1 core (multi-thread, 2 threads) เร็วขึ้น 30% เทียบกับ 1 threads รอ I/O Support แค่ 2 threads ถึงมี thread อื่นพร้อมก็ทำไม่ได้

มี 2 threads คือ Main() และ RunMe() ถ้ามี 1 core ก็ทำทีละ thread ถ้ามี 2 core ก็ทำพร้อมกัน 2 threads ได้

Java ใช้ synchronized