РАСШИРЕНИЕ БЛОКА СТЕКОВЫХ РЕГИСТРОВ С ПОМОЩЬЮ ТЕНЕВЫХ РЕГИСТРОВ

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