
13-11-2007, 21:41
|
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,778
|
|
1. זה לא קשור להקצאה - הרי איך מכניסים משהו לתא בזיכרון? מכניסים אותו קודם לכן לרגיסטר במעבד, ואז מבצעים העברה מהרגיסטר לתוך כתובת בזיכרון... בכתובת זיכרון שאורכה 64 ביט, אפשר לפנות כמובן ליותר זיכרון...
לגבי כמה מידע נכנס בתא זיכרון מסויים, האמת שאני לא ממש זוכר, אבל חושב שזה לא משתנה בעקבות 64 ביט במעבד - השינוי במעבד בסך הכל מאפשר לפנות ליותר תאים מהמקסימום האפשרי שיש ב 32 ביט, בגלל מגבלת כמות הכתובות האפשריות (אני חושב שכל תא זה בייט אחד, אבל אל תתפוס אותי במילה...)
לגבי הפעולה במחזור שעון אחד - דמיין שאתה צריך לחבר שני מספרים באורך 30 ביטים. במעבד 32 ביט, זה יבוצע כמובן בפעולה אחת, כי המעבד יכול לעבד אורכים של מספרים כאלה בפעולת ADD אחת. עכשיו דמיין שאתה רוצה לחבר שני מספרים שאורכם 33 ביט. במעבד 32 ביט, אין לך שום פעולה שתאפשר לך לעשות כזה דבר. ויותר מזה, אתה אפילו לא יכול לאחסן כזו כמות של מידע במעבד לצורך שום חישוב שהוא. אז בתוכנה שאתה כותב, המהדר שלה עושים טריקים מתמטיים, ומבצע מספר פעולות שונות ומגוונות, כדי להגיע לתוצאה של פעולת החיבור הפשוטה שלך. לעומת זאת, במעבד 64 ביט, המעבד יכול בבת אחת לחבר את שני המספרים האלה בפעולה אחת. עכשיו תחשוב על הדוגמא הבסיסית ביותר הזאת, ותשליך מכאן על כל פעולה של עיבוד של כמות של המידע, ותחשוב על זה שזה בעצם מה שהמעבד עושה כמעט כל הזמן, ותראה כמה דברים יכולים להיות הרבה יותר יעילים...
4. יש כל מיני אסכולות בגישה לזיכרון בריבוי מעבדים. ממליץ לך לקרוא ברשת על NUMA
|