US 20050005035 A1
Multiple, data devices (A,B,C) are interfaced via a bus arbiter (S) with an external memory (F) so as to support burst-mode access by each device (A,B,C) one or more read registers (R1,R2,R3) are provided in the memory (F), and each register (R1,R2,R3) supports burst-mode access by a corresponding device (A,B,C). The arbiter (s) selects the register to be used following the initial access burst, according to the device requiring access. Thus, the memory (F) supports multiple burst-mode accesses in parallel.
1. Apparatus comprising multiple data devices and a bus arbiter controlling access by the devices to an external memory via an interface, wherein the external memory comprises one or more read registers, each of which is adapted to support burst-mode access by a corresponding data device, with the arbiter selecting the read register to be used following an initial access burst according to the identity of the data device requiring access.
2. Apparatus as claimed in
3. Apparatus as claimed in
4. Apparatus as claimed in
5. Apparatus as claimed in
6. Apparatus as claimed in
7. Apparatus as claimed in
8. A method of interfacing multiple data devices via a bus arbiter with an external memory so as to support burst-mode access by each data device, wherein one or more read registers are provided in the memory, each of which is used to support burst-mode access by a corresponding data device, with the arbiter selecting the read register to be used following an initial access burst according to the identity of the data device requiring access.
This invention relates to interfacing one or more devices, such as processors, with an external memory via a single bus arbiter.
In order to speed up access to FLASH memory, a page-mode or burst-mode has been developed in which an initial access incorporates multiple consecutive memory address codes so as to read out a block of data into a register which is then accessed incrementally in subsequent accesses until all of the data has been accessed, at which time, the process can be repeated. The advantage of the burst-mode is that each subsequent access can be much short than the initial access, typically, 30 nS for 16 bits compared with 70 nS for initially accessing a block of 128 bits. Burst-mode access is illustrated in
Burst-mode access makes use of the fact that a processor executes code in a linear fashion to produce consecutive address codes so that once submitted in an initial access, this need not be repeated in subsequent accesses, which can therefore be shorter. However it follows that if the processor does not access all of the data in subsequent accesses, perhaps because it instead requires data at other addresses, then the benefit of fast access is reduced because of more frequent longer initial accesses.
Futhermore sharing of a FLASH memory burst-mode access between multiple processors presents problems which make its use impractical in some circumstances. Thus, for example, multiple embedded processors in an ASIC would beneficially access a single external FLASH memory via a single bus arbiter which determines priority of access between the processors. The use of a single FLASH memory rather than multiple memories, reduces cost, and the number of pins required at the interface connection between the ASIC and memory is kept to a minimum. However, if burst-mode access is used for one or more of the processors, and the benefit is to be maximised by preventing interruption of a burst by other processors, then the latency of access of other processors is increased. There is therefore a compromise between the effective use of burst-mode access by one processor and the latency of access suffered by others. This is exacerbated when individual processors require a higher priority of access, and disrupt burst-mode access by other processors, without necessarily using the burst-mode access themselves. This problem becomes worse if higher priority processors are also required to run at a higher effective MIPS rate.
An object of the present invention is to provide a method of interfacing one or more processors with an external memory via single bus arbiter so as to reduce or overcome some of the above problems.
This is achieved according to one aspect of the invention by that the arbiter identifies the processor or other device associated with each access to memory, and that the memory has multiple block read registers which are select according to the identity of the processor or other device associated with each access.
The memory can therefore support multiple burst-mode accesses in parallel by holding burst data associated with each in a separate block read register, and reading data from each register according to the processor identified in each access submitted by the arbiter.
The number of block read registers need not necessarily be equal to the number of processors. If there are fewer registers than processors, then the arbiter may share one or more of the block read registers between particular processors, which are preferably selected as having lower bandwidth requirements. If there are more registers than processors, then the arbiter may use two or more registers to support two or more address code ranges or data bursts from a single processor. As an example, this could effectively separate code and data accesses where these occur contiguously at different address range.
According to another aspect, the invention consists in a method of interfacing a processor or other device with an external memory via a single bus arbiter, in which the arbiter identifies a range of memory address codes for each access to the memory, and the memory has multiple block read registers which are selected according to the identity of the range of address codes associated with each access.
The invention will now be described by way of example with reference to the accompanying drawing in which:
The processors A, B and C submit access requests to the bus arbiter S, which arbitrates according to predetermined priorities in giving access to the FLASH memory F over the interface I. The bus arbiter identifies the processor which is being given access and this is communicated to the FLASH memory device so that the processor is associated with the particular block read register which is selected for accessing data in the FLASH memory. Thus, in this example, each of the block read registers R1, R2 and R3 could be selected to give FLASH memory access to a corresponding processor A, B and C. The identity of the processors is preferably binary coded, and may for example use the A  address signal, not normally used in word-based FLASH devices.
Because the FLASH memory can support burst-mode access, each of the block read registers can hold a data burst to support multiple accesses at consecutive addresses which may be incremented or decremented. This data can be read out of the registers and passed back to the respective processors under the control of the bus arbiter. Therefore, data passing over the interface is interleaved as between the different block read registers, but this does not detract from the efficiency of the burst-mode access, which is preserved by the data being stored separately in each block read register. The bus arbiter S therefore simply arbitrates on the basis of the predetermined priorities without concern for reducing efficiency by interrupting burst-mode access.
The manner in which two processors access respective data bursts which are set up initially in separate block read registers is shown in
It will be appreciated that the changes to the bus arbiter which are made according to the invention, will not prevent it from operating in the standard mode if it is connected to a standard external FLASH memory with a single block read register.
Also, it will be appreciated that, although the invention has been described in relation to access to a FLASH a memory, it is equally applicable to access to external RAM.
Finally, although the identity of a processor or other device accessing the memory may be fixed, it is also possible to assign an access identity to a device based on a programmable address range. Also, the identity allocation may be changed dynamically based on system requirements. For example, instead of a processor the device requiring access may be a Direct Memory Access DMA module.