MXPA99008326A - Microcomputer with a memory management unit - Google Patents

Microcomputer with a memory management unit

Info

Publication number
MXPA99008326A
MXPA99008326A MXPA/A/1999/008326A MX9908326A MXPA99008326A MX PA99008326 A MXPA99008326 A MX PA99008326A MX 9908326 A MX9908326 A MX 9908326A MX PA99008326 A MXPA99008326 A MX PA99008326A
Authority
MX
Mexico
Prior art keywords
vector
memory area
program
memory
library
Prior art date
Application number
MXPA/A/1999/008326A
Other languages
Spanish (es)
Inventor
Sedlak Holger
Brucklmayr Franzjosef
Original Assignee
Siemens Ag 80333 Muenchen De
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 Siemens Ag 80333 Muenchen De filed Critical Siemens Ag 80333 Muenchen De
Publication of MXPA99008326A publication Critical patent/MXPA99008326A/en

Links

Abstract

In a microcomputer in which a plurality of user programmes are to be run, an MMU ensures that none of the user programmes can access the other programmes. To make possible the use of common library programmes, however, and at the same time to avoid an uncontrolled entry into said programmes, a vector storage region is provided in which the start addresses of the library programmes are entered as branch destinations (vectors:1050, 3000). To call a library programme, the vector number (0...n) is input, from which the MMU determines the corresponding address in the vector storage region.

Description

