اساساسئی۳
اساساسئی۳ (به انگلیسی: SSSE3) جریان افزایشی یک دستورالعمل اسایامدی (SIMD) است که به وسیله اینتل ساخته شده و چهارمین نسخه از تکنولوژی اساسئی (SSE) بشمار میرود.
تاریخچه
اساساسئی۳ ابتدا با پردازندههای اینتل بر اساس معماری چند هسته ای در تاریخ ۲۶ ژوئن ۲۰۰۶ با "Xeons "Woodcrest معرفی شد.
اساساسئی۳ توسط اولین طراحیهای ریزپردازندهای که قصد بهکارگیری آن را داشتند با اسم Tejas New Instructions یا Merom New Instructions معرفی میشد.
عملکرد
اساساسئی۳ حاوی ۱۶ دستورالعمل جدید مجزا است.
هر دستورالعمل میتواند روی رجیسترهای ۶۴ بیت MMX یا ۱۲۸ بیت XMM کار کند؛ بنابراین، مطالب اینتل به ۳۲ دستورالعمل جدید اشاره میکنند.
با توجه به اینتل:
اساساسئی۳ ۳۲ دستورالعمل (به وسیله ۱۴ امیونیک نشان داده میشود) برای سرعت بخشیدن به محاسبات بر روی اعداد صحیح بستهبندی شده ارائه میدهد. اینها عبارتند از:
- دوازده دستورالعمل که عملهای اضافه یا تفریق افقی را انجام میدهند.
- شش دستورالعمل که قدر مطلق را ارزیابی میکنند
- دو دستورالعمل که عملیات ضرب و جمع را انجام میدهد و سرعت محاسبه ضرب داخلی را افزایش میدهد.
- دو دستورالعمل که عملیات ضرب عدد صحیح بستهبندی را افزایش داده و مقادیر عدد صحیح را با مقیاس بندی تولید میکنند.
- دو دستورالعمل که با توجه به عملگر کنترل دوم shuffle، بیت معیوب، تغییر مکان را انجام میدهند.
- شش دستورالعمل که عدد صحیح بستهبندی شده در انتهای مقصد را نادیده بگیرد اگر نشانههای عنصر متناظر در مبدأ منبع کمتر از صفر باشد.
- دو دستورالعمل که دادهها را از کامپوزیت از دو operands تراز میکند.
پردازندههای اساساسئی۳
- AMD:
- پردازندههای کم قدرت «گربه»
- پردازندههای مبتنی بر Bobcat
- پردازندههای مبتنی بر Jaguar و جدیدتر
- پردازندههای مبتنی بر Puma و جدیدتر
- پردازنده «تجهیزات سنگین»
- پردازندههای مبتنی بر بولدوزر
- پردازندههای مبتنی بر Piledriver
- پردازندههای مبتنی بر Steamroller
- پردازندههای مبتنی بر Excavator و جدیدتر
- پردازندههای مبتنی بر Zen
- پردازندههای مبتنی بر Zen+
- پردازندههای کم قدرت «گربه»
- اینتل:
- سری Xeon 5100
- سری Xeon 5300
- سری Xeon 5400
- Xeon 3000 Series
- Core 2 Duo
- Core 2 Extreme
- Core 2 Quad
- Core i7
- Core i5
- Core i3
- Pentium Dual Core (اگر قابلیت ۶۴ بیتی باشد؛ آلندیل به بعد)
- Celeron 4xx Sequence Conroe-L
- Celeron Dual Core E1200
- Celeron M 500 series
- Atom
- VIA:↵
دستورالعملهای جدید
در جدول زیر، satsw (X) (به عنوان "اشباع به کلمه علامت دار" خوانده شود) عدد صحیح علامت دار X را میگیرد و اگر کمتر از -۳۲۷۶۸ باشد آن را به -۳۲۷۶۸ تبدیل میکند، اگر بزرگتر از ۳۲۷۶۷ باشد آن را به ۳۲۷۶۷ تبدیل میکند، و در غیر این صورت آن را بدون تغییر رها میکند. در معماری معمول اینتل، بایتها ۸ بیتی هستند، کلمهها ۱۶ بیت و dwordها ۳۲ بیت هستند؛ 'رجیستر' به یک رجیستر وکتور MMX یا XMM اشاره میکند.
PSIGNB, PSIGNW, PSIGND | بستهبندی شده علامت دار | اگر عناصر ثبت نام از بایتها، کلمات یا کلمات کلیدی را از علامت عناصر مربوط به یک ثبت نام دیگر منفی بدست نیاورید، |
---|---|---|
PABSB, PABSW, PABSD | قدر مطلق بستهبندی شده | عنصرهای یک رجیستر از نوع بایتها، wordها یا dwordها را با قدر مطلق مقدار عنصرهای رجیستر دیگر پر میکند. |
PALIGNR | بستهبندی شده درست کردن | دو رجیستر را برمیدارد، مقادیر خود را به هم مرتبط کنید و یک بخش register-length را از یک عدد که توسط مقدار فوری کدگذاری شده در دستورالعمل داده شدهاست بیرون بکشید. |
PSHUFB | بیتهای مختلط بستهبندی شده | دو رجیستر بایتی A=[a1,a2,a3,..]
و B = [b0 b1 b2 ...] را میگیرد و A را با [a b0 a b1 a b2 ...] جایگزین میکند. بجز اینکه آن را جایگزین i امین ورودی با ۰ اگر بالاترین بیت از b i مشخص شدهاست. |
PMULHRSW | بستهبندی شده با ضخامت زیاد و دور و مقیاس | کلمات ۱۶ بیتی در رجیستری A و B به صورت ۱۶ بیتی ثابت نقطه ای بین -۱٫۰۰۰۰۰۰۰۰ و +۰٫۹۹۹۹۶۹۴۸ … (به عنوان مثال 0x4000 به عنوان +۰٫۵ و 0xA000 به عنوان -۰٫۷۵ رفتار میشود)، و آنها را با درست کردن گرد کردن |
PMADDUBSW | ضرب و اضافه کردن باتهای امضا نشده و غیرمجاز | بایتها را در رجیسترهای A و B میگیرد، آنها را در هم ضرت میکند، جفتها را اضافه میکند، علامت را بررسی میکند و ذخیره میکند. یعنی[a0 a1 a2 ...] pmaddubsw[b0 b1 b2 ...] =
[satsw (a0b0 + a1b1) satsw (a2b2 + a3b3) ...] |
PHSUBW, PHSUBD | تقسیم افقی افقی (کلمات یا دوبله) | رجیسترهای A = [a0 a1 a2 ...]
و B = [b0 b1 b2 ...] را میگیرد و خروجی [a0-a1 a2-a3 ... b0-b1 b2-b3 ...] |
PHSUBSW | بستهبندی افقی تفریق و اشباع کلمات | مانند PHSUBW، اما خروجی
[satsw (a0-a1) satsw (a2-a3) ... satsw (b0-b1) satsw (b2-b3) ...] |
PHADDW, PHADDD | بستهبندی افقی اضافه (واژهها یا دو کلمه) | رجیسترهای A= [A0 a1 a2 ...] و
B = [b0 b1 b2 ...] را میگیرد و خروجیها [a0 + a1 a2 + a3 ... b0 + b1 b2 + b3 ...] |
PHADDSW | بستهبندی افقی اضافه کردن و اشباع کلمات | مانند PHADDW، اما خروجی
[satsw (a0 + a1) satsw (a2 + a3) ... satsw (b0 + b1) satsw (b2 + b3) ...] |
جستارهای وابسته
- SIMD
- SSE3
- هسته ۲ اینتل
- Tejas و Jayhawk
- لیست دستورات x86
منابع
- ↑ (Technical report).