IES80916B2 - Memory addressing - Google Patents

Memory addressing

Info

Publication number
IES80916B2
IES80916B2 IES980710A IES80916B2 IE S80916 B2 IES80916 B2 IE S80916B2 IE S980710 A IES980710 A IE S980710A IE S80916 B2 IES80916 B2 IE S80916B2
Authority
IE
Ireland
Prior art keywords
access
registers
address
data
register
Prior art date
Application number
Inventor
Kevin Dewar
Original Assignee
Tellabs Research Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tellabs Research Limited filed Critical Tellabs Research Limited
Priority to IES980710 priority Critical patent/IES80916B2/en
Priority to EP98961334A priority patent/EP1040483A1/en
Priority to AU16802/99A priority patent/AU1680299A/en
Priority to IE981054A priority patent/IE981054A1/en
Priority to PCT/IE1998/000104 priority patent/WO1999031665A1/en
Publication of IES980710A2 publication Critical patent/IES980710A2/en
Publication of IES80916B2 publication Critical patent/IES80916B2/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/06Arrangements for interconnecting storage elements electrically, e.g. by wiring
    • G11C5/066Means for reducing external access-lines for a semiconductor memory clip, e.g. by multiplexing at least address and data signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

An ASIC circuit device microprocessor interface (10) has a UPI (17) which interfaces between external ports (18-21) and internal access registers (11). The access registers are connected to a RAM port controller (12(c)) and an internal register access controller (12(a)). These controllers interface between the access register (11) and the relevant memory or registers. Reads and writes are performed by an external processor (2) using the access registers (11).

Description

