ЗАПИСЬ ТРАССИРОВКИ ПОСРЕДСТВОМ РЕГИСТРАЦИИ ВХОДЯЩИХ ПОТОКОВ В КЭШ НИЖНЕГО УРОВНЯ НА ОСНОВЕ ЭЛЕМЕНТОВ В КЭШЕ ВЕРХНЕГО УРОВНЯ

1. Вычислительное устройство, содержащее:
множество блоков обработки;
множество кэшей уровня N;
кэш уровня (N+i), который связан с двумя или более из множества кэшей уровня N и который сконфигурирован в качестве резервного хранилища для множества кэшей уровня N; и
управляющую логику, которая конфигурирует вычислительное устройство для выполнения, по меньшей мере, следующего:
обнаружение входящего потока в первый кэш уровня N из множества кэшей уровня N, при этом входящий поток содержит данные, хранящиеся в ячейке памяти; и
на основе обнаружения входящего потока в первый кэш уровня N, проверка кэша уровня (N+i), чтобы определить, были ли ранее зарегистрированы упомянутые данные для ячейки памяти от имени второго блока обработки, и выполнение одного из следующего:
если данные для ячейки памяти были ранее зарегистрированы от имени второго блока обработки, вызов регистрации этих данных для ячейки памяти от имени первого блока обработки посредством ссылки на данные регистрации, которые ранее были зарегистрированы от имени второго блока обработки; или
если данные для ячейки памяти ранее не регистрировались от имени второго блока обработки, вызов регистрации этих данных для ячейки памяти по значению от имени первого блока обработки.
2. Вычислительное устройство по п.1, в котором проверка кэша уровня (N+i), чтобы определить, были ли ранее зарегистрированы данные для ячейки памяти от имени второго блока обработки, содержит одно или более из следующего:
определение того, имеет ли строка кэша в кэше уровня (N+i), которая соответствует упомянутой ячейке памяти, один или более установленных учетных битов;
определение того, хранится ли в кэше уровня (N+i) строка кэша, которая соответствует упомянутой ячейке памяти, во входе, который соответствует зарегистрированному блоку обработки; или
определение того, имеет ли строка кэша в кэше уровня (N+i), которая соответствует упомянутой ячейке памяти, связанные с ней данные состояния протокола когерентности кэша (CCP), которые можно использовать для определения того, что строка кэша была зарегистрирована.
3. Вычислительное устройство по п.1, при этом i равно 1, так что кэш уровня (N+i) содержит кэш уровня (N+1).
4. Вычислительное устройство по п.1, при этом i равно 2, так что кэш уровня (N+i) содержит кэш уровня (N+2).
5. Вычислительное устройство по п.1, при этом:
i равно 1, так что кэш уровня (N+i) содержит кэш уровня (N+1);
вычислительное устройство также содержит кэш уровня (N+2), который сконфигурирован в качестве резервного хранилища для кэша уровня (N+1); и
проверка кэша уровня (N+1), чтобы определить, были ли ранее зарегистрированы данные для ячейки памяти от имени второго блока обработки, содержит:
определение того, что ни одна строка кэша в кэше уровня (N+1) не соответствует упомянутой ячейке памяти; и
проверку кэша уровня (N+2), чтобы определить, были ли ранее зарегистрированы упомянутые данные для ячейки памяти от имени второго блока обработки.
6. Вычислительное устройство по п.1, в котором вызов регистрации данных для ячейки памяти от имени первого блока обработки посредством ссылки на данные регистрации, которые ранее были зарегистрированы от имени второго блока обработки, содержит одно или более из следующего:
регистрация адреса упомянутой ячейки памяти;
регистрация адреса упомянутой ячейки памяти и данных упорядочения;
регистрация ссылки на вход кэша;
регистрация ссылки на вход кэша и данных упорядочения;
регистрация второго блока обработки в качестве предыдущего владельца строки кэша, соответствующей упомянутой ячейке памяти; или
регистрация данных протокола когерентности кэша (CCP) с привязкой ко второму блоку обработки.
7. Вычислительное устройство по п.1, в котором вызов регистрации данных для ячейки памяти от имени первого блока обработки содержит задержку регистрации на основе доступности одного или обоих из ресурсов процессора или памяти.
8. Вычислительное устройство по п.1, в котором задержка регистрации содержит обеспечение недействительности строки кэша, чтобы оставить упомянутые данные для ячейки памяти для целей отложенной регистрации.
9. Вычислительное устройство по п.1, в котором управляющая логика также конфигурирует вычислительное устройство для выполнения, по меньшей мере, следующего:
вытеснение первой строки кэша в первом кэше уровня N, которая соответствует упомянутой ячейке памяти, оставляя при этом вторую строку кэша в кэше уровня (N+i), которая соответствует этой ячейке памяти; и
на основе обнаружения последующего входящего потока в первый кэш уровня N, каковой последующий входящий поток также содержит упомянутые данные, хранящиеся в ячейке памяти, вызов регистрации этого последующего входящего потока посредством ссылки на основе присутствия второй строки кэша.
10. Вычислительное устройство по п.1, в котором управляющая логика также конфигурирует вычислительное устройство для выполнения, по меньшей мере, следующего:
вытеснение первой строки кэша в первом кэше уровня N, которая соответствует упомянутой ячейке памяти, оставляя при этом вторую строку кэша в кэше уровня (N+i), которая также соответствует этой ячейке памяти;
обнаружение последующего входящего потока в первый кэш уровня N на основе исполнения дополнительного кода в первом блоке обработки, причем этот последующий входящий поток также содержит упомянутые данные, хранящиеся в ячейке памяти; и
на основе, по меньшей мере, обнаружения последующего входящего потока в первый кэш уровня N и на основе, по меньшей мере, присутствия второй строки кэша, определение того, что упомянутый последующий входящий поток не должен регистрироваться.
11. Способ для записи трассировки, основывающийся на записи входящего потока в кэш нижнего уровня посредством ссылки на предшествующие данные регистрации на основе сведений об одном или более кэшах верхнего уровня, причем способ реализуется на вычислительном устройстве, которое включает в себя (i) множество блоков обработки, (ii) множество кэшей уровня N и (iii) кэш уровня (N+i), который связан с двумя или более из множества кэшей уровня N и который сконфигурирован в качестве резервного хранилища для множества кэшей уровня N, при этом способ содержит этапы, на которых:
обнаруживают входящий поток в первый кэш уровня N из множества кэшей уровня N, причем входящий поток содержит данные, хранящиеся в ячейке памяти; и
на основе обнаружения входящего потока в первый кэш уровня N, проверяют кэш уровня (N+i), чтобы определить, были ли ранее зарегистрированы упомянутые данные для ячейки памяти от имени второго блока обработки, и выполняют одно из следующего:
если данные для ячейки памяти были ранее зарегистрированы от имени второго блока обработки, вызывают регистрацию этих данных для ячейки памяти от имени первого блока обработки посредством ссылки на данные регистрации, которые ранее были зарегистрированы от имени второго блока обработки; или
если данные для ячейки памяти ранее не регистрировались от имени второго блока обработки, вызывают регистрацию этих данных для ячейки памяти по значению от имени первого блока обработки.
12. Способ по п.11, в котором этап, на котором проверяют кэш уровня (N+i), чтобы определить, были ли ранее зарегистрированы данные для ячейки памяти от имени второго блока обработки, содержит один или нескольких этапов, на которых:
определяют, имеет ли строка кэша в кэше уровня (N+i), которая соответствует упомянутой ячейке памяти, один или более установленных учетных битов;
определяют, хранится ли в кэше уровня (N+i) строка кэша, которая соответствует упомянутой ячейке памяти, во входе, который соответствует зарегистрированному блоку обработки; или
определяют, имеет ли строка кэша в кэше уровня (N+i), которая соответствует упомянутой ячейке памяти, связанные с ней данные состояния протокола когерентности кэша (CCP), которые можно использовать для определения того, что строка кэша была зарегистрирована.
13. Способ по п.11, в котором i равно 1, так что кэш уровня (N+i) содержит кэш уровня (N+1).
14. Способ по п.11, в котором в котором i равно 2, так что кэш уровня (N+i) содержит кэш уровня (N+2).
15. Компьютерный программный продукт, содержащий один или более машиночитаемых носителей, на которых хранятся машиноисполняемые инструкции, которые конфигурируют вычислительное устройство, которое включает в себя (i) множество блоков обработки, (ii) множество кэшей уровня N и (iii) кэш уровня (N+i), который связан с двумя или более из множества кэшей уровня N и который сконфигурирован в качестве резервного хранилища для множества кэшей уровня N, для выполнения, по меньшей мере, следующего:
обнаружение входящего потока в первый кэш уровня N из множества кэшей уровня N, причем входящий поток содержит данные, хранящиеся в ячейке памяти; и
на основе обнаружения входящего потока в первый кэш уровня N, проверка кэша уровня (N+i), чтобы определить, были ли ранее зарегистрированы упомянутые данные для ячейки памяти от имени второго блока обработки, и выполнение одного из следующего:
если данные для ячейки памяти были ранее зарегистрированы от имени второго блока обработки, вызов регистрации этих данных для ячейки памяти от имени первого блока обработки посредством ссылки на данные регистрации, которые ранее были зарегистрированы от имени второго блока обработки; или
если данные для ячейки памяти ранее не регистрировались от имени второго блока обработки, вызов регистрации этих данных для ячейки памяти по значению от имени первого блока обработки.