1. Field of the Invention
The present invention relates to an information processor.
2. Description of the related art
In systems that process various information such as a drawing instruction list, a drawing frame, texture, and a Z buffer in the local memory of a graphics processor, the capability of data transmission with the local memory have a large influence on its performance. Recent car navigation systems have access to the local memory in time-varying image processing and speech processing in addition to map drawing, and so have increased in the amount of data transmission with the local memory.
Known methods for increasing the efficiency of access to the local memory include a method of reducing write time by detecting discontinuous addresses when a graphics processor writes data into the local memory and making access to the local memory with continuous addresses every time (e.g., refer to JP-A-11-133945).
Although the foregoing known method takes into consideration to increase the efficiency of access in writing data into the local memory However, it has the problem that when making long-time data transfer at a time in reading the data from the local memory, another process that uses the data memory is kept waiting, and so the start of the processing is delayed.
For example, as car navigation systems grow more sophisticated, the drawing instruction list is increased in length with an increase in display screen size and increased complexity of the map, thus increasing a data transfer amount to read the drawing instruction list from the local memory. Accordingly, the time to transfer the drawing instruction list is increased, so that the start of another process that uses the local memory is delayed, resulting in a decrease in the responsibility of the system.
The present invention has been made in light of such circumstances. Accordingly, it is a first object of the invention to provide an information processor in which the time occupied by memory accessing means is reduced to increase the responsibility of the system. It is a second object of the invention to provide an information processor capable of accessing, when a second bus having a width larger than that of a first bus, the information processor can access from the first bus to the second bus by single access. It is a third object of the invention to provide an information processor capable of starting function blocks at high speed.
An information processor according to the invention comprises a memory unit that stores a display list, a processing unit that reads the display list from the memory unit and performs a process according to the display list, at least one function block that accesses the memory unit, and a transfer unit that transfers data from the memory unit to the processing unit, wherein the transfer unit transfers the data in split form.
With the above structure, the data from the memory unit to the processing unit is transferred in split form. Accordingly, the time occupied by the memory unit per access can be reduced, so that the start of other processes that use the memory unit is not kept waiting for a long time, thus increasing the responsibility of the system. With the above structure, the function block can access the memory unit during the split transfer, thus increasing the responsibility of the system.
Preferably, the information processor according to the invention further comprises a first bus for access between the processing unit and the function block and a second bus for access between the processing unit and the memory unit, wherein the first bus and the second bus are independent from each other. With the above structure, the first bus and the second bus are independent from each other, so that the processing unit can perform parallel processing, thus increasing the processing efficiency.
In the information processor according to the invention, preferably, when transferring the data in split form, the transfer unit transfers the data in a predetermined order of priority in response to a data transfer request.
An information processor according to the invention includes a bus access unit that accesses a second bus having a width larger than that of a first bus from the first bus. The processor comprises a storage unit that stores an address transferred from the first bus as part of an address necessary for accessing the second bus, an address generation unit that detects that an access request from the first bus to the second bus has been generated by the access to the storage means and generates part of the address necessary for accessing the second bus, and a connecting unit that connects the address transferred from the first bus, the address stored in the storage unit, and the address generated by the address generation unit and transfers the connected address to the second bus.
With the above structure, an address having a width larger than that of the first bus can be generated by adding the stored address, the address transferred from the first bus, and the generated address, so that access to the second bus having a width larger than that of the first bus can be made by single access. With the above structure, when an invariant address is stored in the memory unit in advance, a desired address can be specified by connecting the variable address transferred from the first bus, the stored invariant address, and the generated address. This allows access to the second bus from the first bus by single access, thereby reducing the number of accesses.
An information processor according to the invention comprises at least one function block, a processor that activates the function block by the access to the function block, and a notification unit that notifies the processor of an error of the access to the function block.
With the above structure, the notification unit that notifies the processor of the error of access to the function block is provided. Accordingly, the processor can start the function block according to the notification without determination on access by itself, thus allowing high-speed activation of the function block.
Preferably, the information processor according to the invention further comprises a unit that disables access to the function block during the execution of the function block. The above structure allows notification of an access error while maintaining the internal state by disabling the access during the execution of the function block.
In the information processor according to the invention, preferably, the function block comprises a starting register for performing startup setting and a two-step parameter register having a first register that holds a parameter necessary for operation by the access from the processor and a second register that holds the contents from the first register at the setting of the starting register. With the above structure, the system executes the process according to the parameter stored in the second register, during which a new parameter can be set to the first register. This allows parameter setting during the execution of the function block, thus allowing high-speed processing.
According to the invention, the time occupied by the memory unit per access can be reduced by split transfer of data from the memory unit to the processing unit, so that the start of other processes that use the memory unit is not kept waiting for a long time, thus increasing the responsibility of the system. Also, the function block can access the memory unit during the split transfer, thus increasing the responsibility of the system.
According to the invention, an address having a width larger than that of the first bus can be generated by adding the stored address, the address transferred from the first bus, and the generated address, so that access to the second bus having a width larger than that of the first bus can be made by single access. With the above structure, when an invariant address is stored in the memory unit in advance, a desired address can be specified by connecting the variable address transferred from the first bus, the stored invariant address, and the generated address. This allows access to the second bus from the first bus by single access, thereby reducing the number of accesses.
According to the invention, the notification unit that notifies the processor of the error of access to the function block is provided. Accordingly, the processor can start the function block according to the notification without determination on access by itself, thus allowing high-speed activation of the function block.
FIGS. 3(1) and 3(2) are explanatory diagrams showing the operating state of an instruction parallel processor.
FIGS. 4(1) and 4(2) are explanatory diagrams showing the operating state of an instruction parallel processor.
(First Embodiment)
The instruction parallel processor 4 reads a display list (hereinafter, referred to as a DL) containing a drawing instruction from the local memory 17, contents set to the function block, etc. and processes them. The local memory interface 10 transfers data in sequence in response to multiple data transfer instructions in a predetermined order of priority or the order of transfer instructions.
The region to which the instruction parallel processor 4 has access is divided into four regions of a resistor space, a memory space, an extended register space, and an IO space.
The register space corresponds to the register area of a bus arbitration unit 6 for controlling the bus between an internal-memory control unit 5 and a control bus 21, a memory bus 22, and so on, a video input engine 7 for bringing in video information and storing it into the local memory 17, a video output engine 8 for reading drawing data from the local memory 17 and outputting it to a display monitor 16, an audio interface 9 for outputting audio data, the local memory interface 10 for controlling the access to the local memory 17, and a CPU interface 11 that controls the access to a system CPU 15, and part of the register of coordinate conversion processor 12 for coordinate conversion processing and a floating-point operation and a drawing engine 13 for graphics processing. The memory space corresponds to a local memory area. The foregoing function block includes the video input engine 7, the video output engine 8, the audio interface 9, the local memory interface 10, the CPU interface 11, the coordinate conversion processor 12, and the drawing engine 13.
The extended space corresponds to part of the register of the coordinate conversion processor 12 and the drawing engine 13. The 10 space corresponds to the internal-memory control unit 5, an instruction memory 2, and a data memory 3.
Internal buses present in the graphics processor 1 include the control bus 21 used when the instruction parallel processor 4 sets parameters to the function block in the register area and when the system CPU 15 accesses the area in the graphics processor 1 via the CPU interface 11, the memory bus 22 used for data transfer when the instruction parallel processor 4, the video input engine 7, the video output engine 8, the audio interface 9, the coordinate conversion processor 12, and the drawing engine 13 access the local memory 17, an extended function bus 20 used when the instruction parallel processor 4 performs parameter setting and start-up process to the coordinate conversion processor 12 and the drawing engine 13, and a processor local bus 18 for access to the instruction memory 2 and the data memory 3. The extended function bus 20, the control bus 21, and the memory bus 22 which are used for access between the instruction parallel processor 4 and the functional block, and the processor local bus 18 used for access between the instruction parallel processor 4 and the local memory 17 are independently provided.
The internal-memory control unit 5 has a register control bus 23 used for access from the instruction parallel processor 4 to the block connected to the control bus 21 and the processor local bus 18, a data memory bus 24 used for transferring data from the instruction parallel processor 4 to the local memory 17, and an instruction memory bus 25 used for filling instruction codes from the local memory 17 into the instruction parallel processor 4.
The bus arbitration unit 6 controls the access of the instruction parallel processor 4 to the instruction memory 2 and the data memory 3 used by the instruction parallel processor 4, the access of the internal-memory control unit 5 that controls the other register areas and memory areas, and the access between the internal-memory control unit 5 and the control bus 21, the memory bus 22, the processor local bus 18, a processor expansion bus 19, and the extended function bus 20. Briefly, the bus arbitration unit 6 accesses from the control bus 21 to the processor local bus 18 having a width larger than that of the control bus 21.
The bus arbitration unit 6 and the instruction parallel processor 4 are connected together with the register control bus 23, the data memory bus 24, the instruction memory bus 25, the processor expansion bus 19, and the processor local bus 18 via the internal-memory control unit 5.
The drawing engine 13, which has received the process result data, converts it to drawing data, and stores the converted drawing data in the local memory 17. The video output engine 8 reads the drawing data from the local memory 17 and outputs it to the display monitor 16 (step S25).
(Parallel Processing)
FIGS. 3(1) is explanatory diagrams showing the operating state of the instruction parallel processor 4.
A DL filling process 31 shown in
As shown in
(Bus Arbitration)
Similarly, two buses, the register control bus 23 and the control bus 21, access the processor local bus 18 as the master-side bus. The access to the processor local bus 18 is arbitrated by a processor-local-bus access arbitration section 30 in the bus arbitration unit 6.
The register control bus 23 serves as the master-side bus for the control bus 21, while the control bus 21 is connected to the extended function bus 20 in such a way as to serve as the master-side bus. Also the processor expansion bus 19 acts as the master for the extended function bus 20. However, it is determined by register setting which of the processor expansion bus 19 and the control bus 21 accesses the extended function bus 20.
The internal operation of the bus arbitration unit 6 in this case will be described with reference to
The flow of data in the bus arbitration unit 6 will be described with reference to
(Split Processing)
As shown in
(Bus-Lock Detection)
In the conventional collective request method shown in
However, the split processing as in the embodiment decrease the time required for the accesses, and so it can be seen that some problem occurs in the system, so that the bus or the system is locked somewhere, by counting the waiting time.
Referring to
(Second Embodiment)
An example of a case in which drawing processing and media processing are performed in parallel using the instruction parallel processor 4 will now be described.
The DL is filled from the local memory 17 into the data memory 3 of the instruction parallel processor 4 (step S63). The instruction parallel processor 4 performs setup processing using the DL provided to the data memory 3 (step S64) and the process result data is provided to the drawing engine 13 and so on (step S65). The drawing engine 13, which has received the process result data, converts it to drawing data and stores the converted drawing data in the local memory 17.
The original data related to media processing is filled in the data memory 3 of the instruction parallel processor 4 and media-processing setup processing is performed. Here the process result is provided to the audio interface 9. The drawing data stored in the local memory 17 is read by the video output engine 8 and outputted to the display monitor 16 (steps S66 and S67).
(Parallel Processing)
FIGS. 4(1) and 4(2) are explanatory diagrams showing the operating state of an instruction parallel processor.
The DL filling process 31 shown in
A media-processing-instruction filling process 35 shown in
(Memory-Access Arbitration)
When the requests for memory access are not issued at the same time, or when the timings at which the request signals are asserted are different even in one cycle, the request from the bus that has first asserted the request signal is received, while the request from the bus that has asserted the request signal later is stored in a queue (step S95). The transfer request from the instruction parallel processor 4 is split by the internal-memory control unit 5 shown in
Thus, both of the request signals and data are independent in the bus arbitration unit 6, so that the drawing-engine control 33 can be performed independently. Also, the data-memory request and the instruction-memory request are controlled as shown in
As has been described,
The drawing setup processing 32 shown in
As shown in
The function block processing 34 shown in
As shown in
(Third Embodiment)
With the structure of
(Reuse of Higher-order Bits)
The access to the registers allows 20-bit address of the processor local bus 18 to be given, when the bus arbitration unit 6 receives the following access from the control bus 21 to the processor local bus 18, by connecting the eight bits stored in the registers and 12 bits of the address of the following access.
Of the 20 bits, the lower-order 12 bits are given from the address of the following access, and the 13th bit to the 20th bit are given from the processor-local-bus access registers 27, 28, and 29. The remaining higher-order two bits are determined depending on by which of the three processor-local-bus access registers 27, 28, and 29 in the bus arbitration unit 6 the value is set last; 01 for the instruction memory area or the data memory area; 10 for the other area.
Unless a new access is given to the processor-local-bus access registers 27, 28, and 29 after the second access, the access that varies the lower-order 12 bits of the processor local bus 18 can be given to the processor local bus 18 by one access from the control bus 21 by giving the value of the processor-local-bus access registers 27, 28, and 29 and the higher-order two bits.
The bus arbitration unit 6 can generate a desired chip select signal (CS signal) depending on which of the three processor-local-bus access registers 27, 28, and 29 is accessed.
When the other region of the processor local bus 18, e.g., the instruction memory area, is accessed from the control bus 21 and then the data memory area is accessed, the first access, or the setting of eight bits to the processor-local-bus access registers 27, 28, and 29, can be started by accessing a processor-local-bus reset register present in the region allocated in the bus arbitration unit 6 shown in
With the above structure, an address larger than the width of the control bus 21 can be generated by connecting the stored address with the address transferred from the control bus 21. Accordingly, only one access allows access to the processor local bus 18 having a large bus width. With the above structure, when an invariant address is stored in the registers 27 to 29, a desired address can be specified by one access from the control bus 21 by connecting the variable address transferred from the control bus 21 with the stored invariant address, so that the number of accesses can be reduced.
(Fourth Embodiment)
The processor expansion bus 19 and the extended function bus 20 include a register-access error flag for giving a notification of an error of access to the function block to the instruction parallel processor 4 when the instruction parallel processor 4 activates the function block by accessing the function block. Specifically, when the instruction parallel processor 4 fails to access the register of the coordinate conversion processor 12 or the drawing engine 13 via the bus arbitration unit 6, the coordinate conversion processor 12 or the drawing engine 13 asserts the register-access error flag to notify the instruction parallel processor 4 of it.
The instruction parallel processor 4 uses the register-access error flag for a branch instruction and so on as a condition flag. A method of using the register-access error flag in the drawing engine 13 will now be described.
The drawing engine 13 includes a parameter register group necessary for drawing, such as vertex coordinates and the inclination of a line segment, a drawing starting register for setting a drawing instruction and a starting flag, and a drawing end register indicative of whether drawing has terminated.
(Register-Access Error Flag)
As shown in
In step S162, it is determined whether the register-access error flag has been asserted, wherein when the flag has not been asserted, the process moves to step S163; when the flag has been asserted, the process returns to step S161 to write the first parameter into the parameter register again. In step S163, the remaining parameter register group is set. In step S164, a drawing starting register is set to start a drawing instruction.
With this structure, notification of an access error is given by the register-access error flag. Accordingly, there is no need to read the drawing end register and the register-access error flag can be used as a condition flag for branching. This structure reduces the time to read the drawing end register to determine whether the drawing has terminated, allowing a drawing instruction to be activated at high speed.
(Two-Step Register)
Another structure of the drawing engine 13 will then be described. The drawing engine 13 has a two-step register for each of the parameters in the parameter register group. A parameter necessary for operation is written from the extended function bus 20 to the first-step register. When the drawing starting register is set to start the drawing instruction, the contents of the first-step register are copied into the second-step register.
The drawing engine 13 executes drawing on the basis of the parameter of the second-step register. This allows the parameter of the following drawing instruction to be written to the first-step register during the execution of some drawing instruction, thus offering the advantage that the drawing process and the parameter setting can be performed in parallel.
In step S174, the drawing starting register is set to start a drawing instruction. At that time, the contents of the first-step register are copied into the second-step register. The drawing engine performs drawing on the basis of the parameter of the second-step register, so that the parameter of the following drawing instruction can be set in the first-step register. Also in this case, there is a period to read the drawing end register and the determination on whether the drawing has terminated is branched off as a condition flag.
When the drawing has terminated, the register-access error flag is not asserted and the drawing instruction is activated. Then, in step S183, it is determined whether the register-access error flag has been asserted, wherein when the flag has been asserted, the process returns to step S182, wherein a drawing starting register is set again; wherein when the flag has not been asserted, the parameter of the following drawing instruction can be set in the first-step register because the drawing instruction is activated.
With this structure, there is no need to read the drawing end register and the register-access error flag can be used as a condition flag for branching, so that there is no need for the determination. This structure allows the drawing instruction to be activated at high speed and also allows the drawing process and the parameter setting to be performed in parallel.
Although the invention has been described with reference to an example in which a display list is read from a local memory, the list can be read from another memory other than the local memory. The above-described graphic processor may be mounted to a sophisticated car navigation system capable of map display and audio visual processing in parallel.
The present invention is provided with transfer means for transferring data in split form from a local memory to a processor. Accordingly, the time occupied by the local memory per access can be reduced, so that the start of other processes that use the local memory is not kept waiting for a long time, thus offering the advantage of increasing the responsibility of the system, so that the invention is suitable for information processor and the like.
Number | Date | Country | Kind |
---|---|---|---|
P.2004-128499 | Apr 2004 | JP | national |