WO2007004374A1 - 情報処理方法および情報処理装置 - Google Patents
情報処理方法および情報処理装置 Download PDFInfo
- Publication number
- WO2007004374A1 WO2007004374A1 PCT/JP2006/310906 JP2006310906W WO2007004374A1 WO 2007004374 A1 WO2007004374 A1 WO 2007004374A1 JP 2006310906 W JP2006310906 W JP 2006310906W WO 2007004374 A1 WO2007004374 A1 WO 2007004374A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- task
- input
- processing
- data
- output
- Prior art date
Links
- 230000010365 information processing Effects 0.000 title claims description 56
- 238000003672 processing method Methods 0.000 title claims description 10
- 238000012545 processing Methods 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000007493 shaping process Methods 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000012546 transfer Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 230000004913 activation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/485—Resource constraint
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
Definitions
- the present invention relates to information processing technology, and in particular, an information processing method for processing a plurality of tasks in parallel.
- a task that requires access to an input / output device such as an HDD (Hard Disk Drive) releases the processor, and processing of another scheduled task is started.
- HDD Hard Disk Drive
- the tasker also switches to the next task.
- the present invention has been made in view of such problems, and an object thereof is to provide a technique capable of performing efficient input / output processing in a multitask system. Means for solving the problem
- One embodiment of the present invention relates to an information processing method.
- the method includes mapping at least a portion of the memory space assigned to the second task to the memory space assigned to the first task, and mapping to the memory space assigned to the first task. And a step of performing a part of the first task processing based on the lending code stored in the memory space allocated to the second task.
- a part of the first task process is performed when a predetermined calculation process is required during the first task process or when data to be input / output to / from the input / output unit is generated.
- the performing step may perform arithmetic processing based on the processing code included in the lending code or generate input / output request information in a format that can be recognized by the input / output unit.
- the "task” refers to an OS for controlling an information processing apparatus, application software itself, or the contents of information processing for achieving a certain unit function included therein.
- the “first task process” and the “second task process” may be executed in the same time slice, or may be executed in different time slices. These tasks may be processed by sub-processors included in one processor, or may be processed by two or more different processors.
- the above-mentioned “input / output unit” has an internal data processing system such as input / output devices such as HDDs and printers, network protocols, etc., and functional blocks such as devices, units, and software that perform actual data input / output. Either of these may be used.
- the apparatus includes one or more processors that process a plurality of tasks, and a memory that includes an area allocated to each task, and the processor stores the second area in the memory area allocated to the first task.
- a mapping processing unit that maps at least a part of the memory area allocated to the first task and stored in the memory area allocated to the second task mapped to the memory area allocated to the first task. It is characterized by performing part of the first task processing based on the rental code.
- FIG. 1 is a block diagram showing a configuration of an information processing device in a first embodiment.
- FIG. 2 is a diagram schematically showing main memory allocation when a plurality of tasks are processed in the information processing apparatus in the first embodiment.
- FIG. 3 is a block diagram showing a configuration of a processor of the information processing apparatus in the first embodiment.
- FIG. 4 is a flowchart showing a procedure for starting a task for providing a service for writing data and initializing the service in the first embodiment.
- FIG. 5 shows a procedure for a task to use a data writing service in the first embodiment.
- FIG. 6 shows a procedure in which a task uses a service for reading data in the first embodiment.
- FIG. 7 is a block diagram showing an overall configuration of a system including an information processing device in a second embodiment. Explanation of symbols
- FIG. 1 is a block diagram showing a configuration of information processing apparatus 1000 according to the present embodiment.
- the information processing apparatus 1000 includes a processor 200, a main memory 50, an HDD controller 650, and an HDD 600, which are connected by a bus 40.
- each element described as a functional block that performs various processes can be configured by a CPU, a memory, and other LSIs in terms of hardware, and loaded into the memory in terms of software. This is realized by a program with a reservation management function. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
- an OS that provides functions and environment for efficiently using the information processing apparatus 1000 and performs overall control of the entire apparatus is executed.
- Multiple application software (hereinafter simply referred to as applications) is executed on the OS.
- the processor 200 includes a plurality of sub processors 30, a management processor 32, and a DMA controller 34.
- the management processor 32 performs parallel processing by time-dividing tasks corresponding to a plurality of applications and input / output control programs, and assigning them to the sub-processor 30 for execution for each time slice.
- One of the tasks processed by the processor 200 is the control of the HDD controller 650 for writing and reading data to and from the HDD 600.
- the DMA controller 34 controls DMA transfer of data between the main memory 50 and the buffer in the HDD controller 650, for example.
- the main memory 50 is configured by a DRAM (Dynamic Random Access Memory) or the like, and a storage area for storing machine code and data corresponding to an application to be executed It is.
- An area in the main memory 50 used by each of the tasks that the processor 200 performs processing is assigned.
- a part of the code stored in the area allocated to the task that controls the HDD controller 650 is referred to by the task that is the access request source to the HDD 600, and the task is related to the access.
- the main memory 50 is provided with a shared area, that is, a shared memory, for transmitting and receiving data between these tasks.
- the HDD controller 650 accepts a data input / output request to the HDD 600 generated in the task processing corresponding to the application, and operates the HDD 600 based on the request. Specifically, the task power processed by the processor 200 also accepts a request format including read / write mode, sector number, etc., and sends appropriate signals such as a head selection signal to the HDD 600 to access the appropriate sector. I do.
- FIG. 2 schematically shows allocation of the main memory 50 when a plurality of tasks are processed in the information processing apparatus 1000.
- the processor 200 is time-divided and the main memory 50 is space-divided, and a processing time and a storage area that can be used by a plurality of tasks, for example, task A and task B, are allocated when a task occurs. Since the capacity of the main memory 50 is limited, a multitasking device such as the information processing device 1000 cannot store codes and data used for processing of all tasks in the main memory 50. There is a case.
- processing such as paging is usually performed in which data with low reference frequency is saved in the HDD 600, and read to the main memory 50 only when reference is required.
- Task A and Task B that refer to the main memory 50 can store the entire data including the data saved in the HDD 600 so that the main memory 50 can be accessed without being aware of such operations.
- Introducing the concept of virtual memory as an apparent memory When task A or task B requests an access to the address in the virtual memory assigned to each of them, the addresses of the virtual memory and physical memory, such as the page table stored in the physical memory that is the actual memory of the main memory 50 It is possible to access data in the physical memory by referring to the table associated with. At this time, the data that the task wants to refer to If the data is not in physical memory, read from HDD600.
- Task A A task corresponding to the application activated by the user is now referred to as task A.
- the information processing apparatus 1000 When the task A needs to write to or read from the HDD 600, the information processing apparatus 1000 generates a task for controlling the HDD controller 650.
- Task B is a task for separating the API (Application Program Interface) specifications that were previously performed by the HDD controller 650 from the HDD controller 650 and abstracting the hardware including the HDD 600.
- Task B provides abstracted HDD 600 write and read services to Task A. Specifically, the address of the service code stored in the physical memory assigned to task B and the address in the virtual memory assigned to task A, indicated by diagonal lines in FIG. Record them in the page table as shown in. As a result, the service code held by task B is referred to by task A using normal processing such as paging.
- Task A does not occur and task A directly requests access to HDD controller 650, and corresponds to task A when the hardware consisting of HDD controller 650 and HDD 600 is upgraded.
- the application program itself must be changed to accommodate the new hardware.
- the hardware including the HDD 600 is abstracted, and the write program to the HDD 600 with the abstracted task A is used, so that even if the hardware changes, the abrasion program can be changed. There is no need to do it.
- task A can be referred to by task A, and access can be made more efficient by including necessary request format generation and data shaping processing in task A processing before issuing an access request.
- task B is managed and excluded if there are tasks being processed other than task A and multiple tasks request access to HDD 600 at the same time. Take control. This prevents access conflicts.
- FIG. 3 is a block diagram showing the configuration of the processor 200 that processes the task A and the task B in the information processing apparatus 1000.
- the processor 200 performs processing corresponding to the application and generates a request for accessing the HDD 600.
- the processor 200 accepts an access request from the task A, transmits various information to the task A, and arbitrates a plurality of access requests. It includes an HDD controller control unit 210 that controls the HDD controller 650 by sequentially transmitting the access request format generated by Task A to the HDD controller 650. Since task A and task B are actually processed in different time slices depending on the processor 200, data and notifications are sent and received through the main memory 50.
- the task processing unit 202 in the task A performs processing for executing the application based on the machine code stored in the main memory 50, and the data needs to be written to or read from the HDD 600 on the way. If this occurs, information to that effect is passed to the request format generation unit 204 and the access request issue unit 208.
- the request format generation unit 204 generates a request format that can be recognized by the HDD controller 650 from the access request information received from the task processing unit 202 and stores the request format in the main memory 50.
- the code used to generate the request format is owned by the process to which task B belongs! /, So it is not actually stored in the storage area of main memory 50 allocated to task A !.
- task A can refer to the code by storing it in the area in virtual memory allocated to task A by mapping.
- the code that is included in the machine code that is handled by the task B process and that is referenced by task A will be referred to as the “lending code”.
- Lending codes include codes used to generate request formats for writing and reading data, and codes used to format data.
- the data shaping unit 206 classifies data to be written according to the data size that can be stored in each sector of the HDD 600. On the other hand, the data read for each sector Are connected and reshaped into one data.
- the access request issuing unit 208 issues an access request to the HDD 600 in a form that Task B can recognize. For example, the address information of the area in the main memory 50 in which the generated request format is stored is written in the shared memory area of the task A and the task B so that the task B can recognize it.
- the access information transmission / reception unit 212 in task B recognizes the access request to the HDD 600 of task A, and initializes the service in order to provide the task A with services necessary for writing and reading. For example, task B reads a predetermined area of shared memory and checks whether the address information in the requested format is written by task A! /. If written, the service is initialized as appropriate. In addition, the access information transmission / reception unit 212 also performs service termination processing, sharing processing with the task A of the main memory 50, and the like.
- the HDD controller control unit 210 initializes the HDD controller 650. It also manages the range of sectors in HDD 600 that can be used by the task that requested access such as task A for each task. Since all the request source tasks have identification information uniquely identified, the HDD controller control unit 210 uses them to manage the tasks that can use the HDD 600 and the usable sector ranges. If the access request received by the access information sending / receiving unit 212 is for a sector outside the usable range, the access is not permitted. The permitted access request is set in the HDD controller 650 by the HDD controller control unit 210. The HDD controller control unit 210 further performs operation start control of the HDD controller 650 and accepts an interrupt from the HDD controller 650.
- the request format generated in the request format generation unit 204 includes, for example, five areas from 1st to 5th each having 32 bits.
- Write and read mode identification information in the first area and the processing result power of the HDD controller 650 Sector number power in the HDD 600 in the second area
- the write data in the main memory 50 in the third area Storage address or storage address power of read data
- the size of write or read data in the fourth area The address in the main memory 50 of the next required format is registered in the fifth area.
- the HDD controller control unit 210 starts the operation of the HDD controller 650 by writing the head address in the main memory 50 of the request format permitted to be accessed into the request format address register included in the HDD controller 650.
- the start bit of the operation register included in the HDD controller 650 is set to “1”.
- the HDD controller 650 sets the operating bit of its own status register to "1" until the processing is completed, and when processing for the recognized request format is completed, the start bit of the operating register and the status register Set both bits in operation. Then, generate an interrupt signal to processor 200.
- Figure 4 shows the procedure for task B activation and the initialization process for the service provided to task B.
- Figure 5 shows the procedure for task A to continue using the service.
- the HDD controller control unit 210 first performs initial operations including initialization of the HDD controller control program, initialization of the HDD controller 650, and initialization of the HDD 600 ( S10) o
- Initializing the HDD controller control program includes initializing a table that associates the tasks that can use the HDD 600 with the usable sector ranges. The initial operation is performed only when task B is newly activated. When requesting service provision to task B that has already been activated, the processing power described below can be performed.
- the access request issuing unit 208 in task A issues a service initialization request to task B (S12).
- This request includes identification information for identifying task A.
- the issued initialization request is stored in a shared memory area in the main memory 50 so that it can be recognized at the time of the next task B processing in the processor 200.
- Task B which has recognized the initialization request, will respond to the HDD 600 of task A, which is the request source, based on the identification information. The presence or absence of the right to use is confirmed (S 14). If task A does not have usage rights (N in S14), an error message is issued to task A (S16), and the entire sequence ends.
- the issued error message is stored in a shared memory area in the main memory 50 so that it can be recognized when processing the next task A in the processor 200.
- initialization processing in the storage area in main memory 50 assigned to task B is performed (S20). Specifically, an area for receiving a write request is secured, the area is initialized, and variables used for providing services are initialized.
- the HDD controller control unit 210 can refer to the storage area in the main memory 50 in which the lending code used by the task A to generate the request format is stored even when the task A is processed.
- a setting change for sharing the storage area is performed (S22).
- the access information transmitting / receiving unit 212 issues a service initialization success message to the task A (S24).
- the initialization success message requires the address of the rental code in the main memory 50, the size of the storage area in the main memory 50 that is required when Task A generates a request format using the rental code, etc. Contains information such as stack size.
- request format generation section 204 determines the service on the task A side based on the information included in the service initialization success message issued by task B. Initialization is performed as follows. First, the storage area where the rental code is stored in the main memory 50 is mapped to the storage area in the main memory 50 assigned to the task A (S26). Next, the storage area required for processing with the rented code is secured in the storage area in the main memory 50 allocated to task A, and the area for task B can be accessed so that the area can be accessed. Make changes and initialize (S28). Hereinafter, this storage area is referred to as a “global area”.
- Task A In order to enable Task A to use various services such as writing to and reading from the HDD 600, the TOC (Table of Contents) that indicates the entry points of those service codes in the rental code is generated (S30). ). Next, the address in the main memory 50 of the global area secured in S28 is notified to task B (S 32). Also in this case, processing such as storing address information in the shared memory area in the main memory 50 is performed. Task B may initialize the global area if necessary.
- TOC Table of Contents
- task A uses a write service to HDD 600.
- the entry point of the function for writing included in the rental code is obtained from the TOC (S34).
- the names of various functions that are the key to refer to the TOC are, for example, ⁇ DISK-W "for writing, ⁇ DISK-R" for reading, etc.
- the processing of task A branches to the acquired entry point (S36).
- the storage area used for processing after the branch of task A is preliminarily set so that it is in the global area.
- the request format generation unit 204 and the data shaping unit 206 perform generation of the request format and shaping of the write data, respectively, using the branch destination write function (S38, S40).
- the request format includes the five types of information stored in the five areas as described above, and each request format is associated with write data of a data size that can be stored in one sector, such as 512 bytes.
- the data shaping unit 206 divides the data according to the data size, and the request format generation unit 204 sets the request format for each data. Generate.
- the generated request format and the formatted write data are stored in the global area in the main memory 50.
- the access request issuing unit 208 writes information to that effect in the shared memory area so that the task B can recognize the write request (S42). For example, the start address of the request format is written in a predetermined area.
- Task A sequentially generates the request format for multiple access requests including writing to and reading from the HDD 600 and shaping the data, as necessary, regardless of whether or not task B recognizes the request. .
- Multiple requests accumulate in the global area until Task B recognizes those requests and begins processing accordingly. The accumulated requests are As described above, the next request format is specified by the address recorded in the fifth area of the request format generated immediately before, and a series of access requests is configured.
- the access information transmission / reception unit 212 of task B recognizes the write request from task A by checking the shared memory for each processing time allocated to task B (S44).
- the HDD controller control unit 210 arbitrates the access order to the HDD 600 based on the priority and other general criteria, and performs scheduling (S46 ).
- the start address of the request format stored in the global area is given to the HDD controller 650, thereby starting the operation of the HDD controller 650 and realizing writing to the HDD 600 (S48).
- the HDD controller 650 When the writing process to the HDD 600 is completed, the HDD controller 650 generates an interrupt signal to the processor 200 as described above, and the task B receives it (S50).
- FIG. 6 shows the processing procedure when Task A uses the read service.
- the task A request format generator 204 reads from the TOC.
- the entry point of the function that performs is acquired, and the process branches to the entry point (S60, S62).
- a request format is generated (S64).
- the address in the global area of the read data specified at this time is an empty area for storing the data read from the HDD 600.
- the access request issuing unit 208 enables the task B to recognize the read request as in the writing process (S66).
- the task B access information transmission / reception unit 212 recognizes the read request from the task A, and the HDD controller control unit 210 schedules access to the HDD 600 (S68).
- the start address of the read request format in the global area is given to the HDD controller 650, thereby starting the operation of the HDD controller 650 and realizing reading of the HDD 600 power (S70).
- the HDD controller 650 stores the data read from the HDD 600 in a buffer included in the HDD controller 650.
- the HDD controller 650 When the data reading process is completed, the HDD controller 650 generates an interrupt signal to the processor 200, and the task B receives it (S72).
- the access information transmission / reception unit 212 of the task B performs transfer processing of the read data from the buffer of the HDD controller 650 to the address set in the global area in the read request format, and from the HDD 600 Task A can be recognized by, for example, writing a notification to the effect that the reading process has been completed to the shared memory (S74). Transfer of the read data can be performed using the DMA controller 34 provided in the processor 200. Since the transferred data is stored in the global area for each size that can be stored in one sector of the HDD 600, the data shaping unit 206 of task A concatenates them into one data (S76). At this time, Task A performs the data shaping process by branching the processing to the data shaping function in the lending code. Repeat the process from S60 to S76 until all data to be read is read. As in the case of the writing process, the service usage termination process is performed by task A as necessary.
- the API specification for using the HDD driver is separated from the hardware of the HDD controller, and the hardware is abstracted.
- the task for mediation between the application and the HDD belongs to a process different from the application, and the application uses a service provided by the process. This eliminates the need to update applications in response to changes in the hardware including the HDD.
- general-purpose programming corresponding to HDDs with various specifications is possible with relatively easy settings that do not require consideration of the specifications of the HDDs connected to the device.
- the arbitration task temporarily rents a code to provide a service to the application task, and the application task uses it to generate a request format and format the data. Do your best in your own time slice.
- FIG. 7 is a block diagram showing an overall configuration of system 2000 including information processing apparatus 1000 according to the present embodiment.
- This embodiment has a configuration in which a plurality of information processing devices, 1000A and 1000B, are connected to different LANs (Local Area Networks), 800A and 800B, and are connected to a network such as the Internet by respective routers 1500A and 1500B.
- LANs Local Area Networks
- 800A and 800B Local Area Networks
- a network such as the Internet by respective routers 1500A and 1500B.
- processing for data transfer is performed using a protocol common to the two information processing apparatuses 1000A and 1000B. Since the data size that can be transmitted at one time is determined in the physical layer of the protocol, the transfer data exceeding the size is divided in the transport layer, network layer, etc. It is transferred in packet units with a header including transfer information such as number and IP address. In this embodiment, such data The task of the transfer request source of the information processing apparatus 1000A is performed.
- task B abstracted a part of the processing of HDD controller 650, and task B provided a service so that task A, which is the request source of HDD 600, can perform the processing.
- task B provides a service so that task A can perform, for example, part of TCP (Transmission Control Protocol) processing in the transport layer of the protocol. Therefore, the task B abstracts a part of the TCP processing code and stores the service code in the main memory 50 as a function that the task A can refer to.
- TCP Transmission Control Protocol
- task A makes a service initialization request to task B, and task B performs various initialization processes.
- Task A maps the service code of task B, which includes a function for generating the transfer data force segment, to the allocated area in main memory 50.
- TOC generation and global area address notification to Task B are performed.
- the processing of task A is branched to the entry point of the service code, so that the transfer data is divided and the necessary headers are added to generate a segment.
- Task B receives a notification to that effect and activates the application for transfer in the application layer as appropriate.
- the power to transfer data from the information processing device 1000A to the information processing device 1000B by normal protocol processing has already been formed, so in the TCP of the information processing device 1000A, such as establishing a connection Only processing other than generation may be performed.
- the TCP in the information processing apparatus 1000B performs DMA transfer by the DMA controller 34 to the area in the main memory 50 assigned to the task corresponding to the application that should receive data as it is. Connect to a single piece of data using a service that abstracts a part of the process.
- a part of the protocol processing that performs network communication is separated and abstracted, and the task of the application that is the transfer request source temporarily stores the code.
- the transmitting side information processing apparatus 1000A preliminarily forms a plurality of segments constituting one data and issues a transfer request, the segments can be transferred continuously.
- the information processing device 1000B on the receiving side should reduce the number of communications between the information processing devices 1000 by transmitting an ACK (Acknowledgment) segment, which is a response confirmation signal, once for the completion of transfer of these consecutive segments. Can do. This shortens the waiting time due to processing for network communication, and has a remarkable effect especially in applications where real-time performance is important, such as games played over a network. In addition, it can be implemented at a low cost because it can be realized with a conventional nodeware configuration.
- the processor time-divides and the task that provides the service and the task on the application side that uses the service are sequentially processed in each time slice.
- the processor may be processed independently. In this case as well, if multiple tasks on the application side request access to the HDD or request data transfer at the same time, the necessary data is generated by each task. As a result, the load on the processing of the task that controls access and transfer is reduced, and access and transfer are performed efficiently.
- task A and task B that perform service exchange an example of a task corresponding to an application and a task that controls input / output of data is shown.
- Any task processed by the processor may be used, such as a task for realizing the function provided by.
- task B may be a task that provides a file system to an application or a task that provides a network environment to an application.
- the present invention can be used for electronic devices such as computers and game machines that execute a plurality of tasks in parallel.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
図3において、プロセッサ200はアプリケーションを実行しHDDに対して入出力すべきデータを生成するタスクAと、HDDコントローラ650へのデータ入出力要求を制御するタスクBとを順次処理する。タスクAの処理時に、タスク処理部202はタスクの処理途上にHDDへの入出力の必要が生じた際、要求フォーマット生成部204およびアクセス要求発行部208へ通知する。要求フォーマット生成部204はタスクBの保持する貸し出しコードをマッピングによって参照し、要求フォーマットを生成する。データ整形部206は貸し出しコードを参照し、データの分割または接続を行う。アクセス要求発行部208はタスクBのアクセス情報送受部212に対しアクセス要求を発行する。タスクBの処理時に、HDDコントローラ制御部210は複数のアクセス要求を調停し、HDDコントローラ650へ順次要求を設定する。
Description
明 細 書
情報処理方法および情報処理装置
技術分野
[0001] 本発明は、情報処理技術に関し、特に複数のタスクを並列処理する情報処理方法
、およびそれを利用した情報処理装置に関する。
背景技術
[0002] 近年、情報処理装置の分野では、複数のプログラムを同時にメモリに読み込み、そ れに対応する複数のタスクを切り替えながら同時進行で処理するマルチタスクの機能 力 一般的に用いられるようになつてきた。複数のタスクは、情報処理装置の基礎的 制御を行う OS (Operating System)によって各タイムスライスに対してスケジューリング され、それに基づいてプロセッサが処理を行う。
[0003] プロセッサによる処理中に、 HDD (Hard Disk Drive)などの入出力装置へのァクセ スの必要が生じたタスクはプロセッサを開放し、スケジューリングされた別のタスクの 処理が開始される。タスクに割り当てられたタイムスライスが満了した場合も、当該タス タカも次のタスクへと切り替わる。
[0004] 一方、 HDDへのデータの書き込みや読み出し処理、ネットワークを介したデータの 伝送など、外部の入出力装置などとデータのやり取りを行う場合には、入出力装置の それぞれに適したデータ形式に整形して書き込んだり、そのデータ形式によって読 み出されたデータを一般的な形式に戻したりする場合が多い。このようなデータ整形 は一般的には入出力装置とともに提供される装置のドライバソフトウェアや、通信プロ トコルによって実行される。これにより一般的なアプリケーションソフトウェアのタスクの 処理によって、ドライバソフトウェアなどの起動要求がなされ、ドライバソフトウェアはそ れに応じてデータの整形などを行 、入出力の制御を行う、 t 、うように処理の分業が 行われていた。
発明の開示
発明が解決しょうとする課題
[0005] 上述のマルチタスク処理において、複数のタスクが同一の入出力装置へのアクセス
要求を次々に発生させると、ドライバソフトウェアはそれらに対応したデータ整形処理 などを順次行う必要があるため、後にアクセス要求を発生させたタスクはそれ以前の タスクのアクセスが完了するまで待つ必要がある。上述のとおり、入出力装置へのァ クセス期間中のタスクはプロセッサによる処理が行われな!/、ため、別のタスクのァクセ スにかかる時間も含めた期間、動作が停止してしまうことになる。この現象は一度に処 理するタスクの数が多いほど顕著となるため、今後の技術的進歩によって同時に処 理することのできるタスクの数が増加するほど、顕在化する問題となり得ることを本発 明者は認識した。
[0006] 本発明はこのような課題に鑑みてなされたものであり、その目的はマルチタスクシス テムにおいて、効率のよい入出力処理を行うことのできる技術を提供することにある。 課題を解決するための手段
[0007] 本発明のある態様は情報処理方法に関する。この方法は、第一のタスクに割り当て られたメモリ空間に、第二のタスクに割り当てられたメモリ空間の少なくとも一部をマツ ビングするステップと、第一のタスクに割り当てられたメモリ空間にマッピングされた、 第二のタスクに割り当てられたメモリ空間に格納された貸し出しコードに基づき、第一 のタスク処理の一部を行うステップと、を含むことを特徴とする。
[0008] この方法は、第一のタスク処理時に所定の演算処理の必要が生じた際、または、入 出力ユニットへ入出力をすべきデータが発生した際、第一のタスク処理の一部を行う ステップが、貸し出しコードに含まれる処理コードに基づき、演算処理を行ったり、入 出力ユニットが認識できる形式で入出力要求情報を生成したりしてよい。
[0009] 「タスク」とは、情報処理装置の制御を行う OSや、アプリケーションソフトウェアなど 自体、またはそれらに含まれる、ある単位の機能を達成するための情報処理の内容 を 、う。「第一のタスク処理」と「第二のタスク処理」は同一のタイムスライスにお 、て実 行してもよいし、異なるタイムスライスにおいて実行してもよい。またこれらのタスクは 一のプロセッサに含まれるサブプロセッサにおいて処理されてもよいし、異なる 2以上 のプロセッサにおいて処理されてもよい。前述の「入出力ユニット」は HDDやプリンタ などの入出力装置や、ネットワークプロトコルなど、内部で固有のデータ処理体系を 有し、実際のデータの入出力を行う装置やユニット、ソフトウェアなどの機能ブロック
のいずれでもよい。
[0010] 本発明の別の態様は情報処理装置に関する。この装置は、複数のタスクを処理す る一以上のプロセッサと、各タスクに割り当てられた領域を含むメモリと、を備え、プロ セッサは、第一のタスクに割り当てられたメモリ領域に、第二のタスクに割り当てられ たメモリ領域の少なくとも一部をマッピングするマッピング処理部を備え、第一のタスク に割り当てられたメモリ領域にマッピングされた、第二のタスクに割り当てられたメモリ 領域に格納された貸し出しコードに基づき、第一のタスク処理の一部を行うことを特 徴とする。
[0011] なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コ ンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である 発明の効果
[0012] 本発明によれば、情報処理において発生したデータの入出力を効率的に行うこと ができる。
図面の簡単な説明
[0013] [図 1]実施の形態 1における情報処理装置の構成を示すブロック図である。
[図 2]実施の形態 1における情報処理装置において複数のタスクを処理した場合の、 メインメモリの割り当てについて模式的に示す図である。
[図 3]実施の形態 1における情報処理装置のプロセッサの構成を示すブロック図であ る。
[図 4]実施の形態 1においてデータ書き込みのためのサービスを提供するタスクの起 動処理、および当該サービスの初期化処理の手順を示すフローチャートである。
[図 5]実施の形態 1においてタスクがデータ書き込みのためのサービスを利用する手 順を示している。
[図 6]実施の形態 1においてタスクがデータ読み出しのためのサービスを利用する手 順を示している。
[図 7]実施の形態 2における情報処理装置を含むシステムの全体構成を示すブロック 図である。
符号の説明
[0014] 50· ··メインメモリ、 200· ··プロセッサ、 202· ··タスク処理部、 204· ··要求フォー マット生成部、 206…データ整形部、 208· ··アクセス要求発行部、 210—HDD コントローラ制御部、 212· ··アクセス情報送受部、 600· --HDD, 650- HDDコ ントローラ、 1000…情報処理装置。
発明を実施するための最良の形態
[0015] 実施の形態 1
図 1は、本実施の形態における情報処理装置 1000の構成を示すブロック図である 。情報処理装置 1000は、プロセッサ 200、メインメモリ 50、 HDDコントローラ 650、お よび HDD600を含み、それらがバス 40によって接続されている。図 1などにおいて、 様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、 CP U、メモリ、その他の LSIで構成することができ、ソフトウェア的には、メモリにロードさ れた予約管理機能のあるプログラムなどによって実現される。したがって、これらの機 能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろ いろな形で実現できることは当業者には理解されるところであり、いずれかに限定さ れるものではない。
[0016] この情報処理装置 1000では、情報処理装置 1000を効率よく使用するための機能 、環境を提供し、装置全体を統括的に制御する OSが実行される。その OS上で複数 のアプリケーションソフトウェア(以下、単にアプリケーションと 、う)が実行される。
[0017] プロセッサ 200は、複数のサブプロセッサ 30、管理プロセッサ 32および DMAコント ローラ 34を含む。管理プロセッサ 32は、複数のアプリケーションや入出力制御プログ ラムに対応するタスクを時分割し、タイムスライスごとにサブプロセッサ 30に割り当て て実行させることにより、並列処理を行っている。プロセッサ 200が処理するタスクの ひとつが、 HDD600へのデータの書き込みおよび読み出しのための HDDコント口 ーラ 650の制御である。 DMAコントローラ 34は例えばメインメモリ 50と HDDコント口 ーラ 650内のバッファとの間のデータの DMA転送を制御する。
[0018] メインメモリ 50は、 DRAM(Dynamic Random Access Memory)などで構成され、実 行されるアプリケーションなどに対応するマシンコードやデータを格納する記憶領域
である。プロセッサ 200が処理を行う複数のタスクには、それぞれが使用するメインメ モリ 50内の領域が割り当てられる。本実施の形態では、 HDDコントローラ 650の制 御を行うタスクに割り当てられた領域に格納されたコードの一部を、 HDD600へのァ クセス要求元であるタスクが参照し、当該タスクがアクセスに係る処理の一部を担うこ とにより、 HDD600へのアクセスを効率的に行う。さらにメインメモリ 50には、それらの タスク相互にデータの送受を行うための共有領域、すなわち共有メモリが設けられる
[0019] HDDコントローラ 650はアプリケーションに対応するタスク処理にお!、て発生した、 HDD600に対するデータ入出力要求を受け付け、それに基づき HDD600を動作さ せる。具体的にはプロセッサ 200が処理するタスク力も読み出しまたは書き込みのモ ード、セクタ番号などを含む要求フォーマットを受け付け、 HDD600へヘッド選択信 号などの信号を適宜送信することにより、適切なセクタにアクセスを行う。
[0020] 図 2は情報処理装置 1000において複数のタスクを処理した場合の、メインメモリ 50 の割り当てについて模式的に示している。情報処理装置 1000ではプロセッサ 200は 時分割、メインメモリ 50は空間分割され、複数のタスク、例えばタスク Aおよびタスク B が使用できる処理時間、記憶領域が、タスクの発生時などに割り当てられる。メインメ モリ 50の容量には制約があるため、情報処理装置 1000のようなマルチタスク構成の 装置においては、全てのタスクの処理に用いるコードやデータをメインメモリ 50に格 納することができな 、場合がある。
[0021] そこで通常、参照頻度の少ないデータなどを HDD600へ退避させ、参照の必要が 生じたときにのみメインメモリ 50へ読み出すページングなどの処理が行われる。この 際、メインメモリ 50を参照するタスク Aやタスク B力 そのような動作を意識することなく メインメモリ 50へアクセスできるようにするため、 HDD600へ退避させたデータなどを 含めたデータ全体を格納できる見かけ上のメモリとして、仮想メモリの概念を導入する 。タスク Aやタスク Bがそれぞれに割り当てられた仮想メモリ内のアドレスに対しァクセ スを要求すると、メインメモリ 50の実態である物理メモリ内に格納されたページテープ ルなど、仮想メモリと物理メモリのアドレスを関連付けたテーブルを参照することにより 、物理メモリ内のデータへのアクセスが可能となる。この際、タスクが参照したいデー
タが物理メモリにない場合は、 HDD600より読み出しを行う。
[0022] 今、ユーザが起動させたアプリケーションに対応するタスクをタスク Aとする。タスク A が HDD600への書き込みまたは読み出しを必要とする場合、情報処理装置 1000 は、 HDDコントローラ 650を制御するタスクを発生させる。これをタスク Bとする。タス ク Bは、従来 HDDコントローラ 650が担っていた API (Application Program Interface) の仕様を HDDコントローラ 650から分離し、 HDD600を含むハードウェアを抽象化 するためのタスクである。タスク Bは、抽象化された HDD600への書き込みおよび読 み出しサービスをタスク Aへ提供する。具体的には、図 2において斜線で示された、タ スク Bに割り当てられた物理メモリ内に格納されたサービスコードのアドレスと、タスク Aに割り当てられた仮想メモリ内のアドレスとを、一点鎖線で示すように関連付けてぺ ージテーブルに記録する。これにより、通常のページングなどの処理を利用して、タ スク Bの保有するサービスコードがタスク Aによって参照される。
[0023] タスク Bを発生させず、タスク Aが直接 HDDコントローラ 650へアクセス要求を行う 構成とした場合、 HDDコントローラ 650および HDD600からなるハードウェアをバー ジョンアップした場合などに、タスク Aに対応するアプリケーションのプログラム自体を 、新たなハードウ アに対応するように変更しなければならない。本実施の形態では HDD600を含むハードウェアを抽象化し、タスク Aが抽象化された HDD600への書 き込みおよび読み出しサービスを利用することにより、ハードウェアが変更してもアブ リケーシヨンプログラムの変更を行う必要がなくなる。さらに、サービスコードをタスク A が参照できるようにし、アクセス要求の発行以前に、必要な要求フォーマットの生成 やデータの整形処理をタスク Aの処理に含ませることにより、アクセスを効率化できる
[0024] タスク Bはその他に、タスク A以外に処理されているタスクが存在し、複数のタスクが 同時期に HDD600へのアクセスを要求している場合に、それらの要求を管理し、排 他制御を行う。これによりアクセスの競合が防止できる。
[0025] 図 3は情報処理装置 1000にお!/、てタスク Aおよびタスク Bを処理するプロセッサ 20 0の構成を示すブロック図である。タスク Aの処理においてプロセッサ 200は、アプリ ケーシヨンに対応する処理を行 、、 HDD600に対するアクセス要求を発生させるタス
ク処理部 202、 HDDコントローラ 650へのアクセス要求フォーマットを作成する要求 フォーマット生成部 204、 HDD600に対して書き込みを行うデータや、 HDD600力 ら読み出されたデータの整形を行うデータ整形部 206、および HDD600へのァクセ ス要求をタスク Bに対して発行したり、タスク B力 各種情報を受け付けたりするァクセ ス要求発行部 208を含む。
[0026] タスク Bの処理においてプロセッサ 200は、タスク Aからのアクセス要求を受け付け たり、タスク Aに対し各種情報を発信したりするアクセス情報送受部 212、および複数 のアクセス要求の調停を行 、、タスク Aが生成したアクセス要求フォーマットを HDDコ ントローラ 650に順次送信して HDDコントローラ 650を制御する HDDコントローラ制 御部 210を含む。タスク Aとタスク Bは実際にはプロセッサ 200によって異なるタイムス ライスで処理が行われるため、その間のデータや通知の授受はメインメモリ 50を介し て行われる。
[0027] タスク Aにおけるタスク処理部 202は、メインメモリ 50に格納されたマシンコードなど に基づいて、アプリケーションの実行のための処理を行い、その途上で HDD600へ のデータの書き込み、または読み出しの必要が生じた場合に、要求フォーマット生成 部 204およびアクセス要求発行部 208へ、その旨の情報を渡す。要求フォーマット生 成部 204は、タスク処理部 202から受け付けたアクセス要求の情報から、 HDDコント ローラ 650が認識できる要求フォーマットを生成し、メインメモリ 50へ格納する。要求 フォーマットの生成に用いられるコードは、タスク Bが属するプロセスが保有して!/、る ため、タスク Aに割り振られたメインメモリ 50の記憶領域には実際には格納されな!、。 しかしながら上述のように、マッピングによってタスク Aに割り振られた仮想メモリ内の 領域に格納されるようにすることで、タスク Aによる当該コードの参照を可能にする。タ スク Bのプロセスが受け持つマシンコードに含まれ、タスク Aによって参照されるコード を、以降、「貸し出しコード」と呼ぶ。貸し出しコードには、データ書き込みや読み出し のための要求フォーマットの生成に用いられるコードや、データの整形に用いられる コードが含まれる。
[0028] データ整形部 206は、 HDD600の各セクタに格納できるデータサイズに対応させ て、書き込みを行うデータの切り分けを行う。一方、セクタごとに読み出されたデータ
を接続し、一のデータへと整形する。アクセス要求発行部 208は、タスク Bが認識でき る形で、 HDD600へのアクセス要求を発行する。例えば生成した要求フォーマットが 格納されているメインメモリ 50内の領域のアドレス情報を、タスク Aおよびタスク Bの共 有メモリ領域に書き込むことにより、タスク Bがそれを認識できるようにする。
[0029] タスク Bにおけるアクセス情報送受部 212はタスク Aの HDD600に対するアクセス 要求を認識し、タスク Aに対して書き込みや読み出しなどに必要なサービスを提供す るために、サービスの初期化を行う。例えばタスク Bは、共有メモリの所定の領域を読 み出し、要求フォーマットのアドレス情報がタスク Aによって書き込まれて!/、るかどうか を確認する。書き込まれていれば、適宜サービスの初期化を行う。アクセス情報送受 部 212はその他に、サービスの終了処理やメインメモリ 50のタスク Aとの共有化処理 なども行う。
[0030] HDDコントローラ制御部 210は HDDコントローラ 650の初期化を行う。また、タスク Aなどアクセスの要求元であるタスクが使用できる HDD600内のセクタの範囲をタス クごとに管理する。要求元のタスクは全て、一意に識別される識別情報を有するため 、 HDDコントローラ制御部 210はそれを用いて、 HDD600を使用することのできるタ スクとその使用可能セクタ範囲を管理する。アクセス情報送受部 212において受け付 けたアクセス要求が、使用可能範囲外のセクタに対するものであった場合は、ァクセ スを不許可とする。許可されたアクセス要求は、 HDDコントローラ制御部 210によつ て HDDコントローラ 650へ設定される。 HDDコントローラ制御部 210はさらに、 HDD コントローラ 650の動作開始制御、 HDDコントローラ 650からの割り込み受け付けを 行う。
[0031] 要求フォーマット生成部 204において生成される要求フォーマットは、例えばそれ ぞれ 32ビットの第 1から第 5までの 5つの領域を含む。第 1の領域には書き込みおよ び読み出しのモード識別情報および、 HDDコントローラ 650の処理結果力 第 2の 領域には HDD600内のセクタ番号力 第 3の領域にはメインメモリ 50内の書き込み データの格納アドレスまたは読み出しデータの格納先アドレス力 第 4の領域には書 き込みまたは読み出しデータのサイズ力 第 5の領域には次の要求フォーマットのメ インメモリ 50内のアドレスがそれぞれ登録される。
[0032] HDDコントローラ制御部 210は、アクセスを許可した要求フォーマットのメインメモリ 50内の先頭アドレスを HDDコントローラ 650に含まれる要求フォーマットアドレスレジ スタに書き込むことにより、 HDDコントローラ 650の動作を開始させる。この際、 HDD コントローラ 650に含まれる動作レジスタのスタートビットを" 1 "にセットする。 HDDコ ントローラ 650は処理が完了するまで、自らが有する状態レジスタの動作中ビットを" 1 "にセットし、認識した要求フォーマットについての処理が完了した際、動作レジスタ のスタートビットと、状態レジスタの動作中ビットをともに" ΟΊこセットする。その後、プロ セッサ 200に対して割り込み信号を発生させる。
[0033] 次に、上記の構成によって HDD600に書き込みを行う処理手順について説明する 。図 4はタスク Bの起動処理、およびタスク B力 タスク Aへ提供されるサービスの初期 化処理の手順を、図 5はそれに引き続きタスク Aがサービスを利用する手順を示して いる。
[0034] タスク Aのタスク処理部 202によって HDD600に対するデータの書き込みの必要 が生じた場合、プロセッサ 200に含まれる管理プロセッサ 32によってタスク Bがスケジ ユーリングされ、サブプロセッサ 30によってタスク Bの処理が実行される。図 4に示す ように、まずタスク Bの起動に際し、 HDDコントローラ制御部 210は、 HDDコントロー ラ制御プログラムの初期化、 HDDコントローラ 650の初期化、および HDD600の初 期化を含む初期動作を行う (S10) o HDDコントローラ制御プログラムの初期化には 、 HDD600を使用することのできるタスクとその使用可能セクタ範囲とを対応づけた テーブルの初期化が含まれる。初期動作は、タスク Bを新たに起動したときのみ行わ れ、既に起動しているタスク Bに対してサービスの提供を要求する場合は、以下に述 ベる処理力 行うことができる。
[0035] 次に、タスク Bが提供するサービスをタスク Aが利用するための初期化処理を行う。
まず、タスク Aにおけるアクセス要求発行部 208は、タスク Bに対してサービスの初期 化要求を発行する(S 12)。この要求には、タスク Aを識別するための識別情報が含ま れる。発行された初期化要求はメインメモリ 50内の共有メモリ領域に格納されるなど し、プロセッサ 200における次のタスク Bの処理時に認識できるようにする。初期化要 求を認識したタスク Bは、識別情報に基づき、要求元であるタスク Aの HDD600に対
する使用権の有無を確認する(S 14)。タスク Aに使用権がなければ(S 14の N)、エラ 一メッセージをタスク Aに対して発行し (S 16)、全シーケンスを終了する。発行された エラーメッセージはメインメモリ 50内の共有メモリ領域に格納されるなどし、プロセッサ 200における次のタスク Aの処理時に認識できるようにする。
[0036] タスク Aに HDD600の使用権があれば(S14の Y)、タスク Bに割り当てられたメイン メモリ 50内の記憶領域における初期化処理を行う(S20)。具体的には、書き込み要 求を受け付けるための領域の確保と、その領域の初期化、およびサービスの提供に 用いる変数の初期化などが行われる。
[0037] 次に HDDコントローラ制御部 210は、タスク Aが要求フォーマットを生成するために 使用する貸し出しコードが格納されたメインメモリ 50内の記憶領域を、タスク Aの処理 時にも参照できるように、当該記憶領域の共有化のための設定変更を行う(S22)。 以上の処理により、タスク B側でのサービスの初期化が完了すると、アクセス情報送 受部 212はタスク Aに対してサービス初期化成功メッセージを発行する(S24)。初期 化成功メッセージには、貸し出しコードのメインメモリ 50におけるアドレス、貸し出しコ ードを用いてタスク Aが要求フォーマットを生成する際などに必要となるメインメモリ 50 内の記憶領域のサイズ、必要となるスタックのサイズなどの情報が含まれる。
[0038] プロセッサ 200において次にタスク Aの処理が開始されたら、要求フォーマット生成 部 204は、タスク Bが発行したサービス初期化成功メッセージに含まれる情報に基づ き、タスク A側でのサービスの初期化を次のとおり行う。まずメインメモリ 50において貸 し出しコードの格納された記憶領域を、タスク Aに割り当てられたメインメモリ 50内の 記憶領域にマッピングする(S26)。次に貸し出しコードによる処理に際して必要とな る記憶領域を、タスク Aに割り当てられたメインメモリ 50内の記憶領域に確保し、その 領域をタスク Bがアクセスできるように、共有ィ匕のための設定変更を行い、初期化する (S28)。以降、この記憶領域を「グローバル領域」と呼ぶ。
[0039] そしてタスク Aが HDD600に対する書き込みや、読み出しなど各種サービスを利用 できるようにするため、貸し出しコードにおけるそれらのサービスコードのエントリボイ ントを示す TOC (Table of Contents)の生成処理を行う(S30)。次に S28において確 保したグローバル領域のメインメモリ 50内のアドレスを、タスク Bに対して通知する(S
32)。この場合もメインメモリ 50内の共有メモリ領域にアドレス情報を格納するなどの 処理を行う。必要であれば、タスク Bはグローバル領域の初期化を行ってもよい。
[0040] 次に図 5に示すとおり、タスク Aは HDD600への書き込みサービスを利用する。ま ず、貸し出しコードに含まれる書き込みのための関数のエントリポイントを TOCより取 得する(S34)。 TOCを参照する際のキーとなる各種関数の名称は、例えば、書き込 みであれば〃 DISK— W"、読み出しであれば〃 DISK— R"などというように一般的な わかりやす!/、ものをあら力じめ定めておき、タスク Aに対応したアプリケーションのプロ グラムを作成する際にはその名称を使用するようにする。これにより、 HDD600の仕 様を意識することなぐ汎用的なアプリケーションプログラムの作成が可能となる。次 にタスク Aの処理を、取得したエントリポイントへ分岐する(S36)。タスク Aの分岐後の 処理において使用される記憶領域は、グローバル領域内となるようにあら力じめ設定 しておく。
[0041] 次に要求フォーマット生成部 204およびデータ整形部 206は、分岐先の書き込み のための関数を用いて、要求フォーマットの生成および書き込みデータの整形をそ れぞれ行う(S38、 S40)。要求フォーマットは上述のとおり 5つの領域に格納された 5 種類の情報を含み、それぞれの要求フォーマットは、 512バイトなど、 1セクタが格納 できるデータサイズの書き込みデータと対応づけられる。書き込みデータが、ひとつ のセクタが格納できるデータサイズより大きい場合に、データ整形部 206は当該デー タをそのデータサイズごとに分割し、要求フォーマット生成部 204はそれぞれのデー タに対して要求フォーマットを生成する。生成された要求フォーマットおよび整形され た書き込みデータは、メインメモリ 50内のグローバル領域に格納される。
[0042] 要求フォーマットの生成およびデータの整形が完了したら、アクセス要求発行部 20 8は、共有メモリ領域内にその旨の情報を書き込み、タスク Bが書き込み要求を認識 できるようにする(S42)。例えば要求フォーマットの先頭アドレスを所定の領域に書き 込む。タスク Aは HDD600への書き込み、および読み出しを含む複数のアクセス要 求の要求フォーマットの生成およびデータの整形を、タスク Bの当該要求の認識の有 無に関わらず、必要に応じて順次行っていく。タスク Bがそれらの要求を認識し適宜 処理を開始するまで、複数の要求がグローバル領域に蓄積される。蓄積した要求は
、上述のとおり、直前に生成された要求フォーマットの第 5領域に記録されるアドレス によって次の要求フォーマットが特定される、といった具合につなげられ、一連のァク セス要求を構成する。
[0043] タスク Bのアクセス情報送受部 212が、タスク Bに割り当てられた処理時間ごとに共 有メモリを確認するなどして、タスク Aからの書き込み要求を認識する(S44)。同時に タスク Aを含む複数のタスクからのアクセス要求を認識した場合は、 HDDコントローラ 制御部 210は、優先度その他の一般的な基準に基づき HDD600へアクセスを行う 順序を調停し、スケジューリングを行う(S46)。そして、その結果に基づき、グローバ ル領域に格納された要求フォーマットの先頭アドレスを HDDコントローラ 650に与え ることにより、 HDDコントローラ 650の動作を開始させ、 HDD600への書き込みを実 現する(S48)。 HDD600への書き込み処理が完了したら、 HDDコントローラ 650は 上述のとおりプロセッサ 200に対して割り込み信号を発生し、タスク Bはそれを受け付 ける(S50)。
[0044] S34力ら S50の処理を、タスク Aにおいて発生した書き込むべきデータが全て HD D600へ書き込まれるまで繰り返す。そしてアクセス要求発行部 208は、書き込みデ ータが存在しなくなったとき、またはタスク Aの処理時間終了直前などに必要に応じ て、タスク Bに対しサービス利用終了の信号を送信し、要求フォーマット生成部 204は 、 S30において生成した TOCおよび、 S26において形成した貸し出しコードのマツピ ング領域を破棄するなどのサービス利用終了処理を行う(S52)。この際、要求済み の書き込みデータが全て HDD600へ書き込まれて!/、ることを確認してから、グロ一 バル領域のタスク Bによるアクセスを不許可とするように、メインメモリ 50の設定も変更 する。以上の処理によって、タスク Aで発生した HDD600へのデータ書き込み処理 が完了する。
[0045] 次に、同様の構成によって HDD600からデータを読み出す処理手順について、書 き込みを行う場合と異なる点に主眼を置き説明する。タスク Bの起動、およびタスク B カゝらタスク Aへ提供されるサービスの初期化処理手順は、図 4と同様に行われる。図 6 はタスク Aが読み出しサービスを利用する際の処理手順を示して 、る。まず書き込み サービスの利用と同様、タスク Aの要求フォーマット生成部 204は、 TOCより読み出し
を行う関数のエントリポイントを取得し、当該エントリポイントへ処理を分岐する(S60、 S62)。次に要求フォーマットを生成するが(S64)、この際に指定する読み出しデー タのグローバル領域内のアドレスは、 HDD600より読み出されたデータを格納するた めの空の領域である。 1セクタが格納できるデータサイズを超えたサイズのデータを 読み出す場合は、そのサイズごとに要求フォーマットを生成する。
[0046] 要求フォーマットの生成が完了したら、アクセス要求発行部 208は、書き込み処理 同様、タスク Bが読み出し要求を認識できるようにする(S66)。タスク Bのアクセス情 報送受部 212は、タスク Aからの読み出し要求を認識し、 HDDコントローラ制御部 21 0は HDD600へのアクセスについてスケジューリングを行う(S68)。そしてその結果 に基づき、グローバル領域内の読み出し要求フォーマットの先頭アドレスを HDDコン トローラ 650に与えることにより、 HDDコントローラ 650の動作を開始させ、 HDD600 力 の読み出しを実現させる(S70)。 HDDコントローラ 650は HDD600より読み出 したデータを、 HDDコントローラ 650に含まれるバッファに格納する。データの読み 出し処理が終了したら、 HDDコントローラ 650はプロセッサ 200に対して割り込み信 号を発生し、タスク Bはそれを受け付ける(S72)。
[0047] 次にタスク Bのアクセス情報送受部 212は、 HDDコントローラ 650のバッファから、 読み出し要求フォーマットにてグローバル領域内に設定されたアドレスへ、読み出し たデータの転送処理を行うとともに、 HDD600からの読み出し処理が終了した旨の 通知を、共有メモリに書き込むなどしてタスク Aが認識できるようにする(S74)。読み 出したデータの転送は、プロセッサ 200に備えられた DMAコントローラ 34を用いて 行うことができる。転送されたデータは、 HDD600の 1セクタに格納できるサイズごと にグローバル領域に格納されるため、タスク Aのデータ整形部 206はそれをつなげて 一のデータとする(S76)。このときも、タスク Aは貸し出しコードのうち、データ整形の ための関数へと処理を分岐することにより、データ整形の処理を行う。 S60から S76 の処理を、読み出すべきデータを全て読み出すまで繰り返す。そして書き込み処理 の場合と同様、タスク Aによって必要に応じてサービス利用終了処理が行われる。
[0048] 以上述べた本実施の形態によれば、 HDDドライバを使用するための APIの仕様を HDDコントローラのハードウェアから切り離し、ハードウェアを抽象化する。このとき、
アプリケーションと HDDとの仲裁を行うためのタスクは、アプリケーションとは別のプロ セスに属し、アプリケーションはそのプロセスが提供するサービスを利用する。これに より、 HDDを含むハードウェアに変更が生じても、それに対応してアプリケーションを 更新する必要がなくなる。またアプリケーションプログラムの作成において、装置に接 続される HDDの仕様を考慮する必要がなぐ比較的容易な設定で、様々な仕様の HDDへ対応した汎用的なプログラミングが可能となる。また仲裁を行うためのタスク は、アプリケーションのタスクに対してサービスを提供するために一時的にコードを貸 し出し、アプリケーションのタスクはそれを利用して、要求フォーマットの生成やデータ の整形処理を自らのタイムスライスにおいてあら力じめ行う。これにより、複数のタスク が同時期にアクセス要求を発行した場合、それらのアクセス要求を受け付けてから、 要求フォーマットの生成、データの整形、スケジューリングなどの一連の入出力処理 を一のタスクが行うのに比べ、効率よくアクセスを行うことが可能となり、入出力待ちに よるアプリケーションのタスクの停止時間を削減することができる。このことは、ゲーム などリアルタイム性が重要となるアプリケーションでは特に有効である。また、本実施 の形態は従来用いられてきたのと同様のハードウェア構成で実現されるため、導入 障壁が低ぐ低コストでの導入が可能である。
実施の形態 2
図 7は本実施の形態における情報処理装置 1000を含むシステム 2000の全体構 成を示すブロック図である。本実施の形態では複数の情報処理装置、 1000Aおよび 1000B力 異なる LAN(Local Area Network), 800Aおよび 800Bに接続され、それ ぞれのルータ 1500Aおよび 1500Bによってインターネットなどのネットワークに接続 される構成を有する。このようなシステム構成にぉ ヽて例えば情報処理装置 1000A から情報処理装置 1000Bへデータを転送する場合、 2つの情報処理装置 1000Aお よび 1000Bに共通のプロトコルによってデータ転送のための処理が行われる。プロト コルの物理層にお 、て一度に伝送することのできるデータサイズは決まって 、るため 、そのサイズを超える転送データはトランスポート層やネットワーク層などにおい分割 され、それぞれのデータに対してシーケンス番号や IPアドレスなどの転送情報を含む ヘッダを付加したパケット単位で転送される。本実施の形態ではこのようなデータの
整形を、情報処理装置 1000Aの転送要求元のタスクが行う。
[0050] 基本的な動作は実施の形態 1で説明したのと同様であるため、ここでは実施の形態 1と異なる点にのみ言及する。実施の形態 1では、タスク Bは HDDコントローラ 650の 処理の一部を抽象化し、 HDD600へのアクセス要求元であるタスク Aがその処理を 行えるようにタスク Bがサービスを提供した。本実施の形態ではタスク Bは例えばプロ トコルのトランスポート層における TCP(Transmission Control Protocol)の一部の処理 をタスク Aが行えるようにタスク Bがサービスを提供する。したがってタスク Bは、 TCP の処理コードの一部を抽象化して、タスク Aが参照することのできる関数としたサービ スコードをメインメモリ 50に保持する。
[0051] 実施の形態 1の図 4で示したのと同様、タスク Aはサービスの初期化要求をタスク B に対して行い、タスク Bは各種の初期化処理を行う。タスク Aは転送データ力 セグメ ントを生成するための関数を含むタスク Bのサービスコードを、メインメモリ 50内の割り 当てられた領域にマッピングする。その後は実施の形態 1と同様、 TOCの生成およ び、タスク Bへのグローバル領域のアドレス通知を行う。さらに図 5と同様、タスク Aの 処理をサービスコードのエントリポイントへ分岐することにより、転送データの分割、お よび必要なヘッダの付加処理を行い、セグメントを生成する。セグメントが形成された ら、タスク Bはその旨の通知を受け取り、アプリケーション層における転送用のアプリ ケーシヨンを適宜起動させる。その後は通常のプロトコル処理により情報処理装置 10 00Aから情報処理装置 1000Bへのデータ転送が行われる力 すでにセグメントが形 成されているため、情報処理装置 1000Aの TCPでは、コネクションの確立など、セグ メント生成以外の処理のみ行えばよい。また、情報処理装置 1000Bにおける TCPは 、受け取ったセグメントをそのまま、データを受信すべきアプリケーションに対応するタ スクに割り当てられたメインメモリ 50内の領域に DMAコントローラ 34によって DMA 転送し、当該タスクが TCPの処理の一部を抽象化したサービスを利用して、一のデ ータに接続する。
[0052] 以上述べた本実施の形態によれば、実施の形態 1と同様、ネットワーク通信を行う プロトコルの処理の一部を切り離して抽象化し、転送要求元であるアプリケーションの タスクがそのコードを一時借りることによって、データの伝送に即したデータ整形を自
らのタイムスライスで行う。これにより、 TCPなどのプロトコル処理の負荷が軽減され、 一度に複数のタスク力 のデータ転送要求が発生した場合などに、効率よくコネクシ ヨンを確率しデータ転送制御を行うことができる。さらに送信側情報処理装置 1000A では、一のデータを構成する複数のセグメントをあら力じめ形成して力も転送要求を 発行するため、それらのセグメントを連続して転送できる。そのため受信側情報処理 装置 1000Bはそれらの連続したセグメントの転送完了に対して一度だけ応答確認信 号である ACK(Acknowledgment)セグメントを送信すればよぐ情報処理装置 1000間 の通信回数を削減することができる。これによりネットワーク通信のための処理による 待ち時間が短縮され、ネットワークを介して行うゲームなどリアルタイム性が重要とな るアプリケーションでは特に、顕著な効果をもたらす。さらに従来用いられてきたノヽー ドウエア構成で実現できるため、低コストでの導入が可能である。
[0053] 以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それ らの各構成要素や各処理プロセスの組合せに 、ろ 、ろな変形例が可能なこと、また そうした変形例も本発明の範囲にあることは当業者に理解されるところである。
[0054] 例えば、上述の例ではプロセッサを時分割し、サービスを提供するタスクと、サービ スを利用するアプリケーション側のタスクとがそれぞれのタイムスライスにおいて順番 に処理された力 それらのタスクを複数のプロセッサが独立に処理するようにしてもよ い。この場合も、アプリケーション側の複数のタスクが同時期に HDDへアクセス要求 を行ったり、データ転送要求を行ったりした場合に、それぞれのタスクであらカゝじめ必 要なデータを生成しておくことにより、アクセスや転送を制御するタスクの処理にかか る負荷が軽減され、アクセスや転送が効率的に行われるようになる。
[0055] また上述の実施の形態では、サービスの授受を行うタスク Aおよびタスク Bとして、ァ プリケーシヨンに対応するタスクおよびデータの入出力を制御するタスクの例を示した 1S そのどちらも、 OSが提供する機能を実現させるためのタスクなど、プロセッサが処 理するいずれのタスクであってもよい。例えばタスク Bは、アプリケーションにファイル システムを提供するタスク、またはアプリケーションにネットワーク環境を提供するタス クなどでもよい。この場合も、あるタスクに含まれる処理の一部を別のタスクのタイムス ライスにおいて、または別のタスクを処理するプロセッサによって処理することにより、
全体的な処理の効率が向上し、場合によっては実施の形態 1で示したのと同様に、 接続するハードウェアなどの仕様に変更が生じても汎用的な処理が可能となる。 産業上の利用可能性
以上のように本発明は、複数のタスクを並列に実行するコンピュータ、ゲーム機器な どの電子機器に利用可能である。
Claims
[1] 第一のタスクに割り当てられたメモリ空間に、第二のタスクに割り当てられたメモリ空 間の少なくとも一部をマッピングするステップと、
前記第一のタスクに割り当てられたメモリ空間にマッピングされた、前記第二のタス クに割り当てられたメモリ空間に格納された貸し出しコードに基づき、前記第一のタス クの処理の一部を行うステップと、
を含むことを特徴とする情報処理方法。
[2] 前記第一のタスクの処理において所定の演算処理の必要が生じた際、前記第一の タスクの処理の一部を行うステップは、前記貸し出しコードに含まれる処理コードに基 づき、前記演算処理を行うステップを含むことを特徴とする請求項 1に記載の情報処 理方法。
[3] 前記第一のタスクの処理において、入出力ユニットへ入出力をすべきデータが発生 した際、前記第一のタスクの処理の一部を行うステップは、前記貸し出しコードに含ま れる処理コードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報 を生成するステップを含み、
前記入出力要求情報に基づき、前記第二のタスクの処理において、前記入出力ュ ニットへ入出力要求を発行するステップをさらに含むことを特徴とする請求項 1に記 載の情報処理方法。
[4] 前記入出力要求情報を生成するステップは、
前記貸し出しコードに含まれる処理コードに基づき、出力すべきデータを前記入出 力ユニットの処理体系に対応した形式に整形するステップと、
整形されたデータを前記第一のタスクと前記第二のタスクとの共有メモリ空間に格 納するステップと、
を含み、
前記入出力ユニットへ入出力要求を発行するステップは、前記整形されたデータを 前記共有メモリ空間より読み出し、前記入出力ユニット内のバッファへ書き込むステツ プを含むことを特徴とする請求項 3に記載の情報処理方法。
[5] 前記入出力要求に従い前記入出力ユニットから入力されたデータを、前記第二の
タスクの処理において前記第一のタスクに割り当てられたメモリ空間へ転送するステ ップと、
前記第一のタスクの処理において、前記転送されたデータを前記貸し出しコードに 含まれる処理コードに基づき前記第一のタスクの処理体系に対応した形式に整形す るステップと、
をさらに含むことを特徴とする請求項 3または 4に記載の情報処理方法。
[6] 前記マッピングするステップの後、前記第一のタスクの処理において、あら力じめ定 められた処理内容の名称と、前記マッピングされたメモリ空間における前記処理内容 に対応する処理コードの位置を示すエントリポイントとを関連づけたテーブルを生成 するステップをさらに含み、
前記第一のタスクの処理にぉ 、て、必要な処理内容の名称に基づき対応する処理 コードのエントリポイントへ処理を分岐することを特徴とする請求項 1に記載の情報処 理方法。
[7] 複数のタスクを処理する一以上のプロセッサと、
各タスクに割り当てられた領域を含むメモリと、を備え、
前記プロセッサは、
第一のタスクに割り当てられたメモリ領域に、第二のタスクに割り当てられたメモリ領 域の少なくとも一部をマッピングするマッピング処理部を備え、
前記第一のタスクに割り当てられたメモリ領域にマッピングされた、前記第二のタス クに割り当てられたメモリ領域に格納された貸し出しコードに基づき、前記第一のタス クの処理の一部を行うことを特徴とする情報処理装置。
[8] 前記プロセッサは、前記第一のタスクの処理において所定の演算処理の必要が生 じた際、前記貸し出しコードに含まれる処理コードに基づき、前記演算処理を行うこと を特徴とする請求項 7に記載の情報処理装置。
[9] 前記プロセッサは、
前記第一のタスクの処理において入出力ユニットへ入出力をすべきデータが発生 した際、前記貸し出しコードに含まれる処理コードに基づき、前記入出力ユニットが 認識できる形式で入出力要求情報を生成する入出力要求情報生成部と、
前記入出力要求情報に基づき、前記第二のタスクの処理時に前記入出力ユニット へ入出力要求を発行する要求発行部と、
をさらに備えることを特徴とする請求項 7に記載の情報処理装置。
[10] 前記プロセッサは、前記第一のタスクの処理時に、前記貸し出しコードに含まれる 処理コードに基づき、出力すべきデータを前記入出力ユニットの処理体系に対応し た形式に整形し、前記第一のタスクと前記第二のタスクとの共有メモリに格納するデ ータ整形部をさらに備え、
前記要求発行部は、前記整形されたデータを前記共有メモリより読み出し、前記入 出力ユニット内のバッファへ転送することを特徴とする請求項 9に記載の情報処理装 置。
[11] 前記プロセッサは、前記入出力要求に従い前記入出力ユニットから入力されたデ ータを、前記第二のタスクの処理時に前記第一のタスクに割り当てられたメモリ領域 へ転送する DMA(Direct Memory Access)コントローラと、
前記第一のタスクの処理時に、前記転送されたデータを前記貸し出しコードに含ま れる処理コードに基づき前記第一のタスクの処理体系に対応した形式に整形するデ ータ整形部と、
をさらに備えることを特徴とする請求項 9または 10に記載の情報処理装置。
[12] 前記入出力要求情報生成部は、生成した複数の入出力要求情報を、前記第一の タスクと前記第二のタスクとの共有メモリに格納し、前記要求発行部は、前記メモリに 格納された複数の入出力要求情報の調停を行いスケジューリングを行った結果に基 づき、入出力要求を順次前記入出力ユニットへ発行することを特徴とする請求項 9に 記載の情報処理装置。
[13] 前記入出力要求情報は、前記入出力要求情報生成部が次に生成する入出力情 報を格納すべき前記メモリ内の記憶領域情報を含み、前記要求発行部は、前記記 憶領域情報に基づき、前記入出力要求情報生成部が生成した複数の入出力要求 情報を前記メモリより順次読み出すことを特徴とする請求項 12に記載の情報処理装 置。
[14] 前記プロセッサは、
前記第一のタスクの処理においてネットワークを介して他のプロセッサへ転送すベ きデータが発生した際、前記貸し出しコードに含まれる処理コードに基づき、転送す べきデータを転送を実行する通信プロトコルに対応したデータ形式に整形するととも に、他のプロセッサ力 転送されたデータを前記第一のタスクの処理体系に対応した 形式に整形するデータ整形部をさらに備えることを特徴とする請求項 7に記載の情報 処理装置。
[15] 入出力装置を利用して入出力すべきデータを生成するデータ生成部と、
前記入出力装置を制御する装置制御部と、
処理コードを格納するメモリと、を備え、
前記データ生成部は、前記装置制御部に割り当てられた前記メモリ内の領域に格 納された処理コードの少なくとも一部をマッピングにより参照し、前記入出力装置を制 御するための処理の少なくとも一部を行うことを特徴とする情報処理装置。
[16] 第一のタスクの処理にお 、て入出力をすべきデータを発生させる機能と、
入出力ニットへの入出力要求を制御する第二のタスクに割り当てられたメモリ空間 の少なくとも一部を、前記第一のタスクに割り当てられたメモリ空間にマッピングする 機能と、
前記第一のタスクの処理において、前記第一のタスクに割り当てられたメモリ空間 にマッピングされた、前記第二のタスクに割り当てられたメモリ空間に格納された貸し 出しコードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報を生 成する機能と、
前記第二のタスクの処理において、前記入出力要求情報に基づき前記入出力ュ ニットへ入出力要求を発行する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
[17] 第一のタスクの処理にお 、て入出力をすべきデータを発生させる機能と、
入出力ユニットへの入出力要求を制御する第二のタスクに割り当てられたメモリ空 間の少なくとも一部を、前記第一のタスクに割り当てられたメモリ空間にマッピングす る機能と、
前記第一のタスクの処理において、前記第一のタスクに割り当てられたメモリ空間
にマッピングされた、前記第二のタスクに割り当てられたメモリ空間に格納された貸し 出しコードに基づき、前記入出力ユニットが認識できる形式で入出力要求情報を生 成する機能と、
前記第二のタスクの処理において、前記入出力要求情報に基づき前記入出力ュ ニットへ入出力要求を発行する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラムを記憶した記憶 媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/994,513 US8234651B2 (en) | 2005-07-06 | 2006-05-31 | Information processing method and apparatus using the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005-198118 | 2005-07-06 | ||
JP2005198118A JP4979206B2 (ja) | 2005-07-06 | 2005-07-06 | 情報処理方法および情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2007004374A1 true WO2007004374A1 (ja) | 2007-01-11 |
Family
ID=37604250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/310906 WO2007004374A1 (ja) | 2005-07-06 | 2006-05-31 | 情報処理方法および情報処理装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8234651B2 (ja) |
JP (1) | JP4979206B2 (ja) |
WO (1) | WO2007004374A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068614A2 (en) * | 2009-10-30 | 2011-06-09 | Robert Kulakowski | Controller device coprocessor architecture |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8843682B2 (en) * | 2010-05-18 | 2014-09-23 | Lsi Corporation | Hybrid address mutex mechanism for memory accesses in a network processor |
KR101667697B1 (ko) * | 2009-12-10 | 2016-10-19 | 로얄 뱅크 오브 캐나다 | 네트워크 컴퓨팅 자원에 의한 데이터 동기화 프로세싱 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62108346A (ja) * | 1985-11-06 | 1987-05-19 | Ricoh Co Ltd | プロセス間通信方式 |
US5915124A (en) * | 1997-01-03 | 1999-06-22 | Ncr Corporation | Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions |
JP2006085393A (ja) * | 2004-09-15 | 2006-03-30 | National Institute Of Information & Communication Technology | デバイスからの高速データ転送方法及びデータ処理装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05233328A (ja) * | 1992-02-25 | 1993-09-10 | Hitachi Ltd | プロセス間通信処理を行う情報処理システム |
US5596755A (en) * | 1992-11-03 | 1997-01-21 | Microsoft Corporation | Mechanism for using common code to handle hardware interrupts in multiple processor modes |
JP2001243115A (ja) * | 2000-02-29 | 2001-09-07 | Mitsubishi Electric Corp | 計算機システム |
US6964039B2 (en) * | 2000-12-13 | 2005-11-08 | Esmertec Ag | Method to create optimized machine code through combined verification and translation of JAVA™ bytecode |
-
2005
- 2005-07-06 JP JP2005198118A patent/JP4979206B2/ja not_active Expired - Fee Related
-
2006
- 2006-05-31 US US11/994,513 patent/US8234651B2/en active Active
- 2006-05-31 WO PCT/JP2006/310906 patent/WO2007004374A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62108346A (ja) * | 1985-11-06 | 1987-05-19 | Ricoh Co Ltd | プロセス間通信方式 |
US5915124A (en) * | 1997-01-03 | 1999-06-22 | Ncr Corporation | Method and apparatus for a first device accessing computer memory and a second device detecting the access and responding by performing sequence of actions |
JP2006085393A (ja) * | 2004-09-15 | 2006-03-30 | National Institute Of Information & Communication Technology | デバイスからの高速データ転送方法及びデータ処理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011068614A2 (en) * | 2009-10-30 | 2011-06-09 | Robert Kulakowski | Controller device coprocessor architecture |
WO2011068614A3 (en) * | 2009-10-30 | 2011-09-09 | Robert Kulakowski | Controller device coprocessor architecture |
Also Published As
Publication number | Publication date |
---|---|
US20090307701A1 (en) | 2009-12-10 |
US8234651B2 (en) | 2012-07-31 |
JP4979206B2 (ja) | 2012-07-18 |
JP2007018195A (ja) | 2007-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW544589B (en) | Loosely coupled-multi processor server | |
US7502826B2 (en) | Atomic operations | |
JP3189727B2 (ja) | コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法 | |
US20050038941A1 (en) | Method and apparatus for accessing a memory | |
JP4348087B2 (ja) | ネットワークにおけるファイル共有の方法およびシステム | |
EP1094392B1 (en) | Method and apparatus for interfacing with a secondary storage system | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
CN113709131B (zh) | 一种网络数据传输方法、装置、计算机设备及可读介质 | |
CN114201268B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US7127530B2 (en) | Command issuing apparatus for high-speed serial interface | |
JPH0340868B2 (ja) | ||
WO2007004374A1 (ja) | 情報処理方法および情報処理装置 | |
EP1513071A2 (en) | Memory bandwidth control device | |
US7089378B2 (en) | Shared receive queues | |
JP2723022B2 (ja) | ディスク装置のインタフェース及びその制御方法 | |
EP1107532A2 (en) | Registration of devices in a network | |
JPH11149455A (ja) | メモリディスク共有方法及びその実施装置 | |
JP2007241922A (ja) | 共有資源利用のための調停方法及びその調停装置 | |
JP2007310760A (ja) | 記憶装置 | |
JPH07271654A (ja) | コントローラ | |
US20030212850A1 (en) | Log-in device and logged-in device | |
JP7615598B2 (ja) | メモリ制御装置および制御方法 | |
US5875299A (en) | disk access apparatus for performing a stride processing of data | |
CN119696950A (zh) | 一种can数据收发方法、装置、设备及存储介质 | |
CN117971744A (zh) | 一种流水线型直接内存访问的数据访问方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
DPE2 | Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101) | ||
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06756826 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 11994513 Country of ref document: US |