DE3333894A1 - STORAGE MANAGEMENT UNIT - Google Patents

STORAGE MANAGEMENT UNIT

Info

Publication number
DE3333894A1
DE3333894A1 DE19833333894 DE3333894A DE3333894A1 DE 3333894 A1 DE3333894 A1 DE 3333894A1 DE 19833333894 DE19833333894 DE 19833333894 DE 3333894 A DE3333894 A DE 3333894A DE 3333894 A1 DE3333894 A1 DE 3333894A1
Authority
DE
Germany
Prior art keywords
memory
mmu
management unit
main memory
stored
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
DE19833333894
Other languages
German (de)
Other versions
DE3333894C2 (en
Inventor
Paul A. 94022 Los Altos Calif. Baker
Gary L. 95014 Cupertino Calif. Marten
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.)
Apple Inc
Original Assignee
Apple Computer Inc
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 Apple Computer Inc filed Critical Apple Computer Inc
Publication of DE3333894A1 publication Critical patent/DE3333894A1/en
Application granted granted Critical
Publication of DE3333894C2 publication Critical patent/DE3333894C2/de
Granted 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

PATENTANWÄLTE ZENZ & HELBER-D 4<3O0 ESSEN 1 · AM-RUHRSTEIN 1 · TEL.: (02 01) 4126 Seite - y- S- A 76PATENTANWÄLTE ZENZ & HELBER-D 4 <3O0 ESSEN 1 · AM-RUHRSTEIN 1 · TEL .: (02 01) 4126 Page - y- S- A 76

APPLE COMPUTER, INC. 10260 Bandley Drive, Cupertino, Kalifornien 95014, V.St.A,APPLE COMPUTER, INC. 10260 Bandley Drive, Cupertino, California 95014, V.St.A,

SpeichermanagementeinheitStorage management unit

Die Erfindung bezieht sich auf Computerspeicher und insbesondere eine Speichermanagementeinheit (MMU).The invention relates to computer memories and, more particularly, to a memory management unit (MMU).

In den meisten Computern steht eine Zentraleinheit (CPU) direkt sowohl mit einem Adressenbus als auch einem Datenbus in Verbindung. Diese Busse bzw. Sammelleitungen sind mit einem Hauptspeicher oder Hauptspeichersystemen sowie mit zahlreichen anderen Komponenten, wie Ein/Ausgabeeinheiten, Spezialprozessoren, DMA-Einheiten usw. gekoppelt. Der Computer-Hauptspeicher ist meistens die teuerste Komponente des Computers, insbesondere wenn man dessen Preis mit neuerdings erhältlichen Mikroprozessoren, wie dem 8080, 8086, 6800 und 68000 vergleicht. Es ist daher wichtig, den Hauptspeicher des Computers mit hohem Wirkungsgrad auszunutzen.In most computers, a central processing unit (CPU) is directly connected to both an address bus and a data bus Link. These buses or collecting lines are with a main memory or main memory systems as well as with numerous other components, such as input / output units, special processors, DMA units, etc. The main computer memory is usually the most expensive component of the computer, especially when you consider its price with the more recently available Compare microprocessors such as the 8080, 8086, 6800, and 68000. It is therefore important to use the main memory of the computer to be used with high efficiency.