“Memory Addressing” The invention relates to memory addressing and/or register addressing, and particularly to internal or external addressing of memory and/or registers associated with a dedicated circuit such as an ASIC or an FPGA device.
Generally, such devices are connected to a microprocessor interface to allow the microprocessor access internal or external memory or registers. For example, to allow reading and writing of registers within an ASIC, it is known to directly memory-map the ASIC registers into the address space of the microprocessor. However, this may lead to a requirement for a large number of address pins on the ASIC if there are a large number of internal locations.
This requirement also extends to external memory of the ASIC in many instances as there is often a requirement for the microprocessor to access this memory through the ASIC’s microprocessor interface. Again, direct memory-mapping can lead to the requirement for a large number of pins on the ASIC.
A problem with these arrangements is that the performance of the dedicated device is linked in a very close manner to that of the processor. This takes away from independence of the ASIC and may lead, for example, to the processor writing incorrect values to the ASIC. For example, if a processor failure results in erroneous writes to the ASIC, there may be severe disruption of operation of the ASIC.
It is therefore an object of the invention to provide for memory addressing without the requirement for a large number of address pins on a dedicated device.
Another object is to provide an interface which is common to a number of different dedicated devices, and to provide a more common accessing method. -2A still further object is to improve independence of dedicated circuits so that they are more tolerant of processor faults.
Another object is to allow handling of larger internal and external address space in a simple and flexible manner.
According to the invention, there is provided a circuit device comprising;access registers connected to address and data ports; and a controller comprising means for performing reads and writes to actual memory using addresses and data written to access registers.
In one embodiment, the controller comprises means for performing a write operation by:reading from an access register the address of an actual memory location; reading from an access register the data to be written; and writing the data to the addressed actual memory location.
In another embodiment, the controller comprises means for performing a read operation byreading from an access register the address of an actual memory location; reading the data in the actual memory location; and * writing the data to an access register for subsequent reading by the requesting device. -3Preferably. the controller comprises means for reading an actual memory address from a plurality of access registers if the address is wider than the address port.
In one embodiment, the processor interface comprises a plurality of controllers, each connected to interface between the access registers and an associated actual memory.
In another embodiment, a controller is connected to interface between the access registers and memory external to the circuit device.
In a further embodiment, a controller is connected to interface between the access registers and internal registers.
Preferably, the controller comprises means for automatically incrementing actual memory addresses for efficient access to contiguous blocks.
In one embodiment, the controller comprises means for disabling actual memory writes until an unlock value is written to an access lock register.
In one embodiment, the circuit device is an ASIC.
In one embodiment, the ASIC is an ATM cell processing ASIC.
According to another aspect, the invention provides a method of performing a write operation to a memory associated with a circuit device, the method comprising the steps of:writing the address of the memory location to an access register of the circuit device; and writing the desired data value to an access register. -4According to a further aspect, the invention provides a method of performing a read operation from a memory associated with a circuit device, the method comprising the steps oftwriting the address of the memory location to an access register of the circuit device; and reading back a fetched data value from an access register.
The invention will be more clearly understood from the following description of some embodiments thereof given by way of example only with reference to Fig. 1 which is a schematic representation of an ASIC circuit device microprocessor interface of the invention.
The invention provides access registers in a dedicated circuit such as an ASIC or FPGA device. Reads and writes are performed by an external processor via the access registers to a set of a larger number of “actual” locations. Reading an actual memory location requires two steps as follows;1. writing the address of the actual location into the access registers, and 2. reading back the access register which will contain the fetched read value from the previously specified address.
A write operation requires two steps as follows:1. writing the address of the actual location into the access registers, ? 2. writing the desired data value to the appropriate access register (for subsequent transfer to the real location). -5Referring to Fig. 1, a microprocessor interface 1 of an ASIC is illustrated. The interface 1 comprises a UPI 2 which interfaces between the external ports and internal access registers 3. The external ports include a 5-bit address port, an 8-bit data port, and two control ports. The access registers 3 include address registers, read data registers, a lock register, and auto-increment logic.
The access registers 3 are connected to a RAM port controller 4. and an internal register access controller 6. These controllers interface between the access registers 3 and the relevant memory or registers. It should be noted that these are both internal and external of the ASIC.
In this embodiment, the 5-bit address port is used to address a particular access register. The actual address is written via the 8-bit data port. If the actual address is more than 8 bits, more than one access register may be used. For example, if the actual memory is up to 64K in size addressed by 16 bits, the first write is the upper address part and the second write is the lower address part. -6In more detail, the following is the set of access registers 3.
Address(hex) Name Description 00 Summary_Status Toplevel status 01 Access_Lock Protects configuration 02 Reg_Addr_U Target address upper byte 03 Reg_Addr_L Target address lower byte 04 Reg_Data Data to be read/written 05-»0F not used 10 SRAM_Addr2 SRAM address upper 4 bits 11 SRAM_Addrl SRAM address bytef 1 ] 12 SRAM_Addr0 SRAM address byte[OJ 13 SRAM_Stalus SRAM access status 14 SRAM_Data3 SRAM data byte[3] 15 SRAM_Data2 SRAM data byte[2]16 SRAM_Datal SRAM data byte[l] 17 SRAM_Data0 SRAM data byte[0 ] 18—>1F not used This set supports four main features:5 1. SummaryStatus register which allows important information to be read out directly (i.e. with only a single access). 2. Access_Lock register which allows the device to be write-protected. 3. Registers to allow access to 8-bit wider internal locations within a 16-bit internal byte-address space. 4. Registers to allow access to SRAM connected externally to the ASIC, with a 32-bit data word and 20-bit word address space. -Ί The access registers are the locations that are directly visible in the top-level address space. Some of these registers are not simple read/write registers. Some locations (and bits within locations) are Read-Only (typically status bits) and other bits/locations are Write Only i.e. they are not real registers but are targets used to initiate some action (e.g. a write to SRAM). Some registers are read/write in the normal sense (i.e. it is possible to read back a value just written) whilst others are bi-directional where they can be used as targets for both read and write operations but what is read is not the most recently written value.
Accessing an internal register is accomplished by setting up the address of the register in access registers Reg_Addr_U and Reg_Addr_L and then either writing the required new value to access register RegData (causing this value to be subsequently transferred to the actual internal register) or reading the value of the internal register from Reg Data (where it will have been copied from the internal register by the act of setting up the address).
To allow more efficient access to contiguous blocks of internal registers and external SRAM, an address auto-increment feature is implemented. This feature causes an automatic post-increment of the register address or SRAM Address following an access to either. This means that to access a contiguous series of registers or SRAM locations it is only necessary to set up the address of the starting address.
To help protect against accidental corruption of the internal configuration space and the external SRAM by a failed microprocessor (or software), an Access_Lock register is provided. Writes to internal registers of SRAM will only succeed if the Access_Lock register has previously been written with the UNLOCK value (0xA5). During normal operation, once configuration is complete, the ASIC should be kept locked except for a configuration change. This will minimize the time during which the ASIC is potentially sensitive to a faulty processor/software. -8The following are examples of how some accesses are performed: Reading various internal status registers: /* partial C for accessing internal status registers */ ^define reg_addr_u 0x02 #define reg_addr_l 0x03 #defme reg_data 0x04 /* read status registers at addresses 0 -> 7 */ write_access_reg (reg_addr_u,0x00); /* set upper bit-0 */ write_access_reg (reg_addr_1.0x00); /* set lower byte^O */ for(i=0; i<7: i++) status_array[i] = read_access_reg(reg_data); /* do read and take advantage of autoincrement */ /* now read status at addresses Ox la and 0x7c */ write_access_reg(reg_addr_l,Oxla); /* set lower byte=0xla (knowing that upper bit still = 0) */ stat_a = read_access_reg(reg_data); write_access_reg(ref_addr_l,0x7c; /* set lower byte=0x7c (knowing that upper bit still = 0) */ stat_b = read_access_reg(reg_data); Writing various configuration registers: /* partial C for setting configuration registers */ /* initialize registers at addresses 0x12-0x15 ♦/ /* assumes that we have previously unlocked the AccessLock reg */ -9write_access_reg(reg_addr_u,OxOO); /* set upper bit=O */ write_access_reg(reg_addr_l,0xl2); /* set lower byte= 12 */ write_access_reg(reg_data.0x04); /* write 0x04 to 0x12 */ write_access_reg(reg_data.0x05); /* write 0x05 to 0x13 (take advantage of auto5 increment) */ write_access_reg(reg_data.0x06); /* write 0x06 to 0x14 (take advantage of autoincrement) */ write_access_reg(reg_data.0x07); ,z* write 0x07 to 0x15 (take advantage of autoincrement) */ /* set lower 4 bits of reg at address 0x20 (leave upper 4 unchanged) */' write_access_reg(reg_addr_l,0x20); /* set lower byte=0x20 (knowing that upper bit still = 0) */ orig_val = read_access_reg(ref_data); /* get original value */ write_access_reg(reg_data); /* set lower byte+0x20 again (because of auto-increment) */ write_access_ref(reg_data, orig_val&0xf3); /* sets lower 4 bits to ‘3' */ It will be appreciated that the invention allows a dedicated device such as an ASIC or an FPGA to require much fewer pins for processor interfacing. It also achieves more consistency in access methods to registers and memory, both internal and external. Another advantage is that it decouples the timing of the external and internal interfaces.
The invention is not limited to the embodiments described, but may be varied in construction and detail within the scope of the claims.

Claims (5)

Claims V#
1. A circuit device comprising:5 access registers connected to address and data ports; and a controller comprising means for performing reads and writes to actual memory using addresses and data written to access registers. 10
2. A circuit device as claimed in claim 1, wherein the controller comprises means for performing a write operation bv:reading from an access register the address of an actual memory location; 15 reading from an access register the data to be written; and writing the data to the addressed actual memory location, and wherein the controller comprises means for performing a read operation by; reading from an access register the address of an actual memory location; reading the data in the actual memory location; and 25 writing the data to an access register for subsequent reading by the requesting device.
3. A circuit device as claimed in claims 1 or 2, wherein the controller comprises means for reading an actual memory address from a plurality of access registers if the address is wider than the address port, and wherein the processor interface comprises a plurality of controllers, each connected to interface between the - 11 access registers and an associated actual memory, and wherein a controller is connected to interface between the access registers and memory external to the circuit device, and wherein a controller is connected to interface between the access registers and internal registers, and wherein the controller comprises means 5 for automatically incrementing actual memory addresses for efficient access to contiguous blocks, and wherein the controller comprises means for disabling actual memory writes until an unlock value is written to an access lock register, and wherein the circuit device is an ASIC, and wherein the ASIC is an ATM cell processing ASIC.
4. A circuit device substantially as described with reference to the drawings.
5. A method of performing a write operation substantially as described with reference to the drawings.
IES980710 1997-12-15 1998-08-31 Memory addressing IES80916B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
IES980710 IES80916B2 (en) 1997-12-15 1998-08-31 Memory addressing
EP98961334A EP1040483A1 (en) 1997-12-15 1998-12-15 Memory addressing
AU16802/99A AU1680299A (en) 1997-12-15 1998-12-15 Memory addressing
IE981054A IE981054A1 (en) 1997-12-15 1998-12-15 Memory Addressing
PCT/IE1998/000104 WO1999031665A1 (en) 1997-12-15 1998-12-15 Memory addressing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IE970886 1997-12-15
IES980710 IES80916B2 (en) 1997-12-15 1998-08-31 Memory addressing

Publications (2)

Publication Number Publication Date
IES980710A2 IES980710A2 (en) 1999-06-30
IES80916B2 true IES80916B2 (en) 1999-06-30

Family

ID=26320135

Family Applications (1)

Application Number Title Priority Date Filing Date
IES980710 IES80916B2 (en) 1997-12-15 1998-08-31 Memory addressing

Country Status (4)

Country Link
EP (1) EP1040483A1 (en)
AU (1) AU1680299A (en)
IE (1) IES80916B2 (en)
WO (1) WO1999031665A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013012435A1 (en) 2011-07-18 2013-01-24 Hewlett-Packard Development Company, L.P. Security parameter zeroization

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5243703A (en) * 1990-04-18 1993-09-07 Rambus, Inc. Apparatus for synchronously generating clock signals in a data processing system
US5537353A (en) * 1995-08-31 1996-07-16 Cirrus Logic, Inc. Low pin count-wide memory devices and systems and methods using the same
US5818789A (en) * 1995-10-10 1998-10-06 Holtek Microelectronics, Inc. Device and method for memory access
US5835965A (en) * 1996-04-24 1998-11-10 Cirrus Logic, Inc. Memory system with multiplexed input-output port and memory mapping capability

Also Published As

Publication number Publication date
IES980710A2 (en) 1999-06-30
WO1999031665A1 (en) 1999-06-24
EP1040483A1 (en) 2000-10-04
AU1680299A (en) 1999-07-05

Similar Documents

Publication Publication Date Title
US4943966A (en) Memory diagnostic apparatus and method
US5513344A (en) Method of testing cache memories used for an information processing apparatus
EP0631241B1 (en) Initializing multiple bus networks
US8397042B2 (en) Secure memory interface
US5809555A (en) Method of determining sizes of 1:1 and 2:1 memory interleaving in a computer system, configuring to the maximum size, and informing the user if memory is incorrectly installed
US6789179B2 (en) Method and system for fast data access using a memory array
US4617624A (en) Multiple configuration memory circuit
US8136000B2 (en) Test mode for multi-chip integrated circuit packages
US5925138A (en) Method for allowing data transfers with a memory having defective storage locations
IL102967A (en) Method and apparatus for programmable memory control with error regulation and test functions
US5175831A (en) System register initialization technique employing a non-volatile/read only memory
EP0167572A1 (en) Data processing system including memory hierarchy.
US5909557A (en) Integrated circuit with programmable bus configuration
US7890804B2 (en) Program memory test access collar
US6240532B1 (en) Programmable hit and write policy for cache memory test
US7249253B2 (en) Booting from a re-programmable memory on an unconfigured bus
US4882673A (en) Method and apparatus for testing an integrated circuit including a microprocessor and an instruction cache
US4905242A (en) Pipelined error detection and correction apparatus with programmable address trap
US6556476B1 (en) Non-volatile memory data protection
IES80916B2 (en) Memory addressing
US20030154370A1 (en) Memory modules storing therein boot codes and method and device for locating same
IE981054A1 (en) Memory Addressing
US5477503A (en) Efficient local-bus ROM memory for microprocessor systems
US7085973B1 (en) Testing address lines of a memory controller
EP0505051A1 (en) Data storage system with intrinsic burst detection

Legal Events

Date Code Title Description
MM4A Patent lapsed