กลับไปหน้าบทความ

อ่าน 7 นาที

ส่วนขยายการซิงโครไนซ์ธุรกรรม

ส่วนขยายการซิงโครไน ซ์ธุรกรรม ( TSX ) หรือที่เรียกว่าคำสั่งส่วนขยายการซิงโครไนซ์ธุรกรรมใหม่ ( TSX -NI ) เป็นส่วนขยายของสถาปัตยกรรมชุดคำสั่งx86 (ISA) ที่เพิ่ม การสนับสนุน...

ส่วนขยายการซิงโครไนซ์ธุรกรรม

ส่วนขยายการซิงโครไน ซ์ธุรกรรม ( TSX ) หรือที่เรียกว่าคำสั่งส่วนขยายการซิงโครไนซ์ธุรกรรมใหม่ ( TSX -NI ) เป็นส่วนขยายของสถาปัตยกรรมชุดคำสั่งx86 (ISA) ที่เพิ่ม การสนับสนุน หน่วยความจำธุรกรรม ฮาร์ดแวร์ ซึ่งช่วยเร่งความเร็วในการทำงานของซอฟต์แวร์แบบมัลติเธรดผ่านการละเว้นการล็อก จากการทดสอบประสิทธิภาพต่างๆ พบว่า TSX/TSX-NI สามารถเร่งความเร็วในการทำงานของแอปพลิเคชันได้ประมาณ 40% ในงานเฉพาะบางอย่าง และประมวลผลธุรกรรมฐานข้อมูลต่อวินาที (TPS) ได้มากขึ้น 4-5 เท่า [ 1 ] [ 2 ] [ 3 ] [ 4 ]

TSX/TSX-NI ได้รับการบันทึกโดยIntelในเดือนกุมภาพันธ์ 2012 และเปิดตัวในเดือนมิถุนายน 2013 บนไมโครโปรเซสเซอร์ Intel บางรุ่น ที่ใช้สถาปัตยกรรมHaswell [ 5 ] [ 6 ] [ 7 ] โปรเซสเซอร์ Haswell ที่ต่ำกว่า 45xx รวมถึง SKU ซีรี่ส์ R และซีรี่ส์ K (ที่มีตัวคูณปลดล็อค) ไม่รองรับ TSX/TSX-NI [ 8 ]ในเดือนสิงหาคม 2014 Intel ประกาศข้อบกพร่องในการใช้งาน TSX/TSX-NI บนซีพียู Haswell, Haswell-E, Haswell-EP และBroadwell รุ่นแรกๆ ซึ่งส่งผลให้ต้องปิดใช้งานคุณสมบัติ TSX/TSX-NI บนซีพียูที่ได้รับผลกระทบผ่านการอัปเดตไมโครโค้ด[ 9 ] [ 10 ]

ในปี 2016 มีการค้นพบ การโจมตีแบบกำหนดเวลาช่องทางด้านข้าง โดยการใช้ประโยชน์จากวิธีที่ TSX/TSX-NI จัดการข้อผิดพลาดในการทำธุรกรรม (เช่นข้อผิดพลาดของเพจ ) เพื่อทำลายการสุ่มเค้าโครงพื้นที่ที่อยู่เคอร์เนล (KASLR) บนระบบปฏิบัติการหลักทั้งหมด[ 11 ] ในปี 2021 Intel ได้ออกการอัปเดตไมโครโค้ดที่ปิดใช้งานคุณสมบัติ TSX/TSX-NI บนซีพียูรุ่นตั้งแต่SkylakeถึงCoffee Lakeเพื่อเป็นการบรรเทาปัญหาด้านความปลอดภัยที่ค้นพบ[ 12 ]

แม้ว่า TSX/TSX-NI จะไม่ได้รับการสนับสนุนในโปรเซสเซอร์ระดับเดสก์ท็อปอีกต่อไป แต่ก็ยังคงได้รับการสนับสนุนใน ตระกูลโปรเซสเซอร์ Xeon (อย่างน้อยก็ในรุ่นเฉพาะ ตั้งแต่รุ่นที่ 6 เป็นต้นไป) [ 13 ]

การสนับสนุนการจำลอง TSX/TSX-NI มีให้เป็นส่วนหนึ่งของ Intel Software Development Emulator [ 14 ] นอกจากนี้ยังมีการสนับสนุนการจำลอง TSX/TSX-NI แบบทดลองในQEMUเวอร์ชันแยก[ 15 ]

