MEMORY ACCESS CONTROLLER AND METHOD THEREOF

Information

  • Patent Application
  • 20080034139
  • Publication Number
    20080034139
  • Date Filed
    July 30, 2007
    17 years ago
  • Date Published
    February 07, 2008
    16 years ago
Abstract
A memory access controller that improves SDRAM access performance with the enhanced AHB bus protocol includes at least one memory access master for issuing a memory access instruction including an HLEN signal that represents the burst length of the transmitting data; and a memory access controller for controlling the access to the memory on the basis of the HLEN signal generated by the memory access master.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and, together with the description, serve to explain the principles of the invention. In the drawings:



FIG. 1 illustrates the structure required to implement an AMBA AHB design with three masters and four slaves;



FIG. 2 shows the simplest transfer for an AHB transfer, one with no wait states;



FIG. 3 shows, as an example, a four-beat wrapping burst with a wait state added for the first transfer during the AHB transfer;



FIG. 4 is the timing sequence for the simplest consecutive read bursts that the CAS is 2 with respect to the SDRAM;



FIG. 5 shows the read operation according to the enhanced AHB bus of the present invention;



FIG. 6 is a block diagram of the memory controller with plural AHB masters according to the enhanced AHB bus of the present invention;



FIG. 7 shows the structure of the decoder in the memory controller according to the enhanced AHB bus of the present invention;



FIG. 8 is a flow chart of the memory access process according to the enhanced AHB of the present invention; and



FIG. 9 is an SDRAM on page read timing diagram with CAS=2 according to the enhanced AHB and the prior art respectively.





DETAILED DESCRIPTION OF THE INVENTION

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be appreciated by one of ordinary skill in the art that the present invention shall not be limited to these specific details.


To achieve the aforementioned objects, according to an aspect of the present invention, there is provided a memory access control apparatus including at least one memory access master for issuing a memory access instruction including a HLEN signal that represents the burst length of the transmitting data; and a memory access controller for controlling the access to the memory on the basis of the HLEN signal generated by the memory access master.


According to another aspect of the present invention, there is provided a memory access controller having at least one memory access slave for receiving a memory access instruction issued by corresponding memory access master, generating a memory access request and feeding the information of the memory access controller back to the corresponding memory access master, the memory access instruction issued by the corresponding memory access master includes a HLEN signal that represents the burst length of the transmitting data; at least one HLEN signal decoder for decoding the HLEN signal included in the memory access instruction issued by the corresponding memory access master; an arbiter for receiving the memory access request generated by the memory access slave and sorting the received memory access requests to generate sequential access commands; a command buffer for sequentially storing the access commands generated by the arbiter; and a command controller for reading the access command stored in the command buffer and generating a memory access instruction to control the transmission of the data.


According to a further aspect of the present invention there is provided a memory access control method comprising the steps of issuing at least one memory access instruction including a HLEN signal that represents the burst length of the transmitting data; and controlling the access to the memory on the basis of the HLEN signal.


According to another aspect of the present invention, there is provided a memory access control method comprising receiving a memory access instruction, the memory access instruction includes a HLEN signal that represents the burst length of the transmitting data; generating a memory access request on the basis of the memory access instruction; decoding the HLEN signal; receiving the memory access request and sorting the received memory access requests to generate sequential access commands; sequentially storing the access commands; and reading the access command and generating a memory access instruction to control the transmission of the data.


Computer programs for implementing the above memory access control methods are also provided. In addition, computer program products stored on at least one computer-readable medium comprising the program codes for implementing the above said memory access control methods are also provided.


Other objects, features and advantages of the present invention will be apparent from the following description when taken in conjunction with the accompanying drawings, in which like reference characters designate the same or similar parts throughout the drawings thereof.


The enhanced AHB according to the present invention adds one signal HLEN[3:0] from AHB masters to slave, to indicate the actual burst length of the transfer from 1 to 16. The enhanced AHB according to the present invention resolves the cycle waste issues and improves the performance simply for those transfers being not 1, 4, 8 or 16 transfer, and it is back compatible the AHB protocol and needs only very small change.


The enhanced AHB according to the present invention is briefly summarized as following.


1) To give another signals HLEN[3:0], which represent burst length from 1 to 16 respectively. The burst length=HLEN+1. The HLEN keeps the same cycle as HBURST. It will assert in AHB address phase by AHB master and sampled by AHB slave when HTRANS-NONSEQ in the first data phase.


2) For fixed burst length transfer, the HLEN should be equal with the original HBURST length if the burst length transfer is unknown for the AHB master in some cases.


3) For increment unfixed burst length transfer, the HLEN will be ignored by AHB slave. It is suggested that increment usage should be avoided except the burst length is larger than 16.


