СПОСОБ И УСТРОЙСТВО ДЛЯ КЭШИРОВАНИЯ КОМАНД ПЕРЕМЕННОЙ ДЛИНЫ

1. Способ кэширования команд переменной длины, содержащий этапы, на которых:
записывают данные команд в строку кэша и
сохраняют резервную копию данных команд для одной или более позиций границы кэша.
2. Способ по п.1, в котором этап сохранения резервной копии данных команд для одной или более позиций границы кэша содержит этап, на котором копируют во вспомогательное запоминающее устройство данные команд для одной или более позиций границы кэша.
3. Способ по п.2, в котором вспомогательное запоминающее устройство содержит одно из массива тегов, ассоциативно связанного с кэшем команд, одного или более элементов резервного запоминающего устройства, включенного или ассоциативно связанного с кэшем команд, отдельного массива памяти и кэша верхнего уровня.
4. Способ по п.2, в котором этап копирования во вспомогательное запоминающее устройство данных команд для одной или более позиций границы кэша содержит этап, на котором копируют данные команд для позиции границы внутри строки кэша во вспомогательное запоминающее устройство.
5. Способ по п.2, в котором этап копирования во вспомогательное запоминающее устройство данных команд для одной или более позиций границы кэша содержит этап, на котором копируют данные команд для позиции границы между строками кэша во вспомогательное запоминающее устройство.
6. Способ по п.1, в котором этап сохранения резервной копии данных команд для одной или более позиций границы кэша содержит этапы, на которых
идентифицируют невыровненный сегмент команды, включенный в данные команды; и
копируют невыровненный сегмент во вспомогательное запоминающее устройство.
7. Способ по п.6, в котором этап идентификации невыровненного сегмента команды, включенного в данные команды, содержит этап, на котором предварительно декодируют команду так, чтобы идентифицировать сегмент команды с пересечением границы.
8. Способ по п.6, в котором этап идентификации невыровненного сегмента команды, включенного в данные команды, содержит этап, на котором обрабатывают местоположение записи строки кэша команды так, чтобы идентифицировать сегмент команды с пересечением границы.
9. Способ по п.8, в котором местоположение записи строки кэша команды соответствует адресу выборки, ассоциативно связанному с командой.
10. Способ по п.6, в котором этап идентификации невыровненного сегмента команды, включенного в данные команды, содержит этап, на котором обрабатывают информацию длины, ассоциативно связанную с командой, так, чтобы идентифицировать сегмент команды с пересечением границы.
11. Способ по п.6, в котором этап идентификации невыровненного сегмента команды, включенного в данные команды, содержит этап, на котором обрабатывают архивные данные несовмещения команды так, чтобы идентифицировать сегмент команды с пересечением границы.
12. Способ по п.6, в котором этап идентификации невыровненного сегмента команды, включенного в данные команды, содержит этап, на котором обрабатывают часть команды, выбранную заранее из остатка команды, так, чтобы идентифицировать сегмент команды с пересечением границы.
13. Способ по п.12, в котором часть команды, выбранная заранее из остатка команды, содержит одно из части команды, выбранной в ответ на критическую операцию обращения к запоминающему устройству за первым словом, и части команды, выбранной в ответ на критическую операцию обращения к запоминающему устройству за первым двойным словом.
14. Устройство, содержащее контроллер кэша, выполненный с возможностью направлять сохранение данных команд в строку кэша, включенную в кэш команд, и направлять сохранение резервной копии данных команд для одной или более позиций границы кэша.
15. Устройство по п.14, в котором контроллер кэша выполнен с возможностью направлять сохранение резервной копии данных команд для одной или более позиций границы кэша посредством копирования во вспомогательное запоминающее устройство данных команд для одной или более позиций границы кэша.
16. Устройство по п.15, в котором вспомогательное запоминающее устройство содержит одно из массива тегов, ассоциативно связанного с кэшем команд, одного или более элементов резервного запоминающего устройства, включенного или ассоциативно связанного с кэшем команд, отдельного массива памяти и кэша верхнего уровня.
17. Устройство по п.15, в котором контроллер кэша выполнен с возможностью копировать во вспомогательное запоминающее устройство данные команд для одной или более позиций границы кэша посредством копирования данных команд для позиции границы внутри строки кэша во вспомогательное запоминающее устройство.
18. Устройство по п.14, в котором контроллер кэша выполнен с возможностью копировать во вспомогательное запоминающее устройство данные команд для одной или более позиций границы кэша посредством копирования данных команд для позиции границы между строками кэша во вспомогательное запоминающее устройство.
19. Устройство по п.14, в котором контроллер кэша выполнен с возможностью направлять сохранение резервной копии данных команд для одной или более позиций границы кэша посредством идентификации невыровненного сегмента команды, включенного в данные команды, и копирования невыровненного сегмента во вспомогательное запоминающее устройство.
20. Устройство по п.19, в котором контроллер кэша выполнен с возможностью идентифицировать невыровненный сегмент команды, включенный в данные команды, посредством обработки предварительно декодированной информации, ассоциативно связанной с командой, так, чтобы идентифицировать сегмент команды с пересечением границы.
21. Устройство по п.19, в котором контроллер кэша выполнен с возможностью идентифицировать невыровненный сегмент команды, включенный в данные команды, посредством обработки местоположения записи строки кэша команды так, чтобы идентифицировать сегмент команды с пересечением границы.
22. Устройство по п.21, в котором местоположение записи строки кэша команды соответствует адресу выборки, ассоциативно связанному с командой.
23. Устройство по п.19, в котором контроллер кэша выполнен с возможностью идентифицировать невыровненный сегмент команды, включенный в данные команды, посредством обработки информации длины, ассоциативно связанной с командой, так, чтобы идентифицировать сегмент команды с пересечением границы.
24. Устройство по п.19, в котором контроллер кэша выполнен с возможностью идентифицировать невыровненный сегмент команды, включенный в данные команды, посредством обработки архивных данных несовмещения команды так, чтобы идентифицировать сегмент команды с пересечением границы.
25. Устройство по п.19, в котором контроллер кэша выполнен с возможностью идентифицировать невыровненный сегмент команды, включенный в данные команды, посредством использования части команды, выбранной заранее из остатка команды, так, чтобы идентифицировать сегмент команды с пересечением границы.
26. Устройство по п.25, в котором часть команды, выбранная заранее из остатка команды, содержит одно из части команды, выбранной в ответ на критическую операцию обращения к запоминающему устройству за первым словом, и части команды, выбранной в ответ на критическую операцию обращения к запоминающему устройству за первым двойным словом.
27. Устройство по п.14, в котором контроллер кэша дополнительно выполнен с возможностью извлекать команду, включенную в данные кэша, из строки кэша посредством считывания сегмента команды из кэша команд и считывания невыровненного сегмента команды из вспомогательного запоминающего устройства.
28. Устройство по п.27, в котором контроллер кэша дополнительно выполнен с возможностью объединять сегмент команды, считанной из кэша команд, с невыровненным сегментом команды.
29. Устройство по п.28, в котором контроллер кэша выполнен с возможностью объединять сегмент команды, считанной из кэша команд, с невыровненным сегментом команды посредством присоединения невыровненного сегмента команды к сегменту команды, считанной из кэша команд.
30. Устройство по п.28, в котором контроллер кэша выполнен с возможностью объединять сегмент команды, считанной из кэша команд, с невыровненным сегментом команды посредством выбора одного из невыровненного сегмента команды или первой части сегмента команды, считанной из первого сектора кэша команд, и объединения выбранного одного из невыровненного сегмента команды или первой части сегмента команды, считанной из первого сектора кэша команд, со второй частью команды, считанной из второго сектора строки кэша.
31. Микропроцессор, содержащий
кэш команд, выполненный с возможностью сохранять данные команд в строку кэша, включенную в кэш команд; и
контроллер кэша, выполненный с возможностью направлять сохранение резервной копии данных команд для одной или более позиций границы кэша во вспомогательное запоминающее устройство.
32. Микропроцессор по п.31, в котором одна или более позиций границы кэша содержит одну или более из позиции границы внутри строки кэша в кэше команд и позиции границы между строками кэша в кэше команд.
33. Микропроцессор по п.31, в котором вспомогательное запоминающее устройство содержит одно из массива тегов, ассоциативно связанного с кэшем команд, одного или более элементов дополнительного запоминающего устройства, включенного или ассоциативно связанного с кэшем команд, отдельного массива памяти и кэша верхнего уровня.
34. Способ извлечения кэшированных команд переменной длины, содержащий этапы, на которых
считывают сегмент команды из строки кэша и
считывают невыровненный сегмент команды из вспомогательного запоминающего устройства.
35. Способ по п.34, дополнительно содержащий этап, на котором объединяют невыровненный сегмент команды с сегментом команды, считанной из строки кэша.
36. Способ по п.35, в котором объединение невыровненного сегмента команды с сегментом команды, считанной из строки кэша, содержит этап, на котором присоединяют невыровненный сегмент команды к сегменту команды, считанной из строки кэша.
37. Способ по п.35, в котором объединение невыровненного сегмента команды с сегментом команды, считанной из строки кэша, содержит этапы, на которых:
выбирают одно из невыровненного сегмента команды и первой части команды, считанной из первого сектора строки кэша; и
объединяют выбранное одно из невыровненного сегмента команды и первой части команды, считанной из первого сектора строки кэша, со второй частью команды, считанной из второго сектора строки кэша.