คุณสมบัติ

TSX/TSX-NI มีอินเทอร์เฟซซอฟต์แวร์สองแบบสำหรับการกำหนดขอบเขตโค้ดสำหรับการดำเนินการแบบธุรกรรมHardware Lock Elision (HLE) เป็นอินเทอร์เฟซแบบอิงตามคำนำหน้าคำสั่งที่ออกแบบมาให้เข้ากันได้กับโปรเซสเซอร์ที่ไม่มีการสนับสนุน TSX/TSX-NI Restricted Transactional Memory (RTM) เป็นอินเทอร์เฟซชุดคำสั่งใหม่ที่ให้ความยืดหยุ่นมากขึ้นสำหรับโปรแกรมเมอร์[ 16 ]

TSX/TSX-NI ช่วยให้สามารถดำเนินการส่วนของโค้ดธุรกรรมได้อย่างมองโลกในแง่ดี ฮาร์ดแวร์จะตรวจสอบเธรดหลายเธรดเพื่อหาการเข้าถึงหน่วยความจำที่ขัดแย้งกัน ในขณะเดียวกันก็จะยกเลิกและย้อนกลับธุรกรรมที่ไม่สามารถดำเนินการให้เสร็จสมบูรณ์ได้สำเร็จ มีกลไกให้ซอฟต์แวร์ตรวจจับและจัดการธุรกรรมที่ล้มเหลว[ 16 ]

ฮาร์ดแวร์ล็อค Elision

Hardware Lock Elision (HLE) เพิ่มคำนำหน้าคำสั่งใหม่สองคำ คือXACQUIREและXRELEASEคำนำหน้าทั้งสองนี้ใช้รหัสคำสั่งซ้ำของ คำนำหน้า REPNE/ ที่มีอยู่ REPE( F2H/ F3H) บนโปรเซสเซอร์ที่ไม่รองรับ HLE คำนำหน้า REPNE/ REPEจะถูกละเว้นในคำสั่งที่XACQUIRE/ XRELEASEถูกต้อง จึงทำให้สามารถใช้งานร่วมกันได้กับเวอร์ชันก่อนหน้า[ 17 ]

คำXACQUIREแนะนำคำนำหน้าสามารถใช้ได้เฉพาะกับคำสั่งต่อไปนี้ที่มีLOCKคำนำหน้าอย่างชัดเจน: ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, และ คำสั่ง XCHGนี้XCHGสามารถใช้ได้โดยไม่ต้องมีLOCKคำนำหน้าเช่นกัน

คำนำXRELEASEหน้าคำแนะนำสามารถใช้ได้ทั้งกับคำแนะนำที่ระบุไว้ข้างต้น และกับคำแนะนำ MOV mem, regอื่นๆ ด้วยMOV mem, imm

HLE อนุญาตให้ดำเนินการส่วนวิกฤตได้อย่างมองโลกในแง่ดีโดยการข้ามการเขียนไปยังล็อก ทำให้ล็อกนั้นดูเหมือนว่างสำหรับเธรดอื่น การทำธุรกรรมล้มเหลวจะส่งผลให้การดำเนินการเริ่มต้นใหม่จากXACQUIREคำสั่งที่มีคำนำหน้า แต่จะถือว่าคำสั่งนั้นXACQUIREไม่มีคำนำหน้าอยู่

กล่าวอีกนัยหนึ่ง การหลีกเลี่ยงการล็อกผ่านการดำเนินการแบบธุรกรรมจะใช้ธุรกรรมในหน่วยความจำเพื่อเป็นเส้นทางที่รวดเร็วที่สุดเท่าที่จะเป็นไปได้ ในขณะที่เส้นทางที่ช้ากว่า (เส้นทางสำรอง) ยังคงเป็นการล็อกแบบปกติ

หน่วยความจำธุรกรรมที่จำกัด

หน่วยความจำธุรกรรมแบบจำกัด (Restricted Transactional Memory หรือ RTM) เป็นวิธีการใช้งานทางเลือกแทน HLE ซึ่งช่วยให้นักเขียนโปรแกรมมีความยืดหยุ่นในการระบุเส้นทางการทำงานของโค้ดสำรองที่จะถูกเรียกใช้เมื่อไม่สามารถดำเนินการธุรกรรมได้อย่างสำเร็จ แตกต่างจาก HLE RTM ไม่สามารถใช้งานร่วมกับโปรเซสเซอร์ที่ไม่รองรับได้ เพื่อให้สามารถใช้งานร่วมกับโปรเซสเซอร์รุ่นเก่าได้ โปรแกรมจะต้องตรวจสอบว่า CPU รองรับ RTM ก่อนที่จะใช้คำสั่งใหม่