4) It is option for memory controller to add HLEN_EN, which choose whether the HLEN or HBURST will be used as burst length to back compatible AHB.


5) The HBURST will be kept to back compatible AHB, and gives information about wrap, increment and single transfer.



FIG. 5 shows the read operation according to the enhanced AHB bus of the present invention. As shown in FIG. 5, the HLEN signals will be sent out on the first address phase as well as other control signals and retains unchanged during the same burst transfer. The AHB slave will judge whether the HTRANS signal is NONSEQ or not. If yes, the AHB slave samples the HLEN signals. Otherwise, the HLEN signals will be ignored.


Now the system constitution of realizing high speed SDRAM access by using the enhanced AHB bus according to the present invention will be described in connection with the accompanying drawings. FIG. 6 shows the block diagram of the memory controller with plural AHB masters according to the enhanced AHB bus of the present invention, and FIG. 7 shows the structure of the decoder in the above memory controller according to the enhanced AHB bus of the present invention.


As shown in FIGS. 6 and 7, the memory access system with the enhanced AHB bus according to the present invention mainly includes AHB master portion, AHB interface portion and controller core portion.


The AHB master portion has a plurality of AHB masters 601-1, . . . , 601-n, which send out access requests to the SDRAM memory controller 600.


The AHB interface portion comprises: a plurality of AHB slaves 602-1, . . . , 602-n; arranged corresponding to the plurality of AHB masters 601-1, . . . , 601-n respectively, which receive the access requests from the plurality of AHB masters 601-1, . . . , 601-n, and issue requests to the arbiter 604 when the HTRANS is NONSEQ; a plurality of HLEN decoders 603-1, . . . , 603-n, arranged corresponding to the plurality of AHB masters 601-1, . . . , 601-n respectively, which decode the AHB control signals and the HLEN signals and send the decoded signals as well as other AHB control signals to the arbiter 604 of the memory controller 600. The AHB interface portion also receives the feedback information from the controller core portion, processes the received information and sends back to the AHB master portion.


The controller core portion mainly includes: an arbiter 604 that receives the requests from the respective AHB slaves 602-1, . . . , 602-n, sorts these requests, selects and sends the AHB command to the command buffer 607 through the command & address MUX 605; a command buffer 607 that sequentially stores the plurality of commands from the AHB interface portion; and a command controller 608 that reads the command stored in the command buffer 607, generates corresponding memory access command for accessing the memory and controls the data transfer.


In addition, shows the detailed structure of the HLEN decoder according to the enhanced AHB of the present invention.


Next, the memory access process will be described in conjunction with the flow chart of FIG. 8. As shown in FIG. 8, in step S801, the AHB master drives the bus address, control signals and HLEN signals at the rising edge of the clock. The respective AHB master can decide whether to issue the HLEN signals or not on the basis of its situation.


Next, in step S802, the AHB slave sample the bus address, control signals and the HLEN signals at the next rising edge of the clock. In step S803, if the HTRANS signal is NONSEQ, the AHB slave issues a request to the arbiter.


Then, in step S803, the HLEN decoder judges whether the HLEN_EN signal is 1. If the HLEN_EN is 1, the AHB slave selects the HLEN as the burst length. Otherwise, the AHB slave selects the decoded HBURST signal as the burst length. The decoder of the HBURST signal, as shown in FIG. 7, also generates the related INCR, WRAP, FULL_PAGE signal described in the above table 2, so as to indicate the type of the burst. All these signals and the other AHB control signals are send to the command & address MUX.


After that, the arbiter in the memory controller in step S804 samples the request signals of the AHB slave, sorts all the transfer requests, selects one of the requests and send the control signals related to the selected request to the command buffer in the memory controller.


Next, in step S805, the command controller 608 in the memory controller 600, on the basis of the current operation status of the memory and the non performed command status (for read or written command, it also includes the information on belonging to which bank and line and the information indicating the HLEN length) in the command buffer, re-sorts the commands by using optimum arithmetic and issues the next command at suitable timing to mask the waiting cycles. If the type of the current operated AHB request is INCR, the issuing of the next command is prohibited and the burst length is ignored, since it is unknown when the current command will be finished. At the same time, the memory controller also monitors the HTRANS signal of the AHB master current performing memory access. If the HTRANS signal is NONSEQ or IDLE, it indicates that the AHB asks for interrupting the current transfer, and then the memory controller issues the next command (if the next command has not been sent out).


Then, in step S806, the memory controller reads data from the memory or writes data to the memory according to the timing sequence of the memory. After the memory controller reads the data, it sends the read data to the AHB. Then, the AHB slave samples and drives the response signal to set HREADY as 1, so as to inform the AHB master that the data transfer has been finished.