MICROCO PUTADORA BACKGROUND OF THE INVENTION In a microcomputer, the corresponding program that is executed at a given moment has control over the computer and over the memories contained in and connected to it, as well as over the other peripheral devices. This means, among other things, that you always jump to the address of a memory that is contained in a program command, regardless of whether the memory area that includes this address must be available to the program or not. Given that in many situations, the previous one is not the case (in this way one could spy on memory areas with confidential contents), security measures are carried out. One possibility of these security measures is the use of a memory management unit, hereinafter referred to as MMU, as is present, for example, in the IPX2B6 of the INTEL company. This unit is used particularly when not only programs run by the manufacturer (chip), but also user programs, which could be used badly. The MMU is arranged between the central processing unit, hereinafter CPU, of the computer and the bus (bus) that connects it with the other units, like the memories. * "Each application receives an inscription in the MMU, noting what memory the application is in, in what address it starts, how long it is and what access rights it has, the user must enter this data into the memory of the microcomputer at the moment If you register your application or your program, the application program only has access rights to memory areas that are within the zones defined by the above-mentioned start address and length. in the MMU it describes a characteristic of a program "stored in a memory segment. For this reason, the area ^ in which this inscription is found in the MMU is called the segment descriptor. Each call to an address by the program is reviewed by the MMU and only if that address is in the authorized area, the call is allowed, otherwise the course of the program is interrupted or an error message occurs. In case there are different user programs in the memory, this gives security to each other that other users can not spy on or modify their programs, since each user program can only operate within the area indicated by the user when enroll the program. U.S. Patent 5,452,431 discloses a microcircuit with CPU, which is connected to a program memory through an address bus, said memory having several areas for user programs. The memory area for user programs is assigned a zone memory area, in which the initial and final addresses and a reference node of the user programs are stored in a table. 10 When running a user program, the initial and final addresses of the memory area of this program are compared with currently called addresses, producing a program interruption if you have an address called , which is outside the area defined by the addresses initial and final. This protection mechanism, however, does not go beyond the protection possibilities provided by an MMU. German Patent DE 37 09 205 Al, together with the aforementioned German Patent DE 35 33 787 Al, describes a protection circuit to protect the data that is "in a memory area The memory area is assigned a descriptor, in which features of this area are inscribed.In addition, the preamble contains a vector which is stored in a buffer in each access á. this area of memory. After a review If the right of access on the protected data is positive, the vector is transferred to the logical-arithmetic unit that manages the memory, which then calls a program for the processing of the protected data, whose place of memory is indicated by the vector . This ensures that the protected data is not processed in any way, but only through this particular program. User programs usually have sub-programs. It often happens that several users require the same sub-programs and, thus, due to the aforementioned security measures, said sub-programs are present several times. This unnecessarily requires a lot of memory space. Therefore, it is desirable and desirable to provide libraries of sub-programs in a memory area of the microcomputer, to which various user programs have access, possibly including certain security measures, such as, for example, the verification of a personal identification number. However, in this way again the problems described above would result, namely, that a user with fraudulent intentions, evading the verification routines, could enter at will into a program of library. _ « OBJECTIVES AND ADVANTAGES OF THE INVENTION The objective of the present invention is, therefore, to provide a microcomputer, which allows access to user programs through library programs, but which is protected against tampering. The objective is achieved by a microcomputer in accordance with claim 1. Advantageous embodiments are indicated in the sub-claims. In the microcomputer according to the invention, a direct jump to a library program is not possible. In contrast, in the Cali (Call) command, in addition to the name of the MMU segment descriptor that describes the library program, a vector number is provided. The name of the MMU segment descriptor can be, for example, a number or a name. Through the MMU it is checked if the vector number -I provided there is and it belongs to the library program * 3 called. If the result of the revision is positive, access is allowed to a vector memory area, whose initial address and length are stored in the ? MMU segment descriptor. Just in this area of vector memory, in which, on the one hand, the vector number is found, there is also a jump address or the direction of a jump command, that is, a vector, at 25 initial address of the library program. In this way a "it is avoided efficiently that a user can directly access the library program and, thus, evade" possibly security routines. -; : f-,; ..; . •: -; '. ...- BRIEF DESCRIPTION OF THE DRAWINGS: Next, the invention is described in more detail based on an example of embodiment, with the aid of "figures. They show:,. :: Figure 1, schematically, a block diagram of a microcomputer. Fig. 2, in schematic representation, the assignment of user programs to contents of the MMU segmented descriptors, and Fig. 3, in schematic representation, the operation of the call of a library program.
DETAILED DESCRIPTION OF THE INVENTION Figure 1 shows in a very schematized manner the cotnponees of a microcomputer. A central processing unit CPU is connected through an address bus with an MMU memory management unit. On the other hand, the memory management unit is connected to the internal address bar of the microcomputer, to which the ROM, RAM and EEPROM memories are connected, as well as a unit of memory. entry / exit (1/0). They can also be present *? _ any of the other usual units in a J microcomputer, which, however, are not shown, as they bear no relation to the invention. In the same way, the control and data collection bar was renounced. In any case, the microcomputer according to the invention can present all the necessary components for its operation, known by 4. í the previous technique. 10 The CPU feeds logical addresses to the unit * - "to memory management, while it determines physical addresses from them and feeds them into the memories." As shown in Figure 2, left-hand side, the memory management unit is equipped for this purpose with memory locations for segment descriptors, in which the initial address assigned to an application program A, B, the length and the access rights are inscribed. The memory management unit also has an adder not shown, in order to be able to determine from the logical address the physical address, by adding the initial address of a user program. The segments for two user programs A and B are shown by way of example, initiating program A in a direction 50'000 and presenting a length of 3 '500 addresses, while program B starts at r f 8 5.' an address 120 '000 and has a length of 5' 000 You directions.
•? When running program A on the CPU, the addresses between 0 and 5 3 '499 are called according to the length of the program. These logical addresses are taken to the memory management unit, which adds the initial value 50 '000 and feeds the physical address obtained in this way to the internal address bus. Previously, the _; memory management unit checks whether the logical address is in the address area that equals the length stored in the memory management unit segment descriptor. This can be configured, for example, as a memory register. For this revision, in the memory management unit there are comparators k. 15 (not shown), to which, on the one hand, the current address is provided, and on the other, the marginal addresses of the current program. If the program calls a higher or lower address, an interruption or an error message or something similar occurs. In another area of a memory management unit segment descriptor, the access rights are registered, so that it can be established whether on certain address areas it can be accessed only read or read and write. 25 For the explanations made up to now, it is irrelevant if the user programs are in RAM, EEPROM or in a memory of another type and which places of the memory a user program must access. - Figure 3 shows the extension of compliance 5 with the invention of a known microcomputer. In this case, a memory area is also provided for sub-programs accessible to all users, that is, a library program memory area. For this you can use any memory. -. As examples, in Figure 3, in the library program memory, at addresses 1'050 and 3'000 a write program and a deletion program are shown. In accordance with the invention, a user program can not jump directly to these addresses, then it would also be possible an indefinite jump to these programs, evading security measures. Instead, a vector memory area is provided, in which vector numbers and the assigned initial addresses of the library programs are inscribed as jump targets (vectors) 1050, 3000. Alternatively, the address of a jump command leading to the sub-program could also be stored. In addition, the name of the program may be registered as identification, such as 7? it is shown in Figure 3. However, this is not necessary.
The user does not know the real physical address In addition to the security aspect, this also has the advantage that these programs, if necessary, can be displaced in any way by the operating system, without having to modify the programs of the library. You only need to modify the jump target in the vector memory area, and each library program memory area can be registered in the memory management unit. just like any other program. According to the invention, each library program memory area is assigned a vector memory area, in which the vectors of the library programs that are in the memory area of the library program are inscribed. 15 The inscription is done by indicating the initial address and the length of the vector memory area. Alternatively, the vector memory area may also be inscribed in a segment descriptor of the memory management unit, being inscribed in In this case, the initial address and the length of the memory area of the library program in the segment descriptor. It is possible to join the vector memory area and the memory area of the library program and indicate an initial address and two lengths in the library. descriptor segment. i »- A call from the library program by a user program is made by indicating the name of the segment descriptors of the memory management unit, such as the name of the library program or a number and the vector number. The memory management unit then checks whether the vector number exists in the vector memory area and whether the named program name matches the inscription assigned to the vector number. Only when the result of the test is positive does an access to the corresponding address take place in the vector memory area and a jump to the library program only takes place from there.