RTM เพิ่มคำสั่งใหม่สามคำสั่ง ได้แก่XBEGIN, XENDและXABORTคำ สั่ง XBEGINและXENDระบุจุดเริ่มต้นและจุดสิ้นสุดของพื้นที่โค้ดธุรกรรมXABORTคำสั่ง ยกเลิกธุรกรรมโดยชัดเจน ความล้มเหลวของธุรกรรมจะเปลี่ยนเส้นทางโปรเซสเซอร์ไปยังเส้นทางโค้ดสำรองที่ระบุโดยXBEGINคำสั่ง โดยสถานะการยกเลิกจะถูกส่งกลับไปยังEAXรีจิสเตอร์

ตำแหน่งบิตของรีจิสเตอร์ EAXความหมาย
0ตั้งค่าหากการยกเลิกเกิดจากXABORTคำสั่ง
1หากตั้งค่าไว้ การทำธุรกรรมอาจสำเร็จในการลองใหม่ บิตนี้จะเป็นค่าว่างเสมอหากบิต 0 ถูกตั้งค่าไว้
2ตั้งค่าหากโปรเซสเซอร์เชิงตรรกะอื่นขัดแย้งกับที่อยู่หน่วยความจำที่เป็นส่วนหนึ่งของธุรกรรมที่ถูกยกเลิก
3ตั้งค่าหากบัฟเฟอร์ภายในล้น
4ตั้งค่าว่ามีการเรียกใช้เบรกพอยต์สำหรับการดีบักหรือไม่
5ตั้งค่าหากมีการยกเลิกเกิดขึ้นระหว่างการดำเนินการของธุรกรรมแบบซ้อนกัน
23:6ที่สงวนไว้.
31:24XABORTอาร์กิวเมนต์ (ใช้ได้เฉพาะเมื่อบิต 0 ถูกตั้งค่า มิฉะนั้นจะสงวนไว้)

XTESTคำแนะนำ

TSX/TSX-NI มีคำสั่งใหม่XTESTที่ตรวจสอบว่าโปรเซสเซอร์กำลังประมวลผลส่วนธุรกรรมอยู่หรือไม่ คำสั่งนี้ได้รับการสนับสนุนโดยโปรเซสเซอร์หากรองรับ HLE หรือ RTM หรือทั้งสองอย่าง

การติดตามที่อยู่การระงับการโหลด TSX

TSX/TSX-NI Suspend Load Address Tracking (TSXLDTRK) เป็นส่วนขยายของชุดคำสั่งที่อนุญาตให้ปิดใช้งานการติดตามการโหลดจากหน่วยความจำชั่วคราวในส่วนของโค้ดภายในขอบเขตธุรกรรม คุณสมบัตินี้ขยายมาจาก HLE และ RTM และต้องตรวจจับการรองรับในโปรเซสเซอร์แยกต่างหาก

TSXLDTRK นำเสนอคำสั่งใหม่สองคำสั่ง คือXSUSLDTRKและXRESLDTRKสำหรับระงับและดำเนินการต่อการติดตามที่อยู่การโหลดตามลำดับ ในขณะที่การติดตามถูกระงับ การโหลดใดๆ จากหน่วยความจำจะไม่ถูกเพิ่มเข้าไปในชุดการอ่านของธุรกรรม ซึ่งหมายความว่า เว้นแต่ว่าตำแหน่งหน่วยความจำเหล่านี้จะถูกเพิ่มเข้าไปในชุดการอ่านหรือการเขียนของธุรกรรมภายนอกขอบเขตการระงับ การเขียนที่ตำแหน่งเหล่านี้โดยเธรดอื่นๆ จะไม่ทำให้ธุรกรรมถูกยกเลิก การระงับการติดตามที่อยู่การโหลดสำหรับส่วนหนึ่งของโค้ดภายในขอบเขตธุรกรรมจะช่วยลดปริมาณหน่วยความจำที่ต้องติดตามสำหรับความขัดแย้งในการอ่านและเขียน และด้วยเหตุนี้จึงเพิ่มโอกาสในการยืนยันธุรกรรมสำเร็จ

