IE48887B1 - Memory address translation system - Google Patents

Memory address translation system

Info

Publication number
IE48887B1
IE48887B1 IE2400/79A IE240079A IE48887B1 IE 48887 B1 IE48887 B1 IE 48887B1 IE 2400/79 A IE2400/79 A IE 2400/79A IE 240079 A IE240079 A IE 240079A IE 48887 B1 IE48887 B1 IE 48887B1
Authority
IE
Ireland
Prior art keywords
significant bits
memory
address
significant
data name
Prior art date
Application number
IE2400/79A
Other versions
IE792400L (en
Original Assignee
Burroughs Corp
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 Burroughs Corp filed Critical Burroughs Corp
Publication of IE792400L publication Critical patent/IE792400L/en
Publication of IE48887B1 publication Critical patent/IE48887B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Abstract

In a named data processing system having a plurality, N, of memory modules, each module therein having a plurality of locations for storing data, a memory address translation apparatus translates a data job name and associated segmented address field into a memory module-page addressing pair wherein each and every storage location may be accessed by each and every job name. The job name and the associated segmented address field are each partitioned into most and least significant bit fields. Through translation a storage location is defined by the exclusive ORing, 23, of the least significant fields a2, b2, of the data job name and segmented address field. A memory module is defined by the modulo N sum, 27, of the output of XOR 23 and an address formed by the exclusive ORing, 21, of the most significant fields, a1, b2, of the job name and the segmented address field as permuted by an exclusive ORing, 25, with the least significant field, b2, of the segmented address field. Preferably, in order to increase address spacing activity, the most significant field, a1, of the job name is processed through a Fibonacci hashing process, 19, before any exclusive ORing process.

Description

Cross References Related to Application In co-pending U. S. Patent application S.N. 893,068, filed April 3, 1978, for an ERROR CONTROL SYSTEM POR NAMED DATA, in the names of K. L. York et al and assigned to the assignee of the present invention, there is disclosed a named data processing system operating in a hierarchial cache memory environment. The present invention, although not limited thereto would function well in such an environment providing for all required hierarchial level address translations with a single translation using the method and apparatus disclosed.
Background and Objects of the Invention In the environment of a multi-memory module (or port) named data processing system wherein each job or data name is utilized to provide at least in part the addressing function for each memory module, each memory module having therein a plurality of storage locations for storing data pages or the like, the apparatus and method of the present invention provides a memory addressing translation system which permits each storage location to be accessed by each data name.
Two problems occur when a job name also serves as an addressing function in a multi-memory module environment.
First, certain job names may not be able to access every storage location of every memory module thereby creating either forbidden regions of storage for a given job name or a set of forbidden job names. Second, certain job names may favor particular memory modifies or regions therein and sparsely utilize other modules or storage locations. =- 2 ~ Therefore, it is an object of the present invention to provide for a named data system a memory address translation method and apparatus which will permit the accessing of every memory storage location in a multi-memory module environment by every job name used therein.
It is another object of the present invention to provide for a named data system a memory address translation method and apparatus which will provide a high degree of uniformity in memory storage location utilization in a multi-memory module environment.
Summary of the Invention The above and other objects and features of the invention are realized by a memory address translation system for translating a job name and associated segmented address field into a memory module-page addressing pair wherein each and every storage location may be addressed by each and every job name. The job name and the associated segmented address field are each partitioned into most and least significant bit fields. Through translation a storage location is defined by the exclusive ORing of the least significant fields of the job name and segmented address field. Likewise a memory module is defined by the exclusive ORing of the most significant fields of the job name and the segmented address field as permuted by an exclusive ORing with the least significant field of the segmented address field. Preferably, in order to increase address spacing activity, the most significant field of the job name is processed through a Fibonacci hashing process before any exclusive ORing process. - 3 48887 Brief Description of the Drawings Other objects, features and advantages of this invention will be readily apparent and better understood by reference to the following detailed description when considered in conjunction with the appended claims and accompanying drawings in which: Figure 1 is an illustration of a multi-memory module system being addresssed by a job name and segment field; Figure 2 illustrates the partitioning of the job name and segment field of Figure 1 into most and least significant bit fields? Figure 3 demonstrates in tabular foriaat the address translation in accord with the present invention on the job name and segment field of Figure 2 to access tne memory modules shown in Figure 1; and Figure 4 is a logic diagram for the translation hardware of the present invention.
Detailed Description of the Preferred Embodiment In the preferred embodiment of the present invention a virtual segment address 11 comprising a job name field 13 and a segment field 15 is used to address a plurality of memory modules. Illustrated in Figure 1 is memory modules 1 through 4. Each memory module comprises a plurality of storage locations identified in Figure 1 as storage locations 1 through 3. Each storage location 1 through 8 is fashioned to store a desired portion of data such as a page, word, byte or bit.
The virtual segment address 11, see Figure 2, comprising the job name 13 and the segment address field 15 may also comprise additional bits D. The additional bits D may be used to address a particular word, byte, or bit when the memory modules 1 through 4 are storing greater portions of data. The additional bits D are in the preferred embodiment, not processed through the translation processing system of the present invention. The job name field 13 identified as A in Figure 2, comprises a most significant bit field Al and a least significant bit field A2, each comprising C number of bits. Likewise the segment field 15 identified as 3 in Figure 2 comprises a most significant bit field 31 and a least significant bit field B2, each bit field comprising C number of bits. The translation method and system of the present invention may be performed through the utilization of a look-up table 17 implementable either in software or as a hardware matrix. The row number of the look-up table 17 is defined as being equal to a2 XOR b2 wherein a2 is an actual least significant bit field selected from the least significant bit field A2 of the job name 13. Likewise the b2 represents an actual least significant bit address from the least significant bit field B2 of the address segment 15. The term XOR implies that an exclusive ORing process bit-by-bit, is occurring with the functions a2 and b2. The column, number of the look-up table 17 is defined by b2 XOR (al XOR bl). Since al and bl represent most significant fields and therefore may be constant over a period of time, a permutating function, b2; is introduced to increase activity in the Column C selection. In the look-up table 17 the Column C and Row R intersections identify or address a memory module ilH. It is noted that the addressed memory module MM is equal to the row number plus the column number taken modulo 3. It is appreciated that if the total number of rows and the total number of columns each equalled a positive integer such as ΪΙ rather than 8, then the memory module MM would be equal to R + C quantity modulo M.
In performing the complete memory address translation in accord with the apparatus and method of the invention, it is preferred that scrambling of the Fibonacci hashing type be performed on the bits al. The Fibonacci hashing system 19, see Figure 4, is fabricated in accord with techniques well known in the art. See for example, Donald E. Knuth, THE ART OF COMPUTER PROGRAMMING, Volume 3, SORTING AND SEARCHING, Pages 508 through 513. - 6 48887 Fibonacci hashing is preferred because it leads to a most uniformly distributed sequence for al when the job name is increasing incrementally bit-by-bit. It is appreciated that al, being the most significant bits of the job name field 13, remain constant over rather substantial periods of time when the job names are selected sequentially as is commonly the case. The Fibonacci hashing system 19 may be fabricated in either software or hardware.
The most significant bit fields al and bl are combined in an exclusive ORing circuit which exclusively ORs on a bit-by-bit basis. Likewise the least significant bit fields a2 and b2 are exclusively ORed in exclusive OR circuit 23.
The output of the exclusive OR circuit 21 and the least significant bit field b2 are exclusively ORed together in a exclusive OR circuit 25 to produce C which represents the column number of the look-up table in Figure 3. The output of exclusive OR circuit 23 generates R which is the row number of the look-up table of Figure 3. In an alternate hardware version shown in Figure 4, C arid R are fed to a modulo N adder which generates the output MM being the memory module number. The output R from exclusive OR circuit 22 yields the page or memory storage location and thus completes the transaction.
The above-desefcibed memory address translation method and apparatus has been described and shown for a single level multi-memory module system. It is appreciated that such a method and apparatus would be of great benefit in a multi-level cache memory system such as described in the above-cited U. S. patent application, S.ti. 893,063. - 7 48887 Further, other additions and modifications to the preferred embodiment may be made. As an example, each memory module MM may be replaced by a memory control unit controlling the single or plurality of stacked memories.
Pages or storage locations within each memory module may be of varying sizes in varying levels of the case memory hierarchy.
Thus, although the present memory translation apparatus and method invention has been described with a certain degree of particularity, it should be understood that the present disclosure has been made by way of example and that changes in the combination and arrangements of parts obvious to one skilled in the art, may be resorted to without departing from the scope and spirit of the invention.

Claims (13)

1. A memory address translation apparatus for a data storage system having a plurality of memory modules, each memory module therein having a plurality of addressable storage locations, said data storage system addressed by t a data name and an address segment, each data name and each address segment having a plurality of least significant bits and a plurality of most significant bits, said memory address translation apparatus comprising: least significant bit means for exclusively ORing said least significant bits of said data name with said least significant bits of said address segment to generate at the output thereof the address of an addressable storage location in said plurality thereof; most significant bit means for exclusively ORing said most significant bits of said data name with said most significant bits of said address segment; permuting means for exclusively ORing the output of said most significant bit means with said least significant bits of said address segment; and means for combining in modulo N fashion the output of said permuting means with the output of said least significant bit means to address a memory module in said plurality thereof, said M being equal to the number of memory modules in said plurality thereof.
2. The memory address translation apparatus of Claim 1 wherein said means for combining in modulo N fashion includes a modulo N adder.
3. The memory address translation apparatus of Claim 1 wherein said means for combining in modulo N fashion includes a two dimensional matrix addressed in one dimension by the output of said permuting means and in the other dimension by the output of said least significant bit means.
4. The memory address translation apparatus of Claim 1 further including: means for scrambling said most significant bits of said data name prior to providing same to said most significant bit means.
5. The memory address translation apparatus of Claim 4 wherein said means for scrambling applies Fibonacci hashing to said most significant bits of said data name.
6. The memory address translation apparatus of Claim 5 wherein said means for combining in modulo N fashion includes a modulo N adder.
7. The memory address translation apparatus of Claim 6 wherein said means for combining in modulo N fashion includes a two dimensional matrix addressed in one dimension by the output of said permuting means and in the other dimension by output of said least significant bit means.
8. A memory address translation method for data storage having a plurality of memory modules, each memory module therein having a plurality of addressable storage locations, said data storage system addressed by a data name and an address segment, each data name and each address segment having a plurality of least significant bits and a plurality of most significant bits, said memory address translation method comprising the steps of: exclusively ORing said least significant bits of said data name with said least significant bits of said address segment to generate the address of an addressable storage location in said plurality thereof; exclusively ORing said most significant bits of said data name with said most significant bits of said address segment; exclusively ORing said exclusively ORed most significant bits of said data name and said address segment with said least significant bits of said address segment; and combining in modulo N fashion the exclusively ORed most significant bits of said data name and address segment and said least significant bits of said address segment with said exclusively ORed least significant bits of said data name and said address segment to address a memory module in said plurality thereof, said N being equal to the number of memory modules in said plurality thereof.
9. The memory address translation method of Claim 8 further including the step of: scrambling said most significant bits of said data name prior to the step of exclusively ORing said most significant bits of said data name with said most significant bits of said address segment.
10. The memory address translation method of Claim 9 wherein said step of scrambling includes the step of applying Fibonacci hashing to said most significant bits of said data name.
11. A memory address translation method, substantially as herein described with reference to the accompanying drawings.
12. A memory address translation apparatus, substantially as herein described with reference to and as shown in the accompanying drawings.
13. A data processing system including a memory address translation apparatus, and substantially as herein described with reference to and as shown in the accompanying drawings.
IE2400/79A 1978-12-26 1979-12-11 Memory address translation system IE48887B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US97291678A 1978-12-26 1978-12-26

Publications (2)

Publication Number Publication Date
IE792400L IE792400L (en) 1980-06-26
IE48887B1 true IE48887B1 (en) 1985-06-12

Family

ID=25520289

Family Applications (1)

Application Number Title Priority Date Filing Date
IE2400/79A IE48887B1 (en) 1978-12-26 1979-12-11 Memory address translation system

Country Status (3)

Country Link
JP (1) JPS5589971A (en)
GB (1) GB2039103B (en)
IE (1) IE48887B1 (en)

Also Published As

Publication number Publication date
GB2039103A (en) 1980-07-30
GB2039103B (en) 1982-12-08
IE792400L (en) 1980-06-26
JPS6239451B2 (en) 1987-08-24
JPS5589971A (en) 1980-07-08

Similar Documents

Publication Publication Date Title
US4433389A (en) Memory address translation system for accessing memory locations via job names
US6381668B1 (en) Address mapping for system memory
US4991088A (en) Method for optimizing utilization of a cache memory
US5619671A (en) Method and apparatus for providing token controlled access to protected pages of memory
US4057848A (en) Address translation system
US4241401A (en) Virtual address translator utilizing interrupt level code
EP0179401B1 (en) Dynamically allocated local/global storage system
EP0650124B1 (en) Virtual memory computer system address translation mechanism that supports multiple page sizes
US5724538A (en) Computer memory address control apparatus utilizing hashed address tags in page tables which are compared to a combined address tag and index which are longer than the basic data width of the associated computer
US4244033A (en) Method and system for operating an associative memory
US3764996A (en) Storage control and address translation
EP0263924B1 (en) On-chip bit reordering structure
US4215402A (en) Hash index table hash generator apparatus
US5313611A (en) Method and apparatus for maintaining a lookup table for storing function values
EP0394436B1 (en) Automatically variable memory interleaving system
JPH0622000B2 (en) Microprocessor device
EP0007001A1 (en) Constrained paging data processing apparatus
EP0530682B1 (en) Method and system for addressing a very large memory
EP0891586A1 (en) Flexible expansion of virtual memory addressing
US6279094B1 (en) Method and apparatus for managing invalidation of virtual memory mapping table entries
US5077826A (en) Cache performance in an information handling system employing page searching
US6865590B2 (en) Three input variable subfield comparation for fast matching
IE48887B1 (en) Memory address translation system
EP0549309B1 (en) Address reduction scheme implementing rotation algorithm
EP0313787A3 (en) A hardware mechanism for the dynamic customization of permutation using bit-matrix multiplication