EP1364294A1 - Harvard architecture microprocessor having a linear addressable space - Google Patents

Harvard architecture microprocessor having a linear addressable space

Info

Publication number
EP1364294A1
EP1364294A1 EP02704822A EP02704822A EP1364294A1 EP 1364294 A1 EP1364294 A1 EP 1364294A1 EP 02704822 A EP02704822 A EP 02704822A EP 02704822 A EP02704822 A EP 02704822A EP 1364294 A1 EP1364294 A1 EP 1364294A1
Authority
EP
European Patent Office
Prior art keywords
access
bus
data
memory
program
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.)
Withdrawn
Application number
EP02704822A
Other languages
German (de)
French (fr)
Inventor
Franck Roche
Didier Cavalli
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of EP1364294A1 publication Critical patent/EP1364294A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Definitions

  • the present invention generally relates to microprocessors and more particularly to a microprocessor using a non-volatile memory containing executable instructions of a program and a volatile memory for storing data used by the program.
  • microprocessors can present two architectures for connection with memories.
  • the microprocessor In the first architecture, called Von Neumann, the microprocessor is connected to all memories by a single address and data bus. Consequently, the microprocessor can only access a single datum or a single instruction code at a given instant.
  • a second architecture known as Harvard, has been developed, in which the microprocessor can simultaneously access an instruction code and a data item, which for this purpose are stored in different memories.
  • This architecture requires providing a microprocessor with two different buses, one being dedicated to accessing the program and connected to the memory containing the program, and the other being dedicated to accessing the data and connected to the memory containing the data. In this way, the microprocessor can, during the same clock cycle, read an instruction in the program memory and perform an operation of reading or writing data in the data memory.
  • a Harvard architecture microprocessor takes fewer clock cycles to execute a program than a Von Neumann architecture microprocessor.
  • the Harvard architecture has some drawbacks, in particular in terms of flexibility in the use of memories connected to the microprocessor. Indeed, this architecture requires storing in respective predefined and distinct memory areas, the program instructions and the non-modifiable data, including the operating parameters, or which must be stored in a non-volatile manner. This architecture cannot be used in the case of a microprocessor connected to a single non-volatile memory and a single volatile memory. In addition, it does not allow program instructions to be stored in volatile memory, for example for testing purposes. Furthermore, it does not authorize either that a program can modify itself by writing in a memory, as data, executable instruction codes.
  • the present invention aims to eliminate these drawbacks by proposing an architecture with two buses, without however affecting the linearity of the space addressable by the microprocessor, which is obtained with a Von Neumann architecture.
  • a microprocessor connected to a first memory space via a first bus, and to a second memory space via a second bus, and comprising a processing unit provided an access bus to executable program instructions and a data access bus, characterized in that it comprises a bus interface unit connected on one side to the access bus program instructions and to the data access bus, and the other to the first and to the second bus, the interface unit comprising first switching means for connecting the access bus to the program either to the first bus, either to the second bus, according to a request for access to the program, sent by the processing unit, and second switching means, to connect the data access bus either to the first bus or to the second bus , based on a data access request issued by the processing unit ent.
  • the first switching means are independent of the second switching means, the interface unit further comprising access control means designed to manage access conflicts which occur when the processing unit simultaneously transmits an access request to data and a request for access to a program instruction, which relate to the same memory space.
  • the access control means are designed to give priority to a request for access to a datum, when there is a conflict of access to the memory spaces.
  • the access control means are designed to authorize simultaneous access to a program instruction in one of the two memory spaces and a data item in the other of the two memory spaces.
  • the access control means comprise means for preventing access by the processing unit to a program instruction following the transmission by the processing unit of simultaneous access requests to an instruction and a data in the same memory space.
  • the access control means comprise means for authorizing the access of the processing unit to a memory space only for a duration where the memory space authorizes its access.
  • the microprocessor is connected to a program instruction address decoder and a data address decoder, which are designed to generate selection signals according to the addresses appearing on the buses. access to the program and to the data, and according to the access requests sent by the processing unit, these selection signals being applied to the input of the interface unit and comprising two selection signals indicating a request d access to a program instruction in the first and second respectively memory space, and two selection signals indicating a request to access data in the first and second memory space respectively.
  • the microprocessor comprises control means for controlling the first switching means so as to connect the program access bus to the first or to the second bus, when the selection signals indicate a request for access to a instruction of program, in the respective memory space, and no simultaneous request to a datum therein.
  • the microprocessor comprises control means for controlling the second switching means so as to connect the data access bus, to the first bus or to the second bus, when the selection signals indicate a request for access to a data item. , in the corresponding memory space.
  • the first memory space comprises a non-volatile memory
  • the second memory space comprises a volatile memory
  • FIG. 1 schematically shows the architecture of a microprocessor according to the invention, connected to a program memory and a data memory;
  • FIG. 1 shows the circuit of a component of the architecture shown in Figure 1;
  • FIGS. 5a to 5d represent circuits of alternative embodiments of a component of the architecture shown in FIG. 1;
  • FIG. 6 represents the circuit of a component of the architecture shown in FIG. 1;
  • FIG. 7 illustrates in the form of timing diagrams different signals used in the architecture represented in FIG. 1.
  • the microprocessor 1 shown in Figure 1 has a Harvard architecture. To this end, it conventionally comprises a processing unit 2 comprising a program access interface and a data access interface.
  • the program access interface includes:
  • the data access interface includes:
  • a read or write RW access mode output indicating whether the address provided by port A is to be read or write
  • an NDR data request output which is in the active state during a clock cycle when a read or write operation must be performed
  • the microprocessor 1 is connected on one side to a program memory 4 and an address decoder 6 of program memory, and on the other side, to a data memory 5 and a decoder of data memory address 7.
  • the program memory 4 is non-volatile, for example of the ROM, E 2 PROM or Flash type, while the data memory 5 is of the volatile type, for example of the RAM type.
  • the PC port and the NPR output of the processing unit 2 are connected to the address decoder 6, while the address port A and the NDR output of the processing unit 2 are connected to the address decoder 7 .
  • the microprocessor 1 comprises an interface unit 3 connected between the processing unit 2 on the one hand, and on the other hand the memories 4, 5, this interface unit being designed to ensure access linear to the memory space addressable by the microprocessor 1.
  • the address decoders 6, 7 are designed to supply different signals for selecting the access mode of the program and data memories 4, 5.
  • the program memory address decoder 6 delivers an NPPSEL selection signal indicating a request for access to an instruction or operand in the program memory 4, and an NPDSEL selection signal indicating a request for access to an instruction or operand in the data memory 5.
  • the address decoder 7 of the data memory 5 delivers a signal NDDSEL selection indicating an access to a data in the data memory 5, and an NDPSEL selection signal indicating an access to a data in the program memory 4.
  • the selection signals are generated by the address decoders 6, 7 only according to that the address appearing on the bus A or PC corresponds to an address of the memory 4 or of the memory 5.
  • the signals NPR and NDR allow respectively to activate the decoders 6, 7, when they are at active state. In FIG.
  • the interface unit 3 comprises a program access control unit 12, connected to the NPA input of the processing unit 2, a data access control unit 13, connected at the input NDA, and a bus multiplexer 11 connected between the processing unit 2 and the memories 4, 5. Furthermore, the data output port DBO of the processing unit (2) is connected simultaneously, via respective DOP and DOD outputs of the interface unit 3, to the data input ports DI of the memories 4 and 5. More specifically, the bus multiplexer 11 is connected to the ports PC, A, DBI and INS, as well as at the RW output of the processing unit. It includes two identical connection interfaces for connecting respectively to the two memories 4, 5.
  • Each of these interfaces includes an output port AP, AD intended to be connected to the input address port AD of the memory 4, 5, a data input port DIP, DID intended to be connected to the data output port DO of the memory 4, 5, an access mode output RWP, RWD connected to the corresponding input RW of the memory, and a component selection output NCSP, NCSD connected to the corresponding input CSN of the memory 4, 5.
  • the four selection signals NPPSEL, NPDSEL, NDDSEL and NDPSEL are applied to the input of the multiplexer 11 and the access control unit 12 to the program, while only the signals NDDSEL and NDPSEL relating to the accesses to the memory of data 5 are applied at the input of the access control unit 13 to the data.
  • the access control units 12, 13 also receive respectively the NPR and NDR signals from the processing unit 2. In the description which follows, all the signals mentioned above are for example active in the low state (logic level 0).
  • the multiplexer 11 comprises a bus control unit 21 which receives as input the four selection signals NPPSEL, NPDSEL, NDDSEL and NDPSEL and outputs the component selection signals NCSP, NCSD, and two signals control CMD25, CMD26 respectively of two multiplexers 25, 26 with two inputs 0 and 1 and one output.
  • These two multiplexers 25, 26 receive as input the addresses coming from the ports PC and A of the processing unit 2, and according to the value of their respective control signals CMD25, CMD26, apply to the output ports of address AP, AD of the bus multiplexer 11, the address coming either from the PC port, or from the A port.
  • the NPDSEL and NDPSEL selection signals indicating data in the program memory or of an instruction in the data memory are applied as control signals respectively to two multiplexers 23, 24 to which the data read from the data are applied as input. memories 4, 5 and coming from the DIP and DID input ports of the multiplexer 11.
  • the outputs of these multiplexers are respectively connected to the INS and DBO output ports of the bus multiplexer 11, so as to direct the input to these ports data either from program memory 4 or from data memory 5.
  • NDPSEL 0
  • the DIP port connected to the output port of data DO of the program memory is connected to the data output port DBO of the multiplexer 11.
  • the port DID which is connected to the data output port DBO of the multiplexer 11.
  • the DID port of the multiplexer 11 is connected to the instruction output port INS of the latter. Otherwise, it is the DIP port of the multiplexer 11 which is connected to the output port INS.
  • the bus multiplexer 11 includes a signal demultiplexer 27 for directing the RW signal from the processing unit 2 either to the program memory 4 through the RWP output, or to the data memory 5 through of the RWD output, according to the selection signals NDPSEL and NDDSEL relating to the access to a data in the program memory or in the data memory.
  • the bus control unit 21 comprises for example three AND logic gates 31, 32, 33.
  • Gate 31 receives the input signals as input
  • NCSD NPDSEL AND NDDSEL
  • NCSP NPPSEL AND NDPSEL
  • the third AND gate 33 comprises an inverted input to which is applied the NPDSEL selection signal and a direct input to which is applied • NDDSEL signal, the output of said gate supplying the control CMD26 signal of the multiplexer 26 shown in Figure 2
  • FIG. 4 shows an exemplary embodiment of the signal multiplexer circuit 27.
  • This circuit comprises two multiplexers 36 and 37, with two inputs 0, 1, whose input 0 receives the signal RW coming from the processing unit 2, and input 1 the selection signals NDPSEL and NDDSEL respectively.
  • the control input of each multiplexer 36, 37 is also looped back to input 1.
  • Figure 5a shows a first embodiment of the access control unit 12 to the program.
  • the access control unit 12 comprises two AND logic gates 45, 46 whose inputs are reversed.
  • the first gate 45 receives the NDDSEL and NPDSEL selection signals as an input
  • the second gate 46 receives the NDPSEL and NPPSEL selection signals.
  • the outputs of these two doors are connected to an OR gate 47, the output of which is connected to the control input and the input 1 of a multiplexer 48 to two inputs 0, 1, the output of this multiplexer providing the NPA signal. which is applied at the input of the processing unit 2, and the input 0 of the multiplexer receiving the NPR signal from the processing unit.
  • the NPA signal is equal to 1 (access of the processing unit to the blocked program) when the following condition is fulfilled:
  • FIG. 5b represents a second embodiment of the access control unit 12 which can be used when the program memory 4 has an output ACKN of acknowledgment signal NPMA of an access request. When high, this signal indicates that no access to the memory is in progress.
  • this NPMA acknowledgment signal exists, it is applied at the input of the access control unit 12.
  • the circuit shown in this figure corresponds to the circuit shown in Figure 5a, except that it includes a second multiplexer 49 with two inputs 0, 1, which is interposed between the input of the NPR signal and the input 0 of the multiplexer 48, the NPR signal being applied to the input 1 of this multiplexer 49 and the NPMA signal being applied to the entry 0 of it.
  • the multiplexer 49 is controlled by the selection signal NPPSEL.
  • the access control unit 12 outputs the signal NPMA if the selection signal NPPSEL is at 0 and the signal NPR in the case opposite .
  • FIG. 5c represents a third embodiment of the access control unit 12 which can be used when only the data memory 5 has an output ACKN of acknowledgment signal NDMA. In this case, this acknowledgment signal is applied to the input of the access control unit 12.
  • the circuit shown in this figure corresponds to the circuit shown in figure 5b, with the difference that the NDMA signal is applied to input 0 of the multiplexer 49 in place of the NPMA signal, and the multiplexer 49 is controlled by the selection signal NPDSEL at NPPSEL signal location.
  • the access control unit 12 outputs the signal NDMA if the selection signal NPDSEL is at 0, and the signal NPR in the opposite case.
  • FIG. 5d represents a fourth embodiment of the access control unit 12 which can be used when the two memories 4, 5 have an output ACKN of acknowledgment signal NDMA and NPMA, respectively.
  • the two acknowledgment signals are applied to the input of the access control unit 12.
  • the circuit shown in this figure corresponds to the circuit shown in Figure 5c, with the difference that it includes a third multiplexer 50 with two inputs 0, 1, interposed between input 1 of multiplexer 49 and the input of the NPR signal which is connected to input 1 of multiplexer 50 whose input 0 receives the NPMA signal, and the input of controls the NPPSEL signal.
  • the access control unit 12 outputs the signal NPMA if the selection signal NPPSEL is at 0, the signal NDMA if the signal NPDSEL selection switch is 0, and the NPR signal otherwise.
  • the control unit 13 applies to the input NDA of the processing unit 2, the signal NDR coming from the latter.
  • Such a function can be carried out using a single multiplexer, the control input of which receives the NDDSEL signal, the input 0 of which receives the NPMA signal and the input 1 of which receives the NDR signal.
  • the access control unit 13 can be produced as shown in FIG. 6.
  • the control unit 13 comprises two multiplexers 61 and 62 with two inputs 0, 1.
  • the multiplexer 61 receives the NPMA signal on its input 0, the NDR signal on its input 1 and the NDDSEL signal on its control input.
  • the output of this multiplexer 61 is connected to the input 1 of the second multiplexer 62 whose input 0 receives the signal NDMA, the control input the signal NDPSEL and the output provides the signal NDA which is applied as input of the processing unit 2.
  • FIG. 7 illustrates the function of the interface unit 3, using timing diagrams of the various signals mentioned above, in synchronism with the clock signal CK of the microprocessor 1. These signals are in the active state when they are at logic level 0.
  • the phase 71 represented in this figure corresponds to an extended access to the data memory 4. Such an access occurs when the processing unit 2 delivers an NDR signal in the active state for 2 clock cycles, this is ie with a waiting cycle W.
  • the NDDSEL signal which is generated by the address decoder 7 corresponds to the NDR signal
  • the NDMA signal which is generated by the memory 5 is in the state active only during the second cycle when the NDR signal is active.
  • the signal NDA is at the active state only during the second cycle where memory access 5 takes place.
  • Phase 72 illustrates the case of a standard, simultaneous access to memories 4, 5, a data item being accessed in data memory 5 and an instruction or an operand being read out from program memory 4.
  • the unit processing unit issues requests to access the two memories (NPR and NDR in the active state).
  • the address decoders 6, 7 place the selection signals NPPSEL and NDDSEL in the active state.
  • the bus controller 21 activates the memories 4, 5 using the signals NCSP and NCSD.
  • the NDMA and NPMA signals then also pass to the active state, and the access control unit 12 applies the NPMA signal to the NPA input of the processing unit 2 which is then authorized to carry out the reading of an instruction or operand in the program memory 4.
  • the access control unit 13 applies the signal NPMA to the input NDA of the processing unit 2 which is thus authorized to access data in program memory 4.
  • This phase shows that the processing unit 2 can simultaneously access memories 4 and 5 during a single clock cycle, in order to read an instruction in program memory 4 and a data item in data memory 5.
  • the processing unit 2 accesses the program memory 4 to access data. To this end, it places its NDR output in the active state. In response, and using the memory address to be accessed, the address decoder 7 places the selection signal NDPSEL in the active state. As a result, the bus controller 21 activates the memory 4 using the signal NCSP. The NPMA signal then also goes to the active state and the access control unit 12 applies the NDMA signal to the NPA input of the processing unit. 2 which is thus authorized to access data in the program memory 4.
  • the processing unit 2 accesses the data memory 5 to read a program instruction or an operand. For this purpose, it places its NPR output in the active state. In response, and using the memory address to be accessed, the address decoder 6 places the selection signal NPDSEL in the active state. As a result, the bus controller 21 activates memory 5 using the signal NCSD. The NDMA signal then also goes to the active state and the access control unit 12 applies the NDMA signal to the NPA input of the processing unit 2 which is thus authorized to read an instruction in data memory 5.
  • Phase 75 illustrates the opposite case of phase 72, where the processing unit simultaneously sends a request for access to a data item in the program memory 4 and request to read an instruction or operand in the data memory 5.
  • the NPR and NDR signals therefore switch to the active state at the same time.
  • the address decoders 6, 7 place the signals NDPSEL and NPDSEL in the active state.
  • the bus controller 21 activates the memories 4, 5 using the signals NCSP and NCSD.
  • the NDMA and NPMA signals then also pass to the active state and the access control unit 12 applies the NDMA signal to the NPA input of the processing unit 2 which is then authorized to read a instruction or operand in data memory 5.
  • the access control unit 13 applies the NPMA signal to the NDA input of the processing unit 2 which is thus authorized to access data in the program memory 4.
  • This phase shows that , in this case also, simultaneous access to the two memories 4 and 5 during a single clock cycle (NPA and NDA signals active at the same time), can be carried out without conflict, which was not the case with the prior architectures .
  • the processing unit 2 seeks to access the program memory 4 to read both an instruction or operand, and a piece of data. The NPR and NDR signals therefore switch to the active state at the same time.
  • the signals NDPSEL and NPPSEL also pass into the active state at the same time, as well as the signal NCSP coming from the bus controller 21, and therefore the signal NPMA coming from the program memory 4.
  • the NDR signal returns to the inactive state, which returns the NDPSEL and NDA signals to the inactive state, the NDR signal being applied in this case to the NDA input. by the control unit 13.
  • Phase 77 illustrates the case of two simultaneous accesses to the data memory 5 for reading an instruction, and accessing a data item.
  • the signals NPR and NDR are placed in the active state at the same time by the processing unit 2.
  • the signals NDDSEL and NPDSEL also pass into the active state at the same time, as well as the signal NCSD coming from the bus controller 21, and therefore the signal NDMA coming from the data memory 5.
  • the signal NDR returns to the inactive state, which brings the signals NDPSEL and NDA back to the inactive state.
  • the invention therefore makes it possible to obtain undifferentiated access to the program and to the data, the latter being distributed in any manner in two memory spaces accessible simultaneously by the 'processing unit by means of two respective buses.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Abstract