การดำเนินการ

ข้อกำหนด TSX/TSX-NI ของ Intel อธิบายถึงวิธีการเปิดเผยหน่วยความจำธุรกรรมให้กับโปรแกรมเมอร์ แต่ไม่ได้ให้รายละเอียดเกี่ยวกับการใช้งานหน่วยความจำธุรกรรมจริง[ 18 ] Intel ระบุในคู่มือสำหรับนักพัฒนาและคู่มือการเพิ่มประสิทธิภาพว่า Haswell รักษาทั้งชุดการอ่านและชุดการเขียนที่ระดับความละเอียดของแคชไลน์ โดยติดตามที่อยู่ในแคชข้อมูล L1 ของโปรเซสเซอร์[ 19 ] [ 20 ] [ 21 ] [ 22 ] Intel ยังระบุด้วยว่าความขัดแย้งของข้อมูลจะถูกตรวจพบผ่านโปรโตคอลความสอดคล้องของแคช[ 20 ]

แคชข้อมูล L1 ของ Haswell มีความสัมพันธ์แปด ซึ่งหมายความว่าในการใช้งานนี้ การดำเนินการธุรกรรมที่เขียนไปยังตำแหน่งที่แตกต่างกันเก้าตำแหน่งที่แมปกับชุดแคชเดียวกันจะถูกยกเลิก อย่างไรก็ตาม เนื่องจากการใช้งานสถาปัตยกรรมระดับไมโคร นี่ไม่ได้หมายความว่าการเข้าถึงชุดเดียวกันน้อยลงจะรับประกันได้ว่าจะไม่ถูกยกเลิก นอกจากนี้ ในการกำหนดค่า CPU ที่มีเทคโนโลยี Hyper-Threadingแคช L1 จะถูกใช้ร่วมกันระหว่างสองเธรดบนคอร์เดียวกัน ดังนั้นการดำเนินการในโปรเซสเซอร์เชิงตรรกะที่เป็นพี่น้องของคอร์เดียวกันอาจทำให้เกิดการขับไล่[ 20 ]

งานวิจัยอิสระชี้ให้เห็นว่าหน่วยความจำธุรกรรมของ Haswell มีแนวโน้มที่จะเป็นระบบอัปเดตแบบเลื่อนออกไปโดยใช้แคชต่อคอร์สำหรับข้อมูลธุรกรรมและจุดตรวจสอบรีจิสเตอร์[ 18 ] กล่าวอีกนัยหนึ่ง Haswell มีแนวโน้มที่จะใช้ระบบหน่วยความจำธุรกรรมแบบแคช เนื่องจากเป็นทางเลือกในการใช้งานที่มีความเสี่ยงน้อยกว่ามาก ในทางกลับกันSkylake ของ Intel หรือรุ่นต่อๆ ไปอาจรวมวิธีการแบบแคชนี้เข้ากับบัฟเฟอร์การเรียงลำดับหน่วยความจำ (MOB) เพื่อจุดประสงค์เดียวกัน และอาจให้หน่วยความจำธุรกรรมแบบหลายเวอร์ชันที่เหมาะสมกับการทำงาน แบบมัลติเธรดเชิงคาดการณ์มากกว่า[ 23 ]

ประวัติและข้อผิดพลาด

บั๊ก Haswell และ Broadwell (2014)

ในเดือนสิงหาคม พ.ศ. 2557 Intel ประกาศว่ามีข้อบกพร่องในการใช้งาน TSX/TSX-NI บนซีพียู Haswell, Haswell-E, Haswell-EP และ Broadwell รุ่นแรกๆ ซึ่งส่งผลให้ต้องปิดใช้งานคุณสมบัติ TSX/TSX-NI บนซีพียูที่ได้รับผลกระทบผ่านการอัปเดตไมโครโค้ด[ 9 ] [ 10 ] [ 24 ] ข้อบกพร่องดังกล่าวได้รับการแก้ไขในรุ่น F-0 ของซีพียู Core M-5Y70 Broadwell ที่เปิดใช้งาน vPro ในเดือนพฤศจิกายน พ.ศ. 2557 [ 25 ]