Claims (8)

NOVELTY AND THE INVENTION -i Having described the above invention, it is considered as a novelty, and therefore, the content of the following is claimed as property: ^ 5 CLAIMS
1. A microcomputer with a unit 10 central processing (CPU), which is connected through a memory management unit (MMU) to an address bus (BUS), to which is connected at least one program memory (ROM, EEPROM) that presents at least one memory area for user programs (A, B), 15 wherein each user program (A or B) in the memory management unit (MMU) is assigned a segment descriptor, in which at least the initial address (ANFA or ANFB) is stored, the length (LA or LB) and the access rights (ZRA or ZRB) of the program of the 20 user (A or B), and with at least one other memory area for library programs (RITE, ERASE (WRITE, ERASE)) and a vector memory area, where, in the memory management unit 25 (MMU), a segment descriptor describes the assignment of the * _ vector memory area and the memory area of the library program, where, in the vector memory area, at least the vector number (0 ... n) and a vector assigned to it are stored ( 1050, 3000), wherein a call to a library program (WRITE, ERASE (WRITE, ERASE)) by a user program (A, B) must contain at least the name of the unit's segment descriptor. of memory management, as well as the vector number (0 ... n), assigned to the vector by the memory management unit (MMU), through which a jump to the called library program takes place (RITE, ERASE (WRITE, DELETE)).
2. A microcomputer according to claim 1, characterized in that the allocation of the vector memory area and the memory area of the library program is carried out by indicating the initial address and the length of the vector memory area in a memory management unit segment descriptor assigned to the memory area of the library program.
3. A microcomputer according to claim 1, characterized in that the allocation of the vector memory area and the memory area of the library program is carried out by indicating the initial address and the length of the memory area of the program. »14 library in a memory management unit segment descriptor assigned to the memory area of r vector.
4. A microcomputer according to claim 5, characterized in that the allocation of the vector memory area and the memory area of the library program is effected by coupling both areas to a common memory area, the which is described in the assigned memory management unit segment descriptor indicating the initial address and two length data.
5. A microcomputer in accordance with claim 1 of any of claims 1 to 4, characterized in that a vector is formed by an address * 15 jump. * >
6. A microcomputer according to claim 1 in any of claims 1 to 4, characterized in that a vector is formed by the direction of a jump command that leads to a library program.
7. A microcomputer according to claim 1 in any of claims 1 to 6, characterized in that the vector numbers (0 ... n) are determined from the relative position thereof (1050, 3000) in the area of vector memory. ### -
8. A microcomputer according to claim 1 in any of claims 1 to 6, characterized in that a vector number (0 ... n) consists of several bytes and a current vector is determined by the comparison between vector numbers (0 ... n) contained in the vector memory area and the vector number contained in the call.
MXPA/A/1999/008326A 1997-03-11 1999-09-10 Microcomputer with a memory management unit MXPA99008326A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19709975.0 1997-03-11

Publications (1)

Publication Number Publication Date
MXPA99008326A true MXPA99008326A (en) 2000-07-01

Family

ID=

Similar Documents

Publication Publication Date Title
US5991858A (en) Multi-user data processing system with storage protection
US5894550A (en) Method of implementing a secure program in a microprocessor card, and a microprocessor card including a secure program
CN100428165C (en) Apparatus, system, and method for implementing protected virtual memory subcontexts
TW376475B (en) Memory access protection
US6009453A (en) Multi-program execution controlling apparatus and method
CN1759557A (en) Data processing system with peripheral access protection and method therefor
KR20020013590A (en) Method for accessing a memory and memory device therefor
KR100574747B1 (en) Microprocessor circuit for data carriers and a method for organising access to data stored in a memory
US5437016A (en) Apparatus and method for translating logical addresses for virtual machines
EP0109504A2 (en) Protection system for storage and input/output facilities and the like
US6754794B2 (en) Chip card with integrated circuit
US5901311A (en) Access key protection for computer system data
RU2198424C2 (en) Microcomputer
US20020016890A1 (en) Secured microprocessor comprising a system for allocating rights to libraries
EP0142819B1 (en) Access control system for storage having hardware area and software area
MXPA99008326A (en) Microcomputer with a memory management unit
JPH0250286A (en) Portable electronic device
KR20020010753A (en) Method for user memory effectiveness verification in operating system
US7191307B1 (en) Memory management unit technique to detect cross-region pointer stores
US6889308B1 (en) Method and apparatus for protecting page translations
JP3015376B2 (en) IC card
KR20020078998A (en) Smart card capable of maintenence security between multi-application programs
JPS62208149A (en) Secret protecting system
JPS63156261A (en) Decision system for memory access condition
EP0813152A3 (en) Memory protection mechanism