The invention relates to a microprocessor which is connected to a first memory space (4) by means of a first bus (AP, DIP, DOP, RWP) and to a second memory space (5) by means of a second bus (AD, DID, DODD, RWD). The inventive microprocessor comprises a processing unit (2), which is fitted with a program bus (PC, INS) and a data bus (A, DBO, DBI, RW), and an interface unit (3) which is connected, on one side, to the program bus (PC, INS) and the data bus (A, DBO, DBI, RW) and, on the other side, to the first bus (AP, DIP, DOP, RWP) and the second bus (AD, DID, DOP, RWD). The interface unit (3) comprises switching means (23, 25, 26) for connecting the program bus and the data bus respectively either to the first bus or the second bus according to the requests sent by the processing unit for access to the program (NPR) and to the data (NDR) respectively.

Description

MICROPROCESSEUR A ARCHITECTURE HARVARD AYANT UN ESPACE MICROPROCESSOR WITH HARVARD ARCHITECTURE HAVING SPACE
ADRESSABLE LINEAIRELINEAR ADDRESSABLE
La présente invention concerne généralement les microprocesseurs et plus particulièrement un microprocesseur utilisant une mémoire non volatile contenant des instructions exécutables d'un programme et une mémoire volatile pour stocker des données utilisées par le programme .The present invention generally relates to microprocessors and more particularly to a microprocessor using a non-volatile memory containing executable instructions of a program and a volatile memory for storing data used by the program.
A l'heure actuelle, les microprocesseurs peuvent présenter deux architectures de connexion avec les mémoires. Dans la première architecture, appelée Von Neumann, le microprocesseur est connecté à l'ensemble des mémoires par un bus d'adresse et de données unique. Par conséquent, le microprocesseur ne peut accéder à un instant donné, qu'à une seule donnée ou un seul code d'instruction. Pour accélérer l'exécution d'un programme, on a mis au point une seconde architecture, dite Harvard, dans laquelle le microprocesseur peut accéder simultanément à un code d'instruction et à une donnée, lesquels sont à cet effet stockés dans des mémoires différentes. Cette architecture nécessite de prévoir un microprocesseur à deux bus différents, l'un étant dédié à 1 ' accès au programme et connecté à la mémoire contenant le programme, et l'autre étant dédié à l'accès aux données et connecté à la mémoire contenant les données. De cette manière, le microprocesseur peut au cours d'un même cycle d'horloge lire une instruction dans la mémoire programme et effectuer une opération de lecture ou d'écriture d'une donnée dans la mémoire de données.At present, microprocessors can present two architectures for connection with memories. In the first architecture, called Von Neumann, the microprocessor is connected to all memories by a single address and data bus. Consequently, the microprocessor can only access a single datum or a single instruction code at a given instant. To speed up the execution of a program, a second architecture, known as Harvard, has been developed, in which the microprocessor can simultaneously access an instruction code and a data item, which for this purpose are stored in different memories. . This architecture requires providing a microprocessor with two different buses, one being dedicated to accessing the program and connected to the memory containing the program, and the other being dedicated to accessing the data and connected to the memory containing the data. In this way, the microprocessor can, during the same clock cycle, read an instruction in the program memory and perform an operation of reading or writing data in the data memory.
Il en résulte qu'un microprocesseur à architecture Harvard prend moins de cycles d'horloge pour exécuter un programme qu'un microprocesseur à architecture Von Neumann .As a result, a Harvard architecture microprocessor takes fewer clock cycles to execute a program than a Von Neumann architecture microprocessor.
Toutefois, l'architecture Harvard présente quelques inconvénients notamment en terme de flexibilité de l'utilisation des mémoires connectées au microprocesseur. En effet, cette architecture impose de stocker dans des zones mémoire respectives prédéfinies et distinctes, les instructions du programme et les données non modifiables, incluant les paramètres de fonctionnement, ou qui doivent être stockées de manière non volatile. Cette architecture ne peut pas être utilisée dans le cas d'un microprocesseur connecté à une seule mémoire non volatile et une seule mémoire volatile. En outre, elle ne permet pas de stocker des instructions de programme dans la mémoire volatile, par exemple à des fins de test. Par ailleurs, elle n'autorise pas non plus qu'un programme puisse se modifier lui-même en écrivant dans une mémoire, en tant que données, des codes d'instruction exécutables.However, the Harvard architecture has some drawbacks, in particular in terms of flexibility in the use of memories connected to the microprocessor. Indeed, this architecture requires storing in respective predefined and distinct memory areas, the program instructions and the non-modifiable data, including the operating parameters, or which must be stored in a non-volatile manner. This architecture cannot be used in the case of a microprocessor connected to a single non-volatile memory and a single volatile memory. In addition, it does not allow program instructions to be stored in volatile memory, for example for testing purposes. Furthermore, it does not authorize either that a program can modify itself by writing in a memory, as data, executable instruction codes.
La présente invention a pour but de supprimer ces inconvénients en proposant une architecture à deux bus, sans pour autant affecter la linéarité de l'espace adressable par le microprocesseur, que l'on obtient avec une architecture Von Neumann.The present invention aims to eliminate these drawbacks by proposing an architecture with two buses, without however affecting the linearity of the space addressable by the microprocessor, which is obtained with a Von Neumann architecture.
Cet objectif est atteint par la prévision d'un microprocesseur relié à un premier espace mémoire par l'intermédiaire d'un premier bus, et à un second espace mémoire par l'intermédiaire d'un second bus, et comprenant une unité de traitement munie d'un bus d'accès à des instructions de programme exécutable et d'un bus d'accès à des données, caractérisé en ce qu'il comprend une unité d'interface de bus connectée d'un côté au bus d'accès aux instructions de programme et au bus d'accès aux données, et de l'autre au premier et au second bus, l'unité d'interface comprenant des premiers moyens de commutation pour relier le bus d'accès au programme soit au premier bus, soit au second bus, en fonction d'une requête d'accès au programme, émise par l'unité de traitement, et des seconds moyens de commutation, pour relier le bus d'accès aux données soit au premier bus, soit au second bus, en fonction d'une requête d'accès aux données, émise par l'unité de traitement.This objective is achieved by providing a microprocessor connected to a first memory space via a first bus, and to a second memory space via a second bus, and comprising a processing unit provided an access bus to executable program instructions and a data access bus, characterized in that it comprises a bus interface unit connected on one side to the access bus program instructions and to the data access bus, and the other to the first and to the second bus, the interface unit comprising first switching means for connecting the access bus to the program either to the first bus, either to the second bus, according to a request for access to the program, sent by the processing unit, and second switching means, to connect the data access bus either to the first bus or to the second bus , based on a data access request issued by the processing unit ent.
Avantageusement, les premiers moyens de commutation sont indépendants des seconds moyens de commutation, l'unité d'interface comprenant en outre des moyens de contrôle d'accès conçus pour gérer des conflits d'accès qui se produisent lorsque 1 ' unité de traitement émet en même temps une requête d'accès à une donnée et une requête d'accès à une instruction de programme, qui concernent le même espace mémoire .Advantageously, the first switching means are independent of the second switching means, the interface unit further comprising access control means designed to manage access conflicts which occur when the processing unit simultaneously transmits an access request to data and a request for access to a program instruction, which relate to the same memory space.
Selon une particularité de l'invention, les moyens de contrôle d'accès sont conçus pour donner la priorité à une requête d'accès à une donnée, lorsqu'il se produit un conflit d'accès aux espaces mémoire.According to a feature of the invention, the access control means are designed to give priority to a request for access to a datum, when there is a conflict of access to the memory spaces.
De préférence, les moyens de contrôle d'accès sont conçus pour autoriser l'accès simultané à une instruction de programme dans l'un des deux espaces mémoire et une donnée dans 1 ' autre des deux espaces mémoire .Preferably, the access control means are designed to authorize simultaneous access to a program instruction in one of the two memory spaces and a data item in the other of the two memory spaces.
Également de préférence, les moyens de contrôle d'accès comprennent des moyens pour interdire l'accès de l'unité de traitement à une instruction de programme à la suite de l'émission par l'unité de traitement de requêtes d'accès simultanées à une instruction et une donnée dans le même espace mémoire .Also preferably, the access control means comprise means for preventing access by the processing unit to a program instruction following the transmission by the processing unit of simultaneous access requests to an instruction and a data in the same memory space.
Avantageusement, les moyens de contrôle d'accès comprennent des moyens pour autoriser 1 ' accès de 1 ' unité de traitement à un espace mémoire uniquement pendant une durée où l'espace mémoire autorise son accès.Advantageously, the access control means comprise means for authorizing the access of the processing unit to a memory space only for a duration where the memory space authorizes its access.
Selon une autre particularité de 1 ' invention, le microprocesseur est connecté à un décodeur d'adresse d'instruction de programme et un décodeur d'adresse de donnée, qui sont conçus pour générer des signaux de sélection en fonction des adresses figurant sur les bus d'accès au programme et aux données, et en fonction des requêtes d'accès émises par l'unité de traitement, ces signaux de sélection étant appliqués en entrée de l'unité d'interface et comprenant deux signaux de sélection indiquant une requête d'accès à une instruction de programme respectivement dans le premier et le second espace mémoire, et deux signaux de sélection indiquant une requête d'accès à une donnée respectivement dans le premier et le second espace mémoire.According to another feature of the invention, the microprocessor is connected to a program instruction address decoder and a data address decoder, which are designed to generate selection signals according to the addresses appearing on the buses. access to the program and to the data, and according to the access requests sent by the processing unit, these selection signals being applied to the input of the interface unit and comprising two selection signals indicating a request d access to a program instruction in the first and second respectively memory space, and two selection signals indicating a request to access data in the first and second memory space respectively.
De préférence, le microprocesseur comprend des moyens de commande pour commander les premiers moyens de commutation de manière à connecter le bus d'accès au programme au premier ou au second bus, lorsque les signaux de sélection indiquent une requête d'accès à une instruction de programme, dans l'espace mémoire respectif, et pas de requête simultanée à une donnée dans celui-ci .Preferably, the microprocessor comprises control means for controlling the first switching means so as to connect the program access bus to the first or to the second bus, when the selection signals indicate a request for access to a instruction of program, in the respective memory space, and no simultaneous request to a datum therein.
Avantageusement, le microprocesseur comprend des moyens de commande pour commander les seconds moyens de commutation de manière à connecter le bus d'accès aux données, au premier bus ou au second bus, lorsque les signaux de sélection indiquent une requête d'accès à une donnée, dans l'espace mémoire correspondant.Advantageously, the microprocessor comprises control means for controlling the second switching means so as to connect the data access bus, to the first bus or to the second bus, when the selection signals indicate a request for access to a data item. , in the corresponding memory space.
Selon encore une autre particularité de 1 ' invention le premier espace mémoire comprend une mémoire non volatile, et le second espace mémoire comprend une mémoire volatile.According to yet another feature of the invention, the first memory space comprises a non-volatile memory, and the second memory space comprises a volatile memory.
Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante d'un microprocesseur, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles :These objects, characteristics and advantages, as well as others of the present invention, will be explained in more detail in the following description of a microprocessor, given without limitation in relation to the attached figures, among which:
- la figure 1 représente d'une manière schématique l'architecture d'un microprocesseur selon l'invention, connecté à une mémoire programme et une mémoire de données ;- Figure 1 schematically shows the architecture of a microprocessor according to the invention, connected to a program memory and a data memory;
- la figure 2 représente le circuit d'un composant de l'architecture montrée sur la figure 1 ;- Figure 2 shows the circuit of a component of the architecture shown in Figure 1;
- les figures 3 et 4 représentent des circuits de respectivement deux composants du circuit montrés sur la figure 2 ; Les figures 5a à 5d représentent des circuits de variantes de réalisation d'un composant de l'architecture montrée sur la figure 1 ;- Figures 3 and 4 show circuits of respectively two components of the circuit shown in Figure 2; FIGS. 5a to 5d represent circuits of alternative embodiments of a component of the architecture shown in FIG. 1;
La figure 6 représente le circuit d'un composant de l'architecture montrée sur la figure 1 ; la figure 7 illustre sous la forme de chronogrammes différents signaux utilisés dans l'architecture représentée sur la figure 1.FIG. 6 represents the circuit of a component of the architecture shown in FIG. 1; FIG. 7 illustrates in the form of timing diagrams different signals used in the architecture represented in FIG. 1.
Le microprocesseur 1 montré sur la figure 1 présente une architecture Harvard. A cet effet, il comprend d'une manière classique une unité de traitement 2 comportant une interface d'accès au programme et une interface d'accès aux données. L'interface d'accès au programme comprend :The microprocessor 1 shown in Figure 1 has a Harvard architecture. To this end, it conventionally comprises a processing unit 2 comprising a program access interface and a data access interface. The program access interface includes:
- un port de sortie compteur de programme PC donnant l'adresse de l'instruction à exécuter,- a PC program counter output port giving the address of the instruction to be executed,
- un port d'entrée de bus d'instruction INS,- an INS instruction bus input port,
- une sortie de requête d'instruction de programme NPR qui est à l'état actif pendant un cycle d'horloge lorsqu'une instruction ou une opérande d'instruction doit être lue,- an output of an NPR program instruction request which is in the active state during a clock cycle when an instruction or an instruction operand is to be read,
- une entrée correspondante d'acceptation d'instruction de programme NPA qui doit être générée lorsque l'instruction ou l'opérande est lue dans la mémoire,- a corresponding NPA program instruction acceptance entry which must be generated when the instruction or operand is read from memory,
L'interface d'accès aux données comprend :The data access interface includes:
- un port de sortie d'adresse A donnant l'adresse mémoire d'une donnée à accéder,- an address output port A giving the memory address of a data item to be accessed,
- un port d'entrée de données DBI,- a DBI data entry port,
- un port de sortie de données DBO,- a DBO data output port,
- une sortie de mode d'accès en lecture ou écriture RW indiquant si l'adresse fournie par le port A est à accéder en lecture ou en écriture, - une sortie de requête de donnée NDR qui est à l'état actif pendant un cycle d'horloge lorsqu'une opération de lecture ou d'écriture doit être effectuée, et- a read or write RW access mode output indicating whether the address provided by port A is to be read or write, an NDR data request output which is in the active state during a clock cycle when a read or write operation must be performed, and
- une entrée correspondante d'acceptation de donnée NDA qui doit être activée lorsqu'une opération d'accès à une donnée est effectuée par la mémoire.- a corresponding entry for accepting data NDA which must be activated when a data access operation is performed by the memory.
Conformément à l'architecture Harvard, le microprocesseur 1 est connecté d'un côté à une mémoire programme 4 et un décodeur d'adresse 6 de mémoire programme, et de l'autre côté, à une mémoire de données 5 et un décodeur d'adresse 7 de mémoire de données.According to the Harvard architecture, the microprocessor 1 is connected on one side to a program memory 4 and an address decoder 6 of program memory, and on the other side, to a data memory 5 and a decoder of data memory address 7.
La mémoire programme 4 est non volatile, par exemple de type ROM, E2PROM ou Flash, tandis que la mémoire de données 5 est de type volatile, par exemple de type RAM.The program memory 4 is non-volatile, for example of the ROM, E 2 PROM or Flash type, while the data memory 5 is of the volatile type, for example of the RAM type.
Le port PC et la sortie NPR de l'unité de traitement 2 sont connectés au décodeur d'adresse 6, tandis que le port d'adresse A et la sortie NDR de 1 ' unité de traitement 2 sont connectés au décodeur d'adresse 7.The PC port and the NPR output of the processing unit 2 are connected to the address decoder 6, while the address port A and the NDR output of the processing unit 2 are connected to the address decoder 7 .
Selon l'invention, le microprocesseur 1 comprend une unité d'interface 3 connectée entre l'unité de traitement 2 d'une part, et d'autre part les mémoires 4, 5, cette unité d'interface étant conçue pour assurer un accès linéaire à 1 ' espace mémoire adressable par le microprocesseur 1. En outre, les décodeurs d'adresse 6, 7 sont conçus pour fournir différents signaux de sélection de mode d'accès des mémoires programme et de données 4, 5.According to the invention, the microprocessor 1 comprises an interface unit 3 connected between the processing unit 2 on the one hand, and on the other hand the memories 4, 5, this interface unit being designed to ensure access linear to the memory space addressable by the microprocessor 1. In addition, the address decoders 6, 7 are designed to supply different signals for selecting the access mode of the program and data memories 4, 5.
En particulier, le décodeur d'adresse 6 de mémoire programme délivre un signal de sélection NPPSEL indiquant une demande d'accès à une instruction ou opérande dans la mémoire programme 4, et un signal de sélection NPDSEL indiquant une demande d'accès à une instruction ou opérande dans la mémoire de données 5. Le décodeur d'adresse 7 de mémoire de données 5 délivre un signal de sélection NDDSEL indiquant un accès à une donnée dans la mémoire de données 5, et un signal de sélection NDPSEL indiquant un accès à une donnée dans la mémoire programme 4. Les signaux de sélection sont générés par les décodeurs d'adresse 6, 7 uniquement selon que l'adresse figurant sur le bus A ou PC correspond à une adresse de la mémoire 4 ou de la mémoire 5. En outre, les signaux NPR et NDR permettent respectivement d'activer les décodeurs 6, 7, lorsqu'ils sont à l'état actif. Sur la figure 1, l'unité d'interface 3 comprend une unité de contrôle d'accès 12 au programme, connectée à l'entrée NPA de l'unité de traitement 2, une unité de contrôle d'accès 13 aux données, connectée à l'entrée NDA, et un multiplexeur de bus 11 connecté entre l'unité de traitement 2 et les mémoires 4, 5. Par ailleurs, le port de sortie de données DBO de l'unité de traitement (2) est connecté simultanément, via des sorties DOP et DOD respectives de l'unité d'interface 3, aux ports d'entrée DI de donnée des mémoires 4 et 5. Plus précisément, le multiplexeur de bus 11 est relié aux ports PC, A, DBI et INS, ainsi qu'à la sortie RW de l'unité de traitement. Il comprend deux interfaces de connexion identiques pour se connecter respectivement aux deux mémoires 4 , 5. Chacune de ces interfaces comprend un port de sortie AP, AD destiné à être connecté au port d'entrée d'adresse AD de la mémoire 4, 5, un port d'entrée de donnée DIP, DID destiné à être connecté au port de sortie de donnée DO de la mémoire 4, 5, une sortie de mode d'accès RWP, RWD connectée à l'entrée correspondante RW de la mémoire, et une sortie de sélection de composant NCSP, NCSD connectée à l'entrée correspondante CSN de la mémoire 4, 5.In particular, the program memory address decoder 6 delivers an NPPSEL selection signal indicating a request for access to an instruction or operand in the program memory 4, and an NPDSEL selection signal indicating a request for access to an instruction or operand in the data memory 5. The address decoder 7 of the data memory 5 delivers a signal NDDSEL selection indicating an access to a data in the data memory 5, and an NDPSEL selection signal indicating an access to a data in the program memory 4. The selection signals are generated by the address decoders 6, 7 only according to that the address appearing on the bus A or PC corresponds to an address of the memory 4 or of the memory 5. In addition, the signals NPR and NDR allow respectively to activate the decoders 6, 7, when they are at active state. In FIG. 1, the interface unit 3 comprises a program access control unit 12, connected to the NPA input of the processing unit 2, a data access control unit 13, connected at the input NDA, and a bus multiplexer 11 connected between the processing unit 2 and the memories 4, 5. Furthermore, the data output port DBO of the processing unit (2) is connected simultaneously, via respective DOP and DOD outputs of the interface unit 3, to the data input ports DI of the memories 4 and 5. More specifically, the bus multiplexer 11 is connected to the ports PC, A, DBI and INS, as well as at the RW output of the processing unit. It includes two identical connection interfaces for connecting respectively to the two memories 4, 5. Each of these interfaces includes an output port AP, AD intended to be connected to the input address port AD of the memory 4, 5, a data input port DIP, DID intended to be connected to the data output port DO of the memory 4, 5, an access mode output RWP, RWD connected to the corresponding input RW of the memory, and a component selection output NCSP, NCSD connected to the corresponding input CSN of the memory 4, 5.
En outre, les quatre signaux de sélection NPPSEL, NPDSEL, NDDSEL et NDPSEL sont appliqués en entrée du multiplexeur 11 et de l'unité de contrôle d'accès 12 au programme, tandis que seuls les signaux NDDSEL et NDPSEL relatifs aux accès à la mémoire de données 5 sont appliqués en entrée de l'unité de contrôle d'accès 13 à aux données. Les unités de contrôle d'accès 12, 13 reçoivent en outre respectivement les signaux NPR et NDR issus de l'unité de traitement 2. Dans la description qui suit, tous les signaux mentionnés ci-dessus sont par exemple actifs à l'état bas (niveau logique 0) .In addition, the four selection signals NPPSEL, NPDSEL, NDDSEL and NDPSEL are applied to the input of the multiplexer 11 and the access control unit 12 to the program, while only the signals NDDSEL and NDPSEL relating to the accesses to the memory of data 5 are applied at the input of the access control unit 13 to the data. The access control units 12, 13 also receive respectively the NPR and NDR signals from the processing unit 2. In the description which follows, all the signals mentioned above are for example active in the low state (logic level 0).
Sur la figure 2, le multiplexeur 11 comprend une unité de contrôle de bus 21 qui reçoit en entrée les quatre signaux de sélection NPPSEL, NPDSEL, NDDSEL et NDPSEL et délivre en sortie les signaux de sélection de composant NCSP, NCSD, et deux signaux de commande CMD25, CMD26 respectifs de deux multiplexeurs 25, 26 à deux entrées 0 et 1 et une sortie. Ces deux multiplexeurs 25, 26 reçoivent en entrée les adresses provenant des ports PC et A de l'unité de traitement 2, et suivant la valeur de leurs signaux de commande respectifs CMD25, CMD26, appliquent sur les ports de sortie d'adresse AP, AD du multiplexeur de bus 11, l'adresse provenant soit du port PC, soit du port A.In FIG. 2, the multiplexer 11 comprises a bus control unit 21 which receives as input the four selection signals NPPSEL, NPDSEL, NDDSEL and NDPSEL and outputs the component selection signals NCSP, NCSD, and two signals control CMD25, CMD26 respectively of two multiplexers 25, 26 with two inputs 0 and 1 and one output. These two multiplexers 25, 26 receive as input the addresses coming from the ports PC and A of the processing unit 2, and according to the value of their respective control signals CMD25, CMD26, apply to the output ports of address AP, AD of the bus multiplexer 11, the address coming either from the PC port, or from the A port.
Les signaux NPDSEL et NDPSEL de sélection indiquant une donnée dans la mémoire programme ou d'une instruction dans la mémoire de données, sont appliqués en tant que signaux de commande respectivement à deux multiplexeurs 23, 24 auxquels sont appliqués en entrée les données lues dans les mémoires 4, 5 et provenant des ports d'entrée DIP et DID du multiplexeur 11. Les sorties de ces multiplexeurs sont connectées respectivement aux ports de sortie INS et DBO du multiplexeur de bus 11, de manière à orienter vers ces ports, l'entrée de donnée provenant soit de la mémoire programme 4 , soit de la mémoire de données 5. De cette, manière, lors d'un accès à une donnée dans la mémoire programme (NDPSEL = 0) , le port DIP relié au port de sortie de donnée DO de la mémoire programme est relié au port de sortie de donnée DBO du multiplexeur 11. Pour les autres types d'accès, c'est le port DID qui est relié au port de sortie de donnée DBO du multiplexeur 11. De même, lors d'un accès à une instruction dans la mémoire de données 4 (NPDSEL = 0) , le port DID du multiplexeur 11 est relié au port de sortie d'instruction INS de celui-ci. Dans le cas contraire, c'est le port DIP du multiplexeur 11 qui est connecté au port de sortie INS.The NPDSEL and NDPSEL selection signals indicating data in the program memory or of an instruction in the data memory are applied as control signals respectively to two multiplexers 23, 24 to which the data read from the data are applied as input. memories 4, 5 and coming from the DIP and DID input ports of the multiplexer 11. The outputs of these multiplexers are respectively connected to the INS and DBO output ports of the bus multiplexer 11, so as to direct the input to these ports data either from program memory 4 or from data memory 5. In this way, when accessing data in program memory (NDPSEL = 0), the DIP port connected to the output port of data DO of the program memory is connected to the data output port DBO of the multiplexer 11. For the other types of access, it is the port DID which is connected to the data output port DBO of the multiplexer 11. Similarly, when accessing an instruction in the data memory 4 (NPDSEL = 0), the DID port of the multiplexer 11 is connected to the instruction output port INS of the latter. Otherwise, it is the DIP port of the multiplexer 11 which is connected to the output port INS.
En outre, le multiplexeur de bus 11 comprend un démultiplexeur de signal 27 pour orienter le signal RW provenant de 1 ' unité de traitement 2 soit vers la mémoire de programme 4 au travers de la sortie RWP, soit vers la mémoire de données 5 au travers de la sortie RWD, en fonction des signaux de sélection NDPSEL et NDDSEL relatifs à l'accès à une donnée dans la mémoire programme ou dans la mémoire de données . Sur la figure 3, l'unité de contrôle de bus 21 comprend par exemple trois portes logiques ET 31, 32, 33.In addition, the bus multiplexer 11 includes a signal demultiplexer 27 for directing the RW signal from the processing unit 2 either to the program memory 4 through the RWP output, or to the data memory 5 through of the RWD output, according to the selection signals NDPSEL and NDDSEL relating to the access to a data in the program memory or in the data memory. In FIG. 3, the bus control unit 21 comprises for example three AND logic gates 31, 32, 33.
La porte 31 reçoit en entrée les signaux de sélectionGate 31 receives the input signals as input
' NPPSEL et NDPSEL et délivre en sortie le signal NCSP. De même, la porte 33 reçoit en entrée les signaux de sélection NPDSEL et NDDSEL et délivre en sortie le signal NCSP. De cette manière, les signaux NCSP et NCSD sont liés aux signaux de sélection par les relations suivantes :'NPPSEL and NDPSEL and outputs the NCSP signal. Likewise, gate 33 receives the selection signals NPDSEL and NDDSEL at its input and outputs the signal NCSP. In this way, the signals NCSP and NCSD are linked to the selection signals by the following relationships:
NCSD = NPDSEL ET NDDSEL, et NCSP = NPPSEL ET NDPSEL. (1)NCSD = NPDSEL AND NDDSEL, and NCSP = NPPSEL AND NDPSEL. (1)
La troisième porte ET 33 comprend une entrée inversée sur laquelle est appliqué le signal de sélection NPDSEL et une entrée directe sur laquelle est appliqué le signal NDDSEL, la sortie de cette porte fournissant le signal CMD26 de commande du multiplexeur 26 montré sur la figure 2. De cette manière, l'entrée 1 du multiplexeur 26, c'est-à-dire le bus PC, est sélectionnée pour définir l'adresse d'accès à la mémoire de données 5 si les signaux de sélection NDDSEL et NPDSEL satisfont la - condition suivante : NPDSEL = 0 AND NDDSEL = 1 (2)The third AND gate 33 comprises an inverted input to which is applied the NPDSEL selection signal and a direct input to which is applied NDDSEL signal, the output of said gate supplying the control CMD26 signal of the multiplexer 26 shown in Figure 2 In this way, the input 1 of the multiplexer 26, that is to say the PC bus, is selected to define the access address to the data memory 5 if the selection signals NDDSEL and NPDSEL satisfy the - following condition: NPDSEL = 0 AND NDDSEL = 1 (2)
Dans le cas contraire, c'est le bus A qui est relié au port d'adresse AD de la mémoire de données 5. Le circuit 21 fournit également le signal de commande CMD25 du multiplexeur 25, ce signal de commande correspondant au signal NDPSEL, de sorte que le port d'adresse AD de la mémoire de données 5 est relié au bus d'adresse A si le signal NDPSEL = 1 et au bus PC dans le cas contraire.Otherwise, it is the bus A which is connected to the address port AD of the data memory 5. The circuit 21 also supplies the control signal CMD25 of the multiplexer 25, this control signal corresponding to the signal NDPSEL, so that the address port AD of the data memory 5 is connected to the address bus A if the signal NDPSEL = 1 and to the PC bus otherwise.
La figure 4 montre un exemple de réalisation du circuit de multiplexeur de signal 27. Ce circuit comprend deux multiplexeurs 36 et 37, à deux entrées 0, 1, dont l'entrée 0 reçoit le signal RW issu de l'unité de traitement 2, et l'entrée 1 les signaux de sélection NDPSEL et NDDSEL respectivement. L'entrée de commande du de chaque multiplexeur 36, 37 est en outre rebouclée sur l'entrée 1. De cette manière, le signal RW en entrée est appliqué sur la sortie RWP de l'interface 11, c'est-à- dire sur l'entrée RW de la mémoire programme, si NDPSEL = 0, et sur la sortie RWD de l'interface 11, c'est-à-dire sur l'entrée RW de la mémoire de données 5, si NDDSEL = 0. Dans le cas contraire, les sorties' RWP et RWD sont forcées à 1. La figure 5a représente un premier mode de réalisation de l'unité de contrôle d'accès 12 au programme. Sur cette figure, l'unité de contrôle d'accès 12 comprend deux portes logiques ET 45, 46 dont les entrées sont inversées. La première porte 45 reçoit en entrée les signaux de sélection NDDSEL et NPDSEL, tandis que la seconde porte 46 reçoit les signaux de sélection NDPSEL et NPPSEL. Les sorties de ces deux portes sont connectées à une porte OU 47 dont la sortie est reliée à l'entrée de commande et l'entrée 1 d'un multiplexeur 48 à deux entrées 0, 1, la sortie de ce multiplexeur fournissant le signal NPA qui est appliqué en entrée de l'unité de traitement 2, et l'entrée 0 du multiplexeur recevant le signal NPR issu de l'unité de traitement. Ainsi, le signal NPA est égal à 1 (accès de l'unité de traitement au programme bloqué) lorsque la condition suivante est réalisée :FIG. 4 shows an exemplary embodiment of the signal multiplexer circuit 27. This circuit comprises two multiplexers 36 and 37, with two inputs 0, 1, whose input 0 receives the signal RW coming from the processing unit 2, and input 1 the selection signals NDPSEL and NDDSEL respectively. The control input of each multiplexer 36, 37 is also looped back to input 1. In this way, the signal RW as an input is applied to the output RWP of the interface 11, that is to say on the RW input of the program memory, if NDPSEL = 0, and on the RWD output of the interface 11, i.e. on the RW input of the data memory 5, if NDDSEL = 0. otherwise, outputs' RWP and RWD are forced to 1. Figure 5a shows a first embodiment of the access control unit 12 to the program. In this figure, the access control unit 12 comprises two AND logic gates 45, 46 whose inputs are reversed. The first gate 45 receives the NDDSEL and NPDSEL selection signals as an input, while the second gate 46 receives the NDPSEL and NPPSEL selection signals. The outputs of these two doors are connected to an OR gate 47, the output of which is connected to the control input and the input 1 of a multiplexer 48 to two inputs 0, 1, the output of this multiplexer providing the NPA signal. which is applied at the input of the processing unit 2, and the input 0 of the multiplexer receiving the NPR signal from the processing unit. Thus, the NPA signal is equal to 1 (access of the processing unit to the blocked program) when the following condition is fulfilled:
(NDPSEL = 0 ET NPPSEL = 0) OU(NDPSEL = 0 AND NPPSEL = 0) OR
(NDDSEL = 0 ET NPDSEL = 0) (3)(NDDSEL = 0 AND NPDSEL = 0) (3)
et est égal au signal NPR dans le cas contraire. La figure 5b représente un second mode de réalisation de l'unité de contrôle d'accès 12 qui peut être utilisé lorsque la mémoire programme 4 présente une sortie ACKN de signal d'acquittement NPMA d'une requête d'accès. A l'état haut, ce signal indique qu'aucun accès avec la mémoire n'est en cours.and is equal to the NPR signal otherwise. FIG. 5b represents a second embodiment of the access control unit 12 which can be used when the program memory 4 has an output ACKN of acknowledgment signal NPMA of an access request. When high, this signal indicates that no access to the memory is in progress.
Si ce signal d'acquittement NPMA existe, il est appliqué en entrée de l'unité de contrôle d'accès 12. Le circuit représenté sur cette figure correspond au circuit représenté sur la figure 5a, à la différence qu'il comprend un second multiplexeur 49 à deux entrées 0, 1, qui est interposé entre l'entrée du signal NPR et l'entrée 0 du multiplexeur 48, le signal NPR étant appliqué sur l'entrée 1 de ce multiplexeur 49 et le signal NPMA étant appliqué sur l'entrée 0 de celui-ci. En outre, le multiplexeur 49 est commandé par le signal de sélection NPPSEL.If this NPMA acknowledgment signal exists, it is applied at the input of the access control unit 12. The circuit shown in this figure corresponds to the circuit shown in Figure 5a, except that it includes a second multiplexer 49 with two inputs 0, 1, which is interposed between the input of the NPR signal and the input 0 of the multiplexer 48, the NPR signal being applied to the input 1 of this multiplexer 49 and the NPMA signal being applied to the entry 0 of it. In addition, the multiplexer 49 is controlled by the selection signal NPPSEL.
De cette manière, dans le cas où la condition (3) n'est pas réalisée, l'unité de contrôle d'accès 12 délivre en sortie le signal NPMA si le signal de sélection NPPSEL est à 0 et le signal NPR dans le cas contraire .In this way, in the case where condition (3) is not fulfilled, the access control unit 12 outputs the signal NPMA if the selection signal NPPSEL is at 0 and the signal NPR in the case opposite .
La figure 5c représente un troisième mode de réalisation de l'unité de contrôle d'accès 12 qui peut être utilisé lorsque seule la mémoire de données 5 présente une sortie ACKN de signal d'acquittement NDMA. Dans ce cas, ce signal d'acquittement est appliqué en entrée de l'unité de contrôle d'accès 12. Le circuit représenté sur cette figure correspond au circuit représenté sur la figure 5b, à la différence que le signal NDMA est appliqué à l'entrée 0 du multiplexeur 49 à la place du signal NPMA, et le multiplexeur 49 est commandé par le signal de sélection NPDSEL au lieu du signal NPPSEL.FIG. 5c represents a third embodiment of the access control unit 12 which can be used when only the data memory 5 has an output ACKN of acknowledgment signal NDMA. In this case, this acknowledgment signal is applied to the input of the access control unit 12. The circuit shown in this figure corresponds to the circuit shown in figure 5b, with the difference that the NDMA signal is applied to input 0 of the multiplexer 49 in place of the NPMA signal, and the multiplexer 49 is controlled by the selection signal NPDSEL at NPPSEL signal location.
De cette manière, dans le cas où la condition (3) n'est pas réalisée, l'unité de contrôle d'accès 12 délivre en sortie le signal NDMA si le signal de sélection NPDSEL est à 0, et le signal NPR dans le cas contraire.In this way, in the case where condition (3) is not fulfilled, the access control unit 12 outputs the signal NDMA if the selection signal NPDSEL is at 0, and the signal NPR in the opposite case.
La figure 5d représente un quatrième mode de réalisation de l'unité de contrôle d'accès 12 qui peut être utilisé lorsque les deux mémoires 4, 5 présentent une sortie ACKN de signal d'acquittement NDMA et NPMA, respectivement. Dans ce cas, les deux signaux d'acquittement sont appliqués en entrée de l'unité de contrôle d'accès 12. Le circuit représenté sur cette figure correspond au circuit représenté sur la figure 5c, à la différence qu'il comprend un troisième multiplexeur 50 à deux entrées 0, 1, interposé entre l'entrée 1 du multiplexeur 49 et l'entrée du signal NPR qui est reliée à l'entrée 1 du multiplexeur 50 dont l'entrée 0 reçoit le signal NPMA, et l'entrée de commande le signal NPPSEL. De cette manière, dans le cas où la condition (3) n'est pas réalisée, l'unité de contrôle d'accès 12 délivre en sortie le signal NPMA si le signal de sélection NPPSEL est à 0, le signal NDMA si le signal de sélection NPDSEL est à 0, et le signal NPR dans le cas contraire.FIG. 5d represents a fourth embodiment of the access control unit 12 which can be used when the two memories 4, 5 have an output ACKN of acknowledgment signal NDMA and NPMA, respectively. In this case, the two acknowledgment signals are applied to the input of the access control unit 12. The circuit shown in this figure corresponds to the circuit shown in Figure 5c, with the difference that it includes a third multiplexer 50 with two inputs 0, 1, interposed between input 1 of multiplexer 49 and the input of the NPR signal which is connected to input 1 of multiplexer 50 whose input 0 receives the NPMA signal, and the input of controls the NPPSEL signal. In this way, in the case where condition (3) is not fulfilled, the access control unit 12 outputs the signal NPMA if the selection signal NPPSEL is at 0, the signal NDMA if the signal NPDSEL selection switch is 0, and the NPR signal otherwise.
Dans le cas où les mémoires 4 et 5 ne délivrent pas de signaux NPMA et NDMA, l'unité de contrôle 13 applique sur l'entrée NDA de l'unité de traitement 2, le signal NDR issu de cette dernière. Dans le cas où seule la mémoire programme 4 délivre un tel signal NPMA, l'entrée NDA reçoit le signal NPMA si le signal de sélection NDDSEL = 0 et le signal NDR dans le cas contraire. Une telle fonction est réalisable à l'aide d'un unique multiplexeur dont l'entrée de commande reçoit le signal NDDSEL, l'entrée 0 reçoit le signal NPMA et l'entrée 1 le signal NDR. De même, dans le cas où seule la mémoire de données 5 délivre un tel signal NDMA, l'entrée NDA reçoit le signal NDMA si le signal de sélection NDPSEL = 0 et le signal NDR dans le cas contraire.In the case where memories 4 and 5 do not deliver NPMA and NDMA signals, the control unit 13 applies to the input NDA of the processing unit 2, the signal NDR coming from the latter. In the case where only the program memory 4 delivers such an NPMA signal, the NDA input receives the NPMA signal if the selection signal NDDSEL = 0 and the signal NDR in the opposite case. Such a function can be carried out using a single multiplexer, the control input of which receives the NDDSEL signal, the input 0 of which receives the NPMA signal and the input 1 of which receives the NDR signal. Likewise, in the case where only the data memory 5 delivers such an NDMA signal, the NDA input receives the NDMA signal if the selection signal NDPSEL = 0 and the NDR signal otherwise.
Dans le cas où les deux signaux NPMA et NDMA sont disponibles, l'unité de contrôle d'accès 13 peut être réalisée de la manière représentée sur la figure 6. Sur cette figure, l'unité de contrôle 13 comprend deux multiplexeurs 61 et 62 à deux entrées 0, 1. Le multiplexeur 61 reçoit le signal NPMA sur son entrée 0, le signal NDR sur son entrée 1 et le signal NDDSEL sur son entrée de commande. La sortie de ce multiplexeur 61 est reliée à l'entrée 1 du second multiplexeur 62 dont l'entrée 0 reçoit le signal NDMA, l'entrée de commande le signal NDPSEL et la sortie fournit le signal NDA qui est appliqué en entrée de l'unité de traitement 2.In the case where the two signals NPMA and NDMA are available, the access control unit 13 can be produced as shown in FIG. 6. In this figure, the control unit 13 comprises two multiplexers 61 and 62 with two inputs 0, 1. The multiplexer 61 receives the NPMA signal on its input 0, the NDR signal on its input 1 and the NDDSEL signal on its control input. The output of this multiplexer 61 is connected to the input 1 of the second multiplexer 62 whose input 0 receives the signal NDMA, the control input the signal NDPSEL and the output provides the signal NDA which is applied as input of the processing unit 2.
Ainsi, le signal NDA vaut NDMA si NDDSEL = 0, NPMA si NDPSEL = 0 et NDR dans le cas contraire.Thus, the signal NDA is worth NDMA if NDDSEL = 0, NPMA if NDPSEL = 0 and NDR otherwise.
La figure 7 illustre la fonction de l'unité d'interface 3, à l'aide de chronogrammes des différents signaux mentionnés ci-avant, en synchronisme avec le signal d'horloge CK du microprocesseur 1. Ces signaux sont à l'état actif lorsqu'ils sont au niveau logique 0.FIG. 7 illustrates the function of the interface unit 3, using timing diagrams of the various signals mentioned above, in synchronism with the clock signal CK of the microprocessor 1. These signals are in the active state when they are at logic level 0.
La phase 71 représentée sur cette figure correspond à un accès étendu à la mémoire de données 4. Un tel accès se produit lorsque l'unité de traitement 2 délivre un signal NDR à l'état actif pendant 2 cycles d'horloge, c'est-à-dire avec un cycle d'attente W. Dans ce cas, le signal NDDSEL qui est généré par le décodeur d'adresse 7 correspond au signal NDR, et le signal NDMA qui est généré par la mémoire 5 est à l'état actif seulement durant le second cycle où le signal NDR est actif. Il en résulte que durant la phase 71, le signal NDA est à l'état actif uniquement pendant le second cycle où a lieu 1 ' accès à la mémoire 5.The phase 71 represented in this figure corresponds to an extended access to the data memory 4. Such an access occurs when the processing unit 2 delivers an NDR signal in the active state for 2 clock cycles, this is ie with a waiting cycle W. In this case, the NDDSEL signal which is generated by the address decoder 7 corresponds to the NDR signal, and the NDMA signal which is generated by the memory 5 is in the state active only during the second cycle when the NDR signal is active. As a result, during phase 71, the signal NDA is at the active state only during the second cycle where memory access 5 takes place.
La phase 72 illustre le cas d'un accès standard, simultané aux mémoires 4, 5, une donnée étant accédée dans la mémoire de données 5 et une instruction ou une opérande étant lue dans la mémoire programme 4. Dans ce cas, l'unité de traitement émet des requêtes d'accès aux deux mémoires (NPR et NDR à l'état actif) . En réponse, et à l'aide des adresses mémoire à accéder, les décodeurs d'adresse 6, 7 placent les signaux de sélection NPPSEL et NDDSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active les mémoires 4, 5 à l'aide des signaux NCSP et NCSD. Les signaux NDMA et NPMA passent alors également à l'état actif, et l'unité de contrôle d'accès 12 applique le signal NPMA sur l'entrée NPA de l'unité de traitement 2 qui est alors autorisée à effectuer la lecture d'une instruction ou opérande dans la mémoire programme 4. Pendant ce temps, l'unité de contrôle d'accès 13 applique le signal NPMA sur l'entrée NDA de l'unité de traitement 2 qui est ainsi autorisée à effectuer un accès à une donnée dans la mémoire programme 4.Phase 72 illustrates the case of a standard, simultaneous access to memories 4, 5, a data item being accessed in data memory 5 and an instruction or an operand being read out from program memory 4. In this case, the unit processing unit issues requests to access the two memories (NPR and NDR in the active state). In response, and using the memory addresses to be accessed, the address decoders 6, 7 place the selection signals NPPSEL and NDDSEL in the active state. As a result, the bus controller 21 activates the memories 4, 5 using the signals NCSP and NCSD. The NDMA and NPMA signals then also pass to the active state, and the access control unit 12 applies the NPMA signal to the NPA input of the processing unit 2 which is then authorized to carry out the reading of an instruction or operand in the program memory 4. During this time, the access control unit 13 applies the signal NPMA to the input NDA of the processing unit 2 which is thus authorized to access data in program memory 4.
Cette phase montre que l'unité de traitement 2 peut accéder simultanément aux mémoires 4 et 5 durant un seul cycle d'horloge, pour lire une instruction dans la mémoire programme 4 et une donnée dans la mémoire de données 5.This phase shows that the processing unit 2 can simultaneously access memories 4 and 5 during a single clock cycle, in order to read an instruction in program memory 4 and a data item in data memory 5.
Durant la phase 73, l'unité de traitement 2 effectue un accès à la mémoire programme 4 pour accéder à une donnée. A cet effet, elle place sa sortie NDR à l'état actif. En réponse, et à l'aide de l'adresse mémoire à accéder, le décodeur d'adresse 7 place le signal de sélection NDPSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active la mémoire 4 à l'aide du signal NCSP. Le signal NPMA passe alors également à l'état actif et l'unité de contrôle d'accès 12 applique le signal NDMA sur l'entrée NPA de l'unité de traitement 2 qui est ainsi autorisée à accéder à une donnée dans la mémoire programme 4.During phase 73, the processing unit 2 accesses the program memory 4 to access data. To this end, it places its NDR output in the active state. In response, and using the memory address to be accessed, the address decoder 7 places the selection signal NDPSEL in the active state. As a result, the bus controller 21 activates the memory 4 using the signal NCSP. The NPMA signal then also goes to the active state and the access control unit 12 applies the NDMA signal to the NPA input of the processing unit. 2 which is thus authorized to access data in the program memory 4.
Durant la phase 74, l'unité de traitement 2 effectue un accès à la mémoire de données 5 pour lire une instruction de programme ou une opérande. A cet effet, elle place sa sortie NPR à l'état actif. En réponse, et à l'aide de l'adresse mémoire à accéder, le décodeur d'adresse 6 place le signal de sélection NPDSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active la mémoire 5 à l'aide du signal NCSD. Le signal NDMA passe alors également à l'état actif et l'unité de contrôle d'accès 12 applique le signal NDMA sur l'entrée NPA de l'unité de traitement 2 qui est ainsi autorisée à effectuer la lecture d'une instruction dans la mémoire de données 5.During phase 74, the processing unit 2 accesses the data memory 5 to read a program instruction or an operand. For this purpose, it places its NPR output in the active state. In response, and using the memory address to be accessed, the address decoder 6 places the selection signal NPDSEL in the active state. As a result, the bus controller 21 activates memory 5 using the signal NCSD. The NDMA signal then also goes to the active state and the access control unit 12 applies the NDMA signal to the NPA input of the processing unit 2 which is thus authorized to read an instruction in data memory 5.
Dans les deux phases précédentes, aucun conflit d'accès aux mémoires n'est apparu, et donc l'opération d'accès de l'unité de traitement est effectuée en un seul cycle d'horloge. Il en résulte que contrairement à l'architecture Harvard de l'art antérieur, les données et le programme sont accessibles dans tout l'espace mémoire adressable par le microprocesseur, et ce sans introduire des cycles de traitement supplémentaire.In the two preceding phases, no conflict of access to the memories appeared, and therefore the access operation of the processing unit is carried out in a single clock cycle. As a result, unlike the Harvard architecture of the prior art, the data and the program are accessible throughout the memory space addressable by the microprocessor, and this without introducing additional processing cycles.
La phase 75 illustre le cas inverse de la phase 72, où l'unité de traitement émet simultanément une requête d'accès à une donnée dans la mémoire programme 4 et requête de lecture d'une instruction ou opérande dans la mémoire de données 5. Les signaux NPR et NDR passent donc à l'état actif en même temps. Dans ce cas, les décodeurs d'adresse 6, 7 placent les signaux NDPSEL et NPDSEL à l'état actif. Il en résulte que le contrôleur de bus 21 active les mémoires 4, 5 à l'aide des signaux NCSP et NCSD. Les signaux NDMA et NPMA passent alors également à l'état actif et l'unité de contrôle d'accès 12 applique le signal NDMA sur l'entrée NPA de l'unité de traitement 2 qui est alors autorisée à effectuer la lecture d'une instruction ou opérande dans la mémoire de données 5. Pendant ce temps, l'unité de contrôle d'accès 13 applique le signal NPMA sur l'entrée NDA de l'unité de traitement 2 qui est ainsi autorisée à effectuer un accès à une donnée dans la mémoire programme 4. Cette phase montre que, dans ce cas également, un accès simultané aux deux mémoires 4 et 5 durant un seul cycle d'horloge (signaux NPA et NDA actifs en même temps), peut être effectué sans conflit, ce qui n'était pas le cas des architectures antérieures. Durant la phase 76, l'unité de traitement 2 cherche à accéder à la mémoire programme 4 pour lire à la fois une instruction ou opérande, et une donnée. Les signaux NPR et NDR passent donc à l'état actif en même temps. Il en résulte que les signaux NDPSEL et NPPSEL passent également à l'état actif en même temps, de même que le signal NCSP issu du contrôleur de bus 21, et donc le signal NPMA issu de la mémoire programme 4. Durant un premier cycle où les signaux NDR et NPR sont actifs, l'entrée NDA reçoit le signal NPMA (NDPSEL = 0) et le signal NPA est forcé à 1 (inactif) . Par conséquent, l'accès à la donnée en mémoire programme est effectué, tandis que la lecture de l'instruction est interdite, ce qui entraîne l'introduction d'un cycle d'attente W pour la lecture de l'instruction. A la fin du cycle d'accès à la donnée, le signal NDR repasse à l'état inactif, ce qui fait repasser les signaux NDPSEL et NDA à l'état inactif, le signal NDR étant appliqué dans ce cas à l'entrée NDA par l'unité de contrôle 13. Il en résulte que pendant le second cycle, le signal NPA passe à l'état actif (= NPMA), ce qui autorise la lecture demandée d'une instruction dans la mémoire programme 4.Phase 75 illustrates the opposite case of phase 72, where the processing unit simultaneously sends a request for access to a data item in the program memory 4 and request to read an instruction or operand in the data memory 5. The NPR and NDR signals therefore switch to the active state at the same time. In this case, the address decoders 6, 7 place the signals NDPSEL and NPDSEL in the active state. As a result, the bus controller 21 activates the memories 4, 5 using the signals NCSP and NCSD. The NDMA and NPMA signals then also pass to the active state and the access control unit 12 applies the NDMA signal to the NPA input of the processing unit 2 which is then authorized to read a instruction or operand in data memory 5. During this time, the access control unit 13 applies the NPMA signal to the NDA input of the processing unit 2 which is thus authorized to access data in the program memory 4. This phase shows that , in this case also, simultaneous access to the two memories 4 and 5 during a single clock cycle (NPA and NDA signals active at the same time), can be carried out without conflict, which was not the case with the prior architectures . During phase 76, the processing unit 2 seeks to access the program memory 4 to read both an instruction or operand, and a piece of data. The NPR and NDR signals therefore switch to the active state at the same time. As a result, the signals NDPSEL and NPPSEL also pass into the active state at the same time, as well as the signal NCSP coming from the bus controller 21, and therefore the signal NPMA coming from the program memory 4. During a first cycle where the NDR and NPR signals are active, the NDA input receives the NPMA signal (NDPSEL = 0) and the NPA signal is forced to 1 (inactive). Consequently, access to the data in program memory is carried out, while the reading of the instruction is prohibited, which involves the introduction of a waiting cycle W for the reading of the instruction. At the end of the data access cycle, the NDR signal returns to the inactive state, which returns the NDPSEL and NDA signals to the inactive state, the NDR signal being applied in this case to the NDA input. by the control unit 13. As a result, during the second cycle, the NPA signal goes to the active state (= NPMA), which authorizes the requested reading of an instruction in the program memory 4.
La phase 77 illustre le cas de deux accès simultanés à la mémoire de données 5 pour lire une instruction, et accéder à une donnée. Ici encore les signaux NPR et NDR sont placés à l'état actif en même temps par l'unité de traitement 2. Il en résulte que les signaux NDDSEL et NPDSEL passent également à l'état actif en même temps, de même que le signal NCSD issu du contrôleur de bus 21, et donc le signal NDMA issu de la mémoire de données 5. Durant un premier cycle où les signaux NDR et NPR sont actifs, l'entrée NDA reçoit le signal NPMA (NDPSEL = 0) et le signal NPA est forcé à 1 (inactif) . Par conséquent, l'accès à la donnée en mémoire programme est effectué, tandis que la lecture de l'instruction est interdite, ce qui entraîne également l'introduction d'un cycle d'attente W. A la fin du cycle d'accès à la donnée, le signal NDR repasse à l'état inactif, ce qui fait repasser les signaux NDPSEL et NDA à l'état inactif. Pendant le second cycle, le signal NPA passe à l'état actif (= NDMA) et autorise la lecture demandée d'une instruction dans la mémoire de données 5. Par conséquent, deux demandes d'accès simultanées à la même mémoire, programme ou de données, sont exécutées en deux cycles d'horloge. Il est à noter que l'accès à la donnée est effectué en premier, ce qui est conforme au mode de fonctionnement des microprocesseurs dans lequel l'accès à une donnée résulte de l'exécution d'une instruction lue précédemment. Il est en effet préférable de terminer l'exécution d'une instruction, précédente avant de lire l'instruction suivante.Phase 77 illustrates the case of two simultaneous accesses to the data memory 5 for reading an instruction, and accessing a data item. Here again the signals NPR and NDR are placed in the active state at the same time by the processing unit 2. As a result, the signals NDDSEL and NPDSEL also pass into the active state at the same time, as well as the signal NCSD coming from the bus controller 21, and therefore the signal NDMA coming from the data memory 5. During a first cycle where the signals NDR and NPR are active, the input NDA receives the signal NPMA (NDPSEL = 0) and the NPA signal is forced to 1 (inactive). Consequently, access to the data in program memory is carried out, while the reading of the instruction is prohibited, which also results in the introduction of a waiting cycle W. At the end of the access cycle at the datum, the signal NDR returns to the inactive state, which brings the signals NDPSEL and NDA back to the inactive state. During the second cycle, the NPA signal changes to the active state (= NDMA) and authorizes the requested reading of an instruction in the data memory 5. Consequently, two requests for simultaneous access to the same memory, program or of data, are executed in two clock cycles. It should be noted that the access to the data is carried out first, which is in accordance with the operating mode of the microprocessors in which the access to a data results from the execution of an instruction read previously. It is indeed preferable to complete the execution of a previous instruction before reading the next instruction.
Grâce à une unité d'interface réalisable par un circuit logique relativement simple, l'invention permet donc d'obtenir un accès indifférencié au programme et aux données, ceux-ci étant répartis d'une manière quelconque dans deux espaces mémoire accessibles simultanément par l'unité de traitement au moyen de deux bus respectifs. Thanks to an interface unit achievable by a relatively simple logic circuit, the invention therefore makes it possible to obtain undifferentiated access to the program and to the data, the latter being distributed in any manner in two memory spaces accessible simultaneously by the 'processing unit by means of two respective buses.

