SU479113A1 - Устройство дл передачи управлени подпрограммам - Google Patents
Устройство дл передачи управлени подпрограммамInfo
- Publication number
- SU479113A1 SU479113A1 SU1770543A SU1770543A SU479113A1 SU 479113 A1 SU479113 A1 SU 479113A1 SU 1770543 A SU1770543 A SU 1770543A SU 1770543 A SU1770543 A SU 1770543A SU 479113 A1 SU479113 A1 SU 479113A1
- Authority
- SU
- USSR - Soviet Union
- Prior art keywords
- register
- subroutine
- index
- block
- subroutines
- Prior art date
Links
Landscapes
- Executing Machine-Instructions (AREA)
Description
Изобретение относитс к вычислительной технике и, в частности, к устройствам управлени центральных процессоров.
Известны устройства дл передачи управлени подпрограммам, в которых примен ютс регистры-указатели дл записи в них базовых адресов различных участков пам ти. Эти регистры образуют быструю пам ть, имеющую матрицу выборки регистра по его адресу, а также оборудование управлени . Аппаратные затраты при этом весьма значительны .
Известны также устройства, содержащие аппаратуру дл выполнени функций индексрегистров . Количество индекс-регистров, реализованных аппаратно, обычно не превыщает 16. Поэтому необходимы специальные программные средства дл перезапоминани содержимого индекс-регистров в пам ть и из пам ти при прерывани х и переходах к подпрограммам .
Это уменьшает эффективность использовани процессоров.
В процессорах, где примен ютс в качестве индекс-регистров произвольные чейки ОЗУ, проблема сохранени содержимого индекс-регистров решаетс за счет аппаратного выделени нового участка ОЗУ под индексрегистры при переходе к подпрограммам. Это свойство обеспечивает повышение эффективности работы процессоров за счет ликвидации издержек на вспомогательные программы перезапоминани . Цель изобретени - сокращение оборудовани . При этом незначительно снижаетс быстродействие, так как дл вхождени в подпрограмму необходимы два обращени к индикаторному регистру. Исполнение подпрограммы требует значительно большего (на несколько пор дков) числа обращений к ЗУ. Таким бразом, в процентном отношении потери времени из-за обращени к индикаторному регистру весьма незначительны .
В предлагаемое устройство введены индикаторный регистр и блок пуска подпрограмм, входы которого соединены соответственно с выходами индикаторного регистра, блока управлени и регистра базы индекса. Первый
выход блока пуска подпрограмм подключен к входу блока управлени , второй выход - к второму входу регистра базы индекса, третий выход - к первому входу индикаторного регистра , второй вход которого соединен с выходом блока управлени .
На чертеже представлена схема устройства.
Она содержит блок 1 формировани адреса;
блок 2 перемещени и защиты программ;
регистр 3 номера индекса; регистр 4 базы индекса; индикаторный регистр 5; блок 6 пуска подпрограмм; блок 7 управлени ; шину 8 переполнени ; шину 9 зан ти уровн ; шину 10 номера уровн . При построении многопрограммных вычислительных машин, особенно многолроцессорных вычислительных комплексов, возникает проблема передачи управлени общим подпрограммам , т. е. таким подпрограммам, которые используютс совместно с несколькими задачами многопрограммной системы, выполн юш ,имис , возможно, на нескольких процессорах . При этом возникают ситуации, когда обща подпрограмма, будучи незаконченной , прерываетс , а затем происходит новое обраш,ение к ней из другой задачи. Возможна также ситуаци , когда два процессора почти одновременно могут обратитьс к обшей подпрограмме и далее выполн ть ее со сдвигом на одну или несколько команд. В первом случае следует выполнить обшую подпрограмму, выйти из нее и в будущем довыполнить ее с прерванного места и выйти из подпрограммы в точку обращени . Во втором случае необходимы независимое исполнение общей подпрограммы двум или более процессорами и по окончании подпрограммы выход из нее каждого процессора в точку обращени . Дл того- чтобы подпрограмма обладала такими свойствами, нужно выполнить несколько условий. В частности, подпрограмма должна быть закодирована так, чтобы она не содержала в своем теле переменных команд и рабочих чеек. В противном случае повторное вхождение в обшую подпрограмму до окончани ее работы по первому вхождению должно быть запрещено. Вторым необходимым условием рентабельности общей подпрограммы вл етс предоставление каждому вхождению в общую подпрограмму своей группы индекс-регистров и рабочих чеек. Обеспечение требуемой формы кодировани возлагаетс на программиста. Второе же условие может быть реализовано аппаратно. Особенно это удобно, если индекс-регистры .физически размещаютс в оперативной пам ти и адрес их начала тем или иным образом св зан с адресом начала общей подпрограммы. Предлагаемое устройство решает эту заКажда подпрограмма, расположенна в . оперативном запоминающем устройстве, начинаетс со служебной группы чеек, назы .ваемых программным уровнем. Эти чейки используютс в качестве индекс-регистров. Одна из этих чеек отведена дл хранени содержимого индикаторного регистра 5. Если подпрограмма рассчитана на несколько вхождений , то в ее начале отводитс несколько групп служебных чеек - программных уровней. .Разр ды регистра 5 пронумерованы слева направо и первый разр д регистра соответствует первому уровню, второй разр д - второ / уровню,и т. д. Если значение разр да регистра 5 равно единице, это означает, что соответствующий уровень зан т вхождением в подпрограмму , т. е. подпрограмма выполн етс или, по крайней мере, начала выполн тьс каким-либо процессором с использованием данного программного уровн . Если значение разр да регистра 5 равно нулю, это значит, что соответствующий уровень свободен. При выполнении процедуры входа в подпрограмму , блок 6 пуска подпрограмм просматривает слева направо регистр 5 данной подпрограммы дл того, чтобы найти ближайший нулевой разр д. Если нулевой разр д найден, то блок 6 пуска подпрограмм через шину 9 зан ти уровн устанавливает в этом разр де единицу, а на щине 10 номера уровн - номер этого разр да в регистре 5. Номер уровн с щины 10 поступает на регистр 4 базы индекса и в дальнейшем используетс при определении физических адресов чеек пам ти, используемых в качестве индекс-регистров. Если при просмотре блоком 6 пуска подпрограмм регистра 5 нулевого разр да не обнаружено , то блок 6 через шину 8 переполнени сообщает об этом блоку 7 управлени , который прекращает выполнение передачи управлени подпрограмме. Таким образом, если подпрограмма рассчитана на одно вхождение, то индикаторный регистр 5 должен вначале содержать только один нулевой разр д. Все остальные разр ды должны быть единичными. В случае выполнени процедуры выхода из подпрограммы блок 6 пуска подпрограмм, по номеру уровн , поступающему на его вход из регистра 4 базы индекса, устанавливает в нуль по шине 9 зан ти уровн разр д индикаторного регистра, соответствующий номеру освобождаемого уровн . При исполнении подпрограммы на любом из уровней вхождени физические адреса индексрегистров образуютс следующим образом. Блок 2 перемещени и защиты программ предназначен дл преобразовани относительных адресов программ и групп программ в физические адреса оперативной пам ти. При этом преобразовании блок 2 перемещени и защиты программ провер ет не выходит ли полученный адрес за диапазон адресов, допустимых дл данной группы протрамм, осуществл тем самым функцию защиты программ . При образовании физического адреса индекс-регистра , блок 2 передает в блок 1 формировани адреса физический адрес начала подпрограммы в оперативной пам ти. Этот адрес должен содержать в младших разр дах нули. Регистр 4 базы индекса передает в блок 1 формировани адреса номер уровн вхождени в подпрограмму, образу следующую , более младшую группу разр дов физического адреса индекс-регистра. Младшие разр ды физического адреса индекс-регистра берутс из регистра 3 номера индекса, откуда они поступают в блок 1 формировани адреса,
Таким образом, устройство дл передачи управлени подпрограммам обеспечивает предоставление каждому новому вхождению в подпрограмму своего набора индекс-регистров . Если подпрограмма не рассчитана на повторные вхождени , то устройство нозвол ет обнаружить попытки такого вхожден 1 .
Предмет изобретени
Устройство дл передачи управлени подпрограммам , содержащее регистр номера индекса , регистр базы индекса, блок перемещени и защиты программ, выходы которых подключены к соответствующим входам блока формировани адреса, входы соединены с выходом блока управлени , вход -блока формировани адреса подключен к выходу блока управлени , отличающеес тем, что, с целью сокращени оборудовани , оно содержит индикаторный регистр и блок пуска подпрограмм , входы которого соединены соответственно с выходами индикаторного регистра, блока управлени и регистра базы индекса, первый выход блока пуска подпрограмм подключен к входу блока управлени , второй выход соединен с вторым входом регистра базы индекса, третий выход подключен к первому входу индикаторного регистра, второй вход которого подключен к выходу блока управлени .
..„ и
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU1770543A SU479113A1 (ru) | 1972-04-06 | 1972-04-06 | Устройство дл передачи управлени подпрограммам |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SU1770543A SU479113A1 (ru) | 1972-04-06 | 1972-04-06 | Устройство дл передачи управлени подпрограммам |
Publications (1)
Publication Number | Publication Date |
---|---|
SU479113A1 true SU479113A1 (ru) | 1975-07-30 |
Family
ID=20509958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SU1770543A SU479113A1 (ru) | 1972-04-06 | 1972-04-06 | Устройство дл передачи управлени подпрограммам |
Country Status (1)
Country | Link |
---|---|
SU (1) | SU479113A1 (ru) |
-
1972
- 1972-04-06 SU SU1770543A patent/SU479113A1/ru active
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US3303477A (en) | Apparatus for forming effective memory addresses | |
US3242467A (en) | Temporary storage register | |
US3858182A (en) | Computer program protection means | |
US4268904A (en) | Interruption control method for multiprocessor system | |
US3614742A (en) | Automatic context switching in a multiprogrammed multiprocessor system | |
US4783736A (en) | Digital computer with multisection cache | |
US3631405A (en) | Sharing of microprograms between processors | |
Conway | A multiprocessor system design | |
US4488227A (en) | Program counter stacking method and apparatus for nested subroutines and interrupts | |
US3889243A (en) | Stack mechanism for a data processor | |
CA1081857A (en) | Apparatus for processing interrupts in microprocessing systems | |
US4347565A (en) | Address control system for software simulation | |
US4794521A (en) | Digital computer with cache capable of concurrently handling multiple accesses from parallel processors | |
CA1139451A (en) | Virtual cache | |
US4109311A (en) | Instruction execution modification mechanism for time slice controlled data processors | |
EP0106572B1 (en) | Data processing system with virtual machines | |
EP0214718A2 (en) | Digital computer | |
GB1353951A (en) | Data processing system | |
US4769770A (en) | Address conversion for a multiprocessor system having scalar and vector processors | |
US5590301A (en) | Address transformation in a cluster computer system | |
DE3650602T2 (de) | Datenverarbeitungssystem | |
GB1498145A (en) | Multi-microprocessor unit on a single semi-conductor chip | |
US3943495A (en) | Microprocessor with immediate and indirect addressing | |
US3555513A (en) | Multiprocessor digital computer system with address modification during program execution | |
US4782443A (en) | Main storage control system for virtual computing function system with plural address modes in main storage access operations |