МЕХАНИЗМ ЗАПРОСА ПОЗДНЕЙ БЛОКИРОВКИ ДЛЯ ПРОПУСКА АППАРАТНОЙ БЛОКИРОВКИ (HLE)

1. Устройство, содержащее:
процессорный элемент для выполнения критического участка, при этом критический участок
разграничивается операцией начала критического участка и операцией окончания критического участка, где операция начала критического участка должна ссылаться на значение блокировки и адрес;
участок памяти, связанный с процессорным элементом, для хранения записи, ассоциированной с критическим участком, при этом в записи содержится значение блокировки; и
логический узел запроса поздней блокировки, соединенный с участком памяти, для попыток обновления значения блокировки по адресу в ответ на выявление события запроса поздней блокировки при ожидании обработки критического участка.
2. Устройство по п.1, дополнительно содержащее кэш-память, связанную с процессорным элементом, при этом строка кэш-памяти должна быть ассоциирована с адресом, и логический узел запроса поздней блокировки, осуществляющий попытки обновления значения блокировки по данному адресу, включает в себя логический узел запроса поздней блокировки, осуществляющий попытки обновления значения блокировки в строке кэш-памяти.
3. Устройство по п.2, в котором участок памяти предназначен для хранения записи в стеке записей, и запись также должна содержать представление адреса, и в котором операция начала критического участка включает в себя операцию сохранения значения блокировки по заданному адресу, при этом операция сохранения значения блокировки, при ее выполнении процессорным элементом, должна производиться с записью, ассоциированной с критическим участком, а не с адресом.
4. Устройство по п.3, в котором буфер хранения связан с процессорным элементом и предназначен для хранения записи, связанной с хранением значения блокировки, при этом запись хранения содержит поле кода блока, а логический узел обновления, связанный с буфером хранения, должен обновлять поле кода блока с присвоением значения блокировки в ответ на выявления события запроса поздней блокировки.
5. Устройство по п.4, в котором логический узел обновления должен обновлять поле кода блока с присвоением незаблокированного значения в ответ на успешную попытку логического узла запроса поздней блокировки обновить строку кэш-памяти с присвоением значения блокировки.
6. Устройство по п.5, в котором для успешной попытки логического узла запроса поздней блокировки обновить строку кэш-памяти, необходимо, чтобы текущее значение строки кэш-памяти представляло собой незаблокированное значение, что позволяет логическому узлу запроса поздней блокировки осуществить обновление значения блокировки.
7. Устройство по п.1, в котором событие запроса поздней блокировки выбирается из группы, состоящей из события истечения срока таймера, события заполнения множества кэшей и неотменяемого события.
8. Устройство, содержащее:
процессорный элемент для выполнения текущего критического участка и следующего критического участка;
буфер доступа, связанный с процессорным элементом для хранения записи доступа, ассоциированной с операцией доступа из следующего критического участка, где запись доступа должна содержать поле кода блока, при этом поле кода блока содержит заблокированное значение для указания того, что выполнение операции доступа должно быть остановлено; и
логический узел обновления, соединенный с буфером обновления для обновления поля кода блока с присвоением заблокированного значения в ответ на выявление события запроса поздней блокировки, связанного с текущим критическим участком.
9. Устройство по п.8, в котором поле кода блока должно по умолчанию содержать незаблокированное значение для указания того, что операция доступа должна быть выполнена.
10. Устройство по п.8, в котором событие запроса поздней блокировки выбирается из группы, состоящей из события истечения срока таймера, события заполнения множества кэшей и неотменяемого события.
11. Устройство по п.8, в котором логический узел обновления должен обновлять поле кода блока с присвоением заблокированного значения в ответ на выявление события запроса поздней блокировки и в ответ на выполнение предварительного условия запроса поздней блокировки.
12. Устройство по п.11, в котором предварительное условие запроса поздней блокировки включает в себя разрешение того, чтобы множество ожидающих обработки записей буфера заполнения было глобально видимым.
13. Устройство по п.11, в котором буфер доступа является буфером загрузки и в котором операция доступа включает в себя последующую операцию загрузки с целью сохранения (L_S_I) для обозначения начала следующего критического участка.
14. Устройство по п.13, дополнительно содержащее стек блокировки, который содержит запись стека блокировки, связанную с текущей операцией L_S_I для обозначения начала текущего критического участка, в котором предварительное условие запроса поздней блокировки включает в себя ожидание операции сохранения, связанной с текущей L_S_I для текущего критического участка, которая должна обновить запись стека блокировки.
15. Устройство по п.13, в котором заблокированное значение содержит идентификатор и в котором в ответ на завершение запроса поздней блокировки логический узел обновления должен передать идентификатор в запись буфера загрузки для разрешения выполнения операции L_S_I.
16. Способ, включающий в себя:
выявление события запроса поздней блокировки при выполнении текущего критического участка;
инициацию запроса поздней блокировки для текущего критического участка; и
останов множества вышестоящих сохранений в ответ на инициацию запроса поздней блокировки для текущего критического участка.
17. Способ по п.16, в котором событие запроса поздней блокировки выбирается из группы, включающей в себя истечение времени контрольного таймера, выбор для замещения строки кэша, в которой осуществлялась трассировка доступа к памяти во время выполнения критического участка, и обнаружение неотменяемого события.
18. Способ по п.16, в котором инициация запроса поздней блокировки для текущего критического участка включает в себя инициацию сохранения значения блокировки, ссылающегося на адрес блокировки, при этом значение блокировки и адрес должны храниться в записи стека блокировки, связанной с операцией начала критического участка для текущего критического участка.
19. Способ по п.18, в котором множество вышестоящих сохранений хранится в буфере сохранения и в котором множество вышестоящих сохранений разблокируется для выполнения в ответ на сохранение значения блокировки, ссылающегося на аннулирование адреса блокировки.
20. Способ по п.16, в котором инициация запроса поздней блокировки для критического участка выполняется в ответ на глобальную видимость множества ожидающих обработки записей буфера заполнения и обнаружения того, что запись стека блокировки, связанная с критическим участком, обновляется с присвоением значения блокировки.
21. Способ по п.20, дополнительно включающий в себя:
выявление следующей операции начала критического участка для следующего критического участка; и
блокирование создания контрольной точки, связанной со следующим критическим участком.
22. Способ по п.21, в котором блокирование создания контрольной точки, связанной со следующим критическим участком, осуществляется в ответ на выявление следующей операции начала критического участка.
23. Способ по п.21, дополнительно включающий в себя: определение того, что следующий критический участок не является вложенным критическим участком, при этом блокирование создания контрольной точки осуществляется в ответ на выявление того, что следующий критический участок не является вложенным критическим участком.
24. Способ по п.23, в котором определение того, что следующий критический участок не является вложенным критическим участком, включает в себя:
сброс буфера сохранения в ответ на то, что буфер сохранения содержит записи буфера сохранения;
в ответ на сброс буфера сохранения:
определение, что следующий критический участок является вложенным критическим участком, реагирующим на отсутствие обнаружения текущей операции окончания критического участка; и
определение, что следующий критический участок не является вложенным критическим участком, реагирующим на обнаружение текущей операции окончания критического участка.
25. Способ по п.21, в котором операция начала критического участка для следующего критического участка включает в себя операцию загрузки с целью сохранения (L_S_I) и в котором блокирование создания контрольной точки, связанной со следующим критическим участком, включает блокирование операции L_S_I от отправки из буфера загрузки.