Claims

REVENDICATIONS
1. Microprocesseur relié à un premier espace mémoire (4) par l'intermédiaire d'un premier bus (AP, DIP, DOP, RWP) , et à un second espace mémoire (5) par l'intermédiaire d'un second bus (AD, DID, DOD, RWD), et1. Microprocessor connected to a first memory space (4) via a first bus (AP, DIP, DOP, RWP), and to a second memory space (5) via a second bus ( AD, DID, DOD, RWD), and
5 comprenant une unité de traitement (2) munie d'un bus d'accès (PC, INS) à des instructions de programme exécutable et d'un bus d'accès (A, DBO, DBI, RW) à des données , caractérisé en ce qu'il comprend une unité d'interface5 comprising a processing unit (2) provided with an access bus (PC, INS) to executable program instructions and a data access bus (A, DBO, DBI, RW), characterized in that it includes an interface unit
10 (3) de bus connectée d'un côté au bus d'accès (PC, INS) aux instructions de programme et au bus d'accès (A, DBO, DBI, RW) aux données, et de l'autre au premier (AP, DIP, DOP, RWP) et au second bus (AD, DID, DOP, RWD), l'unité d'interface (3) comprenant des premiers moyens de10 (3) bus connected on one side to the access bus (PC, INS) to the program instructions and to the access bus (A, DBO, DBI, RW) to the data, and on the other to the first (AP, DIP, DOP, RWP) and to the second bus (AD, DID, DOP, RWD), the interface unit (3) comprising first means of
15. commutation (23, 25, 26) pour relier le bus d'accès au programme soit au premier bus, soit au second bus, en fonction d'une requête d'accès (NPR) au programme, émise par l'unité de traitement (2), et des seconds moyens de commutation (24, 25, 26, 27), pour relier le bus d'accès15. switching (23, 25, 26) to connect the program access bus either to the first bus or to the second bus, according to an access request (NPR) to the program, sent by the processing (2), and second switching means (24, 25, 26, 27), for connecting the access bus
20 aux données soit au premier bus, soit au second bus, en fonction d'une requête d'accès (NDR) aux données, émise par l'unité de traitement.20 to the data either at the first bus or at the second bus, according to a request for access (NDR) to the data, sent by the processing unit.
2. Microprocesseur selon la revendication 1, 25 caractérisé en ce que les premiers moyens de commutation2. Microprocessor according to claim 1, characterized in that the first switching means
(23, 25, 26) sont indépendants des seconds moyens de commutation (24, 25, 26, 27), l'unité d'interface (3) comprenant en outre des moyens (12, 13) de contrôle d'accès conçus pour gérer des conflits d'accès qui se 30 produisent lorsque l'unité de traitement (2) émet en même- temps une requête d'accès à une donnée et une requête d'accès à une instruction de programme, qui concernent le même espace mémoire (3, 4) . (23, 25, 26) are independent of the second switching means (24, 25, 26, 27), the interface unit (3) further comprising access control means (12, 13) designed to manage access conflicts which occur when the processing unit (2) simultaneously issues a request for access to a data item and a request for access to a program instruction, which relate to the same memory space (3, 4).
3. Microprocesseur selon la revendication 2, caractérisé en ce que les moyens de contrôle d'accès (12, 13) sont conçus pour donner la priorité à une requête d'accès à une donnée, lorsqu'il se produit un conflit3. Microprocessor according to claim 2, characterized in that the access control means (12, 13) are designed to give priority to a request for access to a data, when a conflict occurs
5 d'accès aux espaces mémoire (3, 4) .5 for access to the memory spaces (3, 4).
4. Microprocesseur selon la revendication 2 ou 3 , caractérisé en ce que les moyens de contrôle d'accès (12, 13) sont conçus pour autoriser l'accès simultané à une4. Microprocessor according to claim 2 or 3, characterized in that the access control means (12, 13) are designed to authorize simultaneous access to a
10 instruction de programme dans l'un des deux espaces mémoire (3, 4) et une donnée dans l'autre des deux espaces mémoire .10 program instruction in one of the two memory spaces (3, 4) and a data item in the other of the two memory spaces.
5. Microprocesseur selon l'une quelconque des 15 revendications 2 à 4, caractérisé en ce que les moyens de contrôle d'accès (12, 13) comprennent des moyens (45 à 48) pour interdire l'accès de l'unité de traitement (2) à une instruction de programme à la suite de l'émission par l'unité de traitement de requêtes d'accès simultanées à 20 une instruction et une donnée dans le même espace mémoire (3, 4) .5. Microprocessor according to any one of claims 2 to 4, characterized in that the access control means (12, 13) comprise means (45 to 48) for preventing access to the processing unit (2) to a program instruction following the transmission by the processing unit of requests for simultaneous access to an instruction and a data item in the same memory space (3, 4).
6. Microprocesseur selon l'une quelconque des revendications 2 à 5, caractérisé en ce que les moyens de6. Microprocessor according to any one of claims 2 to 5, characterized in that the means for
25. contrôle d'accès (12, 13) comprennent des moyens (49, 50 61, 62) pour autoriser l'accès de l'unité de traitement à un espace mémoire (3, 4) uniquement pendant une durée où l'espace mémoire autorise son accès.25. access control (12, 13) include means (49, 50 61, 62) for authorizing the access of the processing unit to a memory space (3, 4) only for a period where the space memory authorizes its access.
30 7. Microprocesseur selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il est connecté à un décodeur d'adresse (6) d'instruction de programme et un décodeur d'adresse (7) de donnée, qui sont conçus pour générer des signaux de sélection7. Microprocessor according to any one of claims 1 to 6, characterized in that it is connected to an address decoder (6) for program instruction and an address decoder (7) for data, which are designed to generate selection signals
35 (NPPSEL, NPDSEL, NDPSEL, NDDSEL) en fonction des adresses figurant sur les bus d'accès au programme (PC, INS) et aux données (A, DBO, DBI, RW) , et en fonction des requêtes d'accès (NPR, NDR) émises par l'unité de traitement (2) , ces signaux de sélection étant appliqués en entrée de l'unité d'interface (3) et comprenant deux signaux de sélection (NPPSEL, NPDSEL) indiquant une requête d'accès à une instruction de programme respectivement dans le premier (4) et le second espace mémoire (5) , et deux signaux de sélection (NDDSEL, NDPSEL) indiquant une requête d'accès à une donnée respectivement dans le premier (4) et le second espace mémoire (5) .35 (NPPSEL, NPDSEL, NDPSEL, NDDSEL) according to the addresses on the program access buses (PC, INS) and data (A, DBO, DBI, RW), and according to access requests (NPR, NDR) sent by the processing unit (2), these selection signals being applied at the input of the interface unit (3) and comprising two selection signals (NPPSEL, NPDSEL) indicating a request for access to a program instruction respectively in the first (4) and the second memory space (5), and two selection signals (NDDSEL, NDPSEL) indicating a request for access to a data item respectively in the first ( 4) and the second memory space (5).
8. Microprocesseur selon la revendication 7, caractérisé en ce qu'il comprend des moyens de commande pour commander les premiers moyens de commutation (23, 25, 26) de manière à connecter le bus d'accès (PC, INS) au programme au premier ou au second bus, lorsque les signaux de sélection (NPPSEL, NDPSEL, NPDSEL, NDPSEL) indiquent une requête d'accès à une instruction de programme, dans l'espace mémoire (4, 5) respectif, et pas de requête simultanée à une donnée dans celui-ci.8. Microprocessor according to claim 7, characterized in that it comprises control means for controlling the first switching means (23, 25, 26) so as to connect the access bus (PC, INS) to the program to first or second bus, when the selection signals (NPPSEL, NDPSEL, NPDSEL, NDPSEL) indicate a request for access to a program instruction, in the respective memory space (4, 5), and no simultaneous request to a data in this one.
9. Microprocesseur selon la revendication 7 ou 8 , caractérisé en ce qu'il comprend des moyens de commande pour commander les seconds moyens de commutation (24 à 27) de manière à connecter le bus d'accès (A, DBO, DBI, RW) aux données, au premier bus ou au second bus, lorsque les signaux de sélection (NPPSEL, NDPSEL, NPDSEL, NDPSEL) indiquent une requête d'accès à une donnée, dans l'espace mémoire (4, 5) correspondant.9. Microprocessor according to claim 7 or 8, characterized in that it comprises control means for controlling the second switching means (24 to 27) so as to connect the access bus (A, DBO, DBI, RW ) to the data, to the first bus or to the second bus, when the selection signals (NPPSEL, NDPSEL, NPDSEL, NDPSEL) indicate a request for access to a data, in the corresponding memory space (4, 5).
10. Microprocesseur selon l'une quelconque des revendications 1 à 9, caractérisé en ce que le premier espace mémoire (4) comprend une mémoire non volatile, et le second espace mémoire (5) comprend une mémoire volatile. 10. Microprocessor according to any one of claims 1 to 9, characterized in that the first memory space (4) comprises a non-volatile memory, and the second memory space (5) comprises a volatile memory.
EP02704822A 2001-02-28 2002-02-14 Harvard architecture microprocessor having a linear addressable space Withdrawn EP1364294A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0102701 2001-02-28
FR0102701A FR2821456B1 (en) 2001-02-28 2001-02-28 MICROPROCESSOR WITH HARVARD ARCHITECTURE HAVING A LINEAR ADRASSABLE SPACE
PCT/FR2002/000556 WO2002069163A1 (en) 2001-02-28 2002-02-14 Harvard architecture microprocessor having a linear addressable space

