Multiprocessor รายชือ่ 1. ชุมพร ถาวรโชติวงศ 2. เฉลิมวุฒิ ขุนจาศาล 3. ธํารงคเดช รักษวงศ 4. อุษณี เลีย้ งประยูร 5. นองนุช ภิลวรสกุลชัย 6. สุคนธ ตัง้ โชคทรงชัย 7. คมสัน ธีระวณิชตระกูล 8. อุทยั วรรณ แลมศักดิ์ 9. ปญญาผล วรรณราช
41510014 41510016 41510021 41510023 41510026 41510042 41510058 41510064 41510079
The turning away from the conventional organization came in the middle 1960s, when the law of diminishing return began to take effect in the effort to increase the operational speed of a computer. …Electronic circuits are ultimately limited in their speed of operation by the speed of light… and many of the circuites were already operation in the nanosecond rage. Bouknight et al., The Illiac IV System [1972] …sequential computer are approaching a fundamental physical limit on their potential computational power. Such a limit is the speed of light… A.L. DeCegama, The technology of Parrallel Processing, Volume I (1980) …today’s machines… are nearing an impasse as technologies approach the speed of light. Even if the components of a sequential processor could be made to work this fast, the best that could be expected is no more than a few million instruction per second. Mitchell, The Transputer: The Time Is Now [1989]
Introductions ดังคํากลาวตั้งแตตนที่เปนภาษาอังกฤษนั้น ไดกลาวถึงขอดีใน สถาปตยกรรม Uniprocessor ไดใกลถงึ จุดจบทีไ่ ดมกี ารยืดเยือ่ มากหลายครัง้ สําหรับคําที่จะมาตอบโต ขอกลาวหาขางตนนัน้ เราไดเฝาสังเกตมาในชวง ป 1985 ถึงป 1995 ความสามารถของ Uniprocessor ไดพัฒนาขึ้นมาจาก Microprocessor ทีมคี วามสามารถสูงสุดในสมัยทีย่ งั เปน คอมพิวเตอร แบบทรานสิเตอร ในชวงระหวางปลายศตวรรษที่ 1950 และชวงตน ศตวรรษที่ 1960. บนพื้นฐานเหลานี้ผูเขียนไดเชื่อวา Parallel Machines จะสามารถ ทํางานไดมากมายในอนาคต ตามความเห็นนีไ้ ดถกู แบงออกเปน 3 ขอใหญ คือ 1.) ตัง้ แต Microprocessor ยังคงเปนสวนสําคัญของ Uniprocessor ทางตรรกะในการเพิม่ ประสิทธิ ภาพ Processor ตัวเดียวโดยการเพิม่ จุดเชือ่ มตอใหสามารถใช Microprocessors หลาย ๆ ตัวได มันเปนวิธีการที่จะประหวัดมากกวาที่จะพัฒนา Processor ตัวใหมทด่ี กี วา 2.) อนาคตไมชดั เจนหรือไมในทางสถาปตยกรรม ไดกา วไปอยางชา ๆ ในการเปลีย่ นปลง โดยมี แรงสนับสนุนใหมกี ารพัฒนาอยางรวดเร็วในทางดานประสิทธิภาพโดยเริม่ จาก ป 1985 เรือ่ ยมา 3.) การดําเนินการพัฒนาโปรแกรมเปนไปอยางชา ๆ ไปบนเสนทางที่ ลําบากทีแ่ พรออกไปทัว่ ในการใช Parallel Machines กลาวคือ โปรแกรม (Software) ไม มีใครคอยพัฒนาโปรแกรมของตัวเองใหใช Parallel Machines มากนัก. ผูเขียน(หนังสือ) ไดเชือ่ วาการพัฒนาทีร่ วดเร็วในทางดานประสิทธิภาพจะดําเนิน การตอไปอยางนอยสุดก็ถงึ ป 2000 (Millennium) อยางไรก็ตามในการเปลีย่ นแปลงไป อยางชา ๆ อาจจะนําใหอยูต อ ไปไดอกี ยาวนาน ถึงแมวา จะยากทีจ่ ะคาดการณ ถาการ พัฒนาเปลีย่ นแปลงเปนไปอยางชา ๆ ในการเขียนโปรแกรมใช Uniprocesors ในการ พัฒนารูปแบบของสถาปตยกรรมของ Multiprocessor อาจจะเปนการดีทจ่ี ะเพิม่ ความสน ใจใหมากยิง่ ขึน้ เรามีปญ หาถึง 2 อยาง อยางแรกคือ การออกแบบ Multiprocessor เปนงานทีใ่ หญ และมีสว นทีแ่ ตกตางกันออกไป และ มีสว นทีแ่ ตกตางกันนีม้ ากและบางสวนยังเพิง่ เริม่ กับความคิดที่กําลังชวยกันพัฒนาและมีบางสวนที่ลมแหลวไปมากกวาจะประสบความ สําเร็จ
A Taxonomy of Parallel Architectures ความคิดที่เริ่มใช Processors หลาย ๆ ตัวมารวมกัน เพื่อพัฒนาประสิทธิภาพและ ความสามารถในอนาคตของคอมพิวเตอร เมือ่ 30 ปทแ่ี ลว Flynn ไดเสนอความคิดในตัว อยางรูปแบบของคอมพิวเตอรทแ่ี บงแยกออกเปนประเท ซึง่ มีประโยชนในปจจุบนั นี้ เขา ไดมองถึงความคลายคลึงกันของชุดคําสั่ง และทางเดินของขอมูลที่จําเปนตองใชชุดคํา สั่งในสวนประกอบของเครื่องไดแบงแยกเปน 4 ประเภทดังนี้ 1. Single instruction stream, single data stream (SISD) คือ Uniprocessor. 2. Single instruction stream, multiple data streams (SIMD) ชุดคําสัง่ ทีเ่ หมือน กันจะถูกดําเนินการโดย Processors หลาย ๆ ตัว ที่ใช Bus ตางกัน Processor แตละตัวจะมีขอมูลของตัวเองแตจะมี Instruction memory และ Control Process ทีร่ บั และสงขอมูลตัวเดียว 3. Multiple instruction streams, single data streams (MISD) ไมคอ ยนิยมกัน มากนักในปจจุบนั แตอาจจะนิยมกันในอนาคตก็ได 4. Multiple instruction streams, multiple data streams(MIMD) Processor แต ละตัวจะมี Instruction และ Data เปนของตัวเองแตบางครัง้ ก็จะมีการสงถึง กันไดบาง มันเปนรูปแบบทีไ่ มคอ ยจะสวยงาม แตเครือ่ งบางเครือ่ งก็มกี ารนํามาผสมกัน เพื่อ ใหเกิดประโยชนในการสรางโครงสราง ในชวงตน ๆ ของ Multiprocessor รูปแบบของ SIMD ไดมีการนํามาใชในชวง ทศวรรษที่ 1980 แตในชวงหลายปที่ผานมานี้ MIMD ไดมีการนํามาใชเพื่อสราง Multiprocessor กันมากขึน้ องคประกอบหลักทีไ่ ดนาํ MIMD มาใชมี 2 ขอดังนี้ 1. MIMD มีความยืดหยุน ทัง้ ในดาน Hardware และ Software. MIMD สามารถ ทีจ่ ะนํามาใชกับเครื่อง PC ทัว่ ไปไดในการทํางาน Application เดียวโดยมี ประสิทธิภาพสูง และยังใชกบั เครือ่ งทีใ่ ชงานหลาย ๆ โปรแกรมพรอม ๆ กัน
2. MIMD สามารถทีจ่ ะสรางเปน Microprocessor ตัวเดียวทีท่ ง่ั ประหยัดและมี ประสิทธิภาพสูงได ในปจจุบนั นี้ Microprocessor ไดใชหลักการนีเ้ ปนตัว สรางทีจ่ ะพบเห็นไดงา ยก็คอื Workstation หรือ Single-Processor Severs. MIMD ที่เปนอยูในขณะนี้ไดแบงออกเปน 2 ประเภท ขึ้นอยูกับ จํานวน Processor ที่ใชโดยสามารถจะระบุบ Memory Organization และ รูปแบบของ Interconnect ได โดยเราไดอา งถึงโดย Memory Organization ของมันเอง ประเภทแรก เราจะเรียกวา Centralized shared-memory architectures มี Processors อยางนอย 12 ตัวทศ กลางทศวรรษที่ 1990 สําหรับ Multiprocessor ทีมี จํานวน Processor นอยมันสามารถใช Processor ใช Centralized Memory และ Interconnect รวมกันโดย Bus ตัวเดียวกัน ทีม่ ี Caches ทีม่ จี านวนมาก ํ Bus และ Single
Memory สามารถทีจ่ ะสละ ความตองการ Memory ของ Processor ทีม่ นี อ ยได เพราะวามี Main Memory เดียว ทีม่ กี ารเขาออกเปนเวลา จากทุก ๆ Processor หรืออาจจะเรียกวา UMAs for uniform memory access. ดังรูปตัวอยางขางรางนี้
ประเภทที่สอง คือ ในประเภทนีจ้ ะมี Memory สวนตัวเพราะมีจํานวน Processor มากเพือ่ ใหไมเปนการเสียเวลาในการนําขอมูลจากสวนกลางเพราะ Processor มากถาจํา เปนตอง ขอใช Memory สวนกลางจะทําใหเกิดความลาชาของการสงขอมูลดวยดังรูปตัว อยางขางลางนี้
การแบง Memory ออกเปน Node มีจดุ ประสงคหลักอยู 2 อันคือ 1). ถาการสง ผานขอมูลอยูแค Local Memory ก็จะลดความถีใ่ นการสงขอมูลไปและรับจาก Memory. 2). ชวยลดเวลาในการเขาถึงขอมูลในหนวยความจําแบบ Local Memory ขอดี 2 ขอที่ได พูดมานี้จะทําให Processor ทีม่ ขี นาดเล็ก มีความเร็วสูง และตองการใหมีความถี่ในการ ส งขอมูลไปยัง Memory และ การเขาถึงขอมูลในหนวยความจํ าชา ขอเสียของ สถาปตยกรรมแบบแบง Memory คือจะมีการสงขอมูล จาก Processor ถึง Processor มี ความยุง ยากและมีการเสียเวลาในการติดตอกันเพราะ Processor ไมจาเป ํ นตองมีการแยง Centralized Memory กัน I/O ก็ถกู แบงเหมือนกับ Memory ทีแ่ ตละ Node ก็จะมี Memory และ I/O อยูด ว ย ใน Multiprocessor และ ก็จะมี Processor อยูดวยโดยติดตอซึ่งกันและกันดวย
เทคโนโลยีทแ่ี ตกตางกัน ขณะที่ Cluster (ระบบนี)้ ของ Multiprocessor ใน Node ทีม่ ที ง้ั Memory และ การติดตอกันแบบ Network อาจจะมีประโยชนในแงของราคาทีป่ ระหยัด Models for Communication and Memory Architecture Multiprocessor ทีม่ ขี นานใหญกต็ อ งใช Memory หลายตัวรวมกันโดยไดแบงตาม Processor ทั้งหลาย มีรูปแบบของสถาปตยกรรมในการติดตอสงขอมูลกันระหวาง Processor 2 วิธี ในทางปฏิบตั ขิ องการแยก Memory สามารถทําไดโดย Processor จอง เนือ้ ทีไ่ วสําหรับเก็บขอมูลใน Local Memory ทีใ่ ดก็ได ไดเรียกเครือ่ งนีว้ า Distributed shared-memory (DSM) หรือ Scalable shared-memory architecture ในความหมายของ การ แบงบัน Memory ก็คือที่วางไดมีการแบงกัน นั้นก็คือ ที่อยูทางกายภาพของ Processor สองตัวอางอิงที่เดียวกัน ในการแบง Memory นัน้ ไมไดหมายความวามี Centralized Memory อันเดียว ในการเปรียบเทียบกันของ Centralized Memory ของแต ละเครือ่ ง จะรูจ กั ในชือ่ วา UMAs (uniform memory access) และเครื่อง DSM จะรูจ กั ใน ชื่อวา NUMAs (non-uniform memory access) โดยเวลาในการเขาถึงขอมูลทัง้ หมดขึน้ อยูกบั ทีอ่ ยูข องขอมูลใน Memory ทางเลือกอีกทางหนึง่ ก็คอื ทีอ่ ยูท ว่ี า งสามารถทีจ่ ะประกอบขึน้ จากทีว่ า งของสวน ตัวหลาย ๆ ที่ ทีซ่ ง่ึ ไมปะติปะตอกันและไมเปนทีข่ อง Processor ทีอ่ ยูไ กล ในความจริง เครือ่ งทีม่ ี Processor ที่มีท่ีอยูท างกายภาพทีเ่ ดียวกันหมายถึงทีอ่ ยูใ น Memory ทีต่ า งกัน Processor แตละตัวจะมี Memory ของตัวเองโดยแยกจาก คอมพิวเตอร หรือเรียกวา Multicomputer เครื่องเหลานี้สามารถจะแยกกันเปนคอมพิวเตอรคนละตัวกันไดโดยมี การเชือ่ มตอกันในระบบเครือ่ งขายภายใน ดวยการรวมกันของที่วาง นี้ก็คือการตั้งการติดตอกันของเครื่องจักร สําหรับ เครื่องที่มีการแบงที่วาง โดยทีว่ า งนัน้ สามรถทีจ่ ะใชตดิ ตอกันของขอมูลหมายความวา สามารถที่จะทําการเก็บหรือดึงขอมลู ขึน้ มาได สําหรับเครือ่ งทีม่ ที ว่ี า งทีซ่ อ นกันมากมาย ขอมูลสามารถติดตอกันไดโดยตรงผานเปนคําพูดระหวาง Processor ดังนัน้ เครือ่ งแบบนี้ จะเรียกวา Message passing machines.
ในการพูดคุยกันผานเครื่อง การติดตอจะถูกสงไปยังรูปแบบของคําพูดทีต่ อ งการ การกระทําหรือรับขอมูลดวยการติดตอแบบเครือขายอยางงาย ๆ ดังตัวอยางตอไปนี้ เมือ่ Processor ตัวหนึง่ ตองการทีจ่ ะเขาถึงขอมูลใน Memory ทีอ่ ยูไ กล สามารถทีจ่ ะสงขอ ความใหขอมูลนั้นทําการเก็บหรืออานขึน้ มาได ในสถานการณ นี้ ขอความสามารถที่จะ สั่งได หรือเรียกวา remote procedure call (RPC). เมือ่ จุดมุง หมายของการดําเนินการได รับขอความ เปนการทํางานรับ เก็บหรือ แสดงผล Processor ทีท่ ําหนาที่ควบคุม Memory นั้นก็จะทําตามขอความทันที และจะสงผลรับกลับมาเปนขอความเหมือนกัน ลักษณะ การสงขอมูลที่ดําเนินการสงขอความขอรองและรอจนกระทั่งไดรับคําตอบกลับมาเรียก วา Synchronous ระบบของ Software ตองถูกสรางมาเพือ่ จะสงและรับขอความ รวมถึง การสงขอมูลที่ซับซอน หรือการสงคากลับมาทีต่ อ งแสดงใหชดั เจน การติดตอสามารถเกิดขึ้นจากมุมมองของคนเขียนขอมูลมากกวาผูอานและสิ่งห ลานีส้ ามรถมีประสิทธิภาพมากเมือ่ Processor สรางขอมูลที่ Processor ตัวอืน่ ก็ตอ งการ ดวยในสถานการณนี้ขอมูลสามารถที่จะสงไดโดยตรงถึงผูที่ตองการโดยไมตองมีการ รองขอมากอน มันบอยครัง้ ทีส่ ามารถทีจ่ ะทําไดดังนี้ขอความมักสงมาตามคําขอของผูรับ มากกวาในเวลาที่ตองการ บอยครั้งที่ผูรับจะคอยรวบรวมถามันพยายามที่จะรับขอมูล กอนที่จะไดมีการสงมา ในอีกสถานการณหนึง่ ผูอ า นอาจจะตรวจสอบวาขอความทีค่ อย กอนที่จะพยายามเก็บขอมูลทีไ่ ดรบั ถึงแมวา ผูส ง ก็จะตองเตรียมการรวมรวมถาผูร บั ยังไม ไดรับขอความ ขอความจะสงอยางสะดวก ในเครือ่ งหลายเครือ่ งทีต่ อ งการมากมายอยาง ยุตธิ รรม Performance Metrics for Communication Mechanisms 3 วิธใี นการวัดความสามารถทีส่ าคั ํ ญในการติดตอของเครือ่ ง 1. Communication bandwidth อัตราการสงสัญญาณการติดตอทีเ่ หมาะสมขึน้ อยูก บั Processor, Memory และ อัตราการสงสัญญาณติดตอซึ่งกันและกัน มากกวากฎเกณฑในการติดตอของเครือ่ ง อัตราการสงสัญญาณถูกแบงออกเปน 2 สวนเทา ๆ กัน กําหนดโดยการติดตอซึง่ กัน
และกันของเครือขาย โดยสัญญาณเขา และ ออกของ Node เดียว มันเปนสวนสําคัญ ของการแบงอัตราการสงสัญญาณ ทีม่ ผี ลทัง้ คูใ นการออกแบบสถาปตยกรรม ภายใน ของ Node และโดยการติดตอกันของเครือ่ ง เมือ่ มีการติดตอเกิดขึน้ ภายใน Node ทีม่ ี ความเกีย่ วกันในการติดตอไดพยายามทีจ่ ะเปนเจาของ แตจะถูกขัดขวางโดยสัญญาณ ติดตอเขาและออก มันจะถูกตั้งใหมีจํานวนจํากัดที่แนนอนในอัตราสัญญาณการติด ตอ ขอจํากัดนีจ้ ะชากวาที่ Network หรือ Memory จะสามารถทําได ระหวางการ ครอบครองอาจจะมีองคประกอบทีไ่ ดรบั ความเสียหายสําหรับการติดตอทัง้ หมด ไม เวนแมแตการรองขอสัญญาณเขา และออก และผลกระทบของความเสียหายในอัตรา การสงสัญญาณทั้งหมดขึ้นอยูกับขนาดของขอความ 2. Communication latency สูตรการคํานวณ Sender overhead + Time of flight + Transport latency + Receiver overhead Time of flight และ Transport latency ไดถกู วัดโดยการติดตอกันระหวางระบบเครือ ขาย คาเสียเวลาของ Software และ Hardware ในการสงและรับขอความใหญวัดได โดยการติดตอของเครือ่ ง และ เครือ่ งมือ การเขาถึงขอมูล (Latency) มีผลตอ ประ สิทธิภาพและความยากงายในการโปรแกรมใหใชกับ Multiprocessor ถึงแมวา Latency จะไมไดแสดงออกมาอยางชัดเจน มันจะมีผลโดยตรงกับประสิทธิภาพแต จะทําให Processor เกิดความยุง ยาก หรือไมกท็ าให ํ เสียเวลา Processor คาเสียเวลา และการครอบครอง มันเปนสิง่ ทีค่ อ นขางจะใกลเคียงกัน ตัง้ แตคา เสียเวลาในรูปแบบ ตาง ๆ ไดถูกพัวพันกับ Nodeและคาความเสียหายจากการครอบครอง อันทีซ่ ง่ึ เปน การจํากัดความถีข่ องสัญญาณ กุญแจสําคัญของการติดตอกับเครือ่ ง อาจมีผลโดยตรง กับคาเสียเวลาและการครอบครอง 3. Communication latency hiding ทําอยางไรถึงจะสามารถซอน การเขาถึงขอมูลของเครื่องโดยการซอนสัญญาณ การติดตอดวยการคํานวณหรือดวยการติดตอแบบอืน่ ถึงแมวาการวันนี้จะไมคอยงาย เหมือนกับการวัด ทั้ง 2 วิธีทไ่ี ดกลาวมา มันเปนลักษณะพิเศษทีส่ ําคัญที่สามารถ แสดงถึงคุณภาพไดโดยการวัด Running Time ของเครือ่ ง ดวยการใชการติดตอเขาถึง ขอมูลชุดเดียวกัน แตแตกตางกันในการสนับสนุนการซอนการเขาถึงขอมูล ขณะที่
Hiding Latency มันเปนความคิดทีด่ แี ตมนั เปนการเพิม่ ความจุของ Software และ ทายทีส่ ดุ คือคนเขียนโปรแกรม การวัดประสิทธิภาพนี้มีผลโดยลักษณะพิเศษของการติตอที่ตองการการนํ าไปใช ขนานของขอมูลในการติดตอก็ไดมกี ารเห็นไดชดั ตัง่ แตมนั เกิดผลในทางตรงของการเขา ถึงขอมูลและอัตราความถี่ของสัญญาณเชนเดียวกับผลของวิธีที่แตกตางไปในการซอน การเขาถึงขอมูล ในทํานองเดียวกัน ในการติดตอโดยทัว่ ไปก็มผี ลตอคาการการกําหนด และการปองกันและ คาเสียเวลาของการขอการติดตอ ในทางปกติ เครื่องที่มีองค ประกอบที่ดีการขอการติดตอกับขอมูลดวยขนานเล็กก็เหมือนกับขนานใหญ และรูป แบบที่ไมปกติก็จะเหมือนกับรูปแบบที่ปกติ ทัง้ หมดนีม้ คี วามยืดหยุน และประสิทธิภาพ สําหรับลักษณะของงานทีก่ วางขวางออกไป Advantages of Different Communication Mechanisms ขอดีของการติดตอกับเครือ่ งเหลานี้ มีไวสาหรั ํ บการติดตอรวมใชหนวยความจํามี ดังตอไปนี้ ! เครือ่ งจะเขาใจดวยกันไดในการใช Multiprocessor สวนกลาง ในการติดตอ การแบงหนวยความจํา ! การโปรแกรมก็จะทําไดงา ยเมือ่ รูปแบบการติดตอระหวาง Processor มีความ เหมือนกันในระหวางการทํา Execution ! คาเสียเวลาในการติดตอทีน่ อ ยลงและการใชอตั ราความถีข่ องสัญญาณทีด่ เี มือ่ การติดตอมีขนาดเล็ก นีเ้ ปนตามปกติของการติดตอและการใชการยายหนวย ความจํ าของเครื่องมือการปองกันใน Hardware ที่ดีกวาเขาไปถึงระบบ Operating System ! ความสามารถที่ใช Hardware-controlled Caching ในการลดความถีข่ องการ ติดตอระยะไกลโดยรองรับระบบ Caching สําหรับทุก ๆ ขอมูล ทีท่ ง้ั มีการ แบงและของตัวเอง ในการ Caching จะทําใหมีการลดคาการเขาถึงและชวง ชิงในการเขาถึงขอมูลทีแ่ บงกันได
ขอดีของการใชการสงขอความถึงกัน (Message-Passing) ! Hardware สามารถทําไดงาย โดยเฉพาะอยางยิง่ โดยการเปรียบเทียบกับการ การวัดโดยเครื่องมือในแบงขอมูล ทีร่ องรับการรวมกันของ Caching ของขอ มูลทีอ่ ยูไ กลได ! การติดตอไดแสดงออกมาเดนชัดบังคับใหผูเขียนโปรแกรม (Programmer) และ ตัว Compiler ใหเคารพในการติดตอ ในการทํางานนีต้ อ งทําใหผเู ขียน โปรแกรม (Programmer) และ ตัว Compilerเขียนอยางระมัดระวัง การออกแบบของรูปแบบการติดตอสามารถสรางบนรูปแบบของ Hardware ทีไ่ ม แนวา องรับบนเครือ่ งได การรับรองการสงผานขอความบนการแบง Memory มันเปน การงายมาก เพราะวา ขอความเปนปจจัยในการสิง่ ขอมูลจาก หนวยความจําหนึง่ ไปอีกที่ หนึ่ง มากสงขอความสามารถ เพิม่ โดยทําการลอกจากหนึง่ สวนจากทีว่ า งของ Address ไปอีกที่หนึ่ง สาเหตุของความยากจากจํานวนขอความทีม่ ากมายทีอ่ าจจะเกิดปญหาเสน ทางผิด และ การทีไ่ มมเี กณฑในจํานวนของ Memory ในระบบมันก็คอื การหันไปขาง หนาตามปกติเพือ่ จะรับขอมูลมาจาก Block มันก็คอื Cache Block ความยากเหลานี้ สามารถทีจ่ ะทําใหผิดพลาด ไดดว ยจุดขององคประกอบขนานเล็กใน Software หรือ ดวย การทีไ่ มมจี ดุ ประสงคของการใชจานวน ํ Hardware ขนาดเล็ก การรับรองประสิทธิภาพของการแบง Memory บน Hardware สําหรับการสงผาน ขอความมันเปนการยากมาก ปราศจากการรับรองทีแ่ นชดั ของ Hardware สําหรับการ แบง Memory การแบงหนวยความนําทั้งหมดมันอางถึงความตองการที่จะยุงเกี่ยวกับ Operating System ทีจ่ ะจัดการการแปลง Address และ การปองกัน Memory พรอมกับ การยาย Memory อางไปสูการสงขอความและรับ การเก็บขอมูลและแสดงขอมูล ปกติจะ ใชจานวนข ํ อมูลเล็ก ๆ ดังนัน้ การเสียคาการติดตอในระดับสูงใน Software จะมีการเขม งวดในการจํากัดขอบเขตของ Application สําหรับองคประกอบพืน้ ฐานของ Software ในการแบงขอมูลที่จะยอมรับได บนขอบเขตของการวิจยั คือการสํารวจเพือ่ จะใหรปู แบบ Software-base เปนทีย่ อมรับและ Software-base mechanism ใชไดสําหรับขัน้ ของการติด
ตอระดับสูง หนึง่ ในปญหาทีต่ รงทีส่ ดุ คือการใช Virtual Memory ของเครือ่ งในการแบง วัตถุประสงคในระดับเดียวกันเทคนิคนีเ้ รียกวา Shared virtual memory ในการแบงหนวยความจํา (Distributed-memory) ของเครือ่ ง รูปแบบของหนวย ความจําและการติดตอกับเครื่องจะรูกันในเครื่อง ตนแบบของการแบงหนวยความจํา เครือ่ งสรางดวยการสงผานขอความ ตัง้ แตมนั สิง่ ทีง่ า ยและ นักออกแบบหลายคน และ นักวิจยั หลายคนไมเชือ่ ในการแบง Address Space สามารถสรางดวยการแบงหนวยความ จํา เมื่อไมนานมานี้ การติดตอแบงหนวยความจํา ไดมกี ารรับรองในความจริงของรูป แบบของทุกเครือ่ ง ๆ สําหรับเมือ่ ราว ๆ กลางทศวรรษที่ 1990. Hardware ติดตอกับ เครือ่ งจะรับรองในเครือ่ งขนานใหญ (Massively Parallel Processor, or Mpps) โดยปกติ จะตองมี Processor มากกวา 100 ตัวขึ้นไป ก็ไมแน การแบงขอมูล การสงผานขอความ และ ลักษณะทีใ่ กลเคียงกันทัง้ หมด เหลานีค้ อื ตัวยืนยัน แมจะมีสญ ั ลักษณทส่ี ําคัญของ MPPs ดังนัน้ เครือ่ งเหลานีเ้ ปนสวนเล็ก ๆ ของความตองการ และอาจจะไมมีผลในทาง หลักของเครือ่ งดวยการผานของ Processor ตาง ๆ ถึงแมวาหนวยความจําสวนกลางของเครือ่ งใช Bus ในการติดตอซึง่ กันและกัน มันยังคงแบงกันในเงื่อนไขขนาดของความตองการ การแบง Shared-memory ของเครือ่ ง มันเปนตามสวนเพิม่ ธรรมดาของ Multiprocessor สวนกลางทีแ่ บงความตองการ Challenges of Parallel Processing อุปสรรคทีส่ ําคัญ 2 อยางทีอ่ ธิบายไดดว ยกฎของ Amdahl ในการสราง Parallel Processing Challenging. อยาง แรก ตองทําตามขอจํากัดของความสามารถของ Parallelism ในโปรแกรม และ อยางทีส่ อง เกิดจากความสัมพันธของคาการติดตอระดับ สูง ขอจํากัดในความสามรถของ Parallelism สรางความยากในผลของความเร็วทีส่ งู ใน Parallel Machine Amdahl’s Law is
1
Speedup = Franction Enchanced + (1 − Franction Enchanced ) Speedup Enchanced
ในการทาทายอนที่ 2 ที่เกี่ยวกัน การเขาถึงขอมูลขนาดใหญของการเขาถึง Parallel machine ในระยะไกล ในเครือ่ งทีย่ งั คงมีการติดตอของขอมูลระหวาง Processor อาจมีคาอยูระหวาง 50 clock cycles ถึง 10000 clock cycles ขึ้นอยูก บั ระบบการติดตอ ของตัวเครือ่ ง ชนิดของการติดตอซึง่ กันและกันในระบบ Network และ ขนาดของเครื่อง ดังในตารางขางลางนี้แสดง round-trip delays การเอากลับมาจากหนวยความจําทีอ่ ยูไ กล สําหรับ หลาย ๆ เครือ่ งที่ มีความแตกตางกันของ Parallel machines Machine SPARCCenter SGI Challenge Cray T3D Convex Exemplar Ksr-1 Cm-5 Intel Paragon IBM SP-2
Communication Interconnection Processor mechanism network count Shared memory Bus ≤ 20 Shared memory Bus ≤ 30 Shared memory 3D torus 32 – 2048 Shared memory Crossbar + ring 8 – 64 Shared memory Hierarchical ring 32 – 256 Message Passing Fat tree 32 –1024 Message Passing 2D mesh 32 – 2048 Message Passing Multistage switch 2 – 512
Typical remote memory access time 1 µs 1 µs 1 µs 2 µs 2 – 6 µs 10 µs 10 – 30 µs 30 – 100 µs
Characteristics of Application Domains ในบทกอนหนานีเ้ ราพิจารณาเกีย่ วกับประสิทธิภาพและลักษณะพิเศษของ application กับความเขาใจลึกซึง้ ของผลรวมขนาดเล็กในโครงสรางของ Application เพื่อชวยในความเขาใจเกีย่ วกับเรือ่ งประสิทธิภาพของ Uniprocessor เชน cache และ pipeline ความรูท ว่ั ๆไปของapplicationจะพบไดบอ ย ๆ ในตัวประมวลผลทีค่ ลายคลึงกัน อยางไรก็ตามเกิดการเพิม่ ขึน้ ของประสิทธิภาพ เชนการ load balance ซึง่ เกิดขึน้ ในเวลา เดียวกันและความไวในการเขาถึงหนวยความจําซึง่ บอยครัง้ มันขึน้ อยูก บั ภาษาระดับสูง
ของ application ลักษณะนีร้ วมถึงการทีข่ อ มูลกระจายไดอยางไร โครงสรางของอัลกอริ ทึ่มทีค่ ลายคลึงกัน ทีว่ า งและเวลาในการเขาถึงขอมูล เพราะฉะนั้นในจุดนี้ใชเวลาในการ ดูความแตกตางของการโหลดซึง่ เราจะใชสาหรั ํ บการวิเคราะประสิทธิภาพในบทนี้ ในสวนนี้จะพูดถึงการสรุปรายละเอียดเกี่ยวกับความแตกตางของขอบเขตของ 2 การทํางานของmultiprocessor ในแตละโปรแกรมทีค่ ลายคลึงกันและmultiprocessorจะ รวมถึงการทํางานของระบบปฏิบตั กิ าร ในหัวขออื่น ๆกลุม ของ workload คือ database , fileserver , และในดานระบบการทํางาน โครงสรางทีเ่ หมือนจริงของ workload และ ความละเอียดแมนยําในจังหวะของmultiprocessorรวมถึงการทํางานของทุก ๆ ระบบ ปฏิบัติการ เปนความซับซอนอยางทีส่ ดุ พวกเราสามารถทําอะไรไดกับประสิทธิภาพ ของเครือ่ งมือทําแบบ ในอนาคตรูปแบบการพิมพของหนังสือจะประกอบดวยลักษณะ พิเศษของ workload ที่มีบางระบบการทํางานทีค่ ลาคลึงกันและระบบหนวยความจําของ ฐานขอมูลและการดําเนินการของ workloadซึง่ จะคลายกับการทํางานของ workload ของ multiprogramขนาดใหญซง่ึ รวมถึงการทํางานของระบบปฏิบตั กิ าร สําหรับในปจจุบนั พวกเรามีความพอใจกับการพิสูจนเชน multiprogramming workload Parallel Application Application workload ที่คลายคลึงกันประกอบขึน้ ดวย 2 application และ 2การ ทํางานหลัก kernels จะแยก FFT ( fast fourier transformation ) และ LU ออกเปนสวน ๆ ซึง่ สามารถเลือกไดเพราะวาโดยทัว่ ๆไปมันจะแสดงการใชเทคนิคใน applicationและ รูปแบของความมีประสิทธิภาพของลักษณะพิเศษของ application ทีค่ ลายคลึงกันจํานวน มากในการเพิ่มขึ้น kernelsมีcodeขนาดเล็กซึง่ พวกเราสามารถเขาใจถึงสถาปตยกรรมทีม่ ี ลักษณะพิเศษ 2 application ทีเ่ ราจะใชในบทนีค้ อื Bearn และ Ocean ซึง่ ทัง้ 2 ตัวนีม้ ี ความสําคัญแตเปนสิง่ ทีย่ ากมากของการคํานวณทีค่ ลายคลึงกัน เราจะอธิบายสรุปแตละ application และ kernel และลักษณะพิเศษขั้นพื้นฐานของคุณสมบัติของความคลายคลึง กันและการติดตอ เราสามารถอธิบายไดวา ปญหาถูกแบงออกเปนสวน ๆ ไดอยางไร สําหรับการกระจายการใชหนวยความจํารวมกันของเครือ่ งจักรแนนอนขอมูลจะถูกแบง แยกซึ่งเราจะอธิบายไดวา มันเปนสิง่ ทีไ่ มจําเปนสําหรับเครือ่ งจักรซึง่ มันมีการรวมของ หนวยความจําแตละตัวในระบบ เดียว
THE FFT KERNEL Fast Fourier Tranformation( FFT ) คือ keykernel ใน application ซึ่งจะใชวิธี เฉพาะซึง่ เกิดขึน้ ในระยะขอบเขตการทํางานเดียวถึง fluid flow ซึง่ รูปแบบเฉพาะของ FFT application พวกเราไดเขียนในรูปของ Multi algorithmทีค่ ลายคลึงกันสําหรับคาทีค่ ลายคลึงกันของ FFT ซึง่ มันจะมีลาดั ํ บเวลา ในการทํางานสําหรับขอมูล n ตัวคือ n log n อัลกอริทม่ึ ทีใ่ ช high radix ( √n ) ซึ่ง นอยมากสําหรับการติดตอสือ่ สาร เครือ่ งวัดทีแ่ สดงในบทนีจ้ ะเก็บรวบรวมสําหรับหนึง่ ลานคําสัง่ ทีใ่ ชเปนอินพุท มีโครงสรางขอมูลขัน้ ตน3โครงสรางคือ Iinput output arrays ของขอมูลทีเ่ ริม่ ตนเปลีย่ นแปลงและคาของเมทริกเอกภาพซึง่ กอนทีจ่ ะคํานวณและใชในการอานเทานั้น ซึ่ง array ทัง้ หมดจะถูกรวมเปน เมทริกสีเ่ หลีย่ ม 6 ขัน้ ตอนของอัลกอริทม่ึ ประกอบดวยดังนี้ 1. TRANSPOSE DATA MATRIX 2. PERFORM ID FTT ON EACH ROW OF DATA MATRIX 3. MULTIPLY THE ROOT OF UNITY MATRIX BY THE DATA MATRIX AND WRITE THE RESULT IN THE DATA MATRIX 4. TRANSPOSE DATA MATRIX 5. PERFORM ID FFT ON EACH ROW OF DATA MSTRIX 6. TRANSPOSE DATA MATRIX คาขอขอมูลและคารากของเมทริกเอกภาพจะอยูใ นระบบปฏิบตั กิ ารในระหวาง การทํางานซึง่ อยูต ดิ กันเปนแถวดังนัน้ จึงลดกระบวนการทํางานแตละขึ้นตอนลงใน หนวยความจําของตัวมันเอง ในแถวแรกขแงรากของเมทริกเอกภพถูกรบกวนอยางหนัก โดยกระบวนการทํางานทัง้ หมดและบอยครัง้ ทีถ่ กู จําลองขึน้ อยางเชนทีเ่ ราทําระหวางขั้น ตอนแรกของอัลกอริทม่ึ ทีแ่ สดงไวซง่ึ เราจะติดตอสือ่ สารกันในขัน้ ตอนของการสับ เปลีย่ นเทานัน้ การติดตอสือ่ สารจะใชจํานวนขอมูลขนาดใหญ กําหนดคอลัมแตละคอ ลัมในแถวเขาสูp rocessorโดยทําเปนgroupในblockซึ่งมันจะถูกสับเปลีย่ นและแทนทีใ่ น ที่ต้ังของเมทริกทีค่ ณ ุ เตรียมไว ทุกๆตัวprocessorจะสลับblockของตัวเองและสงอีกblock หนึง่ ไปใหตวั ประมวลผลอยางไรก็ตามจะไมมกี ารนําคําแตละคํากลับมาใชในการสับ
เปลีย่ นกับcacheขนาดใหญ block จะถูกสงไปยังอีกblockหนึง่ การสับเปลีย่ นนีม้ ขี อ ดีคอื สามารถหาทีว่ า งภายในblockตนกําเนิดได THE LU KERNEL LU คือตัวประกอบในความหนาแนนของเมทริกและเปนตัวแทนของความหนา แนนในแนวเสนตรงเชนQR FACTORIZATION , CHOLESKY FACTORIZATION AND EIGENVALUE METHOD สําหรับเมทริกขนาด n × n มีเวลาในการทํางานคือ n 3 และทีค่ ลายคลึงกันคือ n 2ความหนาแนนของ LU – FACTORIZATIONมีประสิทธิ ภาพคือคือการblocking algorithm ซึง่ จะใชเทคนิคในบทที่ 5 มันจะไมไปทําใหcache มี ประสิทธิภาพสูงและการติดตอสื่อสารที่ชาหลังจากการblocking algorithm การคํานวณ หลักคือ การคูรเมทริกซึง่ เกิดขึน้ ขางในสุด เราสามารถเลือกขนาดของblockใหมีขนาด ใหญพอทีจ่ ะทําใหอัตราการผิดพลาดในcacheลดลงและเล็กเพียงพอทีจ่ ะใชเวลาในการ ทําใหกลับสูส ภาพเดิม ในสวนของการคํานวณทีค่ ลายคลึงกัน ความสัมพันธของblockที่ มีขนาดเล็ก ( 8 × 8 หรือ 16 × 16 ) จะนําไปสูความไมมาตราฐาน มีรายละเอียดสอง ขอทีส่ าคั ํ ญสําหรับการติดตอภายในprocessor 1. Block ของเมทริกจะถูกกําหนดให processor ใช 2 มิติของ n / 3 × n / 3 ( block มีขนาด B × B ) เมทริกของblockจะถูก จําลองเนือ้ ทีโ่ ดยมีขนาด p × p เมทริกขนาดใหญของblockในรูปของ cookie – cutter จน กระทัง่ blockทั้งหมดถูกจองใหกบั processor 2. การคูณเมทริกถูกดําเนินการโดยprocessorของblockเปาหมาย สําหรับในบทนีอ้ นิ พุท คือเมทริกขนาด 512×512 และใชblockขนาด 16×16 โดยทัว่ ๆไป code ของblock ของ LU FACTORIZATION ของเมทริกขนาด 2 มิตซิ ง่ึ ใชทว่ี า งรวมกันในarray 2 มิติ ในการ แทนมิติเพราะวาblockถูกจองเนือ้ ทีโ่ ดยแบงออกเปนสวน ๆและblockไมสามารถอยูต ดิ กันในทีว่ า งในarray 2 มิติ มันเปนการยากมากทีจ่ ะจองหนวยความจําในblockของ processor ของมันเอง การแกปญหาสามารถรับประกันไดวา blockจะถูกกําหนดให processorซึ่งจะจองเนีอ้ ทีต่ ดิ กันโดยใชarray 4 มิติ ( 1, 2 มิติ เฉพาะหมายเลขใน 2มิติของ block )
THE BARNES APPLICATION BARNES คือ เครือ่ งทีส่ นับสนุน BARNES-HUT n-body อัลกอริทม่ึ ทีจ่ ะใชแก ปญญาทีเ่ กิดขึน้ นี้ n-body algorithm จะมีผลกระทบระหวางจํานวน bodyขนาดใหญซง่ึ มันมีแรงกระทํา ระหวางกัน ในตัวอยางนี้ bodiesจะแทนการรวมกลุม ของ starและที่สาคั ํ ญเวลาในการ คํานวณจะถูกลดลงสูร ปู แบบทีส่ มบูรณทส่ี ดุ ของแตละการกระทําระหวาง bodiesซึง่ มี การ พัฒนาเทากับ n 2 , n bodies อัลกอริทม่ึ นําเอาขอดีของขอเท็จจริงทีบ่ งั คับใหหยุดนิง่ มานานแลว( ตัวอยางทีส่ าคั ํ ญของการจากไปของ 1 / d2 ซึ่ง d เปนระยะระหวาง bodies ทัง้ 2 ) The Barnes-Hut algorithm นําเขาสูข อ ดีของคุณสมบัตนิ โ้ี ดยการรวมกลุม ของ bodyซึ่ง มันหางไกลจากbodyตัวอืน่ ๆ ซึง่ เปนจุดศูนยกลางของนําหนั ้ กของกลุม ถาbodyมีความ ไกลเพียงพอจากทุก ๆbodyในกลุม ซึง่ จะทําใหเกิดความผิดพลาดเพียงเล็กนอย กลุม ของ โครงสรางในรูปแบบของ hierarchical ซึ่งสามารถแทนไดโดยใช tree ที่algorithmนี้ใชเวลาในการ run = n log n กับสวนทีค่ ลายคลึงกันของ n The Barnes-Hut algorithm ใช octree ( แตละnodeเพิ่มขึ้นถึง 8 children ) แสดง แทน 8 เหลียมในสวนของทีว่ า ง ซึง่ แตละnodeจะแทนการรวมกลุม ของbody ใน subtree ของrootที่nodeนัน้ ๆซึง่ พวกเราจะเรียกมันวา cell เพราะวาความหนาแนนของที่วางและ การใชแตละ body แทน deptของtreeทีแ่ ตกตางกัน treeจะถูกกัน้ ไวตอ 1 body ในการ คํานวณแรงทีก่ ระทําตอbody อัลกอริทม่ึ ในการคํานวณแรงสําหรับbodyจะเริม่ ที่ root ของtree สําหรับทุก ๆ โหนดในtree อัลกอริทม่ึ จะสิน้ สุดถาศูนยกลางของนําหนั ้ กของ ตัวแทนcellโดยโหนดทีเ่ ปนรากของsubtreeมันอยูไ กลอยางเพียงพอจากbody ดังนัน้ ถา โหนดภายใต subtreeมีจํานวนเกือบทัง้ หมดโดยจุดๆเดียวทีน่ าหนั ้ํ กของ cell และแรงจาก ศูนยกลางของนําหนั ้ กทีจ่ ะพยายามทําการคํานวณทีบ่ น bodyซึง่ ศูนยกลางของนําหนั ้ กไม อยูไ กลเพียงพอ cellจะตองเปดและแตละsubtreeจะตองถูกเขาถึง ระยะทางระหวางbody และcellมันจะทนตอความผิดพลาดซึ่งcellจะตองถูกเปด การคํานวณในชวงนี้มีอิทธิพล ตอ execution time ในที่นี้จะใชbodyขนาด 16 K
เงื่อนไขของผลกระทบทีค่ ลายคลึงกันของประสิทธิภาพบน Barnes – Hut มันทา ทายเพราะวามันจะกระจายไปทัว่ bodyในแบบทีแ่ ตกตางกันหมดและมีการเปลีย่ นแปลง ไปตลอกเวลาซึง่ มันจะทําการแบงการทํางานทั้งหมดของprocessor ซึง่ พวกเราสามารถ ทําไดโดยใช 2 คุณสมบัติคือ ระบบทีพ่ ฒ ั นาไปอยางชา ๆ เพราะวาแรงในการดึงดูดลดลง อยางรวดเร็วซึง่ มีความนาจะเปนสูง ในแตละ cellตองการเกีย่ วกับcellจํานวนเล็กนอยอืน่ ๆพวกนี้สามารถถูกใชในขั้นตอนสุดทาย treeสามารถถูกแบงโดยการจองของsubtreeใน แตละ processorการเขาถึงจํานวนมากตองการใชการคํานวณบน bodyในsubtreeจะเกิดขึน้ ที่ bodyอืน่ ๆ ในsubtreeตัง้ แตในระหวางการทํางานรวมกันของsubtreeทีแ่ ตกตางกัน ความ หนาแนนของที่วางของ cellจะตองการการเขาถึงของcellมากกวา ขนาดของsubtreeจะ ถูกจองในprocessorซีง่ เปนระดับพืน้ ฐานของการทํางานเทาทีม่ นั จะทําได( เชนมีcellอืน่ ๆอีกหลาย cell ทีต่ อ งการการเขาถึง ) มากกวาจํานวนของnodeในsubtree โดยการแบง ตัวแทนของoctree ซึง่ พวกเราสามารถไดรบั load balance ทีด่ ี และการอางถึงlocalityทีด่ ี ผลลัพธทอ่ี า งถึงของขอมูลจะกลับไปสูจ านวนระหว ํ างเลขของขอมูลซึง่ มันจะไมเปน โครงสราง The Ocean Application Ocean Simulate มีอทิ ธิพลตอ eddy และ boundary ในปจจุบนั สวนใหญ Oceanจะถูกใช ในวงแคบ Red-black Gass-Seidel คือ เทคนิคในการทําซํ้าซึง่ เปนจุดสีๆ ในgrid ความ มัน่ คงและความทันสมัยของพืน้ ฐานของแตละจุดทีอ่ ยูใ กลชดิ กัน Multigird Method จะ ชวยแกไขปญหาความแตกตางโดยใชการทําซํ้าของhierarchial grid แตละgrid ใน hierarchy จะมีจดุ เล็กกวาgridทีอ่ ยูด า นลางและในจํานวนgridทีต่ าลงมาทั ่ํ ้งหมด gridจะ เพิม่ ขึน้ อยางแนนอนในทีส่ ดุ ดังนัน้ อัตราการรวมกันระหวางความตองการ execution time ทีม่ ากขึน้ ตัง้ แตมจี ดุ ของขอมูลมากขึน้ วึง่ มันจะเคลือ่ นทีข่ น้ึ หรือลงใน hierarchyของ grid ซึ่งถูกใชสาหรั ํ บการทําซํ้าในรอบตอไปซึง่ ถูกกําหนดโดยอัตราการเปลีย่ นแปลงของ ขอมูล การประมาณคาความผิดพลาดที่ทุก ๆ เวลาในการทํางานทีถ่ กู ใชในการตัดสินใจ วาจะอยูท g่ี ridเดิมหรือไม การเคลือ่ นทีไ่ ปสู gridทีแ่ ยกวา หรือเคลือ่ นไปสูg ridสุดทาย เมื่อการทําซํ้าเขามาใกลจดุ เดีนวกันทีร่ ะดับทีด่ ที ส่ี ดุ ซึง่ มันจะมีความสามารถในการแก
ปญหา ในแตละการทําซํ้ามีคา n2 สําหรับการทํางานของgridขนาด n × n และความ คลายคลึงกัน Arrayทีเ่ ปนตัวแทนของgridแตละอันจะถูกจองแบบdynamicและขนาดของ ปญหาเฉพาะที่ Ocean basin เปนพิเศษทัง้ หมดเขาสู square subgrid ซึง่ มันจะถูกจองใน การแบงของทีว่ า งใน local memory ของแตละ processor ซึง่ มันจะรับผิดชอบสําหรับ subgrid สําหรับการวัดในทีน่ พ้ี วกเราจะใชอนิ พุททีม่ ขี นาด 130 ×130 gridpoint ซึง่ จะมี การทําซํ้า 5 ขั้นตอนใน 1 ครั้ง ตัง้ แตขอ มูลไดรบั การเปลีย่ นแปลงในระหวางการทํางาน การประมวลผลทัง้ หมดจะเกิดพรอมกันทีแ่ ตละขัน้ ตอนกอนการทํางานในครั้งตอไป การติดตอสือ่ สารเกิดขึน้ ทีข่ อบของsubgridจะถูกเขาถึงโดยsubgridทีอ่ ยูต ดิ กัน Computation / Communication for the Parallel Program กุญแจพิเศษในการติดตอเกีย่ วกับประสิทธิภาพของโปรแกรมทีค่ ลายคลึงกันซึง่ เปนอัตราสวนของการคํานวณในการติดตอสือ่ สาร ถาอัตราสวนมันสูงซึง่ มันหมายถึง การมีการประยุกตใชในการคํานวณมากของสําหรับแตละการติดตอสือ่ สาร ซึง่ พวกเรา จะเห็นไดในหัวขอที่ 8.1 การติดตอสือ่ สารนัน้ เปนสวนหนึง่ ของการคํานวณทีค่ ลายคลึง กันเนื่องจากเปนการคํานวณชัน้ สูงซึง่ เปนอัตราสวนทีม่ ปี ระโยชนในการสือ่ สาร ใน ขบวนการprocessingที่คลายคลึงกันซึง่ เราใหความสนใจกับอัตราสวนของการคํานวณ ในการติดตอสือ่ สารกันนัน้ สามารถเปลีย่ นแปลงเพิม่ ขึน้ ของแตละprocessor ขนาดของ ปญหาทัง้ คูซ ง่ึ เรารูว า อัตราสวนทีเ่ พิม่ ขึน้ ของprocessorนั้นจะถูกแยกออกโดยที่ applicationสามารถเพิม่ ความเร็วมากขึน้ เพราะวาบอยครัง้ ทีเ่ ราสนใจปญหาทีใ่ หญกวา ปญหาของการrunning มันเปนสิง่ จําเปนทีจ่ ะทําใหเราเขาใจวาจะทําอยางไรในการ เปลีย่ นอัตราของขอมูลใหมปี ระสิทธิภาพสูงสุด ความเขาใจทีว่ า เกิดอะไรขึน้ เกีย่ วกับจํานวนอัตราสวนของการสือ่ สารซึง่ เราจะ เพิ่มเขาไปในprocessor พิจารณาแยกกันระหวางการคํานวณและการสื่อสารที่จะเพิ่มเขาไปในprocessorแตละตัว หรือขนาดของปญหา สําหรับ application นี้จะแสดงใหเห็นใน 8.4 ในจํานวนของcomputation ตอ processor จะเกิดขึ้นในระยะยาวและจะเกิดขึ้นอยางชาๆ ซึง่ มันจะเปนการเพิม่ ขนาดของปญหาให
ใหญขึ้นมาตราฐานของการคํานวณคือ 0 ( ) ซึง่ เปนการเขียนalgorithmทีซ่ บั ซอน scaling ของการสือ่ สารจะมีความซับซอนมากขึน้ มันขึน้ อยูก บั รายละเอียดของalgorithm ซึง่ เรา จะอธิบายรายละเอียดของแตละapplication ในหัวขอที่ 8.4 อัตราสวนของการ computation ใน communication จะถูกคํานวณจากแตละงาน ที่พัฒนาขึ้นของการcomputation และ communication โดยทวไปอัตราการเกิดจะเพิม่ ขึน้ อยางชา ๆ กับการเพิม่ ขึน้ ของขนาดของขอมูลและอัตราการลดลงของการเพิม่ processor ซึ่งมันจะนําไปสูการทําใหมีประสิทธิภาพที่เพิ่มขึ้นเพราะวาจํานวนการสือ่ สารของ processor จะเพิม่ ขึน้ ซึง่ มันจะบอกเราถึงความรวดเร็วทีม่ นั สามารถจะบอกขนาดของขอ มูลไดซึ่งพราจะเพิ่มprocessorใหกบั อัตราของเวลาในการสือ่ สาร Multiprogramming and OS Workload สําหรับขนาดของ multiprocessorขนาดเล็ก ซึ่งเราจะพบไดใน multiprogram workload ซึง่ มันจะประกอบดวย 2 การทํางานของ user และ os การใช workloadถูกแบง ออกเปนอิสระจาก compile phase ของ Andrew benchmark compile phase จะประกอบดวย processorทีอ่ ยูต ดิ กัน 8 ตัว workload จะทํางานในเวลา 5.24 วินาทีบนprocessorทัง้ 8 ตัว จะสราง 203 process และ performing 787 disk ซึง่ ตองทําการบน 3 file systemทีแ่ ตกตางกัน workload จะทํางาน กับหนวยความจํา 128 MB และไมมีการกําหนด paging ขึน้ มา Workloadจะมี 3 สวนทีแ่ ตกตางกัน compiling the benchmark จะนําไปสูเ นือ้ หา ของการ compute การติดตัง้ object file ใน library และการเคลือ่ นยาย object fileในสวนสุดทายซึง่ เปน สวนมราสมบูรณทส่ี ดุ ทีจ่ ะถูกควบคุมโดย I / O ซึง่ มีหนาทีเ่ ปนสวนใหญ และ processor สวนใหญจะไมทํางาน APPLICATION
FFT
Scaling of computation N log n / p
Scaling of communication N/p
Scaling of computation-tocommunication Log n
LU Barnes
N/p N log n / p
Ocean
N/p
√n / √p Approximately √n( log n) / √ p √n / √ p
√n / √ p Approximately √n / √ p √n / √ p
รูป 8.4 สวนของการคํานวณ การติดตอสือ่ สาร และอัตราสวนของปจจัยในขอบเขตของ ประสิทธิภาพบนเครือ่ งจักรทีค่ ลายคลึงกัน ในตารางนี้ p จะถูกทําใหเพิ่มขึ้น processor และ n จะเพิ่มขึ้นในขนาดของชุดขอมูล อัตราสวนนีจ้ ะขึน้ กับprocessorพืน้ ฐาน สวน การคํานวณจะเพิ่มขึ้นที่ n ตามอัตราสวนทีก่ าหนดให ํ ซึ่งวิเคราะหจาก 0 ( ) และสวนทีล่ ดลงในระยะยาวเพราะ p นั้นเพิ่มขึ้น ในสวนของการสือสารจะมี ความซับซอนมากยิง่ ขึน้ ใน FFT ขอมูลทัง้ หมดจะกระทําตอกัน ดังนัน้ การติดตอสือ่ สาร จะเพิ่มขึ้นที่ n และลดลงที่ p ใน LU และ Ocean การติดตอสือ่ สารจะเปนในสวนของ block ดังนัน้ มันจะเกีย่ วของกับขนาดของชุดขอมูลซึง่ ไดสดั สวนกันทีจ่ ดุ n namely √ n สําหรับการติดตอสือ่ สารทีเ่ หมือนกันในสวนapplication ทัง้ 2 นี้ จะกลับ กับ √ p Barnesมีคณ ุ สมบัตทิ ซ่ี บั ซอนมาก เพราะการกระทํากันระหวาง bodies คาตัว เลขพืน้ ฐานของการทํากันระหวาง bodiesซึง่ มันตองการการติดตอสือ่ สารเพราะ √ n ในการเพิม่ ปจจัย log n ตองการความสัมพันธระหวาง bodies ซึง่ ตัวprocessor จะเพิ่มขึ้น และในสวนของการสือ่ สารจะกลับไปสู √ p เพราะวาเวลาที่ไรผลของขอมูลประสิทธิภาพของ instruction cache มีความ สําคัญใน work loadซึง่ ในบทนัเ้ ราจะสนใจในเรือ่ งประสิทธิภาพของ data cache สําหรับ ในบททีผ่ า นมาแลวการวัดการทําวานของ workload เราจะระบุไวในเรือ่ งของ I / O system I / O system Level 1 instruction cache
Level 2 data cache
Memory 32 K bytes,two – way set associative with a 64 – byte block, one clock cycle hit time 32 K bytes,two – way set associative with a 32 – byte
Level 2 cache
Main memory Disk system
block, one clock cycle hit time 1M byte unified, two – way set associative with 128byteblock, hit time 10 clock cycles Single memory on a bus with an access time of 100 clock cycles Fixed access latency of 3 me ( less than normal to reduce idle time )
รูป 8.5 แสดงถึงการหยุดในชวงexecution timeของ processor ทัง้ 8 ตัวซึง่ ใช parameter ที่แสดง ใน list execution timeจะหยุดลงในสวนประกอบ4สวนทีไ่ รผลของการ execution ในkernel mode จะไรผลใน loop ผูใชexecution ใน code ของผูใช การเกิดขึน้ พรอมกันของการexecution หรือการหยุดรอ สําหรับการทํางานพรอมกันในเวลาเดียวกันซึง่ สามารถเปลีย่ นแปลงการทํางานของ kernelใน os ซึง่ มันไมใชการเขาถึงพรอมกันทัง้ 2อยาง Mode Idle User Sync Kernel
% instruction executed 69 % 27 % 1% 3%
% execution time 64 % 27 % 2% 7%
รูปที่ 8.5 การแจกแจงของ execution time ใน multiprogram ทีค่ ลายกันในการทํา workloadในอัตาสวนทีส่ งู ของเวลาทีไ่ รผลซึง่ มันถึงกําหนดของ disk latency เมือ่ processor หนึง่ ตัวทํางาน การวัดขอมูลสําหรับ 2workload นีถ้ กู เก็บในระบบSimOS [ Rosenblum 1995 ] การทํางานจริงและการสะสมของขอมูลถูกทําโดย
M. Rosenblum , S.Herrod and E. Bugnion of Standford University using the simos simulation system ซึง่ ไมเหมือน workload ทีค่ ลายคลึงกันในงานวิทยาศาสตรซง่ึ multiprogramming workload มี instruction cache ซึง่ ไมมปี ระสิทธิภาพทางวิทยาศาสตร มันจึงนอยทีส่ ดุ สําหรับ OS instruction cache มี miss late สําหรับ 32 byte block size 2 associate ของ cache เปลีย่ นจาก1.7% สําหรับ 32 KM cache ไปสู0 .2 % สําหรับ 256 KB cache ระดับของผูใช instruction caches miss กะโดยการประมาณคา 1 – 6 ของ OS rateซึ่งเปลีย่ นแปลงขามขนาดของ cache Centralized Shared Memory Architecture Multis เปนสิง่ ใหมของคอมพิวเตอร พื้นฐานบน multiple microprocessor ซึง่ มัน มีขนาดเล็ก มีราคาตําและมี ่ ประสิทธิภาพสูง ของmicroprocessorทีใ่ หในการออกแบบ และการสราวงของโครงสรางcomputerซึง่ เสนอขอดีทม่ี คี วามสําคัญในเรือ่ งของการอุต สาหกรรม สวนของราคาและประสิทธิภาพและความนาไววางใจใจตระกูลของ computer multisมีความเปนไปไดทจ่ี ะเปนพืน้ ฐานในอนาคตซึง่ อาจจะเปน 1 ใน 5 ของ computer ยุคใหม อยางทีพ่ วกเราเห็นกันในบทที่ 5 ซึ่งมีการใชmulti level cached มากซึง่ สามารถ ติดตอกั main memory bandwidthซึง่ เปนความตองการของprocessor ถาหนวยความจําหลัก ตองการbandwidthจาก single processorก็จะกลับคืนสูส ภาพเดิม ซึ่งmultiprocessor อาจ จะสามารถใชmemoryทีเ่ หมือนกันรวมกันได ซึง่ มันถูกเริม่ ใชในป 1980 การสังเกตเห็น นี้รวมถึงลักษณะเดนทีป่ รากฏออกมา ความเคลื่อนไหวของmultiprocessor ซึง่ นักออก แบบจํานวนมากพยายามจะสรางmultiprocessorทีม่ ขี นาดเล็กเพือ่ ทีจ่ ะทําใหprocessor หลายๆตัวสามารถทํางานรวมกันไดในครัง้ เดียวซึง่ physical memory จะติตอ สือ่ สารกัน โดยใช bus เพราะวา processor ขนาดเล็กและการลดความสําคัญในขอกําหนดสําหรับ bus bandwidthซีง่ สามารถทําสําเร็จไดโดย cachedขนาดใหญเปนเครือ่ งจักรซึง่ ราคาของ มันมีผลมากซึ่งจะใชสาหรั ํ บการจัดเตรียมทําทนพัอยางเพียงพอ เมือ่ เร็ว ๆนีก้ ารออก แบบของเครือ่ งจักรตัวอยางสามารถรับ cpu และcache systemเอาไวบนboard ไดซึ่งมา
สามารถเสียบเขากับbus back plane ได เมือ่ ไมนานมานีก้ ารออกแบบใหมกี ารเพิม่ processor 4 ตัว ใน boardและในบางทีมนั จะเปนการเริม่ ศตวรรษใหม บางที่ multi processorจะอยูบ น single die configured ที่microprocessor รูปที่ 8.1 ในหนา 638 แสดง ถึงภาพอยางงายของmachine สถาปตยกรรมทีส่ นับสนุนcachingของสวนแบงทัง้ 2 และขอมูลสวนตัว ขอมูล สวนตัวจะถูกใชโดยprocessorในขณะทีก่ ารแบงขอมูลนัน้ ถูกใชโดยmultiprocessorซึง่ จุด สําคัญอยูท ก่ี ารเตรียมการสือ่ สารระหวาง processor ตลอดถึงการอานและการเขียนขอมูล เมือ่ private item เปน cache ซึง่ มันจะ ยายไปอยูc ache อืน่ การลดลงของคาเฉลีย่ ของเวลาในการเขาถึงขอมูลของ memory bandwidth ทีต่ อ งการ ตัง้ แตไมมี processorอื่นมายืมใชขอมูลใน cached คาทีแ่ บงอาจจะซํากั ้ นในmultiple cached จะเกิดการลงใน address latency และความตองการของ memory bandwidth การจําลอง นี้เตรียมจะลดลงซึง่ มันอาจจะเกิดการแบงขอมูลซึง่ เริม่ อานโดยmultiple processor อยาง พรอม ๆกัน การแบงขอมูลของ caching จะมีปญ หาใหมเกิดขึน้ ก็คอื cach coherence What is Mlutiprocessor cache coherence อยางทีเ่ ราเคยเห็นกันในบทที่ 6 เราไดรวู า สาเหตุของปญหาของ cache coherence สําหรับ I/O operation เริม่ ตัง้ แตการมองเห็นของ memory โดยตลอดของ cache มีความ แตกตางกันจากภาพ memory in I / O systemปญหาเดียวทีย่ งั คงเกิดขึน้ อยูใ นกรณีของ multiple processor เพราะวาภาพของmemory ถูกจับจองโดย processor 2 ตัวทีแ่ ตกตาง กันและมีคา ทีแ่ ตกตางกันสําหรับ locationเดียวกันซึง่ ในทีน่ จ้ี ะกลาวถึงโดยทัว่ ไปในเรือ่ ง ปญหาของ cache coherence Time
Event
0 1
CPU A read X
Chace content Chace content for CPU A for CPU B
1
Memory content for location X 1 1
2 3
CPU B read X CPU A store 0 into X
1 0
1 1
1 0
รูปที่ 8.6 ปญหาของ cache coherence สําหรับsingle memory location การอานและการ เขียนโดดย processor ทัง้ 2 ตัวคือ A และ B ในขั้นตนคาของcache ไมใชทั้ง 2อยาง และ X มีคาเทากับ 1 ซึง่ อยางไรก็ตามเราจะเขียนเขาไปไวใน cache การwrite-back ที่cacheจะ เพิม่ ขึน้ บางแตกจ็ ะเกิดความยุง ยากมากขึน้ หลังจากคาของXถูกเขียนโดย cache A และ memory ทัง้ คูจ ะบรรจุคา ใหมเขาไปแต cache Bไมสามารถจะทําไดและถา Bสามารถ อานคาของ X ไดมนั ก็จะรับคา 1 เขาไป ซึ่งพวกเราสามารถพูดไดวาmemory system คือ coherent ถาการอานทุก ๆครัง้ ของขอมูลกลับกัน การกําหนดอยางนีจ้ ะมีรปู รางหนาตาที่ แตกตางกันของ memory system ทัง้ คู คือ critical ซึง่ ถูกเขียนมาอยูใ นรูปshared-memory program รูปที่ 1 การเรียกcoherenceคาอะไรทีส่ ามารถสงกลับโดยการอานได รูปที่ 2 การ เรียก consistencyจะยุตลิ งเมือ่ การเขียนสงคากลับโดยการอาน เราเริม่ มาดูกนั ที่ coherenceเปนอยางแรก ระบบของขอมูลจะ coherent ถา 1. A read by a processor , P , to a location X that follow a write by p to X, with no write of X by another processor occuring between the write and the read by p , always return value written by p 2. A read by a processor to location x that follow a write by another processor to X return the written Value if the read and write are sufficiently separated and no another write to X occur between 2 access. 3. Write to the same location are serialized that is , 2 write to the same location by any 2 processor are seen in the same order by all processor . For example if the value is 1 and then 2written to a location , processor can never read the value of the location as 2 and then later read it as 1
คุณสมบัติงาย ๆขอแรกคือรักษาลําดับการทํางานของprogram ซึง่ เราคาดหวังวามันจะ เหมาะสมอยางแทจริงในuniprocessor 2 .กําหนดวาอะไรมีความหมายตอ coherentใน ภาพของmemory ถา processor สามารถทําการอานขอมูลอยางตอเนือ่ งซึง่ มันจะทําให พวกเราพูดวา memoryเปน Incoherent ความจําเปนของการเขียนอยางตอเนือ่ งจะละเอียดมากกวาแตมคี วามสําคัญพอพอ กัน ซึง่ คิดวาเรไมสามรถเขียนกันไดอยางตอเนือ่ งไดและprocessor p1 เขียนตาม location X โดย p2 ก็กําลังเขียนใน location X การเขียนตามลําดับสามารถรับประกันไดวา ทุก ๆprocessor จะมองเห็นการเขียนของขอ มูลตามลําดับโดย p2ที่จุดเดียวกัน ซึง่ ถาพวกเราไมเขียนขอมูลอยางตามลําดับมันจะเกิด ขึน้ ในรูปของ processor บางตัวสามารถมองเห็นการเขียนของ p2 ในครั้งแรกแลพครั้ง ตอมาจะมองเห็นการเขียนในรูปของpซึ่งจะดูแลคาทีถ่ กู เขียนโดย p1อยางไมมกี ําหนด ซึ่งทางที่งายทีส่ ดุ คือการหลีกเลีย่ งความยากในการเขียนอยางเปนลําดับ ดังนัน้ การเขียน ทั้งหมดจึงเกิดขึน้ ในlocationเดียวกันสามารถเห็นไดในรายการเดียวกันซึง่ ความเหมาะ สมนีถ้ กู เรียกวาwrite serialization อยางไรก็ตามความเหมาะสมทั้ง 3 ขอนี้จะสมารถ อธิบายและรับประกันไดโดยcoherence คาจะถูกเขียนตามลําดับความสําคัญ เราตองเขาใจวาพวกเราไมสามรถทําตามความตองการคือการรับคาของ X อยาง รวดเร็ว เปนคาทีอ่ า นสําหรับ X โดย processor ตัวอืน่ ๆ เชนการเขียน X บน processor ตัว1 มากอนการอานของ X บน processor ตัวอืน่ ดวยเวลาเพียงเล็กนองมันอาจจะเปนไป ไมไดมนการรับประกันวาการอานคากลับของขอมูลจะถูกทําขึ้น การเขียนขอมูลจะไม เกิดขึน้ ทีจ่ ดทางซายของprocessor มันจะเปนผลทีแ่ ทจริงเมือ่ คานัน้ คานัน้ ตองถูกเขียน และมองเห็นโดยผูอ า นซึง่ ถูกกําหนดโดย memory consistency model ซึง่ จะเปนหัวขอที่ จะพูดกันในสวนที่ 8.6 coherence and consistency ซึ่งcoherenceจํากัดการทํางานของ การอานและเขียนใน memory locationทีเ่ ดียวกันในระหวาง consistency ซึง่ จํากัดการ อานและเขียนและความเกี่ยวของในการเขาถึงmemory location อืน่ ๆซึ่งมีความงาย เพราะเราตองการการเขียนอยางไมสมบูรณจนกระทัง่ processor ทัง้ หมดจะมองเห็นผล กระทบของการเขียนและprocessor จะไมสามารถเปลีย่ นลําดับการเขียนของทุก ๆการ เขาถึงในmemory อืน่ ๆ ในการยอมให processor สามารถทํางานตามลําดับแตจะบังคับ ใหprocessor ทําการเขียนในprogramใหสมบูรณตามลําดับซึง่ มันเปนทางเลือกทีด่ ี
Basic Schemes for Enforcing Coherence ปญหาcoherent สําหรับmultiprocessor and I /O คือระหวางความคลาคลึงกัน ของตนกําเนิดซึง่ มีลกั ษณะพิเศษทีแ่ ตกตางกันซึง่ จะทําใหเกิดการแกปญหาซึง่ ตางกับ I/O ที่การจําลองmultidataซึง่ ไมคอยจะเกิดขึ้น เมือ่ ไหรกต็ ามทีเ่ ปนไปไดจะไดรบั การหลีก เลี่ยงที่ 1โปรแกรม จะทํางานบน multiprocessor จะตองการจําลองขอมูลในหลาย ๆ cached ใน coherence multiprocessor cache จะจดเตรียมการยายทีแ่ ละจําลองการแบง ของขอมูล cohernce cache จะเตรียมการยายขอมูลไปสูlocal cache และถูกใชในรูปแบบ ที่เห็นไดงาย การลดลงของการเขาถึงการแบงขอมูลซึง่ ถูกจองในระยะไกล coherent cache จะเตรียม การจองสําหรับการแบงขอมูลซึง่ จะเริม่ ทําอยางพรอมกันตัง้ แตcacheสามารถทําการจอง ขอมูลในlocal cache ซึ่งมันจะสนับสนุนการยายทีข่ องการจําลองซึง่ ประสิทธิภาพในการ เขาถึงขอมูลจะถูกแบง ดวยเหตุนค้ี อ นขางจะมีความหมายในการแกปญ หาโดยการหลีก เลีย่ งมันในsoftware multiprocessor ในสวนนอยจะรับเอาการแกปญ หาของhard ware โดยนํา protocol เขาสูการ maintain coherent caches protocol จะ maintain coherence สําหรับ multiple processor จะถูกเรียกวาcache coherence protocol และในการimplement a cache coherence protocol คือ tracking state ของทุก ๆการแบงของdata block ชนิดของprotocol มี2 ชนิดทีใ่ ชแตกตางกันในการเขา ถึงของการแบงtrack • Directory based – The sharing status of a block of physicak memory is kept in just one location , called the directory , we focus on this approach in section 8.4 when we discuss scalable shared memory architecture • Snooping – Every cache that has a copy of the data from a block of physical memory also has a copy of the sharing status of the block,and no centralized state is kept. The cache are usually on a share-memory bus , and all cache controller monitor or snoop on the bus to determine whether or not they have a copy of a block that is requested on the bus . We focus on this approach in this section
การsnooping protocolเริ่มเปนทีร่ จู กั กับmultiprocessor การใชmultiprocessor and cache จะถูกทําในการแบงmemory เดียวเพราะวาสามารถใช protocolกอนทีจ่ ะใช physical ติด ตอกันโดย busเขาสูm emory ซึง่ เขาถึง interrogate ของสถานะของ cacheกอน Alternative Protocol ในทีน่ ม้ี ี 2ทางทีใ่ ชในการอธิบายการmaintain cache ในลําดับของ subsectionซึ่ง วิธแี รกรับประกันไดวา processorจะไมนบั การเขาถึงของขอมูลกอนทีม่ นั จะเขียนลงไป ซึง่ ในทีน่ ส้ี าหรั ํ บprotocolจะถูกเรียกวา write invalidate protocol เพราะวามันจะยกเลิก การจําลองในแตละการเขียนอืน่ ๆ ซึ่ง protocolสวนมากจะอยูห า งไกลกัน สําหรับการ snooping and directory scheme ซึ่งรับประกันไดวา จะไมมกี ารจําลองการอานหรือการ เขียน เมือ่ การเขียนเริม่ ขึน้ cache ทัง้ หมดจะถูกจําลองขึ้นในแตละรายการ เราจะมองดูวา coherenceรับประกันไดอยางไรพิจารณาการเขียนโดยการอาน processor ตัวอืน่ ตัง้ แต การเขียนตามความตองการของการเขาถึงและทุกๆการจําลองตองเริม่ อานprocessorแต ละตัวดังนั้นเมื่อการอานเริ่มขึ้นขนการ miss cache จะทําใหเกิดการfetchขอมูลชุดใหม สําหรับการเขียนพวกเราตองเขียน processorซึง่ ไมนบั การเขาถึงขอมูล การปองกัน processor ตัวอืน่ ๆจากการเริม่ ทําการเขียนในเวลาเดียวกันถา processor ทัง้ 2 ตัวพยายาม ที่จะเขียนขอมูลทีเ่ หมือนกันซึง่ 1ใน จํานวนทัง้ หมดจะทําสําเร็จสาเหตุคอื processorแต ละตัวจะทําการจําลองขึ้นมาซึ่งสําหรับprocessorมันจะทําการเขียนอยางสมบูรซ ง่ึ มันจะ รับการจําลองของขอมูลใหมและจะตองทําการปรับปรุงคาใหทฃม เพราะฉะนั้นprotocol จะบังคับใหการเขียนมีลาดั ํ บ รูปที่ 8.7 จะแสดงตัวอยางของprotocol แตละตัวสําหรับการsnooping bus กับการwrite back ทีเ่ กิดขึน้ ใน cache Processor activity
Bus activity
Content of Content of Content of CPU A’s cache CPU B’s cache memory location X
CPU A read X Cache miss for X CPU B read X Cache miss for X CPU A write 1 Invalidation for to X X CPU B read X Cache miss for X
0 0
0 0
0
1 1
0 0
1
1
รูปที่ 8.7 แสดงตัวอยางการทํางานของ protocolแตละตัวบน snooping bus สําหรับ single cache block (X) กับการwrite balk in cache พวกเรารูว า cacheจะไมรับคาของ X และคาของ X ใน memory มีคาเทากับ 0 cpu และ memory จะแสดงคาหลังจากทีก่ ารทํางานของ processor and bus จะเกิดขึน้ อยาวงสมบูรณ A blank indicated จะไมทางานหรื ํ อไมเกิด cache copyเมือ่ มีการmiss ครัง้ ที่ 2เกิดขึน้ โดย B cpy A จะรับผิดชอบการยกเลิกคาจากmemory cached b and memory จะประกอบดวยคาของ X ทีถ่ กู update ทางเลือกในการทีท่ าให ํ protocol invalidate คือการupdate การจําลอง cached ของ ขอมูลเมือ่ itemนัน้ ถูกเขียน protocolนีจ้ ะถูเรียกวา write update or write broadcast protocol ซึง่ มันจะเก็บ Bandwidth requirent ของ protocolของชนิดนีซ้ ง่ึ มันจะเปน ประโยชนสาหรั ํ บ trackหรือไมนั้น ซึ่งไมมcี acheที่ไดรบั การแบงไวในทีน่ ซ้ี ง่ึ จะการ กระจาย update in every cache ในรูปที่ 8.8 จะแสดงตัวอยางของการ update protocol in operation ในระยะเวลา 10 ป ตัง้ แต protocolไดัรบั การพิจารณาการinvalidate เกขึน้ นัน้ ผูช นะการออกแบบสวนใหญ ถึงไดเขาใจวาทําไมถึงไดเริม่ กําหนดความแตกตางของประสิทธิภาพขึ้น
Processor activity
Bus activity
CPU A read X Cache miss for X CPU B read X Cache miss for X CPU A write 1 Write to X broadcast of X CPU B read X
Content of CPU A ‘s cache
Content of CPU B ‘s cache
Content of memory location X 0 0
0
0
0
1
1
1
1
1
1
0
รูปที่ 8.8 คือตัวอยางการupdate or broadcastซึ่ง protocol จะทํางานบน snooping bus สําหรับ single cache blockกับการwrite back cache cacheเริม่ แรกจะเก็บแตคา ของ Xไว ในmemory คือ 0 cpu และmemoryจะแสดงคาหลังจากที่ processor และ bus ทํางาน อยางสมบูรณ A จะแสดงวาไมมีการทํางานหรือไมมกี ารจองcache เมือ่ การเขียน cpu A ทัง้ คู ใน cache ใน cpu B cและmemory location ของ X ถูก update ประสิทธิภาพทีแ่ ตกตางกันระหวางการwrite update and write invalidate protocolจะเกิดขึน้ จากลักษณะพิเศษ 3 อยางดังนี้ • Multiple erite to thw same word with no inventing reads require multiple write broadcast in an update protocol. But only one initial invalidation in a write invalidate protocol . • With multiword cache block , each word written in a cache block require a write broadcast in an update protocol , while only the first write to any word in the block need to generate invalidate in d validation protocol. An invalidation protocol work on cache block, while an update protocol must work on individual work ( or byte,when byte are written) . It is possible to
try to merge write in a write broadcast scheme , just as we did for write buffer in chapter 5 , but the basic different remain • The delay between writing a word in one processor and reading the written value in another processor is usually less in a write update scheme, since the written data are immediately updated in the readrer’ cache ( assuming that the reading processor has a copy of the data ). By comparison ,in an invalidation เพราะวาbus และ memory bandwidth ซึง่ ปกติแลวมันcommodity ใน bus based multiprocessor การinvalidationจะกลับมาในprotocolซึ่งเปนตัวเลือกสําหรับการimplement สวนการ update protocol จะเปนสาเหตุของปญหาสําหรับ memory consistency model การลดลง ของประสิทธิภาพทีเ่ กิดขึน้ ของการupdateจะถูกกลาวถึงใน 3 จุด ในการออกแบบการนับ ของprocessorทีม่ ขี นาดเล็กมาก ๆ( 2 – 4 ) ที่ processorจะเกิดการ bandwidthขนาดใหญท่ี ตองการการupdateซึ่งมันอาจจะรับได อยางนอยการใชแนวทางการเพิม่ ขึน้ ของประสิทธิ ภาพของprocessor เกีย่ วกับการเพิม่ ของความตองการในbandwidth ซึง่ เราหวังวาการ update จะถูกใชบอยครั้งสําหรับเหตุนเ้ี ราจะสนใจเพียงการ invalidate protocol เทานัน้ Basic Implementation Technique การดูแลในการimplementing ของ invalidate protocol ในเครือ่ งจักรทีม่ ขี นาดเล็ก ซึง่ มันจะมีประสิทธิภาพในการinvalidate ของ bus ประสิทธิภาพในการinvalidate ของ processorทําใหไดมาซึ่งการเขาถึงของbus เพราะการกระจายทีอ่ ยูข องการinvalidate บน bus processor ทัง้ หมดจะทําการsnoopอยางตอเนือ่ งบน bus watching address ตัวcheck processorที่ address บน bus ใน cache หรือไม ดังนัน้ ขอมูลทีต่ รงกันในcacheจะถูก invalidate ตามลําดับของการเขาถึงของขอมูลโดยการทํางานของbusซึง่ เปนไปตามลําดับ ตัง้ แต processorทัง้ 2 ตัวทําการเขียนในlocation เดียวกันเสร็จสมบูรณ การเขาถึง buss access ของprocessor ตัวแรก จะเปนสาเหตุใหprocessorตัวอืน่ ทําการจําลอง invalidate
ซึ่งจะเกิดลําดับการเขียนอยางแทจริง การ implementationนี้ จะเปนการแบงขอมูลซึง่ จะ ทําไดไมเสร็จสมบูรณจนกระทัง่ เกิด buss access การเพิ่มขึ้นของการ invalidate เปนปญหาทีย่ งั ไมไดแกของ cache block :ซึง่ มัน จะเริ่มเกิดขึ้น เราจําเปนทีจ่ ะตองlocated data item เมือ่ cache เกิดการmiss ขึ้นในการ write through cache มันจะงายตอการคนหาขอมูลกอนหนานี้ ตัง้ แตการเขีนรขอมูลกลับ เขาไปใน memory จากคาของขอมูลเมือ่ เร็ว ๆนี้ ซึง่ จะสามารถทําการ fetch ได อยางไรก็ตามสําหรับการwrite back cache มีปญ หาทีพ่ บเมือ่ เร็ว ๆ นี้คือ คาของ ขอมูลมันมาก ตั้งแตคาของขอมูลซึ่งอยูใน cache มันมากกวา ในmemory สิง่ ทีน่ า สนใจ คือการ write backสามารถใชในการ snooping ทีเ่ หมือนกันได สําหรับการmiss ของ cache การเขียนและการsnoop ของการแทนขอมูลทุก ๆ address บน bus ถา processor สามารถคนหาการจําลองตามcache block ซึง่ มันจะเตรียมcache blockในการรับผิดชอบ การอาน และการเขาถึงmemory ตัง้ แตเกิดการตําลงของการ ่ write back cache สําหรับ memory bandwidth พวกมันไดเตรียมการในmultiprocessor แมจะมีการเพิม่ ขึน้ อยางสม บูนณเพียงเล็กนอยเพราะฉะนัน้ พวกเราจะสนใจในการ implementation กับการ write back cache ตามปกติ cache จะสามารถตอใชเปนเครือ่ งมือ ทีใ่ ชในการ processor ของ smooping ยิง่ กวานัน้ valid bit ของแตละ block จะทําเครือ่ งมือเสียงาย อาน misses , ใช แพรโดย invalidation หรือโดยแตละเหตุการณเปนทีต่ รงไปตรงมา เริม่ แตมนั เปนคําตอบ ที่ไววางใจบนความสามารถของ snooping เพือ่ ผูเ ขียนอยางพวกเราจะชอบและรูห รือจะ คัดลอกสิง่ ตาง ๆ ของ block ใหเปน cache , เพราะวาถาไมคัดลอกใหเปน cache แลวเมือ่ เขียนแลวตองการจะเปนทีท่ เ่ี ก็บไวบน bus ในการเขียน write-back บน cache การที่ เขียนสัง่ แลวไมยอ หรือดึงของทัง้ คู (block and cache) เวลานํามาใชโดยการเขียนแลว จะ ทําให เปนการของ bandwidth ได track หรือไมก็ cache block เปนการแบงพวกเราสามารถทีจ่ ะเพิม่ สิง่ ทีพ่ เิ ศษให เขารวมกับแตละ cache ของ block , เพียงเทานีเ้ ราก็จะไดทง้ั dirty bit and valid bit โดย แสดงถึงความตองการทีจ่ ะเพิม่ bit หรือการแบง block ,เราสามารถทีจ่ ะกําหนดและเขียน validdate ได เมือ่ เขียน block ไดแบงและกําหนดขึ้น cache ทัว่ ไปดวย invalidation on
bus and marks block เปนการเบือ้ งตน ในขางหนาตอไป invalidations จะเปนการสงไป โดย processor เพื่อ block processor คนเดียวจะคัดลอก cache block เปนปกติ จะเรียก cache block ของตัวเองขึน้ มากอน เมื่อไดสง invalidation แลว เจาของ cache block ก็จะกําหนด การเปลีย่ นแปลง จากแบบรวมกันไปเปนแบบไมรว มกาน (หรือ เวนไวแต) ถา processor อีกคนหนึ่งไดขอ เปนคนสุดทายใน cache block ก็จะเปนการกําหนดการแบบรวมอีกครัง่ หนึง่ เปนการขอ โดย processor อีกคนหนึง่ และกําหนดการทํารวมกันดวย เริม่ ตัง่ แตทกุ bus จะทําการ ตรวจสอบ cache-address ทีต่ อ นี่ก็เปนขีดความ สามารถทีจ่ ะเขาถึง CPU ของ cache ได สิง่ ทีส่ ามารถพอจะเปนไปไดจะมีเทคนิคหนึง่ หรือสองเทคนิค : ภาพจําลองของการตอ หรือการใชของ multilevel cache กับ inclusion ตรงทีข่ น้ั ตอนของ CPU จะเปน subset ของทางทีม่ อี ยูข า งหนา ถาการตอทัง้ สอง เมือ่ CPU และไดกระตุน snooping ก็จะ process ความเหมือนกันออกมา บน cache misses processor เพื่อตองการที่จะชี้ขาด และเพือ่ ตองทีจ่ ะทําใหการตอของทัง้ คูด ขี น้ึ เชนกันถา เกิดเครื่องจักรไดพบการตอเขามาของ snooping , มันก็จะตัดสินใจเพือ่ ทีจ่ ะตัง้ ทัง้ คูเ ขาไป ตอ (จะเรียก invalidate or ก็จะแบง bit) ดังนัน้ อาจเปนไปไดท่ี ขอมูลของ cache จะมีการ แกไข และ copy of block ออกมา การตอเชนนี้ processor จึงตองการครอบคลุมเมือ่ cache ตองการทีจ่ ะเขาถึงเวลาทั้หมดของการคัดลอก snoop ลงใน cache เพราะฉะนั้น การทําของ snooping ก็จะเปนการชาเมือ่ cache เปนการ dealing กับ misses ถา CPU ใช multilevel cache กับคุณสมบัตทิ ก่ี วาง เมือ่ ทุกทางเขาใน cache เบือ้ ง ตนก็จะกลายเปนในขัน้ ปฐมภูมิ ดังนัน้ การกระทําของ snoop เปนขัน้ ปฐมภูมขิ อง cache , เมื่อนั้นก็จะปราศจากขั้นเบื้องตันจนถึงขั้นที่ยกระดับขึ้นและความเปนไปไดของการแก ไขขอมูล ซึง่ เปนการเก็บของ processor ทีบ่ อ ย ๆ ตัง้ แต multiprocessor ทัง้ หลายใชแบบ multilevel cache ถึงการลด bandwidth คําสั่งของ processor คนเดียว ทีเ่ ปนการรับเอาการ ออกแบบมาใชบางเวลา มันก็เคยเปนการใชทง้ั สองตอกันของขัน้ ปฐมภูมิ ถึงอนาคตทีจ่ ะ มีการลดชวงชิงระหวางการกระทํา CPU และ snooping เราไดสนทนาคุณสมบัติในราย ละเอียดอยางกวางขวางตามตารางที่ 8.8 คุณอาจจินตนาการเอง นัน้ เปนการเปลีย่ นแปลงบนการติดตอของ cache ขึน้ อยู กับแบบแผนเปนฐานตํ่าหรือขั้นฐานสูง เมือ่ นัน้ cache เปนการ write-back or write-
through , เมื่อปรากฎขึน้ และถา และอยางไร ถาความเปนกรรมสิทธิเ์ ปนการบันทึก ดัง ภาพที่ 8.9 สรุปวา snooping cache-coherence protocols ทัง้ หลายและการแสดงเครือ่ ง จักรนั้มใี ชหรือนัน้ เปนใชของ protocols An Example Protocols Bus-based ติดตอ protocols เปนการสงเสริมทีบ่ อ ยโดยรวมกันซึง่ ไดกาหนด ํ ความควบคุม node ที่แนนอนเปนการควบคุมการตอบรับทีข่ อจาก processor และจาก bus , การเปลีย่ นแปลงการกําหนดของทางเลือก cache-block ,ดังนัน้ การใช bus เปนการ เขาถึงขอมูลหรือถึง invalidate เปนขอโดยทัว่ ไปโดย โดย processor cache ถึง node ในตารางสิง่ เหลานีท้ ม่ี าจาก bus เราสามารถ อธิบาย protocol วาไมเปนการแบงแยกระหวาง write-misses เมือ่ มีการเขียนเก็บไวใน bus processor กับการคัดลอกของมันใน cache block invalidate in cache write-back if block อยูก เ็ วนไวแต cache 1 ตัว cache อีกตัวก็ แบบ write-back ของ block ปฏิบตั กิ บั การเขียน write-hit ถึงการรวมกับ blocks cache misses ก็จะลดตัวเลขของคาทีแ่ ตกตาง จะจัดการกับ bus และก็จะเนการควบคุมงาย ๆ จะแสดงแผนผัง finite-state เพื่อใช cache block เดีย่ วใน write-invalidation protocol and write-back cache ดังตัวอยาง ทีก่ ําหนดทัง้ 3 ของ protocol เปนแบบจําลอง ถึงการแสดงพึน้ ฐานของการสงไปบน CPU (บนดานซาย) ในทางตรงกันขามพึ้นฐาน การสงไปบน bus (บนดานขวา) ชนิดของ Blodface เปนการใชในการติดตอกันใน bus ในทางตรงกันขมสถานะไดเก็บความเชือ่ ถือในสถานะบน bus สิง่ ทีก่ าหนดใน ํ node ได แทนของทางเลือกพิเศษของ cache block โดย processor หรือ การขอ bus สิง่ ทีกําหนด ใน node ไดแทนของทางเลือกพิเศษของ cache block โดย processor หรือการขอ bus ทั้งหมดทีไ่ ดกําหนดบน cache protocol จะเปนความตองการใน uniprocessor cache , ในทางตรงกันขาถึง invalid , valid (and clean) and dirty state ทัง้ หมดของการ เปลีย่ นการแสดง โดยสวนโคงของครึง่ ซายของภาพที่ 8.11 จะตองการใน write-back uniprocessor cache : แตกตางกันใน multiprocessor การควบคุมติดตอโดยทัว่ ไปใน wirte-misses เมื่อควบคุมใน write-hit เพื่อ cache block ที่ใชรว มกันสิง่ ทีก่ ําหนดในการ
แสดงโดยสวนโคงครึง่ ทางขวาของภาพที่ 8.11 เปนการตองการติดตอและจะไมปรากฎ ทัง้ หมดใน uniprocessor cache ในความเปนจริง นัน้ เปนหนึง่ finite-state ของเครือ่ งจักร ตอ cache , with stimuli coming เชนกันจาก ผูชวย CPU หรือจาก bus ดังแสดงที่ภาพ 8.12 อยางไรก็ตาม ไดกําหนดการสงไปในครึง่ ทางขวาดังภาพที่ 8.11 เปนสวนรวมกัน กับนัน้ ในทางครึง่ ซายของภาพจากตารางเดีย่ วเมือ่ ของแตละ cache block ทําไมถึงเขาใจในงาน protocol นัน่ เปนการสังเกต valid cache block เปนเชนนี้ ในการแบงการกําหนดใน multiple caches หรือ ในสิง่ ทีเ่ วนไวแตครึง่ ทีก่ าหนดอย ํ างแน นอนในหนึ่ง cache การกําหนดการสือ่ สารทีเ่ วไวแต (ซึง่ เปนการขอของ processor ถึง การเขียนถึง block) การขอ write-misses ซึ่งเปนสิง่ ทีอ่ ยูบ น bus ,เพราะ cache ทัง้ หมดจะ ทํา block invalid , ในการเพิม่ ถาสิง่ ทีก่ ําหนดเวนไวแต cache ทีม่ ี block , นั้น cache ทีจ่ ะ เปน write-back ซึง่ บรรจุ block หรือบรรจุในสิง่ ทีอ่ ยูต ามตองการ สุดทายถาการอาน misses เกิดขึน้ บน bus ถึง block , เปนสวนตัวของ cache ทีจ่ ะทํามันใหรวมกัน , เพื่อแบง การเรียงเขียนการขอบน ship ตัวเดียวกัน ดังในภาพที่ 8.12 ซึ่งอานแขน และ writemisses on bus , เปนสิง่ จําเปนของสวนประกอบของ snooping of protocol คุณสมบัติ หนึง่ นัน้ เปนสิง่ ทีด่ ารงใน ํ protocol และในอีก protocol เปนตน อีกอยางหนึง่ ก็เปน vlock ความจําในการกําหนดการแบงเปนการเพิม่ ความจําเสมอ นีเ่ ปนการยกตัวอยางและจะ แสดงรายละเอียดใน section ที่ 8.5 ถึงแมวา ตัวอยางของ cache protocol จะถูกมักย็ งั ละเลยตัวเลขของทีซ่ บั ซอนทีจ่ ะ เปนวิธที ําใหมน่ั คงสิง่ ทีส่ าคั ํ ญมากของสิง่ นีจ้ ากการสมมติกค็ อื atomic นัน้ ก็เปนคําสัง่ ที่ สามารถเปนคําสั่งที่เกิดขึ้นชั่วคราว ดังตัวอยาง รายละเอียดของ protocol ทีส่ มมตินน้ั สามารถทีจ่ ะปกปอง write-misses ,ไดมากโดย bus และรับรองการตอบรับของ atomic เดี่ยวในความเปนจริงอาจไมถูก อยางเดียวกันถาเราตองการใชการติดตอ bus (ดูใน chapter 6.section 6.3) เมือ่ นัน้ การอาน misses จะไมเปน atomic ในการเพิม่ ถึงการเปลีย่ น protocol ถึงการรักษาทีเ่ หมาะสม สิง่ ที่ nanotomic นํา เขามาอาจจะเปนไปไดท่ี protocol สามารถทีจ่ ะ deadlock ความหมาย นัน่ มันก็คอื การแผ ที่กําหนดทีใ่ หมนั ทีจ่ ะไมสามารถทีจ่ ะดําเนินตอไป สิง่ ทีย่ น่ื ออกมาตอทายจํานวนมากกับ
ความทีย่ งุ ยากทีม่ เี ปนรุน ๆ protocol สามารถทีจ่ ะแสดงใหเปนการแกไขจํานวนมากกับ nanatomic ไดเขียนกับการนําเขามาสูการ deadlock รูปแบบทีก่ ําหนด ทีเ่ ปน protocol ทีต่ ดิ ตอซึง่ จะอยูใ นเวลาทีแ่ ทจริง กวาการใชใน แบบฝกหัดทัง้ สองอยางทีง่ า ยดาย อยางแรก ก็การติดตอใน protocol ถึงสวนทีก่ าหนดทั ํ ว่ ไปเวนไวแตการเขียน write-misses on bus และเราสมมตินั้นที่ขอ cache เสมอทีบ่ รรจุ block ที่เต็มและก็กลับ ไปเต็มอีกครัง้ นีเ่ ปนรายละเอียดของเครือ่ งมือ ความเปนจริง protocol ไดแบงแยกระหวาง write-misses and write-hit , ซึง่ สามารถเกิดขึน้ เมือ่ cache block เปนสิง่ ทีแ่ บงมาตัง้ แตดง้ั เดิมเชนนี้ missed เปนการเรียก ownership หรือ upgrade missed , ตั้งแตนน้ั ก็จะเปนการพาดพิงถึงการเปลีย่ นแปลงถึงกําหนดของ block แตไมทาํ ใหข้ึนอยูอ ยางแทจริงทีจ่ ะขอรับขอมูล ถึงการสนับสนุนการเปลีย่ นแปลง protocol ใช invalidation operation , ในการเพิม่ ถึง write-misses กับคําสัง่ เชนนีอ้ ยางไรก็ตาม เครือ่ ง มือทีอ่ ยูใ นเวลานีข้ อง protocol จะมาแบบเล็กนอยกวา หลักอยางทีส่ องจะงายกวา ก็คอื เครือ่ งจักรทีจ่ ะติดตอ ระหวาง cache block เปน สิ่งทีแ่ บงจริงและหนึง่ ในนัน้ จะออกใน cache หนึง่ อยางแนนอน นีเ่ ปนการเพิม่ ของ “clean and private กําหนดการตัดการติดตอสิง่ ทีต่ อ งการทัว่ ไปบน bus และบนการเขียน ของ block ถึงแมวา จะทําใหสงู และกวางขึน้ ใชการประยุกตของ cache เชนกันขอมูลบน misses และการแบงของ block สวนถัดไปของประสิทธิภาพทัว่ ไปของ protocol เพื่อ เปลีย่ นและ multiprogrammed workload Performance of Snooping Coherence Protocols ใน bus-based multiprocessor ใช invalid protocol , ปรากฎการณทแ่ี ตกตางทัง้ หลายอยางรวมกันก็จะถึงการตกลงถึงประสิทธิภาพ ในบางสวนของ cache ทัง้ หมด ประ สิทธิภาพก็จะเปนการรวมของการปฏิบตั ขิ อง uniprocessor cache miss traffic and traffic เพราะโดยการสือ่ สารซึง่ ผลลัพธ ใน invalidations และการเรียง cache misses การเปลีย่ น การนับของ processor cache size and block size สามารถทีจ่ ะเปนผลรายนัน้ แหละทัง้ สองก็เปนสวนประกอบของอัตรา misses ในทางทีต่ า งกัน ระบบความสําคัญถึงการ ปฏิบัติตวั ถึงการรวมกันของผลกระทบของทัง้ สอง
Performance for the Parallel Program Workload ใน section, เราปลอบการใชในการเรียนประสิทธิภาพของทัง้ สี่ เทียบเทา โปรแกรมเพื่อเปนเกณฑ และขนาดของปญหา ดังนี้ • Baners-Hut- 16K run ได 6 ครั้ง (การตั้งความแนนอน 1.0 ชนิด และจากสภาพความ จริง) • FFT- 1 ลาน จุดทีแ่ ยกกันไมได • LU-A 512 * 512 matrix เปนการใชกบั 16 * 16 block • Ocean-A 130 * 130 grid กับชนิดของ error ทีม่ ลี กั ษณะกวาง ในการมองทีอ่ ตั รา misses processor เปลีย่ นแปลงการนับ ขนาดของ cache , และ ขนาดของ block , เราไดแยกออกเปนสวน ๆ อัตราการรวมถึงการติดตอ misses และ ปกติของ uniprocessor misses ปกติ uniprocessor misses จะประกอบดวยขีดความ สามารถทีต่ รงกันและเกณฑ misses สามารถทีจ่ ะ misses และ write misses ที่ ตองการทีจ่ ะยกระดับ block จากการแบง protocol กลับเปนการไมแบงระหวาง private และ shared cache block ดังภาพที่ 8.13 จะแสดงขอมูลของการประยุกต เราเพิม่ ตัวเลขของ processor จาก 1-16 ถาเก็บขนาดของปญหาทีม่ น่ั คง เราก็จะเพิม่ ตัวเลขของ processor ได จํานวนผลรวม ของ cache ทีเ่ พิ่มเพราะความสามารถที่จะหนุด misses ในทางตรงกันขาม ,การเพิ่มของ processor นับบอย เพราะรวมจํานวนของการติดตอทีเ่ พิม่ ขึน้ ในทางเพราะการติดตอ misses ถึงการทีป่ รกฎขึ้น จํานวนของทีม่ องผลทีแ่ ตกตางโดยการประยุกต ใน FFT ขีดความสามารถการหยุดของอัตรา miss (จากใกลเคียง 7% ถึงสิง่ ทีเ่ พิม่ มากกวา 5%) แตการติดตออัตรา miss ทีเ่ พิม่ (จาก 1% ถึงประมาณ 2.7%) นําถึงหารยืน ยันอัตราทัง้ หมดของ miss การแสดง Ocean การรวมของผลกระทบ ทีร่ วมตัวการแบงที่ ชาของ grid และอยางไร grid boundaries การแบงตามสวน ถึง boundary ของแตละสวน ของ grid , ถาความสามารถ misses เปนขอและสนองถึงเนือ้ ทีข่ อง grid ดังนัน้ การรวม ผลของ cache ถาเก็บขนาดของปญหาของผลรวม จะเจาะจงความสําคัญของผลกระทบ บนความสามารถอัตรา misses ทีล่ ด จนกระทัง่ แตละ subgrid ที่เหมาะสม กับสิง่ ทีเ่ กีย่ ว กับบุคคล cache ของ processor สัญลักษณในการกระโด ใน misses ระหวางหนึง่ และ สอง processor ที่เกิดขึน้ เพราะวาของการปะทะทีเ่ กิดขึน้ จากทางซึง่ multigrid เปนการ
เขารวมถึง cache การปะทะเปนการเสนอเพือ่ direct-mapped และ two-way ของ cache ที่ เขารวมบนอัตรา miss บางเวลาเพราะ เพิม่ นอยมากบางเวลาเพราะลดลง การเพิ่มขนาดของ cache มีผลประโยชนบนประสิทธิภาพ ตัง้ แตไดลดนอยของ การสิน้ เปลือง cache misses ตามทีอ่ ธิบายดังภาพที่ 8.14 ไดมกี ารเปลีย่ นแปลงในอัตรา ของขนาด cache เปนการเพิม่ ขึน้ , แสดงการแบงของอัตราของ miss ทีก่ ําหนดการติดตอ missed เปนการลดอีกครัง้ เมือ่ เราอาจจะคาดหวัง เมื่อขนาดของ cache เพิม่ ขึน้ การติดตอ และ plateaus ใน miss rate ในการติดตอในตัวถึงการนําทีบ่ อ ยครัง้ ของการติดตอ misses นั่นไมเปนผลรายโดยการเพิม่ ขนาดของ cache ดังนั้นถาขนาดของ cache เปนการเพิม่ ถา ปญหาขนาดการรักษาอัตราการติดตอในทีส่ ดุ จํากัดการลดในอัตราของ cache miss นี่ เปนผลกระทบทีน่ า สังเกต Barnes’ เปนสถานทีต่ ดิ ตอทีพ่ เิ ศษสุดจากการนํามาของอัตรา misses ความสํ าคัญของผลกระทบเปนการชั่วคราวในขีดความสามารถนั้นก็จะเกิดขึ้น เพื่อเปนการประยุกตเศษสวนของขอมูลของมันใน cache แตสญ ั ลักษณบางสวนของขอ มูลไมสามารถทีจ่ ะเจาะจง cacahe หรือใน cache นัน้ เปนขนาดใหญ LU จะเปน cache ที่ เล็กมาก (ประมาณ 4KB) สามารถทีจ่ ะจับเขาคูก นั ไดของ 16 * 16 block ใชเปนการจับใน ขาง loop : ถัดไปนันก็จะใหญจะสงเสริมในความสามารถทีเกิดขึน้ เมือ่ ทัค้ เู ปนบอเกิด ของการกําเนิด cache , ซึง่ เกิดขึน้ เมือ่ ผลรวมขนาดของ cache ซึง่ อยูใ นระหวาง 4MB and 8MB เปนจุดขอมูล เราจะเห็นไดตอไป นีเ่ ปนงานทีต่ ง้ั ขึน้ มาระหวาง 32 KB and 128KB เนือ้ ที่ FFT จะหยุด ณ ที่ 0.3% ถัดไปนั้นขนาดของ cache จะเร็วกวาลด ในความสามารถ ที่มองเห็นในโครงสรางทีเ่ ริม่ ขึน้ ทีอ่ าศัยอยูใ น cache Plateaus เปนทีร่ ว มกันใน โปรแกรมนั้นเปนจํานวนมากกันใหญ ในวิธที ข่ี องโครงสรางทีด่ ี การเพิ่มขนาดของ block เปฯทางเดียวทีเ่ ปลีย่ นอัตรา miss ใน cache ใน uniprocessor ,ขนาดของ block ทีใ่ หญเปน optimal กับ cache ทีใ่ หญกวาใน multiprocessor ,ผลกระทบอาจมีการแสดงการแบงขอมูลมีสง่ิ ทีเ่ กีย่ วกับบรยากาศทีต่ าใน ่ํ การแบง ความหมายก็คลายกับการแบงขอมูล, เปนทีน่ า พอใจที่ block ใหญกวาจะมีผล กระทบเล็กนอยกวาใน uniprocessorเ พราะวาสิง่ ทีค่ อ นขางจะเปนไปได เปนสูงกวา block จะหาหนาที่แทน จากทัง้ หมดและจะอางอิงการบรรจุ
ภาพที่ 8.15 แสดงถึง miss rates การเพิ่มของขนาดของ block เพือ่ ทีจ่ ะ 16processor run กับ a64-KB cache Barnes ทําสิง่ ทีน่ า สนใจในการหฏิบตั ิ ที่ miss rate ได เริ่มเสือ่ มและเมือ่ สิง่ ทีก่ าหนดได ํ ปรากฏขึ้น การเพิม่ ตัวเลขของการติดตอ misses ซึ่ง ปญหาก็เกิดขึ้นเพราะวา การแบงทีผ่ ดิ ในขณะที่ benchmarks, เพิ่ม block size ลดทุก อยาง miss rate Ocean and LU , block size ผลกระทบตอการเพิม่ ทัง้ คูก ารติดตอและ ความสามารถ miss rate FFT เปนการติดตอ miss rate คือซึง่ เปนอยูใ นเวลานีจ้ ะสดทีเ่ ร็ว กวา อัตราความสามารถของ miss rate นีเ่ ปนเพราะวาการติดตอใน FFT เปนโครงสรางที่ ไดผลตามตองการ โปรแกรมทีไ่ ดผลก็ลดลง เราจะคาดหวังวาการแบงทีผ่ ดิ และลดระยะ บรรยากาศของขอมูล ผลลัพธกจ็ ะเปนไปตามกําหนดของ Barnes ถึงแมวา จะหยุด miss rate กับความยาวของ blocks ความเชื่อที่จะนํานั้นจะใช block size ทีย่ ากกวา block size ทีด่ ที ส่ี ดุ ,สิง่ ทีเ่ ปนคอขวดใน bus-based multiprocessors เปนความจํากันความจํา และ bus bandwidth blocks ใหญมคี วามหมายกวา byte บน bus ตอ miss ดังภาพที่ 8.16 แสดงถึงการเติบโตในการติด bus ในการเพิม่ block size การเติบ โตเปนลําดับในโปรแกรมนัน้ มีความสุขของ miss rate พิเศษสุด Ocean การเติบโตใน traffic สามารถจะนําประสิทธิภาพในเวลานี้ กําหนดทั้งคูใหยาวและเพิ่ม bus ไวบรรจุอกี Performance of the Multiprogramming and OS Workload ใน Subsection เราทดสอบประสิทธิภาพ cache ของ multiprogammed workload ขนาดของ cache และขนาดของ block เปนการเปลีย่ นแปลง workload ยังคางอยูเ ชนกัน ในรายละเอียดตอไป : ทั้งสองเสมอภาคกัน แตละอันใชเพิ่ม 8 processor เพราะของความ จํา , ตลอดนัน้ user Processor จะทําทํากวาจะได 8 ครั้งที่แนะนํา , ดังนัน้ miss rate ทัง้ หมดเปนตัวกําหนด เบือ้ งตนโดย miss rate ใน user code, ซึง่ เราอาจจะเห็นเปน 1-5 ของ kernel miss rate ภาพที่ 8.17 จะแสดงถึงขอมูล miss rate กับขอมูล cache size เพือ่ ทีจ่ ะ kernel และเปนสวนประกอบของ user misses สามารถทีจ่ ะเปนสัญลักษณได. สําหรับ Workload ทีพ่ ฤติกรรมของ Operating System มีความซับซอนมากกวา
การดําเนินงานของผูใช มีอยูส องเหตุผล เหตุผลขอแรก kernel จะเริม่ ตัง้ หนาทัง้ หมด กอนที่พวกเขาจะขอพื้นที่ใหผูใช ซึง่ สิง่ ไหนทีส่ ําคัญตองบังคับการขยายสวนประกอบ ของ miss rate ของ kernel เหตุผลทีส่ อง kernel ตองแบงขอมูลอยางแทจริงและเหตุน้ี จึงมีความสําคัญเกีย่ วพันกับ miss rate ในการเปรียบเทียบการดําเนินงานของผูใชจะมี สาเหตุในการผิดพลาดเมือ่ การดําเนินงานมีแผน processor ทีต่ า งกัน สวนประกอบของ miss rate จึงมีขนาดเล็ก จากรูป 8.18 เปนการแสดง kernel miss rate ทีข่ ยายขนาด ของ cache
จากรูป 8.18 สวนประกอบของขอมูล kernel miss rate เปลีย่ นขอมูลขนาด cache ให ขยายขึ้นจาก 32 KB เปน 256 KB compulsory miss rate เปนสวนประกอบทีม่ อี ยู แนนอน ตัง้ แตมนั ไมมผี ลกระทบจากขนาดของ cache ความจุของสวนประกอบจะลดลง มากกวาสาเหตุที่สอง ขณะทีค่ วามเกีย่ วพันของสวนประกอบใกลเคียงสองเทาการขยาย ไมถกู ตองกับขนาดของ cache ตัง้ แตการนําเขามาทีน่ อ ยมากในการ bump ตามสมควร ให capacity ในการเพิ่มขนาดของ block จะชอบมีผลประโยชนสาหรั ํ บ workload มากกวา สําหรับ program workload แบบเดียวกับของเรา ตัง้ แตสว นยอยทีใ่ หญกวาของความ ผิดพลาดที่เกิดขึ้นจาก compulsory และ capacity ทั้งสองสิง่ นีส้ ามารถใชใหเปน ประโยชนอยางมากมายไดกบั ขนาดของ block ทีใ่ หญ ตัง้ แต coherence ผิดพลาดโดย เปรียบเทียบสิง่ ทีห่ ายาก ผลกระทบทางไมดขี องการขยายขนาดของ block คือจะเล็ก จากรูป 8.19 แสดง miss rate สําหรับ kernel และผูใ ชทอ่ี า งถึงการเปลีย่ นขยายขนาด ของ block โดยทําเปน 32 KB two-way set-associative data cache จากรูป 8.20
ยืนยันสิง่ นัน้ สําหรับการอางถึง kernel การปรับปรุงใหดขี น้ึ ใหญทส่ี ดุ คือการลด compulsory miss rate เหมือนกันกับใน program workload แบบเดียวกันจะไมมกี าร เพิ่มขนาดใหญใน coherence miss rate เหมือนการเพิ่มขนาด block แสดงวาผล กระทบในการแบงผิดนั้นไมสาคั ํ ญ
จากรูป 8.19 miss rate มีการลดลงอยางสมําเสมอเหมื ่ อนกับการเพิ่มขนาดของ block สําหรับ 32 KB two-way set-associative data cache เหมือนกับพวกเราสามารถคาด หวังรากฐานบนสวนประกอบ compulsory ทีส่ งู กวาใน kernel การปรับปรุงใหดขี น้ึ ใน miss rate จะสําหรับการอางถึง kernel ทีใ่ หญกวา ( เกือบจะ 1 ใน 4 ของ factor สําหรับการอางถึง kernel จาก 16-byte ถึง 128-byte blocks กับ 1 ใน 3 factor สําหรับการอางถึงผูใช ) ถาพวกเราพิจารณาตัวเลขของ bytes ที่ตอ งการตอการอางถึงขอมูลเหมือนกับใน รูป 8.21 พวกเราจะเห็นพฤติกรรมของ multiprogramming workload ทีเ่ หมือนกับ สิง่ นัน้ ของ program ใน program workload แบบเดียวกัน kernel มีอตั ราสวนทีส่ งู กวาขนาดของ block ทั้งทีก่ ารลดเปนสิง่ สําคัญในการผิดพลาดของ compulsory การ ลดทีเ่ ล็กกวาใน capacity และ coharence ขยาย drive ผิดพลาดในผลรวมทางการคา ผูใช programมีอตั ราสวนการคาทีเ่ ล็กกวาสิง่ นัน้ จะเลิกชามาก
สําหรับ multiprogram workload OS เปนสิง่ ทีผ่ ใู ชตอ งการมากของระบบหนวย ความจํา ถา OS มากหรือ OS-like มีการเคลือ่ นไหว รวมทัง้ ใน workload มันจะเปน การยากมากในการสามารถสรางระบบหนวยความจําอยางเพียงพอ
จากรูป 8.20 เหมือนทีพ่ วกเราคาดหวัง การเพิ่มขนาดของ block ลดลงอยางแทจริงที่ compulsary miss rate ในการอางถึง kernel มันมีความสําคัญตอผลกระทบบน capacity miss rate นอยลงโดย factor ของ 2.4 มากกวาการจัดเรียงขนาดของ block การขยายขนาดของ block มีการลดลงใน coherence miss rate ในบรรทัด 128-byte เพราะการลดไมสาคั ํ ญใน coherence miss rate เหมือนการเพิ่มขนาดของ block สวน ยอยของ miss rate จะเริม่ coherence จาก 7% ถึง 15% SUMMARY : PERFORMANCE OF SNOOPING CACHE SCHEMES ในสวนนีพ้ วกเราจะยกตัวอยางประสิทธิภาพ cache ของสองโปรแกรมทีเ่ ปนแบบเดียว กันและ multiprogram workload พวกเราจะเห็นสิง่ ที่ coherence traffic นัน้ สามารถ ทําพฤติกรรมใหมเขามาในระบบหนวยความจํา สิง่ นีไ้ มตอบสนองงายๆเหมือนการ เปลีย่ นใน cache size หรือ block size สิ่งนีเ้ ปนสิง่ พืน้ ฐานทีใ่ ชในการปรับปรุง ประสิทธิภาพ uniprocessor cache ใหดีขึ้น coherence สําคัญแตสว นประกอบไม คลาดเคลือ่ นในการดําเนินงานของ workload เดียวกันพวกเราสามารถคาดหวัง อยางไร ก็ดสี ง่ิ ที่ coherence ขอรองสําคัญมากใน program แบบเดียวกัน สิง่ นีจ้ ะมองในแงดี นอย
ใน multiprogram workload ผูใชและสวนที่ OS กระทํามันตางกันมาก แมวาจะ ไมมี coherence traffic ทีส่ าคั ํ ญ ในสวนของ OS compulsory และ capacity จะ บริจาค miss rate ทีใ่ หญกวา ทีส่ าคั ํ ญ miss rate ทั่วไปคือสิง่ ทีพ่ อจะเปรียบกันไดกบั โปรแกรมทีแ่ ยทส่ี ดุ ใน program workload เดียวกัน ผูใช cache ทีม่ ปี ระสิทธิภาพบน ความชํานาญจะดีมากและเปรียบเทียบโปรแกรมทีด่ ที ส่ี ดุ ใน program workload เดียว กัน คําตอบของ cache miss rate ที่มีผลกระทบขึน้ อยูก บั ประสิทธิภาพของ CPU บน ที่พกั ของระบบหนวยความจํา รวมทัง้ latency และ bandwidth ของ bus และ memory พวกเราจะยอนประสิทธิภาพโดยทัว่ ไปในสวน 8.8 เมือ่ พวกเราตรวจสอบการ ออกแบบของ multiprocessor ทีท่ า ทาย
จากรูป 8.21 ตัวเลขของ bytes ที่ตอ งการตอการอางถึงขอมูลเหมือนการเพิม่ ขนาดของ block สําหรับทัง้ สอง kernel และสวนประกอบของผูใ ช มันนาสนใจในการเปรียบเทียบ สิง่ นี้ chart ตอกับ chart ที่เหมือนกันสําหรับโปรแกรม workload แบบเดียวกันที่ แสดงในรูป 8.16 DISTRIBUTED SHARED – MEMORY ARCHITECTURES เครือ่ งวัดทีส่ นับสนุนการแบง memory ที่สามารถหายไปในการขัดของหรือรวมทัง้ cache coherence ในขั้นพื้นฐานที่สุด แผนการสําหรับ hardware ที่ cache coherence ขัดของ focus แทนการวัดระบบหนวยความจํา หลายบริษทั ทีม่ กี ารสรางเครือ่ งลักษณะ นี้ Cray T3D ในตัวอยาง one well-known ในเครือ่ ง memory คือการแจกจาย
ระหวาง node และ node ทั้งหมดทีเ่ กีย่ วของกันโดย network การเขาถึงสามารถจะ เปน local หรือ remote memory เขาถึงขอมูล สิง่ นัน้ ระบบนีม้ ี cache แตหยุดยัง้ ปญหา coherence ในการแบงขอมูลคือ เครือ่ งหมายเหมือน uncacheable และขอมูลสวนตัวเก็บใน cache แนนอน software สามารถทําให cache ชัดเจน ประโยชนของการแบงขอมูลโดยการ copy ขอมูลจาก สวนแบงของ address วางในสวนของ local สวนตัวของ address วางสิ่งนั้นคือ cache coherence ควบคุมโดย software ผลดีของเครือ่ งคือสนับสนุน hardware ตัว เล็กทีต่ อ งการ แมวา การสนับสนุนสําหรับลักษณะเชนการ copy block อาจจะมี ประโยชน ตัง้ แต remote เขาถึง fetch ใน word เดียว ( หรือ word คู ) คอนขางกวา cache blocks หลายสาขาทีม่ ผี ลเสียในการเขาถึง อยางแรก compiler คือกลไกสําหรับการ เปดเผย software cache coherence ทีจ่ ากั ํ ดมาก techniques ในปจจุบนั โปรแกรม ประยุกตยงั คงอยูก บั well-structure loop-level แบบเดียวกันและ techniques มีสง่ิ ที่ เกิดขึน้ ทีส่ าคั ํ ญรวมอยูจ ากการ copy ขอมูลอยางเปดเผย สําหรับปญหาทีผ่ ดิ ปกติหรือ ปญหาเกีย่ วกับโครงสรางขอมูล dynamic และ pointers ( รวมทัง้ operating system สําหรับตัวอยาง ) compiler เปน software พืน้ ฐานของ cache coherence ในปจจุบนั ไมมปี ระโยชน พื้นฐานที่ยากคือพื้นฐาน software ของ algorithm ทีเ่ กีย่ วพันกันตอง รักษาแบบแผนทุกๆ block สามารถทีจ่ ะแบงตองพิจารณาถามันแบงสิง่ นีค้ อื ผลลัพธใน coherence overhead ทีม่ ากกวาปกติ เพราะ compiler ไมสามารถบอกลวงหนาเกีย่ ว กับการแบงที่เปนจริงอยางถูกตองแมนยํา ความยุง ยากซับซอนของปญหาทีม่ ผี ลกระทบ เกิดแกกนั ถาม programmer ถึงปริมาณทีเ่ กีย่ วกับการที่ coherence ไมทางาน ํ อยางทีส่ องไมมี cache coherence เครือ่ งจะหายในสวนทีส่ ําคัญของ fetch และ ใช multiple words ใน cache block เดียวสําหรับปดกอใหเกิด fetch หนึง่ word benefit ของ locality ทีม่ ที ว่ี า งมากในการแบงขอมูลไมสามารถ levelage เมือ่ word ตัวเดียว fetch จาก remote memory สําหรับการอางถึงแตละอันสนับสนุนสําหรับ เครือ่ ง DMA ระหวาง memory สามารถชวยได แตเชนเครือ่ งกอใหเกิดสิง่ ใดสิง่ หนึง่ บอยในการใช ( ตัง้ แตพวกเขาตองการแทรกแซง OS ) หรือเครือ่ งมือแพงตัง้ แต
special-purpose สนับสนุน hardware และ buffer ตองการ นอกจากนีพ้ วกเขามี primarily ทีเ่ ปนประโยชน เมือ่ copy block ขนาดใหญทต่ี อ งการ ( เห็นรูป 7.25 เปน การ copy บน Cray T3D block ) อยางทีส่ าม เครือ่ งสําหรับ latency ทีม่ คี วามทน prefetch จะใชประโยชนได มากกวา เมื่อพวกเขาสามารถ fetch multiple word เชน cache block และขอมูล fetch ยังคงเหลือ coherent อยู พวกเราจะทดสอบความสําคัญในรายละเอียดทีช่ า กวา สิ่งเหลานีผ้ ทู ําการขยายจะมีขอ เสียเปรียบโดย latency ทีใ่ หญของการเขาถึง memory ที่ ไมเปนมิตรเทียบกับ local cache สําหรับตัวอยาง บน Cray T3D local cache มีการเขาถึง latency ของ 2 cycles และ pipeline ขณะที่ remote เขาถึง 150 cycles สําหรับเหตุผลเหลานี้ cache coherence จะยอมรับความตองการใน small – scale multiprocessors สําหรับ larger – scale arch: tectures ทีน่ น่ั มีการทาทายใหมๆในการขยาย cache – coherent shared – memory model ออก แมวา bus สามารถแทนทีไ่ ดอยางแนนอนกับ ความสัมพันธของ network ทีส่ ามารถวัดไดและพวกเราสามารถแบงสรร memory หนวย ความจํา bandwidth สามารถวัดดวย lack ของการวัดของsnooping coherence ทีต่ อ งการ แบบแผนของ address snooping protocal ตองการสือ่ สารกับ cache ทัง้ หมด ทุกๆความผิดพลาดของ cache รวมทั้งการเขียนของการแบงขอมูลมากมาย การไมมศี นู ยกลางโครงสรางขอมูล กลาวถึงแถบเสียงของ cache เปนผลประโยชนสาคั ํ ญของ snooping – based scheme ตัง้ แตมนั ไมยอมรับมันไมชดั เจน เหมือนจะดีกบั มันเมือ่ มันสามารถวัดได สําหรับตัวอยาง 16 processors และขนาด block ของ block ของ 64 byte และขอมูล cache 64-KB ผลรวมของ bus bandwidth demand สําหรับสีโ่ ปรแกรมชนิดเดียวกันใน workload ลําดับจากเกือบทัง้ หมด 500 MB/SEC ( สําหรับ Barnes ) ถึงมากกวา 9400 MB/SEC ( สําหรับ OCEAN ) การสมมติ processor จะสงขอมูลอางถึงทุกๆ 5 ns สิง่ ไหนที่ 1995 superscalar processor มีกําลังในการผลิต ในการเปรียบเทียบ Silicon Graphics Challenge bus Bandwidth bus-base multiprocessor ทีส่ งู ทีส่ ุดใน 1995 จัด 1200 MB ของ bandwidth แมวาขนาดของ cache ที่ใชในการเลียนแบบจึงมีขนาดเล็ก ดังนัน้ ขนาดจึงมีปญ หา นอกจากนีแ้ มวา cache ทีใ่ หญกวาจะลดสวนประกอบ uniprocessor
ของ traffic พวกเขาจะไมทาให ํ ความสําคัญนัน้ เปลีย่ นไปสําหรับสวนประกอบแบบ เดียวกันของ miss rate โดยมีตวั เลือกพวกเราสามารถสราง scalable shared-memory architectures รวม ทัง้ cache coherency Keyที่จะพบโดยมีตวั เลือก coherence protocol หนึง่ ในทาง เลือก protocol คือ directory protocol ใน directory จะเก็บการชีแ้ จงของทุกๆ block อาจจะเปน cache ขอมูลใน directory รวมทัง้ cache จะมีการ copy block ถาอัน ไหนมันสกปรกและอืน่ ๆอีก เกีย่ วกับการมีอยูข อง directory การเขาไปดําเนินการเกีย่ วของใน directory กับ หนวยความจํา block ในแตละอัน ในชนิดของ protocol ปริมาณทีเ่ หมาะสมของขอมูล ทีเ่ หมาะสม การผลิตตัวเลขของ memory block และตัวเลขของ processor สิง่ นั้นไมมี ปญหาสําหรับเครือ่ งทีน่ อ ยกวา 100 processors เพราะ directory ขางบนยังพอไปได สําหรับเครือ่ งทีใ่ หญกวาพวกเราตองมีวธิ กี ารใหโครงสราง directory มีการวัดอยางมี ประสิทธิภาพ วิธกี ารทีม่ สี ง่ิ ใดสิง่ หนึง่ พยายามเสนอในการเก็บขอมูลสําหรับ block จํานวนนอยๆ ( e.g. เพียงแตสง่ิ โนนใน cache คอนขางจะมากกวา memory block ทัง้ หมด ) หรือพยายามเก็บ bit นอยๆตอการนําเขา ปองกัน directory จากอุปสรรค การนํา directory เขามาสามารถแจกจายไปตาม memory เพื่อวา directory ที่มีการเขาถึงตางกันจะสามารถไปยังสถานทีท่ ต่ี า งกัน ใกล เคียงกัน memory ทีต่ า งกันจะขอรองไปยัง memory ทีต่ า งกัน directory ทีแ่ จกจายจะ บงบอกลักษณะทีเ่ หลือเอาไว ในการแบงสถานะของ block คือทุกๆอันในสถานทีเ่ ดียว กัน ความเปนเจาของทีย่ อมให coherence protocol หลีกเลีย่ ง broadcast จากรูป 8.22 จะแสดงการแบงสรรเครือ่ ง memory กับ directory เพิ่มแตละ node DIRECTORY – BASED CACHE – COHERENCE PROTOCOL: THE BASICS ใกลเคียงกันกับ snooping protocol ทีน่ น่ั การดําเนินงาน 2 primary directory protocol ตองเปนอุปกรณ handling อานการผิดพลาดและ handling เขียนแบงและทําความ สะอาด cache block ( handling จะเขียนความผิดพลาดในการแบง block การรวมกัน แบบพื้นฐานของสองแหง การดําเนินการในการแกไข directory ตองวิง่ ในสถานะของ แตละ cache block ใน protocol พืน้ ฐาน สถานะสามารถตาม :
- shared หนึง่ หรือมากกวาของ processor มี block cache และประโยชนในหนวย ความจํา ( เหมือนจะดีกบั cache ทัง้ หมด ) - Uncached processor ไมมีการ copy ของ cache block
จากรูป 8.22 directory จะเพิ่มคาในแตละ node ของการดําเนินการ cache coherence ในเครือ่ งจาย memory แตละ directory จะมีตอบสนองสําหรับแถบเสียงของ cache จะแบง memory address ของ port ของหนวยความจําใน node directory อาจสื่อสาร กับ processor และ memory ระหวาง bus รวมกัน ในขณะที่แสดงหรือมันอาจมี port ที่แยกออกมาของ memory หรือมันอาจจะทําหนาที่ของ node ที่อยูต รงกลางควบคุม ผานเขาไป internode และ intranode ทัง้ หมดสือ่ สารผาน - Exclusive อยางถูกตอง processor อันหนึง่ มีการ copy ของ cache block และมัน มีการเขียน block ดังนัน้ memory จะ copy สิง่ ทีล่ า สมัย processor จะเรียกเจา ของของ block ในการเพิม่ track จะชี้แจงแตละ cache block พวกเราตอง track processor โดยมีการ copy block เมือ่ มันแบงตัง้ แตพวกเขาตองแสดงวาไมถกู ตอง ทางพื้นฐานที่ สุดจะทําการเก็บ bit vector สําหรับแตละ memory block เมือ่ block แบงแตละ bit ของ vector จะแสดงอันใดอันหนึง่ ที่ processor มีการ copy block ทีต่ รงกัน พวกเรา สามารถใช bit vector ในการเก็บ track ดวยสถานะของแตละ cache block ที่ cache เฉพาะ
สถานะและการเปลีย่ นแปลงสําหรับสถานะเครือ่ งของแตละ cache ทีเ่ หมือนกัน อะไรที่เราใชสาหรั ํ บ snooping cache แมวา การกระทําของการเปลีย่ นแปลงแตกตาง กันเล็กนอย พวกเราจะทําสมมติฐานทีท่ าให ํ งา ยเหมือนกัน พวกเราจะทําใน case ของ snooping cache ความพยายามในการเขียนขอมูลสิ่งนั้นไมใชสิ่งเฉพาะตัว ในการเขียน ของ cache ทุกๆการผลิตจะเขียนขอผิดพลาดและ processor block เกือบจะเขาถึง อยางสมบูรณ ตัง้ แต interconnect ไมยาวไปกวา bus และพวกเราตองการหลีกเลีย่ ง broadcast ทีน่ น่ั มีสองความซับซอนทีเ่ พิม่ เติมมา อันแรกเราไมสามารถใช interconnect เหมือนกับ point ของ arbitration function กระทํา bus ใน snooping case อันที่ สอง เพราะ interconnect เปน message oriented ( ไมเหมือน bus ทีเ่ ปน transaction orient ) ขอความจํานวนมากจะตองมีการตอบสนองทีช่ ดั เจน กอนทีพ่ วกเราจะเห็น protocol state diagram มันมีประโยชนในการทดสอบ รายการสินคาของชนิดของขอความอาจจะสงระหวาง processor และ directory จากรูป 8.23 จะแสดงชนิดของขอความที่สงระหวาง node local node คือ node ทีเ่ กิดจาก การขอรอง home node คือ node ทีเ่ ปนสถานทีข่ อง memory และการนํา directory เขาของ address ทีพ่ กั อยู ทีอ่ ยูท ว่ี า งของ physical คือการดําเนินการแบบ statically ดังนัน้ node จะประกอบไปดวย memory และ directory สําหรับทีอ่ ยูข อง physical สําหรับตัวอยาง high-order bit อาจจัดเลข node ขณะที่ low-order bit จัด offset ทีม่ ี ใหกบั ใน memory บน node remote node คือ node ทีม่ กี าร copy ของ cache block ไมวา เฉพาะตัวหรือ แบงกัน local node อาจจะเหมือนกันกับ home node และ vice versa ในสิ่งใดสิ่ง หนึง่ case protocol จะเหมือนกัน แมวาขอความ internode จะสามารถแทนทีโ่ ดยการ ดําเนินการของ intranode จะเร็วกวา
จากรูป 8.23 ขอความที่เปนไปไดสงระหวาง node กับ maintain coherence สองขอ ความแรก ขอรองขอผิดพลาดสง local cache ไปที่ home อันที่สามผานเขาไปที่ขอ ความที่หาสง remote cache โดย home เมือ่ home ตองการขอมูลทีเ่ ปนไปตามการ อานหรือเขียนขอผิดพลาด ขอมูลทีเ่ ปนประโยชนในการโตตอบคือใชสง คาจาก home node กลับมาที่ requesting node คาขอมูลทีเ่ ขียนกลับจะเกิดสําหรับสองเหตุผล เมือ่ block แทนทีใ่ น cache และตองเขียนกลับมาที่ home memory และเหมือนในการ โตตอบ fetch หรือ fetch/invalidate message จาก home เขียนคาขอมูลกลับ เมือ่ ไรก็ ตามที่ block เปนการแบงงายๆทีต่ วั เลขของสถานะใน protocol ตัง้ แต dirty block ตอง exclusive และแบง block ทุกๆอันทีม่ อี ยูใ น home memory ในสวนทีเ่ ราสมมติ model แบบพืน้ ฐานของหนวยความจําสมําเสมอ ่ ไมเห็นความสําคัญในชนิดของขอ ความและความซับซอนของ protocol พวกเราทําสมมติฐานในความรับขอความและ การกระทําเกีย่ วกับในลําดับทีเ่ หมือนกัน พวกเขาจะสงหลักการอาจจะไมถกู ในการ ปฏิบตั แิ ละสามารถมีผลในการเพิม่ ความยุง ยากเล็กนอยของ address ของพวกเราใน สวน 8.6 เมือ่ เราปรึกษาหนวยความจําสมําเสมอของ ่ model ในสวนทีเ่ ราใชสมมติ รับรองการสงทีไ่ มถกู ตองโดย processor AN EXAMPLE DIRECTORY PROTOCOL สถานะพื้นฐานของ cache block ใน directory-base protocol อยางแนนอน เหมือนสิง่ เหลานัน้ ใน snooping protocol และสถานะใน directory เหมือนทํานอง เดียวกันกับสิง่ เหลานัน้ เราแสดงงายกวา ดวยเหตุนเ้ี ราจึงสามารถเริม่ ตนกับ state diagram แบบพื้นฐาน สิง่ นีแ้ สดงถึงการเปลีย่ นแปลงสําหรับ cache block สวนตัวและ การทดลอง state diagram สําหรับการนํา directory เขามาอยางเหมาะสมของแตละ block ใน memory เหมือนใน snooping case สถานะการเปลีย่ นแปลง diagram ไม ไดแสดงรายละเอียดทัง้ หมดของ coherence protocol อยางไรก็ดกี ารควบคุมทีแ่ ทจริง จะสูงขึน้ อยูก บั ตัวเลขของรายละเอียดของเครือ่ ง ( ขอความบริการความเปนเจาของ โครงสราง buffer และอื่นๆ ) ในสวนที่พวกเราเสนอพื้นฐาน protocol state diagram ความยุงยากทีส่ ง เหตุใหยงุ ยากในการปฏิบตั กิ าร การเปลีย่ นแปลงสถานะ diagram เปน การทดลองในภาคผนวก E ตามไปกับปญหาทีค่ ลายคลึงกันสําหรับ snooping cache
จากรูป 8.24 แสดงการกระทําของ protocol ขณะที่ cache สวนตัวตอบสนอง พวกเราใชเครือ่ งหมายทีเ่ หมือนกันในสวนถัดไปกับการขอรองมาจากภายนอก node ใน gray และการกระทําใน bold การเปลีย่ นสถานะสําหรับ cache สวนตัวมีเหตุผล โดยอานขอผิดพลาด , เขียนขอผิดพลาด , ไมถูกตองและการ fetch ขอมูล กระบวนการ เหลานีจ้ ะแสดงทัง้ หมดในรูป 8.24 cache สวนตัวผลิตการอานและเขียนขอความ ผิดพลาดโดยจะสงไปยัง home directory อานและเขียนขอผิดพลาดตอบสนองคาของ ขอมูลทีต่ อ งการและสิง่ เหลานีจ้ ะคอยผลสําหรับการตอบสนองกอนการเปลีย่ นสถานะ การดําเนินงานของการเปลีย่ นสถานะ diagram สําหรับ cache block ในรูป 8.24 เหมือนกันอยางขาดไมไดที่มันจะใชสาหรั ํ บ snooping case สถานะทีเ่ หมือนกันทุก ประการและสิง่ ทีก่ ระตุน เกือบจะเหมือนกันหมด เขียนขอผิดพลาดในการดําเนินงาน การกระจายเสียงบน bus ใน snooping scheme คือการแทนทีโ่ ดย fetch ขอมูลและ การดําเนินการทีไ่ มถกู ตองทีส่ ามารถเลือกสงได โดยการควบคุม directory เหมือน snooping protocol cache block ตองอยูใ นสถานะเฉพาะตัวเมือ่ มันเขียน และการแบง block บางอันตองขึน้ อยูก บั วันทีใ่ น memory ใน directory-base protocol directory จะปฏิบตั คิ รึง่ อืน่ ๆของ coherence protocol ขอความทีส่ ง ถึง directory มีเหตุผลสองชนิดทีแ่ ตกตางกันของการกระทํา : การ update สถานะของ directory และสงขอความเพิม่ ถึงความพอใจในการขอรอง สถานะใน directory แสดงสามสถานะสําหรับ block แตสาหรั ํ บ cache copies ของ memory block คอนขางจะมากกวาสําหรับ cache block memory block อาจจะ uncache โดย node บางอัน cache ใน node หลายๆเทาและการอาน ( การแบง ) หรือ cache เฉพาะและเขียนอยางถูกตอง
จากรูป 8.24 เปนการเปลีย่ นสถานะ diagram สําหรับ cache block สวนตัวใน directory-base system หนึง่ node ในการเพิ่มสถานะของแตละ block directory ตอง set processor ที่ มีการ copy ของ block เราใชการ set เรียกผูแ บงถึงการกระทําของ function ใน เครือ่ งวัดขนาดเล็ก ( <= 128 nodes ) set ชนิดเก็บที่ bit vector ในเครือ่ งทีใ่ หญกวา , techniques อื่นๆ พวกเราจะตอบในแบบฝกหัดทีต่ อ งการ จากรูป 8.25 แสดงการกระทําที่ directory ใน การตอบสนองการรับขอมูล directory จะรับสามความแตกตางทีข่ อรอง : อานขอผิดพลาด , เขียนขอผิดพลาด ,
จากรูป 8.25 เปนการเปลีย่ นแปลงสถานะ diagram สําหรับ directory ทีม่ สี ถานะ เหมือนกันและโครงสรางการเปลีย่ นแปลง diagram สําหรับ cache สวนตัว และการเขียนขอมูลกลับ ขอความทีส่ ง ในการตอบสนองโดย directory แสดงใน italics ขณะทีก่ าร update ของการตั้งคาผูใชที่แสดงใน bold italics เพราะการกระตุน ขอความทัง้ หมดเปนการกระตุน ภายนอก การกระทําทั้งหมดจะแสดงใน gray การเขาใจการดําเนินงานของ directory การทดสอบยอมรับการขอรองและการ กระทําของสถานะโดยสถานะ เมือ่ block ในสถานะ uncache copy ใน memory ทีม่ ี คาปจจุบนั ดังนัน้ ปญหาการขอรองสําหรับ block คือ - Read miss การขอรอง processor ทีส่ ง ขอมูลทีข่ อรองจาก memory และ ผูขอรองใน การทําการแบง node สถานะของ block จะทําการแบง Write miss: สิง่ ที่ processor ตองการคือการสงคาและกลายมาเปนการรวม node block คือ การทําใหเห็นถึงลักษณะเฉพาะ มันเปนเพียงการ copy ของ cache มันจะแสดงการรวมความโดดเดนของ owner เมือ่ อยูใ น block คือการกลาวรวมกับคาของ memory จะเพิ่มขึ้น ดัง นั้นจะมีสามารถ 2 อยางทีเ่ ราตองการ Read miss: สิง่ ที่ processor ตองการคือความตองการทีจ่ ะสงขอมูลจาก memory และ สิง่ ที่ processor ตองการคือ เพิม่ การรวมคาทีต่ ง้ั ขึน้ Write miss: สิง่ ที่ processes ตองการคือ การสงคาซึ่ง processes ทัง้ หมดในกา set มันจะรวมการสงขาวสารทีเ่ ปน invalidate และการรวม set คือประกอบไปดวยความโดดเดน ของความตองการของ processor state ของ block คือการทําโดยเฉพาะ เมือ่ อยูใ น block คือในความเฉพาะของ state ของคาของกระแสของ block คือ การเขาใน cache ของความโดดเดนของ processor โดยการ set shares (the owner) ดังนัน้ มี ความตองการ 3 อยางของ directory Read miss: owner processor คือการแทนทีข่ อง block และดังนัน้ มันจะตองเขียนกลับ ไป ตองทําใหการ copy ของ memory พัฒนาขึ้น(directory ที่จริงจะกลายเปน owner) block คือ now uncache แบะ sharer set จะวาง Write miss: ใน block จะมี owner ทีใ่ หมขาวสารคือ การสง old owner เปนสาเหตุ ในการสงคาของ cache ของ directory ของ block ซึง่ มันจะสงความตองการของ processor สิ่งซึง่ กลายมาเปน new owner การ shares คือการ set ความโดดเดนของ new owner และ
state ของ block ทีย่ งั คงความเฉพาะตัวนี้ การเปลีย่ นแปลงของ state ในรูป 8.25 คือการทําให งายมันจะอยูใ นกรณีของ snooping cache ในกรณีของ directory มันจะมีความงายมาก ตัง้ แต การตัง้ สมมุตฐิ านนัน้ bus transactions จะมีการประยุกต atomic ทีไ่ มยาวในอีกทางหนึง่ directory protocol จะใชอปุ กรณทด่ี ซี ง่ึ เปนการประกอบไปดวยประสิทธิภาพทีด่ ี โดยเฉพาะ block คือการสง directory แรกไปที่ home node จากนีม้ นั จะเก็บเขาไปที่ home memory และการตองการทีจ่ ะสง node แบบ original protocol ทั้งหลายในการกอใหเกิดอุปกรณทจ่ี ริง จากขอมูลของ node ไปยังความตองการของ node (ทางทีด่ จี ะแสดงการ write back ไปที่ home)ประสิทธิภาพไมรวมความยุง ยากของ protocol แตเขาทัง้ หลายจะเคลือ่ นไหวบอยๆ ทีม่ ี สวนประกอบมากมายจากการออกแบบของ one part Performance of Directory-Based Coherence Protocols ประสิทธิภาพของ directory-based machine จะขึน้ อยูก บั factor ทีเ่ หมือนกัน นัน่ จะ เปนอิทธิพลของประสิทธิภาพของ bus-based machines (เชน cache size, processor count และ block size) การกระจายทีด่ ขี อง miss ถึง location ไดหลากหลายในชั้นของ memory location ของขอมูลทีต่ อ งการ location ของขอมูลทีต่ อ งการซึง่ ขึน้ อยูก บั การแบง initial ของ ทั้งคูและรวมกันพูดคุยกัน เราจะเริม่ ตนโดยการตรวจสอบประสิทธิภาพพืน้ ฐานของ cache ของโปรแกรม workload ประเภทเดียวกันและเราจะมองเห็นปฎิกริ ยิ าของความแตกตางของ ชนิดของ miss เพราะวาอุปกรณคอื ใหญและมีศกั ยภาพทีย่ าวของ snooping ทีเ่ ปนพื้นฐานของ multiprocessor เราจะเริม่ ตนกับ cache ทีใ่ หญ(128 KB) และ block size ของ 64 byte ใน การแบงสถาปตยกรรมของ memory การแบงของ memory ตองการระหวาง local และ remote คือkey ของประสิทธิภาพเพราะวามันกระทบกับการ consumption ทัง้ คูข อง bandwidth ทีเ่ ขาใจงายและความตองการของ latency ทีเ่ ห็น สําหรับรูปนีเ้ ราแบง cache miss เขาไปใน local และความตองการของ remote ในรูปทีเ่ ห็นนีส้ ําหรับการประยุกตโดยมากของ remote miss นัน้ จะเกีย่ วกับ miss อยางไรก็ตาม capacity miss สามารถเปน remote ดวยและ มีการประยุกตกบั การแบงขอมูลทีน่ อ ย miss สามารถสังเกตได จากรูปที8่ .26 miss rate กับ cache size ไมมผี ลกระทบโดยการเปลีย่ นแปลงการนับ ของ processor กับขอยกเวนของ Ocean เปนทีซ่ ง่ึ มี miss rate ที่ 64 processor rise เกิด
ขึน้ เพราะวาแผนที่ของความขัดแยง ใน cache ที่เกิดขึน้ เมือ่ มันกลายเปน grid เล็กๆของ rise ใน local miss เพราะ rise ใน coherence miss สิง่ ซึง่ เปน remote ทัง้ หมด รูปที8่ .27 แสดงการเปลีย่ นแปลงของ miss rate การเพิ่มของ cache size 64 processor อยางไรก็ตามผลกระทบของ dampening โดยเล็กๆนอยหรือไมลดลงในผูน ําของ coherence miss ทีล่ ดลงใน remote miss ใน local miss โดยเวลาของเราไปยัง cache size ใหญๆ 512 KB remote miss rate คือ การเทากันหรือความใหญของ local miss rate ความใหญของ cache ควรจะดําเนินตอไปถึงแรงแนวโนมนาว ในที่สุดเราจะตรวจสอบผลกระทบการเปลีย่ นของ block size ในรูป 8.25 เพราะวามี การประยุกตทม่ี พี น้ื วางทีด่ ี เพิ่มขึ้นใน block size ของ miss rate สําหรับ block ทีใ่ หญ อยางไรก็ตามประสิทธิภาพของความไดความชวยเหลือของ block ใหญและ block เล็ก โดย เฉพาะอยางยิง่ โดยมากของการปรับปรุงใน miss rate มาใน local miss การเดินทางของ memory ทีว่ าง รูปที่ 8.25 ตัวเลขของขอคิด ของความตองการของ byte โดยการอางถึงขอมูลของดูของ block size ความตองการของการหยุดเขาไปถึง local และ global bandwidth ในกรณีของ bus เราสามารถเปนเพียงจํานวนทัง้ หมดทีต่ อ งการของ processor ไปหาผลรวมของความตองการสําหรับ bus และ memory bandwidth สําหรับตา รางทีเ่ กีย่ วของกัน เราสามารถใชขอมูลในรูป 8.29 ที่จะคํานวณความตองการของ per-node global bandwidth และการประมาณการแบงของ bandwidth ดูตวั อยางถัดไป
รูป 8.26 อัตราการหายไปของ data สวนใหญจะคงทีถ่ า processor ถูกเพิ่มเขาไป เนื่องจากมันเปนโครงสรางแบบตาราง สําหรับ Ocean ในตอนแรกจะมีการลดลงของ อัตราการหายไป ซึ่งเพิ่มขึ้นเมื่อมี 64 processor สําหรับ Ocean แลว local miss late จะลด ลงจาก 5 % ที่ 8 processor ไปเปน 2 % ที่ 32 processor กอนทีจ่ ะเพิม่ ขึน้ ไปเปน 4 % ที่ 64 processor สวน remote miss rate ใน Ocean ซึง่ สวนใหญเกิดจากการติดตอสือ่ สาร ซึ่ง remote miss rate จะเพิม่ ขึน้ อยางเดียว จาก 1 % ไปเปน 2.5 % สังเกตวาการแสดงราย ละเอียดของแตละยี่หอนั้น สเกลทีแ่ ตกตางกันจะถูกนํามาใชในแกน Y ทุกยีห่ อ ใช cache 128 KB ซึง่ เปน two-way set associative และ 64 - byte block Remote miss รวมถึง misses ใด ๆ ก็ตามทีต่ อ งการติดตอกับ node อืน่ ๆ ไมวา จะเปนการรับขอมูลหรือสง invalidate โดยเฉพาะในรูปนี้ และ data อืน่ ๆ ใน section นี้ การหาคาของ remote miss จะรวมการเขียนเพือ่ upgrade miss ซึ่ง data นีจ้ ะ up to date ที่ local memory แต cache ไม up to date ดังนัน้ มันตองการ การสง invalidation ซึ่ง invalidation เหลานี้ จะสราง remote traffic อาจจะทําหรืออาจจะไมทาให ํ การเขียนขอมูลซํา้ ขึน้ อยูก บั แตละ model
รูป 8.27 miss rate จะลดลง ถา cache เพิ่มขึ้น การลดลงอยางคงทีจ่ ะเห็นไดจากใน local mlss rate ในขณะที่ remote miss rate ลดลงอยางไมคงทีข่ น้ึ อยูก บั วา remote miss rate มีความจุมากหรือไมหรือปจจัยทีส่ าคั ํ ญของ remote miss rate คือ communication miss ในทุกกรณี การลดลงใน local miss rate จะมากกวาการลดลง ใน remote miss rate จากกราฟ miss rate ของ FFT ซึง่ จะกลาวถึงใน section สุด ทายนัน้ จะลดลงถา cache มากกวา 128KB ซึง่ ทํางานบน 64 processor และ 64 byte block
รูป 8.28 Data miss rate กับ block size โดยให cache เปน 128-KB และ และ 128 processor แมวา มันจะยากทีจ่ ะเขาใจ miss rate ใน Barnes มันเพิ่มขึ้นถา block size ขนาดใหญทส่ี ดุ ซึง่ จะกลาวถึงใน section สุดทาย ตัวอยาง สมมติวา มัลติ processor 64 procrssor แตละ processor มี 200MHZ สําหรับ 64 byte block size remote miss rate คือ 0.7% ใหหาตอ node และ ประมาณคา bandwidth สําหรับ FFT สมมติวา processor ไมมกี ารหนวงเวลา สําหรับการตองการ remote memory สิง่ เหลานีอ้ าจจะถูกถา remote data ทัง้ หมดถูก รับเราจะเปรียบเทียบความตองการ bandwidth กับ technology ตางทีม่ กี ารติดตอกันได อยางไร
รูป8.29 คํานวณของ Byte ตอ data reference เมือ่ block size เพิ่มขึ้น data เหลานี้ สามารถใชหาความตองการ bandwidth ตอ node ทัง้ ภายในและโดยรวม data นี้ สมมติวาใช 128KB cache สําหรับแตละ 64 processor คําตอบ Bandwidth ตอ node คือจํานวนของ data byte ตอ reference time reference rate คือ 0.77%*200*64 = 90 MB/sec อัตราทีไ่ ดนป้ี ระมาณครึง่ หนึง่ ของ bandwidth ทีเ่ ร็วทีส่ ดุ ของ MPP ทีม่ อี ยูใ นป 1995 bandwidth ของ FFT ตอ node ตองการใหเร็วกวา ATM ทีเ่ ร็วทีส่ ดุ ในป 1995 ประมาณ 5 เทาและเร็วกวา ATM รุนถัดไป FFT จะทําการติดตอกันทุกอยาง ดังนัน้ bandwidth จะเทากับ 32 ของ bandwidth ตอ node หรือประมาณ 2,880 MB/sec สําหรับเครือ่ งทีม่ ี 64 processor ที่จดั อยูใ นแบบ 20 mesh bandwidth จะมากขึน้ ตามสแควรูทของจํานวน processor ดังนัน้ สําหรับ 64 processor bandwidth จะเทากับ 8 เทาของ bandwidth ตอ node ในป 1995 MMP style ไดเสนอ bandwidth 200 MB/sec ในการติดตอไปยัง node เพื่อ ใหไดผลรวมเปน 1600 MB/sec สําหรับ 64 processor ทีเ่ ปน 3D จะมี bandwidth เปน 2
เทา คือ 3200 MB/sec ซึง่ เกินกวา bandwidth ทีต่ อ งการ สําหรับ 2D รุน ถัดไปก็ยงั ถูกคาด วาจะได bandwidth ตามทีต่ อ งการ ป 1995 ATM ทีม่ ี 64 x 64 crossbar จะมี bandwidth 1200 MB/sec และ ATM รุน ถัดไปก็จะมี bandwidth เปน 4 เทา ตัวอยางทีผ่ า นมา เนนไปยังความตองการ bandwidth สิง่ ทีส่ าคั ํ ญ อันอืน่ สําหรับ parallel program คือ เวลาทีใ่ ชในการเขาถึง remote memory การทีจ่ ะเขาใจสิง่ เหลานีเ้ รา จะใชตัวอยางงาย ๆ ของ directory-base macthine ดังรูปที่ 8.30 ไดแสดงถึงคาตาง ๆ ที่ เราสมมติสาหรั ํ บ simple machine สมมติวา เวลาทีค่ าแรก ํ จะเขาถึง memory คือ 25 รอบ และทางทีจ่ ะไปยัง local memory กวาง 8 byte ในขณะที่ การติดตอกันของ network กวาง 2 byte รูปแบบนีจ้ ะไมสนใจผลของ contention ซึง่ อาจจะไมรนุ แรงมากนัก ใน ระบบ parallel ที่เราทดสอบ กับขอยกเวนทีเ่ ปนไปไดของ FFT ซึง่ ใชตดิ ตอระหวางกัน ทัง้ หมด contention นีส้ ามารถทีจ่ ะมีผลตอประสิทธิภาพอยางรุนแรงในงานดานอืน่ ๆ
รูป 8.30 ลักษณะของ directory-base machine ตัวอยาง Misses สามารถเปนไปได ทั้งบริการเฉพาะที่ remote home node หรือใชบริการทัง้ home node และ remote ตัวอืน่ ๆ ซึ่ง caching เหลานีเ้ รียกวาเปน exclusive copy กรณีสดุ ทายเรียกวาเปน 3-hop miss และมีคา ใชจา ยทีส่ งู กวาเพราะวามันตองการสอบถามทัง้ home directory และ remote cache สังเกตวา model นี้ ไมนบั เวลาในการ invalidation network แบบนีจ้ ะประสบความ สําเร็จในป ค.ศ. 1995-1996
รูป 8.31 แสดงคาใชจายในรอบสําหรับการอางถึง memory โดยเฉลีย่ สมมติใชคา ตาง ๆ ตามรูป 8.30 แตละแทงกราฟจะแสดงใหเห็นถึง การชวยเหลือจากการใช cache local miss, remote miss และ 3 hop remote miss คาใชจา ยนีถ้ กู บังคับโดยผลรวมของ ความถี่ของ cache miss และการ upgrade เชนเดียวกันกับโดยการกระจายของตําแหนง ซึ่ง miss ถูกพอใจ คาใชจายสําหรับการอางถึง remote memory มันจะคงที่ แมวา processor count จะเพิ่มขึ้น ยกเวน Ocean การเพิ่มขึ้น เราควรจะคาดวาเวลาที่ใชในการ อางถึง memory จนเพิ่มขึ้นดวยแมวา รูปที่ 8.31 จะแสดงคาใชจายในการเขาถึง memory ซึง่ เปนคาใชจา ยทีส่ าคั ํ ญ ใน multiprocessor ในทีน่ ้ี รูปแบบของประสิทธิภาพทีส่ มบูรณ จะตองพิจารณาผลของ contention ในระบบ memory เชนเดียวกันกับ การหายไปทีเ่ พิม่ ขึน้ จากความลาชาในเวลาเดียวกัน ในหัวขอที่ 8.8 เราจะไปดูถงึ ประสิทธิภาพทีแ่ ทจริง ของระบบ SGI Challenge protocols ทีต่ ดิ ตอกันซึง่ เราไดพจิ ารณามามากแลว มีสมมติ ฐานหลาย ๆ อยาง ในทางปฏิบตั ิ protocols ตองติดตอ กับสิง่ 2 อยาง คือ nonatomicty of
operations และ finite buffering เราไดเห็นแลววาทําไมการจัดการทีแ่ นนอนถึงไม สามารถเปน atomic ไดในเครื่อง DSM ปจจุบนั มี buffer จํานวนจํากัดทีจ่ ะเก็บ ขอความ ที่ตองการ และตอบกลับสิง่ อืน่ ๆทีเ่ ปนไปได สําหรับ deadlock ความทาทาย ในการออก แบบ เพื่อจะสราง protocols ที่ทํางานไดอยางถูกตอง โดยปราศจาก deadlock โดยการใช nonatomic action และ buffer ที่จํากัด ปจจัยเหลานีจ้ ะเปนความทาทายพืน้ ฐานในระบบ parallel ทัง้ หมด และคําตอบสามารถทีจ่ ะเปนไดหลากหลาย ทัง้ ใน hardware และ software เพราะวาปจจัยนีซ้ บั ซอนมากและก็ไมจาเป ํ นสําหรับการสรุป ในสวนทีเ่ หลือ ของบทนี้
รูป 8.31 ประสิทธิผลของ การอางถึง memory ในเรือ่ ง DSM ขึน้ อยูก บั ความ สัมพันธของ cache misses ทีเ่ กิดบอย ๆ และตําแหนงของ memory ทีม่ กี ารเขาถึง กราฟนี้ แสดงถึงคาใชจายในการเขาถึง memory สําหรับแตละยีห่ อ ทีม่ ี 8, 16, 32 และ 64 processor โดยใช 128 KB data cache และมี set 2 ทาง กับ 64 byte block คาใชจายใน การเขาถึง memory โดยเฉลีย่ ประกอบดวยสวนตาง ๆ ในการเขาถึง 4 อยาง ซึ่งไดแสดง แลวในรูป 8.30 สําหรับยีห่ อ barnes และ LU มี miss rate ทีต่ า่ํ โดยทําใหเวลาในการเขา ถึงตําด ่ วย ในยีห่ อ FFT คาใชจา ยในการเขาถึงทีส่ งู กวาถูกพิจารณาโดย local miss rate ที่ สูง (4 %) และ 3 hop miss rate (1 %) ยีห่ อ สุดทายคือ Ocean แสดงใหเห็นถึงคาใชจาย ใน การเขาถึง memory ทีส่ งู ทีส่ ดุ คาใชจา ยทีส่ งู นี้ เปนผลมาจาก local miss rate ทีส่ งู (เฉลีย่
1.4 %) คาใชจายในการ เขาถึง memory ลดลงจาก 8 ไปยัง 32 processor ที่ 64 processor ขอมูลมีขนาดเล็กมาก ที่จะสรางความสัมพันธ ไดเหมาะสม และทั้ง local miss และ coherence miss ก็สงู ดวย ดังจะเห็นไดจากรูป 8.26 8.5 Synchronization การ Synchronization ถูกสรางขึน้ กับ software ในสวนของผูใ ชโดยอาศัย โครง สรางทาง Hardware สําหรับเครือ่ งเล็ก ๆ หรือมีการแขงขันนอย ความสามารถของ hardware เปนสิ่งที่ไมสามารถขัดขวางได หรือโครงสรางทีต่ อ เนือ่ งโดยการรับและ เปลีย่ นแปลงคา software synchronization ถูกสรางโดยอาศัยความสามารถนี้ เชน เราจะ เขาใจวาประสิทธิภาพในการล็อคการหมุน สามารถทีจ่ ะถูกสรางโดยการใช โครงสราง ของ Hardware Synchronization อยางงาย ๆ และวิธกี ารทีต่ ดิ ตอกันในเครือ่ งทีใ่ หญ ๆ หรือ มีการแขงขันมาก Synchronization สามารถจะกลายเปนคอขวดของประสิทธิภาพ เพราะวา การนําไปสูการแขงขันจะลาชา และเครื่องนี้มีประสิทธิภาพมาก เราจะเห็นได อยางไรวา การแขงขันสามารถเกิดขึน้ ในการสงเสริม การจัดการในสวนของ user บาง อยาง และทดสอบ ความสามารถของ hardware ที่ support synchronization และสามารถ ลดการแขงขันลงได เราเริม่ ตนโดยการทดสอบ พื้นฐานของ hardware แลวสราง Synchronization routine ขึ้นมาหลาย ๆ อยาง แลวหันกลับไปหาปญหาในเรือ่ งประสิทธิ ภาพ ในเครื่องขนาดใหญ และวิธกี ารแกปญ หานัน้ ๆ Basic Hardware Primitives ความสามารถทีเ่ ราตองการในการสนับสนุน synchronization ใน multiprocessor คือ กลุม ของ hardware ทีส่ ามารถทีจ่ ะอานหรือแกไขตําแหนงของ memory เล็ก ๆ นอย ๆ ถาไมมีความสามารถเหลานั้นแลว คาใชจายในการสราง synchronization พืน้ ฐานจะ สูงมากและจะเพิ่มขึ้นถา processor เพิ่มขึ้น มีจํานวนของทางเลือก ของ hardware พื้น ฐาน ซึ่งทั้งหมดนั้นไดจัดใหมีความสามารถในการอานหรือแกไขตําแหนงเล็ก ๆ นอย ๆ ได พรอมกับมีวธิ ที จ่ี ะบอก ถาการอานและการเขียนนัน้ ถูกกระทํา hardware เหลานี้ คือ กลุมของโครงสรางพื้นฐานซึ่งใชในการสราง การจัดการในสวนของ user ใหมีความ แตกตางกัน รวมทัง้ สิง่ ทีเ่ รียกวา lock และ barrier โดยทัว่ ๆ ไปแลว สถาปตยกรรมไมได ขาดหวังวา ผูใชจะใช hardware พืน้ ฐาน แตควรจะคาดหวังวา hardware พืน้ ฐานเหลานั้น
จะถูกใชโดย system programmer เพือ่ ทีจ่ ะสรางหองสมุด ของ Synchronization ขบวน การเหลานี้มีการซับซอนมาก และพลิกแพลงมาก โดยเริม่ start กับ hardware 1 อยาง และแสดงวามันสามารถที่จะใชสราง synchronization operations พืน้ ฐานไดอยางไร การจัดการอยางหนึง่ สําหรับการสรางการจัดการ synchronization คือ atomic exchange ซึง่ มีการแลกเปลีย่ นคาภายใน ใน register สําหรับคาทีอ่ ยูใ น memory เพือ่ ทีจ่ ะ ใหเขาใจวาจะใช สิง่ เหลานีใ้ นการสรางการจัดการ Synchronization พืน้ ฐานไดอยางไร โดยสมมติวา เราตองสราง lock อยางงาย ๆ โดยคา 0 จะใชแทน lock ทีว่ า ง และ 1 จะใช แทน lock ที่ไมวาง processor จะพยายามทีจ่ ะเซ็ทคา lock โดยทําการเปลีย่ นคาของ 1 กับ ตําแหนงใน memory ทีส่ อดคลองกับ lock นั้น คาจะถูกสงกลับมาจากการ exchange เปน 1 ถามีบาง processor ใชตาแหน ํ งนัน้ อยูใ นกรณีอน่ื จะ return 0 ในกรณีตอมา คาจะถูก เปลี่ยนเปน 1 เพือ่ ปองกันการเปลีย่ นแปลง จาก 0 ตัวอยาง เชน พิจารณา 2 processor ทํา การเปลีย่ นแปลงกอน มันจะ return คา 0 สวน processor ที่ 1 จะ return คา 1 เมื่อมันไมมี การเปลี่ยนแปลง กุญแจสําคัญที่ใช ในการเปลีย่ นแปลง ในการสนับสนุนการจัดการใน ระบบ Synchronization คือ atomic มันเปนไปไมได สําหรับ 2 processor ทีพ่ ยายามทีจ่ ะ เซ็ทคา Synchronization พรอม ๆ กัน ยังมีวธิ อี น่ื อีกทีใ่ ชในการสงเสริม Synchronization มันจะมีคาคุณสมบัติซึ่งไดจาก การอานหรือแกไขคาใน memory ซึง่ เราสามารถทีจ่ ะบอกไดหรือไม ไดวา 2 การจัดการ ใด ๆ จะทําแบบ atomic การจัดการ ที่ 1 จะมีอยูใ นเครือ่ งรุน เกาซึง่ เรียกวา test-andincrement โดยมันจะสงคาของตําแหนงใน memory กลับมาและเพิ่มคามัน โดยใชคา ที่ เปน 0 แทน ตัวแปรของ Synchronization ทีไ่ มไดใช เราสามารถที่จะใช วา test-andincrement เหมือนกับการใชการแรกเปลีย่ น ยังมีวธิ อี น่ื ๆ อีกทีเ่ หมือนกับ วา test-andincrement ซึง่ เราจะอธิบายมันสัน้ ๆ ความแตกตางเพียงเล็กนอยไดทําใหมีการใชการอานและการแกไขในเครื่องรุนใหม ๆ การสงเสริมการจัดการ memory แบบเดียว ๆ มีความทาทายมาก เนือ่ งจากมันตองการ ทัง้ การอาน และการเขียน memory ในเวลาเดียวกัน และไมสามารถที่จะขัดขวางได ความซับซอน นีเ้ ปนการสงเสริมการรวมกัน เนือ่ งจาก hardware ไมอนุญาตใหมกี ารจัด การอืน่ ๆ ในระหวางการอานและการเขียน และตองไมเปน deadlock ทางเลือกอีกทาง หนึ่งคือตองมีคขู องโครงสราง ซึง่ โครงสรางที่ 2 จะสงคา ที่สามารถลดไดมาจาก การทํา
ใหสําเร็จของอีกโครงสรางหนึง่ คูข องโครงสรางนี้ จะปรากฏแบบเล็ก ๆ ถามันปรากฏวา มีการจัดการอื่น ๆ ทํางานกอน หรือหลังโครงสรางนีด้ งั นัน้ เมือ่ คูข องโครงสรางนีท้ ํางาน จะไมมี process อืน่ ๆ เปลีย่ นแปลงคาระหวางนีไ้ ด คูข องโครงสรางนีจ้ ะรวมการนําเขาพิเศษ ซึง่ เรียกวา load linked หรือ load locked และจะมีการเก็บแบบพิเศษ ซึง่ เรียกวา store conditional โครงสรางแบบนีจ้ ะถูกใชตาม ลําดับคือ ถาเนือ้ ของตําแหนงใน memory ทีถ่ กู ระบุโดย load linked ถูกเปลีย่ นแปลงไป กอน store conditional ทีต่ ําแหนงเดียวกันดังนัน้ store conditional จะใชไมไดถามีการ สับเปลีย่ นระหวาง 2 โครงสราง ดังนัน้ store conditional จะใชไมไดเหมือนกัน store conditional ถูกสรางขึน้ มาเพือ่ ทีจ่ ะสงคากลับวา การจัดเก็บนัน้ สําเร็จหรือไม load linked จะสงคาเริม่ ตนกลับและ store conditional จะสงคา 1 กลับถาสําเร็จ และถาไมสําเร็จจะ สง 0 กลับ ตัวอยางขางลางนีจ้ ะแสดงการแลกเปลีย่ นตําแหนงใน memory มากกวา 30,000 รอบ สําหรับ processes ในการผานเขาไปยัง lock แตอยางไรคาเฉลีย่ ของ processor จะใชเพียงครึง่ หนึง่ ของเวลาจริง การพยายามทีจ่ ะไปยังlock มีเลขของ bus transaction รวมกันมากกวา 400 Event Read miss by all waiting processors to fetch lock (20*50) Write miss by releasing processor and invalidates Read miss by all waiting processors (20*50) Write miss by all waiting processors,one successful lock(50), and invalidation of all lock copies(19*50) Total time for one processor to acquire and release lock clocks
Duration 1000 50 1000 1000 3050
รูป 8.33 สําหรับ lock เมือ่ มี 20 processor เวลาในการครองกับปลอย จะเปน single lock มีเพียง bus transection ทีใ่ ช 50 clock cycles ความยากของคําถามนี้เกิดขึ้นสําหรับความพอใจของlockและการเขาถึง lock แตอยางไรก็ดจี ะเกีย่ วกับlatencyของการเขาถึงbusดวย busที่อยูอ ยางเปนระเบียบ
เรียบรอยจะไมดี มันจะทําใหprocessorชา จะมีการทําการlockจากการปลอยbus สําหรับbusที่ไมดีจะมี worst-case scenario อยูด ว ย ปญหาจริงๆก็คอื ลําดับของ processor ของ lock สิง่ ทีส่ าคั ํ ญของขอดีคือ spin lock จะมีbus หรือ รอบของ networkนอยและทําใหมปี ระสิทธิภาพดีเมือ่ นํา lock กลับมาใชใหมโดยprocessorที่ เหมือนกันคือทัง้ คูจ ะสูญเสีย ในตัวอยาง เราจะพิจารณาการทํางานของอุปกรณใน หมวดถัดไป แตกอ นทีเ่ ราจะทํานัน้ อยาลืมทีจ่ ะพิจารณา ในการ spin lock ไปถึงการ รวมกันของ synchronization ลําดับสูงๆ Barrier synchronization การจัดการของการเพิม่ synchronization ในโปรแกรมจะเปรียบเสมือน loop คือ Barrier Barrier เปน processes ของแรงทัง้ หมดถึงจะคอยจนกระทัง่ processor ทัง้ หมดเขาถึง barrier และมากกวา processes ที่จะปลดปลอยทัง้ หมด barrier คืออุปกรณธรรมดาทีส่ ามารถทีจ่ ะ spin ใหเขา lock ได 2 วิธี คือ 1. ใชอปุ กรณในการปองกันทีจ่ ะ processes ทีจ่ ะเขาถึงทีข่ อง barrier 2. จะถือ processes จนกระทัง่ ถึง process ลาสุดทีจ่ ะเขาถึงทีข่ อง barrier ปกติ barrier ของเราจะใชความสามารถในการ spin บนตัวแปรจนกระทัง่ มันแนใจทีจ่ ะ ทดสอบ เราจะใชเครือ่ งหมายในการตัง้ เงือ่ นไขทีแ่ สดงนี้ รูป8.34 คืออุปกรณธรรมดา ของการจัดเตรียม lock และ unlock ทีจ่ ะ spin lock และการรวมคือการ processes ของตัวเลขทีต่ อ ง barrier
lock (counterlock); /* ensure update atomic */ if (count = = 0) release=0 ; /* first =>reset release */ count = count + 1; /* count arrivals */ unlock (counterlock); /* release lock */ if (count = = total) { /* all arrived */ count = 0; /* reset counter */ release = 1; /* release processes */ }
else { /* more to come */ spin (release = = 1); /* wait for arrivals */ }
รูป8.34 Code for a simple barrier การ counter lock จะปองกันการ counter มันสามารถทําให atomically เพิ่มขึ้น ตัวแปรของ count จะเก็บคาของ processes ทีม่ ี การเขาถึง barrier ตัวแปร release คือ ใช processes จนกระทัง่ ถึง barrier สาสุด การ processor ของ(reiease=1) สามารถ process จนกระทัง่ processes หมด ในการฝกหัด มันจะทําใหยงุ ยากทีจ่ ะ processes การใช barrier จะบอย คือ การเขาถึง loop ดังนัน้ processes ในการปลอยจาก barrier ควรจะทํางานเหมือน กันดังนี้ สมมุตมิ กี าร processesซึง่ ไมเคยออกจาก barrier เลย(มันจะอยูท s่ี pin) สิง่ ใด ควรจะเกิดขึ้นถามีตาราง process ของ OS สําหรับตัวอยาง ปจจุบนั มันจะเปนไป ไดทจ่ี ะ process หนึง่ ครัง้ เพือ่ เขาถึง barrier อีก การดําเนินการลาสุดซายมือ ความเร็ว ในการ process จะดําเนินการชามากๆ ใน barrier โดยการ reset ทีก่ ารปลอย ปจจุบนั การ processes ทั้งหมดจะมากมายทีเ่ ปนตังอยางของ barrier นี้ เพราะมีการ processes หนึ่งที่ชามากๆและมีเลขในการ processes สามารถทีจ่ ะรวมกันไว ความ สําคัญในการรักษาคือ โปรแกรมจะไมมสี ง่ิ ใดผิด การแทนทีจ่ ะสนับสนุนการทํา barrier โดยนึกการ processes ยอนที่ไมสามารถสมมุติ จะมีสง่ิ หนึง่ ทีป่ รากฏชัดคือ การนับการ processes ของ barrier และไมอนุญาติการ process ของ barrier และจะ processes barrier ซอนกัน นีค้ อื การแสดงการเพิม่ latency ของ barrier ซึง่ จะลําดับ มา สิง่ ทีเ่ ราเห็นจะเล็กแตกอ นจะใหญ ของการสลับความสมบูรณคอื sense-reversing barrier สิง่ ซึง่ ใชทาให ํ เห็นตัวแปรที่ processes การเริม่ ตน local-sense คือ สิง่ ที่ initialized ถึง 1 สําหรับการ process เพียงอันเดียว รูป8.34 แสดงสัญลักษณสาหรั ํ บ
sense-reversing barrier นีค่ อื รูปแบบของ barrier จะปลอดภัย อยางไรก็ตามตัวอยาง ถัดไปจะแสดงใหเห็นวามันสามารถคงอยูข องประสิทธิภาพอยางเงียบๆ
local_sense = ! local_sense; /* toggle local_sense */ lock (counterlock) ; /* ensure update atomic */ count = count+1; /* count arrivals */ unlock (counterlock) ; /* unlock */ if (count = = total) { /* all arrived */ count = 0 ; /* reset counter */ release = local_sense; /* release processes */ } else { /* more to come */ spin (release = = local_sense) ; /* wait for signal */ } รูป8.35 Code for a sense-reversing barrier หลักการในการทํา barrier คือ ใชการสลับแผนของคาทีป่ ลอย สิง่ ซึง่ จะควบคุมจาก barrier การ processes เร็วมากจะไมดี จะมีการตัง้ คาและปลอยมันในรูป8.34 ตัวอยาง มีการ processors 20 ครั้ง บน bus จะพยายาม execute เร็วมี bus transaction 50 รอบ เราจะไมสนใจเวลาในการอานและเขียนของ lock ใน cache ตอน execute จะมีการจัดการของ nonsychronization ใน barrier และตอนออกจาก barrier สมมุตผิ ลรวมของ bus ดังนั้นการตองการใชทกุ ๆสิง่ คือ การบริการกอนทีจ่ ะ ตองการการ processors อยางรวดเร็ว ไมตอ งกังวลเกีย่ วกับ counting ของการ processors ของ barrier จะใชเวลาอยางไงทีจ่ ะ process
คําตอบ ตามตารางจะแสดงลําดับสําหรับการ processor หนึง่ ถึงอุปสรรคของ barrier สมมุติวาการ process ครัง้ แรกจะลาก bus โดยจะไมมี lock Event Duration in clocks clock For one processor Time for each processor to grab lock, 1,525 increment, release lock Time to execute release 50 Time for each processor to get the release flag 50 Total 1,625
Duration in for 20 processors 30,500 50 1,000 31,550
การ processor จะใชเวลามากมี 20 processor ที่ lock-unlock ตามลําดับ เราจะ พิจารณากันแตแรก ตัวเลขของผลรวมของ bus transactions คือ ประมาณ 440 เราจะสามารถเห็นจากตังอยาง ประสิทธิภาพของ synchronization สามารถมีกระบวนการผลิตชาลงจริงๆ เมือ่ มีการ processes ของ multiple เมือ่ มีสง่ิ ที่ ไมพอใจนิดหนอยและการจัดการ synchronization คือเกิดขึน้ ไมบอ ย พวกเราสวนใหญ จะเอาใจใสเกีย่ วกับศักยภาพของ synchronization นัน่ คือมันจะทํางานอยางไรของการ process เฉพาะบุคคลทีส่ มบูรณของการจัดการของ synchronization พืน้ ฐานของพวกเรา จะจัดการ spin lock สามารถทําได 2 รอบคือ เริม่ ตนทีจ่ ะอาน lock และมันจะเขียน อีกหนึ่งครั้ง เราสามารถปรับปรุงรอบของ bus ไดทเ่ี ดียวซึง่ เปนความหลากหลาย สําหรับตัวอยางเราสามารถจะ spin งายๆบนการจัดการแลกเปลีย่ น ถา lock ทัง้ หมด อยูอ สิ ระ มันสามารถดีขึ้นได แตถา lock ไมอสิ ระ มันจะทําใหสญ ู เสียการเดินทาง ของ bus ตัง้ แตความพยายามของตัวแปรควรจะนํารอบของ bus ในเบือ้ งตน lock จะ processor อยางเงียบๆ เราสามารถเห็นในตัวอยาง ตั้งแตเราเขียนความผิดพลาดสําหรับ ขอมูลใน cache คือ treated และอานความผิดพลาดไดอยางถูกตอง
Synchronization Mechanisms for Larger-Scale Machines อะไรทีด่ เี ราควรจะชอบคือ เครือ่ งจักร synchronization ทีม่ ศี กั ยภาพตํ่า ในการไมตอสูและลําดับในการเรียงจะนอย ประเภทนีจ้ ะเปนทีน่ า พอใจ เราจะเริม่ ดูวา software จะมีการทํางานอยางไร ทีส่ ามารถปรับปรุงประสิทธิภาพของ lock และ barrier เมื่อความตองการอยูใ นระดับสูง ดังนั้นเราควรตรวจสอบพื้นฐานพื้นฐานของ hardware 2 ประเภท ทีม่ คี วามงายไมซบั ซอนจะเปลีย่ นไปตามลําดับในการเก็บศักย ภาพนอยลง Software Implementations หลักการของการ spin-lockคือ การหนวงเหนี่ยวใหไดตามความพอใจ เมือ่ มีการ processes มากๆ การ spin ก็จะขึน้ อยูก บั lock วิธีแกไขวิธีหนึ่งที่คิดขึ้นได จากการ processes เมื่อเขาไมสามารถครอบครอง lock ได นีเ้ ปนความพยายามทีเ่ รา สามารถไดจากการ lock เมือ่ ไมมกี ารจัดการเก็บเงือ่ นไข ประสิทธิภาพทีด่ ที ส่ี ดุ หาได จากการเพิม่ การหนวงเหนีย่ ว เมื่อพยายามแต lock ผิดพลาด รูป8.36 จะแสดงวาอยาง ไรคือ การ spin lock กับ exponential back-off คืออุปกรณ การใชเทคนิครวมกับ สําหรับความพอใจทีน่ อ ยลง ในวิธกี ารรวมกันการรวมกันเขาถึง network รวมกันและ bus (ดูในหัวขอ7.7) นีค่ อื อุปกรณทย่ี งั คงพยายามคุม ครองใหศักยภาพนอยลง เมื่อความ พอใจนอยลง โดยไมหนวงเหนีย่ วการ spin loop ผลลัพธคือ ถามีการ processes มากๆจะมีการคอยเกิดขึน้ back-off จะไมทาให ํ เกิดผลกระทบตอการ processes แตผล ลัพธควรจะมีประสิทธิภาพนอยเมือ่ lock โดยการ processes 2 อยาง และวิธแี รกจะ เกิดขึ้นใหหามัน
lockit:
li R3 , 1 ll R2 , 0(R1) bnez R2 , lockit addi R2 , R2 , 1 sc R2 , 0(R1)
;R3 = initial delay ;load linked ;not available-spin ;get locked value ;store conditional
gotit:
bnez R2 , gotit sll R3 , R3 , 1 pause R3 j lockit use data protected by
;branch if store succeeds ;increase delay by 2 ;delays by value in R3 lock
รูป8.36 A spin lock with exponential back-off เมือ่ มีการจัดเก็บเงือ่ น ไขผิดพลาด มันจะหนวงเหนีย่ วคาของการ process เปน R3 อุปกรณในการหนวง เหนีย่ วโดยการเพิม่ R3 จน reach มันเปน 0 การเลือกเวลาทีถ่ กู คือ อุปกรณจะขึน้ อยู กับการหนวงเหนีย่ ว อยางไรก็ตามมันควรจะเริม่ กับคาการประมาณของเวลาทีว่ พิ ากษ และปลอย lock รูปแบบ R3 จะหยุดชั่วคราว ควรจะหาสาเหตุของการหนวงเหนีย่ ว R3 คาใน R3 จะเพิ่มขึ้นโดย 2 เวลา ในเงื่อนไขผิดพลาด สิง่ ทีจ่ ะดําเนินการจะคอยเวลา กอนทีจ่ ะครอบดรอง lock อีก เทคนิคอีกอันสําหรับอุปกรณของ lock คือ ใชการเขาคิวของ lock โดย เราสามารถแสดงการทํางานในสวนถัดไปของอุปกรณ hardware แต software ใช array สามารถไดประโยชนเหมือนกัน (ดูตวั อยางที8่ .24) กอนทีจ่ ะไปดูท่ี hardware ที่ซบั ซอน มองดูวธิ กี ารทํางานของ barrier อุปกรณของ barrier จะทนทานจากความพอใจ เมือ่ เราตองการนับการ ปรับปรุงเล็กๆนอยและจะปลอย เมือ่ การ processes ทั้งหมดตองถูกปลอยใหอา น แต กอนจะแข็งแรงมากเพราะมันตองการไมรวมในการเขาถึงตัวแปรของ synchronization และดังนั้นควรจะสราง synchronization มากๆในการเปรียบเทียบ โดยทัว่ ไปจะใชเพียง แตอาน เราสามารถทําใหความพอใจนอยลงคือ combining tree โครงสรางทีต่ อ งการ จะรวมในรูปแบบของ tree การรวม tree สามารถใชอปุ กรณในการ process ในการ ปลอย มีความพอใจซึง่ เราจะออกสําหรับใชปฎิบตั ิ เราจะรวม barrier ของ tree ในการเริม่ ตัดสินใจ n-ary โครงสราง tree เราจะใชคาของ k ในการ fan-in ในเบือ้ งตน k=4 จะทํางานไดดี เมือ่ มีการ process kth ออกจาก node ใน tree เราจะมีสญ ั ลักษณในชัน้ ถัดไปใน tree เมือ่ การ process
มาถึงยัง root เราจะปลอยการ processes ในตัวอยาง เราใชเทคนิค sense-reversing ตาม tree-based barrier ใช tree ในการรวมการ processes และการปลอยสัญลักษณ ของ barrier
struct node { /* a node in the combining tree */ int counterlock; /* lock for this node */ int count; /* counter this node */ int parent; /* parent in the tree = 0..P – 1 except for root = -1 */ }; struct node tree [0..P-1]; /* the tree of nodes */ int local_sense; /* private per processor */ int release; /* global release flag */ /* function to implement barrier */ barrier (int mynode) { lock (tree[mynode] . counterlock); /* protect count */ tree[mynode] . count=tree[mynode] . count+1; /* increment count */ unlock (tree[mynode] . counterlock); /* unlock */ if (tree[mynode] . count==k) { /* all arrived at mynode */ if (tree[mynode] . parent >=0) { barrier (tree[mynode] . parent); } else{ release = local_sense; } tree[mynode] . count = 0; /* reset for the next time */ } else{
spin (release==local_sense); /* wait */ }; }; /* codeexecuted by a processor to join barrier */ local_sense = ! local_sense; barrier (mynode); ในตอนแรกไมมีการพัฒนา node ใน array tree แตวา node ในการ รวมการ processes ของ k และไดจดั เตรียมทีแ่ ยกกันของ counter และ lock ดังนัน้ จะ processes ที่ k ที่ node เมือ่ process kth ของ node ใน tree มันเปนสาเหตุใน การเจริญเติบโต สาเหตุในการลดลงของ count เมือ่ count ในสาเหตุของ node k count จะตั้งคาในการดําเนินการครัง้ สุดทาย sense-reversing ใชเลีย่ งเสนทางใน barrier แบบฝกหัด 8.22 และ 8.23 ถามคุณเกีย่ วกับการวิเคระหการรวมเวลาของ barrier คูก บั การไมรวม MPPs ( เชน T3D และ CM-5 ) มีการสนับสนุนการรวม ของ hardware สําหรับ barrier Hardware Primitives ในสวนนีเ้ ราจะมอง hardware เปน 2 synchronization อยางแรกกับ lock อยางทีส่ องเราจะใชประโยชนสาหรั ํ บ barrier และตัวเลขของการจัดการ userlevel ที่ตองการนับหรือประยุกตขน้ึ พิเศษ ในกรณีนเ้ี ราสามารถสราง hardware ทีม่ ี ศักยภาพอยางแทจริงไดเหมือนกันในรูปแบบของเราเอง แตตอ งเปนลําดับมากทีส่ ดุ เมื่อมีความพอใจ ปญหาหลักโดยทัว่ ไปของ lock คือ มันจะนําไปสูจานวนใหญ ํ ๆของ ความพอใจที่ไมตองการ สําหรับตัวอยาง เมือ่ lock ไดถกู ปลอยการ processor ทัง้ หมดโดยทัว่ ไปจะมีทง้ั อานและเขียน miss อยางไรก็ตามโดยมากการ processor สามารถสํารวจได lock ใน unlock สิง่ ทีเ่ กิดขึน้ บนลําดับของ 20 lock/unlock เรา สามารถปรับปรุงเหตุการณตา งๆเหลานีไ้ ด โดย heading อยางชัดเจนโดย lock จาก การ processor ถัดไป คอนขางจะลําบากพอสมควร ทีจ่ ะอนุญาติใหการ processor ทัง้ หมด แขงขันกับเวลาทีป่ ลอย lock เรากับรายการของการดําเนินการและ heading ของ
lock หนึง่ อยางชัดเจน เมือ่ มัน spin กลับมานีค้ อื ชนิดหนึง่ ของเครือ่ งจักรทีเ่ รียกวา queuing lock queuing lock เปนอุปกรณทม่ี คี วามสามารถใน hardware สิง่ ซึง่ เรา บรรยายทีน่ ห้ี รือใน software จะเก็บระยะทางของการ processes แนวคิดเบือ้ งตนที่ เหมือนกันอีกกรณี อุปกรณ hardware คือ directory-based machine ทีซ่ ง่ึ เหมาะสม กับบุคคลที่จะดําเนินการหาขอมูลในการ processor อยางซับซอน ใน bus-based machine ในอุปกรณ software ควรจะเหมาะสมมากและควรจะมีการ processor เรือ่ งความแตกตางของทีอ่ ยูส าหรั ํ บ lock อนุญาติใหสงผานขอมูลไดชัดเจนของ lock จากหนึง่ การ process จะทํางานตาม queuing ไดอยางไร บน first miss ถึงตัวแปรของ lock miss สง synchronization ควบคุมเปนสิง่ ซึง่ บางทีจะสมบูรณกบั การควบคุม memory (ใน bus-bases system) หรือการควบคุม directory ถา lock มีอิสระมันจะมีการ processor อยางงายๆ ถา lock หาคาได มันจะควบคุมการสราง record ของ node ทีต่ อ งการ ( such as a bit in a vector ) และสงการ processor กลับไปยังคา lock สําหรับ เปลีย่ นแปลงสิง่ ซึง่ processor การ spin เมือ่ lock มีอสิ ระ จะเลือกควบคุมการดําเนิน การไปทีห่ วั จากรายงานเพือ่ คอยการ processor มันสามารถปรับปรุง lock ไดอีก ใน การเลือกการ processors ของ cache หรือทีใ่ ช copy ไมได กรณีนก้ี าร processor จะ miss และดึงคาจาก lock มา copy ตัวอยาง bus transaction เทาไร และความยาวเทาไรมันจะมี 20 processors lock และ unlock ที่เปลีย่ นแปลงตาม queuing ของ lock บน miss (ทําการสมมุตฐิ านเกีย่ วกับ ความสมบูรณทเ่ี หมือนอันกอนๆ) คําตอบ การ processor ของ miss แตละอันบน lock ในเบือ้ งตนและอันแรกจะเปน lock อิสระ ดังนั้นมันจะมีเพียง 40 bus cycles เทานั้น ลําดับที่1 20ในเบื้องตน miss take 1000 รอบ โดย 50 รอบ สําหรับ 20 จะปลอย นีค้ อื ผลรวม 2050 รอบ กรณีน้ี มีความหมายดีกับ conventional coherence-bases spin locks มีการจับคูค วามสัมพันธหลัก ในความสามารถของ queuing ของ lock เริ่มแรกเราตองการแบงสิง่ ทีจ่ ะเขาถึง lock ดังนัน้ เราสามารถปฎิบตั กิ ารจัดการตาม queuing ได และดวยการปลอย lock queuing เราสามารถจัดเตรียมการ processor
ของ lock ได การ processor ตาม queuing สามารถแยกประเภทของอุปกรณใน อุปกรณ directory-based คือ queuing จะสัมพันธกนั ทีจ่ ะแบงกันตัง้ และเหมือน hardware ตองเตรียมปรับสภาพของ lock ตั้งแตการ process ทีต่ อ งการ lock จะมี context-switched และบางทีไมมตี อ งดูตารางอีกทีบนการ processor ทีเ่ หมือนกัน
queuing lock สามารถใชปรับปรุงประสิทธิภาพของพวกการจัดการของ barrier (ดูตัวอยาง 8.15) การสลับเราสามารถแนะนําโดยจะซับซอนนอยลงตามจํานวนการของ เราทีต่ อ งการเพิม่ barrier count thus reducing เปนลําดับทีท่ าให ํ ขบวนการผลิตชาลง สิ่งที่ควรจะเปรียบเทียบประสิทธิภาพของ queuing lock อีกหนึง่ นัน้ มีการแนะนํา สําหรับสราง synchronization operations คือ fetch-and-increment สิง่ ทีด่ งึ คาโดย อัตโนมัติและเพิ่มคา การกลับคาสามารถเพิ่มคาหรือดึงคาได fetch-and-increment ทีเ่ รา สามารถปรับปรุง barrier เปรียบเทียบกับ simple code-sensing barrier ตัวอยาง เขียน code สําหรับ barrier fetch-and-increment ทําใหเหมือนสมมุตใิ นตัว อยางและจัดการ fetch-and-increment 50 clock เวลาในการตัดสินใจ 20 processors ถึงอุปสรรค barrier เทาไรที่ bus cycle ตองการ คําตอบ จากรูปที8่ .34 แสดงใหเห็นถึงสัญลักษณสาหรั ํ บ barrier นีค้ อื อุปกรณท่ี ตองการ 20 fetch-and-increment การจัดการและ 20 cache miss สําหรับปลอยการ จัดการผลรวมของเวลาทัง้ หมด 2000 รอบและ40 bus/interconnect การจัดการมากกวา 15 times และ 10 time ของการจัดการของ bus ถึง barrier สามารถใช fetch-andincrement รวมกับ tree barrier ในลําดับของ node แตละ node local_sense = ! local-sense; /* toggle local-sense */ fetch_and_increment (count); /* atomic update */ if (count = = total) { /* all arrived */ count = 0; /* reset counter */ release = local_sense; /* release processes */
} else { /* more to come */ spin (release = = local_sense); /* wait for signal */ รูป8.37 Code for a sense-reversing barrier using fetch-andincrement to do the counting เราจะเห็นปญหาของ synchronization สามารถกลายเปนความเงียบที่ เหมาะสม ในเครือ่ งวัดทีใ่ หญ เมือ่ กําหนดใหทา ทายโดย synchronization คือ รวมกับ ความทาทายโดยใชศักยภาพของ memory ระยะยาวและศักยภาพไมเทากันในการเรียก ในการคํานวณ เราสามารถเห็นประสิทธิภาพของ large-scale เปรียบเทียบไวกบั อุปกรณทท่ี า ทาย ในหัวขอ 8.8 เราจะตรวจสอบราคาของ synchronization ทีม่ อี ยูจ ริง bus-bases multiprocessor สําหรับการประยุกตใชจริงๆ 8.6
Models of Memory Consistency ไมแนใจวา cache จะเกีย่ วกับ multiple processor ประกอบอยูใ น memory มันไมไดเปนทั้งคําตอบและคําถามคือ ประกอบอยูใ น memory อยางไร เมือ่ ตองการเห็นการ processor จะมีการพัฒนาใหทนั สมัยโดยการ processor อีก ตัง้ แต processor การสือ่ สารเขาไปรวมกับคา(ทัง้ คูส าหรั ํ บคาของขอมูล และใชสําหรับ synchronization) คําตอบอยูข า งหลังนี้ อะไรคือรายการทีต่ อ ง processor การเขียนขอมูลการ processor มีเพียงทางนีค้ อื ‘ สังเกตุการเขียนขอมูลของการ processor’ คือการอานกลายมาเปนคําตอบ อะไรเปนคาบังคับระหวางอานและเขียน ความแตกตางของสถานที่ โดยการ processor ทีแ่ ตกตาง อยางไรก็ตาม คําถาม,ประกอบอยางไร,เห็นตัวอยาง มันจะยุง ยากมาก แตเรา สามารถตามไปเห็นตัวอยางได ทีน่ ม่ี ี 2 สวนจากการ processes P1 และการ processes P2 ดังนี้ P1 : A = 0 ;
P2 : B = 0 ;
..….. A=1; L1 : if (B == 0)…
...….. B=1; L2 : if (A == 0) …
สมมุตกิ าร processes คือ การวิง่ บนการ processors ทีแ่ ตกตางและที่ ตัง้ A และ B เปน cache ดัง้ เดิมโดยการ processors ทั้งคูก บั คาของตัวอักษรตัวแรก คือ 0 ถาเขียนบอยๆอาจจะทําใหเกิดผลกระทบและปจจุบนั เห็นโดยการ processors มันจะเปนไปไดสาหรั ํ บคํากลาวทัง้ คู( พวก L1 และ L2)คาของเงื่อนไขจะถูก ตัง้ แต ระยะทางถาคําสั่งมีความหมายอื่นๆ A หรือ B ตองมีผรู บั โอนคา 1 แตสนับสนุนการ เขียนคือ จะสําเร็จและ processor คืออนุญาติใหทําใหสาเร็ ํ จ ดังนัน้ มันจะเปนไปไดทง้ั คู P1 และ P2 มีการเห็นที่ใชไมไดสาหรั ํ บ B และ A (respectively) กอนเขาทัง้ หลายพยายามอานคา คําตอบคือ ควรจะมีพฤติกรรมอนุญาติและทําดังนั้นใตเงื่อนไข อะไร รูปการเปดเผยโดยมากสําหรับประกอบความจําคือ เรียกวา sequential consistency ประกอบดวยลําดับของความตองการ นั่นก็คือผลลัพธของ execute โดย เหมือนกัน ถาเขาถึง execute โดยเพียงการ processor เก็บในรายการและเขาถึงการ processors ความแตกตางคือ ไปสอดแทรก รูปที8่ .38 แสดงวาทําไมหามประกอบของ ลําดับ ขณะ execute ทีท่ ง้ั คูม คี า ของเงือ่ นไขจริง
P1 :
L1 :
A = 0;
P2 :
B = 0;
.….
.….
A = 1;
B = 1;
if (B = = 0) …
L2 :
if (A = = 0) …
รูป8.38 ในการประกอบของลําดับทั้งคูถาคําสั่งไมสามารถหาคาที่ถูกได ตัง้ แต memory เขาถึงการ process หนึง่ ตองเก็บใน 2 program ในรายการและอาน A และ B ดังนัน้ จะสมบูรณทอ่ี น่ื กอนอันอืน่
เห็นวานีค้ อื ถูกพิจารณาจากรายละเอียดของ program สีเขม สําหรับทัง้ คูมันคือ คําสัง่ ทีถ่ กู รายการทีแ่ สดงโดยลูกศรสีเขมตองถือไว ตัง้ แตอา นตองปรากฏถา เขาปรากฏกอนทีจ่ ะเขียน สําหรับทัง้ คูท ม่ี รี ายการจะถือ program ตองมีการ spin ใน รายการการเขารวมของการ spin หมายความวามันคือการเขียนทีเ่ ปนไปได ในการเขา ถึงรายการนีค้ อื ความหมายทีช่ ว ยทําใหคุณมั่นใจ ทางทีไ่ มซบั ซอนประกอบดวยลําดับคือ ความตองการการ processor ไปยังความสําเร็จของการเขาถึง memory จนกระทัง่ invalidation ทัง้ หมดสาเหตุโดย การเขาถึงโดยสมบูรณ มันจะมีคา เทากันทีช่ ดั เจน ซึง่ ถัดจากการเขาถึง memory จน กระทั่งมีความสมบูรณอันใดอันหนึ่งขึ้นมากอน จําวาการจัดการรวมประกอบ memory ความแตกตางของตัวแปร การเขาถึงแบบทีส่ อง ตองมีรายการทีจ่ ริง ถึงสภาพความแตก ตางของ memory ในตัวอยางของเรา เราตองยึดเวลาการอานของ A และ B(A = = 0 หรือ B = = 0) จนกระทัง่ เขียนขึน้ มากอนมีความสมบูรณ (B = 1 หรือ A = 1)ใต การประกอบของลําดับนี้เราไมสามารถ สําหรับตัวอยาง สถานทีท่ เ่ี ขียนอยางงายๆ ใน การเขียนเครือ่ งกันกระแทกและตอจากนัน้ จะอาน อยางไรก็ตาม จะนําเสนอการ ประกอบการเรียง เปน program ตัวอยาง ศักยภาพประสิทธิภาพจะนอยลง โดยเฉพาะ อยางยิง่ ในเครือ่ งจักรกับการ processors ของตัวเลขทีม่ ากๆหรือการติดตอทีย่ าวนาน เราสามาเห็นไดจากตัวอยางนี้ ตัวอยาง สนับสนุนวาเรามีการ processor ที่ไหนที่เขียน miss take 40 รอบ กําหนด ownership มี 10 รอบ ที่ใชไมไดหลังจาก ownership คือกําหนดและ 50 รอบ สําหรับใชไมไดถงึ สมบูรณและรับรูว า มันคือกําลังสมมติ มี 4 processor ทีร่ ว ม cache block มีความยาวอยางไรที่ processor การเขียนถา processor คือ ประกอบดวย
ลําดับ สมมตินั้นคือใชไมไดตองกําหนดใหรกู อ นการควบคุม directory เขาทั้งหลายจะ สมบูรณ สนับสนุนวาเราสามารถกลาว execute หลังจากหามาได ownership สําหรับ เขียน miss สําหรับใชไมได มีเทาไรที่ควรจะเขียน คําตอบ เมือ่ ไรทีเ่ ราคอยสําหรับการใชไมได เพียงเขียนผลของ ownership ของเวลา เพิม่ ขึน้ จะใชไมไดเมือ่ เวลาไมสมบูรณ ตั้งแตใชไมไดสามารถซอนกัน เราตองการเพียง เกีย่ วกับ 1 สิ่ง เริม่ 10+10+10+10 = 40 รอบ หลังจาก ownership คือกําหนดผลรวม ของเวลาทั้งหมด 40+40+50 = 130 รอบ ในการเปรียบเทียบเวลาของ ownership มี เพียง 40 รอบ การ processes write-buffer ที่เหมาะสม มันเปนไปไดที่ตอไปกอน ownership คือกําหนด The Programmer’s View อยางไรก็ตามรูปแบบ sequential consistency มีขอ เสียของประสิทธิ ภาพจากความคิดเห็นของ programmer มันมีขอดีของความงาย มันจะทาทายการพัฒนา รูปแบบ program คืออธิบายตัวอยางและอนุญาติใหมปี ระสิทธิภาพสูง รูปแบบของ program ทีอ่ นุญาติใหมปี ระสิทธิภาพ สมมุติ program synchronized program synchronization ถาเขาถึงทัง้ หมดจะรวมขอมูลคือรายการโดยการจัดการ synchronization โดยขอมูลจะอางถึงรายการการจัดการ synchronization ถาในทุกๆสิง่ เปนไปได execute จะเขียนตัวแปรโดยมีหนึง่ การ processor และการเขาถึง(การอาน และการเขียน)สําหรับสิง่ ทีเ่ ปลีย่ นแปลงได โดยการ processor ที่แยกโดยคูข องการจัด การ synchronization มีหนึ่ง execute หลังจากทีเ่ ขียนโดยการ processor การเขียน และหนึ่ง execute กอนเขาถึง โดยการ processor ขั้นที2่ กรณีทต่ี วั แปรบางทีพฒ ั นาขึน้ เขากับรายการโดย synchronization เรียกวา ขอมูล races เพราะจะไดผลลัพธที่ ตองการบนความเร็วทีส่ มั พันธกนั ของการ processor และชอบ races ในการออกแบบ hardware ผลลัพธบอกลวงหนา มีชื่อของผูนําอีกสําหรับ program synchronization data-race-free ยกตัวอยาง พิจารณาตัวแปรทีอ่ า นตอนเริม่ และปรับปรุงการ processors ถึง 2 ความแตกตาง การ processor การอานของสิง่ แวดลอมและปรับปรุงกับ lock และ unlock ทั้งคูจะมีการปรับใหทนั สมัย และประกอบไปดวยการอาน อยางดีทกุ ๆ
การเขียนตองแยกจากการอานโดยการ processor อืน่ ๆโดยการจัดการของ synchronization หนึง่ unlock (หลังจากเขียน) และหนึ่ง lock (กอนจะอาน) ถาสอง การ processor ที่เขียนสามารถเปลีย่ นแปลงไดโดยไมตอ งแทรกแซงการอาน ดังนัน้ การเขียนจึงตองแยกดวยการจัดการของ synchronization เราเรียกการจัดการ synchronization ทีต่ รงกันถึง unlock วา release เพราะวามันปลอยพลังการ processor ใน block และการจัดการ synchronization ที่ ตรงกันถึง lock วา acquire เพราะวามันไดอา นตัวแปรทีถ่ กู เราใช term ไดและปลอย เพราะเขาทัง้ หลายประยุกตความกวางของโครงสราง synchronization ไม lock และ unlock ตัวอยางถัดไปแสดงทีซ่ ง่ึ ไดและปลอย ใน synchronization ทีห่ ลากหลายจาก หมวดหมูท เ่ี กิดขึน้ กอน
ตัวอยาง แสดงการจัดการทีไ่ ดและปลอยในการ processes ของ lock และการ processes barrier ในรูป8.34 คําตอบ นี่คือ lock code กับการจัดการการเขาครอบครอง lockit :
ll R2,0 (R1) ;load linked bnez R2 , lockit ;not available-spin addi R2 , R2 , 1 ;get locked value sc 0(R1) , R2 ;store beqz R2 , lockit ;branch if store fails
การจัดการสําหรับ lock นี้คือ การจัดการเก็บงายๆ ทีน่ ค้ี อื code สําหรับการจัดการ barrier กับการเขาครอบครองในตัว เขมและปลอยในตัวเอียง (มีสองทีท่ ต่ี อ งเขาครอบครองและสองทีท่ ต่ี อ งปลอยใน barrier) lock (counterlock) ; /* ensure update atomic */
if (count==0) release=0 ; /* first => reset release */ count=count+1 ; /* count arrivals */ unlock (counterlock) ; /* release lock */ if (count==total) { /* all arrived */ count=0 ; /* reset counter */ release=1 ; /* release processes */ } else { /* more to come */ spin (release==1) ; /* wait for arrivals */ } เราสามารถกําหนดเมื่อ program คือการไดมาของ synchronized และ ปลอย program คือ synchronized ถาทุกลําดับในการ execute ของการเขียนโดยการ processor และการเขาถึงของขอมูลทีเ่ หมือนกันตามลําดับเหตุการณ write (x) …… release (s) …… acquire (s) …… access (x) มันงายตอการเห็นถาเรียงตามลําดับตามนี้ program synchronized ใน ความสามารถในการเขารวมขอมูลของรายการบอยๆ โดย synchronization และขอมูล races เปนไปได
มันจะยอมรับการสังเกตสวนมากเพราะถาเขาถึง unsynchronized พฤติ กรรมของ program ควรจะตัดสินใจ การ processor สิง่ ทีด่ ขี องขอมูล races และผล กระทบตอผลลัพธของ program กับ sequential consistency เหตุผลเกีย่ วกับ program ที่ขาด programmer สามารถรับประกันรายการตางๆ โดยการสรางเครือ่ ง synchronization ของพวกเขา แตนค่ี อื ความหลอกหวงสุดๆ สามารถทีจ่ ะนํา programmer จะมีการแทนโดยเลือกใช synchronization และแกไขใหมปี ระสิทธิภาพ สําหรับเครื่องและชนิดของ synchronization มาตราฐาน ห อ งสมุ ด synchronization สามารถแยกประเภทและดํ าเนิ น การใช สํ าหรั บ synchronization ในหองสมุดคือ release หรือ acquire หรือบางเวลาอาจจะทั้งคู สําหรับ ตัวอยางในกรณีของสิง่ กีดกัน สิ่งสําคัญของการเขาถึงแบบ unsynchronized ในโปรแกรมทีต่ อ งการหลีกเลีย่ ง ราคาของ synchronization และจะรับมุมมองทีไ่ มสอดคลองของหนวยความจํา ตัวอยาง เชนในโปรแกรม stochastic เราจะมีการอานและreturnคาเกาของขอมูล เพราะโปรแกรม จะยังคงรวมกันเปนคําตอบทีถ่ กู ตอง ในบางกรณีพวกเราจะตองการระบบทีด่ ใี นลักษณะ ทีม่ เี หตุผล แตเราไมตอ งการไวใจบน well-define เปนรูปแบบของความสอดคลอง ตอมาการจัดแบบ synchronization เราตองการทีจ่ ะจัดระเบียบของหนวยความจํา มี 2 ชนิดของการจํากัดบนรายการหนวยความจํา คือ write fences และread fences fences เปนจุดสําคัญในการคํานวณ และรับประกันวาจะไมอา นหรือเขียนขาม fences ไป ตัวอยางเชน การเขียน fences ประมวลผลโดย processor P ทีแ่ นนอน เขียนทัง้ หมดโดย P เกิดขึน้ กอนที่ P จะexecuted เขียนการทํางานของfencesที่มีความ สมบูรณและ ไมเขียนเกิดขึน้ หลังจาก fence ใน Pเปนสมาชิกกอน fence ในการเรียงลํ าดับการอานทั้งหมดจะอานfence และการเขียนทั้งหมดจะเขียน fence ความสามารถทีจ่ ากั ํ ดของ hardware ถึงการเขาถึงในทางทีด่ ี รายการเหลานีจ้ งึ ตอง ยึดอยางเครงครัด จากจุดมุงหมายของประสิทธิภาพ processor จะชอบอานใหหสาเร็ ํ จ เร็วกวาที่ เปนไปไดและสมบูรณ และเขียนชากวาทีเ่ ปนไปได fence แสดงเขตแดนเหมือนอํานาจ ของ processor ในการอานและเขียนเกีย่ วของกับ fence แมวา การเขียน fence คือ two-
way blockade มันจะถูกใชบอยมากในการทําใหการเขียนสมบูรณ ตัง้ แต processor ตองการขยายการเขียนใหสําเร็จ ดังนัน้ ผลกระทบของการเขียน fence มีสาเหตุจากการ กระทําโปรแกรมในตอนตนจนกระทัง่ การเขียนทีค่ า งอยูส าเร็ ํ จ การอาน fence คือ two-way blockade ดวยเปนจุดทีเ่ ร็วหรือชา การอานบางทีจะ ถูก executed การอาน fence จะถูกใชมากในการทําสัญลักษณ ในจุดทีเ่ ร็วในการอานบาง ที executed memory fence คือoperationทีแ่ สดงทัง้ การอานและการเขียน fence Memory fence บังคับการเขาถึงของการประมวลผลทีแ่ ตกตาง ภายใน single processเราตองการ รักษารายการของโปรแกรม ดังนัน้ การอานและเขียนก็เหมือนกับทําเลทีต่ ง้ั ทีไ่ มสามารถ สับเปลีย่ นได รูปแบบของ weaker consistency ซึง่ โตเถียงในสวนถัดไปสามารถซอนการอาน และเขียน โดยกําหนดการอานและการเขียน fence นอยกวา ในรายละเอียดการแสดงการ เขาถึง synchronization คอนขางจะหลีกเลีย่ งกวาการเขาถึงแบบธรรมดา Relaxed Models for Memory Consistency เนื่องจากโปรแกรมสวนใหญเปนแบบ synchronization และเนื่องจาก sequential consistency model จะแสดงความไมมีประสิทธิภาพหลักเราควรจะกําหนดรูปแบบที่ relax มากขึน้ ทีย่ งั ยอมใหมกี ารแสดงประสิทธิภาพทีส่ งู ขึน้ และยังคงรักษาความงายของ รูปแบบโปรแกรมสําหรับ synchronize โปรแกรมได ความจริงมีจํานวนของ relaxed model ทีท่ กุ การ maintain คุณสมบัตทิ ่ี excution semantics ของ synchronized program เปนแบบเดียวกันภายใตรปู แบบทีม่ นั ควรจะเปน ภายใต sequential consistency model สวน relaxed model จะผันแปรตามความแนนที่ model นี้ บังคับเซตของความเปนไปได ของความถีข่ องการปฏิบตั ิ และดังนั้น จํานวนมากเทาไรทีเ่ ขากําหนดบนการ implement ในการเขาใจความหลากหลายระหวาง relaxed model และความเปนไปไดในการ แสดงสําหรับการ implement มันงายทีส่ ดุ ถาเรากําหนดรูปแบบในเทอมของทีว่ า อะไร เปนลําดับระหวางการอานและการเขียน “การปฏิบตั โิ ดย processor เดีย่ วๆ” ซึง่ ถูกรักษา โดยแตละ model มี 4 ลําดับ คือ 1. R " R : read ถูกตามดวย read
2. R" W : read ถูกตามดวย write ซึง่ มักจะถูกรักษาถา operations เปน address เนือ่ ง จากมันไมขน้ึ อยูก บั (antidependence) 3. W"W : write ถูกตามดวย write ซึง่ มักจะถูกรักษาถามันเปน address เดียวกัน เนือ่ ง จากมันเปน output ทีไ่ มตอ กัน (output dependence) 4. W"R : write ถูกตามดวย read ซึง่ มักจะถูกรักษา ถามันเปน address เดียวกัน เนือ่ ง จากมันเปนการขึน้ ตอกันจริงๆ ถามีการขึ้นอยูตอกันระหวาง read และ write แลวโปรแกรมทีเ่ ปน processor เดียว จะตองการ operation ทีเ่ ปนลําดับ ถาไมขึ้นตอกันแลว memory consistency model จะกําหนดลําดับทีต่ อ งถูกสงวนไว sequential consistency model ตองการลําดับทัง้ 4 ขอนั้น และเทากับการสันนิษฐานโมดูลเดีย่ วๆทีเ่ ปนศูนยกลาง memory นั้น การติดตอ กันของทุก processor operation หรือการสันนิษฐานของทุกๆ การอานและการเขียนเปน อุปสรรคของ memory เมื่อการจัดลําดับถูกพัก มันงายที่จะหมายถึงการที่เรายอมใหoperationถูกกระทํา ตอมาโดยprocessor เพือ่ ใหสมบูรณในขัน้ แรก ตัวอยางเชน การพักของลําดับจาก W"R หมายถึงเรายอมใหอานชากวาที่เขียน เพือ่ ใหสมบูรณกอ นทีก่ ารเขียนจะสมบูรณ การ เขียนจะไมสมบูรณ จนกระทัง่ ทัง้ หมดของมันจะเปนโมฆะ อยางสมบูรณ ดังนัน้ การให การอานเกิดขึน้ หลังการเขียน ความผิดพลาดจะถูกควบคุม แตกอ นจะเปนโมฆะ consistency model จะจัดลําดับของเหตูการณ แทนทีจ่ ะกลาววาลําดับอะไรทีเ่ ปน ไปได สามารถจะถูกสงวนไวได ตัวอยางเชน ในลําดับทีถ่ กู ตองตรงกัน ระบบจะตอง รักษา 4 ลําดับนัน้ แมวา ในทางปฏิบตั มิ นั สามารถยอมใหจดั ลําดับใหมได การแบงอยาง ละเอียดนี้ยอมใหสงเสริมการใชกลอุบายที่จะจัดลําดับเหตุการณใหมโดยปราศจาก การ ยอมใหจดั ลําดับใหม สามารถที่จะสงเสริมการไมเปลี่ยนแปลงลําดับได ตัวอยางเชน การยอมให processor P ริเริม่ การเขียนอันอืน่ กอนการเขียนอันกอนสําเร็จ นานเทาที่ P ไมยอมใหคาํ ของการเขียนอันหลังสมบูรณกอ นการเขียนอันแรก สําหรับความงาย เราไดพิจารณาวา ลําดับอะไรที่ตองสงวนไวกับการเขาใจ การสนับสนุนที่ยืดหยุนเพื่อสงวนลําดับที่เล็ก นอย เพียงแคมที รรศนะเกีย่ วกับการรักษาลําดับ
รูปแบบทีไ่ มเปลีย่ นแปลง( The consistency model ) ตองกําหนดลําดับระหวาง ตัวแปรทีจ่ ะถูก access พรอมๆกัน ซึง่ การกระทํานีจ้ ะเหมือนการเลีย่ ง และการ access อื่นๆทัง้ หมด เมือ่ เครือ่ งจักรสนับสนุนความไมเปลีย่ นแปลงของลําดับ การอานและการ เขียนทัง้ หมด รวมถึงการ access ในเวลาเดียวกัน เปนการเลีย่ งและรักษาลําดับสําหรับรูป แบบที่ออ นกวา เราตองการระบุการจํากัดลําดับโดยการ access ในเวลาเดียวกันซึง่ ดีเทา กับการจํากัดลําดับทีพ่ วั พันกับตัวแปรปกติ ขอจํากัดของการจัดลําดับทีง่ า ยทีส่ ดุ คือทุกๆ การ access ทีพ่ รอมกันเปนการปองกัน memory ถาเราให S เปนตัวแทนสําหรับตัวแปร ที่ accessพรอมๆกันเราควรจะเขียนดวยลําดับทีแ่ สดงสัญลักษณดงั นี้ S"W , S"R , W" S และ R"S การ access พรอมๆกันซึง่ เปน R หรือW และลําดับของมันถูกกระทบโดย การ access พรอมๆกับอันอืน่ ซึ่งหมายความวามีลาดั ํ บ S"S รูปแบบแรกเราทดสอบการพักของลําดับระหวางการเขียนและการอาน (address ที่ตา งกัน) การจัดลําดับ W"R ; เปนรูปแบบแรกทีถ่ กู ใชในสถาปตยกรรม IBM 370 ซึ่ง modelทีย่ อมให buffer ของการเขียนถูกผานโดยการอาน ซึง่ จะเกิดขึน้ เมือ่ processor ยอมใหการอานกระทําตอไปกอนมันจะรับประกันวา การเขียนอันกอนโดย processor นั้น จะถูกเห็นไดโดย processor อืน่ ๆทัง้ หมด modelนีย้ อมใหเครือ่ งซอน operation การ เขียนไวภายใน ยิง่ ไปกวานัน้ โดยการพักเยงลําดับเดียว หลายๆ application จะไมใช เวลาเดียวกัน การกระทําอยางถูกตอง แมวา operation ทีเ่ กิดขึน้ พรอมๆกันจําเปนทีต่ อ ง แนใจวาการเขียนสมบูรณกอ นการอาน processor ทีไ่ มเปลีย่ นแปลง และ Total Store Ordering ( TSO ) ถูกใชสาหรั ํ บชือ่ modelนี้ และหลายๆเครือ่ งจะเลือกmodelนี้ modelนี้ เทากับการกระทํา การเขียนเปนการปกปองการเขียน เราสรุปไดวา ทุกๆmodel จะแสดง การกําหนดของลําดับในรูป 8.39 และแสดงในตัวอยาง 8.40 ถาเราอนุญาติใหการเขียนไมชนกันแลว ก็จะเปนการผิดระเบียบอยางสมบูรณ โดยการพักของลําดับ W"W เราถึง model ทีเ่ รียกวา Partial Store Ordering( PSO ) จาก การสนับสนุนจุดมองนัน้ มันอนุญาติใหกาoperation การเขียนเหลือ่ มกัน มากกวาทีจ่ ะ บังคับให operation เดียวสมบูรณกอ นอันอืน่ operation การเขียนตองการเพียงเปนเหตุ ใหหยุดเมือ่ operation เกิดขึน้ พรอมกัน ซึง่ เปนสาเหตุใหการปองกันการเขียนปะทะกัน หลักที่ 3 ของ relaxed model จะจํากัดลําดับ R"R และ R"W model นี้ ซึง่ เรียก วา Weak ordering มันจะไมรกั ษาลําดับระหวางการอางอิง ยกเวนสิง่ ตอไปนี้
การอานหรือการเขียนจะสมบูรณกอ น operation ทีเ่ กิดขึน้ พรอมกันใดๆ ถูก execute ในลําดับของโปรแกรมโดย processor หลังจากการอานหรือการเขียน operation ทีเ่ กิดขึน้ พรอมๆกัน มักจะสมบูรณ กอนการอานหรือการเขียนใดๆจะเกิด ขึ้นในลําดับของโปรแกรมหลัง operation ดังแสดงในรูป 8.39 เพียงการกําหนดลําดับในลําดับทีอ่ อ นกวาถูกสรางขึน้ โดย operation ทีเ่ กิดขึน้ พรอมๆกัน แมวาเราจะจํากัดจาก R"R และ R"W, processor สามารถไดรับ ประโยชน ถามันเปนการอานแบบ nonblocking อีกนัยหนึง่ processor สงเสริม 2 ลําดับ นี้ เนือ่ งจากคําสัง่ สามารถถูก execute จนกระทัง่ R สมบูรณ แมวา การอานแบบ nonblocking processor อาจจะมีประโยชนทจ่ี ากั ํ ด จากการทีพ่ กั ลําดับของการอาน เนื่องจากประโยชนหลักเกิดขึน้ เมือ่ R ทําให cache miss และ processor ไมสามารถทีจ่ ะ รักษาความไมวางสําหรับ 10 – 100 รอบ ซึง่ จะทําให cache miss เกิดขึน้ โดยทัว่ ๆไปแลว ประโยชนทส่ี าคั ํ ญของ weaker consistency model คือการซอนการเขียนมากกวาการอาน relaxed model สามารถทีจ่ ะไดรบั โดยการขยาย weak ordering รูปแบบนีเ้ รียกวา release consistency ความแตกตางระหวาง synchronization operation ใช acquire ใน การเขาถึงการแบงตัวแปร( SA ) และใช release ซึง่ อนุญาติให processor เขาถึง( SR ) release consistencyเปนพืน้ ฐานในการเฝาดูโปรแกรม synchronization และการดําเนิน การแบบ acquire จะตองมีการแบงขอมูลกอน และการดําเนินการแบบ release จะปรับ ปรุงการแบงขอมูล และตองทํากอนทีจ่ ะ acquire ครั้งตอไป การอนุญาตินค้ี วบคุมการ พักโดยเฝาดูการอานหรือเขียนกอน acquire ตองการ ซึง่ ไมสมบูรณ ดังนัน้ การเขียนหรือ อานตามที่ release ตองการ ไมตอ งรอสําหรับ release ดังนัน้ การดําเนินการเก็บรักษา เกีย่ วของกับ SA และ SR เพียงเทานัน้ ซึง่ แสดงในรูป 8.39 ตัวอยางแสดงในรูป 8.40 การ กําหนดแบบมีนอ ยกวาการจัดการ 5 แบบ การเปรียบเทียบ release consistency กับ weak ordering จะพิจารณาอะไรบางที่ ตองการ สําหรับ weak ordering ถาเราแยกแตละ S ในรายการของ SA และ SR สิง่ เหลานี้ จะนํา orderingทั้ง 8 ที่เกีย่ วกับการเขาถึงแบบ synchronization และการเขาถึงแบบ ordinary รวมทัง้ 4 ordering ทีเ่ กีย่ วกับการเขาถึงแบบ synchronization อยางเดียว เรา สามารถเห็นทัง้ 4 orderingทีต่ อ งการภายใต weak ordering ไมใชการกําหนดภายใต release consistency : W"SA ,R"SA ,SR" R และSR" W
release consistency เปนหนึง่ ในการจัดหาของแบบทีจ่ ากั ํ ด ซึง่ งายในการตรวจ สอบและทําใหมน่ั ใจวาโปรแกรม synchronization จะเห็นลําดับของการกระทําทีต่ รงกัน ขณะทีก่ ารจัดการแบบ synchronization แตละ acquire และ release และ causes จะ เหมือนกับ weak ordering
รูป 8.39 ordering ที่กําหนดโดยรูปแบบทีห่ ลากหลาย และแสดงการเขาถึงแบบ ordinary และการเขาถึงแบบ synchronization รูปแบบนีเ้ จริญเติบโตจากมากทีส่ ดุ จนถึงนอยทีส่ ดุ อนุญาติใหเพิ่มความยืดหยุนในการ implementation รูปแบบของ weaker จะเพิ่มความนา เชือ่ ถือโดยการจัดการแบบ synchronization โดยการตอตาน fence ที่แฝงอยูท ก่ี ารจัดการ ทุกๆหนวยความจํา SA และ SR ตัง้ อยูบ นการจัดการแบบ acquire และ release ตอง พิจารณาและตองกําหนด release consistency ถาเราใชสญ ั ลักษณ SA และ SR สําหรับ S แตละรายการ S จะมี 2 ordering(S"W จะมี SA W,SR"W) และแตละ S"S จะมี 4 ordering แสดงอยูใ นบรรทัดสุดทายของตาราง "
รูป 8.40 ตัวอยางของรูปแบบความสอดคลองในการตัดสินใจ 5 อยาง ในสวนนี้แสดง การสรุปตัวเลขของการกําหนด ordering ดวยรูปแบบทีก่ ลายมาเปน relaxed เพียงราย การเล็กๆแสดงทิศทางการลําเลียง เชน การเขียนของ C กอนทีจ่ ะ release ของ S ในรูป แบบของ sequential consistency ทีไ่ มไดแสดงไว มันเปนไปไดทจ่ี ะพิจารณาเพียงแคลําดับทีอ่ อ นแอกวา ตัวอยางเชน ในการปลด ปลอยทีไ่ มเปลีย่ นแปลงเราไมตอ งใชตําแหนงใน memory กับตัวแปร synchronization บางสวน ถาเราตองการตัวแปร synchronization ตัวเดียวกัน, V,เราตองการกอนทีจ่ ะ เขาถึงบางตําแหนงใน memory เสมอ, M,ตัวอยางเชน เราสามารถทีจ่ ะพักลําดับทีจ่ ะ เขาถึง M และใชงานและปลดปลอยตัวแปร synchronization อื่นๆที่ไมใช V ลําดับ ของการพิจารณานีม้ คี วามสัมพันธโดยตรงกับการสงเสริม ลําดับทีอ่ อ นแอกวา ซึง่ ไดยก ตัวอยางไปแลวมันยากทีจ่ ะสงเสริมและมันไมชดั เจนวา การสงเสริมลําดับทีอ่ อ นแอกวา มีประโยชนหรือไม Implementation of Relaxed Models รูปแบบของการพักของความมัน่ คง สามารถทีจ่ ะสงเสริมกับการเพิม่ hardware เพียงเล็กนอย ระบบทีซ่ บั ซอนสวนมาก อยูบ นการสงเสริมและการสนับสนุน memory หรือการติดตอภายในระบบ ซึง่ สามารถนําประโยชนของรูปแบบการพักมาใชได ตัว อยางเชน ถา memory หรือการติดตอภายในไมอนุญาติใหหลายๆ processor เขาถึง พรอมกัน ดังนัน้ ประโยชนของรูปแบบการพักก็จะนอยลง แตโชคดีทป่ี ระโยชนสว น ใหญสามารถทีจ่ ะมีจานวนการเขี ํ ยนนอยๆและมีการอาน 1 ครั้ง ในหัวขอนี้เราจะอธิบาย การสงเสริมโดยตรงของ processor และการปลดปลอย directory protocol ของเรา
พอใจอยูแ ลวกับการบังคับของ การไมเปลีย่ นแปลงตามลําดับ เนือ่ งจาก processor จะ หยุดจนกระทัง่ กระบวนการนัน้ สมบูรณและ directory จะเปนโมฆะ กอนทีจ่ ะตอบไป ยังการเขียน processor consistency (หรือ TSO)คือการสนับสนุนโดยอนุญาติใหการ อานมองขามการเขียนทีย่ งั เขียนไมเสร็จ buffer ของการเขียน สามารถทีจ่ ะตรวจสอบวา การเขียนทีย่ งั เขียนไมเสร็จนัน้ มีตําแหนงเดียวกับการอานหรือไม และรวมทัง้ memory และระบบการติดตอภายใน สามารถทีจ่ ะสนับสนุน 2 การอางอิงตอ node มันเพียงพอ ที่จะสนับสนุนหัวขอนีป้ ระโยชนของ processor consistency ทีเ่ หนือกวา sequential consistency คือการอนุญาติใหการเขียนที่ miss ถูกซอนได Release consistency อนุญาติใหการเขียนถูกซอนและถา processor สนับสนุน การอานทีเ่ ปนแบบ nonblocking แลวมันจะอนุญาติใหการอานถูกซอนดวย การทีจ่ ะ อนุญาติใหการเขียนถูกซอนมากทีส่ ดุ เทาทีจ่ ะเปนไปไดนน้ั processor ตองอนุญาติให หลายๆการเขียนทีส่ าคั ํ ญและอนุญาติการอานที่ miss มองขามการเขียนทีส่ ําคัญ เพือ่ ที่ จะใหไดประสิทธิภาพสูงสุด การเขียนควรจะสําเร็จ และลบขอมูลใน buffer ของการ เขียนโดยเร็ว ซึง่ จะอนุญาติใหการอานสามารถทํางานได การทีจ่ ะใหการเขียนสําเร็จนัน้ ตองการอนุญาติใหการเขียนสําเร็จทันทีทข่ี อ มูลคา และกอนที่ invalidation ทีค่ า งอยูจ ะ สําเร็จ การสนับสนุนวิธที ง้ั directory และตนฉบับของความตองการ สามารถทีจ่ ะเก็บ ใน จํานวน ของ invalidation สําหรับแตละการเขียนทีส่ าคั ํ ญ หลังจากแตละ invalidation ตอบกลับมา จํานวนของ invalidation ทีค่ า งอยูจ ะลดลง เราตองแนใจวา invalidation ที่คา งอยูท ง้ั หมดนัน้ เกิดขึน้ กอนทีจ่ ะเขียนจะสําเร็จ และกอนที่ การปลอย จะสําเร็จ ดังนัน้ เราจะเช็คจํานวนของ invalidation ทัง้ หมด ของการเขียนทีส่ าเร็ ํ จ ใน การปฏิบัติเราจํากัดจํานวนของการเขียนทีส่ าคั ํ ญ ดังนัน้ มันวายทีจ่ ะตรวจดูวา การเขียน และ invalidation ทีค่ า งอยู การซอนการอานเราตองมีเครือ่ งซึง่ มีระบบการอานแบบ nonblocking มิฉะนั้น แลวเมือ่ processor block จะมี processor เพียงเล็กนอยเทานัน้ ทีจ่ ะทํางานได ถาการ อานเปนแบบ nonblocking เราสามารถทีจ่ ะอนุญาติใหมนั ทํางานได โดยทีข่ อ มูลยังคง รักษาความถูกตองไวได มันไมเหมือนกับการเพิม่ การอานแบบ nonblocking กับ relaxed consistency จะเพิ่มประสิทธิภาพ การจํากัดประโยชนทีจ่ ะไดรบั เพราะวาเวลา ในการอานใน multi processor นีใ้ ชมากและ processor สามารถที่จะใหเพียงแคความ
จํากัดความสามารถในการซอน ตัวอยางเชน ถาการอานเปนแบบ nonblocking แต processor จะ block การอานหลังจาก 2-3 รอบ ถา processor สนับสนุนการอานแบบ nonblocking และแบบไมมลี ําดับ มันจะ block buffer ของมันทันที เชน จัดลําดับ buffer ใหมหรือจองสถานีไวหรือ buffer เต็ม สิง่ เหลานีอ้ าจจะเกิดขึน้ เปนสวนใหญใน 10 รอบ ในขณะที่ miss อาจทําใหเกิด 100 รอบ ดังนั้นแมวาเราจะไดรับผล ประโยชนที่จากั ํ ด แตมันก็มี ผลบวกระหวางการนําเขาแบบ nonblocking และ relaxed consistency Performance of Relaxed Models ประสิทธิภาพของ relaxed consistency ขึน้ อยูก บั ความสามารถของเครือ่ งและ ประโยชน การพิจารณาประสิทธิภาพของ memory consistency เราจะตองกําหนดสิ่ง แวดลอมของ hardware เราพิจารณารูปรางของ hardware และคุณสมบัตดิ งั ตอไปนี้ : ผลลัพธของ pipeline หนึ่งคําสัง่ ตอ clock cycle และเปนแตละ statically หรือ dynamically scheduled หนาทีภายในหนวยทัง้ หมดคือ 1 cycle ความผิดพลาดของ cache 50 clock cycle CPU รวมการเขียนทีป่ ะทะกับสวนลึก 16 Cache คือ 64 KB และ 16-byte lines ใหลกั ษณะพิเศษของ tradeoffs และประสิทธิภาพทีส่ ามารถเปนไปได กับความ สามารถทีแ่ ตกตางของ hardware เราพิจารณารูปแบบของ hardware 4 แบบ 1. SSBR (statically scheduled with blocking reads )- processor คือ statically scheduled และอานความผิดพลาดใน cache ของ block ทีต่ ดิ กัน 2. SS (statically scheduled )- processor คือ statically scheduled แตไมทําการอาน เพราะ processor ไปขวางจนกระทัง่ ผลลัพธถกู ใช 3. DS16 (dynamically scheduled with a 16-entry reorder buffer )- processor คือ dynamically scheduled และมีreorder buffer อนุญาติใหขน้ึ ถึง 16 คําสัง่ ทีส่ าคั ํ ญของ แบบตางๆ รวมทัง้ 16 คําสัง่ ของการเขาถึงหนวยความจํา 4. DS64 (dynamically scheduled with a 64-entry reorder buffer )- processor คือ dynamically scheduled และมี reorder อนุญาติใหขน้ึ ถึง 64 คําสัง่ ทีส่ าคั ํ ญของแบบ
ตางๆ reorder buffer แบบนี้ ใหญเพียงพอที่จะแกผลรวมความผิดพลาดของ cache ใน 50 cycle รูป 8.41 แสดงการเปรียบเทียบประสิทธิภาพสําหรับโปรแกรม 2 โปรแกรม LU และ Ocean สําหรับhardware 4 แบบและสําหรับ 2 ความแตกตางของแบบทีค่ งทีค่ อื total store order (TSO) และ release consistency ประสิทธิภาพ คือ การการแสดงการ เปรียบเทียบประสิทธิภาพภายใตกาสนับสนุนทีต่ รงไปตรงมาของsequential consistency แบบ relaxed เสนอประสิทธิภาพบน Ocean มากกวาบน LU สิง่ เหลานีง้ า ยเพราะ Ocean มีอัตราความผิดพลาดที่สูงกวา และมีสวนที่เปนความผิดพลาดของการเขียน ในการตี ความขอมูลในรูป 8.41 จําไดวา cache คืองานทีเ่ ล็ก ผูอ อกแบบจํานวนมากจะเพิ่มขนาด ของ cache กอนทีจ่ ะรวม nonblocking read หรือเริม่ ที่ dynamic scheduling การสรุป อยางรวดเร็วของอัตราการผิดพลาดและประโยชนที่เปนไปไดจากรูปแบบ relaxed ที่ นอยสําหรับ application นี้ Final Remarks on Consistency Models ในป จ จุ บัน เครื่ อ งจํ านวนมากสนั บ สนุ น ให ส รางชนิดของแบบของ weak consistency ซึง่ เปลีย่ นแปลงจาก processor consistency ถึง release consistency และ เกือบทั้งหมดที่สนับสนุนลําดับที่คงที่ ตั้งแตที่ synchronization คือเครือ่ งทีม่ ลี กั ษณะ เฉพาะอย า งสู ง คาดว า ผู เ ขี ย นโปรแกรมส ว นมากจะใช พื้ น ฐานของห อ งสมุ ด synchronization และจะเขียนโปรแกรม synchronization ทําทางเลือกของ weak consistency ที่ไมปรากฏถึงผูเ ขียนโปรแกรม และประสิทธิภาพระดับสูงทีย่ ดื หยุน การ พัฒนาคือความคิดของการไมกําหนดโปรแกรมทําใหเกิดการไมไววางใจบนคาสุดทาย ความเปนไปไดอยางหนึ่งคือ ผูเขียนโปรแกรมไมตองการความไวใจบนเวลาของการ ปรับปรุงถึงการเปลีย่ นแปลงในโปรแกรม ความเปนไปไดอยางอื่นคือ รูปแบบของเครือ่ ง ที่มลี กั ษณะเฉพาะทีต่ อ งการใช นานมาแลวทีก่ ารเขาถึงขอมูลแบบ latencies ยังคงทํา ตอไปเรือ่ ยๆ ในการเปรียบเทียบการเพิม่ ประสิทธิภาพของ processor และลักษณะเดน ของการเพิม่ ทีไ่ ดเปรียบเทียบกับรูปแบบ relaxed เชน nonblocking caches รวมถึงใน processor ทีม่ ากกวา ความสําคัญของการเลือกรูปแบบ consistency ทําใหรปู แบบของ โปรแกรมสะดวก และมีการเพิ่มประสิทธิภาพสูง
รูป 8.41 ประสิทธิภาพของรูปแบบ relaxed consistency บนกลไกของ hardware ตางๆที่ ไมคงทีจ่ ากเหตุผลพอสมควรทีม่ คี วามทะเยอทะยานสูง cache เปน 64KB แสดงไวบน แผนทีโ่ ดยตรงกับ 16-byte block ความผิดพลาด 50 cycle กับ SSBR ของภายในการ เขียนคือการซอนใน benchmarks เหลานี้ มันนํา dynamic scheduling ซอนการอานและ เปนไปอยางสมบูรณในการซอนการอาน ซึ่ง buffer ใหญกวาที่ latency ตองการ (DS64) สําหรับขนาดของ cache ทีใ่ หญ อัตราการหายไปของ Ocean ยังคงตกตอไป และทําขอ ไดเปรียบของรูปแบบ relaxed สําหรับตัวอยาง, ที่ 256 KB cache กับ 64-byte lines และ 16 processor อัตราการหายไปคือ 2% การนํา upper bound ของ 2.0บนขอยกเวนจาก แบบของ relaxed Crosscutting Issues เพราะ multiprocessor redefineลักษณะพิเศษของระบบจํานวนมาก เราแนะนํา การออกแบบปญหาทีผ่ า นคลืน่ ในสวนนีเ้ ราใหตวั อยางทีห่ ลากหลาย : ความแนนอนของ การวัดประสิทธิภาพ, 2 ตัวอยางที่เกี่ยวของกับระบบหนวยความจํา ตัวอยางของผล กระทบระหวาง complier และรูปแบบของ memory consistency และวิธีใชสาหรั ํ บการ สนับสนุนหนวยความจําทีแ่ ทจริงเปนอุปกรณแบงหนวยความจํา Performance Measurement of Parallel Machines สวนหนึง่ ของประเด็นทีโ่ ตแยงในแนวทางทีเ่ ทาเทียม มีวธิ ใี ดในการวัดประสิทธิ ภาพของเครือ่ งทีเ่ ทาเทียมกัน แนนอน คําตอบทีต่ รงไปตรงมาคือยีห่ อ ของการวัดทีบ่ รรจุ และพิจารณา wall-clock time การวัดwall-clock time ปรากฎ ชัดในการทําเรือ่ งมีเหตุผล;
ใน processor ทีเ่ ทาเทียมกันการวัด CPU time สามารถอางอิงโดยผิดหลัก เพราะบางที processor เกียจครานแตไมสามารถเอามาไดสาหรั ํ บการใชอน่ื ๆ ผูใชและผูออกแบบทีส่ นใจในความไมจงใจในการกระทําเครือ่ งทีด่ ี กับตัวเลขที่ แนนอนของ processor แตถงึ อยางไรขนาดของประสิทธิภาพก็มากกวาที่ processor เพิ่ม เขาไปในหลายๆกรณีมนั ทําใหเหตุผลของการวัดประโยชนหรือยีห่ อ ถายีห่ อ เหลานีไ้ มมี การวัด ผลกระทบเกิดขึน้ จากความคลายคลึงกันทีจ่ ากั ํ ด และการเพิม่ การติดตอสามารถ นําผลลัพธในแงรา ยเมือ่ คาดวาจะมีมากกวา processor จะใชปญ หาทีใ่ หญกวาเกา ดังนัน้ มาตราสวนความเร็วเพิม่ ขึน้ จะเปนประโยชนมาก เนือ่ งจาก processor เพิม่ ทัง้ คูส าหรั ํ บ ปญหา fixed-size และสําหรับเรือ่ งของมาตราสวนของปญหา การหาเรือ่ งของ scaled และ unscaled เป น การเร ง ความเร็ ว ที่ เ ป น เส น โค ง ทางเลื อ กของขนาดเทา ไรที่ uniprocessor algorithm ใหความสําคัญในการหลีกผลลัพธที่ผิดหลัก ตั้งแตการใช parallel version ของbenchmark บางทีภายใตการกําหนดประสิทธิภาพของ uniprocessor และดังนั้น overstate จึงเรงความเร็วขึน้ นีค่ อื การโตตอบกับตัวอยางในสวน 8.9 หนหนึ่งเรามีการตัดสินมาตราสวนปริมาณการเรงความเร็ว คําถามคือใชมาตรา สวนเทาใด สมมุตเิ รามีการกําหนดยีห่ อ ของการทํางานของขนาด n บน p processor ซึ่ง ทําดวยเหตุผล คําถามคือใชมาตราสวนของbenchmark เทาไร ทํางานบน m x p processor มี2 ทางทีป่ รากฎชัดในทางของอัตราสวนของปญหา : เก็บรักษาจํานวนของ หนวยความจําที่ใชตอ processor constant ; และเก็บรักษาผลรวมของ execution time สมมุติการเรงความเร็วทีส่ มบูรณแบบ วิธแี รกเรียกวา memory-constrained scaling โดย เฉพาะปญหาในการทํางานของ m x n บน m x p processor วิธีที่ 2 เรียกวา timeconstrained scaling ตองรูความ สัมพันธระหวาง running timeกับขนาด ของปญหา สําหรับตัวอยาง; สมมุติ m วา running time ของ application กับ ขอมูลขนาด n บน p processor คือสัดสวนของ n2 ในชวงของ time-constrained scaling ปญหาในการทํางานคือ ปญหาของใครก็ตามที่ running time ดีบน m x p processor ยังคงเปน n2 ปญหากับ running time ทีด่ มี ขี นาด x n ตัวอยาง สมมุตเิ รามีปญ หา execution time สําหรับขนาดของปญหา n คือ O(n3) สมมุติ running timeทีแ่ ทจริงบน 10-processor machine คือ 1 ชัว่ โมง ภายใต time-constrained และ memory-constrained หาขนาดของการทํางานของปญหาและผลของ running time สําหรับ 100-processor machine
คําตอบ สําหรับปญหา time-constrained เหมาะสมกับ running timeเหมือนกัน, 1 ชั่ว โมง, ดังนั้นขนาดของปญหาคือ 3 10 x n สําหรับ memory-constrained scaling, ขนาดของปญหาคือ 10n และexecution time ทีด่ คี อื 103/10 หรือ 100 ชัว่ โมง ผูใชจํานวน มากจะไมคอยเต็มใจในการทํางานของปญหาบนรายการที่มีขนาดมากกวา processor สําหรับ 100 ครัง้ ทีย่ าวกวาขนาดของปญหานีน้ า จะเปน unrealistic ในการเพิม่ วิธขี องมาตราสวน มีคาถามเกี ํ ย่ วกับมาตราสวนของโปรแกรมอยางไร เมื่อเพิ่มขนาดของปญหากระทบกระเทือนระดับของผลลัพธ ตั้งแตโปรแกรมที่เทากัน จํานวนมากคือปลอมปรากฎการณทางกายภาพที่เปลี่ยนคุณลักษณะขนาดของปญหาของ ผลลัพธ และเราจะตองเปลี่ยน application จํานวนมากกับผลกระทบนี้ ตัวอยางเชน พิจารณาผลกระทบของเวลาที่รวมกันสําหรับแกสมการทีแ่ ตกตาง ในเวลานีเ้ ปนตัวอยาง ในการเพิ่มขนาดของปญหา สําหรับตัวอยาง เราตองการกลาวซําสํ ้ าหรับปญหาทีใ่ หญ ดัง นัน้ เมือ่ เราเพิม่ ขนาดของปญหา ผลรวมของ running time บางทีจะเร็วกวามาตราสวนพืน้ ฐานบนเครือ่ งหมาย O( ) analysis สําหรับตัวอยาง สมมุตจิ ํานวนของการเติบโตซําๆ ้ เสมือนเลขของขนาดของปญหา ผลกระทบของ runningtime ทีแ่ ทจริงเสมือนกับ O(n log n) ถาเราวัดมาตราสวนจากปญหาขนาด m บน 10 processor มาตราสวน purely algorithmic จะอนุญาติใหปญ หาดําเนินการขนาด 10 m บน 100 processor การนับ สําหรับการเพิ่มใน iteration หมายถึง ปญหาของขนาด k x m, ที่ k log k = 10,จะมี running time เหมือนกับบน 100 processor ซึง่ ยอมใหมาตราสวนของ 5.72 m มากกวา 10 m ในทางปฏิบตั กิ ารแบงการวัดซึง่ ตองการขอผิดพลาดทีเ่ ขาใจไดดขี องการประยุกต และบางทีเกีย่ วกับปจจัยอืน่ เชน การทนทานตอขอผิดพลาด( สําหรับตัวอยาง,มันกระทบ เกณฑของcell-opening ใน Barnes-Hut ) ในทางกลับกันเชน ผลกระทบทีส่ ําคัญกระทบ ตอการติดตอหรือคุณสมบัตทิ ค่ี ลายกันของประโยชนทด่ี ใี นการเลือกขนาดของปญหา scaled speedup ไมเหมือนกับ unscaled speedup ; จะทําใหสับสนระหวางขอผิด พลาดทัง้ สองทีน่ ามาอ ํ าง scaled speedup มีหนาทีสาคั ํ ญ เพียงแตเมือ่ วิธกี ารของ scaling คือเสียง และผลลัพธ เปนรายงานทีป่ ระยุกตมาจาก scaled version Memory System Issues ตามที่พวกเราเห็นในบทนี้ ผลลัพธของระบบหนวยความจํา เปนศูนยกลางของ การออกแบบของ shared-memory multiprocessor อยางแนนอน multiprocessor แนะนํา
ความซับซอนของระบบหนวยความจําใหมๆมากมายทีท่ าให ํ ไมอยูใน uniprocessor ใน สวนนีเ้ รามองการปฏิบตั ขิ อง 2 ผลลัพธ ซึง่ มีผลกระทบตอความหมายของการออกแบบ และเครือ่ งมือของระบบหนวยความจํา ในเนื้อหาของ multiprocessor Inclusion and Its Implementation Multiprocessor จํานวนมากใช multilevel cache ในการเปลีย่ นการแบงระดับที่ ตองการบนความเกีย่ วของกันทีเ่ ปนสากล และ latency ของ cache misses ถาcache จัด เตรียม multilevel inclusion ทุกๆการแบงระดับของ cache คือกลุม ยอยของระดับทีห่ า ง จาก processor ดังนัน้ เราสามารถใชโครงสราง multilevel ในการบรรเทาการแขงขัน ระหวาง coherence traffic และprocessor traffic ดวยการอธิบายอยางรวดเร็ว ดังนัน้ multiprocessor จํานวนมากกับ multilevel caches จึงมีการรวมคุณสมบัตกิ นั ขึน้ เปนการ จํากัดดวยการเรียก subset property เพราะแตละกลุมยอยของ cache อยูต ากว ่ํ ามันในการ แบงระดับ การมองในขั้นแรก เปนการรักษาคุณสมบัติ multilevel inclusionทีด่ เู หมือนไม สําคัญ พิจารณา 2 level ตัวอยาง : ความผิดพลาดใน L1 แตละการชนใน L2 หรือกอให เกิดความผิดพลาดใน L2 มันจะนําสาเหตุเขาไปใน L1 และ L2 ทัง้ คู การทําใหเปนโมฆะ นั้น การปะทะใน L2 จะสงถึง L1 มันจะเปนสาเหตุของblockทีเ่ ปนโมฆะ ถามันยังคงอยู จะเกิดอะไรเมือ่ block size ของ L1 และ L2 แตกตางกัน การเลือกความแตกตาง ของ block size คือเหตุผลอันแทจริง เนือ่ งจาก L2 ใหญกวาและมีความยาวมากกวาสวน ประกอบทีแ่ ฝงอยูใ น miss penalty ของมัน และดวยเหตุน้ี จึงตองการใช block sizeที่ ใหญกวา จะเกิดอะไรกับการบังคับแบบอัตโนมัตขิ องการรวมเมือ่ block size มีความแตก ตาง? block ใน L2 คือผลคูณของ block ใน L1 และความผิดพลาดใน L2 เปนตนเหตุให เกิดการแทนทีข่ องขอมูล นั่นคือการคูณ block ใน L1 มีผลลัพธเทากัน สําหรับตัวอยาง ถา block size ของ L2คือ 4 times ของ L1 ดังนั้นความผิดพลาดใน L2จะแทนทีผ่ ลลัพธทเ่ี ทา กันของ 4 block ใน L1 ตัวอยาง สมมุตวิ า L2มี block size เปน 4 time ของ L1จะแสดงความผิดพลาดอยางไร สําหรับ address ที่เปนสาเหตุใหเกิดการแทนที่ใน L1และ L2สามารถลวง ละเมิดการนําของคุณสมบัติ inclusion
คําตอบ สมมุตวิ า L1และ L2เปนdirect mapped และblockของ L1คือb byte และ block ของ L2คือ 4b byte คาดวา L1บรรจุblock กับเริม่ ที่addresses x และ x+b และ นั่นคือ x mod 4b = 0, หมายถึง x เริม่ ที่ address ของ block ใน L2นั่นคือblock เดียวใน L2บรรจุ L1 block x, x+b, x+2b และx+3b สมมุติ processor อางอิง block y ทีบ่ รรจุ block x ใน cacheและhence misses เนื่องจากความผิดพลาด ของ L2มันนํา 4b byte และแทนที่blockทีบ่ รรจุ x, x+b, x+2b และx+3b ขณะที่ L1นํา b byte และแทนที่blockทีบ่ รรจุ x เนือ่ งจาก L1ยังคงบรรจุ x+b แต L2ไม ไดทาํ คุณสมบัติ inclusionจึงไมยาวกวาการบรรจุ การรักษา inclusion กับ multiple block sizes เราจะตองตรวจสอบลําดับทีส่ งู กวา ของการแบงลําดับ เมือ่ การแทนทีท่ ําทีร่ ะดับทีต่ ากว ่ํ า ทําใหมั่นใจวาคําใดๆทีถ่ กู แทนที่ ในระดับทีต่ ากว ่ํ าจะทําใหเปนโมฆะใน higher-level caches ระบบจํานวนมากเลือกการ แกไขแบบนี้ มากกวาตัวเลือกของความไมไวใจบน inclusion และ snooping the higherlevel caches ในแบบฝกหัดนีเ้ ราสงเสริมการสํารวจ inclusion และแสดงความคลายคลึง กันของปญหาทีค่ งอยู ถาความเกีย่ วของของ level คือความแตกตาง Nonblocking Caches and Latency Hiding เราไดเห็นใจความสําคัญของการ nonblocking หรือการไม lock caches มาแลว ซึง่ เปนแนวคิดทีถ่ กู นํามาใชเพื่อลด cache misses โดยการ overlapping กับการประมวล ผลและโดยการลําเลียงสิง่ ทีส่ ญ ู หาย ยังมีประโยชนอน่ื ๆอีกในกรณีของ multiprocessor คือประการแรกเนื่องจากากรสูญหายมีมากขึ้น หมายความวามีหลาย latency ถูกซอน และมีโอกาสที่จะเกิดความสูญหายระหวางการลําเลียงมากขึ้นดวย แตเพราะวาหนวย ความจํ าและความสั ม พั น ธ กั น ระหวาง system สามารถจั ด การหลายๆ memory references ได เครื่องตองการ nonblocking caches เพือ่ เอาประโยชนจาก weak consistency models เชนในการ implement แตละ modelนั้น การทีเ่ ขียนแบบnonblocking นั้นจะมี ความสัมพันธกบั การอานของ processor นีส้ ามารถอานไดตลอดโดยทันที, โดยการใช buffer ในการเขียนหรือทันทีทม่ี กี ารสราง block และ update caches Relaxed consistency models ยอมให มี ก ารเปลี่ ย นแปลงขั้ น ตอนของความสู ญ หาย แต nonblocking caches มีความจําเปนในการทําใหไดประโยชนสงู สุดและเต็มที่ การใช
nonblocking caches มากขึน้ ๆทําใหสามารถคาดหวังถึงความเปนไปไดของประโยชนท่ี เราจะไดรับจาก relaxed consistency models วาจะมีมากขึ้น ในทีส่ ดุ nonblocking caches ก็สามารถสนับสนุนการ implementing prefetching ซึง่ มีความสําคัญมากกับ processor หลายตัวมากกวา processor ตัวเดียว เพราะมีหนวย ความจํ ามากกวาและมันยอมใหสามารถ insert ที่ไหนก็ไดตามในโปรแกรม โดย ปราศจากากรเปลีย่ นแปลงผลของการคํานวณ ใน multiprocessor ในการเก็บขอมูลนัน้ ถาใช prefetches แลวตองเก็บขอมูลแบบ coherence เมื่อคาที่ไดนั้นถูก accessed จริงๆจากload instruction เมือ่ คาทีเ่ ขียนถูก return คากลับมา ถาคานัน้ ถูกเขียนหลังจาก prefetch แลว นีเ่ ปนคุณสมบัตทิ แ่ี ทจริงซึง่ cache coherence ไดใดเราสําหรับตัวแปรตางๆใน memory prefetch ไดนําคาของขอมูลใหใกลเคียงขึ้น และสามารถยืนยันไดวามีการใช หนวยความจําจริงๆในการ access ขอมูล คาของขอมูลทีไ่ ดรบั เขามาครัง้ ลาสุดเรียกวา nonblinding เพราะคาของขอมูลจะไมผูกติดกับ a local copy ซึง่ จะเปน incoherence ใน ทางตรงกันขาม prefetch จะเคลื่อนยายคาของขอมูลเขาไปไวใน a general purpose register เพือ่ ทําความสัมพันธใหขอมูล เพราะคาของ register จะเปนตัวแปรใหมตรงขาม กับ cache block ซึง่ จะเปน coherence copy ของตัวแปร nonblinding prefetch จะเก็บรักษาคุณสมบัตขิ องขอมูลตางๆในหนวยความจํา, ขณะที่ a blinding prefetch นัน้ จะมีลกั ษณะเหมือน register ทีท่ ําการ load เพราะมันจะมี การเคลือ่ นยายขอมูลจากทีอ่ ยูข อง coherence space ทําไม nonblinding prefetch จึงถูกวิพากษวจิ ารณ? Nonblinding นัน้ เหมือนจะ งายแตในบางกรณีเชน คาของขอมูลถูกเขียนโดย processor 1 ตัว และถูกใชโดย processor ตัวอืน่ ในกรณีนเ้ี ราตอง prefetch คากอนโดยเร็วทีส่ ดุ เทาทีจ่ ะทําได แตสมมุติ วาการประมวลผลลาชาดวยบางเหตุผลแลวนัน้ prefetchอาจจะนําคาเกาของขอมูลมาใช แทน แตถา prefetch เปนแบบ nonblinding แลว การทําสําเนาของขอมูลเกาจะถูก ประกาศใช เมือ่ คาถูกเขียนและถูกรักษา อยางไรก็ตามเมือ่ มีการใชงานไปก็จะไดคา ของขอมูลทีไ่ มตดิ ตอกันในการทีจ่ ะนําไปใช prefetching process เพราะจะเกิดจากการใชหนวยความจํายาวนาน การ prefetch จําเปน ตองรูค าสั ํ ง่ ทัง้ หมดเพือ่ ทีจ่ ะใชงานไดสะดวกในการใชประโยชน ถาตองการความ
สมบูรณซึ่งจะทําใหการติดตอกันสมบูรณและใชประโยชนกบั การ prefetchใน multiprocessors ไดมากขึ้น. การทีจ่ ะทําใหการ prefetch ดีขน้ึ นัน้ ตองการการติดตอชนิดเดียวกันซึง่ จะตรงกับที่ chche ตองการ จะเริม่ ตนการเขาถึงหนวยความจําทีส่ าคั ํ ญหลายๆที่ สาเหตุทจ่ี ะทําใหเกิด ปญหาคือ 1.ทีท่ โ่ี หนดตองการทีจ่ ะเก็บ track ในการเขาถึงหนวยความจําทีส่ าคั ํ ญหลายๆที่ ตัง้ แต การสงขอมูลกลับทีไ่ มเหมือนกันกับการสงขอมูลอยางเดียว ซึง่ สามารถลําดับไดโดยการ เพิม่ ตอทายไป หรือโดยการเก็บ address ของแตละ block ของหนวยความจําทีต่ อบรับ 2.กอนทีจ่ ะไดผลลัพธทต่ี อ งการโหนดนัน้ ตองแนใจวาไมมขี อ มูลอยูใ นนัน้ สําหรับ การที่จะตองการขอมูลซึง่ มีเหมือนกันจะทําใหเกิดการไมถกู ตองของ protocal โดย เฉพาะถาโหนดทีแ่ สดงผลลัพธนน้ั บันทึกลงผิดblock ขณะที่กาลั ํ งบันทึกขอผิดพลาดที่ สําคัญทัง้ ของprotocal และ directory protocalที่ผิดพลาดนั้น 3.คาดวาถาเพิ่มdirectory และ snooping controller ซึง่ จะหยุดการประมวลผลเมือ่ พบ การผิดพลาด และจะใหcacheควบคุมและรอการตอบรับเมือ่ มีการแกไขแลว และถา cacheไมไดเปนblockจะไมมกี ารหยุดของcacheและจะมีการเพิม่ การตองการกับการเพิม่ ของการประมวลผล Compiler Optimization and Consistency Model ดวยเหตุผลอีกมากมายกับการอธิบายของแตละรูปแบบของหนวบความจําที่ไมมีการ เปลี่ยนแปลงเกีย่ วกับขอบเขตของการ compiler ซึง่ สามารถทําตามการใชขอ มูลรวมกัน หมายถึงการใชขอ มูลพรอมๆกันมีโอกาสนอยมากทีจ่ ะเกิดขึน้ และโปรแกรมทีใ่ ชตรงกัน ในการ compiler ไมจาเป ํ นทีจ่ ะตองมีการรับขอมูลของกันและการบันทึกขอมูลทีใ่ ชรว ม กัน เพราะวาอาจเกิดผลกระทบกับการเปลีย่ นแปลงทีอ่ าจมีผลกระทบกับโปรแกรมได ซึ่งการปองกันทีง่ า ยเชนการติดตอกับการขอเนือ้ ทีใ่ นการใชขอ มูลรวมกันเพราะในการ ประมวลผลปกติจะมีการรับ-สงขอมูลกันและกัน หมายถึงการใชงานพรอมๆกันของ โปรแกรม เชน การเขียน High Performance FORTRAN(HPF) โปรแกรมตองการความ เขาใจทีต่ รงกันและรูถ งึ ความเขาใจทีต่ รงกัน ไมอยางนั้นผลลัพธที่จะไดก็จะไมเกิดขึ้น
Using Virtual Memory Support to Build Shared Memory โดยทัว่ ไปถาตองการทีจ่ ะใชaddressในnetwork การใช virual memory mechanism และ operating system (OS) จะเตรียมการใชงานรวมกันของหนวยความจําไว ซึง่ ตลอด 10 ปทผ่ี า นมามีรปู แบบอยูส องอยางคือ distributed virtual memory(DVM) และ shares virtual memory(SVM) สิง่ ทีท่ าให ํ คดิ เกีย่ วกับการสราง virtual memory เปน hardware คือความสามารถทีจ่ ะควบคุมการเขาถึงทัง้ การอานและบันทึก โดยการใชประโยชนใน ดานการตรวจสอบและปองกันการเขาถึงและoperating system นีย้ งั ใชประโยชนในการ ติดตอกันของขอมูล,สามารถสรางการติดตอกันได และการใชงานของ address ไขวกัน กับการกระจายของหนวยความจําของ multiple processors ใน SVM นั้น pages กลายเปนสวนของการติดตอกันมากกวา cache block และระบบ OS สามารถทีจ่ ะอนุญาติให page จําลองรูปแบบของการอานขอมูล,ใชประโยชน virtual memory ในการสนับสนุนการปองกัน page จากการบันทึกได เมือ่ มีการทีจ่ ะพยายาม บันทึกลงไปใน page ก็จะเกิดชองที่ operating system และ operating system จะประมวล ผลและสง message จาก operating system ไปทีแ่ ตละโหนดซึง่ ใช page รวมกันที่ ตองการ home node และ operating system นัน้ จะทําในทีซ่ ง่ึ โหนดจะมีการตอบรับจาก track ทีซ่ ง่ึ copy page นั้นไว สําหรับเครือ่ งทีท่ ํางานเหมือนกันในการติดตอกันในการใชหนวยความจํารวมกัน สิ่ง ที่แตกตางกันคือสวนทีต่ ดิ ตอกันใน page และ โปรแกรมทีใ่ ชประโยชนในการเพิม่ coherence algorithms มันเปนความแตกตางกันของประสิทธิภาพทีแ่ ตกตางกัน page มี ความสําคัญกวา cache block และ ความเปนไปไดทก่ี ารใชประโยชนจาก page จะไม สมบูรณและอาจลมเหลวเมือ่ มีการใชงานรวมกันมากๆ กอใหเกิดประสิทธิภาพทีไ่ ม สมําเสมอและบางเวลาอาจทํ ่ าใหประสิทธิภาพลดลง เพราะ coherence algorithms จะ สามารถทีจ่ ะถูกพัฒนาเพือ่ เพิม่ ความสามารถเมือ่ เปน software ผลลัพธของการรวมกันของ virtual memory กลายเปนการทําหนาที่ผานกันอยาง อิสระ จะทําใหการติดตอสือ่ สารขนาดเล็กแยลง และจะมีการติดตอสือ่ สารทีม่ โี ครงสราง ใหญมาก การกระจายของ virtual memory ในปจจุบนั มีการแขงขันกันซึง่ ตองพัฒนาใน ดาน hardware,coherence ,conherence memory เชนการกระจายการใชงานรวมกันของ โครงการการใชงานรวมกันของหนวยความจํา พิจารณาในสวน 8.4 โปรแกรมตอง
บันทึกสําหรับการติดตอการใชงานรวมกันของหนวยความจํา ไมสามารถทีจ่ ะทําใหเกิด ประสิทธิภาพในการใชงานรวมกันของ virtual memory ได มีหลายๆสิง่ ทีเ่ ปลีย่ นความสนใจในการทีจ่ ะใชการรวมกันของ virtual memory เชน การเพิม่ ทีด่ ที ส่ี ดุ และ การใชจํานวน hardware ทีน่ อ ยทีส่ ดุ ในการสนับสนุน ใน operating system เทคโนโลยี ของการ compiler ทีจ่ ะใชประโยชน page size ใหนอ ยทีส่ ดุ สามารถทีจ่ ะใหระบบสรุป ขอเสียของการติดตอสือ่ สารที่ page-level granularity ลักษณะของ software ทีส่ นับสนุน การใชงานรวมกันของหนวยความจําทีส่ าคั ํ ญและสวนที่สาหรั ํ บการคนหา และความ สามารถทีจ่ ะปฎิบตั หิ นาทีท่ ส่ี าคั ํ ญในการเพิ่ม hardware machanisms ในการใชประโยชน ไมสมบูรณของ machine เชน network ของ workstation หรือ ในการใหมกี ารใชงานรวม กันของหนวยความจําทีข่ ยายใหใหญมากหรือการเพิม่ ประสิทธิภาพทีจ่ ะเปนไปไดทจ่ี ะ สราง DSM cluster 8.8 Putting It Together: The SGI Challenge Multiprocessor ในสวนทีเ่ ราจะพิจารณาในการออกแบบการมีประสิทธิภาพของ silicon graphics challenge multiprocessor มีความตองการในสวนของ bus-based,cache-coherent design with a wide,high-speed bus,ความสามารถทีจ่ ะทําใหมีความเร็ว 36 MIPS R4400 กับ 4 processor on a board, และเพิ่มหนวยความจําเปน 8 ทาง16 GB ผลประโยชนทไ่ี ดจาก การออกแบบคือจะชวยเพิม่ ประสิทธิภาพของ microprocessor เปน R8000 (TFP) แตกบั bus ก็เหมือนกัน,หนวยความจํา,และ I/O system กับสอง processor ตอ board จะมีความ สามารถเทากับ 18 processor ในการพิจารณาควรมองที่ bus,coherence hardware และ synchronization support สามารถวัดความสามารถไดที่ 150-MHz R4400-based The Challenge System Bus ( POWERpath-2 ) การ challenge design มีความมุง หมายทีจ่ ะครอบคลุม 256 data bits และ 40 address bits และ bus 50 MHz เรียกทัง้ หมดนีว้ า "POWERpath-2" bus ซึง่ ติดตอกับอุปกรณ หลักๆและอุปกรณทส่ี นับสนุนการติดตอสือ่ สารกัน ดูรปู 8.42 เปนรูปของการติดตอกัน ของอุปกรณ POWERpath-2 เปนเครือ่ งมือทีจ่ ะบันทึกการผิดพลาดของการติดตอสือ่ สารกันโดย มีโครงสราง 4 สวน และ 3 สวนสามารถเห็นใน รูป 8.3 และอีก 1 สวนจะสง block ซึ่ง
วางเปลาไปแตไมสามารถไปที่ cache ได พืน้ ฐานของการติดตอกันที่ protocol จะยาว กวา protocol 3 สวนสามารถพิจารณาไดจากรายละเอียดตางๆ เมือ่ block ซึ่งไมมีการใช cache รวมกันในการอานขอมูล block นัน้ จะเก็บทีน่ น้ั ไว ถามีการอานขอมูลทีผ่ ดิ block โดยการใชงานรวมกัน การบันทึกลงกลับไปที่ block ก็จะไมสามารถทีจ่ ะบันทึกลงไปได ขอดีของprotocol คือไมมีการผิดพลาดที่มากมาย เมือ่ มีการเปลีย่ น block ใหมหี นาที่ dirty exclusive แมวาจะไมดีสาหรั ํ บการเขาถึงขอมูลทีใ่ หญทต่ี อ งการใชขอ มูลรวมกัน มัน สามารถเพิ่มประสิทธิภาพในการเขาถึงขอมูลไดแตไมแนนอนในการใชงานรวมกัน โดย เฉพาะขอมูลซึง่ มีคณ ุ สมบัตกิ ารใชงานรวมกันมากๆ ถา cache ทีผ่ ดิ พลาดไมตอ งการที่ จะบันทึกลง block นั้นใน cache ทีอ่ ยูป ระจํา การทํา clean exclusive นัน้ ตองแนนอน เพราะวา processor จะรูถ งึ การอานหรือบันทึกลง block และสามารถทีจ่ ะเปลีย่ นตามได POWERpath-2 จะสนับสนุนการแบงการติดตอและสามารถทีร่ อการอานทีส่ าคั ํ ญๆ ได รวมถึงการอานทีผ่ ดิ วงสามารถทีจ่ ะบันทึกลงได การรอการอานจาก track ทีละ processor และ resource identifiers ตองเปนตัวเลขทีไ่ มซากั ้ํ บตัง้ แต 0 ถึง 7 ซึง่ จะระบุทท่ี ่ี อานมา การใชประโยชนทไ่ี ดจะไดผลลัพธทเ่ี หมือนกัน ดังนัน้ processor จะรูว า เมือ่ ไหร ที่จะมีการตอบรับตามที่ bus ตองการ ถาทางทั้ง 8 ทีเ่ หมือนกันนัน้ สามารถทีจ่ ะใช ประโยชนไดจากการอานทีต่ อ งรอจะกลายเปนการอานไดตลอด เมือ่ มีการอานทีส่ าคั ํ ญ เสร็จสิน้ แลว ในสวนทายการพิจารณาความแตกตางทีไ่ ดจากการแบงการติดตอของ bus โดยเฉพาะ cache-coherence algorithm ในsection 8.3 จะทํางานทีไ่ มถกู ตองถามีการบันทึกและอาน เหมือนกับ cache block ทีแ่ ทรกอยูใ น bus การปองกันปญหา processor board จะตองไม ทําใหผลทีอ่ อกมาไมถกู ตองสําหรับ address ทีต่ อ งการอาน อีกทางที่ processor จะเก็บ track ทีต่ อ งการที่ 8 ทางทีจ่ ะอานถาเกิดการผิดพลาดขึน้ สําหรับการอานก็จะตองรอกอน processor จะหยุดและบันทึกก็จะชาลงไป ถา processor รับขอมูลทีอ่ า นทีพ่ บขอผิดพลาด ที่ address นัน้ ก็จะยังไมอา น ถาการรอชามากสามารถทีจ่ ะ"piggyback" ก็จะลดเวลาทีร่ อ ได เมือ่ มีการตอบรับจากการอานขึน้ bus ก็จะมีการติดตอทีก่ บั ขอมูลทีง่ า ยขึน้ และ สามารถทีจ่ ะใชประโยชนไดเปนทีน่ า พอใจ ในแตละทางในทางทีต่ ดิ ตอกันทัง้ 8 ทางอาจมีการขัดของได ถาตองการทีจ่ ะอานก็ไม ควรทีจ่ ะมีการตอบรับจาก memory จะทําใหใชเวลามากหรือนอยขึน้ อยูก บั ทีท่ ่ี processor
ทํางานดังนัน้ จะมีการวิเคราะหถงึ การเพิม่ การติดตอสือ่ สาร เมือ่ processor ทัง้ สองพบกัน ซึง่ cache ไมตอง block หรือมีการ clean state ใน block processor จะหยุดการติดตอใน สายนั้น ถา processor หยุดการสือ่ สารทัง้ หมด memory จะตอบรับ ตัง้ แตทร่ี วู า processor ทัง้ หมด copy are clean ไวแลว ถา processor มีหนาที่ในการ copy block มันก็จะตองการ bus และที่สําหรับขอมูลใน bus หลังจากนัน้ ถามีการหยุดการติดตออีก ถามีการตองการ ของ processor และ memory ในขอมูลเดียวกันและบันทึกขอมูลไป ในกรณีสดุ ทายตัง้ แต การแบง tags สําหรับการ snooping และการสงคาคืนจาก first-level หรือ second-level cache จะตองมีการคนหาขอมูล ซึง่ วิธที จ่ี ะ letting memory ใหตอบรับเมือ่ copy ผิด พลาดก็จะพิจารณาใหมกี ารเขาแทรกตลอดเวลา ขอมูลและ address buses แบงการตัดสินและการใชประโยชน write-back จะตองการ ใชประโยชนทง้ั สอง การอานทีต่ อบรับจะใชประโยชนเฉพาะ data bus และการผิดพลาด การอานใชประโยชนเฉพาะ address bus เริม่ ตนโดย bus จะแบงการตัดสินใจและการ กําหนดตางๆ การรวมกันของ bus ทีส่ ามารถทีจ่ ะทํางานไดในเวลาเดียวกันและการ ตองการอานขอมูลอันดับตอไปและการตอบรับทีร่ วดเร็ว POWERpath-2 ในแตละ bus ทีต่ ดิ ตอกันประกอบไปดวย 5 bus clock cycles ในทุกๆ 20 ns ซึง่ จะสามารถทีจ่ ะ execute โดยการควบคุมของ bus ในแตละ board ใน five-cycle สามารถทีจ่ ะ ตัดสิน,resolution,address,decode และ acknowledge ใน board bus ใน address ทีจ่ ะสง ใน five-cycle bus transaction ใน data bus 256 ิbits จะสงขอมูลทีอ่ ยูร ะหวางการปฎิบตั ิ ใน five-cycle bus tramsaction ดวยเหตุน้ี bus จะมีอตั ราการสงเทากับ (256/8) bytes/transfer * (1000/20) bus cycles/microsecond * (4/5) transfers/bus cycle = 1.28 GB/sec การติดตอทีไ่ ดจาก memory ในแตละ memory board จะเตรียมที่ 576 ิbit สําหรับ DRAMs (512 bits ของขอมูลและ 64 bit ของ ECC) และอนุญาติให single memory cycle เตรียมขอมูลสําหรับ two bus transfers ดวยเหตุนก้ี บั two-way interleaving ทีเ่ ปน single memory board สามารถทีจ่ ะสนับสนุนการติดตอของ bus ไดเต็มที่ ระยะเวลาทีใ่ ช
ไปทัง้ หมดก็จะเปนทีน่ า พอใจการอานขอผิดพลาด ที่ 128-byte ที่ cache line กับการไม แนนอนที่ 22 bus clock cycles คือ 1. เริม่ ตนอานขอมูลจากทางทีใ่ ชตดิ ตอสือ่ สาร 1 ทาง จาก five bus clock cycles 2. memory พรอมทีจ่ ะสงขอมูลที่ 12 bus clock cycles 3. ตอบรับการสงขอมูลทัง้ หมด ที่ 128 byte ในการตอบรับการติดตอ 1 ครั้ง หลังจาก นัน้ ทํา five bus clock cycles ดวยเหตุนก้ี ารเขาถึงขอมูลจาก processor จะอยูท ่ี 22 bus clock cycles คาดวาการเขา ถึงขอมูลจะเริม่ ตนเมือ่ address ไดรบั และตอบรับการติดตอไปสามารถทีจ่ ะติดตอกลับ ไปหลังจากทีส่ ง ขอมูลมา ซึ่ง bus จะแบงการติดตอเอง ดังนัน้ การตองการสิง่ อืน่ ๆและ การตอบรับสามารถทีจ่ ะดําเนินไประหวางที่ memory กําลังเขาถึงขอมูลนัน้ ดวยเหตุน้ี การคํานวณ secondary cache miss time จึงตองคํานวณเวลาทีใ่ ชในแตละ ขั้นตอนตั้งแต memory address เกิดขึน้ จนกระทัง่ เริม่ ตนอีกครัง้ หลังจากทีพ่ บขอผิด พลาด คือ 1. เริ่มตนคนหาที่ผิดพลาดและมีการที่ผิดพลาดใน memory โดย processor ประมวล ผลทัง้ 3 ขัน้ ตอนทีเ่ หลือคือ คนหาที่ผิดใน primary on-chip cache,เริม่ ตน secondary (offchip) cache access และคันหาที่ผิดใน secondary cache และ driving the complete address off-chip ใน system bus ในการประมวลผลใช 40 processor clock cycles 2. bus and memory มีระบบทีใ่ ช 22 bus clock cycles 3. ดึงขอมูลจาก cache line ที่ R4400 ทีห่ ยุดจนกระทัง่ cache block ไมเสียหายและ สามารถทีจ่ ะดึงขอมูลได ดังนัน้ จึงตองบวกเวลาทีใ่ ชในการดึงขอมูลไปกับเวลา miss time หนวยความจําจะติดตอกับ processor 64 bit และจัดการที่ external bus timing ที่ 50 MHz ซึง่ เหมือนกับ bus timing ดวยเหตุนก้ี ารดึงขอมูล 128-byte cache block ใช 16 bus clock cycles 4.ขัน้ ตอนสุดทายเพิม่ 10 processor clock cycles ทีใ่ ชประโยชนทด่ี งึ ขอมูลจาก primary cache และการเริม่ ตน pipeline เวลาทีใ่ ชสาหรั ํ บ secondary cache ทีม่ กี ารผิดพลาด ใช 50 processor clock บวก 38 bus clock สําหรับ 150 MHz R4400 ในแตละ bus clock (20 ns) ใน 3 processor clock (6.67 ns) ดังนัน้ miss time ใช 164 processor clock หรือ 1093 ns ตัวเลขทีใ่ ชในการ
พิจารณาใหญมากสําหรับ uniprocessor ทีม่ กี ารเขาถึง memory ที่สามารถพิจารณาไดจาก รูป 8.9 ซึง่ อยูใ นสวนของการพิจารณาประสิทธิภาพ Performance of the Parallel Program Workload on Challenge ในรูป 8.43 แสดงถึงประสิทธิภาพของ application ในการ running program กับ 16 processor ความเร็วที่ 16 processor เปลีย่ นจาก 10.5 เปน 15 เพราะเปนการแสดงถึงการ เพิ่มความสามารถของ memory ในรุน ของ uniprocessor มีการพัฒนาทีด่ กี วาปกติ ดวย เหตุนผ้ี ลของการศึกษาจะมีความสัมพันธกบั รูปแบบของ parallel จะเขาใจวาจะมีอะไรที่ ดีขึ้น และสามารถทีจ่ ะพิจารณาถึงสวนประกอบทีจ่ ะมีผลกับเวลาทีใ่ ชทง้ั หมด รูป 8.43 แสดงถึงความสามารถของ benchmarks ทีว่ ดั กับ processor 150-MHz R4400 รูป 8.44 แสดงถึงผลรวมของเวลาทัง้ หมดทีใ่ ชในการทํางานประกอบไปดวย CPU time,memory overhead or stall time และ synchronization wait time ทีข่ อ มูลในรูป 8.44 สามารถทีจ่ ะอธิบายคุณสมบัตทิ แ่ี ตกตางกันของโปรแกรม เชน FFT แสดงถึง linear speedup ทีส่ ามารถทีจ่ ะเห็นคาทีแ่ สดงถึงประโยชนของ processor ไดไกลเคียงกันมาก ทัง้ Barnes and Ocean ตองการการ drop-off ในการ speedup มีการเพิม่ ขึน้ เล็กนอยใน synchronization overhead, LU มี speedup ทีเ่ มือ่ มีการเพิม่ ขึน้ จะลดลงไดมาก ซึง่ จะ แสดงถึงการเพิม่ ของ synchronization overhead เปนทีน่ า พอใจมากกับการ synchronization overhead จะแสดงใหเห็นถึงความแนนอนในการ load imbalance ซึ่ง กลายเปนปญหาทีน่ า หนักใจระหวาง fixed problem size และ number of processors decreases ในรูปที่ 8.44 มีการบอกถึงการ speedup จะอันตรายถาใชประโยชนดว ยตัว ของมันเอง เชน Barnes and Ocean ตองใช speedup 16 processor แต ใน 16 processor มันมีการเสียเวลาในการใชถงึ 70% ของเวลาในการ Barnes และใน 43% ของเวลาใน Ocean Barnes จะมีผลมากเมือ่ ใชประโยชนจาก multiprocessor 8.9 Fallacies and Pitfalls การทีไ่ มเขาใจถึงขอบเขตของ parallel computing และยังมีปญ หาทีซ่ อ นอยูซ ง่ึ ไม ครอบคลุมกับปญหาทัง้ หมดที่ designer หรือ ผูอ อกแบบไดพบการใหการรวมกันเปน
ขนาดใหญซง่ึ ครอบคลุม multiprocessor โดยเฉพาะผลในตอนสุดทายจะมีการผิดพลาด จะมากหรือนอยขึน้ อยูก บั การเลือกทีถ่ กู ตอง สิง่ ทีถ่ กู มองขามคือ การประมาณประสิทธิภาพของ multiprocessor โดยการ linear speedup กับ versus execution time กราฟ"Mortar shot"เปนการแสดงถึงประสิทธิภาพกับจํานวนของ processor ที่แสดง linear speedup และการ falling off ทีต่ อ งใชประโยชนทต่ี อ งตัดสินความสมบูรณของ parallel processor แมวา speedup เปนขอเท็จจริงของ parallel program มันไมมีขนาด ของประสิทธิภาพทีแ่ นนอน คําถามแรกคือกําลังของ processor จะวัดไดจากอะไร คือ ใช program ทีว่ ดั ขนาดของประสิทธิภาพโดย 100 Intel 8080s ในแตละรุนในการใชใน workstation โดยเฉพาะอยางยิง่ floating-point-intensive program เปน hardware ที่ ประมวลผลในสวนทีอ่ ยูภ ายนอกไดรว มกัน เปรียบเทียบ execution time ถาเปรียบเทียบ algorithms ในแตละความคิด เปรียบ เทียบ code ทีเ่ หมือนกันของ 2 ความคิดทีต่ อ งยุตธิ รรม แต parallel program ตองชาใน uniprocessor การกาวหนาของ parallel program ในบางเวลาก็จะมีการเพิม่ ของ algorithm ดังนัน้ การเปรียบเทียบกอนทีจ่ ะทํา parallel code ซึ่งตองดูความเหมาะสม ก็จะ ไมเปรียบเทียบ algorithm ทีเ่ หมือนกัน การสือ่ ถึงผลทีอ่ อกมาในรูปแบบ relative speedup และ true speedup ซึง่ จะใชประโยชนในบางเวลา ผลลัพธซึ่งจะเสนอ super linear ทีม่ ปี ระสิทธิภาพ เมือ่ โปรแกรมทีอ่ ยูบ น n processor มากกวา n time ซึง่ เร็วกวา uniprocessor ทีเ่ หมือนกันจะแสดงวาการเปรียบเทียบไมถกู ตอง แมวา กรณีเมือ่ real super linear speedup ตองมีการชนกัน เชน เมือ่ Ocean run บน 2 processor จะเกิดการ รวมของ cache ทีจ่ ะสราง super linear speedup (2.1 vs. 2.0) ซึง่ แสดงในรูป 8.43 ในทายทีส่ ดุ ก็จะเห็นในสวนกอนหนานี้ speedup ไมตอ งการการแสดงผลทีส่ มบูรณ ของประสิทธิภาพ ตัง้ แตprocessor ไมใชประโยชนในการทํางาน ดวยเหตุนใ้ี น algorithm หนึง่ ๆจะตองมี speedup ทีด่ ดี ว ย หลักทีผ่ ดิ คือ Amdahl's Law doesn't apply to parallel computers. ในป 1987 ไดมอี งกรทีเ่ รียกรองซึง่ Amdahl's Law ซึง่ ตองแตกออกไปกับความคิด MIMD มันมีจุดมุงหมาย อยางไรก็ตามกฏนัน้ ก็ถกู ทําลายลงเพราะขาดความระมัดระวัง
ในทีท่ ่ี program มีขีดจํากัดของประสิทธิภาพ และก็เขาใจตามทีเ่ ห็น และ Amdahl(1967) เขาไดบอกวา A fairly obvious conclusion ehich can be drawn at this point is that the effort expended on achieving high parallel processing rates is wastd unless it is accompanied by achievements in sequential procesing rates of very nearly the same magnitude ( p.483) การแปลความหมายของกฎตัง้ แตเริม่ ตนในทุกๆ program ตองเรียงตามลําดับ มันมีขีด จํากัดของการใชประโยชนของ processor โดยการแสดง linear speedup กับ 1000 processor ทัง้ หมดเปนความหมายของ การแปลของ Amdahl's Law โดยพื้นฐานของ statement ซึ่ง Amahl's Law ไดให "ovrcome"ทีต่ อ งใชประโยชนจาก ขนาดของ speedup การบอกถึงขนาดเครือ่ งหมายทีต่ อ งรูถ งึ ขนาดของขอมูลซึง่ 10000 time ทีใ่ หญมากและเปรียบเทียบกับuniprocessor และ parallel execution times ของ ขนาดทีบ่ อกไว สําหรับรายละเอียดของ algorithm ทีเ่ รียงตามลําดับตามทางของ program ซึง่ เปนคาของขนาดทีอ่ สิ ระ เราสามารถทีจ่ ะบอกการผิดพลาดทีถ่ กู ตองได ปญหาอีกอยางทีเ่ ปนปญหาซึง่ ไดผล ลัพธทผ่ี ดิ ไปจากความจริงซึง่ พิจารณาไดจากรูป 8.7 หลักทีผ่ ดิ คือ multiprocessor are "free". การแปลความหมายทีม่ คี วามหมายทีแ่ ตกตางกันอยู 2 ขอและทั้ง 2 ขอก็เปนการแปลที่ ผิดทัง้ คู ขอแรกใหรปู แบบของ muitiprocessor ทีม่ สี นับสนุนการทํางานของ snooping cache สามารถทีจ่ ะสราง small-cache,bus-based multiprocessor ที่ไมมีการเพิ่มราคาขึ้น อีก ผูอ อกแบบทัง้ หลายตางก็เชือ่ เหมือนกันดวย การเขาใจถึงการไมทํางานนัน้ ตองมีการเปรียบเทียบกันของลักษณะการออกแบบกับ ขอบเขตของ multiprocessor ทีอ่ อกแบบมาวาสามารถทีจ่ ะใชไดในระดับไหน(2-4 processor) ทัง้ 2-4 processor นัน้ ถูกออกแบบใหมกี ารตองการชนิดของ bus และลักษณะ การควบคุมซึง่ มีความซับซอนมากกวาการตองการ memory controller ของ uniprocessor ยิ่งกวานั้นเวลาที่ใชในการเขาถึงหนวยความจําจะรวดเร็วมากในกรณีทเ่ี ปน uniprocessor ตั้งแตการประมวลผลทีส่ ามารถทีจ่ ะติดตอไดโดยตรงกับหนวยความจํากับ single-master
bus ดวยเหตุนจ้ี งึ ไดผลลัพธทเ่ี ทากับปกติไดประสิทธิภาพทีเ่ ทาเดิมแตราคาทีถ่ กู กวากับ การติดตอ 1-processor เมือ่ มี multiprocessor เล็กมาก ทัง้ หมดนีก้ ลายเปนทีน่ ยิ มในป 1980 ทีเ่ ชือ่ ในการออกแบบ multiprocessor ในการมี ความรูส กึ ทีด่ ซี ง่ึ จะรวดเร็วมากในการสราง MP จาก state-of-the-art microprocessor และรวดเร็วในการ update กับ newer processor ดวย ในความคิดของการที่จะละทิ้ง cache เพราะความยุง ยากและการทีม่ กี ารแขงขันกันผลิต high-bandwidth,low-latency memory system ซึง่ มีการเจริญกาวหนาทีเ่ ร็วมาก นอกจากนัน้ ยังมีการพยายามทีจ่ ะเพิม่ software ,operating system and debuggers สําหรับ parallel system หลักที่ผิดคือ Scalability is almost free ผลสุดทายของขนาดของ parallel computing ทีต่ อ งมีการมองมากๆและดูในแตละ สวนของ high-end ทีม่ กี ารพัฒนาตัง้ แตป 1980 จนกระทัง่ สามารถทีจ่ ะครอบคลุมทัง้ หมดซึ่งสามารถที่จะสรางขนาดของ multiprocessor และงายทีจ่ ะทํางานดวยขนาดที่เล็ก กวาของ processor ทีจ่ ะนับจํานวนทัง้ หมดทีเ่ ปนจริงและใน interprocessor จะมีการติด ตอสือ่ สารกับ network ซึง่ มีการติดตอทีน่ า เชือ่ ถือได ราคาของขนาดของ processor ทีเ่ ห็นทัง้ หมดมีระยะของการออกแบบทีม่ ขี ดี จํากัด ใน MP ทีม่ ขี นาดเล็กๆ(2-8 processor) กับ bus-based system ซึ่งขนาด( 16-32 processor) แม วาใน 64 bit bus จะเพียงพอกับ4 processor แตในขนาดทีใ่ หญกวาก็จะครอบคลุมมาก กวา เชน higher bandwidth bus สําหรับผูใชซึ่งไดซื้อระบบขนาดใหญก็จะได highperformance bus SPARCCenter 2000 มีการออกแบบ address โดยการใช bus multiple กับ narrower buses ในระบบทีม่ ขี นาดเล็กใชเฉพาะ bus 1 bus ก็พอ แตในระบบขนาด ใหญตองใช bus 2 ิbus การแทรกหนวยความจําจะมีการสงไปพรอมกันทง 2 bus ขนาดที่มีการสรางใหใชไดตามขอบเขต คือการสราง software application ซึ่ง สามารถทีจ่ ะดึงขอมูลไดพรอมกันและสามารถทีจ่ ะใชรว มกันได การรูข นาดทีแ่ ทจริง ของ application ในอนาคตการ complier จะมีการพัฒนาขึ้นและมีเครื่องมือที่ วิเคราะหปญหาได สิง่ ทีถ่ กู มองขามคือ Not developing the software to take advantage of, or optimize for ,a multiprocessor architecture
เปนเวลานานมากทีม่ กี ารใช software หลังจากนัน้ ก็เปน parallel machines เพราะ software ถามีขอผิดพลาดก็จะแกไขยากมาก เชน bus-based multiprocessor แสดงใหเห็น ถึงความแตกตางของการพัฒนา software สําหรับ multiprocessor ทีใ่ หมๆซึง่ จะให ประโยชนมากกับผูอ อกแบบและมีอปุ กรณทเ่ี ปน software ทีใ่ ชกบั multiprocesor SUN SPARCCenter เปน bus-based machine ทีเ่ ปน bus 1 or 2 bus หนวยความจําจะ กระจายไปทัว่ board ซึ่ง procesor จะสามารถที่จะสราง block ทีต่ รงกันกับ processor, cache and memory ในโครงสรางของ multiprocessor เหมือนกับการเขาถึงขอมูลในทีท่ ่ี เปนทีข่ องตนเองสามารถทีจ่ ะเขาถึงไดรวดเร็วและยังสามารถใชประโยชนจาก bus เขา ถึงหนวยความจํา ระบบการจัดการ SUN อยางไรก็ตามไมสามารถทีจ่ ะใชรว มกับ NUMA (non-uniform memory access) รวมถึงผลทีเ่ กิดขึน้ จากการควบคุมทีซ่ ง่ึ memory ขอเนือ้ ทีไ่ ว ถา memory มีการขอเนือ้ ทีแ่ บบสุม เมือ่ มีการทํางานทีส่ มบูรณกจ็ ะเหมือนกับ application ปกติทไ่ี ดความแตกตางของประสิทธิภาพ และยังไดประโยชนในการใชงาน อีกดวย จากตัวอยางแสดงใหเห็นถึงปญหาซึง่ สามารถทีจ่ ะเกิดขึน้ เมือ่ software ทีอ่ อกแบบมา สําหรับ uniprocessor ติดตอกับ multiprocessor ใน SGI ทีเ่ ปนระบบการจัดการทีป่ อ งกัน โครงสรางของขอมูลกับ single lock ใน uniprocessor ทีเ่ กิดปญหากับประสิทธิภาพ ใน multiprocessor มันสามารถทีจ่ ะกลายเปนประสิทธิภาพหลักสําหรับบางโปรแกรม การ พิจารณาโปรแกรมซึง่ ใชประโยชนกบั page ซึง่ เริม่ ตนที่ start-up กับ UNIX ก็ใชการขอ เนือ้ ทีเ่ หมือนกัน สมสุตวิ า โปรแกรมเปน parallel ซึ่ง multiprocessor ก็มกี ารขอเนือ้ ทีข่ อง page เพราะวา page ตองการการใชประโยชนจาก page table ซึง่ ปองกันการใช ประโยชนและ OS จะยอมให multiprocessor ติดตอกับ OS จะเรียงลําดับการประมวล ผลทัง้ หมดและขอเนือ้ ทีข่ อง page สิง่ ทีถ่ กู ทองขามคือ Neglecting data distribution in a distributed shared-memory machine การพิจารณา Ocean มีเครือ่ งหมายทีบ่ อกการทํางานใน 32-processor DSM ทีร่ ปู 8.26 แสดงอัตราการผิดพลาด 3.1% เพราะวาทางทีใ่ ชประโยชนมกี ารคํานาณการขอเนือ้ ทีแ่ ละ 2.5% เปนการเขาถึง local capacity misses และ 0.6% เปนการ communication miss ที่
ตองการการเขาถึงขอมูลทีม่ พี นั ธะทีละทาง ใน 30-cycle local mwmory access cost และ 100-cycle remote memory access cost การเฉลีย่ ของการ miss ที่ 43.5 cycle ถาทางทีใ่ ชในการขอเนือ้ ทีม่ กี ารตองการโดย round-robin allocation ของแตละ page คาดวา 1/32 จะมีขอผิดพลาดและอัตราการผิดพลาด 3.1% * 1-32 = 0.1% และการผิด พลาดภายนอก cache เปน 1.5 และ 45% ทีใ่ ชการอางคําสั่ง การขอเนือ้ ทีจ่ ะได 1.5 + 45% * 3.1% * 96.8 1.5+1.35 2.85 --------------------------------- = ----------- = ------ = 1.35 times faster 1.5 + 45% * 3.1% * 43.5 1.5+0.61 2.11 หลักทีผ่ ดิ คือ Linear speedup are needed to make multiprocessor cost-effective จะมีความครอบคลุมซึง่ ประโยชนทไ่ี ดรบั หลักๆของ parallel computing จะเรียกวา "shoter time to solution" ซึง่ เร็วกวา uniprocessor โดยทัว่ ไปอยางไรก็ตามเหมือนกับการ มอง parallel processor ไมสามารถทีจ่ ะ cost-effective ที่ uniprocessor ไดและไม สามารถทีจ่ ะมี speedup ทีส่ มบูรณได เหตุผลที่เปนเพราะวาราคาของ machine ที่ใช processor นอยกวา linear speedup หมายถึง performance/cost ทีล่ ดลง ทําให parallel processor มี cost-effective ทีน่ อ ยกวาประโยชนจาก uniprocessor ปญหาทีเ่ กิดขึน้ คือราคาทีไ่ มเฉพาะรูปแบบของ processor ทีน่ บั แตยงั มีการใชงานของ memory อีกดวย ผลทีท่ ําให memory ในระบบมีราคาเปนจุดชี้ โดย Wood and Hill ในป 1995 และสามารถทีจ่ ะใชประโยชนจากการแสดงผลเมือ่ สมบูรณได การเปรียบเทียบ ของ uniprocessor sever กับการแขงขันใช DM กับ multiprocesor ที่ใช XL ในสวน rackmounted multiprocessor สามารถที่จะพิจารณาไดในรูป 8.8 สมมุติวาการคํานวณของพวกเรารองขอพืน้ ที่ 1 gb ในหนวยความจําบน เครือ่ งทัง้ สอง แลวคาของ DM เปน $ 138400 ขณะที่คาของ Challenge XL เปน $ 181600 + $ 20000 * p สําหรับคาของตัวเลขทีต่ า งกันของโปรเซสเซอร เราสามารถ คํานวณวาคาอะไรเปนความเร็วที่เพิ่มขึ้น ที่จําเปนในการใช parallel processing บน XL ไดคาประสิทธิภาพกวาคาของ processor ตัวเดียว สําหรับตัวอยาง คาของ processing 8 บิต XL เปน $ 341600 ซึ่งประมาณ 2.5 เทา สูงกวา DM ดังนัน้ ถาเรามีความเร็วทีส่ งู ขึน้
บนprocessor 8 บิต ทีม่ ากกวา 2.5 เทา multiprocessor จะมีประสิทธิภาพมากกวา processor ตัวเดียว ถาเราสามารถไดรับความเร็วที่เพิ่มขึ้น ระบบ XL processor 8 บิต จะได รับมากกวา 3 เทาของประสิทธิภาพ สวนตางๆ นีจ้ ะดีกบั processor สวนมาก บน processor 16 บิต เราไดรบั ความเร็วทีเ่ พิม่ ขึน้ เพียง 3.6 หรือนอยกวา 25% ของประสิทธิ ภาพ การทํา Multiprocessor มีคาประสิทธิภาพเทากับ โปรเซสเซอรตวั เดียว การใช multiprocessor อาจกอใหเกิดการเพิม่ ของหนวยความจํา แมวาตัว เลขนีอ้ าจดูเล็กนอยสําหรับ shared-memory architecture เครือ่ ง processor 8 บิต ตองการ ไดรบั ความเร็วทีเ่ พิม่ ขึน้ 3.2 เทาเพือ่ ไปยัง เบรค และ เครือ่ ง processor 16 บิต ตองการได รับความเร็วทีเ่ พิม่ ขึน้ 4.3 เทาเพือ่ ไปยังเบรค XL สามารถทีจ่ ะเปนคาผลลัพธทแ่ี ทจริง เมื่อเทียบยอนกลับ headless workstation สําหรับตัวอยางคาของฟงกชน่ั สําหรับ Challenge S ซึง่ สามรถมี 256 mb ของหนวยความจํา Cost ( l,m) = $ 16600 + $ 100 * m สําหรับปญหาทีพ่ น้ื ทีท่ เ่ี หมาะสมมีเพียงเล็กนอยใน 256 MB ของ หนวยความจําบนเครือ่ งทัง้ สอง XL เบรคคู กับความเร็วทีเ่ พิม่ ขึน้ ของ 6.3 บน processor 8 บิต และ 10.1 เทาบน processor 16 บิต ในการเปรียบเทียบ ราคา และ ประสิทธิภาพของเครือ่ งคอมพิวเตอรทง้ั สอง คุณอาจจะทําใหแนนใจ โดยการเพิม่ การกําหนดความแมนยําของระบบคาผลราม ทัง้ หมด และ ประสิทธิภาพทีเ่ ปนความสําเร็จ สําหรับ application มากมาย กับ ความตองการพืน้ ทีห่ นวยความจําทีใ่ หญ ดังนั้นการเปรียบเทียบความสามารถทําไดอยางรวดเร็วโดยการเพิม่ ความสวยงามของ การใช multiprocessor Concluding Remarks ความฝนของการสรางคอมพิวเตอร โดยการรวมโปรเซสเซอรอยางงายๆ มีมาตั้ง แตเริม่ มีคอมพิวเตอร อยางไรก็ตามความคืบหนาในการสราง และการใชอยางไดผล และ ประสิทธิภาพของ parallel processor เปนไปอยางชาๆ อัตราความคืบหนาไดถกู จํากัด ขอบเขตโดยปญหาความยากของ software อยางไรก็ดกี ารประมวลผลอันยาวนานของ สถาปตยกรรมทีเ่ จริญขึน้ ของ multiprocessor ทีส่ ง เสริมความสามารถในการใช และ แก
ไขประสิทธิภาพ พวกเรามีการพูดคุยมากมายเกีย่ วกับ software challenge ในบทเรียนนี้ รวมทัง้ ความยากของการเขียนโปรแกรม ซึง่ ไดความเร็วทีเ่ พิม่ ขึน้ ตามกําหนดเวลาขอ งกฏ Amdahl ความคืบหนาใน 10 ปทผ่ี า นมา ผลลัพธบางอยางเปนการมองไปในทางที่ ดีเกีย่ วกับอนาคตของ parallel processing และ multiprocessor การมองในแงดเี ปนพืน้ ฐานบนตัวเลขของการปฏิบตั เิ กีย่ วกับความคืบหนา และtechnology ทีย่ าวนาน 1. การใช parallel processing ในบางขอบเขตเริม่ ตนจากความเขาใจทีน่ า เชื่อถือเปนอยางแรก นีเ้ ปนขอบเขตของ วิทยาศาสตร และ วิศวกรรม คอมพิวเตอร ขอบเขต application นี้ มีขอบเขตความกระหายสําหรับการคํานวณ สวนมาก มันยังคงมี application มากมาย ซึง่ มี parallelism ธรรมชาติมาก ความสําคัญอื่น พืน้ ที่ application เปนฐานขอมูลตารางทีใ่ หญ และระบบ การประมวลผลการจัดการ ขอบเขต application นี้ ยังคงมี parallel processing ของการขอรองอิสระ แตมันตองการคํานวณทีใ่ หญ เหมือน กับการไมเห็นดวยทีไ่ ปยังการเขาสูร ะบบ เก็บตารางขนาดใหญ ซึง่ มี ความเขาใจกันนอยมาก 2. วิธีหนึง่ ของอีกหลายทางในการสราง computer ซึง่ มีประสิทธิภาพที่ ไดรบั จาก microprocessor ตัวเดียว โดยการสราง multiprocessor ซึ่ง อํานาจเครื่องหมายราคาและประสิทธิภาพ ของผลลัพธสวนใหญของ multipocessor 3. Multiprocessor เปนประโยชนสงู สุด สําหรับmultiprogramened workload ซึง่ เปนใหขอบเขตในการใชของ mainframes และบริการ ทีใ่ หญ รวมทั้งขอมูลบริการ ซึง่ เลือกสรรจัดชนิดของ multiprogrammed workload ในอนาคต workload อาจจะประกอบ กันเปนสวนทีใ่ หญทเ่ี ปนทีต่ อ งการของตลาด สําหรับเครือ่ งพีซปี ระ สิทธิภาพสูง เมือ่ workload ตองการไปยังหนทางทีก่ าหนดไว ํ เหมือนกวาทีเ่ ก็บ file หรือ สามารถแบงเวลาในหนทางหนึง่ ๆ ใน
อนาคต OS software ที่ตอ งการการกระทําทีม่ ปี ระสิทธิภาพ multiprogrammed workload เมือ่ จะเขามามีบทบาท ขณะทีม่ ผี ลลัพธไปในทางทีด่ ี เกี่ยวกับการเติบโตทีส่ าคั ํ ญของ multiprocessor พืน้ ทีม่ ากมายของ palallel architecture ทีเ่ หลือก็ไม ชัดเจน
อนาคตของสถาปตยกรรม MPP Small-scale multiprocessor สรางโดยใช snooping-bus schemes เปนคาผลทีไ่ ดสดุ ทาย เมือ่ เร็วๆ นี้ microprocessor ประกอบดวย logic มากมาย multiprocessor การใช DMS technology มันเปนความเปนไปได to configure เชน ปุม processor 2-3 ตัว ในโครงสรางติดตอกัน ดวยจํานวนเล็กๆ ของ additional hardware มันเปนเวลาทีไ่ มสมควรทํานาย ดังนัน้ สถาปตยกรรมจะสวนสําคัญบริเวณ สวนกลางของ processor ทีใ่ ชนบั (16-64) แตมนั ปรากฏทีเ่ วลานีซ้ ง่ึ ใกลเขามานีเ้ ปนสิง่ ทีด่ งึ ดูดใจ อะไรเปนความไมชดั เจนในปจจุบนั ทีเ่ ครือ่ งทีใ่ หญทส่ี ดุ จะมีรปู ทรงอยางไร ความยากทีผ่ อู อกแบบประกอบดวย การเทียบเคียงตลาดเล็กๆ สําหรับ เครือ่ งขนาดใหญ และความตองการสําหรับเครือ่ ง ซึ่งขนาดของ processor count ที่ ใหญจะเปนคาผลทีไ่ ดรบั ที่ lower processor count ซึง่ เครือ่ งสวนมากจะถูกขาย ใน ปจจุบันเกิด 4 ทาง เลือกทีแ่ ตกตางกัน สําหรับเครือ่ งทีม่ ขี นาดใหญ คือ 1. เครือ่ งทีม่ ขี นาดใหญ ซึง่ เปนขนาดทีเ่ กิดขึน้ อยางงายๆ การใชการติดตอซึง่ กันและกัน และเทคโนโลยีทค่ี วบคุมการติดตอ นีเ้ ปนสิง่ ทีพ่ ฒ ั นาจนคลายเครือ่ ง Intel paragon การใชขอความสงผานสิ่งที่ใกลเขามา และ Cray T3D การใชหนวยความจําแบง สวนทีอ่ ยูน อก cache ทีต่ ดิ ตอกันมี 2 สิ่ง ทีส่ าคั ํ ญทีใ่ ชในการออกแบบ 1. เครือ่ งไมไดผลประโยชนอยางเต็มที่ ที่ตารางเล็กๆ นี้ซึ่งคาของ scalability ไมมีคา 2. เครื่องเหลานีร้ ปู แบบโปรแกรม ซึง่ ไปดวยกันไมไดในระดับทีต่ า ง กัน
2. เครื่องทีม่ ขี นาดใหญทม่ี รี ปู ทรงจากเครือ่ งในกลุม กลางดวยการรวมกันและพืน้ ฐานเทคโนโลยี การติดตอของเครือ่ ง กลุม ทีใ่ กลเขามานีจ้ ะใชคา ของประสิทธิภาพ ตลอดจนใชคา optimize โดยการสราง block ผลเสียของการพยายามทีจ่ ะสรางเครือ่ ง extend นี้คือ การออกแบบผูซ อ้ื และการ ติดตอซึง่ กันและกันเปนทีต่ อ งการ ทางเลือกรูปแบบ program สามารถเปรียบจากการ แบงหนวยความจํา ไปยังการสงผานขอมูล หรือไปยังการเปลีย่ นแปลงทีต่ า งกัน บน การแบงพืน้ ทีใ่ นหนวยความจํา เหมือนกับ share memory ซึง่ อาจจะเปนผลรวมทีม่ อง ไมเห็น ขอเสียของการออกเสียปดความสามารถในรูปแบบ program ขอดี คือ เครือ่ งทีม่ ี ขนาดใหญสามารถใช off-the-shelf technology ไดมาก ประกอบดวยพืน้ ฐาน network ตัวอยางอืน่ ๆ ของเครือ่ งประเภทนีเ้ ปน SGI Challenge array ซึง่ เปนการสรางจาก SGI Challenge machine และใชพื้นฐานสําหรับ HPPI สําหรับติดตอซึง่ กันและกัน สรุปวา ในเครือ่ งในรุน นีด้ งึ ดูดใหทดลอง 3. การออกแบบเครือ่ งซึง่ ใช off-the-shelf uniprocessor node และการติดตอซึง่ กันและกันของลูกคา ประโยชนของเครือ่ งนี้ คือคาของผลที่ไดรับของ uniprocessor node มาตรฐาน ซึง่ ใหบรรลุลง work station ขอเสีย คือ รูปแบบ program จะมีความนา เชื่อถือในการสงผานขอความนอยมาก IBM SP-2 เปนตัวอยางทีด่ ที ส่ี ดุ ในปจจุบนั นี้ 4. การออกแบบเครือ่ งโดยใช สวนประกอบ off-the-shelf ทัง้ หมด ซึ่งราคาตํา่ การลําลางคําโกหกในเรือ่ งการใชเทคโนโลยี ที่ซ้ือขายกันทุกที เครือ่ งประเภทนีจ้ ะใช การสงผานขอมูล และติดตอกันเมือ่ มี higher latency และ lower bandwidth กวาในการ ออกแบบทางเลือกทุกวันนีเ้ ครือ่ งทีส่ รางเหมือนกับ workstation cluster หรือ NOWS (network of workstations) หรือ COWS(clusters of workstation) คือ VAX cluster
อนาคตของสถาปตยกรรม microprocessor สถาปนิกใช techniques ที่ยุงยากทีพ่ ยายามใชประโยชนจาก instructionlevel parallelism มากมาย เหมือนทีเ่ ราเห็นใชในบทเรียน โอกาสสําหรับทีจ่ ะพบการเพิม่ จํานวนของ instruction-level parallelism ในแบบๆหนึง่ ซึง่ เปนผลประโยชนทถ่ี กู จํากัด ไว เชนเดียวกันกับทีม่ คี วามยากของปญหาทีเ่ พิม่ ขึน้ ในการสรางลําดับชัน้ หนวยความจํา
สําหรับสําหรับโปรเซสเซอรทม่ี ปี ระสิทธิภาพสูงแนนอนวา technology ทีด่ ขี น้ึ อยางตอ เนือ่ งจะสามารถทําใหเราพัฒนาสัญญาณนาฬิกาอยางตอเนือ่ ง แตการใช technology ทีด่ ี ขึ้นซึ่งเพิ่มความเร็ว gate เพียงอยางเดียว ไมเพียงพอกับโรงงานทีม่ ปี ระสบการณในการ เพิ่มประสิทธิภาพใน 10 ปทผ่ี า นมา ความรวดเร็วของประสิทธิภาพจะขึน้ อยูก บั การเพิม่ พื้นที่ในพื้นที่ silicon ซึ่งจะเติบโตรวดเร็วอยางตอเนือ่ งกวา ความเร็วตามปกติของ process technology โชครายสําหรับ 5 ปทแ่ี ลวในการเพิม่ ประสิทธิภาพทีล่ ม เหลวในการใช พื้นที่ของ silicon , External conection และ power การเติบโตของประสิทธิภาพเพิม่ ขึน้ ในกลางป 1990 แต พวกเราไมสามารถสนับสนุนประสิทธิภาพทีร่ วดเร็วใหดขี น้ึ นอก addressing ที่เกีย่ วของ ที่เปลีย่ นแปลงใหมใน สถาปตยกรรมคอมพิวเตอร ยิ่งกวานั้น พวกเราไมตอ งการออกนอกกฏความเปนไปไดของความเจริญ กาวหนาทางวิทยาศาสตรในการออกแบบ uniprocessor ในป 1980 ผูค นมากมายทํานาย จุดสิน้ สุดของความเจริญกาวหนาในประสิทธิภาพของ uniprocessor เพียงแคเห็น technology RISC และ การเจริญกาวหนาของประสิทธิภาพทีไ่ มเปนอิสระเฉลีย่ 1.6 เทา ตอป Evolution versus revolution and challenges to paradigm shift in the computer industry แนวคิด RISC อยูใ กลกบั สวนกลางของ spectrum บริษทั สวนมากทีม่ ี RISC ถูกปดภายใน 10 ปทผ่ี า นมา multiprocessor สวนมากมีการดูแล revolution จุด สิน้ สุดของspectrum กัเครือ่ งทีม่ ขี นาดใหญทส่ี ดุ (MPPS) ทีเ่ ปน revolution มากกวาอยาง อื่น โปรแกรมสวนมากทีใ่ ช multiprocessor เหมือนกับเปรียบเครือ่ งจักรทีโ่ ดนเขียน โดย เฉพาะสําหรับกับเครือ่ งรุน นัน้ ถาไมสาหรั ํ บชนิดสถาปตยกรรม ขอรองถามสําหรับผูอ อกแบบ hardware และ software ทีจ่ ะเสนอ multiprocessor และ parallel processing ซึง่ กลายแบบอยางนอยกวาขอยกเวนเปนความ กระจัดกระจายไปยังฐานทีม่ น่ั คงของโปรแกรมมีความเปนไปได 2 ทาง ตัวอยางนี้ สามารถทําใหงายขึ้น ถาparallel processing ใหทางเลือกในการเพิม่ ประสิทธิภาพเทานัน้
และถาความกาวหนาทางเทคโนโลยี hardware และ software สามารถลดทางลาดใหนอ ย ลงซึง่ สามารถเคลือ่ นทีไ่ ปยัง parallel processing เพือ่ ไมใหตวั เลขทีเ่ ล็กของ processor เปน evolutionary มากกวานี้
ประวัติและสิ่งที่เกี่ยวของ มีจํานวนของเรือ่ งราวมากมายใน parallel processing ในสวนนีเ้ ราแบง ออกเปน 2 กรณีคอื time period และสถาปตยกรรม พวกเราจะเริม่ ดวย SIMD approach และ Illiac IV แลวพวกเราจะกลับมาพูดคุยสัน้ ๆ เกีย่ วกับเครือ่ งในยุคแรก ๆ และจะพูด คุยเกีย่ วกับบางอยางของ great debates ใน parallel processing หลังจากนัน้ พวกเราจะพูด คุยถึงเครือ่ งในยุคปจจุบนั และพูดคุยเกีย่ วกับความกาวหนาทีเ่ กิดขึน้ เปนเรือ่ งสุดทาย
ความเจริญและความตกตํ่าของเครื่อง SIMD รูปแบบ SIMD เปนหนึง่ ในรูปแบบเริม่ แรกของ parallel processing ถา นับถอยหลังไป SIMD จะเปน multiprocessor ขนาดใหญรุนแรก Illiac IV เปนแนวคิด หลักในเครือ่ ง SIMD เหมือนกับเครือ่ ง SIMD รุน ใหมทม่ี คี าสั ํ ง่ เดียวซึง่ ปฏิบตั กิ ารเปน data item มากมายและใช function unit มากมาย ในความคิดเริม่ แรกของคอมพิวเตอรแบบ SIMD เปนของ Unger [1958] และ Slotnick,Borck, และ Mcreynolds [1962] Slotnick’s Solomon ออกแบบพื้นฐาน ของ Illiac IV บางทีการเสียชือ่ เสียงสวนมากเปนผลงานของ super computer ขณะที่ ความสําเร็จไดผลักดันเทคโนโลยีซง่ึ พิสจู นวา ใชไดในผลงานชิน้ ลาสุด ราคาทีถ่ กู ยกให สูงขึ้นจาก $ 8 ลานในป 1966 จนถึง $ 31 ลาน ในป 1972 แมวาจะสรางใน quarter ของ การวางแผนเครือ่ งนีเ้ ทานัน้ ประสิทธิภาพทีด่ ที ส่ี ดุ 15 MFLOPS เทียบกับ 1000 MFLOPS เครือ่ งคอมพิวเตอรใชเวลามากกวา 3 ป กอนทีม่ นั จะมีประโยชน เหตุการณ นีเ้ กิดขึน้ อยางชา ๆ ดวยการตรวจสอบของ SIMD กับ Danny Hillis [1985] นํารูปแบบ นีก้ ลับมาใชในเครือ่ ง connection ซึง่ มี 65636 1-bit processor เครือ่ ง SIMD เกิดจากการผสมคําสั่ง SISD และคําสั่ง SIMD มี SISD host computer ปฏิบตั กิ ารเหมือนกับ branches และ address ซึง่ เมือ่ ตองการระบบปฏิบตั ิ การทีค่ ลายคลึงกัน คําสั่ง SIMD ถูกแพรไปทัว่ execution unit แตละ execution unit มี
SIMD และsetมันไวท่ี register สําหรับการเปลีย่ นแปลงเฉพาะตัว execution unit สามารถทีจ่ ะไมกระทําคําสั่งระหวาง SIMD เครือ่ ง SIMD ขนาดใหญมนั จะติดตอซึง่ กัน และกันหรือการติดตอ network ไปยังการเปลีย่ นขอมูล processing element SIMD ทํางานไดดีที่สุดใน dealing กับ array ใน for loop Hence มีความ เหมาะสมสําหรับ massive parallelism ใน SIMD SIMD มีผลเสียทีส่ ดุ ใน case statement สถานทีซ่ ง่ึ แตละ execution unit อาจจะกระทําการปฏิบตั กิ ารทีแ่ ตกตางบนขอ มูลของมันขึน้ อยูก บั ขอมูลทีม่ นั มี execution unit กับขอมูลทีผ่ ดิ พลาดไมสามารถทํางาน ได ดังนัน้ ขอมูลทีถ่ กู ตองเทานัน้ จึงจะทํางานตอได สวนสําคัญวิง่ ที่ 1 / nth performance ซึ่ง n เปนจํานวนของ case พื้นฐาน trade-off ในเครือ่ ง SIMD เปนความสามารถของ processor เทียบกับจํานวนของ processor เครือ่ งทีอ่ อกมาเนนหนักระดับของ parallelism ทีใ่ หญ เหนือประสิทธิภาพเฉพาะตัวของ processor สําหรับตัวอยางให 65536 single bit-wide processor ขณะที่ Illiac IV มี 64 bit processor หลังจากทีเ่ ริม่ นํากลับมาใชใหมในป 1980 ในชวงแรกโดย เครือ่ ง Thinking แลวก็ Mar Par รูปแบบ SIMD มีการวางเหมือนกับการวางสถาปตยกรรม multiprocessor สําหรับเหตุผล 2 ขอ ขอแรก มันไมยืดหยุนมาก จํานวนความสําคัญของปญหาไมสามารถใชตาม แบบของเครือ่ งได และ สถาปตยกรรมไมไดมกี ารลดขนาดลงในแบบการแขงขัน นั้น เปนเครือ่ ง SIMD ขนาดเล็ก ซึ่งมีราคา และ ประสิทธิภาพไมดี เมือ่ เทียบสิง่ นัน้ ของทาง เลือก ขอสอง SIMD ไมสามารถใชประโยชนของประสิทธิภาพทีม่ อี ยูม ากมาย และ คาประโยชนของ technology microprocessor แทนทีข่ อง leveraging ทีเ่ ปน technology ขั้นตํา่ ผูอ อกแบบเครือ่ ง SIMD อาจจะสราง custom processor สําหรับเครือ่ งของพวกเขา แมวาคอมพิวเตอร SIMD จะแยกจากรูปแบบเหมือนกับทางเลือกทัว่ ไป รูปแบบของสถาปตยกรรมนีจ้ ะถูกออกแบบออกมาอยางตอเนือ่ ง ผลประโยชนพเิ ศษมาก มายเปนขอมูล parallel และ การรองขอขอบเขตของการ set function unit ผูอ อกแบบ สามารถสรางใน support สําหรับสวนกลางของระบบปฏิบตั กิ าร
องคกรใหเรียกวา array processor และใชสาหรั ํ บงาน image และ signal processor
การทดลองอื่นเริ่มแรก มันเปนการยากทีจ่ ะแบง multiprocessor ตัวแรก ความประหลาดใจเมื่อ คอมพิวเตอรตวั แรก จากบริษทั Eckert-Mauchly สําหรับตัวอยาง มีรปู แบบจําลองที่ สามารถจะแกไขใหงายขึ้น Holland [1969] ไดเก็บขอพิสจู นของ multiprocessor เอกสารทีส่ าคั ํ ญของ multiprocessor 2 ชิน้ อยูใ นป 1970 ทีม่ หาวิทยาลัย Carnegic Mellon เอกสารสิง่ แรกเปนของ C.mmp [Wulf and harbison 1978] ซึง้ เปน สวนประกอบ 16 PDP-11s ติดตอโดย crossbar switch ไปยัง 16 memory unit ซึง่ เปน multiprocessor ตัวแรก ซึง่ ประกอบดวย processor มากกวา 2 ตัว และมีรปู แบบ โปรแกรมในการแบงหนวยความจํา จุดสําคัญที่จะมองหาใน C.mmp บน software โดย เฉพาะในพื้นที่ os เครือ่ งลาสุด Cm[swan et al 1977] คือ cluster base multiprocessor กับ การกระจายหนวยความจํา และ nonuniform เวลาเขาสูขอมูลการขาดไปของ cache และ การเขาสูขอมูลที่อยูหางไกลทําใหขอ มูลทีย่ า ยไปฉุกเฉิน เครือ่ งนี้ และ จํานวนการ ทดลองของ application ถูกกลาววาเปนลักษณะทีด่ โี ดย Gehringer , Siewiorek และ serall [1987] แนวคิดมากมายในเครือ่ งเหลานีถ้ กู นํากลับมาใชในป 1980 เมือ่ microprocessor ทําการสราง multiprocessor ถูกมาก
ขอโตแยงทีด่ ที ส่ี ดุ ใน parallel processing ในบทเรียนนี้จะใหเหตุผลที่ดีสาหรั ํ บการละทิง้ รูปแบบของการคํานวณ ในปจจุบนั และ Amdahl [1967] ไดใหเหตุผลในการสนับสนุนของความตอเนือ่ งบน สถาปตยกรรม IBM 370 เหตุผลสําหรับประโยชนของการทํา parallel สามารถทําใหเดิน ไปยังศตวรรษที่ 19 ความไดผลของ multiprocessor สําหรับการลดขนาดภายในเฉพาะ ตัวโปรแกรมทีส่ าคั ํ ญ ยังคงเปนสิง่ ทีย่ งั ตองสํารวจอยู
สราง parallel processor ที่มีประสิทธิภาพสูงไดอยางไร
หนึ่งในขอโตเถียงทีย่ าวนานทีส่ ดุ ใน parallel processing วาทําอยางไรจึง จะสราง multiprocessor ทีเ่ ร็วทีส่ ดุ โดยใช processor ตัวเล็กๆ มากมาย หรือ จํานวน processor ทีเ่ ร็วทีส่ ดุ ในจํานวนนอยทีส่ ดุ รูป 8.46 แสดงใหเห็นถึง statement ของโรงงาน ในป 1990 จํานวนของ processor เทียบกับประสิทธิภาพเฉพาะตั;ของ processor รูป 8.46 จะนําเราไปยัง E1 Dorado-multiprocessor ประสิทธิภาพสูง ใน 2-3 ปทผ่ี า นมา ขอโตแยงเหลานีก้ ล็ ดลง เครือ่ ง microprocessor พืน้ ฐาน เปน พื้นฐาน สําหรับเครือ่ งทีม่ ปี ระสิทธิภาพสูง บางทีการเปลีย่ นแปลงครัง้ ใหญทส่ี ดุ เปนการดูวา เครือ่ งทีส่ รางจาก microprocessor 100 processor หรือบางทีอาจจะเปน 2-3 พัน processor แตไมถงึ 10000 ซึง่ เปนสิง่ คาดเดาไวเริม่ แรก ใน 5 ปทผ่ี า นมา ทางออกไดปรากฏออกมาเหมือนกับคําแนะนํามากมาย มันไมเพียงพอตอจํานวนของ microprocessor ทีม่ ปี ระสิทธิภาพสูง มันเปนคําตอบทีไ่ ด ในความสามารถไปยังโปรแกรม เครือ่ ง parallel อยางไรก็ดปี ระสิทธิภาพเครือ่ ง และ ความกาวหนาในสถาปตยกรรม parallel ก็ยงั ดําเนินตอไป
ผลประโยชน และการพัฒนาที่มากขึ้น ขอยกเวนของ parallel vector machines computer MIMD อืน่ ๆ ทัง้ หมดที่ มีการสรางจาก off-the-shelf microprocessor ใช บัส และ logically หนวยความจําสวน กลาง หรือ network การติดตอซึง่ กัน และ กัน และ การกระจายหนวยความจํา จํานวน ของเครือ่ งทอลองทีส่ รางในป 1980 อนาคตที่จะแกไข และ สงเสริมรูปแบบพืน้ ฐานมีอยู มากมายใน multiprocessor ทุกวันนี้
การพัฒนาของเครื่อง bus-bases Coherent ถึงแมวา mainfram เครือ่ งทีใ่ หญมากจะสรางดวย multiple processor ใน ป 1970 multiprocessor ไมไดเปนความสําเร็จขัน้ สูงจนกระทัง่ ในป 1980 Bell [1985] แนะนําวิธีที่จะใช microprocessor ขนาดเล็ก ซึง่ อนุญาตใหหนวยความจํา บัส ผานไปยัง interconnection network hardware สิ่งนัน้ เปนระบบปฏิบตั กิ ารซึง่ ดูแลการทํางานของ multiprocessor ไมใหตอ งรอนาน นัน้ เปนสิง่ ประดิษฐของระบบปฏิบตั กิ ารใหม ในหนา
นี้ Bell กําหนด terms multipleprocessor และ multicomputer และ set stage สําหรับ 2 ความแตกตางทีใ่ กลเขามาถึงในการสรางเครือ่ งขนาดใหญ เริม่ แรก bus-base multiprocessor กับ snooping cache เปน Synapse N+1 วางรูปรางโดย Frank [1984] Goodman [1983] เขียนในหนาแรกของการพูดถึงรูปราง snooping cache ในทายป 1980 มีคาแนะนํ ํ าสถาปตยกรรม bus-based snooping-cache ในการคาขายมากมาย การเพิม่ silicon Graphics 4 D/240 [ Basktt et al 1988 ] the Encore Multimax [Wison 1987] and sequent symmetry [ Lovett and thakkar 1988 ]กลางป 1980 ไดมีการดูการพัฒนาของ alternative coherence protocol และ Archibald และ Baer [1986] เตรียมการสํารวจทีด่ ี และวิเคราะห็ อยางไรก็ดเี ปนสิง่ ทีเ่ กีย่ วของไปยัง original paper
การดูเครื่องที่มีขนาดใหญ ในความพยายามที่จะสราง multiprocessor ขนาดใหญ 2 คําสัง่ ทีแ่ ตกตาง ที่ใชตรวจขอความที่ผาน multicomputer และ scalable share-memory multiprocessor ถึง แมัวาจะมีความพยายามที่จะสราง mesh และ hypercube-connected multiprocessor หนึง่ ของเครือ่ งรุน แรกทีป่ ระสบความสําเร็จการนําชิน้ สวนทัง้ หมดมารวมกัน เปน Cosmic Cube สรางที่ Caltech [Seitz 1985] มันเปนความรูเ บือ้ งตนทีส่ าคั ํ ญใน routing และ interconnect technology และเนือ้ หาสรุปคาของ interconnect ซึง่ ชวยทําให multicomputer สามารถอยูต อ ไปได Intel ipsc 860 a hypercube-conect collection ของ i860s เปนพื้นฐานของแนวคิดนี้ เครือ่ งทีอ่ อกมาสวนใหญจะเหมือนกับ Intel paragan คือ ใช network กับ lower dimensionality และ higher individual link the paragon ยังคงใช เวลาในการแยก i860 ทีเ่ หมือนกับ communication controller ในแตละ node เครือ่ ง Thinking CM-5 ใชของ off-the-shelf microprocessor มันเตรียมระดับของผูใ ชใหเขาสู ชองทางการติดตอ ในป 1995 เครือ่ งทัง้ 2 นี้ ไดเปนตัวอยางของ multicomputer ที่สงผาน ขอความได ความพยายามเริม่ แรกในการสราง Scalable shared-memory multiprocessor ประกอบดวย IBM RP 3 [P fister et al 1985 ] the NYU ultracomputer [Schwartz 1980 : elder st al 1985 ] ผลงานของมหาวิทยาลัย Illinois Cedar [ Gajksi et al
1983 ] และ BBN Butterfly และ Monarch [ BBn Laborataies 1986; Rattberg et al 1990] เครื่องเหลานัน้ เตรียมการเปลีย่ นแปลงไวบน nonuniform distributed memory model แต ไมชว ยทํางานใน cache coherence สถานทีซ่ ง่ึ เนือ้ หาประกอบจากโปรแกรม ผลงาน RP 3 และ Ultracomputer ทัง้ คูถ กู ตรวจสอบแนวคิดใหมใน synchronization ใน 4 เครือ่ งทัง้ หมด interconnect network จนเปนคาทีม่ ากกวา processing node ตัดปญหาสําหรับ version เล็กๆของเครือ่ ง Cray T3D สรางจากแนวคิดนี้ โดยใช noncoherent shared address space และสรางความกาวหนาใน technology ในการติดตอกัน และ กัน ซึ่ง พัฒนาในขอบเขตของ multiprocessor การแผรปู แบบการแบงหนวยความจํา กับ scalable cache cocherence จะทําโดยการรวมจํานวนตัวเลขของแนวคิด คําสั่งพื้นฐาน สําหรับ cache coherence เปนทีร่ จู กั กันดีกอ น snooping cache ในความเปนจริง cachecoherence protocol ตัวแรก ใชคาสั ํ ง่ ทีอ่ อกแบบโดย Targ [1976] และ implementation ของ cache conerence ( ตอนนีจ้ ะเรียก distributed shared memory วา DSM ) เปนการบรรยายลักษณะแรกโดย Agarwal et al 1988 และเหมือนกับพื้นฐาน สําหรับ Stanford DASH multiprocessor et al [1990,1992] the kendall Square Reseach Ksr-1 [Burkhardt et al 1992] เปนการติดตอ implementation แรก ของ scalable coherent shared memory มันแผไปยังพื้นฐาน DSM ทีใ่ กลเขามาไปยัง implement a concept ทีเ่ รียกวา COMA ( cache only memory achitecture) ซึง่ ทําใหหนวยความ จําหลักของ cache เหมือนกับลักษณะในตัวอยาง 8.13 The convex exemplar implement scalable coherent shared memory ใชสถาปตยกรรม 2 ระดับ ที่ระดับตําที ่ ส่ ดุ 8 บิต processor ทีส่ รางโดยใช crossbar เปนวงแหวนไป 32 รอบ รวมทัง้ หมดจะได 256 processor
Reference 1. Adve, S>V. and M.D. Hill[1990], “Weak ordering—A new definition,” Pro. 17th Int’I Symposium on computer Architecture (June), Seattle, 2 – 14. 2. Agarwal, A., J. L. Hennessy, R. Simoni, and M.A. Horowitz [1998]. “An evaluation of directory schemes for cache coherence,” proc. 15th Int’l Symposium on Computer Architecture (June), 280 – 289. 3. Almasi, G.S. and A. Gottlieb [1998]. Benjamin/Cummings, Redwood City, Calif.
HighlyParallel Computing,
4. Amdahl,, G. M. [1967]. “Validity of the single processor approach to achieving large scale computing capabilities,” pro. AFIPS Spring Jooing Computer Conf. 30, Atlantic City, N. J. (April), 483 – 485 5. Archibald, J. and J. – L. Baer [1986]. : Cache coherence protocols: Evaluation using a multiprocessor simulation model,” ACM Trans.on Computer Systems 4:4 (November), 273 – 298. 6. Baskett, F., T. Jermoluk, and D. Solomon [1998], :The 4D-MP graphics superworkstation: Computing + graphics = 40 MIPS + 40 MFLOPS and 10,000 lighted polygons per second,” Proc. Compcon Spring, San Francisco, 468 – 471 7. BBN Laboratories [1986]. “Butterfly parallel processor overview,” Tech. Rep. 6148, BBN Laboratories, Cambridge, Mass. 8. Bell, C. G. [1985]. “Multis: A new class of multiprocessor computers,” Science 228 (April 26), 462 – 467. 9. Bell, C. G. [1989]. “The future of high performance computers in science and engineering,” Comm. Acm 32:9 (September), 1091 – 1101.
10. Bouknight, W. J. S. A. Deneberg, D. E. McIntyre, J. M. Randall, A. H. Sameh, and D. L. Sotnick [1972]. “The Illiac IV system,” Proc. IEEE 60:4, 369 – 379. Also aooears ub D. P. Siewiorek, C. G. Bell, and A. Newell, Computer Structures: Principles and Examples, MrGrawhill, New York (1982), 306 –316. 11. Burkhardt, H. III, S. Frank, B. Knobe, and J. Rothnie [1992]. “Overview of the KSRO computer system,” Tech. Rep. KSR-TR-9202001, Kendall Square Research, Boston(February). 12. Censier, L. And P. Feautrier [1978]. “A new solution to coherence problems, in multicache systems,” IEEE Trans. On Computers C-27:12 (December), 1112 – 1118. 13. Dubois, M., C. Sheurich, and F. Briggs [1988]. “Synchronization, coherence, and event ordering,” IEEE Computer 9-21 (February). 14. Eggers, S.[1989]. Simulation Analysis of Data sharing in Shared Memory Multiprocessors, Ph. D. Thesis, Univ. of California berkeley. Computer Science Division Tech. Rep. UCB/CSD 89/501 (April). 15. Elder, J., A. Gottlieb, C. K. Kruskal, K. P. McAuliffe, L. Randolph, M. Snir, P. Teller, and J. Wilson[1985]. “Issues related to MIMD shared-memory computers: The NYU Ultracomputer approach,” Proc. 12th Int’l Symposium on computer Architecture (June), Boston, 126 – 135. 16. Flynn, M. J. [1966]. “Very high-speed computing systems,” Proc. IEEE 54:12 (December), 1901 – 1909. 17. Frank, S. J. [1984] “Tightly coupled multiprocessor systems speed memory access time,” Electronics 57:1 (January), 164 – 169.
18. Gajski, D., D. Kuck, D. Lawrie, And A. Sameh [1983]. “CEDAR—A large scale multiprocessor,” Proc. Int’l Conf. on Parallel Processing (August), 524 – 529. 19. Gehringer, E.F., D. P. Siewiorek, and Z. Segall [1987]. Parallel Processing: The Cm* Experience, Digital Press, Bedford, Mass. 20. Gharachorloo, K., D. Lenoski, J. Laudon, P. Gibbons, A. Gupta, And J. L. Hennessy [1990]. “Memory consistency and event ordering in scalable sharedmemory multiprocessors, “ Proc. 17th Int’l Symposium on Computer Architecture (June), Seattle, 15 –26. 21. Goodman, J. R. [1983]. “Using cache memory to reduce processor memory traffic,” Proc. 10th int’l Symposium on computer Architecture (June). Stockholm, Sweden, 124 – 131. 22. Hellis, W. D. [1985]. The Connection Machine, MIT Press, Cambridge, Mass. 23. Hockey, R. W. and C. R. Jesshope [1988]. Parallel Compters-2, Architectures, Programming and algorithms, Adam Hilger Ltd., Bristol, England. 24. Holland, J. H. [1959]. “A universal computer capable of executing an arbitrary number of subprograms simultaneously,” Proc. East Joint computer Conf. 16, 108 – 113. 25. Hord, R. M. [1982]. The Illiac-IV, The First Supercomputer, Computer Science Press, Rockville, Md. 26. Hwang, K. [1993]. Advanced Computer Architecture and Parallel Programming, McGraw-Hill, New York. 27. Johny L Henessy & David A Patterson [1996]. “Computer Architecture A Quantitative Approach,” Morgan Kaufmann publishers, Inc., San Francisco, California, 635 – 752.
28. Lamport, L. [1979]. “How to make a multiprocessor computer that correctly executes multiprocessor programs,” IEEE Trans. On Computer C-28:9 (September), 241 – 248. 29. Lensoki, D., J. Laudon, K. Gharachorloo. A. Gupta, and J. L. Hennessy [1990]. “The Stanford DASH multoprocessor,” Peoc. 17th Int’l Symposium on Computer Architecture (June), Seattle, 148 – 159. 30. Lovett, T. and S. Thakkar [1988]. “The Symmetry multiprocessor system,” Proc. 1988 Int’l Conf. of Parallel Processing, University Park, Penn., 303 – 310. 31. Mellor-Crummey, J. M. and M. L. Scott [1991]. “Algorithms for scalable synchronization on shared-memory multiprocessors,” ACM Trans. On Computer Systems 9:1 (February), 21 – 65. 32. Menabrea, L. F. [1842]. “Sketch of the analytical engine invented by Chales Baddage,” Bibiotheque Universelle de Geneve (October). 33. Mitchell, D. [1989]. “The Transputer: The time is now,” Computer Design (RISC supplement), 40 – 41. 34. Miya, E. N. [1985]. “Multiprocessor/distributed processing bibliography,” Computer Architecture News (ACM SIGARCH) 13:1. 27 – 29. 35. Pfister, G. F., W. C. Brantley, D. A. Geroge, S. L. Harvey, W. J. Kleinfekder, K. P. McAuliffe, E. A. Melton, V.a A. Norton, and J. Weiss [1985]. “The IBM research parallel processor prototype (RP3): Introduction and architecture,” Proc. 12th Int’l Symposium on computer Architecture (June), Boston, 764 – 771. 36. Rettberg, R. D., W. R. Crowther, P. P. Carvery, and R. S. Towlinson [1990]. “The Monarch parallel processor hardware design,” IEEE Computer 23:4 (April).
37. Rosenblum, M., S. A. Herrod, E. Witchel, and A. Gutpa [1995]. “Complete computer simulation: The SimOS approach,” to appear in IEEE Parallel and Distributed Technology 3:4 (fall). 38. Schwartz, J. T. [1980]. “Ultracomputers,” Acm Trans. On Programming Languages and Systems 4:2, 484 – 521. 39. Seitz, C. [1985]. “The Cosmic Cube,” Comm. Acm 28:1 (January), 22 – 31. 40. SlotNIck, D. L., W. C. Borck, and R. C. McReynolds [1962]. “The Solomon computer,” Proc. Fall joint computer Conf, (December), Philadelphia, 97 – 107. 41. Stones, H. [1991]. High performance computers, Addiison-Wesley, New York. 42. Swan, R. J., A. Bechtolsheim, K. W. Lai, and J. K. Ousterhout [1977]. “The implementation of the Cm* multi-microprocessor,” Proc. AFIPS National Computing Conf., 645 – 654. 43. Swan, R. J., S. H. Fuller, and D. P. Siewiorek [1977]. “Cm*--A modular, multomicroprocessor,” Proc. AFIPS National Computer Conf. 46.637 – 644. 44. Tang, C. K. [1976]. “Cache design in the tightly coupled multiprocessor system,” Proc. AFIPS National Computer Conf., New York (June), 749 – 753. 45. Unger, S. H. [1958]. “A computer oriented towards spatial problems,” Proc. Institute of Radio Engineers 46:10 (October), 1744 – 1750. 46. Wilson, A. W., Jr. [1987]. “Hierarchical cache/bus architecture for sharedmemory multiprocessors,” Proc. 14th Int’l Symposium on Computer Architecture (June), Pittsburgh, 244 – 252. 47. Wood, D. A. and M. D. Hill [1995]. “Cost-effective parallel computing,” IEEE Computer 28:2 (February).
48. Wulf, W. and C. G. Bell [1972]. “C.mmp—A multi-mini-processor,” Proc. AFIPS Fall Joint Computing Conf. 41, part 2, 765 – 777. 49. Wulf, W. and S. P. Harbison [1978]. “Reflections in a pool of processors—An experience report on C.mmp/Hydra,” Pro. AFIPS 1978 national Computing conf. 48 (June), Anaheim, Calif., 939 – 951.