Next, in step S807, the AHB master samples the HREADY signal. And in step S808, the AHB master judges whether the HREADY signal is 1. If the HREADY signal is 1, the AHB master issues the next command and the process returns back to step S801.



FIG. 9 shows the SDRAM on page read timing diagram with CAS=2 according to the enhanced AHB and the prior art respectively. In FIG. 9, the burst length is 2 and the CAS also is 2. The HTRANS signal belongs to AHB signal, the command belongs to the memory controller signal and the DATA is the read data returned back from the SDRAM to the AHB master. The upper portion above the dotted line is the timing sequence according to the prior AHB and the lower portion under the dotted line is the timing sequence according to the enhanced AHB of the present invention.


In the prior AHB, only when the first data arrives, can the burst transfer completion be known, and thus the data D1 will be received at the third cycles after issuing the command. However, according the enhanced AHB of the present invention, since the end time can be known at the first cycle of the burst, the command of the other masters can be send out in advance, and thus the data D1 can be arrived two cycles earlier than the prior AHB. Accordingly, the SDRAM access performance can be improved.


The enhanced AHB bus according to the present invention has been implemented at RTL level by modifying original AHB memory controller. A typical H.264 pattern QCIF image AVC decoding is running, the QCIF AVC decoding simulation time decreases from 0.076 s to 0.064 s. SDRAM bus utilization increases from 31% to 34%. That means the performance is improved about 10%. Many other multimedia application simulation show good performance improvement also. Based on different application case, it varies from 5% to 15% performance improvement. The simulation is built on only three AHB masters work at the same time, if more masters added, the bus utilization is estimated to be improved from 10˜20% for typical multimedia application.


Because most current designs are based on AHB design, the enhanced AHB protocol is very valuable because it improves the memory system performance dramatically with only very small change, and it is especially important for multimedia application when the memory access becomes the system bottle neck. It also is very convenient for AXI master to be used in an AHB bus system with such enhanced bus performance with very low performance loss compared to AXI protocols.


Further to the above examples, the present invention also may be realized through running a program or a set of programs on any information processing equipment, and may be communicated with any subsequent processing apparatus. The information processing equipment and subsequent processing apparatus all may be well-known equipment.


Therefore, it is important to note that the present invention includes a case wherein the invention is achieved by directly or remotely supplying a program (a program corresponding to the illustrated flow chart in the embodiment) of software that implements the functions of the aforementioned embodiments to a system or apparatus, and reading out and executing the supplied program code by a computer of that system or apparatus. In such case, the form is not limited to a program as long as the program function can be provided.


Accordingly, the program code itself installed in a computer to implement the functional process of the present invention using computer implements the present invention. That is, the present invention includes the computer program itself for implementing the functional process of the present invention.


In this case, the form of program is not particularly limited, and an object code, a program to be executed by an interpreter, script data to be supplied to an OS, and the like may be used as along as they have the program function.


As a recording medium for supplying the program, for example, a floppy disk, hard disk, optical disk, magneto optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-R), and the like may be used.


As another program supply method, connection may be established to a given home page on the Internet using a browser on a client computer, and the computer program itself of the present invention or a file, which is compressed and includes an automatic installation function, may be downloaded from that home page to a recording medium such as a hard disk or the like, thus supplying the program. Also, program codes that form the program of the present invention may be broken up into a plurality of files, and these files may be downloaded from different home pages. That is, the present invention also includes a WNW server that makes a plurality of users download program files for implementing the functional process of the present invention using a computer.


Also, a storage medium such as a CD-ROM or the like, which stores the encrypted program of the present invention, may be delivered to the user, the user who has cleared a predetermined condition may be allowed to download key information that decrypts the program from a home page via the Internet, and the encrypted program may be executed using that key information to be installed on a computer, thus implementing the present invention.


The functions of the aforementioned embodiments may be implemented not only by executing the readout program code by the computer but also by some or all of actual processing operations executed by an OS or the like running on the computer on the basis of an instruction of that program.


Furthermore, the functions of the aforementioned embodiments may be implemented by some or all of actual processes executed by a CPU or the like arranged in a function extension board or a function extension unit, which is inserted in or connected to the computer, after the program read out from the recording medium is written in a memory of the extension board or unit.


What has been describes herein is merely illustrative of the application of the principles of the present invention. For example, the functions described above as implemented as the best mode for operating the present invention are for illustration purposes only. As a particular example, for instance, other design may be used for obtaining and analyzing waveform data to determine speech. Also, the present invention may be used for other purposes besides detecting speech. Accordingly, other arrangements and methods may be implemented by those skilled in the art without departing from the scope and spirit of this invention.

