WO1996008767A2 - Microcontroller system with a multiple-register stacking instruction - Google Patents
Microcontroller system with a multiple-register stacking instruction Download PDFInfo
- Publication number
- WO1996008767A2 WO1996008767A2 PCT/IB1995/000677 IB9500677W WO9608767A2 WO 1996008767 A2 WO1996008767 A2 WO 1996008767A2 IB 9500677 W IB9500677 W IB 9500677W WO 9608767 A2 WO9608767 A2 WO 9608767A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- die
- register
- stack
- registers
- address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Definitions
- the present invention relates to a microcontroller comprising a multitude of registers and having at its disposal a stack memory.
- the microcontroller is operative to effect a transfer of data between the registers and the stack memory under control of an instruction.
- microcontroller in which multiple procedures or subroutines are performed, frequently requires the transfer of data between a general-purpose register and a stack memory of the microcontroller. This frequently performed operation and the instructions associated with the operation need to be fast and efficient in use of memory space. Conventional push/pop register instructions allow the data for a single register to be moved between the register and stack.
- the microcontroller includes several general- purpose registers the operation of transferring between the plural registers and the stack requires plural instructions, each requiring memory space and a complete instruction execution cycle.
- the microcontroller as specified in the preamble and characterized in that the instruction comprises an indication of a plurality of respective ones of the registers involved in the transfer, and in that the microcontroller comprises an address generator responsive to the indication and operative to generate a plurality of respective addresses for the respective ones of the registers.
- the microcontroller system performs a transfer of data between plural general-purpose registers and a stack in a single instruction cycle.
- the address generator automatically generates addresses only for the registers designated in the instruction. Each time an address is generated the stack pointer is updated to point to the next location in the stack.
- Figures 1A and IB depict a format of a push register list instruction according to d e present invention
- Figures 2A and 2B depict a format of a pop register list instruction according to the present invention
- Figure 3 illustrates the hardware architecture of the present invention
- Figure 4 depicts a register address generation circuit 90
- Figures 5-8 show organization of microcontroller memory space according to the present invention
- Figures 9 and 10 depict stack operations; Figure 11 illustrates a segment register; and
- Figures 12 and 13 are flow charts of the microcode program controlled steps of the push/pop register list instructions.
- the present invention includes push and pop instructions having mnemonics of PUSH Rlist, PUSHU Rlist, POP Rlist and POPU Rust.
- PUSH indicates the operation of pushing data onto a stack.
- POP indicates the operation of popping data off a stack.
- the suffix "U" indicates that a user stack rather than the current stack is involved.
- Rlist is a list of general-purpose registers, preferably up to eight, which include or will include the transferred data. These instructions allow data to be transferred between any combination of the registers and the current stack or the user stack.
- the push instruction pushes the contents of the specified registers onto the stack and the pop instruction pops the data for the registers off the stack and loads the registers.
- Each instruction includes a first byte 4, which includes an operation code (opcode) represented by bits at locations seven, five, four two, one and zero, a bit (H/L) 5 at location six indicating whether the upper or lower half of the register file is involved, and a data size (DS) bit 6 at location three indicating whether a word transfer or a byte transfer is to occur.
- the second byte 7 of the instruction is a binary list of the registers involved in the transfer. For example, the 00000010 list indicates general purpose register number one (Rl) is involved in the transfer and 01000010 indicates registers R6 and Rl are involved in the transfer.
- the encoded formats of the corresponding pop instruction 8 and pop user instruction 9 are illustrated in Figures 2A and 2B. These instructions include the same fields as the instructions of Figures 1A and IB.
- This system 10 includes a single chip microcontroller 12 that performs 16 bit arithmetic operations and includes internal instruction and data storage.
- the microcontroller 12 supports external devices 14 and 16 and, through 24 bit external address capability, supports sixteen megabytes of external instruction storage 18 and sixteen megabytes of external data storage 20.
- the microcontroller 12 includes a bus interface unit 22 which communicates with the external memories 18 and 20 over an external bi-directional address and data bus 24.
- the microcontroller 12 communicates with the external devices 14 and 16 through I/O ports 26 - 28 which are addressable as special function registers (SFR) 40.
- SFR special function registers
- the ports 26-28 as well as other special function registers are addressable over an internal peripheral bus 42 through the bus interface unit 22.
- the data memory 20 can also be accessed as off-chip memory mapped I/O through the I/O ports 26 - 28.
- the on-chip special function registers 40 also include a program status word (PS W) register 44 coupled to an interruption control unit 84 communicating with the external devices as well as the ALU the execution unit 70 and decoder unit 74 for flag and general control, an interrupt register 46, timer registers 50 and a system configuration register (SCR) 54 containing system configuration bits.
- PS W program status word
- SCR system configuration register
- the program status word register is addressable over the peripheral bus 42 for general register operations and is also addressable over a connection to the internal bus 86 for other execution related operations.
- the bus interface unit 22 isolates the peripheral special function registers 40 from the microcontroller core 60.
- the core 60 includes a microcode programmable execution unit 70 which controls execution of instructions by an ALU 72 and the other units.
- the instructions decoded by a decoder unit 74 are fetched from an internal EPROM 76, which is part of the instruction memory space, or from the external instruction memory 18 by a fetch unit 78.
- Static RAM 80 is available for data storage and is also part of the data memory space.
- the general-purpose registers R0- R7 are found in a register file 82 and are also available for instruction and data storage.
- the execution unit 70 includes a special address generation circuit 90, as illustrated in Figure 4.
- This circuit 90 generates a memory address for each register content to be transferred, based on the list of registers found in the second byte 7 of the instruction. Each time a register address is generated, the microcontroller 12 also increments/decrements, as appropriate, a stack pointer (SP) through the ALU 72, either the current stack pointer or the user stack pointer.
- SP stack pointer
- the address generation circuit 90 receives from the execution unit 70 the necessary start (EX STX) control signal and other control signals designated with prefix "EX”, and from the decoder unit 74 the control signals designated with prefix "DC”.
- the execution unit 70 causes a register 92 to be set at the following rising clock edge. This allows the initial register list, from the second byte 7 of the instruction carried by die signal DC.DATA1, to be passed to a priority encoder 94 through an eight-bit wide AND-circuit 96.
- the priority encoder 94 searches for the first bit set on the list that indicates die first register and d e register address is encoded by an address encoder 98 using the high/low and size signals from the decoder unit 74.
- the search direction from the left or right, in byte 7 depends on the opcode received from the decoder unit 74.
- the order of search is from the most significant bit to the least significant bit for PUSH, but in the opposite direction for POP.
- the output address is then sent to the register file 82 for register addressing.
- the information of the bit position for the first register is fed back through the circuit 100 and stored in the register 92.
- the purpose of this register 92 is to save the bit positions of the registers that have already been accessed.
- the register 92 output is enabled when die signal EX.REGMUX from the execution unit 70 is asserted.
- the first register bit on die list will be cleared and die second register bit becomes the first bit set on the list.
- the register 92 contents is again selected by die priority encoder 94 and encoded by d e address encoder 98 and sent to address the register file 82.
- the new selected bit position is fed back and stored in the register 92.
- both d e first and second set bits on die list will be cleared by die register 92 output.
- the third register bit is then ready to be selected. This cyclic operation continues until all the registers on the list are accessed.
- a signal RLEOI which indicates the end of this instruction, is generated when d e circuit 94 detects that there is only one bit set on the remaining list and die current cycle is the next to the last cycle as indicated by die signal EX_IB_REG from the execution unit 70.
- the generation of RLEOI is further qualified by two signals: PUSHPOPRL and SQUELCH.
- the signal PUSHPOPRL from the decoder unit 94 indicates die current instruction is the PUSH/POP Rlist instruction. The purpose of this signal is to prevent RLEOI from being generated during anotiier instruction.
- the signal SQUELCH indicates that the execution unit 70 is in a wait state, and is used to stall the instruction and properly resume operation at the end of die wait state.
- the circuit of figure 4 has a long delay path from register 92 to die generation of output address by die encoder 98.
- the allowable time limit for this delay path during the POP Rlist instruction is normally one clock cycle.
- the architecture of figure 4 is sufficient for a design having an operating frequency of 20 MHz.
- a register can be placed immediately after the priority encoder 94 but before the feedback path.
- the enable signal for the register 92 is then moved to die new register.
- the delay of die address output is then only die delay of d e address encoder 98 which should be well within one clock cycle even for faster microcontrollers.
- the microcontroller 12 includes a memory organization as illustrated in figures 5, 6, 7 and 8.
- Figure 5 illustrates d e organization into pages.
- Figure 6 depicts d e organization of a page in more detail.
- Figure 7 depicts the register file in more detail and figure 8 depicts die SFR space 40.
- die microcontroller 12 has separate address spaces for instruction memory and data memory. The logical separation of program and data memory allows faster access of data memory which can be manipulated by a 16-bit ALU. All registers and on-chip memory are accessible (addressable) as bytes and/or words. Some dedicated data memory areas (SFR, RAM, and Register File) may also be accessed as bits (see figure 5).
- the term "data memory” refers to on-chip RAM 80, off-chip RAM 18 or off-chip memory mapped I/O.
- the data memory space 118 is segmented into 64K byte pages 120, accessed via indirect addressing modes (die first IK block of each page is also- directly addressable).
- 512 bytes of data memory are implemented as on-chip RAM 80, but there is no architectural limitation on die minimum or maximum data memory that may be on-chip.
- the microcontroller 12 architecture allows up to IK of direct addressing space 122 for data memory per page.
- One of die four banks is selected as the active bank by two bits in die PSW register 44.
- the selected bank appears as the general-purpose registers and these are the registers whose contents are transferred in die present invention.
- off-chip RAM 20 is mapped outside on-chip RAM 80 range, under microcode program control, any access to this address space will automatically fetch off-chip data, giving the microcontroller 12 a linear address space from 0 to 16 megabytes.
- the bottom IK bytes 122 of every data memory segment, under microcode control, is directly addressable data space.
- This addressing mode contains the low 16 bits of the data address within the instruction.
- SR segment register
- DS data segment register
- This built-in protection mechanism prevents user level code from switching between direct address spaces in different segments.
- the 32 bytes 124 of this space at addresses 20 to 3F hex form the standard bit addressable RAM space (256 bits).
- all registers are confined to the register file 82 only and do not have any memory association.
- the direct address space in native mode thus starts from address 0 in data memory.
- the microcontroller internally addresses d e registers R0-R7 using a memory address.
- the special function registers 40 which include d e segment registers used for addressing, are in the IK direct address block 139 from address 400 to 7FF hex (see figure 8).
- the first half 140 of this block is die on-chip SFR space. This area of SFRs is used to access SFR mapped registers, and control and data registers for on-chip peripherals and I/Os.
- the rest 142 is reserved for off-chip SFRs.
- the SFR 139 space is always directly addressed. Although die SFR 139 space uses die same addressing mode as the IK of directed addressed data space, it is logically a separate space and should not be thought of as overlapping the indirect data space (See figures 7 and 8).
- the lowest 64 bytes in die SFR address space are the only bit addressable SFR locations.
- the architecture supports RAM space segmentation into 256 pages each 64K size. Direct addresses are limited to IK of each page of die segmented memory.
- a 24-bit direct address is formed by DS (upper 8-bits) and a 16-bit address of this IK direct space.
- Indirect addresses are formed by d e use of a 16-bit pointer register (from die register file) appended to the 8-bit data segment (DS) register or the extra segment (ES) register. This segmentation allows for streamlining the encoding and execution of memory access instructions as well as providing simple segregation of processes running under a multi-tasking system.
- Word registers RO - R7 are also used as address pointers during indirect and indirect-offset addressing modes.
- Word register R7 is particularly used as die stack pointer, either die system stack pointer or the current user stack pointer depending on whether the microcontroller 12 is in the system mode or user mode. The stack pointer is used during the transfer between the stack and registers of the present invention.
- Memory in the system 10 is addressed in units of bytes, each byte consisting of 8-bits.
- a word is a 16-bit value, consisting of two contiguous bytes.
- the storage order for data in the microcontroller 12 is "Litde Endian" such that the lower byte of a word is stored at die lower address and die higher byte is stored at the next higher address.
- Word values are stored in RAM, registers, and word addressable SFRs with die least significant byte at the even address (die address that is specific in die code or in the pointer register) and die most significant byte at the next consecutive odd address (one greater than the address of the LSB).
- die microcontroller 12 architecture Under microcode program control it is not allowed in die microcontroller 12 architecture to place a word in memory such that its LSB is at an odd address. All 16-bit word addressable locations could be accessed as both bytes and words. It is therefore possible, for example, to increment only the low-order half, or to modify only the high-order byte of a word in data memory, by making appropriate references to their memory-mapped addresses. If a word access is made from an odd address, die access will always be from an even-boundary location which is one less than the specified odd address.
- the external bus 24 can be configured in 8 or 16-bit mode, selected during chip reset.
- all 16-bit external data accesses could be strictiy words (16-bit mode) or bytes from consecutive memory locations (8-bit mode).
- An external word fetch in 8-bit mode results in 2 separate byte accesses (the result is d e same in a single word access if the data is on-chip).
- the microcontroller 12 includes a number of different addressing modes.
- the basic addressing modes include a register mode which addresses die register file only.
- a direct addressing mode is included where the entire data address is included widiin the instruction. This mode can address die bottom IK of data memory in each data segment (DS) (which includes RO through R7 of all 4 banks of d e register file on segment 0).
- the 24-bit address includes 8-bits of d e DS register (MSB) and a 16-bit address from die IK direct address range in any page.
- a SFR addressing mode addresses die IK SFR space. Although encoded into the same instruction field as the direct addressing described above, this is actually a separate space.
- An indirect-offset addressing mode uses die sum of an address register and an immediate offset value as die effective address of d e operand.
- the offset can be either an 8-bit signed value witii a range of +127 to -128 bytes, or a 16-bit signed value witii a range of +32767 to -32768 bytes. This potentially provides access to an entire data segment witii this mode.
- die immediate addressing mode a constant value is stored within the instruction. Depending on die instruction accessed, die value may be 4-bits, 8-bits, or 16-bits in size.
- the stack 150 as illustrated figures 9 and 10 grows downward from high to low addresses.
- the microcontroller 12 architecture supports a UFO (last-in-first-out) stack.
- the stack pointer SP
- the stack pointer SP
- the stack pointer SP
- the stack pointer points to die last word pushed onto the stack.
- die stack pointer is decremented prior to writing to memory.
- the stack pointer is incremented after the data is read from memory. Since the microcontroller 12 stores data in die memory MSB first, the stack pointer always points to die LSB of a word written onto the stack.
- Stack operations are facilitated by die two stack pointers, a user stack pointer (USP) and a system stack pointer (SSP) located in the registers of register file 82.
- the 16-bit stack pointers are customary top- of-stack pointers, addressing die uppermost datum on die push-down stack. It is referenced implicidy by push and pop operations, such as in the invention, as well as subroutine calls, and interrupt operations.
- the stack is always word aligned.
- This stack alignment thus ensures that all stack operations are on word boundaries (an even address), eliminating alignment issues and reducing die interrupt latency time during pushes and pops as well as for other 16-bit or larger stack operations.
- a push or pop stack operation does not update any status flag in the PSW.
- the user stack pointer (USP) register may be written as well as read using its register address, and by doing so die user stack may be placed anywhere in the segment where the stack resides.
- this is always page 0 (a 16-bit address only), while the user stack space is identified by die data segment (DS) register.
- the stack may be as deep as the available memory on its memory page permits.
- the bottom limit of the stack in all pages is set to address 80 hex, i.e a microcode program controlled stack overflow trap occurs at that address.
- there is an extra 64 byte space below this stack bottom limit out of which 22 bytes could be reserved to accommodate die worst case scenario of having 16 bytes for a multiple register (RO-R15) PUSH and an additional 6 bytes to store the stack frame for the overflow trap.
- the SP is always initialized to 100 hex, i.e., one byte above minimum on-chip RAM space (256 bytes). Since SP is pre-decremented prior to a push, die word-aligned stack grows from FE downwards.
- the microcontroller provides a two-level user/supervisor protection mechanism. These are the user or application mode and d e system or supervisor mode. In a multitasking environment, tasks in a supervisor level are protected from tasks in the application level. As noted previously, the microcontroller has two stack pointers (in the register file) called d e system stack pointer (SSP) and die user stack pointer (USP). In multitasking systems one stack pointer is used for the supervisory system and another for the currently active task. This helps in the protection mechanism by providing isolation of system software from user applications.
- SSP system stack pointer
- USB die user stack pointer
- die size of the user stack for a particular application exceeds die space available in die on-chip RAM 80, or on-chip RAM 80 is needed for other time-critical purposes (since on-chip RAM 80 is accessed more quickly than off-chip memory 20), the user stack can be put off-chip and die interrupt stack (using die System SP) may be put in on-chip RAM 80.
- the system stack is always forced to data memory segment 0 (the first 64K bytes of data memory), while the user stack is located on die segment chosen by the DS (data segment) register.
- the two stack pointers share the same register address.
- the stack pointer that will be used at any given time, and that will "appear" in the register file, is determined by die system mode bit (SM) in die program status word (PSW) register 44.
- SM die system mode bit
- PSW die program status word
- the microcontroller 12 stack is automatically set via microcode program control to use the user stack pointer (USP) whenever code is executing in die user mode and die system stack pointer (SSP) when code is executing in the system mode. Shadowing d e two SPs allows the same procedures to run in both system and user modes, as in a compiler run-time package.
- the microcontroller 12 begins operation after reset in the system mode using the system stack for pushes, pops, subroutine return addresses, and interrupt return addresses.
- a program may set up die USP and activate a routine that runs in tiiat mode.
- all pushes, pops, and subroutine return addresses use die application or user stack. Interrupts, however, will always use the system stack.
- a user mode program cannot modify the system stack pointer (SSP) and the data segment (DS) register, but can only read diem. However, both read and write on the extra segment register (ES) is allowed in die user mode.
- SSP system stack pointer
- DS data segment
- ES extra segment register
- a user mode program has to call a system mode routine via a TRAP instruction, or signal the system code in some other fashion.
- a system mode routine can manipulate die segment register (or not, if it decides that the application code should not have access to that area) and return to die application code. In this manner, application code tasks may be easily limited to using certain areas of the total data space.
- System mode code can use die user stack by copying the user stack pointer (USP) to anotiier pointer register and access d e user stack through die data segment register (DS), or the system mode code can use die PUSHU and POPU instructions to directly access die user stack.
- USP user stack pointer
- DS die data segment register
- the system program can prepare the user stack for a task, or easily access parameters on die user stack when it is called by a TRAP instruction for some system service.
- Complete programs generally consist of many different modules or segments. However, at any given time during program execution, only a small subset of a program's segments are actually in use. Generally, this subset will include code and data.
- the microcontroller 12 architecture takes advantage of this by providing mechanisms to support direct access to die working set of a program's execution environment and access to additional segments on demand. At any given instant, two segments of memory are immediately accessible to an executing program. These are the data segment, where the stack and local variables reside, and die extra segment, which may be used to read remote data structures. Restricting die addressability of a software modules helps gaining complete control of system resources for efficient, reliable operation in a multi-tasking environment.
- a current working data segment 160 in the microcontroller includes a 16-bit address (pointer) 162 and an 8-bit segment 164 as illustrated in figure 11.
- the 8-bit segment registers DS or ES holds d e offset which is used to identify tins current segment.
- segment registers are used as extension to 16-bit pointer registers and stack pointers to allow data to be accessed through the entire 16 megabyte address range.
- a "byte" register in the SFR space contains bits that are associated witii each of the seven general-purpose pointer registers (i.e not the SP) that selects neidier DS or ES as die source for the most significant 8-bit for the 24-bit address. This register is called d e segment select register 166 or SSEL (see figure 11).
- the power-on state of the SSEL bits is reset, i.e, it defaults to die DS register.
- the stack pointer does not have a bit in SSEL 166 to determine its segment because it is always segment 0 in system mode and DS in user mode. This is true regardless of die mediod of access (e.g. PUSH, POP, or indirect register addressing). Segment registers are not automatically incremented or decremented along witii their associated pointer registers, but must be altered explicitly by instructions. Writes to the data segment register (manipulating die offset in DS) and writes through die extra segment register (manipulating the memory pointed to by ES:Rn) are programmably controlled.
- the fetched data is then stored 210 at die stack pointer address. If die end of register transfer signal has issued, die transfer is complete 212 and d e output of die ALU 72 is stored 214 back in die stack pointer register R7, ending die push register list instruction execution. If not die cycle continues with die register address generation circuit 90 generating addresses only for the registers involved in die transfer. That is, if only two registers are involved in the transfer die loop of figure 12 is only executed twice. In this way the transfer finishes at die earliest possible point and within a single cycle of the push register list instruction.
- the operations for performing d e pop register list instruction are illustrated in figure 13. The operation begins with loading 220 die ALU 72 with the stack pointer (SP).
- the stack address is then generated 222 followed by generation 224 of the register address.
- the data to be moved is then fetched 226 from the stack and stored 228 in the designated register.
- the contents (SP) of the ALU 72 are incremented 230 and a determination 232 is made as to whether the end of die list has been reached. If not, d e cycle continues and if so die stack pointer is stored 234.
- the instructions of the present invention conserves on memory space compared to die prior art and performs multiple register stack operations faster than the prior art.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30804994A | 1994-09-16 | 1994-09-16 | |
US08/308,049 | 1994-09-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO1996008767A2 true WO1996008767A2 (en) | 1996-03-21 |
WO1996008767A3 WO1996008767A3 (en) | 1996-05-30 |
Family
ID=23192319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/IB1995/000677 WO1996008767A2 (en) | 1994-09-16 | 1995-08-22 | Microcontroller system with a multiple-register stacking instruction |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO1996008767A2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0764900A2 (en) * | 1995-09-22 | 1997-03-26 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus for realizing data transfer to/from a plurality of registers using instructions of short word length |
EP0809180A2 (en) * | 1996-05-22 | 1997-11-26 | Seiko Epson Corporation | Data processing circuit, microcomputer, and electronic equipment |
GB2321984A (en) * | 1996-12-16 | 1998-08-12 | Ibm | Processing a multiple-register instruction |
EP1089165A2 (en) * | 1999-10-01 | 2001-04-04 | Hitachi, Ltd. | A floating point instruction set architecture and implementation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3614741A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with instruction addresses identifying one of a plurality of registers including the program counter |
US4334269A (en) * | 1978-11-20 | 1982-06-08 | Panafacom Limited | Data processing system having an integrated stack and register machine architecture |
-
1995
- 1995-08-22 WO PCT/IB1995/000677 patent/WO1996008767A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3614741A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with instruction addresses identifying one of a plurality of registers including the program counter |
US4334269A (en) * | 1978-11-20 | 1982-06-08 | Panafacom Limited | Data processing system having an integrated stack and register machine architecture |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0764900A2 (en) * | 1995-09-22 | 1997-03-26 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus for realizing data transfer to/from a plurality of registers using instructions of short word length |
EP0764900A3 (en) * | 1995-09-22 | 2002-11-06 | Matsushita Electric Industrial Co., Ltd. | Information processing apparatus for realizing data transfer to/from a plurality of registers using instructions of short word length |
EP0809180A2 (en) * | 1996-05-22 | 1997-11-26 | Seiko Epson Corporation | Data processing circuit, microcomputer, and electronic equipment |
EP0809180A3 (en) * | 1996-05-22 | 1999-01-07 | Seiko Epson Corporation | Data processing circuit, microcomputer, and electronic equipment |
US6560692B1 (en) | 1996-05-22 | 2003-05-06 | Seiko Epson Corporation | Data processing circuit, microcomputer, and electronic equipment |
GB2321984A (en) * | 1996-12-16 | 1998-08-12 | Ibm | Processing a multiple-register instruction |
US5913054A (en) * | 1996-12-16 | 1999-06-15 | International Business Machines Corporation | Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle |
EP1089165A2 (en) * | 1999-10-01 | 2001-04-04 | Hitachi, Ltd. | A floating point instruction set architecture and implementation |
EP1089165A3 (en) * | 1999-10-01 | 2004-10-20 | Hitachi, Ltd. | A floating point instruction set architecture and implementation |
Also Published As
Publication number | Publication date |
---|---|
WO1996008767A3 (en) | 1996-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5887189A (en) | Microcontroller system for performing operations of multiple microcontrollers | |
US4777588A (en) | General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance | |
US4586130A (en) | Central processing unit for a digital computer | |
US5043870A (en) | Computer with automatic mapping of memory contents into machine registers during program execution | |
US5249280A (en) | Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory | |
CA2090194A1 (en) | Method and system for avoiding selector loads | |
CA1172375A (en) | Program call method | |
EP0729605B1 (en) | Processing system with word-aligned branch target | |
KR100682635B1 (en) | Microprocessor Including Multiple Register Files Occupying The Same Logical Space | |
US6564283B1 (en) | Data processing system for expanded addresses | |
GB2024475A (en) | Memory access controller | |
KR19990037572A (en) | Design of Processor Architecture with Multiple Sources Supplying Bank Address Values and Its Design Method | |
KR19990036893A (en) | Processor Architecture for Execution of Multiple Addressing Modes and Its Design Method | |
US4812971A (en) | Central processing unit for a digital computer | |
US4893235A (en) | Central processing unit for a digital computer | |
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
WO1996008767A2 (en) | Microcontroller system with a multiple-register stacking instruction | |
US6012128A (en) | Microcontroller having a page address mode | |
EP0101718B1 (en) | Computer with automatic mapping of memory contents into machine registers | |
US6321319B2 (en) | Computer system for allowing a two word jump instruction to be executed in the same number of cycles as a single word jump instruction | |
Quammen et al. | Register window management for a real-time multitasking RISC | |
JPS6032220B2 (en) | information processing equipment | |
AU632542B2 (en) | Ring reduction logic mechanism | |
WO1996008948A2 (en) | Method and apparatus for fast microcontroller context switching | |
CA1250666A (en) | Central processing unit for a digital computer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1995927072 Country of ref document: EP |
|
AK | Designated states |
Kind code of ref document: A3 Designated state(s): JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1995927072 Country of ref document: EP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |