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:
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.
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.
As shown in
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
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
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.
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.
Number | Date | Country | Kind |
---|---|---|---|
200610109103.7 | Aug 2006 | CN | national |