GB2191317A - Accessing memory - Google Patents

Accessing memory Download PDF

Info

Publication number
GB2191317A
GB2191317A GB08712079A GB8712079A GB2191317A GB 2191317 A GB2191317 A GB 2191317A GB 08712079 A GB08712079 A GB 08712079A GB 8712079 A GB8712079 A GB 8712079A GB 2191317 A GB2191317 A GB 2191317A
Authority
GB
United Kingdom
Prior art keywords
designating
pointer
bits
memory
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB08712079A
Other versions
GB2191317B (en
GB8712079D0 (en
Inventor
Tohru Nojiri
Shunpei Kawasaki
Tan Watanabe
Kousuke Sakoda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of GB8712079D0 publication Critical patent/GB8712079D0/en
Publication of GB2191317A publication Critical patent/GB2191317A/en
Application granted granted Critical
Publication of GB2191317B publication Critical patent/GB2191317B/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

In order to divide a memory addressed unidimensionally into a plurality of memory areas and to manage these memory areas efficiently, the address to be accessed in the memory is determined on a software basis by a computer instruction by use of the value of a first pointer designating a memory area and the value of a second pointer designating the relative address in the designated memory area. The apparatus includes a memory (1) of 2<n> banks (2) each consisting of a 2<N> <n>word memory area. An N-bit wide bank-designating pointer (3) and an N-bit wide offset- designating pointer (4) are combined in a pointer generating circuit (5) to give an access pointer (6). <IMAGE>

Description

SPECIFICATION Method and apparatus for memory access This invention relates to an access mechanism of a memory for making access to a memory such as a large capacity register file by use of a pointer, and more particularly to a method and apparatus for memory access which can simplify a pointer generation circuit and improve its operation speed and is suitable for making an access method versatile.
In conventional systems such as Sword 32, an activation record (context) as data having high access frequency is allocated to a register file to which access can be made access at a high speed, as described, for example, in Proceeding of the International Conference on Fifth Generation Computer Systems, (1984), p.p. 389-397.
in accordance with method of keeping the activation records by an ordinary software, they are linearly allocated on one stack and access to all the data in the activation records is made in correspondence to a pointer. However, the activation records consist of an area which contains control information for procedure execution which has the same size and a stack area whose size is not always constant.
In Sword 32 described above, the system has a function of making it possible to use part of the register file as a bank register and the area which contains control information for procedure execution for each activation record is allocated to each bank. Furthermore, the system includes a hardware which permits the access of data in the control information for procedure execution corresponding to the activation record which is being activated at the address inside the bank in order to improve the access speed.
The Sword 32 system is designed to execute particularly efficiently a program described by SmalltalksO language. In the program of this Smalltalk-80 language, a compiler guarantees that no stack overflow occurs so long as the stack is pushed or popped. For this reason, the Sword 32 system is not particularly squipped with a hardware for checking the stack overflow.
In accordance with the prior art technique described above, the number of activation records allocated to register files and the number of specific registers of each register file are fixed, and no consideration is payed on the fact that the ratio of the optimum number of these data in the register file varies with a programming language applied and with an application program. For this reason, there is the problem as to versatility of a microprocessor.
A program described by an ordinary programming language must detect stack overflow during execution as to the operation of stack push and pop and if a microprocessor is not equipped with such a detection mechanism, detection must be made by means of softwares so that execution efficiency will drop.
Furthermores, the prior art technique described above is not equipped with a mechanism for efficiently processing a plurality of stacks and save and restore processing of all the contents of a large capacity register file is necessary for every task switch so that execution efficiency further drops.
Depending upon application programs, on the other hand, high speed execution can be accomplished by realizing a plurality of stacks or queues for independent data management by use of register files capable of high speed access. In accordance with the prior art technique, however, no method has yet been developed which realizes a plurality of independent memory areas whose data handling is managed by pointers such as stacks, and which have freedom capable of designating a desired size by softwares and can efficiently realize an overflow detection mechanism by use of a memory such as a register file which is addressed unidimensionally.
With the background described above and to solve the problems of the prior art, the present invention is directed to provide (1) an access mechanism of a memory which makes it possible to manage a memory such as a register file which is addressed unidimensionally by dividing it into several memory areas; (2) an access mechanism of a memory which makes it possible to designate the size and number of the memory regions described above by softwares; (3) an access mechanism which accomplishes efficiently a plurality of memory areas whose data handling can be managed independently by pointers such as stacks having an overflow detection mechanism; and (4) an access mechanism which can accomplish efficiently the management of the memory areas corresponding to respective tasks in order to efficiently process a plurality of tasks.
In a memory access mechanism for managing a memory area of a memory which is addressed unidimensionally by dividing the memory area into a plurality of memory areas, the object of the present invention described in item (1) can be accomplished by a memory access mechanism including pointer generation means for determining the value of an access pointer which designates the address of the memory area to be accessed, by use of the value of a first designating pointer for designating the memory area among a plurality of divided memory areas and the value of a second designating pointer for designating the relative address in the designated memory area.
The object of the invention described in item (2) can be accomplished by pointer generation means for making arbitrary n bits among an N-bit first designating pointer the effective bits with the other N-n bits being the ineffective bits, for making the N-n bits of an N-bit second designating pointer, which correspond to the positions of the ineffective bits of the first designating pointer, the effective bits with the other n bits being the ineffective bits, and for generating an N-bit access pointer by use of the effective bits of these pointers, and by making it possible to designate the bit number and positions of the effective bits of these two designating pointers by means of program.
The object described in item (3) can be accomplished by making one of the two designating pointers, which are necessary for designating the address to be accessed of the memory addressed unidimensionally, a value for selecting one data memory area among a plurality of data memory areas for managing independently the handling of the data and making the other pointer a pointer for managing the handling of the data.
Overflow of the pointer for managing handling of the data such as a stack pointer can be detected by checking the propagation of a carry during calculation in the pointer operation.
In a memory access mechanism for managing a memory area, which is addressed unidimensionally, by dividing the memory area into a plurality of memory areas, the object described in item (4) can be accomplished by a memory access mechanism equipped with pointer generation means for designating the address of the memory area to be accessed by use of the value of a first designating pointer for designating a task-oriented memory area group consisting of several partial areas, the value of a second designating pointer for designating the memory area in the designated task-oriented memory area group and the value of a third designating pointer for designating the relative address in the designated memory area.
Referring to the accompanying drawings; Fig. 1 shows the concept of the present invention,; Figs. 2(a) to 2(c) are conceptual views showing the construction method of a pointer generation circuit; Fig. 3 is a structural view of a memory as an embodiment of the present invention; Fig. 4 is a structural view showing the principal portions of another embodiment of the present invention; and Fig. 5 is a structural view showing the principal portions of still another embodiment of the present invention.
First of all, the principle of the present invention will be described with memory address designation of a bank structure by way of example.
In a memory access mechanism for managing 2n memory areas from 0th bank to 2N-1 th bank consisting of 2N-n words by use of a memory consisting of 2N words, two N-bit width pointers used for designating the access address will be called a "bank designating pointer" and an "offset designating pointer", respectively.
In this case, the sequence number of the bank accessed is designated so that the lower N-n bits of the bank designating pointer are always "0" as ineffective bits and its upper n bits, as effective bits. On the other hand, offset inside the bank of the words to be accessed is designated so that the upper n bits of the offset designating pointer are ineffective bits and always "0" while the lower N-n bits are effective bits.
Therefore, the value of the bank designating pointer is ax2N-n when designating the ath bank while the value of the offset designating pointer becomes the offset value in the bank of the word to be accessed.
In this manner, the values of the two pointers are managed and logical OR is calculated for their corresponding bits so that the value of the access pointer designating the address to be actually accessed in the memory is generated.
Here, the lower N-n bits of the access pointer become the lower N-n bits of the offset designating pointer, that is, the value of offset inside the bank, while the upper n bits become the upper n bits of the bank designating pointer, that is, the sequence number of the bank. Therefore, the value obtained by combining these two pointers and the value of the access pointer has 1:1 correspondence and no erroneous operation occurs.
In order to accomplish 2 memory regions of the 2N-n words for managing handling of the data by the pointer such as a stack or a queue by use of the memory of 2N words realizing the operation described above, the bank designating pointer exhibits the function of selecting one area as the object of access from a plurality of independently managed memory area, while the offset designating pointer operates as the pointer which manages handling of the data inside that memory area.
Therefore, when the effective bits of the offset designating pointer are the lower N-n bits, the updating operation of the pointer for managing handling of the data is either increment or decrement on the one-by-one basis but when the effective bits are the upper N-n bits, the erroneous operation can be prevented by effecting the increment or decrement operation on the 2" basis.
The overflow of the memory system for managing handling of the data by the pointer such as a stack occurs in the following cases.
When the effective bits of the offset designating pointer are the upper N-n bits, the overflow occurs when decrement is made while the pointer for managing handling of the data is "0" or when increment is made while that pointer is (2N-"-1)x2".
When the effective bits of the offset designating pointer are the lower N-n bits, on the other hand, the overflow occurs when decrement is made while the pointer for managing handling of the data is "O" or when increment is made while that pointer is 2N-n-1.
Therefore, the erroneous operation can be prevented by detecting abnormality from a carry signal from the upper-most bit of an Nbit operator for updating the pointer in the former case and from a carry signal from the N-nth bit when LSB is set to the 0th bit in the latter case.
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
Fig. 1 is a conceptual view of the access mechanism of a 2N word-memory which is addressed unidimensionally. In Fig. 1, 2" banks each consisting of a 2N-n word memory area are shown accomplished by use of memories.
In the drawing, two N-bit wide pointers, that is, a bank designating pointer 3 and an offset designating pointer 4, are disposed in order to designate the address to be accessed in the memory 1.
A pointer generating circuit 5 consists of an OR circuit and generates an access pointer 6 representing the access word in the memory 1 by calculating the logical OR between the corresponding bits from the combination of the bank designating pointer 3 and the offset designating pointer 4.
Management is made by a software so that the upper n bits of the bank designating pointer 3 represents the sequence number of the bank 2 to be accessed, as the effective bits while its lower N-n bits are always "0" as the ineffective bits. Similarly, management is made by a software so that the lower N-n bits of the offset designating pointer 4 represents the offset value of the word to be accessed actually in the bank 2 which is designated by the bank designating pointer, while its upper n bits are always "0" as the ineffective bits.
Therefore, the access pointer 6 generated by the pointer generating circuit 5 which inputs the bank designating pointer 3 and the offset designating pointer 4 comes to possess the upper n bits of the bank designating pointer 3 as its upper n bits and the lower N-n bits of the offset designating pointer 4 as its lower N-n bits.
It is of course possible to change the effective bits of the bank designating pointer 3 to the lower N-n bits and the effective bits of the offset designating pointer 4 to the upper n bits. In this case, the address of the word contained in one bank 2 is every 2N-n The sequence number of the bank 2 to be addressed or the offset value of the word to be accessed in the bank can be designated also by a value contained in the instruction of an instruction processing apparatus for making access to the memory 1 in this embodiment in place of the bank designating pointer 3 or the offset designating pointer 4.
A microprocessor of the type wherein the memory 1 and the instruction processing apparatus are integrated in one LSI chip can be accomplished as a specific case of this embodiment.
The embodiment described above provides the effect that the word number of the bank 2 can be determined dynamically in accordance with the characteristics of the program to be executed in practice, by designating and managing the ineffective bits of the bank designating pointer 3 and offset designating pointer 4 by softwares.
The embodiment described above provides another effect that the pointer generating circuit 5 for generating the access pointer 6 which represents the position of the word designated by the bank designating pointer 3 and the offset designating pointer 4 can be constituted by the simple OR circuit alone.
Fig. 2 shows the concept relating to the mechanism of the pointer generating circuit other than one shown in Fig. 1. In Fig. 2(a), the bit width of the bank designating pointer 3A is n+m and the bit width of the offset designating pointer 4A is m. They are used in order to generate an (m+n)-bit access pointer 6A.
The value of the upper n bits of the access pointer 6A directly takes the value of the upper n bits of the bank designating pointer 3A but its lower m-bit value is the value obtained by calculating the logical OR for each bit between the lower m bits of the bank designating pointer 3A and the offset designating pointer 4A by the pointer generating circuit 5 consisting of the OR circuit.
Here, it will be readily obvious that the operation can be carried out smoothly without any problem even if the bank designating pointer 4A and the offset designating pointer 4A are replaced by each other.
In Fig. 2(b), the bit width of the bank designating pointer 3B is n and the bit width of the offset designating pointer 4B is m+n, and they are used to generate an (m+n)-bit access pointer 6B. The value of the lower m bits of the access pointer 6B directly takes the value of the lower m bits of the offset designating pointer 4B while the value of its upper n bits is the value obtained by calculating the logical OR for each bit between the bank designating pointer 3B and the upper n bits of the offset designating pointer 4B by the pointer generating circuit 5 consisting of the OR circuit.
Here, it will be obvious that the operation can be carried out smoothly without any problem even if the bank designating pointer 3B and the offset designating pointer 4B are replaced by each other.
In Fig. 2(c), the bit width of the bank desig nating pointer 3C is n1+m while the bit width of the offset designating pointer 4C is m+n2, and they are used to generate an (n1+m+n2)- bit access pointer 6C. The value of the upper n, bits of the access pointer 6C directly takes the value of the upper n, bits of the bank designating pointer 3C and the value of its lower n2 bits directly takes the value of the upper n2 bits of the offset designating pointer 4C. The remaining m bits of the access pointer 3C are the value obtained by calculating the logical OR for each bit between the lower m bits of the bank designating pointer 3C and the upper m bits of the offset designating pointer 4C by the pointer generating circuit 5 consisting of the OR circuit.
It will be obvious that the operation can be carried out smoothly without any problem even if the bank designating pointer 3C and the offset designating pointer 4C are replaced by each other.
Fig. 3 shows an embodiment wherein 2" memory areas 2A each consisting of 2N-n-1 words and being managed independently of other such as a stack or a queue are accomplished by use of the 2N-word memory by utilizing the concept of the present invention described above.
The memory area designating pointer 3D selects one memory area from the 2" memory areas and is managed by softwares so that the value of its lower n bits represents the sequence number of the designated memory area while its upper N-n bits are always "0" as the ineffictive bits.
A pointer register group 4D consists of a group of pointers corresponding to the 2n memory areas whose data handling is managed by the pointer. Each of the pointers in the pointer register group 4D manages the input or output, or both of the input and output, of the data of the corresponding memory area 1. Management by softwares is made so that the value of the upper N-n bits of the pointer represents the word number of the corresponding memory area and its lower n bits are always "0" as the ineffective bits.
Therefore, all the pointers in the pointer register group 4D take the values which are some multiples of 2". The access pointer 6D which actually selects the word to be accessed is generated by the pointer generating circuit 5 which inputs the memory area designating pointer 3D and the corresponding pointer of the pointer register group 4D which executes processing for the memory area 1 designated by the memory area designating pointer 3D.
The value of the lower n bits of the access pointer 6D is the value of the lower n bits of the memory area designating pointer 3D and its upper N-n bits is the value of the upper N-n bits of the pointer of the pointer register group 4D which is inputted to the pointer generating circuit 5 at that time. The ith words of all the memory areas are allocated to the ith field groups 2A.
An adder 7 plays the role of updating the value of the pointer which manages data handling. A constant input 9 designates the increment or decrement value when the adder 7 increments or decrements the pointer value.
Generally, 2" is inputted as the value to the constant input 9. A carry 8 is propagation of the carry from the (N-1)th bit which is the uppermost bit of the N-bit adder 7 and used for detecting stack overflow, stack underflow and lap-around of a ring buffer.
This embodiment provides the effect that the ratio of the number of the memory areas whose data handling is managed independently when the software determines the ineffective bits of the memory area designating pointer 3D and those of the pointer register group 4D, to the number of words of each memory area in accordance with the characteristics of the program to be executed.
Another effect of this embodiment is that all the overflows that may occur when data are handled to and from the memory areas can be detected by the propagation of the carry from the uppermost bit of the pointer calculation for in the same way for all the memory areas.
Fig. 4 is a conceptual view of hardwares for assisting the management of the ineffective bits of the bank and offset designating pointers 3E and 4E described above.
Reference numeral 12 represents a mask circuit, which sets compulsively the ineffective bits of the bank designating pointer 3E and the offset designating pointer 4E to "0" in accordance with a mask pattern which is designated in advance by pointer field designation 10.
The bank designating pointer 3E holds the sequence number of the bank to be selected as such. A shifter 11 shifts the value of the bank designating pointer 3E by the N-n bits in an MSB direction when the pointer field designation 10 designates that the upper n bits out of the N-bit width are the effective bits.
It will be obvious in this case that the operation can be carried out smoothly without any problem even if the bank designating pointer 3E and the offset designating pointer 4E are replaced by each other.
This embodiment eliminates the necessity of management by means of the software so that the ineffective bits of the bank and offset designating pointers 3E and 4E are always "O", by adding the mask circuit 12. The embodiment provides another effect that other information can be represented by use of the ineffective bits.
This embodiment provides still another effect that program modularity can be improved in that the ratio of the number of the banks to the number of the registers that constitute the bank can cope with various cases by one program, by only changing the pointer field desig nation by adding the shifter 11.
Fig. 5 is a conceptual view of an embodiment as a system which designates the memory area to be accessed by use of a plurality of bank designating pointers, which embodiment disposes two bank designating pointers, one as a task-oriented bank group designating pointer 13 and the other as a within-task bank designating pointer 14.
The bit width of each of the task-oriented bank group designating pointer 13, the withintask bank designating Pointer 14, the offset designating pointer 4F and the access pointer 6F is n1+n2+n3. The access pointer 6F described above is generated by the pointer generating circuit 5A consisting of a 3-input OR circuit when this circuit 5A calculates the logical OR for each corresponding bit of the task-oriented bank group designating pointer 13, the within-task bank designating pointer 14 and the offset designating pointer 4F.
The task-oriented bank group designating pointer 13 is managed by softwares so that its upper n, bits are the effective bits and represent the sequence number of the bank group allocated for each task while the other bits are always "0" as the ineffective bits.
The within-task bank designating pointer 14 is managed by softwares so that the n2 bits subsequent to its upper n1 bits are the effective bits and represent the sequence number of the bank to be accessed inside the bank group allotted for a task while the other bits are always "0" as the ineffective bits.
The offset designating pointer 4F is managed by softwares so that its lower n3 bits are the effective bits and represent the offset value of the word to be accessed inside the bank while the other bits are always "0" as the ineffective bits.
As described above, the upper n, bits of the access pointer represents the value of the effective bits of the task-oriented bank group designating pointer 13, the next n2 bits of the access pointer 6F represent the value of the effective bits of the within-task bank designating pointer 14 and the lower n3 bits of the access pointer 6F represent the value of the effective bits of the offset designating pointer 4F.
This embodiment provides the effect that execution efficiency can be improved when execution of a plurality of tasks is managed simultaneously, because it is necessary only to change the value of the task-oriented bank group designating pointer 13 instead of the save and restore processing of the registers which is necessary at the time task switch.
The following can be listed up as preferred embodiments of the present invention.
(1) In an access mechanism of a unidimensionally addressed memory which is divided into a plurality of memory areas, an access mechanism for a memory characterized by including a a pointer generating circuit for determining the value of an access pointer which designates the address of the memory area to be accessed, by use of the value of a bank designating pointer for designating the plurality of divided memory areas and the value of an offset designating pointer which designates a relative address in the memory areas.
(2) In the memory access mechanism described in item (1), a memory access mechanism characterized in that part or the whole of the bit fields expressing binarily the value of the bank designating pointer and part of the whole of bit fields expressing binarily the value of the offset designating pointer are inputted to the pointer generating circuit described above and its output is used as the value of the access pointer.
(3) In the memory access mechanism described in item (2), a memory access mechanism characterized in that the binary expression bit fields of the access pointer are divided into the part as the output of the pointer generation circuit and the part as the value of part or the whole of the bit fields of the bank designating pointer or the part as the value of part or the whole of the bit fields of the offset designating pointer.
(4) In the memory access mechanism described in item (3), a memory access mechanism characterized in that the bit fields of the access pointer are divided into the part as the output of the pointer generating circuit and the part as the value of part or the whole of the bit fields of the offset designating pointer and the part as part or the whole of the bit fields of the bank designating pointer.
(5) In the memory access mechanism described in items (1) to (4), a memory access mechanism characterized in that a pointer generating circuit which designates a memory area to be accessed by use of a plurality of bank designating pointers and determines the value of an access pointer for designating the address of a memory to be accessed by use of the values of these pointers and the value of an offset designating pointer is formed by a multi-input OR circuit.
(6) In the memory access mechanism described in item (5) described above, a memory access mechanism characerized in that two bank designating pointers are disposed, one is used as a task-oriented bank group designating pointer while the other is used as a within-task bank designating pointer, and the pointer generating circuit is formed by a 3input OR circuit.
(7) In the memory access mechanism described in items (1) to (6), a memory access mechanism characterized in that the pointer generating circuit is realized as a wired OR circuit having a plurality of input lines thereof connected to one output line, by making the output stage of each pointer an open collector output.
(8) In the memory access mechanism de scribed in items (1) to (7), a memory access mechanism characterized in that the bank designating pointers are disposed in a plurality of stages and the mechanism has the function of selecting the bank designating pointer which is used to designate the memory area to be accessed in practice, or the offset designating pointers are disposed in a plurality of stages and the mechanism has the function of selecting the offset designating pointer which is used to designate the address of the memory area to be accessed in practice, or the mechanism has both of these functions.
(9) In the memory access mechanism described in items (1) to (8), a memory access mechanism characterized in that the memory areas are register groups contained in an instruction processing apparatus, and the bank designating pointer, the offset designating pointer and access pointer are realized as a register bank designating pointer, a register offset designating pointer and a register access pointer, respectively.
(10) In the memory access mechanism described in items (1) to (9), a memory access mechanism characterized in that management by softwares is made so that the upper n bits of an N-bit wide register bank designating pointer designate the banks on the register group as the effective bits, the lower N-n bits of the N-bit wide register offset designating pointer designate the offset in the register bank as the effective bits and the bits other than the effective bits are "0", and the value as the logical OR of these two pointers is used as the value of the register access pointer.
(11) In the memory access mechanism described in item (10), a memory access mechanism characterized in that the effective bits of the register bank designating pointer are the lower n bits and the effective bits of the register offset designating pointer are the upper N-n bits.
(12) A memory access mechanism characterized in that memory areas for managing handling of data are realized by pointers such as a stack for each register bank by use of the memory access mechanism described in items (10) and (11), a pointer for managing handling of data is disposed for each of the memory areas, a pointer corresponding to the memory area to be accessed is selected in accordance with the value of the register bank designating pointer, and the pointer is inputted to the pointer generating circuit as the register offset designating pointer together with the register bank designating pointer.
(13) In the memory access mechanism described in item (12), a memory access mechanism characterized in that the overflow of each of the memory areas for managing handling of data by the pointer is detected by propagation of a carry when the pointer inputted to the pointer generating circuit as the withinbank offset is calculated.
As described above, in a memory access mechanism for a memory wherein a memory area addressed unidimensionally is divided into a plurality of memory areas, the present invention disposes access pointer generation means for designating the address of the memory area to be accessed, by sue of the value of a first designating pointer for designating the memory area mong the memory areas and the value of a second pointer for designating the relative address inside the memory area. Accordingly, the present invention provides the effect that an access mechanism effective for the access to the memory area among the memory areas can be accomplished.
Furthermore, the present invention provides a remarkable effect that the invention makes it possible to designate the size and number of the memory areas by softwares, and a plurality of memory areas whose data handling is managed by pointers such as stacks having an overflow detection mechanism can be accomplished efficiently by use of each of these memory areas.

Claims (21)

1. In a computer system equipped with a memory and an instruction processing unit, an access method of a memory comprising: dividing the memory area of said memory which is addressed unidimensionally into a plurality of partial areas; setting the value of a first designating pointer for designating a desired area of said partial areas and the value of a second designating pointer for designating a relative address inside said designated area by a computer instruction; and determining the value of an access pointer for designating the address to be accessed in said memory areas.
2. A memory access method according to claim 1, wherein said memory includes a group of registers addressed unidimensionally and contained in said instruction processing unit, a desired register bank is designated inside said group of registers divided into a plurality of register banks from the value of said first designating pointer set in said setting processing, and the relative address in said designated register bank is designated by the value of said second designating pointer set in said setting processing.
3. A memory access method according to claim 1 or 2, wherein said processing to be set by said computer instruction consists of a processing which makes the upper n (n: integer of 1 or more) bits of said first designating pointer the effective bits and the lower N-n (N: integer of 2 or more, N > n) bits of said second designating pointer the effective bits when the bit width of said first and second designating pointer is N, or makes the lower n bits of said first designating pointer the effective bits and the upper N-n bits of said second designating pointer the effective bits with the other bits than the effective bits being a predetermined ineffective value.
4. A memory access method according to claim 2, wherein each of said register banks is equipped with a data management area and manages handling of data in accordance with the value of said second designating pointer set into said area, and processing for operating said value includes detection processing for detecting the overflow of said second designating pointer inside said data management area by the propagation of a carry that develops in said operation process.
5. In a computer system equipped with a memory and an instruction processing unit, an access method of a memory comprising: dividing the memory area of said memory which is addressed unidimensionally into a plurality of partial areas; setting the value of a first designating pointer for designating a desired area of said partial areas, the value of a second designating pointer for dividing further said designated area into a plurality of smaller areas and designating a desired area among said smaller areas and the value of a third designating pointer for designating the relative address in said designated smaller area, by a computer instruction; and determining the value of an access pointer for designating the address to be accessed in said memory area by use of said set value.
6. A memory access method according to claim 5, wherein said memory includes a group of registers addressed unidimensionally and contained in said instruction processing unit, a desired register bank group is designated inside said group of registers divided into a plurality of register banks from the value of said first designating pointer set in said setting processing, a desired register bank is designated inside said group of register banks divided into a plurality of register banks by the value of said second designating pointer set in said setting process and the relative address inside said designated register bank is designated by the value of said third designating pointer set in said setting processing.
7. A memory access method according to claim 5, wherein said setting process to be set by said computer instruction consists of a processing which makes the upper N1 (N1: a positive integer) bits of said first designating pointer the effective bits, the N2 (N2: a positive integer) bits next to the upper N1 bits of said second designating pointer the effective bits and the lower N3 (N3: a positive integer) bits of said third designating pointer the effective bits when the bit width of said first, second and third designating pointers is N1+N2+N3, and makes the bits other than said effective bits the ineffective bits.
8. A memory access method according to claim 5, wherein said divided partial area includes a group of task-oriented memory areas that are allocated to the tasks to be executed on said computer system, and are managed independently of one another for each task.
9. A memory access method according to claim 6, wherein said register bank group includes a group of task-oriented memory areas that are allocated to the tasks to be executed on said computer system, and are managed independently of one another for each task.
10. In a computer system equipped with a memory and an instruction processing unit, an apparatus for memory access comprising: means for dividing a memory area of said memory addressed unidimensionally into a plurality of partial areas; means for setting the value of a first designating pointer for designating a desired area among said partial areas and the value of a second designating pointer for designating the relative address in said designated partial area, by a computer instruction; and means for determining the value of an access pointer for designating the address to be accessed in said memory area by use of said set values.
11. An apparatus for memory access according to claim 10, wherein said memory includes a group of registers addressed unidimensionally and contained in said instruction processing unit and is equipped with means for designating a desired register bank in said register group divided into a plurality of register banks from the value of said first designating pointer set by said setting means, and for designating the relative address inside said designated register bank by the value of said second designating pointer.
12. An apparatus for memory access according to claim 10, wherein said setting means by said computer instruction consists of means for making the upper n (n: an integer of 2 or more) bits of said first designating pointer the effective bits, the lower N-n (N: an integer of 2 or more, N > n) bits of said second designating pointer the effective bits or for making the lower n bits of said first designating pointer the effective bits and the lower N-n bits of said second designating pointer the effective bits with the bits other than said effective bits being predetermined ineffective values, when the bit width of said first and second designating pointers is N bits.
13. An apparatus for memory access according to claim 11, wherein said register bank is equipped with a data management area and manages handling of data by the value of said second designating pointer set into said area, and means for operating said value includes means for detecting the overflow of said second designating pointer in said data management area by the propagation of a carry that occurs during said operation.
14. An apparatus for memory access according to claim 10, wherein said determination means consists of an OR circuit for calcu lating logical OR between the value of said first designating pointer and the value of said second designating pointer.
15. In a computer system equipped with a memory and an instruction processing unit, an apparatus for memory access comprising: means for dividing a memory area of said memory addressed unidimensionally into a plurality of partial areas; means for setting the value of a first designating pointer for designating a desired area of said partial areas, the value of a second designating pointer for dividing further said designated partial area into a plurality of smaller areas and designating a desired area among said smaller areas and the value of a third designating pointer for designating the relative address in said designated smaller area, by a computer instruction; and means for determining the valfue of an access pointer for designating the address to be accessed in said memory area by use of said set values.
16. An apparatus for memory access according to claim 15, wherein said memory includes a group of registers address unidimensionally and contained in said instruction processing unit and is equipped with means for designating a desired register bank in said register group divided into a plurality of register banks from the value of said first designating pointer set by said setting means, for designating a desired register bank in said register bank group divided into a plurality of register banks by the value of said second designating pointer set in said setting processing, and for designating the relative address in said designated register bank by the value of said third designating pointer set in said setting processing.
17. An apparatus for memory access according to claim 15, wherein said setting means by said computer instruction consists of means for making the upper N1 (N,: a positive integer) bits of said first designating pointer the effective bits, the next N2 (N2: a positive integer) bits to the upper N1 bits of said second designating pointer the effective bits and the lower N3 (N3: a positive integer) bits of said third designating pointer the effective bits with the bits other than said effective bits being predetermi#ned ineffective values when the bits width of said first, second and third designating pointers is N1+N2+N3.
18. An apparatus for memory access according to claim 15, wherein said partial area is equipped with a task-oriented memory area group which is allocated to tasks to be executed on said computer system and managed independently of one another for each task.
19. An apparatus for memory access according to claim 15, wherein said register bank group is equipped with task-oriented memory area groups which are allocated to tasks to he executed on said computer system and managed independently of one another for each task.
20. An apparatus for memory access according to claim 15, wherein said determination means consists of an OR circuit for calculating logical OR between the value of said first designating pointer and the value of said second designating pointer.
21. An apparatus for memory access for use in a computer system equipped with a memory and an instruction processing unit, constructed substantially as herein described with reference to and as illustrated in the accompanying drawings.
GB8712079A 1986-05-24 1987-05-21 A register access mechanism for a data processing system Expired - Lifetime GB2191317B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61119803A JP2522248B2 (en) 1986-05-24 1986-05-24 Storage device access mechanism

Publications (3)

Publication Number Publication Date
GB8712079D0 GB8712079D0 (en) 1987-06-24
GB2191317A true GB2191317A (en) 1987-12-09
GB2191317B GB2191317B (en) 1990-05-16

Family

ID=14770609

Family Applications (1)

Application Number Title Priority Date Filing Date
GB8712079A Expired - Lifetime GB2191317B (en) 1986-05-24 1987-05-21 A register access mechanism for a data processing system

Country Status (3)

Country Link
JP (1) JP2522248B2 (en)
KR (1) KR930009666B1 (en)
GB (1) GB2191317B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2488980B (en) 2011-03-07 2020-02-19 Advanced Risc Mach Ltd Address generation in a data processing apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1116869A (en) * 1965-10-05 1968-06-12 Sperry Rand Corp Digital electric memory addressing apparatus
GB1233927A (en) * 1967-10-02 1971-06-03
GB1450918A (en) * 1973-03-08 1976-09-29 Control Data Corp Data processing apparatus
GB2008821A (en) * 1977-11-04 1979-06-06 Sperry Rand Corp Improvements relating to Digital Computers
GB2127994A (en) * 1982-09-29 1984-04-18 Apple Computer Memory management unit for digital computer
EP0205112A2 (en) * 1985-06-11 1986-12-17 Unisys Corporation Addressing environment storage for accessing a stack-oriented memory

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6158043A (en) * 1984-07-28 1986-03-25 Fujitsu Ltd Register address converter circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1116869A (en) * 1965-10-05 1968-06-12 Sperry Rand Corp Digital electric memory addressing apparatus
GB1233927A (en) * 1967-10-02 1971-06-03
GB1450918A (en) * 1973-03-08 1976-09-29 Control Data Corp Data processing apparatus
GB2008821A (en) * 1977-11-04 1979-06-06 Sperry Rand Corp Improvements relating to Digital Computers
GB2127994A (en) * 1982-09-29 1984-04-18 Apple Computer Memory management unit for digital computer
EP0205112A2 (en) * 1985-06-11 1986-12-17 Unisys Corporation Addressing environment storage for accessing a stack-oriented memory

Also Published As

Publication number Publication date
KR930009666B1 (en) 1993-10-08
GB2191317B (en) 1990-05-16
JPS62276633A (en) 1987-12-01
GB8712079D0 (en) 1987-06-24
KR870011535A (en) 1987-12-24
JP2522248B2 (en) 1996-08-07

Similar Documents

Publication Publication Date Title
US5450610A (en) RISC system capable of performing calls and returns without advancing or restoring window pointers
US4511964A (en) Dynamic physical memory mapping and management of independent programming environments
KR860001434B1 (en) Bank interleaved vector processor having a fixed relationship between start timing signals
KR100323374B1 (en) Dynamic register management device and method in floating point unit
US3786432A (en) Push-pop memory stack having reach down mode and improved means for processing double-word items
EP0011442B1 (en) Data processing system having an integrated stack and register machine architecture
EP0213843B1 (en) Digital processor control
US3654621A (en) Information processing system having means for dynamic memory address preparation
IE50246B1 (en) Multi-programming data processing system process suspension
GB2038049A (en) Floating point processor having concurrent exponent/mantissa operation
EP0126247B1 (en) Computer system
US5293594A (en) Data processing system having a plurality of register groups and a logical or circuit for addressing one register of one of the register groups
US5537576A (en) Expandable memory for a digital signal processor including mapped first and second memory banks forming a continuous and contiguous address space
US6138210A (en) Multi-stack memory architecture
EP0167959B1 (en) Computer vector register processing
CA1115425A (en) Data processor with address extension
US5179681A (en) Method and apparatus for current window cache with switchable address and out cache registers
EP0240108A2 (en) A data processing system
GB2191317A (en) Accessing memory
US5179682A (en) Method and apparatus for improved current window cache with switchable address in, out, and local cache registers
JPH034936B2 (en)
US4301514A (en) Data processor for processing at one time data including X bytes and Y bits
US6067602A (en) Multi-stack-caching memory architecture
US6092152A (en) Method for stack-caching method frames
JPS6126979Y2 (en)

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20030521