US20110041135A1 - Data processor and data processing method - Google Patents

Data processor and data processing method Download PDF

Info

Publication number
US20110041135A1
US20110041135A1 US12/826,093 US82609310A US2011041135A1 US 20110041135 A1 US20110041135 A1 US 20110041135A1 US 82609310 A US82609310 A US 82609310A US 2011041135 A1 US2011041135 A1 US 2011041135A1
Authority
US
United States
Prior art keywords
thread
processing
threads
control
control thread
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US12/826,093
Other languages
English (en)
Inventor
Yasushi Nagai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Faurecia Clarion Electronics Co Ltd
Original Assignee
Clarion Co Ltd
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 Clarion Co Ltd filed Critical Clarion Co Ltd
Assigned to CLARION CO., LTD. reassignment CLARION CO., LTD. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NAGAI, YASUSHI
Publication of US20110041135A1 publication Critical patent/US20110041135A1/en
Priority to US13/781,578 priority Critical patent/US9176771B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the present invention relates to a data processor and a data processing method, and more specifically to data processing with a plurality of devices.
  • a CPU of the car navigation system is connected with various high-function peripheral devices such as a TV tuner, a codec circuit for moving images, a hard disk IF circuit, an optical disk IF circuit of DVD, etc., a display device IF circuit, and a portable music player IF circuit.
  • various high-function peripheral devices such as a TV tuner, a codec circuit for moving images, a hard disk IF circuit, an optical disk IF circuit of DVD, etc., a display device IF circuit, and a portable music player IF circuit.
  • Japanese patent application JP-Hei 11-272627 discloses a technology of increasing the throughput by connecting the devices according to FIFO and making the devices process data in a pipe-line manner from a dependent relation of the data processed by the respective devices.
  • Japanese patent application JP-Hei 5-250188 discloses a technology of simultaneously executing the plurality of application programs by deciding priorities of the application programs and performing a priority control. For example, a thread of a priority of level 1 is executed ahead of threads with level 2 and level 3.
  • the priority of a thread for an input device is set to 3 and the priority of the thread for an output device is set to 1.
  • the thread for an output device will start to operate by an occasion of an input to the thread for the input device of a low priority, it is impossible to increase the priority of the thread for the input device. For this reason, processing of the application that uses input/output devices will be kept waiting by another application performing with a thread of level 2.
  • the first problem that is intended to be solved is a point that the use sequence of the devices cannot be switched in realizing the application program whose response speed and throughput are high and that shares the plurality of devices. This problem makes it impossible for applications each of whose use sequences of the devices is different to be performed simultaneously.
  • the second problem is that a thread of a high priority is made to wait by a thread of a low priority in the priority control.
  • a disclosed data processor fixes operation instruction timings of peripheral devices from a dependence relationship of processed data and realizes a pipeline processing.
  • a more concrete mode of the data processor that is disclosed is of the following configuration.
  • the data processor has: device control threads corresponding to respective peripheral devices each capable of an independent operation; CPU processing threads corresponding to respective predetermined data processing that are performed by a CPU; a control thread equipped with a plurality of processing parts for constructing an application using the device control threads and the CPU processing threads; and an application management table for defining the application by a combination of the plurality of processing parts and managing its performance; wherein the control thread checks output data from each thread of the device control threads and the CPU processing threads that are associated with each of the plurality of processing parts, performs with a higher priority from the processing part near termination of the processing of the application defined by the application management table among the plurality of processing parts corresponding to the device control threads and the CPU processing threads in each of which the output data exists, and instructs execution of the device control threads and the CPU processing threads and input/output of the data; each of the device control threads control the corresponding peripheral devices according to the instructions, and in
  • Another mode of the data processor has: an application management table for defining an application that makes a plurality of peripheral devices operate according to an operation sequence; a device control thread for controlling the peripheral devices correspondingly to the plurality of respective peripheral devices; and a control thread that selects a device control thread such that the operation sequence defined by the application management table is later among device control threads each of which has a higher priority than those of the device control threads and has input data to be processed by the peripheral devices and makes it execute.
  • Yet another mode of the data processor that is disclosed is such that the device control thread is provided correspondingly to each operation type of the peripheral devices having a plurality of operation types among the plurality of peripheral devices.
  • FIG. 1 is a block diagram of a data processor
  • FIG. 2 is a configuration example of an application management table of the data processor
  • FIG. 3 is an operation timing chart of a CPU and peripheral devices of the data processor.
  • FIG. 4 is another configuration example of the application management table of the data processor.
  • FIG. 1 is a block diagram of a data processor of a first embodiment.
  • FIG. 2 is a configuration example of an application management table.
  • FIG. 3 is a timing chart of a CPU and peripheral devices.
  • the data processor is of a configuration where peripheral devices of a CPU 101 , a memory 102 , input devices 103 , a TV tuner 104 , a decoder 105 , a network interface 106 , a DVD/CD 107 , an encryption circuit 108 , an HDD/nonvolatile memory 109 , and a display 110 are connected by a bus.
  • the CPU 101 performs each processing that will be described later.
  • the memory 102 stores a program that the CPU 101 executes and input/output data of the CPU 101 and the peripheral devices 103 to 110 .
  • the input devices 103 as peripheral devices are a switch, a button, a touch panel, a mouse, etc.
  • the decoder 105 decodes contents data of images, music, etc. sent from a TV tuner, a network, a DVD, and an HDD.
  • the network interface 106 is network interface circuits, such as of a cellular phone and CAN.
  • the DVD/CD 107 is a DVD/CD medium in which an updated map, an image, music, a photograph, etc. are stored and a DVD/CD interface circuit.
  • the encryption circuit 108 performs decipherment of encrypted data and encryption of data.
  • the HDD/nonvolatile memory 109 is an interface circuit with a storage such as HDD/nonvolatile memory, and the HDD/nonvolatile memory.
  • the display 110 displays a processing result of this data processor.
  • the CPU 101 will perform the application by executing a combination of programs (processing parts and threads). Although the processing parts and threads may be called processing parts or threads, two kinds of names are used here in order to make the explanation easy to understand. The processing part will be described later.
  • the threads include device control threads 112 , 113 , 115 , and 117 each for controlling an operation of the each peripheral device, CPU processing threads 114 and 116 each for performing a predetermined function with the CPU 101 , and a control thread 111 .
  • the control thread 111 controls parallel executions of the device control threads 112 , 113 , 115 , and 117 and the CPU processing threads 114 and 116 through the processing parts corresponding to the respective threads. That is, each processing part is included in the control thread 111 .
  • the device control threads 112 , 113 , 115 , and 117 make the respective peripheral devices operate in parallel under a control by the control thread 111 . As described above, in order to realize the control by the control thread 111 , the priority of the control thread 111 is set higher than those of the other threads.
  • the device control threads 112 , 113 , 115 , and 117 and the CPU processing threads 114 and 116 of this embodiment are as follows: the DVD control thread 112 performs control of the DVD/CD 107 and management of input/output data according to instructions of the control thread 111 .
  • the encryption circuit control thread 113 performs control of the encryption circuit 108 and management of input/output data according to the instructions of the control thread 111 .
  • the decompression thread 114 performs decompression processing of compressed data as processing of the CPU 101 according to the instructions of the control thread 111 .
  • the HDD control thread 115 performs control of the HDD/nonvolatile memory 109 and management of input/output data according to the instructions of the control thread 111 .
  • the map display data origination thread 116 converts map data into data in a form that can be displayed on the display 110 as processing of the CPU 101 .
  • the display control thread 117 performs control of the display 110 and management of input data.
  • FIG. 2 shows a configuration example of an application management table 118 .
  • the application management table 118 defines the application by a configuration and an operation sequence of a combination of the threads of the device control threads 112 , 113 , 115 , and 117 and the CPU processing threads 114 and 116 , and the control thread 111 manages parallel operation control of the CPU 101 and the peripheral devices referring to the application management table 118 .
  • the application management table 118 has items of application ID, processing part ID, processing part related thread ID, preprocessing part ID, and a preprocessing part output buffer flag.
  • FIG. 2 although the name of the application is shown as an application ID, an ID of each processing part and a thread ID related to the each processing part are shown by symbols of each processing part and the each thread shown in FIG. 1 in order to avoid complication of the drawing.
  • application ID fields an ID of a map updating application 201 and an ID of a route guidance application 202 are illustrated.
  • Each line of the map updating application 201 and the route guidance application 202 of the application management table 118 shows a configuration of the each application.
  • the processing part IDs of the line of the map updating application 201 are respective processing parts of a DVD read part 143 , a decryption part 144 , a decompression part 145 , and an HDD write part 146 that construct the map updating application 201 .
  • the processing part related thread ID shows the thread used by the each processing part that constitutes the map updating application 201 .
  • FIG. 2 shows that the DVD read part 143 uses the DVD control thread 112 , the decryption part 144 uses the encryption circuit control thread 113 , the decompression part 145 uses the decompression thread 114 , and the HDD write part 146 uses the HDD control thread 115 , respectively.
  • the preprocessing part ID expresses a dependence relationship of the processing parts that constitute the application.
  • the dependence relationship of the processing part of the map updating application 201 it expresses that the execution sequence of the DVD read part 143 is a head of the processing of the map updating application 201 , the decryption part 144 uses a processing result of the DVD read part 143 , the decompression part 145 uses an output of the decryption part 144 , and the HDD write part 146 uses an output of the decompression part 145 .
  • the application is an application in which the decryption part 144 decrypts data that the DVD read part 143 read from the DVD/CD 107 in the DVD read part 143 through the DVD control thread 112 , using the encryption circuit 108 through the encryption circuit control thread 113 , the decompression part 145 decompresses the decrypted data using the decompression thread 114 , and the HDD write part 146 writes decompressed data in the HDD/nonvolatile memory 109 through the HDD control thread 115 . That is, the data is processed in the order of the DVD read part 143 , the decryption part 144 , the decompression part 145 , and the HDD write part 146 .
  • the processing part near termination of the processing is operated with a higher priority. For this reason, in performing the map updating application 201 , the priorities of the processing parts become higher in the order of the DVD read part 143 , the decryption part 144 , the decompression part 145 , and the HDD write part 146 , the priority of the HDD write part 146 being the highest.
  • the preprocessing part output buffer flag shows Existence/Non-existence of output data of the preprocessing part. That is, the preprocessing part output buffer flag in a line of the encryption circuit control thread 113 of the map updating application 201 shows whether the data that should be processed by the encryption circuit control thread 113 exists, and “Non-existence” of FIG. 2 shows that the data to be processed does not exist. If this flag is “Existence,” the encryption circuit control thread 113 is executed according to the priority of the processing part.
  • a DVD control thread control queue 119 the control thread 111 stores control information to the DVD control thread 112 .
  • a DVD control thread input buffer queue 120 an input buffer that the control thread 111 gives to the DVD control thread 112 is set.
  • the output data of the DVD control thread 112 is stored in a DVD control thread output buffer queue 121 .
  • a DVD control thread notification 122 is a signal line (a flag on the memory 102 ) through which the DVD control thread 112 notifies the control thread 111 of processing completion, etc.
  • a reference numeral 123 represents an encryption circuit control thread control queue 123 in which the control thread 111 stores control information to the encryption circuit control thread 113 .
  • an encryption circuit control thread input buffer queue 124 a buffer that stores input data given by the control thread 111 to the encryption circuit control thread 113 is set.
  • an encryption circuit control thread output buffer queue 125 output data of a result obtained by the encryption circuit control thread 113 performing encryption/decryption using the encryption circuit 108 is stored.
  • Encryption circuit control thread notification 126 is a signal line through which the encryption circuit control thread 113 notifies the control thread 111 of processing completion, etc.
  • a decompression thread control queue 127 the control thread 111 stores control information to the decompression thread 114 .
  • a decompression thread input buffer queue 128 a buffer in which input data that the control thread 111 gives to the decompression thread 114 and is an object of decompression is stored is set.
  • a decompression thread output buffer queue 129 output data of a result that the decompression thread 114 decompressed is stored.
  • a decompression thread notification 130 is a signal line through which the decompression thread 114 notifies the control thread 111 of processing completion, etc.
  • an HDD control thread control queue 131 the control thread 111 stores control information to the HDD control thread 115 .
  • a buffer that stores data that the control thread 111 writes in the HDD/nonvolatile memory 109 is set.
  • an HDD control thread output buffer queue 133 data that the HDD control thread 115 read from the HDD/nonvolatile memory 109 is stored.
  • An HDD control thread notification 134 is a signal line through which the HDD control thread 115 notifies the control thread 111 of processing completion, etc.
  • a map display data origination thread control queue 135 the control thread 111 stores control information to the map display data origination thread 116 .
  • a map display data origination thread input buffer queue 136 an input buffer in which the control thread 111 stores the map data in the map display data origination thread 116 is set.
  • a map display data origination thread output buffer queue 137 data for display that the map display data origination thread 116 made based on the inputted map data is stored.
  • a map display data origination notification 138 is a signal line through which the map display data origination thread 116 notifies the control thread 111 of processing completion, etc.
  • a display control thread control queue 139 the control thread 111 stores control information to the display control thread 117 .
  • a display control thread input buffer queue 140 a buffer in which the control thread 111 stores display data that is displayed on the display 110 is set.
  • a display control thread output buffer queue 141 data that the display control thread 117 sends to the control thread 111 is stored.
  • Display control thread notification 142 is a signal line through which the display control thread 117 notifies the control thread 111 of processing completion, etc.
  • the processing part that is controlled by a control part 150 that is one of the processing parts in the control thread 111 , and controls the device control threads 112 , 113 , 115 , and 117 and the CPU processing threads 114 and 116 will be explained.
  • the DVD read part 143 reads data of a map, an image, a piece of music, etc. stored in the DVD/CD 107 through the DVD control thread 112 .
  • the decryption part 144 controls the encryption circuit 108 , and decrypts the encrypted data through the encryption circuit control thread 113 .
  • the decompression part 145 decompresses the compressed data by executing the decompression thread 114 with the CPU 101 .
  • the HDD write part 146 controls the HDD/nonvolatile memory 109 through the HDD control thread 115 , and writes data of an update map, update map related information, an image, a piece of music, an operation record, etc. in the HDD/nonvolatile memory 109 .
  • An HDD read part 147 controls the HDD/nonvolatile memory 109 through the HDD control thread 115 , and reads data of a map, map related information, the image, the piece of music, the operation record, etc. from the HDD/nonvolatile memory 109 .
  • a map display data origination part 148 converts a map and map related information into a data row that the display control thread 117 can display on the display 110 .
  • the display part 149 controls the display 110 and displays inputted display data through the display control thread 117 .
  • the control part 150 controls respective threads related to the processing parts 143 to 149 sequentially according to a configuration of the application defined by the application management table 118 .
  • An instruction ID 151 indicates one of the processing parts 143 to 149 that the control part 150 is controlling, which is updated by the control part 150 .
  • FIG. 3 shows operations of the DVD/CD 107 , the encryption circuit 108 , the CPU 101 , and the HDD/nonvolatile memory 109 with a horizontal axis denoting time.
  • T 1 time Tn is represented simply by Tn
  • the control part 150 of the control thread 111 checks an output from a thread associated with each processing part. That is, it checks the preprocessing part output buffer flags in lines of the map updating application 201 of the application management table 118 .
  • the DVD read part 143 gives a read instruction to the DVD control thread control queue 119 , gives a buffer in which read result data is stored to the DVD control thread input buffer queue 120 , checks that the data has not arrived at the DVD control thread output buffer queue 121 , and completes the processing.
  • the DVD control thread 112 controls the DVD/CD 107 so that the data may be stored in a buffer designated by the DVD control thread input buffer queue 120 , and waits without using the CPU 101 until the processing of the DVD/CD 107 is completed.
  • the DVD/CD 107 starts reading by control from the DVD read part 143 , and completes the reading at T 3 .
  • a reference numeral 301 shown in FIG. 3 shows a period (from T 2 to T 3 ) during which the DVD/CD 107 is operating by the control at T 2 .
  • the DVD control thread 112 returns a preprocessing output buffer flag in a line of the decryption part 144 that is the processing part ID of the application management table 118 to “Non-existence,” stores read result data in the DVD control thread output buffer queue 121 , and notifies the DVD read part 143 of it via the DVD control thread notification 122 .
  • the DVD read part 143 changes the preprocessing output buffer flag in a line of the DVD read part 143 that is the preprocessing ID of the map updating application 201 of the application management table 118 to Existence, and transfers the processing to the control part 150 .
  • the control content at T 3 has been explained. Next, transition of a control entity, such as the DVD control thread 112 , the DVD read part 143 of the control thread, will be explained.
  • a completion interrupt is generated to the CPU 101 in accompany with operation completion.
  • the interrupt to the CPU 101 is analyzed by an interrupt processing routine of the OS whose explanation is omitted, and predetermined processing is performed. Here, it analyzes that it is an interrupt from the DVD/CD 107 , and executes the DVD control thread 112 as the predetermined processing.
  • the DVD control thread notification 122 of the DVD control thread 112 is also an interrupt (software interrupt) to the CPU.
  • the interrupt processing routine of the OS analyzes that it is an interrupt of the DVD control thread notification 122 , and executes the control thread 111 as the predetermined processing using a fact of being the DVD control thread notification 122 as a parameter.
  • the control thread 111 makes the DVD read part 143 perform execution referring to the parameter. Transition of the control entity from the DVD read part 143 to the control part 150 is fixed by a processing sequence of the control thread 111 . For example, when the parameter is not set, the control part 150 is made to perform execution.
  • the control part 150 checks the preprocessing output buffer flag like the processing at T 1 .
  • the preprocessing output buffer flag in a line of the decryption part 144 that is the processing part ID has been set to “Existence,” and therefore the decryption part 144 and the DVD read part 143 can perform executions.
  • the control part 150 gives a higher priority to the decryption part 144 and performs the processing thereof.
  • the decryption part 144 instructs encryption to the encryption circuit control thread control queue 123 like the DVD read part 143 , and stores the data received from the DVD control thread output buffer queue 121 in the encryption circuit control thread input buffer queue 124 .
  • the DVD read part 143 does the same operation as in the period of times T 1 to T 2 .
  • the DVD/CD 107 and the encryption circuit 108 operate in parallel, and at T 5 processing of the DVD/CD 107 and the encryption circuit 108 is completed (see 305 and 302 of FIG. 3 ). Moreover, at T 5 , processing of the DVD control thread 112 and the encryption circuit control thread 113 is resumed.
  • the preprocessing part output buffer flags in lines of the decryption part 144 and the decompression part 145 of the processing part ID of the application management table 118 turn to be “Existence,” read data is stored in the DVD control thread output buffer queue 121 , a read completion notification 122 is outputted to the DVD control thread output buffer queue 121 , decrypted data is stored in the encryption circuit control thread output buffer queue 125 , and a decryption completion notification is outputted to the encryption circuit control thread notification 126 .
  • the control part 150 checks the application management table 118 , and performs the DVD read part 143 , the decryption part 144 , and the decompression part 145 . From a dependence relationship of the processing parts shown by the application management table 118 , the decompression part 145 will be of a highest priority and the DVD read part 143 will be of a lowest priority.
  • the DVD control thread 112 the encryption circuit control thread 113 , and the decompression thread 114 are executed, the DVD/CD 107 , the encryption circuit 108 , and the CPU 101 start to operate in parallel from T 6 , and at T 7 processing of these devices is completed (see 309 , 306 , and 303 of FIG. 3 ).
  • the preprocessing part output buffer flags in lines of the decryption part 144 , the decompression part 145 , and the HDD write part 146 that are the processing IDs of the map updating application 201 of the application management table 118 turn to be “Existence.” Since the control part 150 performs control referring to this flag, from T 8 , the DVD/CD 107 , the encryption circuit 108 , the CPU 101 , and the HDD/nonvolatile memory 109 operate in parallel, and at T 9 , processing of these devices is completed (see 313 , 310 , 307 , and 304 of FIG. 3 ).
  • the data processed by the HDD/nonvolatile memory 109 in period 304 from T 8 is data that is read from the DVD/CD 107 in period 301 , is decrypted by the encryption circuit 108 in period 302 , and is decompressed in period 303 .
  • the priorities of the device control threads 112 , 113 , 115 , and 117 are set higher than those of the CPU processing threads 114 and 116 .
  • the priority of the control thread 111 is set higher than those of the CPU processing threads 114 and 116 and the device control threads 112 , 113 , 115 , and 117 .
  • a trigger of execution start for a thread other than that being executed occurs when any one of the device control threads 112 , 113 , 115 , and 117 and the CPU processing threads 114 and 116 is being executed.
  • This trigger is an interrupt from the peripheral devices, such as the DVD/CD 107 , and an interrupt from the device control threads 112 , 113 , 115 , and 117 .
  • the interrupt from the peripheral device is a trigger to any one of the corresponding device control threads 112 , 113 , 115 , and 117 . Its execution sequence is controlled according to the priorities of the device control thread to be started for execution by this trigger and of the thread being executed both of which are defined in the application management table 118 (a thread on the downstream side that performs sequential processing of the same data is high in priority). Since the interrupts from the device control threads 112 , 113 , 115 , and 117 are completion notifications from the device control threads 112 , 113 , 115 , and 117 , respectively, as described above, the control is done so that the control thread 111 may be executed because the priority of the control thread 111 is higher than those of other threads.
  • the route guidance application 202 can be defined as shown in the application management table 118 .
  • the route guidance application 202 it is possible to make the HDD/nonvolatile memory 109 , the CPU 101 , and the display 110 operate in parallel.
  • the HDD/nonvolatile memory 109 is made to operate with a higher priority
  • the HDD/nonvolatile memory 109 is made to operate with a lower priority.
  • the map retrieval application reads data from the HDD/nonvolatile memory 109 , converts data that coincides with the condition selected from the data read by the CPU 101 into data for display, and displays it on the display 110 .
  • the HDD/nonvolatile memory 109 , the CPU 101 , and the display 110 are made to operate in parallel.
  • the control part 150 records an application ID controlled last by the instruction ID 151 .
  • the control is returned to the control part 150 , by lowering the priority of the application ID recorded in the instruction ID 151 , it is possible to prevent a situation where one of the map updating application 201 and the route guidance application 202 exclusively uses the HDD/nonvolatile memory 109 and the CPU 101 that are shared by the both applications, which interrupts the operation of the other application.
  • An HDD is a device that has a large fluctuation in processing throughput.
  • the fluctuation that affects all the applications being in a parallel operation may cause a problem.
  • the route guidance is prioritized over updating of the map updating application 201 and the route guidance application 202 .
  • it is possible to maintain a timing of route guidance by adding an application priority in the application management table 118 and managing it.
  • a device that is associated with the processing part ID of an application ID line of a high priority is made to process data prepared by the preprocessing part.
  • the data processor manages a processing sequence of the peripheral devices that are used from the input to the output both of which are used in the application program with software.
  • processing in which data waiting for the processing exists and that is near the termination of the output device, etc. is performed with a higher priority. For this reason, each peripheral device becomes capable of being controlled smoothly at a timing of being able to operate in parallel, so that it becomes possible to change the use sequence of the peripheral devices flexibly while realizing the fast response speed and the high throughput.
  • a priority is not given to it. Accordingly, even if there is inversion of the priority, other processing is not kept waiting as long as the processing does not include data having any dependent relation. Thereby, it becomes possible to execute in parallel the application programs each with a different use sequence of the peripheral devices. For example, it becomes possible to execute in parallel a route guidance application program that must keep a route guidance timing and a recording application program of a TV broadcast that is not allowed to partially fail to record data.
  • each processing group has a priority.
  • By setting high the priority of processing whose throughput is intended to be assured it is possible to make processing at a low throughput wait.
  • It is possible to make processing of a low priority operate at the greatest executable throughput while realizing assurance of a throughput of important processing. For example, it becomes possible to execute in parallel the route guidance application program that must keep a timing of route guidance and a download application program of a new map, etc. that is intended to be executed in as short a time as possible. In a period when a route guidance processing load is low, a download processing throughput is increased to shorten the download time. In a period when the load is high, the download processing throughput is decreased, so that it is possible to assure the route guidance processing timing.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Navigation (AREA)
  • Stored Programmes (AREA)
  • Multi Processors (AREA)