บั๊กดังกล่าวถูกค้นพบและรายงานในระหว่างการทำวิทยานิพนธ์ระดับปริญญาตรีในคณะวิศวกรรมไฟฟ้าและคอมพิวเตอร์ของมหาวิทยาลัยเทคนิคแห่งชาติเอเธนส์[ 26 ]

บั๊ก Skylake (2018)

ในเดือนตุลาคม พ.ศ. 2561 Intel ได้เปิดเผยปัญหาการเรียงลำดับหน่วยความจำ TSX/TSX-NI ที่พบในโปรเซสเซอร์Skylake บางรุ่น [ 27 ]อันเป็นผลมาจากการอัปเดตไมโครโค้ด การสนับสนุน HLE จึงถูกปิดใช้งานใน CPU ที่ได้รับผลกระทบ และ RTM ได้รับการแก้ไขโดยการลดตัวนับประสิทธิภาพลงหนึ่งตัวเมื่อใช้งานนอกโหมด Intel SGXหรือโหมดการจัดการระบบ ( SMM ) ซอฟต์แวร์ระบบจะต้องปิดใช้งาน RTM อย่างมีประสิทธิภาพหรืออัปเดตเครื่องมือตรวจสอบประสิทธิภาพเพื่อไม่ให้ใช้ตัวนับประสิทธิภาพที่ได้รับผลกระทบ

ช่องโหว่ TAA (2021)

ในเดือนมิถุนายน พ.ศ. 2564 Intel ได้เผยแพร่การอัปเดตไมโครโค้ดที่ปิดใช้งาน TSX/TSX-NI เพิ่มเติมในโปรเซสเซอร์ Xeon และ Core รุ่นต่างๆ ตั้งแต่SkylakeไปจนถึงCoffee LakeและWhiskey Lakeเพื่อบรรเทาช่องโหว่ TSX Asynchronous Abort (TAA) การแก้ไขปัญหาลำดับหน่วยความจำก่อนหน้านี้ถูกลบออก[ 28 ]โดยค่าเริ่มต้น ด้วยไมโครโค้ดที่อัปเดตแล้ว โปรเซสเซอร์จะยังคงแสดงการสนับสนุน RTM แต่จะยกเลิกธุรกรรมเสมอ ซอฟต์แวร์ระบบสามารถตรวจจับโหมดการทำงานนี้และซ่อนการสนับสนุน TSX/TSX-NI จากCPUIDคำสั่ง ป้องกันไม่ให้แอปพลิเคชันตรวจจับ TSX/TSX-NI ซอฟต์แวร์ระบบอาจเปิดใช้งาน "โหมดการพัฒนาซอฟต์แวร์ที่ไม่รองรับ" ซึ่ง RTM ทำงานอย่างเต็มที่ แต่ในกรณีนี้ การใช้งาน RTM อาจมีปัญหาตามที่อธิบายไว้ก่อนหน้านี้ ดังนั้นจึงไม่ควรเปิดใช้งานโหมดนี้ในระบบการผลิต ในบางระบบ RTM ไม่สามารถเปิดใช้งานใหม่ได้เมื่อ SGX ทำงาน HLE จะถูกปิดใช้งานเสมอ

สถานะปัจจุบัน

ตามคู่มือสำหรับนักพัฒนาซอฟต์แวร์สถาปัตยกรรม Intel 64 และ IA-32 ฉบับเดือนพฤษภาคม 2020 เล่มที่ 1 บทที่ 2.5 สถาปัตยกรรมชุดคำสั่ง Intel และคุณสมบัติที่ถูกลบออก[ 19 ] HLE ถูกลบออกจากผลิตภัณฑ์ Intel ที่วางจำหน่ายในปี 2019 และหลังจากนั้น RTM ไม่ได้ถูกบันทึกว่าถูกลบออก อย่างไรก็ตาม โปรเซสเซอร์ไคลเอ็นต์ Intel เจเนอเรชั่นที่ 10 Comet LakeและIce Lakeซึ่งวางจำหน่ายในปี 2020 ไม่รองรับ TSX/TSX-NI [ 29 ] [ 30 ] [ 31 ] [ 32 ] [ 33 ]รวมถึงทั้ง HLE และ RTM เวอร์ชันวิศวกรรมของโปรเซสเซอร์ Comet Lake ยังคงรองรับ TSX/TSX-NI อยู่

