توی حالت Win64_AMD64 اصلا بازی اجرا نمیشد.
توی حالت های Win32_x86 و Win32_x86_SSE ارور صفحه آبی داد.
ولی توی حالت Win32_x86_SSE2 حدودا نیم ساعت تست کردم مشکلی نداشت تا ببینم بعدا چی میشه.
منظور از SSE و x86 چیه؟(ببخشید که انقدر سوال میپرسم!:blushing
با تشکر
سوال پرسیدن عیب نیست ، ندونستنش عیبه.
هر پردازنده ای یک سری مجموعه دستورالعمل داره کا یا کارهاش رو بصورت مستقیم ویا با ترکیبی از این دستورالعمل هل انجام میده.
کلا پردازنده ها چندین نوع دستورات رو درخود دارند :
SIMD (Single Instruction Multiple Data)
SISD
MIMD
MISD (Imossible)
و SSE 2 از دستۀ SIMD است. یعنی با چند پردازش تحت یک واحد کنترل مشترک قرار دارند.(بحث پیچیده شد)
بحث در مورد این دستورات و اینکه Instruction ها یا Dataها چیند و چجوری پردازش یا ذخیره میشند ، از حوصلۀ بحث خارجه. فقط همینقدر کافیه که بدونی Instruction ها توسط معماران ریزپردازنده تعریف میشند ، از استانداردهای خاصی تبعیت می کنند(به CISC و RISC کاری نداریم. منظورم 3D Now , SSE5 , AVX , MMX , SSE , SSE2 , SSE3 ، و دستوراتی از این قبیل هست).
به عنوان مثال ، شما برنامه زیر رو با فرترن نوشتید :
program hi
real a,b,c,d
real x,y,z
a=.013
b=.027
c=.0937
d=.79
y=-a/b + (a/b+c)*EXP(d)
print *,y
z=(-a)/b + (a/b+c)*EXP(d)
print *,z
x=y-z
print *,x
end
این برنامه بر طبق دستورالعمل های SSE2 بصورت Microinstruction زیر در میاد :
#
g95 -o hi -mfpmath=sse -msse2 -fzero -ftrace=full -fsloppy-char hi.for
# ./hi
0.78587145
0.78587145
0.
یعتی پردازندۀ شما برای انجام عمل محاسباتی تعریف شده توسط کاربر ، باید دستورات فوق رو فراخوانی کنه.
حالا فرض کنید که دستورات فوق را بخواهیم با یک مجموعه دستورالعمل SISD انجام بدیم میدونی چند مرحله (سیکل) به کار محاسباتی پردازنده اضافه میشه؟
x86 هم یک نوع معماری پردازنده است که الان بصورت معماری پایۀ همۀ پردازنده های مبتنی بر IBM یا MS Windows دراومده. این بدین معنی است که : ممکنه معماری پردازندۀ ما 64 بیتی (X64) باشه، ولی باید از تمام دستورات x86 پشتیبانی کنه. چون بیشتر برنامه های سازگار با Windows بر اساس مجموعه دستورالعملهای x86 نوشته میشن. به همین دلیله که ویندوز XP 64bit نمیتونه فوتوشاپ 32 بیتی رو بخونه ، چون ویندوز بر پایۀ x64 Instruction Set کار میکنه.