US12/826,093 2009-08-11 2010-06-29 Data processor and data processing method Abandoned US20110041135A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/781,578 US9176771B2 (en) 2009-08-11 2013-02-28 Priority scheduling of threads for applications sharing peripheral devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009186562A JP5452125B2 (ja) 2009-08-11 2009-08-11 データ処理装置及びデータ処理方法
JP2009-186562 2009-08-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/781,578 Continuation US9176771B2 (en) 2009-08-11 2013-02-28 Priority scheduling of threads for applications sharing peripheral devices

Publications (1)

Publication Number Publication Date
US20110041135A1 true US20110041135A1 (en) 2011-02-17

Family

ID=43127278

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/826,093 Abandoned US20110041135A1 (en) 2009-08-11 2010-06-29 Data processor and data processing method
US13/781,578 Active 2031-09-30 US9176771B2 (en) 2009-08-11 2013-02-28 Priority scheduling of threads for applications sharing peripheral devices

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/781,578 Active 2031-09-30 US9176771B2 (en) 2009-08-11 2013-02-28 Priority scheduling of threads for applications sharing peripheral devices

Country Status (3)

Country Link
US (2) US20110041135A1 (enExample)
EP (1) EP2287737A3 (enExample)
JP (1) JP5452125B2 (enExample)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050815B1 (ko) * 2013-01-07 2020-01-08 삼성전자주식회사 휴대 단말기에서 근접 통신 기능을 제공하는 장치 및 방법
JP6905454B2 (ja) * 2017-11-10 2021-07-21 フォルシアクラリオン・エレクトロニクス株式会社 ナビゲーションシステム、ナビゲーション方法

Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062435A1 (en) * 1998-12-16 2002-05-23 Mario D. Nemirovsky Prioritized instruction scheduling for multi-streaming processors
US20040216112A1 (en) * 2003-04-23 2004-10-28 International Business Machines Corporation System and method for thread prioritization during lock processing
US20050080824A1 (en) * 2003-10-09 2005-04-14 International Business Machines Corporation System, apparatus and method of enhancing priority boosting of scheduled threads
US6952214B2 (en) * 2002-07-12 2005-10-04 Sun Microsystems, Inc. Method for context switching a graphics accelerator comprising multiple rendering pipelines
US20050262510A1 (en) * 2004-05-13 2005-11-24 Ittiam Systems (P) Ltd Multi-threaded processing design in architecture with multiple co-processors
US7039770B1 (en) * 2002-03-05 2006-05-02 Juniper Networks, Inc. Low latency request dispatcher
US20060161582A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Application object as primitive of operating system
US7111156B1 (en) * 2000-04-21 2006-09-19 Ati Technologies, Inc. Method and apparatus for multi-thread accumulation buffering in a computation engine
US20060288350A1 (en) * 2005-06-20 2006-12-21 Microsoft Corporation Multi-thread multimedia processing
US20060294522A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Class scheduler
US20070198971A1 (en) * 2003-02-05 2007-08-23 Dasu Aravind R Reconfigurable processing
US20070204137A1 (en) * 2004-08-30 2007-08-30 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US7287255B2 (en) * 2003-03-07 2007-10-23 Cisco Technology, Inc. System and method for dynamic ordering in a network processor
US20080114937A1 (en) * 2006-10-24 2008-05-15 Arm Limited Mapping a computer program to an asymmetric multiprocessing apparatus
US20080250422A1 (en) * 2007-04-05 2008-10-09 International Business Machines Corporation Executing multiple threads in a processor
US20090070552A1 (en) * 2006-03-17 2009-03-12 Interuniversitair Microelektronica Centrum Vzw (Imec) Reconfigurable multi-processing coarse-grain array
US20090100432A1 (en) * 2007-10-12 2009-04-16 Freescale Semiconductor, Inc. Forward progress mechanism for a multithreaded processor
US20090138670A1 (en) * 2007-11-27 2009-05-28 Microsoft Corporation software-configurable and stall-time fair memory access scheduling mechanism for shared memory systems
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers
US20090165006A1 (en) * 2007-12-12 2009-06-25 Universtiy Of Washington Deterministic multiprocessing
US20090165007A1 (en) * 2007-12-19 2009-06-25 Microsoft Corporation Task-level thread scheduling and resource allocation
US20100031006A1 (en) * 2008-08-04 2010-02-04 International Business Machines Corporation Thread completion rate controlled scheduling
US7797691B2 (en) * 2004-01-09 2010-09-14 Imec System and method for automatic parallelization of sequential code
US20110087860A1 (en) * 2005-12-15 2011-04-14 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays
US20110093854A1 (en) * 2007-12-14 2011-04-21 Commissariat A L'energie Atomique Et Aux Energies Alternatives System comprising a plurality of processing units making it possible to execute tasks in parallel, by mixing the mode of execution of control type and the mode of execution of data flow type
US20110265068A1 (en) * 2010-04-27 2011-10-27 International Business Machines Corporation Single Thread Performance in an In-Order Multi-Threaded Processor

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250188A (ja) 1992-03-05 1993-09-28 Hitachi Ltd プロセスのプライオリティ制御方式
JPH11272627A (ja) 1998-03-23 1999-10-08 Nec Corp パイプライン型マルチプロセッサシステム
US6088044A (en) * 1998-05-29 2000-07-11 International Business Machines Corporation Method for parallelizing software graphics geometry pipeline rendering
US6874144B1 (en) * 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
WO2001035209A2 (en) * 1999-11-09 2001-05-17 University Of Victoria Innovation And Development Corporation Modified move to rear list system and methods for thread scheduling
US20010027464A1 (en) * 2000-03-27 2001-10-04 General Instrument Corporation Operating system abstraction interface for broadband terminal platform firmware
US6675285B1 (en) * 2000-04-21 2004-01-06 Ati International, Srl Geometric engine including a computational module without memory contention
JP3880942B2 (ja) * 2003-03-24 2007-02-14 株式会社東芝 プロセッサ、計算機及び優先度決定方法
US20040139441A1 (en) 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method
JP2004334537A (ja) 2003-05-07 2004-11-25 Sony Corp プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
US20050071841A1 (en) * 2003-09-30 2005-03-31 Hoflehner Gerolf F. Methods and apparatuses for thread management of mult-threading
JP2004163963A (ja) 2003-12-15 2004-06-10 Casio Electronics Co Ltd 画像形成装置
US7380038B2 (en) * 2005-02-04 2008-05-27 Microsoft Corporation Priority registers for biasing access to shared resources
TWI462011B (zh) * 2007-12-28 2014-11-21 Accton Technology Corp 程序之執行緒群組管理方法
US20090320021A1 (en) * 2008-06-19 2009-12-24 Microsoft Corporation Diagnosis of application performance problems via analysis of thread dependencies

