Статус нашего сайта: |
ICQ Information Center |
ICQ SHOP 5-значные 6-значные 7-значные 8-значные 9-значные Rippers List ОПЛАТА СТАТЬИ СЕКРЕТЫ HELP CENTER OWNED LIST РОЗЫСК!New! ICQ РЕЛИЗЫ Протоколы ICQ LOL ;-) Настройка компьютера Аватарки Смайлики СОФТ Mail Checkers Bruteforces ICQTeam Soft 8thWonder Soft Other Progs ICQ Patches Miranda ICQ ФорумАрхив! ВАШ АККАУНТ ICQ LiveJournal
РекламаНаш канал:irc.icqinfo.ru |
Таненбаум Э.- Архитектура компьютера. стр.461Когда начинается следующая операция acquire, производится проверка, все ли предыдущие операции release завершены. Если нет, то операция acquire задерживается до тех пор, пока это не будет сделано (а перед тем, как завершатся все операции release, должны быть завершены все операции записи). Таким образом, если следующая операция acquire выполняется через достаточно длительный промежуток времени после последней операции release, ей не нужно ждать, и она может войти в критическую область без задержки. Если операция acqui ге выполняется через небольшой промежуток времени после операции release, она (и все команды, которые должны выполняться следом) ожидает завершения всех операций release. Это гарантирует, что все переменные в критической об ласти будут обновлены. Такая модель немного сложнее, чем модель слабой состоятельности, но она имеет существенное преимущество: здесь не нужно задерживать выполнение команд так часто, как в модели слабой состоятельности. Вопрос о состоятельности памяти нельзя считать окончательно решенным. Исследователи до сих пор предлагают новые модели [35, 86]. иМА-мультипроцессоры в симметричных мультипроцессорных архитектурах Самые простые мультипроцессоры имеют всего одну шину (рис. 8.21, а). Два или более процессора и один или несколько модулей памяти используют эту шину для взаимодействия. Если процессору нужно считать слово из памяти, он сначала проверяет, свободна ли шина. Если шина свободна, процессор помещает адрес нужного слова на шину, устанавливает несколько управляющих сигналов и ждет, когда память поместит на шину запрошенное слово. Рис. 8.21. Три варианта мультипроцессора на одной шине: без кэш-памяти (а); с кэш-памятью (б); с кэш-памятью и отдельными модулями локальной памяти (б) Если шина занята, процессор просто ждет, когда она освободится. С этой схемой связана одна проблема. При наличии двух или трех процессоров доступ к шине регулировать не сложно, трудности возникают, когда процессоров 32 или 64. Производительность системы в этом случае полностью определяется пропускной способностью шины, и многим процессорам большую часть времени приходится простаивать. Чтобы разрешить проблему, нужно добавить к каждому процессору кэшпамять, как показано на рис. 8.21, б. Кэш-память может находиться внутри микросхемы процессора, рядом с микросхемой процессора, на плате процессора. Допустимы любые комбинации этих вариантов. Поскольку в этом случае считывать многие слова можно будет из кэша, трафик на шине снизится, и система сможет обслуживать большее количество процессоров. Таким образом, кэширование дает в данном случае значительный эффект. В следующей схеме каждый процессор имеет не только кэш, но и собственную локальную память, к которой он получает доступ через выделенную локальную шину (рис. 8.21, б). Чтобы оптимально задействовать эту конфигурацию, компилятор должен поместить в локальные модули памяти весь программный код, строки, константы и другие данные, предназначенные только для чтения, а также стеки и локальные переменные. Общая память потребуется только для хранения совместно используемых переменных. В большинстве случаев такое разумное распределение значительно снижает интенсивность трафика на шине и не требует активного содействия со стороны компилятора. |