الحوسبة 64 بت

في هندسة الحاسوب ، تُعرف الأعداد الصحيحة ذات 64 بت ، وعناوين الذاكرة ، ووحدات البيانات الأخرى، بأنها تلك التي يبلغ عرضها 64 بت . كما تُعرف وحدات المعالجة المركزية (CPU) ووحدات الحساب والمنطق (ALU) ذات 64 بت بأنها تلك التي تعتمد على سجلات المعالج ، أو ناقلات العناوين ، أو ناقلات البيانات بهذا الحجم. ويُطلق على الحاسوب الذي يستخدم معالجًا من هذا النوع اسم حاسوب 64 بت.
من منظور البرمجيات، تعني الحوسبة 64 بت استخدام لغة الآلة مع عناوين ذاكرة افتراضية 64 بت . مع ذلك، لا تدعم جميع مجموعات تعليمات 64 بت عناوين ذاكرة افتراضية كاملة 64 بت؛ فمثلاً، تدعم x86-64 و AArch64 48 بت فقط من العنوان الافتراضي، بينما يجب أن تكون البتات الـ 16 المتبقية إما أصفارًا (000...) أو آحادًا (111...)، كما أن بعض مجموعات تعليمات 64 بت تدعم أقل من 64 بت من عنوان الذاكرة الفعلية.
يشير مصطلح 64 بت أيضًا إلى جيل من الحواسيب التي تُعدّ فيها معالجات 64 بت هي المعيار. 64 بت هو حجم كلمة يُحدد فئات معينة من بنية الحاسوب، والناقلات، والذاكرة، ووحدات المعالجة المركزية، وبالتالي، البرامج التي تعمل عليها. استُخدمت وحدات المعالجة المركزية 64 بت في الحواسيب العملاقة منذ سبعينيات القرن الماضي ( Cray-1 ، 1975)، وفي محطات العمل والخوادم القائمة على معالجات RISC منذ أوائل تسعينيات القرن الماضي. في عام 2003، طُرحت وحدات المعالجة المركزية 64 بت في سوق الحواسيب الشخصية السائدة على شكل معالجات x86-64 ومعالج PowerPC G5 .
يمكن لسجل 64 بت تخزين أي قيمة من بين 2^ 64 (أكثر من 18 كوينتيليون أو 1.8 × 10^ 19 ) قيمة مختلفة. يعتمد نطاق القيم الصحيحة التي يمكن تخزينها في 64 بت على تمثيل الأعداد الصحيحة المستخدم. مع التمثيلين الأكثر شيوعًا، يتراوح النطاق من 0 إلى 18,446,744,073,709,551,615 (يساوي 2^ 64 - 1) عند تمثيله كعدد ثنائي ( غير مُوَقَّع ) ، ومن -9,223,372,036,854,775,808 (-2^ 63 ) إلى 9,223,372,036,854,775,807 (2 ^63 - 1) عند تمثيله بنظام المتمم الثنائي . وبالتالي، يمكن للمعالج الذي يحتوي على عناوين ذاكرة 64 بت الوصول مباشرة إلى 264 بايت (16 إكسابايت أو EB) من الذاكرة القابلة للعنونة بالبايت .
بشكل عام ، تتميز بنية الحاسوب 64 بت بسجلات للأعداد الصحيحة وعناوين بعرض 64 بت، مما يسمح بدعم مباشر لأنواع البيانات والعناوين 64 بت. مع ذلك، قد تحتوي وحدة المعالجة المركزية على ناقلات بيانات خارجية أو ناقلات عناوين بأحجام مختلفة عن أحجام السجلات، بل وأكبر (على سبيل المثال، كان لدى معالج بنتيوم 32 بت ناقل بيانات 64 بت). [ 1 ]
الآثار المعمارية
تُقسّم سجلات المعالج عادةً إلى عدة مجموعات: سجلات الأعداد الصحيحة ، وسجلات الأعداد العشرية ، وسجلات التعليمات المفردة، وسجلات البيانات المتعددة (SIMD)، وسجلات التحكم ، وغالبًا ما توجد سجلات خاصة لحساب العناوين، والتي قد يكون لها استخدامات وأسماء مختلفة مثل سجلات العناوين ، وسجلات الفهرس ، وسجلات الأساس . [ 2 ] مع ذلك، في التصاميم الحديثة، غالبًا ما تُؤدّى هذه الوظائف بواسطة سجلات الأعداد الصحيحة ذات الأغراض العامة . في معظم المعالجات، لا يُمكن استخدام سوى سجلات الأعداد الصحيحة أو سجلات العناوين لعنونة البيانات في الذاكرة؛ ولا يُمكن استخدام الأنواع الأخرى من السجلات. لذلك، يُحدّ حجم هذه السجلات عادةً من مقدار الذاكرة التي يُمكن عنونتها مباشرةً، حتى في حال وجود سجلات، مثل سجلات الأعداد العشرية، ذات سعة أكبر.
معظم المعالجات عالية الأداء ذات 32 بت و64 بت (باستثناءات قليلة ملحوظة، مثل معالجات ARM القديمة أو المدمجة ، ومعالجات MIPS ذات 32 بت ) تحتوي على وحدة معالجة الفاصلة العائمة مدمجة، والتي غالبًا ما تعتمد، ولكن ليس دائمًا، على وحدات بيانات 64 بت. على سبيل المثال، على الرغم من أن بنية x86 / x87 تحتوي على تعليمات قادرة على تحميل وتخزين قيم الفاصلة العائمة 64 بت (و32 بت) في الذاكرة، فإن تنسيق بيانات الفاصلة العائمة الداخلي وتنسيق السجلات يبلغ 80 بت، بينما يبلغ عرض سجلات الأغراض العامة 32 بت. في المقابل، تستخدم عائلة معالجات Alpha ذات 64 بت تنسيق بيانات الفاصلة العائمة وتنسيق السجلات 64 بت، بالإضافة إلى سجلات الأعداد الصحيحة 64 بت.
تاريخ
صُممت العديد من مجموعات تعليمات الحاسوب بحيث يمكن لمسجل عدد صحيح واحد تخزين عنوان الذاكرة لأي موقع في الذاكرة الفعلية أو الافتراضية للحاسوب . ولذلك، غالبًا ما يُحدد عرض هذه المسجلات العدد الإجمالي لعناوين الذاكرة. كان نظام IBM System/360 في ستينيات القرن الماضي حاسوبًا مبكرًا من نوع 32 بت؛ إذ احتوى على مسجلات أعداد صحيحة 32 بت، على الرغم من أنه استخدم فقط 24 بت من الكلمة ذات الترتيب الأدنى للعناوين، مما أدى إلى مساحة عناوين تبلغ 16 ميجابايت ( 16 × 1024 بايت ). أصبحت الحواسيب الصغيرة جدًا من نوع 32 بت ، مثل DEC VAX ، شائعة في سبعينيات القرن الماضي، وظهرت المعالجات الدقيقة من نوع 32 بت، مثل عائلة Motorola 68000 وأفراد عائلة x86 من نوع 32 بت بدءًا من Intel 80386 ، في منتصف ثمانينيات القرن الماضي، مما جعل 32 بت بمثابة إجماع فعلي كحجم مناسب للمسجلات.
كان سجل العناوين ذو 32 بت يعني إمكانية الوصول إلى 2^ 32 عنوانًا، أو 4 جيجابايت من ذاكرة الوصول العشوائي (RAM). عند تصميم هذه البنى، كان حجم 4 جيجابايت من الذاكرة يتجاوز بكثير الأحجام المعتادة (4 ميجابايت) في الأنظمة، لذا اعتُبر هذا الحجم كافيًا للعنونة . كما اعتُبر 4.29 مليار عنوان حجمًا مناسبًا للعمل معه لسبب آخر مهم: 4.29 مليار عدد صحيح كافية لتخصيص مراجع فريدة لمعظم الكيانات في تطبيقات مثل قواعد البيانات .
تحتوي معظم الحواسيب الحديثة على مساحة تتراوح بين 8 و32 مليار عنوان فريد داخل ذاكرة الوصول العشوائي ، ويمكن لبنية 64 بت الوصول إلى عنوان أكبر بملياري مرة. ومن المرجح ألا تُستخدم مساحة 64 بت بالكامل.
استخدمت بعض معماريات الحواسيب العملاقة في سبعينيات وثمانينيات القرن الماضي، مثل Cray-1 ، [ 3 ] مسجلات يصل عرضها إلى 64 بت، ودعمت العمليات الحسابية للأعداد الصحيحة 64 بت، على الرغم من أنها لم تدعم عنونة 64 بت. في منتصف ثمانينيات القرن الماضي، بدأ تطوير معالج Intel i860 [ 4 ] وبلغ ذروته بإصداره عام 1989؛ كان i860 مزودًا بمسجلات وعنونة للأعداد الصحيحة 32 بت، لذا لم يكن معالجًا 64 بت بالكامل، على الرغم من أن وحدة الرسومات فيه دعمت العمليات الحسابية للأعداد الصحيحة 64 بت. [ 5 ] مع ذلك، ظل 32 بت هو المعيار حتى أوائل تسعينيات القرن الماضي، عندما أدى الانخفاض المستمر في تكلفة الذاكرة إلى تركيبات ذات سعات ذاكرة وصول عشوائي (RAM) تقارب 4 جيجابايت، وأصبح استخدام مساحات الذاكرة الافتراضية التي تتجاوز حد 4 جيجابايت مرغوبًا فيه لمعالجة أنواع معينة من المشكلات. استجابةً لذلك، طورت شركتا MIPS وDEC معمارية معالجات دقيقة 64 بت، في البداية لأجهزة محطات العمل والخوادم المتطورة . وبحلول منتصف التسعينيات، طورت شركات HAL Computer Systems و Sun Microsystems و IBM و Silicon Graphics و Hewlett-Packard معمارية 64 بت لأنظمة محطات العمل والخوادم الخاصة بها. وكانت الحواسيب المركزية من IBM استثناءً بارزًا لهذا التوجه ، حيث استخدمت آنذاك أحجام بيانات 32 بت وعناوين 31 بت؛ ولم تتضمن حواسيب IBM المركزية معالجات 64 بت حتى عام 2000. وخلال التسعينيات، استُخدمت العديد من المعالجات الدقيقة 64 بت منخفضة التكلفة في الإلكترونيات الاستهلاكية والتطبيقات المدمجة. ومن الجدير بالذكر أن جهازي Nintendo 64 [ 6 ] و PlayStation 2 كانا مزودين بمعالجات دقيقة 64 بت قبل طرحهما في الحواسيب الشخصية. استخدمت الطابعات المتطورة ومعدات الشبكات والحواسيب الصناعية معالجات دقيقة 64 بت، مثل معالج Quantum Effect Devices R5000 . [ 7 ] بدأ استخدام الحوسبة 64 بت بالانتشار تدريجيًا إلى أجهزة الكمبيوتر الشخصية المكتبية بدءًا من عام 2003، عندما تحولت بعض طرازات أجهزة ماكنتوش من آبل إلى معالجات PowerPC 970 (التي أطلقت عليها آبل اسم G5 )، وأصدرت شركة Advanced Micro Devices (AMD) أول معالج x86-64 64 بت . وفي نهاية المطاف، لحقت سعة الذاكرة الفعلية بحدود 32 بت. في عام 2023، كانت أجهزة الكمبيوتر المحمولة مزودة عادةً بذاكرة سعتها 16 جيجابايت، بينما بدأت الخوادم بذاكرة سعتها 64 جيجابايت، [ 8 ] متجاوزةً بذلك سعة العناوين البالغة 4 جيجابايت لـ 32 بت.
جدول زمني للبيانات 64 بت
- 1961
- تقوم شركة IBM بتسليم جهاز الكمبيوتر العملاق IBM 7030 Stretch ، الذي يستخدم كلمات بيانات 64 بت وكلمات تعليمات 32 أو 64 بت.
- 1974
- أطلقت شركة Control Data Corporation جهاز الكمبيوتر العملاق المتجهي CDC Star-100 ، والذي يستخدم بنية كلمة 64 بت (كانت أنظمة CDC السابقة تعتمد على بنية 60 بت).
- أطلقت شركة International Computers Limited سلسلة ICL 2900 التي تدعم معالجة الأعداد الصحيحة بنظام المتمم الثنائي 32 بت، و64 بت، و128 بت ؛ والأعداد العشرية بنظام الفاصلة العائمة 64 بت و128 بت؛ والأعداد العشرية المعبأة 32 بت، و64 بت، و128 بت؛ بالإضافة إلى مسجل تراكمي 128 بت. وقد حافظت هذه البنية على مكانتها عبر سلسلة من أجهزة ICL وFujitsu. أحدثها جهاز Fujitsu Supernova، الذي يحاكي بيئة التشغيل الأصلية على معالجات Intel 64 بت.
- 1976
- شركة كراي للأبحاث تقدم أول حاسوب عملاق من طراز كراي-1 ، والذي يعتمد على بنية كلمة 64 بت وسيشكل الأساس لأجهزة كراي العملاقة المتجهة اللاحقة.
- 1983
- أطلقت شركة Elxsi جهاز الكمبيوتر العملاق المصغر المتوازي Elxsi 6400. يتميز تصميم Elxsi بسجلات بيانات 64 بت، ولكن مساحة عناوين 32 بت.
- 1989
- قدمت شركة إنتل معالج Intel i860، وهو معالج حاسوبي ذو مجموعة تعليمات مختصرة (RISC). تم تسويقه على أنه "معالج دقيق 64 بت"، وكان يتمتع في الأساس ببنية 32 بت، معززة بوحدة رسومات ثلاثية الأبعاد قادرة على إجراء عمليات حسابية على الأعداد الصحيحة 64 بت. [ 9 ]
- 1993
- قدمت شركة أتاري جهاز ألعاب الفيديو أتاري جاغوار ، الذي يتضمن بعض مسارات البيانات بعرض 64 بت في بنيته. [ 10 ]
الجدول الزمني للعناوين 64 بت
- 1991
- أنتجت شركة MIPS Computer Systems أول معالج دقيق 64 بت، وهو R4000 ، الذي يُطبّق بنية MIPS III ، وهي النسخة الثالثة من بنية MIPS . [ 11 ] استُخدمت وحدة المعالجة المركزية في محطات عمل الرسومات من SGI بدءًا من IRIS Crimson . قدّمت شركة Kendall Square Research أول حاسوب عملاق لها، KSR1، والذي يعتمد على بنية معالج RISC 64 بت خاصة بها، ويعمل بنظام OSF/1 .
- 1992
- قدمت شركة Digital Equipment Corporation (DEC) بنية Alpha النقية ذات 64 بت والتي انبثقت من مشروع PRISM . [ 12 ]
- 1994
- أعلنت شركة إنتل عن خططها لإطلاق معمارية IA- 64 ذات 64 بت (التي طُوّرت بالاشتراك مع شركة هيوليت-باكارد ) كخليفة لمعالجاتها IA-32 ذات 32 بت . وكان من المقرر إطلاقها في الفترة ما بين عامي 1998 و1999.
- 1995
- أطلقت شركة صن معالج SPARC ذو 64 بت ، وهو UltraSPARC . [ 13 ] كما أطلقت شركة HAL Computer Systems، المملوكة لشركة فوجيتسو، محطات عمل تعتمد على وحدة معالجة مركزية ذات 64 بت، وهي الجيل الأول من معالجات SPARC64 المصممة بشكل مستقل من قبل HAL . وأصدرت شركة IBM معالجي A10 وA30، وهما أول معالجات PowerPC AS ذات 64 بت. [ 14 ] كما أصدرت IBM ترقية لنظام AS/400 ذات 64 بت، والتي تتيح تحويل نظام التشغيل وقاعدة البيانات والتطبيقات.
- 1996
- أطلقت نينتندو جهاز ألعاب الفيديو نينتندو 64 ، المبني على نسخة منخفضة التكلفة من معالج MIPS R4000. وأصدرت شركة HP أول تطبيق لبنية PA-RISC 2.0 ذات 64 بت ، وهو جهاز PA-8000 . [ 15 ]
- 1998
- أصدرت شركة IBM سلسلة معالجات POWER3 كاملة 64 بت من نوع PowerPC/ POWER . [ 16 ]
- 1999
- أصدرت شركة إنتل مجموعة التعليمات الخاصة ببنية IA-64 . وكشفت شركة AMD علنًا عن مجموعة امتداداتها ذات 64 بت لبنية IA-32، والتي أطلق عليها اسم x86-64 (والتي عُرفت لاحقًا باسم AMD64).
- 2000
- تقوم شركة IBM بشحن أول جهاز كمبيوتر مركزي 64 بت z/Architecture ، وهو zSeries z900. z/Architecture هو إصدار 64 بت من بنية ESA/390 ذات 32 بت ، وهي سليل بنية System/360 ذات 32 بت .
- 2001
- أطلقت إنتل سلسلة معالجات IA-64 بعد تأخيرات متكررة في طرحها في السوق. وبعد أن أصبحت تحمل علامة Itanium التجارية وتستهدف الخوادم المتطورة، لم تحقق المبيعات التوقعات.
- 2003
- أعلنت AMD عن إطلاق معالجاتها Opteron و Athlon 64 ، المبنية على معمارية AMD64 ، وهي أول معمارية معالجات 64 بت تعتمد على x86. كما طرحت Apple معالج PowerPC 970 "G5" 64 بت من إنتاج IBM. في المقابل، أكدت Intel أن معالجات Itanium ستظل معالجاتها الوحيدة 64 بت.
- 2004
- رداً على نجاح AMD في السوق، أقرت إنتل بأنها تعمل على تطوير نسخة مُقلّدة من امتدادات AMD64 تُسمى IA-32e (أُعيد تسميتها لاحقاً إلى EM64T، ثم إلى Intel 64). وتُصدر إنتل نسخاً مُحدّثة من معالجات Xeon و Pentium 4 التي تدعم مجموعة التعليمات الجديدة ذات 64 بت.
- أعلنت شركة VIA Technologies عن معالج Isaiah ذي 64 بت. [ 17 ]
- 2006
- بدأت شركات سوني وآي بي إم وتوشيبا بتصنيع معالج Cell ذي 64 بت لاستخدامه في جهاز بلاي ستيشن 3 والخوادم ومحطات العمل وغيرها من الأجهزة. أصدرت إنتل معالج Core 2 Duo كأول معالج x86-64 رئيسي لخط إنتاجها من الأجهزة المحمولة والمكتبية ومحطات العمل. لم تكن خطوط معالجات 64 بت السابقة متوفرة على نطاق واسع في سوق التجزئة للمستهلكين (معظم معالجات Pentium 4/D ذات 64 بت كانت مخصصة لمصنعي المعدات الأصلية)، ولم تدخل معالجات Pentium 4 وPentium D وCeleron ذات 64 بت حيز الإنتاج الضخم حتى أواخر عام 2006 بسبب مشكلة انخفاض الإنتاجية (حيث كانت معظم رقائق السيليكون ذات الإنتاجية الجيدة موجهة للخوادم وأجهزة الكمبيوتر المركزية، بينما ظل خط إنتاج المعالجات الرئيسية يعتمد على تقنية 130 نانومتر 32 بت حتى عام 2006)، وسرعان ما أصبحت هذه المعالجات منخفضة الأداء بعد ظهور معالج Core 2. أصدرت AMD أول معالج محمول لها ذي 64 بت، وتم تصنيعه بتقنية 90 نانومتر.
- 2011
- أعلنت شركة ARM Holdings عن ARMv8-A، وهي أول نسخة 64 بت من عائلة معمارية ARM . [ 18 ]
- 2012
- أعلنت شركة ARM Holdings عن معالجاتها Cortex-A53 و Cortex-A57، وهي أول معالجاتها التي تعتمد على بنية 64 بت، في 30 أكتوبر 2012. [ 19 ] [ 20 ]
- 2013
- أعلنت شركة آبل عن هاتف iPhone 5S ، وهو أول معالج 64 بت في هاتف ذكي، وهو نظام A7 ARMv8-A على شريحة واحدة، وجهاز iPad Air وجهاز iPad Mini 2 ، وهما أول جهازين لوحيين بمعالجات 64 بت.
- 2014
- تم نشر معمارية RISC-V ، التي تدعم كلاً من 32 بت و64 بت. [ 21 ] أعلنت جوجل عن جهاز Nexus 9 اللوحي، وهو أول جهاز يعمل بنظام Android على شريحة Tegra K1 ذات 64 بت.
- 2015
- أعلنت شركة آبل عن جهاز iPod Touch (الجيل السادس) ، وهو أول جهاز iPod Touch يستخدم معالج 64 بت، وهو نظام A8 ARMv8-A على شريحة واحدة، إلى جانب جهاز Apple TV (الجيل الرابع) ، وهو أول جهاز Apple TV يستخدم معالج 64 بت.
- 2018
- أعلنت شركة آبل عن ساعة Apple Watch Series 4 ، وهي أول ساعة Apple Watch تستخدم معالج 64 بت، وهو نظام S4 ARMv8-A-based system-on-a-chip.
- 2020
- أعلنت شركة Synopsis عن ARCv3 ISA، وهي أول نسخة 64 بت من ARC ISA . [ 22 ] أصدرت Apple جهاز Apple M1 ، الذي يفتقر إلى دعم تطبيقات 32 بت.
- 2023
- أصدرت شركة كوالكوم معالج سنابدراجون 8 من الجيل الثالث ومعالج سنابدراجون إكس إيليت ، واللذان يفتقران إلى دعم تطبيقات ARM ذات 32 بت.
الجدول الزمني لنظام التشغيل 64 بت
- 1985
- أصدرت شركة كراي نظام التشغيل UNICOS ، وهو أول تطبيق 64 بت لنظام التشغيل يونكس . [ 23 ]
- 1993
- أصدرت شركة DEC نظام التشغيل 64 بت DEC OSF/1 AXP الشبيه بنظام Unix (الذي أعيد تسميته لاحقًا إلى Tru64 UNIX) لأنظمتها القائمة على بنية Alpha .
- 1994
- أضافت شركة Silicon Graphics دعمًا لمعالج R8000 إلى نظام التشغيل IRIX في الإصدار 6.0.
- 1995
- أصدرت شركة DEC نظام التشغيل OpenVMS 7.0، وهو أول إصدار كامل 64 بت من OpenVMS لنظام Alpha. كما تم إصدار أول توزيعة لينكس 64 بت لبنية Alpha. [ 24 ]
- 1996
- أضافت شركة Silicon Graphics دعمًا لمعالجات R4x00 في وضع 64 بت إلى نظام التشغيل IRIX في الإصدار 6.2.
- 1998
- أصدرت شركة صن نظام التشغيل سولاريس 7، مع دعم كامل لتقنية UltraSPARC ذات 64 بت .
- 2000
- أصدرت شركة IBM نظام التشغيل z/OS ، وهو نظام تشغيل 64 بت مشتق من MVS ، لأجهزة الكمبيوتر المركزية الجديدة من سلسلة zSeries 64 بت؛ ويتبع إصدار نظام التشغيل Linux 64 بت على أنظمة z إصدار وحدة المعالجة المركزية على الفور تقريبًا.
- 2001
- أصبح نظام لينكس أول نواة نظام تشغيل تدعم معالجات x86-64 بشكل كامل (على محاكي، حيث لم تكن معالجات x86-64 قد صدرت بعد). [ 25 ]
- 2001
- أصدرت مايكروسوفت إصدار ويندوز إكس بي 64 بت لبنية IA-64 الخاصة بمعالج إيتانيوم ؛ ويمكنه تشغيل تطبيقات 32 بت من خلال طبقة تنفيذ.
- 2003
- أصدرت شركة آبل نظام التشغيل Mac OS X 10.3 "Panther" الذي يدعم العمليات الحسابية الصحيحة 64 بت على معالجات PowerPC 970. [ 26 ] كما أصدرت العديد من توزيعات لينكس دعمًا لمعالجات AMD64 ، بما في ذلك FreeBSD .
- 2005
- في 4 يناير، أوقفت مايكروسوفت دعم نظام التشغيل ويندوز إكس بي إصدار 64 بت، لعدم توفر أجهزة كمبيوتر بمعالجات IA-64 منذ سبتمبر السابق، وأعلنت أنها تعمل على تطوير إصدارات x86-64 من ويندوز كبديل له. [ 27 ] في 31 يناير، أصدرت صن نظام التشغيل سولاريس 10 مع دعم معالجات AMD64 وEM64T. في 29 أبريل، أصدرت آبل نظام التشغيل ماك أو إس إكس 10.4 "تايجر" الذي يوفر دعمًا محدودًا لتطبيقات سطر الأوامر 64 بت على الأجهزة المزودة بمعالجات PowerPC 970؛ ودعمت الإصدارات اللاحقة لأجهزة ماك المزودة بمعالجات إنتل تطبيقات سطر الأوامر 64 بت على أجهزة ماك المزودة بمعالجات EM64T. في 30 أبريل، أصدرت مايكروسوفت نظامي التشغيل ويندوز إكس بي بروفيشنال إصدار 64 بت وويندوز سيرفر 2003 إصدار 64 بت لمعالجات AMD64 وEM64T. [ 28 ]
- 2006
- أصدرت مايكروسوفت نظام التشغيل ويندوز فيستا ، متضمنًا نسخة 64 بت لمعالجات AMD64/EM64T مع الحفاظ على توافقها مع أنظمة 32 بت. في نسخة 64 بت، جميع تطبيقات ومكونات ويندوز تعمل بنظام 64 بت، مع أن العديد منها يتضمن أيضًا نسخ 32 بت لضمان التوافق مع الإضافات .
- 2007
- أصدرت شركة أبل نظام التشغيل Mac OS X 10.5 "Leopard"، الذي يدعم بشكل كامل تطبيقات 64 بت على الأجهزة المزودة بمعالجات PowerPC 970 أو EM64T.
- 2009
- أصدرت مايكروسوفت نظام التشغيل ويندوز 7 ، الذي يتضمن، مثل ويندوز فيستا، نسخة كاملة 64 بت لمعالجات AMD64/Intel64؛ وتأتي معظم أجهزة الكمبيوتر الجديدة مُحمّلة افتراضيًا بنسخة 64 بت. كما أصدرت مايكروسوفت أيضًا ويندوز سيرفر 2008 R2 ، وهو أول نظام تشغيل خادم 64 بت فقط. أما آبل، فأصدرت نظام التشغيل ماك أو إس إكس 10.6 ، المعروف باسم "سنو ليوبارد"، والذي يأتي بنواة 64 بت لمعالجات AMD64/Intel64، مع العلم أن بعض طرازات أجهزة آبل الحديثة فقط هي التي تعمل بنواة 64 بت افتراضيًا. وأصبحت معظم التطبيقات المرفقة مع ماك أو إس إكس 10.6 الآن تعمل بنظام 64 بت أيضًا. [ 26 ]
- 2010
- أصبح نظام التشغيل ويندوز 7 (بنظام 64 بت) النظام الأكثر شعبية على منصة ستيم، متجاوزًا نظام التشغيل ويندوز إكس بي (بنظام 32 بت). [ 29 ] [ 30 ]
- 2011
- أصدرت آبل نظام التشغيل Mac OS X 10.7 ، المعروف باسم "Lion"، والذي يعمل بنواة 64 بت افتراضيًا على الأجهزة المدعومة. أما الأجهزة القديمة التي لا تدعم نواة 64 بت، فتستخدم نواة 32 بت، ولكنها، كما في الإصدارات السابقة، لا تزال قادرة على تشغيل تطبيقات 64 بت؛ إذ لا يدعم Lion الأجهزة المزودة بمعالجات 32 بت. جميع التطبيقات المرفقة مع Mac OS X 10.7 تقريبًا تعمل الآن بنظام 64 بت، بما في ذلك iTunes.
- 2012
- أصدرت مايكروسوفت نظام التشغيل ويندوز 8 الذي يدعم UEFI من الفئة 3 ( UEFI بدون CSM) والتمهيد الآمن . [ 31 ] أصدرت أبل نظام التشغيل OS X Mountain Lion ، الذي يجعل نواة 64 بت هي النواة الافتراضية على بعض الأجهزة القديمة التي لم تكن مدعومة سابقًا، ويزيل نواة 32 بت.
- 2018
- أصدرت شركة آبل نظام التشغيل watchOS 5 ، وهو أول إصدار من نظام التشغيل watchOS يدعم تقنية 64 بت.
- 2019
- أصدرت شركة أبل نظام التشغيل macOS 10.15 "Catalina"، متخلية عن دعم تطبيقات Intel ذات 32 بت.
- 2021
- أصدرت مايكروسوفت نظام التشغيل ويندوز 11 في 5 أكتوبر، والذي يدعم فقط أنظمة 64 بت، متخلية عن دعم أنظمة IA-32 و AArch32.
- 2022
- أصدرت جوجل هاتف Pixel 7 ، الذي توقف دعمه لتطبيقات 32 بت. وأصدرت آبل نظام watchOS 9 ، وهو أول إصدار من watchOS يعمل حصريًا على طرازات Apple Watch المزودة بمعالجات 64 بت (بما في ذلك Apple Watch Series 4 أو أحدث، و Apple Watch SE (الجيل الأول) أو أحدث، و Apple Watch Ultra التي تم طرحها حديثًا )، متخليةً بذلك عن دعم Apple Watch Series 3 باعتبارها آخر طراز من Apple Watch بمعالج 32 بت.
- 2023
- أصدرت جوجل نظام التشغيل أندرويد 14 ، الذي أسقط دعم التطبيقات ذات 32 بت.
- 2024
- أصدرت مايكروسوفت تحديث ويندوز 11 لعام 2024 ، والذي أسقطت إصدارات ARM منه دعم تطبيقات ARM ذات 32 بت.
حدود المعالجات
من حيث المبدأ، يمكن للمعالج الدقيق ذي 64 بت الوصول إلى 16 إكسابايت ( 16 × 1024 ÷ 6 = 2^ 64 = 18,446,744,073,709,551,616 بايت ) من الذاكرة. مع ذلك، لا تدعم جميع مجموعات التعليمات، ولا جميع المعالجات التي تُنفذ هذه المجموعات، مساحة عناوين افتراضية أو فعلية كاملة بحجم 64 بت.
بنية x86-64 ( اعتبارًا من مارس 2024) يُتيح هذا النظام 48 بتًا للذاكرة الافتراضية، وما يصل إلى 52 بتًا للذاكرة الفعلية لأي معالج. [ 32 ] [ 33 ] تسمح هذه الحدود بسعات ذاكرة تبلغ 256 تيرابايت ( 256 × 1024 بايت ) و4 بيتابايت ( 4 × 1024 بايت ) على التوالي. لا يمكن لجهاز كمبيوتر شخصي حاليًا استيعاب 4 بيتابايت من الذاكرة (بسبب الحجم الفعلي لرقائق الذاكرة)، لكن AMD تصوّرت خوادم ضخمة، ومجموعات ذاكرة مشتركة، واستخدامات أخرى لمساحة العناوين الفعلية قد تقترب من هذا الحجم في المستقبل القريب. وبالتالي، يوفر العنوان الفعلي ذو 52 بتًا مساحة واسعة للتوسع دون تكبّد تكلفة تنفيذ عناوين فعلية كاملة ذات 64 بتًا. وبالمثل، تم تصميم مساحة العناوين الافتراضية ذات 48 بت لتوفير 65536 (2 16 ) ضعف الحد الأقصى البالغ 4 جيجابايت ( 4 × 1024 3 بايت ) ، مما يسمح بمساحة للتوسع لاحقًا ولا يتكبد أي تكلفة إضافية لترجمة عناوين 64 بت كاملة.
تسمح بنية Power ISA v3.0 بـ 64 بت للعنوان الفعال، والذي يتم تعيينه إلى عنوان مجزأ يتراوح بين 65 و78 بت، للذاكرة الافتراضية، وبالنسبة لأي معالج معين، ما يصل إلى 60 بت للذاكرة الفعلية. [ 34 ]
تسمح بنية أوراكل سبارك 2015 بـ 64 بت للذاكرة الافتراضية، وبالنسبة لأي معالج معين، ما بين 40 و 56 بت للذاكرة الفعلية. [ 35 ]
تسمح بنية نظام الذاكرة الافتراضية ARM AArch64 بذاكرة افتراضية تتراوح من 48 إلى 56 بت، وبالنسبة لأي معالج معين، بذاكرة فعلية تتراوح من 32 إلى 56 بت. [ 36 ]
تتطلب مواصفات DEC Alpha دعم مساحة عناوين ذاكرة افتراضية لا تقل عن 43 بت (8 تيرابايت)، ويجب على الأجهزة التحقق من البتات المتبقية غير المدعومة ومعالجتها في حال كانت أصفارًا (لضمان التوافق مع المعالجات المستقبلية). يدعم معالج Alpha 21064 مساحة عناوين ذاكرة افتراضية 43 بت (8 تيرابايت) ومساحة عناوين ذاكرة فعلية 34 بت (16 جيجابايت). يدعم معالج Alpha 21164 مساحة عناوين ذاكرة افتراضية 43 بت (8 تيرابايت) ومساحة عناوين ذاكرة فعلية 40 بت (1 تيرابايت). يدعم معالج Alpha 21264 مساحة عناوين ذاكرة افتراضية قابلة للتكوين من قِبل المستخدم، 43 أو 48 بت (8 تيرابايت أو 256 تيرابايت) ومساحة عناوين ذاكرة فعلية 44 بت (16 تيرابايت).
تطبيقات 64 بت
32 بت مقابل 64 بت
يُعدّ الانتقال من بنية 32 بت إلى بنية 64 بت تغييرًا جذريًا، إذ يتطلب الأمر تعديلات واسعة النطاق على معظم أنظمة التشغيل للاستفادة من البنية الجديدة، لأن هذه البرامج تُدير وحدة عنونة الذاكرة الفعلية. [ 37 ] كما يجب نقل برامج أخرى لاستخدام هذه الإمكانيات الجديدة؛ ويمكن دعم البرامج القديمة ذات بنية 32 بت إما بفضل كون مجموعة تعليمات 64 بت مجموعة شاملة لمجموعة تعليمات 32 بت، بحيث يمكن للمعالجات التي تدعم مجموعة تعليمات 64 بت تشغيل التعليمات البرمجية لمجموعة تعليمات 32 بت أيضًا، أو من خلال محاكاة البرامج ، أو من خلال التنفيذ الفعلي لنواة معالج 32 بت داخل معالج 64 بت، كما هو الحال في بعض معالجات إيتانيوم من إنتل، التي تضمنت نواة معالج IA-32 لتشغيل تطبيقات x86 ذات بنية 32 بت . وتدعم أنظمة التشغيل لهذه البنى ذات بنية 64 بت عمومًا تطبيقات 32 بت و64 بت. [ 38 ]
يُعدّ نظام IBM AS/400 استثناءً هامًا لهذه القاعدة ، حيث يُجمّع برنامجه في بنية مجموعة تعليمات افتراضية (ISA) تُسمى واجهة الآلة المستقلة عن التقنية (TIMI). ثم يُترجم رمز TIMI إلى رمز الآلة الأصلي بواسطة برامج منخفضة المستوى قبل تنفيذه. ويقتصر ما يجب إعادة كتابته لنقل نظام التشغيل بالكامل وجميع البرامج إلى منصة جديدة على برنامج الترجمة فقط، كما حدث عندما نقلت IBM مجموعة التعليمات الأصلية لنظام AS/400 من IMPI القديمة (32/48 بت) إلى PowerPC-AS الأحدث (64 بت) ، والتي تحمل الاسم الرمزي Amazon . كانت مجموعة تعليمات IMPI مختلفة تمامًا حتى عن PowerPC (32 بت)، لذا كان هذا الانتقال أكبر من مجرد نقل مجموعة تعليمات معينة من 32 إلى 64 بت.
على أجهزة 64 بت ذات بنية x86-64 (AMD64)، يمكن تشغيل معظم أنظمة التشغيل والتطبيقات ذات 32 بت دون أي مشاكل في التوافق. ورغم أن مساحة العناوين الأكبر لبنية 64 بت تُسهّل التعامل مع مجموعات البيانات الضخمة في تطبيقات مثل الفيديو الرقمي والحوسبة العلمية وقواعد البيانات الكبيرة ، إلا أن هناك جدلاً واسعاً حول ما إذا كانت هذه الأنظمة، أو أنماط توافقها مع 32 بت ، ستكون أسرع من أنظمة 32 بت ذات الأسعار المماثلة في مهام أخرى.
يمكن تشغيل برنامج جافا مُجمَّع على آلة جافا افتراضية 32 بت أو 64 بت دون أي تعديل. يتم تحديد أطوال ودقة جميع الأنواع المضمنة، مثل char` short<T>` intو`< T>` و`<T long>` floatو`<T>` doubleو`<T>`، بالإضافة إلى الأنواع التي يمكن استخدامها كمؤشرات للمصفوفات، وفقًا للمعيار، ولا تعتمد على البنية الأساسية. تتمتع برامج جافا التي تعمل على آلة جافا افتراضية 64 بت بإمكانية الوصول إلى مساحة عناوين أكبر. [ 39 ]
لا تُعدّ السرعة العامل الوحيد الذي يجب مراعاته عند مقارنة المعالجات ذات 32 بت و64 بت. فالتطبيقات مثل تعدد المهام، واختبارات الضغط، والتجميع العنقودي - للحوسبة عالية الأداء - قد تكون أكثر ملاءمةً لبنية 64 بت عند نشرها بالشكل الأمثل. ولهذا السبب، انتشرت مجموعات الحوسبة ذات 64 بت على نطاق واسع في مؤسسات كبيرة، مثل IBM وHP ومايكروسوفت.
ملخص:
- يعمل المعالج ذو 64 بت بشكل أفضل مع البرامج ذات 64 بت.
- قد يتمتع المعالج ذو 64 بت بتوافق مع الإصدارات السابقة ، مما يسمح له بتشغيل برامج التطبيقات ذات 32 بت لإصدار 32 بت من مجموعة التعليمات الخاصة به، وقد يدعم أيضًا تشغيل أنظمة التشغيل ذات 32 بت لإصدار 32 بت من مجموعة التعليمات الخاصة به.
- المعالج ذو 32 بت غير متوافق مع البرامج ذات 64 بت.
الإيجابيات والسلبيات
من المفاهيم الخاطئة الشائعة أن معمارية 64 بت ليست أفضل من معمارية 32 بت إلا إذا كان لدى الكمبيوتر أكثر من 4 جيجابايت من ذاكرة الوصول العشوائي . [ 40 ] هذا ليس صحيحًا تمامًا:
- تُقيّد بعض أنظمة التشغيل وبعض تكوينات الأجهزة مساحة الذاكرة الفعلية إلى 3 جيجابايت على أنظمة IA-32 ، نظرًا لأن جزءًا كبيرًا من نطاق 3-4 جيجابايت محجوز لعنونة الأجهزة؛ انظر حاجز 3 جيجابايت ؛ إذ يمكن لبنى 64 بت عنونة مساحة أكبر بكثير من 4 جيجابايت. مع ذلك، تسمح معالجات IA-32 بدءًا من Pentium Pro بمساحة عناوين ذاكرة فعلية 36 بت ، باستخدام امتداد العنوان الفعلي (PAE)، مما يوفر نطاق عناوين فعلي يصل إلى 64 جيجابايت، يمكن استخدام ما يصل إلى 62 جيجابايت منه بواسطة الذاكرة الرئيسية؛ وقد لا تقتصر أنظمة التشغيل التي تدعم PAE على 4 جيجابايت من الذاكرة الفعلية، حتى على معالجات IA-32. مع ذلك، قد تكون برامج التشغيل وبرامج وضع النواة الأخرى، وخاصة الإصدارات القديمة، غير متوافقة مع PAE؛ وقد ذُكر هذا كسبب لتقييد إصدارات 32 بت من Microsoft Windows بـ 4 جيجابايت من ذاكرة الوصول العشوائي الفعلية [ 41 ] (على الرغم من أن صحة هذا التفسير محل جدل [ 42 ] ).
- تُخصّص بعض أنظمة التشغيل أجزاءً من مساحة عناوين العمليات لاستخدامها، مما يُقلّل فعلياً من إجمالي مساحة العناوين المتاحة لتخصيص الذاكرة لبرامج المستخدم. على سبيل المثال، يُخصّص نظام ويندوز 32 بت 1 أو 2 جيجابايت (بحسب الإعدادات) من إجمالي مساحة العناوين لنواة النظام، مما يترك 3 أو 2 جيجابايت فقط (على التوالي) من مساحة العناوين متاحة لوضع المستخدم. هذا الحدّ أعلى بكثير في أنظمة التشغيل 64 بت.
- تزداد صعوبة تطبيق الملفات المُرتبطة بالذاكرة في بنى 32 بت مع ازدياد شيوع الملفات التي تتجاوز 4 جيجابايت؛ إذ يصعب ربط هذه الملفات الكبيرة بالذاكرة في بنى 32 بت، لأن جزءًا فقط من الملف يُمكن ربطه بمساحة العناوين في كل مرة، وللوصول إلى هذا الملف عبر ربط الذاكرة، يجب تبديل الأجزاء المربوطة من وإلى مساحة العناوين حسب الحاجة. وهذه مشكلة، لأن ربط الذاكرة، إذا نفّذه نظام التشغيل بشكل صحيح، يُعدّ من أكثر طرق الوصول من القرص إلى الذاكرة كفاءة.
- يمكن لبعض البرامج ذات 64 بت، مثل برامج التشفير وفك التشفير وبرامج التشفير، أن تستفيد بشكل كبير من سجلات 64 بت، بينما يظل أداء البرامج الأخرى، مثل البرامج الموجهة للرسومات ثلاثية الأبعاد، دون تأثر عند التبديل من بيئة 32 بت إلى بيئة 64 بت.
- تدعم بعض معمارية 64 بت، مثل x86-64 و AArch64 ، عددًا أكبر من المسجلات العامة مقارنةً بنظيراتها من معمارية 32 بت (مع أن هذا لا يعود تحديدًا إلى طول الكلمة). ويؤدي هذا إلى زيادة ملحوظة في سرعة الحلقات الضيقة، إذ لا يضطر المعالج إلى جلب البيانات من الذاكرة المؤقتة أو الذاكرة الرئيسية إذا كانت البيانات تتسع في المسجلات المتاحة.
- مثال بلغة C :
int a , b , c , d , e ; for ( a = 0 ; a < 100 ; a ++ ) { b = a ; c = b ; d = c ; e = d ; }- يقوم هذا الكود أولاً بإنشاء خمس قيم: a، b، c، d، وe؛ ثم يضعها في حلقة تكرارية. خلال هذه الحلقة، يُغيّر الكود قيمة b إلى قيمة a، وقيمة c إلى قيمة b، وقيمة d إلى قيمة c، وقيمة e إلى قيمة d. وهذا يُعطي نفس تأثير تغيير جميع القيم إلى a.
- إذا كان المعالج قادرًا على تخزين قيمتين أو ثلاث قيم أو متغيرات فقط في المسجلات، فسيحتاج إلى نقل بعض القيم بين الذاكرة والمسجلات لمعالجة المتغيرين d و e أيضًا؛ وهذه عملية تستغرق دورات معالجة كثيرة. أما المعالج القادر على تخزين جميع القيم والمتغيرات في المسجلات، فيمكنه المرور عليها دون الحاجة إلى نقل البيانات بين المسجلات والذاكرة في كل تكرار. يمكن مقارنة هذا السلوك بسهولة بالذاكرة الافتراضية، مع العلم أن أي تأثيرات تعتمد على المُصرّف.
تتمثل العيوب الرئيسية لبنى 64 بت في أنها، مقارنةً ببنى 32 بت، تشغل مساحة أكبر في الذاكرة لنفس البيانات (بسبب طول المؤشرات، وربما أنواع أخرى، وحشو المحاذاة). يزيد هذا من متطلبات الذاكرة للعملية، وقد يؤثر على كفاءة استخدام ذاكرة التخزين المؤقت للمعالج. يُعدّ الحفاظ على نموذج 32 بت جزئي أحد الحلول لهذه المشكلة، وهو حل فعال بشكل عام. على سبيل المثال، يتبنى نظام التشغيل z/OS هذا النهج، حيث يُلزم وجود كود البرنامج في مساحات عناوين 31 بت (لا يُستخدم البت الأعلى في حساب العناوين على منصة الأجهزة الأساسية)، بينما يمكن أن توجد كائنات البيانات اختياريًا في مناطق 64 بت. لا تتطلب جميع هذه التطبيقات مساحة عناوين كبيرة أو تتعامل مع عناصر بيانات 64 بت، لذا فهي لا تستفيد من هذه الميزات.
توافر البرامج
تفتقر أنظمة 64 بت القائمة على معمارية x86 أحيانًا إلى برامج مكافئة مصممة لمعمارية 32 بت. وتتمثل المشكلة الأبرز في نظام التشغيل مايكروسوفت ويندوز في عدم توافق برامج تشغيل الأجهزة القديمة. يمكن تشغيل معظم برامج التطبيقات 32 بت على نظام تشغيل 64 بت في وضع التوافق ، والذي يُسمى أيضًا وضع المحاكاة ، مثل تقنية مايكروسوفت WoW64 لمعالجات IA-64 وAMD64. يعمل بيئة برنامج تشغيل وضع ويندوز الأصلي 64 بت [ 43 ] فوق ملف NTDLL.DLL 64 بت ، والذي لا يمكنه استدعاء رمز نظام Win32 الفرعي 32 بت (غالبًا أجهزة تتم محاكاة وظائفها المادية الفعلية في برامج وضع المستخدم، مثل طابعات Winprinters). ولأن برامج تشغيل 64 بت لمعظم الأجهزة لم تكن متوفرة حتى أوائل عام 2007 (فيستا x64)، فقد كان استخدام إصدار 64 بت من ويندوز يُعتبر تحديًا. مع ذلك، اتجهت التوجهات منذ ذلك الحين نحو الحوسبة 64 بت، لا سيما مع انخفاض أسعار الذاكرة وزيادة استخدام ذاكرة الوصول العشوائي (RAM) التي تتجاوز سعتها 4 جيجابايت. وبدأت معظم الشركات المصنعة بتوفير برامج تشغيل 32 بت و64 بت للأجهزة الجديدة، ما أدى إلى زوال مشكلة عدم توفر برامج تشغيل 64 بت. في المقابل، لم تكن برامج تشغيل 64 بت متوفرة للعديد من الأجهزة القديمة، وبالتالي لم يكن بالإمكان استخدامها في أنظمة 64 بت.
لم تكن مشكلة توافق برامج التشغيل مشكلة كبيرة مع برامج التشغيل مفتوحة المصدر، إذ كان من الممكن تعديل برامج التشغيل ذات 32 بت لتتوافق مع أنظمة 64 بت. أما دعم الأجهزة المصنعة قبل أوائل عام 2007، فكان يمثل تحديًا لمنصات المصادر المفتوحة، نظرًا لقلة عدد مستخدميها نسبيًا.
لا يمكن لإصدارات ويندوز 64 بت تشغيل برامج 16 بت . مع ذلك، ستعمل معظم تطبيقات 32 بت بشكل جيد. يضطر مستخدمو 64 بت إلى تثبيت جهاز افتراضي لنظام تشغيل 16 بت أو 32 بت لتشغيل تطبيقات 16 بت، أو استخدام أحد البدائل لـ NTVDM . [ 44 ]
كان نظاما التشغيل Mac OS X 10.4 "Tiger" و Mac OS X 10.5 "Leopard" يعملان بنواة 32 بت فقط، لكنهما كانا يدعمان تشغيل برامج وضع المستخدم 64 بت على معالجات 64 بت. أما نظام Mac OS X 10.6 "Snow Leopard" فكان يحتوي على نواتين، 32 بت و64 بت، وفي معظم أجهزة Mac، كان يستخدم نواة 32 بت حتى على معالجات 64 بت. هذا سمح لأجهزة Mac هذه بدعم عمليات 64 بت مع الاستمرار في دعم برامج تشغيل الأجهزة 32 بت، على الرغم من عدم دعم برامج تشغيل 64 بت وما يصاحبها من مزايا في الأداء. بينما كان نظام Mac OS X 10.7 "Lion" يعمل بنواة 64 بت على عدد أكبر من أجهزة Mac، فإن نظام OS X 10.8 "Mountain Lion" والإصدارات اللاحقة من macOS تحتوي على نواة 64 بت فقط. في الأنظمة المزودة بمعالجات 64 بت، يمكن لكل من نواة macOS ذات 32 بت و64 بت تشغيل التعليمات البرمجية في وضع المستخدم 32 بت، وتتضمن جميع إصدارات macOS حتى macOS Mojave (10.14) مكتبات 32 بت التي تستخدمها تطبيقات 32 بت، لذا ستعمل برامج وضع المستخدم 32 بت لنظام macOS على هذه الأنظمة. وقد أزالت Apple مكتبات 32 بت في macOS Catalina (10.15).
يدعم نظام لينكس ومعظم أنظمة التشغيل الأخرى الشبيهة بنظام يونكس ، بالإضافة إلى أدوات C و C++ الخاصة بها، معالجات 64 بت منذ سنوات عديدة. العديد من التطبيقات والمكتبات لهذه المنصات هي برامج مفتوحة المصدر ، مكتوبة بلغة C وC++، بحيث يمكن تجميعها إلى إصدارات 64 بت إذا كانت متوافقة مع 64 بت. يُسهّل نموذج التوزيع القائم على المصدر، مع التركيز على الإصدارات المتكررة، توفير برامج التطبيقات لهذه الأنظمة.
نماذج بيانات 64 بت
في البرامج ذات 32 بت، عادةً ما يكون للمؤشرات وأنواع البيانات، مثل الأعداد الصحيحة، نفس الطول. لكن هذا ليس صحيحًا بالضرورة على الأجهزة ذات 64 بت. [ 45 ] [ 46 ] [ 47 ] لذا، قد ينجح دمج أنواع البيانات في لغات البرمجة مثل C ومشتقاتها مثل C++ و Objective-C على تطبيقات 32 بت، ولكنه قد لا ينجح على تطبيقات 64 بت.
في العديد من بيئات البرمجة للغة C واللغات المشتقة منها على أجهزة 64 بت، intلا تزال المتغيرات بعرض 32 بت، بينما الأعداد الصحيحة الطويلة والمؤشرات بعرض 64 بت. يُشار إلى هذه البيانات بنموذج LP64 ، وهو اختصار لـ "Long, Pointer, 64". [ 48 ] [ 49 ] ومن النماذج الأخرى نموذج ILP64 الذي تكون فيه جميع أنواع البيانات الثلاثة بعرض 64 بت، [ 50 ] [ 49 ] وحتى نموذج SILP64 حيث تكون الأعداد الصحيحة القصيرة أيضًا بعرض 64 بت. [ 51 ] [ 52 ] ومع ذلك، في معظم الحالات، تكون التعديلات المطلوبة طفيفة ومباشرة، ويمكن إعادة ترجمة العديد من البرامج المكتوبة جيدًا ببساطة للبيئة الجديدة دون أي تغييرات. وثمة بديل آخر هو نموذج LLP64 ، الذي يحافظ على التوافق مع التعليمات البرمجية 32 بت من خلال ترك كل من المتغيرات والمؤشرات بعرض 32 بت. [ 53 ] [ 49 ] يشير LL إلى نوع العدد الصحيح الطويل الطويل ، والذي يبلغ 64 بت على الأقل على جميع المنصات، بما في ذلك بيئات 32 بت.intlong
توجد أيضًا أنظمة بمعالجات 64 بت تستخدم نموذج بيانات ILP32 ، مع إضافة أعداد صحيحة طويلة جدًا (long long) بحجم 64 بت؛ ويُستخدم هذا النموذج أيضًا في العديد من المنصات ذات المعالجات 32 بت. يُقلل هذا النموذج من حجم الكود وحجم هياكل البيانات التي تحتوي على مؤشرات، على حساب مساحة عناوين أصغر بكثير، مما يجعله خيارًا مناسبًا لبعض الأنظمة المدمجة. بالنسبة لمجموعات التعليمات مثل x86 وARM، حيث تحتوي نسخة 64 بت من مجموعة التعليمات على سجلات أكثر من نسخة 32 بت، فإنه يوفر الوصول إلى السجلات الإضافية دون زيادة في مساحة العناوين. وهو شائع في أجهزة RISC 64 بت، وتم استكشافه في x86 باسم x32 ABI ، واستُخدم مؤخرًا في ساعتي Apple Watch Series 4 و5. [ 54 ] [ 55 ]
| نموذج البيانات | عدد صحيح قصير | عدد صحيح | عدد صحيح طويل | طويلاً جداً | مؤشر، حجم_t | أنظمة تشغيل نموذجية |
|---|---|---|---|---|---|---|
| ILP32 | 16 | 32 | 32 | 64 | 32 | واجهات التطبيقات x32 و arm64ilp32 على أنظمة لينكس؛ واجهة التطبيقات MIPS N32. |
| LLP64 | 16 | 32 | 32 | 64 | 64 | الخطة 9 ، [ 56 ] مايكروسوفت ويندوز (x86-64، IA-64، وARM64) باستخدام Visual C++ ؛ و MinGW |
| LP64 | 16 | 32 | 64 | 64 | 64 | معظم أنظمة يونكس والأنظمة الشبيهة بيونكس ، مثل سولاريس ولينكس وبي إس دي وماك أو إس . ويندوز عند استخدام سيجوين ؛ زد/أو إس |
| ILP64 | 16 | 64 | 64 | 64 | 64 | شركة HAL Computer Systems تقوم بنقل نظام التشغيل Solaris إلى SPARC64 |
| SILP64 | 64 | 64 | 64 | 64 | 64 | نظام UNICOS الكلاسيكي [ 51 ] [ 52 ] (مقابل نظام UNICOS/mp، وما إلى ذلك) |
يُعدّ نموذج البرمجة خيارًا يُتخذ ليناسب مُترجمًا مُعينًا، ويمكن أن تتعايش عدة نماذج على نظام التشغيل نفسه. ومع ذلك، فإن نموذج البرمجة المُختار كنموذج أساسي لواجهة برمجة تطبيقات نظام التشغيل (API) هو الذي يُهيمن عادةً.
من الاعتبارات الأخرى نموذج البيانات المستخدم في برامج تشغيل الأجهزة . تشكل برامج التشغيل الجزء الأكبر من كود نظام التشغيل في معظم أنظمة التشغيل الحديثة (مع أن العديد منها قد لا يُحمّل أثناء تشغيل النظام). تستخدم العديد من برامج التشغيل المؤشرات بكثافة لمعالجة البيانات، وفي بعض الحالات، يتعين عليها تحميل مؤشرات بحجم معين في الأجهزة التي تدعمها للوصول المباشر إلى الذاكرة (DMA). على سبيل المثال، لا يستطيع برنامج تشغيل لجهاز PCI ذي 32 بت، يطلب من الجهاز نقل البيانات عبر DMA إلى مناطق عليا من ذاكرة جهاز ذي 64 بت، تلبية طلبات نظام التشغيل لتحميل البيانات من الجهاز إلى ذاكرة تتجاوز حاجز 4 جيجابايت ، لأن مؤشرات تلك العناوين لا تتسع في سجلات DMA الخاصة بالجهاز. تُحل هذه المشكلة بجعل نظام التشغيل يأخذ قيود ذاكرة الجهاز في الحسبان عند إنشاء طلبات DMA لبرامج التشغيل، أو باستخدام وحدة إدارة ذاكرة الإدخال/الإخراج (IOMMU).
البنى الحالية 64 بت
اعتبارًا من أغسطس 2023 ،تضمنت البنى المعمارية ذات 64 بت التي صُنعت المعالجات من أجلها ما يلي:
- الامتداد ذو 64 بت الذي أنشأته شركة Advanced Micro Devices (AMD) لبنية x86 الخاصة بشركة Intel (والتي حصلت Intel على ترخيصها لاحقًا)؛ ويُطلق عليه عادةً اسم x86-64 أو AMD64 أو x64 :
- امتدادات AMD64 من AMD (المستخدمة في معالجات Athlon 64 و Opteron و Sempron و Turion 64 و Phenom و Athlon II و Phenom II و APU و FX و Ryzen و Epyc )
- تُستخدم امتدادات Intel 64 من Intel في معالجات Intel Core 2/i3/i5/i7/i9، وبعض معالجات Atom ، ومعالجات Celeron و Pentium و Xeon الأحدث.
- امتدادات 64 بت من شركة VIA Technologies ، المستخدمة في معالجات VIA Nano
- بنية AArch64 الخاصة بشركة ARM Holdings
- معالجات PowerPC / Power ISA من IBM :
- معالج Power10 من IBM والمعالجات السابقة له، ومعالجات IBM A2
- بنية z/Architecture من IBM ، وهي نسخة 64 بت من بنية ESA/390 ، المستخدمة في أجهزة IBM Z الرئيسية من IBM :
- معالج IBM Telum II وأسلافه
- هيتاشي AP8000E
- RISC-V
- بنية SPARC V9:
- معالجات أوراكل M8 و S7 والمعالجات السابقة لها
- معالجات فوجيتسو SPARC64 XII و SPARC64 XIfx والمعالجات السابقة لها
- بنية MIPS64 من شركة MIPS Technologies
- بنية NEC SX
- هندسة إلبروس المعمارية:
- قوس
تستطيع معظم معمارية 64 بت المشتقة من نسخة 32 بت من نفس المعمارية تشغيل التعليمات البرمجية المكتوبة لنسخة 32 بت بشكل أصلي، دون أي تأثير سلبي على الأداء. على سبيل المثال، يمكن لمعالجات x86-64 تشغيل تطبيقات IA-32 بكامل سرعتها. [ 57 ] يُطلق على هذا النوع من الدعم عادةً اسم دعم المعمارية الثنائية، أو بشكل أعم، دعم المعمارية المتعددة .
انظر أيضاً
ملحوظات
- ↑ مثل الأرقام العشرية .
مراجع
- ↑ دليل مستخدم معالج بنتيوم، المجلد 1: كتاب بيانات معالج بنتيوم (PDF) . إنتل . 1993.
- ↑ شارما، نيتين كومار؛ ياداف، كيه بي؛ شارما، بي كيه. "دراسة مقارنة بين عائلتي المعالجات الدقيقة 64 بت وعائلة أبل" (ملف PDF) . المجلة الدولية للتكنولوجيا المبتكرة وهندسة الاستكشاف . 3 (2): 163-169 . ISSN 2278-3075 .
- ↑ "دليل مرجعي لأجهزة نظام الكمبيوتر Cray-1" (ملف PDF) . شركة Cray Research . 1977. تم الاطلاع عليه بتاريخ 8 أكتوبر 2013 .
- ↑ غرايمز، جاك؛ كون، ليس؛ بهارادواج، راجيف (يوليو-أغسطس 1989). "معالج إنتل i860 ذو 64 بت: وحدة معالجة مركزية للأغراض العامة مزودة بإمكانيات رسومات ثلاثية الأبعاد" . مجلة IEEE لرسومات الحاسوب وتطبيقاتها . 9 (4): 85-94 . رمز Bibcode : 1989ICGA....9d..85G . doi : 10.1109/38.31467 . S2CID 38831149. تاريخ الاسترجاع: 19 نوفمبر 2010 .
- ↑ "دليل مرجعي لمبرمج عائلة معالجات i860" (ملف PDF) . إنتل . 1991. تم الاطلاع عليه بتاريخ 12 سبتمبر 2019 .
- ↑ "شركة NEC تُقدّم معالجين دقيقين من نوع RISC 64 بت عاليي الأداء وبتكلفة منخفضة" (بيان صحفي). NEC . 20 يناير 1998. تاريخ الاطلاع: 9 يناير 2011.
تُستخدم إصدارات معالج VR4300 على نطاق واسع في تطبيقات أتمتة الأجهزة المنزلية والمكتبية، بما في ذلك لعبة الفيديو الشهيرة Nintendo 64™ وطابعات الليزر المتطورة مثل عائلة طابعات Hewlett-Packard LaserJet 4000 الحائزة على جوائز والتي تم الإعلان عنها مؤخرًا.
- ↑ "معلومات أساسية تقنية عن معالج MIPS R5000" (ملف PDF) . شركة MIPS Technologies . تاريخ الاسترجاع: 19 أغسطس 2024 .
- ↑ "DDR5 | DRAM" . سامسونج لأشباه الموصلات العالمية . تم الاطلاع عليه بتاريخ 19 يناير 2025 .
- ↑ "معالج i860 ذو 64 بت" . إنتل. 1989. مؤرشف من الأصل في 19 مارس 2011. تم الاطلاع عليه في 30 نوفمبر 2010 .
- ^ "تاريخ أتاري جاكوار" . أتارياج .
- ↑ جو هاينريش (1994). دليل مستخدم المعالج الدقيق MIPS R4000 ( الطبعة الثانية). شركة MIPS Technologies.
- ↑ ريتشارد ل. سايتس (1992). "بنية ألفا AXP". المجلة التقنية الرقمية . 4 (4). شركة المعدات الرقمية.
- ↑ غويناب، لينلي (3 أكتوبر 1994). "ألتراسبارك يُطلق العنان لأداء سبارك". تقرير المعالجات الدقيقة . 8 (13). موارد مايكرو ديزاين.
- ↑ بيشوب، جيه دبليو؛ وآخرون . (يوليو 1996). "معالج PowerPC AS A10 64-bit RISC". مجلة IBM للبحوث والتطوير . 40 (4). شركة IBM: 495-505 . doi : 10.1147/rd.404.0495 .
- ↑ غويناب، لينلي (14 نوفمبر 1994). "PA-8000 يجمع بين التعقيد والسرعة". تقرير المعالج الدقيق . 8 (15). موارد مايكرو ديزاين.
- ↑ إف بي أوكونيل؛ إس دبليو وايت (نوفمبر 2000). "باور 3: الجيل التالي من معالجات باور بي سي". مجلة آي بي إم للبحوث والتطوير . 44 (6). شركة آي بي إم: 873-884 . doi : 10.1147/rd.446.0873 .
- ↑ "شركة VIA تكشف تفاصيل معالج Isaiah من الجيل التالي" (بيان صحفي). شركة VIA Technologies، Inc. مؤرشف من الأصل بتاريخ 11 أكتوبر 2007. تم الاطلاع عليه بتاريخ 18 يوليو 2007 .
- ↑ "معاينة تقنية ARMv8" (ملف PDF) . 31 أكتوبر 2011. مؤرشف من الأصل (ملف PDF) في 11 نوفمبر 2011. تم الاطلاع عليه في 15 نوفمبر 2012 .
- ↑ "أطلقت شركة ARM سلسلة معالجات Cortex-A50، وهي المعالجات الأكثر كفاءة في استهلاك الطاقة في العالم من فئة 64 بت" (بيان صحفي). شركة ARM Holdings . تاريخ الاطلاع: 31 أكتوبر 2012 .
- ↑ "كلمة رئيسية من ARM: إطلاق معالجات ARM Cortex-A53 وARM Cortex-A57 64 بت ARMv8" . ARMdevices.net . 31-10-2012.
- ↑ أسانوفيتش، كرست ؛ باترسون، ديفيد أ. (6 أغسطس 2014). يجب أن تكون مجموعات التعليمات مجانية: حالة RISC-V (ملف PDF) . قسم الهندسة الكهربائية وعلوم الحاسوب، جامعة كاليفورنيا، بيركلي. UCB/EECS-2014-146.
- ↑ "شركة Synopsys تُقدّم معالج ARC جديد 64 بت" . مؤرشف من الأصل بتاريخ 31 مارس 2022.
- ↑ ستيفان بيركا. "نظام التشغيل يونيكوس" . www.operating-system.org. مؤرشف من الأصل بتاريخ 26 نوفمبر 2010. تم الاطلاع عليه بتاريخ 19 نوفمبر 2010 .
- ↑ جون "ماد دوغ" هول (1 يونيو 2000). "حياتي والبرمجيات الحرة" . مجلة لينكس .
- ↑ أندي كلين. نقل لينكس إلى x86-64 (ملف PDF) . ندوة أوتاوا لينكس 2001.
الحالة: النواة، والمترجم، وسلسلة الأدوات تعمل. النواة تعمل على المحاكي وتُستخدم لنقل مساحة المستخدم وتشغيل البرامج.
- ١ ٢ جون سيراكوزا (سبتمبر ٢٠٠٩). "نظام التشغيل ماك أو إس إكس ١٠.٦ سنو ليوبارد: مراجعة آرس تكنيكا" . آرس تكنيكا . ص ٥. مؤرشف من الأصل في ٩ أكتوبر ٢٠٠٩. تم الاطلاع عليه بتاريخ ٢٠٠٩-٠٩-٠٦ .
- ↑ جوريس إيفرز (5 يناير 2005). "مايكروسوفت تتخلى عن ويندوز إكس بي لصالح إيتانيوم" . كمبيوتر وورلد. مؤرشف من الأصل في 18 يونيو 2013. تم الاطلاع عليه في 17 أكتوبر 2017 .
- ↑ «مايكروسوفت ترفع حد السرعة مع توفر إصدارات 64 بت من ويندوز سيرفر 2003 وويندوز إكس بي بروفيشنال» (بيان صحفي). مايكروسوفت. 25 أبريل 2005. تم الاطلاع عليه بتاريخ 10 سبتمبر 2015 .
- ↑ "استطلاع أجهزة ستيم" . شركة فالف للبرمجيات. 4 ديسمبر 2010. مؤرشف من الأصل في 4 ديسمبر 2010.
- ↑ "نظام التشغيل الأكثر استخدامًا هو ويندوز 7 64 بت" . Bit-Tech. 2010-08-04.
- ↑ "UEFI على منصات Dell BizClient" (PDF) .
- ↑ "دليل مبرمج AMD64، المجلد 2: برمجة النظام" . شركة أدفانسد مايكرو ديفايسز. يونيو 2025. ص 127.
- ↑ "دليل مطوري برامج معمارية Intel 64 و IA-32، المجلد 3A: دليل برمجة النظام، الجزء 1" (ملف PDF) . Intel. سبتمبر 2016. ص 4-2.
- ↑ "Power ISA الإصدار 3.0" . شركة IBM . 30 نوفمبر 2015. ص 983.
- ↑ "Oracle SPARC Architecture 2015 Draft D1.0.9" (PDF) . Oracle . 16 نوفمبر 2016. ص 475. مؤرشف من الأصل (PDF) في 22 أبريل 2020.
- ↑ "دليل مرجعي لهندسة ARM لهندسة A-profile" . 30 نوفمبر 2024. القسم D8.1.6 "حجم العنوان الفعلي المُنفذ"، القسم D8.1.8 "نطاقات العناوين الافتراضية المدعومة".
- ↑ ماشي، جون (أكتوبر 2006). "الطريق الطويل إلى 64 بت" . مجلة ACM Queue . 4 (8): 85-94 . doi : 10.1145/1165754.1165766 .
- ↑ "ويندوز 7: 64 بت أم 32 بت؟" . منتديات ويندوز 7. 2 أبريل 2009. مؤرشف من الأصل في 5 أبريل 2009. تم الاطلاع عليه بتاريخ 5 أبريل 2009 .
- ↑ "الأسئلة الشائعة حول Java HotSpot VM" . أوراكل . تم الاطلاع عليه بتاريخ 13-12-2024 .
- ↑ "وصف للاختلافات بين إصدارات ويندوز فيستا 32 بت وإصدارات ويندوز فيستا 64 بت" . مؤرشف من الأصل بتاريخ 15 أكتوبر 2011. تم الاطلاع عليه بتاريخ 14 أكتوبر 2011 .
- ↑ مارك روسينوفيتش (21 يوليو 2008). "تجاوز حدود ويندوز: الذاكرة الفعلية" . مؤرشف من الأصل في 7 أبريل 2017. تم الاطلاع عليه في 9 مارس 2017 .
- ↑ تشابيل، جيف (27 يناير 2009). "الذاكرة المرخصة في نظام ويندوز فيستا 32 بت" . geoffchappell.com . WP:SPS . تاريخ الاسترجاع: 9 مارس 2017 .
- ↑ "داخل التطبيقات الأصلية" . Technet.microsoft.com. 1 نوفمبر 2006. مؤرشف من الأصل في 23 أكتوبر 2010. تم الاطلاع عليه في 19 نوفمبر 2010 .
- ↑ لينكولن سبيكتور (12 أغسطس 2013). "تشغيل برنامج قديم على جهاز كمبيوتر جديد" .
- ↑ بيتر سيباخ (2006). "استكشاف تطوير 64 بت على معالج POWER5: ما مدى قابلية نقل التعليمات البرمجية الخاصة بك حقًا؟" . آي بي إم .
- ↑ هنري سبنسر. "الوصايا العشر لمبرمجي لغة سي" .
- ↑ "قصة ثاد وبلاندر" . Datacenterworks.com . تم الاطلاع عليه بتاريخ 19-11-2010 .
- ↑ "نماذج بيانات ILP32 وLP64 وأحجام أنواع البيانات" . دليل برمجة z/OS XL C/C++ .
- 1 2 3 "نماذج البرمجة 64 بت" . تم الاسترجاع في 2020-06-05 .
- ↑ "استخدام واجهة ILP64 مقابل واجهة LP64" . إنتل . تم الاطلاع عليه بتاريخ 19 ديسمبر 2025 .
- 1 2 "دليل كراي المرجعي للغة C/C++" . أغسطس 1998. الجدول 9-1. ربط أنواع البيانات في أنظمة كراي للأبحاث. مؤرشف من الأصل في 16 أكتوبر 2013. تم الاطلاع عليه في 15 أكتوبر 2013 .
- 1 2 "دليل كراي المرجعي للغة C و C++ (8.7) S-2179" . تم الاطلاع عليه بتاريخ 24 يونيو 2020 .
- ↑ "نماذج البيانات المجردة - تطبيقات ويندوز" . 30 مايو 2018.
- ↑ "ورقة بيضاء حول ILP32 لـ AArch64" . شركة ARM المحدودة. 9 يونيو 2015. مؤرشفة من الأصل في 30 ديسمبر 2018. تم الاطلاع عليها في 9 أكتوبر 2018 .
- ↑ "أجهزة أبل في عام 2018" . woachk، باحث أمني. 6 أكتوبر 2018.
- ↑ "/usr/web/sources/plan9/sys/src/libmach/executable.c - Plan 9 from Bell Labs" . 9p.io. مؤرشف من الأصل بتاريخ 12 أغسطس 2025. تم الاطلاع عليه بتاريخ 8 يوليو 2026 .
- ↑ stevewhims. "برمجة 64 بت لمطوري الألعاب - تطبيقات Win32" . learn.microsoft.com . تم الاطلاع عليه بتاريخ 22-10-2025 .
روابط خارجية
- دليل الانتقال إلى 64 بت، مكتبة مطوري ماك
- كاربوف، أندريه. "مجموعة من الأمثلة على أخطاء 64 بت في البرامج الحقيقية" . مؤرشف من الأصل في 23 سبتمبر 2021.
- كيلغارد، مارك ج. "هل كود X الخاص بك جاهز لأنظمة 64 بت؟" . مؤرشف من الأصل في 3 يونيو 2001. تم الاطلاع عليه في 26 سبتمبر 2012 .
- دروس حول تطوير تطبيقات C/C++ ذات 64 بت في Wayback Machine (تمت أرشفة في 14 أبريل 2021)
- نماذج البرمجة 64 بت: لماذا LP64؟
- معمارية AMD64 (EM64T)
- أجهزة كمبيوتر 64 بت
- وحدة البيانات