Patent Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477562B2 (en) * 1998-12-16 2002-11-05 Clearwater Networks, Inc. Prioritized instruction scheduling for multi-streaming processors
US20020062435A1 (en) * 1998-12-16 2002-05-23 Mario D. Nemirovsky Prioritized instruction scheduling for multi-streaming processors
US7111156B1 (en) * 2000-04-21 2006-09-19 Ati Technologies, Inc. Method and apparatus for multi-thread accumulation buffering in a computation engine
US7039770B1 (en) * 2002-03-05 2006-05-02 Juniper Networks, Inc. Low latency request dispatcher
US6952214B2 (en) * 2002-07-12 2005-10-04 Sun Microsystems, Inc. Method for context switching a graphics accelerator comprising multiple rendering pipelines
US20070198971A1 (en) * 2003-02-05 2007-08-23 Dasu Aravind R Reconfigurable processing
US7287255B2 (en) * 2003-03-07 2007-10-23 Cisco Technology, Inc. System and method for dynamic ordering in a network processor
US20040216112A1 (en) * 2003-04-23 2004-10-28 International Business Machines Corporation System and method for thread prioritization during lock processing
US20050080824A1 (en) * 2003-10-09 2005-04-14 International Business Machines Corporation System, apparatus and method of enhancing priority boosting of scheduled threads
US7797691B2 (en) * 2004-01-09 2010-09-14 Imec System and method for automatic parallelization of sequential code
US20050262510A1 (en) * 2004-05-13 2005-11-24 Ittiam Systems (P) Ltd Multi-threaded processing design in architecture with multiple co-processors
US7634776B2 (en) * 2004-05-13 2009-12-15 Ittiam Systems (P) Ltd. Multi-threaded processing design in architecture with multiple co-processors
US20070204137A1 (en) * 2004-08-30 2007-08-30 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US20060161582A1 (en) * 2005-01-18 2006-07-20 Microsoft Corporation Application object as primitive of operating system
US7827554B2 (en) * 2005-06-20 2010-11-02 Microsoft Corporation Multi-thread multimedia processing
US20060288350A1 (en) * 2005-06-20 2006-12-21 Microsoft Corporation Multi-thread multimedia processing
US20060294522A1 (en) * 2005-06-27 2006-12-28 Microsoft Corporation Class scheduler
US7802256B2 (en) * 2005-06-27 2010-09-21 Microsoft Corporation Class scheduler for increasing the probability of processor access by time-sensitive processes
US20110087860A1 (en) * 2005-12-15 2011-04-14 Nvidia Corporation Parallel data processing systems and methods using cooperative thread arrays
US20090070552A1 (en) * 2006-03-17 2009-03-12 Interuniversitair Microelektronica Centrum Vzw (Imec) Reconfigurable multi-processing coarse-grain array
US20080114937A1 (en) * 2006-10-24 2008-05-15 Arm Limited Mapping a computer program to an asymmetric multiprocessing apparatus
US20080250422A1 (en) * 2007-04-05 2008-10-09 International Business Machines Corporation Executing multiple threads in a processor
US20090100432A1 (en) * 2007-10-12 2009-04-16 Freescale Semiconductor, Inc. Forward progress mechanism for a multithreaded processor
US20090138670A1 (en) * 2007-11-27 2009-05-28 Microsoft Corporation software-configurable and stall-time fair memory access scheduling mechanism for shared memory systems
US20090138683A1 (en) * 2007-11-28 2009-05-28 Capps Jr Louis B Dynamic instruction execution using distributed transaction priority registers
US20090165006A1 (en) * 2007-12-12 2009-06-25 Universtiy Of Washington Deterministic multiprocessing
US20110093854A1 (en) * 2007-12-14 2011-04-21 Commissariat A L'energie Atomique Et Aux Energies Alternatives System comprising a plurality of processing units making it possible to execute tasks in parallel, by mixing the mode of execution of control type and the mode of execution of data flow type
US20090165007A1 (en) * 2007-12-19 2009-06-25 Microsoft Corporation Task-level thread scheduling and resource allocation
US20100031006A1 (en) * 2008-08-04 2010-02-04 International Business Machines Corporation Thread completion rate controlled scheduling
US20110265068A1 (en) * 2010-04-27 2011-10-27 International Business Machines Corporation Single Thread Performance in an In-Order Multi-Threaded Processor