ในเอกสารอ้างอิงการเขียนโปรแกรมส่วนขยายชุดคำสั่งสถาปัตยกรรม Intel ฉบับแก้ไข 41 จากเดือนตุลาคม 2020 [ 34 ]มีการบันทึกส่วนขยายชุดคำสั่ง TSXLDTRK ใหม่ไว้ โดยเริ่มแรกมีการรวมไว้ใน โปรเซสเซอร์ Sapphire Rapidsที่วางจำหน่ายในเดือนมกราคม 2023

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • Afek, Y.; Levy, A.; Morrison, A. (2014). รายงานการประชุมสัมมนา ACM ประจำปี 2014 เรื่องหลักการของการประมวลผลแบบกระจาย - PODC '14การขจัดปัญหาการล็อกฮาร์ดแวร์ที่ปรับปรุงด้วยซอฟต์แวร์ หน้า 212. doi : 10.1145/2611462.2611482 . ISBN 9781450329446. S2CID  16645370 .การปรับปรุงซอฟต์แวร์เพื่อขจัดข้อจำกัดของฮาร์ดแวร์ใน Intel TSX
  • เอกสารนำเสนอจากงาน IDF 2012 (PDF)
  • การเพิ่มการตัดส่วนล็อกลงในลินุกซ์การประชุม Linux Plumbers Conference 2012 (PDF)
  • การกำจัดการล็อคในไลบรารี GNU C , LWN.net , 30 มกราคม 2556 โดย Andi Kleen
  • คู่มือการเพิ่มประสิทธิภาพ TSXบทที่ 12 (PDF)
  • คู่มือสำหรับนักพัฒนาซอฟต์แวร์เล่ม 1 บทที่ 2.5 (PDF)
  • แหล่งข้อมูลบนเว็บเกี่ยวกับส่วนขยายการซิงโครไนซ์ธุรกรรมของ Intel
  • x86, ไมโครโค้ด: ข้อผิดพลาด: การอัปเดตไมโครโค้ดที่เปลี่ยนแปลง x86_capability , LKML , กันยายน 2014 (มีรายงานข้อผิดพลาดที่คล้ายกัน อีกฉบับหนึ่งด้วย )
  • ไมโครโค้ดของ Intel , Gentoo, 19 กันยายน 2015
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Transactional_Synchronization_Extensions&oldid=1316690387 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ส่วนขยายการซิงโครไนซ์ธุรกรรม

ส่วนขยายการซิงโครไน ซ์ธุรกรรม ( TSX ) หรือที่เรียกว่าคำสั่งส่วนขยายการซิงโครไนซ์ธุรกรรมใหม่ ( TSX -NI ) เป็นส่วนขยายของสถาปัตยกรรมชุดคำสั่งx86 (ISA) ที่เพิ่ม การสนับสนุน...

คุณสมบัติ

TSX/TSX-NI มีอินเทอร์เฟซซอฟต์แวร์สองแบบสำหรับการกำหนดขอบเขตโค้ดสำหรับการดำเนินการแบบธุรกรรม Hardware Lock Elision (HLE) เป็นอินเทอร์เฟซแบบอิงตามคำนำหน้าคำสั่งที่ออกแบบมาให้เข้ากันได้กับโปรเซสเซอร์ที่ไม่มีการสนับสนุน TSX/TSX-NI Restricted Transactional Memory...

ฮาร์ดแวร์ล็อค Elision

Hardware Lock Elision (HLE) เพิ่มคำนำหน้าคำสั่งใหม่สองคำ คือ XACQUIRE และ XRELEASE คำนำหน้าทั้งสองนี้ใช้ รหัสคำสั่งซ้ำ ของ คำนำหน้า REPNE / ที่มีอยู่ REPE ( F2H / F3H ) บนโปรเซสเซอร์ที่ไม่รองรับ HLE คำนำหน้า REPNE / REPE จะถูกละเว้นในคำสั่งที่ XACQUIRE /...

หน่วยความจำธุรกรรมที่จำกัด

หน่วยความจำธุรกรรมแบบจำกัด (Restricted Transactional Memory หรือ RTM) เป็นวิธีการใช้งานทางเลือกแทน HLE ซึ่งช่วยให้นักเขียนโปรแกรมมีความยืดหยุ่นในการระบุเส้นทางการทำงานของโค้ดสำรองที่จะถูกเรียกใช้เมื่อไม่สามารถดำเนินการธุรกรรมได้อย่างสำเร็จ แตกต่างจาก HLE RTM...