Speichermanagementeinheiten (MMU's) dienen nach dem Stand der Technik zum wirksamen Ausnutzen des Hauptspeichers des Computers. Derartige Einheiten übernehmen Organisations- und Verwaltungsfunktionen, wie Neuabbildung usw.. Häufig weist eine MMU einen Speicher auf, der ein Datenumladungssystem speichert. Die Bits höherer Ordnung der logischen Adresse aus dem Prozessor (CPU) dienen zum Adressieren des MMU-Speichers. Aus der Sicht der CPU wird beispielsweise durch diese Bits ein Segment des Hauptspeichers ausgewählt. Die ausgewählte CPU-According to the state of the art, memory management units (MMUs) are used to make effective use of the main memory of the computer. Such units take on organizational and administrative functions, such as remapping, etc. Often points an MMU has a memory storing a data reloading system. The higher order bits of the logical address the processor (CPU) are used to address the MMU memory. From the point of view of the CPU, for example, these bits make a Main memory segment selected. The selected CPU

Z/bu.Z / bu.

Segmentnummer wird durch eine neue Nummer aus dem MMU-Speicher ersetzt, wobei im Ergebnis eine Verschiebung zwischen der Logikadresse aus der CPU und der zum Zugriff zum Hauptspeicher verwendeten physikalischen Adresse auftritt.The segment number is replaced by a new number from the MMU memory, resulting in a shift between the Logic address from the CPU and the physical address used to access the main memory.

Eine andere, von bekannten MMU■s erfüllte Funktion besteht darin, die Adressen aus der CPU darauf zu überprüfen, ob sie in vorgegebene Bereiche fallen. Eine im MMU-Speicher gespeicherte Grenzzahl wird mit Bits niedriger Ordnung oder Stellender logischen Adresse (z. B. der Seitenversetzung) verglichen, um sicherzugehen, daß die Seitenversetzung in einen vorgegebenen Adressenbereich der ausgewählten Segmentenzahl fällt. Dadurch wird beispielsweise verhindert, daß "Daten" zufällig aus Speicherplätzen gelesen werden, in die sie nicht eingesetzt worden sind.Another function performed by known MMU ■ s is to Check the addresses from the CPU to see whether they fall within the specified ranges. One stored in MMU memory Limit number is compared with low-order bits or digits of the logical address (e.g. the page offset), to ensure that the page offset falls within a given address range of the selected segment number. This prevents, for example, "data" from being accidentally read from memory locations in which it is not inserted have been.

Die Erfindung baut auf diesen bekannten MMU's auf, welche eine Verschiebungs- bzw. Umladungsbasis und eine Adressenbereichsverifikation ermöglichen. Wie zu sehen sein wird, ist der MMU-Speicher in einer Hinsichtjerweitert, um die Art der im Hauptspeicher gespeicherten Information darstellende Signale zu speichern. Hiermit wird der Zugriff des Hauptspeichers gesteuert und beispielsweise ein zufälliges Schreiben in Programme und ein Benutzerzugriff zu den Betriebssystemen verhindert. Der MMU-Speicher wird andererseits dahingehend erweitert, daß ein überlappendes Speichermanagement geschaffen wird. Dies ermöglicht die Ausführung verschiedener Prozesse (Programm und Daten) durch den Computer ohne Neuprogrammierung des MMU-Speichers.The invention is based on these known MMUs, which a reload base and address range verification enable. As will be seen, the MMU memory is extended in one respect to the type of to store signals representing information stored in the main memory. This gives access to the main memory controlled and, for example, random writing to programs and user access to the operating systems prevented. On the other hand, the MMU memory is expanded in such a way that an overlapping memory management is created will. This enables various processes (program and data) to be executed by the computer without reprogramming of the MMU memory.

Erfindungsgemäß wird eine verbesserte Speichermanagementeinheit (MMU) zur Verwendung mit einem Computer vorgeschlagen, der einen Zentralprozessor (CPU) und einen Hauptspeicher aufweist. Die MMU weist eine Umladungs- bzw. Verschiebebasis auf und liefert bei Empfang erster Adressensignale aus dem Prozessor zweite Adressensignale für den Zugriff zum Speicher.According to the invention, an improved memory management unit (MMU) is proposed for use with a computer, which has a central processor (CPU) and a main memory. The MMU has a reloading or reloading base and upon receipt of first address signals from the processor, provides second address signals for access to the memory.

7.7th

Die MMU weist auch Speichermittel zur Aufnahme und Speicherung von Signalen auf, die für die an Plätzen im Hauptspeicher gespeicherten Informationsarten repräsentativ sind. Zugriffsmittel sind vorgesehen, welche einen Zugriff zu diesen gespeicherten Signalen ermöglichen, wenn die entsprechenden Plätze im Hauptspeicher zugegriffen werden. Die gespeicherten Signale aus den Speichermitteln werden zum Hauptspeicher übertragen, um beispielsweise eine Zugriffsgrenze zu gewissen Datenarten im Hauptspeicher, z. B. zu den Betriebssystemen, zu setzen. Diese Signale können auch dazu dienen, eine Nur-Lese-Operation von Programmen und ein Lesen und Schreiben von Daten zu ermöglichen.The MMU also has storage means for receiving and storing of signals that are stored in places in the main memory Types of information are representative. Access means are provided which allow access to these stored Enable signals when the corresponding locations in the main memory are accessed. The saved Signals from the storage means are transmitted to the main memory, for example in order to determine an access limit Types of data in main memory, e.g. B. to the operating systems. These signals can also be used to perform a read-only operation of programs and reading and writing of data.

Bei dem bevorzugten Ausführungsbeispiel der Erfindung sind die Speichermittel integraler Bestandteil des MMU-Speichers. Der MMU-Speicher hat die vierfache Kapazität, die dazu benötigt wird, die Verschiebe- bzw. Umladebasiszahlen und Grenzzahlen für den gesamten Hauptspeicher zu schaffen. Wie nachfolgend noch genauer beschrieben wird, ermöglicht diese zusätzliche Kapazität eine Form von "Bankschaltung" und die Durchführung verschiedener Prozesse über den Computer ohne Umprogrammierung des MMU-Speichers.In the preferred embodiment of the invention, the storage means are an integral part of the MMU memory. Of the MMU memory has four times the capacity that is required for this, the shifting or reloading base numbers and limit numbers to create for the entire main memory. As will be described in more detail below, this enables additional Capacity a form of "bank switching" and the execution of various processes via the computer without reprogramming of the MMU memory.

Im folgenden wird die Erfindung anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher erläutert. In der Zeichnung zeigen:In the following the invention is explained in more detail with reference to an embodiment shown in the drawing. In the Drawing show:

Fig. 1 ein generelles Blockdiagramm mit einer Zentraleinheit bzw. einem Prozessor (CPU), einer Speichermanagementeinheit (MMU), einem Hauptspeicher und deren Verbindungen in einem Computer; Figure 1 is a general block diagram with a central processing unit or a processor (CPU), a memory management unit (MMU), a main memory and their connections in a computer;

Fig. 2 ein Organisationsschaubild der im Speicher der MMU gespeicherten Daten;Fig. 2 is an organizational diagram of the data stored in the memory of the MMU;

Fig. 3 ein Blockschaltbild der MMU; undFig. 3 is a block diagram of the MMU; and

Fig. 4 ein Schaubild zur Beschreibung der verschiedenen Kontexte, die beim Betrieb der MMU verwendet werden und der resultierenden Organisation der im Computer-Hauptspeicher gespeicherten Information,Figure 4 is a diagram describing the various contexts used in the operation of the MMU and the resulting organization of the information stored in the computer main memory,

Beschrieben wird eine Speichermanagementeinheit (MMU) zur Verwendung in einem Digitalrechner, der einen Prozessor (CPU) und einen Hauptspeicher aufweist. In der folgenden Beschreibung werden zahlreiche Einzelheiten (z. B. spezielle Speichergrößen, Teilnummern usw.) zur Erleichterung des Verständnisses der Erfindung angegeben. Für den Fachmann ist klar, daß diese Einzelheiten zur Ausführung der vorliegenden Erfindung nicht erforderlich sind. In anderen Fällen werden bekannte Schaltungen usw. nicht im einzelnen beschrieben, um die Erläuterungen der Erfindung nicht mit überflüssigen Einzelheiten zu belasten.A memory management unit (MMU) for use is described in a digital computer that has a processor (CPU) and main memory. In the following description numerous details (e.g. special memory sizes, part numbers, etc.) are provided to aid understanding specified of the invention. It will be apparent to those skilled in the art that these details cannot be used to practice the present invention required are. In other cases, well-known circuits, etc. are not described in detail for the sake of explanation of the invention not to burden with superfluous details.

In Fig. 1 ist die Kopplung zwischen einer MMU, einem Prozessor (CPU) und einem Hauptspeicher veranschaulicht. Dieses Kopplungsschema ist bei der Erfindung ähnlich demjenigen des Standes der Technik. Der Computer gemäß Fig. 1 weist einen Zweirichtungs-Datenbus 16 auf, der mit der CPU 10, dem Hauptspeicher 14 und der MMU 12 in Verbindung steht. Der Adressenbus 18 nimmt Adressensignale aus der CPU 10 auf und überträgt einen Teil dieser Adressen zur MMU 12 und einen Teil zum Hauptspeicher 14. Andere Steuersignale werden entsprechend der Darstellung durch die Leitungen 35 und 37 zwischen der CPU 10 und der MMU 12 übertragen. Weitere Verbindungen bestehen zwischen der MMU 12 und dem Hauptspeicher 14, wie durch die Leitungen 57 veranschaulicht ist.In Fig. 1, the coupling between an MMU, a processor (CPU) and a main memory is illustrated. This coupling scheme is similar in the invention to that of the prior art. The computer of FIG. 1 has a bidirectional data bus 16, which is connected to the CPU 10, the main memory 14 and the MMU 12. The address bus 18 receives address signals from the CPU 10 and transmits some of these addresses to the MMU 12 and some to the Main memory 14. Other control signals are provided as shown by lines 35 and 37 between the CPU 10 and MMU 12 are transferred. Further connections exist between the MMU 12 and the main memory 14, such as is illustrated by lines 57.

Die MMU 12 wird aus der CPU 10 über den Datenbus 16 programmiert, Adressen werden über den Bus 18 von der CPU IO zur MMU übertragen und ermöglichen das Laden der MMU 12.The MMU 12 is programmed from the CPU 10 via the data bus 16; addresses are transferred via the bus 18 from the CPU IO to the MMU and enable the MMU 12 to be loaded.

Bei dem beschriebenen Ausführungsbeispiel enthält die CPU IO einen 68000-Prozessor. Für diesen Prozessor liefert die CPU 10 24 Bitadressen. (Tatsächlich ist das Bit niedrigster Ord- . nung physikalisch nicht als solches vorhanden, sondern in andere Signale kodiert; zum Zwecke der Erläuterung sei jedoch angenommen, daß auch dieses Bit ein gewöhnliches Adressen-In the described embodiment, the CPU contains IO a 68000 processor. The CPU 10 supplies 24 bit addresses for this processor. (In fact, the lowest order bit is. The signal is not physically present as such, but is encoded in other signals; however, for the purpose of explanation assumed that this bit is also an ordinary address

bit ist.) Es sei außerdem hier angenommen, daß die sieben am höchsten bewerteten Bits jeder logischen Adresse aus der CPU ein Segment im Speicher auswählen, daß die nächsten acht niedriger bewerteten Bits eine Seitenversetzung enthalten und daß die am niedrigsten bewerteten neun Bits eine Versetzung (offset) beinhalten.bit.) It is also assumed here that the seven Most significant bits of each logical address select from the CPU a segment in memory that the next eight lower valued bits contain a page offset and that the lowest valued nine bits contain an offset (offset) include.

Bei dem beschriebenen Ausführungsbeispiel werden das Segment und die Seitenversetzung jeder Adresse zur MMU 12 übertragen. Die MMU liefert durch Austausch der Segmentenzatil aus der CPU 10 mit einer in der MMU 12 gespeicherten Segmentenzahl eine Umladungsbasis. Insbesondere adressiert die Segmentenzahl aus der CPU 10 einen Speicher innerhalb der MMU 12, und dieser Speicher liefert eine Segmentenbasis zum Adressieren des Hauptspeichers 14. Der Seitenoffsetteil der Adresse aus der CPU 10 wird überprüft, um festzustellen, ob das Seitenoffset in einen vorgegebenen Bereich des Segments fällt. Dies würde beispielsweise verhindern, daß alle Nullen aus einem ungebrauchten Raum im Hauptspeicher gelesen und als Daten interpretiert werden. Die Segmentenbasis aus der MMU wird zusammen mit dem Seitenoffset addiert und danach auf dem Bus 18a und 18b der Fig. 1 zum Hauptspeicher 14 übertragen. Die neun am niedrigsten bewerteten Bits werden direkt über den Bus 18c aus der CPU zum Hauptspeicher geleitet.In the described embodiment, the segment and the page offset of each address are transferred to the MMU 12. The MMU delivers by exchanging the segment index from the CPU 10 with a number of segments stored in MMU 12 forms a reloading base. In particular, the number of segments is addressed from the CPU 10, a memory within the MMU 12, and this memory provides a segment base for addressing of main memory 14. The page offset portion of the address from CPU 10 is checked to see if the page offset falls within a predetermined area of the segment. For example, this would prevent all zeros from coming out of one unused space in the main memory can be read and interpreted as data. The segment base from the MMU becomes added together with the page offset and then transferred to the main memory 14 on the bus 18a and 18b of FIG. the nine least significant bits are passed directly from the CPU to main memory over bus 18c.

Im folgenden wird auf Fig. 3 Bezug genommen. Bei dem beschriebenen Ausführungsbeispiel enthält die MMU einen MMU-Speicher 20. Dieser Speicher ist ein Speicher mit direktem Zugriff, der aus im Handel erhältlichen statischen MOS RAM's hergestellt ist. In einer realisierten Ausführung werden drei Nummer 2148 RAM's als Speicher 20 verwendet, wodurch sich eine Gesamtkapazität von 12 k Bits ergibt. Die Organisation des MMU-Speichers wird in Verbindung mit Fig. 2 genauer erläutert. Reference is made to FIG. 3 below. With the one described In the exemplary embodiment, the MMU contains an MMU memory 20. This memory is a memory with direct access, which is made from commercially available static MOS RAM's. In a realized implementation there will be three Number 2148 RAM's used as memory 20, resulting in a total capacity of 12 k bits. The organization of the MMU memory is explained in more detail in connection with FIG.

Die Adresse aus der CPU ist im obersten Teil der Fig. 3 als 24 Bit Adresse (logische Adresse) gezeigt.'Die sieben amThe address from the CPU is shown in the uppermost part of Fig. 3 as a 24-bit address (logical address). 'The seven am

höchsten bewerteten Bits dieser Adresse werden über den Bus 18a zum MMU-Speicher übertragen und zum Adressieren des MMU-Speichers verwendet. Die nächstniedriger bewerteten Bits (Bus 18b) werden an eine Addierstufe 27 angelegt, und die am niedrigsten bewerteten neun Bits (offset) werden über den Bus 18c an einen Register 28 angelegt. Der Ausgang des MMU-Speichers besteht aus zwei 12-Bit-Worten (Bus 22 und 23). Diese Worte werden über einen Multiplexer 25 zu einem 12-Bit-Bus 30 übertragen. Eines der 12-Bit-Worte aus dem Speicher 20 bildet die Segmentbasis aus der gespeicherten Umladungsbasis. Die zweiten 12-Bits bestehen aus acht Bits zur Grenzüberprüfung des Seitenoffset und vier zusätzlichen Bits, denen die- Erfindung besondere Funktionen zuordnet.The highest significant bits of this address are transmitted via the bus 18a to the MMU memory and for addressing the MMU memory used. The next lower valued bits (bus 18b) are applied to an adder 27, and the the lowest significant nine bits (offset) are applied to a register 28 via the bus 18c. The output of the MMU memory consists of two 12-bit words (bus 22 and 23). These words are transmitted to a 12-bit bus 30 via a multiplexer 25. One of the 12-bit words from memory 20 forms the segment base from the stored reload base. the The second 12-bits consist of eight bits for boundary checking of the page offset and four additional bits for which the invention assigns special functions.

(Bei dem beschriebenen Ausführungsbeispiel gibt es keinen physikalisch getrennten Multiplexer 25, sondern der Ausgang des Speichers 20 wird im Zeitmultiplex verarbeitet. Zum Zwecke der Erläuterung ist es jedoch leichter, einen besonderen Multiplexer 25 darzustellen.)(In the exemplary embodiment described, there is no physically separate multiplexer 25, but the output of memory 20 is time-division multiplexed. However, for the purpose of explanation it is easier to name a specific Multiplexer 25 to be shown.)

Der Multiplexer 25dient auch zum Laden von Information aus dem Bus 16 in den Speicher 20. Das Signal auf der Leitung 47 kommt aus einer Zugriffsprüflogik 40 und schafft ebenso Zugriff zum Speicher 20 wie die Signale auf einer Leitung 35. Das Signal auf einer Leitung 37 steuert die Multiplexverarbeitung der Daten zwischen entweder dem Bus 22 oder dem Bus 23.The multiplexer 25 is also used to load information from the bus 16 into the memory 20. The signal on the line 47 comes from an access test logic 40 and creates access to the memory 20 just like the signals on a line 35. The signal on line 37 controls the multiplexing of the data between either bus 22 or the bus 23

Der 12-Bit-Bus 30 vom Multiplexer 25 ist mit der Addierstufe 27 gekoppelt. Diese Addierstufe erhält auch die acht Bits über den Bus 18b. Wie nachfolgend beschrieben werden wird, bestimmt der Addierer 27, wenn das Seitenoffset in einen vorgegebenen Bereich des ausgewählten bzw. angesteuerten Segments fällt. Die Addierstufe 27 kombiniert auch die Umladung (Segmentenbasis) aus dem MMU-Speicher mit dem Seitenoffset, um die zwölf am höchsten bewerteten Bits der physikalischen Ad-The 12-bit bus 30 from multiplexer 25 is with the adder stage 27 coupled. This adder also receives the eight bits via bus 18b. As will be described below, the adder 27 determines when the page offset is within a predetermined range of the selected or driven segment falls. The adder 27 also combines the reloading (segment basis) from the MMU memory with the page offset to the twelve most highly valued bits of the physical ad-

resse zu bilden. Diese zwölf Bits werden zusammen mit den neun Bits vom Bus 18c an das Register 28 angelegt, um eine 21-Bit-Adresse zu schaffen, welche zum Hauptspeicher IA übertragen wird. (Das Register 28 existiert bei dem beschriebenen Ausführungsbeispiel an sich nicht, wird aber zu Erläuterungszwecken gezeigt.)resse to form. These twelve bits, along with the nine bits from bus 18c, are applied to register 28 to create one 21-bit address to which the main memory IA is transmitted. (Register 28 per se does not exist in the exemplary embodiment described, but is used for explanatory purposes shown.)

Die vier Zugriffsprüfbits werden vom Multiplexer 25 über die Leitung 45 zur Zugriffslogik AO übertragen. Hier werden die Signale dekodiert, ,um ein Hauptspeicher-Steuersignal und andere Steuersignale wie folgt zu bilden: ein Bit steuert die Art des Hauptspeicherzugriffs (1= Nur-Lese-Operation, 0 = Lese/Schreib-Operation). Das zweite Bit steuert den Ein-/Ausgabezugriff (1 = Ein/Ausgabe, 0 = kein Ein-/ Ausgabezugriff). Das dritte Bit steuert den Hauptspeicherzugriff (1 = Speicherzugriff, 0 = kein Hauptspeicherzugriff). Das vierte Bit steuert die Stapelung bzw. Ablage (stacking) (1 = Stapelsegment - Kontrolle ob kein Überlauf, 0 = Normalsegment - Kontrolle auf Überlauf). Die Zugriffsprüflogik AO ist in Fig. 3 mit der Hauptspeichersteuerung über eine Leitung A7 gekoppelt und steuert den Speicherzugriff und die Art der zulässigen Zugriffe (d. h. Lese- oder Lese/ Schreib). Die Logik AO ist mit der Addierstufe 27 über Überlauf/Ubertragseingabeleitungen und mit dem Speicher 20 über die Leitung A7 zur Freigabe des Zugriffs zum Speicher 20 gekoppelt.The four access check bits are provided by the multiplexer 25 the line 45 transferred to the access logic AO. Be here decodes the signals to form a main memory control signal and other control signals as follows: a bit controls the type of main memory access (1 = read-only operation, 0 = read / write operation). The second bit controls the input / output access (1 = input / output, 0 = no input / output access). The third bit controls main memory access (1 = memory access, 0 = no main memory access). The fourth bit controls the stacking or stacking (1 = stack segment - check whether there is no overflow, 0 = normal segment - check for overflow). The access check logic AO is coupled in Fig. 3 to the main memory controller via a line A7 and controls the memory access and the type of access allowed (i.e. read or read / write). The logic AO is connected to the adder 27 via overflow / carry input lines and to the memory 20 via the line A7 to enable access to the memory 20 coupled.

Das besondere Zugriffssteuerbitmuster, das bei dem beschriebenen Ausführungsbeispiel Verwendung findet, ist nachfolgend gezeigt.The particular access control bit pattern used in the described Embodiment is used is shown below.

ZUGRIFFSSTEUERBITSACCESS CONTROL BITS

Speicher
MEM/
Storage
MEM /
Eing.
Ausg.
ΙΟ/
Input
Output
ΙΟ /
Nur
Lese
RO/
Just
reading
RO /
Stapel
STK/
stack
STK /
BitsBits OO 11 OO OO OO 11 OO 11 OO 11 11 OO OO 11 11 11 11 OO OO 11 11 11 OO OO 11 11 11 11 andereother

Adressenraum und Zugriff Hauptspeicher - Nur-Lese-Ablage Hauptspeicher - Nur-Lese Hauptspeicher - Lese/Schreib-Stapel Hauptspeicher - Lese/Schreib I/O RaumAddress space and access to main memory - read-only storage Main Storage - Read Only Main Storage - Read / Write Stack Main memory - read / write I / O space

Seite falsch (Segment nicht vorhanden) Spezieller I/O Raum unzulässig (unvorhersehbares Ergebnis)Wrong page (segment does not exist) Special I / O space inadmissible (unpredictable result)

Es sei zunächst angenommen, daß der Speicher 20 aus der CPU programmiert worden ist. Für die erste Stufe der Erläuterung des MMU-Betriebs soll die Funktion der zwei Bits auf Leitungen 35 ignoriert werden. Wenn die CPU den Hauptspeicher adressiert, adressieren die am höchsten bewerteten sieben Bits den MMU-Speicher 20. Die zwölf Bits aus dem Umladedatensegment werden über Bus 22 und Bus 30 zur Addierstufe 27 übertragen. Dort werden sie mit dem Seitenoffset (Bus 18b) kombiniert, und die sich ergebende Adresse wird mit den neuen Bits des Offset im Register 28 zur Gewinnung der endgültigen physikalischen Adresse kombiniert. Dieser Teil des MMU arbeitet ähnlich bekannten MMU's. Daher können die Umladungssegment-Basisdaten in den Speicher (unter Ignorierung der Leitung 35) in bekannter Weise programmiert werden.It is initially assumed that the memory 20 has been programmed from the CPU. For the first level of explanation In MMU operation, the function of the two bits on lines 35 is to be ignored. When the CPU uses the main memory addressed, the highest valued seven bits address the MMU memory 20. The twelve bits from the transfer data segment are transmitted to adder 27 via bus 22 and bus 30. There they are with the page offset (bus 18b) combined, and the resulting address is combined with the new bits of the offset in register 28 to obtain the final physical address combined. This part of the MMU works in a similar way to known MMUs. Therefore, the transhipment segment basic data programmed into memory (ignoring line 35) in a known manner.

Die die Grenz- und Zugriffsdaten bildenden zwölf Bits werden über Bus 23 durch den Multiplexer 25 geleitet. Die acht Bits der Grenzdaten werden an den Addierer 27 angelegt. Die vier Bits der Zugriffsdaten werden über Leitung 45 an die Logik angelegt. Die Grenzdaten werden bei dem beschriebenen Aus-The twelve bits forming the limit and access data become routed via bus 23 through multiplexer 25. The eight bits of the boundary data are applied to the adder 27. The four Bits of the access data are applied to the logic via line 45. The limit data are used in the described

. 13. . 13th

führungsbeispiel in Einer-Komplementform im Speicher 20 für ein nicht gestapeltes Segment gespeichert. Für gestapeltes Segmente ist die gespeicherte Grenze "Länge minus 1" (beispielsweise würde ein Zwei-Seiten-Segment als 0000 0001 im Speicher 20 gespeichert.) Wenn diese Grenzdaten zum Seitenoffset in der Addierstufe 27 addiert werden, bestimmt das Ergebnis dieser Addition, ob der Seitenoffset in den vorgegebenen Bereich des Segments fällt oder nicht. Hierin liegt eine Verbesserung gegenüber bekannten Grenzprüfungen, wo zusätzliche Logikschritte erforderlich waren.management example in one's complement form in memory 20 for saved a non-stacked segment. For stacked segments, the stored limit is "length minus 1" (for example a two-page segment would be stored in memory 20 as 0000 0001.) If this page offset boundary data is in the adder 27 are added, the result of this addition determines whether the page offset is in the specified range of the segment falls or not. This is an improvement over known limit tests, where additional logic steps were required.

Nicht-Stapel-BeispielNon-stacking example

Im folgenden wird kurz auf Fig. 4 Bezug genommen, in der eine Darstellung des Hauptspeichers 14 des Computers zu sehen ist. Es sei angenommen, daß Daten an Plätzen 50 gespeichert sind. Es sei ferner angenommen, daß der höchste Seitenoffset (1111 1111) für Daten 50 sich zum Platz 52 erstreckt und daß sich innerhalb dieses Segments Daten bis zu einem Seitenoffset von 1110 0000 (Linie 51) erstrecken. Für diesen Seitenoffset wird das Einerkomplement von 1110 0000 (0001 1111) im Speicher 20 der Fig. 3 gespeichert. Wenn dieses Segment adressiert wird und unter der Annahme, daß die Seitenoffsetadresse Uli 1111 ist (d. h. in den freien Raum des Speichers), addiert die Addierstufe 27 1111 1111 zur gespeicherten Zahl 0001 1111. Ein Überlauf ergibt sich aus der Addierstufe 27, und diese Uberlaufbedingung wird von der Logik 40 in Fig. 3 abgetastet. Bei diesem Beispiel zeigt ein überlauf an, daß der Zeilenoffset nicht innerhalb des Bereichs liegt, und es wird auf der Leitung 57 ein Signal entwickelt, um zu zeigen, daß die Adresse fehlerhaft ist. Die Logik 40 verhindert über Leitung 57 einen Zugriff zum Hauptspeicher, und/oder es wird ein Fehlersignal erzeugt.Reference is now briefly made to FIG. 4, which shows a representation of the main memory 14 of the computer is. Assume that data is stored in locations 50. It is also assumed that the highest page offset (1111 1111) for data 50 extends to location 52 and that within this segment data extends up to a page offset from 1110 0000 (line 51). For this page offset, the one's complement of 1110 0000 (0001 1111) becomes in memory 20 of FIG. 3 is stored. When this segment is addressed and assuming that the page offset address Uli 1111 is (i.e. in the free space of the memory), adds the adder 27 1111 1111 to the stored number 0001 1111. An overflow results from the adder 27, and this overflow condition is sensed by logic 40 in FIG. In this example, an overflow indicates that the line offset is not within range and a signal is developed on line 57 to show that the address is incorrect. The logic 40 prevents access to the main memory via line 57, and / or it is generates an error signal.

Wiederum unter Bezugnahme auf Fig. 4 sei angenommen, daß einReferring again to FIG. 4, assume that a

Programm an den Plätzen 53 gespeichert ist und daß der höchste Seitenoffset (1111 1111) für Programm 53 zum Platz 50 reicht, der außerhalb des am Platz 54 endenden tatsächlichen Programms liegt. Wenn der Seitenoffset für den Platz 54 0011 0000 ist, dann wird 1100 1111 im Speicher 20 der Fig.3 für dasjenige Segment gespeichert, das am Platz 55 beginnt. Wenn dieses Segment adressiert wird und der Seitenoffset 0000 0001 ist, (Adressieren des Programms) addiert die Addierstufe 27 1100 1111 und 0000 0001. Dieses Mal tritt kein Überlauf auf, und kein Signal wird an die Logik 40 angelegt, was bedeutet, daß der Zugriff frei ist. Zu beachten ist, daß bei einem Seitenoffset von 0100 0000 (nicht innerhalb des Bereichs) und Addition dieser Zahl zur gespeicherten Zahl von 1100 1111 ein Überlauf auftritt. Dieser Überlauf zeigt der Logik 40 an, daß der Seitenoffset nicht im Bereich liegt und der Speicherzugriff gesperrt ist.Program is stored in locations 53 and that the highest page offset (1111 1111) for program 53 to location 50 is sufficient, which lies outside the actual program ending at position 54. If the page offset for the place 54 0011 0000, then 1100 1111 is stored in memory 20 in FIG. 3 for the segment that begins at location 55. If this segment is addressed and the page offset is 0000 0001, (addressing the program) the adder adds 27 1100 1111 and 0000 0001. This time no overflow occurs and no signal is applied to logic 40, which means that access is free. Please note that with a page offset of 0100 0000 (not within of the range) and adding this number to the stored number of 1100 1111 an overflow occurs. This overflow indicates to logic 40 that the page offset is out of range and memory access is disabled.

Stapel-BeispielStack example

Für einige Programmiersprachen (z. B. Pascal) sind Stapel (im Speicher) sehr erwünscht. Stapel können durch Aufwärtsbewegen von Daten allerdings zeitraubend gebildet werden. Bei dem beschriebenen System wird zugelassen, daß Stapel im Speicher mit einem anderen Grenzenprüfverfahren abwärts wachsen.For some programming languages (e.g. Pascal), stacks (in memory) are very desirable. Stacks can by moving up of data, however, are time-consuming. In the system described it is allowed that stacks in the Grow down memory with a different boundary checking method.

Es sei ein Ein-Seiten-Stapelsegment angenommen. Im Speicher 20 ist die Grenzzahl als das Einer-Komplement des Seitenoffset (1111 1111 -? 0000 0000) gespeichert, die die gleiche ist wie die Größe minus Eins (0000 0001 -» 0000 0000). Die Zugriffsprüfbits sorgen dafür, daß die Logik 40 einen Übertrag (carry-in) von 1 liefert. Wenn der Seitenoffset 1111 1111 ist, tritt ein Überlauf ein. Dieser Überlauf wird von der Logik 40 abgetastet und als richtig (innerhalb des Bereichs)-Bedingung interpretiert. Wenn der SeitenoffsetAssume a one-sided stack segment. In the storage room 20, the limit number is stored as the one's complement of the page offset (1111 1111 -? 0000 0000) which is the same is like the size minus one (0000 0001 - »0000 0000). The access check bits ensure that the logic 40 supplies a carry-in of 1. When the page offset 1111 is 1111, an overflow occurs. This overflow is scanned by the logic 40 and found to be correct (within the Range) condition interpreted. When the page offset

1111 1110 (Stapel zu stark gewachsen) wäre,tritt kein Überlauf auf, und dies wird als eine Adresse außerhalb des Bereichs interpretiert.1111 1110 (stack has grown too much), no overflow occurs and this is interpreted as an address out of range.

In ähnlicher Weise wird 0000 0001 im Speicher 20 gespeichert, wenn der Stapel ein Zwei-Seiten-Segment ist. Wiederum wird der Übertrag auf eine Eins gesetzt. Ein Seitenoffset von 1111 1110 würde zu einem Überlauf führen, der eine im Bereich liegende Adresse anzeigt, während bei einem Seitenoffset von 1111 1100 kein Überlauf auftreten würde,- also eine Adresse außerhalb des Bereichs angezeigt würde.Similarly, 0000 0001 is stored in memory 20 if the stack is a two-page segment. Again the Carryover set to a one. A page offset of 1111 1110 would lead to an overflow, the one in range Address indicates, while with a page offset of 1111 1100 no overflow would occur - i.e. an address outside of it of the area would be displayed.

Figur 4 BeispielFigure 4 example

Im folgenden wird wieder auf Fig. 4 Bezug genommen, wobei angenommen wird, daß ein Prozeß (Programm und Daten) im Hauptspeicher 14 zwischen den Plätzen 0 und 500 KB gespeichert ist, Die drei restlichen Zugriffsbits im Speicher 20 entsprechend den Segmentadressen für die Plätze 0 - 500 KB dienen, wie erwähnt, zur Schaffung einer besonderen Steuerung. So ist beispielsweise für diejenigen Segmente, die nur Programm enthalten, nur ein Lesen des Speichers zugelassen. Dies verhindert natürlich ein zufälliges Schreiben in das Programm. Dagegen können sowohl Lese- als auch Schreibbefehle in diejenigen Segmente zugelassen werden, welche Daten enthalten. Dies ergibt sich aus den Angaben rechts vom Programm 49 und Daten 60 in Fig. 4.Reference is again made to FIG. 4, where assumed it becomes that a process (program and data) is stored in main memory 14 between locations 0 and 500 KB, The three remaining access bits in memory 20 corresponding to the segment addresses for the locations 0 - 500 KB are used, as mentioned, to create a special control. For example, for those segments that only contain a program, only reading of the memory is permitted. This of course prevents accidental writing to the program. Against it Both read and write commands can be permitted in those segments which contain data. This gives from the information to the right of program 49 and data 60 in FIG. 4.

Der Speicher ?0 wird programmiert (d. h. Zugriffsprüfbits), um ein Lesen einiger Segmente des Hauptspeichers, ausgenommen bei gewissen Betriebsarten (z. B. Uberwachungsbetrieb) zu verhindern. Dies geschieht beispielsweise dann, wenn verhindert werden soll, daß ein Benutzer ein Betriebssystem liest und danach kopiert. Wenn das Programm 59 abläuft, ist kein Zugriff zum Speicher 20 zugelassen, da ein solcher Zugriff dazu führen könnte, daß die Umladungsbasis, die Grenzdaten oderThe memory? 0 is programmed (i.e. access check bits), to prevent some segments of the main memory from being read, with the exception of certain operating modes (e.g. monitoring mode). This happens, for example, when a user is to be prevented from reading an operating system and then copied. When the program 59 is running, no access to the memory 20 is permitted, since such access is thereto could lead to the reloading base, the limit data or

die Zugriffsdaten zufällig geändert werden. Daher schützen die vier Zugriffsdaten das im Hauptspeicher gespeicherte Programm und begrenzen auch den Zugriff zu gewissen im Speicher gespeicherten Informationen. In einem typischen Anwendungsfall wird ein Betriebssystem aus einer Platte in den Hauptspeicher geladen. Sobald es im Hauptspeicher ist, kann die CPU das Betriebssystem in Uberwachungsmoden zugreifen, während der Benuzter an einem Zugriff und damit an einer Kopiermöglichkeit des Betriebssystems gehindert ist.the access data are changed randomly. Therefore, the four access data protect the program stored in the main memory and also limit access to certain information stored in memory. In a typical use case an operating system is loaded from a disk into main memory. As soon as it is in main memory, the CPU can run the operating system access in Uberwachungsmoden, while the user on an access and thus on a copy option the operating system is prevented.

Bei der Erfindung hat der Speicher vierfach diejenige Kapazität, die gewöhnlich zur Schaffung einer Umladungsbasis und für die Grenz- und Zugriffsdaten für den Hauptspeicher benötigt wird. Die Signale aus der CPU auf Leitungen 35 ermöglichen die Auswahl bzw. Ansteuerung jedes Quadranten des Speichers 20. Jeder dieser Quadranten wird in der folgenden Beschreibung als ein Kontext (Kontext 0-3) bezeichnet.In the invention, the memory has four times the capacity that is usually used to create a reloading base and for the limit and access data for the main memory is required. The signals from the CPU on lines 35 enable the selection or control of each quadrant of the memory 20. Each of these quadrants is shown in the following Description referred to as a context (context 0-3).

In Fig. 2 ist die Organisation des MMU-Speichers 20 dargestellt als vier getrennte Quadranten: 20a (Kontext 0), 20b (Kontext 1), 20c (Kontext 2) und 2Od (Kontext 3). Kontext 1,The organization of the MMU memory 20 is shown in FIG as four separate quadrants: 20a (context 0), 20b (context 1), 20c (context 2) and 2Od (context 3). Context 1,

2 und 3 sind jeweils in einer 256 χ 12 Bit-Anordnung organisiert (128 χ 12 Bits für die Umladungsbasis und 128 χ 12 Bits für die Grenz- und Zugriffsdaten). Kontext 0 wird von der CPU während des Kontrollbetriebs ausgewählt bzw. angesteuert, und dieser Kontext speichert Managementdaten, die sich auf das Betriebssystem beziehen. Zu beachten ist, daß jeder Kontext zur Speicherung von Informationen geeignet ist, die den gesamten Hauptspeicher überspannen, so daß es drei überlappende MMU-Speicher für Benutzeroperationen gibt.2 and 3 are each organized in a 256 χ 12 bit arrangement (128 χ 12 bits for the reloading base and 128 χ 12 bits for the limit and access data). Context 0 is used by the CPU selected or activated during the control operation, and this context stores management data relating to the Refer to operating system. Note that any context is suitable for storing information that will encompass the entire Spanning main memory so that there are three overlapping MMU memories for user operations.

Der Nutzen dieser überlappenden Speicher ist am besten aus Fig. 4 zu sehen. Der Hauptspeicher^ ist als programmiert mitThe utility of these overlapping memories is best seen in FIG. The main memory ^ is programmed with

3 Prozessen Pl, P2 und P3 gezeigt. Prozeß 1 ist zwischen 0 und 500 KB, Prozeß 2 zwischen 600 KB und 1 mB und Prozeß 3 zwischen 1,2 mB und 1,5 mB gespeichert. Daten, die sich auf3 processes P1, P2 and P3 shown. Process 1 is between 0 and 500 KB, process 2 between 600 KB and 1 mB, and process 3 stored between 1.2 mB and 1.5 mB. Data referring to

das Betriebssystem beziehen, sind zwischen 1,8 mB und 2 mB gespeichert. Eine geeignete Umladungsbasis ist im Speicher so gespeichert, daß die Adressen 0-200 KB während der Kontrollbetriebe automatisch 1,8 mB bis 2 mB im Hauptspeicher auswählen. Auch geeignete Grenzen sind geladen, um sicherzustellen,referring to the operating system are between 1.8 mB and 2 mB saved. A suitable reload base is stored in memory so that addresses 0-200 KB during control operations automatically select 1.8 mB to 2 mB in main memory. Appropriate limits are also loaded to ensure

daß während des Kontrollbetriebs der freie Räum im Speicher nicht zugegriffen wird. Während des Kontrollbetriebs (Kontext 0) ist, wie in Fig. 4 unter der Überschrift "Kontext 0" dargestellt ist, ein vollständiger Zugriff zum MMU-Speicher und zum Hauptspeicher möglich (ausgenommen für Zugriffsbits, welche das Schreiben in das im Hauptspeicher gespeicherte Betriebssystem verhindern, wodurch das Programm vor Schäden aufgrund eines Programmfehlers geschützt wird). Da der MMU-Speicher zu dieser Zeit zugreifbar ist, kann er über den Bus 16 entsprechend Darstellung in Fig. 3 und vorhergehender Erläuterung programmiert werden.that during the control operation the free space in the memory is not accessed. During the control operation (context 0) is, as shown in Fig. 4 under the heading "Context 0" full access to the MMU memory and the main memory is possible (except for access bits, which prevent writing to the operating system stored in main memory, thereby protecting the program from damage due to a program error is protected). Since the MMU memory is accessible at this time, it can be accessed via the bus 16 accordingly Representation in Fig. 3 and the previous explanation can be programmed.

Es sei angenommen, daß Kontext 1 für Programm 59 und Daten benutzt werden soll; ein Quadrant des MMU-Speichers 20 entsprechend dem Kontext 1 ist programmiert, um den Platz des Programms 59 und der Daten 60 anzugeben. Die Grenz- und Zugriffsbits werden gesetzt, wie unter Kontext 1 angegeben ist. Wenn daher Kontext 1 angesteuert bzw. gewählt wird, kann Programm 59 (nur) gelesen werden, und das Lesen und Schreiben von Daten 60 ist zugelassen. Kein anderer Zugriff zu anderen Speicherplätzen ist möglich, und es kann auch nicht in den MMU-Speicher geschrieben werden.Assume that context 1 is to be used for program 59 and data; a quadrant of MMU memory 20 corresponding to context 1 is programmed to indicate the location of program 59 and data 60. The limit and access bits are set as specified under context 1. Therefore, if context 1 is activated or selected, program 59 can (only) be read, and reading and writing of data 60 is permitted. No other access to other memory locations is possible, and it is also not possible to write to the MMU memory.

Ein zweiter Prozeß kann im Speicher gespeichert werden. Das Betriebssystem kennt den Platz des ersten Prozesses und kann einen anderen Quadranten des Speichers 20 für Prozeß 2 programmieren. Die Umladungsbasis wird so programmiert, daß dann, wenn die CPU Plätze entsprechend 0-400 KB adressiert, Plätze 600 KB bis 1 mB für den Hauptspeicher vorgesehen werden. Wie unter der Überschrift Kontext 2 in Fig. 4 gezeigt ist, sind die Zugriffsbits so programmiert, daß sie ein Lesen undA second process can be stored in memory. The operating system knows the place of the first process and can program another quadrant of memory 20 for process 2. The reloading base is programmed in such a way that if the CPU addresses spaces between 0-400 KB, spaces 600 KB to 1 mB are provided for the main memory. As shown under the heading Context 2 in Figure 4, the access bits are programmed to have read and

Schreiben jß. die Daten 50 und ein Nur-Lesen des Programms 53 eri$ögli$beii. E$ ist außerdem kein Zugriff (zum Schreiben) in den MMU-Speicher zugelassen, noch ist ein Zugriff zu anderen Plätzen im Hauptspeicher möglich. In ähnlicher Weise kann ein dritter Prozeß im.Hauptspeicher für Kontext 4 entsprechend Darstellung in Fig. 4 gespeichert werden.Letter jß. the data 50 and a read-only of the program 53 eri $ ögli $ beii. E $ is also no access (for writing) to the MMU memory is permitted, nor is there any access to others Places in the main memory possible. Similarly, a third process in the main memory for context 4 can be shown as shown can be stored in FIG.

Der Vorteil der Anordnung gemäß Fig. 4 besteht darin, daß drei getrennte. P.£Q£es;s,e innerhalb des Hauptspeichers gespeichert sind und daß jeder Prozeß durch den MMU-Speicher leicht ausgewählt werden kann, d. h. durch Ansteuern bzw. Auswahl von Kontext 1, 2 oder 3. Ein separater Kontext (Kontext 0) ist als Ausgangspunkt für das Betriebssystem bei dem beschriebenen Ausführungsbeispiel reserviert. Dies ermöglicht die Ausführung drei separater Programme ohne eine Umprogrammierung des MMU-Speichers. Diese Vielseitigkeit wird aufgrund der überlappenden Speichermanagementkapazität des MMU-Speichers erreicht.The advantage of the arrangement according to FIG. 4 is that three separate. P. £ Q £ es; s, e stored within the main memory and that each process can be easily selected through the MMU memory, i. H. by activating or selecting Context 1, 2 or 3. A separate context (context 0) is reserved as a starting point for the operating system in the exemplary embodiment described. This enables the execution three separate programs without reprogramming the MMU memory. This versatility is due to the Overlapping memory management capacity of the MMU memory has been reached.

Beschrieben wurde daher eine verbesserte Speichermanagementeinheit, die es möglich macht, daß eine Vielzahl von Programmen ohne Umprogrammierung des MMU-Speichers des Computers ablaufen gelassen werden. Die verbesserte Einheit begrenzt auch den Zugriff zu gewissen Datenarten und verhindert ein zufälliges Schreiben in Programme.An improved memory management unit was therefore described, which makes it possible to run a wide variety of programs without reprogramming the computer's MMU memory be allowed to expire. The improved unit also limits and prevents access to certain types of data random writing in programs.

Claims (13)

PATENTANWÄLTE ZENZ & HELBER- D„4300,.ESSEN-1 --AM RUHR3TEIN 1 · TEL.: (02 01) 412687 Seite - 1 - A 76PATENTANWÄLTE ZENZ & HELBER- D "4300, .ESSEN-1 --AM RUHR3TEIN 1 · TEL .: (02 01) 412687 Page - 1 - A 76 APPLE COMPUTER, INC.APPLE COMPUTER, INC. PatentansprücheClaims Speichermanagementeinheit als Bestandteil eines einen Prozessor (CPU) und einen Hauptspeicher aufweisenden Computers, wobei die Speichermanagementeinheit (MMU) so ausgebildet ist, daß sie erste Adressen aus dem Prozessor aufnimmt und zweite Adressen zum Zugriff zu dem Hauptspeicher erzeugt, dadurch gekennzeichnet , daß die Speichermanagementeinheit (12) aufweist:Memory management unit as part of a computer having a processor (CPU) and a main memory, wherein the memory management unit (MMU) is designed so that it receives first addresses from the processor and second Generated addresses for access to the main memory, characterized in that that the memory management unit (12) has: einen MMU-Speicher (20) zur Aufnahme und Speicherung von Signalen, welche für die Arten der in Plätzen (50, 53, 59, 60) des Hauptspeichers (14) gespeicherten Information repräsentativ sind, wobei der MMU-Speicher (20) mit dem Prozessor (CPU 10) derart gekoppelt ist, daß er wenigstens einen Teil der ersten Adresse aufnehmen kann,an MMU memory (20) for receiving and storing Signals representative of the types of information stored in locations (50, 53, 59, 60) of main memory (14) are, wherein the MMU memory (20) is coupled to the processor (CPU 10) such that it is at least can include part of the first address, eine Zugriffseinrichtung zum Zugreifen zu den im MMU-Speicher (20) gespeicherten Signalen, wenn entsprechende Plätze in dem Hauptspeicher (14) von den zweiten Adressen zugegriffen werden, undan access device for accessing those in the MMU memory (20) stored signals if corresponding locations in the main memory (14) of the second addresses accessed, and eine Kopplungsanordnung zur Kopplung der die Arten der im Hauptspeicher (14) gespeicherten Information darstellenden Signale zum Hauptspeicher, um den Zugriff zu gewissen Informationsarten (Betriebssysteme, Programme) zu begrenzen. a coupling arrangement for coupling the information representing the types of information stored in the main memory (14) Signals to main memory to limit access to certain types of information (operating systems, programs). 2. Speichermanagementeinheit nach Anspruch 1, dadurch gekennzeichnet, daß der MMU-Speicher (20) und die Zugriffseinrichtung einen Speicher mit direktem Zugriff enthalten, in2. Memory management unit according to claim 1, characterized in that that the MMU memory (20) and the access device contain a memory with direct access, in Z/bu.Z / bu. welchem auch eine Umladungsbasis der Speichermanagementeinheit (12) speicherbar ist.which is also a reloading base of the storage management unit (12) can be saved. 3. Speichermanagementeinheit nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Kopplungsanordnung so ausgebildet ist, daß sie eine Nur-Lese-Operation anderer Informationsarten (im Hauptspeicher gespeicherte Programme) ermöglicht.3. Memory management unit according to claim 1 or 2, characterized in that the coupling arrangement is designed so that it enables read-only operation of other types of information (programs stored in main memory). 4. Speichermanagementeinheit nach Anspruch 3, dadurch gekennzeichnet, daß die Kopplungsanordnung so ausgebildet ist, daß sie Lese- und Schreib-Operationen an wiederum anderen Informationsarten (im Hauptspeicher gespeicherten Daten) ermöglicht. 4. Memory management unit according to claim 3, characterized in that that the coupling arrangement is designed so that it read and write operations on again other types of information (data stored in main memory). 5. Speichermanagementeinheit nach einem der Ansprüche 1 bis5. Memory management unit according to one of claims 1 to 4, dadurch gekennzeichnet, daß der MMU-Speicher (20) auch zur Speicherung von Grenzzahlen vorgesehen ist.4, characterized in that the MMU memory (20) is also provided for storing limit numbers. 6. Speichermanagementeinheit nach einem der Ansprüche 1 bis6. Memory management unit according to one of claims 1 to 5, dadurch gekennzeichnet, daß der MMU-Speicher (20) mehrere Speicherabschnitte (20a, 20b, 20c, 2Od - Kontexte 0-3) aufweist, von denen jeder zur 'Aufnahme der ersten Adressen und zur Erzeugung unterschiedlicher zweiter Adressen in Abhängigkeit von den ausgewählten Kontexten geeignet ist, so daß die Kontexte ein überlappendes Speichermanagement ergeben.5, characterized in that the MMU memory (20) has several memory sections (20a, 20b, 20c, 20d - contexts 0-3), each of which is used to record the first addresses and to generate different second addresses as a function of of the selected contexts is suitable, so that the contexts result in an overlapping memory management. 7. Speichermanagementeinheit als Bestandteil eines einen Prozessor (CPU) und einen Hauptspeicher enthaltenden Computersystem, dadurch gekennzeichnet, daß die Speichermanagementeinheit (MMU 12) einen MMU-Speicher (20) mit mehreren Speicherabschnitten (20a, 20b, 20c, 2Od - Kontexte 0 ... 3) und eine die die MMU-Speicherabschnitte auswählende Steuereinrichtung (25, 27, 40) aufweist, die mit dem Prozessor (CPU 10) verbunden ist, und daß jeder der MMU-Speicherabschnitte (20a, 20b, 20c, 2Od) erste Adressen aus dem Prozessor aufnimmt und andere zweite Adressen zum Zugriff zum Hauptspeicher (14) derart erzeugt, daß die MMU-Speicherabschnitte (20a, 20b, 20c, 2Od)7. Memory management unit as part of a processor (CPU) and a computer system containing a main memory, characterized in that the memory management unit (MMU 12) an MMU memory (20) with several memory sections (20a, 20b, 20c, 20d - contexts 0 ... 3) and a the MMU memory section selecting control means (25, 27, 40) connected to the processor (CPU 10) is, and that each of the MMU memory sections (20a, 20b, 20c, 20d) receives first addresses from the processor and others second addresses for access to the main memory (14) are generated in such a way that the MMU memory sections (20a, 20b, 20c, 20d) ein überlappendes Speichermanagement schaffen, so daß die Speichermanagementeinheit (MMU 12) eine Umladungsbasis für mehrere im Hauptspeicher gespeicherte Prozesse ohne Umprogrammierung der MMU bildet.create an overlapping memory management so that the Memory management unit (MMU 12) a reloading base for several processes stored in the main memory without reprogramming the MMU forms. 8. Speichermanagementeinheit nach Anspruch 7, dadurch gekennzeichnet, daß einer (20a) der MMU-Speicherabschnitte in einem Kontrollbetrieb des Prozessors (CPU 10) ansteuerbar ist.8. memory management unit according to claim 7, characterized in that that one (20a) of the MMU memory sections can be controlled in a control mode of the processor (CPU 10) is. 9„ Speichermanagementeinheit nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß im MMU-Speicher (20) Grenzzahlen speicherbar sind, mit denen feststellbar ist, ob gewisse Hauptspeicheradressen in einen vorgegebenen Bereich fallen oder nicht.9 “Storage management unit according to claim 7 or 8, characterized characterized in that in the MMU memory (20) limit numbers can be stored with which it can be determined whether certain Main memory addresses fall within a predetermined range or not. 10. Speichermanagementeinheit nach Anspruch 9, dadurch gekennzeichnet, daß eine Addierstufe (27) mit dem MMU-Speicher (20) derart verbunden ist, daß sie die Grenzzahlen aus den MMU-Speicherabschnitten (20b, 20c, 2Od) aufnehmen kann, und daß die Grenzzahlen in einer komplementären Binärform in den MMU-Speicherabschnitten für nicht-gestapelte Abschnitte gespeichert sind, so daß nach Kombination in der Addierstufe (27) ein Überlauf oder ein Unterlauf aus der Addierstufe dafür kennzeichnend ist, ob die Adressen in den vorgegebenen Bereich fallen oder nicht.10. Memory management unit according to claim 9, characterized in that that an adder (27) is connected to the MMU memory (20) in such a way that it takes the limit numbers from the MMU memory sections (20b, 20c, 20d) can accommodate, and that the limit numbers in a complementary binary form in the MMU memory sections for non-stacked sections are stored so that after being combined in the adder (27) an overflow or an underflow from the adder is indicative of whether the addresses are in the specified Area to fall or not. 11. Speichermanagementeinheit nach Anspruch 10, dadurch gekennzeichnet, daß die Grenzzahlen für gestapelte (stacked) Segmente in der Form der Größe bzw. der Länge des Segments -1 gespeichert sind.11. Memory management unit according to claim 10, characterized in that that the limit numbers for stacked (stacked) segments in the form of the size or the length of the segment -1 are stored. 12. Speichermanagementeinheit nach einem der Ansprüche 7 bis 11, dadurch, gekennzeichnet, daß der MMU-Speicher (20) Speichermittel zur Speicherung von die im Hauptspeicher (14) gespeicherten Informationsarten darstellenden Signalen aufweist. 12. Memory management unit according to one of claims 7 to 11, characterized in that the MMU memory (20) Has storage means for storing signals representing the types of information stored in the main memory (14). 13. Speichermanagementeinheit nach Anspruch 12, gekenn zeichnet durch die Verwendung der gespeicherten Signale zur Steuerung des Zugriffs zum .Hauptspeicher.13. Memory management unit according to claim 12, characterized by the use of the stored signals to control access to the main memory.
DE19833333894 1982-09-29 1983-09-20 STORAGE MANAGEMENT UNIT Granted DE3333894A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US42686982A 1982-09-29 1982-09-29

Publications (2)

Publication Number Publication Date
DE3333894A1 true DE3333894A1 (en) 1984-03-29
DE3333894C2 DE3333894C2 (en) 1993-04-01

Family

ID=23692542

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19833333894 Granted DE3333894A1 (en) 1982-09-29 1983-09-20 STORAGE MANAGEMENT UNIT

Country Status (12)

Country Link
JP (1) JPS5979367A (en)
AU (1) AU559067B2 (en)
CA (1) CA1197020A (en)
DE (1) DE3333894A1 (en)
FR (1) FR2533736A1 (en)
GB (1) GB2127994B (en)
IL (1) IL69784A (en)
IN (1) IN161125B (en)
IT (1) IT1221741B (en)
NZ (1) NZ205486A (en)
SE (1) SE464052B (en)
ZA (1) ZA836384B (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988001411A1 (en) * 1986-08-22 1988-02-25 Commonwealth Scientific And Industrial Research Or A content-addressable memory system

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2176918B (en) * 1985-06-13 1989-11-01 Intel Corp Memory management for microprocessor system
US4972338A (en) * 1985-06-13 1990-11-20 Intel Corporation Memory management for microprocessor system
JP2522248B2 (en) * 1986-05-24 1996-08-07 株式会社日立製作所 Storage device access mechanism
DE3788183D1 (en) * 1986-09-25 1993-12-23 Siemens Ag Address management unit of a multiprocessor central control unit of a message switching system.
FR2618578A1 (en) * 1987-07-21 1989-01-27 Digilog On-board modular computer system with integrated virtual memory
DE3901457A1 (en) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh METHOD FOR ADDRESS AREA MONITORING IN REAL-TIME DATA PROCESSING DEVICES
US5617554A (en) * 1992-02-10 1997-04-01 Intel Corporation Physical address size selection and page size selection in an address translator
US5752275A (en) * 1995-03-31 1998-05-12 Intel Corporation Translation look-aside buffer including a single page size translation unit
JP2005100262A (en) * 2003-09-26 2005-04-14 Seiko Epson Corp Device, program and method for managing memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
DE2837241C2 (en) * 1978-08-25 1982-05-06 Siemens AG, 1000 Berlin und 8000 München Device for securing data against unauthorized access
DE2625113C2 (en) * 1975-06-18 1984-01-05 International Business Machines Corp., 10504 Armonk, N.Y. Memory protection device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5315779B2 (en) * 1973-08-16 1978-05-27
GB1498116A (en) * 1974-04-18 1978-01-18 Honeywell Inf Systems Data processing systems
US3938100A (en) * 1974-06-07 1976-02-10 Control Data Corporation Virtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
GB1585960A (en) * 1976-07-30 1981-03-11 Plessey Co Ltd Information flow security mechanisms for data processing systems
US4093986A (en) * 1976-12-27 1978-06-06 International Business Machines Corporation Address translation with storage protection
JPS5436144A (en) * 1977-08-26 1979-03-16 Toshiba Corp Address conversion unit
US4366537A (en) * 1980-05-23 1982-12-28 International Business Machines Corp. Authorization mechanism for transfer of program control or data between different address spaces having different storage protect keys

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2625113C2 (en) * 1975-06-18 1984-01-05 International Business Machines Corp., 10504 Armonk, N.Y. Memory protection device
US4037215A (en) * 1976-04-30 1977-07-19 International Business Machines Corporation Key controlled address relocation translation system
DE2837241C2 (en) * 1978-08-25 1982-05-06 Siemens AG, 1000 Berlin und 8000 München Device for securing data against unauthorized access

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1988001411A1 (en) * 1986-08-22 1988-02-25 Commonwealth Scientific And Industrial Research Or A content-addressable memory system

Also Published As

Publication number Publication date
GB2127994B (en) 1987-01-21
GB2127994A (en) 1984-04-18
IL69784A (en) 1986-12-31
JPS5979367A (en) 1984-05-08
IT8322960A0 (en) 1983-09-22
FR2533736A1 (en) 1984-03-30
CA1197020A (en) 1985-11-19
AU1894083A (en) 1984-04-05
NZ205486A (en) 1987-02-20
DE3333894C2 (en) 1993-04-01
IT1221741B (en) 1990-07-12
ZA836384B (en) 1984-05-30
SE8305290L (en) 1984-03-30
SE8305290D0 (en) 1983-09-29
GB8316129D0 (en) 1983-07-20
IL69784A0 (en) 1983-12-30
AU559067B2 (en) 1987-02-19
IN161125B (en) 1987-10-10
SE464052B (en) 1991-02-25

Similar Documents

Publication Publication Date Title
EP0512542B1 (en) Data-protecting microprocessor circuit for portable record carriers, for example credit cards
DE2423194C2 (en) Device for calculating an absolute main memory address in a data processing system
EP0049322B1 (en) Read-out protection for a single-chip microprocessor
DE2637054C3 (en) Control device for a buffer storage
DE2607107A1 (en) WORD ORGANIZED STORAGE SYSTEM
DE3906497A1 (en) SELF-CONFIGURING STORAGE SYSTEM
DE102005022893B3 (en) Memory card e.g. multi media card, for data storage, has memory management unit providing open and safe interface to access memory blocks and protocol adapter accessing contents of card from host system connected with adapter by interface
DE2364408A1 (en) SYSTEM FOR CREATING CIRCUIT ARRANGEMENTS FROM HIGHLY INTEGRATED CHIPS
DE1499182A1 (en) Electrical data processing system
DE2054830C3 (en) Information processing system with means for accessing memory data fields of variable length
DE3128729A1 (en) SEMICONDUCTOR STORAGE SYSTEM
DE1901806A1 (en) Circuit arrangement for compensating for defective memory cells in data memories
DE2926322C2 (en) Storage subsystem
DE2310631B2 (en) Storage hierarchy for a data processing system
DE3333894A1 (en) STORAGE MANAGEMENT UNIT
DE1801620A1 (en) Method and arrangement for addressing a memory in a data processing system
DE102008003938A1 (en) Method for scrambling address data and storage system
DE2718551B2 (en)
DE2912073A1 (en) STACKED STORAGE ARRANGEMENT FOR THE SHORT-TERM STORAGE OF INFORMATION IN THE EVENT OF NON-SEGPARABLE INFORMATION IN A DATA PROCESSING SYSTEM
DE2425574A1 (en) ADDRESSING CHARACTERS IN A WORD-ORIENTED SYSTEM OF A COMPUTER
EP0265636A1 (en) Multiprocessor with several processors provided with cache memories and a shared memory
CH495584A (en) Data processing system
EP0890172B1 (en) Solid-state memory device
DE1296429B (en) Data processing system
DE10105627A1 (en) Multi-pin memory device operating method e.g. for data processing system, uses a multiplexer for each two or more associated read terminals of the memory arrangements

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8125 Change of the main classification

Ipc: G06F 12/14

D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee