Browse Prior Art Database

Hybrid Accessing of Memory

IP.com Disclosure Number: IPCOM000079743D
Original Publication Date: 1973-Aug-01
Included in the Prior Art Database: 2005-Feb-26
Document File: 4 page(s) / 38K

Publishing Venue

IBM

Related People

Smith, HF: AUTHOR

Abstract

A machine architecture is illustrated that allows accessing of memory by names or by addresses. Addresses are treated as actual addresses. Names are translated to addresses, either directly or recursively, via two constructs - the Active Procedure Pointer (APP) stack 12, and the Local Name Tables (LNT) 11. That is, a name-reference causes the machine to develop one or more translation cycles that return (a) an address in primary storage 10, (b) a secondary storage key, or (c) an index pointer to another LNT.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 46% of the total text.

Page 1 of 4

Hybrid Accessing of Memory

A machine architecture is illustrated that allows accessing of memory by names or by addresses. Addresses are treated as actual addresses. Names are translated to addresses, either directly or recursively, via two constructs - the Active Procedure Pointer (APP) stack 12, and the Local Name Tables (LNT) 11. That is, a name-reference causes the machine to develop one or more translation cycles that return (a) an address in primary storage 10,

(b) a secondary storage key, or (c) an index pointer to another LNT.

The principal additional piece of hardware to facilitate accessing by name is the Active Procedure Pointer (APP) stack 12. Every time a procedure is entered, two entries are attached to the APP stack, and every time a procedure is exited, the corresponding two entries become detached.

Regarding program structure, procedures--if they contain name-reference code--are headed by a Local Name Table (LNT) 11, which contains one entry for each name employed in that procedure. Two bits of each such entry are reserved to facilitate the proper interpretation of the remainder of the entry by the hardware, as follows: 00 - This entry corresponds to a name known locally to

this procedure, and the value of the entry is an

address in primary storage.

01 - This entry corresponds to a name known locally to

this procedure; however, the object is not currently

in primary storage. The value of the entry is a

secondary-storage key, to be used for fetching the

object.

10 - This entry corresponds to a name known globally by

the outermost procedure. The value of the entry

is an index in the LNT of the outermost procedure.

11 - This entry corresponds to a name declared or recognized

by a containing procedure. The value of the entry is

an index in the LNT of the immediately calling procedure.

This relationship may extend through any number

of nested levels of procedures.

Now the two entries that are attached/detached to the APP stack upon procedure entry/exit are: (a) the address in primary memory of the LNT for the given procedure, and (b) a value describing the location of the procedure text. The LNT will always be resident in primary memory, as long as the procedure is active. However, once a procedure has been activated and then suspended (by virtue of control passing from it to another procedure), the text may or may not be retained in primary memory, according to memory management requirements. Thus, the entries (b) have an associated 1-bit type code. If the type code is 0, then the value of the entry is the address of the text in primary storage. If the type code is 1, then the procedure text has been displaced from primary memory, and

1

Page 2 of 4

the value of the entry is a secondary storage key, to be used for fetching the procedure text When it is needed again. The procedure text will occur only once, but a copy of the LNT will occur for each activation of a procedure.

The hardware controls and the program structu...