حساب کاربری
​
زمان تقریبی مطالعه: 4 دقیقه
لینک کوتاه

اس‌اس‌اس‌ئی۳

اس‌اس‌اس‌ئی۳ (به انگلیسی: 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:↵
    • Nano

دستورالعمل‌های جدید

در جدول زیر، 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

منابع

  1. ↑ (Technical report).

پیوند به بیرون

  • مشخصات Core 2 Mobile
  • این مقاله سفیدپوش Intel اعلام کرد که وجود SSSE3 و SSE4 توصیف شده‌است
  • اسناد مجموعه دستورالعمل لیست توابع دستورالعمل SSSE3
آخرین نظرات
کلیه حقوق این تارنما متعلق به فرا دانشنامه ویکی بین است.