MXPA99008326A - Microcomputer with a memory management unit - Google Patents
Microcomputer with a memory management unitInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims description 92
- 230000001808 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000000875 corresponding Effects 0.000 abstract description 3
- 230000002104 routine Effects 0.000 description 2
- 240000007914 Microcos paniculata Species 0.000 description 1
- 241001442055 Vipera berus Species 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000977 initiatory Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000002093 peripheral Effects 0.000 description 1
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)
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.
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 |