Also Published As

Publication number Publication date
US20130174173A1 (en) 2013-07-04
JP2011039775A (ja) 2011-02-24
EP2287737A3 (en) 2012-01-04
US9176771B2 (en) 2015-11-03
JP5452125B2 (ja) 2014-03-26
EP2287737A2 (en) 2011-02-23

Similar Documents

Publication Publication Date Title
US20170324792A1 (en) Dynamic track switching in media streaming
US8726292B2 (en) System and method for communication in a multithread processor
EP2214103A1 (en) I/O controller and descriptor transfer method
US9176771B2 (en) Priority scheduling of threads for applications sharing peripheral devices
JP5518103B2 (ja) 伝送制御装置及び前記伝送制御装置を備えたplc
WO2024082806A1 (zh) 媒体内容的推荐方法及设备
US20220300322A1 (en) Cascading of Graph Streaming Processors
JP2006259898A (ja) I/oコントローラ、信号処理システム、およびデータ転送方法
JP2015518995A (ja) レジスタ関連優先度に基づく実行パイプラインへの命令の発行、ならびに関係する命令処理回路、プロセッサシステム、方法、およびコンピュータ可読媒体
US7944421B2 (en) Image display system, image display method, image display device, image data processor, program, storage medium, and image processing program distribution server
CN100405340C (zh) 流数据处理装置
WO2006009261A1 (ja) 実時間処理ソフトウェア制御装置及び方法
US20140079370A1 (en) Digital video converter and method for reading and writing video stream
WO2025001953A1 (zh) 视频处理方法、装置及电子设备
US20090292829A1 (en) Data processing system and component management method
CN114064227B (zh) 应用于微内核的中断处理方法、装置、设备和存储介质
JP2006059340A (ja) 実時間処理ソフトウェア制御装置及び方法
WO2024140069A1 (zh) 视频处理方法、装置及电子设备
US20230259302A1 (en) Control device, control method, recording medium in which control program is recorded, and vehicle
JP2007047968A (ja) マルチプロセッサシステム
JP3644950B2 (ja) ストリームデータ処理装置
CN118741147A (zh) 解码设备控制方法、设备、存储介质及程序产品
US20190347030A1 (en) Calculation processing apparatus and information processing system
WO2025045220A1 (zh) 音频处理方法、设备及存储介质
CN117785429A (zh) 中断信息的处理方法、装置、设备及存储介质

Legal Events

Date Code Title Description
AS Assignment

Owner name: CLARION CO., LTD., JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NAGAI, YASUSHI;REEL/FRAME:024917/0036

Effective date: 20100702

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION