Comments
Description
Transcript
レジスタ・キャッシュ・システムの省電力化手法
Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report ϨδελɾΩϟογϡɾγεςϜͷলిྗԽख๏ ࢁా ३ೋ1,a) ా ݾ1 Ԙ୩ ྄ଠ2 ޒౡ ਖ਼༟1 ࡔҪ मҰ1 ֓ཁɿڊେͳϨδελɾϑΝΠϧͷফඅిྗͱɼεʔύεΧϥɾϓϩηοαͷੑೳ্ͷ્ཁҼͱ ͳ͍ͬͯΔɽ ϨδελɾΩϟογϡΛಋೖ͢Δͱɼ໘ੵͱফඅిྗΛͷ 1 ఔ·Ͱʹ͢ݮΔ͜ͱ͕Ͱ͖Δɽ͔͠ ͠ैདྷͷϨδελɾΩϟογϡͰɼϦʔυͷిྗΛݮΒ͢͜ͱͰ͖ΔͷͷɼϥΠτͷిྗΛݮΒ͢ ͜ͱͰ͖ͳ͔ͬͨɽ ຊߘͰఏҊ͢ΔϥΠτɾεΧογϡɾόοϑΝɼ্ॻ͖͞ΕͨϨδελɾϑΝΠϧͷϥΠτΛলུ͢ Δ͜ͱͰɼϥΠτͷిྗΛ͢ݮΔɽ γϛϡϨʔγϣϯʹΑΓɼ16 ΤϯτϦͷόοϑΝʹΑͬͯɼϥΠτͷΛ 18% ʹ·ͰɼిྗΛ 21% ʹ· Ͱ͖ͰݮΔ͜ͱ͕͔ͬͨɽ 1. ͡Ίʹ ཧϨδελɾϑΝΠϧɼ࠷ۙͷεʔύεΧϥɾϓϩ Ͱ L1 σʔλɾΩϟογϡʹඖఢ͢Δ΄Ͳڊେͳճ࿏ͱ ͳ͍ͬͯΔɽڊେͳϨδελɾϑΝΠϧɼIPC ͷԼ ճ࿏ͷෳࡶ͞ͷ૿େʹՃ͑ͯɼফඅిྗɼͷ૿େͳͲͷ ηοαͷߏཁૉͷதͰ࠷ߴίετͳͷͷ 1 ͭͱ ༷ʑͳΛҾ͖͓͜͢ɽ ͳ͍ͬͯΔɽ ফඅిྗͱͷ૿େ ڊେͳϨδελɾϑΝΠϧ RAM ͷফඅిྗɼͦͷճ࿏໘ੵʹՃ͑ͯɼΞΫηεස ͜ͷཁҼͱͯ͠ɼ·ͣɼϨδελɾϑΝΠϧͷ༰ྔͷ૿ ʹൺྫ͢Δɽϩʔυ/ετΞ໋ྩ͕ L1 σʔλɾΩϟο Ճ͕͋Δɽ௨ৗɼཧϨδελɾϑΝΠϧʹ in-flight ͳ γϡʹରͯͦ͠ΕͧΕ 1 ճ͔͠ΞΫηεΛߦΘͳ͍ͷʹର ໋ྩʹԠͨ͡༰ྔ͕ඞཁͱͳΔɽΑΓଟ͘ͷ໋ྩϨϕϧ ͠ɼ΄΅શͯͷ໋ྩ௨ৗɼϨδελɾϑΝΠϧʹରͯ͠ ฒྻੑΛநग़͢ΔͨΊɼۙͰεʔύεΧϥɾϓϩηο 2ʙ3 ճͷΞΫηεΛߦ͏ɽ͜ͷͨΊɼ໘ੵ͕ಉఔͷ L1 αͷ in-flight ໋ྩΛ૿͢ʹ͋ΓɼͦͷҰͯ͠ͱ σʔλɾΩϟογϡͱൺֱͯ͠ɼϨδελɾϑΝΠϧΑ ཧϨδελɾϑΝΠϧͷ༰ྔ૿େ͍ͯ͠Δɽ·ͨɼϚ Γେ͖ͳిྗΛফඅ͢Δɽ ϧνεϨουΛαϙʔτ͢ΔίΞͰɼεϨουʹൺྫ ফඅిྗͱͦΕʹΑͬͯൃੜ͢Δɼ࠷ۙͷϓϩηο ͨ͠༰ྔ͕ඞཁͱͳΔͨΊɼߋʹഒͱ͍͏نͰͷ༰ྔ αɾίΞʹ͓͚ΔͷதͰɼͬͱਂࠁͳͷͷҰ ૿ΛҾ͖ͳʹͱ͜͢͜ىΔɽ ͭͰ͋ΔɽϨδελɾϑΝΠϧΛؚΉྖҬɼϓϩηοαɾ ࣍ʹཧϨδελɾϑΝΠϧͷϙʔτͷ૿Ճ͕͋Δɽ ίΞͷϗοτɾεϙοτͰ͋Γɼͦͷಈ࡞पΛ੍ݶ 4 ໋ྩಉ࣮࣌ߦՄೳͳεʔύεΧϥɾϓϩηοαͰɼϨ ͢ΔओͳཁҼͷҰͭʹͳ͍ͬͯΔɽ δελɾϑΝΠϧʹ 8 ͭͷϦʔυɾϙʔτͱ 4 ͭͷϥΠ ϨδελɾΩϟογϡ τɾϙʔτ͕ඞཁͱͳΔɽϨδελɾϑΝΠϧ௨ৗɼଟ ϨδελɾΩϟογϡΛಋೖ͢ΕɼڊେͳϨδελɾ ϙʔτͷ RAM ʹΑͬͯߏ͞ΕΔ͕ɼRAM ͷճ࿏໘ੵ ϑΝΠϧʹىҼ͢Δ͜ΕΒͷ༷ʑͳΛղܾ͢Δ͜ͱ͕ ϙʔτͷ 2 ʹൺྫ͢ΔͨΊɼͦͷճ࿏໘ੵ༰ྔͷ ՄೳͰ͋Δɽ ׂʹඇৗʹେ͖ͳͷͱͳΔɽ ͜ΕΒ 2 ͭͷཧ༝ʹΑΓɼϨδελɾϑΝΠϧۙ ਤ 1 ʹɼϨδελɾΩϟογϡͷγεςϜͷϒϩοΫਤ Λࣔ͢ɽϨδελɾΩϟογϡͷγεςϜɼओʹɼଟϙʔ τগΤϯτϦͷϨδελɾΩϟογϡʢRegister Cacheɼ 1 2 a) ౦ژେֶେֶӃใཧֶڀݚܥՊ Graduate School of Information Science and Technology, The University of Tokyo ໊ݹେֶେֶӃֶڀݚܥՊ Graduate School of Engineering, Nagoya University [email protected] ⓒ 2013 Information Processing Society of Japan RCʣͱগϙʔτଟΤϯτϦͷϝΠϯɾϨδελɾϑΝΠ ϧʢMain Register FileɼMRFʣͷ߹ͤʹΑͬͯߏ͞ ΕΔɽRC গΤϯτϦΏ͑ɼMRF গϙʔτΏ͑ʹɼݩ ͷϨδελɾϑΝΠϧΑΓ֨ஈʹখ໘ੵɾిྗͱͳΔɽ 1 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report Main Register File ਤ 1 ʹ͓͍ͯɼϥΠτɾόοϑΝΛ WSB ʹஔ͖͑ Main Register File Register Cache Δ͜ͱʹͳΔɽ࣮ߦ݁ՌɼRC ʹॻ͖ࠐ·ΕΔͱಉ࣌ʹ WSB ʹόοϑΝϦϯά͞Εɼͦͷ ޙMRF ͱૹΒΕΔɽ Register Cache طଘͷϥΠτɾόοϑΝɼMRF ͷϥΠτͷ࣌ؒతͳ FIFO FIFO Write Buffer FIFO ਤ 1 ʹόοϑΝϦϯά͞ΕͨϥΠτɼMRF ͷϥΠτɾϙʔ τ͕ۭ͍͍ͯΔݶΓ͔ʹ MRF ʹૹΒΕΔɽ FIFO FUs Β͖ͭΛฏԽ͢ΔͨΊʹஔ͔ΕΔɽϥΠτɾόοϑΝ FUs Write Squash Buffer ϨδελɾΩϟογϡɾγεςϜͷϒϩοΫਤ Ұํ WSB ɼͦͷ༰ྔͷݶ͢ڐΓ MRF ͷϥΠτΛ อ࣋͠ɼϥΠτ͕ʮ௵͞ΕΔ (squash)ʯͷΛͭɽ ϥΠτ͕ʮ௵͞ΕΔʯݪཧɼཧϨδελͷղ์Λ WSB ্Ͱߦ͏͜ͱʹ͋ΔɽಉҰͷཧϨδελʹର͢ Δ্ॻ͖Λߦ͏ޙଓͷ໋ྩ͕ίϛοτ͞ΕΔͱɼ্ॻ͖͞ ಛʹɼԘ୩Β͕ఏҊͨ͠ NORCS (Non-latency-Oriented ΕΔཧϨδελʹϚοϐϯά͞ΕͨཧϨδελղ Register Cache System) ͰɼIPC ͷԼΛ 2%ఔʹ ์͞ΕΔɽ͜ͷ࣌ɼղ์͞ΕΔཧϨδελͷϥΠτ͕ ͑ͳ͕Βɼ໘ੵΛ 1/4 ఔʹɼফඅిྗΛ 1/3 ఔʹݮ WSB ্ʹ͋ΕɼͦΕআͯ͠Α͍ɽ͢ͳΘͪɼཧϨ ͢Δ͜ͱʹޭ͍ͯ͠Δ [1]ɽ δελͷ্ॻ͖ʹΑͬͯɼWSB ্ͷϥΠτʮ௵͞Ε ϨδελɾΩϟογϡɾγεςϜͷϥΠτ ΔʯͷͰ͋Δɽߋʹɼޙଓͷ໋ྩ͕ίϛοτ͞Ε͍ͯ͘ͱɼ 2 ষͰৄ͘͠ड़Δ͕ɼϨδελɾΩϟογϡɾγεςϜ ʮ௵ͨ͠ʯϥΠτ·ͨʮ௵͞ΕΔʯ͜ͱʹͳΔɽ͜͏͠ ௨ৗɼϥΠτɾεϧʔํࣜͰ͋ΔɽͦͷͨΊɼMRF ͷ ͯɼόοϑΝʹอ͖࣋͠Εͳ͘ͳͬͨϥΠτ͚ͩΛ MRF ϥΠτ͕ফඅిྗͷগͳ͘ͳ͍෦ΛΊΔ͜ͱʹͳΔɽ ʹసૹ͢ΕΑ͍ɽ4 ষͰड़ΔධՁͰɼMRF ͷϥ ϨδελɾΩϟογϡɾγεςϜͰɼϦʔυͷେ෦ Πτ 16 ΤϯτϦͷ WSB ʹΑΓɼ18%ఔʹ·ͰݮՄ RC ͰΧόʔ͞ΕɼMRF ʹରͯ͠΄ͱΜͲߦΘΕͳ ೳͰ͋Δ͜ͱ͕ࣔ͞ΕΔɽ ͍ɽͦͷҰํϥΠτɼϥΠτɾεϧʔͰ͋ΔͨΊɼ͢ WSB ɼԋࢉʹͱ͝ثࢄ͞Εͨ 1-read/1-write ͷ ͯ RC ͱ MRF ͷ྆ํʹରͯ͠ߦΘΕΔ͜ͱʹͳΔɽͦͷ FIFO Ͱߏ͢Δ͜ͱ͕Ͱ͖ΔɽMRF ɼ2-read/2-writeɼ ͨΊɼMRF ͷిྗͷେ෦ϥΠτʹΑΔͷͱͳΔɽ 128 ΤϯτϦఔͰ͋Δ͔Βɼ16 ΤϯτϦͷ FIFO ͦΕ NORCS ͷධՁͰɼϨδελɾΩϟογϡɾγεςϜͷશ ʹൺͯेʹখ͍͞ɽ ిྗͷ͏͕ͪ RCɼΓͷ͕ MRF ʹΑͬͯফඅ ϨδελɾϑΝΠϧܥͷిྗɼNORCS ͷಋೖʹΑΓ ͞Ε͓ͯΓɼMRF ͷফඅిྗͷ΄ͱΜͲ͕ϥΠτʹΑͬ 1/3 ఔʹ·Ͱ͞ݮΕ͍ͯΔ͕ɼWSB ͷಋೖʹΑΓߋ ͯੜ͍ͯ͡Δɽ͢ͳΘͪɼϨδελɾΩϟογϡɾγες ʹͦͷఔʹ·Ͱ͞ݮΕΔ͜ͱʹͳΔɽ ϜͷશফඅిྗͷఔΛ MRF ͷϥΠτ͕ΊΔ͜ ͱͱͳ͍ͬͯΔ [1]ɽ ߋʹɼMRF ͷϥΠτͷʹݮΑΓɼMRF ͷϙʔτ Λ͖ͰݮΔՄೳੑ͋ΔɽNORCS ͷධՁͰ MRF ͜ͷ͜ͱಛʹɼϚϧνεϨουɾϓϩηοαͰॏཁͳ 2-read/2-write ͱ͍ͯ͠Δ͕ɼ͜ΕΛ 2-read/1-write Ͱࡁ ͱͳΔɽϚϧνεϨουɾϓϩηοαͰɼεϨου ·ͤΔ͜ͱ͕Ͱ͖Εɼճ࿏໘ੵߋʹఔʹ·Ͱ ͷ૿Ճʹରͯ͠ɼRC ͷ༰ྔ΄ͱΜͲ૿͢ඞཁ͕ͳ͍ ͢ݮΔ͜ͱ͕Ͱ͖Δɽ ͜ͱ͕͔͍ͬͯΔ [2], [3]ɽͦͷҰํͰɼMRF εϨο ҎԼɼ2 ষͰϨδελɾΩϟογϡɾγεςϜʹ͍ͭͯ υ͚ͩ૿͢ඞཁ͕͋ΔɽMRF ͷϥΠτͷΊΔ ؆୯ʹ·ͱͨޙɼ3 ষͰ WSB ʹ͍ͭͯৄ͘͠આ໌͢Δɽ ׂ߹ɼ2-way ͷϚϧνεϨουɾϓϩηοαͰ 2/3ɼ 4 ষͰɼධՁ݁Ռʹ͍ͭͯ·ͱΊΔɽ 3-way Ͱ 3/4 ఔʹ·Ͱ૿Ճ͢Δ͜ͱʹͳΔɽ 2. ϨδελɾΩϟογϡɾγεςϜ ߋʹۙͰɼϓϩηεͷඍࡉԽʹ͍ɼϥΠτ͕ࠔ ʹͳΓͭͭ͋Γ [4], [5]ɼϥΠτ࣌ͷిѹ੍[ ޚ6], [7] ͳͲ ຊষͰɼఏҊͷϕʔεͱͳΔϨδελɾΩϟογϡɾ ͷٕज़ͰɼϦʔυʹൺͯϥΠτͷిྗ͕૿Ճ͢Δʹ γεςϜʢRegister Cache SystemɼRCSʣʹ͍ͭͯઆ໌ ͋Δɽ ͢ΔɽຊߘͰఏҊ͢ΔϥΠτɾεΧογϡɾόοϑΝɼ ϥΠτɾεΧογϡɾόοϑΝ طଘͷ RCS ͷϥΠτɾόοϑΝΛஔ͖ͯ͑ɼϝΠϯɾϨ ຊߘͰɼ͜ͷ MRF ͷϥΠτΛେ෯ʹ͢ݮΔϥΠ δελɾϑΝΠϧͷϥΠτͷফඅిྗΛ͢ݮΔͷͰ τɾεΧογϡɾόοϑΝʢWrite Squash BufferɼWSBʣ ͋Δɽͦ͜ͰຊষͰɼRCS ͷϥΠτΛத৺ʹղઆ͠ɼ ΛఏҊ͢Δɽ ಛʹϝΠϯɾϨδελɾϑΝΠϧͷϥΠτͷফඅిྗ͕ WSB ɼطଘͷϨδελɾΩϟογϡɾγεςϜͷϥ ΠτɾόοϑΝͱಉ༷ʹɼԋࢉ ͱثMRF ͷؒʹஔ͔ΕΔɽ ⓒ 2013 Information Processing Society of Japan ͱͳΔ͜ͱΛड़ɼطଘͷ RCS ͷϥΠτɾόοϑΝ ͷׂʹ͍ͭͯઆ໌͢Δɽ 2 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report 2.1 ϨδελɾΩϟογϡɾγεςϜͷ֓ཁ 2.3 ϨδελɾΩϟογϡɾγεςϜͷϥΠτ RCS ͷϒϩοΫਤɼਤ 1 ʹࣔͨ͠ɽલষͰड़ͨΑ͏ RC ʹର͢ΔϥΠτ௨ৗɼϥΠτɾεϧʔํࣜͰॲཧ ʹɼRCS ɼଟϙʔτগΤϯτϦͷϨδελɾΩϟογϡ ͞ΕΔɽ͢ͳΘͪɼϨδελͷॻ͖ࠐΈɼRC ͱಉ࣌ ʢRegister CacheɼRCʣͱগϙʔτଟΤϯτϦͷϝΠϯɾ ʹ MRF ʹରͯ͠ߦΘΕΔɽ͜ΕҎԼͷཧ༝ʹΑΔɽ ϨδελɾϑΝΠϧʢMain Register FileɼMRFʣͷ߹ ௨ৗͷϝϞϦ֊ʹ͓͚ΔɼϥΠτɾεϧʔʹର͢Δϥ ͤʹΑͬͯߏ͞ΕΔɽRC গΤϯτϦΏ͑ɼMRF ΠτɾόοΫͷϝϦοτɼ2 ճҎ߱ͷϥΠτΛΩϟο গϙʔτΏ͑ʹɼݩͷϨδελɾϑΝΠϧΑΓ֨ஈʹখ໘ γϡ্ͷΤϯτϦʹର࣮ͯ͠ߦ͢Δ͜ͱʹΑͬͯɼ࣍ͷ֊ ੵɾిྗͱͳΔɽจ[ ݙ1] ͷධՁͰɼ໘ੵΛ 1/4 ఔ ͷϥΠτʢόοΫʣͷճΛ 1 ճͰࡁ·͢͜ͱʹ͋Δɽ ʹɼফඅిྗΛ 1/3 ఔʹ͢ݮΔ͜ͱʹޭ͍ͯ͠Δɽ ϥΠτɾεϧʔͰɼ1 ճͷϥΠτ͝ͱʹɼ࣍ͷ֊ͷ ಛʹɼԘ୩Β͕ఏҊͨ͠ NORCS (Non-latency-Oriented 1 ճͷϥΠτʢεϧʔʣ͕ൃੜ͢Δ͜ͱʹͳΔɽ Register Cache System) ͰɼRC ώοτ࣌ʹϨΠςϯ ͔͠͠ϨδελɾΩϟογϡʹ͓͍ͯɼϥΠτɾόο γΛ͍ͳ͠ݮʮRC ϛεΛԾఆͨ͠ύΠϓϥΠϯʯͷ࠾ Ϋͷ͜ͷΑ͏ͳϝϦοτੜ͡ͳ͍ɽ͜Εɼ௨ৗͷϝϞ ༻ʹΑΓɼIPC ͷԼΛ 2%ఔʹ͑Δ͜ͱʹޭͯ͠ ϦͷϩέʔγϣϯͱҟͳΓɼϨδελʹରͯ͠Ϧωʔ ͍Δɽ ϛϯά͕ࢪ͞ΕΔͨΊͰ͋ΔɽલઅͰड़ͨΑ͏ʹɼ໋֤ ҎԼͰ NORCS Λ೦಄ʹઆ໌͢Δ͕ɼఏҊͷϥΠτɾ ྩͷσεςΟωʔγϣϯʹผͷཧϨδελׂ͕Γͯ εΧογϡɾόοϑΝɼͦΕҎ֎ͷҰൠͷํࣜʹԠ༻ ΒΕΔɽ͕ͨͬͯ͠ɼRC ্ͷ͋ΔΤϯτϦʹର͢ΔϥΠ ՄೳͰ͋Δɽ τɼׂΓͯΒΕ໋ͨྩ͕࣮ߦ͞Εͨ࣌ͷ 1 ճͷΈͰ͋ ຊఏҊΛཧղ͢ΔͨΊʹ·ͣɼཧϨδελͷׂΓ ͯͱղ์ʹ͍ͭͯਖ਼֬ʹཧղ͢Δඞཁ͕͋ΔɽͦͷͨΊɼ Δɽ ʮ2 ճͷϥΠτʯͦͦଘࡏ͠ͳ͍ɽ RC ΛϥΠτɾόοΫͱ͢ΔͱɼϥΠτɾόοΫ࣌ʹ RC ࣍અͰ·ͣཧϨδελͷׂΓͯͱղ์ʹ͍ͭͯ·ͱΊ ΛಡΈग़ͨ͢Ίͷϙʔτ͕༨ʹܭඞཁʹͳΓɼ͔͑ͬͯෆ ͨޙɼ2.3 Ҏ߱Ͱ RCS ͷϥΠτʹ͍ͭͯઆ໌͢Δɽ རͰ͋Δɽ Ҏ্ͷཧ༝ʹΑΓɼRC ϥΠτɾεϧʔͱ͢ΔͷͰ͋Δɽ 2.2 ཧϨδελͷׂΓͯͱղ์ ཧϨδελͷϦωʔϛϯάΛϕʔεʹ͢ΔํࣜͰ ɼۭ͖ཧϨδελϑϦʔɾϦετʹΑͬͯཧ͞Ε ͍ͯΔ [8]ɽ ϦωʔϜ࣌ʹɼϑϦʔɾϦετ͔Βۭ͖ཧϨδελ͕ औΓग़͞Εɼ໋֤ྩͷσεςΟωʔγϣϯʹରׂͯ͠Γ ͯΒΕΔɽ ϓϩάϥϜɾΦʔμ্Ͱɼ͋ΔཧϨδελ L Λσε ςΟωʔγϣϯͱ͢Δ໋ྩΛॱʹ Ip1 ɼIp2 ɼ· · · ͱ͢Δɽ ·ͨɼIp1 ɼIp2 ͷσεςΟωʔγϣϯʹཧϨδελ 2.4 MRF ͷϥΠτͷফඅిྗ RCS ͰɼҎԼͷཧ༝ʹΑΓɼMRF ͷిྗͷେ෦ ϥΠτʹΑΔͷͱͳΔɿ Ϧʔυ Ϧʔυͷେ෦ RC ͰΧόʔ͞ΕɼMRF ʹର ͯ͠΄ͱΜͲߦΘΕͳ͍ɽRC ώοτɼ90% ఔ Ҏ্ʹͳΔɽ ϥΠτ ϥΠτɾεϧʔͷͨΊɼͯ͢ MRF ʹରͯ͠ ߦΘΕΔɽ NORCS ͷධՁͰɼRCS ͷશిྗͷΛ RCɼΓ P1 ɼP2 ɼ· · · ͕ͦΕͧΕׂΓͯΒΕͨͱ͢Δɽਤ 2 Ͱɼ ͷΛ MRF ͕ফඅ͍ͯ͠ΔɽMRF ͷμΠφϛοΫి Ip1 : L(P1 ) = · · · ͳͲͱද͍ͯ͠ݱΔɽ ྗͷ΄ͱΜͲΛϥΠτ͕Ί͍ͯΔͨΊɼ݁ ہRCS ͷશ P1 ʹ֨ೲ͞ΕΔ໋ྩ Ip1 ͷ࣮ߦ݁ՌΛࢀর͢ΔՄೳੑ ͕͋ΔͷɼϓϩάϥϜɾΦʔμ্Ͱ໋ྩ Ip1 ʙIp2 ͷؒʹ ిྗͷఔΛ MRF ͷϥΠτ͕ΊΔ͜ͱͱͳͬͯ ͍Δɽ ͋Δ໋ྩ͚ͩͰ͋Δʢਤ 2 Ͱ Ic1 ʣ ɽIp2 Ҏ߱ʹ L Λιʔ εͱ͢Δ໋ྩʢIc2 ʣ͕͋ͬͨͱͯ͠ɼͦΕ P2 ʹ֨ೲ ͞ΕΔ I2 ͷ࣮ߦ݁ՌΛࢀর͢Δ͜ͱʹͳΔɽ͕ͨͬͯ͠ɼ ໋ྩ I2 ͕ίϛοτ͞Εͨ࣌ͰɼI1 ʙI2 ͷؒʹ͋Δ໋ྩ ʢIc1 ʣ͓ͯྃ͠Γɼ໋ྩ I1 ͷ݁ՌΛࢀর͢Δ໋ྩ࠷ ૣγεςϜʹଘࡏ͠ͳ͍͜ͱ͕อূ͞ΕΔɽ ͦͷͨΊɼIp1 ͷσεςΟωʔγϣϯʹׂΓͯΒΕͨ 2.5 MRF ͷϥΠτͷফඅిྗͷ૿Ճ ۙͰɼRCS ͷશফඅిྗʹ͓͚Δ MRF ͷϥΠτ ͷΊΔׂ߹Λߋʹ૿Ճͤ͞ΔཁҼ͕͋Δɽ 2.5.1 ϚϧνεϨουԽ MRF ͷϥΠτͷফඅిྗɼϚϧνεϨουɾϓϩ ηοαͰΑΓॏཁͳͱͳΔɽ P1 ɼͦͷΛࢀর͢Δ໋ྩ͕ଘࡏ͠ͳ͍ͷͰɼ͜ͷ࣌ ϚϧνεϨουɾϓϩηοαͰɼεϨουɾεέδϡʔ Ͱղ์ͯ͠Α͍ɽղ์͞ΕͨཧϨδελɼϑϦʔɾϦ ϦϯάɾϙϦγʹ͘ڧґଘ͢Δ͕ɼεϨουͷ૿Ճʹର ετʹฦ٫͞ΕΔɽ ͯ͠ɼRC ͷ༰ྔ΄ͱΜͲ૿͢ඞཁ͕ͳ͍͜ͱ͕͔ͬ ͍ͯΔ [2], [3]ɽ Ұํ MRF ɼগͳ͘ͱ֤εϨουͷཧϨδελΛ ⓒ 2013 Information Processing Society of Japan 3 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report ≀⌮䝺䝆䝇䝍 䛾 ᑑ WSB 䜶䞁䝖䝸 䛾 ᑑ Ip1 : L (P1) = 䈈㻌 fetch rename dispatch schedule fetch rename dispatch schedule fetch rename Ic1 : ͏͏ = L (P1) 䈈 schedule Ip2 : L (P2) = 䈈㻌 issue dispatch schedule fetch rename Ic2 : ͏͏ = L (P2) 䈈 reg read exec WB schedule issue reg read dispatch schedule fetch rename commit exec WB commit schedule issue reg read exec WB schedule issue reg read exec WB dispatch schedule schedule issue commit commit reg read exec ਤ 2 ཧϨδελɾϑΝΠϧͱ WSB ΤϯτϦͷण໋ อ࣋͢Δඞཁ͕͋Γɼඞཁͳ༰ྔεϨουʹൺྫ͢Δɽ 3.1 ϥΠτɾεΧογϡɾόοϑΝͷ֓ཁ ͕ͨͬͯ͠ϚϧνεϨουɾϓϩηοαͰɼϨδελɾ WSB ɼैདྷͷ RCS ͷϥΠτɾόοϑΝͱಉ༷ɼԋࢉ ΩϟογϡɾγεςϜશମͷফඅిྗʹ͓͚Δ MRF ͷ ͱثϝΠϯɾϨδελɾϑΝΠϧͷؒʹஔ͞ΕΔɽਤ 1 ϥΠτͷΊΔׂ߹ɼ2-way Ͱ 2/3 ఔɼ3-way Ͱ ʹࣔͨ͠ϒϩοΫਤʹ͓͍ͯɼϥΠτɾόοϑΝΛ WSB 3/4 ఔɼͱ૿Ճ͢Δ͜ͱʹͳΔɽ ʹஔ͖͑Δ͜ͱʹͳΔɽԋࢉ͔ثΒૹΒΕͯདྷΔ࣮ߦ݁ 2.5.2 ϓϩηεͷඍࡉԽ ՌɼRC ʹॻ͖ࠐ·ΕΔͱಉ࣌ʹɼWSB ʹόοϑΝϦ ۙͰɼϓϩηεͷඍࡉԽʹ͍ɼ͍ಈ࡞ిѹͰ ϯά͞ΕΔɽWSB ʹόοϑΝϦϯά͞Εͨ MRF ͷϥ RAM ͷηϧΛసͤ͞Δͷ͕ࠔʹͳΓͭͭ͋Δ [4], [5]ɽ Πτɼͦͷ ޙMRF ͱૹΒΕɼMRF Λߋ৽͢Δ͜ͱ ͜ͷʹରॲ͢ΔͨΊʹϥΠτ࣌ͷిѹ੍[ ޚ6], [7] ͳͲ ʹͳΔɽ ͷٕज़Λ࠾༻͢ΔͱɼϦʔυʹൺͯϥΠτͷిྗ͕૿Ճ ϥΠτɾεΧογϡɾόοϑΝͷׂ ͢Δ͜ͱʹͳΔɽ 2.6 અͰड़ͨΑ͏ʹɼطଘͷ RCS ͷϥΠτɾόοϑΝ ͷׂɼMRF ͷϥΠτͷ࣌ؒతͳΒ͖ͭΛฏԽ 2.6 ϨδελɾΩϟογϡɾγεςϜͷϥΠτɾόοϑΝ ͢Δ͜ͱʹ͋ΔɽҰํ WSB ͷׂɼWSB ্Ͱ MRF ఏҊͷϥΠτɾεΧογϡɾόοϑΝɼطଘͷ RCS ͷϥΠτΛʮ௵͢ (squash)ʯ͜ͱʹ͋ΔɽWSB ɼͦͷ ͷϥΠτɾόοϑΝΛஔ͖ ͯ͑MRF ͷϥΠτͷফඅ ༰ྔͷݶ͢ڐΓ MRF ͷϥΠτΛอ࣋͠ଓ͚Δɽͦͯ͠ ిྗΛ͢ݮΔͷͰ͋Δɽͦ͜Ͱຊষͷ࠷ʹޙɼطଘͷ ͦͷؒʹɼϥΠτ͕ʮ௵͞ΕΔʯͷΛͭɽ RCS ͷϥΠτɾόοϑΝʹ͍ͭͯઆ໌͢Δɽ ֤αΠΫϧʹԋࢉ͔ثΒ RCS ͱૹΒΕͯདྷΔϥΠτ લड़ͨ͠Α͏ʹɼϥΠτ͕ʮ௵͞ΕΔʯݪཧɼཧϨ δελͷղ์Λ WSB ্Ͱߦ͏͜ͱʹ͋Δɽ2.2 અͰɼ ͷ࠷େɼಉ࣮࣌ߦՄೳͳ໋ྩʹ͍͠ɽ͔͠͠ MRF ໋ྩ Ip2 ͕ίϛοτ͞ΕͨΒɼIp1 ͷσεςΟωʔγϣϯʹ ͷϥΠτɾϙʔτɼඞͣ͜͠ͷ࠷େ͚ͩ༻ҙ͢Δඞ ׂΓͯΒΕͨ P1 Λղ์ͯ͠Α͍ͱड़ͨɽ͜ͷ࣌ɼղ ཁͳ͘ɼฏۉతʹ IPC ఔ͋ΕΑ͍ɽطଘͷ RCS ์͞ΕΔ P1 ͷϥΠτ͕ WSB ্ʹ͋ΕɼͦΕআ ͷϥΠτɾόοϑΝɼ͜ͷϥΠτͷ࣌ؒతͳΒ͖ͭΛ ͯ͠͠·ͬͯΑ͍ɽ͢ͳΘͪɼཧϨδελͷ্ॻ͖ʹ ฏԽ͢ΔͨΊʹઃ͚ΒΕ͍ͯΔɽ ΑͬͯɼWSB ্ͷϥΠτʮ௵͞ΕΔʯͷͰ͋Δɽߋʹɼ ͦͷͨΊɼ͜ͷϥΠτɾόοϑΝͷ༰ྔϥΠτͷʮॠ ؒ࠷େ෩ʯΛड͚ೖΕΔͷʹेͰ͋ΕΑ͍ɽ จ[ ݙ1] ͷධՁͰɼಉ࣮࣌ߦՄೳͳ໋ྩ 4 ʹରͯ͠ɼ MRF 2 ຊͷઐ༻ͷϥΠτɾϙʔτΛ࣋ͯेͰ͋Δ Ip3 ͕ίϛοτ͞ΕΔͱɼࠓ P2 ʹର͢ΔϥΠτ·ͨ ʮ௵͞ΕΔʯ͜ͱʹͳΔɽ͜ͷΑ͏ʹͯ͠ɼόοϑΝʹอ࣋ ͖͠Εͳ͘ͳͬͨϥΠτ͚͕ͩ MRF ʹର࣮ͯ͠ߦ͞ΕΔ ͜ͱʹͳΔɽ ͱ͍ͯ͠Δɽ͜ͷ߹ɼόοϑΝͷΤϯτϦຖαΠΫϧ ղ์͞ΕΔཧϨδελཧϨδελͷཧʹߏػਘ 2 ͣͭݮΒ͢͜ͱ͕Ͱ͖ɼͦͷ݁ՌɼόοϑΝͷ༰ྔ 4ʙ ͶΕΑ͘ɼWSB ͷແޮԽͷͨΊʹผ్ཧ͢Δඞཁ 8 ఔͰΑ͍ͱ͍ͯ͠Δɽ ͳ͍ɽ 3. ϥΠτɾεΧογϡɾόοϑΝ ຊষͰɼఏҊख๏Ͱ͋ΔϥΠτɾεΧογϡɾόοϑΝ ʢWrite Squash BufferɼWSBʣʹ͍ͭͯৄ͘͠આ໌͢Δɽ ⓒ 2013 Information Processing Society of Japan ͳ͓ɼ͜ͷΑ͏ͳ͜ͱ͕ՄೳͰ͋ΔͷɼWSB ͕ RCS ͷϥΠτɾόοϑΝͰ͋Δ͔ΒͰ͋ΔɽRCS ͷϦʔυͷ ΄ͱΜͲ RC ʹΑͬͯΧόʔ͞ΕɼMRF ͕Ϧʔυ͞Ε Δ͜ͱগͳ͍ɽ͢ͳΘͪɼ ʮ௵͞ΕͯʯMRF ʹॻ͔Εͳ 4 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report ͔࣮ͬͨߦ݁ՌΛඞཁͱ͢Δ໋ྩɼ ʢώοτ͢ΕʣRC ͔ΒͦΕΛಘͨͷͰ͋Δɽ͕ͨͬͯ͠ɼRCS ͷҰ෦Ͱͳ ͍ɼ୯ಠͷ WSB ɼ͋·Γ͏·͘ಇ͔ͳ͍͜ͱʹҙ͞ ϦϯάɾόοϑΝ ܕ1-read/1-write ͷ RAM Λ༻͍ͯϦ ϯάɾόοϑΝΛߏ͢Δ γϑτɾϨδελ ܕશମΛγϑτɾϨδελʹΑͬͯߏ Ε͍ͨɽ ͠ɼΤϯΩϡʔ/σΩϡʔͷରΛඌͱઌ಄ͷϨ ࢄߏ δελʹݶఆ͢Δɽ WSB ͷߏࣗମɼطଘͷ RCS ͷϥΠτɾόοϑΝͱ େ͖ͳҧ͍ͳ͍ɽͨͩ͠ɼطଘͷ RCS ͷϥΠτɾόο ػೳɾੑೳʹେ͖ͳҧ͍ͳ͍ͱߟ͑ΒΕΔɽ ϥΠτɾόοϑΝɾώοτͱϑΥϫʔσΟϯά ϑΝ͕ 4ʙ8 ΤϯτϦఔͰ͋ΔͷʹൺΔͱ֨ஈʹେ༰ RCS ͰҰൠʹɼϦʔυͷେ RC ʹώοτ͢Δɽ͠ ྔͰ͋ΔͷͰɼখ໘ੵԽͷ͕ඞཁͱͳΔɽͦ͜Ͱ WSB ͔͠ʹكɼϥΠτɾόοϑΝɾώοτɼ͢ͳΘͪɼRC ʹϛ ɼ1 ͭͷଟϙʔτͷ RAM ʹΑͬͯूதతʹ࣮͢Δͷ ε࣮ͨ͠ߦ݁Ռ͕ϥΠτɾόοϑΝʢ͘͠ WSBʣʹ Ͱͳ͘ɼਤ 1 ӈଆʹࣔͨ͠Α͏ʹɼ֤ԋࢉʹͱ͝ثࢄ ଘࡏ͢Δ͜ͱ͕͋Δɽͦͷ߹ɼͦͷ࣮ߦ݁ՌΛϥΠτɾ ஔ͢Δɽԋࢉͱ͝ثͷݸʑͷ RAM 1-read/1-write Ͱ όοϑΝʢWSBʣ͔Βԋࢉͱثఏ͢ڙΔඞཁ͕͋Δɽ Α͘ɼϑϥάϝϯςʔγϣϯΛߟྀͯ͠ɼ߹ܭͷճ࿏໘ ੵΛେ෯ʹ͢ݮΔ͜ͱ͕Ͱ͖Δɽ WSB ɼطଘͷϥΠτɾόοϑΝΑΓେ༰ྔͰɼͰ͖ ΔݶΓϥΠτΛอ࣋͠ଓ͚Α͏ͱ͢ΔͨΊɼϥΠτɾόο ϑΝɾώοτͷ֬ΑΓߴ͍ɽ 3.2 WSB ͷಈ࡞ ࣍ʹɼWSB ͷಈ࡞ʹ͍ͭͯৄࡉʹઆ໌͢Δɽ ΤϯΩϡʔ બࢶͱͯ͠ɼҎԼͷ 2 ͕ͭߟ͑ΒΕΔɿ ϑΥϫʔσΟϯά όοϑΝ͔ΒಡΈग़͢ɽ ετʔϧ όοΫΤϯυɾύΠϓϥΠϯΛετʔϧ͠ɼ ΤϯΩϡʔଆͷಈ࡞୯७Ͱ͋ΔɽରԠ͢ΔόοϑΝ ֘ϥΠτ͕ MRF ͱૹΒΕΔͷΛͪɼMRF ͔Β ʹۭ͖͕͋Εɼԋࢉث࣮ߦ݁ՌͷϥΠτɾϦΫΤετ ಡΈग़͢ɽ֘ϥΠτͷ͋ΔόοϑΝΛ༏ઌతʹॲཧ ΛΤϯΩϡʔ͢Δɽ͍ͣΕ͔ͷόοϑΝ͕ϑϧͰ͋Εɼ ͢Εɼ10 αΠΫϧఔҎʹॻ͖ͩ͞ΕΔɽ όοΫΤϯυετʔϧ͢Δɽ ແޮԽ ରԠ͢ΔཧϨδελ͕ղ์͞Εͨ࣌ʹɼ࿈ʹࡧݕ ΑΓɼΤϯτϦΛແޮԽ͢Δɽ σΩϡʔ ௨ৗͷϥΠτɾόοϑΝɼόοϑΝʹ༗ޮͳΤϯτ Ϧ͕ 1 ͭͰ͋ΕɼMRF ʹରͯ͠ϦΫΤετΛૹग़͢ ͳ͓ϦϯάɾόοϑΝͰܕɼϑΥϫʔσΟϯάͷͨΊ ͷϙʔτΛผ్Ճ͢Δඞཁͳ͘ɼσΩϡʔΛఀࢭͯ͠ɼ σΩϡʔ༻ͷϙʔτ͔ΒಡΈग़͠Λߦ͑Α͍ɽ ίϯύΫγϣϯ ແޮԽ͞ΕͨΤϯτϦʮࣃൈ͚ʯʹͳΔͷͰɼίϯύ ΫγϣϯΛࢪ͢͜ͱʹΑΓɼΤϯτϦͷ༗ޮར༻ΛਤΔ͜ ͱ͕ߟ͑ΒΕΔɽ ΔɽWSB ɼͰ͖ΔݶΓΤϯτϦΛόοϑΝ্ʹอ࣋͠ ಉ༷ͷߟ͑ํɼ໋ྩΟϯυ [9] ʹݟΒΕΔɽ Α͏ͱ͢ΔͨΊɼ༗ޮͳΤϯτϦ͕͋Δ͚ͩͰɼMRF ͨͩ͠ίϯύΫγϣϯɼϦϯάɾόοϑΝܕͷ࣮Ͱ ʹରͯ͠ϦΫΤετΛૹग़͠ͳ͍ɽ ࣮͕ݱ͍͠ɽ όοϑΝɾϑϧʹΑΔετʔϧΛආ͚ΔͨΊɼΓ͕ n ΤϯτϦΛͬͨͱ͜ΖͰɼMRF ʹରͯ͠ϦΫΤετΛ ૹग़͢Δɽn 2ʙ4 ఔͰ͋Δɽ σΩϡʔଆͷ֤αΠΫϧͷಈ࡞ҎԼͷΑ͏ʹ·ͱΊΒ ΕΔɿ ( 1 ) ઌ಄ΤϯτϦ͕ແޮԽ͞Ε͍ͯΕɼ͜ΕΛऔΓআ͖ɼ ͜ͷαΠΫϧͷಈ࡞ऴྃ͢Δɽ ( 2 ) ઌ಄ΤϯτϦ͕༗ޮͰɼ͔ͭɼΓΤϯτϦ͕ n Λ 3.4 WSB ͷ༰ྔͱΤϯτϦͷण໋ ຊষͷ࠷ʹޙɼWSB ʹඞཁͳ༰ྔʹ͍ͭͯߟ͢Δɽ ۭ͖ཧϨδελׂ͕ΓͯΒΕ্ͯॻ͖͢Δ໋ྩͷί ϛοτʹΑͬͯղ์͞ΕΔͷɼཧϨδελɾϑΝΠϧ WSB ಉ༷Ͱ͋ΔɽͦͷͨΊɼWSB ͷ૯༰ྔཧ ϨδελɾϑΝΠϧͱಉఔʹͳΔͷͰͳ͍͔ͱݒ೦ Λ࣋ͨΕΔ͖͋Ζ͏ɽ͔࣮͠͠ࡍʹɼWSB ͷ૯༰ ͬͨͱ͜ΖͰɼMRF ʹରͯ͠ϦΫΤετΛૹग़͢ ྔཧϨδελɾϑΝΠϧͷఔͰΑ͍ɽͦΕɼ Δɽ֤ԋࢉثͷόοϑΝؒͰௐఀΛߦ͍ɼೝΊΒΕΕ WSB ͷΤϯτϦͷण໋͕ཧϨδελͷͦΕΑΓ͍͔ ɼઌ಄ΤϯτϦͷϥΠτΛ MRF ʹରͯ͠ૹग़͢Δɽ ΒͰ͋Δɽ ਤ 2 ʹɼ໋ྩ Ip1 ʹׂΓͯΒΕͨཧϨδελ P1 ͱ 3.3 ͦͷଞͷߟྀ ຊઅͰɼͦͷଞͷ্࣮ͷߟྀʹ͍ͭͯड़Δɽ ϖΠϩʔυͷ࣮ํ๏ ԋࢉͱ͝ثͷόοϑΝͷϖΠϩʔυɼҎԼͷ 2 ͭͷ࣮ ํ๏͕ߟ͑ΒΕΔɿ ⓒ 2013 Information Processing Society of Japan ͦΕʹରԠ͢Δ WSB ΤϯτϦͷण໋Λࣔ͢ɽಉਤʹࣔ͞ Ε͍ͯΔΑ͏ʹɼΤϯτϦ͕ղ์͞ΕΔλΠϛϯάཧ Ϩδελͱ WSB ΤϯτϦͰಉҰͰ͋ΔɽҰํͰׂͯͷ λΠϛϯάɼཧϨδελ͕ϦωʔϜɾεςʔδͰ͋Δ ͷʹରͯ͠ɼWSB ͰϥΠτόοΫɾεςʔδʹͳΔɽ͠ 5 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report ԋࢉث int:2, fp:2, mem:2 ཧϨδελ INT ໋ྩʹରͯ͠ 32 Ϩδελ ཧϨδελ INT ໋ྩʹରͯ͠ 128 Ϩδελ MRF ͷϙʔτ 2R2W WSB 8,16,24,32,48,64,96 WSB ͷ࣮ ϦϯάɾόοϑΝํࣜ WSB ͷϦʔυɾϙʔτ 1,2,4 WSB ͷۭ͖ 1,2,4 ϮϬй ϭϴй ϭϲй ϭϰй ϭϮй ϭϬй ϴй ϲй ϰй Ϯй Ϭй &ŽƌǁĂƌĚŝŶŐ䛾Ⓨ⏕⋡ 䛾Ⓨ⏕⋡;йͿ 䛾Ⓨ⏕⋡ ද 1 γϛϡϨʔγϣϯɾύϥϝʔλʔ ߲ ϴ ϭϲ Ϯϰ ͕ͨͬͯɼWSB ͷΤϯτϦͷण໋ཧϨδελͷͦΕ ΑΓɼσΟεύονʙεέδϡʔϧʙൃߦʙϨδελಡΈ ਤ 3 ϯϮ t^㛗 㛗 ϰϴ ϲϰ ϵϲ ϥΠτɾεΧογϡɾόοϑΝ͔ΒͷϑΥϫʔσΟϯάൃੜ ग़͠ʙ࣮ߦͷ͚ͩ͘ͳΔɽಛʹɼεέδϡʔϦϯάɾ ΟϯυதͰൃߦΛ͍ͬͯΔ͕࣌ؒ͘ͳΔՄೳੑ͕ ͋Δɽ ͜ͷण໋ͷࠩͷ͚ͩɼWSB ͷ༰ྔཧϨδελɾ ϑΝΠϧͷͦΕʹൺͯখͯ͘͞Α͘ͳΔͷͰ͋Δɽ ͳ͓ɼಉ༷ͷߟ͑ɼཧϨδελ 2 ஈ֊ղ์ํࣜ [10] ʹݟΔ͜ͱ͕Ͱ͖Δɽ 4. ੑೳධՁ 4.1 ධՁख๏ γϛϡϨʔγϣϯΛߦ͍ɼఏҊख๏ͷධՁΛߦͬͨɽγ ϑϧͱͳͬͯετʔϧ͕ൃੜ ଓ͘ 4.2.1 ͼٴ4.2.2 ͰɼͦΕͧΕͷӨڹΛৄࡉʹߟ͠ɼ 4.2.3 Ͱ IPC ͷӨڹΛ·ͱΊΔɽ 4.2.1 ϑΥϫʔσΟϯάىҼετʔϧ Ϧʔυɾϙʔτ͕Ө͢ڹΔͱߟ͑ΒΕΔɼϑΥϫʔσΟ ϯάىҼετʔϧʹ͍ͭͯɼਤ 3 ʹ݁ՌΛࣔ͢ɽਤ 3 ͷ ԣ࣠ϥΠτɾεΧογϡɾόοϑΝͷ͞ɼॎ࣠ॻࠐ ΈΛʹऔͬͨϑΥϫʔσΟϯάൃੜͰ͋ΓɼϥΠ τɾεΧογϡɾόοϑΝॻࠐ·Εͨσʔλ͕શͯϑΥ ϫʔσΟϯά͞ΕΕɼ100%ͱͳΔɽ ϛϡϨʔγϣϯʹຊͰࣨڀݚ։ൃͨ͠γϛϡϨʔλʮَ ϥΠτɾεΧογϡɾόοϑΝͷ͕͘͞ͳΔ΄ͲϑΥ ್ʯ[11] Λ༻͍͍ͯΔɽϕϯνϚʔΫʹɼSPECINT2006 ϫʔσΟϯάͷൃੜ্͕͍ͬͯΔ͕ɼ͞ 96 ͷϥΠ ͔Βɼperlbench, bzip2, gcc, mcf, gobmk, hmmer, sjeng, τɾεΧογϡɾόοϑΝͰ 17%ఔͱɼϑΥϫʔσΟ libquantum, h264, omnet, astar, xalancbmk ֤ϓϩάϥϜ ϯάͷൃੜ͢Δ͕͋Δɽ͜Εɼ͍ݹσʔλ ͷ ref ϓϩάϥϜΛ༻͠ɼ࠷ॳͷ 1G ໋ྩΛεΩοϓ͠ ͕ࢀর͞ΕΔ͍֬ͨΊͱߟ͑ΒΕΔɽ ޙͷ 100M ໋ྩΛ࣮ߦͨ͠ɽϓϩάϥϜຖͷࠩ 4.4 ʹ ࣍ʹɼਤ 4 ʹɼϑΥϫʔσΟϯάͱϝΠϯɾϨδελɾ ࣔ͠ɼҎԼɼಛʹ໌ݶ͍ͳ͠هΓɼશϓϩάϥϜͷฏۉ ϑΝΠϧͷసૹʹΑͬͯɼϥΠτɾεΧογϡɾόοϑΝ Λ݁Ռͱͯࣔ͢͠ɽଞͷओཁͳύϥϝʔλʔΛද 1 ʹ ͷϦʔυɾϙʔτ͕ͯ͠߹ڝετʔϧ͕ൃੜׂͨ͠߹Λࣔ ࣔ͢ɽ ͢ɽਤ 4 ͷԣ࣠ಉ༷ʹϥΠτɾεΧογϡɾόοϑΝͷ ͞ɼॎ࣠ɼετʔϧ͕ൃੜͨ͠ճΛɼ࣮ߦαΠΫϧ 4.2 ੑೳ ͜ͷઅͰɼϥΠτɾεΧογϡɾόοϑΝͷੑೳͷ ΛʹऔͬͨൺͰ͍ࣔͯ͠Δɽ ετʔϧͷൃੜϦʔυɾϙʔτ 1 Ͱे͘ɼ Өͱ·͍ͯͭʹڹΊΔɽϥΠτɾεΧογϡɾόοϑΝɼ ϥΠτɾεΧογϡɾόοϑΝΛϦϯάɾόοϑΝ࣮͢ ੑೳͷӨڹΛ࠷খ··ͨ͠ͱݶɼϝΠϯɾϨδελɾϑΝ Δ߹ͷϦʔυɾϙʔτখͯ͘͞ྑ͍͜ͱ͕͔Δɽ ΠϧͷॻࠐΈΛݮগͤ͞Δ͜ͱΛඪͱ͓ͯ͠Γɼݦஶ ͜͜ͰɼϑΥϫʔσΟϯάͷൃੜ͕͍ϥΠτɾεΧο ͳੑೳԼ͕ΈΒΕͳ͍͜ͱ͕ظͰ͋Δɽ γϡɾόοϑΝ:8 Ͱ࠷ετʔϧൃੜ͕ߴ͍ͷɼϝ ޙड़ͷ݁Ռ͔ΒɼϦʔυɾϙʔτ࠷খͷ 1ɼϥΠ ΠϯɾϨδελɾϑΝΠϧͷॻࠐΈൃੜ͕ߴ͘ɼϝΠ τɾεΧογϡɾόοϑΝͷۭ͖࠷খͷ 1 ͰɼIPC ϯɾϨδελɾϑΝΠϧॻࠐΈͷͨΊͷಡग़͕͠ൺֱతଟ 2%͔͠Լͤͣɼ΄ͱΜͲӨڹΛ༩͑ͳ͍͜ͱ͕͔ͬͨɽ ͍ͨΊͱߟ͑ΒΕΔɽ ϥΠτɾεΧογϡɾόοϑΝͰੑೳʹӨڹΛ༩͑Δཁ ૉͱͯ͠ߟྀ͞ΕΔͷɼҎԼͷ 2 Ͱ͋Δɽ Ϧʔυɾϙʔτ ෆ͢ΔͱϝΠϯɾϨδελɾϑΝΠ ϧͱϑΥϫʔσΟϯά͕িಥͯ͠ετʔϧΛൃੜ 4.2.2 ϥΠτىҼετʔϧ ϥΠτɾεΧογϡɾόοϑΝͷۭ͖͕Ө͢ڹΔͱߟ ͑ΒΕΔɼϥΠτىҼετʔϧʹ͍ͭͯɼਤ 5 ʹ݁ՌΛ ࣔ͢ɽ ϥΠτɾεΧογϡɾόοϑΝͷۭ͖ ෆ͢ΔͱҰ࣌ ਤ 5 ͷԣ࣠ϥΠτɾεΧογϡɾόοϑΝͷ͞ɼॎ తͳϥΠτͷϐʔΫͰϥΠτɾεΧογϡɾόοϑΝ ࣠ɼετʔϧ͕ൃੜͨ͠ճΛɼ࣮ߦαΠΫϧΛ ⓒ 2013 Information Processing Society of Japan 6 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report Ϯй WŽƌƚсϭ WŽƌƚсϮ WŽƌƚсϰ ϵϴй ϵϴй ϵϴй ϭϬϬй ϭϬϬй ϭϬϬй ϭϬϬй ϭϬϬй ϭϬϬй ϴϬй ┦ᑐ ┦ᑐ/W &ŽƌǁĂƌĚŝŶŐ㉳ᅉ ㉳ᅉ^ƚĂůů⋡ ⋡;йͿ ㉳ᅉ ϭϬϬй ϭй ϲϬй ϰϬй ϮϬй Ϭй ϭ Ϭй ϴ ਤ 4 ϭϲ Ϯϰ ϯϮ t^㛗 㛗 ϰϴ ϲϰ ϰ ϭ Ϯ ϰ ϭ Ϯ ϰ WŽƌƚсϭ WŽƌƚсϮ WŽƌƚсϰ ✵䛝䜶䞁䝖䝸ᩘͬୗ 䝸䞊䝗䝫䞊䝖ᩘ ୖ͗t^✵䛝䜶䞁䝖䝸ᩘ ✵䛝䜶䞁䝖䝸ᩘ ୗ͗t^䝸䞊䝗䝫䞊䝖ᩘ ϵϲ ਤ 6 ϑΥϫʔσΟϯάʹΑΔετʔϧൃੜ Ϯ ϦʔυɾϙʔτɼϥΠτɾεΧογϡɾόοϑΝͷۭ͖Λม ͑ͨ߹ͷ IPC ͷมԽ tƌŝƚĞ㉳ᅉ ㉳ᅉ^ƚĂůů⋡ ⋡;йͿ ㉳ᅉ ϭ͘ͲϬϯ ϑΝͰɼϥΠτൃੜ 18%·ͰԼ͕ΓɼϥΠτిྗ ϭ͘ͲϬϰ 21%ʹ͞ݮΕΔ͜ͱ͕͔ͬͨɽ ^ƉĂĐĞсϭ ^ƉĂĐĞсϮ ^ƉĂĐĞсϰ ϭ͘ͲϬϱ ଓ͘ 4.3.1 ͰϥΠτɾεΧογϡɾόοϑΝʹΑΔϥ ΠτͷޮݮՌΛࣔ͠ɼ4.3.2 Ͱɼͦͷ݁Ռ͔ΒϥΠτɾ ϭ͘ͲϬϲ εΧογϡɾόοϑΝͷϥΠτిྗޮݮՌΛੵݟͬͨ աఔΛࣔ͢ɽ ϭ͘ͲϬϳ ͳ͓ɼલઅͷݕ౼ͷ݁ՌɼϥΠτɾεΧογϡɾόοϑΝ ϭ͘ͲϬϴ ϴ ϭϲ Ϯϰ ϯϮ t^㛗 㛗 ϰϴ ਤ 5 ϥΠτʹΑΔετʔϧൃੜ ϲϰ ϵϲ ʹऔͬͨൺͰ͍ࣔͯ͠Δɽ ϥΠτɾεΧογϡɾόοϑΝͷۭ͖ 1 Ͱ 1E-3 Ҏ Լͱेʹετʔϧ͘ɼϥΠτɾεΧογϡɾόο ͷϦʔυɾϙʔτ: 1,2,4ɼϥΠτɾεΧογϡɾόοϑΝ ͷۭ͖: 1,2,4 ͷൣғͰɼੑೳʹେ͖ͳӨڹݟΒΕͳ͍ͱ அͰ͖ͨͨΊɼຊઅͰɼશͯɼ໘ੵ͕࠷খͱͳΔϦʔ υɾϙʔτ: 1ɼϥΠτɾεΧογϡɾόοϑΝͷۭ͖: 1 ͷ݁ՌΛ͍ࣔͯ͠Δɽ 4.3.1 ϝΠϯɾϨδελɾϑΝΠϧͷϥΠτൃੜ ਤ 7 ʹɼϥΠτɾεΧογϡɾόοϑΝ͔ΒɼϝΠϯɾ ϑΝͷۭ͖Λ 2 ʹ૿͢ͱ͞Βʹετʔϧݮগ͢Δɽ ϨδελɾϑΝΠϧͷϥΠτͷൃੜΛࣔ͢ɽਤ 7 ͷԣ 4.2.3 IPC ࣠ɼϥΠτɾεΧογϡɾόοϑΝͷ͞ɼॎ࣠ɼϥΠ 4.2.1 ͼٴ4.2.2 Ͱߟͨ͜͠ΕΒͷετʔϧɼ࠷ऴత τɾεΧογϡɾόοϑΝͷॻࠐΈΛͱͨ͠ɼϝ ʹ IPC ͷԼͱ͍͏ͰܗϓϩηοαͷੑೳΛԼͤ͞Δ ΠϯɾϨδελɾϑΝΠϧͷॻࠐΈΛ͍ࣔͯ͠Δɽϥ ͱߟ͑ΒΕΔɽ Πτ͕ҰϥΠτɾεΧογϡɾόοϑΝͰ௵͞Εͣʹશ ਤ 6 ʹɼϥΠτɾεΧογϡɾόοϑΝͷϦʔυɾϙʔ ͯϝΠϯɾϨδελɾϑΝΠϧʹॻ͖ࠐ·Εͨ߹ʹɼϥ τͱϥΠτɾεΧογϡɾόοϑΝͷۭ͖Λม͑ͨ Πτͷൃੜ 100%ͱͳΓɼখ͍͞΄Ͳྑ͍݁ՌͰ͋Δɽ ߹ͷ IPC ͷӨڹΛࣔ͢ɽਤ 6 ͷԣ࣠ɼͦΕͧΕ 3 ௨Γ ਤ 7 ͔ΒɼϥΠτɾεΧογϡɾόοϑΝ͕͘ͳΔ Ͱ͋ΔϦʔυɾϙʔτͱϥΠτɾεΧογϡɾόοϑΝ ΄ͲɼϥΠτൃੜԼ͕Δ͜ͱ͕Θ͔Δɽ͜ΕɼϥΠ ͷ߹ͤ 9 ௨ΓͰ͋Γɼॎ࣠Ϧʔυɾϙʔτ:4, ϥΠ τɾεΧογϡɾόοϑΝࡏதʹ্ॻ͖͕ൃੜ͢Δ֬ τɾεΧογϡɾόοϑΝͷۭ͖:4 ͷ࠷ετʔϧ͕গͳ ͕ߴ·ΔͨΊͰ͋Δͱߟ͑ΒΕΔɽ͔͠͠ɼൺֱతখ༰ྔ ͍݅Λ 100%ͱͨ͠૬ର IPC Ͱ͋Δɽ ͷ͞ 16 ͷϥΠτɾεΧογϡɾόοϑΝͰɼϥΠτൃ ਤ 6 ͔Βɼ࠷େͰ IPC 2%͔͠ԼͤͣɼϥΠτɾ εΧογϡɾόοϑΝͷϦʔυɾϙʔτ: 1,2,4ɼϥΠτɾ εΧογϡɾόοϑΝͷۭ͖: 1,2,4 ͷൣғͰେ͖ͳӨڹ ݟΒΕͳ͍ͱ͑ݴΔɽ ੜ 18%·ͰԼ͕͍ͬͯΔɽ 4.3.2 ϥΠτిྗ ͜ͷ݁ՌΛॻࠐΈిྗʹ݁ͨ͠ࢉՌΛਤ 8 ʹࣔ͢ɽ ਤ 8 ͷԣ࣠ɼϥΠτɾεΧογϡɾόοϑΝͷ͞ɼ ॎ࣠ϥΠτɾεΧογϡɾόοϑΝಋೖલͷϝΠϯɾϨ 4.3 ϥΠτిྗ δελɾϑΝΠϧͷॻࠐΈిྗΛ 100%ͱͨ͠ɼϝΠϯɾ ͜ͷઅͰɼϥΠτిྗʹ͍ͭͯ·ͱΊΔɽޙड़ͷ݁Ռ ϨδελɾϑΝΠϧͱϥΠτɾεΧογϡɾόοϑΝͷॻ ͔Βɼൺֱతখ༰ྔͷ͞ 16 ͷϥΠτɾεΧογϡɾόο ࠐΈిྗͷ߹ྗిܭΛද͍ͯ͠Δɽਤ 8 ͔Βɼ͞ 16 ͷ ⓒ 2013 Information Processing Society of Japan 7 Vol.2013-ARC-206 No.3 2013/7/31 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report ϭϬϬй ϵϬй ϴϬй ϳϬй ϲϬй ϱϬй ϰϬй ϯϬй ϮϬй ϭϬй Ϭй ϯϬй Ϯϱй DZ&᭩㎸䜏 ᭩㎸䜏 ᭩㎸䜏⋡ ⋡ DZ&᭩㎸䜏 ᭩㎸䜏 ᭩㎸䜏⋡ ⋡ ϮϬй ϭϬй ϱй Ϭй džĂůĂŶĐďŵŬ ĂƐƚĂƌ ŽŵŶĞƚ ŚϮϲϰ ůŝďƋƵĂŶƚƵŵ ƐũĞŶŐ ϵϲ ŚŵŵĞƌ ϲϰ ŐŽďŵŬ ϰϴ ŵĐĨ ϯϮ t^㛗 㛗 ŐĐĐ Ϯϰ ďnjŝƉϮ ϭϲ ƉĞƌůďĞŶĐŚ ϴ ਤ 7 ϭϱй ϥΠτɾεΧογϡɾόοϑΝ͔ΒϝΠϯɾϨδελɾϑΝΠ ਤ 9 ϧͷϥΠτൃੜ ϱϬй ϰϱй ϰϬй ϯϱй ϯϬй Ϯϱй ϮϬй ϭϱй ϭϬй ϱй Ϭй ϓϩάϥϜʹΑΔϥΠτൃੜͷҧ͍ 5. ͓ΘΓʹ ᭩㎸䜏㟁ຊẚ t^᭩㎸䜏㟁ຊ ຊߘͰɼϨδελɾΩϟογϡɾγεςϜʹ͓͍ͯɼ DZ&᭩㎸䜏㟁ຊ ϥΠτσʔλΛϥΠτɾεΧογϡɾόοϑΝʹҰ୴ஔ͖ɼ ϥΠτɾεΧογϡɾόοϑΝࡏதʹൃੜ͢ΔཧϨδ ελͷΦʔόʔϥΠτΛར༻ͯ͠ɼϝΠϯɾϨδελɾ ϑΝΠϧͷॻࠐΈΛ͢ݮΔํ๏ΛఏҊͨ͠ɽγϛϡ Ϩʔγϣϯͷ݁ՌʹΑΕɼཧϨδελ 128 ʹରͯ͠ɼ ϦϯάɾόοϑΝߏͷ͞ 16 ͷϥΠτɾεΧογϡɾ ϴ ϭϲ Ϯϰ ϯϮ t^㛗 㛗 ϰϴ ϲϰ ϵϲ όοϑΝͰॻࠐΈΛ 18%ͱɼޮՌతʹ͢ݮΔ͜ͱ͕Մ ೳͰ͋ͬͨɽ͜ͷ߹ͷϥΠτిྗɼϝΠϯɾϨδελɾ ਤ 8 ϥΠτɾεΧογϡɾόοϑΝͷಋೖʹΑΔϥΠτిྗͷมԽ ϥΠτɾεΧογϡɾόοϑΝͰɼϥΠτɾεΧογϡɾ όοϑΝಋೖલͷ 21%ʹ͖ͰݮΔ͜ͱ͕ಡΈऔΕΔɽ ਤ 8 ɼҎԼʹࣔ͢ࢉͰࣜࢉܭग़ͨ͠ɽ ϑΝΠϧͱϥΠτɾεΧογϡɾόοϑΝΛ߹Θͤͯɼ ैདྷͷ 21%ʹ͖ͰݮΔ͜ͱ͕͔ͬͨɽ ࠓޙͷ՝Λ 4 ड़Δɽ ୈҰʹɼϥΠτɾεΧογϡɾόοϑΝΛγϑτɾϨδ ελߏͱ͢Δ͜ͱͷݕ౼͕͛ڍΒΕΔɽϥΠτɾεΧο MRF ిྗൺ = ϥΠτൃੜ 2 WSB ిྗൺ = ΤϯτϦൺ · ϙʔτൺ ͜ͷͰࢉܭɼϝΠϯɾϨδελɾϑΝΠϧͷϥΠτɾ γϡɾόοϑΝ͕උ͑Δ͖ΞΫηεࣗ༝ɼग़ೖΓޱ Λ 1 ۭ͖ͭͣͭ࣋ͪΛ͍ͳ͞ڐ७ਮͳγϑτɾϨδελ ੍͕͗͢ڧɼϥϯμϜΞΫηεՄೳͳ SRAM Ͱߏ͞ ϙʔτϕʔεɾγεςϜͷ 2 ͔Βݮগͤͣɼ1 ϥΠτ͋ ΕͨϦϯάɾόοϑΝͷࣗ༝ඞཁҎ্ͱߟ͑ΒΕΔɽ ͨΓΤωϧΪʔݮগ͠ͳ͍લఏͱ͍ͯ͠Δ͕ɼԾʹɼϥ ैͬͯɼదͳ੍Λ՝͢͜ͱͰɼճ࿏ߏΛ؆ૉԽ͢Δ Πτͷʹݮ͍ɼϝΠϯɾϨδελɾϑΝΠϧͷϥΠτɾ ͜ͱ͕Ͱ͖ΕɼϥΠτిྗͷ͞ΒͳΔ͕ݮՄೳ͕ظ ϙʔτΛݮগͤ͞Δ͜ͱ͕ग़དྷΕɼϝΠϯɾϨδελɾ Ͱ͖Δɽ ϑΝΠϧͷిྗ͞Βʹ͢ݮΔ͜ͱ͕Ͱ͖Δɽ ୈೋʹɼཧϨδελͷଟ͍ϚϧνεϨουɾϓϩ ηοαͷରԠ͕͛ڍΒΕΔɽϚϧνεϨουɾϓϩηο 4.4 ϕϯνϚʔΫɾϓϩάϥϜʹΑΔϥΠτൃੜͷҧ͍ αͰɼεϨουʹରԠͯ͠αΠζͷେ͖͍ཧϨδ ࠷ʹޙɼϓϩάϥϜʹΑΔϥΠτൃੜͷҧ͍Λɼਤ 9 ελɾϑΝΠϧΛ࣋ͭɽ͜ͷͨΊɼϝΠϯɾϨδελɾϑΝ ʹࣔ͢ɽ͍ͣΕɼϥΠτɾεΧογϡɾόοϑΝͷ ΠϧͷॻࠐΈిྗ͕େ͖͘ɼϥΠτɾεΧογϡɾόο ͞:16ɼ໘ੵ͕࠷খͱͳΔϦʔυɾϙʔτ: 1ɼϥΠτɾ ϑΝͰΑΓେ͖ͳޮՌ͕ಘΒΕΔ͜ͱ͕ظ͞ΕΔɽ εΧογϡɾόοϑΝͷۭ͖: 1 ͷ݁ՌͰ͋Δɽϓϩά ϥϜຖʹϝΠϯɾϨδελɾϑΝΠϧॻࠐΈҟͳΓɼ libquantum ͰϝΠϯɾϨδελɾϑΝΠϧͷॻࠐΈ ΄ͱΜͲൃੜͤͣɼhmmer ͰൺֱతॻࠐΈൃੜ͕ߴ ͍ɽϓϩάϥϜʹΑΔࠩҟɼࠓޙͷݕ౼՝Ͱ͋Δɽ ⓒ 2013 Information Processing Society of Japan ୈࡾʹɼϓϩάϥϜʹΑΔϝΠϯɾϨδελɾϑΝΠϧ ॻࠐΈͷࠩʹ͍ͭͯௐ͕ࠪඞཁͰ͋Δɽ ࠷ʹޙɼϝΠϯɾϨδελɾϑΝΠϧͷϥΠτɾϙʔτ Λߋʹ͖ͰݮΔ͔ͷݕ౼͕ඞཁͰ͋Δɽ ँࣙ ຊจͷڀݚҰ෦ɼจ෦ՊֶলՊֶڀݚඅิॿ 8 ใॲཧֶձڀݚใࠂ IPSJ SIG Technical Report Vol.2013-ARC-206 No.3 2013/7/31 ۚ No. 23300013 ʹΑΔɽ ࢀߟจݙ [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Shioya, R., Horio, K., Goshima, M. and Sakai, S.: Register Cache System Not for Latency Reduction Purpose, 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO), pp. 301 –312 (online), DOI: 10.1109/MICRO.2010.43 (2010). ɹɼాݾɼԘ୩྄ଠɼޒౡਖ਼༟ɼࡔҪमҰɿϨ δελɾΩϟογϡͷϚϧνεϨουɾϓϩηοαͷ ద༻ɼใॲཧֶձୈ 75 ճ શࠃେձ (2013). ɹɼాݾɼԘ୩྄ଠɼޒౡਖ਼༟ɼࡔҪमҰɿ ϚϧνεϨουɾϓϩηοαʹ͓͚ΔϨδελɾΩϟο γϡɾγεςϜͷධՁɼใॲཧֶձڀݚใࠂ (ൃද༧ఆ) (2013). Yuffe, M., Knoll, E., Mehalel, M., Shor, J. and Kurts, T.: A fully integrated multi-CPU, GPU and memory controller 32nm processor, 2011 IEEE International Solid-State Circuits Conference(ISSCC). Digest of Technical Papers, pp. 264 –266 (online), DOI: 10.1109/ISSCC.2011.5746311 (2011). Agarwal, A., Hsu, S., Mathew, S., Anders, M., Kaul, H., Sheikh, F. and Krishnamurthy, R.: A 32nm 8.3GHz 64-entry x 32b variation tolerant near-threshold voltage register file, 2010 IEEE Symposium on VLSI Circuits (VLSIC), pp. 105 –106 (online), DOI: 10.1109/VLSIC.2010.5560334 (2010). Zhang, K., Bhattacharya, U., Chen, Z., Hamzaoglu, F., Murray, D., Vallepalli, N., Wang, Y., Zheng, B. and Bohr, M.: A 3-GHz 70MB SRAM in 65nm CMOS technology with integrated column-based dynamic power supply, 2005 IEEE International SolidState Circuits Conference(ISSCC). Digest of Technical Papers., pp. 474 –611 Vol. 1 (online), DOI: 10.1109/ISSCC.2005.1494075 (2005). Yamaoka, M., Maeda, N., Shinozaki, Y., Shimazaki, Y., Nii, K., Shimada, S., Yanagisawa, K. and Kawahara, T.: Low-power embedded SRAM modules with expanded margins for writing, 2005 IEEE International Solid-State Circuits Conference(ISSCC). Digest of Technical Papers., pp. 480–611 Vol. 1 (online), DOI: 10.1109/ISSCC.2005.1494078 (2005). Yeager, K.: The Mips R10000 superscalar microprocessor, Micro, IEEE, Vol. 16, No. 2, pp. 28–41 (online), DOI: 10.1109/40.491460 (1996). Farrell, J. and Fischer, T. C.: Issue logic for a 600-MHz out-of-order execution microprocessor, Solid-State Circuits, IEEE Journal of, Vol. 33, No. 5, pp. 707–712 (online), DOI: 10.1109/4.668985 (1998). Hyodo, K. and Iwamoto, K.: Energy-efficient preexecution techniques in two-step physical register deallocation, IEICE transactions on information and systems, Vol. 92, No. 11, pp. 2186–2195 (2009). Ԙ୩྄ଠɼޒౡਖ਼༟ɼࡔҪमҰɿϓϩηοαɾγϛϡϨʔ λ ʮ್َʯͷઃ࣮ͱܭɼઌਐతجࢉܭ൫γεςϜγ ϯϙδϜ SACSISɼpp. 120–121 (2009). ⓒ 2013 Information Processing Society of Japan 9