Claims
  • 1. A memory access control apparatus connected to a memory via a bus, comprising: at least one memory access master connected to the bus for issuing a memory access instruction including a HLEN signal that represents the burst length of data to be transmitted on the bus; anda memory access controller coupled to the at least one memory access master for controlling the access to the memory on the basis of the HLEN signal generated by the memory access master.
  • 2. The memory access control apparatus of claim 1, further comprising a HLEN enable line for applying a HLEN enable signal to the memory access controller.
  • 3. The memory access control apparatus of claim 2, wherein the memory access control apparatus supports an AHB system bus and the memory access master further generates a HBURST signal complying with the AHB system bus.
  • 4. The memory access control apparatus of claim 3, wherein for a fixed burst length transfer, the HLEN is equal with HBURST length if the burst length transfer is unknown.
  • 5. The memory access control apparatus of claim 3, wherein for an increment unfixed burst length transfer, the HBURST signal is used and the HLEN signal is ignored.
  • 6. The memory access control apparatus of claim 1, wherein the memory access controller comprises: at least one memory access slave for generating a memory access request on the basis of the memory access instruction issued by the corresponding memory access master and feeding the information of the memory access controller back to the corresponding memory access master;at least one HLEN signal decoder for decoding the HLEN signal included in the memory access instruction issued by the corresponding memory access master;an arbiter for receiving the memory access request generated by the memory access slave and sorting the received memory access requests to generate sequential access commands;a command buffer for sequentially storing the access commands generated by the arbiter; anda command controller for reading the access command stored in the command buffer and generating a memory access instruction to control the transmission of the data.
  • 7. A memory access controller, comprising: at least one memory access slave for receiving a memory access instruction issued by a corresponding memory access master, generating a memory access request and providing the information of the memory access controller back to the corresponding memory access master, wherein the memory access instruction issued by the corresponding memory access master includes a HLEN signal that represents the burst length of the transmitting data;at least one HLEN signal decoder for decoding the HLEN signal included in the memory access instruction issued by the corresponding memory access master;an arbiter for receiving the memory access request generated by the memory access slave and sorting the received memory access requests to generate sequential access commands;a command buffer for sequentially storing the access commands generated by the arbiter; anda command controller for reading the access command stored in the command buffer and generating a memory access instruction to control the transmission of the data.
  • 8. The memory access controller of claim 7, further comprising a HLEN enable line for applying a HLEN enable signal to the memory access controller.
  • 9. The memory access controller of claim 8, wherein the memory access controller supports an AHB system bus and the memory access master further generates a HBURST signal complying with the AHB system bus.
  • 10. The memory access controller of claim 9, wherein for fixed burst length transfer, the HLEN is equal with HBURST length if the burst length transfer is unknown.
  • 11. The memory access controller of claim 9, wherein for increment unfixed burst length transfer, the HBURST signal is used and the HLEN signal is ignored.
  • 12. A memory access control method for controlling access to a memory, comprising the steps of: issuing at least one memory access instruction including a HLEN signal that represents a burst length of data to be transmitted over a bus; andcontrolling the access to the memory on the basis of the HLEN signal.
  • 13. The memory access control method of claim 12, further comprising the step of issuing a HLEN enable signal, wherein memory access is dependent on the HLEN signal.
  • 14. The memory access control method of claim 13, wherein the memory access control method supports an AHB system bus and further comprises the step of generating a HBURST signal complying with the AHB system bus.
  • 15. The memory access control method of claim 14, wherein for fixed burst length transfer, the HLEN is equal with HBURST length if the burst length transfer is unknown.
  • 16. The memory access control method of claim 14, wherein for increment unfixed burst length transfer, the HBURST signal is used and the HLEN signal is ignored.
  • 17. The memory access control method of claim 12, wherein the controlling step comprises the steps of: generating a memory access request on the basis of the memory access instruction;decoding the HLEN signal included in the memory access instruction;receiving the memory access request and sorting the received memory access requests to generate sequential access commands;sequentially storing the access commands; andreading the access command and generating a memory access instruction to control the transmission of the data.
  • 18. A memory access control method comprising: receiving a memory access instruction, the memory access instruction includes a HLEN signal that represents a burst length of data being transmitted;generating a memory access request on the basis of the memory access instruction;decoding the HLEN signal;receiving the memory access request and sorting the received memory access requests to generate sequential access commands;sequentially storing the access commands; andreading the access command and generating a memory access instruction to control the transmission of the data.
  • 19. The memory access control method of claim 18, further comprising the step of issuing a HLEN enable signal to allow the memory access to be dependent on the HLEN signal.
  • 20. The memory access control method of claim 19, wherein the memory access control method supports an AHB system bus and further comprises the step of generating a HBURST signal complying with the AHB system bus.
Priority Claims (1)
Number Date Country Kind
200610109103.7 Aug 2006 CN national