US5426769A - System and method for producing input/output expansion for single chip microcomputers - Google Patents
System and method for producing input/output expansion for single chip microcomputers Download PDFInfo
- Publication number
- US5426769A US5426769A US08/112,847 US11284793A US5426769A US 5426769 A US5426769 A US 5426769A US 11284793 A US11284793 A US 11284793A US 5426769 A US5426769 A US 5426769A
- Authority
- US
- United States
- Prior art keywords
- microcontroller
- sfr
- address
- instruction
- external
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
- G06F13/4226—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30145—Instruction analysis, e.g. decoding, instruction word fields
Definitions
- the present invention relates generally to microcomputer architecture and to a system and method for producing input/output expansion for single-chip microcomputers. More particularly, the present invention relates to a system for permitting addressable peripheral functions associated with dedicated internal addresses of a microcontroller to exist physically external to a microcontroller and yet interface to the program being executed by the microcontroller as if they were internal to the microcontroller.
- ROM Read Only Memory
- RAM Random Access Memory
- CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- CPU Central Processing Unit
- I/O Input/Output
- Microcontrollers also often include on-chip peripheral functions such as timers, counters, serial or parallel communication channels, A/D converters, and D/A converters.
- on-chip peripheral functions such as timers, counters, serial or parallel communication channels, A/D converters, and D/A converters.
- Representative examples of microcontrollers described above are the well-known 68HC11 (manufactured by Motorola Corp.) and the 8051 family of microcontrollers (manufactured by Intel Corporation of Santa Clara, Calif., Signetics Corporation of Sunnyvale, Calif. (Signetics is also known as Phillips Semiconductor), and others).
- the 8052 microcontroller a member of the 8051 microcontroller family, includes in addition to a CPU, a 256 byte RAM, an 8192 byte ROM, an interrupt controller, a full duplex Universal Asynchronous Receiver/Transmitter (UART), three 16 bit timer/counters, and four 8 bit general purpose I/O ports.
- FIG. 1 is a block diagram showing the architecture of the 8051.
- the 8051 family uses what is called a Harvard architecture. That is, program code memory and data memory are separated into different address spaces. The 8051 family further distinguishes between internal data memory and external data memory.
- a map of internal data memory is shown in FIG. 2. The three portions of internal data memory are called the lower 128, the upper 128, and the SFR space. The SFR space can only be accessed directly, and any access to an SFR includes always having the SFR address on the instructions bus.
- Internal data memory addresses are eight bits wide which generally implies an address space of 256 locations.
- SFRs include the PORT latches, timers, peripheral controls and so on.
- Microcontroller peripheral functions are typically controlled by accesses to (i.e., read and or write transactions with) a set of on-chip registers that provide control bits, flags and data transfer between the peripheral function and the on-chip CPU.
- These peripheral function control registers are typically dedicated internal addresses. They are designed that way to optimize performance.
- the dedicated internal addresses used to access the peripheral functions are called Special Function Registers (SFRs). Transactions with SFRs (i.e., reading from and writing to SFRs) are done completely internal to 8051 family microcontroller chips, with no external visibility. As shown in FIG. 2, the 8051 family architecture provides 128 dedicated internal addresses which are set aside for SFRs.
- additional peripheral functions are typically added to the system in order to customize it. These additional peripheral functions are, of necessity added external to the microcontroller. If the microcontroller used in the system is an 8051 microcontroller, it is currently impossible to access these external peripheral functions using the high performance SFR access method. Instead, the external peripheral functions are required to be mapped to the External Data Memory space. Accessing the External Data Memory space is slow and cumbersome as compared to accessing the SFR space.
- Watkins, et al. shows the addition of a dedicated port to a microcontroller in order to effectively couple a corresponding external memory or peripheral control register to the internal bus of the microcontroller. More specifically, Watkins, et al., appear to teach adding a register, register address decoding logic, port pads and input/output buffers to the same substrate on which the microcontroller is formed. This dedicated port would then be coupled to an external dedicated logic block. However, not only does this approach require additional pins on the microcontroller and a special package to accommodate those pins, more importantly this approach requires a customized chip. This method also seems to be limited because over 800 additional pins would be required to implement the full set of available SFR addresses, and such packaging either does not exist or is too expensive to implement for a low-cost microcontroller system.
- ASIC design methodology can reduce the time to market for an IC, but the tradeoff is generally a less efficient logic and layout design than could have been achieved by skilled human IC designers. Although quick time to market is very important in this industry, a particularly troubling aspect of this design approach is the large chip size which results since manufacturing yield is inversely proportional to chip size. Also, it is difficult and time-consuming to simulate a large, complex design with currently existing software simulation tools.
- microcontrollers of the type discussed herein are typically found in embedded applications. That is, unlike a computer system designed to communicate with a user, these microcontrollers often form a substantial part of a low-cost control system which does not have facilities for communicating with a user. This tends to make the debugging portion of a product development cycle more difficult.
- One solution created to address this problem is the in-circuit emulator (ICE).
- the ICE is typically comprised of hardware and software. The ICE permits the development engineer to monitor and analyze the activity of a microcontroller as it operates in a target system. Unfortunately, some of the commercially available microcontrollers do not provide a straightforward way to access data and signals that exist internal to the microcontroller.
- microcontroller manufacturers responded by providing a special, more costly to produce, version of the microcontroller called a bond-out chip.
- the bond-out chip contained extra bonding pads, buffers, and signal interconnect, and typically required a different package.
- the bond-out chips can be used in an ICE so that activity internal to the microcontroller is easy to monitor.
- a lower cost solution to the problem of observing internal activity of the microcontroller involves using a standard microcontroller, (i.e., not a bond-out chip) and recreating, external to the microcontroller, some of its I/O ports and registers.
- a standard microcontroller i.e., not a bond-out chip
- recreating external to the microcontroller, some of its I/O ports and registers.
- recreation of, for example, PORT0 and PORT2 for emulation of 8051 family microcontrollers has conventionally required a substantial amount of circuitry.
- circuitry used in supporting emulation of single-chip microcontrollers see U.S. Pat. No. 4,939,637 issued to Pawloski, and incorporated herein by reference as if fully set forth below.
- What is needed is a system and method for treating memory and/or peripheral device control registers which are not integrated onto a single-chip microcomputer as if they were part of the internal address space. In this way read/write transactions with physically external memory and peripheral control registers can be accomplished with greater speed and higher code density.
- What is further needed is a system and method for expanding the amount of data memory that can be used by a microcontroller.
- What is still needed is a system and method for supporting emulation of single-chip microcontrollers.
- What is still further needed is a system and method for supporting low-cost, fast prototyping of ASIC microcontrollers.
- the present invention provides a system and method for expanding memory, I/O capabilities, and peripheral functionality of 8051 architecture computer systems.
- the system or the present invention contemplates three major blocks.
- the first block is a microcontroller 302 having a slightly modified 8051 architecture.
- the second block is an expansion decoder 364, and fie third block is made up a family of expansion devices 306-314 for use in conjunction with the modified 8051 microcontroller 302 and expansion decoder 304.
- microcontroller 302 having an 8051 architecture is modified such that it can efficiently interface and interact with the above-noted expansion decoder and expansion devices.
- These modifications include changing the functionality of the EA line 320 so that the state of this signal is latched during reset of microcontroller 302.
- a latch 404 is provided this purpose. This internally latched value is used to determine whether to operate in ROM or ROMless mode.
- EA operates as a bi-directional control pin that, as an output indicates whether the current bus cycle is an instruction fetch, and, as an input, specifies that the microcontroller shall read the data present on a certain I/O port.
- a further modification is that, when operating in this enhanced mode, the data on the internal bus of microcontroller 302 is transferred to the PORT2 pins every State 6 Phase 2. In this way the internal write data stream is available to an external expansion device.
- a still further modification is to include a bit 406 within microcontroller 302 of the present invention, the state of which is indicative of whether the microcontroller shall operate in a normal ROM or ROMless mode, or in an enhanced ROM or ROMless mode.
- the microcontroller would operate as one or the 8051 family architecture microcontrollers.
- the hardware changes of the present invention cause the operation of the microcontroller to be modified as discussed in the previous paragraph.
- whether instruction are fetched from internal or external program memory does not affect the timing relationship between microcontroller 302 and expansion decoder 304. Selection of normal versus enhanced mode can be done by writing a code into the microcontroller during the reset period that is latched internally, and decoded to select the mode of operation.
- predetermined voltage levels can be applied to pins such as ALE and PSEN during the reset period. These voltage levels are decoded to determine which mode of operation has been selected. Circuits for decoding predetermined voltage levels in this way are well known to VLSI circuit designers of ordinary skill.
- a further alternative, as shown in FIG. 4A, is to provide input signals of both ALE and a port pin, e.g., P2.7, logically combine these signals, and store the result during reset into latch 406.
- Expansion decoder 304 determines whether the presently fetched instruction is one which may operate on an SFR address, and if so, it further examines and decodes the SFR address associated with the current instruction. If the SFR address is one which is physically external to the 8051, Expansion Decoder 304 produces the appropriate read and/or write control signals for accessing the external SFR. Expansion Decoder 304 may contain either a fixed or programmable table of valid external SFR addresses. External SFR addresses represent devices which provide the microcomputer system with additional peripheral functionality, increased data memory or both. By providing the means to access external devices as if they were architecturally internal devices, the present invention reduces the number of clock cycles conventionally required to access an external device in an 8051 architecture system.
- microcontroller 302 of the present invention can be run at a lower clock speed and still provide performance equivalent to a conventional microcontroller tutoring at higher speed. This ability can be used to reduced power consumption.
- An internal block diagram of the Expansion Decoder is shown in FIG. 5.
- Expansion I/O devices 306-314 refer to a family of circuits which are operable in the system of the present invention. Expansion I/O devices 306-314, although physically external to microcontroller 302, are accessed by the SFR access mechanism thereby effectuating high performance operation notwithstanding their existence being physically separate from microcontroller 302, i.e., not fabricated on the same substrate as microcontroller 302.
- An expansion I/O device 306-314 may be a low complexity circuit such as an addressable input poll 314, or an addressable output port 312.
- An expansion I/O device 306-314 may be a moderate complexity circuit such as an addressable input/output port combined with a small amount of addition logical functionality 310, or an addressable analog-to-digital or digital-to-analog converter (not shown).
- An expansion I/O device 306-314 may be a highly complex circuit such as a multi-function device containing expansion memory, timers, counters, interrupt logic and other special functions defined by a user.
- FIG. 3 shows the general architectural features of Expansion I/O device 306-314 according to the present invention.
- An advantage of the present invention is that a large number of storage locations that are physically external to the microcontroller chip can be incorporated into the dedicated internal address space.
- a further advantage is that an in-circuit emulator embodying the present invention can be realized without the use of a special bond-out microcontroller chip.
- a further advantage of the present invention is reduced power consumption that results from increased program code density.
- a further advantage of the present invention is reduced RF emissions and easier certification by the United States Federal Communications Commission of products containing the present invention. This advantage results from the fact that certain functions can be achieved more time-efficiently and therefore the microcontroller can be run at lower clock speed and still achieve a level of functionality requiring higher clock speeds from conventional microcontroller systems.
- a further advantage of the present invention is that the dedicated internal addresses provided external to the microcontroller chip can be used as the status, control and data registers of peripheral functions.
- a further advantage of the present invention is that the dedicated internal addresses provided external to the microcontroller chip can be used as the address and data registers of RAMs.
- a further advantage of the present invention is the ability to build a microcontroller in-circuit-emulator without a bond-out version of the microcontroller.
- FIG. 1 is a block diagram showing the architecture of a conventional microcontroller of the 8051 family.
- FIG. 2 is a memory map diagram of the 8051 family architecture internal data memory.
- FIG. 3 is a block diagram of a computer system embodying the present invention.
- FIGS. 4A-4B are logic diagrams showing circuitry for entering enhanced mode operation as well as for generating necessary control signals.
- FIG. 5 is an internal block diagram of the Expansion Decoder of the present invention.
- FIGS. 6A-6C show several embodiments of the external SFR address decoder.
- FIGS. 7A-7F show alternative implementations of peripheral function control signal encoding.
- FIG. 8 is an internal block diagram of an expansion memory device.
- FIG. 9 is an internal block diagram of a multifunction device that incorporates both an expansion decoder block and other functions in a single package.
- FIG. 10 is a timing diagram illustrating the operation of enhanced mode.
- FIGS. 11-13 are a hierarchical description of logic for implemeting recreated ports.
- chip, semiconductor device, integrated circuit (IC), monolithic integrated circuit, microelectronic device, and similar variants are used interchangeably herein, and microelectronic device is considered to be the broadest term, encompassing the others. Additionally, chip, microchip, and die all refer to a single piece of semiconductor material (usually silicon). With respect to these microelectronic devices, signals are coupled between them and other circuit elements via physical, electrically conductive connections. The point of connection is sometimes referred to as an input, output, terminal, line, pin, pad, port, interface, or similar variants and combinations. Those of ordinary skill in this field will recognize these terms, variants and equivalents.
- byte is used, as is conventional in this field, to mean eight bits.
- ASIC Application Specific Integrated Circuit.
- ASIC has come to mean an integrated circuit whose function is particularly designed to meet a customer's application, and more particularly it has come to mean an IC design approach which obviates full custom (i.e., handcrafted) integrated circuit design.
- Typical examples of ASIC design include logic synthesis software in combination with routing software for specifying the interconnection of gates in a gate array, or the selection and interconnection of logic cells from a cell library.
- single-chip microcomputer, microcontroller, embedded controller, embedded processor and similar variants are often used interchangeably in this field and are generally meant to include single-chip digital data processing devices such as those exemplified by the 8051 family of microcontrollers. More particularly, and depending on context, the term 8051 can be used either to refer to the whole family of microcontrollers that execute the well-known 8051 instruction set, regardless of manufacturer, memory size, number and type of peripheral functions, or the size and form of package; or it can be used specifically for a particular instance of the 8051 family. The term 8051 is used herein to refer to all family members that execute the 8051 instruction set.
- peripheral function refers to circuits, or devices, that have functions usually considered peripheral to those of the CPU in a computer system.
- a Universal Asynchronous Receiver/Transmitter (UART) a Direct Memory Access (DMA) controller, a Counter/Timer, or other such devices are typically referred to as peripheral devices, or peripheral functions (or sometimes as peripheral function devices).
- peripheral devices typically have registers which are read and/or write accessible by the CPU (i.e., microprocessor or microcontroller) of the system.
- the aforementioned registers are used within the peripheral devices to hold data for command, mode, status, data reception, data transmission, and similar functions.
- the CPU communicates with peripheral devices by reading and writing the peripheral device registers.
- the term Special Function Register (SFR) is often used interchangeably with peripheral function
- Expansion I/O port Expansion I/O device
- peripheral function peripheral function
- SFR address SFR address
- a computer whether a large or small system, a microprocessor or a microcontroller, is often referred to, in this field, as a machine.
- the "state of the machine” generally refers to the logical state of the computer as manifested by the state of substantially all the storage bits therein.
- both complete computer systems and CPUs are sometimes referred to broadly as programmed data processors.
- programmed data processor is used herein to encompass all manner of computing, or data processing, elements such as microprocessors, microcomputers, and any functionally equivalent device or system.
- Enhanced mode is used herein to refer to a mode of operation of the microcontroller of the present invention.
- the instruction stream and internal write data stream are available for external examination, and the EA signal pin becomes a bi-directional control signal pin.
- Positive logic is used in the description of the logical circuits and operation of the present invention.
- signals are inactive (or deasserted) when they are in a low state, and active (asserted) when they are in a high state.
- a signal name used herein is preceded by a slash (/)
- that signal is low active, that is, asserted when in a low state, and deasserted when in a high state.
- an internal clock generator defines the sequence of states that make up the machine cycle.
- a machine cycle consists of a sequence of 6 states, referred to as S1 through S6. Each state time lasts for two oscillator periods. Thus a machine cycle takes 12 oscillator periods or 1 microsecond if the oscillator frequency is 12 MHz.
- Each state is divided into two halves, a Phase 1 and a Phase 2, respectively referred to as P1 and P2. Normally two program fetches are generated during each machine cycle, even if the instruction being executed does not require it. If the instruction being executed does not require more code bytes, the CPU simply ignores the extra fetch, and the Program Counter is not incremented.
- Execution of a one-cycle instruction begins during State 1 of the machine cycle, when the opcode is latched into the instruction register. A second fetch occurs during S4 of the same machine cycle. Execution is complete at the end of S6 of this machine cycle.
- the MOVX instruction takes two machine cycles to execute. No program fetch is generated during the second cycle of a MOVX instruction. This is the only time program fetches are skipped.
- the fetch/execute sequences are the same whether the Program Memory is internal or external to the chip. Execution times do not depend on whether the program memory is internal or external. If program memory is external the signal /PSEN is normally asserted twice per machine cycle (i.e., all of S3 and the first half of S4, and all of S6 and the first half of S1).
- Internal data address is on the internal bus (IB) during S4P2. Internal read data is on the IB during S5P2. Internal write data is on the IB during S6P2.
- EA gated S5P2 is used for external SFR read data.
- the 8051 family uses what is called a Harvard architecture. That is, program code memory and data memory are separated into different address spaces. The 8051 family further distinguishes between internal data memory and external data memory.
- a map of internal data memory is shown in FIG. 2. The three portions of internal data memory are called the lower 128, the upper 128, and the SFR space.
- the SFR space can only be accessed directly, and any access, to an SFR includes always having the SFR address on the instructions bus.
- Internal data memory addresses are eight bits wide which generally implies an address space of 256 locations.
- SFRs include, but are not limited to, PORT latches, timers, peripheral controls and the like.
- the present invention having a modified 8051 architecture microcontroller 302, an external Expansion Decoder 304, and at least one external Expansion I/O Device 366-314, allows the addresses of SFRs to be mapped externally from microcontroller 302 and also allows them to be accessed as if they were on-chip.
- the external Expansion I/O Devices are also referred to herein as Expansion I/O Ports.
- an 8051 family member part like the 80C451, which uses 23 out of 128 SFR addresses would be able to directly access up to 105 (i.e., 128-23) expansion I/O ports.
- the first major function is latching instructions and SFR addresses and decoding them.
- Logic external to the microcontroller 302 is coupled to PORTO data bus 324 and is operable to latch instructions and SFR addresses as they are read from code memory during program execution. All instructions that operate on SFRs are fully decoded by this external logic to determine read, write, read-modify-write, bit and address sequencing. Additionally, all SFR addresses are decoded to determine if an Expansion I/O port 306-314 is being addressed. This function of decoding instructions and SFR addresses is contained in a single logical block called the Expansion Decoder.
- the present invention is far more flexible than Watkins, et al., in that the number of external SFRs can be (1) large, and (2) easily changed.
- the present invention takes advantage of the 8051 architecture internal timing and small circuit changes in the PORT0 and PORT2 logic to provide the contents of the internal bus to the outside world. In this way, the Expansion Decoder is able to facilitate high-efficiency communication between the microcontroller and a large number of external peripheral functions.
- the second of the three major functions is providing for data movement between Expansion I/O ports 306-314 and microcontroller 302. This is accomplished by coupling PORT2 to an I/O Expansion Bus 326. PORT2 multiplexes its I/O Expansion Bus 326 duties with its conventional function of outputting the high byte of address.
- the third major function is providing a bidirectional control signal pin on microcontroller 362 that signals the type of memory transaction that is in progress. More particularly, this pin, as an output signal specifies whether the current fetch cycle is the first fetch (i.e., the opcode byte) of an instruction.
- This output signal is received, in the present invention, by expansion decoder 304 and used to facilitate the synchronization of expansion decoder 304 to microcontroller 362. As an input this pin is driven with a signal which is indicative of whether external data is to be read.
- the /EA pin 320 is used for this bidirectional control signal pin.
- the enhanced mode of operation may be controlled, that is selected, via software by using a bit in an on-chip SFR.
- Enhanced mode may also be selected by applying a predetermined combination of voltages to certain pins during reset.
- the microcontroller operates normally except for the following changes:
- Expansion Decoder 304 needs to monitor the instruction stream, this is a simple and straightforward way of achieving instruction stream visibility external to microcontroller 302. This embodiment also minimizes the amount of change that must be made to an existing microcontroller architecture to achieve the aforementioned instruction stream visibility.
- PORT0 and PORT2 on-chip addresses are disabled. That is, any instruction that uses PORT0 or PORT2 SFR addresses will operate as if those PORTS were not implemented. This effectively makes PORT0 and PORT2 external SFR addresses. (This is an important feature for building in-circuit emulators, as well as Multi-Chip Modules (MCM) containing a microcontroller and a non-volatile memory such as an EPROM.)
- MCM Multi-Chip Modules
- the PORT2 SFR drives the PORT2 pins every S1. This allows the data captured as described above to be made available externally and conditionally latched into an Expansion I/O Port.
- the sampled PORT2 pins are conditionally driven onto microcontroller internal bus 102 during S5P2.
- Pin /EA 320 becomes a bi-directional control signal.
- pin /EA 320 is an output when /PSEN 318 is low and an input when /PSEN 318 is high.
- microcontroller 302 will drive pin /EA 320 low when the current memory access is the first access of a new instruction (i.e. the instruction fetch cycle). This ensures that Expansion Decoder 304 will remain synchronized to microcontroller 802.
- Expansion decoder 304 will drive /EA 320 low when the current instruction requires a read (i.e., input) from an Expansion I/O port 306-314.
- Assertion of /EA 320 during S5 will result in the microcontroller PORT2 logic driving the PORT2 pin data that was sampled during S4P2 onto microcontroller internal bus 102.
- PORT0 Since the address/data functionality of PORT0 does not change, all memory accesses are identical to the standard ROMless mode timings. Standard EPROMs, or EPROM chip(s) in an MCM together with the microcontroller of the present invention, can be used with a microcontroller of the present invention operating in enhanced mode. However, it should be noted that PORT2 is now a multiplexed bus and will require an address latch similar to PORT0.
- Expansion I/O Ports 306-314 use SFR addresses that are not implemented on microcontroller 302, it is essential that expansion decoder 304 know which SFR addresses are reserved for use by microcontroller 302 with which it operates, and which SFR addresses are used in the application system. This is complicated by the fact that different microcontrollers use different SFR addresses. There are two solutions to this problem. A first solution is to hardwire the addresses and only use the set of SFR addresses that are not used by any presently existing 8051 family microcontroller. However, this will limit the maximum number of Expansion I/O Ports as well as put severe restrictions on the compatibility of future 8051 family microcontrollers. A preferred solution is to make the external SFR addresses user programmable.
- User programmability can be achieved by reserving one fixed SFR address in expansion decoder 304.
- the fixed SFR address a register 604 in this case, is then loaded from the instruction stream with data that maps (i.e., programs) an address comparator 602, 606 within expansion decoder 304 with an SFR address specified by the user.
- the Expansion I/O Port addresses then become completely programmable, limited only by the number of address comparators on a specific implementation of expansion decoder 304.
- the decoding of external SFR address(es) may be mask-programmed onto expansion decoder 304, while in a more flexible approach, the external SFR address(es) to be decoded are specified to external expansion decoder 304 by stored instructions executed by microcontroller 302, (i.e., under program control). It will be appreciated by those skilled in this field that the external SFR address(es) specified, under program control, for decoding, can be changed at any time under program control.
- the external SFR decoding may be done by means of a Content Addressable Memory (CAM) 650 that has a width equal to the number of address bits that the user desires to match, and a depth equal to the user's desired number of external SFRs.
- CAM Content Addressable Memory
- This technique is like the well-known method used in microprocessors with on-chip cache tags for determining whether the data from a particular address is present in the cache.
- a cache hit signal is the equivalent in the present invention of a valid external SFR address decode.
- CAM 650 depth may be less than the total number of external SFRs. In this case, CAM 650 will need to be reloaded under program control when the program needs to access an external SFR address which is not in CAM 650. Chip real estate is saved in this way, but performance is degraded.
- expansion decoder 304 is a hybrid of the mask-programmable approach and the instruction execution controlled approach.
- Expansion Decoder 304 is provided with one-time programmable hardware such as fuse or anti-fuse circuits. In this way a user may take a standard expansion decoder deuce and program it to decode a specific set of external SFR addresses.
- a further alternative for decoding SFR addresses in Expansion Decoder 304 is a to use a CAM 650 as described above, however, programming of CAM 650 is done during a system reset and initialization period by transferring data from a memory means such as a serial EEPROM, a mask-programmed ROM, or any type of non-volatile memory, into CAM 650 rather than programming CAM 650 by means of data moving instructions executed by microcontroller 302.
- a memory means such as a serial EEPROM, a mask-programmed ROM, or any type of non-volatile memory
- Table III provides a list of the instructions which the expansion decoder will recognize as being capable of operating on an external SFR address.
- Expansion Decoder 364 decodes the instruction opcodes listed in Table III and generates the control signals for accessing all the SFRs that are mapped as expansion I/O ports (i.e. external SFR addresses).
- the opcodes listed in Table III are presented in hexadecimal.
- Expansion I/O Devices 306-314 can be very simple devices such as input only ports 314, or output only ports 312. Devices of this type are shown in FIG. 3, and are essentially a tri-state buffer in the case of an input-only port and a register in the case of an output-only port. Control signals are provided to these devices by Expansion Decoder 304. Using an input only port as an example, Expansion Decoder 304 provides a read signal to the port to enable the port to output its data onto PORT2 bus 326, and also provides a signal to /EA pin 320 of microcontroller 302 in order to drive the PORT2 data previously sampled onto internal bus 102 of microcontroller 302.
- Expansion I/O Devices having greater complexity can be designed, but all operate with microcontroller 302 and Expansion Decoder 304, within the scope of the present invention, in the same way.
- the following chip descriptions should give an idea of the power and flexibility of the present invention.
- peripherals not including the many combinations and permutations possible with the features and pin counts described in the chips below.
- the present invention can significantly lower the cost, risk and turn around time for an ASIC. Instead of putting the ASIC functions on the relatively large microcontroller die, they can be integrated separately as an Expansion I/O Port peripheral.
- An Expansion Data RAM 802 embodiment of the present invention provides for an expanded 8051 internal data memory. More particularly, in a preferred embodiment, such a device has 1024 bytes of RAM (in addition to that which is provided by the 8051 internal memory), and a programmable auto-increment/auto-decrement ability for write/read stack operations. This device can be packaged in a 24-pin package. However, Expansion Data RAM 802 may be combined with additional Expansion I/O ports and packaged in a 40-pin package. Those skilled in the art will recognize that the actual number of I/O ports and package pins is a matter of design choice. Similarly, those skilled in the art will recognize that a memory array size other than 1024 bytes may be used.
- the 1024 bytes of RAM are divided into four pages of 256 bytes each.
- Each page has an Address SFR and a Data SFR. Addresses are loaded in the Address SFR and data is read from or written to the data SFR. This is similar to accessing the upper 128-bytes of on-chip internal data memory. For example, to add a value from the upper 128 bytes to the Accumulator and store it back is done as follows:
- Each page of expanded data memory has a control SFR, or at least one bit in a common SFR that is shared by the pages, that can be programmed to enable and disable the auto-increment or auto-decrement function of the Address SFR.
- auto-increment and auto-decrement functionality can be enabled/disabled jointly with one bit of a control SFR, or enabled/disabled separately with more than one bit of a control SFR. This provides for buffer management tasks as well as stack operations. For example, to swap all the nibbles of a buffer using the on-chip RAM could be done as follows:
- Stack functions can be implemented efficiently by programming the Address SFR to auto-increment on reads and auto-decrement on writes. Stack functions can also be implemented by incrementing on writes and decrementing on reads. In this case, incrementing of the address is generally done after the write operation (called post-increment) and decrementing of the address is generally done before the read operation (called pre-decrement).
- an expansion multifunction memory chip (MFC) 902 is used as the expansion I/O device.
- MFC 902 has a non-volatile memory 906 such as an EPROM, EEROM, FLASH memory, CMOS SRAM with battery, ferroelectric memory, or functional equivalent, that is typically configured as an 8K by 8 non-volatile memory array.
- MFC 902 also has a 1024 byte RAM 908 that serves as an expanded 8051 internal data memory, an expansion decoder logic block, and several timer/counters 910. Still referring to FIG. 9, it can be seen that MFC 902 has signal terminals (e.g. pins) for connection with signals ALE, RESET /PSEN, /EA, /CS, /INT, PORT0, PORT2, I/O PORT0, and I/O PORT1.
- signal terminals e.g. pins
- Signal terminal /INT is an interrupt output that is asserted as a result of the internal peripheral functions requesting service.
- Signal terminal /INT is typically coupled to one of the external interrupt request pins of microcontroller 302.
- FIG. 9 shows timers/counters 910 implemented on MFC 902, however, any peripheral function that can be accessed via SFRs could be integrated onto MFC 902. For example, Direct Memory Access (DMA) controllers, floating point math units and so on.
- DMA Direct Memory Access
- FIG. 3 shows a block diagram of a system using the Enhanced Hooks mode to create Expansion I/O Ports. This figure also illustrates the partition of the Expansion I/O control bus (decoded off PORT0) and Expansion I/O data bus 326 (i.e.; PORT2). This system shows the flexibility of this concept in the great variety of I/O devices that can be supported. It should be noted that since PORT2 is a multiplexed bus in this embodiment of the present invention, address latch 334 is required as shown.
- Expansion Decoder 304 controls all the Expansion I/O accesses.
- Expansion Decoder 304 is a low complexity chip that handles all the functions of instruction and SFR address decoding. Several examples of possible Expansion Decoder 304 implementations are described below.
- Expansion Decoder 304 uses three different SFR address decoding methods to support the wide range of I/O chips. Complete decoding with READ and WRITE control signals are best suited for simple Input and Output Ports. Separate Address and Control decoding is preferred for higher integrated I/O Ports with only one or two SFRs like the EP600 (PLD manufactured by Altera) shown in FIG. 3. Highly functional Expansion I/O chips that include many SFR addresses are more efficiently controlled by means of encoded I/O address busses as shown in FIG. 7A.
- Microcontroller 302 provides access to internal bus 102 transactions at specific times during a machine cycle.
- Expansion decoder 304 of the present invention provides means for decoding instructions and register addresses. Together these features permit a user to create expansion devices (examples of which are also described above). However, since the registers of the expansion devices appear to be internal to microcontroller 302, the result is several physically separate chips that appear to be architecturally seamless. That is they operate, architecturally, as if the expansion device were physically integrated on a single substrate with microcontroller 302.
- microcontroller 302 expansion decoder 304 and expansion devices 306-314 of the present invention, it is possible to create a highly flexible and relatively low-cost ASIC prototyping system and ;method.
- the system of the present invention is used to verify proper operation of peripheral functions before they integrated into a single substrate with the microcontroller.
- peripheral functions can be implemented in a variety of ways for prototyping purposes. For example, Field Programmable Gate Arrays (FPGAs), Programmable Logic Devices (PLDs), ASICs or discrete logic can be used to implement the circuitry of the proposed peripheral function.
- FPGAs Field Programmable Gate Arrays
- PLDs Programmable Logic Devices
- ASICs application specific integrated circuits
- the proposed peripheral function is implemented in hardware (rather than only a software simulation model), full speed testing is possible by use of the present invention which treats (from an architecture and timing point of view) the external hardware implementation of the proposed peripheral function as if it were actually integrated into microcontroller 302.
- the present invention is particularly useful for implementing an in-circuit emulator for a microcontroller. Since all write data on the internal bus of the microcontroller is visible externally at the PORT2 pins, trace functions, as will be apparent to those of ordinary skill in this field, are much easier to implement.
- expansion decoder and expansion I/O devices are referred to as external devices, thus implying chips in separate packages, the present invention contemplates having individual chips combined in a single package such as a Multi-Chip Module (MCM) or the like.
- MCM Multi-Chip Module
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
Abstract
Description
TABLE I
______________________________________
JNB status.sub.-- flag, not.sub.-- done
2 cycles
MOV variable, data.sub.-- register
1 cycle
total cycles for conventional internal
3 cycles
access
______________________________________
TABLE II ______________________________________ MOV DPTR, #status.sub.--address 2 cycles MOVX A, @DPTR 2 cycles JNB acc.status.sub.-- flag, not.sub.-- done 2 cycles MOV DPTR, #data.sub.-- register.sub.--address 2 cycles MOVX A, @DPTR 2 cycles MOV variable,A 1 cycles total cycles for conventional external 11 cycles access ______________________________________
TABLE III
______________________________________
Instruction Mnemonic
Opcode (Hex)
I/O operation
______________________________________
ADD A, SFR 25 R
ADDC A, SFR 35 R
SUBB A, SFR 95 R
INC SFR 05 RMW
DEC SFR 15 RMW
ANL A, SFR 55 R
ANL SFR, A 52 RMW
ANL SFR,#data 53 RMW
ORL A, SFR 45 R
ORL SFR, A 42 RMW
ORL SFR, #data 43 RMW
XRL A, SFR 65 R
XRL SFR, A 62 RMW
XRL SFR, #data 63 RMW
MOV A, SFR E5 R
MOV Rn, SFR A8-AF R
MOV SFR, A F5 W
MOV SFR, Rn 88-8F W
MOV SFR, SFR 85 R/W
MOV SFR, @Rn 86-87 W
MOV SFR, #data 75 W
MOV @Ri, SFR A6-A7 R
PUSH SFR C0 R
POP SFR D0 W
XCH A, SFR C5 RMW
CJNE A, SFR, Roff
B5 R
DJNZ SFR, Roff D5 RMW
CLR SFR.bit C2 RMW
SETB SFR.bit D2 RMW
CPL SFR.bit B2 RMW
ANL C, SFR.bit 82 R
ANL C, /SFR.bit B0 R
ORL C, SFR.bit 72 R
ORL C, /SFR.bit A0 R
MOV C, SFR.bit A2 R
MOV SFR.bit, C 92 RMW
JB SFR.bit, Roff
20 R
JNB SFRbit, Roff
30 R
JBC SFR.bit, Roff
10 R,RMW
______________________________________
______________________________________ MOV counter,#buffer.sub.-- length MOV R0, #buffer.sub.-- address loop: MOV A, @R0 SWAP A MOV @R0, A INC R0 DJNZ counter, loop ______________________________________
______________________________________ MOV counter, #buffer.sub.-- length MOV page0-addr-reg, #buffer.sub.-- address loop: MOV A, page0.sub.-- data.sub.-- reg SWAP A MOV page0.sub.-- data.sub.-- reg, A ;address reg incremented here DJNZ counter, loop ______________________________________
__________________________________________________________________________
S5P1
ALE = HIGH
/PSEN = HIGH
PORT0 (O) = LOW BYTE OF ADDRESS BEING DRIVEN
PORT2 (O) = HIGH BYTE OF ADDRESS BEING DRIVEN
/EA (I) = RECEIVING A HIGH FROM EXPANSION DECODER,
CONTROLLING PORT2 LOGIC SUCH THAT PORT2
IGNORES SAMPLED PINS
S5P2
ALE = LOW
/PSEN = HIGH
PORT0 (O) = LOW BYTE OF ADDRESS BEING DRIVEN
PORT2 (O) = HIGH BYTE OF ADDRESS BEING DRIVEN
/EA (I) = EXPANSION DECODER DRIVING HIGH, PORT2 LOGIC
IGNORES SAMPLED PINS.
S6P1
ALE = LOW
/PSEN = LOW
PORT0 (I) = TRISTATE; WAITING FOR OPCODE
PORT2 (O) = PORT2 SFR BEING DRRVEN
/EA (O) = LOW; i.e., TMS TELLS EXPANSION DEOCDER THAT
CURRENT BUS CYCLE IS AN INSTRUCTION FETCH
S6P2
ALE = LOW
/PSEN = LOW
PORT0 (I) = TRISTATE; WAITING FOR OPCODE
PORT2 (O) = PORT2 SFR TO BE WRRITEN WITH DATA FROM
MICROCONTROLLER INTERNAL BUS
/EA (O) = LOW; I.E., THIS TELLS EXPANSION DEOCDER THAT
CURRENT BUS CYCLE IS AN INSTRUCTION FETCH
S1P1
ALE = LOW
/PSEN = LOW
PORT0 (I) = INC (05h) OPCODE BEING READ
PORT2 (O) = PORT2 SFR BEING DRIVEN
/EA (O) = LOW; I.E., THIS TELLS EXPANSION DEOCDER THAT
CURRENT BUS CYCLE IS AN INSTRUCTION FETCH
Note that since /EA is low, the expansion decoder will latch the data on
the
PORT0 bus (the INC opcode in the present example) and begin decoding the
instruction at the end of this Phase (IPSEN goes high)
S1P2
ALE = HIGH
/PSEN = HIGH
PORT0 (I) = TRISTATE
PORT2 (O) = PORT2 SFR BEING DRIVEN
/EA (I) = RECEIVING A HIGH FROM EXPANSION DECODER,
PORT2 LOGIC IGNORES TBE SAMPLED PINS
Note that the expansion decoder never drives /EA low during S1P2, S2P1
or
S2P2, because SFRs are never read during this part of an 8051 machine
cycle.
S2P1
ALE = HIGH
/PSEN = HIGH
PORT0 (O) = LOW BYTE OF ADDRESS BEING DRIVEN
PORT2 (O) = HIGH BYTE OF ADDRESS BEING DRIVEN
/EA (I) = RECEIVING A HIGH FROM EXPANSION DECODER,
PORT2 LOGIC IGNORES THE SAMPLED PINS
S2P2
ALE = LOW
/PSEN = HIGH
PORT0 (O) = LOW BYTE OF ADDRESS BEING DRIVEN
PORT2 (O) = HIGH BYTE OF ADDRESS BEING DRIVEN
/EA (I) = RECEIVING A IRGH FROM EXPANSION DECODER,
PORT2 LOGIC IGNORES THE SANTLED PINS
S3P1
ALE = LOW
/PSEN = LOW
PORT0 (I) = TRISTATE WAITING FOR NEXT BYTE OF
INSTRUCTION (SFR ADDRESS)
PORT2 (I) = TRISTATE WAITING FOR SELECTED EXTERNAL ilo
PORT DATA
/EA (O) = HIGH; THIS IS NOT AN INSTRUCTION FETCH CYCLE
Note that /EA driving a high tells the expansion decoder that the current
bus
cycle is not an instruction fetch.
S3P2
ALE = LOW
/PSEN = LOW
PORT0(I) = TRI-STATE WAITING FOR NEXT BYTE OF
INSTRUCTION (SFR ADDRESS)
PORT2 (I) = TRISTATE WAITING FOR SELECTED EXTERNAL I/O
PORT DATA
/EA (O) = HIGH; TI-HS IS NOT AN INSTRUCTION FETCH CYCLE
S4P1
ALE = LOW
/PSEN = LOW
PORT0 (I) = EXT-PORT (SFR ADDRESS) BYTE BEING READ
PORT2 (I) = SELECTED EXTERNAL I/O PORT DATA BEING
DRIVEN - /EA (O) = HIGH; TI-HS IS NOT AN INSTRUCTION FETCH CYCLE
S4P2
ALE = HIGH
/PSEN = HIGH
PORT0 (I) = TRISTATE
PORT2 (I) = PORT2 PINS BEING SAMPLED
/EA (I) = LOW;
Note that since the expansion decoder decoded an expansion I/O PORT
address
and that the current instruction requires a read from the expansion I/O
PORT, it
will enable the selected PORT to drive its data onto the PORT2 pins.
S5P1
ALE = HIGH
/PSEN = HIGH
PORT0 (O) = LOW BYTE OF ADDRESS BEING DRIVEN
PORT2 (O) = HIGH BYTE OF ADDRESS BEING DRIVEN
/EA (I) = LOW;
S5P2
ALE = LOW
/PSEN = HIGH
PORT0 (O) = LOW BYTE OF ADDRESS BEING DRIVEN
PORT2 (O) = HIGH BYTE OF ADDRESS BEING DRIVEN
/EA (I) = LOW;
Note that the low on /EA in S4P2 through S5P2 indicates to the PORT2
logic
that data sampled from the PORT2 pins is to be driven onto the internal
bus.
S6P1
ALE = LOW
/PSEN = LOW
PORT0 (I) = TRISTATE WAITING FOR NEXT OPCODE
PORT2 (O) = PORT2 SFR BEING DRIVEN
/EA (O) = LOW;
S6P2
ALE = LOW
/PSEN = LOW
PORT0 (I) = TRISTATE WAITING FOR NEXT OPCODE
PORT2 (O) = PORT2 SFR WILL BE WRITTEN WITH THE
VALUE OF EXT.sub.-- PORT INCREMENTED BY 1 (DUE TO
INC INSTRUCTION)
/EA (O) = LOW;
S1P1
ALE = LOW
/PSEN = LOW
PORT0 (I) = NEXT OPCODE BEING READ
PORT2 (O) = PORT2 SFR (NEW VALUE OF EXT-PORT) BEING
DRIVEN - /EA (O) = LOW;
Note the low at /EA in S6P1 through S1P1 indicates instruction fetch for
the
next instruction. Since the expansion decoder decoded an expansion I/O
PORT
address and that the current instruction requires a write to the
expansion I/O
PORT, it will clock the selected Port to latch the data on the PORT2
pins, which
in the above example, is the incremented value.
__________________________________________________________________________
Claims (19)
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/112,847 US5426769A (en) | 1993-08-26 | 1993-08-26 | System and method for producing input/output expansion for single chip microcomputers |
| PCT/US1994/009785 WO1995006281A1 (en) | 1993-08-26 | 1994-08-25 | System and method for producing input/output expansion for single chip microcomputers |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US08/112,847 US5426769A (en) | 1993-08-26 | 1993-08-26 | System and method for producing input/output expansion for single chip microcomputers |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US5426769A true US5426769A (en) | 1995-06-20 |
Family
ID=22346145
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US08/112,847 Expired - Fee Related US5426769A (en) | 1993-08-26 | 1993-08-26 | System and method for producing input/output expansion for single chip microcomputers |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US5426769A (en) |
| WO (1) | WO1995006281A1 (en) |
Cited By (50)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5615404A (en) * | 1994-10-31 | 1997-03-25 | Intel Corporation | System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals |
| US5664198A (en) * | 1994-10-26 | 1997-09-02 | Intel Corporation | High speed access to PC card memory using interrupts |
| US5685006A (en) * | 1993-12-28 | 1997-11-04 | Kabushiki Kaisha Toshiba | Application specific integrated circuit having hierarchical structure and method of organizing such circuit using inheritance information |
| US5701488A (en) * | 1995-06-07 | 1997-12-23 | Motorola, Inc. | Method and apparatus for restoring a target MCU debug session to a prior state |
| US5724603A (en) * | 1993-10-13 | 1998-03-03 | Nec Corporation | Single-chip microcomputer with asynchronously accessible user designed circuit |
| US5737579A (en) * | 1993-12-24 | 1998-04-07 | Seiko Epson Corporation | System and method for emulating computer architectures |
| US5802347A (en) * | 1994-09-12 | 1998-09-01 | Nec Corporation | Emulator with function for detecting illegal access to special function register |
| US5844824A (en) * | 1995-10-02 | 1998-12-01 | Xybernaut Corporation | Hands-free, portable computer and system |
| US5862408A (en) * | 1996-05-13 | 1999-01-19 | Advanced Micro Devices, Inc. | Microprocessor system having multiplexor disposed in first and second read paths between memory CPU and DMA for selecting data from either read path |
| US5864694A (en) * | 1995-12-27 | 1999-01-26 | Nec Corporation | Emulation system |
| US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
| US5893923A (en) * | 1997-05-12 | 1999-04-13 | Lexmark International, Inc. | Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory |
| US5895950A (en) * | 1993-09-06 | 1999-04-20 | U.S. Philips Corporation | Semiconductor device having a non-volatile memory and method of manufacturing such a semiconductor device |
| FR2772948A1 (en) * | 1997-12-19 | 1999-06-25 | Sgs Thomson Microelectronics | MICROCONTROLLER WITH IMPROVED INTERFACE AND METHOD OF USE |
| US5930523A (en) * | 1993-09-17 | 1999-07-27 | Hitachi Ltd. | Microcomputer having multiple bus structure coupling CPU to other processing elements |
| US6138173A (en) * | 1995-03-06 | 2000-10-24 | Hisano; Tadahiko | I/O Expansion circuit having a plurality of selectable input/output ports |
| US6147890A (en) * | 1997-12-30 | 2000-11-14 | Kawasaki Steel Corporation | FPGA with embedded content-addressable memory |
| US6185522B1 (en) * | 1997-05-30 | 2001-02-06 | U.S. Philips Corporation | Method and system for emulating microcontrollers |
| US6192469B1 (en) * | 1996-09-17 | 2001-02-20 | Standard Microsystems Corporation | Relocatable code storage in an integrated circuit with an embedded microprocessor |
| US6289300B1 (en) | 1998-02-06 | 2001-09-11 | Analog Devices, Inc. | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
| US6385689B1 (en) | 1998-02-06 | 2002-05-07 | Analog Devices, Inc. | Memory and a data processor including a memory |
| US20020059555A1 (en) * | 2000-09-08 | 2002-05-16 | Robert Osann | Depopulated programmable logic array |
| US6401191B1 (en) * | 1996-10-31 | 2002-06-04 | SGS—Thomson Microelectronics Limited | System and method for remotely executing code |
| KR100341574B1 (en) * | 1999-06-30 | 2002-06-22 | 박종섭 | Special function register map increasing method of micro controller |
| US20020114795A1 (en) * | 2000-12-22 | 2002-08-22 | Thorne Kevin J. | Composition and process for bone growth and repair |
| US20020133687A1 (en) * | 1998-11-06 | 2002-09-19 | Little Wendell L. | Facilitating automatic incrementing and/or decrementing of data pointers in a microcontroller |
| KR100353814B1 (en) * | 2000-08-18 | 2002-09-27 | 주식회사 하이닉스반도체 | Ram access device for improving access time of extended ram access code |
| US6526501B2 (en) | 1998-03-13 | 2003-02-25 | Stmicroelectronics Limited | Adapter for a microprocessor |
| US6665737B2 (en) | 1998-03-13 | 2003-12-16 | Stmicroelectronics Limited | Microprocessor chip includes an addressable external communication port which connects to an external computer via an adapter |
| US6694491B1 (en) | 2000-02-25 | 2004-02-17 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
| US6701395B1 (en) | 1998-02-06 | 2004-03-02 | Analog Devices, Inc. | Analog-to-digital converter that preseeds memory with channel identifier data and makes conversions at fixed rate with direct memory access |
| US20040049759A1 (en) * | 2000-02-25 | 2004-03-11 | Robert Osann | Programmable logic array embedded in mask-programmed ASIC |
| US6735683B2 (en) | 1994-09-14 | 2004-05-11 | Hitachi, Ltd. | Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements |
| US6839013B1 (en) | 1998-02-06 | 2005-01-04 | Analog Devices, Inc. | Integrated circuit with a high resolution analog to digital convertor, a microcontroller and high density memory and an emulator for an integrated circuit |
| US20060168420A1 (en) * | 2005-01-27 | 2006-07-27 | Innovasic, Inc. | Microcontroller cache memory |
| US20060168421A1 (en) * | 2005-01-27 | 2006-07-27 | Innovasic, Inc. | Method of providing microcontroller cache memory |
| US7107560B1 (en) * | 2003-04-03 | 2006-09-12 | Xilinx, Inc. | Method and apparatus for designing custom programmable logic devices |
| US7155597B1 (en) * | 1999-05-17 | 2006-12-26 | Nxp B.V. | Data processing device with aliased data pointer register |
| CN100359491C (en) * | 2005-07-28 | 2008-01-02 | 上海大学 | Method of Expanding Addressing Space of 16M Byte Data Memory Based on MCS-51 Architecture |
| CN100365592C (en) * | 2005-07-28 | 2008-01-30 | 上海大学 | 16M byte program memory addressing space expansion method based on MCS-51 architecture |
| US7397624B2 (en) | 2003-11-06 | 2008-07-08 | Seagate Technology Llc | Transducers for ferroelectric storage medium |
| US7478359B1 (en) | 2006-10-02 | 2009-01-13 | Xilinx, Inc. | Formation of columnar application specific circuitry using a columnar programmable logic device |
| WO2006081094A3 (en) * | 2005-01-27 | 2009-04-09 | Innovasic Inc | Deterministic microcontroller |
| US20100036979A1 (en) * | 2008-08-05 | 2010-02-11 | Berenbaum Alan D | External Direct Memory Access of Embedded Controller Memory |
| US8613938B2 (en) | 2010-11-15 | 2013-12-24 | Zimmer Orthobiologics, Inc. | Bone void fillers |
| US8742072B2 (en) | 2006-12-21 | 2014-06-03 | Zimmer Orthobiologics, Inc. | Bone growth particles and osteoinductive composition thereof |
| CN105425687A (en) * | 2015-12-30 | 2016-03-23 | 苏州博众精工科技有限公司 | Control circuit capable of expanding multiple IO ports by using 74HC595 chip |
| US9983990B1 (en) * | 2013-11-21 | 2018-05-29 | Altera Corporation | Configurable storage circuits with embedded processing and control circuitry |
| WO2019118130A1 (en) * | 2017-12-12 | 2019-06-20 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
| US11537389B2 (en) | 2017-12-12 | 2022-12-27 | Infineon Technologies LLC | Memory devices, systems, and methods for updating firmware with single memory device |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4153933A (en) * | 1975-12-01 | 1979-05-08 | Intel Corporation | Single chip MOS computer with expandable memory |
| US4782439A (en) * | 1987-02-17 | 1988-11-01 | Intel Corporation | Direct memory access system for microcontroller |
| US4809167A (en) * | 1985-07-03 | 1989-02-28 | Metalink Corporation | Circuitry for emulating single chip microcomputer without access to internal buses |
| US4878174A (en) * | 1987-11-03 | 1989-10-31 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
| US4939637A (en) * | 1988-02-10 | 1990-07-03 | Metalink Corporation | Circuitry for producing emulation mode in single chip microcomputer |
| US5067077A (en) * | 1983-09-22 | 1991-11-19 | Fujitsu Limited | Single chip microcomputer having unauthorized memory space access protection |
| US5243700A (en) * | 1988-12-30 | 1993-09-07 | Larsen Robert E | Port expander architecture for mapping a first set of addresses to external memory and mapping a second set of addresses to an I/O port |
-
1993
- 1993-08-26 US US08/112,847 patent/US5426769A/en not_active Expired - Fee Related
-
1994
- 1994-08-25 WO PCT/US1994/009785 patent/WO1995006281A1/en not_active Ceased
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4153933A (en) * | 1975-12-01 | 1979-05-08 | Intel Corporation | Single chip MOS computer with expandable memory |
| US5067077A (en) * | 1983-09-22 | 1991-11-19 | Fujitsu Limited | Single chip microcomputer having unauthorized memory space access protection |
| US4809167A (en) * | 1985-07-03 | 1989-02-28 | Metalink Corporation | Circuitry for emulating single chip microcomputer without access to internal buses |
| US4782439A (en) * | 1987-02-17 | 1988-11-01 | Intel Corporation | Direct memory access system for microcontroller |
| US4878174A (en) * | 1987-11-03 | 1989-10-31 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
| US4939637A (en) * | 1988-02-10 | 1990-07-03 | Metalink Corporation | Circuitry for producing emulation mode in single chip microcomputer |
| US5243700A (en) * | 1988-12-30 | 1993-09-07 | Larsen Robert E | Port expander architecture for mapping a first set of addresses to external memory and mapping a second set of addresses to an I/O port |
Cited By (74)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5895950A (en) * | 1993-09-06 | 1999-04-20 | U.S. Philips Corporation | Semiconductor device having a non-volatile memory and method of manufacturing such a semiconductor device |
| US6591294B2 (en) * | 1993-09-17 | 2003-07-08 | Hitachi, Ltd. | Processing system with microcomputers each operable in master and slave modes using configurable bus access control terminals and bus use priority signals |
| US5930523A (en) * | 1993-09-17 | 1999-07-27 | Hitachi Ltd. | Microcomputer having multiple bus structure coupling CPU to other processing elements |
| US6748507B2 (en) | 1993-09-17 | 2004-06-08 | Hitachi, Ltd. | Single-chip microcomputer with integral clock generating unit providing clock signals to CPU, internal circuit modules and synchronously controlling external dynamic memory |
| US6223265B1 (en) | 1993-09-17 | 2001-04-24 | Hitachi, Ltd. | Single-chip microcomputer synchronously controlling external synchronous memory responsive to memory clock signal and clock enable signal |
| US6212620B1 (en) | 1993-09-17 | 2001-04-03 | Hitachi, Ltd. | Single-chip microcomputer operable in master and slave modes and having configurable bus control terminals |
| US6279063B1 (en) | 1993-09-17 | 2001-08-21 | Hitachi Ltd. | Microcomputer system with at least first and second microcomputers each operable in master and slave modes with configurable bus access control terminals and bus use priority controller |
| US5724603A (en) * | 1993-10-13 | 1998-03-03 | Nec Corporation | Single-chip microcomputer with asynchronously accessible user designed circuit |
| US5737579A (en) * | 1993-12-24 | 1998-04-07 | Seiko Epson Corporation | System and method for emulating computer architectures |
| US5685006A (en) * | 1993-12-28 | 1997-11-04 | Kabushiki Kaisha Toshiba | Application specific integrated circuit having hierarchical structure and method of organizing such circuit using inheritance information |
| US5802347A (en) * | 1994-09-12 | 1998-09-01 | Nec Corporation | Emulator with function for detecting illegal access to special function register |
| US6735683B2 (en) | 1994-09-14 | 2004-05-11 | Hitachi, Ltd. | Single-chip microcomputer with hierarchical internal bus structure having data and address signal lines coupling CPU with other processing elements |
| US5664198A (en) * | 1994-10-26 | 1997-09-02 | Intel Corporation | High speed access to PC card memory using interrupts |
| US5615404A (en) * | 1994-10-31 | 1997-03-25 | Intel Corporation | System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals |
| US6557047B1 (en) | 1995-03-06 | 2003-04-29 | Tadahiko Hisano | External storage device and method of accessing same |
| US20040167994A1 (en) * | 1995-03-06 | 2004-08-26 | Tadahiko Hisano | External storage device and method of accessing same |
| US6138173A (en) * | 1995-03-06 | 2000-10-24 | Hisano; Tadahiko | I/O Expansion circuit having a plurality of selectable input/output ports |
| US6952742B2 (en) | 1995-03-06 | 2005-10-04 | Tadahiko Hisano | External storage device and method of accessing same |
| US6735638B2 (en) | 1995-03-06 | 2004-05-11 | Tadahiko Hisano | External storage device and method of accessing the same |
| US7363466B2 (en) | 1995-05-02 | 2008-04-22 | Renesas Technology Corp. | Microcomputer |
| US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
| US20060224859A1 (en) * | 1995-05-02 | 2006-10-05 | Hiroshi Ohsuga | Microcomputer |
| US7558944B2 (en) | 1995-05-02 | 2009-07-07 | Renesas Technology Corp. | Microcomputer |
| US20080294873A1 (en) * | 1995-05-02 | 2008-11-27 | Hiroshi Ohsuga | Microcomputer |
| US5701488A (en) * | 1995-06-07 | 1997-12-23 | Motorola, Inc. | Method and apparatus for restoring a target MCU debug session to a prior state |
| US5844824A (en) * | 1995-10-02 | 1998-12-01 | Xybernaut Corporation | Hands-free, portable computer and system |
| US5864694A (en) * | 1995-12-27 | 1999-01-26 | Nec Corporation | Emulation system |
| US5862408A (en) * | 1996-05-13 | 1999-01-19 | Advanced Micro Devices, Inc. | Microprocessor system having multiplexor disposed in first and second read paths between memory CPU and DMA for selecting data from either read path |
| US6192469B1 (en) * | 1996-09-17 | 2001-02-20 | Standard Microsystems Corporation | Relocatable code storage in an integrated circuit with an embedded microprocessor |
| US6401191B1 (en) * | 1996-10-31 | 2002-06-04 | SGS—Thomson Microelectronics Limited | System and method for remotely executing code |
| US5893923A (en) * | 1997-05-12 | 1999-04-13 | Lexmark International, Inc. | Microcontroller utilizing a circuit to select during reset process an internal or external memory as base memory |
| US6185522B1 (en) * | 1997-05-30 | 2001-02-06 | U.S. Philips Corporation | Method and system for emulating microcontrollers |
| FR2772948A1 (en) * | 1997-12-19 | 1999-06-25 | Sgs Thomson Microelectronics | MICROCONTROLLER WITH IMPROVED INTERFACE AND METHOD OF USE |
| US6182207B1 (en) | 1997-12-19 | 2001-01-30 | Stmicroelectronics S.A. | Microcontroller with register system for the indirect accessing of internal memory via auxiliary register |
| US6147890A (en) * | 1997-12-30 | 2000-11-14 | Kawasaki Steel Corporation | FPGA with embedded content-addressable memory |
| US6701395B1 (en) | 1998-02-06 | 2004-03-02 | Analog Devices, Inc. | Analog-to-digital converter that preseeds memory with channel identifier data and makes conversions at fixed rate with direct memory access |
| US6385689B1 (en) | 1998-02-06 | 2002-05-07 | Analog Devices, Inc. | Memory and a data processor including a memory |
| US6289300B1 (en) | 1998-02-06 | 2001-09-11 | Analog Devices, Inc. | Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit |
| US6839013B1 (en) | 1998-02-06 | 2005-01-04 | Analog Devices, Inc. | Integrated circuit with a high resolution analog to digital convertor, a microcontroller and high density memory and an emulator for an integrated circuit |
| US6665737B2 (en) | 1998-03-13 | 2003-12-16 | Stmicroelectronics Limited | Microprocessor chip includes an addressable external communication port which connects to an external computer via an adapter |
| US6526501B2 (en) | 1998-03-13 | 2003-02-25 | Stmicroelectronics Limited | Adapter for a microprocessor |
| US20020133687A1 (en) * | 1998-11-06 | 2002-09-19 | Little Wendell L. | Facilitating automatic incrementing and/or decrementing of data pointers in a microcontroller |
| US7155597B1 (en) * | 1999-05-17 | 2006-12-26 | Nxp B.V. | Data processing device with aliased data pointer register |
| KR100341574B1 (en) * | 1999-06-30 | 2002-06-22 | 박종섭 | Special function register map increasing method of micro controller |
| US6694491B1 (en) | 2000-02-25 | 2004-02-17 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
| US6769109B2 (en) * | 2000-02-25 | 2004-07-27 | Lightspeed Semiconductor Corporation | Programmable logic array embedded in mask-programmed ASIC |
| US20040049759A1 (en) * | 2000-02-25 | 2004-03-11 | Robert Osann | Programmable logic array embedded in mask-programmed ASIC |
| US7043713B2 (en) | 2000-02-25 | 2006-05-09 | Lightspeed Semiconductor Corp. | Implementing programmable logic array embedded in mask-programmed ASIC |
| KR100353814B1 (en) * | 2000-08-18 | 2002-09-27 | 주식회사 하이닉스반도체 | Ram access device for improving access time of extended ram access code |
| US7055125B2 (en) | 2000-09-08 | 2006-05-30 | Lightspeed Semiconductor Corp. | Depopulated programmable logic array |
| US20020059555A1 (en) * | 2000-09-08 | 2002-05-16 | Robert Osann | Depopulated programmable logic array |
| US8690874B2 (en) | 2000-12-22 | 2014-04-08 | Zimmer Orthobiologics, Inc. | Composition and process for bone growth and repair |
| US20060246150A1 (en) * | 2000-12-22 | 2006-11-02 | Thorne Kevin J | Composition and Process for Bone Growth and Repair |
| US20020114795A1 (en) * | 2000-12-22 | 2002-08-22 | Thorne Kevin J. | Composition and process for bone growth and repair |
| US7107560B1 (en) * | 2003-04-03 | 2006-09-12 | Xilinx, Inc. | Method and apparatus for designing custom programmable logic devices |
| US7397624B2 (en) | 2003-11-06 | 2008-07-08 | Seagate Technology Llc | Transducers for ferroelectric storage medium |
| WO2006081094A3 (en) * | 2005-01-27 | 2009-04-09 | Innovasic Inc | Deterministic microcontroller |
| US20060168420A1 (en) * | 2005-01-27 | 2006-07-27 | Innovasic, Inc. | Microcontroller cache memory |
| US20060168421A1 (en) * | 2005-01-27 | 2006-07-27 | Innovasic, Inc. | Method of providing microcontroller cache memory |
| CN100359491C (en) * | 2005-07-28 | 2008-01-02 | 上海大学 | Method of Expanding Addressing Space of 16M Byte Data Memory Based on MCS-51 Architecture |
| CN100365592C (en) * | 2005-07-28 | 2008-01-30 | 上海大学 | 16M byte program memory addressing space expansion method based on MCS-51 architecture |
| US7478359B1 (en) | 2006-10-02 | 2009-01-13 | Xilinx, Inc. | Formation of columnar application specific circuitry using a columnar programmable logic device |
| US7965102B1 (en) | 2006-10-02 | 2011-06-21 | Xilinx, Inc. | Formation of columnar application specific circuitry using a columnar programmable device |
| US8742072B2 (en) | 2006-12-21 | 2014-06-03 | Zimmer Orthobiologics, Inc. | Bone growth particles and osteoinductive composition thereof |
| US20100036979A1 (en) * | 2008-08-05 | 2010-02-11 | Berenbaum Alan D | External Direct Memory Access of Embedded Controller Memory |
| US7979601B2 (en) | 2008-08-05 | 2011-07-12 | Standard Microsystems Corporation | External direct memory access of embedded controller memory |
| US8613938B2 (en) | 2010-11-15 | 2013-12-24 | Zimmer Orthobiologics, Inc. | Bone void fillers |
| US9983990B1 (en) * | 2013-11-21 | 2018-05-29 | Altera Corporation | Configurable storage circuits with embedded processing and control circuitry |
| CN105425687A (en) * | 2015-12-30 | 2016-03-23 | 苏州博众精工科技有限公司 | Control circuit capable of expanding multiple IO ports by using 74HC595 chip |
| CN105425687B (en) * | 2015-12-30 | 2019-01-01 | 博众精工科技股份有限公司 | A kind of control circuit extending multiple I/O ports using 74HC595 chip |
| WO2019118130A1 (en) * | 2017-12-12 | 2019-06-20 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
| US10552145B2 (en) | 2017-12-12 | 2020-02-04 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
| US11061663B2 (en) | 2017-12-12 | 2021-07-13 | Cypress Semiconductor Corporation | Memory devices, systems, and methods for updating firmware with single memory device |
| US11537389B2 (en) | 2017-12-12 | 2022-12-27 | Infineon Technologies LLC | Memory devices, systems, and methods for updating firmware with single memory device |
Also Published As
| Publication number | Publication date |
|---|---|
| WO1995006281A1 (en) | 1995-03-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5426769A (en) | System and method for producing input/output expansion for single chip microcomputers | |
| US5860021A (en) | Single chip microcontroller having down-loadable memory organization supporting "shadow" personality, optimized for bi-directional data transfers over a communication channel | |
| US6449709B1 (en) | Fast stack save and restore system and method | |
| US5047922A (en) | Virtual I/O | |
| US4112490A (en) | Data transfer control apparatus and method | |
| EP0169565B1 (en) | Microprocessor compatible with any software represented by different types of instruction formats | |
| US7793075B2 (en) | Active memory command engine and method | |
| EP0138419B1 (en) | Central processing unit for a digital computer | |
| EP0117836B1 (en) | Address-controlled automatic bus arbitration and address modification | |
| KR100272937B1 (en) | Microprocessor and multiprocessor system | |
| US6327508B1 (en) | Programmable state machine | |
| US4268908A (en) | Modular macroprocessing system comprising a microprocessor and an extendable number of programmed logic arrays | |
| US4378589A (en) | Undirectional looped bus microcomputer architecture | |
| US6216191B1 (en) | Field programmable gate array having a dedicated processor interface | |
| CA1036713A (en) | Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets | |
| JPS6053899B2 (en) | data processing system | |
| US5903912A (en) | Microcontroller configured to convey data corresponding to internal memory accesses externally | |
| WO1981000631A1 (en) | Microcomputer arranged for direct memory access | |
| US5317750A (en) | Microcontroller peripheral expansion bus for access to internal special function registers | |
| EP0652508B1 (en) | Microprocessor with block move instruction | |
| US4807119A (en) | Memory address mapping mechanism | |
| KR0184633B1 (en) | Cfiucore | |
| US20020004877A1 (en) | Method and system for updating user memory in emulator systems | |
| CA1091359A (en) | Unidirectional looped busses microprocessor | |
| JPS6362778B2 (en) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: METALINK CORPORATION, ARIZONA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PAWLOSKI, MARTIN B.;REEL/FRAME:006860/0929 Effective date: 19931022 |
|
| FEPP | Fee payment procedure |
Free format text: PAT HOLDER CLAIMS SMALL ENTITY STATUS - SMALL BUSINESS (ORIGINAL EVENT CODE: SM02); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| REFU | Refund |
Free format text: REFUND - PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: R183); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Free format text: REFUND - SURCHARGE FOR LATE PAYMENT, LARGE ENTITY (ORIGINAL EVENT CODE: R186); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| REMI | Maintenance fee reminder mailed | ||
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| SULP | Surcharge for late payment | ||
| REIN | Reinstatement after maintenance fee payment confirmed | ||
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20030620 |
|
| FEPP | Fee payment procedure |
Free format text: PETITION RELATED TO MAINTENANCE FEES FILED (ORIGINAL EVENT CODE: PMFP); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: PETITION RELATED TO MAINTENANCE FEES GRANTED (ORIGINAL EVENT CODE: PMFG); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| SULP | Surcharge for late payment | ||
| PRDP | Patent reinstated due to the acceptance of a late maintenance fee |
Effective date: 20040921 |
|
| REMI | Maintenance fee reminder mailed | ||
| LAPS | Lapse for failure to pay maintenance fees | ||
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20070620 |