Publications (1)

Publication Number Publication Date
EP1364294A1 true EP1364294A1 (en) 2003-11-26

Family

ID=8860535

Family Applications (1)

Application Number Title Priority Date Filing Date
EP02704822A Withdrawn EP1364294A1 (en) 2001-02-28 2002-02-14 Harvard architecture microprocessor having a linear addressable space

Country Status (5)

Country Link
US (1) US7120760B2 (en)
EP (1) EP1364294A1 (en)
JP (1) JP4121373B2 (en)
FR (1) FR2821456B1 (en)
WO (1) WO2002069163A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
CN113595844B (en) * 2021-08-03 2022-07-08 北京国科天迅科技有限公司 Data interaction method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0697663A2 (en) * 1994-08-10 1996-02-21 AT&T Corp. Apparatus and method for computerprocessing using an enhanced harvard architecture

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3323824A1 (en) * 1983-07-01 1985-01-03 Siemens AG, 1000 Berlin und 8000 München PROGRAMMABLE CONTROL
US5416914A (en) * 1991-08-09 1995-05-16 Storage Technology Corporation Management of removable media for multiple device types
US5506986A (en) * 1992-07-14 1996-04-09 Electronic Data Systems Corporation Media management system using historical data to access data sets from a plurality of data storage devices
US6154817A (en) * 1996-12-16 2000-11-28 Cheyenne Software International Sales Corp. Device and method for managing storage media
TW368626B (en) * 1998-04-17 1999-09-01 Winbond Electronics Corp Microprocessor with self-programmed embedded flash memory and programming method
JP3943277B2 (en) * 1999-03-23 2007-07-11 セイコーエプソン株式会社 Microcomputer and electronic equipment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0697663A2 (en) * 1994-08-10 1996-02-21 AT&T Corp. Apparatus and method for computerprocessing using an enhanced harvard architecture

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO02069163A1 *

Also Published As

Publication number Publication date
FR2821456A1 (en) 2002-08-30
WO2002069163A1 (en) 2002-09-06
US7120760B2 (en) 2006-10-10
FR2821456B1 (en) 2003-06-20
JP4121373B2 (en) 2008-07-23
JP2004528633A (en) 2004-09-16
US20040073762A1 (en) 2004-04-15

Similar Documents

Publication Publication Date Title
EP0733245B1 (en) Memory card and operation method
FR2588980A1 (en) DIGITAL SIGNAL PROCESSING PROCESSOR COMPRISING SEVERAL MULTIPLIERS
FR2539528A1 (en) MICROPROCESSOR SYSTEM COMPRISING TWO PROCESSORS
FR2672709A1 (en) Command status machine
WO1990007185A1 (en) Data processing device comprising a non-volatile, electrically erasable and reprogrammable memory
FR2609175A1 (en) Integrated circuit card and system for checking that the card is functioning correctly
FR2522232A1 (en) DEVICE FOR PROCESSING DIGITAL SIGNALS
EP0683454B1 (en) Method for testing program flow
FR2606530A1 (en) INTEGRATED CIRCUIT FOR MEMORIZING AND PROCESSING CONFIDENTIALLY INFORMATION WITH AN ANTI-FRAUD DEVICE
FR2509492A1 (en) MEMORY ACCESS CONTROL APPARATUS FOR MICROCALCULATOR
FR2583904A1 (en) MULTIPLE DATA TRAIN AND SINGLE INSTRUCTION (SIMD) TYPE COMPUTER SYSTEM WITH SELECTIVE DATA PROCESSING
EP1364294A1 (en) Harvard architecture microprocessor having a linear addressable space
FR2595474A1 (en) DEVICE FOR CHECKING AND VERIFYING THE OPERATION OF INTERNAL BLOCKS IN AN INTEGRATED CIRCUIT
FR2849228A1 (en) Data transfer device for linking two asynchronous systems communicating via a FIFO buffer memory, each system having a pointing register with associated primary and secondary phantom registers
EP1489517A2 (en) Protection of a program waiting for execution in memory used by a microprocessor
EP3637266A1 (en) Method for accessing a memory
FR2744539A1 (en) Increasing number of inputs to microprocessor-based controller
EP1020800B1 (en) Microprocessor comprising protection circuits for securing access to its registers
EP1632863B1 (en) Programmable device for a command interface.
FR2600794A1 (en) SYSTEM FOR CONTROLLING ARITHMETIC OPERATIONS ON POLYNOMIAL VECTORS
EP0683455B1 (en) Microcomputer with integrated breakpoint circuit triggered by combined events
FR2513778A1 (en) COMPUTER DEVICE AND METHOD
FR2719939A1 (en) Electrically programmable non-volatile memory with control interface
EP1202181A1 (en) Access control to an integrated memory with a microprocessor
FR2523746A1 (en) DEVICE ASSOCIATED WITH A COMPUTER FOR CONTROLLING DATA TRANSFERS BETWEEN A DATA ACQUISITION SYSTEM AND AN ASSEMBLY COMPRISING A RECORDING AND READING APPARATUS

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030820

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

17Q First examination report despatched

Effective date: 20090302

APBK Appeal reference recorded

Free format text: ORIGINAL CODE: EPIDOSNREFNE

APBN Date of receipt of notice of appeal recorded

Free format text: ORIGINAL CODE: EPIDOSNNOA2E

APBR Date of receipt of statement of grounds of appeal recorded

Free format text: ORIGINAL CODE: EPIDOSNNOA3E

APAF Appeal reference modified

Free format text: ORIGINAL CODE: EPIDOSCREFNE

APBT Appeal procedure closed

Free format text: ORIGINAL CODE: EPIDOSNNOA9E

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20120901